Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1nUTmc-0007uk-9g for pgadmin-hackers@arkaria.postgresql.org; Wed, 16 Mar 2022 13:33:47 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1nUTmZ-0001Jk-Me for pgadmin-hackers@arkaria.postgresql.org; Wed, 16 Mar 2022 13:33:43 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1nUOkj-00052K-8e for pgadmin-hackers@lists.postgresql.org; Wed, 16 Mar 2022 08:11:30 +0000 Received: from mail-ot1-x32a.google.com ([2607:f8b0:4864:20::32a]) by makus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92) (envelope-from ) id 1nUOkf-0004je-Ub for pgadmin-hackers@postgresql.org; Wed, 16 Mar 2022 08:11:27 +0000 Received: by mail-ot1-x32a.google.com with SMTP id j3-20020a9d7683000000b005aeed94f4e9so933504otl.6 for ; Wed, 16 Mar 2022 01:11:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=enterprisedb.com; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=uan70CGPQ1bSi4ZTiVA2z7vQhwuQgAxzA9EmosoooHs=; b=ALH8QQTuc6KDQORIXF7xJMjs0bRuwSDu+xuTy8PvTCO6gu3uToXlpfw45AVy7DD7kc aMdX191R0zwP42WZv1S1NG1gWLq+pk2NK+7mEnMOkot4eYJ30Fkyi+1JixtYexHDeTsc SCmt5+nCz1ORKiqwUbPCA5SM9gDNxzYrPljeU4y9FyVM8L0a5rc1swZBNMsykJbWOw9I Wm5vsnknBAk7y5QkrbyEodx+AcujeEXnWqMfkpQnFzbdlQGYjrbQvQyuQLuucnW5YXlH NJXU3bBJHF8lBjw8yX0Js6goZmHVrd9bU29V5x2WHSNoXnlOn4GFYxIgCDZiI4SX5LSH 5v2w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=uan70CGPQ1bSi4ZTiVA2z7vQhwuQgAxzA9EmosoooHs=; b=cNHncwSsBu3E4xdaXjOnTmSt9YN3ePJ+QDcZVAGkdInL8h76jrZM+xT55fZ9zMhlcD vvxVSxgIoX5sI81loNGB7EGoARgwTmMyT7H2LZATmNUGSHrjYZnEdQKeKabJPDXbiNP5 V3z5xVYChXMOgy9Nr7b6oZn0zxM4R9MBXeAEZab3P+vM9P5ON/O/En4jYg4kuiKgROhO LVSEikJ/bibODFkQkbbeDWWXkdKM35z99FepHYzmGydm/fcBmGwxTwKiA6T8Z+6c1jfp HDmgCqFK/HUfmzuqXX6WTQ6CdawrS+jiHxJlntdIIxAJ1XGUb8yIAW+6Fy+YVCtdrpeB hUyw== X-Gm-Message-State: AOAM533TZn/83TPYqABXJVibzhYSXT+8khOfOGxc0zqLRqMuc3Hu7aYQ WspZS10rg7wWhAc7MZhB9ZqX6ooWg+ZekNC2GKOjuaYGpl+vCx8TcIGfdItCCsuRTs6XZgxZi95 yrLbi+X+wdXRhR3EwxGX4yJ/sGh2cn3w/hpqisChKMuzNKFVwBODjs6oo8KyEAq+xWWu7g/fbIu L+BmrJA39kA4dWBv9galAS0h0jnBX0+7xq0+boTExx4Pkxg6xhI8ieTos2lv0kb1M= X-Google-Smtp-Source: ABdhPJyT+8YrHBcIOBPRSut1jrmgTaEaiOB/GzlzYrwTL1p90fLaADz5eTNcCJA4qpi49Fjt+i0KM/Lmwe+MSrxxp34= X-Received: by 2002:a9d:66cd:0:b0:5b2:3cf2:2e21 with SMTP id t13-20020a9d66cd000000b005b23cf22e21mr13517225otm.5.1647418283696; Wed, 16 Mar 2022 01:11:23 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Aditya Toshniwal Date: Wed, 16 Mar 2022 13:40:47 +0530 Message-ID: Subject: Re: [pgAdmin][RM6131] Port query tool to React To: Akshay Joshi Cc: pgadmin-hackers Content-Type: multipart/mixed; boundary="000000000000994b3f05da5175d3" X-CLOUD-SEC-AV-Info: enterprisedb,google_mail,monitor X-CLOUD-SEC-AV-Sent: true X-Gm-Spam: 0 X-Gm-Phishy: 0 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000994b3f05da5175d3 Content-Type: multipart/related; boundary="000000000000994b3d05da5175d2" --000000000000994b3d05da5175d2 Content-Type: multipart/alternative; boundary="000000000000994b3c05da5175d1" --000000000000994b3c05da5175d1 Content-Type: text/plain; charset="UTF-8" Please find the attached patch :) On Wed, Mar 16, 2022 at 12:16 PM Akshay Joshi wrote: > Hi Aditya > > I think you forgot to attach the patch. > > On Tue, Mar 15, 2022 at 4:00 PM Aditya Toshniwal < > aditya.toshniwal@enterprisedb.com> wrote: > >> Hi Hackers, >> >> Attached is the initial patch that migrates the SQL Editor tool to React >> based. Change highlights: >> 1. Complete rewrite to React code. >> 2. UI improvements based on suggestions and requests. >> 3. Work towards stability and performance improvement. >> 4. Keep row numbers in view when scrolling horizontally. Fixes #3989 >> 5. Fixed status bar at the bottom with useful details. Fixes #3253 >> 6. Relocate GIS Viewer Button to the Left Side of Results Table. Fixed >> #6830 >> 7. Allow to remove single history records. Refs #4113 >> 8. Macros usability improvements. Ref #6969 >> 9. Connection bar visibility issue. Fixes #7188 >> 10. Query tool layout issues. Fixes #6725 >> >> Please note, there are still few minor niggles at some places but the >> patch qualified to be reviewed. We will need a good amount of time to test >> this properly. So, I am sending the feature patch. JS test cases and >> documentation patches will follow soon. >> >> Please review. >> >> [image: image.png] >> -- >> Thanks, >> Aditya Toshniwal >> pgAdmin Hacker | Software Architect | *edbpostgres.com* >> >> "Don't Complain about Heat, Plant a TREE" >> > > > -- > *Thanks & Regards* > *Akshay Joshi* > *pgAdmin Hacker | Principal Software Architect* > *EDB Postgres * > > *Mobile: +91 976-788-8246* > -- Thanks, Aditya Toshniwal pgAdmin Hacker | Software Architect | *edbpostgres.com* "Don't Complain about Heat, Plant a TREE" --000000000000994b3c05da5175d1 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Please find the attached patch :)

On Wed, Mar 16, 2022 at = 12:16 PM Akshay Joshi <= akshay.joshi@enterprisedb.com> wrote:
Hi=C2=A0Aditya

I think you forgot to attach the patch.

On Tue, Mar 15= , 2022 at 4:00 PM Aditya Toshniwal <aditya.toshniwal@enterprisedb.com>= ; wrote:
Hi Hackers,

Attached is the=C2=A0initial patch that migrates the SQL Editor tool to React base= d. Change highlights:
1. Complete rewrite to React code.
2. UI improv= ements based on suggestions and requests.
3. Work towards stability and = performance improvement.
4. Keep row numbers in view when scrolling hori= zontally. Fixes #3989
5. Fixed status bar at the bottom with useful deta= ils. Fixes #3253
6. Relocate GIS Viewer Button to the Left Side of Resul= ts Table. Fixed #6830
7. Allow to remove single history records. Refs #4= 113
8. Macros usability improvements. Ref #6969
9. Connection bar vis= ibility issue. Fixes #7188
10. Query tool layout issues. Fixes #6725

Please note, there are still few minor niggles at some= places but the patch qualified to be reviewed. We will need a good amount = of time to test this properly. So, I am sending the feature patch.=C2=A0JS test cases and= documentation patches will follow soon.=C2=A0

Please review.

3D"image.pn=
--
Thanks,
Aditya Toshniwal
pgAdmin Hacker=C2=A0| Software Architect=C2=A0| = edbpostgres.com
=
&q= uot;Don't Complain about Heat, Plant a TREE"


--
Thank= s & Regards
Akshay Joshi
pgAdmin Hacker | Principal Softw= are Architect
EDB Po= stgres
Mobile: +91 976-788-8246



--
Thanks,
Aditya Toshniwal
pgAdmin Hacker=C2=A0| Software A= rchitect=C2=A0| edbpostgres.com
"Don't Complain about Heat, Plant a TREE&qu= ot;
--000000000000994b3c05da5175d1-- --000000000000994b3d05da5175d2 Content-Type: image/png; name="image.png" Content-Disposition: inline; filename="image.png" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: ii_l0rzsnu50 iVBORw0KGgoAAAANSUhEUgAACwQAAAUACAYAAABDeXSLAAAMbGlDQ1BJQ0MgUHJvZmlsZQAASImV VwdYU8kWnluSkJDQAhGQEnoTRHqREkKLQUCqYCMkgYQSY0JQsaOLCq4FFVGs6KqIomsBZFERe1kU e18sqCjrYkFRVN6EBHTdV753vm/u/PfMmf+UO3PvHQC0e3hSaQ6qA0CuJE8WFxHCHJuSyiQ9BQig AT1gDYx5fLmUFRsbBaAM9H+X9zegNZSrzkquf47/V9ETCOV8AJDxEKcL5PxciJsAwNfzpbI8AIhK vdXUPKkSz4VYXwYDhHiVEmeq8E4lTlfhxn6bhDg2xJcB0KDyeLJMALTuQT0zn58JebQ+Q+wqEYgl AGgPgziQL+IJIFbGPiw3d7ISl0NsD+2lEMN4gE/6d5yZf+NPH+Tn8TIHsSqvftEIFculObzp/2dp /rfk5igGfNjCRhXJIuOU+cMa3sqezFViKsSdkvToGGWtIe4RC1R1BwCliBSRiSp71IQvZ8P6AQbE rgJeKBdiE4jDJTnRUWp9eoY4nAMxXC3oNHEeJwFiQ4gXCeVh8WqbzbLJcWpfaG2GjM1S68/yZP1+ lb4eKLITWWr+NyIhR82PaRWIEpIhpkBsnS9OioZYC2IXeXY8V20zskDEjh6wkSnilPFbQxwnlESE qPix/AxZeJzavjhXPpAvtlkk5kSr8f48UUKkqj7YST6vP36YC3ZZKGElDvAI5WOjBnIRCEPDVLlj z4WSxHg1T480LyRONRenSHNi1fa4pTAnQqm3hNhDnh+vnosn5cHFqeLHM6R5sQmqOPGCLN6oWFU8 +HIQBdggFDCBArZ0MBlkAXFLZ10nvFONhAMekIFMIATOas3AjOT+EQm8xoMC8CdEQiAfnBfSPyoE +VD/ZVCrujqDjP7R/P4Z2eApxLmAC3LgvaJ/lmTQWxJ4AjXif3jnwcaH8ebAphz/9/oB7TcNC2qi 1BrFgEem9oAlMYwYSowkhhMdcGM8EPfHo+A1GDY33Af3Hcjjmz3hKaGV8IhwndBGuD1JXCj7IcrR oA3yh6trkf59LXBbyOmJh+ABkB0y4wzcGDjjHtAPCw+Cnj2hlq2OW1kV5g/cf8vgu6ehtiO7klHy EHIw2f7HmVqOWp6DLMpaf18fVazpg/VmD4786J/9XfUFsOf+aIktwg5gZ7Dj2DmsEasDTOwYVo9d xI4o8eDqetK/uga8xfXHkw15xP/wx1P7VFZS7lrt2uH6WTWWJ5yWp9x47MnS6TJxpiiPyYJfByGT I+G7DGO6ubq5AaD81qheX28Z/d8QhHH+m24+3OMBkr6+vsZvOu4nAA5awO3f9k1ndwW+JuB7+uwK vkKWr9LhygsBviW04U4zAmbACtjDfNyAF/AHwSAMjAIxIAGkgImwyiK4zmVgKpgJ5oEiUAKWg9Vg HdgEtoKdYA/YD+pAIzgOToML4DK4Du7C1dMOXoIu8B70IghCQmgIHTFCzBEbxAlxQ3yQQCQMiULi kBQkDclEJIgCmYnMR0qQUmQdsgWpQn5FDiPHkXNIK3IbeYh0IG+QTyiGUlF91BS1RYejPigL5aIJ 6AQ0E52CFqAL0KVoOVqJ7kZr0ePoBfQ62oa+RLsxgGliDMwCc8Z8MDYWg6ViGZgMm40VY2VYJVaD NcDnfBVrwzqxjzgRp+NM3Bmu4Eg8EefjU/DZ+BJ8Hb4Tr8VP4lfxh3gX/pVAI5gQnAh+BA5hLCGT MJVQRCgjbCccIpyCe6md8J5IJDKIdkRvuBdTiFnEGcQlxA3EvcQmYivxMbGbRCIZkZxIAaQYEo+U RyoirSXtJh0jXSG1k3o0NDXMNdw0wjVSNSQahRplGrs0jmpc0Xim0UvWIduQ/cgxZAF5OnkZeRu5 gXyJ3E7upehS7CgBlARKFmUepZxSQzlFuUd5q6mpaanpqzlGU6w5V7Ncc5/mWc2Hmh+pelRHKps6 nqqgLqXuoDZRb1Pf0mg0W1owLZWWR1tKq6KdoD2g9WjRtVy0OFoCrTlaFVq1Wle0XmmTtW20WdoT tQu0y7QPaF/S7tQh69jqsHV4OrN1KnQO69zU6dal647QjdHN1V2iu0v3nO5zPZKerV6YnkBvgd5W vRN6j+kY3YrOpvPp8+nb6Kfo7fpEfTt9jn6Wfon+Hv0W/S4DPQMPgySDaQYVBkcM2hgYw5bBYeQw ljH2M24wPg0xHcIaIhyyeEjNkCtDPhgONQw2FBoWG+41vG74yYhpFGaUbbTCqM7ovjFu7Gg8xniq 8UbjU8adQ/WH+g/lDy0eun/oHRPUxNEkzmSGyVaTiybdpmamEaZS07WmJ0w7zRhmwWZZZqvMjpp1 mNPNA83F5qvMj5m/YBowWcwcZjnzJLPLwsQi0kJhscWixaLX0s4y0bLQcq/lfSuKlY9VhtUqq2ar Lmtz69HWM62rre/YkG18bEQ2a2zO2HywtbNNtl1oW2f73M7QjmNXYFdtd8+eZh9kP8W+0v6aA9HB xyHbYYPDZUfU0dNR5FjheMkJdfJyEjttcGodRhjmO0wyrHLYTWeqM8s537na+aELwyXKpdClzuXV cOvhqcNXDD8z/Kurp2uO6zbXuyP0RowaUTiiYcQbN0c3vluF2zV3mnu4+xz3evfXHk4eQo+NHrc8 6Z6jPRd6Nnt+8fL2knnVeHV4W3unea/3vumj7xPrs8TnrC/BN8R3jm+j70c/L788v/1+f/k7+2f7 7/J/PtJupHDktpGPAywDeAFbAtoCmYFpgZsD24IsgnhBlUGPgq2CBcHbg5+xHFhZrN2sVyGuIbKQ QyEf2H7sWeymUCw0IrQ4tCVMLywxbF3Yg3DL8Mzw6vCuCM+IGRFNkYRIbuSKyJscUw6fU8XpGuU9 ataok1wqN567jvsoyjFKFtUwGh09avTK0feibaIl0XUxIIYTszLmfqxd7JTY38YQx8SOqRjzNG5E 3My4M/H0+Enxu+LfJ4QkLEu4m2ifqEhsTtJOGp9UlfQhOTS5NLlt7PCxs8ZeSDFOEafUp5JSk1K3 p3aPCxu3elz7eM/xReNvTLCbMG3CuYnGE3MmHpmkPYk36UAaIS05bVfaZ14Mr5LXnc5JX5/exWfz 1/BfCoIFqwQdwgBhqfBZRkBGacbzzIDMlZkdoiBRmahTzBavE7/OiszalPUhOyZ7R3ZfTnLO3lyN 3LTcwxI9Sbbk5GSzydMmt0qdpEXStil+U1ZP6ZJxZdvliHyCvD5PH/7UX1TYK35SPMwPzK/I75ma NPXANN1pkmkXpztOXzz9WUF4wS8z8Bn8Gc0zLWbOm/lwFmvWltnI7PTZzXOs5iyY0z43Yu7OeZR5 2fN+L3QtLC18Nz95fsMC0wVzFzz+KeKn6iKtIlnRzYX+CzctwheJF7Usdl+8dvHXYkHx+RLXkrKS z0v4S87/POLn8p/7lmYsbVnmtWzjcuJyyfIbK4JW7CzVLS0ofbxy9MraVcxVxaverZ60+lyZR9mm NZQ1ijVt5VHl9Wut1y5f+3mdaN31ipCKvetN1i9e/2GDYMOVjcEbazaZbirZ9GmzePOtLRFbaitt K8u2Erfmb326LWnbmV98fqnabry9ZPuXHZIdbTvjdp6s8q6q2mWya1k1Wq2o7tg9fvflPaF76muc a7bsZewt2Qf2Kfa9+DXt1xv7ufubD/gcqDloc3D9Ifqh4lqkdnptV52orq0+pb718KjDzQ3+DYd+ c/ltR6NFY8URgyPLjlKOLjjad6zgWHeTtKnzeObxx82Tmu+eGHvi2skxJ1tOcU+dPR1++sQZ1plj ZwPONp7zO3f4vM/5ugteF2ovel489Lvn74davFpqL3lfqr/se7mhdWTr0StBV45fDb16+hrn2oXr 0ddbbyTeuHVz/M22W4Jbz2/n3H59J/9O79259wj3iu/r3C97YPKg8g+HP/a2ebUdeRj68OKj+Ed3 H/Mfv3wif/K5fcFT2tOyZ+bPqp67PW/sCO+4/GLci/aX0pe9nUV/6v65/pX9q4N/Bf91sWtsV/tr 2eu+N0veGr3d8c7jXXN3bPeD97nvez8U9xj17Pzo8/HMp+RPz3qnfiZ9Lv/i8KXhK/frvb7cvj4p T8br/xXAYEMzMgB4swMAWgoAdHhuo4xTnQX7BVGdX/sR+E9YdV7sFy8AamCn/I1nNwGwDzbbuZAb NuUvfEIwQN3dB5ta5BnubiouKjwJEXr6+t6aAkBqAOCLrK+vd0Nf35dtMNjbADRNUZ1BlUKEZ4bN oUp0e+W4Af+Dojqffpfjjz1QRuABfuz/BbfwkAzZCGeBAAAAlmVYSWZNTQAqAAAACAAFARIAAwAA AAEAAQAAARoABQAAAAEAAABKARsABQAAAAEAAABSASgAAwAAAAEAAgAAh2kABAAAAAEAAABaAAAA AAAAAJAAAAABAAAAkAAAAAEAA5KGAAcAAAASAAAAhKACAAQAAAABAAALBKADAAQAAAABAAAFAAAA AABBU0NJSQAAAFNjcmVlbnNob3QfoGL4AAAACXBIWXMAABYlAAAWJQFJUiTwAAAC3WlUWHRYTUw6 Y29tLmFkb2JlLnhtcAAAAAAAPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4 bXB0az0iWE1QIENvcmUgNi4wLjAiPgogICA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cu dzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogICAgICA8cmRmOkRlc2NyaXB0aW9u IHJkZjphYm91dD0iIgogICAgICAgICAgICB4bWxuczpleGlmPSJodHRwOi8vbnMuYWRvYmUuY29t L2V4aWYvMS4wLyIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90 aWZmLzEuMC8iPgogICAgICAgICA8ZXhpZjpVc2VyQ29tbWVudD5TY3JlZW5zaG90PC9leGlmOlVz ZXJDb21tZW50PgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+MjgyMDwvZXhpZjpQaXhl bFhEaW1lbnNpb24+CiAgICAgICAgIDxleGlmOlBpeGVsWURpbWVuc2lvbj4xMjgwPC9leGlmOlBp eGVsWURpbWVuc2lvbj4KICAgICAgICAgPHRpZmY6UmVzb2x1dGlvblVuaXQ+MjwvdGlmZjpSZXNv bHV0aW9uVW5pdD4KICAgICAgICAgPHRpZmY6WFJlc29sdXRpb24+MTQ0LzE8L3RpZmY6WFJlc29s dXRpb24+CiAgICAgICAgIDx0aWZmOllSZXNvbHV0aW9uPjE0NC8xPC90aWZmOllSZXNvbHV0aW9u PgogICAgICAgICA8dGlmZjpPcmllbnRhdGlvbj4xPC90aWZmOk9yaWVudGF0aW9uPgogICAgICA8 L3JkZjpEZXNjcmlwdGlvbj4KICAgPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4K2gK9FAAAQABJREFU eAHs3QecE2X+x/GHpe0CCyyCgKAUEQFFBRtiRywnf/QErOgpds9256l4CpbTs59dDwuCnnqKiAW7 iIoNGyB6YKWKgHQW2GVp/3wfeOLskDLZZLNJ9vO8XiHJlGdm3jOZTch3fqkxY9a8TSbUChsW6o6G AAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAlkg0LRo c/43LwvWlVVEAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEE EEAAgQgCmzZtMgSCI8AwCAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAAB BBBAAAEEEEAAgUwXUBi4Ro0aBIIzfUexfggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggg gAACCCCAAAIIIIAAAggggAACCEQSUBhYoeBakUbGGrZ6TYlZumylWbW6xJSVrbOdxJqecQgggAAC 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 CCCAAAIIIIAAAggggAAC5FZjHwMKA6u4b17syRiLAAIIIIAAAggggAACCCCAAAIIIIAAAggggAAC CCCAAAIIIIAAAggggAACCCCAAAIIIIAAApkqoFAwgeBM3TusFwIIIIAAAggggAACCCCAAAIIIIAA AggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAgEECAQHQGISBBBAAAEEEEAAAQQQQAABBBBA AAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEMk1g06ZNdpUIBGfanmF9EEAAAQQQQAAB BBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQCCBQo0YNOxWB4ABYTIIA AggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggEAmCqhKMIHg TNwzrBMCCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAJx BBQGVpVgAsFxoBiNAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCA AAIIIIBAJgooDKxQcK1MXDnWCQEEEEAgdwT0x2b9uvVm3bp1ZsOGDbmzYWwJAmkWqFmzpqldu7ap VbuWvaorzYtncQgggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIZKOAqBBMI zsCdwyohgAACuSKwrmydKS0tzZXNYTsQqFIBBeptqD70ksrPzze169Su0vVh4QgggAACCCCAAAII IIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAJVL6AKwWoEgqt+X7AGCCCAQE4KKAisQLBavXoF pm7duqZWzdCfnc1/f3Jym9koBCpNYJMx6zesN2vXrjVr1pTYoP2GjRtsMLjSlknHCCCAAAIIIIAA AggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAhkvoArBagkHgleHQihLl600q1aXmLJQ0Mt1 lPFbzArmhECtWjVNQX5dU1CQbxo3amDqhe6TaTqel4WO5+LVa7Ycz8n0xry60KBOqGJlYf16pqio oakfCoEm08rWrTdrSjaHStet31IZM5kOs2Te1aHzq1r9+sn5VXRza9asaWqHXmuqPlov9HrTPk20 KQism/pq2LDQ1KqV8J+bRBfJ9AjktkDo/KrXkW4K169cWbz5NZa3+bWa6MZX1/PrkqUrEqVi+koQ +P39XN3Q+7nClLyf4/NJJewougwk8PvxnJrPJ9X1/FzV738D7ewUTpSK99ve1eFzrVcj+cep/lyb /BrRAwIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCAQW8BVCK4xY9Y8Gw0uDAW24rW58xYaghTx lBifToGWLZqa5s2aVGiRv4SO58UEgypkF3Smpk0amdatmgedvNx0K4tXmxUrV5UbVl2eZFogolHD BqZhYf3A/LpQZFXx5n1XVNSYMHBgOSZEILjA+vXrQxe0LLczNChsYNwbuyA9VOfzK+9jgxwh6Z8m mfdzfD5J//5iibEFkjmeq/P5OdPe/8bey6kfm+j7be8a8LnWq1E5j5P5XFs5a0SvCCCAAAIIIIAA AggggAACCCCAAAIIIIAAAggggEB5gSaNNme7AgeCf545zxSvWm17adO6uWm+bRPTIFS9Mk+lU6pB GzfhK7uVvQ/asxpsbfRNrGqH0rVloeNwTahKdbGZ++tvdkUVVGzftlX0lY4wZsbMX8zKUD9q9ngO hYobNKg+x3MEkpQM2qgg6KoSs3DRUjP7l4W2z4YN6pn27Von1P/iJctNSelaO0+TxqHKgfXyTX7d OqGqtdWjyuyXU76z277XHp0SckvVxOtClZlLy8rMmjWlZunyYtut/Js1LQq0CFUGLi0tDe23glCV 4+BB4kCdMxECCIQFVq9eHXqdlpj8/Hxb0Ts8IsaD6n5+/eizqVaH93NV+742Ve/n+HxStfsxxqkm raNy5fNJdT8/V/X737QetKGFJft+260vn2udRGrvU/W5NrVrRW8IIIAAAggggAACCCCAAAIIIIAA AggggAACCCCAQHSBbRpvLiYXKF2nylsKA6v63N7dOhkF/GgIVIWAQok2mLhNY9OkqNB8//Nco0pa CqAGrRSsCkoKAxfk1zVdO7cPVT7leE7VvtQFAvLUTfvjm+kzrLXMg1YK1v5UGFjh3+bNikwh55tU 7Z7A/dSuXcvoVli/nv0Z94WLlhmFt7RvglQKXrdunV1W3bp1Ay+TCRFAIHEBvcYUCNZrrnad2nE7 4Pwal4gJ0iSQivdzfD5J085iMXEFUnE8c36Oy5xzEyT7flsgfK6tvMMiFZ9rK2/t6BkBBBBAAAEE EEAAAQQQQAABBBBAAAEEEEAAAQQQiC6QF33U5jGrQ0ET9/PKhIHjaTE+nQLNQqHgnXfc3i5y/oLF Zk1JadzF63hevHSFnY4wcFyupCZQKFjGajKXfbxWFqpMu2LlKjtZ820JA8fzSsd4BbIVzFbTvikL Vf+N1zZs2GAnqVUz0DUn8bpjPAIIRBFwrzH3mosymR3M+TWWDuOqUsC+n2uf+Ps5Pp9U5V5j2dEE KnI8c36Opll9hlfk/Tafa9N3fFTkc2361o4lIYAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAKb BVTsVy1uIHjpspV2wjatm1MZ2ErwTyYJ6Ev37bfb1q7S8hWbg6Sx1m+Z93imMnAsqpSM05enOneo OftYHavSpVqTxoW2Om2saRmXPgGFFLRP1NaEqjcHbpv/zgSenAkRQCBBgQReY5xfE7Rl8rQKNGuq 93PN7DKDvJ/j80ladw8LS1Ag0eOZ83OCwDk6eaLvt91nK/v/NHyurfSjItHPtZW+QiwAAQQQQAAB BBBAAAEEEEAAAQQQQAABBBBAAAEEEPAJbNy40aigXNxA8KrVmwN6zbdt4uuCpwhkhkCTos1BxZIA FYKLV6+xK928Gcdzuvaes3b2sZa7LlQhWK1evfxYkzGuCgTcPlkXoEJwFawei0QAgTgCnF/jADG6 ygWaFDW06xDk/RyfT6p8d7ECcQQSOZ45P8fBrEajE3m/7T5buc9a1YipyjbVWTv7KlsRFowAAggg gAACCCCAAAIIIIAAAggggAACCCCAAAIIRBDIy8szNWvWjB8Idj8P36B+QYRuGIRA1QuompJaSYDK peHjuQHHc7r2XIMt1s4+1nJdICK/bp1YkzGuCgTy62zeJ+vWb6iCpbNIBBBIVoDza7KCzF/ZAhV6 P8fnk8reLfRfQYFEjmfOzxVEzsHZEnm/7T5buc9aOciRcZvkrJ19xq0gK4QAAggggAACCCCAAAII IIAAAggggAACCCCAAALVXmDTpk3xA8GaSC2vRgK/S13taQFIp4ALj64PEFTccjhzPKdxB7lzh7OP tegNodLlarVr1Yo1GeOqQKB27c37RKXlaQggkH0CnF+zb59VtzVO7P0cn0+q2/GRbdubyPHM+Tnb 9m7lrW8i77fdZyv3Wavy1oqenYCzdvZuOPcIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAQKYI BAoEZ8rKsh4IIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAA Aggg8LuADQPn5cWvEPz7LDxCAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQ QAABBBBAAAEEEEAAgUwRqFGjhl2VvExZIdYDAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAA AQQQQAABBBBAAAEEEEAAAQQQQAABBBIT2Lhxo6mV2CxMjQACCCCAAAIIIIAAAggggAACmS4wf/58 M3PWTFNaUmpmzpxpV1fDSkpLtlr17Vq2NPn5BaFbvmmpxwX5pl3bdvbxVhNn2QAcsmyHsboIIIAA AggggAACCCCAAAIIIIAAAggggAACCCCAAAIVEsjLyyMQXCG5FM40bdo0U1xcnJIeO3fubBo2bJiS vuikagV++eUXs3LlStOlS5eqXRGWjgACCCCAAAIIVBOBVL4v95MVFhZmzfs6HPx7L7ueK/g7adIk M3369IjB32hb82soKOzatOnT3ENTEAoJt2vXznTv3t3o82a2NByyZU+xnggggAACCCCAAAIIIIAA AggggAACCCCAAAIIIIAAAqkQUHXgGjVqEAhOBWZF+vjss8/M+eefb0OfFZk/2jyDBg0yl1xyCcHg aEBZMPyFF14wV155pV3T22+/3fTv3z8L1ppVRAABBBBAAAEEslOgst6X+zV04d6wYcPMvvvu6x+V Ec9xyIjdUOGVUABWnyOWLV9W4T4izahqwgoI61bUuMj06XN0KBicuRct4hBpLzIMAQQQQAABBBBA AAEEEEAAAQQQQAABBBBAAAEEEEAg1wVUHVitVjo3VFVPx4wZY/Rlc6ymClo9evQw/fr1y8lgqyq/ VkYYWKYjRoywvk8//XRO2sU6bnJhnDcMrO1xwWBCwRXfu6WhEMP48ePN/PkLKt5JjDlbtmxhevXq ZX9iOcZkjEIAAQQQqGYC7v1upoY/q9nuiLq5lfm+3L9Qt6wPPvgg496nu3XTfWU3t6xMdKjsba+s /qeHwrpPhT7/VXZT2FjL6blfz1AwuE9lLy7h/nFImMzce++95vPPPzetWrUyuhiVhgACCCCAAAII IIAAAggggAACCCCAAAIIIIAAAgggkJ0Caa8QnGjFqXfeecdWOMrFYKssKvPLdv3M78CBA00u2mXn yy3YWvvDwG4uhYLnzZtnKz+7YdwHF3jttdfMpMmTg8+Q4JQzZs4wJSUloUrOAxKck8mrk8Dy5SvN P25+0G7ygOOODAVpupfbfP1RXru2zBQU5Jcbnq4nVb38dG0ny6kcgfkL5psPJ0ww3333vVlbtjap hdStU9d06rSzOeigg02LFi2S6qsqZ77xxhvNyJEj7SroIrdrrrnGdOmSuRU1q9Kqqpdd2e/L/dun zwBa5uGHH+4fVaXPcahS/qQX/vEnnyTdRyIdfPLpJxkZCMYhkb24eVq99nVT00WoXMSy2YV/EUAA AQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAIFsE1CFYOV/0lYhWJVnEg3B5mqwVdvlbaqIPHToUPsF nHd4rMeylKkLm/inzVU7/3bm0vOJEydG3Rzta1XYpmpTVKKoI/LzC6KOS9WIdCwjVeuaS/08O+o1 M/27n42pYcygP/U3bdu0irt51/3jPjvNnt13Mcf832Fxp0/HBCUlpebWOx8xa9aUmoEn9TV77N45 HYsNL6Oqlx9eER5kpYDCwI88/IgpW1eWkvVXoPjrqVNDr+3vzHnnnpe1oWDv+zP9fe/bt6+59NJL ubgnJUdJajvxvy9Pbe+Re9MyMy0QjEPkfcVQBHJd4JlnnrH/r3DffZvfI/u313uBi39cRZ+3bt3a jB07NuMqpVd0e5gPAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEMgEgU2bNhmFgtMWCHZVZxLd eBdsrciX5vqiqXfv3hn/RdPDDz+ccCWehg0b2hCxKseqmnKk5uyoFBxJJ/OG3XHHHXalxowZE3Hl VEH4jDPOoMJgRJ3oAw87rJeZOXOmUWitMlrLFi2NlkFLv8CaUJC2eNVqu+Dnnn/d/O0vZ5patWrG XBE3fWlpasKLMRcWcOSixUtNcfHm7Zg1Z17aA8Hxlq/A8Lf/+8FuzY7tdzBNmjQOuGVMVh0EJnww IWVhYK9XWVmZmTDhA3PCCSd6B2f1Y13co7/luriHCoxZvStZeQQQQKDaCHgvcEnVRutC1+nTp/O3 MFWg9IMAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIhARq1AhVVAy1tAWC7dIq+I+CrRWtWqVQ sAKxus/EpurAyYRC9LOe0QLB2l65XXnllWbYsGGZuPnVfp0UDNKXrLfddpsN+sYLBRcXF1d7s0QB VL1Xr5PHHnvMlK4tTXT2mNPn1823fVMhOCZTWkYu/G2xefvdj8zRRx6cluWlciHbt97O9PnDIWb5 8pXm4AP2TmXXgfqKt/xlofX6b6gas9pppxxLIDiQavWZ6Pvvv6+0jf3hxx8rre+q6lghqFNOOcUM GjTIVgvWBV40BBBAIFmBgjT8Ikay65iO+XFIvbIuSE11KLhVq1amc+f0/iJG6mXoEQEEEEAAAQQQ QAABBBBAAAEEEEAAAQQQQAABBBDILIGNGzemt0JwVW2+ghc33XRTxgZiGzVqlBRNkCCJAsMKBnfp 0iWpZTFzagUUBlZYW23gwIE2uK59FC0U3K9fv6TC46ld++zqrWXLlqZPnz7mhTEvpHTFBwzob9Q3 LTMExr830ezetZNptV3zzFihgGuhC3QOO3S/gFOnfrKqXn7qt4ge0ymwtmxtpS2upKSk0vqu6o5H jBgRrhZckV/BqOr1r47L1wV8qu4c7SJDfebQ+7qK/ipKNpoq1KeLDnXB2hVXXGH0yyW0qhHo1auX mTFjRsovfou2Nf379Y82qkqH45B6/qFDh9pfJkp9z/SIAAIIIIAAAggggAACCCCAAAIIIIAAAggg gAACCCCQSoGsqhCc7IbHqqCbbN/Jzq/wQDJh3dGjRwdaBYUTCAQHokrLRN4wsBa4cuXKmKFghYFd UDgtK5iDC+nevbuZP3+++eTTT1KydT336xmqbEXIPiWYSXaSl1fDlr3fsGGjefb518xfLz7DXvGS ZLd29k2bjNEVNDVr5qWiu5T2oe2Nt15BpknpStEZAggEFtDf/vPPP98oEDxkyJCoQdPAHTJhpQpc eumlMfeRgsKaRhWgq0vTLzC4zxd6fN9991WXTc+47dQFahdddJEZP/5dM2ny5KTWr3u3bqZxUZFp 36596MK3Fsb9EkZpaUnovfQC23e7du2SWkZlzYxDxWT1+tXfpGR+uahiS2YuBBBAAAEEEEAAAQQQ QAABBBBAAAEEEEAAAQQQQACBVAkoELwpFHSqlaoO6afiAoMHDza33XZb+Av1oD2putyYMWMCTa4v +KqiJRN2Vlg6WhW2qtiWVC3THwZ2/UYLBWt8vDAwzk4x9r2qBM9fMN/MnDkz9oRxxioEob4ypSno XNFKxcuWLTNFodBHNrfatWubQw7ax7z1zkeh6oQLzXsffJZUxd3S0rXm088mmy++/MYsXrIsFAje ZFo0b2orDx96SA/7OJVexatWm8cef952qUrBu3XdOdz96tUl5pHhz9nnx/zfYaZZ0yLzxtsTzJw5 v5qFvy0xDRrUM+3atjb77r276bRzezvdktA6f/zpJDNj5i9m3q8LjHy2bbaN6XVoD7Pbrr/37RYS bfnDR44OhUNWmXXr1rlJzetvfmDen/C5fX7OWSeYBvXrhcfxAAEEKiagC9d04ZbCpPpp9kxsvM8I tlcmTpwYbEKmqlKBXD2e9X6uf/8B9j3qpEmTzbTp0xJ6z6v3t6r8G+19oYLBmRoE9h5QOHg1gj3W Z25VAs6Elquvz0ywZR0QQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAg9wUUCiYQnAH7WV969e3b 14ZfgwZgNU9VhXyDkrngqyoO6SeWE2n62eFx48bZinmaP1eaM4m2PbFCwdHmcX3iHE2o/PBTBw4M BazvrPBPKhc1bmzUR6a0SZMmmRfGvGC6d+seCoEk9lp54YXRZvr078zRRx9tVEE5m1vvXj3N1G++ DwW+F4WCwR+arrt0NNtuu03Cm1QWCr8+/NizZnYocOttv87/zeg2Zep0c2zf3qZnj27e0Uk93rB+ g5n7y3zbx6pQONjbNmz4fdykKf8z3377g1GA1zUFdr+e+p359n8/mnNDAd38/Lrm0cdHmVWr1rhJ zIYNa82cub+akU+OMUcefmDodkB4nB5EW762d9myFeWmXbJ0udHNzVduJE8QQKDCAvr7f+ONNxqF g6+55pqELxKr8IIDzMj7jK2RZOK/KE/7UO/PaZktkKvH87uhysCq6KvAroK7PXv2tDftDV0Ip4vH SkIVfv0Xxem53tsqSJwNYd94RxcO8YQye3yuvj4zW521QwABBBBAAAEEEEAAAQQQQAABBBBAAAEE EEAAgVwTIBCcQXtUFXF1y4WmQMuVV15pN0Vf7KkFDQUrDOxCFuqjYcOG9ue0bSdZ/I/7gjPeJrhQ 8NixY+NWSMY5nubW4xWSOPvss80DDz6w9cgAQwYOPDX808kBJq/USaaHKr8pDKw2afIkex80FKww sPtJafVRUJBvOnfuYvvIxn9q1qxpTjy+j7nvwSfM+lDA9tnnXzcX//lUoytfgjZVAn7yqZdsGLhm zTxz1BEHmV277GTqh6rwqiKvquMqJDt6zJumTp3aZq/uuwbtOiXTfTpxsmnZopk5IhTo3bH9DrbM //TvfjZvhyojK8j8+BMv2GG1a9UyA4470nTo0NYud86ceebVN9631X7ffe8Ts/eeu5omTRrHXacL zj05FCbeaH5btMSMCPWtdsz/9TKdO3WwjwsL69v7XPln9qxZZtbsWSnZnLZt2po2bdumpC86qV4C qjCri8RULfiSSy6p8o3nfUbkXaD369WtGnBhYaEpLi6ODJIlQ3P5eFawd/z48TYUrDBwu3Ztw+9X FfRNJOyrX4+YPHmyDREvX74s9N5nfig0XGQrB7u+EukvnYcHDolr67Pn9OnTwzPuu+++4cfpfJDL r890OrIsBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQqL4CmzZtsjkpAsHV9xio1C3XF4mdO3cO f7kYNBTsDQNrBdVHVX0pmUqgoGFgt8zevXvHDQNrWpydWGL3LVu2tD+J7MK0QefWzyhr3kxpCmO0 bNEyVBV3c3XZoKFgbxhY26I+MjXYkYj1Dtu3NAcfuK9574OJoWDnL+ajj78yBx6wV+AuXn39vdDP a/9kpz9r0PGmU8f24Xm7dO5gQ7jDHlX14FDANjTtbrvubIPB4Ykq+UHDhg1CVYBPNI0aFYaXpIBw rVAY+qWx48zatWV2+EmhYPQeu3cOT7NtsyahithlZsxLb9uw9Pc/zjL77btHeHy0B023KbKjVKXY tUYNC03zClRedvNn8r0L8CYbCiYMnMl7OXvW7d577zV676CLqaryfRDvM7LnmKnMNdVxqAuO3K+a VOayKrPv6nA8z5g5w+imtl3oPasu9ioqKjKNQ1WAW7ZsEQ4JR3NWqFhVdv1tWSgYrJvru0uo3/79 +8Xtz99Pup7jEFz6oIMOKhf2P/zww82wYcOCd5CiKavD6zNFVHSDAAIIIIAAAggggAACCCCAAAII IIAAAggggAACCEQUcEUTCQRH5GFgsgKq6vvMM8+YU045JXAoOFIYWH2or2xuiYaB+/XrZ+64445A m4xzIKaIE3Xv3j30s8kzwlVyI07kGdi9WzejeTKpba52fJZ57LHhgUPBkcLAZ599VsYGOhL1PuqI A823//vBLFq81Lz25vtml112Mk2KGsXtZv369ebTzybb6Tp32rFcGNjNXLduHVsh9/6H/mOr7X78 6SRz6MHpq6J26EH7lgsDu/Xq2nVnGwjW82ah8O/uu3Vyo8L3qnSsQLDaolDFX1pkgWRDwYSBI7sy tGICqkKr91GDBg0yQ4YMqVgnSc7F+4zIgD169Ig4YsSIEeWCdREnysKB7tcHunTpYgPqn332WRZu hbGfKarT5xNV9tUtUlOgd+DAgeFR80PTjQn9YkS06cMTbnkwLfQrFTPvnGlDwZn+CxM4+Pde+ecP P/ywrXiuKsGq0tuqVatyE+hCgHHjxpUbluyT1q1bG33m9Tb+3ng1eIwAAggggAACCCCAAAIIIIAA AggggAACCCCAAAIIVExAVYIJBFfMjrkCCCTypV6uhoFV4e++++4LoLV5EgV+FPxJpOGciFb5afv0 6RP6OeQF4TBt+bG/P1MFXU2biS2RUHCuh4G1f2rXrmVOGHC0eejhp01Z2TozavTr5vxzTo676376 eU64wm6PfaJXz23XtnWoQm5Ts/C3xWbevAVx+03lBHk18yJ2p6q9rin46674ccN037hxw1AQqoEN MhevWuMdxWOfQEVDwYSBfZA8TZmAQqYKTimMWRWN9xlbq6uSpW7+pn10/vnn+wfzPIMEcvV43r9n z9CFbjMDS+tXWFwrLS0xw4cPNyWh+0Sapn/q6afN2WednTG/NFEZDvl180O/tFAalSYTHaKubIQR OpcVFhaakSNHGlUHHjp0aLmpdE6bN29euWGpeNKpU6et/q7l6uszFV70gQACCCCAAAIIIIAAAggg gAACCCCAAAIIIIAAAgjEE1AYWJmhyOmieHMzHoGAAu5LPe+Xzv6KubkaBtZ2JRIG1s8xJxoGdruh Ojs7g4rcK0yr6mj6oj9a0zg7TWjaTG0uFKzgsmuTJk+yPzfvnleHMLDb1h3bb2969uhmn/7w4yzz 2edfu1FR75ctWxEet802jcOPIz1o2rTIDv4tVIU4E5o3AOx97F+3vNAffVowAYWCFfAN2ggDB5Vi umwV4H1Gtu451juSQC4ez6rSq2Cu971gpG3XME3j/dWLF14Yk3AY2Nu3PtspVJwJLdUOsrriistN r1694m5eJjnEXVnPBCtXrjSDBw+2lYH1ebSqWy6+PqvalOUjgAACCCCAAAIIIIAAAggggAACCCCA AAIIIIBA9RBQZogKwVm0r/XTna4SmX6mtzKq9FQWh/tSTz97rZ8iVdMXpq6NGTPGPTQKDuunfDVP Njd/yDnetujLV/dzzPGmjTa+OjpHs0hkeFFRkRkwoL+tcBZpPo3TNJneXCj4sceGhyseKxTs2qTJ k91DGwQ5++yzjObJ1fZ/Rx9qpk3/ySxbvtK88tp407nTjrZCbrTtXbX696q5jRr9XnE30vQNC+vb wUuXLI80mmE5IhC0UjBh4BzZ4Rm8GWecccZWVRSrYnV5n/G7ut6L6+ZvquZM2yygzy6qmDxx4kRT XFyccSy5eDy3a9fOXHTRRaFfv5hvPvnkYzNt2vSIlW17hqoJuzZ9+rTQ+6Vp7mmF7pctX2befXd8 xvyaRqocunfrFvp8NiCwSaY5BF1xVQCeNm2avTBVVYJVkb5169bh2YcNG2beeeed8PNUPFD/sare 5+LrMxVu9IEAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIxBJwFYJrxZqIcVUv8P/s3Ql8FPX9 //EPOUgCJCTcRzhFwqGogBwql3J54AUqnoW/VCuiVtRW61G1tj+rqIhateJ9FgWqoAW5FBQE5ZYb EUgg4QxJICQBkv9+vnEmu8luNptssrvJ69vHsrMz3/nOd54ziZvmnc/qx3e+/vrrdhjYmpGGEG6/ /fag/AW7NUfnZ2+/1NO+hIGdxcq3XJOcyyfkfq/SgrGlbXM/WuDW6lw16OspFKwz00pn1T0MrOcZ FVVbrhl1sfx76n/k+PEc+WzmXPl/vxupm9y2eKcQcG5OrtSt4zksnXW0MDxcu3ak27FYWX0EvIWC CQNXn2sdjGei74v0o9utPwgLhjnyPqPwKmjI1ZdPgQiGa1eVc9CfX2bPnm3+wE+DhiNGjKjKw5f5 WNXpfl66dKn5WUr/iK158+YmyDrS8bYnPT1dfv31V8cfSBU+K06XLp1to4ULF9rLZV2w3kt++eWX Yv3B2dJlS0WDxoH+Izp/OWhF4IsuvMgmSYhPEA0a5zjeU6ampdrriy8Ei0PxeZX2Wr9GtVl/0KCv NQRsNQ3ulhbetfr5+7k6fX3624bxEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAF3AtanihMI dqcTROu0Wq67X8BpOES3Besv2N0RuvulntVPQy9UBrY0KvZcE5wrJlS993YXCrbO2ApwaJ+a0Dp1 bC+9enaTFT+tk583bJXVazxXwGvcuIFNcuhwhjRoEG+/Lr6Qnp5hVnmrJFx8P16HpoCnUDBh4NC8 nqEy67vvvlvuueeeoJwu7zOC8rIE1aT0Zxe9T7S5+zkmmCZbXe5nrfL75VdfSvdzuptgroaCtWlA t7SQ7l5HNWFfWpfOXRxh46vNp0xo9dxNmzbL8ZzjZog0R1C2tGP5cpzy9q2oQ3RUtKl03L17d5cp 6GvndVqFWYPWWok5/YjrJ0YEg4PL5L28WLx4sf0pPto12P8IxTqd6vL/H1jnwzMCCCCAAAIIIIAA AggggAACCCCAAAIIIIAAAgggUFEBrRCsLayiA7F/5Qnox3WW9kt03aZ9QqlZv3TXX+BZrbr8Mu+B Bx6QGTNmWKfl9fmZZ55x/ELdc8VSrwOU0qE6O5dy2mz6TUADv1oFWAPAVqtpYWDrvK8YcZHExtY1 L2d+7vnjjps0bijWX8qs/3mLtXuJ5wMHDsve1P1m/ekd2pbYzorqKaChYA0AW40wsCXBs78FNIj1 7bffBm0Y2Drfmv4+Qz/uXq+V88P5va3lxHNoCFSn+3nV6lXy8isvy6RJk2T69OmyevVqE1x1dyU0 0OpL637OOXLjjTeaMLDup+NbYWB97Wu4WPeprFZeh1GjRroEfz3NTwPXWhF5woQJjhD2OS7dgsnB ZWIeXuj97/y9zEO3gK2uTl+fAUPkwAgggAACCCCAAAIIIIAAAggggAACCCCAAAIIIFAjBDT3pA8q BAfx5R41apTX2Q0dOtSnEKrXAaugg/VLvRtuuMEcjcrAlYNeHZ0rR6p6jmqFgqdOfdOcoAaEdV1N azEx0TLqquHy9nvT5eixbPv0C6Twr2KsFXXqxEjvc8+SH1askeUr1srA/r3cVgn+ev53on9RExYW Jj3O6WrtXq2fIyKK3iocz8mt1uda2slZlYK1j/NyafuwDYGyCsTGxpoQ8NixY8u6S8D71eT3GfoH Xe7+qOvFF1+UKVOmBPzaMAHfBarb/Zx+JF3SV6eLBmOtFuN4H3jJJZfYgVetcuvcrD8e+/LLLx37 rXbeZEKvWhHYahoGdh5b16elplmbg+bZV4eNGzdJZ0cV5LI2fW+tLhqutioFB6NDWc8nWPtVt6/P YHVmXggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIBDaAvn5+eYEilI+oX0+NXb2+suxUGzWL/V0 7qF6DpZ7MFUGtuZkPVcnZ+uceC67gBUK1j1qYhjYkjrzjI5y9lmdZc3aTdYqt8+XDB8ga9ZtkhxH 6HXKv96Xm2+4Qtq3a2X+eiY7+7h8MXuhrFy9wex73aiLpWnTRm7HqW4rE+KL/juzbv1mOatbJ6nr CFDrJw04/rCoRjWCwDXqclfZyQ4ZMkT0UwNC8f0Q7zNcb5M+ffpU+0BwZmam60m7eZWVleVmbfCv CuX7+XxHtVpvFX+1mq8GZD21Sy+91LxftIK/VihYK+Ba63Rfd2FgT2NW9fqKOmjIOS0tVW691fUP 6dT2yJEjEh8fbx4JCQkup3ZO9+6ycOFCl3Wh8kL/kGHFihX2dMeMGSP636Vga6H89RlslswHAQQQ QAABBBBAAAEEEEAAAQQQQAABBBBAAAEEqqcAFYJD4LqmpKSYj+8sbaraJ1RbKAZfilsHcxjYmmt1 cLbOhWffBWpyENhZ6+orhsq2bTvlmCPY66nVq1dHfnfTVfLhx19IZuZReeW1Dx3BmCipV7eOHDxU FKAZPrS/nNuzm6dhqt36yMgI6dzpNNm0+RfZ6jB8/G9TJDw8XO6Z8Dtp3qxxtTtfTgiBqhJo2bKl PProo0EZvPLFoKa8z9DKv//85z8lMTHRLY++J3/qqafcbgv1lX/6059EQ4IaGty0qeiPa2bMmCEa gtamy1bbuHGjvPPOO9KrVy/zbK0PhedQvZ+1qu1NN94oWt3XqlTrzbt58+YuXVatWiXt2rUz65wD wM7LpYWBmzVv5jJeIF74w2Gvo3Lym2++KVdfPVIsox2/7nAJ/LZv115uvPEG+w/u9PVCx/+0BYOD L/bLly8XfVhNPwkjGAPBOr9Q/fq0bHlGAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBKpCgArB VaFczmPoL9bdfRyx83D6S1laYATU3jn84G0WWv3P2/X0NgbbEUCgfAIa9r3yiiEm7FvaCEkd28kD E8fJ9JlzZdsvu+T48RxTMVj3adQoQQb06yXn9+1e2hDVctvVVw6Vd96bIXv27pNTp/LNo1qeKCfl s0BU7SjJzcv1eb+y7KBjV9em4cp77rmHcFMIXeAffvhBBgwYEEIz9t9U9T2vu585NAR9ww03uD3Q 3/72N7frWVl5AhqG1YcGe7XSrbuKwWmpafYErPCvtUL30Wb9vOIcBNb1eg9YffR18daiWMC4+Paq el1RB52nFQq+0RGyLu6k2zUgPH36DEco+EZ9KenpRX84FiwOZmJl+Oejjz4yvTQU7O6PGvRrWQP+ /mz6hxWzZs3iv4H+RGUsBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQqPECWiFYG4HgIL4VNHjw 9ttvy9ixY93OUrc5V/Nx24mVlSbgS3VmwsCVdhn8MnB0dLTHcUrb5nEnNlSJwP/73UifjtPjnK6i D28tNraujLnlatPt8OEjkuGoFpyQUF/qx8XKb//t9DZEie3x8XHy/DMPlVivK0rbFhdXz+N+1mA6 J09jW330+bGHJzi/tJdLO77VqWGDeJl4z1hTKfnYsWxp2CBB1ImGQFJSkqxbv65SIDp1SqqUcQM5 aOfOnU1V4N69ewdyGhwbAQSqsUD37t1FHzk5xyXVEQDW8KoGgY87XhcPCTdv1lxS01JtDSvwa4WC rQ3ewsDar5ljrGBqFXHQ81CvqW9OlUsvvdT4FT+3jZs22qucK2cHm4M9yVIW9P9TsML9xf/75O8w sE5Df45Ws+LHKmWKbEIAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEPAikJ+fL/ppkFUWCNZf 9gQqvBrKv2jSKj3qdvfdd0uXLl3MZdWP4dWPLZ43b56Xy8zmYBAgDBwMV6H0OejHAUdHRUtObo5L R11nfVSwywZe1BiBBo4grD5o4ghD15LGjRqYBx4IWAL9+/c3oZ4TJ09Yq/zyXDuytvRzjF2dmr6X 06rANAQQQKAqBKKjY0x1W3cVbq3jX3TRhfLBhx9aL81z8VBwWcLA5/U9z/HHUwku4wTLi/I6WPP/ 8ssvrUWX54T4wveHGry2gtbB7OAy+WIv9P8v0UrB7ip7a0V7f4eCW7Zs6ahm3bnYLHiJAAIIIIAA AggggAACCCCAAAIIIIAAAggggAACCCBQEYGwsDCze5UFgjUAcfvtt0tWVlZF5u3zvrGxsfLII4/4 vF9l7mAFe8t6DA3+VjT86+sxyzo3+pUuQBi4dJ9g2qrVv6bPmO4yJV1HQwABBBDwLKB/NKHv7xYv XixbtmyR3Lxcz53LsCWqdpRo1eH+A/qLVq4M1eYcoNKglb4f0I9IpwWfQCDeIwfimN7kAzGnQBzT m0NN2965cxfp4ng4V7tVAw0F5+TkmIdWGC6taTBWg8Wh3Dw5lHZOGrTWMPCbb75pqgmHqoNWBnb+ w+3if0z96KOPmsr2pVmwDQEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAIDgEqrxC8OzZs0Ur DDn/wqkyKfSXWfpxp8EWwNB5aVC5qsLReqziv9irTHfGLhQgDBxad4J+rLBWNtMK3No0pFJaRbXQ OjtmiwACCFSegIaCr7vuuso7QAiOrAGqoUOHmpnzHiy4LyDvywuvDw7BfZ9W5uxGjrxadjy7o8Qn ZRQPCXuaw8iRo0Sr8IZ68+Tg6bzS0tJMGHhvaqrpEqoOxf8bNXbsWE+nzHoEEEAAAQQQQAABBBBA AAEEEEAAAQQQQAABBBBAAIEgF6jSQLBaaDCXj0oWiYuLMx/JqdV4KjsUrB/H+dprr5ljBvn9GHLT Ky1oThg45C6nmbAGgAkBh+a1Y9YIIIBAsAkUD1kF2/yYT6EA78txqOlfCxrmHTdunPnD3dS0wnBr WUyio6Jl1KiR1ea9s68OVhA41B34/2fKcrfTBwEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBAI fgENA4eFhUlE8E+1es5Qq4+uWbPGVCOtrFCwVgbmo3gr7/7xVH0a98ozZ2QEEEAAAQQQQMDfArwv LxTFwd93VuiMp5XeJ0yYIAsWLpCFCxd6nXiXzl0cn8RzdbWoDOx8sjg4a7CMAAIIIIAAAggggAAC CCCAAAIIIIAAAggggAACCCAQSgK1atUy0yUQHOCrRmA3wBeggoen+l8FAdkdAQQQQAABBBAIEgHe lxdeCByC5IYMwDQuuvAi6X5Od1m1epWkpaZJenq6aNXghPh4iU9IMNWA27drX22qAnsixsGTDOsR QAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQSCWSA/P58KwcF8gZgbAggggAACCCCAAAIIIIAA AlUlkOAI/mogtqY3HGr6HcD5I4AAAggggAACCCCAAAIIIIAAAggggAACCCCAAAKhJxAWFiZhoTdt ZowAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACWh24 oKCACsHcCggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAAC CISigFYH1kaF4FC8eswZAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEE EEAAAQQQQKDGC1gVgr0GgmvVqmWw8h3lhGkIBKNATk6emVZERLjX6f12Owv3s1cqv3WwrC370gYO Dyu8hidOniytG9sCIGBdk/Df/pokAFPgkAggUAEBvr9WAI9dq0TAt/dz/HxSJReFg5RbwJf7me/P 5Waudjv68n7b+tnK+lmr2mEE4QlZ1pZ9EE6RKSGAAAIIIIAAAggggAACCCCAAAIIIIAAAggggEAN FtAKwQWOjK/XQHDt2pGG6eix4zWYi1MPZoGsY9lmejHRUV6nad/PR7mfvWL5qcPR36wt+9KGjYyM MJtzcgtD3qX1ZVvVCljXxLpGVXt0joYAAhUVsL52ra/lio7H/gj4W6Bc7+f4+cTfl4Hx/CTgy/3M 92c/oVeDYaz/Rlv3RGmnZP1sZf2sVVpftvlHwLK27P0zKqMggAACCCCAAAIIIIAAAggggAACCCCA AAIIIIAAAv4RMGFgRyjYayC4Xt0Yc8R9+w/758iMgoCfBQ6nZ5oRY2K8B4Jj69Yxffcd4H7282Xw OJxlbdl77OjYEBlZWCE4OzuntG5sC4CAdU0if/sjkQBMgUMigEAFBPj+WgE8dq0SgaL3c9Fej8fP J16J6BBgAV/uZ74/B/hiBdHhfXm/bf1sZf2sFUSnUW2nYllb9tX2RDkxBBBAAAEEEEAAAQQQQAAB BBBAAAEEEEAAAQQQCEmBWr99zKHXQHCDhDhzgrtS9knm0cJKrCF5xky6WgrsP3hEkvceMOcWXz/W 6zkmON/PWdzPXsEq2CHTYazfO7RZ9qUNWSemMAR0+EiWWJXVSuvPtqoR0Guh10RbnWjvQS17VgX2 EgsIIFAZAj58jfH9tTIuAGP6S8D1/Vw9r8Py84lXIjoEUMDX+5nvzwG8WEF0aF/fb1s/W5n/n4af ayv9Svr6c22lT4gDIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAALFBPLz880ar4HgunVipGGD +qbzj6s3EwouBsnLwAkccISBt/6SbCbQolkjsX6ZXtqM9H5u9Nv9vH7TDtFf7NEqR0Bt1Vibmqu9 t6Yfv1o/rjAItG9/OqFgb2BVsF3DCXottMXHxUrt2hFejxoeXljp+eSpk1770gEBBMovYH2NWV9z pY3E99fSdNgWSAENT5bn/Rw/nwTyqnFsTwLluZ/5/uxJs+asL8/7bX6urbr7ozw/11bd7DgSAggg gAACCCCAAAIIIIAAAggggAACCCCAAAIIIFAoYFUI9p7scvRv1bKp5OWdlKyjx2TFqk3SJrGpNG3S QPTjesN+KzUMLAJVIZCTk2dCovoxvFZl4LjYutKkcYMyHz7R3M8nTLh9xerf7mfH/vXqcT+XGdFD x/yCAjl69Ljox6lalYHj6tURNS9r0+uZm5snOY5HiqP6c4P4WKlTJ1qio2pLZESZvmWV9VD08yBw 4uRJ468fW2xVBo6JjpLY2Doe9nBdHRkZKadOnXJcx1yJ4Jq54vAKAT8K6NeYNv2aK0vj+2tZlOhT FQL+eD/HzydVcaU4RlkE/HE/8/25LNLVq09F32+rBj/XVt494Y+faytvdoyMAAIIIIAAAggggAAC CCCAAAIIIIAAAggggAACCJQU0EBwgSO7V2vHzj3mA6djHZUfvbXkPfvk0OEMb93YjkCVCWhlYF/C wM4TS3Hczwe5n51J/L6slYF9CQM7TyAz65hkZB51XlVjlo8dO27Ota7jjy6CoWnVZg2qlLXpf1yO ZhVeu4SEeELBZYWjHwI+CJx0BPfT04+YPerF1hPrL73KMkRN/v7K+9iy3CFV36ci7+f4+aTqrxdH LF2gIvdzTf7+HGzvf0u/yv7f6uv7becZ8HOts0blLFfk59rKmRGjIoAAAggggAACCCCAAAIIIIAA AggggAACCCCAAAKuAo0SCvO/PgWCdYhj2cdFq7MedQTW8vJOmFSx69C8QqDyBLTaaEx0bYmJiZb4 +vWkjuNQHSyuAABAAElEQVS5Ik3v53TH/awf01p4P1dkNPbVguH6scexdetIQkKc6EfZVqTpNck+ niMnTpySvBMnJD8/vyLDhcy+gQ5EhIeHm2rMkZHhjurMMVI70vfKzCcc1y4nJ0d0rDjHH5xQKThk bj8mGgICGgbOzMwylbijo6Ml0vF919dWU7+/Egj29U6pnP4REeGO93NRfn0/x88nlXOtGNW7gL9/ Pqmp358D/f7X+5X2bw9/vN92nhE/1zprVHzZ3z/XVnxGjIAAAggggAACCCCAAAIIIIAAAggggAAC CCCAAAIIlC5Q7kBw6cOyFQEEEEAAgUIBDQRrMFibBoujoqIkItwRLnYEx2kIIOCjgOPzHE6eOim5 ubmS7fhjFm0aBNZAMA0BBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEECg5go0 jC/8dGnfyz7WXDPOHAEEEEDABwENKoaHhZtKwRpgtEKMPgxBVwQQ8CBQ3srAHoZjNQIIIIAAAggg gAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggECICtTSj0B0NALBIXoBmTYCCCAQCgJawTQi MkJOnjgpJ06ckFOnToXCtJkjAkEpYD5ePLLwa8p6IxeUE2VSCCCAAAIIIIAAAggggAACCCCAAAII IIAAAggggAACCCCAAAIIIIAAAlUqUFBQQCC4SsU5GAIIIFADBTS4qMFgfdAQQAABBBBAAAEEEEAA AQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQT8J6BhYM1ohflvSEZCAAEEEEAAAQQQQAAB BBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAgaoS0DCwhoIJBFeVOMdBAAEE EEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEDAjwJUCPYjJkMh gAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCBQ1QJaIVhb hHXgrMwsa5FnBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBA AAEEEAhygYbx9cwM7UBwkM+X6SGAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAA AggggAACCCCAAAIIIICAk0CJCsHt2rRw2swiAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAA AggggAACCCCAAAIIIIAAAggggAACCASzQH5+vpkeFYKD+SoxNwQQQAABBBBAAAEEEEAAAQQQQAAB BBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBDwIaIVgfYR52M5qBBBAAAEEEEAAAQQQQAAB BBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEAgBAQLBIXCRmCICCCCAAAIIIIAA AggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAALFBbQ6sLaI4ht4jQACCCCA AAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAALBL5Cfny8FBQUE goP/UjFDBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEE SgqEhYWZlYX/ltzOGgQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAA 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 fvOb5RWfX3755eljH/tYete73pXuv//+swaC444iSBvX/uxnP0tPPPFEeZ3tTl/zmtekr3zlK+mS Sy456ZTYd/fdd6fbb789ffGLXyxNvCe28UYwOMK6N998c5MwcNxMhKHvuuuu9PGPfzzdd999JYT8 ve99r4SQI/R8yy23lM/OFgiu5XkizDvf+c706KOPFt8f/OAHpUX52WefTS972ctOPM0/EyBAgAAB AgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAYM8JRKluzjkNP3zsx6Wq9rzzDuy5L9n7 C73yguUNn//Fc+no1x9Jx771o/TMj//3+C2/dCsg+4d/9kfpDdcdShGWPdfxi2PPpEe//nB6/P4f pee2Zu4cB99xWbp0K+R73iXn73y0qz+P/eePyn1ttxmnFPcTYeEI877Y/Ty51dx7dOs+jm3dx86x 22t3zo/v8j9f/e+1ZuzM+q/Pf/s0k0u2XCOsGt/n/8MRzzJecZx/ye/vOny76nVnMo2/E0fvfuT4 3/Hd/P2OwPzO8Yb3XFH+Du/83dj5fCfkXvNed2af6c9oLI8W3PgX6Bvf+MYSgj3Tead+9pOf/CR9 8IMfLI3nn/3sZ9OFF15YgsE77ea/+c1v0uOPP54eeeSREvaN66+99tr0yU9+8tRRJ/389NNPlyBs /B8er3/969OrXvWqk37f+ofnnnsuff/73y//MbniiivSvn37llq5qufZljzzzDOlzTkcHnjggbOd 5nMCBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAjsOQGB4IqPdJVAcMX1RhEg sKEC0SJ8xx13pC996UvprW9964ve5Uc/+tF05513pje96U3pa1/72oue65cnC9xzzz3pwx/+cLrm mmtKg/LJv/UTAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIE9qZANASPe/Or +VYECBDYHIH77ttuOz548OA5b2oct/+1fOWVV57zXCf8ViDaij/96U+XD26++ebf/sI/ESBAgAAB AgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAYI8LCATv8Qfs6xEgsBkCl19+ebmRT33q U+mFF1444009//zz6TOf+Uw6cuRIOnDgQLr++uvPeJ4PTxd48skn0wc+8IH00EMPpcOHD6e3vOUt p5/kEwIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECOxBgRIG3iqiHH742I9z fL/zzjuwB79m36/0ygsY9hW3jcDvhsB3v/vddOONN6Zf/vKX6cILL0xvf/vb08UXX5xe/vKXp6ef fjodO3Ys3XvvveX3F1xwQfrCF76QDh069Lvx5Wa+ywceeCDddNNN6de//nV697vfnW699da0b9++ me/KegIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECPQVEAiu6C0QXBHTKAJ7 TODo0aMl6HvXXXelX/3qVyd9u8VikQ4ePJhuuOGGdO2116b9+/ef9Hs/nF3g5z//efrIRz5SXm97 29vOfqLfECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAYI8KTNOkIbjmsxUI rqlpFoG9KfDCCy+kn/70p+X17LPPlqbgV7/61Vpt9+bj9q0IECBAgAABAgQIECBAgAABAgQIECBA gAABAgQIECBAgAABAgQIECDQRWDRZYslBAgQIFAE9u3blyIAHC8HAQIECBAgQIAAAQIECBAgQIAA AQIECBAgQIAAAQIECBAgQIAAAQIECBBYR6C0Aw9DEgheR9G1BAgQIECAAAECBAgQIECAAAECBAgQ IECAAAECBAgQIECAAAECBAgQIECAAAECBGYSGMexbN5+n+kmrCVAgAABAgQIECBAgAABAgQIECBA gAABAgQIECBAgAABAgQIECBAgAABAgQIECBAYDWBaAjOOSeB4NX8XEWAAAECBAgQIECAAAECBAgQ IECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIEBgVoFoCBYInvURWE6AAAECBAgQIECAAAECBAgQ IECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIEBgdYESBt4KBWsIXt3QlQQIECBAgAABAgQIECBA gAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgRmExiGoewWCJ7tEVhMgAABAgQIECBAgAAB AgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAYHWBaZrKxQLBqxu6kgABAgQIECBAgAAB AgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgMBsAhqCZ6O3mAABAgQIECBAgAABAgQI ECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgMD6AhEIzjknDcHrW5pAgAABAgQIECBAgAAB AgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAYBaBCAULBM9CbykBAgQIECBAgAABAgQI ECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgACBOgICwXUcTSFAgAABAgQIECBAgAABAgQI ECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECDQVSDnXPYJBHdlt4wAAQIECBAgQIAAAQIECBAg QIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIBAHYFhGMoggeA6nqYQIECAAAECBAgQIECAAAEC BAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQ6C4QLcECwd3ZLSRAgAABAgQIECBAgAABAgQI ECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECCwvkCEgaMlWCB4fUsTCBAgQIAAAQIECBAgQIAA AQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECHQXiDCwhuDu7BYSIECAAAECBAgQIECAAAEC BAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQqCOgIbiOoykECBAgQIAAAQIECBAgQIAAAQIE CBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIEZhGIhuA4FrNst5QAAQIECBAgQIAAAQIECBAgQIAA AQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAgbUEoiE4DoHgtRhdTIAAAQIECBAgQIAAAQIECBAg QIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQGAeAQ3B87jbSoAAAQIECBAgQIAAAQIECBAgQIAA AQIECBAgQIAAAQIECBAgQIAAAQIECBAgQKCKwDRNZY6G4CqchhAgQIAAAQIECBAgQIAAAQIECBAg QIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBDoKxANwfEa+661jQABAgQIECBAgAABAgQIECBAgAAB AgQIECBAgAABAgQIECBAgAABAgQIECBAgACBmgICwTU1zSJAgAABAgQIECBAgAABAgQIECBAgAAB AgQIECBAgAABAgQIECBAgAABAgQIECDQSSDageNYdNpnDQECBAgQIECAAAECBAgQIECAAAECBAgQ IECAAAECBAgQIECAAAECBAgQIECAAAECFQWmaUo5Z4HgiqZGESBAgAABAgQIECBAgAABAgQIECBA gAABAgQIECBAgAABAgQIECBAgAABAgQIEOgmMI5j2bX93m2tRQQIECBAgAABAgQIECBAgAABAgQI ECBAgAABAgQIECBAgAABAgQIECBAgAABAgQI1BKIhmCB4Fqa5hAgQIAAAQIECBAgQIAAAQIECBAg QIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBDoLCAQ3BncOgIECBAgQIAAAQIECBAgQIAAAQIECBAg QIAAAQIECBAgQIAAAQIECBAgQIAAAQK1BEoYeBw1BNcCNYcAAQIECBAgQIAAAQIECBAgQIAAAQIE CBAgQIAAAQIECBAgQIAAAQIECBAgQIBAT4FhGMq6sedSuwgQIECAAAECBAgQIECAAAECBAgQIECA AAECBAgQIECAAAECBAgQIECAAAECBAgQqCcwTZOG4HqcJhEgQIAAAQIECBAgQIAAAQIECBAgQIAA AQIECBAgQIAAAQIECBAgQIAAAQIECBDoKzCOo0BwX3LbCBAgQIAAAQIECBAgQIAAAQIECBAgQIAA AQIECBAgQIAAAQIECBAgQIAAAQIECNQRiHbgnHNa1BlnCgECBAgQIECAAAECBAgQIECAAAECBAgQ IECAAAECBAgQIECAAAECBAgQIECAAAECPQWiHTiO7feem+0iQIAAAQIECBAgQIAAAQIECBAgQIAA AQIECBAgQIAAAQIECBAgQIAAAQIECBAgQGBtgZ2GYIHgtSkNIECAAAECBAgQIECAAAECBAgQIECA AAECBAgQIECAAAECBAgQIECAAAECBAgQINBfIBqCc84agvvT20iAAAECBAgQIECAAAECBAgQIECA AAECBAgQIECAAAECBAgQIECAAAECBAgQIEBgfYESBt4KBWsIXt/SBAIECBAgQIAAAQIECBAgQIAA AQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQLdBYZhKDsFgrvTW0iAAAECBAgQIECAAAECBAgQ IECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIEBgfYFpmsoQgeD1LU0gQIAAAQIECBAgQIAAAQIE CBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAg0F1AQ3B3cgsJECBAgAABAgQIECBAgAABAgQI ECBAgAABAgQIECBAgAABAgQIECBAgAABAgQI1BOIQHDOOWkIrmdqEgECBAgQIECAAAECBAgQIECA AAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAIGuAhEKFgjuSm4ZAQIECBAgQIAAAQIECBAgQIAA AQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAgboCAsF1PU0jQIAAAQIECBAgQIAAAQIECBAgQIAA AQIECBAgQIAAAQIECBAgQIAAAQIECBAg0EUg51z2CAR34baEAAECBAgQIECAAAECBAgQIECAAAEC BAgQIECAAAECBAgQIECAAAECBAgQIECAQF2BYRjKQIHguq6mESBAgAABAgQIECBAgAABAgQIECBA gAABAgQIECBAgAABAgQIECBAgAABAgQIEOgmEC3BAsHduC0iQIAAAQIECBAgQIAAAQIECBAgQIAA AQIECBAgQIAAAQIECBAgQIAAAQIECBAgUE8gwsDREiwQXM/UJAIECBAgQIAAAQIECBAgQIAAAQIE CBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQLdBCIMrCG4G7dFBAgQIECAAAECBAgQIECAAAECBAgQ IECAAAECBAgQIECAAAECBAgQIECAAAECBOoKaAiu62kaAQIECBAgQIAAAQIECBAgQIAAAQIECBAg QIAAAQIECBAgQIAAAQIECBAgQIAAga4C0RAcx6LrVssIECBAgAABAgQIECBAgAABAgQIECBAgAAB AgQIECBAgAABAgQIECBAgAABAgQIEKgiEA3BcQgEV+E0hAABAgQIECBAgAABAgQIECBAgAABAgQI ECBAgAABAgQIECBAgAABAgQIECBAgEBfAQ3Bfb1tI0CAAAECBAgQIECAAAECBAgQIECAAAECBAgQ IECAAAECBAgQIECAAAECBAgQIFBVYJqmMk9DcFVWwwgQIECAAAECBAgQIECAAAECBAgQIECAAAEC BAgQIECAAAECBAgQIECAAAECBAj0EYiG4HiNfdbZQoAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAg QIAAAQIECBAgQIAAAQIECBAgQIBACwGB4BaqZhIgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAg QIAAAQIECBAgQIAAAQIECBBoLBDtwHEsGu8xngABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAAB AgQIECBAgAABAgQIECBAgACBBgLTNKWcs0BwA1sjCRAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIE CBAgQIAAAQIECBAgQIAAAQIECDQXGMex7Nh+b77OAgIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAA AQIECBAgQIAAAQIECBAgQIAAAQIEagtEQ7BAcG1V8wgQIECAAAECBAgQIECAAAECBAgQIECAAAEC BAgQIECAAAECBAgQIECAAAECBAh0EhAI7gRtDQECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAEC BAgQIECAAAECBAgQIECAAIHaAiUMPI4agmvDmkeAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECA AAECBAgQIECAAAECBAgQIECgh8AwDGXN2GOZHQQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQI ECBAgAABAgQIECBAgAABAgQI1BeYpklDcH1WEwkQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQ IECAAAECBAgQIECAAAECBAj0ERjHUSC4D7UtBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQ IECAAAECBAgQIECAAAECBOoKRDtwzjkt6o41jQABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAAB AgQIECBAgAABAgQIECBAgACBHgLRDhzH9nuPjXYQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQ IECAAAECBAgQIECAAAECBAgQIFBNYKchWCC4GqlBBAgQIECAAAECBAgQIECAAAECBAgQIECAAAEC BAgQIECAAAECBAgQIECAAAECBPoJRENwzllDcD9ymwgQIECAAAECBAgQIECAAAECBAgQIECAAAEC BAgQIECAAAECBAgQIECAAAECBAjUEyhh4K1QsIbgeqYmESBAgAABAgQIECBAgAABAgQIECBAgAAB AgQIECBAgAABAgQIECBAgAABAgQIEOgmMAxD2SUQ3I3cIgIECBAgQIAAAQIECBAgQIAAAQIECBAg QIAAAQIECBAgQIAAAQIECBAgQIAAAQL1BKZpKsMEguuZmkSAAAECBAgQIECAAAECBAgQIECAAAEC BAgQIECAAAECBAgQIECAAAECBAgQIECgm4CG4G7UFhEgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIE CBAgQIAAAQIECBAgQIAAAQIECBCoLxCB4Jxz0hBc39ZEAgQIECBAgAABAgQIECBAgAABAgQIECBA gAABAgQIECBAgAABAgQIECBAgAABAl0EIhQsENyF2hICBAgQIECAAAECBAgQIECAAAECBAgQIECA AAECBAgQIECAAAECBAgQIECAAAECbQQEgtu4mkqAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECA AAECBAgQIECAAAECBAgQIECgqUDOucwXCG7KbDgBAgQIECBAgAABAgQIECBAgAABAgQIECBAgAAB AgQIECBAgAABAgQIECBAgACBNgLDMJTBAsFtfE0lQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAg QIAAAQIECBAgQIAAAQIECBAg0FwgWoIFgpszW0CAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECA AAECBAgQIECAAAECBAgQIECgvkCEgaMlWCC4vq2JBAgQIECAAAECBAgQIECAAAECBAgQIECAAAEC BAgQIECAAAECBAgQIECAAAECBJoLRBhYQ3BzZgsIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQI ECBAgAABAgQIECBAgAABAgQItBHQENzG1VQCBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQ IECAAAECBAgQIECAAAECXQSiITiORZdtlhAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAA AQIECBAgQIAAAQIECBAgUFUgGoLjEAiuymoYAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIE CBAgQIAAAQIECBAgQIAAgT4CGoL7ONtCgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQI ECBAgAABAgQIECBAoInANE1lrobgJryGEiBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAAB AgQIECBAgAABAgQIEGgrEA3B8RrbrjGdAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQ IECAAAECBAgQIECAAIGWAgLBLXXNJkCAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQ IECAAAECBAgQINBIINqB41g0mm8sAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAA AQIECBAgQIAAAQINBaZpSjlngeCGxkYTIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAEC BAgQIECAAAECBAgQaCYwjmOZvf3ebI3BBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECA AAECBAgQIECAAAECBAi0EoiGYIHgVrrmEiBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAAB AgQIECBAgAABAgQIEGgsIBDcGNh4AgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAAB AgQIECBAgAABAq0EShh4HDUEtwI2lwABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBA gAABAgQIECBAgEBLgWEYyvix5RKzCRAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIE CBAgQIAAAQIECBBoJzBNk4bgdrwmEyBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQI ECBAgAABAgQIEGgrMI6jQHBbYtMJECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQI ECBAgAABAgQItBGIduCcc1q0GW8qAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAA AQIECBAgQIAAAQItBaIdOI7t95abzCZAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQI ECBAgAABAgQIECBAoLrATkOwQHB1WgMJECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAAB AgQIECBAgAABAgQItBeIhuCcs4bg9tQ2ECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAAB AgQIECBAgAABAgQIEKgvUMLAW6FgDcH1bU0kQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAA AQIECBAgQIAAAQIECBAg0FxgGIayQyC4ObUFBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQ IECAAAECBAgQIECAAAECBOoLTNNUhgoE17c1kQABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAAB AgQIECBAgAABAgQIECBAgEBzAQ3BzYktIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAEC BAgQIECAAAECBAgQINBOIALBOeekIbidsckECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAg QIAAAQIECBAgQIAAAQIEmgpEKFgguCmx4QQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBA gAABAgQIECBAgAABAgTaCggEt/U1nQABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBA gAABAgQIECBAgEATgZxzmSsQ3ITXUAIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAA AQIECBAgQIAAAQJtBYZhKAsEgts6m06AAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQ IECAAAECBAgQIECgmUC0BAsEN+M1mAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBA gAABAgQIECBAgEA7gQgDR0uwQHA7Y5MJECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAAB AgQIECBAgAABAgQINBOIMLCG4Ga8BhMgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIE CBAgQIAAAQIECBBoK6AhuK2v6QQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQI ECBAgAABAgSaCkRDcByLplsMJ0CAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECA AAECBAgQIECgiUA0BMchENyE11ACBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAEC BAgQIECAAAECbQU0BLf1NZ0AAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIE CBAgQIBAU4Fpmsp8DcFNmQ0nQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAA AQIECBAg0EYgGoLjNbYZbyoBAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQI ECBAgAABAj0EBIJ7KNtBgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQI ECBAoLJAtAPHsag81zgCBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECA AAECBDoITNOUcs4CwR2srSBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAAB AgQIECBQXWAcxzJz+736eAMJECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBA gAABAgQIEGgtEA3BAsGtlc0nQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAA AQIECBAg0EhAILgRrLEECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAA AQIEWguUMPA4aghuDW0+AQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAg QIAAgRYCwzCUsWOL4WYSIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAEC BAgQINBeYJomDcHtmW0gQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIE CBAg0EZgHEeB4Da0phIgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIE CBBoKxDtwDnntGi7xnQCBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECA AAECBFoIRDtwHNvvLTaYSYAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIE CBAgQIBAM4GdhmCB4GbEBhMgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAA AQIECBBoJxANwTlnDcHtiE0mQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAA AQIECBAg0E6ghIG3QsEagtsZm0yAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECA AAECBAgQIECgmcAwDGW2QHAzYoMJECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQI ECBAgAABAgQItBOYpqkMFwhuZ2wyAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAA AQIECBAgQIAAgWYCGoKb0RpMgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAAB AgQIECBAoL1ABIJzzklDcHtrGwgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQ IECAAAECBAg0EYhQsEBwE1pDCRAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAg QIAAAQIECPQREAju42wLAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAg QIAAgaoCOecyTyC4KqthBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECA AAECBPoIDMNQFgkE9/G2hQABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQI ECBAgEB1gWgJFgiuzmogAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAg QIAAgfYCEQaOlmCB4PbWNhAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAA AQIECBCoLhBhYA3B1VkNJECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAEC BAgQINBHQENwH2dbCBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIE CDQRiIbgOBZNphtKgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBA gEBTgWgIjkMguCmz4QQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAAB AgTaCGgIbuNqKgECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAIEu AtM0lT0agrtwW0KAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECg rkA0BMdrrDvWNAIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIE egoIBPfUtosAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIBAJYFo B45jUWmeMQQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIdBSY pinlnAWCO5pbRYAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQKCa wDiOZdb2e7WxBhEgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAg 0EsgGoIFgntp20OAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECg soBAcGVQ4wgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAj0Eihh 4HHUENwL3B4CBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECNQWG YSjjxppDzSJAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAoJ/A NE0agvtx20SAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECgrsA4 jgLBdUlNI0CAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQINBHINqB c85p0WedLQQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQI1BSI duA4tt9rTjaLAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAIHm AjsNwQLBzaktIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIFBf IBqCc84aguvTmkiAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECg vUAJA2+FgjUEt7e2gQABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBA gEB1gWEYykyB4Oq0BhIgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIE CBBoLzBNU1kiENze2gYCBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECA AAEC1QU0BFcnNZAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIBA P4EIBOeck4bgfuY2ESBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQI EKgqEKFggeCqpIYRIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQ 6CsgENzX2zYCBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECVQRy zmWOQHAVTkMIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQI9BUY hqEsFAju624bAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAgWoC 0RIsEFyN0yACBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAEC/QQi DBwtwQLB/cxtIkCAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIFBN IMLAGoKrcRpEgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAoK+A huC+3rYRIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQqCoQDcFx LKpONYwAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAgS4C0RAc h0BwF25LCBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECNQV0BBc 19M0AgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAl0Fpmkq+zQE d2W3jAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgEAdgWgIjtdY Z5wpBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAjMISAQPIe6 nQQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgTWFIh24DgWa85x OQECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECMwhM05RyzgLB M9hbSYAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQGBtgXEcy4zt 97XHGUCAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAQG+BaAgW CO6tbh8BAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgACBSgICwZUg jSFAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECDQW6CEgcdRQ3Bv ePsIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQI1BAYhqGMGWsM M4MAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAgf4C0zRpCO7P biMBAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgACBOgLjOAoE16E0 hQABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgEBfgWgHzjmnRd+1 thEgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgUEMg2oHj2H6v MdEMAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgS6Cew0BAsE dyO3iAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgEA9gWgIzjlr CK5HahIBAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgACBfgIlDLwV CtYQ3M/cJgIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQLVBIZh KLMEgquRGkSAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECgn8A0 TWWZQHA/c5sIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIVBPQ EFyN0iACBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAEC/QUiEJxz ThqC+9vbSIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQKCKQISC BYKrUBpCgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAYB4BgeB5 3G0lQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgsJZAzrlcLxC8 FqOLCRAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECMwjMAxDWSwQ PI+/rQQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgTWFoiWYIHg tRkNIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQINBfIMLA0RIs ENzf3kYCBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECawtEGFhD 8NqMBhAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBCYR0BD8Dzu thIgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBCoIhANwXEsqkwz hAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgACBrgLREByHQHBX dssIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQI1BHQEFzH0RQC BAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECswhM01T2agiehd9S AgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAusJRENwvMb1xria AAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAIE5BQSC59S3mwAB AgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgMCKAtEOHMdixetdRoAA AQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIDAjALTNKWcs0DwjM/A agIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIrC4zjWK7dfl95 jAsJECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIEJhLIBqCBYLn 0reXAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAwJoCAsFrArqc AAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAwFwCJQw8jhqC53oA 9hIgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBBYR2AYhnL5uM4Q 1xIgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgMJ/ANE0agufj t5kAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIDAegLjOAoEr0fo agIECBAgQIAAAQIECBAgQIAAAQIECMDX/nQAAEAASURBVBAgQIAAAQIECBAgQIAAAQIECBAgQIAA AQLzCEQ7cM45LeZZbysBAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBA gAABAusIRDtwHNvv60xyLQECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQ IECAAAEC3QV2GoIFgrvTW0iAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAEC BAgQIEBgfYFoCM45awhen9IEAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQI ECBAgAABAv0FShh4KxSsIbi/vY0ECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIE CBAgQIAAAQIE1hYYhqHMEAhem9IAAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAAB AgQIECBAgAABAv0FpmkqSwWC+9vbSIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAg QIAAAQIECBAgQGBtAQ3BaxMaQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAA AQIECBAgQGA+gQgE55yThuD5noHNBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAEC BAgQIECAAAECBNYSiFCwQPBahC4mQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAg QIAAAQIECBAgMK+AQPC8/rYTIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECA AAECBAgQWEkg51yuEwheic9FBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQ IECAAAECBOYVGIah3IBA8LzPwXYCBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAEC BAgQIECAAAECKwtES7BA8Mp8LiRAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBA gAABAgQIECAwn0CEgaMlWCB4vmdgMwECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECA AAECBAgQIECAAIGVBSIMrCF4ZT4XEiBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQI ECBAgAABAgQIEJhXQEPwvP62EyBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBA gAABAgQIEFhLIBqC41isNcXFBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQ IECAAAECBAjMIhANwXEIBM/CbykBAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAAB AgQIECBAgACB9QQ0BK/n52oCBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQ IECAAAECswpM01T2awie9TFYToAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAA AQIECBAgQGA1gWgIjte42uWuIkCAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECA AAECBAgQIEBgEwQEgjfhKbgHAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQI ECBAgAABAksKRDtwHIslr3M6AQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIE CBAgQIAAAQIbIDBNU8o5CwRvwLNwCwQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAAB AgQIECBAgAABAgSWFhjHsVyz/b705S4gQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIE CBAgQIAAAQIECBAgQGBugWgIFgie+ynYT4AAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIE CBAgQIAAAQIECBAgQGBFAYHgFeFcRoAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAg QIAAAQIECBAgQGBugRIGHkcNwXM/CPsJECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAAB AgQIECBAgAABAgQIrCIwDEO5bFzlYtcQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAEC BAgQIECAAAECBAgQIDC/wDRNGoLnfwzugAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQI ECBAgAABAgQIECBAgMBqAuM4CgSvRucqAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBA gAABAgQIECBAgAABAvMKRDtwzjkt5r0N2wkQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECA AAECBAgQIECAAAECBAgQWEUg2oHj2H5fZYJrCBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAg QIAAAQIECBAgQIAAAQIECBCYTWCnIVggeLZHYDEBAgQIECBAgAABAgQIECBAgAABAgQIECBAgAAB AgQIECBAgAABAgQIECBAgACB1QWiITjnrCF4dUJXEiBAgAABAgQIECBAgAABAgQIECBAgAABAgQI ECBAgAABAgQIECBAgAABAgQIEJhPoISBt0LBGoLnewY2EyBAgAABAgQIECBAgAABAgQIECBAgAAB AgQIECBAgAABAgQIECBAgAABAgQIEFhZYBiGcq1A8MqELiRAgAABAgQIECBAgAABAgQIECBAgAAB AgQIECBAgAABAgQIECBAgAABAgQIECAwn8A0TWW5QPB8z8BmAgQIECBAgAABAgQIECBAgAABAgQI ECBAgAABAgQIECBAgAABAgQIECBAgAABAisLaAhemc6FBAgQIECAAAECBAgQIECAAAECBAgQIECA AAECBAgQIECAAAECBAgQIECAAAECBOYXiEBwzjlpCJ7/WbgDAgQIECBAgAABAgQIECBAgAABAgQI ECBAgAABAgQIECBAgAABAgQIECBAgAABAisJRChYIHglOhcRIECAAAECBAgQIECAAAECBAgQIECA AAECBAgQIECAAAECBAgQIECAAAECBAgQ2AwBgeDNeA7uggABAgQIECBAgAABAgQIECBAgAABAgQI ECBAgAABAgQIECBAgAABAgQIECBAgMBSAjnncr5A8FJsTiZAgAABAgQIECBAgAABAgQIECBAgAAB AgQIECBAgAABAgQIECBAgAABAgQIECCwGQLDMJQbEQjejOfhLggQIECAAAECBAgQIECAAAECBAgQ IECAAAECBAgQIECAAAECBAgQIECAAAECBAgsLRAtwQLBS7O5gAABAgQIECBAgAABAgQIECBAgAAB AgQIECBAgAABAgQIECBAgAABAgQIECBAgMD8AhEGjpZggeD5n4U7IECAAAECBAgQIECAAAECBAgQ IECAAAECBAgQIECAAAECBAgQIECAAAECBAgQILC0QISBNQQvzeYCAgQIECBAgAABAgQIECBAgAAB AgQIECBAgAABAgQIECBAgAABAgQIECBAgAABApshoCF4M56DuyBAgAABAgQIECBAgAABAgQIECBA gAABAgQIECBAgAABAgQIECBAgAABAgQIECCwkkA0BMexWOlqFxEgQIAAAQIECBAgQIAAAQIECBAg QIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgMKtANATHIRA862OwnAABAgQIECBAgAABAgQIECBA gAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgMBqAhqCV3NzFQECBAgQIECAAAECBAgQIECAAAEC BAgQIECAAAECBAgQIECAAAECBAgQIECAAIGNEJimqdyHhuCNeBxuggABAgQIECBAgAABAgQIECBA gAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgMByAtEQHK9xucucTYAAAQIECBAgQIAAAQIECBAg QIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIDAJgkIBG/S03AvBAgQIECAAAECBAgQIECAAAEC BAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBHYpEO3AcSx2eb7TCBAgQIAAAQIECBAgQIAAAQIE CBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBDYIIFpmlLOWSB4g56JWyFAgAABAgQIECBAgAAB AgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECCwa4FxHMu52++7vsyJBAgQIECAAAECBAgQ IECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAhsikA0BAsEb8rTcB8ECBAgQIAAAQIE CBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIElhQQCF4SzOkECBAgQIAAAQIECBAg QIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIENkWghIHHUUPwpjwQ90GAAAECBAgQIECA AAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIEBgGYFhGMrp4zIXOZcAAQIECBAgQIAA AQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAgc0RmKZJQ/DmPA53QoAAAQIECBAg QIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQGA5gXEcBYKXI3M2AQIECBAgQIAA AQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAgc0QiHbgnHNabMbtuAsCBAgQIECA AAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBJYRiHbgOLbfl7nSuQQIECBA gAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIzC6w0xAsEDz7o3ADBAgQ IECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBJYXiIbgnLOG4OXpXEGA AAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIEBgfoESBt4KBWsInv9Z uAMCBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECSwsMw1CuEQhe ms4FBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBOYXmKap3IRA 8PzPwh0QIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQWFpAQ/DS ZC4gQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgsDkCEQjOOScN wZvzTNwJAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAgaUEIhQs ELwUmZMJECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIbJaAQPBm PQ93Q4AAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQGBXAjnncp5A 8K64nESAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIEBgswSGYSg3 JBC8Wc/F3RAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBDYtUC0 BAsE75rLiQQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQ2RyDC wNESLBC8Oc/EnRAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBDY tUCEgTUE75rLiQQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQ2 S0BD8GY9D3dDgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAYCmB aAiOY7HUVU4mQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQGAj BKIhOA6B4I14HG6CAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECA wHICGoKX83I2AQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAgY0S mKap3I+G4I16LG6GAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECA wO4EoiE4XuPuTncWAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAA AQKbKCAQvIlPxT0RIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQ OIdAtAPHsTjHeX5NgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBA gMAGCkzTlHLOAsEb+GzcEgECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQ IECAAIFzCozjWM7Zfj/n6U4gQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAA AQIECBAgQGDTBKIhWCB4056K+yFAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBA gAABAgQIECCwSwGB4F1COY0AAQIECBAgQIAAAQIECBAgQIAAgf9j7z7g7KjK/oGfXdIbIZCEJEAS OtKRXgQURLAg6B9EwFcRBQQriCAoiIoFFRAEVFBREKSIUqIIiCBKl95bICSEkN4L7P7vc5a53G3Z 3ZBN7pLv+Xzu3rkzZ86c+c7MXXzf3z4hQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECFSbQA4D19aq EFxtF8Z8CBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECLRHoKam JnerbU9nfQgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQqD6B uro6FYKr77KYEQECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAIH2 CdTW1goEt49KLwIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQLV JRDVgevr61O36pqW2RAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIE CBAg0B6BqA4creFne/bQhwABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQI ECBAgACBqhEoKgQLBFfNJTERAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQI ECBAgAABAu0XiArB9fX1KgS3n0xPAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAAB AgQIECBAgAABAtUjkMPApVCwCsHVc03MhAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQI ECBAgAABAgQIECBAgEC7BWpqanJfgeB2k+lIgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAAB AgQIECBAgAABAgQIECBAoHoE6urq8mQEgqvnmpgJAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAA AQIECBAgQIAAAQIECBAgQIAAgXYLqBDcbiodCRAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAg QIAAAQIECBAgQIAAAQIECFSfQASC6+vrkwrB1XdtzIgAAQIECBAgQIAAAQIECBAgQIAAAQIECBAg QIAAAQIECBAgQIAAAQIECBAgQIBAuwQiFCwQ3C4qnQgQIECAAAECBAgQIECAAAECBAgQIECAAAEC BAgQIECAAAECBAgQIECAAAECBAhUp4BAcHVeF7MiQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAg QIAAAQIECBAgQIAAAQIECBAgsFiB+vr6vF0geLFMNhIgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIE CBAgQIAAAQIECBAgQIAAAQIECBCoToGampo8MYHg6rw+ZkWAAAECBAgQIECAAAECBAgQIECAAAEC BAgQIECAAAECBAgQIECAAAECBAgQIECgTYGoEiwQ3CaTDgQIECBAgAABAgQIECBAgAABAgQIECBA gAABAgQIECBAgAABAgQIECBAgAABAgSqTyDCwFElWCC4+q6NGREgQIAAAQIECBAgQIAAAQIECBAg QIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBBoUyDCwCoEt8mkAwECBAgQIECAAAECBAgQIECAAAEC BAgQIECAAAECBAgQIECAAAECBAgQIECAAIHqFFAhuDqvi1kRIECAAAECBAgQIECAAAECBAgQIECA AAECBAgQIECAAAECBAgQIECAAAECBAgQaJdAVAiO1q1dvXUiQIAAAQIECBAgQIAAAQIECBAgQIAA AQIECBAgQIAAAQIECBAgQIAAAQIECBAgQKCqBKJCcDSB4Kq6LCZDgAABAgQIECBAgAABAgQIECBA gAABAgQIECBAgAABAgQIECBAgAABAgQIECBAoH0CKgS3z0kvAgQIECBAgAABAgQIECBAgAABAgQI ECBAgAABAgQIECBAgAABAgQIECBAgAABAlUpUFdXl+elQnBVXh6TIkCAAAECBAgQIECAAAECBAgQ IECAAAECBAgQIECAAAECBAgQIECAAAECBAgQILB4gagQHK/axXezlQABAgQIECBAgAABAgQIECBA gAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgACBahYQCK7mq2NuBAgQIECAAAECBAgQIECAAAEC BAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBFoRiOrA0bq1st1qAgQIECBAgAABAgQIECBAgAAB AgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgSqWKCuri7V19cLBFfxNTI1AgQIECBAgAABAgQI ECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAq0K1NbW5m0NP1vtZgMBAgQIECBAgAAB AgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAtUqEBWCBYKr9eqYFwECBAgQIECA AAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAIE2BASC2wCymQABAgQIECBAgAAB AgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgEC1CuQwcG2tCsHVeoHMiwABAgQIECBA gAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgMDiBGpqavLm2sV1so0AAQIECBAg QIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAgeoVqKurUyG4ei+PmREgQIAA AQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBBYvEBtba1A8OKJbCVAgAAB AgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBQnQJRHbi+vj51q87pmRUB AgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAosTiOrA0Rp+Lq6n bQQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIVJ1AUSFYILjq Lo0JESBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIEGhbICoE19fX qxDcNpUeBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBKpPIIeB S6FgFYKr79qYEQECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAIE2 BWpqanIfgeA2qXQgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAg UH0CdXV1eVICwdV3bcyIAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQ IECAQJsCKgS3SaQDAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAA geoViEBwfX19UiG4eq+RmREgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAA AQIECBBYrECEggWCF0tkIwECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQ IECAAIHqFhAIru7rY3YECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAA AQIEWhSor6/P6wWCW+SxkgABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQI ECBAgEB1C9TU1OQJCgRX93UyOwIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIE CBAgQIAAAQKtCkSVYIHgVnlsIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECA AAECBAgQIFC9AhEGjirBAsHVe43MjAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBA gAABAgQIECBAgECrAhEGViG4VR4bCBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIE CBAgQIAAAQIECFS3gArB1X19zI4AAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAA AQIECBAgQIDAYgWiQnC0bovtZSMBAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAAB AgQIECBAgAABAlUpEBWCowkEV+XlMSkCBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECA AAECBAgQIECAAAECixdQIXjxPrYSIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQ IECAAAECBAgQqGqBurq6PD8Vgqv6MpkcAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAg QIAAAQIECBAgQIAAgZYFokJwvGpb3mwtAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAg QIAAAQIECBAgQIAAAQJdQUAguCtcJXMkQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIE CBAgQIAAAQIECBAg0EQgqgNH69ZkvY8ECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAA AQIECBAgQIAAAQIECHQBgbq6ulRfXy8Q3AWulSkSIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQ IECAAAECBAgQIECAAAECBAgQaCZQW1ub1zX8bLbZCgIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAA AQIECBAgQIAAAQIECBAgQIAAAQIEql0gKgQLBFf7VTI/AgQIECBAgAABAgQIECBAgAABAgQIECBA gAABAgQIECBAgAABAgQIECBAgAABAq0ICAS3AmM1AQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAA AQIECBAgQIAAAQIECBAgQIAAgWoXyGHg2loVgqv9QpkfAQIECBAgQIAAAQIECBAgQIAAAQIECBAg QIAAAQIECBAgQIAAAQIECBAgQIAAgZYEampq8uraljZaR4AAAQIECBAgQIAAAQIECBAgQIAAAQIE CBAgQIAAAQIECBAgQIAAAQIECBAgQIBA9QvU1dWpEFz9l8kMCRAgQIAAAQIECBAgQIAAAQIECBAg QIAAAQIECBAgQIAAAQIECBAgQIAAAQIECLQsUFtbKxDcMo21BAgQIECAAAECBAgQIECAAAECBAgQ IECAAAECBAgQIECAAAECBAgQIECAAAECBKpbIKoD19fXp27VPU2zI0CAAAECBAgQIECAAAECBAgQ IECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECgJYGoDhyt4WdLPawjQIAAAQIECBAgQIAAAQIE CBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQKBqBYoKwQLBVXuJTIwAAQIECBAgQIAAAQIE CBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIBA6wJRIbi+vl6F4NaJbCFAgAABAgQIECBA gAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBQvQI5DFwKBasQXL3XyMwIECBAgAAB AgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQItCpQU1OTtwkEt0pkAwECBAgQ IECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAIHqFairq8uTEwiu3mtkZgQI ECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgRaFVAhuFUaGwgQIECA AAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAhUv0AEguvr65MKwdV/rcyQ AAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAQIsCEQoWCG6RxkoC BAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECXUNAILhrXCezJECA AAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQINBIoL6+Pn8WCG7E4gMB AgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgACBriFQU1OTJyoQ3DWu l1kSIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQaCYQVYIFgpux WEGAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECg+gUiDBxVggWC q/9amSEBAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgACBZgIRBlYh uBmLFQQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgS6hoAKwV3j OpklAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAgRYFokJwtG4t brWSAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAIGqFogKwdEE gqv6MpkcAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAgZYFVAhu 2cVaAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAl1CoK6uLs9T heAucblMkgABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgEBjgagQ HK/axqt9IkCAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECgKwkI BHelq2WuBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBN4UiOrA 0bq9+dkbAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQJdSKCu ri7V19cLBHeha2aqBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAEC BMoCtbW1ebnhZ3m1BQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAA AQIEuopAVAgWCO4qV8s8CRAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAA AQIECDQREAhuAuIjAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAA ga4ikMPAtbUqBHeVC2aeBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECA AAECBCoFampq8sfaypWWCRAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAA AQIECBDoOgJ1dXUqBHedy2WmBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQ IECAAAECBBoL1NbWCgQ3JvGJAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAEC BAgQIECAQNcQiOrA9fX1qVvXmK5ZEiBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQI ECBAgAABAgQIECBQKRDVgaM1/KzcYpkAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAg QIAAAQIECBAgQIAAgaoXKCoECwRX/aUyQQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAg QIAAAQIECBAgQIAAAQLNBaJCcH19vQrBzWmsIUCAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECA AAECBAgQIECAAAECBAgQIFD9AjkMXAoFqxBc/dfKDAkQIECAAAECBAgQIECAAAECBAgQIECAAAEC BAgQIECAAAECBAgQIECAAAECBAg0E6ipqcnrBIKb0VhBgAABAgQIECBAgAABAgQIECBAgAABAgQI ECBAgAABAgQIECBAgAABAgQIECBAoPoF6urq8iQFgqv/WpkhAQIECBAgQIAAAQIECBAgQIAAAQIE CBAgQIAAAQIECBAgQIAAAQIECBAgQIAAgWYCKgQ3I7GCAAECBAgQIECAAAECBAgQIECAAAECBAgQ IECAAAECBAgQIECAAAECBAgQIECAQNcRiEBwfX19UiG461wzMyVAgAABAgQIECBAgAABAgQIECBA gAABAgQIECBAgAABAgQIECBAgAABAgQIECDQSCBCwQLBjUh8IECAAAECBAgQIECAAAECBAgQIECA AAECBAgQIECAAAECBAgQIECAAAECBAgQINC1BASCu9b1MlsCBAgQIECAAAECBAgQIECAAAECBAgQ IECAAAECBAgQIECAAAECBAgQIECAAAECWaC+vj6/CwS7IQgQIECAAAECBAgQIECAAAECBAgQIECA AAECBAgQIECAAAECBAgQIECAAAECBAh0QYGampo8a4HgLnjxTJkAAQIECBAgQIAAAQIECBAgQIAA AQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIBACESVYIFg9wIBAgQIECBAgAABAgQIECBAgAABAgQI ECBAgAABAgQIECBAgAABAgQIECBAgACBLigQYeCoEiwQ3AUvnikTIECAAAECBAgQIECAAAECBAgQ IECAAAECBAgQIECAAAECBAgQIECAAAECBAgQiDCwCsHuAwIECBAgQIAAAQIECBAgQIAAAQIECBAg QIAAAQIECBAgQIAAAQIECBAgQIAAAQJdVECF4C564UybAAECBAgQIECAAAECBAgQIECAAAECBAgQ IECAAAECBAgQIECAAAECBAgQIECAQAhEheBo3fJPPwgQIECAAAECBAgQIECAAAECBAgQIECAAAEC BAgQIECAAAECBAgQIECAAAECBAgQ6FICUSE4mkBwl7psJkuAAAECBAgQIECAAAECBAgQIECAAAEC BAgQIECAAAECBAgQIECAAAECBAgQIECgQUCF4E64E+bMmdcJoxqSAAECBAgQIECAAAECBAgQIECA AAECBAgQIECAAAECBAgQIECAAAECBAgQIECAQHOB3r175pXlCsH1dW8072VNhwTmzWfYITCdCRAg QIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIElligT59eKaoEvxUIrq9f 4sHsSIAAAQIECBAgQIAAAQIECHQFgZquMElzJECAAIFlLeDXw7IWdzwCBAgQIECAAAECBJaRgP+5 s4ygHYYAAQIECBCoCoFyILgoGVwVszIJAgQIECBAgAABAgQIECBAoBME/L9AOgHVkAQIECBAgAAB AgQIECBAgAABAlUq4P8aVqUXxrQIECBAgACBpSoQ1YGjlQPB/fr2WaoHMBgBAgQIECBAgAABAgQI ECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAp0nUFdXl+rr698KBHfeoYxMgAABAgQI ECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgMDSFqitrc1DNvxc2qMbjwAB AgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgACBTheICsECwZ3O7AAE CBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIEOkdAILhzXI1KgAAB AgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAoNMFchi4tlaF4E6XdgAC BAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECnSBQU1OTR63thLEN SYAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIDAMhCoq6tTIXgZ ODsEAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAgU4RqK2tFQju FFmDEiBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIEOhkgagOXF9f n7p18nEMT4AAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIBAJwhE deBoDT874QCGJECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECg 8wSKCsECwZ1nbGQCBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAEC nSYQFYLr6+tVCO40YQMTIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAEC BAgQ6ESBHAYuhYJVCO5EZEMTIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECA AAECBAgQ6CyBmpqaPLRAcGcJG5cAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAA AQIECBAgQIBAJwrU1dXl0bt14jEMTYAAAQIEVliBefPmpRdffDHNmjUrDR8+PL+Kv8ZZYVGcOAEC BAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAIF3qEDkhKZOnZreeOONJTrDlVZaKQ0a NCj179+/Q/sXmSSB4A6x6UyAAAECK7rAtGnT0sCBA1Pxi7Spx7hx49L3vve9dNttt6X6+vry5sGD B6fddtstffe7321133LnKluYPXt26tGjR35V2dRMhwABAgQIECBAgAABAgQIECBAgAABAgQIECBA gAABAgQIECBAgEBVCLydMHCcQASJY4wlCQRHTmm5BYJ/8Lu/p7sfe6HRRahJNal/355pyKABaZ1h q6W9d9okjRq+aqM+PhBYkQT22muvFEG8aHvvvXc6+eSTO3T6xx13XLrzzjvzPsOGDUtXXXVVh/bX mUBnClxxxRXp7LPPzoc4/PDD02c+85k2D3fMMcekBx54IK2xxhrpT3/6U5v9l3aHCy64IJ111llp ww03TNdcc02zYO/48ePTRz7ykTR37txmh37ttdfSvffe22yfZh2rbMVdd92VjjjiiNSzZ8909dVX pzXXXLPKZmg6BAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBJa/wJJWBq6c+ZKO EcUNl1sgeNbcBWnazOaBqakz56QXX5ma7n1sbLr85vvSNu8alU76zN5plQF9Ks95qS0/8NS49OqU malv7x5ply3XW2rjdoWBbrnnybTo9TfSmquvkjZee3jVTXlFvjbFxZgyZUqKMuLRIsz7la98JfXr 16/YvNj3iRMnpjFjxpTLj/fq1Wux/W0ksKwF5s2blyZPnpwPe+aZZ6bdd989jRo1arHTmDFjRt6n b9++i+23JBtnzpyZbr755rzrtttum0PHTce5//77c9Xfp59+OkX/lVdeuVGX73znOzkMHL9gjz/+ +PTBD34w/8XOk08+mR5++OEUZf2rrd19990pgszxl0V77rlns+k9+uijaf78+fkV5y0Q3IzICgIE CBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQLLXWC5BYKLM+/ds3v64dH7FR/TlBlz 0jPjJqVHnhufHn1uQrr38bHp8O//If3omP3SumsOKfdbWgtX3/pA+vcDz5RCsYNWuEDwmZfdkmbN nZ8+sstmVRkIXpGvTUv3d4Qnr7322vTJT36ypc3N1kWAeEn/WqDZYFYQ6GSBBQsWpJNOOildcskl y62C7iuvvJJOPPHEfKY/+9nPWgwEf/WrX02DBw9OW2+9dbMw8Ouvv57uuOOOvP8WW2yRDjvssLLa VlttleJVje0Pf/hDuummm9Lo0aNbDATvv//+adKkSfmPEXbZZZdqPAVzIkCAAAECBAgQIECAAAEC BAgQIECAAAECBAgQIECAAAECBAgQIFB1AmuvvXa75vT888+3q19rnerr63PmarkHgldaqTZtsUHj f378fdtumOf919seSude+a80efrsdMqvrk8XnXxo6lUKEGsEVlSBP/3pT+0KBEcQOALBGoGuJHDf ffelP/7xj+nggw+u2mm/613vSqeffnqL8xs7dmw5hP+BD3ygxT5dceWgQYPSN7/5za44dXMmQIAA AQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAg8I4XiH/NPFptNZ/pvrtunk45/IN5ii9P mpYuuvY/7ZruG3V1qa6UeO7Mtuj1Nzpl+Nff6Py5L42Jh7G27AQ233zzfLAnn3wyPfTQQ20e+Pbb b09R7TRaR6uSRpi4bgmv78KFC9ucW0sdFi1alOKvFJakxb5L2qKi69tpS3rsMFa9ubF8r1698oqf /OQnacKECY03vo1PcY2X9H7u6GFnzJhR3mXkyJHl5bezsKTP1Nt5jt/OfGPfeJbf7rMVYyzJM+LZ ertXz/4ECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQJdUSDyNsu9QnBbcDtvsW7a eO3h6bHnJ6Qx/300fX6/XVL3bis12+2liVPTn299MD310sT03LjXciB49dVWTttsNDL93wd3SAP7 9y7vc+fDz6ffXv/f/Hn8a9Pz+6tTZqbPn35JXt6ldMxD99m+3D8WImB83e0Pp/ueeDE99eKr6dWp M/OYI1dfNX1iz63Tjpuv06h/Rz68MnlGuuqW/6V/P/Rsem3arNSje7e07hqD08ajh6VDP7h96t+n IShXOeZ/Hnw2XTzmrrzq+0ftmwav0r9yc15+4oVX0pmX3ZKXjz14z7TByKHpd9fdmf77yHN53Zz5 C/L77Q8+U3J7NS8fvu/OaduNR+Xly268N916/1Np/bWGpuMO2TNFxeb4/My4SWnBwtfTemsNSdu9 a1Se40q1zbPl3zjnmjRt1py0wyZrp898ZMc8ZtMfP/79P9KzL08qH2NJrk3TMd+Jn9/znvekl19+ OU2ZMiVFleAiINzauUafaOutt17abLPN0v/+97/Wuub1c+fOTZdddlm6+uqr04svvpi6d++e991m m23SF7/4xdS791vPT+VAEYiN/a655poU1VHnzZuXhgwZkjbccMN05JFHLjaM/Mwzz6Rzzz03Pfzw wzm8HIHQNddcM+21117psMMOS3369Kk8VKPlf//73+mGG25Ijz76aIpy6bHvWmutlfbbb79cQTnm 31qL45533nk5WB2h6dgvjL761a+mSZMmpe9+97t510suuaTF845A9q9//et07733punTp6fhw4fn 8z300EPTjju2fJ/HgNOmTUvnn39+irD2uHHjcmhyjTXWSFtvvXU65phj8jitzXlFWP+lL30pnXHG GSnuxW9961vpoosuWuLTjmfl4osvTjfffHN69dVXU48ePfI12mKLLdIXvvCFNGDAgEZjH3XUUfna L1jQ8J0YG88888z0m9/8JveL6x1VcqPFvXPLLbekgQMHlucYcx0zZkyee+5U+vGDH/wg39/x+etf /3rafvvt0xNPPJFOPvnk3OXEE0/M1z5/qPgxf/78dOWVV+Zn8YUXXkgxp2HDhqVNNtkkP4vrr79+ Re/Gi/EsXHrppfm5iD8eiHBs3GM777xzPu/iHGKvW2+9tTy/l156KQ8UQeyPfexjeXmPPfZI4RLt tttuSz//+c/zcryPGDEiL1f+mD17drr88svTX/7yl/wdEsded911U1RU/uxnP5u/Tyr7F8tf+cpX 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 fUsVeueUwsYvv9oQ3my183LasPqqDYHgiVMazmk5TeMdfdgiELzSSivlsOO5556bxowZk4OzUY03 2iuvvJKKKqMHHnhg2aPYt7zizYWXX365vCpChr///e/LnysXYtxoEyZMyH9FUHx5RGjzy1/+cq5U evDBB+eQawQT99hjj7TDDju0WKk0xolQY/S5+eabc9XhG264IYeJI5QcYcjWArexb9HuuuuuXPH3 pZdeyhWRI9gcgdu6Vp7FynNtz/jFcYr3Yv8IJB566KHF6mbvtbW1eQ5F/+iw2mqrpQj8Rgg1Aqhx jhHYjkrFe+21V9poo42ajbOir4jw77e//e18f0Uo+Pvf/34644wzFssS92e0AQMGpJVXXrnVvquu umrq169fvm/Hjh3bar9luWH69OmpuGcWd3/Gsx5/FNBae+GFF9Kll16ann766fx9EPdrUcm7tX3e zvrKKtxNQ+5Nx41QcgSCY44dbcV3Tjzjlc2zValhmQABAgQIECBAgAABAgQIECBAgAABAgQIECBA gAABAgQIECBAYEUVKHJzXSIQHEHTujeDQINX7tvomsXqn1xyU7rhPw+XAoENm/r27plWHdgv9eze LUWQ96VSWDha0+rCDb3b/vlUqTLvN8/7S5o8veGfaO+2Um1auV/vNGLIwFRbKl0c62fOmV8+ftsj pjR91tzcbfAqDWHOxe0zqHTOEQgeP2XG4rott22DBjRck8JnuU3kHXzgRYsWlc8uqp+ef/75ad68 eenaa69NEcaNFlV3I/zXt2/fVFkFt6iMWx7gzYUIWhatqE5afG7pPYLFs2bNKlfzjfDvlVdemc48 88z073//O1cQvuyyy1K8IpD5gQ98IB133HHl/sWYvXr1ShFo/u1vf5v3jyrDUQ02XlExePPNN0+f +9zncmi42Kd4nzlzZjr88MPTQw89lFdFADeONWLEiBTVfWN+RYC5MjxYWVk0KhB3tBVWU6dOTVEV ta02efLkRl2OPPLItMEGG6QLL7wwV1t+9NFHU7ziOkZV47imcV5xPlqDQNw/EZ7+xz/+ke/zD33o Q2lxlazj2kSLCtpttQiSzp49u1HV67b26cztlSHZmFtHW9zrEaCO57G47yM8HPd6z549c3XseM6i Fds7eoyW+hcVxmNbVA1fXIsqv9GK4PPi+nZkm2erI1r6EiBAgAABAgQIECBAgAABAgQIECBAgAAB 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 ECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgSWjUB9fX2qra0VCF423I5CgAABAgQI ECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAYOkK1NTU5AFVCF66rkYjQIAA AQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgsEwE6urq8nEEgpcJt4MQ IECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQWLoCKgQvXU+jESBA gAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIEFimAhEIrq+vTyoEL1N2 ByNAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECCw9AQiFCwQvPQ8 jUSAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIEBgmQsIBC9zcgck QIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAg8PYF6uvr8yACwW/f 0ggECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIElrlATU1NPma3 4si7HvHTYtE7AQJNBG775bFN1vhIgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBA gAABAgQIEFj+AlElWIXg5X8dzIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAA AQIECBAgQIBAhwUiDBxVggWCO0xnBwIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAA AQIECBAgQIAAAQLLXyDCwCoEL//rYAYECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAA AQIECBAgQIAAAQIElkhAheAlYrMTAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAA AQIECBAgQIAAgeoQiArB0bpVx3TMggABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBA gAABAgQIECBAgACBjghEheBoNc+PHd+w1JG99SVAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBA gAABAgQIECBAgAABAgQIECBAYLkKjB45PB9fheDlehkcnAABAgQIECBAgAABAgQIECBAgAABAgQI ECBAgAABAgQIECBAgAABAgQIECBAgMCSCdTV1eUdy4Hg/gP6L9lI9iJAgAABAgQIECBAgAABAgQI ECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAYJkL1NTUpHjVLvMjOyABAgQIECBAgAABAgQI ECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAktNQCB4qVEaiAABAgQIECBAgAABAgQI ECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgMCyE4jqwNG6LbtDOhIBAgQIECBAgAABAgQI ECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAktLoK6uLtXX17cdCJ4zd36aOm1Gmj17 XlqwaFEq7bW05lD14/Tr2zv17Nmj6ufZmROcMnVGZw5v7KUgMKBfn9S9R/elMFL1D7FSbW3q3r17 6Xy7pT69eqUepfe30xYuWJTmzI3vttfT66XXO7F1694t9Sy9+vbpnXr0fHv3yVu/D+a++fvgHSZW +kOZnqX7q1/pmRq0ysols17vsBN0OgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAAB AgQIvNMEaku5umg1z48dnxO+/Qf0b3aO48a/mlbUQGiEgVce0DfNLwUGV+S2ol7/rnLNIwzcv3+f FfY+Hbhy/9S/ZLAkbdq0WWn23LlLsmuX3adfnz5plVWaf9e354RWxN8Hqw5aOa05Ymh7ePQhQIAA AQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIDAchFYrZQJW2yF4OdeeDnNmt0Qlhu5 xtA0dMigFCHZ2ppSCcUVoD3xzIv5LDdab+QKcLatn+Iddz+cN+7xnne33mk5bLn59vurcl7LmmJF u08Xlar4zl+4MM2ZMz9NmzErTS+95s9fkAavtkqH6CdPnp7mLViQ91l14IA0oH/fUjXw7qnmHfb9 Fl/yC0p/1DBz1pw0ZfrMHIB+44030mqrDeyQV7PfB4NLvw/6vfN+H9SVvKIa/quvTU0vvtzwBzEL Fy5K64xeo0NeOhMgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQGBZCrQaCI5K kBEGjnDcNltumKIKqUaAAIHlLdC9e7cUr/59+6S+fXqVgpvTStWRF6ZZs+bmSsntmV9UBo4wcI/u 3dOI1VdLvXr1aM9uXbJPfIfH+cUrQs/jJ07O5x4G7a0UXPw+6N2rZ9p0o7VL47xzfx/EH7zE+cVr aCn0/MgTz+ffhWGgUnCXfARMmgABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgMA7 XiDCwLW1tam26ZnOmTs/TZk6I68WBm6q4zMBAtUi0L/0hwpDBzdUBp4+c1ZauPD1NqcW1V5nz22o fP5ODwM3xYhQcJxztDAIi7Za5e+Dd3oYuKnF/2fvTuCtKuv9jz/niIIyCJoDggNQGVSaWKJ2FXPg lqjdpO4tMdNGNF5Q/8QGNTOtFJokTW3STLhaoplgpWCBSmA3tExoUjQZnEEGAYXDn++Dv+1z1ll7 77X2Xnv+PK/XOXvtNTzDe61nrXXO+u1nKyhYbVbSNVEWJAQQQAABBBBAAAEEEEAAAQQQQAABBBBA AAEEEEAAAQQQQAABBBBAAAEEEECg3gQ0cKRSl4DgF1ZtDwbef+BejAxcb3uN+iCAQCcBBQX327W3 n/fSxuIBm+vXb19n9759mnpk4E5IwRsFBavtSmYRLO4y2el60MQjA3dp+KszFBSsa6GSWby6iBcE EEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAoG4EOjo6ugYEr1u3wVdw rz13q5uKUhEEEEAgn0DPnj38os0JRgje+PLLft0+vXvmy67p51vbzaJQg9et2z6a8l57tO71wNpu FoW8WIYAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAII1EKgvb29a0Dw ple2f418r54716JOlIkAAgikEuix005+/Zc3by663eZX1+nefcei6zbrCtZ2syjUztz1oFfrXg96 vdp2syjkxTIEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAoNoCGh14 69atrluXgrfNVGpva+uyiBkIIIBAvQnsuOP209iWLVsSV62thc9vqdq+/XLQ0teD3LXwVYvEBxkr IoAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAJVENDowEpdA4KrUDhF INDIAgsXLnTXXXed06vSiBEj3FlnneVfG7ld1B0BBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQ QAABBBBAAAEEEEAAAQQQQAABBBpLQCMEa6BIAoKrtN+WLl3q9JNFGjp0qOvfv38WWZFHSoEZM2a4 8847r9NWd999t9PP5MmT3ZgxYzot4w0CCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCA AAIIIIAAAggggAACCCBQKQGNEKygYAKCKyX8ar6rVq1y06dPdytWrMispDlz5rjx48cTFJyZaLKM li1b1iUYONxSgcIaLXjgwIHhbKYRQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBA AAEEEEAAAQQQQACBighs3brVKSiYgOCK8L6W6Z133plpMLDlvHr1agKCDSOD1zVr1rjrr7/eLVy4 MG9uCgi2NGDAAHfhhRf6t5MmTXJr167102PHji0YEKyA4TPPPNP16dPHsuK1yQRsNHB9GED9dOPG jXnPAYMHD/at14jf+tl7773p1012PNAcBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBA AAEEEEAAAQQQQKCSAm1tbT57AoIrqbwtbwUHhklBfz169AhnpZ5WHkOHDk29HRvkFzj77LPdggUL 8q8QWTJmzBh3wgkn+LlnnXWWmzp1qp9W0HAYOBzZzJehoONp06ZFFzXU++hxHa38oEGDorOa+v2S JUvcokWL3OLFi1O187HHHvPr26ve9OvXzw0bNswdccQRfjpVhk2yshwtyD7apN69e3uf6HzeI4AA AggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAKtKNDR0cEIwdXY8Rs2bMgV c+yxx7rjjjsu956J+hBQgG6aYGDVWgGglsJpm1foVWWpTI0W3GhJo90qmDkMYI1rg0a+1WjJ5Qa/ x+VdT/OSeqSps0YWvv/++/3PO9/5TnfiiSem2bzh173iiityAfb5GjNhwgQ3ceLEfIuZjwACCCCA AAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAgi0jAAjBNdgVytIklR/AuGorhp5 +cILL8xV8rTTTstNhxN33323O/nkk/2scPtwHU1Pnz49N+uSSy7JBRJrm3oPCLZRbxX0aknBqvop lhQwfOWVV3Ya4VbBwcOHD2+q0a1//OMfuxUrVhTjKHm5AoO7d+/eUh8kULB8sZRknWJ5sBwBBBBA AAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQaAYBBQRv3brVdcuqMQrQOu+8 89yyZcuyytLnM3DgQDd58uS6D57MtNFkVlWBNWvW5Mrr06dP4mOtUCCwZRgG/SpvS2GZNq+eXhX0 e+ONN5ZVpbjgYZmde+65nQKFyyqkxhtXMhjYmrZ06VKb5BUBBBBAAAEEEEAAAQQQQAABBBBAAAEE EEAAAQQQQAABBBBAAAEEEEAAAQQQQACBLgIKCs4sILgSwcCqsQKMlffcuXO7NKDRZyjQb8aMGYlG XLW29uvXz40ePbqpRlm1tvFaPwI777yz04i+4ejAWdROeSpvEgIIIIAAAggggAACCCCAAAIIIIAA AggggAACCCCAAAIIIIAAAggggAACCCCAAAIIZCeQWUDwiy++mF2tIjlpKONmSxo9ddq0aW7Dhg2p mmYjt44ZM8YNHz481basjEBSAQXufvzjH3dJRkFOmqfWGzZsmA80TrMN6yKAAAIIIIAAAggggAAC CCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAQLyAYmwzHSH42muvdZMmTXLLly+PL7HE uQMGDHBTpkwpcev63WzRokWpg4H79+/vVq5c6RulkYWVCAr2DPyqgICON/2Q8gtoxG4F6VcysQ8q qUveCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggEBjCygYWCmzEYJH jBjh5s2b19gqdV770aNHOwUS60eJoODK77BHH3208oXUeQkKeL3zzjt9MHra4FcFzCqg9cQTT3Sa brY0duxYP9J3WpekDoMGDXLHHXdc0tVZDwEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEE EEAAAQQQQAABBBBAoAUFNEpwZgHBLehXkyaPGTPGl0tQcE34W67QjRs3uquuuir1aNYGpUBZ/Sxd utSde+65rkePHraoKV4V7Dx+/HgfpD9//vzMRgseNmyYO/LII50CgkkIIIAAAggggAACCCCAAAII IIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAII5BNQMLBGCSYgOJ9QHc+v56DgxYsXOwUzlpKW LVvmBg4cWMqmbFMhAQWeb9iwoezclYfyUpBrs6SVK1e6p556yh1yyCG+XWqbgp+XLFmSG01ZgdDF kkZO7tu3rw/+3WefffyrBU5bfs3kVsyD5QgggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggg gAACCCCAAAIIIIAAAskFFAzMCMHJvepuzXoMCp4xY4Y777zznOo2efLkVGaTJk1ys2fPdhdccIHf PtXGrFwxgSyCga1yWeZledbyVaMn33LLLW7OnDm50Xw1YnC+4F0FEGsbJQUAKxA4X1JQsYLrFUSt UYLz5Zlv+0aar3ZOnTrVrV271ldbbS+WtM7YsWP9ar1793YTJkwo+YMIxcpiOQIIIIAAAggggAAC CCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCBQzwKZjxC8cOFCHwyqUV6zTBoxVsGlI0aM 6JStlaeZccs7rdykb+opKPjuu+/2+1/UCgxWShoUrGDgW2+91W+jgOI+ffq4E044wb/nFwL1LqBR fGfNmuWrqSBfBfDaq0b6VZCwkr36N8EvjSK8evVqP7qwgoYVINtKady4cW758uWpmrxmzRq3YMGC 3Dba/o477si9ZwIBBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQaBUB jRCs1C2rBiuQM+tgYNVNeSrvuXPndqpqWF7c8k4rN/GbegkKVsD20KFDnY3umTQoOAwG1m5SHtHg 7ybefTStyQQUHKwfUnIBfegjbUBwNHeNEkxCAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBA AAEEEEAAAQQQQAABBFpRQCMEK2UWEPziiy9WzNEqGxYQBh+H0+E6rTIdFxRso5RWy0Cj+k6fPt2d dtppiYOC44KBlYfyIiHQTAIaKXj06NGuW7dubt26dYma1qtXL/fkk086jRrczOmaa67pdN5I21Z9 iEB5kBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQACBVhTIfITga6+9 1inAs9yRHqM7Y8CAAW7KlCnR2S35fv78+a5///5OwYXRFA0Kfuqpp1y/fv2iq1X0fZqgYIKBK7or yLzOBBQMrHTzzTenqpn69fDhw1Nt02grx503krZBwcB8iCCpFushgAACCCCAAAIIIIAAAggggAAC CCCAAAIIIIAAAggggAACCCCAAAIIIIBAMwp0dHT4ZmU2QvCIESPcvHnzmtGqbtq0ePFip58kacWK FU7BctVOccF9M2bM8NWYPHmyfyUYuNp7hfIqIaDg/KRJwflz5sxJunpuPfUdBQWnKSu3cQNNxJ03 ilWfYOBiQixHAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQACBVhDQCMH6 ySwguBXQaGMygbjgPgsKVg633nprLiOC+nIUTDSYgEbqPvLII51G7k6Thg0b5rcrts2sWbPcypUr nfUdRgp+TYzzxmsWTCGAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAAC EiAgmOOgIgLFgoJVKEF9FaEn0yoKjB492g0ePNgpeHfVqlWJSt57773doEGDiq6r/qGAYCWCgl/j 4rzxmgVTCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggIBGB1ZqhwKB SglYULAC+KKJoL6oCO8bUUBBwDqWzz33XDd+/Hh37LHHJgr2LaWtFhRcyraNtA3njUbaW9QVAQQQ QAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEai3Q0dHhtmzZkt0IwQsXLnTn nXeeW7ZsWaq2DRw40E2ePNmNGDGi03Zp8xsyZEin7e1NvvxtOa+VFbDgvtNOO80tWbLEF0YwcGXN yb16At/85jfdcccd5w455BDXv39//2Ola3TfjRs3+lF++/bta7N5TSDAeSMBEqsggAACCCCAAAII IIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAtsE2tu3jw3cLSuNUoKBVbYCiLXt3Llz O1Wl1Pw6ZVIg/+h6vK+cQBjcp1KmT5/uNI+EQDMIzJkzx+lnn3328aMFDxo0qFNwsN6HSUHCSVLS 9ZLk1Yjr2Hnjiiuu8NWfOHEi541G3JHUGQEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEE EEAAAQQQQAABBCousHXr1uxGCH7xxRdLrrAqEk3l5BfNKy7/6DrVeN+jR49qFFOXZVhwnypHMHBd 7iIqVabAihUrnH7CNHjwYP/2xBNPzM1+8MEH3VNPPZV7n2/isccey7eoZebrXHHhhRe2THtpKAII IIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCBQikCmAcHXXnutmzRpklu+ fHmqugwYMMBNmTKlyzal5hfNKF/+0fUq9X7MmDFu/vz5zkYNrVQ5jZAvgcCNsJeoY5YCFtQbjva7 YcMGZ/OzLIu8EEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEWk9A wcDt7e3ZjRA8YsQIN2/evMwki+U3ZMiQTmU9+uijnd7Xy5vhw4c7/ZAQQACBfAL9+/d3Q4cO9SMH L168ON9qzEcAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEECgk0Bb W5t/363TXN4ggAACCFRVYNiwYW7s2LG5MjWi+KxZs3Lvm3VCgc+zZ8/OtHnHH3+8kycJAQQQQAAB BBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEGglEUFkYgAAQABJREFUgY6OjuxG CG4lONqKAAIISGDQoEFu6dKlZWEce+yxnbY/8sgjmz4geM2aNT4IWq9Zpuuuu87NnTvX9enTJ8ts yQsBBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQqGuB9vZ2117XNaRy CCCAQB0LnH766W748OF1XMP6rJoCgbMOBlZLK5VvfSpSKwQQQAABBBBAAAEEEEAAAQQQQAABBBBA AAEEEEAAAQQQQAABBBBAAAEEEEDAOY0OvHXrVkYI5mBAIBxNdO3atW7hwoUVQVHelsIybV49vg4e PNjdc889mVRNeTVb6tGjhxszZozTKL/z5893S5YscatWrUrVzEWLFrnRo0fntpkzZ05uulknBg4c 6K655ho3Y8aMzAKD1ae0L5Q3CQEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQ QAABBBBoFQGNDqzUrVUaTDsRyCcwbNiw3KLFixe70047Lfe+UhNhmZUqI4t8Bw0a5IMsZ82a5TZu 3FhSlgqaVcCr8mrW1K9fP99GtVMBwU899ZRbsWKFW716tX8vg3xJgcRar3///n5dBQi3QjrhhBOc fkgIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAKlC2iE4La2tsYN CO7du7ezEVcHDBhQukSTbrnPPvs0acuyb9aIESOcfio1MnC0xlZedH69vh8+fLjTz9KlS0uqYjMH AseBKDhYP0OHDo1bHDtPgej6KZQKBRUX2o5lCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAAC CCCAAAIIIIAAAggggAACzSugEYIVFNywIwRfe+21btKkSX4PTZkypeH21ODBg90999xTkXorcHDv vfeuSN7Nmun06dPdFVdcUfGgYAUDT5w4sSEZWy2wN+udpNGDZ8yY4VauXJk6awUYH3vssam3YwME EEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAIHmFti6datTUHDDBgQr sHLevHkNu5cUXHnkkUe6+fPnZ9oGBQMr8FABhKR0Ao0aqJuulaxdK4H+/fu78ePH16p4ykUAAQQQ QAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEGhCgba2Nt+qhg0IboZ9osDd 4cOH+xFDV61aVXaTFASsQGOCgcumJAMEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAA AQQQQAABBBBAAAEEEECg7gU6Ojoae4TguhdOWEGNGqofEgIIIIAAAggggAACCCCAAAIIIIAAAggg gAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAmkEbITg9jQbsS4CCCCAAAIIIIAAAggggAACCCCA AAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAII1IeAAoK3bt3qugYEb1ug1LFtIQkBBBCo d4FXNm/2VdyhvevpLF/ddfJr1ZSq7dsvBy19PchdC1+1aNXjhnYjgAACCCCAAAIIIIAAAggggAAC CCCAAAIIIIAAAggggAACCCCAAAIIIIBA/QooKLhLBF33HXf0NV63fkP91pyaIYAAAq8KbNz0sp/a 8dVzVyGYbt26+cWbNr1SaLWmXmZtN4tCjc1dD9a17vVg3attN4tCXixDAAEEEEAAAQQQQAABBBBA AAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBGol0CUguFevnX1dnn7mhVrViXIRQACBxALr12/y 6+640/Zg30Ib9ui+k1+8Zu36Qqs19TJru1kUamyvXrv4xU8/27rXA2u7WRTyYhkCCCCAAAIIIIAA AggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAgggUG0B+9b4LgHBu/Xb1dfliWVPuzXrXqp2 vSgPAQQQSCywdv1LbtWLa/z6u/ToUXS7nrts/8DD86vXuI0bt48sXHSjJlpBbVbblcyiUPM6XQ/W tt71YM22NutaqGQWhbxYhgACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAA AghUW6Ctrc0X2SUguOcuPdzuu20PCv7jg38jKLjae4byEEAgkYCCgZ9+ZpVft9+ufdxOCUYI1jq9 em4f9Xb5U8+1VFCwgoHVZiUZJPEKrwcPL3nMKUC2VZLaqjYr6ZooCxICCCCAAAIIIIAAAggggAAC CCCAAAIIIIAAAggggAACCCCAAAIIIIAAAgggUI8CGiW4W1zF9h2wl3v55Vfc2m0jBD+waInbf+Be bq89d9sWRLaza381kjhuO+YhgAAClRR4ZfNmt3HTy279+k25kYF7bBsZuFev7SP/Jim7X9/ebsvm LW7Dpk1u6ZMr3e59+7g+vXu67t13dPZJiST5NMI6Oslv2vTKtkDe9bmRgXfu3t3JIGnqdD148NXr wR7brgfbzJvtetCxzWvdug3u6WdfyI0M3LvXLk4GJAQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEE EEAAAQQQQAABBBBAAAEEEECgHgUUJ6bYt7bHHl++VRXs3adrgNiTy592z7/wYj3Wv+J1UvDzrn16 bgs+fKXiZdVzAa26/+t5n4R167MtWLF3711a9jjtu2tvp4DNUtKq1Wvdum2jDLdS0sjAaYKBQ5tW vB5oZGCCgcOjgGkEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBCoN4HX 9evtfFBwoYBgVXr9SxvdC6te9KMmbnplW3DstkjiVkkKCu7efadWaW5sOwkIjmWpq5kKCt5xpx3r qk6VqswO7e1uxx27+Z9ddtnZ7bRtupz08subt53jNvhRhzdvG324GVO3bt1cj23nsZ7y2qk8r9eu By+57deDJhNrc677jjtuG/14F7dbv123mfVosgbSHAQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEE EEAAAQQQQAABBBBAAAEEEGg2gd379io+QnCzNZr2IIAAAggggAACCCCAAAIIIIAAAggggAACCCCA AAIIIIAAAggggAACCCCAAAIIIIAAAggg0CwCGiFYqbzhIptFg3YggAACCCCAAAIIIIAAAggggAAC CCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCDQYAJbt271NSYguMF2HNVFAAEEEEAAAQQQ QAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEBAAm1tbR6CgGCOBwQQQAAB BBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBpQoKOjw9c6FxC8 ds3aBmwGVUYAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQ QKA1BXbv28uPEtzems2n1QgggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAII IIAAAggggAACCDSHQG6E4EH779McLaqzVix9YoWv0b4D9vQR2HrT1tbm59lrOM8v4BcCCHgB6z+c nzggEEgvQP9Jb8YW9S3AMV3f+4faIYAAAggggAACWQhwz5eFInmUKsDxV6oc2yGAAAIIIIAAAggg gAACCCCAAAIIIIBAvQgwQnCV9sTWrVudfpSir+E8vwK/EEAAAQQQQAABBBBAAAEEEEAAAQQQQAAB BBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQKCLQ0dHhtmzZ4nIjBBdZn8VlClgQsLLRyMB6H44Q XGb2bI4AAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggg0GIC 7e3bxwZmhOAq7XhFYCsI2H6s2DBQ2ObxigACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAAC CCCAAAIIIIAAAggggAACCCCAQBIBxaIyQnASqQzWiQYCW5bhKMFaJ3xv6/CKAAIIIIAAAggggAAC CCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIBAnIDiTxkhOE6mAvOEbaMER7PX MhICCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAJpBHww cHs7IwSnQStnXQv61atNMxpwOaJsiwACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCA AAIIIIAAAggggAACCLS2gMWiMkJwlY4DjQ5syQKCw+BgW8YrAggggAACCCCAAAIIIIAAAggggAAC CCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACSQUUo0pAcFKtDNYjADgDRLJAAAEEEEAAAQQQ QAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEMgJtLe3ExCc06jwhAUDh6MD xxVpy+OWMQ8BBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBA AAET0OjAij1lhGATqfBrGOgbTle4WLJHAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEE EEAAAQQQQAABBBBAAAEEEGhSAY0O3NbWRkBwNfdvNBA4fB9OV7NOlIUAAggggAACCCCAAAIIIIAA AggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggg0JgCNkJwt8asfuPV2gJ+7bXxWpC+xjNm zHDLly/3G5566qlu4MCB6TNhCwSaUGDp0qXu3nvv9S3bb7/93DHHHOOn//CHP7h//vOffvqwww5z b3rTm/x0qb+uuOIK/8kPbT9hwoRSs2E7BJpeYNmyZe7WW2/17RwwYIAbM2ZMXbeZvl3Xu6dhKnfb bbe5tWvX+vqecsoprm/fvg1T91pWNN81vJZ1ouzKCixcuNDpR2nEiBH+p9QS0+aV5fWplmVn2Y5S 8srqulnLsnXMpW1Hln+P17LstO1Iu36h/pw2r7T9TGWXclxpu7T7RNuQWluAe5jW3v+0HgEEEEAA AQQQQAABBBBAAAEEEEAAAQSaX0AjBCsomIDg5t/XNWuhHp6FD88JCK7ZrqDgOhP461//6i6++GJf q3e/+925gOCZM2e6m266yc+/6KKLcgHBixcvdlOnTnV9+vRxF1xwgX9N0iRtY4mAYJPgFYGuAvrw ioIqlBTsVa2AYPp2133BnOoJXHXVVU6BIUo67gkITmaf7xqebGvWqncBXQuWLFniP0g1bNgwX90F Cxb4+zC90f2U+kuSlEVepV6faln23Xff7a6//nrvZPefpbbD8jrzzDPdCSec4NlLyauUe2K7Rus4 KKcdWZWtxqfNq5S/x+PaXa2y16xZ4y699FK/n8O/edK2I+36KjCrsks5X5RyTJeyTzxsC/zKdwy3 QNOLNpF7mKJErIAAAggggAACCCCAAAIIIIAAAggggAACCDS0gAaqVVAwAcFV3I02OrBe9dPW1lbF 0ikKAQQaVUAP/xUQodS7d2934YUXNmpTqDcCCAQC9O0Ag0kEEECgxgIKIrSASwUFz507t+QaZZlX 2krUsmzVddKkSX70cQVGDh06NBfIm7YdGjV13LhxfjPlpf1RzQ+YqmwFauoevNrfHtCqZV9yySW5 b2zQ/0umTJmS9rApef1all1ypdkwVqCW/Se2QsxEAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQKBK AhaL2l6l8igGAQQQQCADgWoGQmRQXbJAAIGEAvTthFCshgACCFRBwD7ImUVRWeaVtj61LFt1VSAt CQEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEKi/Q0dHhC2GE4MpbUwICCCBQlsDkyZPd dddd5/r06ePGjBlTVl5sjAAC9SNA366ffUFNEEAAAd1jrVmzxv+ccMIJZYFkmVfaitSybNV1+vTp flRdfdBl2LBhaaufW1/bX3PNNW7x4sU+n2p/cEZla3TgWtx/t2rZ+hYU289nnXVW7lioxkQty65G +1qpjFr2n1Zypq0IIIAAAggggAACCCCAAAIIIIAAAggggAAC9SdgIwQTEFx/+6ZgjfTVqfrqUqUR I0YUXFcL9QB17dq1fj19ZaseaCZNtq1GdrIHc7ZtWI/evXsnfthbKE/LO/pqZcXVw/LTNkk8onnz vnUEFi5cmGtsmr5gx1jc8ZfLMJiw41Wz0pQTZNFlUv124sSJXeaHMxTAoq+3VkrTF6x92i6r+iov UnMJlNJ/bJs0x1Wp/Sc8/pOUZ+WkuX5pj1qbNJ2kHK1XKFWybxcql2XZ78ukpnbsaf00x5Cdq9Ns k7ROhdYL+1ba/hJum6TeZpO2nHz1D/trkuuila/8kl7z85VdznyrR5xDaKoykrRL64XbJdkX2qZQ MtskTmHZyjNpnbWulRNXZ+sTWi9tPQqtnzQIMWxXXP1Ur6R5ad20yWzytaWWZSsIOGkgcLF2KDC7 3ODsfLZ2DMX1NW2Tph35ysg3v5Zl2zlGdYvrj5Vsd7Gyk9wX5TMtNr+WZSc5X8TVv1j/iNuGecn6 bng85DuPRi1tf2h+XN+Jrh++L9bnw3U1nbasUtoTLZP3CCCAAAIIIIAAAggggAACCCCAAAIIIIAA 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 Hj6DM888M3f+sfOQXt/61re6t7/97e7973+/++lPfxo7iu9VV13ltz377LPzVmbRokXuHe94h19P 58e9997bl3/YYYfl3SZugYISTz75ZPehD30objHzUgo0yzVBn4izFE7bvEZ9DduirwBJmrI676rM 73znO27//fd3l156qVPgNQkBBBBAAAEEGk+g0e/5Zs2a5d7znvf4vwN0n0Oqb4FGP97qW5faIYAA AggggAACCCCAAAIIIIAAAggggECrCVisQLdWazjtbS4BjVx59913u1GjRjkFqdU6qS4PPvigH6FX QXRh0oiXv/71r92MGTPcAw880Glk33C9YtMLFixwN998c97VzjjjDKeAujvuuMPde++97qijjsq7 bqEFstXomvnS0KFD3fTp012fPn3yrcL8Oheg/3TdQfSfrib55ihQd6+99sot1sjl+rCDzoH60eir OkfYyMK5FQtM/Otf/3Kf+MQn3MaNG9373vc+d+655xZYu/CiXr16Od3sZHWOqrf+Urj12S9tlmuC Ru63D9Lsuuuu2UNVOUcLdLG26H2xbycIq5jlfYv62tVXX+1OOeUUN2XKFHfLLbeERTGNAAIIIIAA Ag0g0Oj3fLvssovTB6V69+7t/xZoAPKWrmKjH28tvfNoPAIIIIAAAggggAACCCCAAAIIIIAAAgjU nUBHR4f/HzkBwXW3a6hQGgGNhKtR6N74xjem2axi62pU4J133tmNHz++UxkK0BkxYoRTULDSfvvt 51///e9/+9ekvxQk96UvfaloMLFG31RAsEbXLDUguFCdCAYupNM4y+g/8fuK/hPvEp07duxYd845 50Rnu/nz57svfOEL7tFHH3WTJk1yP/nJTxI9jH/66af9BztWr17t/uM//sNddtllibbrUoFXZ5x6 6qlu5MiRbrfddsu3Sqr59dZfUlW+wis30jVBx4MFBO++++4Vlqle9uFxHk4Xq0HW9y0HHnigO+64 49xvf/tbf3+mex8SAggggAACCDSHQCPc873rXe/y9yD2YanmkG/NVjTC8daae4ZWI4AAAggggAAC CCCAAAIIIIAAAggggEC9CtgIwa99b3K91pR6IdAgAvfdd597+OGH3Xvf+163xx57dKl1t27d3Ac/ +EE/uu/vfvc7d+ihh3ZZp9iM7373u+6JJ55wJ510Um5V68y5GdsmFJDzlre8xWk0YY3UmWXioUyW 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 hAKTlH00vMRz38L7yjQC0QqMHDnSnnrqKStbtqy98847lpaWlm0TU6ZMsVdeecW++OKLTOspIFfl pJNOynR5tDMVPPinP/3Jli1bZtdee6317t072yb0+Vb/nnnmGdN4eNm/f79rS/MbNmwYvphpBBDI hUA055FSpUrZP//5T/c5nT9/fqZb+/HHH938WH1GFy9ebLqZQH/n+/bta8oUnl3R332dR9TPzIo/ zymTerVq1TKrwjwEEEAAAQQQQAABBBJKoGTJkq6/uuktvOzduzd8FtMIIIAAAggggAACCCCAAAII IIAAAggggAACCBSYgAsGPhwTSobgAiPP+4YaNGjgGhk6dGgggFcz1q5d67L9btu2zS3fsmWLG+qf Zs2auYyhb7zxhv3888+B+RoZNmyYmy5durTVqFHDjRcrVsxuv/12N67HmgdnMFUGlLvvvjuQ6c9n FVbleO6b2xn+QSCXAtOmTbN7773XSpQo4QLrmzRpkmNLF1xwgavTv39/80FxfqUVK1aY5qvkFHDn 18luqM/lnXfeafPmzXPt/fWvf7UiRYpkt4o1atTIqlev7jKOP/nkkyHZwJU+/vnnn7cdO3a4wOdY BS1n2yEWIpDkAtGeR/QZ9ueRp59+2mXZDSZSlv/JkyebbhA6//zzgxflanz9+vUuw7gCG3RDwXXX XZdjO+eee66lpqba1KlTTd9Lgssvv/xif/vb39ysiy++OHgR4wgggAACCCCAAAIIJKzAcccd5/q+ YcOGkJtrdaPt3LlzE3a/6DgCCCCAAAIIIIAAAggggAACCCCAAAIIIIBA4gv4eLHUxN+VwrMHN954 ow0cONAU8KtAoTPOOMMF9ClLoIIV9cOEsvcGPz5c2UJHjx5tM2fOtDZt2ljTpk1dxs9vvvkmUE/B jkWLFg1A3nTTTTZixAhTVsJrrrnGbUfZCtWGMp4o2194NuJ47ltgxxhBIEoBZd7t1q2bKWOusgP7 ALesmlEm7goVKpg+DxMmTLCJEydau3bt3OdV2bcVvD9p0iT3OVIwsD6feS2vv/66CwxUO2vWrLFO nTpl2eSll15qXbp0MQX+K7PnDTfc4M4pX375pZ199tmmzOE6N+hGANV58cUXXcBflg2yAAEEchTI 7XlEwfr6PCqwQEG1CsDV+UWfz+nTp7vt9urVy0444YQc+5BThb/85S/u/KHPvb4z6JVV0Y1B+j7R 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 c06u21Lg79atWzOsv2rVKnv77bftsssus5deeinDcmYggAACCCCAAAIIIIAAAggggAACCCCAAAII FE4BBQTr2nLMMgSrsY8++sief/5527x5c0A1NTXVOnXqZPfcc49VqFAhMJ8RBBBA4FgIKDW6Am7j uZQsWdL02r17dzx3k74hgEASCezbt8/OOOOMbPfozDPPtCFDhoTU0Xe+v/zlLzZt2jQ7cOCAW6bv fueee677TlixYsWQ+vE2wd+EeDsi9AcBBBBAAAEEEIi9gDID/+EPf3BPDbriiivs2WefDdmIvhP6 Ejzu50Uz9BkYtE5u2lq5cqV98skn9tlnn5n62rt375DN16lTxz744APr0aOHvfrqq1auXDm79dZb Q+owgQACCCCAAAIIIIAAAggggAACCCCAAAIIIFA4BXSNOmYBwQ888IB9/PHHVrRoUbvkkktcVg1l 3xg1apS7UD1nzhx3QVtBIhQEEEAAAQQQQACB+BH4+eefXWf05bBMmTKZdix8vta57rrrbPXq1Va3 bl0777zzTMEW//3vf23ixIkuA5uyr8V7UHCmO8tMBBBAAAEEEEAAgaQRGD58uAsG1s3Bf//73zPs lxIYbNu2zc0vX758huWRzlCyBJ8MQeORtqUncej6qQKBZ8yY4TI4ZLfNs88+2x599FG788477fXX X3dZiUuUKJHdKixDAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQKCQCMYnOHT9+vAsGVkbLQYMG2emn nx7g69q1q3Xo0ME9Qvpf//qX/fGPfwwsK0wj+iGAggACCCCAAAIIxKOADwg++eSTTQETkRQ9TlnB wMoc/P7771vp0qXdajt27HAZ2L799lsbOHCgC1SIpD3qIIAAAggggAACCCCQHwIzZ850zTZr1izT 5itVqhQICD7++OMzrRPpTLXlSyRt6XphixYtTEHBKrrRTmXFihVumNU/zZs3d4u2bNnigp2bNGmS VVXmI4AAAggggAACCCCAAAIIIIAAAggggAACCBQCAV1vVhK4o8/Ey8NODxs2zK2tx+8FBwNrZsOG Da1jx45u+ddff+2G/IMAAggggAACCCAQPwLr1q1znalRo0ZEnTpw4IANHjzY1f3zn/8cCAbWjLJl y1r37t3dMj3OOD093Y3zDwIIIIAAAggggAACx0Jg5cqVbrO6kS246OJoSkqKy+rrb+SPJIg3uI3g cbXh1w8eD66T2bieptapUyf78MMPbcKECeaDfTOr6+dVqVLFatWq5SZXrVrlZzNEAAEEEEAAAQQQ QAABBBBAAAEEEEAAAQQQKKQCCgZWiUmG4GXLlpkeTZdVpo20tDS3sQ0bNrgh/+RNYNOmTS4T87x5 82zhwoXux4bGjRvbHXfcYbVr18608e+//9769+9vP/30k23fvj3waG8FcSuzc2Zl5MiR7pGFCxYs MAUI6QcJbSO7Eu12FFCkrNLffPONzZ8/34oVK2b169e3m2++2fQIxKxKbvqWVVvML9wC+/fvd+89 /QioGxo2btxoCozT40KLFi1q5cqVsxNPPNGKFy8eAqX3q9bVsuOOOy5kmd7X3333nZt32mmnuXZC KjCBAAIIxJmAzxBcvXr1iHqmzMA6X5YqVcpat26dYZ0LL7zQFNigdvX9r1q1ahnqxOMM/ibE41Gh TwgggAACCCCAQN4E9u7d6xrQ/++Di4J3W7Vq5f7PXqZMGXdNoHLlysFVLJrrVsrSq2sEKieccILV rFkzpK0XXnjBdA31gQcecNfZtFAXaKdPn+6uq4ZUjmBC+6Pv5X7/IliFKggggAACCCCAAAIIIIAA AggggAACCCCAAAJJLKBkFTEJCB46dGi2TD4wzl8Uz7YyC7MVmDVrlvXo0cPWr1/v6unHC2U6mTNn jn366af27rvvukcNBjeigNuHH37YdMAV9KgAYK0zdepU9yjvTz75xIIfaah6Tz/9tL3zzjuBZvQD g36gGD16dOAxioGFv45Eux0FXSqD4OzZs10L6oMedfjDDz+4QOSePXtat27dQjaT276FNMIEAkEC ylzpA+EU2Lto0SK3VD/K6f2mAHoFs7Vp08YFt/lVFQinH9384zz9fA2D29S4AospCCCAQDwL+O8V PiD44MGD7vxXsWLFTLvtz5vKTJbZOU7BwFpX50/9vU+UgODg8zd/EzI99MxEAAEEEEAAAQSSRuDS Sy81vVQUzPvZZ5+F7Fu0163+7//+L7D+448/HhjXyNatW+21115z83TDvW6E90VJFigIIIAAAggg gAACCCCAAAIIIIAAAggggAACCORFQHFuindLyUsjkay7Z88emzJliqvaoUOHSFahThYCCj687bbb XDBw586dneuMGTNsxIgR1rZtW9u3b5/de++9LojRN6HA38cee8zNU4Ct6isbr7IF16lTx1asWGF9 +vTx1d3wiy++cMHACh7u1auXff311zZ37lx77733bPfu3S5oVxX1JvIlN9vp3bu3CwZu0aKFDR8+ 3GbOnOmClH0WYmVOWbx4sd+EG+ambyENMIFANgIKBm7YsKGdd955puyWp5xyigsC1mdv+fLl2azJ IgQQQCCxBXyAr54+0KVLF9PjlM866yxr2bKlPfLII7Zr166QHfT1g28oCqlweMIvUyBFIhb+JiTi UaPPCCCAAAIIIIBARoE1a9a4meHZfzPWDJ2Tm+tWoS0cnapQoYLddddd9j//8z+BIOSjS3M3ppvz VNauXZu7BlgLAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAIGkEfPLLfA8Ifu6551wAq4LrlAGDknsB BfIqw54CdPR4Qf/owZNPPtkFAqtl/QiwdOnSwEYUZKvHGyqLadeuXV22vmLFitlFF13kMg2rojIF KyOeioJ8X3nlFTd+++23m1760UJZhc8991x7//33TY9RDC/RbkdZV5WNUFmjn3jiCZeJRW1q/+65 5x5T5mNlJ1QAsy+57ZtfnyECOQmcdNJJVr9+fStVqpTpc1KrVi3zP7Bt27Ytp9VZjgACCCSsgM8Q PGbMGBs/frz7268MucrwO2DAALv66qtt586dgf3bsWOHG88sO7CvpCzBKuHBxH55vA/5mxDvR4j+ IYAAAggggAACOQssXLjQfEBw06ZNc17h1xq5uW6VU+N33323vfzyy1ajRo2cqka0vFmzZq7ehAkT IqpPJQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAIHkFSiQDMF61N67775r5cuXtyeffDJ5NQtoz1q1 amXKkPvhhx9a8eLFQ7baqFEj84/5VtZfXxTQqKIfP8IznLZv396+/fZbmz59uikbsIoCin/88UeX PlpZiMNLWlpaIEBSUeW+RLudcuXK2ahRo9z+KCg4uCi4SBlaVYL7nNu+BbfNOALZCdSuXTvDYp9B SNmxKQgggECyCujGrTPOOMPuu+8+mzhxok2ePNnmzJljL774opUuXdqWLFlir7/+eobdD/4uEL4w u2XhdeNxmr8J8XhU6BMCCCCAAAIIIBCZgJ6ipadRPfjgg24Ffd/1N/xG0kJurltF0m4s61xxxRXu Rj492UvXXX/44YdYNk9bCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAgkk4GM0jqRuy4eOT5s2zWWx VXa4V199NZDNNh82VeiaVMZfBQYrcFdBsj5Ln89gqmhvX5SVWRlQ5s6da+3atbMrr7zSzj//fNMP Icr0qyCf4LJy5Uo3WbFiRZetN3hZduPRbie4ra+++spmzZrlgpY3b97sshTPnz8/uIobz23fMjTE DASiEPAZLn0W7ShWpSoCCCCQMAK33Xab6RVc9GXxt7/9rW3atMmeeuop95QABQz7m4iC62Y37r90 ZlcnUZbxNyFRjhT9RAABBBBAAIHCLjB79mxTRl6Vc845x954441ck0R63SrXG8jlirrB/uOPP7br r7/eJWT473//664X5rI5VkMAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBIYAEfM5ovAcELFiywbt26 2f79+61v377Wpk2bBKaKr65PmjTJBVrr0d4KsKlQoYIpa4mCc+St4g+uxhW4MmjQIHvuueds6NCh NmTIEPcqUaKECwzu0qWLKZjXFwUYq1StWtXPimgY7XbUqAJ877zzTvPBvwpQrlSpkuuzHs2oErwv ue2ba4h/EEAAAQQQQCBXAr/73e9cQLAypetvsZ4KcNxxx7m2ssue7r+X6LsKBQEEEEAAAQQQQACB ghTQ9SVlBN6wYYN9//33pmuVeiJGNCXa61bRtB2ruv/+979ty5YtrrmTTjopVs3SDgIIIIAAAggg gAACCCCAAAIIIIAAAggggECCCfhkbSmx7rcult966622c+dO69mzp3Xs2DHWmyi07S1cuNC6d+/u fsyQ7cyZM11m3fHjx9vYsWOtRo0azsYfXA+l4N+HHnrIlNFkwIAB7vhUr17dxowZYzfccIMLEPZ1 9YOJyq5du/ysiIfRbEcBRMpEqGDgq6++2saNG2fz5s1zjynXvlx++eVuu8H7kpe+RbwTVEQAAQQQ QACBEAEF//qg3jVr1rhl/juHMvtnVRR8oRLtTUZZtcd8BBBAAAEEEEAAAQQiFWjYsKFNnTrV7r// fvdkrT/96U928ODBSFe33Fy3irjxGFVUMPCLL75oesqXrqXpCW0UBBBAAAEEEEAAAQQQQAABBBBA AAEEEEAAgcIpkJ6ebnrFNCBYQSG33HKLC1hVsKeyBFNiJzBixAgXqNuhQwdnqwv+0ZSiRYtay5Yt rU+fPu6Hgs6dO9uBAwdc9mCfibdOnTquyXXr1kX1Q0lwPyLZjh7duGjRIqtbt67169fP6tWrF9xE puOx6FumDTMTgTwIRPODYh42w6oIIIBAvgkoY9rf//53GzZsWKbb0HcFn7lfNxSp1KxZ0w03btxo e/fudePB/+zZsyeQqUyZ2QpL4W9CYTnS7CcCCCCAAAIIJIKArk916tTJNNy6dav99NNPEXc7N9et Im48RhWnT5/uWrrgggusfv36MWqVZhBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQSUUCJV1NSUmIX EKyMssq2sWzZMrv22mutd+/eiegS131esmSJ61/x4sUz9FPB2D5YJ3ihMgorCPjtt98Onu0Ofteu Xd08BfOsXr3ajdeuXdtlFtm3b58NHz48ZB1NKMBH2Z/DS7TbWbx4sWuiWLFiFpwFWDMVTLNixYrw TVhu+5ahIWYgEAOBkiVLulb0o2J4ySw4LrwO0wgggEC8COimIGUW69Wrl/38888ZuqUnDOguMn3/ 8IHA1apVs1q1atn+/fvdTUbhKylDmdpt0KCBVa5cOXxx0k3zNyHpDik7hAACCCCAAAJJIlC+fHk7 +eST3d4sWLAg4r3KzXWriBuPUcXvvvvOtaTrfhQEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBCQQ kwzBCuC88847bd68eXbJJZfYX//61wxBnnDnXUBBNSpDhw4NBPBqeu3ataZsv9u2bdNkICOfxps1 a+YyNr/xxhsZgnx8JsDSpUubf/S3AnRvv/12reoyBwdnT9Fxvvvuu00BxCo+q7DGo92O3xf9wPKf //xHTbiiwHIFJM2YMcNNBz+KPLd9+7VpBgjEVOC4445z7W3YsMEUQO+LxufOnesnGSKAAAJxL9C4 cWOXsV/nr5dfftk9Htl3Wue4vn37ukmfXU0TuqtM3z1UtI7q+aLvCf5xxTfeeGOh+E7I3wR/9Bki gAACCCCAAALxJ+Bv3gr+v3tOvczNdauc2pw/f76NGTMm10/kCm/f74/fv/DlTCOAAAIIIIAAAggg gAACCCCAAAIIIIAAAggUHgGflDU1Frv8+uuv2+TJk11Ta9ascY/jy6rdSy+91Lp06ZLVYuZnI6Cg moEDB7qAXz0O8IwzzjAF0P74449WokQJUzCKsvcuWrQo0IqyNY8ePdpmzpxpbdq0saZNm1rDhg3t m2++CdS799573eMT/Uo33XSTjRgxwvRDxTXXXOO2U6pUKdeGMp+WK1cuQzbiaLej7CVnn322a1PB 5GlpaVa1alXTIxn1aHJlE1RAkc/Ikpe++XUZIhBLgXr16pnOd/rMTZo0yb1nfQZtBcpREEAAgUQR 0DnrlVdesd/97nc2ePBg0w1DF154oQv6nTp1qvveoczA99xzT8gudezY0T799FP3PeSqq66y1q1b u+DfL7/80v0Nb9KkiV133XUh6yTrBH8TkvXIsl8IIIAAAgggkEwCwTe257Rfub1ulVW7eqpXhw4d 3DWv5557zo1nVZf5CCCAAAIIIIAAAggggAACCCCAAAIIIIAAAghEK6AnP+s6eEyi1jZt2hTYvoJI FWya1Wv58uWBuoVpxEdg52Wf9XjuDz74wM466yx38BQ8qwy+Z555pn3++ef2m9/8xjW/ZMmSwGb0 aEStc+utt7rHfGudjz76yAUD169f3/r162e33HJLoL5GlDFYAUHt2rVz25k+fbpNmDDBqlevbh9+ +KELEA5Z4fBEtNspWrSoKWuxAokViKT3hYKWtY//+Mc/AkFH4QHBuelbeF+ZRiAWAmXKlHGfPWXi 0clU2TEVHFyhQgVr1apVLDZBGwgggECBCZx22mkuEPjcc8813dzw73//290cpBuBFCisad0QFFzK li1rQ4YMsfbt25vqDR8+3LWhcc3TdwafOTd4vWQc529CMh5V9gkBBBBAAAEEkkVAN52rrFixIuJd yu11q6w2oOtZtWrVMt1wr2Fei65DrFu3zjVz/PHH57U51kcAAQQQQAABBBBAAAEEEEAAAQQQQAAB BBBIcAHFYOradpEly1Yf0r7UT6uZ4LsUn91funyN61jF8qVd4KvQhR/88sHC4cPs9mjr1q0uO6ky 6yoIJdLi16tRo4ZVrFgxx9WUrVdBuaofHgiU3crRbEeBR8uWLTP9gFGlSpXsmg1Zltu+hTTCRFwL +M9PLM5PyjitGxWUTVsZtmNZ9B7ev3+/+yzqsx2rsnv3bpsyZYpr7uKLL3bnjVi1TTvJLxDLz0/y a7GHwQIK6NWNOgpWqF27tsv6G7w8s3EFJKxcudItqlOnTkTrZNZOdvNi+Z7mb0J20ixDAAEEEEAA AQSOnUAsv/P5vXj22Wftrbfecjf16oa2aEtur1uFb0ffmfVdWzcW57UsWLDA3civdvTUIn1vp+Rd ID/ef3nvFS0ggAACCCCAAAIIIIAAAggggAACCCCAAAKRCeg6dGpkVakVbwLKQqpXtCXa9VJTU61R o0bRbsb1LdL+6YeQxo0bR72N3PYt6g2xQtIJKNBWRe89H4ifl51UO7H4Qc/34eDBg7Zv3z6XpdPP Y4gAAggUlIBunDjppJOi2pzOpXXr1o1qnXipzN+EeDkS9AMBBBBAAAEEEMgfAT2dqn///vbtt9+6 G9Lr1asX1YZye90qfCP6zhyrawfDhg1zzbds2ZJg4HBophFAAAEEEEAAAQQQQAABBBBAAAEEEEAA gUIqoIDg2KWyLKSI7DYCCCSWgLLxKOuuXsryE49l7dq1rn8zZ86Mx+7RJwQQQCBpBPibkDSHkh1B AAEEEEAAAQSyFDjxxBPtjjvuMD1p6uqrr7b//Oc/WdaN9wW7du2yv/zlL/b222+7J3899NBD8d5l +ocAAggggAACCCCAAAIIIIAAAggggAACCCBQAAIuGPjwk+3JEFwA2H4TPhOphn7cL2OIAAL5K6CM l9WrVw/ZSNGiRUOm42WidOnSGfrKOSNejg79QACBZBDgb0IyHEX2AQEEEEAAAQQQiFxAQbQ1a9a0 V1991UaOHGmXX3555CvHUc2dO3faiBEj7LzzzrPHHnvMos12HEe7QlcQQAABBBBAAAEEEEAAAQQQ QAABBBBAAAEEYijgY8sICI4hKk0hgED8CpQtW9ZOP/30+O1gUM8qVapkelEQQAABBPJHgL8J+eNK qwgggAACCCCAQDwLdOrUyX73u9/Z5s2b47mb2fatatWqNnny5Aw3EWe7EgsRQAABBBBAAAEEEEAA AQQQQAABBBBAAAEECoVAenq6pRSKPY2DnfQR2H4YB12iCwgggAACCCCAAAIIIIAAAggggAACCBQa AT0pqEqVKgm9v+FPP0ronaHzCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAjETSElJISA4ZpoRNBQe DBw8HTweQVNUQQABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAAB BBAo5ALKDnzo0CFLLeQOBbb7wQG/weMF1gE2hAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggg gAACCCCAAAIIIIAAAggggAACCCCQVALKDqxy5N+k2rX43BkFAfuXephVUHBW8+Nzr+gVAggggAAC CCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggMCxEvAZggkILsAjEBwQ XICbZVMIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAkko oAzBhw4dstTc7JtWpGQtkFmWX5+SWWv55QQIZ23IEgQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEE EEAAAQQQQAABBBBAAAEEEEAAAQQQQACB7AUU06sY1RwDggn+zR4ys6WhZgqeLuKCgH0AsB9mti7z EEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQiETAJ6nN NCA4NKA16+YirZd1C8m1xKMG79WRZMpHMipnFQic2XrBbTCOAAIIIIAAAggggAACCCCAAAIIIIAA AggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIBAuEB6enrmGYIzC/LNbF54g0ybZecUHgwcPi0/ AoN5FyGAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIRCrg Y09DMgSHB7TmNB3pxgprPSHLUMOUlBQ31HjwfI1TEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBA AAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQiFYgEJO6ZNnqQ27lw4GrR0aONhUSEJzJ8sM5cY9UDh0c bSDJxwKhvBlH3J672b8G/B44cOBIULCWKChYgxT375G6BAY7B/5BAAEEEEAAAQQQQAABBBBAAAEE EEAAAQSOlUD9tJrHatNsFwEEEEAAAQQQQAABBBBAAAEEEEAAAQQQyJNAIENwSDBwUPDv0aDgwwHD gUpHI4ADs/LUjcRcObDvh0eOBP/6OW7qyMxfZx3JBKyKR4KBNZRnkSLKIJySmAD0GgEEEEAAAQQQ QAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEDgmAsEAoIb1Kt1zDuTjB1Y unyN2606taoeDvw9HAwc9tJCPy8Z9599QiAvAv7zQ2aWvCiybmEV4PNTWI988u437+nkPbbsGQII IIAAAggg4AX4zuclGB4LAf/+OxbbZpsIIIAAAggggAACCCCAAAIIIIAAAggggEBeBJT4V3GopKbN i2IM1tVBUDmaiTkGjdIEAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAII IIAAAggggEDSC/g4VAKCC+hQhwf8hk8XUDfYDAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCA AAIIIIAAAggggAACCCCAAAIIIIBAEgkoJpWA4AI6oMIOfvmIbAKDC+gAsBkEEEAAAQQQQAABBBBA AAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAgyQQUh6qYVAKCC+jABgcDa5N+Onjz BAcHazCOAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIJCd gIKBFX9KQHB2SjFellXAb1bzY7x5mkMAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQ QAABBBBAAAEEEEAAAQQQSCIBxaAqKDg1ifYprnfFB/1q6Md1ACgIIIAAAggggAACCCCAAAIIIIAA AggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAgjkRsDHopIhODd6uVgnPT09sJYPCA4ODg4s ZAQBBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAIEIBHws KgHBEWDFqopHj1V7tIMAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAII IIAAAgggUHgFlCFYLwKCC+g94IOBNVTxw/DNZzU/vB7TCCCAAAIIIIAAAggggAACCCCAAAIIIIAA AggggAACCCCAAAIIIIAAAggggAACCCCAAAKFWyA9Pd30IiC4gN4HwYG+weMFtHk2gwACCCCAAAII IIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCQZAIuO3BKCgHBBXlcwwOB g6eDxwuyT2wLAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQ QCCxBcgQXEDHzwf8+mEBbZbNIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAAC CCCAAAIIIIAAAggkqYAyBKukJun+sVsIIIAAAggggAACCCCAAAIIIIAAAgggUEgFdu3aZWvXrg3Z +7S0NEtNjb/Lodu3b7cNGzaE9LVBgwbmL+CGLGACAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAIEw gfT0dFOy2vi7Ah7W0WSa9NmBNdSLi/rJdHTZFwQQQAABBBBAAAEEEEAAAQQQQACBeBFQQPDixYtD ulOzZs24DQgO72v9+vW5dhhy9JhAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQyEogJSXFLTryb1a1 cjFfkcYrV660adOm2dKlS+3gwYO5aIVV4lmgbdu2dsIJJ9jYsWPjuZv0DYG4FIjnz0+89m39+vXu nKPzzo4dO+LyuNIpBJJVQJnK9Dpw4EBUu7hv3z6+A0YlRmUEEEAAAQQQQACB/BIoVqyYNWvWzL2K Fy+eX5vJtN0VK1bY6NGjbdasWSHLw+dXrlzZ9e/UU08NqccEAggggAACCCCAAAIIIIAAAggggAAC CCCAAAKRCsQ0Q7ACgQcNGmQvvPCCbd26NdCH0qVLW7du3axLly5W0BfdA51gBAEEEEAAAQQQQCAq gWHDhtk999zj1nn99dftsssuy3J9BQzre+DcuXNt/vz5LhPb8OHDrVGjRlmuwwIEEEAAAQQQQAAB BApCQFkRFHAbz6VkyZKm1+7du+O5m/QNAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAII4FYhoQ/Mgj j7hAkNTUVLvqqqtMj+CbMmWK/fDDDy5IeMmSJdavX7845qBrCCCAAAIIIIAAAhLYsmWLPfHEExFh rFmzxnr06GGzZ8929XUDWMOGDU03hVEQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAAB BBBAAAEE8ldAwcBKkJEai81MnjzZBQMrk8XHH39sTZo0cc327t3bZs6caZ06dbKhQ4fa9ddfby1a tIjFJhOuDYFTEEAAAQQQQACBRBBQMLCCgnMq33//vd10003u6RBnnHGGPfTQQ3b66adb0aJFc1qV 5QgggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIxEChSpIhrJSUGbdmkSZNc M+3btw8EA/t2zz77bDvxxBPd5KxZs/xshggggAACCCCAAAJxKDBx4kQbNmyYNW3a1OrWret66L84 hnf3hRdecMHAuulLN4WdeeaZBAOHIzGNAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAII IIAAAgjks0B6enpsMgSfd955Vr9+fWvWrFmmXW7Tpo0tWrTI9EhpSt4FNm3a5DIyz5s3zxYuXGjH H3+8NW7c2O644w6rXbt2phtQBr/+/fvbTz/9ZNu3b3cBPjpuf/jDH0yZnTMrI0eOtFGjRtmCBQus Ro0a1rx5c7eNzOoyD4FEEYjnz09h79uBAwfsn//8p02bNs2WL19uDRs2tLZt29qFF16YKG8v+olA wgv88ssvLstvamqq9e3b1/73f/83y32aP3++jR8/3n2nePjhh92jJ7KszAIEEEAAAQQQQAABBOJE YP/+/abvsnp0mp5usXHjRlu3bp1t27bN3dxWrlw5l9ygePHiIT3WOlpXiQ+OO+64kGX6/+x3333n 5p122mncJBeiwwQCCCCAAAIIIIAAAggggAACCCCAAAIIIIBAQQjoundqLDaUU7DW0qVL3WZat24d i80V6jaUZblHjx62fv1656Bg4JUrV9qcOXPs008/tXfffddatGgRYjRo0CBToM6hQ4fcjx0KANY6 U6dOtYEDB9onn3xilSpVCqyjek8//bS98847gXmrV6+26dOn2+jRo90PJIEFjCCQQALx/Pkp7H3T D68KPNR5RkXBiDpPjRs3LsM5LYHecnQVgYQT+Nvf/mZr1651n0fdbJRd0Y1GKjfddJOVLl3adKfZ qlWrrHLlym46u3VZhgACCCCAAAIIIIDAsRLQ99aff/7ZbV6BvUpioKKnYuiamG6k37BhgynBgf5v 6osCh/fu3Rt4ioafr2FwmxovWrRo8GLGEUAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBDIVwFdm9Z1 7pT83IqyzClAdfLkyS6L7UUXXZSfm0v6tvWjw2233eaCgTt37mxTpkyxGTNm2IgRI1wWzX379tm9 997rfrzwGAqoe+yxx9y8nj17uvrffPONyxZcp04dW7FihfXp08dXd8MvvvjCBQMrYrxXr1729ddf 29y5c+29996z3bt325YtW1w9/UhCQSBRBOL580PfzF566SUXDFy+fHl78803TRnQdX579tlnbfbs 2YG3GeedAAUjCMRcQDcmDBgwwD31oXv37jm2r6cUqNSrV8+6devmsqvpu17Tpk2tXbt27rtDjo1Q AQEEEEAAAQQQQACBYyigYGA9nUZP0VLCg1NOOcUFAev/6XpyDQUBBBBAAAEEEEAAAQQQQAABBBBA AAEEEEAAgUQQUKxnvgQEf/XVV/bII49Y165d7eyzz7Ynn3zSTj31VBs6dCjZ4vL4zlAgb7Vq1eys s86yBx54wGrWrOlaPPnkk10gsCaU1c9nZNb0zJkzTY8trFu3rjsmFStWtGLFipkCdpRpWEWZghUh rqJgu1deecWN33777aZXhQoVTFmFzz33XHv//fetTJkybjn/IJBIAvH8+SnsfVPG88GDB7u3kwKD L774YitRooTLXH7dddfZ888/n0hvNfqKQEIK6KYifbdQ0VMC9BnMqejpASr333+/jRkzxvQd47LL LnPfVRYsWGAdO3Z0N4Xl1A7LEUAAAQQQQAABBBA4VgInnXSSuyGuVKlS7npZrVq1rEqVKq47epIN BQEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQACBRBBQ/KdiP48+9y5Gvf7xxx9ddrng5jp06BAIXg2e z3h0Aq1atTJl782sNGrUyKpXr27r1q1zWX8bNGjgqumHDJU1a9a4zCbK4udL+/bt7fLLL3eTihBX UUCxjqGixZWFOLykpaW5H0aU/Vl1KAgkikA8f34Ke9++/PJLUzCizlvnn39+hreUboLwhfOOl2CI QGwFXn31VVuyZIl16tTJWrRokWPjO3bsML1U9u/fb4MGDbJzzjnHTevzfN9999nIkSPtiSeesP/8 5z8hj1p2lfgHAQQQQAABBBBAAIE4EKhdu3aGXlSuXNldH9NTsigIIIAAAggggAACCCCAAAIIIIAA AggggAACCCSCgOI/FRQc84BgPSJaASG7du2yxYsX23vvveeCQSZOnOgyz5YtWzYRfOK6j8r4q8Bg Be4qgNcH5PjMJYr09qV58+bu0d1z5851j+++8sorXcCdHoOoTL+lS5f2Vd1w5cqVbqgsf8pGTEEg 2QTi+fNT2PvWuHHjZHu7sT8IJITA999/b2+99ZZVrVrVevXqFVGf9f3Dl2eeeSYQDKx5xYsXd0+I mDx5sntqgZ5EcMEFF/jqDBFAAAEEEEAAAQQQiGuB1NQjl0v907TiurN0DgEEEEAAAQQQQAABBBBA AAEEEEAAAQQQQACBwwKKGVVQcMwDghVIqpdKs2bNTNmBr732WvfI6FGjRtn111/vlvFP7gQmTZrk Hum9fv16l6G3QoUKVq5cOXcwlaFPJTggWD9iKGvfc889Z0OHDrUhQ4a4lx4FrkycXbp0MQUN++ID fBQUREEg2QTi+fND3yzwWNZke9+xPwjEs8DBgwetd+/ephsSHnvsMfedIpL+aj0Vfc/QzUbhpXz5 8qbs3hMmTHCZhwkIDhdiGgEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQiI2A f+p6Smyay7qVokWL2g033OAqjBs3LuuKLMlRYOHChda9e3fbsGGD9ezZ02bOnGmzZs2y8ePH29ix Y61GjRquDX9wfYMK/n3ooYfsq6++sgEDBtitt95q1atXtzFjxrhjoyBhXypVquRGleGZgkAyCcTz 56ew983fRMLjWJPpE8e+JIrA+++/b999950L7NV3hM6dO4e8dAOSyssvv+zma6hSq1YtN1QgsX9C gZsR9I9/0oBvI2gRowgggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIxEvBP vYtJQLCCSRQgsmjRoky7V6VKFTf/p59+ynQ5MyMTGDFihClQV1mXu3XrFsjEHNnaZgrObtmypfXp 08cFECvoR4E8yh7sswrXqVPHNbdu3Trz2f8ibZ96CMSzQDx/fgp73+rWreveOitXrozntxB9QyAp BRYsWOD2S98Hpk6dmuG1Z88et/yHH35wy77//ns3racT+GD+ZcuWuXnh/2zcuNHNql27dvgiphFA AAEEEEAAAQQQSFgBrpcl7KGj4wgggAACCCCAAAIIIIAAAggggAACCCCAQNIK+CSyMQkInjJlir3y yiv2xRdfZAqm7JcqJ510UqbLmRmZwJIlS1zF4sWLZ1hh8+bNtn379gzzlVFYQcBvv/12yLKUlBTr 2rWrm6eAndWrV7txBe0owGffvn02fPjwkHU0ocCgnTt3ZpjPDATiXSCePz+FvW+nn366e/vMmDHD Vq1aleGt5IMKMyxgBgII5Fmgb9++Nn/+/CxfPmBfN36p3quvvhrYZps2bdz4oEGDAvP8iG5g+vrr r93kiSee6GczRAABBBBAAAEEEEAgYQVKlizp+r5169YM+7B3794M85iBAAIIIIAAAggggAACCCCA AAIIIIAAAggggEBBCSggWElhYxIQfMEFF7h+9+/f33zwr9+RFStWmOarXHLJJX42w1wINGjQwK01 dOjQQACvZqxdu9Y9xts/snvLli2B1ps1a2YbNmywN954w37++efAfI0MGzbMTZcuXdpq1KjhxosV K2a33367G1fm4OCszsqAcvfdd5sPzvNZhV1l/kEgzgXi+fNT2PvWpEkT098RnWN69eplO3bsCLyb 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 mGOORo/b/t0I9Mf5tddeS/PNN1+vQobPP/98mjRpUlpggQXSkksu2atrOWXKlPTYY4/l8HOEGeef f/5ujr7rxfEiff3113u137vvvpueeOKJFGNG1ddFF120605rlr733ntp4sSJ6W9/+1t1HyHtGqBh OjnbbLOllVdeOZ9d3Jfa2Z566qn08MMPpwUXXDCtvvrq1aHrly+00ELpE5/4RIrX6AMPPFDdzgQB AgTaLRAVy6ONHTu211+giM8XfX3Pb/d5FeN5TygkPBMgQIAAAQIEhq+Az3zD99o6MwIECBAgQIAA AQIECBAgQIAAAQIECBCYIVDkHlsaCI4A6aabbpoirLnzzjunI444gn8LBPriHOHsm266KV166aXp 97//fbrnnntyyKerw4pA7sUXX5xOPvnk9Oqrr1Y3GT16dNpuu+3S/vvv32XgJ47nu9/9bu6/utP0 iQg4HnXUUWmllVaqXdxp+umnn87Hd9lll6VNNtkkHXzwwZ22KRY888wzeaw4pzjeoi2zzDLp0EMP Teuvv36xqPocoeEf/ehH6de//nUOqxcrolpsjLXZZpsVizwPQ4FSqZQicDuYW3x5Ih7vvPPOYD5M x0aAwDAX+O///u/8Xh+nefrpp6fPfvaz3Z5xfIHnqquuyu/f8X4c7+FDoXlPGApXyTESIECAAAEC BBoT8JmvMT97EyBAgAABAgQIECBAgAABAgQIECBAgMDQEIi8RssCwdF5BDIjDKy1TqC3zhMmTMgh nSuuuCJXxO3NER1yyCHpkksuSaNGjUobbbRRWnbZZdMLL7yQrr322nTuueemv/zlL7nPCAgXLSru br755ikqFi+33HJp7bXXTq+88kq68cYb091335222mqrFAGjWFfbYvvoN4LKd91110zh3trtaqcf f/zx9MUvfjGPtdRSS6W11lorh5vvuOOO9OCDD6bdd9+9U4Bp6tSpOcz80EMP5SqtG2+8ca54+Lvf /S4999xzab/99ktvvfVW2mabbWqHMk2AAAECBEaUQFTPjy/39NQ++OCDdPvtt6ff/OY3Kd5Ho6p5 tKIKe0/7WkeAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQINAcgciRRpXgD5Oczem3 2stFF12U7rzzzur8SJ8I8Fa03jifccYZ6YQTTsjDx88krrnmmrO8NlFxN8LAUaX0ggsuSKusskr1 8Pfcc8+0xRZbpAceeCBX2d1ll12q6w444IAc0I2g7oknnpjDxLEygrj77LNPuvnmm9ORRx6Zzj// /Oo+YbPGGmvk/WLhkksumdc99dRT1W3qJ8rlcjrwwAPzPl/4whfyWHFu0WJdhNHj+A877LC04YYb Vo/jJz/5SYow8Ec/+tFc/Xi++ebL+0Tl4qh++IMf/CAdd9xxubL13HPPndf5hwABAgQIjDSBCANH KLintscee6RbbrklbxLvpyussEK6//77e9rFOgIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIE CBAgQIAAgSYLRBg4cpilJvebu4sqst///vdTBCrXW2+9Vgyhz+kCvXWO6rv//M//nCL0GiHtuDZF ixdCVy2q+EbbaaedZgoDx7Ko7rvtttvGZPrzn/+cn+Of+Lnwe+65J88ffPDB1RBuLBgzZkwOEcd0 bBNVBWtbVBnebrvtUgScIzS82mqr1a7uND1p0qR07733ptlnnz2fVxEGjg3jpyCjunGcW4SZnnji ier+RXBp3333TUUYOFbGtlEVOPadMmVKevjhh6v7mCBAgAABAiNJ4Pe//32u5h+fHYov6XT1eeH9 99/PX7o57bTT8ueLHXfcMTN1te1I8nOuBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECA AIF2CrS0QnBUgH3zzTfzT00/+OCD7TyvETVWb5333nvv9M1vfrNqE9dmVm3ixIk5xPuJT3yiy03H jx+fl7/00kvV9RHyPfroo1OEexdeeOHq8mJirbXWypPxk+KvvPJKWmSRRfJ8BIciqByh4d62xx57 LG8flX5rg73F/rFs/vnnz4HgOMYIMUf78pe/nKZNm5b+3//7f8Wm1ec45tjukUceSZMnT64uNzG8 BSLQFvepCINHJeyXX345Pf/88zngPmrUqDTvvPPmitIRPq9tsU/sG6/B+mrS8RqLCtrRVl555ZnC 8bV9mCZAgMBgE3jrrbfS4Ycfnt/Ljz/++PS1r32t20P8+c9/3qf37m47GkQrvCcMoovhUAgQIECA AAECLRLwma9FsLolQIAAAQIECBAgQIAAAQIECBAgQIAAgQETKIq3jW72EVxzzTXpd7/7XVp99dXT DjvskA477LBmD6G/6QJ9ce5L0LbAvfzyy4vJLp+LsGOEIYu24IIL5sBtMV///OSTT+ZFsU8RBi62 6esxbrTRRmnChAnF7p2en3vuuRwGjhf6sssuW10fVYi7axFUfvbZZ3MwdM011+xuM8uHmUC5XE4v vvhiPqsI9kbYPFq8duKbE2+88UaKUPnaa6+dA3J55fR/Ijg8derUavXMYnk81/YZ0xEs1ggQIDAU BE488cT8pZgIAn/sYx/r8ZD7+t7dY2eDZGXt/dt7wiC5KA6DAAECBAgQINBkAZ/5mgyqOwIECBAg QIAAAQIECBAgQIAAAQIECBAYcIHIuUVraiD4tddeyxVio5JmVJUrUscDfrbD7AAG2vndd99Nt956 a1bdYosteqUb4d2jjjoqb7vVVlv1ap9GNrr++uvz7lGVeNFFF51lV1ER9pRTTklTpkxJ66+/fpcV jmfZiQ2GvECEgaNK9Lhx43L4N4LCUTE6gr+TJk2aKVw+5E/WCRAgQKBO4E9/+lM677zz0tJLL52+ /vWv160debPeE0beNXfGBAgQIECAwMgT8Jlv5F1zZ0yAAAECBAgQIECAAAECBAgQIECAAIHhKFBk dZsaCI4QcFTN/OY3vyk418JXzUA7n3TSSemFF15I6623XlpttdW6PdPvf//76c0330x33nlnmjhx Yg5YHnHEEWnnnXfudp9mrHjmmWfSj370o1zpd//99++2ywsvvDBXGX7ooYfSPffck6vBfulLX0rH HXdct/tYMbwFll9++bTUUktVT3LxxRdPr776aq6W+frrr1eXmyBAgMBwE4gq+Yccckg+rXgfHI7V f/t6zbwn9FXM9gQIECBAgACBoSfgM9/Qu2aOmAABAgQIECBAgAABAgQIECBAgAABAgQ6C8Sv40Vr WiA4KsZeeumlubrmXnvt1XlES5oiMNDOl112WTrnnHPSfPPNl4455pgez+mSSy5JUc24aFF5deON Ny5mW/L89ttvpz333DMHkXffffe06qqrdjvOH/7wh3TddddV18dPg2+77bZCUFWRkTexxBJLdDrp hRZaKAeC33nnnU7rLCBAgMBwETj11FPTE088kbbbbru0xhprDJfTaug8vCc0xGdnAgQIECBAgMCQ EPCZb0hcJgdJgAABAgQIECBAgAABAgQIECBAgAABArMQiArB8SjNYrterY4Q5uGHH54rsn7ve99L s802W6/2s1HfBAba+Y477sjVA0ePHp0iOLTYYov1eAJRgffKK69MZ555Ztpll13S448/nj73uc+l a665psf9+rvygw8+SPvss096+OGH09prr52+/e1v99jVYYcdlq6++ur061//Oh188MFpjjnmSDvs sEM64YQTetzPypElEK/3aMW3KEbW2TtbAgRGgkBUyj/jjDPSIosskg466KCRcMr9PkfvCf2msyMB AgQIECBAYMgI+Mw3ZC6VAyVAgAABAgQIECBAgAABAgQIECBAgACBOoGmVAg+5ZRT0jPPPJN23nnn Hiuy1o1tto8CA+k8YcKEFJWf33///XT88cfnwO2sDj8qAkdbccUV0wYbbJArDkYfsf+mm246q937 tL5SqeQQU1T9jZ97/M///M80atSoHvtYfPHFq+vXWmutfEybbbZZDkVtv/32ackll6yuN0GAAAEC BIajQHyZJr4UM23atHTUUUeleeeddziepnMiQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAA AQIECAxbgagOHK3hQPADDzyQfvWrX+XO7rvvvvSVr3wlTxf/PPbYY3ny+uuvTzE9duzY9NOf/rRY 7bmXAgPp/PTTT6ddd901TZkyJR144IFp22237eVRz7zZRhttlMaNG5cmT56cImAcQeFmtZNOOild dtll6SMf+Uj65S9/2a9AUwSEP/OZz6TLL7883XDDDfmcm3V8+iFAgAABAoNRID7DxWeMqIJ23nnn 5Uftcb7wwgt59sc//nE699xz02qrrZa+8Y1v1G5imgABAgQIECBAgAABAgQIECBAgAABAgQIECBA gAABAgQIECBAYAAFyuVyiqKqDQeCH3nkkRSdRbvnnnu6PaUIgcZD5bluiXpcMVDOr776avrqV7+a XnrppbT77rvnKsHdHehf//rXdO2116aFFloo7bjjjl1utvDCC6fnn38+Pfroo00LBJ9zzjnpZz/7 WR43wsDxk+ddtbfffjudeeaZedWee+6Z5phjjk6bxfFFK4LsnTawgECdQFTX1AgQIDBUBeILOtGi QvDtt9/e7Wk8/PDDeV18sUvrXsB7Qvc21hAgQIAAAQIEhouAz3zD5Uo6DwIECBAgQIAAAQIECBAg QIAAAQIECAwfgVKplE+m4UDwF7/4xbTZZpt1K3PEEUekSy+9NAdEDz300G63s6JngYFwjgDtbrvt liZOnJi23HLL/JPiPR3le++9l37yk5/kKtBbb711mn322Wfa/P333899xcLllltupnX9nbn66qvT sccem+aZZ5509tlnp/Hjx3fb1ZxzzpnOOuus9NZbb6VPfepTucph/cYRvI7WrOOr79/88BGIQPnU qVPTa6+9loogeXF2sVwjQIDAUBA4/vjj0zHHHNPtoW6yySbpqaeeSlEheMMNN0yjRo3qdtuRvMJ7 wki++s6dAAECBAgQGCkCPvONlCvtPAkQIECAAAECBAgQIECAAAECBAgQIDA0BaJC8IxYcAPHH8GQ +A/i3T3iJ6ijxXOxTQPDjdhd2+0c1U722WefdN9996WNNtoofe9730sdHR09+q+wwgpp3LhxKYLE ES6qrZgSVaRPPvnk9Oabb+bQ7vLLL99jX71Zeccdd6RvfetbacyYMbny74orrtjjbnH86667bt7m uOOOy0HO2h1uuOGG9Ic//CEHmT/96U/XrjJNoJPA3HPPnZdF9ewIwxctpu+9995i1jMBAgQGtcBs s81W/XxWfE6rfS7e++NLPrE8ttc6C3hP6GxiCQECBAgQIEBguAn4zDfcrqjzIUCAAAECBAgQIECA AAECBAgQIECAwPASiEBwwxWChxeJsykETj/99ByOjfnnnnsubbfddsWqTs8bb7xx2mOPPXJIKCoE 77DDDun8889P//u//5s++clPpihHfffdd6dHH300b/PDH/4wB8Q7ddSHBRE63muvvVJUHY7qwCee eGKPe5955plp/vnnz0HlOJYIbEalw6gUHMvj2O68887cx0EHHZSWXXbZHvuzksBSSy2V/zamTJmS brnllrTQQguld999N8V8UYKdEgECBAiMDAHvCSPjOjtLAgQIECBAYGQL+Mw3sq+/sydAgAABAgQI ECBAgAABAgQIECBAgMBgFsjVgafnNAWC23SVigp7bRqu4WFeeeWVah8PPvhgdbqriagMXLTVVlst XXXVVbmi8G233ZYmTpyYV0WF6PXWWy8ddthhaZlllik27/fz1KlTc/AyOnj11Vfzo6fOIjgcLcK/ V199df7p84svvjhdeeWV1d3iPA4++OCkOnCVxEQPAnPNNVdaddVV04QJE3IQOCoFx995vMZWWmml FK9/jQABAgRGhoD3hJFxnZ0lAQIECBAgMLIFfOYb2dff2RMgQIAAAQIECBAgQIAAAQIECBAgQGAw CxT51I4nJj5biQNdevxig/l4h+yxPTnpuXzsC8w3NlcNHTVqVH6OCqLFo3oxpocJoxXzeWYI/zNt 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 AAECBAgQIECAAAECBAgQIECAAAECBAgQINA7gSKT2ikQHLsXK2O6p9Bv7Xaxrda9AKvubawhQIAA AQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBDou0C5XM47dRkIru2uqyBr TyHh2n1H6nRXZiPVwnkTIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAEC BAi0RiAyq/GYZSC4q+EFXrtSsYwAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAA AQIECBAgQIBA+wVK7R/SiAQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBA gAABAgQINCpQFPntV4XgRge3PwECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAEC BAgQIECAAAECjQmUy+VUqVSSQHBjjvYmQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIE CBAgQIAAAQIECBAgMCACpVIpjzvj3wE5BIMSIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECA AAECBAgQIECAAAECBAgQINCIQFQIFghuRNC+BAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQ IECAAAECBAgQIECAAAECBAZQQCB4APENTYAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIE CBAgQIAAAQIECBAgQKARgRwGLpVUCG4E0b4ECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAg QIAAAQIECBAgQIAAAQIEBkqgo6MjD10aqAMwLgECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAEC BAgQIECAAAECBAgQIECAAAECjQmUy2UVghsjtDcBAgQIECBAgAABAgQIECBAgAABAgQIECBAgAAB AgQIECBAgAABAgQIECBAgACBgRMolUoCwQPHb2QCBAgQIECAAAECBAgQIECAAAECBAgQIECAAAEC BAgQIECAAAECBAgQIECAAAEC/ReI6sCVSiWN7n8X9iRAgAABAgQIECBAgAABAgQIECBAgAABAgQI ECBAgAABAgQIECBAgAABAgQIECBAYKAEojpwtBn/DtRRGJcAAQIECBAgQIAAAQIECBAgQIAAAQIE CBAgQIAAAQIECBAgQIAAAQIECBAgQIAAgX4JFBWCBYL7xWcnAgQIECBAgAABAgQIECBAgAABAgQI ECBAgAABAgQIECBAgAABAgQIECBAgAABAgMrEBWCK5WKCsEDexmMToAAAQIECBAgQIAAAQIECBAg QIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQKB/AjkMPD0UrEJw//zsRYAAAQIECBAgQIAAAQIE CBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQGBABTo6OvL4AsEDehkMToAAAQIECBAgQIAA AQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQKB/AuVyOe8oENw/P3sRIECAAAECBAgQ IECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQGFABFYIHlN/gBAgQIECAAAECBAgQ IECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBBoTiEBwpVJJKgQ35mhvAgQIECBAgAAB AgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgMmEKFggeAB4zcwAQIECBAgQIAA AQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAgcYFBIIbN9QDAQIECBAgQIAAAQIE CBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAgbYLVCqVPKZAcNvpDUiAAAECBAgQIECA AAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECgcYGOjo7ciUBw45Z6IECAAAECBAgQ IECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIDAgAlElWCB4QOgNSoAAAQIECBAg QIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQKAxgQgDR5VggeDGHO1NgAABAgQI ECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAYEAEIgysQvCA0BuUAAECBAgQ IECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAQOMCKgQ3bqgHAgQIECBAgAAB AgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgMmEBWCo40esCMwMAECBAgQIECA AAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAEC/RaICsHRBIL7TWhHAgQIECBA gAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgMnoELwwNkbmQABAgQIECBA gAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgEDDAuVyOfehQnDDlDogQIAAAQIE CBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAg0H6BqBAcj1L7hzYiAQIECBAg QIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQLNEhAIbpakfggQIECAAAEC BAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAi0USCqA0cb3cYxDUWAAAECBAgQ IECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAQJMEyuVyqlQqAsFN8tQNAQIE CBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAgbYKlEqlPN6Mf9s6tMEI ECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIEGiGQFQIFghuhqQ+ CBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECAyAgEDwAKAbkgAB AgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgEAzBHIYuFRSIbgZmPog QIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAg0G6Bjo6OPGSp3QMb jwABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgACB5giUy2UVgptD qRcCBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAEC7RcolUoCwe1n NyIBAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgACBxgWiOnClUkmj G+9KDwQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQItFsgqgNH m/Fvu0c3HgECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECDQkU FYIFghtitDMBAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgACBgRGI CsGVSkWF4IHhNyoBAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgACB xgRyGHh6KFiF4MYc7U2AAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQ IEBgQAQ6OjryuALBA8JvUAIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAg QIAAAQKNCZTL5dyBQHBjjvYmQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAA AQIECBAgMCACKgQPCLtBCRAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAA AQIECDRHIALBlUolqRDcHE+9ECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBA gAABAgQIEGi7QISCBYLbzm5AAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQI ECBAgAABAs0TEAhunqWeCBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAA AQIECLRNoFKp5LEEgttGbiACBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQ IECAAAECzRPo6OjInQkEN89UTwQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQI ECBAgAABAgTaKhBVggWC20puMAIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIE CBAgQIAAAQLNEYgwcFQJFghujqdeCBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIE CBAgQIAAAQIECLRVIMLAKgS3ldxgBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAEC BAgQIECAAAECBJonoEJw8yz1RIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAA AQIECBAgQKDtAlEhONroto9sQAIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIE CBAgQIAAAQIEGhaICsHRBIIbptQBAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAA AQIECBAgQIAAgfYLqBDcfnMjEiBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBA gAABAgQIEGiaQLlczn2pENw0Uh0RIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQ IECAAAECBAgQaJ9AVAiOR6l9QxqJAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECA AAECBAgQIECAAIFmCwgEN1tUfwQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQI ECBAgAABAgTaIBDVgaONbsNYhiBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBA gAABAgQIECBAoMkC5XI5VSoVgeAmu+qOAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQ IECAAAECBAgQIECAQFsESqVSHmfGv20Z0iAECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAg QIAAAQIECBAgQIAAAQIECDRTICoECwQ3U1RfBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQ IECAAAECBAgQIECAAAECBNooIBDcRmxDESBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAAB AgQIECBAgAABAgQIEGimQA4Dl0oqBDcTVV8ECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAg QIAAAQIECBAgQIAAAQIE2iXQ0dGRhyq1a0DjECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBA gAABAgQIECBAgAABAgQIECDQXIFyuaxCcHNJ9UaAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECA AAECBAgQIECAAAECBAgQIECgfQKlUkkguH3cRiJAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBA gAABAgQIECBAgAABAgQIECDQPIGoDlypVNLo5nWpJwIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAA AQIECBAgQIAAAQIECBAgQIAAAQIE2iUQ1YGjzfi3XaMahwABAgQIECBAgAABAgQIECBAgAABAgQI ECBAgAABAgQIECBAgAABAgQIECBAgACBpggUFYIFgpvCqRMCBAgQIECAAAECBAgQIECAAAECBAgQ IECAAAECBAgQIECAAAECBAgQIECAAAEC7RWICsGVSkWF4PayG40AAQIECBAgQIAAAQIECBAgQIAA AQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIBAcwRyGHh6KFiF4OZ46oUAAQIECBAgQIAAAQIECBAg QIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIBAWwU6OjryeALBbWU3GAECBAgQIECAAAECBAgQ IECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAIHmCJTL5dyRQHBzPPVCgAABAgQIECBAgAAB AgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAoK0CKgS3ldtgBAgQIECAAAECBAgQIECA AAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBJorEIHgSqWSVAhurqveCBAgQIAAAQIECBAg QIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECLRNIELBAsFt4zYQAQIECBAgQIAAAQIE CBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAgeYLCAQ331SPBAgQIECAAAECBAgQIECA AAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBFouUKlU8hgCwS2nNgABAgQIECBAgAABAgQI ECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgACB5gt0dHTkTgWCm2+rRwIECBAgQIAAAQIE CBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQJtEYgqwQLBbaE2CAECBAgQIECAAAEC BAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAIHmCkQYOKoECwQ311VvBAgQIECAAAEC BAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBNoiEGFgFYLbQm0QAgQIECBAgAAB AgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAs0XUCG4+aZ6JECAAAECBAgQIECA AAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQINA2gagQHG1020Y0EAECBAgQIECAAAEC BAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECTROICsHRBIKbRqojAgQIECBAgAAB AgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAu0TUCG4fdZGIkCAAAECBAgQIECA AAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQINB0gXK5nPtUIbjptDokQIAAAQIECBAg QIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAg0HqBqBAcj1LrhzICAQIECBAgQIAA AQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQKtEhAIbpWsfgkQIECAAAECBAgQ IECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAi0UCCqA0cb3cIxdE2AAAECBAgQIECA AAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAQIsEyuVyqlQqAsEt8tUtAQIECBAg QIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAgZYKlEql3P+Mf1s6lM4JECBA gAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIEGiFQFQIFghuhaw+CRAg QIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECLRBQCC4DciGIECAAAEC BAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQINAKgRwGLpVUCG4Frj4JECBA gAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQItFqgo6MjD1Fq9UD6J0CA AAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECgNQLlclmF4NbQ6pUA AQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIBA6wVKpZJAcOuZjUCA AAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECg+QJRHbhSqaTRze9a jwQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQItFogqgNHm/Fv q0fTPwECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECTRUoKgQL BDeVVWcECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIE2iMQFYIr lYoKwe3hNgoBAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgACB5grk MPD0ULAKwc111RsBAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgACB tgh0dHTkcQSC28JtEAIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAA AQLNFSiXy7lDgeDmuuqNAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQ IECAQFsEVAhuC7NBCBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIE CLRGIALBlUolqRDcGl+9EiBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAAB AgQIEGi5QISCBYJbzmwAAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBA gAABAq0TEAhuna2eCRAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIE CLRMoFKp5L4FgltGrGMCBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECA AAECrRPo6OjInQsEt85YzwQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBA gAABAgRaKhBVggWCW0qscwIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAg QIAAAQKtEYgwcFQJFghuja9eCRAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAg QIAAAQIECLRUIMLAKgS3lFjnBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQ IECAAAECBFonoEJw62z1TIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIE CBAgQKDlAlEhONrolo9kAAIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAg QIAAAQIEmi4QFYKjCQQ3nVaHBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQ IECAAAECBFovoEJw642NQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIE CBAgQKBlAuVyOfetQnDLiHVMgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAAB AgQIECBAoHUCUSE4HqXWDaFnAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQI ECBAgAABAgRaLSAQ3Gph/RMgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAA AQIECBBogUBUB442uuj7yUnPFZOeCRAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIE CBAgQIAAAQIECBAY5ALjPzIuVSqVDwPBg/x4HR4BAgQIECBAgAABAgQIECBAgAABAgQIECBAgAAB AgQIECBAgAABAgQIECBAgAABAjUCpVIpz1UrBC89frGa1SYJEBjpAkXVcPeGkf5KcP4ECAxGAffo wXhVHBMBAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAYGAEokLwjFjwwIxvVAIECBAg QIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIEGhAQCG4Az64ECBAgQIAA AQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIEBlIgh4FLJRWCB/IiGJsAAQIE CBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIBAfwU6OjryrqX+dmA/AgQI ECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQGVqBcLqsQPLCXwOgE CBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIE+i9QKpUEgvvPZ08C BAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECAycQ1YErlUoaPXCH YGQCBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBPorENWBo834 t7+92I8AAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAgQERKCoE CwQPCL9BCRAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECDQmEBWC K5WKCsGNMdqbAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAwMAI 5DDw9FCwCsED429UAgQIEPwm5qYAADa9SURBVCBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBA gAABAgQIECBAgAABAg0JdHR05P1HN9SLnQkQmEkgkvbPPvtsfiy00EJpqaWWSqNGjZppGzMECBAg QIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAgWYIlMvlVFIhuBmUKU2ePDkt u+yy+XHeeec1p1O9DDmBK6+8Mq255ppp3XXXTTvssEPaeOON03333TfkzmOwHfCrr76annrqqfT+ ++8PtkNzPENAYP3118/35v32228IHG3/DjHe0J9++un03nvv9auDqVOn5v2jn2a3559/Pr355pv9 6rbR8+pp0Ndffz298MILPW3S7bpWHle3g1pBgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAAB AgQIEBjEAlFI88UXX0zPPfdciulWt2ZmNqdMmZKzMx988EG/Dvull15KkZFpx3l3d4BtqxB80003 pUMOOaS745jl8htvvDHNPffcs9zOBiNTIAJw2267bb6RhMB1112X5p9//rZjXHbZZemAAw6ojjt2 7NhcGXjeeeetLuvPxOGHH55+97vf5V2PP/749JnPfKY/3Qy5fSJIfdZZZ6W4f7z99tv5+OMbDOPH j0/bb799vubuC0PusjrgJgtceOGF6ZJLLkmPPPJIeuedd9Lo0aPT0ksvne8T+++/f57vbsgI2J98 8snplltuSU888USKDzRzzjlnWmGFFdKXv/zl9KUvfam7XWe5/M9//nP68Y9/nCZMmJD+9re/5e2X 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 NfoLSZbjkSkpO3Xq1KrqNtl24oknpm2Y+rfddtsm+9lw44031jI0tzLwKyvLNiJ3N+oX+5BGI97x jnfUym+11VaxebP5nDNnTuoLQuFpp51WE37LHWQijckYoXX69Ok9inD/b7PNNmnbn//85x774gdS e0RkQo3fM2fOTF85lmzFVYEw/6UvfalA2G43RowYkcYrxzOeqBPRu964q3cespnG6hRWmlBPOZjT FixYkOaJfMEDmZlDzGQOrco8TX1XXnllqpKs2vUWZZTP2e3ftON3v/tdZbW0L+bl8v1QecCLG5kT Y4EFWc2r+s6xLGrgoV2OeKawveq50mn95fPFb4TvWKhBJvby/Us5pHq281wr8/jQhz6UsiGzn2dq OdhOvQRza7P/WeG+OuKII9Jxd9xxRy37edrw33+QbkNUPuqoo/JdSWTvpF89Kiv9iDHNeA3xNy/C 9aPNBH3geRjRKe+ox08JSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCSw ORAgYdwpp5ySuvLXv/610quJfiID42MSiMS5t9QNLzLO0+onruWFF16YDvvUpz5VfPzjH2+pCrwx XBPcSJJ97r333i0d3xeFcadIfPo/66UvztKlOs8888wkym3YsKE48sgjk1kd8heZas8666zilltu SWe75JJLinJGRHZEFkQyQVaJvW9/+9vT8bxSnOyZ3KxkdrzvvvuS+HfZZZel/fzz7LPP1r739Rey XZ5wwgnpND/84Q+LefPm1eQzGCDIIVbR1vHjx9du1HK7QjKkHBHyb14uMq3++9//TpvjmLwM3yOL KGLXpz/96dSGkKhhS9ZbMr0SSKx5IFbT3jzjaL6/v78feuihtYyqn/vc5woYhxjI/fa9730vMadd CLplia2/27s5n++AAw6oyYtky2WsM/mSxZRrsmLFiuJb3/pWcdxxx6UxgOyIyJk/KILP5MmT01fS 0pPxmsmO8UIW8a9//evpL8qWP48//viaBDl37twkHz///POpGPf5/fffXxx77LEFcj0PBOpuNyK7 a9xziOyxOKGVOmknDxjmL+RHMqZHPPnkk2mckgkbVgihEfw+99xz00/YzJo1qyZssnHNmjXF0Ucf nT6RlRFjq3hHfX35CeeTTz45PUxDekYe//KXv1z84Ac/SKdmzmIRQTOBOM58SrCoAhE0ssyzjYzs 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 --000000000000994b3d05da5175d2-- --000000000000994b3f05da5175d3 Content-Type: application/octet-stream; name="RM6131.patch" Content-Disposition: attachment; filename="RM6131.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_l0taacmx1 ZGlmZiAtLWdpdCBhL3dlYi9wYWNrYWdlLmpzb24gYi93ZWIvcGFja2FnZS5qc29uCmluZGV4IGU0 YTI3YmQxMC4uOTRjY2RhZjRiIDEwMDY0NAotLS0gYS93ZWIvcGFja2FnZS5qc29uCisrKyBiL3dl Yi9wYWNrYWdlLmpzb24KQEAgLTE1Miw4ICsxNTIsMTAgQEAKICAgICAicmVhY3QiOiAiXjE3LjAu MSIsCiAgICAgInJlYWN0LWFzcGVuIjogIl4xLjEuMCIsCiAgICAgInJlYWN0LWNoZWNrYm94LXRy ZWUiOiAiXjEuNy4yIiwKKyAgICAicmVhY3QtZGF0YS1ncmlkIjogImdpdCtodHRwczovL2dpdGh1 Yi5jb20vYWRpdHlhdG9zaG5pd2FsL3JlYWN0LWRhdGEtZ3JpZC8jZGNjYjdkMDU0OTIwNWEzOGE2 ODkxOWViYmY1ZDg5MTFjOWMwOGFjOCIsCiAgICAgInJlYWN0LWRvbSI6ICJeMTcuMC4xIiwKICAg ICAicmVhY3QtZHJhZ2dhYmxlIjogIl40LjQuNCIsCisgICAgInJlYWN0LWxlYWZsZXQiOiAiXjMu Mi4yIiwKICAgICAicmVhY3Qtc2VsZWN0IjogIl40LjIuMSIsCiAgICAgInJlYWN0LXRhYmxlIjog Il43LjYuMyIsCiAgICAgInJlYWN0LXRpbWVyLWhvb2siOiAiXjMuMC41IiwKZGlmZiAtLWdpdCBh L3dlYi9wZ2FkbWluL2Jyb3dzZXIvX19pbml0X18ucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL19f aW5pdF9fLnB5CmluZGV4IDUxNzIzMjIxMC4uNGE3ZTE4ZWIwIDEwMDY0NAotLS0gYS93ZWIvcGdh ZG1pbi9icm93c2VyL19faW5pdF9fLnB5CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvX19pbml0 X18ucHkKQEAgLTU0LDcgKzU0LDggQEAgZnJvbSBwZ2FkbWluLnV0aWxzLm1hc3Rlcl9wYXNzd29y ZCBpbXBvcnQgdmFsaWRhdGVfbWFzdGVyX3Bhc3N3b3JkLCBcCiAgICAgc2V0X2NyeXB0X2tleSwg cHJvY2Vzc19tYXN0ZXJwYXNzX2Rpc2FibGVkCiBmcm9tIHBnYWRtaW4ubW9kZWwgaW1wb3J0IFVz ZXIKIGZyb20gcGdhZG1pbi51dGlscy5jb25zdGFudHMgaW1wb3J0IE1JTUVUWVBFX0FQUF9KUywg UEdBRE1JTl9OT0RFLFwKLSAgICBJTlRFUk5BTCwgS0VSQkVST1MsIExEQVAsIFFUX0RFRkFVTFRf UExBQ0VIT0xERVIsIE9BVVRIMiwgV0VCU0VSVkVSCisgICAgSU5URVJOQUwsIEtFUkJFUk9TLCBM REFQLCBRVF9ERUZBVUxUX1BMQUNFSE9MREVSLCBPQVVUSDIsIFdFQlNFUlZFUixcCisgICAgVldf RURUX0RFRkFVTFRfUExBQ0VIT0xERVIKIGZyb20gcGdhZG1pbi5hdXRoZW50aWNhdGUgaW1wb3J0 IEF1dGhTb3VyY2VNYW5hZ2VyCiAKIHRyeToKQEAgLTg1NCw2ICs4NTUsNyBAQCBkZWYgdXRpbHMo KToKICAgICAgICAgICAgIGxvZ291dF91cmw9Z2V0X2xvZ291dF91cmwoKSwKICAgICAgICAgICAg IHBsYXRmb3JtPXN5cy5wbGF0Zm9ybSwKICAgICAgICAgICAgIHF0X2RlZmF1bHRfcGxhY2Vob2xk ZXI9UVRfREVGQVVMVF9QTEFDRUhPTERFUiwKKyAgICAgICAgICAgIHZ3X2VkdF9kZWZhdWx0X3Bs YWNlaG9sZGVyPVZXX0VEVF9ERUZBVUxUX1BMQUNFSE9MREVSLAogICAgICAgICAgICAgZW5hYmxl X3BzcWw9Y29uZmlnLkVOQUJMRV9QU1FMCiAgICAgICAgICksCiAgICAgICAgIDIwMCwgeydDb250 ZW50LVR5cGUnOiBNSU1FVFlQRV9BUFBfSlN9KQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJv d3Nlci9yZWdpc3Rlcl9icm93c2VyX3ByZWZlcmVuY2VzLnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nl ci9yZWdpc3Rlcl9icm93c2VyX3ByZWZlcmVuY2VzLnB5CmluZGV4IGFmN2RjNGYyYy4uN2Y3MDRh MWUyIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3JlZ2lzdGVyX2Jyb3dzZXJfcHJl ZmVyZW5jZXMucHkKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9yZWdpc3Rlcl9icm93c2VyX3By ZWZlcmVuY2VzLnB5CkBAIC0xMCw3ICsxMCw3IEBAIGltcG9ydCBzeXMKIGZyb20gZmxhc2tfYmFi ZWwgaW1wb3J0IGdldHRleHQKIGZyb20gcGdhZG1pbi51dGlscy5jb25zdGFudHMgaW1wb3J0IFBS RUZfTEFCRUxfRElTUExBWSxcCiAgICAgUFJFRl9MQUJFTF9LRVlCT0FSRF9TSE9SVENVVFMsIFBS RUZfTEFCRUxfVEFCU19TRVRUSU5HUywgXAotICAgIFBSRUZfTEFCRUxfT1BUSU9OUywgUVRfREVG QVVMVF9QTEFDRUhPTERFUgorICAgIFBSRUZfTEFCRUxfT1BUSU9OUywgUVRfREVGQVVMVF9QTEFD RUhPTERFUiwgVldfRURUX0RFRkFVTFRfUExBQ0VIT0xERVIKIGZyb20gZmxhc2tfc2VjdXJpdHkg aW1wb3J0IGN1cnJlbnRfdXNlcgogaW1wb3J0IGNvbmZpZwogCkBAIC00ODMsNyArNDgzLDcgQEAg ZGVmIHJlZ2lzdGVyX2Jyb3dzZXJfcHJlZmVyZW5jZXMoc2VsZik6CiAgICAgc2VsZi52ZV9lZHRf dGFiX3RpdGxlID0gc2VsZi5wcmVmZXJlbmNlLnJlZ2lzdGVyKAogICAgICAgICAndGFiX3NldHRp bmdzJywgJ3Z3X2VkdF90YWJfdGl0bGVfcGxhY2Vob2xkZXInLAogICAgICAgICBnZXR0ZXh0KCJW aWV3L0VkaXQgZGF0YSB0YWIgdGl0bGUiKSwKLSAgICAgICAgJ3RleHQnLCAnJVNDSEVNQSUuJVRB QkxFJS8lREFUQUJBU0UlLyVVU0VSTkFNRSVAJVNFUlZFUiUnLAorICAgICAgICAndGV4dCcsIFZX X0VEVF9ERUZBVUxUX1BMQUNFSE9MREVSLAogICAgICAgICBjYXRlZ29yeV9sYWJlbD1QUkVGX0xB QkVMX0RJU1BMQVksCiAgICAgICAgIGhlbHBfc3RyPWdldHRleHQoCiAgICAgICAgICAgICAnU3Vw cG9ydGVkIHBsYWNlaG9sZGVycyBhcmUgJVNDSEVNQSUsICVUQUJMRSUsICVEQVRBQkFTRSUsICcK ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc3RhdGljL2pzL2NvbGxlY3Rpb24uanMg Yi93ZWIvcGdhZG1pbi9icm93c2VyL3N0YXRpYy9qcy9jb2xsZWN0aW9uLmpzCmluZGV4IDlmOTQ0 ZmYxOS4uYjQxODY4ODZiIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3N0YXRpYy9q cy9jb2xsZWN0aW9uLmpzCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc3RhdGljL2pzL2NvbGxl Y3Rpb24uanMKQEAgLTUwNyw4ICs1MDcsOCBAQCBkZWZpbmUoWwogICAgICAgICApOwogICAgICAg fSwKICAgICAgIHNob3dfcXVlcnlfdG9vbDogZnVuY3Rpb24oKSB7Ci0gICAgICAgIGlmKHBnQWRt aW4uRGF0YUdyaWQpIHsKLSAgICAgICAgICBwZ0FkbWluLkRhdGFHcmlkLnNob3dfcXVlcnlfdG9v bCgnJywgcGdBZG1pbi5Ccm93c2VyLnRyZWUuc2VsZWN0ZWQoKSk7CisgICAgICAgIGlmKHBnQWRt aW4uVG9vbHMuU1FMRWRpdG9yKSB7CisgICAgICAgICAgcGdBZG1pbi5Ub29scy5TUUxFZGl0b3Iu c2hvd1F1ZXJ5VG9vbCgnJywgcGdBZG1pbi5Ccm93c2VyLnRyZWUuc2VsZWN0ZWQoKSk7CiAgICAg ICAgIH0KICAgICAgIH0sCiAgICAgICBzaG93X3NlYXJjaF9vYmplY3RzOiBmdW5jdGlvbigpIHsK ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc3RhdGljL2pzL2tleWJvYXJkLmpzIGIv d2ViL3BnYWRtaW4vYnJvd3Nlci9zdGF0aWMvanMva2V5Ym9hcmQuanMKaW5kZXggOTg5ZjhiYjVi Li4xYWE4OGMyMzEgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc3RhdGljL2pzL2tl eWJvYXJkLmpzCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc3RhdGljL2pzL2tleWJvYXJkLmpz CkBAIC0yNTMsNyArMjUzLDcgQEAgXy5leHRlbmQocGdCcm93c2VyLmtleWJvYXJkTmF2aWdhdGlv biwgewogICAgICAgcmV0dXJuOwogCiAgICAgLy8gQ2FsbCBkYXRhIGdyaWQgbWV0aG9kIHRvIHJl bmRlciBxdWVyeSB0b29sCi0gICAgcGdBZG1pbi5EYXRhR3JpZC5zaG93X3F1ZXJ5X3Rvb2woJycs IHRyZWUuaSk7CisgICAgcGdBZG1pbi5Ub29scy5TUUxFZGl0b3Iuc2hvd1F1ZXJ5VG9vbCgnJywg dHJlZS5pKTsKICAgfSwKICAgYmluZFN1Yk1lbnVWaWV3RGF0YTogZnVuY3Rpb24oKSB7CiAgICAg Y29uc3QgdHJlZSA9IHRoaXMuZ2V0VHJlZURldGFpbHMoKTsKQEAgLTI2Miw3ICsyNjIsNyBAQCBf LmV4dGVuZChwZ0Jyb3dzZXIua2V5Ym9hcmROYXZpZ2F0aW9uLCB7CiAgICAgICByZXR1cm47CiAK ICAgICAvLyBDYWxsIGRhdGEgZ3JpZCBtZXRob2QgdG8gcmVuZGVyIHZpZXcgZGF0YQotICAgIHBn QWRtaW4uRGF0YUdyaWQuc2hvd19kYXRhX2dyaWQoeydtbnVpZCc6IDF9LCB0cmVlLmkpOworICAg IHBnQWRtaW4uVG9vbHMuU1FMRWRpdG9yLnNob3dWaWV3RGF0YSh7J21udWlkJzogMX0sIHRyZWUu aSk7CiAgIH0sCiAgIGJpbmRTdWJNZW51U2VhcmNoT2JqZWN0czogZnVuY3Rpb24oKSB7CiAgICAg Y29uc3QgdHJlZSA9IHRoaXMuZ2V0VHJlZURldGFpbHMoKTsKZGlmZiAtLWdpdCBhL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc3RhdGljL2pzL25vZGUuanMgYi93ZWIvcGdhZG1pbi9icm93c2VyL3N0YXRp Yy9qcy9ub2RlLmpzCmluZGV4IDllNmQzZDU0My4uMjNjN2E4NjIyIDEwMDY0NAotLS0gYS93ZWIv cGdhZG1pbi9icm93c2VyL3N0YXRpYy9qcy9ub2RlLmpzCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc3RhdGljL2pzL25vZGUuanMKQEAgLTk3NSw3ICs5NzUsNyBAQCBkZWZpbmUoJ3BnYWRtaW4u YnJvd3Nlci5ub2RlJywgWwogICAgICAgICAgIHNxbF91cmwgPSAnc3FsJzsKICAgICAgICAgfQog ICAgICAgICAvLyBPcGVuIGRhdGEgZ3JpZCAmIHBhc3MgdGhlIFVSTCBmb3IgZmV0Y2hpbmcKLSAg ICAgICAgcGdBZG1pbi5EYXRhR3JpZC5zaG93X3F1ZXJ5X3Rvb2woCisgICAgICAgIHBnQWRtaW4u VG9vbHMuU1FMRWRpdG9yLnNob3dRdWVyeVRvb2woCiAgICAgICAgICAgb2JqLmdlbmVyYXRlX3Vy bChpLCBzcWxfdXJsLCBkLCB0cnVlKSwKICAgICAgICAgICBpLCBzY3JpcHRUeXBlCiAgICAgICAg ICk7CkBAIC0xMDAxLDcgKzEwMDEsNyBAQCBkZWZpbmUoJ3BnYWRtaW4uYnJvd3Nlci5ub2RlJywg WwogICAgICAgICAgIH07CiAgICAgICAgICAgcGdCcm93c2VyLk5vZGUuY2FsbGJhY2tzLnNob3df c2NyaXB0KGRhdGEpOwogICAgICAgICB9ZWxzZXsKLSAgICAgICAgICBwZ0FkbWluLkRhdGFHcmlk LnNob3dfcXVlcnlfdG9vbCgnJywgaSk7CisgICAgICAgICAgcGdBZG1pbi5Ub29scy5TUUxFZGl0 b3Iuc2hvd1F1ZXJ5VG9vbCgnJywgaSk7CiAgICAgICAgIH0KICAgICAgIH0sCiAKZGlmZiAtLWdp dCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc3RhdGljL2pzL3ByZWZlcmVuY2VzLmpzIGIvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zdGF0aWMvanMvcHJlZmVyZW5jZXMuanMKaW5kZXggNjAwMDI3YWM0Li4x MzFkYjAxMzggMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc3RhdGljL2pzL3ByZWZl cmVuY2VzLmpzCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc3RhdGljL2pzL3ByZWZlcmVuY2Vz LmpzCkBAIC0xMTIsNiArMTEyLDEwIEBAIF8uZXh0ZW5kKHBnQnJvd3NlciwgewogICAgIH0sIDUw MCk7CiAgIH0sCiAKKyAgdHJpZ2dlclByZWZlcmVuY2VzQ2hhbmdlOiBmdW5jdGlvbihtb2R1bGVD aGFuZ2VkKSB7CisgICAgJC5ldmVudC50cmlnZ2VyKCdwcmVmY2hhbmdlOicrbW9kdWxlQ2hhbmdl ZCk7CisgIH0sCisKICAgcmVmbGVjdFByZWZlcmVuY2VzOiBmdW5jdGlvbihtb2R1bGUpIHsKICAg ICBsZXQgb2JqID0gdGhpczsKIApAQCAtMTMwLDcgKzEzNCwxMyBAQCBfLmV4dGVuZChwZ0Jyb3dz ZXIsIHsKICAgfSwKIAogICBvblByZWZlcmVuY2VzQ2hhbmdlOiBmdW5jdGlvbihtb2R1bGUsIGV2 ZW50SGFuZGxlcikgewotICAgICQocGdXaW5kb3cpLm9uKCdwcmVmY2hhbmdlOicrbW9kdWxlLCBm dW5jdGlvbihldmVudCkgeworICAgIGxldCBldmVudFdpbmRvdyA9IHBnV2luZG93OworICAgIGlm ICh3aW5kb3cubG9jYXRpb24gPT09IHdpbmRvdy5wYXJlbnQubG9jYXRpb24gKSB7CisgICAgICAv LyBUaGUgcGFnZSBpcyBpbiBhIG5ldyB0YWIKKyAgICAgIGV2ZW50V2luZG93ID0gd2luZG93Owor ICAgIH0KKworICAgICQoZXZlbnRXaW5kb3cpLm9uKCdwcmVmY2hhbmdlOicrbW9kdWxlLCBmdW5j dGlvbihldmVudCkgewogICAgICAgZXZlbnRIYW5kbGVyKGV2ZW50KTsKICAgICB9KTsKICAgfSwK ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc3RhdGljL2pzL3Rvb2xiYXIuanMgYi93 ZWIvcGdhZG1pbi9icm93c2VyL3N0YXRpYy9qcy90b29sYmFyLmpzCmluZGV4IGI5NzE2NWYyZC4u ZmM5MTUwMjZlIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3N0YXRpYy9qcy90b29s YmFyLmpzCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc3RhdGljL2pzL3Rvb2xiYXIuanMKQEAg LTExMiwxMSArMTEyLDExIEBAIGV4cG9ydCBmdW5jdGlvbiBpbml0aWFsaXplVG9vbGJhcihwYW5l bCwgd2NEb2NrZXIpIHsKICAgLy8gTGlzdGVuIG9uIGJ1dHRvbiBjbGljayBldmVudC4KICAgcGFu ZWwub24od2NEb2NrZXIuRVZFTlQuQlVUVE9OLCBmdW5jdGlvbihkYXRhKSB7CiAgICAgaWYgKCdu YW1lJyBpbiBkYXRhICYmIGRhdGEubmFtZSA9PT0gZ2V0dGV4dCgnUXVlcnkgVG9vbCcpKQotICAg ICAgcGdBZG1pbi5EYXRhR3JpZC5zaG93X3F1ZXJ5X3Rvb2woJycsIHBnQWRtaW4uQnJvd3Nlci50 cmVlLnNlbGVjdGVkKCkpOworICAgICAgcGdBZG1pbi5Ub29scy5TUUxFZGl0b3Iuc2hvd1F1ZXJ5 VG9vbCgnJywgcGdBZG1pbi5Ccm93c2VyLnRyZWUuc2VsZWN0ZWQoKSk7CiAgICAgZWxzZSBpZiAo J25hbWUnIGluIGRhdGEgJiYgZGF0YS5uYW1lID09PSBnZXR0ZXh0KCdWaWV3IERhdGEnKSkKLSAg ICAgIHBnQWRtaW4uRGF0YUdyaWQuc2hvd19kYXRhX2dyaWQoe21udWlkOiAzfSwgcGdBZG1pbi5C cm93c2VyLnRyZWUuc2VsZWN0ZWQoKSk7CisgICAgICBwZ0FkbWluLlRvb2xzLlNRTEVkaXRvci5z aG93Vmlld0RhdGEoe21udWlkOiAzfSwgcGdBZG1pbi5Ccm93c2VyLnRyZWUuc2VsZWN0ZWQoKSk7 CiAgICAgZWxzZSBpZiAoJ25hbWUnIGluIGRhdGEgJiYgZGF0YS5uYW1lID09PSBnZXR0ZXh0KCdG aWx0ZXJlZCBSb3dzJykpCi0gICAgICBwZ0FkbWluLkRhdGFHcmlkLnNob3dfZmlsdGVyZWRfcm93 KHttbnVpZDogNH0sIHBnQWRtaW4uQnJvd3Nlci50cmVlLnNlbGVjdGVkKCkpOworICAgICAgcGdB ZG1pbi5Ub29scy5TUUxFZGl0b3Iuc2hvd19maWx0ZXJlZF9yb3coe21udWlkOiA0fSwgcGdBZG1p bi5Ccm93c2VyLnRyZWUuc2VsZWN0ZWQoKSk7CiAgICAgZWxzZSBpZiAoJ25hbWUnIGluIGRhdGEg JiYgZGF0YS5uYW1lID09PSBnZXR0ZXh0KCdTZWFyY2ggb2JqZWN0cycpKQogICAgICAgcGdBZG1p bi5TZWFyY2hPYmplY3RzLnNob3dfc2VhcmNoX29iamVjdHMoJycsIHBnQWRtaW4uQnJvd3Nlci50 cmVlLnNlbGVjdGVkKCkpOwogICAgIGVsc2UgaWYgKCduYW1lJyBpbiBkYXRhICYmIGRhdGEubmFt ZSA9PT0gZ2V0dGV4dCgnUFNRTCBUb29sJykpewpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJv d3Nlci90ZW1wbGF0ZXMvYnJvd3Nlci9qcy91dGlscy5qcyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIv dGVtcGxhdGVzL2Jyb3dzZXIvanMvdXRpbHMuanMKaW5kZXggNmNlODdiZWMwLi42Yzk3MWU3YzYg MTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvdGVtcGxhdGVzL2Jyb3dzZXIvanMvdXRp bHMuanMKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci90ZW1wbGF0ZXMvYnJvd3Nlci9qcy91dGls cy5qcwpAQCAtNTYsNiArNTYsNyBAQCBkZWZpbmUoJ3BnYWRtaW4uYnJvd3Nlci51dGlscycsCiAg IHBnQWRtaW5bJ2VuYWJsZV9wc3FsJ10gPSAgJ3t7ZW5hYmxlX3BzcWx9fScgPT0gJ1RydWUnOwog ICBwZ0FkbWluWydwbGF0Zm9ybSddID0gICd7e3BsYXRmb3JtfX0nOwogICBwZ0FkbWluWydxdF9k ZWZhdWx0X3BsYWNlaG9sZGVyJ10gPSAne3txdF9kZWZhdWx0X3BsYWNlaG9sZGVyfX0nCisgIHBn QWRtaW5bJ3Z3X2VkdF9kZWZhdWx0X3BsYWNlaG9sZGVyJ10gPSAne3t2d19lZHRfZGVmYXVsdF9w bGFjZWhvbGRlcn19JwogCiAgIC8qIEdFVCBCaW5hcnkgUGF0aCBCcm93c2UgY29uZmlnICovCiAg IHBnQWRtaW5bJ2VuYWJsZV9iaW5hcnlfcGF0aF9icm93c2luZyddID0gJ3t7IGN1cnJlbnRfYXBw LmNvbmZpZy5nZXQoJ0VOQUJMRV9CSU5BUllfUEFUSF9CUk9XU0lORycpIH19JyA9PSAnVHJ1ZSc7 CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9taXNjL3N0YXRpYy9leHBsYWluL2pzL3N2Z19kb3du bG9hZGVyLmpzIGIvd2ViL3BnYWRtaW4vbWlzYy9zdGF0aWMvZXhwbGFpbi9qcy9zdmdfZG93bmxv YWRlci5qcwppbmRleCAxMGEzYjBkNGQuLmJmMTcyOGE4NCAxMDA2NDQKLS0tIGEvd2ViL3BnYWRt aW4vbWlzYy9zdGF0aWMvZXhwbGFpbi9qcy9zdmdfZG93bmxvYWRlci5qcworKysgYi93ZWIvcGdh ZG1pbi9taXNjL3N0YXRpYy9leHBsYWluL2pzL3N2Z19kb3dubG9hZGVyLmpzCkBAIC0xNCw3ICsx NCw3IEBAIGxldCBzdmdEb3dubG9hZGVyID0gewogICB9LAogCiAgIGRvd25sb2FkU1ZHOiBmdW5j dGlvbihjb250ZW50LCBmaWxlTmFtZSkgIHsKLSAgICAvLyBTYWZhcmkgeGxpbmsgTlMgaXNzdWUg Zml4CisgICAgLy8gU2FmYXJpIHhsaW5rIE5TIGlzc3VlIGZpeGJsb2JVUkwKICAgICBjb250ZW50 ID0gY29udGVudC5yZXBsYWNlKC9OU1xkKzpocmVmL2dpLCAneGxpbms6aHJlZicpOwogCiAgICAg dmFyIHN2Z1VSTCA9IHRoaXMuYmxvYlVSTChjb250ZW50LCAnaW1hZ2Uvc3ZnK3htbCcpOwpkaWZm IC0tZ2l0IGEvd2ViL3BnYWRtaW4vcHJlZmVyZW5jZXMvc3RhdGljL2pzL3ByZWZlcmVuY2VzLmpz IGIvd2ViL3BnYWRtaW4vcHJlZmVyZW5jZXMvc3RhdGljL2pzL3ByZWZlcmVuY2VzLmpzCmluZGV4 IGViZWYzMWNhZC4uOThhZjgyYjA0IDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9wcmVmZXJlbmNl cy9zdGF0aWMvanMvcHJlZmVyZW5jZXMuanMKKysrIGIvd2ViL3BnYWRtaW4vcHJlZmVyZW5jZXMv c3RhdGljL2pzL3ByZWZlcmVuY2VzLmpzCkBAIC0xMyw3ICsxMyw3IEBAIGRlZmluZSgncGdhZG1p bi5wcmVmZXJlbmNlcycsIFsKICAgJ3NvdXJjZXMvZ2V0dGV4dCcsICdzb3VyY2VzL3VybF9mb3In LCAnanF1ZXJ5JywgJ3VuZGVyc2NvcmUnLCAnYmFja2JvbmUnLAogICAncGdhZG1pbi5hbGVydGlm eWpzJywgJ3NvdXJjZXMvcGdhZG1pbicsICdwZ2FkbWluLmJhY2tmb3JtJywKICAgJ3BnYWRtaW4u YnJvd3NlcicsICdzb3VyY2VzL21vZGlmeV9hbmltYXRpb24nLAotICAndG9vbHMvZGF0YWdyaWQv c3RhdGljL2pzL3Nob3dfcXVlcnlfdG9vbCcsCisgICd0b29scy9zcWxlZGl0b3Ivc3RhdGljL2pz L3Nob3dfcXVlcnlfdG9vbCcsCiAgICdzb3VyY2VzL3RyZWUvcGdhZG1pbl90cmVlX3NhdmVfc3Rh dGUnLAogXSwgZnVuY3Rpb24oCiAgIGdldHRleHQsIHVybF9mb3IsICQsIF8sIEJhY2tib25lLCBB bGVydGlmeSwgcGdBZG1pbiwgQmFja2Zvcm0sIHBnQnJvd3NlciwKZGlmZiAtLWdpdCBhL3dlYi9w Z2FkbWluL3NldHRpbmdzL19faW5pdF9fLnB5IGIvd2ViL3BnYWRtaW4vc2V0dGluZ3MvX19pbml0 X18ucHkKaW5kZXggMzcxYjk1MWY4Li5mODM0MTI4MDYgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWlu L3NldHRpbmdzL19faW5pdF9fLnB5CisrKyBiL3dlYi9wZ2FkbWluL3NldHRpbmdzL19faW5pdF9f LnB5CkBAIC0xMjIsNyArMTIyLDcgQEAgZGVmIHN0b3JlKHNldHRpbmc9Tm9uZSwgdmFsdWU9Tm9u ZSk6CiAgICAgICAgICAgICBzdG9yZV9zZXR0aW5nKHNldHRpbmcsIHZhbHVlKQogICAgIGV4Y2Vw dCBFeGNlcHRpb24gYXMgZToKICAgICAgICAgc3VjY2VzcyA9IDAKLSAgICAgICAgZXJyb3Jtc2cg PSBlLm1lc3NhZ2UKKyAgICAgICAgZXJyb3Jtc2cgPSBzdHIoZSkKIAogICAgIHRyeToKICAgICAg ICAgaW5mbyA9IHRyYWNlYmFjay5mb3JtYXRfZXhjKCkKQEAgLTE0MSwxMiArMTQxLDIxIEBAIGRl ZiByZXNldF9sYXlvdXQoKToKICAgICAiIiJSZXNldCBjb25maWd1cmF0aW9uIHNldHRpbmciIiIK IAogICAgIHRyeToKLSAgICAgICAgZGIuc2Vzc2lvbi5xdWVyeShTZXR0aW5nKSBcCi0gICAgICAg ICAgICAuZmlsdGVyKFNldHRpbmcudXNlcl9pZCA9PSBjdXJyZW50X3VzZXIuaWQpXAotICAgICAg ICAgICAgLmZpbHRlcigoU2V0dGluZy5zZXR0aW5nID09ICdCcm93c2VyL0xheW91dCcpIHwKLSAg ICAgICAgICAgICAgICAgICAgKFNldHRpbmcuc2V0dGluZyA9PSAnU1FMRWRpdG9yL0xheW91dCcp IHwKLSAgICAgICAgICAgICAgICAgICAgKFNldHRpbmcuc2V0dGluZyA9PSAnRGVidWdnZXIvTGF5 b3V0JykpXAotICAgICAgICAgICAgLmRlbGV0ZSgpCisgICAgICAgIGlmIHJlcXVlc3QucGFyYW1z WydzZXR0aW5nJ10gaW4gWworICAgICAgICAgICAgICAgICdCcm93c2VyL0xheW91dCcsICdTUUxF ZGl0b3IvTGF5b3V0JywgJ0RlYnVnZ2VyL0xheW91dCddOgorICAgICAgICAgICAgZGIuc2Vzc2lv bi5xdWVyeShTZXR0aW5nKSBcCisgICAgICAgICAgICAgICAgLmZpbHRlcihTZXR0aW5nLnVzZXJf aWQgPT0gY3VycmVudF91c2VyLmlkKSBcCisgICAgICAgICAgICAgICAgLmZpbHRlcigoU2V0dGlu Zy5zZXR0aW5nID09ICdCcm93c2VyL0xheW91dCcpIHwKKyAgICAgICAgICAgICAgICAgICAgICAg IChTZXR0aW5nLnNldHRpbmcgPT0gJ1NRTEVkaXRvci9MYXlvdXQnKSB8CisgICAgICAgICAgICAg ICAgICAgICAgICAoU2V0dGluZy5zZXR0aW5nID09ICdEZWJ1Z2dlci9MYXlvdXQnKSkgXAorICAg ICAgICAgICAgICAgIC5kZWxldGUoKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgZGIuc2Vz c2lvbi5xdWVyeShTZXR0aW5nKSBcCisgICAgICAgICAgICAgICAgLmZpbHRlcihTZXR0aW5nLnVz ZXJfaWQgPT0gY3VycmVudF91c2VyLmlkKVwKKyAgICAgICAgICAgICAgICAuZmlsdGVyKChTZXR0 aW5nLnNldHRpbmcgPT0gJ0Jyb3dzZXIvTGF5b3V0JykgfAorICAgICAgICAgICAgICAgICAgICAg ICAgKFNldHRpbmcuc2V0dGluZyA9PSAnU1FMRWRpdG9yL0xheW91dCcpIHwKKyAgICAgICAgICAg ICAgICAgICAgICAgIChTZXR0aW5nLnNldHRpbmcgPT0gJ0RlYnVnZ2VyL0xheW91dCcpKVwKKyAg ICAgICAgICAgICAgICAuZGVsZXRlKCkKIAogICAgICAgICBkYi5zZXNzaW9uLmNvbW1pdCgpCiAg ICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vc3RhdGlj L2J1bmRsZS9hcHAuanMgYi93ZWIvcGdhZG1pbi9zdGF0aWMvYnVuZGxlL2FwcC5qcwppbmRleCBm YzM1ZGE2NTMuLmNiZjg5YWVlNCAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vc3RhdGljL2J1bmRs ZS9hcHAuanMKKysrIGIvd2ViL3BnYWRtaW4vc3RhdGljL2J1bmRsZS9hcHAuanMKQEAgLTgsNyAr OCw3IEBACiAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLwogCiBkZWZpbmUoJ2FwcCcsIFsKLSAgJ3NvdXJjZXMvcGdhZG1pbicsICdi dW5kbGVkX2Jyb3dzZXInLCAncGdhZG1pbi5kYXRhZ3JpZCcsCisgICdzb3VyY2VzL3BnYWRtaW4n LCAnYnVuZGxlZF9icm93c2VyJywKIF0sIGZ1bmN0aW9uKHBnQWRtaW4pIHsKICAgdmFyIGluaXRp YWxpemVNb2R1bGVzID0gZnVuY3Rpb24oT2JqZWN0KSB7CiAgICAgZm9yICh2YXIga2V5IGluIE9i amVjdCkgewpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vc3RhdGljL2pzL0V4cGxhaW4vQW5hbHlz aXMuanN4IGIvd2ViL3BnYWRtaW4vc3RhdGljL2pzL0V4cGxhaW4vQW5hbHlzaXMuanN4Cm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMC4uZmE4MjJiMTU2Ci0tLSAvZGV2L251bGwK KysrIGIvd2ViL3BnYWRtaW4vc3RhdGljL2pzL0V4cGxhaW4vQW5hbHlzaXMuanN4CkBAIC0wLDAg KzEsMjE1IEBACisvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vCisvLworLy8gcGdBZG1pbiA0IC0gUG9zdGdyZVNRTCBUb29scworLy8K Ky8vIENvcHlyaWdodCAoQykgMjAxMyAtIDIwMjIsIFRoZSBwZ0FkbWluIERldmVsb3BtZW50IFRl YW0KKy8vIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgdGhlIFBvc3RncmVTUUwgTGlj ZW5jZQorLy8KKy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vCitpbXBvcnQgeyBtYWtlU3R5bGVzIH0gZnJvbSAnQG1hdGVyaWFsLXVp L3N0eWxlcyc7CitpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnOworaW1wb3J0IGNsc3ggZnJvbSAn Y2xzeCc7CitpbXBvcnQgXyBmcm9tICdsb2Rhc2gnOworaW1wb3J0IEFycm93UmlnaHRBbHRJY29u IGZyb20gJ0BtYXRlcmlhbC11aS9pY29ucy9BcnJvd1JpZ2h0QWx0JzsKK2ltcG9ydCBGaWJlck1h bnVhbFJlY29yZEljb24gZnJvbSAnQG1hdGVyaWFsLXVpL2ljb25zL0ZpYmVyTWFudWFsUmVjb3Jk JzsKK2ltcG9ydCBIVE1MUmVhY3RQYXJzZSBmcm9tICdodG1sLXJlYWN0LXBhcnNlcic7CitpbXBv cnQgeyBjb21tb25UYWJsZVN0eWxlcyB9IGZyb20gJy4uL1RoZW1lJzsKK2ltcG9ydCBQcm9wVHlw ZXMgZnJvbSAncHJvcC10eXBlcyc7CisKK2NvbnN0IHVzZVN0eWxlcyA9IG1ha2VTdHlsZXMoKHRo ZW1lKT0+KHsKKyAgY29sbGFwc2libGU6IHsKKyAgICBjdXJzb3I6ICdwb2ludGVyJywKKyAgfSwK KyAgY29sbGFwc2VQYXJlbnQ6IHsKKyAgICBib3JkZXJCb3R0b206ICcycHggZGFzaGVkICcrdGhl bWUucGFsZXR0ZS5wcmltYXJ5Lm1haW4sCisgIH0sCisgIGxldmVsMjogeworICAgIGJhY2tncm91 bmRDb2xvcjogJyNmZmYnLAorICAgIGNvbG9yOiAnIzAwMCcsCisgIH0sCisgIGxldmVsMzogewor ICAgIGJhY2tncm91bmRDb2xvcjogJyNmZmYnLAorICAgIGNvbG9yOiAnIzAwMCcsCisgIH0sCisg IGxldmVsNDogeworICAgIGJhY2tncm91bmRDb2xvcjogJyNmZmYnLAorICAgIGNvbG9yOiAnIzAw MCcsCisgIH0sCit9KSk7CisKK2Z1bmN0aW9uIGdldFJvd0NsYXNzbmFtZShkYXRhLCBjb2xsYXBz ZVBhcmVudCkgeworICBjb25zdCBjbGFzc2VzID0gdXNlU3R5bGVzKCk7CisgIGxldCBjbGFzc05h bWUgPSBbXTsKKyAgaWYoZGF0YVsnUGxhbnMnXT8ubGVuZ3RoID4gMCkgeworICAgIGNsYXNzTmFt ZS5wdXNoKGNsYXNzZXMuY29sbGFwc2libGUpOworICB9CisgIGlmKCFfLmlzRW1wdHkoZGF0YVsn ZXhjbHVzaXZlX2ZsYWcnXSkpIHsKKyAgICBjbGFzc05hbWUucHVzaChjbGFzc2VzWydsZXZlbCcr ZGF0YVsnZXhjbHVzaXZlX2ZsYWcnXV0pOworICB9CisgIGlmKCFfLmlzRW1wdHkoZGF0YVsnaW5j bHVzaXZlX2ZsYWcnXSkpIHsKKyAgICBjbGFzc05hbWUucHVzaChjbGFzc2VzWydsZXZlbCcrZGF0 YVsnaW5jbHVzaXZlX2ZsYWcnXV0pOworICB9CisgIGlmKCFfLmlzRW1wdHkoZGF0YVsncm93c3hf ZmxhZyddKSkgeworICAgIGNsYXNzTmFtZS5wdXNoKGNsYXNzZXNbJ2xldmVsJytkYXRhWydyb3dz eF9mbGFnJ11dKTsKKyAgfQorICBpZihjb2xsYXBzZVBhcmVudCkgeworICAgIGNsYXNzTmFtZS5w dXNoKGNsYXNzZXMuY29sbGFwc2VQYXJlbnQpOworICB9CisgIHJldHVybiBjbGFzc05hbWU7Cit9 CisKK2Z1bmN0aW9uIE5vZGVUZXh0KHtkaXNwbGF5VGV4dCwgZXh0cmFJbmZvfSkgeworICByZXR1 cm4gKAorICAgIDw+CisgICAgICA8QXJyb3dSaWdodEFsdEljb24gZm9udFNpemU9InNtYWxsIiAv PiB7ZGlzcGxheVRleHR9CisgICAgICB7ZXh0cmFJbmZvPy5sZW5ndGggPiAwICYmIDx1bD4KKyAg ICAgICAge2V4dHJhSW5mby5tYXAoKGl0ZW0sIGkpPT57CisgICAgICAgICAgcmV0dXJuIDxsaSBr ZXk9e2l9PntIVE1MUmVhY3RQYXJzZShpdGVtKX08L2xpPjsKKyAgICAgICAgfSl9CisgICAgICA8 L3VsPn0KKyAgICA8Lz4pOworfQorTm9kZVRleHQucHJvcFR5cGVzID0geworICBkaXNwbGF5VGV4 dDogUHJvcFR5cGVzLnN0cmluZywKKyAgZXh0cmFJbmZvOiBQcm9wVHlwZXMuYXJyYXksCit9Owor CitmdW5jdGlvbiBFeHBsYWluUm93KHtyb3csIHNob3csIGFjdGl2ZUV4SWQsIHNldEFjdGl2ZUV4 SWQsIGNvbGxhcHNlZEV4SWQsIHRvZ2dsZUNvbGxhcHNlRXhJZH0pIHsKKyAgbGV0IGRhdGEgPSBy b3dbJ2RhdGEnXTsKKyAgY29uc3QgZXhJZCA9IGBwZ2FfZXhfJHtkYXRhWydsZXZlbCddLmpvaW4o J18nKX1gOworICBjb25zdCBwYXJlbnRFeElkID0gYHBnYV9leF8ke2RhdGFbJ3BhcmVudF9ub2Rl J119YDsKKyAgY29uc3QgY29sbGFwc2VkID0gY29sbGFwc2VkRXhJZC5maW5kSW5kZXgoKHYpPT5w YXJlbnRFeElkLnN0YXJ0c1dpdGgodikpID4gLTE7CisgIGNvbnN0IGNsYXNzTmFtZSA9IGdldFJv d0NsYXNzbmFtZShkYXRhLCBjb2xsYXBzZWRFeElkLmluZGV4T2YoZXhJZCkgPiAtMSk7CisgIGxl dCBvblJvd0NsaWNrID0gKGUpPT57CisgICAgdG9nZ2xlQ29sbGFwc2VFeElkKGUuY3VycmVudFRh cmdldC5nZXRBdHRyaWJ1dGUoJ2RhdGEtZXgtaWQnKSwgZGF0YVsnUGxhbnMnXT8ubGVuZ3RoKTsK KyAgfTsKKworICByZXR1cm4gKAorICAgIDx0ciBvbk1vdXNlRW50ZXI9eyhlKT0+e3NldEFjdGl2 ZUV4SWQoZS5jdXJyZW50VGFyZ2V0LmdldEF0dHJpYnV0ZSgnZGF0YS1leC1pZCcpKTt9fQorICAg ICAgb25Nb3VzZUxlYXZlPXsoKT0+e3NldEFjdGl2ZUV4SWQobnVsbCk7fX0KKyAgICAgIGNsYXNz TmFtZT17Y2xzeChjbGFzc05hbWUpfSBkYXRhLXBhcmVudD17cGFyZW50RXhJZH0KKyAgICAgIGRh dGEtZXgtaWQ9e2BwZ2FfZXhfJHtkYXRhWydsZXZlbCddLmpvaW4oJ18nKX1gfQorICAgICAgc3R5 bGU9e2NvbGxhcHNlZCA/IHtkaXNwbGF5OiAnbm9uZSd9IDoge319CisgICAgICBvbkNsaWNrPXtv blJvd0NsaWNrfT4KKyAgICAgIDx0ZD4KKyAgICAgICAgPEZpYmVyTWFudWFsUmVjb3JkSWNvbiBm b250U2l6ZT0ic21hbGwiIHN0eWxlPXt7dmlzaWJpbGl0eTogYWN0aXZlRXhJZD09cGFyZW50RXhJ ZCA/ICd2aXNpYmxlJyA6ICdoaWRkZW4nfX0gLz4KKyAgICAgIDwvdGQ+CisgICAgICA8dGQ+e2Rh dGFbJ19zZXJpYWwnXX0uPC90ZD4KKyAgICAgIDx0ZCBzdHlsZT17e3BhZGRpbmdMZWZ0OiBkYXRh WydsZXZlbCddLmxlbmd0aCozMCsncHgnfX0gdGl0bGU9e3Jvd1sndG9vbHRpcF90ZXh0J119Pgor ICAgICAgICA8Tm9kZVRleHQgZGlzcGxheVRleHQ9e3Jvd1snZGlzcGxheV90ZXh0J119IGV4dHJh SW5mbz17cm93Wydub2RlX2V4dHJhX2luZm8nXX0gLz4KKyAgICAgIDwvdGQ+CisgICAgICA8dGQg c3R5bGU9e3Nob3cuc2hvd190aW1pbmdzID8ge30gOiB7ZGlzcGxheTogJ25vbmUnfX0+CisgICAg ICAgIHtkYXRhWydleGNsdXNpdmUnXSAmJiAoZGF0YVsnZXhjbHVzaXZlJ10rJyBtcycpfQorICAg ICAgPC90ZD4KKyAgICAgIDx0ZCBzdHlsZT17c2hvdy5zaG93X3RpbWluZ3MgPyB7fSA6IHtkaXNw bGF5OiAnbm9uZSd9fT4KKyAgICAgICAge2RhdGFbJ2luY2x1c2l2ZSddICYmIChkYXRhWydpbmNs dXNpdmUnXSsnIG1zJyl9CisgICAgICA8L3RkPgorICAgICAgPHRkIHN0eWxlPXt7ZGlzcGxheTog J25vbmUnfX0+eyFfLmlzVW5kZWZpbmVkKGRhdGFbJ3Jvd3N4X2ZsYWcnXSkKKyAgICAgICAgJiYg KGRhdGFbJ3Jvd3N4X2RpcmVjdGlvbiddID09ICdwb3NpdGl2ZScgPyAnJnVhcnI7JyA6ICcmZGFy cjsnKQorICAgICAgfTwvdGQ+CisgICAgICA8dGQgc3R5bGU9e3Nob3cuc2hvd19yb3dzeCA/IHt9 IDoge2Rpc3BsYXk6ICdub25lJ319PgorICAgICAgICB7ZGF0YVsncm93c3gnXX0KKyAgICAgIDwv dGQ+CisgICAgICA8dGQgc3R5bGU9eyhzaG93LnNob3dfcm93c3ggfHwgc2hvdy5zaG93X3Jvd3Mp ID8ge30gOiB7ZGlzcGxheTogJ25vbmUnfX0+CisgICAgICAgIHtkYXRhWydBY3R1YWwgUm93cydd fQorICAgICAgPC90ZD4KKyAgICAgIDx0ZCBzdHlsZT17KHNob3cuc2hvd19yb3dzeCB8fCBzaG93 LnNob3dfcGxhbl9yb3dzKSA/IHt9IDoge2Rpc3BsYXk6ICdub25lJ319PgorICAgICAgICB7ZGF0 YVsnUGxhbiBSb3dzJ119CisgICAgICA8L3RkPgorICAgICAgPHRkIHN0eWxlPXsoc2hvdy5zaG93 X3Jvd3N4IHx8IHNob3cuc2hvd19yb3dzKSA/IHt9IDoge2Rpc3BsYXk6ICdub25lJ319PgorICAg ICAgICB7ZGF0YVsnQWN0dWFsIExvb3BzJ119CisgICAgICA8L3RkPgorICAgIDwvdHI+CisgICk7 Cit9CitFeHBsYWluUm93LnByb3BUeXBlcyA9IHsKKyAgcm93OiBQcm9wVHlwZXMuc2hhcGUoewor ICAgIGRhdGE6IFByb3BUeXBlcy5zaGFwZSh7CisgICAgICBQbGFuczogUHJvcFR5cGVzLmFycmF5 LAorICAgICAgbGV2ZWw6IFByb3BUeXBlcy5udW1iZXIsCisgICAgICBfc2VyaWFsOiBQcm9wVHlw ZXMubnVtYmVyLAorICAgICAgcGFyZW50X25vZGU6IFByb3BUeXBlcy5udW1iZXIsCisgICAgICBl eGNsdXNpdmU6IFByb3BUeXBlcy5udW1iZXIsCisgICAgICBpbmNsdXNpdmU6IFByb3BUeXBlcy5u dW1iZXIsCisgICAgICByb3dzeF9kaXJlY3Rpb246IFByb3BUeXBlcy5zdHJpbmcsCisgICAgICBy b3dzeDogUHJvcFR5cGVzLm51bWJlciwKKyAgICAgIHJvd3N4X2ZsYWc6IFByb3BUeXBlcy5udW1i ZXIsCisgICAgICAnQWN0dWFsIFJvd3MnOiBQcm9wVHlwZXMubnVtYmVyLAorICAgICAgJ1BsYW4g Um93cyc6IFByb3BUeXBlcy5udW1iZXIsCisgICAgICAnQWN0dWFsIExvb3BzJzogUHJvcFR5cGVz Lm51bWJlciwKKyAgICB9KSwKKyAgICBub2RlX2V4dHJhX2luZm86IFByb3BUeXBlcy5hcnJheSwK KyAgICBkaXNwbGF5X3RleHQ6IFByb3BUeXBlcy5zdHJpbmcsCisgICAgdG9vbHRpcF90ZXh0OiBQ cm9wVHlwZXMuc3RyaW5nLAorICB9KSwKKyAgc2hvdzogUHJvcFR5cGVzLnNoYXBlKHsKKyAgICBz aG93X3RpbWluZ3M6IFByb3BUeXBlcy5ib29sLAorICAgIHNob3dfcm93c3g6IFByb3BUeXBlcy5i b29sLAorICAgIHNob3dfcm93czogUHJvcFR5cGVzLmJvb2wsCisgICAgc2hvd19wbGFuX3Jvd3M6 IFByb3BUeXBlcy5ib29sLAorICB9KSwKKyAgYWN0aXZlRXhJZDogUHJvcFR5cGVzLnN0cmluZywK KyAgc2V0QWN0aXZlRXhJZDogUHJvcFR5cGVzLnN0cmluZywKKyAgY29sbGFwc2VkRXhJZDogUHJv cFR5cGVzLnN0cmluZywKKyAgdG9nZ2xlQ29sbGFwc2VFeElkOiBQcm9wVHlwZXMuZnVuYywKK307 CisKK2V4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIEFuYWx5c2lzKHtleHBsYWluVGFibGV9KSB7Cisg IGNvbnN0IHRhYmxlQ2xhc3NlcyA9IGNvbW1vblRhYmxlU3R5bGVzKCk7CisgIGNvbnN0IFthY3Rp dmVFeElkLCBzZXRBY3RpdmVFeElkXSA9IFJlYWN0LnVzZVN0YXRlKCk7CisgIGNvbnN0IFtjb2xs YXBzZWRFeElkLCBzZXRDb2xsYXBzZWRFeElkXSA9IFJlYWN0LnVzZVN0YXRlKFtdKTsKKworICBj b25zdCB0b2dnbGVDb2xsYXBzZUV4SWQgPSAoZXhJZCwgaGFzUGxhbnM9dHJ1ZSk9PnsKKyAgICBp ZihoYXNQbGFucykgeworICAgICAgc2V0Q29sbGFwc2VkRXhJZCgocHJldik9PnsKKyAgICAgICAg aWYocHJldi5pbmRleE9mKGV4SWQpID4gLTEpIHsKKyAgICAgICAgICByZXR1cm4gcHJldi5maWx0 ZXIoKHYpPT52IT1leElkKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gWy4uLnByZXYsIGV4 SWRdOworICAgICAgfSk7CisgICAgfQorICB9OworICByZXR1cm4gPHRhYmxlIGNsYXNzTmFtZT17 Y2xzeCh0YWJsZUNsYXNzZXMudGFibGUsIHRhYmxlQ2xhc3Nlcy5ub0JvcmRlciwgdGFibGVDbGFz c2VzLmJvcmRlckJvdHRvbSl9PgorICAgIDx0aGVhZD4KKyAgICAgIDx0cj4KKyAgICAgICAgPHRo IHJvd1NwYW49IjIiIHN0eWxlPXt7d2lkdGg6ICczMHB4J319PjwvdGg+CisgICAgICAgIDx0aCBy b3dTcGFuPSIyIj48YnV0dG9uIGRpc2FibGVkPSIiPiM8L2J1dHRvbj48L3RoPgorICAgICAgICA8 dGggcm93U3Bhbj0iMiI+PGJ1dHRvbiBkaXNhYmxlZD0iIj5Ob2RlPC9idXR0b24+PC90aD4KKyAg ICAgICAgPHRoIGNvbFNwYW49IjIiIHN0eWxlPXtleHBsYWluVGFibGUuc2hvd190aW1pbmdzID8g e30gOiB7ZGlzcGxheTogJ25vbmUnfX0+CisgICAgICAgICAgPGJ1dHRvbiBkaXNhYmxlZD0iIj5U aW1pbmdzPC9idXR0b24+CisgICAgICAgIDwvdGg+CisgICAgICAgIDx0aCBzdHlsZT17KGV4cGxh aW5UYWJsZS5zaG93X3Jvd3N4IHx8IGV4cGxhaW5UYWJsZS5zaG93X3Jvd3MpID8ge30gOiB7ZGlz cGxheTogJ25vbmUnfX0gY29sU3Bhbj0iMyI+CisgICAgICAgICAgPGJ1dHRvbiBkaXNhYmxlZD0i Ij5Sb3dzPC9idXR0b24+CisgICAgICAgIDwvdGg+CisgICAgICAgIDx0aCBzdHlsZT17KGV4cGxh aW5UYWJsZS5zaG93X3Jvd3N4IHx8IGV4cGxhaW5UYWJsZS5zaG93X3Jvd3MpID8ge30gOiB7ZGlz cGxheTogJ25vbmUnfX0gcm93U3Bhbj0iMiI+CisgICAgICAgICAgPGJ1dHRvbiBkaXNhYmxlZD0i Ij5Mb29wczwvYnV0dG9uPgorICAgICAgICA8L3RoPgorICAgICAgPC90cj4KKyAgICAgIDx0cj4K KyAgICAgICAgPHRoIHN0eWxlPXtleHBsYWluVGFibGUuc2hvd190aW1pbmdzID8ge30gOiB7ZGlz cGxheTogJ25vbmUnfX0+CisgICAgICAgICAgPGJ1dHRvbiBkaXNhYmxlZD0iIj5FeGNsdXNpdmU8 L2J1dHRvbj4KKyAgICAgICAgPC90aD4KKyAgICAgICAgPHRoIHN0eWxlPXtleHBsYWluVGFibGUu c2hvd190aW1pbmdzID8ge30gOiB7ZGlzcGxheTogJ25vbmUnfX0+CisgICAgICAgICAgPGJ1dHRv biBkaXNhYmxlZD0iIj5JbmNsdXNpdmU8L2J1dHRvbj4KKyAgICAgICAgPC90aD4KKyAgICAgICAg PHRoIHN0eWxlPXtleHBsYWluVGFibGUuc2hvd19yb3dzeCA/IHt9IDoge2Rpc3BsYXk6ICdub25l J319PjxidXR0b24gZGlzYWJsZWQ9IiI+Um93cyBYPC9idXR0b24+PC90aD4KKyAgICAgICAgPHRo IHN0eWxlPXsoZXhwbGFpblRhYmxlLnNob3dfcm93c3ggfHwgZXhwbGFpblRhYmxlLnNob3dfcm93 cykgPyB7fSA6IHtkaXNwbGF5OiAnbm9uZSd9fT48YnV0dG9uIGRpc2FibGVkPSIiPkFjdHVhbDwv YnV0dG9uPjwvdGg+CisgICAgICAgIDx0aCBzdHlsZT17KGV4cGxhaW5UYWJsZS5zaG93X3Jvd3N4 IHx8IGV4cGxhaW5UYWJsZS5wbGFuX3Jvd3MpID8ge30gOiB7ZGlzcGxheTogJ25vbmUnfX0+PGJ1 dHRvbiBkaXNhYmxlZD0iIj5QbGFuPC9idXR0b24+PC90aD4KKyAgICAgIDwvdHI+CisgICAgPC90 aGVhZD4KKyAgICA8dGJvZHk+CisgICAgICB7Xy5zb3J0QnkoZXhwbGFpblRhYmxlLnJvd3MsKHIp PT5yWydkYXRhJ11bJ19zZXJpYWwnXSkubWFwKChyb3csIGkpPT57CisgICAgICAgIHJldHVybiA8 RXhwbGFpblJvdyBrZXk9e2l9IHJvdz17cm93fSBzaG93PXt7CisgICAgICAgICAgc2hvd190aW1p bmdzOiBleHBsYWluVGFibGUuc2hvd190aW1pbmdzLAorICAgICAgICAgIHNob3dfcm93c3g6IGV4 cGxhaW5UYWJsZS5zaG93X3Jvd3N4LAorICAgICAgICAgIHNob3dfcm93czogZXhwbGFpblRhYmxl LnNob3dfcm93cywKKyAgICAgICAgICBzaG93X3BsYW5fcm93czogZXhwbGFpblRhYmxlLnNob3df cGxhbl9yb3dzLAorICAgICAgICB9fSBhY3RpdmVFeElkPXthY3RpdmVFeElkfSBzZXRBY3RpdmVF eElkPXtzZXRBY3RpdmVFeElkfSBjb2xsYXBzZWRFeElkPXtjb2xsYXBzZWRFeElkfSB0b2dnbGVD b2xsYXBzZUV4SWQ9e3RvZ2dsZUNvbGxhcHNlRXhJZH0gLz47CisgICAgICB9KX0KKyAgICA8L3Ri b2R5PgorICA8L3RhYmxlPjsKK30KKworQW5hbHlzaXMucHJvcFR5cGVzID0geworICBleHBsYWlu VGFibGU6IFByb3BUeXBlcy5vYmplY3QsCit9OwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vc3Rh dGljL2pzL0V4cGxhaW4vRXhwbGFpblN0YXRpc3RpY3MuanN4IGIvd2ViL3BnYWRtaW4vc3RhdGlj L2pzL0V4cGxhaW4vRXhwbGFpblN0YXRpc3RpY3MuanN4Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAwMC4uNDQ0YmFiMzAxCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4v c3RhdGljL2pzL0V4cGxhaW4vRXhwbGFpblN0YXRpc3RpY3MuanN4CkBAIC0wLDAgKzEsMTM5IEBA CisvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vCisvLworLy8gcGdBZG1pbiA0IC0gUG9zdGdyZVNRTCBUb29scworLy8KKy8vIENvcHly aWdodCAoQykgMjAxMyAtIDIwMjIsIFRoZSBwZ0FkbWluIERldmVsb3BtZW50IFRlYW0KKy8vIFRo aXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgdGhlIFBvc3RncmVTUUwgTGljZW5jZQorLy8K Ky8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vCitpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnOworaW1wb3J0IHsgQm94LCBHcmlkLCBt YWtlU3R5bGVzIH0gZnJvbSAnQG1hdGVyaWFsLXVpL2NvcmUnOworaW1wb3J0IGdldHRleHQgZnJv bSAnc291cmNlcy9nZXR0ZXh0JzsKK2ltcG9ydCB7IGNvbW1vblRhYmxlU3R5bGVzIH0gZnJvbSAn Li4vVGhlbWUnOworaW1wb3J0IGNsc3ggZnJvbSAnY2xzeCc7CitpbXBvcnQgXyBmcm9tICdsb2Rh c2gnOworaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJzsKKworY29uc3QgdXNlU3R5 bGVzID0gbWFrZVN0eWxlcygodGhlbWUpPT4oeworICB0aXRsZTogeworICAgIGZvbnRXZWlnaHQ6 ICdib2xkJywKKyAgfSwKKyAgdGFibGVSb3c6IHsKKyAgICBiYWNrZ3JvdW5kQ29sb3I6IHRoZW1l LnBhbGV0dGUuZ3JleVsyMDBdCisgIH0sCisgIHRhYmxlTmFtZTp7CisgICAgZm9udFdlaWdodDog J2JvbGQnLAorICB9LAorICBub2RlTmFtZTogeworICAgIHBhZGRpbmdMZWZ0OiAnMzBweCcsCisg IH0sCit9KSk7CisKK2V4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIEV4cGxhaW5TdGF0aXN0aWNzKHtl eHBsYWluVGFibGV9KSB7CisgIC8vIF9yZW5kZXJTdGF0aXN0aWNzVGFibGUKKyAgY29uc3QgY2xh c3NlcyA9IHVzZVN0eWxlcygpOworICBjb25zdCB0YWJsZUNsYXNzZXMgPSBjb21tb25UYWJsZVN0 eWxlcygpOworICByZXR1cm4gKAorICAgIDxCb3ggcD17MX0+CisgICAgICA8R3JpZCBjb250YWlu ZXIgc3BhY2luZz17MX0+CisgICAgICAgIDxHcmlkIGl0ZW0gbGc9ezZ9IG1kPXsxMn0+CisgICAg ICAgICAgPGRpdiBjbGFzc05hbWU9e2NsYXNzZXMudGl0bGV9PntnZXR0ZXh0KCdTdGF0aXN0aWNz IHBlciBOb2RlIFR5cGUnKX08L2Rpdj4KKyAgICAgICAgICA8dGFibGUgY2xhc3NOYW1lPXtjbHN4 KHRhYmxlQ2xhc3Nlcy50YWJsZSl9PgorICAgICAgICAgICAgPHRoZWFkPgorICAgICAgICAgICAg ICA8dHI+CisgICAgICAgICAgICAgICAgPHRoPntnZXR0ZXh0KCdOb2RlIHR5cGUnKX08L3RoPgor ICAgICAgICAgICAgICAgIDx0aD57Z2V0dGV4dCgnQ291bnQnKX08L3RoPgorICAgICAgICAgICAg ICAgIHtleHBsYWluVGFibGUuc2hvd190aW1pbmdzICYmIDw+CisgICAgICAgICAgICAgICAgICA8 dGg+e2dldHRleHQoJ1RpbWUgc3BlbnQnKX08L3RoPgorICAgICAgICAgICAgICAgICAgPHRoPnsn JSAnK2dldHRleHQoJ29mIHF1ZXJ5Jyl9PC90aD4KKyAgICAgICAgICAgICAgICA8Lz59CisgICAg ICAgICAgICAgIDwvdHI+CisgICAgICAgICAgICA8L3RoZWFkPgorICAgICAgICAgICAgPHRib2R5 PgorICAgICAgICAgICAgICB7Xy5zb3J0QnkoT2JqZWN0LmtleXMoZXhwbGFpblRhYmxlLnN0YXRp c3RpY3Mubm9kZXMpKS5tYXAoKGtleSwgaSk9PnsKKyAgICAgICAgICAgICAgICBsZXQgbm9kZSA9 IGV4cGxhaW5UYWJsZS5zdGF0aXN0aWNzLm5vZGVzW2tleV07CisgICAgICAgICAgICAgICAgcmV0 dXJuIDx0ciBrZXk9e2l9PgorICAgICAgICAgICAgICAgICAgPHRkPntub2RlLm5hbWV9PC90ZD4K KyAgICAgICAgICAgICAgICAgIDx0ZD57bm9kZS5jb3VudH08L3RkPgorICAgICAgICAgICAgICAg ICAge2V4cGxhaW5UYWJsZS5zaG93X3RpbWluZ3MgJiYgPD4KKyAgICAgICAgICAgICAgICAgICAg PHRkPntNYXRoLmNlaWwxMChub2RlLnN1bV9vZl90aW1lcywgLTMpICsgJyBtcyd9PC90ZD4KKyAg ICAgICAgICAgICAgICAgICAgPHRkPntNYXRoLmNlaWwxMCgoKG5vZGUuc3VtX29mX3RpbWVzfHww KS8oZXhwbGFpblRhYmxlLnRvdGFsX3RpbWV8fDEpKSAqIDEwMCwgLTIpKyAnJSd9PC90ZD4KKyAg ICAgICAgICAgICAgICAgIDwvPn0KKyAgICAgICAgICAgICAgICA8L3RyPjsKKyAgICAgICAgICAg ICAgfSl9CisgICAgICAgICAgICA8L3Rib2R5PgorICAgICAgICAgIDwvdGFibGU+CisgICAgICAg IDwvR3JpZD4KKyAgICAgICAgPEdyaWQgaXRlbSBsZz17Nn0gbWQ9ezEyfT4KKyAgICAgICAgICA8 ZGl2IGNsYXNzTmFtZT17Y2xhc3Nlcy50aXRsZX0+e2dldHRleHQoJ1N0YXRpc3RpY3MgcGVyIFJl bGF0aW9uJyl9PC9kaXY+CisgICAgICAgICAgPHRhYmxlIGNsYXNzTmFtZT17Y2xzeCh0YWJsZUNs YXNzZXMudGFibGUpfT4KKyAgICAgICAgICAgIDx0aGVhZD4KKyAgICAgICAgICAgICAgPHRyPgor ICAgICAgICAgICAgICAgIDx0aD57Z2V0dGV4dCgnUmVsYXRpb24gbmFtZScpfTwvdGg+CisgICAg ICAgICAgICAgICAgPHRoPntnZXR0ZXh0KCdTY2FuIGNvdW50Jyl9PC90aD4KKyAgICAgICAgICAg ICAgICB7ZXhwbGFpblRhYmxlLnNob3dfdGltaW5ncyAmJiA8PgorICAgICAgICAgICAgICAgICAg PHRoPntnZXR0ZXh0KCdUb3RhbCB0aW1lJyl9PC90aD4KKyAgICAgICAgICAgICAgICAgIDx0aD57 JyUgJytnZXR0ZXh0KCdvZiBxdWVyeScpfTwvdGg+CisgICAgICAgICAgICAgICAgPC8+fQorICAg ICAgICAgICAgICA8L3RyPgorICAgICAgICAgICAgICA8dHI+CisgICAgICAgICAgICAgICAgPHRo PntnZXR0ZXh0KCdOb2RlIHR5cGUnKX08L3RoPgorICAgICAgICAgICAgICAgIDx0aD57Z2V0dGV4 dCgnQ291bnQnKX08L3RoPgorICAgICAgICAgICAgICAgIHtleHBsYWluVGFibGUuc2hvd190aW1p bmdzICYmIDw+CisgICAgICAgICAgICAgICAgICA8dGg+e2dldHRleHQoJ1N1bSBvZiB0aW1lcycp fTwvdGg+CisgICAgICAgICAgICAgICAgICA8dGg+eyclICcrZ2V0dGV4dCgnb2YgcmVsYXRpb24n KX08L3RoPgorICAgICAgICAgICAgICAgIDwvPn0KKyAgICAgICAgICAgICAgPC90cj4KKyAgICAg ICAgICAgIDwvdGhlYWQ+CisgICAgICAgICAgICA8dGJvZHk+CisgICAgICAgICAgICAgIHtfLnNv cnRCeShPYmplY3Qua2V5cyhleHBsYWluVGFibGUuc3RhdGlzdGljcy50YWJsZXMpKS5tYXAoKGtl eSwgaSk9PnsKKyAgICAgICAgICAgICAgICBsZXQgdGFibGUgPSBleHBsYWluVGFibGUuc3RhdGlz dGljcy50YWJsZXNba2V5XTsKKyAgICAgICAgICAgICAgICB0YWJsZS5zdW1fb2ZfdGltZXMgPSBf LnN1bUJ5KHRhYmxlLm5vZGVzLCAnc3VtX29mX3RpbWVzJyk7CisgICAgICAgICAgICAgICAgcmV0 dXJuIDxSZWFjdC5GcmFnbWVudCBrZXk9e2l9PgorICAgICAgICAgICAgICAgICAgPHRyIGNsYXNz TmFtZT17Y2xhc3Nlcy50YWJsZVJvd30+CisgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzc05h bWU9e2NsYXNzZXMudGFibGVOYW1lfT57dGFibGUubmFtZX08L3RkPgorICAgICAgICAgICAgICAg ICAgICA8dGQ+e3RhYmxlLmNvdW50fTwvdGQ+CisgICAgICAgICAgICAgICAgICAgIHtleHBsYWlu VGFibGUuc2hvd190aW1pbmdzICYmIDw+CisgICAgICAgICAgICAgICAgICAgICAgPHRkPntNYXRo LmNlaWwxMCh0YWJsZS5zdW1fb2ZfdGltZXMsIC0zKSArICcgbXMnfTwvdGQ+CisgICAgICAgICAg ICAgICAgICAgICAgPHRkPntNYXRoLmNlaWwxMCgoKHRhYmxlLnN1bV9vZl90aW1lc3x8MCkvKGV4 cGxhaW5UYWJsZS50b3RhbF90aW1lfHwxKSkgKiAxMDAsIC0yKSsgJyUnfTwvdGQ+CisgICAgICAg ICAgICAgICAgICAgIDwvPn0KKyAgICAgICAgICAgICAgICAgIDwvdHI+CisgICAgICAgICAgICAg ICAgICB7Xy5zb3J0QnkoT2JqZWN0LmtleXModGFibGUubm9kZXMpKS5tYXAoKG5vZGVLZXksIGop PT57CisgICAgICAgICAgICAgICAgICAgIGxldCBub2RlID0gdGFibGUubm9kZXNbbm9kZUtleV07 CisgICAgICAgICAgICAgICAgICAgIHJldHVybiA8dHIga2V5PXtqfT4KKyAgICAgICAgICAgICAg ICAgICAgICA8dGQ+PGRpdiBjbGFzc05hbWU9e2NsYXNzZXMubm9kZU5hbWV9Pntub2RlLm5hbWV9 PC9kaXY+PC90ZD4KKyAgICAgICAgICAgICAgICAgICAgICA8dGQ+e25vZGUuY291bnR9PC90ZD4K KyAgICAgICAgICAgICAgICAgICAgICB7ZXhwbGFpblRhYmxlLnNob3dfdGltaW5ncyAmJiA8Pgor ICAgICAgICAgICAgICAgICAgICAgICAgPHRkPntNYXRoLmNlaWwxMChub2RlLnN1bV9vZl90aW1l cywgLTMpICsgJyBtcyd9PC90ZD4KKyAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD57TWF0aC5j ZWlsMTAoKChub2RlLnN1bV9vZl90aW1lc3x8MCkvKHRhYmxlLnN1bV9vZl90aW1lc3x8MSkpICog MTAwLCAtMikrICclJ308L3RkPgorICAgICAgICAgICAgICAgICAgICAgIDwvPn0KKyAgICAgICAg ICAgICAgICAgICAgPC90cj47CisgICAgICAgICAgICAgICAgICB9KX0KKyAgICAgICAgICAgICAg ICA8L1JlYWN0LkZyYWdtZW50PjsKKyAgICAgICAgICAgICAgfSl9CisgICAgICAgICAgICA8L3Ri b2R5PgorICAgICAgICAgIDwvdGFibGU+CisgICAgICAgIDwvR3JpZD4KKyAgICAgIDwvR3JpZD4K KyAgICA8L0JveD4KKyAgKTsKK30KKworY29uc3QgTm9kZVR5cGUgPSB7CisgIG5hbWU6IFByb3BU eXBlcy5zdHJpbmcsCisgIGNvdW50OiBQcm9wVHlwZXMubnVtYmVyLAorICBzdW1fb2ZfdGltZXM6 IFByb3BUeXBlcy5udW1iZXIsCit9OworRXhwbGFpblN0YXRpc3RpY3MucHJvcFR5cGVzID0gewor ICBleHBsYWluVGFibGU6IFByb3BUeXBlcy5zaGFwZSh7CisgICAgc2hvd190aW1pbmdzOiBQcm9w VHlwZXMuYm9vbCwKKyAgICBzdGF0aXN0aWNzOiBQcm9wVHlwZXMuc2hhcGUoeworICAgICAgbm9k ZXM6IFByb3BUeXBlcy5hcnJheU9mKE5vZGVUeXBlKSwKKyAgICAgIHRhYmxlczogUHJvcFR5cGVz LmFycmF5T2YoeworICAgICAgICAuLi5Ob2RlVHlwZSwKKyAgICAgICAgbm9kZXM6IFByb3BUeXBl cy5hcnJheU9mKE5vZGVUeXBlKSwKKyAgICAgIH0pLAorICAgIH0pLAorICAgIHRvdGFsX3RpbWU6 IFByb3BUeXBlcy5udW1iZXIsCisgIH0pLAorfTsKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL3N0 YXRpYy9qcy9FeHBsYWluL0dyYXBoaWNhbC5qc3ggYi93ZWIvcGdhZG1pbi9zdGF0aWMvanMvRXhw bGFpbi9HcmFwaGljYWwuanN4Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMC4u NTNiOTAyOWYwCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vc3RhdGljL2pzL0V4cGxh aW4vR3JhcGhpY2FsLmpzeApAQCAtMCwwICsxLDQzMyBAQAorLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworLy8KKy8vIHBnQWRtaW4g NCAtIFBvc3RncmVTUUwgVG9vbHMKKy8vCisvLyBDb3B5cmlnaHQgKEMpIDIwMTMgLSAyMDIyLCBU aGUgcGdBZG1pbiBEZXZlbG9wbWVudCBUZWFtCisvLyBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2Vk IHVuZGVyIHRoZSBQb3N0Z3JlU1FMIExpY2VuY2UKKy8vCisvLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworaW1wb3J0IHsgQm94LCBD YXJkLCBDYXJkQ29udGVudCwgQ2FyZEhlYWRlciwgbWFrZVN0eWxlcyB9IGZyb20gJ0BtYXRlcmlh bC11aS9jb3JlJzsKK2ltcG9ydCBSZWFjdCwge3VzZUVmZmVjdH0gZnJvbSAncmVhY3QnOworaW1w b3J0IF8gZnJvbSAnbG9kYXNoJzsKK2ltcG9ydCB7IFBnQnV0dG9uR3JvdXAsIFBnSWNvbkJ1dHRv biB9IGZyb20gJy4uL2NvbXBvbmVudHMvQnV0dG9ucyc7CitpbXBvcnQgWm9vbUluSWNvbiBmcm9t ICdAbWF0ZXJpYWwtdWkvaWNvbnMvWm9vbUluJzsKK2ltcG9ydCBab29tT3V0SWNvbiBmcm9tICdA bWF0ZXJpYWwtdWkvaWNvbnMvWm9vbU91dCc7CitpbXBvcnQgWm9vbU91dE1hcEljb24gZnJvbSAn QG1hdGVyaWFsLXVpL2ljb25zL1pvb21PdXRNYXAnOworaW1wb3J0IFNhdmVBbHRJY29uIGZyb20g J0BtYXRlcmlhbC11aS9pY29ucy9TYXZlQWx0JzsKK2ltcG9ydCBnZXR0ZXh0IGZyb20gJ3NvdXJj ZXMvZ2V0dGV4dCc7CitpbXBvcnQgUmVhY3RET01TZXJ2ZXIgZnJvbSAncmVhY3QtZG9tL3NlcnZl cic7CitpbXBvcnQgdXJsX2ZvciBmcm9tICdzb3VyY2VzL3VybF9mb3InOworaW1wb3J0IHsgZG93 bmxvYWRTdmcgfSBmcm9tICcuL3N2Z19kb3dubG9hZCc7CitpbXBvcnQgQ2xvc2VJY29uIGZyb20g J0BtYXRlcmlhbC11aS9pY29ucy9DbG9zZVJvdW5kZWQnOworaW1wb3J0IHsgY29tbW9uVGFibGVT dHlsZXMgfSBmcm9tICcuLi9UaGVtZSc7CitpbXBvcnQgY2xzeCBmcm9tICdjbHN4JzsKK2ltcG9y dCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7CisKKy8vIFNvbWUgcHJlZGVmaW5lZCBjb25z dGFudHMgdXNlZCB0byBjYWxjdWxhdGUgaW1hZ2UgbG9jYXRpb24gYW5kIGl0cyBib3JkZXIKK3Zh ciBwV0lEVEggPSAxMDAuOwordmFyIHBIRUlHSFQgPSAxMDAuOwordmFyIElNQUdFX1dJRFRIID0g NTA7Cit2YXIgSU1BR0VfSEVJR0hUID0gNTA7Cit2YXIgQVJST1dfV0lEVEggPSAxMCwKKyAgQVJS T1dfSEVJR0hUID0gMTA7Cit2YXIgVFhUX0FMSUdOID0gNSwKKyAgVFhUX1NJWkUgPSAnMTVweCc7 Cit2YXIgeE1hcmdpbiA9IDI1LAorICB5TWFyZ2luID0gMjU7Cit2YXIgTUlOX1pPT01fRkFDVE9S ID0gMC4zLAorICBNQVhfWk9PTV9GQUNUT1IgPSAyLAorICBJTklUX1pPT01fRkFDVE9SID0gMTsK K3ZhciBaT09NX1JBVElPID0gMC4wNTsKKworY29uc3QgQVVYSUxJQVJZX0tFWVMgPSBbJ2ltYWdl JywgJ1BsYW5zJywgJ2xldmVsJywgJ2ltYWdlX3RleHQnLCAneHBvcycsICd5cG9zJywgJ3dpZHRo JywgJ2hlaWdodCcsICd0b3RhbF90aW1lJywgJ3BhcmVudF9ub2RlJywgJ19zZXJpYWwnLCAnYXJy X2lkJ107CisKK2Z1bmN0aW9uIFBvbHlMaW5lKHtzdGFydHgsIHN0YXJ0eSwgZW5keCwgZW5keSwg b3B0cywgYXJyb3dPcHRzfSkgeworICAvLyBDYWxjdWxhdGUgZW5kIHBvaW50IG9mIGZpcnN0IHN0 YXJ0aW5nIHN0cmFpZ2h0IGxpbmUgKHN0YXJ0eDEsIHN0YXJ0eTEpCisgIC8vIENhbGN1bGF0ZSBz dGFydCBwb2ludCBvZiAybmQgc3RyYWlnaHQgbGluZSAoZW5keDEsIGVuZHkxKQorICBsZXQgbWlk WDEgPSBzdGFydHggKyAoKGVuZHggLSBzdGFydHgpIC8gMyksCisgICAgbWlkWDIgPSBzdGFydHgg KyAoMiAqICgoZW5keCAtIHN0YXJ0eCkgLyAzKSk7CisgIHJldHVybiAoCisgICAgPD4KKyAgICAg IDxsaW5lIHgxPXtzdGFydHh9IHgyPXttaWRYMX0geTE9e3N0YXJ0eX0geTI9e3N0YXJ0eX0gey4u Lm9wdHN9PjwvbGluZT4KKyAgICAgIDxsaW5lIHgxPXttaWRYMS0xfSB4Mj17bWlkWDJ9IHkxPXtz dGFydHl9IHkyPXtlbmR5fSB7Li4ub3B0c30+PC9saW5lPgorICAgICAgPGxpbmUgeDE9e21pZFgy fSB4Mj17ZW5keH0geTE9e2VuZHl9IHkyPXtlbmR5fSB7Li4ub3B0c30gey4uLmFycm93T3B0c30+ PC9saW5lPgorICAgIDwvPgorICApOworfQorUG9seUxpbmUucHJvcFR5cGVzID0geworICBzdGFy dHg6IFByb3BUeXBlcy5udW1iZXIsCisgIHN0YXJ0eTogUHJvcFR5cGVzLm51bWJlciwKKyAgZW5k eDogUHJvcFR5cGVzLm51bWJlciwKKyAgZW5keTogUHJvcFR5cGVzLm51bWJlciwKKyAgb3B0czog UHJvcFR5cGVzLm9iamVjdCwKKyAgYXJyb3dPcHRzOiBQcm9wVHlwZXMub2JqZWN0LAorfTsKKwor ZnVuY3Rpb24gTXVsdGl0ZXh0KHtjdXJyZW50WHBvcywgY3VycmVudFlwb3MsIGxhYmVsLCBtYXhX aWR0aH0pIHsKKyAgbGV0IGFiYyA9ICdhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQ0RFRkdI SUpLTE1OT1BRUlNUVVZXWFlaJzsKKyAgdmFyIHhtbG5zID0gJ2h0dHA6Ly93d3cudzMub3JnLzIw MDAvc3ZnJzsKKyAgdmFyIHN2Z0VsZW0gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoeG1sbnMs ICdzdmcnKTsKKyAgc3ZnRWxlbS5zZXRBdHRyaWJ1dGVOUyh4bWxucywgJ2hlaWdodCcsICcxMDAl Jyk7CisgIHN2Z0VsZW0uc2V0QXR0cmlidXRlTlMoeG1sbnMsICd3aWR0aCcsICcxMDAlJyk7Cisg IHZhciB0ZXh0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKHhtbG5zLCAndGV4dCcpOworICB0 ZXh0LmlubmVySFRNTCA9IGFiYzsKKyAgdGV4dC5zZXRBdHRyaWJ1dGVOUyh4bWxucywgJ3gnLCAw KTsKKyAgdGV4dC5zZXRBdHRyaWJ1dGVOUyh4bWxucywgJ3knLCAwKTsKKyAgbGV0IGF0dHJpYnV0 ZXM9eworICAgICdmb250LXNpemUnOiBUWFRfU0laRSwKKyAgICAndGV4dC1hbmNob3InOiAnbWlk ZGxlJywKKyAgICAnZmlsbCc6ICcjMjIyJywKKyAgfTsKKyAgT2JqZWN0LmtleXMoYXR0cmlidXRl cykuZm9yRWFjaCgoa2V5KT0+eworICAgIHRleHQuc2V0QXR0cmlidXRlTlMoeG1sbnMsIGtleSwg YXR0cmlidXRlc1trZXldKTsKKyAgfSk7CisgIHN2Z0VsZW0uYXBwZW5kQ2hpbGQodGV4dCk7Cisg IGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoc3ZnRWxlbSk7CisgIC8qCisgICogRmluZCBsZXR0 ZXIgd2lkdGggaW4gcGl4ZWxzIGFuZAorICAqIGluZGV4IGZyb20gd2hlcmUgdGhlIHRleHQgc2hv dWxkIGJlIGJyb2tlbgorICAqLworICB2YXIgbGV0dGVyV2lkdGggPSB0ZXh0LmdldEJCb3goKS53 aWR0aCAvIGFiYy5sZW5ndGgsCisgICAgd29yZEJyZWFrSW5kZXggPSBNYXRoLnJvdW5kKChtYXhX aWR0aCAvIGxldHRlcldpZHRoKSkgLSAxOworICBzdmdFbGVtLnJlbW92ZSgpOworCisgIHZhciB3 b3JkcyA9IGxhYmVsLnNwbGl0KCcgJyksCisgICAgd2lkdGhTb0ZhciA9IDAsCisgICAgbGluZXMg PSBbXSwKKyAgICBjdXJyTGluZSA9ICcnLAorICAgIC8qCisgICAgKiBGdW5jdGlvbiB0byBkaXZp ZGUgc3RyaW5nIGludG8gbXVsdGlwbGUgbGluZXMKKyAgICAqIGFuZCBzdG9yZSB0aGVtIGluIGFu IGFycmF5IGlmIGl0IHNpemUgY3Jvc3NlcworICAgICogdGhlIG1heC13aWR0aCBib3VuZGFyeS4K KyAgICAqLworICAgIHNwbGl0VGV4dEluTXVsdGlMaW5lID0gZnVuY3Rpb24obGVhZGluZywgc29f ZmFyLCBsaW5lKSB7CisgICAgICB2YXIgbCA9IGxpbmUubGVuZ3RoLAorICAgICAgICByZXMgPSBb XTsKKworICAgICAgaWYgKGwgPT0gMCkKKyAgICAgICAgcmV0dXJuIHJlczsKKworICAgICAgaWYg KHNvX2ZhciAmJiAoc29fZmFyICsgKGwgKiBsZXR0ZXJXaWR0aCkgPiBtYXhXaWR0aCkpIHsKKyAg ICAgICAgcmVzLnB1c2gobGVhZGluZyk7CisgICAgICAgIHJlcyA9IHJlcy5jb25jYXQoc3BsaXRU ZXh0SW5NdWx0aUxpbmUoJycsIDAsIGxpbmUpKTsKKyAgICAgIH0gZWxzZSBpZiAoc29fZmFyKSB7 CisgICAgICAgIHJlcy5wdXNoKGxlYWRpbmcgKyAnICcgKyBsaW5lKTsKKyAgICAgIH0gZWxzZSB7 CisgICAgICAgIGlmIChsZWFkaW5nKQorICAgICAgICAgIHJlcy5wdXNoKGxlYWRpbmcpOworICAg ICAgICBpZiAobGluZS5sZW5ndGggPiB3b3JkQnJlYWtJbmRleCArIDEpCisgICAgICAgICAgcmVz LnB1c2gobGluZS5zbGljZSgwLCB3b3JkQnJlYWtJbmRleCkgKyAnLScpOworICAgICAgICBlbHNl CisgICAgICAgICAgcmVzLnB1c2gobGluZSk7CisgICAgICAgIHJlcyA9IHJlcy5jb25jYXQoc3Bs aXRUZXh0SW5NdWx0aUxpbmUoJycsIDAsIGxpbmUuc2xpY2Uod29yZEJyZWFrSW5kZXgpKSk7Cisg ICAgICB9CisKKyAgICAgIHJldHVybiByZXM7CisgICAgfTsKKworICBmb3IgKHZhciBpID0gMDsg aSA8IHdvcmRzLmxlbmd0aDsgaSsrKSB7CisgICAgdmFyIHRtcEFyciA9IHNwbGl0VGV4dEluTXVs dGlMaW5lKAorICAgICAgY3VyckxpbmUsIHdpZHRoU29GYXIsIHdvcmRzW2ldCisgICAgKTsKKwor ICAgIGlmIChjdXJyTGluZSkgeworICAgICAgbGluZXMgPSBsaW5lcy5zbGljZSgwLCBsaW5lcy5s ZW5ndGggLSAxKTsKKyAgICB9CisgICAgbGluZXMgPSBsaW5lcy5jb25jYXQodG1wQXJyKTsKKyAg ICBjdXJyTGluZSA9IGxpbmVzW2xpbmVzLmxlbmd0aCAtIDFdOworICAgIHdpZHRoU29GYXIgPSAo Y3VyckxpbmUubGVuZ3RoICogbGV0dGVyV2lkdGgpOworICB9CisKKyAgcmV0dXJuICgKKyAgICA8 dGV4dCB4PXtjdXJyZW50WHBvc30geT17Y3VycmVudFlwb3N9IGZpbGw9IiMyMjIyMjIiIHN0eWxl PXt7Zm9udFNpemU6IFRYVF9TSVpFLCB0ZXh0QW5jaG9yOiAnbWlkZGxlJ319PgorICAgICAge2xp bmVzLm1hcCgobGluZSwgaSk9PnsKKyAgICAgICAgaWYoaSA+IDApIHsKKyAgICAgICAgICByZXR1 cm4gPHRzcGFuIGtleT17aX0gZHk9IjEuMmVtIiB4PXtjdXJyZW50WHBvc30+e2xpbmV9PC90c3Bh bj47CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIDx0c3BhbiBrZXk9e2l9PntsaW5lfTwvdHNw YW4+OworICAgICAgfSl9CisgICAgPC90ZXh0PgorICApOworfQorCitNdWx0aXRleHQucHJvcFR5 cGVzID0geworICBjdXJyZW50WHBvczogUHJvcFR5cGVzLm51bWJlciwKKyAgY3VycmVudFlwb3M6 IFByb3BUeXBlcy5udW1iZXIsCisgIGxhYmVsOiBQcm9wVHlwZXMuc3RyaW5nLAorICBtYXhXaWR0 aDogUHJvcFR5cGVzLm51bWJlciwKK307CitmdW5jdGlvbiBJbWFnZSh7cGxhbiwgbGFiZWwsIGN1 cnJlbnRYcG9zLCBjdXJyZW50WXBvcywgY29udGVudCwgZG93bmxvYWQsIG9uTm9kZUNsaWNrfSkg eworICByZXR1cm4gKAorICAgIDw+CisgICAgICA8aW1hZ2UgaHJlZj17Y29udGVudH0KKyAgICAg ICAgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSIKKyAgICAgICAgeD17Y3VycmVudFhwb3MgKyAo cFdJRFRIIC0gSU1BR0VfV0lEVEgpIC8gMn0KKyAgICAgICAgeT17Y3VycmVudFlwb3MgKyAocEhF SUdIVCAtIElNQUdFX0hFSUdIVCkgLyAyfQorICAgICAgICB3aWR0aD17SU1BR0VfV0lEVEh9IGhl aWdodD17SU1BR0VfSEVJR0hUfQorICAgICAgICBzdHlsZT17e2N1cnNvcjogJ3BvaW50ZXInfX0g b25DbGljaz17b25Ob2RlQ2xpY2t9PgorICAgICAgICB7ZG93bmxvYWQgJiYKKyAgICAgICAgICA8 dGl0bGU+CisgICAgICAgICAgICA8Tm9kZURldGFpbHMgcGxhbj17cGxhbn0gZG93bmxvYWQ9e3Ry dWV9IC8+CisgICAgICAgICAgPC90aXRsZT4KKyAgICAgICAgfQorICAgICAgPC9pbWFnZT4KKyAg ICAgIDxNdWx0aXRleHQgY3VycmVudFhwb3M9e2N1cnJlbnRYcG9zICsgKHBXSURUSCAvIDIpICsg VFhUX0FMSUdOfSBjdXJyZW50WXBvcz17Y3VycmVudFlwb3MgKyBwSEVJR0hUIC0gVFhUX0FMSUdO fSBsYWJlbD17bGFiZWx9IG1heFdpZHRoPXsxNTB9IC8+CisgICAgPC8+CisgICk7Cit9CisKK0lt YWdlLnByb3BUeXBlcyA9IHsKKyAgcGxhbjogUHJvcFR5cGVzLm9iamVjdCwKKyAgbGFiZWw6IFBy b3BUeXBlcy5zdHJpbmcsCisgIGN1cnJlbnRYcG9zOiBQcm9wVHlwZXMubnVtYmVyLAorICBjdXJy ZW50WXBvczogUHJvcFR5cGVzLm51bWJlciwKKyAgY29udGVudDogUHJvcFR5cGVzLnN0cmluZywK KyAgZG93bmxvYWQ6IFByb3BUeXBlcy5ib29sLAorICBvbk5vZGVDbGljazogUHJvcFR5cGVzLmZ1 bmMsCit9OworZnVuY3Rpb24gTm9kZURldGFpbHMoe3BsYW4sIGRvd25sb2FkPWZhbHNlfSkgewor ICByZXR1cm4gPD4KKyAgICB7T2JqZWN0LmtleXMocGxhbikubWFwKChrZXkpPT57CisgICAgICBp ZihBVVhJTElBUllfS0VZUy5pbmRleE9mKGtleSkgIT0gLTEpIHsKKyAgICAgICAgcmV0dXJuIDw+ PC8+OworICAgICAgfQorICAgICAgaWYoZG93bmxvYWQpIHsKKyAgICAgICAgcmV0dXJuIGAke2tl eX06ICR7cGxhbltrZXldfVxuYDsKKyAgICAgIH0gZWxzZSB7CisgICAgICAgIHJldHVybiAoPHRy IGtleT17a2V5fT4KKyAgICAgICAgICA8dGQ+e18uZXNjYXBlKGtleSl9PC90ZD4KKyAgICAgICAg ICA8dGQ+e18uZXNjYXBlKHBsYW5ba2V5XSl9PC90ZD4KKyAgICAgICAgPC90cj4pOworICAgICAg fQorICAgIH0pfQorICA8Lz47Cit9CitOb2RlRGV0YWlscy5wcm9wVHlwZXMgPSB7CisgIHBsYW46 IFByb3BUeXBlcy5vYmplY3QsCisgIGRvd25sb2FkOiBQcm9wVHlwZXMuYm9vbCwKK307CisKK2Z1 bmN0aW9uIFBsYW5Db250ZW50KHtwbGFuLCBwWHBvcywgcFlwb3MsIC4uLnByb3BzfSkgeworICBs ZXQgY3VycmVudFhwb3MgPSBwcm9wcy54cG9zICsgcGxhbi54cG9zLAorICAgIGN1cnJlbnRZcG9z ID0gcHJvcHMueXBvcyArIHBsYW4ueXBvcywKKyAgICBpc1N1YlBsYW4gPSAocGxhblsnUGFyZW50 IFJlbGF0aW9uc2hpcCddID09PSAnU3ViUGxhbicpOworICBjb25zdCBub2RlTGFiZWwgPSBwbGFu LlNjaGVtYSA9PSB1bmRlZmluZWQgPworICAgIHBsYW4uaW1hZ2VfdGV4dCA6IHBsYW4uU2NoZW1h ICsgJy4nICsgcGxhbi5pbWFnZV90ZXh0OworCisgIGxldCBjb2xvckZnID0gZ2V0Q29tcHV0ZWRT dHlsZShkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQpLmdldFByb3BlcnR5VmFsdWUoJy0tY29sb3It ZmcnKTsKKyAgbGV0IHBvbHlsaW5lUHJvcHMgPSBudWxsOworICBpZighXy5pc1VuZGVmaW5lZChw WXBvcykpIHsKKyAgICBsZXQgYXJyb3dTaXplID0gcHJvcHMuY3R4LmFycm93c1twbGFuWydhcnJf aWQnXV07CisgICAgcG9seWxpbmVQcm9wcyA9IHsKKyAgICAgIHN0YXJ0eDogY3VycmVudFhwb3Mg KyBwV0lEVEgsCisgICAgICBzdGFydHk6IGN1cnJlbnRZcG9zICsgKHBIRUlHSFQgLyAyKSwKKyAg ICAgIGVuZHg6IHBYcG9zIC0gQVJST1dfV0lEVEgsCisgICAgICBlbmR5OiBwWXBvcyArIChwSEVJ R0hUIC8gMiksCisgICAgICBhcnJfaWQ6IHBsYW5bJ2Fycl9pZCddLAorICAgIH07CisgICAgcG9s eWxpbmVQcm9wcy5vcHRzID0geworICAgICAgc3Ryb2tlOiBjb2xvckZnLAorICAgICAgc3Ryb2tl V2lkdGg6IGFycm93U2l6ZSArIDIsCisgICAgfTsKKyAgICBwb2x5bGluZVByb3BzLmFycm93T3B0 cyA9IHsKKyAgICAgIHN0eWxlOiB7CisgICAgICAgIG1hcmtlckVuZDogYHVybCgiIyR7cGxhblsn YXJyX2lkJ119IilgLAorICAgICAgfQorICAgIH07CisgIH0KKyAgcmV0dXJuICgKKyAgICA8Pgor ICAgICAgPGc+CisgICAgICAgIHtpc1N1YlBsYW4gJiYKKyAgICAgIDw+CisgICAgICAgIDxyZWN0 IHg9e2N1cnJlbnRYcG9zIC0gcGxhbi53aWR0aCArIHBXSURUSCArIHhNYXJnaW59CisgICAgICAg ICAgeT17Y3VycmVudFlwb3MgLSBwbGFuLmhlaWdodCArIHBIRUlHSFQgKyB5TWFyZ2luIC0gVFhU X0FMSUdOfQorICAgICAgICAgIHdpZHRoPXtwbGFuLndpZHRoIC0geE1hcmdpbn0KKyAgICAgICAg ICBoZWlnaHQ9e3BsYW4uaGVpZ2h0ICsgKGN1cnJlbnRZcG9zIC0geU1hcmdpbil9CisgICAgICAg ICAgcng9ezV9CisgICAgICAgICAgc3Ryb2tlPSIjNDQ0NDQ0IgorICAgICAgICAgIHN0cm9rZVdp ZHRoPXsxLjJ9CisgICAgICAgICAgZmlsbD0iZ3JheSIKKyAgICAgICAgICBmaWxsT3BhY2l0eT17 MC4yfQorICAgICAgICAvPgorICAgICAgICA8dHNwYW4geD17Y3VycmVudFhwb3MgKyBwV0lEVEgg LSAocGxhbi53aWR0aCAvIDIpIC0geE1hcmdpbn0KKyAgICAgICAgICB5PXtjdXJyZW50WXBvcyAr IHBIRUlHSFQgLSAocGxhbi5oZWlnaHQgLyAyKSAtIHlNYXJnaW59CisgICAgICAgICAgZm9udFNp emU9e1RYVF9TSVpFfQorICAgICAgICAgIHRleHRBbmNob3I9InN0YXJ0IgorICAgICAgICAgIGZp bGw9InJlZCIKKyAgICAgICAgPntwbGFuWydTdWJwbGFuIE5hbWUnXX08L3RzcGFuPgorICAgICAg PC8+fQorICAgICAgICA8SW1hZ2UKKyAgICAgICAgICBsYWJlbD17bm9kZUxhYmVsfQorICAgICAg ICAgIGNvbnRlbnQ9e3VybF9mb3IoJ21pc2MuaW5kZXgnKSArICdzdGF0aWMvZXhwbGFpbi9pbWcv JyArIHBsYW4uaW1hZ2V9CisgICAgICAgICAgY3VycmVudFhwb3M9e2N1cnJlbnRYcG9zfQorICAg ICAgICAgIGN1cnJlbnRZcG9zPXtjdXJyZW50WXBvc30KKyAgICAgICAgICBwbGFuPXtwbGFufQor ICAgICAgICAgIGRvd25sb2FkPXtwcm9wcy5kb3dubG9hZH0KKyAgICAgICAgICBvbk5vZGVDbGlj az17KCk9PnByb3BzLm9uTm9kZUNsaWNrKG5vZGVMYWJlbCwgcGxhbil9CisgICAgICAgIC8+Cisg ICAgICAgIHtwb2x5bGluZVByb3BzICYmIDxQb2x5TGluZSB7Li4ucG9seWxpbmVQcm9wc30gLz59 CisgICAgICA8L2c+CisgICAgICB7cGxhblsnUGxhbnMnXS5tYXAoKHAsIGkpPT4oCisgICAgICAg IDxQbGFuQ29udGVudCBrZXk9e2l9IHBsYW49e3B9IHBYcG9zPXtjdXJyZW50WHBvc30gcFlwb3M9 e2N1cnJlbnRZcG9zfSB7Li4ucHJvcHN9Lz4KKyAgICAgICkpfQorICAgIDwvPgorICApOworfQor CitQbGFuQ29udGVudC5wcm9wVHlwZXMgPSB7CisgIHBsYW46IFByb3BUeXBlcy5vYmplY3QsCisg IHBYcG9zOiBQcm9wVHlwZXMubnVtYmVyLAorICBwWXBvczogUHJvcFR5cGVzLm51bWJlciwKKyAg eHBvczogUHJvcFR5cGVzLm51bWJlciwKKyAgeXBvczogUHJvcFR5cGVzLm51bWJlciwKKyAgY3R4 OiBQcm9wVHlwZXMub2JqZWN0LAorICBkb3dubG9hZDogUHJvcFR5cGVzLmJvb2wsCisgIG9uTm9k ZUNsaWNrOiBQcm9wVHlwZXMuZnVuYywKK307CisKK2Z1bmN0aW9uIFBsYW5TVkcoe3BsYW5EYXRh LCB6b29tRmFjdG9yLCBmaXRab29tRmFjdG9yLCAuLi5wcm9wc30pIHsKKyAgdXNlRWZmZWN0KCgp PT57CisgICAgZml0Wm9vbUZhY3RvciAmJiBmaXRab29tRmFjdG9yKHBsYW5EYXRhLndpZHRoKTsK KyAgfSwgW3BsYW5EYXRhLndpZHRoXSk7CisKKyAgcmV0dXJuICgKKyAgICA8c3ZnIGhlaWdodD17 cGxhbkRhdGEuaGVpZ2h0Knpvb21GYWN0b3J9IHdpZHRoPXtwbGFuRGF0YS53aWR0aCp6b29tRmFj dG9yfSB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+Cisg ICAgICA8ZGVmcz4KKyAgICAgICAge09iamVjdC5rZXlzKHByb3BzLmN0eC5hcnJvd3MpLm1hcCgo YXJyX2lkLCBpKT0+eworICAgICAgICAgIGxldCBhcnJvd1BvaW50cyA9IFsKKyAgICAgICAgICAg IDAsIDAsCisgICAgICAgICAgICAwLCAoQVJST1dfV0lEVEggLyAyKSwKKyAgICAgICAgICAgIEFS Uk9XX0hFSUdIVCwgKEFSUk9XX1dJRFRIIC8gNCksCisgICAgICAgICAgICAwLCAwCisgICAgICAg ICAgXS5qb2luKCcsJyk7CisgICAgICAgICAgbGV0IHZpZXdCb3ggPSBbMCwgMCwgMiAqIEFSUk9X X1dJRFRILCAyICogQVJST1dfSEVJR0hUXS5qb2luKCcgJyk7CisgICAgICAgICAgcmV0dXJuKAor ICAgICAgICAgICAgPG1hcmtlciBrZXk9e2l9IHZpZXdCb3g9e3ZpZXdCb3h9IG1hcmtlcldpZHRo PXtBUlJPV19XSURUSH0gbWFya2VySGVpZ2h0PXtBUlJPV19IRUlHSFR9IG9yaWVudD0iYXV0byIg cmVmWD0iMCIgcmVmWT17QVJST1dfV0lEVEggLyA0fSBpZD17YXJyX2lkfSBmaWxsPSIjMjIyMjIy Ij4KKyAgICAgICAgICAgICAgPHBvbHlnb24gcG9pbnRzPXthcnJvd1BvaW50c30+PC9wb2x5Z29u PgorICAgICAgICAgICAgPC9tYXJrZXI+CisgICAgICAgICAgKTsKKyAgICAgICAgfSl9CisgICAg ICA8L2RlZnM+CisgICAgICA8ZyB0cmFuc2Zvcm09e2BtYXRyaXgoJHt6b29tRmFjdG9yfSwwLDAs JHt6b29tRmFjdG9yfSwwLDApYH0+CisgICAgICAgIDxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPXtw bGFuRGF0YS53aWR0aH0gaGVpZ2h0PXtwbGFuRGF0YS5oZWlnaHR9IHJ4PSI1IiByeT0iNSIgZmls bD0iI2ZmZmZmZiI+PC9yZWN0PgorICAgICAgICA8UGxhbkNvbnRlbnQgcGxhbj17cGxhbkRhdGFb J1BsYW4nXX0geHBvcz17cGxhbkRhdGEud2lkdGggLSB4TWFyZ2lufSB5cG9zPXt5TWFyZ2lufSB7 Li4ucHJvcHN9Lz4KKyAgICAgIDwvZz4KKyAgICA8L3N2Zz4KKyAgKTsKK30KKworUGxhblNWRy5w cm9wVHlwZXMgPSB7CisgIHBsYW5EYXRhOiBQcm9wVHlwZXMub2JqZWN0LAorICB6b29tRmFjdG9y OiBQcm9wVHlwZXMubnVtYmVyLAorICBmaXRab29tRmFjdG9yOiBQcm9wVHlwZXMubnVtYmVyLAor ICBjdHg6IFByb3BUeXBlcy5vYmplY3QsCit9OworCisKK2NvbnN0IHVzZVN0eWxlcyA9IG1ha2VT dHlsZXMoKHRoZW1lKT0+KHsKKyAgZXhwbGFpbkRldGFpbHM6IHsKKyAgICBtaW5XaWR0aDogJzIw MHB4JywKKyAgICBtYXhXaWR0aDogJzMwMHB4JywKKyAgICBwb3NpdGlvbjogJ2Fic29sdXRlJywK KyAgICB0b3A6ICcwLjI1cmVtJywKKyAgICBib3R0b206ICcwLjI1cmVtJywKKyAgICByaWdodDog JzAuMjVyZW0nLAorICAgIGJvcmRlckNvbG9yOiB0aGVtZS5vdGhlclZhcnMuYm9yZGVyQ29sb3Is CisgICAgLy8gYm94LXNoYWRvdzogMCAwLjEyNXJlbSAwLjVyZW0gcmdiKDEzMiAxNDIgMTYwIC8g MjglKTsKKyAgICB3b3JkQnJlYWs6ICdicmVhay1hbGwnLAorICAgIGRpc3BsYXk6ICdmbGV4JywK KyAgICBmbGV4RGlyZWN0aW9uOiAnY29sdW1uJywKKyAgICB6SW5kZXg6IDk5LAorICB9LAorICBl eHBsYWluQ29udGVudDogeworICAgIGhlaWdodDogJzEwMCUnLAorICAgIG92ZXJmbG93OiAnYXV0 bycsCisgIH0KK30pKTsKKworZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gR3JhcGhpY2FsKHtwbGFu RGF0YSwgY3R4fSkgeworICBjb25zdCB0YWJsZVN0eWxlcyA9IGNvbW1vblRhYmxlU3R5bGVzKCk7 CisgIGNvbnN0IGNsYXNzZXMgPSB1c2VTdHlsZXMoKTsKKyAgY29uc3QgZ3JhcGhDb250YWluZXJS ZWYgPSBSZWFjdC51c2VSZWYoKTsKKyAgY29uc3QgW3pvb21GYWN0b3IsIHNldFpvb21GYWN0b3Jd ID0gUmVhY3QudXNlU3RhdGUoSU5JVF9aT09NX0ZBQ1RPUik7CisgIGNvbnN0IFtbZXhwbGFpblBs YW5UaXRsZSwgZXhwbGFpblBsYW5EZXRhaWxzXSwgc2V0RXhwbGFpblBsYW5EZXRhaWxzXSA9IFJl YWN0LnVzZVN0YXRlKFtudWxsLCBudWxsXSk7CisKKyAgY29uc3Qgb25DbWRDbGljayA9IChjbWQp PT57CisgICAgaWYoY21kID09ICdpbicpIHsKKyAgICAgIHNldFpvb21GYWN0b3IoKHByZXYpPT57 CisgICAgICAgIGlmKHByZXYgPj0gTUFYX1pPT01fRkFDVE9SKSByZXR1cm4gcHJldjsKKyAgICAg ICAgcmV0dXJuIHByZXYrWk9PTV9SQVRJTzsKKyAgICAgIH0pOworICAgIH0gZWxzZSBpZihjbWQg PT0gJ291dCcpIHsKKyAgICAgIHNldFpvb21GYWN0b3IoKHByZXYpPT57CisgICAgICAgIGlmKHBy ZXYgPD0gTUlOX1pPT01fRkFDVE9SKSByZXR1cm4gcHJldjsKKyAgICAgICAgcmV0dXJuIHByZXYt Wk9PTV9SQVRJTzsKKyAgICAgIH0pOworICAgIH0gZWxzZSB7CisgICAgICBzZXRab29tRmFjdG9y KElOSVRfWk9PTV9GQUNUT1IpOworICAgIH0KKyAgfTsKKworICBjb25zdCBmaXRab29tRmFjdG9y ID0gUmVhY3QudXNlQ2FsbGJhY2soKHN2Z1dpZHRoKT0+eworICAgIC8qCisgICAgKiBTY2FsZSBn cmFwaCBpbiBjYXNlIGl0cyB3aWR0aCBpcyBiaWdnZXIgdGhhbiBwYW5lbCB3aWR0aAorICAgICog aW4gd2hpY2ggdGhlIGdyYXBoIGlzIGRpc3BsYXllZAorICAgICovCisgICAgaWYoZ3JhcGhDb250 YWluZXJSZWYuY3VycmVudC5vZmZzZXRXaWR0aCAmJiBzdmdXaWR0aCkgeworICAgICAgbGV0IHpv b21GYWN0b3IgPSBncmFwaENvbnRhaW5lclJlZi5jdXJyZW50Lm9mZnNldFdpZHRoL3N2Z1dpZHRo OworICAgICAgem9vbUZhY3RvciA9IHpvb21GYWN0b3IgPCBNSU5fWk9PTV9GQUNUT1IgPyBNSU5f Wk9PTV9GQUNUT1IgOiB6b29tRmFjdG9yOworICAgICAgem9vbUZhY3RvciA9IHpvb21GYWN0b3Ig PiBJTklUX1pPT01fRkFDVE9SID8gSU5JVF9aT09NX0ZBQ1RPUiA6IHpvb21GYWN0b3I7CisgICAg ICBzZXRab29tRmFjdG9yKHpvb21GYWN0b3IpOworICAgIH0KKyAgfSwgW10pOworCisgIGNvbnN0 IG9uRG93bmxvYWRDbGljayA9ICgpPT57CisgICAgZG93bmxvYWRTdmcoUmVhY3RET01TZXJ2ZXIu cmVuZGVyVG9TdGF0aWNNYXJrdXAoCisgICAgICA8UGxhblNWRyBwbGFuRGF0YT17cGxhbkRhdGF9 IGRvd25sb2FkPXt0cnVlfSBjdHg9e2N0eH0gem9vbUZhY3Rvcj17SU5JVF9aT09NX0ZBQ1RPUn0g b25Ob2RlQ2xpY2s9eygpPT57fX0vPgorICAgICksICdleHBsYWluX3BsYW5fJyArIChuZXcgRGF0 ZSgpKS5nZXRUaW1lKCkgKyAnLnN2ZycpOworICB9OworCisgIGNvbnN0IG9uTm9kZUNsaWNrID0g UmVhY3QudXNlQ2FsbGJhY2soKHRpdGxlLCBkZXRhaWxzKT0+eworICAgIHNldEV4cGxhaW5QbGFu RGV0YWlscyhbdGl0bGUsIGRldGFpbHNdKTsKKyAgfSwgW10pOworCisgIHJldHVybiAoCisgICAg PEJveCByZWY9e2dyYXBoQ29udGFpbmVyUmVmfSBoZWlnaHQ9IjEwMCUiIHdpZHRoPSIxMDAlIiBv dmVyZmxvdz0iYXV0byI+CisgICAgICA8Qm94IHBvc2l0aW9uPSJhYnNvbHV0ZSIgdG9wPSI0cHgi IGxlZnQ9IjRweCIgZ3JpZEdhcD0iNHB4IiBkaXNwbGF5PSJmbGV4Ij4KKyAgICAgICAgPFBnQnV0 dG9uR3JvdXAgc2l6ZT0ic21hbGwiPgorICAgICAgICAgIDxQZ0ljb25CdXR0b24gdGl0bGU9e2dl dHRleHQoJ1pvb20gaW4nKX0gaWNvbj17PFpvb21Jbkljb24gLz59IG9uQ2xpY2s9eygpPT5vbkNt ZENsaWNrKCdpbicpfS8+CisgICAgICAgICAgPFBnSWNvbkJ1dHRvbiB0aXRsZT17Z2V0dGV4dCgn Wm9vbSB0byBvcmlnaW5hbCcpfSBpY29uPXs8Wm9vbU91dE1hcEljb24gLz59IG9uQ2xpY2s9eygp PT5vbkNtZENsaWNrKCl9Lz4KKyAgICAgICAgICA8UGdJY29uQnV0dG9uIHRpdGxlPXtnZXR0ZXh0 KCdab29tIG91dCcpfSBpY29uPXs8Wm9vbU91dEljb24gLz59IG9uQ2xpY2s9eygpPT5vbkNtZENs aWNrKCdvdXQnKX0vPgorICAgICAgICA8L1BnQnV0dG9uR3JvdXA+CisgICAgICAgIDxQZ0J1dHRv bkdyb3VwIHNpemU9InNtYWxsIj4KKyAgICAgICAgICA8UGdJY29uQnV0dG9uIHRpdGxlPXtnZXR0 ZXh0KCdEb3dubG9hZCcpfSBpY29uPXs8U2F2ZUFsdEljb24gLz59IG9uQ2xpY2s9e29uRG93bmxv YWRDbGlja30vPgorICAgICAgICA8L1BnQnV0dG9uR3JvdXA+CisgICAgICA8L0JveD4KKyAgICAg IDxQbGFuU1ZHIHBsYW5EYXRhPXtwbGFuRGF0YX0gY3R4PXtjdHh9IHpvb21GYWN0b3I9e3pvb21G YWN0b3J9IGZpdFpvb21GYWN0b3I9e2ZpdFpvb21GYWN0b3J9CisgICAgICAgIG9uTm9kZUNsaWNr PXtvbk5vZGVDbGlja30KKyAgICAgIC8+CisgICAgICB7Qm9vbGVhbihleHBsYWluUGxhbkRldGFp bHMpICYmCisgICAgICA8Q2FyZCBjbGFzc05hbWU9e2NsYXNzZXMuZXhwbGFpbkRldGFpbHN9Pgor ICAgICAgICA8Q2FyZEhlYWRlciB0aXRsZT17PEJveCBkaXNwbGF5PSJmbGV4Ij4KKyAgICAgICAg ICB7ZXhwbGFpblBsYW5UaXRsZX0KKyAgICAgICAgICA8Qm94IG1hcmdpbkxlZnQ9ImF1dG8iPgor ICAgICAgICAgICAgPFBnSWNvbkJ1dHRvbiB0aXRsZT17Z2V0dGV4dCgnQ2xvc2UnKX0gaWNvbj17 PENsb3NlSWNvbiAvPn0gc2l6ZT0ieHMiIG5vQm9yZGVyIG9uQ2xpY2s9eygpPT5zZXRFeHBsYWlu UGxhbkRldGFpbHMoW251bGwsIG51bGxdKX0vPgorICAgICAgICAgIDwvQm94PgorICAgICAgICA8 L0JveD59IC8+CisgICAgICAgIDxDYXJkQ29udGVudCBjbGFzc05hbWU9e2NsYXNzZXMuZXhwbGFp bkNvbnRlbnR9PgorICAgICAgICAgIDx0YWJsZSBjbGFzc05hbWU9e2Nsc3godGFibGVTdHlsZXMu dGFibGUsIHRhYmxlU3R5bGVzLmJvcmRlckJvdHRvbSl9PgorICAgICAgICAgICAgPHRib2R5Pgor ICAgICAgICAgICAgICA8Tm9kZURldGFpbHMgZG93bmxvYWQ9e2ZhbHNlfSBwbGFuPXtleHBsYWlu UGxhbkRldGFpbHN9IC8+CisgICAgICAgICAgICA8L3Rib2R5PgorICAgICAgICAgIDwvdGFibGU+ CisgICAgICAgIDwvQ2FyZENvbnRlbnQ+CisgICAgICA8L0NhcmQ+fQorICAgIDwvQm94PgorICAp OworfQorCitHcmFwaGljYWwucHJvcFR5cGVzID0geworICBwbGFuRGF0YTogUHJvcFR5cGVzLm9i amVjdCwKKyAgY3R4OiBQcm9wVHlwZXMub2JqZWN0LAorfTsKZGlmZiAtLWdpdCBhL3dlYi9wZ2Fk bWluL3N0YXRpYy9qcy9FeHBsYWluL0ltYWdlTWFwcGVyLmpzIGIvd2ViL3BnYWRtaW4vc3RhdGlj L2pzL0V4cGxhaW4vSW1hZ2VNYXBwZXIuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMDAwLi4wMjgyN2RlNzYKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9zdGF0aWMv anMvRXhwbGFpbi9JbWFnZU1hcHBlci5qcwpAQCAtMCwwICsxLDMwMCBAQAorLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworLy8KKy8v IHBnQWRtaW4gNCAtIFBvc3RncmVTUUwgVG9vbHMKKy8vCisvLyBDb3B5cmlnaHQgKEMpIDIwMTMg LSAyMDIyLCBUaGUgcGdBZG1pbiBEZXZlbG9wbWVudCBUZWFtCisvLyBUaGlzIHNvZnR3YXJlIGlz IHJlbGVhc2VkIHVuZGVyIHRoZSBQb3N0Z3JlU1FMIExpY2VuY2UKKy8vCisvLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworCisvKgor ICogQSBtYXAgd2hpY2ggaXMgdXNlZCB0byBmZXRjaCB0aGUgaW1hZ2UgdG8gYmUgZHJhd24gYW5k CisgKiB0ZXh0IHdoaWNoIHdpbGwgYXBwZWFyIGJlbG93IGl0CisgKi8KKworY29uc3QgSW1hZ2VN YXBwZXIgPSB7CisgICdBZ2dyZWdhdGUnOiB7CisgICAgJ2ltYWdlJzogJ2V4X2FnZ3JlZ2F0ZS5z dmcnLAorICAgICdpbWFnZV90ZXh0JzogJ0FnZ3JlZ2F0ZScsCisgIH0sCisgICdBcHBlbmQnOiB7 CisgICAgJ2ltYWdlJzogJ2V4X2FwcGVuZC5zdmcnLAorICAgICdpbWFnZV90ZXh0JzogJ0FwcGVu ZCcsCisgIH0sCisgICdCaXRtYXAgSW5kZXggU2Nhbic6IGZ1bmN0aW9uKGRhdGEpIHsKKyAgICBy ZXR1cm4geworICAgICAgJ2ltYWdlJzogJ2V4X2JtcF9pbmRleC5zdmcnLAorICAgICAgJ2ltYWdl X3RleHQnOiBkYXRhWydJbmRleCBOYW1lJ10sCisgICAgfTsKKyAgfSwKKyAgJ0JpdG1hcCBIZWFw IFNjYW4nOiBmdW5jdGlvbihkYXRhKSB7CisgICAgcmV0dXJuIHsKKyAgICAgICdpbWFnZSc6ICdl eF9ibXBfaGVhcC5zdmcnLAorICAgICAgJ2ltYWdlX3RleHQnOiBkYXRhWydSZWxhdGlvbiBOYW1l J10sCisgICAgfTsKKyAgfSwKKyAgJ0JpdG1hcEFuZCc6IHsKKyAgICAnaW1hZ2UnOiAnZXhfYm1w X2FuZC5zdmcnLAorICAgICdpbWFnZV90ZXh0JzogJ0JpdG1hcCBBTkQnLAorICB9LAorICAnQml0 bWFwT3InOiB7CisgICAgJ2ltYWdlJzogJ2V4X2JtcF9vci5zdmcnLAorICAgICdpbWFnZV90ZXh0 JzogJ0JpdG1hcCBPUicsCisgIH0sCisgICdDVEUgU2Nhbic6IHsKKyAgICAnaW1hZ2UnOiAnZXhf Y3RlX3NjYW4uc3ZnJywKKyAgICAnaW1hZ2VfdGV4dCc6ICdDVEUgU2NhbicsCisgIH0sCisgICdG dW5jdGlvbiBTY2FuJzogeworICAgICdpbWFnZSc6ICdleF9yZXN1bHQuc3ZnJywKKyAgICAnaW1h Z2VfdGV4dCc6ICdGdW5jdGlvbiBTY2FuJywKKyAgfSwKKyAgJ0ZvcmVpZ24gU2Nhbic6IHsKKyAg ICAnaW1hZ2UnOiAnZXhfZm9yZWlnbl9zY2FuLnN2ZycsCisgICAgJ2ltYWdlX3RleHQnOiAnRm9y ZWlnbiBTY2FuJywKKyAgfSwKKyAgJ0dhdGhlcic6IHsKKyAgICAnaW1hZ2UnOiAnZXhfZ2F0aGVy X21vdGlvbi5zdmcnLAorICAgICdpbWFnZV90ZXh0JzogJ0dhdGhlcicsCisgIH0sCisgICdHYXRo ZXIgTWVyZ2UnOiB7CisgICAgJ2ltYWdlJzogJ2V4X2dhdGhlcl9tZXJnZS5zdmcnLAorICAgICdp bWFnZV90ZXh0JzogJ0dhdGhlciBNZXJnZScsCisgIH0sCisgICdHcm91cCc6IHsKKyAgICAnaW1h Z2UnOiAnZXhfZ3JvdXAuc3ZnJywKKyAgICAnaW1hZ2VfdGV4dCc6ICdHcm91cCcsCisgIH0sCisg ICdHcm91cEFnZ3JlZ2F0ZSc6IHsKKyAgICAnaW1hZ2UnOiAnZXhfYWdncmVnYXRlLnN2ZycsCisg ICAgJ2ltYWdlX3RleHQnOiAnR3JvdXAgQWdncmVnYXRlJywKKyAgfSwKKyAgJ0hhc2gnOiB7Cisg ICAgJ2ltYWdlJzogJ2V4X2hhc2guc3ZnJywKKyAgICAnaW1hZ2VfdGV4dCc6ICdIYXNoJywKKyAg fSwKKyAgJ0hhc2ggSm9pbic6IGZ1bmN0aW9uKGRhdGEpIHsKKyAgICBpZiAoIWRhdGFbJ0pvaW4g VHlwZSddKSByZXR1cm4geworICAgICAgJ2ltYWdlJzogJ2V4X2pvaW4uc3ZnJywKKyAgICAgICdp bWFnZV90ZXh0JzogJ0pvaW4nLAorICAgIH07CisgICAgc3dpdGNoIChkYXRhWydKb2luIFR5cGUn XSkgeworICAgIGNhc2UgJ0FudGknOgorICAgICAgcmV0dXJuIHsKKyAgICAgICAgJ2ltYWdlJzog J2V4X2hhc2hfYW50aV9qb2luLnN2ZycsCisgICAgICAgICdpbWFnZV90ZXh0JzogJ0hhc2ggQW50 aSBKb2luJywKKyAgICAgIH07CisgICAgY2FzZSAnU2VtaSc6CisgICAgICByZXR1cm4geworICAg ICAgICAnaW1hZ2UnOiAnZXhfaGFzaF9zZW1pX2pvaW4uc3ZnJywKKyAgICAgICAgJ2ltYWdlX3Rl eHQnOiAnSGFzaCBTZW1pIEpvaW4nLAorICAgICAgfTsKKyAgICBkZWZhdWx0OgorICAgICAgcmV0 dXJuIHsKKyAgICAgICAgJ2ltYWdlJzogJ2V4X2hhc2guc3ZnJywKKyAgICAgICAgJ2ltYWdlX3Rl eHQnOiBTdHJpbmcoJ0hhc2ggJyArIGRhdGFbJ0pvaW4gVHlwZSddICsgJyBKb2luJyksCisgICAg ICB9OworICAgIH0KKyAgfSwKKyAgJ0hhc2hBZ2dyZWdhdGUnOiB7CisgICAgJ2ltYWdlJzogJ2V4 X2FnZ3JlZ2F0ZS5zdmcnLAorICAgICdpbWFnZV90ZXh0JzogJ0hhc2ggQWdncmVnYXRlJywKKyAg fSwKKyAgJ0luZGV4IE9ubHkgU2Nhbic6IGZ1bmN0aW9uKGRhdGEpIHsKKyAgICByZXR1cm4gewor ICAgICAgJ2ltYWdlJzogJ2V4X2luZGV4X29ubHlfc2Nhbi5zdmcnLAorICAgICAgJ2ltYWdlX3Rl eHQnOiBkYXRhWydJbmRleCBOYW1lJ10sCisgICAgfTsKKyAgfSwKKyAgJ0luZGV4IFNjYW4nOiBm dW5jdGlvbihkYXRhKSB7CisgICAgcmV0dXJuIHsKKyAgICAgICdpbWFnZSc6ICdleF9pbmRleF9z Y2FuLnN2ZycsCisgICAgICAnaW1hZ2VfdGV4dCc6IGRhdGFbJ0luZGV4IE5hbWUnXSwKKyAgICB9 OworICB9LAorICAnSW5kZXggU2NhbiBCYWNrd29yZCc6IHsKKyAgICAnaW1hZ2UnOiAnZXhfaW5k ZXhfc2Nhbi5zdmcnLAorICAgICdpbWFnZV90ZXh0JzogJ0luZGV4IEJhY2t3YXJkIFNjYW4nLAor ICB9LAorICAnTGltaXQnOiB7CisgICAgJ2ltYWdlJzogJ2V4X2xpbWl0LnN2ZycsCisgICAgJ2lt YWdlX3RleHQnOiAnTGltaXQnLAorICB9LAorICAnTG9ja1Jvd3MnOiB7CisgICAgJ2ltYWdlJzog J2V4X2xvY2tfcm93cy5zdmcnLAorICAgICdpbWFnZV90ZXh0JzogJ0xvY2sgUm93cycsCisgIH0s CisgICdNYXRlcmlhbGl6ZSc6IHsKKyAgICAnaW1hZ2UnOiAnZXhfbWF0ZXJpYWxpemUuc3ZnJywK KyAgICAnaW1hZ2VfdGV4dCc6ICdNYXRlcmlhbGl6ZScsCisgIH0sCisgICdNZXJnZSBBcHBlbmQn OiB7CisgICAgJ2ltYWdlJzogJ2V4X21lcmdlX2FwcGVuZC5zdmcnLAorICAgICdpbWFnZV90ZXh0 JzogJ01lcmdlIEFwcGVuZCcsCisgIH0sCisgICdNZXJnZSBKb2luJzogZnVuY3Rpb24oZGF0YSkg eworICAgIHN3aXRjaCAoZGF0YVsnSm9pbiBUeXBlJ10pIHsKKyAgICBjYXNlICdBbnRpJzoKKyAg ICAgIHJldHVybiB7CisgICAgICAgICdpbWFnZSc6ICdleF9tZXJnZV9hbnRpX2pvaW4uc3ZnJywK KyAgICAgICAgJ2ltYWdlX3RleHQnOiAnTWVyZ2UgQW50aSBKb2luJywKKyAgICAgIH07CisgICAg Y2FzZSAnU2VtaSc6CisgICAgICByZXR1cm4geworICAgICAgICAnaW1hZ2UnOiAnZXhfbWVyZ2Vf c2VtaV9qb2luLnN2ZycsCisgICAgICAgICdpbWFnZV90ZXh0JzogJ01lcmdlIFNlbWkgSm9pbics CisgICAgICB9OworICAgIGRlZmF1bHQ6CisgICAgICByZXR1cm4geworICAgICAgICAnaW1hZ2Un OiAnZXhfbWVyZ2Uuc3ZnJywKKyAgICAgICAgJ2ltYWdlX3RleHQnOiBTdHJpbmcoJ01lcmdlICcg KyBkYXRhWydKb2luIFR5cGUnXSArICcgSm9pbicpLAorICAgICAgfTsKKyAgICB9CisgIH0sCisg ICdNb2RpZnlUYWJsZSc6IGZ1bmN0aW9uKGRhdGEpIHsKKyAgICBzd2l0Y2ggKGRhdGFbJ09wZXJh dGlvbiddKSB7CisgICAgY2FzZSAnSW5zZXJ0JzoKKyAgICAgIHJldHVybiB7CisgICAgICAgICdp bWFnZSc6ICdleF9pbnNlcnQuc3ZnJywKKyAgICAgICAgJ2ltYWdlX3RleHQnOiAnSW5zZXJ0JywK KyAgICAgIH07CisgICAgY2FzZSAnVXBkYXRlJzoKKyAgICAgIHJldHVybiB7CisgICAgICAgICdp bWFnZSc6ICdleF91cGRhdGUuc3ZnJywKKyAgICAgICAgJ2ltYWdlX3RleHQnOiAnVXBkYXRlJywK KyAgICAgIH07CisgICAgY2FzZSAnRGVsZXRlJzoKKyAgICAgIHJldHVybiB7CisgICAgICAgICdp bWFnZSc6ICdleF9kZWxldGUuc3ZnJywKKyAgICAgICAgJ2ltYWdlX3RleHQnOiAnRGVsZXRlJywK KyAgICAgIH07CisgICAgfQorICB9LAorICAnTmFtZWQgVHVwbGVzdG9yZSBTY2FuJzogeworICAg ICdpbWFnZSc6ICdleF9uYW1lZF90dXBsZXN0b3JlX3NjYW4uc3ZnJywKKyAgICAnaW1hZ2VfdGV4 dCc6ICdOYW1lZCBUdXBsZXN0b3JlIFNjYW4nLAorICB9LAorICAnTmVzdGVkIExvb3AnOiBmdW5j dGlvbihkYXRhKSB7CisgICAgc3dpdGNoIChkYXRhWydKb2luIFR5cGUnXSkgeworICAgIGNhc2Ug J0FudGknOgorICAgICAgcmV0dXJuIHsKKyAgICAgICAgJ2ltYWdlJzogJ2V4X25lc3RlZF9sb29w X2FudGlfam9pbi5zdmcnLAorICAgICAgICAnaW1hZ2VfdGV4dCc6ICdOZXN0ZWQgTG9vcCBBbnRp IEpvaW4nLAorICAgICAgfTsKKyAgICBjYXNlICdTZW1pJzoKKyAgICAgIHJldHVybiB7CisgICAg ICAgICdpbWFnZSc6ICdleF9uZXN0ZWRfbG9vcF9zZW1pX2pvaW4uc3ZnJywKKyAgICAgICAgJ2lt YWdlX3RleHQnOiAnTmVzdGVkIExvb3AgU2VtaSBKb2luJywKKyAgICAgIH07CisgICAgZGVmYXVs dDoKKyAgICAgIHJldHVybiB7CisgICAgICAgICdpbWFnZSc6ICdleF9uZXN0ZWQuc3ZnJywKKyAg ICAgICAgJ2ltYWdlX3RleHQnOiAnTmVzdGVkIExvb3AgJyArIGRhdGFbJ0pvaW4gVHlwZSddICsg JyBKb2luJywKKyAgICAgIH07CisgICAgfQorICB9LAorICAnUHJvamVjdFNldCc6IHsKKyAgICAn aW1hZ2UnOiAnZXhfcHJvamVjdHNldC5zdmcnLAorICAgICdpbWFnZV90ZXh0JzogJ1Byb2plY3RT ZXQnLAorICB9LAorICAnUmVjdXJzaXZlIFVuaW9uJzogeworICAgICdpbWFnZSc6ICdleF9yZWN1 cnNpdmVfdW5pb24uc3ZnJywKKyAgICAnaW1hZ2VfdGV4dCc6ICdSZWN1cnNpdmUgVW5pb24nLAor ICB9LAorICAnUmVzdWx0JzogeworICAgICdpbWFnZSc6ICdleF9yZXN1bHQuc3ZnJywKKyAgICAn aW1hZ2VfdGV4dCc6ICdSZXN1bHQnLAorICB9LAorICAnU2FtcGxlIFNjYW4nOiB7CisgICAgJ2lt YWdlJzogJ2V4X3NjYW4uc3ZnJywKKyAgICAnaW1hZ2VfdGV4dCc6ICdTYW1wbGUgU2NhbicsCisg IH0sCisgICdTY2FuJzogeworICAgICdpbWFnZSc6ICdleF9zY2FuLnN2ZycsCisgICAgJ2ltYWdl X3RleHQnOiAnU2NhbicsCisgIH0sCisgICdTZWVrJzogeworICAgICdpbWFnZSc6ICdleF9zZWVr LnN2ZycsCisgICAgJ2ltYWdlX3RleHQnOiAnU2VlaycsCisgIH0sCisgICdTZXRPcCc6IGZ1bmN0 aW9uKGRhdGEpIHsKKyAgICBsZXQgc3RyYXRlZ3kgPSBkYXRhWydTdHJhdGVneSddLAorICAgICAg Y29tbWFuZCA9IGRhdGFbJ0NvbW1hbmQnXTsKKworICAgIGlmIChzdHJhdGVneSA9PSAnSGFzaGVk JykgeworICAgICAgaWYgKGNvbW1hbmQuc3RhcnRzV2l0aCgnSW50ZXJzZWN0JykpIHsKKyAgICAg ICAgaWYgKGNvbW1hbmQgPT0gJ0ludGVyc2VjdCBBbGwnKQorICAgICAgICAgIHJldHVybiB7Cisg ICAgICAgICAgICAnaW1hZ2UnOiAnZXhfaGFzaF9zZXRvcF9pbnRlcnNlY3RfYWxsLnN2ZycsCisg ICAgICAgICAgICAnaW1hZ2VfdGV4dCc6ICdIYXNoZWQgSW50ZXJzZWN0IEFsbCcsCisgICAgICAg ICAgfTsKKyAgICAgICAgcmV0dXJuIHsKKyAgICAgICAgICAnaW1hZ2UnOiAnZXhfaGFzaF9zZXRv cF9pbnRlcnNlY3Quc3ZnJywKKyAgICAgICAgICAnaW1hZ2VfdGV4dCc6ICdIYXNoZWQgSW50ZXJz ZWN0JywKKyAgICAgICAgfTsKKyAgICAgIH0gZWxzZSBpZiAoY29tbWFuZC5zdGFydHNXaXRoKCdF eGNlcHQnKSkgeworICAgICAgICBpZiAoY29tbWFuZCA9PSAnRXhjZXB0IEFsbCcpCisgICAgICAg ICAgcmV0dXJuIHsKKyAgICAgICAgICAgICdpbWFnZSc6ICdleF9oYXNoX3NldG9wX2V4Y2VwdF9h bGwuc3ZnJywKKyAgICAgICAgICAgICdpbWFnZV90ZXh0JzogJ0hhc2hlZCBFeGNlcHQgQWxsJywK KyAgICAgICAgICB9OworICAgICAgICByZXR1cm4geworICAgICAgICAgICdpbWFnZSc6ICdleF9o YXNoX3NldG9wX2V4Y2VwdC5zdmcnLAorICAgICAgICAgICdpbWFnZV90ZXh0JzogJ0hhc2ggRXhj ZXB0JywKKyAgICAgICAgfTsKKyAgICAgIH0KKyAgICAgIHJldHVybiB7CisgICAgICAgICdpbWFn ZSc6ICdleF9oYXNoX3NldG9wX3Vua25vd24uc3ZnJywKKyAgICAgICAgJ2ltYWdlX3RleHQnOiAn SGFzaGVkIFNldE9wIFVua25vd24nLAorICAgICAgfTsKKyAgICB9CisgICAgcmV0dXJuIHsKKyAg ICAgICdpbWFnZSc6ICdleF9zZXRvcC5zdmcnLAorICAgICAgJ2ltYWdlX3RleHQnOiAnU2V0T3An LAorICAgIH07CisgIH0sCisgICdTZXEgU2Nhbic6IGZ1bmN0aW9uKGRhdGEpIHsKKyAgICByZXR1 cm4geworICAgICAgJ2ltYWdlJzogJ2V4X3NjYW4uc3ZnJywKKyAgICAgICdpbWFnZV90ZXh0Jzog ZGF0YVsnUmVsYXRpb24gTmFtZSddLAorICAgIH07CisgIH0sCisgICdTdWJxdWVyeSBTY2FuJzog eworICAgICdpbWFnZSc6ICdleF9zdWJwbGFuLnN2ZycsCisgICAgJ2ltYWdlX3RleHQnOiAnU3Vi UXVlcnkgU2NhbicsCisgIH0sCisgICdTb3J0JzogeworICAgICdpbWFnZSc6ICdleF9zb3J0LnN2 ZycsCisgICAgJ2ltYWdlX3RleHQnOiAnU29ydCcsCisgIH0sCisgICdUaWQgU2Nhbic6IHsKKyAg ICAnaW1hZ2UnOiAnZXhfdGlkX3NjYW4uc3ZnJywKKyAgICAnaW1hZ2VfdGV4dCc6ICdUaWQgU2Nh bicsCisgIH0sCisgICdUYWJsZSBGdW5jdGlvbiBTY2FuJzogeworICAgICdpbWFnZSc6ICdleF90 YWJsZV9mdW5jX3NjYW4uc3ZnJywKKyAgICAnaW1hZ2VfdGV4dCc6ICdUYWJsZSBGdW5jdGlvbiBT Y2FuJywKKyAgfSwKKyAgJ1VuaXF1ZSc6IHsKKyAgICAnaW1hZ2UnOiAnZXhfdW5pcXVlLnN2Zycs CisgICAgJ2ltYWdlX3RleHQnOiAnVW5pcXVlJywKKyAgfSwKKyAgJ1ZhbHVlcyBTY2FuJzogewor ICAgICdpbWFnZSc6ICdleF92YWx1ZXNfc2Nhbi5zdmcnLAorICAgICdpbWFnZV90ZXh0JzogJ1Zh bHVlcyBTY2FuJywKKyAgfSwKKyAgJ1dpbmRvd0FnZyc6IHsKKyAgICAnaW1hZ2UnOiAnZXhfd2lu ZG93X2FnZ3JlZ2F0ZS5zdmcnLAorICAgICdpbWFnZV90ZXh0JzogJ1dpbmRvdyBBZ2dyZWdhdGUn LAorICB9LAorICAnV29ya1RhYmxlIFNjYW4nOiB7CisgICAgJ2ltYWdlJzogJ2V4X3dvcmt0YWJs ZV9zY2FuLnN2ZycsCisgICAgJ2ltYWdlX3RleHQnOiAnV29ya1RhYmxlIFNjYW4nLAorICB9LAor ICAnVW5kZWZpbmVkJzogeworICAgICdpbWFnZSc6ICdleF91bmtub3duLnN2ZycsCisgICAgJ2lt YWdlX3RleHQnOiAnVW5kZWZpbmVkJywKKyAgfSwKK307CisKK2V4cG9ydCBkZWZhdWx0IEltYWdl TWFwcGVyOwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vc3RhdGljL2pzL0V4cGxhaW4vY3NzL2V4 cGxhaW4uY3NzIGIvd2ViL3BnYWRtaW4vc3RhdGljL2pzL0V4cGxhaW4vY3NzL2V4cGxhaW4uY3Nz Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMC4uZDFmOGJiYjI3Ci0tLSAvZGV2 L251bGwKKysrIGIvd2ViL3BnYWRtaW4vc3RhdGljL2pzL0V4cGxhaW4vY3NzL2V4cGxhaW4uY3Nz CkBAIC0wLDAgKzEsMjMgQEAKKy5leHBsYWluLXRvb2x0aXAgeworICBkaXNwbGF5OiB0YWJsZS1j ZWxsOworICB0ZXh0LWFsaWduOiBsZWZ0OworICB3aGl0ZS1zcGFjZTogbm93cmFwOworICBwYWRk aW5nOiAycHggIWltcG9ydGFudDsKKyAgZm9udC1zaXplOiBzbWFsbDsKK30KKwordGQuZXhwbGFp bi10b29sdGlwLXZhbCB7CisgIGRpc3BsYXk6IHRhYmxlLWNlbGw7CisgIHRleHQtYWxpZ246IGxl ZnQ7CisgIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKKyAgcGFkZGluZzogMnB4ICFpbXBvcnRhbnQ7 CisgIGZvbnQtc2l6ZTogc21hbGw7CisgIGZvbnQtd2VpZ2h0OiBub3JtYWw7Cit9CisKKy5wZ2Fk bWluLXRvb2x0aXAtdGFibGUgeworICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOworICBib3Jk ZXItc3BhY2luZzogMXB4OworICB0b3A6IGF1dG87CisgIGxlZnQ6IGF1dG87Cit9CmRpZmYgLS1n aXQgYS93ZWIvcGdhZG1pbi9zdGF0aWMvanMvRXhwbGFpbi9pbWcvZXhfYWdncmVnYXRlLnN2ZyBi L3dlYi9wZ2FkbWluL3N0YXRpYy9qcy9FeHBsYWluL2ltZy9leF9hZ2dyZWdhdGUuc3ZnCm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMC4uZjYzNDJlNTBkCi0tLSAvZGV2L251bGwK KysrIGIvd2ViL3BnYWRtaW4vc3RhdGljL2pzL0V4cGxhaW4vaW1nL2V4X2FnZ3JlZ2F0ZS5zdmcK QEAgLTAsMCArMSBAQAorPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZp ZXdCb3g9IjAgMCA2NCA2NCI+PGRlZnM+PHN0eWxlPi5jbHMtMXtmaWxsOiNmMGVjYjY7fS5jbHMt MntmaWxsOiNjMThmMzU7fS5jbHMtMywuY2xzLTh7ZmlsbDojYzhmZmFjO30uY2xzLTR7ZmlsbDoj NDhkNjAxO30uY2xzLTV7ZmlsbDojZDNkNGYzO30uY2xzLTZ7ZmlsbDojNjY2YmQxO30uY2xzLTEx LC5jbHMtNywuY2xzLTl7ZmlsbDpub25lO30uY2xzLTd7c3Ryb2tlOiM2NjZiZDE7fS5jbHMtMTAs LmNscy0xMSwuY2xzLTcsLmNscy05e3N0cm9rZS1saW5lam9pbjpyb3VuZDt9LmNscy03LC5jbHMt OXtvcGFjaXR5OjAuODt9LmNscy04e3N0cm9rZTojNDhkNjAxO3N0cm9rZS1taXRlcmxpbWl0OjEw O29wYWNpdHk6MC43O30uY2xzLTl7c3Ryb2tlOiNjMThmMzU7fS5jbHMtMTB7ZmlsbDojMzQ0OTVl O30uY2xzLTEwLC5jbHMtMTF7c3Ryb2tlOiMzNDQ5NWU7fS5jbHMtMTF7c3Ryb2tlLWxpbmVjYXA6 cm91bmQ7fTwvc3R5bGU+PC9kZWZzPjx0aXRsZT5leF9hZ2dyZWdhdGU8L3RpdGxlPjxnIGlkPSJl eF9icm9hZGNhc3RfbW90aW9uIj48cmVjdCBjbGFzcz0iY2xzLTEiIHg9IjM4LjQyIiB5PSIyNy4y NSIgd2lkdGg9IjguMjgiIGhlaWdodD0iOSIvPjxwYXRoIGNsYXNzPSJjbHMtMiIgZD0iTTQ2LjIs MjcuNzV2OEgzOC45MnYtOEg0Ni4ybTEtMUgzNy45MnYxMEg0Ny4ydi0xMFoiLz48cmVjdCBjbGFz cz0iY2xzLTEiIHg9IjQ2LjcyIiB5PSIyNy4yNSIgd2lkdGg9IjguMjgiIGhlaWdodD0iOSIvPjxw YXRoIGNsYXNzPSJjbHMtMiIgZD0iTTU0LjUsMjcuNzV2OEg0Ny4yMnYtOEg1NC41bTEtMUg0Ni4y MnYxMEg1NS41di0xMFoiLz48cGF0aCBjbGFzcz0iY2xzLTMiIGQ9Ik0zOS45Miw0NS4yM2MtMS4z NywwLTEuNS0uMTMtMS41LTEuNXYtNy41SDQ2Ljd2OVoiLz48cGF0aCBjbGFzcz0iY2xzLTQiIGQ9 Ik00Ni4yLDM2LjczdjhIMzkuOTJhMy4yNSwzLjI1LDAsMCwxLS45LS4wOGgwYTIuMTgsMi4xOCww LDAsMS0uMS0uOTJ2LTdINDYuMm0xLTFIMzcuOTJ2OGMwLDEuNjUuMzUsMiwyLDJINDcuMnYtMTBa Ii8+PHBhdGggY2xhc3M9ImNscy0zIiBkPSJNNDYuNzIsNDUuMjN2LTlINTV2Ny41YzAsMS4zNy0u MTMsMS41LTEuNSwxLjVaIi8+PHBhdGggY2xhc3M9ImNscy00IiBkPSJNNTQuNSwzNi43M3Y3YTMu MjksMy4yOSwwLDAsMS0uMDguOSwyLjE4LDIuMTgsMCwwLDEtLjkyLjFINDcuMjJ2LThINTQuNW0x LTFINDYuMjJ2MTBINTMuNWMxLjY1LDAsMi0uMzUsMi0ydi04WiIvPjxwYXRoIGNsYXNzPSJjbHMt NSIgZD0iTTM4LjQyLDI3LjI3di03LjVjMC0xLjM3LjEzLTEuNSwxLjUtMS41SDQ2Ljd2OVoiLz48 cGF0aCBjbGFzcz0iY2xzLTYiIGQ9Ik00Ni4yLDE4Ljc3djhIMzguOTJ2LTdhMy4yOSwzLjI5LDAs MCwxLC4wOC0uOSwyLjE4LDIuMTgsMCwwLDEsLjkyLS4xSDQ2LjJtMS0xSDM5LjkyYy0xLjY1LDAt MiwuMzUtMiwydjhINDcuMnYtMTBaIi8+PHBhdGggY2xhc3M9ImNscy01IiBkPSJNNDYuNzIsMjcu Mjd2LTlINTMuNWMxLjM3LDAsMS41LjEzLDEuNSwxLjV2Ny41WiIvPjxwYXRoIGNsYXNzPSJjbHMt NiIgZD0iTTUzLjUsMTguNzdhMy4yNSwzLjI1LDAsMCwxLC45LjA4aDBhMi4xOCwyLjE4LDAsMCwx LC4xLjkydjdINDcuMjJ2LThINTMuNW0wLTFINDYuMjJ2MTBINTUuNXYtOGMwLTEuNjUtLjM1LTIt Mi0yWiIvPjxwYXRoIGNsYXNzPSJjbHMtNSIgZD0iTTksMjUuNDNWMTMuOTNjMC0xLjM3LjEzLTEu NSwxLjUtMS41aDUuNzh2MTNaIi8+PHBhdGggY2xhc3M9ImNscy02IiBkPSJNMTUuODEsMTIuOTN2 MTJIOS41M3YtMTFhMy4yOCwzLjI4LDAsMCwxLC4wOC0uOSwyLjE4LDIuMTgsMCwwLDEsLjkyLS4x aDUuMjhtMS0xSDEwLjUzYy0xLjY1LDAtMiwuMzUtMiwydjEyaDguMjh2LTE0WiIvPjxwYXRoIGNs YXNzPSJjbHMtNSIgZD0iTTE2LjMyLDI1LjQzdi0xM0gyMi4xYzEuMzcsMCwxLjUuMTMsMS41LDEu NXYxMS41WiIvPjxwYXRoIGNsYXNzPSJjbHMtNiIgZD0iTTIyLjEsMTIuOTNBMy4yNSwzLjI1LDAs MCwxLDIzLDEzaDBhMi4xOCwyLjE4LDAsMCwxLC4xLjkydjExSDE2Ljgydi0xMkgyMi4xbTAtMUgx NS44MnYxNEgyNC4xdi0xMmMwLTEuNjUtLjM1LTItMi0yWiIvPjxsaW5lIGNsYXNzPSJjbHMtNyIg eDE9IjkuMDYiIHkxPSIxOC43NyIgeDI9IjE1LjgiIHkyPSIxOC43NyIvPjxsaW5lIGNsYXNzPSJj bHMtNyIgeDE9IjE2LjA4IiB5MT0iMTguNzciIHgyPSIyMy41NyIgeTI9IjE4Ljc3Ii8+PHBhdGgg Y2xhc3M9ImNscy0zIiBkPSJNMTAuNTMsNTEuNDVDOS4xNiw1MS40NSw5LDUxLjMzLDksNTBWMzgu NDVoNy4yOHYxM1oiLz48cGF0aCBjbGFzcz0iY2xzLTQiIGQ9Ik0xNS44MSwzOVY1MUgxMC41M2Ez LjI1LDMuMjUsMCwwLDEtLjktLjA4aDBhMi4xOCwyLjE4LDAsMCwxLS4xLS45MlYzOWg2LjI4bTEt MUg4LjUzVjUwYzAsMS42NS4zNSwyLDIsMmg2LjI4VjM4WiIvPjxwYXRoIGNsYXNzPSJjbHMtMyIg ZD0iTTE2LjMyLDUxLjQ1di0xM0gyMy42VjUwYzAsMS4zNy0uMTMsMS41LTEuNSwxLjVaIi8+PHBh dGggY2xhc3M9ImNscy00IiBkPSJNMjMuMSwzOVY1MGEzLjI4LDMuMjgsMCwwLDEtLjA4LjksMi4x OCwyLjE4LDAsMCwxLS45Mi4xSDE2LjgyVjM5SDIzLjFtMS0xSDE1LjgyVjUySDIyLjFjMS42NSww LDItLjM1LDItMlYzOFoiLz48bGluZSBjbGFzcz0iY2xzLTgiIHgxPSIxNi4wOCIgeTE9IjQ0Ljgi IHgyPSIyMy41NyIgeTI9IjQ0LjgiLz48bGluZSBjbGFzcz0iY2xzLTgiIHgxPSI5LjA2IiB5MT0i NDQuOCIgeDI9IjE1LjgiIHkyPSI0NC44Ii8+PHJlY3QgY2xhc3M9ImNscy0xIiB4PSIxNi4zMiIg eT0iMjUuNDMiIHdpZHRoPSI3LjI4IiBoZWlnaHQ9IjEzIi8+PHBhdGggY2xhc3M9ImNscy0yIiBk PSJNMjMuMSwyNS45M3YxMkgxNi44MnYtMTJIMjMuMW0xLTFIMTUuODJ2MTRIMjQuMXYtMTRaIi8+ PGxpbmUgY2xhc3M9ImNscy05IiB4MT0iMTYuMDgiIHkxPSIzMS43OCIgeDI9IjIzLjU3IiB5Mj0i MzEuNzgiLz48cmVjdCBjbGFzcz0iY2xzLTEiIHg9IjkuMDMiIHk9IjI1LjQzIiB3aWR0aD0iNy4y OCIgaGVpZ2h0PSIxMyIvPjxwYXRoIGNsYXNzPSJjbHMtMiIgZD0iTTE1LjgxLDI1LjkzdjEySDku NTN2LTEyaDYuMjhtMS0xSDguNTN2MTRoOC4yOHYtMTRaIi8+PGxpbmUgY2xhc3M9ImNscy05IiB4 MT0iOS4wNiIgeTE9IjMxLjc4IiB4Mj0iMTUuOCIgeTI9IjMxLjc4Ii8+PHBvbHlnb24gY2xhc3M9 ImNscy0xMCIgcG9pbnRzPSIzNy4wMSAyMy4xMSAzMy44NyAyNC4xMiAzNS4xNiAyMC4zOSAzNy4w MSAyMy4xMSIvPjxsaW5lIGNsYXNzPSJjbHMtMTEiIHgxPSIzNC45MSIgeTE9IjIyLjU3IiB4Mj0i MjUiIHkyPSIxOS4wNCIvPjxwb2x5Z29uIGNsYXNzPSJjbHMtMTAiIHBvaW50cz0iMzcuMDEgNDAu ODcgMzMuODcgMzkuODcgMzUuMTYgNDMuNiAzNy4wMSA0MC44NyIvPjxsaW5lIGNsYXNzPSJjbHMt MTEiIHgxPSIzNC45MSIgeTE9IjQxLjQyIiB4Mj0iMjUiIHkyPSI0NC45NSIvPjxwb2x5Z29uIGNs YXNzPSJjbHMtMTAiIHBvaW50cz0iMzcuMDcgMzEuNzggMzQuNDMgMzMuNzYgMzQuNDMgMjkuOCAz Ny4wNyAzMS43OCIvPjxsaW5lIGNsYXNzPSJjbHMtMTEiIHgxPSIzNC44OSIgeTE9IjMxLjg4IiB4 Mj0iMjUiIHkyPSIzMS45MiIvPjwvZz48L3N2Zz4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxl CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9zdGF0aWMvanMvRXhwbGFpbi9pbWcvZXhfYXBwZW5k LnN2ZyBiL3dlYi9wZ2FkbWluL3N0YXRpYy9qcy9FeHBsYWluL2ltZy9leF9hcHBlbmQuc3ZnCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMC4uYzQzNTk3Yzg0Ci0tLSAvZGV2L251 bGwKKysrIGIvd2ViL3BnYWRtaW4vc3RhdGljL2pzL0V4cGxhaW4vaW1nL2V4X2FwcGVuZC5zdmcK QEAgLTAsMCArMSBAQAorPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZp ZXdCb3g9IjAgMCA2NCA2NCI+PGRlZnM+PHN0eWxlPi5jbHMtMXtmaWxsOiM1MjhkMTk7fS5jbHMt MSwuY2xzLTJ7c3Ryb2tlOiM1MjhkMTk7fS5jbHMtMSwuY2xzLTExLC5jbHMtMiwuY2xzLTh7c3Ry b2tlLWxpbmVqb2luOnJvdW5kO30uY2xzLTExLC5jbHMtMiwuY2xzLTh7ZmlsbDpub25lO30uY2xz LTJ7c3Ryb2tlLWxpbmVjYXA6cm91bmQ7c3Ryb2tlLXdpZHRoOjJweDt9LmNscy0ze2ZpbGw6I2Yw ZWNiNjt9LmNscy00e2ZpbGw6IzM1ODhjMTt9LmNscy01e2ZpbGw6I2FkZGZmMzt9LmNscy02e2Zp bGw6IzI5ODBiOTt9LmNscy03e29wYWNpdHk6MC43O30uY2xzLTh7c3Ryb2tlOiNjMThmMzU7fS5j bHMtOXtmaWxsOiNkM2Q0ZjM7fS5jbHMtMTB7ZmlsbDojNjY2YmQxO30uY2xzLTExe3N0cm9rZToj NjY2YmQxO308L3N0eWxlPjwvZGVmcz48dGl0bGU+ZXhfYXBwZW5kPC90aXRsZT48ZyBpZD0iZXhf YXBwZW5kIj48cG9seWdvbiBjbGFzcz0iY2xzLTEiIHBvaW50cz0iMjMuMDQgMzguMTEgMjUuNTcg NDEuNDkgMjAuNTEgNDEuNDkgMjMuMDQgMzguMTEiLz48bGluZSBjbGFzcz0iY2xzLTIiIHgxPSIy My4wNCIgeTE9IjQxLjQ5IiB4Mj0iMjMuMDQiIHkyPSI0NC40NyIvPjxwb2x5Z29uIGNsYXNzPSJj bHMtMSIgcG9pbnRzPSI0MC45OCAzOC4xMSA0My41IDQxLjQ5IDM4LjQ1IDQxLjQ5IDQwLjk4IDM4 LjExIi8+PGxpbmUgY2xhc3M9ImNscy0yIiB4MT0iNDAuOTciIHkxPSI0MS40OSIgeDI9IjQwLjk3 IiB5Mj0iNDQuNDciLz48cGF0aCBjbGFzcz0iY2xzLTMiIGQ9Ik04LDM0LjVjLTEuMzcsMC0xLjUt LjEzLTEuNS0xLjVWMTIuNWg1MVYzM2MwLDEuMzctLjEzLDEuNS0xLjUsMS41WiIvPjxwYXRoIGNs YXNzPSJjbHMtNCIgZD0iTTU3LDEzVjMzYTMuMjgsMy4yOCwwLDAsMS0uMDguOUEyLjE4LDIuMTgs MCwwLDEsNTYsMzRIOGEzLjI1LDMuMjUsMCwwLDEtLjktLjA4aDBBMi4xOCwyLjE4LDAsMCwxLDcs MzNWMTNINTdtMS0xSDZWMzNjMCwxLjY1LjM1LDIsMiwySDU2YzEuNjUsMCwyLS4zNSwyLTJWMTJa Ii8+PHBhdGggY2xhc3M9ImNscy01IiBkPSJNNDYuMzgsMTIuNXYtNkg1NmMxLjM3LDAsMS41LjEz LDEuNSwxLjV2NC41WiIvPjxwYXRoIGNsYXNzPSJjbHMtNiIgZD0iTTU2LDdhMy4yNSwzLjI1LDAs MCwxLC45LjA4aDBBMi4xOCwyLjE4LDAsMCwxLDU3LDh2NEg0Ni44OFY3SDU2bTAtMUg0NS44OHY3 SDU4VjhjMC0xLjY1LS4zNS0yLTItMloiLz48cGF0aCBjbGFzcz0iY2xzLTUiIGQ9Ik02LjUyLDEy LjVWOGMwLTEuMzcuMTMtMS41LDEuNS0xLjVIMTcuNnY2WiIvPjxwYXRoIGNsYXNzPSJjbHMtNiIg ZD0iTTE3LjEsN3Y1SDdWOGEzLjI4LDMuMjgsMCwwLDEsLjA4LS45QTIuMTgsMi4xOCwwLDAsMSw4 LDdIMTcuMW0xLTFIOEM2LjM3LDYsNiw2LjM1LDYsOHY1SDE4LjFWNloiLz48cmVjdCBjbGFzcz0i Y2xzLTUiIHg9IjM2LjgyIiB5PSI2LjUiIHdpZHRoPSI5LjU2IiBoZWlnaHQ9IjYiLz48cGF0aCBj bGFzcz0iY2xzLTYiIGQ9Ik00NS44OCw3djVIMzcuMzFWN2g4LjU2bTEtMUgzNi4zMnY3SDQ2Ljg4 VjZaIi8+PHJlY3QgY2xhc3M9ImNscy01IiB4PSIyNy4yNSIgeT0iNi41IiB3aWR0aD0iOS41NiIg aGVpZ2h0PSI2Ii8+PHBhdGggY2xhc3M9ImNscy02IiBkPSJNMzYuMzIsN3Y1SDI3Ljc1VjdoOC41 Nm0xLTFIMjYuNzZ2N0gzNy4zMlY2WiIvPjxyZWN0IGNsYXNzPSJjbHMtNSIgeD0iMTcuNjIiIHk9 IjYuNSIgd2lkdGg9IjkuNjIiIGhlaWdodD0iNiIvPjxwYXRoIGNsYXNzPSJjbHMtNiIgZD0iTTI2 Ljc0LDd2NUgxOC4xMlY3aDguNjFtMS0xSDE3LjEzdjdIMjcuNzRWNloiLz48ZyBjbGFzcz0iY2xz LTciPjxsaW5lIGNsYXNzPSJjbHMtOCIgeDE9IjE3LjYxIiB5MT0iMzQiIHgyPSIxNy42MSIgeTI9 IjEzIi8+PGxpbmUgY2xhc3M9ImNscy04IiB4MT0iMzYuOCIgeTE9IjM0IiB4Mj0iMzYuOCIgeTI9 IjEzIi8+PGxpbmUgY2xhc3M9ImNscy04IiB4MT0iMjcuMjEiIHkxPSIzNCIgeDI9IjI3LjIxIiB5 Mj0iMTMiLz48bGluZSBjbGFzcz0iY2xzLTgiIHgxPSI0Ni4zOSIgeTE9IjM0IiB4Mj0iNDYuMzki IHkyPSIxMyIvPjxsaW5lIGNsYXNzPSJjbHMtOCIgeDE9IjciIHkxPSIxOS44NSIgeDI9IjU3LjI1 IiB5Mj0iMTkuODUiLz48bGluZSBjbGFzcz0iY2xzLTgiIHgxPSI3IiB5MT0iMjcuMjMiIHgyPSI1 Ny4yNSIgeTI9IjI3LjIzIi8+PC9nPjxyZWN0IGNsYXNzPSJjbHMtOSIgeD0iNi41MiIgeT0iNDgu NSIgd2lkdGg9IjUwLjk4IiBoZWlnaHQ9IjkiIHJ4PSIxLjUiIHJ5PSIxLjUiLz48cGF0aCBjbGFz cz0iY2xzLTEwIiBkPSJNNTYsNDlhMy4yNSwzLjI1LDAsMCwxLC45LjA4aDBBMi4xOCwyLjE4LDAs MCwxLDU3LDUwdjZhMy4yOCwzLjI4LDAsMCwxLS4wOC45QTIuMTgsMi4xOCwwLDAsMSw1Niw1N0g4 YTMuMjUsMy4yNSwwLDAsMS0uOS0uMDhoMEEyLjE4LDIuMTgsMCwwLDEsNyw1NlY1MGEzLjI4LDMu MjgsMCwwLDEsLjA4LS45QTIuMTgsMi4xOCwwLDAsMSw4LDQ5SDU2bTAtMUg4Yy0xLjY1LDAtMiwu MzUtMiwydjZjMCwxLjY1LjM1LDIsMiwySDU2YzEuNjUsMCwyLS4zNSwyLTJWNTBjMC0xLjY1LS4z NS0yLTItMloiLz48ZyBjbGFzcz0iY2xzLTciPjxsaW5lIGNsYXNzPSJjbHMtMTEiIHgxPSIxNy42 IiB5MT0iNTcuMDYiIHgyPSIxNy42IiB5Mj0iNDguODMiLz48bGluZSBjbGFzcz0iY2xzLTExIiB4 MT0iMjcuMiIgeTE9IjU3LjA2IiB4Mj0iMjcuMiIgeTI9IjQ4LjgzIi8+PGxpbmUgY2xhc3M9ImNs cy0xMSIgeDE9IjM2LjgiIHkxPSI1Ny4wNiIgeDI9IjM2LjgiIHkyPSI0OC44MyIvPjxsaW5lIGNs YXNzPSJjbHMtMTEiIHgxPSI0Ni40IiB5MT0iNTcuMDYiIHgyPSI0Ni40IiB5Mj0iNDguODMiLz48 L2c+PC9nPjwvc3ZnPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3dl Yi9wZ2FkbWluL3N0YXRpYy9qcy9FeHBsYWluL2ltZy9leF9ibXBfYW5kLnN2ZyBiL3dlYi9wZ2Fk bWluL3N0YXRpYy9qcy9FeHBsYWluL2ltZy9leF9ibXBfYW5kLnN2ZwpuZXcgZmlsZSBtb2RlIDEw MDY0NAppbmRleCAwMDAwMDAwMDAuLjQzOTMxNzhlYgotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9w Z2FkbWluL3N0YXRpYy9qcy9FeHBsYWluL2ltZy9leF9ibXBfYW5kLnN2ZwpAQCAtMCwwICsxIEBA Cis8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDY0 IDY0Ij48ZGVmcz48c3R5bGU+LmNscy0xLC5jbHMtOHtmaWxsOiMzNDQ5NWU7fS5jbHMtMntmaWxs OiNkM2Q0ZjM7fS5jbHMtM3tmaWxsOiM2NjZiZDE7fS5jbHMtNHtmaWxsOiNhZGRmZjM7fS5jbHMt NXtmaWxsOiMyOTgwYjk7fS5jbHMtNntvcGFjaXR5OjAuNzt9LmNscy0xMSwuY2xzLTd7ZmlsbDpu b25lO3N0cm9rZS1saW5lam9pbjpyb3VuZDt9LmNscy03e3N0cm9rZTojNjY2YmQxO30uY2xzLTh7 Zm9udC1zaXplOjZweDtmb250LWZhbWlseTpIZWx2ZXRpY2EtQm9sZCwgSGVsdmV0aWNhO2ZvbnQt d2VpZ2h0OjcwMDt9LmNscy05e2ZpbGw6I2YwZWNiNjt9LmNscy0xMHtmaWxsOiNjMThmMzU7fS5j bHMtMTF7c3Ryb2tlOiNjMThmMzU7fTwvc3R5bGU+PC9kZWZzPjx0aXRsZT5leF9ibXBfYW5kPC90 aXRsZT48ZyBpZD0iZXhfYm1wX2FuZCI+PHBhdGggY2xhc3M9ImNscy0xIiBkPSJNMjYsMjguODlh NS4yLDUuMiwwLDAsMS0uNDYtMi4wNyw0LjYyLDQuNjIsMCwwLDEsMS40LTMuNDVBNS4xNCw1LjE0 LDAsMCwxLDMwLjY5LDIyYTQuNjgsNC42OCwwLDAsMSwzLjQ5LDEuMjcsNC4xOSw0LjE5LDAsMCwx LDEuMjYsMyw1LjQ3LDUuNDcsMCwwLDEtMS4zLDMuNjJBMTIuMjQsMTIuMjQsMCwwLDEsMzEuNiwz MmwzLjkxLDQuNjlRMzUuOSwzNS41NiwzNiwzNXQuMzEtMS42MmgyLjVhMTYsMTYsMCwwLDEtMSw0 cS0uNzQsMS45LS43NCwxLjUzbDMuODEsNC42NUgzNy41NWwtMi0yLjQ2YTEwLjU1LDEwLjU1LDAs MCwxLTIuMTksMS45LDcuNTUsNy41NSwwLDAsMS00LDEuMDVRMjYsNDQsMjQuNDksNDIuMTlBNi4x OCw2LjE4LDAsMCwxLDIzLDM4LjExLDUuODksNS44OSwwLDAsMSwyNC40NSwzNGExNi4xNiwxNi4x NiwwLDAsMSwzLjM3LTIuNDlBMTEuMDYsMTEuMDYsMCwwLDEsMjYsMjguODlabTYuMzMsMTJhNi4w OSw2LjA5LDAsMCwwLDEuNzktMS42N2wtNC44NS01LjkzYTE0Ljc0LDE0Ljc0LDAsMCwwLTIuNjgs Mi4xMSwzLjkzLDMuOTMsMCwwLDAtMSwyLjY4LDMuMDgsMy4wOCwwLDAsMCwxLjI1LDIuNjQsNC4z OSw0LjM5LDAsMCwwLDIuNjYuOTJBNS4wNSw1LjA1LDAsMCwwLDMyLjMzLDQwLjkzWm0tLjIxLTEy LjJBMy4zMSwzLjMxLDAsMCwwLDMzLDI2LjUzYTIuMzUsMi4zNSwwLDAsMC0uNjMtMS42NCwyLjE3 LDIuMTcsMCwwLDAtMS42OS0uNjksMi4yNiwyLjI2LDAsMCwwLTIuNTYsMi4zLDMuMjcsMy4yNyww LDAsMCwuNDksMS43MSwxNS44MywxNS44MywwLDAsMCwxLjY0LDIuMTJBMTEuMDgsMTEuMDgsMCww LDAsMzIuMTIsMjguNzRaIi8+PHJlY3QgY2xhc3M9ImNscy0yIiB4PSI2LjU0IiB5PSI3LjUiIHdp ZHRoPSIxMS45OCIgaGVpZ2h0PSI0OSIgcng9IjEuNSIgcnk9IjEuNSIvPjxwYXRoIGNsYXNzPSJj bHMtMyIgZD0iTTE3LDhhMy4yNSwzLjI1LDAsMCwxLC45LjA4aDBBMi4xOCwyLjE4LDAsMCwxLDE4 LDlWNTVhMy4yOCwzLjI4LDAsMCwxLS4wOC45QTIuMTgsMi4xOCwwLDAsMSwxNyw1Nkg4YTMuMjUs My4yNSwwLDAsMS0uOS0uMDhoMEEyLjE4LDIuMTgsMCwwLDEsNyw1NVY5YTMuMjgsMy4yOCwwLDAs MSwuMDgtLjlBMi4xOCwyLjE4LDAsMCwxLDgsOGg5bTAtMUg4QzYuMzksNyw2LDcuMzUsNiw5VjU1 YzAsMS42NS4zNSwyLDIsMmg5YzEuNjUsMCwyLS4zNSwyLTJWOWMwLTEuNjUtLjM1LTItMi0yWiIv PjxwYXRoIGNsYXNzPSJjbHMtNCIgZD0iTTYuNTQsMTUuNVY5YzAtMS4zNy4xMy0xLjUsMS41LTEu NWg5YzEuMzcsMCwxLjUuMTMsMS41LDEuNXY2LjVaIi8+PHBhdGggY2xhc3M9ImNscy01IiBkPSJN MTcsOGEzLjI1LDMuMjUsMCwwLDEsLjkuMDhoMEEyLjE4LDIuMTgsMCwwLDEsMTgsOXY2SDdWOWEz LjI4LDMuMjgsMCwwLDEsLjA4LS45QTIuMTgsMi4xOCwwLDAsMSw4LDhoOW0wLTFIOEM2LjM5LDcs Niw3LjM1LDYsOXY3SDE5VjljMC0xLjY1LS4zNS0yLTItMloiLz48ZyBjbGFzcz0iY2xzLTYiPjxs aW5lIGNsYXNzPSJjbHMtNyIgeDE9IjcuMDUiIHkxPSIyMy43NCIgeDI9IjE4LjAyIiB5Mj0iMjMu NzQiLz48bGluZSBjbGFzcz0iY2xzLTciIHgxPSI3LjA1IiB5MT0iMzEuNDkiIHgyPSIxOC4wMiIg eTI9IjMxLjQ5Ii8+PGxpbmUgY2xhc3M9ImNscy03IiB4MT0iNy4wNSIgeTE9IjM5LjIzIiB4Mj0i MTguMDIiIHkyPSIzOS4yMyIvPjxsaW5lIGNsYXNzPSJjbHMtNyIgeDE9IjcuMDUiIHkxPSI0Ni45 NyIgeDI9IjE4LjAyIiB5Mj0iNDYuOTciLz48L2c+PHRleHQgY2xhc3M9ImNscy04IiB0cmFuc2Zv cm09InRyYW5zbGF0ZSgxMC44NyAyMS44MykiPjE8L3RleHQ+PHRleHQgY2xhc3M9ImNscy04IiB0 cmFuc2Zvcm09InRyYW5zbGF0ZSgxMC44NyAyOS43NikiPjA8L3RleHQ+PHRleHQgY2xhc3M9ImNs cy04IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxMC44NyA0NS4yNCkiPjE8L3RleHQ+PHRleHQgY2xh c3M9ImNscy04IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxMC44NyAzNy42MikiPjA8L3RleHQ+PHRl eHQgY2xhc3M9ImNscy04IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxMC44NyA1My4zMykiPjA8L3Rl eHQ+PHJlY3QgY2xhc3M9ImNscy05IiB4PSI0NS40NyIgeT0iNy41IiB3aWR0aD0iMTEuOTgiIGhl aWdodD0iNDkiIHJ4PSIxLjUiIHJ5PSIxLjUiLz48cGF0aCBjbGFzcz0iY2xzLTEwIiBkPSJNNTYs OGEzLjI1LDMuMjUsMCwwLDEsLjkuMDhoMEEyLjE4LDIuMTgsMCwwLDEsNTcsOVY1NWEzLjI4LDMu MjgsMCwwLDEtLjA4LjlBMi4xOCwyLjE4LDAsMCwxLDU2LDU2SDQ3YTMuMjUsMy4yNSwwLDAsMS0u OS0uMDhoMEEyLjE4LDIuMTgsMCwwLDEsNDYsNTVWOUEzLjI4LDMuMjgsMCwwLDEsNDYsOC4xLDIu MTgsMi4xOCwwLDAsMSw0Nyw4aDltMC0xSDQ3Yy0xLjY1LDAtMiwuMzUtMiwyVjU1YzAsMS42NS4z NSwyLDIsMmg5YzEuNjUsMCwyLS4zNSwyLTJWOWMwLTEuNjUtLjM1LTItMi0yWiIvPjxnIGNsYXNz PSJjbHMtNiI+PGxpbmUgY2xhc3M9ImNscy0xMSIgeDE9IjQ1Ljk4IiB5MT0iMjMuNzQiIHgyPSI1 Ni45NSIgeTI9IjIzLjc0Ii8+PGxpbmUgY2xhc3M9ImNscy0xMSIgeDE9IjQ1Ljk4IiB5MT0iMzEu NDkiIHgyPSI1Ni45NSIgeTI9IjMxLjQ5Ii8+PGxpbmUgY2xhc3M9ImNscy0xMSIgeDE9IjQ1Ljk4 IiB5MT0iMzkuMjMiIHgyPSI1Ni45NSIgeTI9IjM5LjIzIi8+PGxpbmUgY2xhc3M9ImNscy0xMSIg eDE9IjQ1Ljk4IiB5MT0iNDYuOTciIHgyPSI1Ni45NSIgeTI9IjQ2Ljk3Ii8+PC9nPjx0ZXh0IGNs YXNzPSJjbHMtOCIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoNDkuOCAyMS44MykiPjA8L3RleHQ+PHRl eHQgY2xhc3M9ImNscy04IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSg0OS44IDI5Ljc2KSI+MDwvdGV4 dD48dGV4dCBjbGFzcz0iY2xzLTgiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDQ5LjggNDUuMjQpIj4x PC90ZXh0Pjx0ZXh0IGNsYXNzPSJjbHMtOCIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoNDkuOCAzNy42 MikiPjE8L3RleHQ+PHRleHQgY2xhc3M9ImNscy04IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSg0OS44 IDUzLjMzKSI+MTwvdGV4dD48cGF0aCBjbGFzcz0iY2xzLTQiIGQ9Ik00NS40NywxNS41VjljMC0x LjM3LjEzLTEuNSwxLjUtMS41aDljMS4zNywwLDEuNS4xMywxLjUsMS41djYuNVoiLz48cGF0aCBj bGFzcz0iY2xzLTUiIGQ9Ik01Niw4YTMuMjUsMy4yNSwwLDAsMSwuOS4wOGgwQTIuMTgsMi4xOCww LDAsMSw1Nyw5djZINDZWOUEzLjI4LDMuMjgsMCwwLDEsNDYsOC4xLDIuMTgsMi4xOCwwLDAsMSw0 Nyw4aDltMC0xSDQ3Yy0xLjY1LDAtMiwuMzUtMiwydjdINThWOWMwLTEuNjUtLjM1LTItMi0yWiIv PjwvZz48L3N2Zz4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS93ZWIv cGdhZG1pbi9zdGF0aWMvanMvRXhwbGFpbi9pbWcvZXhfYm1wX2hlYXAuc3ZnIGIvd2ViL3BnYWRt aW4vc3RhdGljL2pzL0V4cGxhaW4vaW1nL2V4X2JtcF9oZWFwLnN2ZwpuZXcgZmlsZSBtb2RlIDEw MDY0NAppbmRleCAwMDAwMDAwMDAuLjhlZWQ1MTYxMAotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9w Z2FkbWluL3N0YXRpYy9qcy9FeHBsYWluL2ltZy9leF9ibXBfaGVhcC5zdmcKQEAgLTAsMCArMSBA QAorPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2 NCA2NCI+PGRlZnM+PHN0eWxlPi5jbHMtMXtmaWxsOiNmMGVjYjY7fS5jbHMtMntmaWxsOiNjMThm MzU7fS5jbHMtM3tvcGFjaXR5OjAuNzt9LmNscy0xMCwuY2xzLTEzLC5jbHMtMTUsLmNscy00e2Zp bGw6bm9uZTt9LmNscy00e3N0cm9rZTojYzE4ZjM1O30uY2xzLTEwLC5jbHMtMTIsLmNscy0xMywu Y2xzLTE0LC5jbHMtMTUsLmNscy00e3N0cm9rZS1saW5lam9pbjpyb3VuZDt9LmNscy01e2ZpbGw6 I2FkZGZmMzt9LmNscy0xNCwuY2xzLTZ7ZmlsbDojMjk4MGI5O30uY2xzLTExLC5jbHMtN3tmaWxs OiMzNDQ5NWU7fS5jbHMtOHtmaWxsOiNkM2Q0ZjM7fS5jbHMtOXtmaWxsOiM2NjZiZDE7fS5jbHMt MTB7c3Ryb2tlOiM2NjZiZDE7fS5jbHMtMTF7Zm9udC1zaXplOjZweDtmb250LWZhbWlseTpIZWx2 ZXRpY2EtQm9sZCwgSGVsdmV0aWNhO2ZvbnQtd2VpZ2h0OjcwMDt9LmNscy0xMntmaWxsOiM1Mjhk MTk7fS5jbHMtMTIsLmNscy0xM3tzdHJva2U6IzUyOGQxOTt9LmNscy0xMywuY2xzLTE1e3N0cm9r ZS1saW5lY2FwOnJvdW5kO3N0cm9rZS13aWR0aDoycHg7fS5jbHMtMTQsLmNscy0xNXtzdHJva2U6 IzI5ODBiOTt9PC9zdHlsZT48L2RlZnM+PHRpdGxlPmV4X2JtcF9oZWFwPC90aXRsZT48ZyBpZD0i ZXhfYm1wX2hlYXAiPjxwYXRoIGNsYXNzPSJjbHMtMSIgZD0iTTM3LDU2LjVjLTEuMzcsMC0xLjUt LjEzLTEuNS0xLjVWOWMwLS45LjQzLTEuNSwyLjUtMS41SDU1YzIuMDcsMCwyLjUuNiwyLjUsMS41 VjU1YzAsMS4zNy0uMTMsMS41LTEuNSwxLjVaIi8+PHBhdGggY2xhc3M9ImNscy0yIiBkPSJNNTUs OGMyLDAsMiwuNTUsMiwxVjU1YTMuMjgsMy4yOCwwLDAsMS0uMDguOUEyLjE4LDIuMTgsMCwwLDEs NTYsNTZIMzdhMy4yNSwzLjI1LDAsMCwxLS45LS4wOGgwQTIuMTcsMi4xNywwLDAsMSwzNiw1NVY5 YzAtLjQ1LDAtMSwyLTFINTVtMC0xSDM4Yy0xLjY1LDAtMywuMzUtMywyVjU1YzAsMS42NS4zNSwy LDIsMkg1NmMxLjY1LDAsMi0uMzUsMi0yVjljMC0xLjY1LTEuMzUtMi0zLTJaIi8+PGcgY2xhc3M9 ImNscy0zIj48bGluZSBjbGFzcz0iY2xzLTQiIHgxPSIzNS45OCIgeTE9IjIzLjc0IiB4Mj0iNTYu OTQiIHkyPSIyMy43NCIvPjxsaW5lIGNsYXNzPSJjbHMtNCIgeDE9IjM1Ljk4IiB5MT0iMzEuNDki IHgyPSI1Ni45NCIgeTI9IjMxLjQ5Ii8+PGxpbmUgY2xhc3M9ImNscy00IiB4MT0iMzUuOTgiIHkx PSIzOS4yMyIgeDI9IjU2Ljk0IiB5Mj0iMzkuMjMiLz48bGluZSBjbGFzcz0iY2xzLTQiIHgxPSIz NS45OCIgeTE9IjQ2Ljk3IiB4Mj0iNTYuOTQiIHkyPSI0Ni45NyIvPjwvZz48ZyBjbGFzcz0iY2xz LTMiPjxsaW5lIGNsYXNzPSJjbHMtNCIgeDE9IjUwLjA0IiB5MT0iMTYiIHgyPSI1MC4wNCIgeTI9 IjU2LjExIi8+PGxpbmUgY2xhc3M9ImNscy00IiB4MT0iNDMuMDciIHkxPSIxNiIgeDI9IjQzLjA3 IiB5Mj0iNTYuMTEiLz48L2c+PHBhdGggY2xhc3M9ImNscy01IiBkPSJNMzUuNDcsMTUuNVY5YzAt MS4zNy4xMy0xLjUsMS41LTEuNUg1NmMxLjM3LDAsMS41LjEzLDEuNSwxLjV2Ni41WiIvPjxwYXRo IGNsYXNzPSJjbHMtNiIgZD0iTTU2LDhhMy4yNSwzLjI1LDAsMCwxLC45LjA4aDBBMi4xOCwyLjE4 LDAsMCwxLDU3LDl2NkgzNlY5QTMuMjgsMy4yOCwwLDAsMSwzNiw4LjEsMi4xOCwyLjE4LDAsMCwx LDM3LDhINTZtMC0xSDM3Yy0xLjY1LDAtMiwuMzUtMiwydjdINThWOWMwLTEuNjUtLjM1LTItMi0y WiIvPjxwYXRoIGNsYXNzPSJjbHMtNyIgZD0iTTM2LjcxLDI1bDUuMTIuMDh2NS4zOWwtNS4xMi0u MDhaIi8+PHBhdGggY2xhc3M9ImNscy03IiBkPSJNNTEuMDcsNDAuNDhsNS4xMi4wOFY0NmwtNS4x Mi0uMDhaIi8+PHBhdGggY2xhc3M9ImNscy04IiBkPSJNOCw1Ni41Yy0xLjM3LDAtMS41LS4xMy0x LjUtMS41VjEwYzAtMi4wNy42LTIuNSwxLjUtMi41aDljLjksMCwxLjUuNDMsMS41LDIuNVY1NWMw LDEuMzctLjEzLDEuNS0xLjUsMS41WiIvPjxwYXRoIGNsYXNzPSJjbHMtOSIgZD0iTTE3LDhjLjQ1 LDAsMSwwLDEsMlY1NWEzLjI4LDMuMjgsMCwwLDEtLjA4LjlBMi4xOCwyLjE4LDAsMCwxLDE3LDU2 SDhhMy4yNSwzLjI1LDAsMCwxLS45LS4wOGgwQTIuMTgsMi4xOCwwLDAsMSw3LDU1VjEwYzAtMiwu NTUtMiwxLTJoOW0wLTFIOEM2LjM1LDcsNiw4LjM1LDYsMTBWNTVjMCwxLjY1LjM1LDIsMiwyaDlj MS42NSwwLDItLjM1LDItMlYxMGMwLTEuNjUtLjM1LTMtMi0zWiIvPjxwYXRoIGNsYXNzPSJjbHMt NSIgZD0iTTYuNSwxNS41VjljMC0xLjM3LjEzLTEuNSwxLjUtMS41aDljMS4zNywwLDEuNS4xMywx LjUsMS41djYuNVoiLz48cGF0aCBjbGFzcz0iY2xzLTYiIGQ9Ik0xNyw4YTMuMjUsMy4yNSwwLDAs MSwuOS4wOGgwQTIuMTcsMi4xNywwLDAsMSwxOCw5djZIN1Y5YTMuMjgsMy4yOCwwLDAsMSwuMDgt LjlBMi4xOCwyLjE4LDAsMCwxLDgsOGg5bTAtMUg4QzYuMzUsNyw2LDcuMzUsNiw5djdIMTlWOWMw LTEuNjUtLjM1LTItMi0yWiIvPjxnIGNsYXNzPSJjbHMtMyI+PGxpbmUgY2xhc3M9ImNscy0xMCIg eDE9IjcuMDEiIHkxPSIyMy43NCIgeDI9IjE3Ljk3IiB5Mj0iMjMuNzQiLz48bGluZSBjbGFzcz0i Y2xzLTEwIiB4MT0iNy4wMSIgeTE9IjMxLjQ5IiB4Mj0iMTcuOTciIHkyPSIzMS40OSIvPjxsaW5l IGNsYXNzPSJjbHMtMTAiIHgxPSI3LjAxIiB5MT0iMzkuMjMiIHgyPSIxNy45NyIgeTI9IjM5LjIz Ii8+PGxpbmUgY2xhc3M9ImNscy0xMCIgeDE9IjcuMDEiIHkxPSI0Ni45NyIgeDI9IjE3Ljk3IiB5 Mj0iNDYuOTciLz48L2c+PHRleHQgY2xhc3M9ImNscy0xMSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUo MTAuODIgMjEuODMpIj4xPC90ZXh0Pjx0ZXh0IGNsYXNzPSJjbHMtMTEiIHRyYW5zZm9ybT0idHJh bnNsYXRlKDEwLjgyIDI5Ljc2KSI+MDwvdGV4dD48dGV4dCBjbGFzcz0iY2xzLTExIiB0cmFuc2Zv cm09InRyYW5zbGF0ZSgxMC44MiA0NS4yNCkiPjE8L3RleHQ+PHRleHQgY2xhc3M9ImNscy0xMSIg dHJhbnNmb3JtPSJ0cmFuc2xhdGUoMTAuODIgMzcuNjIpIj4wPC90ZXh0Pjx0ZXh0IGNsYXNzPSJj bHMtMTEiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDEwLjgyIDUzLjMzKSI+MDwvdGV4dD48cG9seWdv biBjbGFzcz0iY2xzLTEyIiBwb2ludHM9IjE3LjgxIDI3LjQ5IDIxLjE5IDI0Ljk2IDIxLjE5IDMw LjAyIDE3LjgxIDI3LjQ5Ii8+PGxpbmUgY2xhc3M9ImNscy0xMyIgeDE9IjIxLjE5IiB5MT0iMjcu NDkiIHgyPSIzNi4xNiIgeTI9IjI3LjQ5Ii8+PHBvbHlnb24gY2xhc3M9ImNscy0xMiIgcG9pbnRz PSIxNy44MSA0My4wMSAyMS4xOSA0MC40OCAyMS4xOSA0NS41NCAxNy44MSA0My4wMSIvPjxsaW5l IGNsYXNzPSJjbHMtMTMiIHgxPSIyMS4xOSIgeTE9IjQzLjAxIiB4Mj0iNTAuMDQiIHkyPSI0My4w MSIvPjxwb2x5Z29uIGNsYXNzPSJjbHMtMTQiIHBvaW50cz0iMzAuNDcgNTEuNjggMjcuOTQgNDgu MyAzMyA0OC4zIDMwLjQ3IDUxLjY4Ii8+PGxpbmUgY2xhc3M9ImNscy0xNSIgeDE9IjMwLjQ3IiB5 MT0iNDguMyIgeDI9IjMwLjQ3IiB5Mj0iMTcuMzIiLz48L2c+PC9zdmc+ClwgTm8gbmV3bGluZSBh dCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vc3RhdGljL2pzL0V4cGxhaW4v aW1nL2V4X2JtcF9pbmRleC5zdmcgYi93ZWIvcGdhZG1pbi9zdGF0aWMvanMvRXhwbGFpbi9pbWcv ZXhfYm1wX2luZGV4LnN2ZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAuLjhl NzhmNWMwYQotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL3N0YXRpYy9qcy9FeHBsYWlu L2ltZy9leF9ibXBfaW5kZXguc3ZnCkBAIC0wLDAgKzEgQEAKKzxzdmcgeG1sbnM9Imh0dHA6Ly93 d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgNjQgNjQiPjxkZWZzPjxzdHlsZT4uY2xz LTF7ZmlsbDojZjBlY2I2O30uY2xzLTJ7ZmlsbDojYzE4ZjM1O30uY2xzLTN7b3BhY2l0eTowLjc7 fS5jbHMtMTQsLmNscy00LC5jbHMtOXtmaWxsOm5vbmU7fS5jbHMtNHtzdHJva2U6I2MxOGYzNTt9 LmNscy0xMywuY2xzLTE0LC5jbHMtNCwuY2xzLTgsLmNscy05e3N0cm9rZS1saW5lam9pbjpyb3Vu ZDt9LmNscy01e2ZpbGw6I2FkZGZmMzt9LmNscy02e2ZpbGw6IzI5ODBiOTt9LmNscy0xNSwuY2xz LTcsLmNscy04e2ZpbGw6IzM0NDk1ZTt9LmNscy04LC5jbHMtOXtzdHJva2U6IzM0NDk1ZTt9LmNs cy0xNCwuY2xzLTl7c3Ryb2tlLWxpbmVjYXA6cm91bmQ7c3Ryb2tlLXdpZHRoOjJweDt9LmNscy0x MCwuY2xzLTEye2ZpbGw6I2QzZDRmMzt9LmNscy0xMXtmaWxsOiM2NjZiZDE7fS5jbHMtMTJ7c3Ry b2tlOiM2NjZiZDE7c3Ryb2tlLW1pdGVybGltaXQ6MTA7fS5jbHMtMTN7ZmlsbDojNTI4ZDE5O30u Y2xzLTEzLC5jbHMtMTR7c3Ryb2tlOiM1MjhkMTk7fS5jbHMtMTV7Zm9udC1zaXplOjZweDtmb250 LWZhbWlseTpIZWx2ZXRpY2EtQm9sZCwgSGVsdmV0aWNhO2ZvbnQtd2VpZ2h0OjcwMDt9PC9zdHls ZT48L2RlZnM+PHRpdGxlPmV4X2JtcF9pbmRleDwvdGl0bGU+PGcgaWQ9ImV4X2JtcF9pbmRleCI+ PHBhdGggY2xhc3M9ImNscy0xIiBkPSJNMzcsNTQuNWMtMS4zNywwLTEuNS0uMTMtMS41LTEuNVYx Ni41aDIyVjUzYzAsMS4zNy0uMTMsMS41LTEuNSwxLjVaIi8+PHBhdGggY2xhc3M9ImNscy0yIiBk PSJNNTcsMTdWNTNhMy4yOCwzLjI4LDAsMCwxLS4wOC45QTIuMTgsMi4xOCwwLDAsMSw1Niw1NEgz N2EzLjI1LDMuMjUsMCwwLDEtLjktLjA4aDBBMi4xNywyLjE3LDAsMCwxLDM2LDUzVjE3SDU3bTEt MUgzNVY1M2MwLDEuNjUuMzUsMiwyLDJINTZjMS42NSwwLDItLjM1LDItMlYxNloiLz48ZyBjbGFz cz0iY2xzLTMiPjxsaW5lIGNsYXNzPSJjbHMtNCIgeDE9IjM2LjAzIiB5MT0iMjMuNzQiIHgyPSI1 Ni45OSIgeTI9IjIzLjc0Ii8+PGxpbmUgY2xhc3M9ImNscy00IiB4MT0iMzYuMDMiIHkxPSIzMS40 OSIgeDI9IjU2Ljk5IiB5Mj0iMzEuNDkiLz48bGluZSBjbGFzcz0iY2xzLTQiIHgxPSIzNi4wMyIg eTE9IjM5LjIzIiB4Mj0iNTYuOTkiIHkyPSIzOS4yMyIvPjxsaW5lIGNsYXNzPSJjbHMtNCIgeDE9 IjM2LjAzIiB5MT0iNDYuOTciIHgyPSI1Ni45OSIgeTI9IjQ2Ljk3Ii8+PC9nPjxnIGNsYXNzPSJj bHMtMyI+PGxpbmUgY2xhc3M9ImNscy00IiB4MT0iNTAuMDgiIHkxPSIxNyIgeDI9IjUwLjA4IiB5 Mj0iNTQuMTEiLz48bGluZSBjbGFzcz0iY2xzLTQiIHgxPSI0My4xMiIgeTE9IjE3IiB4Mj0iNDMu MTIiIHkyPSI1NC4xMSIvPjwvZz48cGF0aCBjbGFzcz0iY2xzLTUiIGQ9Ik0zNS41MiwxNi41VjEw YzAtLjkuNDMtMS41LDIuNS0xLjVINTZjMS4zNywwLDEuNS4xMywxLjUsMS41djYuNVoiLz48cGF0 aCBjbGFzcz0iY2xzLTYiIGQ9Ik01Niw5YTMuMjUsMy4yNSwwLDAsMSwuOS4wOGgwQTIuMTgsMi4x OCwwLDAsMSw1NywxMHY2SDM2VjEwYzAtLjQ1LDAtMSwyLTFINTZtMC0xSDM4Yy0xLjY1LDAtMywu MzUtMywydjdINThWMTBjMC0xLjY1LS4zNS0yLTItMloiLz48cGF0aCBjbGFzcz0iY2xzLTciIGQ9 Ik0zNi43NiwyNWw1LjEyLjA4djUuMzlsLTUuMTItLjA4WiIvPjxwYXRoIGNsYXNzPSJjbHMtNyIg ZD0iTTM2Ljc2LDQwLjQ4bDUuMTIuMDhWNDZsLTUuMTItLjA4WiIvPjxwb2x5Z29uIGNsYXNzPSJj bHMtOCIgcG9pbnRzPSIzMC4yIDUxLjY4IDI3LjY4IDQ4LjMgMzIuNzMgNDguMyAzMC4yIDUxLjY4 Ii8+PGxpbmUgY2xhc3M9ImNscy05IiB4MT0iMzAuMiIgeTE9IjQ4LjMiIHgyPSIzMC4yIiB5Mj0i MTcuMzIiLz48cGF0aCBjbGFzcz0iY2xzLTEwIiBkPSJNMTAsNTQuNWMtMS4zNywwLTEuNS0uMTMt MS41LTEuNVYxNi41aDEyVjUzYzAsMS4zNy0uMTMsMS41LTEuNSwxLjVaIi8+PHBhdGggY2xhc3M9 ImNscy0xMSIgZD0iTTIwLDE3VjUzYTMuMjgsMy4yOCwwLDAsMS0uMDguOUEyLjE4LDIuMTgsMCww LDEsMTksNTRIMTBhMy4yNSwzLjI1LDAsMCwxLS45LS4wOGgwQTIuMTgsMi4xOCwwLDAsMSw5LDUz VjE3SDIwbTEtMUg4VjUzYzAsMS42NS4zNSwyLDIsMmg5YzEuNjUsMCwyLS4zNSwyLTJWMTZaIi8+ PHBhdGggY2xhc3M9ImNscy01IiBkPSJNOC41LDE2LjVWMTBjMC0xLjM3LjEzLTEuNSwxLjUtMS41 aDljMS4zNywwLDEuNS4xMywxLjUsMS41djYuNVoiLz48cGF0aCBjbGFzcz0iY2xzLTYiIGQ9Ik0x OSw5YTMuMjUsMy4yNSwwLDAsMSwuOS4wOGgwQTIuMTcsMi4xNywwLDAsMSwyMCwxMHY2SDlWMTBh My4yOCwzLjI4LDAsMCwxLC4wOC0uOUEyLjE4LDIuMTgsMCwwLDEsMTAsOWg5bTAtMUgxMGMtMS42 NSwwLTIsLjM1LTIsMnY3SDIxVjEwYzAtMS42NS0uMzUtMi0yLTJaIi8+PGxpbmUgY2xhc3M9ImNs cy0xMiIgeDE9IjkiIHkxPSIyMy43NCIgeDI9IjE5Ljk5IiB5Mj0iMjMuNzQiLz48bGluZSBjbGFz cz0iY2xzLTEyIiB4MT0iOSIgeTE9IjMxLjQ5IiB4Mj0iMTkuOTkiIHkyPSIzMS40OSIvPjxsaW5l IGNsYXNzPSJjbHMtMTIiIHgxPSI5IiB5MT0iMzkuMjMiIHgyPSIxOS45OSIgeTI9IjM5LjIzIi8+ PGxpbmUgY2xhc3M9ImNscy0xMiIgeDE9IjkiIHkxPSI0Ni45OCIgeDI9IjE5Ljk5IiB5Mj0iNDYu OTgiLz48cG9seWdvbiBjbGFzcz0iY2xzLTEzIiBwb2ludHM9IjE3LjgxIDI3LjQ5IDIxLjE5IDI0 Ljk2IDIxLjE5IDMwLjAyIDE3LjgxIDI3LjQ5Ii8+PGxpbmUgY2xhc3M9ImNscy0xNCIgeDE9IjIx LjE5IiB5MT0iMjcuNDkiIHgyPSIzNi4xNiIgeTI9IjI3LjQ5Ii8+PHBvbHlnb24gY2xhc3M9ImNs cy0xMyIgcG9pbnRzPSIxNy44MSA0My4yMiAyMS4xOSA0MC42OSAyMS4xOSA0NS43NSAxNy44MSA0 My4yMiIvPjxsaW5lIGNsYXNzPSJjbHMtMTQiIHgxPSIyMS4xOSIgeTE9IjQzLjIyIiB4Mj0iMzYu MTYiIHkyPSI0My4yMiIvPjx0ZXh0IGNsYXNzPSJjbHMtMTUiIHRyYW5zZm9ybT0idHJhbnNsYXRl KDEyLjgyIDIyLjQ1KSI+MDwvdGV4dD48dGV4dCBjbGFzcz0iY2xzLTE1IiB0cmFuc2Zvcm09InRy YW5zbGF0ZSgxMi44MiAzMC4wMikiPjE8L3RleHQ+PHRleHQgY2xhc3M9ImNscy0xNSIgdHJhbnNm b3JtPSJ0cmFuc2xhdGUoMTIuODIgNDUuMjQpIj4xPC90ZXh0Pjx0ZXh0IGNsYXNzPSJjbHMtMTUi IHRyYW5zZm9ybT0idHJhbnNsYXRlKDEyLjgyIDM3LjMzKSI+MDwvdGV4dD48dGV4dCBjbGFzcz0i Y2xzLTE1IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxMi44MiA1Mi43MykiPjA8L3RleHQ+PC9nPjwv c3ZnPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWlu L3N0YXRpYy9qcy9FeHBsYWluL2ltZy9leF9ibXBfb3Iuc3ZnIGIvd2ViL3BnYWRtaW4vc3RhdGlj L2pzL0V4cGxhaW4vaW1nL2V4X2JtcF9vci5zdmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMDAwLi40N2JiODYyOTYKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9zdGF0 aWMvanMvRXhwbGFpbi9pbWcvZXhfYm1wX29yLnN2ZwpAQCAtMCwwICsxIEBACis8c3ZnIHhtbG5z PSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDY0IDY0Ij48ZGVmcz48 c3R5bGU+LmNscy0xLC5jbHMtMTF7ZmlsbDpub25lO3N0cm9rZS1saW5lam9pbjpyb3VuZDt9LmNs cy0xe3N0cm9rZTojMzQ0OTVlO3N0cm9rZS1saW5lY2FwOnJvdW5kO3N0cm9rZS13aWR0aDo0cHg7 fS5jbHMtMiwuY2xzLTR7ZmlsbDojZDNkNGYzO30uY2xzLTN7ZmlsbDojNjY2YmQxO30uY2xzLTR7 c3Ryb2tlOiM2NjZiZDE7c3Ryb2tlLW1pdGVybGltaXQ6MTA7fS5jbHMtNXtmb250LXNpemU6NnB4 O2ZpbGw6IzM0NDk1ZTtmb250LWZhbWlseTpIZWx2ZXRpY2EtQm9sZCwgSGVsdmV0aWNhO2ZvbnQt d2VpZ2h0OjcwMDt9LmNscy02e2ZpbGw6I2FkZGZmMzt9LmNscy03e2ZpbGw6IzI5ODBiOTt9LmNs cy04e2ZpbGw6I2YwZWNiNjt9LmNscy05e2ZpbGw6I2MxOGYzNTt9LmNscy0xMHtvcGFjaXR5OjAu Nzt9LmNscy0xMXtzdHJva2U6I2MxOGYzNTt9PC9zdHlsZT48L2RlZnM+PHRpdGxlPmV4X2JtcF9v cjwvdGl0bGU+PGcgaWQ9ImV4X2JtcF9vciI+PGxpbmUgY2xhc3M9ImNscy0xIiB4MT0iMzIiIHkx PSIxNS44NCIgeDI9IjMyIiB5Mj0iNDguMTYiLz48cGF0aCBjbGFzcz0iY2xzLTIiIGQ9Ik0xMCw1 Ni41Yy0xLjM3LDAtMS41LS4xMy0xLjUtMS41VjE1LjQ2aDEyVjU1YzAsMS4zNy0uMTMsMS41LTEu NSwxLjVaIi8+PHBhdGggY2xhc3M9ImNscy0zIiBkPSJNMjAsMTZWNTVhMy4yOCwzLjI4LDAsMCwx LS4wOC45QTIuMTgsMi4xOCwwLDAsMSwxOSw1NkgxMGEzLjI1LDMuMjUsMCwwLDEtLjktLjA4aDBB Mi4xOCwyLjE4LDAsMCwxLDksNTVWMTZIMjBtMS0xSDhWNTVjMCwxLjY1LjM1LDIsMiwyaDljMS42 NSwwLDItLjM1LDItMlYxNVoiLz48bGluZSBjbGFzcz0iY2xzLTQiIHgxPSI5LjAxIiB5MT0iMjMu NzQiIHgyPSIxOS45NyIgeTI9IjIzLjc0Ii8+PGxpbmUgY2xhc3M9ImNscy00IiB4MT0iOS4wMSIg eTE9IjMxLjQ5IiB4Mj0iMTkuOTciIHkyPSIzMS40OSIvPjxsaW5lIGNsYXNzPSJjbHMtNCIgeDE9 IjkuMDEiIHkxPSIzOS4yMyIgeDI9IjE5Ljk3IiB5Mj0iMzkuMjMiLz48bGluZSBjbGFzcz0iY2xz LTQiIHgxPSI5LjAxIiB5MT0iNDYuOTciIHgyPSIxOS45NyIgeTI9IjQ2Ljk3Ii8+PHRleHQgY2xh c3M9ImNscy01IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxMi44MiAyMS44MykiPjE8L3RleHQ+PHRl eHQgY2xhc3M9ImNscy01IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxMi44MiAyOS43NikiPjA8L3Rl eHQ+PHRleHQgY2xhc3M9ImNscy01IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxMi44MiA0NS4yNCki PjE8L3RleHQ+PHRleHQgY2xhc3M9ImNscy01IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxMi44MiAz Ny42MikiPjA8L3RleHQ+PHRleHQgY2xhc3M9ImNscy01IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgx Mi44MiA1My4zMykiPjA8L3RleHQ+PHBhdGggY2xhc3M9ImNscy02IiBkPSJNOC41LDE1LjVWOWMw LTEuMzcuMTMtMS41LDEuNS0xLjVoOWMxLjM3LDAsMS41LjEzLDEuNSwxLjV2Ni41WiIvPjxwYXRo IGNsYXNzPSJjbHMtNyIgZD0iTTE5LDhhMy4yNSwzLjI1LDAsMCwxLC45LjA4aDBBMi4xNywyLjE3 LDAsMCwxLDIwLDl2Nkg5VjlhMy4yOCwzLjI4LDAsMCwxLC4wOC0uOUEyLjE4LDIuMTgsMCwwLDEs MTAsOGg5bTAtMUgxMEM4LjM1LDcsOCw3LjM1LDgsOXY3SDIxVjljMC0xLjY1LS4zNS0yLTItMloi Lz48cGF0aCBjbGFzcz0iY2xzLTgiIGQ9Ik00NSw1Ni41Yy0xLjM3LDAtMS41LS4xMy0xLjUtMS41 VjE1LjQ2aDEyVjU1YzAsMS4zNy0uMTMsMS41LTEuNSwxLjVaIi8+PHBhdGggY2xhc3M9ImNscy05 IiBkPSJNNTUsMTZWNTVhMy4yOCwzLjI4LDAsMCwxLS4wOC45QTIuMTgsMi4xOCwwLDAsMSw1NCw1 Nkg0NWEzLjI1LDMuMjUsMCwwLDEtLjktLjA4aDBBMi4xOCwyLjE4LDAsMCwxLDQ0LDU1VjE2SDU1 bTEtMUg0M1Y1NWMwLDEuNjUuMzUsMiwyLDJoOWMxLjY1LDAsMi0uMzUsMi0yVjE1WiIvPjxnIGNs YXNzPSJjbHMtMTAiPjxsaW5lIGNsYXNzPSJjbHMtMTEiIHgxPSI0NC4wMyIgeTE9IjIzLjc0IiB4 Mj0iNTQuOTkiIHkyPSIyMy43NCIvPjxsaW5lIGNsYXNzPSJjbHMtMTEiIHgxPSI0NC4wMyIgeTE9 IjMxLjQ5IiB4Mj0iNTQuOTkiIHkyPSIzMS40OSIvPjxsaW5lIGNsYXNzPSJjbHMtMTEiIHgxPSI0 NC4wMyIgeTE9IjM5LjIzIiB4Mj0iNTQuOTkiIHkyPSIzOS4yMyIvPjxsaW5lIGNsYXNzPSJjbHMt MTEiIHgxPSI0NC4wMyIgeTE9IjQ2Ljk3IiB4Mj0iNTQuOTkiIHkyPSI0Ni45NyIvPjwvZz48dGV4 dCBjbGFzcz0iY2xzLTUiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDQ3Ljg0IDIxLjgzKSI+MDwvdGV4 dD48dGV4dCBjbGFzcz0iY2xzLTUiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDQ3Ljg0IDI5Ljc2KSI+ MDwvdGV4dD48dGV4dCBjbGFzcz0iY2xzLTUiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDQ3Ljg0IDQ1 LjI0KSI+MTwvdGV4dD48dGV4dCBjbGFzcz0iY2xzLTUiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDQ3 Ljg0IDM3LjYyKSI+MTwvdGV4dD48dGV4dCBjbGFzcz0iY2xzLTUiIHRyYW5zZm9ybT0idHJhbnNs YXRlKDQ3Ljg0IDUzLjMzKSI+MTwvdGV4dD48cGF0aCBjbGFzcz0iY2xzLTYiIGQ9Ik00My41Miwx NS41VjljMC0xLjM3LjEzLTEuNSwxLjUtMS41aDljMS4zNywwLDEuNS4xMywxLjUsMS41djYuNVoi Lz48cGF0aCBjbGFzcz0iY2xzLTciIGQ9Ik01NCw4YTMuMjUsMy4yNSwwLDAsMSwuOS4wOGgwQTIu MTgsMi4xOCwwLDAsMSw1NSw5djZINDRWOWEzLjI4LDMuMjgsMCwwLDEsLjA4LS45QTIuMTgsMi4x OCwwLDAsMSw0NSw4aDltMC0xSDQ1Yy0xLjY1LDAtMiwuMzUtMiwydjdINTZWOWMwLTEuNjUtLjM1 LTItMi0yWiIvPjwvZz48L3N2Zz4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1n aXQgYS93ZWIvcGdhZG1pbi9zdGF0aWMvanMvRXhwbGFpbi9pbWcvZXhfYnJvYWRjYXN0X21vdGlv bi5zdmcgYi93ZWIvcGdhZG1pbi9zdGF0aWMvanMvRXhwbGFpbi9pbWcvZXhfYnJvYWRjYXN0X21v dGlvbi5zdmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwLi5iMzRiYTFhOGEK LS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9zdGF0aWMvanMvRXhwbGFpbi9pbWcvZXhf YnJvYWRjYXN0X21vdGlvbi5zdmcKQEAgLTAsMCArMSBAQAorPHN2ZyB4bWxucz0iaHR0cDovL3d3 dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2NCA2NCI+PGRlZnM+PHN0eWxlPi5jbHMt MXtmaWxsOiNmMGVjYjY7fS5jbHMtMntmaWxsOiNjMThmMzU7fS5jbHMtM3tvcGFjaXR5OjAuNzt9 LmNscy00LC5jbHMtNntmaWxsOm5vbmU7fS5jbHMtNHtzdHJva2U6I2MxOGYzNTt9LmNscy00LC5j bHMtNSwuY2xzLTZ7c3Ryb2tlLWxpbmVqb2luOnJvdW5kO30uY2xzLTV7ZmlsbDojMzQ0OTVlO30u Y2xzLTUsLmNscy02e3N0cm9rZTojMzQ0OTVlO30uY2xzLTZ7c3Ryb2tlLWxpbmVjYXA6cm91bmQ7 fTwvc3R5bGU+PC9kZWZzPjx0aXRsZT5leF9icm9hZGNhc3RfbW90aW9uPC90aXRsZT48ZyBpZD0i ZXhfYnJvYWRjYXN0X21vdGlvbiI+PHBhdGggY2xhc3M9ImNscy0xIiBkPSJNMjEuNTYsNTEuNjlj LTEuMzQsMC0xLjQ5LS4xMy0xLjUtMS40MVYxNC4xNWMwLTEuMjguMTUtMS40MSwxLjUtMS40MWg5 YzEuMzQsMCwxLjQ4LjEzLDEuNSwxLjQxVjUwLjI4YzAsMS4yOC0uMTUsMS40MS0xLjUsMS40MVoi Lz48cGF0aCBjbGFzcz0iY2xzLTIiIGQ9Ik0yMS41NiwxMy4yNGg5YTMuMDksMy4wOSwwLDAsMSwu OS4wOGgwYTIsMiwwLDAsMSwuMS44NFY1MC4yN2EzLDMsMCwwLDEtLjA4LjgxLDIuMTUsMi4xNSww LDAsMS0uOTIuMWgtOWEzLjA5LDMuMDksMCwwLDEtLjktLjA4aDBhMiwyLDAsMCwxLS4xLS44NFYx NC4xNmEzLDMsMCwwLDEsLjA4LS44MSwyLjE1LDIuMTUsMCwwLDEsLjkyLS4xbTAtMWMtMS42MSww LTIsLjM0LTIsMS45aDBWNTAuMjhoMGMwLDEuNTYuMzgsMS45LDIsMS45aDljMS42MSwwLDItLjM0 LDItMS45aDBWMTQuMTVoMGMwLTEuNTYtLjM4LTEuOS0yLTEuOVoiLz48ZyBjbGFzcz0iY2xzLTMi PjxsaW5lIGNsYXNzPSJjbHMtNCIgeDE9IjIwLjU3IiB5MT0iMTkuOTMiIHgyPSIzMS41NCIgeTI9 IjE5LjkzIi8+PGxpbmUgY2xhc3M9ImNscy00IiB4MT0iMjAuNTciIHkxPSIyNy42NyIgeDI9IjMx LjU0IiB5Mj0iMjcuNjciLz48bGluZSBjbGFzcz0iY2xzLTQiIHgxPSIyMC41NyIgeTE9IjM1LjQy IiB4Mj0iMzEuNTQiIHkyPSIzNS40MiIvPjxsaW5lIGNsYXNzPSJjbHMtNCIgeDE9IjIwLjU3IiB5 MT0iNDMuMTYiIHgyPSIzMS41NCIgeTI9IjQzLjE2Ii8+PC9nPjxwb2x5Z29uIGNsYXNzPSJjbHMt NSIgcG9pbnRzPSI0My4zIDU0LjY4IDQyLjI3IDUxLjU1IDQwLjAxIDU0Ljc5IDQzLjMgNTQuNjgi Lz48bGluZSBjbGFzcz0iY2xzLTYiIHgxPSI0MS41NyIgeTE9IjUzLjM1IiB4Mj0iMzMuNSIgeTI9 IjQ3LjY0Ii8+PHBvbHlnb24gY2xhc3M9ImNscy01IiBwb2ludHM9IjQzLjMgOS4zMiA0Mi4yNyAx Mi40NSA0MC4wMSA5LjIxIDQzLjMgOS4zMiIvPjxsaW5lIGNsYXNzPSJjbHMtNiIgeDE9IjQxLjU3 IiB5MT0iMTAuNjUiIHgyPSIzMy41IiB5Mj0iMTYuMzYiLz48cG9seWdvbiBjbGFzcz0iY2xzLTUi IHBvaW50cz0iNDUuNDQgMzEuNjMgNDIuOCAyOS42NSA0Mi44IDMzLjYgNDUuNDQgMzEuNjMiLz48 bGluZSBjbGFzcz0iY2xzLTYiIHgxPSI0My4yNSIgeTE9IjMxLjUzIiB4Mj0iMzMuMzYiIHkyPSIz MS40OCIvPjxwb2x5Z29uIGNsYXNzPSJjbHMtNSIgcG9pbnRzPSI0NS4wNCAxOC45NSA0MS44OCAx OCA0My4yMyAyMS43MSA0NS4wNCAxOC45NSIvPjxsaW5lIGNsYXNzPSJjbHMtNiIgeDE9IjQyLjk1 IiB5MT0iMTkuNjEiIHgyPSIzMy42NCIgeTI9IjIyLjk1Ii8+PHBvbHlnb24gY2xhc3M9ImNscy01 IiBwb2ludHM9IjQ1LjA0IDQzLjQ4IDQxLjg4IDQ0LjQ0IDQzLjIzIDQwLjcyIDQ1LjA0IDQzLjQ4 Ii8+PGxpbmUgY2xhc3M9ImNscy02IiB4MT0iNDIuOTUiIHkxPSI0Mi44MyIgeDI9IjMzLjY0IiB5 Mj0iMzkuNDkiLz48L2c+PC9zdmc+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0t Z2l0IGEvd2ViL3BnYWRtaW4vc3RhdGljL2pzL0V4cGxhaW4vaW1nL2V4X2N0ZV9zY2FuLnN2ZyBi L3dlYi9wZ2FkbWluL3N0YXRpYy9qcy9FeHBsYWluL2ltZy9leF9jdGVfc2Nhbi5zdmcKbmV3IGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwLi5hYzE4NjEwNjcKLS0tIC9kZXYvbnVsbAor KysgYi93ZWIvcGdhZG1pbi9zdGF0aWMvanMvRXhwbGFpbi9pbWcvZXhfY3RlX3NjYW4uc3ZnCkBA IC0wLDAgKzEgQEAKKzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3 Qm94PSIwIDAgNjQgNjQiPjxkZWZzPjxzdHlsZT4uY2xzLTEsLmNscy05e2ZpbGw6IzI5ODBiOTt9 LmNscy0xLC5jbHMtMntzdHJva2U6IzI5ODBiOTt9LmNscy0xLC5jbHMtMiwuY2xzLTYsLmNscy03 e3N0cm9rZS1saW5lam9pbjpyb3VuZDt9LmNscy0ye2ZpbGw6IzZjNmM2YztzdHJva2UtbGluZWNh cDpyb3VuZDtzdHJva2Utd2lkdGg6MnB4O30uY2xzLTN7ZmlsbDojY2FmMGI3O30uY2xzLTR7Zmls bDojMzZjMTNkO30uY2xzLTUsLmNscy02e29wYWNpdHk6MC43O30uY2xzLTYsLmNscy03e2ZpbGw6 bm9uZTtzdHJva2U6IzM2YzEzZDt9LmNscy04e2ZpbGw6I2FkZGZmMzt9LmNscy0xMHtmb250LXNp emU6MTJweDtmaWxsOiMzNDQ5NWU7Zm9udC1mYW1pbHk6SGVsdmV0aWNhTmV1ZS1Cb2xkLCBIZWx2 ZXRpY2EgTmV1ZTtmb250LXdlaWdodDo3MDA7bGV0dGVyLXNwYWNpbmc6MC4xZW07fTwvc3R5bGU+ PC9kZWZzPjx0aXRsZT5leF9jdGVfc2NhbjwvdGl0bGU+PGcgaWQ9ImV4X2N0ZV9zY2FuIj48cG9s eWdvbiBjbGFzcz0iY2xzLTEiIHBvaW50cz0iOS45NyA1MC43NSA2LjQ5IDQ2LjEgMTMuNDUgNDYu MSA5Ljk3IDUwLjc1Ii8+PGxpbmUgY2xhc3M9ImNscy0yIiB4MT0iOS45NyIgeTE9IjQ2Ljc0IiB4 Mj0iOS45NyIgeTI9IjE1Ljc2Ii8+PHBhdGggY2xhc3M9ImNscy0zIiBkPSJNMTgsNTcuNDRjLTEu MzcsMC0xLjUtLjEzLTEuNS0xLjVWMTUuNWg0MVY1NS45NGMwLDEuMzctLjEzLDEuNS0xLjUsMS41 WiIvPjxwYXRoIGNsYXNzPSJjbHMtNCIgZD0iTTU3LDE2VjU1Ljk0YTMuMjgsMy4yOCwwLDAsMS0u MDguOSwyLjE4LDIuMTgsMCwwLDEtLjkyLjFIMThhMy4yNSwzLjI1LDAsMCwxLS45LS4wOGgwYTIu MTgsMi4xOCwwLDAsMS0uMS0uOTJWMTZINTdtMS0xSDE2VjU1Ljk0YzAsMS42NS4zNSwyLDIsMkg1 NmMxLjY1LDAsMi0uMzUsMi0yVjE1WiIvPjxnIGNsYXNzPSJjbHMtNSI+PGxpbmUgY2xhc3M9ImNs cy02IiB4MT0iMjQuNyIgeTE9IjU2Ljk0IiB4Mj0iMjQuNyIgeTI9IjE1Ljk0Ii8+PGxpbmUgY2xh c3M9ImNscy02IiB4MT0iNDEuMSIgeTE9IjU2Ljk0IiB4Mj0iNDEuMSIgeTI9IjE1Ljk0Ii8+PGxp bmUgY2xhc3M9ImNscy02IiB4MT0iMzIuOSIgeTE9IjU2Ljk0IiB4Mj0iMzIuOSIgeTI9IjE1Ljk0 Ii8+PGxpbmUgY2xhc3M9ImNscy02IiB4MT0iNDkuMyIgeTE9IjU2Ljk0IiB4Mj0iNDkuMyIgeTI9 IjE1Ljk0Ii8+PGcgY2xhc3M9ImNscy01Ij48bGluZSBjbGFzcz0iY2xzLTciIHgxPSIxNyIgeTE9 IjIzLjk0IiB4Mj0iNTYuOTciIHkyPSIyMy45NCIvPjxsaW5lIGNsYXNzPSJjbHMtNyIgeDE9IjE3 IiB5MT0iMzIuMzEiIHgyPSI1Ni45NyIgeTI9IjMyLjMxIi8+PGxpbmUgY2xhc3M9ImNscy03IiB4 MT0iMTciIHkxPSI0MC42OCIgeDI9IjU2Ljk3IiB5Mj0iNDAuNjgiLz48bGluZSBjbGFzcz0iY2xz LTciIHgxPSIxNyIgeTE9IjQ5LjA1IiB4Mj0iNTYuOTciIHkyPSI0OS4wNSIvPjwvZz48L2c+PHBh dGggY2xhc3M9ImNscy04IiBkPSJNNDkuMzEsMTUuNDl2LTlINTZjMS4zNywwLDEuNS4xMywxLjUs MS41djcuNVoiLz48cGF0aCBjbGFzcz0iY2xzLTkiIGQ9Ik01Niw3YTMuMjUsMy4yNSwwLDAsMSwu OS4wOGgwQTIuMTcsMi4xNywwLDAsMSw1Nyw4djdINDkuODFWN0g1Nm0wLTFINDguODFWMTZINThW OGMwLTEuNjUtLjM1LTItMi0yWiIvPjxwYXRoIGNsYXNzPSJjbHMtOCIgZD0iTTE2LjUxLDE1LjQ5 VjhjMC0xLjM3LjEzLTEuNSwxLjUtMS41SDI0Ljd2OVoiLz48cGF0aCBjbGFzcz0iY2xzLTkiIGQ9 Ik0yNC4yLDd2OEgxN1Y4YTMuMjgsMy4yOCwwLDAsMSwuMDgtLjlBMi4xOCwyLjE4LDAsMCwxLDE4 LDdIMjQuMm0xLTFIMThjLTEuNjUsMC0yLC4zNS0yLDJ2OEgyNS4yVjZaIi8+PHJlY3QgY2xhc3M9 ImNscy04IiB4PSI0MS4xIiB5PSI2LjQ5IiB3aWR0aD0iOC4xOSIgaGVpZ2h0PSI5Ii8+PHBhdGgg Y2xhc3M9ImNscy05IiBkPSJNNDguNzksN3Y4SDQxLjZWN2g3LjE4bTEtMUg0MC42MVYxNmg5LjE5 VjZaIi8+PHJlY3QgY2xhc3M9ImNscy04IiB4PSIzMi45MSIgeT0iNi40OSIgd2lkdGg9IjguMTki IGhlaWdodD0iOSIvPjxwYXRoIGNsYXNzPSJjbHMtOSIgZD0iTTQwLjYsN3Y4SDMzLjQxVjdINDAu Nm0xLTFIMzIuNDJWMTZINDEuNlY2WiIvPjxyZWN0IGNsYXNzPSJjbHMtOCIgeD0iMjQuNzIiIHk9 IjYuNDkiIHdpZHRoPSI4LjE3IiBoZWlnaHQ9IjkiLz48cGF0aCBjbGFzcz0iY2xzLTkiIGQ9Ik0z Mi40LDd2OEgyNS4yMlY3SDMyLjRtMS0xSDI0LjIyVjE2SDMzLjRWNloiLz48dGV4dCBjbGFzcz0i Y2xzLTEwIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgyMy4zNSAzOC40KSI+Q1RFPC90ZXh0PjwvZz48 L3N2Zz4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1p bi9zdGF0aWMvanMvRXhwbGFpbi9pbWcvZXhfZGVsZXRlLnN2ZyBiL3dlYi9wZ2FkbWluL3N0YXRp Yy9qcy9FeHBsYWluL2ltZy9leF9kZWxldGUuc3ZnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAwMC4uODlkOTY4MDViCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vc3Rh dGljL2pzL0V4cGxhaW4vaW1nL2V4X2RlbGV0ZS5zdmcKQEAgLTAsMCArMSBAQAorPHN2ZyB4bWxu cz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2NCA2NCI+PGRlZnM+ PHN0eWxlPi5jbHMtMXtmaWxsOiNmMGVjYjY7fS5jbHMtMntmaWxsOiNjMThmMzY7fS5jbHMtMywu Y2xzLTR7b3BhY2l0eTowLjc7fS5jbHMtNCwuY2xzLTV7ZmlsbDpub25lO3N0cm9rZTojYzE4ZjM2 O3N0cm9rZS1saW5lam9pbjpyb3VuZDt9LmNscy02e2ZpbGw6I2FkZGZmMzt9LmNscy03e2ZpbGw6 IzI5ODBiOTt9LmNscy04e2ZpbGw6I2Y2NGQxMjt9PC9zdHlsZT48L2RlZnM+PHRpdGxlPmV4X2Rl bGV0ZTwvdGl0bGU+PGcgaWQ9ImV4X2RlbGV0ZSI+PHBhdGggY2xhc3M9ImNscy0xIiBkPSJNMTgs NTcuNDRjLTEuMzcsMC0xLjUtLjEzLTEuNS0xLjVWMTUuNWg0MVY1NS45NGMwLDEuMzctLjEzLDEu NS0xLjUsMS41WiIvPjxwYXRoIGNsYXNzPSJjbHMtMiIgZD0iTTU3LDE2VjU1Ljk0YTMuMjgsMy4y OCwwLDAsMS0uMDguOSwyLjE4LDIuMTgsMCwwLDEtLjkyLjFIMThhMy4yNSwzLjI1LDAsMCwxLS45 LS4wOGgwYTIuMTgsMi4xOCwwLDAsMS0uMS0uOTJWMTZINTdtMS0xSDE2VjU1Ljk0YzAsMS42NS4z NSwyLDIsMkg1NmMxLjY1LDAsMi0uMzUsMi0yVjE1WiIvPjxnIGNsYXNzPSJjbHMtMyI+PGxpbmUg Y2xhc3M9ImNscy00IiB4MT0iMjQuNyIgeTE9IjU2Ljk0IiB4Mj0iMjQuNyIgeTI9IjE1Ljk0Ii8+ PGxpbmUgY2xhc3M9ImNscy00IiB4MT0iNDEuMSIgeTE9IjU2Ljk0IiB4Mj0iNDEuMSIgeTI9IjE1 Ljk0Ii8+PGxpbmUgY2xhc3M9ImNscy00IiB4MT0iMzIuOSIgeTE9IjU2Ljk0IiB4Mj0iMzIuOSIg eTI9IjE1Ljk0Ii8+PGxpbmUgY2xhc3M9ImNscy00IiB4MT0iNDkuMyIgeTE9IjU2Ljk0IiB4Mj0i NDkuMyIgeTI9IjE1Ljk0Ii8+PGcgY2xhc3M9ImNscy0zIj48bGluZSBjbGFzcz0iY2xzLTUiIHgx PSIxNyIgeTE9IjIzLjk0IiB4Mj0iNTYuOTciIHkyPSIyMy45NCIvPjxsaW5lIGNsYXNzPSJjbHMt NSIgeDE9IjE3IiB5MT0iMzIuMzEiIHgyPSI1Ni45NyIgeTI9IjMyLjMxIi8+PGxpbmUgY2xhc3M9 ImNscy01IiB4MT0iMTciIHkxPSI0MC42OCIgeDI9IjU2Ljk3IiB5Mj0iNDAuNjgiLz48bGluZSBj bGFzcz0iY2xzLTUiIHgxPSIxNyIgeTE9IjQ5LjA1IiB4Mj0iNTYuOTciIHkyPSI0OS4wNSIvPjwv Zz48L2c+PHBhdGggY2xhc3M9ImNscy02IiBkPSJNNDkuMzEsMTUuNDl2LTlINTZjMS4zNywwLDEu NS4xMywxLjUsMS41djcuNVoiLz48cGF0aCBjbGFzcz0iY2xzLTciIGQ9Ik01Niw3YTMuMjUsMy4y NSwwLDAsMSwuOS4wOGgwQTIuMTcsMi4xNywwLDAsMSw1Nyw4djdINDkuODFWN0g1Nm0wLTFINDgu ODFWMTZINThWOGMwLTEuNjUtLjM1LTItMi0yWiIvPjxwYXRoIGNsYXNzPSJjbHMtNiIgZD0iTTE2 LjUxLDE1LjQ5VjhjMC0xLjM3LjEzLTEuNSwxLjUtMS41SDI0Ljd2OVoiLz48cGF0aCBjbGFzcz0i Y2xzLTciIGQ9Ik0yNC4yLDd2OEgxN1Y4YTMuMjgsMy4yOCwwLDAsMSwuMDgtLjlBMi4xOCwyLjE4 LDAsMCwxLDE4LDdIMjQuMm0xLTFIMThjLTEuNjUsMC0yLC4zNS0yLDJ2OEgyNS4yVjZaIi8+PHJl Y3QgY2xhc3M9ImNscy02IiB4PSI0MS4xIiB5PSI2LjQ5IiB3aWR0aD0iOC4xOSIgaGVpZ2h0PSI5 Ii8+PHBhdGggY2xhc3M9ImNscy03IiBkPSJNNDguNzksN3Y4SDQxLjZWN2g3LjE4bTEtMUg0MC42 MVYxNmg5LjE5VjZaIi8+PHJlY3QgY2xhc3M9ImNscy02IiB4PSIzMi45MSIgeT0iNi40OSIgd2lk dGg9IjguMTkiIGhlaWdodD0iOSIvPjxwYXRoIGNsYXNzPSJjbHMtNyIgZD0iTTQwLjYsN3Y4SDMz LjQxVjdINDAuNm0xLTFIMzIuNDJWMTZINDEuNlY2WiIvPjxyZWN0IGNsYXNzPSJjbHMtNiIgeD0i MjQuNzIiIHk9IjYuNDkiIHdpZHRoPSI4LjE3IiBoZWlnaHQ9IjkiLz48cGF0aCBjbGFzcz0iY2xz LTciIGQ9Ik0zMi40LDd2OEgyNS4yMlY3SDMyLjRtMS0xSDI0LjIyVjE2SDMzLjRWNloiLz48cGF0 aCBjbGFzcz0iY2xzLTgiIGQ9Ik0xNy41LDI0Ljk0aDYuMnY2LjM3SDE3LjVaIi8+PHBhdGggY2xh c3M9ImNscy04IiBkPSJNMjUuNzEsNDEuNzJoNi4ydjYuMzdoLTYuMloiLz48cGF0aCBjbGFzcz0i Y2xzLTgiIGQ9Ik0zMy45NCw0MS43Mmg2LjJ2Ni4zN2gtNi4yWiIvPjxwYXRoIGNsYXNzPSJjbHMt MiIgZD0iTTYsMjkuMjJhMy4zNywzLjM3LDAsMCwxLDUuNzEtMi40M2gwbC4xMy4xMy4wNS4wNUwy My40NSwzOC41MmEuNC40LDAsMCwxLC4xOC4ybDEuNjMsNS44MnYuMDZoMGEuNDYuNDYsMCwwLDEs MCwuMTIuNDEuNDEsMCwwLDEsMCwuMTJzMCwwLDAsMGgwYS40LjQsMCwwLDEtLjA2LjFsMCwwLDAs MC0uMS4wNmgwbC0uMTIsMC0uMTIsMGgtLjA3bC01LjgyLTEuNjNhLjQuNCwwLDAsMS0uMi0uMThM Ni45NSwzMS41OGEuNC40LDAsMCwxLS4wOC0uMTJBMy4zNSwzLjM1LDAsMCwxLDYsMjkuMjJaTTE4 LjksNDIuMzhsMS0yaDBMMTAsMzAuNDEsOC40NiwzMS45M1ptNSwuNTUtLjg0Ljg0LDEuMTcuMzNa bS0xLTMuNDgtMi4yNiwxLjA5TDE5LjYsNDIuOGwyLjU3LjcyTDIzLjY2LDQyWm0tLjQyLS43TDEy LjA4LDI4LjMxbC0xLjUyLDEuNTIsOS45Myw5LjkzaDBaTTYuODMsMjkuMjVhMi41NSwyLjU1LDAs MCwwLC44MywxLjg4aDBsLjIyLjIyLDMuNjItMy42Mi0uMjItLjIyaDBhMi41NiwyLjU2LDAsMCww LTQuNDUsMS43M1oiLz48cG9seWdvbiBjbGFzcz0iY2xzLTEiIHBvaW50cz0iMTguOSA0Mi4zOCAx OS45IDQwLjM2IDE5LjkgNDAuMzUgOS45NyAzMC40MiA4LjQ1IDMxLjk0IDE4LjkgNDIuMzgiLz48 cG9seWdvbiBjbGFzcz0iY2xzLTEiIHBvaW50cz0iMTIuMDcgMjguMzIgMTAuNTUgMjkuODQgMjAu NDggMzkuNzcgMjAuNDkgMzkuNzYgMjIuNTIgMzguNzYgMTIuMDcgMjguMzIiLz48cGF0aCBjbGFz cz0iY2xzLTEiIGQ9Ik02Ljg1LDI5LjIxYTIuNTUsMi41NSwwLDAsMCwuODMsMS44OGgwbC4yMi4y MiwzLjYyLTMuNjItLjIyLS4yMmgwYTIuNTYsMi41NiwwLDAsMC00LjQ1LDEuNzNaIi8+PHBvbHln b24gY2xhc3M9ImNscy0xIiBwb2ludHM9IjIyLjk0IDM5LjQ1IDIwLjY5IDQwLjU0IDE5LjYgNDIu OCAyMi4xNyA0My41MiAyMy42NiA0Mi4wMyAyMi45NCAzOS40NSIvPjwvZz48L3N2Zz4KXCBObyBu ZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9zdGF0aWMvanMv RXhwbGFpbi9pbWcvZXhfZm9yZWlnbl9zY2FuLnN2ZyBiL3dlYi9wZ2FkbWluL3N0YXRpYy9qcy9F eHBsYWluL2ltZy9leF9mb3JlaWduX3NjYW4uc3ZnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAwMC4uYTlmMWMzZDJiCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vc3Rh dGljL2pzL0V4cGxhaW4vaW1nL2V4X2ZvcmVpZ25fc2Nhbi5zdmcKQEAgLTAsMCArMSBAQAorPHN2 ZyBpZD0iXzEiIGRhdGEtbmFtZT0iMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3Zn IiB2aWV3Qm94PSIwIDAgNjQgNjQiPjxkZWZzPjxzdHlsZT4uY2xzLTEsLmNscy05e2ZpbGw6IzM0 NDk1ZTt9LmNscy0xLC5jbHMtMntzdHJva2U6IzM0NDk1ZTt9LmNscy0xLC5jbHMtMiwuY2xzLTZ7 c3Ryb2tlLWxpbmVqb2luOnJvdW5kO30uY2xzLTIsLmNscy02e2ZpbGw6bm9uZTt9LmNscy0ye3N0 cm9rZS1saW5lY2FwOnJvdW5kO3N0cm9rZS13aWR0aDoycHg7fS5jbHMtM3tmaWxsOiNkYWU3ZTc7 fS5jbHMtNHtmaWxsOiM4M2I4YmQ7fS5jbHMtNXtvcGFjaXR5OjAuODt9LmNscy02e3N0cm9rZToj ODNiOGJkO30uY2xzLTd7ZmlsbDojYWRkZmYzO30uY2xzLTh7ZmlsbDojMjk4MGI5O30uY2xzLTl7 Zm9udC1zaXplOjEycHg7Zm9udC1mYW1pbHk6SGVsdmV0aWNhTmV1ZS1Cb2xkLCBIZWx2ZXRpY2Eg TmV1ZTtmb250LXdlaWdodDo3MDA7bGV0dGVyLXNwYWNpbmc6MC4xZW07fTwvc3R5bGU+PC9kZWZz Pjx0aXRsZT5leF9mb3JlaWduX3NjYW48L3RpdGxlPjxwb2x5Z29uIGNsYXNzPSJjbHMtMSIgcG9p bnRzPSI5Ljk3IDUwLjc1IDYuNDkgNDYuMSAxMy40NSA0Ni4xIDkuOTcgNTAuNzUiLz48bGluZSBj bGFzcz0iY2xzLTIiIHgxPSI5Ljk3IiB5MT0iNDYuNzQiIHgyPSI5Ljk3IiB5Mj0iMTUuNzYiLz48 cGF0aCBjbGFzcz0iY2xzLTMiIGQ9Ik0xOCw1Ny40NGMtMS4zNywwLTEuNS0uMTMtMS41LTEuNVYx NS41aDQxVjU1Ljk0YzAsMS4zNy0uMTMsMS41LTEuNSwxLjVaIi8+PHBhdGggY2xhc3M9ImNscy00 IiBkPSJNNTcsMTZWNTUuOTRhMy4yOCwzLjI4LDAsMCwxLS4wOC45LDIuMTgsMi4xOCwwLDAsMS0u OTIuMUgxOGEzLjI1LDMuMjUsMCwwLDEtLjktLjA4aDBhMi4xOCwyLjE4LDAsMCwxLS4xLS45MlYx Nkg1N20xLTFIMTZWNTUuOTRjMCwxLjY1LjM1LDIsMiwySDU2YzEuNjUsMCwyLS4zNSwyLTJWMTVa Ii8+PGcgY2xhc3M9ImNscy01Ij48bGluZSBjbGFzcz0iY2xzLTYiIHgxPSIyNC43IiB5MT0iNTYu OTQiIHgyPSIyNC43IiB5Mj0iMTUuOTQiLz48bGluZSBjbGFzcz0iY2xzLTYiIHgxPSI0MS4xIiB5 MT0iNTYuOTQiIHgyPSI0MS4xIiB5Mj0iMTUuOTQiLz48bGluZSBjbGFzcz0iY2xzLTYiIHgxPSIz Mi45IiB5MT0iNTYuOTQiIHgyPSIzMi45IiB5Mj0iMTUuOTQiLz48bGluZSBjbGFzcz0iY2xzLTYi IHgxPSI0OS4zIiB5MT0iNTYuOTQiIHgyPSI0OS4zIiB5Mj0iMTUuOTQiLz48bGluZSBjbGFzcz0i Y2xzLTYiIHgxPSIxNyIgeTE9IjIzLjk0IiB4Mj0iNTYuOTciIHkyPSIyMy45NCIvPjxsaW5lIGNs YXNzPSJjbHMtNiIgeDE9IjE3IiB5MT0iMzIuMzEiIHgyPSI1Ni45NyIgeTI9IjMyLjMxIi8+PGxp bmUgY2xhc3M9ImNscy02IiB4MT0iMTciIHkxPSI0MC42OCIgeDI9IjU2Ljk3IiB5Mj0iNDAuNjgi Lz48bGluZSBjbGFzcz0iY2xzLTYiIHgxPSIxNyIgeTE9IjQ5LjA1IiB4Mj0iNTYuOTciIHkyPSI0 OS4wNSIvPjwvZz48cGF0aCBjbGFzcz0iY2xzLTciIGQ9Ik00OS4zMSwxNS40OXYtOUg1NmMxLjM3 LDAsMS41LjEzLDEuNSwxLjV2Ny41WiIvPjxwYXRoIGNsYXNzPSJjbHMtOCIgZD0iTTU2LDdhMy4y NSwzLjI1LDAsMCwxLC45LjA4aDBBMi4xNywyLjE3LDAsMCwxLDU3LDh2N0g0OS44MVY3SDU2bTAt MUg0OC44MVYxNkg1OFY4YzAtMS42NS0uMzUtMi0yLTJaIi8+PHBhdGggY2xhc3M9ImNscy03IiBk PSJNMTYuNTEsMTUuNDlWOGMwLTEuMzcuMTMtMS41LDEuNS0xLjVIMjQuN3Y5WiIvPjxwYXRoIGNs YXNzPSJjbHMtOCIgZD0iTTI0LjIsN3Y4SDE3VjhhMy4yOCwzLjI4LDAsMCwxLC4wOC0uOUEyLjE4 LDIuMTgsMCwwLDEsMTgsN0gyNC4ybTEtMUgxOGMtMS42NSwwLTIsLjM1LTIsMnY4SDI1LjJWNloi Lz48cmVjdCBjbGFzcz0iY2xzLTciIHg9IjQxLjEiIHk9IjYuNDkiIHdpZHRoPSI4LjE5IiBoZWln aHQ9IjkiLz48cGF0aCBjbGFzcz0iY2xzLTgiIGQ9Ik00OC43OSw3djhINDEuNlY3aDcuMThtMS0x SDQwLjYxVjE2aDkuMTlWNloiLz48cmVjdCBjbGFzcz0iY2xzLTciIHg9IjMyLjkxIiB5PSI2LjQ5 IiB3aWR0aD0iOC4xOSIgaGVpZ2h0PSI5Ii8+PHBhdGggY2xhc3M9ImNscy04IiBkPSJNNDAuNiw3 djhIMzMuNDFWN0g0MC42bTEtMUgzMi40MlYxNkg0MS42VjZaIi8+PHJlY3QgY2xhc3M9ImNscy03 IiB4PSIyNC43MiIgeT0iNi40OSIgd2lkdGg9IjguMTciIGhlaWdodD0iOSIvPjxwYXRoIGNsYXNz PSJjbHMtOCIgZD0iTTMyLjQsN3Y4SDI1LjIyVjdIMzIuNG0xLTFIMjQuMjJWMTZIMzMuNFY2WiIv Pjx0ZXh0IGNsYXNzPSJjbHMtOSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMjMuMzUgMzguNCkiPkNU RTwvdGV4dD48L3N2Zz4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS93 ZWIvcGdhZG1pbi9zdGF0aWMvanMvRXhwbGFpbi9pbWcvZXhfZ2F0aGVyX21lcmdlLnN2ZyBiL3dl Yi9wZ2FkbWluL3N0YXRpYy9qcy9FeHBsYWluL2ltZy9leF9nYXRoZXJfbWVyZ2Uuc3ZnCm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMC4uNGM2ZjFkYzdlCi0tLSAvZGV2L251bGwK KysrIGIvd2ViL3BnYWRtaW4vc3RhdGljL2pzL0V4cGxhaW4vaW1nL2V4X2dhdGhlcl9tZXJnZS5z dmcKQEAgLTAsMCArMSBAQAorPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmci IHZpZXdCb3g9IjAgMCA2NC4wMyA2NCI+PGRlZnM+PHN0eWxlPi5jbHMtMXtmaWxsOiNkM2Q0ZjM7 fS5jbHMtMntmaWxsOiM2NjZiZDE7fS5jbHMtMywuY2xzLTZ7ZmlsbDojZjBlY2I2O30uY2xzLTR7 ZmlsbDojYzE4ZjM2O30uY2xzLTV7b3BhY2l0eTowLjg7fS5jbHMtNntzdHJva2U6I2MxOGYzNjtz dHJva2UtbWl0ZXJsaW1pdDoxMDt9LmNscy03e2ZpbGw6I2FkZGZmMzt9LmNscy04e2ZpbGw6IzI5 ODBiOTt9LmNscy0xMCwuY2xzLTl7ZmlsbDojNTI4ZDE5O3N0cm9rZTojNTI4ZDE5O3N0cm9rZS1s aW5lam9pbjpyb3VuZDt9LmNscy0xMHtzdHJva2UtbGluZWNhcDpyb3VuZDtzdHJva2Utd2lkdGg6 MnB4O308L3N0eWxlPjwvZGVmcz48dGl0bGU+Z2F0aGVyX21lcmdlPC90aXRsZT48ZyBpZD0iZXhf YXBwZW5kIj48cGF0aCBjbGFzcz0iY2xzLTEiIGQ9Ik0xMi44MiwxNC4zYy0xLjM3LDAtMS41LS4x Mi0xLjUtMS41di00YzAtMS4zOC4xMy0xLjUsMS41LTEuNWg0LjV2N1oiLz48cGF0aCBjbGFzcz0i Y2xzLTIiIGQ9Ik0xNi44Miw3LjgydjZoLTRhMy41NCwzLjU0LDAsMCwxLS45LS4wN2gwYTIuMTYs Mi4xNiwwLDAsMS0uMS0uOTN2LTRhMi43LDIuNywwLDAsMSwuMDgtLjlzLjE5LS4xLjkyLS4xaDRt MS0xaC01Yy0xLjY1LDAtMiwuMzUtMiwydjRjMCwxLjY1LjM1LDIsMiwyaDV2LThaIi8+PHBhdGgg Y2xhc3M9ImNscy0xIiBkPSJNMTcuMzIsMTQuM3YtN0gyMi4xYzEuMzgsMCwxLjUuMTIsMS41LDEu NXY0YzAsMS4zOC0uMTIsMS41LTEuNSwxLjVaIi8+PHBhdGggY2xhc3M9ImNscy0yIiBkPSJNMjIu MSw3LjgyYTMuNDQsMy40NCwwLDAsMSwuOS4wN2gwYTIuMTYsMi4xNiwwLDAsMSwuMS45M3Y0YTMu NzEsMy43MSwwLDAsMS0uMDcuOSwyLjE2LDIuMTYsMCwwLDEtLjkzLjFIMTcuODJ2LTZIMjIuMW0w LTFIMTYuODJ2OEgyMi4xYzEuNjUsMCwyLS4zNSwyLTJ2LTRjMC0xLjY1LS4zNS0yLTItMloiLz48 cGF0aCBjbGFzcz0iY2xzLTEiIGQ9Ik0yNy44NywxNC4zYy0xLjM3LDAtMS41LS4xMi0xLjUtMS41 di00YzAtMS4zOC4xMy0xLjUsMS41LTEuNWg0LjV2N1oiLz48cGF0aCBjbGFzcz0iY2xzLTIiIGQ9 Ik0zMS44Nyw3LjgydjZoLTRhMy42NCwzLjY0LDAsMCwxLS45LS4wN2gwYTIuNCwyLjQsMCwwLDEt LjEtLjkzdi00YTMuMTgsMy4xOCwwLDAsMSwuMDgtLjksMi4wOCwyLjA4LDAsMCwxLC45Mi0uMWg0 bTEtMWgtNWMtMS42NSwwLTIsLjM1LTIsMnY0YzAsMS42NS4zNSwyLDIsMmg1di04WiIvPjxwYXRo IGNsYXNzPSJjbHMtMSIgZD0iTTMyLjM4LDE0LjN2LTdoNC43OGMxLjM3LDAsMS41LjEyLDEuNSwx LjV2NGMwLDEuMzgtLjEzLDEuNS0xLjUsMS41WiIvPjxwYXRoIGNsYXNzPSJjbHMtMiIgZD0iTTM3 LjE2LDcuODJhMy4zOSwzLjM5LDAsMCwxLC44OS4wN2gwYTIuNCwyLjQsMCwwLDEsLjEuOTN2NGEz LjE4LDMuMTgsMCwwLDEtLjA4LjksMi4wOCwyLjA4LDAsMCwxLS45Mi4xSDMyLjg4di02aDQuMjht MC0xSDMxLjg4djhoNS4yOGMxLjY1LDAsMi0uMzUsMi0ydi00YzAtMS42NS0uMzUtMi0yLTJaIi8+ PHBhdGggY2xhc3M9ImNscy0xIiBkPSJNNDIuOTMsMTQuM2MtMS4zOCwwLTEuNS0uMTItMS41LTEu NXYtNGMwLTEuMzguMTItMS41LDEuNS0xLjVoNC41djdaIi8+PHBhdGggY2xhc3M9ImNscy0yIiBk PSJNNDYuOTMsNy44MnY2aC00YTMuNDQsMy40NCwwLDAsMS0uOS0uMDdoMGEyLjE2LDIuMTYsMCww LDEtLjEtLjkzdi00YTMuNzEsMy43MSwwLDAsMSwuMDctLjksMi4xNiwyLjE2LDAsMCwxLC45My0u MWg0bTEtMWgtNWMtMS42NSwwLTIsLjM1LTIsMnY0YzAsMS42NS4zNSwyLDIsMmg1di04WiIvPjxw YXRoIGNsYXNzPSJjbHMtMSIgZD0iTTQ3LjQzLDE0LjN2LTdoNC43OGMxLjM3LDAsMS41LjEyLDEu NSwxLjV2NGMwLDEuMzgtLjEzLDEuNS0xLjUsMS41WiIvPjxwYXRoIGNsYXNzPSJjbHMtMiIgZD0i TTUyLjIxLDcuODJhMy41NCwzLjU0LDAsMCwxLC45LjA3aDBhMi4xNiwyLjE2LDAsMCwxLC4xLjkz djRhMi43LDIuNywwLDAsMS0uMDguOXMtLjE5LjEtLjkyLjFINDcuOTN2LTZoNC4yOG0wLTFINDYu OTN2OGg1LjI4YzEuNjUsMCwyLS4zNSwyLTJ2LTRjMC0xLjY1LS4zNS0yLTItMloiLz48cGF0aCBj bGFzcz0iY2xzLTMiIGQ9Ik0yMS4yMSw1Ny40NGMtMS4zOCwwLTEuNS0uMTMtMS41LTEuNVY0NC40 OWgyNC42VjU1Ljk0YzAsMS4zNy0uMTMsMS41LTEuNSwxLjVaIi8+PHBhdGggY2xhc3M9ImNscy00 IiBkPSJNNDMuODEsNDVWNTUuOTRhNCw0LDAsMCwxLS4wNy45LDIuNCwyLjQsMCwwLDEtLjkzLjFI MjEuMjFhMy4xMSwzLjExLDAsMCwxLS45LS4wOGgwYTIuMTMsMi4xMywwLDAsMS0uMS0uOTJWNDVo MjMuNm0xLTFIMTkuMjFWNTUuOTRjMCwxLjY1LjM1LDIsMiwyaDIxLjZjMS42NSwwLDItLjM1LDIt MlY0NFoiLz48ZyBjbGFzcz0iY2xzLTUiPjxsaW5lIGNsYXNzPSJjbHMtNiIgeDE9IjI3LjkxIiB5 MT0iNTYuOTMiIHgyPSIyNy45MSIgeTI9IjQ0LjkzIi8+PGxpbmUgY2xhc3M9ImNscy02IiB4MT0i MzYuMTIiIHkxPSI1Ni45MyIgeDI9IjM2LjEyIiB5Mj0iNDQuOTMiLz48bGluZSBjbGFzcz0iY2xz LTYiIHgxPSIyMC4yIiB5MT0iNTAuOTMiIHgyPSI0My43OSIgeTI9IjUwLjkzIi8+PC9nPjxwYXRo IGNsYXNzPSJjbHMtNyIgZD0iTTM2LjEzLDQ0LjQ5di02aDYuNjljMS4zNywwLDEuNS4xMiwxLjUs MS41djQuNVoiLz48cGF0aCBjbGFzcz0iY2xzLTgiIGQ9Ik00Mi44MiwzOWEzLjU0LDMuNTQsMCww LDEsLjkuMDdoMGEyLjE2LDIuMTYsMCwwLDEsLjEuOTN2NEgzNi42M1YzOWg2LjE5bTAtMUgzNS42 M3Y3aDkuMTlWNDBjMC0xLjY1LS4zNS0yLTItMloiLz48cGF0aCBjbGFzcz0iY2xzLTciIGQ9Ik0x OS43MSw0NC40OVY0MGMwLTEuMzguMTItMS41LDEuNS0xLjVIMjcuOXY2WiIvPjxwYXRoIGNsYXNz PSJjbHMtOCIgZD0iTTI3LjQsMzl2NUgyMC4yMVY0MGEzLjcxLDMuNzEsMCwwLDEsLjA3LS45LDIu MTYsMi4xNiwwLDAsMSwuOTMtLjFIMjcuNG0xLTFIMjEuMjFjLTEuNjUsMC0yLC4zNS0yLDJ2NUgy OC40VjM4WiIvPjxyZWN0IGNsYXNzPSJjbHMtNyIgeD0iMjcuOTIiIHk9IjM4LjQ5IiB3aWR0aD0i OC4xOSIgaGVpZ2h0PSI2Ii8+PHBhdGggY2xhc3M9ImNscy04IiBkPSJNMzUuNjEsMzl2NUgyOC40 MlYzOWg3LjE4bTEtMUgyNy40M3Y3aDkuMTlWMzhaIi8+PHBvbHlnb24gY2xhc3M9ImNscy05IiBw b2ludHM9IjI3LjEgMzYuMzggMjcuOTYgMzIuMjUgMjMuMzggMzQuMzkgMjcuMSAzNi4zOCIvPjxs aW5lIGNsYXNzPSJjbHMtMTAiIHgxPSIyNS41NSIgeTE9IjMzLjA2IiB4Mj0iMTguOTYiIHkyPSIx OC45NCIvPjxwb2x5Z29uIGNsYXNzPSJjbHMtOSIgcG9pbnRzPSIzMi40IDM2LjIgMzQuOTIgMzIu ODIgMjkuODYgMzIuODIgMzIuNCAzNi4yIi8+PGxpbmUgY2xhc3M9ImNscy0xMCIgeDE9IjMyLjM5 IiB5MT0iMzIuNTQiIHgyPSIzMi4zOSIgeTI9IjE4LjAyIi8+PHBvbHlnb24gY2xhc3M9ImNscy05 IiBwb2ludHM9IjM4LjUyIDM2LjM4IDM3LjY1IDMyLjI1IDQyLjI0IDM0LjM5IDM4LjUyIDM2LjM4 Ii8+PGxpbmUgY2xhc3M9ImNscy0xMCIgeDE9IjQwLjA2IiB5MT0iMzMuMDYiIHgyPSI0Ni42NSIg eTI9IjE4Ljk0Ii8+PC9nPjwvc3ZnPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAt LWdpdCBhL3dlYi9wZ2FkbWluL3N0YXRpYy9qcy9FeHBsYWluL2ltZy9leF9nYXRoZXJfbW90aW9u LnN2ZyBiL3dlYi9wZ2FkbWluL3N0YXRpYy9qcy9FeHBsYWluL2ltZy9leF9nYXRoZXJfbW90aW9u LnN2ZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAuLmIzZjIwODFhZAotLS0g L2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL3N0YXRpYy9qcy9FeHBsYWluL2ltZy9leF9nYXRo ZXJfbW90aW9uLnN2ZwpAQCAtMCwwICsxIEBACis8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9y Zy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDY0IDY0Ij48ZGVmcz48c3R5bGU+LmNscy0xe2ZpbGw6 I2FkZGZmMzt9LmNscy0ye2ZpbGw6IzI5ODBiOTt9LmNscy0ze2ZpbGw6bm9uZTtzdHJva2U6I2Qw NDQ2NTtzdHJva2UtbGluZWNhcDpyb3VuZDtzdHJva2UtbGluZWpvaW46cm91bmQ7fS5jbHMtNHtm aWxsOiNkMDQ0NjU7fS5jbHMtNXtmaWxsOiNmM2M3ZDc7fTwvc3R5bGU+PC9kZWZzPjx0aXRsZT5l eF9nYXRoZXJfbW90aW9uPC90aXRsZT48ZyBpZD0iZXhfZGVsZXRlIj48cmVjdCBjbGFzcz0iY2xz LTEiIHg9IjQ3LjE5IiB5PSI0NS40MyIgd2lkdGg9IjkiIGhlaWdodD0iOSIgcng9IjAuNSIgcnk9 IjAuNSIvPjxwYXRoIGNsYXNzPSJjbHMtMiIgZD0iTTU1LjY5LDQ1LjkzdjhoLTh2LThoOG0wLTFo LThhMSwxLDAsMCwwLTEsMXY4YTEsMSwwLDAsMCwxLDFoOGExLDEsMCwwLDAsMS0xdi04YTEsMSww LDAsMC0xLTFaIi8+PHJlY3QgY2xhc3M9ImNscy0xIiB4PSI3LjgxIiB5PSI0NS40MyIgd2lkdGg9 IjkiIGhlaWdodD0iOSIgcng9IjAuNSIgcnk9IjAuNSIvPjxwYXRoIGNsYXNzPSJjbHMtMiIgZD0i TTE2LjMxLDQ1LjkzdjhoLTh2LThoOG0wLTFoLThhMSwxLDAsMCwwLTEsMXY4YTEsMSwwLDAsMCwx LDFoOGExLDEsMCwwLDAsMS0xdi04YTEsMSwwLDAsMC0xLTFaIi8+PHJlY3QgY2xhc3M9ImNscy0x IiB4PSIyNy41MSIgeT0iOS41NyIgd2lkdGg9IjkiIGhlaWdodD0iOSIgcng9IjAuNSIgcnk9IjAu NSIvPjxwYXRoIGNsYXNzPSJjbHMtMiIgZD0iTTM2LDEwLjA3djhIMjh2LThoOG0wLTFIMjhhMSwx LDAsMCwwLTEsMXY4YTEsMSwwLDAsMCwxLDFoOGExLDEsMCwwLDAsMS0xdi04YTEsMSwwLDAsMC0x LTFaIi8+PGxpbmUgY2xhc3M9ImNscy0zIiB4MT0iMTguMTQiIHkxPSI0NC4yIiB4Mj0iMjEuOTIi IHkyPSI0Mi4wMiIvPjxwYXRoIGNsYXNzPSJjbHMtNCIgZD0iTTI0LDQwLjgyYTEyLjA5LDEyLjA5 LDAsMCwwLTIsMy4zNmwtLjM1LTItMS41NS0xLjNBMTIuMDgsMTIuMDgsMCwwLDAsMjQsNDAuODJa Ii8+PGxpbmUgY2xhc3M9ImNscy0zIiB4MT0iNDIuMDYiIHkxPSI0Mi4yMiIgeDI9IjQ1Ljg0IiB5 Mj0iNDQuNCIvPjxwYXRoIGNsYXNzPSJjbHMtNCIgZD0iTTQwLDQxYTEyLjA5LDEyLjA5LDAsMCwx LDIsMy4zNmwuMzUtMiwxLjU1LTEuM0ExMi4wOCwxMi4wOCwwLDAsMSw0MCw0MVoiLz48bGluZSBj bGFzcz0iY2xzLTMiIHgxPSIzMi4wOSIgeTE9IjIwLjA3IiB4Mj0iMzIuMDgiIHkyPSIyNC40MyIv PjxwYXRoIGNsYXNzPSJjbHMtNCIgZD0iTTMyLjA4LDI2Ljg1YTEyLjA5LDEyLjA5LDAsMCwwLTEu OS0zLjQybDEuOS42OSwxLjktLjY5QTEyLjA4LDEyLjA4LDAsMCwwLDMyLjA4LDI2Ljg1WiIvPjxj aXJjbGUgY2xhc3M9ImNscy01IiBjeD0iMzIuMDgiIGN5PSIzNS45MyIgcj0iNy41Ii8+PHBhdGgg Y2xhc3M9ImNscy00IiBkPSJNMzIuMDgsMjguOTNhNyw3LDAsMSwxLTcsNyw3LDcsMCwwLDEsNy03 bTAtMWE4LDgsMCwxLDAsOCw4LDgsOCwwLDAsMC04LThaIi8+PC9nPjwvc3ZnPgpcIE5vIG5ld2xp bmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL3N0YXRpYy9qcy9FeHBs YWluL2ltZy9leF9ncm91cC5zdmcgYi93ZWIvcGdhZG1pbi9zdGF0aWMvanMvRXhwbGFpbi9pbWcv ZXhfZ3JvdXAuc3ZnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMC4uNDRhYTk3 ZmUyCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vc3RhdGljL2pzL0V4cGxhaW4vaW1n L2V4X2dyb3VwLnN2ZwpAQCAtMCwwICsxIEBACis8c3ZnIGlkPSJfMSIgZGF0YS1uYW1lPSIxIiB4 bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2NCA2NCI+PGRl ZnM+PHN0eWxlPi5jbHMtMXtmaWxsOiNmMGVjYjY7fS5jbHMtMntmaWxsOiNjMThmMzU7fS5jbHMt MTAsLmNscy0ze2ZpbGw6I2QzZDRmMzt9LmNscy00e2ZpbGw6IzY2NmJkMTt9LmNscy01e2ZpbGw6 I2FkZGZmMzt9LmNscy02e2ZpbGw6IzI5ODBiOTt9LmNscy03e29wYWNpdHk6MC43O30uY2xzLTgs LmNscy05e2ZpbGw6bm9uZTtzdHJva2UtbGluZWpvaW46cm91bmQ7fS5jbHMtMTEsLmNscy04e3N0 cm9rZTojYzE4ZjM1O30uY2xzLTEwLC5jbHMtMTIsLmNscy05e3N0cm9rZTojNjY2YmQxO30uY2xz LTEwLC5jbHMtMTEsLmNscy0xMntzdHJva2UtbWl0ZXJsaW1pdDoxMDt9LmNscy0xMXtmaWxsOiMz NDQ5NWU7fS5jbHMtMTJ7ZmlsbDojNTI4ZDE5O308L3N0eWxlPjwvZGVmcz48dGl0bGU+ZXhfZ3Jv dXA8L3RpdGxlPjxyZWN0IGNsYXNzPSJjbHMtMSIgeD0iMTkuMDMiIHk9IjE2IiB3aWR0aD0iMzUu OTgiIGhlaWdodD0iMjQuOTYiLz48cGF0aCBjbGFzcz0iY2xzLTIiIGQ9Ik01NC41MiwxNi41djI0 aC0zNXYtMjRoMzVtMS0xaC0zN3YyNmgzN3YtMjZaIi8+PHBhdGggY2xhc3M9ImNscy0zIiBkPSJN MjAuNTMsNTZjLTEuMzcsMC0xLjUtLjEzLTEuNS0xLjVWNDFINTVWNTQuNWMwLDEuMzctLjEzLDEu NS0xLjUsMS41WiIvPjxwYXRoIGNsYXNzPSJjbHMtNCIgZD0iTTU0LjUyLDQxLjV2MTNhMy4yOCwz LjI4LDAsMCwxLS4wOC45LDIuMTgsMi4xOCwwLDAsMS0uOTIuMWgtMzNhMy4yNSwzLjI1LDAsMCwx LS45LS4wOGgwYTIuMTgsMi4xOCwwLDAsMS0uMS0uOTJ2LTEzaDM1bTEtMWgtMzd2MTRjMCwxLjY1 LjM1LDIsMiwyaDMzYzEuNjUsMCwyLS4zNSwyLTJ2LTE0WiIvPjxwYXRoIGNsYXNzPSJjbHMtNSIg ZD0iTTQ2Ljg3LDE2VjhoNi42M2MxLjM3LDAsMS41LjEzLDEuNSwxLjVWMTZaIi8+PHBhdGggY2xh c3M9ImNscy02IiBkPSJNNTMuNDksOC41YTMuMjUsMy4yNSwwLDAsMSwuOS4wOGgwYTIuMTgsMi4x OCwwLDAsMSwuMS45MnY2SDQ3LjM3di03aDYuMTNtMC0xSDQ2LjM3djloOS4xM3YtN2MwLTEuNjUt LjM1LTItMi0yWiIvPjxwYXRoIGNsYXNzPSJjbHMtNSIgZD0iTTE5LDE2VjkuNWMwLTEuMzcuMTMt MS41LDEuNS0xLjVoNi41OXY4WiIvPjxwYXRoIGNsYXNzPSJjbHMtNiIgZD0iTTI2LjU5LDguNXY3 SDE5LjUxdi02YTMuMjgsMy4yOCwwLDAsMSwuMDgtLjksMi4xOCwyLjE4LDAsMCwxLC45Mi0uMWg2 LjA5bTEtMUgyMC41MWMtMS42NSwwLTIsLjM1LTIsMnY3aDkuMDl2LTlaIi8+PHJlY3QgY2xhc3M9 ImNscy01IiB4PSI0MC4zMSIgeT0iOCIgd2lkdGg9IjcuMDUiIGhlaWdodD0iOCIvPjxwYXRoIGNs YXNzPSJjbHMtNiIgZD0iTTQ2Ljg2LDguNXY3SDQwLjh2LTdoNm0xLTFoLTh2OWg4LjA1di05WiIv PjxyZWN0IGNsYXNzPSJjbHMtNSIgeD0iMzMuNzQiIHk9IjgiIHdpZHRoPSI2LjU3IiBoZWlnaHQ9 IjgiLz48cGF0aCBjbGFzcz0iY2xzLTYiIGQ9Ik0zOS44MSw4LjV2N0gzNC4yNHYtN2g1LjU2bTEt MUgzMy4yNXY5aDcuNTd2LTlaIi8+PHJlY3QgY2xhc3M9ImNscy01IiB4PSIyNi42MiIgeT0iOCIg d2lkdGg9IjcuMSIgaGVpZ2h0PSI4Ii8+PHBhdGggY2xhc3M9ImNscy02IiBkPSJNMzMuMjMsOC41 djdIMjcuMTJ2LTdoNi4xbTEtMWgtOC4xdjloOC4xMXYtOVoiLz48ZyBjbGFzcz0iY2xzLTciPjxs aW5lIGNsYXNzPSJjbHMtOCIgeDE9IjI2LjYxIiB5MT0iNDAuNSIgeDI9IjI2LjYxIiB5Mj0iMTYu NSIvPjxsaW5lIGNsYXNzPSJjbHMtOCIgeDE9IjQwLjI5IiB5MT0iNDAuNSIgeDI9IjQwLjI5IiB5 Mj0iMTYuNSIvPjxsaW5lIGNsYXNzPSJjbHMtOCIgeDE9IjMzLjciIHkxPSI0MC41IiB4Mj0iMzMu NyIgeTI9IjE2LjUiLz48bGluZSBjbGFzcz0iY2xzLTgiIHgxPSI0Ny4zNyIgeTE9IjQwLjUiIHgy PSI0Ny4zNyIgeTI9IjE2LjUiLz48bGluZSBjbGFzcz0iY2xzLTkiIHgxPSIyNi42MSIgeTE9IjU1 LjYyIiB4Mj0iMjYuNjEiIHkyPSI0MC41Ii8+PGxpbmUgY2xhc3M9ImNscy05IiB4MT0iNDAuMjki IHkxPSI1NS42MiIgeDI9IjQwLjI5IiB5Mj0iNDAuNSIvPjxsaW5lIGNsYXNzPSJjbHMtOSIgeDE9 IjMzLjciIHkxPSI1NS42MiIgeDI9IjMzLjciIHkyPSI0MC41Ii8+PGxpbmUgY2xhc3M9ImNscy05 IiB4MT0iNDcuMzciIHkxPSI1NS42MiIgeDI9IjQ3LjM3IiB5Mj0iNDAuNSIvPjxsaW5lIGNsYXNz PSJjbHMtOCIgeDE9IjE5LjQ5IiB5MT0iMjQuMzUiIHgyPSI1NC40NiIgeTI9IjI0LjM1Ii8+PGxp bmUgY2xhc3M9ImNscy0xMCIgeDE9IjE5LjUyIiB5MT0iNDguNSIgeDI9IjU0LjQ5IiB5Mj0iNDgu NSIvPjxsaW5lIGNsYXNzPSJjbHMtOCIgeDE9IjE5LjQ5IiB5MT0iMzIuNzMiIHgyPSI1NC40NiIg eTI9IjMyLjczIi8+PC9nPjxwYXRoIGNsYXNzPSJjbHMtMTEiIGQ9Ik0xNC44OCwzOC4yOWwtLjUz LDBhNC4zNCw0LjM0LDAsMCwxLS42Ny0uMTFBNS4zOSw1LjM5LDAsMCwxLDEzLDM3LjlhMi45LDIu OSwwLDAsMS0uNy0uNDEsMy4zMSwzLjMxLDAsMCwxLS44My0uOUEzLjY1LDMuNjUsMCwwLDEsMTEs MzUuNTJjLS4wOS0uMzktLjIyLTUuMjUtLjMtNS42NmEyLjM5LDIuMzksMCwwLDAtLjQ3LTEuMDYs Mi42NiwyLjY2LDAsMCwwLTEtLjczLjY5LjY5LDAsMCwxLDAtMS4xNywyLjY1LDIuNjUsMCwwLDAs MS0uNzMsMi4zNywyLjM3LDAsMCwwLC40Ny0xLjA2Yy4wOC0uNDEuMTMtMi45MS4xNC0zLjM4QTcs NywwLDAsMSwxMSwyMC40NWEzLjY2LDMuNjYsMCwwLDEsLjQzLTEuMDcsMy4zNCwzLjM0LDAsMCwx LC44My0uOSwyLjg5LDIuODksMCwwLDEsLjctLjQxLDUuMTIsNS4xMiwwLDAsMSwuNzItLjIzLDQu MTEsNC4xMSwwLDAsMSwuNjctLjExbC41Mywwdi40NGE0LjQ3LDQuNDcsMCwwLDAtMi4wNS41MSwy LjgyLDIuODIsMCwwLDAtMS4wNiwxLjA4LDMuNTgsMy41OCwwLDAsMC0uNCwxLjRjMCwuNS0uMTQs My43LS4yLDRhMi43NywyLjc3LDAsMCwxLS4yNi44MywyLjQxLDIuNDEsMCwwLDEtLjQ0LjYsMi41 MiwyLjUyLDAsMCwxLS42Mi40NiwzLjY1LDMuNjUsMCwwLDEtLjY0LjI3LDMuNTIsMy41MiwwLDAs MS0uNi4xM2MtLjE5LDAtLjE5LjEsMCwuMTJhMy41LDMuNSwwLDAsMSwuNi4xMyw0LDQsMCwwLDEs LjY0LjI3LDIuNTMsMi41MywwLDAsMSwuNjIuNDYsMi4zNywyLjM3LDAsMCwxLC40NC42LDIuNzYs Mi43NiwwLDAsMSwuMjYuODMsMi41NiwyLjU2LDAsMCwxLC4xMy45M3MwLDMuNi4wNiw0LjFhMy41 OSwzLjU5LDAsMCwwLC40LDEuNCwyLjgxLDIuODEsMCwwLDAsMS4wNiwxLjA4LDQuNDIsNC40Miww LDAsMCwyLjA1LjUxWiIvPjxwYXRoIGNsYXNzPSJjbHMtMTIiIGQ9Ik0xNC44OCw1NS4zbC0uNTMs MGE0LjM0LDQuMzQsMCwwLDEtLjY3LS4xMSw1LjM5LDUuMzksMCwwLDEtLjcyLS4yMywyLjksMi45 LDAsMCwxLS43LS40MSwzLjMxLDMuMzEsMCwwLDEtLjgzLS45QTMuNjUsMy42NSwwLDAsMSwxMSw1 Mi41M2MtLjA5LS4zOS0uMjItMS4yNS0uMy0xLjY2YTIuMzksMi4zOSwwLDAsMC0uNDctMS4wNiwy LjY2LDIuNjYsMCwwLDAtMS0uNzMuNjkuNjksMCwwLDEsMC0xLjE3LDIuNjUsMi42NSwwLDAsMCwx LS43MywyLjM3LDIuMzcsMCwwLDAsLjQ3LTEuMDZjLjA4LS40MS4yMS0xLjI4LjMtMS42NmEzLjY2 LDMuNjYsMCwwLDEsLjQzLTEuMDcsMy4zNCwzLjM0LDAsMCwxLC44My0uOSwyLjg5LDIuODksMCww LDEsLjctLjQxLDUuMTIsNS4xMiwwLDAsMSwuNzItLjIzLDQuMTEsNC4xMSwwLDAsMSwuNjctLjEx bC41Mywwdi40NGE0LjQ3LDQuNDcsMCwwLDAtMi4wNS41MSwyLjgyLDIuODIsMCwwLDAtMS4wNiwx LjA4LDMuNTgsMy41OCwwLDAsMC0uNCwxLjQsNy42Niw3LjY2LDAsMCwxLS4yLDEsMi43NywyLjc3 LDAsMCwxLS4yNi44MywyLjQxLDIuNDEsMCwwLDEtLjQ0LjYsMi41MiwyLjUyLDAsMCwxLS42Mi40 NiwzLjY1LDMuNjUsMCwwLDEtLjY0LjI3LDMuNTIsMy41MiwwLDAsMS0uNi4xM2MtLjE5LDAtLjE5 LjEsMCwuMTJhMy41LDMuNSwwLDAsMSwuNi4xMyw0LDQsMCwwLDEsLjY0LjI3LDIuNTMsMi41Myww LDAsMSwuNjIuNDYsMi4zNywyLjM3LDAsMCwxLC40NC42LDIuNzYsMi43NiwwLDAsMSwuMjYuODMs Ny42Niw3LjY2LDAsMCwxLC4yLDEsMy41OSwzLjU5LDAsMCwwLC40LDEuNCwyLjgxLDIuODEsMCww LDAsMS4wNiwxLjA4LDQuNDIsNC40MiwwLDAsMCwyLjA1LjUxWiIvPjwvc3ZnPgpcIE5vIG5ld2xp bmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL3N0YXRpYy9qcy9FeHBs YWluL2ltZy9leF9oYXNoLnN2ZyBiL3dlYi9wZ2FkbWluL3N0YXRpYy9qcy9FeHBsYWluL2ltZy9l eF9oYXNoLnN2ZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAuLmRmZDhjNmNi NwotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL3N0YXRpYy9qcy9FeHBsYWluL2ltZy9l eF9oYXNoLnN2ZwpAQCAtMCwwICsxIEBACis8c3ZnIGlkPSJfMSIgZGF0YS1uYW1lPSIxIiB4bWxu cz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2NCA2NCI+PGRlZnM+ PHN0eWxlPi5jbHMtMSwuY2xzLTEwLC5jbHMtMTF7ZmlsbDojZDNkNGYzO30uY2xzLTJ7ZmlsbDoj NjY2YmQxO30uY2xzLTN7ZmlsbDojYWRkZmYzO30uY2xzLTR7ZmlsbDojMjk4MGI5O30uY2xzLTV7 b3BhY2l0eTowLjc7fS5jbHMtMTIsLmNscy02e2ZpbGw6bm9uZTt9LmNscy0xMCwuY2xzLTExLC5j bHMtNntzdHJva2U6IzY2NmJkMTt9LmNscy0xMiwuY2xzLTE0LC5jbHMtMTUsLmNscy02e3N0cm9r ZS1saW5lam9pbjpyb3VuZDt9LmNscy03e2ZpbGw6I2YwZWNiNjt9LmNscy04e2ZpbGw6I2MxOGYz NTt9LmNscy05e2ZpbGw6IzcyY2VlZTtzdHJva2U6IzI5ODBiOTt9LmNscy0xNSwuY2xzLTl7c3Ry b2tlLWxpbmVjYXA6cm91bmQ7fS5jbHMtMTAsLmNscy0xMSwuY2xzLTl7c3Ryb2tlLW1pdGVybGlt aXQ6MTA7fS5jbHMtMTEsLmNscy0xMntvcGFjaXR5OjAuODt9LmNscy0xMntzdHJva2U6I2MxOGYz NTt9LmNscy0xM3tmaWxsOiNjMDA7fS5jbHMtMTQsLmNscy0xNXtmaWxsOiM1MjhkMTk7c3Ryb2tl OiM1MjhkMTk7fS5jbHMtMTV7c3Ryb2tlLXdpZHRoOjJweDt9PC9zdHlsZT48L2RlZnM+PHRpdGxl PmV4X2hhc2g8L3RpdGxlPjxwYXRoIGNsYXNzPSJjbHMtMSIgZD0iTTEwLjM4LDU2LjVjLTEuMzcs MC0xLjUtLjEzLTEuNS0xLjVWMTUuNWg5VjU1YzAsMS4zNy0uMTMsMS41LTEuNSwxLjVaIi8+PHBh dGggY2xhc3M9ImNscy0yIiBkPSJNMTcuMzYsMTZWNTVhMy4yOCwzLjI4LDAsMCwxLS4wOC45LDIu MTgsMi4xOCwwLDAsMS0uOTIuMWgtNmEzLjI1LDMuMjUsMCwwLDEtLjktLjA4aDBhMi4xNywyLjE3 LDAsMCwxLS4xLS45MlYxNmg4bTEtMWgtMTBWNTVjMCwxLjY1LjM1LDIsMiwyaDZjMS42NSwwLDIt LjM1LDItMlYxNVoiLz48cGF0aCBjbGFzcz0iY2xzLTMiIGQ9Ik04Ljg4LDE1LjVWOWMwLTEuMzcu MTMtMS41LDEuNS0xLjVoNmMxLjM3LDAsMS41LjEzLDEuNSwxLjV2Ni41WiIvPjxwYXRoIGNsYXNz PSJjbHMtNCIgZD0iTTE2LjM2LDhhMy4yNSwzLjI1LDAsMCwxLC45LjA4aDBhMi4xNywyLjE3LDAs MCwxLC4xLjkydjZoLThWOWEzLjI4LDMuMjgsMCwwLDEsLjA4LS45LDIuMTgsMi4xOCwwLDAsMSwu OTItLjFoNm0wLTFoLTZjLTEuNjUsMC0yLC4zNS0yLDJ2N2gxMFY5YzAtMS42NS0uMzUtMi0yLTJa Ii8+PGcgY2xhc3M9ImNscy01Ij48bGluZSBjbGFzcz0iY2xzLTYiIHgxPSI5LjM5IiB5MT0iMjMu NzQiIHgyPSIxNy4zNSIgeTI9IjIzLjc0Ii8+PGxpbmUgY2xhc3M9ImNscy02IiB4MT0iOS4zOSIg eTE9IjMxLjQ5IiB4Mj0iMTcuMzUiIHkyPSIzMS40OSIvPjxsaW5lIGNsYXNzPSJjbHMtNiIgeDE9 IjkuMzkiIHkxPSIzOS4yMyIgeDI9IjE3LjM1IiB5Mj0iMzkuMjMiLz48bGluZSBjbGFzcz0iY2xz LTYiIHgxPSI5LjM5IiB5MT0iNDYuOTciIHgyPSIxNy4zNSIgeTI9IjQ2Ljk3Ii8+PC9nPjxwYXRo IGNsYXNzPSJjbHMtMSIgZD0iTTQ3LjQsNDYuMjJ2LTI4aDYuMjJjMS4zNywwLDEuNS4xMywxLjUs MS41djI1YzAsMS4zNy0uMTMsMS41LTEuNSwxLjVaIi8+PHBhdGggY2xhc3M9ImNscy0yIiBkPSJN NTMuNjIsMTguNzJhMy4yNSwzLjI1LDAsMCwxLC45LjA4aDBhMi4xOCwyLjE4LDAsMCwxLC4xLjky djI1YTMuMjgsMy4yOCwwLDAsMS0uMDguOSwyLjE4LDIuMTgsMCwwLDEtLjkyLjFINDcuOXYtMjdo NS43Mm0wLTFINDYuOXYyOWg2LjcyYzEuNjUsMCwyLS4zNSwyLTJ2LTI1YzAtMS42NS0uMzUtMi0y LTJaIi8+PHBhdGggY2xhc3M9ImNscy03IiBkPSJNMjYuNjQsNDYuMjJjLTEuMzcsMC0xLjUtLjEz LTEuNS0xLjVWMjQuMjJINDcuNDJ2MjJaIi8+PHBhdGggY2xhc3M9ImNscy04IiBkPSJNNDYuOTIs MjQuNzJ2MjFIMjYuNjRhMy4yNSwzLjI1LDAsMCwxLS45LS4wOGgwYTIuMTgsMi4xOCwwLDAsMS0u MS0uOTJ2LTIwSDQ2LjkybTEtMUgyNC42NHYyMWMwLDEuNjUuMzUsMiwyLDJINDcuOTJ2LTIzWiIv PjxwYXRoIGNsYXNzPSJjbHMtMyIgZD0iTTI1LjE0LDI0LjIydi00LjVjMC0xLjM3LjEzLTEuNSwx LjUtMS41SDQ3LjQydjZaIi8+PHBhdGggY2xhc3M9ImNscy00IiBkPSJNNDYuOTIsMTguNzJ2NUgy NS42NHYtNGEzLjI4LDMuMjgsMCwwLDEsLjA4LS45LDIuMTgsMi4xOCwwLDAsMSwuOTItLjFINDYu OTJtMS0xSDI2LjY0Yy0xLjY1LDAtMiwuMzUtMiwydjVINDcuOTJ2LTdaIi8+PGxpbmUgY2xhc3M9 ImNscy05IiB4MT0iMzIuNiIgeTE9IjI0LjA1IiB4Mj0iMzIuNiIgeTI9IjE4LjI0Ii8+PGxpbmUg Y2xhc3M9ImNscy0xMCIgeDE9IjU1IiB5MT0iMjQuMjIiIHgyPSI0Ny45MiIgeTI9IjI0LjIyIi8+ PGxpbmUgY2xhc3M9ImNscy0xMSIgeDE9IjU1IiB5MT0iMzEuNDkiIHgyPSI0Ny45MiIgeTI9IjMx LjQ5Ii8+PGxpbmUgY2xhc3M9ImNscy0xMSIgeDE9IjU1IiB5MT0iMzguOTYiIHgyPSI0Ny45MiIg eTI9IjM4Ljk2Ii8+PGxpbmUgY2xhc3M9ImNscy05IiB4MT0iNDAuMzUiIHkxPSIyNC4wNSIgeDI9 IjQwLjM1IiB5Mj0iMTguMjQiLz48bGluZSBjbGFzcz0iY2xzLTEyIiB4MT0iMzIuNiIgeTE9IjQ2 LjA1IiB4Mj0iMzIuNiIgeTI9IjI0LjcyIi8+PGxpbmUgY2xhc3M9ImNscy0xMiIgeDE9IjQwLjM1 IiB5MT0iNDYuMDUiIHgyPSI0MC4zNSIgeTI9IjI0LjcyIi8+PGxpbmUgY2xhc3M9ImNscy0xMiIg eDE9IjI1LjE3IiB5MT0iMzEuNTciIHgyPSI0Ny40MiIgeTI9IjMxLjU3Ii8+PGxpbmUgY2xhc3M9 ImNscy0xMiIgeDE9IjI1LjE3IiB5MT0iMzguOTYiIHgyPSI0Ny40MiIgeTI9IjM4Ljk2Ii8+PHBh dGggY2xhc3M9ImNscy0xMyIgZD0iTTEwLjI3LDMyLjg2aDYuMzhWMzhIMTAuMjdaIi8+PHBhdGgg Y2xhc3M9ImNscy0xMyIgZD0iTTMzLjgxLDMyLjcxaDUuNHY1LjIzaC01LjRaIi8+PHBvbHlnb24g Y2xhc3M9ImNscy0xNCIgcG9pbnRzPSIzMy40MyAzNS41MyAzMC4wNSAzMyAzMC4wNSAzOC4wNiAz My40MyAzNS41MyIvPjxsaW5lIGNsYXNzPSJjbHMtMTUiIHgxPSIyOS43NyIgeTE9IjM1LjUzIiB4 Mj0iMTkuMzMiIHkyPSIzNS41MyIvPjxwb2x5Z29uIGNsYXNzPSJjbHMtMTQiIHBvaW50cz0iMzYu ODQgNy42NyAzNC4zMSAxMS4wNSAzOS4zNyAxMS4wNSAzNi44NCA3LjY3Ii8+PGxpbmUgY2xhc3M9 ImNscy0xNSIgeDE9IjM2Ljg0IiB5MT0iMTEuMzMiIHgyPSIzNi44NCIgeTI9IjMwLjc3Ii8+PC9z dmc+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4v c3RhdGljL2pzL0V4cGxhaW4vaW1nL2V4X2hhc2hfYW50aV9qb2luLnN2ZyBiL3dlYi9wZ2FkbWlu L3N0YXRpYy9qcy9FeHBsYWluL2ltZy9leF9oYXNoX2FudGlfam9pbi5zdmcKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwLi4zOWE5MzU0YjgKLS0tIC9kZXYvbnVsbAorKysgYi93 ZWIvcGdhZG1pbi9zdGF0aWMvanMvRXhwbGFpbi9pbWcvZXhfaGFzaF9hbnRpX2pvaW4uc3ZnCkBA IC0wLDAgKzEgQEAKKzxzdmcgaWQ9Il8xIiBkYXRhLW5hbWU9IjEiIHhtbG5zPSJodHRwOi8vd3d3 LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDY0IDY0Ij48ZGVmcz48c3R5bGU+LmNscy0x LC5jbHMtMTB7ZmlsbDojZDNkNGYzO30uY2xzLTJ7ZmlsbDojNjY2YmQxO30uY2xzLTN7ZmlsbDoj YWRkZmYzO30uY2xzLTR7ZmlsbDojMjk4MGI5O30uY2xzLTV7b3BhY2l0eTowLjc7fS5jbHMtMTEs LmNscy0xNiwuY2xzLTZ7ZmlsbDpub25lO30uY2xzLTEwLC5jbHMtNntzdHJva2U6IzY2NmJkMTt9 LmNscy0xMSwuY2xzLTEzLC5jbHMtMTQsLmNscy02e3N0cm9rZS1saW5lam9pbjpyb3VuZDt9LmNs cy03e2ZpbGw6I2YwZWNiNjt9LmNscy04e2ZpbGw6I2MxOGYzNTt9LmNscy05e2ZpbGw6IzcyY2Vl ZTtzdHJva2U6IzI5ODBiOTt9LmNscy0xNCwuY2xzLTl7c3Ryb2tlLWxpbmVjYXA6cm91bmQ7fS5j bHMtMTAsLmNscy0xNiwuY2xzLTl7c3Ryb2tlLW1pdGVybGltaXQ6MTA7fS5jbHMtMTF7c3Ryb2tl OiNjMThmMzU7fS5jbHMtMTJ7ZmlsbDojYzAwO30uY2xzLTEzLC5jbHMtMTR7ZmlsbDojNTI4ZDE5 O3N0cm9rZTojNTI4ZDE5O30uY2xzLTE0e3N0cm9rZS13aWR0aDoycHg7fS5jbHMtMTV7ZmlsbDoj ZGVmNGZkO30uY2xzLTE2e3N0cm9rZTojYzAwO3N0cm9rZS13aWR0aDoxLjVweDt9PC9zdHlsZT48 L2RlZnM+PHRpdGxlPmV4X2hhc2hfYW50aV9qb2luPC90aXRsZT48cmVjdCBjbGFzcz0iY2xzLTEi IHg9IjguNjYiIHk9IjcuNSIgd2lkdGg9IjguOTgiIGhlaWdodD0iNDkiIHJ4PSIxLjUiIHJ5PSIx LjUiLz48cGF0aCBjbGFzcz0iY2xzLTIiIGQ9Ik0xNi4xNCw4YTMuMjUsMy4yNSwwLDAsMSwuOS4w OGgwYTIuMTgsMi4xOCwwLDAsMSwuMS45MlY1NWEzLjI4LDMuMjgsMCwwLDEtLjA4LjksMi4xOCwy LjE4LDAsMCwxLS45Mi4xaC02YTMuMjUsMy4yNSwwLDAsMS0uOS0uMDhoMGEyLjE4LDIuMTgsMCww LDEtLjEtLjkyVjlhMy4yOCwzLjI4LDAsMCwxLC4wOC0uOSwyLjE4LDIuMTgsMCwwLDEsLjkyLS4x aDZtMC0xaC02Yy0xLjY1LDAtMiwuMzUtMiwyVjU1YzAsMS42NS4zNSwyLDIsMmg2YzEuNjUsMCwy LS4zNSwyLTJWOWMwLTEuNjUtLjM1LTItMi0yWiIvPjxwYXRoIGNsYXNzPSJjbHMtMyIgZD0iTTgu NjYsMTUuNVY5YzAtMS4zNy4xMy0xLjUsMS41LTEuNWg2YzEuMzcsMCwxLjUuMTMsMS41LDEuNXY2 LjVaIi8+PHBhdGggY2xhc3M9ImNscy00IiBkPSJNMTYuMTQsOGEzLjI1LDMuMjUsMCwwLDEsLjku MDhoMGEyLjE4LDIuMTgsMCwwLDEsLjEuOTJ2NmgtOFY5YTMuMjgsMy4yOCwwLDAsMSwuMDgtLjks Mi4xOCwyLjE4LDAsMCwxLC45Mi0uMWg2bTAtMWgtNmMtMS42NSwwLTIsLjM1LTIsMnY3aDEwVjlj MC0xLjY1LS4zNS0yLTItMloiLz48ZyBjbGFzcz0iY2xzLTUiPjxsaW5lIGNsYXNzPSJjbHMtNiIg eDE9IjkuMTciIHkxPSIyMy43NCIgeDI9IjE3LjEzIiB5Mj0iMjMuNzQiLz48bGluZSBjbGFzcz0i Y2xzLTYiIHgxPSI5LjE3IiB5MT0iMzEuNDkiIHgyPSIxNy4xMyIgeTI9IjMxLjQ5Ii8+PGxpbmUg Y2xhc3M9ImNscy02IiB4MT0iOS4xNyIgeTE9IjM5LjIzIiB4Mj0iMTcuMTMiIHkyPSIzOS4yMyIv PjxsaW5lIGNsYXNzPSJjbHMtNiIgeDE9IjkuMTciIHkxPSI0Ni45NyIgeDI9IjE3LjEzIiB5Mj0i NDYuOTciLz48L2c+PHBhdGggY2xhc3M9ImNscy0xIiBkPSJNNDcuMTgsNDYuMjJ2LTI4SDUzLjRj MS4zNywwLDEuNS4xMywxLjUsMS41djI1YzAsMS4zNy0uMTMsMS41LTEuNSwxLjVaIi8+PHBhdGgg Y2xhc3M9ImNscy0yIiBkPSJNNTMuNCwxOC43MmEzLjI1LDMuMjUsMCwwLDEsLjkuMDhoMGEyLjE4 LDIuMTgsMCwwLDEsLjEuOTJ2MjVhMy4yOCwzLjI4LDAsMCwxLS4wOC45LDIuMTgsMi4xOCwwLDAs MS0uOTIuMUg0Ny42OHYtMjdINTMuNG0wLTFINDYuNjh2MjlINTMuNGMxLjY1LDAsMi0uMzUsMi0y di0yNWMwLTEuNjUtLjM1LTItMi0yWiIvPjxwYXRoIGNsYXNzPSJjbHMtNyIgZD0iTTI2LjQyLDQ2 LjIyYy0xLjM3LDAtMS41LS4xMy0xLjUtMS41VjI0LjIySDQ3LjJ2MjJaIi8+PHBhdGggY2xhc3M9 ImNscy04IiBkPSJNNDYuNywyNC43MnYyMUgyNi40MmEzLjI1LDMuMjUsMCwwLDEtLjktLjA4aDBh Mi4xOCwyLjE4LDAsMCwxLS4xLS45MnYtMjBINDYuN20xLTFIMjQuNDJ2MjFjMCwxLjY1LjM1LDIs MiwySDQ3Ljd2LTIzWiIvPjxwYXRoIGNsYXNzPSJjbHMtMyIgZD0iTTI0LjkyLDI0LjIydi00LjVj MC0xLjM3LjEzLTEuNSwxLjUtMS41SDQ3LjJ2NloiLz48cGF0aCBjbGFzcz0iY2xzLTQiIGQ9Ik00 Ni43LDE4LjcydjVIMjUuNDJ2LTRhMy4yOCwzLjI4LDAsMCwxLC4wOC0uOSwyLjE4LDIuMTgsMCww LDEsLjkyLS4xSDQ2LjdtMS0xSDI2LjQyYy0xLjY1LDAtMiwuMzUtMiwydjVINDcuN3YtN1oiLz48 bGluZSBjbGFzcz0iY2xzLTkiIHgxPSIzMi4zOCIgeTE9IjI0LjA1IiB4Mj0iMzIuMzgiIHkyPSIx OC4yNCIvPjxsaW5lIGNsYXNzPSJjbHMtMTAiIHgxPSI1NC43OCIgeTE9IjI0LjIyIiB4Mj0iNDcu NyIgeTI9IjI0LjIyIi8+PGxpbmUgY2xhc3M9ImNscy05IiB4MT0iNDAuMTMiIHkxPSIyNC4wNSIg eDI9IjQwLjEzIiB5Mj0iMTguMjQiLz48bGluZSBjbGFzcz0iY2xzLTExIiB4MT0iMzIuMzgiIHkx PSI0Ni4wNSIgeDI9IjMyLjM4IiB5Mj0iMjQuNzIiLz48bGluZSBjbGFzcz0iY2xzLTExIiB4MT0i NDAuMTMiIHkxPSI0Ni4wNSIgeDI9IjQwLjEzIiB5Mj0iMjQuNzIiLz48bGluZSBjbGFzcz0iY2xz LTExIiB4MT0iMjQuOTUiIHkxPSIzMS41NyIgeDI9IjQ3LjIiIHkyPSIzMS41NyIvPjxsaW5lIGNs YXNzPSJjbHMtMTEiIHgxPSIyNC45NSIgeTE9IjM4Ljk2IiB4Mj0iNDcuMiIgeTI9IjM4Ljk2Ii8+ PHBhdGggY2xhc3M9ImNscy0xMiIgZD0iTTEwLjA1LDMyLjg2aDYuMzdWMzhIMTAuMDVaIi8+PHBh dGggY2xhc3M9ImNscy0xMiIgZD0iTTMzLjU5LDMyLjcxSDM5djUuMjNoLTUuNFoiLz48cG9seWdv biBjbGFzcz0iY2xzLTEzIiBwb2ludHM9IjMzLjIxIDM1LjUzIDI5LjgzIDMzIDI5LjgzIDM4LjA2 IDMzLjIxIDM1LjUzIi8+PGxpbmUgY2xhc3M9ImNscy0xNCIgeDE9IjI5LjU1IiB5MT0iMzUuNTMi IHgyPSIxOS4xMSIgeTI9IjM1LjUzIi8+PHBvbHlnb24gY2xhc3M9ImNscy0xMyIgcG9pbnRzPSIz Ni42MiA3LjY3IDM0LjA5IDExLjA1IDM5LjE1IDExLjA1IDM2LjYyIDcuNjciLz48bGluZSBjbGFz cz0iY2xzLTE0IiB4MT0iMzYuNjIiIHkxPSIxMS4zMyIgeDI9IjM2LjYyIiB5Mj0iMzAuNzciLz48 Y2lyY2xlIGNsYXNzPSJjbHMtMTUiIGN4PSI1MC44IiBjeT0iMzQuMzciIHI9IjQuMjkiLz48cGF0 aCBjbGFzcz0iY2xzLTEyIiBkPSJNNTAuOCwzMC44M2EzLjU0LDMuNTQsMCwxLDEtMy41NCwzLjU0 LDMuNTUsMy41NSwwLDAsMSwzLjU0LTMuNTRtMC0xLjVhNSw1LDAsMSwwLDUsNSw1LDUsMCwwLDAt NS01WiIvPjxsaW5lIGNsYXNzPSJjbHMtMTYiIHgxPSI0Ny41MiIgeTE9IjM2LjY0IiB4Mj0iNTQu MDMiIHkyPSIzMS45MSIvPjwvc3ZnPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAt LWdpdCBhL3dlYi9wZ2FkbWluL3N0YXRpYy9qcy9FeHBsYWluL2ltZy9leF9oYXNoX3NlbWlfam9p bi5zdmcgYi93ZWIvcGdhZG1pbi9zdGF0aWMvanMvRXhwbGFpbi9pbWcvZXhfaGFzaF9zZW1pX2pv aW4uc3ZnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMC4uYzBkOTg4NmQ2Ci0t LSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vc3RhdGljL2pzL0V4cGxhaW4vaW1nL2V4X2hh c2hfc2VtaV9qb2luLnN2ZwpAQCAtMCwwICsxIEBACis8c3ZnIGlkPSJfMSIgZGF0YS1uYW1lPSIx IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2NCA2NCI+ PGRlZnM+PHN0eWxlPi5jbHMtMSwuY2xzLTEwLC5jbHMtMTF7ZmlsbDojZDNkNGYzO30uY2xzLTJ7 ZmlsbDojNjY2YmQxO30uY2xzLTN7ZmlsbDojYWRkZmYzO30uY2xzLTR7ZmlsbDojMjk4MGI5O30u Y2xzLTV7b3BhY2l0eTowLjc7fS5jbHMtMTIsLmNscy02e2ZpbGw6bm9uZTt9LmNscy0xMCwuY2xz LTExLC5jbHMtNntzdHJva2U6IzY2NmJkMTt9LmNscy0xMiwuY2xzLTE0LC5jbHMtMTUsLmNscy02 e3N0cm9rZS1saW5lam9pbjpyb3VuZDt9LmNscy03e2ZpbGw6I2YwZWNiNjt9LmNscy04e2ZpbGw6 I2MxOGYzNTt9LmNscy05e2ZpbGw6IzcyY2VlZTtzdHJva2U6IzI5ODBiOTt9LmNscy0xNSwuY2xz LTl7c3Ryb2tlLWxpbmVjYXA6cm91bmQ7fS5jbHMtMTAsLmNscy0xMSwuY2xzLTl7c3Ryb2tlLW1p dGVybGltaXQ6MTA7fS5jbHMtMTF7b3BhY2l0eTowLjg7fS5jbHMtMTJ7c3Ryb2tlOiNjMThmMzU7 fS5jbHMtMTN7ZmlsbDojYzAwO30uY2xzLTE0LC5jbHMtMTV7ZmlsbDojNTI4ZDE5O3N0cm9rZToj NTI4ZDE5O30uY2xzLTE1e3N0cm9rZS13aWR0aDoycHg7fTwvc3R5bGU+PC9kZWZzPjx0aXRsZT5l eF9oYXNoX3NlbWlfam9pbjwvdGl0bGU+PHBhdGggY2xhc3M9ImNscy0xIiBkPSJNMTAuMTYsNTYu NWMtMS4zNywwLTEuNS0uMTMtMS41LTEuNVYxNS41aDlWNTVjMCwxLjM3LS4xMywxLjUtMS41LDEu NVoiLz48cGF0aCBjbGFzcz0iY2xzLTIiIGQ9Ik0xNy4xNCwxNlY1NWEzLjI4LDMuMjgsMCwwLDEt LjA4LjksMi4xOCwyLjE4LDAsMCwxLS45Mi4xaC02YTMuMjUsMy4yNSwwLDAsMS0uOS0uMDhoMGEy LjE4LDIuMTgsMCwwLDEtLjEtLjkyVjE2aDhtMS0xaC0xMFY1NWMwLDEuNjUuMzUsMiwyLDJoNmMx LjY1LDAsMi0uMzUsMi0yVjE1WiIvPjxwYXRoIGNsYXNzPSJjbHMtMyIgZD0iTTguNjYsMTUuNVY5 YzAtMS4zNy4xMy0xLjUsMS41LTEuNWg2YzEuMzcsMCwxLjUuMTMsMS41LDEuNXY2LjVaIi8+PHBh dGggY2xhc3M9ImNscy00IiBkPSJNMTYuMTQsOGEzLjI1LDMuMjUsMCwwLDEsLjkuMDhoMGEyLjE4 LDIuMTgsMCwwLDEsLjEuOTJ2NmgtOFY5YTMuMjgsMy4yOCwwLDAsMSwuMDgtLjksMi4xOCwyLjE4 LDAsMCwxLC45Mi0uMWg2bTAtMWgtNmMtMS42NSwwLTIsLjM1LTIsMnY3aDEwVjljMC0xLjY1LS4z NS0yLTItMloiLz48ZyBjbGFzcz0iY2xzLTUiPjxsaW5lIGNsYXNzPSJjbHMtNiIgeDE9IjkuMTci IHkxPSIyMy43NCIgeDI9IjE3LjEzIiB5Mj0iMjMuNzQiLz48bGluZSBjbGFzcz0iY2xzLTYiIHgx PSI5LjE3IiB5MT0iMzEuNDkiIHgyPSIxNy4xMyIgeTI9IjMxLjQ5Ii8+PGxpbmUgY2xhc3M9ImNs cy02IiB4MT0iOS4xNyIgeTE9IjM5LjIzIiB4Mj0iMTcuMTMiIHkyPSIzOS4yMyIvPjxsaW5lIGNs YXNzPSJjbHMtNiIgeDE9IjkuMTciIHkxPSI0Ni45NyIgeDI9IjE3LjEzIiB5Mj0iNDYuOTciLz48 L2c+PHBhdGggY2xhc3M9ImNscy0xIiBkPSJNNDcuMTgsNDYuMjJ2LTI4SDUzLjRjMS4zNywwLDEu NS4xMywxLjUsMS41djI1YzAsMS4zNy0uMTMsMS41LTEuNSwxLjVaIi8+PHBhdGggY2xhc3M9ImNs cy0yIiBkPSJNNTMuNCwxOC43MmEzLjI1LDMuMjUsMCwwLDEsLjkuMDhoMGEyLjE4LDIuMTgsMCww LDEsLjEuOTJ2MjVhMy4yOCwzLjI4LDAsMCwxLS4wOC45LDIuMTgsMi4xOCwwLDAsMS0uOTIuMUg0 Ny42OHYtMjdINTMuNG0wLTFINDYuNjh2MjlINTMuNGMxLjY1LDAsMi0uMzUsMi0ydi0yNWMwLTEu NjUtLjM1LTItMi0yWiIvPjxwYXRoIGNsYXNzPSJjbHMtNyIgZD0iTTI2LjQyLDQ2LjIyYy0xLjM3 LDAtMS41LS4xMy0xLjUtMS41VjI0LjIySDQ3LjJ2MjJaIi8+PHBhdGggY2xhc3M9ImNscy04IiBk PSJNNDYuNywyNC43MnYyMUgyNi40MmEzLjI1LDMuMjUsMCwwLDEtLjktLjA4aDBhMi4xOCwyLjE4 LDAsMCwxLS4xLS45MnYtMjBINDYuN20xLTFIMjQuNDJ2MjFjMCwxLjY1LjM1LDIsMiwySDQ3Ljd2 LTIzWiIvPjxwYXRoIGNsYXNzPSJjbHMtMyIgZD0iTTI0LjkyLDI0LjIydi00LjVjMC0xLjM3LjEz LTEuNSwxLjUtMS41SDQ3LjJ2NloiLz48cGF0aCBjbGFzcz0iY2xzLTQiIGQ9Ik00Ni43LDE4Ljcy djVIMjUuNDJ2LTRhMy4yOCwzLjI4LDAsMCwxLC4wOC0uOSwyLjE4LDIuMTgsMCwwLDEsLjkyLS4x SDQ2LjdtMS0xSDI2LjQyYy0xLjY1LDAtMiwuMzUtMiwydjVINDcuN3YtN1oiLz48bGluZSBjbGFz cz0iY2xzLTkiIHgxPSIzMi4zOCIgeTE9IjI0LjA1IiB4Mj0iMzIuMzgiIHkyPSIxOC4yNCIvPjxs aW5lIGNsYXNzPSJjbHMtMTAiIHgxPSI1NC43OCIgeTE9IjI0LjIyIiB4Mj0iNDcuNyIgeTI9IjI0 LjIyIi8+PGxpbmUgY2xhc3M9ImNscy0xMSIgeDE9IjU0Ljc4IiB5MT0iMzEuNDkiIHgyPSI0Ny43 IiB5Mj0iMzEuNDkiLz48bGluZSBjbGFzcz0iY2xzLTExIiB4MT0iNTQuNzgiIHkxPSIzOC45NiIg eDI9IjQ3LjciIHkyPSIzOC45NiIvPjxsaW5lIGNsYXNzPSJjbHMtOSIgeDE9IjQwLjEzIiB5MT0i MjQuMDUiIHgyPSI0MC4xMyIgeTI9IjE4LjI0Ii8+PGxpbmUgY2xhc3M9ImNscy0xMiIgeDE9IjMy LjM4IiB5MT0iNDYuMDUiIHgyPSIzMi4zOCIgeTI9IjI0LjcyIi8+PGxpbmUgY2xhc3M9ImNscy0x MiIgeDE9IjQwLjEzIiB5MT0iNDYuMDUiIHgyPSI0MC4xMyIgeTI9IjI0LjcyIi8+PGxpbmUgY2xh c3M9ImNscy0xMiIgeDE9IjI0Ljk1IiB5MT0iMzEuNTciIHgyPSI0Ny4yIiB5Mj0iMzEuNTciLz48 bGluZSBjbGFzcz0iY2xzLTEyIiB4MT0iMjQuOTUiIHkxPSIzOC45NiIgeDI9IjQ3LjIiIHkyPSIz OC45NiIvPjxwYXRoIGNsYXNzPSJjbHMtMTMiIGQ9Ik0xMC4wNSwzMi44Nmg2LjM3VjM4SDEwLjA1 WiIvPjxwYXRoIGNsYXNzPSJjbHMtMTMiIGQ9Ik0zMy41OSwzMi43MUgzOXY1LjIzaC01LjRaIi8+ PHBvbHlnb24gY2xhc3M9ImNscy0xNCIgcG9pbnRzPSIzMy4yMSAzNS41MyAyOS44MyAzMyAyOS44 MyAzOC4wNiAzMy4yMSAzNS41MyIvPjxsaW5lIGNsYXNzPSJjbHMtMTUiIHgxPSIyOS41NSIgeTE9 IjM1LjUzIiB4Mj0iMTkuMTEiIHkyPSIzNS41MyIvPjxwb2x5Z29uIGNsYXNzPSJjbHMtMTQiIHBv aW50cz0iMzYuNjIgNy42NyAzNC4wOSAxMS4wNSAzOS4xNSAxMS4wNSAzNi42MiA3LjY3Ii8+PGxp bmUgY2xhc3M9ImNscy0xNSIgeDE9IjM2LjYyIiB5MT0iMTEuMzMiIHgyPSIzNi42MiIgeTI9IjMw Ljc3Ii8+PC9zdmc+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvd2Vi L3BnYWRtaW4vc3RhdGljL2pzL0V4cGxhaW4vaW1nL2V4X2hhc2hfc2V0b3BfZXhjZXB0LnN2ZyBi L3dlYi9wZ2FkbWluL3N0YXRpYy9qcy9FeHBsYWluL2ltZy9leF9oYXNoX3NldG9wX2V4Y2VwdC5z dmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwLi42ZDgzMTk5MzEKLS0tIC9k ZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9zdGF0aWMvanMvRXhwbGFpbi9pbWcvZXhfaGFzaF9z ZXRvcF9leGNlcHQuc3ZnCkBAIC0wLDAgKzEgQEAKKzxzdmcgaWQ9Il8xIiBkYXRhLW5hbWU9IjEi IHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDY0IDY0Ij48 ZGVmcz48c3R5bGU+LmNscy0xLC5jbHMtM3tmaWxsOiNmMGVjYjY7fS5jbHMtMntmaWxsOiNjMThm MzU7fS5jbHMtMTAsLmNscy0ze3N0cm9rZTojYzE4ZjM1O30uY2xzLTMsLmNscy05e3N0cm9rZS1t aXRlcmxpbWl0OjEwO30uY2xzLTEwLC5jbHMtMywuY2xzLTh7b3BhY2l0eTowLjg7fS5jbHMtNHtm aWxsOiNhZGRmZjM7fS5jbHMtNXtmaWxsOiMyOTgwYjk7fS5jbHMtNntmaWxsOiNkM2Q0ZjM7fS5j bHMtN3tmaWxsOiM2NjZiZDE7fS5jbHMtMTAsLmNscy04e2ZpbGw6bm9uZTtzdHJva2UtbGluZWpv aW46cm91bmQ7fS5jbHMtOHtzdHJva2U6IzY2NmJkMTt9LmNscy05e2ZpbGw6IzM0NDk1ZTtzdHJv a2U6IzUyOGQxOTt9LmNscy0xMXtmaWxsOiM4OGY2MjU7fTwvc3R5bGU+PC9kZWZzPjx0aXRsZT5l eF9oYXNoX3NldG9wX2V4Y2VwdDwvdGl0bGU+PHBhdGggY2xhc3M9ImNscy0xIiBkPSJNMTMuMTYs NTguMjFjLTEuMzcsMC0xLjUtLjEzLTEuNS0xLjVWMzkuNTJoN1Y1Ni43MWMwLDEuMzctLjEzLDEu NS0xLjUsMS41WiIvPjxwYXRoIGNsYXNzPSJjbHMtMiIgZD0iTTE4LjE1LDQwVjU2LjcxYTMuMjgs My4yOCwwLDAsMS0uMDguOSwyLjE4LDIuMTgsMCwwLDEtLjkyLjFoLTRhMy4yNSwzLjI1LDAsMCwx LS45LS4wOGgwYTIuMTcsMi4xNywwLDAsMS0uMS0uOTJWNDBoNm0xLTFoLThWNTYuNzFjMCwxLjY1 LjM1LDIsMiwyaDRjMS42NSwwLDItLjM1LDItMlYzOVoiLz48bGluZSBjbGFzcz0iY2xzLTMiIHgx PSIxMi4wNSIgeTE9IjQ1Ljg3IiB4Mj0iMTguMjkiIHkyPSI0NS44NyIvPjxsaW5lIGNsYXNzPSJj bHMtMyIgeDE9IjEyLjA1IiB5MT0iNTEuNzkiIHgyPSIxOC4yOSIgeTI9IjUxLjc5Ii8+PHBhdGgg Y2xhc3M9ImNscy00IiBkPSJNMTEuNjYsMTEuNjdWNy4xN2MwLTEuMzcuMTMtMS41LDEuNS0xLjVo NGMxLjM3LDAsMS41LjEzLDEuNSwxLjV2NC41WiIvPjxwYXRoIGNsYXNzPSJjbHMtNSIgZD0iTTE3 LjE1LDYuMTdhMy4yNSwzLjI1LDAsMCwxLC45LjA4aDBhMi4xOCwyLjE4LDAsMCwxLC4xLjkydjRo LTZ2LTRhMy4yOCwzLjI4LDAsMCwxLC4wOC0uOSwyLjE4LDIuMTgsMCwwLDEsLjkyLS4xaDRtMC0x aC00Yy0xLjY1LDAtMiwuMzUtMiwydjVoOHYtNWMwLTEuNjUtLjM1LTItMi0yWiIvPjxwYXRoIGNs YXNzPSJjbHMtNiIgZD0iTTEzLjE2LDMwLjM2Yy0xLjM3LDAtMS41LS4xMy0xLjUtMS41VjExLjY3 aDdWMjguODZjMCwxLjM3LS4xMywxLjUtMS41LDEuNVoiLz48cGF0aCBjbGFzcz0iY2xzLTciIGQ9 Ik0xOC4xNSwxMi4xN1YyOC44NmEzLjI4LDMuMjgsMCwwLDEtLjA4LjksMi4xOCwyLjE4LDAsMCwx LS45Mi4xaC00YTMuMjUsMy4yNSwwLDAsMS0uOS0uMDhoMGEyLjE4LDIuMTgsMCwwLDEtLjEtLjky VjEyLjE3aDZtMS0xaC04VjI4Ljg2YzAsMS42NS4zNSwyLDIsMmg0YzEuNjUsMCwyLS4zNSwyLTJW MTEuMTdaIi8+PGxpbmUgY2xhc3M9ImNscy04IiB4MT0iMTIuMDUiIHkxPSIxOC4wMiIgeDI9IjE4 LjI5IiB5Mj0iMTguMDIiLz48bGluZSBjbGFzcz0iY2xzLTgiIHgxPSIxMi4wNSIgeTE9IjIzLjk0 IiB4Mj0iMTguMjkiIHkyPSIyMy45NCIvPjxwYXRoIGNsYXNzPSJjbHMtNCIgZD0iTTExLjY2LDM5 LjUyVjM1YzAtMS4zNy4xMy0xLjUsMS41LTEuNWg0YzEuMzcsMCwxLjUuMTMsMS41LDEuNXY0LjVa Ii8+PHBhdGggY2xhc3M9ImNscy01IiBkPSJNMTcuMTUsMzRhMy4yNSwzLjI1LDAsMCwxLC45LjA4 aDBhMi4xNywyLjE3LDAsMCwxLC4xLjkydjRoLTZWMzVhMy4yOCwzLjI4LDAsMCwxLC4wOC0uOSwy LjE4LDIuMTgsMCwwLDEsLjkyLS4xaDRtMC0xaC00Yy0xLjY1LDAtMiwuMzUtMiwydjVoOFYzNWMw LTEuNjUtLjM1LTItMi0yWiIvPjxwYXRoIGNsYXNzPSJjbHMtOSIgZD0iTTIyLjI1LDQxLjEyYTQu NDIsNC40MiwwLDAsMCwyLjA1LS41MSwyLjgxLDIuODEsMCwwLDAsMS4wNi0xLjA4LDMuNTksMy41 OSwwLDAsMCwuNC0xLjRxLjA2LS43NS4wNi0xLjQ2VjM3YzAtLjY4LDAtMS4yNSwwLTEuNzJBOS4y OCw5LjI4LDAsMCwxLDI2LDM0LjFhMi43NiwyLjc2LDAsMCwxLC4yNi0uODMsMi4zNywyLjM3LDAs MCwxLC40NC0uNiwyLjUzLDIuNTMsMCwwLDEsLjYyLS40Niw0LDQsMCwwLDEsLjY0LS4yNywzLjUs My41LDAsMCwxLC42LS4xM2MuMTksMCwuMTktLjEsMC0uMTJhMy41MiwzLjUyLDAsMCwxLS42LS4x MywzLjY1LDMuNjUsMCwwLDEtLjY0LS4yNywyLjUyLDIuNTIsMCwwLDEtLjYyLS40NiwyLjQxLDIu NDEsMCwwLDEtLjQ0LS42LDIuNzcsMi43NywwLDAsMS0uMjYtLjgzLDkuMzEsOS4zMSwwLDAsMS0u MTEtMS4ycTAtLjcxLDAtMS43M3YuMzZjMC0uNDcsMC0xLS4wNi0xLjQ2YTMuNTgsMy41OCwwLDAs MC0uNC0xLjRBMi44MiwyLjgyLDAsMCwwLDI0LjMsMjIuOWE0LjQ3LDQuNDcsMCwwLDAtMi4wNS0u NTFWMjJsLjUzLDBhNC4xMSw0LjExLDAsMCwxLC42Ny4xMSw1LjEyLDUuMTIsMCwwLDEsLjcyLjIz LDIuODksMi44OSwwLDAsMSwuNy40MSwzLjM0LDMuMzQsMCwwLDEsLjgzLjksMy42NiwzLjY2LDAs MCwxLC40MywxLjA3QTcsNywwLDAsMSwyNi4yOCwyNmMwLC40NywwLDEuODgsMCwxLjg4YTcuOSw3 LjksMCwwLDAsLjEyLDEuNSwyLjM3LDIuMzcsMCwwLDAsLjQ3LDEuMDYsMi42NSwyLjY1LDAsMCww LDEsLjczLjY5LjY5LDAsMCwxLDAsMS4xNywyLjY2LDIuNjYsMCwwLDAtMSwuNzMsMi4zOSwyLjM5 LDAsMCwwLS40NywxLjA2LDcuOSw3LjksMCwwLDAtLjEyLDEuNXMtLjA5LDIuNzgtLjE4LDMuMTdh My42NSwzLjY1LDAsMCwxLS40MywxLjA3LDMuMzEsMy4zMSwwLDAsMS0uODMuOSwyLjksMi45LDAs MCwxLS43LjQxLDUuMzksNS4zOSwwLDAsMS0uNzIuMjMsNC4zNCw0LjM0LDAsMCwxLS42Ny4xMWwt LjUzLDBaIi8+PHBhdGggY2xhc3M9ImNscy0xIiBkPSJNMzUuMTgsMzcuNzljLTEuMzcsMC0xLjUt LjEzLTEuNS0xLjVWMjQuNzlINDF2MTNaIi8+PHBhdGggY2xhc3M9ImNscy0yIiBkPSJNNDAuNDYs MjUuMjl2MTJIMzUuMThhMy4yNSwzLjI1LDAsMCwxLS45LS4wOGgwYTIuMTcsMi4xNywwLDAsMS0u MS0uOTJ2LTExaDYuMjhtMS0xSDMzLjE4djEyYzAsMS42NS4zNSwyLDIsMmg2LjI4di0xNFoiLz48 cGF0aCBjbGFzcz0iY2xzLTYiIGQ9Ik00MC45NSwzNy43OXYtMTNoNy4yOHYxMS41YzAsMS4zNy0u MTMsMS41LTEuNSwxLjVaIi8+PHBhdGggY2xhc3M9ImNscy03IiBkPSJNNDcuNzMsMjUuMjl2MTFh My4yOCwzLjI4LDAsMCwxLS4wOC45LDIuMTgsMi4xOCwwLDAsMS0uOTIuMUg0MS40NXYtMTJoNi4y OG0xLTFINDAuNDV2MTRoNi4yOGMxLjY1LDAsMi0uMzUsMi0ydi0xMloiLz48cGF0aCBjbGFzcz0i Y2xzLTQiIGQ9Ik0zMy42OCwyNC43OXYtNC41YzAtMS4zNy4xMy0xLjUsMS41LTEuNUg0MXY2WiIv PjxwYXRoIGNsYXNzPSJjbHMtNSIgZD0iTTQwLjQ2LDE5LjI5djVIMzQuMTh2LTRhMy4yOCwzLjI4 LDAsMCwxLC4wOC0uOSwyLjE4LDIuMTgsMCwwLDEsLjkyLS4xaDUuMjhtMS0xSDM1LjE4Yy0xLjY1 LDAtMiwuMzUtMiwydjVoOC4yOHYtN1oiLz48cGF0aCBjbGFzcz0iY2xzLTQiIGQ9Ik00MC45NSwy NC43OXYtNmg1Ljc4YzEuMzcsMCwxLjUuMTMsMS41LDEuNXY0LjVaIi8+PHBhdGggY2xhc3M9ImNs cy01IiBkPSJNNDYuNzMsMTkuMjlhMy4yNSwzLjI1LDAsMCwxLC45LjA4aDBhMi4xOCwyLjE4LDAs MCwxLC4xLjkydjRINDEuNDV2LTVoNS4yOG0wLTFINDAuNDV2N2g4LjI4di01YzAtMS42NS0uMzUt Mi0yLTJaIi8+PGxpbmUgY2xhc3M9ImNscy04IiB4MT0iNDAuNzEiIHkxPSIzMS4xNCIgeDI9IjQ4 LjIiIHkyPSIzMS4xNCIvPjxsaW5lIGNsYXNzPSJjbHMtMTAiIHgxPSIzMy43MSIgeTE9IjMxLjE0 IiB4Mj0iNDAuNDUiIHkyPSIzMS4xNCIvPjxwYXRoIGNsYXNzPSJjbHMtMTEiIGQ9Ik0zNiw1MC40 MmE4LjQsOC40LDAsMCwxLDUtNy42Niw4LjQsOC40LDAsMSwwLDAsMTUuMzNBOC40LDguNCwwLDAs MSwzNiw1MC40MloiLz48cGF0aCBjbGFzcz0iY2xzLTIiIGQ9Ik0zNy41Niw0My40YTYuOSw2Ljks MCwxLDEtNi45LDYuOSw2LjkxLDYuOTEsMCwwLDEsNi45LTYuOW0wLTEuNWE4LjQsOC40LDAsMSww LDguNCw4LjQsOC40LDguNCwwLDAsMC04LjQtOC40WiIvPjxwYXRoIGNsYXNzPSJjbHMtNyIgZD0i TTQ0LjQzLDQzLjRhNi45LDYuOSwwLDEsMS02LjksNi45LDYuOTEsNi45MSwwLDAsMSw2LjktNi45 bTAtMS41YTguNCw4LjQsMCwxLDAsOC40LDguNCw4LjQsOC40LDAsMCwwLTguNC04LjRaIi8+PC9z dmc+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4v c3RhdGljL2pzL0V4cGxhaW4vaW1nL2V4X2hhc2hfc2V0b3BfZXhjZXB0X2FsbC5zdmcgYi93ZWIv cGdhZG1pbi9zdGF0aWMvanMvRXhwbGFpbi9pbWcvZXhfaGFzaF9zZXRvcF9leGNlcHRfYWxsLnN2 ZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAuLmM0N2IxMDgxZAotLS0gL2Rl di9udWxsCisrKyBiL3dlYi9wZ2FkbWluL3N0YXRpYy9qcy9FeHBsYWluL2ltZy9leF9oYXNoX3Nl dG9wX2V4Y2VwdF9hbGwuc3ZnCkBAIC0wLDAgKzEgQEAKKzxzdmcgaWQ9Il8xIiBkYXRhLW5hbWU9 IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDY0IDY0 Ij48ZGVmcz48c3R5bGU+LmNscy0xLC5jbHMtM3tmaWxsOiNmMGVjYjY7fS5jbHMtMntmaWxsOiNj MThmMzU7fS5jbHMtMTAsLmNscy0ze3N0cm9rZTojYzE4ZjM1O30uY2xzLTMsLmNscy05e3N0cm9r ZS1taXRlcmxpbWl0OjEwO30uY2xzLTEwLC5jbHMtMywuY2xzLTh7b3BhY2l0eTowLjg7fS5jbHMt NHtmaWxsOiNhZGRmZjM7fS5jbHMtNXtmaWxsOiMyOTgwYjk7fS5jbHMtNntmaWxsOiNkM2Q0ZjM7 fS5jbHMtN3tmaWxsOiM2NjZiZDE7fS5jbHMtMTAsLmNscy04e2ZpbGw6bm9uZTtzdHJva2UtbGlu ZWpvaW46cm91bmQ7fS5jbHMtOHtzdHJva2U6IzY2NmJkMTt9LmNscy0xMiwuY2xzLTl7ZmlsbDoj MzQ0OTVlO30uY2xzLTl7c3Ryb2tlOiM1MjhkMTk7fS5jbHMtMTF7ZmlsbDojODhmNjI1O30uY2xz LTEye2ZvbnQtc2l6ZTo5cHg7Zm9udC1mYW1pbHk6SGVsdmV0aWNhLUJvbGQsIEhlbHZldGljYTtm b250LXdlaWdodDo3MDA7fTwvc3R5bGU+PC9kZWZzPjx0aXRsZT5leF9oYXNoX3NldG9wX2V4Y2Vw dF9hbGw8L3RpdGxlPjxwYXRoIGNsYXNzPSJjbHMtMSIgZD0iTTEzLjE2LDU4LjIxYy0xLjM3LDAt MS41LS4xMy0xLjUtMS41VjM5LjUyaDdWNTYuNzFjMCwxLjM3LS4xMywxLjUtMS41LDEuNVoiLz48 cGF0aCBjbGFzcz0iY2xzLTIiIGQ9Ik0xOC4xNSw0MFY1Ni43MWEzLjI4LDMuMjgsMCwwLDEtLjA4 LjksMi4xOCwyLjE4LDAsMCwxLS45Mi4xaC00YTMuMjUsMy4yNSwwLDAsMS0uOS0uMDhoMGEyLjE3 LDIuMTcsMCwwLDEtLjEtLjkyVjQwaDZtMS0xaC04VjU2LjcxYzAsMS42NS4zNSwyLDIsMmg0YzEu NjUsMCwyLS4zNSwyLTJWMzlaIi8+PGxpbmUgY2xhc3M9ImNscy0zIiB4MT0iMTIuMDUiIHkxPSI0 NS44NyIgeDI9IjE4LjI5IiB5Mj0iNDUuODciLz48bGluZSBjbGFzcz0iY2xzLTMiIHgxPSIxMi4w NSIgeTE9IjUxLjc5IiB4Mj0iMTguMjkiIHkyPSI1MS43OSIvPjxwYXRoIGNsYXNzPSJjbHMtNCIg ZD0iTTExLjY2LDExLjY3VjcuMTdjMC0xLjM3LjEzLTEuNSwxLjUtMS41aDRjMS4zNywwLDEuNS4x MywxLjUsMS41djQuNVoiLz48cGF0aCBjbGFzcz0iY2xzLTUiIGQ9Ik0xNy4xNSw2LjE3YTMuMjUs My4yNSwwLDAsMSwuOS4wOGgwYTIuMTcsMi4xNywwLDAsMSwuMS45MnY0aC02di00YTMuMjgsMy4y OCwwLDAsMSwuMDgtLjksMi4xOCwyLjE4LDAsMCwxLC45Mi0uMWg0bTAtMWgtNGMtMS42NSwwLTIs LjM1LTIsMnY1aDh2LTVjMC0xLjY1LS4zNS0yLTItMloiLz48cGF0aCBjbGFzcz0iY2xzLTYiIGQ9 Ik0xMy4xNiwzMC4zNmMtMS4zNywwLTEuNS0uMTMtMS41LTEuNVYxMS42N2g3VjI4Ljg2YzAsMS4z Ny0uMTMsMS41LTEuNSwxLjVaIi8+PHBhdGggY2xhc3M9ImNscy03IiBkPSJNMTguMTUsMTIuMTdW MjguODZhMy4yOCwzLjI4LDAsMCwxLS4wOC45LDIuMTgsMi4xOCwwLDAsMS0uOTIuMWgtNGEzLjI1 LDMuMjUsMCwwLDEtLjktLjA4aDBhMi4xNywyLjE3LDAsMCwxLS4xLS45MlYxMi4xN2g2bTEtMWgt OFYyOC44NmMwLDEuNjUuMzUsMiwyLDJoNGMxLjY1LDAsMi0uMzUsMi0yVjExLjE3WiIvPjxsaW5l IGNsYXNzPSJjbHMtOCIgeDE9IjEyLjA1IiB5MT0iMTguMDIiIHgyPSIxOC4yOSIgeTI9IjE4LjAy Ii8+PGxpbmUgY2xhc3M9ImNscy04IiB4MT0iMTIuMDUiIHkxPSIyMy45NCIgeDI9IjE4LjI5IiB5 Mj0iMjMuOTQiLz48cGF0aCBjbGFzcz0iY2xzLTQiIGQ9Ik0xMS42NiwzOS41MlYzNWMwLTEuMzcu MTMtMS41LDEuNS0xLjVoNGMxLjM3LDAsMS41LjEzLDEuNSwxLjV2NC41WiIvPjxwYXRoIGNsYXNz PSJjbHMtNSIgZD0iTTE3LjE1LDM0YTMuMjUsMy4yNSwwLDAsMSwuOS4wOGgwYTIuMTcsMi4xNyww LDAsMSwuMS45MnY0aC02VjM1YTMuMjgsMy4yOCwwLDAsMSwuMDgtLjksMi4xOCwyLjE4LDAsMCwx LC45Mi0uMWg0bTAtMWgtNGMtMS42NSwwLTIsLjM1LTIsMnY1aDhWMzVjMC0xLjY1LS4zNS0yLTIt MloiLz48cGF0aCBjbGFzcz0iY2xzLTkiIGQ9Ik0yMi4yNSw0MS4xMmE0LjQyLDQuNDIsMCwwLDAs Mi4wNS0uNTEsMi44MSwyLjgxLDAsMCwwLDEuMDYtMS4wOCwzLjU5LDMuNTksMCwwLDAsLjQtMS40 cS4wNi0uNzUuMDYtMS40NlYzN2MwLS42OCwwLTEuMjUsMC0xLjcyQTkuMjgsOS4yOCwwLDAsMSwy NiwzNC4xYTIuNzYsMi43NiwwLDAsMSwuMjYtLjgzLDIuMzcsMi4zNywwLDAsMSwuNDQtLjYsMi41 MywyLjUzLDAsMCwxLC42Mi0uNDYsNCw0LDAsMCwxLC42NC0uMjcsMy41LDMuNSwwLDAsMSwuNi0u MTNjLjE5LDAsLjE5LS4xLDAtLjEyYTMuNTIsMy41MiwwLDAsMS0uNi0uMTMsMy42NSwzLjY1LDAs MCwxLS42NC0uMjcsMi41MiwyLjUyLDAsMCwxLS42Mi0uNDYsMi40MSwyLjQxLDAsMCwxLS40NC0u NiwyLjc3LDIuNzcsMCwwLDEtLjI2LS44Myw5LjMxLDkuMzEsMCwwLDEtLjExLTEuMnEwLS43MSww LTEuNzN2LjM2YzAtLjQ3LDAtMS0uMDYtMS40NmEzLjU4LDMuNTgsMCwwLDAtLjQtMS40QTIuODIs Mi44MiwwLDAsMCwyNC4zLDIyLjlhNC40Nyw0LjQ3LDAsMCwwLTIuMDUtLjUxVjIybC41MywwYTQu MTEsNC4xMSwwLDAsMSwuNjcuMTEsNS4xMiw1LjEyLDAsMCwxLC43Mi4yMywyLjg5LDIuODksMCww LDEsLjcuNDEsMy4zNCwzLjM0LDAsMCwxLC44My45LDMuNjYsMy42NiwwLDAsMSwuNDMsMS4wN0E3 LDcsMCwwLDEsMjYuMjgsMjZjMCwuNDcsMCwxLjg4LDAsMS44OGE3LjksNy45LDAsMCwwLC4xMiwx LjUsMi4zNywyLjM3LDAsMCwwLC40NywxLjA2LDIuNjUsMi42NSwwLDAsMCwxLC43My42OS42OSww LDAsMSwwLDEuMTcsMi42NiwyLjY2LDAsMCwwLTEsLjczLDIuMzksMi4zOSwwLDAsMC0uNDcsMS4w Niw3LjksNy45LDAsMCwwLS4xMiwxLjVzLS4wOSwyLjc4LS4xOCwzLjE3YTMuNjUsMy42NSwwLDAs MS0uNDMsMS4wNywzLjMxLDMuMzEsMCwwLDEtLjgzLjksMi45LDIuOSwwLDAsMS0uNy40MSw1LjM5 LDUuMzksMCwwLDEtLjcyLjIzLDQuMzQsNC4zNCwwLDAsMS0uNjcuMTFsLS41MywwWiIvPjxwYXRo IGNsYXNzPSJjbHMtMSIgZD0iTTM1LjE4LDM3Ljc5Yy0xLjM3LDAtMS41LS4xMy0xLjUtMS41VjI0 Ljc5SDQxdjEzWiIvPjxwYXRoIGNsYXNzPSJjbHMtMiIgZD0iTTQwLjQ2LDI1LjI5djEySDM1LjE4 YTMuMjUsMy4yNSwwLDAsMS0uOS0uMDhoMGEyLjE4LDIuMTgsMCwwLDEtLjEtLjkydi0xMWg2LjI4 bTEtMUgzMy4xOHYxMmMwLDEuNjUuMzUsMiwyLDJoNi4yOHYtMTRaIi8+PHBhdGggY2xhc3M9ImNs cy02IiBkPSJNNDAuOTUsMzcuNzl2LTEzaDcuMjh2MTEuNWMwLDEuMzctLjEzLDEuNS0xLjUsMS41 WiIvPjxwYXRoIGNsYXNzPSJjbHMtNyIgZD0iTTQ3LjczLDI1LjI5djExYTMuMjgsMy4yOCwwLDAs MS0uMDguOSwyLjE4LDIuMTgsMCwwLDEtLjkyLjFINDEuNDV2LTEyaDYuMjhtMS0xSDQwLjQ1djE0 aDYuMjhjMS42NSwwLDItLjM1LDItMnYtMTJaIi8+PHBhdGggY2xhc3M9ImNscy00IiBkPSJNMzMu NjgsMjQuNzl2LTQuNWMwLTEuMzcuMTMtMS41LDEuNS0xLjVINDF2NloiLz48cGF0aCBjbGFzcz0i Y2xzLTUiIGQ9Ik00MC40NiwxOS4yOXY1SDM0LjE4di00YTMuMjgsMy4yOCwwLDAsMSwuMDgtLjks Mi4xOCwyLjE4LDAsMCwxLC45Mi0uMWg1LjI4bTEtMUgzNS4xOGMtMS42NSwwLTIsLjM1LTIsMnY1 aDguMjh2LTdaIi8+PHBhdGggY2xhc3M9ImNscy00IiBkPSJNNDAuOTUsMjQuNzl2LTZoNS43OGMx LjM3LDAsMS41LjEzLDEuNSwxLjV2NC41WiIvPjxwYXRoIGNsYXNzPSJjbHMtNSIgZD0iTTQ2Ljcz LDE5LjI5YTMuMjUsMy4yNSwwLDAsMSwuOS4wOGgwYTIuMTcsMi4xNywwLDAsMSwuMS45MnY0SDQx LjQ1di01aDUuMjhtMC0xSDQwLjQ1djdoOC4yOHYtNWMwLTEuNjUtLjM1LTItMi0yWiIvPjxsaW5l IGNsYXNzPSJjbHMtOCIgeDE9IjQwLjcxIiB5MT0iMzEuMTQiIHgyPSI0OC4yIiB5Mj0iMzEuMTQi Lz48bGluZSBjbGFzcz0iY2xzLTEwIiB4MT0iMzMuNzEiIHkxPSIzMS4xNCIgeDI9IjQwLjQ1IiB5 Mj0iMzEuMTQiLz48cGF0aCBjbGFzcz0iY2xzLTExIiBkPSJNMzYsNTAuNDJhOC40LDguNCwwLDAs MSw1LTcuNjYsOC40LDguNCwwLDEsMCwwLDE1LjMzQTguNCw4LjQsMCwwLDEsMzYsNTAuNDJaIi8+ PHBhdGggY2xhc3M9ImNscy0yIiBkPSJNMzcuNTYsNDMuNGE2LjksNi45LDAsMSwxLTYuOSw2Ljks Ni45MSw2LjkxLDAsMCwxLDYuOS02LjltMC0xLjVhOC40LDguNCwwLDEsMCw4LjQsOC40LDguNCw4 LjQsMCwwLDAtOC40LTguNFoiLz48cGF0aCBjbGFzcz0iY2xzLTciIGQ9Ik00NC40Myw0My40YTYu OSw2LjksMCwxLDEtNi45LDYuOSw2LjkxLDYuOTEsMCwwLDEsNi45LTYuOW0wLTEuNWE4LjQsOC40 LDAsMSwwLDguNCw4LjQsOC40LDguNCwwLDAsMC04LjQtOC40WiIvPjx0ZXh0IGNsYXNzPSJjbHMt MTIiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDIwLjM1IDE4LjAyKSI+QWxsPC90ZXh0Pjwvc3ZnPgpc IE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL3N0YXRp Yy9qcy9FeHBsYWluL2ltZy9leF9oYXNoX3NldG9wX2ludGVyc2VjdC5zdmcgYi93ZWIvcGdhZG1p bi9zdGF0aWMvanMvRXhwbGFpbi9pbWcvZXhfaGFzaF9zZXRvcF9pbnRlcnNlY3Quc3ZnCm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMC4uYjNjNGFiN2FmCi0tLSAvZGV2L251bGwK KysrIGIvd2ViL3BnYWRtaW4vc3RhdGljL2pzL0V4cGxhaW4vaW1nL2V4X2hhc2hfc2V0b3BfaW50 ZXJzZWN0LnN2ZwpAQCAtMCwwICsxIEBACis8c3ZnIGlkPSJfMSIgZGF0YS1uYW1lPSIxIiB4bWxu cz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2NCA2NCI+PGRlZnM+ PHN0eWxlPi5jbHMtMXtmaWxsOiM4OGY2MjU7fS5jbHMtMiwuY2xzLTR7ZmlsbDojZjBlY2I2O30u Y2xzLTN7ZmlsbDojYzE4ZjM1O30uY2xzLTExLC5jbHMtNHtzdHJva2U6I2MxOGYzNTt9LmNscy0x MCwuY2xzLTR7c3Ryb2tlLW1pdGVybGltaXQ6MTA7fS5jbHMtMTEsLmNscy00LC5jbHMtOXtvcGFj aXR5OjAuODt9LmNscy01e2ZpbGw6I2FkZGZmMzt9LmNscy02e2ZpbGw6IzI5ODBiOTt9LmNscy03 e2ZpbGw6I2QzZDRmMzt9LmNscy04e2ZpbGw6IzY2NmJkMTt9LmNscy0xMSwuY2xzLTl7ZmlsbDpu b25lO3N0cm9rZS1saW5lam9pbjpyb3VuZDt9LmNscy05e3N0cm9rZTojNjY2YmQxO30uY2xzLTEw e2ZpbGw6IzM0NDk1ZTtzdHJva2U6IzUyOGQxOTt9PC9zdHlsZT48L2RlZnM+PHRpdGxlPmV4X2hh c2hfc2V0b3BfaW50ZXJzZWN0PC90aXRsZT48cGF0aCBjbGFzcz0iY2xzLTEiIGQ9Ik00MSw0Mi43 QTguNCw4LjQsMCwwLDAsNDEsNTgsOC40LDguNCwwLDAsMCw0MSw0Mi43WiIvPjxwYXRoIGNsYXNz PSJjbHMtMiIgZD0iTTEzLjE2LDU4LjI3Yy0xLjM3LDAtMS41LS4xMy0xLjUtMS41VjM5LjU4aDdW NTYuNzdjMCwxLjM3LS4xMywxLjUtMS41LDEuNVoiLz48cGF0aCBjbGFzcz0iY2xzLTMiIGQ9Ik0x OC4xNSw0MC4wOFY1Ni43N2EzLjI4LDMuMjgsMCwwLDEtLjA4LjksMi4xOCwyLjE4LDAsMCwxLS45 Mi4xaC00YTMuMjUsMy4yNSwwLDAsMS0uOS0uMDhoMGEyLjE3LDIuMTcsMCwwLDEtLjEtLjkyVjQw LjA4aDZtMS0xaC04VjU2Ljc3YzAsMS42NS4zNSwyLDIsMmg0YzEuNjUsMCwyLS4zNSwyLTJWMzku MDhaIi8+PGxpbmUgY2xhc3M9ImNscy00IiB4MT0iMTIuMDUiIHkxPSI0NS45MyIgeDI9IjE4LjI5 IiB5Mj0iNDUuOTMiLz48bGluZSBjbGFzcz0iY2xzLTQiIHgxPSIxMi4wNSIgeTE9IjUxLjg1IiB4 Mj0iMTguMjkiIHkyPSI1MS44NSIvPjxwYXRoIGNsYXNzPSJjbHMtNSIgZD0iTTExLjY2LDExLjcz VjcuMjNjMC0xLjM3LjEzLTEuNSwxLjUtMS41aDRjMS4zNywwLDEuNS4xMywxLjUsMS41djQuNVoi Lz48cGF0aCBjbGFzcz0iY2xzLTYiIGQ9Ik0xNy4xNSw2LjIzYTMuMjUsMy4yNSwwLDAsMSwuOS4w OGgwYTIuMTcsMi4xNywwLDAsMSwuMS45MnY0aC02di00YTMuMjgsMy4yOCwwLDAsMSwuMDgtLjks Mi4xOCwyLjE4LDAsMCwxLC45Mi0uMWg0bTAtMWgtNGMtMS42NSwwLTIsLjM1LTIsMnY1aDh2LTVj MC0xLjY1LS4zNS0yLTItMloiLz48cGF0aCBjbGFzcz0iY2xzLTciIGQ9Ik0xMy4xNiwzMC40MmMt MS4zNywwLTEuNS0uMTMtMS41LTEuNVYxMS43M2g3VjI4LjkyYzAsMS4zNy0uMTMsMS41LTEuNSwx LjVaIi8+PHBhdGggY2xhc3M9ImNscy04IiBkPSJNMTguMTUsMTIuMjNWMjguOTJhMy4yOCwzLjI4 LDAsMCwxLS4wOC45LDIuMTgsMi4xOCwwLDAsMS0uOTIuMWgtNGEzLjI1LDMuMjUsMCwwLDEtLjkt LjA4aDBhMi4xNywyLjE3LDAsMCwxLS4xLS45MlYxMi4yM2g2bTEtMWgtOFYyOC45MmMwLDEuNjUu MzUsMiwyLDJoNGMxLjY1LDAsMi0uMzUsMi0yVjExLjIzWiIvPjxsaW5lIGNsYXNzPSJjbHMtOSIg eDE9IjEyLjA1IiB5MT0iMTguMDgiIHgyPSIxOC4yOSIgeTI9IjE4LjA4Ii8+PGxpbmUgY2xhc3M9 ImNscy05IiB4MT0iMTIuMDUiIHkxPSIyNCIgeDI9IjE4LjI5IiB5Mj0iMjQiLz48cGF0aCBjbGFz cz0iY2xzLTUiIGQ9Ik0xMS42NiwzOS41OHYtNC41YzAtMS4zNy4xMy0xLjUsMS41LTEuNWg0YzEu MzcsMCwxLjUuMTMsMS41LDEuNXY0LjVaIi8+PHBhdGggY2xhc3M9ImNscy02IiBkPSJNMTcuMTUs MzQuMDhhMy4yNSwzLjI1LDAsMCwxLC45LjA4aDBhMi4xNywyLjE3LDAsMCwxLC4xLjkydjRoLTZ2 LTRhMy4yOCwzLjI4LDAsMCwxLC4wOC0uOSwyLjE4LDIuMTgsMCwwLDEsLjkyLS4xaDRtMC0xaC00 Yy0xLjY1LDAtMiwuMzUtMiwydjVoOHYtNWMwLTEuNjUtLjM1LTItMi0yWiIvPjxwYXRoIGNsYXNz PSJjbHMtMTAiIGQ9Ik0yMi4yNSw0MS4xOGE0LjQyLDQuNDIsMCwwLDAsMi4wNS0uNTEsMi44MSwy LjgxLDAsMCwwLDEuMDYtMS4wOCwzLjU5LDMuNTksMCwwLDAsLjQtMS40cS4wNi0uNzUuMDYtMS40 NnYuMzVjMC0uNjgsMC0xLjI1LDAtMS43MmE5LjI4LDkuMjgsMCwwLDEsLjExLTEuMiwyLjc2LDIu NzYsMCwwLDEsLjI2LS44MywyLjM3LDIuMzcsMCwwLDEsLjQ0LS42LDIuNTMsMi41MywwLDAsMSwu NjItLjQ2LDQsNCwwLDAsMSwuNjQtLjI3LDMuNSwzLjUsMCwwLDEsLjYtLjEzYy4xOSwwLC4xOS0u MSwwLS4xMmEzLjUyLDMuNTIsMCwwLDEtLjYtLjEzLDMuNjUsMy42NSwwLDAsMS0uNjQtLjI3LDIu NTIsMi41MiwwLDAsMS0uNjItLjQ2LDIuNDEsMi40MSwwLDAsMS0uNDQtLjYsMi43NywyLjc3LDAs MCwxLS4yNi0uODMsOS4zMSw5LjMxLDAsMCwxLS4xMS0xLjJxMC0uNzEsMC0xLjczdi4zNmMwLS40 NywwLTEtLjA2LTEuNDZhMy41OCwzLjU4LDAsMCwwLS40LTEuNEEyLjgyLDIuODIsMCwwLDAsMjQu MywyM2E0LjQ3LDQuNDcsMCwwLDAtMi4wNS0uNTFWMjJsLjUzLDBhNC4xMSw0LjExLDAsMCwxLC42 Ny4xMSw1LjEyLDUuMTIsMCwwLDEsLjcyLjIzLDIuODksMi44OSwwLDAsMSwuNy40MSwzLjM0LDMu MzQsMCwwLDEsLjgzLjksMy42NiwzLjY2LDAsMCwxLC40MywxLjA3LDcsNywwLDAsMSwuMTYsMS4y OWMwLC40NywwLDEuODgsMCwxLjg4YTcuOSw3LjksMCwwLDAsLjEyLDEuNSwyLjM3LDIuMzcsMCww LDAsLjQ3LDEuMDYsMi42NSwyLjY1LDAsMCwwLDEsLjczLjY5LjY5LDAsMCwxLDAsMS4xNywyLjY2 LDIuNjYsMCwwLDAtMSwuNzMsMi4zOSwyLjM5LDAsMCwwLS40NywxLjA2LDcuOSw3LjksMCwwLDAt LjEyLDEuNXMtLjA5LDIuNzgtLjE4LDMuMTdhMy42NSwzLjY1LDAsMCwxLS40MywxLjA3LDMuMzEs My4zMSwwLDAsMS0uODMuOSwyLjksMi45LDAsMCwxLS43LjQxLDUuMzksNS4zOSwwLDAsMS0uNzIu MjMsNC4zNCw0LjM0LDAsMCwxLS42Ny4xMWwtLjUzLDBaIi8+PHBhdGggY2xhc3M9ImNscy0yIiBk PSJNMzUuMTgsMzcuODVjLTEuMzcsMC0xLjUtLjEzLTEuNS0xLjVWMjQuODVINDF2MTNaIi8+PHBh dGggY2xhc3M9ImNscy0zIiBkPSJNNDAuNDYsMjUuMzV2MTJIMzUuMThhMy4yNSwzLjI1LDAsMCwx LS45LS4wOGgwYTIuMTcsMi4xNywwLDAsMS0uMS0uOTJ2LTExaDYuMjhtMS0xSDMzLjE4djEyYzAs MS42NS4zNSwyLDIsMmg2LjI4di0xNFoiLz48cGF0aCBjbGFzcz0iY2xzLTciIGQ9Ik00MC45NSwz Ny44NXYtMTNoNy4yOHYxMS41YzAsMS4zNy0uMTMsMS41LTEuNSwxLjVaIi8+PHBhdGggY2xhc3M9 ImNscy04IiBkPSJNNDcuNzMsMjUuMzV2MTFhMy4yOCwzLjI4LDAsMCwxLS4wOC45LDIuMTgsMi4x OCwwLDAsMS0uOTIuMUg0MS40NXYtMTJoNi4yOG0xLTFINDAuNDV2MTRoNi4yOGMxLjY1LDAsMi0u MzUsMi0ydi0xMloiLz48cGF0aCBjbGFzcz0iY2xzLTUiIGQ9Ik0zMy42OCwyNC44NXYtNC41YzAt MS4zNy4xMy0xLjUsMS41LTEuNUg0MXY2WiIvPjxwYXRoIGNsYXNzPSJjbHMtNiIgZD0iTTQwLjQ2 LDE5LjM1djVIMzQuMTh2LTRhMy4yOCwzLjI4LDAsMCwxLC4wOC0uOSwyLjE4LDIuMTgsMCwwLDEs LjkyLS4xaDUuMjhtMS0xSDM1LjE4Yy0xLjY1LDAtMiwuMzUtMiwydjVoOC4yOHYtN1oiLz48cGF0 aCBjbGFzcz0iY2xzLTUiIGQ9Ik00MC45NSwyNC44NXYtNmg1Ljc4YzEuMzcsMCwxLjUuMTMsMS41 LDEuNXY0LjVaIi8+PHBhdGggY2xhc3M9ImNscy02IiBkPSJNNDYuNzMsMTkuMzVhMy4yNSwzLjI1 LDAsMCwxLC45LjA4aDBhMi4xOCwyLjE4LDAsMCwxLC4xLjkydjRINDEuNDV2LTVoNS4yOG0wLTFI NDAuNDV2N2g4LjI4di01YzAtMS42NS0uMzUtMi0yLTJaIi8+PGxpbmUgY2xhc3M9ImNscy05IiB4 MT0iNDAuNzEiIHkxPSIzMS4yIiB4Mj0iNDguMiIgeTI9IjMxLjIiLz48bGluZSBjbGFzcz0iY2xz LTExIiB4MT0iMzMuNzEiIHkxPSIzMS4yIiB4Mj0iNDAuNDUiIHkyPSIzMS4yIi8+PHBhdGggY2xh c3M9ImNscy0zIiBkPSJNMzcuNTYsNDMuNDZhNi45LDYuOSwwLDEsMS02LjksNi45LDYuOTEsNi45 MSwwLDAsMSw2LjktNi45bTAtMS41YTguNCw4LjQsMCwxLDAsOC40LDguNCw4LjQsOC40LDAsMCww LTguNC04LjRaIi8+PHBhdGggY2xhc3M9ImNscy04IiBkPSJNNDQuNDMsNDMuNDZhNi45LDYuOSww LDEsMS02LjksNi45LDYuOTEsNi45MSwwLDAsMSw2LjktNi45bTAtMS41YTguNCw4LjQsMCwxLDAs OC40LDguNCw4LjQsOC40LDAsMCwwLTguNC04LjRaIi8+PC9zdmc+ClwgTm8gbmV3bGluZSBhdCBl bmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vc3RhdGljL2pzL0V4cGxhaW4vaW1n L2V4X2hhc2hfc2V0b3BfaW50ZXJzZWN0X2FsbC5zdmcgYi93ZWIvcGdhZG1pbi9zdGF0aWMvanMv RXhwbGFpbi9pbWcvZXhfaGFzaF9zZXRvcF9pbnRlcnNlY3RfYWxsLnN2ZwpuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwMDAuLjBiYTdlNDQ2OQotLS0gL2Rldi9udWxsCisrKyBiL3dl Yi9wZ2FkbWluL3N0YXRpYy9qcy9FeHBsYWluL2ltZy9leF9oYXNoX3NldG9wX2ludGVyc2VjdF9h bGwuc3ZnCkBAIC0wLDAgKzEgQEAKKzxzdmcgaWQ9Il8xIiBkYXRhLW5hbWU9IjEiIHhtbG5zPSJo dHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDY0IDY0Ij48ZGVmcz48c3R5 bGU+LmNscy0xe2ZpbGw6Izg4ZjYyNTt9LmNscy0yLC5jbHMtNHtmaWxsOiNmMGVjYjY7fS5jbHMt M3tmaWxsOiNjMThmMzU7fS5jbHMtMTEsLmNscy00e3N0cm9rZTojYzE4ZjM1O30uY2xzLTEwLC5j bHMtNHtzdHJva2UtbWl0ZXJsaW1pdDoxMDt9LmNscy0xMSwuY2xzLTQsLmNscy05e29wYWNpdHk6 MC44O30uY2xzLTV7ZmlsbDojYWRkZmYzO30uY2xzLTZ7ZmlsbDojMjk4MGI5O30uY2xzLTd7Zmls bDojZDNkNGYzO30uY2xzLTh7ZmlsbDojNjY2YmQxO30uY2xzLTExLC5jbHMtOXtmaWxsOm5vbmU7 c3Ryb2tlLWxpbmVqb2luOnJvdW5kO30uY2xzLTl7c3Ryb2tlOiM2NjZiZDE7fS5jbHMtMTAsLmNs cy0xMntmaWxsOiMzNDQ5NWU7fS5jbHMtMTB7c3Ryb2tlOiM1MjhkMTk7fS5jbHMtMTJ7Zm9udC1z aXplOjlweDtmb250LWZhbWlseTpIZWx2ZXRpY2EtQm9sZCwgSGVsdmV0aWNhO2ZvbnQtd2VpZ2h0 OjcwMDt9PC9zdHlsZT48L2RlZnM+PHRpdGxlPmV4X2hhc2hfc2V0b3BfaW50ZXJzZWN0X2FsbDwv dGl0bGU+PHBhdGggY2xhc3M9ImNscy0xIiBkPSJNNDEsNDIuN0E4LjQsOC40LDAsMCwwLDQxLDU4 LDguNCw4LjQsMCwwLDAsNDEsNDIuN1oiLz48cGF0aCBjbGFzcz0iY2xzLTIiIGQ9Ik0xMy4xNiw1 OC4yN2MtMS4zNywwLTEuNS0uMTMtMS41LTEuNVYzOS41OGg3VjU2Ljc3YzAsMS4zNy0uMTMsMS41 LTEuNSwxLjVaIi8+PHBhdGggY2xhc3M9ImNscy0zIiBkPSJNMTguMTUsNDAuMDhWNTYuNzdhMy4y OCwzLjI4LDAsMCwxLS4wOC45LDIuMTgsMi4xOCwwLDAsMS0uOTIuMWgtNGEzLjI1LDMuMjUsMCww LDEtLjktLjA4aDBhMi4xNywyLjE3LDAsMCwxLS4xLS45MlY0MC4wOGg2bTEtMWgtOFY1Ni43N2Mw LDEuNjUuMzUsMiwyLDJoNGMxLjY1LDAsMi0uMzUsMi0yVjM5LjA4WiIvPjxsaW5lIGNsYXNzPSJj bHMtNCIgeDE9IjEyLjA1IiB5MT0iNDUuOTMiIHgyPSIxOC4yOSIgeTI9IjQ1LjkzIi8+PGxpbmUg Y2xhc3M9ImNscy00IiB4MT0iMTIuMDUiIHkxPSI1MS44NSIgeDI9IjE4LjI5IiB5Mj0iNTEuODUi Lz48cGF0aCBjbGFzcz0iY2xzLTUiIGQ9Ik0xMS42NiwxMS43M1Y3LjIzYzAtMS4zNy4xMy0xLjUs MS41LTEuNWg0YzEuMzcsMCwxLjUuMTMsMS41LDEuNXY0LjVaIi8+PHBhdGggY2xhc3M9ImNscy02 IiBkPSJNMTcuMTUsNi4yM2EzLjI1LDMuMjUsMCwwLDEsLjkuMDhoMGEyLjE3LDIuMTcsMCwwLDEs LjEuOTJ2NGgtNnYtNGEzLjI4LDMuMjgsMCwwLDEsLjA4LS45LDIuMTgsMi4xOCwwLDAsMSwuOTIt LjFoNG0wLTFoLTRjLTEuNjUsMC0yLC4zNS0yLDJ2NWg4di01YzAtMS42NS0uMzUtMi0yLTJaIi8+ PHBhdGggY2xhc3M9ImNscy03IiBkPSJNMTMuMTYsMzAuNDJjLTEuMzcsMC0xLjUtLjEzLTEuNS0x LjVWMTEuNzNoN1YyOC45MmMwLDEuMzctLjEzLDEuNS0xLjUsMS41WiIvPjxwYXRoIGNsYXNzPSJj bHMtOCIgZD0iTTE4LjE1LDEyLjIzVjI4LjkyYTMuMjgsMy4yOCwwLDAsMS0uMDguOSwyLjE4LDIu MTgsMCwwLDEtLjkyLjFoLTRhMy4yNSwzLjI1LDAsMCwxLS45LS4wOGgwYTIuMTcsMi4xNywwLDAs MS0uMS0uOTJWMTIuMjNoNm0xLTFoLThWMjguOTJjMCwxLjY1LjM1LDIsMiwyaDRjMS42NSwwLDIt LjM1LDItMlYxMS4yM1oiLz48bGluZSBjbGFzcz0iY2xzLTkiIHgxPSIxMi4wNSIgeTE9IjE4LjA4 IiB4Mj0iMTguMjkiIHkyPSIxOC4wOCIvPjxsaW5lIGNsYXNzPSJjbHMtOSIgeDE9IjEyLjA1IiB5 MT0iMjQiIHgyPSIxOC4yOSIgeTI9IjI0Ii8+PHBhdGggY2xhc3M9ImNscy01IiBkPSJNMTEuNjYs MzkuNTh2LTQuNWMwLTEuMzcuMTMtMS41LDEuNS0xLjVoNGMxLjM3LDAsMS41LjEzLDEuNSwxLjV2 NC41WiIvPjxwYXRoIGNsYXNzPSJjbHMtNiIgZD0iTTE3LjE1LDM0LjA4YTMuMjUsMy4yNSwwLDAs MSwuOS4wOGgwYTIuMTcsMi4xNywwLDAsMSwuMS45MnY0aC02di00YTMuMjgsMy4yOCwwLDAsMSwu MDgtLjksMi4xOCwyLjE4LDAsMCwxLC45Mi0uMWg0bTAtMWgtNGMtMS42NSwwLTIsLjM1LTIsMnY1 aDh2LTVjMC0xLjY1LS4zNS0yLTItMloiLz48cGF0aCBjbGFzcz0iY2xzLTEwIiBkPSJNMjIuMjUs NDEuMThhNC40Miw0LjQyLDAsMCwwLDIuMDUtLjUxLDIuODEsMi44MSwwLDAsMCwxLjA2LTEuMDgs My41OSwzLjU5LDAsMCwwLC40LTEuNHEuMDYtLjc1LjA2LTEuNDZ2LjM1YzAtLjY4LDAtMS4yNSww LTEuNzJhOS4yOCw5LjI4LDAsMCwxLC4xMS0xLjIsMi43NiwyLjc2LDAsMCwxLC4yNi0uODMsMi4z NywyLjM3LDAsMCwxLC40NC0uNiwyLjUzLDIuNTMsMCwwLDEsLjYyLS40Niw0LDQsMCwwLDEsLjY0 LS4yNywzLjUsMy41LDAsMCwxLC42LS4xM2MuMTksMCwuMTktLjEsMC0uMTJhMy41MiwzLjUyLDAs MCwxLS42LS4xMywzLjY1LDMuNjUsMCwwLDEtLjY0LS4yNywyLjUyLDIuNTIsMCwwLDEtLjYyLS40 NiwyLjQxLDIuNDEsMCwwLDEtLjQ0LS42LDIuNzcsMi43NywwLDAsMS0uMjYtLjgzLDkuMzEsOS4z MSwwLDAsMS0uMTEtMS4ycTAtLjcxLDAtMS43M3YuMzZjMC0uNDcsMC0xLS4wNi0xLjQ2YTMuNTgs My41OCwwLDAsMC0uNC0xLjRBMi44MiwyLjgyLDAsMCwwLDI0LjMsMjNhNC40Nyw0LjQ3LDAsMCww LTIuMDUtLjUxVjIybC41MywwYTQuMTEsNC4xMSwwLDAsMSwuNjcuMTEsNS4xMiw1LjEyLDAsMCwx LC43Mi4yMywyLjg5LDIuODksMCwwLDEsLjcuNDEsMy4zNCwzLjM0LDAsMCwxLC44My45LDMuNjYs My42NiwwLDAsMSwuNDMsMS4wNyw3LDcsMCwwLDEsLjE2LDEuMjljMCwuNDcsMCwxLjg4LDAsMS44 OGE3LjksNy45LDAsMCwwLC4xMiwxLjUsMi4zNywyLjM3LDAsMCwwLC40NywxLjA2LDIuNjUsMi42 NSwwLDAsMCwxLC43My42OS42OSwwLDAsMSwwLDEuMTcsMi42NiwyLjY2LDAsMCwwLTEsLjczLDIu MzksMi4zOSwwLDAsMC0uNDcsMS4wNiw3LjksNy45LDAsMCwwLS4xMiwxLjVzLS4wOSwyLjc4LS4x OCwzLjE3YTMuNjUsMy42NSwwLDAsMS0uNDMsMS4wNywzLjMxLDMuMzEsMCwwLDEtLjgzLjksMi45 LDIuOSwwLDAsMS0uNy40MSw1LjM5LDUuMzksMCwwLDEtLjcyLjIzLDQuMzQsNC4zNCwwLDAsMS0u NjcuMTFsLS41MywwWiIvPjxwYXRoIGNsYXNzPSJjbHMtMiIgZD0iTTM1LjE4LDM3Ljg1Yy0xLjM3 LDAtMS41LS4xMy0xLjUtMS41VjI0Ljg1SDQxdjEzWiIvPjxwYXRoIGNsYXNzPSJjbHMtMyIgZD0i TTQwLjQ2LDI1LjM1djEySDM1LjE4YTMuMjUsMy4yNSwwLDAsMS0uOS0uMDhoMGEyLjE3LDIuMTcs MCwwLDEtLjEtLjkydi0xMWg2LjI4bTEtMUgzMy4xOHYxMmMwLDEuNjUuMzUsMiwyLDJoNi4yOHYt MTRaIi8+PHBhdGggY2xhc3M9ImNscy03IiBkPSJNNDAuOTUsMzcuODV2LTEzaDcuMjh2MTEuNWMw LDEuMzctLjEzLDEuNS0xLjUsMS41WiIvPjxwYXRoIGNsYXNzPSJjbHMtOCIgZD0iTTQ3LjczLDI1 LjM1djExYTMuMjgsMy4yOCwwLDAsMS0uMDguOSwyLjE4LDIuMTgsMCwwLDEtLjkyLjFINDEuNDV2 LTEyaDYuMjhtMS0xSDQwLjQ1djE0aDYuMjhjMS42NSwwLDItLjM1LDItMnYtMTJaIi8+PHBhdGgg Y2xhc3M9ImNscy01IiBkPSJNMzMuNjgsMjQuODV2LTQuNWMwLTEuMzcuMTMtMS41LDEuNS0xLjVI NDF2NloiLz48cGF0aCBjbGFzcz0iY2xzLTYiIGQ9Ik00MC40NiwxOS4zNXY1SDM0LjE4di00YTMu MjgsMy4yOCwwLDAsMSwuMDgtLjksMi4xOCwyLjE4LDAsMCwxLC45Mi0uMWg1LjI4bTEtMUgzNS4x OGMtMS42NSwwLTIsLjM1LTIsMnY1aDguMjh2LTdaIi8+PHBhdGggY2xhc3M9ImNscy01IiBkPSJN NDAuOTUsMjQuODV2LTZoNS43OGMxLjM3LDAsMS41LjEzLDEuNSwxLjV2NC41WiIvPjxwYXRoIGNs YXNzPSJjbHMtNiIgZD0iTTQ2LjczLDE5LjM1YTMuMjUsMy4yNSwwLDAsMSwuOS4wOGgwYTIuMTcs Mi4xNywwLDAsMSwuMS45MnY0SDQxLjQ1di01aDUuMjhtMC0xSDQwLjQ1djdoOC4yOHYtNWMwLTEu NjUtLjM1LTItMi0yWiIvPjxsaW5lIGNsYXNzPSJjbHMtOSIgeDE9IjQwLjcxIiB5MT0iMzEuMiIg eDI9IjQ4LjIiIHkyPSIzMS4yIi8+PGxpbmUgY2xhc3M9ImNscy0xMSIgeDE9IjMzLjcxIiB5MT0i MzEuMiIgeDI9IjQwLjQ1IiB5Mj0iMzEuMiIvPjxwYXRoIGNsYXNzPSJjbHMtMyIgZD0iTTM3LjU2 LDQzLjQ2YTYuOSw2LjksMCwxLDEtNi45LDYuOSw2LjkxLDYuOTEsMCwwLDEsNi45LTYuOW0wLTEu NWE4LjQsOC40LDAsMSwwLDguNCw4LjQsOC40LDguNCwwLDAsMC04LjQtOC40WiIvPjxwYXRoIGNs YXNzPSJjbHMtOCIgZD0iTTQ0LjQzLDQzLjQ2YTYuOSw2LjksMCwxLDEtNi45LDYuOSw2LjkxLDYu OTEsMCwwLDEsNi45LTYuOW0wLTEuNWE4LjQsOC40LDAsMSwwLDguNCw4LjQsOC40LDguNCwwLDAs MC04LjQtOC40WiIvPjx0ZXh0IGNsYXNzPSJjbHMtMTIiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDIw Ljk4IDE4LjM2KSI+QWxsPC90ZXh0Pjwvc3ZnPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL3N0YXRpYy9qcy9FeHBsYWluL2ltZy9leF9oYXNoX3Nl dG9wX3Vua25vd24uc3ZnIGIvd2ViL3BnYWRtaW4vc3RhdGljL2pzL0V4cGxhaW4vaW1nL2V4X2hh c2hfc2V0b3BfdW5rbm93bi5zdmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw Li5iZmFhZGNmZjMKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9zdGF0aWMvanMvRXhw bGFpbi9pbWcvZXhfaGFzaF9zZXRvcF91bmtub3duLnN2ZwpAQCAtMCwwICsxIEBACis8c3ZnIGlk PSJfMSIgZGF0YS1uYW1lPSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZp ZXdCb3g9IjAgMCA2NCA2NCI+PGRlZnM+PHN0eWxlPi5jbHMtMSwuY2xzLTN7ZmlsbDojZjBlY2I2 O30uY2xzLTJ7ZmlsbDojYzE4ZjM1O30uY2xzLTEwLC5jbHMtM3tzdHJva2U6I2MxOGYzNTt9LmNs cy0zLC5jbHMtOXtzdHJva2UtbWl0ZXJsaW1pdDoxMDt9LmNscy0xMCwuY2xzLTMsLmNscy04e29w YWNpdHk6MC44O30uY2xzLTR7ZmlsbDojYWRkZmYzO30uY2xzLTV7ZmlsbDojMjk4MGI5O30uY2xz LTZ7ZmlsbDojZDNkNGYzO30uY2xzLTd7ZmlsbDojNjY2YmQxO30uY2xzLTEwLC5jbHMtOHtmaWxs Om5vbmU7c3Ryb2tlLWxpbmVqb2luOnJvdW5kO30uY2xzLTh7c3Ryb2tlOiM2NjZiZDE7fS5jbHMt OXtmaWxsOiMzNDQ5NWU7c3Ryb2tlOiM1MjhkMTk7fS5jbHMtMTF7Zm9udC1zaXplOjlweDtmaWxs OiNjMDA7Zm9udC1mYW1pbHk6SGVsdmV0aWNhLUJvbGQsIEhlbHZldGljYTtmb250LXdlaWdodDo3 MDA7fTwvc3R5bGU+PC9kZWZzPjx0aXRsZT5leF9oYXNoX3NldG9wX3Vua25vd248L3RpdGxlPjxw YXRoIGNsYXNzPSJjbHMtMSIgZD0iTTEzLjE2LDU4LjI3Yy0xLjM3LDAtMS41LS4xMy0xLjUtMS41 VjM5LjU4aDdWNTYuNzdjMCwxLjM3LS4xMywxLjUtMS41LDEuNVoiLz48cGF0aCBjbGFzcz0iY2xz LTIiIGQ9Ik0xOC4xNSw0MC4wOFY1Ni43N2EzLjI4LDMuMjgsMCwwLDEtLjA4LjksMi4xOCwyLjE4 LDAsMCwxLS45Mi4xaC00YTMuMjUsMy4yNSwwLDAsMS0uOS0uMDhoMGEyLjE3LDIuMTcsMCwwLDEt LjEtLjkyVjQwLjA4aDZtMS0xaC04VjU2Ljc3YzAsMS42NS4zNSwyLDIsMmg0YzEuNjUsMCwyLS4z NSwyLTJWMzkuMDhaIi8+PGxpbmUgY2xhc3M9ImNscy0zIiB4MT0iMTIuMDUiIHkxPSI0NS45MyIg eDI9IjE4LjI5IiB5Mj0iNDUuOTMiLz48bGluZSBjbGFzcz0iY2xzLTMiIHgxPSIxMi4wNSIgeTE9 IjUxLjg1IiB4Mj0iMTguMjkiIHkyPSI1MS44NSIvPjxwYXRoIGNsYXNzPSJjbHMtNCIgZD0iTTEx LjY2LDExLjczVjcuMjNjMC0xLjM3LjEzLTEuNSwxLjUtMS41aDRjMS4zNywwLDEuNS4xMywxLjUs MS41djQuNVoiLz48cGF0aCBjbGFzcz0iY2xzLTUiIGQ9Ik0xNy4xNSw2LjIzYTMuMjUsMy4yNSww LDAsMSwuOS4wOGgwYTIuMTcsMi4xNywwLDAsMSwuMS45MnY0aC02di00YTMuMjgsMy4yOCwwLDAs MSwuMDgtLjksMi4xOCwyLjE4LDAsMCwxLC45Mi0uMWg0bTAtMWgtNGMtMS42NSwwLTIsLjM1LTIs MnY1aDh2LTVjMC0xLjY1LS4zNS0yLTItMloiLz48cGF0aCBjbGFzcz0iY2xzLTYiIGQ9Ik0xMy4x NiwzMC40MmMtMS4zNywwLTEuNS0uMTMtMS41LTEuNVYxMS43M2g3VjI4LjkyYzAsMS4zNy0uMTMs MS41LTEuNSwxLjVaIi8+PHBhdGggY2xhc3M9ImNscy03IiBkPSJNMTguMTUsMTIuMjNWMjguOTJh My4yOCwzLjI4LDAsMCwxLS4wOC45LDIuMTgsMi4xOCwwLDAsMS0uOTIuMWgtNGEzLjI1LDMuMjUs MCwwLDEtLjktLjA4aDBhMi4xNywyLjE3LDAsMCwxLS4xLS45MlYxMi4yM2g2bTEtMWgtOFYyOC45 MmMwLDEuNjUuMzUsMiwyLDJoNGMxLjY1LDAsMi0uMzUsMi0yVjExLjIzWiIvPjxsaW5lIGNsYXNz PSJjbHMtOCIgeDE9IjEyLjA1IiB5MT0iMTguMDgiIHgyPSIxOC4yOSIgeTI9IjE4LjA4Ii8+PGxp bmUgY2xhc3M9ImNscy04IiB4MT0iMTIuMDUiIHkxPSIyNCIgeDI9IjE4LjI5IiB5Mj0iMjQiLz48 cGF0aCBjbGFzcz0iY2xzLTQiIGQ9Ik0xMS42NiwzOS41OHYtNC41YzAtMS4zNy4xMy0xLjUsMS41 LTEuNWg0YzEuMzcsMCwxLjUuMTMsMS41LDEuNXY0LjVaIi8+PHBhdGggY2xhc3M9ImNscy01IiBk PSJNMTcuMTUsMzQuMDhhMy4yNSwzLjI1LDAsMCwxLC45LjA4aDBhMi4xNywyLjE3LDAsMCwxLC4x LjkydjRoLTZ2LTRhMy4yOCwzLjI4LDAsMCwxLC4wOC0uOSwyLjE4LDIuMTgsMCwwLDEsLjkyLS4x aDRtMC0xaC00Yy0xLjY1LDAtMiwuMzUtMiwydjVoOHYtNWMwLTEuNjUtLjM1LTItMi0yWiIvPjxw YXRoIGNsYXNzPSJjbHMtOSIgZD0iTTIyLjI1LDQxLjE4YTQuNDIsNC40MiwwLDAsMCwyLjA1LS41 MSwyLjgxLDIuODEsMCwwLDAsMS4wNi0xLjA4LDMuNTksMy41OSwwLDAsMCwuNC0xLjRxLjA2LS43 NS4wNi0xLjQ2di4zNWMwLS42OCwwLTEuMjUsMC0xLjcyYTkuMjgsOS4yOCwwLDAsMSwuMTEtMS4y LDIuNzYsMi43NiwwLDAsMSwuMjYtLjgzLDIuMzcsMi4zNywwLDAsMSwuNDQtLjYsMi41MywyLjUz LDAsMCwxLC42Mi0uNDYsNCw0LDAsMCwxLC42NC0uMjcsMy41LDMuNSwwLDAsMSwuNi0uMTNjLjE5 LDAsLjE5LS4xLDAtLjEyYTMuNTIsMy41MiwwLDAsMS0uNi0uMTMsMy42NSwzLjY1LDAsMCwxLS42 NC0uMjcsMi41MiwyLjUyLDAsMCwxLS42Mi0uNDYsMi40MSwyLjQxLDAsMCwxLS40NC0uNiwyLjc3 LDIuNzcsMCwwLDEtLjI2LS44Myw5LjMxLDkuMzEsMCwwLDEtLjExLTEuMnEwLS43MSwwLTEuNzN2 LjM2YzAtLjQ3LDAtMS0uMDYtMS40NmEzLjU4LDMuNTgsMCwwLDAtLjQtMS40QTIuODIsMi44Miww LDAsMCwyNC4zLDIzYTQuNDcsNC40NywwLDAsMC0yLjA1LS41MVYyMmwuNTMsMGE0LjExLDQuMTEs MCwwLDEsLjY3LjExLDUuMTIsNS4xMiwwLDAsMSwuNzIuMjMsMi44OSwyLjg5LDAsMCwxLC43LjQx LDMuMzQsMy4zNCwwLDAsMSwuODMuOSwzLjY2LDMuNjYsMCwwLDEsLjQzLDEuMDcsNyw3LDAsMCwx LC4xNiwxLjI5YzAsLjQ3LDAsMS44OCwwLDEuODhhNy45LDcuOSwwLDAsMCwuMTIsMS41LDIuMzcs Mi4zNywwLDAsMCwuNDcsMS4wNiwyLjY1LDIuNjUsMCwwLDAsMSwuNzMuNjkuNjksMCwwLDEsMCwx LjE3LDIuNjYsMi42NiwwLDAsMC0xLC43MywyLjM5LDIuMzksMCwwLDAtLjQ3LDEuMDYsNy45LDcu OSwwLDAsMC0uMTIsMS41cy0uMDksMi43OC0uMTgsMy4xN2EzLjY1LDMuNjUsMCwwLDEtLjQzLDEu MDcsMy4zMSwzLjMxLDAsMCwxLS44My45LDIuOSwyLjksMCwwLDEtLjcuNDEsNS4zOSw1LjM5LDAs MCwxLS43Mi4yMyw0LjM0LDQuMzQsMCwwLDEtLjY3LjExbC0uNTMsMFoiLz48cGF0aCBjbGFzcz0i Y2xzLTEiIGQ9Ik0zNS4xOCwzNy44NWMtMS4zNywwLTEuNS0uMTMtMS41LTEuNVYyNC44NUg0MXYx M1oiLz48cGF0aCBjbGFzcz0iY2xzLTIiIGQ9Ik00MC40NiwyNS4zNXYxMkgzNS4xOGEzLjI1LDMu MjUsMCwwLDEtLjktLjA4aDBhMi4xNywyLjE3LDAsMCwxLS4xLS45MnYtMTFoNi4yOG0xLTFIMzMu MTh2MTJjMCwxLjY1LjM1LDIsMiwyaDYuMjh2LTE0WiIvPjxwYXRoIGNsYXNzPSJjbHMtNiIgZD0i TTQwLjk1LDM3Ljg1di0xM2g3LjI4djExLjVjMCwxLjM3LS4xMywxLjUtMS41LDEuNVoiLz48cGF0 aCBjbGFzcz0iY2xzLTciIGQ9Ik00Ny43MywyNS4zNXYxMWEzLjI4LDMuMjgsMCwwLDEtLjA4Ljks Mi4xOCwyLjE4LDAsMCwxLS45Mi4xSDQxLjQ1di0xMmg2LjI4bTEtMUg0MC40NXYxNGg2LjI4YzEu NjUsMCwyLS4zNSwyLTJ2LTEyWiIvPjxwYXRoIGNsYXNzPSJjbHMtNCIgZD0iTTMzLjY4LDI0Ljg1 di00LjVjMC0xLjM3LjEzLTEuNSwxLjUtMS41SDQxdjZaIi8+PHBhdGggY2xhc3M9ImNscy01IiBk PSJNNDAuNDYsMTkuMzV2NUgzNC4xOHYtNGEzLjI4LDMuMjgsMCwwLDEsLjA4LS45LDIuMTgsMi4x OCwwLDAsMSwuOTItLjFoNS4yOG0xLTFIMzUuMThjLTEuNjUsMC0yLC4zNS0yLDJ2NWg4LjI4di03 WiIvPjxwYXRoIGNsYXNzPSJjbHMtNCIgZD0iTTQwLjk1LDI0Ljg1di02aDUuNzhjMS4zNywwLDEu NS4xMywxLjUsMS41djQuNVoiLz48cGF0aCBjbGFzcz0iY2xzLTUiIGQ9Ik00Ni43MywxOS4zNWEz LjI1LDMuMjUsMCwwLDEsLjkuMDhoMGEyLjE4LDIuMTgsMCwwLDEsLjEuOTJ2NEg0MS40NXYtNWg1 LjI4bTAtMUg0MC40NXY3aDguMjh2LTVjMC0xLjY1LS4zNS0yLTItMloiLz48bGluZSBjbGFzcz0i Y2xzLTgiIHgxPSI0MC43MSIgeTE9IjMxLjIiIHgyPSI0OC4yIiB5Mj0iMzEuMiIvPjxsaW5lIGNs YXNzPSJjbHMtMTAiIHgxPSIzMy43MSIgeTE9IjMxLjIiIHgyPSI0MC40NSIgeTI9IjMxLjIiLz48 cGF0aCBjbGFzcz0iY2xzLTIiIGQ9Ik0zNy41Niw0My40NmE2LjksNi45LDAsMSwxLTYuOSw2Ljks Ni45MSw2LjkxLDAsMCwxLDYuOS02LjltMC0xLjVhOC40LDguNCwwLDEsMCw4LjQsOC40LDguNCw4 LjQsMCwwLDAtOC40LTguNFoiLz48cGF0aCBjbGFzcz0iY2xzLTciIGQ9Ik00NC40Myw0My40NmE2 LjksNi45LDAsMSwxLTYuOSw2LjksNi45MSw2LjkxLDAsMCwxLDYuOS02LjltMC0xLjVhOC40LDgu NCwwLDEsMCw4LjQsOC40LDguNCw4LjQsMCwwLDAtOC40LTguNFoiLz48dGV4dCBjbGFzcz0iY2xz LTExIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgzOC4yOSA1My44NSkiPj88L3RleHQ+PC9zdmc+Clwg Tm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vc3RhdGlj L2pzL0V4cGxhaW4vaW1nL2V4X2luZGV4X29ubHlfc2Nhbi5zdmcgYi93ZWIvcGdhZG1pbi9zdGF0 aWMvanMvRXhwbGFpbi9pbWcvZXhfaW5kZXhfb25seV9zY2FuLnN2ZwpuZXcgZmlsZSBtb2RlIDEw MDY0NAppbmRleCAwMDAwMDAwMDAuLmUyN2M3OTkyNAotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9w Z2FkbWluL3N0YXRpYy9qcy9FeHBsYWluL2ltZy9leF9pbmRleF9vbmx5X3NjYW4uc3ZnCkBAIC0w LDAgKzEgQEAKKzxzdmcgaWQ9Il8xIiBkYXRhLW5hbWU9IjEiIHhtbG5zPSJodHRwOi8vd3d3Lncz Lm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDY0IDY0Ij48ZGVmcz48c3R5bGU+LmNscy0xe2Zp bGw6bm9uZTtzdHJva2U6Izc0NzQ3NDtzdHJva2Utd2lkdGg6MC43NXB4O30uY2xzLTEsLmNscy03 e3N0cm9rZS1saW5lY2FwOnJvdW5kO30uY2xzLTEsLmNscy02LC5jbHMtN3tzdHJva2UtbGluZWpv aW46cm91bmQ7fS5jbHMtMntmaWxsOiNmMGVjYjY7fS5jbHMtM3tmaWxsOiNjMThmMzU7fS5jbHMt NHtmaWxsOiNhZGRmZjM7fS5jbHMtNSwuY2xzLTYsLmNscy03e2ZpbGw6IzI5ODBiOTt9LmNscy02 LC5jbHMtN3tzdHJva2U6IzI5ODBiOTt9LmNscy03e3N0cm9rZS13aWR0aDoycHg7fTwvc3R5bGU+ PC9kZWZzPjx0aXRsZT5leF9pbmRleF9vbmx5X3NjYW48L3RpdGxlPjxsaW5lIGNsYXNzPSJjbHMt MSIgeDE9IjM2Ljg5IiB5MT0iMjQuNDEiIHgyPSIyNC45IiB5Mj0iMzEuMyIvPjxsaW5lIGNsYXNz PSJjbHMtMSIgeDE9IjM2Ljg5IiB5MT0iMjQuNDEiIHgyPSI0OC44NyIgeTI9IjMxLjMiLz48bGlu ZSBjbGFzcz0iY2xzLTEiIHgxPSIyNC45IiB5MT0iMzcuMjIiIHgyPSIxOC45MiIgeTI9IjQzLjIy Ii8+PGxpbmUgY2xhc3M9ImNscy0xIiB4MT0iMjQuOSIgeTE9IjM3LjIyIiB4Mj0iMzAuODkiIHky PSI0My4yMiIvPjxsaW5lIGNsYXNzPSJjbHMtMSIgeDE9IjQ4Ljg3IiB5MT0iMzcuMjIiIHgyPSI0 Mi41NSIgeTI9IjQzLjIyIi8+PGxpbmUgY2xhc3M9ImNscy0xIiB4MT0iNDguODciIHkxPSIzNy4y MiIgeDI9IjU0Ljg1IiB5Mj0iNDMuMjIiLz48cGF0aCBjbGFzcz0iY2xzLTIiIGQ9Ik0zMy4zOSwy My45MWMtMS4zNywwLTEuNS0uMTMtMS41LTEuNVYxOC4yMmgxMHY0LjE5YzAsMS4zNy0uMTMsMS41 LTEuNSwxLjVaIi8+PHBhdGggY2xhc3M9ImNscy0zIiBkPSJNNDEuMzgsMTguNzJ2My42OWEzLjI4 LDMuMjgsMCwwLDEtLjA4LjksMi4xOCwyLjE4LDAsMCwxLS45Mi4xaC03YTMuMjUsMy4yNSwwLDAs MS0uOS0uMDhoMGEyLjE4LDIuMTgsMCwwLDEtLjEtLjkyVjE4LjcyaDltMS0xaC0xMXY0LjY5YzAs MS42NS4zNSwyLDIsMmg3YzEuNjUsMCwyLS4zNSwyLTJWMTcuNzJaIi8+PHJlY3QgY2xhc3M9ImNs cy0yIiB4PSIyMC45MSIgeT0iMzEuMDMiIHdpZHRoPSI3Ljk4IiBoZWlnaHQ9IjUuNjkiIHJ4PSIx LjUiIHJ5PSIxLjUiLz48cGF0aCBjbGFzcz0iY2xzLTMiIGQ9Ik0yNy4zOSwzMS41M2EzLjI1LDMu MjUsMCwwLDEsLjkuMDhoMGEyLjE4LDIuMTgsMCwwLDEsLjEuOTJ2Mi42OWEzLjI4LDMuMjgsMCww LDEtLjA4LjksMi4xOCwyLjE4LDAsMCwxLS45Mi4xaC01YTMuMjUsMy4yNSwwLDAsMS0uOS0uMDho MGEyLjE4LDIuMTgsMCwwLDEtLjEtLjkyVjMyLjUzYTMuMjgsMy4yOCwwLDAsMSwuMDgtLjksMi4x OCwyLjE4LDAsMCwxLC45Mi0uMWg1bTAtMWgtNWMtMS42NSwwLTIsLjM1LTIsMnYyLjY5YzAsMS42 NS4zNSwyLDIsMmg1YzEuNjUsMCwyLS4zNSwyLTJWMzIuNTNjMC0xLjY1LS4zNS0yLTItMloiLz48 cmVjdCBjbGFzcz0iY2xzLTIiIHg9IjE0LjkyIiB5PSI0My43MiIgd2lkdGg9IjcuOTgiIGhlaWdo dD0iNS42OSIgcng9IjEuNSIgcnk9IjEuNSIvPjxwYXRoIGNsYXNzPSJjbHMtMyIgZD0iTTIxLjQx LDQ0LjIyYTMuMjUsMy4yNSwwLDAsMSwuOS4wOGgwYTIuMTgsMi4xOCwwLDAsMSwuMS45MnYyLjY5 YTMuMjgsMy4yOCwwLDAsMS0uMDguOSwyLjE4LDIuMTgsMCwwLDEtLjkyLjFoLTVhMy4yNSwzLjI1 LDAsMCwxLS45LS4wOGgwYTIuMTgsMi4xOCwwLDAsMS0uMS0uOTJWNDUuMjJhMy4yOCwzLjI4LDAs MCwxLC4wOC0uOSwyLjE4LDIuMTgsMCwwLDEsLjkyLS4xaDVtMC0xaC01Yy0xLjY1LDAtMiwuMzUt MiwydjIuNjljMCwxLjY1LjM1LDIsMiwyaDVjMS42NSwwLDItLjM1LDItMlY0NS4yMmMwLTEuNjUt LjM1LTItMi0yWiIvPjxyZWN0IGNsYXNzPSJjbHMtMiIgeD0iMjYuODkiIHk9IjQzLjcyIiB3aWR0 aD0iNy45OCIgaGVpZ2h0PSI1LjY5IiByeD0iMS41IiByeT0iMS41Ii8+PHBhdGggY2xhc3M9ImNs cy0zIiBkPSJNMzMuMzgsNDQuMjJhMy4yNSwzLjI1LDAsMCwxLC45LjA4aDBhMi4xOCwyLjE4LDAs MCwxLC4xLjkydjIuNjlhMy4yOCwzLjI4LDAsMCwxLS4wOC45LDIuMTgsMi4xOCwwLDAsMS0uOTIu MWgtNWEzLjI1LDMuMjUsMCwwLDEtLjktLjA4aDBhMi4xOCwyLjE4LDAsMCwxLS4xLS45MlY0NS4y MmEzLjI4LDMuMjgsMCwwLDEsLjA4LS45LDIuMTgsMi4xOCwwLDAsMSwuOTItLjFoNW0wLTFoLTVj LTEuNjUsMC0yLC4zNS0yLDJ2Mi42OWMwLDEuNjUuMzUsMiwyLDJoNWMxLjY1LDAsMi0uMzUsMi0y VjQ1LjIyYzAtMS42NS0uMzUtMi0yLTJaIi8+PHJlY3QgY2xhc3M9ImNscy0yIiB4PSIzOC44OSIg eT0iNDMuNzIiIHdpZHRoPSI3Ljk4IiBoZWlnaHQ9IjUuNjkiIHJ4PSIxLjUiIHJ5PSIxLjUiLz48 cGF0aCBjbGFzcz0iY2xzLTMiIGQ9Ik00NS4zOCw0NC4yMmEzLjI1LDMuMjUsMCwwLDEsLjkuMDho MGEyLjE4LDIuMTgsMCwwLDEsLjEuOTJ2Mi42OWEzLjI4LDMuMjgsMCwwLDEtLjA4LjksMi4xOCwy LjE4LDAsMCwxLS45Mi4xaC01YTMuMjUsMy4yNSwwLDAsMS0uOS0uMDhoMGEyLjE4LDIuMTgsMCww LDEtLjEtLjkyVjQ1LjIyYTMuMjgsMy4yOCwwLDAsMSwuMDgtLjksMi4xOCwyLjE4LDAsMCwxLC45 Mi0uMWg1bTAtMWgtNWMtMS42NSwwLTIsLjM1LTIsMnYyLjY5YzAsMS42NS4zNSwyLDIsMmg1YzEu NjUsMCwyLS4zNSwyLTJWNDUuMjJjMC0xLjY1LS4zNS0yLTItMloiLz48cmVjdCBjbGFzcz0iY2xz LTIiIHg9IjUwLjg2IiB5PSI0My43MiIgd2lkdGg9IjcuOTgiIGhlaWdodD0iNS42OSIgcng9IjEu NSIgcnk9IjEuNSIvPjxwYXRoIGNsYXNzPSJjbHMtMyIgZD0iTTU3LjM1LDQ0LjIyYTMuMjUsMy4y NSwwLDAsMSwuOS4wOGgwYTIuMTgsMi4xOCwwLDAsMSwuMS45MnYyLjY5YTMuMjgsMy4yOCwwLDAs MS0uMDguOSwyLjE4LDIuMTgsMCwwLDEtLjkyLjFoLTVhMy4yNSwzLjI1LDAsMCwxLS45LS4wOGgw YTIuMTgsMi4xOCwwLDAsMS0uMS0uOTJWNDUuMjJhMy4yOCwzLjI4LDAsMCwxLC4wOC0uOSwyLjE4 LDIuMTgsMCwwLDEsLjkyLS4xaDVtMC0xaC01Yy0xLjY1LDAtMiwuMzUtMiwydjIuNjljMCwxLjY1 LjM1LDIsMiwyaDVjMS42NSwwLDItLjM1LDItMlY0NS4yMmMwLTEuNjUtLjM1LTItMi0yWiIvPjxy ZWN0IGNsYXNzPSJjbHMtMiIgeD0iNDQuODgiIHk9IjMwLjk3IiB3aWR0aD0iNy45OCIgaGVpZ2h0 PSI1LjY5IiByeD0iMS41IiByeT0iMS41Ii8+PHBhdGggY2xhc3M9ImNscy0zIiBkPSJNNTEuMzYs MzEuNDdhMy4yNSwzLjI1LDAsMCwxLC45LjA4aDBhMi4xOCwyLjE4LDAsMCwxLC4xLjkydjIuNjlh My4yOCwzLjI4LDAsMCwxLS4wOC45LDIuMTgsMi4xOCwwLDAsMS0uOTIuMWgtNWEzLjI1LDMuMjUs MCwwLDEtLjktLjA4aDBhMi4xOCwyLjE4LDAsMCwxLS4xLS45MlYzMi40N2EzLjI4LDMuMjgsMCww LDEsLjA4LS45LDIuMTgsMi4xOCwwLDAsMSwuOTItLjFoNW0wLTFoLTVjLTEuNjUsMC0yLC4zNS0y LDJ2Mi42OWMwLDEuNjUuMzUsMiwyLDJoNWMxLjY1LDAsMi0uMzUsMi0yVjMyLjQ3YzAtMS42NS0u MzUtMi0yLTJaIi8+PHBhdGggY2xhc3M9ImNscy00IiBkPSJNMzEuODksMTguMjhWMTYuMDljMC0x LjM3LjEzLTEuNSwxLjUtMS41aDdjMS4zNywwLDEuNS4xMywxLjUsMS41djIuMTlaIi8+PHBhdGgg Y2xhc3M9ImNscy01IiBkPSJNNDAuMzgsMTUuMDlhMy4yNSwzLjI1LDAsMCwxLC45LjA4aDBhMi4x NywyLjE3LDAsMCwxLC4xLjkydjEuNjloLTlWMTYuMDlhMy4yOCwzLjI4LDAsMCwxLC4wOC0uOSwy LjE4LDIuMTgsMCwwLDEsLjkyLS4xaDdtMC0xaC03Yy0xLjY1LDAtMiwuMzUtMiwydjIuNjloMTFW MTYuMDljMC0xLjY1LS4zNS0yLTItMloiLz48cG9seWdvbiBjbGFzcz0iY2xzLTYiIHBvaW50cz0i OC4xMyA0OS40NSA0LjY1IDQ0LjggMTEuNjEgNDQuOCA4LjEzIDQ5LjQ1Ii8+PGxpbmUgY2xhc3M9 ImNscy03IiB4MT0iOC4xMyIgeTE9IjQ1LjQzIiB4Mj0iOC4xMyIgeTI9IjE4LjQ2Ii8+PC9zdmc+ ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vc3Rh dGljL2pzL0V4cGxhaW4vaW1nL2V4X2luZGV4X3NjYW4uc3ZnIGIvd2ViL3BnYWRtaW4vc3RhdGlj L2pzL0V4cGxhaW4vaW1nL2V4X2luZGV4X3NjYW4uc3ZnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAwMC4uMGI1YjFiMDNkCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4v c3RhdGljL2pzL0V4cGxhaW4vaW1nL2V4X2luZGV4X3NjYW4uc3ZnCkBAIC0wLDAgKzEgQEAKKzxz dmcgaWQ9Il8xIiBkYXRhLW5hbWU9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2 ZyIgdmlld0JveD0iMCAwIDY0IDY0Ij48ZGVmcz48c3R5bGU+LmNscy0xe2ZpbGw6bm9uZTtzdHJv a2U6Izc0NzQ3NDtzdHJva2UtbGluZWNhcDpyb3VuZDtzdHJva2UtbGluZWpvaW46cm91bmQ7c3Ry b2tlLXdpZHRoOjAuNzVweDt9LmNscy0yLC5jbHMtOHtmaWxsOiNmMGVjYjY7fS5jbHMtM3tmaWxs OiNjMThmMzU7fS5jbHMtNHtmaWxsOiNhZGRmZjM7fS5jbHMtNXtmaWxsOiMyOTgwYjk7fS5jbHMt NntmaWxsOiNjMThmMzY7fS5jbHMtN3tvcGFjaXR5OjAuODt9LmNscy04e3N0cm9rZTojYzE4ZjM2 O3N0cm9rZS1taXRlcmxpbWl0OjEwO308L3N0eWxlPjwvZGVmcz48dGl0bGU+ZXhfaW5kZXhfc2Nh bjwvdGl0bGU+PGxpbmUgY2xhc3M9ImNscy0xIiB4MT0iMTMuODUiIHkxPSIzNi4yMyIgeDI9IjE5 LjEyIiB5Mj0iNDQuNyIvPjxsaW5lIGNsYXNzPSJjbHMtMSIgeDE9IjEzLjg1IiB5MT0iMzYuMjMi IHgyPSIxOS4wOSIgeTI9IjI3LjkyIi8+PGxpbmUgY2xhc3M9ImNscy0xIiB4MT0iMjcuNjQiIHkx PSI0NC4zMyIgeDI9IjM1LjY0IiB5Mj0iNTAuMjMiLz48bGluZSBjbGFzcz0iY2xzLTEiIHgxPSIy Ny42NCIgeTE9IjQ0LjMzIiB4Mj0iMzUuNjQiIHkyPSIzOC45MiIvPjxyZWN0IGNsYXNzPSJjbHMt MiIgeD0iMTkuMjYiIHk9IjQxLjY1IiB3aWR0aD0iNy45OCIgaGVpZ2h0PSI1LjY5IiByeD0iMS41 IiByeT0iMS41Ii8+PHBhdGggY2xhc3M9ImNscy0zIiBkPSJNMjUuNzUsNDIuMTVhMy41NCwzLjU0 LDAsMCwxLC45LjA3aDBhMi40LDIuNCwwLDAsMSwuMS45M3YyLjY5YTMuMTgsMy4xOCwwLDAsMS0u MDguOXMtLjE5LjEtLjkyLjFoLTVhMy4xMSwzLjExLDAsMCwxLS45LS4wOGgwYTIuMjUsMi4yNSww LDAsMS0uMS0uOTJWNDMuMTVhMy4xOCwzLjE4LDAsMCwxLC4wOC0uOXMuMTktLjEuOTItLjFoNW0w LTFoLTVjLTEuNjUsMC0yLC4zNS0yLDJ2Mi42OWMwLDEuNjUuMzUsMiwyLDJoNWMxLjY1LDAsMi0u MzUsMi0yVjQzLjE1YzAtMS42NS0uMzUtMi0yLTJaIi8+PGxpbmUgY2xhc3M9ImNscy0xIiB4MT0i MjcuNjQiIHkxPSIyNy44MyIgeDI9IjM1LjY0IiB5Mj0iMzMuNzMiLz48bGluZSBjbGFzcz0iY2xz LTEiIHgxPSIyNy42NCIgeTE9IjI3LjgzIiB4Mj0iMzUuNjQiIHkyPSIyMi40MiIvPjxyZWN0IGNs YXNzPSJjbHMtMiIgeD0iMTkuMjYiIHk9IjI1LjE1IiB3aWR0aD0iNy45OCIgaGVpZ2h0PSI1LjY5 IiByeD0iMS41IiByeT0iMS41Ii8+PHBhdGggY2xhc3M9ImNscy0zIiBkPSJNMjUuNzUsMjUuNjVh My41NCwzLjU0LDAsMCwxLC45LjA3aDBhMi40LDIuNCwwLDAsMSwuMS45M3YyLjY5YTMuMTgsMy4x OCwwLDAsMS0uMDguOXMtLjE5LjEtLjkyLjFoLTVhMy4xMSwzLjExLDAsMCwxLS45LS4wOGgwYTIu MjUsMi4yNSwwLDAsMS0uMS0uOTJWMjYuNjVhMy4xOCwzLjE4LDAsMCwxLC4wOC0uOXMuMTktLjEu OTItLjFoNW0wLTFoLTVjLTEuNjUsMC0yLC4zNS0yLDJ2Mi42OWMwLDEuNjUuMzUsMiwyLDJoNWMx LjY1LDAsMi0uMzUsMi0yVjI2LjY1YzAtMS42NS0uMzUtMi0yLTJaIi8+PHBhdGggY2xhc3M9ImNs cy0yIiBkPSJNNi42MSw0MC44OWMtMS4zOCwwLTEuNS0uMTMtMS41LTEuNVYzNS4yaDh2NC4xOWMw LDEuMzctLjEzLDEuNS0xLjUsMS41WiIvPjxwYXRoIGNsYXNzPSJjbHMtMyIgZD0iTTEyLjU5LDM1 Ljd2My42OWEyLjcsMi43LDAsMCwxLS4wOC45cy0uMTkuMS0uOTIuMWgtNWEzLDMsMCwwLDEtLjkt LjA4aDBhMi40NSwyLjQ1LDAsMCwxLS4wOS0uOTJWMzUuN2g3bTEtMWgtOXY0LjY5YzAsMS42NS4z NSwyLDIsMmg1YzEuNjUsMCwyLS4zNSwyLTJWMzQuN1oiLz48cGF0aCBjbGFzcz0iY2xzLTQiIGQ9 Ik01LjExLDM1LjI2VjMzLjA3YzAtMS4zOC4xMi0xLjUsMS41LTEuNWg1YzEuMzcsMCwxLjUuMTIs MS41LDEuNXYyLjE5WiIvPjxwYXRoIGNsYXNzPSJjbHMtNSIgZD0iTTExLjU5LDMyLjA3YTMuNTQs My41NCwwLDAsMSwuOS4wN2gwYTIuMTYsMi4xNiwwLDAsMSwuMS45M3YxLjY5aC03VjMzLjA3YTMu NzEsMy43MSwwLDAsMSwuMDctLjksMi4xNiwyLjE2LDAsMCwxLC45My0uMWg1bTAtMWgtNWMtMS42 NSwwLTIsLjM1LTIsMnYyLjY5aDlWMzMuMDdjMC0xLjY1LS4zNS0yLTItMloiLz48cGF0aCBjbGFz cz0iY2xzLTIiIGQ9Ik0zNS43NCw1My40N2MtMS4zOCwwLTEuNS0uMTItMS41LTEuNVYxOS41M0g1 OC44OVY1MmMwLDEuMzgtLjEzLDEuNS0xLjUsMS41WiIvPjxwYXRoIGNsYXNzPSJjbHMtNiIgZD0i TTU4LjM5LDIwVjUyYTIuNywyLjcsMCwwLDEtLjA4LjlzLS4xOS4xLS45Mi4xSDM1Ljc0YTMuNTQs My41NCwwLDAsMS0uOS0uMDdoMGEyLjE2LDIuMTYsMCwwLDEtLjEtLjkzVjIwSDU4LjM5bTEtMUgz My43NFY1MmMwLDEuNjUuMzUsMiwyLDJINTcuMzljMS42NSwwLDItLjM1LDItMlYxOVoiLz48ZyBj bGFzcz0iY2xzLTciPjxsaW5lIGNsYXNzPSJjbHMtOCIgeDE9IjQyLjQ0IiB5MT0iNTIuOTciIHgy PSI0Mi40NCIgeTI9IjE5Ljk3Ii8+PGxpbmUgY2xhc3M9ImNscy04IiB4MT0iNTAuNjMiIHkxPSI1 Mi45NyIgeDI9IjUwLjYzIiB5Mj0iMTkuOTciLz48bGluZSBjbGFzcz0iY2xzLTgiIHgxPSIzNC43 MyIgeTE9IjI3Ljk3IiB4Mj0iNTguMzciIHkyPSIyNy45NyIvPjxsaW5lIGNsYXNzPSJjbHMtOCIg eDE9IjM0LjczIiB5MT0iMzYuMzQiIHgyPSI1OC4zNyIgeTI9IjM2LjM0Ii8+PGxpbmUgY2xhc3M9 ImNscy04IiB4MT0iMzQuNzMiIHkxPSI0NC43MSIgeDI9IjU4LjM3IiB5Mj0iNDQuNzEiLz48L2c+ PHBhdGggY2xhc3M9ImNscy00IiBkPSJNNTAuNywxOS41M3YtOWg2LjY5YzEuMzgsMCwxLjUuMTIs MS41LDEuNXY3LjVaIi8+PHBhdGggY2xhc3M9ImNscy01IiBkPSJNNTcuMzksMTFhMy40NCwzLjQ0 LDAsMCwxLC45LjA3aDBhMi42MiwyLjYyLDAsMCwxLC4wOS45M3Y3SDUxLjJWMTFoNi4xOW0wLTFI NTAuMlYyMGg5LjE5VjEyYzAtMS42NS0uMzUtMi0yLTJaIi8+PHBhdGggY2xhc3M9ImNscy00IiBk PSJNMzQuMjMsMTkuNTNWMTJjMC0xLjM4LjEzLTEuNSwxLjUtMS41aDYuN3Y5WiIvPjxwYXRoIGNs YXNzPSJjbHMtNSIgZD0iTTQxLjkzLDExdjhoLTcuMlYxMmEzLjE4LDMuMTgsMCwwLDEsLjA4LS45 LDIuMDgsMi4wOCwwLDAsMSwuOTItLjFoNi4ybTEtMWgtNy4yYy0xLjY1LDAtMiwuMzUtMiwydjho OS4yVjEwWiIvPjxyZWN0IGNsYXNzPSJjbHMtNCIgeD0iNDIuNDUiIHk9IjEwLjUzIiB3aWR0aD0i OC4xNyIgaGVpZ2h0PSI5Ii8+PHBhdGggY2xhc3M9ImNscy01IiBkPSJNNTAuMTIsMTF2OEg0M1Yx MWg3LjE3bTEtMUg0MlYyMGg5LjE3VjEwWiIvPjwvc3ZnPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9m IGZpbGUKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL3N0YXRpYy9qcy9FeHBsYWluL2ltZy9leF9p bnNlcnQuc3ZnIGIvd2ViL3BnYWRtaW4vc3RhdGljL2pzL0V4cGxhaW4vaW1nL2V4X2luc2VydC5z dmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwLi4yMDJiZWFhNGUKLS0tIC9k ZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9zdGF0aWMvanMvRXhwbGFpbi9pbWcvZXhfaW5zZXJ0 LnN2ZwpAQCAtMCwwICsxIEBACis8c3ZnIGlkPSJfMSIgZGF0YS1uYW1lPSIxIiB4bWxucz0iaHR0 cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2NCA2NCI+PGRlZnM+PHN0eWxl Pi5jbHMtMSwuY2xzLTV7ZmlsbDojZjBlY2I2O30uY2xzLTJ7ZmlsbDojYzE4ZjM2O30uY2xzLTN7 ZmlsbDojODhmNjI1O30uY2xzLTR7b3BhY2l0eTowLjg7fS5jbHMtNXtzdHJva2U6I2MxOGYzNjtz dHJva2UtbWl0ZXJsaW1pdDoxMDt9LmNscy02e2ZpbGw6I2FkZGZmMzt9LmNscy03e2ZpbGw6IzI5 ODBiOTt9PC9zdHlsZT48L2RlZnM+PHRpdGxlPmV4X2luc2VydDwvdGl0bGU+PHBhdGggY2xhc3M9 ImNscy0xIiBkPSJNMTYuNzMsNTcuNDdjLTEuMzcsMC0xLjUtLjEzLTEuNS0xLjVWMTUuNTNoNDFW NTZjMCwxLjM3LS4xMywxLjUtMS41LDEuNVoiLz48cGF0aCBjbGFzcz0iY2xzLTIiIGQ9Ik01NS43 MiwxNlY1NmEzLjI5LDMuMjksMCwwLDEtLjA4LjksMi4xOCwyLjE4LDAsMCwxLS45Mi4xaC0zOGEz LjI1LDMuMjUsMCwwLDEtLjktLjA4aDBhMi4xOCwyLjE4LDAsMCwxLS4xLS45MlYxNmg0MG0xLTFo LTQyVjU2YzAsMS42NS4zNSwyLDIsMmgzOGMxLjY1LDAsMi0uMzUsMi0yVjE1WiIvPjxyZWN0IGNs YXNzPSJjbHMtMyIgeD0iNDguNTIiIHk9IjQ5LjUzIiB3aWR0aD0iNy4yMiIgaGVpZ2h0PSI3LjQ0 Ii8+PHJlY3QgY2xhc3M9ImNscy0zIiB4PSI0MC4zMiIgeT0iNDkuNTMiIHdpZHRoPSI3LjIyIiBo ZWlnaHQ9IjcuNDQiLz48cmVjdCBjbGFzcz0iY2xzLTMiIHg9IjMyLjEyIiB5PSI0OS41MyIgd2lk dGg9IjcuMjIiIGhlaWdodD0iNy40NCIvPjxnIGNsYXNzPSJjbHMtNCI+PGxpbmUgY2xhc3M9ImNs cy01IiB4MT0iMjMuNDMiIHkxPSI1Ni45NyIgeDI9IjIzLjQzIiB5Mj0iMTUuOTciLz48bGluZSBj bGFzcz0iY2xzLTUiIHgxPSIzOS44MyIgeTE9IjU2Ljk3IiB4Mj0iMzkuODMiIHkyPSIxNS45NyIv PjxsaW5lIGNsYXNzPSJjbHMtNSIgeDE9IjMxLjYzIiB5MT0iNTYuOTciIHgyPSIzMS42MyIgeTI9 IjE1Ljk3Ii8+PGxpbmUgY2xhc3M9ImNscy01IiB4MT0iNDguMDMiIHkxPSI1Ni45NyIgeDI9IjQ4 LjAzIiB5Mj0iMTUuOTciLz48bGluZSBjbGFzcz0iY2xzLTUiIHgxPSIxNS43MyIgeTE9IjIzLjk3 IiB4Mj0iNTUuNyIgeTI9IjIzLjk3Ii8+PGxpbmUgY2xhc3M9ImNscy01IiB4MT0iMTUuNzMiIHkx PSIzMi4zNCIgeDI9IjU1LjciIHkyPSIzMi4zNCIvPjxsaW5lIGNsYXNzPSJjbHMtNSIgeDE9IjE1 LjczIiB5MT0iNDAuNzEiIHgyPSI1NS43IiB5Mj0iNDAuNzEiLz48bGluZSBjbGFzcz0iY2xzLTUi IHgxPSIxNS43MyIgeTE9IjQ5LjA4IiB4Mj0iNTUuNyIgeTI9IjQ5LjA4Ii8+PC9nPjxwYXRoIGNs YXNzPSJjbHMtNiIgZD0iTTQ4LDE1LjUzdi05aDYuNjljMS4zNywwLDEuNS4xMywxLjUsMS41djcu NVoiLz48cGF0aCBjbGFzcz0iY2xzLTciIGQ9Ik01NC43Myw3YTMuMjUsMy4yNSwwLDAsMSwuOS4w OGgwYTIuMTgsMi4xOCwwLDAsMSwuMS45MnY3SDQ4LjUzVjdoNi4xOW0wLTFINDcuNTNWMTZoOS4x OVY4YzAtMS42NS0uMzUtMi0yLTJaIi8+PHBhdGggY2xhc3M9ImNscy02IiBkPSJNMTUuMjMsMTUu NTNWOGMwLTEuMzcuMTMtMS41LDEuNS0xLjVoNi42OXY5WiIvPjxwYXRoIGNsYXNzPSJjbHMtNyIg ZD0iTTIyLjkzLDd2OEgxNS43M1Y4YTMuMjksMy4yOSwwLDAsMSwuMDgtLjksMi4xOCwyLjE4LDAs MCwxLC45Mi0uMWg2LjE5bTEtMUgxNi43M2MtMS42NSwwLTIsLjM1LTIsMnY4aDkuMTlWNloiLz48 cmVjdCBjbGFzcz0iY2xzLTYiIHg9IjM5LjgzIiB5PSI2LjUzIiB3aWR0aD0iOC4xOSIgaGVpZ2h0 PSI5Ii8+PHBhdGggY2xhc3M9ImNscy03IiBkPSJNNDcuNTIsN3Y4SDQwLjMzVjdoNy4xOG0xLTFI MzkuMzNWMTZoOS4xOVY2WiIvPjxyZWN0IGNsYXNzPSJjbHMtNiIgeD0iMzEuNjQiIHk9IjYuNTMi IHdpZHRoPSI4LjE5IiBoZWlnaHQ9IjkiLz48cGF0aCBjbGFzcz0iY2xzLTciIGQ9Ik0zOS4zMyw3 djhIMzIuMTRWN2g3LjE4bTEtMUgzMS4xNFYxNmg5LjE5VjZaIi8+PHJlY3QgY2xhc3M9ImNscy02 IiB4PSIyMy40NSIgeT0iNi41MyIgd2lkdGg9IjguMTciIGhlaWdodD0iOSIvPjxwYXRoIGNsYXNz PSJjbHMtNyIgZD0iTTMxLjEyLDd2OEgyMy45NVY3aDcuMTdtMS0xSDIzVjE2aDkuMThWNloiLz48 cGF0aCBjbGFzcz0iY2xzLTIiIGQ9Ik03LjI3LDI4LjI4QTMuMzcsMy4zNywwLDAsMSwxMywyNS44 NWgwbC4xMy4xMy4wNS4wNUwyNC43MiwzNy41OGEuNC40LDAsMCwxLC4xOC4ybDEuNjMsNS44MnYu MDZoMGEuNDYuNDYsMCwwLDEsMCwuMTIuNDEuNDEsMCwwLDEsMCwuMTJzMCwwLDAsMGgwYS40LjQs MCwwLDEtLjA2LjFsMCwwLDAsMC0uMS4wNmgwbC0uMTIsMC0uMTIsMEgyNmwtNS44Mi0xLjYzYS40 LjQsMCwwLDEtLjItLjE4TDguMjIsMzAuNjRhLjQuNCwwLDAsMS0uMDgtLjEyQTMuMzUsMy4zNSww LDAsMSw3LjI3LDI4LjI4Wm0xMi45LDEzLjE1LDEtMmgwbC05LjkzLTkuOTNMOS43MywzMVptNSwu NTUtLjg0Ljg0LDEuMTcuMzNabS0xLTMuNDhMMjIsMzkuNmwtMS4wOSwyLjI2LDIuNTcuNzIsMS40 OS0xLjQ5Wm0tLjQyLS43TDEzLjM1LDI3LjM3bC0xLjUyLDEuNTIsOS45Myw5LjkzaDBaTTguMSwy OC4zMWEyLjU1LDIuNTUsMCwwLDAsLjgzLDEuODhoMGwuMjIuMjIsMy42Mi0zLjYyLS4yMi0uMjJo MEEyLjU2LDIuNTYsMCwwLDAsOC4xLDI4LjMxWiIvPjxwb2x5Z29uIGNsYXNzPSJjbHMtMSIgcG9p bnRzPSIyMC4xNyA0MS40NSAyMS4xNyAzOS40MiAyMS4xOCAzOS40MSAxMS4yNSAyOS40OCA5Ljcz IDMxIDIwLjE3IDQxLjQ1Ii8+PHBvbHlnb24gY2xhc3M9ImNscy0xIiBwb2ludHM9IjEzLjM1IDI3 LjM4IDExLjgzIDI4LjkgMjEuNzYgMzguODMgMjEuNzcgMzguODIgMjMuNzkgMzcuODMgMTMuMzUg MjcuMzgiLz48cGF0aCBjbGFzcz0iY2xzLTEiIGQ9Ik04LjEyLDI4LjI3QTIuNTUsMi41NSwwLDAs MCw5LDMwLjE1SDlsLjIyLjIyLDMuNjItMy42Mi0uMjItLjIyaDBhMi41NiwyLjU2LDAsMCwwLTQu NDUsMS43M1oiLz48cG9seWdvbiBjbGFzcz0iY2xzLTEiIHBvaW50cz0iMjQuMjIgMzguNTIgMjEu OTYgMzkuNiAyMC44NyA0MS44NiAyMy40NCA0Mi41OCAyNC45NCA0MS4wOSAyNC4yMiAzOC41MiIv Pjwvc3ZnPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3dlYi9wZ2Fk bWluL3N0YXRpYy9qcy9FeHBsYWluL2ltZy9leF9qb2luLnN2ZyBiL3dlYi9wZ2FkbWluL3N0YXRp Yy9qcy9FeHBsYWluL2ltZy9leF9qb2luLnN2ZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwMDAuLjMwMTQ2YTllYQotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL3N0YXRp Yy9qcy9FeHBsYWluL2ltZy9leF9qb2luLnN2ZwpAQCAtMCwwICsxIEBACis8c3ZnIGlkPSJfMSIg ZGF0YS1uYW1lPSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9 IjAgMCA2NCA2NCI+PGRlZnM+PHN0eWxlPi5jbHMtMXtmaWxsOiMzNDQ5NWU7c3Ryb2tlOiM1Mjhk MTk7c3Ryb2tlLW1pdGVybGltaXQ6MTA7fS5jbHMtMntmaWxsOiNmMGVjYjY7fS5jbHMtM3tmaWxs OiNjMThmMzU7fS5jbHMtNHtmaWxsOiNkM2Q0ZjM7fS5jbHMtNXtmaWxsOiM2NjZiZDE7fS5jbHMt NntmaWxsOiNhZGRmZjM7fS5jbHMtN3tmaWxsOiMyOTgwYjk7fS5jbHMtOCwuY2xzLTl7ZmlsbDpu b25lO3N0cm9rZS1saW5lam9pbjpyb3VuZDtvcGFjaXR5OjAuODt9LmNscy04e3N0cm9rZTojNjY2 YmQxO30uY2xzLTl7c3Ryb2tlOiNjMThmMzU7fTwvc3R5bGU+PC9kZWZzPjx0aXRsZT5leF9qb2lu PC90aXRsZT48cGF0aCBjbGFzcz0iY2xzLTEiIGQ9Ik0zMC4yNyw0MS4zNmE0LjQyLDQuNDIsMCww LDAsMi4wNS0uNTEsMi44MSwyLjgxLDAsMCwwLDEuMDYtMS4wOCwzLjU5LDMuNTksMCwwLDAsLjQt MS40cS4wNi0uNzUuMDYtMS40NnYuMzVjMC0uNjgsMC0xLjI1LDAtMS43MmE5LjI4LDkuMjgsMCww LDEsLjExLTEuMiwyLjc2LDIuNzYsMCwwLDEsLjI2LS44MywyLjM3LDIuMzcsMCwwLDEsLjQ0LS42 LDIuNTMsMi41MywwLDAsMSwuNjItLjQ2LDQsNCwwLDAsMSwuNjQtLjI3LDMuNSwzLjUsMCwwLDEs LjYtLjEzYy4xOSwwLC4xOS0uMSwwLS4xMmEzLjUyLDMuNTIsMCwwLDEtLjYtLjEzLDMuNjUsMy42 NSwwLDAsMS0uNjQtLjI3LDIuNTIsMi41MiwwLDAsMS0uNjItLjQ2LDIuNDEsMi40MSwwLDAsMS0u NDQtLjYsMi43NywyLjc3LDAsMCwxLS4yNi0uODMsOS4zMSw5LjMxLDAsMCwxLS4xMS0xLjJxMC0u NzEsMC0xLjczdi4zNmMwLS40NywwLTEtLjA2LTEuNDZhMy41OCwzLjU4LDAsMCwwLS40LTEuNCwy LjgyLDIuODIsMCwwLDAtMS4wNi0xLjA4LDQuNDcsNC40NywwLDAsMC0yLjA1LS41MVYyMi4ybC41 MywwYTQuMTEsNC4xMSwwLDAsMSwuNjcuMTEsNS4xMiw1LjEyLDAsMCwxLC43Mi4yMywyLjg5LDIu ODksMCwwLDEsLjcuNDEsMy4zNCwzLjM0LDAsMCwxLC44My45QTMuNjYsMy42NiwwLDAsMSwzNC4x NSwyNWE3LDcsMCwwLDEsLjE2LDEuMjljMCwuNDcsMCwxLjg4LDAsMS44OGE3LjksNy45LDAsMCww LC4xMiwxLjUsMi4zNywyLjM3LDAsMCwwLC40NywxLjA2LDIuNjUsMi42NSwwLDAsMCwxLC43My42 OS42OSwwLDAsMSwwLDEuMTcsMi42NiwyLjY2LDAsMCwwLTEsLjczLDIuMzksMi4zOSwwLDAsMC0u NDcsMS4wNiw3LjksNy45LDAsMCwwLS4xMiwxLjVzLS4wOSwyLjc4LS4xOCwzLjE3YTMuNjUsMy42 NSwwLDAsMS0uNDMsMS4wNywzLjMxLDMuMzEsMCwwLDEtLjgzLjksMi45LDIuOSwwLDAsMS0uNy40 MSw1LjM5LDUuMzksMCwwLDEtLjcyLjIzLDQuMzQsNC4zNCwwLDAsMS0uNjcuMTFsLS41MywwWiIv PjxwYXRoIGNsYXNzPSJjbHMtMiIgZD0iTTQxLjE0LDQ5Ljg4Yy0xLjM3LDAtMS41LS4xMy0xLjUt MS41VjE5Ljg4aDcuMjh2MzBaIi8+PHBhdGggY2xhc3M9ImNscy0zIiBkPSJNNDYuNDIsMjAuMzh2 MjlINDEuMTRhMy4yNSwzLjI1LDAsMCwxLS45LS4wOGgwYTIuMTgsMi4xOCwwLDAsMS0uMS0uOTJ2 LTI4aDYuMjhtMS0xSDM5LjE0djI5YzAsMS42NS4zNSwyLDIsMmg2LjI4di0zMVoiLz48cGF0aCBj bGFzcz0iY2xzLTQiIGQ9Ik00Ni45LDQ5Ljg4di0zMGg3LjI4djI4LjVjMCwxLjM3LS4xMywxLjUt MS41LDEuNVoiLz48cGF0aCBjbGFzcz0iY2xzLTUiIGQ9Ik01My42OSwyMC4zOHYyOGEzLjI4LDMu MjgsMCwwLDEtLjA4LjksMi4xOCwyLjE4LDAsMCwxLS45Mi4xSDQ3LjR2LTI5aDYuMjhtMS0xSDQ2 LjR2MzFoNi4yOGMxLjY1LDAsMi0uMzUsMi0ydi0yOVoiLz48cGF0aCBjbGFzcz0iY2xzLTYiIGQ9 Ik0zOS42NCwxOS44OHYtNC41YzAtMS4zNy4xMy0xLjUsMS41LTEuNWg1Ljc4djZaIi8+PHBhdGgg Y2xhc3M9ImNscy03IiBkPSJNNDYuNDIsMTQuMzh2NUg0MC4xNHYtNGEzLjI4LDMuMjgsMCwwLDEs LjA4LS45LDIuMTgsMi4xOCwwLDAsMSwuOTItLjFoNS4yOG0xLTFINDEuMTRjLTEuNjUsMC0yLC4z NS0yLDJ2NWg4LjI4di03WiIvPjxwYXRoIGNsYXNzPSJjbHMtNiIgZD0iTTQ2LjkxLDE5Ljg4di02 aDUuNzhjMS4zNywwLDEuNS4xMywxLjUsMS41djQuNVoiLz48cGF0aCBjbGFzcz0iY2xzLTciIGQ9 Ik01Mi42OSwxNC4zOGEzLjI1LDMuMjUsMCwwLDEsLjkuMDhoMGEyLjE4LDIuMTgsMCwwLDEsLjEu OTJ2NEg0Ny40MXYtNWg1LjI4bTAtMUg0Ni40MXY3aDguMjh2LTVjMC0xLjY1LS4zNS0yLTItMloi Lz48bGluZSBjbGFzcz0iY2xzLTgiIHgxPSI0Ni42NyIgeTE9IjI2LjIzIiB4Mj0iNTQuMTYiIHky PSIyNi4yMyIvPjxsaW5lIGNsYXNzPSJjbHMtOSIgeDE9IjM5LjY3IiB5MT0iMjYuMjMiIHgyPSI0 Ni40IiB5Mj0iMjYuMjMiLz48bGluZSBjbGFzcz0iY2xzLTgiIHgxPSI0Ni42NyIgeTE9IjMyLjIz IiB4Mj0iNTQuMTYiIHkyPSIzMi4yMyIvPjxsaW5lIGNsYXNzPSJjbHMtOSIgeDE9IjM5LjY3IiB5 MT0iMzIuMjMiIHgyPSI0Ni40IiB5Mj0iMzIuMjMiLz48bGluZSBjbGFzcz0iY2xzLTgiIHgxPSI0 Ni42NyIgeTE9IjM4LjIzIiB4Mj0iNTQuMTYiIHkyPSIzOC4yMyIvPjxsaW5lIGNsYXNzPSJjbHMt OSIgeDE9IjM5LjY3IiB5MT0iMzguMjMiIHgyPSI0Ni40IiB5Mj0iMzguMjMiLz48bGluZSBjbGFz cz0iY2xzLTgiIHgxPSI0Ni42NyIgeTE9IjQ0LjIzIiB4Mj0iNTQuMTYiIHkyPSI0NC4yMyIvPjxs aW5lIGNsYXNzPSJjbHMtOSIgeDE9IjM5LjY3IiB5MT0iNDQuMjMiIHgyPSI0Ni40IiB5Mj0iNDQu MjMiLz48cGF0aCBjbGFzcz0iY2xzLTQiIGQ9Ik0xMS4zNCwyOS4zMWMtMS4zNywwLTEuNS0uMTMt MS41LTEuNVYxNi4zMWg3LjI4djEzWiIvPjxwYXRoIGNsYXNzPSJjbHMtNSIgZD0iTTE2LjYyLDE2 LjgxdjEySDExLjM0YTMuMjUsMy4yNSwwLDAsMS0uOS0uMDhoMGEyLjE4LDIuMTgsMCwwLDEtLjEt Ljkydi0xMWg2LjI4bTEtMUg5LjM0djEyYzAsMS42NS4zNSwyLDIsMmg2LjI4di0xNFoiLz48cGF0 aCBjbGFzcz0iY2xzLTQiIGQ9Ik0xNy4xMSwyOS4zMXYtMTNoNy4yOHYxMS41YzAsMS4zNy0uMTMs MS41LTEuNSwxLjVaIi8+PHBhdGggY2xhc3M9ImNscy01IiBkPSJNMjMuODksMTYuODF2MTFhMy4y OCwzLjI4LDAsMCwxLS4wOC45LDIuMTgsMi4xOCwwLDAsMS0uOTIuMUgxNy42MXYtMTJoNi4yOG0x LTFIMTYuNjF2MTRoNi4yOGMxLjY1LDAsMi0uMzUsMi0ydi0xMloiLz48cGF0aCBjbGFzcz0iY2xz LTYiIGQ9Ik05Ljg0LDE2LjMxdi00LjVjMC0xLjM3LjEzLTEuNSwxLjUtMS41aDUuNzh2NloiLz48 cGF0aCBjbGFzcz0iY2xzLTciIGQ9Ik0xNi42MiwxMC44MXY1SDEwLjM0di00YTMuMjgsMy4yOCww LDAsMSwuMDgtLjksMi4xOCwyLjE4LDAsMCwxLC45Mi0uMWg1LjI4bTEtMUgxMS4zNGMtMS42NSww LTIsLjM1LTIsMnY1aDguMjh2LTdaIi8+PHBhdGggY2xhc3M9ImNscy02IiBkPSJNMTcuMTEsMTYu MzF2LTZoNS43OGMxLjM3LDAsMS41LjEzLDEuNSwxLjV2NC41WiIvPjxwYXRoIGNsYXNzPSJjbHMt NyIgZD0iTTIyLjg5LDEwLjgxYTMuMjUsMy4yNSwwLDAsMSwuOS4wOGgwYTIuMTgsMi4xOCwwLDAs MSwuMS45MnY0SDE3LjYxdi01aDUuMjhtMC0xSDE2LjYxdjdoOC4yOHYtNWMwLTEuNjUtLjM1LTIt Mi0yWiIvPjxsaW5lIGNsYXNzPSJjbHMtOCIgeDE9IjE2Ljg3IiB5MT0iMjIuNjYiIHgyPSIyNC4z NyIgeTI9IjIyLjY2Ii8+PGxpbmUgY2xhc3M9ImNscy04IiB4MT0iOS44NyIgeTE9IjIyLjY2IiB4 Mj0iMTYuNjEiIHkyPSIyMi42NiIvPjxwYXRoIGNsYXNzPSJjbHMtMiIgZD0iTTExLjM0LDUzLjQ2 Yy0xLjM3LDAtMS41LS4xMy0xLjUtMS41VjQwLjQ2aDcuMjh2MTNaIi8+PHBhdGggY2xhc3M9ImNs cy0zIiBkPSJNMTYuNjIsNDFWNTNIMTEuMzRhMy4yNSwzLjI1LDAsMCwxLS45LS4wOGgwYTIuMTgs Mi4xOCwwLDAsMS0uMS0uOTJWNDFoNi4yOG0xLTFIOS4zNFY1MmMwLDEuNjUuMzUsMiwyLDJoNi4y OFY0MFoiLz48cGF0aCBjbGFzcz0iY2xzLTIiIGQ9Ik0xNy4xMSw1My40NnYtMTNoNy4yOFY1MmMw LDEuMzctLjEzLDEuNS0xLjUsMS41WiIvPjxwYXRoIGNsYXNzPSJjbHMtMyIgZD0iTTIzLjg5LDQx VjUyYTMuMjgsMy4yOCwwLDAsMS0uMDguOSwyLjE4LDIuMTgsMCwwLDEtLjkyLjFIMTcuNjFWNDFo Ni4yOG0xLTFIMTYuNjFWNTRoNi4yOGMxLjY1LDAsMi0uMzUsMi0yVjQwWiIvPjxwYXRoIGNsYXNz PSJjbHMtNiIgZD0iTTkuODQsNDAuNDZWMzZjMC0xLjM3LjEzLTEuNSwxLjUtMS41aDUuNzh2Nloi Lz48cGF0aCBjbGFzcz0iY2xzLTciIGQ9Ik0xNi42MiwzNXY1SDEwLjM0VjM2YTMuMjgsMy4yOCww LDAsMSwuMDgtLjksMi4xOCwyLjE4LDAsMCwxLC45Mi0uMWg1LjI4bTEtMUgxMS4zNGMtMS42NSww LTIsLjM1LTIsMnY1aDguMjhWMzRaIi8+PHBhdGggY2xhc3M9ImNscy02IiBkPSJNMTcuMTEsNDAu NDZ2LTZoNS43OGMxLjM3LDAsMS41LjEzLDEuNSwxLjV2NC41WiIvPjxwYXRoIGNsYXNzPSJjbHMt NyIgZD0iTTIyLjg5LDM1YTMuMjUsMy4yNSwwLDAsMSwuOS4wOGgwYTIuMTgsMi4xOCwwLDAsMSwu MS45MnY0SDE3LjYxVjM1aDUuMjhtMC0xSDE2LjYxdjdoOC4yOFYzNmMwLTEuNjUtLjM1LTItMi0y WiIvPjxsaW5lIGNsYXNzPSJjbHMtOSIgeDE9IjE2Ljg3IiB5MT0iNDYuODEiIHgyPSIyNC4zNyIg eTI9IjQ2LjgxIi8+PGxpbmUgY2xhc3M9ImNscy05IiB4MT0iOS44NyIgeTE9IjQ2LjgxIiB4Mj0i MTYuNjEiIHkyPSI0Ni44MSIvPjwvc3ZnPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlm ZiAtLWdpdCBhL3dlYi9wZ2FkbWluL3N0YXRpYy9qcy9FeHBsYWluL2ltZy9leF9saW1pdC5zdmcg Yi93ZWIvcGdhZG1pbi9zdGF0aWMvanMvRXhwbGFpbi9pbWcvZXhfbGltaXQuc3ZnCm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMC4uMjQ0MzE3YTcyCi0tLSAvZGV2L251bGwKKysr IGIvd2ViL3BnYWRtaW4vc3RhdGljL2pzL0V4cGxhaW4vaW1nL2V4X2xpbWl0LnN2ZwpAQCAtMCww ICsxIEBACis8c3ZnIGlkPSJfMSIgZGF0YS1uYW1lPSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5v cmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2NCA2NCI+PGRlZnM+PHN0eWxlPi5jbHMtMSwuY2xz LTR7ZmlsbDojZjBlY2I2O30uY2xzLTJ7ZmlsbDojYzE4ZjM2O30uY2xzLTN7b3BhY2l0eTowLjg7 fS5jbHMtNHtzdHJva2U6I2MxOGYzNjt9LmNscy00LC5jbHMtN3tzdHJva2UtbWl0ZXJsaW1pdDox MDt9LmNscy01e2ZpbGw6I2FkZGZmMzt9LmNscy02e2ZpbGw6IzI5ODBiOTt9LmNscy03e2ZpbGw6 I2QzZDRmMztzdHJva2U6I2MwMDt9LmNscy03LC5jbHMtOXtzdHJva2UtbGluZWNhcDpyb3VuZDtz dHJva2Utd2lkdGg6MS41cHg7fS5jbHMtOCwuY2xzLTl7ZmlsbDojNTI4ZDE5O30uY2xzLTl7c3Ry b2tlOiM1MjhkMTk7c3Ryb2tlLWxpbmVqb2luOnJvdW5kO308L3N0eWxlPjwvZGVmcz48dGl0bGU+ ZXhfbGltaXQ8L3RpdGxlPjxwYXRoIGNsYXNzPSJjbHMtMSIgZD0iTTEyLjc5LDUzLjQ3Yy0xLjM3 LDAtMS41LS4xMy0xLjUtMS41VjE5LjUzaDQxVjUyYzAsMS4zNy0uMTMsMS41LTEuNSwxLjVaIi8+ PHBhdGggY2xhc3M9ImNscy0yIiBkPSJNNTEuNzcsMjBWNTJhMy4yOCwzLjI4LDAsMCwxLS4wOC45 LDIuMTgsMi4xOCwwLDAsMS0uOTIuMWgtMzhhMy4yNSwzLjI1LDAsMCwxLS45LS4wOGgwYTIuMTcs Mi4xNywwLDAsMS0uMS0uOTJWMjBoNDBtMS0xaC00MlY1MmMwLDEuNjUuMzUsMiwyLDJoMzhjMS42 NSwwLDItLjM1LDItMlYxOVoiLz48ZyBjbGFzcz0iY2xzLTMiPjxsaW5lIGNsYXNzPSJjbHMtNCIg eDE9IjE5LjQ4IiB5MT0iNTIuOTciIHgyPSIxOS40OCIgeTI9IjE5Ljk3Ii8+PGxpbmUgY2xhc3M9 ImNscy00IiB4MT0iMzUuODgiIHkxPSI1Mi45NyIgeDI9IjM1Ljg4IiB5Mj0iMTkuOTciLz48bGlu ZSBjbGFzcz0iY2xzLTQiIHgxPSIyNy42OCIgeTE9IjUyLjk3IiB4Mj0iMjcuNjgiIHkyPSIxOS45 NyIvPjxsaW5lIGNsYXNzPSJjbHMtNCIgeDE9IjQ0LjA4IiB5MT0iNTIuOTciIHgyPSI0NC4wOCIg eTI9IjE5Ljk3Ii8+PGxpbmUgY2xhc3M9ImNscy00IiB4MT0iMTEuNzgiIHkxPSIyNy45NyIgeDI9 IjUxLjc1IiB5Mj0iMjcuOTciLz48bGluZSBjbGFzcz0iY2xzLTQiIHgxPSIxMS43OCIgeTE9IjM2 LjM0IiB4Mj0iNTEuNzUiIHkyPSIzNi4zNCIvPjxsaW5lIGNsYXNzPSJjbHMtNCIgeDE9IjExLjc4 IiB5MT0iNDQuNzEiIHgyPSI1MS43NSIgeTI9IjQ0LjcxIi8+PC9nPjxwYXRoIGNsYXNzPSJjbHMt NSIgZD0iTTQ0LjA5LDE5LjUzdi05aDYuNjljMS4zNywwLDEuNS4xMywxLjUsMS41djcuNVoiLz48 cGF0aCBjbGFzcz0iY2xzLTYiIGQ9Ik01MC43OCwxMWEzLjI1LDMuMjUsMCwwLDEsLjkuMDhoMGEy LjE4LDIuMTgsMCwwLDEsLjEuOTJ2N0g0NC41OVYxMWg2LjE5bTAtMUg0My41OVYyMGg5LjE5VjEy YzAtMS42NS0uMzUtMi0yLTJaIi8+PHBhdGggY2xhc3M9ImNscy01IiBkPSJNMTEuMjksMTkuNTNW MTJjMC0xLjM3LjEzLTEuNSwxLjUtMS41aDYuNjl2OVoiLz48cGF0aCBjbGFzcz0iY2xzLTYiIGQ9 Ik0xOSwxMXY4SDExLjc5VjEyYTMuMjgsMy4yOCwwLDAsMSwuMDgtLjksMi4xOCwyLjE4LDAsMCwx LC45Mi0uMUgxOW0xLTFIMTIuNzljLTEuNjUsMC0yLC4zNS0yLDJ2OEgyMFYxMFoiLz48cmVjdCBj bGFzcz0iY2xzLTUiIHg9IjM1Ljg4IiB5PSIxMC41MyIgd2lkdGg9IjguMTgiIGhlaWdodD0iOSIv PjxwYXRoIGNsYXNzPSJjbHMtNiIgZD0iTTQzLjU3LDExdjhIMzYuMzhWMTFoNy4xOG0xLTFIMzUu MzlWMjBoOS4xOVYxMFoiLz48cmVjdCBjbGFzcz0iY2xzLTUiIHg9IjI3LjY5IiB5PSIxMC41MyIg d2lkdGg9IjguMTkiIGhlaWdodD0iOSIvPjxwYXRoIGNsYXNzPSJjbHMtNiIgZD0iTTM1LjM4LDEx djhIMjguMTlWMTFoNy4xOG0xLTFIMjcuMlYyMGg5LjE5VjEwWiIvPjxyZWN0IGNsYXNzPSJjbHMt NSIgeD0iMTkuNSIgeT0iMTAuNTMiIHdpZHRoPSI4LjE3IiBoZWlnaHQ9IjkiLz48cGF0aCBjbGFz cz0iY2xzLTYiIGQ9Ik0yNy4xOCwxMXY4SDIwVjExaDcuMTdtMS0xSDE5VjIwaDkuMThWMTBaIi8+ PGxpbmUgY2xhc3M9ImNscy03IiB4MT0iNi4zMSIgeTE9IjE5Ljc2IiB4Mj0iNTcuNzciIHkyPSIx OS43NyIvPjxsaW5lIGNsYXNzPSJjbHMtNyIgeDE9IjYuMzEiIHkxPSIzNi4zMyIgeDI9IjU3Ljc3 IiB5Mj0iMzYuMzQiLz48cG9seWdvbiBjbGFzcz0iY2xzLTgiIHBvaW50cz0iNTYuMjUgMzQuNzEg NTguNzggMzEuMzMgNTMuNzIgMzEuMzMgNTYuMjUgMzQuNzEiLz48bGluZSBjbGFzcz0iY2xzLTki IHgxPSI1Ni4yNSIgeTE9IjMyLjE4IiB4Mj0iNTYuMjUiIHkyPSIyMS45NCIvPjxwb2x5Z29uIGNs YXNzPSJjbHMtOCIgcG9pbnRzPSI3Ljc1IDM0LjcxIDEwLjI4IDMxLjMzIDUuMjIgMzEuMzMgNy43 NSAzNC43MSIvPjxsaW5lIGNsYXNzPSJjbHMtOSIgeDE9IjcuNzUiIHkxPSIzMi4xOCIgeDI9Ijcu NzUiIHkyPSIyMS45NCIvPjwvc3ZnPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAt LWdpdCBhL3dlYi9wZ2FkbWluL3N0YXRpYy9qcy9FeHBsYWluL2ltZy9leF9sb2NrX3Jvd3Muc3Zn IGIvd2ViL3BnYWRtaW4vc3RhdGljL2pzL0V4cGxhaW4vaW1nL2V4X2xvY2tfcm93cy5zdmcKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwLi4wMDFhYjVmODUKLS0tIC9kZXYvbnVs bAorKysgYi93ZWIvcGdhZG1pbi9zdGF0aWMvanMvRXhwbGFpbi9pbWcvZXhfbG9ja19yb3dzLnN2 ZwpAQCAtMCwwICsxIEBACis8c3ZnIGlkPSJfMSIgZGF0YS1uYW1lPSIxIiB4bWxucz0iaHR0cDov L3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5 L3hsaW5rIiB2aWV3Qm94PSIwIDAgNjQgNjQiPjxkZWZzPjxzdHlsZT4uY2xzLTEsLmNscy01e2Zp bGw6I2YwZWNiNjt9LmNscy0ye2ZpbGw6I2MxOGYzNjt9LmNscy0ze2ZpbGw6I2ZmYmQzMDt9LmNs cy00e29wYWNpdHk6MC44O30uY2xzLTV7c3Ryb2tlOiNjMThmMzY7c3Ryb2tlLW1pdGVybGltaXQ6 MTA7fS5jbHMtNntmaWxsOiNhZGRmZjM7fS5jbHMtN3tmaWxsOiMyOTgwYjk7fS5jbHMtOHtmaWxs OnVybCgjbGluZWFyLWdyYWRpZW50KTt9LmNscy05e2ZpbGw6Izc1NzI3Mjt9LmNscy0xMHtmaWxs OiNmYmYxYzM7fTwvc3R5bGU+PGxpbmVhckdyYWRpZW50IGlkPSJsaW5lYXItZ3JhZGllbnQiIHgx PSI1LjAzIiB5MT0iMjcuMjUiIHgyPSIxNC43MSIgeTI9IjM2LjkzIiBncmFkaWVudFVuaXRzPSJ1 c2VyU3BhY2VPblVzZSI+PHN0b3Agb2Zmc2V0PSIwIiBzdG9wLWNvbG9yPSIjY2ViYTU5Ii8+PHN0 b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjYjc2NDUxIi8+PC9saW5lYXJHcmFkaWVudD48L2Rl ZnM+PHRpdGxlPmV4X2xvY2tfcm93czwvdGl0bGU+PHBhdGggY2xhc3M9ImNscy0xIiBkPSJNMTku NzQsNTcuNDdjLTEuMzcsMC0xLjUtLjEzLTEuNS0xLjVWMTUuNTNoNDFWNTZjMCwxLjM3LS4xMywx LjUtMS41LDEuNVoiLz48cGF0aCBjbGFzcz0iY2xzLTIiIGQ9Ik01OC43MiwxNlY1NmEzLjI4LDMu MjgsMCwwLDEtLjA4LjksMi4xOCwyLjE4LDAsMCwxLS45Mi4xaC0zOGEzLjI1LDMuMjUsMCwwLDEt LjktLjA4aDBhMi4xOCwyLjE4LDAsMCwxLS4xLS45MlYxNmg0MG0xLTFoLTQyVjU2YzAsMS42NS4z NSwyLDIsMmgzOGMxLjY1LDAsMi0uMzUsMi0yVjE1WiIvPjxyZWN0IGNsYXNzPSJjbHMtMyIgeD0i MTguNzIiIHk9IjI0LjU2IiB3aWR0aD0iNy4yMiIgaGVpZ2h0PSI3LjQ0Ii8+PHJlY3QgY2xhc3M9 ImNscy0zIiB4PSIzNS4xMyIgeT0iNDEuMTEiIHdpZHRoPSI3LjIyIiBoZWlnaHQ9IjcuNDQiLz48 cmVjdCBjbGFzcz0iY2xzLTMiIHg9IjI2LjkyIiB5PSI0MS4xMSIgd2lkdGg9IjcuMjIiIGhlaWdo dD0iNy40NCIvPjxnIGNsYXNzPSJjbHMtNCI+PGxpbmUgY2xhc3M9ImNscy01IiB4MT0iMjYuNDMi IHkxPSI1Ni45NyIgeDI9IjI2LjQzIiB5Mj0iMTUuOTciLz48bGluZSBjbGFzcz0iY2xzLTUiIHgx PSI0Mi44MyIgeTE9IjU2Ljk3IiB4Mj0iNDIuODMiIHkyPSIxNS45NyIvPjxsaW5lIGNsYXNzPSJj bHMtNSIgeDE9IjM0LjYzIiB5MT0iNTYuOTciIHgyPSIzNC42MyIgeTI9IjE1Ljk3Ii8+PGxpbmUg Y2xhc3M9ImNscy01IiB4MT0iNTEuMDMiIHkxPSI1Ni45NyIgeDI9IjUxLjAzIiB5Mj0iMTUuOTci Lz48bGluZSBjbGFzcz0iY2xzLTUiIHgxPSIxOC43MyIgeTE9IjIzLjk3IiB4Mj0iNTguNyIgeTI9 IjIzLjk3Ii8+PGxpbmUgY2xhc3M9ImNscy01IiB4MT0iMTguNzMiIHkxPSIzMi4zNCIgeDI9IjU4 LjciIHkyPSIzMi4zNCIvPjxsaW5lIGNsYXNzPSJjbHMtNSIgeDE9IjE4LjczIiB5MT0iNDAuNzEi IHgyPSI1OC43IiB5Mj0iNDAuNzEiLz48bGluZSBjbGFzcz0iY2xzLTUiIHgxPSIxOC43MyIgeTE9 IjQ5LjA4IiB4Mj0iNTguNyIgeTI9IjQ5LjA4Ii8+PC9nPjxwYXRoIGNsYXNzPSJjbHMtNiIgZD0i TTUxLDE1LjUzdi05aDYuNjljMS4zNywwLDEuNS4xMywxLjUsMS41djcuNVoiLz48cGF0aCBjbGFz cz0iY2xzLTciIGQ9Ik01Ny43Myw3YTMuMjUsMy4yNSwwLDAsMSwuOS4wOGgwYTIuMTgsMi4xOCww LDAsMSwuMS45MnY3SDUxLjU0VjdoNi4xOW0wLTFINTAuNTRWMTZoOS4xOVY4YzAtMS42NS0uMzUt Mi0yLTJaIi8+PHBhdGggY2xhc3M9ImNscy02IiBkPSJNMTguMjQsMTUuNTNWOGMwLTEuMzcuMTMt MS41LDEuNS0xLjVoNi42OXY5WiIvPjxwYXRoIGNsYXNzPSJjbHMtNyIgZD0iTTI1LjkzLDd2OEgx OC43NFY4YTMuMjgsMy4yOCwwLDAsMSwuMDgtLjksMi4xOCwyLjE4LDAsMCwxLC45Mi0uMWg2LjE5 bTEtMUgxOS43NGMtMS42NSwwLTIsLjM1LTIsMnY4aDkuMTlWNloiLz48cmVjdCBjbGFzcz0iY2xz LTYiIHg9IjQyLjgzIiB5PSI2LjUzIiB3aWR0aD0iOC4xOSIgaGVpZ2h0PSI5Ii8+PHBhdGggY2xh c3M9ImNscy03IiBkPSJNNTAuNTIsN3Y4SDQzLjMzVjdoNy4xOG0xLTFINDIuMzRWMTZoOS4xOVY2 WiIvPjxyZWN0IGNsYXNzPSJjbHMtNiIgeD0iMzQuNjQiIHk9IjYuNTMiIHdpZHRoPSI4LjE5IiBo ZWlnaHQ9IjkiLz48cGF0aCBjbGFzcz0iY2xzLTciIGQ9Ik00Mi4zMyw3djhIMzUuMTRWN2g3LjE4 bTEtMUgzNC4xNVYxNmg5LjE5VjZaIi8+PHJlY3QgY2xhc3M9ImNscy02IiB4PSIyNi40NSIgeT0i Ni41MyIgd2lkdGg9IjguMTciIGhlaWdodD0iOSIvPjxwYXRoIGNsYXNzPSJjbHMtNyIgZD0iTTM0 LjEzLDd2OEgyNi45NVY3aDcuMTdtMS0xSDI2VjE2aDkuMThWNloiLz48cGF0aCBpZD0iU2hhcGUi IGNsYXNzPSJjbHMtOCIgZD0iTTE0LjA3LDI3LjE5SDUuNjdhMS40LDEuNCwwLDAsMC0xLjQsMS40 djdBMS40LDEuNCwwLDAsMCw1LjY3LDM3aDguNGExLjQsMS40LDAsMCwwLDEuNC0xLjR2LTdhMS40 LDEuNCwwLDAsMC0xLjQtMS40Wm0wLDguNEg1LjY3di03aDguNFoiLz48cGF0aCBpZD0iU2hhcGUt MiIgZGF0YS1uYW1lPSJTaGFwZSIgY2xhc3M9ImNscy05IiBkPSJNMTMuMzcsMjcuMTl2LTEuNGEz LjUsMy41LDAsMCwwLTcsMHMwLDEuNDIsMCwxLjQySDcuN3MwLTEuNDEsMC0xLjQyYTIuMTcsMi4x NywwLDAsMSw0LjM0LDB2MS40WiIvPjxyZWN0IGNsYXNzPSJjbHMtMTAiIHg9IjUuNjciIHk9IjI4 LjU5IiB3aWR0aD0iOC40IiBoZWlnaHQ9IjciLz48L3N2Zz4KXCBObyBuZXdsaW5lIGF0IGVuZCBv ZiBmaWxlCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9zdGF0aWMvanMvRXhwbGFpbi9pbWcvZXhf bWF0ZXJpYWxpemUuc3ZnIGIvd2ViL3BnYWRtaW4vc3RhdGljL2pzL0V4cGxhaW4vaW1nL2V4X21h dGVyaWFsaXplLnN2ZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAuLmIwYjg3 NDU3YQotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL3N0YXRpYy9qcy9FeHBsYWluL2lt Zy9leF9tYXRlcmlhbGl6ZS5zdmcKQEAgLTAsMCArMSBAQAorPHN2ZyBpZD0iXzEiIGRhdGEtbmFt ZT0iMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgNjQg NjQiPjxkZWZzPjxzdHlsZT4uY2xzLTF7b3BhY2l0eTowLjY7fS5jbHMtMntmaWxsOiNmMGVjYjY7 fS5jbHMtM3tmaWxsOiNjMThmMzU7fS5jbHMtNHtmaWxsOiNhZGRmZjM7fS5jbHMtNXtmaWxsOiMy OTgwYjk7fS5jbHMtNntmaWxsOm5vbmU7c3Ryb2tlOiNjMThmMzU7b3BhY2l0eTowLjg7fS5jbHMt NiwuY2xzLTcsLmNscy04e3N0cm9rZS1saW5lam9pbjpyb3VuZDt9LmNscy03LC5jbHMtOHtmaWxs OiM1MjhkMTk7c3Ryb2tlOiM1MjhkMTk7fS5jbHMtOHtzdHJva2UtbGluZWNhcDpyb3VuZDtzdHJv a2Utd2lkdGg6MnB4O308L3N0eWxlPjwvZGVmcz48dGl0bGU+ZXhfbWF0ZXJpYWxpemU8L3RpdGxl PjxnIGNsYXNzPSJjbHMtMSI+PHBhdGggY2xhc3M9ImNscy0yIiBkPSJNMTAuMTcsNDkuODhjLTEu MzcsMC0xLjUtLjEzLTEuNS0xLjVWMTkuODhIMTZ2MzBaIi8+PHBhdGggY2xhc3M9ImNscy0zIiBk PSJNMTUuNDUsMjAuMzh2MjlIMTAuMTdhMy4yNSwzLjI1LDAsMCwxLS45LS4wOGgwYTIuMTgsMi4x OCwwLDAsMS0uMS0uOTJ2LTI4aDYuMjhtMS0xSDguMTd2MjljMCwxLjY1LjM1LDIsMiwyaDYuMjh2 LTMxWiIvPjxwYXRoIGNsYXNzPSJjbHMtMiIgZD0iTTE1Ljk0LDQ5Ljg4di0zMGg3LjI4djI4LjVj MCwxLjM3LS4xMywxLjUtMS41LDEuNVoiLz48cGF0aCBjbGFzcz0iY2xzLTMiIGQ9Ik0yMi43Miwy MC4zOHYyOGEzLjI4LDMuMjgsMCwwLDEtLjA4LjksMi4xOCwyLjE4LDAsMCwxLS45Mi4xSDE2LjQ0 di0yOWg2LjI4bTEtMUgxNS40NHYzMWg2LjI4YzEuNjUsMCwyLS4zNSwyLTJ2LTI5WiIvPjxwYXRo IGNsYXNzPSJjbHMtNCIgZD0iTTguNjcsMTkuODh2LTQuNWMwLTEuMzcuMTMtMS41LDEuNS0xLjVI MTZ2NloiLz48cGF0aCBjbGFzcz0iY2xzLTUiIGQ9Ik0xNS40NSwxNC4zOHY1SDkuMTd2LTRhMy4y OCwzLjI4LDAsMCwxLC4wOC0uOSwyLjE4LDIuMTgsMCwwLDEsLjkyLS4xaDUuMjhtMS0xSDEwLjE3 Yy0xLjY1LDAtMiwuMzUtMiwydjVoOC4yOHYtN1oiLz48cGF0aCBjbGFzcz0iY2xzLTQiIGQ9Ik0x NS45NCwxOS44OHYtNmg1Ljc4YzEuMzcsMCwxLjUuMTMsMS41LDEuNXY0LjVaIi8+PHBhdGggY2xh c3M9ImNscy01IiBkPSJNMjEuNzIsMTQuMzhhMy4yNSwzLjI1LDAsMCwxLC45LjA4aDBhMi4xOCwy LjE4LDAsMCwxLC4xLjkydjRIMTYuNDR2LTVoNS4yOG0wLTFIMTUuNDR2N2g4LjI4di01YzAtMS42 NS0uMzUtMi0yLTJaIi8+PGxpbmUgY2xhc3M9ImNscy02IiB4MT0iMTUuNyIgeTE9IjI2LjIzIiB4 Mj0iMjMuMTkiIHkyPSIyNi4yMyIvPjxsaW5lIGNsYXNzPSJjbHMtNiIgeDE9IjguNyIgeTE9IjI2 LjIzIiB4Mj0iMTUuNDQiIHkyPSIyNi4yMyIvPjxsaW5lIGNsYXNzPSJjbHMtNiIgeDE9IjE1Ljci IHkxPSIzMi4yMyIgeDI9IjIzLjE5IiB5Mj0iMzIuMjMiLz48bGluZSBjbGFzcz0iY2xzLTYiIHgx PSI4LjciIHkxPSIzMi4yMyIgeDI9IjE1LjQ0IiB5Mj0iMzIuMjMiLz48bGluZSBjbGFzcz0iY2xz LTYiIHgxPSIxNS43IiB5MT0iMzguMjMiIHgyPSIyMy4xOSIgeTI9IjM4LjIzIi8+PGxpbmUgY2xh c3M9ImNscy02IiB4MT0iOC43IiB5MT0iMzguMjMiIHgyPSIxNS40NCIgeTI9IjM4LjIzIi8+PGxp bmUgY2xhc3M9ImNscy02IiB4MT0iMTUuNyIgeTE9IjQ0LjIzIiB4Mj0iMjMuMTkiIHkyPSI0NC4y MyIvPjxsaW5lIGNsYXNzPSJjbHMtNiIgeDE9IjguNyIgeTE9IjQ0LjIzIiB4Mj0iMTUuNDQiIHky PSI0NC4yMyIvPjwvZz48cGF0aCBjbGFzcz0iY2xzLTIiIGQ9Ik00Mi40NSw0OS44OGMtMS4zNyww LTEuNS0uMTMtMS41LTEuNVYxOS44OGg3LjI4djMwWiIvPjxwYXRoIGNsYXNzPSJjbHMtMyIgZD0i TTQ3LjczLDIwLjM4djI5SDQyLjQ1YTMuMjUsMy4yNSwwLDAsMS0uOS0uMDhoMGEyLjE4LDIuMTgs MCwwLDEtLjEtLjkydi0yOGg2LjI4bTEtMUg0MC40NXYyOWMwLDEuNjUuMzUsMiwyLDJoNi4yOHYt MzFaIi8+PHBhdGggY2xhc3M9ImNscy0yIiBkPSJNNDguMjIsNDkuODh2LTMwSDU1LjV2MjguNWMw LDEuMzctLjEzLDEuNS0xLjUsMS41WiIvPjxwYXRoIGNsYXNzPSJjbHMtMyIgZD0iTTU1LDIwLjM4 djI4YTMuMjgsMy4yOCwwLDAsMS0uMDguOSwyLjE4LDIuMTgsMCwwLDEtLjkyLjFINDguNzJ2LTI5 SDU1bTEtMUg0Ny43MnYzMUg1NGMxLjY1LDAsMi0uMzUsMi0ydi0yOVoiLz48cGF0aCBjbGFzcz0i Y2xzLTQiIGQ9Ik00MSwxOS44OHYtNC41YzAtMS4zNy4xMy0xLjUsMS41LTEuNWg1Ljc4djZaIi8+ PHBhdGggY2xhc3M9ImNscy01IiBkPSJNNDcuNzMsMTQuMzh2NUg0MS40NXYtNGEzLjI4LDMuMjgs MCwwLDEsLjA4LS45LDIuMTgsMi4xOCwwLDAsMSwuOTItLjFoNS4yOG0xLTFINDIuNDVjLTEuNjUs MC0yLC4zNS0yLDJ2NWg4LjI4di03WiIvPjxwYXRoIGNsYXNzPSJjbHMtNCIgZD0iTTQ4LjIyLDE5 Ljg4di02SDU0YzEuMzcsMCwxLjUuMTMsMS41LDEuNXY0LjVaIi8+PHBhdGggY2xhc3M9ImNscy01 IiBkPSJNNTQsMTQuMzhhMy4yNSwzLjI1LDAsMCwxLC45LjA4aDBhMi4xOCwyLjE4LDAsMCwxLC4x LjkydjRINDguNzJ2LTVINTRtMC0xSDQ3LjcydjdINTZ2LTVjMC0xLjY1LS4zNS0yLTItMloiLz48 bGluZSBjbGFzcz0iY2xzLTYiIHgxPSI0Ny45OCIgeTE9IjI2LjIzIiB4Mj0iNTUuNDciIHkyPSIy Ni4yMyIvPjxsaW5lIGNsYXNzPSJjbHMtNiIgeDE9IjQwLjk4IiB5MT0iMjYuMjMiIHgyPSI0Ny43 MiIgeTI9IjI2LjIzIi8+PGxpbmUgY2xhc3M9ImNscy02IiB4MT0iNDcuOTgiIHkxPSIzMi4yMyIg eDI9IjU1LjQ3IiB5Mj0iMzIuMjMiLz48bGluZSBjbGFzcz0iY2xzLTYiIHgxPSI0MC45OCIgeTE9 IjMyLjIzIiB4Mj0iNDcuNzIiIHkyPSIzMi4yMyIvPjxsaW5lIGNsYXNzPSJjbHMtNiIgeDE9IjQ3 Ljk4IiB5MT0iMzguMjMiIHgyPSI1NS40NyIgeTI9IjM4LjIzIi8+PGxpbmUgY2xhc3M9ImNscy02 IiB4MT0iNDAuOTgiIHkxPSIzOC4yMyIgeDI9IjQ3LjcyIiB5Mj0iMzguMjMiLz48bGluZSBjbGFz cz0iY2xzLTYiIHgxPSI0Ny45OCIgeTE9IjQ0LjIzIiB4Mj0iNTUuNDciIHkyPSI0NC4yMyIvPjxs aW5lIGNsYXNzPSJjbHMtNiIgeDE9IjQwLjk4IiB5MT0iNDQuMjMiIHgyPSI0Ny43MiIgeTI9IjQ0 LjIzIi8+PHBvbHlnb24gY2xhc3M9ImNscy03IiBwb2ludHM9IjM3LjU1IDMyIDM0LjE3IDI5LjQ3 IDM0LjE3IDM0LjUzIDM3LjU1IDMyIi8+PGxpbmUgY2xhc3M9ImNscy04IiB4MT0iMzMuODkiIHkx PSIzMiIgeDI9IjI2LjQ1IiB5Mj0iMzIiLz48L3N2Zz4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBm aWxlCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9zdGF0aWMvanMvRXhwbGFpbi9pbWcvZXhfbWVy Z2Uuc3ZnIGIvd2ViL3BnYWRtaW4vc3RhdGljL2pzL0V4cGxhaW4vaW1nL2V4X21lcmdlLnN2Zwpu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAuLjVmNDQ4NjkzYgotLS0gL2Rldi9u dWxsCisrKyBiL3dlYi9wZ2FkbWluL3N0YXRpYy9qcy9FeHBsYWluL2ltZy9leF9tZXJnZS5zdmcK QEAgLTAsMCArMSBAQAorPHN2ZyBpZD0iXzEiIGRhdGEtbmFtZT0iMSIgeG1sbnM9Imh0dHA6Ly93 d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgNjQgNjQiPjxkZWZzPjxzdHlsZT4uY2xz LTF7ZmlsbDojZDNkNGYzO30uY2xzLTJ7ZmlsbDojNjY2YmQxO30uY2xzLTN7ZmlsbDpub25lO3N0 cm9rZTojNjY2YmQxO30uY2xzLTEwLC5jbHMtMTEsLmNscy0ze3N0cm9rZS1saW5lam9pbjpyb3Vu ZDt9LmNscy0zLC5jbHMtNntvcGFjaXR5OjAuODt9LmNscy00LC5jbHMtN3tmaWxsOiNmMGVjYjY7 fS5jbHMtNXtmaWxsOiNjMThmMzY7fS5jbHMtN3tzdHJva2U6I2MxOGYzNjtzdHJva2UtbWl0ZXJs aW1pdDoxMDt9LmNscy04e2ZpbGw6I2FkZGZmMzt9LmNscy05e2ZpbGw6IzI5ODBiOTt9LmNscy0x MCwuY2xzLTExe2ZpbGw6IzUyOGQxOTtzdHJva2U6IzUyOGQxOTt9LmNscy0xMXtzdHJva2UtbGlu ZWNhcDpyb3VuZDtzdHJva2Utd2lkdGg6MnB4O308L3N0eWxlPjwvZGVmcz48dGl0bGU+ZXhfbWVy Z2U8L3RpdGxlPjxwYXRoIGNsYXNzPSJjbHMtMSIgZD0iTTkuNSwxNy40OEM4LjEzLDE3LjQ4LDgs MTcuMzYsOCwxNlYxMmMwLTEuMzcuMTMtMS41LDEuNS0xLjVIMTR2N1oiLz48cGF0aCBjbGFzcz0i Y2xzLTIiIGQ9Ik0xMy41LDExdjZoLTRhMy4yNSwzLjI1LDAsMCwxLS45LS4wOGgwQTIuMTgsMi4x OCwwLDAsMSw4LjUsMTZWMTJhMy4yOCwzLjI4LDAsMCwxLC4wOC0uOUEyLjE4LDIuMTgsMCwwLDEs OS41LDExaDRtMS0xaC01Yy0xLjY1LDAtMiwuMzUtMiwydjRjMCwxLjY1LjM1LDIsMiwyaDVWMTBa Ii8+PHBhdGggY2xhc3M9ImNscy0xIiBkPSJNMTQsMTcuNDh2LTdIMjUuMTljMS4zNywwLDEuNS4x MywxLjUsMS41djRjMCwxLjM3LS4xMywxLjUtMS41LDEuNVoiLz48cGF0aCBjbGFzcz0iY2xzLTIi IGQ9Ik0yNS4xOSwxMWEzLjI1LDMuMjUsMCwwLDEsLjkuMDhoMGEyLjE4LDIuMTgsMCwwLDEsLjEu OTJ2NGEzLjI4LDMuMjgsMCwwLDEtLjA4LjksMi4xOCwyLjE4LDAsMCwxLS45Mi4xSDE0LjVWMTFI MjUuMTltMC0xSDEzLjV2OEgyNS4xOWMxLjY1LDAsMi0uMzUsMi0yVjEyYzAtMS42NS0uMzUtMi0y LTJaIi8+PGxpbmUgY2xhc3M9ImNscy0zIiB4MT0iMjAuMjciIHkxPSIxNy4xIiB4Mj0iMjAuMjci IHkyPSIxMC44NiIvPjxwYXRoIGNsYXNzPSJjbHMtNCIgZD0iTTMyLjg5LDUzLjVjLTEuMzcsMC0x LjUtLjEzLTEuNS0xLjVWMjcuNTZINTZWNTJjMCwxLjM3LS4xMywxLjUtMS41LDEuNVoiLz48cGF0 aCBjbGFzcz0iY2xzLTUiIGQ9Ik01NS40OSwyOC4wNlY1MmEzLjI5LDMuMjksMCwwLDEtLjA4Ljks Mi4xOCwyLjE4LDAsMCwxLS45Mi4xSDMyLjg5YTMuMjUsMy4yNSwwLDAsMS0uOS0uMDhoMGEyLjE4 LDIuMTgsMCwwLDEtLjEtLjkyVjI4LjA2aDIzLjZtMS0xSDMwLjg5VjUyYzAsMS42NS4zNSwyLDIs MmgyMS42YzEuNjUsMCwyLS4zNSwyLTJWMjcuMDZaIi8+PGcgY2xhc3M9ImNscy02Ij48bGluZSBj bGFzcz0iY2xzLTciIHgxPSIzOS41OCIgeTE9IjUyLjk5IiB4Mj0iMzkuNTgiIHkyPSIyOCIvPjxs aW5lIGNsYXNzPSJjbHMtNyIgeDE9IjQ3LjgiIHkxPSI1Mi45OSIgeDI9IjQ3LjgiIHkyPSIyOCIv PjxsaW5lIGNsYXNzPSJjbHMtNyIgeDE9IjMxLjg4IiB5MT0iMzMuOTkiIHgyPSI1NS40NyIgeTI9 IjMzLjk5Ii8+PGxpbmUgY2xhc3M9ImNscy03IiB4MT0iMzEuODgiIHkxPSI0MC4zNiIgeDI9IjU1 LjQ3IiB5Mj0iNDAuMzYiLz48bGluZSBjbGFzcz0iY2xzLTciIHgxPSIzMS44OCIgeTE9IjQ2Ljcz IiB4Mj0iNTUuNDciIHkyPSI0Ni43MyIvPjwvZz48cGF0aCBjbGFzcz0iY2xzLTgiIGQ9Ik00Ny44 MSwyNy41NXYtNkg1NC41YzEuMzcsMCwxLjUuMTMsMS41LDEuNXY0LjVaIi8+PHBhdGggY2xhc3M9 ImNscy05IiBkPSJNNTQuNSwyMi4wNWEzLjI1LDMuMjUsMCwwLDEsLjkuMDhoMGEyLjE4LDIuMTgs MCwwLDEsLjEuOTJ2NEg0OC4zMXYtNUg1NC41bTAtMUg0Ny4zMXY3SDU2LjV2LTVjMC0xLjY1LS4z NS0yLTItMloiLz48cGF0aCBjbGFzcz0iY2xzLTgiIGQ9Ik0zMS4zOSwyNy41NXYtNC41YzAtMS4z Ny4xMy0xLjUsMS41LTEuNWg2LjY5djZaIi8+PHBhdGggY2xhc3M9ImNscy05IiBkPSJNMzkuMDgs MjIuMDV2NUgzMS44OXYtNGEzLjI4LDMuMjgsMCwwLDEsLjA4LS45LDIuMTgsMi4xOCwwLDAsMSwu OTItLjFoNi4xOW0xLTFIMzIuODljLTEuNjUsMC0yLC4zNS0yLDJ2NWg5LjE5di03WiIvPjxyZWN0 IGNsYXNzPSJjbHMtOCIgeD0iMzkuNiIgeT0iMjEuNTUiIHdpZHRoPSI4LjE5IiBoZWlnaHQ9IjYi Lz48cGF0aCBjbGFzcz0iY2xzLTkiIGQ9Ik00Ny4yOSwyMi4wNXY1SDQwLjF2LTVoNy4xOG0xLTFI MzkuMTF2N2g5LjE5di03WiIvPjxwb2x5Z29uIGNsYXNzPSJjbHMtMTAiIHBvaW50cz0iMjcuODcg NDQgMjQuNDkgNDEuNDcgMjQuNDkgNDYuNTMgMjcuODcgNDQiLz48bGluZSBjbGFzcz0iY2xzLTEx IiB4MT0iMjQuMjEiIHkxPSI0NCIgeDI9IjE3LjEiIHkyPSI0NCIvPjxsaW5lIGNsYXNzPSJjbHMt MTEiIHgxPSIxNi45NiIgeTE9IjIxLjU2IiB4Mj0iMTYuOTYiIHkyPSI0NCIvPjwvc3ZnPgpcIE5v IG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL3N0YXRpYy9q cy9FeHBsYWluL2ltZy9leF9tZXJnZV9hbnRpX2pvaW4uc3ZnIGIvd2ViL3BnYWRtaW4vc3RhdGlj L2pzL0V4cGxhaW4vaW1nL2V4X21lcmdlX2FudGlfam9pbi5zdmcKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMDAwLi4yZTdhMDBkNjUKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdh ZG1pbi9zdGF0aWMvanMvRXhwbGFpbi9pbWcvZXhfbWVyZ2VfYW50aV9qb2luLnN2ZwpAQCAtMCww ICsxIEBACis8c3ZnIGlkPSJfMSIgZGF0YS1uYW1lPSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5v cmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2NCA2NCI+PGRlZnM+PHN0eWxlPi5jbHMtMXtmaWxs OiNkM2Q0ZjM7fS5jbHMtMntmaWxsOiM2NjZiZDE7fS5jbHMtMTAsLmNscy0xMywuY2xzLTN7Zmls bDpub25lO30uY2xzLTN7c3Ryb2tlOiM2NjZiZDE7fS5jbHMtMTAsLmNscy0zLC5jbHMtNCwuY2xz LTV7c3Ryb2tlLWxpbmVqb2luOnJvdW5kO30uY2xzLTEwLC5jbHMtM3tvcGFjaXR5OjAuODt9LmNs cy00LC5jbHMtNXtmaWxsOiM1MjhkMTk7c3Ryb2tlOiM1MjhkMTk7fS5jbHMtNXtzdHJva2UtbGlu ZWNhcDpyb3VuZDtzdHJva2Utd2lkdGg6MnB4O30uY2xzLTZ7ZmlsbDojZjBlY2I2O30uY2xzLTd7 ZmlsbDojYzE4ZjM1O30uY2xzLTh7ZmlsbDojYWRkZmYzO30uY2xzLTl7ZmlsbDojMjk4MGI5O30u Y2xzLTEwe3N0cm9rZTojYzE4ZjM1O30uY2xzLTExe2ZpbGw6I2RlZjRmZDt9LmNscy0xMntmaWxs OiNjMDA7fS5jbHMtMTN7c3Ryb2tlOiNjMDA7c3Ryb2tlLW1pdGVybGltaXQ6MTA7c3Ryb2tlLXdp ZHRoOjEuNXB4O308L3N0eWxlPjwvZGVmcz48dGl0bGU+ZXhfbWVyZ2VfYW50aV9qb2luPC90aXRs ZT48cGF0aCBjbGFzcz0iY2xzLTEiIGQ9Ik0xMC4xMiwxOC41OWMtMS4zNywwLTEuNS0uMTMtMS41 LTEuNXYtNGMwLTEuMzcuMTMtMS41LDEuNS0xLjVoNC41djdaIi8+PHBhdGggY2xhc3M9ImNscy0y IiBkPSJNMTQuMTIsMTIuMTF2NmgtNGEzLjI1LDMuMjUsMCwwLDEtLjktLjA4aDBhMi4xNywyLjE3 LDAsMCwxLS4xLS45MnYtNGEzLjI5LDMuMjksMCwwLDEsLjA4LS45LDIuMTgsMi4xOCwwLDAsMSwu OTItLjFoNG0xLTFoLTVjLTEuNjUsMC0yLC4zNS0yLDJ2NGMwLDEuNjUuMzUsMiwyLDJoNXYtOFoi Lz48cGF0aCBjbGFzcz0iY2xzLTEiIGQ9Ik0xNC42MywxOC41OXYtN0gyNS44MWMxLjM3LDAsMS41 LjEzLDEuNSwxLjV2NGMwLDEuMzctLjEzLDEuNS0xLjUsMS41WiIvPjxwYXRoIGNsYXNzPSJjbHMt MiIgZD0iTTI1LjgxLDEyLjExYTMuMjUsMy4yNSwwLDAsMSwuOS4wOGgwYTIuMTgsMi4xOCwwLDAs MSwuMS45MnY0YTMuMjgsMy4yOCwwLDAsMS0uMDguOSwyLjE4LDIuMTgsMCwwLDEtLjkyLjFIMTUu MTN2LTZIMjUuODFtMC0xSDE0LjEzdjhIMjUuODFjMS42NSwwLDItLjM1LDItMnYtNGMwLTEuNjUt LjM1LTItMi0yWiIvPjxsaW5lIGNsYXNzPSJjbHMtMyIgeDE9IjIwLjkiIHkxPSIxOC4yMSIgeDI9 IjIwLjkiIHkyPSIxMS45NyIvPjxwb2x5Z29uIGNsYXNzPSJjbHMtNCIgcG9pbnRzPSIyOC40OSAz OC4xMSAyNS4xMSAzNS41OCAyNS4xMSA0MC42NCAyOC40OSAzOC4xMSIvPjxsaW5lIGNsYXNzPSJj bHMtNSIgeDE9IjI0LjgzIiB5MT0iMzguMTEiIHgyPSIxNy43MyIgeTI9IjM4LjExIi8+PGxpbmUg Y2xhc3M9ImNscy01IiB4MT0iMTcuNTgiIHkxPSIyMi42NyIgeDI9IjE3LjU4IiB5Mj0iMzguMTEi Lz48cGF0aCBjbGFzcz0iY2xzLTYiIGQ9Ik0zNC4yNiw1Mi4xNmMtMS4zNywwLTEuNS0uMTMtMS41 LTEuNVYyOC4xNkg0MHYyNFoiLz48cGF0aCBjbGFzcz0iY2xzLTciIGQ9Ik0zOS41NCwyOC42NnYy M0gzNC4yNmEzLjI1LDMuMjUsMCwwLDEtLjktLjA4aDBhMi4xOCwyLjE4LDAsMCwxLS4xLS45MnYt MjJoNi4yOG0xLTFIMzIuMjZ2MjNjMCwxLjY1LjM1LDIsMiwyaDYuMjh2LTI1WiIvPjxwYXRoIGNs YXNzPSJjbHMtOCIgZD0iTTMyLjc2LDI4LjE2di00LjVjMC0xLjM3LjEzLTEuNSwxLjUtMS41SDQw djZaIi8+PHBhdGggY2xhc3M9ImNscy05IiBkPSJNMzkuNTQsMjIuNjZ2NUgzMy4yNnYtNGEzLjI4 LDMuMjgsMCwwLDEsLjA4LS45LDIuMTgsMi4xOCwwLDAsMSwuOTItLjFoNS4yOG0xLTFIMzQuMjZj LTEuNjUsMC0yLC4zNS0yLDJ2NWg4LjI4di03WiIvPjxsaW5lIGNsYXNzPSJjbHMtMTAiIHgxPSIz Mi43OSIgeTE9IjM0LjUxIiB4Mj0iMzkuNTMiIHkyPSIzNC41MSIvPjxsaW5lIGNsYXNzPSJjbHMt MTAiIHgxPSIzMi43OSIgeTE9IjQwLjUxIiB4Mj0iMzkuNTMiIHkyPSI0MC41MSIvPjxsaW5lIGNs YXNzPSJjbHMtMTAiIHgxPSIzMi43OSIgeTE9IjQ2LjUxIiB4Mj0iMzkuNTMiIHkyPSI0Ni41MSIv PjxyZWN0IGNsYXNzPSJjbHMtNiIgeD0iNDAuMDYiIHk9IjI4LjE2IiB3aWR0aD0iNy4yOCIgaGVp Z2h0PSIyNCIvPjxwYXRoIGNsYXNzPSJjbHMtNyIgZD0iTTQ2Ljg0LDI4LjY2djIzSDQwLjU2di0y M2g2LjI4bTEtMUgzOS41NnYyNWg4LjI4di0yNVoiLz48cGF0aCBjbGFzcz0iY2xzLTEiIGQ9Ik00 Ny4zMiw1Mi4xNnYtMjRoNy4yOHYyMi41YzAsMS4zNy0uMTMsMS41LTEuNSwxLjVaIi8+PHBhdGgg Y2xhc3M9ImNscy0yIiBkPSJNNTQuMTEsMjguNjZ2MjJhMy4yOCwzLjI4LDAsMCwxLS4wOC45LDIu MTgsMi4xOCwwLDAsMS0uOTIuMUg0Ny44MnYtMjNoNi4yOG0xLTFINDYuODJ2MjVoNi4yOGMxLjY1 LDAsMi0uMzUsMi0ydi0yM1oiLz48cmVjdCBjbGFzcz0iY2xzLTgiIHg9IjQwLjA2IiB5PSIyMi4x NiIgd2lkdGg9IjcuMjgiIGhlaWdodD0iNiIvPjxwYXRoIGNsYXNzPSJjbHMtOSIgZD0iTTQ2Ljg0 LDIyLjY2djVINDAuNTZ2LTVoNi4yOG0xLTFIMzkuNTZ2N2g4LjI4di03WiIvPjxwYXRoIGNsYXNz PSJjbHMtOCIgZD0iTTQ3LjMyLDI4LjE2di02aDUuNzhjMS4zNywwLDEuNS4xMywxLjUsMS41djQu NVoiLz48cGF0aCBjbGFzcz0iY2xzLTkiIGQ9Ik01My4xMSwyMi42NmEzLjI1LDMuMjUsMCwwLDEs LjkuMDhoMGEyLjE3LDIuMTcsMCwwLDEsLjEuOTJ2NEg0Ny44MnYtNWg1LjI4bTAtMUg0Ni44M3Y3 aDguMjh2LTVjMC0xLjY1LS4zNS0yLTItMloiLz48bGluZSBjbGFzcz0iY2xzLTMiIHgxPSI0Ny4w OSIgeTE9IjM0LjUxIiB4Mj0iNTQuNTgiIHkyPSIzNC41MSIvPjxsaW5lIGNsYXNzPSJjbHMtMTAi IHgxPSI0MC4wOSIgeTE9IjM0LjUxIiB4Mj0iNDYuODIiIHkyPSIzNC41MSIvPjxsaW5lIGNsYXNz PSJjbHMtMyIgeDE9IjQ3LjA5IiB5MT0iNDAuNTEiIHgyPSI1NC41OCIgeTI9IjQwLjUxIi8+PGxp bmUgY2xhc3M9ImNscy0xMCIgeDE9IjQwLjA5IiB5MT0iNDAuNTEiIHgyPSI0Ni44MiIgeTI9IjQw LjUxIi8+PGxpbmUgY2xhc3M9ImNscy0zIiB4MT0iNDcuMDkiIHkxPSI0Ni41MSIgeDI9IjU0LjU4 IiB5Mj0iNDYuNTEiLz48bGluZSBjbGFzcz0iY2xzLTEwIiB4MT0iNDAuMDkiIHkxPSI0Ni41MSIg eDI9IjQ2LjgyIiB5Mj0iNDYuNTEiLz48Y2lyY2xlIGNsYXNzPSJjbHMtMTEiIGN4PSI1MC44MyIg Y3k9IjQwLjQ2IiByPSI0LjI5Ii8+PHBhdGggY2xhc3M9ImNscy0xMiIgZD0iTTUwLjgzLDM2Ljky YTMuNTQsMy41NCwwLDEsMS0zLjU0LDMuNTQsMy41NSwzLjU1LDAsMCwxLDMuNTQtMy41NG0wLTEu NWE1LDUsMCwxLDAsNSw1LDUsNSwwLDAsMC01LTVaIi8+PGxpbmUgY2xhc3M9ImNscy0xMyIgeDE9 IjQ3LjU1IiB5MT0iNDIuNzMiIHgyPSI1NC4wNiIgeTI9IjM4Ii8+PC9zdmc+ClwgTm8gbmV3bGlu ZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vc3RhdGljL2pzL0V4cGxh aW4vaW1nL2V4X21lcmdlX2FwcGVuZC5zdmcgYi93ZWIvcGdhZG1pbi9zdGF0aWMvanMvRXhwbGFp bi9pbWcvZXhfbWVyZ2VfYXBwZW5kLnN2ZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwMDAuLjU0MGY4YTk2OQotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL3N0YXRpYy9q cy9FeHBsYWluL2ltZy9leF9tZXJnZV9hcHBlbmQuc3ZnCkBAIC0wLDAgKzEgQEAKKzxzdmcgaWQ9 Il8xIiBkYXRhLW5hbWU9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmll d0JveD0iMCAwIDY0IDY0Ij48ZGVmcz48c3R5bGU+LmNscy0xLC5jbHMtN3tmaWxsOiMzNDQ5NWU7 fS5jbHMtMXtzdHJva2U6IzUyOGQxOTtzdHJva2UtbWl0ZXJsaW1pdDoxMDt9LmNscy0ye2ZpbGw6 I2YwZWNiNjt9LmNscy0ze2ZpbGw6I2MxOGYzNTt9LmNscy00e2ZpbGw6I2FkZGZmMzt9LmNscy01 e2ZpbGw6IzI5ODBiOTt9LmNscy0xMCwuY2xzLTZ7ZmlsbDpub25lO3N0cm9rZS1saW5lam9pbjpy b3VuZDtvcGFjaXR5OjAuODt9LmNscy02e3N0cm9rZTojYzE4ZjM1O30uY2xzLTh7ZmlsbDojZDNk NGYzO30uY2xzLTl7ZmlsbDojNjY2YmQxO30uY2xzLTEwe3N0cm9rZTojNjY2YmQxO308L3N0eWxl PjwvZGVmcz48dGl0bGU+ZXhfbWVyZ2VfYXBwZW5kPC90aXRsZT48cGF0aCBjbGFzcz0iY2xzLTEi IGQ9Ik0yOC4zMiw0MS4zNmE0LjQyLDQuNDIsMCwwLDAsMi4wNS0uNTEsMi44MSwyLjgxLDAsMCww LDEuMDYtMS4wOCwzLjU5LDMuNTksMCwwLDAsLjQtMS40cS4wNi0uNzUuMDYtMS40NnYuMzVjMC0u NjgsMC0xLjI1LDAtMS43MmE5LjI4LDkuMjgsMCwwLDEsLjExLTEuMiwyLjc2LDIuNzYsMCwwLDEs LjI2LS44MywyLjM3LDIuMzcsMCwwLDEsLjQ0LS42LDIuNTMsMi41MywwLDAsMSwuNjItLjQ2LDQs NCwwLDAsMSwuNjQtLjI3LDMuNSwzLjUsMCwwLDEsLjYtLjEzYy4xOSwwLC4xOS0uMSwwLS4xMmEz LjUyLDMuNTIsMCwwLDEtLjYtLjEzLDMuNjUsMy42NSwwLDAsMS0uNjQtLjI3LDIuNTIsMi41Miww LDAsMS0uNjItLjQ2LDIuNDEsMi40MSwwLDAsMS0uNDQtLjYsMi43NywyLjc3LDAsMCwxLS4yNi0u ODMsOS4zMSw5LjMxLDAsMCwxLS4xMS0xLjJxMC0uNzEsMC0xLjczdi4zNmMwLS40NywwLTEtLjA2 LTEuNDZhMy41OCwzLjU4LDAsMCwwLS40LTEuNCwyLjgyLDIuODIsMCwwLDAtMS4wNi0xLjA4LDQu NDcsNC40NywwLDAsMC0yLjA1LS41MVYyMi4ybC41MywwYTQuMTEsNC4xMSwwLDAsMSwuNjcuMTEs NS4xMiw1LjEyLDAsMCwxLC43Mi4yMywyLjg5LDIuODksMCwwLDEsLjcuNDEsMy4zNCwzLjM0LDAs MCwxLC44My45QTMuNjYsMy42NiwwLDAsMSwzMi4yLDI1YTcsNywwLDAsMSwuMTYsMS4yOWMwLC40 NywwLDEuODgsMCwxLjg4YTcuOSw3LjksMCwwLDAsLjEyLDEuNUEyLjM3LDIuMzcsMCwwLDAsMzMs MzAuNjlhMi42NSwyLjY1LDAsMCwwLDEsLjczLjY5LjY5LDAsMCwxLDAsMS4xNywyLjY2LDIuNjYs MCwwLDAtMSwuNzMsMi4zOSwyLjM5LDAsMCwwLS40NywxLjA2LDcuOSw3LjksMCwwLDAtLjEyLDEu NXMtLjA5LDIuNzgtLjE4LDMuMTdhMy42NSwzLjY1LDAsMCwxLS40MywxLjA3LDMuMzEsMy4zMSww LDAsMS0uODMuOSwyLjksMi45LDAsMCwxLS43LjQxLDUuMzksNS4zOSwwLDAsMS0uNzIuMjMsNC4z NCw0LjM0LDAsMCwxLS42Ny4xMWwtLjUzLDBaIi8+PHBhdGggY2xhc3M9ImNscy0yIiBkPSJNMTEu MzksNTMuNDZjLTEuMzcsMC0xLjUtLjEzLTEuNS0xLjVWNDAuNDZoNy4yOHYxM1oiLz48cGF0aCBj bGFzcz0iY2xzLTMiIGQ9Ik0xNi42Nyw0MVY1M0gxMS4zOWEzLjI1LDMuMjUsMCwwLDEtLjktLjA4 aDBhMi4xOCwyLjE4LDAsMCwxLS4xLS45MlY0MWg2LjI4bTEtMUg5LjM5VjUyYzAsMS42NS4zNSwy LDIsMmg2LjI4VjQwWiIvPjxwYXRoIGNsYXNzPSJjbHMtMiIgZD0iTTE3LjE2LDUzLjQ2di0xM2g3 LjI4VjUyYzAsMS4zNy0uMTMsMS41LTEuNSwxLjVaIi8+PHBhdGggY2xhc3M9ImNscy0zIiBkPSJN MjMuOTQsNDFWNTJhMy4yOCwzLjI4LDAsMCwxLS4wOC45LDIuMTgsMi4xOCwwLDAsMS0uOTIuMUgx Ny42NlY0MWg2LjI4bTEtMUgxNi42NlY1NGg2LjI4YzEuNjUsMCwyLS4zNSwyLTJWNDBaIi8+PHBh dGggY2xhc3M9ImNscy00IiBkPSJNOS44OSw0MC40NlYzNmMwLTEuMzcuMTMtMS41LDEuNS0xLjVo NS43OHY2WiIvPjxwYXRoIGNsYXNzPSJjbHMtNSIgZD0iTTE2LjY3LDM1djVIMTAuMzlWMzZhMy4y OCwzLjI4LDAsMCwxLC4wOC0uOSwyLjE4LDIuMTgsMCwwLDEsLjkyLS4xaDUuMjhtMS0xSDExLjM5 Yy0xLjY1LDAtMiwuMzUtMiwydjVoOC4yOFYzNFoiLz48cGF0aCBjbGFzcz0iY2xzLTQiIGQ9Ik0x Ny4xNiw0MC40NnYtNmg1Ljc4YzEuMzcsMCwxLjUuMTMsMS41LDEuNXY0LjVaIi8+PHBhdGggY2xh c3M9ImNscy01IiBkPSJNMjIuOTQsMzVhMy4yNSwzLjI1LDAsMCwxLC45LjA4aDBhMi4xOCwyLjE4 LDAsMCwxLC4xLjkydjRIMTcuNjZWMzVoNS4yOG0wLTFIMTYuNjZ2N2g4LjI4VjM2YzAtMS42NS0u MzUtMi0yLTJaIi8+PGxpbmUgY2xhc3M9ImNscy02IiB4MT0iMTYuOTIiIHkxPSI0Ni44MSIgeDI9 IjI0LjQxIiB5Mj0iNDYuODEiLz48bGluZSBjbGFzcz0iY2xzLTYiIHgxPSI5LjkyIiB5MT0iNDYu ODEiIHgyPSIxNi42NiIgeTI9IjQ2LjgxIi8+PHBhdGggY2xhc3M9ImNscy03IiBkPSJNMTMuNzcs NDJ2My4zNkgxM1Y0MloiLz48cGF0aCBjbGFzcz0iY2xzLTciIGQ9Ik0xMi44OSw0OC40N3YzLjM2 aC0uNzdWNDguNDdaIi8+PHBhdGggY2xhc3M9ImNscy03IiBkPSJNMTQuOTUsNDguNDd2My4zNmgt Ljc3VjQ4LjQ3WiIvPjxwYXRoIGNsYXNzPSJjbHMtOCIgZD0iTTExLjM5LDI5LjMxYy0xLjM3LDAt MS41LS4xMy0xLjUtMS41VjE2LjMxaDcuMjh2MTNaIi8+PHBhdGggY2xhc3M9ImNscy05IiBkPSJN MTYuNjcsMTYuODF2MTJIMTEuMzlhMy4yNSwzLjI1LDAsMCwxLS45LS4wOGgwYTIuMTgsMi4xOCww LDAsMS0uMS0uOTJ2LTExaDYuMjhtMS0xSDkuMzl2MTJjMCwxLjY1LjM1LDIsMiwyaDYuMjh2LTE0 WiIvPjxwYXRoIGNsYXNzPSJjbHMtOCIgZD0iTTE3LjE2LDI5LjMxdi0xM2g3LjI4djExLjVjMCwx LjM3LS4xMywxLjUtMS41LDEuNVoiLz48cGF0aCBjbGFzcz0iY2xzLTkiIGQ9Ik0yMy45NCwxNi44 MXYxMWEzLjI4LDMuMjgsMCwwLDEtLjA4LjksMi4xOCwyLjE4LDAsMCwxLS45Mi4xSDE3LjY2di0x Mmg2LjI4bTEtMUgxNi42NnYxNGg2LjI4YzEuNjUsMCwyLS4zNSwyLTJ2LTEyWiIvPjxwYXRoIGNs YXNzPSJjbHMtNCIgZD0iTTkuODksMTYuMzF2LTQuNWMwLTEuMzcuMTMtMS41LDEuNS0xLjVoNS43 OHY2WiIvPjxwYXRoIGNsYXNzPSJjbHMtNSIgZD0iTTE2LjY3LDEwLjgxdjVIMTAuMzl2LTRhMy4y OCwzLjI4LDAsMCwxLC4wOC0uOSwyLjE4LDIuMTgsMCwwLDEsLjkyLS4xaDUuMjhtMS0xSDExLjM5 Yy0xLjY1LDAtMiwuMzUtMiwydjVoOC4yOHYtN1oiLz48cGF0aCBjbGFzcz0iY2xzLTQiIGQ9Ik0x Ny4xNiwxNi4zMXYtNmg1Ljc4YzEuMzcsMCwxLjUuMTMsMS41LDEuNXY0LjVaIi8+PHBhdGggY2xh c3M9ImNscy01IiBkPSJNMjIuOTQsMTAuODFhMy4yNSwzLjI1LDAsMCwxLC45LjA4aDBhMi4xOCwy LjE4LDAsMCwxLC4xLjkydjRIMTcuNjZ2LTVoNS4yOG0wLTFIMTYuNjZ2N2g4LjI4di01YzAtMS42 NS0uMzUtMi0yLTJaIi8+PGxpbmUgY2xhc3M9ImNscy0xMCIgeDE9IjE2LjkyIiB5MT0iMjIuNjYi IHgyPSIyNC40MSIgeTI9IjIyLjY2Ii8+PGxpbmUgY2xhc3M9ImNscy0xMCIgeDE9IjkuOTIiIHkx PSIyMi42NiIgeDI9IjE2LjY2IiB5Mj0iMjIuNjYiLz48cGF0aCBjbGFzcz0iY2xzLTciIGQ9Ik0x My43NywxNy43OXYzLjM2SDEzVjE3Ljc5WiIvPjxwYXRoIGNsYXNzPSJjbHMtNyIgZD0iTTEyLjg5 LDI0LjE3djMuMzZoLS43N1YyNC4xN1oiLz48cGF0aCBjbGFzcz0iY2xzLTciIGQ9Ik0xNC45NSwy NC4xN3YzLjM2aC0uNzdWMjQuMTdaIi8+PHBhdGggY2xhc3M9ImNscy0yIiBkPSJNNDAuNTQsNDcu NzZjLTEuMzcsMC0xLjUtLjEzLTEuNS0xLjV2LTQuOGg3LjI4djYuM1oiLz48cGF0aCBjbGFzcz0i Y2xzLTMiIGQ9Ik00NS44Miw0MnY1LjNINDAuNTRhMy4yNiwzLjI2LDAsMCwxLS45LS4wOGgwYTIu MTgsMi4xOCwwLDAsMS0uMS0uOTJWNDJoNi4yOG0xLTFIMzguNTR2NS4zYzAsMS42NS4zNSwyLDIs Mmg2LjI4VjQxWiIvPjxwYXRoIGNsYXNzPSJjbHMtMiIgZD0iTTQ2LjMxLDQ3Ljc2di02LjNoNy4y OHY0LjhjMCwxLjM3LS4xMywxLjUtMS41LDEuNVoiLz48cGF0aCBjbGFzcz0iY2xzLTMiIGQ9Ik01 My4wOSw0MnY0LjNhMy4yOCwzLjI4LDAsMCwxLS4wOC45LDIuMTgsMi4xOCwwLDAsMS0uOTIuMUg0 Ni44MVY0Mmg2LjI4bTEtMUg0NS44MXY3LjNoNi4yOGMxLjY1LDAsMi0uMzUsMi0yVjQxWiIvPjxy ZWN0IGNsYXNzPSJjbHMtOCIgeD0iMzkuMDQiIHk9IjM1LjE2IiB3aWR0aD0iNy4yOCIgaGVpZ2h0 PSI2LjMiLz48cGF0aCBjbGFzcz0iY2xzLTkiIGQ9Ik00NS44MiwzNS42NlY0MUgzOS41NHYtNS4z aDYuMjhtMS0xSDM4LjU0VjQyaDguMjh2LTcuM1oiLz48cmVjdCBjbGFzcz0iY2xzLTgiIHg9IjQ2 LjMxIiB5PSIzNS4xNiIgd2lkdGg9IjcuMjgiIGhlaWdodD0iNi4zIi8+PHBhdGggY2xhc3M9ImNs cy05IiBkPSJNNTMuMDksMzUuNjZWNDFINDYuODF2LTUuM2g2LjI4bTEtMUg0NS44MVY0Mmg4LjI4 di03LjNaIi8+PHJlY3QgY2xhc3M9ImNscy0yIiB4PSIzOS4wNCIgeT0iMjguODQiIHdpZHRoPSI3 LjI4IiBoZWlnaHQ9IjYuMyIvPjxwYXRoIGNsYXNzPSJjbHMtMyIgZD0iTTQ1LjgyLDI5LjM0djUu M0gzOS41NHYtNS4zaDYuMjhtMS0xSDM4LjU0djcuM2g4LjI4di03LjNaIi8+PHJlY3QgY2xhc3M9 ImNscy0yIiB4PSI0Ni4zMSIgeT0iMjguODQiIHdpZHRoPSI3LjI4IiBoZWlnaHQ9IjYuMyIvPjxw YXRoIGNsYXNzPSJjbHMtMyIgZD0iTTUzLjA5LDI5LjM0djUuM0g0Ni44MXYtNS4zaDYuMjhtMS0x SDQ1LjgxdjcuM2g4LjI4di03LjNaIi8+PHJlY3QgY2xhc3M9ImNscy04IiB4PSIzOS4wNCIgeT0i MjIuNTUiIHdpZHRoPSI3LjI4IiBoZWlnaHQ9IjYuMyIvPjxwYXRoIGNsYXNzPSJjbHMtOSIgZD0i TTQ1LjgyLDIzdjUuM0gzOS41NFYyM2g2LjI4bTEtMUgzOC41NHY3LjNoOC4yOFYyMloiLz48cmVj dCBjbGFzcz0iY2xzLTgiIHg9IjQ2LjMxIiB5PSIyMi41NSIgd2lkdGg9IjcuMjgiIGhlaWdodD0i Ni4zIi8+PHBhdGggY2xhc3M9ImNscy05IiBkPSJNNTMuMDksMjN2NS4zSDQ2LjgxVjIzaDYuMjht MS0xSDQ1LjgxdjcuM2g4LjI4VjIyWiIvPjxwYXRoIGNsYXNzPSJjbHMtNCIgZD0iTTM5LDIyLjU0 di00LjhjMC0xLjM3LjEzLTEuNSwxLjUtMS41aDUuNzh2Ni4zWiIvPjxwYXRoIGNsYXNzPSJjbHMt NSIgZD0iTTQ1LjgyLDE2Ljc0VjIySDM5LjU0di00LjNhMy4yOCwzLjI4LDAsMCwxLC4wOC0uOSwy LjE4LDIuMTgsMCwwLDEsLjkyLS4xaDUuMjhtMS0xSDQwLjU0Yy0xLjY1LDAtMiwuMzUtMiwyVjIz aDguMjh2LTcuM1oiLz48cGF0aCBjbGFzcz0iY2xzLTQiIGQ9Ik00Ni4zMSwyMi41NHYtNi4zaDUu NzhjMS4zNywwLDEuNS4xMywxLjUsMS41djQuOFoiLz48cGF0aCBjbGFzcz0iY2xzLTUiIGQ9Ik01 Mi4wOSwxNi43NGEzLjI1LDMuMjUsMCwwLDEsLjkuMDhoMGEyLjE4LDIuMTgsMCwwLDEsLjEuOTJW MjJINDYuODF2LTUuM2g1LjI4bTAtMUg0NS44MVYyM2g4LjI4di01LjNjMC0xLjY1LS4zNS0yLTIt MloiLz48cGF0aCBjbGFzcz0iY2xzLTciIGQ9Ik00MywyNC4xMnYzLjM2aC0uNzdWMjQuMTJaIi8+ PHBhdGggY2xhc3M9ImNscy03IiBkPSJNNDMsMzAuMzN2My4zNmgtLjc3VjMwLjMzWiIvPjxwYXRo IGNsYXNzPSJjbHMtNyIgZD0iTTQyLjE1LDQzdjMuMzZoLS43N1Y0M1oiLz48cGF0aCBjbGFzcz0i Y2xzLTciIGQ9Ik00NC4yMSw0M3YzLjM2aC0uNzdWNDNaIi8+PHBhdGggY2xhc3M9ImNscy03IiBk PSJNNDIuMTUsMzYuNzh2My4zNmgtLjc3VjM2Ljc4WiIvPjxwYXRoIGNsYXNzPSJjbHMtNyIgZD0i TTQ0LjIxLDM2Ljc4djMuMzZoLS43N1YzNi43OFoiLz48L3N2Zz4KXCBObyBuZXdsaW5lIGF0IGVu ZCBvZiBmaWxlCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9zdGF0aWMvanMvRXhwbGFpbi9pbWcv ZXhfbWVyZ2Vfc2VtaV9qb2luLnN2ZyBiL3dlYi9wZ2FkbWluL3N0YXRpYy9qcy9FeHBsYWluL2lt Zy9leF9tZXJnZV9zZW1pX2pvaW4uc3ZnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAwMC4uNjcyY2Q0ZTVhCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vc3RhdGljL2pz L0V4cGxhaW4vaW1nL2V4X21lcmdlX3NlbWlfam9pbi5zdmcKQEAgLTAsMCArMSBAQAorPHN2ZyBp ZD0iXzEiIGRhdGEtbmFtZT0iMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2 aWV3Qm94PSIwIDAgNjQgNjQiPjxkZWZzPjxzdHlsZT4uY2xzLTF7ZmlsbDojZDNkNGYzO30uY2xz LTJ7ZmlsbDojNjY2YmQxO30uY2xzLTEwLC5jbHMtM3tmaWxsOm5vbmU7b3BhY2l0eTowLjg7fS5j bHMtM3tzdHJva2U6IzY2NmJkMTt9LmNscy0xMCwuY2xzLTMsLmNscy00LC5jbHMtNXtzdHJva2Ut bGluZWpvaW46cm91bmQ7fS5jbHMtNCwuY2xzLTV7ZmlsbDojNTI4ZDE5O3N0cm9rZTojNTI4ZDE5 O30uY2xzLTV7c3Ryb2tlLWxpbmVjYXA6cm91bmQ7c3Ryb2tlLXdpZHRoOjJweDt9LmNscy02e2Zp bGw6I2YwZWNiNjt9LmNscy03e2ZpbGw6I2MxOGYzNTt9LmNscy04e2ZpbGw6I2FkZGZmMzt9LmNs cy05e2ZpbGw6IzI5ODBiOTt9LmNscy0xMHtzdHJva2U6I2MxOGYzNTt9LmNscy0xMXtvcGFjaXR5 OjAuNjt9PC9zdHlsZT48L2RlZnM+PHRpdGxlPmV4X21lcmdlX3NlbWlfam9pbjwvdGl0bGU+PHBh dGggY2xhc3M9ImNscy0xIiBkPSJNMTAuNTEsMTguMThjLTEuMzcsMC0xLjUtLjEzLTEuNS0xLjV2 LTRjMC0xLjM3LjEzLTEuNSwxLjUtMS41SDE1djdaIi8+PHBhdGggY2xhc3M9ImNscy0yIiBkPSJN MTQuNTEsMTEuNjl2NmgtNGEzLjI2LDMuMjYsMCwwLDEtLjktLjA4aDBhMi4xOCwyLjE4LDAsMCwx LS4xLS45MnYtNGEzLjI4LDMuMjgsMCwwLDEsLjA4LS45LDIuMTgsMi4xOCwwLDAsMSwuOTItLjFo NG0xLTFoLTVjLTEuNjUsMC0yLC4zNS0yLDJ2NGMwLDEuNjUuMzUsMiwyLDJoNXYtOFoiLz48cGF0 aCBjbGFzcz0iY2xzLTEiIGQ9Ik0xNSwxOC4xOHYtN0gyNi4yYzEuMzcsMCwxLjUuMTMsMS41LDEu NXY0YzAsMS4zNy0uMTMsMS41LTEuNSwxLjVaIi8+PHBhdGggY2xhc3M9ImNscy0yIiBkPSJNMjYu MiwxMS42OWEzLjI1LDMuMjUsMCwwLDEsLjkuMDhoMGEyLjE4LDIuMTgsMCwwLDEsLjEuOTJ2NGEz LjI5LDMuMjksMCwwLDEtLjA4LjksMi4xOCwyLjE4LDAsMCwxLS45Mi4xSDE1LjUxdi02SDI2LjJt MC0xSDE0LjUxdjhIMjYuMmMxLjY1LDAsMi0uMzUsMi0ydi00YzAtMS42NS0uMzUtMi0yLTJaIi8+ PGxpbmUgY2xhc3M9ImNscy0zIiB4MT0iMjEuMjgiIHkxPSIxNy43OSIgeDI9IjIxLjI4IiB5Mj0i MTEuNTUiLz48cG9seWdvbiBjbGFzcz0iY2xzLTQiIHBvaW50cz0iMjguODggMzcuNjkgMjUuNSAz NS4xNiAyNS41IDQwLjIyIDI4Ljg4IDM3LjY5Ii8+PGxpbmUgY2xhc3M9ImNscy01IiB4MT0iMjUu MjEiIHkxPSIzNy42OSIgeDI9IjE4LjExIiB5Mj0iMzcuNjkiLz48bGluZSBjbGFzcz0iY2xzLTUi IHgxPSIxNy45NyIgeTE9IjIyLjI1IiB4Mj0iMTcuOTciIHkyPSIzNy42OSIvPjxwYXRoIGNsYXNz PSJjbHMtNiIgZD0iTTM0LjY0LDUyLjU3Yy0xLjM3LDAtMS41LS4xMy0xLjUtMS41VjI4LjU3aDcu Mjh2MjRaIi8+PHBhdGggY2xhc3M9ImNscy03IiBkPSJNMzkuOTIsMjkuMDd2MjNIMzQuNjRhMy4y NSwzLjI1LDAsMCwxLS45LS4wOGgwYTIuMTgsMi4xOCwwLDAsMS0uMS0uOTJ2LTIyaDYuMjhtMS0x SDMyLjY0djIzYzAsMS42NS4zNSwyLDIsMmg2LjI4di0yNVoiLz48cGF0aCBjbGFzcz0iY2xzLTgi IGQ9Ik0zMy4xNCwyOC41N3YtNC41YzAtMS4zNy4xMy0xLjUsMS41LTEuNWg1Ljc4djZaIi8+PHBh dGggY2xhc3M9ImNscy05IiBkPSJNMzkuOTIsMjMuMDd2NUgzMy42NHYtNGEzLjI4LDMuMjgsMCww LDEsLjA4LS45LDIuMTgsMi4xOCwwLDAsMSwuOTItLjFoNS4yOG0xLTFIMzQuNjRjLTEuNjUsMC0y LC4zNS0yLDJ2NWg4LjI4di03WiIvPjxsaW5lIGNsYXNzPSJjbHMtMTAiIHgxPSIzMy4xNyIgeTE9 IjM0LjkyIiB4Mj0iMzkuOTEiIHkyPSIzNC45MiIvPjxsaW5lIGNsYXNzPSJjbHMtMTAiIHgxPSIz My4xNyIgeTE9IjQwLjkyIiB4Mj0iMzkuOTEiIHkyPSI0MC45MiIvPjxsaW5lIGNsYXNzPSJjbHMt MTAiIHgxPSIzMy4xNyIgeTE9IjQ2LjkyIiB4Mj0iMzkuOTEiIHkyPSI0Ni45MiIvPjxnIGNsYXNz PSJjbHMtMTEiPjxyZWN0IGNsYXNzPSJjbHMtNiIgeD0iNDAuNDQiIHk9IjI4LjU3IiB3aWR0aD0i Ny4yOCIgaGVpZ2h0PSIyNCIvPjxwYXRoIGNsYXNzPSJjbHMtNyIgZD0iTTQ3LjIyLDI5LjA3djIz SDQwLjk0di0yM2g2LjI4bTEtMUgzOS45NHYyNWg4LjI4di0yNVoiLz48cGF0aCBjbGFzcz0iY2xz LTEiIGQ9Ik00Ny43MSw1Mi41N3YtMjRINTV2MjIuNWMwLDEuMzctLjEzLDEuNS0xLjUsMS41WiIv PjxwYXRoIGNsYXNzPSJjbHMtMiIgZD0iTTU0LjQ5LDI5LjA3djIyYTMuMjgsMy4yOCwwLDAsMS0u MDguOSwyLjE4LDIuMTgsMCwwLDEtLjkyLjFINDguMjF2LTIzaDYuMjhtMS0xSDQ3LjIxdjI1aDYu MjhjMS42NSwwLDItLjM1LDItMnYtMjNaIi8+PHJlY3QgY2xhc3M9ImNscy04IiB4PSI0MC40NCIg eT0iMjIuNTciIHdpZHRoPSI3LjI4IiBoZWlnaHQ9IjYiLz48cGF0aCBjbGFzcz0iY2xzLTkiIGQ9 Ik00Ny4yMiwyMy4wN3Y1SDQwLjk0di01aDYuMjhtMS0xSDM5Ljk0djdoOC4yOHYtN1oiLz48cGF0 aCBjbGFzcz0iY2xzLTgiIGQ9Ik00Ny43MSwyOC41N3YtNmg1Ljc4YzEuMzcsMCwxLjUuMTMsMS41 LDEuNXY0LjVaIi8+PHBhdGggY2xhc3M9ImNscy05IiBkPSJNNTMuNDksMjMuMDdhMy4yNSwzLjI1 LDAsMCwxLC45LjA4aDBhMi4xOCwyLjE4LDAsMCwxLC4xLjkydjRINDguMjF2LTVoNS4yOG0wLTFI NDcuMjF2N2g4LjI4di01YzAtMS42NS0uMzUtMi0yLTJaIi8+PGxpbmUgY2xhc3M9ImNscy0zIiB4 MT0iNDcuNDciIHkxPSIzNC45MiIgeDI9IjU0Ljk2IiB5Mj0iMzQuOTIiLz48bGluZSBjbGFzcz0i Y2xzLTEwIiB4MT0iNDAuNDciIHkxPSIzNC45MiIgeDI9IjQ3LjIxIiB5Mj0iMzQuOTIiLz48bGlu ZSBjbGFzcz0iY2xzLTMiIHgxPSI0Ny40NyIgeTE9IjQwLjkyIiB4Mj0iNTQuOTYiIHkyPSI0MC45 MiIvPjxsaW5lIGNsYXNzPSJjbHMtMTAiIHgxPSI0MC40NyIgeTE9IjQwLjkyIiB4Mj0iNDcuMjEi IHkyPSI0MC45MiIvPjxsaW5lIGNsYXNzPSJjbHMtMyIgeDE9IjQ3LjQ3IiB5MT0iNDYuOTIiIHgy PSI1NC45NiIgeTI9IjQ2LjkyIi8+PGxpbmUgY2xhc3M9ImNscy0xMCIgeDE9IjQwLjQ3IiB5MT0i NDYuOTIiIHgyPSI0Ny4yMSIgeTI9IjQ2LjkyIi8+PC9nPjwvc3ZnPgpcIE5vIG5ld2xpbmUgYXQg ZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL3N0YXRpYy9qcy9FeHBsYWluL2lt Zy9leF9uYW1lZF90dXBsZXN0b3JlX3NjYW4uc3ZnIGIvd2ViL3BnYWRtaW4vc3RhdGljL2pzL0V4 cGxhaW4vaW1nL2V4X25hbWVkX3R1cGxlc3RvcmVfc2Nhbi5zdmcKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMDAwLi4zZDBmYTU1ZmYKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdh ZG1pbi9zdGF0aWMvanMvRXhwbGFpbi9pbWcvZXhfbmFtZWRfdHVwbGVzdG9yZV9zY2FuLnN2ZwpA QCAtMCwwICsxIEBACis8c3ZnIGlkPSJfMSIgZGF0YS1uYW1lPSIxIiB4bWxucz0iaHR0cDovL3d3 dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2NCA2NCI+PGRlZnM+PHN0eWxlPi5jbHMt MSwuY2xzLTIsLmNscy00LC5jbHMtNiwuY2xzLTh7ZmlsbDojZjNjN2Q3O30uY2xzLTEsLmNscy0y e3N0cm9rZTojZDA0NDY1O30uY2xzLTEsLmNscy0yLC5jbHMtMywuY2xzLTQsLmNscy01LC5jbHMt NiwuY2xzLTcsLmNscy04e3N0cm9rZS1taXRlcmxpbWl0OjEwO30uY2xzLTIsLmNscy00LC5jbHMt NiwuY2xzLTh7b3BhY2l0eTowLjU7fS5jbHMtM3tmaWxsOiNhZGRmZjM7fS5jbHMtMywuY2xzLTR7 c3Ryb2tlOiMyOTgwYjk7fS5jbHMtNXtmaWxsOiNmMGVjYjY7fS5jbHMtNSwuY2xzLTZ7c3Ryb2tl OiNjMThmMzY7fS5jbHMtN3tmaWxsOiNkM2Q0ZjM7fS5jbHMtNywuY2xzLTh7c3Ryb2tlOiM2NjZi ZDE7fS5jbHMtMTAsLmNscy05e2ZpbGw6IzY0NjQ2NDtzdHJva2U6IzY0NjQ2NDtzdHJva2UtbGlu ZWpvaW46cm91bmQ7fS5jbHMtMTB7c3Ryb2tlLWxpbmVjYXA6cm91bmQ7c3Ryb2tlLXdpZHRoOjJw eDt9PC9zdHlsZT48L2RlZnM+PHRpdGxlPm5hbWVkX3R1cGxlc3RvcmVfc2NhbjwvdGl0bGU+PHJl Y3QgY2xhc3M9ImNscy0xIiB4PSIyMi44MSIgeT0iMjIuMzIiIHdpZHRoPSIzMS4wNSIgaGVpZ2h0 PSI3LjA0IiByeD0iMSIvPjxsaW5lIGNsYXNzPSJjbHMtMiIgeDE9IjM0Ljg5IiB5MT0iMjkuMDgi IHgyPSIzNC44OSIgeTI9IjIyLjg0Ii8+PGxpbmUgY2xhc3M9ImNscy0yIiB4MT0iMjguODMiIHkx PSIyOS4wOCIgeDI9IjI4LjgzIiB5Mj0iMjIuODQiLz48bGluZSBjbGFzcz0iY2xzLTIiIHgxPSI0 MS4yNyIgeTE9IjI5LjA4IiB4Mj0iNDEuMjciIHkyPSIyMi44NCIvPjxsaW5lIGNsYXNzPSJjbHMt MiIgeDE9IjQ3LjQiIHkxPSIyOS4wOCIgeDI9IjQ3LjQiIHkyPSIyMi44NCIvPjxyZWN0IGNsYXNz PSJjbHMtMyIgeD0iMjIuODEiIHk9IjM0LjY4IiB3aWR0aD0iMzEuMDUiIGhlaWdodD0iNy4wNCIg cng9IjEiLz48bGluZSBjbGFzcz0iY2xzLTQiIHgxPSIzNC44OSIgeTE9IjQxLjQ0IiB4Mj0iMzQu ODkiIHkyPSIzNS4yIi8+PGxpbmUgY2xhc3M9ImNscy00IiB4MT0iMjguODMiIHkxPSI0MS40NCIg eDI9IjI4LjgzIiB5Mj0iMzUuMiIvPjxsaW5lIGNsYXNzPSJjbHMtNCIgeDE9IjQxLjI3IiB5MT0i NDEuNDQiIHgyPSI0MS4yNyIgeTI9IjM1LjIiLz48bGluZSBjbGFzcz0iY2xzLTQiIHgxPSI0Ny40 IiB5MT0iNDEuNDQiIHgyPSI0Ny40IiB5Mj0iMzUuMiIvPjxyZWN0IGNsYXNzPSJjbHMtNSIgeD0i MjIuODEiIHk9IjQ3LjI0IiB3aWR0aD0iMzEuMDUiIGhlaWdodD0iNy4wNCIgcng9IjEiLz48bGlu ZSBjbGFzcz0iY2xzLTYiIHgxPSIzNC44OSIgeTE9IjU0IiB4Mj0iMzQuODkiIHkyPSI0Ny43NiIv PjxsaW5lIGNsYXNzPSJjbHMtNiIgeDE9IjI4LjgzIiB5MT0iNTQiIHgyPSIyOC44MyIgeTI9IjQ3 Ljc2Ii8+PGxpbmUgY2xhc3M9ImNscy02IiB4MT0iNDEuMjciIHkxPSI1NCIgeDI9IjQxLjI3IiB5 Mj0iNDcuNzYiLz48bGluZSBjbGFzcz0iY2xzLTYiIHgxPSI0Ny40IiB5MT0iNTQiIHgyPSI0Ny40 IiB5Mj0iNDcuNzYiLz48cmVjdCBjbGFzcz0iY2xzLTciIHg9IjIyLjgxIiB5PSI5LjcyIiB3aWR0 aD0iMzEuMDUiIGhlaWdodD0iNy4wNCIgcng9IjEiLz48bGluZSBjbGFzcz0iY2xzLTgiIHgxPSIz NC44OSIgeTE9IjE2LjQ3IiB4Mj0iMzQuODkiIHkyPSIxMC4yMyIvPjxsaW5lIGNsYXNzPSJjbHMt OCIgeDE9IjI4LjgzIiB5MT0iMTYuNDciIHgyPSIyOC44MyIgeTI9IjEwLjIzIi8+PGxpbmUgY2xh c3M9ImNscy04IiB4MT0iNDEuMjciIHkxPSIxNi40NyIgeDI9IjQxLjI3IiB5Mj0iMTAuMjMiLz48 bGluZSBjbGFzcz0iY2xzLTgiIHgxPSI0Ny40IiB5MT0iMTYuNDciIHgyPSI0Ny40IiB5Mj0iMTAu MjMiLz48cG9seWdvbiBjbGFzcz0iY2xzLTkiIHBvaW50cz0iMTMuNjIgNTMuOTkgMTAuMTQgNDku MzUgMTcuMDkgNDkuMzUgMTMuNjIgNTMuOTkiLz48bGluZSBjbGFzcz0iY2xzLTEwIiB4MT0iMTMu NjIiIHkxPSI0OS45OCIgeDI9IjEzLjYyIiB5Mj0iMTAuMDEiLz48L3N2Zz4KXCBObyBuZXdsaW5l IGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9zdGF0aWMvanMvRXhwbGFp bi9pbWcvZXhfbmVzdGVkLnN2ZyBiL3dlYi9wZ2FkbWluL3N0YXRpYy9qcy9FeHBsYWluL2ltZy9l eF9uZXN0ZWQuc3ZnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMC4uMzYyMzY3 NWIyCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vc3RhdGljL2pzL0V4cGxhaW4vaW1n L2V4X25lc3RlZC5zdmcKQEAgLTAsMCArMSBAQAorPHN2ZyBpZD0iXzEiIGRhdGEtbmFtZT0iMSIg eG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgNjQgNjQiPjxk ZWZzPjxzdHlsZT4uY2xzLTEsLmNscy0ze2ZpbGw6bm9uZTtzdHJva2UtbGluZWNhcDpyb3VuZDtz dHJva2UtbGluZWpvaW46cm91bmQ7c3Ryb2tlLXdpZHRoOjJweDt9LmNscy0xe3N0cm9rZTojNjY2 YmQxO30uY2xzLTJ7ZmlsbDojNjY2YmQxO30uY2xzLTN7c3Ryb2tlOiM4ZDgxMTk7fS5jbHMtNHtm aWxsOiM4ZDgxMTk7fTwvc3R5bGU+PC9kZWZzPjx0aXRsZT5leF9uZXN0ZWQ8L3RpdGxlPjxwYXRo IGNsYXNzPSJjbHMtMSIgZD0iTTE3LjIzLDIwYTYsNiwwLDAsMSw2LTZoMjJhNiw2LDAsMCwxLDYs NlY0NGE2LDYsMCwwLDEtNiw2aC0yMmE2LDYsMCwwLDEtNi02VjMyLjI3Ii8+PHBvbHlnb24gY2xh c3M9ImNscy0yIiBwb2ludHM9IjE3LjIzIDI3LjMxIDEyLjc3IDMzLjI2IDIxLjY4IDMzLjI2IDE3 LjIzIDI3LjMxIi8+PHBhdGggY2xhc3M9ImNscy0zIiBkPSJNMjQuMjMsMjVjMC0zLjMuNy00LDQt NGgxMmMzLjMsMCw0LC43LDQsNFYzOWMwLDMuMy0uNyw0LTQsNEgyOC43MmMtMy4zLDAtNC0uNy00 LTRWMzMuNzIiLz48cG9seWdvbiBjbGFzcz0iY2xzLTQiIHBvaW50cz0iMjQuNjcgMzEuMzQgMjAu NzEgMzYuMSAyOC4yMyAzNi4xIDI0LjY3IDMxLjM0Ii8+PC9zdmc+ClwgTm8gbmV3bGluZSBhdCBl bmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vc3RhdGljL2pzL0V4cGxhaW4vaW1n L2V4X25lc3RlZF9sb29wX2FudGlfam9pbi5zdmcgYi93ZWIvcGdhZG1pbi9zdGF0aWMvanMvRXhw bGFpbi9pbWcvZXhfbmVzdGVkX2xvb3BfYW50aV9qb2luLnN2ZwpuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwMDAuLjA4NWNmNmIxOAotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2Fk bWluL3N0YXRpYy9qcy9FeHBsYWluL2ltZy9leF9uZXN0ZWRfbG9vcF9hbnRpX2pvaW4uc3ZnCkBA IC0wLDAgKzEgQEAKKzxzdmcgaWQ9Il8xIiBkYXRhLW5hbWU9IjEiIHhtbG5zPSJodHRwOi8vd3d3 LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDY0IDY0Ij48ZGVmcz48c3R5bGU+LmNscy0x LC5jbHMtMTEsLmNscy0xNSwuY2xzLTMsLmNscy04e2ZpbGw6bm9uZTt9LmNscy0xLC5jbHMtOHtz dHJva2U6IzY2NmJkMTt9LmNscy0xLC5jbHMtM3tzdHJva2UtbGluZWNhcDpyb3VuZDt9LmNscy0x LC5jbHMtMTEsLmNscy0zLC5jbHMtOHtzdHJva2UtbGluZWpvaW46cm91bmQ7fS5jbHMtMSwuY2xz LTE1LC5jbHMtM3tzdHJva2Utd2lkdGg6MS41cHg7fS5jbHMtMntmaWxsOiM2NjZiZDE7fS5jbHMt M3tzdHJva2U6IzhkODExOTt9LmNscy00e2ZpbGw6IzhkODExOTt9LmNscy01e2ZpbGw6I2QzZDRm Mzt9LmNscy02e2ZpbGw6I2FkZGZmMzt9LmNscy03e2ZpbGw6IzI5ODBiOTt9LmNscy0xMSwuY2xz LTh7b3BhY2l0eTowLjg7fS5jbHMtOXtmaWxsOiNmMGVjYjY7fS5jbHMtMTB7ZmlsbDojYzE4ZjM1 O30uY2xzLTExe3N0cm9rZTojYzE4ZjM1O30uY2xzLTEye2ZpbGw6IzM0NDk1ZTtzdHJva2U6IzUy OGQxOTt9LmNscy0xMiwuY2xzLTE1e3N0cm9rZS1taXRlcmxpbWl0OjEwO30uY2xzLTEze2ZpbGw6 I2RlZjRmZDt9LmNscy0xNHtmaWxsOiNjMDA7fS5jbHMtMTV7c3Ryb2tlOiNjMDA7fTwvc3R5bGU+ PC9kZWZzPjx0aXRsZT5leF9uZXN0ZWRfbG9vcF9hbnRpX2pvaW48L3RpdGxlPjxwYXRoIGNsYXNz PSJjbHMtMSIgZD0iTTguNjgsMjIuMzJjMC0uMzUuMDYtMy42OS4xNy00YTMsMywwLDAsMSwyLjgz LTJoMTRhMywzLDAsMCwxLDMsM3YyNGEzLDMsMCwwLDEtMywzaC0xNGEzLDMsMCwwLDEtMy0zVjI4 LjQ2Ii8+PHBvbHlnb24gY2xhc3M9ImNscy0yIiBwb2ludHM9IjguNjggMjUuOTggNi40NSAyOC45 NSAxMC45IDI4Ljk1IDguNjggMjUuOTgiLz48cGF0aCBjbGFzcz0iY2xzLTMiIGQ9Ik0xMi4xOCwy NC44MmMwLS4yNiwwLTMuNDgsMC0zLjY4LjExLTEuMDcuNTgtMS4zMiwyLTEuMzJoOWMxLjY1LDAs MiwuMzUsMiwydjE5YzAsMS42NS0uMzUsMi0yLDJIMTQuNDJjLTEuNjUsMC0yLS4zNS0yLTJWMjku MTgiLz48cG9seWdvbiBjbGFzcz0iY2xzLTQiIHBvaW50cz0iMTIuNCAyNy45OSAxMC40MiAzMC4z NyAxNC4xOCAzMC4zNyAxMi40IDI3Ljk5Ii8+PHBhdGggY2xhc3M9ImNscy01IiBkPSJNNDguODcs NDYuOTR2LTI0aDcuMjh2MjIuNWMwLDEuMzctLjEzLDEuNS0xLjUsMS41WiIvPjxwYXRoIGNsYXNz PSJjbHMtMiIgZD0iTTU1LjY1LDIzLjQ0djIyYTMuMjgsMy4yOCwwLDAsMS0uMDguOSwyLjE4LDIu MTgsMCwwLDEtLjkyLjFINDkuMzd2LTIzaDYuMjhtMS0xSDQ4LjM3djI1aDYuMjhjMS42NSwwLDIt LjM1LDItMnYtMjNaIi8+PHBhdGggY2xhc3M9ImNscy02IiBkPSJNNDguODcsMjIuOTR2LTZoNS43 OGMxLjM3LDAsMS41LjEzLDEuNSwxLjV2NC41WiIvPjxwYXRoIGNsYXNzPSJjbHMtNyIgZD0iTTU0 LjY1LDE3LjQ0YTMuMjUsMy4yNSwwLDAsMSwuOS4wOGgwYTIuMTcsMi4xNywwLDAsMSwuMS45MnY0 SDQ5LjM3di01aDUuMjhtMC0xSDQ4LjM3djdoOC4yOHYtNWMwLTEuNjUtLjM1LTItMi0yWiIvPjxs aW5lIGNsYXNzPSJjbHMtOCIgeDE9IjQ4LjYzIiB5MT0iMjkuMjkiIHgyPSI1Ni4xMiIgeTI9IjI5 LjI5Ii8+PGxpbmUgY2xhc3M9ImNscy04IiB4MT0iNDguNjMiIHkxPSIzNS4yOSIgeDI9IjU2LjEy IiB5Mj0iMzUuMjkiLz48bGluZSBjbGFzcz0iY2xzLTgiIHgxPSI0OC42MyIgeTE9IjQxLjI5IiB4 Mj0iNTYuMTIiIHkyPSI0MS4yOSIvPjxwYXRoIGNsYXNzPSJjbHMtOSIgZD0iTTQzLjEsNDYuOTRj LTEuMzcsMC0xLjUtLjEzLTEuNS0xLjVWMjIuOTRoNy4yOHYyNFoiLz48cGF0aCBjbGFzcz0iY2xz LTEwIiBkPSJNNDguMzgsMjMuNDR2MjNINDMuMWEzLjI1LDMuMjUsMCwwLDEtLjktLjA4aDBhMi4x OCwyLjE4LDAsMCwxLS4xLS45MnYtMjJoNi4yOG0xLTFINDEuMXYyM2MwLDEuNjUuMzUsMiwyLDJo Ni4yOHYtMjVaIi8+PHBhdGggY2xhc3M9ImNscy02IiBkPSJNNDEuNiwyMi45NHYtNC41YzAtMS4z Ny4xMy0xLjUsMS41LTEuNWg1Ljc4djZaIi8+PHBhdGggY2xhc3M9ImNscy03IiBkPSJNNDguMzgs MTcuNDR2NUg0Mi4xdi00YTMuMjksMy4yOSwwLDAsMSwuMDgtLjksMi4xOCwyLjE4LDAsMCwxLC45 Mi0uMWg1LjI4bTEtMUg0My4xYy0xLjY1LDAtMiwuMzUtMiwydjVoOC4yOHYtN1oiLz48bGluZSBj bGFzcz0iY2xzLTExIiB4MT0iNDEuNjMiIHkxPSIyOS4yOSIgeDI9IjQ4LjM3IiB5Mj0iMjkuMjki Lz48bGluZSBjbGFzcz0iY2xzLTExIiB4MT0iNDEuNjMiIHkxPSIzNS4yOSIgeDI9IjQ4LjM3IiB5 Mj0iMzUuMjkiLz48bGluZSBjbGFzcz0iY2xzLTExIiB4MT0iNDEuNjMiIHkxPSI0MS4yOSIgeDI9 IjQ4LjM3IiB5Mj0iNDEuMjkiLz48cGF0aCBjbGFzcz0iY2xzLTEyIiBkPSJNMzMuODcsMzUuNjFB OS4yOCw5LjI4LDAsMCwxLDM0LDM0LjRhMi43NiwyLjc2LDAsMCwxLC4yNi0uODMsMi4zNywyLjM3 LDAsMCwxLC40NC0uNiwyLjUzLDIuNTMsMCwwLDEsLjYyLS40Niw0LDQsMCwwLDEsLjY0LS4yNywz LjUsMy41LDAsMCwxLC42LS4xM2MuMTksMCwuMTktLjEsMC0uMTJhMy41MiwzLjUyLDAsMCwxLS42 LS4xMywzLjY1LDMuNjUsMCwwLDEtLjY0LS4yNywyLjUyLDIuNTIsMCwwLDEtLjYyLS40NiwyLjQx LDIuNDEsMCwwLDEtLjQ0LS42LDIuNzcsMi43NywwLDAsMS0uMjYtLjgzLDkuMzEsOS4zMSwwLDAs MS0uMTEtMS4yYzAtLjQ3LjUuNzcuNTgsMS4xOGEyLjM3LDIuMzcsMCwwLDAsLjQ3LDEuMDYsMi42 NSwyLjY1LDAsMCwwLDEsLjczLjY5LjY5LDAsMCwxLDAsMS4xNywyLjY2LDIuNjYsMCwwLDAtMSwu NzMsMi4zOSwyLjM5LDAsMCwwLS40NywxLjA2QzM0LjM3LDM0Ljg0LDMzLjg1LDM2LjA4LDMzLjg3 LDM1LjYxWiIvPjxjaXJjbGUgY2xhc3M9ImNscy0xMyIgY3g9IjUyLjUxIiBjeT0iMzUuMjkiIHI9 IjQuMjkiLz48cGF0aCBjbGFzcz0iY2xzLTE0IiBkPSJNNTIuNTEsMzEuNzVBMy41NCwzLjU0LDAs MSwxLDQ5LDM1LjI5YTMuNTUsMy41NSwwLDAsMSwzLjU0LTMuNTRtMC0xLjVhNSw1LDAsMSwwLDUs NSw1LDUsMCwwLDAtNS01WiIvPjxsaW5lIGNsYXNzPSJjbHMtMTUiIHgxPSI0OS4yMiIgeTE9IjM3 LjU3IiB4Mj0iNTUuNzMiIHkyPSIzMi44MyIvPjwvc3ZnPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9m IGZpbGUKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL3N0YXRpYy9qcy9FeHBsYWluL2ltZy9leF9u ZXN0ZWRfbG9vcF9zZW1pX2pvaW4uc3ZnIGIvd2ViL3BnYWRtaW4vc3RhdGljL2pzL0V4cGxhaW4v aW1nL2V4X25lc3RlZF9sb29wX3NlbWlfam9pbi5zdmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDAwMDAwMDAwLi5iMzljYjY5MzYKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9z dGF0aWMvanMvRXhwbGFpbi9pbWcvZXhfbmVzdGVkX2xvb3Bfc2VtaV9qb2luLnN2ZwpAQCAtMCww ICsxIEBACis8c3ZnIGlkPSJfMSIgZGF0YS1uYW1lPSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5v cmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2NCA2NCI+PGRlZnM+PHN0eWxlPi5jbHMtMXtvcGFj aXR5OjAuNjt9LmNscy0ye2ZpbGw6I2QzZDRmMzt9LmNscy0ze2ZpbGw6IzY2NmJkMTt9LmNscy00 e2ZpbGw6I2FkZGZmMzt9LmNscy01e2ZpbGw6IzI5ODBiOTt9LmNscy0xMSwuY2xzLTEyLC5jbHMt NiwuY2xzLTl7ZmlsbDpub25lO3N0cm9rZS1saW5lam9pbjpyb3VuZDt9LmNscy0xMSwuY2xzLTZ7 c3Ryb2tlOiM2NjZiZDE7fS5jbHMtNiwuY2xzLTl7b3BhY2l0eTowLjg7fS5jbHMtN3tmaWxsOiNm MGVjYjY7fS5jbHMtOHtmaWxsOiNjMThmMzU7fS5jbHMtOXtzdHJva2U6I2MxOGYzNTt9LmNscy0x MHtmaWxsOiMzNDQ5NWU7c3Ryb2tlOiM1MjhkMTk7c3Ryb2tlLW1pdGVybGltaXQ6MTA7fS5jbHMt MTEsLmNscy0xMntzdHJva2UtbGluZWNhcDpyb3VuZDtzdHJva2Utd2lkdGg6MS41cHg7fS5jbHMt MTJ7c3Ryb2tlOiM4ZDgxMTk7fS5jbHMtMTN7ZmlsbDojOGQ4MTE5O308L3N0eWxlPjwvZGVmcz48 dGl0bGU+ZXhfbmVzdGVkX2xvb3Bfc2VtaV9qb2luPC90aXRsZT48ZyBjbGFzcz0iY2xzLTEiPjxw YXRoIGNsYXNzPSJjbHMtMiIgZD0iTTQ5LjQ1LDQ2Ljg4di0yNGg3LjI4djIyLjVjMCwxLjM3LS4x MywxLjUtMS41LDEuNVoiLz48cGF0aCBjbGFzcz0iY2xzLTMiIGQ9Ik01Ni4yMywyMy4zOHYyMmEz LjI5LDMuMjksMCwwLDEtLjA4LjksMi4xOCwyLjE4LDAsMCwxLS45Mi4xSDQ5Ljk1di0yM2g2LjI4 bTEtMUg0OC45NXYyNWg2LjI4YzEuNjUsMCwyLS4zNSwyLTJ2LTIzWiIvPjxwYXRoIGNsYXNzPSJj bHMtNCIgZD0iTTQ5LjQ1LDIyLjg4di02aDUuNzhjMS4zNywwLDEuNS4xMywxLjUsMS41djQuNVoi Lz48cGF0aCBjbGFzcz0iY2xzLTUiIGQ9Ik01NS4yMywxNy4zOGEzLjI1LDMuMjUsMCwwLDEsLjku MDhoMGEyLjE4LDIuMTgsMCwwLDEsLjEuOTJ2NEg0OS45NXYtNWg1LjI4bTAtMUg0OXY3aDguMjh2 LTVjMC0xLjY1LS4zNS0yLTItMloiLz48bGluZSBjbGFzcz0iY2xzLTYiIHgxPSI0OS4yMSIgeTE9 IjI5LjIzIiB4Mj0iNTYuNzEiIHkyPSIyOS4yMyIvPjxsaW5lIGNsYXNzPSJjbHMtNiIgeDE9IjQ5 LjIxIiB5MT0iMzUuMjMiIHgyPSI1Ni43MSIgeTI9IjM1LjIzIi8+PGxpbmUgY2xhc3M9ImNscy02 IiB4MT0iNDkuMjEiIHkxPSI0MS4yMyIgeDI9IjU2LjcxIiB5Mj0iNDEuMjMiLz48L2c+PHBhdGgg Y2xhc3M9ImNscy03IiBkPSJNNDMuNjgsNDYuODhjLTEuMzcsMC0xLjUtLjEzLTEuNS0xLjVWMjIu ODhoNy4yOHYyNFoiLz48cGF0aCBjbGFzcz0iY2xzLTgiIGQ9Ik00OSwyMy4zOHYyM0g0My42OGEz LjI1LDMuMjUsMCwwLDEtLjktLjA4aDBhMi4xOCwyLjE4LDAsMCwxLS4xLS45MnYtMjJINDltMS0x SDQxLjY4djIzYzAsMS42NS4zNSwyLDIsMkg1MHYtMjVaIi8+PHBhdGggY2xhc3M9ImNscy00IiBk PSJNNDIuMTgsMjIuODh2LTQuNWMwLTEuMzcuMTMtMS41LDEuNS0xLjVoNS43OHY2WiIvPjxwYXRo IGNsYXNzPSJjbHMtNSIgZD0iTTQ5LDE3LjM4djVINDIuNjh2LTRhMy4yOSwzLjI5LDAsMCwxLC4w OC0uOSwyLjE4LDIuMTgsMCwwLDEsLjkyLS4xSDQ5bTEtMUg0My42OGMtMS42NSwwLTIsLjM1LTIs MnY1SDUwdi03WiIvPjxsaW5lIGNsYXNzPSJjbHMtOSIgeDE9IjQyLjIxIiB5MT0iMjkuMjMiIHgy PSI0OC45NSIgeTI9IjI5LjIzIi8+PGxpbmUgY2xhc3M9ImNscy05IiB4MT0iNDIuMjEiIHkxPSIz NS4yMyIgeDI9IjQ4Ljk1IiB5Mj0iMzUuMjMiLz48bGluZSBjbGFzcz0iY2xzLTkiIHgxPSI0Mi4y MSIgeTE9IjQxLjIzIiB4Mj0iNDguOTUiIHkyPSI0MS4yMyIvPjxwYXRoIGNsYXNzPSJjbHMtMTAi IGQ9Ik0zNC40NSwzNS41NWE5LjI4LDkuMjgsMCwwLDEsLjExLTEuMiwyLjc2LDIuNzYsMCwwLDEs LjI2LS44MywyLjM3LDIuMzcsMCwwLDEsLjQ0LS42LDIuNTMsMi41MywwLDAsMSwuNjItLjQ2LDQs NCwwLDAsMSwuNjQtLjI3LDMuNSwzLjUsMCwwLDEsLjYtLjEzYy4xOSwwLC4xOS0uMSwwLS4xMmEz LjUyLDMuNTIsMCwwLDEtLjYtLjEzLDMuNjUsMy42NSwwLDAsMS0uNjQtLjI3LDIuNTIsMi41Miww LDAsMS0uNjItLjQ2LDIuNDEsMi40MSwwLDAsMS0uNDQtLjYsMi43NywyLjc3LDAsMCwxLS4yNi0u ODMsOS4zMSw5LjMxLDAsMCwxLS4xMS0xLjJjMC0uNDcuNS43Ny41OCwxLjE4YTIuMzcsMi4zNyww LDAsMCwuNDcsMS4wNiwyLjY1LDIuNjUsMCwwLDAsMSwuNzMuNjkuNjksMCwwLDEsMCwxLjE3LDIu NjYsMi42NiwwLDAsMC0xLC43M0EyLjM5LDIuMzksMCwwLDAsMzUsMzQuMzdDMzUsMzQuNzgsMzQu NDQsMzYsMzQuNDUsMzUuNTVaIi8+PHBhdGggY2xhc3M9ImNscy0xMSIgZD0iTTksMjMuMDVjMC0u MzUuMDYtMy42OS4xNy00YTMsMywwLDAsMSwyLjgzLTJIMjZhMywzLDAsMCwxLDMsM3YyNGEzLDMs MCwwLDEtMywzSDEyYTMsMywwLDAsMS0zLTNWMjkuMTkiLz48cG9seWdvbiBjbGFzcz0iY2xzLTMi IHBvaW50cz0iOC45OSAyNi43MSA2Ljc3IDI5LjY4IDExLjIyIDI5LjY4IDguOTkgMjYuNzEiLz48 cGF0aCBjbGFzcz0iY2xzLTEyIiBkPSJNMTIuNDksMjUuNTVjMC0uMjYsMC0zLjQ4LDAtMy42OC4x MS0xLjA3LjU4LTEuMzIsMi0xLjMyaDljMS42NSwwLDIsLjM1LDIsMnYxOWMwLDEuNjUtLjM1LDIt MiwySDE0Ljc0Yy0xLjY1LDAtMi0uMzUtMi0yVjI5LjkxIi8+PHBvbHlnb24gY2xhc3M9ImNscy0x MyIgcG9pbnRzPSIxMi43MSAyOC43MiAxMC43NCAzMS4xIDE0LjQ5IDMxLjEgMTIuNzEgMjguNzIi Lz48L3N2Zz4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS93ZWIvcGdh ZG1pbi9zdGF0aWMvanMvRXhwbGFpbi9pbWcvZXhfcHJvamVjdHNldC5zdmcgYi93ZWIvcGdhZG1p bi9zdGF0aWMvanMvRXhwbGFpbi9pbWcvZXhfcHJvamVjdHNldC5zdmcKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMDAwLi41OTQzZWQ0YWEKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIv cGdhZG1pbi9zdGF0aWMvanMvRXhwbGFpbi9pbWcvZXhfcHJvamVjdHNldC5zdmcKQEAgLTAsMCAr MSBAQAorPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAg MCA2NC4wMyA2NCI+PGRlZnM+PHN0eWxlPi5jbHMtMXtmaWxsOm5vbmU7c3Ryb2tlOiNkMDQ0NjU7 c3Ryb2tlLWxpbmVjYXA6cm91bmQ7c3Ryb2tlLWxpbmVqb2luOnJvdW5kO3N0cm9rZS13aWR0aDox LjVweDt9LmNscy0yLC5jbHMtNHtmaWxsOiNlNmU2ZTY7fS5jbHMtM3tmaWxsOiM4MTgxODE7fS5j bHMtNHtzdHJva2U6IzgxODE4MTt9LmNscy00LC5jbHMtNXtzdHJva2UtbWl0ZXJsaW1pdDoxMDt9 LmNscy01e2ZpbGw6I2QzZDRmMztzdHJva2U6IzY2NmJkMTt9PC9zdHlsZT48L2RlZnM+PHRpdGxl PnByb2plY3RzZXQ8L3RpdGxlPjxnIGlkPSJfMSIgZGF0YS1uYW1lPSIxIj48bGluZSBjbGFzcz0i Y2xzLTEiIHgxPSI1My42NCIgeTE9IjIwLjYzIiB4Mj0iNTQuNTgiIHkyPSIxOC4zNSIvPjxsaW5l IGNsYXNzPSJjbHMtMSIgeDE9IjUxLjM2IiB5MT0iMjYuMTgiIHgyPSI1Mi41MiIgeTI9IjIzLjM2 Ii8+PGxpbmUgY2xhc3M9ImNscy0xIiB4MT0iNDEuMzMiIHkxPSI1MC41MiIgeDI9IjUwLjMxIiB5 Mj0iMjguNzMiLz48bGluZSBjbGFzcz0iY2xzLTEiIHgxPSIxMC4zOCIgeTE9IjIwLjYzIiB4Mj0i OS40NSIgeTI9IjE4LjM1Ii8+PGxpbmUgY2xhc3M9ImNscy0xIiB4MT0iMTIuNjciIHkxPSIyNi4x OCIgeDI9IjExLjUxIiB5Mj0iMjMuMzYiLz48bGluZSBjbGFzcz0iY2xzLTEiIHgxPSIyMi43IiB5 MT0iNTAuNTIiIHgyPSIxMy43MiIgeTI9IjI4LjczIi8+PGxpbmUgY2xhc3M9ImNscy0xIiB4MT0i MjAuNjEiIHkxPSIzMi4zOCIgeDI9IjE5LjQ0IiB5Mj0iMjkuNTYiLz48bGluZSBjbGFzcz0iY2xz LTEiIHgxPSIyOC4xMyIgeTE9IjUwLjUyIiB4Mj0iMjEuNjYiIHkyPSIzNC45MyIvPjxsaW5lIGNs YXNzPSJjbHMtMSIgeDE9IjIxLjM0IiB5MT0iOS42MSIgeDI9IjIwLjg0IiB5Mj0iOC43MyIvPjxs aW5lIGNsYXNzPSJjbHMtMSIgeDE9IjI0LjI3IiB5MT0iMTYuNjQiIHgyPSIyMi4zOSIgeTI9IjEy LjE2Ii8+PGxpbmUgY2xhc3M9ImNscy0xIiB4MT0iNDMuNTgiIHkxPSIzMi4zOCIgeDI9IjQ0Ljc0 IiB5Mj0iMjkuNTYiLz48bGluZSBjbGFzcz0iY2xzLTEiIHgxPSIzNi4wNSIgeTE9IjUwLjUyIiB4 Mj0iNDIuNTMiIHkyPSIzNC45MyIvPjxsaW5lIGNsYXNzPSJjbHMtMSIgeDE9IjQzLjU2IiB5MT0i MTAuODkiIHgyPSI0NC4xMSIgeTI9IjkuNjQiLz48bGluZSBjbGFzcz0iY2xzLTEiIHgxPSI0MS4w NyIgeTE9IjE2Ljg1IiB4Mj0iNDIuNTEiIHkyPSIxMy40NCIvPjxwYXRoIGNsYXNzPSJjbHMtMiIg ZD0iTTE0LjQxLDYzLjUzdi00YTMuNSwzLjUsMCwwLDEsMy41LTMuNWgyOC41YTMuNSwzLjUsMCww LDEsMy41LDMuNXY0WiIvPjxwYXRoIGNsYXNzPSJjbHMtMyIgZD0iTTQ2LjQxLDU2LjQ5YTMsMyww LDAsMSwzLDNWNjNIMTQuOTFWNTkuNDlhMywzLDAsMCwxLDMtM2gyOC41bTAtMUgxNy45MWE0LDQs MCwwLDAtNCw0VjY0aDM2LjVWNTkuNDlhNCw0LDAsMCwwLTQtNFoiLz48cGF0aCBjbGFzcz0iY2xz LTIiIGQ9Ik0yMi4yNyw1NS45bC0xLjg1LTUuNDhhLjExLjExLDAsMCwxLC4wOS0uMDVoMjMuM2Eu MTEuMTEsMCwwLDEsLjA5LjA1TDQyLjA1LDU1LjlaIi8+PHBhdGggY2xhc3M9ImNscy0zIiBkPSJN NDMuMjIsNTAuODcsNDEuNjksNTUuNEgyMi42M0wyMS4xLDUwLjg3SDQzLjIybS41OS0xSDIwLjUx YS42LjYsMCwwLDAtLjYuNmwyLDUuOTNoMjAuNWwyLTUuOTNhLjYuNiwwLDAsMC0uNi0uNloiLz48 cGF0aCBjbGFzcz0iY2xzLTIiIGQ9Ik0zMi4wOCw2MS4wNmExLjM5LDEuMzksMCwxLDEsMS4zOC0x LjM4QTEuMzgsMS4zOCwwLDAsMSwzMi4wOCw2MS4wNloiLz48cGF0aCBjbGFzcz0iY2xzLTMiIGQ9 Ik0zMi4wOCw1OC43OWEuODkuODksMCwxLDEtLjg5Ljg5Ljg5Ljg5LDAsMCwxLC44OS0uODltMC0x QTEuODksMS44OSwwLDEsMCwzNCw1OS42OGExLjg5LDEuODksMCwwLDAtMS44OC0xLjg5WiIvPjxs aW5lIGNsYXNzPSJjbHMtNCIgeDE9IjIxLjE3IiB5MT0iNTIuMjgiIHgyPSIyOC4yOSIgeTI9IjUy LjI4Ii8+PGxpbmUgY2xhc3M9ImNscy00IiB4MT0iMjEuODMiIHkxPSI1NC4wOCIgeDI9IjM0LjY5 IiB5Mj0iNTQuMDgiLz48L2c+PGcgaWQ9ImV4X2FwcGVuZCI+PHBhdGggY2xhc3M9ImNscy01IiBk PSJNMjIuMDYsMjMuODdINDJhMCwwLDAsMCwxLDAsMHYzYTEsMSwwLDAsMS0xLDFIMjMuMDZhMSwx LDAsMCwxLTEtMXYtM0EwLDAsMCwwLDEsMjIuMDYsMjMuODdaIi8+PHJlY3QgY2xhc3M9ImNscy01 IiB4PSIyNy4wNyIgeT0iMjMuODciIHdpZHRoPSI1IiBoZWlnaHQ9IjQiLz48cmVjdCBjbGFzcz0i Y2xzLTUiIHg9IjMyLjAzIiB5PSIyMy44NyIgd2lkdGg9IjUiIGhlaWdodD0iNCIvPjxwYXRoIGNs YXNzPSJjbHMtNSIgZD0iTTIzLjA2LDIwLjEzSDQxYTEsMSwwLDAsMSwxLDF2M2EwLDAsMCwwLDEs MCwwSDIyLjA2YTAsMCwwLDAsMSwwLDB2LTNBMSwxLDAsMCwxLDIzLjA2LDIwLjEzWiIvPjxyZWN0 IGNsYXNzPSJjbHMtNSIgeD0iMjcuMDciIHk9IjIwLjEzIiB3aWR0aD0iNSIgaGVpZ2h0PSI0Ii8+ PHJlY3QgY2xhc3M9ImNscy01IiB4PSIzMi4wMyIgeT0iMjAuMTMiIHdpZHRoPSI1IiBoZWlnaHQ9 IjQiLz48L2c+PC9zdmc+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEv d2ViL3BnYWRtaW4vc3RhdGljL2pzL0V4cGxhaW4vaW1nL2V4X3JlY3Vyc2l2ZV91bmlvbi5zdmcg Yi93ZWIvcGdhZG1pbi9zdGF0aWMvanMvRXhwbGFpbi9pbWcvZXhfcmVjdXJzaXZlX3VuaW9uLnN2 ZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAuLmZiNWUyZTQwMgotLS0gL2Rl di9udWxsCisrKyBiL3dlYi9wZ2FkbWluL3N0YXRpYy9qcy9FeHBsYWluL2ltZy9leF9yZWN1cnNp dmVfdW5pb24uc3ZnCkBAIC0wLDAgKzEgQEAKKzxzdmcgaWQ9Il8xIiBkYXRhLW5hbWU9IjEiIHht bG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDY0IDY0Ij48ZGVm cz48c3R5bGU+LmNscy0xe2ZpbGw6IzM0NDk1ZTtzdHJva2U6IzUyOGQxOTtzdHJva2UtbWl0ZXJs aW1pdDoxMDt9LmNscy0ye2ZpbGw6I2QzZDRmMzt9LmNscy0ze2ZpbGw6IzY2NmJkMTt9LmNscy00 e2ZpbGw6I2FkZGZmMzt9LmNscy01e2ZpbGw6IzI5ODBiOTt9LmNscy02LC5jbHMtOXtmaWxsOm5v bmU7c3Ryb2tlLWxpbmVqb2luOnJvdW5kO29wYWNpdHk6MC44O30uY2xzLTZ7c3Ryb2tlOiM2NjZi ZDE7fS5jbHMtN3tmaWxsOiNmMGVjYjY7fS5jbHMtOHtmaWxsOiNjMThmMzU7fS5jbHMtOXtzdHJv a2U6I2MxOGYzNTt9PC9zdHlsZT48L2RlZnM+PHRpdGxlPmV4X3JlY3Vyc2l2ZV91bmlvbjwvdGl0 bGU+PHBhdGggY2xhc3M9ImNscy0xIiBkPSJNNC41OSwyNS4yMUE5LjI4LDkuMjgsMCwwLDEsNC43 LDI0LDIuNzYsMi43NiwwLDAsMSw1LDIzLjE4YTIuMzcsMi4zNywwLDAsMSwuNDQtLjZBMi41Mywy LjUzLDAsMCwxLDYsMjIuMTJhNCw0LDAsMCwxLC42NC0uMjcsMy41LDMuNSwwLDAsMSwuNi0uMTNj LjE5LDAsLjE5LS4xLDAtLjEyYTMuNTIsMy41MiwwLDAsMS0uNi0uMTNBMy42NSwzLjY1LDAsMCwx LDYsMjEuMmEyLjUyLDIuNTIsMCwwLDEtLjYyLS40NiwyLjQxLDIuNDEsMCwwLDEtLjQ0LS42LDIu NzcsMi43NywwLDAsMS0uMjYtLjgzLDkuMzEsOS4zMSwwLDAsMS0uMTEtMS4yYzAtLjQ3LjUuNzcu NTgsMS4xOGEyLjM3LDIuMzcsMCwwLDAsLjQ3LDEuMDYsMi42NSwyLjY1LDAsMCwwLDEsLjczLjY5 LjY5LDAsMCwxLDAsMS4xNywyLjY2LDIuNjYsMCwwLDAtMSwuNzNBMi4zOSwyLjM5LDAsMCwwLDUu MTcsMjRDNS4wOSwyNC40NCw0LjU3LDI1LjY4LDQuNTksMjUuMjFaIi8+PHBhdGggY2xhc3M9ImNs cy0xIiBkPSJNNC41OSw0OS4zNmE5LjI4LDkuMjgsMCwwLDEsLjExLTEuMkEyLjc2LDIuNzYsMCww LDEsNSw0Ny4zM2EyLjM3LDIuMzcsMCwwLDEsLjQ0LS42QTIuNTMsMi41MywwLDAsMSw2LDQ2LjI3 LDQsNCwwLDAsMSw2LjY1LDQ2YTMuNSwzLjUsMCwwLDEsLjYtLjEzYy4xOSwwLC4xOS0uMSwwLS4x MmEzLjUyLDMuNTIsMCwwLDEtLjYtLjEzQTMuNjUsMy42NSwwLDAsMSw2LDQ1LjM1YTIuNTIsMi41 MiwwLDAsMS0uNjItLjQ2LDIuNDEsMi40MSwwLDAsMS0uNDQtLjYsMi43NywyLjc3LDAsMCwxLS4y Ni0uODMsOS4zMSw5LjMxLDAsMCwxLS4xMS0xLjJjMC0uNDcuNS43Ny41OCwxLjE4YTIuMzcsMi4z NywwLDAsMCwuNDcsMS4wNiwyLjY1LDIuNjUsMCwwLDAsMSwuNzMuNjkuNjksMCwwLDEsMCwxLjE3 LDIuNjYsMi42NiwwLDAsMC0xLC43MywyLjM5LDIuMzksMCwwLDAtLjQ3LDEuMDZDNS4wOSw0OC41 OSw0LjU3LDQ5LjgzLDQuNTksNDkuMzZaIi8+PHBhdGggY2xhc3M9ImNscy0xIiBkPSJNMjkuMiw0 MS4zNmE0LjQyLDQuNDIsMCwwLDAsMi4wNS0uNTEsMi44MSwyLjgxLDAsMCwwLDEuMDYtMS4wOCwz LjU5LDMuNTksMCwwLDAsLjQtMS40cS4wNi0uNzUuMDYtMS40NnYuMzVjMC0uNjgsMC0xLjI1LDAt MS43MmE5LjI4LDkuMjgsMCwwLDEsLjExLTEuMiwyLjc2LDIuNzYsMCwwLDEsLjI2LS44MywyLjM3 LDIuMzcsMCwwLDEsLjQ0LS42LDIuNTMsMi41MywwLDAsMSwuNjItLjQ2LDQsNCwwLDAsMSwuNjQt LjI3LDMuNSwzLjUsMCwwLDEsLjYtLjEzYy4xOSwwLC4xOS0uMSwwLS4xMmEzLjUyLDMuNTIsMCww LDEtLjYtLjEzLDMuNjUsMy42NSwwLDAsMS0uNjQtLjI3LDIuNTIsMi41MiwwLDAsMS0uNjItLjQ2 LDIuNDEsMi40MSwwLDAsMS0uNDQtLjYsMi43NywyLjc3LDAsMCwxLS4yNi0uODMsOS4zMSw5LjMx LDAsMCwxLS4xMS0xLjJxMC0uNzEsMC0xLjczdi4zNmMwLS40NywwLTEtLjA2LTEuNDZhMy41OCwz LjU4LDAsMCwwLS40LTEuNCwyLjgyLDIuODIsMCwwLDAtMS4wNi0xLjA4LDQuNDcsNC40NywwLDAs MC0yLjA1LS41MVYyMi4ybC41MywwYTQuMTEsNC4xMSwwLDAsMSwuNjcuMTEsNS4xMiw1LjEyLDAs MCwxLC43Mi4yMywyLjg5LDIuODksMCwwLDEsLjcuNDEsMy4zNCwzLjM0LDAsMCwxLC44My45QTMu NjYsMy42NiwwLDAsMSwzMy4wOCwyNWE3LDcsMCwwLDEsLjE2LDEuMjljMCwuNDcsMCwxLjg4LDAs MS44OGE3LjksNy45LDAsMCwwLC4xMiwxLjUsMi4zNywyLjM3LDAsMCwwLC40NywxLjA2LDIuNjUs Mi42NSwwLDAsMCwxLC43My42OS42OSwwLDAsMSwwLDEuMTcsMi42NiwyLjY2LDAsMCwwLTEsLjcz LDIuMzksMi4zOSwwLDAsMC0uNDcsMS4wNiw3LjksNy45LDAsMCwwLS4xMiwxLjVzLS4wOSwyLjc4 LS4xOCwzLjE3YTMuNjUsMy42NSwwLDAsMS0uNDMsMS4wNywzLjMxLDMuMzEsMCwwLDEtLjgzLjks Mi45LDIuOSwwLDAsMS0uNy40MSw1LjM5LDUuMzksMCwwLDEtLjcyLjIzLDQuMzQsNC4zNCwwLDAs MS0uNjcuMTFsLS41MywwWiIvPjxwYXRoIGNsYXNzPSJjbHMtMiIgZD0iTTEyLjI3LDI5LjMxYy0x LjM3LDAtMS41LS4xMy0xLjUtMS41VjE2LjMxaDcuMjh2MTNaIi8+PHBhdGggY2xhc3M9ImNscy0z IiBkPSJNMTcuNTUsMTYuODF2MTJIMTIuMjdhMy4yNSwzLjI1LDAsMCwxLS45LS4wOGgwYTIuMTgs Mi4xOCwwLDAsMS0uMS0uOTJ2LTExaDYuMjhtMS0xSDEwLjI3djEyYzAsMS42NS4zNSwyLDIsMmg2 LjI4di0xNFoiLz48cGF0aCBjbGFzcz0iY2xzLTIiIGQ9Ik0xOCwyOS4zMXYtMTNoNy4yOHYxMS41 YzAsMS4zNy0uMTMsMS41LTEuNSwxLjVaIi8+PHBhdGggY2xhc3M9ImNscy0zIiBkPSJNMjQuODIs MTYuODF2MTFhMy4yOCwzLjI4LDAsMCwxLS4wOC45LDIuMTgsMi4xOCwwLDAsMS0uOTIuMUgxOC41 NHYtMTJoNi4yOG0xLTFIMTcuNTR2MTRoNi4yOGMxLjY1LDAsMi0uMzUsMi0ydi0xMloiLz48cGF0 aCBjbGFzcz0iY2xzLTQiIGQ9Ik0xMC43NywxNi4zMXYtNC41YzAtMS4zNy4xMy0xLjUsMS41LTEu NWg1Ljc4djZaIi8+PHBhdGggY2xhc3M9ImNscy01IiBkPSJNMTcuNTUsMTAuODF2NUgxMS4yN3Yt NGEzLjI4LDMuMjgsMCwwLDEsLjA4LS45LDIuMTgsMi4xOCwwLDAsMSwuOTItLjFoNS4yOG0xLTFI MTIuMjdjLTEuNjUsMC0yLC4zNS0yLDJ2NWg4LjI4di03WiIvPjxwYXRoIGNsYXNzPSJjbHMtNCIg ZD0iTTE4LDE2LjMxdi02aDUuNzhjMS4zNywwLDEuNS4xMywxLjUsMS41djQuNVoiLz48cGF0aCBj bGFzcz0iY2xzLTUiIGQ9Ik0yMy44MiwxMC44MWEzLjI1LDMuMjUsMCwwLDEsLjkuMDhoMGEyLjE4 LDIuMTgsMCwwLDEsLjEuOTJ2NEgxOC41NHYtNWg1LjI4bTAtMUgxNy41NHY3aDguMjh2LTVjMC0x LjY1LS4zNS0yLTItMloiLz48bGluZSBjbGFzcz0iY2xzLTYiIHgxPSIxNy44IiB5MT0iMjIuNjYi IHgyPSIyNS4yOSIgeTI9IjIyLjY2Ii8+PGxpbmUgY2xhc3M9ImNscy02IiB4MT0iMTAuOCIgeTE9 IjIyLjY2IiB4Mj0iMTcuNTQiIHkyPSIyMi42NiIvPjxwYXRoIGNsYXNzPSJjbHMtNyIgZD0iTTEy LjI3LDUzLjQ2Yy0xLjM3LDAtMS41LS4xMy0xLjUtMS41VjQwLjQ2aDcuMjh2MTNaIi8+PHBhdGgg Y2xhc3M9ImNscy04IiBkPSJNMTcuNTUsNDFWNTNIMTIuMjdhMy4yNSwzLjI1LDAsMCwxLS45LS4w OGgwYTIuMTgsMi4xOCwwLDAsMS0uMS0uOTJWNDFoNi4yOG0xLTFIMTAuMjdWNTJjMCwxLjY1LjM1 LDIsMiwyaDYuMjhWNDBaIi8+PHBhdGggY2xhc3M9ImNscy03IiBkPSJNMTgsNTMuNDZ2LTEzaDcu MjhWNTJjMCwxLjM3LS4xMywxLjUtMS41LDEuNVoiLz48cGF0aCBjbGFzcz0iY2xzLTgiIGQ9Ik0y NC44Miw0MVY1MmEzLjI4LDMuMjgsMCwwLDEtLjA4LjksMi4xOCwyLjE4LDAsMCwxLS45Mi4xSDE4 LjU0VjQxaDYuMjhtMS0xSDE3LjU0VjU0aDYuMjhjMS42NSwwLDItLjM1LDItMlY0MFoiLz48cGF0 aCBjbGFzcz0iY2xzLTQiIGQ9Ik0xMC43Nyw0MC40NlYzNmMwLTEuMzcuMTMtMS41LDEuNS0xLjVo NS43OHY2WiIvPjxwYXRoIGNsYXNzPSJjbHMtNSIgZD0iTTE3LjU1LDM1djVIMTEuMjdWMzZhMy4y OCwzLjI4LDAsMCwxLC4wOC0uOSwyLjE4LDIuMTgsMCwwLDEsLjkyLS4xaDUuMjhtMS0xSDEyLjI3 Yy0xLjY1LDAtMiwuMzUtMiwydjVoOC4yOFYzNFoiLz48cGF0aCBjbGFzcz0iY2xzLTQiIGQ9Ik0x OCw0MC40NnYtNmg1Ljc4YzEuMzcsMCwxLjUuMTMsMS41LDEuNXY0LjVaIi8+PHBhdGggY2xhc3M9 ImNscy01IiBkPSJNMjMuODIsMzVhMy4yNSwzLjI1LDAsMCwxLC45LjA4aDBhMi4xOCwyLjE4LDAs MCwxLC4xLjkydjRIMTguNTRWMzVoNS4yOG0wLTFIMTcuNTR2N2g4LjI4VjM2YzAtMS42NS0uMzUt Mi0yLTJaIi8+PGxpbmUgY2xhc3M9ImNscy05IiB4MT0iMTcuOCIgeTE9IjQ2LjgxIiB4Mj0iMjUu MjkiIHkyPSI0Ni44MSIvPjxsaW5lIGNsYXNzPSJjbHMtOSIgeDE9IjEwLjgiIHkxPSI0Ni44MSIg eDI9IjE3LjU0IiB5Mj0iNDYuODEiLz48cGF0aCBjbGFzcz0iY2xzLTEiIGQ9Ik01Ni42MSwzNS41 NWE5LjI4LDkuMjgsMCwwLDEsLjExLTEuMiwyLjc2LDIuNzYsMCwwLDEsLjI2LS44MywyLjM3LDIu MzcsMCwwLDEsLjQ0LS42LDIuNTMsMi41MywwLDAsMSwuNjItLjQ2LDQsNCwwLDAsMSwuNjQtLjI3 LDMuNSwzLjUsMCwwLDEsLjYtLjEzYy4xOSwwLC4xOS0uMSwwLS4xMmEzLjUyLDMuNTIsMCwwLDEt LjYtLjEzLDMuNjUsMy42NSwwLDAsMS0uNjQtLjI3LDIuNTIsMi41MiwwLDAsMS0uNjItLjQ2LDIu NDEsMi40MSwwLDAsMS0uNDQtLjYsMi43NywyLjc3LDAsMCwxLS4yNi0uODMsOS4zMSw5LjMxLDAs MCwxLS4xMS0xLjJjMC0uNDcuNS43Ny41OCwxLjE4YTIuMzcsMi4zNywwLDAsMCwuNDcsMS4wNiwy LjY1LDIuNjUsMCwwLDAsMSwuNzMuNjkuNjksMCwwLDEsMCwxLjE3LDIuNjYsMi42NiwwLDAsMC0x LC43MywyLjM5LDIuMzksMCwwLDAtLjQ3LDEuMDZDNTcuMTEsMzQuNzgsNTYuNiwzNiw1Ni42MSwz NS41NVoiLz48cmVjdCBjbGFzcz0iY2xzLTIiIHg9IjM5LjE3IiB5PSIyMS40IiB3aWR0aD0iNy4y OCIgaGVpZ2h0PSIxMyIvPjxwYXRoIGNsYXNzPSJjbHMtMyIgZD0iTTQ1Ljk1LDIxLjl2MTJIMzku Njd2LTEyaDYuMjhtMS0xSDM4LjY3djE0aDguMjh2LTE0WiIvPjxyZWN0IGNsYXNzPSJjbHMtMiIg eD0iNDYuNDQiIHk9IjIxLjQiIHdpZHRoPSI3LjI4IiBoZWlnaHQ9IjEzIi8+PHBhdGggY2xhc3M9 ImNscy0zIiBkPSJNNTMuMjIsMjEuOXYxMkg0Ni45M3YtMTJoNi4yOG0xLTFINDUuOTN2MTRoOC4y OHYtMTRaIi8+PHBhdGggY2xhc3M9ImNscy00IiBkPSJNMzkuMTcsMjEuNFYxNi45YzAtMS4zNy4x My0xLjUsMS41LTEuNWg1Ljc4djZaIi8+PHBhdGggY2xhc3M9ImNscy01IiBkPSJNNDUuOTUsMTUu OXY1SDM5LjY3di00YTMuMjgsMy4yOCwwLDAsMSwuMDgtLjksMi4xOCwyLjE4LDAsMCwxLC45Mi0u MWg1LjI4bTEtMUg0MC42N2MtMS42NSwwLTIsLjM1LTIsMnY1SDQ3di03WiIvPjxwYXRoIGNsYXNz PSJjbHMtNCIgZD0iTTQ2LjQ0LDIxLjR2LTZoNS43OGMxLjM3LDAsMS41LjEzLDEuNSwxLjV2NC41 WiIvPjxwYXRoIGNsYXNzPSJjbHMtNSIgZD0iTTUyLjIyLDE1LjlhMy4yNSwzLjI1LDAsMCwxLC45 LjA4aDBhMi4xOCwyLjE4LDAsMCwxLC4xLjkydjRINDYuOTR2LTVoNS4yOG0wLTFINDUuOTR2N2g4 LjI4di01YzAtMS42NS0uMzUtMi0yLTJaIi8+PGxpbmUgY2xhc3M9ImNscy02IiB4MT0iNDYuMiIg eTE9IjI3Ljc1IiB4Mj0iNTMuNjkiIHkyPSIyNy43NSIvPjxsaW5lIGNsYXNzPSJjbHMtNiIgeDE9 IjM5LjIiIHkxPSIyNy43NSIgeDI9IjQ1LjkzIiB5Mj0iMjcuNzUiLz48cGF0aCBjbGFzcz0iY2xz LTciIGQ9Ik00MC42Nyw0Ny4zOGMtMS4zNywwLTEuNS0uMTMtMS41LTEuNVYzNC4zOGg3LjI4djEz WiIvPjxwYXRoIGNsYXNzPSJjbHMtOCIgZD0iTTQ1Ljk1LDM0Ljg4djEySDQwLjY3YTMuMjUsMy4y NSwwLDAsMS0uOS0uMDhoMGEyLjE4LDIuMTgsMCwwLDEtLjEtLjkydi0xMWg2LjI4bTEtMUgzOC42 N3YxMmMwLDEuNjUuMzUsMiwyLDJoNi4yOHYtMTRaIi8+PHBhdGggY2xhc3M9ImNscy03IiBkPSJN NDYuNDQsNDcuMzh2LTEzaDcuMjh2MTEuNWMwLDEuMzctLjEzLDEuNS0xLjUsMS41WiIvPjxwYXRo IGNsYXNzPSJjbHMtOCIgZD0iTTUzLjIyLDM0Ljg4djExYTMuMjgsMy4yOCwwLDAsMS0uMDguOSwy LjE4LDIuMTgsMCwwLDEtLjkyLjFINDYuOTN2LTEyaDYuMjhtMS0xSDQ1LjkzdjE0aDYuMjhjMS42 NSwwLDItLjM1LDItMnYtMTJaIi8+PGxpbmUgY2xhc3M9ImNscy05IiB4MT0iNDYuMiIgeTE9IjQw LjczIiB4Mj0iNTMuNjkiIHkyPSI0MC43MyIvPjxsaW5lIGNsYXNzPSJjbHMtOSIgeDE9IjM5LjIi IHkxPSI0MC43MyIgeDI9IjQ1LjkzIiB5Mj0iNDAuNzMiLz48L3N2Zz4KXCBObyBuZXdsaW5lIGF0 IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9zdGF0aWMvanMvRXhwbGFpbi9p bWcvZXhfcmVkaXN0cmlidXRlX21vdGlvbi5zdmcgYi93ZWIvcGdhZG1pbi9zdGF0aWMvanMvRXhw bGFpbi9pbWcvZXhfcmVkaXN0cmlidXRlX21vdGlvbi5zdmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMDAwLi5kZDdkOTUzNTMKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1p bi9zdGF0aWMvanMvRXhwbGFpbi9pbWcvZXhfcmVkaXN0cmlidXRlX21vdGlvbi5zdmcKQEAgLTAs MCArMSBAQAorPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9 IjAgMCA2NCA2NCI+PGRlZnM+PHN0eWxlPi5jbHMtMXtmaWxsOiNmM2M3ZDc7fS5jbHMtMntmaWxs OiNkMDQ0NjU7fS5jbHMtM3tmaWxsOm5vbmU7c3Ryb2tlOiMyOTgwYjk7c3Ryb2tlLWxpbmVjYXA6 cm91bmQ7c3Ryb2tlLWxpbmVqb2luOnJvdW5kO30uY2xzLTR7ZmlsbDojMjk4MGI5O30uY2xzLTV7 ZmlsbDojYWRkZmYzO308L3N0eWxlPjwvZGVmcz48dGl0bGU+ZXhfcmVkaXN0cmlidXRlX21vdGlv bjwvdGl0bGU+PGcgaWQ9ImV4X2RlbGV0ZSI+PHJlY3QgY2xhc3M9ImNscy0xIiB4PSI0Ny4xOSIg eT0iNDUuNDMiIHdpZHRoPSI5IiBoZWlnaHQ9IjkiIHJ4PSIwLjUiIHJ5PSIwLjUiLz48cGF0aCBj bGFzcz0iY2xzLTIiIGQ9Ik01NS42OSw0NS45M3Y4aC04di04aDhtMC0xaC04YTEsMSwwLDAsMC0x LDF2OGExLDEsMCwwLDAsMSwxaDhhMSwxLDAsMCwwLDEtMXYtOGExLDEsMCwwLDAtMS0xWiIvPjxy ZWN0IGNsYXNzPSJjbHMtMSIgeD0iNy44MSIgeT0iNDUuNDMiIHdpZHRoPSI5IiBoZWlnaHQ9Ijki IHJ4PSIwLjUiIHJ5PSIwLjUiLz48cGF0aCBjbGFzcz0iY2xzLTIiIGQ9Ik0xNi4zMSw0NS45M3Y4 aC04di04aDhtMC0xaC04YTEsMSwwLDAsMC0xLDF2OGExLDEsMCwwLDAsMSwxaDhhMSwxLDAsMCww LDEtMXYtOGExLDEsMCwwLDAtMS0xWiIvPjxyZWN0IGNsYXNzPSJjbHMtMSIgeD0iMjcuNTEiIHk9 IjkuNTciIHdpZHRoPSI5IiBoZWlnaHQ9IjkiIHJ4PSIwLjUiIHJ5PSIwLjUiLz48cGF0aCBjbGFz cz0iY2xzLTIiIGQ9Ik0zNiwxMC4wN3Y4SDI4di04aDhtMC0xSDI4YTEsMSwwLDAsMC0xLDF2OGEx LDEsMCwwLDAsMSwxaDhhMSwxLDAsMCwwLDEtMXYtOGExLDEsMCwwLDAtMS0xWiIvPjxsaW5lIGNs YXNzPSJjbHMtMyIgeDE9IjIwLjIzIiB5MT0iNDMiIHgyPSIyNC4wMSIgeTI9IjQwLjgyIi8+PHBh dGggY2xhc3M9ImNscy00IiBkPSJNMTguMTQsNDQuMmExMi4wOSwxMi4wOSwwLDAsMSwzLjkxLS4w NmwtMS41NS0xLjMtLjM1LTJBMTIuMDgsMTIuMDgsMCwwLDEsMTguMTQsNDQuMloiLz48bGluZSBj bGFzcz0iY2xzLTMiIHgxPSIzOS45NiIgeTE9IjQxLjAyIiB4Mj0iNDMuNzUiIHkyPSI0My4yIi8+ PHBhdGggY2xhc3M9ImNscy00IiBkPSJNNDUuODQsNDQuNGExMi4wOSwxMi4wOSwwLDAsMC0zLjkx LS4wNkw0My40Nyw0M2wuMzUtMkExMi4wOCwxMi4wOCwwLDAsMCw0NS44NCw0NC40WiIvPjxsaW5l IGNsYXNzPSJjbHMtMyIgeDE9IjMyLjA4IiB5MT0iMjIuNDgiIHgyPSIzMi4wOCIgeTI9IjI2Ljg1 Ii8+PHBhdGggY2xhc3M9ImNscy00IiBkPSJNMzIuMDksMjAuMDdhMTIuMDksMTIuMDksMCwwLDEt MS45MSwzLjQybDEuOS0uNjksMS45LjY5QTEyLjA4LDEyLjA4LDAsMCwxLDMyLjA5LDIwLjA3WiIv PjxjaXJjbGUgY2xhc3M9ImNscy01IiBjeD0iMzIuMDgiIGN5PSIzNS45MyIgcj0iNy41Ii8+PHBh dGggY2xhc3M9ImNscy00IiBkPSJNMzIuMDgsMjguOTNhNyw3LDAsMSwxLTcsNyw3LDcsMCwwLDEs Ny03bTAtMWE4LDgsMCwxLDAsOCw4LDgsOCwwLDAsMC04LThaIi8+PC9nPjwvc3ZnPgpcIE5vIG5l d2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL3N0YXRpYy9qcy9F eHBsYWluL2ltZy9leF9yZXN1bHQuc3ZnIGIvd2ViL3BnYWRtaW4vc3RhdGljL2pzL0V4cGxhaW4v aW1nL2V4X3Jlc3VsdC5zdmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwLi5m OGJiZDBhYjYKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9zdGF0aWMvanMvRXhwbGFp bi9pbWcvZXhfcmVzdWx0LnN2ZwpAQCAtMCwwICsxIEBACis8c3ZnIGlkPSJfMSIgZGF0YS1uYW1l PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2NCA2 NCI+PGRlZnM+PHN0eWxlPi5jbHMtMSwuY2xzLTZ7ZmlsbDojZjBlY2I2O30uY2xzLTJ7ZmlsbDoj YzE4ZjM2O30uY2xzLTN7ZmlsbDojYWRkZmYzO30uY2xzLTR7ZmlsbDojMjk4MGI5O30uY2xzLTV7 b3BhY2l0eTowLjg7fS5jbHMtNntzdHJva2U6IzM0NDk1ZTtzdHJva2UtbWl0ZXJsaW1pdDoxMDt9 PC9zdHlsZT48L2RlZnM+PHRpdGxlPmV4X3Jlc3VsdDwvdGl0bGU+PHBhdGggY2xhc3M9ImNscy0x IiBkPSJNMTAsNTcuNDdjLTEuMzcsMC0xLjUtLjEzLTEuNS0xLjVWMTUuNTNoNDdWNTZjMCwxLjM3 LS4xMywxLjUtMS41LDEuNVoiLz48cGF0aCBjbGFzcz0iY2xzLTIiIGQ9Ik01NSwxNlY1NmEzLjI4 LDMuMjgsMCwwLDEtLjA4LjlBMi4xOCwyLjE4LDAsMCwxLDU0LDU3SDEwYTMuMjUsMy4yNSwwLDAs MS0uOS0uMDhoMEEyLjE3LDIuMTcsMCwwLDEsOSw1NlYxNkg1NW0xLTFIOFY1NmMwLDEuNjUuMzUs MiwyLDJINTRjMS42NSwwLDItLjM1LDItMlYxNVoiLz48cGF0aCBjbGFzcz0iY2xzLTMiIGQ9Ik04 LjUsMTUuNTNWOGMwLTEuMzcuMTMtMS41LDEuNS0xLjVINTRjMS4zNywwLDEuNS4xMywxLjUsMS41 djcuNVoiLz48cGF0aCBjbGFzcz0iY2xzLTQiIGQ9Ik01NCw3YTMuMjUsMy4yNSwwLDAsMSwuOS4w OGgwQTIuMTgsMi4xOCwwLDAsMSw1NSw4djdIOVY4YTMuMjgsMy4yOCwwLDAsMSwuMDgtLjlBMi4x OCwyLjE4LDAsMCwxLDEwLDdINTRtMC0xSDEwQzguMzUsNiw4LDYuMzgsOCw4djhINTZWOGMwLTEu NjUtLjM1LTItMi0yWiIvPjxnIGNsYXNzPSJjbHMtNSI+PGxpbmUgY2xhc3M9ImNscy02IiB4MT0i MTQiIHkxPSIyNS45NyIgeDI9IjIzLjk3IiB5Mj0iMjUuOTciLz48bGluZSBjbGFzcz0iY2xzLTYi IHgxPSIxNCIgeTE9IjM0LjM0IiB4Mj0iMjMuOTciIHkyPSIzNC4zNCIvPjxsaW5lIGNsYXNzPSJj bHMtNiIgeDE9IjE0IiB5MT0iNDIuNzEiIHgyPSIyMy45NyIgeTI9IjQyLjcxIi8+PGxpbmUgY2xh c3M9ImNscy02IiB4MT0iMTQiIHkxPSI1MS4wOCIgeDI9IjIzLjk3IiB5Mj0iNTEuMDgiLz48L2c+ PGcgY2xhc3M9ImNscy01Ij48bGluZSBjbGFzcz0iY2xzLTYiIHgxPSIxNCIgeTE9IjIxLjk3IiB4 Mj0iMjMuOTciIHkyPSIyMS45NyIvPjxsaW5lIGNsYXNzPSJjbHMtNiIgeDE9IjE0IiB5MT0iMzAu MzQiIHgyPSIyMy45NyIgeTI9IjMwLjM0Ii8+PGxpbmUgY2xhc3M9ImNscy02IiB4MT0iMTQiIHkx PSIzOC43MSIgeDI9IjIzLjk3IiB5Mj0iMzguNzEiLz48bGluZSBjbGFzcz0iY2xzLTYiIHgxPSIx NCIgeTE9IjQ3LjA4IiB4Mj0iMjMuOTciIHkyPSI0Ny4wOCIvPjwvZz48ZyBjbGFzcz0iY2xzLTUi PjxsaW5lIGNsYXNzPSJjbHMtNiIgeDE9IjE0IiB5MT0iMTEuMDMiIHgyPSIyMy45NyIgeTI9IjEx LjAzIi8+PC9nPjxnIGNsYXNzPSJjbHMtNSI+PGxpbmUgY2xhc3M9ImNscy02IiB4MT0iMjciIHkx PSIxMS4wMyIgeDI9IjM2Ljk3IiB5Mj0iMTEuMDMiLz48L2c+PGcgY2xhc3M9ImNscy01Ij48bGlu ZSBjbGFzcz0iY2xzLTYiIHgxPSI0MCIgeTE9IjExLjAzIiB4Mj0iNDkuOTciIHkyPSIxMS4wMyIv PjwvZz48ZyBjbGFzcz0iY2xzLTUiPjxsaW5lIGNsYXNzPSJjbHMtNiIgeDE9IjI3IiB5MT0iMjUu OTciIHgyPSIzNi45NyIgeTI9IjI1Ljk3Ii8+PGxpbmUgY2xhc3M9ImNscy02IiB4MT0iMjciIHkx PSIzNC4zNCIgeDI9IjM2Ljk3IiB5Mj0iMzQuMzQiLz48bGluZSBjbGFzcz0iY2xzLTYiIHgxPSIy NyIgeTE9IjQyLjcxIiB4Mj0iMzYuOTciIHkyPSI0Mi43MSIvPjxsaW5lIGNsYXNzPSJjbHMtNiIg eDE9IjI3IiB5MT0iNTEuMDgiIHgyPSIzNi45NyIgeTI9IjUxLjA4Ii8+PC9nPjxnIGNsYXNzPSJj bHMtNSI+PGxpbmUgY2xhc3M9ImNscy02IiB4MT0iMjciIHkxPSIyMS45NyIgeDI9IjM2Ljk3IiB5 Mj0iMjEuOTciLz48bGluZSBjbGFzcz0iY2xzLTYiIHgxPSIyNyIgeTE9IjMwLjM0IiB4Mj0iMzYu OTciIHkyPSIzMC4zNCIvPjxsaW5lIGNsYXNzPSJjbHMtNiIgeDE9IjI3IiB5MT0iMzguNzEiIHgy PSIzNi45NyIgeTI9IjM4LjcxIi8+PGxpbmUgY2xhc3M9ImNscy02IiB4MT0iMjciIHkxPSI0Ny4w OCIgeDI9IjM2Ljk3IiB5Mj0iNDcuMDgiLz48L2c+PGcgY2xhc3M9ImNscy01Ij48bGluZSBjbGFz cz0iY2xzLTYiIHgxPSI0MCIgeTE9IjI1Ljk3IiB4Mj0iNDkuOTciIHkyPSIyNS45NyIvPjxsaW5l IGNsYXNzPSJjbHMtNiIgeDE9IjQwIiB5MT0iMzQuMzQiIHgyPSI0OS45NyIgeTI9IjM0LjM0Ii8+ PGxpbmUgY2xhc3M9ImNscy02IiB4MT0iNDAiIHkxPSI0Mi43MSIgeDI9IjQ5Ljk3IiB5Mj0iNDIu NzEiLz48bGluZSBjbGFzcz0iY2xzLTYiIHgxPSI0MCIgeTE9IjUxLjA4IiB4Mj0iNDkuOTciIHky PSI1MS4wOCIvPjwvZz48ZyBjbGFzcz0iY2xzLTUiPjxsaW5lIGNsYXNzPSJjbHMtNiIgeDE9IjQw IiB5MT0iMjEuOTciIHgyPSI0OS45NyIgeTI9IjIxLjk3Ii8+PGxpbmUgY2xhc3M9ImNscy02IiB4 MT0iNDAiIHkxPSIzMC4zNCIgeDI9IjQ5Ljk3IiB5Mj0iMzAuMzQiLz48bGluZSBjbGFzcz0iY2xz LTYiIHgxPSI0MCIgeTE9IjM4LjcxIiB4Mj0iNDkuOTciIHkyPSIzOC43MSIvPjxsaW5lIGNsYXNz PSJjbHMtNiIgeDE9IjQwIiB5MT0iNDcuMDgiIHgyPSI0OS45NyIgeTI9IjQ3LjA4Ii8+PC9nPjwv c3ZnPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWlu L3N0YXRpYy9qcy9FeHBsYWluL2ltZy9leF9zY2FuLnN2ZyBiL3dlYi9wZ2FkbWluL3N0YXRpYy9q cy9FeHBsYWluL2ltZy9leF9zY2FuLnN2ZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwMDAuLmZlMzIxNjEwNQotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL3N0YXRpYy9q cy9FeHBsYWluL2ltZy9leF9zY2FuLnN2ZwpAQCAtMCwwICsxIEBACis8c3ZnIGlkPSJfMSIgZGF0 YS1uYW1lPSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAg MCA2NCA2NCI+PGRlZnM+PHN0eWxlPi5jbHMtMSwuY2xzLTIsLmNscy04e2ZpbGw6IzI5ODBiOTt9 LmNscy0xLC5jbHMtMntzdHJva2U6IzI5ODBiOTtzdHJva2UtbGluZWpvaW46cm91bmQ7fS5jbHMt MntzdHJva2UtbGluZWNhcDpyb3VuZDtzdHJva2Utd2lkdGg6MnB4O30uY2xzLTMsLmNscy02e2Zp bGw6I2YwZWNiNjt9LmNscy00e2ZpbGw6I2MxOGYzNjt9LmNscy01e29wYWNpdHk6MC44O30uY2xz LTZ7c3Ryb2tlOiNjMThmMzY7c3Ryb2tlLW1pdGVybGltaXQ6MTA7fS5jbHMtN3tmaWxsOiNhZGRm ZjM7fTwvc3R5bGU+PC9kZWZzPjx0aXRsZT5leF9zY2FuPC90aXRsZT48cG9seWdvbiBjbGFzcz0i Y2xzLTEiIHBvaW50cz0iOS4wNiA1MC43OCA1LjU4IDQ2LjE0IDEyLjU0IDQ2LjE0IDkuMDYgNTAu NzgiLz48bGluZSBjbGFzcz0iY2xzLTIiIHgxPSI5LjA2IiB5MT0iNDYuNzciIHgyPSI5LjA2IiB5 Mj0iMTUuOCIvPjxwYXRoIGNsYXNzPSJjbHMtMyIgZD0iTTE4LjQzLDU3LjQ3Yy0xLjM4LDAtMS41 LS4xMi0xLjUtMS41VjE1LjUzaDQxVjU2YzAsMS4zOC0uMTIsMS41LTEuNSwxLjVaIi8+PHBhdGgg Y2xhc3M9ImNscy00IiBkPSJNNTcuNDEsMTZWNTZhMy43MSwzLjcxLDAsMCwxLS4wNy45LDIuMTYs Mi4xNiwwLDAsMS0uOTMuMWgtMzhhMy41NCwzLjU0LDAsMCwxLS45LS4wN2gwYTIuMTYsMi4xNiww LDAsMS0uMS0uOTNWMTZoNDBtMS0xaC00MlY1NmMwLDEuNjUuMzUsMiwyLDJoMzhjMS42NSwwLDIt LjM1LDItMlYxNVoiLz48ZyBjbGFzcz0iY2xzLTUiPjxsaW5lIGNsYXNzPSJjbHMtNiIgeDE9IjI1 LjEzIiB5MT0iNTYuOTciIHgyPSIyNS4xMyIgeTI9IjE1Ljk3Ii8+PGxpbmUgY2xhc3M9ImNscy02 IiB4MT0iNDEuNTIiIHkxPSI1Ni45NyIgeDI9IjQxLjUyIiB5Mj0iMTUuOTciLz48bGluZSBjbGFz cz0iY2xzLTYiIHgxPSIzMy4zMiIgeTE9IjU2Ljk3IiB4Mj0iMzMuMzIiIHkyPSIxNS45NyIvPjxs aW5lIGNsYXNzPSJjbHMtNiIgeDE9IjQ5LjcyIiB5MT0iNTYuOTciIHgyPSI0OS43MiIgeTI9IjE1 Ljk3Ii8+PGxpbmUgY2xhc3M9ImNscy02IiB4MT0iMTcuNDIiIHkxPSIyMy45NyIgeDI9IjU3LjQi IHkyPSIyMy45NyIvPjxsaW5lIGNsYXNzPSJjbHMtNiIgeDE9IjE3LjQyIiB5MT0iMzIuMzQiIHgy PSI1Ny40IiB5Mj0iMzIuMzQiLz48bGluZSBjbGFzcz0iY2xzLTYiIHgxPSIxNy40MiIgeTE9IjQw LjcxIiB4Mj0iNTcuNCIgeTI9IjQwLjcxIi8+PGxpbmUgY2xhc3M9ImNscy02IiB4MT0iMTcuNDIi IHkxPSI0OS4wOCIgeDI9IjU3LjQiIHkyPSI0OS4wOCIvPjwvZz48cGF0aCBjbGFzcz0iY2xzLTci IGQ9Ik00OS43MywxNS41M3YtOWg2LjY5YzEuMzcsMCwxLjUuMTIsMS41LDEuNXY3LjVaIi8+PHBh dGggY2xhc3M9ImNscy04IiBkPSJNNTYuNDIsN2EzLjU0LDMuNTQsMCwwLDEsLjkuMDdoMGEyLjE2 LDIuMTYsMCwwLDEsLjEuOTN2N0g1MC4yM1Y3aDYuMTltMC0xSDQ5LjIzVjE2aDkuMTlWOGMwLTEu NjUtLjM1LTItMi0yWiIvPjxwYXRoIGNsYXNzPSJjbHMtNyIgZD0iTTE2LjkyLDE1LjUzVjhjMC0x LjM4LjEzLTEuNSwxLjUtMS41aDYuN3Y5WiIvPjxwYXRoIGNsYXNzPSJjbHMtOCIgZD0iTTI0LjYy LDd2OGgtNy4yVjhhMy4xOCwzLjE4LDAsMCwxLC4wOC0uOSwyLjA4LDIuMDgsMCwwLDEsLjkyLS4x aDYuMm0xLTFoLTcuMmMtMS42NSwwLTIsLjM1LTIsMnY4aDkuMlY2WiIvPjxyZWN0IGNsYXNzPSJj bHMtNyIgeD0iNDEuNTIiIHk9IjYuNTMiIHdpZHRoPSI4LjE5IiBoZWlnaHQ9IjkiLz48cGF0aCBj bGFzcz0iY2xzLTgiIGQ9Ik00OS4yMSw3djhINDJWN2g3LjE5bTEtMUg0MVYxNmg5LjE5VjZaIi8+ PHJlY3QgY2xhc3M9ImNscy03IiB4PSIzMy4zMyIgeT0iNi41MyIgd2lkdGg9IjguMTkiIGhlaWdo dD0iOSIvPjxwYXRoIGNsYXNzPSJjbHMtOCIgZD0iTTQxLDd2OEgzMy44M1Y3SDQxbTEtMUgzMi44 M1YxNkg0MlY2WiIvPjxyZWN0IGNsYXNzPSJjbHMtNyIgeD0iMjUuMTQiIHk9IjYuNTMiIHdpZHRo PSI4LjE3IiBoZWlnaHQ9IjkiLz48cGF0aCBjbGFzcz0iY2xzLTgiIGQ9Ik0zMi44MSw3djhIMjUu NjRWN2g3LjE3bTEtMUgyNC42NFYxNmg5LjE3VjZaIi8+PC9zdmc+ClwgTm8gbmV3bGluZSBhdCBl bmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vc3RhdGljL2pzL0V4cGxhaW4vaW1n L2V4X3NlZWsuc3ZnIGIvd2ViL3BnYWRtaW4vc3RhdGljL2pzL0V4cGxhaW4vaW1nL2V4X3NlZWsu c3ZnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMC4uNmE3NWE1ZWFiCi0tLSAv ZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vc3RhdGljL2pzL0V4cGxhaW4vaW1nL2V4X3NlZWsu c3ZnCkBAIC0wLDAgKzEgQEAKKzxzdmcgaWQ9Il8xIiBkYXRhLW5hbWU9IjEiIHhtbG5zPSJodHRw Oi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDY0IDY0Ij48ZGVmcz48c3R5bGU+ LmNscy0xLC5jbHMtNHtmaWxsOiNmMGVjYjY7fS5jbHMtMntmaWxsOiNjMThmMzY7fS5jbHMtM3tv cGFjaXR5OjAuODt9LmNscy00e3N0cm9rZTojYzE4ZjM2O3N0cm9rZS1taXRlcmxpbWl0OjEwO30u Y2xzLTV7ZmlsbDojYWRkZmYzO30uY2xzLTZ7ZmlsbDojMjk4MGI5O30uY2xzLTcsLmNscy04e2Zp bGw6IzUyOGQxOTtzdHJva2U6IzUyOGQxOTtzdHJva2UtbGluZWpvaW46cm91bmQ7fS5jbHMtOHtz dHJva2UtbGluZWNhcDpyb3VuZDtzdHJva2Utd2lkdGg6MnB4O30uY2xzLTl7ZmlsbDojMzQ0OTVl O308L3N0eWxlPjwvZGVmcz48dGl0bGU+ZXhfc2VlazwvdGl0bGU+PHBhdGggY2xhc3M9ImNscy0x IiBkPSJNMTgsNTcuNDZjLTEuMzcsMC0xLjUtLjEzLTEuNS0xLjVWMTUuNTJoNDFWNTZjMCwxLjM3 LS4xMywxLjUtMS41LDEuNVoiLz48cGF0aCBjbGFzcz0iY2xzLTIiIGQ9Ik01NywxNlY1NmEzLjI4 LDMuMjgsMCwwLDEtLjA4LjlBMi4xOCwyLjE4LDAsMCwxLDU2LDU3SDE4YTMuMjUsMy4yNSwwLDAs MS0uOS0uMDhoMEEyLjE4LDIuMTgsMCwwLDEsMTcsNTZWMTZINTdtMS0xSDE2VjU2YzAsMS42NS4z NSwyLDIsMkg1NmMxLjY1LDAsMi0uMzUsMi0yVjE1WiIvPjxnIGNsYXNzPSJjbHMtMyI+PGxpbmUg Y2xhc3M9ImNscy00IiB4MT0iMjQuNyIgeTE9IjU2Ljk1IiB4Mj0iMjQuNyIgeTI9IjE1Ljk2Ii8+ PGxpbmUgY2xhc3M9ImNscy00IiB4MT0iNDEuMSIgeTE9IjU2Ljk1IiB4Mj0iNDEuMSIgeTI9IjE1 Ljk2Ii8+PGxpbmUgY2xhc3M9ImNscy00IiB4MT0iMzIuOSIgeTE9IjU2Ljk1IiB4Mj0iMzIuOSIg eTI9IjE1Ljk2Ii8+PGxpbmUgY2xhc3M9ImNscy00IiB4MT0iNDkuMyIgeTE9IjU2Ljk1IiB4Mj0i NDkuMyIgeTI9IjE1Ljk2Ii8+PGxpbmUgY2xhc3M9ImNscy00IiB4MT0iMTciIHkxPSIyMy45NSIg eDI9IjU2Ljk3IiB5Mj0iMjMuOTUiLz48bGluZSBjbGFzcz0iY2xzLTQiIHgxPSIxNyIgeTE9IjMy LjMyIiB4Mj0iNTYuOTciIHkyPSIzMi4zMiIvPjxsaW5lIGNsYXNzPSJjbHMtNCIgeDE9IjE3IiB5 MT0iNDAuNjkiIHgyPSI1Ni45NyIgeTI9IjQwLjY5Ii8+PGxpbmUgY2xhc3M9ImNscy00IiB4MT0i MTciIHkxPSI0OS4wNiIgeDI9IjU2Ljk3IiB5Mj0iNDkuMDYiLz48L2c+PHBhdGggY2xhc3M9ImNs cy01IiBkPSJNNDkuMzEsMTUuNTF2LTlINTZjMS4zNywwLDEuNS4xMywxLjUsMS41djcuNVoiLz48 cGF0aCBjbGFzcz0iY2xzLTYiIGQ9Ik01Niw3YTMuMjUsMy4yNSwwLDAsMSwuOS4wOGgwQTIuMTgs Mi4xOCwwLDAsMSw1Nyw4djdINDkuODFWN0g1Nm0wLTFINDguODFWMTZINThWOGMwLTEuNjUtLjM1 LTItMi0yWiIvPjxwYXRoIGNsYXNzPSJjbHMtNSIgZD0iTTE2LjUxLDE1LjUxVjhjMC0xLjM3LjEz LTEuNSwxLjUtMS41SDI0Ljd2OVoiLz48cGF0aCBjbGFzcz0iY2xzLTYiIGQ9Ik0yNC4yLDd2OEgx N1Y4YTMuMjgsMy4yOCwwLDAsMSwuMDgtLjlBMi4xOCwyLjE4LDAsMCwxLDE4LDdIMjQuMm0xLTFI MThjLTEuNjUsMC0yLC4zNS0yLDJ2OEgyNS4yVjZaIi8+PHJlY3QgY2xhc3M9ImNscy01IiB4PSI0 MS4xIiB5PSI2LjUxIiB3aWR0aD0iOC4xOSIgaGVpZ2h0PSI5Ii8+PHBhdGggY2xhc3M9ImNscy02 IiBkPSJNNDguNzksN3Y4SDQxLjZWN2g3LjE4bTEtMUg0MC42MVYxNmg5LjE5VjZaIi8+PHJlY3Qg Y2xhc3M9ImNscy01IiB4PSIzMi45MSIgeT0iNi41MSIgd2lkdGg9IjguMTkiIGhlaWdodD0iOSIv PjxwYXRoIGNsYXNzPSJjbHMtNiIgZD0iTTQwLjYsN3Y4SDMzLjQxVjdINDAuNm0xLTFIMzIuNDJW MTZINDEuNlY2WiIvPjxyZWN0IGNsYXNzPSJjbHMtNSIgeD0iMjQuNzIiIHk9IjYuNTEiIHdpZHRo PSI4LjE3IiBoZWlnaHQ9IjkiLz48cGF0aCBjbGFzcz0iY2xzLTYiIGQ9Ik0zMi40LDd2OEgyNS4y MlY3SDMyLjRtMS0xSDI0LjIyVjE2SDMzLjRWNloiLz48cG9seWdvbiBjbGFzcz0iY2xzLTciIHBv aW50cz0iMTQuOTEgNTMuMSAxMS41MyA1MC41NyAxMS41MyA1NS42MyAxNC45MSA1My4xIi8+PGxp bmUgY2xhc3M9ImNscy04IiB4MT0iMTEuMjUiIHkxPSI1My4xIiB4Mj0iNC4xNCIgeTI9IjUzLjEi Lz48cG9seWdvbiBjbGFzcz0iY2xzLTciIHBvaW50cz0iMTQuOTEgMzYuMjkgMTEuNTMgMzMuNzYg MTEuNTMgMzguODIgMTQuOTEgMzYuMjkiLz48bGluZSBjbGFzcz0iY2xzLTgiIHgxPSIxMS4yNSIg eTE9IjM2LjI5IiB4Mj0iNC4xNCIgeTI9IjM2LjI5Ii8+PGxpbmUgY2xhc3M9ImNscy04IiB4MT0i NCIgeTE9IjE1LjY2IiB4Mj0iNCIgeTI9IjUzLjEiLz48cmVjdCBjbGFzcz0iY2xzLTkiIHg9IjE3 Ljk5IiB5PSIzMy43NyIgd2lkdGg9IjUuMjIiIGhlaWdodD0iNS40NCIvPjxyZWN0IGNsYXNzPSJj bHMtOSIgeD0iMTcuOTkiIHk9IjUwLjU3IiB3aWR0aD0iNS4yMiIgaGVpZ2h0PSI1LjQ0Ii8+PC9z dmc+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4v c3RhdGljL2pzL0V4cGxhaW4vaW1nL2V4X3NldG9wLnN2ZyBiL3dlYi9wZ2FkbWluL3N0YXRpYy9q cy9FeHBsYWluL2ltZy9leF9zZXRvcC5zdmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMDAwLi40M2IzMDliNWYKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9zdGF0aWMv anMvRXhwbGFpbi9pbWcvZXhfc2V0b3Auc3ZnCkBAIC0wLDAgKzEgQEAKKzxzdmcgaWQ9Il8xIiBk YXRhLW5hbWU9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0i MCAwIDY0IDY0Ij48ZGVmcz48c3R5bGU+LmNscy0xe29wYWNpdHk6MC43O30uY2xzLTJ7ZmlsbDoj ZjBlY2I2O30uY2xzLTN7ZmlsbDojYzE4ZjM1O30uY2xzLTR7ZmlsbDojZDNkNGYzO30uY2xzLTV7 ZmlsbDojNjY2YmQxO30uY2xzLTZ7ZmlsbDojYWRkZmYzO30uY2xzLTd7ZmlsbDojMjk4MGI5O308 L3N0eWxlPjwvZGVmcz48dGl0bGU+ZXhfc2V0b3A8L3RpdGxlPjxnIGNsYXNzPSJjbHMtMSI+PHJl Y3QgY2xhc3M9ImNscy0yIiB4PSI0Ni4wMSIgeT0iMzUuNTgiIHdpZHRoPSI3IiBoZWlnaHQ9Ijci Lz48cGF0aCBjbGFzcz0iY2xzLTMiIGQ9Ik01Mi41MSwzNi4wOHY2aC02di02aDZtMS0xaC04djho OHYtOFoiLz48cGF0aCBjbGFzcz0iY2xzLTIiIGQ9Ik0xOS41MSw0OS41NmExLjUsMS41LDAsMCwx LTEuNS0xLjV2LTUuNWg3djdaIi8+PHBhdGggY2xhc3M9ImNscy0zIiBkPSJNMjQuNTEsNDMuMDZ2 NmgtNWExLDEsMCwwLDEtMS0xdi01aDZtMS0xaC04djZhMiwyLDAsMCwwLDIsMmg2di04WiIvPjxy ZWN0IGNsYXNzPSJjbHMtMiIgeD0iMjUuMDQiIHk9IjQyLjU2IiB3aWR0aD0iNyIgaGVpZ2h0PSI3 Ii8+PHBhdGggY2xhc3M9ImNscy0zIiBkPSJNMzEuNTQsNDMuMDZ2NmgtNnYtNmg2bTEtMWgtOHY4 aDh2LThaIi8+PHJlY3QgY2xhc3M9ImNscy0yIiB4PSIzMi4wMSIgeT0iNDIuNTYiIHdpZHRoPSI3 IiBoZWlnaHQ9IjciLz48cGF0aCBjbGFzcz0iY2xzLTMiIGQ9Ik0zOC41MSw0My4wNnY2aC02di02 aDZtMS0xaC04djhoOHYtOFoiLz48cmVjdCBjbGFzcz0iY2xzLTIiIHg9IjM5LjA0IiB5PSI0Mi41 NiIgd2lkdGg9IjciIGhlaWdodD0iNyIvPjxwYXRoIGNsYXNzPSJjbHMtMyIgZD0iTTQ1LjU0LDQz LjA2djZoLTZ2LTZoNm0xLTFoLTh2OGg4di04WiIvPjxwYXRoIGNsYXNzPSJjbHMtMiIgZD0iTTQ2 LDQ5LjU2di03aDd2NS41YTEuNSwxLjUsMCwwLDEtMS41LDEuNVoiLz48cGF0aCBjbGFzcz0iY2xz LTMiIGQ9Ik01Mi41MSw0My4wNnY1YTEsMSwwLDAsMS0xLDFoLTV2LTZoNm0xLTFoLTh2OGg2YTIs MiwwLDAsMCwyLTJ2LTZaIi8+PHBhdGggY2xhc3M9ImNscy0yIiBkPSJNNDYsMjguNDN2LTdoNS41 YTEuNSwxLjUsMCwwLDEsMS41LDEuNXY1LjVaIi8+PHBhdGggY2xhc3M9ImNscy0zIiBkPSJNNTEu NTEsMjEuOTNhMSwxLDAsMCwxLDEsMXY1aC02di02aDVtMC0xaC02djhoOHYtNmEyLDIsMCwwLDAt Mi0yWiIvPjxyZWN0IGNsYXNzPSJjbHMtMiIgeD0iNDYuMDEiIHk9IjI4LjUiIHdpZHRoPSI3IiBo ZWlnaHQ9IjciLz48cGF0aCBjbGFzcz0iY2xzLTMiIGQ9Ik01Mi41MSwyOXY2aC02VjI5aDZtMS0x aC04djhoOFYyOFoiLz48L2c+PGcgY2xhc3M9ImNscy0xIj48cmVjdCBjbGFzcz0iY2xzLTQiIHg9 IjEwLjk5IiB5PSIyOC4zNiIgd2lkdGg9IjciIGhlaWdodD0iNyIvPjxwYXRoIGNsYXNzPSJjbHMt NSIgZD0iTTE3LjQ5LDI4Ljg2djZoLTZ2LTZoNm0xLTFoLTh2OGg4di04WiIvPjxwYXRoIGNsYXNz PSJjbHMtNCIgZD0iTTEyLjQ5LDQyLjM2YTEuNSwxLjUsMCwwLDEtMS41LTEuNXYtNS41aDd2N1oi Lz48cGF0aCBjbGFzcz0iY2xzLTUiIGQ9Ik0xNy40OSwzNS44NnY2aC01YTEsMSwwLDAsMS0xLTF2 LTVoNm0xLTFoLTh2NmEyLDIsMCwwLDAsMiwyaDZ2LThaIi8+PHJlY3QgY2xhc3M9ImNscy00IiB4 PSIxMC45OSIgeT0iMjEuMjgiIHdpZHRoPSI3IiBoZWlnaHQ9IjciLz48cGF0aCBjbGFzcz0iY2xz LTUiIGQ9Ik0xNy40OSwyMS43OHY2aC02di02aDZtMS0xaC04djhoOHYtOFoiLz48cGF0aCBjbGFz cz0iY2xzLTQiIGQ9Ik0xMSwyMS40NHYtNS41YTEuNSwxLjUsMCwwLDEsMS41LTEuNUgxOHY3WiIv PjxwYXRoIGNsYXNzPSJjbHMtNSIgZD0iTTE3LjQ5LDE0Ljk0djZoLTZ2LTVhMSwxLDAsMCwxLDEt MWg1bTEtMWgtNmEyLDIsMCwwLDAtMiwydjZoOHYtOFoiLz48cmVjdCBjbGFzcz0iY2xzLTQiIHg9 IjE3Ljk2IiB5PSIxNC40NCIgd2lkdGg9IjciIGhlaWdodD0iNyIvPjxwYXRoIGNsYXNzPSJjbHMt NSIgZD0iTTI0LjQ2LDE0Ljk0djZoLTZ2LTZoNm0xLTFoLTh2OGg4di04WiIvPjxyZWN0IGNsYXNz PSJjbHMtNCIgeD0iMjQuOTkiIHk9IjE0LjQ0IiB3aWR0aD0iNyIgaGVpZ2h0PSI3Ii8+PHBhdGgg Y2xhc3M9ImNscy01IiBkPSJNMzEuNDksMTQuOTR2NmgtNnYtNmg2bTEtMWgtOHY4aDh2LThaIi8+ PHJlY3QgY2xhc3M9ImNscy00IiB4PSIzMi4wMSIgeT0iMTQuNDQiIHdpZHRoPSI3IiBoZWlnaHQ9 IjciLz48cGF0aCBjbGFzcz0iY2xzLTUiIGQ9Ik0zOC41MSwxNC45NHY2aC02di02aDZtMS0xaC04 djhoOHYtOFoiLz48cGF0aCBjbGFzcz0iY2xzLTQiIGQ9Ik0zOSwyMS40NHYtN2g1LjVhMS41LDEu NSwwLDAsMSwxLjUsMS41djUuNVoiLz48cGF0aCBjbGFzcz0iY2xzLTUiIGQ9Ik00NC40OSwxNC45 NGExLDEsMCwwLDEsMSwxdjVoLTZ2LTZoNW0wLTFoLTZ2OGg4di02YTIsMiwwLDAsMC0yLTJaIi8+ PC9nPjxyZWN0IGNsYXNzPSJjbHMtNiIgeD0iMTguMDEiIHk9IjIxLjQzIiB3aWR0aD0iNyIgaGVp Z2h0PSI3Ii8+PHBhdGggY2xhc3M9ImNscy03IiBkPSJNMjQuNTEsMjEuOTN2NmgtNnYtNmg2bTEt MWgtOHY4aDh2LThaIi8+PHJlY3QgY2xhc3M9ImNscy02IiB4PSIyNS4wNCIgeT0iMjEuNDMiIHdp ZHRoPSI3IiBoZWlnaHQ9IjciLz48cGF0aCBjbGFzcz0iY2xzLTciIGQ9Ik0zMS41NCwyMS45M3Y2 aC02di02aDZtMS0xaC04djhoOHYtOFoiLz48cmVjdCBjbGFzcz0iY2xzLTYiIHg9IjM5LjA0IiB5 PSIyMS40MyIgd2lkdGg9IjciIGhlaWdodD0iNyIvPjxwYXRoIGNsYXNzPSJjbHMtNyIgZD0iTTQ1 LjU0LDIxLjkzdjZoLTZ2LTZoNm0xLTFoLTh2OGg4di04WiIvPjxyZWN0IGNsYXNzPSJjbHMtNiIg eD0iMzkuMDQiIHk9IjI4LjUiIHdpZHRoPSI3IiBoZWlnaHQ9IjciLz48cGF0aCBjbGFzcz0iY2xz LTciIGQ9Ik00NS41NCwyOXY2aC02VjI5aDZtMS0xaC04djhoOFYyOFoiLz48cmVjdCBjbGFzcz0i Y2xzLTYiIHg9IjE4LjAxIiB5PSIzNS41OCIgd2lkdGg9IjciIGhlaWdodD0iNyIvPjxwYXRoIGNs YXNzPSJjbHMtNyIgZD0iTTI0LjUxLDM2LjA4djZoLTZ2LTZoNm0xLTFoLTh2OGg4di04WiIvPjxy ZWN0IGNsYXNzPSJjbHMtNiIgeD0iMjUuMDQiIHk9IjM1LjU4IiB3aWR0aD0iNyIgaGVpZ2h0PSI3 Ii8+PHBhdGggY2xhc3M9ImNscy03IiBkPSJNMzEuNTQsMzYuMDh2NmgtNnYtNmg2bTEtMWgtOHY4 aDh2LThaIi8+PHJlY3QgY2xhc3M9ImNscy02IiB4PSIzMi4wMSIgeT0iMzUuNTgiIHdpZHRoPSI3 IiBoZWlnaHQ9IjciLz48cGF0aCBjbGFzcz0iY2xzLTciIGQ9Ik0zOC41MSwzNi4wOHY2aC02di02 aDZtMS0xaC04djhoOHYtOFoiLz48cmVjdCBjbGFzcz0iY2xzLTYiIHg9IjM5LjA0IiB5PSIzNS41 OCIgd2lkdGg9IjciIGhlaWdodD0iNyIvPjxwYXRoIGNsYXNzPSJjbHMtNyIgZD0iTTQ1LjU0LDM2 LjA4djZoLTZ2LTZoNm0xLTFoLTh2OGg4di04WiIvPjxyZWN0IGNsYXNzPSJjbHMtNiIgeD0iMzIu MDEiIHk9IjIxLjQzIiB3aWR0aD0iNyIgaGVpZ2h0PSI3Ii8+PHBhdGggY2xhc3M9ImNscy03IiBk PSJNMzguNTEsMjEuOTN2NmgtNnYtNmg2bTEtMWgtOHY4aDh2LThaIi8+PHJlY3QgY2xhc3M9ImNs cy02IiB4PSIxOC4wMSIgeT0iMjguNSIgd2lkdGg9IjciIGhlaWdodD0iNyIvPjxwYXRoIGNsYXNz PSJjbHMtNyIgZD0iTTI0LjUxLDI5djZoLTZWMjloNm0xLTFoLTh2OGg4VjI4WiIvPjxyZWN0IGNs YXNzPSJjbHMtNiIgeD0iMjUuMDQiIHk9IjI4LjUiIHdpZHRoPSI3IiBoZWlnaHQ9IjciLz48cGF0 aCBjbGFzcz0iY2xzLTciIGQ9Ik0zMS41NCwyOXY2aC02VjI5aDZtMS0xaC04djhoOFYyOFoiLz48 cmVjdCBjbGFzcz0iY2xzLTYiIHg9IjMyLjAxIiB5PSIyOC41IiB3aWR0aD0iNyIgaGVpZ2h0PSI3 Ii8+PHBhdGggY2xhc3M9ImNscy03IiBkPSJNMzguNTEsMjl2NmgtNlYyOWg2bTEtMWgtOHY4aDhW MjhaIi8+PC9zdmc+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvd2Vi L3BnYWRtaW4vc3RhdGljL2pzL0V4cGxhaW4vaW1nL2V4X3NvcnQuc3ZnIGIvd2ViL3BnYWRtaW4v c3RhdGljL2pzL0V4cGxhaW4vaW1nL2V4X3NvcnQuc3ZnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAwMC4uNTY4NjM5YWFkCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4v c3RhdGljL2pzL0V4cGxhaW4vaW1nL2V4X3NvcnQuc3ZnCkBAIC0wLDAgKzEgQEAKKzxzdmcgaWQ9 Il8xIiBkYXRhLW5hbWU9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmll d0JveD0iMCAwIDY0IDY0Ij48ZGVmcz48c3R5bGU+LmNscy0xe2ZpbGw6I2QzZDRmMzt9LmNscy0y e2ZpbGw6IzY2NmJkMTt9LmNscy0ze2ZpbGw6I2I2ZWVmZjt9LmNscy00e2ZpbGw6IzBjYzVmZjt9 LmNscy01e2ZpbGw6I2M4ZmZhYzt9LmNscy02e2ZpbGw6IzQ4ZDYwMTt9LmNscy03e2ZpbGw6I2Yw ZWNiNjt9LmNscy04e2ZpbGw6I2MxOGYzNTt9LmNscy05e2ZpbGw6I2ZmZTdlNzt9LmNscy0xMHtm aWxsOiNmZjNkM2Q7fS5jbHMtMTF7ZmlsbDojYWRkZmYzO30uY2xzLTEye2ZpbGw6IzI5ODBiOTt9 LmNscy0xM3tmaWxsOiMzNDQ5NWU7fS5jbHMtMTQsLmNscy0xNXtmaWxsOiM1MjhkMTk7c3Ryb2tl OiM1MjhkMTk7c3Ryb2tlLWxpbmVqb2luOnJvdW5kO30uY2xzLTE1e3N0cm9rZS1saW5lY2FwOnJv dW5kO3N0cm9rZS13aWR0aDoycHg7fTwvc3R5bGU+PC9kZWZzPjx0aXRsZT5leF9zb3J0PC90aXRs ZT48cGF0aCBjbGFzcz0iY2xzLTEiIGQ9Ik0xMy4xOSw1MC45NGMtMS4zNywwLTEuNS0uMTMtMS41 LTEuNXYtNC44SDIzdjYuM1oiLz48cGF0aCBjbGFzcz0iY2xzLTIiIGQ9Ik0yMi40Nyw0NS4xNHY1 LjNIMTMuMTlhMy4yNSwzLjI1LDAsMCwxLS45LS4wOGgwYTIuMTgsMi4xOCwwLDAsMS0uMS0uOTJ2 LTQuM0gyMi40N20xLTFIMTEuMTl2NS4zYzAsMS42NS4zNSwyLDIsMkgyMy40N3YtNy4zWiIvPjxy ZWN0IGNsYXNzPSJjbHMtMyIgeD0iMTEuNjkiIHk9IjM4LjMxIiB3aWR0aD0iMTEuMjgiIGhlaWdo dD0iNi4zIi8+PHBhdGggY2xhc3M9ImNscy00IiBkPSJNMjIuNDcsMzguODF2NS4zSDEyLjE5di01 LjNIMjIuNDdtMS0xSDExLjE5djcuM0gyMy40N3YtNy4zWiIvPjxyZWN0IGNsYXNzPSJjbHMtNSIg eD0iMTEuNjkiIHk9IjMxLjk3IiB3aWR0aD0iMTEuMjgiIGhlaWdodD0iNi4zMSIvPjxwYXRoIGNs YXNzPSJjbHMtNiIgZD0iTTIyLjQ3LDMyLjQ3djUuM0gxMi4xOXYtNS4zSDIyLjQ3bTEtMUgxMS4x OXY3LjNIMjMuNDd2LTcuM1oiLz48cmVjdCBjbGFzcz0iY2xzLTciIHg9IjExLjY5IiB5PSIyNS42 OCIgd2lkdGg9IjExLjI4IiBoZWlnaHQ9IjYuMyIvPjxwYXRoIGNsYXNzPSJjbHMtOCIgZD0iTTIy LjQ3LDI2LjE4djUuM0gxMi4xOXYtNS4zSDIyLjQ3bTEtMUgxMS4xOXY3LjNIMjMuNDd2LTcuM1oi Lz48cmVjdCBjbGFzcz0iY2xzLTkiIHg9IjExLjY5IiB5PSIxOS4zOCIgd2lkdGg9IjExLjI4IiBo ZWlnaHQ9IjYuMyIvPjxwYXRoIGNsYXNzPSJjbHMtMTAiIGQ9Ik0yMi40NywxOS44OHY1LjNIMTIu MTl2LTUuM0gyMi40N20xLTFIMTEuMTl2Ny4zSDIzLjQ3di03LjNaIi8+PHBhdGggY2xhc3M9ImNs cy0xMSIgZD0iTTExLjY5LDE5LjM2di00LjhjMC0xLjM3LjIyLTEuNDQsMS4wNy0xLjQ5SDIxLjlj Ljg1LDAsMS4wNy4xMiwxLjA3LDEuNDl2NC44WiIvPjxwYXRoIGNsYXNzPSJjbHMtMTIiIGQ9Ik0y MS44NywxMy41NmgwYTIuMjQsMi4yNCwwLDAsMSwuNS4wN2gwYTIuMjMsMi4yMywwLDAsMSwuMS45 MnY0LjNIMTIuMTl2LTQuM2EzLjA3LDMuMDcsMCwwLDEsLjA4LS45LDEuMywxLjMsMCwwLDEsLjUy LS4wOWg5LjA4bTEuNi0xaDBabTAsMEgxMi43NGMtMS4yNS4wNy0xLjU0LjUtMS41NCwydjUuM0gy My40N3YtNS4zYzAtMS40OC0uMjktMS45MS0xLjU0LTJaIi8+PHBhdGggY2xhc3M9ImNscy0xMyIg ZD0iTTE3LjUxLDIwLjkzdjMuMzZoLS43N1YyMC45M1oiLz48cGF0aCBjbGFzcz0iY2xzLTEzIiBk PSJNMTkuMzIsMjAuOTN2My4zNmgtLjc3VjIwLjkzWiIvPjxwYXRoIGNsYXNzPSJjbHMtMTMiIGQ9 Ik0xNS42NywyMC45M3YzLjM2SDE0LjlWMjAuOTNaIi8+PHBhdGggY2xhc3M9ImNscy0xMyIgZD0i TTE3LjUxLDI3LjIydjMuMzZoLS43N1YyNy4yMloiLz48cGF0aCBjbGFzcz0iY2xzLTEzIiBkPSJN MTkuMzIsMjcuMjJ2My4zNmgtLjc3VjI3LjIyWiIvPjxwYXRoIGNsYXNzPSJjbHMtMTMiIGQ9Ik0y MS4wNywyNy4yMnYzLjM2SDIwLjNWMjcuMjJaIi8+PHBhdGggY2xhc3M9ImNscy0xMyIgZD0iTTE0 LDI3LjIydjMuMzZoLS43N1YyNy4yMloiLz48cGF0aCBjbGFzcz0iY2xzLTEzIiBkPSJNMTUuNjcs MjcuMjJ2My4zNkgxNC45VjI3LjIyWiIvPjxwYXRoIGNsYXNzPSJjbHMtMTMiIGQ9Ik0xOC42NSwz OS43OHYzLjM2aC0uNzdWMzkuNzhaIi8+PHBhdGggY2xhc3M9ImNscy0xMyIgZD0iTTIwLjQsMzku Nzh2My4zNmgtLjc3VjM5Ljc4WiIvPjxwYXRoIGNsYXNzPSJjbHMtMTMiIGQ9Ik0xNS4yMywzOS43 OHYzLjM2aC0uNzdWMzkuNzhaIi8+PHBhdGggY2xhc3M9ImNscy0xMyIgZD0iTTE2Ljg3LDM5Ljc4 djMuMzZIMTYuMVYzOS43OFoiLz48cGF0aCBjbGFzcz0iY2xzLTEzIiBkPSJNMTcuNTEsMzMuNTl2 My4zNmgtLjc3VjMzLjU5WiIvPjxwYXRoIGNsYXNzPSJjbHMtMTMiIGQ9Ik0xOC42NSw0Ni4xMXYz LjM2aC0uNzdWNDYuMTFaIi8+PHBhdGggY2xhc3M9ImNscy0xMyIgZD0iTTE2Ljg3LDQ2LjExdjMu MzZIMTYuMVY0Ni4xMVoiLz48cGF0aCBjbGFzcz0iY2xzLTciIGQ9Ik00Mi41Myw1MC45NGMtMS4z NywwLTEuNS0uMTMtMS41LTEuNXYtNC44SDUyLjMxdjYuM1oiLz48cGF0aCBjbGFzcz0iY2xzLTgi IGQ9Ik01MS44MSw0NS4xNHY1LjNINDIuNTNhMy4yNiwzLjI2LDAsMCwxLS45LS4wOGgwYTIuMTgs Mi4xOCwwLDAsMS0uMS0uOTJ2LTQuM0g1MS44MW0xLTFINDAuNTN2NS4zYzAsMS42NS4zNSwyLDIs Mkg1Mi44MXYtNy4zWiIvPjxyZWN0IGNsYXNzPSJjbHMtMyIgeD0iNDEuMDMiIHk9IjM4LjMxIiB3 aWR0aD0iMTEuMjgiIGhlaWdodD0iNi4zIi8+PHBhdGggY2xhc3M9ImNscy00IiBkPSJNNTEuODEs MzguODF2NS4zSDQxLjUzdi01LjNINTEuODFtMS0xSDQwLjUzdjcuM0g1Mi44MXYtNy4zWiIvPjxy ZWN0IGNsYXNzPSJjbHMtOSIgeD0iNDEuMDMiIHk9IjMxLjk3IiB3aWR0aD0iMTEuMjgiIGhlaWdo dD0iNi4zMSIvPjxwYXRoIGNsYXNzPSJjbHMtMTAiIGQ9Ik01MS44MSwzMi40N3Y1LjNINDEuNTN2 LTUuM0g1MS44MW0xLTFINDAuNTN2Ny4zSDUyLjgxdi03LjNaIi8+PHJlY3QgY2xhc3M9ImNscy0x IiB4PSI0MS4wMyIgeT0iMjUuNjgiIHdpZHRoPSIxMS4yOCIgaGVpZ2h0PSI2LjMiLz48cGF0aCBj bGFzcz0iY2xzLTIiIGQ9Ik01MS44MSwyNi4xOHY1LjNINDEuNTN2LTUuM0g1MS44MW0xLTFINDAu NTN2Ny4zSDUyLjgxdi03LjNaIi8+PHJlY3QgY2xhc3M9ImNscy01IiB4PSI0MS4wMyIgeT0iMTku MzgiIHdpZHRoPSIxMS4yOCIgaGVpZ2h0PSI2LjMiLz48cGF0aCBjbGFzcz0iY2xzLTYiIGQ9Ik01 MS44MSwxOS44OHY1LjNINDEuNTN2LTUuM0g1MS44MW0xLTFINDAuNTN2Ny4zSDUyLjgxdi03LjNa Ii8+PHBhdGggY2xhc3M9ImNscy0xMSIgZD0iTTQxLDE5LjM2di00LjhjMC0xLjM3LjIyLTEuNDQs MS4wNy0xLjQ5aDkuMTRjLjg1LDAsMS4wNy4xMiwxLjA3LDEuNDl2NC44WiIvPjxwYXRoIGNsYXNz PSJjbHMtMTIiIGQ9Ik01MS4yMSwxMy41NmgwYTIuMjQsMi4yNCwwLDAsMSwuNS4wN2gwYTIuMjMs Mi4yMywwLDAsMSwuMS45MnY0LjNINDEuNTN2LTQuM2EzLjA3LDMuMDcsMCwwLDEsLjA4LS45LDEu MywxLjMsMCwwLDEsLjUyLS4wOWg5LjA4bTEuNi0xaDBabTAsMEg0Mi4wN2MtMS4yNS4wNy0xLjU0 LjUtMS41NCwydjUuM0g1Mi44MXYtNS4zYzAtMS40OC0uMjktMS45MS0xLjU0LTJaIi8+PHBhdGgg Y2xhc3M9ImNscy0xMyIgZD0iTTQ2Ljg0LDMzLjQ0VjM2LjhoLS43N1YzMy40NFoiLz48cGF0aCBj bGFzcz0iY2xzLTEzIiBkPSJNNDguNjYsMzMuNDRWMzYuOGgtLjc3VjMzLjQ0WiIvPjxwYXRoIGNs YXNzPSJjbHMtMTMiIGQ9Ik00NSwzMy40NFYzNi44aC0uNzdWMzMuNDRaIi8+PHBhdGggY2xhc3M9 ImNscy0xMyIgZD0iTTQ2Ljg0LDQ2LjExdjMuMzZoLS43N1Y0Ni4xMVoiLz48cGF0aCBjbGFzcz0i Y2xzLTEzIiBkPSJNNDguNjYsNDYuMTF2My4zNmgtLjc3VjQ2LjExWiIvPjxwYXRoIGNsYXNzPSJj bHMtMTMiIGQ9Ik01MC40MSw0Ni4xMXYzLjM2aC0uNzdWNDYuMTFaIi8+PHBhdGggY2xhc3M9ImNs cy0xMyIgZD0iTTQzLjM2LDQ2LjExdjMuMzZoLS43N1Y0Ni4xMVoiLz48cGF0aCBjbGFzcz0iY2xz LTEzIiBkPSJNNDUsNDYuMTF2My4zNmgtLjc3VjQ2LjExWiIvPjxwYXRoIGNsYXNzPSJjbHMtMTMi IGQ9Ik00OCwzOS43OHYzLjM2aC0uNzdWMzkuNzhaIi8+PHBhdGggY2xhc3M9ImNscy0xMyIgZD0i TTQ5LjczLDM5Ljc4djMuMzZINDlWMzkuNzhaIi8+PHBhdGggY2xhc3M9ImNscy0xMyIgZD0iTTQ0 LjU3LDM5Ljc4djMuMzZINDMuOFYzOS43OFoiLz48cGF0aCBjbGFzcz0iY2xzLTEzIiBkPSJNNDYu MiwzOS43OHYzLjM2aC0uNzdWMzkuNzhaIi8+PHBhdGggY2xhc3M9ImNscy0xMyIgZD0iTTQ2Ljg0 LDIwLjg1djMuMzZoLS43N1YyMC44NVoiLz48cGF0aCBjbGFzcz0iY2xzLTEzIiBkPSJNNDcuNzMs MjcuMjJ2My4zNkg0N1YyNy4yMloiLz48cGF0aCBjbGFzcz0iY2xzLTEzIiBkPSJNNDYsMjcuMjJ2 My4zNmgtLjc3VjI3LjIyWiIvPjxwb2x5Z29uIGNsYXNzPSJjbHMtMTQiIHBvaW50cz0iMzcuMzgg MzIgMzQgMjkuNDcgMzQgMzQuNTMgMzcuMzggMzIiLz48bGluZSBjbGFzcz0iY2xzLTE1IiB4MT0i MzMuNzIiIHkxPSIzMiIgeDI9IjI2LjYyIiB5Mj0iMzIiLz48L3N2Zz4KXCBObyBuZXdsaW5lIGF0 IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9zdGF0aWMvanMvRXhwbGFpbi9p bWcvZXhfc3VicGxhbi5zdmcgYi93ZWIvcGdhZG1pbi9zdGF0aWMvanMvRXhwbGFpbi9pbWcvZXhf c3VicGxhbi5zdmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwLi5lOThlOTlm NzMKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9zdGF0aWMvanMvRXhwbGFpbi9pbWcv ZXhfc3VicGxhbi5zdmcKQEAgLTAsMCArMSBAQAorPHN2ZyBpZD0iXzEiIGRhdGEtbmFtZT0iMSIg eG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgNjQgNjQiPjxk ZWZzPjxzdHlsZT4uY2xzLTF7ZmlsbDojZjBlY2I2O30uY2xzLTJ7ZmlsbDojYzE4ZjM1O30uY2xz LTN7ZmlsbDojYWRkZmYzO30uY2xzLTR7ZmlsbDojMjk4MGI5O30uY2xzLTUsLmNscy02LC5jbHMt OHtmaWxsOm5vbmU7fS5jbHMtNXtzdHJva2U6I2MxOGYzNTtvcGFjaXR5OjAuODt9LmNscy0xMCwu Y2xzLTExLC5jbHMtNSwuY2xzLTYsLmNscy04e3N0cm9rZS1saW5lam9pbjpyb3VuZDt9LmNscy02 e3N0cm9rZTojNjY2YmQxO30uY2xzLTExLC5jbHMtNiwuY2xzLTh7c3Ryb2tlLWxpbmVjYXA6cm91 bmQ7fS5jbHMtNiwuY2xzLTh7c3Ryb2tlLXdpZHRoOjEuNXB4O30uY2xzLTd7ZmlsbDojNjY2YmQx O30uY2xzLTh7c3Ryb2tlOiM4ZDgxMTk7fS5jbHMtOXtmaWxsOiM4ZDgxMTk7fS5jbHMtMTAsLmNs cy0xMXtmaWxsOiM1MjhkMTk7c3Ryb2tlOiM1MjhkMTk7fS5jbHMtMTF7c3Ryb2tlLXdpZHRoOjJw eDt9PC9zdHlsZT48L2RlZnM+PHRpdGxlPmV4X3N1YnBsYW48L3RpdGxlPjxwYXRoIGNsYXNzPSJj bHMtMSIgZD0iTTksNTMuMzhjLTEuMzcsMC0xLjUtLjEzLTEuNS0xLjVWNDAuMzhoNy4yOHYxM1oi Lz48cGF0aCBjbGFzcz0iY2xzLTIiIGQ9Ik0xNC4yMyw0MC44OHYxMkg5YTMuMjUsMy4yNSwwLDAs MS0uOS0uMDhoMGEyLjE4LDIuMTgsMCwwLDEtLjEtLjkydi0xMWg2LjI4bTEtMUg3djEyYzAsMS42 NS4zNSwyLDIsMmg2LjI4di0xNFoiLz48cGF0aCBjbGFzcz0iY2xzLTEiIGQ9Ik0xNC43Miw1My4z OHYtMTNIMjJ2MTEuNWMwLDEuMzctLjEzLDEuNS0xLjUsMS41WiIvPjxwYXRoIGNsYXNzPSJjbHMt MiIgZD0iTTIxLjUsNDAuODh2MTFhMy4yOCwzLjI4LDAsMCwxLS4wOC45LDIuMTgsMi4xOCwwLDAs MS0uOTIuMUgxNS4yMnYtMTJIMjEuNW0xLTFIMTQuMjJ2MTRIMjAuNWMxLjY1LDAsMi0uMzUsMi0y di0xMloiLz48cGF0aCBjbGFzcz0iY2xzLTMiIGQ9Ik03LjQ1LDQwLjM4di00LjVjMC0xLjM3LjEz LTEuNSwxLjUtMS41aDUuNzh2NloiLz48cGF0aCBjbGFzcz0iY2xzLTQiIGQ9Ik0xNC4yMywzNC44 OHY1SDh2LTRBMy4yOCwzLjI4LDAsMCwxLDgsMzVhMi4xOCwyLjE4LDAsMCwxLC45Mi0uMWg1LjI4 bTEtMUg5Yy0xLjY1LDAtMiwuMzUtMiwydjVoOC4yOHYtN1oiLz48cGF0aCBjbGFzcz0iY2xzLTMi IGQ9Ik0xNC43Miw0MC4zOHYtNkgyMC41YzEuMzcsMCwxLjUuMTMsMS41LDEuNXY0LjVaIi8+PHBh dGggY2xhc3M9ImNscy00IiBkPSJNMjAuNSwzNC44OGEzLjI1LDMuMjUsMCwwLDEsLjkuMDhoMGEy LjE4LDIuMTgsMCwwLDEsLjEuOTJ2NEgxNS4yMnYtNUgyMC41bTAtMUgxNC4yMnY3SDIyLjV2LTVj MC0xLjY1LS4zNS0yLTItMloiLz48bGluZSBjbGFzcz0iY2xzLTUiIHgxPSIxNC40OCIgeTE9IjQ2 LjczIiB4Mj0iMjEuOTciIHkyPSI0Ni43MyIvPjxsaW5lIGNsYXNzPSJjbHMtNSIgeDE9IjcuNDgi IHkxPSI0Ni43MyIgeDI9IjE0LjIyIiB5Mj0iNDYuNzMiLz48cGF0aCBjbGFzcz0iY2xzLTEiIGQ9 Ik00My41Myw1My4zOGMtMS4zNywwLTEuNS0uMTMtMS41LTEuNVY0MC4zOGg3LjI4djEzWiIvPjxw YXRoIGNsYXNzPSJjbHMtMiIgZD0iTTQ4LjgxLDQwLjg4djEySDQzLjUzYTMuMjUsMy4yNSwwLDAs MS0uOS0uMDhoMGEyLjE4LDIuMTgsMCwwLDEtLjEtLjkydi0xMWg2LjI4bTEtMUg0MS41M3YxMmMw LDEuNjUuMzUsMiwyLDJoNi4yOHYtMTRaIi8+PHBhdGggY2xhc3M9ImNscy0xIiBkPSJNNDkuMyw1 My4zOHYtMTNoNy4yOHYxMS41YzAsMS4zNy0uMTMsMS41LTEuNSwxLjVaIi8+PHBhdGggY2xhc3M9 ImNscy0yIiBkPSJNNTYuMDgsNDAuODh2MTFhMy4yOCwzLjI4LDAsMCwxLS4wOC45LDIuMTgsMi4x OCwwLDAsMS0uOTIuMUg0OS44di0xMmg2LjI4bTEtMUg0OC44djE0aDYuMjhjMS42NSwwLDItLjM1 LDItMnYtMTJaIi8+PHBhdGggY2xhc3M9ImNscy0zIiBkPSJNNDIsNDAuMzh2LTQuNWMwLTEuMzcu MTMtMS41LDEuNS0xLjVoNS43OHY2WiIvPjxwYXRoIGNsYXNzPSJjbHMtNCIgZD0iTTQ4LjgxLDM0 Ljg4djVINDIuNTN2LTRhMy4yOCwzLjI4LDAsMCwxLC4wOC0uOSwyLjE4LDIuMTgsMCwwLDEsLjky LS4xaDUuMjhtMS0xSDQzLjUzYy0xLjY1LDAtMiwuMzUtMiwydjVoOC4yOHYtN1oiLz48cGF0aCBj bGFzcz0iY2xzLTMiIGQ9Ik00OS4zLDQwLjM4di02aDUuNzhjMS4zNywwLDEuNS4xMywxLjUsMS41 djQuNVoiLz48cGF0aCBjbGFzcz0iY2xzLTQiIGQ9Ik01NS4wOCwzNC44OEEzLjI1LDMuMjUsMCww LDEsNTYsMzVoMGEyLjE3LDIuMTcsMCwwLDEsLjEuOTJ2NEg0OS44di01aDUuMjhtMC0xSDQ4Ljh2 N2g4LjI4di01YzAtMS42NS0uMzUtMi0yLTJaIi8+PGxpbmUgY2xhc3M9ImNscy01IiB4MT0iNDku MDYiIHkxPSI0Ni43MyIgeDI9IjU2LjU1IiB5Mj0iNDYuNzMiLz48bGluZSBjbGFzcz0iY2xzLTUi IHgxPSI0Mi4wNiIgeTE9IjQ2LjczIiB4Mj0iNDguOCIgeTI9IjQ2LjczIi8+PHBhdGggY2xhc3M9 ImNscy02IiBkPSJNMjMuNSwxMi44OGEzLDMsMCwwLDEsMy0zaDExYTMsMywwLDAsMSwzLDN2MTJh MywzLDAsMCwxLTMsM2gtMTFhMywzLDAsMCwxLTMtM1YxOSIvPjxwb2x5Z29uIGNsYXNzPSJjbHMt NyIgcG9pbnRzPSIyMy41IDE2LjU0IDIxLjI3IDE5LjUxIDI1LjczIDE5LjUxIDIzLjUgMTYuNTQi Lz48cGF0aCBjbGFzcz0iY2xzLTgiIGQ9Ik0yNywxNS4zOGMwLTEuNjUuMzUtMiwyLTJoNmMxLjY1 LDAsMiwuMzUsMiwydjdjMCwxLjY1LS4zNSwyLTIsMkgyOS4yNWMtMS42NSwwLTItLjM1LTItMlYx OS43NCIvPjxwb2x5Z29uIGNsYXNzPSJjbHMtOSIgcG9pbnRzPSIyNy4yMiAxOC41NSAyNS4yNCAy MC45MyAyOSAyMC45MyAyNy4yMiAxOC41NSIvPjxwb2x5Z29uIGNsYXNzPSJjbHMtMTAiIHBvaW50 cz0iNDAuOTEgNDQuMiAzNy41MyA0MS42NyAzNy41MyA0Ni43MyA0MC45MSA0NC4yIi8+PGxpbmUg Y2xhc3M9ImNscy0xMSIgeDE9IjM5LjI1IiB5MT0iNDQuMiIgeDI9IjMyLjE0IiB5Mj0iNDQuMiIv Pjxwb2x5Z29uIGNsYXNzPSJjbHMtMTAiIHBvaW50cz0iMjMuMjMgNDQuMiAyNi42MSA0MS42NyAy Ni42MSA0Ni43MyAyMy4yMyA0NC4yIi8+PGxpbmUgY2xhc3M9ImNscy0xMSIgeDE9IjI0LjkiIHkx PSI0NC4yIiB4Mj0iMzIiIHkyPSI0NC4yIi8+PGxpbmUgY2xhc3M9ImNscy0xMSIgeDE9IjMyIiB5 MT0iMjkuNzciIHgyPSIzMiIgeTI9IjQ0LjIiLz48L3N2Zz4KXCBObyBuZXdsaW5lIGF0IGVuZCBv ZiBmaWxlCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9zdGF0aWMvanMvRXhwbGFpbi9pbWcvZXhf dGFibGVfZnVuY19zY2FuLnN2ZyBiL3dlYi9wZ2FkbWluL3N0YXRpYy9qcy9FeHBsYWluL2ltZy9l eF90YWJsZV9mdW5jX3NjYW4uc3ZnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw MC4uN2E4NTU1NTA2Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vc3RhdGljL2pzL0V4 cGxhaW4vaW1nL2V4X3RhYmxlX2Z1bmNfc2Nhbi5zdmcKQEAgLTAsMCArMSBAQAorPHN2ZyBpZD0i XzEiIGRhdGEtbmFtZT0iMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3 Qm94PSIwIDAgNjQgNjQiPjxkZWZzPjxzdHlsZT4uY2xzLTF7ZmlsbDojZjNjN2Q3O30uY2xzLTJ7 ZmlsbDojZDA0NDY1O30uY2xzLTN7b3BhY2l0eTowLjU7fS5jbHMtNHtmaWxsOm5vbmU7c3Ryb2tl OiNkMDQ0NjU7fS5jbHMtNCwuY2xzLTcsLmNscy04e3N0cm9rZS1saW5lam9pbjpyb3VuZDt9LmNs cy01e2ZpbGw6I2FkZGZmMzt9LmNscy02LC5jbHMtNywuY2xzLTh7ZmlsbDojMjk4MGI5O30uY2xz LTcsLmNscy04e3N0cm9rZTojMjk4MGI5O30uY2xzLTh7c3Ryb2tlLWxpbmVjYXA6cm91bmQ7c3Ry b2tlLXdpZHRoOjJweDt9PC9zdHlsZT48L2RlZnM+PHRpdGxlPnRhYmxlX2Z1bl9zY2FuPC90aXRs ZT48cGF0aCBjbGFzcz0iY2xzLTEiIGQ9Ik0yMi44NSw0OWMtMS4zNywwLTEuNS0uMTItMS41LTEu NVYyNEg1NC4xNFY0Ny40N2MwLDEuMzgtLjEzLDEuNS0xLjUsMS41WiIvPjxwYXRoIGNsYXNzPSJj bHMtMiIgZD0iTTUzLjY0LDI0LjUzVjQ3LjQ3YTMuMTgsMy4xOCwwLDAsMS0uMDguOXMtLjE5LjEt LjkyLjFIMjIuODVBMy4zOSwzLjM5LDAsMCwxLDIyLDQ4LjRoMGEyLjQsMi40LDAsMCwxLS4xLS45 M1YyNC41M0g1My42NG0xLTFIMjAuODVWNDcuNDdjMCwxLjY1LjM1LDIsMiwySDUyLjY0YzEuNjUs MCwyLS4zNSwyLTJWMjMuNTNaIi8+PGcgY2xhc3M9ImNscy0zIj48bGluZSBjbGFzcz0iY2xzLTQi IHgxPSIzNy43NSIgeTE9IjQ4LjQ3IiB4Mj0iMzcuNzUiIHkyPSIyNC40NyIvPjxsaW5lIGNsYXNz PSJjbHMtNCIgeDE9IjI5LjU1IiB5MT0iNDguNDciIHgyPSIyOS41NSIgeTI9IjI0LjQ3Ii8+PGxp bmUgY2xhc3M9ImNscy00IiB4MT0iNDUuOTUiIHkxPSI0OC40NyIgeDI9IjQ1Ljk1IiB5Mj0iMjQu NDciLz48bGluZSBjbGFzcz0iY2xzLTQiIHgxPSIyMS44NSIgeTE9IjMyLjQ3IiB4Mj0iNTMuNjIi IHkyPSIzMi40NyIvPjxsaW5lIGNsYXNzPSJjbHMtNCIgeDE9IjIxLjg1IiB5MT0iNDAuODQiIHgy PSI1My42MiIgeTI9IjQwLjg0Ii8+PC9nPjxwYXRoIGNsYXNzPSJjbHMtNSIgZD0iTTQ2LDI0VjE1 aDYuNjljMS4zOCwwLDEuNS4xMiwxLjUsMS41VjI0WiIvPjxwYXRoIGNsYXNzPSJjbHMtNiIgZD0i TTUyLjY0LDE1LjUzYTMuNDQsMy40NCwwLDAsMSwuOS4wN2gwYTIuMTYsMi4xNiwwLDAsMSwuMS45 M3Y3SDQ2LjQ1di04aDYuMTltMC0xSDQ1LjQ1djEwaDkuMTl2LThjMC0xLjY1LS4zNS0yLTItMloi Lz48cGF0aCBjbGFzcz0iY2xzLTUiIGQ9Ik0yMS4zNSwyNHYtNy41YzAtMS4zOC4xMy0xLjUsMS41 LTEuNWg2LjY5djlaIi8+PHBhdGggY2xhc3M9ImNscy02IiBkPSJNMjksMTUuNTN2OEgyMS44NXYt N2EyLjcsMi43LDAsMCwxLC4wOC0uOXMuMTktLjEuOTItLjFIMjltMS0xSDIyLjg1Yy0xLjY1LDAt MiwuMzUtMiwydjhIMzB2LTEwWiIvPjxyZWN0IGNsYXNzPSJjbHMtNSIgeD0iMzcuNzUiIHk9IjE1 LjAzIiB3aWR0aD0iOC4xOSIgaGVpZ2h0PSI5Ii8+PHBhdGggY2xhc3M9ImNscy02IiBkPSJNNDUu NDMsMTUuNTN2OEgzOC4yNHYtOGg3LjE4bTEtMUgzNy4yNXYxMGg5LjE5di0xMFoiLz48cmVjdCBj bGFzcz0iY2xzLTUiIHg9IjI5LjU2IiB5PSIxNS4wMyIgd2lkdGg9IjguMTkiIGhlaWdodD0iOSIv PjxwYXRoIGNsYXNzPSJjbHMtNiIgZD0iTTM3LjI0LDE1LjUzdjhIMzAuMDV2LThoNy4xOG0xLTFI MjkuMDZ2MTBoOS4xOXYtMTBaIi8+PHBvbHlnb24gY2xhc3M9ImNscy03IiBwb2ludHM9IjEyLjgz IDQ3LjM4IDkuMzYgNDIuNzMgMTYuMzEgNDIuNzMgMTIuODMgNDcuMzgiLz48bGluZSBjbGFzcz0i Y2xzLTgiIHgxPSIxMi44MyIgeTE9IjQzLjM2IiB4Mj0iMTIuODMiIHkyPSIxNi4zOSIvPjwvc3Zn PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL3N0 YXRpYy9qcy9FeHBsYWluL2ltZy9leF90aWRfc2Nhbi5zdmcgYi93ZWIvcGdhZG1pbi9zdGF0aWMv anMvRXhwbGFpbi9pbWcvZXhfdGlkX3NjYW4uc3ZnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAwMC4uZDQyYmFmZDU3Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vc3Rh dGljL2pzL0V4cGxhaW4vaW1nL2V4X3RpZF9zY2FuLnN2ZwpAQCAtMCwwICsxIEBACis8c3ZnIGlk PSJfMSIgZGF0YS1uYW1lPSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZp ZXdCb3g9IjAgMCA2NCA2NCI+PGRlZnM+PHN0eWxlPi5jbHMtMXtmaWxsOiNlNmU2ZTY7fS5jbHMt MntmaWxsOiM4MTgxODE7fS5jbHMtM3tmaWxsOiNmYmU2NWE7fS5jbHMtNHtmaWxsOiNjNDk1M2I7 fS5jbHMtNXtmaWxsOm5vbmU7c3Ryb2tlOiMyOTgwYjk7c3Ryb2tlLWxpbmVjYXA6cm91bmQ7c3Ry b2tlLWxpbmVqb2luOnJvdW5kO3N0cm9rZS13aWR0aDoxLjVweDt9LmNscy02e2ZpbGw6IzI5ODBi OTt9PC9zdHlsZT48L2RlZnM+PHRpdGxlPmV4X3RpZF9zY2FuPC90aXRsZT48cGF0aCBjbGFzcz0i Y2xzLTEiIGQ9Ik0zNS40Nyw1MC42OWMtOS41NywwLTE2LTIuODQtMTYtNS41czYuNDMtNS41LDE2 LTUuNSwxNiwyLjg0LDE2LDUuNVM0NSw1MC42OSwzNS40Nyw1MC42OVoiLz48cGF0aCBjbGFzcz0i Y2xzLTIiIGQ9Ik0zNS40Nyw0MC4xOWM4Ljg3LDAsMTUuNSwyLjY0LDE1LjUsNXMtNi42Myw1LTE1 LjUsNVMyMCw0Ny41NSwyMCw0NS4xOXM2LjYzLTUsMTUuNS01bTAtMWMtOS4xMSwwLTE2LjUsMi42 OS0xNi41LDZzNy4zOSw2LDE2LjUsNlM1Miw0OC41LDUyLDQ1LjE5cy03LjM5LTYtMTYuNS02WiIv PjxwYXRoIGNsYXNzPSJjbHMtMSIgZD0iTTM1LjQ3LDQ2LjI4Yy05LjU3LDAtMTYtMi44NC0xNi01 LjVzNi40My01LjUsMTYtNS41LDE2LDIuODQsMTYsNS41UzQ1LDQ2LjI4LDM1LjQ3LDQ2LjI4WiIv PjxwYXRoIGNsYXNzPSJjbHMtMiIgZD0iTTM1LjQ3LDM1Ljc4YzguODcsMCwxNS41LDIuNjQsMTUu NSw1cy02LjYzLDUtMTUuNSw1UzIwLDQzLjE0LDIwLDQwLjc4czYuNjMtNSwxNS41LTVtMC0xYy05 LjExLDAtMTYuNSwyLjY5LTE2LjUsNnM3LjM5LDYsMTYuNSw2LDE2LjUtMi42OSwxNi41LTYtNy4z OS02LTE2LjUtNloiLz48cGF0aCBjbGFzcz0iY2xzLTEiIGQ9Ik0zNS40Nyw0MmMtOS41NywwLTE2 LTIuODQtMTYtNS41czYuNDMtNS41LDE2LTUuNSwxNiwyLjg0LDE2LDUuNVM0NSw0MiwzNS40Nyw0 MloiLz48cGF0aCBjbGFzcz0iY2xzLTIiIGQ9Ik0zNS40NywzMS40NmM4Ljg3LDAsMTUuNSwyLjY0 LDE1LjUsNXMtNi42Myw1LTE1LjUsNVMyMCwzOC44MywyMCwzNi40NnM2LjYzLTUsMTUuNS01bTAt MWMtOS4xMSwwLTE2LjUsMi42OS0xNi41LDZzNy4zOSw2LDE2LjUsNiwxNi41LTIuNjksMTYuNS02 LTcuMzktNi0xNi41LTZaIi8+PHBhdGggY2xhc3M9ImNscy0xIiBkPSJNMzUuNDcsMzcuNTJjLTku NTcsMC0xNi0yLjg0LTE2LTUuNXM2LjQzLTUuNSwxNi01LjUsMTYsMi44NCwxNiw1LjVTNDUsMzcu NTIsMzUuNDcsMzcuNTJaIi8+PHBhdGggY2xhc3M9ImNscy0yIiBkPSJNMzUuNDcsMjdDNDQuMzQs MjcsNTEsMjkuNjYsNTEsMzJzLTYuNjMsNS0xNS41LDVTMjAsMzQuMzgsMjAsMzJzNi42My01LDE1 LjUtNW0wLTFDMjYuMzYsMjYsMTksMjguNywxOSwzMnM3LjM5LDYsMTYuNSw2UzUyLDM1LjMzLDUy LDMycy03LjM5LTYtMTYuNS02WiIvPjxwYXRoIGNsYXNzPSJjbHMtMSIgZD0iTTM1LjQ3LDMyLjY5 Yy05LjU3LDAtMTYtMi44NC0xNi01LjVzNi40My01LjUsMTYtNS41LDE2LDIuODQsMTYsNS41UzQ1 LDMyLjY5LDM1LjQ3LDMyLjY5WiIvPjxwYXRoIGNsYXNzPSJjbHMtMiIgZD0iTTM1LjQ3LDIyLjE5 YzguODcsMCwxNS41LDIuNjQsMTUuNSw1cy02LjYzLDUtMTUuNSw1UzIwLDI5LjU1LDIwLDI3LjE5 czYuNjMtNSwxNS41LTVtMC0xYy05LjExLDAtMTYuNSwyLjY5LTE2LjUsNnM3LjM5LDYsMTYuNSw2 UzUyLDMwLjUsNTIsMjcuMTlzLTcuMzktNi0xNi41LTZaIi8+PHBhdGggY2xhc3M9ImNscy0zIiBk PSJNMTkuNTUsMjYuNjljLjczLTIuNDUsNi43Mi00LjkxLDE1LjQzLTV2NVoiLz48cGF0aCBjbGFz cz0iY2xzLTQiIGQ9Ik0zNC40NywyMi4ydjRIMjAuMzVjMS40Ni0yLDctMy44MywxNC4xMi00bTEt MWMtOS4xMSwwLTE2LjUsMi42OS0xNi41LDZoMTYuNXYtNloiLz48cGF0aCBjbGFzcz0iY2xzLTUi IGQ9Ik0xMiwyNmMyLjM4LTguMzcsMTIuOTItMTMuMjEsMjItMTMuMjEiLz48cGF0aCBjbGFzcz0i Y2xzLTYiIGQ9Ik00MC40LDEyLjgxYTMxLjczLDMxLjczLDAsMCwwLTksNWwxLjgxLTUtMS44MS01 QTMxLjcsMzEuNywwLDAsMCw0MC40LDEyLjgxWiIvPjwvc3ZnPgpcIE5vIG5ld2xpbmUgYXQgZW5k IG9mIGZpbGUKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL3N0YXRpYy9qcy9FeHBsYWluL2ltZy9l eF91bmlxdWUuc3ZnIGIvd2ViL3BnYWRtaW4vc3RhdGljL2pzL0V4cGxhaW4vaW1nL2V4X3VuaXF1 ZS5zdmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwLi5kNmNjMjYxYjQKLS0t IC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9zdGF0aWMvanMvRXhwbGFpbi9pbWcvZXhfdW5p cXVlLnN2ZwpAQCAtMCwwICsxIEBACis8c3ZnIGlkPSJfMSIgZGF0YS1uYW1lPSIxIiB4bWxucz0i aHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2NCA2NCI+PGRlZnM+PHN0 eWxlPi5jbHMtMSwuY2xzLTN7ZmlsbDojZjBlY2I2O30uY2xzLTJ7ZmlsbDojYzE4ZjM1O30uY2xz LTN7c3Ryb2tlOiNjMThmMzU7fS5jbHMtMywuY2xzLTQsLmNscy03LC5jbHMtOHtzdHJva2UtbWl0 ZXJsaW1pdDoxMDt9LmNscy0zLC5jbHMtN3tvcGFjaXR5OjAuODt9LmNscy00e2ZpbGw6IzM0NDk1 ZTtzdHJva2U6IzUyOGQxOTt9LmNscy01LC5jbHMtNywuY2xzLTh7ZmlsbDojZDNkNGYzO30uY2xz LTZ7ZmlsbDojNjY2YmQxO30uY2xzLTd7c3Ryb2tlOiM2NjZiZDE7fS5jbHMtOHtzdHJva2U6I2Mw MDtzdHJva2UtbGluZWNhcDpyb3VuZDtzdHJva2Utd2lkdGg6MS41cHg7b3BhY2l0eTowLjU7fTwv c3R5bGU+PC9kZWZzPjx0aXRsZT5leF91bmlxdWU8L3RpdGxlPjxyZWN0IGNsYXNzPSJjbHMtMSIg eD0iNDAuMyIgeT0iMTcuMjYiIHdpZHRoPSI5Ljk4IiBoZWlnaHQ9IjUuNjkiIHJ4PSIxLjUiIHJ5 PSIxLjUiLz48cGF0aCBjbGFzcz0iY2xzLTIiIGQ9Ik00OC43OSwxNy43NmEzLjI1LDMuMjUsMCww LDEsLjkuMDhoMGEyLjE4LDIuMTgsMCwwLDEsLjEuOTJ2Mi42OWEzLjI4LDMuMjgsMCwwLDEtLjA4 LjksMi4xOCwyLjE4LDAsMCwxLS45Mi4xaC03YTMuMjUsMy4yNSwwLDAsMS0uOS0uMDhoMGEyLjE4 LDIuMTgsMCwwLDEtLjEtLjkyVjE4Ljc2YTMuMjgsMy4yOCwwLDAsMSwuMDgtLjksMi4xOCwyLjE4 LDAsMCwxLC45Mi0uMWg3bTAtMWgtN2MtMS42NSwwLTIsLjM1LTIsMnYyLjY5YzAsMS42NS4zNSwy LDIsMmg3YzEuNjUsMCwyLS4zNSwyLTJWMTguNzZjMC0xLjY1LS4zNS0yLTItMloiLz48cmVjdCBj bGFzcz0iY2xzLTEiIHg9IjEzLjcxIiB5PSIxMC43NiIgd2lkdGg9IjkuOTgiIGhlaWdodD0iMTgu NjkiIHJ4PSIxLjUiIHJ5PSIxLjUiLz48cGF0aCBjbGFzcz0iY2xzLTIiIGQ9Ik0yMi4yLDExLjI2 YTMuMjUsMy4yNSwwLDAsMSwuOS4wOGgwYTIuMTgsMi4xOCwwLDAsMSwuMS45MlYyNy45NWEzLjI4 LDMuMjgsMCwwLDEtLjA4LjksMi4xOCwyLjE4LDAsMCwxLS45Mi4xaC03YTMuMjUsMy4yNSwwLDAs MS0uOS0uMDhoMGEyLjE4LDIuMTgsMCwwLDEtLjEtLjkyVjEyLjI2YTMuMjgsMy4yOCwwLDAsMSwu MDgtLjksMi4xOCwyLjE4LDAsMCwxLC45Mi0uMWg3bTAtMWgtN2MtMS42NSwwLTIsLjM1LTIsMlYy Ny45NWMwLDEuNjUuMzUsMiwyLDJoN2MxLjY1LDAsMi0uMzUsMi0yVjEyLjI2YzAtMS42NS0uMzUt Mi0yLTJaIi8+PGxpbmUgY2xhc3M9ImNscy0zIiB4MT0iMTQuMSIgeTE9IjE3LjE3IiB4Mj0iMjMu MzQiIHkyPSIxNy4xNyIvPjxsaW5lIGNsYXNzPSJjbHMtMyIgeDE9IjE0LjEiIHkxPSIyMy40IiB4 Mj0iMjMuMzQiIHkyPSIyMy40Ii8+PHBhdGggY2xhc3M9ImNscy00IiBkPSJNMjguODcsMjcuNDdB NC40Miw0LjQyLDAsMCwwLDMwLjkyLDI3LDIuODEsMi44MSwwLDAsMCwzMiwyNS44OGEzLjU5LDMu NTksMCwwLDAsLjQtMS40YzAtLjUuMDctLjM2LjA5LS44M2E5LjI4LDkuMjgsMCwwLDEsLjExLTEu MiwyLjc2LDIuNzYsMCwwLDEsLjI2LS44MywyLjM3LDIuMzcsMCwwLDEsLjQ0LS42LDIuNTMsMi41 MywwLDAsMSwuNjItLjQ2LDQsNCwwLDAsMSwuNjQtLjI3LDMuNSwzLjUsMCwwLDEsLjYtLjEzYy4x OSwwLC4xOS0uMSwwLS4xMmEzLjUyLDMuNTIsMCwwLDEtLjYtLjEzLDMuNjUsMy42NSwwLDAsMS0u NjQtLjI3LDIuNTIsMi41MiwwLDAsMS0uNjItLjQ2LDIuNDEsMi40MSwwLDAsMS0uNDQtLjYsMi43 NywyLjc3LDAsMCwxLS4yNi0uODMsOS4zMSw5LjMxLDAsMCwxLS4xMS0xLjJjMC0uNDcsMC0uMzMt LjA5LS44M2EzLjU4LDMuNTgsMCwwLDAtLjQtMS40LDIuODIsMi44MiwwLDAsMC0xLjA2LTEuMDgs NC40Nyw0LjQ3LDAsMCwwLTIuMDUtLjUxVjEyLjNsLjUzLDBhNC4xMSw0LjExLDAsMCwxLC42Ny4x MSw1LjEyLDUuMTIsMCwwLDEsLjcyLjIzLDIuODksMi44OSwwLDAsMSwuNy40MSwzLjM0LDMuMzQs MCwwLDEsLjgzLjksMy42NiwzLjY2LDAsMCwxLC40MywxLjA3LDcsNywwLDAsMSwuMTYsMS4yOWMw LC40NywwLS4xMiwwLS4xMmE3LjksNy45LDAsMCwwLC4xMiwxLjUsMi4zNywyLjM3LDAsMCwwLC40 NywxLjA2LDIuNjUsMi42NSwwLDAsMCwxLC43My42OS42OSwwLDAsMSwwLDEuMTcsMi42NiwyLjY2 LDAsMCwwLTEsLjczQTIuMzksMi4zOSwwLDAsMCwzMywyMi40N2E3LjksNy45LDAsMCwwLS4xMiwx LjVzLS4wOS43OC0uMTgsMS4xN2EzLjY1LDMuNjUsMCwwLDEtLjQzLDEuMDcsMy4zMSwzLjMxLDAs MCwxLS44My45LDIuOSwyLjksMCwwLDEtLjcuNDEsNS4zOSw1LjM5LDAsMCwxLS43Mi4yMyw0LjM0 LDQuMzQsMCwwLDEtLjY3LjExbC0uNTMsMFoiLz48cmVjdCBjbGFzcz0iY2xzLTUiIHg9IjQwLjMi IHk9IjQxLjA1IiB3aWR0aD0iOS45OCIgaGVpZ2h0PSI1LjY5IiByeD0iMS41IiByeT0iMS41Ii8+ PHBhdGggY2xhc3M9ImNscy02IiBkPSJNNDguNzksNDEuNTVhMy4yNSwzLjI1LDAsMCwxLC45LjA4 aDBhMi4xNywyLjE3LDAsMCwxLC4xLjkydjIuNjlhMy4yOCwzLjI4LDAsMCwxLS4wOC45LDIuMTgs Mi4xOCwwLDAsMS0uOTIuMWgtN2EzLjI1LDMuMjUsMCwwLDEtLjktLjA4aDBhMi4xOCwyLjE4LDAs MCwxLS4xLS45MlY0Mi41NWEzLjI4LDMuMjgsMCwwLDEsLjA4LS45LDIuMTgsMi4xOCwwLDAsMSwu OTItLjFoN20wLTFoLTdjLTEuNjUsMC0yLC4zNS0yLDJ2Mi42OWMwLDEuNjUuMzUsMiwyLDJoN2Mx LjY1LDAsMi0uMzUsMi0yVjQyLjU1YzAtMS42NS0uMzUtMi0yLTJaIi8+PHJlY3QgY2xhc3M9ImNs cy01IiB4PSIxMy43OSIgeT0iMzQuNTUiIHdpZHRoPSI5Ljk4IiBoZWlnaHQ9IjE4LjY5IiByeD0i MS41IiByeT0iMS41Ii8+PHBhdGggY2xhc3M9ImNscy02IiBkPSJNMjIuMjgsMzUuMDVhMy4yNSwz LjI1LDAsMCwxLC45LjA4aDBhMi4xNywyLjE3LDAsMCwxLC4xLjkyVjUxLjc0YTMuMjgsMy4yOCww LDAsMS0uMDguOSwyLjE4LDIuMTgsMCwwLDEtLjkyLjFoLTdhMy4yNSwzLjI1LDAsMCwxLS45LS4w OGgwYTIuMTgsMi4xOCwwLDAsMS0uMS0uOTJWMzYuMDVhMy4yOCwzLjI4LDAsMCwxLC4wOC0uOSwy LjE4LDIuMTgsMCwwLDEsLjkyLS4xaDdtMC0xaC03Yy0xLjY1LDAtMiwuMzUtMiwyVjUxLjc0YzAs MS42NS4zNSwyLDIsMmg3YzEuNjUsMCwyLS4zNSwyLTJWMzYuMDVjMC0xLjY1LS4zNS0yLTItMloi Lz48bGluZSBjbGFzcz0iY2xzLTciIHgxPSIxNC4xOCIgeTE9IjQwLjk3IiB4Mj0iMjMuNDIiIHky PSI0MC45NyIvPjxsaW5lIGNsYXNzPSJjbHMtNyIgeDE9IjE0LjE4IiB5MT0iNDcuMiIgeDI9IjIz LjQyIiB5Mj0iNDcuMiIvPjxwYXRoIGNsYXNzPSJjbHMtNCIgZD0iTTI4Ljg3LDUxLjI2YTQuNDIs NC40MiwwLDAsMCwyLjA1LS41MUEyLjgxLDIuODEsMCwwLDAsMzIsNDkuNjdhMy41OSwzLjU5LDAs MCwwLC40LTEuNGMwLS41LjA3LS4zNi4wOS0uODNhOS4yOCw5LjI4LDAsMCwxLC4xMS0xLjIsMi43 NiwyLjc2LDAsMCwxLC4yNi0uODMsMi4zNywyLjM3LDAsMCwxLC40NC0uNiwyLjUzLDIuNTMsMCww LDEsLjYyLS40Niw0LDQsMCwwLDEsLjY0LS4yNywzLjUsMy41LDAsMCwxLC42LS4xM2MuMTksMCwu MTktLjEsMC0uMTJhMy41MiwzLjUyLDAsMCwxLS42LS4xMywzLjY1LDMuNjUsMCwwLDEtLjY0LS4y NywyLjUyLDIuNTIsMCwwLDEtLjYyLS40NiwyLjQxLDIuNDEsMCwwLDEtLjQ0LS42LDIuNzcsMi43 NywwLDAsMS0uMjYtLjgzLDkuMzEsOS4zMSwwLDAsMS0uMTEtMS4yYzAtLjQ3LDAtLjMzLS4wOS0u ODNhMy41OCwzLjU4LDAsMCwwLS40LTEuNEEyLjgyLDIuODIsMCwwLDAsMzAuOTIsMzdhNC40Nyw0 LjQ3LDAsMCwwLTIuMDUtLjUxVjM2LjFsLjUzLDBhNC4xMSw0LjExLDAsMCwxLC42Ny4xMSw1LjEy LDUuMTIsMCwwLDEsLjcyLjIzLDIuODksMi44OSwwLDAsMSwuNy40MSwzLjM0LDMuMzQsMCwwLDEs LjgzLjksMy42NiwzLjY2LDAsMCwxLC40MywxLjA3LDcsNywwLDAsMSwuMTYsMS4yOWMwLC40Nyww LS4xMiwwLS4xMmE3LjksNy45LDAsMCwwLC4xMiwxLjUsMi4zNywyLjM3LDAsMCwwLC40NywxLjA2 LDIuNjUsMi42NSwwLDAsMCwxLC43My42OS42OSwwLDAsMSwwLDEuMTcsMi42NiwyLjY2LDAsMCww LTEsLjczQTIuMzksMi4zOSwwLDAsMCwzMyw0Ni4yN2E3LjksNy45LDAsMCwwLS4xMiwxLjVzLS4w OS43OC0uMTgsMS4xN0EzLjY1LDMuNjUsMCwwLDEsMzIuMzIsNTBhMy4zMSwzLjMxLDAsMCwxLS44 My45LDIuOSwyLjksMCwwLDEtLjcuNDEsNS4zOSw1LjM5LDAsMCwxLS43Mi4yMyw0LjM0LDQuMzQs MCwwLDEtLjY3LjExbC0uNTMsMFoiLz48bGluZSBjbGFzcz0iY2xzLTgiIHgxPSIxNC4xIiB5MT0i MjkuMDUiIHgyPSIyMy4zNCIgeTI9IjEwLjk5Ii8+PGxpbmUgY2xhc3M9ImNscy04IiB4MT0iMTQu MTgiIHkxPSI1Mi45MiIgeDI9IjIzLjQyIiB5Mj0iMzQuODciLz48L3N2Zz4KXCBObyBuZXdsaW5l IGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9zdGF0aWMvanMvRXhwbGFp bi9pbWcvZXhfdW5rbm93bi5zdmcgYi93ZWIvcGdhZG1pbi9zdGF0aWMvanMvRXhwbGFpbi9pbWcv ZXhfdW5rbm93bi5zdmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwLi4zYWY2 OTU3NGQKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9zdGF0aWMvanMvRXhwbGFpbi9p bWcvZXhfdW5rbm93bi5zdmcKQEAgLTAsMCArMSBAQAorPHN2ZyBpZD0iXzEiIGRhdGEtbmFtZT0i MSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgNjQgNjQi PjxkZWZzPjxzdHlsZT4uY2xzLTF7ZmlsbDojMWNhZmU0O308L3N0eWxlPjwvZGVmcz48dGl0bGU+ ZXhfdW5rbm93bjwvdGl0bGU+PHBhdGggY2xhc3M9ImNscy0xIiBkPSJNMjMuMzQsMTMuMmExNC43 NiwxNC43NiwwLDAsMSw4LjE2LTIuMTQsMTcuNTcsMTcuNTcsMCwwLDEsMTAuNTYsM3E0LjIsMyw0 LjIsOWExMC4xOCwxMC4xOCwwLDAsMS0xLjgyLDYuMTYsMjEsMjEsMCwwLDEtNC4wOSwzLjg4bC0y LDEuNTVhNiw2LDAsMCwwLTIuMTYsM0ExMi41LDEyLjUsMCwwLDAsMzUuODMsNDFIMjguMmEyMi4x MSwyMi4xMSwwLDAsMSwuOS02LjU3LDExLjU3LDExLjU3LDAsMCwxLDMuNzYtNC4xOGwyLTEuNkE3 LjE3LDcuMTcsMCwwLDAsMzYuNTMsMjdhNS42Nyw1LjY3LDAsMCwwLDEuMTItMy40LDYuNTgsNi41 OCwwLDAsMC0xLjI1LTMuOXEtMS4yNS0xLjc2LTQuNTYtMS43NnQtNC42MiwyLjE3YTguMzQsOC4z NCwwLDAsMC0xLjM2LDQuNUgxNy43NFExOC4wOCwxNi41NSwyMy4zNCwxMy4yWk0yOCw0NC44MWg4 LjQxdjguMTNIMjhaIi8+PC9zdmc+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0t Z2l0IGEvd2ViL3BnYWRtaW4vc3RhdGljL2pzL0V4cGxhaW4vaW1nL2V4X3VwZGF0ZS5zdmcgYi93 ZWIvcGdhZG1pbi9zdGF0aWMvanMvRXhwbGFpbi9pbWcvZXhfdXBkYXRlLnN2ZwpuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAuLjFmODJiYjFkYgotLS0gL2Rldi9udWxsCisrKyBi L3dlYi9wZ2FkbWluL3N0YXRpYy9qcy9FeHBsYWluL2ltZy9leF91cGRhdGUuc3ZnCkBAIC0wLDAg KzEgQEAKKzxzdmcgaWQ9Il8xIiBkYXRhLW5hbWU9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9y Zy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDY0IDY0Ij48ZGVmcz48c3R5bGU+LmNscy0xLC5jbHMt NXtmaWxsOiNmMGVjYjY7fS5jbHMtMntmaWxsOiNjMThmMzY7fS5jbHMtM3tmaWxsOiNmZmJkMzA7 fS5jbHMtNHtvcGFjaXR5OjAuODt9LmNscy01e3N0cm9rZTojYzE4ZjM2O3N0cm9rZS1taXRlcmxp bWl0OjEwO30uY2xzLTZ7ZmlsbDojYWRkZmYzO30uY2xzLTd7ZmlsbDojMjk4MGI5O308L3N0eWxl PjwvZGVmcz48dGl0bGU+ZXhfdXBkYXRlPC90aXRsZT48cGF0aCBjbGFzcz0iY2xzLTEiIGQ9Ik0x Ni43Myw1Ny40N2MtMS4zNywwLTEuNS0uMTMtMS41LTEuNVYxNS41M2g0MVY1NmMwLDEuMzctLjEz LDEuNS0xLjUsMS41WiIvPjxwYXRoIGNsYXNzPSJjbHMtMiIgZD0iTTU1LjcyLDE2VjU2YTMuMjgs My4yOCwwLDAsMS0uMDguOSwyLjE4LDIuMTgsMCwwLDEtLjkyLjFoLTM4YTMuMjUsMy4yNSwwLDAs MS0uOS0uMDhoMGEyLjE4LDIuMTgsMCwwLDEtLjEtLjkyVjE2aDQwbTEtMWgtNDJWNTZjMCwxLjY1 LjM1LDIsMiwyaDM4YzEuNjUsMCwyLS4zNSwyLTJWMTVaIi8+PHJlY3QgY2xhc3M9ImNscy0zIiB4 PSIzMi4xMiIgeT0iNDEuMiIgd2lkdGg9IjcuMjIiIGhlaWdodD0iNy40NCIvPjxyZWN0IGNsYXNz PSJjbHMtMyIgeD0iMjMuOTIiIHk9IjQxLjIiIHdpZHRoPSI3LjIyIiBoZWlnaHQ9IjcuNDQiLz48 cmVjdCBjbGFzcz0iY2xzLTMiIHg9IjE1LjcyIiB5PSIyNC40OCIgd2lkdGg9IjcuMjIiIGhlaWdo dD0iNy40NCIvPjxnIGNsYXNzPSJjbHMtNCI+PGxpbmUgY2xhc3M9ImNscy01IiB4MT0iMjMuNDMi IHkxPSI1Ni45NyIgeDI9IjIzLjQzIiB5Mj0iMTUuOTciLz48bGluZSBjbGFzcz0iY2xzLTUiIHgx PSIzOS44MyIgeTE9IjU2Ljk3IiB4Mj0iMzkuODMiIHkyPSIxNS45NyIvPjxsaW5lIGNsYXNzPSJj bHMtNSIgeDE9IjMxLjYzIiB5MT0iNTYuOTciIHgyPSIzMS42MyIgeTI9IjE1Ljk3Ii8+PGxpbmUg Y2xhc3M9ImNscy01IiB4MT0iNDguMDMiIHkxPSI1Ni45NyIgeDI9IjQ4LjAzIiB5Mj0iMTUuOTci Lz48bGluZSBjbGFzcz0iY2xzLTUiIHgxPSIxNS43MyIgeTE9IjIzLjk3IiB4Mj0iNTUuNyIgeTI9 IjIzLjk3Ii8+PGxpbmUgY2xhc3M9ImNscy01IiB4MT0iMTUuNzMiIHkxPSIzMi4zNCIgeDI9IjU1 LjciIHkyPSIzMi4zNCIvPjxsaW5lIGNsYXNzPSJjbHMtNSIgeDE9IjE1LjczIiB5MT0iNDAuNzEi IHgyPSI1NS43IiB5Mj0iNDAuNzEiLz48bGluZSBjbGFzcz0iY2xzLTUiIHgxPSIxNS43MyIgeTE9 IjQ5LjA4IiB4Mj0iNTUuNyIgeTI9IjQ5LjA4Ii8+PC9nPjxwYXRoIGNsYXNzPSJjbHMtNiIgZD0i TTQ4LDE1LjUzdi05aDYuNjljMS4zNywwLDEuNS4xMywxLjUsMS41djcuNVoiLz48cGF0aCBjbGFz cz0iY2xzLTciIGQ9Ik01NC43Myw3YTMuMjUsMy4yNSwwLDAsMSwuOS4wOGgwYTIuMTgsMi4xOCww LDAsMSwuMS45MnY3SDQ4LjUzVjdoNi4xOW0wLTFINDcuNTNWMTZoOS4xOVY4YzAtMS42NS0uMzUt Mi0yLTJaIi8+PHBhdGggY2xhc3M9ImNscy02IiBkPSJNMTUuMjMsMTUuNTNWOGMwLTEuMzcuMTMt MS41LDEuNS0xLjVoNi42OXY5WiIvPjxwYXRoIGNsYXNzPSJjbHMtNyIgZD0iTTIyLjkzLDd2OEgx NS43M1Y4YTMuMjgsMy4yOCwwLDAsMSwuMDgtLjksMi4xOCwyLjE4LDAsMCwxLC45Mi0uMWg2LjE5 bTEtMUgxNi43M2MtMS42NSwwLTIsLjM1LTIsMnY4aDkuMTlWNloiLz48cmVjdCBjbGFzcz0iY2xz LTYiIHg9IjM5LjgzIiB5PSI2LjUzIiB3aWR0aD0iOC4xOSIgaGVpZ2h0PSI5Ii8+PHBhdGggY2xh c3M9ImNscy03IiBkPSJNNDcuNTIsN3Y4SDQwLjMzVjdoNy4xOG0xLTFIMzkuMzNWMTZoOS4xOVY2 WiIvPjxyZWN0IGNsYXNzPSJjbHMtNiIgeD0iMzEuNjQiIHk9IjYuNTMiIHdpZHRoPSI4LjE5IiBo ZWlnaHQ9IjkiLz48cGF0aCBjbGFzcz0iY2xzLTciIGQ9Ik0zOS4zMyw3djhIMzIuMTRWN2g3LjE4 bTEtMUgzMS4xNFYxNmg5LjE5VjZaIi8+PHJlY3QgY2xhc3M9ImNscy02IiB4PSIyMy40NSIgeT0i Ni41MyIgd2lkdGg9IjguMTciIGhlaWdodD0iOSIvPjxwYXRoIGNsYXNzPSJjbHMtNyIgZD0iTTMx LjEyLDd2OEgyMy45NVY3aDcuMTdtMS0xSDIzVjE2aDkuMThWNloiLz48cGF0aCBjbGFzcz0iY2xz LTIiIGQ9Ik03LjI3LDI4LjI4QTMuMzcsMy4zNywwLDAsMSwxMywyNS44NWgwbC4xMy4xMy4wNS4w NUwyNC43MiwzNy41OGEuNC40LDAsMCwxLC4xOC4ybDEuNjMsNS44MnYuMDZoMGEuNDYuNDYsMCww LDEsMCwuMTIuNDEuNDEsMCwwLDEsMCwuMTJzMCwwLDAsMGgwYS40LjQsMCwwLDEtLjA2LjFsMCww LDAsMC0uMS4wNmgwbC0uMTIsMC0uMTIsMEgyNmwtNS44Mi0xLjYzYS40LjQsMCwwLDEtLjItLjE4 TDguMjIsMzAuNjRhLjQuNCwwLDAsMS0uMDgtLjEyQTMuMzUsMy4zNSwwLDAsMSw3LjI3LDI4LjI4 Wm0xMi45LDEzLjE1LDEtMmgwbC05LjkzLTkuOTNMOS43MywzMVptNSwuNTUtLjg0Ljg0LDEuMTcu MzNabS0xLTMuNDhMMjIsMzkuNmwtMS4wOSwyLjI2LDIuNTcuNzIsMS40OS0xLjQ5Wm0tLjQyLS43 TDEzLjM1LDI3LjM3bC0xLjUyLDEuNTIsOS45Myw5LjkzaDBaTTguMSwyOC4zMWEyLjU1LDIuNTUs MCwwLDAsLjgzLDEuODhoMGwuMjIuMjIsMy42Mi0zLjYyLS4yMi0uMjJoMEEyLjU2LDIuNTYsMCww LDAsOC4xLDI4LjMxWiIvPjxwb2x5Z29uIGNsYXNzPSJjbHMtMSIgcG9pbnRzPSIyMC4xNyA0MS40 NSAyMS4xNyAzOS40MiAyMS4xOCAzOS40MSAxMS4yNSAyOS40OCA5LjczIDMxIDIwLjE3IDQxLjQ1 Ii8+PHBvbHlnb24gY2xhc3M9ImNscy0xIiBwb2ludHM9IjEzLjM1IDI3LjM4IDExLjgzIDI4Ljkg MjEuNzYgMzguODMgMjEuNzcgMzguODIgMjMuNzkgMzcuODMgMTMuMzUgMjcuMzgiLz48cGF0aCBj bGFzcz0iY2xzLTEiIGQ9Ik04LjEyLDI4LjI3QTIuNTUsMi41NSwwLDAsMCw5LDMwLjE1SDlsLjIy LjIyLDMuNjItMy42Mi0uMjItLjIyaDBhMi41NiwyLjU2LDAsMCwwLTQuNDUsMS43M1oiLz48cG9s eWdvbiBjbGFzcz0iY2xzLTEiIHBvaW50cz0iMjQuMjIgMzguNTIgMjEuOTYgMzkuNiAyMC44NyA0 MS44NiAyMy40NCA0Mi41OCAyNC45NCA0MS4wOSAyNC4yMiAzOC41MiIvPjwvc3ZnPgpcIE5vIG5l d2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL3N0YXRpYy9qcy9F eHBsYWluL2ltZy9leF92YWx1ZXNfc2Nhbi5zdmcgYi93ZWIvcGdhZG1pbi9zdGF0aWMvanMvRXhw bGFpbi9pbWcvZXhfdmFsdWVzX3NjYW4uc3ZnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAwMC4uNDJjODMxOTAxCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vc3RhdGlj L2pzL0V4cGxhaW4vaW1nL2V4X3ZhbHVlc19zY2FuLnN2ZwpAQCAtMCwwICsxIEBACis8c3ZnIGlk PSJfMSIgZGF0YS1uYW1lPSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZp ZXdCb3g9IjAgMCA2NCA2NCI+PGRlZnM+PHN0eWxlPi5jbHMtMXtmaWxsOiNmMGVjYjY7fS5jbHMt MntmaWxsOiNjMThmMzU7fS5jbHMtM3tmaWxsOiMyOTgwYjk7c3Ryb2tlOiMyOTgwYjk7c3Ryb2tl LWxpbmVjYXA6cm91bmQ7c3Ryb2tlLWxpbmVqb2luOnJvdW5kO3N0cm9rZS13aWR0aDoycHg7fTwv c3R5bGU+PC9kZWZzPjx0aXRsZT5leF92YWx1ZXNfc2NhbjwvdGl0bGU+PHJlY3QgY2xhc3M9ImNs cy0xIiB4PSIyMC41IiB5PSIxNC4xNyIgd2lkdGg9IjYuOTgiIGhlaWdodD0iNS42OSIgcng9IjEu NSIgcnk9IjEuNSIvPjxwYXRoIGNsYXNzPSJjbHMtMiIgZD0iTTI2LDE0LjY3YTMuMjUsMy4yNSww LDAsMSwuOS4wOGgwYTIuMTgsMi4xOCwwLDAsMSwuMS45MnYyLjY5YTMuMjgsMy4yOCwwLDAsMS0u MDguOSwyLjE4LDIuMTgsMCwwLDEtLjkyLjFIMjJhMy4yNSwzLjI1LDAsMCwxLS45LS4wOGgwYTIu MTgsMi4xOCwwLDAsMS0uMS0uOTJWMTUuNjdhMy4yOCwzLjI4LDAsMCwxLC4wOC0uOSwyLjE4LDIu MTgsMCwwLDEsLjkyLS4xaDRtMC0xSDIyYy0xLjY1LDAtMiwuMzUtMiwydjIuNjljMCwxLjY1LjM1 LDIsMiwyaDRjMS42NSwwLDItLjM1LDItMlYxNS42N2MwLTEuNjUtLjM1LTItMi0yWiIvPjxyZWN0 IGNsYXNzPSJjbHMtMSIgeD0iMzMuNSIgeT0iMTcuMTciIHdpZHRoPSI2Ljk4IiBoZWlnaHQ9IjUu NjkiIHJ4PSIxLjUiIHJ5PSIxLjUiLz48cGF0aCBjbGFzcz0iY2xzLTIiIGQ9Ik0zOSwxNy42N2Ez LjI1LDMuMjUsMCwwLDEsLjkuMDhoMGEyLjE4LDIuMTgsMCwwLDEsLjEuOTJ2Mi42OWEzLjI4LDMu MjgsMCwwLDEtLjA4LjksMi4xOCwyLjE4LDAsMCwxLS45Mi4xSDM1YTMuMjUsMy4yNSwwLDAsMS0u OS0uMDhoMGEyLjE4LDIuMTgsMCwwLDEtLjEtLjkyVjE4LjY3YTMuMjgsMy4yOCwwLDAsMSwuMDgt LjksMi4xOCwyLjE4LDAsMCwxLC45Mi0uMWg0bTAtMUgzNWMtMS42NSwwLTIsLjM1LTIsMnYyLjY5 YzAsMS42NS4zNSwyLDIsMmg0YzEuNjUsMCwyLS4zNSwyLTJWMTguNjdjMC0xLjY1LS4zNS0yLTIt MloiLz48cmVjdCBjbGFzcz0iY2xzLTEiIHg9IjQ2LjUiIHk9IjIwLjE0IiB3aWR0aD0iNi45OCIg aGVpZ2h0PSI1LjY5IiByeD0iMS41IiByeT0iMS41Ii8+PHBhdGggY2xhc3M9ImNscy0yIiBkPSJN NTIsMjAuNjRhMy4yNSwzLjI1LDAsMCwxLC45LjA4aDBhMi4xNywyLjE3LDAsMCwxLC4xLjkydjIu NjlhMy4yOCwzLjI4LDAsMCwxLS4wOC45LDIuMTgsMi4xOCwwLDAsMS0uOTIuMUg0OGEzLjI1LDMu MjUsMCwwLDEtLjktLjA4aDBhMi4xOCwyLjE4LDAsMCwxLS4xLS45MlYyMS42NGEzLjI4LDMuMjgs MCwwLDEsLjA4LS45LDIuMTgsMi4xOCwwLDAsMSwuOTItLjFoNG0wLTFINDhjLTEuNjUsMC0yLC4z NS0yLDJ2Mi42OWMwLDEuNjUuMzUsMiwyLDJoNGMxLjY1LDAsMi0uMzUsMi0yVjIxLjY0YzAtMS42 NS0uMzUtMi0yLTJaIi8+PHJlY3QgY2xhc3M9ImNscy0xIiB4PSIyMC41IiB5PSIyNi4yNSIgd2lk dGg9IjYuOTgiIGhlaWdodD0iNS42OSIgcng9IjEuNSIgcnk9IjEuNSIvPjxwYXRoIGNsYXNzPSJj bHMtMiIgZD0iTTI2LDI2Ljc1YTMuMjUsMy4yNSwwLDAsMSwuOS4wOGgwYTIuMTcsMi4xNywwLDAs MSwuMS45MnYyLjY5YTMuMjgsMy4yOCwwLDAsMS0uMDguOSwyLjE4LDIuMTgsMCwwLDEtLjkyLjFI MjJhMy4yNSwzLjI1LDAsMCwxLS45LS4wOGgwYTIuMTgsMi4xOCwwLDAsMS0uMS0uOTJWMjcuNzVh My4yOCwzLjI4LDAsMCwxLC4wOC0uOSwyLjE4LDIuMTgsMCwwLDEsLjkyLS4xaDRtMC0xSDIyYy0x LjY1LDAtMiwuMzUtMiwydjIuNjljMCwxLjY1LjM1LDIsMiwyaDRjMS42NSwwLDItLjM1LDItMlYy Ny43NWMwLTEuNjUtLjM1LTItMi0yWiIvPjxyZWN0IGNsYXNzPSJjbHMtMSIgeD0iMzMuNSIgeT0i MjkuMjUiIHdpZHRoPSI2Ljk4IiBoZWlnaHQ9IjUuNjkiIHJ4PSIxLjUiIHJ5PSIxLjUiLz48cGF0 aCBjbGFzcz0iY2xzLTIiIGQ9Ik0zOSwyOS43NWEzLjI1LDMuMjUsMCwwLDEsLjkuMDhoMGEyLjE3 LDIuMTcsMCwwLDEsLjEuOTJ2Mi42OWEzLjI4LDMuMjgsMCwwLDEtLjA4LjksMi4xOCwyLjE4LDAs MCwxLS45Mi4xSDM1YTMuMjUsMy4yNSwwLDAsMS0uOS0uMDhoMGEyLjE4LDIuMTgsMCwwLDEtLjEt LjkyVjMwLjc1YTMuMjgsMy4yOCwwLDAsMSwuMDgtLjksMi4xOCwyLjE4LDAsMCwxLC45Mi0uMWg0 bTAtMUgzNWMtMS42NSwwLTIsLjM1LTIsMnYyLjY5YzAsMS42NS4zNSwyLDIsMmg0YzEuNjUsMCwy LS4zNSwyLTJWMzAuNzVjMC0xLjY1LS4zNS0yLTItMloiLz48cmVjdCBjbGFzcz0iY2xzLTEiIHg9 IjQ2LjUiIHk9IjMyLjIyIiB3aWR0aD0iNi45OCIgaGVpZ2h0PSI1LjY5IiByeD0iMS41IiByeT0i MS41Ii8+PHBhdGggY2xhc3M9ImNscy0yIiBkPSJNNTIsMzIuNzJhMy4yNSwzLjI1LDAsMCwxLC45 LjA4aDBhMi4xOCwyLjE4LDAsMCwxLC4xLjkydjIuNjlhMy4yOCwzLjI4LDAsMCwxLS4wOC45LDIu MTgsMi4xOCwwLDAsMS0uOTIuMUg0OGEzLjI1LDMuMjUsMCwwLDEtLjktLjA4aDBhMi4xOCwyLjE4 LDAsMCwxLS4xLS45MlYzMy43MmEzLjI4LDMuMjgsMCwwLDEsLjA4LS45LDIuMTgsMi4xOCwwLDAs MSwuOTItLjFoNG0wLTFINDhjLTEuNjUsMC0yLC4zNS0yLDJ2Mi42OWMwLDEuNjUuMzUsMiwyLDJo NGMxLjY1LDAsMi0uMzUsMi0yVjMzLjcyYzAtMS42NS0uMzUtMi0yLTJaIi8+PHJlY3QgY2xhc3M9 ImNscy0xIiB4PSIyMC41IiB5PSIzOC4xNyIgd2lkdGg9IjYuOTgiIGhlaWdodD0iNS42OSIgcng9 IjEuNSIgcnk9IjEuNSIvPjxwYXRoIGNsYXNzPSJjbHMtMiIgZD0iTTI2LDM4LjY3YTMuMjUsMy4y NSwwLDAsMSwuOS4wOGgwYTIuMTgsMi4xOCwwLDAsMSwuMS45MnYyLjY5YTMuMjgsMy4yOCwwLDAs MS0uMDguOSwyLjE4LDIuMTgsMCwwLDEtLjkyLjFIMjJhMy4yNSwzLjI1LDAsMCwxLS45LS4wOGgw YTIuMTgsMi4xOCwwLDAsMS0uMS0uOTJWMzkuNjdhMy4yOCwzLjI4LDAsMCwxLC4wOC0uOSwyLjE4 LDIuMTgsMCwwLDEsLjkyLS4xaDRtMC0xSDIyYy0xLjY1LDAtMiwuMzUtMiwydjIuNjljMCwxLjY1 LjM1LDIsMiwyaDRjMS42NSwwLDItLjM1LDItMlYzOS42N2MwLTEuNjUtLjM1LTItMi0yWiIvPjxy ZWN0IGNsYXNzPSJjbHMtMSIgeD0iMzMuNSIgeT0iNDEuMTciIHdpZHRoPSI2Ljk4IiBoZWlnaHQ9 IjUuNjkiIHJ4PSIxLjUiIHJ5PSIxLjUiLz48cGF0aCBjbGFzcz0iY2xzLTIiIGQ9Ik0zOSw0MS42 N2EzLjI1LDMuMjUsMCwwLDEsLjkuMDhoMGEyLjE4LDIuMTgsMCwwLDEsLjEuOTJ2Mi42OWEzLjI4 LDMuMjgsMCwwLDEtLjA4LjksMi4xOCwyLjE4LDAsMCwxLS45Mi4xSDM1YTMuMjUsMy4yNSwwLDAs MS0uOS0uMDhoMGEyLjE4LDIuMTgsMCwwLDEtLjEtLjkyVjQyLjY3YTMuMjgsMy4yOCwwLDAsMSwu MDgtLjksMi4xOCwyLjE4LDAsMCwxLC45Mi0uMWg0bTAtMUgzNWMtMS42NSwwLTIsLjM1LTIsMnYy LjY5YzAsMS42NS4zNSwyLDIsMmg0YzEuNjUsMCwyLS4zNSwyLTJWNDIuNjdjMC0xLjY1LS4zNS0y LTItMloiLz48cmVjdCBjbGFzcz0iY2xzLTEiIHg9IjQ2LjUiIHk9IjQ0LjE0IiB3aWR0aD0iNi45 OCIgaGVpZ2h0PSI1LjY5IiByeD0iMS41IiByeT0iMS41Ii8+PHBhdGggY2xhc3M9ImNscy0yIiBk PSJNNTIsNDQuNjRhMy4yNSwzLjI1LDAsMCwxLC45LjA4aDBhMi4xNywyLjE3LDAsMCwxLC4xLjky djIuNjlhMy4yOCwzLjI4LDAsMCwxLS4wOC45LDIuMTgsMi4xOCwwLDAsMS0uOTIuMUg0OGEzLjI1 LDMuMjUsMCwwLDEtLjktLjA4aDBhMi4xOCwyLjE4LDAsMCwxLS4xLS45MlY0NS42NGEzLjI4LDMu MjgsMCwwLDEsLjA4LS45LDIuMTgsMi4xOCwwLDAsMSwuOTItLjFoNG0wLTFINDhjLTEuNjUsMC0y LC4zNS0yLDJ2Mi42OWMwLDEuNjUuMzUsMiwyLDJoNGMxLjY1LDAsMi0uMzUsMi0yVjQ1LjY0YzAt MS42NS0uMzUtMi0yLTJaIi8+PHBvbHlnb24gY2xhc3M9ImNscy0zIiBwb2ludHM9IjEzLjQ5IDQ5 LjQ5IDEwLjAxIDQ0Ljg1IDE2Ljk3IDQ0Ljg1IDEzLjQ5IDQ5LjQ5Ii8+PGxpbmUgY2xhc3M9ImNs cy0zIiB4MT0iMTMuNDkiIHkxPSI0NS40OCIgeDI9IjEzLjQ5IiB5Mj0iMTQuNTEiLz48L3N2Zz4K XCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9zdGF0 aWMvanMvRXhwbGFpbi9pbWcvZXhfd2luZG93X2FnZ3JlZ2F0ZS5zdmcgYi93ZWIvcGdhZG1pbi9z dGF0aWMvanMvRXhwbGFpbi9pbWcvZXhfd2luZG93X2FnZ3JlZ2F0ZS5zdmcKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwLi44NWIzYzg1NWMKLS0tIC9kZXYvbnVsbAorKysgYi93 ZWIvcGdhZG1pbi9zdGF0aWMvanMvRXhwbGFpbi9pbWcvZXhfd2luZG93X2FnZ3JlZ2F0ZS5zdmcK QEAgLTAsMCArMSBAQAorPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZp ZXdCb3g9IjAgMCA2NCA2NCI+PGRlZnM+PHN0eWxlPi5jbHMtMXtmaWxsOiNmMGVjYjY7fS5jbHMt MntmaWxsOiNjMThmMzU7fS5jbHMtMywuY2xzLTh7ZmlsbDojYzhmZmFjO30uY2xzLTR7ZmlsbDoj NDhkNjAxO30uY2xzLTV7ZmlsbDojZDNkNGYzO30uY2xzLTZ7ZmlsbDojNjY2YmQxO30uY2xzLTEw LC5jbHMtNywuY2xzLTl7ZmlsbDpub25lO30uY2xzLTd7c3Ryb2tlOiM2NjZiZDE7fS5jbHMtMTAs LmNscy0xMSwuY2xzLTcsLmNscy05e3N0cm9rZS1saW5lam9pbjpyb3VuZDt9LmNscy03LC5jbHMt OXtvcGFjaXR5OjAuODt9LmNscy04e3N0cm9rZTojNDhkNjAxO3N0cm9rZS1taXRlcmxpbWl0OjEw O29wYWNpdHk6MC43O30uY2xzLTl7c3Ryb2tlOiNjMThmMzU7fS5jbHMtMTAsLmNscy0xMXtzdHJv a2U6IzM0NDk1ZTt9LmNscy0xMHtzdHJva2UtbGluZWNhcDpyb3VuZDt9LmNscy0xMXtmaWxsOiMz NDQ5NWU7fTwvc3R5bGU+PC9kZWZzPjx0aXRsZT5leF93aW5kb3dfYWdncmVnYXRlPC90aXRsZT48 ZyBpZD0iZXhfYnJvYWRjYXN0X21vdGlvbiI+PHJlY3QgY2xhc3M9ImNscy0xIiB4PSI0MC42NyIg eT0iMjcuMzEiIHdpZHRoPSI4LjI4IiBoZWlnaHQ9IjkiLz48cGF0aCBjbGFzcz0iY2xzLTIiIGQ9 Ik00OC40NSwyNy44MXY4SDQxLjE3di04aDcuMjhtMS0xSDQwLjE3djEwaDkuMjh2LTEwWiIvPjxy ZWN0IGNsYXNzPSJjbHMtMSIgeD0iNDguOTciIHk9IjI3LjMxIiB3aWR0aD0iOC4yOCIgaGVpZ2h0 PSI5Ii8+PHBhdGggY2xhc3M9ImNscy0yIiBkPSJNNTYuNzUsMjcuODF2OEg0OS40N3YtOGg3LjI4 bTEtMUg0OC40N3YxMGg5LjI4di0xMFoiLz48cGF0aCBjbGFzcz0iY2xzLTMiIGQ9Ik00Mi4xNyw0 NS4yOWMtMS4zNywwLTEuNS0uMTMtMS41LTEuNXYtNy41aDguMjh2OVoiLz48cGF0aCBjbGFzcz0i Y2xzLTQiIGQ9Ik00OC40NSwzNi43OXY4SDQyLjE3YTMuMjUsMy4yNSwwLDAsMS0uOS0uMDhoMGEy LjE3LDIuMTcsMCwwLDEtLjEtLjkydi03aDcuMjhtMS0xSDQwLjE3djhjMCwxLjY1LjM1LDIsMiwy aDcuMjh2LTEwWiIvPjxwYXRoIGNsYXNzPSJjbHMtMyIgZD0iTTQ5LDQ1LjI5di05aDguMjh2Ny41 YzAsMS4zNy0uMTMsMS41LTEuNSwxLjVaIi8+PHBhdGggY2xhc3M9ImNscy00IiBkPSJNNTYuNzUs MzYuNzl2N2EzLjI4LDMuMjgsMCwwLDEtLjA4LjksMi4xOCwyLjE4LDAsMCwxLS45Mi4xSDQ5LjQ3 di04aDcuMjhtMS0xSDQ4LjQ3djEwaDcuMjhjMS42NSwwLDItLjM1LDItMnYtOFoiLz48cGF0aCBj bGFzcz0iY2xzLTUiIGQ9Ik00MC42NywyNy4zM3YtNy41YzAtMS4zNy4xMy0xLjUsMS41LTEuNWg2 Ljc4djlaIi8+PHBhdGggY2xhc3M9ImNscy02IiBkPSJNNDguNDUsMTguODN2OEg0MS4xN3YtN2Ez LjI4LDMuMjgsMCwwLDEsLjA4LS45LDIuMTgsMi4xOCwwLDAsMSwuOTItLjFoNi4yOG0xLTFINDIu MTdjLTEuNjUsMC0yLC4zNS0yLDJ2OGg5LjI4di0xMFoiLz48cGF0aCBjbGFzcz0iY2xzLTUiIGQ9 Ik00OSwyNy4zM3YtOWg2Ljc4YzEuMzcsMCwxLjUuMTMsMS41LDEuNXY3LjVaIi8+PHBhdGggY2xh c3M9ImNscy02IiBkPSJNNTUuNzUsMTguODNhMy4yNSwzLjI1LDAsMCwxLC45LjA4aDBhMi4xNywy LjE3LDAsMCwxLC4xLjkydjdINDkuNDd2LThoNi4yOG0wLTFINDguNDd2MTBoOS4yOHYtOGMwLTEu NjUtLjM1LTItMi0yWiIvPjxwYXRoIGNsYXNzPSJjbHMtNSIgZD0iTTExLjI4LDI1LjQ5VjE0YzAt MS4zNy4xMy0xLjUsMS41LTEuNWg1Ljc4djEzWiIvPjxwYXRoIGNsYXNzPSJjbHMtNiIgZD0iTTE4 LjA2LDEzVjI1SDExLjc4VjE0YTMuMjgsMy4yOCwwLDAsMSwuMDgtLjksMi4xOCwyLjE4LDAsMCwx LC45Mi0uMWg1LjI4bTEtMUgxMi43OGMtMS42NSwwLTIsLjM1LTIsMlYyNmg4LjI4VjEyWiIvPjxw YXRoIGNsYXNzPSJjbHMtNSIgZD0iTTE4LjU3LDI1LjQ5di0xM2g1Ljc4YzEuMzcsMCwxLjUuMTMs MS41LDEuNXYxMS41WiIvPjxwYXRoIGNsYXNzPSJjbHMtNiIgZD0iTTI0LjM1LDEzYTMuMjUsMy4y NSwwLDAsMSwuOS4wOGgwYTIuMTgsMi4xOCwwLDAsMSwuMS45MlYyNUgxOS4wN1YxM2g1LjI4bTAt MUgxOC4wN1YyNmg4LjI4VjE0YzAtMS42NS0uMzUtMi0yLTJaIi8+PGxpbmUgY2xhc3M9ImNscy03 IiB4MT0iMTEuMzEiIHkxPSIxOC44MyIgeDI9IjE4LjA1IiB5Mj0iMTguODMiLz48bGluZSBjbGFz cz0iY2xzLTciIHgxPSIxOC4zMyIgeTE9IjE4LjgzIiB4Mj0iMjUuODIiIHkyPSIxOC44MyIvPjxw YXRoIGNsYXNzPSJjbHMtMyIgZD0iTTEyLjc4LDUxLjUxYy0xLjM3LDAtMS41LS4xMy0xLjUtMS41 VjM4LjUxaDcuMjh2MTNaIi8+PHBhdGggY2xhc3M9ImNscy00IiBkPSJNMTguMDYsMzlWNTFIMTIu NzhhMy4yNSwzLjI1LDAsMCwxLS45LS4wOGgwYTIuMTgsMi4xOCwwLDAsMS0uMS0uOTJWMzloNi4y OG0xLTFIMTAuNzhWNTBjMCwxLjY1LjM1LDIsMiwyaDYuMjhWMzhaIi8+PHBhdGggY2xhc3M9ImNs cy0zIiBkPSJNMTguNTcsNTEuNTF2LTEzaDcuMjhWNTBjMCwxLjM3LS4xMywxLjUtMS41LDEuNVoi Lz48cGF0aCBjbGFzcz0iY2xzLTQiIGQ9Ik0yNS4zNSwzOVY1MGEzLjI4LDMuMjgsMCwwLDEtLjA4 LjksMi4xOCwyLjE4LDAsMCwxLS45Mi4xSDE5LjA3VjM5aDYuMjhtMS0xSDE4LjA3VjUyaDYuMjhj MS42NSwwLDItLjM1LDItMlYzOFoiLz48bGluZSBjbGFzcz0iY2xzLTgiIHgxPSIxOC4zMyIgeTE9 IjQ0Ljg2IiB4Mj0iMjUuODIiIHkyPSI0NC44NiIvPjxsaW5lIGNsYXNzPSJjbHMtOCIgeDE9IjEx LjMxIiB5MT0iNDQuODYiIHgyPSIxOC4wNSIgeTI9IjQ0Ljg2Ii8+PHJlY3QgY2xhc3M9ImNscy0x IiB4PSIxOC41NyIgeT0iMjUuNDkiIHdpZHRoPSI3LjI4IiBoZWlnaHQ9IjEzIi8+PHBhdGggY2xh c3M9ImNscy0yIiBkPSJNMjUuMzUsMjZWMzhIMTkuMDdWMjZoNi4yOG0xLTFIMTguMDdWMzloOC4y OFYyNVoiLz48bGluZSBjbGFzcz0iY2xzLTkiIHgxPSIxOC4zMyIgeTE9IjMxLjg0IiB4Mj0iMjUu ODIiIHkyPSIzMS44NCIvPjxyZWN0IGNsYXNzPSJjbHMtMSIgeD0iMTEuMjgiIHk9IjI1LjQ5IiB3 aWR0aD0iNy4yOCIgaGVpZ2h0PSIxMyIvPjxwYXRoIGNsYXNzPSJjbHMtMiIgZD0iTTE4LjA2LDI2 VjM4SDExLjc4VjI2aDYuMjhtMS0xSDEwLjc4VjM5aDguMjhWMjVaIi8+PGxpbmUgY2xhc3M9ImNs cy05IiB4MT0iMTEuMzEiIHkxPSIzMS44NCIgeDI9IjE4LjA1IiB5Mj0iMzEuODQiLz48cmVjdCBj bGFzcz0iY2xzLTEwIiB4PSI2LjI1IiB5PSIxOC44NCIgd2lkdGg9IjI1IiBoZWlnaHQ9IjI1Ljk5 IiByeD0iMiIgcnk9IjIiLz48cG9seWdvbiBjbGFzcz0iY2xzLTExIiBwb2ludHM9IjM5LjMyIDIy Ljk1IDM2LjY4IDI0LjkzIDM2LjY4IDIwLjk4IDM5LjMyIDIyLjk1Ii8+PGxpbmUgY2xhc3M9ImNs cy0xMCIgeDE9IjM3LjE0IiB5MT0iMjMuMDUiIHgyPSIzMS4yNSIgeTI9IjIzLjA5Ii8+PHBvbHln b24gY2xhc3M9ImNscy0xMSIgcG9pbnRzPSIzOS4zMiAzMS44NCAzNi42OCAzMy44MiAzNi42OCAy OS44NiAzOS4zMiAzMS44NCIvPjxsaW5lIGNsYXNzPSJjbHMtMTAiIHgxPSIzNy4xNCIgeTE9IjMx Ljk0IiB4Mj0iMzEuMjUiIHkyPSIzMS45OCIvPjxwb2x5Z29uIGNsYXNzPSJjbHMtMTEiIHBvaW50 cz0iMzkuMzIgNDAuNiAzNi42OCA0Mi41OCAzNi42OCAzOC42MyAzOS4zMiA0MC42Ii8+PGxpbmUg Y2xhc3M9ImNscy0xMCIgeDE9IjM3LjE0IiB5MT0iNDAuNyIgeDI9IjMxLjI1IiB5Mj0iNDAuNzUi Lz48L2c+PC9zdmc+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvd2Vi L3BnYWRtaW4vc3RhdGljL2pzL0V4cGxhaW4vaW1nL2V4X3dvcmt0YWJsZV9zY2FuLnN2ZyBiL3dl Yi9wZ2FkbWluL3N0YXRpYy9qcy9FeHBsYWluL2ltZy9leF93b3JrdGFibGVfc2Nhbi5zdmcKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwLi5lZWJjMDE2OWMKLS0tIC9kZXYvbnVs bAorKysgYi93ZWIvcGdhZG1pbi9zdGF0aWMvanMvRXhwbGFpbi9pbWcvZXhfd29ya3RhYmxlX3Nj YW4uc3ZnCkBAIC0wLDAgKzEgQEAKKzxzdmcgaWQ9Il8xIiBkYXRhLW5hbWU9IjEiIHhtbG5zPSJo dHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDY0IDY0Ij48ZGVmcz48c3R5 bGU+LmNscy0xLC5jbHMtOXtmaWxsOiMyOTgwYjk7fS5jbHMtMSwuY2xzLTJ7c3Ryb2tlOiMyOTgw Yjk7fS5jbHMtMSwuY2xzLTIsLmNscy02LC5jbHMtN3tzdHJva2UtbGluZWpvaW46cm91bmQ7fS5j bHMtMiwuY2xzLTYsLmNscy03e2ZpbGw6bm9uZTt9LmNscy0ye3N0cm9rZS1saW5lY2FwOnJvdW5k O3N0cm9rZS13aWR0aDoycHg7fS5jbHMtM3tmaWxsOiNmM2M3ZDc7fS5jbHMtNHtmaWxsOiNkMDQ0 NjU7fS5jbHMtNXtvcGFjaXR5OjAuNTt9LmNscy02LC5jbHMtN3tzdHJva2U6I2QwNDQ2NTt9LmNs cy03e29wYWNpdHk6MC44O30uY2xzLTh7ZmlsbDojYWRkZmYzO30uY2xzLTEwe2ZvbnQtc2l6ZTox MHB4O2ZpbGw6IzM0NDk1ZTtmb250LWZhbWlseTpIZWx2ZXRpY2FOZXVlLUJvbGQsIEhlbHZldGlj YSBOZXVlO2ZvbnQtd2VpZ2h0OjcwMDt9LmNscy0xMCwuY2xzLTEye2xldHRlci1zcGFjaW5nOjAu MWVtO30uY2xzLTExe2xldHRlci1zcGFjaW5nOjAuMDFlbTt9PC9zdHlsZT48L2RlZnM+PHRpdGxl PmV4X3dvcmt0YWJsZV9zY2FuPC90aXRsZT48cG9seWdvbiBjbGFzcz0iY2xzLTEiIHBvaW50cz0i OS43MiA1MC43OCA2LjI1IDQ2LjE0IDEzLjIgNDYuMTQgOS43MiA1MC43OCIvPjxsaW5lIGNsYXNz PSJjbHMtMiIgeDE9IjkuNzIiIHkxPSI0Ni43NyIgeDI9IjkuNzIiIHkyPSIxNS44Ii8+PHBhdGgg Y2xhc3M9ImNscy0zIiBkPSJNMTcuNzYsNTcuNDdjLTEuMzcsMC0xLjUtLjEzLTEuNS0xLjVWMTUu NTNoNDFWNTZjMCwxLjM3LS4xMywxLjUtMS41LDEuNVoiLz48cGF0aCBjbGFzcz0iY2xzLTQiIGQ9 Ik01Ni43NSwxNlY1NmEzLjI4LDMuMjgsMCwwLDEtLjA4LjksMi4xOCwyLjE4LDAsMCwxLS45Mi4x aC0zOGEzLjI1LDMuMjUsMCwwLDEtLjktLjA4aDBhMi4xNywyLjE3LDAsMCwxLS4xLS45MlYxNmg0 MG0xLTFoLTQyVjU2YzAsMS42NS4zNSwyLDIsMmgzOGMxLjY1LDAsMi0uMzUsMi0yVjE1WiIvPjxn IGNsYXNzPSJjbHMtNSI+PGxpbmUgY2xhc3M9ImNscy02IiB4MT0iMjQuNDYiIHkxPSI1Ni45NyIg eDI9IjI0LjQ2IiB5Mj0iMTUuOTciLz48bGluZSBjbGFzcz0iY2xzLTYiIHgxPSI0MC44NiIgeTE9 IjU2Ljk3IiB4Mj0iNDAuODYiIHkyPSIxNS45NyIvPjxsaW5lIGNsYXNzPSJjbHMtNiIgeDE9IjMy LjY2IiB5MT0iNTYuOTciIHgyPSIzMi42NiIgeTI9IjE1Ljk3Ii8+PGxpbmUgY2xhc3M9ImNscy02 IiB4MT0iNDkuMDYiIHkxPSI1Ni45NyIgeDI9IjQ5LjA2IiB5Mj0iMTUuOTciLz48bGluZSBjbGFz cz0iY2xzLTYiIHgxPSIxNi43NiIgeTE9IjIzLjk3IiB4Mj0iNTYuNzMiIHkyPSIyMy45NyIvPjxs aW5lIGNsYXNzPSJjbHMtNyIgeDE9IjE2Ljc2IiB5MT0iMzIuMzQiIHgyPSI1Ni43MyIgeTI9IjMy LjM0Ii8+PGxpbmUgY2xhc3M9ImNscy02IiB4MT0iMTYuNzYiIHkxPSI0MC43MSIgeDI9IjU2Ljcz IiB5Mj0iNDAuNzEiLz48bGluZSBjbGFzcz0iY2xzLTYiIHgxPSIxNi43NiIgeTE9IjQ5LjA4IiB4 Mj0iNTYuNzMiIHkyPSI0OS4wOCIvPjwvZz48cGF0aCBjbGFzcz0iY2xzLTgiIGQ9Ik00OS4wNiwx NS41M3YtOWg2LjY5YzEuMzcsMCwxLjUuMTMsMS41LDEuNXY3LjVaIi8+PHBhdGggY2xhc3M9ImNs cy05IiBkPSJNNTUuNzYsN2EzLjI1LDMuMjUsMCwwLDEsLjkuMDhoMGEyLjE4LDIuMTgsMCwwLDEs LjEuOTJ2N0g0OS41NlY3aDYuMTltMC0xSDQ4LjU2VjE2aDkuMTlWOGMwLTEuNjUtLjM1LTItMi0y WiIvPjxwYXRoIGNsYXNzPSJjbHMtOCIgZD0iTTE2LjI2LDE1LjUzVjhjMC0xLjM3LjEzLTEuNSwx LjUtMS41aDYuNjl2OVoiLz48cGF0aCBjbGFzcz0iY2xzLTkiIGQ9Ik0yNCw3djhIMTYuNzZWOGEz LjI5LDMuMjksMCwwLDEsLjA4LS45LDIuMTgsMi4xOCwwLDAsMSwuOTItLjFIMjRtMS0xSDE3Ljc2 Yy0xLjY1LDAtMiwuMzUtMiwydjhIMjVWNloiLz48cmVjdCBjbGFzcz0iY2xzLTgiIHg9IjQwLjg2 IiB5PSI2LjUzIiB3aWR0aD0iOC4xOSIgaGVpZ2h0PSI5Ii8+PHBhdGggY2xhc3M9ImNscy05IiBk PSJNNDguNTQsN3Y4SDQxLjM2VjdoNy4xOG0xLTFINDAuMzZWMTZoOS4xOVY2WiIvPjxyZWN0IGNs YXNzPSJjbHMtOCIgeD0iMzIuNjciIHk9IjYuNTMiIHdpZHRoPSI4LjE5IiBoZWlnaHQ9IjkiLz48 cGF0aCBjbGFzcz0iY2xzLTkiIGQ9Ik00MC4zNiw3djhIMzMuMTdWN2g3LjE4bTEtMUgzMi4xN1Yx Nmg5LjE5VjZaIi8+PHJlY3QgY2xhc3M9ImNscy04IiB4PSIyNC40OCIgeT0iNi41MyIgd2lkdGg9 IjguMTciIGhlaWdodD0iOSIvPjxwYXRoIGNsYXNzPSJjbHMtOSIgZD0iTTMyLjE1LDd2OEgyNVY3 aDcuMTdtMS0xSDI0VjE2aDkuMThWNloiLz48dGV4dCBjbGFzcz0iY2xzLTEwIiB0cmFuc2Zvcm09 InRyYW5zbGF0ZSgxOC45OCAzMy41NSkiPldPUks8dHNwYW4gY2xhc3M9ImNscy0xMSI+PHRzcGFu IHg9Ii0wLjQyIiB5PSIxMiI+VDwvdHNwYW4+PHRzcGFuIGNsYXNzPSJjbHMtMTIiIHg9IjUuNzgi IHk9IjEyIj5BQkxFPC90c3Bhbj48L3RzcGFuPjwvdGV4dD48L3N2Zz4KXCBObyBuZXdsaW5lIGF0 IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9zdGF0aWMvanMvRXhwbGFpbi9p bmRleC5qc3ggYi93ZWIvcGdhZG1pbi9zdGF0aWMvanMvRXhwbGFpbi9pbmRleC5qc3gKbmV3IGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwLi41N2JhNGRiYTIKLS0tIC9kZXYvbnVsbAor KysgYi93ZWIvcGdhZG1pbi9zdGF0aWMvanMvRXhwbGFpbi9pbmRleC5qc3gKQEAgLTAsMCArMSw0 ODEgQEAKKy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8KKy8vCisvLyBwZ0FkbWluIDQgLSBQb3N0Z3JlU1FMIFRvb2xzCisvLworLy8g Q29weXJpZ2h0IChDKSAyMDEzIC0gMjAyMiwgVGhlIHBnQWRtaW4gRGV2ZWxvcG1lbnQgVGVhbQor Ly8gVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciB0aGUgUG9zdGdyZVNRTCBMaWNlbmNl CisvLworLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8KK2ltcG9ydCB7IEJveCwgVGFiLCBUYWJzIH0gZnJvbSAnQG1hdGVyaWFsLXVp L2NvcmUnOworaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JzsKK2ltcG9ydCBfIGZyb20gJ2xvZGFz aCc7CitpbXBvcnQgR3JhcGhpY2FsIGZyb20gJy4vR3JhcGhpY2FsJzsKK2ltcG9ydCBUYWJQYW5l bCBmcm9tICcuLi9jb21wb25lbnRzL1RhYlBhbmVsJzsKK2ltcG9ydCBnZXR0ZXh0ICBmcm9tICdz b3VyY2VzL2dldHRleHQnOworaW1wb3J0IEltYWdlTWFwcGVyIGZyb20gJy4vSW1hZ2VNYXBwZXIn OworaW1wb3J0IHsgbWFrZVN0eWxlcyB9IGZyb20gJ0BtYXRlcmlhbC11aS9zdHlsZXMnOworaW1w b3J0IEFuYWx5c2lzIGZyb20gJy4vQW5hbHlzaXMnOworaW1wb3J0IEV4cGxhaW5TdGF0aXN0aWNz IGZyb20gJy4vRXhwbGFpblN0YXRpc3RpY3MnOworaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9w LXR5cGVzJzsKKworY29uc3QgdXNlU3R5bGVzID0gbWFrZVN0eWxlcygodGhlbWUpPT4oeworICB0 YWJQYW5lbDogeworICAgIHBhZGRpbmc6IDAsCisgICAgYmFja2dyb3VuZENvbG9yOiB0aGVtZS5w YWxldHRlLmJhY2tncm91bmQuZGVmYXVsdCwKKyAgfQorfSkpOworCisvLyBTb21lIHByZWRlZmlu ZWQgY29uc3RhbnRzIHVzZWQgdG8gY2FsY3VsYXRlIGltYWdlIGxvY2F0aW9uIGFuZCBpdHMgYm9y ZGVyCit2YXIgcFdJRFRIID0gMTAwLjsKK3ZhciBwSEVJR0hUID0gMTAwLjsKK3ZhciBvZmZzZXRY ID0gMjAwLAorICBvZmZzZXRZID0gNjA7Cit2YXIgeE1hcmdpbiA9IDI1LAorICB5TWFyZ2luID0g MjU7CisKK2NvbnN0IERFRkFVTFRfQVJST1dfU0laRSA9IDI7CisKK2Z1bmN0aW9uIG5vZGVFeHBs YWluVGFibGVEYXRhKF9wbGFuRGF0YSwgX2N0eCkgeworICBsZXQgbm9kZV9pbmZvLAorICAgIGRp c3BsYXlfdGV4dCA9IFtdLAorICAgIHRvb2x0aXAgPSBbXSwKKyAgICBub2RlX2V4dHJhX2luZm8g PSBbXSwKKyAgICBpbmZvID0gX2N0eC5leHBsYWluVGFibGU7CisKKyAgLy8gRGlzcGxheTogPE5P REU+WyB1c2luZyA8SW5kZXg+IF0gWyBvbiA8U2NoZW1hPi48VGFibGU+WyBhcyA8QWxpYXM+XV0K KworICBpZiAoL1NjYW4vLnRlc3QoX3BsYW5EYXRhWydOb2RlIFR5cGUnXSkpIHsKKyAgICBkaXNw bGF5X3RleHQucHVzaChfcGxhbkRhdGFbJ05vZGUgVHlwZSddKTsKKyAgICB0b29sdGlwLnB1c2go X3BsYW5EYXRhWydOb2RlIFR5cGUnXSk7CisgIH0gZWxzZSB7CisgICAgZGlzcGxheV90ZXh0LnB1 c2goX3BsYW5EYXRhWydpbWFnZV90ZXh0J10pOworICAgIHRvb2x0aXAucHVzaChfcGxhbkRhdGFb J2ltYWdlX3RleHQnXSk7CisgIH0KKyAgbm9kZV9pbmZvID0gdG9vbHRpcC5qb2luKCcnKTsKKwor ICBpZiAodHlwZW9mKF9wbGFuRGF0YVsnSW5kZXggTmFtZSddKSAhPT0gJ3VuZGVmaW5lZCcpIHsK KyAgICBkaXNwbGF5X3RleHQucHVzaCgnIHVzaW5nICcpOworICAgIHRvb2x0aXAucHVzaCgnIHVz aW5nICcpOworICAgIGRpc3BsYXlfdGV4dC5wdXNoKF8uZXNjYXBlKF9wbGFuRGF0YVsnSW5kZXgg TmFtZSddKSk7CisgICAgdG9vbHRpcC5wdXNoKF9wbGFuRGF0YVsnSW5kZXggTmFtZSddKTsKKyAg fQorCisgIGlmICh0eXBlb2YoX3BsYW5EYXRhWydSZWxhdGlvbiBOYW1lJ10pICE9PSAndW5kZWZp bmVkJykgeworICAgIGRpc3BsYXlfdGV4dC5wdXNoKCcgb24gJyk7CisgICAgdG9vbHRpcC5wdXNo KCcgb24gJyk7CisgICAgaWYgKHR5cGVvZihfcGxhbkRhdGFbJ1NjaGVtYSddKSAhPT0gJ3VuZGVm aW5lZCcpIHsKKyAgICAgIGRpc3BsYXlfdGV4dC5wdXNoKF8uZXNjYXBlKF9wbGFuRGF0YVsnU2No ZW1hJ10pKTsKKyAgICAgIHRvb2x0aXAucHVzaChfcGxhbkRhdGFbJ1NjaGVtYSddKTsKKyAgICAg IGRpc3BsYXlfdGV4dC5wdXNoKCcuJyk7CisgICAgICB0b29sdGlwLnB1c2goJy4nKTsKKyAgICB9 CisgICAgZGlzcGxheV90ZXh0LnB1c2goXy5lc2NhcGUoX3BsYW5EYXRhWydSZWxhdGlvbiBOYW1l J10pKTsKKyAgICB0b29sdGlwLnB1c2goX3BsYW5EYXRhWydSZWxhdGlvbiBOYW1lJ10pOworCisg ICAgaWYgKHR5cGVvZihfcGxhbkRhdGFbJ0FsaWFzJ10pICE9PSAndW5kZWZpbmVkJykgeworICAg ICAgZGlzcGxheV90ZXh0LnB1c2goJyBhcyAnKTsKKyAgICAgIHRvb2x0aXAucHVzaCgnIGFzICcp OworICAgICAgZGlzcGxheV90ZXh0LnB1c2goXy5lc2NhcGUoX3BsYW5EYXRhWydBbGlhcyddKSk7 CisgICAgICB0b29sdGlwLnB1c2goXy5lc2NhcGUoX3BsYW5EYXRhWydBbGlhcyddKSk7CisgICAg fQorICB9CisKKyAgaWYgKAorICAgIHR5cGVvZihfcGxhbkRhdGFbJ1BsYW4gUm93cyddKSAhPT0g J3VuZGVmaW5lZCcgJiYKKyAgICB0eXBlb2YoX3BsYW5EYXRhWydQbGFuIFdpZHRoJ10pICE9PSAn dW5kZWZpbmVkJworICApIHsKKyAgICBsZXQgY29zdCA9IFsKKyAgICAgICcgKGNvc3Q9JywKKyAg ICAgICh0eXBlb2YoX3BsYW5EYXRhWydTdGFydHVwIENvc3QnXSkgIT09ICd1bmRlZmluZWQnID8K KyAgICAgICAgX3BsYW5EYXRhWydTdGFydHVwIENvc3QnXSA6ICcnKSwKKyAgICAgICcuLicsCisg ICAgICAodHlwZW9mKF9wbGFuRGF0YVsnVG90YWwgQ29zdCddKSAhPT0gJ3VuZGVmaW5lZCcgPwor ICAgICAgICBfcGxhbkRhdGFbJ1RvdGFsIENvc3QnXSA6ICcnKSwKKyAgICAgICcgcm93cz0nLAor ICAgICAgX3BsYW5EYXRhWydQbGFuIFJvd3MnXSwKKyAgICAgICcgd2lkdGg9JywKKyAgICAgIF9w bGFuRGF0YVsnUGxhbiBXaWR0aCddLAorICAgICAgJyknLAorICAgIF0uam9pbignJyk7CisgICAg ZGlzcGxheV90ZXh0LnB1c2goY29zdCk7CisgICAgdG9vbHRpcC5wdXNoKGNvc3QpOworICB9CisK KyAgaWYgKAorICAgIHR5cGVvZihfcGxhbkRhdGFbJ0FjdHVhbCBTdGFydHVwIFRpbWUnXSkgIT09 ICd1bmRlZmluZWQnIHx8CisgICAgdHlwZW9mKF9wbGFuRGF0YVsnQWN0dWFsIFRvdGFsIFRpbWUn XSkgIT09ICd1bmRlZmluZWQnIHx8CisgICAgdHlwZW9mKF9wbGFuRGF0YVsnQWN0dWFsIFJvd3Mn XSkgIT09ICd1bmRlZmluZWQnCisgICkgeworICAgIGxldCBhY3R1YWwgPSBbCisgICAgICAnICgn LAorICAgICAgKHR5cGVvZihfcGxhbkRhdGFbJ0FjdHVhbCBTdGFydHVwIFRpbWUnXSkgIT09ICd1 bmRlZmluZWQnID8KKyAgICAgICAgKCdhY3R1YWw9JyArIF9wbGFuRGF0YVsnQWN0dWFsIFN0YXJ0 dXAgVGltZSddKSArICcuLicgOiAnJworICAgICAgKSwKKyAgICAgICh0eXBlb2YoX3BsYW5EYXRh WydBY3R1YWwgVG90YWwgVGltZSddKSAhPT0gJ3VuZGVmaW5lZCcgPworICAgICAgICBfcGxhbkRh dGFbJ0FjdHVhbCBUb3RhbCBUaW1lJ10gKyAnICcgOiAnJworICAgICAgKSwKKyAgICAgICh0eXBl b2YoX3BsYW5EYXRhWydBY3R1YWwgUm93cyddKSAhPT0gJ3VuZGVmaW5lZCcgPworICAgICAgICAo J3Jvd3M9JyArIF9wbGFuRGF0YVsnQWN0dWFsIFJvd3MnXSkgOiAnJworICAgICAgKSwKKyAgICAg ICh0eXBlb2YoX3BsYW5EYXRhWydBY3R1YWwgTG9vcHMnXSkgIT09ICd1bmRlZmluZWQnID8KKyAg ICAgICAgKCcgbG9vcHM9JyArIF9wbGFuRGF0YVsnQWN0dWFsIExvb3BzJ10pIDogJycKKyAgICAg ICksCisgICAgICAnKScsCisgICAgXS5qb2luKCcnKTsKKworICAgIGRpc3BsYXlfdGV4dC5wdXNo KGFjdHVhbCk7CisgICAgdG9vbHRpcC5wdXNoKGFjdHVhbCk7CisgIH0KKworICBpZiAoJ0pvaW4g RmlsdGVyJyBpbiBfcGxhbkRhdGEpIHsKKyAgICBub2RlX2V4dHJhX2luZm8ucHVzaCgKKyAgICAg ICc8c3Ryb25nPicgKyBnZXR0ZXh0KCdKb2luIEZpbHRlcicpICsgJzwvc3Ryb25nPjogJyArIF8u ZXNjYXBlKF9wbGFuRGF0YVsnSm9pbiBGaWx0ZXInXSkKKyAgICApOworICB9CisKKyAgaWYgKCdG aWx0ZXInIGluIF9wbGFuRGF0YSkgeworICAgIG5vZGVfZXh0cmFfaW5mby5wdXNoKCc8c3Ryb25n PicgKyBnZXR0ZXh0KCdGaWx0ZXInKSArICc8L3N0cm9uZz46ICcgKyBfLmVzY2FwZShfcGxhbkRh dGFbJ0ZpbHRlciddKSk7CisgIH0KKworICBpZiAoJ0luZGV4IENvbmQnIGluIF9wbGFuRGF0YSkg eworICAgIG5vZGVfZXh0cmFfaW5mby5wdXNoKCc8c3Ryb25nPicgKyBnZXR0ZXh0KCdJbmRleCBD b25kJykgKyAnPC9zdHJvbmc+OiAnICsgXy5lc2NhcGUoX3BsYW5EYXRhWydJbmRleCBDb25kJ10p KTsKKyAgfQorCisgIGlmICgnSGFzaCBDb25kJyBpbiBfcGxhbkRhdGEpIHsKKyAgICBub2RlX2V4 dHJhX2luZm8ucHVzaCgnPHN0cm9uZz4nICsgZ2V0dGV4dCgnSGFzaCBDb25kJykgKyAnPC9zdHJv bmc+OiAnICsgXy5lc2NhcGUoX3BsYW5EYXRhWydIYXNoIENvbmQnXSkpOworICB9CisKKyAgaWYg KCdSb3dzIFJlbW92ZWQgYnkgRmlsdGVyJyBpbiBfcGxhbkRhdGEpIHsKKyAgICBub2RlX2V4dHJh X2luZm8ucHVzaCgKKyAgICAgICc8c3Ryb25nPicgKyBnZXR0ZXh0KCdSb3dzIFJlbW92ZWQgYnkg RmlsdGVyJykgKyAnPC9zdHJvbmc+OiAnICsKKyAgICAgICAgXy5lc2NhcGUoX3BsYW5EYXRhWydS b3dzIFJlbW92ZWQgYnkgRmlsdGVyJ10pCisgICAgKTsKKyAgfQorCisgIGlmICgnUGVhayBNZW1v cnkgVXNhZ2UnIGluIF9wbGFuRGF0YSkgeworICAgIHZhciBidWZmZXIgPSBbCisgICAgICAnPHN0 cm9uZz4nICsgZ2V0dGV4dCgnQnVja2V0cycpICsgJzwvc3Ryb25nPjonLCBfLmVzY2FwZShfcGxh bkRhdGFbJ0hhc2ggQnVja2V0cyddKSwKKyAgICAgICc8c3Ryb25nPicgKyBnZXR0ZXh0KCdCYXRj aGVzJykgKyAnPC9zdHJvbmc+OicsIF8uZXNjYXBlKF9wbGFuRGF0YVsnSGFzaCBCYXRjaGVzJ10p LAorICAgICAgJzxzdHJvbmc+JyArIGdldHRleHQoJ01lbW9yeSBVc2FnZScpICsgJzwvc3Ryb25n PjonLCBfLmVzY2FwZShfcGxhbkRhdGFbJ1BlYWsgTWVtb3J5IFVzYWdlJ10pLCAna0InLAorICAg IF0uam9pbignICcpOworICAgIG5vZGVfZXh0cmFfaW5mby5wdXNoKGJ1ZmZlcik7CisgIH0KKwor ICBpZiAoJ1JlY2hlY2sgQ29uZCcgaW4gX3BsYW5EYXRhKSB7CisgICAgbm9kZV9leHRyYV9pbmZv LnB1c2goJzxzdHJvbmc+JyArIGdldHRleHQoJ1JlY2hlY2sgQ29uZCcpICsgJzwvc3Ryb25nPjog JyArIF9wbGFuRGF0YVsnUmVjaGVjayBDb25kJ10pOworICB9CisKKyAgaWYgKCdFeGFjdCBIZWFw IEJsb2NrcycgaW4gX3BsYW5EYXRhKSB7CisgICAgbm9kZV9leHRyYV9pbmZvLnB1c2goJzxzdHJv bmc+JyArIGdldHRleHQoJ0hlYXAgQmxvY2tzJykgKyAnPC9zdHJvbmc+OiBleGFjdD0nICsgX3Bs YW5EYXRhWydFeGFjdCBIZWFwIEJsb2NrcyddKTsKKyAgfQorCisgIGluZm8ucm93cy5wdXNoKHsK KyAgICBkYXRhOiBfcGxhbkRhdGEsCisgICAgZGlzcGxheV90ZXh0OiBkaXNwbGF5X3RleHQuam9p bignJyksCisgICAgdG9vbHRpcF90ZXh0OiB0b29sdGlwLmpvaW4oJycpLAorICAgIG5vZGVfZXh0 cmFfaW5mbzogbm9kZV9leHRyYV9pbmZvLAorICB9KTsKKworICBpZiAodHlwZW9mKF9wbGFuRGF0 YVsnZXhjbHVzaXZlX2ZsYWcnXSkgIT09ICd1bmRlZmluZWQnKSB7CisgICAgaW5mby5zaG93X3Rp bWluZ3MgPSB0cnVlOworICB9CisKKyAgaWYgKHR5cGVvZihfcGxhbkRhdGFbJ3Jvd3N4X2ZsYWcn XSkgIT09ICd1bmRlZmluZWQnKSB7CisgICAgaW5mby5zaG93X3Jvd3N4ID0gdHJ1ZTsKKyAgfQor CisgIGlmICh0eXBlb2YoX3BsYW5EYXRhWydBY3R1YWwgTG9vcHMnXSkgIT09ICd1bmRlZmluZWQn KSB7CisgICAgaW5mby5zaG93X3Jvd3MgPSB0cnVlOworICB9CisKKyAgaWYgKHR5cGVvZihfcGxh bkRhdGFbJ1BsYW4gUm93cyddKSAhPT0gJ3VuZGVmaW5lZCcpIHsKKyAgICBpbmZvLnNob3dfcGxh bl9yb3dzID0gdHJ1ZTsKKyAgfQorCisgIGlmICh0eXBlb2YoX3BsYW5EYXRhWyd0b3RhbF90aW1l J10pICE9PSAndW5kZWZpbmVkJykgeworICAgIGluZm8udG90YWxfdGltZSA9IF9wbGFuRGF0YVsn dG90YWxfdGltZSddOworICB9CisKKyAgbGV0IG5vZGU7CisKKyAgaWYgKHR5cGVvZihfcGxhbkRh dGFbJ1JlbGF0aW9uIE5hbWUnXSkgIT09ICd1bmRlZmluZWQnKSB7CisgICAgbGV0IHJlbGF0aW9u TmFtZSA9ICgKKyAgICAgICAgdHlwZW9mKF9wbGFuRGF0YVsnU2NoZW1hJ10pICE9PSAndW5kZWZp bmVkJyA/CisgICAgICAgICAgKF9wbGFuRGF0YVsnU2NoZW1hJ10gKyAnLicpIDogJycKKyAgICAg ICkgKyBfcGxhbkRhdGFbJ1JlbGF0aW9uIE5hbWUnXSwKKyAgICAgIHRhYmxlID0gaW5mby5zdGF0 aXN0aWNzLnRhYmxlc1tyZWxhdGlvbk5hbWVdIHx8IHsKKyAgICAgICAgbmFtZTogcmVsYXRpb25O YW1lLAorICAgICAgICBjb3VudDogMCwKKyAgICAgICAgc3VtX29mX3RpbWVzOiAwLAorICAgICAg ICBub2Rlczoge30sCisgICAgICB9OworCisgICAgbm9kZSA9IHRhYmxlLm5vZGVzW25vZGVfaW5m b10gfHwgeworICAgICAgbmFtZTogbm9kZV9pbmZvLAorICAgICAgY291bnQ6IDAsCisgICAgICBz dW1fb2ZfdGltZXM6IDAsCisgICAgfTsKKworICAgIHRhYmxlLmNvdW50Kys7CisgICAgdGFibGUu c3VtX29mX3RpbWVzICs9IF9wbGFuRGF0YVsnZXhjbHVzaXZlJ107CisgICAgbm9kZS5jb3VudCsr OworICAgIG5vZGUuc3VtX29mX3RpbWVzICs9IF9wbGFuRGF0YVsnZXhjbHVzaXZlJ107CisKKyAg ICB0YWJsZS5ub2Rlc1tub2RlX2luZm9dID0gbm9kZTsKKyAgICBpbmZvLnN0YXRpc3RpY3MudGFi bGVzW3JlbGF0aW9uTmFtZV0gPSB0YWJsZTsKKyAgfQorCisgIG5vZGUgPSBpbmZvLnN0YXRpc3Rp Y3Mubm9kZXNbbm9kZV9pbmZvXSB8fCB7CisgICAgbmFtZTogbm9kZV9pbmZvLAorICAgIGNvdW50 OiAwLAorICAgIHN1bV9vZl90aW1lczogMCwKKyAgfTsKKworICBub2RlLmNvdW50Kys7CisgIG5v ZGUuc3VtX29mX3RpbWVzICs9IF9wbGFuRGF0YVsnZXhjbHVzaXZlJ107CisgIGluZm8uc3RhdGlz dGljcy5ub2Rlc1tub2RlX2luZm9dID0gbm9kZTsKK30KKworZnVuY3Rpb24gcGFyc2VQbGFuKGRh dGEsIGN0eCkgeworICB2YXIgaWR4ID0gMSwKKyAgICBsdmwgPSBkYXRhLmxldmVsID0gZGF0YS5s ZXZlbCB8fCBbaWR4XSwKKyAgICBwbGFucyA9IFtdLAorICAgIG5vZGVUeXBlID0gZGF0YVsnTm9k ZSBUeXBlJ10sCisgICAgLy8gQ2FsY3VsYXRpbmcgcmVsYXRpdmUgeHBvcyBvZiBjdXJyZW50IG5v ZGUgZnJvbSB0b3Agbm9kZQorICAgIHhwb3MgPSBkYXRhLnhwb3MgPSBkYXRhLnhwb3MgLSBwV0lE VEgsCisgICAgLy8gQ2FsY3VsYXRpbmcgcmVsYXRpdmUgeXBvcyBvZiBjdXJyZW50IG5vZGUgZnJv bSB0b3Agbm9kZQorICAgIHlwb3MgPSBkYXRhLnlwb3MsCisgICAgbWF4Q2hpbGRXaWR0aCA9IDA7 CisKKyAgY3R4LnRvdGFsTm9kZXMrKzsKKyAgY3R4LmV4cGxhaW5UYWJsZS50b3RhbF90aW1lID0g ZGF0YVsndG90YWxfdGltZSddIHx8IGRhdGFbJ0FjdHVhbCBUb3RhbCBUaW1lJ107CisKKyAgZGF0 YVsnX3NlcmlhbCddID0gY3R4LnRvdGFsTm9kZXM7CisgIGRhdGFbJ3dpZHRoJ10gPSBwV0lEVEg7 CisgIGRhdGFbJ2hlaWdodCddID0gcEhFSUdIVDsKKworICAvLyBDYWxjdWxhdGUgYXJyb3cgd2lk dGggYWNjb3JkaW5nIHRvIGNvc3Qgb2YgYSBwYXJ0aWN1bGFyIHBsYW4KKyAgbGV0IGFycm93U2l6 ZSA9IERFRkFVTFRfQVJST1dfU0laRTsKKyAgbGV0IHN0YXJ0Q29zdCA9IGRhdGFbJ1N0YXJ0dXAg Q29zdCddLAorICAgIHRvdGFsQ29zdCA9IGRhdGFbJ1RvdGFsIENvc3QnXTsKKyAgaWYgKHN0YXJ0 Q29zdCAhPSB1bmRlZmluZWQgJiYgdG90YWxDb3N0ICE9IHVuZGVmaW5lZCkgeworICAgIGFycm93 U2l6ZSA9IE1hdGgucm91bmQoTWF0aC5sb2coKHN0YXJ0Q29zdCArIHRvdGFsQ29zdCkgLyAyICsg c3RhcnRDb3N0KSk7CisgICAgYXJyb3dTaXplID0gYXJyb3dTaXplIDwgMSA/IDEgOiBhcnJvd1Np emUgPiAxMCA/IDEwIDogYXJyb3dTaXplOworICB9CisgIGRhdGFbJ2Fycl9pZCddID0gXy51bmlx dWVJZCgnYXJyJyk7CisgIGN0eC5hcnJvd3NbZGF0YVsnYXJyX2lkJ11dID0gYXJyb3dTaXplOwor ICAvKgorICAgKiBjYWxjdWxhdGluZyB4cG9zLCB5cG9zLCB3aWR0aCBhbmQgaGVpZ2h0IGlmIGN1 cnJlbnQgbm9kZSBpcyBhIHN1YnBsYW4KKyAgICovCisgIGlmIChkYXRhWydQYXJlbnQgUmVsYXRp b25zaGlwJ10gPT09ICdTdWJQbGFuJykgeworICAgIGRhdGFbJ3dpZHRoJ10gKz0gKHhNYXJnaW4g KiAyKSArICh4TWFyZ2luIC8gMik7CisgICAgZGF0YVsnaGVpZ2h0J10gKz0gKHlNYXJnaW4gKiAy KTsKKyAgICBkYXRhWyd5cG9zJ10gKz0geU1hcmdpbjsKKyAgICB4cG9zIC09IHhNYXJnaW47Cisg ICAgeXBvcyArPSB5TWFyZ2luOworICB9CisKKyAgaWYgKG5vZGVUeXBlLnN0YXJ0c1dpdGgoJyhz bGljZScpKQorICAgIG5vZGVUeXBlID0gbm9kZVR5cGUuc3Vic3RyaW5nKDAsIDcpOworCisgIC8v IEdldCB0aGUgaW1hZ2UgaW5mb3JtYXRpb24gZm9yIGN1cnJlbnQgbm9kZQorICB2YXIgbWFwcGVk SW1hZ2UgPSAoXy5pc0Z1bmN0aW9uKEltYWdlTWFwcGVyW25vZGVUeXBlXSkgJiYKKyAgICAgIElt YWdlTWFwcGVyW25vZGVUeXBlXS5hcHBseSh1bmRlZmluZWQsIFtkYXRhXSkpIHx8CisgICAgSW1h Z2VNYXBwZXJbbm9kZVR5cGVdIHx8IHsKKyAgICAnaW1hZ2UnOiAnZXhfdW5rbm93bi5zdmcnLAor ICAgICdpbWFnZV90ZXh0Jzogbm9kZVR5cGUsCisgIH07CisKKyAgZGF0YVsnaW1hZ2UnXSA9IG1h cHBlZEltYWdlWydpbWFnZSddOworICBkYXRhWydpbWFnZV90ZXh0J10gPSBtYXBwZWRJbWFnZVsn aW1hZ2VfdGV4dCddOworCisgIGlmICgnQWN0dWFsIFRvdGFsIFRpbWUnIGluIGRhdGEgJiYgJ0Fj dHVhbCBMb29wcycgaW4gZGF0YSkgeworICAgIGRhdGFbJ2luY2x1c2l2ZSddID0gTWF0aC5jZWls MTAoCisgICAgICBkYXRhWydBY3R1YWwgVG90YWwgVGltZSddICogZGF0YVsnQWN0dWFsIExvb3Bz J10sIC0zCisgICAgKTsKKyAgICBkYXRhWydleGNsdXNpdmUnXSA9IGRhdGFbJ2luY2x1c2l2ZSdd OworICAgIGRhdGFbJ2luY2x1c2l2ZV9mYWN0b3InXSA9ICBkYXRhWydpbmNsdXNpdmUnXSAvICgK KyAgICAgIGRhdGFbJ3RvdGFsX3RpbWUnXSB8fCBkYXRhWydBY3R1YWwgVG90YWwgVGltZSddCisg ICAgKTsKKyAgICBkYXRhWydpbmNsdXNpdmVfZmxhZyddID0gZGF0YVsnaW5jbHVzaXZlX2ZhY3Rv ciddIDw9IDAuMSA/ICcxJyA6CisgICAgICBkYXRhWydpbmNsdXNpdmVfZmFjdG9yJ10gPCAwLjUg PyAnMicgOgorICAgICAgICBkYXRhWydpbmNsdXNpdmVfZmFjdG9yJ10gPD0gMC45ID8gJzMnIDog JzQnOworICB9CisKKyAgaWYgKCdBY3R1YWwgUm93cycgaW4gZGF0YSAmJiAnUGxhbiBSb3dzJyBp biBkYXRhKSB7CisgICAgaWYgKAorICAgICAgZGF0YVsnQWN0dWFsIFJvd3MnXSA9PT0gMCB8fCBk YXRhWydBY3R1YWwgUm93cyddID4gZGF0YVsnUGxhbiBSb3dzJ10KKyAgICApIHsKKyAgICAgIGRh dGFbJ3Jvd3N4J10gPSBkYXRhWydQbGFuIFJvd3MnXSA9PT0gMCA/IDAgOgorICAgICAgICAoZGF0 YVsnQWN0dWFsIFJvd3MnXSAvIGRhdGFbJ1BsYW4gUm93cyddKTsKKyAgICAgIGRhdGFbJ3Jvd3N4 X2RpcmVjdGlvbiddID0gJ25lZ2F0aXZlJzsKKyAgICB9IGVsc2UgeworICAgICAgZGF0YVsncm93 c3gnXSA9IGRhdGFbJ0FjdHVhbCBSb3dzJ10gPT09IDAgPyAwIDogKAorICAgICAgICBkYXRhWydQ bGFuIFJvd3MnXSAvIGRhdGFbJ0FjdHVhbCBSb3dzJ10KKyAgICAgICk7CisgICAgICBkYXRhWydy b3dzeF9kaXJlY3Rpb24nXSA9ICdwb3NpdGl2ZSc7CisgICAgfQorICAgIGRhdGFbJ3Jvd3N4X2Zs YWcnXSA9IGRhdGFbJ3Jvd3N4J10gPD0gMTAgPyAnMScgOiAoCisgICAgICBkYXRhWydyb3dzeCdd IDw9IDEwMCA/ICcyJyA6IChkYXRhWydyb3dzeCddIDw9IDEwMDAgPyAnMycgOiAnNCcpCisgICAg KTsKKyAgICBkYXRhWydyb3dzeCddID0gTWF0aC5jZWlsMTAoZGF0YVsncm93c3gnXSwgLTIpOwor ICB9CisKKyAgLy8gU3RhcnQgY2FsY3VsYXRpbmcgeHBvcywgeXBvcywgd2lkdGggYW5kIGhlaWdo dCBmb3IgY2hpbGQgcGxhbnMgaWYgYW55CisgIGlmICgnUGxhbnMnIGluIGRhdGEpIHsKKyAgICBk YXRhWyd3aWR0aCddICs9IG9mZnNldFg7CisKKyAgICBkYXRhWydQbGFucyddLmZvckVhY2goZnVu Y3Rpb24ocCkgeworICAgICAgbGV0IGxldmVsID0gXy5jbG9uZShsdmwpOworICAgICAgbGV2ZWwu cHVzaChpZHgpOworCisgICAgICBsZXQgcGxhbiA9IHBhcnNlUGxhbih7CisgICAgICAgIC4uLnAs CisgICAgICAgICdsZXZlbCc6IGxldmVsLAorICAgICAgICB4cG9zOiB4cG9zIC0gb2Zmc2V0WCwK KyAgICAgICAgeXBvczogeXBvcywKKyAgICAgICAgdG90YWxfdGltZTogZGF0YVsndG90YWxfdGlt ZSddIHx8IGRhdGFbJ0FjdHVhbCBUb3RhbCBUaW1lJ10sCisgICAgICAgIHBhcmVudF9ub2RlOiBs dmwuam9pbignXycpLAorICAgICAgfSwgY3R4KTsKKworICAgICAgaWYgKG1heENoaWxkV2lkdGgg PCBwbGFuLndpZHRoKSB7CisgICAgICAgIG1heENoaWxkV2lkdGggPSBwbGFuLndpZHRoOworICAg ICAgfQorCisgICAgICBpZiAoJ2V4Y2x1c2l2ZScgaW4gZGF0YSkgeworICAgICAgICBpZiAocGxh bi5pbmNsdXNpdmUpIHsKKyAgICAgICAgICBkYXRhWydleGNsdXNpdmUnXSAtPSBwbGFuLmluY2x1 c2l2ZTsKKyAgICAgICAgfQorICAgICAgfQorCisgICAgICB2YXIgY2hpbGRIZWlnaHQgPSBwbGFu LmhlaWdodDsKKworICAgICAgaWYgKGlkeCAhPT0gMSkgeworICAgICAgICBkYXRhWydoZWlnaHQn XSA9IGRhdGFbJ2hlaWdodCddICsgY2hpbGRIZWlnaHQgKyBvZmZzZXRZOworICAgICAgfSBlbHNl IGlmIChjaGlsZEhlaWdodCA+IGRhdGFbJ2hlaWdodCddKSB7CisgICAgICAgIGRhdGFbJ2hlaWdo dCddID0gY2hpbGRIZWlnaHQ7CisgICAgICB9CisgICAgICB5cG9zICs9IGNoaWxkSGVpZ2h0ICsg b2Zmc2V0WTsKKworICAgICAgcGxhbnMucHVzaChwbGFuKTsKKyAgICAgIGlkeCsrOworICAgIH0p OworICB9CisKKyAgaWYgKCdleGNsdXNpdmUnIGluIGRhdGEpIHsKKyAgICBkYXRhWydleGNsdXNp dmUnXSA9IE1hdGguY2VpbDEwKGRhdGFbJ2V4Y2x1c2l2ZSddLCAtMyk7CisgICAgZGF0YVsnZXhj bHVzaXZlX2ZhY3RvciddID0gKAorICAgICAgZGF0YVsnZXhjbHVzaXZlJ10gLyAoZGF0YVsndG90 YWxfdGltZSddIHx8IGRhdGFbJ0FjdHVhbCBUb3RhbCBUaW1lJ10pCisgICAgKTsKKyAgICBkYXRh WydleGNsdXNpdmVfZmxhZyddID0gZGF0YVsnZXhjbHVzaXZlX2ZhY3RvciddIDw9IDAuMSA/ICcx JyA6CisgICAgICBkYXRhWydleGNsdXNpdmVfZmFjdG9yJ10gPCAwLjUgPyAnMicgOgorICAgICAg ICBkYXRhWydleGNsdXNpdmVfZmFjdG9yJ10gPD0gMC45ID8gJzMnIDogJzQnOworICB9CisKKyAg Ly8gRmluYWwgV2lkdGggYW5kIEhlaWdodCBvZiBjdXJyZW50IG5vZGUKKyAgZGF0YVsnd2lkdGgn XSArPSBtYXhDaGlsZFdpZHRoOworICBkYXRhWydQbGFucyddID0gcGxhbnM7CisgIG5vZGVFeHBs YWluVGFibGVEYXRhKGRhdGEsIGN0eCk7CisKKyAgcmV0dXJuIGRhdGE7Cit9CisKK2Z1bmN0aW9u IHBhcnNlUGxhbkRhdGEoZGF0YSwgY3R4KSB7CisgIGxldCByZXRQbGFuID0ge307CisgIGlmKGRh dGEpIHsKKyAgICBpZiAoJ1BsYW4nIGluIGRhdGEpIHsKKyAgICAgIGxldCBwbGFuID0gcGFyc2VQ bGFuKHsKKyAgICAgICAgLi4uZGF0YVsnUGxhbiddLAorICAgICAgICB4cG9zOiAwLAorICAgICAg ICB5cG9zOiAwLAorICAgICAgfSwgY3R4KTsKKyAgICAgIHJldFBsYW5bJ1BsYW4nXSA9IHBsYW47 CisgICAgICByZXRQbGFuWyd4cG9zJ10gPSAwOworICAgICAgcmV0UGxhblsneXBvcyddID0gMDsK KyAgICAgIHJldFBsYW5bJ3dpZHRoJ10gPSBwbGFuLndpZHRoICsgKHhNYXJnaW4gKiAyKTsKKyAg ICAgIHJldFBsYW5bJ2hlaWdodCddID0gcGxhbi5oZWlnaHQgKyAoeU1hcmdpbiAqIDQpOworICAg IH0KKworICAgIHJldFBsYW5bJ1N0YXRpc3RpY3MnXSA9IHsKKyAgICAgICdKSVQnOiBbXSwKKyAg ICAgICdUcmlnZ2Vycyc6IFtdLAorICAgICAgJ1N1bW1hcnknOiB7fSwKKyAgICB9OworICAgIGlm IChkYXRhICYmICdKSVQnIGluIGRhdGEpIHsKKyAgICAgIHJldFBsYW5bJ1N0YXRpc3RpY3MnXVsn SklUJ10gPSByZXRQbGFuWydKSVQnXTsKKyAgICB9CisgICAgaWYgKGRhdGEgJiYgJ1RyaWdnZXJz JyBpbiBkYXRhKSB7CisgICAgICByZXRQbGFuWydTdGF0aXN0aWNzJ11bJ1RyaWdnZXJzJ10gPSBy ZXRQbGFuWydKSVRyaWdnZXJzVCddOworICAgIH0KKyAgICBpZihkYXRhKSB7CisgICAgICBsZXQg c3VtbUtleXMgPSBbJ1BsYW5uaW5nIFRpbWUnLCAnRXhlY3V0aW9uIFRpbWUnXSwKKyAgICAgICAg c3VtbWFyeSA9IHt9OworCisgICAgICBzdW1tS2V5cy5mb3JFYWNoKChrZXkpPT57CisgICAgICAg IGlmIChrZXkgaW4gZGF0YSkgeworICAgICAgICAgIHN1bW1hcnlba2V5XSA9IGRhdGFba2V5XTsK KyAgICAgICAgfQorICAgICAgfSk7CisKKyAgICAgIHJldFBsYW5bJ1N0YXRpc3RpY3MnXVsnU3Vt bWFyeSddID0gc3VtbWFyeTsKKyAgICB9CisgICAgaWYgKGRhdGEgJiYgJ1NldHRpbmdzJyBpbiBk YXRhKSB7CisgICAgICByZXRQbGFuWydTdGF0aXN0aWNzJ11bJ1NldHRpbmdzJ10gPSBkYXRhWydT ZXR0aW5ncyddOworICAgIH0KKyAgfQorICByZXR1cm4gcmV0UGxhbjsKK30KKworZXhwb3J0IGRl ZmF1bHQgZnVuY3Rpb24gRXhwbGFpbih7cGxhbnM9W119KSB7CisgIGNvbnN0IGNsYXNzZXMgPSB1 c2VTdHlsZXMoKTsKKyAgY29uc3QgW3RhYlZhbHVlLCBzZXRUYWJWYWx1ZV0gPSBSZWFjdC51c2VT dGF0ZSgwKTsKKworICBsZXQgY3R4ID0gUmVhY3QudXNlUmVmKHsKKyAgICB0b3RhbE5vZGVzOiAw LAorICAgIHRvdGFsRG93bmxvYWRlZE5vZGVzOiAwLAorICAgIGlzRG93bmxvYWRlZDogMCwKKyAg ICBleHBsYWluVGFibGU6IHsKKyAgICAgIHJvd3M6IFtdLAorICAgICAgc3RhdGlzdGljczogewor ICAgICAgICB0YWJsZXM6IHt9LAorICAgICAgICBub2Rlczoge30sCisgICAgICB9LAorICAgIH0s CisgICAgYXJyb3dzOiB7fSwKKyAgfSk7CisgIGxldCBwbGFuRGF0YSA9IFJlYWN0LnVzZU1lbW8o KCk9PnBhcnNlUGxhbkRhdGEocGxhbnNbMF0sIGN0eC5jdXJyZW50KSwgW3BsYW5zXSk7CisKKyAg cmV0dXJuICgKKyAgICA8Qm94IGhlaWdodD0iMTAwJSIgZGlzcGxheT0iZmxleCIgZmxleERpcmVj dGlvbj0iY29sdW1uIj4KKyAgICAgIDxCb3g+CisgICAgICAgIDxUYWJzCisgICAgICAgICAgdmFs dWU9e3RhYlZhbHVlfQorICAgICAgICAgIG9uQ2hhbmdlPXsoX2UsIHNlbFRhYlZhbHVlKSA9PiB7 CisgICAgICAgICAgICBzZXRUYWJWYWx1ZShzZWxUYWJWYWx1ZSk7CisgICAgICAgICAgfX0KKyAg ICAgICAgICAvLyBpbmRpY2F0b3JDb2xvcj0icHJpbWFyeSIKKyAgICAgICAgICB2YXJpYW50PSJz Y3JvbGxhYmxlIgorICAgICAgICAgIHNjcm9sbEJ1dHRvbnM9ImF1dG8iCisgICAgICAgICAgYWN0 aW9uPXsocmVmKT0+cmVmICYmIHJlZi51cGRhdGVJbmRpY2F0b3IoKX0KKyAgICAgICAgPgorICAg ICAgICAgIDxUYWIgbGFiZWw9IkdyYXBoaWNhbCIgLz4KKyAgICAgICAgICA8VGFiIGxhYmVsPSJB bmFseXNpcyIgLz4KKyAgICAgICAgICA8VGFiIGxhYmVsPSJTdGF0aXN0aWNzIiAvPgorICAgICAg ICA8L1RhYnM+CisgICAgICA8L0JveD4KKyAgICAgIDxUYWJQYW5lbCB2YWx1ZT17dGFiVmFsdWV9 IGluZGV4PXswfSBjbGFzc05hbWVSb290PXtjbGFzc2VzLnRhYlBhbmVsfT4KKyAgICAgICAgPEdy YXBoaWNhbCBwbGFuRGF0YT17cGxhbkRhdGF9IGN0eD17Y3R4LmN1cnJlbnR9Lz4KKyAgICAgIDwv VGFiUGFuZWw+CisgICAgICA8VGFiUGFuZWwgdmFsdWU9e3RhYlZhbHVlfSBpbmRleD17MX0gY2xh c3NOYW1lUm9vdD17Y2xhc3Nlcy50YWJQYW5lbH0+CisgICAgICAgIDxBbmFseXNpcyBleHBsYWlu VGFibGU9e2N0eC5jdXJyZW50LmV4cGxhaW5UYWJsZX0gLz4KKyAgICAgIDwvVGFiUGFuZWw+Cisg ICAgICA8VGFiUGFuZWwgdmFsdWU9e3RhYlZhbHVlfSBpbmRleD17Mn0gY2xhc3NOYW1lUm9vdD17 Y2xhc3Nlcy50YWJQYW5lbH0+CisgICAgICAgIDxFeHBsYWluU3RhdGlzdGljcyBleHBsYWluVGFi bGU9e2N0eC5jdXJyZW50LmV4cGxhaW5UYWJsZX0gLz4KKyAgICAgIDwvVGFiUGFuZWw+CisgICAg PC9Cb3g+CisgICk7Cit9CisKK0V4cGxhaW4ucHJvcFR5cGVzID0geworICBwbGFuczogUHJvcFR5 cGVzLmFycmF5LAorfTsKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL3N0YXRpYy9qcy9FeHBsYWlu L3N2Z19kb3dubG9hZC5qcyBiL3dlYi9wZ2FkbWluL3N0YXRpYy9qcy9FeHBsYWluL3N2Z19kb3du bG9hZC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAuLjVmNzBmODE4Mwot LS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL3N0YXRpYy9qcy9FeHBsYWluL3N2Z19kb3du bG9hZC5qcwpAQCAtMCwwICsxLDU0IEBACisvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLworLy8gcGdBZG1pbiA0IC0gUG9zdGdy ZVNRTCBUb29scworLy8KKy8vIENvcHlyaWdodCAoQykgMjAxMyAtIDIwMjIsIFRoZSBwZ0FkbWlu IERldmVsb3BtZW50IFRlYW0KKy8vIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgdGhl IFBvc3RncmVTUUwgTGljZW5jZQorLy8KKy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCitpbXBvcnQgZ2V0QXBpSW5zdGFuY2UgZnJv bSAnLi4vYXBpX2luc3RhbmNlJzsKKworZnVuY3Rpb24gY29udmVydEltYWdlVVJMdG9EYXRhVVJJ KGFwaSwgaW1hZ2UpIHsKKyAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUsIHJl amVjdCkgeworICAgIGxldCBocmVmID0gaW1hZ2UuZ2V0QXR0cmlidXRlKCdocmVmJykgfHwgaW1h Z2UuZ2V0QXR0cmlidXRlTlMoJ2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsnLCAnaHJlZicp OworICAgIGFwaS5nZXQoaHJlZikudGhlbigoe2RhdGF9KT0+eworICAgICAgaW1hZ2Uuc2V0QXR0 cmlidXRlKCdocmVmJywgJ2RhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsJyt3aW5kb3cuYnRvYShk YXRhKSk7CisgICAgICByZXNvbHZlKCk7CisgICAgfSkuY2F0Y2goKCk9PnsKKyAgICAgIHJlamVj dCgpOworICAgIH0pOworICB9KTsKK30KKworZXhwb3J0IGZ1bmN0aW9uIGRvd25sb2FkU3ZnKHN2 Zywgc3ZnTmFtZSkgeworICBsZXQgc3ZnRGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2 Jyk7CisgIHN2Z0Rpdi5pbm5lckhUTUwgPSBzdmc7CisgIHN2Z0Rpdi5zdHlsZS52aXNpYmlsaXR5 ID0gJ2hpZGRlbic7CisgIHN2Z0Rpdi5zdHlsZS5kaXNwbGF5ID0gJ3RhYmxlJzsKKyAgc3ZnRGl2 LnN0eWxlLnBvc2l0aW9uID0gJ2Fic29sdXRlJzsKKyAgbGV0IHN2Z0VsZW1lbnQgPSBzdmdEaXYu Zmlyc3RDaGlsZDsKKyAgbGV0IGFwaSA9IGdldEFwaUluc3RhbmNlKCk7CisgIGlmICghc3ZnRWxl bWVudCkgeyByZXR1cm47IH0KKworICBsZXQgaW1hZ2VzID0gc3ZnRWxlbWVudC5nZXRFbGVtZW50 c0J5VGFnTmFtZSgnaW1hZ2UnKTsKKyAgbGV0IGltYWdlX3Byb21pc2VzID0gW107CisgIGlmIChp bWFnZXMpeworICAgIGZvciAobGV0IGltYWdlIG9mIGltYWdlcykgeworICAgICAgaWYgKChpbWFn ZS5nZXRBdHRyaWJ1dGUoJ2hyZWYnKSAmJiBpbWFnZS5nZXRBdHRyaWJ1dGUoJ2hyZWYnKS5pbmRl eE9mKCdkYXRhOicpID09PSAtMSkKKyAgICAgIHx8IChpbWFnZS5nZXRBdHRyaWJ1dGUoJ3hsaW5r OmhyZWYnKSAmJiBpbWFnZS5nZXRBdHRyaWJ1dGUoJ3hsaW5rOmhyZWYnKS5pbmRleE9mKCdkYXRh OicpID09PSAtMSkpIHsKKyAgICAgICAgaW1hZ2VfcHJvbWlzZXMucHVzaChjb252ZXJ0SW1hZ2VV Ukx0b0RhdGFVUkkoYXBpLCBpbWFnZSkpOworICAgICAgfQorICAgIH0KKyAgfQorCisgIFByb21p c2UuYWxsKGltYWdlX3Byb21pc2VzKS50aGVuKGZ1bmN0aW9uKCkgeworICAgIGxldCBibG9iID0g bmV3IEJsb2IoW3N2Z0VsZW1lbnQub3V0ZXJIVE1MXSwge3R5cGU6ICdpbWFnZS9zdmcreG1sJ30p OworICAgIGxldCBzdmdVUkwgPSAod2luZG93LlVSTCB8fCB3aW5kb3cud2Via2l0VVJMKS5jcmVh dGVPYmplY3RVUkwoYmxvYik7CisgICAgbGV0IG5ld0VsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVF bGVtZW50KCdhJyk7CisgICAgbmV3RWxlbWVudC5ocmVmID0gc3ZnVVJMOworICAgIG5ld0VsZW1l bnQuc2V0QXR0cmlidXRlKCdkb3dubG9hZCcsIHN2Z05hbWUpOworICAgIGRvY3VtZW50LmJvZHku YXBwZW5kQ2hpbGQobmV3RWxlbWVudCk7CisgICAgbmV3RWxlbWVudC5jbGljaygpOworICAgIGRv Y3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQobmV3RWxlbWVudCk7CisgIH0pOworfQpkaWZmIC0tZ2l0 IGEvd2ViL3BnYWRtaW4vc3RhdGljL2pzL1NjaGVtYVZpZXcvRm9ybVZpZXcuanN4IGIvd2ViL3Bn YWRtaW4vc3RhdGljL2pzL1NjaGVtYVZpZXcvRm9ybVZpZXcuanN4CmluZGV4IDY4NDM5MGQ3Zi4u N2YwZDk4OGVkIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9zdGF0aWMvanMvU2NoZW1hVmlldy9G b3JtVmlldy5qc3gKKysrIGIvd2ViL3BnYWRtaW4vc3RhdGljL2pzL1NjaGVtYVZpZXcvRm9ybVZp ZXcuanN4CkBAIC0xODcsOCArMTg3LDggQEAgZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gRm9ybVZp ZXcoewogICAgICAgICAgIGlmKF8uaXNBcnJheShkZXApKSB7CiAgICAgICAgICAgICBzb3VyY2Ug PSBkZXA7CiAgICAgICAgICAgfQotICAgICAgICAgIGlmKGZpZWxkLmRlcENoYW5nZSkgewotICAg ICAgICAgICAgZGVwTGlzdGVuZXIuYWRkRGVwTGlzdGVuZXIoc291cmNlLCBhY2Nlc3NQYXRoLmNv bmNhdChmaWVsZC5pZCksIGZpZWxkLmRlcENoYW5nZSk7CisgICAgICAgICAgaWYoZmllbGQuZGVw Q2hhbmdlIHx8IGZpZWxkLmRlZmVycmVkRGVwQ2hhbmdlKSB7CisgICAgICAgICAgICBkZXBMaXN0 ZW5lci5hZGREZXBMaXN0ZW5lcihzb3VyY2UsIGFjY2Vzc1BhdGguY29uY2F0KGZpZWxkLmlkKSwg ZmllbGQuZGVwQ2hhbmdlLCBmaWVsZC5kZWZlcnJlZERlcENoYW5nZSk7CiAgICAgICAgICAgfQog ICAgICAgICAgIGlmKGZpZWxkLmRlcENoYW5nZSB8fCBmaWVsZC5kZWZlcnJlZERlcENoYW5nZSkg ewogICAgICAgICAgICAgZGVwTGlzdGVuZXIuYWRkRGVwTGlzdGVuZXIoc291cmNlLCBhY2Nlc3NQ YXRoLmNvbmNhdChmaWVsZC5pZCksIGZpZWxkLmRlcENoYW5nZSwgZmllbGQuZGVmZXJyZWREZXBD aGFuZ2UpOwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vc3RhdGljL2pzL1RoZW1lL2luZGV4Lmpz eCBiL3dlYi9wZ2FkbWluL3N0YXRpYy9qcy9UaGVtZS9pbmRleC5qc3gKaW5kZXggZGE1OGZhZmE4 Li45ZTRjZWQ2YzYgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL3N0YXRpYy9qcy9UaGVtZS9pbmRl eC5qc3gKKysrIGIvd2ViL3BnYWRtaW4vc3RhdGljL2pzL1RoZW1lL2luZGV4LmpzeApAQCAtMTcz LDcgKzE3Myw3IEBAIGJhc2ljU2V0dGluZ3MgPSBjcmVhdGVNdWlUaGVtZShiYXNpY1NldHRpbmdz LCB7CiAgICAgICBwb3BwZXI6IHsKICAgICAgICAgdG9wOiAwLAogICAgICAgICB6SW5kZXg6IDk5 OTksCi0gICAgICB9CisgICAgICB9LAogICAgIH0sCiAgICAgTXVpTWVudTogewogICAgICAgbGlz dDogewpAQCAtMjMxLDYgKzIzMSw5IEBAIGJhc2ljU2V0dGluZ3MgPSBjcmVhdGVNdWlUaGVtZShi YXNpY1NldHRpbmdzLCB7CiAgICAgTXVpTGlzdEl0ZW06IHsKICAgICAgIGRpc2FibGVHdXR0ZXJz OiB0cnVlLAogICAgIH0sCisgICAgTXVpVG9vbHRpcDogeworICAgICAgYXJyb3c6IHRydWUsCisg ICAgfQogICB9LAogfSk7CiAKQEAgLTQ5Miw2ICs0OTUsMTYgQEAgZnVuY3Rpb24gZ2V0RmluYWxU aGVtZShiYXNlVGhlbWUpIHsKICAgICAgICAgICAgIH0KICAgICAgICAgICB9LAogICAgICAgICB9 CisgICAgICB9LAorICAgICAgTXVpVG9vbHRpcDogeworICAgICAgICB0b29sdGlwOiB7CisgICAg ICAgICAgZm9udFNpemU6ICcwLjdyZW0nLAorICAgICAgICAgIGNvbG9yOiBiYXNlVGhlbWUucGFs ZXR0ZS5iYWNrZ3JvdW5kLmRlZmF1bHQsCisgICAgICAgICAgYmFja2dyb3VuZENvbG9yOiBiYXNl VGhlbWUucGFsZXR0ZS50ZXh0LnByaW1hcnksCisgICAgICAgIH0sCisgICAgICAgIGFycm93OiB7 CisgICAgICAgICAgY29sb3I6IGJhc2VUaGVtZS5wYWxldHRlLnRleHQucHJpbWFyeSwKKyAgICAg ICAgfQogICAgICAgfQogICAgIH0KICAgfSwgYmFzZVRoZW1lKTsKZGlmZiAtLWdpdCBhL3dlYi9w Z2FkbWluL3N0YXRpYy9qcy9UaGVtZS9zdGFuZGFyZC5qcyBiL3dlYi9wZ2FkbWluL3N0YXRpYy9q cy9UaGVtZS9zdGFuZGFyZC5qcwppbmRleCBkZGM5Y2Q3MzUuLjEzN2Y1MDBkYSAxMDA2NDQKLS0t IGEvd2ViL3BnYWRtaW4vc3RhdGljL2pzL1RoZW1lL3N0YW5kYXJkLmpzCisrKyBiL3dlYi9wZ2Fk bWluL3N0YXRpYy9qcy9UaGVtZS9zdGFuZGFyZC5qcwpAQCAtMTAxLDcgKzEwMSw3IEBAIGV4cG9y dCBkZWZhdWx0IGZ1bmN0aW9uKGJhc2ljU2V0dGluZ3MpIHsKICAgICAgIHN0ZXBGZzogJyMwMDAn LAogICAgICAgdG9nZ2xlQnRuQmc6ICcjMDAwJywKICAgICAgIGVkaXRvclRvb2xiYXJCZzogJyNl YmVlZjMnLAotICAgICAgZGF0YWdyaWRCZzogJyNmZmYnLAorICAgICAgcXREYXRhZ3JpZEJnOiAn I2ZmZicsCiAgICAgfQogICB9KTsKIH0KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL3N0YXRpYy9q cy9hcGlfaW5zdGFuY2UuanMgYi93ZWIvcGdhZG1pbi9zdGF0aWMvanMvYXBpX2luc3RhbmNlLmpz CmluZGV4IGM2Y2UzOGNiMS4uNGE0YzY1NDY3IDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9zdGF0 aWMvanMvYXBpX2luc3RhbmNlLmpzCisrKyBiL3dlYi9wZ2FkbWluL3N0YXRpYy9qcy9hcGlfaW5z dGFuY2UuanMKQEAgLTI5LDcgKzI5LDcgQEAgZXhwb3J0IGZ1bmN0aW9uIHBhcnNlQXBpRXJyb3Io ZXJyb3IpIHsKICAgICAvLyBUaGUgcmVxdWVzdCB3YXMgbWFkZSBhbmQgdGhlIHNlcnZlciByZXNw b25kZWQgd2l0aCBhIHN0YXR1cyBjb2RlCiAgICAgLy8gdGhhdCBmYWxscyBvdXQgb2YgdGhlIHJh bmdlIG9mIDJ4eAogICAgIGlmKGVycm9yLnJlc3BvbnNlLmhlYWRlcnNbJ2NvbnRlbnQtdHlwZSdd ID09ICdhcHBsaWNhdGlvbi9qc29uJykgewotICAgICAgcmV0dXJuIGBJTlRFUk5BTCBTRVJWRVIg RVJST1I6ICR7ZXJyb3IucmVzcG9uc2UuZGF0YS5lcnJvcm1zZ31gOworICAgICAgcmV0dXJuIGVy cm9yLnJlc3BvbnNlLmRhdGEuZXJyb3Jtc2c7CiAgICAgfSBlbHNlIHsKICAgICAgIHJldHVybiBl cnJvci5yZXNwb25zZS5zdGF0dXNUZXh0OwogICAgIH0KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWlu L3N0YXRpYy9qcy9jb21wb25lbnRzL0J1dHRvbnMuanN4IGIvd2ViL3BnYWRtaW4vc3RhdGljL2pz L2NvbXBvbmVudHMvQnV0dG9ucy5qc3gKaW5kZXggM2VhZjdjMTU1Li42OWNhYTExODcgMTAwNjQ0 Ci0tLSBhL3dlYi9wZ2FkbWluL3N0YXRpYy9qcy9jb21wb25lbnRzL0J1dHRvbnMuanN4CisrKyBi L3dlYi9wZ2FkbWluL3N0YXRpYy9qcy9jb21wb25lbnRzL0J1dHRvbnMuanN4CkBAIC0xMjcsMTIg KzEyNywxMiBAQCBEZWZhdWx0QnV0dG9uLnByb3BUeXBlcyA9IHsKIAogCiAvKiBwZ0FkbWluIElj b24gYnV0dG9uLCB0YWtlcyBJY29uIGNvbXBvbmVudCBhcyBpbnB1dCAqLwotZXhwb3J0IGNvbnN0 IFBnSWNvbkJ1dHRvbiA9IGZvcndhcmRSZWYoKHtpY29uLCB0aXRsZSwgc2hvcnRjdXQsIGFjY2Vz c0tleSwgY2xhc3NOYW1lLCBzcGxpdEJ1dHRvbiwgc3R5bGUsIGNvbG9yLCAuLi5wcm9wc30sIHJl Zik9PnsKK2V4cG9ydCBjb25zdCBQZ0ljb25CdXR0b24gPSBmb3J3YXJkUmVmKCh7aWNvbiwgdGl0 bGUsIHNob3J0Y3V0LCBjbGFzc05hbWUsIHNwbGl0QnV0dG9uLCBzdHlsZSwgY29sb3IsIGFjY2Vz c2tleSwgLi4ucHJvcHN9LCByZWYpPT57CiAgIGNvbnN0IGNsYXNzZXMgPSB1c2VTdHlsZXMoKTsK IAogICBsZXQgc2hvcnRjdXRUaXRsZSA9IG51bGw7Ci0gIGlmKGFjY2Vzc0tleSB8fCBzaG9ydGN1 dCkgewotICAgIHNob3J0Y3V0VGl0bGUgPSA8U2hvcnRjdXRUaXRsZSB0aXRsZT17dGl0bGV9IGFj Y2Vzc0tleT17YWNjZXNzS2V5fSBzaG9ydGN1dD17c2hvcnRjdXR9Lz47CisgIGlmKGFjY2Vzc2tl eSB8fCBzaG9ydGN1dCkgeworICAgIHNob3J0Y3V0VGl0bGUgPSA8U2hvcnRjdXRUaXRsZSB0aXRs ZT17dGl0bGV9IGFjY2Vzc2tleT17YWNjZXNza2V5fSBzaG9ydGN1dD17c2hvcnRjdXR9Lz47CiAg IH0KIAogICAvKiBUb29sdGlwIGRvZXMgbm90IHdvcmsgZm9yIGRpc2FibGVkIGl0ZW1zICovCkBA IC0xNDAsMTQgKzE0MCwxNiBAQCBleHBvcnQgY29uc3QgUGdJY29uQnV0dG9uID0gZm9yd2FyZFJl Zigoe2ljb24sIHRpdGxlLCBzaG9ydGN1dCwgYWNjZXNzS2V5LCBjbGFzcwogICAgIGlmKGNvbG9y ID09ICdwcmltYXJ5JykgewogICAgICAgcmV0dXJuICgKICAgICAgICAgPFByaW1hcnlCdXR0b24g cmVmPXtyZWZ9IHN0eWxlPXt7bWluV2lkdGg6IDAsIC4uLnN0eWxlfX0KLSAgICAgICAgICBjbGFz c05hbWU9e2Nsc3goY2xhc3Nlcy5pY29uQnV0dG9uLCAoc3BsaXRCdXR0b24gPyBjbGFzc2VzLnNw bGl0QnV0dG9uIDogJycpLCBjbGFzc05hbWUpfSB7Li4ucHJvcHN9PgorICAgICAgICAgIGNsYXNz TmFtZT17Y2xzeChjbGFzc2VzLmljb25CdXR0b24sIChzcGxpdEJ1dHRvbiA/IGNsYXNzZXMuc3Bs aXRCdXR0b24gOiAnJyksIGNsYXNzTmFtZSl9CisgICAgICAgICAgYWNjZXNzS2V5PXthY2Nlc3Nr ZXl9IHsuLi5wcm9wc30+CiAgICAgICAgICAge2ljb259CiAgICAgICAgIDwvUHJpbWFyeUJ1dHRv bj4KICAgICAgICk7CiAgICAgfSBlbHNlIHsKICAgICAgIHJldHVybiAoCiAgICAgICAgIDxEZWZh dWx0QnV0dG9uIHJlZj17cmVmfSBzdHlsZT17e21pbldpZHRoOiAwLCAuLi5zdHlsZX19Ci0gICAg ICAgICAgY2xhc3NOYW1lPXtjbHN4KGNsYXNzZXMuaWNvbkJ1dHRvbiwgY2xhc3Nlcy5pY29uQnV0 dG9uRGVmYXVsdCwgKHNwbGl0QnV0dG9uID8gY2xhc3Nlcy5zcGxpdEJ1dHRvbiA6ICcnKSwgY2xh c3NOYW1lKX0gey4uLnByb3BzfT4KKyAgICAgICAgICBjbGFzc05hbWU9e2Nsc3goY2xhc3Nlcy5p Y29uQnV0dG9uLCBjbGFzc2VzLmljb25CdXR0b25EZWZhdWx0LCAoc3BsaXRCdXR0b24gPyBjbGFz c2VzLnNwbGl0QnV0dG9uIDogJycpLCBjbGFzc05hbWUpfQorICAgICAgICAgIGFjY2Vzc0tleT17 YWNjZXNza2V5fSB7Li4ucHJvcHN9PgogICAgICAgICAgIHtpY29ufQogICAgICAgICA8L0RlZmF1 bHRCdXR0b24+CiAgICAgICApOwpAQCAtMTU3LDcgKzE1OSw4IEBAIGV4cG9ydCBjb25zdCBQZ0lj b25CdXR0b24gPSBmb3J3YXJkUmVmKCh7aWNvbiwgdGl0bGUsIHNob3J0Y3V0LCBhY2Nlc3NLZXks IGNsYXNzCiAgICAgICByZXR1cm4gKAogICAgICAgICA8VG9vbHRpcCB0aXRsZT17c2hvcnRjdXRU aXRsZSB8fCB0aXRsZSB8fCAnJ30gYXJpYS1sYWJlbD17dGl0bGUgfHwgJyd9PgogICAgICAgICAg IDxQcmltYXJ5QnV0dG9uIHJlZj17cmVmfSBzdHlsZT17e21pbldpZHRoOiAwLCAuLi5zdHlsZX19 Ci0gICAgICAgICAgICBjbGFzc05hbWU9e2Nsc3goY2xhc3Nlcy5pY29uQnV0dG9uLCAoc3BsaXRC dXR0b24gPyBjbGFzc2VzLnNwbGl0QnV0dG9uIDogJycpLCBjbGFzc05hbWUpfSB7Li4ucHJvcHN9 PgorICAgICAgICAgICAgY2xhc3NOYW1lPXtjbHN4KGNsYXNzZXMuaWNvbkJ1dHRvbiwgKHNwbGl0 QnV0dG9uID8gY2xhc3Nlcy5zcGxpdEJ1dHRvbiA6ICcnKSwgY2xhc3NOYW1lKX0KKyAgICAgICAg ICAgIGFjY2Vzc0tleT17YWNjZXNza2V5fSB7Li4ucHJvcHN9PgogICAgICAgICAgICAge2ljb259 CiAgICAgICAgICAgPC9QcmltYXJ5QnV0dG9uPgogICAgICAgICA8L1Rvb2x0aXA+CkBAIC0xNjYs NyArMTY5LDggQEAgZXhwb3J0IGNvbnN0IFBnSWNvbkJ1dHRvbiA9IGZvcndhcmRSZWYoKHtpY29u LCB0aXRsZSwgc2hvcnRjdXQsIGFjY2Vzc0tleSwgY2xhc3MKICAgICAgIHJldHVybiAoCiAgICAg ICAgIDxUb29sdGlwIHRpdGxlPXtzaG9ydGN1dFRpdGxlIHx8IHRpdGxlIHx8ICcnfSBhcmlhLWxh YmVsPXt0aXRsZSB8fCAnJ30+CiAgICAgICAgICAgPERlZmF1bHRCdXR0b24gcmVmPXtyZWZ9IHN0 eWxlPXt7bWluV2lkdGg6IDAsIC4uLnN0eWxlfX0KLSAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xz eChjbGFzc2VzLmljb25CdXR0b24sIGNsYXNzZXMuaWNvbkJ1dHRvbkRlZmF1bHQsIChzcGxpdEJ1 dHRvbiA/IGNsYXNzZXMuc3BsaXRCdXR0b24gOiAnJyksIGNsYXNzTmFtZSl9IHsuLi5wcm9wc30+ CisgICAgICAgICAgICBjbGFzc05hbWU9e2Nsc3goY2xhc3Nlcy5pY29uQnV0dG9uLCBjbGFzc2Vz Lmljb25CdXR0b25EZWZhdWx0LCAoc3BsaXRCdXR0b24gPyBjbGFzc2VzLnNwbGl0QnV0dG9uIDog JycpLCBjbGFzc05hbWUpfQorICAgICAgICAgICAgYWNjZXNzS2V5PXthY2Nlc3NrZXl9IHsuLi5w cm9wc30+CiAgICAgICAgICAgICB7aWNvbn0KICAgICAgICAgICA8L0RlZmF1bHRCdXR0b24+CiAg ICAgICAgIDwvVG9vbHRpcD4KQEAgLTE3OSw3ICsxODMsNyBAQCBQZ0ljb25CdXR0b24ucHJvcFR5 cGVzID0gewogICBpY29uOiBDdXN0b21Qcm9wVHlwZXMuY2hpbGRyZW4sCiAgIHRpdGxlOiBQcm9w VHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsCiAgIHNob3J0Y3V0OiBDdXN0b21Qcm9wVHlwZXMuc2hv cnRjdXQsCi0gIGFjY2Vzc0tleTogUHJvcFR5cGVzLnN0cmluZywKKyAgYWNjZXNza2V5OiBQcm9w VHlwZXMuc3RyaW5nLAogICBjbGFzc05hbWU6IFByb3BUeXBlcy5vbmVPZlR5cGUoW1Byb3BUeXBl cy5zdHJpbmcsIFByb3BUeXBlcy5vYmplY3RdKSwKICAgc3R5bGU6IFByb3BUeXBlcy5vYmplY3Qs CiAgIGNvbG9yOiBQcm9wVHlwZXMub25lT2YoWydwcmltYXJ5JywgJ2RlZmF1bHQnLCB1bmRlZmlu ZWRdKSwKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL3N0YXRpYy9qcy9jb21wb25lbnRzL0NvZGVN aXJyb3IuanN4IGIvd2ViL3BnYWRtaW4vc3RhdGljL2pzL2NvbXBvbmVudHMvQ29kZU1pcnJvci5q c3gKaW5kZXggN2UzYzBjZGRhLi44Mzc1Yjg2M2EgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL3N0 YXRpYy9qcy9jb21wb25lbnRzL0NvZGVNaXJyb3IuanN4CisrKyBiL3dlYi9wZ2FkbWluL3N0YXRp Yy9qcy9jb21wb25lbnRzL0NvZGVNaXJyb3IuanN4CkBAIC04LDExICs4LDExIEBACiAvLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwog CiBpbXBvcnQgUmVhY3QsIHsgdXNlRWZmZWN0LCB1c2VNZW1vLCB1c2VSZWYsIHVzZVN0YXRlIH0g ZnJvbSAncmVhY3QnOwotaW1wb3J0IHtkZWZhdWx0IGFzIE9yaWdDb2RlTWlycm9yfSBmcm9tICdi dW5kbGVkX2NvZGVtaXJyb3InOworaW1wb3J0IE9yaWdDb2RlTWlycm9yIGZyb20gJ2J1bmRsZWRf Y29kZW1pcnJvcic7CiBpbXBvcnQge3VzZU9uU2NyZWVufSBmcm9tICdzb3VyY2VzL2N1c3RvbV9o b29rcyc7CiBpbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnOwogaW1wb3J0IEN1c3Rv bVByb3BUeXBlcyBmcm9tICcuLi9jdXN0b21fcHJvcF90eXBlcyc7Ci1pbXBvcnQgcGdBZG1pbiBm cm9tICdzb3VyY2VzL3BnYWRtaW4nOworaW1wb3J0IHBnV2luZG93IGZyb20gJ3NvdXJjZXMvd2lu ZG93JzsKIGltcG9ydCBnZXR0ZXh0IGZyb20gJ3NvdXJjZXMvZ2V0dGV4dCc7CiBpbXBvcnQgeyBC b3gsIElucHV0QWRvcm5tZW50LCBtYWtlU3R5bGVzIH0gZnJvbSAnQG1hdGVyaWFsLXVpL2NvcmUn OwogaW1wb3J0IGNsc3ggZnJvbSAnY2xzeCc7CkBAIC03MCwzMSArNzAsNDAgQEAgZnVuY3Rpb24g cGFyc2VRdWVyeShxdWVyeSwgdXNlUmVnZXg9ZmFsc2UsIG1hdGNoQ2FzZT1mYWxzZSkgewogICBy ZXR1cm4gcXVlcnk7CiB9CiAKK2Z1bmN0aW9uIGdldFJlZ2V4RmluZGVyKHF1ZXJ5KSB7CisgIHJl dHVybiAoc3RyZWFtKSA9PiB7CisgICAgcXVlcnkubGFzdEluZGV4ID0gc3RyZWFtLnBvczsKKyAg ICB2YXIgbWF0Y2ggPSBxdWVyeS5leGVjKHN0cmVhbS5zdHJpbmcpOworICAgIGlmIChtYXRjaCAm JiBtYXRjaC5pbmRleCA9PSBzdHJlYW0ucG9zKSB7CisgICAgICBzdHJlYW0ucG9zICs9IG1hdGNo WzBdLmxlbmd0aCB8fCAxOworICAgICAgcmV0dXJuICdzZWFyY2hpbmcnOworICAgIH0gZWxzZSBp ZiAobWF0Y2gpIHsKKyAgICAgIHN0cmVhbS5wb3MgPSBtYXRjaC5pbmRleDsKKyAgICB9IGVsc2Ug eworICAgICAgc3RyZWFtLnNraXBUb0VuZCgpOworICAgIH0KKyAgfTsKK30KKworCitmdW5jdGlv biBnZXRQbGFpblN0cmluZ0ZpbmRlcihxdWVyeSwgbWF0Y2hDYXNlKSB7CisgIHJldHVybiAoc3Ry ZWFtKSA9PiB7CisgICAgdmFyIG1hdGNoSW5kZXggPSAobWF0Y2hDYXNlID8gc3RyZWFtLnN0cmlu ZyA6ICBzdHJlYW0uc3RyaW5nLnRvTG93ZXJDYXNlKCkpLmluZGV4T2YocXVlcnksIHN0cmVhbS5w b3MpOworICAgIGlmKG1hdGNoSW5kZXggPT0gLTEpIHsKKyAgICAgIHN0cmVhbS5za2lwVG9FbmQo KTsKKyAgICB9IGVsc2UgaWYobWF0Y2hJbmRleCA9PSBzdHJlYW0ucG9zKSB7CisgICAgICBzdHJl YW0ucG9zICs9IHF1ZXJ5Lmxlbmd0aDsKKyAgICAgIHJldHVybiAnc2VhcmNoaW5nJzsKKyAgICB9 IGVsc2UgeworICAgICAgc3RyZWFtLnBvcyA9IG1hdGNoSW5kZXg7CisgICAgfQorICB9OworfQor CiBmdW5jdGlvbiBzZWFyY2hPdmVybGF5KHF1ZXJ5LCBtYXRjaENhc2UpIHsKICAgcmV0dXJuIHsK ICAgICB0b2tlbjogdHlwZW9mIHF1ZXJ5ID09ICdzdHJpbmcnID8KLSAgICAgIChzdHJlYW0pID0+ ewotICAgICAgICB2YXIgbWF0Y2hJbmRleCA9IChtYXRjaENhc2UgPyBzdHJlYW0uc3RyaW5nIDog IHN0cmVhbS5zdHJpbmcudG9Mb3dlckNhc2UoKSkuaW5kZXhPZihxdWVyeSwgc3RyZWFtLnBvcyk7 Ci0gICAgICAgIGlmKG1hdGNoSW5kZXggPT0gLTEpIHsKLSAgICAgICAgICBzdHJlYW0uc2tpcFRv RW5kKCk7Ci0gICAgICAgIH0gZWxzZSBpZihtYXRjaEluZGV4ID09IHN0cmVhbS5wb3MpIHsKLSAg ICAgICAgICBzdHJlYW0ucG9zICs9IHF1ZXJ5Lmxlbmd0aDsKLSAgICAgICAgICByZXR1cm4gJ3Nl YXJjaGluZyc7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgc3RyZWFtLnBvcyA9IG1hdGNo SW5kZXg7Ci0gICAgICAgIH0KLSAgICAgIH0gOiAoc3RyZWFtKSA9PiB7Ci0gICAgICAgIHF1ZXJ5 Lmxhc3RJbmRleCA9IHN0cmVhbS5wb3M7Ci0gICAgICAgIHZhciBtYXRjaCA9IHF1ZXJ5LmV4ZWMo c3RyZWFtLnN0cmluZyk7Ci0gICAgICAgIGlmIChtYXRjaCAmJiBtYXRjaC5pbmRleCA9PSBzdHJl YW0ucG9zKSB7Ci0gICAgICAgICAgc3RyZWFtLnBvcyArPSBtYXRjaFswXS5sZW5ndGggfHwgMTsK LSAgICAgICAgICByZXR1cm4gJ3NlYXJjaGluZyc7Ci0gICAgICAgIH0gZWxzZSBpZiAobWF0Y2gp IHsKLSAgICAgICAgICBzdHJlYW0ucG9zID0gbWF0Y2guaW5kZXg7Ci0gICAgICAgIH0gZWxzZSB7 Ci0gICAgICAgICAgc3RyZWFtLnNraXBUb0VuZCgpOwotICAgICAgICB9Ci0gICAgICB9CisgICAg ICBnZXRQbGFpblN0cmluZ0ZpbmRlcihxdWVyeSwgbWF0Y2hDYXNlKSA6IGdldFJlZ2V4RmluZGVy KHF1ZXJ5KQogICB9OwogfQogCkBAIC0yNjAsMjggKzI2OSw4NSBAQCBGaW5kRGlhbG9nLnByb3BU eXBlcyA9IHsKICAgb25DbG9zZTogUHJvcFR5cGVzLmZ1bmMsCiB9OwogCitmdW5jdGlvbiBoYW5k bGVEcm9wKGVkaXRvciwgZSkgeworICB2YXIgZHJvcERldGFpbHMgPSBudWxsOworICB0cnkgewor ICAgIGRyb3BEZXRhaWxzID0gSlNPTi5wYXJzZShlLmRhdGFUcmFuc2Zlci5nZXREYXRhKCd0ZXh0 JykpOworCisgICAgLyogU3RvcCBmaXJlZm94IGZyb20gcmVkaXJlY3RpbmcgKi8KKworICAgIGlm KGUucHJldmVudERlZmF1bHQpIHsKKyAgICAgIGUucHJldmVudERlZmF1bHQoKTsKKyAgICB9Cisg ICAgaWYgKGUuc3RvcFByb3BhZ2F0aW9uKSB7CisgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpOwor ICAgIH0KKyAgfSBjYXRjaChlcnJvcikgeworICAgIC8qIGlmIHBhcnNpbmcgZmFpbHMsIGl0IG11 c3QgYmUgdGhlIGRyYWcgaW50ZXJuYWwgb2YgY29kZW1pcnJvciB0ZXh0ICovCisgICAgcmV0dXJu OworICB9CisKKyAgdmFyIGN1cnNvciA9IGVkaXRvci5jb29yZHNDaGFyKHsKKyAgICBsZWZ0OiBl LngsCisgICAgdG9wOiBlLnksCisgIH0pOworICBlZGl0b3IucmVwbGFjZVJhbmdlKGRyb3BEZXRh aWxzLnRleHQsIGN1cnNvcik7CisgIGVkaXRvci5mb2N1cygpOworICBlZGl0b3Iuc2V0U2VsZWN0 aW9uKHsKKyAgICAuLi5jdXJzb3IsCisgICAgY2g6IGN1cnNvci5jaCArIGRyb3BEZXRhaWxzLmN1 ci5mcm9tLAorICB9LHsKKyAgICAuLi5jdXJzb3IsCisgICAgY2g6IGN1cnNvci5jaCArZHJvcERl dGFpbHMuY3VyLnRvLAorICB9KTsKK30KKwogLyogUmVhY3Qgd3JhcHBlciBmb3IgQ29kZU1pcnJv ciAqLwotZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gQ29kZU1pcnJvcih7Y3VyckVkaXRvciwgbmFt ZSwgdmFsdWUsIG9wdGlvbnMsIGV2ZW50cywgcmVhZG9ubHksIGRpc2FibGVkLCBjbGFzc05hbWV9 KSB7CitleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBDb2RlTWlycm9yKHtjdXJyRWRpdG9yLCBuYW1l LCB2YWx1ZSwgb3B0aW9ucywgZXZlbnRzLCByZWFkb25seSwgZGlzYWJsZWQsIGNsYXNzTmFtZSwg YXV0b2NvbXBsZXRlPWZhbHNlfSkgewogICBjb25zdCB0YVJlZiA9IHVzZVJlZigpOwogICBjb25z dCBlZGl0b3IgPSB1c2VSZWYoKTsKICAgY29uc3QgY21XcmFwcGVyID0gdXNlUmVmKCk7CiAgIGNv bnN0IGlzVmlzaWJsZVRyYWNrID0gdXNlUmVmKCk7CiAgIGNvbnN0IGNsYXNzZXMgPSB1c2VTdHls ZXMoKTsKICAgY29uc3QgW1tzaG93RmluZCwgaXNSZXBsYWNlXSwgc2V0U2hvd0ZpbmRdID0gdXNl U3RhdGUoW2ZhbHNlLCBmYWxzZV0pOwotICBjb25zdCBkZWZhdWx0T3B0aW9ucyA9IHsKLSAgICB0 YWJpbmRleDogJzAnLAotICAgIGxpbmVOdW1iZXJzOiB0cnVlLAotICAgIHN0eWxlU2VsZWN0ZWRU ZXh0OiB0cnVlLAotICAgIG1vZGU6ICd0ZXh0L3gtcGdzcWwnLAotICAgIGZvbGRPcHRpb25zOiB7 Ci0gICAgICB3aWRnZXQ6ICdcdTIwMjYnLAotICAgIH0sCi0gICAgZm9sZEd1dHRlcjogdHJ1ZSwK LSAgICBndXR0ZXJzOiBbJ0NvZGVNaXJyb3ItbGluZW51bWJlcnMnLCAnQ29kZU1pcnJvci1mb2xk Z3V0dGVyJ10sCi0gICAgZXh0cmFLZXlzOiBwZ0FkbWluLkJyb3dzZXIuZWRpdG9yX3Nob3J0Y3V0 X2tleXMsCi0gICAgZHJhZ0Ryb3A6IGZhbHNlLAotICAgIHNjcmVlblJlYWRlckxhYmVsOiBnZXR0 ZXh0KCdTUUwgZWRpdG9yJyksCi0gIH07CisgIGNvbnN0IGRlZmF1bHRPcHRpb25zID0gdXNlTWVt bygoKT0+eworICAgIGxldCBnb0xlZnRLZXkgPSAnQ3RybC1BbHQtTGVmdCcsCisgICAgICBnb1Jp Z2h0S2V5ID0gJ0N0cmwtQWx0LVJpZ2h0JywKKyAgICAgIGNvbW1lbnRLZXkgPSAnQ3RybC0vJzsK KyAgICBpZihpc01hYygpKSB7CisgICAgICBnb0xlZnRLZXkgPSAnQ21kLUFsdC1MZWZ0JzsKKyAg ICAgIGdvUmlnaHRLZXkgPSAnQ21kLUFsdC1SaWdodCc7CisgICAgICBjb21tZW50S2V5ID0gJ0Nt ZC0vJzsKKyAgICB9CisgICAgcmV0dXJuIHsKKyAgICAgIHRhYmluZGV4OiAnMCcsCisgICAgICBs aW5lTnVtYmVyczogdHJ1ZSwKKyAgICAgIHN0eWxlU2VsZWN0ZWRUZXh0OiB0cnVlLAorICAgICAg bW9kZTogJ3RleHQveC1wZ3NxbCcsCisgICAgICBmb2xkT3B0aW9uczogeworICAgICAgICB3aWRn ZXQ6ICdcdTIwMjYnLAorICAgICAgfSwKKyAgICAgIGZvbGRHdXR0ZXI6IHRydWUsCisgICAgICBn dXR0ZXJzOiBbJ0NvZGVNaXJyb3ItbGluZW51bWJlcnMnLCAnQ29kZU1pcnJvci1mb2xkZ3V0dGVy J10sCisgICAgICBleHRyYUtleXM6IHsKKyAgICAgICAgLy8gQXV0b2NvbXBsZXRlIHNxbCBjb21t YW5kCisgICAgICAgIC4uLihhdXRvY29tcGxldGUgPyB7CisgICAgICAgICAgJ0N0cmwtU3BhY2Un OiAnYXV0b2NvbXBsZXRlJywKKyAgICAgICAgfToge30pLAorICAgICAgICAnQWx0LVVwJzogJ2dv TGluZVVwJywKKyAgICAgICAgJ0FsdC1Eb3duJzogJ2dvTGluZURvd24nLAorICAgICAgICAvLyBN b3ZlIHdvcmQgYnkgd29yZCBsZWZ0L3JpZ2h0CisgICAgICAgIFtnb0xlZnRLZXldOiAnZ29Hcm91 cExlZnQnLAorICAgICAgICBbZ29SaWdodEtleV06ICdnb0dyb3VwUmlnaHQnLAorICAgICAgICAv LyBBbGxvdyB1c2VyIHRvIGRlbGV0ZSBUYWIocykKKyAgICAgICAgJ1NoaWZ0LVRhYic6ICdpbmRl bnRMZXNzJywKKyAgICAgICAgLy9jb21tZW50CisgICAgICAgIFtjb21tZW50S2V5XTogJ3RvZ2ds ZUNvbW1lbnQnLAorICAgICAgfSwKKyAgICAgIGRyYWdEcm9wOiB0cnVlLAorICAgICAgc2NyZWVu UmVhZGVyTGFiZWw6IGdldHRleHQoJ1NRTCBlZGl0b3InKSwKKyAgICB9OworICB9KTsKIAogICB1 c2VFZmZlY3QoKCk9PnsKICAgICBjb25zdCBmaW5hbE9wdGlvbnMgPSB7Li4uZGVmYXVsdE9wdGlv bnMsIC4uLm9wdGlvbnN9OwpAQCAtMzI0LDEyICszOTAsMzAgQEAgZXhwb3J0IGRlZmF1bHQgZnVu Y3Rpb24gQ29kZU1pcnJvcih7Y3VyckVkaXRvciwgbmFtZSwgdmFsdWUsIG9wdGlvbnMsIGV2ZW50 cywgcmUKICAgICBPYmplY3Qua2V5cyhldmVudHN8fHt9KS5mb3JFYWNoKChldmVudE5hbWUpPT57 CiAgICAgICBlZGl0b3IuY3VycmVudC5vbihldmVudE5hbWUsIGV2ZW50c1tldmVudE5hbWVdKTsK ICAgICB9KTsKLQorICAgIGVkaXRvci5jdXJyZW50Lm9uKCdkcm9wJywgaGFuZGxlRHJvcCk7Cisg ICAgaW5pdFByZWZlcmVuY2VzKCk7CiAgICAgcmV0dXJuICgpPT57CiAgICAgICBlZGl0b3IuY3Vy cmVudD8udG9UZXh0QXJlYSgpOwogICAgIH07CiAgIH0sIFtdKTsKIAorICBjb25zdCBpbml0UHJl ZmVyZW5jZXMgPSAoKT0+eworICAgIHJlZmxlY3RQcmVmZXJlbmNlcygpOworICAgIHBnV2luZG93 Py5wZ0FkbWluPy5Ccm93c2VyPy5vblByZWZlcmVuY2VzQ2hhbmdlKCdzcWxlZGl0b3InLCBmdW5j dGlvbigpIHsKKyAgICAgIHJlZmxlY3RQcmVmZXJlbmNlcygpOworICAgIH0pOworICB9OworCisg IGNvbnN0IHJlZmxlY3RQcmVmZXJlbmNlcyA9ICgpPT57CisgICAgbGV0IHByZWYgPSBwZ1dpbmRv dz8ucGdBZG1pbj8uQnJvd3Nlcj8uZ2V0X3ByZWZlcmVuY2VzX2Zvcl9tb2R1bGUoJ3NxbGVkaXRv cicpIHx8IHt9OworICAgIGVkaXRvcj8uY3VycmVudC5zZXRPcHRpb24oJ2luZGVudFdpdGhUYWJz JywgcHJlZi5pbmRlbnRfd2l0aF90YWJzKTsKKyAgICBlZGl0b3I/LmN1cnJlbnQuc2V0T3B0aW9u KCdpbmRlbnRVbml0JywgcHJlZi50YWJfc2l6ZSk7CisgICAgZWRpdG9yPy5jdXJyZW50LnNldE9w dGlvbigndGFiU2l6ZScsIHByZWYudGFiX3NpemUpOworICAgIGVkaXRvcj8uY3VycmVudC5zZXRP cHRpb24oJ2xpbmVXcmFwcGluZycsIHByZWYud3JhcF9jb2RlKTsKKyAgICBlZGl0b3I/LmN1cnJl bnQuc2V0T3B0aW9uKCdhdXRvQ2xvc2VCcmFja2V0cycsIHByZWYuaW5zZXJ0X3BhaXJfYnJhY2tl dHMpOworICAgIGVkaXRvcj8uY3VycmVudC5zZXRPcHRpb24oJ21hdGNoQnJhY2tldHMnLCBwcmVm LmJyYWNlX21hdGNoaW5nKTsKKyAgfTsKKwogICB1c2VFZmZlY3QoKCk9PnsKICAgICBpZihlZGl0 b3IuY3VycmVudCkgewogICAgICAgaWYoZGlzYWJsZWQpIHsKQEAgLTM5Miw0ICs0NzYsNSBAQCBD b2RlTWlycm9yLnByb3BUeXBlcyA9IHsKICAgcmVhZG9ubHk6IFByb3BUeXBlcy5ib29sLAogICBk aXNhYmxlZDogUHJvcFR5cGVzLmJvb2wsCiAgIGNsYXNzTmFtZTogQ3VzdG9tUHJvcFR5cGVzLmNs YXNzTmFtZSwKKyAgYXV0b2NvbXBsZXRlOiBQcm9wVHlwZXMuYm9vbCwKIH07CmRpZmYgLS1naXQg YS93ZWIvcGdhZG1pbi9zdGF0aWMvanMvY29tcG9uZW50cy9Gb3JtQ29tcG9uZW50cy5qc3ggYi93 ZWIvcGdhZG1pbi9zdGF0aWMvanMvY29tcG9uZW50cy9Gb3JtQ29tcG9uZW50cy5qc3gKaW5kZXgg Y2RjZmFiNjQzLi4wMmY5NDRhYjAgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL3N0YXRpYy9qcy9j b21wb25lbnRzL0Zvcm1Db21wb25lbnRzLmpzeAorKysgYi93ZWIvcGdhZG1pbi9zdGF0aWMvanMv Y29tcG9uZW50cy9Gb3JtQ29tcG9uZW50cy5qc3gKQEAgLTc1Miw2ICs3NTIsNyBAQCBleHBvcnQg Y29uc3QgSW5wdXRTZWxlY3QgPSBmb3J3YXJkUmVmKCh7CiAgIGNvbnN0IFtbZmluYWxPcHRpb25z LCBpc0xvYWRpbmddLCBzZXRGaW5hbE9wdGlvbnNdID0gdXNlU3RhdGUoW1tdLCB0cnVlXSk7CiAg IGNvbnN0IHRoZW1lID0gdXNlVGhlbWUoKTsKIAorCiAgIC8qIFJlYWN0IHdpbGwgYWx3YXlzIHRh a2Ugb3B0aW9ucyB2YXIgYXMgY2hhbmdlZCBwYXJhbWV0ZXIuIFNvLAogICBXZSBjYW5ub3QgcnVu IHRoZSBiZWxvdyBlZmZlY3Qgd2l0aCBvcHRpb25zIGRlcGVuZGVuY3kgYXMgaXQgd2lsbCBrZWVw IG9uCiAgIGxvYWRpbmcgdGhlIG9wdGlvbnMuIG9wdGlvbnNSZWxvYWRCYXNpcyBpcyBoZWxwZnVs IHRvIGF2b2lkIHJlcGVhdGVkCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9zdGF0aWMvanMvY29t cG9uZW50cy9TaG9ydGN1dFRpdGxlLmpzeCBiL3dlYi9wZ2FkbWluL3N0YXRpYy9qcy9jb21wb25l bnRzL1Nob3J0Y3V0VGl0bGUuanN4CmluZGV4IDZlZjFhNTY0ZS4uODk4YzZhNDYyIDEwMDY0NAot LS0gYS93ZWIvcGdhZG1pbi9zdGF0aWMvanMvY29tcG9uZW50cy9TaG9ydGN1dFRpdGxlLmpzeAor KysgYi93ZWIvcGdhZG1pbi9zdGF0aWMvanMvY29tcG9uZW50cy9TaG9ydGN1dFRpdGxlLmpzeApA QCAtNCw4ICs0LDEzIEBAIGltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7CiBpbXBv cnQgeyBpc01hYyB9IGZyb20gJy4uL2tleWJvYXJkX3Nob3J0Y3V0cyc7CiBpbXBvcnQgXyBmcm9t ICdsb2Rhc2gnOwogaW1wb3J0IEN1c3RvbVByb3BUeXBlcyBmcm9tICcuLi9jdXN0b21fcHJvcF90 eXBlcyc7CitpbXBvcnQgZ2V0dGV4dCBmcm9tICdzb3VyY2VzL2dldHRleHQnOwogCiBjb25zdCB1 c2VTdHlsZXMgPSBtYWtlU3R5bGVzKCh0aGVtZSk9Pih7CisgIHNob3J0Y3V0VGl0bGU6IHsKKyAg ICB3aWR0aDogJzEwMCUnLAorICAgIHRleHRBbGlnbjogJ2NlbnRlcicsCisgIH0sCiAgIHNob3J0 Y3V0OiB7CiAgICAganVzdGlmeUNvbnRlbnQ6ICdjZW50ZXInLAogICAgIG1hcmdpblRvcDogJzAu MTI1cmVtJywKQEAgLTE5LDEwICsyNCw0MyBAQCBjb25zdCB1c2VTdHlsZXMgPSBtYWtlU3R5bGVz KCh0aGVtZSk9Pih7CiAgIH0sCiB9KSk7CiAKK2V4cG9ydCBmdW5jdGlvbiBnZXRCcm93c2VyQWNj ZXNza2V5KCkgeworICAvKiBSZWY6IGh0dHBzOi8vZ2l0aHViLmNvbS90aWxsc2FuZGVycy9hY2Nl c3Mta2V5LWxhYmVsLXBvbHlmaWxsLyAqLworICBsZXQgdWEgPSB3aW5kb3cubmF2aWdhdG9yLnVz ZXJBZ2VudDsKKyAgLy8gbWFjT1MKKyAgaWYgKHVhLm1hdGNoKC9tYWNpbnRvc2gvaSkpIHsKKyAg ICAvLyBGaXJlZm94CisgICAgaWYgKHVhLm1hdGNoKC9maXJlZm94L2kpKSB7CisgICAgICBjb25z dCBmaXJlZm94VmVyc2lvbiA9IHVhLm1hdGNoKC9maXJlZm94W1xzL10oXGQrKS9pKTsKKyAgICAg IC8vIEZpcmVmb3ggPCB2MTQKKyAgICAgIGlmIChmaXJlZm94VmVyc2lvblsxXSAmJiBwYXJzZUlu dChmaXJlZm94VmVyc2lvblsxXSwgMTApIDwgMTQpIHsKKyAgICAgICAgcmV0dXJuIFsnQ3RybCdd OworICAgICAgfQorICAgIH0KKyAgICByZXR1cm4gWydDdHJsJywgJ09wdGlvbiddOworICB9CisK KyAgLy8gSW50ZXJuZXQgRXhwbG9yZXIgLyBFZGdlCisgIGlmICh1YS5tYXRjaCgvbXNpZXx0cmlk ZW50L2kpIHx8IHVhLm1hdGNoKC9cc2VkZy9pKSkgeworICAgIHJldHVybiBbJ0FsdCddOworICB9 CisKKyAgLy8gaU9TIC8gaVBhZE9TCisgIGlmICh1YS5tYXRjaCgvKGlwb2R8aXBob25lfGlwYWQp L2kpKSB7CisgICAgLy8gYWNjZXNza2V5TGFiZWwgaXMgc3VwcG9ydGVkID4gdjE0LCBidXQgd2Un cmUgbm90IGNoZWNraW5nIGZvciB2ZXJzaW9ucyBoZXJlLCBzaW5jZSB3ZSB1c2UKKyAgICAvLyBm ZWF0dXJlIHN1cHBvcnQgZGV0ZWN0aW9uCisgICAgcmV0dXJuIFsnQ3RybCcsICdPcHRpb24nXTsK KyAgfQorCisgIC8vIEZhbGxiYWNrCisgIC8vIE5vdGU6IEFwcGFyZW50bHksIENocm9tZSBmb3Ig QW5kcm9pZCBpcyBub3QgZXZlbiBzdXBwb3J0aW5nIGFjY2Vzc2tleSwgc28gYmUgcHJlcGFyZWQu CisgIHJldHVybiBbZ2V0dGV4dCgnQWNjZXNza2V5JyldOworfQorCiBleHBvcnQgZnVuY3Rpb24g c2hvcnRjdXRUb1N0cmluZyhzaG9ydGN1dCwgYWNjZXNza2V5PW51bGwsIGFzQXJyYXk9ZmFsc2Up IHsKICAgbGV0IGtleXMgPSBbXTsKICAgaWYoYWNjZXNza2V5KSB7Ci0gICAga2V5cy5wdXNoKCdB Y2Nlc3NrZXknKTsKKyAgICBrZXlzID0gZ2V0QnJvd3NlckFjY2Vzc2tleSgpOwogICAgIGtleXMu cHVzaChfLmNhcGl0YWxpemUoYWNjZXNza2V5Py50b1VwcGVyQ2FzZSgpKSk7CiAgIH0gZWxzZSBp ZihzaG9ydGN1dCkgewogICAgIHNob3J0Y3V0LmFsdCAmJiBrZXlzLnB1c2goKGlzTWFjKCkgPyAn T3B0aW9uJyA6ICdBbHQnKSk7CkBAIC00MSwxMiArNzksMTIgQEAgZXhwb3J0IGZ1bmN0aW9uIHNo b3J0Y3V0VG9TdHJpbmcoc2hvcnRjdXQsIGFjY2Vzc2tleT1udWxsLCBhc0FycmF5PWZhbHNlKSB7 CiB9CiAKIC8qIFRoZSB0b29sdGlwIGNvbnRlbnQgdG8gc2hvdyBzaG9ydGN1dCBkZXRhaWxzICov Ci1leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBTaG9ydGN1dFRpdGxlKHt0aXRsZSwgc2hvcnRjdXQs IGFjY2Vzc0tleX0pIHsKK2V4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIFNob3J0Y3V0VGl0bGUoe3Rp dGxlLCBzaG9ydGN1dCwgYWNjZXNza2V5fSkgewogICBjb25zdCBjbGFzc2VzID0gdXNlU3R5bGVz KCk7Ci0gIGxldCBrZXlzID0gc2hvcnRjdXRUb1N0cmluZyhzaG9ydGN1dCwgYWNjZXNzS2V5LCB0 cnVlKTsKKyAgbGV0IGtleXMgPSBzaG9ydGN1dFRvU3RyaW5nKHNob3J0Y3V0LCBhY2Nlc3NrZXks IHRydWUpOwogICByZXR1cm4gKAogICAgIDw+Ci0gICAgICA8ZGl2Pnt0aXRsZX08L2Rpdj4KKyAg ICAgIDxkaXYgY2xhc3NOYW1lPXtjbGFzc2VzLnNob3J0Y3V0VGl0bGV9Pnt0aXRsZX08L2Rpdj4K ICAgICAgIDxkaXYgY2xhc3NOYW1lPXtjbGFzc2VzLnNob3J0Y3V0fT4KICAgICAgICAge2tleXMu bWFwKChrZXksIGkpPT57CiAgICAgICAgICAgcmV0dXJuIDxkaXYga2V5PXtpfSBjbGFzc05hbWU9 e2NsYXNzZXMua2V5fT57a2V5fTwvZGl2PjsKQEAgLTU5LDUgKzk3LDUgQEAgZXhwb3J0IGRlZmF1 bHQgZnVuY3Rpb24gU2hvcnRjdXRUaXRsZSh7dGl0bGUsIHNob3J0Y3V0LCBhY2Nlc3NLZXl9KSB7 CiBTaG9ydGN1dFRpdGxlLnByb3BUeXBlcyA9IHsKICAgdGl0bGU6IFByb3BUeXBlcy5zdHJpbmcs CiAgIHNob3J0Y3V0OiBDdXN0b21Qcm9wVHlwZXMuc2hvcnRjdXQsCi0gIGFjY2Vzc0tleTogUHJv cFR5cGVzLnN0cmluZywKKyAgYWNjZXNza2V5OiBQcm9wVHlwZXMuc3RyaW5nLAogfTsKZGlmZiAt LWdpdCBhL3dlYi9wZ2FkbWluL3N0YXRpYy9qcy9jdXN0b21faG9va3MuanMgYi93ZWIvcGdhZG1p bi9zdGF0aWMvanMvY3VzdG9tX2hvb2tzLmpzCmluZGV4IGI2MzcwYmJiZS4uMGJlZTI0ZjkzIDEw MDY0NAotLS0gYS93ZWIvcGdhZG1pbi9zdGF0aWMvanMvY3VzdG9tX2hvb2tzLmpzCisrKyBiL3dl Yi9wZ2FkbWluL3N0YXRpYy9qcy9jdXN0b21faG9va3MuanMKQEAgLTEwNSwyMyArMTA1LDI0IEBA IGV4cG9ydCBmdW5jdGlvbiB1c2VLZXlib2FyZFNob3J0Y3V0cyhzaG9ydGN1dHMsIGVsZVJlZikg ewogICBjb25zdCBtYXRjaEZvdW5kID0gKHNob3J0Y3V0LCBlKT0+ewogICAgIGlmKCFzaG9ydGN1 dCkgcmV0dXJuIGZhbHNlOwogICAgIGxldCBrZXlDb2RlID0gZS53aGljaCB8fCBlLmtleUNvZGU7 Ci0gICAgcmV0dXJuIHNob3J0Y3V0LmFsdCA9PSBlLmFsdEtleSAmJgotICAgICAgc2hvcnRjdXQu c2hpZnQgPT0gZS5zaGlmdEtleSAmJgotICAgICAgc2hvcnRjdXQuY29udHJvbCA9PSBlLmN0cmxL ZXkgJiYKKyAgICByZXR1cm4gQm9vbGVhbihzaG9ydGN1dC5hbHQpID09IGUuYWx0S2V5ICYmCisg ICAgICBCb29sZWFuKHNob3J0Y3V0LnNoaWZ0KSA9PSBlLnNoaWZ0S2V5ICYmCisgICAgICBCb29s ZWFuKHNob3J0Y3V0LmNvbnRyb2wpID09IGUuY3RybEtleSAmJgogICAgICAgc2hvcnRjdXQua2V5 LmtleV9jb2RlID09IGtleUNvZGU7CiAgIH07CiAgIHVzZUVmZmVjdCgoKT0+ewogICAgIGxldCBl bGUgPSBlbGVSZWYuY3VycmVudCA/PyBkb2N1bWVudDsKICAgICBjb25zdCBrZXl1cENhbGxiYWNr ID0gKGUpPT57Ci0gICAgICBmb3IobGV0IGk9MDsgaTwoc2hvcnRjdXRzUmVmLmN1cnJlbnQ/P1td KS5sZW5ndGg7IGkrKyl7Ci0gICAgICAgIGxldCB7c2hvcnRjdXQsIG9wdGlvbnN9ID0gc2hvcnRj dXRzUmVmLmN1cnJlbnRbaV07Ci0gICAgICAgIGlmKG1hdGNoRm91bmQoc2hvcnRjdXQsIGUpKSB7 Ci0gICAgICAgICAgaWYob3B0aW9ucy5jYWxsYmFjayAmJiAob3B0aW9ucy5lbmFibGVkID8/IHRy dWUpKSB7Ci0gICAgICAgICAgICBvcHRpb25zLmNhbGxiYWNrKGUpOwotICAgICAgICAgIH0KLSAg ICAgICAgICBicmVhazsKKyAgICAgIFByb21pc2UucmVzb2x2ZSgwKS50aGVuKCgpPT57CisgICAg ICAgIGxldCBhbGxMaXN0ZW5lcnMgPSBfLmZpbHRlcihzaG9ydGN1dHNSZWYuY3VycmVudCwgKHMp PT5tYXRjaEZvdW5kKHMuc2hvcnRjdXQsIGUpKTsKKyAgICAgICAgZm9yKGNvbnN0IHtvcHRpb25z fSBvZiBhbGxMaXN0ZW5lcnMpIHsKKyAgICAgICAgICBQcm9taXNlLnJlc29sdmUoMCkudGhlbigo KT0+eworICAgICAgICAgICAgaWYob3B0aW9ucy5jYWxsYmFjayAmJiAob3B0aW9ucy5lbmFibGVk ID8/IHRydWUpKSB7CisgICAgICAgICAgICAgIG9wdGlvbnMuY2FsbGJhY2soZSk7CisgICAgICAg ICAgICB9CisgICAgICAgICAgfSk7CiAgICAgICAgIH0KLSAgICAgIH0KKyAgICAgIH0pOwogICAg IH07CiAgICAgZWxlLmFkZEV2ZW50TGlzdGVuZXIoJ2tleXVwJywga2V5dXBDYWxsYmFjayk7CiAg ICAgcmV0dXJuICgpPT57CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9zdGF0aWMvanMvY3VzdG9t X3Byb3BfdHlwZXMuanMgYi93ZWIvcGdhZG1pbi9zdGF0aWMvanMvY3VzdG9tX3Byb3BfdHlwZXMu anMKaW5kZXggNmJhMjFhNmQzLi4xYTJkNGM5MzUgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL3N0 YXRpYy9qcy9jdXN0b21fcHJvcF90eXBlcy5qcworKysgYi93ZWIvcGdhZG1pbi9zdGF0aWMvanMv Y3VzdG9tX3Byb3BfdHlwZXMuanMKQEAgLTMxLDkgKzMxLDkgQEAgY29uc3QgQ3VzdG9tUHJvcFR5 cGVzID0gewogICBdKSwKIAogICBzaG9ydGN1dDogUHJvcFR5cGVzLnNoYXBlKHsKLSAgICBhbHQ6 IFByb3BUeXBlcy5ib29sLAotICAgIGNvbnRyb2w6IFByb3BUeXBlcy5ib29sLAotICAgIHNoaWZ0 OiBQcm9wVHlwZXMuYm9vbCwKKyAgICBhbHQ6IFByb3BUeXBlcy5vbmVPZlR5cGUoW1Byb3BUeXBl cy5ib29sLCBQcm9wVHlwZXMubnVtYmVyXSksCisgICAgY29udHJvbDogUHJvcFR5cGVzLm9uZU9m VHlwZShbUHJvcFR5cGVzLmJvb2wsIFByb3BUeXBlcy5udW1iZXJdKSwKKyAgICBzaGlmdDogUHJv cFR5cGVzLm9uZU9mVHlwZShbUHJvcFR5cGVzLmJvb2wsIFByb3BUeXBlcy5udW1iZXJdKSwKICAg ICBrZXk6IFByb3BUeXBlcy5zaGFwZSh7CiAgICAgICBjaGFyOiBQcm9wVHlwZXMuc3RyaW5nLAog ICAgIH0pLApkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vc3RhdGljL2pzL2hlbHBlcnMvRXZlbnRC dXMuanMgYi93ZWIvcGdhZG1pbi9zdGF0aWMvanMvaGVscGVycy9FdmVudEJ1cy5qcwppbmRleCBh OWQwNzc4MjAuLjlhNjkwNjQyOSAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vc3RhdGljL2pzL2hl bHBlcnMvRXZlbnRCdXMuanMKKysrIGIvd2ViL3BnYWRtaW4vc3RhdGljL2pzL2hlbHBlcnMvRXZl bnRCdXMuanMKQEAgLTEsNCArMSwzIEBACi1pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnOwogaW1w b3J0IF8gZnJvbSAnbG9kYXNoJzsKIAogZXhwb3J0IGRlZmF1bHQgY2xhc3MgRXZlbnRCdXMgewpA QCAtNiwxMSArNSwxMiBAQCBleHBvcnQgZGVmYXVsdCBjbGFzcyBFdmVudEJ1cyB7CiAgICAgdGhp cy5fZXZlbnRMaXN0ZW5lcnMgPSBbXTsKICAgfQogCi0gIHJlZ2lzdGVyTGlzdGVuZXIoZXZlbnQs IGNhbGxiYWNrKSB7CisgIHJlZ2lzdGVyTGlzdGVuZXIoZXZlbnQsIGNhbGxiYWNrLCBvbmNlPWZh bHNlKSB7CiAgICAgdGhpcy5fZXZlbnRMaXN0ZW5lcnMgPSB0aGlzLl9ldmVudExpc3RlbmVycyB8 fCBbXTsKICAgICB0aGlzLl9ldmVudExpc3RlbmVycy5wdXNoKHsKICAgICAgIGV2ZW50OiBldmVu dCwKICAgICAgIGNhbGxiYWNrOiBjYWxsYmFjaywKKyAgICAgIGZpcmVkOiBvbmNlID8gJ3BlbmRp bmcnIDogJ2lnbm9yZScsCiAgICAgfSk7CiAgIH0KIApAQCAtMjgsMTcgKzI4LDE5IEBAIGV4cG9y dCBkZWZhdWx0IGNsYXNzIEV2ZW50QnVzIHsKICAgfQogCiAgIGZpcmVFdmVudChldmVudCwgLi4u YXJncykgeworICAgIGxldCBzZWxmID0gdGhpczsKICAgICBQcm9taXNlLnJlc29sdmUoMCkudGhl bigoKT0+ewogICAgICAgbGV0IGFsbExpc3RlbmVycyA9IF8uZmlsdGVyKHRoaXMuX2V2ZW50TGlz dGVuZXJzLCAoZSk9PmUuZXZlbnQ9PWV2ZW50KTsKICAgICAgIGlmKGFsbExpc3RlbmVycykgewog ICAgICAgICBmb3IoY29uc3QgbGlzdGVuZXIgb2YgYWxsTGlzdGVuZXJzKSB7CiAgICAgICAgICAg UHJvbWlzZS5yZXNvbHZlKDApLnRoZW4oKCk9PnsKICAgICAgICAgICAgIGxpc3RlbmVyLmNhbGxi YWNrKC4uLmFyZ3MpOworICAgICAgICAgICAgaWYobGlzdGVuZXIuZmlyZWQgPT0gJ3BlbmRpbmcn KSB7CisgICAgICAgICAgICAgIHNlbGYuZGVyZWdpc3Rlckxpc3RlbmVyKGV2ZW50LCBsaXN0ZW5l ci5jYWxsYmFjayk7CisgICAgICAgICAgICB9CiAgICAgICAgICAgfSk7CiAgICAgICAgIH0KICAg ICAgIH0KICAgICB9KTsKICAgfQogfQotCi1leHBvcnQgY29uc3QgRXZlbnRCdXNDb250ZXh0ID0g UmVhY3QuY3JlYXRlQ29udGV4dChuZXcgRXZlbnRCdXMoKSk7CmRpZmYgLS1naXQgYS93ZWIvcGdh ZG1pbi9zdGF0aWMvanMvaGVscGVycy9MYXlvdXQuanN4IGIvd2ViL3BnYWRtaW4vc3RhdGljL2pz L2hlbHBlcnMvTGF5b3V0LmpzeAppbmRleCA1ZTNjYmU5YjAuLjI3ODcyM2Q2NiAxMDA2NDQKLS0t IGEvd2ViL3BnYWRtaW4vc3RhdGljL2pzL2hlbHBlcnMvTGF5b3V0LmpzeAorKysgYi93ZWIvcGdh ZG1pbi9zdGF0aWMvanMvaGVscGVycy9MYXlvdXQuanN4CkBAIC0xLDggKzEsMTAgQEAKLWltcG9y dCBSZWFjdCBmcm9tICdyZWFjdCc7CitpbXBvcnQgUmVhY3QsIHsgdXNlUmVmLCB1c2VNZW1vIH0g ZnJvbSAncmVhY3QnOwogaW1wb3J0IERvY2tMYXlvdXQgZnJvbSAncmMtZG9jayc7CiBpbXBvcnQg eyBtYWtlU3R5bGVzIH0gZnJvbSAnQG1hdGVyaWFsLXVpL3N0eWxlcyc7CiBpbXBvcnQgUHJvcFR5 cGVzIGZyb20gJ3Byb3AtdHlwZXMnOwotaW1wb3J0IEN1c3RvbVByb3BUeXBlcyBmcm9tICcuLi9j dXN0b21fcHJvcF90eXBlcyc7CitpbXBvcnQgRXZlbnRCdXMgZnJvbSAnLi9FdmVudEJ1cyc7Citp bXBvcnQgZ2V0QXBpSW5zdGFuY2UgZnJvbSAnLi4vYXBpX2luc3RhbmNlJzsKK2ltcG9ydCB1cmxf Zm9yIGZyb20gJ3NvdXJjZXMvdXJsX2Zvcic7CiAKIAogY29uc3QgdXNlU3R5bGVzID0gbWFrZVN0 eWxlcygodGhlbWUpPT4oewpAQCAtMjksNiArMzEsOSBAQCBjb25zdCB1c2VTdHlsZXMgPSBtYWtl U3R5bGVzKCh0aGVtZSk9Pih7CiAgICAgfSwKICAgICAnJiAuZG9jay1wYW5lbCc6IHsKICAgICAg IGJvcmRlcjogJ25vbmUnLAorICAgICAgJyYuZHJhZ2dpbmcnOiB7CisgICAgICAgIG9wYWNpdHk6 IDAuNiwKKyAgICAgIH0sCiAgICAgICAnJi5kb2NrLXN0eWxlLWRpYWxvZ3MnOiB7CiAgICAgICAg ICcmLmRvY2stcGFuZWwuZHJhZ2dpbmcnOiB7CiAgICAgICAgICAgb3BhY2l0eTogMSwKQEAgLTk1 LDcgKzEwMCw3IEBAIGNvbnN0IHVzZVN0eWxlcyA9IG1ha2VTdHlsZXMoKHRoZW1lKT0+KHsKICAg fQogfSkpOwogCi0KK2V4cG9ydCBjb25zdCBMYXlvdXRFdmVudHNDb250ZXh0ID0gUmVhY3QuY3Jl YXRlQ29udGV4dCgpOwogZXhwb3J0IGNsYXNzIExheW91dEhlbHBlciB7CiAgIHN0YXRpYyBnZXRQ YW5lbChhdHRycykgewogICAgIHJldHVybiB7CkBAIC0xMDUsMTEgKzExMCwxMSBAQCBleHBvcnQg Y2xhc3MgTGF5b3V0SGVscGVyIHsKICAgfQogCiAgIHN0YXRpYyBjbG9zZShkb2NrZXIsIHBhbmVs SWQpIHsKLSAgICBkb2NrZXIuZG9ja01vdmUoZG9ja2VyLmZpbmQocGFuZWxJZCksICdyZW1vdmUn KTsKKyAgICBkb2NrZXI/LmRvY2tNb3ZlKGRvY2tlci5maW5kKHBhbmVsSWQpLCAncmVtb3ZlJyk7 CiAgIH0KIAogICBzdGF0aWMgZm9jdXMoZG9ja2VyLCBwYW5lbElkKSB7Ci0gICAgZG9ja2VyLnVw ZGF0ZVRhYihwYW5lbElkLCBudWxsLCB0cnVlKTsKKyAgICBkb2NrZXI/LnVwZGF0ZVRhYihwYW5l bElkLCBudWxsLCB0cnVlKTsKICAgfQogCiAgIHN0YXRpYyBvcGVuRGlhbG9nKGRvY2tlciwgcGFu ZWxEYXRhLCB3aWR0aD01MDAsIGhlaWdodD0zMDApIHsKQEAgLTE0OSw4ICsxNTQsMjAgQEAgZXhw b3J0IGNsYXNzIExheW91dEhlbHBlciB7CiAgIH0KIH0KIAotZXhwb3J0IGRlZmF1bHQgZnVuY3Rp b24gTGF5b3V0KHtncm91cHMsIGxheW91dEluc3RhbmNlLCAuLi5wcm9wc30pIHsKK2Z1bmN0aW9u IHNhdmVMYXlvdXQobGF5b3V0T2JqLCBsYXlvdXRJZCkgeworICBsZXQgYXBpID0gZ2V0QXBpSW5z dGFuY2UoKTsKKyAgaWYoIWxheW91dElkIHx8ICFsYXlvdXRPYmopIHsKKyAgICByZXR1cm47Cisg IH0KKyAgY29uc3QgZm9ybURhdGEgPSBuZXcgRm9ybURhdGEoKTsKKyAgZm9ybURhdGEuYXBwZW5k KCdzZXR0aW5nJywgbGF5b3V0SWQpOworICBmb3JtRGF0YS5hcHBlbmQoJ3ZhbHVlJywgSlNPTi5z dHJpbmdpZnkobGF5b3V0T2JqLnNhdmVMYXlvdXQoKSkpOworICBhcGkucG9zdCh1cmxfZm9yKCdz ZXR0aW5ncy5zdG9yZV9idWxrJyksIGZvcm1EYXRhKQorICAgIC5jYXRjaCgoKT0+ey8qIE5vIG5l ZWQgdG8gdGhyb3cgZXJyb3IgKi99KTsKK30KK2V4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIExheW91 dCh7Z3JvdXBzLCBnZXRMYXlvdXRJbnN0YW5jZSwgbGF5b3V0SWQsIHNhdmVkTGF5b3V0LCAuLi5w cm9wc30pIHsKICAgY29uc3QgY2xhc3NlcyA9IHVzZVN0eWxlcygpOworICBjb25zdCBsYXlvdXRP YmogPSB1c2VSZWYoKTsKICAgY29uc3QgZGVmYXVsdEdyb3VwcyA9IFJlYWN0LnVzZU1lbW8oKCk9 Pih7CiAgICAgJ2RpYWxvZ3MnOiB7CiAgICAgICBkaXNhYmxlRG9jazogdHJ1ZSwKQEAgLTE1OSwy MSArMTc2LDU0IEBAIGV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIExheW91dCh7Z3JvdXBzLCBsYXlv dXRJbnN0YW5jZSwgLi4ucHJvcHN9KSB7CiAgICAgfSwKICAgICAuLi5ncm91cHMsCiAgIH0pLCBb Z3JvdXBzXSk7Ci0gIHJldHVybiAoCisKKyAgY29uc3QgbGF5b3V0RXZlbnRCdXMgPSBSZWFjdC51 c2VSZWYobmV3IEV2ZW50QnVzKCkpOworICByZXR1cm4gdXNlTWVtbygoKT0+KAogICAgIDxkaXYg Y2xhc3NOYW1lPXtjbGFzc2VzLmRvY2tsYXlvdXR9PgotICAgICAgPERvY2tMYXlvdXQKLSAgICAg ICAgc3R5bGU9e3sKLSAgICAgICAgICBoZWlnaHQ6ICcxMDAlJywKLSAgICAgICAgfX0KLSAgICAg ICAgcmVmPXtsYXlvdXRJbnN0YW5jZX0KLSAgICAgICAgZ3JvdXBzPXtkZWZhdWx0R3JvdXBzfQot ICAgICAgICB7Li4ucHJvcHN9Ci0gICAgICAvPgorICAgICAgPExheW91dEV2ZW50c0NvbnRleHQu UHJvdmlkZXIgdmFsdWU9e2xheW91dEV2ZW50QnVzLmN1cnJlbnR9PgorICAgICAgICA8RG9ja0xh eW91dAorICAgICAgICAgIHN0eWxlPXt7CisgICAgICAgICAgICBoZWlnaHQ6ICcxMDAlJywKKyAg ICAgICAgICB9fQorICAgICAgICAgIHJlZj17KG9iaik9PnsKKyAgICAgICAgICAgIGxheW91dE9i ai5jdXJyZW50ID0gb2JqOworICAgICAgICAgICAgbGF5b3V0T2JqLmN1cnJlbnQucmVzZXRMYXlv dXQgPSAoKT0+eworICAgICAgICAgICAgICBsYXlvdXRPYmouY3VycmVudC5sb2FkTGF5b3V0KHBy b3BzLmRlZmF1bHRMYXlvdXQpOworICAgICAgICAgICAgICBzYXZlTGF5b3V0KGxheW91dE9iai5j dXJyZW50LCBsYXlvdXRJZCk7CisgICAgICAgICAgICB9OworICAgICAgICAgICAgZ2V0TGF5b3V0 SW5zdGFuY2U/LihsYXlvdXRPYmouY3VycmVudCk7CisgICAgICAgICAgICB0cnkgeworICAgICAg ICAgICAgICBsYXlvdXRPYmouY3VycmVudD8ubG9hZExheW91dChKU09OLnBhcnNlKHNhdmVkTGF5 b3V0KSk7CisgICAgICAgICAgICB9IGNhdGNoIHsKKyAgICAgICAgICAgICAgLyogRmFsbGJhY2sg dG8gZGVmYXVsdCAqLworICAgICAgICAgICAgICBsYXlvdXRPYmouY3VycmVudD8ubG9hZExheW91 dChwcm9wcy5kZWZhdWx0TGF5b3V0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICB9fQorICAg ICAgICAgIGdyb3Vwcz17ZGVmYXVsdEdyb3Vwc30KKyAgICAgICAgICBvbkxheW91dENoYW5nZT17 KF9sLCBjdXJyZW50VGFiSWQsIGRpcmVjdGlvbik9PnsKKyAgICAgICAgICAgIHNhdmVMYXlvdXQo bGF5b3V0T2JqLmN1cnJlbnQsIGxheW91dElkKTsKKyAgICAgICAgICAgIGlmKE9iamVjdC52YWx1 ZXMoTEFZT1VUX0VWRU5UUykuaW5kZXhPZihkaXJlY3Rpb24pID4gLTEpIHsKKyAgICAgICAgICAg ICAgbGF5b3V0RXZlbnRCdXMuY3VycmVudC5maXJlRXZlbnQoTEFZT1VUX0VWRU5UU1tkaXJlY3Rp b24udG9VcHBlckNhc2UoKV0sIGN1cnJlbnRUYWJJZCk7CisgICAgICAgICAgICB9CisgICAgICAg ICAgfX0KKyAgICAgICAgICB7Li4ucHJvcHN9CisgICAgICAgIC8+CisgICAgICA8L0xheW91dEV2 ZW50c0NvbnRleHQuUHJvdmlkZXI+CiAgICAgPC9kaXY+Ci0gICk7CisgICksIFtdKTsKIH0KIAog TGF5b3V0LnByb3BUeXBlcyA9IHsKICAgZ3JvdXBzOiBQcm9wVHlwZXMub2JqZWN0LAotICBsYXlv dXRJbnN0YW5jZTogQ3VzdG9tUHJvcFR5cGVzLnJlZiwKKyAgZ2V0TGF5b3V0SW5zdGFuY2U6IFBy b3BUeXBlcy5mdW5jLAorfTsKKworCitleHBvcnQgY29uc3QgTEFZT1VUX0VWRU5UUyA9IHsKKyAg QUNUSVZFOiAnYWN0aXZlJywKKyAgUkVNT1ZFOiAncmVtb3ZlJywKKyAgRkxPQVQ6ICdmbG9hdCcs CisgIEZST05UOiAnZnJvbnQnLAorICBNQVhJTUlaRTogJ21heGltaXplJywKKyAgTU9WRTogJ21v dmUnLAogfTsKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL3N0YXRpYy9qcy9oZWxwZXJzL01vZGFs UHJvdmlkZXIuanN4IGIvd2ViL3BnYWRtaW4vc3RhdGljL2pzL2hlbHBlcnMvTW9kYWxQcm92aWRl ci5qc3gKaW5kZXggN2U0ZmU1MjYwLi5iZGU3ZDJlNjQgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWlu L3N0YXRpYy9qcy9oZWxwZXJzL01vZGFsUHJvdmlkZXIuanN4CisrKyBiL3dlYi9wZ2FkbWluL3N0 YXRpYy9qcy9oZWxwZXJzL01vZGFsUHJvdmlkZXIuanN4CkBAIC0yNSw3ICsyNSw4IEBAIGNvbnN0 IE1vZGFsQ29udGV4dCA9IFJlYWN0LmNyZWF0ZUNvbnRleHQoe30pOwogZXhwb3J0IGZ1bmN0aW9u IHVzZU1vZGFsKCkgewogICByZXR1cm4gUmVhY3QudXNlQ29udGV4dChNb2RhbENvbnRleHQpOwog fQotY29uc3QgdXNlQWxlcnRTdHlsZXMgPSBtYWtlU3R5bGVzKCh0aGVtZSk9Pih7CisKK2V4cG9y dCBjb25zdCB1c2VNb2RhbFN0eWxlcyA9IG1ha2VTdHlsZXMoKHRoZW1lKT0+KHsKICAgZm9vdGVy OiB7CiAgICAgZGlzcGxheTogJ2ZsZXgnLAogICAgIGp1c3RpZnlDb250ZW50OiAnZmxleC1lbmQn LApAQCAtMzgsNyArMzksNyBAQCBjb25zdCB1c2VBbGVydFN0eWxlcyA9IG1ha2VTdHlsZXMoKHRo ZW1lKT0+KHsKIH0pKTsKIAogZnVuY3Rpb24gQWxlcnRDb250ZW50KHt0ZXh0LCBjb25maXJtLCBv a0xhYmVsPWdldHRleHQoJ09LJyksIGNhbmNlbExhYmVsPWdldHRleHQoJ0NhbmNlbCcpLCBvbk9r Q2xpY2ssIG9uQ2FuY2VsQ2xpY2t9KSB7Ci0gIGNvbnN0IGNsYXNzZXMgPSB1c2VBbGVydFN0eWxl cygpOworICBjb25zdCBjbGFzc2VzID0gdXNlTW9kYWxTdHlsZXMoKTsKICAgcmV0dXJuICgKICAg ICA8Qm94IGRpc3BsYXk9ImZsZXgiIGZsZXhEaXJlY3Rpb249ImNvbHVtbiIgaGVpZ2h0PSIxMDAl Ij4KICAgICAgIDxCb3ggZmxleEdyb3c9IjEiIHA9ezJ9Pnt0eXBlb2YodGV4dCkgPT0gJ3N0cmlu ZycgPyBIVE1MUmVhY3RQYXJzZXIodGV4dCkgOiB0ZXh0fTwvQm94PgpkaWZmIC0tZ2l0IGEvd2Vi L3BnYWRtaW4vc3RhdGljL2pzL3NxbGVkaXRvci9jYWxjdWxhdGVfcXVlcnlfcnVuX3RpbWUuanMg Yi93ZWIvcGdhZG1pbi9zdGF0aWMvanMvc3FsZWRpdG9yL2NhbGN1bGF0ZV9xdWVyeV9ydW5fdGlt ZS5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODE4MmFiNDJhLi4wMDAwMDAwMDAK LS0tIGEvd2ViL3BnYWRtaW4vc3RhdGljL2pzL3NxbGVkaXRvci9jYWxjdWxhdGVfcXVlcnlfcnVu X3RpbWUuanMKKysrIC9kZXYvbnVsbApAQCAtMSwzNSArMCwwIEBACi0vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi0vLwotLy8gcGdB ZG1pbiA0IC0gUG9zdGdyZVNRTCBUb29scwotLy8KLS8vIENvcHlyaWdodCAoQykgMjAxMyAtIDIw MjIsIFRoZSBwZ0FkbWluIERldmVsb3BtZW50IFRlYW0KLS8vIFRoaXMgc29mdHdhcmUgaXMgcmVs ZWFzZWQgdW5kZXIgdGhlIFBvc3RncmVTUUwgTGljZW5jZQotLy8KLS8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi0KLWltcG9ydCBt b21lbnQgZnJvbSAnbW9tZW50JzsKLWltcG9ydCBnZXR0ZXh0IGZyb20gJ3NvdXJjZXMvZ2V0dGV4 dCc7Ci0KLWV4cG9ydCBmdW5jdGlvbiBjYWxjdWxhdGVRdWVyeVJ1blRpbWUoc3RhcnRUaW1lLCBl bmRUaW1lKSB7Ci0gIGxldCB0b3RhbF9tcyA9IG1vbWVudChlbmRUaW1lKS5kaWZmKHN0YXJ0VGlt ZSk7Ci0gIGxldCByZXN1bHQgPSAnJzsKLSAgbGV0IHNlY3MsIG1pbnMsIGhyczsKLQotICAvKiBF eHRyYWN0IHNlY29uZHMgZnJvbSBtaWxsaXNlY3MgKi8KLSAgc2VjcyA9IHBhcnNlSW50KHRvdGFs X21zLzEwMDApOwotICB0b3RhbF9tcyA9IHRvdGFsX21zJTEwMDA7Ci0KLSAgLyogRXh0cmFjdCBt aW5zIGZyb20gc2Vjb25kcyAqLwotICBtaW5zID0gcGFyc2VJbnQoc2Vjcy82MCk7Ci0gIHNlY3Mg PSBzZWNzJTYwOwotCi0gIC8qIEV4dHJhY3QgaHJzIGZyb20gbWlucyAqLwotICBocnMgPSBwYXJz ZUludChtaW5zLzYwKTsKLSAgbWlucyA9IG1pbnMlNjA7Ci0KLSAgcmVzdWx0ID0gKGhycz4wID8g aHJzICsgJyAnICsgZ2V0dGV4dCgnaHInKSArICcgJzogJycpCi0gICAgICAgICAgKyAobWlucz4w ID8gbWlucyArICcgJyArIGdldHRleHQoJ21pbicpICsgJyAnOiAnJykKLSAgICAgICAgICArICho cnM8PTAgJiYgc2Vjcz4wID8gc2VjcyArICcgJyArIGdldHRleHQoJ3NlY3MnKSArICcgJzogJycp Ci0gICAgICAgICAgKyAoaHJzPD0wICYmIG1pbnM8PTAgPyB0b3RhbF9tcyArICcgJyArIGdldHRl eHQoJ21zZWMnKSArICcgJzonJyk7Ci0gIHJldHVybiByZXN1bHQudHJpbSgpOwotfQpkaWZmIC0t Z2l0IGEvd2ViL3BnYWRtaW4vc3RhdGljL2pzL3NxbGVkaXRvci9jYWxsX3JlbmRlcl9hZnRlcl9w b2xsLmpzIGIvd2ViL3BnYWRtaW4vc3RhdGljL2pzL3NxbGVkaXRvci9jYWxsX3JlbmRlcl9hZnRl cl9wb2xsLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxNmZlNjg5ZTAuLjAwMDAw MDAwMAotLS0gYS93ZWIvcGdhZG1pbi9zdGF0aWMvanMvc3FsZWRpdG9yL2NhbGxfcmVuZGVyX2Fm dGVyX3BvbGwuanMKKysrIC9kZXYvbnVsbApAQCAtMSw1NyArMCwwIEBACi0vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi0vLwotLy8g cGdBZG1pbiA0IC0gUG9zdGdyZVNRTCBUb29scwotLy8KLS8vIENvcHlyaWdodCAoQykgMjAxMyAt IDIwMjIsIFRoZSBwZ0FkbWluIERldmVsb3BtZW50IFRlYW0KLS8vIFRoaXMgc29mdHdhcmUgaXMg cmVsZWFzZWQgdW5kZXIgdGhlIFBvc3RncmVTUUwgTGljZW5jZQotLy8KLS8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi0KLWltcG9y dCB7Y2FsY3VsYXRlUXVlcnlSdW5UaW1lfSBmcm9tICcuL2NhbGN1bGF0ZV9xdWVyeV9ydW5fdGlt ZSc7Ci1pbXBvcnQgZ2V0dGV4dCBmcm9tICcuLi9nZXR0ZXh0JzsKLQotZnVuY3Rpb24gaGFzUmVz dWx0c1RvRGlzcGxheShyZXMpIHsKLSAgcmV0dXJuIHJlcy5jb2xpbmZvICE9IG51bGw7Ci19Ci0K LWZ1bmN0aW9uIGlzUXVlcnlUb29sKHNxbEVkaXRvcikgewotICByZXR1cm4gc3FsRWRpdG9yLmlz X3F1ZXJ5X3Rvb2w7Ci19Ci0KLWZ1bmN0aW9uIGlzTm90aWZpY2F0aW9uRW5hYmxlZChzcWxFZGl0 b3IpIHsKLSAgcmV0dXJuIHNxbEVkaXRvci5pbmZvX25vdGlmaWVyX3RpbWVvdXQgPj0gMDsKLX0K LQotZXhwb3J0IGZ1bmN0aW9uIGNhbGxSZW5kZXJBZnRlclBvbGwoc3FsRWRpdG9yLCBOb3RpZnks IHJlcykgewotICBzcWxFZGl0b3IucXVlcnlfZW5kX3RpbWUgPSBuZXcgRGF0ZSgpOwotICBzcWxF ZGl0b3Iucm93c19hZmZlY3RlZCA9IHJlcy5yb3dzX2FmZmVjdGVkOwotICBzcWxFZGl0b3IuaGFz X21vcmVfcm93cyA9IHJlcy5oYXNfbW9yZV9yb3dzOwotCi0gIGlmIChoYXNSZXN1bHRzVG9EaXNw bGF5KHJlcykpIHsKLSAgICBzcWxFZGl0b3IuX3JlbmRlcihyZXMpOwotICB9IGVsc2UgewotICAg IHNxbEVkaXRvci50b3RhbF90aW1lID0gY2FsY3VsYXRlUXVlcnlSdW5UaW1lKAotICAgICAgc3Fs RWRpdG9yLnF1ZXJ5X3N0YXJ0X3RpbWUsCi0gICAgICBzcWxFZGl0b3IucXVlcnlfZW5kX3RpbWUp OwotICAgIGNvbnN0IG1zZyA9IGdldHRleHQoJ1F1ZXJ5IHJldHVybmVkIHN1Y2Nlc3NmdWxseSBp biAlcy4nLCBzcWxFZGl0b3IudG90YWxfdGltZSk7Ci0gICAgaWYgKHJlcy5yZXN1bHQpCi0gICAg ICByZXMucmVzdWx0ICs9ICdcblxuJyArIG1zZzsKLSAgICBlbHNlCi0gICAgICByZXMucmVzdWx0 ID0gbXNnOwotICAgIHNxbEVkaXRvci51cGRhdGVfbXNnX2hpc3RvcnkodHJ1ZSwgcmVzLnJlc3Vs dCwgZmFsc2UpOwotICAgIHNxbEVkaXRvci5yZXNldF9kYXRhX3N0b3JlKCk7Ci0gICAgaWYgKGlz Tm90aWZpY2F0aW9uRW5hYmxlZChzcWxFZGl0b3IpKSB7Ci0gICAgICBOb3RpZnkuc3VjY2Vzcyht c2csIHNxbEVkaXRvci5pbmZvX25vdGlmaWVyX3RpbWVvdXQpOwotICAgIH0KLSAgICBzcWxFZGl0 b3IuZW5hYmxlX2Rpc2FibGVfZG93bmxvYWRfYnRuKHRydWUpOwotICB9Ci0KLSAgaWYgKGlzUXVl cnlUb29sKHNxbEVkaXRvcikpIHsKLSAgICBzcWxFZGl0b3IuZGlzYWJsZV90b29sX2J1dHRvbnMo ZmFsc2UpOwotICB9Ci0KLSAgc3FsRWRpdG9yLnRyaWdnZXIoJ3BnYWRtaW4tc3FsZWRpdG9yOmNo ZWNrX3N5bmNocm9ub3VzX2RiX25hbWVfY2hhbmdlJywgcmVzKTsKLQotICBzcWxFZGl0b3Iuc2V0 SXNRdWVyeVJ1bm5pbmcoZmFsc2UpOwotICBzcWxFZGl0b3IudHJpZ2dlcigncGdhZG1pbi1zcWxl ZGl0b3I6bG9hZGluZy1pY29uOmhpZGUnKTsKLX0KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL3N0 YXRpYy9qcy9zcWxlZGl0b3IvZXhlY3V0ZV9xdWVyeS5qcyBiL3dlYi9wZ2FkbWluL3N0YXRpYy9q cy9zcWxlZGl0b3IvZXhlY3V0ZV9xdWVyeS5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggZTZhOTExZDg1Li4wMDAwMDAwMDAKLS0tIGEvd2ViL3BnYWRtaW4vc3RhdGljL2pzL3NxbGVk aXRvci9leGVjdXRlX3F1ZXJ5LmpzCisrKyAvZGV2L251bGwKQEAgLTEsMzcwICswLDAgQEAKLS8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vCi0vLwotLy8gcGdBZG1pbiA0IC0gUG9zdGdyZVNRTCBUb29scwotLy8K LS8vIENvcHlyaWdodCAoQykgMjAxMyAtIDIwMjIsIFRoZSBwZ0FkbWluIERldmVsb3BtZW50IFRl YW0KLS8vIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgdGhlIFBvc3RncmVTUUwgTGlj ZW5jZQotLy8KLS8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi0KLWltcG9ydCBnZXR0ZXh0IGZyb20gJy4uL2dl dHRleHQnOwotaW1wb3J0ICQgZnJvbSAnanF1ZXJ5JzsKLWltcG9ydCB1cmxfZm9yIGZyb20gJy4u L3VybF9mb3InOwotaW1wb3J0IGF4aW9zIGZyb20gJ2F4aW9zJzsKLWltcG9ydCAqIGFzIGh0dHBF cnJvckhhbmRsZXIgZnJvbSAnLi9xdWVyeV90b29sX2h0dHBfZXJyb3JfaGFuZGxlcic7Ci1pbXBv cnQgKiBhcyBxdWVyeVR4blN0YXR1cyBmcm9tICdzb3VyY2VzL3NxbGVkaXRvci9xdWVyeV90eG5f c3RhdHVzX2NvbnN0YW50cyc7Ci1pbXBvcnQgKiBhcyBTcWxFZGl0b3JVdGlscyBmcm9tICdzb3Vy Y2VzL3NxbGVkaXRvcl91dGlscyc7Ci0KLWNsYXNzIExvYWRpbmdTY3JlZW4gewotICBjb25zdHJ1 Y3RvcihzcWxFZGl0b3IpIHsKLSAgICB0aGlzLnNxbEVkaXRvciA9IHNxbEVkaXRvcjsKLSAgfQot Ci0gIHNldE1lc3NhZ2UobWVzc2FnZSkgewotICAgIHRoaXMuc3FsRWRpdG9yLnRyaWdnZXIoCi0g ICAgICAncGdhZG1pbi1zcWxlZGl0b3I6bG9hZGluZy1pY29uOm1lc3NhZ2UnLAotICAgICAgZ2V0 dGV4dChtZXNzYWdlKQotICAgICk7Ci0gIH0KLQotICBzaG93KHdpdGhNZXNzYWdlKSB7Ci0gICAg dGhpcy5zcWxFZGl0b3IudHJpZ2dlcigKLSAgICAgICdwZ2FkbWluLXNxbGVkaXRvcjpsb2FkaW5n LWljb246c2hvdycsCi0gICAgICB3aXRoTWVzc2FnZQotICAgICk7Ci0gIH0KLQotICBoaWRlKCkg ewotICAgIHRoaXMuc3FsRWRpdG9yLnRyaWdnZXIoJ3BnYWRtaW4tc3FsZWRpdG9yOmxvYWRpbmct aWNvbjpoaWRlJyk7Ci0gIH0KLX0KLQotY2xhc3MgRXhlY3V0ZVF1ZXJ5IHsKLSAgY29uc3RydWN0 b3Ioc3FsRWRpdG9yLCB1c2VyTWFuYWdlbWVudCkgewotICAgIHRoaXMuc3FsU2VydmVyT2JqZWN0 ID0gc3FsRWRpdG9yOwotICAgIHRoaXMubG9hZGluZ1NjcmVlbiA9IG5ldyBMb2FkaW5nU2NyZWVu KHNxbEVkaXRvcik7Ci0gICAgdGhpcy51c2VyTWFuYWdlbWVudCA9IHVzZXJNYW5hZ2VtZW50Owot ICB9Ci0KLSAgZGVsYXllZFBvbGwoKSB7Ci0gICAgY29uc3Qgc2VsZiA9IHRoaXM7Ci0gICAgc2V0 VGltZW91dCgKLSAgICAgICgpID0+IHsKLSAgICAgICAgc2VsZi5wb2xsKCk7Ci0gICAgICB9LCBz ZWxmLnNxbFNlcnZlck9iamVjdC5QT0xMX0ZBTExCQUNLX1RJTUUoKSk7Ci0gIH0KLQotICBleGVj dXRlKHNxbFN0YXRlbWVudCwgZXhwbGFpblBsYW4sIGNvbm5lY3QpIHsKLSAgICAvLyBJZiBpdCBp cyBhbiBlbXB0eSBxdWVyeSwgZG8gbm90aGluZy4KLSAgICBpZiAoc3FsU3RhdGVtZW50Lmxlbmd0 aCA8PSAwKSB7Ci0gICAgICAvLyBFbmFibGUgcXVlcnkgZXhlY3V0aW9uIGJ1dHRvbiBpZiB1c2Vy IGV4ZWN1dGUgZW1wdHkgcXVlcnkuCi0gICAgICAkKCcjYnRuLWZsYXNoJykucHJvcCgnZGlzYWJs ZWQnLCBmYWxzZSk7Ci0gICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgY29uc3Qgc2VsZiA9IHRo aXM7Ci0gICAgc2VsZi5leHBsYWluUGxhbiA9IGV4cGxhaW5QbGFuOwotCi0gICAgY29uc3Qgc3Fs U3RhdGVtZW50V2l0aEFuYWx5emUgPSBFeGVjdXRlUXVlcnkucHJlcGFyZUFuYWx5emVTcWwoc3Fs U3RhdGVtZW50LCBleHBsYWluUGxhbik7Ci0KLSAgICBzZWxmLmluaXRpYWxpemVFeGVjdXRpb25P blNxbEVkaXRvcihzcWxTdGF0ZW1lbnRXaXRoQW5hbHl6ZSk7Ci0gICAgYXhpb3MucG9zdCgKLSAg ICAgIHRoaXMuZ2VuZXJhdGVVUkxSZWNvbm5lY3Rpb25GbGFnKGNvbm5lY3QpLAotICAgICAgSlNP Ti5zdHJpbmdpZnkoc3FsU3RhdGVtZW50V2l0aEFuYWx5emUpLAotICAgICAge2hlYWRlcnM6IHsn Q29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nfX0pCi0gICAgICAudGhlbihmdW5jdGlv biAocmVzdWx0KSB7Ci0gICAgICAgIGxldCBodHRwTWVzc2FnZURhdGEgPSByZXN1bHQuZGF0YTsK LSAgICAgICAgc2VsZi5yZW1vdmVHcmlkVmlld01hcmtlcigpOwotCi0gICAgICAgIHNlbGYudXBk YXRlU3FsRWRpdG9yTGFzdFRyYW5zYWN0aW9uU3RhdHVzKGh0dHBNZXNzYWdlRGF0YS5kYXRhLnRy YW5zYWN0aW9uX3N0YXR1cyk7Ci0KLSAgICAgICAgaWYgKEV4ZWN1dGVRdWVyeS5pc1NxbENvcnJl Y3QoaHR0cE1lc3NhZ2VEYXRhKSkgewotICAgICAgICAgIHNlbGYubG9hZGluZ1NjcmVlbi5zZXRN ZXNzYWdlKCdXYWl0aW5nIGZvciB0aGUgcXVlcnkgdG8gY29tcGxldGUuLi4nKTsKLQotICAgICAg ICAgIC8vIERpc2FibGUgZHJvcCBkb3duIGFycm93IHRvIGNoYW5nZSBjb25uZWN0aW9ucwotICAg ICAgICAgIFNxbEVkaXRvclV0aWxzLmRpc2FibGVfY29ubmVjdGlvbl9kcm9wZG93bih0cnVlKTsK LQotICAgICAgICAgIHNlbGYudXBkYXRlU3FsRWRpdG9yU3RhdGVXaXRoSW5mb3JtYXRpb25Gcm9t U2VydmVyKGh0dHBNZXNzYWdlRGF0YS5kYXRhKTsKLQotICAgICAgICAgIC8vIElmIHN0YXR1cyBp cyBUcnVlIHRoZW4gcG9sbCB0aGUgcmVzdWx0LgotICAgICAgICAgIHNlbGYuZGVsYXllZFBvbGwo KTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICBzZWxmLmxvYWRpbmdTY3JlZW4uaGlkZSgp OwotICAgICAgICAgIHNlbGYuZW5hYmxlU1FMRWRpdG9yQnV0dG9ucygpOwotICAgICAgICAgIHNl bGYuZGlzYWJsZURvd25sb2FkQnV0dG9uKCk7Ci0gICAgICAgICAgLy8gRW5hYmxlL0Rpc2FibGUg Y29tbWl0IGFuZCByb2xsYmFjayBidXR0b24uCi0gICAgICAgICAgaWYgKHJlc3VsdC5kYXRhLmRh dGEudHJhbnNhY3Rpb25fc3RhdHVzID09IHF1ZXJ5VHhuU3RhdHVzLlRSQU5TQUNUSU9OX1NUQVRV U19JTlRSQU5TCi0gICAgICAgICAgICB8fCByZXN1bHQuZGF0YS5kYXRhLnRyYW5zYWN0aW9uX3N0 YXR1cyA9PSBxdWVyeVR4blN0YXR1cy5UUkFOU0FDVElPTl9TVEFUVVNfSU5FUlJPUikgewotICAg ICAgICAgICAgc2VsZi5lbmFibGVUcmFuc2FjdGlvbkJ1dHRvbnMoKTsKLSAgICAgICAgICB9IGVs c2UgewotICAgICAgICAgICAgc2VsZi5kaXNhYmxlVHJhbnNhY3Rpb25CdXR0b25zKCk7Ci0gICAg ICAgICAgfQotICAgICAgICAgIHNlbGYuc3FsU2VydmVyT2JqZWN0LnVwZGF0ZV9tc2dfaGlzdG9y eShmYWxzZSwgaHR0cE1lc3NhZ2VEYXRhLmRhdGEucmVzdWx0KTsKLSAgICAgICAgICBpZiAoJ25v dGlmaWVzJyBpbiBodHRwTWVzc2FnZURhdGEuZGF0YSkKLSAgICAgICAgICAgIHNlbGYuc3FsU2Vy dmVyT2JqZWN0LnVwZGF0ZV9ub3RpZmljYXRpb25zKGh0dHBNZXNzYWdlRGF0YS5kYXRhLm5vdGlm aWVzKTsKLQotICAgICAgICAgIC8vIEhpZ2hsaWdodCB0aGUgZXJyb3IgaW4gdGhlIHNxbCBwYW5l bAotICAgICAgICAgIHNlbGYuc3FsU2VydmVyT2JqZWN0Ll9oaWdobGlnaHRfZXJyb3IoaHR0cE1l c3NhZ2VEYXRhLmRhdGEucmVzdWx0KTsKLSAgICAgICAgfQotICAgICAgfSkuY2F0Y2goZnVuY3Rp b24gKGVycm9yKSB7Ci0gICAgICAgIHNlbGYub25FeGVjdXRlSFRUUEVycm9yKGVycm9yKTsKLSAg ICAgIH0KLSAgICAgICk7Ci0gIH0KLQotICBnZW5lcmF0ZVVSTFJlY29ubmVjdGlvbkZsYWcoc2hv dWxkUmVjb25uZWN0KSB7Ci0gICAgbGV0IHVybCA9IHVybF9mb3IoJ3NxbGVkaXRvci5xdWVyeV90 b29sX3N0YXJ0JywgewotICAgICAgJ3RyYW5zX2lkJzogdGhpcy5zcWxTZXJ2ZXJPYmplY3QudHJh bnNJZCwKLSAgICB9KTsKLQotICAgIGlmIChzaG91bGRSZWNvbm5lY3QpIHsKLSAgICAgIHVybCAr PSAnP2Nvbm5lY3Q9MSc7Ci0gICAgfQotICAgIHJldHVybiB1cmw7Ci0gIH0KLQotICBwb2xsKCkg ewotICAgIGNvbnN0IHNlbGYgPSB0aGlzOwotICAgIGF4aW9zLmdldCgKLSAgICAgIHVybF9mb3Io J3NxbGVkaXRvci5wb2xsJywgewotICAgICAgICAndHJhbnNfaWQnOiBzZWxmLnNxbFNlcnZlck9i amVjdC50cmFuc0lkLAotICAgICAgfSkKLSAgICApLnRoZW4oCi0gICAgICAoaHR0cE1lc3NhZ2Up ID0+IHsKLSAgICAgICAgc2VsZi51cGRhdGVTcWxFZGl0b3JMYXN0VHJhbnNhY3Rpb25TdGF0dXMo aHR0cE1lc3NhZ2UuZGF0YS5kYXRhLnRyYW5zYWN0aW9uX3N0YXR1cyk7Ci0KLSAgICAgICAgLy8g RW5hYmxlL0Rpc2FibGUgY29tbWl0IGFuZCByb2xsYmFjayBidXR0b24uCi0gICAgICAgIGlmICho dHRwTWVzc2FnZS5kYXRhLmRhdGEudHJhbnNhY3Rpb25fc3RhdHVzID09IHF1ZXJ5VHhuU3RhdHVz LlRSQU5TQUNUSU9OX1NUQVRVU19JTlRSQU5TCi0gICAgICAgICAgfHwgaHR0cE1lc3NhZ2UuZGF0 YS5kYXRhLnRyYW5zYWN0aW9uX3N0YXR1cyA9PSBxdWVyeVR4blN0YXR1cy5UUkFOU0FDVElPTl9T VEFUVVNfSU5FUlJPUikgewotICAgICAgICAgIHNlbGYuZW5hYmxlVHJhbnNhY3Rpb25CdXR0b25z KCk7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgc2VsZi5kaXNhYmxlVHJhbnNhY3Rpb25C dXR0b25zKCk7Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAoRXhlY3V0ZVF1ZXJ5LmlzUXVlcnlG aW5pc2hlZChodHRwTWVzc2FnZSkpIHsKLSAgICAgICAgICBpZiAodGhpcy5zcWxTZXJ2ZXJPYmpl Y3QuY2xvc2Vfb25faWRsZV90cmFuc2FjdGlvbiAmJgotICAgICAgICAgICAgICBodHRwTWVzc2Fn ZS5kYXRhLmRhdGEudHJhbnNhY3Rpb25fc3RhdHVzID09IHF1ZXJ5VHhuU3RhdHVzLlRSQU5TQUNU SU9OX1NUQVRVU19JRExFKQotICAgICAgICAgICAgdGhpcy5zcWxTZXJ2ZXJPYmplY3QuY2hlY2tf bmVlZGVkX2NvbmZpcm1hdGlvbnNfYmVmb3JlX2Nsb3NpbmdfcGFuZWwoKTsKLQotICAgICAgICAg IHNlbGYubG9hZGluZ1NjcmVlbi5zZXRNZXNzYWdlKCdMb2FkaW5nIGRhdGEgZnJvbSB0aGUgZGF0 YWJhc2Ugc2VydmVyIGFuZCByZW5kZXJpbmcuLi4nKTsKLQotICAgICAgICAgIHNlbGYuc3FsU2Vy dmVyT2JqZWN0LmNhbGxfcmVuZGVyX2FmdGVyX3BvbGwoaHR0cE1lc3NhZ2UuZGF0YS5kYXRhKTsK LSAgICAgICAgICBpZiAoJ25vdGlmaWVzJyBpbiBodHRwTWVzc2FnZS5kYXRhLmRhdGEpCi0gICAg ICAgICAgICBzZWxmLnNxbFNlcnZlck9iamVjdC51cGRhdGVfbm90aWZpY2F0aW9ucyhodHRwTWVz c2FnZS5kYXRhLmRhdGEubm90aWZpZXMpOwotICAgICAgICB9IGVsc2UgaWYgKEV4ZWN1dGVRdWVy eS5pc1F1ZXJ5U3RpbGxSdW5uaW5nKGh0dHBNZXNzYWdlKSkgewotICAgICAgICAgIC8vIElmIHN0 YXR1cyBpcyBCdXN5IHRoZW4gcG9sbCB0aGUgcmVzdWx0IGJ5IHJlY3Vyc2l2ZSBjYWxsIHRvIHRo ZSBwb2xsIGZ1bmN0aW9uCi0gICAgICAgICAgdGhpcy5kZWxheWVkUG9sbCgpOwotICAgICAgICAg IHNlbGYuc3FsU2VydmVyT2JqZWN0LnNldElzUXVlcnlSdW5uaW5nKHRydWUpOwotICAgICAgICAg IGlmIChodHRwTWVzc2FnZS5kYXRhLmRhdGEucmVzdWx0KSB7Ci0gICAgICAgICAgICBzZWxmLnNx bFNlcnZlck9iamVjdC51cGRhdGVfbXNnX2hpc3RvcnkoaHR0cE1lc3NhZ2UuZGF0YS5kYXRhLnN0 YXR1cywgaHR0cE1lc3NhZ2UuZGF0YS5kYXRhLnJlc3VsdCwgZmFsc2UpOwotICAgICAgICAgIH0K LSAgICAgICAgfSBlbHNlIGlmIChFeGVjdXRlUXVlcnkuaXNDb25uZWN0aW9uVG9TZXJ2ZXJMb3N0 V2hpbGVQb2xsaW5nKGh0dHBNZXNzYWdlKSkgewotICAgICAgICAgIHNlbGYubG9hZGluZ1NjcmVl bi5oaWRlKCk7Ci0gICAgICAgICAgLy8gRW5hYmxlL0Rpc2FibGUgcXVlcnkgdG9vbCBidXR0b24g b25seSBpZiBpc19xdWVyeV90b29sIGlzIHRydWUuCi0gICAgICAgICAgaWYgKHNlbGYuc3FsU2Vy dmVyT2JqZWN0LmlzX3F1ZXJ5X3Rvb2wpIHsKLSAgICAgICAgICAgIHNlbGYuZW5hYmxlU1FMRWRp dG9yQnV0dG9ucygpOwotICAgICAgICAgIH0KLSAgICAgICAgICBzZWxmLnNxbFNlcnZlck9iamVj dC51cGRhdGVfbXNnX2hpc3RvcnkoZmFsc2UsIGh0dHBNZXNzYWdlLmRhdGEuZGF0YS5yZXN1bHQs IHRydWUpOwotICAgICAgICB9IGVsc2UgaWYgKEV4ZWN1dGVRdWVyeS5pc1F1ZXJ5Q2FuY2VsbGVk KGh0dHBNZXNzYWdlKSkgewotICAgICAgICAgIHNlbGYubG9hZGluZ1NjcmVlbi5oaWRlKCk7Ci0g ICAgICAgICAgc2VsZi5zcWxTZXJ2ZXJPYmplY3QudXBkYXRlX21zZ19oaXN0b3J5KGZhbHNlLCAn RXhlY3V0aW9uIENhbmNlbGxlZCEnLCB0cnVlKTsKLSAgICAgICAgfQotICAgICAgICAvLyBFbmFi bGUgY29ubmVjdGlvbiBsaXN0IGRyb3AgZG93biBhZ2FpbiBmb3IgcXVlcnkgdG9vbCBvbmx5Ci0g ICAgICAgIGlmKHNlbGYuc3FsU2VydmVyT2JqZWN0LmlzX3F1ZXJ5X3Rvb2wgJiYgIUV4ZWN1dGVR dWVyeS5pc1F1ZXJ5U3RpbGxSdW5uaW5nKGh0dHBNZXNzYWdlKSl7Ci0gICAgICAgICAgU3FsRWRp dG9yVXRpbHMuZGlzYWJsZV9jb25uZWN0aW9uX2Ryb3Bkb3duKGZhbHNlKTsKLSAgICAgICAgfQot ICAgICAgfQotICAgICkuY2F0Y2goCi0gICAgICBlcnJvciA9PiB7Ci0gICAgICAgIC8vIEVuYWJs ZS9EaXNhYmxlIHF1ZXJ5IHRvb2wgYnV0dG9uIG9ubHkgaWYgaXNfcXVlcnlfdG9vbCBpcyB0cnVl LgotICAgICAgICBzZWxmLnNxbFNlcnZlck9iamVjdC5yZXNldFF1ZXJ5SGlzdG9yeU9iamVjdChz ZWxmLnNxbFNlcnZlck9iamVjdCk7Ci0KLSAgICAgICAgc2VsZi5sb2FkaW5nU2NyZWVuLmhpZGUo KTsKLSAgICAgICAgc2VsZi5zcWxTZXJ2ZXJPYmplY3Quc2V0SXNRdWVyeVJ1bm5pbmcoZmFsc2Up OwotICAgICAgICBpZiAoc2VsZi5zcWxTZXJ2ZXJPYmplY3QuaXNfcXVlcnlfdG9vbCkgewotICAg ICAgICAgIHNlbGYuZW5hYmxlU1FMRWRpdG9yQnV0dG9ucygpOwotICAgICAgICAgIFNxbEVkaXRv clV0aWxzLmRpc2FibGVfY29ubmVjdGlvbl9kcm9wZG93bihmYWxzZSk7Ci0gICAgICAgIH0KLQot ICAgICAgICBpZihlcnJvci5yZXNwb25zZSkgewotICAgICAgICAgIGlmKEV4ZWN1dGVRdWVyeS53 YXNDb25uZWN0aW9uTG9zdFRvUHl0aG9uU2VydmVyKGVycm9yLnJlc3BvbnNlKSkgewotICAgICAg ICAgICAgc2VsZi5oYW5kbGVDb25uZWN0aW9uVG9TZXJ2ZXJMb3N0KCk7Ci0gICAgICAgICAgICBy ZXR1cm47Ci0gICAgICAgICAgfQotICAgICAgICAgIGNvbnN0IGVycm9yRGF0YSA9IGVycm9yLnJl c3BvbnNlLmRhdGE7Ci0KLSAgICAgICAgICBpZiAoc2VsZi51c2VyTWFuYWdlbWVudC5pc1BnYUxv Z2luUmVxdWlyZWQoZXJyb3JEYXRhKSkgewotICAgICAgICAgICAgcmV0dXJuIHNlbGYudXNlck1h bmFnZW1lbnQucGdhTG9naW4oKTsKLSAgICAgICAgICB9Ci0KLSAgICAgICAgICBsZXQgbXNnID0g RXhlY3V0ZVF1ZXJ5LmV4dHJhY3RFcnJvck1lc3NhZ2UoZXJyb3JEYXRhKTsKLQotICAgICAgICAg IHNlbGYuc3FsU2VydmVyT2JqZWN0LnVwZGF0ZV9tc2dfaGlzdG9yeShmYWxzZSwgbXNnKTsKLSAg ICAgICAgICAvLyBIaWdobGlnaHQgdGhlIGVycm9yIGluIHRoZSBzcWwgcGFuZWwKLSAgICAgICAg ICBzZWxmLnNxbFNlcnZlck9iamVjdC5faGlnaGxpZ2h0X2Vycm9yKG1zZyk7Ci0gICAgICAgIH0g ZWxzZSBpZihlcnJvci5yZXF1ZXN0KSB7Ci0gICAgICAgICAgc2VsZi5oYW5kbGVDb25uZWN0aW9u VG9TZXJ2ZXJMb3N0KCk7Ci0gICAgICAgICAgcmV0dXJuOwotICAgICAgICB9IGVsc2UgewotICAg ICAgICAgIGNvbnNvbGUuZXJyb3IoZXJyb3IpOwotICAgICAgICB9Ci0gICAgICB9KTsKLSAgfQot Ci0gIGluaXRpYWxpemVFeGVjdXRpb25PblNxbEVkaXRvcihzcWxTdGF0ZW1lbnQpIHsKLSAgICB0 aGlzLmxvYWRpbmdTY3JlZW4uc2hvdyhnZXR0ZXh0KCdSdW5uaW5nIHF1ZXJ5Li4uJykpOwotCi0g ICAgJCgnI2J0bi1mbGFzaCcpLnByb3AoJ2Rpc2FibGVkJywgdHJ1ZSk7Ci0gICAgdGhpcy5kaXNh YmxlRG93bmxvYWRCdXR0b24oKTsKLQotICAgIHRoaXMuc3FsU2VydmVyT2JqZWN0LnF1ZXJ5X3N0 YXJ0X3RpbWUgPSBuZXcgRGF0ZSgpOwotICAgIGlmICh0eXBlb2Ygc3FsU3RhdGVtZW50ID09PSAn b2JqZWN0JykgewotICAgICAgdGhpcy5zcWxTZXJ2ZXJPYmplY3QucXVlcnkgPSBzcWxTdGF0ZW1l bnRbJ3NxbCddOwotICAgIH0gZWxzZSB7Ci0gICAgICB0aGlzLnNxbFNlcnZlck9iamVjdC5xdWVy eSA9IHNxbFN0YXRlbWVudDsKLSAgICB9Ci0KLSAgICB0aGlzLnNxbFNlcnZlck9iamVjdC5yb3dz X2FmZmVjdGVkID0gMDsKLSAgICB0aGlzLnNxbFNlcnZlck9iamVjdC5faW5pdF9wb2xsaW5nX2Zs YWdzKCk7Ci0gICAgdGhpcy5kaXNhYmxlU1FMRWRpdG9yQnV0dG9ucygpOwotICAgIHRoaXMuZGlz YWJsZVRyYW5zYWN0aW9uQnV0dG9ucygpOwotICB9Ci0KLSAgc3RhdGljIHByZXBhcmVBbmFseXpl U3FsKHNxbFN0YXRlbWVudCwgYW5hbHl6ZVNxbCkgewotICAgIHJldHVybiB7Ci0gICAgICBzcWw6 IHNxbFN0YXRlbWVudCwKLSAgICAgIGV4cGxhaW5fcGxhbjogYW5hbHl6ZVNxbCwKLSAgICB9Owot ICB9Ci0KLSAgb25FeGVjdXRlSFRUUEVycm9yKGh0dHBNZXNzYWdlKSB7Ci0gICAgdGhpcy5sb2Fk aW5nU2NyZWVuLmhpZGUoKTsKLSAgICB0aGlzLmVuYWJsZVNRTEVkaXRvckJ1dHRvbnMoKTsKLQot ICAgIGlmIChFeGVjdXRlUXVlcnkud2FzQ29ubmVjdGlvbkxvc3RUb1B5dGhvblNlcnZlcihodHRw TWVzc2FnZS5yZXNwb25zZSkpIHsKLSAgICAgIHRoaXMuaGFuZGxlQ29ubmVjdGlvblRvU2VydmVy TG9zdCgpOwotICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIGlmICh0aGlzLnVzZXJNYW5hZ2Vt ZW50LmlzUGdhTG9naW5SZXF1aXJlZChodHRwTWVzc2FnZS5yZXNwb25zZSkpIHsKLSAgICAgIHRo aXMuc3FsU2VydmVyT2JqZWN0LnNhdmVTdGF0ZSgnY2hlY2tfZGF0YV9jaGFuZ2VzX3RvX2V4ZWN1 dGVfcXVlcnknLCBbdGhpcy5leHBsYWluUGxhbl0pOwotICAgICAgdGhpcy51c2VyTWFuYWdlbWVu dC5wZ2FMb2dpbigpOwotICAgIH0KLQotICAgIGlmIChodHRwRXJyb3JIYW5kbGVyLmh0dHBSZXNw b25zZVJlcXVpcmVzTmV3VHJhbnNhY3Rpb24oaHR0cE1lc3NhZ2UucmVzcG9uc2UpKSB7Ci0gICAg ICB0aGlzLnNxbFNlcnZlck9iamVjdC5zYXZlU3RhdGUoJ2NoZWNrX2RhdGFfY2hhbmdlc190b19l eGVjdXRlX3F1ZXJ5JywgW3RoaXMuZXhwbGFpblBsYW5dKTsKLSAgICAgIHRoaXMuc3FsU2VydmVy T2JqZWN0LmluaXRUcmFuc2FjdGlvbigpOwotICAgIH0KLQotICAgIGlmICh0aGlzLndhc0RhdGFi YXNlQ29ubmVjdGlvbkxvc3QoaHR0cE1lc3NhZ2UpKSB7Ci0gICAgICB0aGlzLnNxbFNlcnZlck9i amVjdC5zYXZlU3RhdGUoJ2NoZWNrX2RhdGFfY2hhbmdlc190b19leGVjdXRlX3F1ZXJ5JywgW3Ro aXMuZXhwbGFpblBsYW5dKTsKLSAgICAgIHRoaXMuc3FsU2VydmVyT2JqZWN0LmhhbmRsZV9jb25u ZWN0aW9uX2xvc3QoZmFsc2UsIGh0dHBNZXNzYWdlKTsKLSAgICB9Ci0KLSAgICBpZih0aGlzLmlz Q3J5cHRLZXlNaXNzaW5nKGh0dHBNZXNzYWdlKSkgewotICAgICAgdGhpcy5zcWxTZXJ2ZXJPYmpl Y3Quc2F2ZVN0YXRlKCdjaGVja19kYXRhX2NoYW5nZXNfdG9fZXhlY3V0ZV9xdWVyeScsIFt0aGlz LmV4cGxhaW5QbGFuXSk7Ci0gICAgICB0aGlzLnNxbFNlcnZlck9iamVjdC5oYW5kbGVfY3J5cHRr ZXlfbWlzc2luZygpOwotICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIGxldCBtc2cgPSBodHRw TWVzc2FnZS5yZXNwb25zZS5kYXRhLmVycm9ybXNnOwotICAgIHRoaXMuc3FsU2VydmVyT2JqZWN0 LnVwZGF0ZV9tc2dfaGlzdG9yeShmYWxzZSwgbXNnKTsKLSAgfQotCi0gIHdhc0RhdGFiYXNlQ29u bmVjdGlvbkxvc3QoaHR0cE1lc3NhZ2UpIHsKLSAgICByZXR1cm4gaHR0cE1lc3NhZ2UucmVzcG9u c2Uuc3RhdHVzID09PSA1MDMgJiYKLSAgICAgIGh0dHBNZXNzYWdlLnJlc3BvbnNlLmRhdGEuaW5m byAhPT0gdW5kZWZpbmVkICYmCi0gICAgICBodHRwTWVzc2FnZS5yZXNwb25zZS5kYXRhLmluZm8g PT09ICdDT05ORUNUSU9OX0xPU1QnOwotICB9Ci0KLSAgaXNDcnlwdEtleU1pc3NpbmcoaHR0cE1l c3NhZ2UpIHsKLSAgICByZXR1cm4gaHR0cE1lc3NhZ2UucmVzcG9uc2Uuc3RhdHVzID09PSA1MDMg JiYKLSAgICAgIGh0dHBNZXNzYWdlLnJlc3BvbnNlLmRhdGEuaW5mbyAhPT0gdW5kZWZpbmVkICYm Ci0gICAgICBodHRwTWVzc2FnZS5yZXNwb25zZS5kYXRhLmluZm8gPT09ICdDUllQVEtFWV9NSVNT SU5HJzsKLSAgfQotCi0gIHJlbW92ZUdyaWRWaWV3TWFya2VyKCkgewotICAgIGlmICh0aGlzLnNx bFNlcnZlck9iamVjdC5ncmlkVmlldy5tYXJrZXIpIHsKLSAgICAgIHRoaXMuc3FsU2VydmVyT2Jq ZWN0LmdyaWRWaWV3Lm1hcmtlci5jbGVhcigpOwotICAgICAgZGVsZXRlIHRoaXMuc3FsU2VydmVy T2JqZWN0LmdyaWRWaWV3Lm1hcmtlcjsKLSAgICAgIHRoaXMuc3FsU2VydmVyT2JqZWN0LmdyaWRW aWV3Lm1hcmtlciA9IG51bGw7Ci0KLSAgICAgIC8vIFJlbW92ZSBhbHJlYWR5IGV4aXN0aW5nIG1h cmtlcgotICAgICAgdGhpcy5zcWxTZXJ2ZXJPYmplY3QuZ3JpZFZpZXcucXVlcnlfdG9vbF9vYmou cmVtb3ZlTGluZUNsYXNzKHRoaXMuc3FsU2VydmVyT2JqZWN0Lm1hcmtlZF9saW5lX25vLCAnd3Jh cCcsICdDb2RlTWlycm9yLWFjdGl2ZWxpbmUtYmFja2dyb3VuZCcpOwotICAgIH0KLSAgfQotCi0g IGRpc2FibGVEb3dubG9hZEJ1dHRvbigpIHsKLSAgICB0aGlzLnNxbFNlcnZlck9iamVjdC5lbmFi bGVfZGlzYWJsZV9kb3dubG9hZF9idG4odHJ1ZSk7Ci0gIH0KLQotICBlbmFibGVTUUxFZGl0b3JC dXR0b25zKCkgewotICAgIHRoaXMuc3FsU2VydmVyT2JqZWN0LmRpc2FibGVfdG9vbF9idXR0b25z KGZhbHNlKTsKLSAgfQotCi0gIGRpc2FibGVTUUxFZGl0b3JCdXR0b25zKCkgewotICAgIHRoaXMu c3FsU2VydmVyT2JqZWN0LmRpc2FibGVfdG9vbF9idXR0b25zKHRydWUpOwotICB9Ci0KLSAgZW5h YmxlVHJhbnNhY3Rpb25CdXR0b25zKCkgewotICAgIHRoaXMuc3FsU2VydmVyT2JqZWN0LmRpc2Fi bGVfdHJhbnNhY3Rpb25fYnV0dG9ucyhmYWxzZSk7Ci0gIH0KLQotICBkaXNhYmxlVHJhbnNhY3Rp b25CdXR0b25zKCkgewotICAgIHRoaXMuc3FsU2VydmVyT2JqZWN0LnNwZWNpYWxfc3FsID0gdW5k ZWZpbmVkOwotICAgIHRoaXMuc3FsU2VydmVyT2JqZWN0LmRpc2FibGVfdHJhbnNhY3Rpb25fYnV0 dG9ucyh0cnVlKTsKLSAgfQotCi0gIHN0YXRpYyB3YXNDb25uZWN0aW9uTG9zdFRvUHl0aG9uU2Vy dmVyKGh0dHBSZXNwb25zZSkgewotICAgIHJldHVybiBfLmlzVW5kZWZpbmVkKGh0dHBSZXNwb25z ZSkgfHwgXy5pc1VuZGVmaW5lZChodHRwUmVzcG9uc2UuZGF0YSk7Ci0gIH0KLQotICBoYW5kbGVD b25uZWN0aW9uVG9TZXJ2ZXJMb3N0KCkgewotICAgIHRoaXMuc3FsU2VydmVyT2JqZWN0LnVwZGF0 ZV9tc2dfaGlzdG9yeShmYWxzZSwKLSAgICAgIGdldHRleHQoJ05vdCBjb25uZWN0ZWQgdG8gdGhl IHNlcnZlciBvciB0aGUgY29ubmVjdGlvbiB0byB0aGUgc2VydmVyIGhhcyBiZWVuIGNsb3NlZC4n KQotICAgICk7Ci0gIH0KLQotICB1cGRhdGVTcWxFZGl0b3JTdGF0ZVdpdGhJbmZvcm1hdGlvbkZy b21TZXJ2ZXIobWVzc2FnZURhdGEpIHsKLSAgICB0aGlzLnNxbFNlcnZlck9iamVjdC5jYW5fZWRp dCA9IG1lc3NhZ2VEYXRhLmNhbl9lZGl0OwotICAgIHRoaXMuc3FsU2VydmVyT2JqZWN0LmNhbl9m aWx0ZXIgPSBtZXNzYWdlRGF0YS5jYW5fZmlsdGVyOwotICAgIHRoaXMuc3FsU2VydmVyT2JqZWN0 LmluZm9fbm90aWZpZXJfdGltZW91dCA9IG1lc3NhZ2VEYXRhLmluZm9fbm90aWZpZXJfdGltZW91 dDsKLSAgfQotCi0gIHVwZGF0ZVNxbEVkaXRvckxhc3RUcmFuc2FjdGlvblN0YXR1cyh0cmFuc2Fj dGlvblN0YXR1cykgewotICAgIHRoaXMuc3FsU2VydmVyT2JqZWN0Lmxhc3RfdHJhbnNhY3Rpb25f c3RhdHVzID0gdHJhbnNhY3Rpb25TdGF0dXM7Ci0gIH0KLQotICBzdGF0aWMgaXNTcWxDb3JyZWN0 KGh0dHBNZXNzYWdlRGF0YSkgewotICAgIHJldHVybiBodHRwTWVzc2FnZURhdGEuZGF0YS5zdGF0 dXM7Ci0gIH0KLQotICBzdGF0aWMgZXh0cmFjdEVycm9yTWVzc2FnZShodHRwTWVzc2FnZSkgewot ICAgIGxldCBtc2cgPSBodHRwTWVzc2FnZS5lcnJvcm1zZzsKLSAgICBpZiAoaHR0cE1lc3NhZ2Uu cmVzcG9uc2VKU09OICE9PSB1bmRlZmluZWQgJiYKLSAgICAgIGh0dHBNZXNzYWdlLnJlc3BvbnNl SlNPTi5lcnJvcm1zZyAhPT0gdW5kZWZpbmVkKQotICAgICAgbXNnID0gaHR0cE1lc3NhZ2UucmVz cG9uc2VKU09OLmVycm9ybXNnOwotCi0gICAgcmV0dXJuIG1zZzsKLSAgfQotCi0gIHN0YXRpYyBp c1F1ZXJ5RmluaXNoZWQoaHR0cE1lc3NhZ2UpIHsKLSAgICByZXR1cm4gaHR0cE1lc3NhZ2UuZGF0 YS5kYXRhLnN0YXR1cyA9PT0gJ1N1Y2Nlc3MnOwotICB9Ci0KLSAgc3RhdGljIGlzUXVlcnlTdGls bFJ1bm5pbmcoaHR0cE1lc3NhZ2UpIHsKLSAgICByZXR1cm4gaHR0cE1lc3NhZ2UuZGF0YS5kYXRh LnN0YXR1cyA9PT0gJ0J1c3knOwotICB9Ci0KLSAgc3RhdGljIGlzUXVlcnlDYW5jZWxsZWQoaHR0 cE1lc3NhZ2UpIHsKLSAgICByZXR1cm4gaHR0cE1lc3NhZ2UuZGF0YS5kYXRhLnN0YXR1cyA9PT0g J0NhbmNlbCc7Ci0gIH0KLQotICBzdGF0aWMgaXNDb25uZWN0aW9uVG9TZXJ2ZXJMb3N0V2hpbGVQ b2xsaW5nKGh0dHBNZXNzYWdlKSB7Ci0gICAgcmV0dXJuIGh0dHBNZXNzYWdlLmRhdGEuZGF0YS5z dGF0dXMgPT09ICdOb3RDb25uZWN0ZWQnOwotICB9Ci19Ci0KLW1vZHVsZS5leHBvcnRzID0gewot ICBFeGVjdXRlUXVlcnk6IEV4ZWN1dGVRdWVyeSwKLX07CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1p bi9zdGF0aWMvanMvc3FsZWRpdG9yL2ZpbHRlcl9kaWFsb2cuanMgYi93ZWIvcGdhZG1pbi9zdGF0 aWMvanMvc3FsZWRpdG9yL2ZpbHRlcl9kaWFsb2cuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDc2YTE4N2I3MS4uMDAwMDAwMDAwCi0tLSBhL3dlYi9wZ2FkbWluL3N0YXRpYy9qcy9z cWxlZGl0b3IvZmlsdGVyX2RpYWxvZy5qcworKysgL2Rldi9udWxsCkBAIC0xLDI3OCArMCwwIEBA Ci0vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vCi0vLwotLy8gcGdBZG1pbiA0IC0gUG9zdGdyZVNRTCBUb29scwotLy8KLS8vIENvcHly aWdodCAoQykgMjAxMyAtIDIwMjIsIFRoZSBwZ0FkbWluIERldmVsb3BtZW50IFRlYW0KLS8vIFRo aXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgdGhlIFBvc3RncmVTUUwgTGljZW5jZQotLy8K LS8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vCi0KLWltcG9ydCBnZXR0ZXh0IGZyb20gJ3NvdXJjZXMvZ2V0dGV4dCc7Ci1pbXBvcnQg dXJsX2ZvciBmcm9tICdzb3VyY2VzL3VybF9mb3InOwotaW1wb3J0ICQgZnJvbSAnanF1ZXJ5JzsK LWltcG9ydCBBbGVydGlmeSBmcm9tICdwZ2FkbWluLmFsZXJ0aWZ5anMnOwotaW1wb3J0IHBnQWRt aW4gZnJvbSAnc291cmNlcy9wZ2FkbWluJzsKLWltcG9ydCBCYWNrZm9ybSBmcm9tICdwZ2FkbWlu LmJhY2tmb3JtJzsKLWltcG9ydCBheGlvcyBmcm9tICdheGlvcyc7Ci12YXIgcXVlcnlUb29sQWN0 aW9ucyA9IHJlcXVpcmUoJ3NvdXJjZXMvc3FsZWRpdG9yL3F1ZXJ5X3Rvb2xfYWN0aW9ucycpOwot aW1wb3J0IGZpbHRlckRpYWxvZ01vZGVsIGZyb20gJ3NvdXJjZXMvc3FsZWRpdG9yL2ZpbHRlcl9k aWFsb2dfbW9kZWwnOwotaW1wb3J0IHtoYW5kbGVRdWVyeVRvb2xBamF4RXJyb3J9IGZyb20gJ3Nv dXJjZXMvc3FsZWRpdG9yL3F1ZXJ5X3Rvb2xfaHR0cF9lcnJvcl9oYW5kbGVyJzsKLWltcG9ydCBO b3RpZnkgZnJvbSAnLi4vLi4vLi4vc3RhdGljL2pzL2hlbHBlcnMvTm90aWZpZXInOwotCi1sZXQg RmlsdGVyRGlhbG9nID0gewotICBnZXR1cmw6IGZ1bmN0aW9uKHRyYW5zSWQsIHJlY29ubmVjdCkg ewotICAgIGxldCB1cmwgPSB1cmxfZm9yKCdzcWxlZGl0b3IuZ2V0X2ZpbHRlcl9kYXRhJywgewot ICAgICAgJ3RyYW5zX2lkJzogdHJhbnNJZCwKLSAgICB9KTsKLQotICAgIGlmKHJlY29ubmVjdCkg ewotICAgICAgdXJsICs9ICc/Y29ubmVjdD0xJzsKLSAgICB9Ci0KLSAgICByZXR1cm4gdXJsOwot ICB9LAotCi0gICdkaWFsb2cnOiBmdW5jdGlvbihoYW5kbGVyLCByZWNvbm5lY3QpIHsKLSAgICBs ZXQgdGl0bGUgPSBnZXR0ZXh0KCdTb3J0L0ZpbHRlciBvcHRpb25zJyk7Ci0KLSAgICAkLmFqYXgo ewotICAgICAgdXJsOiB0aGlzLmdldHVybChoYW5kbGVyLnRyYW5zSWQsIHJlY29ubmVjdCksCi0g ICAgICBoZWFkZXJzOiB7Ci0gICAgICAgICdDYWNoZS1Db250cm9sJyA6ICduby1jYWNoZScsCi0g ICAgICB9LAotICAgIH0pCi0gICAgICAuZG9uZShmdW5jdGlvbiAocmVzKSB7Ci0gICAgICAgIGxl dCByZXNwb25zZSA9IHJlcy5kYXRhLnJlc3VsdDsKLQotICAgICAgICAvLyBDaGVjayB0aGUgYWxl cnRpZnkgZGlhbG9nIGFscmVhZHkgbG9hZGVkIHRoZW4gZGVsZXRlIGl0IHRvIGNsZWFyCi0gICAg ICAgIC8vIHRoZSBjYWNoZQotICAgICAgICBpZiAoQWxlcnRpZnkuZmlsdGVyRGlhbG9nKSB7Ci0g ICAgICAgICAgZGVsZXRlIEFsZXJ0aWZ5LmZpbHRlckRpYWxvZzsKLSAgICAgICAgfQotCi0gICAg ICAgIC8vIENyZWF0ZSBEaWFsb2cKLSAgICAgICAgQWxlcnRpZnkuZGlhbG9nKCdmaWx0ZXJEaWFs b2cnLCBmdW5jdGlvbiBmYWN0b3J5KCkgewotICAgICAgICAgIGxldCAkY29udGFpbmVyID0gJCgn PGRpdiBjbGFzcz1cJ2RhdGFfc29ydGluZ19kaWFsb2dcJz48L2Rpdj4nKTsKLSAgICAgICAgICBy ZXR1cm4gewotICAgICAgICAgICAgbWFpbjogZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICAgIHRo aXMuc2V0KCd0aXRsZScsIGdldHRleHQoJ1NvcnQvRmlsdGVyIG9wdGlvbnMnKSk7Ci0gICAgICAg ICAgICB9LAotICAgICAgICAgICAgYnVpbGQ6IGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgICB0 aGlzLmVsZW1lbnRzLmNvbnRlbnQuYXBwZW5kQ2hpbGQoJGNvbnRhaW5lci5nZXQoMCkpOwotICAg ICAgICAgICAgICBBbGVydGlmeS5wZ0RpYWxvZ0J1aWxkLmFwcGx5KHRoaXMpOwotICAgICAgICAg ICAgfSwKLSAgICAgICAgICAgIHNldHVwOiBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgICAgcmV0 dXJuIHsKLSAgICAgICAgICAgICAgICBidXR0b25zOiBbewotICAgICAgICAgICAgICAgICAgdGV4 dDogJycsCi0gICAgICAgICAgICAgICAgICBrZXk6IDExMiwKLSAgICAgICAgICAgICAgICAgIGNs YXNzTmFtZTogJ2J0biBidG4tcHJpbWFyeS1pY29uIHB1bGwtbGVmdCBmYSBmYS1xdWVzdGlvbiBw Zy1hbGVydGlmeS1pY29uLWJ1dHRvbicsCi0gICAgICAgICAgICAgICAgICBhdHRyczogewotICAg ICAgICAgICAgICAgICAgICBuYW1lOiAnZGlhbG9nX2hlbHAnLAotICAgICAgICAgICAgICAgICAg ICB0eXBlOiAnYnV0dG9uJywKLSAgICAgICAgICAgICAgICAgICAgbGFiZWw6IGdldHRleHQoJ0hl bHAnKSwKLSAgICAgICAgICAgICAgICAgICAgJ2FyaWEtbGFiZWwnOiBnZXR0ZXh0KCdIZWxwJyks Ci0gICAgICAgICAgICAgICAgICAgIHVybDogdXJsX2ZvcignaGVscC5zdGF0aWMnLCB7Ci0gICAg ICAgICAgICAgICAgICAgICAgJ2ZpbGVuYW1lJzogJ2VkaXRncmlkLmh0bWwnLAotICAgICAgICAg ICAgICAgICAgICB9KSwKLSAgICAgICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICAgfSwg ewotICAgICAgICAgICAgICAgICAgdGV4dDogZ2V0dGV4dCgnQ2FuY2VsJyksCi0gICAgICAgICAg ICAgICAgICBrZXk6IDI3LAotICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lOiAnYnRuIGJ0bi1z ZWNvbmRhcnkgZmEgZmEtdGltZXMgcGctYWxlcnRpZnktYnV0dG9uJywKLSAgICAgICAgICAgICAg ICAgICdkYXRhLWJ0bi1uYW1lJzogJ2NhbmNlbCcsCi0gICAgICAgICAgICAgICAgfSwgewotICAg ICAgICAgICAgICAgICAgdGV4dDogZ2V0dGV4dCgnT0snKSwKLSAgICAgICAgICAgICAgICAgIGNs YXNzTmFtZTogJ2J0biBidG4tcHJpbWFyeSBmYSBmYS1jaGVjayBwZy1hbGVydGlmeS1idXR0b24n LAotICAgICAgICAgICAgICAgICAgJ2RhdGEtYnRuLW5hbWUnOiAnb2snLAotICAgICAgICAgICAg ICAgIH1dLAotICAgICAgICAgICAgICAgIC8vIFNldCBvcHRpb25zIGZvciBkaWFsb2cKLSAgICAg ICAgICAgICAgICBvcHRpb25zOiB7Ci0gICAgICAgICAgICAgICAgICB0aXRsZTogdGl0bGUsCi0g ICAgICAgICAgICAgICAgICAvL2Rpc2FibGUgYm90aCBwYWRkaW5nIGFuZCBvdmVyZmxvdyBjb250 cm9sLgotICAgICAgICAgICAgICAgICAgcGFkZGluZzogITEsCi0gICAgICAgICAgICAgICAgICBv dmVyZmxvdzogITEsCi0gICAgICAgICAgICAgICAgICBtb2RlbDogMCwKLSAgICAgICAgICAgICAg ICAgIHJlc2l6YWJsZTogdHJ1ZSwKLSAgICAgICAgICAgICAgICAgIG1heGltaXphYmxlOiB0cnVl LAotICAgICAgICAgICAgICAgICAgcGlubmFibGU6IGZhbHNlLAotICAgICAgICAgICAgICAgICAg Y2xvc2FibGVCeURpbW1lcjogZmFsc2UsCi0gICAgICAgICAgICAgICAgICBtb2RhbDogZmFsc2Us Ci0gICAgICAgICAgICAgICAgICBhdXRvUmVzZXQ6IGZhbHNlLAotICAgICAgICAgICAgICAgIH0s Ci0gICAgICAgICAgICAgIH07Ci0gICAgICAgICAgICB9LAotICAgICAgICAgICAgaG9va3M6IHsK LSAgICAgICAgICAgIC8vIHRyaWdnZXJlZCB3aGVuIHRoZSBkaWFsb2cgaXMgY2xvc2VkCi0gICAg ICAgICAgICAgIG9uY2xvc2U6IGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgICAgIGlmICh0aGlz LnZpZXcpIHsKLSAgICAgICAgICAgICAgICAgIHRoaXMuZmlsdGVyQ29sbGVjdGlvbk1vZGVsLnN0 b3BTZXNzaW9uKCk7Ci0gICAgICAgICAgICAgICAgICB0aGlzLnZpZXcubW9kZWwuc3RvcFNlc3Np b24oKTsKLSAgICAgICAgICAgICAgICAgIHRoaXMudmlldy5yZW1vdmUoewotICAgICAgICAgICAg ICAgICAgICBkYXRhOiB0cnVlLAotICAgICAgICAgICAgICAgICAgICBpbnRlcm5hbDogdHJ1ZSwK LSAgICAgICAgICAgICAgICAgICAgc2lsZW50OiB0cnVlLAotICAgICAgICAgICAgICAgICAgfSk7 Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICB9LAotICAgICAgICAgICAgfSwKLSAg ICAgICAgICAgIHByZXBhcmU6IGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgICBsZXQgc2VsZiA9 IHRoaXM7Ci0gICAgICAgICAgICAgICRjb250YWluZXIuaHRtbCgnJyk7Ci0gICAgICAgICAgICAg IC8vIERpc2FibGUgT2sgYnV0dG9uCi0gICAgICAgICAgICAgIHRoaXMuX19pbnRlcm5hbC5idXR0 b25zWzJdLmVsZW1lbnQuZGlzYWJsZWQgPSB0cnVlOwotCi0gICAgICAgICAgICAgIC8vIFN0YXR1 cyBiYXIKLSAgICAgICAgICAgICAgdGhpcy5zdGF0dXNCYXIgPSAkKAotICAgICAgICAgICAgICAg ICc8ZGl2IGNsYXNzPVwncGctcHJvcC1zdGF0dXMtYmFyIHBnLWVsLXhzLTEyIGQtbm9uZVwnPicg KwotICAgICAgICAgICAgICAnICA8ZGl2IGNsYXNzPSJlcnJvci1pbi1mb290ZXIiPiAnICsKLSAg ICAgICAgICAgICAgJyAgICA8ZGl2IGNsYXNzPSJkLWZsZXggcHgtMiBweS0xIj4gJyArCi0gICAg ICAgICAgICAgICcgICAgICA8ZGl2IGNsYXNzPSJwci0yIj4gJyArCi0gICAgICAgICAgICAgICcg ICAgICAgIDxpIGNsYXNzPSJmYSBmYS1leGNsYW1hdGlvbi10cmlhbmdsZSB0ZXh0LWRhbmdlciIg YXJpYS1oaWRkZW49InRydWUiPjwvaT4gJyArCi0gICAgICAgICAgICAgICcgICAgICA8L2Rpdj4g JyArCi0gICAgICAgICAgICAgICcgICAgICA8ZGl2IGNsYXNzPSJhbGVydC10ZXh0IiByb2xlPSJh bGVydCI+PC9kaXY+ICcgKwotICAgICAgICAgICAgICAnICAgIDwvZGl2PiAnICsKLSAgICAgICAg ICAgICAgJyAgPC9kaXY+ICcgKwotICAgICAgICAgICAgICAnPC9kaXY+JykuYXBwZW5kVG8oJGNv bnRhaW5lcik7Ci0KLSAgICAgICAgICAgICAgLy8gVG8gc2hvdyBwcm9ncmVzcyBvbiBmaWx0ZXIg U2F2aW5nL1VwZGF0aW5nIG9uIEFKQVgKLSAgICAgICAgICAgICAgdGhpcy5zaG93RmlsdGVyUHJv Z3Jlc3MgPSAkKAotICAgICAgICAgICAgICAgIGA8ZGl2IGlkPSJzaG93X2ZpbHRlcl9wcm9ncmVz cyIgY2xhc3M9InBnLXNwLWNvbnRhaW5lciBzcWwtZWRpdG9yLWJ1c3ktZmV0Y2hpbmcgZC1ub25l Ij4KLSAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InBnLXNwLWNvbnRlbnQiPgotICAgICAg ICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InJvdyI+PGRpdiBjbGFzcz0iY29sLTEyIHBnLXNw LWljb24gc3FsLWVkaXRvci1idXN5LWljb24iPjwvZGl2PjwvZGl2PgotICAgICAgICAgICAgICAg ICAgICAgIDxkaXYgY2xhc3M9InJvdyI+PGRpdiBjbGFzcz0iY29sLTEyIHBnLXNwLXRleHQgc3Fs LWVkaXRvci1idXN5LXRleHQiPmAgKyBnZXR0ZXh0KCdMb2FkaW5nIGRhdGEuLi4nKSArIGA8L2Rp dj48L2Rpdj4KLSAgICAgICAgICAgICAgICAgIDwvZGl2PgotICAgICAgICAgICAgICA8L2Rpdj5g Ci0gICAgICAgICAgICAgICkuYXBwZW5kVG8oJGNvbnRhaW5lcik7Ci0gICAgICAgICAgICAgICQo Ci0gICAgICAgICAgICAgICAgc2VsZi5zaG93RmlsdGVyUHJvZ3Jlc3NbMF0KLSAgICAgICAgICAg ICAgKS5yZW1vdmVDbGFzcygnZC1ub25lJyk7Ci0KLSAgICAgICAgICAgICAgc2VsZi5maWx0ZXJD b2xsZWN0aW9uTW9kZWwgPSBmaWx0ZXJEaWFsb2dNb2RlbChyZXNwb25zZSk7Ci0KLSAgICAgICAg ICAgICAgbGV0IGZpZWxkcyA9IEJhY2tmb3JtLmdlbmVyYXRlVmlld1NjaGVtYSgKLSAgICAgICAg ICAgICAgICBudWxsLCBzZWxmLmZpbHRlckNvbGxlY3Rpb25Nb2RlbCwgJ2NyZWF0ZScsIG51bGws IG51bGwsIHRydWUKLSAgICAgICAgICAgICAgKTsKLQotICAgICAgICAgICAgICBsZXQgdmlldyA9 IHRoaXMudmlldyA9IG5ldyBCYWNrZm9ybS5EaWFsb2coewotICAgICAgICAgICAgICAgIGVsOiAn PGRpdj48L2Rpdj4nLAotICAgICAgICAgICAgICAgIG1vZGVsOiBzZWxmLmZpbHRlckNvbGxlY3Rp b25Nb2RlbCwKLSAgICAgICAgICAgICAgICBzY2hlbWE6IGZpZWxkcywKLSAgICAgICAgICAgICAg fSk7Ci0KLSAgICAgICAgICAgICAgJCh0aGlzLmVsZW1lbnRzLmJvZHkuY2hpbGROb2Rlc1swXSku YWRkQ2xhc3MoCi0gICAgICAgICAgICAgICAgJ2FsZXJ0aWZ5X3Rvb2xzX2RpYWxvZ19wcm9wZXJ0 aWVzIG9ial9wcm9wZXJ0aWVzJwotICAgICAgICAgICAgICApOwotCi0gICAgICAgICAgICAgICRj b250YWluZXIuYXBwZW5kKHZpZXcucmVuZGVyKCkuJGVsKTsKLQotICAgICAgICAgICAgICAvLyBF bmFibGUvZGlzYWJsZSBzYXZlIGJ1dHRvbiBhbmQgc2hvdy9oaWRlIHN0YXR1c2JhciBiYXNlZCBv biBzZXNzaW9uCi0gICAgICAgICAgICAgIHZpZXcubGlzdGVuVG8odmlldy5tb2RlbCwgJ3BnYWRt aW4tc2Vzc2lvbjpzdGFydCcsIGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgICAgIHZpZXcubGlz dGVuVG8odmlldy5tb2RlbCwgJ3BnYWRtaW4tc2Vzc2lvbjppbnZhbGlkJywgZnVuY3Rpb24obXNn KSB7Ci0gICAgICAgICAgICAgICAgICBzZWxmLnN0YXR1c0Jhci5yZW1vdmVDbGFzcygnZC1ub25l Jyk7Ci0gICAgICAgICAgICAgICAgICAkKHNlbGYuc3RhdHVzQmFyLmZpbmQoJy5hbGVydC10ZXh0 JykpLmh0bWwobXNnKTsKLSAgICAgICAgICAgICAgICAgIC8vIERpc2FibGUgT2theSBidXR0b24K LSAgICAgICAgICAgICAgICAgIHNlbGYuX19pbnRlcm5hbC5idXR0b25zWzJdLmVsZW1lbnQuZGlz YWJsZWQgPSB0cnVlOwotICAgICAgICAgICAgICAgIH0pOwotCi0gICAgICAgICAgICAgICAgdmll dy5saXN0ZW5Ubyh2aWV3Lm1vZGVsLCAncGdhZG1pbi1zZXNzaW9uOnZhbGlkJywgZnVuY3Rpb24o KSB7Ci0gICAgICAgICAgICAgICAgICBzZWxmLnN0YXR1c0Jhci5hZGRDbGFzcygnZC1ub25lJyk7 Ci0gICAgICAgICAgICAgICAgICAkKHNlbGYuc3RhdHVzQmFyLmZpbmQoJy5hbGVydC10ZXh0Jykp Lmh0bWwoJycpOwotICAgICAgICAgICAgICAgICAgLy8gRW5hYmxlIE9rYXkgYnV0dG9uCi0gICAg ICAgICAgICAgICAgICBzZWxmLl9faW50ZXJuYWwuYnV0dG9uc1syXS5lbGVtZW50LmRpc2FibGVk ID0gZmFsc2U7Ci0gICAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICAgIH0pOwotCi0gICAg ICAgICAgICAgIHZpZXcubGlzdGVuVG8odmlldy5tb2RlbCwgJ3BnYWRtaW4tc2Vzc2lvbjpzdG9w JywgZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICAgICAgdmlldy5zdG9wTGlzdGVuaW5nKHZpZXcu bW9kZWwsICdwZ2FkbWluLXNlc3Npb246aW52YWxpZCcpOwotICAgICAgICAgICAgICAgIHZpZXcu c3RvcExpc3RlbmluZyh2aWV3Lm1vZGVsLCAncGdhZG1pbi1zZXNzaW9uOnZhbGlkJyk7Ci0gICAg ICAgICAgICAgIH0pOwotCi0gICAgICAgICAgICAgIC8vIFN0YXJ0cyBtb25pdG9yaW5nIGNoYW5n ZXMgdG8gbW9kZWwKLSAgICAgICAgICAgICAgdmlldy5tb2RlbC5zdGFydE5ld1Nlc3Npb24oKTsK LQotICAgICAgICAgICAgICAvLyBTZXQgZGF0YSBpbiBjb2xsZWN0aW9uCi0gICAgICAgICAgICAg IGxldCB2aWV3RGF0YVNvcnRpbmdNb2RlbCA9IHZpZXcubW9kZWwuZ2V0KCdkYXRhX3NvcnRpbmcn KTsKLSAgICAgICAgICAgICAgdmlld0RhdGFTb3J0aW5nTW9kZWwuYWRkKHJlc3BvbnNlWydkYXRh X3NvcnRpbmcnXSk7Ci0KLSAgICAgICAgICAgICAgLy8gSGlkZSBQcm9ncmVzcyAuLi4KLSAgICAg ICAgICAgICAgJCgKLSAgICAgICAgICAgICAgICBzZWxmLnNob3dGaWx0ZXJQcm9ncmVzc1swXQot ICAgICAgICAgICAgICApLmFkZENsYXNzKCdkLW5vbmUnKTsKLQotICAgICAgICAgICAgfSwKLSAg ICAgICAgICAgIC8vIENhbGxiYWNrIGZ1bmN0aW9ucyB3aGVuIGNsaWNrIG9uIHRoZSBidXR0b25z IG9mIHRoZSBBbGVydGlmeSBkaWFsb2dzCi0gICAgICAgICAgICBjYWxsYmFjazogZnVuY3Rpb24o ZSkgewotICAgICAgICAgICAgICBsZXQgc2VsZiA9IHRoaXM7Ci0KLSAgICAgICAgICAgICAgaWYg KGUuYnV0dG9uLmVsZW1lbnQubmFtZSA9PSAnZGlhbG9nX2hlbHAnKSB7Ci0gICAgICAgICAgICAg ICAgZS5jYW5jZWwgPSB0cnVlOwotICAgICAgICAgICAgICAgIHBnQWRtaW4uQnJvd3Nlci5zaG93 SGVscChlLmJ1dHRvbi5lbGVtZW50Lm5hbWUsIGUuYnV0dG9uLmVsZW1lbnQuZ2V0QXR0cmlidXRl KCd1cmwnKSwKLSAgICAgICAgICAgICAgICAgIG51bGwsIG51bGwpOwotICAgICAgICAgICAgICB9 IGVsc2UgaWYgKGUuYnV0dG9uWydkYXRhLWJ0bi1uYW1lJ10gPT09ICdvaycpIHsKLSAgICAgICAg ICAgICAgICBlLmNhbmNlbCA9IHRydWU7IC8vIERvIG5vdCBjbG9zZSBkaWFsb2cKLQotICAgICAg ICAgICAgICAgIGxldCBmaWx0ZXJDb2xsZWN0aW9uTW9kZWwgPSB0aGlzLmZpbHRlckNvbGxlY3Rp b25Nb2RlbC50b0pTT04oKTsKLQotICAgICAgICAgICAgICAgIC8vIFNob3cgUHJvZ3Jlc3MgLi4u Ci0gICAgICAgICAgICAgICAgJCgKLSAgICAgICAgICAgICAgICAgIHNlbGYuc2hvd0ZpbHRlclBy b2dyZXNzWzBdCi0gICAgICAgICAgICAgICAgKS5yZW1vdmVDbGFzcygnZC1ub25lJyk7Ci0KLSAg ICAgICAgICAgICAgICBheGlvcy5wdXQoCi0gICAgICAgICAgICAgICAgICB1cmxfZm9yKCdzcWxl ZGl0b3Iuc2V0X2ZpbHRlcl9kYXRhJywgewotICAgICAgICAgICAgICAgICAgICAndHJhbnNfaWQn OiBoYW5kbGVyLnRyYW5zSWQsCi0gICAgICAgICAgICAgICAgICB9KSwKLSAgICAgICAgICAgICAg ICAgIGZpbHRlckNvbGxlY3Rpb25Nb2RlbAotICAgICAgICAgICAgICAgICkudGhlbihmdW5jdGlv biAocmVzdWx0KSB7Ci0gICAgICAgICAgICAgICAgLy8gSGlkZSBQcm9ncmVzcyAuLi4KLSAgICAg ICAgICAgICAgICAgICQoCi0gICAgICAgICAgICAgICAgICAgIHNlbGYuc2hvd0ZpbHRlclByb2dy ZXNzWzBdCi0gICAgICAgICAgICAgICAgICApLmFkZENsYXNzKCdkLW5vbmUnKTsKLQotICAgICAg ICAgICAgICAgICAgbGV0IGZpbHRlclJlc3BvbnNlID0gcmVzdWx0LmRhdGEuZGF0YTsKLQotICAg ICAgICAgICAgICAgICAgaWYgKGZpbHRlclJlc3BvbnNlLnN0YXR1cykgewotICAgICAgICAgICAg ICAgICAgICBzZXRUaW1lb3V0KAotICAgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uKCkgewot ICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5jbG9zZSgpOyAvLyBDbG9zZSB0aGUgZGlhbG9n IG5vdwotICAgICAgICAgICAgICAgICAgICAgICAgTm90aWZ5LnN1Y2Nlc3MoZ2V0dGV4dCgnRmls dGVyIHVwZGF0ZWQgc3VjY2Vzc2Z1bGx5JykpOwotICAgICAgICAgICAgICAgICAgICAgICAgcXVl cnlUb29sQWN0aW9ucy5leGVjdXRlUXVlcnkoaGFuZGxlcik7Ci0gICAgICAgICAgICAgICAgICAg ICAgfSwgMTAKLSAgICAgICAgICAgICAgICAgICAgKTsKLSAgICAgICAgICAgICAgICAgIH0gZWxz ZSB7Ci0gICAgICAgICAgICAgICAgICAgIE5vdGlmeS5hbGVydCgKLSAgICAgICAgICAgICAgICAg ICAgICBnZXR0ZXh0KCdWYWxpZGF0aW9uIEVycm9yJyksCi0gICAgICAgICAgICAgICAgICAgICAg ZmlsdGVyUmVzcG9uc2UucmVzdWx0Ci0gICAgICAgICAgICAgICAgICAgICk7Ci0gICAgICAgICAg ICAgICAgICB9Ci0KLSAgICAgICAgICAgICAgICB9KS5jYXRjaChmdW5jdGlvbiAoZXJyb3IpIHsK LSAgICAgICAgICAgICAgICAvLyBIaWRlIFByb2dyZXNzIC4uLgotICAgICAgICAgICAgICAgICAg JCgKLSAgICAgICAgICAgICAgICAgICAgc2VsZi5zaG93RmlsdGVyUHJvZ3Jlc3NbMF0KLSAgICAg ICAgICAgICAgICAgICkuYWRkQ2xhc3MoJ2Qtbm9uZScpOwotICAgICAgICAgICAgICAgICAgaGFu ZGxlci5vbkV4ZWN1dGVIVFRQRXJyb3IoZXJyb3IpOwotCi0gICAgICAgICAgICAgICAgICBzZXRU aW1lb3V0KAotICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgICAg ICAgICAgICBOb3RpZnkuZXJyb3IoZXJyb3IpOwotICAgICAgICAgICAgICAgICAgICB9LCAxMAot ICAgICAgICAgICAgICAgICAgKTsKLSAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgICAg fSBlbHNlIHsKLSAgICAgICAgICAgICAgICBzZWxmLmNsb3NlKCk7Ci0gICAgICAgICAgICAgIH0K LSAgICAgICAgICAgIH0sCi0gICAgICAgICAgfTsKLSAgICAgICAgfSk7Ci0KLSAgICAgICAgQWxl cnRpZnkuZmlsdGVyRGlhbG9nKHRpdGxlKS5yZXNpemVUbyhwZ0FkbWluLkJyb3dzZXIuc3RkVy5t ZCxwZ0FkbWluLkJyb3dzZXIuc3RkSC5tZCk7Ci0gICAgICB9KQotICAgICAgLmZhaWwoZnVuY3Rp b24oZSkgewotICAgICAgICBoYW5kbGVRdWVyeVRvb2xBamF4RXJyb3IocGdBZG1pbiwgaGFuZGxl ciwgZSwgJ19zaG93X2ZpbHRlcicsIFtdLCB0cnVlKTsKLSAgICAgIH0pOwotICB9LAotfTsKLQot bW9kdWxlLmV4cG9ydHMgPSBGaWx0ZXJEaWFsb2c7CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9z dGF0aWMvanMvc3FsZWRpdG9yL2ZpbHRlcl9kaWFsb2dfbW9kZWwuanMgYi93ZWIvcGdhZG1pbi9z dGF0aWMvanMvc3FsZWRpdG9yL2ZpbHRlcl9kaWFsb2dfbW9kZWwuanMKZGVsZXRlZCBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IGY1YTY2ZTM0YS4uMDAwMDAwMDAwCi0tLSBhL3dlYi9wZ2FkbWluL3N0 YXRpYy9qcy9zcWxlZGl0b3IvZmlsdGVyX2RpYWxvZ19tb2RlbC5qcworKysgL2Rldi9udWxsCkBA IC0xLDEzNyArMCwwIEBACi0vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vCi0vLwotLy8gcGdBZG1pbiA0IC0gUG9zdGdyZVNRTCBUb29s cwotLy8KLS8vIENvcHlyaWdodCAoQykgMjAxMyAtIDIwMjIsIFRoZSBwZ0FkbWluIERldmVsb3Bt ZW50IFRlYW0KLS8vIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgdGhlIFBvc3RncmVT UUwgTGljZW5jZQotLy8KLS8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vCi0KLWltcG9ydCBnZXR0ZXh0IGZyb20gJ3NvdXJjZXMvZ2V0 dGV4dCc7Ci1pbXBvcnQgXyBmcm9tICd1bmRlcnNjb3JlJzsKLWltcG9ydCBwZ0FkbWluIGZyb20g J3NvdXJjZXMvcGdhZG1pbic7Ci1pbXBvcnQgQmFja2dyaWQgZnJvbSAncGdhZG1pbi5iYWNrZ3Jp ZCc7Ci1pbXBvcnQgQmFja2Zvcm0gZnJvbSAncGdhZG1pbi5iYWNrZm9ybSc7Ci0KLWV4cG9ydCBk ZWZhdWx0IGZ1bmN0aW9uIGZpbHRlckRpYWxvZ01vZGVsKHJlc3BvbnNlKSB7Ci0KLSAgbGV0IG9y ZGVyX21hcHBpbmcgPSB7Ci0gICAgJ2FzYyc6IGdldHRleHQoJ0FTQycpLAotICAgICdkZXNjJzog Z2V0dGV4dCgnREVTQycpLAotICB9OwotCi0gIGxldCBEYXRhU29ydGluZ01vZGVsID0gcGdBZG1p bi5Ccm93c2VyLkRhdGFNb2RlbC5leHRlbmQoewotICAgIGlkQXR0cmlidXRlOiAnbmFtZScsCi0g ICAgZGVmYXVsdHM6IHsKLSAgICAgIG5hbWU6IHVuZGVmaW5lZCwKLSAgICAgIG9yZGVyOiAnYXNj JywKLSAgICB9LAotICAgIHNjaGVtYTogW3sKLSAgICAgIGlkOiAnbmFtZScsCi0gICAgICBuYW1l OiAnbmFtZScsCi0gICAgICBsYWJlbDogZ2V0dGV4dCgnQ29sdW1uJyksCi0gICAgICBjZWxsOiAn c2VsZWN0MicsCi0gICAgICBlZGl0YWJsZTogdHJ1ZSwKLSAgICAgIGNlbGxIZWFkZXJDbGFzc2Vz OiAnd2lkdGhfcGVyY2VudF82MCcsCi0gICAgICBoZWFkZXJDZWxsOiBCYWNrZ3JpZC5FeHRlbnNp b24uQ3VzdG9tSGVhZGVyQ2VsbCwKLSAgICAgIGRpc2FibGVkOiBmYWxzZSwKLSAgICAgIGNvbnRy b2w6ICdzZWxlY3QyJywKLSAgICAgIHNlbGVjdDI6IHsKLSAgICAgICAgYWxsb3dDbGVhcjogZmFs c2UsCi0gICAgICB9LAotICAgICAgb3B0aW9uczogZnVuY3Rpb24oKSB7Ci0gICAgICAgIHJldHVy biBfLm1hcChyZXNwb25zZS5jb2x1bW5fbGlzdCwgKG9iaikgPT4gewotICAgICAgICAgIHJldHVy biB7Ci0gICAgICAgICAgICB2YWx1ZTogb2JqLAotICAgICAgICAgICAgbGFiZWw6IG9iaiwKLSAg ICAgICAgICB9OwotICAgICAgICB9KTsKLSAgICAgIH0sCi0gICAgfSwKLSAgICB7Ci0gICAgICBp ZDogJ29yZGVyJywKLSAgICAgIG5hbWU6ICdvcmRlcicsCi0gICAgICBsYWJlbDogZ2V0dGV4dCgn T3JkZXInKSwKLSAgICAgIGNvbnRyb2w6ICdzZWxlY3QyJywKLSAgICAgIGNlbGw6ICdzZWxlY3Qy JywKLSAgICAgIGNlbGxIZWFkZXJDbGFzc2VzOiAnd2lkdGhfcGVyY2VudF80MCcsCi0gICAgICBo ZWFkZXJDZWxsOiBCYWNrZ3JpZC5FeHRlbnNpb24uQ3VzdG9tSGVhZGVyQ2VsbCwKLSAgICAgIGVk aXRhYmxlOiB0cnVlLAotICAgICAgZGVwczogWyd0eXBlJ10sCi0gICAgICBzZWxlY3QyOiB7Ci0g ICAgICAgIGFsbG93Q2xlYXI6IGZhbHNlLAotICAgICAgfSwKLSAgICAgIG9wdGlvbnM6IGZ1bmN0 aW9uKCkgewotICAgICAgICByZXR1cm4gXy5tYXAob3JkZXJfbWFwcGluZywgKHZhbCwga2V5KSA9 PiB7Ci0gICAgICAgICAgcmV0dXJuIHsKLSAgICAgICAgICAgIHZhbHVlOiBrZXksCi0gICAgICAg ICAgICBsYWJlbDogdmFsLAotICAgICAgICAgIH07Ci0gICAgICAgIH0pOwotICAgICAgfSwKLSAg ICB9LAotICAgIF0sCi0gICAgdmFsaWRhdGU6IGZ1bmN0aW9uKCkgewotICAgICAgbGV0IG1zZyA9 IG51bGw7Ci0gICAgICB0aGlzLmVycm9yTW9kZWwuY2xlYXIoKTsKLSAgICAgIGlmIChfLmlzVW5k ZWZpbmVkKHRoaXMuZ2V0KCduYW1lJykpIHx8Ci0gICAgICAgIF8uaXNOdWxsKHRoaXMuZ2V0KCdu YW1lJykpIHx8Ci0gICAgICAgIFN0cmluZyh0aGlzLmdldCgnbmFtZScpKS5yZXBsYWNlKC9eXHMr fFxzKyQvZywgJycpID09ICcnKSB7Ci0gICAgICAgIG1zZyA9IGdldHRleHQoJ1BsZWFzZSBzZWxl Y3QgYSBjb2x1bW4uJyk7Ci0gICAgICAgIHRoaXMuZXJyb3JNb2RlbC5zZXQoJ25hbWUnLCBtc2cp OwotICAgICAgICByZXR1cm4gbXNnOwotICAgICAgfSBlbHNlIGlmIChfLmlzVW5kZWZpbmVkKHRo aXMuZ2V0KCdvcmRlcicpKSB8fAotICAgICAgICBfLmlzTnVsbCh0aGlzLmdldCgnb3JkZXInKSkg fHwKLSAgICAgICAgU3RyaW5nKHRoaXMuZ2V0KCdvcmRlcicpKS5yZXBsYWNlKC9eXHMrfFxzKyQv ZywgJycpID09ICcnKSB7Ci0gICAgICAgIG1zZyA9IGdldHRleHQoJ1BsZWFzZSBzZWxlY3QgdGhl IG9yZGVyLicpOwotICAgICAgICB0aGlzLmVycm9yTW9kZWwuc2V0KCdvcmRlcicsIG1zZyk7Ci0g ICAgICAgIHJldHVybiBtc2c7Ci0gICAgICB9Ci0gICAgICByZXR1cm4gbnVsbDsKLSAgICB9LAot ICB9KTsKLQotICBsZXQgRmlsdGVyQ29sbGVjdGlvbk1vZGVsID0gcGdBZG1pbi5Ccm93c2VyLkRh dGFNb2RlbC5leHRlbmQoewotICAgIGlkQXR0cmlidXRlOiAnc3FsJywKLSAgICBkZWZhdWx0czog ewotICAgICAgc3FsOiByZXNwb25zZS5zcWwgfHwgbnVsbCwKLSAgICB9LAotICAgIHNjaGVtYTog W3sKLSAgICAgIGlkOiAnc3FsJywKLSAgICAgIGxhYmVsOiBnZXR0ZXh0KCdTUUwgRmlsdGVyJyks Ci0gICAgICBjZWxsOiAnc3RyaW5nJywKLSAgICAgIHR5cGU6ICd0ZXh0JywgbW9kZTogWydjcmVh dGUnXSwKLSAgICAgIGNvbnRyb2w6IEJhY2tmb3JtLlNxbEZpZWxkQ29udHJvbC5leHRlbmQoewot ICAgICAgICByZW5kZXI6IGZ1bmN0aW9uKCkgewotICAgICAgICAgIGxldCBvYmogPSBCYWNrZm9y bS5TcWxGaWVsZENvbnRyb2wucHJvdG90eXBlLnJlbmRlci5hcHBseSh0aGlzLCBhcmd1bWVudHMp OwotICAgICAgICAgIC8vIFdlIG5lZWQgdG8gc2V0IGZvY3VzIG9uIGVkaXRvciBhZnRlciB0aGUg ZGlhbG9nIHJlbmRlcnMKLSAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHsKLSAgICAgICAgICAg IG9iai5zcWxDdHJsLmZvY3VzKCk7Ci0gICAgICAgICAgfSwgMTAwMCk7Ci0gICAgICAgICAgcmV0 dXJuIG9iajsKLSAgICAgICAgfSwKLSAgICAgIH0pLAotICAgICAgZXh0cmFDbGFzc2VzOlsnY3Vz dG9tX2hlaWdodF9jc3NfY2xhc3MnXSwKLSAgICB9LHsKLSAgICAgIGlkOiAnZGF0YV9zb3J0aW5n JywKLSAgICAgIG5hbWU6ICdkYXRhX3NvcnRpbmcnLAotICAgICAgbGFiZWw6IGdldHRleHQoJ0Rh dGEgU29ydGluZycpLAotICAgICAgbW9kZWw6IERhdGFTb3J0aW5nTW9kZWwsCi0gICAgICBlZGl0 YWJsZTogdHJ1ZSwKLSAgICAgIHR5cGU6ICdjb2xsZWN0aW9uJywKLSAgICAgIG1vZGU6IFsnY3Jl YXRlJ10sCi0gICAgICBjb250cm9sOiAndW5pcXVlLWNvbC1jb2xsZWN0aW9uJywKLSAgICAgIHVu aXF1ZUNvbDogWyduYW1lJ10sCi0gICAgICBjYW5BZGQ6IHRydWUsCi0gICAgICBjYW5FZGl0OiBm YWxzZSwKLSAgICAgIGNhbkRlbGV0ZTogdHJ1ZSwKLSAgICAgIHZpc2libGU6IHRydWUsCi0gICAg ICB2ZXJzaW9uX2NvbXBhdGlibGU6IHRydWUsCi0gICAgfV0sCi0gICAgdmFsaWRhdGU6IGZ1bmN0 aW9uKCkgewotICAgICAgcmV0dXJuIG51bGw7Ci0gICAgfSwKLSAgfSk7Ci0KLSAgcmV0dXJuIG5l dyBGaWx0ZXJDb2xsZWN0aW9uTW9kZWwoKTsKLX0KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL3N0 YXRpYy9qcy9zcWxlZGl0b3IvZ2VvbWV0cnlfdmlld2VyLmpzIGIvd2ViL3BnYWRtaW4vc3RhdGlj L2pzL3NxbGVkaXRvci9nZW9tZXRyeV92aWV3ZXIuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDIzYTFkMzg0My4uMDAwMDAwMDAwCi0tLSBhL3dlYi9wZ2FkbWluL3N0YXRpYy9qcy9z cWxlZGl0b3IvZ2VvbWV0cnlfdmlld2VyLmpzCisrKyAvZGV2L251bGwKQEAgLTEsNDM0ICswLDAg QEAKLS8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8KLS8vCi0vLyBwZ0FkbWluIDQgLSBQb3N0Z3JlU1FMIFRvb2xzCi0vLwotLy8gQ29w eXJpZ2h0IChDKSAyMDEzIC0gMjAyMiwgVGhlIHBnQWRtaW4gRGV2ZWxvcG1lbnQgVGVhbQotLy8g VGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciB0aGUgUG9zdGdyZVNRTCBMaWNlbmNlCi0v LwotLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8KLQotaW1wb3J0IGdldHRleHQgZnJvbSAnc291cmNlcy9nZXR0ZXh0JzsKLWltcG9y dCB7QnVmZmVyfSBmcm9tICdidWZmZXInOwotaW1wb3J0ICQgZnJvbSAnanF1ZXJ5JzsKLQotdmFy IEwgPSBudWxsOwotdmFyIEdlb21ldHJ5ID0gbnVsbDsKLWxldCBHZW9tZXRyeVZpZXdlciA9IHsK LSAgcGFuZWxfY2xvc2VkOiB0cnVlLAotCi0gIGdvX2Zvcl9yZW5kZXI6IGZ1bmN0aW9uKGhhbmRs ZXIsIGl0ZW1zLCBjb2x1bW5zLCBjb2x1bW5JbmRleCkgewotICAgIGxldCBzZWxmID0gdGhpczsK LQotICAgIGlmICghc2VsZi5tYXBfY29tcG9uZW50KSB7Ci0gICAgICBzZWxmLm1hcF9jb21wb25l bnQgPSBpbml0TWFwQ29tcG9uZW50KCk7Ci0gICAgfQotCi0gICAgaWYgKHNlbGYucGFuZWxfY2xv c2VkKSB7Ci0gICAgICBsZXQgd2NEb2NrZXIgPSB3aW5kb3cud2NEb2NrZXI7Ci0gICAgICBsZXQg Z2VvbWV0cnlfdmlld2VyX3BhbmVsID0gaGFuZGxlci5ncmlkVmlldy5nZW9tZXRyeV92aWV3ZXIg PQotICAgICAgICBoYW5kbGVyLmdyaWRWaWV3LmRvY2tlci5hZGRQYW5lbCgnZ2VvbWV0cnlfdmll d2VyJywKLSAgICAgICAgICB3Y0RvY2tlci5ET0NLLlNUQUNLRUQsIGhhbmRsZXIuZ3JpZFZpZXcu ZGF0YV9vdXRwdXRfcGFuZWwpOwotICAgICAgJCgnI2dlb21ldHJ5X3ZpZXdlcl9wYW5lbCcpWzBd LmFwcGVuZENoaWxkKHNlbGYubWFwX2NvbXBvbmVudC5tYXBDb250YWluZXIuZ2V0KDApKTsKLSAg ICAgIHNlbGYucGFuZWxfY2xvc2VkID0gZmFsc2U7Ci0KLSAgICAgIGdlb21ldHJ5X3ZpZXdlcl9w YW5lbC5vbih3Y0RvY2tlci5FVkVOVC5DTE9TRUQsIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgJCgn I2dlb21ldHJ5X3ZpZXdlcl9wYW5lbCcpLmVtcHR5KCk7Ci0gICAgICAgIHNlbGYubWFwX2NvbXBv bmVudC5jbGVhck1hcCgpOwotICAgICAgICBzZWxmLnBhbmVsX2Nsb3NlZCA9IHRydWU7Ci0gICAg ICB9KTsKLQotICAgICAgZ2VvbWV0cnlfdmlld2VyX3BhbmVsLm9uKHdjRG9ja2VyLkVWRU5ULlJF U0laRV9FTkRFRCwgZnVuY3Rpb24gKCkgewotICAgICAgICBpZiAoZ2VvbWV0cnlfdmlld2VyX3Bh bmVsLmlzVmlzaWJsZSgpKSB7Ci0gICAgICAgICAgc2VsZi5tYXBfY29tcG9uZW50LnJlc2l6ZU1h cCgpOwotICAgICAgICB9Ci0gICAgICB9KTsKLQotICAgICAgZ2VvbWV0cnlfdmlld2VyX3BhbmVs Lm9uKHdjRG9ja2VyLkVWRU5ULlZJU0lCSUxJVFlfQ0hBTkdFRCwgZnVuY3Rpb24gKHZpc2libGUp IHsKLSAgICAgICAgaWYgKHZpc2libGUpIHsKLSAgICAgICAgICBzZWxmLm1hcF9jb21wb25lbnQu cmVzaXplTWFwKCk7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgc2VsZi5tYXBfY29tcG9u ZW50Lmxvc2VGb2N1cygpOwotICAgICAgICB9Ci0gICAgICB9KTsKLSAgICB9Ci0KLSAgICBoYW5k bGVyLmdyaWRWaWV3Lmdlb21ldHJ5X3ZpZXdlci5mb2N1cygpOwotICAgIHNlbGYubWFwX2NvbXBv bmVudC5jbGVhck1hcCgpOwotICAgIGxldCBkYXRhT2JqID0gcGFyc2VEYXRhKGl0ZW1zLCBjb2x1 bW5zLCBjb2x1bW5JbmRleCwgR2VvbWV0cnkpOwotICAgIHNlbGYubWFwX2NvbXBvbmVudC5yZW5k ZXJNYXAoZGF0YU9iaik7Ci0gIH0sCi0KLSAgcmVuZGVyX2dlb21ldHJpZXM6IGZ1bmN0aW9uICho YW5kbGVyLCBpdGVtcywgY29sdW1ucywgY29sdW1uSW5kZXgpIHsKLSAgICBsZXQgc2VsZiA9IHRo aXM7Ci0gICAgcmVxdWlyZS5lbnN1cmUoWydsZWFmbGV0JywgJ3dreCddLCBmdW5jdGlvbihyZXF1 aXJlKSB7Ci0gICAgICBMID0gcmVxdWlyZSgnbGVhZmxldCcpOwotICAgICAgR2VvbWV0cnkgPSBy ZXF1aXJlKCd3a3gnKS5HZW9tZXRyeTsKLSAgICAgIHNlbGYuZ29fZm9yX3JlbmRlcihoYW5kbGVy LCBpdGVtcywgY29sdW1ucywgY29sdW1uSW5kZXgpOwotICAgIH0sIGZ1bmN0aW9uKGVycm9yKXsK LSAgICAgIHRocm93KGVycm9yKTsKLSAgICB9LCAnZ2VvbWV0cnknKTsKLSAgfSwKLQotICBhZGRf aGVhZGVyX2J1dHRvbjogZnVuY3Rpb24gKGNvbHVtbkRlZmluaXRpb24pIHsKLSAgICBjb2x1bW5E ZWZpbml0aW9uLmhlYWRlciA9IHsKLSAgICAgIGJ1dHRvbnM6IFsKLSAgICAgICAgewotICAgICAg ICAgIGNzc0NsYXNzOiAnZGl2LXZpZXctZ2VvbWV0cnktY29sdW1uJywKLSAgICAgICAgICB0b29s dGlwOiAnVmlldyBhbGwgZ2VvbWV0cmllcyBpbiB0aGlzIGNvbHVtbicsCi0gICAgICAgICAgc2hv d09uSG92ZXI6IGZhbHNlLAotICAgICAgICAgIGNvbW1hbmQ6ICd2aWV3LWdlb21ldHJpZXMnLAot ICAgICAgICAgIGNvbnRlbnQ6ICc8YnV0dG9uIGNsYXNzPSJidG4teHMgYnRuLXByaW1hcnkiPjxp IGNsYXNzPSJmYSBmYS1leWUiIGFyaWEtaGlkZGVuPSJ0cnVlIj48L2k+PC9idXR0b24+JywKLSAg ICAgICAgfSwKLSAgICAgIF0sCi0gICAgfTsKLSAgfSwKLQotICBwYXJzZV9kYXRhOiBwYXJzZURh dGEsCi19OwotCi1mdW5jdGlvbiBpbml0TWFwQ29tcG9uZW50KCkgewotICBjb25zdCBnZW9qc29u TWFya2VyT3B0aW9ucyA9IHsKLSAgICByYWRpdXM6IDQsCi0gICAgd2VpZ2h0OiAzLAotICB9Owot ICBjb25zdCBnZW9qc29uU3R5bGUgPSB7Ci0gICAgd2VpZ2h0OiAyLAotICB9OwotICBjb25zdCBw b3B1cE9wdGlvbiA9IHsKLSAgICBjbG9zZUJ1dHRvbjogZmFsc2UsCi0gICAgbWluV2lkdGg6IDI2 MCwKLSAgICBtYXhXaWR0aDogMzAwLAotICAgIG1heEhlaWdodDogMzAwLAotICB9OwotCi0gIGxl dCBtYXBDb250YWluZXIgPSAkKCc8ZGl2IGNsYXNzPSJnZW9tZXRyeS12aWV3ZXItY29udGFpbmVy Ij48L2Rpdj4nKTsKLSAgbGV0IGxtYXAgPSBMLm1hcChtYXBDb250YWluZXIuZ2V0KDApLCB7Ci0g ICAgcHJlZmVyQ2FudmFzOiB0cnVlLAotICB9KS5zZXRab29tKDApOwotCi0gIC8vIHVwZGF0ZSBk ZWZhdWx0IGF0dHJpYnV0aW9uCi0gIGxtYXAuYXR0cmlidXRpb25Db250cm9sLnNldFByZWZpeCgn Jyk7Ci0KLSAgbGV0IHZlY3RvckxheWVyID0gTC5nZW9KU09OKFtdLCB7Ci0gICAgc3R5bGU6IGdl b2pzb25TdHlsZSwKLSAgICBwb2ludFRvTGF5ZXI6IGZ1bmN0aW9uIChmZWF0dXJlLCBsYXRsbmcp IHsKLSAgICAgIHJldHVybiBMLmNpcmNsZU1hcmtlcihsYXRsbmcsIGdlb2pzb25NYXJrZXJPcHRp b25zKTsKLSAgICB9LAotICB9KTsKLSAgdmVjdG9yTGF5ZXIuYWRkVG8obG1hcCk7Ci0gIGxldCBi YXNlTGF5ZXJzT2JqID0gewotICAgICdFbXB0eSc6IEwudGlsZUxheWVyKCcnKSwKLSAgICAnU3Ry ZWV0JzogTC50aWxlTGF5ZXIoJ2h0dHBzOi8ve3N9LnRpbGUub3BlbnN0cmVldG1hcC5vcmcve3p9 L3t4fS97eX0ucG5nJywKLSAgICAgIHsKLSAgICAgICAgbWF4Wm9vbTogMTksCi0gICAgICAgIGF0 dHJpYnV0aW9uOiAnJmNvcHk7IDxhIGhyZWY9Imh0dHA6Ly93d3cub3BlbnN0cmVldG1hcC5vcmcv Y29weXJpZ2h0IiB0YXJnZXQ9Il9ibGFuayI+T3BlblN0cmVldE1hcDwvYT4nLAotICAgICAgfSks Ci0gICAgJ1RvcG9ncmFwaHknOiBMLnRpbGVMYXllcignaHR0cHM6Ly97c30udGlsZS5vcGVudG9w b21hcC5vcmcve3p9L3t4fS97eX0ucG5nJywKLSAgICAgIHsKLSAgICAgICAgbWF4Wm9vbTogMTcs Ci0gICAgICAgIGF0dHJpYnV0aW9uOiAnJmNvcHk7IDxhIGhyZWY9Imh0dHA6Ly93d3cub3BlbnN0 cmVldG1hcC5vcmcvY29weXJpZ2h0IiB0YXJnZXQ9Il9ibGFuayI+T3BlblN0cmVldE1hcDwvYT4s JyArCi0gICAgICAgICAgJyAmY29weTsgPGEgaHJlZj0iaHR0cDovL3ZpZXdmaW5kZXJwYW5vcmFt YXMub3JnIiB0YXJnZXQ9Il9ibGFuayI+U1JUTTwvYT4sJyArCi0gICAgICAgICAgJyAmY29weTsg PGEgaHJlZj0iaHR0cHM6Ly9vcGVudG9wb21hcC5vcmciIHRhcmdldD0iX2JsYW5rIj5PcGVuVG9w b01hcDwvYT4nLAotICAgICAgfSksCi0gICAgJ0dyYXkgU3R5bGUnOiBMLnRpbGVMYXllcignaHR0 cHM6Ly9jYXJ0b2RiLWJhc2VtYXBzLXtzfS5nbG9iYWwuc3NsLmZhc3RseS5uZXQvbGlnaHRfYWxs L3t6fS97eH0ve3l9e3J9LnBuZycsCi0gICAgICB7Ci0gICAgICAgIGF0dHJpYnV0aW9uOiAnJmNv cHk7IDxhIGhyZWY9Imh0dHA6Ly93d3cub3BlbnN0cmVldG1hcC5vcmcvY29weXJpZ2h0IiB0YXJn ZXQ9Il9ibGFuayI+T3BlblN0cmVldE1hcDwvYT4sJyArCi0gICAgICAgICAgJyAmY29weTsgPGEg aHJlZj0iaHR0cDovL2NhcnRvZGIuY29tL2F0dHJpYnV0aW9ucyIgdGFyZ2V0PSJfYmxhbmsiPkNh cnRvREI8L2E+JywKLSAgICAgICAgc3ViZG9tYWluczogJ2FiY2QnLAotICAgICAgICBtYXhab29t OiAxOSwKLSAgICAgIH0pLAotICAgICdMaWdodCBDb2xvcic6IEwudGlsZUxheWVyKCdodHRwczov L2NhcnRvZGItYmFzZW1hcHMte3N9Lmdsb2JhbC5zc2wuZmFzdGx5Lm5ldC9yYXN0ZXJ0aWxlcy92 b3lhZ2VyL3t6fS97eH0ve3l9e3J9LnBuZycsCi0gICAgICB7Ci0gICAgICAgIGF0dHJpYnV0aW9u OiAnJmNvcHk7IDxhIGhyZWY9Imh0dHA6Ly93d3cub3BlbnN0cmVldG1hcC5vcmcvY29weXJpZ2h0 IiB0YXJnZXQ9Il9ibGFuayI+T3BlblN0cmVldE1hcDwvYT4sJyArCi0gICAgICAgICAgJyAmY29w eTsgPGEgaHJlZj0iaHR0cDovL2NhcnRvZGIuY29tL2F0dHJpYnV0aW9ucyIgdGFyZ2V0PSJfYmxh bmsiPkNhcnRvREI8L2E+JywKLSAgICAgICAgc3ViZG9tYWluczogJ2FiY2QnLAotICAgICAgICBt YXhab29tOiAxOSwKLSAgICAgIH0pLAotICAgICdEYXJrIE1hdHRlcic6IEwudGlsZUxheWVyKCdo dHRwczovL2NhcnRvZGItYmFzZW1hcHMte3N9Lmdsb2JhbC5zc2wuZmFzdGx5Lm5ldC9kYXJrX2Fs bC97en0ve3h9L3t5fXtyfS5wbmcnLAotICAgICAgewotICAgICAgICBhdHRyaWJ1dGlvbjogJyZj b3B5OyA8YSBocmVmPSJodHRwOi8vd3d3Lm9wZW5zdHJlZXRtYXAub3JnL2NvcHlyaWdodCIgdGFy Z2V0PSJfYmxhbmsiPk9wZW5TdHJlZXRNYXA8L2E+LCcgKwotICAgICAgICAgICcgJmNvcHk7IDxh IGhyZWY9Imh0dHA6Ly9jYXJ0b2RiLmNvbS9hdHRyaWJ1dGlvbnMiIHRhcmdldD0iX2JsYW5rIj5D YXJ0b0RCPC9hPicsCi0gICAgICAgIHN1YmRvbWFpbnM6ICdhYmNkJywKLSAgICAgICAgbWF4Wm9v bTogMTksCi0gICAgICB9KSwKLSAgfTsKLSAgbGV0IGxheWVyQ29udHJvbCA9IEwuY29udHJvbC5s YXllcnMoYmFzZUxheWVyc09iaik7Ci0gIGxldCBkZWZhdWx0QmFzZUxheWVyID0gYmFzZUxheWVy c09iai5TdHJlZXQ7Ci0gIGxldCBiYXNlTGF5ZXJzID0gXy52YWx1ZXMoYmFzZUxheWVyc09iaik7 Ci0KLSAgbGV0IGluZm9Db250cm9sID0gTC5jb250cm9sKHtwb3NpdGlvbjogJ3RvcHJpZ2h0J30p OwotICBpbmZvQ29udHJvbC5vbkFkZCA9IGZ1bmN0aW9uICgpIHsKLSAgICB0aGlzLl9kaXYgPSBM LkRvbVV0aWwuY3JlYXRlKCdkaXYnLCAnZ2VvbWV0cnktdmlld2VyLWluZm8tY29udHJvbCcpOwot ICAgIHJldHVybiB0aGlzLl9kaXY7Ci0gIH07Ci0gIGluZm9Db250cm9sLnVwZGF0ZSA9IGZ1bmN0 aW9uIChjb250ZW50KSB7Ci0gICAgdGhpcy5fZGl2LmlubmVySFRNTCA9IGNvbnRlbnQ7Ci0gIH07 Ci0KLSAgbGV0IHNldEVQU0czODU3ID0gZnVuY3Rpb24gKCkgewotICAgIGlmIChsbWFwLm9wdGlv bnMuY3JzICE9PSBMLkNSUy5FUFNHMzg1NykgewotICAgICAgbG1hcC5vcHRpb25zLmNycyA9IEwu Q1JTLkVQU0czODU3OwotICAgICAgbGF5ZXJDb250cm9sLmFkZFRvKGxtYXApOwotICAgICAgbG1h cC5hZGRMYXllcihkZWZhdWx0QmFzZUxheWVyKTsKLSAgICAgIG1hcENvbnRhaW5lci5hZGRDbGFz cygnZ2VvbWV0cnktdmlld2VyLWNvbnRhaW5lci1wbGFpbi1iYWNrZ3JvdW5kJyk7Ci0gICAgICBs bWFwLnNldE1pblpvb20oMCk7Ci0gICAgfQotICB9OwotCi0gIGxldCBzZXRTaW1wbGVDUlMgPSBm dW5jdGlvbiAoKSB7Ci0gICAgaWYgKGxtYXAub3B0aW9ucy5jcnMgIT09IEwuQ1JTLlNpbXBsZSkg ewotICAgICAgbG1hcC5vcHRpb25zLmNycyA9IEwuQ1JTLlNpbXBsZTsKLSAgICAgIGxheWVyQ29u dHJvbC5yZW1vdmUoKTsKLSAgICAgIF8uZWFjaChiYXNlTGF5ZXJzLCBmdW5jdGlvbiAobGF5ZXIp IHsKLSAgICAgICAgaWYgKGxtYXAuaGFzTGF5ZXIobGF5ZXIpKSB7Ci0gICAgICAgICAgZGVmYXVs dEJhc2VMYXllciA9IGxheWVyOwotICAgICAgICAgIGxheWVyLnJlbW92ZSgpOwotICAgICAgICB9 Ci0gICAgICB9KTsKLSAgICAgIG1hcENvbnRhaW5lci5yZW1vdmVDbGFzcygnZ2VvbWV0cnktdmll d2VyLWNvbnRhaW5lci1wbGFpbi1iYWNrZ3JvdW5kJyk7Ci0gICAgfQotICB9OwotCi0gIHNldFNp bXBsZUNSUygpOwotICBzZXRFUFNHMzg1NygpOwotCi0gIHJldHVybiB7Ci0gICAgJ21hcENvbnRh aW5lcic6IG1hcENvbnRhaW5lciwKLSAgICAnY2xlYXJNYXAnOiBmdW5jdGlvbiAoKSB7Ci0gICAg ICBsbWFwLmNsb3NlUG9wdXAoKTsKLSAgICAgIGluZm9Db250cm9sLnJlbW92ZSgpOwotICAgICAg dmVjdG9yTGF5ZXIuY2xlYXJMYXllcnMoKTsKLSAgICB9LAotCi0gICAgJ2xvc2VGb2N1cyc6IGZ1 bmN0aW9uKCkgewotICAgICAgbG1hcC5maXJlKCdibHVyJyk7Ci0gICAgfSwKLQotICAgICdyZW5k ZXJNYXAnOiBmdW5jdGlvbiAoZGF0YU9iaikgewotICAgICAgbGV0IGdlb0pTT05zID0gZGF0YU9i ai5nZW9KU09OcywKLSAgICAgICAgU1JJRCA9IGRhdGFPYmouc2VsZWN0ZWRTUklELAotICAgICAg ICBnZXRQb3B1cENvbnRlbnQgPSBkYXRhT2JqLmdldFBvcHVwQ29udGVudCwKLSAgICAgICAgaW5m b0xpc3QgPSBkYXRhT2JqLmluZm9MaXN0OwotCi0gICAgICBsZXQgaXNFbXB0eSA9IGZhbHNlOwot ICAgICAgaWYgKGdlb0pTT05zLmxlbmd0aCA9PT0gMCkgewotICAgICAgICBpc0VtcHR5ID0gdHJ1 ZTsKLSAgICAgIH0KLQotICAgICAgdHJ5IHsKLSAgICAgICAgdmVjdG9yTGF5ZXIuYWRkRGF0YShn ZW9KU09Ocyk7Ci0gICAgICB9IGNhdGNoIChlKSB7Ci0gICAgICAgIC8vIEludmFsaWQgTGF0TG5n IG9iamVjdDogKE5hTiwgTmFOKQotICAgICAgICBpbmZvTGlzdC5wdXNoKCdBbiBlcnJvciBvY2N1 cnJlZCB3aGlsZSByZW5kZXJpbmcgZGF0YS4nKTsKLSAgICAgICAgaXNFbXB0eSA9IHRydWU7Ci0g ICAgICB9Ci0KLSAgICAgIGxldCBib3VuZHMgPSB2ZWN0b3JMYXllci5nZXRCb3VuZHMoKTsKLSAg ICAgIGlmICghYm91bmRzLmlzVmFsaWQoKSkgewotICAgICAgICBpc0VtcHR5ID0gdHJ1ZTsKLSAg ICAgIH0KLQotICAgICAgaWYgKGluZm9MaXN0Lmxlbmd0aCA+IDApIHsKLSAgICAgICAgaWYgKGxt YXAub3B0aW9ucy5jcnMgPT09IEwuQ1JTLkVQU0czODU3KSB7Ci0gICAgICAgICAgbGF5ZXJDb250 cm9sLnJlbW92ZSgpOwotICAgICAgICAgIGluZm9Db250cm9sLmFkZFRvKGxtYXApOwotICAgICAg ICAgIGxheWVyQ29udHJvbC5hZGRUbyhsbWFwKTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAg ICBpbmZvQ29udHJvbC5hZGRUbyhsbWFwKTsKLSAgICAgICAgfQotICAgICAgICBsZXQgaW5mb0Nv bnRlbnQgPSBnZW5lcmF0ZUluZm9Db250ZW50KGluZm9MaXN0KTsKLSAgICAgICAgaW5mb0NvbnRy b2wudXBkYXRlKGluZm9Db250ZW50KTsKLSAgICAgIH0KLQotICAgICAgaWYgKGlzRW1wdHkpIHsK LSAgICAgICAgc2V0U2ltcGxlQ1JTKCk7Ci0gICAgICAgIGxtYXAuc2V0VmlldyhbMCwgMF0sIGxt YXAuZ2V0Wm9vbSgpKTsKLSAgICAgICAgcmV0dXJuOwotICAgICAgfQotCi0gICAgICBpZiAodHlw ZW9mIGdldFBvcHVwQ29udGVudCA9PT0gJ2Z1bmN0aW9uJykgewotICAgICAgICBsZXQgYWRkUG9w dXAgPSBmdW5jdGlvbiAobGF5ZXIpIHsKLSAgICAgICAgICBsYXllci5iaW5kUG9wdXAoZnVuY3Rp b24gKCkgewotICAgICAgICAgICAgcmV0dXJuIGdldFBvcHVwQ29udGVudChsYXllci5mZWF0dXJl Lmdlb21ldHJ5KTsKLSAgICAgICAgICB9LCBwb3B1cE9wdGlvbik7Ci0gICAgICAgIH07Ci0gICAg ICAgIHZlY3RvckxheWVyLmVhY2hMYXllcihhZGRQb3B1cCk7Ci0gICAgICB9Ci0KLSAgICAgIGJv dW5kcyA9IGJvdW5kcy5wYWQoMC4xKTsKLSAgICAgIGxldCBtYXhMZW5ndGggPSBNYXRoLm1heChi b3VuZHMuZ2V0Tm9ydGgoKSAtIGJvdW5kcy5nZXRTb3V0aCgpLAotICAgICAgICBib3VuZHMuZ2V0 RWFzdCgpIC0gYm91bmRzLmdldFdlc3QoKSk7Ci0gICAgICBpZiAoU1JJRCA9PT0gNDMyNikgewot ICAgICAgICBzZXRFUFNHMzg1NygpOwotICAgICAgfSBlbHNlIHsKLSAgICAgICAgc2V0U2ltcGxl Q1JTKCk7Ci0gICAgICAgIGlmIChtYXhMZW5ndGggPj0gMTgwKSB7Ci0gICAgICAgICAgLy8gY2Fs Y3VsYXRlIHRoZSBtaW4gem9vbSBsZXZlbCB0byBlbmFibGUgdGhlIG1hcCB0byBmaXQgdGhlIHdo b2xlIGdlb21ldHJ5LgotICAgICAgICAgIGxldCBtaW5ab29tID0gTWF0aC5mbG9vcihNYXRoLmxv ZzIoMzYwIC8gbWF4TGVuZ3RoKSkgLSAyOwotICAgICAgICAgIGxtYXAuc2V0TWluWm9vbShtaW5a b29tKTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICBsbWFwLnNldE1pblpvb20oMCk7Ci0g ICAgICAgIH0KLSAgICAgIH0KLQotICAgICAgaWYgKG1heExlbmd0aCA+IDApIHsKLSAgICAgICAg bG1hcC5maXRCb3VuZHMoYm91bmRzKTsKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgIGxtYXAuc2V0 Vmlldyhib3VuZHMuZ2V0Q2VudGVyKCksIGxtYXAuZ2V0Wm9vbSgpKTsKLSAgICAgIH0KLSAgICB9 LAotCi0gICAgJ3Jlc2l6ZU1hcCc6IGZ1bmN0aW9uICgpIHsKLSAgICAgIHNldFRpbWVvdXQoZnVu Y3Rpb24gKCkgewotICAgICAgICBsbWFwLmludmFsaWRhdGVTaXplKCk7Ci0gICAgICB9LCAxMCk7 Ci0gICAgfSwKLQotICB9OwotfQotCi1mdW5jdGlvbiBwYXJzZURhdGEoaXRlbXMsIGNvbHVtbnMs IGNvbHVtbkluZGV4LCBHZW9tZXRyeUxpYikgewotICBjb25zdCBtYXhSZW5kZXJCeXRlTGVuZ3Ro ID0gMjAgKiAxMDI0ICogMTAyNDsgLy9yZW5kZXIgZ2VvbWV0cnkgZGF0YSB1cCB0byAyME1CCi0g IGNvbnN0IG1heFJlbmRlckdlb21ldHJpZXMgPSAxMDAwMDA7IC8vIHJlbmRlciBnZW9tZXRyaWVz IHVwIHRvIDEwMDAwMAotICBsZXQgZmllbGQgPSBjb2x1bW5zW2NvbHVtbkluZGV4XS5maWVsZDsK LSAgbGV0IGdlb21ldHJpZXMzRCA9IFtdLAotICAgIHN1cHBvcnRlZEdlb21ldHJpZXMgPSBbXSwK LSAgICB1bnN1cHBvcnRlZEl0ZW1zID0gW10sCi0gICAgaW5mb0xpc3QgPSBbXSwKLSAgICBnZW9t ZXRyeUl0ZW1NYXAgPSBuZXcgTWFwKCksCi0gICAgbWl4ZWRTUklEID0gZmFsc2UsCi0gICAgZ2Vv bWV0cnlUb3RhbEJ5dGVMZW5ndGggPSAwLAotICAgIHRvb0xhcmdlRGF0YVNpemUgPSBmYWxzZSwK LSAgICB0b29NYW55R2VvbWV0cmllcyA9IGZhbHNlOwotCi0gIGlmIChpdGVtcy5sZW5ndGggPT09 IDApIHsKLSAgICBpbmZvTGlzdC5wdXNoKCdFbXB0eSByb3cuJyk7Ci0gICAgcmV0dXJuIHsKLSAg ICAgICdnZW9KU09Ocyc6IFtdLAotICAgICAgJ3NlbGVjdGVkU1JJRCc6IDAsCi0gICAgICAnZ2V0 UG9wdXBDb250ZW50JzogdW5kZWZpbmVkLAotICAgICAgJ2luZm9MaXN0JzogaW5mb0xpc3QsCi0g ICAgfTsKLSAgfQotCi0gIC8vIHBhcnNlIGV3a2IgZGF0YQotICBfLmV2ZXJ5KGl0ZW1zLCBmdW5j dGlvbiAoaXRlbSkgewotICAgIHRyeSB7Ci0gICAgICBsZXQgdmFsdWUgPSBpdGVtW2ZpZWxkXTsK LSAgICAgIGxldCBidWZmZXIgPSBCdWZmZXIuZnJvbSh2YWx1ZSwgJ2hleCcpOwotICAgICAgbGV0 IGdlb21ldHJ5ID0gR2VvbWV0cnlMaWIucGFyc2UoYnVmZmVyKTsKLSAgICAgIGlmIChnZW9tZXRy eS5oYXNaKSB7Ci0gICAgICAgIGdlb21ldHJpZXMzRC5wdXNoKGdlb21ldHJ5KTsKLSAgICAgIH0g ZWxzZSB7Ci0gICAgICAgIGdlb21ldHJ5VG90YWxCeXRlTGVuZ3RoICs9IGJ1ZmZlci5ieXRlTGVu Z3RoOwotICAgICAgICBpZiAoZ2VvbWV0cnlUb3RhbEJ5dGVMZW5ndGggPiBtYXhSZW5kZXJCeXRl TGVuZ3RoKSB7Ci0gICAgICAgICAgdG9vTGFyZ2VEYXRhU2l6ZSA9IHRydWU7Ci0gICAgICAgICAg cmV0dXJuIGZhbHNlOwotICAgICAgICB9Ci0gICAgICAgIGlmIChzdXBwb3J0ZWRHZW9tZXRyaWVz Lmxlbmd0aCA+PSBtYXhSZW5kZXJHZW9tZXRyaWVzKSB7Ci0gICAgICAgICAgdG9vTWFueUdlb21l dHJpZXMgPSB0cnVlOwotICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgfQotCi0gICAg ICAgIGlmICghZ2VvbWV0cnkuc3JpZCkgewotICAgICAgICAgIGdlb21ldHJ5LnNyaWQgPSAwOwot ICAgICAgICB9Ci0gICAgICAgIHN1cHBvcnRlZEdlb21ldHJpZXMucHVzaChnZW9tZXRyeSk7Ci0g ICAgICAgIGdlb21ldHJ5SXRlbU1hcC5zZXQoZ2VvbWV0cnksIGl0ZW0pOwotICAgICAgfQotICAg IH0gY2F0Y2ggKGUpIHsKLSAgICAgIHVuc3VwcG9ydGVkSXRlbXMucHVzaChpdGVtKTsKLSAgICB9 Ci0gICAgcmV0dXJuIHRydWU7Ci0gIH0pOwotCi0gIC8vIGdlbmVyYXRlIG1hcCBpbmZvIGNvbnRl bnQKLSAgaWYgKHRvb0xhcmdlRGF0YVNpemUgfHwgdG9vTWFueUdlb21ldHJpZXMpIHsKLSAgICBp bmZvTGlzdC5wdXNoKHN1cHBvcnRlZEdlb21ldHJpZXMubGVuZ3RoICsgJyBvZiAnICsgaXRlbXMu bGVuZ3RoICsgJyBnZW9tZXRyaWVzIHJlbmRlcmVkLicpOwotICB9Ci0gIGlmIChnZW9tZXRyaWVz M0QubGVuZ3RoID4gMCkgewotICAgIGluZm9MaXN0LnB1c2goZ2V0dGV4dCgnM0QgZ2VvbWV0cmll cyBub3QgcmVuZGVyZWQuJykpOwotICB9Ci0gIGlmICh1bnN1cHBvcnRlZEl0ZW1zLmxlbmd0aCA+ IDApIHsKLSAgICBpbmZvTGlzdC5wdXNoKGdldHRleHQoJ1Vuc3VwcG9ydGVkIGdlb21ldHJpZXMg bm90IHJlbmRlcmVkLicpKTsKLSAgfQotCi0gIGlmIChzdXBwb3J0ZWRHZW9tZXRyaWVzLmxlbmd0 aCA9PT0gMCkgewotICAgIHJldHVybiB7Ci0gICAgICAnZ2VvSlNPTnMnOiBbXSwKLSAgICAgICdz ZWxlY3RlZFNSSUQnOiAwLAotICAgICAgJ2dldFBvcHVwQ29udGVudCc6IHVuZGVmaW5lZCwKLSAg ICAgICdpbmZvTGlzdCc6IGluZm9MaXN0LAotICAgIH07Ci0gIH0KLQotICAvLyBncm91cCBnZW9t ZXRyaWVzIGJ5IFNSSUQKLSAgbGV0IGdlb21ldHJpZXNHcm91cEJ5U1JJRCA9IF8uZ3JvdXBCeShz dXBwb3J0ZWRHZW9tZXRyaWVzLCAnc3JpZCcpOwotICBsZXQgU1JJREdlb21ldHJpZXNQYWlycyA9 IF8ucGFpcnMoZ2VvbWV0cmllc0dyb3VwQnlTUklEKTsKLSAgaWYgKFNSSURHZW9tZXRyaWVzUGFp cnMubGVuZ3RoID4gMSkgewotICAgIG1peGVkU1JJRCA9IHRydWU7Ci0gIH0KLSAgLy8gc2VsZWN0 IHRoZSBsYXJnZXN0IGdyb3VwCi0gIGxldCBzZWxlY3RlZFBhaXIgPSBfLm1heChTUklER2VvbWV0 cmllc1BhaXJzLCBmdW5jdGlvbiAocGFpcikgewotICAgIHJldHVybiBwYWlyWzFdLmxlbmd0aDsK LSAgfSk7Ci0gIGxldCBzZWxlY3RlZFNSSUQgPSBwYXJzZUludChzZWxlY3RlZFBhaXJbMF0pOwot ICBsZXQgc2VsZWN0ZWRHZW9tZXRyaWVzID0gc2VsZWN0ZWRQYWlyWzFdOwotCi0gIGxldCBnZW9K U09OcyA9IF8ubWFwKHNlbGVjdGVkR2VvbWV0cmllcywgZnVuY3Rpb24gKGdlb21ldHJ5KSB7Ci0g ICAgcmV0dXJuIGdlb21ldHJ5LnRvR2VvSlNPTigpOwotICB9KTsKLQotICBsZXQgZ2V0UG9wdXBD b250ZW50OwotICBpZiAoY29sdW1ucy5sZW5ndGggPj0gMykgewotICAgIC8vIGFkZCBwb3B1cCB3 aGVuIGdlb21ldHJ5IGhhcyBwcm9wZXJ0aWVzCi0gICAgZ2V0UG9wdXBDb250ZW50ID0gZnVuY3Rp b24gKGdlb2pzb24pIHsKLSAgICAgIGxldCBnZW9tZXRyeSA9IHNlbGVjdGVkR2VvbWV0cmllc1tn ZW9KU09Ocy5pbmRleE9mKGdlb2pzb24pXTsKLSAgICAgIGxldCBpdGVtID0gZ2VvbWV0cnlJdGVt TWFwLmdldChnZW9tZXRyeSk7Ci0gICAgICByZXR1cm4gaXRlbVRvVGFibGUoaXRlbSwgY29sdW1u cywgY29sdW1uSW5kZXgpOwotICAgIH07Ci0gIH0KLQotICBpZiAobWl4ZWRTUklEKSB7Ci0gICAg aW5mb0xpc3QucHVzaChnZXR0ZXh0KCdHZW9tZXRyaWVzIHdpdGggbm9uLVNSSUQgJXMgbm90IHJl bmRlcmVkLicsIHNlbGVjdGVkU1JJRCkpOwotICB9Ci0KLSAgcmV0dXJuIHsKLSAgICAnZ2VvSlNP TnMnOiBnZW9KU09OcywKLSAgICAnc2VsZWN0ZWRTUklEJzogc2VsZWN0ZWRTUklELAotICAgICdn ZXRQb3B1cENvbnRlbnQnOiBnZXRQb3B1cENvbnRlbnQsCi0gICAgJ2luZm9MaXN0JzogaW5mb0xp c3QsCi0gIH07Ci19Ci0KLWZ1bmN0aW9uIGl0ZW1Ub1RhYmxlKGl0ZW0sIGNvbHVtbnMsIGlnbm9y ZWRDb2x1bW5JbmRleCkgewotICBsZXQgY29udGVudCA9ICc8dGFibGUgY2xhc3M9InRhYmxlIHRh YmxlLWJvcmRlcmVkIHRhYmxlLXN0cmlwZWQgdmlldy1nZW9tZXRyeS1wcm9wZXJ0eS10YWJsZSI+ PHRib2R5Pic7Ci0KLSAgLy8gc3RhcnQgZnJvbSAxIGJlY2F1c2UgY29sdW1uc1swXSBpcyBlbXB0 eQotICBmb3IgKGxldCBpID0gMTsgaSA8IGNvbHVtbnMubGVuZ3RoOyBpKyspIHsKLSAgICBpZiAo aSAhPT0gaWdub3JlZENvbHVtbkluZGV4KSB7Ci0gICAgICBsZXQgY29sdW1uRGVmID0gY29sdW1u c1tpXTsKLSAgICAgIGNvbnRlbnQgKz0gJzx0cj48dGg+JyArIGNvbHVtbkRlZi5kaXNwbGF5X25h bWUgKyAnPC90aD4nOwotCi0gICAgICBsZXQgdmFsdWUgPSBpdGVtW2NvbHVtbkRlZi5maWVsZF07 Ci0gICAgICBpZiAoXy5pc1VuZGVmaW5lZCh2YWx1ZSkgJiYgY29sdW1uRGVmLmhhc19kZWZhdWx0 X3ZhbCkgewotICAgICAgICBjb250ZW50ICs9ICc8dGQgY2xhc3M9InRkLWRpc2FibGVkIj5bZGVm YXVsdF08L3RkPic7Ci0gICAgICB9IGVsc2UgaWYgKChfLmlzVW5kZWZpbmVkKHZhbHVlKSAmJiBj b2x1bW5EZWYubm90X251bGwpIHx8Ci0gICAgICAgIChfLmlzVW5kZWZpbmVkKHZhbHVlKSB8fCB2 YWx1ZSA9PT0gbnVsbCkpIHsKLSAgICAgICAgY29udGVudCArPSAnPHRkIGNsYXNzPSJ0ZC1kaXNh YmxlZCI+W251bGxdPC90ZD4nOwotICAgICAgfSBlbHNlIHsKLSAgICAgICAgY29udGVudCArPSAn PHRkPicgKyB2YWx1ZSArICc8L3RkPic7Ci0gICAgICB9Ci0KLSAgICAgIGNvbnRlbnQgKz0gJzwv dHI+JzsKLSAgICB9Ci0gIH0KLSAgY29udGVudCArPSAnPC90Ym9keT48L3RhYmxlPic7Ci0gIHJl dHVybiBjb250ZW50OwotfQotCi1mdW5jdGlvbiBnZW5lcmF0ZUluZm9Db250ZW50KGluZm9MaXN0 KSB7Ci0gIHJldHVybiBpbmZvTGlzdC5qb2luKCc8YnI+Jyk7Ci19Ci0KLW1vZHVsZS5leHBvcnRz ID0gR2VvbWV0cnlWaWV3ZXI7CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9zdGF0aWMvanMvc3Fs ZWRpdG9yL2hpc3RvcnkvaGlzdG9yeV9jb2xsZWN0aW9uLmpzIGIvd2ViL3BnYWRtaW4vc3RhdGlj L2pzL3NxbGVkaXRvci9oaXN0b3J5L2hpc3RvcnlfY29sbGVjdGlvbi5qcwpkZWxldGVkIGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggNjQ3ZDFkODI5Li4wMDAwMDAwMDAKLS0tIGEvd2ViL3BnYWRtaW4v c3RhdGljL2pzL3NxbGVkaXRvci9oaXN0b3J5L2hpc3RvcnlfY29sbGVjdGlvbi5qcworKysgL2Rl di9udWxsCkBAIC0xLDQwICswLDAgQEAKLS8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLS8vCi0vLyBwZ0FkbWluIDQgLSBQb3N0Z3Jl U1FMIFRvb2xzCi0vLwotLy8gQ29weXJpZ2h0IChDKSAyMDEzIC0gMjAyMiwgVGhlIHBnQWRtaW4g RGV2ZWxvcG1lbnQgVGVhbQotLy8gVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciB0aGUg UG9zdGdyZVNRTCBMaWNlbmNlCi0vLwotLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLQotZXhwb3J0IGRlZmF1bHQgY2xhc3MgSGlz dG9yeUNvbGxlY3Rpb24gewotCi0gIGNvbnN0cnVjdG9yKGhpc3RvcnlfbW9kZWwpIHsKLSAgICB0 aGlzLmhpc3RvcnlMaXN0ID0gXy5zb3J0QnkoaGlzdG9yeV9tb2RlbCwgbz0+by5zdGFydF90aW1l KTsKLSAgICB0aGlzLm9uQWRkKCgpID0+IHsvKlRoaXMgaXMgaW50ZW50aW9uYWwgKFNvbmFyUXVi ZSkqL30pOwotICB9Ci0KLSAgbGVuZ3RoKCkgewotICAgIHJldHVybiB0aGlzLmhpc3RvcnlMaXN0 Lmxlbmd0aDsKLSAgfQotCi0gIGFkZChvYmplY3QpIHsKLSAgICAvKiBhZGQgb2JqZWN0IGluIHNv cnRlZCBvcmRlciAqLwotICAgIGxldCBwdXNoQXQgPSBfLnNvcnRlZEluZGV4KHRoaXMuaGlzdG9y eUxpc3QsIG9iamVjdCwgbz0+by5zdGFydF90aW1lKTsKLSAgICB0aGlzLmhpc3RvcnlMaXN0LnNw bGljZShwdXNoQXQsIDAsIG9iamVjdCk7Ci0gICAgdGhpcy5vbkFkZEhhbmRsZXIob2JqZWN0KTsK LSAgfQotCi0gIHJlc2V0KCkgewotICAgIHRoaXMuaGlzdG9yeUxpc3QgPSBbXTsKLSAgICB0aGlz Lm9uUmVzZXRIYW5kbGVyKHRoaXMuaGlzdG9yeUxpc3QpOwotICB9Ci0KLSAgb25BZGQob25BZGRI YW5kbGVyKSB7Ci0gICAgdGhpcy5vbkFkZEhhbmRsZXIgPSBvbkFkZEhhbmRsZXI7Ci0gIH0KLQot ICBvblJlc2V0KG9uUmVzZXRIYW5kbGVyKSB7Ci0gICAgdGhpcy5vblJlc2V0SGFuZGxlciA9IG9u UmVzZXRIYW5kbGVyOwotICB9Ci19CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9zdGF0aWMvanMv c3FsZWRpdG9yL2hpc3RvcnkvcXVlcnlfaGlzdG9yeS5qcyBiL3dlYi9wZ2FkbWluL3N0YXRpYy9q cy9zcWxlZGl0b3IvaGlzdG9yeS9xdWVyeV9oaXN0b3J5LmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEw MDY0NAppbmRleCBlOGU0ZTRkNDUuLjAwMDAwMDAwMAotLS0gYS93ZWIvcGdhZG1pbi9zdGF0aWMv anMvc3FsZWRpdG9yL2hpc3RvcnkvcXVlcnlfaGlzdG9yeS5qcworKysgL2Rldi9udWxsCkBAIC0x LDk2ICswLDAgQEAKLWltcG9ydCBRdWVyeUhpc3RvcnlEZXRhaWxzIGZyb20gJy4vcXVlcnlfaGlz dG9yeV9kZXRhaWxzJzsKLWltcG9ydCB7IFF1ZXJ5SGlzdG9yeUVudHJpZXMgfSBmcm9tICcuL3F1 ZXJ5X2hpc3RvcnlfZW50cmllcyc7Ci1pbXBvcnQgU3BsaXQgZnJvbSAnc3BsaXQuanMnOwotaW1w b3J0IGdldHRleHQgZnJvbSAnc291cmNlcy9nZXR0ZXh0JzsKLWltcG9ydCAkIGZyb20gJ2pxdWVy eSc7Ci0KLWV4cG9ydCBkZWZhdWx0IGNsYXNzIFF1ZXJ5SGlzdG9yeSB7Ci0gIGNvbnN0cnVjdG9y KHBhcmVudE5vZGUsIGhpc3RNb2RlbCkgewotICAgIHRoaXMucGFyZW50Tm9kZSA9IHBhcmVudE5v ZGU7Ci0gICAgdGhpcy5oaXN0Q29sbGVjdGlvbiA9IGhpc3RNb2RlbDsKLSAgICB0aGlzLmVkaXRv clByZWYgPSB7fTsKLQotICAgIHRoaXMub25Db3B5VG9FZGl0b3JIYW5kbGVyID0gKCk9PnsvKlRo aXMgaXMgaW50ZW50aW9uYWwgKFNvbmFyUXViZSkqL307Ci0gICAgdGhpcy5oaXN0Q29sbGVjdGlv bi5vbkFkZCh0aGlzLm9uQWRkRW50cnkuYmluZCh0aGlzKSk7Ci0gICAgdGhpcy5oaXN0Q29sbGVj dGlvbi5vblJlc2V0KHRoaXMub25SZXNldEVudHJpZXMuYmluZCh0aGlzKSk7Ci0gIH0KLQotICBm b2N1cygpIHsKLSAgICBpZiAodGhpcy5xdWVyeUhpc3RFbnRyaWVzKSB7Ci0gICAgICB0aGlzLnF1 ZXJ5SGlzdEVudHJpZXMuZm9jdXMoKTsKLSAgICB9Ci0gIH0KLQotICBvbkFkZEVudHJ5KGVudHJ5 KSB7Ci0gICAgaWYgKHRoaXMuaGlzdENvbGxlY3Rpb24ubGVuZ3RoKCkgPT0gMSkgewotICAgICAg dGhpcy5yZW5kZXIoKTsKLSAgICB9IGVsc2UgaWYgKHRoaXMucXVlcnlIaXN0RW50cmllcykgewot ICAgICAgdGhpcy5xdWVyeUhpc3RFbnRyaWVzLmFkZEVudHJ5KGVudHJ5KTsKLSAgICB9Ci0gIH0K LQotICBvblJlc2V0RW50cmllcygpIHsKLSAgICB0aGlzLmlzUmVuZGVyZWQgPSBmYWxzZTsKLSAg ICB0aGlzLnF1ZXJ5SGlzdEVudHJpZXMgPSBudWxsOwotICAgIHRoaXMucXVlcnlIaXN0RGV0YWls cyA9IG51bGw7Ci0gICAgdGhpcy5yZW5kZXIoKTsKLSAgfQotCi0gIG9uQ29weVRvRWRpdG9yQ2xp Y2sob25Db3B5VG9FZGl0b3JIYW5kbGVyKSB7Ci0gICAgdGhpcy5vbkNvcHlUb0VkaXRvckhhbmRs ZXIgPSBvbkNvcHlUb0VkaXRvckhhbmRsZXI7Ci0KLSAgICBpZih0aGlzLnF1ZXJ5SGlzdERldGFp bHMpIHsKLSAgICAgIHRoaXMucXVlcnlIaXN0RGV0YWlscy5vbkNvcHlUb0VkaXRvckNsaWNrKHRo aXMub25Db3B5VG9FZGl0b3JIYW5kbGVyKTsKLSAgICB9Ci0gIH0KLQotICBzZXRFZGl0b3JQcmVm KGVkaXRvclByZWYpIHsKLSAgICB0aGlzLmVkaXRvclByZWYgPSB7Ci0gICAgICAuLi50aGlzLmVk aXRvclByZWYsCi0gICAgICAuLi5lZGl0b3JQcmVmLAotICAgIH07Ci0gICAgaWYodGhpcy5xdWVy eUhpc3REZXRhaWxzKSB7Ci0gICAgICB0aGlzLnF1ZXJ5SGlzdERldGFpbHMuc2V0RWRpdG9yUHJl Zih0aGlzLmVkaXRvclByZWYpOwotICAgIH0KLSAgfQotCi0gIHJlbmRlcigpIHsKLSAgICBpZiAo dGhpcy5oaXN0Q29sbGVjdGlvbi5sZW5ndGgoKSA9PSAwKSB7Ci0gICAgICB0aGlzLnBhcmVudE5v ZGUuZW1wdHkoKQotICAgICAgICAucmVtb3ZlQ2xhc3MoJ2QtZmxleCcpCi0gICAgICAgIC5hcHBl bmQoCi0gICAgICAgICAgJzxkaXYgcm9sZT0ic3RhdHVzIiBjbGFzcz0icGctcGFuZWwtbWVzc2Fn ZSI+JyArCi0gICAgICAgICAgICBnZXR0ZXh0KCdObyBoaXN0b3J5IGZvdW5kJykgKwotICAgICAg ICAgICc8L2Rpdj4nCi0gICAgICAgICk7Ci0gICAgfSBlbHNlIHsKLSAgICAgIHRoaXMucGFyZW50 Tm9kZS5lbXB0eSgpLmFkZENsYXNzKCdkLWZsZXgnKTsKLSAgICAgIGxldCAkaGlzdEVudHJpZXMg PSAkKCc8ZGl2PjxkaXY+JykuYXBwZW5kVG8odGhpcy5wYXJlbnROb2RlKTsKLSAgICAgIGxldCAk aGlzdERldGFpbHMgPSAkKCc8ZGl2PjxkaXY+JykuYXBwZW5kVG8odGhpcy5wYXJlbnROb2RlKTsK LQotICAgICAgU3BsaXQoWyRoaXN0RW50cmllc1swXSwgJGhpc3REZXRhaWxzWzBdXSwgewotICAg ICAgICBndXR0ZXJTaXplOiAxLAotICAgICAgICBjdXJzb3I6ICdldy1yZXNpemUnLAotICAgICAg fSk7Ci0KLSAgICAgICRoaXN0RGV0YWlscy5jc3MoJ292ZXJmbG93JywgJ2F1dG8nKTsKLQotICAg ICAgdGhpcy5xdWVyeUhpc3REZXRhaWxzID0gbmV3IFF1ZXJ5SGlzdG9yeURldGFpbHMoJGhpc3RE ZXRhaWxzKTsKLSAgICAgIHRoaXMucXVlcnlIaXN0RGV0YWlscy5zZXRFZGl0b3JQcmVmKHRoaXMu ZWRpdG9yUHJlZik7Ci0gICAgICB0aGlzLnF1ZXJ5SGlzdERldGFpbHMub25Db3B5VG9FZGl0b3JD bGljayh0aGlzLm9uQ29weVRvRWRpdG9ySGFuZGxlcik7Ci0gICAgICB0aGlzLnF1ZXJ5SGlzdERl dGFpbHMucmVuZGVyKCk7Ci0KLSAgICAgIHRoaXMucXVlcnlIaXN0RW50cmllcyA9IG5ldyBRdWVy eUhpc3RvcnlFbnRyaWVzKCRoaXN0RW50cmllcyk7Ci0gICAgICB0aGlzLnF1ZXJ5SGlzdEVudHJp ZXMub25TZWxlY3RlZENoYW5nZSgKLSAgICAgICAgKGVudHJ5ID0+IHsKLSAgICAgICAgICB0aGlz LnF1ZXJ5SGlzdERldGFpbHMuc2V0RW50cnkoZW50cnkpOwotICAgICAgICB9KS5iaW5kKHRoaXMp Ci0gICAgICApOwotICAgICAgdGhpcy5xdWVyeUhpc3RFbnRyaWVzLnJlbmRlcigpOwotCi0gICAg ICB0aGlzLmhpc3RDb2xsZWN0aW9uLmhpc3RvcnlMaXN0Lm1hcCgoZW50cnkpPT57Ci0gICAgICAg IHRoaXMucXVlcnlIaXN0RW50cmllcy5hZGRFbnRyeShlbnRyeSk7Ci0gICAgICB9KTsKLSAgICB9 Ci0gIH0KLX0KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL3N0YXRpYy9qcy9zcWxlZGl0b3IvaGlz dG9yeS9xdWVyeV9oaXN0b3J5X2RldGFpbHMuanMgYi93ZWIvcGdhZG1pbi9zdGF0aWMvanMvc3Fs ZWRpdG9yL2hpc3RvcnkvcXVlcnlfaGlzdG9yeV9kZXRhaWxzLmpzCmRlbGV0ZWQgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCBlNzdiNzEwOTcuLjAwMDAwMDAwMAotLS0gYS93ZWIvcGdhZG1pbi9zdGF0 aWMvanMvc3FsZWRpdG9yL2hpc3RvcnkvcXVlcnlfaGlzdG9yeV9kZXRhaWxzLmpzCisrKyAvZGV2 L251bGwKQEAgLTEsMjE2ICswLDAgQEAKLWltcG9ydCBDb2RlTWlycm9yIGZyb20gJ2J1bmRsZWRf Y29kZW1pcnJvcic7Ci1pbXBvcnQgY2xpcGJvYXJkIGZyb20gJ3NvdXJjZXMvc2VsZWN0aW9uL2Ns aXBib2FyZCc7Ci1pbXBvcnQgZ2V0dGV4dCBmcm9tICdzb3VyY2VzL2dldHRleHQnOwotaW1wb3J0 ICQgZnJvbSAnanF1ZXJ5JzsKLWltcG9ydCBfIGZyb20gJ3VuZGVyc2NvcmUnOwotCi1leHBvcnQg ZGVmYXVsdCBjbGFzcyBRdWVyeUhpc3RvcnlEZXRhaWxzIHsKLSAgY29uc3RydWN0b3IocGFyZW50 Tm9kZSkgewotICAgIHRoaXMucGFyZW50Tm9kZSA9IHBhcmVudE5vZGU7Ci0gICAgdGhpcy5pc0Nv cGllZCA9IGZhbHNlOwotICAgIHRoaXMudGltZW91dCA9IG51bGw7Ci0gICAgdGhpcy5pc1JlbmRl cmVkID0gZmFsc2U7Ci0gICAgdGhpcy5zcWxGb250U2l6ZSA9IG51bGw7Ci0gICAgdGhpcy5vbkNv cHlUb0VkaXRvckhhbmRsZXIgPSAoKT0+ey8qVGhpcyBpcyBpbnRlbnRpb25hbCAoU29uYXJRdWJl KSovfTsKLQotICAgIHRoaXMuZWRpdG9yUHJlZiA9IHsKLSAgICAgICdzcWxfZm9udF9zaXplJzog JzFlbScsCi0gICAgICAnY29weV90b19lZGl0b3InOiB0cnVlLAotICAgIH07Ci0gIH0KLQotICBz ZXRFbnRyeShlbnRyeSkgewotICAgIHRoaXMuZW50cnkgPSBlbnRyeTsKLSAgICBpZiAodGhpcy5p c1JlbmRlcmVkKSB7Ci0gICAgICB0aGlzLnNlbGVjdGl2ZVJlbmRlcigpOwotICAgIH0gZWxzZSB7 Ci0gICAgICB0aGlzLnJlbmRlcigpOwotICAgIH0KLSAgfQotCi0gIHNldEVkaXRvclByZWYoZWRp dG9yUHJlZj17fSkgewotICAgIHRoaXMuZWRpdG9yUHJlZiA9IHsKLSAgICAgIC4uLnRoaXMuZWRp dG9yUHJlZiwKLSAgICAgIC4uLmVkaXRvclByZWYsCi0gICAgfTsKLQotICAgIGlmKHRoaXMucXVl cnlfY29kZW1pcnJvciAmJiAhXy5pc1VuZGVmaW5lZChlZGl0b3JQcmVmLnNxbF9mb250X3NpemUp KSB7Ci0gICAgICAkKHRoaXMucXVlcnlfY29kZW1pcnJvci5nZXRXcmFwcGVyRWxlbWVudCgpKS5j c3MoCi0gICAgICAgICdmb250LXNpemUnLHRoaXMuZWRpdG9yUHJlZi5zcWxfZm9udF9zaXplCi0g ICAgICApOwotCi0gICAgICB0aGlzLnF1ZXJ5X2NvZGVtaXJyb3IucmVmcmVzaCgpOwotICAgIH0K LQotICAgIGlmKHRoaXMuJGNvcHlUb0VkaXRvciAmJiAhXy5pc1VuZGVmaW5lZChlZGl0b3JQcmVm LmNvcHlfdG9fZWRpdG9yKSkgewotICAgICAgaWYoZWRpdG9yUHJlZi5jb3B5X3RvX2VkaXRvcikg ewotICAgICAgICB0aGlzLiRjb3B5VG9FZGl0b3IucmVtb3ZlQ2xhc3MoJ2Qtbm9uZScpOwotICAg ICAgfSBlbHNlIHsKLSAgICAgICAgdGhpcy4kY29weVRvRWRpdG9yLmFkZENsYXNzKCdkLW5vbmUn KTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLQotICBwYXJzZUVycm9yTWVzc2FnZShtZXNzYWdlKSB7 Ci0gICAgcmV0dXJuIG1lc3NhZ2UubWF0Y2goL0VSUk9SOlxzKihbXlxuXHJdKikvaSkKLSAgICAg ID8gbWVzc2FnZS5tYXRjaCgvRVJST1I6XHMqKFteXG5ccl0qKS9pKVsxXQotICAgICAgOiBtZXNz YWdlOwotICB9Ci0KLSAgZm9ybWF0RGF0ZShkYXRlKSB7Ci0gICAgcmV0dXJuIGRhdGUudG9Mb2Nh bGVEYXRlU3RyaW5nKCkgKyAnICcgKyBkYXRlLnRvTG9jYWxlVGltZVN0cmluZygpOwotICB9Ci0K LSAgY29weUFsbEhhbmRsZXIoKSB7Ci0gICAgY2xpcGJvYXJkLmNvcHlUZXh0VG9DbGlwYm9hcmQo dGhpcy5lbnRyeS5xdWVyeSk7Ci0KLSAgICB0aGlzLmNsZWFyUHJldmlvdXNUaW1lb3V0KCk7Ci0K LSAgICB0aGlzLnVwZGF0ZUNvcHlCdXR0b24odHJ1ZSk7Ci0KLSAgICB0aGlzLnRpbWVvdXQgPSBz ZXRUaW1lb3V0KCgpID0+IHsKLSAgICAgIHRoaXMudXBkYXRlQ29weUJ1dHRvbihmYWxzZSk7Ci0g ICAgfSwgMTUwMCk7Ci0gIH0KLQotICBvbkNvcHlUb0VkaXRvckNsaWNrKG9uQ29weVRvRWRpdG9y SGFuZGxlcikgewotICAgIHRoaXMub25Db3B5VG9FZGl0b3JIYW5kbGVyID0gb25Db3B5VG9FZGl0 b3JIYW5kbGVyOwotICB9Ci0KLSAgY2xlYXJQcmV2aW91c1RpbWVvdXQoKSB7Ci0gICAgaWYgKHRo aXMudGltZW91dCkgewotICAgICAgY2xlYXJUaW1lb3V0KHRoaXMudGltZW91dCk7Ci0gICAgICB0 aGlzLnRpbWVvdXQgPSBudWxsOwotICAgIH0KLSAgfQotCi0gIHVwZGF0ZUNvcHlCdXR0b24oY29w aWVkKSB7Ci0gICAgaWYgKGNvcGllZCkgewotICAgICAgdGhpcy4kY29weUJ0bi5hZGRDbGFzcygn d2FzLWNvcGllZCcpLnJlbW92ZUNsYXNzKCdjb3B5LWFsbCcpOwotICAgICAgdGhpcy4kY29weUJ0 bi50ZXh0KGdldHRleHQoJ0NvcGllZCEnKSk7Ci0gICAgfSBlbHNlIHsKLSAgICAgIHRoaXMuJGNv cHlCdG4uYWRkQ2xhc3MoJ2NvcHktYWxsJykucmVtb3ZlQ2xhc3MoJ3dhcy1jb3BpZWQnKTsKLSAg ICAgIHRoaXMuJGNvcHlCdG4udGV4dChnZXR0ZXh0KCdDb3B5JykpOwotICAgIH0KLSAgfQotCi0g IHVwZGF0ZVF1ZXJ5TWV0YURhdGEoKSB7Ci0gICAgbGV0IGl0ZW1UZW1wbGF0ZSA9IChkYXRhLCBk ZXNjcmlwdGlvbikgPT4gewotICAgICAgaWYoZGF0YSkKLSAgICAgICAgcmV0dXJuIGA8ZGl2IGNs YXNzPSdpdGVtJz4KLSAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSd2YWx1ZSc+JHtkYXRh fTwvc3Bhbj4KLSAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSdkZXNjcmlwdGlvbic+JHtk ZXNjcmlwdGlvbn08L3NwYW4+Ci0gICAgICAgICAgICAgIDwvZGl2PmA7Ci0gICAgICBlbHNlCi0g ICAgICAgIHJldHVybiAnJzsKLSAgICB9OwotCi0gICAgdGhpcy4kbWV0YURhdGEuZW1wdHkoKS5h cHBlbmQoCi0gICAgICAnPGRpdiBjbGFzcz0ibWV0YWRhdGEiPicgKwotICAgICAgaXRlbVRlbXBs YXRlKHRoaXMuZm9ybWF0RGF0ZSh0aGlzLmVudHJ5LnN0YXJ0X3RpbWUpLCBnZXR0ZXh0KCdEYXRl JykpICsKLSAgICAgIGl0ZW1UZW1wbGF0ZSgKLSAgICAgICAgdGhpcy5lbnRyeS5yb3dfYWZmZWN0 ZWQudG9Mb2NhbGVTdHJpbmcoKSwKLSAgICAgICAgZ2V0dGV4dCgnUm93cyBBZmZlY3RlZCcpCi0g ICAgICApICsKLSAgICAgIGl0ZW1UZW1wbGF0ZSh0aGlzLmVudHJ5LnRvdGFsX3RpbWUsIGdldHRl eHQoJ0R1cmF0aW9uJykpICsKLSAgICAgICc8L2Rpdj4nCi0gICAgKTsKLSAgfQotCi0gIHVwZGF0 ZU1lc3NhZ2VDb250ZW50KCkgewotICAgIHRoaXMuJG1lc3NhZ2VfY29udGVudAotICAgICAgLmVt cHR5KCkKLSAgICAgIC5hcHBlbmQoYDxwcmUgY2xhc3M9J2NvbnRlbnQtdmFsdWUnPiR7Xy5lc2Nh cGUodGhpcy5lbnRyeS5tZXNzYWdlKX08L3ByZT5gKTsKLSAgfQotCi0gIHVwZGF0ZUVycm9yTWVz c2FnZSgpIHsKLSAgICBpZiAoIXRoaXMuZW50cnkuc3RhdHVzKSB7Ci0gICAgICB0aGlzLiRlcnJN c2dCbG9jay5yZW1vdmVDbGFzcygnZC1ub25lJyk7Ci0gICAgICB0aGlzLiRlcnJNc2dCbG9jay5l bXB0eSgpLmFwcGVuZCgKLSAgICAgICAgYDxkaXYgY2xhc3M9J2hpc3RvcnktZXJyb3ItdGV4dCc+ Ci0gICAgICAgICAgICA8c3Bhbj5gICsgZ2V0dGV4dCgnRXJyb3IgTWVzc2FnZScpICsgYDwvc3Bh bj4gJHtfLmVzY2FwZSh0aGlzLnBhcnNlRXJyb3JNZXNzYWdlKHRoaXMuZW50cnkubWVzc2FnZSkp fQotICAgICAgICA8L2Rpdj5gCi0gICAgICApOwotICAgIH0gZWxzZSB7Ci0gICAgICB0aGlzLiRl cnJNc2dCbG9jay5hZGRDbGFzcygnZC1ub25lJyk7Ci0gICAgICB0aGlzLiRlcnJNc2dCbG9jay5l bXB0eSgpOwotICAgIH0KLSAgfQotCi0gIHVwZGF0ZUluZm9NZXNzYWdlKCkgewotICAgIGlmICh0 aGlzLmVudHJ5LmluZm8pIHsKLSAgICAgIHRoaXMuJGluZm9Nc2dCbG9jay5yZW1vdmVDbGFzcygn ZC1ub25lJyk7Ci0gICAgICB0aGlzLiRpbmZvTXNnQmxvY2suZW1wdHkoKS5hcHBlbmQoCi0gICAg ICAgIGA8ZGl2IGNsYXNzPSdoaXN0b3J5LWluZm8tdGV4dCc+Ci0gICAgICAgICAgICAke3RoaXMu ZW50cnkuaW5mb30KLSAgICAgICAgPC9kaXY+YAotICAgICAgKTsKLSAgICB9IGVsc2UgewotICAg ICAgdGhpcy4kaW5mb01zZ0Jsb2NrLmFkZENsYXNzKCdkLW5vbmUnKTsKLSAgICAgIHRoaXMuJGlu Zm9Nc2dCbG9jay5lbXB0eSgpOwotICAgIH0KLSAgfQotCi0gIHNlbGVjdGl2ZVJlbmRlcigpIHsK LSAgICB0aGlzLnVwZGF0ZUVycm9yTWVzc2FnZSgpOwotICAgIHRoaXMudXBkYXRlSW5mb01lc3Nh Z2UoKTsKLSAgICB0aGlzLnVwZGF0ZUNvcHlCdXR0b24oZmFsc2UpOwotICAgIHRoaXMudXBkYXRl UXVlcnlNZXRhRGF0YSgpOwotICAgIHRoaXMucXVlcnlfY29kZW1pcnJvci5zZXRWYWx1ZSh0aGlz LmVudHJ5LnF1ZXJ5KTsKLSAgICB0aGlzLnVwZGF0ZU1lc3NhZ2VDb250ZW50KCk7Ci0gIH0KLQot ICByZW5kZXIoKSB7Ci0gICAgaWYgKHRoaXMuZW50cnkpIHsKLSAgICAgIHRoaXMucGFyZW50Tm9k ZS5lbXB0eSgpLmFwcGVuZCgKLSAgICAgICAgYDxkaXYgaWQ9J3F1ZXJ5X2RldGFpbCcgY2xhc3M9 J3F1ZXJ5LWRldGFpbCc+Ci0gICAgICAgICAgICA8ZGl2IGNsYXNzPSdlcnJvci1tZXNzYWdlLWJs b2NrJz48L2Rpdj4KLSAgICAgICAgICAgIDxkaXYgY2xhc3M9J2luZm8tbWVzc2FnZS1ibG9jayc+ PC9kaXY+Ci0gICAgICAgICAgICA8ZGl2IGNsYXNzPSdtZXRhZGF0YS1ibG9jayc+PC9kaXY+Ci0g ICAgICAgICAgICA8ZGl2IGNsYXNzPSdxdWVyeS1zdGF0ZW1lbnQtYmxvY2snPgotICAgICAgICAg ICAgICA8ZGl2IGlkPSdoaXN0b3J5LWRldGFpbC1xdWVyeSc+Ci0gICAgICAgICAgICAgICAgPGJ1 dHRvbiBjbGFzcz0nYnRuLWNvcHknIHRhYmluZGV4PTAgYWNjZXNza2V5PSd5Jz48L2J1dHRvbj4K LSAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSdidG4tY29weS1lZGl0b3IgY29weS10by1l ZGl0b3InIHRhYmluZGV4PTAgYWNjZXNza2V5PSd5Jz5gICsgZ2V0dGV4dCgnQ29weSB0byBRdWVy eSBFZGl0b3InKSArIGA8L2J1dHRvbj4KLSAgICAgICAgICAgICAgICA8ZGl2PjwvZGl2PgotICAg ICAgICAgICAgICA8L2Rpdj4KLSAgICAgICAgICAgIDwvZGl2PgotICAgICAgICAgICAgPGRpdj4K LSAgICAgICAgICAgICAgPGhyIGNsYXNzPSdibG9jay1kaXZpZGVyJy8+Ci0gICAgICAgICAgICA8 L2Rpdj4KLSAgICAgICAgICAgIDxkaXYgY2xhc3M9J21lc3NhZ2UtYmxvY2snPgotICAgICAgICAg ICAgICA8ZGl2IGNsYXNzPSdtZXNzYWdlJz4KLSAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSdt ZXNzYWdlLWhlYWRlcic+YCArIGdldHRleHQoJ01lc3NhZ2VzJykgKyBgPC9kaXY+Ci0gICAgICAg ICAgICAgICAgPGRpdiBjbGFzcz0nY29udGVudCc+PC9kaXY+Ci0gICAgICAgICAgICAgIDwvZGl2 PgotICAgICAgICAgICAgPC9kaXY+Ci0gICAgICAgIDwvZGl2PmAKLSAgICAgICk7Ci0KLSAgICAg IHRoaXMuJGVyck1zZ0Jsb2NrID0gdGhpcy5wYXJlbnROb2RlLmZpbmQoJy5lcnJvci1tZXNzYWdl LWJsb2NrJyk7Ci0gICAgICB0aGlzLiRpbmZvTXNnQmxvY2sgPSB0aGlzLnBhcmVudE5vZGUuZmlu ZCgnLmluZm8tbWVzc2FnZS1ibG9jaycpOwotICAgICAgdGhpcy4kY29weUJ0biA9IHRoaXMucGFy ZW50Tm9kZS5maW5kKCcjaGlzdG9yeS1kZXRhaWwtcXVlcnkgLmJ0bi1jb3B5Jyk7Ci0gICAgICB0 aGlzLiRjb3B5QnRuLm9mZignY2xpY2snKS5vbignY2xpY2snLCB0aGlzLmNvcHlBbGxIYW5kbGVy LmJpbmQodGhpcykpOwotICAgICAgdGhpcy4kY29weVRvRWRpdG9yID0gdGhpcy5wYXJlbnROb2Rl LmZpbmQoJyNoaXN0b3J5LWRldGFpbC1xdWVyeSAuYnRuLWNvcHktZWRpdG9yJyk7Ci0gICAgICB0 aGlzLiRjb3B5VG9FZGl0b3Iub2ZmKCdjbGljaycpLm9uKCdjbGljaycsICgpID0+IHsKLSAgICAg ICAgdGhpcy5vbkNvcHlUb0VkaXRvckhhbmRsZXIodGhpcy5lbnRyeS5xdWVyeSk7Ci0gICAgICB9 KTsKLSAgICAgIHRoaXMuJGNvcHlUb0VkaXRvci5hZGRDbGFzcyh0aGlzLmVkaXRvclByZWYuY29w eV90b19lZGl0b3I/Jyc6J2Qtbm9uZScpOwotICAgICAgdGhpcy4kbWV0YURhdGEgPSB0aGlzLnBh cmVudE5vZGUuZmluZCgnLm1ldGFkYXRhLWJsb2NrJyk7Ci0gICAgICB0aGlzLnF1ZXJ5X2NvZGVt aXJyb3IgPSBDb2RlTWlycm9yKAotICAgICAgICB0aGlzLnBhcmVudE5vZGUuZmluZCgnI2hpc3Rv cnktZGV0YWlsLXF1ZXJ5IGRpdicpWzBdLAotICAgICAgICB7Ci0gICAgICAgICAgdGFiaW5kZXg6 IC0xLAotICAgICAgICAgIG1vZGU6ICd0ZXh0L3gtcGdzcWwnLAotICAgICAgICAgIHJlYWRPbmx5 OiB0cnVlLAotICAgICAgICB9Ci0gICAgICApOwotICAgICAgJCh0aGlzLnF1ZXJ5X2NvZGVtaXJy b3IuZ2V0V3JhcHBlckVsZW1lbnQoKSkuY3NzKAotICAgICAgICAnZm9udC1zaXplJyx0aGlzLmVk aXRvclByZWYuc3FsX2ZvbnRfc2l6ZQotICAgICAgKTsKLSAgICAgIHRoaXMuJG1lc3NhZ2VfY29u dGVudCA9IHRoaXMucGFyZW50Tm9kZS5maW5kKCcubWVzc2FnZS1ibG9jayAuY29udGVudCcpOwot Ci0gICAgICB0aGlzLmlzUmVuZGVyZWQgPSB0cnVlOwotICAgICAgdGhpcy5zZWxlY3RpdmVSZW5k ZXIoKTsKLSAgICB9Ci0gIH0KLX0KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL3N0YXRpYy9qcy9z cWxlZGl0b3IvaGlzdG9yeS9xdWVyeV9oaXN0b3J5X2VudHJpZXMuanMgYi93ZWIvcGdhZG1pbi9z dGF0aWMvanMvc3FsZWRpdG9yL2hpc3RvcnkvcXVlcnlfaGlzdG9yeV9lbnRyaWVzLmpzCmRlbGV0 ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0MWQ1Y2MzMTAuLjAwMDAwMDAwMAotLS0gYS93ZWIv cGdhZG1pbi9zdGF0aWMvanMvc3FsZWRpdG9yL2hpc3RvcnkvcXVlcnlfaGlzdG9yeV9lbnRyaWVz LmpzCisrKyAvZGV2L251bGwKQEAgLTEsMjk2ICswLDAgQEAKLWltcG9ydCBtb21lbnQgZnJvbSAn bW9tZW50JzsKLWltcG9ydCAkIGZyb20gJ2pxdWVyeSc7Ci1pbXBvcnQgXyBmcm9tICd1bmRlcnNj b3JlJzsKLWltcG9ydCAnYm9vdHN0cmFwLnRvZ2dsZSc7Ci1pbXBvcnQgZ2V0dGV4dCBmcm9tICdz b3VyY2VzL2dldHRleHQnOwotCi1jb25zdCBBUlJPV1VQID0gMzg7Ci1jb25zdCBBUlJPV0RPV04g PSA0MDsKLQotZXhwb3J0IGNsYXNzIFF1ZXJ5SGlzdG9yeUVudHJ5RGF0ZUdyb3VwIHsKLSAgY29u c3RydWN0b3IoZGF0ZSwgZ3JvdXBLZXkpIHsKLSAgICB0aGlzLmRhdGUgPSBkYXRlOwotICAgIHRo aXMuZm9ybWF0U3RyaW5nID0gJ01NTSBERCBZWVlZJzsKLSAgICB0aGlzLmdyb3VwS2V5ID0gZ3Jv dXBLZXk7Ci0gIH0KLQotICBnZXREYXRlUHJlZml4KCkgewotICAgIGxldCBwcmVmaXggPSAnJzsK LSAgICBpZiAodGhpcy5pc0RheXNCZWZvcmUoMCkpIHsKLSAgICAgIHByZWZpeCA9ICdUb2RheSAt ICc7Ci0gICAgfSBlbHNlIGlmICh0aGlzLmlzRGF5c0JlZm9yZSgxKSkgewotICAgICAgcHJlZml4 ID0gJ1llc3RlcmRheSAtICc7Ci0gICAgfQotICAgIHJldHVybiBwcmVmaXg7Ci0gIH0KLQotICBn ZXREYXRlRm9ybWF0dGVkKGRhdGUpIHsKLSAgICByZXR1cm4gZGF0ZS50b0xvY2FsZURhdGVTdHJp bmcoKTsKLSAgfQotCi0gIGlzRGF5c0JlZm9yZShiZWZvcmUpIHsKLSAgICByZXR1cm4gKAotICAg ICAgdGhpcy5nZXREYXRlRm9ybWF0dGVkKHRoaXMuZGF0ZSkgPT09Ci0gICAgICB0aGlzLmdldERh dGVGb3JtYXR0ZWQobW9tZW50KCkuc3VidHJhY3QoYmVmb3JlLCAnZGF5cycpLnRvRGF0ZSgpKQot ICAgICk7Ci0gIH0KLQotICByZW5kZXIoKSB7Ci0gICAgcmV0dXJuICQoYDxkaXYgY2xhc3M9J3F1 ZXJ5LWdyb3VwJyBkYXRhLWtleT0nJHt0aGlzLmdyb3VwS2V5fSc+Ci0gICAgICAgICAgICA8ZGl2 IGNsYXNzPSdkYXRlLWxhYmVsJz4ke3RoaXMuZ2V0RGF0ZVByZWZpeCgpfSR7dGhpcy5nZXREYXRl Rm9ybWF0dGVkKHRoaXMuZGF0ZSl9PC9kaXY+Ci0gICAgICAgICAgICA8dWwgY2xhc3M9J3F1ZXJ5 LWVudHJpZXMnPjwvdWw+Ci0gICAgICAgIDwvZGl2PmApOwotICB9Ci19Ci0KLWV4cG9ydCBjbGFz cyBRdWVyeUhpc3RvcnlJdGVtIHsKLSAgY29uc3RydWN0b3IoZW50cnkpIHsKLSAgICB0aGlzLmVu dHJ5ID0gZW50cnk7Ci0gICAgdGhpcy4kZWwgPSBudWxsOwotICAgIHRoaXMub25DbGlja0hhbmRs ZXIgPSBudWxsOwotICB9Ci0KLSAgb25DbGljayhvbkNsaWNrSGFuZGxlcikgewotICAgIHRoaXMu b25DbGlja0hhbmRsZXIgPSBvbkNsaWNrSGFuZGxlcjsKLSAgICBpZiAodGhpcy4kZWwpIHsKLSAg ICAgIHRoaXMuJGVsLm9mZignY2xpY2snKS5vbignY2xpY2snLCBlID0+IHsKLSAgICAgICAgdGhp cy5vbkNsaWNrSGFuZGxlcigkKGUuY3VycmVudFRhcmdldCkpOwotICAgICAgfSk7Ci0gICAgfQot ICB9Ci0KLSAgZm9ybWF0RGF0ZShkYXRlKSB7Ci0gICAgcmV0dXJuIG1vbWVudChkYXRlKS5mb3Jt YXQoJ0hIOm1tOnNzJyk7Ci0gIH0KLQotICBkYXRhS2V5KCkgewotICAgIHJldHVybiB0aGlzLmZv cm1hdERhdGUodGhpcy5lbnRyeS5zdGFydF90aW1lKTsKLSAgfQotCi0gIHJlbmRlcihpc19wZ2Fk bWluX3F1ZXJpZXNfc2hvd24pIHsKLSAgICB0aGlzLiRlbCA9ICQoCi0gICAgICBgPGxpIGNsYXNz PSdsaXN0LWl0ZW0nIHRhYmluZGV4PScwJyBkYXRhLWtleT0nJHt0aGlzLmRhdGFLZXkoKX0nPgot ICAgICAgICAgIDxkaXYgY2xhc3M9J2VudHJ5ICR7dGhpcy5lbnRyeS5zdGF0dXMgPyAnJyA6ICdl cnJvcid9Jz4KLSAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ncXVlcnknPgotICAgICAgICAgICAg ICAgICAgPHNwYW4gaWQ9InF1ZXJ5X3NvdXJjZV9pY29uIiBjbGFzcz0icXVlcnktaGlzdG9yeS1p Y29uIHNxbC1pY29uLWxnIj48L3NwYW4+Ci0gICAgICAgICAgICAgICAgICAke18uZXNjYXBlKHRo aXMuZW50cnkucXVlcnkpfQotICAgICAgICAgICAgICA8L2Rpdj4KLSAgICAgICAgICAgICAgPGRp diBjbGFzcz0nb3RoZXItaW5mbyc+Ci0gICAgICAgICAgICAgIDxkaXYgY2xhc3M9J3RpbWVzdGFt cCc+JHt0aGlzLmZvcm1hdERhdGUodGhpcy5lbnRyeS5zdGFydF90aW1lKX08L2Rpdj4KLSAgICAg ICAgICAgICAgPC9kaXY+Ci0gICAgICAgICAgPC9kaXY+Ci0gICAgICA8L2xpPmAKLSAgICApCi0g ICAgICAuZGF0YSgnZW50cnlkYXRhJywgdGhpcy5lbnRyeSkKLSAgICAgIC5vbignY2xpY2snLCBl ID0+IHsKLSAgICAgICAgdGhpcy5vbkNsaWNrSGFuZGxlcigkKGUuY3VycmVudFRhcmdldCkpOwot ICAgICAgfSk7Ci0KLSAgICBsZXQgcXVlcnlfc291cmNlID0gdGhpcy5lbnRyeS5xdWVyeV9zb3Vy Y2U7Ci0gICAgaWYocXVlcnlfc291cmNlKQotICAgICAgdGhpcy4kZWwuZmluZCgnI3F1ZXJ5X3Nv dXJjZV9pY29uJykKLSAgICAgICAgLmFkZENsYXNzKHF1ZXJ5X3NvdXJjZS5JQ09OX0NTU19DTEFT UykKLSAgICAgICAgLmF0dHIoJ3JvbGUnLCAnaW1nJyk7Ci0KLSAgICBpZih0aGlzLmVudHJ5Lmlz X3BnYWRtaW5fcXVlcnkpIHsKLSAgICAgIHRoaXMuJGVsLmFkZENsYXNzKCdwZ2FkbWluLXF1ZXJ5 LWhpc3RvcnktZW50cnknKTsKLSAgICAgIGlmKCFpc19wZ2FkbWluX3F1ZXJpZXNfc2hvd24pCi0g ICAgICAgIHRoaXMuJGVsLmFkZENsYXNzKCdkLW5vbmUnKTsKLSAgICB9Ci0gIH0KLX0KLQotZXhw b3J0IGNsYXNzIFF1ZXJ5SGlzdG9yeUVudHJpZXMgewotICBjb25zdHJ1Y3RvcihwYXJlbnROb2Rl KSB7Ci0gICAgdGhpcy5wYXJlbnROb2RlID0gcGFyZW50Tm9kZTsKLSAgICB0aGlzLiRzZWxlY3Rl ZEl0ZW0gPSBudWxsOwotICAgIHRoaXMuZ3JvdXBLZXlGb3JtYXQgPSAnWVlZWSBNTSBERCc7Ci0K LSAgICB0aGlzLiRlbCA9IG51bGw7Ci0gICAgdGhpcy5pc19wZ2FkbWluX3F1ZXJpZXNfc2hvd24g PSBudWxsOwotICB9Ci0KLSAgb25TZWxlY3RlZENoYW5nZShvblNlbGVjdGVkQ2hhbmdlSGFuZGxl cikgewotICAgIHRoaXMub25TZWxlY3RlZENoYW5nZUhhbmRsZXIgPSBvblNlbGVjdGVkQ2hhbmdl SGFuZGxlcjsKLSAgfQotCi0gIGZvY3VzKCkgewotICAgIGlmICghdGhpcy4kc2VsZWN0ZWRJdGVt KSB7Ci0gICAgICB0aGlzLnNldFNlbGVjdGVkTGlzdEl0ZW0odGhpcy4kZW50cmllc0VsLmZpbmQo Jy5saXN0LWl0ZW0nKS5maXJzdCgpKTsKLSAgICB9Ci0gICAgdGhpcy4kc2VsZWN0ZWRJdGVtLnRy aWdnZXIoJ2NsaWNrJyk7Ci0gICAgdGhpcy4kZW50cmllc0VsLmZvY3VzKCk7Ci0gIH0KLQotICBp c0Fycm93RG93bihldmVudCkgewotICAgIHJldHVybiAoZXZlbnQua2V5Q29kZSB8fCBldmVudC53 aGljaCkgPT09IEFSUk9XRE9XTjsKLSAgfQotCi0gIGlzQXJyb3dVcChldmVudCkgewotICAgIHJl dHVybiAoZXZlbnQua2V5Q29kZSB8fCBldmVudC53aGljaCkgPT09IEFSUk9XVVA7Ci0gIH0KLQot ICBuYXZpZ2F0ZVVwQW5kRG93bihldmVudCkgewotICAgIGxldCBhcnJvd0tleXMgPSBbQVJST1dV UCwgQVJST1dET1dOXTsKLSAgICBsZXQga2V5ID0gZXZlbnQua2V5Q29kZSB8fCBldmVudC53aGlj aDsKLSAgICBpZiAoYXJyb3dLZXlzLmluZGV4T2Yoa2V5KSA+IC0xKSB7Ci0gICAgICBldmVudC5w cmV2ZW50RGVmYXVsdCgpOwotICAgICAgdGhpcy5vbktleURvd25IYW5kbGVyKGV2ZW50KTsKLSAg ICAgIHJldHVybiBmYWxzZTsKLSAgICB9Ci0gICAgcmV0dXJuIHRydWU7Ci0gIH0KLQotICBvbktl eURvd25IYW5kbGVyKGV2ZW50KSB7Ci0gICAgaWYgKHRoaXMuaXNBcnJvd0Rvd24oZXZlbnQpKSB7 Ci0gICAgICBpZiAodGhpcy4kc2VsZWN0ZWRJdGVtLm5leHQoKS5sZW5ndGggPiAwKSB7Ci0gICAg ICAgIHRoaXMuc2V0U2VsZWN0ZWRMaXN0SXRlbSh0aGlzLiRzZWxlY3RlZEl0ZW0ubmV4dCgpKTsK LSAgICAgIH0gZWxzZSB7Ci0gICAgICAgIC8qIGlmIGxhc3QsIGp1bXAgdG8gbmV4dCBncm91cCAq LwotICAgICAgICBsZXQgJGdyb3VwID0gdGhpcy4kc2VsZWN0ZWRJdGVtLmNsb3Nlc3QoJy5xdWVy eS1ncm91cCcpOwotICAgICAgICBpZiAoJGdyb3VwLm5leHQoKS5sZW5ndGggPiAwKSB7Ci0gICAg ICAgICAgdGhpcy5zZXRTZWxlY3RlZExpc3RJdGVtKAotICAgICAgICAgICAgJGdyb3VwLm5leHQo KS5maW5kKCcubGlzdC1pdGVtJykuZmlyc3QoKQotICAgICAgICAgICk7Ci0gICAgICAgIH0KLSAg ICAgIH0KLSAgICB9IGVsc2UgaWYgKHRoaXMuaXNBcnJvd1VwKGV2ZW50KSkgewotICAgICAgaWYg KHRoaXMuJHNlbGVjdGVkSXRlbS5wcmV2KCkubGVuZ3RoID4gMCkgewotICAgICAgICB0aGlzLnNl dFNlbGVjdGVkTGlzdEl0ZW0odGhpcy4kc2VsZWN0ZWRJdGVtLnByZXYoKSk7Ci0gICAgICB9IGVs c2UgewotICAgICAgICAvKiBpZiBmaXJzdCwganVtcCB0byBwcmV2IGdyb3VwICovCi0gICAgICAg IGxldCAkZ3JvdXAgPSB0aGlzLiRzZWxlY3RlZEl0ZW0uY2xvc2VzdCgnLnF1ZXJ5LWdyb3VwJyk7 Ci0gICAgICAgIGlmICgkZ3JvdXAucHJldigpLmxlbmd0aCA+IDApIHsKLSAgICAgICAgICB0aGlz LnNldFNlbGVjdGVkTGlzdEl0ZW0oCi0gICAgICAgICAgICAkZ3JvdXAucHJldigpLmZpbmQoJy5s aXN0LWl0ZW0nKS5sYXN0KCkKLSAgICAgICAgICApOwotICAgICAgICB9Ci0gICAgICB9Ci0gICAg fQotICB9Ci0KLSAgb25TZWxlY3RMaXN0SXRlbShldmVudCkgewotICAgIHRoaXMuc2V0U2VsZWN0 ZWRMaXN0SXRlbSgkKGV2ZW50LmN1cnJlbnRUYXJnZXQpKTsKLSAgfQotCi0gIGRhdGVBc0dyb3Vw S2V5KGRhdGUpIHsKLSAgICByZXR1cm4gbW9tZW50KGRhdGUpLmZvcm1hdCh0aGlzLmdyb3VwS2V5 Rm9ybWF0KTsKLSAgfQotCi0gIHNldFNlbGVjdGVkTGlzdEl0ZW0oJGxpc3RJdGVtKSB7Ci0gICAg aWYgKHRoaXMuJHNlbGVjdGVkSXRlbSkgewotICAgICAgdGhpcy4kc2VsZWN0ZWRJdGVtLnJlbW92 ZUNsYXNzKCdzZWxlY3RlZCcpOwotICAgIH0KLSAgICAkbGlzdEl0ZW0uYWRkQ2xhc3MoJ3NlbGVj dGVkJyk7Ci0gICAgdGhpcy4kc2VsZWN0ZWRJdGVtID0gJGxpc3RJdGVtOwotCi0gICAgdGhpcy4k c2VsZWN0ZWRJdGVtWzBdLnNjcm9sbEludG9WaWV3KHtibG9jazogJ2NlbnRlcid9KTsKLQotICAg IGlmICh0aGlzLm9uU2VsZWN0ZWRDaGFuZ2VIYW5kbGVyKSB7Ci0gICAgICB0aGlzLm9uU2VsZWN0 ZWRDaGFuZ2VIYW5kbGVyKHRoaXMuJHNlbGVjdGVkSXRlbS5kYXRhKCdlbnRyeWRhdGEnKSk7Ci0g ICAgfQotICB9Ci0KLSAgYWRkRW50cnkoZW50cnkpIHsKLSAgICAvKiBBZGQgdGhlIGVudHJ5IGlu IHJlc3BlY3RpdmUgZGF0ZSBncm91cCBpbiBkZXNjZW5kaW5nIHNvcnRlZCBvcmRlci4gKi8KLSAg ICBsZXQgZ3JvdXBzID0gdGhpcy4kZW50cmllc0VsLmZpbmQoJy5xdWVyeS1ncm91cCcpOwotICAg IGxldCBncm91cHNLZXlzID0gJC5tYXAoZ3JvdXBzLCBncm91cCA9PiB7Ci0gICAgICByZXR1cm4g JChncm91cCkuYXR0cignZGF0YS1rZXknKTsKLSAgICB9KTsKLSAgICBsZXQgZW50cnlHcm91cEtl eSA9IHRoaXMuZGF0ZUFzR3JvdXBLZXkoZW50cnkuc3RhcnRfdGltZSk7Ci0gICAgbGV0IGdyb3Vw SWR4ID0gXy5pbmRleE9mKGdyb3Vwc0tleXMsIGVudHJ5R3JvdXBLZXkpOwotCi0gICAgbGV0ICRn cm91cEVsID0gbnVsbDsKLSAgICAvKiBpZiBubyBncm91cHMgcHJlc2VudCAqLwotICAgIGlmIChn cm91cHMubGVuZ3RoID09IDApIHsKLSAgICAgICRncm91cEVsID0gbmV3IFF1ZXJ5SGlzdG9yeUVu dHJ5RGF0ZUdyb3VwKAotICAgICAgICBlbnRyeS5zdGFydF90aW1lLAotICAgICAgICBlbnRyeUdy b3VwS2V5Ci0gICAgICApLnJlbmRlcigpOwotICAgICAgdGhpcy4kZW50cmllc0VsLnByZXBlbmQo JGdyb3VwRWwpOwotICAgIH0gZWxzZSBpZiAoZ3JvdXBJZHggPCAwICYmIGdyb3Vwcy5sZW5ndGgg IT0gMCkgewotICAgICAgLyogaWYgZ3JvdXBzIGFyZSBwcmVzZW50LCBidXQgdGhpcyBpcyBhIG5l dyBncm91cCAqLwotICAgICAgJGdyb3VwRWwgPSBuZXcgUXVlcnlIaXN0b3J5RW50cnlEYXRlR3Jv dXAoCi0gICAgICAgIGVudHJ5LnN0YXJ0X3RpbWUsCi0gICAgICAgIGVudHJ5R3JvdXBLZXkKLSAg ICAgICkucmVuZGVyKCk7Ci0KLSAgICAgIGxldCBpPTA7Ci0gICAgICB3aGlsZShpPGdyb3Vwc0tl eXMubGVuZ3RoKXsKLSAgICAgICAgaWYoZW50cnlHcm91cEtleSA+IGdyb3Vwc0tleXNbaV0pIHsK LSAgICAgICAgICAkZ3JvdXBFbC5pbnNlcnRCZWZvcmUoZ3JvdXBzW2ldKTsKLSAgICAgICAgICBi cmVhazsKLSAgICAgICAgfQotICAgICAgICBpKys7Ci0gICAgICB9Ci0gICAgICBpZihpID09IGdy b3Vwc0tleXMubGVuZ3RoKSB7Ci0gICAgICAgIHRoaXMuJGVudHJpZXNFbC5hcHBlbmQoJGdyb3Vw RWwpOwotICAgICAgfQotICAgIH0gZWxzZSBpZiAoZ3JvdXBJZHggPj0gMCkgewotICAgICAgLyog aWYgdGhlIGdyb3VwIGlzIHByZXNlbnQgKi8KLSAgICAgICRncm91cEVsID0gJChncm91cHNbZ3Jv dXBJZHhdKTsKLSAgICB9Ci0KLSAgICBsZXQgbmV3SXRlbSA9IG5ldyBRdWVyeUhpc3RvcnlJdGVt KGVudHJ5KTsKLSAgICBuZXdJdGVtLm9uQ2xpY2sodGhpcy5zZXRTZWxlY3RlZExpc3RJdGVtLmJp bmQodGhpcykpOwotICAgIG5ld0l0ZW0ucmVuZGVyKHRoaXMuaXNfcGdhZG1pbl9xdWVyaWVzX3No b3duKTsKLQotICAgIGlmICghXy5pc1VuZGVmaW5lZCgkZ3JvdXBFbCkpewotICAgICAgbGV0IGVu dHJpZXMgPSAkZ3JvdXBFbC5maW5kKCcucXVlcnktZW50cmllcycpLmZpbmQoJy5saXN0LWl0ZW0n KTsKLSAgICAgIGxldCBpPTA7Ci0gICAgICBpZihlbnRyaWVzLmxlbmd0aCA+IDApCi0gICAgICB7 Ci0gICAgICAgIHdoaWxlKGk8ZW50cmllcy5sZW5ndGgpewotICAgICAgICAgIGlmKG5ld0l0ZW0u JGVsLmF0dHIoJ2RhdGEta2V5JykgPiAkKGVudHJpZXNbaV0pLmF0dHIoJ2RhdGEta2V5JykpIHsK LSAgICAgICAgICAgICQobmV3SXRlbS4kZWwpLmluc2VydEJlZm9yZShlbnRyaWVzW2ldKTsKLSAg ICAgICAgICAgIGJyZWFrOwotICAgICAgICAgIH1lbHNlewotICAgICAgICAgICAgJChuZXdJdGVt LiRlbCkuaW5zZXJ0QWZ0ZXIoZW50cmllc1tpXSk7Ci0gICAgICAgICAgfQotICAgICAgICAgIGkr KzsKLSAgICAgICAgfQotICAgICAgfSBlbHNlewotICAgICAgICAkZ3JvdXBFbC5maW5kKCcucXVl cnktZW50cmllcycpLmFwcGVuZChuZXdJdGVtLiRlbCk7Ci0gICAgICB9Ci0gICAgfQotICAgIHRo aXMuc2V0U2VsZWN0ZWRMaXN0SXRlbShuZXdJdGVtLiRlbCk7Ci0gIH0KLQotICB0b2dnbGVHZW5l cmF0ZWRRdWVyaWVzKCkgewotICAgIHRoaXMuJGVsLmZpbmQoJy5wZ2FkbWluLXF1ZXJ5LWhpc3Rv cnktZW50cnknKS5lYWNoKGZ1bmN0aW9uKCkgewotICAgICAgJCh0aGlzKS50b2dnbGVDbGFzcygn ZC1ub25lJyk7Ci0gICAgfSk7Ci0gICAgdGhpcy5pc19wZ2FkbWluX3F1ZXJpZXNfc2hvd24gPSAh dGhpcy5pc19wZ2FkbWluX3F1ZXJpZXNfc2hvd247Ci0gIH0KLQotICByZW5kZXIoKSB7Ci0gICAg bGV0IHNlbGYgPSB0aGlzOwotICAgIHNlbGYuJGVsID0gJChgCi0gICAgICAgIDxkaXYgY2xhc3M9 InRvZ2dsZS1hbmQtaGlzdG9yeS1jb250YWluZXIiPgotICAgICAgICAgICAgPGRpdiBjbGFzcz0i cXVlcnktaGlzdG9yeS10b2dnbGUiPgotICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz0iY29u dHJvbC1sYWJlbCIgZm9yPSJnZW5lcmF0ZWQtcXVlcmllcy10b2dnbGUiPgotICAgICAgICAgICAg ICAgICAgICBgICsgZ2V0dGV4dCgnU2hvdyBxdWVyaWVzIGdlbmVyYXRlZCBpbnRlcm5hbGx5IGJ5 IHBnQWRtaW4/JykgKyBgCi0gICAgICAgICAgICAgICAgPC9sYWJlbD4KLSAgICAgICAgICAgICAg ICA8aW5wdXQgaWQ9ImdlbmVyYXRlZC1xdWVyaWVzLXRvZ2dsZSIgdHlwZT0iY2hlY2tib3giCi0g ICAgICAgICAgICAgICAgICBjbGFzcz0icGdhZG1pbi1jb250cm9scyIgZGF0YS1zdHlsZT0icXVp Y2siCi0gICAgICAgICAgICAgICAgICBkYXRhLXNpemU9Im1pbmkiIGRhdGEtb249ImAgKyBnZXR0 ZXh0KCdZZXMnKSArICciIGRhdGEtb2ZmPSInICsgZ2V0dGV4dCgnTm8nKSArIGAiCi0gICAgICAg ICAgICAgICAgICBkYXRhLW9uc3R5bGU9InN1Y2Nlc3MiIGRhdGEtb2Zmc3R5bGU9InRlcm5hcnki IGNoZWNrZWQ+Ci0gICAgICAgICAgICA8L2Rpdj4KLSAgICAgICAgICAgIDxkaXYgaWQ9J3F1ZXJ5 X2xpc3QnIGNsYXNzPSdxdWVyeS1oaXN0b3J5JyB0YWJpbmRleD0nMCc+PC9kaXY+Ci0gICAgICAg IDwvZGl2PgotICAgIGApOwotCi0gICAgc2VsZi4kZW50cmllc0VsID0gc2VsZi4kZWwuZmluZCgn I3F1ZXJ5X2xpc3QnKTsKLSAgICBzZWxmLiRlbnRyaWVzRWwub24oJ2tleWRvd24nLCB0aGlzLm5h dmlnYXRlVXBBbmREb3duLmJpbmQodGhpcykpOwotCi0gICAgc2VsZi5pc19wZ2FkbWluX3F1ZXJp ZXNfc2hvd24gPSB0cnVlOwotCi0gICAgc2VsZi4kZWwuZmluZCgnI2dlbmVyYXRlZC1xdWVyaWVz LXRvZ2dsZScpLmJvb3RzdHJhcFRvZ2dsZSgpLmNoYW5nZSgKLSAgICAgIGZ1bmN0aW9uKCkgewot ICAgICAgICBzZWxmLnRvZ2dsZUdlbmVyYXRlZFF1ZXJpZXMoKTsKLSAgICAgIH0KLSAgICApOwot Ci0gICAgc2VsZi5wYXJlbnROb2RlLmVtcHR5KCkuYXBwZW5kKHNlbGYuJGVsKTsKLSAgfQotfQpk aWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vc3RhdGljL2pzL3NxbGVkaXRvci9oaXN0b3J5L3F1ZXJ5 X3NvdXJjZXMuanMgYi93ZWIvcGdhZG1pbi9zdGF0aWMvanMvc3FsZWRpdG9yL2hpc3RvcnkvcXVl cnlfc291cmNlcy5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTNlM2EzNzkyLi4w MDAwMDAwMDAKLS0tIGEvd2ViL3BnYWRtaW4vc3RhdGljL2pzL3NxbGVkaXRvci9oaXN0b3J5L3F1 ZXJ5X3NvdXJjZXMuanMKKysrIC9kZXYvbnVsbApAQCAtMSwzNSArMCwwIEBACi0vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi0vLwot Ly8gcGdBZG1pbiA0IC0gUG9zdGdyZVNRTCBUb29scwotLy8KLS8vIENvcHlyaWdodCAoQykgMjAx MyAtIDIwMjIsIFRoZSBwZ0FkbWluIERldmVsb3BtZW50IFRlYW0KLS8vIFRoaXMgc29mdHdhcmUg aXMgcmVsZWFzZWQgdW5kZXIgdGhlIFBvc3RncmVTUUwgTGljZW5jZQotLy8KLS8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi0KLS8q IFRoaXMgZmlsZSBjb250YWlucyB0aGUgc291cmNlIG9mIHRoZSBxdWVyaWVzIGluIHRoZSBoaXN0 b3J5IGFuZCB0aGVpcgotICAgcmVzcGVjdGl2ZSBpY29ucyBjc3MgY2xhc3NlcyAqLwotCi1leHBv cnQgY29uc3QgUXVlcnlTb3VyY2VzID0gewotICBFWEVDVVRFOiB7Ci0gICAgSUNPTl9DU1NfQ0xB U1M6ICdmYSBmYS1wbGF5JywKLSAgfSwKLSAgRVhQTEFJTjogewotICAgIElDT05fQ1NTX0NMQVNT OiAnZmEgZmEtaGFuZC1wb2ludGVyJywKLSAgfSwKLSAgRVhQTEFJTl9BTkFMWVpFOiB7Ci0gICAg SUNPTl9DU1NfQ0xBU1M6ICdmYSBmYS1saXN0LWFsdCcsCi0gIH0sCi0gIENPTU1JVDogewotICAg IElDT05fQ1NTX0NMQVNTOiAncGctZm9udC1pY29uIGljb24tY29tbWl0JywKLSAgfSwKLSAgUk9M TEJBQ0s6IHsKLSAgICBJQ09OX0NTU19DTEFTUzogJ3BnLWZvbnQtaWNvbiBpY29uLXJvbGxiYWNr JywKLSAgfSwKLSAgU0FWRV9EQVRBOiB7Ci0gICAgSUNPTl9DU1NfQ0xBU1M6ICdwZy1mb250LWlj b24gaWNvbi1zYXZlX2RhdGFfY2hhbmdlcycsCi0gIH0sCi0gIFZJRVdfREFUQTogewotICAgIElD T05fQ1NTX0NMQVNTOiAncGctZm9udC1pY29uIHBpY29uLXZpZXdfZGF0YScsCi0gIH0sCi19Owpk aWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vc3RhdGljL2pzL3NxbGVkaXRvci9tYWNyby5qcyBiL3dl Yi9wZ2FkbWluL3N0YXRpYy9qcy9zcWxlZGl0b3IvbWFjcm8uanMKZGVsZXRlZCBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IGZmNDcwYzlkNS4uMDAwMDAwMDAwCi0tLSBhL3dlYi9wZ2FkbWluL3N0YXRp Yy9qcy9zcWxlZGl0b3IvbWFjcm8uanMKKysrIC9kZXYvbnVsbApAQCAtMSwzNDEgKzAsMCBAQAot Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLwotLy8KLS8vIHBnQWRtaW4gNCAtIFBvc3RncmVTUUwgVG9vbHMKLS8vCi0vLyBDb3B5cmln aHQgKEMpIDIwMTMgLSAyMDIyLCBUaGUgcGdBZG1pbiBEZXZlbG9wbWVudCBUZWFtCi0vLyBUaGlz IHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIHRoZSBQb3N0Z3JlU1FMIExpY2VuY2UKLS8vCi0v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLwotCi1pbXBvcnQgZ2V0dGV4dCBmcm9tICdzb3VyY2VzL2dldHRleHQnOwotaW1wb3J0IHVy bF9mb3IgZnJvbSAnc291cmNlcy91cmxfZm9yJzsKLWltcG9ydCAkIGZyb20gJ2pxdWVyeSc7Ci1p bXBvcnQgXyBmcm9tICd1bmRlcnNjb3JlJzsKLWltcG9ydCBBbGVydGlmeSBmcm9tICdwZ2FkbWlu LmFsZXJ0aWZ5anMnOwotaW1wb3J0IHBnQWRtaW4gZnJvbSAnc291cmNlcy9wZ2FkbWluJzsKLWlt cG9ydCBCYWNrZm9ybSBmcm9tICdwZ2FkbWluLmJhY2tmb3JtJzsKLWltcG9ydCBtYWNyb01vZGVs IGZyb20gJ3NvdXJjZXMvc3FsZWRpdG9yL21hY3JvX21vZGVsJzsKLWltcG9ydCBheGlvcyBmcm9t ICdheGlvcyc7Ci1pbXBvcnQgTm90aWZ5IGZyb20gJy4uLy4uLy4uL3N0YXRpYy9qcy9oZWxwZXJz L05vdGlmaWVyJzsKLQotbGV0IE1hY3JvRGlhbG9nID0gewotICAnZGlhbG9nJzogZnVuY3Rpb24o aGFuZGxlcikgewotICAgIGxldCB0aXRsZSA9IGdldHRleHQoJ01hbmFnZSBNYWNyb3MnKTsKLQot ICAgIC8vIENoZWNrIHRoZSBhbGVydGlmeSBkaWFsb2cgYWxyZWFkeSBsb2FkZWQgdGhlbiBkZWxl dGUgaXQgdG8gY2xlYXIKLSAgICAvLyB0aGUgY2FjaGUKLSAgICBpZiAoQWxlcnRpZnkubWFjcm9E aWFsb2cpIHsKLSAgICAgIGRlbGV0ZSBBbGVydGlmeS5tYWNyb0RpYWxvZzsKLSAgICB9Ci0KLSAg ICAvLyBDcmVhdGUgRGlhbG9nCi0gICAgQWxlcnRpZnkuZGlhbG9nKCdtYWNyb0RpYWxvZycsIGZ1 bmN0aW9uIGZhY3RvcnkoKSB7Ci0gICAgICBsZXQgJGNvbnRhaW5lciA9ICQoJzxkaXYgY2xhc3M9 XCdtYWNyb19kaWFsb2dcJz48L2Rpdj4nKTsKLSAgICAgIHJldHVybiB7Ci0gICAgICAgIG1haW46 IGZ1bmN0aW9uKCkgewotICAgICAgICAgIHRoaXMuc2V0KCd0aXRsZScsICc8aSBjbGFzcz0iZmEg ZmEtc2Nyb2xsIHNxbC1pY29uLWxnIiBhcmlhLWhpZGRlbj0idHJ1ZSIgcm9sZT0iaW1nIj48L2k+ ICcgKyBnZXR0ZXh0KCdNYW5hZ2UgTWFjcm9zJykpOwotICAgICAgICB9LAotICAgICAgICBidWls ZDogZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgdGhpcy5lbGVtZW50cy5jb250ZW50LmFwcGVuZENo aWxkKCRjb250YWluZXIuZ2V0KDApKTsKLSAgICAgICAgICBBbGVydGlmeS5wZ0RpYWxvZ0J1aWxk LmFwcGx5KHRoaXMpOwotICAgICAgICB9LAotICAgICAgICBzZXR1cDogZnVuY3Rpb24oKSB7Ci0g ICAgICAgICAgcmV0dXJuIHsKLSAgICAgICAgICAgIGJ1dHRvbnM6IFt7Ci0gICAgICAgICAgICAg IHRleHQ6ICcnLAotICAgICAgICAgICAgICBrZXk6IDExMiwKLSAgICAgICAgICAgICAgY2xhc3NO YW1lOiAnYnRuIGJ0bi1wcmltYXJ5LWljb24gcHVsbC1sZWZ0IGZhIGZhLXF1ZXN0aW9uIHBnLWFs ZXJ0aWZ5LWljb24tYnV0dG9uJywKLSAgICAgICAgICAgICAgYXR0cnM6IHsKLSAgICAgICAgICAg ICAgICBuYW1lOiAnZGlhbG9nX2hlbHAnLAotICAgICAgICAgICAgICAgIHR5cGU6ICdidXR0b24n LAotICAgICAgICAgICAgICAgIGxhYmVsOiBnZXR0ZXh0KCdIZWxwJyksCi0gICAgICAgICAgICAg ICAgJ2FyaWEtbGFiZWwnOiBnZXR0ZXh0KCdIZWxwJyksCi0gICAgICAgICAgICAgICAgdXJsOiB1 cmxfZm9yKCdoZWxwLnN0YXRpYycsIHsKLSAgICAgICAgICAgICAgICAgICdmaWxlbmFtZSc6ICdx dWVyeV90b29sLmh0bWwnLAotICAgICAgICAgICAgICAgIH0pLAotICAgICAgICAgICAgICB9LAot ICAgICAgICAgICAgfSwgewotICAgICAgICAgICAgICB0ZXh0OiBnZXR0ZXh0KCdDYW5jZWwnKSwK LSAgICAgICAgICAgICAga2V5OiAyNywKLSAgICAgICAgICAgICAgY2xhc3NOYW1lOiAnYnRuIGJ0 bi1zZWNvbmRhcnkgZmEgZmEtdGltZXMgcGctYWxlcnRpZnktYnV0dG9uJywKLSAgICAgICAgICAg ICAgJ2RhdGEtYnRuLW5hbWUnOiAnY2FuY2VsJywKLSAgICAgICAgICAgIH0sIHsKLSAgICAgICAg ICAgICAgdGV4dDogZ2V0dGV4dCgnU2F2ZScpLAotICAgICAgICAgICAgICBjbGFzc05hbWU6ICdi dG4gYnRuLXByaW1hcnkgZmEgZmEtc2F2ZSBwZy1hbGVydGlmeS1idXR0b24nLAotICAgICAgICAg ICAgICAnZGF0YS1idG4tbmFtZSc6ICdvaycsCi0gICAgICAgICAgICB9XSwKLSAgICAgICAgICAg IGZvY3VzOiB7Ci0gICAgICAgICAgICAgIGVsZW1lbnQ6IGZ1bmN0aW9uKCl7Ci0gICAgICAgICAg ICAgIC8qCi0gICAgICAgICAgICAgIHJldHVybmluZyBmYWxzZSB3aWxsIGZvY3VzIG5vdGhpbmcs IGJ1dCBpdCB3aWxsIG1ha2UKLSAgICAgICAgICAgICAgY29udGVudHMgYmVoaW5kIHRoZSBtb2Rh bCBhY2Nlc3NpYmxlIHZpYSBUYWIga2V5LAotICAgICAgICAgICAgICBzbyBmb2N1cyB0aGUgZGlh bG9nIGl0c2VsZiBpbnN0ZWFkLgotICAgICAgICAgICAgICAqLwotICAgICAgICAgICAgICAgIHJl dHVybiAkKHRoaXMuZWxlbWVudHMuZGlhbG9nKS5maW5kKCcuaGVhZGVyLWljb24tY2VsbCBidXR0 b24nKVswXTsKLSAgICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICAgc2VsZWN0OiB0cnVlLAot ICAgICAgICAgICAgfSwKLSAgICAgICAgICAgIC8vIFNldCBvcHRpb25zIGZvciBkaWFsb2cKLSAg ICAgICAgICAgIG9wdGlvbnM6IHsKLSAgICAgICAgICAgICAgdGl0bGU6IHRpdGxlLAotICAgICAg ICAgICAgICAvL2Rpc2FibGUgYm90aCBwYWRkaW5nIGFuZCBvdmVyZmxvdyBjb250cm9sLgotICAg ICAgICAgICAgICBwYWRkaW5nOiAhMSwKLSAgICAgICAgICAgICAgb3ZlcmZsb3c6ICExLAotICAg ICAgICAgICAgICBtb2RlbDogMCwKLSAgICAgICAgICAgICAgcmVzaXphYmxlOiB0cnVlLAotICAg ICAgICAgICAgICBtYXhpbWl6YWJsZTogdHJ1ZSwKLSAgICAgICAgICAgICAgcGlubmFibGU6IGZh bHNlLAotICAgICAgICAgICAgICBjbG9zYWJsZUJ5RGltbWVyOiBmYWxzZSwKLSAgICAgICAgICAg ICAgbW9kYWw6IGZhbHNlLAotICAgICAgICAgICAgICBhdXRvUmVzZXQ6IGZhbHNlLAotICAgICAg ICAgICAgfSwKLSAgICAgICAgICB9OwotICAgICAgICB9LAotICAgICAgICBob29rczogewotICAg ICAgICAvLyB0cmlnZ2VyZWQgd2hlbiB0aGUgZGlhbG9nIGlzIGNsb3NlZAotICAgICAgICAgIG9u Y2xvc2U6IGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgaWYgKHRoaXMudmlldykgewotICAgICAg ICAgICAgICB0aGlzLm1hY3JvQ29sbGVjdGlvbk1vZGVsLnN0b3BTZXNzaW9uKCk7Ci0gICAgICAg ICAgICAgIHRoaXMudmlldy5tb2RlbC5zdG9wU2Vzc2lvbigpOwotICAgICAgICAgICAgICB0aGlz LnZpZXcucmVtb3ZlKHsKLSAgICAgICAgICAgICAgICBkYXRhOiB0cnVlLAotICAgICAgICAgICAg ICAgIGludGVybmFsOiB0cnVlLAotICAgICAgICAgICAgICAgIHNpbGVudDogdHJ1ZSwKLSAgICAg ICAgICAgICAgfSk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgfSwKLSAgICAgICAgfSwKLSAg ICAgICAgcHJlcGFyZTogZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgbGV0IHNlbGYgPSB0aGlzOwot ICAgICAgICAgICRjb250YWluZXIuaHRtbCgnJyk7Ci0gICAgICAgICAgLy8gU3RhdHVzIGJhcgot ICAgICAgICAgIHRoaXMuc3RhdHVzQmFyID0gJCgKLSAgICAgICAgICAgICc8ZGl2IGNsYXNzPVwn cGctcHJvcC1zdGF0dXMtYmFyIHBnLWVsLXhzLTEyIGQtbm9uZVwnPicgKwotICAgICAgICAgICcg IDxkaXYgY2xhc3M9ImVycm9yLWluLWZvb3RlciI+ICcgKwotICAgICAgICAgICcgICAgPGRpdiBj bGFzcz0iZC1mbGV4IHB4LTIgcHktMSI+ICcgKwotICAgICAgICAgICcgICAgICA8ZGl2IGNsYXNz PSJwci0yIj4gJyArCi0gICAgICAgICAgJyAgICAgICAgPGkgY2xhc3M9ImZhIGZhLWV4Y2xhbWF0 aW9uLXRyaWFuZ2xlIHRleHQtZGFuZ2VyIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PC9pPiAnICsKLSAg ICAgICAgICAnICAgICAgPC9kaXY+ICcgKwotICAgICAgICAgICcgICAgICA8ZGl2IGNsYXNzPSJh bGVydC10ZXh0IiByb2xlPSJhbGVydCI+PC9kaXY+ICcgKwotICAgICAgICAgICcgICAgPC9kaXY+ ICcgKwotICAgICAgICAgICcgIDwvZGl2PiAnICsKLSAgICAgICAgICAnPC9kaXY+JykuYXBwZW5k VG8oJGNvbnRhaW5lcik7Ci0KLSAgICAgICAgICAvLyBUbyBzaG93IHByb2dyZXNzIG9uIGZpbHRl ciBTYXZpbmcvVXBkYXRpbmcgb24gQUpBWAotICAgICAgICAgIHRoaXMuc2hvd0ZpbHRlclByb2dy ZXNzID0gJCgKLSAgICAgICAgICAgIGA8ZGl2IGlkPSJzaG93X2ZpbHRlcl9wcm9ncmVzcyIgY2xh c3M9InBnLXNwLWNvbnRhaW5lciBzcWwtZWRpdG9yLWJ1c3ktZmV0Y2hpbmcgZC1ub25lIj4KLSAg ICAgICAgICAgICAgPGRpdiBjbGFzcz0icGctc3AtY29udGVudCI+Ci0gICAgICAgICAgICAgICAg ICA8ZGl2IGNsYXNzPSJyb3ciPjxkaXYgY2xhc3M9ImNvbC0xMiBwZy1zcC1pY29uIHNxbC1lZGl0 b3ItYnVzeS1pY29uIj48L2Rpdj48L2Rpdj4KLSAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9 InJvdyI+PGRpdiBjbGFzcz0iY29sLTEyIHBnLXNwLXRleHQgc3FsLWVkaXRvci1idXN5LXRleHQi PmAgKyBnZXR0ZXh0KCdMb2FkaW5nIGRhdGEuLi4nKSArIGA8L2Rpdj48L2Rpdj4KLSAgICAgICAg ICAgICAgPC9kaXY+Ci0gICAgICAgICAgPC9kaXY+YAotICAgICAgICAgICkuYXBwZW5kVG8oJGNv bnRhaW5lcik7Ci0KLSAgICAgICAgICBzZWxmLm1hY3JvQ29sbGVjdGlvbk1vZGVsID0gbWFjcm9N b2RlbChoYW5kbGVyLnRyYW5zSWQpOwotCi0gICAgICAgICAgbGV0IGZpZWxkcyA9IEJhY2tmb3Jt LmdlbmVyYXRlVmlld1NjaGVtYSgKLSAgICAgICAgICAgIG51bGwsIHNlbGYubWFjcm9Db2xsZWN0 aW9uTW9kZWwsICdlZGl0JywgbnVsbCwgbnVsbCwgdHJ1ZQotICAgICAgICAgICk7Ci0KLSAgICAg ICAgICBsZXQgTWFuYWdlTWFjcm9EaWFsb2cgPSBCYWNrZm9ybS5EaWFsb2cuZXh0ZW5kKHsKLSAg ICAgICAgICAgIHRlbXBsYXRlOiB7Ci0gICAgICAgICAgICAgICdwYW5lbCc6IF8udGVtcGxhdGUo Ci0gICAgICAgICAgICAgICAgJzxkaXYgcm9sZT0idGFicGFuZWwiIHRhYmluZGV4PSItMSIgY2xh c3M9InRhYi1wYW5lIDwlPWxhYmVsJT4gPCU9dGFiUGFuZWxDb2RlQ2xhc3MlPiBwZy1lbC1zbS0x MiBwZy1lbC1tZC0xMiBwZy1lbC1sZy0xMiBwZy1lbC0xMiBmYWRlIiBpZD0iPCU9Y0lkJT4iPjwv ZGl2PicKLSAgICAgICAgICAgICAgKSwKLSAgICAgICAgICAgIH0sCi0gICAgICAgICAgICByZW5k ZXI6IGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgICB0aGlzLmNsZWFudXAoKTsKLQotICAgICAg ICAgICAgICB2YXIgIG0gPSB0aGlzLm1vZGVsLAotICAgICAgICAgICAgICAgIGNvbnRyb2xzID0g dGhpcy5jb250cm9scywKLSAgICAgICAgICAgICAgICB0bXBscyA9IHRoaXMudGVtcGxhdGUsCi0g ICAgICAgICAgICAgICAgZGlhbG9nX29iaiA9IHRoaXMsCi0gICAgICAgICAgICAgICAgaWR4ID0g KHRoaXMudGFiSW5kZXggKiAxMDApLAotICAgICAgICAgICAgICAgIGV2YWxGID0gZnVuY3Rpb24o ZiwgZCwgbW9kZWwpIHsKLSAgICAgICAgICAgICAgICAgIHJldHVybiAoXy5pc0Z1bmN0aW9uKGYp ID8gISFmLmFwcGx5KGQsIFttb2RlbF0pIDogISFmKTsKLSAgICAgICAgICAgICAgICB9OwotCi0g ICAgICAgICAgICAgIHRoaXMuJGVsCi0gICAgICAgICAgICAgICAgLmVtcHR5KCkKLSAgICAgICAg ICAgICAgICAuYXR0cigncm9sZScsICd0YWJwYW5lbCcpCi0gICAgICAgICAgICAgICAgLmF0dHIo J2NsYXNzJywgXy5yZXN1bHQodGhpcywgJ3RhYlBhbmVsQ2xhc3NOYW1lJykpOwotICAgICAgICAg ICAgICBtLnBhbmVsRWwgPSB0aGlzLiRlbDsKLQotICAgICAgICAgICAgICB2YXIgdGFiQ29udGVu dCA9ICQoJzxkaXYgY2xhc3M9InRhYi1jb250ZW50IHBnLWVsLXNtLTEyIHBnLWVsLW1kLTEyIHBn LWVsLWxnLTEyIHBnLWVsLTEyIG1hY3JvLXRhYiI+PC9kaXY+JykKLSAgICAgICAgICAgICAgICAu YXBwZW5kVG8odGhpcy4kZWwpOwotCi0gICAgICAgICAgICAgIF8uZWFjaCh0aGlzLnNjaGVtYSwg ZnVuY3Rpb24obykgewotICAgICAgICAgICAgICAgIGlkeCsrOwotICAgICAgICAgICAgICAgIGlm ICghby52ZXJzaW9uX2NvbXBhdGlibGUgfHwgIWV2YWxGKG8udmlzaWJsZSwgbywgbSkpIHsKLSAg ICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAg ICAgdmFyIGVsID0gJCgodG1wbHNbJ3BhbmVsJ10pKF8uZXh0ZW5kKG8sIHsKLSAgICAgICAgICAg ICAgICAgICd0YWJJbmRleCc6IGlkeCwKLSAgICAgICAgICAgICAgICAgICd0YWJQYW5lbENvZGVD bGFzcyc6IG8udGFiUGFuZWxDb2RlQ2xhc3MgPyBvLnRhYlBhbmVsQ29kZUNsYXNzIDogJycsCi0g ICAgICAgICAgICAgICAgfSkpKQotICAgICAgICAgICAgICAgICAgLmFwcGVuZFRvKHRhYkNvbnRl bnQpCi0gICAgICAgICAgICAgICAgICAucmVtb3ZlQ2xhc3MoJ2NvbGxhcHNlJykuYWRkQ2xhc3Mo J2NvbGxhcHNlJyk7Ci0KLSAgICAgICAgICAgICAgICBvLmZpZWxkcy5lYWNoKGZ1bmN0aW9uKGYp IHsKLSAgICAgICAgICAgICAgICAgIHZhciBjbnRyID0gbmV3KGYuZ2V0KCdjb250cm9sJykpKHsK LSAgICAgICAgICAgICAgICAgICAgZmllbGQ6IGYsCi0gICAgICAgICAgICAgICAgICAgIG1vZGVs OiBtLAotICAgICAgICAgICAgICAgICAgICBkaWFsb2c6IGRpYWxvZ19vYmosCi0gICAgICAgICAg ICAgICAgICAgIHRhYkluZGV4OiBpZHgsCi0gICAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAg ICAgICAgICAgIGVsLmFwcGVuZChjbnRyLnJlbmRlcigpLiRlbCk7Ci0gICAgICAgICAgICAgICAg ICBjb250cm9scy5wdXNoKGNudHIpOwotICAgICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAg ICB9KTsKLQotICAgICAgICAgICAgICB0YWJDb250ZW50LmZpbmQoJy50YWItcGFuZScpLmZpcnN0 KCkuYWRkQ2xhc3MoJ2FjdGl2ZSBzaG93Jyk7Ci0KLSAgICAgICAgICAgICAgcmV0dXJuIHRoaXM7 Ci0gICAgICAgICAgICB9LAotICAgICAgICAgIH0pOwotCi0gICAgICAgICAgbGV0IHZpZXcgPSBz ZWxmLnZpZXcgPSBuZXcgTWFuYWdlTWFjcm9EaWFsb2coewotICAgICAgICAgICAgZWw6ICc8ZGl2 PjwvZGl2PicsCi0gICAgICAgICAgICBtb2RlbDogc2VsZi5tYWNyb0NvbGxlY3Rpb25Nb2RlbCwK LSAgICAgICAgICAgIHNjaGVtYTogZmllbGRzLAotICAgICAgICAgIH0pOwotCi0gICAgICAgICAg c2VsZi5tYWNyb0NvbGxlY3Rpb25Nb2RlbC5mZXRjaCh7Ci0gICAgICAgICAgICBzdWNjZXNzOiBm dW5jdGlvbigpIHsKLQotICAgICAgICAgICAgICAvLyBXZSBnb3QgdGhlIGxhdGVzdCBhdHRyaWJ1 dGVzIG9mIHRoZSBvYmplY3QuIFJlbmRlciB0aGUgdmlldwotICAgICAgICAgICAgICAvLyBub3cu Ci0gICAgICAgICAgICAgICRjb250YWluZXIuYXBwZW5kKHNlbGYudmlldy5yZW5kZXIoKS4kZWwp OwotICAgICAgICAgICAgICBzZWxmLl9faW50ZXJuYWwuYnV0dG9uc1syXS5lbGVtZW50LmRpc2Fi bGVkID0gdHJ1ZTsKLQotCi0gICAgICAgICAgICAgIC8vIEVuYWJsZS9kaXNhYmxlIHNhdmUgYnV0 dG9uIGFuZCBzaG93L2hpZGUgc3RhdHVzYmFyIGJhc2VkIG9uIHNlc3Npb24KLSAgICAgICAgICAg ICAgc2VsZi52aWV3Lmxpc3RlblRvKHNlbGYudmlldy5tb2RlbCwgJ3BnYWRtaW4tc2Vzc2lvbjpz dGFydCcsIGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgICAgIHNlbGYudmlldy5saXN0ZW5Ubyhz ZWxmLnZpZXcubW9kZWwsICdwZ2FkbWluLXNlc3Npb246aW52YWxpZCcsIGZ1bmN0aW9uKG1zZykg ewotICAgICAgICAgICAgICAgICAgc2VsZi5zdGF0dXNCYXIucmVtb3ZlQ2xhc3MoJ2Qtbm9uZScp OwotICAgICAgICAgICAgICAgICAgJChzZWxmLnN0YXR1c0Jhci5maW5kKCcuYWxlcnQtdGV4dCcp KS5odG1sKG1zZyk7Ci0gICAgICAgICAgICAgICAgICAvLyBEaXNhYmxlIE9rYXkgYnV0dG9uCi0g ICAgICAgICAgICAgICAgICBzZWxmLl9faW50ZXJuYWwuYnV0dG9uc1syXS5lbGVtZW50LmRpc2Fi bGVkID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICB9KTsKLQotICAgICAgICAgICAgICAgIHZpZXcu bGlzdGVuVG8oc2VsZi52aWV3Lm1vZGVsLCAncGdhZG1pbi1zZXNzaW9uOnZhbGlkJywgZnVuY3Rp b24oKSB7Ci0gICAgICAgICAgICAgICAgICBzZWxmLnN0YXR1c0Jhci5hZGRDbGFzcygnZC1ub25l Jyk7Ci0gICAgICAgICAgICAgICAgICAkKHNlbGYuc3RhdHVzQmFyLmZpbmQoJy5hbGVydC10ZXh0 JykpLmh0bWwoJycpOwotICAgICAgICAgICAgICAgICAgLy8gRW5hYmxlIE9rYXkgYnV0dG9uCi0g ICAgICAgICAgICAgICAgICBzZWxmLl9faW50ZXJuYWwuYnV0dG9uc1syXS5lbGVtZW50LmRpc2Fi bGVkID0gZmFsc2U7Ci0gICAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICAgIH0pOwotCi0g ICAgICAgICAgICAgIHZpZXcubGlzdGVuVG8oc2VsZi52aWV3Lm1vZGVsLCAncGdhZG1pbi1zZXNz aW9uOnN0b3AnLCBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgICAgICB2aWV3LnN0b3BMaXN0ZW5p bmcoc2VsZi52aWV3Lm1vZGVsLCAncGdhZG1pbi1zZXNzaW9uOmludmFsaWQnKTsKLSAgICAgICAg ICAgICAgICB2aWV3LnN0b3BMaXN0ZW5pbmcoc2VsZi52aWV3Lm1vZGVsLCAncGdhZG1pbi1zZXNz aW9uOnZhbGlkJyk7Ci0gICAgICAgICAgICAgIH0pOwotCi0gICAgICAgICAgICAgIC8vIFN0YXJ0 cyBtb25pdG9yaW5nIGNoYW5nZXMgdG8gbW9kZWwKLSAgICAgICAgICAgICAgc2VsZi52aWV3Lm1v ZGVsLnN0YXJ0TmV3U2Vzc2lvbigpOwotCi0gICAgICAgICAgICB9fSk7Ci0KLSAgICAgICAgICAk KHRoaXMuZWxlbWVudHMuYm9keS5jaGlsZE5vZGVzWzBdKS5hZGRDbGFzcygKLSAgICAgICAgICAg ICdhbGVydGlmeV90b29sc19kaWFsb2dfcHJvcGVydGllcyBvYmpfcHJvcGVydGllcycKLSAgICAg ICAgICApOwotCi0KLQotICAgICAgICB9LAotICAgICAgICAvLyBDYWxsYmFjayBmdW5jdGlvbnMg d2hlbiBjbGljayBvbiB0aGUgYnV0dG9ucyBvZiB0aGUgQWxlcnRpZnkgZGlhbG9ncwotICAgICAg ICBjYWxsYmFjazogZnVuY3Rpb24oZSkgewotICAgICAgICAgIGxldCBzZWxmID0gdGhpczsKLQot ICAgICAgICAgIGlmIChlLmJ1dHRvbi5lbGVtZW50Lm5hbWUgPT0gJ2RpYWxvZ19oZWxwJykgewot ICAgICAgICAgICAgZS5jYW5jZWwgPSB0cnVlOwotICAgICAgICAgICAgcGdBZG1pbi5Ccm93c2Vy LnNob3dIZWxwKGUuYnV0dG9uLmVsZW1lbnQubmFtZSwgZS5idXR0b24uZWxlbWVudC5nZXRBdHRy aWJ1dGUoJ3VybCcpLAotICAgICAgICAgICAgICBudWxsLCBudWxsKTsKLSAgICAgICAgICB9IGVs c2UgaWYgKGUuYnV0dG9uWydkYXRhLWJ0bi1uYW1lJ10gPT09ICdvaycpIHsKLSAgICAgICAgICAg IGUuY2FuY2VsID0gdHJ1ZTsgLy8gRG8gbm90IGNsb3NlIGRpYWxvZwotCi0gICAgICAgICAgICBs ZXQgZGF0YSA9IHNlbGYudmlldy5tb2RlbC5nZXQoJ21hY3JvJykudG9KU09OKHRydWUpOwotCi0g ICAgICAgICAgICBpZiAoZGF0YSA9PSB1bmRlZmluZWQgfHwgZGF0YSA9PSBudWxsKSB7Ci0gICAg ICAgICAgICAgIHNlbGYuY2xvc2UoKTsKLSAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAg ICAgfQotCi0gICAgICAgICAgICBheGlvcy5wdXQoCi0gICAgICAgICAgICAgIHVybF9mb3IoJ3Nx bGVkaXRvci5zZXRfbWFjcm9zJywgewotICAgICAgICAgICAgICAgICd0cmFuc19pZCc6IGhhbmRs ZXIudHJhbnNJZCwKLSAgICAgICAgICAgICAgfSksCi0gICAgICAgICAgICAgIGRhdGEKLSAgICAg ICAgICAgICkudGhlbihmdW5jdGlvbiAocmVzdWx0KSB7Ci0gICAgICAgICAgICAvLyBIaWRlIFBy b2dyZXNzIC4uLgotICAgICAgICAgICAgICAkKAotICAgICAgICAgICAgICAgIHNlbGYuc2hvd0Zp bHRlclByb2dyZXNzWzBdCi0gICAgICAgICAgICAgICkuYWRkQ2xhc3MoJ2Qtbm9uZScpOwotCi0g ICAgICAgICAgICAgIGxldCBtYWNyb1Jlc3BvbnNlID0gcmVzdWx0OwotCi0gICAgICAgICAgICAg IGlmIChtYWNyb1Jlc3BvbnNlLnN0YXR1cykgewotICAgICAgICAgICAgICAgIHNldFRpbWVvdXQo Ci0gICAgICAgICAgICAgICAgICBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgICAgICAgICAgLy8g VXBkYXRlIE1hY3JvIE1lbnUKLSAgICAgICAgICAgICAgICAgICAgbGV0IG1hY3JvcyA9IHNlbGYu dmlldy5tb2RlbC5nZXQoJ21hY3JvJykudG9KU09OKCkuZmlsdGVyKG0gPT4gbS5uYW1lICE9PSB1 bmRlZmluZWQgfHwgbS5uYW1lICE9PSBudWxsKTsKLSAgICAgICAgICAgICAgICAgICAgaGFuZGxl ci5tYWNyb3MgPSBtYWNyb3M7Ci0gICAgICAgICAgICAgICAgICAgIHZhciBzdHIgPSBgCi0gICAg ICAgICAgICAgICAgICAgICAgPGxpPgotICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBjbGFz cz0iZHJvcGRvd24taXRlbSIgaWQ9ImJ0bi1tYW5hZ2UtbWFjcm9zIiBocmVmPSIjIiB0YWJpbmRl eD0iMCI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj4gJHtnZXR0ZXh0KCdN YW5hZ2UgTWFjcm9zLi4uJyl9IDwvc3Bhbj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgPC9h PgotICAgICAgICAgICAgICAgICAgICAgIDwvbGk+YDsKLQotICAgICAgICAgICAgICAgICAgICBs ZXQgbWFjcm9fbGlzdF90bXBsID0gJyc7Ci0gICAgICAgICAgICAgICAgICAgIF8uZWFjaChtYWNy b3MsIGZ1bmN0aW9uKG0pIHsKLSAgICAgICAgICAgICAgICAgICAgICBpZiAobS5uYW1lKSB7Ci0g ICAgICAgICAgICAgICAgICAgICAgICBtYWNyb19saXN0X3RtcGwgKz0gYDxsaT4KLSAgICAgICAg ICAgICAgICAgICAgICAgIDxhIGNsYXNzPSJkcm9wZG93bi1pdGVtIGJ0bi1tYWNybyIgZGF0YS1t YWNyby1pZD0iJHttLmlkfSIgaHJlZj0iIyIgdGFiaW5kZXg9IjAiPgotICAgICAgICAgICAgICAg ICAgICAgICAgICAgIDxzcGFuPiAke18uZXNjYXBlKG0ubmFtZSl9IDwvc3Bhbj4KLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICA8c3Bhbj4gKCR7bS5rZXlfbGFiZWx9KSA8L3NwYW4+Ci0gICAg ICAgICAgICAgICAgICAgICAgICA8L2E+Ci0gICAgICAgICAgICAgICAgICAgICAgIDwvbGk+YDsK LSAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIH0pOwotCi0gICAg ICAgICAgICAgICAgICAgIGlmIChtYWNyb19saXN0X3RtcGwubGVuZ3RoID4gMCkgc3RyICs9ICc8 bGkgY2xhc3M9ImRyb3Bkb3duLWRpdmlkZXIiPjwvbGk+JyArIG1hY3JvX2xpc3RfdG1wbDsKLSAg ICAgICAgICAgICAgICAgICAgJCgkLmZpbmQoJ2Rpdi5idG4tZ3JvdXAubXItMS51c2VyX21hY3Jv cyB1bC5kcm9wZG93bi1tZW51JykpLmh0bWwoJChzdHIpKTsKLQotICAgICAgICAgICAgICAgICAg ICBzZWxmLmNsb3NlKCk7IC8vIENsb3NlIHRoZSBkaWFsb2cgbm93Ci0gICAgICAgICAgICAgICAg ICAgIE5vdGlmeS5zdWNjZXNzKGdldHRleHQoJ01hY3JvIHVwZGF0ZWQgc3VjY2Vzc2Z1bGx5Jykp OwotICAgICAgICAgICAgICAgICAgfSwgMTAKLSAgICAgICAgICAgICAgICApOwotICAgICAgICAg ICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIE5vdGlmeS5hbGVydCgKLSAgICAgICAgICAg ICAgICAgIGdldHRleHQoJ1ZhbGlkYXRpb24gRXJyb3InKSwKLSAgICAgICAgICAgICAgICAgIG1h Y3JvUmVzcG9uc2UucmVzdWx0Ci0gICAgICAgICAgICAgICAgKTsKLSAgICAgICAgICAgICAgfQot Ci0gICAgICAgICAgICB9KS5jYXRjaChmdW5jdGlvbiAoZXJyb3IpIHsKLSAgICAgICAgICAgIC8v IEhpZGUgUHJvZ3Jlc3MgLi4uCi0gICAgICAgICAgICAgICQoCi0gICAgICAgICAgICAgICAgc2Vs Zi5zaG93RmlsdGVyUHJvZ3Jlc3NbMF0KLSAgICAgICAgICAgICAgKS5hZGRDbGFzcygnZC1ub25l Jyk7Ci0KLSAgICAgICAgICAgICAgc2V0VGltZW91dCgKLSAgICAgICAgICAgICAgICBmdW5jdGlv bigpIHsKLSAgICAgICAgICAgICAgICAgIE5vdGlmeS5lcnJvcihlcnJvci5yZXNwb25zZS5kYXRh LmVycm9ybXNnKTsKLSAgICAgICAgICAgICAgICB9LCAxMAotICAgICAgICAgICAgICApOwotICAg ICAgICAgICAgfSk7Ci0KLSAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgc2VsZi5jbG9z ZSgpOwotICAgICAgICAgIH0KLSAgICAgICAgfSwKLSAgICAgIH07Ci0gICAgfSk7Ci0KLSAgICBB bGVydGlmeS5tYWNyb0RpYWxvZyh0aXRsZSkucmVzaXplVG8ocGdBZG1pbi5Ccm93c2VyLnN0ZFcu Y2FsYyhwZ0FkbWluLkJyb3dzZXIuc3RkVy5sZyksCi0gICAgICBwZ0FkbWluLkJyb3dzZXIuc3Rk SC5jYWxjKHBnQWRtaW4uQnJvd3Nlci5zdGRILmxnKSk7Ci0gIH0sCi19OwotCi1tb2R1bGUuZXhw b3J0cyA9IE1hY3JvRGlhbG9nOwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vc3RhdGljL2pzL3Nx bGVkaXRvci9tYWNyb19tb2RlbC5qcyBiL3dlYi9wZ2FkbWluL3N0YXRpYy9qcy9zcWxlZGl0b3Iv bWFjcm9fbW9kZWwuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGE5YzMxNmU2OC4u MDAwMDAwMDAwCi0tLSBhL3dlYi9wZ2FkbWluL3N0YXRpYy9qcy9zcWxlZGl0b3IvbWFjcm9fbW9k ZWwuanMKKysrIC9kZXYvbnVsbApAQCAtMSwyMjUgKzAsMCBAQAotLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwotLy8KLS8vIHBnQWRt aW4gNCAtIFBvc3RncmVTUUwgVG9vbHMKLS8vCi0vLyBDb3B5cmlnaHQgKEMpIDIwMTMgLSAyMDIy LCBUaGUgcGdBZG1pbiBEZXZlbG9wbWVudCBUZWFtCi0vLyBUaGlzIHNvZnR3YXJlIGlzIHJlbGVh c2VkIHVuZGVyIHRoZSBQb3N0Z3JlU1FMIExpY2VuY2UKLS8vCi0vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwotCi1pbXBvcnQgZ2V0 dGV4dCBmcm9tICdzb3VyY2VzL2dldHRleHQnOwotaW1wb3J0IHBnQWRtaW4gZnJvbSAnc291cmNl cy9wZ2FkbWluJzsKLWltcG9ydCBCYWNrZm9ybSBmcm9tICdwZ2FkbWluLmJhY2tmb3JtJzsKLWlt cG9ydCBCYWNrZ3JpZCBmcm9tICdwZ2FkbWluLmJhY2tncmlkJzsKLWltcG9ydCB1cmxfZm9yIGZy b20gJ3NvdXJjZXMvdXJsX2Zvcic7Ci1pbXBvcnQgJCBmcm9tICdqcXVlcnknOwotaW1wb3J0IF8g ZnJvbSAndW5kZXJzY29yZSc7Ci1pbXBvcnQgTm90aWZ5IGZyb20gJy4uL2hlbHBlcnMvTm90aWZp ZXInOwotCi1leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBtYWNyb01vZGVsKHRyYW5zSWQpIHsKLQot ICBsZXQgTWFjcm9Nb2RlbCA9IHBnQWRtaW4uQnJvd3Nlci5EYXRhTW9kZWwuZXh0ZW5kKHsKLSAg ICBpZEF0dHJpYnV0ZTogJ2lkJywKLSAgICBkZWZhdWx0czogewotICAgICAgaWQ6IHVuZGVmaW5l ZCwKLSAgICAgIGtleTogdW5kZWZpbmVkLAotICAgICAgbmFtZTogdW5kZWZpbmVkLAotICAgICAg c3FsOiB1bmRlZmluZWQsCi0gICAgICBrZXlfbGFiZWw6IHVuZGVmaW5lZCwKLSAgICB9LAotICAg IHNjaGVtYTogW3sKLSAgICAgIGlkOiAna2V5X2xhYmVsJywKLSAgICAgIG5hbWU6ICdrZXlfbGFi ZWwnLAotICAgICAgbGFiZWw6IGdldHRleHQoJ0tleScpLAotICAgICAgdHlwZTogJ3RleHQnLAot ICAgICAgY2VsbDogJ3N0cmluZycsCi0gICAgICBlZGl0YWJsZTogZmFsc2UsCi0gICAgICBjZWxs SGVhZGVyQ2xhc3NlczogJ3dpZHRoX3BlcmNlbnRfMTAnLAotICAgICAgaGVhZGVyQ2VsbDogQmFj a2dyaWQuRXh0ZW5zaW9uLkN1c3RvbUhlYWRlckNlbGwsCi0gICAgICBkaXNhYmxlZDogZmFsc2Us Ci0gICAgfSwgewotICAgICAgaWQ6ICduYW1lJywKLSAgICAgIG5hbWU6ICduYW1lJywKLSAgICAg IGxhYmVsOiBnZXR0ZXh0KCdOYW1lJyksCi0gICAgICBjZWxsOiAnc3RyaW5nJywKLSAgICAgIHR5 cGU6ICd0ZXh0JywKLSAgICAgIGVkaXRhYmxlOiB0cnVlLAotICAgICAgY2VsbEhlYWRlckNsYXNz ZXM6ICd3aWR0aF9wZXJjZW50XzIwJywKLSAgICAgIGhlYWRlckNlbGw6IEJhY2tncmlkLkV4dGVu c2lvbi5DdXN0b21IZWFkZXJDZWxsLAotICAgICAgZGlzYWJsZWQ6IGZhbHNlLAotICAgIH0sIHsK LSAgICAgIGlkOiAnc3FsJywKLSAgICAgIG5hbWU6ICdzcWwnLAotICAgICAgbGFiZWw6IGdldHRl eHQoJ1NRTCcpLAotICAgICAgY2VsbDogQmFja2dyaWQuRXh0ZW5zaW9uLlNxbENlbGwsCi0gICAg ICB0eXBlOiAnbXVsdGlsaW5lJywKLSAgICAgIGNvbnRyb2w6IEJhY2tmb3JtLlNxbENvZGVDb250 cm9sLAotICAgICAgZWRpdGFibGU6IHRydWUsCi0gICAgICBjZWxsSGVhZGVyQ2xhc3NlczogJ3dp ZHRoX3BlcmNlbnRfNzAnLAotICAgICAgaGVhZGVyQ2VsbDogQmFja2dyaWQuRXh0ZW5zaW9uLkN1 c3RvbUhlYWRlckNlbGwsCi0gICAgICBkaXNhYmxlZDogZmFsc2UsCi0gICAgfSwKLSAgICBdLAot ICAgIHZhbGlkYXRlOiBmdW5jdGlvbigpIHsKLSAgICAgIGxldCBtc2cgPSBudWxsOwotICAgICAg dGhpcy5lcnJvck1vZGVsLmNsZWFyKCk7Ci0gICAgICBpZiAoXy5pc0VtcHR5KHRoaXMuZ2V0KCdu YW1lJykpICYmICAhKF8uaXNFbXB0eSh0aGlzLmdldCgnc3FsJykpKSkgewotICAgICAgICBtc2cg PSBnZXR0ZXh0KCdQbGVhc2UgZW50ZXIgbWFjcm8gbmFtZS4nKTsKLSAgICAgICAgdGhpcy5lcnJv ck1vZGVsLnNldCgnbmFtZScsIG1zZyk7Ci0gICAgICAgIHJldHVybiBtc2c7Ci0gICAgICB9IGVs c2UgaWYgKF8uaXNFbXB0eSh0aGlzLmdldCgnc3FsJykpICYmICAhKF8uaXNFbXB0eSh0aGlzLmdl dCgnbmFtZScpKSkpIHsKLSAgICAgICAgbXNnID0gZ2V0dGV4dCgnUGxlYXNlIGVudGVyIG1hY3Jv IHNxbC4nKTsKLSAgICAgICAgdGhpcy5lcnJvck1vZGVsLnNldCgnc3FsJywgbXNnKTsKLSAgICAg ICAgcmV0dXJuIG1zZzsKLSAgICAgIH0KLSAgICAgIHJldHVybiBudWxsOwotICAgIH0sCi0gIH0p OwotCi0gIGxldCBNYWNyb0NvbGxlY3Rpb25Nb2RlbCA9IHBnQWRtaW4uQnJvd3Nlci5EYXRhTW9k ZWwuZXh0ZW5kKHsKLSAgICBkZWZhdWx0czogewotICAgICAgbWFjcm86IHVuZGVmaW5lZCwKLSAg ICB9LAotICAgIHVybFJvb3Q6IHVybF9mb3IoJ3NxbGVkaXRvci5nZXRfbWFjcm9zJywgeyd0cmFu c19pZCc6IHRyYW5zSWR9KSwKLSAgICBzY2hlbWE6IFt7Ci0gICAgICBpZDogJ21hY3JvJywKLSAg ICAgIG5hbWU6ICdtYWNybycsCi0gICAgICBsYWJlbDogZ2V0dGV4dCgnTWFjcm9zJyksCi0gICAg ICBtb2RlbDogTWFjcm9Nb2RlbCwKLSAgICAgIGVkaXRhYmxlOiB0cnVlLAotICAgICAgdHlwZTog J2NvbGxlY3Rpb24nLAotICAgICAgY29udHJvbDogQmFja2Zvcm0uU3ViTm9kZUNvbGxlY3Rpb25D b250cm9sLmV4dGVuZCh7Ci0gICAgICAgIHNob3dHcmlkQ29udHJvbDogZnVuY3Rpb24oZGF0YSkg ewotICAgICAgICAgIHZhciBzZWxmID0gdGhpcywKLSAgICAgICAgICAgIGdyaWRCb2R5ID0gJCgn PGRpdiBjbGFzcz1cJ3BnYWRtaW4tY29udHJvbC1ncm91cCBiYWNrZ3JpZCBmb3JtLWdyb3VwIHBn LWVsLTEyIG9iamVjdCBzdWJub2RlXCc+PC9kaXY+Jyk7Ci0KLSAgICAgICAgICB2YXIgc3Vibm9k ZSA9IGRhdGEuc3Vibm9kZS5zY2hlbWEgPyBkYXRhLnN1Ym5vZGUgOiBkYXRhLnN1Ym5vZGUucHJv dG90eXBlLAotICAgICAgICAgICAgZ3JpZFNjaGVtYSA9IEJhY2tmb3JtLmdlbmVyYXRlR3JpZENv bHVtbnNGcm9tTW9kZWwoCi0gICAgICAgICAgICAgIGRhdGEubm9kZV9pbmZvLCBzdWJub2RlLCB0 aGlzLmZpZWxkLmdldCgnbW9kZScpLCBkYXRhLmNvbHVtbnMsIGRhdGEuc2NoZW1hX25vZGUKLSAg ICAgICAgICAgICk7Ci0KLSAgICAgICAgICAvLyBDbGVhbiB1cCBleGlzdGluZyBncmlkIGlmIGFu eSAoaW4gY2FzZSBvZiByZS1yZW5kZXIpCi0gICAgICAgICAgaWYgKHNlbGYuZ3JpZCkgewotICAg ICAgICAgICAgc2VsZi5ncmlkLnJlbW92ZSgpOwotICAgICAgICAgIH0KLQotICAgICAgICAgIC8v IFNldCB2aXNpYmlsaXR5IG9mIEFkZCBidXR0b24KLSAgICAgICAgICBpZiAoZGF0YS5kaXNhYmxl ZCB8fCBkYXRhLmNhbkFkZCA9PSBmYWxzZSkgewotICAgICAgICAgICAgJChncmlkQm9keSkuZmlu ZCgnYnV0dG9uLmFkZCcpLnJlbW92ZSgpOwotICAgICAgICAgIH0KLQotICAgICAgICAgIC8vIElu c2VydCBDbGVhciBDZWxsIGludG8gR3JpZAotICAgICAgICAgIGdyaWRTY2hlbWEuY29sdW1ucy51 bnNoaWZ0KHsKLSAgICAgICAgICAgIG5hbWU6ICdwZy1iYWNrZm9ybS1jbGVhcicsCi0gICAgICAg ICAgICBsYWJlbDogJzxpIGFyaWEtbGFiZWw9IicgKyBnZXR0ZXh0KCdDbGVhciByb3cnKSArICci IGNsYXNzPSJmYSBmYS1lcmFzZXIiIHRpdGxlPSInICsgZ2V0dGV4dCgnQ2xlYXIgcm93JykgKyAn Ij48L2k+JywKLSAgICAgICAgICAgIGNlbGw6IEJhY2tncmlkLkV4dGVuc2lvbi5DbGVhckNlbGws Ci0gICAgICAgICAgICBlZGl0YWJsZTogZmFsc2UsCi0gICAgICAgICAgICBjZWxsX3ByaW9yaXR5 OiAtMSwKLSAgICAgICAgICAgIHNvcnRhYmxlOiBmYWxzZSwKLSAgICAgICAgICAgIGhlYWRlckNl bGw6IEJhY2tncmlkLkV4dGVuc2lvbi5DdXN0b21IZWFkZXJDZWxsLmV4dGVuZCh7Ci0gICAgICAg ICAgICAgIGNsYXNzTmFtZTogJ2hlYWRlci1pY29uLWNlbGwnLAotICAgICAgICAgICAgICBldmVu dHM6IHsKLSAgICAgICAgICAgICAgICAnY2xpY2snOiAnY2xlYXJyQWxsJywKLSAgICAgICAgICAg ICAgfSwKLSAgICAgICAgICAgICAgY2xlYXJyQWxsOiBmdW5jdGlvbihlKSB7Ci0gICAgICAgICAg ICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOwotICAgICAgICAgICAgICAgIHZhciB0aGF0ID0gdGhp czsKLSAgICAgICAgICAgICAgICAvLyBXZSB3aWxsIGNoZWNrIGlmIHJvdyBpcyBkZWxldGFibGUg b3Igbm90Ci0KLSAgICAgICAgICAgICAgICBsZXQgbWFjcm9zID0gdGhhdC5jb2xsZWN0aW9uLnRv SlNPTigpLmZpbHRlcihtID0+IG0ubmFtZSAhPT0gdW5kZWZpbmVkICYmIG0ubmFtZSAhPT0gbnVs bCk7Ci0KLSAgICAgICAgICAgICAgICBpZiAobWFjcm9zLmxlbmd0aCA+IDApIHsKLSAgICAgICAg ICAgICAgICAgIE5vdGlmeS5jb25maXJtKAotICAgICAgICAgICAgICAgICAgICBnZXR0ZXh0KCdD bGVhciBBbGwgUm93cycpLAotICAgICAgICAgICAgICAgICAgICBnZXR0ZXh0KCdBcmUgeW91IHN1 cmUgeW91IHdpc2ggdG8gY2xlYXIgYWxsIHJvd3M/JyksCi0gICAgICAgICAgICAgICAgICAgIGZ1 bmN0aW9uKCkgewotICAgICAgICAgICAgICAgICAgICAgIF8uZWFjaCh0aGF0LmNvbGxlY3Rpb24u dG9KU09OKCksIGZ1bmN0aW9uKG0pIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuY29s bGVjdGlvbi5nZXQobS5pZCkuc2V0KHsnbmFtZSc6IG51bGwsICdzcWwnOiBudWxsfSk7Ci0gICAg ICAgICAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICAgICAgICAgIH0sCi0gICAgICAgICAg ICAgICAgICAgIGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVl OwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICApOwotICAgICAgICAg ICAgICAgIH0KLSAgICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICAgcmVuZGVyOiBmdW5jdGlv bigpIHsKLSAgICAgICAgICAgICAgICB0aGlzLiRlbC5lbXB0eSgpOwotICAgICAgICAgICAgICAg IHZhciBjb2x1bW4gPSB0aGlzLmNvbHVtbjsKLSAgICAgICAgICAgICAgICB2YXIgbGFiZWwgPSAk KCc8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgdGl0bGU9IicgKyBnZXR0ZXh0KCdDbGVhciByb3cnKSAr ICciIGFyaWEtbGFiZWw9IkNsZWFyIHJvdyIgYXJpYS1leHBhbmRlZD0iZmFsc2UiIHRhYmluZGV4 PSIwIj4nKS5odG1sKGNvbHVtbi5nZXQoJ2xhYmVsJykpLmFwcGVuZCgnPHNwYW4gY2xhc3M9XCdz b3J0LWNhcmV0XCcgYXJpYS1oaWRkZW49XCd0cnVlXCc+PC9zcGFuPicpOwotCi0gICAgICAgICAg ICAgICAgdGhpcy4kZWwuYXBwZW5kKGxhYmVsKTsKLSAgICAgICAgICAgICAgICB0aGlzLiRlbC5h ZGRDbGFzcyhjb2x1bW4uZ2V0KCduYW1lJykpOwotICAgICAgICAgICAgICAgIHRoaXMuJGVsLmFk ZENsYXNzKGNvbHVtbi5nZXQoJ2RpcmVjdGlvbicpKTsKLSAgICAgICAgICAgICAgICB0aGlzLiRl bC5hdHRyKCdyb2xlJywgJ2NvbHVtbmhlYWRlcicpOwotICAgICAgICAgICAgICAgIHRoaXMuJGVs LmF0dHIoJ2FyaWEtbGFiZWwnLCAnY29sdW1uaGVhZGVyJyk7Ci0gICAgICAgICAgICAgICAgdGhp cy4kZWwuYXR0cignYWx0JywgJ2NvbHVtbmhlYWRlcicpOwotICAgICAgICAgICAgICAgIHRoaXMu ZGVsZWdhdGVFdmVudHMoKTsKLSAgICAgICAgICAgICAgICByZXR1cm4gdGhpczsKLQotICAgICAg ICAgICAgICB9LAotICAgICAgICAgICAgfSksCi0gICAgICAgICAgfSk7Ci0KLQotICAgICAgICAg IHZhciBjb2xsZWN0aW9uID0gc2VsZi5tb2RlbC5nZXQoZGF0YS5uYW1lKTsKLQotICAgICAgICAg IGlmICghY29sbGVjdGlvbikgewotICAgICAgICAgICAgY29sbGVjdGlvbiA9IG5ldyhwZ0FkbWlu LkJyb3dzZXIuTm9kZS5Db2xsZWN0aW9uKShudWxsLCB7Ci0gICAgICAgICAgICAgIGhhbmRsZXI6 IHNlbGYubW9kZWwuaGFuZGxlciB8fCBzZWxmLm1vZGVsLAotICAgICAgICAgICAgICBtb2RlbDog ZGF0YS5tb2RlbCwKLSAgICAgICAgICAgICAgdG9wOiBzZWxmLm1vZGVsLnRvcCB8fCBzZWxmLm1v ZGVsLAotICAgICAgICAgICAgICBzaWxlbnQ6IHRydWUsCi0gICAgICAgICAgICB9KTsKLSAgICAg ICAgICAgIHNlbGYubW9kZWwuc2V0KGRhdGEubmFtZSwgY29sbGVjdGlvbiwgewotICAgICAgICAg ICAgICBzaWxlbnQ6IHRydWUsCi0gICAgICAgICAgICB9KTsKLSAgICAgICAgICB9Ci0KLSAgICAg ICAgICB2YXIgY2VsbEVkaXRpbmcgPSBmdW5jdGlvbihhcmdzKSB7Ci0gICAgICAgICAgICB2YXIg Y3R4ID0gdGhpcywKLSAgICAgICAgICAgICAgY2VsbCA9IGFyZ3NbMF07Ci0gICAgICAgICAgICAv LyBTZWFyY2ggZm9yIGFueSBvdGhlciByb3dzIHdoaWNoIGFyZSBvcGVuLgotICAgICAgICAgICAg dGhpcy5lYWNoKGZ1bmN0aW9uKG0pIHsKLSAgICAgICAgICAgICAgLy8gQ2hlY2sgaWYgcm93IHdo aWNoIHdlIGFyZSBhYm91dCB0byBjbG9zZSBpcyBub3QgY3VycmVudCByb3cuCi0gICAgICAgICAg ICAgIGlmIChjZWxsLm1vZGVsICE9IG0pIHsKLSAgICAgICAgICAgICAgICB2YXIgaWR4ID0gY3R4 LmluZGV4T2YobSk7Ci0gICAgICAgICAgICAgICAgaWYgKGlkeCA+IC0xKSB7Ci0gICAgICAgICAg ICAgICAgICB2YXIgcm93ID0gZ3JpZC5ib2R5LnJvd3NbaWR4XSwKLSAgICAgICAgICAgICAgICAg ICAgcm93RWRpdENlbGwgPSByb3cuJGVsLmZpbmQoJy5zdWJub2RlLWVkaXQtaW4tcHJvY2Vzcycp LnBhcmVudCgpOwotICAgICAgICAgICAgICAgICAgLy8gT25seSBjbG9zZSByb3cgaWYgaXQncyBv cGVuLgotICAgICAgICAgICAgICAgICAgaWYgKHJvd0VkaXRDZWxsLmxlbmd0aCA+IDApIHsKLSAg ICAgICAgICAgICAgICAgICAgdmFyIGV2ZW50ID0gbmV3IEV2ZW50KCdjbGljaycpOwotICAgICAg ICAgICAgICAgICAgICByb3dFZGl0Q2VsbFswXS5kaXNwYXRjaEV2ZW50KGV2ZW50KTsKLSAgICAg ICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgIH0KLSAgICAg ICAgICAgIH0pOwotICAgICAgICAgIH07Ci0gICAgICAgICAgLy8gTGlzdGVuIGZvciBhbnkgcm93 IHdoaWNoIGlzIGFib3V0IHRvIGVudGVyIGluIGVkaXQgbW9kZS4KLSAgICAgICAgICBjb2xsZWN0 aW9uLm9uKCdlbnRlcmluZ0VkaXRNb2RlJywgY2VsbEVkaXRpbmcsIGNvbGxlY3Rpb24pOwotCi0g ICAgICAgICAgLy8gSW5pdGlhbGl6ZSBhIG5ldyBHcmlkIGluc3RhbmNlCi0gICAgICAgICAgdmFy IGdyaWQgPSBzZWxmLmdyaWQgPSBuZXcgQmFja2dyaWQuR3JpZCh7Ci0gICAgICAgICAgICBjb2x1 bW5zOiBncmlkU2NoZW1hLmNvbHVtbnMsCi0gICAgICAgICAgICBjb2xsZWN0aW9uOiBjb2xsZWN0 aW9uLAotICAgICAgICAgICAgcm93OiB0aGlzLnJvdywKLSAgICAgICAgICAgIGNsYXNzTmFtZTog J2JhY2tncmlkIHRhYmxlIHByZXNlbnRhdGlvbiB0YWJsZS1ib3JkZXJlZCB0YWJsZS1ub291dGVy LWJvcmRlciB0YWJsZS1ob3ZlcicsCi0gICAgICAgICAgfSk7Ci0KLSAgICAgICAgICAvLyBSZW5k ZXIgc3ViTm9kZSBncmlkCi0gICAgICAgICAgdmFyIHN1Yk5vZGVHcmlkID0gZ3JpZC5yZW5kZXIo KS4kZWw7Ci0KLSAgICAgICAgICByZXR1cm4gZ3JpZEJvZHkuYXBwZW5kKHN1Yk5vZGVHcmlkKTsK LSAgICAgICAgfSwKLSAgICAgIH0pLAotICAgICAgY29sdW1uczogWydrZXlfbGFiZWwnLCAnbmFt ZScsICdzcWwnXSwKLSAgICAgIHZpc2libGU6IHRydWUsCi0gICAgfV0sCi0gICAgdmFsaWRhdGU6 IGZ1bmN0aW9uKCkgewotICAgICAgcmV0dXJuIG51bGw7Ci0gICAgfSwKLSAgfSk7Ci0KLSAgcmV0 dXJuIG5ldyBNYWNyb0NvbGxlY3Rpb25Nb2RlbCgpOwotfQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRt aW4vc3RhdGljL2pzL3NxbGVkaXRvci9uZXdfY29ubmVjdGlvbl9kaWFsb2cuanMgYi93ZWIvcGdh ZG1pbi9zdGF0aWMvanMvc3FsZWRpdG9yL25ld19jb25uZWN0aW9uX2RpYWxvZy5qcwpkZWxldGVk IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjc1MmVjM2Q0Li4wMDAwMDAwMDAKLS0tIGEvd2ViL3Bn YWRtaW4vc3RhdGljL2pzL3NxbGVkaXRvci9uZXdfY29ubmVjdGlvbl9kaWFsb2cuanMKKysrIC9k ZXYvbnVsbApAQCAtMSwyODkgKzAsMCBAQAotLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwotLy8KLS8vIHBnQWRtaW4gNCAtIFBvc3Rn cmVTUUwgVG9vbHMKLS8vCi0vLyBDb3B5cmlnaHQgKEMpIDIwMTMgLSAyMDIyLCBUaGUgcGdBZG1p biBEZXZlbG9wbWVudCBUZWFtCi0vLyBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIHRo ZSBQb3N0Z3JlU1FMIExpY2VuY2UKLS8vCi0vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwotCi1pbXBvcnQgZ2V0dGV4dCBmcm9tICdz b3VyY2VzL2dldHRleHQnOwotaW1wb3J0IHVybF9mb3IgZnJvbSAnc291cmNlcy91cmxfZm9yJzsK LWltcG9ydCAkIGZyb20gJ2pxdWVyeSc7Ci1pbXBvcnQgQWxlcnRpZnkgZnJvbSAncGdhZG1pbi5h bGVydGlmeWpzJzsKLWltcG9ydCBwZ0FkbWluIGZyb20gJ3NvdXJjZXMvcGdhZG1pbic7Ci1pbXBv cnQgQmFja2Zvcm0gZnJvbSAncGdhZG1pbi5iYWNrZm9ybSc7Ci1pbXBvcnQgbmV3Q29ubmVjdGlv bkRpYWxvZ01vZGVsIGZyb20gJ3NvdXJjZXMvc3FsZWRpdG9yL25ld19jb25uZWN0aW9uX2RpYWxv Z19tb2RlbCc7Ci1pbXBvcnQgTm90aWZ5IGZyb20gJ3N0YXRpYy9qcy9oZWxwZXJzL05vdGlmaWVy JzsKLQotCi1sZXQgTmV3Q29ubmVjdGlvbkRpYWxvZyA9IHsKLSAgJ2RpYWxvZyc6IGZ1bmN0aW9u KGhhbmRsZXIsIHJlY29ubmVjdCwgcHJlZmVyZW5jZXMpIHsKLSAgICBsZXQgdXJsID0gdXJsX2Zv cignc3FsZWRpdG9yLmdldF9uZXdfY29ubmVjdGlvbl9kYXRhJywgewotICAgICAgJ3NpZCc6IGhh bmRsZXIudXJsX3BhcmFtcy5zaWQsCi0gICAgICAnc2dpZCc6IGhhbmRsZXIudXJsX3BhcmFtcy5z Z2lkLAotICAgIH0pOwotCi0gICAgaWYocmVjb25uZWN0KSB7Ci0gICAgICB1cmwgKz0gJz9jb25u ZWN0PTEnOwotICAgIH0KLQotICAgIGxldCB0aXRsZSA9IGdldHRleHQoJ0Nvbm5lY3QgdG8gc2Vy dmVyJyk7Ci0KLSAgICAkLmFqYXgoewotICAgICAgdXJsOiB1cmwsCi0gICAgICBoZWFkZXJzOiB7 Ci0gICAgICAgICdDYWNoZS1Db250cm9sJyA6ICduby1jYWNoZScsCi0gICAgICB9LAotICAgIH0p LmRvbmUoZnVuY3Rpb24gKHJlcykgewotICAgICAgbGV0IHJlc3BvbnNlID0gcmVzLmRhdGEucmVz dWx0OwotICAgICAgcmVzcG9uc2UuZGF0YWJhc2VfbGlzdCA9IFtdOwotICAgICAgcmVzcG9uc2Uu dXNlcl9saXN0ID0gW107Ci0gICAgICBpZiAoQWxlcnRpZnkubmV3Q29ubmVjdGlvbkRpYWxvZykg ewotICAgICAgICBkZWxldGUgQWxlcnRpZnkubmV3Q29ubmVjdGlvbkRpYWxvZzsKLSAgICAgIH0K LQotICAgICAgLy8gQ3JlYXRlIERpYWxvZwotICAgICAgQWxlcnRpZnkuZGlhbG9nKCduZXdDb25u ZWN0aW9uRGlhbG9nJywgZnVuY3Rpb24gZmFjdG9yeSgpIHsKLSAgICAgICAgbGV0ICRjb250YWlu ZXIgPSAkKCc8ZGl2IGNsYXNzPVwnbmV3LWNvbm5lY3Rpb24tZGlhbG9nXCc+PC9kaXY+Jyk7Ci0g ICAgICAgIHJldHVybiB7Ci0gICAgICAgICAgbWFpbjogZnVuY3Rpb24obWVzc2FnZSkgewotICAg ICAgICAgICAgdGhpcy5tc2cgPSBtZXNzYWdlOwotICAgICAgICAgIH0sCi0gICAgICAgICAgYnVp bGQ6IGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgdGhpcy5lbGVtZW50cy5jb250ZW50LmFwcGVu ZENoaWxkKCRjb250YWluZXIuZ2V0KDApKTsKLSAgICAgICAgICAgIEFsZXJ0aWZ5LnBnRGlhbG9n QnVpbGQuYXBwbHkodGhpcyk7Ci0gICAgICAgICAgfSwKLSAgICAgICAgICBzZXR1cDogZnVuY3Rp b24oKXsKLSAgICAgICAgICAgIHJldHVybiB7Ci0gICAgICAgICAgICAgIGJ1dHRvbnM6IFsKLSAg ICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICB0ZXh0OiAnJywKLSAgICAgICAgICAg ICAgICAgIGtleTogMTEyLAotICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lOiAnYnRuIGJ0bi1w cmltYXJ5LWljb24gcHVsbC1sZWZ0IGZhIGZhLXF1ZXN0aW9uIHBnLWFsZXJ0aWZ5LWljb24tYnV0 dG9uJywKLSAgICAgICAgICAgICAgICAgIGF0dHJzOiB7Ci0gICAgICAgICAgICAgICAgICAgIG5h bWU6ICdkaWFsb2dfaGVscCcsCi0gICAgICAgICAgICAgICAgICAgIHR5cGU6ICdidXR0b24nLAot ICAgICAgICAgICAgICAgICAgICBsYWJlbDogZ2V0dGV4dCgnSGVscCcpLAotICAgICAgICAgICAg ICAgICAgICAnYXJpYS1sYWJlbCc6IGdldHRleHQoJ0hlbHAnKSwKLSAgICAgICAgICAgICAgICAg ICAgdXJsOiB1cmxfZm9yKCdoZWxwLnN0YXRpYycsIHsKLSAgICAgICAgICAgICAgICAgICAgICAn ZmlsZW5hbWUnOiAncXVlcnlfdG9vbC5odG1sJywKLSAgICAgICAgICAgICAgICAgICAgfSksCi0g ICAgICAgICAgICAgICAgICB9LAotICAgICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICAg ewotICAgICAgICAgICAgICAgICAgdGV4dDogZ2V0dGV4dCgnQ2FuY2VsJyksCi0gICAgICAgICAg ICAgICAgICBrZXk6IDI3LAotICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lOiAnYnRuIGJ0bi1z ZWNvbmRhcnkgZmEgZmEtdGltZXMgcGctYWxlcnRpZnktYnV0dG9uJywKLSAgICAgICAgICAgICAg ICAgICdkYXRhLWJ0bi1uYW1lJzogJ2NhbmNlbCcsCi0gICAgICAgICAgICAgICAgfSwgewotICAg ICAgICAgICAgICAgICAgdGV4dDogZ2V0dGV4dCgnT0snKSwKLSAgICAgICAgICAgICAgICAgIGtl eTogMTMsCi0gICAgICAgICAgICAgICAgICBjbGFzc05hbWU6ICdidG4gYnRuLXByaW1hcnkgZmEg ZmEtY2hlY2sgcGctYWxlcnRpZnktYnV0dG9uJywKLSAgICAgICAgICAgICAgICAgICdkYXRhLWJ0 bi1uYW1lJzogJ29rJywKLSAgICAgICAgICAgICAgICB9LAotICAgICAgICAgICAgICBdLAotICAg ICAgICAgICAgICBmb2N1czogewotICAgICAgICAgICAgICAgIGVsZW1lbnQ6IGZ1bmN0aW9uKCl7 Ci0gICAgICAgICAgICAgICAgLyoKLSAgICAgICAgICAgICAgICByZXR1cm5pbmcgZmFsc2Ugd2ls bCBmb2N1cyBub3RoaW5nLCBidXQgaXQgd2lsbCBtYWtlCi0gICAgICAgICAgICAgICAgY29udGVu dHMgYmVoaW5kIHRoZSBtb2RhbCBhY2Nlc3NpYmxlIHZpYSBUYWIga2V5LAotICAgICAgICAgICAg ICAgIHNvIGZvY3VzIHRoZSBkaWFsb2cgaXRzZWxmIGluc3RlYWQuCi0gICAgICAgICAgICAgICAg Ki8KLSAgICAgICAgICAgICAgICAgIHJldHVybiAkKHRoaXMuZWxlbWVudHMuZGlhbG9nKS5maW5k KCcubmV3LWNvbm5lY3Rpb24tZGlhbG9nIC5uYXYtbGluay5hY3RpdmUuc2hvdycpOwotICAgICAg ICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICAgc2VsZWN0OiB0cnVlLAotICAgICAgICAgICAg ICB9LAotICAgICAgICAgICAgICAvLyBTZXQgb3B0aW9ucyBmb3IgZGlhbG9nCi0gICAgICAgICAg ICAgIG9wdGlvbnM6IHsKLSAgICAgICAgICAgICAgICB0aXRsZTogdGl0bGUsCi0gICAgICAgICAg ICAgICAgLy9kaXNhYmxlIGJvdGggcGFkZGluZyBhbmQgb3ZlcmZsb3cgY29udHJvbC4KLSAgICAg ICAgICAgICAgICBwYWRkaW5nOiAhMSwKLSAgICAgICAgICAgICAgICBvdmVyZmxvdzogITEsCi0g ICAgICAgICAgICAgICAgbW9kZWw6IDAsCi0gICAgICAgICAgICAgICAgcmVzaXphYmxlOiB0cnVl LAotICAgICAgICAgICAgICAgIG1heGltaXphYmxlOiBmYWxzZSwKLSAgICAgICAgICAgICAgICBw aW5uYWJsZTogZmFsc2UsCi0gICAgICAgICAgICAgICAgY2xvc2FibGVCeURpbW1lcjogZmFsc2Us Ci0gICAgICAgICAgICAgICAgbW9kYWw6IGZhbHNlLAotICAgICAgICAgICAgICAgIGF1dG9SZXNl dDogZmFsc2UsCi0gICAgICAgICAgICAgICAgY2xvc2FibGU6IGZhbHNlLAotICAgICAgICAgICAg ICB9LAotICAgICAgICAgICAgfTsKLSAgICAgICAgICB9LAotICAgICAgICAgIHByZXBhcmU6IGZ1 bmN0aW9uKCkgewotICAgICAgICAgICAgbGV0IHNlbGYgPSB0aGlzOwotICAgICAgICAgICAgJGNv bnRhaW5lci5odG1sKCcnKTsKLSAgICAgICAgICAgIC8vIERpc2FibGUgT2sgYnV0dG9uCi0gICAg ICAgICAgICB0aGlzLl9faW50ZXJuYWwuYnV0dG9uc1syXS5lbGVtZW50LmRpc2FibGVkID0gdHJ1 ZTsKLQotICAgICAgICAgICAgLy8gU3RhdHVzIGJhcgotICAgICAgICAgICAgdGhpcy5zdGF0dXNC YXIgPSAkKAotICAgICAgICAgICAgICAnPGRpdiBjbGFzcz1cJ3BnLXByb3Atc3RhdHVzLWJhciBw Zy1lbC14cy0xMiBkLW5vbmVcJz4nICsKLSAgICAgICAgICAgICcgIDxkaXYgY2xhc3M9ImVycm9y LWluLWZvb3RlciI+ICcgKwotICAgICAgICAgICAgJyAgICA8ZGl2IGNsYXNzPSJkLWZsZXggcHgt MiBweS0xIj4gJyArCi0gICAgICAgICAgICAnICAgICAgPGRpdiBjbGFzcz0icHItMiI+ICcgKwot ICAgICAgICAgICAgJyAgICAgICAgPGkgY2xhc3M9ImZhIGZhLWV4Y2xhbWF0aW9uLXRyaWFuZ2xl IHRleHQtZGFuZ2VyIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PC9pPiAnICsKLSAgICAgICAgICAgICcg ICAgICA8L2Rpdj4gJyArCi0gICAgICAgICAgICAnICAgICAgPGRpdiBjbGFzcz0iYWxlcnQtdGV4 dCIgcm9sZT0iYWxlcnQiPjwvZGl2PiAnICsKLSAgICAgICAgICAgICcgICAgPC9kaXY+ICcgKwot ICAgICAgICAgICAgJyAgPC9kaXY+ICcgKwotICAgICAgICAgICAgJzwvZGl2PicpLmFwcGVuZFRv KCRjb250YWluZXIpOwotCi0gICAgICAgICAgICAvLyBUbyBzaG93IHByb2dyZXNzIG9uIGZpbHRl ciBTYXZpbmcvVXBkYXRpbmcgb24gQUpBWAotICAgICAgICAgICAgdGhpcy5zaG93TmV3Q29ubmVj dGlvblByb2dyZXNzID0gJCgKLSAgICAgICAgICAgICAgYDxkaXYgaWQ9InNob3dfZmlsdGVyX3By b2dyZXNzIiBjbGFzcz0icGctc3AtY29udGFpbmVyIHNxbC1lZGl0b3ItYnVzeS1mZXRjaGluZyBk LW5vbmUiPgotICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InBnLXNwLWNvbnRlbnQiPgotICAg ICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJyb3ciPjxkaXYgY2xhc3M9ImNvbC0xMiBwZy1z cC1pY29uIHNxbC1lZGl0b3ItYnVzeS1pY29uIj48L2Rpdj48L2Rpdj4KLSAgICAgICAgICAgICAg ICAgICAgPGRpdiBjbGFzcz0icm93Ij48ZGl2IGNsYXNzPSJjb2wtMTIgcGctc3AtdGV4dCBzcWwt ZWRpdG9yLWJ1c3ktdGV4dCI+YCArIGdldHRleHQoJ0xvYWRpbmcgZGF0YS4uLicpICsgYDwvZGl2 PjwvZGl2PgotICAgICAgICAgICAgICAgIDwvZGl2PgotICAgICAgICAgICAgPC9kaXY+YAotICAg ICAgICAgICAgKS5hcHBlbmRUbygkY29udGFpbmVyKTsKLSAgICAgICAgICAgICQoCi0gICAgICAg ICAgICAgIHNlbGYuc2hvd05ld0Nvbm5lY3Rpb25Qcm9ncmVzc1swXQotICAgICAgICAgICAgKS5y ZW1vdmVDbGFzcygnZC1ub25lJyk7Ci0KLSAgICAgICAgICAgIHNlbGYubmV3Q29ubkNvbGxlY3Rp b25Nb2RlbCA9IG5ld0Nvbm5lY3Rpb25EaWFsb2dNb2RlbChyZXNwb25zZSwgaGFuZGxlci51cmxf cGFyYW1zLnNnaWQsIGhhbmRsZXIudXJsX3BhcmFtcy5zaWQsIGhhbmRsZXIsIHNlbGYpOwotICAg ICAgICAgICAgbGV0IGZpZWxkcyA9IEJhY2tmb3JtLmdlbmVyYXRlVmlld1NjaGVtYShudWxsLCBz ZWxmLm5ld0Nvbm5Db2xsZWN0aW9uTW9kZWwsICdjcmVhdGUnLCBudWxsLCBudWxsLCB0cnVlKTsK LQotICAgICAgICAgICAgbGV0IHZpZXcgPSB0aGlzLnZpZXcgPSBuZXcgQmFja2Zvcm0uRGlhbG9n KHsKLSAgICAgICAgICAgICAgZWw6ICc8ZGl2PjwvZGl2PicsCi0gICAgICAgICAgICAgIG1vZGVs OiBzZWxmLm5ld0Nvbm5Db2xsZWN0aW9uTW9kZWwsCi0gICAgICAgICAgICAgIHNjaGVtYTogZmll bGRzLAotICAgICAgICAgICAgfSk7Ci0KLSAgICAgICAgICAgICQodGhpcy5lbGVtZW50cy5ib2R5 LmNoaWxkTm9kZXNbMF0pLmFkZENsYXNzKAotICAgICAgICAgICAgICAnYWxlcnRpZnlfdG9vbHNf ZGlhbG9nX3Byb3BlcnRpZXMgb2JqX3Byb3BlcnRpZXMnCi0gICAgICAgICAgICApOwotCi0gICAg ICAgICAgICAkY29udGFpbmVyLmFwcGVuZCh2aWV3LnJlbmRlcigpLiRlbCk7Ci0KLSAgICAgICAg ICAgIC8vIEVuYWJsZS9kaXNhYmxlIHNhdmUgYnV0dG9uIGFuZCBzaG93L2hpZGUgc3RhdHVzYmFy IGJhc2VkIG9uIHNlc3Npb24KLSAgICAgICAgICAgIHZpZXcubGlzdGVuVG8odmlldy5tb2RlbCwg J3BnYWRtaW4tc2Vzc2lvbjpzdGFydCcsIGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgICB2aWV3 Lmxpc3RlblRvKHZpZXcubW9kZWwsICdwZ2FkbWluLXNlc3Npb246aW52YWxpZCcsIGZ1bmN0aW9u KG1zZykgewotICAgICAgICAgICAgICAgIHNlbGYuc3RhdHVzQmFyLnJlbW92ZUNsYXNzKCdkLW5v bmUnKTsKLSAgICAgICAgICAgICAgICAkKHNlbGYuc3RhdHVzQmFyLmZpbmQoJy5hbGVydC10ZXh0 JykpLmh0bWwobXNnKTsKLSAgICAgICAgICAgICAgICAvLyBEaXNhYmxlIE9rYXkgYnV0dG9uCi0g ICAgICAgICAgICAgICAgaWYoc2VsZi5fX2ludGVybmFsKXsKLSAgICAgICAgICAgICAgICAgIHNl bGYuX19pbnRlcm5hbC5idXR0b25zWzJdLmVsZW1lbnQuZGlzYWJsZWQgPSB0cnVlOwotICAgICAg ICAgICAgICAgIH0KLSAgICAgICAgICAgICAgfSk7Ci0KLSAgICAgICAgICAgICAgdmlldy5saXN0 ZW5Ubyh2aWV3Lm1vZGVsLCAncGdhZG1pbi1zZXNzaW9uOnZhbGlkJywgZnVuY3Rpb24oKSB7Ci0g ICAgICAgICAgICAgICAgc2VsZi5zdGF0dXNCYXIuYWRkQ2xhc3MoJ2Qtbm9uZScpOwotICAgICAg ICAgICAgICAgICQoc2VsZi5zdGF0dXNCYXIuZmluZCgnLmFsZXJ0LXRleHQnKSkuaHRtbCgnJyk7 Ci0gICAgICAgICAgICAgICAgLy8gRW5hYmxlIE9rYXkgYnV0dG9uCi0gICAgICAgICAgICAgICAg aWYoc2VsZi5fX2ludGVybmFsKSB7Ci0gICAgICAgICAgICAgICAgICBzZWxmLl9faW50ZXJuYWwu YnV0dG9uc1syXS5lbGVtZW50LmRpc2FibGVkID0gZmFsc2U7Ci0gICAgICAgICAgICAgICAgfQot ICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIH0pOwotCi0gICAgICAgICAgICB2aWV3Lmxp c3RlblRvKHZpZXcubW9kZWwsICdwZ2FkbWluLXNlc3Npb246c3RvcCcsIGZ1bmN0aW9uKCkgewot ICAgICAgICAgICAgICB2aWV3LnN0b3BMaXN0ZW5pbmcodmlldy5tb2RlbCwgJ3BnYWRtaW4tc2Vz c2lvbjppbnZhbGlkJyk7Ci0gICAgICAgICAgICAgIHZpZXcuc3RvcExpc3RlbmluZyh2aWV3Lm1v ZGVsLCAncGdhZG1pbi1zZXNzaW9uOnZhbGlkJyk7Ci0gICAgICAgICAgICB9KTsKLQotICAgICAg ICAgICAgLy8gU3RhcnRzIG1vbml0b3JpbmcgY2hhbmdlcyB0byBtb2RlbAotICAgICAgICAgICAg dmlldy5tb2RlbC5zdGFydE5ld1Nlc3Npb24oKTsKLQotICAgICAgICAgICAgLy8gSGlkZSBQcm9n cmVzcyAuLi4KLSAgICAgICAgICAgICQoCi0gICAgICAgICAgICAgIHNlbGYuc2hvd05ld0Nvbm5l Y3Rpb25Qcm9ncmVzc1swXQotICAgICAgICAgICAgKS5hZGRDbGFzcygnZC1ub25lJyk7Ci0gICAg ICAgICAgfSwKLSAgICAgICAgICBnZXRfdGl0bGU6IGZ1bmN0aW9uKHF0X3RpdGxlX3BsYWNlaG9s ZGVyLCBzZWxlY3RlZF9kYXRhYmFzZV9uYW1lLCBuZXdDb25uQ29sbGVjdGlvbk1vZGVsLCB0bXBS ZXNwb25zZSkgewotICAgICAgICAgICAgcXRfdGl0bGVfcGxhY2Vob2xkZXIgPSBxdF90aXRsZV9w bGFjZWhvbGRlci5yZXBsYWNlKG5ldyBSZWdFeHAoJyVEQVRBQkFTRSUnKSwgc2VsZWN0ZWRfZGF0 YWJhc2VfbmFtZSk7Ci0gICAgICAgICAgICBpZihuZXdDb25uQ29sbGVjdGlvbk1vZGVsWydyb2xl J10pIHsKLSAgICAgICAgICAgICAgcXRfdGl0bGVfcGxhY2Vob2xkZXIgPSBxdF90aXRsZV9wbGFj ZWhvbGRlci5yZXBsYWNlKG5ldyBSZWdFeHAoJyVVU0VSTkFNRSUnKSwgbmV3Q29ubkNvbGxlY3Rp b25Nb2RlbFsncm9sZSddKTsKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgIHF0 X3RpdGxlX3BsYWNlaG9sZGVyID0gcXRfdGl0bGVfcGxhY2Vob2xkZXIucmVwbGFjZShuZXcgUmVn RXhwKCclVVNFUk5BTUUlJyksIG5ld0Nvbm5Db2xsZWN0aW9uTW9kZWxbJ3VzZXInXSk7Ci0gICAg ICAgICAgICB9Ci0KLSAgICAgICAgICAgIHF0X3RpdGxlX3BsYWNlaG9sZGVyID0gcXRfdGl0bGVf cGxhY2Vob2xkZXIucmVwbGFjZShuZXcgUmVnRXhwKCclU0VSVkVSJScpLCB0bXBSZXNwb25zZS5z ZXJ2ZXJfbmFtZSk7Ci0gICAgICAgICAgICByZXR1cm4gcXRfdGl0bGVfcGxhY2Vob2xkZXI7Ci0g ICAgICAgICAgfSwKLSAgICAgICAgICBjYWxsYmFjazogZnVuY3Rpb24oZSkgewotICAgICAgICAg ICAgbGV0IHNlbGYgPSB0aGlzOwotICAgICAgICAgICAgaWYgKGUuYnV0dG9uLmVsZW1lbnQubmFt ZSA9PSAnZGlhbG9nX2hlbHAnKSB7Ci0gICAgICAgICAgICAgIGUuY2FuY2VsID0gdHJ1ZTsKLSAg ICAgICAgICAgICAgcGdBZG1pbi5Ccm93c2VyLnNob3dIZWxwKGUuYnV0dG9uLmVsZW1lbnQubmFt ZSwgZS5idXR0b24uZWxlbWVudC5nZXRBdHRyaWJ1dGUoJ3VybCcpLAotICAgICAgICAgICAgICAg IG51bGwsIG51bGwpOwotICAgICAgICAgICAgfSBlbHNlIGlmIChlLmJ1dHRvblsnZGF0YS1idG4t bmFtZSddID09PSAnb2snKSB7Ci0gICAgICAgICAgICAgIGUuY2FuY2VsID0gdHJ1ZTsgLy8gRG8g bm90IGNsb3NlIGRpYWxvZwotICAgICAgICAgICAgICBsZXQgbmV3Q29ubkNvbGxlY3Rpb25Nb2Rl bCA9IHRoaXMubmV3Q29ubkNvbGxlY3Rpb25Nb2RlbC50b0pTT04oKTsKLQotICAgICAgICAgICAg ICBsZXQgc2VsZWN0ZWRfZGF0YWJhc2VfbmFtZSA9IG51bGw7Ci0gICAgICAgICAgICAgIHJlc3Bv bnNlLmRhdGFiYXNlX2xpc3QuZm9yRWFjaChmdW5jdGlvbihkYXRhKXsKLSAgICAgICAgICAgICAg ICBpZihuZXdDb25uQ29sbGVjdGlvbk1vZGVsWydkYXRhYmFzZSddID09IGRhdGFbJ3ZhbHVlJ10p IHsKLSAgICAgICAgICAgICAgICAgIHNlbGVjdGVkX2RhdGFiYXNlX25hbWUgPSBkYXRhWydsYWJl bCddOwotICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICAgICAgICAgIH0K LSAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICAgIGxldCB0YWJfdGl0bGUgPSAnJzsKLSAg ICAgICAgICAgICAgdmFyIHF0X3RpdGxlX3BsYWNlaG9sZGVyID0gcHJlZmVyZW5jZXNbJ3F0X3Rh Yl90aXRsZV9wbGFjZWhvbGRlciddOwotCi0gICAgICAgICAgICAgIHRhYl90aXRsZSA9IHRoaXMu Z2V0X3RpdGxlKHF0X3RpdGxlX3BsYWNlaG9sZGVyLCBzZWxlY3RlZF9kYXRhYmFzZV9uYW1lLCBu ZXdDb25uQ29sbGVjdGlvbk1vZGVsLCByZXNwb25zZSk7Ci0gICAgICAgICAgICAgIGxldCBxdF9k ZWZhdWx0X3BsYWNlaG9sZGVyID0gcGdBZG1pblsncXRfZGVmYXVsdF9wbGFjZWhvbGRlciddOwot ICAgICAgICAgICAgICBsZXQgY29ubl90aXRsZSA9IHRoaXMuZ2V0X3RpdGxlKHF0X2RlZmF1bHRf cGxhY2Vob2xkZXIsIHNlbGVjdGVkX2RhdGFiYXNlX25hbWUsIG5ld0Nvbm5Db2xsZWN0aW9uTW9k ZWwsIHJlc3BvbnNlKTsKLQotICAgICAgICAgICAgICBpZighbmV3Q29ubkNvbGxlY3Rpb25Nb2Rl bFsncm9sZSddKSB7Ci0gICAgICAgICAgICAgICAgbmV3Q29ubkNvbGxlY3Rpb25Nb2RlbFsncm9s ZSddID0gbnVsbDsKLSAgICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAgIGxldCBpc19jcmVh dGVfY29ubmVjdGlvbiA9IHRydWU7Ci0KLSAgICAgICAgICAgICAgaGFuZGxlci5ncmlkVmlldy5j b25uZWN0aW9uX2xpc3QuZm9yRWFjaChmdW5jdGlvbihjb25uZWN0aW9uX2RhdGEpIHsKLSAgICAg ICAgICAgICAgICBpZihwYXJzZUludChjb25uZWN0aW9uX2RhdGFbJ3NlcnZlciddKSA9PSBuZXdD b25uQ29sbGVjdGlvbk1vZGVsWydzZXJ2ZXInXQotICAgICAgICAgICAgICAgICYmIHBhcnNlSW50 KGNvbm5lY3Rpb25fZGF0YVsnZGF0YWJhc2UnXSkgPT0gbmV3Q29ubkNvbGxlY3Rpb25Nb2RlbFsn ZGF0YWJhc2UnXQotICAgICAgICAgICAgICAgICYmIGNvbm5lY3Rpb25fZGF0YVsndXNlciddID09 IG5ld0Nvbm5Db2xsZWN0aW9uTW9kZWxbJ3VzZXInXSAmJiBjb25uZWN0aW9uX2RhdGFbJ3JvbGUn XSA9PSBuZXdDb25uQ29sbGVjdGlvbk1vZGVsWydyb2xlJ10pIHsKLSAgICAgICAgICAgICAgICAg IGlzX2NyZWF0ZV9jb25uZWN0aW9uID0gZmFsc2U7Ci0gICAgICAgICAgICAgICAgICByZXR1cm4g ZmFsc2U7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAg ICAgaWYoIWlzX2NyZWF0ZV9jb25uZWN0aW9uKSB7Ci0gICAgICAgICAgICAgICAgbGV0IGVycm1z ZyA9ICdDb25uZWN0aW9uIHdpdGggdGhpcyBjb25maWd1cmF0aW9uIGFscmVhZHkgcHJlc2VudC4n OwotICAgICAgICAgICAgICAgIE5vdGlmeS5pbmZvKGVycm1zZyk7Ci0gICAgICAgICAgICAgIH0g ZWxzZSB7Ci0gICAgICAgICAgICAgICAgbGV0IGNvbm5lY3Rpb25fZGV0YWlscyA9IHsKLSAgICAg ICAgICAgICAgICAgICdzZXJ2ZXJfZ3JvdXAnOiBoYW5kbGVyLmdyaWRWaWV3LmhhbmRsZXIudXJs X3BhcmFtcy5zZ2lkLAotICAgICAgICAgICAgICAgICAgJ3NlcnZlcic6IG5ld0Nvbm5Db2xsZWN0 aW9uTW9kZWxbJ3NlcnZlciddLAotICAgICAgICAgICAgICAgICAgJ2RhdGFiYXNlJzogbmV3Q29u bkNvbGxlY3Rpb25Nb2RlbFsnZGF0YWJhc2UnXSwKLSAgICAgICAgICAgICAgICAgICd0aXRsZSc6 IF8uZXNjYXBlKHRhYl90aXRsZSksCi0gICAgICAgICAgICAgICAgICAnY29ubl90aXRsZSc6IF8u ZXNjYXBlKGNvbm5fdGl0bGUpLAotICAgICAgICAgICAgICAgICAgJ3VzZXInOiBuZXdDb25uQ29s bGVjdGlvbk1vZGVsWyd1c2VyJ10sCi0gICAgICAgICAgICAgICAgICAncm9sZSc6IG5ld0Nvbm5D b2xsZWN0aW9uTW9kZWxbJ3JvbGUnXSwKLSAgICAgICAgICAgICAgICAgICdzZXJ2ZXJfbmFtZSc6 IF8uZXNjYXBlKHJlc3BvbnNlLnNlcnZlcl9uYW1lKSwKLSAgICAgICAgICAgICAgICAgICdkYXRh YmFzZV9uYW1lJzogXy5lc2NhcGUoc2VsZWN0ZWRfZGF0YWJhc2VfbmFtZSksCi0gICAgICAgICAg ICAgICAgICAncGFzc3dvcmQnOiByZXNwb25zZS5wYXNzd29yZCwKLSAgICAgICAgICAgICAgICAg ICdpc19zZWxlY3RlZCc6IGZhbHNlLAotICAgICAgICAgICAgICAgIH07Ci0gICAgICAgICAgICAg ICAgaGFuZGxlci5ncmlkVmlldy5vbl9jaGFuZ2VfY29ubmVjdGlvbihjb25uZWN0aW9uX2RldGFp bHMsIHNlbGYpOwotICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAg ICAgICAgICBBbGVydGlmeS5uZXdDb25uZWN0aW9uRGlhbG9nKCkuZGVzdHJveSgpOwotICAgICAg ICAgICAgfQotICAgICAgICAgIH0sCi0gICAgICAgIH07Ci0gICAgICB9KTsKLQotICAgICAgc2V0 VGltZW91dChmdW5jdGlvbigpewotICAgICAgICBBbGVydGlmeS5uZXdDb25uZWN0aW9uRGlhbG9n KCdDb25uZWN0IHRvIHNlcnZlci4nKS5yZXNpemVUbyhwZ0FkbWluLkJyb3dzZXIuc3RkVy5tZCxw Z0FkbWluLkJyb3dzZXIuc3RkSC5tZCk7Ci0gICAgICB9LCA1MDApOwotICAgIH0pLmZhaWwoZnVu Y3Rpb24oKSB7Ci0gICAgICBOb3RpZnkuYWxlcnQoKS5zZXR0aW5nKHsKLSAgICAgICAgJ3RpdGxl JzogZ2V0dGV4dCgnQ29ubmVjdGlvbiBsb3N0JyksCi0gICAgICAgICdsYWJlbCc6Z2V0dGV4dCgn T0snKSwKLSAgICAgICAgJ21lc3NhZ2UnOiBnZXR0ZXh0KCdDb25uZWN0aW9uIHRvIHRoZSBzZXJ2 ZXIgaGFzIGJlZW4gbG9zdC4nKSwKLSAgICAgICAgJ29ub2snOiBmdW5jdGlvbigpewotICAgICAg ICAgIC8vQ2xvc2UgdGhlIHdpbmRvdyBhZnRlciBjb25uZWN0aW9uIGlzIGxvc3QKLSAgICAgICAg ICB3aW5kb3cuY2xvc2UoKTsKLSAgICAgICAgfSwKLSAgICAgIH0pLnNob3coKTsKLSAgICB9KTsK LQotICB9LAotCi19OwotCi1tb2R1bGUuZXhwb3J0cyA9IE5ld0Nvbm5lY3Rpb25EaWFsb2c7CmRp ZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9zdGF0aWMvanMvc3FsZWRpdG9yL25ld19jb25uZWN0aW9u X2RpYWxvZ19tb2RlbC5qcyBiL3dlYi9wZ2FkbWluL3N0YXRpYy9qcy9zcWxlZGl0b3IvbmV3X2Nv bm5lY3Rpb25fZGlhbG9nX21vZGVsLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAy ZDg0YmZlNmUuLjAwMDAwMDAwMAotLS0gYS93ZWIvcGdhZG1pbi9zdGF0aWMvanMvc3FsZWRpdG9y L25ld19jb25uZWN0aW9uX2RpYWxvZ19tb2RlbC5qcworKysgL2Rldi9udWxsCkBAIC0xLDQ3MyAr MCwwIEBACi0vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vCi0vLwotLy8gcGdBZG1pbiA0IC0gUG9zdGdyZVNRTCBUb29scwotLy8KLS8v IENvcHlyaWdodCAoQykgMjAxMyAtIDIwMjIsIFRoZSBwZ0FkbWluIERldmVsb3BtZW50IFRlYW0K LS8vIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgdGhlIFBvc3RncmVTUUwgTGljZW5j ZQotLy8KLS8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vCi0KLWltcG9ydCBnZXR0ZXh0IGZyb20gJ3NvdXJjZXMvZ2V0dGV4dCc7Ci1p bXBvcnQgXyBmcm9tICd1bmRlcnNjb3JlJzsKLWltcG9ydCAkIGZyb20gJ2pxdWVyeSc7Ci1pbXBv cnQgcGdBZG1pbiBmcm9tICdzb3VyY2VzL3BnYWRtaW4nOwotaW1wb3J0IEJhY2tmb3JtIGZyb20g J3BnYWRtaW4uYmFja2Zvcm0nOwotaW1wb3J0IHVybF9mb3IgZnJvbSAnc291cmNlcy91cmxfZm9y JzsKLWltcG9ydCBhbGVydGlmeSBmcm9tICdwZ2FkbWluLmFsZXJ0aWZ5anMnOwotaW1wb3J0IE5v dGlmeSBmcm9tICcuLi9oZWxwZXJzL05vdGlmaWVyJzsKLQotCi1leHBvcnQgZGVmYXVsdCBmdW5j dGlvbiBuZXdDb25uZWN0aW9uRGlhbG9nTW9kZWwocmVzcG9uc2UsIHNnaWQsIHNpZCwgaGFuZGxl ciwgY29ubl9zZWxmKSB7Ci0KLSAgbGV0IHNlcnZlcl9uYW1lID0gJyc7Ci0gIGxldCBkYXRhYmFz ZV9uYW1lID0gJyc7Ci0KLSAgbGV0IE5ld0Nvbm5lY3Rpb25TZWxlY3QyQ29udHJvbCA9IEJhY2tm b3JtLlNlbGVjdDJDb250cm9sLmV4dGVuZCh7Ci0gICAgZmV0Y2hEYXRhOiBmdW5jdGlvbigpewot ICAgICAgbGV0IHNlbGYgPSB0aGlzOwotICAgICAgbGV0IHVybCA9IHNlbGYuZmllbGQuZ2V0KCd1 cmwnKTsKLQotICAgICAgdXJsID0gdXJsX2Zvcih1cmwsIHsKLSAgICAgICAgJ3NpZCc6IHNlbGYu bW9kZWwuYXR0cmlidXRlcy5zZXJ2ZXIsCi0gICAgICAgICdzZ2lkJzogc2dpZCwKLSAgICAgIH0p OwotCi0gICAgICAkLmFqYXgoewotICAgICAgICB1cmw6IHVybCwKLSAgICAgICAgaGVhZGVyczog ewotICAgICAgICAgICdDYWNoZS1Db250cm9sJyA6ICduby1jYWNoZScsCi0gICAgICAgIH0sCi0g ICAgICB9KS5kb25lKGZ1bmN0aW9uIChyZXMpIHsKLSAgICAgICAgdmFyIHRyYW5zZm9ybSA9IHNl bGYuZmllbGQuZ2V0KCd0cmFuc2Zvcm0nKTsKLSAgICAgICAgaWYocmVzLmRhdGEuc3RhdHVzKXsK LSAgICAgICAgICBsZXQgZGF0YSA9IHJlcy5kYXRhLnJlc3VsdC5kYXRhOwotCi0gICAgICAgICAg aWYgKHRyYW5zZm9ybSAmJiBfLmlzRnVuY3Rpb24odHJhbnNmb3JtKSkgewotICAgICAgICAgICAg c2VsZi5maWVsZC5zZXQoJ29wdGlvbnMnLCB0cmFuc2Zvcm0uYmluZChzZWxmLCBkYXRhKSk7Ci0g ICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHNlbGYuZmllbGQuc2V0KCdvcHRpb25zJywg ZGF0YSk7Ci0gICAgICAgICAgfQotICAgICAgICB9IGVsc2UgewotICAgICAgICAgIGlmICh0cmFu c2Zvcm0gJiYgXy5pc0Z1bmN0aW9uKHRyYW5zZm9ybSkpIHsKLSAgICAgICAgICAgIHNlbGYuZmll bGQuc2V0KCdvcHRpb25zJywgdHJhbnNmb3JtLmJpbmQoc2VsZiwgW10pKTsKLSAgICAgICAgICB9 IGVsc2UgewotICAgICAgICAgICAgc2VsZi5maWVsZC5zZXQoJ29wdGlvbnMnLCBbXSk7Ci0gICAg ICAgICAgfQotICAgICAgICB9Ci0gICAgICAgIEJhY2tmb3JtLlNlbGVjdDJDb250cm9sLnByb3Rv dHlwZS5yZW5kZXIuYXBwbHkoc2VsZiwgYXJndW1lbnRzKTsKLSAgICAgIH0pLmZhaWwoZnVuY3Rp b24oZSl7Ci0gICAgICAgIGxldCBtc2cgPSAnJzsKLSAgICAgICAgaWYoZS5zdGF0dXMgPT0gNDA0 KSB7Ci0gICAgICAgICAgbXNnID0gJ1VuYWJsZSB0byBmaW5kIHVybC4nOwotICAgICAgICB9IGVs c2UgewotICAgICAgICAgIG1zZyA9IGUucmVzcG9uc2VKU09OLmVycm9ybXNnOwotICAgICAgICB9 Ci0gICAgICAgIE5vdGlmeS5lcnJvcihtc2cpOwotICAgICAgfSk7Ci0gICAgfSwKLSAgICByZW5k ZXI6IGZ1bmN0aW9uKCkgewotICAgICAgdGhpcy5mZXRjaERhdGEoKTsKLSAgICAgIHJldHVybiBC YWNrZm9ybS5TZWxlY3QyQ29udHJvbC5wcm90b3R5cGUucmVuZGVyLmFwcGx5KHRoaXMsIGFyZ3Vt ZW50cyk7Ci0gICAgfSwKLSAgICBvbkNoYW5nZTogZnVuY3Rpb24oKSB7Ci0gICAgICBCYWNrZm9y bS5TZWxlY3QyQ29udHJvbC5wcm90b3R5cGUub25DaGFuZ2UuYXBwbHkodGhpcywgYXJndW1lbnRz KTsKLSAgICB9LAotICB9KTsKLQotICB2YXIgZm9ybWF0Tm9kZSA9IGZ1bmN0aW9uIChvcHQpIHsK LSAgICBpZiAoIW9wdC5pZCkgewotICAgICAgcmV0dXJuIG9wdC50ZXh0OwotICAgIH0KLQotICAg IHZhciBvcHRpbWFnZSA9ICQob3B0LmVsZW1lbnQpLmRhdGEoJ2ltYWdlJyk7Ci0KLSAgICBpZiAo IW9wdGltYWdlKSB7Ci0gICAgICByZXR1cm4gb3B0LnRleHQ7Ci0gICAgfSBlbHNlIHsKLSAgICAg IHJldHVybiAkKCc8c3Bhbj48L3NwYW4+JykuYXBwZW5kKAotICAgICAgICAkKCc8c3Bhbj48L3Nw YW4+JywgewotICAgICAgICAgIGNsYXNzOiAnd2NUYWJJY29uICcgKyBvcHRpbWFnZSwKLSAgICAg ICAgfSkKLSAgICAgICkuYXBwZW5kKCQoJzxzcGFuPjwvc3Bhbj4nKS50ZXh0KG9wdC50ZXh0KSk7 Ci0gICAgfQotICB9OwotCi0gIGxldCBuZXdDb25uZWN0aW9uTW9kZWwgPSBwZ0FkbWluLkJyb3dz ZXIuRGF0YU1vZGVsLmV4dGVuZCh7Ci0gICAgaWRBdHRyaWJ1dGU6ICduYW1lJywKLSAgICBkZWZh dWx0czogewotICAgICAgc2VydmVyOiBwYXJzZUludChzaWQpLAotICAgICAgZGF0YWJhc2U6IG51 bGwsCi0gICAgICB1c2VyOiBudWxsLAotICAgICAgc2VydmVyX25hbWU6IHNlcnZlcl9uYW1lLAot ICAgICAgZGF0YWJhc2VfbmFtZTogZGF0YWJhc2VfbmFtZSwKLSAgICB9LAotICAgIHNjaGVtYTog WwotICAgICAgewotICAgICAgICBpZDogJ3NlcnZlcicsCi0gICAgICAgIG5hbWU6ICdzZXJ2ZXIn LAotICAgICAgICBsYWJlbDogZ2V0dGV4dCgnU2VydmVyJyksCi0gICAgICAgIHR5cGU6ICd0ZXh0 JywKLSAgICAgICAgZWRpdGFibGU6IHRydWUsCi0gICAgICAgIGRpc2FibGVkOiBmYWxzZSwKLSAg ICAgICAgc2VsZWN0MjogewotICAgICAgICAgIGFsbG93Q2xlYXI6IGZhbHNlLAotICAgICAgICAg IHdpZHRoOiAnc3R5bGUnLAotICAgICAgICAgIHRlbXBsYXRlUmVzdWx0OiBmb3JtYXROb2RlLAot ICAgICAgICAgIHRlbXBsYXRlU2VsZWN0aW9uOiBmb3JtYXROb2RlLAotICAgICAgICB9LAotICAg ICAgICBldmVudHM6IHsKLSAgICAgICAgICAnZm9jdXMgc2VsZWN0JzogJ2NsZWFySW52YWxpZCcs Ci0gICAgICAgICAgJ2tleWRvd24gOmlucHV0JzogJ3Byb2Nlc3NUYWInLAotICAgICAgICAgICdz ZWxlY3QyOnNlbGVjdCc6ICdvblNlbGVjdCcsCi0gICAgICAgICAgJ3NlbGVjdDI6c2VsZWN0aW5n JzogJ2JlZm9yZVNlbGVjdCcsCi0gICAgICAgICAgJ3NlbGVjdDI6Y2xlYXInOiAnb25DaGFuZ2Un LAotICAgICAgICB9LAotICAgICAgICB0cmFuc2Zvcm06IGZ1bmN0aW9uKGRhdGEpIHsKLSAgICAg ICAgICBsZXQgZ3JvdXBfdGVtcGxhdGVfb3B0aW9ucyA9IFtdOwotICAgICAgICAgIGZvciAobGV0 IGtleSBpbiBkYXRhKSB7Ci0gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eShrZXkp KSB7Ci0gICAgICAgICAgICAgIGdyb3VwX3RlbXBsYXRlX29wdGlvbnMucHVzaCh7J2dyb3VwJzog a2V5LCAnb3B0dmFsJzogZGF0YVtrZXldfSk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgfQot ICAgICAgICAgIHJldHVybiBncm91cF90ZW1wbGF0ZV9vcHRpb25zOwotICAgICAgICB9LAotICAg ICAgICBjb250cm9sOiBCYWNrZm9ybS5TZWxlY3QyQ29udHJvbC5leHRlbmQoewotICAgICAgICAg IHRlbXBsYXRlOiBfLnRlbXBsYXRlKFsKLSAgICAgICAgICAgICc8JSBpZihsYWJlbCA9PSBmYWxz ZSkge30gZWxzZSB7JT4nLAotICAgICAgICAgICAgJyAgPGxhYmVsIGNsYXNzPSI8JT1CYWNrZm9y bS5jb250cm9sTGFiZWxDbGFzc05hbWUlPiI+PCU9bGFiZWwlPjwvbGFiZWw+JywKLSAgICAgICAg ICAgICc8JSB9JT4nLAotICAgICAgICAgICAgJzxkaXYgY2xhc3M9IjwlPWNvbnRyb2xzQ2xhc3NO YW1lJT4iPicsCi0gICAgICAgICAgICAnIDxzZWxlY3QgY2xhc3M9IjwlPUJhY2tmb3JtLmNvbnRy b2xDbGFzc05hbWUlPiA8JT1leHRyYUNsYXNzZXMuam9pbihcJyBcJyklPiInLAotICAgICAgICAg ICAgJyAgbmFtZT0iPCU9bmFtZSU+IiB2YWx1ZT0iPCUtdmFsdWUlPiIgPCU9ZGlzYWJsZWQgPyAi ZGlzYWJsZWQiIDogIiIlPicsCi0gICAgICAgICAgICAnICA8JT1yZXF1aXJlZCA/ICJyZXF1aXJl ZCIgOiAiIiU+PCU9IHNlbGVjdDIubXVsdGlwbGUgPyAiIG11bHRpcGxlPiIgOiAiPiIgJT4nLAot ICAgICAgICAgICAgJyAgPCU9c2VsZWN0Mi5maXJzdF9lbXB0eSA/ICIgPG9wdGlvbj48L29wdGlv bj4iIDogIiIlPicsCi0gICAgICAgICAgICAnICA8JSBmb3IgKHZhciBpPTA7IGkgPCBvcHRpb25z Lmxlbmd0aDsgaSsrKSB7JT4nLAotICAgICAgICAgICAgJyAgIDwlIGlmIChvcHRpb25zW2ldLmdy b3VwKSB7ICU+JywKLSAgICAgICAgICAgICcgICAgIDwlIHZhciBncm91cCA9IG9wdGlvbnNbaV0u Z3JvdXA7ICU+JywKLSAgICAgICAgICAgICcgICAgIDwlIGlmIChvcHRpb25zW2ldLm9wdHZhbCkg eyAlPiA8JSB2YXIgb3B0aW9uX2xlbmd0aCA9IG9wdGlvbnNbaV0ub3B0dmFsLmxlbmd0aDsgJT4n LAotICAgICAgICAgICAgJyAgICAgIDxvcHRncm91cCBsYWJlbD0iPCU9Z3JvdXAlPiI+JywKLSAg ICAgICAgICAgICcgICAgICA8JSBmb3IgKHZhciBzdWJpbmRleD0wOyBzdWJpbmRleCA8IG9wdGlv bl9sZW5ndGg7IHN1YmluZGV4KyspIHslPicsCi0gICAgICAgICAgICAnICAgICAgICA8JSB2YXIg b3B0aW9uID0gb3B0aW9uc1tpXS5vcHR2YWxbc3ViaW5kZXhdOyAlPicsCi0gICAgICAgICAgICAn ICAgICAgICA8b3B0aW9uICcsCi0gICAgICAgICAgICAnICAgICAgICA8JSBpZiAob3B0aW9uLmlt YWdlKSB7ICU+IGRhdGEtaW1hZ2U9PCU9b3B0aW9uLmltYWdlJT4gPCV9JT4nLAotICAgICAgICAg ICAgJyAgICAgICAgPCUgaWYgKG9wdGlvbi5jb25uZWN0ZWQpIHsgJT4gZGF0YS1jb25uZWN0ZWQ9 Y29ubmVjdGVkIDwlfSU+JywKLSAgICAgICAgICAgICcgICAgICAgIHZhbHVlPTwlLSBmb3JtYXR0 ZXIuZnJvbVJhdyhvcHRpb24udmFsdWUpICU+JywKLSAgICAgICAgICAgICcgICAgICAgIDwlIGlm IChvcHRpb24uc2VsZWN0ZWQpIHslPnNlbGVjdGVkPSJzZWxlY3RlZCI8JX0gZWxzZSB7JT4nLAot ICAgICAgICAgICAgJyAgICAgICAgPCUgaWYgKCFzZWxlY3QyLm11bHRpcGxlICYmIG9wdGlvbi52 YWx1ZSA9PT0gcmF3VmFsdWUpIHslPnNlbGVjdGVkPSJzZWxlY3RlZCI8JX0lPicsCi0gICAgICAg ICAgICAnICAgICAgICA8JSBpZiAoc2VsZWN0Mi5tdWx0aXBsZSAmJiByYXdWYWx1ZSAmJiByYXdW YWx1ZS5pbmRleE9mKG9wdGlvbi52YWx1ZSkgIT0gLTEpeyU+c2VsZWN0ZWQ9InNlbGVjdGVkIiBk YXRhLWluZGV4PSJyYXdWYWx1ZS5pbmRleE9mKG9wdGlvbi52YWx1ZSkiPCV9JT4nLAotICAgICAg ICAgICAgJyAgICAgICAgPCV9JT4nLAotICAgICAgICAgICAgJyAgICAgICAgPCU9IGRpc2FibGVk ID8gImRpc2FibGVkIiA6ICIiJT4+PCUtb3B0aW9uLmxhYmVsJT48L29wdGlvbj4nLAotICAgICAg ICAgICAgJyAgICAgIDwlfSU+JywKLSAgICAgICAgICAgICcgICAgICA8L29wdGdyb3VwPicsCi0g ICAgICAgICAgICAnICAgICA8JX0lPicsCi0gICAgICAgICAgICAnICAgPCV9IGVsc2UgeyU+JywK LSAgICAgICAgICAgICcgICAgIDwlIHZhciBvcHRpb24gPSBvcHRpb25zW2ldOyAlPicsCi0gICAg ICAgICAgICAnICAgICA8b3B0aW9uICcsCi0gICAgICAgICAgICAnICAgICA8JSBpZiAob3B0aW9u LmltYWdlKSB7ICU+IGRhdGEtaW1hZ2U9PCU9b3B0aW9uLmltYWdlJT4gPCV9JT4nLAotICAgICAg ICAgICAgJyAgICAgPCUgaWYgKG9wdGlvbi5jb25uZWN0ZWQpIHsgJT4gZGF0YS1jb25uZWN0ZWQ9 Y29ubmVjdGVkIDwlfSU+JywKLSAgICAgICAgICAgICcgICAgIHZhbHVlPTwlLSBmb3JtYXR0ZXIu ZnJvbVJhdyhvcHRpb24udmFsdWUpICU+JywKLSAgICAgICAgICAgICcgICAgIDwlIGlmIChvcHRp b24uc2VsZWN0ZWQpIHslPnNlbGVjdGVkPSJzZWxlY3RlZCI8JX0gZWxzZSB7JT4nLAotICAgICAg ICAgICAgJyAgICAgPCUgaWYgKCFzZWxlY3QyLm11bHRpcGxlICYmIG9wdGlvbi52YWx1ZSA9PT0g cmF3VmFsdWUpIHslPnNlbGVjdGVkPSJzZWxlY3RlZCI8JX0lPicsCi0gICAgICAgICAgICAnICAg ICA8JSBpZiAoc2VsZWN0Mi5tdWx0aXBsZSAmJiByYXdWYWx1ZSAmJiByYXdWYWx1ZS5pbmRleE9m KG9wdGlvbi52YWx1ZSkgIT0gLTEpeyU+c2VsZWN0ZWQ9InNlbGVjdGVkIiBkYXRhLWluZGV4PSJy YXdWYWx1ZS5pbmRleE9mKG9wdGlvbi52YWx1ZSkiPCV9JT4nLAotICAgICAgICAgICAgJyAgICAg PCV9JT4nLAotICAgICAgICAgICAgJyAgICAgPCU9IGRpc2FibGVkID8gImRpc2FibGVkIiA6ICIi JT4+PCUtb3B0aW9uLmxhYmVsJT48L29wdGlvbj4nLAotICAgICAgICAgICAgJyAgIDwlfSU+JywK LSAgICAgICAgICAgICcgIDwlfSU+JywKLSAgICAgICAgICAgICcgPC9zZWxlY3Q+JywKLSAgICAg ICAgICAgICcgPCUgaWYgKGhlbHBNZXNzYWdlICYmIGhlbHBNZXNzYWdlLmxlbmd0aCkgeyAlPics Ci0gICAgICAgICAgICAnIDxzcGFuIGNsYXNzPSI8JT1CYWNrZm9ybS5oZWxwTWVzc2FnZUNsYXNz TmFtZSU+Ij48JT1oZWxwTWVzc2FnZSU+PC9zcGFuPicsCi0gICAgICAgICAgICAnIDwlIH0gJT4n LAotICAgICAgICAgICAgJzwvZGl2PicsCi0gICAgICAgICAgXS5qb2luKCdcbicpKSwKLSAgICAg ICAgICBiZWZvcmVTZWxlY3Q6IGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgdmFyIHNlbFZhbCA9 IGFyZ3VtZW50c1swXS5wYXJhbXMuYXJncy5kYXRhLmlkOwotCi0gICAgICAgICAgICBpZih0aGlz LmZpZWxkLmdldCgnY29ubmVjdCcpICYmIHRoaXMuJGVsLmZpbmQoJ29wdGlvblt2YWx1ZT0iJytz ZWxWYWwrJyJdJykuYXR0cignZGF0YS1jb25uZWN0ZWQnKSAhPT0gJ2Nvbm5lY3RlZCcpIHsKLSAg ICAgICAgICAgICAgdGhpcy5maWVsZC5nZXQoJ2Nvbm5lY3QnKS5hcHBseSh0aGlzLCBbc2VsVmFs LCB0aGlzLmNoYW5nZUljb24uYmluZCh0aGlzKV0pOwotICAgICAgICAgICAgfSBlbHNlIHsKLSAg ICAgICAgICAgICAgJCh0aGlzLiRzZWwpLnRyaWdnZXIoJ2NoYW5nZScpOwotICAgICAgICAgICAg ICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7IHRoaXMub25DaGFuZ2UuYXBwbHkodGhpcyk7IH0uYmlu ZCh0aGlzKSwgMjAwKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICB9LAotICAgICAgICAgIGNo YW5nZUljb246IGZ1bmN0aW9uKGRhdGEpIHsKLSAgICAgICAgICAgIGxldCBzcGFuID0gdGhpcy4k ZWwuZmluZCgnLnNlbGVjdDItc2VsZWN0aW9uIC5zZWxlY3QyLXNlbGVjdGlvbl9fcmVuZGVyZWQg c3Bhbi53Y1RhYkljb24nKSwKLSAgICAgICAgICAgICAgc2VsU3BhbiA9IHRoaXMuJGVsLmZpbmQo J29wdGlvbjpzZWxlY3RlZCcpOwotCi0gICAgICAgICAgICBpZiAoc3Bhbi5oYXNDbGFzcygnaWNv bi1zZXJ2ZXItbm90LWNvbm5lY3RlZCcpIHx8IHNwYW4uaGFzQ2xhc3MoJ2ljb24tc2hhcmVkLXNl cnZlci1ub3QtY29ubmVjdGVkJykpIHsKLSAgICAgICAgICAgICAgbGV0IGljb24gPSAoZGF0YS5p Y29uKSA/IGRhdGEuaWNvbiA6ICdpY29uLXBnJzsKLSAgICAgICAgICAgICAgc3Bhbi5yZW1vdmVD bGFzcygnaWNvbi1zZXJ2ZXItbm90LWNvbm5lY3RlZCcpOwotICAgICAgICAgICAgICBzcGFuLmFk ZENsYXNzKGljb24pOwotICAgICAgICAgICAgICBzcGFuLmF0dHIoJ2RhdGEtY29ubmVjdGVkJywg J2Nvbm5lY3RlZCcpOwotCi0gICAgICAgICAgICAgIHNlbFNwYW4uZGF0YSgpLmltYWdlID0gaWNv bjsKLSAgICAgICAgICAgICAgc2VsU3Bhbi5hdHRyKCdkYXRhLWNvbm5lY3RlZCcsICdjb25uZWN0 ZWQnKTsKLSAgICAgICAgICAgICAgYWxlcnRpZnkuY29ubmVjdFNlcnZlcigpLmRlc3Ryb3koKTsK LSAgICAgICAgICAgICAgdGhpcy5vbkNoYW5nZS5hcHBseSh0aGlzKTsKLSAgICAgICAgICAgIH0K LSAgICAgICAgICAgIGVsc2UgaWYgKHNwYW4uaGFzQ2xhc3MoJ2ljb24tZGF0YWJhc2Utbm90LWNv bm5lY3RlZCcpKSB7Ci0gICAgICAgICAgICAgIGxldCBpY29uID0gKGRhdGEuaWNvbikgPyBkYXRh Lmljb24gOiAncGctaWNvbi1kYXRhYmFzZSc7Ci0KLSAgICAgICAgICAgICAgc3Bhbi5yZW1vdmVD bGFzcygnaWNvbi1kYXRhYmFzZS1ub3QtY29ubmVjdGVkJyk7Ci0gICAgICAgICAgICAgIHNwYW4u YWRkQ2xhc3MoaWNvbik7Ci0gICAgICAgICAgICAgIHNwYW4uYXR0cignZGF0YS1jb25uZWN0ZWQn LCAnY29ubmVjdGVkJyk7Ci0KLSAgICAgICAgICAgICAgc2VsU3Bhbi5yZW1vdmVDbGFzcygnaWNv bi1kYXRhYmFzZS1ub3QtY29ubmVjdGVkJyk7Ci0gICAgICAgICAgICAgIHNlbFNwYW4uZGF0YSgp LmltYWdlID0gaWNvbjsKLSAgICAgICAgICAgICAgc2VsU3Bhbi5hdHRyKCdkYXRhLWNvbm5lY3Rl ZCcsICdjb25uZWN0ZWQnKTsKLSAgICAgICAgICAgICAgYWxlcnRpZnkuY29ubmVjdFNlcnZlcigp LmRlc3Ryb3koKTsKLSAgICAgICAgICAgICAgdGhpcy5vbkNoYW5nZS5hcHBseSh0aGlzKTsKLSAg ICAgICAgICAgIH0KLSAgICAgICAgICB9LAotICAgICAgICAgIGNvbm5lY3Q6IGZ1bmN0aW9uKHNl bGYpIHsKLSAgICAgICAgICAgIGxldCBsb2NhbF9zZWxmID0gc2VsZjsKLQotICAgICAgICAgICAg aWYoYWxlcnRpZnkuY29ubmVjdFNlcnZlcikgewotICAgICAgICAgICAgICBkZWxldGUgYWxlcnRp ZnkuY29ubmVjdFNlcnZlcjsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgYWxlcnRpZnku ZGlhbG9nKCdjb25uZWN0U2VydmVyJywgZnVuY3Rpb24gZmFjdG9yeSgpIHsKLSAgICAgICAgICAg ICAgcmV0dXJuIHsKLSAgICAgICAgICAgICAgICBtYWluOiBmdW5jdGlvbigKLSAgICAgICAgICAg ICAgICAgIHRpdGxlLCBtZXNzYWdlLCBzZXJ2ZXJfaWQsIHN1Ym1pdF9wYXNzd29yZD10cnVlLCBj b25uZWN0X3NlcnZlcj1udWxsLAotICAgICAgICAgICAgICAgICkgewotICAgICAgICAgICAgICAg ICAgdGhpcy5zZXQoJ3RpdGxlJywgdGl0bGUpOwotICAgICAgICAgICAgICAgICAgdGhpcy5tZXNz YWdlID0gbWVzc2FnZTsKLSAgICAgICAgICAgICAgICAgIHRoaXMuc2VydmVyX2lkID0gc2VydmVy X2lkOwotICAgICAgICAgICAgICAgICAgdGhpcy5zdWJtaXRfcGFzc3dvcmQgPSBzdWJtaXRfcGFz c3dvcmQ7Ci0gICAgICAgICAgICAgICAgICB0aGlzLmNvbm5lY3Rfc2VydmVyID0gY29ubmVjdF9z ZXJ2ZXI7Ci0gICAgICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICAgICBzZXR1cDpmdW5jdGlv bigpIHsKLSAgICAgICAgICAgICAgICAgIHJldHVybiB7Ci0gICAgICAgICAgICAgICAgICAgIGJ1 dHRvbnM6W3sKLSAgICAgICAgICAgICAgICAgICAgICB0ZXh0OiBnZXR0ZXh0KCdDYW5jZWwnKSwg Y2xhc3NOYW1lOiAnYnRuIGJ0bi1zZWNvbmRhcnkgZmEgZmEtdGltZXMgcGctYWxlcnRpZnktYnV0 dG9uJywKLSAgICAgICAgICAgICAgICAgICAgICBrZXk6IDI3LAotICAgICAgICAgICAgICAgICAg ICB9LHsKLSAgICAgICAgICAgICAgICAgICAgICB0ZXh0OiBnZXR0ZXh0KCdPSycpLCBrZXk6IDEz LCBjbGFzc05hbWU6ICdidG4gYnRuLXByaW1hcnkgZmEgZmEtY2hlY2sgcGctYWxlcnRpZnktYnV0 dG9uJywKLSAgICAgICAgICAgICAgICAgICAgfV0sCi0gICAgICAgICAgICAgICAgICAgIGZvY3Vz OiB7ZWxlbWVudDogJyNwYXNzd29yZCcsIHNlbGVjdDogdHJ1ZX0sCi0gICAgICAgICAgICAgICAg ICAgIG9wdGlvbnM6IHsKLSAgICAgICAgICAgICAgICAgICAgICBtb2RhbDogMCwgcmVzaXphYmxl OiBmYWxzZSwgbWF4aW1pemFibGU6IGZhbHNlLCBwaW5uYWJsZTogZmFsc2UsCi0gICAgICAgICAg ICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICAgICB9OwotICAgICAgICAgICAgICAgIH0sCi0g ICAgICAgICAgICAgICAgYnVpbGQ6ZnVuY3Rpb24oKSB7IC8qVGhpcyBpcyBpbnRlbnRpb25hbCAo U29uYXJRdWJlKSovCi0gICAgICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICAgICBwcmVwYXJl OmZ1bmN0aW9uKCkgewotICAgICAgICAgICAgICAgICAgdGhpcy5zZXRDb250ZW50KHRoaXMubWVz c2FnZSk7Ci0gICAgICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICAgICBjYWxsYmFjazogZnVu Y3Rpb24oY2xvc2VFdmVudCkgewotICAgICAgICAgICAgICAgICAgdmFyIGxvYWRpbmdEaXYgPSAk KCcjc2hvd19maWx0ZXJfcHJvZ3Jlc3MnKTsKLSAgICAgICAgICAgICAgICAgIGlmIChjbG9zZUV2 ZW50LmJ1dHRvbi50ZXh0ID09IGdldHRleHQoJ09LJykpIHsKLSAgICAgICAgICAgICAgICAgICAg aWYodGhpcy5zdWJtaXRfcGFzc3dvcmQpIHsKLSAgICAgICAgICAgICAgICAgICAgICB2YXIgX3Vy bCA9IHVybF9mb3IoJ3NxbGVkaXRvci5jb25uZWN0X3NlcnZlcicsIHsnc2lkJzogdGhpcy5zZXJ2 ZXJfaWR9KTsKLQotICAgICAgICAgICAgICAgICAgICAgIGxvYWRpbmdEaXYucmVtb3ZlQ2xhc3Mo J2Qtbm9uZScpOwotICAgICAgICAgICAgICAgICAgICAgICQuYWpheCh7Ci0gICAgICAgICAgICAg ICAgICAgICAgICB0eXBlOiAnUE9TVCcsCi0gICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0 OiAzMDAwMCwKLSAgICAgICAgICAgICAgICAgICAgICAgIHVybDogX3VybCwKLSAgICAgICAgICAg ICAgICAgICAgICAgIGRhdGE6ICQoJyNmcm1QYXNzd29yZCcpLnNlcmlhbGl6ZSgpLAotICAgICAg ICAgICAgICAgICAgICAgIH0pCi0gICAgICAgICAgICAgICAgICAgICAgICAuZG9uZShmdW5jdGlv bihyZXMpIHsKLQotICAgICAgICAgICAgICAgICAgICAgICAgICBsb2NhbF9zZWxmLm1vZGVsLmF0 dHJpYnV0ZXMuZGF0YWJhc2UgPSBudWxsOwotICAgICAgICAgICAgICAgICAgICAgICAgICBsb2Nh bF9zZWxmLmNoYW5nZUljb24ocmVzLmRhdGEpOwotICAgICAgICAgICAgICAgICAgICAgICAgICBs b2NhbF9zZWxmLm1vZGVsLmF0dHJpYnV0ZXMudXNlciA9IG51bGw7Ci0gICAgICAgICAgICAgICAg ICAgICAgICAgIGxvY2FsX3NlbGYubW9kZWwuYXR0cmlidXRlcy5yb2xlID0gbnVsbDsKLSAgICAg ICAgICAgICAgICAgICAgICAgICAgQmFja2Zvcm0uU2VsZWN0MkNvbnRyb2wucHJvdG90eXBlLm9u Q2hhbmdlLmFwcGx5KGxvY2FsX3NlbGYsIGFyZ3VtZW50cyk7Ci0gICAgICAgICAgICAgICAgICAg ICAgICAgIE9iamVjdC5rZXlzKHJlc3BvbnNlLnNlcnZlcl9saXN0KS5mb3JFYWNoKGtleSA9PiB7 Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2Uuc2VydmVyX2xpc3Rba2V5XS5m b3JFYWNoKG9wdGlvbiA9PiB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAob3B0 aW9uLnZhbHVlID09IGxvY2FsX3NlbGYuZ2V0VmFsdWVGcm9tRE9NKCkpIHsKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2Uuc2VydmVyX25hbWUgPSBvcHRpb24ubGFiZWw7 Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgfSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgIH0pOwotCi0gICAgICAgICAgICAg ICAgICAgICAgICAgIGxvYWRpbmdEaXYuYWRkQ2xhc3MoJ2Qtbm9uZScpOwotICAgICAgICAgICAg ICAgICAgICAgICAgICBhbGVydGlmeS5jb25uZWN0U2VydmVyKCkuZGVzdHJveSgpOwotICAgICAg ICAgICAgICAgICAgICAgICAgfSkKLSAgICAgICAgICAgICAgICAgICAgICAgIC5mYWlsKGZ1bmN0 aW9uKHhocikgewotICAgICAgICAgICAgICAgICAgICAgICAgICBsb2FkaW5nRGl2LmFkZENsYXNz KCdkLW5vbmUnKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgYWxlcnRpZnkuY29ubmVjdFNl cnZlcigpLmRlc3Ryb3koKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgYWxlcnRpZnkuY29u bmVjdFNlcnZlcignQ29ubmVjdCB0byBzZXJ2ZXInLCB4aHIucmVzcG9uc2VKU09OLnJlc3VsdCwg bG9jYWxfc2VsZi5nZXRWYWx1ZUZyb21ET00oKSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICB9 KTsKLSAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICBp ZihPYmplY3Qua2V5cyh0aGlzLmNvbm5lY3Rfc2VydmVyKS5sZW5ndGggPiAwKSB7Ci0gICAgICAg ICAgICAgICAgICAgICAgICB0aGlzLmNvbm5lY3Rfc2VydmVyWydwYXNzd29yZCddID0gJCgnI3Bh c3N3b3JkJykudmFsKCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbm5lY3Rfc2Vy dmVyWydpc19zZWxlY3RlZCddID0gZmFsc2U7Ci0gICAgICAgICAgICAgICAgICAgICAgICBoYW5k bGVyLmdyaWRWaWV3Lm9uX2NoYW5nZV9jb25uZWN0aW9uKHRoaXMuY29ubmVjdF9zZXJ2ZXIsIGNv bm5fc2VsZiwgZmFsc2UpOwotICAgICAgICAgICAgICAgICAgICAgICAgbG9hZGluZ0RpdiA9ICQo JyNmZXRjaGluZ19kYXRhJyk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBsb2FkaW5nRGl2LmFk ZENsYXNzKCdkLW5vbmUnKTsKLSAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAg ICAgICAgICAgICAgICAgICAgcmVzcG9uc2UucGFzc3dvcmQgPSAkKCcjcGFzc3dvcmQnKS52YWwo KTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGxvYWRpbmdEaXYuYWRkQ2xhc3MoJ2Qtbm9uZScp OwotICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAg ICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgbG9jYWxfc2VsZi5tb2Rl bC5hdHRyaWJ1dGVzLmRhdGFiYXNlID0gbnVsbDsKLSAgICAgICAgICAgICAgICAgICAgbG9jYWxf c2VsZi5tb2RlbC5hdHRyaWJ1dGVzLnVzZXIgPSBudWxsOwotICAgICAgICAgICAgICAgICAgICBs b2NhbF9zZWxmLm1vZGVsLmF0dHJpYnV0ZXMucm9sZSA9IG51bGw7Ci0gICAgICAgICAgICAgICAg ICAgIEJhY2tmb3JtLlNlbGVjdDJDb250cm9sLnByb3RvdHlwZS5vbkNoYW5nZS5hcHBseShsb2Nh bF9zZWxmLCBhcmd1bWVudHMpOwotICAgICAgICAgICAgICAgICAgICBsb2FkaW5nRGl2LmFkZENs YXNzKCdkLW5vbmUnKTsKLSAgICAgICAgICAgICAgICAgICAgYWxlcnRpZnkuY29ubmVjdFNlcnZl cigpLmRlc3Ryb3koKTsKLQotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAg Y2xvc2VFdmVudC5jbG9zZSA9IHRydWU7Ci0gICAgICAgICAgICAgICAgfSwKLSAgICAgICAgICAg ICAgfTsKLSAgICAgICAgICAgIH0pOwotICAgICAgICAgIH0sCi0gICAgICAgICAgcmVuZGVyOiBm dW5jdGlvbigpIHsKLSAgICAgICAgICAgIGxldCBzZWxmID0gdGhpczsKLSAgICAgICAgICAgIHNl bGYuY29ubmVjdChzZWxmKTsKLSAgICAgICAgICAgIE9iamVjdC5rZXlzKHJlc3BvbnNlLnNlcnZl cl9saXN0KS5mb3JFYWNoKGtleSA9PiB7Ci0gICAgICAgICAgICAgIHJlc3BvbnNlLnNlcnZlcl9s aXN0W2tleV0uZm9yRWFjaChvcHRpb24gPT4gewotICAgICAgICAgICAgICAgIGlmIChvcHRpb24u dmFsdWUgPT0gcGFyc2VJbnQoc2lkKSkgewotICAgICAgICAgICAgICAgICAgcmVzcG9uc2Uuc2Vy dmVyX25hbWUgPSBvcHRpb24ubGFiZWw7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAg ICB9KTsKLSAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgdmFyIHRyYW5zZm9ybSA9IHNlbGYu ZmllbGQuZ2V0KCd0cmFuc2Zvcm0nKSB8fCBzZWxmLmRlZmF1bHRzLnRyYW5zZm9ybTsKLSAgICAg ICAgICAgIGlmICh0cmFuc2Zvcm0gJiYgXy5pc0Z1bmN0aW9uKHRyYW5zZm9ybSkpIHsKLSAgICAg ICAgICAgICAgc2VsZi5maWVsZC5zZXQoJ29wdGlvbnMnLCB0cmFuc2Zvcm0uYmluZChzZWxmLCBy ZXNwb25zZS5zZXJ2ZXJfbGlzdCkpOwotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAg ICAgc2VsZi5maWVsZC5zZXQoJ29wdGlvbnMnLCByZXNwb25zZS5zZXJ2ZXJfbGlzdCk7Ci0gICAg ICAgICAgICB9Ci0gICAgICAgICAgICByZXR1cm4gQmFja2Zvcm0uU2VsZWN0MkNvbnRyb2wucHJv dG90eXBlLnJlbmRlci5hcHBseShzZWxmLCBhcmd1bWVudHMpOwotICAgICAgICAgIH0sCi0gICAg ICAgICAgb25DaGFuZ2U6IGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgdGhpcy5tb2RlbC5hdHRy aWJ1dGVzLmRhdGFiYXNlID0gbnVsbDsKLSAgICAgICAgICAgIHRoaXMubW9kZWwuYXR0cmlidXRl cy51c2VyID0gbnVsbDsKLSAgICAgICAgICAgIGxldCBzZWxmID0gdGhpczsKLSAgICAgICAgICAg IHNlbGYuY29ubmVjdChzZWxmKTsKLQotICAgICAgICAgICAgbGV0IHVybCA9IHVybF9mb3IoJ3Nx bGVkaXRvci5jb25uZWN0X3NlcnZlcicsIHsKLSAgICAgICAgICAgICAgJ3NpZCc6IHNlbGYuZ2V0 VmFsdWVGcm9tRE9NKCksCi0gICAgICAgICAgICAgICd1c3InOiBzZWxmLm1vZGVsLmF0dHJpYnV0 ZXMudXNlciwKLSAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgdmFyIGxvYWRpbmdEaXYgPSAk KCcjc2hvd19maWx0ZXJfcHJvZ3Jlc3MnKTsKLSAgICAgICAgICAgIGxvYWRpbmdEaXYucmVtb3Zl Q2xhc3MoJ2Qtbm9uZScpOwotICAgICAgICAgICAgJC5hamF4KHsKLSAgICAgICAgICAgICAgdXJs OiB1cmwsCi0gICAgICAgICAgICAgIHR5cGU6ICdQT1NUJywKLSAgICAgICAgICAgICAgaGVhZGVy czogewotICAgICAgICAgICAgICAgICdDYWNoZS1Db250cm9sJyA6ICduby1jYWNoZScsCi0gICAg ICAgICAgICAgIH0sCi0gICAgICAgICAgICB9KS5kb25lKGZ1bmN0aW9uICgpIHsKLSAgICAgICAg ICAgICAgQmFja2Zvcm0uU2VsZWN0MkNvbnRyb2wucHJvdG90eXBlLm9uQ2hhbmdlLmFwcGx5KHNl bGYsIGFyZ3VtZW50cyk7Ci0gICAgICAgICAgICAgIE9iamVjdC5rZXlzKHJlc3BvbnNlLnNlcnZl cl9saXN0KS5mb3JFYWNoKGtleSA9PiB7Ci0gICAgICAgICAgICAgICAgcmVzcG9uc2Uuc2VydmVy X2xpc3Rba2V5XS5mb3JFYWNoKG9wdGlvbiA9PiB7Ci0gICAgICAgICAgICAgICAgICBpZiAob3B0 aW9uLnZhbHVlID09IHNlbGYuZ2V0VmFsdWVGcm9tRE9NKCkpIHsKLSAgICAgICAgICAgICAgICAg ICAgcmVzcG9uc2Uuc2VydmVyX25hbWUgPSBvcHRpb24ubGFiZWw7Ci0gICAgICAgICAgICAgICAg ICB9Ci0gICAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAg ICBsb2FkaW5nRGl2LmFkZENsYXNzKCdkLW5vbmUnKTsKLSAgICAgICAgICAgIH0pLmZhaWwoZnVu Y3Rpb24oeGhyKXsKLSAgICAgICAgICAgICAgbG9hZGluZ0Rpdi5hZGRDbGFzcygnZC1ub25lJyk7 Ci0gICAgICAgICAgICAgIGFsZXJ0aWZ5LmNvbm5lY3RTZXJ2ZXIoJ0Nvbm5lY3QgdG8gc2VydmVy JywgeGhyLnJlc3BvbnNlSlNPTi5yZXN1bHQsIHNlbGYuZ2V0VmFsdWVGcm9tRE9NKCkpOwotICAg ICAgICAgICAgfSk7Ci0KLSAgICAgICAgICB9LAotICAgICAgICB9KSwKLSAgICAgIH0sCi0gICAg ICB7Ci0gICAgICAgIGlkOiAnZGF0YWJhc2UnLAotICAgICAgICBuYW1lOiAnZGF0YWJhc2UnLAot ICAgICAgICBsYWJlbDogZ2V0dGV4dCgnRGF0YWJhc2UnKSwKLSAgICAgICAgdHlwZTogJ3RleHQn LAotICAgICAgICBlZGl0YWJsZTogdHJ1ZSwKLSAgICAgICAgZGlzYWJsZWQ6IGZ1bmN0aW9uKG0p IHsKLSAgICAgICAgICBsZXQgc2VsZl9sb2NhbCA9IHRoaXM7Ci0gICAgICAgICAgaWYgKCFfLmlz VW5kZWZpbmVkKG0uZ2V0KCdzZXJ2ZXInKSkgJiYgIV8uaXNOdWxsKG0uZ2V0KCdzZXJ2ZXInKSkK LSAgICAgICAgICAgICYmIG0uZ2V0KCdzZXJ2ZXInKSAhPT0gJycpIHsKLSAgICAgICAgICAgIHNl dFRpbWVvdXQoZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICAgIGlmKHNlbGZfbG9jYWwub3B0aW9u cy5sZW5ndGgpIHsKLSAgICAgICAgICAgICAgICBzZWxmX2xvY2FsLm9wdGlvbnMuZm9yRWFjaChk YiA9PiB7Ci0gICAgICAgICAgICAgICAgICBpZiAoZGIuc2VsZWN0ZWQpIHsKLSAgICAgICAgICAg ICAgICAgICAgbS5zZXQoJ2RhdGFiYXNlJywgZGIudmFsdWUpOwotICAgICAgICAgICAgICAgICAg fQotICAgICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9LCAx MCk7Ci0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgICAgfQotCi0gICAgICAgICAg cmV0dXJuIHRydWU7Ci0gICAgICAgIH0sCi0gICAgICAgIGRlcHM6IFsnc2VydmVyJ10sCi0gICAg ICAgIHVybDogJ3NxbGVkaXRvci5nZXRfbmV3X2Nvbm5lY3Rpb25fZGF0YWJhc2UnLAotICAgICAg ICBzZWxlY3QyOiB7Ci0gICAgICAgICAgYWxsb3dDbGVhcjogZmFsc2UsCi0gICAgICAgICAgd2lk dGg6ICcxMDAlJywKLSAgICAgICAgICBmaXJzdF9lbXB0eTogdHJ1ZSwKLSAgICAgICAgICBzZWxl Y3RfZmlyc3Q6IGZhbHNlLAotICAgICAgICB9LAotICAgICAgICBleHRyYUNsYXNzZXM6WyduZXct Y29ubmVjdGlvbi1kaWFsb2ctc3R5bGUnXSwKLSAgICAgICAgY29udHJvbDogTmV3Q29ubmVjdGlv blNlbGVjdDJDb250cm9sLAotICAgICAgICB0cmFuc2Zvcm06IGZ1bmN0aW9uKGRhdGEpIHsKLSAg ICAgICAgICByZXNwb25zZS5kYXRhYmFzZV9saXN0ID0gZGF0YTsKLSAgICAgICAgICByZXR1cm4g ZGF0YTsKLSAgICAgICAgfSwKLSAgICAgIH0sCi0gICAgICB7Ci0gICAgICAgIGlkOiAndXNlcics Ci0gICAgICAgIG5hbWU6ICd1c2VyJywKLSAgICAgICAgbGFiZWw6IGdldHRleHQoJ1VzZXInKSwK LSAgICAgICAgdHlwZTogJ3RleHQnLAotICAgICAgICBlZGl0YWJsZTogdHJ1ZSwKLSAgICAgICAg ZGVwczogWydzZXJ2ZXInXSwKLSAgICAgICAgc2VsZWN0MjogewotICAgICAgICAgIGFsbG93Q2xl YXI6IGZhbHNlLAotICAgICAgICAgIHdpZHRoOiAnMTAwJScsCi0gICAgICAgIH0sCi0gICAgICAg IGNvbnRyb2w6IE5ld0Nvbm5lY3Rpb25TZWxlY3QyQ29udHJvbCwKLSAgICAgICAgdXJsOiAnc3Fs ZWRpdG9yLmdldF9uZXdfY29ubmVjdGlvbl91c2VyJywKLSAgICAgICAgZGlzYWJsZWQ6IGZ1bmN0 aW9uKG0pIHsKLSAgICAgICAgICBsZXQgc2VsZl9sb2NhbCA9IHRoaXM7Ci0gICAgICAgICAgaWYg KCFfLmlzVW5kZWZpbmVkKG0uZ2V0KCdzZXJ2ZXInKSkgJiYgIV8uaXNOdWxsKG0uZ2V0KCdzZXJ2 ZXInKSkKLSAgICAgICAgICAgICYmIG0uZ2V0KCdzZXJ2ZXInKSAhPT0gJycpIHsKLSAgICAgICAg ICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICAgIGlmKHNlbGZfbG9jYWwu b3B0aW9ucy5sZW5ndGgpIHsKLSAgICAgICAgICAgICAgICBtLnNldCgndXNlcicsIHNlbGZfbG9j YWwub3B0aW9uc1swXS52YWx1ZSk7Ci0gICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0sIDEw KTsKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgICB9Ci0gICAgICAgICAgcmV0 dXJuIHRydWU7Ci0gICAgICAgIH0sCi0gICAgICB9LHsKLSAgICAgICAgaWQ6ICdyb2xlJywKLSAg ICAgICAgbmFtZTogJ3JvbGUnLAotICAgICAgICBsYWJlbDogZ2V0dGV4dCgnUm9sZScpLAotICAg ICAgICB0eXBlOiAndGV4dCcsCi0gICAgICAgIGVkaXRhYmxlOiB0cnVlLAotICAgICAgICBkZXBz OiBbJ3NlcnZlciddLAotICAgICAgICBzZWxlY3QyOiB7Ci0gICAgICAgICAgYWxsb3dDbGVhcjog ZmFsc2UsCi0gICAgICAgICAgd2lkdGg6ICcxMDAlJywKLSAgICAgICAgICBmaXJzdF9lbXB0eTog dHJ1ZSwKLSAgICAgICAgfSwKLSAgICAgICAgY29udHJvbDogTmV3Q29ubmVjdGlvblNlbGVjdDJD b250cm9sLAotICAgICAgICB1cmw6ICdzcWxlZGl0b3IuZ2V0X25ld19jb25uZWN0aW9uX3JvbGUn LAotICAgICAgICBkaXNhYmxlZDogZmFsc2UsCi0gICAgICB9LAotICAgIF0sCi0gICAgdmFsaWRh dGU6IGZ1bmN0aW9uKCkgewotICAgICAgbGV0IG1zZyA9IG51bGw7Ci0gICAgICB0aGlzLmVycm9y TW9kZWwuY2xlYXIoKTsKLSAgICAgIGlmKF8uaXNVbmRlZmluZWQodGhpcy5nZXQoJ2RhdGFiYXNl JykpIHx8IF8uaXNOdWxsKHRoaXMuZ2V0KCdkYXRhYmFzZScpKSl7Ci0gICAgICAgIG1zZyA9IGdl dHRleHQoJ1BsZWFzZSBzZWxlY3QgZGF0YWJhc2UnKTsKLSAgICAgICAgdGhpcy5lcnJvck1vZGVs LnNldCgnZGF0YWJhc2UnLCBtc2cpOwotICAgICAgICByZXR1cm4gbXNnOwotICAgICAgfSBlbHNl IGlmKF8uaXNVbmRlZmluZWQodGhpcy5nZXQoJ2RhdGFiYXNlJykpIHx8IF8uaXNVbmRlZmluZWQo dGhpcy5nZXQoJ3VzZXInKSl8fCBfLmlzTnVsbCh0aGlzLmdldCgndXNlcicpKSkgewotICAgICAg ICBtc2cgPSBnZXR0ZXh0KCdQbGVhc2Ugc2VsZWN0IHVzZXInKTsKLSAgICAgICAgdGhpcy5lcnJv ck1vZGVsLnNldCgndXNlcicsIG1zZyk7Ci0gICAgICAgIHJldHVybiBtc2c7Ci0gICAgICB9Ci0g ICAgICByZXR1cm4gbnVsbDsKLSAgICB9LAotICB9KTsKLQotICByZXR1cm4gbmV3IG5ld0Nvbm5l Y3Rpb25Nb2RlbCgpOwotfQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vc3RhdGljL2pzL3NxbGVk aXRvci9xdWVyeV90b29sX2FjdGlvbnMuanMgYi93ZWIvcGdhZG1pbi9zdGF0aWMvanMvc3FsZWRp dG9yL3F1ZXJ5X3Rvb2xfYWN0aW9ucy5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg Mzc5YzhjNGQxLi4wMDAwMDAwMDAKLS0tIGEvd2ViL3BnYWRtaW4vc3RhdGljL2pzL3NxbGVkaXRv ci9xdWVyeV90b29sX2FjdGlvbnMuanMKKysrIC9kZXYvbnVsbApAQCAtMSwxNzIgKzAsMCBAQAot Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLwotLy8KLS8vIHBnQWRtaW4gNCAtIFBvc3RncmVTUUwgVG9vbHMKLS8vCi0vLyBDb3B5cmln aHQgKEMpIDIwMTMgLSAyMDIyLCBUaGUgcGdBZG1pbiBEZXZlbG9wbWVudCBUZWFtCi0vLyBUaGlz IHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIHRoZSBQb3N0Z3JlU1FMIExpY2VuY2UKLS8vCi0v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLwotCi1pbXBvcnQgJCBmcm9tICdqcXVlcnknOwotaW1wb3J0IHBnV2luZG93IGZyb20gJ3Nv dXJjZXMvd2luZG93JzsKLQotbGV0IHF1ZXJ5VG9vbEFjdGlvbnMgPSB7Ci0gIF92ZXJib3NlOiBm dW5jdGlvbiAoKSB7Ci0gICAgcmV0dXJuICEkKCcuZXhwbGFpbi12ZXJib3NlJykuaGFzQ2xhc3Mo J3Zpc2liaWxpdHktaGlkZGVuJyk7Ci0gIH0sCi0KLSAgX2Nvc3RzRW5hYmxlZDogZnVuY3Rpb24g KCkgewotICAgIHJldHVybiAhJCgnLmV4cGxhaW4tY29zdHMnKS5oYXNDbGFzcygndmlzaWJpbGl0 eS1oaWRkZW4nKTsKLSAgfSwKLQotICBfYnVmZmVyczogZnVuY3Rpb24gKCkgewotICAgIHJldHVy biAhJCgnLmV4cGxhaW4tYnVmZmVycycpLmhhc0NsYXNzKCd2aXNpYmlsaXR5LWhpZGRlbicpOwot ICB9LAotCi0gIF90aW1pbmc6IGZ1bmN0aW9uICgpIHsKLSAgICByZXR1cm4gISQoJy5leHBsYWlu LXRpbWluZycpLmhhc0NsYXNzKCd2aXNpYmlsaXR5LWhpZGRlbicpOwotICB9LAotCi0gIF9zdW1t YXJ5OiBmdW5jdGlvbiAoKSB7Ci0gICAgcmV0dXJuICEkKCcuZXhwbGFpbi1zdW1tYXJ5JykuaGFz Q2xhc3MoJ3Zpc2liaWxpdHktaGlkZGVuJyk7Ci0gIH0sCi0KLSAgX3NldHRpbmdzOiBmdW5jdGlv biAoKSB7Ci0gICAgcmV0dXJuICEkKCcuZXhwbGFpbi1zZXR0aW5ncycpLmhhc0NsYXNzKCd2aXNp YmlsaXR5LWhpZGRlbicpOwotICB9LAotCi0gIF9jbGVhck1lc3NhZ2VUYWI6IGZ1bmN0aW9uICgp IHsKLSAgICAkKCcuc3FsLWVkaXRvci1tZXNzYWdlJykuaHRtbCgnJyk7Ci0gIH0sCi0KLSAgZXhl Y3V0ZU1hY3JvOiBmdW5jdGlvbiAoc3FsRWRpdG9yQ29udHJvbGxlciwgTWFjcm9JZCkgewotICAg IHRoaXMuX2NsZWFyTWVzc2FnZVRhYigpOwotICAgIHNxbEVkaXRvckNvbnRyb2xsZXIuY2hlY2tf ZGF0YV9jaGFuZ2VzX3RvX2V4ZWN1dGVfcXVlcnkobnVsbCwgZmFsc2UsIE1hY3JvSWQpOwotICB9 LAotCi0gIGV4ZWN1dGVRdWVyeTogZnVuY3Rpb24gKHNxbEVkaXRvckNvbnRyb2xsZXIpIHsKLSAg ICB0aGlzLl9jbGVhck1lc3NhZ2VUYWIoKTsKLSAgICBzcWxFZGl0b3JDb250cm9sbGVyLmNoZWNr X2RhdGFfY2hhbmdlc190b19leGVjdXRlX3F1ZXJ5KCk7Ci0gIH0sCi0KLSAgZXhwbGFpbkFuYWx5 emU6IGZ1bmN0aW9uIChzcWxFZGl0b3JDb250cm9sbGVyKSB7Ci0gICAgY29uc3QgZXhwbGFpbk9i amVjdCA9IHsKLSAgICAgIGZvcm1hdDogJ2pzb24nLAotICAgICAgYW5hbHl6ZTogdHJ1ZSwKLSAg ICAgIHZlcmJvc2U6IHRoaXMuX3ZlcmJvc2UoKSwKLSAgICAgIGNvc3RzOiB0aGlzLl9jb3N0c0Vu YWJsZWQoKSwKLSAgICAgIGJ1ZmZlcnM6IHRoaXMuX2J1ZmZlcnMoKSwKLSAgICAgIHRpbWluZzog dGhpcy5fdGltaW5nKCksCi0gICAgICBzdW1tYXJ5OiB0aGlzLl9zdW1tYXJ5KCksCi0gICAgICBz ZXR0aW5nczogdGhpcy5fc2V0dGluZ3MoKSwKLSAgICB9OwotICAgIHRoaXMuX2NsZWFyTWVzc2Fn ZVRhYigpOwotICAgIHNxbEVkaXRvckNvbnRyb2xsZXIuY2hlY2tfZGF0YV9jaGFuZ2VzX3RvX2V4 ZWN1dGVfcXVlcnkoZXhwbGFpbk9iamVjdCk7Ci0gIH0sCi0KLSAgZXhwbGFpbjogZnVuY3Rpb24g KHNxbEVkaXRvckNvbnRyb2xsZXIpIHsKLSAgICBjb25zdCBleHBsYWluT2JqZWN0ID0gewotICAg ICAgZm9ybWF0OiAnanNvbicsCi0gICAgICBhbmFseXplOiBmYWxzZSwKLSAgICAgIHZlcmJvc2U6 IHRoaXMuX3ZlcmJvc2UoKSwKLSAgICAgIGNvc3RzOiB0aGlzLl9jb3N0c0VuYWJsZWQoKSwKLSAg ICAgIGJ1ZmZlcnM6IGZhbHNlLAotICAgICAgdGltaW5nOiBmYWxzZSwKLSAgICAgIHN1bW1hcnk6 IHRoaXMuX3N1bW1hcnkoKSwKLSAgICAgIHNldHRpbmdzOiB0aGlzLl9zZXR0aW5ncygpLAotICAg IH07Ci0gICAgdGhpcy5fY2xlYXJNZXNzYWdlVGFiKCk7Ci0gICAgc3FsRWRpdG9yQ29udHJvbGxl ci5jaGVja19kYXRhX2NoYW5nZXNfdG9fZXhlY3V0ZV9xdWVyeShleHBsYWluT2JqZWN0KTsKLSAg fSwKLQotICBkb3dubG9hZDogZnVuY3Rpb24gKHNxbEVkaXRvckNvbnRyb2xsZXIpIHsKLQotICAg IGxldCBleHRlbnNpb24gPSBzcWxFZGl0b3JDb250cm9sbGVyLnByZWZlcmVuY2VzLmNzdl9maWVs ZF9zZXBhcmF0b3IgPT09ICcsJyA/ICcuY3N2JzogJy50eHQnOwotICAgIGxldCBmaWxlbmFtZSA9 ICdkYXRhLScgKyBuZXcgRGF0ZSgpLmdldFRpbWUoKSArIGV4dGVuc2lvbjsKLQotICAgIGlmICgh c3FsRWRpdG9yQ29udHJvbGxlci5pc19xdWVyeV90b29sKSB7Ci0gICAgICBmaWxlbmFtZSA9IHNx bEVkaXRvckNvbnRyb2xsZXIudGFibGVfbmFtZSArIGV4dGVuc2lvbjsKLSAgICB9Ci0KLSAgICBz cWxFZGl0b3JDb250cm9sbGVyLnRyaWdnZXJfY3N2X2Rvd25sb2FkKGZpbGVuYW1lKTsKLSAgfSwK LQotICBjb21tZW50QmxvY2tDb2RlOiBmdW5jdGlvbiAoc3FsRWRpdG9yQ29udHJvbGxlcikgewot ICAgIGxldCBjb2RlTWlycm9yT2JqID0gc3FsRWRpdG9yQ29udHJvbGxlci5ncmlkVmlldy5xdWVy eV90b29sX29iajsKLQotICAgIGlmICghY29kZU1pcnJvck9iai5nZXRWYWx1ZSgpKSByZXR1cm47 Ci0KLSAgICBjb2RlTWlycm9yT2JqLnRvZ2dsZUNvbW1lbnQoY29kZU1pcnJvck9iai5nZXRDdXJz b3IodHJ1ZSksIGNvZGVNaXJyb3JPYmouZ2V0Q3Vyc29yKGZhbHNlKSk7Ci0gIH0sCi0KLSAgY29t bWVudExpbmVDb2RlOiBmdW5jdGlvbiAoc3FsRWRpdG9yQ29udHJvbGxlcikgewotICAgIGxldCBj b2RlTWlycm9yT2JqID0gc3FsRWRpdG9yQ29udHJvbGxlci5ncmlkVmlldy5xdWVyeV90b29sX29i ajsKLQotICAgIGlmICghY29kZU1pcnJvck9iai5nZXRWYWx1ZSgpKSByZXR1cm47Ci0KLSAgICBj b2RlTWlycm9yT2JqLmxpbmVDb21tZW50KGNvZGVNaXJyb3JPYmouZ2V0Q3Vyc29yKHRydWUpLAot ICAgICAgY29kZU1pcnJvck9iai5nZXRDdXJzb3IoZmFsc2UpLAotICAgICAge2xpbmVDb21tZW50 OiAnLS0nfQotICAgICk7Ci0gIH0sCi0KLSAgdW5jb21tZW50TGluZUNvZGU6IGZ1bmN0aW9uIChz cWxFZGl0b3JDb250cm9sbGVyKSB7Ci0gICAgbGV0IGNvZGVNaXJyb3JPYmogPSBzcWxFZGl0b3JD b250cm9sbGVyLmdyaWRWaWV3LnF1ZXJ5X3Rvb2xfb2JqOwotCi0gICAgaWYgKCFjb2RlTWlycm9y T2JqLmdldFZhbHVlKCkpIHJldHVybjsKLQotICAgIGNvZGVNaXJyb3JPYmoudW5jb21tZW50KGNv ZGVNaXJyb3JPYmouZ2V0Q3Vyc29yKHRydWUpLAotICAgICAgY29kZU1pcnJvck9iai5nZXRDdXJz b3IoZmFsc2UpLAotICAgICAge2xpbmVDb21tZW50OiAnLS0nfQotICAgICk7Ci0gIH0sCi0KLSAg Zm9ybWF0U3FsOiBmdW5jdGlvbiAoc3FsRWRpdG9yQ29udHJvbGxlcikgewotICAgIHNxbEVkaXRv ckNvbnRyb2xsZXIuZ3JpZFZpZXcub25fZm9ybWF0X3NxbCgpOwotICB9LAotCi0gIGZvY3VzT3V0 OiBmdW5jdGlvbiAoKSB7Ci0gICAgZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5ibHVyKCk7Ci0gICAg cGdXaW5kb3cuZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5ibHVyKCk7Ci0gIH0sCi0KLSAgdG9nZ2xl Q2FzZU9mU2VsZWN0ZWRUZXh0OiBmdW5jdGlvbiAoc3FsRWRpdG9yQ29udHJvbGxlcikgewotICAg IGxldCBjb2RlTWlycm9yT2JqID0gc3FsRWRpdG9yQ29udHJvbGxlci5ncmlkVmlldy5xdWVyeV90 b29sX29iajsKLSAgICBsZXQgc2VsZWN0ZWRUZXh0ID0gY29kZU1pcnJvck9iai5nZXRTZWxlY3Rp b24oKTsKLQotICAgIGlmICghc2VsZWN0ZWRUZXh0KSByZXR1cm47Ci0KLSAgICBpZiAoc2VsZWN0 ZWRUZXh0ID09PSBzZWxlY3RlZFRleHQudG9VcHBlckNhc2UoKSkgewotICAgICAgY29kZU1pcnJv ck9iai5yZXBsYWNlU2VsZWN0aW9uKHNlbGVjdGVkVGV4dC50b0xvd2VyQ2FzZSgpKTsKLSAgICB9 IGVsc2UgewotICAgICAgY29kZU1pcnJvck9iai5yZXBsYWNlU2VsZWN0aW9uKHNlbGVjdGVkVGV4 dC50b1VwcGVyQ2FzZSgpKTsKLSAgICB9Ci0gIH0sCi0KLSAgZXhlY3V0ZUNvbW1pdDogZnVuY3Rp b24gKHNxbEVkaXRvckNvbnRyb2xsZXIpIHsKLSAgICB2YXIgc2VsZiA9IHRoaXM7Ci0gICAgc3Fs RWRpdG9yQ29udHJvbGxlci5zcGVjaWFsX3NxbCA9ICdDT01NSVQ7JzsKLSAgICBzZWxmLmV4ZWN1 dGVRdWVyeShzcWxFZGl0b3JDb250cm9sbGVyKTsKLSAgfSwKLQotICBleGVjdXRlUm9sbGJhY2s6 IGZ1bmN0aW9uIChzcWxFZGl0b3JDb250cm9sbGVyKSB7Ci0gICAgdmFyIHNlbGYgPSB0aGlzOwot ICAgIHNxbEVkaXRvckNvbnRyb2xsZXIuc3BlY2lhbF9zcWwgPSAnUk9MTEJBQ0s7JzsKLSAgICBz ZWxmLmV4ZWN1dGVRdWVyeShzcWxFZGl0b3JDb250cm9sbGVyKTsKLSAgfSwKLQotICBzYXZlRGF0 YUNoYW5nZXM6IGZ1bmN0aW9uIChzcWxFZGl0b3JDb250cm9sbGVyKSB7Ci0gICAgc3FsRWRpdG9y Q29udHJvbGxlci5jbG9zZV9vbl9zYXZlID0gZmFsc2U7Ci0gICAgc3FsRWRpdG9yQ29udHJvbGxl ci5zYXZlX2RhdGEoKTsKLSAgfSwKLQotICBvcGVuUXVlcnlUb29sOiBmdW5jdGlvbiAoc3FsRWRp dG9yQ29udHJvbGxlcikgewotICAgIHNxbEVkaXRvckNvbnRyb2xsZXIuZ3JpZFZpZXcuaGFuZGxl ci50cmlnZ2VyKAotICAgICAgJ3BnYWRtaW4tc3FsZWRpdG9yOmJ1dHRvbjpzaG93X3F1ZXJ5X3Rv b2wnLAotICAgICAgc3FsRWRpdG9yQ29udHJvbGxlci5ncmlkVmlldywKLSAgICAgIHNxbEVkaXRv ckNvbnRyb2xsZXIuZ3JpZFZpZXcuaGFuZGxlcgotICAgICk7Ci0gIH0sCi19OwotCi1tb2R1bGUu ZXhwb3J0cyA9IHF1ZXJ5VG9vbEFjdGlvbnM7CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9zdGF0 aWMvanMvc3FsZWRpdG9yL3F1ZXJ5X3Rvb2xfaHR0cF9lcnJvcl9oYW5kbGVyLmpzIGIvd2ViL3Bn YWRtaW4vc3RhdGljL2pzL3NxbGVkaXRvci9xdWVyeV90b29sX2h0dHBfZXJyb3JfaGFuZGxlci5q cwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzUwNjA0MzRlLi4wMDAwMDAwMDAKLS0t IGEvd2ViL3BnYWRtaW4vc3RhdGljL2pzL3NxbGVkaXRvci9xdWVyeV90b29sX2h0dHBfZXJyb3Jf aGFuZGxlci5qcworKysgL2Rldi9udWxsCkBAIC0xLDc4ICswLDAgQEAKLS8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vCi0vLwotLy8gcGdBZG1pbiA0IC0gUG9zdGdyZVNRTCBUb29scwotLy8KLS8vIENvcHlyaWdo dCAoQykgMjAxMyAtIDIwMjIsIFRoZSBwZ0FkbWluIERldmVsb3BtZW50IFRlYW0KLS8vIFRoaXMg c29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgdGhlIFBvc3RncmVTUUwgTGljZW5jZQotLy8KLS8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vCi1pbXBvcnQgZ2V0dGV4dCBmcm9tICdzb3VyY2VzL2dldHRleHQnOwot Ci1leHBvcnQgZnVuY3Rpb24gaHR0cFJlc3BvbnNlUmVxdWlyZXNOZXdUcmFuc2FjdGlvbih4aHIp IHsKLSAgLyogSWYgcmVzcG9uc2VKU09OIGlzIHVuZGVmaW5lZCB0aGVuIGl0IGNvdWxkIGJlIG9i amVjdCBvZgotICAgKiBheGlvcyhQcm9taXNlIEhUVFApIHJlc3BvbnNlLCBzbyB3ZSBzaG91bGQg Y2hlY2sgYWNjb3JkaW5nbHkuCi0gICAqLwotICBpZiAoeGhyLnJlc3BvbnNlSlNPTiA9PT0gdW5k ZWZpbmVkICYmIHhoci5kYXRhICE9PSB1bmRlZmluZWQpIHsKLSAgICByZXR1cm4geGhyLnN0YXR1 cyA9PT0gNDA0ICYmIHhoci5kYXRhICYmCi0gICAgICAgICAgICAgIHhoci5kYXRhLmluZm8gJiYK LSAgICAgICAgICAgICAgeGhyLmRhdGEuaW5mbyA9PT0gJ0RBVEFHUklEX1RSQU5TQUNUSU9OX1JF UVVJUkVEJzsKLSAgfQotCi0gIHJldHVybiB4aHIuc3RhdHVzID09PSA0MDQgJiYgeGhyLnJlc3Bv bnNlSlNPTiAmJgotICAgIHhoci5yZXNwb25zZUpTT04uaW5mbyAmJgotICAgIHhoci5yZXNwb25z ZUpTT04uaW5mbyA9PT0gJ0RBVEFHUklEX1RSQU5TQUNUSU9OX1JFUVVJUkVEJzsKLX0KLQotLy8g QWxsb3cgdXMgdG8gcmVkaXJlY3QgdG8gbG9naW4gZGlhbG9nIGFuZCBpZiByZXF1aXJlZCB0aGVu IHJlLWluaXRpYXRlIHRoZSB0cmFuc2FjdGlvbgotZXhwb3J0IGZ1bmN0aW9uIGhhbmRsZUxvZ2lu UmVxdWlyZWRBbmRUcmFuc2FjdGlvblJlcXVpcmVkKAotICBwZ0FkbWluLCBoYW5kbGVyLCBleGNl cHRpb24sIHN0YXRlVG9TYXZlLCBzdGF0ZVBhcmFtZXRlcnMsIGNoZWNrVHJhbnNhY3Rpb24KLSkg ewotICBzdGF0ZVBhcmFtZXRlcnMgPSBzdGF0ZVBhcmFtZXRlcnMgJiYgc3RhdGVQYXJhbWV0ZXJz Lmxlbmd0aCA+IDAgPyBzdGF0ZVBhcmFtZXRlcnMgOiBbXTsKLSAgaWYgKHBnQWRtaW4uQnJvd3Nl ci5Vc2VyTWFuYWdlbWVudC5pc1BnYUxvZ2luUmVxdWlyZWQoZXhjZXB0aW9uKSkgewotICAgIGlm IChzdGF0ZVRvU2F2ZSkgewotICAgICAgaGFuZGxlci5zYXZlU3RhdGUoc3RhdGVUb1NhdmUsIHN0 YXRlUGFyYW1ldGVycyk7Ci0gICAgfQotICAgIHJldHVybiBwZ0FkbWluLkJyb3dzZXIuVXNlck1h bmFnZW1lbnQucGdhTG9naW4oKTsKLSAgfQotCi0gIGlmKGNoZWNrVHJhbnNhY3Rpb24gJiYgaHR0 cFJlc3BvbnNlUmVxdWlyZXNOZXdUcmFuc2FjdGlvbihleGNlcHRpb24pKSB7Ci0gICAgaWYgKHN0 YXRlVG9TYXZlKSB7Ci0gICAgICBoYW5kbGVyLnNhdmVTdGF0ZShzdGF0ZVRvU2F2ZSwgc3RhdGVQ YXJhbWV0ZXJzKTsKLSAgICB9Ci0gICAgcmV0dXJuIGhhbmRsZXIuaW5pdFRyYW5zYWN0aW9uKCk7 Ci0gIH0KLX0KLQotLy8gQWxsb3cgdXMgdG8gaGFuZGxlIHRoZSBBSkFYIGVycm9yIGZyb20gUXVl cnkgdG9vbAotZXhwb3J0IGZ1bmN0aW9uIGhhbmRsZVF1ZXJ5VG9vbEFqYXhFcnJvcigKLSAgcGdB ZG1pbiwgaGFuZGxlciwgZXhjZXB0aW9uLCBzdGF0ZVRvU2F2ZSwgc3RhdGVQYXJhbWV0ZXJzLCBj aGVja1RyYW5zYWN0aW9uCi0pIHsKLSAgaWYgKGV4Y2VwdGlvbi5yZWFkeVN0YXRlID09PSAwKSB7 Ci0gICAgcmV0dXJuIGdldHRleHQoJ05vdCBjb25uZWN0ZWQgdG8gdGhlIHNlcnZlciBvciB0aGUg Y29ubmVjdGlvbiB0byB0aGUgc2VydmVyIGhhcyBiZWVuIGNsb3NlZC4nKTsKLSAgfQotCi0gIGhh bmRsZUxvZ2luUmVxdWlyZWRBbmRUcmFuc2FjdGlvblJlcXVpcmVkKAotICAgIHBnQWRtaW4sIGhh bmRsZXIsIGV4Y2VwdGlvbiwgc3RhdGVUb1NhdmUsIHN0YXRlUGFyYW1ldGVycywgY2hlY2tUcmFu c2FjdGlvbgotICApOwotCi0gIGxldCBtc2cgPSBleGNlcHRpb24ucmVzcG9uc2VUZXh0OwotICBp ZiAoZXhjZXB0aW9uLnJlc3BvbnNlSlNPTiAhPT0gdW5kZWZpbmVkKSB7Ci0gICAgaWYoZXhjZXB0 aW9uLnJlc3BvbnNlSlNPTi5lcnJvcm1zZyAhPT0gdW5kZWZpbmVkKSB7Ci0gICAgICBtc2cgPSBl eGNlcHRpb24ucmVzcG9uc2VKU09OLmVycm9ybXNnOwotICAgIH0KLQotICAgIGlmKGV4Y2VwdGlv bi5zdGF0dXMgPT09IDUwMyAmJiBleGNlcHRpb24ucmVzcG9uc2VKU09OLmluZm8gIT09IHVuZGVm aW5lZCAmJgotICAgICAgICBleGNlcHRpb24ucmVzcG9uc2VKU09OLmluZm8gPT0gJ0NPTk5FQ1RJ T05fTE9TVCcpIHsKLSAgICAgIC8vIFdlIHdpbGwgZGlzcGxheSByZS1jb25uZWN0IGRpYWxvZywg bm8gbmVlZCB0byBkaXNwbGF5IGVycm9yIG1lc3NhZ2UgYWdhaW4KLSAgICAgIG1zZyA9IG51bGw7 Ci0gICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewotICAgICAgICBpZiAoc3RhdGVUb1NhdmUp IHsKLSAgICAgICAgICBoYW5kbGVyLnNhdmVTdGF0ZShzdGF0ZVRvU2F2ZSwgc3RhdGVQYXJhbWV0 ZXJzKTsKLSAgICAgICAgfQotICAgICAgICBoYW5kbGVyLmhhbmRsZV9jb25uZWN0aW9uX2xvc3Qo ZmFsc2UsIGV4Y2VwdGlvbik7Ci0gICAgICB9KTsKLSAgICB9Ci0gIH0KLQotICByZXR1cm4gbXNn OwotfQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vc3RhdGljL2pzL3NxbGVkaXRvci9xdWVyeV90 b29sX25vdGlmaWNhdGlvbnMuanMgYi93ZWIvcGdhZG1pbi9zdGF0aWMvanMvc3FsZWRpdG9yL3F1 ZXJ5X3Rvb2xfbm90aWZpY2F0aW9ucy5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg ZGRmM2FkODUyLi4wMDAwMDAwMDAKLS0tIGEvd2ViL3BnYWRtaW4vc3RhdGljL2pzL3NxbGVkaXRv ci9xdWVyeV90b29sX25vdGlmaWNhdGlvbnMuanMKKysrIC9kZXYvbnVsbApAQCAtMSwxMzMgKzAs MCBAQAotLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLwotLy8KLS8vIHBnQWRtaW4gNCAtIFBvc3RncmVTUUwgVG9vbHMKLS8vCi0vLyBD b3B5cmlnaHQgKEMpIDIwMTMgLSAyMDIyLCBUaGUgcGdBZG1pbiBEZXZlbG9wbWVudCBUZWFtCi0v LyBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIHRoZSBQb3N0Z3JlU1FMIExpY2VuY2UK LS8vCi0vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLwotCi1pbXBvcnQgZ2V0dGV4dCBmcm9tICdzb3VyY2VzL2dldHRleHQnOwotaW1w b3J0IEJhY2tncmlkIGZyb20gJ3BnYWRtaW4uYmFja2dyaWQnOwotaW1wb3J0IEJhY2tib25lIGZy b20gJ2JhY2tib25lJzsKLWltcG9ydCBOb3RpZnkgZnJvbSAnLi4vaGVscGVycy9Ob3RpZmllcic7 Ci0KLWxldCBOb3RpZmljYXRpb25zTW9kZWwgPSBCYWNrYm9uZS5Nb2RlbC5leHRlbmQoewotICBk ZWZhdWx0czogewotICAgIHJlY29yZGVkX3RpbWU6IHVuZGVmaW5lZCwKLSAgICBldmVudDogdW5k ZWZpbmVkLAotICAgIHBpZDogdW5kZWZpbmVkLAotICAgIHBheWxvYWQ6IHVuZGVmaW5lZCwKLSAg fSwKLSAgc2NoZW1hOiBbewotICAgIGlkOiAncmVjb3JkZWRfdGltZScsCi0gICAgbGFiZWw6IGdl dHRleHQoJ1JlY29yZGVkIHRpbWUnKSwKLSAgICBjZWxsOiAnc3RyaW5nJywKLSAgICB0eXBlOiAn dGV4dCcsCi0gICAgZWRpdGFibGU6IGZhbHNlLAotICAgIGNlbGxIZWFkZXJDbGFzc2VzOiAnd2lk dGhfcGVyY2VudF8yMCcsCi0gICAgaGVhZGVyQ2VsbDogQmFja2dyaWQuRXh0ZW5zaW9uLkN1c3Rv bUhlYWRlckNlbGwsCi0gIH0sewotICAgIGlkOiAnY2hhbm5lbCcsCi0gICAgbGFiZWw6IGdldHRl eHQoJ0V2ZW50JyksCi0gICAgY2VsbDogJ3N0cmluZycsCi0gICAgdHlwZTogJ3RleHQnLAotICAg IGVkaXRhYmxlOiBmYWxzZSwKLSAgICBjZWxsSGVhZGVyQ2xhc3NlczogJ3dpZHRoX3BlcmNlbnRf MjAnLAotICAgIGhlYWRlckNlbGw6IEJhY2tncmlkLkV4dGVuc2lvbi5DdXN0b21IZWFkZXJDZWxs LAotICB9LHsKLSAgICBpZDogJ3BpZCcsCi0gICAgbGFiZWw6IGdldHRleHQoJ1Byb2Nlc3MgSUQn KSwKLSAgICBjZWxsOiAnc3RyaW5nJywKLSAgICB0eXBlOiAndGV4dCcsCi0gICAgZWRpdGFibGU6 IGZhbHNlLAotICAgIGNlbGxIZWFkZXJDbGFzc2VzOiAnd2lkdGhfcGVyY2VudF8yMCcsCi0gICAg aGVhZGVyQ2VsbDogQmFja2dyaWQuRXh0ZW5zaW9uLkN1c3RvbUhlYWRlckNlbGwsCi0gIH0sewot ICAgIGlkOiAncGF5bG9hZCcsCi0gICAgbGFiZWw6IGdldHRleHQoJ1BheWxvYWQnKSwKLSAgICBj ZWxsOiAnc3RyaW5nJywKLSAgICB0eXBlOiAndGV4dCcsCi0gICAgZWRpdGFibGU6IGZhbHNlLAot ICAgIGNlbGxIZWFkZXJDbGFzc2VzOiAnd2lkdGhfcGVyY2VudF80MCcsCi0gICAgaGVhZGVyQ2Vs bDogQmFja2dyaWQuRXh0ZW5zaW9uLkN1c3RvbUhlYWRlckNlbGwsCi0gIH1dLAotfSk7Ci0KLWxl dCBOb3RpZmljYXRpb25Db2xsZWN0aW9uID0gQmFja2JvbmUuQ29sbGVjdGlvbi5leHRlbmQoewot ICBtb2RlbDogTm90aWZpY2F0aW9uc01vZGVsLAotfSk7Ci0KLWxldCBxdWVyeVRvb2xOb3RpZmlj YXRpb25zID0gewotCi0gIGNvbGxlY3Rpb246IG51bGwsCi0KLSAgLyogVGhpcyBmdW5jdGlvbiBp cyByZXNwb25zaWJsZSB0byBjcmVhdGUgYW5kIHJlbmRlciB0aGUKLSAgICogbmV3IGJhY2tncmlk IGZvciB0aGUgbm90aWZpY2F0aW9uIHRhYi4KLSAgICovCi0gIHJlbmRlck5vdGlmaWNhdGlvbnNH cmlkOiBmdW5jdGlvbihub3RpZmljYXRpb25zX3BhbmVsKSB7Ci0gICAgaWYgKCFxdWVyeVRvb2xO b3RpZmljYXRpb25zLmNvbGxlY3Rpb24pCi0gICAgICBxdWVyeVRvb2xOb3RpZmljYXRpb25zLmNv bGxlY3Rpb24gPSBuZXcgTm90aWZpY2F0aW9uQ29sbGVjdGlvbigpOwotCi0gICAgbGV0IGdyaWRD b2xzID0gW3sKLSAgICAgIG5hbWU6ICdyZWNvcmRlZF90aW1lJywKLSAgICAgIGxhYmVsOiBnZXR0 ZXh0KCdSZWNvcmRlZCB0aW1lJyksCi0gICAgICB0eXBlOiAndGV4dCcsCi0gICAgICBlZGl0YWJs ZTogZmFsc2UsCi0gICAgICBjZWxsOiAnc3RyaW5nJywKLSAgICB9LCB7Ci0gICAgICBuYW1lOiAn Y2hhbm5lbCcsCi0gICAgICBsYWJlbDogZ2V0dGV4dCgnRXZlbnQnKSwKLSAgICAgIHR5cGU6ICd0 ZXh0JywKLSAgICAgIGVkaXRhYmxlOiBmYWxzZSwKLSAgICAgIGNlbGw6ICdzdHJpbmcnLAotICAg IH0sIHsKLSAgICAgIG5hbWU6ICdwaWQnLAotICAgICAgbGFiZWw6IGdldHRleHQoJ1Byb2Nlc3Mg SUQnKSwKLSAgICAgIHR5cGU6ICd0ZXh0JywKLSAgICAgIGVkaXRhYmxlOiBmYWxzZSwKLSAgICAg IGNlbGw6ICdzdHJpbmcnLAotICAgIH0sIHsKLSAgICAgIG5hbWU6ICdwYXlsb2FkJywKLSAgICAg IGxhYmVsOiBnZXR0ZXh0KCdQYXlsb2FkJyksCi0gICAgICB0eXBlOiAndGV4dCcsCi0gICAgICBl ZGl0YWJsZTogZmFsc2UsCi0gICAgICBjZWxsOiAnc3RyaW5nJywKLSAgICB9XTsKLQotICAgIC8v IFNldCB1cCB0aGUgZ3JpZAotICAgIGxldCBub3RpZmljYXRpb25zX2dyaWQgPSBuZXcgQmFja2dy aWQuR3JpZCh7Ci0gICAgICBlbXB0eVRleHQ6IGdldHRleHQoJ05vIGRhdGEgZm91bmQnKSwKLSAg ICAgIGNvbHVtbnM6IGdyaWRDb2xzLAotICAgICAgY29sbGVjdGlvbjogcXVlcnlUb29sTm90aWZp Y2F0aW9ucy5jb2xsZWN0aW9uLAotICAgICAgY2xhc3NOYW1lOiAnYmFja2dyaWQgcHJlc2VudGF0 aW9uIHRhYmxlIHRhYmxlLWJvcmRlcmVkIHRhYmxlLWhvdmVyIHRhYmxlLW5vb3V0ZXItYm9yZGVy IHRhYmxlLWJvdHRvbS1ib3JkZXInLAotICAgIH0pOwotCi0gICAgLy8gUmVuZGVyIHRoZSBncmlk Ci0gICAgaWYgKG5vdGlmaWNhdGlvbnNfcGFuZWwpCi0gICAgICBub3RpZmljYXRpb25zX3BhbmVs LiRjb250YWluZXIuZmluZCgnLnNxbC1lZGl0b3Itbm90aWZpY2F0aW9ucycpLmFwcGVuZChub3Rp ZmljYXRpb25zX2dyaWQucmVuZGVyKCkuZWwpOwotICB9LAotCi0gIC8vIFRoaXMgZnVuY3Rpb24g aXMgdXNlZCB0byByYWlzZSBub3RpZnkgbWVzc2FnZXMgYW5kIHVwZGF0ZSB0aGUKLSAgLy8gbm90 aWZpY2F0aW9uIGdyaWQuCi0gIHVwZGF0ZU5vdGlmaWNhdGlvbnM6IGZ1bmN0aW9uKG5vdGlmeV9t ZXNzYWdlcykgewotICAgIGlmIChub3RpZnlfbWVzc2FnZXMgIT0gbnVsbCAmJiBub3RpZnlfbWVz c2FnZXMubGVuZ3RoID4gMCkgewotICAgICAgZm9yIChsZXQgaSBpbiBub3RpZnlfbWVzc2FnZXMp IHsKLSAgICAgICAgbGV0IG5vdGlmeV9tc2cgPSAnJzsKLSAgICAgICAgaWYgKG5vdGlmeV9tZXNz YWdlc1tpXS5wYXlsb2FkICE9ICcnKSB7Ci0gICAgICAgICAgbm90aWZ5X21zZyA9IGdldHRleHQo J0FzeW5jaHJvbm91cyBub3RpZmljYXRpb24gIiVzIiB3aXRoIHBheWxvYWQgIiVzIiByZWNlaXZl ZCBmcm9tIHNlcnZlciBwcm9jZXNzIHdpdGggUElEICVzJywgbm90aWZ5X21lc3NhZ2VzW2ldLmNo YW5uZWwsIG5vdGlmeV9tZXNzYWdlc1tpXS5wYXlsb2FkLCBub3RpZnlfbWVzc2FnZXNbaV0ucGlk KTsKLSAgICAgICAgfQotICAgICAgICBlbHNlIHsKLSAgICAgICAgICBub3RpZnlfbXNnID0gZ2V0 dGV4dCgnQXN5bmNocm9ub3VzIG5vdGlmaWNhdGlvbiAiJXMiIHJlY2VpdmVkIGZyb20gc2VydmVy IHByb2Nlc3Mgd2l0aCBQSUQgJXMnLCBub3RpZnlfbWVzc2FnZXNbaV0uY2hhbm5lbCwgbm90aWZ5 X21lc3NhZ2VzW2ldLnBpZCk7Ci0gICAgICAgIH0KLQotICAgICAgICBOb3RpZnkuaW5mbyhub3Rp ZnlfbXNnKTsKLSAgICAgIH0KLQotICAgICAgLy8gQWRkIG5vdGlmeSBtZXNzYWdlcyB0byB0aGUg Y29sbGVjdGlvbi4KLSAgICAgIHF1ZXJ5VG9vbE5vdGlmaWNhdGlvbnMuY29sbGVjdGlvbi5hZGQo bm90aWZ5X21lc3NhZ2VzKTsKLSAgICB9Ci0gIH0sCi19OwotCi1tb2R1bGUuZXhwb3J0cyA9IHF1 ZXJ5VG9vbE5vdGlmaWNhdGlvbnM7CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9zdGF0aWMvanMv c3FsZWRpdG9yL3F1ZXJ5X3Rvb2xfcHJlZmVyZW5jZXMuanMgYi93ZWIvcGdhZG1pbi9zdGF0aWMv anMvc3FsZWRpdG9yL3F1ZXJ5X3Rvb2xfcHJlZmVyZW5jZXMuanMKZGVsZXRlZCBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IGQ0Y2Y1ZWM2YS4uMDAwMDAwMDAwCi0tLSBhL3dlYi9wZ2FkbWluL3N0YXRp Yy9qcy9zcWxlZGl0b3IvcXVlcnlfdG9vbF9wcmVmZXJlbmNlcy5qcworKysgL2Rldi9udWxsCkBA IC0xLDI0MSArMCwwIEBACi0vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vCi0vLwotLy8gcGdBZG1pbiA0IC0gUG9zdGdyZVNRTCBUb29s cwotLy8KLS8vIENvcHlyaWdodCAoQykgMjAxMyAtIDIwMjIsIFRoZSBwZ0FkbWluIERldmVsb3Bt ZW50IFRlYW0KLS8vIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgdGhlIFBvc3RncmVT UUwgTGljZW5jZQotLy8KLS8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vCi0KLWltcG9ydCB7c2hvcnRjdXRfa2V5LCBzaG9ydGN1dF9h Y2Nlc3NrZXlfdGl0bGUsIHNob3J0Y3V0X3RpdGxlfQotICBmcm9tICdzb3VyY2VzL2tleWJvYXJk X3Nob3J0Y3V0cyc7Ci1pbXBvcnQgKiBhcyBTcWxFZGl0b3JVdGlscyBmcm9tICdzb3VyY2VzL3Nx bGVkaXRvcl91dGlscyc7Ci1pbXBvcnQgJCBmcm9tICdqcXVlcnknOwotaW1wb3J0IGdldHRleHQg ZnJvbSAnc291cmNlcy9nZXR0ZXh0JzsKLQotZnVuY3Rpb24gdXBkYXRlVUlQcmVmZXJlbmNlcyhz cWxFZGl0b3IpIHsKLSAgbGV0ICRlbCA9IHNxbEVkaXRvci4kZWwsCi0gICAgcHJlZmVyZW5jZXMg PSBzcWxFZGl0b3IucHJlZmVyZW5jZXM7Ci0KLSAgaWYoc3FsRWRpdG9yLmhhbmRsZXIuc2xpY2tn cmlkKSB7Ci0gICAgc3FsRWRpdG9yLmhhbmRsZXIuc2xpY2tncmlkLkNTVk9wdGlvbnMgPSB7Ci0g ICAgICBxdW90aW5nOiBzcWxFZGl0b3IucHJlZmVyZW5jZXMucmVzdWx0c19ncmlkX3F1b3Rpbmcs Ci0gICAgICBxdW90ZV9jaGFyOiBzcWxFZGl0b3IucHJlZmVyZW5jZXMucmVzdWx0c19ncmlkX3F1 b3RlX2NoYXIsCi0gICAgICBmaWVsZF9zZXBhcmF0b3I6IHNxbEVkaXRvci5wcmVmZXJlbmNlcy5y ZXN1bHRzX2dyaWRfZmllbGRfc2VwYXJhdG9yLAotICAgIH07Ci0gIH0KLQotICAvKiBBY2Nlc3Nl ZCB1c2luZyBhY2Nlc3NrZXkgZGlyZWN0IHcvbyBjdHJsLGF0bCxzaGlmdCAqLwotICAkZWwuZmlu ZCgnI2J0bi1sb2FkLWZpbGUnKQotICAgIC5hdHRyKCd0aXRsZScsIHNob3J0Y3V0X2FjY2Vzc2tl eV90aXRsZShnZXR0ZXh0KCdPcGVuIEZpbGUnKSxwcmVmZXJlbmNlcy5idG5fb3Blbl9maWxlKSkK LSAgICAuYXR0cignYXJpYS1sYWJlbCcsIHNob3J0Y3V0X2FjY2Vzc2tleV90aXRsZShnZXR0ZXh0 KCdPcGVuIEZpbGUnKSxwcmVmZXJlbmNlcy5idG5fb3Blbl9maWxlKSkKLSAgICAuYXR0cignYWNj ZXNza2V5Jywgc2hvcnRjdXRfa2V5KHByZWZlcmVuY2VzLmJ0bl9vcGVuX2ZpbGUpKTsKLQotICAk ZWwuZmluZCgnI2J0bi1zYXZlLWZpbGUnKQotICAgIC5hdHRyKCd0aXRsZScsIHNob3J0Y3V0X2Fj Y2Vzc2tleV90aXRsZShnZXR0ZXh0KCdTYXZlIEZpbGUnKSxwcmVmZXJlbmNlcy5idG5fc2F2ZV9m aWxlKSkKLSAgICAuYXR0cignYXJpYS1sYWJlbCcsIHNob3J0Y3V0X2FjY2Vzc2tleV90aXRsZShn ZXR0ZXh0KCdTYXZlIEZpbGUnKSxwcmVmZXJlbmNlcy5idG5fc2F2ZV9maWxlKSkKLSAgICAuYXR0 cignYWNjZXNza2V5Jywgc2hvcnRjdXRfa2V5KHByZWZlcmVuY2VzLmJ0bl9zYXZlX2ZpbGUpKTsK LQotICAkZWwuZmluZCgnI2J0bi1maW5kLW1lbnUtZHJvcGRvd24nKQotICAgIC5hdHRyKCd0aXRs ZScsIHNob3J0Y3V0X2FjY2Vzc2tleV90aXRsZShnZXR0ZXh0KCdGaW5kJykscHJlZmVyZW5jZXMu YnRuX2ZpbmRfb3B0aW9ucykpCi0gICAgLmF0dHIoJ2FyaWEtbGFiZWwnLHNob3J0Y3V0X2FjY2Vz c2tleV90aXRsZShnZXR0ZXh0KCdGaW5kJykscHJlZmVyZW5jZXMuYnRuX2ZpbmRfb3B0aW9ucykp Ci0gICAgLmF0dHIoJ2FjY2Vzc2tleScsIHNob3J0Y3V0X2tleShwcmVmZXJlbmNlcy5idG5fZmlu ZF9vcHRpb25zKSk7Ci0KLSAgJGVsLmZpbmQoJyNidG4tY29weS1yb3cnKQotICAgIC5hdHRyKCd0 aXRsZScsIHNob3J0Y3V0X2FjY2Vzc2tleV90aXRsZShnZXR0ZXh0KCdDb3B5JykscHJlZmVyZW5j ZXMuYnRuX2NvcHlfcm93KSkKLSAgICAuYXR0cignYXJpYS1sYWJlbCcsIHNob3J0Y3V0X2FjY2Vz c2tleV90aXRsZShnZXR0ZXh0KCdDb3B5JykscHJlZmVyZW5jZXMuYnRuX2NvcHlfcm93KSkKLSAg ICAuYXR0cignYWNjZXNza2V5Jywgc2hvcnRjdXRfa2V5KHByZWZlcmVuY2VzLmJ0bl9jb3B5X3Jv dykpOwotCi0gICRlbC5maW5kKCcjYnRuLXBhc3RlLXJvdycpCi0gICAgLmF0dHIoJ3RpdGxlJywg c2hvcnRjdXRfYWNjZXNza2V5X3RpdGxlKGdldHRleHQoJ1Bhc3RlJykscHJlZmVyZW5jZXMuYnRu X3Bhc3RlX3JvdykpCi0gICAgLmF0dHIoJ2FyaWEtbGFiZWwnLCBzaG9ydGN1dF9hY2Nlc3NrZXlf dGl0bGUoZ2V0dGV4dCgnUGFzdGUnKSxwcmVmZXJlbmNlcy5idG5fcGFzdGVfcm93KSkKLSAgICAu YXR0cignYWNjZXNza2V5Jywgc2hvcnRjdXRfa2V5KHByZWZlcmVuY2VzLmJ0bl9wYXN0ZV9yb3cp KTsKLQotICAkZWwuZmluZCgnI2J0bi1kZWxldGUtcm93JykKLSAgICAuYXR0cigndGl0bGUnLCBz aG9ydGN1dF9hY2Nlc3NrZXlfdGl0bGUoZ2V0dGV4dCgnRGVsZXRlJykscHJlZmVyZW5jZXMuYnRu X2RlbGV0ZV9yb3cpKQotICAgIC5hdHRyKCdhcmlhLWxhYmVsJywgc2hvcnRjdXRfYWNjZXNza2V5 X3RpdGxlKGdldHRleHQoJ0RlbGV0ZScpLHByZWZlcmVuY2VzLmJ0bl9kZWxldGVfcm93KSkKLSAg ICAuYXR0cignYWNjZXNza2V5Jywgc2hvcnRjdXRfa2V5KHByZWZlcmVuY2VzLmJ0bl9kZWxldGVf cm93KSk7Ci0KLSAgJGVsLmZpbmQoJyNidG4tZmlsdGVyJykKLSAgICAuYXR0cigndGl0bGUnLCBz aG9ydGN1dF9hY2Nlc3NrZXlfdGl0bGUoZ2V0dGV4dCgnRmlsdGVyJykscHJlZmVyZW5jZXMuYnRu X2ZpbHRlcl9kaWFsb2cpKQotICAgIC5hdHRyKCdhcmlhLWxhYmVsJywgc2hvcnRjdXRfYWNjZXNz a2V5X3RpdGxlKGdldHRleHQoJ0ZpbHRlcicpLHByZWZlcmVuY2VzLmJ0bl9maWx0ZXJfZGlhbG9n KSkKLSAgICAuYXR0cignYWNjZXNza2V5Jywgc2hvcnRjdXRfa2V5KHByZWZlcmVuY2VzLmJ0bl9m aWx0ZXJfZGlhbG9nKSk7Ci0KLSAgJGVsLmZpbmQoJyNidG4tZmlsdGVyLWRyb3Bkb3duJykKLSAg ICAuYXR0cigndGl0bGUnLCBzaG9ydGN1dF9hY2Nlc3NrZXlfdGl0bGUoZ2V0dGV4dCgnRmlsdGVy IG9wdGlvbnMnKSxwcmVmZXJlbmNlcy5idG5fZmlsdGVyX29wdGlvbnMpKQotICAgIC5hdHRyKCdh cmlhLWxhYmVsJywgc2hvcnRjdXRfYWNjZXNza2V5X3RpdGxlKGdldHRleHQoJ0ZpbHRlciBvcHRp b25zJykscHJlZmVyZW5jZXMuYnRuX2ZpbHRlcl9vcHRpb25zKSkKLSAgICAuYXR0cignYWNjZXNz a2V5Jywgc2hvcnRjdXRfa2V5KHByZWZlcmVuY2VzLmJ0bl9maWx0ZXJfb3B0aW9ucykpOwotCi0g ICRlbC5maW5kKCcjYnRuLXJvd3MtbGltaXQnKQotICAgIC5hdHRyKCd0aXRsZScsIHNob3J0Y3V0 X2FjY2Vzc2tleV90aXRsZShnZXR0ZXh0KCdSb3dzIGxpbWl0JykscHJlZmVyZW5jZXMuYnRuX3Jv d3NfbGltaXQpKQotICAgIC5hdHRyKCdhcmlhLWxhYmVsJywgc2hvcnRjdXRfYWNjZXNza2V5X3Rp dGxlKGdldHRleHQoJ1Jvd3MgbGltaXQnKSxwcmVmZXJlbmNlcy5idG5fcm93c19saW1pdCkpCi0g ICAgLmF0dHIoJ2FjY2Vzc2tleScsIHNob3J0Y3V0X2tleShwcmVmZXJlbmNlcy5idG5fcm93c19s aW1pdCkpOwotCi0gICRlbC5maW5kKCcjYnRuLXF1ZXJ5LWRyb3Bkb3duJykKLSAgICAuYXR0cign dGl0bGUnLCBzaG9ydGN1dF9hY2Nlc3NrZXlfdGl0bGUoZ2V0dGV4dCgnRXhlY3V0ZSBvcHRpb25z JykscHJlZmVyZW5jZXMuYnRuX2V4ZWN1dGVfb3B0aW9ucykpCi0gICAgLmF0dHIoJ2FyaWEtbGFi ZWwnLCBzaG9ydGN1dF9hY2Nlc3NrZXlfdGl0bGUoZ2V0dGV4dCgnRXhlY3V0ZSBvcHRpb25zJyks cHJlZmVyZW5jZXMuYnRuX2V4ZWN1dGVfb3B0aW9ucykpCi0gICAgLmF0dHIoJ2FjY2Vzc2tleScs IHNob3J0Y3V0X2tleShwcmVmZXJlbmNlcy5idG5fZXhlY3V0ZV9vcHRpb25zKSk7Ci0KLSAgJGVs LmZpbmQoJyNidG4tY2FuY2VsLXF1ZXJ5JykKLSAgICAuYXR0cigndGl0bGUnLCBzaG9ydGN1dF9h Y2Nlc3NrZXlfdGl0bGUoZ2V0dGV4dCgnQ2FuY2VsIHF1ZXJ5JykscHJlZmVyZW5jZXMuYnRuX2Nh bmNlbF9xdWVyeSkpCi0gICAgLmF0dHIoJ2FyaWEtbGFiZWwnLCBzaG9ydGN1dF9hY2Nlc3NrZXlf dGl0bGUoZ2V0dGV4dCgnQ2FuY2VsIHF1ZXJ5JykscHJlZmVyZW5jZXMuYnRuX2NhbmNlbF9xdWVy eSkpCi0gICAgLmF0dHIoJ2FjY2Vzc2tleScsIHNob3J0Y3V0X2tleShwcmVmZXJlbmNlcy5idG5f Y2FuY2VsX3F1ZXJ5KSk7Ci0KLSAgJGVsLmZpbmQoJyNidG4tY2xlYXItZHJvcGRvd24nKQotICAg IC5hdHRyKCd0aXRsZScsIHNob3J0Y3V0X2FjY2Vzc2tleV90aXRsZShnZXR0ZXh0KCdDbGVhcicp LHByZWZlcmVuY2VzLmJ0bl9jbGVhcl9vcHRpb25zKSkKLSAgICAuYXR0cignYXJpYS1sYWJlbCcs IHNob3J0Y3V0X2FjY2Vzc2tleV90aXRsZShnZXR0ZXh0KCdDbGVhcicpLHByZWZlcmVuY2VzLmJ0 bl9jbGVhcl9vcHRpb25zKSkKLSAgICAuYXR0cignYWNjZXNza2V5Jywgc2hvcnRjdXRfa2V5KHBy ZWZlcmVuY2VzLmJ0bl9jbGVhcl9vcHRpb25zKSk7Ci0KLSAgJGVsLmZpbmQoJyNidG4tY29ubi1z dGF0dXMnKQotICAgIC5hdHRyKCdhY2Nlc3NrZXknLCBzaG9ydGN1dF9rZXkocHJlZmVyZW5jZXMu YnRuX2Nvbm5fc3RhdHVzKSkKLSAgICAuZmluZCgnaScpCi0gICAgLmF0dHIoJ3RpdGxlJywKLSAg ICAgIHNob3J0Y3V0X2FjY2Vzc2tleV90aXRsZShnZXR0ZXh0KCdDb25uZWN0aW9uIHN0YXR1cyAo Y2xpY2sgZm9yIGRldGFpbHMpJyksCi0gICAgICAgIHByZWZlcmVuY2VzLmJ0bl9jb25uX3N0YXR1 cykpOwotCi0gIC8qIEFjY2Vzc2VkIHVzaW5nIGN0cmwsYXRsLHNoaWZ0IGFuZCBrZXkgKi8KLSAg JGVsLmZpbmQoJyNidG4tZmxhc2gnKQotICAgIC5hdHRyKCd0aXRsZScsCi0gICAgICBzaG9ydGN1 dF90aXRsZShnZXR0ZXh0KCdFeGVjdXRlL1JlZnJlc2gnKSxwcmVmZXJlbmNlcy5leGVjdXRlX3F1 ZXJ5KSkKLSAgICAuYXR0cignYXJpYS1sYWJlbCcsCi0gICAgICBzaG9ydGN1dF90aXRsZShnZXR0 ZXh0KCdFeGVjdXRlL1JlZnJlc2gnKSxwcmVmZXJlbmNlcy5leGVjdXRlX3F1ZXJ5KSk7Ci0KLSAg JGVsLmZpbmQoJyNidG4tZXhwbGFpbicpCi0gICAgLmF0dHIoJ3RpdGxlJywKLSAgICAgIHNob3J0 Y3V0X3RpdGxlKGdldHRleHQoJ0V4cGxhaW4nKSxwcmVmZXJlbmNlcy5leHBsYWluX3F1ZXJ5KSkK LSAgICAuYXR0cignYXJpYS1sYWJlbCcsCi0gICAgICBzaG9ydGN1dF90aXRsZShnZXR0ZXh0KCdF eHBsYWluJykscHJlZmVyZW5jZXMuZXhwbGFpbl9xdWVyeSkpOwotCi0gICRlbC5maW5kKCcjYnRu LWV4cGxhaW4tYW5hbHl6ZScpCi0gICAgLmF0dHIoJ3RpdGxlJywKLSAgICAgIHNob3J0Y3V0X3Rp dGxlKGdldHRleHQoJ0V4cGxhaW4gQW5hbHl6ZScpLHByZWZlcmVuY2VzLmV4cGxhaW5fYW5hbHl6 ZV9xdWVyeSkpCi0gICAgLmF0dHIoJ2FyaWEtbGFiZWwnLAotICAgICAgc2hvcnRjdXRfdGl0bGUo Z2V0dGV4dCgnRXhwbGFpbiBBbmFseXplJykscHJlZmVyZW5jZXMuZXhwbGFpbl9hbmFseXplX3F1 ZXJ5KSk7Ci0KLSAgJGVsLmZpbmQoJyNidG4tc2F2ZS1yZXN1bHRzLXRvLWZpbGUnKQotICAgIC5h dHRyKCd0aXRsZScsCi0gICAgICBzaG9ydGN1dF90aXRsZShnZXR0ZXh0KCdTYXZlIHJlc3VsdHMg dG8gZmlsZScpLHByZWZlcmVuY2VzLmRvd25sb2FkX3Jlc3VsdHMpKQotICAgIC5hdHRyKCdhcmlh LWxhYmVsJywKLSAgICAgIHNob3J0Y3V0X3RpdGxlKGdldHRleHQoJ1NhdmUgcmVzdWx0cyB0byBm aWxlJykscHJlZmVyZW5jZXMuZG93bmxvYWRfcmVzdWx0cykpOwotCi0gICRlbC5maW5kKCcjYnRu LXNhdmUtZGF0YScpCi0gICAgLmF0dHIoJ3RpdGxlJywKLSAgICAgIHNob3J0Y3V0X3RpdGxlKGdl dHRleHQoJ1NhdmUgRGF0YSBDaGFuZ2VzJykscHJlZmVyZW5jZXMuc2F2ZV9kYXRhKSkKLSAgICAu YXR0cignYXJpYS1sYWJlbCcsCi0gICAgICBzaG9ydGN1dF90aXRsZShnZXR0ZXh0KCdTYXZlIERh dGEgQ2hhbmdlcycpLHByZWZlcmVuY2VzLnNhdmVfZGF0YSkpOwotCi0gICRlbC5maW5kKCcjYnRu LWNvbW1pdCcpCi0gICAgLmF0dHIoJ3RpdGxlJywKLSAgICAgIHNob3J0Y3V0X3RpdGxlKGdldHRl eHQoJ0NvbW1pdCcpLHByZWZlcmVuY2VzLmNvbW1pdF90cmFuc2FjdGlvbikpCi0gICAgLmF0dHIo J2FyaWEtbGFiZWwnLAotICAgICAgc2hvcnRjdXRfdGl0bGUoZ2V0dGV4dCgnQ29tbWl0JykscHJl ZmVyZW5jZXMuY29tbWl0X3RyYW5zYWN0aW9uKSk7Ci0KLSAgJGVsLmZpbmQoJyNidG4tcm9sbGJh Y2snKQotICAgIC5hdHRyKCd0aXRsZScsCi0gICAgICBzaG9ydGN1dF90aXRsZShnZXR0ZXh0KCdS b2xsYmFjaycpLHByZWZlcmVuY2VzLnJvbGxiYWNrX3RyYW5zYWN0aW9uKSkKLSAgICAuYXR0cign YXJpYS1sYWJlbCcsCi0gICAgICBzaG9ydGN1dF90aXRsZShnZXR0ZXh0KCdSb2xsYmFjaycpLHBy ZWZlcmVuY2VzLnJvbGxiYWNrX3RyYW5zYWN0aW9uKSk7Ci0KLSAgJGVsLmZpbmQoJyNidG4tc2hv dy1xdWVyeS10b29sJykKLSAgICAuYXR0cigndGl0bGUnLAotICAgICAgc2hvcnRjdXRfdGl0bGUo Z2V0dGV4dCgnUXVlcnkgdG9vbCcpLHByZWZlcmVuY2VzLnNob3dfcXVlcnlfdG9vbCkpCi0gICAg LmF0dHIoJ2FyaWEtbGFiZWwnLAotICAgICAgc2hvcnRjdXRfdGl0bGUoZ2V0dGV4dCgnUXVlcnkg dG9vbCcpLHByZWZlcmVuY2VzLnNob3dfcXVlcnlfdG9vbCkpOwotCi0gIC8qIFNldCBleHBsYWlu IG9wdGlvbnMgb24gcXVlcnkgZWRpdG9yICovCi0gIGlmIChwcmVmZXJlbmNlcy5leHBsYWluX3Zl cmJvc2UpewotICAgICRlbC5maW5kKCcuZXhwbGFpbi12ZXJib3NlJykucmVtb3ZlQ2xhc3MoJ3Zp c2liaWxpdHktaGlkZGVuJyk7Ci0gIH0KLSAgZWxzZSB7Ci0gICAgJGVsLmZpbmQoJy5leHBsYWlu LXZlcmJvc2UnKS5hZGRDbGFzcygndmlzaWJpbGl0eS1oaWRkZW4nKTsKLSAgfQotCi0gIGlmIChw cmVmZXJlbmNlcy5leHBsYWluX2Nvc3RzKXsKLSAgICAkZWwuZmluZCgnLmV4cGxhaW4tY29zdHMn KS5yZW1vdmVDbGFzcygndmlzaWJpbGl0eS1oaWRkZW4nKTsKLSAgfQotICBlbHNlIHsKLSAgICAk ZWwuZmluZCgnLmV4cGxhaW4tY29zdHMnKS5hZGRDbGFzcygndmlzaWJpbGl0eS1oaWRkZW4nKTsK LSAgfQotCi0gIGlmIChwcmVmZXJlbmNlcy5leHBsYWluX2J1ZmZlcnMpewotICAgICRlbC5maW5k KCcuZXhwbGFpbi1idWZmZXJzJykucmVtb3ZlQ2xhc3MoJ3Zpc2liaWxpdHktaGlkZGVuJyk7Ci0g IH0KLSAgZWxzZSB7Ci0gICAgJGVsLmZpbmQoJy5leHBsYWluLWJ1ZmZlcnMnKS5hZGRDbGFzcygn dmlzaWJpbGl0eS1oaWRkZW4nKTsKLSAgfQotCi0gIGlmIChwcmVmZXJlbmNlcy5leHBsYWluX3Rp bWluZykgewotICAgICRlbC5maW5kKCcuZXhwbGFpbi10aW1pbmcnKS5yZW1vdmVDbGFzcygndmlz aWJpbGl0eS1oaWRkZW4nKTsKLSAgfQotICBlbHNlIHsKLSAgICAkZWwuZmluZCgnLmV4cGxhaW4t dGltaW5nJykuYWRkQ2xhc3MoJ3Zpc2liaWxpdHktaGlkZGVuJyk7Ci0gIH0KLQotICBpZiAocHJl ZmVyZW5jZXMuZXhwbGFpbl9zdW1tYXJ5KSB7Ci0gICAgJGVsLmZpbmQoJy5leHBsYWluLXN1bW1h cnknKS5yZW1vdmVDbGFzcygndmlzaWJpbGl0eS1oaWRkZW4nKTsKLSAgfQotICBlbHNlIHsKLSAg ICAkZWwuZmluZCgnLmV4cGxhaW4tc3VtbWFyeScpLmFkZENsYXNzKCd2aXNpYmlsaXR5LWhpZGRl bicpOwotICB9Ci0KLSAgaWYgKHByZWZlcmVuY2VzLmV4cGxhaW5fc2V0dGluZ3MpIHsKLSAgICAk ZWwuZmluZCgnLmV4cGxhaW4tc2V0dGluZ3MnKS5yZW1vdmVDbGFzcygndmlzaWJpbGl0eS1oaWRk ZW4nKTsKLSAgfQotICBlbHNlIHsKLSAgICAkZWwuZmluZCgnLmV4cGxhaW4tc2V0dGluZ3MnKS5h ZGRDbGFzcygndmlzaWJpbGl0eS1oaWRkZW4nKTsKLSAgfQotCi0gIC8qIENvbm5lY3Rpb24gc3Rh dHVzIGNoZWNrICovCi0gIC8qIHJlbW92ZSB0aGUgc3RhdHVzIGNoZWNrZXIgaWYgcHJlc2VudCAq LwotICBpZihzcWxFZGl0b3IuY29ubkludGVydmFsSWQgIT0gbnVsbCkgewotICAgIGNsZWFySW50 ZXJ2YWwoc3FsRWRpdG9yLmNvbm5JbnRlcnZhbElkKTsKLSAgICBzcWxFZGl0b3IuY29ubkludGVy dmFsSWQgPSBudWxsOwotICB9Ci0gIGlmIChwcmVmZXJlbmNlcy5jb25uZWN0aW9uX3N0YXR1cykg ewotICAgIGxldCAkY29ubl9zdGF0dXMgPSAkZWwuZmluZCgnI2J0bi1jb25uLXN0YXR1cycpLAot ICAgICAgJHN0YXR1c19lbCA9ICRjb25uX3N0YXR1cy5maW5kKCdpJyk7Ci0gICAgJGNvbm5fc3Rh dHVzLnBvcG92ZXIoKTsKLQotICAgICRjb25uX3N0YXR1cy5yZW1vdmVDbGFzcygnY29ubmVjdGlv bi1zdGF0dXMtaGlkZScpOwotCi0gICAgLy8gVG8gc2V0IGluaXRpYWwgY29ubmVjdGlvbgotICAg IFNxbEVkaXRvclV0aWxzLmZldGNoQ29ubmVjdGlvblN0YXR1cyhzcWxFZGl0b3IuaGFuZGxlciwg JGNvbm5fc3RhdHVzLCAkc3RhdHVzX2VsKTsKLQotICAgIC8vIENhbGxpbmcgaXQgYWdhaW4gaW4g c3BlY2lmaWVkIGludGVydmFsCi0gICAgc3FsRWRpdG9yLmNvbm5JbnRlcnZhbElkID0gIHNldElu dGVydmFsKAotICAgICAgU3FsRWRpdG9yVXRpbHMuZmV0Y2hDb25uZWN0aW9uU3RhdHVzLmJpbmQo bnVsbCwgc3FsRWRpdG9yLmhhbmRsZXIsICRjb25uX3N0YXR1cywgJHN0YXR1c19lbCksCi0gICAg ICBwcmVmZXJlbmNlcy5jb25uZWN0aW9uX3N0YXR1c19mZXRjaF90aW1lICogMTAwMAotICAgICk7 Ci0gIH0KLSAgZWxzZSB7Ci0gICAgJGVsLmZpbmQoJyNidG4tY29ubi1zdGF0dXMnKS5hZGRDbGFz cygnY29ubmVjdGlvbi1zdGF0dXMtaGlkZScpOwotICB9Ci0KLSAgLyogQ29kZSBNaXJyb3IgUHJl ZmVyZW5jZXMgKi8KLSAgbGV0IHNxbF9mb250X3NpemUgPSBTcWxFZGl0b3JVdGlscy5jYWxjRm9u dFNpemUocHJlZmVyZW5jZXMuc3FsX2ZvbnRfc2l6ZSk7Ci0gICQoc3FsRWRpdG9yLnF1ZXJ5X3Rv b2xfb2JqLmdldFdyYXBwZXJFbGVtZW50KCkpLmNzcygnZm9udC1zaXplJywgc3FsX2ZvbnRfc2l6 ZSk7Ci0KLSAgaWYocHJlZmVyZW5jZXMucGxhaW5fZWRpdG9yX21vZGUpIHsKLSAgICBzcWxFZGl0 b3IucXVlcnlfdG9vbF9vYmouc2V0T3B0aW9uKCdtb2RlJywgJ3RleHQvcGxhaW4nKTsKLSAgICAv KiBBbHRob3VnaCBub3QgcmVxdWlyZWQsIHNldHRpbmcgZXhwbGljaXRseSBhcyBjb2RlbWlycm9y IHdpbGwgcmVtb3ZlIGNvZGUgZm9sZGluZyBvbmx5IG9uIG5leHQgZWRpdCAqLwotICAgIHNxbEVk aXRvci5xdWVyeV90b29sX29iai5zZXRPcHRpb24oJ2ZvbGRHdXR0ZXInLCBmYWxzZSk7Ci0gIH0g ZWxzZSB7Ci0gICAgc3FsRWRpdG9yLnF1ZXJ5X3Rvb2xfb2JqLnNldE9wdGlvbignbW9kZScsICd0 ZXh0L3gtcGdzcWwnKTsKLSAgICBzcWxFZGl0b3IucXVlcnlfdG9vbF9vYmouc2V0T3B0aW9uKCdm b2xkR3V0dGVyJywgcHJlZmVyZW5jZXMuY29kZV9mb2xkaW5nKTsKLSAgfQotICBzcWxFZGl0b3Iu cXVlcnlfdG9vbF9vYmouc2V0T3B0aW9uKCdmb2xkR3V0dGVyJywgcHJlZmVyZW5jZXMuY29kZV9m b2xkaW5nKTsKLSAgc3FsRWRpdG9yLnF1ZXJ5X3Rvb2xfb2JqLnNldE9wdGlvbignaW5kZW50V2l0 aFRhYnMnLCAhcHJlZmVyZW5jZXMudXNlX3NwYWNlcyk7Ci0gIHNxbEVkaXRvci5xdWVyeV90b29s X29iai5zZXRPcHRpb24oJ2luZGVudFVuaXQnLCBwcmVmZXJlbmNlcy51c2Vfc3BhY2VzID8gcHJl ZmVyZW5jZXMudGFiX3NpemUgOiA0KTsKLSAgc3FsRWRpdG9yLnF1ZXJ5X3Rvb2xfb2JqLnNldE9w dGlvbigndGFiU2l6ZScsIHByZWZlcmVuY2VzLnVzZV9zcGFjZXMgPyBwcmVmZXJlbmNlcy50YWJf c2l6ZSA6IDQpOwotICBzcWxFZGl0b3IucXVlcnlfdG9vbF9vYmouc2V0T3B0aW9uKCdsaW5lV3Jh cHBpbmcnLCBwcmVmZXJlbmNlcy53cmFwX2NvZGUpOwotICBzcWxFZGl0b3IucXVlcnlfdG9vbF9v Ymouc2V0T3B0aW9uKCdhdXRvQ2xvc2VCcmFja2V0cycsIHByZWZlcmVuY2VzLmluc2VydF9wYWly X2JyYWNrZXRzKTsKLSAgc3FsRWRpdG9yLnF1ZXJ5X3Rvb2xfb2JqLnNldE9wdGlvbignbWF0Y2hC cmFja2V0cycsIHByZWZlcmVuY2VzLmJyYWNlX21hdGNoaW5nKTsKLSAgc3FsRWRpdG9yLnF1ZXJ5 X3Rvb2xfb2JqLnJlZnJlc2goKTsKLQotICAvKiBSZW5kZXIgaGlzdG9yeSB0byByZWZsZWN0IEZv bnQgc2l6ZSBjaGFuZ2UgKi8KLSAgc3FsRWRpdG9yLmhpc3RvcnlDb21wb25lbnQuc2V0RWRpdG9y UHJlZih7Ci0gICAgJ3NxbF9mb250X3NpemUnIDogc3FsX2ZvbnRfc2l6ZSwKLSAgfSk7Ci19Ci0K LWV4cG9ydCB7dXBkYXRlVUlQcmVmZXJlbmNlc307CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9z dGF0aWMvanMvc3FsZWRpdG9yL3F1ZXJ5X3R4bl9zdGF0dXNfY29uc3RhbnRzLmpzIGIvd2ViL3Bn YWRtaW4vc3RhdGljL2pzL3NxbGVkaXRvci9xdWVyeV90eG5fc3RhdHVzX2NvbnN0YW50cy5qcwpk ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDc1MjY0Mjk2Li4wMDAwMDAwMDAKLS0tIGEv d2ViL3BnYWRtaW4vc3RhdGljL2pzL3NxbGVkaXRvci9xdWVyeV90eG5fc3RhdHVzX2NvbnN0YW50 cy5qcworKysgL2Rldi9udWxsCkBAIC0xLDExICswLDAgQEAKLS8qIHBzeWNvcGcyIHRyYW5zYWN0 aW9uIHN0YXR1cyBjb25zdGFudHMKLSAqIGh0dHA6Ly9pbml0ZC5vcmcvcHN5Y29wZy9kb2NzL2V4 dGVuc2lvbnMuaHRtbCN0cmFuc2FjdGlvbi1zdGF0dXMtY29uc3RhbnRzCi0gKi8KLQotbW9kdWxl LmV4cG9ydHMgPSB7Ci0gIFRSQU5TQUNUSU9OX1NUQVRVU19JRExFOiAwLAotICBUUkFOU0FDVElP Tl9TVEFUVVNfQUNUSVZFOiAxLAotICBUUkFOU0FDVElPTl9TVEFUVVNfSU5UUkFOUzogMiwKLSAg VFJBTlNBQ1RJT05fU1RBVFVTX0lORVJST1I6IDMsCi0gIFRSQU5TQUNUSU9OX1NUQVRVU19VTktO T1dOOiA1LAotfTsKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL3N0YXRpYy9qcy91dGlscy5qcyBi L3dlYi9wZ2FkbWluL3N0YXRpYy9qcy91dGlscy5qcwppbmRleCA5ZDY3MTY1MzMuLjllMjMwNTdj MyAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vc3RhdGljL2pzL3V0aWxzLmpzCisrKyBiL3dlYi9w Z2FkbWluL3N0YXRpYy9qcy91dGlscy5qcwpAQCAtMzAyLDcgKzMwMiw3IEBAIGV4cG9ydCBmdW5j dGlvbiBzcHJpbnRmKGlfc3RyKSB7CiAKIC8vIE1vZGlmaWVkIHJlZjogaHR0cDovL3N0YWNrb3Zl cmZsb3cuY29tL2EvMTI5MzE2My8yMzQzIHRvIHN1aXRlIHBnQWRtaW4uCiAvLyBUaGlzIHdpbGwg cGFyc2UgYSBkZWxpbWl0ZWQgc3RyaW5nIGludG8gYW4gYXJyYXkgb2YgYXJyYXlzLgotZXhwb3J0 IGZ1bmN0aW9uIENTVlRvQXJyYXkoIHN0ckRhdGEsIHN0ckRlbGltaXRlciwgcXVvdGVDaGFyKXsK K2V4cG9ydCBmdW5jdGlvbiBDU1ZUb0FycmF5KHN0ckRhdGEsIHN0ckRlbGltaXRlciwgcXVvdGVD aGFyKXsKICAgc3RyRGVsaW1pdGVyID0gc3RyRGVsaW1pdGVyIHx8ICcsJzsKICAgcXVvdGVDaGFy ID0gcXVvdGVDaGFyIHx8ICciJzsKIApkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vc3RhdGljL3Nj c3MvX2NvZGVtaXJyb3Iub3ZlcnJpZGVzLnNjc3MgYi93ZWIvcGdhZG1pbi9zdGF0aWMvc2Nzcy9f Y29kZW1pcnJvci5vdmVycmlkZXMuc2NzcwppbmRleCBmZDQ0OWNjZjQuLjE0YzA4YTVmOSAxMDA2 NDQKLS0tIGEvd2ViL3BnYWRtaW4vc3RhdGljL3Njc3MvX2NvZGVtaXJyb3Iub3ZlcnJpZGVzLnNj c3MKKysrIGIvd2ViL3BnYWRtaW4vc3RhdGljL3Njc3MvX2NvZGVtaXJyb3Iub3ZlcnJpZGVzLnNj c3MKQEAgLTE2Nyw2ICsxNjcsOSBAQAogICAgICAgYmFja2dyb3VuZDogJHNxbC1oaW50LWFjdGl2 ZS1iZzsKICAgICAgIGNvbG9yOiAkc3FsLWhpbnQtYWN0aXZlLWZnOwogICAgIH0KKyAgICAmIC5z cWxlZGl0b3ItaGludCB7CisgICAgICBwYWRkaW5nLWxlZnQ6IDIwcHg7CisgICAgfQogICB9CiB9 CiAKQEAgLTIwOCwzICsyMTEsNSBAQAogICBiYWNrZ3JvdW5kLWNvbG9yOiAkc3FsLWVkaXRvci1k aXNhYmxlLWJnICFpbXBvcnRhbnQ7CiB9CiAKKworCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi90 b29scy9kYXRhZ3JpZC9fX2luaXRfXy5weSBiL3dlYi9wZ2FkbWluL3Rvb2xzL2RhdGFncmlkL19f aW5pdF9fLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiM2YxMzcxYjQuLjAwMDAw MDAwMAotLS0gYS93ZWIvcGdhZG1pbi90b29scy9kYXRhZ3JpZC9fX2luaXRfXy5weQorKysgL2Rl di9udWxsCkBAIC0xLDYxNyArMCwwIEBACi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIwotIyBwZ0FkbWlu IDQgLSBQb3N0Z3JlU1FMIFRvb2xzCi0jCi0jIENvcHlyaWdodCAoQykgMjAxMyAtIDIwMjIsIFRo ZSBwZ0FkbWluIERldmVsb3BtZW50IFRlYW0KLSMgVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1 bmRlciB0aGUgUG9zdGdyZVNRTCBMaWNlbmNlCi0jCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi0iIiJB IGJsdWVwcmludCBtb2R1bGUgaW1wbGVtZW50aW5nIHRoZSBkYXRhZ3JpZCBmcmFtZS4iIiIKLQot aW1wb3J0IHNpbXBsZWpzb24gYXMganNvbgotaW1wb3J0IHBpY2tsZQotaW1wb3J0IHJhbmRvbQot Ci1mcm9tIHRocmVhZGluZyBpbXBvcnQgTG9jawotZnJvbSBmbGFzayBpbXBvcnQgUmVzcG9uc2Us IHVybF9mb3IsIHNlc3Npb24sIHJlcXVlc3QsIG1ha2VfcmVzcG9uc2UKLWZyb20gd2Vya3pldWcu dXNlcmFnZW50cyBpbXBvcnQgVXNlckFnZW50Ci1mcm9tIGZsYXNrIGltcG9ydCBjdXJyZW50X2Fw cCBhcyBhcHAsIHJlbmRlcl90ZW1wbGF0ZQotZnJvbSBmbGFza19iYWJlbCBpbXBvcnQgZ2V0dGV4 dAotZnJvbSBmbGFza19zZWN1cml0eSBpbXBvcnQgbG9naW5fcmVxdWlyZWQsIGN1cnJlbnRfdXNl cgotZnJvbSBwZ2FkbWluLnRvb2xzLnNxbGVkaXRvci5jb21tYW5kIGltcG9ydCBPYmplY3RSZWdp c3RyeSwgU1FMRmlsdGVyCi1mcm9tIHBnYWRtaW4udG9vbHMuc3FsZWRpdG9yIGltcG9ydCBjaGVj a190cmFuc2FjdGlvbl9zdGF0dXMKLWZyb20gcGdhZG1pbi51dGlscyBpbXBvcnQgUGdBZG1pbk1v ZHVsZQotZnJvbSBwZ2FkbWluLnV0aWxzLmFqYXggaW1wb3J0IG1ha2VfanNvbl9yZXNwb25zZSwg YmFkX3JlcXVlc3QsIFwKLSAgICBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IsIHVuYXV0aG9yaXplZAot Ci1mcm9tIGNvbmZpZyBpbXBvcnQgUEdfREVGQVVMVF9EUklWRVIsIEFMTE9XX1NBVkVfUEFTU1dP UkQKLWZyb20gcGdhZG1pbi5tb2RlbCBpbXBvcnQgU2VydmVyLCBVc2VyCi1mcm9tIHBnYWRtaW4u dXRpbHMuZHJpdmVyIGltcG9ydCBnZXRfZHJpdmVyCi1mcm9tIHBnYWRtaW4udXRpbHMuZXhjZXB0 aW9uIGltcG9ydCBDb25uZWN0aW9uTG9zdCwgU1NIVHVubmVsQ29ubmVjdGlvbkxvc3QKLWZyb20g cGdhZG1pbi51dGlscy5wcmVmZXJlbmNlcyBpbXBvcnQgUHJlZmVyZW5jZXMKLWZyb20gcGdhZG1p bi5zZXR0aW5ncyBpbXBvcnQgZ2V0X3NldHRpbmcKLWZyb20gcGdhZG1pbi5icm93c2VyLnV0aWxz IGltcG9ydCB1bmRlcnNjb3JlX3VuZXNjYXBlCi1mcm9tIHBnYWRtaW4udXRpbHMuZXhjZXB0aW9u IGltcG9ydCBPYmplY3RHb25lCi1mcm9tIHBnYWRtaW4udG9vbHMuc3FsZWRpdG9yLnV0aWxzLm1h Y3JvcyBpbXBvcnQgZ2V0X3VzZXJfbWFjcm9zCi1mcm9tIHBnYWRtaW4udXRpbHMuY29uc3RhbnRz IGltcG9ydCBNSU1FVFlQRV9BUFBfSlMsIFVOQVVUSF9SRVEKLQotTU9EVUxFX05BTUUgPSAnZGF0 YWdyaWQnCi0KLXF1ZXJ5X3Rvb2xfY2xvc2Vfc2Vzc2lvbl9sb2NrID0gTG9jaygpCi0KLQotY2xh c3MgRGF0YUdyaWRNb2R1bGUoUGdBZG1pbk1vZHVsZSk6Ci0gICAgIiIiCi0gICAgY2xhc3MgRGF0 YUdyaWRNb2R1bGUoUGdBZG1pbk1vZHVsZSkKLQotICAgICAgICBBIG1vZHVsZSBjbGFzcyBmb3Ig RWRpdCBHcmlkIGRlcml2ZWQgZnJvbSBQZ0FkbWluTW9kdWxlLgotICAgICIiIgotCi0gICAgTEFC RUwgPSAiRGF0YSBHcmlkIgotCi0gICAgZGVmIGdldF9vd25fbWVudWl0ZW1zKHNlbGYpOgotICAg ICAgICByZXR1cm4ge30KLQotICAgIGRlZiBnZXRfb3duX2phdmFzY3JpcHRzKHNlbGYpOgotICAg ICAgICByZXR1cm4gW3sKLSAgICAgICAgICAgICduYW1lJzogJ3BnYWRtaW4uZGF0YWdyaWQnLAot ICAgICAgICAgICAgJ3BhdGgnOiB1cmxfZm9yKCdkYXRhZ3JpZC5pbmRleCcpICsgImRhdGFncmlk IiwKLSAgICAgICAgICAgICd3aGVuJzogTm9uZQotICAgICAgICB9XQotCi0gICAgZGVmIGdldF9w YW5lbHMoc2VsZik6Ci0gICAgICAgIHJldHVybiBbXQotCi0gICAgZGVmIGdldF9leHBvc2VkX3Vy bF9lbmRwb2ludHMoc2VsZik6Ci0gICAgICAgICIiIgotICAgICAgICBSZXR1cm5zOgotICAgICAg ICAgICAgbGlzdDogVVJMIGVuZHBvaW50cyBmb3IgYmFja3VwIG1vZHVsZQotICAgICAgICAiIiIK LSAgICAgICAgcmV0dXJuIFsKLSAgICAgICAgICAgICdkYXRhZ3JpZC5pbml0aWFsaXplX2RhdGFn cmlkJywKLSAgICAgICAgICAgICdkYXRhZ3JpZC5pbml0aWFsaXplX3F1ZXJ5X3Rvb2wnLAotICAg ICAgICAgICAgJ2RhdGFncmlkLmluaXRpYWxpemVfcXVlcnlfdG9vbF93aXRoX2RpZCcsCi0gICAg ICAgICAgICAnZGF0YWdyaWQuZmlsdGVyX3ZhbGlkYXRlJywKLSAgICAgICAgICAgICdkYXRhZ3Jp ZC5maWx0ZXInLAotICAgICAgICAgICAgJ2RhdGFncmlkLnBhbmVsJywKLSAgICAgICAgICAgICdk YXRhZ3JpZC5jbG9zZScsCi0gICAgICAgICAgICAnZGF0YWdyaWQudXBkYXRlX3F1ZXJ5X3Rvb2xf Y29ubmVjdGlvbicKLSAgICAgICAgXQotCi0gICAgZGVmIG9uX2xvZ291dChzZWxmLCB1c2VyKToK LSAgICAgICAgIiIiCi0gICAgICAgIFRoaXMgaXMgYSBjYWxsYmFjayBmdW5jdGlvbiB3aGVuIHVz ZXIgbG9nb3V0IGZyb20gcGdBZG1pbgotICAgICAgICA6cGFyYW0gdXNlcjoKLSAgICAgICAgOnJl dHVybjoKLSAgICAgICAgIiIiCi0gICAgICAgIHdpdGggcXVlcnlfdG9vbF9jbG9zZV9zZXNzaW9u X2xvY2s6Ci0gICAgICAgICAgICBpZiAnZ3JpZERhdGEnIGluIHNlc3Npb246Ci0gICAgICAgICAg ICAgICAgZm9yIHRyYW5zX2lkIGluIHNlc3Npb25bJ2dyaWREYXRhJ106Ci0gICAgICAgICAgICAg ICAgICAgIGNsb3NlX3F1ZXJ5X3Rvb2xfc2Vzc2lvbih0cmFuc19pZCkKLQotICAgICAgICAgICAg ICAgICMgRGVsZXRlIGFsbCBncmlkIGRhdGEgZnJvbSBzZXNzaW9uIHZhcmlhYmxlCi0gICAgICAg ICAgICAgICAgZGVsIHNlc3Npb25bJ2dyaWREYXRhJ10KLQotCi1ibHVlcHJpbnQgPSBEYXRhR3Jp ZE1vZHVsZShNT0RVTEVfTkFNRSwgX19uYW1lX18sIHN0YXRpY191cmxfcGF0aD0nL3N0YXRpYycp Ci0KLQotQGJsdWVwcmludC5yb3V0ZSgiLyIpCi1AbG9naW5fcmVxdWlyZWQKLWRlZiBpbmRleCgp OgotICAgIHJldHVybiBiYWRfcmVxdWVzdCgKLSAgICAgICAgZXJyb3Jtc2c9Z2V0dGV4dCgnVGhp cyBVUkwgY2Fubm90IGJlIHJlcXVlc3RlZCBkaXJlY3RseS4nKQotICAgICkKLQotCi1AYmx1ZXBy aW50LnJvdXRlKCIvY3NzL2RhdGFncmlkLmNzcyIpCi1kZWYgZGF0YWdyaWRfY3NzKCk6Ci0gICAg cmV0dXJuIG1ha2VfcmVzcG9uc2UoCi0gICAgICAgIHJlbmRlcl90ZW1wbGF0ZSgnZGF0YWdyaWQv Y3NzL2RhdGFncmlkLmNzcycpLAotICAgICAgICAyMDAsIHsnQ29udGVudC1UeXBlJzogJ3RleHQv Y3NzJ30KLSAgICApCi0KLQotQGJsdWVwcmludC5yb3V0ZSgiL2ZpbHRlciIsIGVuZHBvaW50PSdm aWx0ZXInKQotQGxvZ2luX3JlcXVpcmVkCi1kZWYgc2hvd19maWx0ZXIoKToKLSAgICByZXR1cm4g cmVuZGVyX3RlbXBsYXRlKE1PRFVMRV9OQU1FICsgJy9maWx0ZXIuaHRtbCcpCi0KLQotQGJsdWVw cmludC5yb3V0ZSgKLSAgICAnL2luaXRpYWxpemUvZGF0YWdyaWQvPGludDp0cmFuc19pZD4vPGlu dDpjbWRfdHlwZT4vPG9ial90eXBlPi8nCi0gICAgJzxpbnQ6c2dpZD4vPGludDpzaWQ+LzxpbnQ6 ZGlkPi88aW50Om9ial9pZD4nLAotICAgIG1ldGhvZHM9WyJQVVQiLCAiUE9TVCJdLAotICAgIGVu ZHBvaW50PSJpbml0aWFsaXplX2RhdGFncmlkIgotKQotQGxvZ2luX3JlcXVpcmVkCi1kZWYgaW5p dGlhbGl6ZV9kYXRhZ3JpZCh0cmFuc19pZCwgY21kX3R5cGUsIG9ial90eXBlLCBzZ2lkLCBzaWQs IGRpZCwgb2JqX2lkKToKLSAgICAiIiIKLSAgICBUaGlzIG1ldGhvZCBpcyByZXNwb25zaWJsZSBm b3IgY3JlYXRpbmcgYW4gYXN5bmNocm9ub3VzIGNvbm5lY3Rpb24uCi0gICAgQWZ0ZXIgY3JlYXRp bmcgdGhlIGNvbm5lY3Rpb24gaXQgd2lsbCBpbnN0YW50aWF0ZSBhbmQgaW5pdGlhbGl6ZQotICAg IHRoZSBvYmplY3QgYXMgcGVyIHRoZSBvYmplY3QgdHlwZS4gSXQgd2lsbCBhbHNvIGNyZWF0ZSBh IHVuaXF1ZQotICAgIHRyYW5zYWN0aW9uIGlkIGFuZCBzdG9yZSB0aGUgaW5mb3JtYXRpb24gaW50 byBzZXNzaW9uIHZhcmlhYmxlLgotCi0gICAgQXJnczoKLSAgICAgICAgY21kX3R5cGU6IENvbnRh aW5zIHZhbHVlIGZvciB3aGljaCBtZW51IGl0ZW0gaXMgY2xpY2tlZC4KLSAgICAgICAgb2JqX3R5 cGU6IENvbnRhaW5zIHR5cGUgb2Ygc2VsZWN0ZWQgb2JqZWN0IGZvciB3aGljaCBkYXRhIGdyaWQg dG8KLSAgICAgICAgYmUgcmVuZGVyCi0gICAgICAgIHNnaWQ6IFNlcnZlciBncm91cCBJZAotICAg ICAgICBzaWQ6IFNlcnZlciBJZAotICAgICAgICBkaWQ6IERhdGFiYXNlIElkCi0gICAgICAgIG9i al9pZDogSWQgb2YgY3VycmVudGx5IHNlbGVjdGVkIG9iamVjdAotICAgICIiIgotCi0gICAgaWYg cmVxdWVzdC5kYXRhOgotICAgICAgICBmaWx0ZXJfc3FsID0ganNvbi5sb2FkcyhyZXF1ZXN0LmRh dGEsIGVuY29kaW5nPSd1dGYtOCcpCi0gICAgZWxzZToKLSAgICAgICAgZmlsdGVyX3NxbCA9IHJl cXVlc3QuYXJncyBvciByZXF1ZXN0LmZvcm0KLQotICAgICMgQ3JlYXRlIGFzeW5jaHJvbm91cyBj b25uZWN0aW9uIHVzaW5nIHJhbmRvbSBjb25uZWN0aW9uIGlkLgotICAgIGNvbm5faWQgPSBzdHIo cmFuZG9tLnJhbmRpbnQoMSwgOTk5OTk5OSkpCi0gICAgdHJ5OgotICAgICAgICBtYW5hZ2VyID0g Z2V0X2RyaXZlcihQR19ERUZBVUxUX0RSSVZFUikuY29ubmVjdGlvbl9tYW5hZ2VyKHNpZCkKLSAg ICAgICAgIyBkZWZhdWx0X2Nvbm4gaXMgc2FtZSBjb25uZWN0aW9uIHdoaWNoIGlzIGNyZWF0ZWQg d2hlbiB1c2VyIGNvbm5lY3QgdG8KLSAgICAgICAgIyBkYXRhYmFzZSBmcm9tIHRyZWUKLSAgICAg ICAgZGVmYXVsdF9jb25uID0gbWFuYWdlci5jb25uZWN0aW9uKGRpZD1kaWQpCi0gICAgICAgIGNv bm4gPSBtYW5hZ2VyLmNvbm5lY3Rpb24oZGlkPWRpZCwgY29ubl9pZD1jb25uX2lkLAotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dG9fcmVjb25uZWN0PUZhbHNlLAotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzZV9iaW5hcnlfcGxhY2Vob2xkZXI9VHJ1ZSwK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcnJheV90b19zdHJpbmc9VHJ1ZSkK LSAgICBleGNlcHQgKENvbm5lY3Rpb25Mb3N0LCBTU0hUdW5uZWxDb25uZWN0aW9uTG9zdCk6Ci0g ICAgICAgIHJhaXNlCi0gICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgotICAgICAgICBhcHAubG9n Z2VyLmVycm9yKGUpCi0gICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jt c2c9c3RyKGUpKQotCi0gICAgc3RhdHVzLCBtc2cgPSBkZWZhdWx0X2Nvbm4uY29ubmVjdCgpCi0g ICAgaWYgbm90IHN0YXR1czoKLSAgICAgICAgYXBwLmxvZ2dlci5lcnJvcihtc2cpCi0gICAgICAg IHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9c3RyKG1zZykpCi0KLSAgICBz dGF0dXMsIG1zZyA9IGNvbm4uY29ubmVjdCgpCi0gICAgaWYgbm90IHN0YXR1czoKLSAgICAgICAg YXBwLmxvZ2dlci5lcnJvcihtc2cpCi0gICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJy b3IoZXJyb3Jtc2c9c3RyKG1zZykpCi0gICAgdHJ5OgotICAgICAgICAjIGlmIG9iamVjdCB0eXBl IGlzIHBhcnRpdGlvbiB0aGVuIGl0IGlzIG5vdGhpbmcgYnV0IGEgdGFibGUuCi0gICAgICAgIGlm IG9ial90eXBlID09ICdwYXJ0aXRpb24nOgotICAgICAgICAgICAgb2JqX3R5cGUgPSAndGFibGUn Ci0KLSAgICAgICAgIyBHZXQgdGhlIG9iamVjdCBhcyBwZXIgdGhlIG9iamVjdCB0eXBlCi0gICAg ICAgIGNvbW1hbmRfb2JqID0gT2JqZWN0UmVnaXN0cnkuZ2V0X29iamVjdCgKLSAgICAgICAgICAg IG9ial90eXBlLCBjb25uX2lkPWNvbm5faWQsIHNnaWQ9c2dpZCwgc2lkPXNpZCwKLSAgICAgICAg ICAgIGRpZD1kaWQsIG9ial9pZD1vYmpfaWQsIGNtZF90eXBlPWNtZF90eXBlLAotICAgICAgICAg ICAgc3FsX2ZpbHRlcj1maWx0ZXJfc3FsCi0gICAgICAgICkKLSAgICBleGNlcHQgT2JqZWN0R29u ZToKLSAgICAgICAgcmFpc2UKLSAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6Ci0gICAgICAgIGFw cC5sb2dnZXIuZXJyb3IoZSkKLSAgICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJvcihl cnJvcm1zZz1zdHIoZSkpCi0KLSAgICBpZiAnZ3JpZERhdGEnIG5vdCBpbiBzZXNzaW9uOgotICAg ICAgICBzcWxfZ3JpZF9kYXRhID0gZGljdCgpCi0gICAgZWxzZToKLSAgICAgICAgc3FsX2dyaWRf ZGF0YSA9IHNlc3Npb25bJ2dyaWREYXRhJ10KLQotICAgICMgVXNlIHBpY2tsZSB0byBzdG9yZSB0 aGUgY29tbWFuZCBvYmplY3Qgd2hpY2ggd2lsbCBiZSB1c2VkIGxhdGVyIGJ5IHRoZQotICAgICMg c3FsIGdyaWQgbW9kdWxlLgotICAgIHNxbF9ncmlkX2RhdGFbc3RyKHRyYW5zX2lkKV0gPSB7Ci0g ICAgICAgICMgLTEgc3BlY2lmeSB0aGUgaGlnaGVzdCBwcm90b2NvbCB2ZXJzaW9uIGF2YWlsYWJs ZQotICAgICAgICAnY29tbWFuZF9vYmonOiBwaWNrbGUuZHVtcHMoY29tbWFuZF9vYmosIC0xKQot ICAgIH0KLQotICAgICMgU3RvcmUgdGhlIGdyaWQgZGljdGlvbmFyeSBpbnRvIHRoZSBzZXNzaW9u IHZhcmlhYmxlCi0gICAgc2Vzc2lvblsnZ3JpZERhdGEnXSA9IHNxbF9ncmlkX2RhdGEKLQotICAg IHJldHVybiBtYWtlX2pzb25fcmVzcG9uc2UoCi0gICAgICAgIGRhdGE9ewotICAgICAgICAgICAg J2Nvbm5faWQnOiBjb25uX2lkCi0gICAgICAgIH0KLSAgICApCi0KLQotQGJsdWVwcmludC5yb3V0 ZSgKLSAgICAnL3BhbmVsLzxpbnQ6dHJhbnNfaWQ+JywKLSAgICBtZXRob2RzPVsiUE9TVCJdLAot ICAgIGVuZHBvaW50PSdwYW5lbCcKLSkKLWRlZiBwYW5lbCh0cmFuc19pZCk6Ci0gICAgIiIiCi0g ICAgVGhpcyBtZXRob2QgY2FsbHMgaW5kZXguaHRtbCB0byByZW5kZXIgdGhlIGRhdGEgZ3JpZC4K LQotICAgIEFyZ3M6Ci0gICAgICAgIHRyYW5zX2lkOiB1bmlxdWUgdHJhbnNhY3Rpb24gaWQKLSAg ICAiIiIKLQotICAgIHVybF9wYXJhbXMgPSBOb25lCi0gICAgaWYgcmVxdWVzdC5hcmdzOgotICAg ICAgICB1cmxfcGFyYW1zID0ge2s6IHYgZm9yIGssIHYgaW4gcmVxdWVzdC5hcmdzLml0ZW1zKCl9 Ci0KLSAgICBpZiByZXF1ZXN0LmZvcm06Ci0gICAgICAgIHVybF9wYXJhbXNbJ3RpdGxlJ10gPSBy ZXF1ZXN0LmZvcm1bJ3RpdGxlJ10KLSAgICAgICAgaWYgJ3NxbF9maWx0ZXInIGluIHJlcXVlc3Qu Zm9ybToKLSAgICAgICAgICAgIHVybF9wYXJhbXNbJ3NxbF9maWx0ZXInXSA9IHJlcXVlc3QuZm9y bVsnc3FsX2ZpbHRlciddCi0gICAgICAgIGlmICdxdWVyeV91cmwnIGluIHJlcXVlc3QuZm9ybToK LSAgICAgICAgICAgIHVybF9wYXJhbXNbJ3F1ZXJ5X3VybCddID0gcmVxdWVzdC5mb3JtWydxdWVy eV91cmwnXQotCi0gICAgIyBXZSBuZWVkIGNsaWVudCBPUyBpbmZvcm1hdGlvbiB0byByZW5kZXIg Y29ycmVjdCBLZXlib2FyZCBzaG9ydGN1dHMKLSAgICB1c2VyX2FnZW50ID0gVXNlckFnZW50KHJl cXVlc3QuaGVhZGVycy5nZXQoJ1VzZXItQWdlbnQnKSkKLQotICAgICIiIgotICAgIEFuaW1hdGlv bnMgYW5kIHRyYW5zaXRpb25zIGFyZSBub3QgYXV0b21hdGljYWxseSBHUFUgYWNjZWxlcmF0ZWQg YW5kIGJ5Ci0gICAgZGVmYXVsdCB1c2UgYnJvd3NlcidzIHNsb3cgcmVuZGVyaW5nIGVuZ2luZS4g V2UgbmVlZCB0byBzZXQgJ3RyYW5zbGF0ZTNkJwotICAgIHZhbHVlIG9mICctd2Via2l0LXRyYW5z Zm9ybScgcHJvcGVydHkgaW4gb3JkZXIgdG8gdXNlIEdQVS4gQWZ0ZXIgYXBwbHlpbmcKLSAgICB0 aGlzIHByb3BlcnR5IHVuZGVyIGxpbnV4LCBXZWJraXQgY2FsY3VsYXRlcyB3cm9uZyBwb3NpdGlv biBvZiB0aGUKLSAgICBlbGVtZW50cyBzbyBwYW5lbCBjb250ZW50cyBhcmUgbm90IHZpc2libGUu IFRvIG1ha2UgaXQgd29yaywgd2UgbmVlZCB0bwotICAgIGV4cGxpY2l0bHkgc2V0ICctd2Via2l0 LXRyYW5zZm9ybScgcHJvcGVydHkgdG8gJ25vbmUnIGZvciAuYWpzLW5vdGlmaWVyLAotICAgIC5h anMtbWVzc2FnZSwgLmFqcy1tb2RhbCBjbGFzc2VzLgotCi0gICAgVGhpcyBpc3N1ZSBpcyBvbmx5 IHdpdGggbGludXggcnVudGltZSBhcHBsaWNhdGlvbiBhbmQgb2JzZXJ2ZWQgaW4gUXVlcnkKLSAg ICB0b29sIGFuZCBkZWJ1Z2dlci4gV2hlbiB3ZSBvcGVuICdPcGVuIEZpbGUnIGRpYWxvZyB0aGVu IHdob2xlIFF1ZXJ5IHRvb2wKLSAgICBwYW5lbCBjb250ZW50IGlzIG5vdCB2aXNpYmxlIHRob3Vn aCBpdCBjb250YWlucyBIVE1MIGVsZW1lbnQgaW4gYmFjayBlbmQuCi0KLSAgICBUaGUgcG9ydCBu dW1iZXIgc2hvdWxkIGhhdmUgYWxyZWFkeSBiZWVuIHNldCBieSB0aGUgcnVudGltZSBpZiB3ZSdy ZQotICAgIHJ1bm5pbmcgaW4gZGVza3RvcCBtb2RlLgotICAgICIiIgotICAgIGlzX2xpbnV4X3Bs YXRmb3JtID0gRmFsc2UKLQotICAgIGZyb20gc3lzIGltcG9ydCBwbGF0Zm9ybSBhcyBfcGxhdGZv cm0KLSAgICBpZiAibGludXgiIGluIF9wbGF0Zm9ybToKLSAgICAgICAgaXNfbGludXhfcGxhdGZv cm0gPSBUcnVlCi0KLSAgICAjIEZldGNoIHRoZSBzZXJ2ZXIgZGV0YWlscwotICAgIGJnY29sb3Ig PSBOb25lCi0gICAgZmdjb2xvciA9IE5vbmUKLQotICAgIHMgPSBTZXJ2ZXIucXVlcnkuZmlsdGVy X2J5KGlkPXVybF9wYXJhbXNbJ3NpZCddKS5maXJzdCgpCi0gICAgaWYgcyBhbmQgcy5iZ2NvbG9y OgotICAgICAgICAjIElmIGJhY2tncm91bmQgaXMgc2V0IHRvIHdoaXRlIG1lYW5zIHdlIGRvIG5v dCBoYXZlIHRvIGNoYW5nZQotICAgICAgICAjIHRoZSB0aXRsZSBiYWNrZ3JvdW5kIGVsc2UgY2hh bmdlIGl0IGFzIHBlciB1c2VyIHNwZWNpZmllZAotICAgICAgICAjIGJhY2tncm91bmQKLSAgICAg ICAgaWYgcy5iZ2NvbG9yICE9ICcjZmZmZmZmJzoKLSAgICAgICAgICAgIGJnY29sb3IgPSBzLmJn Y29sb3IKLSAgICAgICAgZmdjb2xvciA9IHMuZmdjb2xvciBvciAnYmxhY2snCi0KLSAgICBsYXlv dXQgPSBnZXRfc2V0dGluZygnU1FMRWRpdG9yL0xheW91dCcpCi0KLSAgICBtYWNyb3MgPSBnZXRf dXNlcl9tYWNyb3MoKQotCi0gICAgcmV0dXJuIHJlbmRlcl90ZW1wbGF0ZSgKLSAgICAgICAgImRh dGFncmlkL2luZGV4Lmh0bWwiLAotICAgICAgICBfPWdldHRleHQsCi0gICAgICAgIHVuaXF1ZUlk PXRyYW5zX2lkLAotICAgICAgICBpc19kZXNrdG9wX21vZGU9YXBwLlBHQURNSU5fUlVOVElNRSwK LSAgICAgICAgaXNfbGludXg9aXNfbGludXhfcGxhdGZvcm0sCi0gICAgICAgIHRpdGxlPXVuZGVy c2NvcmVfdW5lc2NhcGUodXJsX3BhcmFtc1sndGl0bGUnXSksCi0gICAgICAgIHVybF9wYXJhbXM9 anNvbi5kdW1wcyh1cmxfcGFyYW1zKSwKLSAgICAgICAgY2xpZW50X3BsYXRmb3JtPXVzZXJfYWdl bnQucGxhdGZvcm0sCi0gICAgICAgIGJnY29sb3I9Ymdjb2xvciwKLSAgICAgICAgZmdjb2xvcj1m Z2NvbG9yLAotICAgICAgICBsYXlvdXQ9bGF5b3V0LAotICAgICAgICByZXF1aXJlanM9VHJ1ZSwK LSAgICAgICAgYmFzZWpzPVRydWUsCi0gICAgICAgIG1hY3Jvcz1tYWNyb3MKLSAgICApCi0KLQot QGJsdWVwcmludC5yb3V0ZSgKLSAgICAnL2luaXRpYWxpemUvcXVlcnlfdG9vbC88aW50OnRyYW5z X2lkPi88aW50OnNnaWQ+LzxpbnQ6c2lkPi88aW50OmRpZD4nLAotICAgIG1ldGhvZHM9WyJQT1NU Il0sIGVuZHBvaW50PSdpbml0aWFsaXplX3F1ZXJ5X3Rvb2xfd2l0aF9kaWQnCi0pCi1AYmx1ZXBy aW50LnJvdXRlKAotICAgICcvaW5pdGlhbGl6ZS9xdWVyeV90b29sLzxpbnQ6dHJhbnNfaWQ+Lzxp bnQ6c2dpZD4vPGludDpzaWQ+JywKLSAgICBtZXRob2RzPVsiUE9TVCJdLCBlbmRwb2ludD0naW5p dGlhbGl6ZV9xdWVyeV90b29sJwotKQotQGxvZ2luX3JlcXVpcmVkCi1kZWYgaW5pdGlhbGl6ZV9x dWVyeV90b29sKHRyYW5zX2lkLCBzZ2lkLCBzaWQsIGRpZD1Ob25lKToKLSAgICAiIiIKLSAgICBU aGlzIG1ldGhvZCBpcyByZXNwb25zaWJsZSBmb3IgaW5zdGFudGlhdGluZyBhbmQgaW5pdGlhbGl6 aW5nCi0gICAgdGhlIHF1ZXJ5IHRvb2wgb2JqZWN0LiBJdCB3aWxsIGFsc28gY3JlYXRlIGEgdW5p cXVlCi0gICAgdHJhbnNhY3Rpb24gaWQgYW5kIHN0b3JlIHRoZSBpbmZvcm1hdGlvbiBpbnRvIHNl c3Npb24gdmFyaWFibGUuCi0KLSAgICBBcmdzOgotICAgICAgICBzZ2lkOiBTZXJ2ZXIgZ3JvdXAg SWQKLSAgICAgICAgc2lkOiBTZXJ2ZXIgSWQKLSAgICAgICAgZGlkOiBEYXRhYmFzZSBJZAotICAg ICIiIgotICAgIGNvbm5lY3QgPSBUcnVlCi0gICAgIyBSZWFkIHRoZSBkYXRhIGlmIHByZXNlbnQu IFNraXBwaW5nIHJlYWQgbWF5IGNhdXNlIGNvbm5lY3Rpb24KLSAgICAjIHJlc2V0IGVycm9yIGlm IGRhdGEgaXMgc2VudCBmcm9tIHRoZSBjbGllbnQKLSAgICBpZiByZXF1ZXN0LmRhdGE6Ci0gICAg ICAgIF8gPSByZXF1ZXN0LmRhdGEKLQotICAgIHJlcV9hcmdzID0gcmVxdWVzdC5hcmdzCi0gICAg aWYgKCdyZWNyZWF0ZScgaW4gcmVxX2FyZ3MgYW5kCi0gICAgICAgICAgICByZXFfYXJnc1sncmVj cmVhdGUnXSA9PSAnMScpOgotICAgICAgICBjb25uZWN0ID0gRmFsc2UKLQotICAgIGlzX2Vycm9y LCBlcnJtc2csIGNvbm5faWQsIHZlcnNpb24gPSBfaW5pdF9xdWVyeV90b29sKHRyYW5zX2lkLCBj b25uZWN0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHNnaWQsIHNpZCwgZGlkKQotICAgIGlmIGlzX2Vycm9yOgotICAgICAgICByZXR1 cm4gZXJybXNnCi0KLSAgICByZXR1cm4gbWFrZV9qc29uX3Jlc3BvbnNlKAotICAgICAgICBkYXRh PXsKLSAgICAgICAgICAgICdjb25uSWQnOiBzdHIoY29ubl9pZCksCi0gICAgICAgICAgICAnc2Vy dmVyVmVyc2lvbic6IHZlcnNpb24sCi0gICAgICAgIH0KLSAgICApCi0KLQotZGVmIF9jb25uZWN0 KGNvbm4sICoqa3dhcmdzKToKLSAgICAiIiIKLSAgICBDb25uZWN0IHRoZSBkYXRhYmFzZS4KLSAg ICA6cGFyYW0gY29ubjogQ29ubmVjdGlvbiBpbnN0YW5jZS4KLSAgICA6cGFyYW0ga3dhcmdzOiB1 c2VyLCByb2xlIGFuZCBwYXNzd29yZCBkYXRhIGZyb20gdXNlci4KLSAgICA6cmV0dXJuOgotICAg ICIiIgotICAgIHVzZXIgPSBOb25lCi0gICAgcm9sZSA9IE5vbmUKLSAgICBwYXNzd29yZCA9IE5v bmUKLSAgICBpc19hc2tfcGFzc3dvcmQgPSBGYWxzZQotICAgIGlmICd1c2VyJyBpbiBrd2FyZ3Mg YW5kICdyb2xlJyBpbiBrd2FyZ3M6Ci0gICAgICAgIHVzZXIgPSBrd2FyZ3NbJ3VzZXInXQotICAg ICAgICByb2xlID0ga3dhcmdzWydyb2xlJ10gaWYga3dhcmdzWydyb2xlJ10gZWxzZSBOb25lCi0g ICAgICAgIHBhc3N3b3JkID0ga3dhcmdzWydwYXNzd29yZCddIGlmIGt3YXJnc1sncGFzc3dvcmQn XSBlbHNlIE5vbmUKLSAgICAgICAgaXNfYXNrX3Bhc3N3b3JkID0gVHJ1ZQotICAgIGlmIHVzZXI6 Ci0gICAgICAgIHN0YXR1cywgbXNnID0gY29ubi5jb25uZWN0KHVzZXI9dXNlciwgcm9sZT1yb2xl LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNzd29yZD1wYXNzd29yZCkK LSAgICBlbHNlOgotICAgICAgICBzdGF0dXMsIG1zZyA9IGNvbm4uY29ubmVjdCgpCi0KLSAgICBy ZXR1cm4gc3RhdHVzLCBtc2csIGlzX2Fza19wYXNzd29yZCwgdXNlciwgcm9sZSwgcGFzc3dvcmQK LQotCi1kZWYgX2luaXRfcXVlcnlfdG9vbCh0cmFuc19pZCwgY29ubmVjdCwgc2dpZCwgc2lkLCBk aWQsICoqa3dhcmdzKToKLSAgICAjIENyZWF0ZSBhc3luY2hyb25vdXMgY29ubmVjdGlvbiB1c2lu ZyByYW5kb20gY29ubmVjdGlvbiBpZC4KLSAgICBjb25uX2lkID0gc3RyKHJhbmRvbS5yYW5kaW50 KDEsIDk5OTk5OTkpKQotCi0gICAgbWFuYWdlciA9IGdldF9kcml2ZXIoUEdfREVGQVVMVF9EUklW RVIpLmNvbm5lY3Rpb25fbWFuYWdlcihzaWQpCi0KLSAgICBpZiBkaWQgaXMgTm9uZToKLSAgICAg ICAgZGlkID0gbWFuYWdlci5kaWQKLSAgICB0cnk6Ci0gICAgICAgIGNvbW1hbmRfb2JqID0gT2Jq ZWN0UmVnaXN0cnkuZ2V0X29iamVjdCgKLSAgICAgICAgICAgICdxdWVyeV90b29sJywgY29ubl9p ZD1jb25uX2lkLCBzZ2lkPXNnaWQsIHNpZD1zaWQsIGRpZD1kaWQKLSAgICAgICAgKQotICAgIGV4 Y2VwdCBFeGNlcHRpb24gYXMgZToKLSAgICAgICAgYXBwLmxvZ2dlci5lcnJvcihlKQotICAgICAg ICByZXR1cm4gVHJ1ZSwgaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXN0cihlKSksICcn LCAnJwotCi0gICAgdHJ5OgotICAgICAgICBjb25uID0gbWFuYWdlci5jb25uZWN0aW9uKGRpZD1k aWQsIGNvbm5faWQ9Y29ubl9pZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBh dXRvX3JlY29ubmVjdD1GYWxzZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1 c2VfYmluYXJ5X3BsYWNlaG9sZGVyPVRydWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgYXJyYXlfdG9fc3RyaW5nPVRydWUpCi0KLSAgICAgICAgaWYgY29ubmVjdDoKLSAgICAg ICAgICAgIHN0YXR1cywgbXNnLCBpc19hc2tfcGFzc3dvcmQsIHVzZXIsIHJvbGUsIHBhc3N3b3Jk ID0gX2Nvbm5lY3QoCi0gICAgICAgICAgICAgICAgY29ubiwgKiprd2FyZ3MpCi0gICAgICAgICAg ICBpZiBub3Qgc3RhdHVzOgotICAgICAgICAgICAgICAgIGFwcC5sb2dnZXIuZXJyb3IobXNnKQot ICAgICAgICAgICAgICAgIGlmIGlzX2Fza19wYXNzd29yZDoKLSAgICAgICAgICAgICAgICAgICAg c2VydmVyID0gU2VydmVyLnF1ZXJ5LmZpbHRlcl9ieShpZD1zaWQpLmZpcnN0KCkKLSAgICAgICAg ICAgICAgICAgICAgcmV0dXJuIFRydWUsIG1ha2VfanNvbl9yZXNwb25zZSgKLSAgICAgICAgICAg ICAgICAgICAgICAgIHN1Y2Nlc3M9MCwKLSAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1cz00 MjgsCi0gICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQ9cmVuZGVyX3RlbXBsYXRlKAotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICdzZXJ2ZXJzL3Bhc3N3b3JkLmh0bWwnLAotICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHNlcnZlcl9sYWJlbD1zZXJ2ZXIubmFtZSwKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICB1c2VybmFtZT11c2VyLAotICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGVycm1zZz1tc2csCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgXz1nZXR0ZXh0 LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsbG93X3NhdmVfcGFzc3dvcmQ9VHJ1ZSBp ZgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFMTE9XX1NBVkVfUEFTU1dPUkQgYW5kCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vzc2lvblsnYWxsb3dfc2F2ZV9wYXNzd29yZCdd IGVsc2UgRmFsc2UsCi0gICAgICAgICAgICAgICAgICAgICAgICApCi0gICAgICAgICAgICAgICAg ICAgICksICcnLCAnJwotICAgICAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgICAg IHJldHVybiBUcnVlLCBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoCi0gICAgICAgICAgICAgICAgICAg ICAgICBlcnJvcm1zZz1zdHIobXNnKSksICcnLCAnJwotICAgIGV4Y2VwdCAoQ29ubmVjdGlvbkxv c3QsIFNTSFR1bm5lbENvbm5lY3Rpb25Mb3N0KSBhcyBlOgotICAgICAgICBhcHAubG9nZ2VyLmVy cm9yKGUpCi0gICAgICAgIHJhaXNlCi0gICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgotICAgICAg ICBhcHAubG9nZ2VyLmVycm9yKGUpCi0gICAgICAgIHJldHVybiBUcnVlLCBpbnRlcm5hbF9zZXJ2 ZXJfZXJyb3IoZXJyb3Jtc2c9c3RyKGUpKSwgJycsICcnCi0KLSAgICBpZiAnZ3JpZERhdGEnIG5v dCBpbiBzZXNzaW9uOgotICAgICAgICBzcWxfZ3JpZF9kYXRhID0gZGljdCgpCi0gICAgZWxzZToK LSAgICAgICAgc3FsX2dyaWRfZGF0YSA9IHNlc3Npb25bJ2dyaWREYXRhJ10KLQotICAgICMgU2V0 IHRoZSB2YWx1ZSBvZiBhdXRvIGNvbW1pdCBhbmQgYXV0byByb2xsYmFjayBzcGVjaWZpZWQgaW4g UHJlZmVyZW5jZXMKLSAgICBwcmVmID0gUHJlZmVyZW5jZXMubW9kdWxlKCdzcWxlZGl0b3InKQot ICAgIGNvbW1hbmRfb2JqLnNldF9hdXRvX2NvbW1pdChwcmVmLnByZWZlcmVuY2UoJ2F1dG9fY29t bWl0JykuZ2V0KCkpCi0gICAgY29tbWFuZF9vYmouc2V0X2F1dG9fcm9sbGJhY2socHJlZi5wcmVm ZXJlbmNlKCdhdXRvX3JvbGxiYWNrJykuZ2V0KCkpCi0KLSAgICAjIFVzZSBwaWNrbGUgdG8gc3Rv cmUgdGhlIGNvbW1hbmQgb2JqZWN0IHdoaWNoIHdpbGwgYmUgdXNlZAotICAgICMgbGF0ZXIgYnkg dGhlIHNxbCBncmlkIG1vZHVsZS4KLSAgICBzcWxfZ3JpZF9kYXRhW3N0cih0cmFuc19pZCldID0g ewotICAgICAgICAjIC0xIHNwZWNpZnkgdGhlIGhpZ2hlc3QgcHJvdG9jb2wgdmVyc2lvbiBhdmFp bGFibGUKLSAgICAgICAgJ2NvbW1hbmRfb2JqJzogcGlja2xlLmR1bXBzKGNvbW1hbmRfb2JqLCAt MSkKLSAgICB9Ci0KLSAgICAjIFN0b3JlIHRoZSBncmlkIGRpY3Rpb25hcnkgaW50byB0aGUgc2Vz c2lvbiB2YXJpYWJsZQotICAgIHNlc3Npb25bJ2dyaWREYXRhJ10gPSBzcWxfZ3JpZF9kYXRhCi0K LSAgICByZXR1cm4gRmFsc2UsICcnLCBjb25uX2lkLCBtYW5hZ2VyLnZlcnNpb24KLQotCi1AYmx1 ZXByaW50LnJvdXRlKAotICAgICcvaW5pdGlhbGl6ZS9xdWVyeV90b29sL3VwZGF0ZV9jb25uZWN0 aW9uLzxpbnQ6dHJhbnNfaWQ+LycKLSAgICAnPGludDpzZ2lkPi88aW50OnNpZD4vPGludDpkaWQ+ JywKLSAgICBtZXRob2RzPVsiUE9TVCJdLCBlbmRwb2ludD0ndXBkYXRlX3F1ZXJ5X3Rvb2xfY29u bmVjdGlvbicKLSkKLWRlZiB1cGRhdGVfcXVlcnlfdG9vbF9jb25uZWN0aW9uKHRyYW5zX2lkLCBz Z2lkLCBzaWQsIGRpZCk6Ci0gICAgIyBSZW1vdmUgdHJhbnNhY3Rpb24gSWQuCi0gICAgd2l0aCBx dWVyeV90b29sX2Nsb3NlX3Nlc3Npb25fbG9jazoKLSAgICAgICAgZGF0YSA9IGpzb24ubG9hZHMo cmVxdWVzdC5kYXRhLCBlbmNvZGluZz0ndXRmLTgnKQotCi0gICAgICAgIGlmICdncmlkRGF0YScg bm90IGluIHNlc3Npb246Ci0gICAgICAgICAgICByZXR1cm4gbWFrZV9qc29uX3Jlc3BvbnNlKGRh dGE9eydzdGF0dXMnOiBUcnVlfSkKLQotICAgICAgICBncmlkX2RhdGEgPSBzZXNzaW9uWydncmlk RGF0YSddCi0KLSAgICAgICAgIyBSZXR1cm4gZnJvbSB0aGUgZnVuY3Rpb24gaWYgdHJhbnNhY3Rp b24gaWQgbm90IGZvdW5kCi0gICAgICAgIGlmIHN0cih0cmFuc19pZCkgbm90IGluIGdyaWRfZGF0 YToKLSAgICAgICAgICAgIHJldHVybiBtYWtlX2pzb25fcmVzcG9uc2UoZGF0YT17J3N0YXR1cyc6 IFRydWV9KQotCi0gICAgICAgIGNvbm5lY3QgPSBUcnVlCi0KLSAgICAgICAgcmVxX2FyZ3MgPSBy ZXF1ZXN0LmFyZ3MKLSAgICAgICAgaWYgKCdyZWNyZWF0ZScgaW4gcmVxX2FyZ3MgYW5kCi0gICAg ICAgICAgICAgICAgcmVxX2FyZ3NbJ3JlY3JlYXRlJ10gPT0gJzEnKToKLSAgICAgICAgICAgIGNv bm5lY3QgPSBGYWxzZQotCi0gICAgICAgIG5ld190cmFuc19pZCA9IHN0cihyYW5kb20ucmFuZGlu dCgxLCA5OTk5OTk5KSkKLSAgICAgICAga3dhcmdzID0gewotICAgICAgICAgICAgJ3VzZXInOiBk YXRhWyd1c2VyJ10sCi0gICAgICAgICAgICAncm9sZSc6IGRhdGFbJ3JvbGUnXSBpZiAncm9sZScg aW4gZGF0YSBlbHNlIE5vbmUsCi0gICAgICAgICAgICAncGFzc3dvcmQnOiBkYXRhWydwYXNzd29y ZCddIGlmICdwYXNzd29yZCcgaW4gZGF0YSBlbHNlIE5vbmUKLSAgICAgICAgfQotCi0gICAgICAg IGlzX2Vycm9yLCBlcnJtc2csIGNvbm5faWQsIHZlcnNpb24gPSBfaW5pdF9xdWVyeV90b29sKAot ICAgICAgICAgICAgbmV3X3RyYW5zX2lkLCBjb25uZWN0LCBzZ2lkLCBzaWQsIGRpZCwgKiprd2Fy Z3MpCi0KLSAgICAgICAgaWYgaXNfZXJyb3I6Ci0gICAgICAgICAgICByZXR1cm4gZXJybXNnCi0g ICAgICAgIGVsc2U6Ci0gICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgIyBDaGVjayB0 aGUgdHJhbnNhY3Rpb24gYW5kIGNvbm5lY3Rpb24gc3RhdHVzCi0gICAgICAgICAgICAgICAgc3Rh dHVzLCBlcnJvcl9tc2csIGNvbm4sIHRyYW5zX29iaiwgc2Vzc2lvbl9vYmogPSBcCi0gICAgICAg ICAgICAgICAgICAgIGNoZWNrX3RyYW5zYWN0aW9uX3N0YXR1cyh0cmFuc19pZCkKLQotICAgICAg ICAgICAgICAgIHN0YXR1cywgZXJyb3JfbXNnLCBuZXdfY29ubiwgbmV3X3RyYW5zX29iaiwgbmV3 X3Nlc3Npb25fb2JqID0gXAotICAgICAgICAgICAgICAgICAgICBjaGVja190cmFuc2FjdGlvbl9z dGF0dXMobmV3X3RyYW5zX2lkKQotCi0gICAgICAgICAgICAgICAgbmV3X3Nlc3Npb25fb2JqWydw cmltYXJ5X2tleXMnXSA9IHNlc3Npb25fb2JqWwotICAgICAgICAgICAgICAgICAgICAncHJpbWFy eV9rZXlzJ10gaWYgJ3ByaW1hcnlfa2V5cycgaW4gc2Vzc2lvbl9vYmogZWxzZSBOb25lCi0gICAg ICAgICAgICAgICAgbmV3X3Nlc3Npb25fb2JqWydjb2x1bW5zX2luZm8nXSA9IHNlc3Npb25fb2Jq WwotICAgICAgICAgICAgICAgICAgICAnY29sdW1uc19pbmZvJ10gaWYgJ2NvbHVtbnNfaW5mbycg aW4gc2Vzc2lvbl9vYmogZWxzZSBOb25lCi0gICAgICAgICAgICAgICAgbmV3X3Nlc3Npb25fb2Jq WydjbGllbnRfcHJpbWFyeV9rZXknXSA9IHNlc3Npb25fb2JqWwotICAgICAgICAgICAgICAgICAg ICAnY2xpZW50X3ByaW1hcnlfa2V5J10gaWYgJ2NsaWVudF9wcmltYXJ5X2tleSdcCi0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBzZXNzaW9uX29iaiBlbHNl IE5vbmUKLQotICAgICAgICAgICAgICAgIGNsb3NlX3F1ZXJ5X3Rvb2xfc2Vzc2lvbih0cmFuc19p ZCkKLSAgICAgICAgICAgICAgICAjIFJlbW92ZSB0aGUgaW5mb3JtYXRpb24gb2YgdW5pcXVlIHRy YW5zYWN0aW9uIGlkIGZyb20gdGhlCi0gICAgICAgICAgICAgICAgIyBzZXNzaW9uIHZhcmlhYmxl LgotICAgICAgICAgICAgICAgIGdyaWRfZGF0YS5wb3Aoc3RyKHRyYW5zX2lkKSwgTm9uZSkKLSAg ICAgICAgICAgICAgICBzZXNzaW9uWydncmlkRGF0YSddID0gZ3JpZF9kYXRhCi0gICAgICAgICAg ICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6Ci0gICAgICAgICAgICAgICAgYXBwLmxvZ2dlci5lcnJv cihlKQotCi0gICAgcmV0dXJuIG1ha2VfanNvbl9yZXNwb25zZSgKLSAgICAgICAgZGF0YT17Ci0g ICAgICAgICAgICAnY29ubklkJzogc3RyKGNvbm5faWQpLAotICAgICAgICAgICAgJ3NlcnZlclZl cnNpb24nOiB2ZXJzaW9uLAotICAgICAgICAgICAgJ3RyYW5faWQnOiBuZXdfdHJhbnNfaWQKLSAg ICAgICAgfQotICAgICkKLQotCi1AYmx1ZXByaW50LnJvdXRlKCcvY2xvc2UvPGludDp0cmFuc19p ZD4nLCBtZXRob2RzPVsiREVMRVRFIl0sIGVuZHBvaW50PSdjbG9zZScpCi1kZWYgY2xvc2UodHJh bnNfaWQpOgotICAgICIiIgotICAgIFRoaXMgbWV0aG9kIGlzIHVzZWQgdG8gY2xvc2UgdGhlIGFz eW5jaHJvbm91cyBjb25uZWN0aW9uCi0gICAgYW5kIHJlbW92ZSB0aGUgaW5mb3JtYXRpb24gb2Yg dW5pcXVlIHRyYW5zYWN0aW9uIGlkIGZyb20KLSAgICB0aGUgc2Vzc2lvbiB2YXJpYWJsZS4KLQot ICAgIEFyZ3M6Ci0gICAgICAgIHRyYW5zX2lkOiB1bmlxdWUgdHJhbnNhY3Rpb24gaWQKLSAgICAi IiIKLSAgICB3aXRoIHF1ZXJ5X3Rvb2xfY2xvc2Vfc2Vzc2lvbl9sb2NrOgotICAgICAgICBpZiAn Z3JpZERhdGEnIG5vdCBpbiBzZXNzaW9uOgotICAgICAgICAgICAgcmV0dXJuIG1ha2VfanNvbl9y ZXNwb25zZShkYXRhPXsnc3RhdHVzJzogVHJ1ZX0pCi0KLSAgICAgICAgZ3JpZF9kYXRhID0gc2Vz c2lvblsnZ3JpZERhdGEnXQotICAgICAgICAjIFJldHVybiBmcm9tIHRoZSBmdW5jdGlvbiBpZiB0 cmFuc2FjdGlvbiBpZCBub3QgZm91bmQKLSAgICAgICAgaWYgc3RyKHRyYW5zX2lkKSBub3QgaW4g Z3JpZF9kYXRhOgotICAgICAgICAgICAgcmV0dXJuIG1ha2VfanNvbl9yZXNwb25zZShkYXRhPXsn c3RhdHVzJzogVHJ1ZX0pCi0KLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgY2xvc2VfcXVlcnlf dG9vbF9zZXNzaW9uKHRyYW5zX2lkKQotICAgICAgICAgICAgIyBSZW1vdmUgdGhlIGluZm9ybWF0 aW9uIG9mIHVuaXF1ZSB0cmFuc2FjdGlvbiBpZCBmcm9tIHRoZQotICAgICAgICAgICAgIyBzZXNz aW9uIHZhcmlhYmxlLgotICAgICAgICAgICAgZ3JpZF9kYXRhLnBvcChzdHIodHJhbnNfaWQpLCBO b25lKQotICAgICAgICAgICAgc2Vzc2lvblsnZ3JpZERhdGEnXSA9IGdyaWRfZGF0YQotICAgICAg ICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6Ci0gICAgICAgICAgICBhcHAubG9nZ2VyLmVycm9yKGUp Ci0gICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXN0cihl KSkKLQotICAgIHJldHVybiBtYWtlX2pzb25fcmVzcG9uc2UoZGF0YT17J3N0YXR1cyc6IFRydWV9 KQotCi0KLUBibHVlcHJpbnQucm91dGUoCi0gICAgJy9maWx0ZXIvdmFsaWRhdGUvPGludDpzaWQ+ LzxpbnQ6ZGlkPi88aW50Om9ial9pZD4nLAotICAgIG1ldGhvZHM9WyJQVVQiLCAiUE9TVCJdLCBl bmRwb2ludD0nZmlsdGVyX3ZhbGlkYXRlJwotKQotQGxvZ2luX3JlcXVpcmVkCi1kZWYgdmFsaWRh dGVfZmlsdGVyKHNpZCwgZGlkLCBvYmpfaWQpOgotICAgICIiIgotICAgIFRoaXMgbWV0aG9kIGlz IHVzZWQgdG8gdmFsaWRhdGUgdGhlIHNxbCBmaWx0ZXIuCi0KLSAgICBBcmdzOgotICAgICAgICBz aWQ6IFNlcnZlciBJZAotICAgICAgICBkaWQ6IERhdGFiYXNlIElkCi0gICAgICAgIG9ial9pZDog SWQgb2YgY3VycmVudGx5IHNlbGVjdGVkIG9iamVjdAotICAgICIiIgotICAgIGlmIHJlcXVlc3Qu ZGF0YToKLSAgICAgICAgZmlsdGVyX3NxbCA9IGpzb24ubG9hZHMocmVxdWVzdC5kYXRhLCBlbmNv ZGluZz0ndXRmLTgnKQotICAgIGVsc2U6Ci0gICAgICAgIGZpbHRlcl9zcWwgPSByZXF1ZXN0LmFy Z3Mgb3IgcmVxdWVzdC5mb3JtCi0KLSAgICB0cnk6Ci0gICAgICAgICMgQ3JlYXRlIG9iamVjdCBv ZiBTUUxGaWx0ZXIgY2xhc3MKLSAgICAgICAgc3FsX2ZpbHRlcl9vYmogPSBTUUxGaWx0ZXIoc2lk PXNpZCwgZGlkPWRpZCwgb2JqX2lkPW9ial9pZCkKLQotICAgICAgICAjIENhbGwgdmFsaWRhdGVf ZmlsdGVyIG1ldGhvZCB0byB2YWxpZGF0ZSB0aGUgU1FMLgotICAgICAgICBzdGF0dXMsIHJlcyA9 IHNxbF9maWx0ZXJfb2JqLnZhbGlkYXRlX2ZpbHRlcihmaWx0ZXJfc3FsKQotICAgIGV4Y2VwdCBP YmplY3RHb25lOgotICAgICAgICByYWlzZQotICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKLSAg ICAgICAgYXBwLmxvZ2dlci5lcnJvcihlKQotICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVy X2Vycm9yKGVycm9ybXNnPXN0cihlKSkKLQotICAgIHJldHVybiBtYWtlX2pzb25fcmVzcG9uc2Uo ZGF0YT17J3N0YXR1cyc6IHN0YXR1cywgJ3Jlc3VsdCc6IHJlc30pCi0KLQotQGJsdWVwcmludC5y b3V0ZSgiL2RhdGFncmlkLmpzIikKLUBsb2dpbl9yZXF1aXJlZAotZGVmIHNjcmlwdCgpOgotICAg ICIiInJlbmRlciB0aGUgcmVxdWlyZWQgamF2YXNjcmlwdCIiIgotICAgIHJldHVybiBSZXNwb25z ZSgKLSAgICAgICAgcmVzcG9uc2U9cmVuZGVyX3RlbXBsYXRlKCJkYXRhZ3JpZC9qcy9kYXRhZ3Jp ZC5qcyIsIF89Z2V0dGV4dCksCi0gICAgICAgIHN0YXR1cz0yMDAsCi0gICAgICAgIG1pbWV0eXBl PU1JTUVUWVBFX0FQUF9KUwotICAgICkKLQotCi1kZWYgY2xvc2VfcXVlcnlfdG9vbF9zZXNzaW9u KHRyYW5zX2lkKToKLSAgICAiIiIKLSAgICBUaGlzIGZ1bmN0aW9uIGlzIHVzZWQgdG8gY2FuY2Vs IHRoZSB0cmFuc2FjdGlvbiBhbmQgcmVsZWFzZSB0aGUgY29ubmVjdGlvbi4KLQotICAgIDpwYXJh bSB0cmFuc19pZDogVHJhbnNhY3Rpb24gaWQKLSAgICA6cmV0dXJuOgotICAgICIiIgotICAgIGlm ICdncmlkRGF0YScgaW4gc2Vzc2lvbiBhbmQgc3RyKHRyYW5zX2lkKSBpbiBzZXNzaW9uWydncmlk RGF0YSddOgotICAgICAgICBjbWRfb2JqX3N0ciA9IHNlc3Npb25bJ2dyaWREYXRhJ11bc3RyKHRy YW5zX2lkKV1bJ2NvbW1hbmRfb2JqJ10KLSAgICAgICAgIyBVc2UgcGlja2xlLmxvYWRzIGZ1bmN0 aW9uIHRvIGdldCB0aGUgY29tbWFuZCBvYmplY3QKLSAgICAgICAgY21kX29iaiA9IHBpY2tsZS5s b2FkcyhjbWRfb2JqX3N0cikKLQotICAgICAgICAjIGlmIGNvbm5lY3Rpb24gaWQgaXMgTm9uZSB0 aGVuIG5vIG5lZWQgdG8gcmVsZWFzZSB0aGUgY29ubmVjdGlvbgotICAgICAgICBpZiBjbWRfb2Jq LmNvbm5faWQgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICBtYW5hZ2VyID0gZ2V0X2RyaXZlcigK LSAgICAgICAgICAgICAgICBQR19ERUZBVUxUX0RSSVZFUikuY29ubmVjdGlvbl9tYW5hZ2VyKGNt ZF9vYmouc2lkKQotICAgICAgICAgICAgaWYgbWFuYWdlciBpcyBub3QgTm9uZToKLSAgICAgICAg ICAgICAgICBjb25uID0gbWFuYWdlci5jb25uZWN0aW9uKAotICAgICAgICAgICAgICAgICAgICBk aWQ9Y21kX29iai5kaWQsIGNvbm5faWQ9Y21kX29iai5jb25uX2lkKQotCi0gICAgICAgICAgICAg ICAgIyBSZWxlYXNlIHRoZSBjb25uZWN0aW9uCi0gICAgICAgICAgICAgICAgaWYgY29ubi5jb25u ZWN0ZWQoKToKLSAgICAgICAgICAgICAgICAgICAgY29ubi5jYW5jZWxfdHJhbnNhY3Rpb24oY21k X29iai5jb25uX2lkLCBjbWRfb2JqLmRpZCkKLSAgICAgICAgICAgICAgICAgICAgbWFuYWdlci5y ZWxlYXNlKGRpZD1jbWRfb2JqLmRpZCwgY29ubl9pZD1jbWRfb2JqLmNvbm5faWQpCmRpZmYgLS1n aXQgYS93ZWIvcGdhZG1pbi90b29scy9kYXRhZ3JpZC9zdGF0aWMvanMvZGF0YWdyaWQuanMgYi93 ZWIvcGdhZG1pbi90b29scy9kYXRhZ3JpZC9zdGF0aWMvanMvZGF0YWdyaWQuanMKZGVsZXRlZCBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQ0MzhmOGE1Zi4uMDAwMDAwMDAwCi0tLSBhL3dlYi9wZ2Fk bWluL3Rvb2xzL2RhdGFncmlkL3N0YXRpYy9qcy9kYXRhZ3JpZC5qcworKysgL2Rldi9udWxsCkBA IC0xLDM3MCArMCwwIEBACi0vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vCi0vLwotLy8gcGdBZG1pbiA0IC0gUG9zdGdyZVNRTCBUb29s cwotLy8KLS8vIENvcHlyaWdodCAoQykgMjAxMyAtIDIwMjIsIFRoZSBwZ0FkbWluIERldmVsb3Bt ZW50IFRlYW0KLS8vIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgdGhlIFBvc3RncmVT UUwgTGljZW5jZQotLy8KLS8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vCi1kZWZpbmUoJ3BnYWRtaW4uZGF0YWdyaWQnLCBbCi0gICdz b3VyY2VzL2dldHRleHQnLCAnc291cmNlcy91cmxfZm9yJywgJ2pxdWVyeScsICd1bmRlcnNjb3Jl JywKLSAgJ3BnYWRtaW4uYWxlcnRpZnlqcycsICdzb3VyY2VzL3BnYWRtaW4nLCAnYnVuZGxlZF9j b2RlbWlycm9yJywKLSAgJ3NvdXJjZXMvc3FsZWRpdG9yX3V0aWxzJywgJ2JhY2tib25lJywKLSAg J3Rvb2xzL2RhdGFncmlkL3N0YXRpYy9qcy9zaG93X2RhdGEnLAotICAndG9vbHMvZGF0YWdyaWQv c3RhdGljL2pzL3Nob3dfcXVlcnlfdG9vbCcsICdwZ2FkbWluLmJyb3dzZXIudG9vbGJhcicsCi0g ICd0b29scy9kYXRhZ3JpZC9zdGF0aWMvanMvZGF0YWdyaWRfcGFuZWxfdGl0bGUnLCAnc291cmNl cy91dGlscycsICd3Y2RvY2tlcicsCi1dLCBmdW5jdGlvbigKLSAgZ2V0dGV4dCwgdXJsX2Zvciwg JCwgXywgYWxlcnRpZnksIHBnQWRtaW4sIGNvZGVtaXJyb3IsIHNxbEVkaXRvclV0aWxzLAotICBC YWNrYm9uZSwgc2hvd0RhdGEsIHNob3dRdWVyeVRvb2wsIHRvb2xCYXIsIHBhbmVsVGl0bGVGdW5j LCBjb21tb25VdGlscwotKSB7Ci0gIC8vIFNvbWUgc2NyaXB0cyBkbyBleHBvcnQgdGhlaXIgb2Jq ZWN0IGluIHRoZSB3aW5kb3cgb25seS4KLSAgLy8gR2VuZXJhbGx5IHRoZSBvbmUsIHdoaWNoIGRv IG5vIGhhdmUgQU1EIHN1cHBvcnQuCi0gIHZhciB3Y0RvY2tlciA9IHdpbmRvdy53Y0RvY2tlciwK LSAgICBwZ0Jyb3dzZXIgPSBwZ0FkbWluLkJyb3dzZXI7Ci0KLSAgLyogUmV0dXJuIGJhY2ssIHRo aXMgaGFzIGJlZW4gY2FsbGVkIG1vcmUgdGhhbiBvbmNlICovCi0gIGlmIChwZ0FkbWluLkRhdGFH cmlkKQotICAgIHJldHVybiBwZ0FkbWluLkRhdGFHcmlkOwotCi0gIHBnQWRtaW4uRGF0YUdyaWQg PQotICBfLmV4dGVuZCgKLSAgICB7Ci0gICAgICBpbml0OiBmdW5jdGlvbigpIHsKLSAgICAgICAg aWYgKHRoaXMuaW5pdGlhbGl6ZWQpCi0gICAgICAgICAgcmV0dXJuOwotICAgICAgICB0aGlzLmlu aXRpYWxpemVkID0gdHJ1ZTsKLSAgICAgICAgdGhpcy50aXRsZV9pbmRleCA9IDE7Ci0KLQotICAg ICAgICBsZXQgc2VsZiA9IHRoaXM7Ci0gICAgICAgIC8qIENhY2hlIG1heSB0YWtlIHRpbWUgdG8g bG9hZCBmb3IgdGhlIGZpcnN0IHRpbWUKLSAgICAgICAgICogS2VlcCB0cnlpbmcgdGlsbCBhdmFp bGFibGUKLSAgICAgICAgICovCi0gICAgICAgIGxldCBjYWNoZUludGVydmFsSWQgPSBzZXRJbnRl cnZhbChmdW5jdGlvbigpIHsKLSAgICAgICAgICBpZihwZ0Jyb3dzZXIucHJlZmVyZW5jZV92ZXJz aW9uKCkgPiAwKSB7Ci0gICAgICAgICAgICBzZWxmLnByZWZlcmVuY2VzID0gcGdCcm93c2VyLmdl dF9wcmVmZXJlbmNlc19mb3JfbW9kdWxlKCdzcWxlZGl0b3InKTsKLSAgICAgICAgICAgIGNsZWFy SW50ZXJ2YWwoY2FjaGVJbnRlcnZhbElkKTsKLSAgICAgICAgICB9Ci0gICAgICAgIH0sMCk7Ci0K LSAgICAgICAgcGdCcm93c2VyLm9uUHJlZmVyZW5jZXNDaGFuZ2UoJ3NxbGVkaXRvcicsIGZ1bmN0 aW9uKCkgewotICAgICAgICAgIHNlbGYucHJlZmVyZW5jZXMgPSBwZ0Jyb3dzZXIuZ2V0X3ByZWZl cmVuY2VzX2Zvcl9tb2R1bGUoJ3NxbGVkaXRvcicpOwotICAgICAgICB9KTsKLQotICAgICAgICAv LyBEZWZpbmUgbGlzdCBvZiBub2RlcyBvbiB3aGljaCB2aWV3IGRhdGEgb3B0aW9uIGFwcGVhcnMK LSAgICAgICAgdmFyIHN1cHBvcnRlZF9ub2RlcyA9IFsKLSAgICAgICAgICAgICd0YWJsZScsICd2 aWV3JywgJ212aWV3JywKLSAgICAgICAgICAgICdmb3JlaWduX3RhYmxlJywgJ2NhdGFsb2dfb2Jq ZWN0JywgJ3BhcnRpdGlvbicsCi0gICAgICAgICAgXSwKLQotICAgICAgICAgIC8qIEVuYWJsZS9k aXNhYmxlIFZpZXcgZGF0YSBtZW51IGluIHRvb2xzIGJhc2VkCi0gICAgICAgICAqIG9uIG5vZGUg c2VsZWN0ZWQuIGlmIHNlbGVjdGVkIG5vZGUgaXMgcHJlc2VudAotICAgICAgICAgKiBpbiBzdXBw b3J0ZWRfbm9kZXMsIG1lbnUgd2lsbCBiZSBlbmFibGVkCi0gICAgICAgICAqIG90aGVyd2lzZSBk aXNhYmxlZC4KLSAgICAgICAgICovCi0gICAgICAgICAgdmlld19tZW51X2VuYWJsZWQgPSBmdW5j dGlvbihvYmopIHsKLSAgICAgICAgICAgIHZhciBpc0VuYWJsZWQgPSAoKCkgPT4gewotICAgICAg ICAgICAgICBpZiAoIV8uaXNVbmRlZmluZWQob2JqKSAmJiAhXy5pc051bGwob2JqKSkKLSAgICAg ICAgICAgICAgICByZXR1cm4gKF8uaW5kZXhPZihzdXBwb3J0ZWRfbm9kZXMsIG9iai5fdHlwZSkg IT09IC0xID8gdHJ1ZSA6IGZhbHNlKTsKLSAgICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAg ICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgICAgIH0pKCk7Ci0KLSAgICAgICAgICAgIHRvb2xC YXIuZW5hYmxlKGdldHRleHQoJ1ZpZXcgRGF0YScpLCBpc0VuYWJsZWQpOwotICAgICAgICAgICAg dG9vbEJhci5lbmFibGUoZ2V0dGV4dCgnRmlsdGVyZWQgUm93cycpLCBpc0VuYWJsZWQpOwotICAg ICAgICAgICAgcmV0dXJuIGlzRW5hYmxlZDsKLSAgICAgICAgICB9LAotCi0gICAgICAgICAgLyog RW5hYmxlL2Rpc2FibGUgUXVlcnkgdG9vbCBtZW51IGluIHRvb2xzIGJhc2VkCi0gICAgICAgICAq IG9uIG5vZGUgc2VsZWN0ZWQuIGlmIHNlbGVjdGVkIG5vZGUgaXMgcHJlc2VudAotICAgICAgICAg KiBpbiB1bnN1cHBvcnRlZF9ub2RlcywgbWVudSB3aWxsIGJlIGRpc2FibGVkCi0gICAgICAgICAq IG90aGVyd2lzZSBlbmFibGVkLgotICAgICAgICAgKi8KLSAgICAgICAgICBxdWVyeV90b29sX21l bnVfZW5hYmxlZCA9IGZ1bmN0aW9uKG9iaikgewotICAgICAgICAgICAgdmFyIGlzRW5hYmxlZCA9 ICgoKSA9PiB7Ci0gICAgICAgICAgICAgIGlmICghXy5pc1VuZGVmaW5lZChvYmopICYmICFfLmlz TnVsbChvYmopKSB7Ci0gICAgICAgICAgICAgICAgaWYgKF8uaW5kZXhPZihwZ0FkbWluLnVuc3Vw cG9ydGVkX25vZGVzLCBvYmouX3R5cGUpID09IC0xKSB7Ci0gICAgICAgICAgICAgICAgICBpZiAo b2JqLl90eXBlID09ICdkYXRhYmFzZScgJiYgb2JqLmFsbG93Q29ubikgewotICAgICAgICAgICAg ICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAob2JqLl90 eXBlICE9ICdkYXRhYmFzZScpIHsKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0g ICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFs c2U7Ci0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAg ICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAg ICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICAgICAg ICB9Ci0gICAgICAgICAgICB9KSgpOwotCi0gICAgICAgICAgICB0b29sQmFyLmVuYWJsZShnZXR0 ZXh0KCdRdWVyeSBUb29sJyksIGlzRW5hYmxlZCk7Ci0gICAgICAgICAgICByZXR1cm4gaXNFbmFi bGVkOwotICAgICAgICAgIH07Ci0KLSAgICAgICAgLy8gRGVmaW5lIHRoZSBub2RlcyBvbiB3aGlj aCB0aGUgbWVudXMgdG8gYmUgYXBwZWFyCi0gICAgICAgIHZhciBtZW51cyA9IFt7Ci0gICAgICAg ICAgbmFtZTogJ3F1ZXJ5X3Rvb2wnLAotICAgICAgICAgIG1vZHVsZTogdGhpcywKLSAgICAgICAg ICBhcHBsaWVzOiBbJ3Rvb2xzJ10sCi0gICAgICAgICAgY2FsbGJhY2s6ICdzaG93X3F1ZXJ5X3Rv b2wnLAotICAgICAgICAgIGVuYWJsZTogcXVlcnlfdG9vbF9tZW51X2VuYWJsZWQsCi0gICAgICAg ICAgcHJpb3JpdHk6IDEsCi0gICAgICAgICAgbGFiZWw6IGdldHRleHQoJ1F1ZXJ5IFRvb2wnKSwK LSAgICAgICAgICBpY29uOiAncGctZm9udC1pY29uIGljb24tcXVlcnlfdG9vbCcsCi0gICAgICAg ICAgZGF0YTp7Ci0gICAgICAgICAgICBhcHBsaWVzOiAndG9vbHMnLAotICAgICAgICAgICAgZGF0 YV9kaXNhYmxlZDogZ2V0dGV4dCgnUGxlYXNlIHNlbGVjdCBhIGRhdGFiYXNlIGZyb20gdGhlIGJy b3dzZXIgdHJlZSB0byBhY2Nlc3MgUXVlcnkgVG9vbC4nKSwKLSAgICAgICAgICB9LAotICAgICAg ICB9XTsKLQotICAgICAgICAvLyBDcmVhdGUgY29udGV4dCBtZW51Ci0gICAgICAgIGZvciAobGV0 IG5vZGVfdmFsIG9mIHN1cHBvcnRlZF9ub2RlcykgewotICAgICAgICAgIG1lbnVzLnB1c2goewot ICAgICAgICAgICAgbmFtZTogJ3ZpZXdfYWxsX3Jvd3NfY29udGV4dF8nICsgbm9kZV92YWwsCi0g ICAgICAgICAgICBub2RlOiBub2RlX3ZhbCwKLSAgICAgICAgICAgIG1vZHVsZTogdGhpcywKLSAg ICAgICAgICAgIGRhdGE6IHsKLSAgICAgICAgICAgICAgbW51aWQ6IDMsCi0gICAgICAgICAgICB9 LAotICAgICAgICAgICAgYXBwbGllczogWydjb250ZXh0JywgJ29iamVjdCddLAotICAgICAgICAg ICAgY2FsbGJhY2s6ICdzaG93X2RhdGFfZ3JpZCcsCi0gICAgICAgICAgICBlbmFibGU6IHZpZXdf bWVudV9lbmFibGVkLAotICAgICAgICAgICAgY2F0ZWdvcnk6ICd2aWV3X2RhdGEnLAotICAgICAg ICAgICAgcHJpb3JpdHk6IDEwMSwKLSAgICAgICAgICAgIGxhYmVsOiBnZXR0ZXh0KCdBbGwgUm93 cycpLAotICAgICAgICAgIH0sIHsKLSAgICAgICAgICAgIG5hbWU6ICd2aWV3X2ZpcnN0XzEwMF9y b3dzX2NvbnRleHRfJyArIG5vZGVfdmFsLAotICAgICAgICAgICAgbm9kZTogbm9kZV92YWwsCi0g ICAgICAgICAgICBtb2R1bGU6IHRoaXMsCi0gICAgICAgICAgICBkYXRhOiB7Ci0gICAgICAgICAg ICAgIG1udWlkOiAxLAotICAgICAgICAgICAgfSwKLSAgICAgICAgICAgIGFwcGxpZXM6IFsnY29u dGV4dCcsICdvYmplY3QnXSwKLSAgICAgICAgICAgIGNhbGxiYWNrOiAnc2hvd19kYXRhX2dyaWQn LAotICAgICAgICAgICAgZW5hYmxlOiB2aWV3X21lbnVfZW5hYmxlZCwKLSAgICAgICAgICAgIGNh dGVnb3J5OiAndmlld19kYXRhJywKLSAgICAgICAgICAgIHByaW9yaXR5OiAxMDIsCi0gICAgICAg ICAgICBsYWJlbDogZ2V0dGV4dCgnRmlyc3QgMTAwIFJvd3MnKSwKLSAgICAgICAgICB9LCB7Ci0g ICAgICAgICAgICBuYW1lOiAndmlld19sYXN0XzEwMF9yb3dzX2NvbnRleHRfJyArIG5vZGVfdmFs LAotICAgICAgICAgICAgbm9kZTogbm9kZV92YWwsCi0gICAgICAgICAgICBtb2R1bGU6IHRoaXMs Ci0gICAgICAgICAgICBkYXRhOiB7Ci0gICAgICAgICAgICAgIG1udWlkOiAyLAotICAgICAgICAg ICAgfSwKLSAgICAgICAgICAgIGFwcGxpZXM6IFsnY29udGV4dCcsICdvYmplY3QnXSwKLSAgICAg ICAgICAgIGNhbGxiYWNrOiAnc2hvd19kYXRhX2dyaWQnLAotICAgICAgICAgICAgZW5hYmxlOiB2 aWV3X21lbnVfZW5hYmxlZCwKLSAgICAgICAgICAgIGNhdGVnb3J5OiAndmlld19kYXRhJywKLSAg ICAgICAgICAgIHByaW9yaXR5OiAxMDMsCi0gICAgICAgICAgICBsYWJlbDogZ2V0dGV4dCgnTGFz dCAxMDAgUm93cycpLAotICAgICAgICAgIH0sIHsKLSAgICAgICAgICAgIG5hbWU6ICd2aWV3X2Zp bHRlcmVkX3Jvd3NfY29udGV4dF8nICsgbm9kZV92YWwsCi0gICAgICAgICAgICBub2RlOiBub2Rl X3ZhbCwKLSAgICAgICAgICAgIG1vZHVsZTogdGhpcywKLSAgICAgICAgICAgIGRhdGE6IHsKLSAg ICAgICAgICAgICAgbW51aWQ6IDQsCi0gICAgICAgICAgICB9LAotICAgICAgICAgICAgYXBwbGll czogWydjb250ZXh0JywgJ29iamVjdCddLAotICAgICAgICAgICAgY2FsbGJhY2s6ICdzaG93X2Zp bHRlcmVkX3JvdycsCi0gICAgICAgICAgICBlbmFibGU6IHZpZXdfbWVudV9lbmFibGVkLAotICAg ICAgICAgICAgY2F0ZWdvcnk6ICd2aWV3X2RhdGEnLAotICAgICAgICAgICAgcHJpb3JpdHk6IDEw NCwKLSAgICAgICAgICAgIGxhYmVsOiBnZXR0ZXh0KCdGaWx0ZXJlZCBSb3dzLi4uJyksCi0gICAg ICAgICAgfSk7Ci0gICAgICAgIH0KLQotICAgICAgICBwZ0FkbWluLkJyb3dzZXIuYWRkX21lbnVf Y2F0ZWdvcnkoJ3ZpZXdfZGF0YScsIGdldHRleHQoJ1ZpZXcvRWRpdCBEYXRhJyksIDEwMCwgJycp OwotICAgICAgICBwZ0FkbWluLkJyb3dzZXIuYWRkX21lbnVzKG1lbnVzKTsKLQotICAgICAgICAv LyBDcmVhdGluZyBhIG5ldyBwZ0FkbWluLkJyb3dzZXIgZnJhbWUgdG8gc2hvdyB0aGUgZGF0YS4K LSAgICAgICAgdmFyIGRhdGFHcmlkRnJhbWVUeXBlID0gbmV3IHBnQWRtaW4uQnJvd3Nlci5GcmFt ZSh7Ci0gICAgICAgICAgbmFtZTogJ2ZybV9kYXRhZ3JpZCcsCi0gICAgICAgICAgc2hvd1RpdGxl OiB0cnVlLAotICAgICAgICAgIGlzQ2xvc2VhYmxlOiB0cnVlLAotICAgICAgICAgIGlzUmVuYW1h YmxlOiB0cnVlLAotICAgICAgICAgIGlzUHJpdmF0ZTogdHJ1ZSwKLSAgICAgICAgICB1cmw6ICdh Ym91dDpibGFuaycsCi0gICAgICAgIH0pOwotCi0gICAgICAgIC8vIExvYWQgdGhlIG5ld2x5IGNy ZWF0ZWQgZnJhbWUKLSAgICAgICAgZGF0YUdyaWRGcmFtZVR5cGUubG9hZChwZ0Jyb3dzZXIuZG9j a2VyKTsKLSAgICAgICAgdGhpcy5vbigncGdhZG1pbi1kYXRhZ3JpZDp0cmFuc2FjdGlvbjpjcmVh dGVkJywgZnVuY3Rpb24odHJhbnNfb2JqKSB7Ci0gICAgICAgICAgdGhpcy5sYXVuY2hfZ3JpZCh0 cmFuc19vYmopOwotICAgICAgICB9KTsKLSAgICAgIH0sCi0KLSAgICAgIC8vIFRoaXMgaXMgYSBj YWxsYmFjayBmdW5jdGlvbiB0byBzaG93IGRhdGEgd2hlbiB1c2VyIGNsaWNrIG9uIG1lbnUgaXRl bS4KLSAgICAgIHNob3dfZGF0YV9ncmlkOiBmdW5jdGlvbihkYXRhLCBpKSB7Ci0gICAgICAgIGNv bnN0IHRyYW5zSWQgPSBjb21tb25VdGlscy5nZXRSYW5kb21JbnQoMSwgOTk5OTk5OSk7Ci0gICAg ICAgIHNob3dEYXRhLnNob3dEYXRhR3JpZCh0aGlzLCBwZ0Jyb3dzZXIsIGFsZXJ0aWZ5LCBkYXRh LCBpLCB0cmFuc0lkKTsKLSAgICAgIH0sCi0KLSAgICAgIC8vIFRoaXMgaXMgYSBjYWxsYmFjayBm dW5jdGlvbiB0byBzaG93IGZpbHRlcmVkIGRhdGEgd2hlbiB1c2VyIGNsaWNrIG9uIG1lbnUgaXRl bS4KLSAgICAgIHNob3dfZmlsdGVyZWRfcm93OiBmdW5jdGlvbihkYXRhLCBpKSB7Ci0gICAgICAg IGNvbnN0IHRyYW5zSWQgPSBjb21tb25VdGlscy5nZXRSYW5kb21JbnQoMSwgOTk5OTk5OSk7Ci0g ICAgICAgIHNob3dEYXRhLnNob3dEYXRhR3JpZCh0aGlzLCBwZ0Jyb3dzZXIsIGFsZXJ0aWZ5LCBk YXRhLCBpLCB0cmFuc0lkLCB0cnVlLCB0aGlzLnByZWZlcmVuY2VzKTsKLSAgICAgIH0sCi0KLSAg ICAgIC8vIFRoaXMgaXMgYSBjYWxsYmFjayBmdW5jdGlvbiB0byBzaG93IHF1ZXJ5IHRvb2wgd2hl biB1c2VyIGNsaWNrIG9uIG1lbnUgaXRlbS4KLSAgICAgIHNob3dfcXVlcnlfdG9vbDogZnVuY3Rp b24odXJsLCBhY2lUcmVlSWRlbnRpZmllcikgewotICAgICAgICBjb25zdCB0cmFuc0lkID0gY29t bW9uVXRpbHMuZ2V0UmFuZG9tSW50KDEsIDk5OTk5OTkpOwotICAgICAgICB2YXIgdCA9IHBnQnJv d3Nlci50cmVlLAotICAgICAgICAgIGkgPSBhY2lUcmVlSWRlbnRpZmllciB8fCB0LnNlbGVjdGVk KCksCi0gICAgICAgICAgZCA9IGkgPyB0Lml0ZW1EYXRhKGkpIDogdW5kZWZpbmVkOwotCi0gICAg ICAgIC8vT3BlbiBxdWVyeSB0b29sIHdpdGggY3JlYXRlIHNjcmlwdCBpZiBjb3B5X3NxbF90b19x dWVyeV90b29sIGlzIHRydWUgZWxzZSBvcGVuIGJsYW5rIHF1ZXJ5IHRvb2wKLSAgICAgICAgdmFy IHByZWZlcmVuY2UgPSBwZ0Jyb3dzZXIuZ2V0X3ByZWZlcmVuY2UoJ3NxbGVkaXRvcicsICdjb3B5 X3NxbF90b19xdWVyeV90b29sJyk7Ci0gICAgICAgIGlmKHByZWZlcmVuY2UudmFsdWUgJiYgIWQu X3R5cGUuaW5jbHVkZXMoJ2NvbGwtJykgJiYgKHVybCA9PT0gJycgfHwgdXJsWydhcHBsaWVzJ10g PT09ICd0b29scycpKXsKLSAgICAgICAgICB2YXIgc3R5cGUgPSBkLl90eXBlLnRvTG93ZXJDYXNl KCk7Ci0gICAgICAgICAgdmFyIGRhdGEgPSB7Ci0gICAgICAgICAgICAnc2NyaXB0Jzogc3R5cGUs Ci0gICAgICAgICAgICBkYXRhX2Rpc2FibGVkOiBnZXR0ZXh0KCdUaGUgc2VsZWN0ZWQgdHJlZSBu b2RlIGRvZXMgbm90IHN1cHBvcnQgdGhpcyBvcHRpb24uJyksCi0gICAgICAgICAgfTsKLSAgICAg ICAgICBwZ0Jyb3dzZXIuTm9kZS5jYWxsYmFja3Muc2hvd19zY3JpcHQoZGF0YSk7Ci0gICAgICAg IH1lbHNlewotICAgICAgICAgIGlmKGQuX3R5cGUuaW5jbHVkZXMoJ2NvbGwtJykpewotICAgICAg ICAgICAgdXJsID0gJyc7Ci0gICAgICAgICAgfQotICAgICAgICAgIHNob3dRdWVyeVRvb2wuc2hv d1F1ZXJ5VG9vbCh0aGlzLCBwZ0Jyb3dzZXIsIHVybCwgYWNpVHJlZUlkZW50aWZpZXIsIHRyYW5z SWQpOwotICAgICAgICB9Ci0gICAgICB9LAotCi0gICAgICBsYXVuY2hfZ3JpZDogZnVuY3Rpb24o dHJhbnNfaWQsIHBhbmVsX3VybCwgaXNfcXVlcnlfdG9vbCwgcGFuZWxfdGl0bGUsIHNVUkw9bnVs bCwgc3FsX2ZpbHRlcj1udWxsKSB7Ci0KLSAgICAgICAgbGV0IHF1ZXJ5VG9vbEZvcm0gPSBgCi0g ICAgICAgICAgPGZvcm0gaWQ9InF1ZXJ5VG9vbEZvcm0iIGFjdGlvbj0iJHtwYW5lbF91cmx9IiBt ZXRob2Q9InBvc3QiPgotICAgICAgICAgICAgPGlucHV0IGlkPSJ0aXRsZSIgbmFtZT0idGl0bGUi IGhpZGRlbiAvPmA7Ci0KLSAgICAgICAgaWYoc1VSTCl7Ci0gICAgICAgICAgcXVlcnlUb29sRm9y bSArPWA8aW5wdXQgbmFtZT0icXVlcnlfdXJsIiB2YWx1ZT0iJHtzVVJMfSIgaGlkZGVuIC8+YDsK LSAgICAgICAgfQotICAgICAgICBpZihzcWxfZmlsdGVyKSB7Ci0gICAgICAgICAgcXVlcnlUb29s Rm9ybSArPWA8dGV4dGFyZWEgbmFtZT0ic3FsX2ZpbHRlciIgaGlkZGVuPiR7c3FsX2ZpbHRlcn08 L3RleHRhcmVhPmA7Ci0gICAgICAgIH0KLQotICAgICAgICAvKiBFc2NhcGUgYmFja3NsYXNoZXMg YXMgaXQgaXMgc3RyaXBwZWQgYnkgYmFjayBlbmQgKi8KLSAgICAgICAgcXVlcnlUb29sRm9ybSAr PWAKLSAgICAgICAgICA8L2Zvcm0+Ci0gICAgICAgICAgICA8c2NyaXB0PgotICAgICAgICAgICAg ICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGl0bGUiKS52YWx1ZSA9ICIke18uZXNjYXBlKHBh bmVsX3RpdGxlLnJlcGxhY2UoJ1xcJywgJ1xcXFwnKSl9IjsKLSAgICAgICAgICAgICAgZG9jdW1l bnQuZ2V0RWxlbWVudEJ5SWQoInF1ZXJ5VG9vbEZvcm0iKS5zdWJtaXQoKTsKLSAgICAgICAgICAg IDwvc2NyaXB0PgotICAgICAgICAgIGA7Ci0KLSAgICAgICAgdmFyIGJyb3dzZXJfcHJlZmVyZW5j ZXMgPSBwZ0Jyb3dzZXIuZ2V0X3ByZWZlcmVuY2VzX2Zvcl9tb2R1bGUoJ2Jyb3dzZXInKTsKLSAg ICAgICAgdmFyIG9wZW5fbmV3X3RhYiA9IGJyb3dzZXJfcHJlZmVyZW5jZXMubmV3X2Jyb3dzZXJf dGFiX29wZW47Ci0gICAgICAgIGlmIChvcGVuX25ld190YWIgJiYgb3Blbl9uZXdfdGFiLmluY2x1 ZGVzKCdxdCcpKSB7Ci0gICAgICAgICAgdmFyIG5ld1dpbiA9IHdpbmRvdy5vcGVuKCcnLCAnX2Js YW5rJyk7Ci0gICAgICAgICAgaWYobmV3V2luKSB7Ci0gICAgICAgICAgICBuZXdXaW4uZG9jdW1l bnQud3JpdGUocXVlcnlUb29sRm9ybSk7Ci0gICAgICAgICAgICBuZXdXaW4uZG9jdW1lbnQudGl0 bGUgPSBwYW5lbF90aXRsZTsKLSAgICAgICAgICAgIC8vIFNlbmQgdGhlIHNpZ25hbCB0byBydW50 aW1lLCBzbyB0aGF0IHByb3BlciB6b29tIGxldmVsIHdpbGwgYmUgc2V0LgotICAgICAgICAgICAg c2V0VGltZW91dChmdW5jdGlvbigpIHsKLSAgICAgICAgICAgICAgcGdCcm93c2VyLnNlbmRfc2ln bmFsX3RvX3J1bnRpbWUoJ1J1bnRpbWUgbmV3IHdpbmRvdyBvcGVuZWQnKTsKLSAgICAgICAgICAg IH0sIDUwMCk7Ci0gICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsK LSAgICAgICAgICB9Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgLyogT24gc3VjY2Vzc2Z1 bGx5IGluaXRpYWxpemF0aW9uIGZpbmQgdGhlIGRhc2hib2FyZCBwYW5lbCwKLSAgICAgICAgICAg KiBjcmVhdGUgbmV3IHBhbmVsIGFuZCBhZGQgaXQgdG8gdGhlIGRhc2hib2FyZCBwYW5lbC4KLSAg ICAgICAgICAgKi8KLSAgICAgICAgICB2YXIgcHJvcGVydGllc1BhbmVsID0gcGdCcm93c2VyLmRv Y2tlci5maW5kUGFuZWxzKCdwcm9wZXJ0aWVzJyk7Ci0gICAgICAgICAgdmFyIHF1ZXJ5VG9vbFBh bmVsID0gcGdCcm93c2VyLmRvY2tlci5hZGRQYW5lbCgnZnJtX2RhdGFncmlkJywgd2NEb2NrZXIu RE9DSy5TVEFDS0VELCBwcm9wZXJ0aWVzUGFuZWxbMF0pOwotICAgICAgICAgIHF1ZXJ5VG9vbFBh bmVsLnRyYW5zX2lkID0gdHJhbnNfaWQ7Ci0gICAgICAgICAgc2hvd1F1ZXJ5VG9vbC5fc2V0X2R5 bmFtaWNfdGFiKHBnQnJvd3NlciwgYnJvd3Nlcl9wcmVmZXJlbmNlc1snZHluYW1pY190YWJzJ10p OwotCi0gICAgICAgICAgLy8gU2V0IHBhbmVsIHRpdGxlIGFuZCBpY29uCi0gICAgICAgICAgcGFu ZWxUaXRsZUZ1bmMuc2V0UXVlcnlUb29sRG9ja2VyVGl0bGUocXVlcnlUb29sUGFuZWwsIGlzX3F1 ZXJ5X3Rvb2wsIF8udW5lc2NhcGUocGFuZWxfdGl0bGUpKTsKLSAgICAgICAgICBxdWVyeVRvb2xQ YW5lbC5mb2N1cygpOwotCi0gICAgICAgICAgLy8gTGlzdGVuIG9uIHRoZSBwYW5lbCBjbG9zZWQg ZXZlbnQuCi0gICAgICAgICAgaWYgKHF1ZXJ5VG9vbFBhbmVsLmlzVmlzaWJsZSgpKSB7Ci0gICAg ICAgICAgICBxdWVyeVRvb2xQYW5lbC5vbih3Y0RvY2tlci5FVkVOVC5DTE9TRUQsIGZ1bmN0aW9u KCkgewotICAgICAgICAgICAgICAkLmFqYXgoewotICAgICAgICAgICAgICAgIHVybDogdXJsX2Zv cignZGF0YWdyaWQuY2xvc2UnLCB7J3RyYW5zX2lkJzogdHJhbnNfaWR9KSwKLSAgICAgICAgICAg ICAgICBtZXRob2Q6ICdERUxFVEUnLAotICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIH0p OwotICAgICAgICAgIH0KLQotICAgICAgICAgIHF1ZXJ5VG9vbFBhbmVsLm9uKHdjRG9ja2VyLkVW RU5ULlZJU0lCSUxJVFlfQ0hBTkdFRCwgZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICBxdWVyeVRv b2xQYW5lbC50cmlnZ2VyKHdjRG9ja2VyLkVWRU5ULlJFU0laRUQpOwotICAgICAgICAgIH0pOwot Ci0gICAgICAgICAgY29tbW9uVXRpbHMucmVnaXN0ZXJEZXRhY2hFdmVudChxdWVyeVRvb2xQYW5l bCk7Ci0KLSAgICAgICAgICAvLyBMaXN0ZW4gb24gdGhlIHBhbmVsUmVuYW1lIGV2ZW50LgotICAg ICAgICAgIHF1ZXJ5VG9vbFBhbmVsLm9uKHdjRG9ja2VyLkVWRU5ULlJFTkFNRSwgZnVuY3Rpb24o cGFuZWxfZGF0YSkgewotICAgICAgICAgICAgdmFyIHRlbXBfdGl0bGUgPSBwYW5lbF9kYXRhLiR0 aXRsZVRleHRbMF0udGV4dENvbnRlbnQ7Ci0gICAgICAgICAgICB2YXIgaXNfZGlydHlfZWRpdG9y ID0gcXVlcnlUb29sUGFuZWwuaXNfZGlydHlfZWRpdG9yID8gcXVlcnlUb29sUGFuZWwuaXNfZGly dHlfZWRpdG9yIDogZmFsc2U7Ci0gICAgICAgICAgICB2YXIgdGl0bGUgPSBxdWVyeVRvb2xQYW5l bC5pc19kaXJ0eV9lZGl0b3IgPyBwYW5lbF9kYXRhLiR0aXRsZVRleHRbMF0udGV4dENvbnRlbnQu cmVwbGFjZSgvLiQvLCAnJykgOiB0ZW1wX3RpdGxlOwotICAgICAgICAgICAgYWxlcnRpZnkucHJv bXB0KCcnLCB0aXRsZSwKLSAgICAgICAgICAgICAgLy8gV2Ugd2lsbCBleGVjdXRlIHRoaXMgZnVu Y3Rpb24gd2hlbiB1c2VyIGNsaWNrcyBvbiB0aGUgT0sgYnV0dG9uCi0gICAgICAgICAgICAgIGZ1 bmN0aW9uKGV2dCwgdmFsdWUpIHsKLSAgICAgICAgICAgICAgICAvLyBSZW1vdmUgdGhlIGxlYWRp bmcgYW5kIHRyYWlsaW5nIHdoaXRlIHNwYWNlcy4KLSAgICAgICAgICAgICAgICB2YWx1ZSA9IHZh bHVlLnRyaW0oKTsKLSAgICAgICAgICAgICAgICBpZih2YWx1ZSkgewotICAgICAgICAgICAgICAg ICAgdmFyIGlzX2ZpbGUgPSBmYWxzZTsKLSAgICAgICAgICAgICAgICAgIGlmKHBhbmVsX2RhdGEu JHRpdGxlVGV4dFswXS5pbm5lckhUTUwuaW5jbHVkZXMoJ0ZpbGUgLSAnKSkgewotICAgICAgICAg ICAgICAgICAgICBpc19maWxlID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAg ICAgICAgICAgIHZhciBzZWxlY3RlZF9pdGVtID0gcGdCcm93c2VyLnRyZWUuc2VsZWN0ZWQoKTsK LSAgICAgICAgICAgICAgICAgIHZhciBwYW5lbF90aXRsZXMgPSAnJzsKLQotICAgICAgICAgICAg ICAgICAgaWYoaXNfcXVlcnlfdG9vbCkgewotICAgICAgICAgICAgICAgICAgICBwYW5lbF90aXRs ZXMgPSBwYW5lbFRpdGxlRnVuYy5nZXRQYW5lbFRpdGxlKHBnQnJvd3Nlciwgc2VsZWN0ZWRfaXRl bSwgdmFsdWUpOwotICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAg ICAgcGFuZWxfdGl0bGVzID0gc2hvd0RhdGEuZ2VuZXJhdGVEYXRhZ3JpZFRpdGxlKHBnQnJvd3Nl ciwgc2VsZWN0ZWRfaXRlbSwgdmFsdWUpOwotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAg ICAgICAgICAgLy8gU2V0IHRpdGxlIHRvIHRoZSBzZWxlY3RlZCB0YWIuCi0gICAgICAgICAgICAg ICAgICBpZiAoaXNfZGlydHlfZWRpdG9yKSB7Ci0gICAgICAgICAgICAgICAgICAgIHBhbmVsX3Rp dGxlcyA9IHBhbmVsX3RpdGxlcyArICcgKic7Ci0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAg ICAgICAgICAgICBwYW5lbFRpdGxlRnVuYy5zZXRRdWVyeVRvb2xEb2NrZXJUaXRsZShxdWVyeVRv b2xQYW5lbCwgaXNfcXVlcnlfdG9vbCwgXy51bmVzY2FwZShwYW5lbF90aXRsZXMpLCBpc19maWxl KTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAgIC8v IFdlIHdpbGwgZXhlY3V0ZSB0aGlzIGZ1bmN0aW9uIHdoZW4gdXNlciBjbGlja3Mgb24gdGhlIENh bmNlbAotICAgICAgICAgICAgICAvLyBidXR0b24uICBEbyBub3RoaW5nIGp1c3QgY2xvc2UgaXQu Ci0gICAgICAgICAgICAgIGZ1bmN0aW9uKGV2dCkgeyBldnQuY2FuY2VsID0gZmFsc2U7IH0KLSAg ICAgICAgICAgICkuc2V0KHsndGl0bGUnOiBnZXR0ZXh0KCdSZW5hbWUgUGFuZWwnKX0pOwotICAg ICAgICAgIH0pOwotCi0gICAgICAgICAgdmFyIG9wZW5RdWVyeVRvb2xVUkwgPSBmdW5jdGlvbihq KSB7Ci0gICAgICAgICAgICAvLyBhZGQgc3Bpbm5lciBlbGVtZW50Ci0gICAgICAgICAgICBsZXQg JHNwaW5uZXJfZWwgPQotICAgICAgICAgICAgICAkKGA8ZGl2IGNsYXNzPSJwZy1zcC1jb250YWlu ZXIiPgotICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwZy1zcC1jb250ZW50Ij4KLSAg ICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InJvdyI+Ci0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLTEyIHBnLXNwLWljb24iPjwvZGl2PgotICAgICAg ICAgICAgICAgICAgICAgICAgPC9kaXY+Ci0gICAgICAgICAgICAgICAgICAgIDwvZGl2PgotICAg ICAgICAgICAgICAgIDwvZGl2PmApLmFwcGVuZFRvKCQoaikuZGF0YSgnZW1iZWRkZWRGcmFtZScp LiRjb250YWluZXIpOwotCi0gICAgICAgICAgICBsZXQgaW5pdF9wb2xsZXJfaWQgPSBzZXRJbnRl cnZhbChmdW5jdGlvbigpIHsKLSAgICAgICAgICAgICAgdmFyIGZyYW1lSW5pdGlhbGl6ZWQgPSAk KGopLmRhdGEoJ2ZyYW1lSW5pdGlhbGl6ZWQnKTsKLSAgICAgICAgICAgICAgaWYgKGZyYW1lSW5p dGlhbGl6ZWQpIHsKLSAgICAgICAgICAgICAgICBjbGVhckludGVydmFsKGluaXRfcG9sbGVyX2lk KTsKLSAgICAgICAgICAgICAgICB2YXIgZnJhbWUgPSAkKGopLmRhdGEoJ2VtYmVkZGVkRnJhbWUn KTsKLSAgICAgICAgICAgICAgICBpZiAoZnJhbWUpIHsKLSAgICAgICAgICAgICAgICAgIGZyYW1l Lm9uTG9hZGVkKCgpPT57Ci0gICAgICAgICAgICAgICAgICAgICRzcGlubmVyX2VsLnJlbW92ZSgp OwotICAgICAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICAgICAgICBmcmFtZS5vcGVuSFRN TChxdWVyeVRvb2xGb3JtKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgIH0KLSAg ICAgICAgICAgIH0sIDEwMCk7Ci0gICAgICAgICAgfTsKLQotICAgICAgICAgIG9wZW5RdWVyeVRv b2xVUkwocXVlcnlUb29sUGFuZWwpOwotICAgICAgICB9Ci0gICAgICAgIHJldHVybiB0cnVlOwot ICAgICAgfSwKLSAgICB9LAotICAgIEJhY2tib25lLkV2ZW50cyk7Ci0KLSAgcmV0dXJuIHBnQWRt aW4uRGF0YUdyaWQ7Ci19KTsKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL3Rvb2xzL2RhdGFncmlk L3RlbXBsYXRlcy9kYXRhZ3JpZC9pbmRleC5odG1sIGIvd2ViL3BnYWRtaW4vdG9vbHMvZGF0YWdy aWQvdGVtcGxhdGVzL2RhdGFncmlkL2luZGV4Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDFjYjNiM2NkMi4uMDAwMDAwMDAwCi0tLSBhL3dlYi9wZ2FkbWluL3Rvb2xzL2RhdGFn cmlkL3RlbXBsYXRlcy9kYXRhZ3JpZC9pbmRleC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNTA3 ICswLDAgQEAKLXslIGV4dGVuZHMgImJhc2UuaHRtbCIgJX0KLXslIGJsb2NrIHRpdGxlICV9e3t0 aXRsZX19eyUgZW5kYmxvY2sgJX0KLXslIGJsb2NrIGJvZHkgJX0KLTxzdHlsZT4KLSAgICBib2R5 IHtwYWRkaW5nOiAwcHg7fQotICAgIHslIGlmIGlzX2Rlc2t0b3BfbW9kZSBhbmQgaXNfbGludXgg JX0KLSAgICAuYWxlcnRpZnkgLmFqcy1kaW1tZXIsLmFsZXJ0aWZ5IC5hanMtbW9kYWx7LXdlYmtp dC10cmFuc2Zvcm06IG5vbmU7fQotICAgIC5hbGVydGlmeS1ub3RpZmllcnstd2Via2l0LXRyYW5z Zm9ybTogbm9uZTt9Ci0gICAgLmFsZXJ0aWZ5LW5vdGlmaWVyIC5hanMtbWVzc2FnZXstd2Via2l0 LXRyYW5zZm9ybTogbm9uZTt9Ci0gICAgLmFsZXJ0aWZ5IC5hanMtZGlhbG9nLmFqcy1zaGFrZXst d2Via2l0LWFuaW1hdGlvbi1uYW1lOiBub25lO30KLSAgICAuc3FsLWVkaXRvci1idXN5LWljb24u ZmEtcHVsc2V7LXdlYmtpdC1hbmltYXRpb246IG5vbmU7fQotICAgIHslIGVuZGlmICV9Ci08L3N0 eWxlPgoteyUgYmxvY2sgY3NzX2xpbmsgJX0KLTxsaW5rIHR5cGU9InRleHQvY3NzIiByZWw9InN0 eWxlc2hlZXQiIGhyZWY9Int7IHVybF9mb3IoJ2Jyb3dzZXIuYnJvd3Nlcl9jc3MnKX19Ii8+Ci17 JSBlbmRibG9jayAlfQotPGRpdiBpZD0ibWFpbi1lZGl0b3JfcGFuZWwiPgotICAgIDxkaXYgY2xh c3M9InNxbC1lZGl0b3IiPgotICAgICAgICA8ZGl2IGlkPSJidG4tdG9vbGJhciIgY2xhc3M9ImVk aXRvci10b29sYmFyIiByb2xlPSJ0b29sYmFyIiBhcmlhLWxhYmVsPSIiPgotICAgICAgICAgICAg PGRpdiBjbGFzcz0iYnRuLWdyb3VwIG1yLTEiIHJvbGU9Imdyb3VwIiBhcmlhLWxhYmVsPSIiPgot ICAgICAgICAgICAgICAgIDxidXR0b24gaWQ9ImJ0bi1zaG93LXF1ZXJ5LXRvb2wiIHR5cGU9ImJ1 dHRvbiIgY2xhc3M9ImJ0biBidG4tc20gYnRuLXByaW1hcnktaWNvbiBidG4tc2hvdy1xdWVyeS10 b29sIgotICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU9IiIKLSAgICAgICAgICAgICAgICAg ICAgICAgIGFyaWEtbGFiZWw9InNob3cgcXVlcnkgdG9vbCIKLSAgICAgICAgICAgICAgICAgICAg ICAgIHRhYmluZGV4PSIwIj4KLSAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9InBnLWZvbnQt aWNvbiBpY29uLXF1ZXJ5X3Rvb2wiIGFyaWEtaGlkZGVuPSJ0cnVlIiByb2xlPSJpbWciPjwvaT4K LSAgICAgICAgICAgICAgICA8L2J1dHRvbj4KLSAgICAgICAgICAgIDwvZGl2PgotICAgICAgICAg ICAgPGRpdiBjbGFzcz0iYnRuLWdyb3VwIG1yLTEiIHJvbGU9Imdyb3VwIiBhcmlhLWxhYmVsPSIi PgotICAgICAgICAgICAgICAgIDxidXR0b24gaWQ9ImJ0bi1sb2FkLWZpbGUiIHR5cGU9ImJ1dHRv biIgY2xhc3M9ImJ0biBidG4tc20gYnRuLXByaW1hcnktaWNvbiBidG4tbG9hZC1maWxlIgotICAg ICAgICAgICAgICAgICAgICAgICAgdGl0bGU9IiIKLSAgICAgICAgICAgICAgICAgICAgICAgIGFj Y2Vzc2tleT0iIgotICAgICAgICAgICAgICAgICAgICAgICAgdGFiaW5kZXg9IjAiPgotICAgICAg ICAgICAgICAgICAgICA8aSBjbGFzcz0iZmEgZmEtZm9sZGVyLW9wZW4gc3FsLWljb24tbGciIGFy aWEtaGlkZGVuPSJ0cnVlIiByb2xlPSJpbWciPjwvaT4KLSAgICAgICAgICAgICAgICA8L2J1dHRv bj4KLSAgICAgICAgICAgICAgICA8YnV0dG9uIGlkPSJidG4tc2F2ZS1maWxlIiB0eXBlPSJidXR0 b24iIGNsYXNzPSJidG4gYnRuLXNtIGJ0bi1wcmltYXJ5LWljb24iCi0gICAgICAgICAgICAgICAg ICAgICAgICB0aXRsZT0iIgotICAgICAgICAgICAgICAgICAgICAgICAgYWNjZXNza2V5PSIiCi0g ICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD4KLSAgICAgICAgICAgICAgICAgICAgPGkg Y2xhc3M9ImZhIGZhLXNhdmUgc3FsLWljb24tbGciIGFyaWEtaGlkZGVuPSJ0cnVlIiB0YWJpbmRl eD0iMCIgcm9sZT0iaW1nIj48L2k+Ci0gICAgICAgICAgICAgICAgPC9idXR0b24+Ci0gICAgICAg ICAgICAgICAgPGJ1dHRvbiBpZD0iYnRuLWZpbGUtbWVudS1kcm9wZG93biIgdHlwZT0iYnV0dG9u IiBjbGFzcz0iYnRuIGJ0bi1zbSBidG4tcHJpbWFyeS1pY29uIGRyb3Bkb3duLXRvZ2dsZSBkcm9w ZG93bi10b2dnbGUtc3BsaXQiCi0gICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXRvZ2dsZT0i ZHJvcGRvd24iIGFyaWEtaGFzcG9wdXA9InRydWUiIGFyaWEtZXhwYW5kZWQ9ImZhbHNlIiBkaXNh YmxlZAotICAgICAgICAgICAgICAgICAgICAgICAgdGFiaW5kZXg9IjAiIGFyaWEtbGFiZWw9ImZp bGUgbWVudSI+Ci0gICAgICAgICAgICAgICAgPC9idXR0b24+Ci0gICAgICAgICAgICAgICAgPHVs IGNsYXNzPSJkcm9wZG93bi1tZW51Ij4KLSAgICAgICAgICAgICAgICAgICAgPGxpPgotICAgICAg ICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9ImRyb3Bkb3duLWl0ZW0iIGlkPSJidG4tZmlsZS1t ZW51LXNhdmUiIGhyZWY9IiMiIHRhYmluZGV4PSIwIj4KLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICA8c3Bhbj57eyBfKCdTYXZlJykgfX08L3NwYW4+Ci0gICAgICAgICAgICAgICAgICAgICAg ICA8L2E+Ci0gICAgICAgICAgICAgICAgICAgIDwvbGk+Ci0gICAgICAgICAgICAgICAgICAgIDxs aT4KLSAgICAgICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPSJkcm9wZG93bi1pdGVtIiBpZD0i YnRuLWZpbGUtbWVudS1zYXZlLWFzIiBocmVmPSIjIiB0YWJpbmRleD0iMCI+Ci0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgPHNwYW4+e3sgXygnU2F2ZSBBcycpIH19PC9zcGFuPgotICAgICAg ICAgICAgICAgICAgICAgICAgPC9hPgotICAgICAgICAgICAgICAgICAgICA8L2xpPgotICAgICAg ICAgICAgICAgIDwvdWw+Ci0gICAgICAgICAgICA8L2Rpdj4KLSAgICAgICAgICAgIDxkaXYgY2xh c3M9ImJ0bi1ncm91cCBtci0xIiByb2xlPSJncm91cCIgYXJpYS1sYWJlbD0iIj4KLSAgICAgICAg ICAgICAgICA8YnV0dG9uIGlkPSJidG4tc2F2ZS1kYXRhIiB0eXBlPSJidXR0b24iIGNsYXNzPSJi dG4gYnRuLXNtIGJ0bi1wcmltYXJ5LWljb24iCi0gICAgICAgICAgICAgICAgICAgICAgICB0aXRs ZT0iIgotICAgICAgICAgICAgICAgICAgICAgICAgYWNjZXNza2V5PSIiCi0gICAgICAgICAgICAg ICAgICAgICAgICB0YWJpbmRleD0iMCIgZGlzYWJsZWQ+Ci0gICAgICAgICAgICAgICAgICAgIDxp IGNsYXNzPSJwZy1mb250LWljb24gaWNvbi1zYXZlX2RhdGFfY2hhbmdlcyBzcWwtaWNvbi1sZyIg YXJpYS1oaWRkZW49InRydWUiIHJvbGU9ImltZyI+PC9pPgotICAgICAgICAgICAgICAgIDwvYnV0 dG9uPgotICAgICAgICAgICAgPC9kaXY+Ci0gICAgICAgICAgICA8ZGl2IGNsYXNzPSJidG4tZ3Jv dXAgbXItMSIgcm9sZT0iZ3JvdXAiIGFyaWEtbGFiZWw9IiI+Ci0gICAgICAgICAgICAgICAgPGJ1 dHRvbiBpZD0iYnRuLWZpbmQiIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImJ0biBidG4tc20gYnRuLXBy aW1hcnktaWNvbiIgYXJpYS1sYWJlbD0ie3sgXygnRmluZCcpIH19IiB0aXRsZT0ie3sgXygnRmlu ZCAoQ3RybC9DbWQrRiknKSB9fSI+Ci0gICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPSJmYSBm YS1zZWFyY2ggc3FsLWljb24tbGciIGFyaWEtaGlkZGVuPSJ0cnVlIiB0YWJpbmRleD0iMCIgcm9s ZT0iaW1nIj48L2k+Ci0gICAgICAgICAgICAgICAgPC9idXR0b24+Ci0gICAgICAgICAgICAgICAg PGJ1dHRvbiBpZD0iYnRuLWZpbmQtbWVudS1kcm9wZG93biIgdHlwZT0iYnV0dG9uIiBjbGFzcz0i YnRuIGJ0bi1zbSBidG4tcHJpbWFyeS1pY29uIGRyb3Bkb3duLXRvZ2dsZSBkcm9wZG93bi10b2dn bGUtc3BsaXQiCi0gICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXRvZ2dsZT0iZHJvcGRvd24i IGFyaWEtaGFzcG9wdXA9InRydWUiIGFyaWEtZXhwYW5kZWQ9ImZhbHNlIgotICAgICAgICAgICAg ICAgICAgICAgICAgdGl0bGU9IiIKLSAgICAgICAgICAgICAgICAgICAgICAgIGFjY2Vzc2tleT0i IgotICAgICAgICAgICAgICAgICAgICAgICAgdGFiaW5kZXg9IjAiPgotICAgICAgICAgICAgICAg IDwvYnV0dG9uPgotICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZHJvcGRvd24tbWVudSI+Ci0g ICAgICAgICAgICAgICAgICAgIDxsaT4KLSAgICAgICAgICAgICAgICAgICAgICAgIDxhIGNsYXNz PSJkcm9wZG93bi1pdGVtIiBpZD0iYnRuLWZpbmQtbWVudS1maW5kIiBocmVmPSIjIiB0YWJpbmRl eD0iMCI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+IHt7IF8oJ0ZpbmQnKSB9 fXslIGlmIGNsaWVudF9wbGF0Zm9ybSA9PSAnbWFjb3MnIC0lfQotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAge3sgXygnIChDbWQrRiknKSB9fQotICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHslIGVsc2UgJX0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IF8o JyAoQ3RybCtGKScpIH19eyUtIGVuZGlmICV9PC9zcGFuPgotICAgICAgICAgICAgICAgICAgICAg ICAgPC9hPgotICAgICAgICAgICAgICAgICAgICA8L2xpPgotICAgICAgICAgICAgICAgICAgICA8 bGk+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz0iZHJvcGRvd24taXRlbSIgaWQ9 ImJ0bi1maW5kLW1lbnUtZmluZC1uZXh0IiBocmVmPSIjIiB0YWJpbmRleD0iMCI+Ci0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgPHNwYW4+IHt7IF8oJ0ZpbmQgTmV4dCcpIH19eyUgaWYgY2xp ZW50X3BsYXRmb3JtID09ICdtYWNvcycgLSV9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB7eyBfKCcgKENtZCtHKScpIH19Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgeyUg ZWxzZSAlfQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgXygnIChDdHJsK0cp JykgfX17JS0gZW5kaWYgJX08L3NwYW4+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8L2E+Ci0g ICAgICAgICAgICAgICAgICAgIDwvbGk+Ci0gICAgICAgICAgICAgICAgICAgIDxsaT4KLSAgICAg ICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPSJkcm9wZG93bi1pdGVtIiBpZD0iYnRuLWZpbmQt bWVudS1maW5kLXByZXZpb3VzIiBocmVmPSIjIiB0YWJpbmRleD0iMCI+Ci0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgPHNwYW4+IHt7IF8oJ0ZpbmQgUHJldmlvdXMnKSB9fXslIGlmIGNsaWVu dF9wbGF0Zm9ybSA9PSAnbWFjb3MnIC0lfQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAge3sgXygnIChDbWQrU2hpZnQrRyknKSB9fQotICAgICAgICAgICAgICAgICAgICAgICAgICAg IHslIGVsc2UgJX0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IF8oJyAoQ3Ry bCtTaGlmdCtHKScpIH19eyUtIGVuZGlmICV9PC9zcGFuPgotICAgICAgICAgICAgICAgICAgICAg ICAgPC9hPgotICAgICAgICAgICAgICAgICAgICA8L2xpPgotICAgICAgICAgICAgICAgICAgICA8 bGk+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz0iZHJvcGRvd24taXRlbSIgaWQ9 ImJ0bi1maW5kLW1lbnUtZmluZC1wZXJzaXN0ZW50IiBocmVmPSIjIiB0YWJpbmRleD0iMCI+Ci0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+e3sgXygnUGVyc2lzdGVudCBGaW5kJykg fX08L3NwYW4+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8L2E+Ci0gICAgICAgICAgICAgICAg ICAgIDwvbGk+Ci0gICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz0iZHJvcGRvd24tZGl2aWRl ciI+PC9saT4KLSAgICAgICAgICAgICAgICAgICAgPGxpPgotICAgICAgICAgICAgICAgICAgICAg ICAgPGEgY2xhc3M9ImRyb3Bkb3duLWl0ZW0iIGlkPSJidG4tZmluZC1tZW51LXJlcGxhY2UiIGhy ZWY9IiMiIHRhYmluZGV4PSIwIj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj4g e3sgXygnUmVwbGFjZScpIH19eyUgaWYgY2xpZW50X3BsYXRmb3JtID09ICdtYWNvcycgLSV9Ci0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBfKCcgKENtZCtPcHRpb24rRiknKSB9 fQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHslIGVsc2UgJX0KLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHt7IF8oJyAoQ3RybCtTaGlmdCtGKScpIH19eyUtIGVuZGlmICV9 PC9zcGFuPgotICAgICAgICAgICAgICAgICAgICAgICAgPC9hPgotICAgICAgICAgICAgICAgICAg ICA8L2xpPgotICAgICAgICAgICAgICAgICAgICA8bGk+Ci0gICAgICAgICAgICAgICAgICAgICAg ICA8YSBjbGFzcz0iZHJvcGRvd24taXRlbSIgaWQ9ImJ0bi1maW5kLW1lbnUtcmVwbGFjZS1hbGwi IGhyZWY9IiMiIHRhYmluZGV4PSIwIj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bh bj57eyBfKCdSZXBsYWNlIEFsbCcpIH19PC9zcGFuPgotICAgICAgICAgICAgICAgICAgICAgICAg PC9hPgotICAgICAgICAgICAgICAgICAgICA8L2xpPgotICAgICAgICAgICAgICAgICAgICA8bGkg Y2xhc3M9ImRyb3Bkb3duLWRpdmlkZXIiPjwvbGk+Ci0gICAgICAgICAgICAgICAgICAgIDxsaT4K LSAgICAgICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPSJkcm9wZG93bi1pdGVtIiBpZD0iYnRu LWZpbmQtbWVudS1qdW1wIiBocmVmPSIjIiB0YWJpbmRleD0iMCI+Ci0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgPHNwYW4+e3sgXygnSnVtcCAoQWx0K0cpJykgfX08L3NwYW4+Ci0gICAgICAg ICAgICAgICAgICAgICAgICA8L2E+Ci0gICAgICAgICAgICAgICAgICAgIDwvbGk+Ci0gICAgICAg ICAgICAgICAgPC91bD4KLSAgICAgICAgICAgIDwvZGl2PgotICAgICAgICAgICAgPGRpdiBjbGFz cz0iYnRuLWdyb3VwIG1yLTEiIHJvbGU9Imdyb3VwIiBhcmlhLWxhYmVsPSIiPgotICAgICAgICAg ICAgICAgIDxidXR0b24gaWQ9ImJ0bi1jb3B5LXJvdyIgdHlwZT0iYnV0dG9uIiBjbGFzcz0iYnRu IGJ0bi1zbSBidG4tcHJpbWFyeS1pY29uIgotICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU9 IiIKLSAgICAgICAgICAgICAgICAgICAgICAgIGFjY2Vzc2tleT0iIgotICAgICAgICAgICAgICAg ICAgICAgICAgdGFiaW5kZXg9IjAiIGRpc2FibGVkPgotICAgICAgICAgICAgICAgICAgICA8aSBj bGFzcz0iZmEgZmEtY29weSBzcWwtaWNvbi1sZyIgYXJpYS1oaWRkZW49InRydWUiIHJvbGU9Imlt ZyI+PC9pPgotICAgICAgICAgICAgICAgIDwvYnV0dG9uPgotICAgICAgICAgICAgICAgIDxidXR0 b24gaWQ9ImJ0bi1jb3B5LXJvdy1kcm9wZG93biIgdHlwZT0iYnV0dG9uIiBjbGFzcz0iYnRuIGJ0 bi1zbSBidG4tcHJpbWFyeS1pY29uIGRyb3Bkb3duLXRvZ2dsZSBkcm9wZG93bi10b2dnbGUtc3Bs aXQiCi0gICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXRvZ2dsZT0iZHJvcGRvd24iIGFyaWEt aGFzcG9wdXA9InRydWUiIGFyaWEtZXhwYW5kZWQ9ImZhbHNlIgotICAgICAgICAgICAgICAgICAg ICAgICAgdGFiaW5kZXg9IjAiIGFyaWEtbGFiZWw9ImNvcHkgcm93Ij4KLSAgICAgICAgICAgICAg ICA8L2J1dHRvbj4KLSAgICAgICAgICAgICAgICA8dWwgY2xhc3M9ImRyb3Bkb3duLW1lbnUiPgot ICAgICAgICAgICAgICAgICAgICA8bGk+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8YSBjbGFz cz0iZHJvcGRvd24taXRlbSIgaWQ9ImJ0bi1jb3B5LXdpdGgtaGVhZGVyIiBocmVmPSIjIiB0YWJp bmRleD0iMCI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9ImNvcHktd2l0 aC1oZWFkZXIgZmEgZmEtY2hlY2sgdmlzaWJpbGl0eS1oaWRkZW4iIGFyaWEtaGlkZGVuPSJ0cnVl IiByb2xlPSJpbWciPjwvaT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj4ge3sg XygnQ29weSB3aXRoIGhlYWRlcnMnKSB9fSA8L3NwYW4+Ci0gICAgICAgICAgICAgICAgICAgICAg ICA8L2E+Ci0gICAgICAgICAgICAgICAgICAgIDwvbGk+Ci0gICAgICAgICAgICAgICAgPC91bD4K LSAgICAgICAgICAgICAgICA8YnV0dG9uIGlkPSJidG4tcGFzdGUtcm93IiB0eXBlPSJidXR0b24i IGNsYXNzPSJidG4gYnRuLXNtIGJ0bi1wcmltYXJ5LWljb24iCi0gICAgICAgICAgICAgICAgICAg ICAgICB0aXRsZT0iIgotICAgICAgICAgICAgICAgICAgICAgICAgYWNjZXNza2V5PSIiCi0gICAg ICAgICAgICAgICAgICAgICAgICB0YWJpbmRleD0iMCIgZGlzYWJsZWQ+Ci0gICAgICAgICAgICAg ICAgICAgIDxpIGNsYXNzPSJmYSBmYS1wYXN0ZSBzcWwtaWNvbi1sZyIgYXJpYS1oaWRkZW49InRy dWUiIHJvbGU9ImltZyI+PC9pPgotICAgICAgICAgICAgICAgIDwvYnV0dG9uPgotICAgICAgICAg ICAgPC9kaXY+Ci0gICAgICAgICAgICA8ZGl2IGNsYXNzPSJidG4tZ3JvdXAgbXItMSIgcm9sZT0i Z3JvdXAiIGFyaWEtbGFiZWw9IiI+Ci0gICAgICAgICAgICAgICAgPGJ1dHRvbiBpZD0iYnRuLWRl bGV0ZS1yb3ciIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImJ0biBidG4tc20gYnRuLXByaW1hcnktaWNv biIKLSAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlPSIiCi0gICAgICAgICAgICAgICAgICAg ICAgICBhY2Nlc3NrZXk9IiIKLSAgICAgICAgICAgICAgICAgICAgICAgIHRhYmluZGV4PSIwIiBk aXNhYmxlZD4KLSAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9ImZhIGZhLXRyYXNoLWFsdCBz cWwtaWNvbi1sZyIgYXJpYS1oaWRkZW49InRydWUiIHJvbGU9ImltZyI+PC9pPgotICAgICAgICAg ICAgICAgIDwvYnV0dG9uPgotICAgICAgICAgICAgPC9kaXY+Ci0gICAgICAgICAgICA8ZGl2IGNs YXNzPSJidG4tZ3JvdXAgbXItMSIgcm9sZT0iZ3JvdXAiIGFyaWEtbGFiZWw9IiI+Ci0gICAgICAg ICAgICAgICAgPGJ1dHRvbiBpZD0iYnRuLWVkaXQtZHJvcGRvd24iIHR5cGU9ImJ1dHRvbiIgY2xh c3M9ImJ0biBidG4tc20gYnRuLXByaW1hcnktaWNvbiBkcm9wZG93bi10b2dnbGUiCi0gICAgICAg ICAgICAgICAgICAgICAgICBkYXRhLXRvZ2dsZT0iZHJvcGRvd24iIGFyaWEtaGFzcG9wdXA9InRy dWUiIGFyaWEtZXhwYW5kZWQ9ImZhbHNlIgotICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1s YWJlbD0ie3sgXygnRWRpdCcpIH19IiB0aXRsZT0ie3sgXygnRWRpdCcpIH19IiB0YWJpbmRleD0i MCI+Ci0gICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPSJmYSBmYS1lZGl0IHNxbC1pY29uLWxn IiBhcmlhLWhpZGRlbj0idHJ1ZSIgcm9sZT0iaW1nIj48L2k+Ci0gICAgICAgICAgICAgICAgPC9i dXR0b24+Ci0gICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJkcm9wZG93bi1tZW51Ij4KLSAgICAg ICAgICAgICAgICAgICAgPGxpPgotICAgICAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9ImRy b3Bkb3duLWl0ZW0iIGlkPSJidG4taW5kZW50LWNvZGUiIGhyZWY9IiMiIHRhYmluZGV4PSIwIj4K LSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj4ge3sgXygnSW5kZW50IFNlbGVjdGlv biAoVGFiKScpIH19IDwvc3Bhbj4KLSAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4KLSAgICAg ICAgICAgICAgICAgICAgPC9saT4KLSAgICAgICAgICAgICAgICAgICAgPGxpPgotICAgICAgICAg ICAgICAgICAgICAgICAgPGEgY2xhc3M9ImRyb3Bkb3duLWl0ZW0iIGlkPSJidG4tdW5pbmRlbnQt Y29kZSIgaHJlZj0iIyIgdGFiaW5kZXg9IjAiPgotICAgICAgICAgICAgICAgICAgICAgICAgICAg IDxzcGFuPiB7eyBfKCdVbmluZGVudCBTZWxlY3Rpb24gKFNoaWZ0K1RhYiknKSB9fSA8L3NwYW4+ Ci0gICAgICAgICAgICAgICAgICAgICAgICA8L2E+Ci0gICAgICAgICAgICAgICAgICAgIDwvbGk+ Ci0gICAgICAgICAgICAgICAgICAgIDxsaT4KLSAgICAgICAgICAgICAgICAgICAgICAgIDxhIGNs YXNzPSJkcm9wZG93bi1pdGVtIiBpZD0iYnRuLWNvbW1lbnQtbGluZSIgaHJlZj0iIyIgdGFiaW5k ZXg9IjAiPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPiB7eyBfKCdJbmxpbmUg Q29tbWVudCBTZWxlY3Rpb24nKSB9fXslIGlmIGNsaWVudF9wbGF0Zm9ybSA9PSAnbWFjb3MnIC0l fQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgXygnIChDbWQrLyknKSB9fQot ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHslIGVsc2UgJX0KLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHt7IF8oJyAoQ3RybCsvKScpIH19eyUtIGVuZGlmICV9PC9zcGFuPgot ICAgICAgICAgICAgICAgICAgICAgICAgPC9hPgotICAgICAgICAgICAgICAgICAgICA8L2xpPgot ICAgICAgICAgICAgICAgICAgICA8bGk+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8YSBjbGFz cz0iZHJvcGRvd24taXRlbSIgaWQ9ImJ0bi11bmNvbW1lbnQtbGluZSIgaHJlZj0iIyIgdGFiaW5k ZXg9IjAiPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPiB7eyBfKCdJbmxpbmUg VW5jb21tZW50IFNlbGVjdGlvbicpIH19eyUgaWYgY2xpZW50X3BsYXRmb3JtID09ICdtYWNvcycg LSV9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBfKCcgKENtZCsuKScpIH19 Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgeyUgZWxzZSAlfQotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAge3sgXygnIChDdHJsKy4pJykgfX17JS0gZW5kaWYgJX08L3NwYW4+ Ci0gICAgICAgICAgICAgICAgICAgICAgICA8L2E+Ci0gICAgICAgICAgICAgICAgICAgIDwvbGk+ Ci0gICAgICAgICAgICAgICAgICAgIDxsaT4KLSAgICAgICAgICAgICAgICAgICAgICAgIDxhIGNs YXNzPSJkcm9wZG93bi1pdGVtIiBpZD0iYnRuLXRvZ2dsZS1jb21tZW50LWJsb2NrIiBocmVmPSIj IiB0YWJpbmRleD0iMCI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+IHt7IF8o J0Jsb2NrIENvbW1lbnQvVW5jb21tZW50IFNlbGVjdGlvbicpIH19eyUgaWYgY2xpZW50X3BsYXRm b3JtID09ICdtYWNvcycgLSV9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBf KCcgKFNoaWZ0K0NtZCsvKScpIH19Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgeyUgZWxz ZSAlfQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgXygnIChTaGlmdCtDdHJs Ky8pJykgfX17JS0gZW5kaWYgJX08L3NwYW4+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8L2E+ Ci0gICAgICAgICAgICAgICAgICAgIDwvbGk+Ci0gICAgICAgICAgICAgICAgICAgIDxsaSBjbGFz cz0iZHJvcGRvd24tZGl2aWRlciI+PC9saT4KLSAgICAgICAgICAgICAgICAgICAgPGxpPgotICAg ICAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9ImRyb3Bkb3duLWl0ZW0iIGlkPSJidG4tZm9y bWF0LXNxbCIgaHJlZj0iIyIgdGFiaW5kZXg9IjAiPgotICAgICAgICAgICAgICAgICAgICAgICAg ICAgIDxzcGFuPnt7IF8oJ0Zvcm1hdCBTUUwnKSB9fXslIGlmIGNsaWVudF9wbGF0Zm9ybSA9PSAn bWFjb3MnIC0lfQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgXygnIChTaGlm dCtDbWQrSyknKSB9fQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHslIGVsc2UgJX0KLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IF8oJyAoU2hpZnQrQ3RybCtLKScpIH19 eyUtIGVuZGlmICV9PC9zcGFuPgotICAgICAgICAgICAgICAgICAgICAgICAgPC9hPgotICAgICAg ICAgICAgICAgICAgICA8L2xpPgotICAgICAgICAgICAgICAgIDwvdWw+Ci0gICAgICAgICAgICA8 L2Rpdj4KLSAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJ0bi1ncm91cCBtci0xIiByb2xlPSJncm91 cCIgYXJpYS1sYWJlbD0iIj4KLSAgICAgICAgICAgICAgICA8YnV0dG9uIGlkPSJidG4tZmlsdGVy IiB0eXBlPSJidXR0b24iIGNsYXNzPSJidG4gYnRuLXNlY29uZGFyeSIKLSAgICAgICAgICAgICAg ICAgICAgICAgIHRpdGxlPSIiCi0gICAgICAgICAgICAgICAgICAgICAgICBhY2Nlc3NrZXk9IiIK LSAgICAgICAgICAgICAgICAgICAgICAgIHRhYmluZGV4PSIwIiBkaXNhYmxlZD4KLSAgICAgICAg ICAgICAgICAgICAgPGkgY2xhc3M9ImZhIGZhLWZpbHRlciBzcWwtaWNvbi1sZyIgYXJpYS1oaWRk ZW49InRydWUiIHJvbGU9ImltZyI+PC9pPgotICAgICAgICAgICAgICAgIDwvYnV0dG9uPgotICAg ICAgICAgICAgICAgIDxidXR0b24gaWQ9ImJ0bi1maWx0ZXItZHJvcGRvd24iIHR5cGU9ImJ1dHRv biIgY2xhc3M9ImJ0biBidG4tc20gYnRuLXNlY29uZGFyeSBkcm9wZG93bi10b2dnbGUgZHJvcGRv d24tdG9nZ2xlLXNwbGl0IgotICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS10b2dnbGU9ImRy b3Bkb3duIiBhcmlhLWhhc3BvcHVwPSJ0cnVlIiBhcmlhLWV4cGFuZGVkPSJmYWxzZSIKLSAgICAg ICAgICAgICAgICAgICAgICAgIHRpdGxlPSIiCi0gICAgICAgICAgICAgICAgICAgICAgICBhY2Nl c3NrZXk9IiIKLSAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkIHRhYmluZGV4PSIwIj4K LSAgICAgICAgICAgICAgICA8L2J1dHRvbj4KLSAgICAgICAgICAgICAgICA8dWwgY2xhc3M9ImRy b3Bkb3duLW1lbnUgZHJvcGRvd24tbWVudS1yaWdodCI+Ci0gICAgICAgICAgICAgICAgICAgIDxs aT4KLSAgICAgICAgICAgICAgICAgICAgICAgIDxhIGlkPSJidG4tZmlsdGVyLW1lbnUiIGNsYXNz PSJkcm9wZG93bi1pdGVtIiBocmVmPSIjIiB0YWJpbmRleD0iMCI+e3sgXygnU29ydC9GaWx0ZXIn KSB9fTwvYT4KLSAgICAgICAgICAgICAgICAgICAgPC9saT4KLSAgICAgICAgICAgICAgICAgICAg PGxpPgotICAgICAgICAgICAgICAgICAgICAgICAgPGEgaWQ9ImJ0bi1pbmNsdWRlLWZpbHRlciIg Y2xhc3M9ImRyb3Bkb3duLWl0ZW0iIGhyZWY9IiMiIHRhYmluZGV4PSIwIj57eyBfKCdGaWx0ZXIg YnkgU2VsZWN0aW9uJykgfX08L2E+Ci0gICAgICAgICAgICAgICAgICAgIDwvbGk+Ci0gICAgICAg ICAgICAgICAgICAgIDxsaT4KLSAgICAgICAgICAgICAgICAgICAgICAgIDxhIGlkPSJidG4tZXhj bHVkZS1maWx0ZXIiIGNsYXNzPSJkcm9wZG93bi1pdGVtIiBocmVmPSIjIiB0YWJpbmRleD0iMCI+ e3sgXygnRXhjbHVkZSBieSBTZWxlY3Rpb24nKSB9fTwvYT4KLSAgICAgICAgICAgICAgICAgICAg PC9saT4KLSAgICAgICAgICAgICAgICAgICAgPGxpPgotICAgICAgICAgICAgICAgICAgICAgICAg PGEgaWQ9ImJ0bi1yZW1vdmUtZmlsdGVyIiBjbGFzcz0iZHJvcGRvd24taXRlbSIgaHJlZj0iIyIg dGFiaW5kZXg9IjAiPnt7IF8oJ1JlbW92ZSBTb3J0L0ZpbHRlcicpIH19PC9hPgotICAgICAgICAg ICAgICAgICAgICA8L2xpPgotICAgICAgICAgICAgICAgIDwvdWw+Ci0gICAgICAgICAgICA8L2Rp dj4KLSAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJ0bi1ncm91cCBtci0xIiByb2xlPSJncm91cCIg YXJpYS1sYWJlbD0iIj4KLSAgICAgICAgICAgICAgICA8c2VsZWN0IGlkPSJidG4tcm93cy1saW1p dCIgY2xhc3M9ImxpbWl0IGZvcm0tY29udHJvbCBmb3JtLWNvbnRyb2wtc20iIGRpc2FibGVkCi0g ICAgICAgICAgICAgICAgICAgICAgICB0aXRsZT0iIgotICAgICAgICAgICAgICAgICAgICAgICAg YWNjZXNza2V5PSIiCi0gICAgICAgICAgICAgICAgICAgICAgICB0YWJpbmRleD0iMCI+Ci0gICAg ICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9Ii0xIj57eyBfKCdObyBsaW1pdCcpIH19PC9v cHRpb24+Ci0gICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IjEwMDAiPnt7IF8oJzEw MDAgcm93cycpIH19PC9vcHRpb24+Ci0gICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9 IjUwMCI+e3sgXygnNTAwIHJvd3MnKSB9fTwvb3B0aW9uPgotICAgICAgICAgICAgICAgICAgICA8 b3B0aW9uIHZhbHVlPSIxMDAiPnt7IF8oJzEwMCByb3dzJykgfX08L29wdGlvbj4KLSAgICAgICAg ICAgICAgICA8L3NlbGVjdD4KLSAgICAgICAgICAgIDwvZGl2PgotCi0gICAgICAgICAgICA8ZGl2 IGNsYXNzPSJidG4tZ3JvdXAgbXItMSIgcm9sZT0iZ3JvdXAiIGFyaWEtbGFiZWw9IiI+Ci0gICAg ICAgICAgICAgICAgPGJ1dHRvbiBpZD0iYnRuLWNhbmNlbC1xdWVyeSIgdHlwZT0iYnV0dG9uIiBj bGFzcz0iYnRuIGJ0bi1zbSBidG4tcHJpbWFyeS1pY29uIgotICAgICAgICAgICAgICAgICAgICAg ICAgdGl0bGU9IiIKLSAgICAgICAgICAgICAgICAgICAgICAgIGFjY2Vzc2tleT0iIgotICAgICAg ICAgICAgICAgICAgICAgICAgdGFiaW5kZXg9IjAiIGRpc2FibGVkID4KLSAgICAgICAgICAgICAg ICAgICAgPGkgY2xhc3M9ImZhIGZhLXN0b3Agc3FsLWljb24tbGciIGFyaWEtaGlkZGVuPSJ0cnVl IiByb2xlPSJpbWciPjwvaT4KLSAgICAgICAgICAgICAgICA8L2J1dHRvbj4KLSAgICAgICAgICAg ICAgICA8YnV0dG9uIGlkPSJidG4tZmxhc2giIGRhdGEtdGVzdC1zZWxlY3Rvcj0iZXhlY3V0ZS1y ZWZyZXNoLWJ1dHRvbiIgdHlwZT0iYnV0dG9uIiBjbGFzcz0iYnRuIGJ0bi1zbSBidG4tcHJpbWFy eS1pY29uIiBzdHlsZT0id2lkdGg6IDMycHg7IgotICAgICAgICAgICAgICAgICAgICAgICAgdGl0 bGU9IiIKLSAgICAgICAgICAgICAgICAgICAgICAgIHRhYmluZGV4PSIwIiBkYXRhLWNsaWNrLWNv dW50ZXI9IjAiIGRpc2FibGVkPgotICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz0iZmEgZmEt cGxheSBzcWwtaWNvbi1sZyIgYXJpYS1oaWRkZW49InRydWUiIHJvbGU9ImltZyI+PC9pPgotICAg ICAgICAgICAgICAgIDwvYnV0dG9uPgotICAgICAgICAgICAgICAgIDxidXR0b24gaWQ9ImJ0bi1x dWVyeS1kcm9wZG93biIgdHlwZT0iYnV0dG9uIiBjbGFzcz0iYnRuIGJ0bi1zbSBidG4tcHJpbWFy eS1pY29uIGRyb3Bkb3duLXRvZ2dsZSBkcm9wZG93bi10b2dnbGUtc3BsaXQiCi0gICAgICAgICAg ICAgICAgICAgICAgICBkYXRhLXRvZ2dsZT0iZHJvcGRvd24iIGFyaWEtaGFzcG9wdXA9InRydWUi IGFyaWEtZXhwYW5kZWQ9ImZhbHNlIgotICAgICAgICAgICAgICAgICAgICAgICAgYWNjZXNza2V5 PSIiCi0gICAgICAgICAgICAgICAgICAgICAgICB0aXRsZT0iIgotICAgICAgICAgICAgICAgICAg ICAgICAgdGFiaW5kZXg9IjAiPgotICAgICAgICAgICAgICAgIDwvYnV0dG9uPgotICAgICAgICAg ICAgICAgIDx1bCBjbGFzcz0iZHJvcGRvd24tbWVudSI+Ci0gICAgICAgICAgICAgICAgICAgIDxs aT4KLSAgICAgICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPSJkcm9wZG93bi1pdGVtIiBpZD0i YnRuLWF1dG8tY29tbWl0IiBocmVmPSIjIiB0YWJpbmRleD0iMCI+Ci0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgPGkgY2xhc3M9ImF1dG8tY29tbWl0IGZhIGZhLWNoZWNrIHZpc2liaWxpdHkt aGlkZGVuIiBhcmlhLWhpZGRlbj0idHJ1ZSIgcm9sZT0iaW1nIj48L2k+Ci0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgPHNwYW4+IHt7IF8oJ0F1dG8gY29tbWl0PycpIH19IDwvc3Bhbj4KLSAg ICAgICAgICAgICAgICAgICAgICAgIDwvYT4KLSAgICAgICAgICAgICAgICAgICAgPC9saT4KLSAg ICAgICAgICAgICAgICAgICAgPGxpPgotICAgICAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9 ImRyb3Bkb3duLWl0ZW0iIGlkPSJidG4tYXV0by1yb2xsYmFjayIgaHJlZj0iIyIgdGFiaW5kZXg9 IjAiPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPSJhdXRvLXJvbGxiYWNr IGZhIGZhLWNoZWNrIHZpc2liaWxpdHktaGlkZGVuIiBhcmlhLWhpZGRlbj0idHJ1ZSIgcm9sZT0i aW1nIj48L2k+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+IHt7IF8oJ0F1dG8g cm9sbGJhY2sgb24gZXJyb3I/JykgfX0gPC9zcGFuPgotICAgICAgICAgICAgICAgICAgICAgICAg PC9hPgotICAgICAgICAgICAgICAgICAgICA8L2xpPgotICAgICAgICAgICAgICAgIDwvdWw+Ci0g ICAgICAgICAgICA8L2Rpdj4KLSAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJ0bi1ncm91cCBtci0x IiByb2xlPSJncm91cCIgYXJpYS1sYWJlbD0iIj4KLSAgICAgICAgICAgICAgICA8YnV0dG9uIGlk PSJidG4tZXhwbGFpbiIgdHlwZT0iYnV0dG9uIiBjbGFzcz0iYnRuIGJ0bi1zbSBidG4tcHJpbWFy eS1pY29uIgotICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU9IiIKLSAgICAgICAgICAgICAg ICAgICAgICAgIGFjY2Vzc2tleT0iIgotICAgICAgICAgICAgICAgICAgICAgICAgdGFiaW5kZXg9 IjAiIGRpc2FibGVkPgotICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz0iZmEgZmEtaGFuZC1w b2ludGVyIHNxbC1pY29uLWxnIiBhcmlhLWhpZGRlbj0idHJ1ZSIgcm9sZT0iaW1nIj48L2k+Ci0g ICAgICAgICAgICAgICAgPC9idXR0b24+Ci0gICAgICAgICAgICAgICAgPGJ1dHRvbiBpZD0iYnRu LWV4cGxhaW4tYW5hbHl6ZSIgdHlwZT0iYnV0dG9uIiBjbGFzcz0iYnRuIGJ0bi1zbSBidG4tcHJp bWFyeS1pY29uIgotICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU9IiIKLSAgICAgICAgICAg ICAgICAgICAgICAgIGFjY2Vzc2tleT0iIiBkaXNhYmxlZD4KLSAgICAgICAgICAgICAgICAgICAg PGkgY2xhc3M9ImZhIGZhLWxpc3QtYWx0IHNxbC1pY29uLWxnIiBhcmlhLWhpZGRlbj0idHJ1ZSIg cm9sZT0iaW1nIj48L2k+Ci0gICAgICAgICAgICAgICAgPC9idXR0b24+Ci0gICAgICAgICAgICAg ICAgPGJ1dHRvbiBpZD0iYnRuLWV4cGxhaW4tb3B0aW9ucy1kcm9wZG93biIgdHlwZT0iYnV0dG9u IiBjbGFzcz0iYnRuIGJ0bi1zbSBidG4tcHJpbWFyeS1pY29uIGRyb3Bkb3duLXRvZ2dsZSBkcm9w ZG93bi10b2dnbGUtc3BsaXQiCi0gICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXRvZ2dsZT0i ZHJvcGRvd24iIGFyaWEtaGFzcG9wdXA9InRydWUiIGFyaWEtZXhwYW5kZWQ9ImZhbHNlIgotICAg ICAgICAgICAgICAgICAgICAgICAgdGFiaW5kZXg9IjAiIGFyaWEtbGFiZWw9ImV4cGxhaW4iPgot ICAgICAgICAgICAgICAgIDwvYnV0dG9uPgotICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZHJv cGRvd24tbWVudSI+Ci0gICAgICAgICAgICAgICAgICAgIDxsaT4KLSAgICAgICAgICAgICAgICAg ICAgICAgIDxhIGNsYXNzPSJkcm9wZG93bi1pdGVtIiBpZD0iYnRuLWV4cGxhaW4tdmVyYm9zZSIg aHJlZj0iIyIgdGFiaW5kZXg9IjAiPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNs YXNzPSJleHBsYWluLXZlcmJvc2UgZmEgZmEtY2hlY2sgdmlzaWJpbGl0eS1oaWRkZW4iIGFyaWEt aGlkZGVuPSJ0cnVlIiByb2xlPSJpbWciPjwvaT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICA8c3Bhbj4ge3sgXygnVmVyYm9zZScpIH19IDwvc3Bhbj4KLSAgICAgICAgICAgICAgICAgICAg ICAgIDwvYT4KLSAgICAgICAgICAgICAgICAgICAgPC9saT4KLSAgICAgICAgICAgICAgICAgICAg PGxpPgotICAgICAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9ImRyb3Bkb3duLWl0ZW0iIGlk PSJidG4tZXhwbGFpbi1jb3N0cyIgaHJlZj0iIyIgdGFiaW5kZXg9IjAiPgotICAgICAgICAgICAg ICAgICAgICAgICAgICAgIDxpIGNsYXNzPSJleHBsYWluLWNvc3RzIGZhIGZhLWNoZWNrIHZpc2li aWxpdHktaGlkZGVuIiBhcmlhLWhpZGRlbj0idHJ1ZSIgcm9sZT0iaW1nIj48L2k+Ci0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgPHNwYW4+IHt7IF8oJ0Nvc3RzJykgfX0gPC9zcGFuPgotICAg ICAgICAgICAgICAgICAgICAgICAgPC9hPgotICAgICAgICAgICAgICAgICAgICA8L2xpPgotICAg ICAgICAgICAgICAgICAgICA8bGk+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz0i ZHJvcGRvd24taXRlbSIgaWQ9ImJ0bi1leHBsYWluLWJ1ZmZlcnMiIGhyZWY9IiMiIHRhYmluZGV4 PSIwIj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz0iZXhwbGFpbi1idWZm ZXJzIGZhIGZhLWNoZWNrIHZpc2liaWxpdHktaGlkZGVuIiBhcmlhLWhpZGRlbj0idHJ1ZSIgcm9s ZT0iaW1nIj48L2k+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+IHt7IF8oJ0J1 ZmZlcnMnKSB9fSA8L3NwYW4+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8L2E+Ci0gICAgICAg ICAgICAgICAgICAgIDwvbGk+Ci0gICAgICAgICAgICAgICAgICAgIDxsaT4KLSAgICAgICAgICAg ICAgICAgICAgICAgIDxhIGNsYXNzPSJkcm9wZG93bi1pdGVtIiBpZD0iYnRuLWV4cGxhaW4tdGlt aW5nIiBocmVmPSIjIiB0YWJpbmRleD0iMCI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAg PGkgY2xhc3M9ImV4cGxhaW4tdGltaW5nIGZhIGZhLWNoZWNrIHZpc2liaWxpdHktaGlkZGVuIiBh cmlhLWhpZGRlbj0idHJ1ZSIgcm9sZT0iaW1nIj48L2k+Ci0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgPHNwYW4+IHt7IF8oJ1RpbWluZycpIH19IDwvc3Bhbj4KLSAgICAgICAgICAgICAgICAg ICAgICAgIDwvYT4KLSAgICAgICAgICAgICAgICAgICAgPC9saT4KLSAgICAgICAgICAgICAgICAg ICAgPGxpIGRhdGEtbWluLXZlcj0iMTAwMDAwIj4KLSAgICAgICAgICAgICAgICAgICAgICAgIDxh IGNsYXNzPSJkcm9wZG93bi1pdGVtIiBpZD0iYnRuLWV4cGxhaW4tc3VtbWFyeSIgaHJlZj0iIyIg dGFiaW5kZXg9IjAiPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPSJleHBs YWluLXN1bW1hcnkgZmEgZmEtY2hlY2sgdmlzaWJpbGl0eS1oaWRkZW4iIGFyaWEtaGlkZGVuPSJ0 cnVlIiByb2xlPSJpbWciPjwvaT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj4g e3sgXygnU3VtbWFyeScpIH19IDwvc3Bhbj4KLSAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4K LSAgICAgICAgICAgICAgICAgICAgPC9saT4KLSAgICAgICAgICAgICAgICAgICAgPGxpIGRhdGEt bWluLXZlcj0iMTIwMDAwIj4KLSAgICAgICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPSJkcm9w ZG93bi1pdGVtIiBpZD0iYnRuLWV4cGxhaW4tc2V0dGluZ3MiIGhyZWY9IiMiIHRhYmluZGV4PSIw Ij4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz0iZXhwbGFpbi1zZXR0aW5n cyBmYSBmYS1jaGVjayB2aXNpYmlsaXR5LWhpZGRlbiIgYXJpYS1oaWRkZW49InRydWUiIHJvbGU9 ImltZyI+PC9pPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPiB7eyBfKCdTZXR0 aW5ncycpIH19IDwvc3Bhbj4KLSAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4KLSAgICAgICAg ICAgICAgICAgICAgPC9saT4KLSAgICAgICAgICAgICAgICA8L3VsPgotICAgICAgICAgICAgPC9k aXY+Ci0gICAgICAgICAgICA8ZGl2IGNsYXNzPSJidG4tZ3JvdXAgbXItMSIgcm9sZT0iZ3JvdXAi IGFyaWEtbGFiZWw9IiI+Ci0gICAgICAgICAgICAgICAgPGJ1dHRvbiBpZD0iYnRuLWNvbW1pdCIg dHlwZT0iYnV0dG9uIiBjbGFzcz0iYnRuIGJ0bi1zbSBidG4tcHJpbWFyeS1pY29uIgotICAgICAg ICAgICAgICAgICAgICAgICAgdGl0bGU9IiIKLSAgICAgICAgICAgICAgICAgICAgICAgIGFjY2Vz c2tleT0iIgotICAgICAgICAgICAgICAgICAgICAgICAgdGFiaW5kZXg9IjAiIGRpc2FibGVkPgot ICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz0icGctZm9udC1pY29uIGljb24tY29tbWl0IHNx bC1pY29uLWxnIiBhcmlhLWhpZGRlbj0idHJ1ZSIgcm9sZT0iaW1nIj48L2k+Ci0gICAgICAgICAg ICAgICAgPC9idXR0b24+Ci0gICAgICAgICAgICAgICAgPGJ1dHRvbiBpZD0iYnRuLXJvbGxiYWNr IiB0eXBlPSJidXR0b24iIGNsYXNzPSJidG4gYnRuLXNtIGJ0bi1wcmltYXJ5LWljb24iCi0gICAg ICAgICAgICAgICAgICAgICAgICB0aXRsZT0iIgotICAgICAgICAgICAgICAgICAgICAgICAgdGFi aW5kZXg9IjAiIGRpc2FibGVkPgotICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz0icGctZm9u dC1pY29uIGljb24tcm9sbGJhY2sgc3FsLWljb24tbGciIGFyaWEtaGlkZGVuPSJ0cnVlIiByb2xl PSJpbWciPjwvaT4KLSAgICAgICAgICAgICAgICA8L2J1dHRvbj4KLSAgICAgICAgICAgIDwvZGl2 PgotICAgICAgICAgICAgPGRpdiBjbGFzcz0iYnRuLWdyb3VwIG1yLTEiIHJvbGU9Imdyb3VwIiBh cmlhLWxhYmVsPSIiPgotICAgICAgICAgICAgICAgIDxidXR0b24gaWQ9ImJ0bi1jbGVhci1kcm9w ZG93biIgdHlwZT0iYnV0dG9uIiBjbGFzcz0iYnRuIGJ0bi1zbSBidG4tcHJpbWFyeS1pY29uIGRy b3Bkb3duLXRvZ2dsZSIKLSAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtdG9nZ2xlPSJkcm9w ZG93biIgYXJpYS1oYXNwb3B1cD0idHJ1ZSIgYXJpYS1leHBhbmRlZD0iZmFsc2UiCi0gICAgICAg ICAgICAgICAgICAgICAgICB0aXRsZT0iIgotICAgICAgICAgICAgICAgICAgICAgICAgYWNjZXNz a2V5PSIiCi0gICAgICAgICAgICAgICAgICAgICAgICB0YWJpbmRleD0iMCI+Ci0gICAgICAgICAg ICAgICAgICAgIDxpIGNsYXNzPSJmYSBmYS1lcmFzZXIgc3FsLWljb24tbGciIGFyaWEtaGlkZGVu PSJ0cnVlIiByb2xlPSJpbWciPjwvaT4KLSAgICAgICAgICAgICAgICA8L2J1dHRvbj4KLSAgICAg ICAgICAgICAgICA8dWwgY2xhc3M9ImRyb3Bkb3duLW1lbnUiPgotICAgICAgICAgICAgICAgICAg ICA8bGk+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz0iZHJvcGRvd24taXRlbSIg aWQ9ImJ0bi1jbGVhciIgaHJlZj0iIyIgdGFiaW5kZXg9IjAiPgotICAgICAgICAgICAgICAgICAg ICAgICAgICAgIDxzcGFuPiB7eyBfKCdDbGVhciBRdWVyeSBXaW5kb3cnKSB9fSA8L3NwYW4+Ci0g ICAgICAgICAgICAgICAgICAgICAgICA8L2E+Ci0gICAgICAgICAgICAgICAgICAgIDwvbGk+Ci0g ICAgICAgICAgICAgICAgICAgIDxsaT4KLSAgICAgICAgICAgICAgICAgICAgICAgIDxhIGNsYXNz PSJkcm9wZG93bi1pdGVtIiBpZD0iYnRuLWNsZWFyLWhpc3RvcnkiIGhyZWY9IiMiIHRhYmluZGV4 PSIwIj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj4ge3sgXygnQ2xlYXIgSGlz dG9yeScpIH19IDwvc3Bhbj4KLSAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4KLSAgICAgICAg ICAgICAgICAgICAgPC9saT4KLSAgICAgICAgICAgICAgICA8L3VsPgotICAgICAgICAgICAgPC9k aXY+Ci0gICAgICAgICAgICA8ZGl2IGNsYXNzPSJidG4tZ3JvdXAiIHJvbGU9Imdyb3VwIiBhcmlh LWxhYmVsPSIiPgotICAgICAgICAgICAgICAgIDxidXR0b24gaWQ9ImJ0bi1zYXZlLXJlc3VsdHMt dG8tZmlsZSIgdHlwZT0iYnV0dG9uIiBjbGFzcz0iYnRuIGJ0bi1zbSBidG4tcHJpbWFyeS1pY29u IgotICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU9IiIKLSAgICAgICAgICAgICAgICAgICAg ICAgIHRhYmluZGV4PSIwIiBkaXNhYmxlZD4KLSAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9 ImZhIGZhLWRvd25sb2FkIHNxbC1pY29uLWxnIiBhcmlhLWhpZGRlbj0idHJ1ZSIgcm9sZT0iaW1n Ij48L2k+Ci0gICAgICAgICAgICAgICAgPC9idXR0b24+Ci0gICAgICAgICAgICA8L2Rpdj4KLSAg ICAgICAgICAgIDxkaXYgY2xhc3M9ImJ0bi1ncm91cCBtci0xIHVzZXJfbWFjcm9zIiByb2xlPSJn cm91cCIgYXJpYS1sYWJlbD0iIj4KLSAgICAgICAgICAgICAgICA8YnV0dG9uIGlkPSJidG4tbWFj cm8tZHJvcGRvd24iIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImJ0biBidG4tc20gYnRuLXByaW1hcnkt aWNvbiBkcm9wZG93bi10b2dnbGUiCi0gICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXRvZ2ds ZT0iZHJvcGRvd24iIGFyaWEtaGFzcG9wdXA9InRydWUiIGFyaWEtZXhwYW5kZWQ9ImZhbHNlIgot ICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD0ie3sgXygnTWFjcm9zJykgfX0iIHRp dGxlPSJ7eyBfKCdNYWNyb3MnKSB9fSIgdGFiaW5kZXg9IjAiPgotICAgICAgICAgICAgICAgICAg ICA8aSBjbGFzcz0iZmEgZmEtc2Nyb2xsIHNxbC1pY29uLWxnIiBhcmlhLWhpZGRlbj0idHJ1ZSIg cm9sZT0iaW1nIj48L2k+Ci0gICAgICAgICAgICAgICAgPC9idXR0b24+Ci0gICAgICAgICAgICAg ICAgPHVsIGNsYXNzPSJkcm9wZG93bi1tZW51Ij4KLSAgICAgICAgICAgICAgICAgICAgPGxpPgot ICAgICAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9ImRyb3Bkb3duLWl0ZW0iIGlkPSJidG4t bWFuYWdlLW1hY3JvcyIgaHJlZj0iIyIgdGFiaW5kZXg9IjAiPgotICAgICAgICAgICAgICAgICAg ICAgICAgICAgIDxzcGFuPiB7eyBfKCdNYW5hZ2UgTWFjcm9zLi4uJykgfX0gPC9zcGFuPgotICAg ICAgICAgICAgICAgICAgICAgICAgPC9hPgotICAgICAgICAgICAgICAgICAgICA8L2xpPgotICAg ICAgICAgICAgICAgICAgICB7JSBpZiBtYWNyb3N8bGVuZ3RoID4gMCAlfQotICAgICAgICAgICAg ICAgICAgICA8bGkgY2xhc3M9ImRyb3Bkb3duLWRpdmlkZXIiPjwvbGk+Ci0gICAgICAgICAgICAg ICAgICAgIHslIGVuZGlmICV9Ci0gICAgICAgICAgICAgICAgICAgIHslIGZvciBpIGluIG1hY3Jv cyAlfQotICAgICAgICAgICAgICAgICAgICA8bGk+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8 YSBjbGFzcz0iZHJvcGRvd24taXRlbSBidG4tbWFjcm8iIGRhdGEtbWFjcm8taWQ9Int7IGkuaWQg fX0iIGhyZWY9IiMiIHRhYmluZGV4PSIwIj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8 c3Bhbj4ge3sgXyhpLm5hbWUpfGUgfX0gPC9zcGFuPgotICAgICAgICAgICAgICAgICAgICAgICAg ICAgIDxzcGFuPiAoe3sgaS5rZXlfbGFiZWwgfX0pIDwvc3Bhbj4KLSAgICAgICAgICAgICAgICAg ICAgICAgIDwvYT4KLSAgICAgICAgICAgICAgICAgICAgPC9saT4KLSAgICAgICAgICAgICAgICAg ICAgeyUgZW5kZm9yICV9Ci0gICAgICAgICAgICAgICAgPC91bD4KLSAgICAgICAgICAgIDwvZGl2 PgotICAgICAgICA8L2Rpdj4KLQotICAgICAgICA8ZGl2IGNsYXNzPSJjb25uZWN0aW9uX3N0YXR1 c193cmFwcGVyIGQtZmxleCI+Ci0gICAgICAgICAgICA8ZGl2IGlkPSJidG4tY29ubi1zdGF0dXMi Ci0gICAgICAgICAgICAgICAgIHJvbGU9InN0YXR1cyIKLSAgICAgICAgICAgICAgICAgY2xhc3M9 ImNvbm5lY3Rpb25fc3RhdHVzIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0 ZW1zLWNlbnRlciIgZGF0YS1jb250YWluZXI9ImJvZHkiCi0gICAgICAgICAgICAgICAgIGRhdGEt dG9nZ2xlPSJwb3BvdmVyIiBkYXRhLXBsYWNlbWVudD0iYm90dG9tIgotICAgICAgICAgICAgICAg ICBkYXRhLWNvbnRlbnQ9IiIKLSAgICAgICAgICAgICAgICAgZGF0YS1wYW5lbC12aXNpYmxlPSJ2 aXNpYmxlIgotICAgICAgICAgICAgICAgICBhY2Nlc3NrZXk9IiIKLSAgICAgICAgICAgICAgICAg dGFiaW5kZXg9IjAiPgotICAgICAgICAgICAgICAgIDxpIGNsYXNzPSJwZy1mb250LWljb24gaWNv bi1kaXNjb25uZWN0ZWQgb2J0YWluaW5nLWNvbm4gZC1mbGV4IG0tYXV0byIgYXJpYS1oaWRkZW49 InRydWUiCi0gICAgICAgICAgICAgICAgICAgIHRpdGxlPSIiIHJvbGU9ImltZyI+Ci0gICAgICAg ICAgICAgICAgPC9pPgotICAgICAgICAgICAgPC9kaXY+Ci0gICAgICAgICAgICA8ZGl2IGNsYXNz PSJjb25uZWN0aW9uLWluZm8gYnRuLWdyb3VwIG1yLTEiIHJvbGU9Imdyb3VwIiBhcmlhLWxhYmVs PSIiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiB7JSBpZiBmZ2NvbG9yICV9e3sgYmdjb2xvciBv ciAnI0ZGRkZGRicgfX17JSBlbmRpZiAlfTsgY29sb3I6IHslIGlmIGZnY29sb3IgJX17eyBmZ2Nv bG9yIH19eyUgZW5kaWYgJX07Ij4KLSAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb25uZWN0 aW9uLWRhdGEiIGRhdGEtdG9nZ2xlPSJkcm9wZG93biI+Ci0gICAgICAgICAgICAgICAgICAgIDxk aXYgY2xhc3M9ImVkaXRvci10aXRsZSIgYXJpYS1oYXNwb3B1cD0idHJ1ZSIgYXJpYS1leHBhbmRl ZD0iZmFsc2UiCi0gICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9ImJhY2tncm91bmQtY29s b3I6IHslIGlmIGZnY29sb3IgJX17eyBiZ2NvbG9yIG9yICcjRkZGRkZGJyB9fXslIGVuZGlmICV9 OyBjb2xvcjogeyUgaWYgZmdjb2xvciAlfXt7IGZnY29sb3IgfX17JSBlbmRpZiAlfTsiPiZuYnNw OwotICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KLSAgICAgICAgICAgICAgICAgICAgPHNwYW4g Y2xhc3M9ImNvbm4taW5mby1kZCBkcm9wZG93bi10b2dnbGUgZHJvcGRvd24tdG9nZ2xlLXNwbGl0 IgotICAgICAgICAgICAgICAgICAgICBhcmlhLWhhc3BvcHVwPSJ0cnVlIiBhcmlhLWV4cGFuZGVk PSJmYWxzZSI+PC9zcGFuPgotICAgICAgICAgICAgICAgIDwvZGl2PgotICAgICAgICAgICAgICAg IDx1bCBjbGFzcz0iZHJvcGRvd24tbWVudSIgaWQ9ImNvbm5lY3Rpb25zLWxpc3QiPgotICAgICAg ICAgICAgICAgIDwvdWw+Ci0gICAgICAgICAgICA8L2Rpdj4KLQotCi0gICAgICAgIDwvZGl2Pgot ICAgICAgICA8ZGl2IGlkPSJlZGl0b3ItcGFuZWwiIHRhYmluZGV4PSIwIj4KLSAgICAgICAgICAg IDxkaXYgaWQ9Im1haW5fbG9hZGVyIiBjbGFzcz0icGctc3AtY29udGFpbmVyIHNxbC1lZGl0b3It YnVzeS1mZXRjaGluZyI+Ci0gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icGctc3AtY29udGVu dCI+Ci0gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InJvdyI+Ci0gICAgICAgICAgICAg ICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wtMTIgcGctc3AtaWNvbiBzcWwtZWRpdG9yLWJ1c3kt aWNvbiI+PC9kaXY+Ci0gICAgICAgICAgICAgICAgICAgIDwvZGl2PgotICAgICAgICAgICAgICAg ICAgICA8ZGl2IGNsYXNzPSJyb3ciPjxkaXYgY2xhc3M9ImNvbC0xMiBwZy1zcC10ZXh0IHNxbC1l ZGl0b3ItYnVzeS10ZXh0Ij57eyBfKCdMb2FkaW5nLi4uJykgfX08L2Rpdj48L2Rpdj4KLSAgICAg ICAgICAgICAgICA8L2Rpdj4KLSAgICAgICAgICAgIDwvZGl2PgotICAgICAgICA8L2Rpdj4KLSAg ICAgICAgPGRpdiBjbGFzcz0ic3FsLWVkaXRvci1idXN5LXRleHQtc3RhdHVzIGQtbm9uZSI+PC9k aXY+Ci0gICAgPC9kaXY+Ci08L2Rpdj4KLXslIGVuZGJsb2NrICV9Ci0KLXslIGJsb2NrIGluaXRf c2NyaXB0ICV9Ci1yZXF1aXJlKFsnc291cmNlcy9nZW5lcmF0ZWQvYnJvd3Nlcl9ub2RlcycsICdz b3VyY2VzL2dlbmVyYXRlZC9jb2RlbWlycm9yJywgJ3NvdXJjZXMvZ2VuZXJhdGVkL3NsaWNrZ3Jp ZCddLCBmdW5jdGlvbigpIHsKLSAgICByZXF1aXJlKFsnc291cmNlcy9nZW5lcmF0ZWQvc3FsZWRp dG9yJ10sIGZ1bmN0aW9uKGN0eCkgewotICAgICAgICB2YXIgJCA9IHBnQWRtaW4uU3FsRWRpdG9y LmpxdWVyeSwKLSAgICAgICAgICAgIFMgPSBwZ0FkbWluLlNxbEVkaXRvci5TLAotICAgICAgICAg ICAgZWRpdG9yUGFuZWwgPSAkKCcuc3FsLWVkaXRvcicpOwotCi0gICAgICAgIC8vIFJlZ2lzdGVy IHVubG9hZCBldmVudCBvbiB3aW5kb3cgY2xvc2UuCi0gICAgICAgIC8qIElmIG9wZW5lZCBpbiBu ZXcgdGFiLCBjbG9zZSB0aGUgY29ubmVjdGlvbiBvbmx5IG9uIHRhYi93aW5kb3cgY2xvc2UgYW5k Ci0gICAgICAgICAqIG5vdCBvbiByZWZyZXNoIGF0dGVtcHQgYmVjYXVzZSB0aGUgdXNlciBtYXkg Y2FuY2VsIHRoZSByZWxvYWQKLSAgICAgICAgICovCi0gICAgICAgIGlmKHdpbmRvdy5vcGVuZXIp IHsKLSAgICAgICAgICAkKHdpbmRvdykub24oJ3VubG9hZCcsIGZ1bmN0aW9uKGV2KSB7Ci0gICAg ICAgICAgICAkLmFqYXgoewotICAgICAgICAgICAgICBtZXRob2Q6ICdERUxFVEUnLAotICAgICAg ICAgICAgICB1cmw6ICJ7eyB1cmxfZm9yKCdkYXRhZ3JpZC5pbmRleCcpIH19IiArICJjbG9zZS8i ICsge3sgdW5pcXVlSWQgfX0KLSAgICAgICAgICAgIH0pOwotICAgICAgICAgIH0pOwotICAgICAg ICB9IGVsc2UgewotICAgICAgICAgICQod2luZG93KS5vbignYmVmb3JldW5sb2FkJywgZnVuY3Rp b24oZXYpIHsKLSAgICAgICAgICAgICQuYWpheCh7Ci0gICAgICAgICAgICAgIG1ldGhvZDogJ0RF TEVURScsCi0gICAgICAgICAgICAgIHVybDogInt7IHVybF9mb3IoJ2RhdGFncmlkLmluZGV4Jykg fX0iICsgImNsb3NlLyIgKyB7eyB1bmlxdWVJZCB9fQotICAgICAgICAgICAgfSk7Ci0gICAgICAg ICAgfSk7Ci0gICAgICAgIH0KLQotICAgICAgICAvLyBHZXQgdGhlIGNvbnRyb2xsZXIgb2JqZWN0 IGZyb20gcGdBZG1pbi5TcWxFZGl0b3IKLSAgICAgICAgdmFyIHNxbEVkaXRvckNvbnRyb2xsZXIg PSBwZ0FkbWluLlNxbEVkaXRvci5jcmVhdGUoZWRpdG9yUGFuZWwpOwotCi0gICAgICAgIC8vIExp c3RlbiBvbiBldmVudHMgdG8gc2hvdy9oaWRlIGxvYWRpbmctaWNvbiBhbmQgY2hhbmdlIG1lc3Nh Z2VzLgotICAgICAgICB7JSBpZiBzY3JpcHRfdHlwZV91cmwgJX0KLSAgICAgICAgICAgIHZhciBz Y3JpcHRfdHlwZV91cmwgPSAne3sgc2NyaXB0X3R5cGVfdXJsIH19JzsKLSAgICAgICAgeyUgZWxz ZSAlfQotICAgICAgICAgICAgdmFyIHNjcmlwdF90eXBlX3VybCA9ICcnOwotICAgICAgICB7JSBl bmRpZiAlfQotICAgICAgICAvLyBTdGFydCB0aGUgcXVlcnkgdG9vbC4KLQotICAgICAgICBzcWxF ZGl0b3JDb250cm9sbGVyLnN0YXJ0KAotICAgICAgICAgICAge3sgdW5pcXVlSWQgfX0sCi0gICAg ICAgICAgICB7eyB1cmxfcGFyYW1zfHNhZmV9fSwKLSAgICAgICAgICAgICd7eyBsYXlvdXR8c2Fm ZSB9fScsCi0gICAgICAgICAgICB7eyBtYWNyb3N8c2FmZSB9fQotICAgICAgICApOwotCi0gICAg ICAgIC8vIElmIG9wZW5pbmcgZnJvbSBzY2hlbWEgZGlmZiwgc2V0IHRoZSBnZW5lcmF0ZWQgc2Ny aXB0IHRvIHRoZSBTUUwgRWRpdG9yCi0KLSAgICAgICAgdmFyIHNjaGVtYV9kZGxfZGlmZiA9ICh3 aW5kb3cub3BlbmVyICE9PSBudWxsKSA/IHdpbmRvdy5vcGVuZXIucGdBZG1pbi5kZGxfZGlmZiA6 ICh3aW5kb3cucGFyZW50ICE9PSBudWxsKSA/IHdpbmRvdy5wYXJlbnQucGdBZG1pbi5kZGxfZGlm ZiA6IHdpbmRvdy50b3AucGdBZG1pbi5kZGxfZGlmZjsKLSAgICAgICAgc3FsRWRpdG9yQ29udHJv bGxlci5zZXRfdmFsdWVfdG9fZWRpdG9yKHNjaGVtYV9kZGxfZGlmZik7Ci0gICAgICAgIGlmICh3 aW5kb3cub3BlbmVyICE9PSBudWxsKSB3aW5kb3cub3BlbmVyLnBnQWRtaW4uZGRsX2RpZmYgPSAn JzsKLSAgICAgICAgZWxzZSBpZiAod2luZG93LnBhcmVudCAhPT0gbnVsbCkgd2luZG93LnBhcmVu dC5wZ0FkbWluLmRkbF9kaWZmID0gJyc7Ci0gICAgICAgIGVsc2UgaWYgKHdpbmRvdy50b3AgIT09 IG51bGwpIHdpbmRvdy50b3AucGdBZG1pbi5kZGxfZGlmZiA9ICcnOwotCi0gICAgfSk7Ci19KTsK LXslIGVuZGJsb2NrICV9CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi90b29scy9kYXRhZ3JpZC90 ZXN0cy9fX2luaXRfXy5weSBiL3dlYi9wZ2FkbWluL3Rvb2xzL2RhdGFncmlkL3Rlc3RzL19faW5p dF9fLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlNjlkZTI5YmIuLjAwMDAwMDAw MApkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vdG9vbHMvZGF0YWdyaWQvdGVzdHMvZGF0YWdyaWRf dGVzdF9kYXRhLmpzb24gYi93ZWIvcGdhZG1pbi90b29scy9kYXRhZ3JpZC90ZXN0cy9kYXRhZ3Jp ZF90ZXN0X2RhdGEuanNvbgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDA3NWYzNWUz Li4wMDAwMDAwMDAKLS0tIGEvd2ViL3BnYWRtaW4vdG9vbHMvZGF0YWdyaWQvdGVzdHMvZGF0YWdy aWRfdGVzdF9kYXRhLmpzb24KKysrIC9kZXYvbnVsbApAQCAtMSwxMzQgKzAsMCBAQAotewotICAi ZGF0YV9ncmlkX2luaXRfcXVlcnlfdG9vbCI6IFsKLSAgICB7Ci0gICAgICAibmFtZSI6ICJEYXRh Z3JpZCBpbml0IHF1ZXJ5IHRvb2wiLAotICAgICAgInVybCI6ICIvZGF0YWdyaWQvaW5pdGlhbGl6 ZS9xdWVyeV90b29sLyIsCi0gICAgICAiaXNfcG9zaXRpdmVfdGVzdCI6IHRydWUsCi0gICAgICAi bW9ja2luZ19yZXF1aXJlZCI6IGZhbHNlLAotICAgICAgInRlc3RfZGF0YSI6IHt9LAotICAgICAg Im1vY2tfZGF0YSI6IHt9LAotICAgICAgImV4cGVjdGVkX2RhdGEiOiB7Ci0gICAgICAgICJzdGF0 dXNfY29kZSI6IDIwMAotICAgICAgfQotICAgIH0KLSAgXSwKLSAgImRhdGFfZ3JpZF9xdWVyeV90 b29sX2Nsb3NlIjogWwotICAgIHsKLSAgICAgICJuYW1lIjogIkRhdGFncmlkIHF1ZXJ5IHRvb2wg Y2xvc2UiLAotICAgICAgInVybCI6ICIvZGF0YWdyaWQvY2xvc2UvIiwKLSAgICAgICJpc19wb3Np dGl2ZV90ZXN0IjogdHJ1ZSwKLSAgICAgICJtb2NraW5nX3JlcXVpcmVkIjogZmFsc2UsCi0gICAg ICAidGVzdF9kYXRhIjoge30sCi0gICAgICAibW9ja19kYXRhIjoge30sCi0gICAgICAiZXhwZWN0 ZWRfZGF0YSI6IHsKLSAgICAgICAgInN0YXR1c19jb2RlIjogMjAwCi0gICAgICB9Ci0gICAgfQot ICBdLAotICAiZGF0YV9ncmlkX3ZhbGlkYXRlX2ZpbHRlciI6IFsKLSAgICB7Ci0gICAgICAibmFt ZSI6ICJEYXRhZ3JpZCB2YWxpZGF0ZSBmaWx0ZXIiLAotICAgICAgInVybCI6ICIvZGF0YWdyaWQv ZmlsdGVyL3ZhbGlkYXRlLyIsCi0gICAgICAiaXNfcG9zaXRpdmVfdGVzdCI6IHRydWUsCi0gICAg ICAibW9ja2luZ19yZXF1aXJlZCI6IGZhbHNlLAotICAgICAgInRlc3RfZGF0YSI6ICJpZCA9IDEi LAotICAgICAgIm1vY2tfZGF0YSI6IHt9LAotICAgICAgImV4cGVjdGVkX2RhdGEiOiB7Ci0gICAg ICAgICJzdGF0dXNfY29kZSI6IDIwMAotICAgICAgfQotICAgIH0sCi0gICAgewotICAgICAgIm5h bWUiOiAiRGF0YWdyaWQgdmFsaWRhdGUgZmlsdGVyIiwKLSAgICAgICJ1cmwiOiAiL2RhdGFncmlk L2ZpbHRlci92YWxpZGF0ZS8iLAotICAgICAgImlzX3Bvc2l0aXZlX3Rlc3QiOiBmYWxzZSwKLSAg ICAgICJtb2NraW5nX3JlcXVpcmVkIjogdHJ1ZSwKLSAgICAgICJ0ZXN0X2RhdGEiOiAiaWQgPSAx IiwKLSAgICAgICJtb2NrX2RhdGEiOiB7Ci0gICAgICAgICJmdW5jdGlvbl9uYW1lIjogInBnYWRt aW4udXRpbHMuZHJpdmVyLnBzeWNvcGcyLmNvbm5lY3Rpb24uQ29ubmVjdGlvbi5leGVjdXRlX3Nj YWxhciIsCi0gICAgICAgICJyZXR1cm5fdmFsdWUiOiAiKEZhbHNlLCAnTW9ja2VkIEludGVybmFs IFNlcnZlciBFcnJvciB3aGlsZSB2YWxpZGF0ZSBmaWx0ZXInKSIKLSAgICAgIH0sCi0gICAgICAi ZXhwZWN0ZWRfZGF0YSI6IHsKLSAgICAgICAgInN0YXR1c19jb2RlIjogMjAwCi0gICAgICB9Ci0g ICAgfQotICBdLAotICAiZGF0YV9ncmlkX3VwZGF0ZV9jb25uZWN0aW9uIjogWwotICAgIHsKLSAg ICAgICJuYW1lIjogIkRhdGFncmlkIHVwZGF0ZSBjb25uZWN0aW9uIHBvc2l0aXZlIiwKLSAgICAg ICJ1cmwiOiAiL2RhdGFncmlkL2luaXRpYWxpemUvcXVlcnlfdG9vbC91cGRhdGVfY29ubmVjdGlv bi8iLAotICAgICAgImlzX3Bvc2l0aXZlX3Rlc3QiOiB0cnVlLAotICAgICAgIm1vY2tpbmdfcmVx dWlyZWQiOiBmYWxzZSwKLSAgICAgICJpc19jcmVhdGVfcm9sZSI6IGZhbHNlLAotICAgICAgInRl c3RfZGF0YSI6IHt9LAotICAgICAgIm1vY2tfZGF0YSI6IHt9LAotICAgICAgImV4cGVjdGVkX2Rh dGEiOiB7Ci0gICAgICAgICJzdGF0dXNfY29kZSI6IDIwMAotICAgICAgfQotICAgIH0sCi0gICAg ewotICAgICAgIm5hbWUiOiAiRGF0YWdyaWQgdXBkYXRlIGNvbm5lY3Rpb24gd2l0aCBuZXcgdXNl ciIsCi0gICAgICAidXJsIjogIi9kYXRhZ3JpZC9pbml0aWFsaXplL3F1ZXJ5X3Rvb2wvdXBkYXRl X2Nvbm5lY3Rpb24vIiwKLSAgICAgICJpc19wb3NpdGl2ZV90ZXN0IjogdHJ1ZSwKLSAgICAgICJt b2NraW5nX3JlcXVpcmVkIjogZmFsc2UsCi0gICAgICAiaXNfY3JlYXRlX3JvbGUiOiB0cnVlLAot ICAgICAgInRlc3RfZGF0YSI6IHt9LAotICAgICAgIm1vY2tfZGF0YSI6IHt9LAotICAgICAgImV4 cGVjdGVkX2RhdGEiOiB7Ci0gICAgICAgICJzdGF0dXNfY29kZSI6IDIwMAotICAgICAgfQotICAg IH0KLSAgXSwKLSAgImRhdGFfZ3JpZF9wYW5lbCI6IFsKLSAgICB7Ci0gICAgICAibmFtZSI6ICJE YXRhZ3JpZCBQYW5lbCIsCi0gICAgICAidXJsIjogIi9kYXRhZ3JpZC9wYW5lbC8iLAotICAgICAg ImlzX3Bvc2l0aXZlX3Rlc3QiOiB0cnVlLAotICAgICAgIm1vY2tpbmdfcmVxdWlyZWQiOiBmYWxz ZSwKLSAgICAgICJ0ZXN0X2RhdGEiOiB7fSwKLSAgICAgICJtb2NrX2RhdGEiOiB7Ci0gICAgICB9 LAotICAgICAgImV4cGVjdGVkX2RhdGEiOiB7Ci0gICAgICAgICJzdGF0dXNfY29kZSI6IDIwMAot ICAgICAgfQotICAgIH0KLSAgXSwKLSAgImRhdGFfZ3JpZF9pbml0aWFsaXplIjogWwotICAgIHsK LSAgICAgICJuYW1lIjogIkRhdGFncmlkIEluaXRpYWxpemUiLAotICAgICAgInVybCI6ICIvZGF0 YWdyaWQvaW5pdGlhbGl6ZS9kYXRhZ3JpZC8iLAotICAgICAgImlzX3Bvc2l0aXZlX3Rlc3QiOiB0 cnVlLAotICAgICAgIm1vY2tpbmdfcmVxdWlyZWQiOiBmYWxzZSwKLSAgICAgICJ0ZXN0X2RhdGEi OiAiaWQ9MSIsCi0gICAgICAibW9ja19kYXRhIjogewotCi0gICAgICB9LAotICAgICAgImV4cGVj dGVkX2RhdGEiOiB7Ci0gICAgICAgICJzdGF0dXNfY29kZSI6IDIwMAotICAgICAgfQotICAgIH0s ewotICAgICAgIm5hbWUiOiAiRGF0YWdyaWQgSW5pdGlhbGl6ZSIsCi0gICAgICAidXJsIjogIi9k YXRhZ3JpZC9pbml0aWFsaXplL2RhdGFncmlkLyIsCi0gICAgICAiaXNfcG9zaXRpdmVfdGVzdCI6 IHRydWUsCi0gICAgICAibW9ja2luZ19yZXF1aXJlZCI6IGZhbHNlLAotICAgICAgInRlc3RfZGF0 YSI6IG51bGwsCi0gICAgICAibW9ja19kYXRhIjoge30sCi0gICAgICAiZXhwZWN0ZWRfZGF0YSI6 IHsKLSAgICAgICAgInN0YXR1c19jb2RlIjogMjAwCi0gICAgICB9Ci0gICAgfSwKLSAgICB7Ci0g ICAgICAibmFtZSI6ICJEYXRhZ3JpZCBJbml0aWFsaXplIiwKLSAgICAgICJ1cmwiOiAiL2RhdGFn cmlkL2luaXRpYWxpemUvZGF0YWdyaWQvIiwKLSAgICAgICJpc19wb3NpdGl2ZV90ZXN0IjogZmFs c2UsCi0gICAgICAibW9ja2luZ19yZXF1aXJlZCI6IHRydWUsCi0gICAgICAidGVzdF9kYXRhIjog ImlkPTEiLAotICAgICAgIm1vY2tfZGF0YSI6IHsKLSAgICAgICAgImZ1bmN0aW9uX25hbWUiOiAi cGdhZG1pbi51dGlscy5kcml2ZXIucHN5Y29wZzIuY29ubmVjdGlvbi5Db25uZWN0aW9uLmV4ZWN1 dGVfZGljdCIsCi0gICAgICAgICJyZXR1cm5fdmFsdWUiOiAiKEZhbHNlLCAnTW9ja2VkIEludGVy bmFsIFNlcnZlciBFcnJvciB3aGlsZSBpbml0aWFsaXplIGRhdGFncmlkLicpIgotICAgICAgfSwK LSAgICAgICJleHBlY3RlZF9kYXRhIjogewotICAgICAgICAic3RhdHVzX2NvZGUiOiA1MDAKLSAg ICAgIH0KLSAgICB9Ci0gIF0KLX0KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL3Rvb2xzL2RhdGFn cmlkL3Rlc3RzL3Rlc3RfZGF0YV9ncmlkX2luaXRfcXVlcnlfdG9vbC5weSBiL3dlYi9wZ2FkbWlu L3Rvb2xzL2RhdGFncmlkL3Rlc3RzL3Rlc3RfZGF0YV9ncmlkX2luaXRfcXVlcnlfdG9vbC5weQpk ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYmM3OTQ2YmU1Li4wMDAwMDAwMDAKLS0tIGEv d2ViL3BnYWRtaW4vdG9vbHMvZGF0YWdyaWQvdGVzdHMvdGVzdF9kYXRhX2dyaWRfaW5pdF9xdWVy eV90b29sLnB5CisrKyAvZGV2L251bGwKQEAgLTEsNzMgKzAsMCBAQAotIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMKLSMKLSMgcGdBZG1pbiA0IC0gUG9zdGdyZVNRTCBUb29scwotIwotIyBDb3B5cmlnaHQgKEMp IDIwMTMgLSAyMDIyLCBUaGUgcGdBZG1pbiBEZXZlbG9wbWVudCBUZWFtCi0jIFRoaXMgc29mdHdh cmUgaXMgcmVsZWFzZWQgdW5kZXIgdGhlIFBvc3RncmVTUUwgTGljZW5jZQotIwotIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMKLQotCi1pbXBvcnQganNvbgotaW1wb3J0IHV1aWQKLWltcG9ydCByYW5kb20KLQot ZnJvbSB1bml0dGVzdC5tb2NrIGltcG9ydCBwYXRjaAotZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2Vy dmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy50ZXN0cyBpbXBvcnQgdXRpbHMgYXMgXAotICAg IGRhdGFiYXNlX3V0aWxzCi0KLWZyb20gcGdhZG1pbi51dGlscy5yb3V0ZSBpbXBvcnQgQmFzZVRl c3RHZW5lcmF0b3IKLWZyb20gcGdhZG1pbi51dGlscy5leGNlcHRpb24gaW1wb3J0IEV4ZWN1dGVF cnJvcgotZnJvbSByZWdyZXNzaW9uIGltcG9ydCBwYXJlbnRfbm9kZV9kaWN0Ci1mcm9tIHJlZ3Jl c3Npb24ucHl0aG9uX3Rlc3RfdXRpbHMgaW1wb3J0IHRlc3RfdXRpbHMgYXMgdXRpbHMKLWZyb20g cmVncmVzc2lvbi50ZXN0X3NldHVwIGltcG9ydCBjb25maWdfZGF0YQotZnJvbSAuIGltcG9ydCB1 dGlscyBhcyBkYXRhX2dyaWRfdXRpbHMKLQotCi1jbGFzcyBEYXRhZ3JpZEluaXRRdWVyeVRvb2xU ZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6Ci0gICAgIiIiCi0gICAgVGhpcyB3aWxsIGluaXQg cXVlcnktdG9vbCBjb25uZWN0aW9uLgotICAgICIiIgotCi0gICAgc2NlbmFyaW9zID0gdXRpbHMu Z2VuZXJhdGVfc2NlbmFyaW9zKAotICAgICAgICAnZGF0YV9ncmlkX2luaXRfcXVlcnlfdG9vbCcs Ci0gICAgICAgIGRhdGFfZ3JpZF91dGlscy50ZXN0X2Nhc2VzCi0gICAgKQotCi0gICAgZGVmIHNl dFVwKHNlbGYpOgotICAgICAgICBzZWxmLmRhdGFiYXNlX2luZm8gPSBwYXJlbnRfbm9kZV9kaWN0 WyJkYXRhYmFzZSJdWy0xXQotICAgICAgICBzZWxmLmRiX25hbWUgPSBzZWxmLmRhdGFiYXNlX2lu Zm9bImRiX25hbWUiXQotICAgICAgICBzZWxmLmRpZCA9IHNlbGYuZGF0YWJhc2VfaW5mb1siZGJf aWQiXQotICAgICAgICBzZWxmLnNpZCA9IHBhcmVudF9ub2RlX2RpY3RbInNlcnZlciJdWy0xXVsi c2VydmVyX2lkIl0KLSAgICAgICAgc2VsZi5zZ2lkID0gY29uZmlnX2RhdGFbJ3NlcnZlcl9ncm91 cCddCi0KLSAgICAgICAgZGJfY29uID0gZGF0YWJhc2VfdXRpbHMuY29ubmVjdF9kYXRhYmFzZShz ZWxmLCB1dGlscy5TRVJWRVJfR1JPVVAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgc2VsZi5zaWQsIHNlbGYuZGlkKQotCi0gICAgICAgIHNlbGYudHJh bnNfaWQgPSBzdHIocmFuZG9tLnJhbmRpbnQoMSwgOTk5OTk5OSkpCi0KLSAgICAgICAgaWYgbm90 IGRiX2NvblsnZGF0YSddWyJjb25uZWN0ZWQiXToKLSAgICAgICAgICAgIHJhaXNlIEV4ZWN1dGVF cnJvcigiQ291bGQgbm90IGNvbm5lY3QgdG8gZGF0YWJhc2UgdG8gYWRkIGEgdGFibGUuIikKLQot ICAgIGRlZiBpbml0X3F1ZXJ5X3Rvb2woc2VsZik6Ci0gICAgICAgIHJlc3BvbnNlID0gc2VsZi50 ZXN0ZXIucG9zdCgKLSAgICAgICAgICAgIHNlbGYudXJsICsgc3RyKHNlbGYudHJhbnNfaWQpICsg Jy8nICsgc3RyKHNlbGYuc2dpZCkgKyAnLycgKyBzdHIoCi0gICAgICAgICAgICAgICAgc2VsZi5z aWQpICsgJy8nICsgc3RyKHNlbGYuZGlkKSwKLSAgICAgICAgICAgIGNvbnRlbnRfdHlwZT0naHRt bC9qc29uJwotICAgICAgICApCi0gICAgICAgIHJldHVybiByZXNwb25zZQotCi0gICAgZGVmIHJ1 blRlc3Qoc2VsZik6Ci0gICAgICAgICIiIiBUaGlzIGZ1bmN0aW9uIHdpbGwgaW5pdCBxdWVyeSB0 b29sIGNvbm5lY3Rpb24uIiIiCi0KLSAgICAgICAgaWYgc2VsZi5pc19wb3NpdGl2ZV90ZXN0Ogot ICAgICAgICAgICAgcmVzcG9uc2UgPSBzZWxmLmluaXRfcXVlcnlfdG9vbCgpCi0gICAgICAgICAg ICBhY3R1YWxfcmVzcG9uc2VfY29kZSA9IHJlc3BvbnNlLnN0YXR1c19jb2RlCi0gICAgICAgICAg ICBleHBlY3RlZF9yZXNwb25zZV9jb2RlID0gc2VsZi5leHBlY3RlZF9kYXRhWydzdGF0dXNfY29k ZSddCi0KLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYWN0dWFsX3Jlc3BvbnNlX2NvZGUs IGV4cGVjdGVkX3Jlc3BvbnNlX2NvZGUpCi0KLSAgICBkZWYgdGVhckRvd24oc2VsZik6Ci0gICAg ICAgICIiIlRoaXMgZnVuY3Rpb24gZGlzY29ubmVjdCBkYXRhYmFzZS4iIiIKLSAgICAgICAgZGF0 YWJhc2VfdXRpbHMuZGlzY29ubmVjdF9kYXRhYmFzZShzZWxmLCBzZWxmLnNpZCwKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmRpZCkKZGlmZiAtLWdpdCBh L3dlYi9wZ2FkbWluL3Rvb2xzL2RhdGFncmlkL3Rlc3RzL3Rlc3RfZGF0YV9ncmlkX3BhbmVsLnB5 IGIvd2ViL3BnYWRtaW4vdG9vbHMvZGF0YWdyaWQvdGVzdHMvdGVzdF9kYXRhX2dyaWRfcGFuZWwu cHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDU1MTFhMDIxYy4uMDAwMDAwMDAwCi0t LSBhL3dlYi9wZ2FkbWluL3Rvb2xzL2RhdGFncmlkL3Rlc3RzL3Rlc3RfZGF0YV9ncmlkX3BhbmVs LnB5CisrKyAvZGV2L251bGwKQEAgLTEsOTAgKzAsMCBAQAotIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSMK LSMgcGdBZG1pbiA0IC0gUG9zdGdyZVNRTCBUb29scwotIwotIyBDb3B5cmlnaHQgKEMpIDIwMTMg LSAyMDIyLCBUaGUgcGdBZG1pbiBEZXZlbG9wbWVudCBUZWFtCi0jIFRoaXMgc29mdHdhcmUgaXMg cmVsZWFzZWQgdW5kZXIgdGhlIFBvc3RncmVTUUwgTGljZW5jZQotIwotIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMKLQotCi1pbXBvcnQganNvbgotaW1wb3J0IHV1aWQKLWltcG9ydCByYW5kb20KLQotZnJvbSB1 bml0dGVzdC5tb2NrIGltcG9ydCBwYXRjaAotZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dy b3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy50ZXN0cyBpbXBvcnQgdXRpbHMgYXMgXAotICAgIGRhdGFi YXNlX3V0aWxzCi0KLWZyb20gcGdhZG1pbi51dGlscy5yb3V0ZSBpbXBvcnQgQmFzZVRlc3RHZW5l cmF0b3IKLWZyb20gcGdhZG1pbi51dGlscy5leGNlcHRpb24gaW1wb3J0IEV4ZWN1dGVFcnJvcgot ZnJvbSByZWdyZXNzaW9uIGltcG9ydCBwYXJlbnRfbm9kZV9kaWN0Ci1mcm9tIHJlZ3Jlc3Npb24u cHl0aG9uX3Rlc3RfdXRpbHMgaW1wb3J0IHRlc3RfdXRpbHMgYXMgdXRpbHMKLWZyb20gcmVncmVz c2lvbi50ZXN0X3NldHVwIGltcG9ydCBjb25maWdfZGF0YQotZnJvbSAuIGltcG9ydCB1dGlscyBh cyBkYXRhX2dyaWRfdXRpbHMKLQotCi1jbGFzcyBEYXRhZ3JpZFBhbmVsVGVzdENhc2UoQmFzZVRl c3RHZW5lcmF0b3IpOgotICAgICIiIgotICAgIFRoaXMgd2lsbCBkYXRhIGdyaWQgcGFuZWwuCi0g ICAgIiIiCi0KLSAgICBzY2VuYXJpb3MgPSB1dGlscy5nZW5lcmF0ZV9zY2VuYXJpb3MoCi0gICAg ICAgICdkYXRhX2dyaWRfcGFuZWwnLAotICAgICAgICBkYXRhX2dyaWRfdXRpbHMudGVzdF9jYXNl cwotICAgICkKLQotICAgIGRlZiBzZXRVcChzZWxmKToKLSAgICAgICAgc2VsZi5kYXRhYmFzZV9p bmZvID0gcGFyZW50X25vZGVfZGljdFsiZGF0YWJhc2UiXVstMV0KLSAgICAgICAgc2VsZi5kYl9u YW1lID0gc2VsZi5kYXRhYmFzZV9pbmZvWyJkYl9uYW1lIl0KLSAgICAgICAgc2VsZi5kaWQgPSBz ZWxmLmRhdGFiYXNlX2luZm9bImRiX2lkIl0KLSAgICAgICAgc2VsZi5zaWQgPSBwYXJlbnRfbm9k ZV9kaWN0WyJzZXJ2ZXIiXVstMV1bInNlcnZlcl9pZCJdCi0gICAgICAgIHNlbGYuc2dpZCA9IGNv bmZpZ19kYXRhWydzZXJ2ZXJfZ3JvdXAnXQotCi0gICAgICAgIGRiX2NvbiA9IGRhdGFiYXNlX3V0 aWxzLmNvbm5lY3RfZGF0YWJhc2Uoc2VsZiwgdXRpbHMuU0VSVkVSX0dST1VQLAotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2lkLCBzZWxmLmRp ZCkKLSAgICAgICAgaWYgbm90IGRiX2NvblsnZGF0YSddWyJjb25uZWN0ZWQiXToKLSAgICAgICAg ICAgIHJhaXNlIEV4ZWN1dGVFcnJvcigiQ291bGQgbm90IGNvbm5lY3QgdG8gZGF0YWJhc2UgdG8g YWRkIGEgdGFibGUuIikKLQotICAgICAgICBzZWxmLnRyYW5zX2lkID0gc3RyKHJhbmRvbS5yYW5k aW50KDEsIDk5OTk5OTkpKQotICAgICAgICBxdF9pbml0ID0gZGF0YV9ncmlkX3V0aWxzLl9pbml0 X3F1ZXJ5X3Rvb2woc2VsZiwgc2VsZi50cmFuc19pZCwKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2dpZCwgc2VsZi5zaWQsCi0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmRpZCkKLQot ICAgICAgICBpZiBub3QgcXRfaW5pdFsnc3VjY2VzcyddOgotICAgICAgICAgICAgcmFpc2UgRXhl Y3V0ZUVycm9yKCJDb3VsZCBub3QgaW5pdGlhbGl6ZSBxdWVydHkgdG9vbC4iKQotCi0gICAgZGVm IHBhbmVsKHNlbGYpOgotICAgICAgICBxdWVyeV9wYXJhbSA9IFwKLSAgICAgICAgICAgICc/aXNf cXVlcnlfdG9vbD17MH0mc2dpZD17MX0mc2lkPXsyfSZzZXJ2ZXJfdHlwZT17M30nIFwKLSAgICAg ICAgICAgICcmZGlkPXs0fSZ0aXRsZT17NX0nLmZvcm1hdChUcnVlLCBzZWxmLnNnaWQsIHNlbGYu c2lkLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2VydmVy X2luZm9ybWF0aW9uWyd0eXBlJ10sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgc2VsZi5kaWQsICdRdWVyeSBwYW5lbCcpCi0KLSAgICAgICAgcmVzcG9uc2UgPSBzZWxm LnRlc3Rlci5wb3N0KAotICAgICAgICAgICAgc2VsZi51cmwgKyBzdHIoc2VsZi50cmFuc19pZCkg KyBxdWVyeV9wYXJhbSwKLSAgICAgICAgICAgIGRhdGE9anNvbi5kdW1wcyhzZWxmLnRlc3RfZGF0 YSksCi0gICAgICAgICAgICBjb250ZW50X3R5cGU9J2h0bWwvanNvbicKLSAgICAgICAgKQotICAg ICAgICByZXR1cm4gcmVzcG9uc2UKLQotICAgIGRlZiBydW5UZXN0KHNlbGYpOgotICAgICAgICAi IiIgVGhpcyBmdW5jdGlvbiB3aWxsIHVwZGF0ZSBxdWVyeSB0b29sIGNvbm5lY3Rpb24uIiIiCi0K LSAgICAgICAgaWYgc2VsZi5pc19wb3NpdGl2ZV90ZXN0OgotICAgICAgICAgICAgcmVzcG9uc2Ug PSBzZWxmLnBhbmVsKCkKLSAgICAgICAgICAgIGFjdHVhbF9yZXNwb25zZV9jb2RlID0gcmVzcG9u c2Uuc3RhdHVzX2NvZGUKLSAgICAgICAgICAgIGV4cGVjdGVkX3Jlc3BvbnNlX2NvZGUgPSBzZWxm LmV4cGVjdGVkX2RhdGFbJ3N0YXR1c19jb2RlJ10KLSAgICAgICAgZWxzZToKLSAgICAgICAgICAg IHdpdGggcGF0Y2goc2VsZi5tb2NrX2RhdGFbImZ1bmN0aW9uX25hbWUiXSwKLSAgICAgICAgICAg ICAgICAgICAgICAgcmV0dXJuX3ZhbHVlPWV2YWwoc2VsZi5tb2NrX2RhdGFbInJldHVybl92YWx1 ZSJdKSk6Ci0gICAgICAgICAgICAgICAgcmVzcG9uc2UgPSBzZWxmLnBhbmVsKCkKLSAgICAgICAg ICAgICAgICBhY3R1YWxfcmVzcG9uc2VfY29kZSA9IHJlc3BvbnNlLnN0YXR1c19jb2RlCi0gICAg ICAgICAgICAgICAgZXhwZWN0ZWRfcmVzcG9uc2VfY29kZSA9IHNlbGYuZXhwZWN0ZWRfZGF0YVsn c3RhdHVzX2NvZGUnXQotCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYWN0dWFsX3Jlc3BvbnNl X2NvZGUsIGV4cGVjdGVkX3Jlc3BvbnNlX2NvZGUpCi0KLSAgICBkZWYgdGVhckRvd24oc2VsZik6 Ci0gICAgICAgICIiIlRoaXMgZnVuY3Rpb24gZGlzY29ubmVjdCBkYXRhYmFzZS4iIiIKLSAgICAg ICAgZGF0YWJhc2VfdXRpbHMuZGlzY29ubmVjdF9kYXRhYmFzZShzZWxmLCBzZWxmLnNpZCwKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmRpZCkKZGlmZiAt LWdpdCBhL3dlYi9wZ2FkbWluL3Rvb2xzL2RhdGFncmlkL3Rlc3RzL3Rlc3RfZGF0YV9ncmlkX3F1 ZXJ5X3Rvb2xfY2xvc2UucHkgYi93ZWIvcGdhZG1pbi90b29scy9kYXRhZ3JpZC90ZXN0cy90ZXN0 X2RhdGFfZ3JpZF9xdWVyeV90b29sX2Nsb3NlLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp bmRleCA0NDBlYTdjNTEuLjAwMDAwMDAwMAotLS0gYS93ZWIvcGdhZG1pbi90b29scy9kYXRhZ3Jp ZC90ZXN0cy90ZXN0X2RhdGFfZ3JpZF9xdWVyeV90b29sX2Nsb3NlLnB5CisrKyAvZGV2L251bGwK QEAgLTEsNzggKzAsMCBAQAotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSMKLSMgcGdBZG1pbiA0IC0gUG9z dGdyZVNRTCBUb29scwotIwotIyBDb3B5cmlnaHQgKEMpIDIwMTMgLSAyMDIyLCBUaGUgcGdBZG1p biBEZXZlbG9wbWVudCBUZWFtCi0jIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgdGhl IFBvc3RncmVTUUwgTGljZW5jZQotIwotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotCi1pbXBvcnQganNv bgotaW1wb3J0IHV1aWQKLWltcG9ydCByYW5kb20KLQotZnJvbSB1bml0dGVzdC5tb2NrIGltcG9y dCBwYXRjaAotZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFi YXNlcy50ZXN0cyBpbXBvcnQgdXRpbHMgYXMgXAotICAgIGRhdGFiYXNlX3V0aWxzCi0KLWZyb20g cGdhZG1pbi51dGlscy5yb3V0ZSBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKLWZyb20gcmVncmVz c2lvbiBpbXBvcnQgcGFyZW50X25vZGVfZGljdAotZnJvbSByZWdyZXNzaW9uLnB5dGhvbl90ZXN0 X3V0aWxzIGltcG9ydCB0ZXN0X3V0aWxzIGFzIHV0aWxzCi1mcm9tIHJlZ3Jlc3Npb24udGVzdF9z ZXR1cCBpbXBvcnQgY29uZmlnX2RhdGEKLWZyb20gLiBpbXBvcnQgdXRpbHMgYXMgZGF0YV9ncmlk X3V0aWxzCi1mcm9tIHBnYWRtaW4udXRpbHMuZXhjZXB0aW9uIGltcG9ydCBFeGVjdXRlRXJyb3IK LQotCi1jbGFzcyBEYXRhZ3JpZFF1ZXJ5VG9vbENsb3NlVGVzdENhc2UoQmFzZVRlc3RHZW5lcmF0 b3IpOgotICAgICIiIgotICAgIFRoaXMgd2lsbCBjbG9zZSBxdWVyeS10b29sIGNvbm5lY3Rpb24u Ci0gICAgIiIiCi0KLSAgICBzY2VuYXJpb3MgPSB1dGlscy5nZW5lcmF0ZV9zY2VuYXJpb3MoCi0g ICAgICAgICdkYXRhX2dyaWRfcXVlcnlfdG9vbF9jbG9zZScsCi0gICAgICAgIGRhdGFfZ3JpZF91 dGlscy50ZXN0X2Nhc2VzCi0gICAgKQotCi0gICAgZGVmIHNldFVwKHNlbGYpOgotICAgICAgICBz ZWxmLmRhdGFiYXNlX2luZm8gPSBwYXJlbnRfbm9kZV9kaWN0WyJkYXRhYmFzZSJdWy0xXQotICAg ICAgICBzZWxmLmRiX25hbWUgPSBzZWxmLmRhdGFiYXNlX2luZm9bImRiX25hbWUiXQotICAgICAg ICBzZWxmLmRpZCA9IHNlbGYuZGF0YWJhc2VfaW5mb1siZGJfaWQiXQotICAgICAgICBzZWxmLnNp ZCA9IHBhcmVudF9ub2RlX2RpY3RbInNlcnZlciJdWy0xXVsic2VydmVyX2lkIl0KLSAgICAgICAg c2VsZi5zZ2lkID0gY29uZmlnX2RhdGFbJ3NlcnZlcl9ncm91cCddCi0KLSAgICAgICAgZGJfY29u ID0gZGF0YWJhc2VfdXRpbHMuY29ubmVjdF9kYXRhYmFzZShzZWxmLCB1dGlscy5TRVJWRVJfR1JP VVAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vs Zi5zaWQsIHNlbGYuZGlkKQotCi0gICAgICAgIGlmIG5vdCBkYl9jb25bJ2RhdGEnXVsiY29ubmVj dGVkIl06Ci0gICAgICAgICAgICByYWlzZSBFeGVjdXRlRXJyb3IoIkNvdWxkIG5vdCBjb25uZWN0 IHRvIGRhdGFiYXNlIHRvIGFkZCBhIHRhYmxlLiIpCi0KLSAgICAgICAgc2VsZi50cmFuc19pZCA9 IHN0cihyYW5kb20ucmFuZGludCgxLCA5OTk5OTk5KSkKLSAgICAgICAgcXRfaW5pdCA9IGRhdGFf Z3JpZF91dGlscy5faW5pdF9xdWVyeV90b29sKHNlbGYsIHNlbGYudHJhbnNfaWQsCi0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNnaWQsIHNl bGYuc2lkLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgc2VsZi5kaWQpCi0KLSAgICAgICAgaWYgbm90IHF0X2luaXRbJ3N1Y2Nlc3MnXToKLSAgICAg ICAgICAgIHJhaXNlIEV4ZWN1dGVFcnJvcigiQ291bGQgbm90IGluaXRpYWxpemUgcXVlcnR5IHRv b2wuIikKLQotICAgIGRlZiBjbG9zZV9jb25uZWN0aW9uKHNlbGYpOgotICAgICAgICByZXNwb25z ZSA9IHNlbGYudGVzdGVyLmRlbGV0ZSgKLSAgICAgICAgICAgIHNlbGYudXJsICsgc3RyKHNlbGYu dHJhbnNfaWQpLAotICAgICAgICAgICAgY29udGVudF90eXBlPSdodG1sL2pzb24nCi0gICAgICAg ICkKLSAgICAgICAgcmV0dXJuIHJlc3BvbnNlCi0KLSAgICBkZWYgcnVuVGVzdChzZWxmKToKLSAg ICAgICAgIiIiIFRoaXMgZnVuY3Rpb24gd2lsbCB1cGRhdGUgcXVlcnkgdG9vbCBjb25uZWN0aW9u LiIiIgotCi0gICAgICAgIGlmIHNlbGYuaXNfcG9zaXRpdmVfdGVzdDoKLSAgICAgICAgICAgIHJl c3BvbnNlID0gc2VsZi5jbG9zZV9jb25uZWN0aW9uKCkKLSAgICAgICAgICAgIGFjdHVhbF9yZXNw b25zZV9jb2RlID0gcmVzcG9uc2Uuc3RhdHVzX2NvZGUKLSAgICAgICAgICAgIGV4cGVjdGVkX3Jl c3BvbnNlX2NvZGUgPSBzZWxmLmV4cGVjdGVkX2RhdGFbJ3N0YXR1c19jb2RlJ10KLQotICAgICAg ICAgICAgc2VsZi5hc3NlcnRFcXVhbChhY3R1YWxfcmVzcG9uc2VfY29kZSwgZXhwZWN0ZWRfcmVz cG9uc2VfY29kZSkKLQotICAgIGRlZiB0ZWFyRG93bihzZWxmKToKLSAgICAgICAgIiIiVGhpcyBm dW5jdGlvbiBkaXNjb25uZWN0IGRhdGFiYXNlLiIiIgotICAgICAgICBkYXRhYmFzZV91dGlscy5k aXNjb25uZWN0X2RhdGFiYXNlKHNlbGYsIHNlbGYuc2lkLAotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZGlkKQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4v dG9vbHMvZGF0YWdyaWQvdGVzdHMvdGVzdF9kYXRhX2dyaWRfdXBkYXRlX2Nvbm5lY3Rpb24ucHkg Yi93ZWIvcGdhZG1pbi90b29scy9kYXRhZ3JpZC90ZXN0cy90ZXN0X2RhdGFfZ3JpZF91cGRhdGVf Y29ubmVjdGlvbi5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNWRkN2ZmZjM4Li4w MDAwMDAwMDAKLS0tIGEvd2ViL3BnYWRtaW4vdG9vbHMvZGF0YWdyaWQvdGVzdHMvdGVzdF9kYXRh X2dyaWRfdXBkYXRlX2Nvbm5lY3Rpb24ucHkKKysrIC9kZXYvbnVsbApAQCAtMSwxMjEgKzAsMCBA QAotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMKLSMKLSMgcGdBZG1pbiA0IC0gUG9zdGdyZVNRTCBUb29scwot IwotIyBDb3B5cmlnaHQgKEMpIDIwMTMgLSAyMDIyLCBUaGUgcGdBZG1pbiBEZXZlbG9wbWVudCBU ZWFtCi0jIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgdGhlIFBvc3RncmVTUUwgTGlj ZW5jZQotIwotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotCi1pbXBvcnQganNvbgotaW1wb3J0IHV1aWQK LWltcG9ydCByYW5kb20KLQotZnJvbSB1bml0dGVzdC5tb2NrIGltcG9ydCBwYXRjaAotZnJvbSBw Z2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy50ZXN0cyBpbXBv cnQgdXRpbHMgYXMgXAotICAgIGRhdGFiYXNlX3V0aWxzCi0KLWZyb20gcGdhZG1pbi51dGlscy5y b3V0ZSBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKLWZyb20gcmVncmVzc2lvbiBpbXBvcnQgcGFy ZW50X25vZGVfZGljdAotZnJvbSByZWdyZXNzaW9uLnB5dGhvbl90ZXN0X3V0aWxzIGltcG9ydCB0 ZXN0X3V0aWxzIGFzIHV0aWxzCi1mcm9tIHJlZ3Jlc3Npb24udGVzdF9zZXR1cCBpbXBvcnQgY29u ZmlnX2RhdGEKLWZyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5yb2xl cy50ZXN0cyBpbXBvcnQgXAotICAgIHV0aWxzIGFzIHJvbGVzX3V0aWxzCi1mcm9tIC4gaW1wb3J0 IHV0aWxzIGFzIGRhdGFfZ3JpZF91dGlscwotZnJvbSBwZ2FkbWluLnV0aWxzLmV4Y2VwdGlvbiBp bXBvcnQgRXhlY3V0ZUVycm9yCi0KLQotY2xhc3MgRGF0YWdyaWRVcGRhdGVDb25uZWN0aW9uVGVz dENhc2UoQmFzZVRlc3RHZW5lcmF0b3IpOgotICAgICIiIgotICAgIFRoaXMgd2lsbCB1cGRhdGUg cXVlcnktdG9vbCBjb25uZWN0aW9uLgotICAgICIiIgotCi0gICAgc2NlbmFyaW9zID0gdXRpbHMu Z2VuZXJhdGVfc2NlbmFyaW9zKAotICAgICAgICAnZGF0YV9ncmlkX3VwZGF0ZV9jb25uZWN0aW9u JywKLSAgICAgICAgZGF0YV9ncmlkX3V0aWxzLnRlc3RfY2FzZXMKLSAgICApCi0KLSAgICBkZWYg c2V0VXAoc2VsZik6Ci0gICAgICAgIHNlbGYuZGF0YWJhc2VfaW5mbyA9IHBhcmVudF9ub2RlX2Rp Y3RbImRhdGFiYXNlIl1bLTFdCi0gICAgICAgIHNlbGYuZGJfbmFtZSA9IHNlbGYuZGF0YWJhc2Vf aW5mb1siZGJfbmFtZSJdCi0gICAgICAgIHNlbGYuZGlkID0gc2VsZi5kYXRhYmFzZV9pbmZvWyJk Yl9pZCJdCi0gICAgICAgIHNlbGYuc2lkID0gcGFyZW50X25vZGVfZGljdFsic2VydmVyIl1bLTFd WyJzZXJ2ZXJfaWQiXQotICAgICAgICBzZWxmLnNnaWQgPSBjb25maWdfZGF0YVsnc2VydmVyX2dy b3VwJ10KLQotICAgICAgICBkYl9jb24gPSBkYXRhYmFzZV91dGlscy5jb25uZWN0X2RhdGFiYXNl KHNlbGYsIHV0aWxzLlNFUlZFUl9HUk9VUCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBzZWxmLnNpZCwgc2VsZi5kaWQpCi0KLSAgICAgICAgc2VsZi50 cmFuc19pZCA9IHN0cihyYW5kb20ucmFuZGludCgxLCA5OTk5OTk5KSkKLSAgICAgICAgc2VsZi5y b2xlcyA9IE5vbmUKLQotICAgICAgICBpZiBzZWxmLmlzX2NyZWF0ZV9yb2xlOgotICAgICAgICAg ICAgZGF0YSA9IHJvbGVzX3V0aWxzLmdldF9yb2xlX2RhdGEoc2VsZi5zZXJ2ZXJbJ2RiX3Bhc3N3 b3JkJ10pCi0gICAgICAgICAgICBzZWxmLnJvbGVfbmFtZSA9IGRhdGFbJ3JvbG5hbWUnXQotICAg ICAgICAgICAgc2VsZi5yb2xlX3Bhc3N3b3JkID0gZGF0YVsncm9scGFzc3dvcmQnXQotICAgICAg ICAgICAgcm9sZXNfdXRpbHMuY3JlYXRlX3JvbGVfd2l0aF9wYXNzd29yZCgKLSAgICAgICAgICAg ICAgICBzZWxmLnNlcnZlciwgc2VsZi5yb2xlX25hbWUsIHNlbGYucm9sZV9wYXNzd29yZCkKLQot ICAgICAgICBpZiBub3Qgc2VsZi5pc19wb3NpdGl2ZV90ZXN0IG9yIHNlbGYuaXNfY3JlYXRlX3Jv bGU6Ci0gICAgICAgICAgICBxdF9pbml0ID0gZGF0YV9ncmlkX3V0aWxzLl9pbml0X3F1ZXJ5X3Rv b2woc2VsZiwgc2VsZi50cmFuc19pZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNnaWQsIHNlbGYuc2lkLAotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZGlkKQotCi0g ICAgICAgICAgICBpZiBub3QgcXRfaW5pdFsnc3VjY2VzcyddOgotICAgICAgICAgICAgICAgIHJh aXNlIEV4ZWN1dGVFcnJvcigiQ291bGQgbm90IGluaXRpYWxpemUgcXVlcnR5IHRvb2wuIikKLQot ICAgICAgICBzZWxmLnRlc3RfZGF0YSA9IHsKLSAgICAgICAgICAgICJkYXRhYmFzZSI6IHNlbGYu ZGlkLAotICAgICAgICAgICAgInNlcnZlciI6IHNlbGYuc2lkLAotICAgICAgICB9Ci0KLSAgICAg ICAgaWYgc2VsZi5zZXJ2ZXJfaW5mb3JtYXRpb25bJ3R5cGUnXSA9PSAncHBhcyc6Ci0gICAgICAg ICAgICBzZWxmLnRlc3RfZGF0YVsncGFzc3dvcmQnXSA9ICdlbnRlcnByaXNlZGInCi0gICAgICAg ICAgICBzZWxmLnRlc3RfZGF0YVsndXNlciddID0gJ2VudGVycHJpc2VkYicKLSAgICAgICAgZWxz ZToKLSAgICAgICAgICAgIHNlbGYudGVzdF9kYXRhWydwYXNzd29yZCddID0gJ3Bvc3RncmVzJwot ICAgICAgICAgICAgc2VsZi50ZXN0X2RhdGFbJ3VzZXInXSA9ICdwb3N0Z3JlcycKLQotICAgICAg ICBpZiBub3QgZGJfY29uWydkYXRhJ11bImNvbm5lY3RlZCJdOgotICAgICAgICAgICAgcmFpc2Ug RXhlY3V0ZUVycm9yKCJDb3VsZCBub3QgY29ubmVjdCB0byBkYXRhYmFzZSB0byBhZGQgYSB0YWJs ZS4iKQotCi0gICAgZGVmIHVwZGF0ZV9jb25uZWN0aW9uKHNlbGYsIHVzZXJfZGF0YT1Ob25lKToK LSAgICAgICAgaWYgdXNlcl9kYXRhOgotICAgICAgICAgICAgcmVzcG9uc2UgPSBzZWxmLnRlc3Rl ci5wb3N0KAotICAgICAgICAgICAgICAgIHNlbGYudXJsICsgc3RyKHNlbGYudHJhbnNfaWQpICsg Jy8nICsgc3RyKHNlbGYuc2dpZCkgKwotICAgICAgICAgICAgICAgICcvJyArIHN0cihzZWxmLnNp ZCkgKyAnLycgKyBzdHIoc2VsZi5kaWQpLAotICAgICAgICAgICAgICAgIGRhdGE9anNvbi5kdW1w cyh1c2VyX2RhdGEpLAotICAgICAgICAgICAgICAgIGNvbnRlbnRfdHlwZT0naHRtbC9qc29uJwot ICAgICAgICAgICAgKQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgcmVzcG9uc2UgPSBzZWxm LnRlc3Rlci5wb3N0KAotICAgICAgICAgICAgICAgIHNlbGYudXJsICsgc3RyKHNlbGYudHJhbnNf aWQpICsgJy8nICsgc3RyKHNlbGYuc2dpZCkgKyAnLycgKwotICAgICAgICAgICAgICAgIHN0cihz ZWxmLnNpZCkgKyAnLycgKyBzdHIoc2VsZi5kaWQpLAotICAgICAgICAgICAgICAgIGRhdGE9anNv bi5kdW1wcyhzZWxmLnRlc3RfZGF0YSksCi0gICAgICAgICAgICAgICAgY29udGVudF90eXBlPSdo dG1sL2pzb24nCi0gICAgICAgICAgICApCi0gICAgICAgIHJldHVybiByZXNwb25zZQotCi0gICAg ZGVmIHJ1blRlc3Qoc2VsZik6Ci0gICAgICAgICIiIiBUaGlzIGZ1bmN0aW9uIHdpbGwgdXBkYXRl IHF1ZXJ5IHRvb2wgY29ubmVjdGlvbi4iIiIKLQotICAgICAgICBpZiBzZWxmLmlzX3Bvc2l0aXZl X3Rlc3Q6Ci0gICAgICAgICAgICB1c2VyX2RhdGEgPSBkaWN0KCkKLSAgICAgICAgICAgIGlmIHNl bGYuaXNfY3JlYXRlX3JvbGU6Ci0gICAgICAgICAgICAgICAgdXNlcl9kYXRhWyd1c2VyJ10gPSBz ZWxmLnJvbGVfbmFtZQotICAgICAgICAgICAgICAgIHVzZXJfZGF0YVsncGFzc3dvcmQnXSA9IHNl bGYucm9sZV9wYXNzd29yZAotICAgICAgICAgICAgICAgIHVzZXJfZGF0YVsncm9sZSddID0gTm9u ZQotICAgICAgICAgICAgcmVzcG9uc2UgPSBzZWxmLnVwZGF0ZV9jb25uZWN0aW9uKHVzZXJfZGF0 YT11c2VyX2RhdGEpCi0gICAgICAgICAgICBhY3R1YWxfcmVzcG9uc2VfY29kZSA9IHJlc3BvbnNl LnN0YXR1c19jb2RlCi0gICAgICAgICAgICBleHBlY3RlZF9yZXNwb25zZV9jb2RlID0gc2VsZi5l eHBlY3RlZF9kYXRhWydzdGF0dXNfY29kZSddCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBy ZXNwb25zZSA9IHNlbGYudXBkYXRlX2Nvbm5lY3Rpb24oKQotICAgICAgICAgICAgYWN0dWFsX3Jl c3BvbnNlX2NvZGUgPSByZXNwb25zZS5zdGF0dXNfY29kZQotICAgICAgICAgICAgZXhwZWN0ZWRf cmVzcG9uc2VfY29kZSA9IHNlbGYuZXhwZWN0ZWRfZGF0YVsnc3RhdHVzX2NvZGUnXQotCi0gICAg ICAgIHNlbGYuYXNzZXJ0RXF1YWwoYWN0dWFsX3Jlc3BvbnNlX2NvZGUsIGV4cGVjdGVkX3Jlc3Bv bnNlX2NvZGUpCi0KLSAgICBkZWYgdGVhckRvd24oc2VsZik6Ci0gICAgICAgICIiIlRoaXMgZnVu Y3Rpb24gZGlzY29ubmVjdCBkYXRhYmFzZS4iIiIKLSAgICAgICAgZGF0YWJhc2VfdXRpbHMuZGlz Y29ubmVjdF9kYXRhYmFzZShzZWxmLCBzZWxmLnNpZCwKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBzZWxmLmRpZCkKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL3Rv b2xzL2RhdGFncmlkL3Rlc3RzL3Rlc3RfZGF0YV9ncmlkX3ZhbGlkYXRlX2ZpbHRlci5weSBiL3dl Yi9wZ2FkbWluL3Rvb2xzL2RhdGFncmlkL3Rlc3RzL3Rlc3RfZGF0YV9ncmlkX3ZhbGlkYXRlX2Zp bHRlci5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZWYzMWYwNzE2Li4wMDAwMDAw MDAKLS0tIGEvd2ViL3BnYWRtaW4vdG9vbHMvZGF0YWdyaWQvdGVzdHMvdGVzdF9kYXRhX2dyaWRf dmFsaWRhdGVfZmlsdGVyLnB5CisrKyAvZGV2L251bGwKQEAgLTEsOTIgKzAsMCBAQAotIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMKLSMKLSMgcGdBZG1pbiA0IC0gUG9zdGdyZVNRTCBUb29scwotIwotIyBDb3B5 cmlnaHQgKEMpIDIwMTMgLSAyMDIyLCBUaGUgcGdBZG1pbiBEZXZlbG9wbWVudCBUZWFtCi0jIFRo aXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgdGhlIFBvc3RncmVTUUwgTGljZW5jZQotIwot IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMKLQotCi1pbXBvcnQganNvbgotaW1wb3J0IHV1aWQKLWltcG9ydCBy YW5kb20KLQotZnJvbSB1bml0dGVzdC5tb2NrIGltcG9ydCBwYXRjaAotZnJvbSBwZ2FkbWluLmJy b3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy50ZXN0cyBpbXBvcnQgdXRpbHMg YXMgXAotICAgIGRhdGFiYXNlX3V0aWxzCi0KLWZyb20gcGdhZG1pbi51dGlscy5yb3V0ZSBpbXBv cnQgQmFzZVRlc3RHZW5lcmF0b3IKLWZyb20gcmVncmVzc2lvbiBpbXBvcnQgcGFyZW50X25vZGVf ZGljdAotZnJvbSByZWdyZXNzaW9uLnB5dGhvbl90ZXN0X3V0aWxzIGltcG9ydCB0ZXN0X3V0aWxz IGFzIHV0aWxzCi1mcm9tIHJlZ3Jlc3Npb24udGVzdF9zZXR1cCBpbXBvcnQgY29uZmlnX2RhdGEK LWZyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMuc2No ZW1hcy50ZXN0cyBpbXBvcnQgXAotICAgIHV0aWxzIGFzIHNjaGVtYV91dGlscwotZnJvbSBwZ2Fk bWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy5zY2hlbWFzLnRhYmxl cy50ZXN0cyBcCi0gICAgaW1wb3J0IHV0aWxzIGFzIHRhYmxlc191dGlscwotZnJvbSAuIGltcG9y dCB1dGlscyBhcyBkYXRhX2dyaWRfdXRpbHMKLWZyb20gcGdhZG1pbi51dGlscy5leGNlcHRpb24g aW1wb3J0IEV4ZWN1dGVFcnJvcgotCi0KLWNsYXNzIERhdGFncmlkVmFsaWRhdGVGaWx0ZXJUZXN0 Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6Ci0gICAgIiIiCi0gICAgVGhpcyB3aWxsIHZhbGlkYXRl IGZpbHRlciBjb25uZWN0aW9uLgotICAgICIiIgotCi0gICAgc2NlbmFyaW9zID0gdXRpbHMuZ2Vu ZXJhdGVfc2NlbmFyaW9zKAotICAgICAgICAnZGF0YV9ncmlkX3ZhbGlkYXRlX2ZpbHRlcicsCi0g ICAgICAgIGRhdGFfZ3JpZF91dGlscy50ZXN0X2Nhc2VzCi0gICAgKQotCi0gICAgZGVmIHNldFVw KHNlbGYpOgotICAgICAgICBzZWxmLmRhdGFiYXNlX2luZm8gPSBwYXJlbnRfbm9kZV9kaWN0WyJk YXRhYmFzZSJdWy0xXQotICAgICAgICBzZWxmLmRiX25hbWUgPSBzZWxmLmRhdGFiYXNlX2luZm9b ImRiX25hbWUiXQotICAgICAgICBzZWxmLmRpZCA9IHNlbGYuZGF0YWJhc2VfaW5mb1siZGJfaWQi XQotICAgICAgICBzZWxmLnNpZCA9IHBhcmVudF9ub2RlX2RpY3RbInNlcnZlciJdWy0xXVsic2Vy dmVyX2lkIl0KLSAgICAgICAgc2VsZi5zZ2lkID0gY29uZmlnX2RhdGFbJ3NlcnZlcl9ncm91cCdd Ci0KLSAgICAgICAgZGJfY29uID0gZGF0YWJhc2VfdXRpbHMuY29ubmVjdF9kYXRhYmFzZShzZWxm LCB1dGlscy5TRVJWRVJfR1JPVVAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgc2VsZi5zaWQsIHNlbGYuZGlkKQotICAgICAgICBpZiBub3QgZGJfY29u WydkYXRhJ11bImNvbm5lY3RlZCJdOgotICAgICAgICAgICAgcmFpc2UgRXhlY3V0ZUVycm9yKCJD b3VsZCBub3QgY29ubmVjdCB0byBkYXRhYmFzZSB0byBhZGQgYSB0YWJsZS4iKQotICAgICAgICBz ZWxmLnNjaGVtYV9pZCA9IHBhcmVudF9ub2RlX2RpY3RbJ3NjaGVtYSddWy0xXVsic2NoZW1hX2lk Il0KLSAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSA9IHBhcmVudF9ub2RlX2RpY3RbJ3NjaGVtYSdd Wy0xXVsic2NoZW1hX25hbWUiXQotICAgICAgICBzY2hlbWFfcmVzcG9uc2UgPSBzY2hlbWFfdXRp bHMudmVyaWZ5X3NjaGVtYXMoc2VsZi5zZXJ2ZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmRiX25hbWUsCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNjaGVtYV9uYW1l KQotICAgICAgICBpZiBub3Qgc2NoZW1hX3Jlc3BvbnNlOgotICAgICAgICAgICAgcmFpc2UgRXhl Y3V0ZUVycm9yKCJDb3VsZCBub3QgZmluZCB0aGUgc2NoZW1hIHRvIGFkZCBhIHRhYmxlLiIpCi0g ICAgICAgIHNlbGYudGFibGVfbmFtZSA9ICJ0YWJsZV9mb3Jfd2l6YXJkJXMiICUgKHN0cih1dWlk LnV1aWQ0KCkpWzE6OF0pCi0gICAgICAgIHNlbGYudGFibGVfaWQgPSB0YWJsZXNfdXRpbHMuY3Jl YXRlX3RhYmxlKHNlbGYuc2VydmVyLCBzZWxmLmRiX25hbWUsCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2NoZW1hX25hbWUsCi0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYudGFibGVfbmFt ZSkKLQotICAgIGRlZiB2YWxpZGF0ZV9maWx0ZXIoc2VsZik6Ci0gICAgICAgIHJlc3BvbnNlID0g c2VsZi50ZXN0ZXIucG9zdCgKLSAgICAgICAgICAgIHNlbGYudXJsICsgc3RyKHNlbGYuc2lkKSAr ICcvJyArIHN0cihzZWxmLmRpZCkgKyAnLycgKwotICAgICAgICAgICAgc3RyKHNlbGYudGFibGVf aWQpLAotICAgICAgICAgICAgZGF0YT1qc29uLmR1bXBzKHNlbGYudGVzdF9kYXRhKSwKLSAgICAg ICAgICAgIGNvbnRlbnRfdHlwZT0naHRtbC9qc29uJwotICAgICAgICApCi0gICAgICAgIHJldHVy biByZXNwb25zZQotCi0gICAgZGVmIHJ1blRlc3Qoc2VsZik6Ci0gICAgICAgICIiIiBUaGlzIGZ1 bmN0aW9uIHdpbGwgdXBkYXRlIHF1ZXJ5IHRvb2wgY29ubmVjdGlvbi4iIiIKLQotICAgICAgICBp ZiBzZWxmLmlzX3Bvc2l0aXZlX3Rlc3Q6Ci0gICAgICAgICAgICByZXNwb25zZSA9IHNlbGYudmFs aWRhdGVfZmlsdGVyKCkKLSAgICAgICAgICAgIGFjdHVhbF9yZXNwb25zZV9jb2RlID0gcmVzcG9u c2Uuc3RhdHVzX2NvZGUKLSAgICAgICAgICAgIGV4cGVjdGVkX3Jlc3BvbnNlX2NvZGUgPSBzZWxm LmV4cGVjdGVkX2RhdGFbJ3N0YXR1c19jb2RlJ10KLSAgICAgICAgZWxzZToKLSAgICAgICAgICAg IHdpdGggcGF0Y2goc2VsZi5tb2NrX2RhdGFbImZ1bmN0aW9uX25hbWUiXSwKLSAgICAgICAgICAg ICAgICAgICAgICAgcmV0dXJuX3ZhbHVlPWV2YWwoc2VsZi5tb2NrX2RhdGFbInJldHVybl92YWx1 ZSJdKSk6Ci0gICAgICAgICAgICAgICAgcmVzcG9uc2UgPSBzZWxmLnZhbGlkYXRlX2ZpbHRlcigp Ci0gICAgICAgICAgICAgICAgYWN0dWFsX3Jlc3BvbnNlX2NvZGUgPSByZXNwb25zZS5zdGF0dXNf Y29kZQotICAgICAgICAgICAgICAgIGV4cGVjdGVkX3Jlc3BvbnNlX2NvZGUgPSBzZWxmLmV4cGVj dGVkX2RhdGFbJ3N0YXR1c19jb2RlJ10KLQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGFjdHVh bF9yZXNwb25zZV9jb2RlLCBleHBlY3RlZF9yZXNwb25zZV9jb2RlKQotCi0gICAgZGVmIHRlYXJE b3duKHNlbGYpOgotICAgICAgICAiIiJUaGlzIGZ1bmN0aW9uIGRpc2Nvbm5lY3QgZGF0YWJhc2Uu IiIiCi0gICAgICAgIGRhdGFiYXNlX3V0aWxzLmRpc2Nvbm5lY3RfZGF0YWJhc2Uoc2VsZiwgc2Vs Zi5zaWQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5k aWQpCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi90b29scy9kYXRhZ3JpZC90ZXN0cy90ZXN0X2lu aXRpYWxpemVfZGF0YV9ncmlkLnB5IGIvd2ViL3BnYWRtaW4vdG9vbHMvZGF0YWdyaWQvdGVzdHMv dGVzdF9pbml0aWFsaXplX2RhdGFfZ3JpZC5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDhjMjUzYmUxLi4wMDAwMDAwMDAKLS0tIGEvd2ViL3BnYWRtaW4vdG9vbHMvZGF0YWdyaWQv dGVzdHMvdGVzdF9pbml0aWFsaXplX2RhdGFfZ3JpZC5weQorKysgL2Rldi9udWxsCkBAIC0xLDEw OSArMCwwIEBACi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIwotIyBwZ0FkbWluIDQgLSBQb3N0Z3JlU1FM IFRvb2xzCi0jCi0jIENvcHlyaWdodCAoQykgMjAxMyAtIDIwMjIsIFRoZSBwZ0FkbWluIERldmVs b3BtZW50IFRlYW0KLSMgVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciB0aGUgUG9zdGdy ZVNRTCBMaWNlbmNlCi0jCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi0KLWltcG9ydCBqc29uCi1pbXBv cnQgdXVpZAotaW1wb3J0IHJhbmRvbQotCi1mcm9tIHVuaXR0ZXN0Lm1vY2sgaW1wb3J0IHBhdGNo Ci1mcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnRl c3RzIGltcG9ydCB1dGlscyBhcyBcCi0gICAgZGF0YWJhc2VfdXRpbHMKLQotZnJvbSBwZ2FkbWlu LnV0aWxzLnJvdXRlIGltcG9ydCBCYXNlVGVzdEdlbmVyYXRvcgotZnJvbSByZWdyZXNzaW9uIGlt cG9ydCBwYXJlbnRfbm9kZV9kaWN0Ci1mcm9tIHJlZ3Jlc3Npb24ucHl0aG9uX3Rlc3RfdXRpbHMg aW1wb3J0IHRlc3RfdXRpbHMgYXMgdXRpbHMKLWZyb20gcmVncmVzc2lvbi50ZXN0X3NldHVwIGlt cG9ydCBjb25maWdfZGF0YQotZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2 ZXJzLmRhdGFiYXNlcy5zY2hlbWFzLnRlc3RzIGltcG9ydCBcCi0gICAgdXRpbHMgYXMgc2NoZW1h X3V0aWxzCi1mcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJh c2VzLnNjaGVtYXMudGFibGVzLnRlc3RzIFwKLSAgICBpbXBvcnQgdXRpbHMgYXMgdGFibGVzX3V0 aWxzCi1mcm9tIC4gaW1wb3J0IHV0aWxzIGFzIGRhdGFfZ3JpZF91dGlscwotZnJvbSBwZ2FkbWlu LnV0aWxzLmV4Y2VwdGlvbiBpbXBvcnQgRXhlY3V0ZUVycm9yCi0KLQotY2xhc3MgRGF0YWdyaWRJ bml0aWFsaXplVGVzdENhc2UoQmFzZVRlc3RHZW5lcmF0b3IpOgotICAgICIiIgotICAgIFRoaXMg d2lsbCBJbml0aWFsaXplIGRhdGFncmlkCi0gICAgIiIiCi0KLSAgICBzY2VuYXJpb3MgPSB1dGls cy5nZW5lcmF0ZV9zY2VuYXJpb3MoCi0gICAgICAgICdkYXRhX2dyaWRfaW5pdGlhbGl6ZScsCi0g ICAgICAgIGRhdGFfZ3JpZF91dGlscy50ZXN0X2Nhc2VzCi0gICAgKQotCi0gICAgZGVmIHNldFVw KHNlbGYpOgotICAgICAgICBzZWxmLmRhdGFiYXNlX2luZm8gPSBwYXJlbnRfbm9kZV9kaWN0WyJk YXRhYmFzZSJdWy0xXQotICAgICAgICBzZWxmLmRiX25hbWUgPSBzZWxmLmRhdGFiYXNlX2luZm9b ImRiX25hbWUiXQotICAgICAgICBzZWxmLmRpZCA9IHNlbGYuZGF0YWJhc2VfaW5mb1siZGJfaWQi XQotICAgICAgICBzZWxmLnNpZCA9IHBhcmVudF9ub2RlX2RpY3RbInNlcnZlciJdWy0xXVsic2Vy dmVyX2lkIl0KLSAgICAgICAgc2VsZi5zZ2lkID0gY29uZmlnX2RhdGFbJ3NlcnZlcl9ncm91cCdd Ci0KLSAgICAgICAgZGJfY29uID0gZGF0YWJhc2VfdXRpbHMuY29ubmVjdF9kYXRhYmFzZShzZWxm LCB1dGlscy5TRVJWRVJfR1JPVVAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgc2VsZi5zaWQsIHNlbGYuZGlkKQotICAgICAgICBpZiBub3QgZGJfY29u WydkYXRhJ11bImNvbm5lY3RlZCJdOgotICAgICAgICAgICAgcmFpc2UgRXhlY3V0ZUVycm9yKCJD b3VsZCBub3QgY29ubmVjdCB0byBkYXRhYmFzZSB0byBhZGQgYSB0YWJsZS4iKQotCi0gICAgICAg IHNlbGYuc2NoZW1hX2lkID0gcGFyZW50X25vZGVfZGljdFsnc2NoZW1hJ11bLTFdWyJzY2hlbWFf aWQiXQotICAgICAgICBzZWxmLnNjaGVtYV9uYW1lID0gcGFyZW50X25vZGVfZGljdFsnc2NoZW1h J11bLTFdWyJzY2hlbWFfbmFtZSJdCi0gICAgICAgIHNjaGVtYV9yZXNwb25zZSA9IHNjaGVtYV91 dGlscy52ZXJpZnlfc2NoZW1hcyhzZWxmLnNlcnZlciwKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZGJfbmFtZSwKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2NoZW1hX25h bWUpCi0gICAgICAgIGlmIG5vdCBzY2hlbWFfcmVzcG9uc2U6Ci0gICAgICAgICAgICByYWlzZSBF eGVjdXRlRXJyb3IoIkNvdWxkIG5vdCBmaW5kIHRoZSBzY2hlbWEgdG8gYWRkIGEgdGFibGUuIikK LSAgICAgICAgc2VsZi50YWJsZV9uYW1lID0gInRhYmxlX2Zvcl93aXphcmQlcyIgJSAoc3RyKHV1 aWQudXVpZDQoKSlbMTo4XSkKLSAgICAgICAgc2VsZi50YWJsZV9pZCA9IHRhYmxlc191dGlscy5j cmVhdGVfdGFibGUoc2VsZi5zZXJ2ZXIsIHNlbGYuZGJfbmFtZSwKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSwKLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi50YWJsZV9u YW1lKQotICAgICAgICBzZWxmLnRyYW5zX2lkID0gc3RyKHJhbmRvbS5yYW5kaW50KDEsIDk5OTk5 OTkpKQotICAgICAgICBxdF9pbml0ID0gZGF0YV9ncmlkX3V0aWxzLl9pbml0X3F1ZXJ5X3Rvb2wo c2VsZiwgc2VsZi50cmFuc19pZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHNlbGYuc2dpZCwgc2VsZi5zaWQsCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmRpZCkKLQotICAgICAgICBpZiBu b3QgcXRfaW5pdFsnc3VjY2VzcyddOgotICAgICAgICAgICAgcmFpc2UgRXhlY3V0ZUVycm9yKCJD b3VsZCBub3QgaW5pdGlhbGl6ZSBxdWVyeSB0b29sLiIpCi0KLSAgICBkZWYgaW5pdGlhbGl6ZV9k YXRhZ3JpZChzZWxmKToKLSAgICAgICAgaWYgc2VsZi50ZXN0X2RhdGE6Ci0gICAgICAgICAgICBy ZXNwb25zZSA9IHNlbGYudGVzdGVyLnBvc3QoCi0gICAgICAgICAgICAgICAgc2VsZi51cmwgKyBz dHIoc2VsZi50cmFuc19pZCkgKyAnLzQvdGFibGUvJyArCi0gICAgICAgICAgICAgICAgc3RyKHNl bGYuc2dpZCkgKyAnLycgKyBzdHIoc2VsZi5zaWQpICsgJy8nICsKLSAgICAgICAgICAgICAgICBz dHIoc2VsZi5kaWQpICsgJy8nICsgc3RyKHNlbGYudGFibGVfaWQpLAotICAgICAgICAgICAgICAg IGRhdGE9anNvbi5kdW1wcyhzZWxmLnRlc3RfZGF0YSksCi0gICAgICAgICAgICAgICAgY29udGVu dF90eXBlPSdodG1sL2pzb24nCi0gICAgICAgICAgICApCi0gICAgICAgIGVsc2U6Ci0gICAgICAg ICAgICByZXNwb25zZSA9IHNlbGYudGVzdGVyLnBvc3QoCi0gICAgICAgICAgICAgICAgc2VsZi51 cmwgKyBzdHIoc2VsZi50cmFuc19pZCkgKyAnLzQvdGFibGUvJyArCi0gICAgICAgICAgICAgICAg c3RyKHNlbGYuc2dpZCkgKyAnLycgKyBzdHIoc2VsZi5zaWQpICsgJy8nICsKLSAgICAgICAgICAg ICAgICBzdHIoc2VsZi5kaWQpICsgJy8nICsgc3RyKHNlbGYudGFibGVfaWQpLAotICAgICAgICAg ICAgICAgIGNvbnRlbnRfdHlwZT0naHRtbC9qc29uJwotICAgICAgICAgICAgKQotICAgICAgICBy ZXR1cm4gcmVzcG9uc2UKLQotICAgIGRlZiBydW5UZXN0KHNlbGYpOgotICAgICAgICAiIiIgVGhp cyBmdW5jdGlvbiB3aWxsIHVwZGF0ZSBxdWVyeSB0b29sIGNvbm5lY3Rpb24uIiIiCi0KLSAgICAg ICAgaWYgc2VsZi5pc19wb3NpdGl2ZV90ZXN0OgotICAgICAgICAgICAgcmVzcG9uc2UgPSBzZWxm LmluaXRpYWxpemVfZGF0YWdyaWQoKQotICAgICAgICAgICAgYWN0dWFsX3Jlc3BvbnNlX2NvZGUg PSByZXNwb25zZS5zdGF0dXNfY29kZQotICAgICAgICAgICAgZXhwZWN0ZWRfcmVzcG9uc2VfY29k ZSA9IHNlbGYuZXhwZWN0ZWRfZGF0YVsnc3RhdHVzX2NvZGUnXQotICAgICAgICBlbHNlOgotICAg ICAgICAgICAgd2l0aCBwYXRjaChzZWxmLm1vY2tfZGF0YVsiZnVuY3Rpb25fbmFtZSJdLAotICAg ICAgICAgICAgICAgICAgICAgICByZXR1cm5fdmFsdWU9ZXZhbChzZWxmLm1vY2tfZGF0YVsicmV0 dXJuX3ZhbHVlIl0pKToKLSAgICAgICAgICAgICAgICByZXNwb25zZSA9IHNlbGYuaW5pdGlhbGl6 ZV9kYXRhZ3JpZCgpCi0gICAgICAgICAgICAgICAgYWN0dWFsX3Jlc3BvbnNlX2NvZGUgPSByZXNw b25zZS5zdGF0dXNfY29kZQotICAgICAgICAgICAgICAgIGV4cGVjdGVkX3Jlc3BvbnNlX2NvZGUg PSBzZWxmLmV4cGVjdGVkX2RhdGFbJ3N0YXR1c19jb2RlJ10KLQotICAgICAgICBzZWxmLmFzc2Vy dEVxdWFsKGFjdHVhbF9yZXNwb25zZV9jb2RlLCBleHBlY3RlZF9yZXNwb25zZV9jb2RlKQotCi0g ICAgZGVmIHRlYXJEb3duKHNlbGYpOgotICAgICAgICAiIiJUaGlzIGZ1bmN0aW9uIGRpc2Nvbm5l Y3QgZGF0YWJhc2UuIiIiCi0gICAgICAgIGRhdGFiYXNlX3V0aWxzLmRpc2Nvbm5lY3RfZGF0YWJh c2Uoc2VsZiwgc2VsZi5zaWQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgc2VsZi5kaWQpCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi90b29scy9kYXRhZ3JpZC90 ZXN0cy91dGlscy5weSBiL3dlYi9wZ2FkbWluL3Rvb2xzL2RhdGFncmlkL3Rlc3RzL3V0aWxzLnB5 CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3ODgzMWFiY2UuLjAwMDAwMDAwMAotLS0g YS93ZWIvcGdhZG1pbi90b29scy9kYXRhZ3JpZC90ZXN0cy91dGlscy5weQorKysgL2Rldi9udWxs CkBAIC0xLDMzICswLDAgQEAKLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0jCi0jIHBnQWRtaW4gNCAtIFBv c3RncmVTUUwgVG9vbHMKLSMKLSMgQ29weXJpZ2h0IChDKSAyMDEzIC0gMjAyMiwgVGhlIHBnQWRt aW4gRGV2ZWxvcG1lbnQgVGVhbQotIyBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIHRo ZSBQb3N0Z3JlU1FMIExpY2VuY2UKLSMKLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi1pbXBvcnQgb3MKLWlt cG9ydCBqc29uCi0KLWZpbGVfbmFtZSA9IG9zLnBhdGguYmFzZW5hbWUoX19maWxlX18pCi1DVVJS RU5UX1BBVEggPSBvcy5wYXRoLmRpcm5hbWUob3MucGF0aC5yZWFscGF0aChfX2ZpbGVfXykpCi13 aXRoIG9wZW4oQ1VSUkVOVF9QQVRIICsgIi9kYXRhZ3JpZF90ZXN0X2RhdGEuanNvbiIpIGFzIGRh dGFfZmlsZToKLSAgICB0ZXN0X2Nhc2VzID0ganNvbi5sb2FkKGRhdGFfZmlsZSkKLQotCi1kZWYg X2luaXRfcXVlcnlfdG9vbChzZWxmLCB0cmFuc19pZCwgc2VydmVyX2dyb3VwLCBzZXJ2ZXJfaWQs IGRiX2lkKToKLSAgICBRVUVSWV9UT09MX0lOSVRfVVJMID0gJy9kYXRhZ3JpZC9pbml0aWFsaXpl L3F1ZXJ5X3Rvb2wnCi0KLSAgICBxdF9pbml0ID0gc2VsZi50ZXN0ZXIucG9zdCgKLSAgICAgICAg J3swfS97MX0vezJ9L3szfS97NH0nLmZvcm1hdCgKLSAgICAgICAgICAgIFFVRVJZX1RPT0xfSU5J VF9VUkwsCi0gICAgICAgICAgICB0cmFuc19pZCwKLSAgICAgICAgICAgIHNlcnZlcl9ncm91cCwK LSAgICAgICAgICAgIHNlcnZlcl9pZCwKLSAgICAgICAgICAgIGRiX2lkCi0gICAgICAgICksCi0g ICAgICAgIGZvbGxvd19yZWRpcmVjdHM9VHJ1ZQotICAgICkKLSAgICBhc3NlcnQgcXRfaW5pdC5z dGF0dXNfY29kZSA9PSAyMDAKLSAgICBxdF9pbml0ID0ganNvbi5sb2FkcyhxdF9pbml0LmRhdGEu ZGVjb2RlKCd1dGYtOCcpKQotICAgIHJldHVybiBxdF9pbml0CmRpZmYgLS1naXQgYS93ZWIvcGdh ZG1pbi90b29scy9kZWJ1Z2dlci9zdGF0aWMvanMvZGVidWdnZXIuanMgYi93ZWIvcGdhZG1pbi90 b29scy9kZWJ1Z2dlci9zdGF0aWMvanMvZGVidWdnZXIuanMKaW5kZXggNDRjZDUzYzQ3Li4wYWM4 MjkzYzMgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL3Rvb2xzL2RlYnVnZ2VyL3N0YXRpYy9qcy9k ZWJ1Z2dlci5qcworKysgYi93ZWIvcGdhZG1pbi90b29scy9kZWJ1Z2dlci9zdGF0aWMvanMvZGVi dWdnZXIuanMKQEAgLTE0LDggKzE0LDggQEAgZGVmaW5lKFsKICAgJ2FsZXJ0aWZ5JywgJ3NvdXJj ZXMvcGdhZG1pbicsICdwZ2FkbWluLmJyb3dzZXInLAogICAnYmFja2JvbmUnLCAncGdhZG1pbi5i YWNrZ3JpZCcsICdjb2RlbWlycm9yJywgJ3BnYWRtaW4uYmFja2Zvcm0nLAogICAncGdhZG1pbi50 b29scy5kZWJ1Z2dlci51aScsICdwZ2FkbWluLnRvb2xzLmRlYnVnZ2VyLnV0aWxzJywKLSAgJ3Rv b2xzL2RhdGFncmlkL3N0YXRpYy9qcy9zaG93X3F1ZXJ5X3Rvb2wnLCAnc291cmNlcy91dGlscycs Ci0gICdwZ2FkbWluLmF1dGhlbnRpY2F0ZS5rZXJiZXJvcycsICd0b29scy9kYXRhZ3JpZC9zdGF0 aWMvanMvZGF0YWdyaWRfcGFuZWxfdGl0bGUnLAorICAndG9vbHMvc3FsZWRpdG9yL3N0YXRpYy9q cy9zaG93X3F1ZXJ5X3Rvb2wnLCAnc291cmNlcy91dGlscycsCisgICdwZ2FkbWluLmF1dGhlbnRp Y2F0ZS5rZXJiZXJvcycsICd0b29scy9zcWxlZGl0b3Ivc3RhdGljL2pzL3NxbGVkaXRvcl90aXRs ZScsCiAgICd3Y2RvY2tlcicsICdwZ2FkbWluLmJyb3dzZXIuZnJhbWUnLAogXSwgZnVuY3Rpb24o CiAgIGdldHRleHQsIHVybF9mb3IsICQsIF8sIEFsZXJ0aWZ5LCBwZ0FkbWluLCBwZ0Jyb3dzZXIs IEJhY2tib25lLCBCYWNrZ3JpZCwKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL3Rvb2xzL2RlYnVn Z2VyL3N0YXRpYy9qcy9kZWJ1Z2dlcl91dGlscy5qcyBiL3dlYi9wZ2FkbWluL3Rvb2xzL2RlYnVn Z2VyL3N0YXRpYy9qcy9kZWJ1Z2dlcl91dGlscy5qcwppbmRleCA4MzUyYWU4OTUuLmZiYzJmNGI3 YyAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vdG9vbHMvZGVidWdnZXIvc3RhdGljL2pzL2RlYnVn Z2VyX3V0aWxzLmpzCisrKyBiL3dlYi9wZ2FkbWluL3Rvb2xzL2RlYnVnZ2VyL3N0YXRpYy9qcy9k ZWJ1Z2dlcl91dGlscy5qcwpAQCAtNiw4ICs2LDggQEAKIC8vIFRoaXMgc29mdHdhcmUgaXMgcmVs ZWFzZWQgdW5kZXIgdGhlIFBvc3RncmVTUUwgTGljZW5jZQogLy8KIC8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ci1pbXBvcnQge2dlbmVyYXRlVGl0bGV9IGZyb20gJy4uLy4uLy4uL2RhdGFncmlkL3N0YXRpYy9q cy9kYXRhZ3JpZF9wYW5lbF90aXRsZSc7Ci1pbXBvcnQge19zZXRfZHluYW1pY190YWJ9IGZyb20g Jy4uLy4uLy4uL2RhdGFncmlkL3N0YXRpYy9qcy9zaG93X3F1ZXJ5X3Rvb2wnOworaW1wb3J0IHtn ZW5lcmF0ZVRpdGxlfSBmcm9tICcuLi8uLi8uLi9zcWxlZGl0b3Ivc3RhdGljL2pzL3NxbGVkaXRv cl90aXRsZSc7CitpbXBvcnQge19zZXRfZHluYW1pY190YWJ9IGZyb20gJy4uLy4uLy4uL3NxbGVk aXRvci9zdGF0aWMvanMvc2hvd19xdWVyeV90b29sJzsKIAogZnVuY3Rpb24gc2V0Rm9jdXNUb0Rl YnVnZ2VyRWRpdG9yKGVkaXRvciwgY29tbWFuZCkgewogICBjb25zdCBUQUIgPSA5OwpkaWZmIC0t Z2l0IGEvd2ViL3BnYWRtaW4vdG9vbHMvZXJkL3N0YXRpYy9qcy9lcmRfbW9kdWxlLmpzIGIvd2Vi L3BnYWRtaW4vdG9vbHMvZXJkL3N0YXRpYy9qcy9lcmRfbW9kdWxlLmpzCmluZGV4IGI0MTg4ODVl My4uOWEwZTczMDliIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi90b29scy9lcmQvc3RhdGljL2pz L2VyZF9tb2R1bGUuanMKKysrIGIvd2ViL3BnYWRtaW4vdG9vbHMvZXJkL3N0YXRpYy9qcy9lcmRf bW9kdWxlLmpzCkBAIC03LDcgKzcsNyBAQAogLy8KIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCiAKLWltcG9ydCB7Z2V0UGFuZWxU aXRsZX0gZnJvbSAndG9vbHMvZGF0YWdyaWQvc3RhdGljL2pzL2RhdGFncmlkX3BhbmVsX3RpdGxl JzsKK2ltcG9ydCB7Z2V0UGFuZWxUaXRsZX0gZnJvbSAndG9vbHMvc3FsZWRpdG9yL3N0YXRpYy9q cy9zcWxlZGl0b3JfdGl0bGUnOwogaW1wb3J0IHtnZXRSYW5kb21JbnQsIHJlZ2lzdGVyRGV0YWNo RXZlbnR9IGZyb20gJ3NvdXJjZXMvdXRpbHMnOwogaW1wb3J0IE5vdGlmeSBmcm9tICcuLi8uLi8u Li8uLi9zdGF0aWMvanMvaGVscGVycy9Ob3RpZmllcic7CiAKZGlmZiAtLWdpdCBhL3dlYi9wZ2Fk bWluL3Rvb2xzL2VyZC9zdGF0aWMvanMvZXJkX3Rvb2wvdWlfY29tcG9uZW50cy9Cb2R5V2lkZ2V0 LmpzeCBiL3dlYi9wZ2FkbWluL3Rvb2xzL2VyZC9zdGF0aWMvanMvZXJkX3Rvb2wvdWlfY29tcG9u ZW50cy9Cb2R5V2lkZ2V0LmpzeAppbmRleCBhZmQzNjg5YjQuLjhkMjA3MDcwOSAxMDA2NDQKLS0t IGEvd2ViL3BnYWRtaW4vdG9vbHMvZXJkL3N0YXRpYy9qcy9lcmRfdG9vbC91aV9jb21wb25lbnRz L0JvZHlXaWRnZXQuanN4CisrKyBiL3dlYi9wZ2FkbWluL3Rvb2xzL2VyZC9zdGF0aWMvanMvZXJk X3Rvb2wvdWlfY29tcG9uZW50cy9Cb2R5V2lkZ2V0LmpzeApAQCAtMjIsNyArMjIsNyBAQCBpbXBv cnQgRmxvYXRpbmdOb3RlIGZyb20gJy4vRmxvYXRpbmdOb3RlJzsKIGltcG9ydCB7c2V0UGFuZWxU aXRsZX0gZnJvbSAnLi4vLi4vZXJkX21vZHVsZSc7CiBpbXBvcnQgZ2V0dGV4dCBmcm9tICdzb3Vy Y2VzL2dldHRleHQnOwogaW1wb3J0IHVybF9mb3IgZnJvbSAnc291cmNlcy91cmxfZm9yJzsKLWlt cG9ydCB7c2hvd0VSRFNxbFRvb2x9IGZyb20gJ3Rvb2xzL2RhdGFncmlkL3N0YXRpYy9qcy9zaG93 X3F1ZXJ5X3Rvb2wnOworaW1wb3J0IHtzaG93RVJEU3FsVG9vbH0gZnJvbSAndG9vbHMvc3FsZWRp dG9yL3N0YXRpYy9qcy9zaG93X3F1ZXJ5X3Rvb2wnOwogaW1wb3J0ICd3Y2RvY2tlcic7CiBpbXBv cnQgVGhlbWUgZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vc3RhdGljL2pzL1RoZW1lJzsKIGltcG9y dCBUYWJsZVNjaGVtYSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9icm93c2VyL3NlcnZlcl9ncm91 cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvc3RhdGljL2pzL3RhYmxlLnVpJzsK ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL3Rvb2xzL3BzcWwvc3RhdGljL2pzL3BzcWxfbW9kdWxl LmpzIGIvd2ViL3BnYWRtaW4vdG9vbHMvcHNxbC9zdGF0aWMvanMvcHNxbF9tb2R1bGUuanMKaW5k ZXggZTMzODAxNTJjLi5mNzBmMTkwMWEgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL3Rvb2xzL3Bz cWwvc3RhdGljL2pzL3BzcWxfbW9kdWxlLmpzCisrKyBiL3dlYi9wZ2FkbWluL3Rvb2xzL3BzcWwv c3RhdGljL2pzL3BzcWxfbW9kdWxlLmpzCkBAIC0xOCw3ICsxOCw3IEBAIGltcG9ydCB7cmV0cmll dmVBbmNlc3Rvck9mVHlwZVNlcnZlcn0gZnJvbSAnc291cmNlcy90cmVlL3RyZWVfdXRpbHMnOwog aW1wb3J0IHBnV2luZG93IGZyb20gJ3NvdXJjZXMvd2luZG93JzsKIGltcG9ydCBOb3RpZnkgZnJv bSAnLi4vLi4vLi4vLi4vc3RhdGljL2pzL2hlbHBlcnMvTm90aWZpZXInOwogCi1pbXBvcnQge2dl bmVyYXRlVGl0bGUsIHJlZnJlc2hfZGJfbm9kZX0gZnJvbSAndG9vbHMvZGF0YWdyaWQvc3RhdGlj L2pzL2RhdGFncmlkX3BhbmVsX3RpdGxlJzsKK2ltcG9ydCB7Z2VuZXJhdGVUaXRsZSwgcmVmcmVz aF9kYl9ub2RlfSBmcm9tICd0b29scy9zcWxlZGl0b3Ivc3RhdGljL2pzL3NxbGVkaXRvcl90aXRs ZSc7CiAKIAogZXhwb3J0IGZ1bmN0aW9uIHNldFBhbmVsVGl0bGUocHNxbFRvb2xQYW5lbCwgcGFu ZWxUaXRsZSkgewpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vdG9vbHMvc2NoZW1hX2RpZmYvc3Rh dGljL2pzL3NjaGVtYV9kaWZmX3VpLmpzIGIvd2ViL3BnYWRtaW4vdG9vbHMvc2NoZW1hX2RpZmYv c3RhdGljL2pzL3NjaGVtYV9kaWZmX3VpLmpzCmluZGV4IGQ0N2MyNjZhNC4uNzIzNTYwZTJkIDEw MDY0NAotLS0gYS93ZWIvcGdhZG1pbi90b29scy9zY2hlbWFfZGlmZi9zdGF0aWMvanMvc2NoZW1h X2RpZmZfdWkuanMKKysrIGIvd2ViL3BnYWRtaW4vdG9vbHMvc2NoZW1hX2RpZmYvc3RhdGljL2pz L3NjaGVtYV9kaWZmX3VpLmpzCkBAIC0xNSw4ICsxNSw4IEBAIGltcG9ydCBCYWNrYm9uZSBmcm9t ICdiYWNrYm9uZSc7CiBpbXBvcnQgU2xpY2sgZnJvbSAnc291cmNlcy8uLi9idW5kbGUvc2xpY2tn cmlkJzsKIGltcG9ydCBwZ0FkbWluIGZyb20gJ3NvdXJjZXMvcGdhZG1pbic7CiBpbXBvcnQge3Nl dFBHQ1NSRlRva2VufSBmcm9tICdzb3VyY2VzL2NzcmYnOwotaW1wb3J0IHtnZW5lcmF0ZVNjcmlw dH0gZnJvbSAndG9vbHMvZGF0YWdyaWQvc3RhdGljL2pzL3Nob3dfcXVlcnlfdG9vbCc7Ci1pbXBv cnQgJ3BnYWRtaW4uc3FsZWRpdG9yJzsKK2ltcG9ydCB7Z2VuZXJhdGVTY3JpcHR9IGZyb20gJ3Rv b2xzL3NxbGVkaXRvci9zdGF0aWMvanMvc2hvd19xdWVyeV90b29sJzsKK2ltcG9ydCAncGdhZG1p bi50b29scy5zcWxlZGl0b3InOwogaW1wb3J0IHBnV2luZG93IGZyb20gJ3NvdXJjZXMvd2luZG93 JzsKIGltcG9ydCBfIGZyb20gJ3VuZGVyc2NvcmUnOwogaW1wb3J0IE5vdGlmeSBmcm9tICcuLi8u Li8uLi8uLi9zdGF0aWMvanMvaGVscGVycy9Ob3RpZmllcic7CmRpZmYgLS1naXQgYS93ZWIvcGdh ZG1pbi90b29scy9zZWFyY2hfb2JqZWN0cy9zdGF0aWMvanMvc2VhcmNoX29iamVjdHNfZGlhbG9n LmpzIGIvd2ViL3BnYWRtaW4vdG9vbHMvc2VhcmNoX29iamVjdHMvc3RhdGljL2pzL3NlYXJjaF9v YmplY3RzX2RpYWxvZy5qcwppbmRleCBhZjhkMGNmYjMuLjQ0ZDBlMGMzYyAxMDA2NDQKLS0tIGEv d2ViL3BnYWRtaW4vdG9vbHMvc2VhcmNoX29iamVjdHMvc3RhdGljL2pzL3NlYXJjaF9vYmplY3Rz X2RpYWxvZy5qcworKysgYi93ZWIvcGdhZG1pbi90b29scy9zZWFyY2hfb2JqZWN0cy9zdGF0aWMv anMvc2VhcmNoX29iamVjdHNfZGlhbG9nLmpzCkBAIC05LDcgKzksNyBAQAogCiBpbXBvcnQgZ2V0 dGV4dCBmcm9tICdzb3VyY2VzL2dldHRleHQnOwogaW1wb3J0IHtEaWFsb2d9IGZyb20gJ3NvdXJj ZXMvYWxlcnRpZnkvZGlhbG9nJzsKLWltcG9ydCB7Z2V0UGFuZWxUaXRsZX0gZnJvbSAndG9vbHMv ZGF0YWdyaWQvc3RhdGljL2pzL2RhdGFncmlkX3BhbmVsX3RpdGxlJzsKK2ltcG9ydCB7Z2V0UGFu ZWxUaXRsZX0gZnJvbSAndG9vbHMvc3FsZWRpdG9yL3N0YXRpYy9qcy9zcWxlZGl0b3JfdGl0bGUn OwogaW1wb3J0IHtyZXRyaWV2ZUFuY2VzdG9yT2ZUeXBlRGF0YWJhc2V9IGZyb20gJ3NvdXJjZXMv dHJlZS90cmVlX3V0aWxzJzsKIAogZXhwb3J0IGRlZmF1bHQgY2xhc3MgU2VhcmNoT2JqZWN0c0Rp YWxvZyBleHRlbmRzIERpYWxvZyB7CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi90b29scy9zcWxl ZGl0b3IvX19pbml0X18ucHkgYi93ZWIvcGdhZG1pbi90b29scy9zcWxlZGl0b3IvX19pbml0X18u cHkKaW5kZXggNGNlNTkyYWE4Li42NTk1MjE3NzcgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL3Rv b2xzL3NxbGVkaXRvci9fX2luaXRfXy5weQorKysgYi93ZWIvcGdhZG1pbi90b29scy9zcWxlZGl0 b3IvX19pbml0X18ucHkKQEAgLTExLDE2ICsxMSwyMSBAQAogaW1wb3J0IG9zCiBpbXBvcnQgcGlj a2xlCiBpbXBvcnQgcmUKK2ltcG9ydCByYW5kb20KIGZyb20gdXJsbGliLnBhcnNlIGltcG9ydCB1 bnF1b3RlCitmcm9tIHRocmVhZGluZyBpbXBvcnQgTG9jawogCiBpbXBvcnQgc2ltcGxlanNvbiBh cyBqc29uCi1mcm9tIGNvbmZpZyBpbXBvcnQgUEdfREVGQVVMVF9EUklWRVIsIE9OX0RFTUFORF9S RUNPUkRfQ09VTlQKK2Zyb20gY29uZmlnIGltcG9ydCBQR19ERUZBVUxUX0RSSVZFUiwgT05fREVN QU5EX1JFQ09SRF9DT1VOVCxcCisgICAgQUxMT1dfU0FWRV9QQVNTV09SRAorZnJvbSB3ZXJremV1 Zy51c2VyX2FnZW50IGltcG9ydCBVc2VyQWdlbnQKIGZyb20gZmxhc2sgaW1wb3J0IFJlc3BvbnNl LCB1cmxfZm9yLCByZW5kZXJfdGVtcGxhdGUsIHNlc3Npb24sIGN1cnJlbnRfYXBwCi1mcm9tIGZs YXNrIGltcG9ydCByZXF1ZXN0LCBqc29uaWZ5Citmcm9tIGZsYXNrIGltcG9ydCByZXF1ZXN0CiBm cm9tIGZsYXNrX2JhYmVsIGltcG9ydCBnZXR0ZXh0CiBmcm9tIGZsYXNrX3NlY3VyaXR5IGltcG9y dCBsb2dpbl9yZXF1aXJlZCwgY3VycmVudF91c2VyCiBmcm9tIHBnYWRtaW4ubWlzYy5maWxlX21h bmFnZXIgaW1wb3J0IEZpbGVtYW5hZ2VyCi1mcm9tIHBnYWRtaW4udG9vbHMuc3FsZWRpdG9yLmNv bW1hbmQgaW1wb3J0IFF1ZXJ5VG9vbENvbW1hbmQKK2Zyb20gcGdhZG1pbi50b29scy5zcWxlZGl0 b3IuY29tbWFuZCBpbXBvcnQgUXVlcnlUb29sQ29tbWFuZCwgT2JqZWN0UmVnaXN0cnksIFwKKyAg ICBTUUxGaWx0ZXIKIGZyb20gcGdhZG1pbi50b29scy5zcWxlZGl0b3IudXRpbHMuY29uc3RhbnRf ZGVmaW5pdGlvbiBpbXBvcnQgQVNZTkNfT0ssIFwKICAgICBBU1lOQ19FWEVDVVRJT05fQUJPUlRF RCwgXAogICAgIENPTk5FQ1RJT05fU1RBVFVTX01FU1NBR0VfTUFQUElORywgVFhfU1RBVFVTX0lO RVJST1IKQEAgLTMzLDcgKzM4LDggQEAgZnJvbSBwZ2FkbWluLnV0aWxzLmFqYXggaW1wb3J0IG1h a2VfanNvbl9yZXNwb25zZSwgYmFkX3JlcXVlc3QsIFwKICAgICBzdWNjZXNzX3JldHVybiwgaW50 ZXJuYWxfc2VydmVyX2Vycm9yCiBmcm9tIHBnYWRtaW4udXRpbHMuZHJpdmVyIGltcG9ydCBnZXRf ZHJpdmVyCiBmcm9tIHBnYWRtaW4udXRpbHMuZXhjZXB0aW9uIGltcG9ydCBDb25uZWN0aW9uTG9z dCwgU1NIVHVubmVsQ29ubmVjdGlvbkxvc3QsIFwKLSAgICBDcnlwdEtleU1pc3NpbmcKKyAgICBD cnlwdEtleU1pc3NpbmcsIE9iamVjdEdvbmUKK2Zyb20gcGdhZG1pbi5icm93c2VyLnV0aWxzIGlt cG9ydCB1bmRlcnNjb3JlX3VuZXNjYXBlCiBmcm9tIHBnYWRtaW4udXRpbHMubWVudSBpbXBvcnQg TWVudUl0ZW0KIGZyb20gcGdhZG1pbi51dGlscy5zcWxhdXRvY29tcGxldGUuYXV0b2NvbXBsZXRl IGltcG9ydCBTUUxBdXRvQ29tcGxldGUKIGZyb20gcGdhZG1pbi50b29scy5zcWxlZGl0b3IudXRp bHMucXVlcnlfdG9vbF9wcmVmZXJlbmNlcyBpbXBvcnQgXApAQCAtNDgsMTEgKzU0LDEzIEBAIGZy b20gcGdhZG1pbi51dGlscy5jb25zdGFudHMgaW1wb3J0IE1JTUVUWVBFX0FQUF9KUywgXAogICAg IFNFUlZFUl9DT05ORUNUSU9OX0NMT1NFRCwgRVJST1JfTVNHX1RSQU5TX0lEX05PVF9GT1VORCwg RVJST1JfRkVUQ0hJTkdfREFUQQogZnJvbSBwZ2FkbWluLm1vZGVsIGltcG9ydCBTZXJ2ZXIsIFNl cnZlckdyb3VwCiBmcm9tIHBnYWRtaW4udG9vbHMuc2NoZW1hX2RpZmYubm9kZV9yZWdpc3RyeSBp bXBvcnQgU2NoZW1hRGlmZlJlZ2lzdHJ5Citmcm9tIHBnYWRtaW4uc2V0dGluZ3MgaW1wb3J0IGdl dF9zZXR0aW5nCitmcm9tIHBnYWRtaW4udXRpbHMucHJlZmVyZW5jZXMgaW1wb3J0IFByZWZlcmVu Y2VzCiAKIE1PRFVMRV9OQU1FID0gJ3NxbGVkaXRvcicKIFRSQU5TQUNUSU9OX1NUQVRVU19DSEVD S19GQUlMRUQgPSBnZXR0ZXh0KCJUcmFuc2FjdGlvbiBzdGF0dXMgY2hlY2sgZmFpbGVkLiIpCiBf Tk9ERVNfU1FMID0gJ25vZGVzLnNxbCcKLQorc3FsZWRpdG9yX2Nsb3NlX3Nlc3Npb25fbG9jayA9 IExvY2soKQogCiBjbGFzcyBTcWxFZGl0b3JNb2R1bGUoUGdBZG1pbk1vZHVsZSk6CiAgICAgIiIi CkBAIC03MywxMyArODEsNiBAQCBjbGFzcyBTcWxFZGl0b3JNb2R1bGUoUGdBZG1pbk1vZHVsZSk6 CiAgICAgICAgICAgICAgICAgICAgICB1cmw9dXJsX2ZvcignaGVscC5zdGF0aWMnLCBmaWxlbmFt ZT0naW5kZXguaHRtbCcpKQogICAgICAgICBdfQogCi0gICAgZGVmIGdldF9vd25famF2YXNjcmlw dHMoc2VsZik6Ci0gICAgICAgIHJldHVybiBbewotICAgICAgICAgICAgJ25hbWUnOiAncGdhZG1p bi5zcWxlZGl0b3InLAotICAgICAgICAgICAgJ3BhdGgnOiB1cmxfZm9yKCdzcWxlZGl0b3IuaW5k ZXgnKSArICJzcWxlZGl0b3IiLAotICAgICAgICAgICAgJ3doZW4nOiBOb25lCi0gICAgICAgIH1d Ci0KICAgICBkZWYgZ2V0X3BhbmVscyhzZWxmKToKICAgICAgICAgcmV0dXJuIFtdCiAKQEAgLTg5 LDYgKzkwLDE1IEBAIGNsYXNzIFNxbEVkaXRvck1vZHVsZShQZ0FkbWluTW9kdWxlKToKICAgICAg ICAgICAgIGxpc3Q6IFVSTCBlbmRwb2ludHMgZm9yIHNxbGVkaXRvciBtb2R1bGUKICAgICAgICAg IiIiCiAgICAgICAgIHJldHVybiBbCisgICAgICAgICAgICAnc3FsZWRpdG9yLmluaXRpYWxpemVf dmlld2RhdGEnLAorICAgICAgICAgICAgJ3NxbGVkaXRvci5pbml0aWFsaXplX3NxbGVkaXRvcics CisgICAgICAgICAgICAnc3FsZWRpdG9yLmluaXRpYWxpemVfc3FsZWRpdG9yX3dpdGhfZGlkJywK KyAgICAgICAgICAgICdzcWxlZGl0b3IuZmlsdGVyX3ZhbGlkYXRlJywKKyAgICAgICAgICAgICdz cWxlZGl0b3IuZmlsdGVyJywKKyAgICAgICAgICAgICdzcWxlZGl0b3IucGFuZWwnLAorICAgICAg ICAgICAgJ3NxbGVkaXRvci5jbG9zZScsCisgICAgICAgICAgICAnc3FsZWRpdG9yLnVwZGF0ZV9z cWxlZGl0b3JfY29ubmVjdGlvbicsCisKICAgICAgICAgICAgICdzcWxlZGl0b3Iudmlld19kYXRh X3N0YXJ0JywKICAgICAgICAgICAgICdzcWxlZGl0b3IucXVlcnlfdG9vbF9zdGFydCcsCiAgICAg ICAgICAgICAnc3FsZWRpdG9yLnBvbGwnLApAQCAtMTE3LDYgKzEyNyw3IEBAIGNsYXNzIFNxbEVk aXRvck1vZHVsZShQZ0FkbWluTW9kdWxlKToKICAgICAgICAgICAgICdzcWxlZGl0b3IuZ2V0X21h Y3JvcycsCiAgICAgICAgICAgICAnc3FsZWRpdG9yLnNldF9tYWNyb3MnLAogICAgICAgICAgICAg J3NxbGVkaXRvci5nZXRfbmV3X2Nvbm5lY3Rpb25fZGF0YScsCisgICAgICAgICAgICAnc3FsZWRp dG9yLmdldF9uZXdfY29ubmVjdGlvbl9zZXJ2ZXJzJywKICAgICAgICAgICAgICdzcWxlZGl0b3Iu Z2V0X25ld19jb25uZWN0aW9uX2RhdGFiYXNlJywKICAgICAgICAgICAgICdzcWxlZGl0b3IuZ2V0 X25ld19jb25uZWN0aW9uX3VzZXInLAogICAgICAgICAgICAgJ3NxbGVkaXRvci5fY2hlY2tfc2Vy dmVyX2Nvbm5lY3Rpb25fc3RhdHVzJywKQEAgLTEyNSw2ICsxMzYsMjAgQEAgY2xhc3MgU3FsRWRp dG9yTW9kdWxlKFBnQWRtaW5Nb2R1bGUpOgogICAgICAgICAgICAgJ3NxbGVkaXRvci5jb25uZWN0 X3NlcnZlcl93aXRoX3VzZXInLAogICAgICAgICBdCiAKKyAgICBkZWYgb25fbG9nb3V0KHNlbGYs IHVzZXIpOgorICAgICAgICAiIiIKKyAgICAgICAgVGhpcyBpcyBhIGNhbGxiYWNrIGZ1bmN0aW9u IHdoZW4gdXNlciBsb2dvdXQgZnJvbSBwZ0FkbWluCisgICAgICAgIDpwYXJhbSB1c2VyOgorICAg ICAgICA6cmV0dXJuOgorICAgICAgICAiIiIKKyAgICAgICAgd2l0aCBzcWxlZGl0b3JfY2xvc2Vf c2Vzc2lvbl9sb2NrOgorICAgICAgICAgICAgaWYgJ2dyaWREYXRhJyBpbiBzZXNzaW9uOgorICAg ICAgICAgICAgICAgIGZvciB0cmFuc19pZCBpbiBzZXNzaW9uWydncmlkRGF0YSddOgorICAgICAg ICAgICAgICAgICAgICBjbG9zZV9zcWxlZGl0b3Jfc2Vzc2lvbih0cmFuc19pZCkKKworICAgICAg ICAgICAgICAgICMgRGVsZXRlIGFsbCBncmlkIGRhdGEgZnJvbSBzZXNzaW9uIHZhcmlhYmxlCisg ICAgICAgICAgICAgICAgZGVsIHNlc3Npb25bJ2dyaWREYXRhJ10KKwogICAgIGRlZiByZWdpc3Rl cl9wcmVmZXJlbmNlcyhzZWxmKToKICAgICAgICAgcmVnaXN0ZXJfcXVlcnlfdG9vbF9wcmVmZXJl bmNlcyhzZWxmKQogCkBAIC0xNDAsNiArMTY1LDQ4MCBAQCBkZWYgaW5kZXgoKToKICAgICApCiAK IAorQGJsdWVwcmludC5yb3V0ZSgiL2ZpbHRlciIsIGVuZHBvaW50PSdmaWx0ZXInKQorQGxvZ2lu X3JlcXVpcmVkCitkZWYgc2hvd19maWx0ZXIoKToKKyAgICByZXR1cm4gcmVuZGVyX3RlbXBsYXRl KE1PRFVMRV9OQU1FICsgJy9maWx0ZXIuaHRtbCcpCisKKworQGJsdWVwcmludC5yb3V0ZSgKKyAg ICAnL2luaXRpYWxpemUvdmlld2RhdGEvPGludDp0cmFuc19pZD4vPGludDpjbWRfdHlwZT4vPG9i al90eXBlPi8nCisgICAgJzxpbnQ6c2dpZD4vPGludDpzaWQ+LzxpbnQ6ZGlkPi88aW50Om9ial9p ZD4nLAorICAgIG1ldGhvZHM9WyJQVVQiLCAiUE9TVCJdLAorICAgIGVuZHBvaW50PSJpbml0aWFs aXplX3ZpZXdkYXRhIgorKQorQGxvZ2luX3JlcXVpcmVkCitkZWYgaW5pdGlhbGl6ZV92aWV3ZGF0 YSh0cmFuc19pZCwgY21kX3R5cGUsIG9ial90eXBlLCBzZ2lkLCBzaWQsIGRpZCwgb2JqX2lkKToK KyAgICAiIiIKKyAgICBUaGlzIG1ldGhvZCBpcyByZXNwb25zaWJsZSBmb3IgY3JlYXRpbmcgYW4g YXN5bmNocm9ub3VzIGNvbm5lY3Rpb24uCisgICAgQWZ0ZXIgY3JlYXRpbmcgdGhlIGNvbm5lY3Rp b24gaXQgd2lsbCBpbnN0YW50aWF0ZSBhbmQgaW5pdGlhbGl6ZQorICAgIHRoZSBvYmplY3QgYXMg cGVyIHRoZSBvYmplY3QgdHlwZS4gSXQgd2lsbCBhbHNvIGNyZWF0ZSBhIHVuaXF1ZQorICAgIHRy YW5zYWN0aW9uIGlkIGFuZCBzdG9yZSB0aGUgaW5mb3JtYXRpb24gaW50byBzZXNzaW9uIHZhcmlh YmxlLgorCisgICAgQXJnczoKKyAgICAgICAgY21kX3R5cGU6IENvbnRhaW5zIHZhbHVlIGZvciB3 aGljaCBtZW51IGl0ZW0gaXMgY2xpY2tlZC4KKyAgICAgICAgb2JqX3R5cGU6IENvbnRhaW5zIHR5 cGUgb2Ygc2VsZWN0ZWQgb2JqZWN0IGZvciB3aGljaCBkYXRhIGdyaWQgdG8KKyAgICAgICAgYmUg cmVuZGVyCisgICAgICAgIHNnaWQ6IFNlcnZlciBncm91cCBJZAorICAgICAgICBzaWQ6IFNlcnZl ciBJZAorICAgICAgICBkaWQ6IERhdGFiYXNlIElkCisgICAgICAgIG9ial9pZDogSWQgb2YgY3Vy cmVudGx5IHNlbGVjdGVkIG9iamVjdAorICAgICIiIgorCisgICAgaWYgcmVxdWVzdC5kYXRhOgor ICAgICAgICBmaWx0ZXJfc3FsID0ganNvbi5sb2FkcyhyZXF1ZXN0LmRhdGEsIGVuY29kaW5nPSd1 dGYtOCcpCisgICAgZWxzZToKKyAgICAgICAgZmlsdGVyX3NxbCA9IHJlcXVlc3QuYXJncyBvciBy ZXF1ZXN0LmZvcm0KKworICAgICMgQ3JlYXRlIGFzeW5jaHJvbm91cyBjb25uZWN0aW9uIHVzaW5n IHJhbmRvbSBjb25uZWN0aW9uIGlkLgorICAgIGNvbm5faWQgPSBzdHIocmFuZG9tLnJhbmRpbnQo MSwgOTk5OTk5OSkpCisgICAgdHJ5OgorICAgICAgICBtYW5hZ2VyID0gZ2V0X2RyaXZlcihQR19E RUZBVUxUX0RSSVZFUikuY29ubmVjdGlvbl9tYW5hZ2VyKHNpZCkKKyAgICAgICAgIyBkZWZhdWx0 X2Nvbm4gaXMgc2FtZSBjb25uZWN0aW9uIHdoaWNoIGlzIGNyZWF0ZWQgd2hlbiB1c2VyIGNvbm5l Y3QgdG8KKyAgICAgICAgIyBkYXRhYmFzZSBmcm9tIHRyZWUKKyAgICAgICAgZGVmYXVsdF9jb25u ID0gbWFuYWdlci5jb25uZWN0aW9uKGRpZD1kaWQpCisgICAgICAgIGNvbm4gPSBtYW5hZ2VyLmNv bm5lY3Rpb24oZGlkPWRpZCwgY29ubl9pZD1jb25uX2lkLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGF1dG9fcmVjb25uZWN0PUZhbHNlLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHVzZV9iaW5hcnlfcGxhY2Vob2xkZXI9VHJ1ZSwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBhcnJheV90b19zdHJpbmc9VHJ1ZSkKKyAgICBleGNlcHQgKENv bm5lY3Rpb25Mb3N0LCBTU0hUdW5uZWxDb25uZWN0aW9uTG9zdCk6CisgICAgICAgIHJhaXNlCisg ICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgorICAgICAgICBjdXJyZW50X2FwcC5sb2dnZXIuZXJy b3IoZSkKKyAgICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1zZz1zdHIo ZSkpCisKKyAgICBzdGF0dXMsIG1zZyA9IGRlZmF1bHRfY29ubi5jb25uZWN0KCkKKyAgICBpZiBu b3Qgc3RhdHVzOgorICAgICAgICBjdXJyZW50X2FwcC5sb2dnZXIuZXJyb3IobXNnKQorICAgICAg ICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXN0cihtc2cpKQorCisgICAg c3RhdHVzLCBtc2cgPSBjb25uLmNvbm5lY3QoKQorICAgIGlmIG5vdCBzdGF0dXM6CisgICAgICAg IGN1cnJlbnRfYXBwLmxvZ2dlci5lcnJvcihtc2cpCisgICAgICAgIHJldHVybiBpbnRlcm5hbF9z ZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9c3RyKG1zZykpCisgICAgdHJ5OgorICAgICAgICAjIGlmIG9i amVjdCB0eXBlIGlzIHBhcnRpdGlvbiB0aGVuIGl0IGlzIG5vdGhpbmcgYnV0IGEgdGFibGUuCisg ICAgICAgIGlmIG9ial90eXBlID09ICdwYXJ0aXRpb24nOgorICAgICAgICAgICAgb2JqX3R5cGUg PSAndGFibGUnCisKKyAgICAgICAgIyBHZXQgdGhlIG9iamVjdCBhcyBwZXIgdGhlIG9iamVjdCB0 eXBlCisgICAgICAgIGNvbW1hbmRfb2JqID0gT2JqZWN0UmVnaXN0cnkuZ2V0X29iamVjdCgKKyAg ICAgICAgICAgIG9ial90eXBlLCBjb25uX2lkPWNvbm5faWQsIHNnaWQ9c2dpZCwgc2lkPXNpZCwK KyAgICAgICAgICAgIGRpZD1kaWQsIG9ial9pZD1vYmpfaWQsIGNtZF90eXBlPWNtZF90eXBlLAor ICAgICAgICAgICAgc3FsX2ZpbHRlcj1maWx0ZXJfc3FsCisgICAgICAgICkKKyAgICBleGNlcHQg T2JqZWN0R29uZToKKyAgICAgICAgcmFpc2UKKyAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6Cisg ICAgICAgIGN1cnJlbnRfYXBwLmxvZ2dlci5lcnJvcihlKQorICAgICAgICByZXR1cm4gaW50ZXJu YWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXN0cihlKSkKKworICAgIGlmICdncmlkRGF0YScgbm90 IGluIHNlc3Npb246CisgICAgICAgIHNxbF9ncmlkX2RhdGEgPSBkaWN0KCkKKyAgICBlbHNlOgor ICAgICAgICBzcWxfZ3JpZF9kYXRhID0gc2Vzc2lvblsnZ3JpZERhdGEnXQorCisgICAgIyBVc2Ug cGlja2xlIHRvIHN0b3JlIHRoZSBjb21tYW5kIG9iamVjdCB3aGljaCB3aWxsIGJlIHVzZWQgbGF0 ZXIgYnkgdGhlCisgICAgIyBzcWwgZ3JpZCBtb2R1bGUuCisgICAgc3FsX2dyaWRfZGF0YVtzdHIo dHJhbnNfaWQpXSA9IHsKKyAgICAgICAgIyAtMSBzcGVjaWZ5IHRoZSBoaWdoZXN0IHByb3RvY29s IHZlcnNpb24gYXZhaWxhYmxlCisgICAgICAgICdjb21tYW5kX29iaic6IHBpY2tsZS5kdW1wcyhj b21tYW5kX29iaiwgLTEpCisgICAgfQorCisgICAgIyBTdG9yZSB0aGUgZ3JpZCBkaWN0aW9uYXJ5 IGludG8gdGhlIHNlc3Npb24gdmFyaWFibGUKKyAgICBzZXNzaW9uWydncmlkRGF0YSddID0gc3Fs X2dyaWRfZGF0YQorCisgICAgcmV0dXJuIG1ha2VfanNvbl9yZXNwb25zZSgKKyAgICAgICAgZGF0 YT17CisgICAgICAgICAgICAnY29ubl9pZCc6IGNvbm5faWQKKyAgICAgICAgfQorICAgICkKKwor CitAYmx1ZXByaW50LnJvdXRlKAorICAgICcvcGFuZWwvPGludDp0cmFuc19pZD4nLAorICAgIG1l dGhvZHM9WyJQT1NUIl0sCisgICAgZW5kcG9pbnQ9J3BhbmVsJworKQorZGVmIHBhbmVsKHRyYW5z X2lkKToKKyAgICAiIiIKKyAgICBUaGlzIG1ldGhvZCBjYWxscyBpbmRleC5odG1sIHRvIHJlbmRl ciB0aGUgZGF0YSBncmlkLgorCisgICAgQXJnczoKKyAgICAgICAgdHJhbnNfaWQ6IHVuaXF1ZSB0 cmFuc2FjdGlvbiBpZAorICAgICIiIgorCisgICAgcGFyYW1zID0gTm9uZQorICAgIGlmIHJlcXVl c3QuYXJnczoKKyAgICAgICAgcGFyYW1zID0ge2s6IHYgZm9yIGssIHYgaW4gcmVxdWVzdC5hcmdz Lml0ZW1zKCl9CisKKyAgICBjbG9zZV91cmwgPSAnJworICAgIGlmIHJlcXVlc3QuZm9ybToKKyAg ICAgICAgcGFyYW1zWyd0aXRsZSddID0gdW5kZXJzY29yZV91bmVzY2FwZShyZXF1ZXN0LmZvcm1b J3RpdGxlJ10pCisgICAgICAgIGNsb3NlX3VybCA9IHJlcXVlc3QuZm9ybVsnY2xvc2VfdXJsJ10K KyAgICAgICAgaWYgJ3NxbF9maWx0ZXInIGluIHJlcXVlc3QuZm9ybToKKyAgICAgICAgICAgIHBh cmFtc1snc3FsX2ZpbHRlciddID0gcmVxdWVzdC5mb3JtWydzcWxfZmlsdGVyJ10KKyAgICAgICAg aWYgJ3F1ZXJ5X3VybCcgaW4gcmVxdWVzdC5mb3JtOgorICAgICAgICAgICAgcGFyYW1zWydxdWVy eV91cmwnXSA9IHJlcXVlc3QuZm9ybVsncXVlcnlfdXJsJ10KKworICAgIHBhcmFtc1sndHJhbnNf aWQnXSA9IHRyYW5zX2lkCisKKyAgICAjIFdlIG5lZWQgY2xpZW50IE9TIGluZm9ybWF0aW9uIHRv IHJlbmRlciBjb3JyZWN0IEtleWJvYXJkIHNob3J0Y3V0cworICAgIHBhcmFtc1snY2xpZW50X3Bs YXRmb3JtJ10gPSBVc2VyQWdlbnQocmVxdWVzdC5oZWFkZXJzLmdldCgnVXNlci1BZ2VudCcpKVwK KyAgICAgICAgLnBsYXRmb3JtCisKKyAgICBwYXJhbXNbJ2lzX2xpbnV4J10gPSBGYWxzZQorICAg IGZyb20gc3lzIGltcG9ydCBwbGF0Zm9ybSBhcyBfcGxhdGZvcm0KKyAgICBpZiAibGludXgiIGlu IF9wbGF0Zm9ybToKKyAgICAgICAgcGFyYW1zWydpc19saW51eCddID0gVHJ1ZQorCisgICAgIyBG ZXRjaCB0aGUgc2VydmVyIGRldGFpbHMKKyAgICBwYXJhbXNbJ2JnY29sb3InXSA9IE5vbmUKKyAg ICBwYXJhbXNbJ2ZnY29sb3InXSA9IE5vbmUKKworICAgIHMgPSBTZXJ2ZXIucXVlcnkuZmlsdGVy X2J5KGlkPXBhcmFtc1snc2lkJ10pLmZpcnN0KCkKKyAgICBpZiBzIGFuZCBzLmJnY29sb3I6Cisg ICAgICAgICMgSWYgYmFja2dyb3VuZCBpcyBzZXQgdG8gd2hpdGUgbWVhbnMgd2UgZG8gbm90IGhh dmUgdG8gY2hhbmdlCisgICAgICAgICMgdGhlIHRpdGxlIGJhY2tncm91bmQgZWxzZSBjaGFuZ2Ug aXQgYXMgcGVyIHVzZXIgc3BlY2lmaWVkCisgICAgICAgICMgYmFja2dyb3VuZAorICAgICAgICBp ZiBzLmJnY29sb3IgIT0gJyNmZmZmZmYnOgorICAgICAgICAgICAgcGFyYW1zWydiZ2NvbG9yJ10g PSBzLmJnY29sb3IKKyAgICAgICAgcGFyYW1zWydmZ2NvbG9yJ10gPSBzLmZnY29sb3Igb3IgJ2Js YWNrJworCisgICAgcGFyYW1zWydzZXJ2ZXJfbmFtZSddID0gcy5uYW1lCisgICAgcGFyYW1zWyd1 c2VybmFtZSddID0gcy51c2VybmFtZQorICAgIHBhcmFtc1snbGF5b3V0J10gPSBnZXRfc2V0dGlu ZygnU1FMRWRpdG9yL0xheW91dCcpCisgICAgcGFyYW1zWydtYWNyb3MnXSA9IGdldF91c2VyX21h Y3JvcygpCisgICAgcGFyYW1zWydpc19kZXNrdG9wX21vZGUnXSA9IGN1cnJlbnRfYXBwLlBHQURN SU5fUlVOVElNRQorCisgICAgcmV0dXJuIHJlbmRlcl90ZW1wbGF0ZSgKKyAgICAgICAgInNxbGVk aXRvci9pbmRleC5odG1sIiwKKyAgICAgICAgY2xvc2VfdXJsPWNsb3NlX3VybCwKKyAgICAgICAg cGFyYW1zPWpzb24uZHVtcHMocGFyYW1zKSwKKyAgICAgICAgcmVxdWlyZWpzPVRydWUsCisgICAg ICAgIGJhc2Vqcz1UcnVlLAorICAgICkKKworCitAYmx1ZXByaW50LnJvdXRlKAorICAgICcvaW5p dGlhbGl6ZS9zcWxlZGl0b3IvPGludDp0cmFuc19pZD4vPGludDpzZ2lkPi88aW50OnNpZD4vPGlu dDpkaWQ+JywKKyAgICBtZXRob2RzPVsiUE9TVCJdLCBlbmRwb2ludD0naW5pdGlhbGl6ZV9zcWxl ZGl0b3Jfd2l0aF9kaWQnCispCitAYmx1ZXByaW50LnJvdXRlKAorICAgICcvaW5pdGlhbGl6ZS9z cWxlZGl0b3IvPGludDp0cmFuc19pZD4vPGludDpzZ2lkPi88aW50OnNpZD4nLAorICAgIG1ldGhv ZHM9WyJQT1NUIl0sIGVuZHBvaW50PSdpbml0aWFsaXplX3NxbGVkaXRvcicKKykKK0Bsb2dpbl9y ZXF1aXJlZAorZGVmIGluaXRpYWxpemVfc3FsZWRpdG9yKHRyYW5zX2lkLCBzZ2lkLCBzaWQsIGRp ZD1Ob25lKToKKyAgICAiIiIKKyAgICBUaGlzIG1ldGhvZCBpcyByZXNwb25zaWJsZSBmb3IgaW5z dGFudGlhdGluZyBhbmQgaW5pdGlhbGl6aW5nCisgICAgdGhlIHF1ZXJ5IHRvb2wgb2JqZWN0LiBJ dCB3aWxsIGFsc28gY3JlYXRlIGEgdW5pcXVlCisgICAgdHJhbnNhY3Rpb24gaWQgYW5kIHN0b3Jl IHRoZSBpbmZvcm1hdGlvbiBpbnRvIHNlc3Npb24gdmFyaWFibGUuCisKKyAgICBBcmdzOgorICAg ICAgICBzZ2lkOiBTZXJ2ZXIgZ3JvdXAgSWQKKyAgICAgICAgc2lkOiBTZXJ2ZXIgSWQKKyAgICAg ICAgZGlkOiBEYXRhYmFzZSBJZAorICAgICIiIgorICAgIGNvbm5lY3QgPSBUcnVlCisgICAgIyBS ZWFkIHRoZSBkYXRhIGlmIHByZXNlbnQuIFNraXBwaW5nIHJlYWQgbWF5IGNhdXNlIGNvbm5lY3Rp b24KKyAgICAjIHJlc2V0IGVycm9yIGlmIGRhdGEgaXMgc2VudCBmcm9tIHRoZSBjbGllbnQKKyAg ICBpZiByZXF1ZXN0LmRhdGE6CisgICAgICAgIF8gPSByZXF1ZXN0LmRhdGEKKworICAgIHJlcV9h cmdzID0gcmVxdWVzdC5hcmdzCisgICAgaWYgKCdyZWNyZWF0ZScgaW4gcmVxX2FyZ3MgYW5kCisg ICAgICAgICAgICByZXFfYXJnc1sncmVjcmVhdGUnXSA9PSAnMScpOgorICAgICAgICBjb25uZWN0 ID0gRmFsc2UKKworICAgIGlzX2Vycm9yLCBlcnJtc2csIGNvbm5faWQsIHZlcnNpb24gPSBfaW5p dF9zcWxlZGl0b3IodHJhbnNfaWQsIGNvbm5lY3QsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2dpZCwgc2lkLCBkaWQpCisgICAgaWYg aXNfZXJyb3I6CisgICAgICAgIHJldHVybiBlcnJtc2cKKworICAgIHJldHVybiBtYWtlX2pzb25f cmVzcG9uc2UoCisgICAgICAgIGRhdGE9eworICAgICAgICAgICAgJ2Nvbm5JZCc6IHN0cihjb25u X2lkKSwKKyAgICAgICAgICAgICdzZXJ2ZXJWZXJzaW9uJzogdmVyc2lvbiwKKyAgICAgICAgfQor ICAgICkKKworCitkZWYgX2Nvbm5lY3QoY29ubiwgKiprd2FyZ3MpOgorICAgICIiIgorICAgIENv bm5lY3QgdGhlIGRhdGFiYXNlLgorICAgIDpwYXJhbSBjb25uOiBDb25uZWN0aW9uIGluc3RhbmNl LgorICAgIDpwYXJhbSBrd2FyZ3M6IHVzZXIsIHJvbGUgYW5kIHBhc3N3b3JkIGRhdGEgZnJvbSB1 c2VyLgorICAgIDpyZXR1cm46CisgICAgIiIiCisgICAgdXNlciA9IE5vbmUKKyAgICByb2xlID0g Tm9uZQorICAgIHBhc3N3b3JkID0gTm9uZQorICAgIGlzX2Fza19wYXNzd29yZCA9IEZhbHNlCisg ICAgaWYgJ3VzZXInIGluIGt3YXJncyBhbmQgJ3JvbGUnIGluIGt3YXJnczoKKyAgICAgICAgdXNl ciA9IGt3YXJnc1sndXNlciddCisgICAgICAgIHJvbGUgPSBrd2FyZ3NbJ3JvbGUnXSBpZiBrd2Fy Z3NbJ3JvbGUnXSBlbHNlIE5vbmUKKyAgICAgICAgcGFzc3dvcmQgPSBrd2FyZ3NbJ3Bhc3N3b3Jk J10gaWYga3dhcmdzWydwYXNzd29yZCddIGVsc2UgTm9uZQorICAgICAgICBpc19hc2tfcGFzc3dv cmQgPSBUcnVlCisgICAgaWYgdXNlcjoKKyAgICAgICAgc3RhdHVzLCBtc2cgPSBjb25uLmNvbm5l Y3QodXNlcj11c2VyLCByb2xlPXJvbGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHBhc3N3b3JkPXBhc3N3b3JkKQorICAgIGVsc2U6CisgICAgICAgIHN0YXR1cywgbXNnID0g Y29ubi5jb25uZWN0KCkKKworICAgIHJldHVybiBzdGF0dXMsIG1zZywgaXNfYXNrX3Bhc3N3b3Jk LCB1c2VyLCByb2xlLCBwYXNzd29yZAorCisKK2RlZiBfaW5pdF9zcWxlZGl0b3IodHJhbnNfaWQs IGNvbm5lY3QsIHNnaWQsIHNpZCwgZGlkLCAqKmt3YXJncyk6CisgICAgIyBDcmVhdGUgYXN5bmNo cm9ub3VzIGNvbm5lY3Rpb24gdXNpbmcgcmFuZG9tIGNvbm5lY3Rpb24gaWQuCisgICAgY29ubl9p ZCA9IHN0cihyYW5kb20ucmFuZGludCgxLCA5OTk5OTk5KSkKKworICAgIG1hbmFnZXIgPSBnZXRf ZHJpdmVyKFBHX0RFRkFVTFRfRFJJVkVSKS5jb25uZWN0aW9uX21hbmFnZXIoc2lkKQorCisgICAg aWYgZGlkIGlzIE5vbmU6CisgICAgICAgIGRpZCA9IG1hbmFnZXIuZGlkCisgICAgdHJ5OgorICAg ICAgICBjb21tYW5kX29iaiA9IE9iamVjdFJlZ2lzdHJ5LmdldF9vYmplY3QoCisgICAgICAgICAg ICAncXVlcnlfdG9vbCcsIGNvbm5faWQ9Y29ubl9pZCwgc2dpZD1zZ2lkLCBzaWQ9c2lkLCBkaWQ9 ZGlkCisgICAgICAgICkKKyAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CisgICAgICAgIGN1cnJl bnRfYXBwLmxvZ2dlci5lcnJvcihlKQorICAgICAgICByZXR1cm4gVHJ1ZSwgaW50ZXJuYWxfc2Vy dmVyX2Vycm9yKGVycm9ybXNnPXN0cihlKSksICcnLCAnJworCisgICAgdHJ5OgorICAgICAgICBj b25uID0gbWFuYWdlci5jb25uZWN0aW9uKGRpZD1kaWQsIGNvbm5faWQ9Y29ubl9pZCwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRvX3JlY29ubmVjdD1GYWxzZSwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2VfYmluYXJ5X3BsYWNlaG9sZGVyPVRydWUs CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJyYXlfdG9fc3RyaW5nPVRydWUp CisKKyAgICAgICAgaWYgY29ubmVjdDoKKyAgICAgICAgICAgIHN0YXR1cywgbXNnLCBpc19hc2tf cGFzc3dvcmQsIHVzZXIsIHJvbGUsIHBhc3N3b3JkID0gX2Nvbm5lY3QoCisgICAgICAgICAgICAg ICAgY29ubiwgKiprd2FyZ3MpCisgICAgICAgICAgICBpZiBub3Qgc3RhdHVzOgorICAgICAgICAg ICAgICAgIGN1cnJlbnRfYXBwLmxvZ2dlci5lcnJvcihtc2cpCisgICAgICAgICAgICAgICAgaWYg aXNfYXNrX3Bhc3N3b3JkOgorICAgICAgICAgICAgICAgICAgICBzZXJ2ZXIgPSBTZXJ2ZXIucXVl cnkuZmlsdGVyX2J5KGlkPXNpZCkuZmlyc3QoKQorICAgICAgICAgICAgICAgICAgICByZXR1cm4g VHJ1ZSwgbWFrZV9qc29uX3Jlc3BvbnNlKAorICAgICAgICAgICAgICAgICAgICAgICAgc3VjY2Vz cz0wLAorICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzPTQyOCwKKyAgICAgICAgICAgICAg ICAgICAgICAgIHJlc3VsdD1yZW5kZXJfdGVtcGxhdGUoCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgJ3NlcnZlcnMvcGFzc3dvcmQuaHRtbCcsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgc2VydmVyX2xhYmVsPXNlcnZlci5uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg IHVzZXJuYW1lPXVzZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJybXNnPW1zZywK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBfPWdldHRleHQsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgYWxsb3dfc2F2ZV9wYXNzd29yZD1UcnVlIGlmCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgQUxMT1dfU0FWRV9QQVNTV09SRCBhbmQKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzZXNzaW9uWydhbGxvd19zYXZlX3Bhc3N3b3JkJ10gZWxzZSBGYWxzZSwKKyAgICAg ICAgICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgICAgICAgICAgKSwgJycsICcnCisgICAg ICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFRydWUsIGludGVy bmFsX3NlcnZlcl9lcnJvcigKKyAgICAgICAgICAgICAgICAgICAgICAgIGVycm9ybXNnPXN0ciht c2cpKSwgJycsICcnCisgICAgZXhjZXB0IChDb25uZWN0aW9uTG9zdCwgU1NIVHVubmVsQ29ubmVj dGlvbkxvc3QpIGFzIGU6CisgICAgICAgIGN1cnJlbnRfYXBwLmxvZ2dlci5lcnJvcihlKQorICAg ICAgICByYWlzZQorICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKKyAgICAgICAgY3VycmVudF9h cHAubG9nZ2VyLmVycm9yKGUpCisgICAgICAgIHJldHVybiBUcnVlLCBpbnRlcm5hbF9zZXJ2ZXJf ZXJyb3IoZXJyb3Jtc2c9c3RyKGUpKSwgJycsICcnCisKKyAgICBpZiAnZ3JpZERhdGEnIG5vdCBp biBzZXNzaW9uOgorICAgICAgICBzcWxfZ3JpZF9kYXRhID0gZGljdCgpCisgICAgZWxzZToKKyAg ICAgICAgc3FsX2dyaWRfZGF0YSA9IHNlc3Npb25bJ2dyaWREYXRhJ10KKworICAgICMgU2V0IHRo ZSB2YWx1ZSBvZiBhdXRvIGNvbW1pdCBhbmQgYXV0byByb2xsYmFjayBzcGVjaWZpZWQgaW4gUHJl ZmVyZW5jZXMKKyAgICBwcmVmID0gUHJlZmVyZW5jZXMubW9kdWxlKCdzcWxlZGl0b3InKQorICAg IGNvbW1hbmRfb2JqLnNldF9hdXRvX2NvbW1pdChwcmVmLnByZWZlcmVuY2UoJ2F1dG9fY29tbWl0 JykuZ2V0KCkpCisgICAgY29tbWFuZF9vYmouc2V0X2F1dG9fcm9sbGJhY2socHJlZi5wcmVmZXJl bmNlKCdhdXRvX3JvbGxiYWNrJykuZ2V0KCkpCisKKyAgICAjIFVzZSBwaWNrbGUgdG8gc3RvcmUg dGhlIGNvbW1hbmQgb2JqZWN0IHdoaWNoIHdpbGwgYmUgdXNlZAorICAgICMgbGF0ZXIgYnkgdGhl IHNxbCBncmlkIG1vZHVsZS4KKyAgICBzcWxfZ3JpZF9kYXRhW3N0cih0cmFuc19pZCldID0gewor ICAgICAgICAjIC0xIHNwZWNpZnkgdGhlIGhpZ2hlc3QgcHJvdG9jb2wgdmVyc2lvbiBhdmFpbGFi bGUKKyAgICAgICAgJ2NvbW1hbmRfb2JqJzogcGlja2xlLmR1bXBzKGNvbW1hbmRfb2JqLCAtMSkK KyAgICB9CisKKyAgICAjIFN0b3JlIHRoZSBncmlkIGRpY3Rpb25hcnkgaW50byB0aGUgc2Vzc2lv biB2YXJpYWJsZQorICAgIHNlc3Npb25bJ2dyaWREYXRhJ10gPSBzcWxfZ3JpZF9kYXRhCisKKyAg ICByZXR1cm4gRmFsc2UsICcnLCBjb25uX2lkLCBtYW5hZ2VyLnZlcnNpb24KKworCitAYmx1ZXBy aW50LnJvdXRlKAorICAgICcvaW5pdGlhbGl6ZS9zcWxlZGl0b3IvdXBkYXRlX2Nvbm5lY3Rpb24v PGludDp0cmFuc19pZD4vJworICAgICc8aW50OnNnaWQ+LzxpbnQ6c2lkPi88aW50OmRpZD4nLAor ICAgIG1ldGhvZHM9WyJQT1NUIl0sIGVuZHBvaW50PSd1cGRhdGVfc3FsZWRpdG9yX2Nvbm5lY3Rp b24nCispCitkZWYgdXBkYXRlX3NxbGVkaXRvcl9jb25uZWN0aW9uKHRyYW5zX2lkLCBzZ2lkLCBz aWQsIGRpZCk6CisgICAgIyBSZW1vdmUgdHJhbnNhY3Rpb24gSWQuCisgICAgd2l0aCBzcWxlZGl0 b3JfY2xvc2Vfc2Vzc2lvbl9sb2NrOgorICAgICAgICBkYXRhID0ganNvbi5sb2FkcyhyZXF1ZXN0 LmRhdGEsIGVuY29kaW5nPSd1dGYtOCcpCisKKyAgICAgICAgaWYgJ2dyaWREYXRhJyBub3QgaW4g c2Vzc2lvbjoKKyAgICAgICAgICAgIHJldHVybiBtYWtlX2pzb25fcmVzcG9uc2UoZGF0YT17J3N0 YXR1cyc6IFRydWV9KQorCisgICAgICAgIGdyaWRfZGF0YSA9IHNlc3Npb25bJ2dyaWREYXRhJ10K KworICAgICAgICAjIFJldHVybiBmcm9tIHRoZSBmdW5jdGlvbiBpZiB0cmFuc2FjdGlvbiBpZCBu b3QgZm91bmQKKyAgICAgICAgaWYgc3RyKHRyYW5zX2lkKSBub3QgaW4gZ3JpZF9kYXRhOgorICAg ICAgICAgICAgcmV0dXJuIG1ha2VfanNvbl9yZXNwb25zZShkYXRhPXsnc3RhdHVzJzogVHJ1ZX0p CisKKyAgICAgICAgY29ubmVjdCA9IFRydWUKKworICAgICAgICByZXFfYXJncyA9IHJlcXVlc3Qu YXJncworICAgICAgICBpZiAoJ3JlY3JlYXRlJyBpbiByZXFfYXJncyBhbmQKKyAgICAgICAgICAg ICAgICByZXFfYXJnc1sncmVjcmVhdGUnXSA9PSAnMScpOgorICAgICAgICAgICAgY29ubmVjdCA9 IEZhbHNlCisKKyAgICAgICAgbmV3X3RyYW5zX2lkID0gc3RyKHJhbmRvbS5yYW5kaW50KDEsIDk5 OTk5OTkpKQorICAgICAgICBrd2FyZ3MgPSB7CisgICAgICAgICAgICAndXNlcic6IGRhdGFbJ3Vz ZXInXSwKKyAgICAgICAgICAgICdyb2xlJzogZGF0YVsncm9sZSddIGlmICdyb2xlJyBpbiBkYXRh IGVsc2UgTm9uZSwKKyAgICAgICAgICAgICdwYXNzd29yZCc6IGRhdGFbJ3Bhc3N3b3JkJ10gaWYg J3Bhc3N3b3JkJyBpbiBkYXRhIGVsc2UgTm9uZQorICAgICAgICB9CisKKyAgICAgICAgaXNfZXJy b3IsIGVycm1zZywgY29ubl9pZCwgdmVyc2lvbiA9IF9pbml0X3NxbGVkaXRvcigKKyAgICAgICAg ICAgIG5ld190cmFuc19pZCwgY29ubmVjdCwgc2dpZCwgc2lkLCBkaWQsICoqa3dhcmdzKQorCisg ICAgICAgIGlmIGlzX2Vycm9yOgorICAgICAgICAgICAgcmV0dXJuIGVycm1zZworICAgICAgICBl bHNlOgorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgICMgQ2hlY2sgdGhlIHRyYW5z YWN0aW9uIGFuZCBjb25uZWN0aW9uIHN0YXR1cworICAgICAgICAgICAgICAgIHN0YXR1cywgZXJy b3JfbXNnLCBjb25uLCB0cmFuc19vYmosIHNlc3Npb25fb2JqID0gXAorICAgICAgICAgICAgICAg ICAgICBjaGVja190cmFuc2FjdGlvbl9zdGF0dXModHJhbnNfaWQpCisKKyAgICAgICAgICAgICAg ICBzdGF0dXMsIGVycm9yX21zZywgbmV3X2Nvbm4sIG5ld190cmFuc19vYmosIG5ld19zZXNzaW9u X29iaiA9IFwKKyAgICAgICAgICAgICAgICAgICAgY2hlY2tfdHJhbnNhY3Rpb25fc3RhdHVzKG5l d190cmFuc19pZCkKKworICAgICAgICAgICAgICAgIG5ld19zZXNzaW9uX29ialsncHJpbWFyeV9r ZXlzJ10gPSBzZXNzaW9uX29ialsKKyAgICAgICAgICAgICAgICAgICAgJ3ByaW1hcnlfa2V5cydd IGlmICdwcmltYXJ5X2tleXMnIGluIHNlc3Npb25fb2JqIGVsc2UgTm9uZQorICAgICAgICAgICAg ICAgIG5ld19zZXNzaW9uX29ialsnY29sdW1uc19pbmZvJ10gPSBzZXNzaW9uX29ialsKKyAgICAg ICAgICAgICAgICAgICAgJ2NvbHVtbnNfaW5mbyddIGlmICdjb2x1bW5zX2luZm8nIGluIHNlc3Np b25fb2JqIGVsc2UgTm9uZQorICAgICAgICAgICAgICAgIG5ld19zZXNzaW9uX29ialsnY2xpZW50 X3ByaW1hcnlfa2V5J10gPSBzZXNzaW9uX29ialsKKyAgICAgICAgICAgICAgICAgICAgJ2NsaWVu dF9wcmltYXJ5X2tleSddIGlmICdjbGllbnRfcHJpbWFyeV9rZXknXAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gc2Vzc2lvbl9vYmogZWxzZSBOb25lCisK KyAgICAgICAgICAgICAgICBjbG9zZV9zcWxlZGl0b3Jfc2Vzc2lvbih0cmFuc19pZCkKKyAgICAg ICAgICAgICAgICAjIFJlbW92ZSB0aGUgaW5mb3JtYXRpb24gb2YgdW5pcXVlIHRyYW5zYWN0aW9u IGlkIGZyb20gdGhlCisgICAgICAgICAgICAgICAgIyBzZXNzaW9uIHZhcmlhYmxlLgorICAgICAg ICAgICAgICAgIGdyaWRfZGF0YS5wb3Aoc3RyKHRyYW5zX2lkKSwgTm9uZSkKKyAgICAgICAgICAg ICAgICBzZXNzaW9uWydncmlkRGF0YSddID0gZ3JpZF9kYXRhCisgICAgICAgICAgICBleGNlcHQg RXhjZXB0aW9uIGFzIGU6CisgICAgICAgICAgICAgICAgY3VycmVudF9hcHAubG9nZ2VyLmVycm9y KGUpCisKKyAgICByZXR1cm4gbWFrZV9qc29uX3Jlc3BvbnNlKAorICAgICAgICBkYXRhPXsKKyAg ICAgICAgICAgICdjb25uSWQnOiBzdHIoY29ubl9pZCksCisgICAgICAgICAgICAnc2VydmVyVmVy c2lvbic6IHZlcnNpb24sCisgICAgICAgICAgICAndHJhbnNfaWQnOiBuZXdfdHJhbnNfaWQKKyAg ICAgICAgfQorICAgICkKKworCitAYmx1ZXByaW50LnJvdXRlKCcvY2xvc2UvPGludDp0cmFuc19p ZD4nLCBtZXRob2RzPVsiREVMRVRFIl0sIGVuZHBvaW50PSdjbG9zZScpCitkZWYgY2xvc2UodHJh bnNfaWQpOgorICAgICIiIgorICAgIFRoaXMgbWV0aG9kIGlzIHVzZWQgdG8gY2xvc2UgdGhlIGFz eW5jaHJvbm91cyBjb25uZWN0aW9uCisgICAgYW5kIHJlbW92ZSB0aGUgaW5mb3JtYXRpb24gb2Yg dW5pcXVlIHRyYW5zYWN0aW9uIGlkIGZyb20KKyAgICB0aGUgc2Vzc2lvbiB2YXJpYWJsZS4KKwor ICAgIEFyZ3M6CisgICAgICAgIHRyYW5zX2lkOiB1bmlxdWUgdHJhbnNhY3Rpb24gaWQKKyAgICAi IiIKKyAgICB3aXRoIHNxbGVkaXRvcl9jbG9zZV9zZXNzaW9uX2xvY2s6CisgICAgICAgIGlmICdn cmlkRGF0YScgbm90IGluIHNlc3Npb246CisgICAgICAgICAgICByZXR1cm4gbWFrZV9qc29uX3Jl c3BvbnNlKGRhdGE9eydzdGF0dXMnOiBUcnVlfSkKKworICAgICAgICBncmlkX2RhdGEgPSBzZXNz aW9uWydncmlkRGF0YSddCisgICAgICAgICMgUmV0dXJuIGZyb20gdGhlIGZ1bmN0aW9uIGlmIHRy YW5zYWN0aW9uIGlkIG5vdCBmb3VuZAorICAgICAgICBpZiBzdHIodHJhbnNfaWQpIG5vdCBpbiBn cmlkX2RhdGE6CisgICAgICAgICAgICByZXR1cm4gbWFrZV9qc29uX3Jlc3BvbnNlKGRhdGE9eydz dGF0dXMnOiBUcnVlfSkKKworICAgICAgICB0cnk6CisgICAgICAgICAgICBjbG9zZV9zcWxlZGl0 b3Jfc2Vzc2lvbih0cmFuc19pZCkKKyAgICAgICAgICAgICMgUmVtb3ZlIHRoZSBpbmZvcm1hdGlv biBvZiB1bmlxdWUgdHJhbnNhY3Rpb24gaWQgZnJvbSB0aGUKKyAgICAgICAgICAgICMgc2Vzc2lv biB2YXJpYWJsZS4KKyAgICAgICAgICAgIGdyaWRfZGF0YS5wb3Aoc3RyKHRyYW5zX2lkKSwgTm9u ZSkKKyAgICAgICAgICAgIHNlc3Npb25bJ2dyaWREYXRhJ10gPSBncmlkX2RhdGEKKyAgICAgICAg ZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgorICAgICAgICAgICAgY3VycmVudF9hcHAubG9nZ2VyLmVy cm9yKGUpCisgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNn PXN0cihlKSkKKworICAgIHJldHVybiBtYWtlX2pzb25fcmVzcG9uc2UoZGF0YT17J3N0YXR1cyc6 IFRydWV9KQorCisKK0BibHVlcHJpbnQucm91dGUoCisgICAgJy9maWx0ZXIvdmFsaWRhdGUvPGlu dDpzaWQ+LzxpbnQ6ZGlkPi88aW50Om9ial9pZD4nLAorICAgIG1ldGhvZHM9WyJQVVQiLCAiUE9T VCJdLCBlbmRwb2ludD0nZmlsdGVyX3ZhbGlkYXRlJworKQorQGxvZ2luX3JlcXVpcmVkCitkZWYg dmFsaWRhdGVfZmlsdGVyKHNpZCwgZGlkLCBvYmpfaWQpOgorICAgICIiIgorICAgIFRoaXMgbWV0 aG9kIGlzIHVzZWQgdG8gdmFsaWRhdGUgdGhlIHNxbCBmaWx0ZXIuCisKKyAgICBBcmdzOgorICAg ICAgICBzaWQ6IFNlcnZlciBJZAorICAgICAgICBkaWQ6IERhdGFiYXNlIElkCisgICAgICAgIG9i al9pZDogSWQgb2YgY3VycmVudGx5IHNlbGVjdGVkIG9iamVjdAorICAgICIiIgorICAgIGlmIHJl cXVlc3QuZGF0YToKKyAgICAgICAgZmlsdGVyX3NxbCA9IGpzb24ubG9hZHMocmVxdWVzdC5kYXRh LCBlbmNvZGluZz0ndXRmLTgnKQorICAgIGVsc2U6CisgICAgICAgIGZpbHRlcl9zcWwgPSByZXF1 ZXN0LmFyZ3Mgb3IgcmVxdWVzdC5mb3JtCisKKyAgICB0cnk6CisgICAgICAgICMgQ3JlYXRlIG9i amVjdCBvZiBTUUxGaWx0ZXIgY2xhc3MKKyAgICAgICAgc3FsX2ZpbHRlcl9vYmogPSBTUUxGaWx0 ZXIoc2lkPXNpZCwgZGlkPWRpZCwgb2JqX2lkPW9ial9pZCkKKworICAgICAgICAjIENhbGwgdmFs aWRhdGVfZmlsdGVyIG1ldGhvZCB0byB2YWxpZGF0ZSB0aGUgU1FMLgorICAgICAgICBzdGF0dXMs IHJlcyA9IHNxbF9maWx0ZXJfb2JqLnZhbGlkYXRlX2ZpbHRlcihmaWx0ZXJfc3FsKQorICAgIGV4 Y2VwdCBPYmplY3RHb25lOgorICAgICAgICByYWlzZQorICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMg ZToKKyAgICAgICAgY3VycmVudF9hcHAubG9nZ2VyLmVycm9yKGUpCisgICAgICAgIHJldHVybiBp bnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9c3RyKGUpKQorCisgICAgcmV0dXJuIG1ha2Vf anNvbl9yZXNwb25zZShkYXRhPXsnc3RhdHVzJzogc3RhdHVzLCAncmVzdWx0JzogcmVzfSkKKwor CitkZWYgY2xvc2Vfc3FsZWRpdG9yX3Nlc3Npb24odHJhbnNfaWQpOgorICAgICIiIgorICAgIFRo aXMgZnVuY3Rpb24gaXMgdXNlZCB0byBjYW5jZWwgdGhlIHRyYW5zYWN0aW9uIGFuZCByZWxlYXNl IHRoZSBjb25uZWN0aW9uLgorCisgICAgOnBhcmFtIHRyYW5zX2lkOiBUcmFuc2FjdGlvbiBpZAor ICAgIDpyZXR1cm46CisgICAgIiIiCisgICAgaWYgJ2dyaWREYXRhJyBpbiBzZXNzaW9uIGFuZCBz dHIodHJhbnNfaWQpIGluIHNlc3Npb25bJ2dyaWREYXRhJ106CisgICAgICAgIGNtZF9vYmpfc3Ry ID0gc2Vzc2lvblsnZ3JpZERhdGEnXVtzdHIodHJhbnNfaWQpXVsnY29tbWFuZF9vYmonXQorICAg ICAgICAjIFVzZSBwaWNrbGUubG9hZHMgZnVuY3Rpb24gdG8gZ2V0IHRoZSBjb21tYW5kIG9iamVj dAorICAgICAgICBjbWRfb2JqID0gcGlja2xlLmxvYWRzKGNtZF9vYmpfc3RyKQorCisgICAgICAg ICMgaWYgY29ubmVjdGlvbiBpZCBpcyBOb25lIHRoZW4gbm8gbmVlZCB0byByZWxlYXNlIHRoZSBj b25uZWN0aW9uCisgICAgICAgIGlmIGNtZF9vYmouY29ubl9pZCBpcyBub3QgTm9uZToKKyAgICAg ICAgICAgIG1hbmFnZXIgPSBnZXRfZHJpdmVyKAorICAgICAgICAgICAgICAgIFBHX0RFRkFVTFRf RFJJVkVSKS5jb25uZWN0aW9uX21hbmFnZXIoY21kX29iai5zaWQpCisgICAgICAgICAgICBpZiBt YW5hZ2VyIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgICAgIGNvbm4gPSBtYW5hZ2VyLmNvbm5l Y3Rpb24oCisgICAgICAgICAgICAgICAgICAgIGRpZD1jbWRfb2JqLmRpZCwgY29ubl9pZD1jbWRf b2JqLmNvbm5faWQpCisKKyAgICAgICAgICAgICAgICAjIFJlbGVhc2UgdGhlIGNvbm5lY3Rpb24K KyAgICAgICAgICAgICAgICBpZiBjb25uLmNvbm5lY3RlZCgpOgorICAgICAgICAgICAgICAgICAg ICBjb25uLmNhbmNlbF90cmFuc2FjdGlvbihjbWRfb2JqLmNvbm5faWQsIGNtZF9vYmouZGlkKQor ICAgICAgICAgICAgICAgICAgICBtYW5hZ2VyLnJlbGVhc2UoZGlkPWNtZF9vYmouZGlkLCBjb25u X2lkPWNtZF9vYmouY29ubl9pZCkKKworCiBkZWYgY2hlY2tfdHJhbnNhY3Rpb25fc3RhdHVzKHRy YW5zX2lkKToKICAgICAiIiIKICAgICBUaGlzIGZ1bmN0aW9uIGlzIHVzZWQgdG8gY2hlY2sgdGhl IHRyYW5zYWN0aW9uIGlkCkBAIC0xMzQ1LDcgKzE4NDQsNyBAQCBkZWYgc3RhcnRfcXVlcnlfZG93 bmxvYWRfdG9vbCh0cmFuc19pZCk6CiAgICAgICAgICAgICBlcnJvcm1zZz1UUkFOU0FDVElPTl9T VEFUVVNfQ0hFQ0tfRkFJTEVECiAgICAgICAgICkKIAotICAgIGRhdGEgPSByZXF1ZXN0LnZhbHVl cyBpZiByZXF1ZXN0LnZhbHVlcyBlbHNlIE5vbmUKKyAgICBkYXRhID0gcmVxdWVzdC52YWx1ZXMg aWYgcmVxdWVzdC52YWx1ZXMgZWxzZSByZXF1ZXN0Lmpzb24KICAgICBpZiBkYXRhIGlzIE5vbmU6 CiAgICAgICAgIHJldHVybiBtYWtlX2pzb25fcmVzcG9uc2UoCiAgICAgICAgICAgICBzdGF0dXM9 NDEwLApAQCAtMTUzNCw4ICsyMDMzLDEyIEBAIGRlZiBfY2hlY2tfc2VydmVyX2Nvbm5lY3Rpb25f c3RhdHVzKHNnaWQsIHNpZD1Ob25lKToKICAgICAnL25ld19jb25uZWN0aW9uX2RpYWxvZy88aW50 OnNnaWQ+LzxpbnQ6c2lkPicsCiAgICAgbWV0aG9kcz1bIkdFVCJdLCBlbmRwb2ludD0nZ2V0X25l d19jb25uZWN0aW9uX2RhdGEnCiApCitAYmx1ZXByaW50LnJvdXRlKAorICAgICcvbmV3X2Nvbm5l Y3Rpb25fZGlhbG9nJywKKyAgICBtZXRob2RzPVsiR0VUIl0sIGVuZHBvaW50PSdnZXRfbmV3X2Nv bm5lY3Rpb25fc2VydmVycycKKykKIEBsb2dpbl9yZXF1aXJlZAotZGVmIGdldF9uZXdfY29ubmVj dGlvbl9kYXRhKHNnaWQsIHNpZD1Ob25lKToKK2RlZiBnZXRfbmV3X2Nvbm5lY3Rpb25fZGF0YShz Z2lkPU5vbmUsIHNpZD1Ob25lKToKICAgICAiIiIKICAgICBUaGlzIG1ldGhvZCBpcyB1c2VkIHRv IGdldCByZXF1aXJlZCBkYXRhIGZvciBnZXQgbmV3IGNvbm5lY3Rpb24uCiAgICAgOmV4dHJhY3Rf c3FsX2Zyb21fbmV0d29ya19wYXJhbWV0ZXJzLApAQCAtMTg4NCw3ICsyMzg3LDggQEAgZGVmIGNs ZWFyX3F1ZXJ5X2hpc3RvcnkodHJhbnNfaWQpOgogICAgIHN0YXR1cywgZXJyb3JfbXNnLCBjb25u LCB0cmFuc19vYmosIHNlc3Npb25fb2IgPSBcCiAgICAgICAgIGNoZWNrX3RyYW5zYWN0aW9uX3N0 YXR1cyh0cmFuc19pZCkKIAotICAgIHJldHVybiBRdWVyeUhpc3RvcnkuY2xlYXIoY3VycmVudF91 c2VyLmlkLCB0cmFuc19vYmouc2lkLCBjb25uLmRiKQorICAgIGZpbHRlciA9IHJlcXVlc3QuanNv bgorICAgIHJldHVybiBRdWVyeUhpc3RvcnkuY2xlYXIoY3VycmVudF91c2VyLmlkLCB0cmFuc19v Ymouc2lkLCBjb25uLmRiLCBmaWx0ZXIpCiAKIAogQGJsdWVwcmludC5yb3V0ZSgKZGlmZiAtLWdp dCBhL3dlYi9wZ2FkbWluL3Rvb2xzL3NxbGVkaXRvci9zdGF0aWMvY3NzL3NxbGVkaXRvci5jc3Mg Yi93ZWIvcGdhZG1pbi90b29scy9zcWxlZGl0b3Ivc3RhdGljL2Nzcy9zcWxlZGl0b3IuY3NzCmRl bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwYzU2ODg5NzYuLjAwMDAwMDAwMAotLS0gYS93 ZWIvcGdhZG1pbi90b29scy9zcWxlZGl0b3Ivc3RhdGljL2Nzcy9zcWxlZGl0b3IuY3NzCisrKyAv ZGV2L251bGwKQEAgLTEsNDAxICswLDAgQEAKLSNtYWluLWVkaXRvcl9wYW5lbCB7Ci0gIHBvc2l0 aW9uOiBhYnNvbHV0ZTsKLSAgbGVmdDogMDsKLSAgcmlnaHQ6IDA7Ci0gIHRvcCA6IDA7Ci0gIGJv dHRvbTogMDsKLX0KLQotLnNxbC1lZGl0b3IgewotICBwb3NpdGlvbjogYWJzb2x1dGU7Ci0gIGxl ZnQ6IDA7Ci0gIHJpZ2h0OiAwOwotICB0b3AgOiAwOwotICBib3R0b206IDA7Ci19Ci0KLS5maWx0 ZXItY29udGFpbmVyIC5Db2RlTWlycm9yLXNjcm9sbCB7Ci0gIG1pbi1oZWlnaHQ6IDEyMHB4Owot fQotCi0uZmlsdGVyLWNvbnRhaW5lciAuc3FsLXRleHRhcmVhewotICBib3gtc2hhZG93OiAwLjFw eCAwLjFweCAzcHggIzAwMDsKLSAgbWFyZ2luLWJvdHRvbTogNXB4OwotfQotCi0jZmlsdGVyIC5i dG4tZ3JvdXAgewotICBtYXJnaW4tcmlnaHQ6IDJweDsKLSAgZmxvYXQ6IHJpZ2h0OwotfQotCi0j ZmlsdGVyIC5idG4tZ3JvdXAgPiBidXR0b24gewotICBwYWRkaW5nOiAzcHg7Ci19Ci0KLSNmaWx0 ZXIgLmJ0bi1ncm91cCAuYnRuLXByaW1hcnkgewotICBtYXJnaW46IGF1dG8gIWltcG9ydGFudDsK LX0KLQotLmhhcy1zZWxlY3QtYWxsIHRhYmxlIHRoZWFkIHRyIHRoOm50aC1jaGlsZCgxKSwKLS5o YXMtc2VsZWN0LWFsbCB0YWJsZSB0Ym9keSB0ciB0ZDpudGgtY2hpbGQoMSkgewotICB3aWR0aDog MzVweCAhaW1wb3J0YW50OwotICBtYXgtd2lkdGg6IDM1cHggIWltcG9ydGFudDsKLSAgbWluLXdp ZHRoOiAzNXB4ICFpbXBvcnRhbnQ7Ci19Ci0uc3FsLXN0YXR1cy1jZWxsIHsKLSAgbWF4LXdpZHRo OiAzMHB4OwotfQotCi0uYnRuLWNpcmNsZSB7Ci0gIHdpZHRoOiAxNnB4OwotICBoZWlnaHQ6IDE2 cHg7Ci0gIHRleHQtYWxpZ246IGNlbnRlcjsKLSAgcGFkZGluZzogMDsKLSAgZm9udC1zaXplOiAx MHB4OwotICBsaW5lLWhlaWdodDogMS40Mjg1NzE0Mjk7Ci0gIGJvcmRlci1yYWRpdXM6IDEwcHg7 Ci0gIGN1cnNvcjogYXV0bzsKLX0KLQotLnZpc2liaWxpdHktaGlkZGVuIHsKLSAgdmlzaWJpbGl0 eTogaGlkZGVuOwotfQotCi0uc3FsLWVkaXRvci1tYXJrIHsKLSAgYm9yZGVyLWJvdHRvbTogMnB4 IGRvdHRlZCByZWQ7Ci19Ci0KLS5Db2RlTWlycm9yIHsKLSAgbWluLWhlaWdodDogMTAwJTsKLSAg aGVpZ2h0OiAxMDAlOwotfQotCi0jb3V0cHV0LXBhbmVsIHsKLSAgaGVpZ2h0OiAxMDAlICFpbXBv cnRhbnQ7Ci19Ci0KLS5zcWwtZWRpdG9yLWV4cGxhaW4gewotICBoZWlnaHQ6IDEwMCU7Ci0gIHdp ZHRoOiAxMDAlOwotICBvdmVyZmxvdzogYXV0bzsKLX0KLQotCi0uc3FsZWRpdG9yLWhpbnQgewot ICBwYWRkaW5nLWxlZnQ6IDIwcHg7Ci19Ci0KLS5Db2RlTWlycm9yLWhpbnQgLmZhOjpiZWZvcmUg ewotICBwYWRkaW5nLXJpZ2h0OiA3cHg7Ci19Ci0KLWgyIHsKLSAgZm9udC1zaXplOiAxMHB0Owot ICBib3JkZXItYm90dG9tOiAxcHggZG90dGVkIGdyYXk7Ci19Ci0KLXVsIHsKLSAgbWFyZ2luLWxl ZnQ6IDA7Ci0gIHBhZGRpbmc6IDA7Ci0gIGN1cnNvcjogZGVmYXVsdDsKLX0KLQotbGkgewotICBw YWRkaW5nOiAwIDAgMCAwcHg7Ci0gIGxpc3Qtc3R5bGU6IG5vbmU7Ci0gIG1hcmdpbjogMDsKLX0K LQotI2RhdGFncmlkIHsKLSAgYmFja2dyb3VuZDogd2hpdGU7Ci0gIG91dGxpbmU6IDA7Ci0gIGZv bnQtc2l6ZTogOXB0OwotfQotCi0jZGF0YWdyaWQgLnNsaWNrLWhlYWRlci1jb2x1bW4udWktc3Rh dGUtZGVmYXVsdCB7Ci0gICAgaGVpZ2h0OiAzMnB4ICFpbXBvcnRhbnQ7Ci19Ci0KLSNkYXRhZ3Jp ZCAuZ3JpZC1oZWFkZXIgbGFiZWwgewotICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7Ci0gIGZvbnQt d2VpZ2h0OiBib2xkOwotICBtYXJnaW46IGF1dG8gYXV0byBhdXRvIDZweDsKLX0KLQotLmdyaWQt aGVhZGVyIC51aS1pY29uIHsKLSAgbWFyZ2luOiA0cHggNHB4IGF1dG8gNnB4OwotICBiYWNrZ3Jv dW5kLWNvbG9yOiB0cmFuc3BhcmVudDsKLSAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDsKLX0K LQotLnNsaWNrLXJvdyAuY2VsbC1hY3Rpb25zIHsKLSAgdGV4dC1hbGlnbjogbGVmdDsKLX0KLQot LyogU2xpY2suRWRpdG9ycy5UZXh0LCBTbGljay5FZGl0b3JzLkRhdGUgKi8KLSNkYXRhZ3JpZCAu c2xpY2staGVhZGVyID4gaW5wdXQuZWRpdG9yLXRleHQgewotICB3aWR0aDogMTAwJTsKLSAgaGVp Z2h0OiAxMDAlOwotICBib3JkZXI6IDA7Ci0gIG1hcmdpbjogMDsKLSAgYmFja2dyb3VuZDogdHJh bnNwYXJlbnQ7Ci0gIG91dGxpbmU6IDA7Ci0gIHBhZGRpbmc6IDA7Ci19Ci0KLS8qIFNsaWNrLkVk aXRvcnMuQ2hlY2tib3ggKi8KLSNkYXRhZ3JpZCAuc2xpY2staGVhZGVyID4gaW5wdXQuZWRpdG9y LWNoZWNrYm94IHsKLSAgbWFyZ2luOiAwOwotICBoZWlnaHQ6IDEwMCU7Ci0gIHBhZGRpbmc6IDA7 Ci0gIGJvcmRlcjogMDsKLX0KLQotLnNsaWNrLXJvdy5zZWxlY3RlZCAuY2VsbC1zZWxlY3Rpb24g ewotICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsgLyogc2hvdyBkZWZhdWx0IHNlbGVj dGVkIHJvdyBiYWNrZ3JvdW5kICovCi19Ci0KLSNkYXRhZ3JpZCAuc2xpY2staGVhZGVyIC51aS1z dGF0ZS1kZWZhdWx0LAotI2RhdGFncmlkIC5zbGljay1oZWFkZXIgLnVpLXdpZGdldC1jb250ZW50 LnVpLXN0YXRlLWRlZmF1bHQsCi0jZGF0YWdyaWQgLnNsaWNrLWhlYWRlciAudWktd2lkZ2V0LWhl YWRlciAudWktc3RhdGUtZGVmYXVsdCB7Ci0gIGJhY2tncm91bmQ6IG5vbmU7Ci19Ci0KLSNkYXRh Z3JpZCAuc2xpY2staGVhZGVyIC5zbGljay1oZWFkZXItY29sdW1uIC5jb2x1bW4tbmFtZSB7Ci0g IGZvbnQtd2VpZ2h0OiBib2xkOwotICBkaXNwbGF5OiBibG9jazsKLX0KLQotLmNvbHVtbi1kZXNj cmlwdGlvbiB7Ci0gIGRpc3BsYXk6IHRhYmxlLWNlbGw7Ci19Ci0KLS5sb25nX3RleHRfZWRpdG9y IHsKLSAgbWFyZ2luLWxlZnQ6IDVweDsKLSAgZm9udC1zaXplOiAxMnB4ICFpbXBvcnRhbnQ7Ci0g IHBhZGRpbmc6IDFweCA3cHg7Ci19Ci0KLS8qIFNsaWNrLkVkaXRvcnMuVGV4dCwgU2xpY2suRWRp dG9ycy5EYXRlICovCi1pbnB1dC5lZGl0b3ItdGV4dCB7Ci0gIHdpZHRoOiAxMDAlOwotICBoZWln aHQ6IDEwMCU7Ci0gIGJvcmRlcjogMDsKLSAgbWFyZ2luOiAwOwotICBiYWNrZ3JvdW5kOiB0cmFu c3BhcmVudDsKLSAgb3V0bGluZTogMDsKLSAgcGFkZGluZzogMDsKLX0KLQotLyogU2xpY2suRWRp dG9ycy5UZXh0LCBTbGljay5FZGl0b3JzLkRhdGUgKi8KLXRleHRhcmVhLmVkaXRvci10ZXh0IHsK LSAgd2lkdGg6IDEwMCU7Ci0gIGhlaWdodDogMTAwJTsKLSAgYm9yZGVyOiAwOwotICBtYXJnaW46 IDA7Ci0gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwotICBvdXRsaW5lOiAwOwotICBwYWRkaW5n OiAwOwotfQotCi0vKiBTbGljay5FZGl0b3JzLkNoZWNrYm94ICovCi1pbnB1dC5lZGl0b3ItY2hl Y2tib3ggewotICBtYXJnaW46IDA7Ci0gIGhlaWdodDogMTAwJTsKLSAgcGFkZGluZzogMDsKLSAg Ym9yZGVyOiAwOwotfQotCi0vKiByZW1vdmUgb3V0bGluZWQgYm9yZGVyIG9uIGZvY3VzICovCi1p bnB1dC5lZGl0b3ItY2hlY2tib3g6Zm9jdXMgewotICBvdXRsaW5lOiBub25lOwotfQotCi0uc2xp Y2stY2VsbCBzcGFuW2RhdGEtY2VsbC10eXBlPSJyb3ctaGVhZGVyLXNlbGVjdG9yIl0gewotICBk aXNwbGF5OiBibG9jazsKLSAgdGV4dC1hbGlnbjogY2VudGVyOwotfQotCi0vKgotICBTbGlja0dy aWQsIFRvIGZpeCB0aGUgaXNzdWUgb2Ygd2lkdGggbWlzYWxpZ25tZW50IGJldHdlZW4gQ29sdW1u IEhlYWRlciAmCi0gIGFjdHVhbCBDb2x1bW4gaW4gTW96aWxsYSBGaXJlZm94IGJyb3dzZXIKLSAg UmVmOiBodHRwczovL2dpdGh1Yi5jb20vbWxlaWJtYW4vU2xpY2tHcmlkL2lzc3Vlcy83NDIKLSov Ci0uc2xpY2tncmlkLCAuc2xpY2tncmlkICosIC5zbGljay1oZWFkZXItY29sdW1uIHsKLSAgYm94 LXNpemluZzogY29udGVudC1ib3g7Ci0gIC1tb3otYm94LXNpemluZzogY29udGVudC1ib3g7Ci0g IC13ZWJraXQtYm94LXNpemluZzogY29udGVudC1ib3g7Ci0gIC1tcy1ib3gtc2l6aW5nOiBjb250 ZW50LWJveDsKLX0KLQotLnNlbGVjdC1hbGwtaWNvbiB7Ci0gIG1hcmdpbi1sZWZ0OiA5cHg7Ci0g IG1hcmdpbi1yaWdodDogNHB4OwotICB2ZXJ0aWNhbC1hbGlnbjogYm90dG9tOwotICBwb3NpdGlv bjogYWJzb2x1dGU7Ci0gIGJvdHRvbTogNHB4OwotICByaWdodDogMDsKLX0KLQotLyogU3R5bGUg Zm9yIHRleHQgZWRpdG9yICovCi0ucGdfYnV0dG9ucyB7Ci0gIHRleHQtYWxpZ246cmlnaHQ7Ci19 Ci0KLSNkYXRhZ3JpZCAuc2xpY2stcm93IC5zbGljay1jZWxsIHsKLSAgd2hpdGUtc3BhY2U6IHBy ZTsKLX0KLQotLmNvbm5lY3Rpb25fc3RhdHVzIHsKLSAgZm9udC1zaXplOiAxcmVtOwotICB3aWR0 aDogNDBweDsKLX0KLQotLmFqcy1ib2R5IC53YXJuLWhlYWRlciB7Ci0gIGZvbnQtc2l6ZTogMTNw eDsKLSAgZm9udC13ZWlnaHQ6IGJvbGQ7Ci0gIGxpbmUtaGVpZ2h0OiAzZW07Ci19Ci0KLS5hanMt Ym9keSAud2Fybi1ib2R5IHsKLSAgZm9udC1zaXplOiAxM3B4OwotfQotCi0uYWpzLWJvZHkgLndh cm4tZm9vdGVyIHsKLSAgZm9udC1zaXplOiAxM3B4OwotICBsaW5lLWhlaWdodDogM2VtOwotfQot Ci0vKiBGb3IgRmlsdGVyIHN0YXR1cyBiYXIgKi8KLS5kYXRhX3NvcnRpbmdfZGlhbG9nIC5wZy1w cm9wLXN0YXR1cy1iYXIgewotICBwb3NpdGlvbjogYWJzb2x1dGU7Ci0gIGxlZnQ6IDA7Ci0gIHJp Z2h0OiAwOwotICBib3R0b206IDA7Ci0gIHotaW5kZXg6IDU7Ci19Ci0KLS5kYXRhX3NvcnRpbmdf ZGlhbG9nIC5Db2RlTWlycm9yLWd1dHRlci13cmFwcGVyIHsKLSAgbGVmdDogLTMwcHggIWltcG9y dGFudDsKLX0KLQotLmRhdGFfc29ydGluZ19kaWFsb2cgLkNvZGVNaXJyb3ItZ3V0dGVycyB7Ci0g IGxlZnQ6IDBweCAhaW1wb3J0YW50OwotfQotCi0uZGF0YV9zb3J0aW5nX2RpYWxvZyAuY3VzdG9t X2hlaWdodF9jc3NfY2xhc3MgewotICBoZWlnaHQ6IDEwMHB4OwotfQotCi0uZGF0YV9zb3J0aW5n X2RpYWxvZyAuZGF0YV9zb3J0aW5nIHsKLSAgcGFkZGluZzogMTBweCAwcHg7Ci19Ci0KLS5jb25u ZWN0aW9uLXN0YXR1cy1oaWRlIHsKLSAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OwotfQotCi0v KiBGb3IgZ2VvbWV0cnkgZGF0YSB2aWV3ZXIgcGFuZWwgKi8KLS5zcWwtZWRpdG9yLWdlb21ldHJ5 LXZpZXdlcnsKLSAgd2lkdGg6IDEwMCU7Ci0gIGhlaWdodDogMTAwJTsKLX0KLQotLmdlb21ldHJ5 LXZpZXdlci1jb250YWluZXIgewotICB3aWR0aDogMTAwJTsKLSAgaGVpZ2h0OiAxMDAlOwotICBi YWNrZ3JvdW5kOiB1cmwoZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhF VWdBQUFBZ0FBQUFJQ0FZQUFBREVENzZMQUFBQU5FbEVRVlFvVTJPOGUvZnVmMlZsWlVZR0xBQWtC NWJBcGdnbUJ0ZUpyQWlaaldJMFNBSmtJcktWeEN2QWF3VmVSeEx5SmdCK0FqYzFjd3V4OXdBQUFB QkpSVTVFcmtKZ2dnPT0pOwotICAvKiBMZXQncyBrZWVwIHRoZSBiYWNrZ3JvdW5kIGFzIGZmZiBp cnJlc3BlY3RpdmUgb2YgdGhlbWUKLSAgICogbWFrZSBnZW9tZXRyeSB2aWV3ZXIgbG9vayBjbGVh bgotICAgKi8KLSAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjsKLSB9Ci0KLQotLyogRm9yIGdlb21l dHJ5IGNvbHVtbiBidXR0b24gKi8KLS5kaXYtdmlldy1nZW9tZXRyeS1jb2x1bW4sIC5lZGl0YWJs ZS1jb2x1bW4taGVhZGVyLWljb24gewotICBmbG9hdDogcmlnaHQ7Ci0gIGhlaWdodDogMTAwJTsK LSAgZGlzcGxheTogZmxleDsKLSAgZGlzcGxheTogLXdlYmtpdC1mbGV4OwotICBhbGlnbi1pdGVt czogY2VudGVyOwotICBwYWRkaW5nLXJpZ2h0OiA2cHg7Ci19Ci0KLS8qIEZvciBsZWFmbGV0IHBv cHVwICovCi0ubGVhZmxldC1wb3B1cC1jb250ZW50LXdyYXBwZXIgewotICBib3JkZXItcmFkaXVz OiAycHg7Ci19Ci0KLS5sZWFmbGV0LXBvcHVwLWNvbnRlbnQgewotICBtYXJnaW46IDVweDsKLSAg cGFkZGluZzogMTBweCAxMHB4IDA7Ci0gIG92ZXJmbG93LXk6IHNjcm9sbDsKLSAgb3ZlcmZsb3ct eDogaGlkZGVuOwotfQotCi0vKiBGb3IgZ2VvbWV0cnkgdmlld2VyIHByb3BlcnR5IHRhYmxlICov Ci0udmlldy1nZW9tZXRyeS1wcm9wZXJ0eS10YWJsZSB7Ci0gIHRhYmxlLWxheW91dDogZml4ZWQ7 Ci0gIHdoaXRlLXNwYWNlOiBub3dyYXA7Ci0gIHBhZGRpbmc6IDA7Ci19Ci0KLS52aWV3LWdlb21l dHJ5LXByb3BlcnR5LXRhYmxlIHRoIHsKLSAgb3ZlcmZsb3c6IGhpZGRlbjsKLSAgdGV4dC1vdmVy ZmxvdzogZWxsaXBzaXM7Ci19Ci0KLS52aWV3LWdlb21ldHJ5LXByb3BlcnR5LXRhYmxlIHRkIHsK LSAgb3ZlcmZsb3c6IGhpZGRlbjsKLSAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7Ci19Ci0KLS8q IEZvciBnZW9tZXRyeSB2aWV3ZXIgaW5mbyBjb250cm9sICovCi0uZ2VvbWV0cnktdmlld2VyLWlu Zm8tY29udHJvbCB7Ci0gIHBhZGRpbmc6IDVweDsKLSAgYmFja2dyb3VuZDogd2hpdGU7Ci0gIGJv cmRlcjogMnB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMC4yKTsKLSAgYmFja2dyb3VuZC1jbGlwOiBw YWRkaW5nLWJveDsKLSAgYm9yZGVyLXJhZGl1czogMnB4OwotfQotCi0uZ2VvbWV0cnktdmlld2Vy LWluZm8tY29udHJvbCBpewotICBtYXJnaW46IDAgMCAwIDRweDsKLX0KLQotLmhpZGUtdmVydGlj YWwtc2Nyb2xsYmFyIHsKLSAgb3ZlcmZsb3cteTogaGlkZGVuOwotfQotCi0vKiAgTWFjcm9zICov Ci0KLS5tYWNyby10YWIgewotICB0b3A6IDBweCAhaW1wb3J0YW50OwotfQotCi0ubWFjcm8tdGFi IC50YWItcGFuZSB7Ci0gIHBhZGRpbmc6IDBweCAhaW1wb3J0YW50OwotfQotCi0ubWFjcm9fZGlh bG9nIC5Db2RlTWlycm9yIHsKLSAgb3ZlcmZsb3cteTogYXV0bzsKLSAgcmVzaXplOiB2ZXJ0aWNh bDsKLX0KLS5tYWNyb19kaWFsb2cgLnNxbC1jZWxsID4gZGl2IHsKLSAgb3ZlcmZsb3cteTogYXV0 bzsKLSAgcmVzaXplOiB2ZXJ0aWNhbDsKLX0KLQotLm1hY3JvX2RpYWxvZyAuQ29kZU1pcnJvci1j dXJzb3IgewotICAgIHdpZHRoOiAxcHggIWltcG9ydGFudDsKLSAgICBoZWlnaHQ6IDE4cHggIWlt cG9ydGFudDsKLX0KLQotLm1hY3JvX2RpYWxvZyAgLnBnLXByb3Atc3RhdHVzLWJhciB7Ci0gIHot aW5kZXg6IDE7Ci19Ci0KLS5uZXctY29ubmVjdGlvbi1kaWFsb2ctc3R5bGUgewotICB3aWR0aDog MTAwJSAhaW1wb3J0YW50OwotfQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vdG9vbHMvc3FsZWRp dG9yL3N0YXRpYy9pbWcvbG9hZGluZy5naWYgYi93ZWIvcGdhZG1pbi90b29scy9zcWxlZGl0b3Iv c3RhdGljL2ltZy9sb2FkaW5nLmdpZgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTAw ZmEwODYwZTJlYjk4ODNmODZjMzBkYTU3OTAwODQ3NWY1OTZjNC4uMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMApHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgMApIY21WP2Qw MDAwMQoKbGl0ZXJhbCAxNzI4CnpjbWFMVVlmTXZWOG89P18wPS1iNnQoLSVKNCF1eWhtZVJ0My1m eEhBcHBebzAwSiYzWUt9dyt1aWozPFRvJWkmZAp6STFWYygjYFN8XjN9Y0tqNCNOdCMpO05xOCkt YzkzaiZXUyR4fl80SUZeKTBERn4mSD9qTyUyYVdJdkY3S0R9Ul8KejxvNzsqWj5gNSozPGBrfHlh TTNleUxTTTluPlRPbi1AaVc/NEJ8Tk1jRHJNLSpwVllnPyV1dDdeeXR6MntRVG5MCno7X351eHk8 VHMoK2xQalImWW5HK28xNDNOXlg4e2RwRlZyYFktd3B9Jno/UHZqZzM3JEo/R0F5eU1GejsqPSFi egp6I2dtaGhDcitIYD5ndzlEVzU8SUI0YGBZZTJuMihKZ05GX3M4VzxRamVmcVQ1PiplJExDcl9S e2FOdDA4Yn5jQkAKemRIbmVDJWE8Pj1aUUItKSQ2dmpBMXRDMHN7UD4kVVp7RUlyZCpRLWBEXzU/ KGUqT0JedHl7Q1J2KEtNRHpqNVFuCnohLW8mPS1NZT9+K09fNTc8O0JJdGB9Z25QekoyP31peCtx OSt9WFo7YD45aT49STdfQD5ndC1Cbm1SZjxMWk9oOwp6Pjlrc3ttbzhuSm4zJXZZPzglY1NEd1Mm US1vMCZZWkVDZXpDWC1FMVB1SkppWEolJlotbn1+PDRwJnVHVUF9enoKej5lWmB7OXo4bTk9RkhC V0pOTkN8Y2xodygqNDk+clZmPW83WkVkWW1zWFRWPG1gRWZfUGZ3cWpuTXB9V0llNzQzCnpWUFBT UHFER0B9ZTAqR14oZVFZQChhfStiTGVicFpKVWwkU1l1QiMjSH4oIUVLUFU1Mi0jLTw8PFQlSHwh N2JzOQp6QGA9R01vOC1ZckBaKUdLeFVwPC1xKDI0fUBBdl5YKGQ1SiUrIWJab3EqZD0xTmBLd3xI NnF+cmNeODBXb1Q0UGsKelZsXz4xS1UhTi0yNlpNcW1DRGJ9UzgxU0xZdEBrfl9HJjR1THkhWD9p SnYoTXRhZDkqUDd9Png0bShVcU45S1VwCno0Y1FzIW9GMkQ5anYjOWVzV3c5e1RSZGxUeCokKXVN bjs9ZVNzcWY5RWlhSTBGYGp7SWBBPEFZUU9HSDtsJEtnfQp6bFgocCVuSUZGSj9Dbzd6JjFRayR6 d3wlQyRxenp2UXRPN2FqeEdyZUVOaHppWlIqYW9KcTQ3bnpOdG9wNVdlbmAKeiZiVCtaO2Q4MmpO QFhoPHMzJlh1alNJa31nVVJjeFhGVlFSU2EpZHdMN19OK0ZQUXJOMGN3VFoxO1RMPSp2MEV9CnpY YnNFdDRLITklKjc4Z3lqa3tPIUomNn56bCh4JSEmTEZgTSNAZmg/YTM3IyZOeClqUTY3YlV4S3dm SSpBaUtNaQp6TUZTX3QmbFk1KXIkd1RhcD9oRmNCWkBsTDUyYk8qeW9+YDF5LUQzNWZneGMoMUJB bX11ciQrX0BRcC1aTVU2SD0KemwmUFYjNT0mNTNWKDt+TVpgaGc4bk1nI3xmMVdafnphemE+R012 IXN3VEs0UVE0Vkwzdmw9JSRHPFJ0YVBjcnNlCnp6V1Q1MmV7LXkpb0JFKSQ3ZkZReU1idHxKcW5K fmVKPHQmZV8kWFhpNlAwK1opbT8mbTNyUTRJODBofDxiIUtSNgp6RFBsbFBTYHplP0ApRHc8UnY3 SSFDNkx3NEZjJHJtQSMlckhtWmRNQDh9PnRRa3U0REBROUA2ekEmPmIoSSE8Yk8KempkQHpBZStm bkAjTGVSNjVtcm4kXjVlQUpsYXtoKFJqbHxVZ3U5YVFfcnlwcjdNMiE+PkA/dTFNI0pMRG4jX3RV CnolNEpFLWEkcCFNSEQ4IVJkSkdtYj9VUUZacGQlejxLKTUzY1ozWkd5OVR8dGdZSkNDfl8hc2VT ODhtfnZ6fHRuMQp6VGV+NjNKSXs9ZEJ8JS1Fe2h5U3l0KFprKDFjSCZPIXA7MHRPNlNwPFZBO3FQ WmVxbE1YX3N6Jk1aKjd8U25EdHIKenNZRXpKMHxHYU1kQH1CNnMqT1M9eTxTM1IlRkFoSyFBWUlO cmxHNFYhK3BAb2AtK0xKN2VUXj5Gfkcqel4hNUNDCnpQZDVqbVFfRlJRUTB2ajN1VUB3aT5hZyNi dTFKKkJ8Qz1maDFpVzt6aVhjTWVQNHp4ez4lPlQ+eEB+TllnfjY0Qgp6e0lxTlB8TWs8Q19vcjco eSElNjl6MTQyRW5lKChYRmNCXnUzJEhkYj0yMUZTZ0pNOUJudX1eM2FqbiV2ZHUyV3AKej5haUs3 dV4qcTtHMDtfTlMpPyMmXytsS1psdE9tZDElXzIjMDRxd203dXpgXkQ5UHYpKTBWKVdLOE5pPz5X QFBSCnpuJF9+aFpVZT13LSFgXjJMbER7U3s0U2c9VX13bHtkYXJKZnVoak9sLSpCfHY8VXZ1N2p3 V0BPMmtDUlV0VypKUQp6TGZtR0EjTTheQjI7N0UyV2wzTlBAVW1SY3pnOUppSUV8M3NOekNlZUEo KkI8SClXRVkxX056SHYjeGQjNEQtaWwKek1Xcn1vYDhTTnhTel8pb2gmNjFmWHRhOXBzNnM1RVJQ eUBCeTFIKFRHJnRxdW1TK2IjOVk2ajNGQmtEbzA1SmEtCkRtIUJgPQoKZGlmZiAtLWdpdCBhL3dl Yi9wZ2FkbWluL3Rvb2xzL3NxbGVkaXRvci9zdGF0aWMvanMvU1FMRWRpdG9yTW9kdWxlLmpzIGIv d2ViL3BnYWRtaW4vdG9vbHMvc3FsZWRpdG9yL3N0YXRpYy9qcy9TUUxFZGl0b3JNb2R1bGUuanMK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwLi5mYWZjYWVhZGYKLS0tIC9kZXYv bnVsbAorKysgYi93ZWIvcGdhZG1pbi90b29scy9zcWxlZGl0b3Ivc3RhdGljL2pzL1NRTEVkaXRv ck1vZHVsZS5qcwpAQCAtMCwwICsxLDQyNCBAQAorCisvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLworLy8gcGdBZG1pbiA0IC0g UG9zdGdyZVNRTCBUb29scworLy8KKy8vIENvcHlyaWdodCAoQykgMjAxMyAtIDIwMjIsIFRoZSBw Z0FkbWluIERldmVsb3BtZW50IFRlYW0KKy8vIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5k ZXIgdGhlIFBvc3RncmVTUUwgTGljZW5jZQorLy8KKy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCitpbXBvcnQgKiBhcyBzaG93Vmll d0RhdGEgZnJvbSAnLi9zaG93X3ZpZXdfZGF0YSc7CitpbXBvcnQgKiBhcyBzaG93UXVlcnlUb29s IGZyb20gJy4vc2hvd19xdWVyeV90b29sJzsKK2ltcG9ydCAqIGFzIHRvb2xCYXIgZnJvbSAncGdh ZG1pbi5icm93c2VyLnRvb2xiYXInOworaW1wb3J0ICogYXMgcGFuZWxUaXRsZUZ1bmMgZnJvbSAn Li9zcWxlZGl0b3JfdGl0bGUnOworaW1wb3J0ICogYXMgY29tbW9uVXRpbHMgZnJvbSAnc291cmNl cy91dGlscyc7CitpbXBvcnQgJCBmcm9tICdqcXVlcnknOworaW1wb3J0IHVybF9mb3IgZnJvbSAn c291cmNlcy91cmxfZm9yJzsKK2ltcG9ydCBfIGZyb20gJ2xvZGFzaCc7CitpbXBvcnQgYWxlcnRp ZnkgZnJvbSAncGdhZG1pbi5hbGVydGlmeWpzJzsKK3ZhciB3Y0RvY2tlciA9IHdpbmRvdy53Y0Rv Y2tlcjsKK2ltcG9ydCBwZ1dpbmRvdyBmcm9tICdzb3VyY2VzL3dpbmRvdyc7CitpbXBvcnQgcGdB ZG1pbiBmcm9tICdzb3VyY2VzL3BnYWRtaW4nOworaW1wb3J0IHBnQnJvd3NlciBmcm9tICdwZ2Fk bWluLmJyb3dzZXInOworaW1wb3J0ICdwZ2FkbWluLmZpbGVfbWFuYWdlcic7CitpbXBvcnQgJ3Bn YWRtaW4udG9vbHMudXNlcl9tYW5hZ2VtZW50JzsKK2ltcG9ydCBnZXR0ZXh0IGZyb20gJ3NvdXJj ZXMvZ2V0dGV4dCc7CitpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnOworaW1wb3J0IFJlYWN0RE9N IGZyb20gJ3JlYWN0LWRvbSc7CitpbXBvcnQgUXVlcnlUb29sQ29tcG9uZW50IGZyb20gJy4vY29t cG9uZW50cy9RdWVyeVRvb2xDb21wb25lbnQnOworaW1wb3J0IE1vZGFsUHJvdmlkZXIgZnJvbSAn Li4vLi4vLi4vLi4vc3RhdGljL2pzL2hlbHBlcnMvTW9kYWxQcm92aWRlcic7CisKKworZXhwb3J0 IGZ1bmN0aW9uIHNldFBhbmVsVGl0bGUocXVlcnlUb29sUGFuZWwsIHBhbmVsVGl0bGUpIHsKKyAg cXVlcnlUb29sUGFuZWwudGl0bGUoJzxzcGFuIHRpdGxlPSInK3BhbmVsVGl0bGUrJyI+JytwYW5l bFRpdGxlKyc8L3NwYW4+Jyk7Cit9CisKK2V4cG9ydCBkZWZhdWx0IGNsYXNzIFNRTEVkaXRvciB7 CisgIHN0YXRpYyBpbnN0YW5jZTsKKworICBzdGF0aWMgZ2V0SW5zdGFuY2UoLi4uYXJncykgewor ICAgIGlmKCFTUUxFZGl0b3IuaW5zdGFuY2UpIHsKKyAgICAgIFNRTEVkaXRvci5pbnN0YW5jZSA9 IG5ldyBTUUxFZGl0b3IoLi4uYXJncyk7CisgICAgfQorICAgIHJldHVybiBTUUxFZGl0b3IuaW5z dGFuY2U7CisgIH0KKworICBTVVBQT1JURURfTk9ERVMgPSBbCisgICAgJ3RhYmxlJywgJ3ZpZXcn LCAnbXZpZXcnLAorICAgICdmb3JlaWduX3RhYmxlJywgJ2NhdGFsb2dfb2JqZWN0JywgJ3BhcnRp dGlvbicsCisgIF07CisKKyAgLyogRW5hYmxlL2Rpc2FibGUgVmlldyBkYXRhIG1lbnUgaW4gdG9v bHMgYmFzZWQKKyAgKiBvbiBub2RlIHNlbGVjdGVkLiBpZiBzZWxlY3RlZCBub2RlIGlzIHByZXNl bnQKKyAgKiBpbiBzdXBwb3J0ZWROb2RlcywgbWVudSB3aWxsIGJlIGVuYWJsZWQKKyAgKiBvdGhl cndpc2UgZGlzYWJsZWQuCisgICovCisgIHZpZXdNZW51RW5hYmxlZChvYmopIHsKKyAgICB2YXIg aXNFbmFibGVkID0gKCgpID0+IHsKKyAgICAgIGlmICghXy5pc1VuZGVmaW5lZChvYmopICYmICFf LmlzTnVsbChvYmopKQorICAgICAgICByZXR1cm4gKF8uaW5kZXhPZih0aGlzLlNVUFBPUlRFRF9O T0RFUywgb2JqLl90eXBlKSAhPT0gLTEgPyB0cnVlIDogZmFsc2UpOworICAgICAgZWxzZQorICAg ICAgICByZXR1cm4gZmFsc2U7CisgICAgfSkoKTsKKworICAgIHRvb2xCYXIuZW5hYmxlKGdldHRl eHQoJ1ZpZXcgRGF0YScpLCBpc0VuYWJsZWQpOworICAgIHRvb2xCYXIuZW5hYmxlKGdldHRleHQo J0ZpbHRlcmVkIFJvd3MnKSwgaXNFbmFibGVkKTsKKyAgICByZXR1cm4gaXNFbmFibGVkOworICB9 CisKKyAgLyogRW5hYmxlL2Rpc2FibGUgUXVlcnkgdG9vbCBtZW51IGluIHRvb2xzIGJhc2VkCisg ICogb24gbm9kZSBzZWxlY3RlZC4gaWYgc2VsZWN0ZWQgbm9kZSBpcyBwcmVzZW50CisgICogaW4g dW5zdXBwb3J0ZWRfbm9kZXMsIG1lbnUgd2lsbCBiZSBkaXNhYmxlZAorICAqIG90aGVyd2lzZSBl bmFibGVkLgorICAqLworICBxdWVyeVRvb2xNZW51RW5hYmxlZChvYmopIHsKKyAgICB2YXIgaXNF bmFibGVkID0gKCgpID0+IHsKKyAgICAgIGlmICghXy5pc1VuZGVmaW5lZChvYmopICYmICFfLmlz TnVsbChvYmopKSB7CisgICAgICAgIGlmIChfLmluZGV4T2YocGdBZG1pbi51bnN1cHBvcnRlZF9u b2Rlcywgb2JqLl90eXBlKSA9PSAtMSkgeworICAgICAgICAgIGlmIChvYmouX3R5cGUgPT0gJ2Rh dGFiYXNlJyAmJiBvYmouYWxsb3dDb25uKSB7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAg ICAgICAgICB9IGVsc2UgaWYgKG9iai5fdHlwZSAhPSAnZGF0YWJhc2UnKSB7CisgICAgICAgICAg ICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcmV0dXJuIGZh bHNlOworICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICByZXR1cm4gZmFs c2U7CisgICAgICAgIH0KKyAgICAgIH0gZWxzZSB7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAg ICAgIH0KKyAgICB9KSgpOworCisgICAgdG9vbEJhci5lbmFibGUoZ2V0dGV4dCgnUXVlcnkgVG9v bCcpLCBpc0VuYWJsZWQpOworICAgIHJldHVybiBpc0VuYWJsZWQ7CisgIH0KKworICBpbml0KCkg eworICAgIGlmKHRoaXMuaW5pdGlhbGl6ZWQpCisgICAgICByZXR1cm47CisgICAgdGhpcy5pbml0 aWFsaXplZCA9IHRydWU7CisKKyAgICBsZXQgc2VsZiA9IHRoaXM7CisgICAgLyogQ2FjaGUgbWF5 IHRha2UgdGltZSB0byBsb2FkIGZvciB0aGUgZmlyc3QgdGltZQorICAgICAqIEtlZXAgdHJ5aW5n IHRpbGwgYXZhaWxhYmxlCisgICAgICovCisgICAgbGV0IGNhY2hlSW50ZXJ2YWxJZCA9IHNldElu dGVydmFsKGZ1bmN0aW9uKCkgeworICAgICAgaWYocGdCcm93c2VyLnByZWZlcmVuY2VfdmVyc2lv bigpID4gMCkgeworICAgICAgICBzZWxmLnByZWZlcmVuY2VzID0gcGdCcm93c2VyLmdldF9wcmVm ZXJlbmNlc19mb3JfbW9kdWxlKCdzcWxlZGl0b3InKTsKKyAgICAgICAgY2xlYXJJbnRlcnZhbChj YWNoZUludGVydmFsSWQpOworICAgICAgfQorICAgIH0sMCk7CisKKyAgICBwZ0Jyb3dzZXIub25Q cmVmZXJlbmNlc0NoYW5nZSgnc3FsZWRpdG9yJywgZnVuY3Rpb24oKSB7CisgICAgICBzZWxmLnBy ZWZlcmVuY2VzID0gcGdCcm93c2VyLmdldF9wcmVmZXJlbmNlc19mb3JfbW9kdWxlKCdzcWxlZGl0 b3InKTsKKyAgICB9KTsKKworICAgIC8vIERlZmluZSB0aGUgbm9kZXMgb24gd2hpY2ggdGhlIG1l bnVzIHRvIGJlIGFwcGVhcgorICAgIHZhciBtZW51cyA9IFt7CisgICAgICBuYW1lOiAncXVlcnlf dG9vbCcsCisgICAgICBtb2R1bGU6IHRoaXMsCisgICAgICBhcHBsaWVzOiBbJ3Rvb2xzJ10sCisg ICAgICBjYWxsYmFjazogJ3Nob3dRdWVyeVRvb2wnLAorICAgICAgZW5hYmxlOiBzZWxmLnF1ZXJ5 VG9vbE1lbnVFbmFibGVkLAorICAgICAgcHJpb3JpdHk6IDEsCisgICAgICBsYWJlbDogZ2V0dGV4 dCgnUXVlcnkgVG9vbCcpLAorICAgICAgaWNvbjogJ3BnLWZvbnQtaWNvbiBpY29uLXF1ZXJ5X3Rv b2wnLAorICAgICAgZGF0YTp7CisgICAgICAgIGFwcGxpZXM6ICd0b29scycsCisgICAgICAgIGRh dGFfZGlzYWJsZWQ6IGdldHRleHQoJ1BsZWFzZSBzZWxlY3QgYSBkYXRhYmFzZSBmcm9tIHRoZSBi cm93c2VyIHRyZWUgdG8gYWNjZXNzIFF1ZXJ5IFRvb2wuJyksCisgICAgICB9LAorICAgIH1dOwor CisgICAgLy8gQ3JlYXRlIGNvbnRleHQgbWVudQorICAgIGZvciAoY29uc3Qgc3VwcG9ydGVkTm9k ZSBvZiBzZWxmLlNVUFBPUlRFRF9OT0RFUykgeworICAgICAgbWVudXMucHVzaCh7CisgICAgICAg IG5hbWU6ICd2aWV3X2FsbF9yb3dzX2NvbnRleHRfJyArIHN1cHBvcnRlZE5vZGUsCisgICAgICAg IG5vZGU6IHN1cHBvcnRlZE5vZGUsCisgICAgICAgIG1vZHVsZTogdGhpcywKKyAgICAgICAgZGF0 YTogeworICAgICAgICAgIG1udWlkOiAzLAorICAgICAgICB9LAorICAgICAgICBhcHBsaWVzOiBb J2NvbnRleHQnLCAnb2JqZWN0J10sCisgICAgICAgIGNhbGxiYWNrOiAnc2hvd1ZpZXdEYXRhJywK KyAgICAgICAgZW5hYmxlOiBzZWxmLnZpZXdNZW51RW5hYmxlZCwKKyAgICAgICAgY2F0ZWdvcnk6 ICd2aWV3X2RhdGEnLAorICAgICAgICBwcmlvcml0eTogMTAxLAorICAgICAgICBsYWJlbDogZ2V0 dGV4dCgnQWxsIFJvd3MnKSwKKyAgICAgIH0sIHsKKyAgICAgICAgbmFtZTogJ3ZpZXdfZmlyc3Rf MTAwX3Jvd3NfY29udGV4dF8nICsgc3VwcG9ydGVkTm9kZSwKKyAgICAgICAgbm9kZTogc3VwcG9y dGVkTm9kZSwKKyAgICAgICAgbW9kdWxlOiB0aGlzLAorICAgICAgICBkYXRhOiB7CisgICAgICAg ICAgbW51aWQ6IDEsCisgICAgICAgIH0sCisgICAgICAgIGFwcGxpZXM6IFsnY29udGV4dCcsICdv YmplY3QnXSwKKyAgICAgICAgY2FsbGJhY2s6ICdzaG93Vmlld0RhdGEnLAorICAgICAgICBlbmFi bGU6IHNlbGYudmlld01lbnVFbmFibGVkLAorICAgICAgICBjYXRlZ29yeTogJ3ZpZXdfZGF0YScs CisgICAgICAgIHByaW9yaXR5OiAxMDIsCisgICAgICAgIGxhYmVsOiBnZXR0ZXh0KCdGaXJzdCAx MDAgUm93cycpLAorICAgICAgfSwgeworICAgICAgICBuYW1lOiAndmlld19sYXN0XzEwMF9yb3dz X2NvbnRleHRfJyArIHN1cHBvcnRlZE5vZGUsCisgICAgICAgIG5vZGU6IHN1cHBvcnRlZE5vZGUs CisgICAgICAgIG1vZHVsZTogdGhpcywKKyAgICAgICAgZGF0YTogeworICAgICAgICAgIG1udWlk OiAyLAorICAgICAgICB9LAorICAgICAgICBhcHBsaWVzOiBbJ2NvbnRleHQnLCAnb2JqZWN0J10s CisgICAgICAgIGNhbGxiYWNrOiAnc2hvd1ZpZXdEYXRhJywKKyAgICAgICAgZW5hYmxlOiBzZWxm LnZpZXdNZW51RW5hYmxlZCwKKyAgICAgICAgY2F0ZWdvcnk6ICd2aWV3X2RhdGEnLAorICAgICAg ICBwcmlvcml0eTogMTAzLAorICAgICAgICBsYWJlbDogZ2V0dGV4dCgnTGFzdCAxMDAgUm93cycp LAorICAgICAgfSwgeworICAgICAgICBuYW1lOiAndmlld19maWx0ZXJlZF9yb3dzX2NvbnRleHRf JyArIHN1cHBvcnRlZE5vZGUsCisgICAgICAgIG5vZGU6IHN1cHBvcnRlZE5vZGUsCisgICAgICAg IG1vZHVsZTogdGhpcywKKyAgICAgICAgZGF0YTogeworICAgICAgICAgIG1udWlkOiA0LAorICAg ICAgICB9LAorICAgICAgICBhcHBsaWVzOiBbJ2NvbnRleHQnLCAnb2JqZWN0J10sCisgICAgICAg IGNhbGxiYWNrOiAnc2hvd0ZpbHRlcmVkUm93JywKKyAgICAgICAgZW5hYmxlOiBzZWxmLnZpZXdN ZW51RW5hYmxlZCwKKyAgICAgICAgY2F0ZWdvcnk6ICd2aWV3X2RhdGEnLAorICAgICAgICBwcmlv cml0eTogMTA0LAorICAgICAgICBsYWJlbDogZ2V0dGV4dCgnRmlsdGVyZWQgUm93cy4uLicpLAor ICAgICAgfSk7CisgICAgfQorCisgICAgcGdCcm93c2VyLmFkZF9tZW51X2NhdGVnb3J5KCd2aWV3 X2RhdGEnLCBnZXR0ZXh0KCdWaWV3L0VkaXQgRGF0YScpLCAxMDAsICcnKTsKKyAgICBwZ0Jyb3dz ZXIuYWRkX21lbnVzKG1lbnVzKTsKKworICAgIC8vIENyZWF0aW5nIGEgbmV3IHBnQWRtaW4uQnJv d3NlciBmcmFtZSB0byBzaG93IHRoZSBkYXRhLgorICAgIHZhciBmcmFtZSA9IG5ldyBwZ0FkbWlu LkJyb3dzZXIuRnJhbWUoeworICAgICAgbmFtZTogJ2ZybV9zcWxlZGl0b3InLAorICAgICAgc2hv d1RpdGxlOiB0cnVlLAorICAgICAgaXNDbG9zZWFibGU6IHRydWUsCisgICAgICBpc1JlbmFtYWJs ZTogdHJ1ZSwKKyAgICAgIGlzUHJpdmF0ZTogdHJ1ZSwKKyAgICAgIHVybDogJ2Fib3V0OmJsYW5r JywKKyAgICB9KTsKKworICAgIC8vIExvYWQgdGhlIG5ld2x5IGNyZWF0ZWQgZnJhbWUKKyAgICBm cmFtZS5sb2FkKHBnQnJvd3Nlci5kb2NrZXIpOworICB9CisKKyAgLy8gVGhpcyBpcyBhIGNhbGxi YWNrIGZ1bmN0aW9uIHRvIHNob3cgZGF0YSB3aGVuIHVzZXIgY2xpY2sgb24gbWVudSBpdGVtLgor ICBzaG93Vmlld0RhdGEoZGF0YSwgaSkgeworICAgIGNvbnN0IHRyYW5zSWQgPSBjb21tb25VdGls cy5nZXRSYW5kb21JbnQoMSwgOTk5OTk5OSk7CisgICAgc2hvd1ZpZXdEYXRhLnNob3dWaWV3RGF0 YSh0aGlzLCBwZ0Jyb3dzZXIsIGFsZXJ0aWZ5LCBkYXRhLCBpLCB0cmFuc0lkKTsKKyAgfQorCisg IC8vIFRoaXMgaXMgYSBjYWxsYmFjayBmdW5jdGlvbiB0byBzaG93IGZpbHRlcmVkIGRhdGEgd2hl biB1c2VyIGNsaWNrIG9uIG1lbnUgaXRlbS4KKyAgc2hvd0ZpbHRlcmVkUm93KGRhdGEsIGkpIHsK KyAgICBjb25zdCB0cmFuc0lkID0gY29tbW9uVXRpbHMuZ2V0UmFuZG9tSW50KDEsIDk5OTk5OTkp OworICAgIHNob3dWaWV3RGF0YS5zaG93Vmlld0RhdGEodGhpcywgcGdCcm93c2VyLCBhbGVydGlm eSwgZGF0YSwgaSwgdHJhbnNJZCwgdHJ1ZSwgdGhpcy5wcmVmZXJlbmNlcyk7CisgIH0KKworICAv LyBUaGlzIGlzIGEgY2FsbGJhY2sgZnVuY3Rpb24gdG8gc2hvdyBxdWVyeSB0b29sIHdoZW4gdXNl ciBjbGljayBvbiBtZW51IGl0ZW0uCisgIHNob3dRdWVyeVRvb2wodXJsLCB0cmVlSWRlbnRpZmll cikgeworICAgIGNvbnN0IHRyYW5zSWQgPSBjb21tb25VdGlscy5nZXRSYW5kb21JbnQoMSwgOTk5 OTk5OSk7CisgICAgdmFyIHQgPSBwZ0Jyb3dzZXIudHJlZSwKKyAgICAgIGkgPSB0cmVlSWRlbnRp ZmllciB8fCB0LnNlbGVjdGVkKCksCisgICAgICBkID0gaSA/IHQuaXRlbURhdGEoaSkgOiB1bmRl ZmluZWQ7CisKKyAgICAvL09wZW4gcXVlcnkgdG9vbCB3aXRoIGNyZWF0ZSBzY3JpcHQgaWYgY29w eV9zcWxfdG9fcXVlcnlfdG9vbCBpcyB0cnVlIGVsc2Ugb3BlbiBibGFuayBxdWVyeSB0b29sCisg ICAgdmFyIHByZWZlcmVuY2UgPSBwZ0Jyb3dzZXIuZ2V0X3ByZWZlcmVuY2UoJ3NxbGVkaXRvcics ICdjb3B5X3NxbF90b19xdWVyeV90b29sJyk7CisgICAgaWYocHJlZmVyZW5jZS52YWx1ZSAmJiAh ZC5fdHlwZS5pbmNsdWRlcygnY29sbC0nKSkgeworICAgICAgdmFyIHN0eXBlID0gZC5fdHlwZS50 b0xvd2VyQ2FzZSgpOworICAgICAgdmFyIGRhdGEgPSB7CisgICAgICAgICdzY3JpcHQnOiBzdHlw ZSwKKyAgICAgICAgZGF0YV9kaXNhYmxlZDogZ2V0dGV4dCgnVGhlIHNlbGVjdGVkIHRyZWUgbm9k ZSBkb2VzIG5vdCBzdXBwb3J0IHRoaXMgb3B0aW9uLicpLAorICAgICAgfTsKKyAgICAgIHBnQnJv d3Nlci5Ob2RlLmNhbGxiYWNrcy5zaG93X3NjcmlwdChkYXRhKTsKKyAgICB9IGVsc2UgeworICAg ICAgaWYoZC5fdHlwZS5pbmNsdWRlcygnY29sbC0nKSl7CisgICAgICAgIHVybCA9ICcnOworICAg ICAgfQorICAgICAgc2hvd1F1ZXJ5VG9vbC5zaG93UXVlcnlUb29sKHRoaXMsIHBnQnJvd3Nlciwg dXJsLCB0cmVlSWRlbnRpZmllciwgdHJhbnNJZCk7CisgICAgfQorICB9CisKKyAgb25QYW5lbFJl bmFtZShxdWVyeVRvb2xQYW5lbCwgcGFuZWxEYXRhLCBpc19xdWVyeV90b29sKSB7CisgICAgdmFy IHRlbXBfdGl0bGUgPSBwYW5lbERhdGEuJHRpdGxlVGV4dFswXS50ZXh0Q29udGVudDsKKyAgICB2 YXIgaXNfZGlydHlfZWRpdG9yID0gcXVlcnlUb29sUGFuZWwuaXNfZGlydHlfZWRpdG9yID8gcXVl cnlUb29sUGFuZWwuaXNfZGlydHlfZWRpdG9yIDogZmFsc2U7CisgICAgdmFyIHRpdGxlID0gcXVl cnlUb29sUGFuZWwuaXNfZGlydHlfZWRpdG9yID8gcGFuZWxEYXRhLiR0aXRsZVRleHRbMF0udGV4 dENvbnRlbnQucmVwbGFjZSgvLiQvLCAnJykgOiB0ZW1wX3RpdGxlOworICAgIGFsZXJ0aWZ5LnBy b21wdCgnJywgdGl0bGUsCisgICAgICAvLyBXZSB3aWxsIGV4ZWN1dGUgdGhpcyBmdW5jdGlvbiB3 aGVuIHVzZXIgY2xpY2tzIG9uIHRoZSBPSyBidXR0b24KKyAgICAgIGZ1bmN0aW9uKGV2dCwgdmFs dWUpIHsKKyAgICAgICAgLy8gUmVtb3ZlIHRoZSBsZWFkaW5nIGFuZCB0cmFpbGluZyB3aGl0ZSBz cGFjZXMuCisgICAgICAgIHZhbHVlID0gdmFsdWUudHJpbSgpOworICAgICAgICBpZih2YWx1ZSkg eworICAgICAgICAgIHZhciBpc19maWxlID0gZmFsc2U7CisgICAgICAgICAgaWYocGFuZWxEYXRh LiR0aXRsZVRleHRbMF0uaW5uZXJIVE1MLmluY2x1ZGVzKCdGaWxlIC0gJykpIHsKKyAgICAgICAg ICAgIGlzX2ZpbGUgPSB0cnVlOworICAgICAgICAgIH0KKyAgICAgICAgICB2YXIgc2VsZWN0ZWRf aXRlbSA9IHBnQnJvd3Nlci50cmVlLnNlbGVjdGVkKCk7CisgICAgICAgICAgdmFyIHBhbmVsX3Rp dGxlcyA9ICcnOworCisgICAgICAgICAgaWYoaXNfcXVlcnlfdG9vbCkgeworICAgICAgICAgICAg cGFuZWxfdGl0bGVzID0gcGFuZWxUaXRsZUZ1bmMuZ2V0UGFuZWxUaXRsZShwZ0Jyb3dzZXIsIHNl bGVjdGVkX2l0ZW0sIHZhbHVlKTsKKyAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcGFu ZWxfdGl0bGVzID0gc2hvd1ZpZXdEYXRhLmdlbmVyYXRlRGF0YWdyaWRUaXRsZShwZ0Jyb3dzZXIs IHNlbGVjdGVkX2l0ZW0sIHZhbHVlKTsKKyAgICAgICAgICB9CisgICAgICAgICAgLy8gU2V0IHRp dGxlIHRvIHRoZSBzZWxlY3RlZCB0YWIuCisgICAgICAgICAgaWYgKGlzX2RpcnR5X2VkaXRvcikg eworICAgICAgICAgICAgcGFuZWxfdGl0bGVzID0gcGFuZWxfdGl0bGVzICsgJyAqJzsKKyAgICAg ICAgICB9CisgICAgICAgICAgcGFuZWxUaXRsZUZ1bmMuc2V0UXVlcnlUb29sRG9ja2VyVGl0bGUo cXVlcnlUb29sUGFuZWwsIGlzX3F1ZXJ5X3Rvb2wsIF8udW5lc2NhcGUocGFuZWxfdGl0bGVzKSwg aXNfZmlsZSk7CisgICAgICAgIH0KKyAgICAgIH0sCisgICAgICAvLyBXZSB3aWxsIGV4ZWN1dGUg dGhpcyBmdW5jdGlvbiB3aGVuIHVzZXIgY2xpY2tzIG9uIHRoZSBDYW5jZWwKKyAgICAgIC8vIGJ1 dHRvbi4gIERvIG5vdGhpbmcganVzdCBjbG9zZSBpdC4KKyAgICAgIGZ1bmN0aW9uKGV2dCkgeyBl dnQuY2FuY2VsID0gZmFsc2U7IH0KKyAgICApLnNldCh7J3RpdGxlJzogZ2V0dGV4dCgnUmVuYW1l IFBhbmVsJyl9KTsKKyAgfQorCisKKyAgb3BlblF1ZXJ5VG9vbFBhbmVsKHRyYW5zX2lkLCBpc19x dWVyeV90b29sLCBwYW5lbF90aXRsZSwgY2xvc2VVcmwsIHF1ZXJ5VG9vbEZvcm0pIHsKKyAgICBs ZXQgc2VsZiA9IHRoaXM7CisgICAgdmFyIGJyb3dzZXJfcHJlZmVyZW5jZXMgPSBwZ0Jyb3dzZXIu Z2V0X3ByZWZlcmVuY2VzX2Zvcl9tb2R1bGUoJ2Jyb3dzZXInKTsKKyAgICB2YXIgcHJvcGVydGll c1BhbmVsID0gcGdCcm93c2VyLmRvY2tlci5maW5kUGFuZWxzKCdwcm9wZXJ0aWVzJyk7CisgICAg dmFyIHF1ZXJ5VG9vbFBhbmVsID0gcGdCcm93c2VyLmRvY2tlci5hZGRQYW5lbCgnZnJtX3NxbGVk aXRvcicsIHdjRG9ja2VyLkRPQ0suU1RBQ0tFRCwgcHJvcGVydGllc1BhbmVsWzBdKTsKKyAgICBx dWVyeVRvb2xQYW5lbC50cmFuc19pZCA9IHRyYW5zX2lkOworICAgIHNob3dRdWVyeVRvb2wuX3Nl dF9keW5hbWljX3RhYihwZ0Jyb3dzZXIsIGJyb3dzZXJfcHJlZmVyZW5jZXNbJ2R5bmFtaWNfdGFi cyddKTsKKworICAgIC8vIFNldCBwYW5lbCB0aXRsZSBhbmQgaWNvbgorICAgIHBhbmVsVGl0bGVG dW5jLnNldFF1ZXJ5VG9vbERvY2tlclRpdGxlKHF1ZXJ5VG9vbFBhbmVsLCBpc19xdWVyeV90b29s LCBfLnVuZXNjYXBlKHBhbmVsX3RpdGxlKSk7CisgICAgcXVlcnlUb29sUGFuZWwuZm9jdXMoKTsK KworICAgIC8vIExpc3RlbiBvbiB0aGUgcGFuZWwgY2xvc2VkIGV2ZW50LgorICAgIGlmIChxdWVy eVRvb2xQYW5lbC5pc1Zpc2libGUoKSkgeworICAgICAgcXVlcnlUb29sUGFuZWwub24od2NEb2Nr ZXIuRVZFTlQuQ0xPU0VELCBmdW5jdGlvbigpIHsKKyAgICAgICAgJC5hamF4KHsKKyAgICAgICAg ICB1cmw6IGNsb3NlVXJsLAorICAgICAgICAgIG1ldGhvZDogJ0RFTEVURScsCisgICAgICAgIH0p OworICAgICAgfSk7CisgICAgfQorCisgICAgcXVlcnlUb29sUGFuZWwub24od2NEb2NrZXIuRVZF TlQuVklTSUJJTElUWV9DSEFOR0VELCBmdW5jdGlvbigpIHsKKyAgICAgIHF1ZXJ5VG9vbFBhbmVs LnRyaWdnZXIod2NEb2NrZXIuRVZFTlQuUkVTSVpFRCk7CisgICAgfSk7CisKKyAgICBjb21tb25V dGlscy5yZWdpc3RlckRldGFjaEV2ZW50KHF1ZXJ5VG9vbFBhbmVsKTsKKworICAgIC8vIExpc3Rl biBvbiB0aGUgcGFuZWxSZW5hbWUgZXZlbnQuCisgICAgcXVlcnlUb29sUGFuZWwub24od2NEb2Nr ZXIuRVZFTlQuUkVOQU1FLCBmdW5jdGlvbihwYW5lbERhdGEpIHsKKyAgICAgIHNlbGYub25QYW5l bFJlbmFtZShxdWVyeVRvb2xQYW5lbCwgcGFuZWxEYXRhLCBpc19xdWVyeV90b29sKTsKKyAgICB9 KTsKKworICAgIHZhciBvcGVuUXVlcnlUb29sVVJMID0gZnVuY3Rpb24oaikgeworICAgICAgLy8g YWRkIHNwaW5uZXIgZWxlbWVudAorICAgICAgbGV0ICRzcGlubmVyX2VsID0KKyAgICAgICAgJChg PGRpdiBjbGFzcz0icGctc3AtY29udGFpbmVyIj4KKyAgICAgICAgICAgICAgPGRpdiBjbGFzcz0i cGctc3AtY29udGVudCI+CisgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJyb3ciPgorICAg ICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC0xMiBwZy1zcC1pY29uIj48L2Rpdj4K KyAgICAgICAgICAgICAgICAgIDwvZGl2PgorICAgICAgICAgICAgICA8L2Rpdj4KKyAgICAgICAg ICA8L2Rpdj5gKS5hcHBlbmRUbygkKGopLmRhdGEoJ2VtYmVkZGVkRnJhbWUnKS4kY29udGFpbmVy KTsKKworICAgICAgbGV0IGluaXRfcG9sbGVyX2lkID0gc2V0SW50ZXJ2YWwoZnVuY3Rpb24oKSB7 CisgICAgICAgIHZhciBmcmFtZUluaXRpYWxpemVkID0gJChqKS5kYXRhKCdmcmFtZUluaXRpYWxp emVkJyk7CisgICAgICAgIGlmIChmcmFtZUluaXRpYWxpemVkKSB7CisgICAgICAgICAgY2xlYXJJ bnRlcnZhbChpbml0X3BvbGxlcl9pZCk7CisgICAgICAgICAgdmFyIGZyYW1lID0gJChqKS5kYXRh KCdlbWJlZGRlZEZyYW1lJyk7CisgICAgICAgICAgaWYgKGZyYW1lKSB7CisgICAgICAgICAgICBm cmFtZS5vbkxvYWRlZCgoKT0+eworICAgICAgICAgICAgICAkc3Bpbm5lcl9lbC5yZW1vdmUoKTsK KyAgICAgICAgICAgIH0pOworICAgICAgICAgICAgZnJhbWUub3BlbkhUTUwocXVlcnlUb29sRm9y bSk7CisgICAgICAgICAgfQorICAgICAgICB9CisgICAgICB9LCAxMDApOworICAgIH07CisKKyAg ICBvcGVuUXVlcnlUb29sVVJMKHF1ZXJ5VG9vbFBhbmVsKTsKKyAgfQorCisgIGxhdW5jaCh0cmFu c19pZCwgcGFuZWxfdXJsLCBpc19xdWVyeV90b29sLCBwYW5lbF90aXRsZSwgc1VSTD1udWxsLCBz cWxfZmlsdGVyPW51bGwpIHsKKyAgICBjb25zdCBzZWxmID0gdGhpczsKKyAgICBsZXQgY2xvc2VV cmwgPSB1cmxfZm9yKCdzcWxlZGl0b3IuY2xvc2UnLCB7J3RyYW5zX2lkJzogdHJhbnNfaWR9KTsK KyAgICBsZXQgcXVlcnlUb29sRm9ybSA9IGAKKyAgICAgIDxmb3JtIGlkPSJxdWVyeVRvb2xGb3Jt IiBhY3Rpb249IiR7cGFuZWxfdXJsfSIgbWV0aG9kPSJwb3N0Ij4KKyAgICAgICAgPGlucHV0IGlk PSJ0aXRsZSIgbmFtZT0idGl0bGUiIGhpZGRlbiAvPgorICAgICAgICA8aW5wdXQgaWQ9ImNvbm5f dGl0bGUiIG5hbWU9ImNvbm5fdGl0bGUiIGhpZGRlbiAvPgorICAgICAgICA8aW5wdXQgbmFtZT0i Y2xvc2VfdXJsIiB2YWx1ZT0iJHtjbG9zZVVybH0iIGhpZGRlbiAvPmA7CisKKworICAgIGlmKHNV UkwpeworICAgICAgcXVlcnlUb29sRm9ybSArPWA8aW5wdXQgbmFtZT0icXVlcnlfdXJsIiB2YWx1 ZT0iJHtzVVJMfSIgaGlkZGVuIC8+YDsKKyAgICB9CisgICAgaWYoc3FsX2ZpbHRlcikgeworICAg ICAgcXVlcnlUb29sRm9ybSArPWA8dGV4dGFyZWEgbmFtZT0ic3FsX2ZpbHRlciIgaGlkZGVuPiR7 c3FsX2ZpbHRlcn08L3RleHRhcmVhPmA7CisgICAgfQorCisgICAgLyogRXNjYXBlIGJhY2tzbGFz aGVzIGFzIGl0IGlzIHN0cmlwcGVkIGJ5IGJhY2sgZW5kICovCisgICAgcXVlcnlUb29sRm9ybSAr PWAKKyAgICAgIDwvZm9ybT4KKyAgICAgICAgPHNjcmlwdD4KKyAgICAgICAgICBkb2N1bWVudC5n ZXRFbGVtZW50QnlJZCgidGl0bGUiKS52YWx1ZSA9ICIke18uZXNjYXBlKHBhbmVsX3RpdGxlLnJl cGxhY2UoJ1xcJywgJ1xcXFwnKSl9IjsKKyAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJ ZCgicXVlcnlUb29sRm9ybSIpLnN1Ym1pdCgpOworICAgICAgICA8L3NjcmlwdD4KKyAgICAgIGA7 CisKKyAgICB2YXIgYnJvd3Nlcl9wcmVmZXJlbmNlcyA9IHBnQnJvd3Nlci5nZXRfcHJlZmVyZW5j ZXNfZm9yX21vZHVsZSgnYnJvd3NlcicpOworICAgIHZhciBvcGVuX25ld190YWIgPSBicm93c2Vy X3ByZWZlcmVuY2VzLm5ld19icm93c2VyX3RhYl9vcGVuOworICAgIGlmIChvcGVuX25ld190YWIg JiYgb3Blbl9uZXdfdGFiLmluY2x1ZGVzKCdxdCcpKSB7CisgICAgICB2YXIgbmV3V2luID0gd2lu ZG93Lm9wZW4oJycsICdfYmxhbmsnKTsKKyAgICAgIGlmKG5ld1dpbikgeworICAgICAgICBuZXdX aW4uZG9jdW1lbnQud3JpdGUocXVlcnlUb29sRm9ybSk7CisgICAgICAgIG5ld1dpbi5kb2N1bWVu dC50aXRsZSA9IHBhbmVsX3RpdGxlOworICAgICAgICAvLyBTZW5kIHRoZSBzaWduYWwgdG8gcnVu dGltZSwgc28gdGhhdCBwcm9wZXIgem9vbSBsZXZlbCB3aWxsIGJlIHNldC4KKyAgICAgICAgc2V0 VGltZW91dChmdW5jdGlvbigpIHsKKyAgICAgICAgICBwZ0Jyb3dzZXIuc2VuZF9zaWduYWxfdG9f cnVudGltZSgnUnVudGltZSBuZXcgd2luZG93IG9wZW5lZCcpOworICAgICAgICB9LCA1MDApOwor ICAgICAgfSBlbHNlIHsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgfQorICAgIH0gZWxz ZSB7CisgICAgICAvKiBPbiBzdWNjZXNzZnVsbHkgaW5pdGlhbGl6YXRpb24gZmluZCB0aGUgZGFz aGJvYXJkIHBhbmVsLAorICAgICAgICogY3JlYXRlIG5ldyBwYW5lbCBhbmQgYWRkIGl0IHRvIHRo ZSBkYXNoYm9hcmQgcGFuZWwuCisgICAgICAgKi8KKyAgICAgIHNlbGYub3BlblF1ZXJ5VG9vbFBh bmVsKHRyYW5zX2lkLCBpc19xdWVyeV90b29sLCBwYW5lbF90aXRsZSwgY2xvc2VVcmwsIHF1ZXJ5 VG9vbEZvcm0pOworICAgIH0KKyAgICByZXR1cm4gdHJ1ZTsKKyAgfQorCisgIHNldHVwUHJlZmVy ZW5jZXNXb3JrZXIoKSB7CisgICAgaWYgKHdpbmRvdy5sb2NhdGlvbiA9PSB3aW5kb3cucGFyZW50 LmxvY2F0aW9uKSB7CisgICAgICAvKiBTeW5jIHRoZSBsb2NhbCBwcmVmZXJlbmNlcyB3aXRoIHRo ZSBtYWluIHdpbmRvdyBpZiBpbiBuZXcgdGFiICovCisgICAgICBzZXRJbnRlcnZhbCgoKT0+ewor ICAgICAgICBpZihwZ1dpbmRvdz8ucGdBZG1pbikgeworICAgICAgICAgIGlmKHBnQWRtaW4uQnJv d3Nlci5wcmVmZXJlbmNlX3ZlcnNpb24oKSA8IHBnV2luZG93LnBnQWRtaW4uQnJvd3Nlci5wcmVm ZXJlbmNlX3ZlcnNpb24oKSl7CisgICAgICAgICAgICBwZ0FkbWluLkJyb3dzZXIucHJlZmVyZW5j ZXNfY2FjaGUgPSBwZ1dpbmRvdy5wZ0FkbWluLkJyb3dzZXIucHJlZmVyZW5jZXNfY2FjaGU7Cisg ICAgICAgICAgICBwZ0FkbWluLkJyb3dzZXIucHJlZmVyZW5jZV92ZXJzaW9uKHBnV2luZG93LnBn QWRtaW4uQnJvd3Nlci5wcmVmZXJlbmNlX3ZlcnNpb24oKSk7CisgICAgICAgICAgICBwZ0FkbWlu LkJyb3dzZXIudHJpZ2dlclByZWZlcmVuY2VzQ2hhbmdlKCdicm93c2VyJyk7CisgICAgICAgICAg ICBwZ0FkbWluLkJyb3dzZXIudHJpZ2dlclByZWZlcmVuY2VzQ2hhbmdlKCdzcWxlZGl0b3InKTsK KyAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgIH0sIDEwMDApOworICAgIH0KKyAgfQorCisg IGxvYWRDb21wb25lbnQoY29udGFpbmVyLCBwYXJhbXMpIHsKKyAgICBsZXQgcGFuZWwgPSBudWxs OworICAgIGxldCBzZWxlY3RlZE5vZGVJbmZvID0gcGdXaW5kb3cucGdBZG1pbi5Ccm93c2VyLnRy ZWUuZ2V0VHJlZU5vZGVIaWVyYXJjaHkoCisgICAgICBwZ1dpbmRvdy5wZ0FkbWluLkJyb3dzZXIu dHJlZS5zZWxlY3RlZCgpCisgICAgKTsKKyAgICBfLmVhY2gocGdXaW5kb3cucGdBZG1pbi5Ccm93 c2VyLmRvY2tlci5maW5kUGFuZWxzKCdmcm1fc3FsZWRpdG9yJyksIGZ1bmN0aW9uKHApIHsKKyAg ICAgIGlmIChwLnRyYW5zX2lkID09IHBhcmFtcy50cmFuc19pZCkgeworICAgICAgICBwYW5lbCA9 IHA7CisgICAgICB9CisgICAgfSk7CisgICAgdGhpcy5zZXR1cFByZWZlcmVuY2VzV29ya2VyKCk7 CisgICAgUmVhY3RET00ucmVuZGVyKAorICAgICAgPE1vZGFsUHJvdmlkZXI+CisgICAgICAgIDxR dWVyeVRvb2xDb21wb25lbnQgcGFyYW1zPXtwYXJhbXN9IHBnV2luZG93PXtwZ1dpbmRvd30gcGdB ZG1pbj17cGdBZG1pbn0gcGFuZWw9e3BhbmVsfSBzZWxlY3RlZE5vZGVJbmZvPXtzZWxlY3RlZE5v ZGVJbmZvfS8+CisgICAgICA8L01vZGFsUHJvdmlkZXI+LAorICAgICAgY29udGFpbmVyCisgICAg KTsKKyAgfQorfQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vdG9vbHMvc3FsZWRpdG9yL3N0YXRp Yy9qcy9jb21wb25lbnRzL1F1ZXJ5VG9vbENvbXBvbmVudC5qc3ggYi93ZWIvcGdhZG1pbi90b29s cy9zcWxlZGl0b3Ivc3RhdGljL2pzL2NvbXBvbmVudHMvUXVlcnlUb29sQ29tcG9uZW50LmpzeApu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAuLjUxMmUyOWU1OAotLS0gL2Rldi9u dWxsCisrKyBiL3dlYi9wZ2FkbWluL3Rvb2xzL3NxbGVkaXRvci9zdGF0aWMvanMvY29tcG9uZW50 cy9RdWVyeVRvb2xDb21wb25lbnQuanN4CkBAIC0wLDAgKzEsNjIyIEBACisvLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLworLy8g cGdBZG1pbiA0IC0gUG9zdGdyZVNRTCBUb29scworLy8KKy8vIENvcHlyaWdodCAoQykgMjAxMyAt IDIwMjIsIFRoZSBwZ0FkbWluIERldmVsb3BtZW50IFRlYW0KKy8vIFRoaXMgc29mdHdhcmUgaXMg cmVsZWFzZWQgdW5kZXIgdGhlIFBvc3RncmVTUUwgTGljZW5jZQorLy8KKy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCitpbXBvcnQg UmVhY3QsIHt1c2VDYWxsYmFjaywgdXNlUmVmLCB1c2VNZW1vLCB1c2VTdGF0ZSwgdXNlRWZmZWN0 fSBmcm9tICdyZWFjdCc7CitpbXBvcnQgXyBmcm9tICdsb2Rhc2gnOworaW1wb3J0IExheW91dCwg eyBMYXlvdXRIZWxwZXIgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9zdGF0aWMvanMvaGVscGVycy9M YXlvdXQnOworaW1wb3J0IEV2ZW50QnVzIGZyb20gJy4uLy4uLy4uLy4uLy4uL3N0YXRpYy9qcy9o ZWxwZXJzL0V2ZW50QnVzJzsKK2ltcG9ydCBRdWVyeSBmcm9tICcuL3NlY3Rpb25zL1F1ZXJ5JzsK K2ltcG9ydCB7IENvbm5lY3Rpb25CYXIgfSBmcm9tICcuL3NlY3Rpb25zL0Nvbm5lY3Rpb25CYXIn OworaW1wb3J0IHsgUmVzdWx0U2V0IH0gZnJvbSAnLi9zZWN0aW9ucy9SZXN1bHRTZXQnOworaW1w b3J0IHsgU3RhdHVzQmFyIH0gZnJvbSAnLi9zZWN0aW9ucy9TdGF0dXNCYXInOworaW1wb3J0IHsg TWFpblRvb2xCYXIgfSBmcm9tICcuL3NlY3Rpb25zL01haW5Ub29sQmFyJzsKK2ltcG9ydCB7IE1l c3NhZ2VzIH0gZnJvbSAnLi9zZWN0aW9ucy9NZXNzYWdlcyc7CitpbXBvcnQgVGhlbWUgZnJvbSAn c291cmNlcy9UaGVtZSc7CitpbXBvcnQgZ2V0QXBpSW5zdGFuY2UsIHtwYXJzZUFwaUVycm9yfSBm cm9tICcuLi8uLi8uLi8uLi8uLi9zdGF0aWMvanMvYXBpX2luc3RhbmNlJzsKK2ltcG9ydCB1cmxf Zm9yIGZyb20gJ3NvdXJjZXMvdXJsX2Zvcic7CitpbXBvcnQgeyBQQU5FTFMsIFFVRVJZX1RPT0xf RVZFTlRTLCBDT05ORUNUSU9OX1NUQVRVUyB9IGZyb20gJy4vUXVlcnlUb29sQ29uc3RhbnRzJzsK K2ltcG9ydCB7IHVzZUludGVydmFsIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vc3RhdGljL2pzL2N1 c3RvbV9ob29rcyc7CitpbXBvcnQgeyBCb3ggfSBmcm9tICdAbWF0ZXJpYWwtdWkvY29yZSc7Citp bXBvcnQgeyBnZXREYXRhYmFzZUxhYmVsLCBnZXRUaXRsZSwgc2V0UXVlcnlUb29sRG9ja2VyVGl0 bGUgfSBmcm9tICcuLi9zcWxlZGl0b3JfdGl0bGUnOworaW1wb3J0IGdldHRleHQgZnJvbSAnc291 cmNlcy9nZXR0ZXh0JzsKK2ltcG9ydCBOZXdDb25uZWN0aW9uRGlhbG9nIGZyb20gJy4vZGlhbG9n cy9OZXdDb25uZWN0aW9uRGlhbG9nJzsKK2ltcG9ydCB7IGV2YWxGdW5jIH0gZnJvbSAnLi4vLi4v Li4vLi4vLi4vc3RhdGljL2pzL3V0aWxzJzsKK2ltcG9ydCB7IE5vdGlmaWNhdGlvbnMgfSBmcm9t ICcuL3NlY3Rpb25zL05vdGlmaWNhdGlvbnMnOworaW1wb3J0IE1hY3Jvc0RpYWxvZyBmcm9tICcu L2RpYWxvZ3MvTWFjcm9zRGlhbG9nJzsKK2ltcG9ydCBOb3RpZmllciBmcm9tICcuLi8uLi8uLi8u Li8uLi9zdGF0aWMvanMvaGVscGVycy9Ob3RpZmllcic7CitpbXBvcnQgRmlsdGVyRGlhbG9nIGZy b20gJy4vZGlhbG9ncy9GaWx0ZXJEaWFsb2cnOworaW1wb3J0IHsgUXVlcnlIaXN0b3J5IH0gZnJv bSAnLi9zZWN0aW9ucy9RdWVyeUhpc3RvcnknOworaW1wb3J0ICogYXMgc2hvd1F1ZXJ5VG9vbCBm cm9tICcuLi9zaG93X3F1ZXJ5X3Rvb2wnOworaW1wb3J0ICogYXMgY29tbW9uVXRpbHMgZnJvbSAn c291cmNlcy91dGlscyc7CitpbXBvcnQgKiBhcyBLZXJiZXJvcyBmcm9tICdwZ2FkbWluLmF1dGhl bnRpY2F0ZS5rZXJiZXJvcyc7CitpbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnOwor aW1wb3J0IHsgcmV0cmlldmVOb2RlTmFtZSB9IGZyb20gJy4uL3Nob3dfdmlld19kYXRhJzsKK2lt cG9ydCAnd2Nkb2NrZXInOworaW1wb3J0IHsgdXNlTW9kYWwgfSBmcm9tICcuLi8uLi8uLi8uLi8u Li9zdGF0aWMvanMvaGVscGVycy9Nb2RhbFByb3ZpZGVyJzsKKworZXhwb3J0IGNvbnN0IFF1ZXJ5 VG9vbENvbnRleHQgPSBSZWFjdC5jcmVhdGVDb250ZXh0KCk7CitleHBvcnQgY29uc3QgUXVlcnlU b29sQ29ubmVjdGlvbkNvbnRleHQgPSBSZWFjdC5jcmVhdGVDb250ZXh0KCk7CitleHBvcnQgY29u c3QgUXVlcnlUb29sRXZlbnRzQ29udGV4dCA9IFJlYWN0LmNyZWF0ZUNvbnRleHQoKTsKKworZnVu Y3Rpb24gZmV0Y2hDb25uZWN0aW9uU3RhdHVzKGFwaSwgdHJhbnNJZCkgeworICByZXR1cm4gYXBp LmdldCh1cmxfZm9yKCdzcWxlZGl0b3IuY29ubmVjdGlvbl9zdGF0dXMnLCB7dHJhbnNfaWQ6IHRy YW5zSWR9KSk7Cit9CisKK2Z1bmN0aW9uIGluaXRDb25uZWN0aW9uKGFwaSwgcGFyYW1zLCBwYXNz ZGF0YSkgeworICByZXR1cm4gYXBpLnBvc3QodXJsX2ZvcignTk9ERS1zZXJ2ZXIuY29ubmVjdF9p ZCcsIHBhcmFtcyksIHBhc3NkYXRhKTsKK30KKworZnVuY3Rpb24gc2V0UGFuZWxUaXRsZShwYW5l bCwgdGl0bGUsIHF0U3RhdGUsIGRpcnR5PWZhbHNlKSB7CisgIGlmKHRpdGxlKSB7CisgICAgdGl0 bGUgPXRpdGxlLnNwbGl0KCdcXCcpLnBvcCgpLnNwbGl0KCcvJykucG9wKCk7CisgIH0gZWxzZSBp ZihxdFN0YXRlLmN1cnJlbnRfZmlsZSkgeworICAgIHRpdGxlID0gcXRTdGF0ZS5jdXJyZW50X2Zp bGUuc3BsaXQoJ1xcJykucG9wKCkuc3BsaXQoJy8nKS5wb3AoKTsKKyAgfSBlbHNlIHsKKyAgICB0 aXRsZSA9IHF0U3RhdGUucGFyYW1zLnRpdGxlIHx8ICdVbnRpdGxlZCc7CisgIH0KKworICB0aXRs ZSA9IHRpdGxlICsgKGRpcnR5ID8gJyonOiAnJyk7CisgIGlmIChxdFN0YXRlLmlzX25ld190YWIp IHsKKyAgICB3aW5kb3cuZG9jdW1lbnQudGl0bGUgPSB0aXRsZTsKKyAgfSBlbHNlIHsKKyAgICBz ZXRRdWVyeVRvb2xEb2NrZXJUaXRsZShwYW5lbCwgdHJ1ZSwgdGl0bGUsIHF0U3RhdGUuY3VycmVu dF9maWxlID8gdHJ1ZSA6IGZhbHNlKTsKKyAgfQorfQorZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24g UXVlcnlUb29sQ29tcG9uZW50KHtwYXJhbXMsIHBnV2luZG93LCBwZ0FkbWluLCBzZWxlY3RlZE5v ZGVJbmZvLCBwYW5lbCwgZXZlbnRCdXNPYmp9KSB7CisgIGNvbnN0IGNvbnRhaW5lclJlZiA9IFJl YWN0LnVzZVJlZihudWxsKTsKKyAgY29uc3QgZm9yY2VDbG9zZSA9IFJlYWN0LnVzZVJlZihmYWxz ZSk7CisgIGNvbnN0IFtxdFN0YXRlLCBfc2V0UXRTdGF0ZV0gPSB1c2VTdGF0ZSh7CisgICAgcHJl ZmVyZW5jZXM6IHsKKyAgICAgIGJyb3dzZXI6IHt9LCBzcWxlZGl0b3I6IHt9LAorICAgIH0sCisg ICAgaXNfbmV3X3RhYjogd2luZG93LmxvY2F0aW9uID09IHdpbmRvdy5wYXJlbnQubG9jYXRpb24s CisgICAgY3VycmVudF9maWxlOiBudWxsLAorICAgIG9idGFpbmluZ19jb25uOiB0cnVlLAorICAg IGNvbm5lY3RlZDogZmFsc2UsCisgICAgY29ubmVjdGlvbl9zdGF0dXM6IG51bGwsCisgICAgY29u bmVjdGlvbl9zdGF0dXNfbXNnOiAnJywKKyAgICBwYXJhbXM6IHsKKyAgICAgIC4uLnBhcmFtcywK KyAgICAgIGlzX3F1ZXJ5X3Rvb2w6IHBhcmFtcy5pc19xdWVyeV90b29sID09ICd0cnVlJyA/IHRy dWUgOiBmYWxzZSwKKyAgICAgIG5vZGVfbmFtZTogcmV0cmlldmVOb2RlTmFtZShzZWxlY3RlZE5v ZGVJbmZvKSwKKyAgICB9LAorICAgIGNvbm5lY3Rpb25fbGlzdDogW3sKKyAgICAgIHNnaWQ6IHBh cmFtcy5zZ2lkLAorICAgICAgc2lkOiBwYXJhbXMuc2lkLAorICAgICAgZGlkOiBwYXJhbXMuZGlk LAorICAgICAgdXNlcjogcGFyYW1zLnVzZXJuYW1lLAorICAgICAgcm9sZTogbnVsbCwKKyAgICAg IHRpdGxlOiBfLnVuZXNjYXBlKHBhcmFtcy50aXRsZSksCisgICAgICBjb25uX3RpdGxlOiBnZXRU aXRsZSgKKyAgICAgICAgcGdBZG1pbiwgbnVsbCwgc2VsZWN0ZWROb2RlSW5mbywgdHJ1ZSwgcGFy YW1zLnNlcnZlcl9uYW1lLCBwYXJhbXMuZGF0YWJhc2VfbmFtZSB8fCBnZXREYXRhYmFzZUxhYmVs KHNlbGVjdGVkTm9kZUluZm8pLAorICAgICAgICBwYXJhbXMudXNlcm5hbWUsIHBhcmFtcy5pc19x dWVyeV90b29sID09ICd0cnVlJyA/IHRydWUgOiBmYWxzZSksCisgICAgICBzZXJ2ZXJfbmFtZTog cGFyYW1zLnNlcnZlcl9uYW1lLAorICAgICAgZGF0YWJhc2VfbmFtZTogcGFyYW1zLmRhdGFiYXNl X25hbWUgfHwgZ2V0RGF0YWJhc2VMYWJlbChzZWxlY3RlZE5vZGVJbmZvKSwKKyAgICAgIGlzX3Nl bGVjdGVkOiB0cnVlLAorICAgIH1dLAorICB9KTsKKworICBjb25zdCBzZXRRdFN0YXRlID0gKHN0 YXRlKT0+eworICAgIF9zZXRRdFN0YXRlKChwcmV2KT0+KHsuLi5wcmV2LC4uLmV2YWxGdW5jKG51 bGwsIHN0YXRlLCBwcmV2KX0pKTsKKyAgfTsKKyAgY29uc3QgZXZlbnRCdXMgPSB1c2VSZWYoZXZl bnRCdXNPYmogfHwgKG5ldyBFdmVudEJ1cygpKSk7CisgIGNvbnN0IGRvY2tlciA9IHVzZVJlZihu dWxsKTsKKyAgY29uc3QgYXBpID0gdXNlTWVtbygoKT0+Z2V0QXBpSW5zdGFuY2UoKSwgW10pOwor ICBjb25zdCBtb2RhbCA9IHVzZU1vZGFsKCk7CisKKyAgLyogQ29ubmVjdGlvbiBzdGF0dXMgcG9s bGVyICovCisgIGxldCBwb2xsVGltZSA9IHF0U3RhdGUucHJlZmVyZW5jZXMuc3FsZWRpdG9yLmNv bm5lY3Rpb25fc3RhdHVzX2ZldGNoX3RpbWUgPiAwID8KKyAgICBxdFN0YXRlLnByZWZlcmVuY2Vz LnNxbGVkaXRvci5jb25uZWN0aW9uX3N0YXR1c19mZXRjaF90aW1lKjEwMDAgOiAtMTsKKyAgLyog Tm8gbmVlZCB0byBwb2xsIHdoZW4gdGhlIHF1ZXJ5IGlzIGV4ZWN1dGluZy4gUXVlcnkgcG9sbGVy IHdpbGwgdGhlIHR4biBzdGF0dXMgKi8KKyAgaWYocXRTdGF0ZS5jb25uZWN0aW9uX3N0YXR1cyA9 PT0gQ09OTkVDVElPTl9TVEFUVVMuVFJBTlNBQ1RJT05fU1RBVFVTX0FDVElWRSAmJiBxdFN0YXRl LmNvbm5lY3RlZCkgeworICAgIHBvbGxUaW1lID0gLTE7CisgIH0KKyAgdXNlSW50ZXJ2YWwoYXN5 bmMgKCk9PnsKKyAgICB0cnkgeworICAgICAgbGV0IHtkYXRhOiByZXNwRGF0YX0gPSBhd2FpdCBm ZXRjaENvbm5lY3Rpb25TdGF0dXMoYXBpLCBxdFN0YXRlLnBhcmFtcy50cmFuc19pZCk7CisgICAg ICBpZihyZXNwRGF0YS5kYXRhKSB7CisgICAgICAgIHNldFF0U3RhdGUoeworICAgICAgICAgIGNv bm5lY3RlZDogdHJ1ZSwKKyAgICAgICAgICBjb25uZWN0aW9uX3N0YXR1czogcmVzcERhdGEuZGF0 YS5zdGF0dXMsCisgICAgICAgIH0pOworICAgICAgfSBlbHNlIHsKKyAgICAgICAgc2V0UXRTdGF0 ZSh7CisgICAgICAgICAgY29ubmVjdGVkOiBmYWxzZSwKKyAgICAgICAgICBjb25uZWN0aW9uX3N0 YXR1czogbnVsbCwKKyAgICAgICAgICBjb25uZWN0aW9uX3N0YXR1c19tc2c6IGdldHRleHQoJ0Fu IHVuZXhwZWN0ZWQgZXJyb3Igb2NjdXJyZWQgLSBlbnN1cmUgeW91IGFyZSBsb2dnZWQgaW50byB0 aGUgYXBwbGljYXRpb24uJykKKyAgICAgICAgfSk7CisgICAgICB9CisgICAgICBpZihyZXNwRGF0 YS5kYXRhLm5vdGlmaWVzKSB7CisgICAgICAgIGV2ZW50QnVzLmN1cnJlbnQuZmlyZUV2ZW50KFFV RVJZX1RPT0xfRVZFTlRTLlBVU0hfTk9USUNFLCByZXNwRGF0YS5kYXRhLm5vdGlmaWVzKTsKKyAg ICAgIH0KKyAgICB9IGNhdGNoIChlcnJvcikgeworICAgICAgY29uc29sZS5lcnJvcihlcnJvcik7 CisgICAgICBzZXRRdFN0YXRlKHsKKyAgICAgICAgY29ubmVjdGVkOiBmYWxzZSwKKyAgICAgICAg Y29ubmVjdGlvbl9zdGF0dXM6IG51bGwsCisgICAgICAgIGNvbm5lY3Rpb25fc3RhdHVzX21zZzog cGFyc2VBcGlFcnJvcihlcnJvciksCisgICAgICB9KTsKKyAgICB9CisgIH0sIHBvbGxUaW1lKTsK KworICBsZXQgZGVmYXVsdExheW91dCA9IHsKKyAgICBkb2NrYm94OiB7CisgICAgICBtb2RlOiAn dmVydGljYWwnLAorICAgICAgY2hpbGRyZW46IFsKKyAgICAgICAgeworICAgICAgICAgIHRhYnM6 IFsKKyAgICAgICAgICAgIExheW91dEhlbHBlci5nZXRQYW5lbCh7aWQ6IFBBTkVMUy5RVUVSWSwg dGl0bGU6ICdRdWVyeScsIGNvbnRlbnQ6IDxRdWVyeSAvPn0pLAorICAgICAgICAgICAgTGF5b3V0 SGVscGVyLmdldFBhbmVsKHtpZDogUEFORUxTLkhJU1RPUlksIHRpdGxlOiAnUXVlcnkgSGlzdG9y eScsIGNvbnRlbnQ6IDxRdWVyeUhpc3RvcnkgLz4sCisgICAgICAgICAgICAgIGNhY2hlZDogdW5k ZWZpbmVkfSksCisgICAgICAgICAgXSwKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAg IG1vZGU6ICdob3Jpem9udGFsJywKKyAgICAgICAgICBjaGlsZHJlbjogWworICAgICAgICAgICAg eworICAgICAgICAgICAgICB0YWJzOiBbCisgICAgICAgICAgICAgICAgTGF5b3V0SGVscGVyLmdl dFBhbmVsKHsKKyAgICAgICAgICAgICAgICAgIGlkOiBQQU5FTFMuREFUQV9PVVRQVVQsIHRpdGxl OiAnRGF0YSBvdXRwdXQnLCBjb250ZW50OiA8UmVzdWx0U2V0IC8+LAorICAgICAgICAgICAgICAg IH0pLAorICAgICAgICAgICAgICAgIExheW91dEhlbHBlci5nZXRQYW5lbCh7CisgICAgICAgICAg ICAgICAgICBpZDogUEFORUxTLk1FU1NBR0VTLCB0aXRsZTonTWVzc2FnZXMnLCBjb250ZW50OiA8 TWVzc2FnZXMgLz4sCisgICAgICAgICAgICAgICAgfSksCisgICAgICAgICAgICAgICAgTGF5b3V0 SGVscGVyLmdldFBhbmVsKHsKKyAgICAgICAgICAgICAgICAgIGlkOiBQQU5FTFMuTk9USUZJQ0FU SU9OUywgdGl0bGU6J05vdGlmaWNhdGlvbnMnLCBjb250ZW50OiA8Tm90aWZpY2F0aW9ucyAvPiwK KyAgICAgICAgICAgICAgICB9KSwKKyAgICAgICAgICAgICAgXSwKKyAgICAgICAgICAgIH0KKyAg ICAgICAgICBdCisgICAgICAgIH0sCisgICAgICBdCisgICAgfSwKKyAgfTsKKworICBjb25zdCBy ZWZsZWN0UHJlZmVyZW5jZXMgPSB1c2VDYWxsYmFjaygoKT0+eworICAgIHNldFF0U3RhdGUoe3By ZWZlcmVuY2VzOiB7CisgICAgICBicm93c2VyOiBwZ1dpbmRvdy5wZ0FkbWluLkJyb3dzZXIuZ2V0 X3ByZWZlcmVuY2VzX2Zvcl9tb2R1bGUoJ2Jyb3dzZXInKSwKKyAgICAgIHNxbGVkaXRvcjogcGdX aW5kb3cucGdBZG1pbi5Ccm93c2VyLmdldF9wcmVmZXJlbmNlc19mb3JfbW9kdWxlKCdzcWxlZGl0 b3InKSwKKyAgICB9fSk7CisgIH0sIFtdKTsKKworICBjb25zdCBnZXRTUUxTY3JpcHQgPSAoKT0+ eworICAgIC8vIEZldGNoIHRoZSBTUUwgZm9yIFNjcmlwdHMgKGVnOiBDUkVBVEUvVVBEQVRFL0RF TEVURS9TRUxFQ1QpCisgICAgLy8gQ2FsbCBBSkFYIG9ubHkgaWYgc2NyaXB0IHR5cGUgdXJsIGlz IHByZXNlbnQKKyAgICBpZihxdFN0YXRlLnBhcmFtcy5pc19xdWVyeV90b29sICYmIHF0U3RhdGUu cGFyYW1zLnF1ZXJ5X3VybCkgeworICAgICAgYXBpLmdldChxdFN0YXRlLnBhcmFtcy5xdWVyeV91 cmwpCisgICAgICAgIC50aGVuKChyZXMpPT57CisgICAgICAgICAgZXZlbnRCdXMuY3VycmVudC5m aXJlRXZlbnQoUVVFUllfVE9PTF9FVkVOVFMuRURJVE9SX1NFVF9TUUwsIHJlcy5kYXRhKTsKKyAg ICAgICAgfSkKKyAgICAgICAgLmNhdGNoKChlcnIpPT57CisgICAgICAgICAgZXZlbnRCdXMuY3Vy cmVudC5maXJlRXZlbnQoUVVFUllfVE9PTF9FVkVOVFMuSEFORExFX0FQSV9FUlJPUiwgZXJyKTsK KyAgICAgICAgfSk7CisgICAgfQorICB9OworCisgIGNvbnN0IGluaXRpYWxpemVRdWVyeVRvb2wg PSAoKT0+eworICAgIGxldCBzZWxlY3RlZENvbm4gPSBfLmZpbmQocXRTdGF0ZS5jb25uZWN0aW9u X2xpc3QsIChjKT0+Yy5pc19zZWxlY3RlZCk7CisgICAgbGV0IGJhc2VVcmwgPSAnJzsKKyAgICBp ZihxdFN0YXRlLnBhcmFtcy5pc19xdWVyeV90b29sKSB7CisgICAgICBsZXQgZW5kcG9pbnQgPSAn c3FsZWRpdG9yLmluaXRpYWxpemVfc3FsZWRpdG9yJzsKKworICAgICAgaWYocXRTdGF0ZS5wYXJh bXMuZGlkKSB7CisgICAgICAgIGVuZHBvaW50ID0gJ3NxbGVkaXRvci5pbml0aWFsaXplX3NxbGVk aXRvcl93aXRoX2RpZCc7CisgICAgICB9CisgICAgICBiYXNlVXJsID0gdXJsX2ZvcihlbmRwb2lu dCwgeworICAgICAgICAuLi5zZWxlY3RlZENvbm4sCisgICAgICAgIHRyYW5zX2lkOiBxdFN0YXRl LnBhcmFtcy50cmFuc19pZCwKKyAgICAgIH0pOworICAgIH0gZWxzZSB7CisgICAgICBiYXNlVXJs ID0gdXJsX2Zvcignc3FsZWRpdG9yLmluaXRpYWxpemVfdmlld2RhdGEnLCB7CisgICAgICAgIC4u LnF0U3RhdGUucGFyYW1zLAorICAgICAgfSk7CisgICAgfQorICAgIGFwaS5wb3N0KGJhc2VVcmws IHF0U3RhdGUucGFyYW1zLmlzX3F1ZXJ5X3Rvb2wgPyBudWxsIDogSlNPTi5zdHJpbmdpZnkocXRT dGF0ZS5wYXJhbXMuc3FsX2ZpbHRlcikpCisgICAgICAudGhlbigoKT0+eworICAgICAgICBzZXRR dFN0YXRlKHsKKyAgICAgICAgICBjb25uZWN0ZWQ6IHRydWUsCisgICAgICAgICAgb2J0YWluaW5n X2Nvbm46IGZhbHNlLAorICAgICAgICB9KTsKKworICAgICAgICBpZighcXRTdGF0ZS5wYXJhbXMu aXNfcXVlcnlfdG9vbCkgeworICAgICAgICAgIGV2ZW50QnVzLmN1cnJlbnQuZmlyZUV2ZW50KFFV RVJZX1RPT0xfRVZFTlRTLlRSSUdHRVJfRVhFQ1VUSU9OKTsKKyAgICAgICAgfQorICAgICAgfSku Y2F0Y2goKGVycik9PnsKKyAgICAgICAgaWYoZXJyLnJlc3BvbnNlPy5yZXF1ZXN0Py5yZXNwb25z ZVRleHQ/LnNlYXJjaCgnVGlja2V0IGV4cGlyZWQnKSAhPT0gLTEpIHsKKyAgICAgICAgICBLZXJi ZXJvcy5mZXRjaF90aWNrZXQoKQorICAgICAgICAgICAgLnRoZW4oKCk9PnsKKyAgICAgICAgICAg ICAgaW5pdGlhbGl6ZVF1ZXJ5VG9vbCgpOworICAgICAgICAgICAgfSkKKyAgICAgICAgICAgIC5j YXRjaCgoa2JlcnIpPT57CisgICAgICAgICAgICAgIHNldFF0U3RhdGUoeworICAgICAgICAgICAg ICAgIGNvbm5lY3RlZDogZmFsc2UsCisgICAgICAgICAgICAgICAgb2J0YWluaW5nX2Nvbm46IGZh bHNlLAorICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgZXZlbnRCdXMuY3VycmVudC5m aXJlRXZlbnQoUVVFUllfVE9PTF9FVkVOVFMuSEFORExFX0FQSV9FUlJPUiwga2JlcnIpOworICAg ICAgICAgICAgfSk7CisgICAgICAgIH0KKyAgICAgICAgc2V0UXRTdGF0ZSh7CisgICAgICAgICAg Y29ubmVjdGVkOiBmYWxzZSwKKyAgICAgICAgICBvYnRhaW5pbmdfY29ubjogZmFsc2UsCisgICAg ICAgIH0pOworICAgICAgICBldmVudEJ1cy5jdXJyZW50LmZpcmVFdmVudChRVUVSWV9UT09MX0VW RU5UUy5IQU5ETEVfQVBJX0VSUk9SLCBlcnIpOworICAgICAgfSk7CisgIH07CisKKyAgdXNlRWZm ZWN0KCgpPT57CisgICAgZ2V0U1FMU2NyaXB0KCk7CisgICAgaW5pdGlhbGl6ZVF1ZXJ5VG9vbCgp OworCisgICAgZXZlbnRCdXMuY3VycmVudC5yZWdpc3Rlckxpc3RlbmVyKFFVRVJZX1RPT0xfRVZF TlRTLkZPQ1VTX1BBTkVMLCAocGFuZWxJZCk9PnsKKyAgICAgIExheW91dEhlbHBlci5mb2N1cyhk b2NrZXIuY3VycmVudCwgcGFuZWxJZCk7CisgICAgfSk7CisKKyAgICBldmVudEJ1cy5jdXJyZW50 LnJlZ2lzdGVyTGlzdGVuZXIoUVVFUllfVE9PTF9FVkVOVFMuU0VUX0NPTk5FQ1RJT05fU1RBVFVT LCAoc3RhdHVzKT0+eworICAgICAgc2V0UXRTdGF0ZSh7Y29ubmVjdGlvbl9zdGF0dXM6IHN0YXR1 c30pOworICAgIH0pOworCisgICAgZXZlbnRCdXMuY3VycmVudC5yZWdpc3Rlckxpc3RlbmVyKFFV RVJZX1RPT0xfRVZFTlRTLkZPUkNFX0NMT1NFX1BBTkVMLCAoKT0+eworICAgICAgcGFuZWwub2Zm KHdpbmRvdy53Y0RvY2tlci5FVkVOVC5DTE9TSU5HKTsKKyAgICAgIHBhbmVsLmNsb3NlKCk7Cisg ICAgfSk7CisKKyAgICByZWZsZWN0UHJlZmVyZW5jZXMoKTsKKyAgICBwZ1dpbmRvdy5wZ0FkbWlu LkJyb3dzZXIub25QcmVmZXJlbmNlc0NoYW5nZSgnc3FsZWRpdG9yJywgZnVuY3Rpb24oKSB7Cisg ICAgICByZWZsZWN0UHJlZmVyZW5jZXMoKTsKKyAgICB9KTsKKworICAgIC8qIFdDIGRvY2tlciBl dmVudHMgKi8KKyAgICBwYW5lbD8ub24od2luZG93LndjRG9ja2VyLkVWRU5ULkNMT1NJTkcsIGZ1 bmN0aW9uKCkgeworICAgICAgaWYoIWZvcmNlQ2xvc2UuY3VycmVudCkgeworICAgICAgICBldmVu dEJ1cy5jdXJyZW50LmZpcmVFdmVudChRVUVSWV9UT09MX0VWRU5UUy5XQVJOX1NBVkVfREFUQV9D TE9TRSk7CisgICAgICB9IGVsc2UgeworICAgICAgICBwYW5lbC5jbG9zZSgpOworICAgICAgfQor ICAgIH0pOworCisgICAgcGdBZG1pbi5Ccm93c2VyLkV2ZW50cy5vbigncGdhZG1pbi1zdG9yYWdl OmZpbmlzaF9idG46c2VsZWN0X2ZpbGUnLCAoZmlsZU5hbWUpPT57CisgICAgICBldmVudEJ1cy5j dXJyZW50LmZpcmVFdmVudChRVUVSWV9UT09MX0VWRU5UUy5MT0FEX0ZJTEUsIGZpbGVOYW1lKTsK KyAgICB9LCBwZ0FkbWluKTsKKworICAgIHBnQWRtaW4uQnJvd3Nlci5FdmVudHMub24oJ3BnYWRt aW4tc3RvcmFnZTpmaW5pc2hfYnRuOmNyZWF0ZV9maWxlJywgKGZpbGVOYW1lKT0+eworICAgICAg ZXZlbnRCdXMuY3VycmVudC5maXJlRXZlbnQoUVVFUllfVE9PTF9FVkVOVFMuU0FWRV9GSUxFLCBm aWxlTmFtZSk7CisgICAgfSwgcGdBZG1pbik7CisgIH0sIFtdKTsKKworICB1c2VFZmZlY3QoKCk9 PnsKKyAgICBjb25zdCBwdXNoSGlzdG9yeSA9IChoKT0+eworICAgICAgYXBpLnBvc3QoCisgICAg ICAgIHVybF9mb3IoJ3NxbGVkaXRvci5hZGRfcXVlcnlfaGlzdG9yeScsIHsKKyAgICAgICAgICAn dHJhbnNfaWQnOiBxdFN0YXRlLnBhcmFtcy50cmFuc19pZCwKKyAgICAgICAgfSksCisgICAgICAg IEpTT04uc3RyaW5naWZ5KGgpLAorICAgICAgKS5jYXRjaCgoZXJyb3IpPT57Y29uc29sZS5lcnJv cihlcnJvcik7fSk7CisgICAgfTsKKyAgICBldmVudEJ1cy5jdXJyZW50LnJlZ2lzdGVyTGlzdGVu ZXIoUVVFUllfVE9PTF9FVkVOVFMuUFVTSF9ISVNUT1JZLCAoaCk9PnsKKyAgICAgIHB1c2hIaXN0 b3J5KGgpOworICAgIH0pOworICAgIHJldHVybiAoKT0+e2V2ZW50QnVzLmN1cnJlbnQuZGVyZWdp c3Rlckxpc3RlbmVyKFFVRVJZX1RPT0xfRVZFTlRTLlBVU0hfSElTVE9SWSwgcHVzaEhpc3Rvcnkp O307CisgIH0sIFtxdFN0YXRlLnBhcmFtcy50cmFuc19pZF0pOworCisKKyAgY29uc3QgaGFuZGxl QXBpRXJyb3IgPSAoZXJyb3IsIGhhbmRsZVBhcmFtcyk9PnsKKyAgICBpZihlcnJvci5yZXNwb25z ZSAmJiBwZ0FkbWluLkJyb3dzZXI/LlVzZXJNYW5hZ2VtZW50Py5pc1BnYUxvZ2luUmVxdWlyZWQo ZXJyb3IucmVzcG9uc2UpKSB7CisgICAgICByZXR1cm4gcGdBZG1pbi5Ccm93c2VyLlVzZXJNYW5h Z2VtZW50LnBnYUxvZ2luKCk7CisgICAgfQorCisgICAgaWYoZXJyb3IucmVzcG9uc2U/LnN0YXR1 cyA9PSA1MDMgJiYgZXJyb3IucmVzcG9uc2UuZGF0YT8uaW5mbyA9PSAnQ09OTkVDVElPTl9MT1NU JykgeworICAgICAgLy8gV2Ugd2lsbCBkaXNwbGF5IHJlLWNvbm5lY3QgZGlhbG9nLCBubyBuZWVk IHRvIGRpc3BsYXkgZXJyb3IgbWVzc2FnZSBhZ2FpbgorICAgICAgbW9kYWwuY29uZmlybSgKKyAg ICAgICAgZ2V0dGV4dCgnQ29ubmVjdGlvbiBXYXJuaW5nJyksCisgICAgICAgIDxwPgorICAgICAg ICAgIDxzcGFuPntnZXR0ZXh0KCdUaGUgYXBwbGljYXRpb24gaGFzIGxvc3QgdGhlIGRhdGFiYXNl IGNvbm5lY3Rpb246Jyl9PC9zcGFuPgorICAgICAgICAgIDxici8+PHNwYW4+e2dldHRleHQoJ+KB gyBJZiB0aGUgY29ubmVjdGlvbiB3YXMgaWRsZSBpdCBtYXkgaGF2ZSBiZWVuIGZvcmNpYmx5IGRp c2Nvbm5lY3RlZC4nKX08L3NwYW4+CisgICAgICAgICAgPGJyLz48c3Bhbj57Z2V0dGV4dCgn4oGD IFRoZSBhcHBsaWNhdGlvbiBzZXJ2ZXIgb3IgZGF0YWJhc2Ugc2VydmVyIG1heSBoYXZlIGJlZW4g cmVzdGFydGVkLicpfTwvc3Bhbj4KKyAgICAgICAgICA8YnIvPjxzcGFuPntnZXR0ZXh0KCfigYMg VGhlIHVzZXIgc2Vzc2lvbiBtYXkgaGF2ZSB0aW1lZCBvdXQuJyl9PC9zcGFuPgorICAgICAgICAg IDxiciAvPgorICAgICAgICAgIDxzcGFuPntnZXR0ZXh0KCdEbyB5b3Ugd2FudCB0byBjb250aW51 ZSBhbmQgZXN0YWJsaXNoIGEgbmV3IHNlc3Npb24nKX08L3NwYW4+CisgICAgICAgIDwvcD4sCisg ICAgICAgIGZ1bmN0aW9uKCkgeworICAgICAgICAgIGhhbmRsZVBhcmFtcz8uY29ubmVjdGlvbkxv c3RDYWxsYmFjaz8uKCk7CisgICAgICAgIH0sIG51bGwsCisgICAgICAgIGdldHRleHQoJ0NvbnRp bnVlJyksCisgICAgICAgIGdldHRleHQoJ0NhbmNlbCcpCisgICAgICApOworICAgIH0gZWxzZSBp ZihoYW5kbGVQYXJhbXM/LmNoZWNrVHJhbnNhY3Rpb24gJiYgZXJyb3IucmVzcG9uc2U/LmRhdGEu aW5mbyA9PSAnREFUQUdSSURfVFJBTlNBQ1RJT05fUkVRVUlSRUQnKSB7CisgICAgICBsZXQgc2Vs ZWN0ZWRDb25uID0gXy5maW5kKHF0U3RhdGUuY29ubmVjdGlvbl9saXN0LCAoYyk9PmMuaXNfc2Vs ZWN0ZWQpOworICAgICAgaW5pdENvbm5lY3Rpb24oYXBpLCB7CisgICAgICAgICdnaWQnOiBzZWxl Y3RlZENvbm4uc2dpZCwKKyAgICAgICAgJ3NpZCc6IHNlbGVjdGVkQ29ubi5zaWQsCisgICAgICAg ICdkaWQnOiBzZWxlY3RlZENvbm4uZGlkLAorICAgICAgICAncm9sZSc6IHNlbGVjdGVkQ29ubi5y b2xlLAorICAgICAgfSkudGhlbigoKT0+eworICAgICAgICBpbml0aWFsaXplUXVlcnlUb29sKCk7 CisgICAgICB9KS5jYXRjaCgoZXJyKT0+eworICAgICAgICBldmVudEJ1cy5maXJlRXZlbnQoUVVF UllfVE9PTF9FVkVOVFMuSEFORExFX0FQSV9FUlJPUiwgZXJyKTsKKyAgICAgIH0pOworICAgIH0g ZWxzZSB7CisgICAgICBsZXQgbXNnID0gcGFyc2VBcGlFcnJvcihlcnJvcik7CisgICAgICBldmVu dEJ1cy5jdXJyZW50LmZpcmVFdmVudChRVUVSWV9UT09MX0VWRU5UUy5TRVRfTUVTU0FHRSwgbXNn LCB0cnVlKTsKKyAgICAgIGV2ZW50QnVzLmN1cnJlbnQuZmlyZUV2ZW50KFFVRVJZX1RPT0xfRVZF TlRTLkZPQ1VTX1BBTkVMLCBQQU5FTFMuTUVTU0FHRVMpOworICAgICAgTm90aWZpZXIuZXJyb3Io bXNnKTsKKyAgICB9CisgIH07CisKKyAgdXNlRWZmZWN0KCgpPT57CisgICAgY29uc3QgZmlsZURv bmUgPSAoZmlsZU5hbWUsIHN1Y2Nlc3M9dHJ1ZSk9PnsKKyAgICAgIGlmKHN1Y2Nlc3MpIHsKKyAg ICAgICAgc2V0UXRTdGF0ZSh7CisgICAgICAgICAgY3VycmVudF9maWxlOiBmaWxlTmFtZSwKKyAg ICAgICAgfSk7CisgICAgICAgIHNldFBhbmVsVGl0bGUocGFuZWwsIGZpbGVOYW1lLCB7Li4ucXRT dGF0ZSwgY3VycmVudF9maWxlOiBmaWxlTmFtZX0pOworICAgICAgfQorICAgIH07CisgICAgY29u c3QgZXZlbnRzID0gWworICAgICAgW1FVRVJZX1RPT0xfRVZFTlRTLlRSSUdHRVJfTE9BRF9GSUxF LCAoKT0+eworICAgICAgICBsZXQgZmlsZVBhcmFtcyA9IHsKKyAgICAgICAgICAnc3VwcG9ydGVk X3R5cGVzJzogWycqJywgJ3NxbCddLCAvLyBmaWxlIHR5cGVzIGFsbG93ZWQKKyAgICAgICAgICAn ZGlhbG9nX3R5cGUnOiAnc2VsZWN0X2ZpbGUnLCAvLyBvcGVuIHNlbGVjdCBmaWxlIGRpYWxvZwor ICAgICAgICB9OworICAgICAgICBwZ0FkbWluLkZpbGVNYW5hZ2VyLmluaXQoKTsKKyAgICAgICAg cGdBZG1pbi5GaWxlTWFuYWdlci5zaG93X2RpYWxvZyhmaWxlUGFyYW1zKTsKKyAgICAgIH1dLAor ICAgICAgW1FVRVJZX1RPT0xfRVZFTlRTLlRSSUdHRVJfU0FWRV9GSUxFLCAoaXNTYXZlQXM9ZmFs c2UpPT57CisgICAgICAgIGlmKCFpc1NhdmVBcyAmJiBxdFN0YXRlLmN1cnJlbnRfZmlsZSkgewor ICAgICAgICAgIGV2ZW50QnVzLmN1cnJlbnQuZmlyZUV2ZW50KFFVRVJZX1RPT0xfRVZFTlRTLlNB VkVfRklMRSwgcXRTdGF0ZS5jdXJyZW50X2ZpbGUpOworICAgICAgICB9IGVsc2UgeworICAgICAg ICAgIGxldCBmaWxlUGFyYW1zID0geworICAgICAgICAgICAgJ3N1cHBvcnRlZF90eXBlcyc6IFsn KicsICdzcWwnXSwKKyAgICAgICAgICAgICdkaWFsb2dfdHlwZSc6ICdjcmVhdGVfZmlsZScsCisg ICAgICAgICAgICAnZGlhbG9nX3RpdGxlJzogJ1NhdmUgRmlsZScsCisgICAgICAgICAgICAnYnRu X3ByaW1hcnknOiAnU2F2ZScsCisgICAgICAgICAgfTsKKyAgICAgICAgICBwZ0FkbWluLkZpbGVN YW5hZ2VyLmluaXQoKTsKKyAgICAgICAgICBwZ0FkbWluLkZpbGVNYW5hZ2VyLnNob3dfZGlhbG9n KGZpbGVQYXJhbXMpOworICAgICAgICB9CisgICAgICB9XSwKKyAgICAgIFtRVUVSWV9UT09MX0VW RU5UUy5MT0FEX0ZJTEVfRE9ORSwgZmlsZURvbmVdLAorICAgICAgW1FVRVJZX1RPT0xfRVZFTlRT LlNBVkVfRklMRV9ET05FLCBmaWxlRG9uZV0sCisgICAgICBbUVVFUllfVE9PTF9FVkVOVFMuUVVF UllfQ0hBTkdFRCwgKGlzRGlydHkpPT57CisgICAgICAgIGlmKHF0U3RhdGUucGFyYW1zLmlzX3F1 ZXJ5X3Rvb2wpIHsKKyAgICAgICAgICBzZXRQYW5lbFRpdGxlKHBhbmVsLCBudWxsLCBxdFN0YXRl LCBpc0RpcnR5KTsKKyAgICAgICAgfQorICAgICAgfV0sCisgICAgICBbUVVFUllfVE9PTF9FVkVO VFMuSEFORExFX0FQSV9FUlJPUiwgaGFuZGxlQXBpRXJyb3JdLAorICAgIF07CisKKyAgICBldmVu dHMuZm9yRWFjaCgoZSk9PnsKKyAgICAgIGV2ZW50QnVzLmN1cnJlbnQucmVnaXN0ZXJMaXN0ZW5l cihlWzBdLCBlWzFdKTsKKyAgICB9KTsKKworICAgIHJldHVybiAoKT0+eworICAgICAgZXZlbnRz LmZvckVhY2goKGUpPT57CisgICAgICAgIGV2ZW50QnVzLmN1cnJlbnQuZGVyZWdpc3Rlckxpc3Rl bmVyKGVbMF0sIGVbMV0pOworICAgICAgfSk7CisgICAgfTsKKyAgfSwgW3F0U3RhdGVdKTsKKwor ICB1c2VFZmZlY3QoKCk9PnsKKyAgICAvKiBGaXJlIHF1ZXJ5IGNoYW5nZSBzbyB0aGF0IHRpdGxl IGNoYW5nZXMgdG8gbGF0ZXN0ICovCisgICAgZXZlbnRCdXMuY3VycmVudC5maXJlRXZlbnQoUVVF UllfVE9PTF9FVkVOVFMuVFJJR0dFUl9RVUVSWV9DSEFOR0UpOworICB9LCBbcXRTdGF0ZS5wYXJh bXMudGl0bGVdKTsKKworICBjb25zdCB1cGRhdGVRdWVyeVRvb2xDb25uZWN0aW9uID0gdXNlQ2Fs bGJhY2soKGNvbm5lY3Rpb25EYXRhLCBpc05ldz1mYWxzZSk9PnsKKyAgICBzZXRRdFN0YXRlKChw cmV2KT0+eworICAgICAgbGV0IG5ld0Nvbm5MaXN0ID0gWy4uLnByZXYuY29ubmVjdGlvbl9saXN0 XTsKKyAgICAgIGlmKGlzTmV3KSB7CisgICAgICAgIG5ld0Nvbm5MaXN0LnB1c2goY29ubmVjdGlv bkRhdGEpOworICAgICAgfQorICAgICAgZm9yIChjb25zdCBjb25uSXRlbSBvZiBuZXdDb25uTGlz dCkgeworICAgICAgICBpZihjb25uZWN0aW9uRGF0YS5zaWQgPT0gY29ubkl0ZW0uc2lkCisgICAg ICAgICAgJiYgY29ubmVjdGlvbkRhdGEuZGlkID09IGNvbm5JdGVtLmRpZAorICAgICAgICAgICYm IGNvbm5lY3Rpb25EYXRhLnVzZXIgPT0gY29ubkl0ZW0udXNlcgorICAgICAgICAgICYmIGNvbm5l Y3Rpb25EYXRhLnJvbGUgPT0gY29ubkl0ZW0ucm9sZSkgeworICAgICAgICAgIGNvbm5JdGVtLmlz X3NlbGVjdGVkID0gdHJ1ZTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICBjb25uSXRlbS5p c19zZWxlY3RlZCA9IGZhbHNlOworICAgICAgICB9CisgICAgICB9CisgICAgICByZXR1cm4gewor ICAgICAgICBjb25uZWN0aW9uX2xpc3Q6IG5ld0Nvbm5MaXN0LAorICAgICAgfTsKKyAgICB9KTsK KyAgICBzZXRRdFN0YXRlKChwcmV2KT0+eworICAgICAgcmV0dXJuIHsKKyAgICAgICAgcGFyYW1z OiB7CisgICAgICAgICAgLi4ucHJldi5wYXJhbXMsCisgICAgICAgICAgc2lkOiBjb25uZWN0aW9u RGF0YS5zaWQsCisgICAgICAgICAgZGlkOiBjb25uZWN0aW9uRGF0YS5kaWQsCisgICAgICAgICAg dGl0bGU6IGNvbm5lY3Rpb25EYXRhLnRpdGxlLAorICAgICAgICB9LAorICAgICAgICBvYnRhaW5p bmdfY29ubjogdHJ1ZSwKKyAgICAgICAgY29ubmVjdGVkOiBmYWxzZSwKKyAgICAgIH07CisgICAg fSk7CisgICAgcmV0dXJuIGFwaS5wb3N0KHVybF9mb3IoJ3NxbGVkaXRvci51cGRhdGVfcXVlcnlf dG9vbF9jb25uZWN0aW9uJywgeworICAgICAgdHJhbnNfaWQ6IHF0U3RhdGUucGFyYW1zLnRyYW5z X2lkLAorICAgICAgc2dpZDogY29ubmVjdGlvbkRhdGEuc2dpZCwKKyAgICAgIHNpZDogY29ubmVj dGlvbkRhdGEuc2lkLAorICAgICAgZGlkOiBjb25uZWN0aW9uRGF0YS5kaWQKKyAgICB9KSwgY29u bmVjdGlvbkRhdGEpCisgICAgICAudGhlbigoe2RhdGE6IHJlc3BEYXRhfSk9PnsKKyAgICAgICAg c2V0UXRTdGF0ZSgocHJldik9PnsKKyAgICAgICAgICByZXR1cm4geworICAgICAgICAgICAgcGFy YW1zOiB7CisgICAgICAgICAgICAgIC4uLnByZXYucGFyYW1zLAorICAgICAgICAgICAgICB0cmFu c19pZDogcmVzcERhdGEuZGF0YS50cmFuc19pZCwKKyAgICAgICAgICAgIH0sCisgICAgICAgICAg ICBjb25uZWN0ZWQ6IHJlc3BEYXRhLmRhdGEudHJhbnNfaWQgPyB0cnVlIDogZmFsc2UsCisgICAg ICAgICAgICBvYnRhaW5pbmdfY29ubjogZmFsc2UsCisgICAgICAgICAgfTsKKyAgICAgICAgfSk7 CisgICAgICAgIGxldCBtc2cgPSBgJHtjb25uZWN0aW9uRGF0YVsnc2VydmVyX25hbWUnXX0vJHtj b25uZWN0aW9uRGF0YVsnZGF0YWJhc2VfbmFtZSddfSAtIERhdGFiYXNlIGNvbm5lY3RlZGA7Cisg ICAgICAgIE5vdGlmaWVyLnN1Y2Nlc3MobXNnKTsKKyAgICAgIH0pOworICB9LCBbcXRTdGF0ZS5w YXJhbXMudHJhbnNfaWRdKTsKKworICBjb25zdCBvbk5ld0Nvbm5DbGljayA9IHVzZUNhbGxiYWNr KCgpPT57CisgICAgY29uc3Qgb25DbG9zZSA9ICgpPT5MYXlvdXRIZWxwZXIuY2xvc2UoZG9ja2Vy LmN1cnJlbnQsICduZXctY29ubicpOworICAgIExheW91dEhlbHBlci5vcGVuRGlhbG9nKGRvY2tl ci5jdXJyZW50LCB7CisgICAgICBpZDogJ25ldy1jb25uJywKKyAgICAgIHRpdGxlOiBnZXR0ZXh0 KCdBZGQgbmV3IGNvbm5lY3Rpb24nKSwKKyAgICAgIGNvbnRlbnQ6IDxOZXdDb25uZWN0aW9uRGlh bG9nIG9uU2F2ZT17KF9pc05ldywgZGF0YSk9PnsKKyAgICAgICAgbGV0IGNvbm5lY3Rpb25EYXRh ID0geworICAgICAgICAgIHNnaWQ6IDAsCisgICAgICAgICAgc2lkOiBkYXRhLnNpZCwKKyAgICAg ICAgICBkaWQ6IGRhdGEuZGlkLAorICAgICAgICAgIHVzZXI6IGRhdGEudXNlciwKKyAgICAgICAg ICByb2xlOiBkYXRhLnJvbGUgJiYgbnVsbCwKKyAgICAgICAgICB0aXRsZTogZ2V0VGl0bGUocGdB ZG1pbiwgcXRTdGF0ZS5wcmVmZXJlbmNlcy5icm93c2VyLCBudWxsLCBmYWxzZSwgZGF0YS5zZXJ2 ZXJfbmFtZSwgZGF0YS5kYXRhYmFzZV9uYW1lLCBkYXRhLnVzZXIpLAorICAgICAgICAgIGNvbm5f dGl0bGU6IGdldFRpdGxlKHBnQWRtaW4sIG51bGwsIG51bGwsIHRydWUsIGRhdGEuc2VydmVyX25h bWUsIGRhdGEuZGF0YWJhc2VfbmFtZSwgZGF0YS51c2VyKSwKKyAgICAgICAgICBzZXJ2ZXJfbmFt ZTogZGF0YS5zZXJ2ZXJfbmFtZSwKKyAgICAgICAgICBkYXRhYmFzZV9uYW1lOiBkYXRhLmRhdGFi YXNlX25hbWUsCisgICAgICAgICAgaXNfc2VsZWN0ZWQ6IHRydWUsCisgICAgICAgIH07CisgICAg ICAgIHVwZGF0ZVF1ZXJ5VG9vbENvbm5lY3Rpb24oY29ubmVjdGlvbkRhdGEsIHRydWUpOworICAg ICAgICBvbkNsb3NlKCk7CisgICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTsKKyAgICAg IH19CisgICAgICBvbkNsb3NlPXtvbkNsb3NlfS8+CisgICAgfSk7CisgIH0sIFtxdFN0YXRlLnBy ZWZlcmVuY2VzLmJyb3dzZXJdKTsKKworCisgIGNvbnN0IG9uTmV3UXVlcnlUb29sQ2xpY2sgPSAo KT0+eworICAgIGNvbnN0IHRyYW5zSWQgPSBjb21tb25VdGlscy5nZXRSYW5kb21JbnQoMSwgOTk5 OTk5OSk7CisgICAgbGV0IHNlbGVjdGVkQ29ubiA9IF8uZmluZChxdFN0YXRlLmNvbm5lY3Rpb25f bGlzdCwgKGMpPT5jLmlzX3NlbGVjdGVkKTsKKyAgICBsZXQgcGFyZW50RGF0YSA9IHsKKyAgICAg IHNlcnZlcl9ncm91cDogeworICAgICAgICBfaWQ6IHNlbGVjdGVkQ29ubi5zZ2lkIHx8IDAsCisg ICAgICB9LAorICAgICAgc2VydmVyOiB7CisgICAgICAgIF9pZDogc2VsZWN0ZWRDb25uLnNpZCwK KyAgICAgICAgc2VydmVyX3R5cGU6IHF0U3RhdGUucGFyYW1zLnNlcnZlcl90eXBlLAorICAgICAg fSwKKyAgICAgIGRhdGFiYXNlOiB7CisgICAgICAgIF9pZDogc2VsZWN0ZWRDb25uLmRpZCwKKyAg ICAgICAgbGFiZWw6IHNlbGVjdGVkQ29ubi5kYXRhYmFzZV9uYW1lLAorICAgICAgfSwKKyAgICB9 OworCisgICAgY29uc3QgZ3JpZFVybCA9IHNob3dRdWVyeVRvb2wuZ2VuZXJhdGVVcmwodHJhbnNJ ZCwgcGFyZW50RGF0YSwgbnVsbCk7CisgICAgY29uc3QgdGl0bGUgPSBnZXRUaXRsZShwZ0FkbWlu LCBxdFN0YXRlLnByZWZlcmVuY2VzLmJyb3dzZXIsIG51bGwsIGZhbHNlLCBzZWxlY3RlZENvbm4u c2VydmVyX25hbWUsIHNlbGVjdGVkQ29ubi5kYXRhYmFzZV9uYW1lLCBzZWxlY3RlZENvbm4udXNl cik7CisgICAgc2hvd1F1ZXJ5VG9vbC5sYXVuY2hRdWVyeVRvb2wocGdXaW5kb3cucGdBZG1pbi5U b29scy5RdWVyeVRvb2wsIHRyYW5zSWQsIGdyaWRVcmwsIHRpdGxlLCAnJyk7CisgIH07CisKKyAg Y29uc3Qgb25NYW5hZ2VNYWNyb3MgPSB1c2VDYWxsYmFjaygoKT0+eworICAgIGNvbnN0IG9uQ2xv c2UgPSAoKT0+TGF5b3V0SGVscGVyLmNsb3NlKGRvY2tlci5jdXJyZW50LCAnbWFuYWdlLW1hY3Jv cycpOworICAgIExheW91dEhlbHBlci5vcGVuRGlhbG9nKGRvY2tlci5jdXJyZW50LCB7CisgICAg ICBpZDogJ21hbmFnZS1tYWNyb3MnLAorICAgICAgdGl0bGU6IGdldHRleHQoJ01hbmFnZSBNYWNy b3MnKSwKKyAgICAgIGNvbnRlbnQ6IDxNYWNyb3NEaWFsb2cgb25TYXZlPXsobmV3TWFjcm9zKT0+ eworICAgICAgICBzZXRRdFN0YXRlKChwcmV2KT0+eworICAgICAgICAgIHJldHVybiB7CisgICAg ICAgICAgICBwYXJhbXM6IHsKKyAgICAgICAgICAgICAgLi4ucHJldi5wYXJhbXMsCisgICAgICAg ICAgICAgIG1hY3JvczogbmV3TWFjcm9zLAorICAgICAgICAgICAgfSwKKyAgICAgICAgICB9Owor ICAgICAgICB9KTsKKyAgICAgIH19CisgICAgICBvbkNsb3NlPXtvbkNsb3NlfS8+CisgICAgfSwg ODUwLCA1MDApOworICB9LCBbcXRTdGF0ZS5wcmVmZXJlbmNlcy5icm93c2VyXSk7CisKKyAgY29u c3Qgb25GaWx0ZXJDbGljayA9IHVzZUNhbGxiYWNrKCgpPT57CisgICAgY29uc3Qgb25DbG9zZSA9 ICgpPT5MYXlvdXRIZWxwZXIuY2xvc2UoZG9ja2VyLmN1cnJlbnQsICdmaWx0ZXItZGlhbG9nJyk7 CisgICAgTGF5b3V0SGVscGVyLm9wZW5EaWFsb2coZG9ja2VyLmN1cnJlbnQsIHsKKyAgICAgIGlk OiAnZmlsdGVyLWRpYWxvZycsCisgICAgICB0aXRsZTogZ2V0dGV4dCgnU29ydC9GaWx0ZXIgb3B0 aW9ucycpLAorICAgICAgY29udGVudDogPEZpbHRlckRpYWxvZyBvblNhdmU9eygpPT57CisgICAg ICAgIG9uQ2xvc2UoKTsKKyAgICAgICAgZXZlbnRCdXMuY3VycmVudC5maXJlRXZlbnQoUVVFUllf VE9PTF9FVkVOVFMuVFJJR0dFUl9FWEVDVVRJT04pOworICAgICAgfX0KKyAgICAgIG9uQ2xvc2U9 e29uQ2xvc2V9Lz4KKyAgICB9LCA3MDAsIDQwMCk7CisgIH0sIFtxdFN0YXRlLnByZWZlcmVuY2Vz LmJyb3dzZXJdKTsKKworICBjb25zdCBvblJlc2V0TGF5b3V0ID0gdXNlQ2FsbGJhY2soKCk9PnsK KyAgICBkb2NrZXIuY3VycmVudD8ucmVzZXRMYXlvdXQoKTsKKyAgICBldmVudEJ1cy5jdXJyZW50 LmZpcmVFdmVudChRVUVSWV9UT09MX0VWRU5UUy5GT0NVU19QQU5FTCwgUEFORUxTLlFVRVJZKTsK KyAgfSwgW10pOworCisgIGNvbnN0IHF1ZXJ5VG9vbENvbnRleHRWYWx1ZSA9IFJlYWN0LnVzZU1l bW8oKCk9Pih7CisgICAgZG9ja2VyOiBkb2NrZXIuY3VycmVudCwKKyAgICBhcGk6IGFwaSwKKyAg ICBtb2RhbDogbW9kYWwsCisgICAgcGFyYW1zOiBxdFN0YXRlLnBhcmFtcywKKyAgICBwcmVmZXJl bmNlczogcXRTdGF0ZS5wcmVmZXJlbmNlcywKKyAgfSksIFtxdFN0YXRlLnBhcmFtcywgcXRTdGF0 ZS5wcmVmZXJlbmNlc10pOworCisgIGNvbnN0IHF1ZXJ5VG9vbENvbm5Db250ZXh0VmFsdWUgPSBS ZWFjdC51c2VNZW1vKCgpPT4oeworICAgIGNvbm5lY3RlZDogcXRTdGF0ZS5jb25uZWN0ZWQsCisg ICAgb2J0YWluaW5nQ29ubjogcXRTdGF0ZS5vYnRhaW5pbmdfY29ubiwKKyAgICBjb25uZWN0aW9u U3RhdHVzOiBxdFN0YXRlLmNvbm5lY3Rpb25fc3RhdHVzLAorICB9KSwgW3F0U3RhdGVdKTsKKwor ICAvKiBQdXNoIG9ubHkgdGhvc2UgdGhpbmdzIGluIGNvbnRleHQgd2hpY2ggZG8gbm90IGNoYW5n ZSBmcmVxdWVudGx5ICovCisgIHJldHVybiAoCisgICAgPFF1ZXJ5VG9vbENvbnRleHQuUHJvdmlk ZXIgdmFsdWU9e3F1ZXJ5VG9vbENvbnRleHRWYWx1ZX0+CisgICAgICA8UXVlcnlUb29sQ29ubmVj dGlvbkNvbnRleHQuUHJvdmlkZXIgdmFsdWU9e3F1ZXJ5VG9vbENvbm5Db250ZXh0VmFsdWV9Pgor ICAgICAgICA8UXVlcnlUb29sRXZlbnRzQ29udGV4dC5Qcm92aWRlciB2YWx1ZT17ZXZlbnRCdXMu Y3VycmVudH0+CisgICAgICAgICAgPFRoZW1lPgorICAgICAgICAgICAgPEJveCB3aWR0aD0iMTAw JSIgaGVpZ2h0PSIxMDAlIiBkaXNwbGF5PSJmbGV4IiBmbGV4RGlyZWN0aW9uPSJjb2x1bW4iIGZs ZXhHcm93PSIxIiB0YWJJbmRleD0iMCIgcmVmPXtjb250YWluZXJSZWZ9PgorICAgICAgICAgICAg ICA8Q29ubmVjdGlvbkJhcgorICAgICAgICAgICAgICAgIGNvbm5lY3RlZD17cXRTdGF0ZS5jb25u ZWN0ZWR9CisgICAgICAgICAgICAgICAgY29ubmVjdGluZz17cXRTdGF0ZS5vYnRhaW5pbmdfY29u bn0KKyAgICAgICAgICAgICAgICBjb25uZWN0aW9uU3RhdHVzPXtxdFN0YXRlLmNvbm5lY3Rpb25f c3RhdHVzfQorICAgICAgICAgICAgICAgIGNvbm5lY3Rpb25TdGF0dXNNc2c9e3F0U3RhdGUuY29u bmVjdGlvbl9zdGF0dXNfbXNnfQorICAgICAgICAgICAgICAgIGNvbm5lY3Rpb25MaXN0PXtxdFN0 YXRlLmNvbm5lY3Rpb25fbGlzdH0KKyAgICAgICAgICAgICAgICBvbkNvbm5lY3Rpb25DaGFuZ2U9 eyhjb25uZWN0aW9uRGF0YSk9PnVwZGF0ZVF1ZXJ5VG9vbENvbm5lY3Rpb24oY29ubmVjdGlvbkRh dGEpfQorICAgICAgICAgICAgICAgIG9uTmV3Q29ubkNsaWNrPXtvbk5ld0Nvbm5DbGlja30KKyAg ICAgICAgICAgICAgICBvbk5ld1F1ZXJ5VG9vbENsaWNrPXtvbk5ld1F1ZXJ5VG9vbENsaWNrfQor ICAgICAgICAgICAgICAgIG9uUmVzZXRMYXlvdXQ9e29uUmVzZXRMYXlvdXR9CisgICAgICAgICAg ICAgICAgZG9ja2VyPXtkb2NrZXIuY3VycmVudH0KKyAgICAgICAgICAgICAgLz4KKyAgICAgICAg ICAgICAgPE1haW5Ub29sQmFyCisgICAgICAgICAgICAgICAgY29udGFpbmVyUmVmPXtjb250YWlu ZXJSZWZ9CisgICAgICAgICAgICAgICAgb25NYW5hZ2VNYWNyb3M9e29uTWFuYWdlTWFjcm9zfQor ICAgICAgICAgICAgICAgIG9uRmlsdGVyQ2xpY2s9e29uRmlsdGVyQ2xpY2t9CisgICAgICAgICAg ICAgIC8+CisgICAgICAgICAgICAgIDxMYXlvdXQKKyAgICAgICAgICAgICAgICBnZXRMYXlvdXRJ bnN0YW5jZT17KG9iaik9PmRvY2tlci5jdXJyZW50PW9ian0KKyAgICAgICAgICAgICAgICBkZWZh dWx0TGF5b3V0PXtkZWZhdWx0TGF5b3V0fQorICAgICAgICAgICAgICAgIGxheW91dElkPSJTUUxF ZGl0b3IvTGF5b3V0IgorICAgICAgICAgICAgICAgIHNhdmVkTGF5b3V0PXtwYXJhbXMubGF5b3V0 fQorICAgICAgICAgICAgICAvPgorICAgICAgICAgICAgICA8U3RhdHVzQmFyIC8+CisgICAgICAg ICAgICA8L0JveD4KKyAgICAgICAgICA8L1RoZW1lPgorICAgICAgICA8L1F1ZXJ5VG9vbEV2ZW50 c0NvbnRleHQuUHJvdmlkZXI+CisgICAgICA8L1F1ZXJ5VG9vbENvbm5lY3Rpb25Db250ZXh0LlBy b3ZpZGVyPgorICAgIDwvUXVlcnlUb29sQ29udGV4dC5Qcm92aWRlcj4KKyAgKTsKK30KKworUXVl cnlUb29sQ29tcG9uZW50LnByb3BUeXBlcyA9IHsKKyAgcGFyYW1zOlByb3BUeXBlcy5zaGFwZSh7 CisgICAgdHJhbnNfaWQ6IFByb3BUeXBlcy5udW1iZXIuaXNSZXF1aXJlZCwKKyAgICBzZ2lkOiBQ cm9wVHlwZXMub25lT2ZUeXBlKFtQcm9wVHlwZXMubnVtYmVyLCBQcm9wVHlwZXMuc3RyaW5nXSku aXNSZXF1aXJlZCwKKyAgICBzaWQ6IFByb3BUeXBlcy5vbmVPZlR5cGUoW1Byb3BUeXBlcy5udW1i ZXIsIFByb3BUeXBlcy5zdHJpbmddKS5pc1JlcXVpcmVkLAorICAgIGRpZDogUHJvcFR5cGVzLm9u ZU9mVHlwZShbUHJvcFR5cGVzLm51bWJlciwgUHJvcFR5cGVzLnN0cmluZ10pLmlzUmVxdWlyZWQs CisgICAgc2VydmVyX3R5cGU6IFByb3BUeXBlcy5zdHJpbmcsCisgICAgdGl0bGU6IFByb3BUeXBl cy5zdHJpbmcuaXNSZXF1aXJlZCwKKyAgICBiZ2NvbG9yOiBQcm9wVHlwZXMuc3RyaW5nLAorICAg IGZnY29sb3I6IFByb3BUeXBlcy5zdHJpbmcsCisgICAgaXNfcXVlcnlfdG9vbDogUHJvcFR5cGVz Lm9uZU9mVHlwZShbUHJvcFR5cGVzLmJvb2wsIFByb3BUeXBlcy5zdHJpbmddKS5pc1JlcXVpcmVk LAorICAgIHVzZXJuYW1lOiBQcm9wVHlwZXMuc3RyaW5nLAorICAgIHNlcnZlcl9uYW1lOiBQcm9w VHlwZXMuc3RyaW5nLAorICAgIGRhdGFiYXNlX25hbWU6IFByb3BUeXBlcy5zdHJpbmcsCisgICAg bGF5b3V0OiBQcm9wVHlwZXMuc3RyaW5nLAorICB9KSwKKyAgcGdXaW5kb3c6IFByb3BUeXBlcy5v YmplY3QuaXNSZXF1aXJlZCwKKyAgcGdBZG1pbjogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVk LAorICBzZWxlY3RlZE5vZGVJbmZvOiBQcm9wVHlwZXMub2JqZWN0LAorICBwYW5lbDogUHJvcFR5 cGVzLm9iamVjdCwKKyAgZXZlbnRCdXNPYmo6IFByb3BUeXBlcy5vYmplY3RPZihFdmVudEJ1cyks Cit9OwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vdG9vbHMvc3FsZWRpdG9yL3N0YXRpYy9qcy9j b21wb25lbnRzL1F1ZXJ5VG9vbENvbnN0YW50cy5qcyBiL3dlYi9wZ2FkbWluL3Rvb2xzL3NxbGVk aXRvci9zdGF0aWMvanMvY29tcG9uZW50cy9RdWVyeVRvb2xDb25zdGFudHMuanMKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwLi5kMDBhODhkY2MKLS0tIC9kZXYvbnVsbAorKysg Yi93ZWIvcGdhZG1pbi90b29scy9zcWxlZGl0b3Ivc3RhdGljL2pzL2NvbXBvbmVudHMvUXVlcnlU b29sQ29uc3RhbnRzLmpzCkBAIC0wLDAgKzEsOTUgQEAKKy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vCisvLyBwZ0FkbWluIDQg LSBQb3N0Z3JlU1FMIFRvb2xzCisvLworLy8gQ29weXJpZ2h0IChDKSAyMDEzIC0gMjAyMiwgVGhl IHBnQWRtaW4gRGV2ZWxvcG1lbnQgVGVhbQorLy8gVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1 bmRlciB0aGUgUG9zdGdyZVNRTCBMaWNlbmNlCisvLworLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KK2ltcG9ydCBnZXR0ZXh0IGZy b20gJ3NvdXJjZXMvZ2V0dGV4dCc7CisKK2V4cG9ydCBjb25zdCBRVUVSWV9UT09MX0VWRU5UUyA9 IHsKKyAgVFJJR0dFUl9TVE9QX0VYRUNVVElPTjogJ1RSSUdHRVJfU1RPUF9FWEVDVVRJT04nLAor ICBUUklHR0VSX0VYRUNVVElPTjogJ1RSSUdHRVJfRVhFQ1VUSU9OJywKKyAgVFJJR0dFUl9MT0FE X0ZJTEU6ICdUUklHR0VSX0xPQURfRklMRScsCisgIFRSSUdHRVJfU0FWRV9GSUxFOiAnVFJJR0dF Ul9TQVZFX0ZJTEUnLAorICBUUklHR0VSX1NBVkVfREFUQTogJ1RSSUdHRVJfU0FWRV9EQVRBJywK KyAgVFJJR0dFUl9ERUxFVEVfUk9XUzogJ1RSSUdHRVJfREVMRVRFX1JPV1MnLAorICBUUklHR0VS X0NPUFlfREFUQTogJ1RSSUdHRVJfQ09QWV9EQVRBJywKKyAgVFJJR0dFUl9BRERfUk9XUzogJ1RS SUdHRVJfQUREX1JPV1MnLAorICBUUklHR0VSX1JFTkRFUl9HRU9NRVRSSUVTOiAnVFJJR0dFUl9S RU5ERVJfR0VPTUVUUklFUycsCisgIFRSSUdHRVJfU0FWRV9SRVNVTFRTOiAnVFJJR0dFUl9TQVZF X1JFU1VMVFMnLAorICBUUklHR0VSX1NBVkVfUkVTVUxUU19FTkQ6ICdUUklHR0VSX1NBVkVfUkVT VUxUU19FTkQnLAorICBUUklHR0VSX1BBU1RFX1JPV1M6ICdUUklHR0VSX1BBU1RFX1JPV1MnLAor ICBUUklHR0VSX1FVRVJZX0NIQU5HRTogJ1RSSUdHRVJfUVVFUllfQ0hBTkdFJywKKyAgVFJJR0dF Ul9JTkNMVURFX0VYQ0xVREVfRklMVEVSOiAnVFJJR0dFUl9JTkNMVURFX0VYQ0xVREVfRklMVEVS JywKKyAgVFJJR0dFUl9SRU1PVkVfRklMVEVSOiAnVFJJR0dFUl9SRU1PVkVfRklMVEVSJywKKyAg VFJJR0dFUl9TRVRfTElNSVQ6ICdUUklHR0VSX1NFVF9MSU1JVCcsCisgIFRSSUdHRVJfRk9STUFU X1NRTDogJ1RSSUdHRVJfRk9STUFUX1NRTCcsCisKKyAgQ09QWV9EQVRBOiAnQ09QWV9EQVRBJywK KyAgU0VUX0xJTUlUX1ZBTFVFOiAnU0VUX0xJTUlUX1ZBTFVFJywKKyAgU0VUX0NPTk5FQ1RJT05f U1RBVFVTOiAnU0VUX0NPTk5FQ1RJT05fU1RBVFVTJywKKyAgRVhFQ1VUSU9OX1NUQVJUOiAnRVhF Q1VUSU9OX1NUQVJUJywKKyAgRVhFQ1VUSU9OX0VORDogJ0VYRUNVVElPTl9FTkQnLAorICBTVE9Q X1FVRVJZOiAnU1RPUF9RVUVSWScsCisgIENVUlNPUl9BQ1RJVklUWTogJ0NVUlNPUl9BQ1RJVklU WScsCisgIFNFVF9NRVNTQUdFOiAnU0VUX01FU1NBR0UnLAorICBST1dTX0ZFVENIRUQ6ICdST1dT X0ZFVENIRUQnLAorICBTRUxFQ1RFRF9ST1dTX0NIQU5HRUQ6ICdTRUxFQ1RFRF9ST1dTX0NIQU5H RUQnLAorICBEQVRBR1JJRF9DSEFOR0VEOiAnREFUQUdSSURfQ0hBTkdFRCcsCisgIEhJR0hMSUdI VF9FUlJPUjogJ0hJR0hMSUdIVF9FUlJPUicsCisgIEZPQ1VTX1BBTkVMOiAnRk9DVVNfUEFORUwn LAorICBMT0FEX0ZJTEU6ICdMT0FEX0ZJTEUnLAorICBMT0FEX0ZJTEVfRE9ORTogJ0xPQURfRklM RV9ET05FJywKKyAgU0FWRV9GSUxFOiAnU0FWRV9GSUxFJywKKyAgU0FWRV9GSUxFX0RPTkU6ICdT QVZFX0ZJTEVfRE9ORScsCisgIFFVRVJZX0NIQU5HRUQ6ICdRVUVSWV9DSEFOR0VEJywKKyAgQVBJ X0VSUk9SOiAnQVBJX0VSUk9SJywKKyAgU0FWRV9EQVRBX0RPTkU6ICdTQVZFX0RBVEFfRE9ORScs CisgIFRBU0tfU1RBUlQ6ICdUQVNLX1NUQVJUJywKKyAgVEFTS19FTkQ6ICdUQVNLX0VORCcsCisg IFJFTkRFUl9HRU9NRVRSSUVTOiAnUkVOREVSX0dFT01FVFJJRVMnLAorICBQVVNIX05PVElDRTog J1BVU0hfTk9USUNFJywKKyAgUFVTSF9ISVNUT1JZOiAnUFVTSF9ISVNUT1JZJywKKyAgSEFORExF X0FQSV9FUlJPUjogJ0hBTkRMRV9BUElfRVJST1InLAorICBTRVRfRklMVEVSX0lORk86ICdTRVRf RklMVEVSX0lORk8nLAorCisgIEVESVRPUl9GSU5EX1JFUExBQ0U6ICdFRElUT1JfRklORF9SRVBM QUNFJywKKyAgRURJVE9SX0VYRUNfQ01EOiAnRURJVE9SX0VYRUNfQ01EJywKKyAgRURJVE9SX1NF VF9TUUw6ICdFRElUT1JfU0VUX1NRTCcsCisgIENPUFlfVE9fRURJVE9SOiAnQ09QWV9UT19FRElU T1InLAorCisgIFdBUk5fU0FWRV9EQVRBX0NMT1NFOiAnV0FSTl9TQVZFX0RBVEFfQ0xPU0UnLAor ICBXQVJOX1NBVkVfVEVYVF9DTE9TRTogJ1dBUk5fU0FWRV9URVhUX0NMT1NFJywKKyAgV0FSTl9U WE5fQ0xPU0U6ICdXQVJOX1RYTl9DTE9TRScsCisKKyAgUkVTRVRfTEFZT1VUOiAnUkVTRVRfTEFZ T1VUJywKKyAgRk9SQ0VfQ0xPU0VfUEFORUw6ICdGT1JDRV9DTE9TRV9QQU5FTCcsCit9OworCitl eHBvcnQgY29uc3QgQ09OTkVDVElPTl9TVEFUVVMgPSB7CisgIFRSQU5TQUNUSU9OX1NUQVRVU19J RExFOiAwLAorICBUUkFOU0FDVElPTl9TVEFUVVNfQUNUSVZFOiAxLAorICBUUkFOU0FDVElPTl9T VEFUVVNfSU5UUkFOUzogMiwKKyAgVFJBTlNBQ1RJT05fU1RBVFVTX0lORVJST1I6IDMsCisgIFRS QU5TQUNUSU9OX1NUQVRVU19VTktOT1dOOiA0LAorfTsKKworZXhwb3J0IGNvbnN0IENPTk5FQ1RJ T05fU1RBVFVTX01FU1NBR0UgPSB7CisgIFtDT05ORUNUSU9OX1NUQVRVUy5UUkFOU0FDVElPTl9T VEFUVVNfSURMRV06IGdldHRleHQoJ1RoZSBzZXNzaW9uIGlzIGlkbGUgYW5kIHRoZXJlIGlzIG5v IGN1cnJlbnQgdHJhbnNhY3Rpb24uJyksCisgIFtDT05ORUNUSU9OX1NUQVRVUy5UUkFOU0FDVElP Tl9TVEFUVVNfQUNUSVZFXTogZ2V0dGV4dCgnQSBjb21tYW5kIGlzIGN1cnJlbnRseSBpbiBwcm9n cmVzcy4nKSwKKyAgW0NPTk5FQ1RJT05fU1RBVFVTLlRSQU5TQUNUSU9OX1NUQVRVU19JTlRSQU5T XTogZ2V0dGV4dCgnVGhlIHNlc3Npb24gaXMgaWRsZSBpbiBhIHZhbGlkIHRyYW5zYWN0aW9uIGJs b2NrLicpLAorICBbQ09OTkVDVElPTl9TVEFUVVMuVFJBTlNBQ1RJT05fU1RBVFVTX0lORVJST1Jd OiBnZXR0ZXh0KCdUaGUgc2Vzc2lvbiBpcyBpZGxlIGluIGEgZmFpbGVkIHRyYW5zYWN0aW9uIGJs b2NrLicpLAorICBbQ09OTkVDVElPTl9TVEFUVVMuVFJBTlNBQ1RJT05fU1RBVFVTX1VOS05PV05d OiBnZXR0ZXh0KCdUaGUgY29ubmVjdGlvbiB3aXRoIHRoZSBzZXJ2ZXIgaXMgYmFkLicpCit9Owor CitleHBvcnQgY29uc3QgUEFORUxTID0geworICBRVUVSWTogJ2lkLXF1ZXJ5JywKKyAgTUVTU0FH RVM6ICdpZC1tZXNzYWdlcycsCisgIERBVEFfT1VUUFVUOiAnaWQtZGF0YW91dHB1dCcsCisgIEVY UExBSU46ICdpZC1leHBsYWluJywKKyAgR0VPTUVUUlk6ICdpZC1nZW9tZXRyeScsCisgIE5PVElG SUNBVElPTlM6ICdpZC1ub3RpZmljYXRpb25zJywKKyAgSElTVE9SWTogJ2lkLWhpc3RvcnknLAor fTsKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL3Rvb2xzL3NxbGVkaXRvci9zdGF0aWMvanMvY29t cG9uZW50cy9RdWVyeVRvb2xEYXRhR3JpZC9Db3B5RGF0YS5qcyBiL3dlYi9wZ2FkbWluL3Rvb2xz L3NxbGVkaXRvci9zdGF0aWMvanMvY29tcG9uZW50cy9RdWVyeVRvb2xEYXRhR3JpZC9Db3B5RGF0 YS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAuLmUzZDE2OWYxYgotLS0g L2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL3Rvb2xzL3NxbGVkaXRvci9zdGF0aWMvanMvY29t cG9uZW50cy9RdWVyeVRvb2xEYXRhR3JpZC9Db3B5RGF0YS5qcwpAQCAtMCwwICsxLDk4IEBACisv Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vCisvLworLy8gcGdBZG1pbiA0IC0gUG9zdGdyZVNRTCBUb29scworLy8KKy8vIENvcHlyaWdo dCAoQykgMjAxMyAtIDIwMjIsIFRoZSBwZ0FkbWluIERldmVsb3BtZW50IFRlYW0KKy8vIFRoaXMg c29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgdGhlIFBvc3RncmVTUUwgTGljZW5jZQorLy8KKy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vCitpbXBvcnQgSlNPTkJpZ051bWJlciBmcm9tICdqc29uLWJpZ251bWJlcic7CitpbXBvcnQg XyBmcm9tICdsb2Rhc2gnOworaW1wb3J0IHsgQ1NWVG9BcnJheSB9IGZyb20gJy4uLy4uLy4uLy4u Ly4uLy4uL3N0YXRpYy9qcy91dGlscyc7CisKK2V4cG9ydCBkZWZhdWx0IGNsYXNzIENvcHlEYXRh IHsKKyAgY29uc3RydWN0b3IoKSB7CisgICAgdGhpcy5DU1ZPcHRpb25zID0geworICAgICAgZmll bGRfc2VwYXJhdG9yOiAnXHQnLAorICAgICAgcXVvdGVfY2hhcjogJyInLAorICAgICAgcXVvdGlu ZzogJ3N0cmluZ3MnLAorICAgIH07CisgIH0KKworICBzZXRDU1ZPcHRpb25zKG9wdGlvbnMpIHsK KyAgICB0aGlzLkNTVk9wdGlvbnMgPSB7CisgICAgICAuLi50aGlzLkNTVk9wdGlvbnMsCisgICAg ICAuLi5vcHRpb25zLAorICAgIH07CisgIH0KKworICBjb3B5Um93c1RvQ3N2KHJvd3M9W10sIGNv bHVtbnM9W10sIHdpdGhIZWFkZXJzPWZhbHNlKSB7CisgICAgbGV0IGNzdlJvd3MgPSByb3dzLnJl ZHVjZSgocHJldkNzdlJvd3MsIGN1cnJSb3cpPT57CisgICAgICBsZXQgY3N2Um93ID0gY29sdW1u cy5yZWR1Y2UoKHByZXZDc3ZDb2xzLCBjb2x1bW4pPT57CisgICAgICAgIHByZXZDc3ZDb2xzLnB1 c2godGhpcy5jc3ZDZWxsKGN1cnJSb3dbY29sdW1uLmtleV0sIGNvbHVtbikpOworICAgICAgICBy ZXR1cm4gcHJldkNzdkNvbHM7CisgICAgICB9LCBbXSkuam9pbih0aGlzLkNTVk9wdGlvbnMuZmll bGRfc2VwYXJhdG9yKTsKKyAgICAgIHByZXZDc3ZSb3dzLnB1c2goY3N2Um93KTsKKyAgICAgIHJl dHVybiBwcmV2Q3N2Um93czsKKyAgICB9LCBbXSk7CisKKyAgICBpZih3aXRoSGVhZGVycykgewor ICAgICAgbGV0IGNzdlJvdyA9IGNvbHVtbnMucmVkdWNlKChwcmV2Q3N2Q29scywgY29sdW1uKT0+ eworICAgICAgICBwcmV2Q3N2Q29scy5wdXNoKHRoaXMuY3N2Q2VsbChjb2x1bW4ubmFtZSwgY29s dW1uLCB0cnVlKSk7CisgICAgICAgIHJldHVybiBwcmV2Q3N2Q29sczsKKyAgICAgIH0sIFtdKS5q b2luKHRoaXMuQ1NWT3B0aW9ucy5maWVsZF9zZXBhcmF0b3IpOworICAgICAgY3N2Um93cy51bnNo aWZ0KGNzdlJvdyk7CisgICAgfQorICAgIG5hdmlnYXRvci5jbGlwYm9hcmQud3JpdGVUZXh0KGNz dlJvd3Muam9pbignXG4nKSk7CisgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ2NsaXBib2FyZCcs IGNzdlJvd3Muam9pbignXG4nKSk7CisgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ2NvcGllZC13 aXRoLWhlYWRlcnMnLCB3aXRoSGVhZGVycyk7CisgIH0KKworICBlc2NhcGUoaVN0cikgeworICAg IHJldHVybiAodGhpcy5DU1ZPcHRpb25zLnF1b3RlX2NoYXIgPT0gJyInKSA/CisgICAgICBpU3Ry LnJlcGxhY2UoL1wiL2csICciIicpIDogaVN0ci5yZXBsYWNlKC9cJy9nLCAnXCdcJycpOworICB9 CisKKyAgYWxsUXVvdGVDZWxsKHZhbHVlKSB7CisgICAgaWYgKHZhbHVlICYmIF8uaXNPYmplY3Qo dmFsdWUpKSB7CisgICAgICB2YWx1ZSA9IHRoaXMuQ1NWT3B0aW9ucy5xdW90ZV9jaGFyICsgSlNP TkJpZ051bWJlci5zdHJpbmdpZnkodmFsdWUpICsgdGhpcy5DU1ZPcHRpb25zLnF1b3RlX2NoYXI7 CisgICAgfSBlbHNlIGlmICh2YWx1ZSkgeworICAgICAgdmFsdWUgPSB0aGlzLkNTVk9wdGlvbnMu cXVvdGVfY2hhciArIHRoaXMuZXNjYXBlKHZhbHVlLnRvU3RyaW5nKCkpICsgdGhpcy5DU1ZPcHRp b25zLnF1b3RlX2NoYXI7CisgICAgfSBlbHNlIGlmIChfLmlzTnVsbCh2YWx1ZSkgfHwgXy5pc1Vu ZGVmaW5lZCh2YWx1ZSkpIHsKKyAgICAgIHZhbHVlID0gJyc7CisgICAgfQorICAgIHJldHVybiB2 YWx1ZTsKKyAgfQorCisgIHN0cmluZ1F1b3RlQ2VsbCh2YWx1ZSwgY29sdW1uKSB7CisgICAgaWYg KHZhbHVlICYmIF8uaXNPYmplY3QodmFsdWUpKSB7CisgICAgICB2YWx1ZSA9IHRoaXMuQ1NWT3B0 aW9ucy5xdW90ZV9jaGFyICsgSlNPTkJpZ051bWJlci5zdHJpbmdpZnkodmFsdWUpICsgdGhpcy5D U1ZPcHRpb25zLnF1b3RlX2NoYXI7CisgICAgfSBlbHNlIGlmICh2YWx1ZSAmJiBjb2x1bW4uY2Vs bCAhPSAnbnVtYmVyJyAmJiBjb2x1bW4uY2VsbCAhPSAnYm9vbGVhbicpIHsKKyAgICAgIHZhbHVl ID0gdGhpcy5DU1ZPcHRpb25zLnF1b3RlX2NoYXIgKyB0aGlzLmVzY2FwZSh2YWx1ZS50b1N0cmlu ZygpKSArIHRoaXMuQ1NWT3B0aW9ucy5xdW90ZV9jaGFyOworICAgIH0gZWxzZSBpZiAoY29sdW1u LmNlbGwgPT0gJ3N0cmluZycgJiYgXy5pc051bGwodmFsdWUpKXsKKyAgICAgIHZhbHVlID0gbnVs bDsKKyAgICB9IGVsc2UgaWYgKF8uaXNOdWxsKHZhbHVlKSB8fCBfLmlzVW5kZWZpbmVkKHZhbHVl KSkgeworICAgICAgdmFsdWUgPSAnJzsKKyAgICB9CisgICAgcmV0dXJuIHZhbHVlOworICB9CisK KyAgY3N2Q2VsbCh2YWx1ZSwgY29sdW1uLCBoZWFkZXI9ZmFsc2UpIHsKKyAgICBpZiAodGhpcy5D U1ZPcHRpb25zLnF1b3RpbmcgPT0gJ2FsbCcgfHwgaGVhZGVyKSB7CisgICAgICB2YWx1ZSA9IHRo aXMuYWxsUXVvdGVDZWxsKHZhbHVlKTsKKyAgICB9IGVsc2UgaWYodGhpcy5DU1ZPcHRpb25zLnF1 b3RpbmcgPT0gJ3N0cmluZ3MnKSB7CisgICAgICB2YWx1ZSA9IHRoaXMuc3RyaW5nUXVvdGVDZWxs KHZhbHVlLCBjb2x1bW4pOworICAgIH0KKyAgICByZXR1cm4gdmFsdWU7CisgIH0KKworICBhc3lu YyBnZXRDb3BpZWRSb3dzKCkgeworICAgIGxldCBjb3BpZWRUZXh0ID0gYXdhaXQgbmF2aWdhdG9y LmNsaXBib2FyZC5yZWFkVGV4dCgpOworICAgIGxldCBjb3BpZWRSb3dzID0gQ1NWVG9BcnJheShj b3BpZWRUZXh0LCB0aGlzLkNTVk9wdGlvbnMuZmllbGRfc2VwYXJhdG9yLCB0aGlzLkNTVk9wdGlv bnMucXVvdGVfY2hhcik7CisKKyAgICBpZihsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnY29waWVkLXdp dGgtaGVhZGVycycpID09ICd0cnVlJykgeworICAgICAgY29waWVkUm93cyA9IGNvcGllZFJvd3Mu c2xpY2UoMSk7CisgICAgfQorICAgIHJldHVybiBjb3BpZWRSb3dzOworICB9Cit9CmRpZmYgLS1n aXQgYS93ZWIvcGdhZG1pbi90b29scy9zcWxlZGl0b3Ivc3RhdGljL2pzL2NvbXBvbmVudHMvUXVl cnlUb29sRGF0YUdyaWQvRWRpdG9ycy5qc3ggYi93ZWIvcGdhZG1pbi90b29scy9zcWxlZGl0b3Iv c3RhdGljL2pzL2NvbXBvbmVudHMvUXVlcnlUb29sRGF0YUdyaWQvRWRpdG9ycy5qc3gKbmV3IGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwLi40ZWRjNTc0MzMKLS0tIC9kZXYvbnVsbAor KysgYi93ZWIvcGdhZG1pbi90b29scy9zcWxlZGl0b3Ivc3RhdGljL2pzL2NvbXBvbmVudHMvUXVl cnlUb29sRGF0YUdyaWQvRWRpdG9ycy5qc3gKQEAgLTAsMCArMSwyOTkgQEAKKy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vCisv LyBwZ0FkbWluIDQgLSBQb3N0Z3JlU1FMIFRvb2xzCisvLworLy8gQ29weXJpZ2h0IChDKSAyMDEz IC0gMjAyMiwgVGhlIHBnQWRtaW4gRGV2ZWxvcG1lbnQgVGVhbQorLy8gVGhpcyBzb2Z0d2FyZSBp cyByZWxlYXNlZCB1bmRlciB0aGUgUG9zdGdyZVNRTCBMaWNlbmNlCisvLworLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KK2ltcG9y dCB7IG1ha2VTdHlsZXMsIEJveCwgUG9ydGFsIH0gZnJvbSAnQG1hdGVyaWFsLXVpL2NvcmUnOwor aW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JzsKK2ltcG9ydCB7IERlZmF1bHRCdXR0b24sIFByaW1h cnlCdXR0b24gfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9zdGF0aWMvanMvY29tcG9uZW50cy9C dXR0b25zJzsKK2ltcG9ydCBDaGVja1JvdW5kZWRJY29uIGZyb20gJ0BtYXRlcmlhbC11aS9pY29u cy9DaGVja1JvdW5kZWQnOworaW1wb3J0IENsb3NlSWNvbiBmcm9tICdAbWF0ZXJpYWwtdWkvaWNv bnMvQ2xvc2UnOworaW1wb3J0IGdldHRleHQgZnJvbSAnc291cmNlcy9nZXR0ZXh0JzsKK2ltcG9y dCBjbHN4IGZyb20gJ2Nsc3gnOworaW1wb3J0IEpTT05CaWdOdW1iZXIgZnJvbSAnanNvbi1iaWdu dW1iZXInOworaW1wb3J0IEpzb25FZGl0b3IgZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vc3RhdGlj L2pzL2NvbXBvbmVudHMvSnNvbkVkaXRvcic7CitpbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3At dHlwZXMnOworCitjb25zdCB1c2VTdHlsZXMgPSBtYWtlU3R5bGVzKCh0aGVtZSk9Pih7CisgIHRl eHRFZGl0b3I6IHsKKyAgICBwb3NpdGlvbjogJ2Fic29sdXRlJywKKyAgICB6SW5kZXg6IDEwNTAs CisgICAgYmFja2dyb3VuZENvbG9yOiB0aGVtZS5wYWxldHRlLmJhY2tncm91bmQuZGVmYXVsdCwK KyAgICBwYWRkaW5nOiAnMC4yNXJlbScsCisgICAgZm9udFNpemU6ICcxMnB4JywKKyAgICAuLi50 aGVtZS5taXhpbnMucGFuZWxCb3JkZXIsCisgICAgJyYgdGV4dGFyZWEnOiB7CisgICAgICB3aWR0 aDogJzI1MHB4JywKKyAgICAgIGhlaWdodDogJzgwcHgnLAorICAgICAgYm9yZGVyOiAwLAorICAg ICAgb3V0bGluZTogMCwKKyAgICAgIHJlc2l6ZTogJ2JvdGgnLAorICAgIH0KKyAgfSwKKyAganNv bkVkaXRvcjogeworICAgIHBvc2l0aW9uOiAnYWJzb2x1dGUnLAorICAgIHpJbmRleDogMTA1MCwK KyAgICBiYWNrZ3JvdW5kQ29sb3I6IHRoZW1lLnBhbGV0dGUuYmFja2dyb3VuZC5kZWZhdWx0LAor ICAgIC4uLnRoZW1lLm1peGlucy5wYW5lbEJvcmRlciwKKyAgICBwYWRkaW5nOiAnMC4yNXJlbScs CisgICAgJyYgLmpzb25lZGl0b3ItZGl2JzogeworICAgICAgZm9udFNpemU6ICcxMnB4JywKKyAg ICAgIG1pbldpZHRoOiAnNTI1cHgnLAorICAgICAgbWluSGVpZ2h0OiAnMzAwcHgnLAorICAgICAg Li4udGhlbWUubWl4aW5zLnBhbmVsQm9yZGVyLmFsbCwKKyAgICAgIG91dGxpbmU6IDAsCisgICAg ICByZXNpemU6ICdib3RoJywKKyAgICAgIG92ZXJmbG93OiAnYXV0bycsCisgICAgfSwKKyAgICAn JiAuanNvbmVkaXRvcic6IHsKKyAgICAgIGhlaWdodDogJ2FiYycsCisgICAgICBib3JkZXI6ICdu b25lJywKKyAgICAgICcmIC5hY2UtanNvbmVkaXRvciAuYWNlX21hcmtlci1sYXllciAuYWNlX2Fj dGl2ZS1saW5lJzogeworICAgICAgICBiYWNrZ3JvdW5kOiB0aGVtZS5wYWxldHRlLnByaW1hcnku bGlnaHQKKyAgICAgIH0KKyAgICB9CisgIH0sCisgIGJ1dHRvbk1hcmdpbjogeworICAgIG1hcmdp bkxlZnQ6ICcwLjVyZW0nLAorICB9LAorICB0ZXh0YXJlYTogeworICAgIHJlc2l6ZTogJ2JvdGgn CisgIH0sCisgIGlucHV0OiB7CisgICAgYXBwZWFyYW5jZTogJ25vbmUnLAorICAgIHdpZHRoOiAn MTAwJScsCisgICAgaGVpZ2h0OiAnMTAwJScsCisgICAgdmVydGljYWxBbGlnbjogJ3RvcCcsCisg ICAgb3V0bGluZTogJ25vbmUnLAorICAgIGJhY2tncm91bmRDb2xvcjogdGhlbWUucGFsZXR0ZS5i YWNrZ3JvdW5kLmRlZmF1bHQsCisgICAgY29sb3I6IHRoZW1lLnBhbGV0dGUudGV4dC5wcmltYXJ5 LAorICAgIGJvcmRlcjogMCwKKyAgICBib3hTaGFkb3c6ICdpbnNldCAwIDAgMCAxLjVweCAnK3Ro ZW1lLnBhbGV0dGUucHJpbWFyeS5tYWluLAorICAgIHBhZGRpbmc6ICcwIDJweCcsCisgICAgJzo6 c2VsZWN0aW9uJzogeworICAgICAgYmFja2dyb3VuZDogdGhlbWUucGFsZXR0ZS5wcmltYXJ5Lmxp Z2h0LAorICAgIH0KKyAgfSwKKyAgY2hlY2s6IHsKKyAgICBkaXNwbGF5OiAnaW5saW5lLWJsb2Nr JywKKyAgICB2ZXJ0aWNhbEFsaWduOiAndG9wJywKKyAgICB3aWR0aDogJzE2cHgnLAorICAgIGhl aWdodDogJzE2cHgnLAorICAgIGJvcmRlcjogJzFweCBzb2xpZCAnK3RoZW1lLnBhbGV0dGUuZ3Jl eVs4MDBdLAorICAgIG1hcmdpbjogJzNweCcsCisgICAgdGV4dEFsaWduOiAnY2VudGVyJywKKyAg ICBsaW5lSGVpZ2h0OiAnMTZweCcsCisKKyAgICAnJi5jaGVja2VkLCAmLnVuY2hlY2tlZCc6IHsK KyAgICAgIGJhY2tncm91bmQ6IHRoZW1lLnBhbGV0dGUuYmFja2dyb3VuZC5kZWZhdWx0LAorICAg IH0sCisgICAgJyYuY2hlY2tlZDphZnRlcic6IHsKKyAgICAgIGNvbnRlbnQ6ICdcJ1xcMjcxM1wn JywKKyAgICAgIGZvbnRXZWlnaHQ6ICdib2xkJywKKyAgICB9LAorICAgICcmLmludGVybWVkaWF0 ZSc6IHsKKyAgICAgIGJhY2tncm91bmQ6IHRoZW1lLnBhbGV0dGUuZ3JleVsyMDBdLAorICAgICAg JyY6YWZ0ZXInOiB7CisgICAgICAgIGNvbnRlbnQ6ICdcJ1xcMDAzRlwnJywKKyAgICAgICAgZm9u dFdlaWdodDogJ2JvbGQnLAorICAgICAgfSwKKyAgICB9LAorICB9Cit9KSk7CisKK2Z1bmN0aW9u IGF1dG9Gb2N1c0FuZFNlbGVjdChpbnB1dCkgeworICBpbnB1dD8uZm9jdXMoKTsKKyAgaW5wdXQ/ LnNlbGVjdCgpOworfQorCitmdW5jdGlvbiBpc1ZhbGlkQXJyYXkodmFsKSB7CisgIHZhbCA9IHZh bD8udHJpbSgpOworICByZXR1cm4gISh2YWwgIT0gJycgJiYgKHZhbC5jaGFyQXQoMCkgIT0gJ3sn IHx8IHZhbC5jaGFyQXQodmFsLmxlbmd0aCAtIDEpICE9ICd9JykpOworfQorCitjb25zdCBFZGl0 b3JQcm9wVHlwZXMgPSB7CisgIHJvdzogUHJvcFR5cGVzLm9iamVjdCwKKyAgY29sdW1uOiBQcm9w VHlwZXMub2JqZWN0LAorICBvblJvd0NoYW5nZTogUHJvcFR5cGVzLmZ1bmMsCisgIG9uQ2xvc2U6 IFByb3BUeXBlcy5mdW5jCit9OworCitmdW5jdGlvbiB0ZXh0Q29sdW1uRmluYWxWYWwoY29sdW1u VmFsLCBjb2x1bW4pIHsKKyAgaWYoY29sdW1uVmFsID09PSAnJykgeworICAgIGNvbHVtblZhbCA9 IG51bGw7CisgIH0gZWxzZSBpZiAoIWNvbHVtbi5pc19hcnJheSkgeworICAgIGlmIChjb2x1bW5W YWwgPT09ICdcJ1wnJyB8fCBjb2x1bW5WYWwgPT09ICciIicpIHsKKyAgICAgIGNvbHVtblZhbCA9 ICcnOworICAgIH0gZWxzZSBpZiAoY29sdW1uVmFsID09PSAnXFxcJ1xcXCcnKSB7CisgICAgICBj b2x1bW5WYWwgPSAnXCdcJyc7CisgICAgfSBlbHNlIGlmIChjb2x1bW5WYWwgPT09ICdcXCJcXCIn KSB7CisgICAgICBjb2x1bW5WYWwgPSAnIiInOworICAgIH0KKyAgfQorICByZXR1cm4gY29sdW1u VmFsOworfQorZXhwb3J0IGZ1bmN0aW9uIFRleHRFZGl0b3Ioe3JvdywgY29sdW1uLCBvblJvd0No YW5nZSwgb25DbG9zZX0pIHsKKyAgY29uc3QgY2xhc3NlcyA9IHVzZVN0eWxlcygpOworICBjb25z dCB2YWx1ZSA9IHJvd1tjb2x1bW4ua2V5XSA/PyAnJzsKKyAgY29uc3QgW2xvY2FsVmFsLCBzZXRM b2NhbFZhbF0gPSBSZWFjdC51c2VTdGF0ZSh2YWx1ZSk7CisKKyAgY29uc3Qgb25DaGFuZ2UgPSBS ZWFjdC51c2VDYWxsYmFjaygoZSk9PnsKKyAgICBzZXRMb2NhbFZhbChlLnRhcmdldC52YWx1ZSk7 CisgIH0sIFtdKTsKKworICBjb25zdCBvbk9LID0gKCk9PnsKKyAgICBpZihjb2x1bW4uaXNfYXJy YXkgJiYgIWlzVmFsaWRBcnJheSh2YWx1ZSkpIHsKKyAgICAgIGNvbnNvbGUuZXJyb3IoZ2V0dGV4 dCgnQXJyYXlzIG11c3Qgc3RhcnQgd2l0aCAieyIgYW5kIGVuZCB3aXRoICJ9IicpKTsKKyAgICB9 IGVsc2UgeworICAgICAgbGV0IGNvbHVtblZhbCA9IHRleHRDb2x1bW5GaW5hbFZhbChsb2NhbFZh bCwgY29sdW1uKTsKKyAgICAgIG9uUm93Q2hhbmdlKHsgLi4ucm93LCBbY29sdW1uLmtleV06IGNv bHVtblZhbH0sIHRydWUpOworICAgICAgb25DbG9zZSgpOworICAgIH0KKyAgfTsKKworICByZXR1 cm4oCisgICAgPFBvcnRhbCBjb250YWluZXI9e2RvY3VtZW50LmJvZHl9PgorICAgICAgPEJveCBj bGFzc05hbWU9e2NsYXNzZXMudGV4dEVkaXRvcn0gc3R5bGU9e3t0b3A6ICcyNzVweCcsIGxlZnQ6 ICcxMTFweCd9fT4KKyAgICAgICAgPHRleHRhcmVhIHJlZj17YXV0b0ZvY3VzQW5kU2VsZWN0fSBj bGFzc05hbWU9e2NsYXNzZXMudGV4dGFyZWF9IHZhbHVlPXtsb2NhbFZhbH0gb25DaGFuZ2U9e29u Q2hhbmdlfSAvPgorICAgICAgICA8Qm94IGRpc3BsYXk9ImZsZXgiIGp1c3RpZnlDb250ZW50PSJm bGV4LWVuZCI+CisgICAgICAgICAgPERlZmF1bHRCdXR0b24gc3RhcnRJY29uPXs8Q2xvc2VJY29u IC8+fSBvbkNsaWNrPXsoKT0+b25DbG9zZShmYWxzZSl9IHNpemU9InNtYWxsIj4KKyAgICAgICAg ICAgIHtnZXR0ZXh0KCdDYW5jZWwnKX0KKyAgICAgICAgICA8L0RlZmF1bHRCdXR0b24+CisgICAg ICAgICAge2NvbHVtbi5jYW5fZWRpdCAmJgorICAgICAgICAgIDw+CisgICAgICAgICAgICA8UHJp bWFyeUJ1dHRvbiBzdGFydEljb249ezxDaGVja1JvdW5kZWRJY29uIC8+fSBvbkNsaWNrPXtvbk9L fSBzaXplPSJzbWFsbCIgY2xhc3NOYW1lPXtjbGFzc2VzLmJ1dHRvbk1hcmdpbn0+CisgICAgICAg ICAgICAgIHtnZXR0ZXh0KCdPSycpfQorICAgICAgICAgICAgPC9QcmltYXJ5QnV0dG9uPgorICAg ICAgICAgIDwvPn0KKyAgICAgICAgPC9Cb3g+CisgICAgICA8L0JveD4KKyAgICA8L1BvcnRhbD4K KyAgKTsKK30KK1RleHRFZGl0b3IucHJvcFR5cGVzID0gRWRpdG9yUHJvcFR5cGVzOworCitleHBv cnQgZnVuY3Rpb24gTnVtYmVyRWRpdG9yKHtyb3csIGNvbHVtbiwgb25Sb3dDaGFuZ2UsIG9uQ2xv c2V9KSB7CisgIGNvbnN0IGNsYXNzZXMgPSB1c2VTdHlsZXMoKTsKKyAgY29uc3QgdmFsdWUgPSBy b3dbY29sdW1uLmtleV0gPz8gJyc7CisgIGNvbnN0IG9uQmx1ciA9ICgpPT57CisgICAgaWYoY29s dW1uLmNhbl9lZGl0ICYmIGNvbHVtbi5pc19hcnJheSAmJiAhaXNWYWxpZEFycmF5KHZhbHVlKSkg eworICAgICAgY29uc29sZS5lcnJvcihnZXR0ZXh0KCdBcnJheXMgbXVzdCBzdGFydCB3aXRoICJ7 IiBhbmQgZW5kIHdpdGggIn0iJykpOworICAgIH0gZWxzZSB7CisgICAgICBvbkNsb3NlKGNvbHVt bi5jYW5fZWRpdCA/IHRydWUgOiBmYWxzZSk7CisgICAgfQorICB9OworICBjb25zdCBvbktleURv d24gPSAoZSk9PnsKKyAgICBpZihlLmNvZGUgPT0gJ1RhYicpIHsKKyAgICAgIGUucHJldmVudERl ZmF1bHQoKTsKKyAgICAgIG9uQmx1cigpOworICAgIH0KKyAgfTsKKyAgcmV0dXJuICgKKyAgICA8 aW5wdXQKKyAgICAgIGNsYXNzTmFtZT17Y2xhc3Nlcy5pbnB1dH0KKyAgICAgIHJlZj17YXV0b0Zv Y3VzQW5kU2VsZWN0fQorICAgICAgdmFsdWU9e3ZhbHVlfQorICAgICAgb25DaGFuZ2U9eyhlKT0+ eworICAgICAgICBpZihjb2x1bW4uY2FuX2VkaXQpIHsKKyAgICAgICAgICBvblJvd0NoYW5nZSh7 IC4uLnJvdywgW2NvbHVtbi5rZXldOiBlLnRhcmdldC52YWx1ZSB9KTsKKyAgICAgICAgfQorICAg ICAgfX0KKyAgICAgIG9uQmx1cj17b25CbHVyfQorICAgICAgb25LZXlEb3duPXtvbktleURvd259 CisgICAgLz4KKyAgKTsKK30KK051bWJlckVkaXRvci5wcm9wVHlwZXMgPSBFZGl0b3JQcm9wVHlw ZXM7CisKK2V4cG9ydCBmdW5jdGlvbiBDaGVja2JveEVkaXRvcih7cm93LCBjb2x1bW4sIG9uUm93 Q2hhbmdlLCBvbkNsb3NlfSkgeworICBjb25zdCBjbGFzc2VzID0gdXNlU3R5bGVzKCk7CisgIGNv bnN0IHZhbHVlID0gcm93W2NvbHVtbi5rZXldID8/IG51bGw7CisgIGNvbnN0IGNoYW5nZVZhbHVl ID0gKCk9PnsKKyAgICBpZighY29sdW1uLmNhbl9lZGl0KSB7CisgICAgICByZXR1cm47CisgICAg fQorICAgIGxldCBuZXdWYWwgPSB0cnVlOworICAgIGlmKHZhbHVlKSB7CisgICAgICBuZXdWYWwg PSBmYWxzZTsKKyAgICB9IGVsc2UgaWYodmFsdWUgIT0gbnVsbCAmJiAhdmFsdWUpIHsKKyAgICAg IG5ld1ZhbCA9IG51bGw7CisgICAgfQorICAgIG9uUm93Q2hhbmdlKHsgLi4ucm93LCBbY29sdW1u LmtleV06IG5ld1ZhbH0pOworICB9OworICBjb25zdCBvbkJsdXIgPSAoKT0+e29uQ2xvc2UodHJ1 ZSk7fTsKKyAgbGV0IGNsYXNzTmFtZSA9ICdjaGVja2VkJzsKKyAgaWYoIXZhbHVlKSB7CisgICAg Y2xhc3NOYW1lID0gJ3VuY2hlY2tlZCc7CisgIH0gZWxzZSBpZih2YWx1ZSA9PSBudWxsKXsKKyAg ICBjbGFzc05hbWUgPSAnaW50ZXJtZWRpYXRlJzsKKyAgfQorICByZXR1cm4gKAorICAgIDxkaXYg b25DbGljaz17Y2hhbmdlVmFsdWV9IHRhYkluZGV4PSIwIiBvbkJsdXI9e29uQmx1cn0+CisgICAg ICA8c3BhbiBjbGFzc05hbWU9e2Nsc3goY2xhc3Nlcy5jaGVjaywgY2xhc3NOYW1lKX0+PC9zcGFu PgorICAgIDwvZGl2PgorICApOworfQorQ2hlY2tib3hFZGl0b3IucHJvcFR5cGVzID0gRWRpdG9y UHJvcFR5cGVzOworCitleHBvcnQgZnVuY3Rpb24gSnNvblRleHRFZGl0b3Ioe3JvdywgY29sdW1u LCBvblJvd0NoYW5nZSwgb25DbG9zZX0pIHsKKyAgY29uc3QgY2xhc3NlcyA9IHVzZVN0eWxlcygp OworICBjb25zdCB2YWx1ZSA9IFJlYWN0LnVzZU1lbW8oKCk9PnsKKyAgICBsZXQgbmV3VmFsID0g cm93W2NvbHVtbi5rZXldID8/IG51bGw7CisgICAgLyogSWYganNvbmIgb3IgYXJyYXkgKi8KKyAg ICBpZihjb2x1bW4uY29sdW1uX3R5cGVfaW50ZXJuYWwgPT09ICdqc29uYicgJiYgIUFycmF5Lmlz QXJyYXkobmV3VmFsKSAmJiBuZXdWYWwgIT0gbnVsbCkgeworICAgICAgbmV3VmFsID0gSlNPTkJp Z051bWJlci5zdHJpbmdpZnkoSlNPTkJpZ051bWJlci5wYXJzZShuZXdWYWwpLCBudWxsLCAyKTsK KyAgICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkobmV3VmFsKSkgeworICAgICAgdmFyIHRlbXAg PSBuZXdWYWwubWFwKChlbGUpPT57CisgICAgICAgIGlmICh0eXBlb2YgZWxlID09PSAnb2JqZWN0 JykgeworICAgICAgICAgIHJldHVybiBKU09OQmlnTnVtYmVyLnN0cmluZ2lmeShlbGUsIG51bGws IDIpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBlbGU7CisgICAgICB9KTsKKyAgICAgIG5l d1ZhbCA9ICdbJyArIHRlbXAuam9pbigpICsgJ10nOworICAgIH0KKyAgICAvKiBzZXQgZWRpdG9y IGNvbnRlbnQgdG8gZW1wdHkgaWYgdmFsdWUgaXMgbnVsbCovCisgICAgaWYgKF8uaXNOdWxsKG5l d1ZhbCkpeworICAgICAgbmV3VmFsID0gJyc7CisgICAgfQorICAgIHJldHVybiBuZXdWYWw7Cisg IH0pOworICBjb25zdCBbbG9jYWxWYWwsIHNldExvY2FsVmFsXSA9IFJlYWN0LnVzZVN0YXRlKHZh bHVlKTsKKworICBjb25zdCBvbkNoYW5nZSA9IFJlYWN0LnVzZUNhbGxiYWNrKChuZXdWYWwpPT57 CisgICAgc2V0TG9jYWxWYWwobmV3VmFsKTsKKyAgfSwgW10pOworICBjb25zdCBvbk9LID0gKCk9 PnsKKyAgICBvblJvd0NoYW5nZSh7IC4uLnJvdywgW2NvbHVtbi5rZXldOiBsb2NhbFZhbH0sIHRy dWUpOworICAgIG9uQ2xvc2UoKTsKKyAgfTsKKyAgcmV0dXJuICgKKyAgICA8UG9ydGFsIGNvbnRh aW5lcj17ZG9jdW1lbnQuYm9keX0+CisgICAgICA8Qm94IGNsYXNzTmFtZT17Y2xhc3Nlcy5qc29u RWRpdG9yfSBzdHlsZT17e3RvcDogJzI3NXB4JywgbGVmdDogJzExMXB4J319PgorICAgICAgICA8 SnNvbkVkaXRvcgorICAgICAgICAgIHZhbHVlPXtsb2NhbFZhbH0KKyAgICAgICAgICBvcHRpb25z PXt7CisgICAgICAgICAgICBvbkNoYW5nZTogb25DaGFuZ2UsCisgICAgICAgICAgICBvbkVycm9y OiAoZXJyb3IpPT5jb25zb2xlLmVycm9yKCdJbnZhbGlkIEpzb246ICcgKyBlcnJvci5tZXNzYWdl LnNwbGl0KCc6JylbMF0pLAorICAgICAgICAgIH19CisgICAgICAgICAgLy8gbW9kZT0nY29kZScK KyAgICAgICAgICBjbGFzc05hbWU9eydqc29uZWRpdG9yLWRpdid9CisgICAgICAgIC8+CisgICAg ICAgIDxCb3ggZGlzcGxheT0iZmxleCIganVzdGlmeUNvbnRlbnQ9ImZsZXgtZW5kIiBtYXJnaW5U b3A9IjAuMjVyZW0iPgorICAgICAgICAgIDxEZWZhdWx0QnV0dG9uIHN0YXJ0SWNvbj17PENsb3Nl SWNvbiAvPn0gb25DbGljaz17KCk9Pm9uQ2xvc2UoZmFsc2UpfSBzaXplPSJzbWFsbCI+CisgICAg ICAgICAgICB7Z2V0dGV4dCgnQ2FuY2VsJyl9CisgICAgICAgICAgPC9EZWZhdWx0QnV0dG9uPgor ICAgICAgICAgIHtjb2x1bW4uY2FuX2VkaXQgJiYKKyAgICAgICAgICA8PgorICAgICAgICAgICAg PFByaW1hcnlCdXR0b24gc3RhcnRJY29uPXs8Q2hlY2tSb3VuZGVkSWNvbiAvPn0gb25DbGljaz17 b25PS30gc2l6ZT0ic21hbGwiIGNsYXNzTmFtZT17Y2xhc3Nlcy5idXR0b25NYXJnaW59PgorICAg ICAgICAgICAgICB7Z2V0dGV4dCgnT0snKX0KKyAgICAgICAgICAgIDwvUHJpbWFyeUJ1dHRvbj4K KyAgICAgICAgICA8Lz59CisgICAgICAgIDwvQm94PgorICAgICAgPC9Cb3g+CisgICAgPC9Qb3J0 YWw+CisgICk7Cit9CitKc29uVGV4dEVkaXRvci5wcm9wVHlwZXMgPSBFZGl0b3JQcm9wVHlwZXM7 CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi90b29scy9zcWxlZGl0b3Ivc3RhdGljL2pzL2NvbXBv bmVudHMvUXVlcnlUb29sRGF0YUdyaWQvRm9ybWF0dGVycy5qc3ggYi93ZWIvcGdhZG1pbi90b29s cy9zcWxlZGl0b3Ivc3RhdGljL2pzL2NvbXBvbmVudHMvUXVlcnlUb29sRGF0YUdyaWQvRm9ybWF0 dGVycy5qc3gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwLi42ODJhMmUwZjgK LS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi90b29scy9zcWxlZGl0b3Ivc3RhdGljL2pz L2NvbXBvbmVudHMvUXVlcnlUb29sRGF0YUdyaWQvRm9ybWF0dGVycy5qc3gKQEAgLTAsMCArMSw3 MyBAQAorLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLworLy8KKy8vIHBnQWRtaW4gNCAtIFBvc3RncmVTUUwgVG9vbHMKKy8vCisvLyBD b3B5cmlnaHQgKEMpIDIwMTMgLSAyMDIyLCBUaGUgcGdBZG1pbiBEZXZlbG9wbWVudCBUZWFtCisv LyBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIHRoZSBQb3N0Z3JlU1FMIExpY2VuY2UK Ky8vCisvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLworaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JzsKK2ltcG9ydCBfIGZyb20gJ2xv ZGFzaCc7CitpbXBvcnQgeyBtYWtlU3R5bGVzIH0gZnJvbSAnQG1hdGVyaWFsLXVpL2NvcmUnOwor aW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJzsKK2ltcG9ydCBDdXN0b21Qcm9wVHlw ZXMgZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vc3RhdGljL2pzL2N1c3RvbV9wcm9wX3R5cGVzJzsK KworY29uc3QgdXNlU3R5bGVzID0gbWFrZVN0eWxlcygodGhlbWUpPT4oeworICBkaXNhYmxlZENl bGw6IHsKKyAgICBvcGFjaXR5OiB0aGVtZS5wYWxldHRlLmFjdGlvbi5kaXNhYmxlZE9wYWNpdHks CisgIH0KK30pKTsKKworZnVuY3Rpb24gTnVsbEFuZERlZmF1bHRGb3JtYXR0ZXIoe3ZhbHVlLCBj b2x1bW4sIGNoaWxkcmVufSkgeworICBjb25zdCBjbGFzc2VzID0gdXNlU3R5bGVzKCk7CisgIGlm IChfLmlzVW5kZWZpbmVkKHZhbHVlKSAmJiBjb2x1bW4uaGFzX2RlZmF1bHRfdmFsKSB7CisgICAg cmV0dXJuIDxzcGFuIGNsYXNzTmFtZT17Y2xhc3Nlcy5kaXNhYmxlZENlbGx9PltkZWZhdWx0XTwv c3Bhbj47CisgIH0gZWxzZSBpZiAoKF8uaXNVbmRlZmluZWQodmFsdWUpICYmIGNvbHVtbi5ub3Rf bnVsbCkgfHwKKyAgICAgIChfLmlzVW5kZWZpbmVkKHZhbHVlKSB8fCBfLmlzTnVsbCh2YWx1ZSkp KSB7CisgICAgcmV0dXJuIDxzcGFuIGNsYXNzTmFtZT17Y2xhc3Nlcy5kaXNhYmxlZENlbGx9Pltu dWxsXTwvc3Bhbj47CisgIH0KKyAgcmV0dXJuIGNoaWxkcmVuOworfQorTnVsbEFuZERlZmF1bHRG b3JtYXR0ZXIucHJvcFR5cGVzID0geworICB2YWx1ZTogUHJvcFR5cGVzLmFueSwKKyAgY29sdW1u OiBQcm9wVHlwZXMub2JqZWN0LAorICBjaGlsZHJlbjogQ3VzdG9tUHJvcFR5cGVzLmNoaWxkcmVu LAorfTsKKworY29uc3QgRm9ybWF0dGVyUHJvcFR5cGVzID0geworICByb3c6IFByb3BUeXBlcy5v YmplY3QsCisgIGNvbHVtbjogUHJvcFR5cGVzLm9iamVjdCwKK307CitleHBvcnQgZnVuY3Rpb24g VGV4dEZvcm1hdHRlcih7cm93LCBjb2x1bW59KSB7CisgIGxldCB2YWx1ZSA9IHJvd1tjb2x1bW4u a2V5XTsKKyAgaWYoIV8uaXNOdWxsKHZhbHVlKSAmJiAhXy5pc1VuZGVmaW5lZCh2YWx1ZSkpIHsK KyAgICB2YWx1ZSA9IHZhbHVlLnRvU3RyaW5nKCk7CisgIH0KKyAgcmV0dXJuICgKKyAgICA8TnVs bEFuZERlZmF1bHRGb3JtYXR0ZXIgdmFsdWU9e3ZhbHVlfSBjb2x1bW49e2NvbHVtbn0+CisgICAg ICA8Pnt2YWx1ZX08Lz4KKyAgICA8L051bGxBbmREZWZhdWx0Rm9ybWF0dGVyPgorICApOworfQor VGV4dEZvcm1hdHRlci5wcm9wVHlwZXMgPSBGb3JtYXR0ZXJQcm9wVHlwZXM7CisKK2V4cG9ydCBm dW5jdGlvbiBOdW1iZXJGb3JtYXR0ZXIoe3JvdywgY29sdW1ufSkgeworICBsZXQgdmFsdWUgPSBy b3dbY29sdW1uLmtleV07CisgIHJldHVybiAoCisgICAgPE51bGxBbmREZWZhdWx0Rm9ybWF0dGVy IHZhbHVlPXt2YWx1ZX0gY29sdW1uPXtjb2x1bW59PgorICAgICAgPGRpdiBzdHlsZT17e3RleHRB bGlnbjogJ3JpZ2h0J319Pnt2YWx1ZX08L2Rpdj4KKyAgICA8L051bGxBbmREZWZhdWx0Rm9ybWF0 dGVyPgorICApOworfQorTnVtYmVyRm9ybWF0dGVyLnByb3BUeXBlcyA9IEZvcm1hdHRlclByb3BU eXBlczsKKworZXhwb3J0IGZ1bmN0aW9uIEJpbmFyeUZvcm1hdHRlcih7cm93LCBjb2x1bW59KSB7 CisgIGxldCB2YWx1ZSA9IHJvd1tjb2x1bW4ua2V5XTsKKyAgY29uc3QgY2xhc3NlcyA9IHVzZVN0 eWxlcygpOworICByZXR1cm4gKAorICAgIDxOdWxsQW5kRGVmYXVsdEZvcm1hdHRlciB2YWx1ZT17 dmFsdWV9IGNvbHVtbj17Y29sdW1ufT4KKyAgICAgIDxzcGFuIGNsYXNzTmFtZT17Y2xhc3Nlcy5k aXNhYmxlZENlbGx9Plt7dmFsdWV9XTwvc3Bhbj4KKyAgICA8L051bGxBbmREZWZhdWx0Rm9ybWF0 dGVyPgorICApOworfQorQmluYXJ5Rm9ybWF0dGVyLnByb3BUeXBlcyA9IEZvcm1hdHRlclByb3BU eXBlczsKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL3Rvb2xzL3NxbGVkaXRvci9zdGF0aWMvanMv Y29tcG9uZW50cy9RdWVyeVRvb2xEYXRhR3JpZC9pbmRleC5qc3ggYi93ZWIvcGdhZG1pbi90b29s cy9zcWxlZGl0b3Ivc3RhdGljL2pzL2NvbXBvbmVudHMvUXVlcnlUb29sRGF0YUdyaWQvaW5kZXgu anN4Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMC4uMjBjZDA4MmEwCi0tLSAv ZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vdG9vbHMvc3FsZWRpdG9yL3N0YXRpYy9qcy9jb21w b25lbnRzL1F1ZXJ5VG9vbERhdGFHcmlkL2luZGV4LmpzeApAQCAtMCwwICsxLDM0NSBAQAorLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v LworLy8KKy8vIHBnQWRtaW4gNCAtIFBvc3RncmVTUUwgVG9vbHMKKy8vCisvLyBDb3B5cmlnaHQg KEMpIDIwMTMgLSAyMDIyLCBUaGUgcGdBZG1pbiBEZXZlbG9wbWVudCBUZWFtCisvLyBUaGlzIHNv ZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIHRoZSBQb3N0Z3JlU1FMIExpY2VuY2UKKy8vCisvLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v LworaW1wb3J0IHsgQm94LCBtYWtlU3R5bGVzIH0gZnJvbSAnQG1hdGVyaWFsLXVpL2NvcmUnOwor aW1wb3J0IF8gZnJvbSAnbG9kYXNoJzsKK2ltcG9ydCBSZWFjdCwge3VzZVN0YXRlLCB1c2VFZmZl Y3QsIHVzZUNhbGxiYWNrLCB1c2VDb250ZXh0fSBmcm9tICdyZWFjdCc7CitpbXBvcnQgUmVhY3RE YXRhR3JpZCwge3VzZVJvd1NlbGVjdGlvbn0gZnJvbSAncmVhY3QtZGF0YS1ncmlkJzsKK2ltcG9y dCBMb2NrSWNvbiBmcm9tICdAbWF0ZXJpYWwtdWkvaWNvbnMvTG9jayc7CitpbXBvcnQgRWRpdElj b24gZnJvbSAnQG1hdGVyaWFsLXVpL2ljb25zL0VkaXQnOworaW1wb3J0IHsgUVVFUllfVE9PTF9F VkVOVFMgfSBmcm9tICcuLi9RdWVyeVRvb2xDb25zdGFudHMnOworaW1wb3J0ICogYXMgRWRpdG9y cyBmcm9tICcuL0VkaXRvcnMnOworaW1wb3J0ICogYXMgRm9ybWF0dGVycyBmcm9tICcuL0Zvcm1h dHRlcnMnOworaW1wb3J0IGNsc3ggZnJvbSAnY2xzeCc7CitpbXBvcnQgeyBQZ0ljb25CdXR0b24g fSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9zdGF0aWMvanMvY29tcG9uZW50cy9CdXR0b25zJzsK K2ltcG9ydCBNYXBJY29uIGZyb20gJ0BtYXRlcmlhbC11aS9pY29ucy9NYXAnOworaW1wb3J0IHsg UXVlcnlUb29sRXZlbnRzQ29udGV4dCB9IGZyb20gJy4uL1F1ZXJ5VG9vbENvbXBvbmVudCc7Citp bXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnOworCitleHBvcnQgY29uc3QgUk9XTlVN X0tFWSA9ICckX3BnYWRtaW5fcm93bnVtX2tleV8kJzsKK2V4cG9ydCBjb25zdCBHUklEX1JPV19T RUxFQ1RfS0VZID0gJyRfcGdhZG1pbl9ncmlkcm93c2VsZWN0X2tleV8kJzsKKworY29uc3QgdXNl U3R5bGVzID0gbWFrZVN0eWxlcygodGhlbWUpPT4oeworICByb290OiB7CisgICAgaGVpZ2h0OiAn MTAwJScsCisgICAgY29sb3I6IHRoZW1lLnBhbGV0dGUudGV4dC5wcmltYXJ5LAorICAgIGJhY2tn cm91bmRDb2xvcjogdGhlbWUub3RoZXJWYXJzLnF0RGF0YWdyaWRCZywKKyAgICBmb250U2l6ZTog JzEycHgnLAorICAgIGJvcmRlcjogJ25vbmUnLAorICAgICctLXJkZy1zZWxlY3Rpb24tY29sb3In OiB0aGVtZS5wYWxldHRlLnByaW1hcnkubWFpbiwKKyAgICAnJiAucmRnLWNlbGwnOiB7CisgICAg ICAuLi50aGVtZS5taXhpbnMucGFuZWxCb3JkZXIucmlnaHQsCisgICAgICAuLi50aGVtZS5taXhp bnMucGFuZWxCb3JkZXIuYm90dG9tLAorICAgICAgZm9udFdlaWdodDogJ2FiYycsCisgICAgICAn JlthcmlhLWNvbGluZGV4PSIxIl0nOiB7CisgICAgICAgIHBhZGRpbmc6IDAsCisgICAgICB9Cisg ICAgfSwKKyAgICAnJiAucmRnLWhlYWRlci1yb3cgLnJkZy1jZWxsJzogeworICAgICAgcGFkZGlu ZzogMCwKKyAgICB9LAorICAgICcmIC5yZGctaGVhZGVyLXJvdyc6IHsKKyAgICAgIGJhY2tncm91 bmRDb2xvcjogdGhlbWUucGFsZXR0ZS5iYWNrZ3JvdW5kLmRlZmF1bHQsCisgICAgICBmb250V2Vp Z2h0OiAnbm9ybWFsJywKKyAgICB9LAorICAgICcmIC5yZGctcm93JzogeworICAgICAgYmFja2dy b3VuZENvbG9yOiB0aGVtZS5wYWxldHRlLmJhY2tncm91bmQuZGVmYXVsdCwKKyAgICAgICcmW2Fy aWEtc2VsZWN0ZWQ9dHJ1ZV0nOiB7CisgICAgICAgIGJhY2tncm91bmRDb2xvcjogdGhlbWUucGFs ZXR0ZS5wcmltYXJ5LmxpZ2h0LAorICAgICAgICAnJiAucmRnLWNlbGw6bnRoLWNoaWxkKDEpJzog eworICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogdGhlbWUucGFsZXR0ZS5wcmltYXJ5Lm1haW4s CisgICAgICAgICAgY29sb3I6IHRoZW1lLnBhbGV0dGUucHJpbWFyeS5jb250cmFzdFRleHQsCisg ICAgICAgIH0KKyAgICAgIH0sCisgICAgfQorICB9LAorICBjb2x1bW5IZWFkZXI6IHsKKyAgICBw YWRkaW5nOiAnM3B4IDZweCcsCisgICAgaGVpZ2h0OiAnMTAwJScsCisgICAgZGlzcGxheTogJ2Zs ZXgnLAorICAgIGxpbmVIZWlnaHQ6ICcxNnB4JywKKyAgICBhbGlnbkl0ZW1zOiAnY2VudGVyJywK KyAgfSwKKyAgY29sdW1uTmFtZTogeworICAgIGZvbnRXZWlnaHQ6ICdib2xkJywKKyAgfSwKKyAg ZWRpdGVkQ2VsbDogeworICAgIGZvbnRXZWlnaHQ6ICdib2xkJywKKyAgfSwKKyAgZGVsZXRlZFJv dzogeworICAgICcmOmJlZm9yZSc6IHsKKyAgICAgIGNvbnRlbnQ6ICciICInLAorICAgICAgcG9z aXRpb246ICdhYnNvbHV0ZScsCisgICAgICB0b3A6ICc1MCUnLAorICAgICAgbGVmdDogMCwKKyAg ICAgIGJvcmRlclRvcDogJzFweCBzb2xpZCAnICsgdGhlbWUucGFsZXR0ZS5lcnJvci5tYWluLAor ICAgICAgd2lkdGg6ICcxMDAlJywKKyAgICB9CisgIH0sCisgIHJvd051bUNlbGw6IHsKKyAgICBw YWRkaW5nOiAnMHB4IDhweCcsCisgIH0sCisgIGNvbEhlYWRlclNlbGVjdGVkOiB7CisgICAgb3V0 bGluZUNvbG9yOiB0aGVtZS5wYWxldHRlLnByaW1hcnkubWFpbiwKKyAgICBiYWNrZ3JvdW5kQ29s b3I6IHRoZW1lLnBhbGV0dGUucHJpbWFyeS5tYWluLAorICAgIGNvbG9yOiB0aGVtZS5wYWxldHRl LnByaW1hcnkuY29udHJhc3RUZXh0LAorICB9LAorICBjb2xTZWxlY3RlZDogeworICAgIG91dGxp bmVDb2xvcjogdGhlbWUucGFsZXR0ZS5wcmltYXJ5Lm1haW4sCisgICAgYmFja2dyb3VuZENvbG9y OiB0aGVtZS5wYWxldHRlLnByaW1hcnkubGlnaHQsCisgIH0KK30pKTsKKworCitmdW5jdGlvbiBT ZWxlY3RhYmxlSGVhZGVyUmVuZGVyZXIoe2NvbHVtbiwgc2VsZWN0ZWRDb2x1bW5zLCBvblNlbGVj dGVkQ29sdW1uc0NoYW5nZX0pIHsKKyAgY29uc3QgY2xhc3NlcyA9IHVzZVN0eWxlcygpOworICBj b25zdCBldmVudEJ1cyA9IHVzZUNvbnRleHQoUXVlcnlUb29sRXZlbnRzQ29udGV4dCk7CisKKyAg Y29uc3Qgb25DbGljayA9IChlKT0+eworICAgIGUucHJldmVudERlZmF1bHQoKTsKKworICAgIGNv bnN0IG5ld1NlbGVjdGVkQ29scyA9IG5ldyBTZXQoc2VsZWN0ZWRDb2x1bW5zKTsKKyAgICBpZiAo bmV3U2VsZWN0ZWRDb2xzLmhhcyhjb2x1bW4uaWR4KSkgeworICAgICAgbmV3U2VsZWN0ZWRDb2xz LmRlbGV0ZShjb2x1bW4uaWR4KTsKKyAgICB9IGVsc2UgeworICAgICAgbmV3U2VsZWN0ZWRDb2xz LmFkZChjb2x1bW4uaWR4KTsKKyAgICB9CisgICAgb25TZWxlY3RlZENvbHVtbnNDaGFuZ2UobmV3 U2VsZWN0ZWRDb2xzKTsKKyAgfTsKKworICBjb25zdCBpc1NlbGVjdGVkID0gc2VsZWN0ZWRDb2x1 bW5zLmhhcyhjb2x1bW4uaWR4KTsKKworICByZXR1cm4gKAorICAgIDxCb3ggY2xhc3NOYW1lPXtj bHN4KGNsYXNzZXMuY29sdW1uSGVhZGVyLCBpc1NlbGVjdGVkID8gY2xhc3Nlcy5jb2xIZWFkZXJT ZWxlY3RlZCA6IG51bGwpfSBvbkNsaWNrPXtvbkNsaWNrfT4KKyAgICAgIHsoY29sdW1uLmNvbHVt bl90eXBlX2ludGVybmFsID09ICdnZW9tZXRyeScgfHwgY29sdW1uLmNvbHVtbl90eXBlX2ludGVy bmFsID09ICdnZW9ncmFwaHknKSAmJgorICAgICAgPEJveD4KKyAgICAgICAgPFBnSWNvbkJ1dHRv biBpY29uPXs8TWFwSWNvbiAvPn0gc2l6ZT0ic21hbGwiIHN0eWxlPXt7bWFyZ2luUmlnaHQ6ICcw LjI1cmVtJ319IG9uQ2xpY2s9eygpPT57CisgICAgICAgICAgZXZlbnRCdXMuZmlyZUV2ZW50KFFV RVJZX1RPT0xfRVZFTlRTLlRSSUdHRVJfUkVOREVSX0dFT01FVFJJRVMsIGNvbHVtbik7CisgICAg ICAgIH19Lz4KKyAgICAgIDwvQm94Pn0KKyAgICAgIDxCb3ggbWFyZ2luUmlnaHQ9ImF1dG8iPgor ICAgICAgICA8c3BhbiBjbGFzc05hbWU9e2NsYXNzZXMuY29sdW1uTmFtZX0+e2NvbHVtbi5kaXNw bGF5X25hbWV9PC9zcGFuPjxici8+CisgICAgICAgIDxzcGFuPntjb2x1bW4uZGlzcGxheV90eXBl fTwvc3Bhbj4KKyAgICAgIDwvQm94PgorICAgICAgPEJveCBtYXJnaW5MZWZ0PSI0cHgiPntjb2x1 bW4uY2FuX2VkaXQgPworICAgICAgICA8RWRpdEljb24gZm9udFNpemU9InNtYWxsIiBzdHlsZT17 e2ZvbnRTaXplOiAnMC44NzVyZW0nfX0gLz46CisgICAgICAgIDxMb2NrSWNvbiBmb250U2l6ZT0i c21hbGwiIHN0eWxlPXt7Zm9udFNpemU6ICcwLjg3NXJlbSd9fSAvPgorICAgICAgfTwvQm94Pgor ICAgIDwvQm94PgorICApOworfQorU2VsZWN0YWJsZUhlYWRlclJlbmRlcmVyLnByb3BUeXBlcyA9 IHsKKyAgY29sdW1uOiBQcm9wVHlwZXMub2JqZWN0LAorICBzZWxlY3RlZENvbHVtbnM6IFByb3BU eXBlcy5vYmplY3RPZihTZXQpLAorICBvblNlbGVjdGVkQ29sdW1uc0NoYW5nZTogUHJvcFR5cGVz LmZ1bmMsCit9OworCitmdW5jdGlvbiBzZXRFZGl0b3JGb3JtYXR0ZXIoY29sKSB7CisgIC8vIElm IGdyaWQgaXMgZWRpdGFibGUgdGhlbiBhZGQgZWRpdG9yIGVsc2UgbWFrZSBpdCByZWFkb25seQor ICBpZiAoY29sLmNlbGwgPT0gJ29pZCcgJiYgY29sLm5hbWUgPT0gJ29pZCcpIHsKKyAgICBjb2wu ZWRpdG9yID0gbnVsbDsKKyAgICBjb2wuZm9ybWF0dGVyID0gRm9ybWF0dGVycy5UZXh0Rm9ybWF0 dGVyOworICB9IGVsc2UgaWYgKGNvbC5jZWxsID09ICdKc29uJykgeworICAgIGNvbC5lZGl0b3Ig PSBFZGl0b3JzLkpzb25UZXh0RWRpdG9yOworICAgIGNvbC5mb3JtYXR0ZXIgPSBGb3JtYXR0ZXJz LlRleHRGb3JtYXR0ZXI7CisgIH0gZWxzZSBpZiAoWydudW1iZXInLCAnb2lkJ10uaW5kZXhPZihj b2wuY2VsbCkgIT0gLTEgfHwgWyd4aWQnLCAncmVhbCddLmluZGV4T2YoY29sLnR5cGUpICE9IC0x KSB7CisgICAgY29sLmZvcm1hdHRlciA9IEZvcm1hdHRlcnMuTnVtYmVyRm9ybWF0dGVyOworICAg IGNvbC5lZGl0b3IgPSBFZGl0b3JzLk51bWJlckVkaXRvcjsKKyAgfSBlbHNlIGlmIChjb2wuY2Vs bCA9PSAnYm9vbGVhbicpIHsKKyAgICBjb2wuZWRpdG9yID0gRWRpdG9ycy5DaGVja2JveEVkaXRv cjsKKyAgICBjb2wuZm9ybWF0dGVyID0gRm9ybWF0dGVycy5UZXh0Rm9ybWF0dGVyOworICB9IGVs c2UgaWYgKGNvbC5jZWxsID09ICdiaW5hcnknKSB7CisgICAgLy8gV2UgZG8gbm90IHN1cHBvcnQg ZWRpdGluZyBiaW5hcnkgZGF0YSBpbiBTUUwgZWRpdG9yIGFuZCBkYXRhIGdyaWQuCisgICAgY29s LmVkaXRvciA9IG51bGw7CisgICAgY29sLmZvcm1hdHRlciA9IEZvcm1hdHRlcnMuQmluYXJ5Rm9y bWF0dGVyOworICB9IGVsc2UgeworICAgIGNvbC5lZGl0b3IgPSBFZGl0b3JzLlRleHRFZGl0b3I7 CisgICAgY29sLmZvcm1hdHRlciA9IEZvcm1hdHRlcnMuVGV4dEZvcm1hdHRlcjsKKyAgfQorfQor CitmdW5jdGlvbiBjZWxsQ2xhc3NHZXR0ZXIoY29sLCBjbGFzc2VzLCBpc1NlbGVjdGVkLCBkYXRh Q2hhbmdlU3RvcmUsIHJvd0tleUdldHRlcil7CisgIHJldHVybiAocm93KT0+eworICAgIGxldCBj ZWxsQ2xhc3NlcyA9IFtdOworICAgIGlmKGRhdGFDaGFuZ2VTdG9yZSAmJiByb3dLZXlHZXR0ZXIp IHsKKyAgICAgIGlmKHJvd0tleUdldHRlcihyb3cpIGluIChkYXRhQ2hhbmdlU3RvcmU/LnVwZGF0 ZWQgfHwge30pCisgICAgICAgICYmICFfLmlzVW5kZWZpbmVkKGRhdGFDaGFuZ2VTdG9yZT8udXBk YXRlZFtyb3dLZXlHZXR0ZXIocm93KV0/LmRhdGFbY29sLmtleV0pCisgICAgICAgIHx8IHJvd0tl eUdldHRlcihyb3cpIGluIChkYXRhQ2hhbmdlU3RvcmU/LmFkZGVkIHx8IHt9KQorICAgICAgKSB7 CisgICAgICAgIGNlbGxDbGFzc2VzLnB1c2goY2xhc3Nlcy5lZGl0ZWRDZWxsKTsKKyAgICAgIH0K KyAgICAgIGlmKHJvd0tleUdldHRlcihyb3cpIGluIChkYXRhQ2hhbmdlU3RvcmU/LmRlbGV0ZWQg fHwge30pKSB7CisgICAgICAgIGNlbGxDbGFzc2VzLnB1c2goY2xhc3Nlcy5kZWxldGVkUm93KTsK KyAgICAgIH0KKyAgICB9CisgICAgaWYoaXNTZWxlY3RlZCkgeworICAgICAgY2VsbENsYXNzZXMu cHVzaChjbGFzc2VzLmNvbFNlbGVjdGVkKTsKKyAgICB9CisgICAgcmV0dXJuIGNsc3goY2VsbENs YXNzZXMpOworICB9OworfQorCitmdW5jdGlvbiBpbml0aWFsaXNlQ29sdW1ucyhjb2x1bW5zLCBy b3dzLCB0b3RhbFJvd0NvdW50KSB7CisgIGxldCByZXRDb2x1bW5zID0gWworICAgIC4uLmNvbHVt bnMsCisgIF07CisgIGNvbnN0IGNhbnZhcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2NhbnZh cycpOworICBjb25zdCBjYW52YXNDb250ZXh0ID0gY2FudmFzLmdldENvbnRleHQoJzJkJyk7Cisg IGNhbnZhc0NvbnRleHQuZm9udCA9ICcxMnB4IFJvYm90byc7CisKKyAgZm9yKGNvbnN0IGNvbCBv ZiByZXRDb2x1bW5zKSB7CisgICAgY29sLndpZHRoID0gZ2V0VGV4dFdpZHRoKGNvbCwgcm93cywg Y2FudmFzQ29udGV4dCk7CisgICAgY29sLnJlc2l6YWJsZSA9IHRydWU7CisgICAgY29sLmVkaXRv ck9wdGlvbnMgPSB7CisgICAgICBjb21taXRPbk91dHNpZGVDbGljazogZmFsc2UsCisgICAgICBv bkNlbGxLZXlEb3duOiAoZSk9PnsKKyAgICAgICAgLyogRG8gbm90IG9wZW4gdGhlIGVkaXRvciAq LworICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7CisgICAgICB9CisgICAgfTsKKyAgICBzZXRF ZGl0b3JGb3JtYXR0ZXIoY29sKTsKKyAgfQorCisgIGxldCByb3dOdW1Db2wgPSB7CisgICAga2V5 OiBST1dOVU1fS0VZLCBuYW1lOiAnJywgZnJvemVuOiB0cnVlLCByZXNpemFibGU6IGZhbHNlLAor ICAgIG1pbldpZHRoOiA0NSwgd2lkdGg6IGNhbnZhc0NvbnRleHQubWVhc3VyZVRleHQoKHRvdGFs Um93Q291bnR8fCcnKS50b1N0cmluZygpKS53aWR0aCwKKyAgfTsKKyAgcm93TnVtQ29sLmNlbGxD bGFzcyA9IGNlbGxDbGFzc0dldHRlcihyb3dOdW1Db2wpOworICByZXRDb2x1bW5zLnVuc2hpZnQo cm93TnVtQ29sKTsKKyAgY2FudmFzLnJlbW92ZSgpOworICByZXR1cm4gcmV0Q29sdW1uczsKK30K KworZnVuY3Rpb24gZm9ybWF0Q29sdW1ucyhjb2x1bW5zLCBkYXRhQ2hhbmdlU3RvcmUsIHNlbGVj dGVkQ29sdW1ucywgb25TZWxlY3RlZENvbHVtbnNDaGFuZ2UsIHJvd0tleUdldHRlciwgY2xhc3Nl cykgeworICBsZXQgcmV0Q29sdW1ucyA9IFsKKyAgICAuLi5jb2x1bW5zLAorICBdOworCisgIGNv bnN0IEhlYWRlclJlbmRlcmVyID0gKHByb3BzKT0+eworICAgIHJldHVybiA8U2VsZWN0YWJsZUhl YWRlclJlbmRlcmVyIHsuLi5wcm9wc30gc2VsZWN0ZWRDb2x1bW5zPXtzZWxlY3RlZENvbHVtbnN9 IG9uU2VsZWN0ZWRDb2x1bW5zQ2hhbmdlPXtvblNlbGVjdGVkQ29sdW1uc0NoYW5nZX0vPjsKKyAg fTsKKworICBmb3IoY29uc3QgW2lkeCwgY29sXSBvZiByZXRDb2x1bW5zLmVudHJpZXMoKSkgewor ICAgIGNvbC5oZWFkZXJSZW5kZXJlciA9IEhlYWRlclJlbmRlcmVyOworICAgIGNvbC5jZWxsQ2xh c3MgPSBjZWxsQ2xhc3NHZXR0ZXIoY29sLCBjbGFzc2VzLCBzZWxlY3RlZENvbHVtbnMuaGFzKGlk eCksIGRhdGFDaGFuZ2VTdG9yZSwgcm93S2V5R2V0dGVyKTsKKyAgfQorCisgIGxldCByb3dOdW1D b2wgPSByZXRDb2x1bW5zWzBdOworICByb3dOdW1Db2wuaGVhZGVyUmVuZGVyZXIgPSB1bmRlZmlu ZWQ7CisgIHJvd051bUNvbC5mb3JtYXR0ZXIgPSAoe3Jvdywgcm93SWR4fSk9PnsKKyAgICBjb25z dCBbaXNSb3dTZWxlY3RlZCwgb25Sb3dTZWxlY3Rpb25DaGFuZ2VdID0gdXNlUm93U2VsZWN0aW9u KCk7CisgICAgbGV0IHJvd0tleSA9IHJvd0tleUdldHRlcihyb3cpOworICAgIGxldCByb3dudW0g PSByb3dJZHgrMTsKKyAgICBpZihyb3dLZXkgaW4gKGRhdGFDaGFuZ2VTdG9yZT8uYWRkZWQgfHwg e30pKSB7CisgICAgICByb3dudW0gPSByb3dudW0rJysnOworICAgIH0gZWxzZSBpZihyb3dLZXkg aW4gKGRhdGFDaGFuZ2VTdG9yZT8uZGVsZXRlZCB8fCB7fSkpIHsKKyAgICAgIHJvd251bSA9IHJv d251bSsnLSc7CisgICAgfQorICAgIHJldHVybiAoPGRpdiBjbGFzc05hbWU9e2NsYXNzZXMucm93 TnVtQ2VsbH0gb25DbGljaz17KCk9PnsKKyAgICAgIG9uU2VsZWN0ZWRDb2x1bW5zQ2hhbmdlKG5l dyBTZXQoKSk7CisgICAgICBvblJvd1NlbGVjdGlvbkNoYW5nZSh7IHJvdzogcm93LCBjaGVja2Vk OiAhaXNSb3dTZWxlY3RlZCwgaXNTaGlmdENsaWNrOiBmYWxzZX0pOworICAgIH19PgorICAgICAg e3Jvd251bX0KKyAgICA8L2Rpdj4pOworICB9OworCisgIHJldHVybiByZXRDb2x1bW5zOworfQor CitmdW5jdGlvbiBnZXRUZXh0V2lkdGgoY29sdW1uLCByb3dzLCBjYW52YXMpIHsKKyAgY29uc3Qg cmVkdWNlciA9IChsb25nZXN0LCBuZXh0Um93KSA9PiB7CisgICAgbGV0IHZhbHVlID0gbmV4dFJv d1tjb2x1bW4ua2V5XTsKKyAgICBpZihfLmlzTnVsbCh2YWx1ZSkgfHwgXy5pc1VuZGVmaW5lZCh2 YWx1ZSkpIHsKKyAgICAgIHZhbHVlID0gJyc7CisgICAgfQorICAgIHZhbHVlID0gdmFsdWUudG9T dHJpbmcoKTsKKyAgICByZXR1cm4gbG9uZ2VzdC5sZW5ndGggPiB2YWx1ZS5sZW5ndGggPyBsb25n ZXN0IDogdmFsdWU7CisgIH07CisKKyAgbGV0IGNvbHVtbkhlYWRlckxlbiA9IGNvbHVtbi5kaXNw bGF5X25hbWUubGVuZ3RoID4gY29sdW1uLmRpc3BsYXlfdHlwZS5sZW5ndGggPworICAgIGNhbnZh cy5tZWFzdXJlVGV4dChjb2x1bW4uZGlzcGxheV9uYW1lKS53aWR0aCA6IGNhbnZhcy5tZWFzdXJl VGV4dChjb2x1bW4uZGlzcGxheV90eXBlKS53aWR0aDsKKyAgLyogcGFkZGluZyAxMiwgaWNvbi13 aWR0aCAxNSAqLworICBjb2x1bW5IZWFkZXJMZW4gKz0gMTUgKyAxMjsKKyAgaWYoY29sdW1uLmNv bHVtbl90eXBlX2ludGVybmFsID09ICdnZW9tZXRyeScgfHwgY29sdW1uLmNvbHVtbl90eXBlX2lu dGVybmFsID09ICdnZW9ncmFwaHknKSB7CisgICAgY29sdW1uSGVhZGVyTGVuICs9IDI1OworICB9 CisgIC8qIHBhZGRpbmcgMTYgKi8KKyAgbGV0IG1heFdpZHRoID0gMTYgKyBNYXRoLmNlaWwoY2Fu dmFzLm1lYXN1cmVUZXh0KHJvd3MucmVkdWNlKHJlZHVjZXIsICcnKSkud2lkdGgpOworICBpZiht YXhXaWR0aCA8IGNvbHVtbkhlYWRlckxlbikgeworICAgIG1heFdpZHRoID0gY29sdW1uSGVhZGVy TGVuOworICB9CisgIC8qIEdyYWNlZnVsbCAqLworICBtYXhXaWR0aCArPSAyOworICByZXR1cm4g bWF4V2lkdGg7Cit9CisKK2V4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIFF1ZXJ5VG9vbERhdGFHcmlk KHtjb2x1bW5zLCByb3dzLCB0b3RhbFJvd0NvdW50LCBkYXRhQ2hhbmdlU3RvcmUsCisgIG9uU2Vs ZWN0ZWRDZWxsQ2hhbmdlLCByb3dzUmVzZXRLZXksIHNlbGVjdGVkQ29sdW1ucywgb25TZWxlY3Rl ZENvbHVtbnNDaGFuZ2UsIC4uLnByb3BzfSkgeworICBjb25zdCBjbGFzc2VzID0gdXNlU3R5bGVz KCk7CisgIGNvbnN0IFtyZWFkeUNvbHVtbnMsIHNldENvbHVtbnNdID0gdXNlU3RhdGUoW10pOwor ICBjb25zdCBldmVudEJ1cyA9IHVzZUNvbnRleHQoUXVlcnlUb29sRXZlbnRzQ29udGV4dCk7Cisg IGNvbnN0IG9uU2VsZWN0ZWRDb2x1bW5zQ2hhbmdlV3JhcHBlZCA9IChhcmcpPT57CisgICAgcHJv cHMub25TZWxlY3RlZFJvd3NDaGFuZ2UobmV3IFNldCgpKTsKKyAgICBvblNlbGVjdGVkQ29sdW1u c0NoYW5nZShhcmcpOworICB9OworCisgIHVzZUVmZmVjdCgoKT0+eworICAgIGlmKGNvbHVtbnMu bGVuZ3RoID4gMCB8fCByb3dzLmxlbmd0aCA+IDApIHsKKyAgICAgIGxldCBpbml0Q29scyA9IGlu aXRpYWxpc2VDb2x1bW5zKGNvbHVtbnMsIHJvd3MsIHRvdGFsUm93Q291bnQpOworICAgICAgc2V0 Q29sdW1ucyhmb3JtYXRDb2x1bW5zKGluaXRDb2xzLCBkYXRhQ2hhbmdlU3RvcmUsIHNlbGVjdGVk Q29sdW1ucywgb25TZWxlY3RlZENvbHVtbnNDaGFuZ2VXcmFwcGVkLCBwcm9wcy5yb3dLZXlHZXR0 ZXIsIGNsYXNzZXMpKTsKKyAgICB9IGVsc2UgeworICAgICAgc2V0Q29sdW1ucyhbXSwgW10sIDAp OworICAgIH0KKyAgfSwgW2NvbHVtbnMsIHJvd3NSZXNldEtleV0pOworCisgIHVzZUVmZmVjdCgo KT0+eworICAgIHNldENvbHVtbnMoKHByZXZDb2xzKT0+eworICAgICAgcmV0dXJuIGZvcm1hdENv bHVtbnMocHJldkNvbHMsIGRhdGFDaGFuZ2VTdG9yZSwgc2VsZWN0ZWRDb2x1bW5zLCBvblNlbGVj dGVkQ29sdW1uc0NoYW5nZVdyYXBwZWQsIHByb3BzLnJvd0tleUdldHRlciwgY2xhc3Nlcyk7Cisg ICAgfSk7CisgIH0sIFtkYXRhQ2hhbmdlU3RvcmUsIHNlbGVjdGVkQ29sdW1uc10pOworCisgIGNv bnN0IG9uUm93Q2xpY2sgPSB1c2VDYWxsYmFjaygocm93LCBjb2x1bW4pPT57CisgICAgaWYoY29s dW1uLmtleSA9PT0gUk9XTlVNX0tFWSkgeworICAgICAgb25TZWxlY3RlZENlbGxDaGFuZ2UgJiYg b25TZWxlY3RlZENlbGxDaGFuZ2UobnVsbCk7CisgICAgfSBlbHNlIHsKKyAgICAgIG9uU2VsZWN0 ZWRDZWxsQ2hhbmdlICYmIG9uU2VsZWN0ZWRDZWxsQ2hhbmdlKFtyb3csIGNvbHVtbl0pOworICAg IH0KKyAgfSwgW10pOworCisgIGZ1bmN0aW9uIGhhbmRsZUNvcHkoKSB7CisgICAgaWYgKHdpbmRv dy5pc1NlY3VyZUNvbnRleHQpIHsKKyAgICAgIGV2ZW50QnVzLmZpcmVFdmVudChRVUVSWV9UT09M X0VWRU5UUy5UUklHR0VSX0NPUFlfREFUQSk7CisgICAgfQorICB9CisKKyAgcmV0dXJuIDxSZWFj dERhdGFHcmlkCisgICAgY29sdW1ucz17cmVhZHlDb2x1bW5zfQorICAgIHJvd3M9e3Jvd3N9Cisg ICAgY2xhc3NOYW1lPXtjbGFzc2VzLnJvb3R9CisgICAgaGVhZGVyUm93SGVpZ2h0PXs0MH0KKyAg ICByb3dIZWlnaHQ9ezI1fQorICAgIG1pbkNvbHVtbldpZHRoPXs1MH0KKyAgICBlbmFibGVDZWxs U2VsZWN0PXt0cnVlfQorICAgIG9uUm93Q2xpY2s9e29uUm93Q2xpY2t9CisgICAgb25Db3B5PXto YW5kbGVDb3B5fQorICAgIHsuLi5wcm9wc30KKyAgLz47Cit9CisKK1F1ZXJ5VG9vbERhdGFHcmlk LnByb3BUeXBlcyA9IHsKKyAgY29sdW1uczogUHJvcFR5cGVzLmFycmF5LAorICByb3dzOiBQcm9w VHlwZXMuYXJyYXksCisgIHRvdGFsUm93Q291bnQ6IFByb3BUeXBlcy5udW1iZXIsCisgIGRhdGFD aGFuZ2VTdG9yZTogUHJvcFR5cGVzLm9iamVjdCwKKyAgb25TZWxlY3RlZENlbGxDaGFuZ2U6IFBy b3BUeXBlcy5mdW5jLAorICBvblNlbGVjdGVkUm93c0NoYW5nZTogUHJvcFR5cGVzLmZ1bmMsCisg IHNlbGVjdGVkQ29sdW1uczogUHJvcFR5cGVzLm9iamVjdE9mKFNldCksCisgIG9uU2VsZWN0ZWRD b2x1bW5zQ2hhbmdlOiBQcm9wVHlwZXMuZnVuYywKKyAgcm93S2V5R2V0dGVyOiBQcm9wVHlwZXMu ZnVuYywKKyAgcm93c1Jlc2V0S2V5OiBQcm9wVHlwZXMuYW55LAorfTsKZGlmZiAtLWdpdCBhL3dl Yi9wZ2FkbWluL3Rvb2xzL3NxbGVkaXRvci9zdGF0aWMvanMvY29tcG9uZW50cy9kaWFsb2dzL0Nv bmZpcm1TYXZlQ29udGVudC5qc3ggYi93ZWIvcGdhZG1pbi90b29scy9zcWxlZGl0b3Ivc3RhdGlj L2pzL2NvbXBvbmVudHMvZGlhbG9ncy9Db25maXJtU2F2ZUNvbnRlbnQuanN4Cm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMC4uZWY0OGI4YzMwCi0tLSAvZGV2L251bGwKKysrIGIv d2ViL3BnYWRtaW4vdG9vbHMvc3FsZWRpdG9yL3N0YXRpYy9qcy9jb21wb25lbnRzL2RpYWxvZ3Mv Q29uZmlybVNhdmVDb250ZW50LmpzeApAQCAtMCwwICsxLDM5IEBACitpbXBvcnQgUmVhY3QgZnJv bSAncmVhY3QnOworaW1wb3J0IHsgdXNlTW9kYWxTdHlsZXMgfSBmcm9tICcuLi8uLi8uLi8uLi8u Li8uLi9zdGF0aWMvanMvaGVscGVycy9Nb2RhbFByb3ZpZGVyJzsKK2ltcG9ydCBnZXR0ZXh0IGZy b20gJ3NvdXJjZXMvZ2V0dGV4dCc7CitpbXBvcnQgeyBCb3ggfSBmcm9tICdAbWF0ZXJpYWwtdWkv Y29yZSc7CitpbXBvcnQgeyBEZWZhdWx0QnV0dG9uLCBQcmltYXJ5QnV0dG9uIH0gZnJvbSAnLi4v Li4vLi4vLi4vLi4vLi4vc3RhdGljL2pzL2NvbXBvbmVudHMvQnV0dG9ucyc7CitpbXBvcnQgQ2xv c2VJY29uIGZyb20gJ0BtYXRlcmlhbC11aS9pY29ucy9DbG9zZVJvdW5kZWQnOworaW1wb3J0IENo ZWNrUm91bmRlZEljb24gZnJvbSAnQG1hdGVyaWFsLXVpL2ljb25zL0NoZWNrUm91bmRlZCc7Citp bXBvcnQgRGVsZXRlUm91bmRlZEljb24gZnJvbSAnQG1hdGVyaWFsLXVpL2ljb25zL0RlbGV0ZVJv dW5kZWQnOworaW1wb3J0IEhUTUxSZWFjdFBhcnNlciBmcm9tICdodG1sLXJlYWN0LXBhcnNlcic7 CitpbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnOworCitleHBvcnQgZGVmYXVsdCBm dW5jdGlvbiBDb25maXJtU2F2ZUNvbnRlbnQoe2Nsb3NlTW9kYWwsIHRleHQsIG9uRG9udFNhdmUs IG9uU2F2ZX0pIHsKKyAgY29uc3QgY2xhc3NlcyA9IHVzZU1vZGFsU3R5bGVzKCk7CisgIHJldHVy biAoCisgICAgPEJveCBkaXNwbGF5PSJmbGV4IiBmbGV4RGlyZWN0aW9uPSJjb2x1bW4iIGhlaWdo dD0iMTAwJSI+CisgICAgICA8Qm94IGZsZXhHcm93PSIxIiBwPXsyfT57dHlwZW9mKHRleHQpID09 ICdzdHJpbmcnID8gSFRNTFJlYWN0UGFyc2VyKHRleHQpIDogdGV4dH08L0JveD4KKyAgICAgIDxC b3ggY2xhc3NOYW1lPXtjbGFzc2VzLmZvb3Rlcn0+CisgICAgICAgIDxEZWZhdWx0QnV0dG9uIGRh dGEtdGVzdD0iY2xvc2UiIHN0YXJ0SWNvbj17PENsb3NlSWNvbiAvPn0gb25DbGljaz17KCk9PnsK KyAgICAgICAgICBjbG9zZU1vZGFsKCk7CisgICAgICAgIH19ID57Z2V0dGV4dCgnQ2FuY2VsJyl9 PC9EZWZhdWx0QnV0dG9uPgorICAgICAgICA8RGVmYXVsdEJ1dHRvbiBkYXRhLXRlc3Q9ImRvbnQt c2F2ZSIgY2xhc3NOYW1lPXtjbGFzc2VzLm1hcmdpbn0gc3RhcnRJY29uPXs8RGVsZXRlUm91bmRl ZEljb24gLz59IG9uQ2xpY2s9eygpPT57CisgICAgICAgICAgb25Eb250U2F2ZT8uKCk7CisgICAg ICAgICAgY2xvc2VNb2RhbCgpOworICAgICAgICB9fSA+e2dldHRleHQoJ0RvblwndCBzYXZlJyl9 PC9EZWZhdWx0QnV0dG9uPgorICAgICAgICA8UHJpbWFyeUJ1dHRvbiBkYXRhLXRlc3Q9InNhdmUi IGNsYXNzTmFtZT17Y2xhc3Nlcy5tYXJnaW59IHN0YXJ0SWNvbj17PENoZWNrUm91bmRlZEljb24g Lz59IG9uQ2xpY2s9eygpPT57CisgICAgICAgICAgb25TYXZlPy4oKTsKKyAgICAgICAgICBjbG9z ZU1vZGFsKCk7CisgICAgICAgIH19IGF1dG9Gb2N1cz17dHJ1ZX0gPntnZXR0ZXh0KCdTYXZlJyl9 PC9QcmltYXJ5QnV0dG9uPgorICAgICAgPC9Cb3g+CisgICAgPC9Cb3g+CisgICk7Cit9CisKK0Nv bmZpcm1TYXZlQ29udGVudC5wcm9wVHlwZXMgPSB7CisgIGNsb3NlTW9kYWw6IFByb3BUeXBlcy5m dW5jLAorICB0ZXh0OiBQcm9wVHlwZXMuc3RyaW5nLAorICBvbkRvbnRTYXZlOiBQcm9wVHlwZXMu ZnVuYywKKyAgb25TYXZlOiBQcm9wVHlwZXMuZnVuYworfTsKZGlmZiAtLWdpdCBhL3dlYi9wZ2Fk bWluL3Rvb2xzL3NxbGVkaXRvci9zdGF0aWMvanMvY29tcG9uZW50cy9kaWFsb2dzL0NvbmZpcm1U cmFuc2FjdGlvbkNvbnRlbnQuanN4IGIvd2ViL3BnYWRtaW4vdG9vbHMvc3FsZWRpdG9yL3N0YXRp Yy9qcy9jb21wb25lbnRzL2RpYWxvZ3MvQ29uZmlybVRyYW5zYWN0aW9uQ29udGVudC5qc3gKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwLi5iZmU4OGQ5N2YKLS0tIC9kZXYvbnVs bAorKysgYi93ZWIvcGdhZG1pbi90b29scy9zcWxlZGl0b3Ivc3RhdGljL2pzL2NvbXBvbmVudHMv ZGlhbG9ncy9Db25maXJtVHJhbnNhY3Rpb25Db250ZW50LmpzeApAQCAtMCwwICsxLDM4IEBACitp bXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnOworaW1wb3J0IHsgdXNlTW9kYWxTdHlsZXMgfSBmcm9t ICcuLi8uLi8uLi8uLi8uLi8uLi9zdGF0aWMvanMvaGVscGVycy9Nb2RhbFByb3ZpZGVyJzsKK2lt cG9ydCBnZXR0ZXh0IGZyb20gJ3NvdXJjZXMvZ2V0dGV4dCc7CitpbXBvcnQgeyBCb3ggfSBmcm9t ICdAbWF0ZXJpYWwtdWkvY29yZSc7CitpbXBvcnQgeyBEZWZhdWx0QnV0dG9uLCBQcmltYXJ5QnV0 dG9uIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vc3RhdGljL2pzL2NvbXBvbmVudHMvQnV0dG9u cyc7CitpbXBvcnQgQ2xvc2VJY29uIGZyb20gJ0BtYXRlcmlhbC11aS9pY29ucy9DbG9zZVJvdW5k ZWQnOworaW1wb3J0IEhUTUxSZWFjdFBhcnNlciBmcm9tICdodG1sLXJlYWN0LXBhcnNlcic7Citp bXBvcnQgeyBDb21taXRJY29uLCBSb2xsYmFja0ljb24gfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8u Li9zdGF0aWMvanMvY29tcG9uZW50cy9FeHRlcm5hbEljb24nOworaW1wb3J0IFByb3BUeXBlcyBm cm9tICdwcm9wLXR5cGVzJzsKKworZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gQ29uZmlybVRyYW5z YWN0aW9uQ29udGVudCh7Y2xvc2VNb2RhbCwgdGV4dCwgb25Sb2xsYmFjaywgb25Db21taXR9KSB7 CisgIGNvbnN0IGNsYXNzZXMgPSB1c2VNb2RhbFN0eWxlcygpOworICByZXR1cm4gKAorICAgIDxC b3ggZGlzcGxheT0iZmxleCIgZmxleERpcmVjdGlvbj0iY29sdW1uIiBoZWlnaHQ9IjEwMCUiPgor ICAgICAgPEJveCBmbGV4R3Jvdz0iMSIgcD17Mn0+e3R5cGVvZih0ZXh0KSA9PSAnc3RyaW5nJyA/ IEhUTUxSZWFjdFBhcnNlcih0ZXh0KSA6IHRleHR9PC9Cb3g+CisgICAgICA8Qm94IGNsYXNzTmFt ZT17Y2xhc3Nlcy5mb290ZXJ9PgorICAgICAgICA8RGVmYXVsdEJ1dHRvbiBkYXRhLXRlc3Q9ImNh bmNlbCIgc3RhcnRJY29uPXs8Q2xvc2VJY29uIC8+fSBvbkNsaWNrPXsoKT0+eworICAgICAgICAg IGNsb3NlTW9kYWwoKTsKKyAgICAgICAgfX0gPntnZXR0ZXh0KCdDYW5jZWwnKX08L0RlZmF1bHRC dXR0b24+CisgICAgICAgIDxQcmltYXJ5QnV0dG9uIGRhdGEtdGVzdD0icm9sbGJhY2siIGNsYXNz TmFtZT17Y2xhc3Nlcy5tYXJnaW59IHN0YXJ0SWNvbj17PFJvbGxiYWNrSWNvbiAvPn0gb25DbGlj az17KCk9PnsKKyAgICAgICAgICBvblJvbGxiYWNrPy4oKTsKKyAgICAgICAgICBjbG9zZU1vZGFs KCk7CisgICAgICAgIH19ID57Z2V0dGV4dCgnUm9sbGJhY2snKX08L1ByaW1hcnlCdXR0b24+Cisg ICAgICAgIDxQcmltYXJ5QnV0dG9uIGRhdGEtdGVzdD0iY29tbWl0IiBjbGFzc05hbWU9e2NsYXNz ZXMubWFyZ2lufSBzdGFydEljb249ezxDb21taXRJY29uIC8+fSBvbkNsaWNrPXsoKT0+eworICAg ICAgICAgIG9uQ29tbWl0Py4oKTsKKyAgICAgICAgICBjbG9zZU1vZGFsKCk7CisgICAgICAgIH19 IGF1dG9Gb2N1cz17dHJ1ZX0gPntnZXR0ZXh0KCdDb21taXQnKX08L1ByaW1hcnlCdXR0b24+Cisg ICAgICA8L0JveD4KKyAgICA8L0JveD4KKyAgKTsKK30KKworQ29uZmlybVRyYW5zYWN0aW9uQ29u dGVudC5wcm9wVHlwZXMgPSB7CisgIGNsb3NlTW9kYWw6IFByb3BUeXBlcy5mdW5jLAorICB0ZXh0 OiBQcm9wVHlwZXMuc3RyaW5nLAorICBvblJvbGxiYWNrOiBQcm9wVHlwZXMuZnVuYywKKyAgb25D b21taXQ6IFByb3BUeXBlcy5mdW5jCit9OwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vdG9vbHMv c3FsZWRpdG9yL3N0YXRpYy9qcy9jb21wb25lbnRzL2RpYWxvZ3MvRmlsdGVyRGlhbG9nLmpzeCBi L3dlYi9wZ2FkbWluL3Rvb2xzL3NxbGVkaXRvci9zdGF0aWMvanMvY29tcG9uZW50cy9kaWFsb2dz L0ZpbHRlckRpYWxvZy5qc3gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwLi4z MzZiNDdkMzEKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi90b29scy9zcWxlZGl0b3Iv c3RhdGljL2pzL2NvbXBvbmVudHMvZGlhbG9ncy9GaWx0ZXJEaWFsb2cuanN4CkBAIC0wLDAgKzEs MTU1IEBACisvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vCisvLworLy8gcGdBZG1pbiA0IC0gUG9zdGdyZVNRTCBUb29scworLy8KKy8v IENvcHlyaWdodCAoQykgMjAxMyAtIDIwMjIsIFRoZSBwZ0FkbWluIERldmVsb3BtZW50IFRlYW0K Ky8vIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgdGhlIFBvc3RncmVTUUwgTGljZW5j ZQorLy8KKy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vCitpbXBvcnQgeyBtYWtlU3R5bGVzIH0gZnJvbSAnQG1hdGVyaWFsLXVpL2Nv cmUnOworaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JzsKK2ltcG9ydCBTY2hlbWFWaWV3IGZyb20g Jy4uLy4uLy4uLy4uLy4uLy4uL3N0YXRpYy9qcy9TY2hlbWFWaWV3JzsKK2ltcG9ydCBCYXNlVUlT Y2hlbWEgZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vc3RhdGljL2pzL1NjaGVtYVZpZXcvYmFzZV9z Y2hlbWEudWknOworaW1wb3J0IGdldHRleHQgZnJvbSAnc291cmNlcy9nZXR0ZXh0JzsKK2ltcG9y dCB7IFF1ZXJ5VG9vbENvbnRleHQgfSBmcm9tICcuLi9RdWVyeVRvb2xDb21wb25lbnQnOworaW1w b3J0IHVybF9mb3IgZnJvbSAnc291cmNlcy91cmxfZm9yJzsKK2ltcG9ydCBQcm9wVHlwZXMgZnJv bSAncHJvcC10eXBlcyc7CisKK2NsYXNzIFNvcnRpbmdDb2xsZWN0aW9uIGV4dGVuZHMgQmFzZVVJ U2NoZW1hIHsKKyAgY29uc3RydWN0b3IoY29sdW1uT3B0aW9ucykgeworICAgIHN1cGVyKHsKKyAg ICAgIG5hbWU6IHVuZGVmaW5lZCwKKyAgICAgIG9yZGVyOiAnYXNjJywKKyAgICB9KTsKKyAgICB0 aGlzLmNvbHVtbk9wdGlvbnMgPSBjb2x1bW5PcHRpb25zOworICAgIHRoaXMucmVsb2FkQ29sT3B0 aW9ucyA9IDA7CisgIH0KKworICBzZXRDb2x1bW5PcHRpb25zKGNvbHVtbk9wdGlvbnMpIHsKKyAg ICB0aGlzLmNvbHVtbk9wdGlvbnMgPSBjb2x1bW5PcHRpb25zOworICAgIHRoaXMucmVsb2FkQ29s T3B0aW9ucyA9IHRoaXMucmVsb2FkQ29sT3B0aW9ucyArIDE7CisgIH0KKworICBnZXQgYmFzZUZp ZWxkcygpIHsKKyAgICByZXR1cm4gWworICAgICAgeworICAgICAgICBpZDogJ25hbWUnLCBsYWJl bDogZ2V0dGV4dCgnQ29sdW1uJyksIGNlbGw6ICdzZWxlY3QnLCBjb250cm9sUHJvcHM6IHsKKyAg ICAgICAgICBhbGxvd0NsZWFyOiBmYWxzZSwKKyAgICAgICAgfSwgbm9FbXB0eTogdHJ1ZSwgb3B0 aW9uczogdGhpcy5jb2x1bW5PcHRpb25zLCBvcHRpb25zUmVsb2FkQmFzaXM6IHRoaXMucmVsb2Fk Q29sT3B0aW9ucworICAgICAgfSwKKyAgICAgIHsKKyAgICAgICAgaWQ6ICdvcmRlcicsIGxhYmVs OiBnZXR0ZXh0KCdPcmRlcicpLCBjZWxsOiAnc2VsZWN0JywgY29udHJvbFByb3BzOiB7CisgICAg ICAgICAgYWxsb3dDbGVhcjogZmFsc2UsCisgICAgICAgIH0sIG9wdGlvbnM6IFsKKyAgICAgICAg ICB7bGFiZWw6IGdldHRleHQoJ0FTQycpLCB2YWx1ZTogJ2FzYyd9LAorICAgICAgICAgIHtsYWJl bDogZ2V0dGV4dCgnREVTQycpLCB2YWx1ZTogJ2Rlc2MnfSwKKyAgICAgICAgXQorICAgICAgfSwK KyAgICBdOworICB9Cit9CisKK2NsYXNzIEZpbHRlclNjaGVtYSBleHRlbmRzIEJhc2VVSVNjaGVt YSB7CisgIGNvbnN0cnVjdG9yKGNvbHVtbk9wdGlvbnMpIHsKKyAgICBzdXBlcih7CisgICAgICBz cWw6IG51bGwsCisgICAgICBkYXRhX3NvcnRpbmc6IFtdLAorICAgIH0pOworICAgIHRoaXMuc29y dGluZ0NvbGxPYmogPSBuZXcgU29ydGluZ0NvbGxlY3Rpb24oY29sdW1uT3B0aW9ucyk7CisgIH0K KworICBzZXRDb2x1bW5PcHRpb25zKGNvbHVtbk9wdGlvbnMpIHsKKyAgICB0aGlzLnNvcnRpbmdD b2xsT2JqLnNldENvbHVtbk9wdGlvbnMoY29sdW1uT3B0aW9ucyk7CisgIH0KKworICBnZXQgYmFz ZUZpZWxkcygpIHsKKyAgICBsZXQgb2JqID0gdGhpczsKKyAgICByZXR1cm4gWworICAgICAgewor ICAgICAgICBpZDogJ3NxbCcsIGxhYmVsOiBnZXR0ZXh0KCdTUUwgRmlsdGVyJyksIHR5cGU6ICdz cWwnLCBjb250cm9sUHJvcHM6IHsKKyAgICAgICAgICBvcHRpb25zOiB7CisgICAgICAgICAgICBs aW5lV3JhcHBpbmc6IHRydWUsCisgICAgICAgICAgfSwKKyAgICAgICAgfQorICAgICAgfSwKKyAg ICAgIHsKKyAgICAgICAgaWQ6ICdkYXRhX3NvcnRpbmcnLCBsYWJlbDogZ2V0dGV4dCgnRGF0YSBT b3J0aW5nJyksIHR5cGU6ICdjb2xsZWN0aW9uJywgc2NoZW1hOiBvYmouc29ydGluZ0NvbGxPYmos CisgICAgICAgIGdyb3VwOiAndGVtcCcsIHVuaXF1ZUNvbDogWyduYW1lJ10sIGNhbkFkZDogdHJ1 ZSwgY2FuRWRpdDogZmFsc2UsIGNhbkRlbGV0ZTogdHJ1ZSwKKyAgICAgIH0sCisgICAgXTsKKyAg fQorfQorCitjb25zdCB1c2VTdHlsZXMgPSBtYWtlU3R5bGVzKCh0aGVtZSk9Pih7CisgIHJvb3Q6 IHsKKyAgICAuLi50aGVtZS5taXhpbnMudGFiUGFuZWwsCisgIH0sCit9KSk7CisKK2V4cG9ydCBk ZWZhdWx0IGZ1bmN0aW9uIEZpbHRlckRpYWxvZyh7b25DbG9zZSwgb25TYXZlfSkgeworICBjb25z dCBjbGFzc2VzID0gdXNlU3R5bGVzKCk7CisgIGNvbnN0IHF1ZXJ5VG9vbEN0eCA9IFJlYWN0LnVz ZUNvbnRleHQoUXVlcnlUb29sQ29udGV4dCk7CisgIGNvbnN0IGZpbHRlclNjaGVtYU9iaiA9IFJl YWN0LnVzZU1lbW8oKCk9Pm5ldyBGaWx0ZXJTY2hlbWEoW10pKTsKKworICBjb25zdCBnZXRJbml0 RGF0YSA9ICgpPT57CisgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpPT57 CisgICAgICBjb25zdCBnZXRGaWx0ZXJEYXRhID0gYXN5bmMgKCk9PnsKKyAgICAgICAgdHJ5IHsK KyAgICAgICAgICBsZXQge2RhdGE6IHJlc3BEYXRhfSA9IGF3YWl0IHF1ZXJ5VG9vbEN0eC5hcGku Z2V0KHVybF9mb3IoJ3NxbGVkaXRvci5nZXRfZmlsdGVyX2RhdGEnLCB7CisgICAgICAgICAgICAn dHJhbnNfaWQnOiBxdWVyeVRvb2xDdHgucGFyYW1zLnRyYW5zX2lkLAorICAgICAgICAgIH0pKTsK KyAgICAgICAgICBsZXQge2NvbHVtbl9saXN0OiBjb2x1bW5zLCAuLi5maWx0ZXJEYXRhfSA9IHJl c3BEYXRhLmRhdGEucmVzdWx0OworICAgICAgICAgIGZpbHRlclNjaGVtYU9iai5zZXRDb2x1bW5P cHRpb25zKChjb2x1bW5zfHxbXSkubWFwKChjKT0+KHtsYWJlbDogYywgdmFsdWU6IGN9KSkpOwor ICAgICAgICAgIHJlc29sdmUoZmlsdGVyRGF0YSk7CisgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7 CisgICAgICAgICAgcmVqZWN0KGVycm9yKTsKKyAgICAgICAgfQorICAgICAgfTsKKyAgICAgIGdl dEZpbHRlckRhdGEoKTsKKyAgICB9KTsKKyAgfTsKKworICBjb25zdCBvblNhdmVDbGljayA9IChf aXNOZXcsIGNoYW5nZURhdGEpPT57CisgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCBy ZWplY3QpPT57CisgICAgICBjb25zdCBzZXRGaWx0ZXJEYXRhID0gYXN5bmMgKCk9PnsKKyAgICAg ICAgdHJ5IHsKKyAgICAgICAgICBsZXQge2RhdGE6IHJlc3BEYXRhfSA9IGF3YWl0IHF1ZXJ5VG9v bEN0eC5hcGkucHV0KHVybF9mb3IoJ3NxbGVkaXRvci5zZXRfZmlsdGVyX2RhdGEnLCB7CisgICAg ICAgICAgICAndHJhbnNfaWQnOiBxdWVyeVRvb2xDdHgucGFyYW1zLnRyYW5zX2lkLAorICAgICAg ICAgIH0pLCBjaGFuZ2VEYXRhKTsKKyAgICAgICAgICBpZihyZXNwRGF0YS5kYXRhLnN0YXR1cykg eworICAgICAgICAgICAgcmVzb2x2ZSgpOworICAgICAgICAgICAgb25TYXZlKCk7CisgICAgICAg ICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHJlamVjdChyZXNwRGF0YS5kYXRhLnJlc3VsdCk7Cisg ICAgICAgICAgfQorICAgICAgICB9IGNhdGNoIChlcnJvcikgeworICAgICAgICAgIHJlamVjdChl cnJvcik7CisgICAgICAgIH0KKyAgICAgIH07CisgICAgICBzZXRGaWx0ZXJEYXRhKCk7CisgICAg fSk7CisgIH07CisKKyAgcmV0dXJuICg8PgorICAgIDxTY2hlbWFWaWV3CisgICAgICBmb3JtVHlw ZT17J2RpYWxvZyd9CisgICAgICBnZXRJbml0RGF0YT17Z2V0SW5pdERhdGF9CisgICAgICBzY2hl bWE9e2ZpbHRlclNjaGVtYU9ian0KKyAgICAgIHZpZXdIZWxwZXJQcm9wcz17eworICAgICAgICBt b2RlOiAnY3JlYXRlJywKKyAgICAgIH19CisgICAgICBvblNhdmU9e29uU2F2ZUNsaWNrfQorICAg ICAgb25DbG9zZT17b25DbG9zZX0KKyAgICAgIGhhc1NRTD17ZmFsc2V9CisgICAgICBkaXNhYmxl U3FsSGVscD17dHJ1ZX0KKyAgICAgIGRpc2FibGVEaWFsb2dIZWxwPXt0cnVlfQorICAgICAgaXNU YWJWaWV3PXtmYWxzZX0KKyAgICAgIGZvcm1DbGFzc05hbWU9e2NsYXNzZXMucm9vdH0KKyAgICAv PgorICA8Lz4pOworfQorCitGaWx0ZXJEaWFsb2cucHJvcFR5cGVzID0geworICBvbkNsb3NlOiBQ cm9wVHlwZXMuZnVuYywKKyAgb25TYXZlOiBQcm9wVHlwZXMuZnVuYywKK307CmRpZmYgLS1naXQg YS93ZWIvcGdhZG1pbi90b29scy9zcWxlZGl0b3Ivc3RhdGljL2pzL2NvbXBvbmVudHMvZGlhbG9n cy9NYWNyb3NEaWFsb2cuanN4IGIvd2ViL3BnYWRtaW4vdG9vbHMvc3FsZWRpdG9yL3N0YXRpYy9q cy9jb21wb25lbnRzL2RpYWxvZ3MvTWFjcm9zRGlhbG9nLmpzeApuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwMDAuLmY2N2UxODg5OQotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2Fk bWluL3Rvb2xzL3NxbGVkaXRvci9zdGF0aWMvanMvY29tcG9uZW50cy9kaWFsb2dzL01hY3Jvc0Rp YWxvZy5qc3gKQEAgLTAsMCArMSwxODkgQEAKKy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vCisvLyBwZ0FkbWluIDQgLSBQb3N0 Z3JlU1FMIFRvb2xzCisvLworLy8gQ29weXJpZ2h0IChDKSAyMDEzIC0gMjAyMiwgVGhlIHBnQWRt aW4gRGV2ZWxvcG1lbnQgVGVhbQorLy8gVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciB0 aGUgUG9zdGdyZVNRTCBMaWNlbmNlCisvLworLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KK2ltcG9ydCB7IG1ha2VTdHlsZXMgfSBm cm9tICdAbWF0ZXJpYWwtdWkvY29yZSc7CitpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnOworaW1w b3J0IFNjaGVtYVZpZXcgZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vc3RhdGljL2pzL1NjaGVtYVZp ZXcnOworaW1wb3J0IEJhc2VVSVNjaGVtYSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9zdGF0aWMv anMvU2NoZW1hVmlldy9iYXNlX3NjaGVtYS51aSc7CitpbXBvcnQgZ2V0dGV4dCBmcm9tICdzb3Vy Y2VzL2dldHRleHQnOworaW1wb3J0IHsgUXVlcnlUb29sQ29udGV4dCB9IGZyb20gJy4uL1F1ZXJ5 VG9vbENvbXBvbmVudCc7CitpbXBvcnQgdXJsX2ZvciBmcm9tICdzb3VyY2VzL3VybF9mb3InOwor aW1wb3J0IF8gZnJvbSAnbG9kYXNoJzsKK2ltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBl cyc7CisKK2NsYXNzIE1hY3Jvc0NvbGxlY3Rpb24gZXh0ZW5kcyBCYXNlVUlTY2hlbWEgeworICBj b25zdHJ1Y3RvcihrZXlPcHRpb25zKSB7CisgICAgc3VwZXIoKTsKKyAgICB0aGlzLmtleU9wdGlv bnMgPSBrZXlPcHRpb25zOworICB9CisKKyAgZ2V0IGlkQXR0cmlidXRlKCkgeworICAgIHJldHVy biAnbWlkJzsKKyAgfQorCisgIGdldCBiYXNlRmllbGRzKCkgeworICAgIGxldCBvYmogPSB0aGlz OworICAgIHJldHVybiBbCisgICAgICB7CisgICAgICAgIGlkOiAnaWQnLCBsYWJlbDogZ2V0dGV4 dCgnS2V5JyksIGNlbGw6ICdzZWxlY3QnLCBub0VtcHR5OiB0cnVlLAorICAgICAgICB3aWR0aDog MTAwLCBvcHRpb25zOiBvYmoua2V5T3B0aW9ucywgb3B0aW9uc1JlbG9hZEJhc2lzOiBvYmoua2V5 T3B0aW9ucy5sZW5ndGgsCisgICAgICAgIGNvbnRyb2xQcm9wczogeworICAgICAgICAgIGFsbG93 Q2xlYXI6IGZhbHNlLAorICAgICAgICB9CisgICAgICB9LAorICAgICAgeworICAgICAgICBpZDog J25hbWUnLCBsYWJlbDogZ2V0dGV4dCgnTmFtZScpLCBjZWxsOiAndGV4dCcsIG5vRW1wdHk6IHRy dWUsCisgICAgICAgIHdpZHRoOiAxMDAsCisgICAgICB9LAorICAgICAgeworICAgICAgICBpZDog J3NxbCcsIGxhYmVsOiBnZXR0ZXh0KCdTUUwnKSwgY2VsbDogJ3NxbCcsIG5vRW1wdHk6IHRydWUs CisgICAgICAgIHdpZHRoOiAzMDAsIGNvbnRyb2xQcm9wczogeworICAgICAgICAgIG9wdGlvbnM6 IHsKKyAgICAgICAgICAgIGZvbGRHdXR0ZXI6IGZhbHNlLAorICAgICAgICAgICAgbGluZU51bWJl cnM6IGZhbHNlLAorICAgICAgICAgICAgZ3V0dGVyczogW10sCisgICAgICAgICAgICByZWFkT25s eTogdHJ1ZSwKKyAgICAgICAgICAgIGxpbmVXcmFwcGluZzogdHJ1ZSwKKyAgICAgICAgICB9LAor ICAgICAgICB9CisgICAgICB9LAorICAgIF07CisgIH0KK30KKworY2xhc3MgTWFjcm9zU2NoZW1h IGV4dGVuZHMgQmFzZVVJU2NoZW1hIHsKKyAgY29uc3RydWN0b3Ioa2V5T3B0aW9ucykgeworICAg IHN1cGVyKCk7CisgICAgdGhpcy5tYWNyb3NDb2xsT2JqID0gbmV3IE1hY3Jvc0NvbGxlY3Rpb24o a2V5T3B0aW9ucyk7CisgIH0KKworICBnZXQgYmFzZUZpZWxkcygpIHsKKyAgICBsZXQgb2JqID0g dGhpczsKKyAgICByZXR1cm4gWworICAgICAgeworICAgICAgICBpZDogJ21hY3JvJywgbGFiZWw6 ICcnLCB0eXBlOiAnY29sbGVjdGlvbicsIHNjaGVtYTogb2JqLm1hY3Jvc0NvbGxPYmosCisgICAg ICAgIGNhbkFkZDogdHJ1ZSwgY2FuRGVsZXRlOiB0cnVlLCBpc0Z1bGxUYWI6IHRydWUsIGdyb3Vw OiAndGVtcCcsCisgICAgICB9LAorICAgIF07CisgIH0KKworICB2YWxpZGF0ZShzdGF0ZSwgc2V0 RXJyb3IpIHsKKyAgICBsZXQgYWxsS2V5cyA9IHN0YXRlLm1hY3JvLm1hcCgobSk9Pm0uaWQudG9T dHJpbmcoKSk7CisgICAgaWYoYWxsS2V5cy5sZW5ndGggIT0gIG5ldyBTZXQoYWxsS2V5cykuc2l6 ZSkgeworICAgICAgc2V0RXJyb3IoJ21hY3JvJywgZ2V0dGV4dCgnS2V5IG11c3QgYmUgdW5pcXVl LicpKTsKKyAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAgICByZXR1cm4gZmFsc2U7CisgIH0K K30KKworY29uc3QgdXNlU3R5bGVzID0gbWFrZVN0eWxlcygodGhlbWUpPT4oeworICByb290OiB7 CisgICAgLi4udGhlbWUubWl4aW5zLnRhYlBhbmVsLAorICAgIHBhZGRpbmc6IDAsCisgIH0sCit9 KSk7CisKK2Z1bmN0aW9uIGdldENoYW5nZWRNYWNyb3MobWFjcm9zRGF0YSwgY2hhbmdlRGF0YSkg eworICAvKiBGb3IgYmFja2VuZCwgYWRkZWQsIHJlbW92ZWQgaXMgY2hhbmdlZC4gQ29udmVydCBh bGwgYWRkZWQsIHJlbW92ZWQgdG8gY2hhbmdlZC4gKi8KKyAgbGV0IGNoYW5nZWQgPSBbXTsKKyAg Zm9yIChjb25zdCBtIG9mIChjaGFuZ2VEYXRhLm1hY3JvLmNoYW5nZWQgfHwgW10pKSB7CisgICAg bGV0IG5ld00gPSB7Li4ubX07CisgICAgaWYoJ2lkJyBpbiBtKSB7CisgICAgICAvKiBpZiBrZXkg Y2hhbmdlZCwgY2xlYXIgcHJldiBhbmQgYWRkIG5ldyAqLworICAgICAgY2hhbmdlZC5wdXNoKHtp ZDogbS5taWQsIG5hbWU6IG51bGwsIHNxbDogbnVsbH0pOworICAgICAgbGV0IGVtID0gXy5maW5k KG1hY3Jvc0RhdGEsIChkKT0+ZC5taWQ9PW0ubWlkKTsKKyAgICAgIG5ld00gPSB7bmFtZTogZW0u bmFtZSwgc3FsOiBlbS5zcWwsIC4uLm19OworICAgIH0gZWxzZSB7CisgICAgICBuZXdNLmlkID0g bS5taWQ7CisgICAgfQorICAgIGRlbGV0ZSBuZXdNLm1pZDsKKyAgICBjaGFuZ2VkLnB1c2gobmV3 TSk7CisgIH0KKyAgZm9yIChjb25zdCBtIG9mIChjaGFuZ2VEYXRhLm1hY3JvLmRlbGV0ZWQgfHwg W10pKSB7CisgICAgY2hhbmdlZC5wdXNoKHtpZDogbS5pZCwgbmFtZTogbnVsbCwgc3FsOiBudWxs fSk7CisgIH0KKyAgZm9yIChjb25zdCBtIG9mIChjaGFuZ2VEYXRhLm1hY3JvLmFkZGVkIHx8IFtd KSkgeworICAgIGNoYW5nZWQucHVzaChtKTsKKyAgfQorICByZXR1cm4gY2hhbmdlZDsKK30KKwor ZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gTWFjcm9zRGlhbG9nKHtvbkNsb3NlLCBvblNhdmV9KSB7 CisgIGNvbnN0IGNsYXNzZXMgPSB1c2VTdHlsZXMoKTsKKyAgY29uc3QgcXVlcnlUb29sQ3R4ID0g UmVhY3QudXNlQ29udGV4dChRdWVyeVRvb2xDb250ZXh0KTsKKyAgY29uc3QgW21hY3Jvc0RhdGEs IHNldE1hY3Jvc0RhdGFdID0gUmVhY3QudXNlU3RhdGUoW10pOworICBjb25zdCBbbWFjcm9zRXJy LCBzZXRNYWNyb3NFcnJdID0gUmVhY3QudXNlU3RhdGUobnVsbCk7CisKKyAgUmVhY3QudXNlRWZm ZWN0KGFzeW5jICgpPT57CisgICAgdHJ5IHsKKyAgICAgIGxldCB7ZGF0YTogcmVzcERhdGF9ID0g YXdhaXQgcXVlcnlUb29sQ3R4LmFwaS5nZXQodXJsX2Zvcignc3FsZWRpdG9yLmdldF9tYWNyb3Mn LCB7CisgICAgICAgICd0cmFuc19pZCc6IHF1ZXJ5VG9vbEN0eC5wYXJhbXMudHJhbnNfaWQsCisg ICAgICB9KSk7CisgICAgICAvKiBDb3B5aW5nIGlkIHRvIG1pZCB0byB0cmFjayBrZXkgaWQgY2hh bmdlcyAqLworICAgICAgc2V0TWFjcm9zRGF0YShyZXNwRGF0YS5tYWNyby5tYXAoKG0pPT4oey4u Lm0sIG1pZDogbS5pZH0pKSk7CisgICAgfSBjYXRjaCAoZXJyb3IpIHsKKyAgICAgIHNldE1hY3Jv c0VycihlcnJvcik7CisgICAgfQorICB9LCBbXSk7CisKKyAgY29uc3Qgb25TYXZlQ2xpY2sgPSAo X2lzTmV3LCBjaGFuZ2VEYXRhKT0+eworICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwg cmVqZWN0KT0+eworICAgICAgY29uc3Qgc2V0TWFjcm9zID0gYXN5bmMgKCk9PnsKKyAgICAgICAg dHJ5IHsKKyAgICAgICAgICBsZXQgY2hhbmdlZCA9IGdldENoYW5nZWRNYWNyb3MobWFjcm9zRGF0 YSwgY2hhbmdlRGF0YSk7CisgICAgICAgICAgbGV0IHtkYXRhOiByZXNwRGF0YX0gPSBhd2FpdCBx dWVyeVRvb2xDdHguYXBpLnB1dCh1cmxfZm9yKCdzcWxlZGl0b3Iuc2V0X21hY3JvcycsIHsKKyAg ICAgICAgICAgICd0cmFuc19pZCc6IHF1ZXJ5VG9vbEN0eC5wYXJhbXMudHJhbnNfaWQsCisgICAg ICAgICAgfSksIHtjaGFuZ2VkOiBjaGFuZ2VkfSk7CisgICAgICAgICAgcmVzb2x2ZSgpOworICAg ICAgICAgIG9uU2F2ZShyZXNwRGF0YS5tYWNybz8uZmlsdGVyKChtKT0+Qm9vbGVhbihtLm5hbWUp KSk7CisgICAgICAgICAgb25DbG9zZSgpOworICAgICAgICB9IGNhdGNoIChlcnJvcikgeworICAg ICAgICAgIHJlamVjdChlcnJvcik7CisgICAgICAgIH0KKyAgICAgIH07CisgICAgICBzZXRNYWNy b3MoKTsKKyAgICB9KTsKKyAgfTsKKworICBjb25zdCBrZXlPcHRpb25zID0gbWFjcm9zRGF0YS5t YXAoKG0pPT4oeworICAgIGxhYmVsOiBtLmtleV9sYWJlbCwKKyAgICB2YWx1ZTogbS5pZCwKKyAg fSkpOworCisgIGlmKGtleU9wdGlvbnMubGVuZ3RoIDw9IDApIHsKKyAgICByZXR1cm4gPD48Lz47 CisgIH0KKyAgcmV0dXJuICg8PgorICAgIDxTY2hlbWFWaWV3CisgICAgICBmb3JtVHlwZT17J2Rp YWxvZyd9CisgICAgICBnZXRJbml0RGF0YT17KCk9PnsKKyAgICAgICAgaWYobWFjcm9zRXJyKSB7 CisgICAgICAgICAgcmV0dXJuIFByb21pc2UucmVqZWN0KG1hY3Jvc0Vycik7CisgICAgICAgIH0K KyAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh7bWFjcm86IG1hY3Jvc0RhdGEuZmlsdGVy KChtKT0+Qm9vbGVhbihtLm5hbWUpKX0pOworICAgICAgfX0KKyAgICAgIHNjaGVtYT17bmV3IE1h Y3Jvc1NjaGVtYShrZXlPcHRpb25zKX0KKyAgICAgIHZpZXdIZWxwZXJQcm9wcz17eworICAgICAg ICBtb2RlOiAnZWRpdCcsCisgICAgICB9fQorICAgICAgb25TYXZlPXtvblNhdmVDbGlja30KKyAg ICAgIG9uQ2xvc2U9e29uQ2xvc2V9CisgICAgICBoYXNTUUw9e2ZhbHNlfQorICAgICAgZGlzYWJs ZVNxbEhlbHA9e3RydWV9CisgICAgICBkaXNhYmxlRGlhbG9nSGVscD17dHJ1ZX0KKyAgICAgIGlz VGFiVmlldz17ZmFsc2V9CisgICAgICBmb3JtQ2xhc3NOYW1lPXtjbGFzc2VzLnJvb3R9CisgICAg Lz4KKyAgPC8+KTsKK30KKworTWFjcm9zRGlhbG9nLnByb3BUeXBlcyA9IHsKKyAgb25DbG9zZTog UHJvcFR5cGVzLmZ1bmMsCisgIG9uU2F2ZTogUHJvcFR5cGVzLmZ1bmMsCit9OwpkaWZmIC0tZ2l0 IGEvd2ViL3BnYWRtaW4vdG9vbHMvc3FsZWRpdG9yL3N0YXRpYy9qcy9jb21wb25lbnRzL2RpYWxv Z3MvTmV3Q29ubmVjdGlvbkRpYWxvZy5qc3ggYi93ZWIvcGdhZG1pbi90b29scy9zcWxlZGl0b3Iv c3RhdGljL2pzL2NvbXBvbmVudHMvZGlhbG9ncy9OZXdDb25uZWN0aW9uRGlhbG9nLmpzeApuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAuLmU3MDc3ZWUwOQotLS0gL2Rldi9udWxs CisrKyBiL3dlYi9wZ2FkbWluL3Rvb2xzL3NxbGVkaXRvci9zdGF0aWMvanMvY29tcG9uZW50cy9k aWFsb2dzL05ld0Nvbm5lY3Rpb25EaWFsb2cuanN4CkBAIC0wLDAgKzEsMTY3IEBACisvLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisv LworLy8gcGdBZG1pbiA0IC0gUG9zdGdyZVNRTCBUb29scworLy8KKy8vIENvcHlyaWdodCAoQykg MjAxMyAtIDIwMjIsIFRoZSBwZ0FkbWluIERldmVsb3BtZW50IFRlYW0KKy8vIFRoaXMgc29mdHdh cmUgaXMgcmVsZWFzZWQgdW5kZXIgdGhlIFBvc3RncmVTUUwgTGljZW5jZQorLy8KKy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCitp bXBvcnQgeyBtYWtlU3R5bGVzIH0gZnJvbSAnQG1hdGVyaWFsLXVpL2NvcmUnOworaW1wb3J0IFJl YWN0IGZyb20gJ3JlYWN0JzsKK2ltcG9ydCBTY2hlbWFWaWV3IGZyb20gJy4uLy4uLy4uLy4uLy4u Ly4uL3N0YXRpYy9qcy9TY2hlbWFWaWV3JzsKK2ltcG9ydCBCYXNlVUlTY2hlbWEgZnJvbSAnLi4v Li4vLi4vLi4vLi4vLi4vc3RhdGljL2pzL1NjaGVtYVZpZXcvYmFzZV9zY2hlbWEudWknOworaW1w b3J0IGdldHRleHQgZnJvbSAnc291cmNlcy9nZXR0ZXh0JzsKK2ltcG9ydCB7IFF1ZXJ5VG9vbENv bnRleHQgfSBmcm9tICcuLi9RdWVyeVRvb2xDb21wb25lbnQnOworaW1wb3J0IHVybF9mb3IgZnJv bSAnc291cmNlcy91cmxfZm9yJzsKK2ltcG9ydCBfIGZyb20gJ2xvZGFzaCc7CitpbXBvcnQgeyBm bGF0dGVuU2VsZWN0T3B0aW9ucyB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL3N0YXRpYy9qcy9j b21wb25lbnRzL0Zvcm1Db21wb25lbnRzJzsKK2ltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10 eXBlcyc7CisKK2NsYXNzIE5ld0Nvbm5lY3Rpb25TY2hlbWEgZXh0ZW5kcyBCYXNlVUlTY2hlbWEg eworICBjb25zdHJ1Y3RvcihhcGksIHBhcmFtcykgeworICAgIHN1cGVyKHsKKyAgICAgIHNpZDog bnVsbCwKKyAgICAgIGRpZDogbnVsbCwKKyAgICAgIHVzZXI6IG51bGwsCisgICAgICByb2xlOiBu dWxsLAorICAgICAgc2VydmVyX25hbWU6IG51bGwsCisgICAgICBkYXRhYmFzZV9uYW1lOiBudWxs LAorICAgIH0pOworICAgIHRoaXMuc2VydmVycyA9IFtdOworICAgIHRoaXMuZGJzID0gW107Cisg ICAgdGhpcy5wYXJhbXMgPSBwYXJhbXM7CisgICAgdGhpcy5hcGkgPSBhcGk7CisgICAgdGhpcy53 YXJuaW5nVGV4dCA9IGdldHRleHQoJ0J5IGNoYW5naW5nIHRoZSBjb25uZWN0aW9uIHlvdSB3aWxs IGxvc2UgYWxsIHlvdXIgdW5zYXZlZCBkYXRhIGZvciB0aGUgY3VycmVudCBjb25uZWN0aW9uLiA8 YnI+IERvIHlvdSB3YW50IHRvIGNvbnRpbnVlPycpOworICB9CisKKyAgZ2V0U2VydmVyTGlzdCgp IHsKKyAgICBsZXQgb2JqID0gdGhpczsKKyAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUs IHJlamVjdCk9PnsKKyAgICAgIHRoaXMuYXBpLmdldCh1cmxfZm9yKCdzcWxlZGl0b3IuZ2V0X25l d19jb25uZWN0aW9uX3NlcnZlcnMnKSkKKyAgICAgICAgLnRoZW4oKHtkYXRhOiByZXNwRGF0YX0p PT57CisgICAgICAgICAgbGV0IGdyb3VwZWRPcHRpb25zID0gW107CisgICAgICAgICAgXy5mb3JJ bihyZXNwRGF0YS5kYXRhLnJlc3VsdC5zZXJ2ZXJfbGlzdCwgKHYsIGspPT57CisgICAgICAgICAg ICBfLmZpbmQodiwgKG8pPT5vLnZhbHVlPT1vYmoucGFyYW1zLnNpZCkuc2VsZWN0ZWQgPSB0cnVl OworICAgICAgICAgICAgZ3JvdXBlZE9wdGlvbnMucHVzaCh7CisgICAgICAgICAgICAgIGxhYmVs OiBrLAorICAgICAgICAgICAgICBvcHRpb25zOiB2LAorICAgICAgICAgICAgfSk7CisgICAgICAg ICAgfSk7CisgICAgICAgICAgcmVzb2x2ZShncm91cGVkT3B0aW9ucyk7CisgICAgICAgIH0pCisg ICAgICAgIC5jYXRjaCgoZXJyb3IpPT57CisgICAgICAgICAgcmVqZWN0KGVycm9yKTsKKyAgICAg ICAgfSk7CisgICAgfSk7CisgIH0KKworICBnZXRPdGhlck9wdGlvbnMoc2lkLCB0eXBlKSB7Cisg ICAgaWYoIXNpZCkgeworICAgICAgcmV0dXJuIFtdOworICAgIH0KKyAgICByZXR1cm4gbmV3IFBy b21pc2UoKHJlc29sdmUsIHJlamVjdCk9PnsKKyAgICAgIHRoaXMuYXBpLmdldCh1cmxfZm9yKGBz cWxlZGl0b3IuJHt0eXBlfWAsIHsKKyAgICAgICAgJ3NpZCc6IHNpZCwKKyAgICAgICAgJ3NnaWQn OiAwLAorICAgICAgfSkpCisgICAgICAgIC50aGVuKCh7ZGF0YTogcmVzcERhdGF9KT0+eworICAg ICAgICAgIHJlc29sdmUocmVzcERhdGEuZGF0YS5yZXN1bHQuZGF0YSk7CisgICAgICAgIH0pCisg ICAgICAgIC5jYXRjaCgoZXJyb3IpPT57CisgICAgICAgICAgcmVqZWN0KGVycm9yKTsKKyAgICAg ICAgfSk7CisgICAgfSk7CisgIH0KKworICBnZXQgYmFzZUZpZWxkcygpIHsKKyAgICByZXR1cm4g WworICAgICAgeworICAgICAgICBpZDogJ3NpZCcsIGxhYmVsOiBnZXR0ZXh0KCdTZXJ2ZXInKSwg dHlwZTogJ3NlbGVjdCcsIG5vRW1wdHk6IHRydWUsCisgICAgICAgIGNvbnRyb2xQcm9wczogewor ICAgICAgICAgIGFsbG93Q2xlYXI6IGZhbHNlLAorICAgICAgICB9LCBvcHRpb25zOiAoKT0+dGhp cy5nZXRTZXJ2ZXJMaXN0KCksCisgICAgICAgIG9wdGlvbnNMb2FkZWQ6IChyZXMpPT50aGlzLnNl cnZlcnM9ZmxhdHRlblNlbGVjdE9wdGlvbnMocmVzKSwKKyAgICAgICAgZGVwQ2hhbmdlOiAoc3Rh dGUpPT57CisgICAgICAgICAgLyogT25jZSB0aGUgb3B0aW9uIGlzIHNlbGVjdGVkIGdldCB0aGUg bmFtZSAqLworICAgICAgICAgIHJldHVybiB7CisgICAgICAgICAgICBzZXJ2ZXJfbmFtZTogXy5m aW5kKHRoaXMuc2VydmVycywgKHMpPT5zLnZhbHVlPT1zdGF0ZS5zaWQpPy5sYWJlbCwKKyAgICAg ICAgICAgIGRpZDogbnVsbCwKKyAgICAgICAgICAgIHVzZXI6IG51bGwsCisgICAgICAgICAgICBy b2xlOiBudWxsLAorICAgICAgICAgIH07CisgICAgICAgIH0KKyAgICAgIH0sIHsKKyAgICAgICAg aWQ6ICdkaWQnLCBsYWJlbDogZ2V0dGV4dCgnRGF0YWJhc2UnKSwgZGVwczogWydzaWQnXSwgbm9F bXB0eTogdHJ1ZSwKKyAgICAgICAgY29udHJvbFByb3BzOiB7CisgICAgICAgICAgYWxsb3dDbGVh cjogZmFsc2UsCisgICAgICAgIH0sCisgICAgICAgIHR5cGU6IChzdGF0ZSk9Pih7CisgICAgICAg ICAgdHlwZTogJ3NlbGVjdCcsCisgICAgICAgICAgb3B0aW9uczogKCk9PnRoaXMuZ2V0T3RoZXJP cHRpb25zKHN0YXRlLnNpZCwgJ2dldF9uZXdfY29ubmVjdGlvbl9kYXRhYmFzZScpLAorICAgICAg ICAgIG9wdGlvbnNSZWxvYWRCYXNpczogc3RhdGUuc2lkLAorICAgICAgICB9KSwKKyAgICAgICAg b3B0aW9uc0xvYWRlZDogKHJlcyk9PnRoaXMuZGJzPXJlcywKKyAgICAgICAgZGVwQ2hhbmdlOiAo c3RhdGUpPT57CisgICAgICAgICAgLyogT25jZSB0aGUgb3B0aW9uIGlzIHNlbGVjdGVkIGdldCB0 aGUgbmFtZSAqLworICAgICAgICAgIHJldHVybiB7ZGF0YWJhc2VfbmFtZTogXy5maW5kKHRoaXMu ZGJzLCAocyk9PnMudmFsdWU9PXN0YXRlLmRpZCk/LmxhYmVsfTsKKyAgICAgICAgfQorICAgICAg fSx7CisgICAgICAgIGlkOiAndXNlcicsIGxhYmVsOiBnZXR0ZXh0KCdVc2VyJyksIGRlcHM6IFsn c2lkJ10sIG5vRW1wdHk6IHRydWUsCisgICAgICAgIGNvbnRyb2xQcm9wczogeworICAgICAgICAg IGFsbG93Q2xlYXI6IGZhbHNlLAorICAgICAgICB9LAorICAgICAgICB0eXBlOiAoc3RhdGUpPT4o eworICAgICAgICAgIHR5cGU6ICdzZWxlY3QnLAorICAgICAgICAgIG9wdGlvbnM6ICgpPT50aGlz LmdldE90aGVyT3B0aW9ucyhzdGF0ZS5zaWQsICdnZXRfbmV3X2Nvbm5lY3Rpb25fdXNlcicpLAor ICAgICAgICAgIG9wdGlvbnNSZWxvYWRCYXNpczogc3RhdGUuc2lkLAorICAgICAgICB9KSwKKyAg ICAgIH0seworICAgICAgICBpZDogJ3JvbGUnLCBsYWJlbDogZ2V0dGV4dCgnUm9sZScpLCBkZXBz OiBbJ3NpZCddLAorICAgICAgICB0eXBlOiAoc3RhdGUpPT4oeworICAgICAgICAgIHR5cGU6ICdz ZWxlY3QnLAorICAgICAgICAgIG9wdGlvbnM6ICgpPT50aGlzLmdldE90aGVyT3B0aW9ucyhzdGF0 ZS5zaWQsICdnZXRfbmV3X2Nvbm5lY3Rpb25fcm9sZScpLAorICAgICAgICAgIG9wdGlvbnNSZWxv YWRCYXNpczogc3RhdGUuc2lkLAorICAgICAgICB9KSwKKyAgICAgIH0seworICAgICAgICBpZDog J3NlcnZlcl9uYW1lJywgbGFiZWw6ICcnLCB0eXBlOiAndGV4dCcsIHZpc2libGU6IGZhbHNlLAor ICAgICAgfSx7CisgICAgICAgIGlkOiAnZGF0YWJhc2VfbmFtZScsIGxhYmVsOiAnJywgdHlwZTog J3RleHQnLCB2aXNpYmxlOiBmYWxzZSwKKyAgICAgIH0sCisgICAgXTsKKyAgfQorfQorCisKK2Nv bnN0IHVzZVN0eWxlcyA9IG1ha2VTdHlsZXMoKHRoZW1lKT0+KHsKKyAgcm9vdDogeworICAgIC4u LnRoZW1lLm1peGlucy50YWJQYW5lbCwKKyAgfSwKK30pKTsKKworZXhwb3J0IGRlZmF1bHQgZnVu Y3Rpb24gTmV3Q29ubmVjdGlvbkRpYWxvZyh7b25DbG9zZSwgb25TYXZlfSkgeworICBjb25zdCBj bGFzc2VzID0gdXNlU3R5bGVzKCk7CisgIGNvbnN0IHF1ZXJ5VG9vbEN0eCA9IFJlYWN0LnVzZUNv bnRleHQoUXVlcnlUb29sQ29udGV4dCk7CisKKyAgcmV0dXJuIDxTY2hlbWFWaWV3CisgICAgZm9y bVR5cGU9eydkaWFsb2cnfQorICAgIGdldEluaXREYXRhPXsoKT0+UHJvbWlzZS5yZXNvbHZlKHt9 KX0KKyAgICBzY2hlbWE9e25ldyBOZXdDb25uZWN0aW9uU2NoZW1hKHF1ZXJ5VG9vbEN0eC5hcGks IHsKKyAgICAgIHNpZDogcXVlcnlUb29sQ3R4LnBhcmFtcy5zaWQsIHNnaWQ6IDAsCisgICAgfSl9 CisgICAgdmlld0hlbHBlclByb3BzPXt7CisgICAgICBtb2RlOiAnY3JlYXRlJywKKyAgICB9fQor ICAgIG9uU2F2ZT17b25TYXZlfQorICAgIG9uQ2xvc2U9e29uQ2xvc2V9CisgICAgaGFzU1FMPXtm YWxzZX0KKyAgICBkaXNhYmxlU3FsSGVscD17dHJ1ZX0KKyAgICBkaXNhYmxlRGlhbG9nSGVscD17 dHJ1ZX0KKyAgICBpc1RhYlZpZXc9e2ZhbHNlfQorICAgIGZvcm1DbGFzc05hbWU9e2NsYXNzZXMu cm9vdH0KKyAgLz47Cit9CisKK05ld0Nvbm5lY3Rpb25EaWFsb2cucHJvcFR5cGVzID0geworICBv bkNsb3NlOiBQcm9wVHlwZXMuZnVuYywKKyAgb25TYXZlOiBQcm9wVHlwZXMuZnVuYywKK307CmRp ZmYgLS1naXQgYS93ZWIvcGdhZG1pbi90b29scy9zcWxlZGl0b3Ivc3RhdGljL2pzL2NvbXBvbmVu dHMvc2VjdGlvbnMvQ29ubmVjdGlvbkJhci5qc3ggYi93ZWIvcGdhZG1pbi90b29scy9zcWxlZGl0 b3Ivc3RhdGljL2pzL2NvbXBvbmVudHMvc2VjdGlvbnMvQ29ubmVjdGlvbkJhci5qc3gKbmV3IGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwLi5lNmM3OTI2YmEKLS0tIC9kZXYvbnVsbAor KysgYi93ZWIvcGdhZG1pbi90b29scy9zcWxlZGl0b3Ivc3RhdGljL2pzL2NvbXBvbmVudHMvc2Vj dGlvbnMvQ29ubmVjdGlvbkJhci5qc3gKQEAgLTAsMCArMSwxNDcgQEAKKy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vCisvLyBw Z0FkbWluIDQgLSBQb3N0Z3JlU1FMIFRvb2xzCisvLworLy8gQ29weXJpZ2h0IChDKSAyMDEzIC0g MjAyMiwgVGhlIHBnQWRtaW4gRGV2ZWxvcG1lbnQgVGVhbQorLy8gVGhpcyBzb2Z0d2FyZSBpcyBy ZWxlYXNlZCB1bmRlciB0aGUgUG9zdGdyZVNRTCBMaWNlbmNlCisvLworLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KK2ltcG9ydCBS ZWFjdCBmcm9tICdyZWFjdCc7CitpbXBvcnQgeyBtYWtlU3R5bGVzIH0gZnJvbSAnQG1hdGVyaWFs LXVpL3N0eWxlcyc7CitpbXBvcnQgeyBCb3gsIENpcmN1bGFyUHJvZ3Jlc3MsIFRvb2x0aXAgfSBm cm9tICdAbWF0ZXJpYWwtdWkvY29yZSc7CitpbXBvcnQgeyBEZWZhdWx0QnV0dG9uLCBQZ0J1dHRv bkdyb3VwLCBQZ0ljb25CdXR0b24gfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9zdGF0aWMvanMv Y29tcG9uZW50cy9CdXR0b25zJzsKK2ltcG9ydCBLZXlib2FyZEFycm93RG93bkljb24gZnJvbSAn QG1hdGVyaWFsLXVpL2ljb25zL0tleWJvYXJkQXJyb3dEb3duJzsKK2ltcG9ydCB7IENvbm5lY3Rl ZEljb24sIERpc29ubmVjdGVkSWNvbiwgUXVlcnlUb29sSWNvbiB9IGZyb20gJy4uLy4uLy4uLy4u Ly4uLy4uL3N0YXRpYy9qcy9jb21wb25lbnRzL0V4dGVybmFsSWNvbic7CitpbXBvcnQgeyBRdWVy eVRvb2xDb250ZXh0IH0gZnJvbSAnLi4vUXVlcnlUb29sQ29tcG9uZW50JzsKK2ltcG9ydCB7IENP Tk5FQ1RJT05fU1RBVFVTLCBDT05ORUNUSU9OX1NUQVRVU19NRVNTQUdFIH0gZnJvbSAnLi4vUXVl cnlUb29sQ29uc3RhbnRzJzsKK2ltcG9ydCBIb3VyZ2xhc3NFbXB0eVJvdW5kZWRJY29uIGZyb20g J0BtYXRlcmlhbC11aS9pY29ucy9Ib3VyZ2xhc3NFbXB0eVJvdW5kZWQnOworaW1wb3J0IFF1ZXJ5 QnVpbGRlclJvdW5kZWRJY29uIGZyb20gJ0BtYXRlcmlhbC11aS9pY29ucy9RdWVyeUJ1aWxkZXJS b3VuZGVkJzsKK2ltcG9ydCBFcnJvck91dGxpbmVSb3VuZGVkSWNvbiBmcm9tICdAbWF0ZXJpYWwt dWkvaWNvbnMvRXJyb3JPdXRsaW5lUm91bmRlZCc7CitpbXBvcnQgUmVwb3J0UHJvYmxlbVJvdW5k ZWRJY29uIGZyb20gJ0BtYXRlcmlhbC11aS9pY29ucy9SZXBvcnRQcm9ibGVtUm91bmRlZCc7Citp bXBvcnQgeyBQZ01lbnUsIFBnTWVudUl0ZW0gfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9zdGF0 aWMvanMvY29tcG9uZW50cy9NZW51JzsKK2ltcG9ydCBnZXR0ZXh0IGZyb20gJ3NvdXJjZXMvZ2V0 dGV4dCc7CitpbXBvcnQgUm90YXRlTGVmdFJvdW5kZWRJY29uIGZyb20gJ0BtYXRlcmlhbC11aS9p Y29ucy9Sb3RhdGVMZWZ0Um91bmRlZCc7CitpbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlw ZXMnOworCitjb25zdCB1c2VTdHlsZXMgPSBtYWtlU3R5bGVzKCh0aGVtZSk9Pih7CisgIHJvb3Q6 IHsKKyAgICBwYWRkaW5nOiAnMnB4IDRweCcsCisgICAgZGlzcGxheTogJ2ZsZXgnLAorICAgIGFs aWduSXRlbXM6ICdjZW50ZXInLAorICAgIGdhcDogJzRweCcsCisgICAgYmFja2dyb3VuZENvbG9y OiB0aGVtZS5vdGhlclZhcnMuZWRpdG9yVG9vbGJhckJnLAorICB9LAorICBjb25uZWN0aW9uQnV0 dG9uOiB7CisgICAgZGlzcGxheTogJ2ZsZXgnLAorICAgIHdpZHRoOiAnNDUwcHgnLAorICAgIGJh Y2tncm91bmRDb2xvcjogdGhlbWUucGFsZXR0ZS5kZWZhdWx0Lm1haW4sCisgICAgY29sb3I6IHRo ZW1lLnBhbGV0dGUuZGVmYXVsdC5jb250cmFzdFRleHQsCisgICAgYm9yZGVyOiAnMXB4IHNvbGlk ICcgKyB0aGVtZS5wYWxldHRlLmRlZmF1bHQuYm9yZGVyQ29sb3IsCisgICAganVzdGlmeUNvbnRl bnQ6ICdmbGV4LXN0YXJ0JywKKyAgfSwKKyAgdmlld0RhdGFDb25uVGl0bGU6IHsKKyAgICBtYXJn aW5Ub3A6ICdhdXRvJywKKyAgICBtYXJnaW5Cb3R0b206ICdhdXRvJywKKyAgICBwYWRkaW5nOiAn MHB4IDRweCcsCisgIH0sCisgIG1lbnU6IHsKKyAgICAnJiAuc3poLW1lbnUnOiB7CisgICAgICBt aW5XaWR0aDogJzQ1MHB4JywKKyAgICB9CisgIH0KK30pKTsKKworZnVuY3Rpb24gQ29ubmVjdGlv blN0YXR1c0ljb24oe2Nvbm5lY3RlZCwgY29ubmVjdGluZywgc3RhdHVzfSkgeworICBpZihjb25u ZWN0aW5nKSB7CisgICAgcmV0dXJuIDxDaXJjdWxhclByb2dyZXNzIHN0eWxlPXt7aGVpZ2h0OiAn MThweCcsIHdpZHRoOiAnMThweCd9fSAvPjsKKyAgfSBlbHNlIGlmKGNvbm5lY3RlZCkgeworICAg IHN3aXRjaCAoc3RhdHVzKSB7CisgICAgY2FzZSBDT05ORUNUSU9OX1NUQVRVUy5UUkFOU0FDVElP Tl9TVEFUVVNfQUNUSVZFOgorICAgICAgcmV0dXJuIDxIb3VyZ2xhc3NFbXB0eVJvdW5kZWRJY29u IC8+OworICAgIGNhc2UgQ09OTkVDVElPTl9TVEFUVVMuVFJBTlNBQ1RJT05fU1RBVFVTX0lOVFJB TlM6CisgICAgICByZXR1cm4gPFF1ZXJ5QnVpbGRlclJvdW5kZWRJY29uIC8+OworICAgIGNhc2Ug Q09OTkVDVElPTl9TVEFUVVMuVFJBTlNBQ1RJT05fU1RBVFVTX0lORVJST1I6CisgICAgICByZXR1 cm4gPEVycm9yT3V0bGluZVJvdW5kZWRJY29uIC8+OworICAgIGNhc2UgQ09OTkVDVElPTl9TVEFU VVMuVFJBTlNBQ1RJT05fU1RBVFVTX1VOS05PV046CisgICAgICByZXR1cm4gPFJlcG9ydFByb2Js ZW1Sb3VuZGVkSWNvbiAvPjsKKyAgICBkZWZhdWx0OgorICAgICAgcmV0dXJuIDxDb25uZWN0ZWRJ Y29uIC8+OworICAgIH0KKyAgfSBlbHNlIHsKKyAgICByZXR1cm4gPERpc29ubmVjdGVkSWNvbiAv PjsKKyAgfQorfQorCitDb25uZWN0aW9uU3RhdHVzSWNvbi5wcm9wVHlwZXMgPSB7CisgIGNvbm5l Y3RlZDogUHJvcFR5cGVzLmJvb2wsCisgIGNvbm5lY3Rpbmc6IFByb3BUeXBlcy5ib29sLAorICBz dGF0dXM6IFByb3BUeXBlcy5vbmVPZihPYmplY3QudmFsdWVzKENPTk5FQ1RJT05fU1RBVFVTKSks Cit9OworCitleHBvcnQgZnVuY3Rpb24gQ29ubmVjdGlvbkJhcih7Y29ubmVjdGVkLCBjb25uZWN0 aW5nLCBjb25uZWN0aW9uU3RhdHVzLCBjb25uZWN0aW9uU3RhdHVzTXNnLAorICBjb25uZWN0aW9u TGlzdCwgb25Db25uZWN0aW9uQ2hhbmdlLCBvbk5ld0Nvbm5DbGljaywgb25OZXdRdWVyeVRvb2xD bGljaywgb25SZXNldExheW91dH0pIHsKKyAgY29uc3QgY2xhc3NlcyA9IHVzZVN0eWxlcygpOwor ICBjb25zdCBjb25uTWVudVJlZiA9IFJlYWN0LnVzZVJlZigpOworICBjb25zdCBbY29ubkRyb3Bk b3duT3Blbiwgc2V0Q29ubkRyb3Bkb3duT3Blbl0gPSBSZWFjdC51c2VTdGF0ZShmYWxzZSk7Cisg IGNvbnN0IHF1ZXJ5VG9vbEN0eCA9IFJlYWN0LnVzZUNvbnRleHQoUXVlcnlUb29sQ29udGV4dCk7 CisgIGNvbnN0IG9uQ29ubkl0ZW1DbGljayA9IChlKT0+eworICAgIGlmKCFlLnZhbHVlLmlzX3Nl bGVjdGVkKSB7CisgICAgICBvbkNvbm5lY3Rpb25DaGFuZ2UoZS52YWx1ZSk7CisgICAgfQorICAg IGUua2VlcE9wZW4gPSBmYWxzZTsKKyAgfTsKKworICBjb25zdCBjb25uVGl0bGUgPSBSZWFjdC51 c2VNZW1vKCgpPT5fLmZpbmQoY29ubmVjdGlvbkxpc3QsIChjKT0+Yy5pc19zZWxlY3RlZCk/LmNv bm5fdGl0bGUsIFtjb25uZWN0aW9uTGlzdF0pOworICByZXR1cm4gKAorICAgIDw+CisgICAgICA8 Qm94IGNsYXNzTmFtZT17Y2xhc3Nlcy5yb290fT4KKyAgICAgICAgPFBnQnV0dG9uR3JvdXAgc2l6 ZT0ic21hbGwiPgorICAgICAgICAgIDxQZ0ljb25CdXR0b24gdGl0bGU9e0NPTk5FQ1RJT05fU1RB VFVTX01FU1NBR0VbY29ubmVjdGVkID8gY29ubmVjdGlvblN0YXR1cyA6IC0xXSA/PyBjb25uZWN0 aW9uU3RhdHVzTXNnfQorICAgICAgICAgICAgaWNvbj17PENvbm5lY3Rpb25TdGF0dXNJY29uIGNv bm5lY3Rpbmc9e2Nvbm5lY3Rpbmd9IHN0YXR1cz17Y29ubmVjdGlvblN0YXR1c30gY29ubmVjdGVk PXtjb25uZWN0ZWR9Lz59CisgICAgICAgICAgLz4KKyAgICAgICAgICA8RGVmYXVsdEJ1dHRvbiBj bGFzc05hbWU9e2NsYXNzZXMuY29ubmVjdGlvbkJ1dHRvbn0gcmVmPXtjb25uTWVudVJlZn0KKyAg ICAgICAgICAgIG9uQ2xpY2s9e3F1ZXJ5VG9vbEN0eC5wYXJhbXMuaXNfcXVlcnlfdG9vbCA/ICgp PT5zZXRDb25uRHJvcGRvd25PcGVuKHRydWUpIDogdW5kZWZpbmVkfQorICAgICAgICAgICAgc3R5 bGU9e3tiYWNrZ3JvdW5kQ29sb3I6IHF1ZXJ5VG9vbEN0eC5wYXJhbXMuYmdjb2xvciwgY29sb3I6 IHF1ZXJ5VG9vbEN0eC5wYXJhbXMuZmdjb2xvcn19CisgICAgICAgICAgPgorICAgICAgICAgICAg PFRvb2x0aXAgdGl0bGU9e3F1ZXJ5VG9vbEN0eC5wYXJhbXMuaXNfcXVlcnlfdG9vbCA/ICcnIDog Y29ublRpdGxlfT4KKyAgICAgICAgICAgICAgPEJveCBkaXNwbGF5PSJmbGV4IiB3aWR0aD0iMTAw JSI+CisgICAgICAgICAgICAgICAgPEJveCB0ZXh0T3ZlcmZsb3c9ImVsbGlwc2lzIiBvdmVyZmxv dz0iaGlkZGVuIiBtYXJnaW5SaWdodD0iYXV0byI+e2Nvbm5lY3RpbmcgJiYgJyhPYnRhaW5pbmcg Y29ubmVjdGlvbiknfXtjb25uVGl0bGV9PC9Cb3g+CisgICAgICAgICAgICAgICAge3F1ZXJ5VG9v bEN0eC5wYXJhbXMuaXNfcXVlcnlfdG9vbCAmJiA8Qm94PjxLZXlib2FyZEFycm93RG93bkljb24g Lz48L0JveD59CisgICAgICAgICAgICAgIDwvQm94PgorICAgICAgICAgICAgPC9Ub29sdGlwPgor ICAgICAgICAgIDwvRGVmYXVsdEJ1dHRvbj4KKyAgICAgICAgICA8UGdJY29uQnV0dG9uIHRpdGxl PSJOZXcgcXVlcnkgdG9vbCIgaWNvbj17PFF1ZXJ5VG9vbEljb24gLz59IG9uQ2xpY2s9e29uTmV3 UXVlcnlUb29sQ2xpY2t9Lz4KKyAgICAgICAgPC9QZ0J1dHRvbkdyb3VwPgorICAgICAgICA8UGdC dXR0b25Hcm91cCBzaXplPSJzbWFsbCIgdmFyaWFudD0idGV4dCIgc3R5bGU9e3ttYXJnaW5MZWZ0 OiAnYXV0byd9fT4KKyAgICAgICAgICA8UGdJY29uQnV0dG9uIHRpdGxlPSJSZXNldCBsYXlvdXQi IGljb249ezxSb3RhdGVMZWZ0Um91bmRlZEljb24gLz59IG9uQ2xpY2s9e29uUmVzZXRMYXlvdXR9 Lz4KKyAgICAgICAgPC9QZ0J1dHRvbkdyb3VwPgorICAgICAgPC9Cb3g+CisgICAgICA8UGdNZW51 CisgICAgICAgIGFuY2hvclJlZj17Y29ubk1lbnVSZWZ9CisgICAgICAgIG9wZW49e2Nvbm5Ecm9w ZG93bk9wZW59CisgICAgICAgIG9uQ2xvc2U9eygpPT57c2V0Q29ubkRyb3Bkb3duT3BlbihmYWxz ZSk7fX0KKyAgICAgICAgY2xhc3NOYW1lPXtjbGFzc2VzLm1lbnV9CisgICAgICA+CisgICAgICAg IHsoY29ubmVjdGlvbkxpc3R8fFtdKS5tYXAoKGNvbm4pPT57CisgICAgICAgICAgcmV0dXJuICgK KyAgICAgICAgICAgIDxQZ01lbnVJdGVtIGtleT17Y29ubi5jb25uX3RpdGxlfSBoYXNDaGVjayBj aGVja2VkPXtjb25uLmlzX3NlbGVjdGVkfSB2YWx1ZT17Y29ubn0KKyAgICAgICAgICAgICAgb25D bGljaz17b25Db25uSXRlbUNsaWNrfT57Y29ubi5jb25uX3RpdGxlfTwvUGdNZW51SXRlbT4KKyAg ICAgICAgICApOworICAgICAgICB9KX0KKyAgICAgICAgPFBnTWVudUl0ZW0gb25DbGljaz17b25O ZXdDb25uQ2xpY2t9PntgPCAke2dldHRleHQoJ05ldyBjb25uZWN0aW9uLi4uJyl9ID5gfTwvUGdN ZW51SXRlbT4KKyAgICAgIDwvUGdNZW51PgorICAgIDwvPgorICApOworfQorCitDb25uZWN0aW9u QmFyLnByb3BUeXBlcyA9IHsKKyAgY29ubmVjdGVkOiBQcm9wVHlwZXMuYm9vbCwKKyAgY29ubmVj dGluZzogUHJvcFR5cGVzLmJvb2wsCisgIGNvbm5lY3Rpb25TdGF0dXM6IFByb3BUeXBlcy5vbmVP ZihPYmplY3QudmFsdWVzKENPTk5FQ1RJT05fU1RBVFVTKSksCisgIGNvbm5lY3Rpb25TdGF0dXNN c2c6IFByb3BUeXBlcy5zdHJpbmcsCisgIGNvbm5lY3Rpb25MaXN0OiBQcm9wVHlwZXMuYXJyYXks CisgIG9uQ29ubmVjdGlvbkNoYW5nZTogUHJvcFR5cGVzLmZ1bmMsCisgIG9uTmV3Q29ubkNsaWNr OiBQcm9wVHlwZXMuZnVuYywKKyAgb25OZXdRdWVyeVRvb2xDbGljazogUHJvcFR5cGVzLmZ1bmMs CisgIG9uUmVzZXRMYXlvdXQ6IFByb3BUeXBlcy5mdW5jLAorfTsKZGlmZiAtLWdpdCBhL3dlYi9w Z2FkbWluL3Rvb2xzL3NxbGVkaXRvci9zdGF0aWMvanMvY29tcG9uZW50cy9zZWN0aW9ucy9HZW9t ZXRyeVZpZXdlci5qc3ggYi93ZWIvcGdhZG1pbi90b29scy9zcWxlZGl0b3Ivc3RhdGljL2pzL2Nv bXBvbmVudHMvc2VjdGlvbnMvR2VvbWV0cnlWaWV3ZXIuanN4Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAwMC4uZGU5NWFjMmU2Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRt aW4vdG9vbHMvc3FsZWRpdG9yL3N0YXRpYy9qcy9jb21wb25lbnRzL3NlY3Rpb25zL0dlb21ldHJ5 Vmlld2VyLmpzeApAQCAtMCwwICsxLDM4NyBAQAorCisvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLworLy8gcGdBZG1pbiA0IC0g UG9zdGdyZVNRTCBUb29scworLy8KKy8vIENvcHlyaWdodCAoQykgMjAxMyAtIDIwMjIsIFRoZSBw Z0FkbWluIERldmVsb3BtZW50IFRlYW0KKy8vIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5k ZXIgdGhlIFBvc3RncmVTUUwgTGljZW5jZQorLy8KKy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCitpbXBvcnQgUmVhY3QsIHsgdXNl RWZmZWN0LCB1c2VSZWYgfSAgZnJvbSAncmVhY3QnOworaW1wb3J0IFJlYWN0RE9NU2VydmVyIGZy b20gJ3JlYWN0LWRvbS9zZXJ2ZXInOworaW1wb3J0IHsgbWFrZVN0eWxlcyB9IGZyb20gJ0BtYXRl cmlhbC11aS9zdHlsZXMnOworaW1wb3J0IF8gZnJvbSAnbG9kYXNoJzsKK2ltcG9ydCB7IE1hcENv bnRhaW5lciwgVGlsZUxheWVyLCBMYXllcnNDb250cm9sLCBHZW9KU09OLCB1c2VNYXAgfSBmcm9t ICdyZWFjdC1sZWFmbGV0JzsKK2ltcG9ydCBMZWFmbGV0LCB7IENSUyB9IGZyb20gJ2xlYWZsZXQn OworaW1wb3J0IHtHZW9tZXRyeSBhcyBXa3hHZW9tZXRyeX0gZnJvbSAnd2t4JzsKK2ltcG9ydCB7 QnVmZmVyfSBmcm9tICdidWZmZXInOworaW1wb3J0IGdldHRleHQgZnJvbSAnc291cmNlcy9nZXR0 ZXh0JzsKK2ltcG9ydCBUaGVtZSBmcm9tICdzb3VyY2VzL1RoZW1lJzsKK2ltcG9ydCBjbHN4IGZy b20gJ2Nsc3gnOworaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJzsKKworY29uc3Qg dXNlU3R5bGVzID0gbWFrZVN0eWxlcygodGhlbWUpPT4oeworICBtYXBDb250YWluZXI6IHsKKyAg ICBiYWNrZ3JvdW5kQ29sb3I6IHRoZW1lLnBhbGV0dGUuYmFja2dyb3VuZC5kZWZhdWx0LAorICAg IGhlaWdodDogJzEwMCUnLAorICAgIHdpZHRoOiAnMTAwJScKKyAgfSwKKyAgdGFibGU6IHsKKyAg ICBib3JkZXJTcGFjaW5nOiAwLAorICAgIHdpZHRoOiAnMTAwJScsCisgICAgLi4udGhlbWUubWl4 aW5zLnBhbmVsQm9yZGVyLAorICB9LAorICB0YWJsZUNlbGw6IHsKKyAgICBtYXJnaW46IDAsCisg ICAgcGFkZGluZzogdGhlbWUuc3BhY2luZygwLjUpLAorICAgIC4uLnRoZW1lLm1peGlucy5wYW5l bEJvcmRlci5ib3R0b20sCisgICAgLi4udGhlbWUubWl4aW5zLnBhbmVsQm9yZGVyLnJpZ2h0LAor ICAgIG92ZXJmbG93OiAnaGlkZGVuJywKKyAgICB0ZXh0T3ZlcmZsb3c6ICdlbGxpcHNpcycsCisg ICAgd2hpdGVTcGFjZTogJ25vd3JhcCcsCisgIH0sCisgIHRhYmxlQ2VsbEhlYWQ6IHsKKyAgICBm b250V2VpZ2h0OiAnYm9sZCcsCisgIH0KK30pKTsKKworZnVuY3Rpb24gcGFyc2VFd2tiRGF0YShy b3dzLCBjb2x1bW4pIHsKKyAgbGV0IGtleSA9IGNvbHVtbi5rZXk7CisgIGNvbnN0IG1heFJlbmRl ckJ5dGVMZW5ndGggPSAyMCAqIDEwMjQgKiAxMDI0OyAvL3JlbmRlciBnZW9tZXRyeSBkYXRhIHVw IHRvIDIwTUIKKyAgY29uc3QgbWF4UmVuZGVyR2VvbWV0cmllcyA9IDEwMDAwMDsgLy8gcmVuZGVy IGdlb21ldHJpZXMgdXAgdG8gMTAwMDAwCisKKyAgbGV0IGdlb21ldHJpZXMzRCA9IFtdLAorICAg IHN1cHBvcnRlZEdlb21ldHJpZXMgPSBbXSwKKyAgICB1bnN1cHBvcnRlZFJvd3MgPSBbXSwKKyAg ICBnZW9tZXRyeUl0ZW1NYXAgPSBuZXcgTWFwKCksCisgICAgZ2VvbWV0cnlUb3RhbEJ5dGVMZW5n dGggPSAwLAorICAgIHRvb0xhcmdlRGF0YVNpemUgPSBmYWxzZSwKKyAgICB0b29NYW55R2VvbWV0 cmllcyA9IGZhbHNlLAorICAgIGluZm9MaXN0ID0gW107CisKKyAgXy5ldmVyeShyb3dzLCBmdW5j dGlvbiAoaXRlbSkgeworICAgIHRyeSB7CisgICAgICBsZXQgdmFsdWUgPSBpdGVtW2tleV07Cisg ICAgICBsZXQgYnVmZmVyID0gQnVmZmVyLmZyb20odmFsdWUsICdoZXgnKTsKKyAgICAgIGxldCBn ZW9tZXRyeSA9IFdreEdlb21ldHJ5LnBhcnNlKGJ1ZmZlcik7CisgICAgICBpZiAoZ2VvbWV0cnku aGFzWikgeworICAgICAgICBnZW9tZXRyaWVzM0QucHVzaChnZW9tZXRyeSk7CisgICAgICAgIHJl dHVybiB0cnVlOworICAgICAgfQorICAgICAgZ2VvbWV0cnlUb3RhbEJ5dGVMZW5ndGggKz0gYnVm ZmVyLmJ5dGVMZW5ndGg7CisgICAgICBpZiAoZ2VvbWV0cnlUb3RhbEJ5dGVMZW5ndGggPiBtYXhS ZW5kZXJCeXRlTGVuZ3RoKSB7CisgICAgICAgIHRvb0xhcmdlRGF0YVNpemUgPSB0cnVlOworICAg ICAgICByZXR1cm4gZmFsc2U7CisgICAgICB9CisgICAgICBpZiAoc3VwcG9ydGVkR2VvbWV0cmll cy5sZW5ndGggPj0gbWF4UmVuZGVyR2VvbWV0cmllcykgeworICAgICAgICB0b29NYW55R2VvbWV0 cmllcyA9IHRydWU7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgIH0KKworICAgICAgaWYg KCFnZW9tZXRyeS5zcmlkKSB7CisgICAgICAgIGdlb21ldHJ5LnNyaWQgPSAwOworICAgICAgfQor ICAgICAgc3VwcG9ydGVkR2VvbWV0cmllcy5wdXNoKGdlb21ldHJ5KTsKKyAgICAgIGdlb21ldHJ5 SXRlbU1hcC5zZXQoZ2VvbWV0cnksIGl0ZW0pOworICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgIHVu c3VwcG9ydGVkUm93cy5wdXNoKGl0ZW0pOworICAgIH0KKyAgICByZXR1cm4gdHJ1ZTsKKyAgfSk7 CisKKyAgLy8gZ2VuZXJhdGUgbWFwIGluZm8gY29udGVudAorICBpZiAodG9vTGFyZ2VEYXRhU2l6 ZSB8fCB0b29NYW55R2VvbWV0cmllcykgeworICAgIGluZm9MaXN0LnB1c2goc3VwcG9ydGVkR2Vv bWV0cmllcy5sZW5ndGggKyAnIG9mICcgKyByb3dzLmxlbmd0aCArICcgZ2VvbWV0cmllcyByZW5k ZXJlZC4nKTsKKyAgfQorICBpZiAoZ2VvbWV0cmllczNELmxlbmd0aCA+IDApIHsKKyAgICBpbmZv TGlzdC5wdXNoKGdldHRleHQoJzNEIGdlb21ldHJpZXMgbm90IHJlbmRlcmVkLicpKTsKKyAgfQor ICBpZiAodW5zdXBwb3J0ZWRSb3dzLmxlbmd0aCA+IDApIHsKKyAgICBpbmZvTGlzdC5wdXNoKGdl dHRleHQoJ1Vuc3VwcG9ydGVkIGdlb21ldHJpZXMgbm90IHJlbmRlcmVkLicpKTsKKyAgfQorCisg IHJldHVybiBbCisgICAgc3VwcG9ydGVkR2VvbWV0cmllcywKKyAgICBnZW9tZXRyeUl0ZW1NYXAs CisgICAgaW5mb0xpc3QKKyAgXTsKK30KKworZnVuY3Rpb24gcGFyc2VEYXRhKHJvd3MsIGNvbHVt bnMsIGNvbHVtbikgeworICBpZiAocm93cy5sZW5ndGggPT09IDApIHsKKyAgICBpbmZvTGlzdC5w dXNoKCdFbXB0eSByb3cuJyk7CisgICAgcmV0dXJuIHsKKyAgICAgICdnZW9KU09Ocyc6IFtdLAor ICAgICAgJ3NlbGVjdGVkU1JJRCc6IDAsCisgICAgICAnZ2V0UG9wdXBDb250ZW50JzogdW5kZWZp bmVkLAorICAgICAgJ2luZm9MaXN0JzogWydFbXB0eSByb3cuJ10sCisgICAgfTsKKyAgfQorCisg IGxldCBtaXhlZFNSSUQgPSBmYWxzZTsKKyAgLy8gcGFyc2UgZXdrYiBkYXRhCisgIGxldCBbCisg ICAgc3VwcG9ydGVkR2VvbWV0cmllcywKKyAgICBnZW9tZXRyeUl0ZW1NYXAsCisgICAgaW5mb0xp c3QKKyAgXSA9IHBhcnNlRXdrYkRhdGEocm93cywgY29sdW1uKTsKKworICBpZiAoc3VwcG9ydGVk R2VvbWV0cmllcy5sZW5ndGggPT09IDApIHsKKyAgICByZXR1cm4geworICAgICAgJ2dlb0pTT05z JzogW10sCisgICAgICAnc2VsZWN0ZWRTUklEJzogMCwKKyAgICAgICdnZXRQb3B1cENvbnRlbnQn OiB1bmRlZmluZWQsCisgICAgICAnaW5mb0xpc3QnOiBpbmZvTGlzdCwKKyAgICB9OworICB9CisK KyAgLy8gZ3JvdXAgZ2VvbWV0cmllcyBieSBTUklECisgIGxldCBnZW9tZXRyaWVzR3JvdXBCeVNS SUQgPSBfLmdyb3VwQnkoc3VwcG9ydGVkR2VvbWV0cmllcywgJ3NyaWQnKTsKKyAgbGV0IFNSSURH ZW9tZXRyaWVzUGFpcnMgPSBfLnRvUGFpcnMoZ2VvbWV0cmllc0dyb3VwQnlTUklEKTsKKyAgaWYg KFNSSURHZW9tZXRyaWVzUGFpcnMubGVuZ3RoID4gMSkgeworICAgIG1peGVkU1JJRCA9IHRydWU7 CisgIH0KKyAgLy8gc2VsZWN0IHRoZSBsYXJnZXN0IGdyb3VwCisgIGxldCBzZWxlY3RlZFBhaXIg PSBfLm1heChTUklER2VvbWV0cmllc1BhaXJzLCBmdW5jdGlvbiAocGFpcikgeworICAgIHJldHVy biBwYWlyWzFdLmxlbmd0aDsKKyAgfSk7CisgIGxldCBzZWxlY3RlZFNSSUQgPSBwYXJzZUludChz ZWxlY3RlZFBhaXJbMF0pOworICBsZXQgc2VsZWN0ZWRHZW9tZXRyaWVzID0gc2VsZWN0ZWRQYWly WzFdOworCisgIGxldCBnZW9KU09OcyA9IF8ubWFwKHNlbGVjdGVkR2VvbWV0cmllcywgZnVuY3Rp b24gKGdlb21ldHJ5KSB7CisgICAgcmV0dXJuIGdlb21ldHJ5LnRvR2VvSlNPTigpOworICB9KTsK KworICBsZXQgZ2V0UG9wdXBDb250ZW50OworICBpZiAoY29sdW1ucy5sZW5ndGggPj0gMykgewor ICAgIC8vIGFkZCBwb3B1cCB3aGVuIGdlb21ldHJ5IGhhcyBwcm9wZXJ0aWVzCisgICAgZ2V0UG9w dXBDb250ZW50ID0gZnVuY3Rpb24gKGdlb2pzb24pIHsKKyAgICAgIGxldCBnZW9tZXRyeSA9IHNl bGVjdGVkR2VvbWV0cmllc1tnZW9KU09Ocy5pbmRleE9mKGdlb2pzb24pXTsKKyAgICAgIGxldCBy b3cgPSBnZW9tZXRyeUl0ZW1NYXAuZ2V0KGdlb21ldHJ5KTsKKyAgICAgIGxldCByZXRWYWwgPSBb XTsKKyAgICAgIGZvciAoY29uc3QgY29sIG9mIGNvbHVtbnMpIHsKKyAgICAgICAgaWYoY29sLmtl eSA9PT0gY29sdW1uLmtleSkgeworICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICB9CisgICAg ICAgIHJldFZhbC5wdXNoKHsKKyAgICAgICAgICAnY29sdW1uJzogY29sLmRpc3BsYXlfbmFtZSwK KyAgICAgICAgICAndmFsdWUnOiByb3dbY29sLmtleV0sCisgICAgICAgIH0pOworICAgICAgfQor ICAgICAgcmV0dXJuIHJldFZhbDsKKyAgICB9OworICB9CisKKyAgaWYgKG1peGVkU1JJRCkgewor ICAgIGluZm9MaXN0LnB1c2goZ2V0dGV4dCgnR2VvbWV0cmllcyB3aXRoIG5vbi1TUklEICVzIG5v dCByZW5kZXJlZC4nLCBzZWxlY3RlZFNSSUQpKTsKKyAgfQorCisgIHJldHVybiB7CisgICAgJ2dl b0pTT05zJzogZ2VvSlNPTnMsCisgICAgJ3NlbGVjdGVkU1JJRCc6IHNlbGVjdGVkU1JJRCwKKyAg ICAnZ2V0UG9wdXBDb250ZW50JzogZ2V0UG9wdXBDb250ZW50LAorICAgICdpbmZvTGlzdCc6IGlu Zm9MaXN0LAorICB9OworfQorCitmdW5jdGlvbiBQb3B1cFRhYmxlKHtkYXRhfSkgeworICBjb25z dCBjbGFzc2VzID0gdXNlU3R5bGVzKCk7CisgIHJldHVybiAoCisgICAgPHRhYmxlIGNsYXNzTmFt ZT17Y2xhc3Nlcy50YWJsZX0+CisgICAgICA8dGJvZHk+CisgICAgICAgIHtkYXRhLm1hcCgocm93 KT0+eworICAgICAgICAgIHJldHVybiAoCisgICAgICAgICAgICA8dHIga2V5PXtyb3cuY29sdW1u fT4KKyAgICAgICAgICAgICAgPHRkIGNsYXNzTmFtZT17Y2xzeChjbGFzc2VzLnRhYmxlQ2VsbCwg Y2xhc3Nlcy50YWJsZUNlbGxIZWFkKX0+e3Jvdy5jb2x1bW59PC90ZD4KKyAgICAgICAgICAgICAg PHRkIGNsYXNzTmFtZT17Y2xhc3Nlcy50YWJsZUNlbGx9Pntyb3cudmFsdWV9PC90ZD4KKyAgICAg ICAgICAgIDwvdHI+CisgICAgICAgICAgKTsKKyAgICAgICAgfSl9CisgICAgICA8L3Rib2R5Pgor ICAgIDwvdGFibGU+CisgICk7Cit9CisKK1BvcHVwVGFibGUucHJvcFR5cGVzID0geworICBkYXRh OiBQcm9wVHlwZXMuYXJyYXlPZih7CisgICAgY29sdW1uOiBQcm9wVHlwZXMuc3RyaW5nLAorICAg IHZhbHVlOiBQcm9wVHlwZXMuc3RyaW5nLAorICB9KSwKK307CisKK2Z1bmN0aW9uIEdlb0pzb25M YXllcih7ZGF0YX0pIHsKKyAgY29uc3QgdmVjdG9yTGF5ZXJSZWYgPSB1c2VSZWYobnVsbCk7Cisg IGNvbnN0IG1hcE9iaiA9IHVzZU1hcCgpOworICB1c2VFZmZlY3QoKCkgPT4geworICAgIGlmKCF2 ZWN0b3JMYXllclJlZi5jdXJyZW50KSByZXR1cm47CisgICAgaWYoZGF0YS5nZW9KU09Ocy5sZW5n dGggPD0gMCkgcmV0dXJuOworICAgIGxldCBib3VuZHMgPSB2ZWN0b3JMYXllclJlZi5jdXJyZW50 LmdldEJvdW5kcygpLnBhZCgwLjEpOworICAgIGxldCBtYXhMZW5ndGggPSBNYXRoLm1heChib3Vu ZHMuZ2V0Tm9ydGgoKSAtIGJvdW5kcy5nZXRTb3V0aCgpLAorICAgICAgYm91bmRzLmdldEVhc3Qo KSAtIGJvdW5kcy5nZXRXZXN0KCkpOworICAgIGxldCBtaW5ab29tID0gMDsKKyAgICBpZihkYXRh LnNlbGVjdGVkU1JJRCAhPT0gNDMyNikgeworICAgICAgaWYgKG1heExlbmd0aCA+PSAxODApIHsK KyAgICAgICAgLy8gY2FsY3VsYXRlIHRoZSBtaW4gem9vbSBsZXZlbCB0byBlbmFibGUgdGhlIG1h cCB0byBmaXQgdGhlIHdob2xlIGdlb21ldHJ5LgorICAgICAgICBtaW5ab29tID0gTWF0aC5mbG9v cihNYXRoLmxvZzIoMzYwIC8gbWF4TGVuZ3RoKSkgLSAyOworICAgICAgfQorICAgIH0KKyAgICBt YXBPYmouc2V0TWluWm9vbShtaW5ab29tKTsKKyAgICBpZiAobWF4TGVuZ3RoID4gMCkgeworICAg ICAgbWFwT2JqLmZpdEJvdW5kcyhib3VuZHMpOworICAgIH0gZWxzZSB7CisgICAgICBtYXBPYmou c2V0Vmlldyhib3VuZHMuZ2V0Q2VudGVyKCksIG1hcE9iai5nZXRab29tKCkpOworICAgIH0KKyAg fSk7CisKKyAgcmV0dXJuICgKKyAgICA8R2VvSlNPTgorICAgICAgcmVmPXt2ZWN0b3JMYXllclJl Zn0KKyAgICAgIHBvaW50VG9MYXllcj17KF9mZWF0dXJlLCBsYXRsbmcpPT57CisgICAgICAgIHJl dHVybiBMZWFmbGV0LmNpcmNsZU1hcmtlcihsYXRsbmcsIHsKKyAgICAgICAgICByYWRpdXM6IDQs CisgICAgICAgICAgd2VpZ2h0OiAzLAorICAgICAgICB9KTsKKyAgICAgIH19CisgICAgICBzdHls ZT17e3dlaWdodDogMn19CisgICAgICBvbkVhY2hGZWF0dXJlPXsoZmVhdHVyZSwgbGF5ZXIpPT57 CisgICAgICAgIGlmKF8uaXNGdW5jdGlvbihkYXRhLmdldFBvcHVwQ29udGVudCkpIHsKKyAgICAg ICAgICBjb25zdCBwb3B1cENvbnRlbnROb2RlID0gKAorICAgICAgICAgICAgPFRoZW1lPgorICAg ICAgICAgICAgICA8UG9wdXBUYWJsZSBkYXRhPXtkYXRhLmdldFBvcHVwQ29udGVudChsYXllci5m ZWF0dXJlLmdlb21ldHJ5KX0vPgorICAgICAgICAgICAgPC9UaGVtZT4KKyAgICAgICAgICApOwor ICAgICAgICAgIGNvbnN0IHBvcHVwQ29udGVudEh0bWwgPSBSZWFjdERPTVNlcnZlci5yZW5kZXJU b1N0cmluZyhwb3B1cENvbnRlbnROb2RlKTsKKyAgICAgICAgICBsYXllci5iaW5kUG9wdXAocG9w dXBDb250ZW50SHRtbCwgeworICAgICAgICAgICAgY2xvc2VCdXR0b246IGZhbHNlLAorICAgICAg ICAgICAgbWluV2lkdGg6IDI2MCwKKyAgICAgICAgICAgIG1heFdpZHRoOiAzMDAsCisgICAgICAg ICAgICBtYXhIZWlnaHQ6IDMwMCwKKyAgICAgICAgICB9KTsKKyAgICAgICAgfQorICAgICAgfX0K KyAgICAgIGRhdGE9e2RhdGEuZ2VvSlNPTnN9CisgICAgLz4KKyAgKTsKK30KKworR2VvSnNvbkxh eWVyLnByb3BUeXBlcyA9IHsKKyAgZGF0YTogUHJvcFR5cGVzLnNoYXBlKHsKKyAgICBnZW9KU09O czogUHJvcFR5cGVzLmFycmF5LAorICAgIHNlbGVjdGVkU1JJRDogUHJvcFR5cGVzLnN0cmluZywK KyAgICBnZXRQb3B1cENvbnRlbnQ6IFByb3BUeXBlcy5mdW5jLAorICAgIGluZm9MaXN0OiBQcm9w VHlwZXMuYXJyYXksCisgIH0pLAorfTsKKworZnVuY3Rpb24gVGhlTWFwKHtkYXRhfSkgeworICBj b25zdCBtYXBPYmogPSB1c2VNYXAoKTsKKyAgY29uc3QgaW5mb0NvbnRyb2wgPSB1c2VSZWYobnVs bCk7CisgIHVzZUVmZmVjdCgoKT0+eworICAgIGluZm9Db250cm9sLmN1cnJlbnQgPSBMZWFmbGV0 LmNvbnRyb2woe3Bvc2l0aW9uOiAndG9wcmlnaHQnfSk7CisgICAgaW5mb0NvbnRyb2wuY3VycmVu dC5vbkFkZCA9IGZ1bmN0aW9uICgpIHsKKyAgICAgIGxldCBlbGUgPSBMZWFmbGV0LkRvbVV0aWwu Y3JlYXRlKCdkaXYnLCAnZ2VvbWV0cnktdmlld2VyLWluZm8tY29udHJvbCcpOworICAgICAgZWxl LmlubmVySFRNTCA9IGRhdGEuaW5mb0xpc3Quam9pbignPGJyIC8+Jyk7CisgICAgICByZXR1cm4g ZWxlOworICAgIH07CisgICAgaWYoZGF0YS5pbmZvTGlzdC5sZW5ndGggPiAwKSB7CisgICAgICBp bmZvQ29udHJvbC5jdXJyZW50LmFkZFRvKG1hcE9iaik7CisgICAgfQorICAgIHJldHVybiAoKT0+ e2luZm9Db250cm9sLmN1cnJlbnQgJiYgaW5mb0NvbnRyb2wuY3VycmVudC5yZW1vdmUoKTt9Owor ICB9LCBbZGF0YV0pOworICByZXR1cm4gKAorICAgIDw+CisgICAgICB7ZGF0YS5zZWxlY3RlZFNS SUQgPT09IDQzMjYgJiYKKyAgICA8TGF5ZXJzQ29udHJvbCBwb3NpdGlvbj0idG9wcmlnaHQiPgor ICAgICAgPExheWVyc0NvbnRyb2wuQmFzZUxheWVyIGNoZWNrZWQgbmFtZT0iRW1wdHkiPgorICAg ICAgICA8VGlsZUxheWVyCisgICAgICAgICAgdXJsPSIiCisgICAgICAgIC8+CisgICAgICA8L0xh eWVyc0NvbnRyb2wuQmFzZUxheWVyPgorICAgICAgPExheWVyc0NvbnRyb2wuQmFzZUxheWVyIGNo ZWNrZWQgbmFtZT0iU3RyZWV0Ij4KKyAgICAgICAgPFRpbGVMYXllcgorICAgICAgICAgIHVybD0i aHR0cHM6Ly97c30udGlsZS5vcGVuc3RyZWV0bWFwLm9yZy97en0ve3h9L3t5fS5wbmciCisgICAg ICAgICAgbWF4Wm9vbT17MTl9CisgICAgICAgICAgYXR0cmlidXRpb249JyZjb3B5OyA8YSBocmVm PSJodHRwOi8vd3d3Lm9wZW5zdHJlZXRtYXAub3JnL2NvcHlyaWdodCIgdGFyZ2V0PSJfYmxhbmsi Pk9wZW5TdHJlZXRNYXA8L2E+JworICAgICAgICAvPgorICAgICAgPC9MYXllcnNDb250cm9sLkJh c2VMYXllcj4KKyAgICAgIDxMYXllcnNDb250cm9sLkJhc2VMYXllciBuYW1lPSJUb3BvZ3JhcGh5 Ij4KKyAgICAgICAgPFRpbGVMYXllcgorICAgICAgICAgIHVybD0iaHR0cHM6Ly97c30udGlsZS5v cGVudG9wb21hcC5vcmcve3p9L3t4fS97eX0ucG5nIgorICAgICAgICAgIG1heFpvb209ezE3fQor ICAgICAgICAgIGF0dHJpYnV0aW9uPXsKKyAgICAgICAgICAgICcmY29weTsgPGEgaHJlZj0iaHR0 cDovL3d3dy5vcGVuc3RyZWV0bWFwLm9yZy9jb3B5cmlnaHQiIHRhcmdldD0iX2JsYW5rIj5PcGVu U3RyZWV0TWFwPC9hPiwnCisgICAgICAgICAgICArICcgJmNvcHk7IDxhIGhyZWY9Imh0dHA6Ly92 aWV3ZmluZGVycGFub3JhbWFzLm9yZyIgdGFyZ2V0PSJfYmxhbmsiPlNSVE08L2E+LCcKKyAgICAg ICAgICAgICsgJyAmY29weTsgPGEgaHJlZj0iaHR0cHM6Ly9vcGVudG9wb21hcC5vcmciIHRhcmdl dD0iX2JsYW5rIj5PcGVuVG9wb01hcDwvYT4nCisgICAgICAgICAgfQorICAgICAgICAvPgorICAg ICAgPC9MYXllcnNDb250cm9sLkJhc2VMYXllcj4KKyAgICAgIDxMYXllcnNDb250cm9sLkJhc2VM YXllciBuYW1lPSJHcmF5IFN0eWxlIj4KKyAgICAgICAgPFRpbGVMYXllcgorICAgICAgICAgIHVy bD0iaHR0cHM6Ly9jYXJ0b2RiLWJhc2VtYXBzLXtzfS5nbG9iYWwuc3NsLmZhc3RseS5uZXQvbGln aHRfYWxsL3t6fS97eH0ve3l9e3J9LnBuZyIKKyAgICAgICAgICBtYXhab29tPXsxOX0KKyAgICAg ICAgICBhdHRyaWJ1dGlvbj17CisgICAgICAgICAgICAnJmNvcHk7IDxhIGhyZWY9Imh0dHA6Ly93 d3cub3BlbnN0cmVldG1hcC5vcmcvY29weXJpZ2h0IiB0YXJnZXQ9Il9ibGFuayI+T3BlblN0cmVl dE1hcDwvYT4sJworICAgICAgICAgICAgKyAnICZjb3B5OyA8YSBocmVmPSJodHRwOi8vY2FydG9k Yi5jb20vYXR0cmlidXRpb25zIiB0YXJnZXQ9Il9ibGFuayI+Q2FydG9EQjwvYT4nCisgICAgICAg ICAgfQorICAgICAgICAgIHN1YmRvbWFpbnM9J2FiY2QnCisgICAgICAgIC8+CisgICAgICA8L0xh eWVyc0NvbnRyb2wuQmFzZUxheWVyPgorICAgICAgPExheWVyc0NvbnRyb2wuQmFzZUxheWVyIG5h bWU9IkxpZ2h0IENvbG9yIj4KKyAgICAgICAgPFRpbGVMYXllcgorICAgICAgICAgIHVybD0iaHR0 cHM6Ly9jYXJ0b2RiLWJhc2VtYXBzLXtzfS5nbG9iYWwuc3NsLmZhc3RseS5uZXQvcmFzdGVydGls ZXMvdm95YWdlci97en0ve3h9L3t5fXtyfS5wbiIKKyAgICAgICAgICBtYXhab29tPXsxOX0KKyAg ICAgICAgICBhdHRyaWJ1dGlvbj17CisgICAgICAgICAgICAnJmNvcHk7IDxhIGhyZWY9Imh0dHA6 Ly93d3cub3BlbnN0cmVldG1hcC5vcmcvY29weXJpZ2h0IiB0YXJnZXQ9Il9ibGFuayI+T3BlblN0 cmVldE1hcDwvYT4sJworICAgICAgICAgICAgKyAnICZjb3B5OyA8YSBocmVmPSJodHRwOi8vY2Fy dG9kYi5jb20vYXR0cmlidXRpb25zIiB0YXJnZXQ9Il9ibGFuayI+Q2FydG9EQjwvYT4nCisgICAg ICAgICAgfQorICAgICAgICAgIHN1YmRvbWFpbnM9J2FiY2QnCisgICAgICAgIC8+CisgICAgICA8 L0xheWVyc0NvbnRyb2wuQmFzZUxheWVyPgorICAgICAgPExheWVyc0NvbnRyb2wuQmFzZUxheWVy IG5hbWU9IkRhcmsgTWF0dGVyIj4KKyAgICAgICAgPFRpbGVMYXllcgorICAgICAgICAgIHVybD0i aHR0cHM6Ly9jYXJ0b2RiLWJhc2VtYXBzLXtzfS5nbG9iYWwuc3NsLmZhc3RseS5uZXQvZGFya19h bGwve3p9L3t4fS97eX17cn0ucG5nIgorICAgICAgICAgIG1heFpvb209ezE5fQorICAgICAgICAg IGF0dHJpYnV0aW9uPXsKKyAgICAgICAgICAgICcmY29weTsgPGEgaHJlZj0iaHR0cDovL3d3dy5v cGVuc3RyZWV0bWFwLm9yZy9jb3B5cmlnaHQiIHRhcmdldD0iX2JsYW5rIj5PcGVuU3RyZWV0TWFw PC9hPiwnCisgICAgICAgICAgICArICcgJmNvcHk7IDxhIGhyZWY9Imh0dHA6Ly9jYXJ0b2RiLmNv bS9hdHRyaWJ1dGlvbnMiIHRhcmdldD0iX2JsYW5rIj5DYXJ0b0RCPC9hPicKKyAgICAgICAgICB9 CisgICAgICAgICAgc3ViZG9tYWlucz0nYWJjZCcKKyAgICAgICAgLz4KKyAgICAgIDwvTGF5ZXJz Q29udHJvbC5CYXNlTGF5ZXI+CisgICAgPC9MYXllcnNDb250cm9sPn0KKyAgICAgIDxHZW9Kc29u TGF5ZXIga2V5PXtkYXRhLmdlb0pTT05zLmxlbmd0aH0gZGF0YT17ZGF0YX0vPgorICAgIDwvPgor ICApOworfQorVGhlTWFwLnByb3BUeXBlcyA9IHsKKyAgZGF0YTogUHJvcFR5cGVzLnNoYXBlKHsK KyAgICBnZW9KU09OczogUHJvcFR5cGVzLmFycmF5LAorICAgIHNlbGVjdGVkU1JJRDogUHJvcFR5 cGVzLnN0cmluZywKKyAgICBnZXRQb3B1cENvbnRlbnQ6IFByb3BUeXBlcy5mdW5jLAorICAgIGlu Zm9MaXN0OiBQcm9wVHlwZXMuYXJyYXksCisgIH0pLAorfTsKKworCitleHBvcnQgZnVuY3Rpb24g R2VvbWV0cnlWaWV3ZXIoe3Jvd3MsIGNvbHVtbnMsIGNvbHVtbn0pIHsKKyAgY29uc3QgY2xhc3Nl cyA9IHVzZVN0eWxlcygpOworICBjb25zdCBkYXRhID0gcGFyc2VEYXRhKHJvd3MsIGNvbHVtbnMs IGNvbHVtbik7CisgIGNvbnN0IGNycyA9IGRhdGEuc2VsZWN0ZWRTUklEID09PSA0MzI2ID8gQ1JT LkVQU0czODU3IDogQ1JTLlNpbXBsZTsKKyAgcmV0dXJuICgKKyAgICA8TWFwQ29udGFpbmVyCisg ICAgICBjcnM9e2Nyc30KKyAgICAgIHpvb209ezJ9IGNlbnRlcj17WzIwLCAxMDBdfQorICAgICAg cHJlZmVyQ2FudmFzPXt0cnVlfQorICAgICAgc2Nyb2xsV2hlZWxab29tPXtmYWxzZX0KKyAgICAg IGNsYXNzTmFtZT17Y2xhc3Nlcy5tYXBDb250YWluZXJ9CisgICAgPgorICAgICAgPFRoZU1hcCBk YXRhPXtkYXRhfSAvPgorICAgIDwvTWFwQ29udGFpbmVyPgorICApOworfQorCitHZW9tZXRyeVZp ZXdlci5wcm9wVHlwZXMgPSB7CisgIHJvd3M6IFByb3BUeXBlcy5hcnJheSwKKyAgY29sdW1uczog UHJvcFR5cGVzLmFycmF5LAorICBjb2x1bW46IFByb3BUeXBlcy5vYmplY3QsCit9OwpkaWZmIC0t Z2l0IGEvd2ViL3BnYWRtaW4vdG9vbHMvc3FsZWRpdG9yL3N0YXRpYy9qcy9jb21wb25lbnRzL3Nl Y3Rpb25zL01haW5Ub29sQmFyLmpzeCBiL3dlYi9wZ2FkbWluL3Rvb2xzL3NxbGVkaXRvci9zdGF0 aWMvanMvY29tcG9uZW50cy9zZWN0aW9ucy9NYWluVG9vbEJhci5qc3gKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMDAwLi43NzI4ZjA4Y2EKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIv cGdhZG1pbi90b29scy9zcWxlZGl0b3Ivc3RhdGljL2pzL2NvbXBvbmVudHMvc2VjdGlvbnMvTWFp blRvb2xCYXIuanN4CkBAIC0wLDAgKzEsNTczIEBACisvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLworLy8gcGdBZG1pbiA0IC0g UG9zdGdyZVNRTCBUb29scworLy8KKy8vIENvcHlyaWdodCAoQykgMjAxMyAtIDIwMjIsIFRoZSBw Z0FkbWluIERldmVsb3BtZW50IFRlYW0KKy8vIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5k ZXIgdGhlIFBvc3RncmVTUUwgTGljZW5jZQorLy8KKy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCitpbXBvcnQgUmVhY3QsIHt1c2VD b250ZXh0LCB1c2VDYWxsYmFjaywgdXNlRWZmZWN0LCB1c2VTdGF0ZX0gZnJvbSAncmVhY3QnOwor aW1wb3J0IHsgbWFrZVN0eWxlcyB9IGZyb20gJ0BtYXRlcmlhbC11aS9zdHlsZXMnOworaW1wb3J0 IHsgQm94IH0gZnJvbSAnQG1hdGVyaWFsLXVpL2NvcmUnOworaW1wb3J0IHsgUGdCdXR0b25Hcm91 cCwgUGdJY29uQnV0dG9uIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vc3RhdGljL2pzL2NvbXBv bmVudHMvQnV0dG9ucyc7CitpbXBvcnQgRm9sZGVyUm91bmRlZEljb24gZnJvbSAnQG1hdGVyaWFs LXVpL2ljb25zL0ZvbGRlclJvdW5kZWQnOworaW1wb3J0IEtleWJvYXJkQXJyb3dEb3duSWNvbiBm cm9tICdAbWF0ZXJpYWwtdWkvaWNvbnMvS2V5Ym9hcmRBcnJvd0Rvd24nOworaW1wb3J0IFNhdmVS b3VuZGVkSWNvbiBmcm9tICdAbWF0ZXJpYWwtdWkvaWNvbnMvU2F2ZVJvdW5kZWQnOworaW1wb3J0 IFN0b3BSb3VuZGVkSWNvbiBmcm9tICdAbWF0ZXJpYWwtdWkvaWNvbnMvU3RvcFJvdW5kZWQnOwor aW1wb3J0IFBsYXlBcnJvd1JvdW5kZWRJY29uIGZyb20gJ0BtYXRlcmlhbC11aS9pY29ucy9QbGF5 QXJyb3dSb3VuZGVkJzsKK2ltcG9ydCB7IEZpbHRlckljb24sIENvbW1pdEljb24sIFJvbGxiYWNr SWNvbiB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL3N0YXRpYy9qcy9jb21wb25lbnRzL0V4dGVy bmFsSWNvbic7CitpbXBvcnQgRWRpdFJvdW5kZWRJY29uIGZyb20gJ0BtYXRlcmlhbC11aS9pY29u cy9FZGl0Um91bmRlZCc7CitpbXBvcnQgQXNzZXNzbWVudFJvdW5kZWRJY29uIGZyb20gJ0BtYXRl cmlhbC11aS9pY29ucy9Bc3Nlc3NtZW50Um91bmRlZCc7CitpbXBvcnQgRXhwbGljaXRSb3VuZGVk SWNvbiBmcm9tICdAbWF0ZXJpYWwtdWkvaWNvbnMvRXhwbGljaXRSb3VuZGVkJzsKK2ltcG9ydCBG b3JtYXRMaXN0TnVtYmVyZWRSb3VuZGVkSWNvbiBmcm9tICdAbWF0ZXJpYWwtdWkvaWNvbnMvRm9y bWF0TGlzdE51bWJlcmVkUm91bmRlZCc7CitpbXBvcnQge1FVRVJZX1RPT0xfRVZFTlRTLCBDT05O RUNUSU9OX1NUQVRVU30gZnJvbSAnLi4vUXVlcnlUb29sQ29uc3RhbnRzJzsKK2ltcG9ydCB7IFF1 ZXJ5VG9vbENvbm5lY3Rpb25Db250ZXh0LCBRdWVyeVRvb2xDb250ZXh0LCBRdWVyeVRvb2xFdmVu dHNDb250ZXh0IH0gZnJvbSAnLi4vUXVlcnlUb29sQ29tcG9uZW50JzsKK2ltcG9ydCB7IFBnTWVu dSwgUGdNZW51RGl2aWRlciwgUGdNZW51SXRlbSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL3N0 YXRpYy9qcy9jb21wb25lbnRzL01lbnUnOworaW1wb3J0IGdldHRleHQgZnJvbSAnc291cmNlcy9n ZXR0ZXh0JzsKK2ltcG9ydCB7IHVzZUtleWJvYXJkU2hvcnRjdXRzIH0gZnJvbSAnLi4vLi4vLi4v Li4vLi4vLi4vc3RhdGljL2pzL2N1c3RvbV9ob29rcyc7CitpbXBvcnQge3Nob3J0Y3V0X2tleX0g ZnJvbSAnc291cmNlcy9rZXlib2FyZF9zaG9ydGN1dHMnOworaW1wb3J0IHVybF9mb3IgZnJvbSAn c291cmNlcy91cmxfZm9yJzsKK2ltcG9ydCBfIGZyb20gJ2xvZGFzaCc7CitpbXBvcnQgeyBJbnB1 dFNlbGVjdE5vblNlYXJjaCB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL3N0YXRpYy9qcy9jb21w b25lbnRzL0Zvcm1Db21wb25lbnRzJzsKK2ltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBl cyc7CitpbXBvcnQgQ3VzdG9tUHJvcFR5cGVzIGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL3N0YXRp Yy9qcy9jdXN0b21fcHJvcF90eXBlcyc7CitpbXBvcnQgQ29uZmlybVRyYW5zYWN0aW9uQ29udGVu dCBmcm9tICcuLi9kaWFsb2dzL0NvbmZpcm1UcmFuc2FjdGlvbkNvbnRlbnQnOworCitjb25zdCB1 c2VTdHlsZXMgPSBtYWtlU3R5bGVzKCh0aGVtZSk9Pih7CisgIHJvb3Q6IHsKKyAgICBwYWRkaW5n OiAnMnB4IDRweCcsCisgICAgZGlzcGxheTogJ2ZsZXgnLAorICAgIGFsaWduSXRlbXM6ICdjZW50 ZXInLAorICAgIGdhcDogJzRweCcsCisgICAgYmFja2dyb3VuZENvbG9yOiB0aGVtZS5vdGhlclZh cnMuZWRpdG9yVG9vbGJhckJnLAorICAgIC4uLnRoZW1lLm1peGlucy5wYW5lbEJvcmRlci5ib3R0 b20sCisgIH0sCit9KSk7CisKK2NvbnN0IEZJWEVEX1BSRUYgPSB7CisgIGZpbmQ6IHsKKyAgICAn Y29udHJvbCc6IHRydWUsCisgICAgY3RybF9pc19tZXRhOiB0cnVlLAorICAgICdzaGlmdCc6IGZh bHNlLAorICAgICdhbHQnOiBmYWxzZSwKKyAgICAna2V5JzogeworICAgICAgJ2tleV9jb2RlJzog NzAsCisgICAgICAnY2hhcic6ICdGJywKKyAgICB9LAorICB9LAorICByZXBsYWNlOiB7CisgICAg J2NvbnRyb2wnOiB0cnVlLAorICAgIGN0cmxfaXNfbWV0YTogdHJ1ZSwKKyAgICAnc2hpZnQnOiBm YWxzZSwKKyAgICAnYWx0JzogdHJ1ZSwKKyAgICAna2V5JzogeworICAgICAgJ2tleV9jb2RlJzog NzAsCisgICAgICAnY2hhcic6ICdGJywKKyAgICB9LAorICB9LAorICBqdW1wOiB7CisgICAgJ2Nv bnRyb2wnOiBmYWxzZSwKKyAgICAnc2hpZnQnOiBmYWxzZSwKKyAgICAnYWx0JzogdHJ1ZSwKKyAg ICAna2V5JzogeworICAgICAgJ2tleV9jb2RlJzogNzEsCisgICAgICAnY2hhcic6ICdHJywKKyAg ICB9LAorICB9LAorICBpbmRlbnQ6IHsKKyAgICAnY29udHJvbCc6IGZhbHNlLAorICAgICdzaGlm dCc6IGZhbHNlLAorICAgICdhbHQnOiBmYWxzZSwKKyAgICAna2V5JzogeworICAgICAgJ2tleV9j b2RlJzogOSwKKyAgICAgICdjaGFyJzogJ1RhYicsCisgICAgfSwKKyAgfSwKKyAgdW5pbmRlbnQ6 IHsKKyAgICAnY29udHJvbCc6IGZhbHNlLAorICAgICdzaGlmdCc6IHRydWUsCisgICAgJ2FsdCc6 IGZhbHNlLAorICAgICdrZXknOiB7CisgICAgICAna2V5X2NvZGUnOiA5LAorICAgICAgJ2NoYXIn OiAnVGFiJywKKyAgICB9LAorICB9LAorICBjb21tZW50OiB7CisgICAgJ2NvbnRyb2wnOiB0cnVl LAorICAgIGN0cmxfaXNfbWV0YTogdHJ1ZSwKKyAgICAnc2hpZnQnOiBmYWxzZSwKKyAgICAnYWx0 JzogZmFsc2UsCisgICAgJ2tleSc6IHsKKyAgICAgICdrZXlfY29kZSc6IDE5MSwKKyAgICAgICdj aGFyJzogJy8nLAorICAgIH0sCisgIH0sCisgIHVuY29tbWVudDogeworICAgICdjb250cm9sJzog dHJ1ZSwKKyAgICBjdHJsX2lzX21ldGE6IHRydWUsCisgICAgJ3NoaWZ0JzogZmFsc2UsCisgICAg J2FsdCc6IGZhbHNlLAorICAgICdrZXknOiB7CisgICAgICAna2V5X2NvZGUnOiAxOTAsCisgICAg ICAnY2hhcic6ICcuJywKKyAgICB9LAorICB9LAorICBmb3JtYXRfc3FsOiB7CisgICAgJ2NvbnRy b2wnOiB0cnVlLAorICAgICdzaGlmdCc6IHRydWUsCisgICAgJ2FsdCc6IGZhbHNlLAorICAgICdr ZXknOiB7CisgICAgICAna2V5X2NvZGUnOiA3NSwKKyAgICAgICdjaGFyJzogJ2snLAorICAgIH0s CisgIH0sCit9OworCitmdW5jdGlvbiBhdXRvQ29tbWl0Um9sbGJhY2sodHlwZSwgYXBpLCB0cmFu c0lkLCB2YWx1ZSkgeworICBsZXQgdXJsID0gdXJsX2Zvcihgc3FsZWRpdG9yLiR7dHlwZX1gLCB7 CisgICAgJ3RyYW5zX2lkJzogdHJhbnNJZCwKKyAgfSk7CisgIHJldHVybiBhcGkucG9zdCh1cmws IEpTT04uc3RyaW5naWZ5KHZhbHVlKSk7Cit9CisKK2V4cG9ydCBmdW5jdGlvbiBNYWluVG9vbEJh cih7Y29udGFpbmVyUmVmLCBvbkZpbHRlckNsaWNrLCBvbk1hbmFnZU1hY3Jvc30pIHsKKyAgY29u c3QgY2xhc3NlcyA9IHVzZVN0eWxlcygpOworICBjb25zdCBldmVudEJ1cyA9IHVzZUNvbnRleHQo UXVlcnlUb29sRXZlbnRzQ29udGV4dCk7CisgIGNvbnN0IHF1ZXJ5VG9vbEN0eCA9IHVzZUNvbnRl eHQoUXVlcnlUb29sQ29udGV4dCk7CisgIGNvbnN0IHF1ZXJ5VG9vbENvbm5DdHggPSB1c2VDb250 ZXh0KFF1ZXJ5VG9vbENvbm5lY3Rpb25Db250ZXh0KTsKKworICBjb25zdCBbaGlnaGxpZ2h0Rmls dGVyLCBzZXRIaWdobGlnaHRGaWx0ZXJdID0gdXNlU3RhdGUoZmFsc2UpOworICBjb25zdCBbbGlt aXQsIHNldExpbWl0XSA9IHVzZVN0YXRlKCctMScpOworICBjb25zdCBbYnV0dG9uc0Rpc2FibGVk LCBzZXRCdXR0b25zRGlzYWJsZWRdID0gdXNlU3RhdGUoeworICAgICdzYXZlJzogdHJ1ZSwKKyAg ICAnY2FuY2VsJzogdHJ1ZSwKKyAgICAnc2F2ZS1kYXRhJzogdHJ1ZSwKKyAgICAnZGVsZXRlLXJv d3MnOiB0cnVlLAorICAgICdjb21taXQnOiB0cnVlLAorICAgICdyb2xsYmFjayc6IHRydWUsCisg ICAgJ2ZpbHRlcic6IHRydWUsCisgICAgJ2xpbWl0JzogZmFsc2UsCisgIH0pOworICBjb25zdCBb bWVudU9wZW5JZCwgc2V0TWVudU9wZW5JZF0gPSBSZWFjdC51c2VTdGF0ZShudWxsKTsKKyAgY29u c3QgW2NoZWNrZWRNZW51SXRlbXMsIHNldENoZWNrZWRNZW51SXRlbXNdID0gUmVhY3QudXNlU3Rh dGUoe30pOworICAvKiBNZW51IGJ1dHRvbiByZWZzICovCisgIGNvbnN0IHNhdmVBc01lbnVSZWYg PSBSZWFjdC51c2VSZWYobnVsbCk7CisgIGNvbnN0IGVkaXRNZW51UmVmID0gUmVhY3QudXNlUmVm KG51bGwpOworICBjb25zdCBhdXRvQ29tbWl0TWVudVJlZiA9IFJlYWN0LnVzZVJlZihudWxsKTsK KyAgY29uc3QgZXhwbGFpbk1lbnVSZWYgPSBSZWFjdC51c2VSZWYobnVsbCk7CisgIGNvbnN0IG1h Y3Jvc01lbnVSZWYgPSBSZWFjdC51c2VSZWYobnVsbCk7CisgIGNvbnN0IGZpbHRlck1lbnVSZWYg PSBSZWFjdC51c2VSZWYobnVsbCk7CisKKyAgY29uc3QgcXVlcnlUb29sUHJlZiA9IHF1ZXJ5VG9v bEN0eC5wcmVmZXJlbmNlcy5zcWxlZGl0b3I7CisgIGNvbnN0IHNldERpc2FibGVCdXR0b24gPSB1 c2VDYWxsYmFjaygobmFtZSwgZGlzYWJsZT10cnVlKT0+eworICAgIHNldEJ1dHRvbnNEaXNhYmxl ZCgocHJldik9Pih7Li4ucHJldiwgW25hbWVdOiBkaXNhYmxlfSkpOworICB9LCBbXSk7CisKKyAg Y29uc3QgZXhlY3V0ZVF1ZXJ5ID0gdXNlQ2FsbGJhY2soKCk9PnsKKyAgICBldmVudEJ1cy5maXJl RXZlbnQoUVVFUllfVE9PTF9FVkVOVFMuVFJJR0dFUl9FWEVDVVRJT04pOworICB9LCBbXSk7Cisg IGNvbnN0IGNhbmNlbFF1ZXJ5ID0gdXNlQ2FsbGJhY2soKCk9PnsKKyAgICBldmVudEJ1cy5maXJl RXZlbnQoUVVFUllfVE9PTF9FVkVOVFMuVFJJR0dFUl9TVE9QX0VYRUNVVElPTik7CisgIH0sIFtd KTsKKworICBjb25zdCBleHBsYWluID0gdXNlQ2FsbGJhY2soKGFuYWx5emU9ZmFsc2UpPT57Cisg ICAgZXZlbnRCdXMuZmlyZUV2ZW50KFFVRVJZX1RPT0xfRVZFTlRTLlRSSUdHRVJfRVhFQ1VUSU9O LCB7CisgICAgICBmb3JtYXQ6ICdqc29uJywKKyAgICAgIGFuYWx5emU6IGFuYWx5emUsCisgICAg ICB2ZXJib3NlOiBCb29sZWFuKGNoZWNrZWRNZW51SXRlbXNbJ2V4cGxhaW5fdmVyYm9zZSddKSwK KyAgICAgIGNvc3RzOiBCb29sZWFuKGNoZWNrZWRNZW51SXRlbXNbJ2V4cGxhaW5fY29zdHMnXSks CisgICAgICBidWZmZXJzOiBCb29sZWFuKGNoZWNrZWRNZW51SXRlbXNbJ2V4cGxhaW5fYnVmZmVy cyddKSwKKyAgICAgIHRpbWluZzogQm9vbGVhbihjaGVja2VkTWVudUl0ZW1zWydleHBsYWluX3Rp bWluZyddKSwKKyAgICAgIHN1bW1hcnk6IEJvb2xlYW4oY2hlY2tlZE1lbnVJdGVtc1snZXhwbGFp bl9zdW1tYXJ5J10pLAorICAgICAgc2V0dGluZ3M6IEJvb2xlYW4oY2hlY2tlZE1lbnVJdGVtc1sn ZXhwbGFpbl9zZXR0aW5ncyddKSwKKyAgICB9KTsKKyAgfSwgW2NoZWNrZWRNZW51SXRlbXNdKTsK KworICBjb25zdCBleHBsYWluQW5hbHlzZSA9IHVzZUNhbGxiYWNrKCgpPT57CisgICAgZXhwbGFp bih0cnVlKTsKKyAgfSwgW2V4cGxhaW5dKTsKKworICBjb25zdCBvcGVuTWVudSA9IHVzZUNhbGxi YWNrKChlKT0+eworICAgIHNldE1lbnVPcGVuSWQoZS5jdXJyZW50VGFyZ2V0Lm5hbWUpOworICB9 LCBbXSk7CisKKyAgY29uc3QgaGFuZGxlTWVudUNsb3NlID0gdXNlQ2FsbGJhY2soKCk9PnsKKyAg ICBzZXRNZW51T3BlbklkKG51bGwpOworICB9LCBbXSk7CisKKyAgY29uc3QgY2hlY2tNZW51Q2xp Y2sgPSB1c2VDYWxsYmFjaygoZSk9PnsKKyAgICBzZXRDaGVja2VkTWVudUl0ZW1zKChwcmV2KT0+ eworICAgICAgbGV0IG5ld1ZhbCA9ICFwcmV2W2UudmFsdWVdOworICAgICAgaWYoZS52YWx1ZSA9 PT0gJ2F1dG9fY29tbWl0JyB8fCBlLnZhbHVlID09PSAnYXV0b19yb2xsYmFjaycpIHsKKyAgICAg ICAgYXV0b0NvbW1pdFJvbGxiYWNrKGUudmFsdWUsIHF1ZXJ5VG9vbEN0eC5hcGksIHF1ZXJ5VG9v bEN0eC5wYXJhbXMudHJhbnNfaWQsIG5ld1ZhbCkKKyAgICAgICAgICAuY2F0Y2ggKChlcnJvcik9 PnsKKyAgICAgICAgICAgIG5ld1ZhbCA9IHByZXZbZS52YWx1ZV07CisgICAgICAgICAgICBldmVu dEJ1cy5maXJlRXZlbnQoUVVFUllfVE9PTF9FVkVOVFMuSEFORExFX0FQSV9FUlJPUiwgZXJyb3Is IHsKKyAgICAgICAgICAgICAgY2hlY2tUcmFuc2FjdGlvbjogdHJ1ZSwKKyAgICAgICAgICAgIH0p OworICAgICAgICAgIH0pOworICAgICAgfQorICAgICAgcmV0dXJuIHsKKyAgICAgICAgLi4ucHJl diwKKyAgICAgICAgW2UudmFsdWVdOiBuZXdWYWwsCisgICAgICB9OworICAgIH0pOworICB9LCBb XSk7CisKKyAgY29uc3Qgb3BlbkZpbGUgPSB1c2VDYWxsYmFjaygoKT0+eworICAgIGV2ZW50QnVz LmZpcmVFdmVudChRVUVSWV9UT09MX0VWRU5UUy5UUklHR0VSX0xPQURfRklMRSk7CisgIH0sIFtd KTsKKworICBjb25zdCBzYXZlRmlsZSA9IHVzZUNhbGxiYWNrKChzYXZlQXM9ZmFsc2UpPT57Cisg ICAgZXZlbnRCdXMuZmlyZUV2ZW50KFFVRVJZX1RPT0xfRVZFTlRTLlRSSUdHRVJfU0FWRV9GSUxF LCBzYXZlQXMpOworICB9LCBbXSk7CisKKyAgdXNlRWZmZWN0KCgpPT57CisgICAgZXZlbnRCdXMu cmVnaXN0ZXJMaXN0ZW5lcihRVUVSWV9UT09MX0VWRU5UUy5FWEVDVVRJT05fU1RBUlQsICgpPT57 CisgICAgICBzZXREaXNhYmxlQnV0dG9uKCdleGVjdXRlJywgdHJ1ZSk7CisgICAgICBzZXREaXNh YmxlQnV0dG9uKCdjYW5jZWwnLCBmYWxzZSk7CisgICAgICBzZXREaXNhYmxlQnV0dG9uKCdleHBs YWluJywgdHJ1ZSk7CisgICAgICBzZXREaXNhYmxlQnV0dG9uKCdleHBsYWluX2FuYWx5c2UnLCB0 cnVlKTsKKyAgICAgIHNldERpc2FibGVCdXR0b24oJ2xpbWl0JywgdHJ1ZSk7CisgICAgfSk7Cisg ICAgZXZlbnRCdXMucmVnaXN0ZXJMaXN0ZW5lcihRVUVSWV9UT09MX0VWRU5UUy5FWEVDVVRJT05f RU5ELCAoKT0+eworICAgICAgc2V0RGlzYWJsZUJ1dHRvbignZXhlY3V0ZScsIGZhbHNlKTsKKyAg ICAgIHNldERpc2FibGVCdXR0b24oJ2NhbmNlbCcsIHRydWUpOworICAgICAgc2V0RGlzYWJsZUJ1 dHRvbignZXhwbGFpbicsIGZhbHNlKTsKKyAgICAgIHNldERpc2FibGVCdXR0b24oJ2V4cGxhaW5f YW5hbHlzZScsIGZhbHNlKTsKKyAgICAgIHNldERpc2FibGVCdXR0b24oJ2xpbWl0JywgZmFsc2Up OworICAgIH0pOworICAgIGV2ZW50QnVzLnJlZ2lzdGVyTGlzdGVuZXIoUVVFUllfVE9PTF9FVkVO VFMuVFJJR0dFUl9TQVZFX1JFU1VMVFMsICgpPT57CisgICAgICBzZXREaXNhYmxlQnV0dG9uKCdl eGVjdXRlJywgdHJ1ZSk7CisgICAgICBzZXREaXNhYmxlQnV0dG9uKCdleHBsYWluJywgdHJ1ZSk7 CisgICAgICBzZXREaXNhYmxlQnV0dG9uKCdleHBsYWluX2FuYWx5c2UnLCB0cnVlKTsKKyAgICAg IHNldERpc2FibGVCdXR0b24oJ2xpbWl0JywgdHJ1ZSk7CisgICAgfSk7CisgICAgZXZlbnRCdXMu cmVnaXN0ZXJMaXN0ZW5lcihRVUVSWV9UT09MX0VWRU5UUy5UUklHR0VSX1NBVkVfUkVTVUxUU19F TkQsICgpPT57CisgICAgICBzZXREaXNhYmxlQnV0dG9uKCdleGVjdXRlJywgZmFsc2UpOworICAg ICAgc2V0RGlzYWJsZUJ1dHRvbignZXhwbGFpbicsIGZhbHNlKTsKKyAgICAgIHNldERpc2FibGVC dXR0b24oJ2V4cGxhaW5fYW5hbHlzZScsIGZhbHNlKTsKKyAgICAgIHNldERpc2FibGVCdXR0b24o J2xpbWl0JywgZmFsc2UpOworICAgIH0pOworICAgIGV2ZW50QnVzLnJlZ2lzdGVyTGlzdGVuZXIo UVVFUllfVE9PTF9FVkVOVFMuUVVFUllfQ0hBTkdFRCwgKGlzRGlydHkpPT57CisgICAgICBzZXRE aXNhYmxlQnV0dG9uKCdzYXZlJywgIWlzRGlydHkpOworICAgIH0pOworICAgIGV2ZW50QnVzLnJl Z2lzdGVyTGlzdGVuZXIoUVVFUllfVE9PTF9FVkVOVFMuREFUQUdSSURfQ0hBTkdFRCwgKGlzRGly dHkpPT57CisgICAgICBzZXREaXNhYmxlQnV0dG9uKCdzYXZlLWRhdGEnLCAhaXNEaXJ0eSk7Cisg ICAgfSk7CisgICAgZXZlbnRCdXMucmVnaXN0ZXJMaXN0ZW5lcihRVUVSWV9UT09MX0VWRU5UUy5T RUxFQ1RFRF9ST1dTX0NIQU5HRUQsIChjb3VudCk9PnsKKyAgICAgIHNldERpc2FibGVCdXR0b24o J2RlbGV0ZS1yb3dzJywgIWNvdW50KTsKKyAgICB9KTsKKyAgICBldmVudEJ1cy5yZWdpc3Rlckxp c3RlbmVyKFFVRVJZX1RPT0xfRVZFTlRTLlNFVF9GSUxURVJfSU5GTywgKGNhbkZpbHRlciwgZmls dGVyQXBwbGllZCk9PnsKKyAgICAgIHNldERpc2FibGVCdXR0b24oJ2ZpbHRlcicsICFjYW5GaWx0 ZXIpOworICAgICAgc2V0SGlnaGxpZ2h0RmlsdGVyKGZpbHRlckFwcGxpZWQpOworICAgIH0pOwor ICAgIGV2ZW50QnVzLnJlZ2lzdGVyTGlzdGVuZXIoUVVFUllfVE9PTF9FVkVOVFMuU0VUX0xJTUlU X1ZBTFVFLCAobCk9PnsKKyAgICAgIHNldExpbWl0KGwpOworICAgIH0pOworICB9LCBbXSk7CisK KyAgdXNlRWZmZWN0KCgpPT57CisgICAgc2V0RGlzYWJsZUJ1dHRvbignZXhlY3V0ZScsIHF1ZXJ5 VG9vbENvbm5DdHgub2J0YWluaW5nQ29ubik7CisgICAgc2V0RGlzYWJsZUJ1dHRvbignZXhwbGFp bicsIHF1ZXJ5VG9vbENvbm5DdHgub2J0YWluaW5nQ29ubik7CisgICAgc2V0RGlzYWJsZUJ1dHRv bignZXhwbGFpbl9hbmFseXNlJywgcXVlcnlUb29sQ29ubkN0eC5vYnRhaW5pbmdDb25uKTsKKyAg fSwgW3F1ZXJ5VG9vbENvbm5DdHgub2J0YWluaW5nQ29ubl0pOworCisgIGNvbnN0IGlzSW5UeG4g PSAoKT0+KHF1ZXJ5VG9vbENvbm5DdHguY29ubmVjdGlvblN0YXR1cyA9PSBDT05ORUNUSU9OX1NU QVRVUy5UUkFOU0FDVElPTl9TVEFUVVNfSU5UUkFOUworICAgIHx8IHF1ZXJ5VG9vbENvbm5DdHgu Y29ubmVjdGlvblN0YXR1cyA9PSBDT05ORUNUSU9OX1NUQVRVUy5UUkFOU0FDVElPTl9TVEFUVVNf SU5FUlJPUik7CisKKyAgY29uc3Qgb25FeGVjdXRpb25Eb25lID0gKCk9PnsKKyAgICBldmVudEJ1 cy5yZWdpc3Rlckxpc3RlbmVyKFFVRVJZX1RPT0xfRVZFTlRTLkVYRUNVVElPTl9FTkQsIChzdWNj ZXNzKT0+eworICAgICAgaWYoc3VjY2VzcykgeworICAgICAgICBldmVudEJ1cy5maXJlRXZlbnQo UVVFUllfVE9PTF9FVkVOVFMuRk9SQ0VfQ0xPU0VfUEFORUwpOworICAgICAgfQorICAgIH0sIHRy dWUpOworICB9OworICBjb25zdCB3YXJuVHhuQ2xvc2UgPSAoKT0+eworICAgIGlmKCFpc0luVHhu KCkpIHsKKyAgICAgIGV2ZW50QnVzLmZpcmVFdmVudChRVUVSWV9UT09MX0VWRU5UUy5GT1JDRV9D TE9TRV9QQU5FTCk7CisgICAgICByZXR1cm47CisgICAgfQorICAgIHF1ZXJ5VG9vbEN0eC5tb2Rh bC5zaG93TW9kYWwoZ2V0dGV4dCgnQ29tbWl0IHRyYW5zYWN0aW9uPycpLCAoY2xvc2VNb2RhbCk9 PigKKyAgICAgIDxDb25maXJtVHJhbnNhY3Rpb25Db250ZW50CisgICAgICAgIGNsb3NlTW9kYWw9 e2Nsb3NlTW9kYWx9CisgICAgICAgIHRleHQ9e2dldHRleHQoJ1RoZSBjdXJyZW50IHRyYW5zYWN0 aW9uIGlzIG5vdCBjb21taXRlZCB0byB0aGUgZGF0YWJhc2UuICcKKyAgICAgICAgICArJ0RvIHlv dSB3YW50IHRvIGNvbW1pdCBvciByb2xsYmFjayB0aGUgdHJhbnNhY3Rpb24/Jyl9CisgICAgICAg IG9uUm9sbGJhY2s9eygpPT57CisgICAgICAgICAgb25FeGVjdXRpb25Eb25lKCk7CisgICAgICAg ICAgb25Sb2xsYmFja0NsaWNrKCk7CisgICAgICAgIH19CisgICAgICAgIG9uQ29tbWl0PXsoKT0+ eworICAgICAgICAgIG9uRXhlY3V0aW9uRG9uZSgpOworICAgICAgICAgIG9uQ29tbWl0Q2xpY2so KTsKKyAgICAgICAgfX0KKyAgICAgIC8+CisgICAgKSk7CisgIH07CisgIHVzZUVmZmVjdCgoKT0+ eworICAgIGlmKGlzSW5UeG4oKSkgeworICAgICAgc2V0RGlzYWJsZUJ1dHRvbignY29tbWl0Jywg ZmFsc2UpOworICAgICAgc2V0RGlzYWJsZUJ1dHRvbigncm9sbGJhY2snLCBmYWxzZSk7CisgICAg fSBlbHNlIHsKKyAgICAgIHNldERpc2FibGVCdXR0b24oJ2NvbW1pdCcsIHRydWUpOworICAgICAg c2V0RGlzYWJsZUJ1dHRvbigncm9sbGJhY2snLCB0cnVlKTsKKyAgICB9CisgICAgZXZlbnRCdXMu cmVnaXN0ZXJMaXN0ZW5lcihRVUVSWV9UT09MX0VWRU5UUy5XQVJOX1RYTl9DTE9TRSwgd2FyblR4 bkNsb3NlKTsKKyAgICByZXR1cm4gKCk9PnsKKyAgICAgIGV2ZW50QnVzLmRlcmVnaXN0ZXJMaXN0 ZW5lcihRVUVSWV9UT09MX0VWRU5UUy5XQVJOX1RYTl9DTE9TRSwgd2FyblR4bkNsb3NlKTsKKyAg ICB9OworICB9LCBbcXVlcnlUb29sQ29ubkN0eC5jb25uZWN0aW9uU3RhdHVzXSk7CisKKyAgY29u c3Qgb25Db21taXRDbGljaz0oKT0+eworICAgIGV2ZW50QnVzLmZpcmVFdmVudChRVUVSWV9UT09M X0VWRU5UUy5FWEVDVVRJT05fU1RBUlQsICdDT01NSVQ7JywgbnVsbCwgdHJ1ZSk7CisgIH07Cisg IGNvbnN0IG9uUm9sbGJhY2tDbGljaz0oKT0+eworICAgIGV2ZW50QnVzLmZpcmVFdmVudChRVUVS WV9UT09MX0VWRU5UUy5FWEVDVVRJT05fU1RBUlQsICdST0xMQkFDSzsnLCBudWxsLCB0cnVlKTsK KyAgfTsKKyAgY29uc3QgZXhlY3V0ZU1hY3JvID0gKG0pPT57CisgICAgZXZlbnRCdXMuZmlyZUV2 ZW50KFFVRVJZX1RPT0xfRVZFTlRTLkVYRUNVVElPTl9TVEFSVCwgbS5zcWwsIG51bGwsIHRydWUp OworICB9OworICBjb25zdCBvbkxpbWl0Q2hhbmdlPShlKT0+eworICAgIHNldExpbWl0KGUudGFy Z2V0LnZhbHVlKTsKKyAgICBldmVudEJ1cy5maXJlRXZlbnQoUVVFUllfVE9PTF9FVkVOVFMuVFJJ R0dFUl9TRVRfTElNSVQsZS50YXJnZXQudmFsdWUpOworICB9OworICBjb25zdCBmb3JtYXRTUUw9 KCk9PnsKKyAgICBldmVudEJ1cy5maXJlRXZlbnQoUVVFUllfVE9PTF9FVkVOVFMuVFJJR0dFUl9G T1JNQVRfU1FMKTsKKyAgfTsKKworICB1c2VFZmZlY3QoKCk9PnsKKyAgICBpZihxdWVyeVRvb2xQ cmVmKSB7CisgICAgICAvKiBHZXQgdGhlIHByZWZzIGZpcnN0IHRpbWUgKi8KKyAgICAgIGlmKF8u aXNVbmRlZmluZWQoY2hlY2tlZE1lbnVJdGVtcy5hdXRvX2NvbW1pdCkpIHsKKyAgICAgICAgc2V0 Q2hlY2tlZE1lbnVJdGVtcyh7CisgICAgICAgICAgYXV0b19jb21taXQ6IHF1ZXJ5VG9vbFByZWYu YXV0b19jb21taXQsCisgICAgICAgICAgYXV0b19yb2xsYmFjazogcXVlcnlUb29sUHJlZi5hdXRv X3JvbGxiYWNrLAorICAgICAgICAgIGV4cGxhaW5fdmVyYm9zZTogcXVlcnlUb29sUHJlZi5leHBs YWluX3ZlcmJvc2UsCisgICAgICAgICAgZXhwbGFpbl9jb3N0czogcXVlcnlUb29sUHJlZi5leHBs YWluX2Nvc3RzLAorICAgICAgICAgIGV4cGxhaW5fYnVmZmVyczogcXVlcnlUb29sUHJlZi5leHBs YWluX2J1ZmZlcnMsCisgICAgICAgICAgZXhwbGFpbl90aW1pbmc6IHF1ZXJ5VG9vbFByZWYuZXhw bGFpbl90aW1pbmcsCisgICAgICAgICAgZXhwbGFpbl9zdW1tYXJ5OiBxdWVyeVRvb2xQcmVmLmV4 cGxhaW5fc3VtbWFyeSwKKyAgICAgICAgICBleHBsYWluX3NldHRpbmdzOiBxdWVyeVRvb2xQcmVm LmV4cGxhaW5fc2V0dGluZ3MsCisgICAgICAgIH0pOworICAgICAgfQorICAgIH0KKyAgfSwgW3F1 ZXJ5VG9vbFByZWZdKTsKKworICAvKiBCdXR0b24gc2hvcnRjdXRzICovCisgIHVzZUtleWJvYXJk U2hvcnRjdXRzKFsKKyAgICB7CisgICAgICBzaG9ydGN1dDogcXVlcnlUb29sUHJlZi5leGVjdXRl X3F1ZXJ5LAorICAgICAgb3B0aW9uczogeworICAgICAgICBjYWxsYmFjazogKCk9PntleGVjdXRl UXVlcnkoKTt9CisgICAgICB9CisgICAgfSwKKyAgICB7CisgICAgICBzaG9ydGN1dDogcXVlcnlU b29sUHJlZi5leHBsYWluX3F1ZXJ5LAorICAgICAgb3B0aW9uczogeworICAgICAgICBjYWxsYmFj azogKGUpPT57ZS5wcmV2ZW50RGVmYXVsdCgpO2V4cGxhaW4oKTt9CisgICAgICB9CisgICAgfSwK KyAgICB7CisgICAgICBzaG9ydGN1dDogcXVlcnlUb29sUHJlZi5leHBsYWluX2FuYWx5emVfcXVl cnksCisgICAgICBvcHRpb25zOiB7CisgICAgICAgIGNhbGxiYWNrOiAoKT0+e2V4cGxhaW5BbmFs eXNlKCk7fQorICAgICAgfQorICAgIH0sCisgICAgeworICAgICAgc2hvcnRjdXQ6IHF1ZXJ5VG9v bFByZWYuY29tbWl0X3RyYW5zYWN0aW9uLAorICAgICAgb3B0aW9uczogeworICAgICAgICBjYWxs YmFjazogKCk9PntvbkNvbW1pdENsaWNrKCk7fQorICAgICAgfQorICAgIH0sCisgICAgeworICAg ICAgc2hvcnRjdXQ6IHF1ZXJ5VG9vbFByZWYucm9sbGJhY2tfdHJhbnNhY3Rpb24sCisgICAgICBv cHRpb25zOiB7CisgICAgICAgIGNhbGxiYWNrOiAoKT0+e29uUm9sbGJhY2tDbGljaygpO30KKyAg ICAgIH0KKyAgICB9LAorICAgIHsKKyAgICAgIHNob3J0Y3V0OiBGSVhFRF9QUkVGLmZvcm1hdF9z cWwsCisgICAgICBvcHRpb25zOiB7CisgICAgICAgIGNhbGxiYWNrOiAoKT0+e2Zvcm1hdFNRTCgp O30KKyAgICAgIH0KKyAgICB9LAorICBdLCBjb250YWluZXJSZWYpOworCisgIC8qIE1hY3JvIHNo b3J0Y3V0cyAqLworICB1c2VLZXlib2FyZFNob3J0Y3V0cygKKyAgICBxdWVyeVRvb2xDdHgucGFy YW1zPy5tYWNyb3M/Lm1hcCgobSk9PnsKKyAgICAgIHJldHVybiB7CisgICAgICAgIHNob3J0Y3V0 OiB7CisgICAgICAgICAgLi4ubSwKKyAgICAgICAgICAna2V5JzogeworICAgICAgICAgICAgJ2tl eV9jb2RlJzogbS5rZXlfY29kZSwKKyAgICAgICAgICAgICdjaGFyJzogbS5rZXksCisgICAgICAg ICAgfSwKKyAgICAgICAgfSwKKyAgICAgICAgb3B0aW9uczogeworICAgICAgICAgIGNhbGxiYWNr OiAoKT0+e2V4ZWN1dGVNYWNybyhtKTt9CisgICAgICAgIH0KKyAgICAgIH07CisgICAgfSkgfHwg W10sCisgICAgY29udGFpbmVyUmVmCisgICk7CisKKyAgcmV0dXJuICgKKyAgICA8PgorICAgICAg PEJveCBjbGFzc05hbWU9e2NsYXNzZXMucm9vdH0+CisgICAgICAgIDxQZ0J1dHRvbkdyb3VwIHNp emU9InNtYWxsIj4KKyAgICAgICAgICA8UGdJY29uQnV0dG9uIHRpdGxlPXtnZXR0ZXh0KCdPcGVu IEZpbGUnKX0gaWNvbj17PEZvbGRlclJvdW5kZWRJY29uIC8+fSBkaXNhYmxlZD17IXF1ZXJ5VG9v bEN0eC5wYXJhbXMuaXNfcXVlcnlfdG9vbH0KKyAgICAgICAgICAgIGFjY2Vzc2tleT17c2hvcnRj dXRfa2V5KHF1ZXJ5VG9vbFByZWYuYnRuX29wZW5fZmlsZSl9IG9uQ2xpY2s9e29wZW5GaWxlfSAv PgorICAgICAgICAgIDxQZ0ljb25CdXR0b24gdGl0bGU9e2dldHRleHQoJ1NhdmUgRmlsZScpfSBp Y29uPXs8U2F2ZVJvdW5kZWRJY29uIC8+fQorICAgICAgICAgICAgYWNjZXNza2V5PXtzaG9ydGN1 dF9rZXkocXVlcnlUb29sUHJlZi5idG5fc2F2ZV9maWxlKX0gZGlzYWJsZWQ9e2J1dHRvbnNEaXNh YmxlZFsnc2F2ZSddIHx8ICFxdWVyeVRvb2xDdHgucGFyYW1zLmlzX3F1ZXJ5X3Rvb2x9CisgICAg ICAgICAgICBvbkNsaWNrPXsoKT0+e3NhdmVGaWxlKGZhbHNlKTt9fSAvPgorICAgICAgICAgIDxQ Z0ljb25CdXR0b24gdGl0bGU9e2dldHRleHQoJ0ZpbGUnKX0gaWNvbj17PEtleWJvYXJkQXJyb3dE b3duSWNvbiAvPn0gc3BsaXRCdXR0b24gZGlzYWJsZWQ9eyFxdWVyeVRvb2xDdHgucGFyYW1zLmlz X3F1ZXJ5X3Rvb2x9CisgICAgICAgICAgICBuYW1lPSJtZW51LXNhdmVhcyIgcmVmPXtzYXZlQXNN ZW51UmVmfSBvbkNsaWNrPXtvcGVuTWVudX0KKyAgICAgICAgICAvPgorICAgICAgICA8L1BnQnV0 dG9uR3JvdXA+CisgICAgICAgIDxQZ0J1dHRvbkdyb3VwIHNpemU9InNtYWxsIj4KKyAgICAgICAg ICA8UGdJY29uQnV0dG9uIHRpdGxlPXtnZXR0ZXh0KCdFZGl0Jyl9IGljb249eworICAgICAgICAg ICAgPD48RWRpdFJvdW5kZWRJY29uIC8+PEtleWJvYXJkQXJyb3dEb3duSWNvbiBzdHlsZT17e21h cmdpbkxlZnQ6ICctMTBweCd9fSAvPjwvPn0KKyAgICAgICAgICBkaXNhYmxlZD17IXF1ZXJ5VG9v bEN0eC5wYXJhbXMuaXNfcXVlcnlfdG9vbH0KKyAgICAgICAgICBuYW1lPSJtZW51LWVkaXQiIHJl Zj17ZWRpdE1lbnVSZWZ9IG9uQ2xpY2s9e29wZW5NZW51fSAvPgorICAgICAgICA8L1BnQnV0dG9u R3JvdXA+CisgICAgICAgIDxQZ0J1dHRvbkdyb3VwIHNpemU9InNtYWxsIiBjb2xvcj17aGlnaGxp Z2h0RmlsdGVyID8gJ3ByaW1hcnknIDogJ2RlZmF1bHQnfT4KKyAgICAgICAgICA8UGdJY29uQnV0 dG9uIHRpdGxlPXtnZXR0ZXh0KCdGaWx0ZXInKX0gaWNvbj17PEZpbHRlckljb24gLz59CisgICAg ICAgICAgICBvbkNsaWNrPXtvbkZpbHRlckNsaWNrfSBkaXNhYmxlZD17YnV0dG9uc0Rpc2FibGVk WydmaWx0ZXInXX0gYWNjZXNza2V5PXtzaG9ydGN1dF9rZXkocXVlcnlUb29sUHJlZi5idG5fZmls dGVyX2RpYWxvZyl9Lz4KKyAgICAgICAgICA8UGdJY29uQnV0dG9uIHRpdGxlPXtnZXR0ZXh0KCdG aWx0ZXIgb3B0aW9ucycpfSBpY29uPXs8S2V5Ym9hcmRBcnJvd0Rvd25JY29uIC8+fSBzcGxpdEJ1 dHRvbgorICAgICAgICAgICAgZGlzYWJsZWQ9e2J1dHRvbnNEaXNhYmxlZFsnZmlsdGVyJ119IG5h bWU9Im1lbnUtZmlsdGVyIiByZWY9e2ZpbHRlck1lbnVSZWZ9IGFjY2Vzc2tleT17c2hvcnRjdXRf a2V5KHF1ZXJ5VG9vbFByZWYuYnRuX2ZpbHRlcl9vcHRpb25zKX0KKyAgICAgICAgICAgIG9uQ2xp Y2s9e29wZW5NZW51fSAvPgorICAgICAgICA8L1BnQnV0dG9uR3JvdXA+CisgICAgICAgIDxJbnB1 dFNlbGVjdE5vblNlYXJjaCBvcHRpb25zPXtbCisgICAgICAgICAge2xhYmVsOiBnZXR0ZXh0KCdO byBsaW1pdCcpLCB2YWx1ZTogJy0xJ30sCisgICAgICAgICAge2xhYmVsOiBnZXR0ZXh0KCcxMDAw IHJvd3MnKSwgdmFsdWU6ICcxMDAwJ30sCisgICAgICAgICAge2xhYmVsOiBnZXR0ZXh0KCc1MDAg cm93cycpLCB2YWx1ZTogJzUwMCd9LAorICAgICAgICAgIHtsYWJlbDogZ2V0dGV4dCgnMTAwIHJv d3MnKSwgdmFsdWU6ICcxMDAnfSwKKyAgICAgICAgXX0gdmFsdWU9e2xpbWl0fSBvbkNoYW5nZT17 b25MaW1pdENoYW5nZX0gZGlzYWJsZWQ9e2J1dHRvbnNEaXNhYmxlZFsnbGltaXQnXSB8fCBxdWVy eVRvb2xDdHgucGFyYW1zLmlzX3F1ZXJ5X3Rvb2x9IC8+CisgICAgICAgIDxQZ0J1dHRvbkdyb3Vw IHNpemU9InNtYWxsIj4KKyAgICAgICAgICA8UGdJY29uQnV0dG9uIHRpdGxlPXtnZXR0ZXh0KCdD YW5jZWwgcXVlcnknKX0gaWNvbj17PFN0b3BSb3VuZGVkSWNvbiBzdHlsZT17e2hlaWdodDogJ3Vu c2V0J319IC8+fQorICAgICAgICAgICAgb25DbGljaz17Y2FuY2VsUXVlcnl9IGRpc2FibGVkPXti dXR0b25zRGlzYWJsZWRbJ2NhbmNlbCddfSBhY2Nlc3NrZXk9e3Nob3J0Y3V0X2tleShxdWVyeVRv b2xQcmVmLmJ0bl9jYW5jZWxfcXVlcnkpfSAvPgorICAgICAgICAgIDxQZ0ljb25CdXR0b24gdGl0 bGU9e2dldHRleHQoJ0V4ZWN1dGUvUmVmcmVzaCcpfSBpY29uPXs8UGxheUFycm93Um91bmRlZElj b24gc3R5bGU9e3toZWlnaHQ6ICd1bnNldCd9fSAvPn0KKyAgICAgICAgICAgIG9uQ2xpY2s9e2V4 ZWN1dGVRdWVyeX0gZGlzYWJsZWQ9e2J1dHRvbnNEaXNhYmxlZFsnZXhlY3V0ZSddfSBzaG9ydGN1 dD17cXVlcnlUb29sUHJlZi5leGVjdXRlX3F1ZXJ5fS8+CisgICAgICAgICAgPFBnSWNvbkJ1dHRv biB0aXRsZT17Z2V0dGV4dCgnRXhlY3V0ZSBvcHRpb25zJyl9IGljb249ezxLZXlib2FyZEFycm93 RG93bkljb24gLz59IHNwbGl0QnV0dG9uCisgICAgICAgICAgICBuYW1lPSJtZW51LWF1dG9jb21t aXQiIHJlZj17YXV0b0NvbW1pdE1lbnVSZWZ9IGFjY2Vzc2tleT17c2hvcnRjdXRfa2V5KHF1ZXJ5 VG9vbFByZWYuYnRuX2RlbGV0ZV9yb3cpfQorICAgICAgICAgICAgb25DbGljaz17b3Blbk1lbnV9 IC8+CisgICAgICAgIDwvUGdCdXR0b25Hcm91cD4KKyAgICAgICAgPFBnQnV0dG9uR3JvdXAgc2l6 ZT0ic21hbGwiPgorICAgICAgICAgIDxQZ0ljb25CdXR0b24gdGl0bGU9e2dldHRleHQoJ0V4cGxh aW4nKX0gaWNvbj17PEV4cGxpY2l0Um91bmRlZEljb24gLz59CisgICAgICAgICAgICBvbkNsaWNr PXsoKT0+e2V4cGxhaW4oKTt9fSBkaXNhYmxlZD17YnV0dG9uc0Rpc2FibGVkWydleHBsYWluJ10g fHwgIXF1ZXJ5VG9vbEN0eC5wYXJhbXMuaXNfcXVlcnlfdG9vbH0gc2hvcnRjdXQ9e3F1ZXJ5VG9v bFByZWYuZXhwbGFpbl9xdWVyeX0vPgorICAgICAgICAgIDxQZ0ljb25CdXR0b24gdGl0bGU9e2dl dHRleHQoJ0V4cGxhaW4gQW5hbHl6ZScpfSBpY29uPXs8QXNzZXNzbWVudFJvdW5kZWRJY29uIC8+ fQorICAgICAgICAgICAgb25DbGljaz17KCk9PntleHBsYWluQW5hbHlzZSgpO319IGRpc2FibGVk PXtidXR0b25zRGlzYWJsZWRbJ2V4cGxhaW5fYW5hbHlzZSddIHx8ICFxdWVyeVRvb2xDdHgucGFy YW1zLmlzX3F1ZXJ5X3Rvb2x9IHNob3J0Y3V0PXtxdWVyeVRvb2xQcmVmLmV4cGxhaW5fYW5hbHl6 ZV9xdWVyeX0vPgorICAgICAgICAgIDxQZ0ljb25CdXR0b24gdGl0bGU9e2dldHRleHQoJ0V4cGxh aW4gU2V0dGluZ3MnKX0gaWNvbj17PEtleWJvYXJkQXJyb3dEb3duSWNvbiAvPn0gc3BsaXRCdXR0 b24KKyAgICAgICAgICAgIGRpc2FibGVkPXshcXVlcnlUb29sQ3R4LnBhcmFtcy5pc19xdWVyeV90 b29sfQorICAgICAgICAgICAgbmFtZT0ibWVudS1leHBsYWluIiByZWY9e2V4cGxhaW5NZW51UmVm fSBvbkNsaWNrPXtvcGVuTWVudX0gLz4KKyAgICAgICAgPC9QZ0J1dHRvbkdyb3VwPgorICAgICAg ICA8UGdCdXR0b25Hcm91cCBzaXplPSJzbWFsbCI+CisgICAgICAgICAgPFBnSWNvbkJ1dHRvbiB0 aXRsZT17Z2V0dGV4dCgnQ29tbWl0Jyl9IGljb249ezxDb21taXRJY29uIC8+fQorICAgICAgICAg ICAgb25DbGljaz17b25Db21taXRDbGlja30gZGlzYWJsZWQ9e2J1dHRvbnNEaXNhYmxlZFsnY29t bWl0J119IHNob3J0Y3V0PXtxdWVyeVRvb2xQcmVmLmNvbW1pdF90cmFuc2FjdGlvbn0vPgorICAg ICAgICAgIDxQZ0ljb25CdXR0b24gdGl0bGU9e2dldHRleHQoJ1JvbGxiYWNrJyl9IGljb249ezxS b2xsYmFja0ljb24gLz59CisgICAgICAgICAgICBvbkNsaWNrPXtvblJvbGxiYWNrQ2xpY2t9IGRp c2FibGVkPXtidXR0b25zRGlzYWJsZWRbJ3JvbGxiYWNrJ119IHNob3J0Y3V0PXtxdWVyeVRvb2xQ cmVmLnJvbGxiYWNrX3RyYW5zYWN0aW9ufS8+CisgICAgICAgIDwvUGdCdXR0b25Hcm91cD4KKyAg ICAgICAgPFBnQnV0dG9uR3JvdXAgc2l6ZT0ic21hbGwiPgorICAgICAgICAgIDxQZ0ljb25CdXR0 b24gdGl0bGU9e2dldHRleHQoJ01hY3JvcycpfSBpY29uPXsKKyAgICAgICAgICAgIDw+PEZvcm1h dExpc3ROdW1iZXJlZFJvdW5kZWRJY29uIC8+PEtleWJvYXJkQXJyb3dEb3duSWNvbiBzdHlsZT17 e21hcmdpbkxlZnQ6ICctMTBweCd9fSAvPjwvPn0KKyAgICAgICAgICBkaXNhYmxlZD17IXF1ZXJ5 VG9vbEN0eC5wYXJhbXMuaXNfcXVlcnlfdG9vbH0gbmFtZT0ibWVudS1tYWNyb3MiIHJlZj17bWFj cm9zTWVudVJlZn0gb25DbGljaz17b3Blbk1lbnV9IC8+CisgICAgICAgIDwvUGdCdXR0b25Hcm91 cD4KKyAgICAgIDwvQm94PgorICAgICAgPFBnTWVudQorICAgICAgICBhbmNob3JSZWY9e3NhdmVB c01lbnVSZWZ9CisgICAgICAgIG9wZW49e21lbnVPcGVuSWQ9PSdtZW51LXNhdmVhcyd9CisgICAg ICAgIG9uQ2xvc2U9e2hhbmRsZU1lbnVDbG9zZX0KKyAgICAgID4KKyAgICAgICAgPFBnTWVudUl0 ZW0gb25DbGljaz17KCk9PntzYXZlRmlsZSh0cnVlKTt9fT57Z2V0dGV4dCgnU2F2ZSBhcycpfTwv UGdNZW51SXRlbT4KKyAgICAgIDwvUGdNZW51PgorICAgICAgPFBnTWVudQorICAgICAgICBhbmNo b3JSZWY9e2VkaXRNZW51UmVmfQorICAgICAgICBvcGVuPXttZW51T3BlbklkPT0nbWVudS1lZGl0 J30KKyAgICAgICAgb25DbG9zZT17aGFuZGxlTWVudUNsb3NlfQorICAgICAgPgorICAgICAgICA8 UGdNZW51SXRlbSBzaG9ydGN1dD17RklYRURfUFJFRi5maW5kfQorICAgICAgICAgIG9uQ2xpY2s9 eygpPT57ZXZlbnRCdXMuZmlyZUV2ZW50KFFVRVJZX1RPT0xfRVZFTlRTLkVESVRPUl9GSU5EX1JF UExBQ0UsIGZhbHNlKTt9fT57Z2V0dGV4dCgnRmluZCcpfTwvUGdNZW51SXRlbT4KKyAgICAgICAg PFBnTWVudUl0ZW0gc2hvcnRjdXQ9e0ZJWEVEX1BSRUYucmVwbGFjZX0KKyAgICAgICAgICBvbkNs aWNrPXsoKT0+e2V2ZW50QnVzLmZpcmVFdmVudChRVUVSWV9UT09MX0VWRU5UUy5FRElUT1JfRklO RF9SRVBMQUNFLCB0cnVlKTt9fT57Z2V0dGV4dCgnUmVwbGFjZScpfTwvUGdNZW51SXRlbT4KKyAg ICAgICAgPFBnTWVudUl0ZW0gc2hvcnRjdXQ9e0ZJWEVEX1BSRUYuanVtcH0KKyAgICAgICAgICBv bkNsaWNrPXsoKT0+e2V2ZW50QnVzLmZpcmVFdmVudChRVUVSWV9UT09MX0VWRU5UUy5FRElUT1Jf RVhFQ19DTUQsICdqdW1wVG9MaW5lJyk7fX0+e2dldHRleHQoJ0p1bXAnKX08L1BnTWVudUl0ZW0+ CisgICAgICAgIDxQZ01lbnVEaXZpZGVyIC8+CisgICAgICAgIDxQZ01lbnVJdGVtIHNob3J0Y3V0 PXtGSVhFRF9QUkVGLmluZGVudH0KKyAgICAgICAgICBvbkNsaWNrPXsoKT0+e2V2ZW50QnVzLmZp cmVFdmVudChRVUVSWV9UT09MX0VWRU5UUy5FRElUT1JfRVhFQ19DTUQsICdpbmRlbnRNb3JlJyk7 fX0+e2dldHRleHQoJ0luZGVudCcpfTwvUGdNZW51SXRlbT4KKyAgICAgICAgPFBnTWVudUl0ZW0g c2hvcnRjdXQ9e0ZJWEVEX1BSRUYudW5pbmRlbnR9CisgICAgICAgICAgb25DbGljaz17KCk9Pntl dmVudEJ1cy5maXJlRXZlbnQoUVVFUllfVE9PTF9FVkVOVFMuRURJVE9SX0VYRUNfQ01ELCAnaW5k ZW50TGVzcycpO319PntnZXR0ZXh0KCdVbmluZGVudCcpfTwvUGdNZW51SXRlbT4KKyAgICAgICAg PFBnTWVudUl0ZW0gc2hvcnRjdXQ9e0ZJWEVEX1BSRUYuY29tbWVudH0KKyAgICAgICAgICBvbkNs aWNrPXsoKT0+e2V2ZW50QnVzLmZpcmVFdmVudChRVUVSWV9UT09MX0VWRU5UUy5FRElUT1JfRVhF Q19DTUQsICd0b2dnbGVDb21tZW50Jyk7fX0+e2dldHRleHQoJ1RvZ2dsZSBjb21tZW50Jyl9PC9Q Z01lbnVJdGVtPgorICAgICAgICA8UGdNZW51SXRlbSBhY2Nlc3NrZXk9e3Nob3J0Y3V0X2tleShx dWVyeVRvb2xQcmVmLmJ0bl9jbGVhcl9vcHRpb25zKX0KKyAgICAgICAgICBvbkNsaWNrPXsoKT0+ e2V2ZW50QnVzLmZpcmVFdmVudChRVUVSWV9UT09MX0VWRU5UUy5FRElUT1JfU0VUX1NRTCwgJycp O319PntnZXR0ZXh0KCdDbGVhciBxdWVyeScpfTwvUGdNZW51SXRlbT4KKyAgICAgICAgPFBnTWVu dURpdmlkZXIgLz4KKyAgICAgICAgPFBnTWVudUl0ZW0gc2hvcnRjdXQ9e0ZJWEVEX1BSRUYuZm9y bWF0X3NxbH1vbkNsaWNrPXtmb3JtYXRTUUx9PntnZXR0ZXh0KCdGb3JtYXQgU1FMJyl9PC9QZ01l bnVJdGVtPgorICAgICAgPC9QZ01lbnU+CisgICAgICA8UGdNZW51CisgICAgICAgIGFuY2hvclJl Zj17ZmlsdGVyTWVudVJlZn0KKyAgICAgICAgb3Blbj17bWVudU9wZW5JZD09J21lbnUtZmlsdGVy J30KKyAgICAgICAgb25DbG9zZT17aGFuZGxlTWVudUNsb3NlfQorICAgICAgPgorICAgICAgICA8 UGdNZW51SXRlbSBvbkNsaWNrPXsoKT0+e2V2ZW50QnVzLmZpcmVFdmVudChRVUVSWV9UT09MX0VW RU5UUy5UUklHR0VSX0lOQ0xVREVfRVhDTFVERV9GSUxURVIsIHRydWUpO319PntnZXR0ZXh0KCdG aWx0ZXIgYnkgU2VsZWN0aW9uJyl9PC9QZ01lbnVJdGVtPgorICAgICAgICA8UGdNZW51SXRlbSBv bkNsaWNrPXsoKT0+e2V2ZW50QnVzLmZpcmVFdmVudChRVUVSWV9UT09MX0VWRU5UUy5UUklHR0VS X0lOQ0xVREVfRVhDTFVERV9GSUxURVIsIGZhbHNlKTt9fT57Z2V0dGV4dCgnRXhjbHVkZSBieSBT ZWxlY3Rpb24nKX08L1BnTWVudUl0ZW0+CisgICAgICAgIDxQZ01lbnVJdGVtIG9uQ2xpY2s9eygp PT57ZXZlbnRCdXMuZmlyZUV2ZW50KFFVRVJZX1RPT0xfRVZFTlRTLlRSSUdHRVJfUkVNT1ZFX0ZJ TFRFUik7fX0+e2dldHRleHQoJ1JlbW92ZSBTb3J0L0ZpbHRlcicpfTwvUGdNZW51SXRlbT4KKyAg ICAgIDwvUGdNZW51PgorICAgICAgPFBnTWVudQorICAgICAgICBhbmNob3JSZWY9e2F1dG9Db21t aXRNZW51UmVmfQorICAgICAgICBvcGVuPXttZW51T3BlbklkPT0nbWVudS1hdXRvY29tbWl0J30K KyAgICAgICAgb25DbG9zZT17aGFuZGxlTWVudUNsb3NlfQorICAgICAgPgorICAgICAgICA8UGdN ZW51SXRlbSBoYXNDaGVjayB2YWx1ZT0iYXV0b19jb21taXQiIGNoZWNrZWQ9e2NoZWNrZWRNZW51 SXRlbXNbJ2F1dG9fY29tbWl0J119CisgICAgICAgICAgb25DbGljaz17Y2hlY2tNZW51Q2xpY2t9 PntnZXR0ZXh0KCdBdXRvIGNvbW1pdD8nKX08L1BnTWVudUl0ZW0+CisgICAgICAgIDxQZ01lbnVJ dGVtIGhhc0NoZWNrIHZhbHVlPSJhdXRvX3JvbGxiYWNrIiBjaGVja2VkPXtjaGVja2VkTWVudUl0 ZW1zWydhdXRvX3JvbGxiYWNrJ119CisgICAgICAgICAgb25DbGljaz17Y2hlY2tNZW51Q2xpY2t9 PntnZXR0ZXh0KCdBdXRvIHJvbGxiYWNrIG9uIGVycm9yPycpfTwvUGdNZW51SXRlbT4KKyAgICAg IDwvUGdNZW51PgorICAgICAgPFBnTWVudQorICAgICAgICBhbmNob3JSZWY9e2V4cGxhaW5NZW51 UmVmfQorICAgICAgICBvcGVuPXttZW51T3BlbklkPT0nbWVudS1leHBsYWluJ30KKyAgICAgICAg b25DbG9zZT17aGFuZGxlTWVudUNsb3NlfQorICAgICAgPgorICAgICAgICA8UGdNZW51SXRlbSBo YXNDaGVjayB2YWx1ZT0iZXhwbGFpbl92ZXJib3NlIiBjaGVja2VkPXtjaGVja2VkTWVudUl0ZW1z WydleHBsYWluX3ZlcmJvc2UnXX0KKyAgICAgICAgICBvbkNsaWNrPXtjaGVja01lbnVDbGlja30+ e2dldHRleHQoJ1ZlcmJvc2UnKX08L1BnTWVudUl0ZW0+CisgICAgICAgIDxQZ01lbnVJdGVtIGhh c0NoZWNrIHZhbHVlPSJleHBsYWluX2Nvc3RzIiBjaGVja2VkPXtjaGVja2VkTWVudUl0ZW1zWydl eHBsYWluX2Nvc3RzJ119CisgICAgICAgICAgb25DbGljaz17Y2hlY2tNZW51Q2xpY2t9PntnZXR0 ZXh0KCdDb3N0cycpfTwvUGdNZW51SXRlbT4KKyAgICAgICAgPFBnTWVudUl0ZW0gaGFzQ2hlY2sg dmFsdWU9ImV4cGxhaW5fYnVmZmVycyIgY2hlY2tlZD17Y2hlY2tlZE1lbnVJdGVtc1snZXhwbGFp bl9idWZmZXJzJ119CisgICAgICAgICAgb25DbGljaz17Y2hlY2tNZW51Q2xpY2t9PntnZXR0ZXh0 KCdCdWZmZXJzJyl9PC9QZ01lbnVJdGVtPgorICAgICAgICA8UGdNZW51SXRlbSBoYXNDaGVjayB2 YWx1ZT0iZXhwbGFpbl90aW1pbmciIGNoZWNrZWQ9e2NoZWNrZWRNZW51SXRlbXNbJ2V4cGxhaW5f dGltaW5nJ119CisgICAgICAgICAgb25DbGljaz17Y2hlY2tNZW51Q2xpY2t9PntnZXR0ZXh0KCdU aW1pbmcnKX08L1BnTWVudUl0ZW0+CisgICAgICAgIDxQZ01lbnVJdGVtIGhhc0NoZWNrIHZhbHVl PSJleHBsYWluX3N1bW1hcnkiIGNoZWNrZWQ9e2NoZWNrZWRNZW51SXRlbXNbJ2V4cGxhaW5fc3Vt bWFyeSddfQorICAgICAgICAgIG9uQ2xpY2s9e2NoZWNrTWVudUNsaWNrfT57Z2V0dGV4dCgnU3Vt bWFyeScpfTwvUGdNZW51SXRlbT4KKyAgICAgICAgPFBnTWVudUl0ZW0gaGFzQ2hlY2sgdmFsdWU9 ImV4cGxhaW5fc2V0dGluZ3MiIGNoZWNrZWQ9e2NoZWNrZWRNZW51SXRlbXNbJ2V4cGxhaW5fc2V0 dGluZ3MnXX0KKyAgICAgICAgICBvbkNsaWNrPXtjaGVja01lbnVDbGlja30+e2dldHRleHQoJ1Nl dHRpbmdzJyl9PC9QZ01lbnVJdGVtPgorICAgICAgPC9QZ01lbnU+CisgICAgICA8UGdNZW51Cisg ICAgICAgIGFuY2hvclJlZj17bWFjcm9zTWVudVJlZn0KKyAgICAgICAgb3Blbj17bWVudU9wZW5J ZD09J21lbnUtbWFjcm9zJ30KKyAgICAgICAgb25DbG9zZT17aGFuZGxlTWVudUNsb3NlfQorICAg ICAgPgorICAgICAgICA8UGdNZW51SXRlbSBvbkNsaWNrPXtvbk1hbmFnZU1hY3Jvc30+e2dldHRl eHQoJ01hbmFnZSBtYWNyb3MnKX08L1BnTWVudUl0ZW0+CisgICAgICAgIDxQZ01lbnVEaXZpZGVy IC8+CisgICAgICAgIHtxdWVyeVRvb2xDdHgucGFyYW1zPy5tYWNyb3M/Lm1hcCgobSwgaSk9PnsK KyAgICAgICAgICByZXR1cm4gKAorICAgICAgICAgICAgPFBnTWVudUl0ZW0gc2hvcnRjdXQ9e3sK KyAgICAgICAgICAgICAgLi4ubSwKKyAgICAgICAgICAgICAgJ2tleSc6IHsKKyAgICAgICAgICAg ICAgICAna2V5X2NvZGUnOiBtLmtleV9jb2RlLAorICAgICAgICAgICAgICAgICdjaGFyJzogbS5r ZXksCisgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICB9fSBvbkNsaWNrPXsoKT0+ZXhlY3V0 ZU1hY3JvKG0pfSBrZXk9e2l9PgorICAgICAgICAgICAgICB7bS5uYW1lfQorICAgICAgICAgICAg PC9QZ01lbnVJdGVtPgorICAgICAgICAgICk7CisgICAgICAgIH0pfQorICAgICAgPC9QZ01lbnU+ CisgICAgPC8+CisgICk7Cit9CisKK01haW5Ub29sQmFyLnByb3BUeXBlcyA9IHsKKyAgY29udGFp bmVyUmVmOiBDdXN0b21Qcm9wVHlwZXMucmVmLAorICBvbkZpbHRlckNsaWNrOiBQcm9wVHlwZXMu ZnVuYywKKyAgb25NYW5hZ2VNYWNyb3M6IFByb3BUeXBlcy5mdW5jLAorfTsKZGlmZiAtLWdpdCBh L3dlYi9wZ2FkbWluL3Rvb2xzL3NxbGVkaXRvci9zdGF0aWMvanMvY29tcG9uZW50cy9zZWN0aW9u cy9NZXNzYWdlcy5qc3ggYi93ZWIvcGdhZG1pbi90b29scy9zcWxlZGl0b3Ivc3RhdGljL2pzL2Nv bXBvbmVudHMvc2VjdGlvbnMvTWVzc2FnZXMuanN4Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAwMC4uYjc3ZDNjOTcxCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vdG9v bHMvc3FsZWRpdG9yL3N0YXRpYy9qcy9jb21wb25lbnRzL3NlY3Rpb25zL01lc3NhZ2VzLmpzeApA QCAtMCwwICsxLDQ0IEBACisvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLworLy8gcGdBZG1pbiA0IC0gUG9zdGdyZVNRTCBUb29s cworLy8KKy8vIENvcHlyaWdodCAoQykgMjAxMyAtIDIwMjIsIFRoZSBwZ0FkbWluIERldmVsb3Bt ZW50IFRlYW0KKy8vIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgdGhlIFBvc3RncmVT UUwgTGljZW5jZQorLy8KKy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vCitpbXBvcnQgeyBtYWtlU3R5bGVzIH0gZnJvbSAnQG1hdGVy aWFsLXVpL3N0eWxlcyc7CitpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnOworaW1wb3J0IHsgUXVl cnlUb29sRXZlbnRzQ29udGV4dCB9IGZyb20gJy4uL1F1ZXJ5VG9vbENvbXBvbmVudCc7CitpbXBv cnQgeyBRVUVSWV9UT09MX0VWRU5UUyB9IGZyb20gJy4uL1F1ZXJ5VG9vbENvbnN0YW50cyc7CisK K2NvbnN0IHVzZVN0eWxlcyA9IG1ha2VTdHlsZXMoKHRoZW1lKT0+KHsKKyAgcm9vdDogeworICAg IHdoaXRlU3BhY2U6ICdwcmUtd3JhcCcsCisgICAgZm9udEZhbWlseTogJyJTb3VyY2UgQ29kZSBQ cm8iLCBTRk1vbm8tUmVndWxhciwgTWVubG8sIE1vbmFjbywgQ29uc29sYXMsICJMaWJlcmF0aW9u IE1vbm8iLCAiQ291cmllciBOZXciLCBtb25vc3BhY2UnLAorICAgIHBhZGRpbmc6ICc1cHggMTBw eCcsCisgICAgb3ZlcmZsb3c6ICdhdXRvJywKKyAgICBoZWlnaHQ6ICcxMDAlJywKKyAgICBmb250 U2l6ZTogJzEycHgnLAorICAgIHVzZXJTZWxlY3Q6ICd0ZXh0JywKKyAgICAuLi50aGVtZS5taXhp bnMuZm9udFNvdXJjZUNvZGUsCisgIH0KK30pKTsKKworZXhwb3J0IGZ1bmN0aW9uIE1lc3NhZ2Vz KCkgeworICBjb25zdCBjbGFzc2VzID0gdXNlU3R5bGVzKCk7CisgIGNvbnN0IFttZXNzYWdlVGV4 dCwgc2V0TWVzc2FnZVRleHRdID0gUmVhY3QudXNlU3RhdGUoJycpOworICBjb25zdCBldmVudEJ1 cyA9IFJlYWN0LnVzZUNvbnRleHQoUXVlcnlUb29sRXZlbnRzQ29udGV4dCk7CisgIFJlYWN0LnVz ZUVmZmVjdCgoKT0+eworICAgIGV2ZW50QnVzLnJlZ2lzdGVyTGlzdGVuZXIoUVVFUllfVE9PTF9F VkVOVFMuU0VUX01FU1NBR0UsICh0ZXh0LCBhcHBlbmQ9ZmFsc2UpPT57CisgICAgICBzZXRNZXNz YWdlVGV4dCgocHJldik9PnsKKyAgICAgICAgaWYoYXBwZW5kKSB7CisgICAgICAgICAgcmV0dXJu IHByZXYrdGV4dDsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdGV4dDsKKyAgICAgIH0pOwor ICAgIH0pOworICB9LCBbXSk7CisgIHJldHVybiAoCisgICAgPGRpdiBjbGFzc05hbWU9e2NsYXNz ZXMucm9vdH0gdGFiSW5kZXg9IjAiPnttZXNzYWdlVGV4dH08L2Rpdj4KKyAgKTsKK30KZGlmZiAt LWdpdCBhL3dlYi9wZ2FkbWluL3Rvb2xzL3NxbGVkaXRvci9zdGF0aWMvanMvY29tcG9uZW50cy9z ZWN0aW9ucy9Ob3RpZmljYXRpb25zLmpzeCBiL3dlYi9wZ2FkbWluL3Rvb2xzL3NxbGVkaXRvci9z dGF0aWMvanMvY29tcG9uZW50cy9zZWN0aW9ucy9Ob3RpZmljYXRpb25zLmpzeApuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAuLmVhNmExNjA3ZAotLS0gL2Rldi9udWxsCisrKyBi L3dlYi9wZ2FkbWluL3Rvb2xzL3NxbGVkaXRvci9zdGF0aWMvanMvY29tcG9uZW50cy9zZWN0aW9u cy9Ob3RpZmljYXRpb25zLmpzeApAQCAtMCwwICsxLDU4IEBACisvLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLworLy8gcGdBZG1p biA0IC0gUG9zdGdyZVNRTCBUb29scworLy8KKy8vIENvcHlyaWdodCAoQykgMjAxMyAtIDIwMjIs IFRoZSBwZ0FkbWluIERldmVsb3BtZW50IFRlYW0KKy8vIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFz ZWQgdW5kZXIgdGhlIFBvc3RncmVTUUwgTGljZW5jZQorLy8KKy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCitpbXBvcnQgUmVhY3Qg ZnJvbSAncmVhY3QnOworaW1wb3J0IHsgY29tbW9uVGFibGVTdHlsZXMgfSBmcm9tICcuLi8uLi8u Li8uLi8uLi8uLi9zdGF0aWMvanMvVGhlbWUnOworaW1wb3J0IHsgUVVFUllfVE9PTF9FVkVOVFMg fSBmcm9tICcuLi9RdWVyeVRvb2xDb25zdGFudHMnOworaW1wb3J0IGdldHRleHQgZnJvbSAnc291 cmNlcy9nZXR0ZXh0JzsKK2ltcG9ydCBfIGZyb20gJ2xvZGFzaCc7CitpbXBvcnQgY2xzeCBmcm9t ICdjbHN4JzsKK2ltcG9ydCB7IFF1ZXJ5VG9vbEV2ZW50c0NvbnRleHQgfSBmcm9tICcuLi9RdWVy eVRvb2xDb21wb25lbnQnOworCitleHBvcnQgZnVuY3Rpb24gTm90aWZpY2F0aW9ucygpIHsKKyAg Y29uc3QgW25vdGljZXMsIHNldE5vdGljZXNdID0gUmVhY3QudXNlU3RhdGUoW10pOworICBjb25z dCB0YWJsZUNsYXNzZXMgPSBjb21tb25UYWJsZVN0eWxlcygpOworICBjb25zdCBldmVudEJ1cyA9 IFJlYWN0LnVzZUNvbnRleHQoUXVlcnlUb29sRXZlbnRzQ29udGV4dCk7CisgIFJlYWN0LnVzZUVm ZmVjdCgoKT0+eworICAgIGV2ZW50QnVzLnJlZ2lzdGVyTGlzdGVuZXIoUVVFUllfVE9PTF9FVkVO VFMuUFVTSF9OT1RJQ0UsIChub3RpY2UpPT57CisgICAgICBpZihfLmlzQXJyYXkobm90aWNlKSkg eworICAgICAgICBzZXROb3RpY2VzKChwcmV2KT0+WworICAgICAgICAgIC4uLnByZXYsCisgICAg ICAgICAgLi4ubm90aWNlLAorICAgICAgICBdKTsKKyAgICAgIH0gZWxzZSB7CisgICAgICAgIHNl dE5vdGljZXMoKHByZXYpPT5bCisgICAgICAgICAgLi4ucHJldiwKKyAgICAgICAgICBub3RpY2Us CisgICAgICAgIF0pOworICAgICAgfQorICAgIH0pOworICB9LCBbXSk7CisKKworICByZXR1cm4g PHRhYmxlIGNsYXNzTmFtZT17Y2xzeCh0YWJsZUNsYXNzZXMudGFibGUsIHRhYmxlQ2xhc3Nlcy5i b3JkZXJCb3R0b20pfT4KKyAgICA8dGhlYWQ+CisgICAgICA8dHI+CisgICAgICAgIDx0aD57Z2V0 dGV4dCgnUmVjb3JkZWQgdGltZScpfTwvdGg+CisgICAgICAgIDx0aD57Z2V0dGV4dCgnRXZlbnQn KX08L3RoPgorICAgICAgICA8dGg+e2dldHRleHQoJ1Byb2Nlc3MgSUQnKX08L3RoPgorICAgICAg ICA8dGg+e2dldHRleHQoJ1BheWxvYWQnKX08L3RoPgorICAgICAgPC90cj4KKyAgICA8L3RoZWFk PgorICAgIDx0Ym9keT4KKyAgICAgIHtub3RpY2VzLm1hcCgobm90aWNlLCBpKT0+eworICAgICAg ICByZXR1cm4gPHRyIGtleT17aX0+CisgICAgICAgICAgPHRkPntub3RpY2UucmVjb3JkZWRfdGlt ZX08L3RkPgorICAgICAgICAgIDx0ZD57bm90aWNlLmNoYW5uZWx9PC90ZD4KKyAgICAgICAgICA8 dGQ+e25vdGljZS5waWR9PC90ZD4KKyAgICAgICAgICA8dGQ+e25vdGljZS5wYXlsb2FkfTwvdGQ+ CisgICAgICAgIDwvdHI+OworICAgICAgfSl9CisgICAgPC90Ym9keT4KKyAgPC90YWJsZT47Cit9 CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi90b29scy9zcWxlZGl0b3Ivc3RhdGljL2pzL2NvbXBv bmVudHMvc2VjdGlvbnMvUXVlcnkuanN4IGIvd2ViL3BnYWRtaW4vdG9vbHMvc3FsZWRpdG9yL3N0 YXRpYy9qcy9jb21wb25lbnRzL3NlY3Rpb25zL1F1ZXJ5LmpzeApuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwMDAuLjBjZTZlODVmMwotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2Fk bWluL3Rvb2xzL3NxbGVkaXRvci9zdGF0aWMvanMvY29tcG9uZW50cy9zZWN0aW9ucy9RdWVyeS5q c3gKQEAgLTAsMCArMSwzNzggQEAKKy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vCisvLyBwZ0FkbWluIDQgLSBQb3N0Z3JlU1FM IFRvb2xzCisvLworLy8gQ29weXJpZ2h0IChDKSAyMDEzIC0gMjAyMiwgVGhlIHBnQWRtaW4gRGV2 ZWxvcG1lbnQgVGVhbQorLy8gVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciB0aGUgUG9z dGdyZVNRTCBMaWNlbmNlCisvLworLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KK2ltcG9ydCB7IG1ha2VTdHlsZXMgfSBmcm9tICdA bWF0ZXJpYWwtdWkvc3R5bGVzJzsKK2ltcG9ydCBSZWFjdCwge3VzZUNvbnRleHQsIHVzZUNhbGxi YWNrLCB1c2VFZmZlY3QsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnOworaW1wb3J0IHsgUXVlcnlU b29sQ29udGV4dCwgUXVlcnlUb29sRXZlbnRzQ29udGV4dCB9IGZyb20gJy4uL1F1ZXJ5VG9vbENv bXBvbmVudCc7CitpbXBvcnQgQ29kZU1pcnJvciBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9zdGF0 aWMvanMvY29tcG9uZW50cy9Db2RlTWlycm9yJzsKK2ltcG9ydCB7UEFORUxTLCBRVUVSWV9UT09M X0VWRU5UU30gZnJvbSAnLi4vUXVlcnlUb29sQ29uc3RhbnRzJzsKK2ltcG9ydCB1cmxfZm9yIGZy b20gJ3NvdXJjZXMvdXJsX2Zvcic7CitpbXBvcnQgeyBMYXlvdXRFdmVudHNDb250ZXh0LCBMQVlP VVRfRVZFTlRTIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vc3RhdGljL2pzL2hlbHBlcnMvTGF5 b3V0JzsKK2ltcG9ydCBDb25maXJtU2F2ZUNvbnRlbnQgZnJvbSAnLi4vZGlhbG9ncy9Db25maXJt U2F2ZUNvbnRlbnQnOworaW1wb3J0IGdldHRleHQgZnJvbSAnc291cmNlcy9nZXR0ZXh0JzsKK2lt cG9ydCBPcmlnQ29kZU1pcnJvciBmcm9tICdidW5kbGVkX2NvZGVtaXJyb3InOworCitjb25zdCB1 c2VTdHlsZXMgPSBtYWtlU3R5bGVzKCgpPT4oeworICBzcWw6IHsKKyAgICBoZWlnaHQ6ICcxMDAl JywKKyAgfQorfSkpOworCitmdW5jdGlvbiByZWdpc3RlckF1dG9jb21wbGV0ZShhcGksIHRyYW5z SWQsIG9uRmFpbHVyZSkgeworICBPcmlnQ29kZU1pcnJvci5yZWdpc3RlckhlbHBlcignaGludCcs ICdzcWwnLCBmdW5jdGlvbiAoZWRpdG9yKSB7CisgICAgdmFyIGRhdGEgPSBbXSwKKyAgICAgIGRv YyA9IGVkaXRvci5nZXREb2MoKSwKKyAgICAgIGN1ciA9IGRvYy5nZXRDdXJzb3IoKSwKKyAgICAg IC8vIEdldCB0aGUgY3VycmVudCBjdXJzb3IgcG9zaXRpb24KKyAgICAgIGN1cnJlbnRfY3VyID0g Y3VyLmNoLAorICAgICAgLy8gZnVuY3Rpb24gY29udGV4dAorICAgICAgY3R4ID0geworICAgICAg ICBlZGl0b3I6IGVkaXRvciwKKyAgICAgICAgLy8gVVJMIGZvciBhdXRvLWNvbXBsZXRlCisgICAg ICAgIHVybDogdXJsX2Zvcignc3FsZWRpdG9yLmF1dG9jb21wbGV0ZScsIHsKKyAgICAgICAgICAn dHJhbnNfaWQnOiB0cmFuc0lkLAorICAgICAgICB9KSwKKyAgICAgICAgZGF0YTogZGF0YSwKKyAg ICAgICAgLy8gR2V0IHRoZSBsaW5lIG51bWJlciBpbiB0aGUgY3Vyc29yIHBvc2l0aW9uCisgICAg ICAgIGN1cnJlbnRfbGluZTogY3VyLmxpbmUsCisgICAgICAgIC8qCisgICAgICAgICAqIFJlbmRl ciBmdW5jdGlvbiBmb3IgaGludCB0byBhZGQgb3VyIG93biBjbGFzcworICAgICAgICAgKiBhbmQg aWNvbiBhcyBwZXIgdGhlIG9iamVjdCB0eXBlLgorICAgICAgICAgKi8KKyAgICAgICAgaGludF9y ZW5kZXI6IGZ1bmN0aW9uIChlbHQsIGRhdGFfYXJnLCBjdXJfYXJnKSB7CisgICAgICAgICAgdmFy IGVsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpOworCisgICAgICAgICAgc3dpdGNo IChjdXJfYXJnLnR5cGUpIHsKKyAgICAgICAgICBjYXNlICdkYXRhYmFzZSc6CisgICAgICAgICAg ICBlbC5jbGFzc05hbWUgPSAnc3FsZWRpdG9yLWhpbnQgcGctaWNvbi0nICsgY3VyX2FyZy50eXBl OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgY2FzZSAnZGF0YXR5cGUnOgorICAgICAg ICAgICAgZWwuY2xhc3NOYW1lID0gJ3NxbGVkaXRvci1oaW50IGljb24tdHlwZSc7CisgICAgICAg ICAgICBicmVhazsKKyAgICAgICAgICBjYXNlICdrZXl3b3JkJzoKKyAgICAgICAgICAgIGVsLmNs YXNzTmFtZSA9ICdmYSBmYS1rZXknOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgY2Fz ZSAndGFibGUgYWxpYXMnOgorICAgICAgICAgICAgZWwuY2xhc3NOYW1lID0gJ2ZhIGZhLWF0JzsK KyAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBlbC5j bGFzc05hbWUgPSAnc3FsZWRpdG9yLWhpbnQgaWNvbi0nICsgY3VyX2FyZy50eXBlOworICAgICAg ICAgIH0KKworICAgICAgICAgIGVsLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2Rl KGN1cl9hcmcudGV4dCkpOworICAgICAgICAgIGVsdC5hcHBlbmRDaGlsZChlbCk7CisgICAgICAg IH0sCisgICAgICB9OworCisgICAgZGF0YS5wdXNoKGRvYy5nZXRWYWx1ZSgpKTsKKyAgICAvLyBH ZXQgdGhlIHRleHQgZnJvbSBzdGFydCB0byB0aGUgY3VycmVudCBjdXJzb3IgcG9zaXRpb24uCisg ICAgZGF0YS5wdXNoKAorICAgICAgZG9jLmdldFJhbmdlKHsKKyAgICAgICAgbGluZTogMCwKKyAg ICAgICAgY2g6IDAsCisgICAgICB9LCB7CisgICAgICAgIGxpbmU6IGN0eC5jdXJyZW50X2xpbmUs CisgICAgICAgIGNoOiBjdXJyZW50X2N1ciwKKyAgICAgIH0pCisgICAgKTsKKworICAgIHJldHVy biB7CisgICAgICB0aGVuOiBmdW5jdGlvbiAoY2IpIHsKKyAgICAgICAgdmFyIHNlbGZfbG9jYWwg PSB0aGlzOworICAgICAgICAvLyBNYWtlIGFqYXggY2FsbCB0byBmaW5kIHRoZSBhdXRvY29tcGxl dGUgZGF0YQorICAgICAgICBhcGkucG9zdChzZWxmX2xvY2FsLnVybCwgSlNPTi5zdHJpbmdpZnko c2VsZl9sb2NhbC5kYXRhKSkKKyAgICAgICAgICAudGhlbigocmVzKSA9PiB7CisgICAgICAgICAg ICB2YXIgcmVzdWx0ID0gW107CisKKyAgICAgICAgICAgIF8uZWFjaChyZXMuZGF0YS5kYXRhLnJl c3VsdCwgZnVuY3Rpb24gKG9iaiwga2V5KSB7CisgICAgICAgICAgICAgIHJlc3VsdC5wdXNoKHsK KyAgICAgICAgICAgICAgICB0ZXh0OiBrZXksCisgICAgICAgICAgICAgICAgdHlwZTogb2JqLm9i amVjdF90eXBlLAorICAgICAgICAgICAgICAgIHJlbmRlcjogc2VsZl9sb2NhbC5oaW50X3JlbmRl ciwKKyAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB9KTsKKworICAgICAgICAgICAgLy8g U29ydCBmdW5jdGlvbiB0byBzb3J0IHRoZSBzdWdnZXN0aW9uJ3MgYWxwaGFiZXRpY2FsbHkuCisg ICAgICAgICAgICByZXN1bHQuc29ydChmdW5jdGlvbiAoYSwgYikgeworICAgICAgICAgICAgICB2 YXIgdGV4dEEgPSBhLnRleHQudG9Mb3dlckNhc2UoKSwKKyAgICAgICAgICAgICAgICB0ZXh0QiA9 IGIudGV4dC50b0xvd2VyQ2FzZSgpOworICAgICAgICAgICAgICBpZiAodGV4dEEgPCB0ZXh0Qikg Ly9zb3J0IHN0cmluZyBhc2NlbmRpbmcKKyAgICAgICAgICAgICAgICByZXR1cm4gLTE7CisgICAg ICAgICAgICAgIGlmICh0ZXh0QSA+IHRleHRCKQorICAgICAgICAgICAgICAgIHJldHVybiAxOwor ICAgICAgICAgICAgICByZXR1cm4gMDsgLy9kZWZhdWx0IHJldHVybiB2YWx1ZSAobm8gc29ydGlu ZykKKyAgICAgICAgICAgIH0pOworCisgICAgICAgICAgICAvKgorICAgICAgICAgICAqIEJlbG93 IGxvZ2ljIGZpbmQgdGhlIHN0YXJ0IGFuZCBlbmQgcG9pbnQKKyAgICAgICAgICAgKiB0byByZXBs YWNlIHRoZSBzZWxlY3RlZCBhdXRvIGNvbXBsZXRlIHN1Z2dlc3Rpb24uCisgICAgICAgICAgICov CisgICAgICAgICAgICB2YXIgdG9rZW4gPSBzZWxmX2xvY2FsLmVkaXRvci5nZXRUb2tlbkF0KGN1 ciksCisgICAgICAgICAgICAgIHN0YXJ0LCBlbmQsIHNlYXJjaDsKKyAgICAgICAgICAgIGlmICh0 b2tlbi5lbmQgPiBjdXIuY2gpIHsKKyAgICAgICAgICAgICAgdG9rZW4uZW5kID0gY3VyLmNoOwor ICAgICAgICAgICAgICB0b2tlbi5zdHJpbmcgPSB0b2tlbi5zdHJpbmcuc2xpY2UoMCwgY3VyLmNo IC0gdG9rZW4uc3RhcnQpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAodG9rZW4u c3RyaW5nLm1hdGNoKC9eWy5gXHdAXVx3KiQvKSkgeworICAgICAgICAgICAgICBzZWFyY2ggPSB0 b2tlbi5zdHJpbmc7CisgICAgICAgICAgICAgIHN0YXJ0ID0gdG9rZW4uc3RhcnQ7CisgICAgICAg ICAgICAgIGVuZCA9IHRva2VuLmVuZDsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAg ICAgIHN0YXJ0ID0gZW5kID0gY3VyLmNoOworICAgICAgICAgICAgICBzZWFyY2ggPSAnJzsKKyAg ICAgICAgICAgIH0KKworICAgICAgICAgICAgLyoKKyAgICAgICAgICAgKiBBZGRlZCAxIGluIHRo ZSBzdGFydCBwb3NpdGlvbiBpZiBzZWFyY2ggc3RyaW5nCisgICAgICAgICAgICogc3RhcnRlZCB3 aXRoICIuIiBvciAiYCIgZWxzZSBhdXRvIGNvbXBsZXRlIG9mIGNvZGUgbWlycm9yCisgICAgICAg ICAgICogd2lsbCByZW1vdmUgdGhlICIuIiB3aGVuIHVzZXIgc2VsZWN0IGFueSBzdWdnZXN0aW9u LgorICAgICAgICAgICAqLworICAgICAgICAgICAgaWYgKHNlYXJjaC5jaGFyQXQoMCkgPT0gJy4n IHx8IHNlYXJjaC5jaGFyQXQoMCkgPT0gJ2BgJykKKyAgICAgICAgICAgICAgc3RhcnQgKz0gMTsK KworICAgICAgICAgICAgY2IoeworICAgICAgICAgICAgICBsaXN0OiByZXN1bHQsCisgICAgICAg ICAgICAgIGZyb206IHsKKyAgICAgICAgICAgICAgICBsaW5lOiBzZWxmX2xvY2FsLmN1cnJlbnRf bGluZSwKKyAgICAgICAgICAgICAgICBjaDogc3RhcnQsCisgICAgICAgICAgICAgIH0sCisgICAg ICAgICAgICAgIHRvOiB7CisgICAgICAgICAgICAgICAgbGluZTogc2VsZl9sb2NhbC5jdXJyZW50 X2xpbmUsCisgICAgICAgICAgICAgICAgY2g6IGVuZCwKKyAgICAgICAgICAgICAgfSwKKyAgICAg ICAgICAgIH0pOworICAgICAgICAgIH0pCisgICAgICAgICAgLmNhdGNoKChlcnIpID0+IHsKKyAg ICAgICAgICAgIG9uRmFpbHVyZT8uKGVycik7CisgICAgICAgICAgfSk7CisgICAgICB9LmJpbmQo Y3R4KSwKKyAgICB9OworICB9KTsKK30KKworZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gUXVlcnko KSB7CisgIGNvbnN0IGNsYXNzZXMgPSB1c2VTdHlsZXMoKTsKKyAgY29uc3QgZWRpdG9yID0gUmVh Y3QudXNlUmVmKCk7CisgIGNvbnN0IGV2ZW50QnVzID0gdXNlQ29udGV4dChRdWVyeVRvb2xFdmVu dHNDb250ZXh0KTsKKyAgY29uc3QgcXVlcnlUb29sQ3R4ID0gdXNlQ29udGV4dChRdWVyeVRvb2xD b250ZXh0KTsKKyAgY29uc3QgbGF5b3V0RXZlbkJ1cyA9IHVzZUNvbnRleHQoTGF5b3V0RXZlbnRz Q29udGV4dCk7CisgIGNvbnN0IGxhc3RTYXZlZFRleHQgPSBSZWFjdC51c2VSZWYoJycpOworICBj b25zdCBbbWFya2VkTGluZSwgc2V0TWFya2VkTGluZV0gPSB1c2VTdGF0ZSgwKTsKKworICBjb25z dCBoaWdobGlnaHRFcnJvciA9IChjbU9iaiwgcmVzdWx0KT0+eworICAgIGxldCBlcnJvckxpbmVO byA9IDAsCisgICAgICBzdGFydE1hcmtlciA9IDAsCisgICAgICBlbmRNYXJrZXIgPSAwLAorICAg ICAgc2VsZWN0ZWRMaW5lTm8gPSAwOworCisgICAgLy8gUmVtb3ZlIGFscmVhZHkgZXhpc3Rpbmcg bWFya2VyCisgICAgY21PYmoucmVtb3ZlTGluZUNsYXNzKG1hcmtlZExpbmUsICd3cmFwJywgJ0Nv ZGVNaXJyb3ItYWN0aXZlbGluZS1iYWNrZ3JvdW5kJyk7CisKKyAgICAvLyBJbiBjYXNlIG9mIHNl bGVjdGlvbiB3ZSBuZWVkIHRvIGZpbmQgdGhlIGFjdHVhbCBsaW5lIG5vCisgICAgaWYgKGNtT2Jq LmdldFNlbGVjdGlvbigpLmxlbmd0aCA+IDApCisgICAgICBzZWxlY3RlZExpbmVObyA9IGNtT2Jq LmdldEN1cnNvcih0cnVlKS5saW5lOworCisgICAgLy8gRmV0Y2ggdGhlIExJTkUgc3RyaW5nIHVz aW5nIHJlZ2V4IGZyb20gdGhlIHJlc3VsdAorICAgIHZhciBsaW5lID0gL0xJTkUgKFxkKykvLmV4 ZWMocmVzdWx0KSwKKyAgICAgIC8vIEZldGNoIHRoZSBDaGFyYWN0ZXIgc3RyaW5nIHVzaW5nIHJl Z2V4IGZyb20gdGhlIHJlc3VsdAorICAgICAgY2hhciA9IC9DaGFyYWN0ZXI6IChcZCspLy5leGVj KHJlc3VsdCk7CisKKyAgICAvLyBJZiBsaW5lIGFuZCBjaGFyYWN0ZXIgaXMgbnVsbCB0aGVuIG5v IG5lZWQgdG8gbWFyaworICAgIGlmIChsaW5lICE9IG51bGwgJiYgY2hhciAhPSBudWxsKSB7Cisg ICAgICBlcnJvckxpbmVObyA9IChwYXJzZUludChsaW5lWzFdKSAtIDEpICsgc2VsZWN0ZWRMaW5l Tm87CisgICAgICB2YXIgZXJyb3JDaGFyTm8gPSAocGFyc2VJbnQoY2hhclsxXSkgLSAxKTsKKwor ICAgICAgLyogV2UgbmVlZCB0byBsb29wIHRocm91Z2ggZWFjaCBsaW5lIHRpbGwgdGhlIGVycm9y IGxpbmUgYW5kCisgICAgICAgICogY291bnQgdGhlIHRvdGFsIG5vIG9mIGNoYXJhY3RlciB0byBm aWd1cmUgb3V0IHRoZSBhY3R1YWwKKyAgICAgICAgKiBzdGFydGluZy9lbmRpbmcgbWFya2VyIHBv aW50IGZvciB0aGUgaW5kaXZpZHVhbCBsaW5lLiBXZQorICAgICAgICAqIGhhdmUgYWxzbyBhZGRl ZCAxIHBlciBsaW5lIGZvciB0aGUgIlxuIiBjaGFyYWN0ZXIuCisgICAgICAgICovCisgICAgICB2 YXIgcHJldkxpbmVDaGFycyA9IDA7CisgICAgICBmb3IgKGxldCBpID0gc2VsZWN0ZWRMaW5lTm8g PiAwID8gc2VsZWN0ZWRMaW5lTm8gOiAwOyBpIDwgZXJyb3JMaW5lTm87IGkrKykKKyAgICAgICAg cHJldkxpbmVDaGFycyArPSBjbU9iai5nZXRMaW5lKGkpLmxlbmd0aCArIDE7CisKKyAgICAgIC8q IE1hcmtlciBzdGFydGluZyBwb2ludCBmb3IgdGhlIGluZGl2aWR1YWwgbGluZSBpcworICAgICAg ICAqIGVxdWFsIHRvIGVycm9yIGNoYXJhY3RlciBpbmRleCBtaW51cyB0b3RhbCBubyBvZgorICAg ICAgICAqIGNoYXJhY3RlciB0aWxsIHRoZSBlcnJvciBsaW5lIHN0YXJ0cy4KKyAgICAgICAgKi8K KyAgICAgIHN0YXJ0TWFya2VyID0gZXJyb3JDaGFyTm8gLSBwcmV2TGluZUNoYXJzOworCisgICAg ICAvLyBGaW5kIHRoZSBuZXh0IHNwYWNlIGZyb20gdGhlIGNoYXJhY3RlciBvciBlbmQgb2YgbGlu ZQorICAgICAgdmFyIGVycm9yTGluZSA9IGNtT2JqLmdldExpbmUoZXJyb3JMaW5lTm8pOworCisg ICAgICBpZiAoXy5pc1VuZGVmaW5lZChlcnJvckxpbmUpKSByZXR1cm47CisgICAgICBlbmRNYXJr ZXIgPSBlcnJvckxpbmUuaW5kZXhPZignICcsIHN0YXJ0TWFya2VyKTsKKyAgICAgIGlmIChlbmRN YXJrZXIgPCAwKQorICAgICAgICBlbmRNYXJrZXIgPSBlcnJvckxpbmUubGVuZ3RoOworCisgICAg ICAvLyBNYXJrIHRoZSBlcnJvciB0ZXh0CisgICAgICBjbU9iai5tYXJrVGV4dCh7CisgICAgICAg IGxpbmU6IGVycm9yTGluZU5vLAorICAgICAgICBjaDogc3RhcnRNYXJrZXIsCisgICAgICB9LCB7 CisgICAgICAgIGxpbmU6IGVycm9yTGluZU5vLAorICAgICAgICBjaDogZW5kTWFya2VyLAorICAg ICAgfSwgeworICAgICAgICBjbGFzc05hbWU6ICdzcWwtZWRpdG9yLW1hcmsnLAorICAgICAgfSk7 CisKKyAgICAgIHNldE1hcmtlZExpbmUoZXJyb3JMaW5lTm8pOworICAgICAgY21PYmouYWRkTGlu ZUNsYXNzKGVycm9yTGluZU5vLCAnd3JhcCcsICdDb2RlTWlycm9yLWFjdGl2ZWxpbmUtYmFja2dy b3VuZCcpOworICAgIH0KKyAgfTsKKworICBjb25zdCB0cmlnZ2VyRXhlY3V0aW9uID0gKGV4cGxh aW5PYmplY3QpPT57CisgICAgaWYocXVlcnlUb29sQ3R4LnBhcmFtcy5pc19xdWVyeV90b29sKSB7 CisgICAgICBsZXQgcXVlcnkgPSBlZGl0b3IuY3VycmVudD8uZ2V0U2VsZWN0aW9uKCkgfHwgZWRp dG9yLmN1cnJlbnQ/LmdldFZhbHVlKCkgfHwgJyc7CisgICAgICBpZihxdWVyeSkgeworICAgICAg ICBldmVudEJ1cy5maXJlRXZlbnQoUVVFUllfVE9PTF9FVkVOVFMuRVhFQ1VUSU9OX1NUQVJULCBx dWVyeSwgZXhwbGFpbk9iamVjdCk7CisgICAgICB9CisgICAgfSBlbHNlIHsKKyAgICAgIGV2ZW50 QnVzLmZpcmVFdmVudChRVUVSWV9UT09MX0VWRU5UUy5FWEVDVVRJT05fU1RBUlQsIG51bGwsIG51 bGwpOworICAgIH0KKyAgfTsKKworICB1c2VFZmZlY3QoKCk9PnsKKyAgICBsYXlvdXRFdmVuQnVz LnJlZ2lzdGVyTGlzdGVuZXIoTEFZT1VUX0VWRU5UUy5BQ1RJVkUsIChjdXJyZW50VGFiSWQpPT57 CisgICAgICBjdXJyZW50VGFiSWQgPT0gUEFORUxTLlFVRVJZICYmIGVkaXRvci5jdXJyZW50LmZv Y3VzKCk7CisgICAgfSk7CisKKyAgICByZWdpc3RlckF1dG9jb21wbGV0ZShxdWVyeVRvb2xDdHgu YXBpLCBxdWVyeVRvb2xDdHgucGFyYW1zLnRyYW5zX2lkLCAoZXJyKT0+eworICAgICAgZXZlbnRC dXMuZmlyZUV2ZW50KFFVRVJZX1RPT0xfRVZFTlRTLkhBTkRMRV9BUElfRVJST1IsIGVycik7Cisg ICAgfSk7CisKKyAgICBldmVudEJ1cy5yZWdpc3Rlckxpc3RlbmVyKFFVRVJZX1RPT0xfRVZFTlRT LlRSSUdHRVJfRVhFQ1VUSU9OLCB0cmlnZ2VyRXhlY3V0aW9uKTsKKworICAgIGV2ZW50QnVzLnJl Z2lzdGVyTGlzdGVuZXIoUVVFUllfVE9PTF9FVkVOVFMuSElHSExJR0hUX0VSUk9SLCAocmVzdWx0 KT0+eworICAgICAgaGlnaGxpZ2h0RXJyb3IoZWRpdG9yLmN1cnJlbnQsIHJlc3VsdCk7CisgICAg fSk7CisKKyAgICBldmVudEJ1cy5yZWdpc3Rlckxpc3RlbmVyKFFVRVJZX1RPT0xfRVZFTlRTLkxP QURfRklMRSwgKGZpbGVOYW1lKT0+eworICAgICAgcXVlcnlUb29sQ3R4LmFwaS5wb3N0KHVybF9m b3IoJ3NxbGVkaXRvci5sb2FkX2ZpbGUnKSwgeworICAgICAgICAnZmlsZV9uYW1lJzogZGVjb2Rl VVJJKGZpbGVOYW1lKSwKKyAgICAgIH0pLnRoZW4oKHJlcyk9PnsKKyAgICAgICAgZWRpdG9yLmN1 cnJlbnQuc2V0VmFsdWUocmVzLmRhdGEpOworICAgICAgICBsYXN0U2F2ZWRUZXh0LmN1cnJlbnQg PSByZXMuZGF0YTsKKyAgICAgICAgZXZlbnRCdXMuZmlyZUV2ZW50KFFVRVJZX1RPT0xfRVZFTlRT LkxPQURfRklMRV9ET05FLCBmaWxlTmFtZSwgdHJ1ZSk7CisgICAgICB9KS5jYXRjaCgoZXJyKT0+ eworICAgICAgICBldmVudEJ1cy5maXJlRXZlbnQoUVVFUllfVE9PTF9FVkVOVFMuTE9BRF9GSUxF X0RPTkUsIG51bGwsIGZhbHNlKTsKKyAgICAgICAgZXZlbnRCdXMuZmlyZUV2ZW50KFFVRVJZX1RP T0xfRVZFTlRTLkhBTkRMRV9BUElfRVJST1IsIGVycik7CisgICAgICB9KTsKKyAgICB9KTsKKwor ICAgIGV2ZW50QnVzLnJlZ2lzdGVyTGlzdGVuZXIoUVVFUllfVE9PTF9FVkVOVFMuU0FWRV9GSUxF LCAoZmlsZU5hbWUpPT57CisgICAgICBsZXQgZWRpdG9yVmFsdWUgPSBlZGl0b3IuY3VycmVudC5n ZXRWYWx1ZSgpOworICAgICAgcXVlcnlUb29sQ3R4LmFwaS5wb3N0KHVybF9mb3IoJ3NxbGVkaXRv ci5zYXZlX2ZpbGUnKSwgeworICAgICAgICAnZmlsZV9uYW1lJzogZGVjb2RlVVJJKGZpbGVOYW1l KSwKKyAgICAgICAgJ2ZpbGVfY29udGVudCc6IGVkaXRvci5jdXJyZW50LmdldFZhbHVlKCksCisg ICAgICB9KS50aGVuKCgpPT57CisgICAgICAgIGxhc3RTYXZlZFRleHQuY3VycmVudCA9IGVkaXRv clZhbHVlOworICAgICAgICBldmVudEJ1cy5maXJlRXZlbnQoUVVFUllfVE9PTF9FVkVOVFMuU0FW RV9GSUxFX0RPTkUsIGZpbGVOYW1lLCB0cnVlKTsKKyAgICAgIH0pLmNhdGNoKChlcnIpPT57Cisg ICAgICAgIGV2ZW50QnVzLmZpcmVFdmVudChRVUVSWV9UT09MX0VWRU5UUy5TQVZFX0ZJTEVfRE9O RSwgbnVsbCwgZmFsc2UpOworICAgICAgICBldmVudEJ1cy5maXJlRXZlbnQoUVVFUllfVE9PTF9F VkVOVFMuSEFORExFX0FQSV9FUlJPUiwgZXJyKTsKKyAgICAgIH0pOworICAgIH0pOworCisgICAg ZXZlbnRCdXMucmVnaXN0ZXJMaXN0ZW5lcihRVUVSWV9UT09MX0VWRU5UUy5FRElUT1JfRVhFQ19D TUQsIChjbWQ9JycpPT57CisgICAgICBlZGl0b3IuY3VycmVudD8uZXhlY0NvbW1hbmQoY21kKTsK KyAgICB9KTsKKyAgICBldmVudEJ1cy5yZWdpc3Rlckxpc3RlbmVyKFFVRVJZX1RPT0xfRVZFTlRT LkNPUFlfVE9fRURJVE9SLCAodGV4dCk9PnsKKyAgICAgIGVkaXRvci5jdXJyZW50Py5zZXRWYWx1 ZSh0ZXh0KTsKKyAgICAgIGV2ZW50QnVzLmZpcmVFdmVudChRVUVSWV9UT09MX0VWRU5UUy5GT0NV U19QQU5FTCwgUEFORUxTLlFVRVJZKTsKKyAgICAgIHNldFRpbWVvdXQoKCk9PnsKKyAgICAgICAg ZWRpdG9yLmN1cnJlbnQ/LmZvY3VzKCk7CisgICAgICAgIGVkaXRvci5jdXJyZW50Py5zZXRDdXJz b3IoZWRpdG9yLmN1cnJlbnQubGluZUNvdW50KCksIDApOworICAgICAgfSwgMjUwKTsKKyAgICB9 KTsKKyAgICBldmVudEJ1cy5yZWdpc3Rlckxpc3RlbmVyKFFVRVJZX1RPT0xfRVZFTlRTLkVESVRP Ul9GSU5EX1JFUExBQ0UsIChyZXBsYWNlPWZhbHNlKT0+eworICAgICAgZWRpdG9yLmN1cnJlbnQ/ LmZvY3VzKCk7CisgICAgICBlZGl0b3IuY3VycmVudD8udHJpZ2dlck9uS2V5RG93bigKKyAgICAg ICAgbmV3IEtleWJvYXJkRXZlbnQoJ2tleWRvd24nLCB7CisgICAgICAgICAga2V5Q29kZTogNzAs IG1ldGFLZXk6IHRydWUsIGN0cmxLZXk6IGZhbHNlLCBzaGlmdEtleTogZmFsc2UsIGFsdEtleTog cmVwbGFjZQorICAgICAgICB9KQorICAgICAgKTsKKyAgICB9KTsKKyAgICBldmVudEJ1cy5yZWdp c3Rlckxpc3RlbmVyKFFVRVJZX1RPT0xfRVZFTlRTLkVESVRPUl9TRVRfU1FMLCAodmFsdWUsIGZv Y3VzPXRydWUpPT57CisgICAgICBmb2N1cyAmJiBlZGl0b3IuY3VycmVudD8uZm9jdXMoKTsKKyAg ICAgIGVkaXRvci5jdXJyZW50Py5zZXRWYWx1ZSh2YWx1ZSk7CisgICAgfSk7CisgICAgZXZlbnRC dXMucmVnaXN0ZXJMaXN0ZW5lcihRVUVSWV9UT09MX0VWRU5UUy5UUklHR0VSX1FVRVJZX0NIQU5H RSwgKCk9PnsKKyAgICAgIGNoYW5nZSgpOworICAgIH0pOworICAgIGV2ZW50QnVzLnJlZ2lzdGVy TGlzdGVuZXIoUVVFUllfVE9PTF9FVkVOVFMuV0FSTl9TQVZFX1RFWFRfQ0xPU0UsICgpPT57Cisg ICAgICBpZighaXNEaXJ0eSgpKSB7CisgICAgICAgIGV2ZW50QnVzLmZpcmVFdmVudChRVUVSWV9U T09MX0VWRU5UUy5XQVJOX1RYTl9DTE9TRSk7CisgICAgICAgIHJldHVybjsKKyAgICAgIH0KKyAg ICAgIHF1ZXJ5VG9vbEN0eC5tb2RhbC5zaG93TW9kYWwoZ2V0dGV4dCgnU2F2ZSBxdWVyeSBjaGFu Z2VzPycpLCAoY2xvc2VNb2RhbCk9PigKKyAgICAgICAgPENvbmZpcm1TYXZlQ29udGVudAorICAg ICAgICAgIGNsb3NlTW9kYWw9e2Nsb3NlTW9kYWx9CisgICAgICAgICAgdGV4dD17Z2V0dGV4dCgn VGhlIHF1ZXJ5IHRleHQgaGFzIGNoYW5nZWQuIERvIHlvdSB3YW50IHRvIHNhdmUgY2hhbmdlcz8n KX0KKyAgICAgICAgICBvbkRvbnRTYXZlPXsoKT0+eworICAgICAgICAgICAgZXZlbnRCdXMuZmly ZUV2ZW50KFFVRVJZX1RPT0xfRVZFTlRTLldBUk5fVFhOX0NMT1NFKTsKKyAgICAgICAgICB9fQor ICAgICAgICAgIG9uU2F2ZT17KCk9PnsKKyAgICAgICAgICAgIGV2ZW50QnVzLnJlZ2lzdGVyTGlz dGVuZXIoUVVFUllfVE9PTF9FVkVOVFMuU0FWRV9GSUxFX0RPTkUsIChfZiwgc3VjY2Vzcyk9PnsK KyAgICAgICAgICAgICAgaWYoc3VjY2VzcykgeworICAgICAgICAgICAgICAgIGV2ZW50QnVzLmZp cmVFdmVudChRVUVSWV9UT09MX0VWRU5UUy5XQVJOX1RYTl9DTE9TRSk7CisgICAgICAgICAgICAg IH0KKyAgICAgICAgICAgIH0sIHRydWUpOworICAgICAgICAgICAgZXZlbnRCdXMuZmlyZUV2ZW50 KFFVRVJZX1RPT0xfRVZFTlRTLlRSSUdHRVJfU0FWRV9GSUxFKTsKKyAgICAgICAgICB9fQorICAg ICAgICAvPgorICAgICAgKSk7CisgICAgfSk7CisgICAgZXZlbnRCdXMucmVnaXN0ZXJMaXN0ZW5l cihRVUVSWV9UT09MX0VWRU5UUy5UUklHR0VSX0ZPUk1BVF9TUUwsICgpPT57CisgICAgICBsZXQg c2VsZWN0aW9uID0gdHJ1ZSwgc3FsID0gZWRpdG9yLmN1cnJlbnQ/LmdldFNlbGVjdGlvbigpOwor ICAgICAgaWYoc3FsID09ICcnKSB7CisgICAgICAgIHNxbCA9IGVkaXRvci5jdXJyZW50LmdldFZh bHVlKCk7CisgICAgICAgIHNlbGVjdGlvbiA9IGZhbHNlOworICAgICAgfQorICAgICAgcXVlcnlU b29sQ3R4LmFwaS5wb3N0KHVybF9mb3IoJ3NxbC5mb3JtYXQnKSwgeworICAgICAgICAnc3FsJzog c3FsLAorICAgICAgfSkudGhlbigocmVzKT0+eworICAgICAgICBpZihzZWxlY3Rpb24pIHsKKyAg ICAgICAgICBlZGl0b3IuY3VycmVudC5yZXBsYWNlU2VsZWN0aW9uKHJlcy5kYXRhLnNxbCwgJ2Fy b3VuZCcpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgIGVkaXRvci5jdXJyZW50LnNldFZh bHVlKHJlcy5kYXRhLnNxbCk7CisgICAgICAgIH0KKyAgICAgICAgbGFzdFNhdmVkVGV4dC5jdXJy ZW50ID0gZWRpdG9yLmN1cnJlbnQuZ2V0VmFsdWUoKTsKKyAgICAgIH0pLmNhdGNoKCgpPT57Lyog ZmFpbHVyZSBzaG91bGQgYmUgaWdub3JlZCAqL30pOworICAgIH0pOworCisgICAgZWRpdG9yLmN1 cnJlbnQuZm9jdXMoKTsKKyAgfSwgW10pOworCisgIGNvbnN0IGlzRGlydHkgPSAoKT0+bGFzdFNh dmVkVGV4dC5jdXJyZW50ICE9PSBlZGl0b3IuY3VycmVudC5nZXRWYWx1ZSgpOworCisgIGNvbnN0 IGN1cnNvckFjdGl2aXR5ID0gdXNlQ2FsbGJhY2soKGNtT2JqKT0+eworICAgIGNvbnN0IGMgPSBj bU9iai5nZXRDdXJzb3IoKTsKKyAgICBldmVudEJ1cy5maXJlRXZlbnQoUVVFUllfVE9PTF9FVkVO VFMuQ1VSU09SX0FDVElWSVRZLCBbYy5saW5lKzEsIGMuY2grMV0pOworICB9LCBbXSk7CisKKyAg Y29uc3QgY2hhbmdlID0gdXNlQ2FsbGJhY2soKCk9PnsKKyAgICBldmVudEJ1cy5maXJlRXZlbnQo UVVFUllfVE9PTF9FVkVOVFMuUVVFUllfQ0hBTkdFRCwgaXNEaXJ0eSgpKTsKKyAgfSwgW10pOwor CisgIHJldHVybiA8Q29kZU1pcnJvcgorICAgIGN1cnJFZGl0b3I9eyhvYmopPT57CisgICAgICBl ZGl0b3IuY3VycmVudD1vYmo7CisgICAgfX0KKyAgICB2YWx1ZT17Jyd9CisgICAgY2xhc3NOYW1l PXtjbGFzc2VzLnNxbH0KKyAgICBldmVudHM9e3sKKyAgICAgICdmb2N1cyc6IGN1cnNvckFjdGl2 aXR5LAorICAgICAgJ2N1cnNvckFjdGl2aXR5JzogY3Vyc29yQWN0aXZpdHksCisgICAgICAnY2hh bmdlJzogY2hhbmdlLAorICAgIH19CisgICAgZGlzYWJsZWQ9eyFxdWVyeVRvb2xDdHgucGFyYW1z LmlzX3F1ZXJ5X3Rvb2x9CisgICAgYXV0b2NvbXBsZXRlPXt0cnVlfQorICAvPjsKK30KZGlmZiAt LWdpdCBhL3dlYi9wZ2FkbWluL3Rvb2xzL3NxbGVkaXRvci9zdGF0aWMvanMvY29tcG9uZW50cy9z ZWN0aW9ucy9RdWVyeUhpc3RvcnkuanN4IGIvd2ViL3BnYWRtaW4vdG9vbHMvc3FsZWRpdG9yL3N0 YXRpYy9qcy9jb21wb25lbnRzL3NlY3Rpb25zL1F1ZXJ5SGlzdG9yeS5qc3gKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwLi44NGEyOGZmYjUKLS0tIC9kZXYvbnVsbAorKysgYi93 ZWIvcGdhZG1pbi90b29scy9zcWxlZGl0b3Ivc3RhdGljL2pzL2NvbXBvbmVudHMvc2VjdGlvbnMv UXVlcnlIaXN0b3J5LmpzeApAQCAtMCwwICsxLDQ4OSBAQAorLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworLy8KKy8vIHBnQWRtaW4g NCAtIFBvc3RncmVTUUwgVG9vbHMKKy8vCisvLyBDb3B5cmlnaHQgKEMpIDIwMTMgLSAyMDIyLCBU aGUgcGdBZG1pbiBEZXZlbG9wbWVudCBUZWFtCisvLyBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2Vk IHVuZGVyIHRoZSBQb3N0Z3JlU1FMIExpY2VuY2UKKy8vCisvLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworaW1wb3J0IHsgbWFrZVN0 eWxlcyB9IGZyb20gJ0BtYXRlcmlhbC11aS9zdHlsZXMnOworaW1wb3J0IFJlYWN0IGZyb20gJ3Jl YWN0JzsKK2ltcG9ydCB7IFBBTkVMUywgUVVFUllfVE9PTF9FVkVOVFMgfSBmcm9tICcuLi9RdWVy eVRvb2xDb25zdGFudHMnOworaW1wb3J0IGdldHRleHQgZnJvbSAnc291cmNlcy9nZXR0ZXh0JzsK K2ltcG9ydCBfIGZyb20gJ2xvZGFzaCc7CitpbXBvcnQgY2xzeCBmcm9tICdjbHN4JzsKK2ltcG9y dCB7IEJveCwgR3JpZCwgTGlzdCwgTGlzdEl0ZW0sIExpc3RTdWJoZWFkZXIgfSBmcm9tICdAbWF0 ZXJpYWwtdWkvY29yZSc7CitpbXBvcnQgdXJsX2ZvciBmcm9tICdzb3VyY2VzL3VybF9mb3InOwor aW1wb3J0IHsgUXVlcnlUb29sQ29udGV4dCwgUXVlcnlUb29sRXZlbnRzQ29udGV4dCB9IGZyb20g Jy4uL1F1ZXJ5VG9vbENvbXBvbmVudCc7CitpbXBvcnQgbW9tZW50IGZyb20gJ21vbWVudCc7Citp bXBvcnQgUGxheUFycm93Um91bmRlZEljb24gZnJvbSAnQG1hdGVyaWFsLXVpL2ljb25zL1BsYXlB cnJvd1JvdW5kZWQnOworaW1wb3J0IEFzc2Vzc21lbnRSb3VuZGVkSWNvbiBmcm9tICdAbWF0ZXJp YWwtdWkvaWNvbnMvQXNzZXNzbWVudFJvdW5kZWQnOworaW1wb3J0IEV4cGxpY2l0Um91bmRlZElj b24gZnJvbSAnQG1hdGVyaWFsLXVpL2ljb25zL0V4cGxpY2l0Um91bmRlZCc7CitpbXBvcnQgeyBT YXZlRGF0YUljb24sIENvbW1pdEljb24sIFJvbGxiYWNrSWNvbiB9IGZyb20gJy4uLy4uLy4uLy4u Ly4uLy4uL3N0YXRpYy9qcy9jb21wb25lbnRzL0V4dGVybmFsSWNvbic7CitpbXBvcnQgeyBJbnB1 dFN3aXRjaCB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL3N0YXRpYy9qcy9jb21wb25lbnRzL0Zv cm1Db21wb25lbnRzJzsKK2ltcG9ydCBDb2RlTWlycm9yIGZyb20gJy4uLy4uLy4uLy4uLy4uLy4u L3N0YXRpYy9qcy9jb21wb25lbnRzL0NvZGVNaXJyb3InOworaW1wb3J0IHsgRGVmYXVsdEJ1dHRv biB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL3N0YXRpYy9qcy9jb21wb25lbnRzL0J1dHRvbnMn OworaW1wb3J0IGNvcHkgZnJvbSAnY29weS10by1jbGlwYm9hcmQnOworaW1wb3J0IHsgdXNlRGVs YXllZENhbGxlciB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL3N0YXRpYy9qcy9jdXN0b21faG9v a3MnOworaW1wb3J0IE5vdGlmaWVyIGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL3N0YXRpYy9qcy9o ZWxwZXJzL05vdGlmaWVyJzsKK2ltcG9ydCBMb2FkZXIgZnJvbSAnc291cmNlcy9jb21wb25lbnRz L0xvYWRlcic7CitpbXBvcnQgeyBMYXlvdXRFdmVudHNDb250ZXh0LCBMQVlPVVRfRVZFTlRTIH0g ZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vc3RhdGljL2pzL2hlbHBlcnMvTGF5b3V0JzsKK2ltcG9y dCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7CitpbXBvcnQgeyBwYXJzZUFwaUVycm9yIH0g ZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vc3RhdGljL2pzL2FwaV9pbnN0YW5jZSc7CisKK2NvbnN0 IHVzZVN0eWxlcyA9IG1ha2VTdHlsZXMoKHRoZW1lKT0+KHsKKyAgbGVmdFJvb3Q6IHsKKyAgICBk aXNwbGF5OiAnZmxleCcsCisgICAgZmxleERpcmVjdGlvbjogJ2NvbHVtbicsCisgICAgYmFja2dy b3VuZENvbG9yOiB0aGVtZS5vdGhlclZhcnMuZWRpdG9yVG9vbGJhckJnLAorICAgIC4uLnRoZW1l Lm1peGlucy5wYW5lbEJvcmRlci5yaWdodCwKKyAgfSwKKyAgbGlzdFJvb3Q6IHsKKyAgICAuLi50 aGVtZS5taXhpbnMucGFuZWxCb3JkZXIudG9wLAorICB9LAorICBsaXN0U3ViaGVhZGVyOiB7Cisg ICAgcGFkZGluZzogJzAuMjVyZW0nLAorICAgIGxpbmVIZWlnaHQ6ICd1bnNldCcsCisgICAgY29s b3I6IHRoZW1lLnBhbGV0dGUudGV4dC5tdXRlZCwKKyAgICBiYWNrZ3JvdW5kQ29sb3I6IHRoZW1l LnBhbGV0dGUuYmFja2dyb3VuZC5kZWZhdWx0LAorICAgIC4uLnRoZW1lLm1peGlucy5wYW5lbEJv cmRlci5ib3R0b20sCisgICAgLi4udGhlbWUubWl4aW5zLmZvbnRTb3VyY2VDb2RlLAorICB9LAor ICByZW1vdmVQYWRkaW5nOiB7CisgICAgcGFkZGluZzogMCwKKyAgfSwKKyAgZm9udFNvdXJjZUNv ZGU6eworICAgIC4uLnRoZW1lLm1peGlucy5mb250U291cmNlQ29kZSwKKyAgICB1c2VyU2VsZWN0 OiAndGV4dCcsCisgIH0sCisgIGl0ZW1FcnJvcjogeworICAgIGJhY2tncm91bmRDb2xvcjogdGhl bWUucGFsZXR0ZS5lcnJvci5saWdodCwKKyAgICAnJi5NdWktc2VsZWN0ZWQnOiB7CisgICAgICBi YWNrZ3JvdW5kQ29sb3I6IHRoZW1lLnBhbGV0dGUuZXJyb3IubGlnaHQsCisgICAgICAnJjpob3Zl cic6IHsKKyAgICAgICAgYmFja2dyb3VuZENvbG9yOiB0aGVtZS5wYWxldHRlLmVycm9yLmxpZ2h0 LAorICAgICAgfQorICAgIH0KKyAgfSwKKyAgZGV0YWlsc1F1ZXJ5OiB7CisgICAgbWFyZ2luVG9w OiAnMC41cmVtJywKKyAgICAuLi50aGVtZS5taXhpbnMucGFuZWxCb3JkZXIuYWxsLAorICB9LAor ICBjb3B5QnRuOiB7CisgICAgYm9yZGVyUmFkaXVzOiAwLAorICAgIHBhZGRpbmdMZWZ0OiAnOHB4 JywKKyAgICBwYWRkaW5nUmlnaHQ6ICc4cHgnLAorICAgIGJvcmRlclRvcDogJ25vbmUnLAorICAg IGJvcmRlckxlZnQ6ICdub25lJywKKyAgICBib3JkZXJDb2xvcjogdGhlbWUub3RoZXJWYXJzLmJv cmRlckNvbG9yLAorICAgIGZvbnRTaXplOiAnMTNweCcsCisgIH0sCisgIGluZm9IZWFkZXI6IHsK KyAgICBmb250U2l6ZTogJzEzcHgnLAorICAgIHBhZGRpbmc6ICcwLjVyZW0nLAorICAgIGJhY2tn cm91bmRDb2xvcjogdGhlbWUub3RoZXJWYXJzLmVkaXRvclRvb2xiYXJCZywKKyAgfSwKKyAgcmVt b3ZlQnRuTWFyZ2luOiB7CisgICAgbWFyZ2luTGVmdDogJzAuMjVyZW0nLAorICB9Cit9KSk7CisK K2V4cG9ydCBjb25zdCBRdWVyeVNvdXJjZXMgPSB7CisgIEVYRUNVVEU6IHsKKyAgICBJQ09OX0NT U19DTEFTUzogJ2ZhIGZhLXBsYXknLAorICB9LAorICBFWFBMQUlOOiB7CisgICAgSUNPTl9DU1Nf Q0xBU1M6ICdmYSBmYS1oYW5kLXBvaW50ZXInLAorICB9LAorICBFWFBMQUlOX0FOQUxZWkU6IHsK KyAgICBJQ09OX0NTU19DTEFTUzogJ2ZhIGZhLWxpc3QtYWx0JywKKyAgfSwKKyAgQ09NTUlUOiB7 CisgICAgSUNPTl9DU1NfQ0xBU1M6ICdwZy1mb250LWljb24gaWNvbi1jb21taXQnLAorICB9LAor ICBST0xMQkFDSzogeworICAgIElDT05fQ1NTX0NMQVNTOiAncGctZm9udC1pY29uIGljb24tcm9s bGJhY2snLAorICB9LAorICBTQVZFX0RBVEE6IHsKKyAgICBJQ09OX0NTU19DTEFTUzogJ3BnLWZv bnQtaWNvbiBpY29uLXNhdmVfZGF0YV9jaGFuZ2VzJywKKyAgfSwKKyAgVklFV19EQVRBOiB7Cisg ICAgSUNPTl9DU1NfQ0xBU1M6ICdwZy1mb250LWljb24gaWNvbi12aWV3X2RhdGEnLAorICB9LAor fTsKKworCitjbGFzcyBRdWVyeUhpc3RvcnlVdGlscyB7CisgIGNvbnN0cnVjdG9yKCkgeworICAg IHRoaXMuX2VudHJpZXMgPSBbXTsKKyAgICB0aGlzLnNob3dJbnRlcm5hbCA9IHRydWU7CisgIH0K KworICBkYXRlQXNHcm91cEtleShkYXRlKSB7CisgICAgcmV0dXJuIG1vbWVudChkYXRlKS5mb3Jt YXQoJ1lZWVkgTU0gREQnKTsKKyAgfQorCisgIGdldEl0ZW1LZXkoZW50cnkpIHsKKyAgICByZXR1 cm4gdGhpcy5kYXRlQXNHcm91cEtleShlbnRyeS5zdGFydF90aW1lKSArIHRoaXMuZm9ybWF0RW50 cnlEYXRlKGVudHJ5LnN0YXJ0X3RpbWUpICsgKGVudHJ5LnN1YktleSA/PyAnJyk7CisgIH0KKwor ICBnZXREYXRlRm9ybWF0dGVkKGRhdGUpIHsKKyAgICByZXR1cm4gZGF0ZS50b0xvY2FsZURhdGVT dHJpbmcoKTsKKyAgfQorCisgIGZvcm1hdEVudHJ5RGF0ZShkYXRlKSB7CisgICAgcmV0dXJuIG1v bWVudChkYXRlKS5mb3JtYXQoJ0hIOm1tOnNzJyk7CisgIH0KKworICBpc0RheXNCZWZvcmUoZGF0 ZSwgYmVmb3JlKSB7CisgICAgcmV0dXJuICgKKyAgICAgIHRoaXMuZ2V0RGF0ZUZvcm1hdHRlZChk YXRlKSA9PT0KKyAgICAgIHRoaXMuZ2V0RGF0ZUZvcm1hdHRlZChtb21lbnQoKS5zdWJ0cmFjdChi ZWZvcmUsICdkYXlzJykudG9EYXRlKCkpCisgICAgKTsKKyAgfQorCisgIGdldERhdGVQcmVmaXgo ZGF0ZSkgeworICAgIGxldCBwcmVmaXggPSAnJzsKKyAgICBpZiAodGhpcy5pc0RheXNCZWZvcmUo ZGF0ZSwgMCkpIHsKKyAgICAgIHByZWZpeCA9ICdUb2RheSAtICc7CisgICAgfSBlbHNlIGlmICh0 aGlzLmlzRGF5c0JlZm9yZShkYXRlLCAxKSkgeworICAgICAgcHJlZml4ID0gJ1llc3RlcmRheSAt ICc7CisgICAgfQorICAgIHJldHVybiBwcmVmaXg7CisgIH0KKworICBhZGRFbnRyeShlbnRyeSkg eworICAgIGVudHJ5Lmdyb3VwS2V5ID0gdGhpcy5kYXRlQXNHcm91cEtleShlbnRyeS5zdGFydF90 aW1lKTsKKyAgICBlbnRyeS5pdGVtS2V5ID0gdGhpcy5nZXRJdGVtS2V5KGVudHJ5KTsKKyAgICBs ZXQgZXhpc3RFbnRyeSA9IF8uZmluZCh0aGlzLl9lbnRyaWVzLCAoZSk9PmUuaXRlbUtleT09ZW50 cnkuaXRlbUtleSk7CisgICAgaWYoZXhpc3RFbnRyeSkgeworICAgICAgZW50cnkuaXRlbUtleSA9 IHRoaXMuZ2V0SXRlbUtleShlbnRyeSkgKyBfLnVuaXF1ZUlkKCk7CisgICAgfQorICAgIGxldCBp bnNlcnRJbmRleCA9IF8uc29ydGVkSW5kZXhCeSh0aGlzLl9lbnRyaWVzLCBlbnRyeSwgKGUpPT5l Lml0ZW1LZXkpOworICAgIHRoaXMuX2VudHJpZXMgPSBbCisgICAgICAuLi50aGlzLl9lbnRyaWVz LnNsaWNlKDAsIGluc2VydEluZGV4KSwKKyAgICAgIGVudHJ5LAorICAgICAgLi4udGhpcy5fZW50 cmllcy5zbGljZShpbnNlcnRJbmRleCksCisgICAgXTsKKyAgfQorCisgIGdldEVudHJpZXMoKSB7 CisgICAgaWYoIXRoaXMuc2hvd0ludGVybmFsKSB7CisgICAgICByZXR1cm4gdGhpcy5fZW50cmll cy5maWx0ZXIoKGUpPT4hZS5pc19wZ2FkbWluX3F1ZXJ5KTsKKyAgICB9CisgICAgcmV0dXJuIHRo aXMuX2VudHJpZXM7CisgIH0KKworICBnZXRFbnRyeShpdGVtS2V5KSB7CisgICAgcmV0dXJuIF8u ZmluZCh0aGlzLmdldEVudHJpZXMoKSwgKGUpPT5lLml0ZW1LZXk9PWl0ZW1LZXkpOworICB9CisK KyAgZ2V0R3JvdXBIZWFkZXIoZW50cnkpIHsKKyAgICByZXR1cm4gdGhpcy5nZXREYXRlUHJlZml4 KGVudHJ5LnN0YXJ0X3RpbWUpK3RoaXMuZ2V0RGF0ZUZvcm1hdHRlZChlbnRyeS5zdGFydF90aW1l KTsKKyAgfQorCisgIGdldEdyb3VwcygpIHsKKyAgICByZXR1cm4gXy5zb3J0ZWRVbmlxQnkodGhp cy5nZXRFbnRyaWVzKCkubWFwKChlKT0+W2UuZ3JvdXBLZXksIHRoaXMuZ2V0R3JvdXBIZWFkZXIo ZSldKSwgKGcpPT5nWzBdKS5yZXZlcnNlKCk7CisgIH0KKworICBnZXRHcm91cEVudHJpZXMoZ3Jv dXBLZXkpIHsKKyAgICByZXR1cm4gdGhpcy5nZXRFbnRyaWVzKCkuZmlsdGVyKChlKT0+ZS5ncm91 cEtleT09Z3JvdXBLZXkpLnJldmVyc2UoKTsKKyAgfQorCisgIGdldE5leHRJdGVtS2V5KGN1cnJL ZXkpIHsKKyAgICBsZXQgbmV4dEluZGV4ID0gdGhpcy5nZXRFbnRyaWVzKCkubGVuZ3RoLTE7Cisg ICAgaWYoY3VycktleSkgeworICAgICAgbGV0IGN1cnJJbmRleCA9IF8uZmluZEluZGV4KHRoaXMu Z2V0RW50cmllcygpLCAoZSk9PmUuaXRlbUtleT09Y3VycktleSk7CisgICAgICBpZihjdXJySW5k ZXggPT0gMCkgeworICAgICAgICBuZXh0SW5kZXggPSBjdXJySW5kZXg7CisgICAgICB9IGVsc2Ug eworICAgICAgICBuZXh0SW5kZXggPSBjdXJySW5kZXggLSAxOworICAgICAgfQorICAgIH0KKyAg ICByZXR1cm4gdGhpcy5nZXRFbnRyaWVzKClbbmV4dEluZGV4XT8uaXRlbUtleTsKKyAgfQorCisg IGdldFByZXZJdGVtS2V5KGN1cnJLZXkpIHsKKyAgICBsZXQgbmV4dEluZGV4ID0gdGhpcy5nZXRF bnRyaWVzKCkubGVuZ3RoLTE7CisgICAgaWYoY3VycktleSkgeworICAgICAgbGV0IGN1cnJJbmRl eCA9IF8uZmluZEluZGV4KHRoaXMuZ2V0RW50cmllcygpLCAoZSk9PmUuaXRlbUtleT09Y3Vycktl eSk7CisgICAgICBpZihjdXJySW5kZXggPT0gdGhpcy5nZXRFbnRyaWVzKCkubGVuZ3RoLTEpIHsK KyAgICAgICAgbmV4dEluZGV4ID0gY3VyckluZGV4OworICAgICAgfSBlbHNlIHsKKyAgICAgICAg bmV4dEluZGV4ID0gY3VyckluZGV4ICsgMTsKKyAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuIHRo aXMuZ2V0RW50cmllcygpW25leHRJbmRleF0/Lml0ZW1LZXk7CisgIH0KKworICBjbGVhcihpdGVt S2V5KSB7CisgICAgaWYoaXRlbUtleSkgeworICAgICAgbGV0IG5leHRLZXkgPSB0aGlzLmdldE5l eHRJdGVtS2V5KGl0ZW1LZXkpOworICAgICAgbGV0IHJlbW92ZUlkeCA9IF8uZmluZEluZGV4KHRo aXMuX2VudHJpZXMsIChlKT0+ZS5pdGVtS2V5PT1pdGVtS2V5KTsKKyAgICAgIHRoaXMuX2VudHJp ZXMuc3BsaWNlKHJlbW92ZUlkeCwgMSk7CisgICAgICByZXR1cm4gbmV4dEtleTsKKyAgICB9IGVs c2UgeworICAgICAgdGhpcy5fZW50cmllcyA9IFtdOworICAgIH0KKyAgfQorCisgIHNpemUoKSB7 CisgICAgcmV0dXJuIHRoaXMuX2VudHJpZXMubGVuZ3RoOworICB9Cit9CisKK2Z1bmN0aW9uIFF1 ZXJ5U291cmNlSWNvbih7c291cmNlfSkgeworICBzd2l0Y2goSlNPTi5zdHJpbmdpZnkoc291cmNl KSkgeworICBjYXNlIEpTT04uc3RyaW5naWZ5KFF1ZXJ5U291cmNlcy5FWEVDVVRFKToKKyAgICBy ZXR1cm4gPFBsYXlBcnJvd1JvdW5kZWRJY29uIHN0eWxlPXt7bWFyZ2luTGVmdDogJy00cHgnfX0v PjsKKyAgY2FzZSBKU09OLnN0cmluZ2lmeShRdWVyeVNvdXJjZXMuRVhQTEFJTik6CisgICAgcmV0 dXJuIDxFeHBsaWNpdFJvdW5kZWRJY29uLz47CisgIGNhc2UgSlNPTi5zdHJpbmdpZnkoUXVlcnlT b3VyY2VzLkVYUExBSU5fQU5BTFlaRSk6CisgICAgcmV0dXJuIDxBc3Nlc3NtZW50Um91bmRlZElj b24vPjsKKyAgY2FzZSBKU09OLnN0cmluZ2lmeShRdWVyeVNvdXJjZXMuQ09NTUlUKToKKyAgICBy ZXR1cm4gPENvbW1pdEljb24gc3R5bGU9e3ttYXJnaW5MZWZ0OiAnLTRweCd9fS8+OworICBjYXNl IEpTT04uc3RyaW5naWZ5KFF1ZXJ5U291cmNlcy5ST0xMQkFDSyk6CisgICAgcmV0dXJuIDxSb2xs YmFja0ljb24gc3R5bGU9e3ttYXJnaW5MZWZ0OiAnLTRweCd9fS8+OworICBjYXNlIEpTT04uc3Ry aW5naWZ5KFF1ZXJ5U291cmNlcy5TQVZFX0RBVEEpOgorICAgIHJldHVybiA8U2F2ZURhdGFJY29u IHN0eWxlPXt7bWFyZ2luTGVmdDogJy00cHgnfX0vPjsKKyAgY2FzZSBKU09OLnN0cmluZ2lmeShR dWVyeVNvdXJjZXMuVklFV19EQVRBKToKKyAgICByZXR1cm4gPFNhdmVEYXRhSWNvbiBzdHlsZT17 e21hcmdpbkxlZnQ6ICctNHB4J319Lz47CisgIGRlZmF1bHQ6CisgICAgcmV0dXJuIDw+PC8+Owor ICB9Cit9CitRdWVyeVNvdXJjZUljb24ucHJvcFR5cGVzID0geworICBzb3VyY2U6IFByb3BUeXBl cy5vYmplY3QsCit9OworCitmdW5jdGlvbiBIaXN0b3J5RW50cnkoe2VudHJ5LCBmb3JtYXRFbnRy eURhdGUsIGl0ZW1LZXksIHNlbGVjdGVkSXRlbUtleSwgb25DbGlja30pIHsKKyAgY29uc3QgY2xh c3NlcyA9IHVzZVN0eWxlcygpOworICByZXR1cm4gPExpc3RJdGVtIHRhYkluZGV4PSIwIiByZWY9 eyhlbGUpPT57CisgICAgc2VsZWN0ZWRJdGVtS2V5PT1pdGVtS2V5ICYmIGVsZSAmJiBlbGUuc2Ny b2xsSW50b1ZpZXcoeworICAgICAgYmxvY2s6ICdjZW50ZXInLAorICAgICAgYmVoYXZpb3I6ICdz bW9vdGgnLAorICAgIH0pOworICB9fSBjbGFzc05hbWU9e2Nsc3goY2xhc3Nlcy5mb250U291cmNl Q29kZSwgZW50cnkuc3RhdHVzID8gJycgOiBjbGFzc2VzLml0ZW1FcnJvcil9IHNlbGVjdGVkPXtz ZWxlY3RlZEl0ZW1LZXk9PWl0ZW1LZXl9IG9uQ2xpY2s9e29uQ2xpY2t9PgorICAgIDxCb3ggd2hp dGVTcGFjZT0ibm93cmFwIiB0ZXh0T3ZlcmZsb3c9ImVsbGlwc2lzIiBvdmVyZmxvdz0iaGlkZGVu IiA+CisgICAgICA8UXVlcnlTb3VyY2VJY29uIHNvdXJjZT17ZW50cnkucXVlcnlfc291cmNlfS8+ CisgICAgICB7ZW50cnkucXVlcnl9CisgICAgPC9Cb3g+CisgICAgPEJveCBmb250U2l6ZT0iMTJw eCI+CisgICAgICB7Zm9ybWF0RW50cnlEYXRlKGVudHJ5LnN0YXJ0X3RpbWUpfQorICAgIDwvQm94 PgorICA8L0xpc3RJdGVtPjsKK30KKworY29uc3QgRW50cnlQcm9wVHlwZSA9IFByb3BUeXBlcy5z aGFwZSh7CisgIHN0YXR1czogUHJvcFR5cGVzLmJvb2wsCisgIHN0YXJ0X3RpbWU6IFByb3BUeXBl cy5vYmplY3RPZihEYXRlKSwKKyAgcXVlcnk6IFByb3BUeXBlcy5zdHJpbmcsCisgIHJvd19hZmZl Y3RlZDogUHJvcFR5cGVzLm51bWJlciwKKyAgdG90YWxfdGltZTogUHJvcFR5cGVzLnN0cmluZywK KyAgbWVzc2FnZTogUHJvcFR5cGVzLnN0cmluZywKKyAgcXVlcnlfc291cmNlOiBQcm9wVHlwZXMu b2JqZWN0LAorICBpc19wZ2FkbWluX3F1ZXJ5OiBQcm9wVHlwZXMuYm9vbCwKK30pOworSGlzdG9y eUVudHJ5LnByb3BUeXBlcyA9IHsKKyAgZW50cnk6IEVudHJ5UHJvcFR5cGUsCisgIGZvcm1hdEVu dHJ5RGF0ZTogUHJvcFR5cGVzLmZ1bmMsCisgIGl0ZW1LZXk6IFByb3BUeXBlcy5zdHJpbmcsCisg IHNlbGVjdGVkSXRlbUtleTogUHJvcFR5cGVzLnN0cmluZywKKyAgb25DbGljazogUHJvcFR5cGVz LmZ1bmMsCit9OworCitmdW5jdGlvbiBRdWVyeUhpc3RvcnlEZXRhaWxzKHtlbnRyeX0pIHsKKyAg Y29uc3QgY2xhc3NlcyA9IHVzZVN0eWxlcygpOworICBjb25zdCBbY29weVRleHQsIHNldENvcHlU ZXh0XSA9IFJlYWN0LnVzZVN0YXRlKGdldHRleHQoJ0NvcHknKSk7CisgIGNvbnN0IGV2ZW50QnVz ID0gUmVhY3QudXNlQ29udGV4dChRdWVyeVRvb2xFdmVudHNDb250ZXh0KTsKKyAgY29uc3QgcmV2 ZXJ0Q29waWVkVGV4dCA9IHVzZURlbGF5ZWRDYWxsZXIoKCk9PnsKKyAgICBzZXRDb3B5VGV4dChn ZXR0ZXh0KCdDb3B5JykpOworICB9KTsKKworICBjb25zdCBvbkNvcHlDbGljayA9IFJlYWN0LnVz ZUNhbGxiYWNrKCgpPT57CisgICAgY29weShlbnRyeS5xdWVyeSwgeworICAgICAgZm9ybWF0OiAn dGV4dC9wbGFpbicsCisgICAgfSk7CisgICAgc2V0Q29weVRleHQoZ2V0dGV4dCgnQ29waWVkIScp KTsKKyAgICByZXZlcnRDb3BpZWRUZXh0KDE1MDApOworICB9LCBbZW50cnldKTsKKworICBjb25z dCBvbkNvcHlUb0VkaXRvciA9IFJlYWN0LnVzZUNhbGxiYWNrKCgpPT57CisgICAgZXZlbnRCdXMu ZmlyZUV2ZW50KFFVRVJZX1RPT0xfRVZFTlRTLkNPUFlfVE9fRURJVE9SLCBlbnRyeS5xdWVyeSk7 CisgIH0sIFtlbnRyeV0pOworCisgIGlmKCFlbnRyeSkgeworICAgIHJldHVybiA8PjwvPjsKKyAg fQorCisgIHJldHVybiAoCisgICAgPD4KKyAgICAgIHtlbnRyeS5pbmZvICYmCisgICAgPEJveCBj bGFzc05hbWU9e2NsYXNzZXMuaW5mb0hlYWRlcn0+e2VudHJ5LmluZm99PC9Cb3g+fQorICAgICAg PEJveCBwYWRkaW5nPSIwLjVyZW0iPgorICAgICAgICA8R3JpZCBjb250YWluZXI+CisgICAgICAg ICAgPEdyaWQgaXRlbSBzbT17Nn0+e2VudHJ5LnN0YXJ0X3RpbWUudG9Mb2NhbGVEYXRlU3RyaW5n KCkgKyAnICcgKyBlbnRyeS5zdGFydF90aW1lLnRvTG9jYWxlVGltZVN0cmluZygpfTwvR3JpZD4K KyAgICAgICAgICA8R3JpZCBpdGVtIHNtPXs2fT57ZW50cnkucm93X2FmZmVjdGVkfTwvR3JpZD4K KyAgICAgICAgPC9HcmlkPgorICAgICAgICA8R3JpZCBjb250YWluZXI+CisgICAgICAgICAgPEdy aWQgaXRlbSBzbT17Nn0+e2dldHRleHQoJ0RhdGUnKX08L0dyaWQ+CisgICAgICAgICAgPEdyaWQg aXRlbSBzbT17Nn0+e2dldHRleHQoJ1Jvd3MgYWZmZWN0ZWQnKX08L0dyaWQ+CisgICAgICAgIDwv R3JpZD4KKyAgICAgICAgPEJveCBjbGFzc05hbWU9e2NsYXNzZXMuZGV0YWlsc1F1ZXJ5fT4KKyAg ICAgICAgICA8RGVmYXVsdEJ1dHRvbiBzaXplPSJ4cyIgY2xhc3NOYW1lPXtjbGFzc2VzLmNvcHlC dG59IG9uQ2xpY2s9e29uQ29weUNsaWNrfT57Y29weVRleHR9PC9EZWZhdWx0QnV0dG9uPgorICAg ICAgICAgIDxEZWZhdWx0QnV0dG9uIHNpemU9InhzIiBjbGFzc05hbWU9e2NsYXNzZXMuY29weUJ0 bn0gb25DbGljaz17b25Db3B5VG9FZGl0b3J9PntnZXR0ZXh0KCdDb3B5IHRvIFF1ZXJ5IEVkaXRv cicpfTwvRGVmYXVsdEJ1dHRvbj4KKyAgICAgICAgICA8Q29kZU1pcnJvcgorICAgICAgICAgICAg dmFsdWU9e2VudHJ5LnF1ZXJ5fQorICAgICAgICAgICAgb3B0aW9ucz17eworICAgICAgICAgICAg ICBmb2xkR3V0dGVyOiBmYWxzZSwKKyAgICAgICAgICAgICAgbGluZU51bWJlcnM6IGZhbHNlLAor ICAgICAgICAgICAgICBndXR0ZXJzOiBbXSwKKyAgICAgICAgICAgICAgcmVhZE9ubHk6IHRydWUs CisgICAgICAgICAgICB9fQorICAgICAgICAgIC8+CisgICAgICAgIDwvQm94PgorICAgICAgICA8 Qm94IG1hcmdpblRvcD0iMC41cmVtIj4KKyAgICAgICAgICA8Qm94PntnZXR0ZXh0KCdNZXNzYWdl cycpfTwvQm94PgorICAgICAgICAgIDxCb3ggY2xhc3NOYW1lPXtjbGFzc2VzLmZvbnRTb3VyY2VD b2RlfSBmb250U2l6ZT0iMTNweCIgd2hpdGVTcGFjZT0icHJlLXdyYXAiPntlbnRyeS5tZXNzYWdl fTwvQm94PgorICAgICAgICA8L0JveD4KKyAgICAgIDwvQm94PgorICAgIDwvPgorICApOworfQor CitRdWVyeUhpc3RvcnlEZXRhaWxzLnByb3BUeXBlcyA9IHsKKyAgZW50cnk6IEVudHJ5UHJvcFR5 cGUsCit9OworCitleHBvcnQgZnVuY3Rpb24gUXVlcnlIaXN0b3J5KCkgeworICBjb25zdCBxaHUg PSBSZWFjdC51c2VSZWYobmV3IFF1ZXJ5SGlzdG9yeVV0aWxzKCkpOworICBjb25zdCBxdWVyeVRv b2xDdHggPSBSZWFjdC51c2VDb250ZXh0KFF1ZXJ5VG9vbENvbnRleHQpOworICBjb25zdCBjbGFz c2VzID0gdXNlU3R5bGVzKCk7CisgIGNvbnN0IGV2ZW50QnVzID0gUmVhY3QudXNlQ29udGV4dChR dWVyeVRvb2xFdmVudHNDb250ZXh0KTsKKyAgY29uc3QgW3NlbGVjdGVkSXRlbUtleSwgc2V0U2Vs ZWN0ZWRJdGVtS2V5XSA9IFJlYWN0LnVzZVN0YXRlKDEpOworICBjb25zdCBbc2hvd0ludGVybmFs LCBzZXRTaG93SW50ZXJuYWxdID0gUmVhY3QudXNlU3RhdGUodHJ1ZSk7CisgIGNvbnN0IFtsb2Fk ZXJUZXh0LCBzZXRMb2FkZXJUZXh0XSA9IFJlYWN0LnVzZVN0YXRlKCcnKTsKKyAgY29uc3QgWyxy ZWZyZXNoXSA9IFJlYWN0LnVzZVN0YXRlKHt9KTsKKyAgY29uc3Qgc2VsZWN0ZWRFbnRyeSA9IHFo dS5jdXJyZW50LmdldEVudHJ5KHNlbGVjdGVkSXRlbUtleSk7CisgIGNvbnN0IGxheW91dEV2ZW5C dXMgPSBSZWFjdC51c2VDb250ZXh0KExheW91dEV2ZW50c0NvbnRleHQpOworICBjb25zdCBsaXN0 UmVmID0gUmVhY3QudXNlUmVmKCk7CisKKyAgUmVhY3QudXNlRWZmZWN0KGFzeW5jICgpPT57Cisg ICAgbGF5b3V0RXZlbkJ1cy5yZWdpc3Rlckxpc3RlbmVyKExBWU9VVF9FVkVOVFMuQUNUSVZFLCAo Y3VycmVudFRhYklkKT0+eworICAgICAgY3VycmVudFRhYklkID09IFBBTkVMUy5ISVNUT1JZICYm IGxpc3RSZWYuY3VycmVudC5mb2N1cygpOworICAgIH0pOworCisgICAgc2V0TG9hZGVyVGV4dChn ZXR0ZXh0KCdGZXRjaGluZyBoaXN0b3J5Li4uJykpOworICAgIHRyeSB7CisgICAgICBsZXQge2Rh dGE6IHJlc3BEYXRhfSA9IGF3YWl0IHF1ZXJ5VG9vbEN0eC5hcGkuZ2V0KHVybF9mb3IoJ3NxbGVk aXRvci5nZXRfcXVlcnlfaGlzdG9yeScsIHsKKyAgICAgICAgJ3RyYW5zX2lkJzogcXVlcnlUb29s Q3R4LnBhcmFtcy50cmFuc19pZCwKKyAgICAgIH0pKTsKKyAgICAgIHJlc3BEYXRhLmRhdGEucmVz dWx0LmZvckVhY2goKGgpPT57CisgICAgICAgIGggPSBKU09OLnBhcnNlKGgpOworICAgICAgICBo LnN0YXJ0X3RpbWVfb3JpZyA9IGguc3RhcnRfdGltZTsKKyAgICAgICAgaC5zdGFydF90aW1lID0g bmV3IERhdGUoaC5zdGFydF90aW1lKTsKKyAgICAgICAgcWh1LmN1cnJlbnQuYWRkRW50cnkoaCk7 CisgICAgICB9KTsKKyAgICAgIHNldFNlbGVjdGVkSXRlbUtleShxaHUuY3VycmVudC5nZXROZXh0 SXRlbUtleSgpKTsKKyAgICB9IGNhdGNoIChlcnJvcikgeworICAgICAgY29uc29sZS5lcnJvcihl cnJvcik7CisgICAgICBOb3RpZmllci5lcnJvcihnZXR0ZXh0KCdGYWlsZWQgdG8gZmV0Y2ggcXVl cnkgaGlzdG9yeS4nKSArIHBhcnNlQXBpRXJyb3IoZXJyb3IpKTsKKyAgICB9CisgICAgc2V0TG9h ZGVyVGV4dCgnJyk7CisKKyAgICBjb25zdCBwdXNoSGlzdG9yeSA9IChoKT0+eworICAgICAgcWh1 LmN1cnJlbnQuYWRkRW50cnkoaCk7CisgICAgICByZWZyZXNoKHt9KTsKKyAgICB9OworCisgICAg bGlzdFJlZi5jdXJyZW50LmZvY3VzKCk7CisgICAgZXZlbnRCdXMucmVnaXN0ZXJMaXN0ZW5lcihR VUVSWV9UT09MX0VWRU5UUy5QVVNIX0hJU1RPUlksIHB1c2hIaXN0b3J5KTsKKyAgICByZXR1cm4g KCk9PmV2ZW50QnVzLmRlcmVnaXN0ZXJMaXN0ZW5lcihRVUVSWV9UT09MX0VWRU5UUy5QVVNIX0hJ U1RPUlksIHB1c2hIaXN0b3J5KTsKKyAgfSwgW10pOworCisgIGNvbnN0IG9uUmVtb3ZlID0gYXN5 bmMgKCk9PnsKKyAgICBzZXRMb2FkZXJUZXh0KGdldHRleHQoJ1JlbW92aW5nIGhpc3RvcnkgZW50 cnkuLi4nKSk7CisgICAgdHJ5IHsKKyAgICAgIGF3YWl0IHF1ZXJ5VG9vbEN0eC5hcGkuZGVsZXRl KHVybF9mb3IoJ3NxbGVkaXRvci5jbGVhcl9xdWVyeV9oaXN0b3J5JywgeworICAgICAgICAndHJh bnNfaWQnOiBxdWVyeVRvb2xDdHgucGFyYW1zLnRyYW5zX2lkLAorICAgICAgfSksIHsKKyAgICAg ICAgZGF0YTogeworICAgICAgICAgIHF1ZXJ5OiBzZWxlY3RlZEVudHJ5LnF1ZXJ5LAorICAgICAg ICAgIHN0YXJ0X3RpbWU6IHNlbGVjdGVkRW50cnkuc3RhcnRfdGltZSwKKyAgICAgICAgfQorICAg ICAgfSk7CisgICAgICBzZXRTZWxlY3RlZEl0ZW1LZXkocWh1LmN1cnJlbnQuY2xlYXIoc2VsZWN0 ZWRJdGVtS2V5KSk7CisgICAgfSBjYXRjaCAoZXJyb3IpIHsKKyAgICAgIGNvbnNvbGUuZXJyb3Io ZXJyb3IpOworICAgICAgTm90aWZpZXIuZXJyb3IoZ2V0dGV4dCgnRmFpbGVkIHRvIHJlbW92ZSBx dWVyeSBoaXN0b3J5LicpICsgcGFyc2VBcGlFcnJvcihlcnJvcikpOworICAgIH0KKyAgICBzZXRM b2FkZXJUZXh0KCcnKTsKKyAgfTsKKworICBjb25zdCBvblJlbW92ZUFsbCA9IFJlYWN0LnVzZUNh bGxiYWNrKGFzeW5jICgpPT57CisgICAgc2V0TG9hZGVyVGV4dChnZXR0ZXh0KCdSZW1vdmluZyBo aXN0b3J5Li4uJykpOworICAgIHRyeSB7CisgICAgICBhd2FpdCBxdWVyeVRvb2xDdHguYXBpLmRl bGV0ZSh1cmxfZm9yKCdzcWxlZGl0b3IuY2xlYXJfcXVlcnlfaGlzdG9yeScsIHsKKyAgICAgICAg J3RyYW5zX2lkJzogcXVlcnlUb29sQ3R4LnBhcmFtcy50cmFuc19pZCwKKyAgICAgIH0pKTsKKyAg ICAgIHFodS5jdXJyZW50LmNsZWFyKCk7CisgICAgICBzZXRTZWxlY3RlZEl0ZW1LZXkobnVsbCk7 CisgICAgfSBjYXRjaCAoZXJyb3IpIHsKKyAgICAgIGNvbnNvbGUuZXJyb3IoZXJyb3IpOworICAg ICAgTm90aWZpZXIuZXJyb3IoZ2V0dGV4dCgnRmFpbGVkIHRvIHJlbW92ZSBxdWVyeSBoaXN0b3J5 LicpICsgcGFyc2VBcGlFcnJvcihlcnJvcikpOworICAgIH0KKyAgICBzZXRMb2FkZXJUZXh0KCcn KTsKKyAgfSwgW10pOworCisgIGNvbnN0IG9uS2V5UHJlc3NlZCA9IChlKSA9PiB7CisgICAgaWYg KGUua2V5Q29kZSA9PSAnMzgnKSB7CisgICAgICBlLnByZXZlbnREZWZhdWx0KCk7CisgICAgICBz ZXRTZWxlY3RlZEl0ZW1LZXkocWh1LmN1cnJlbnQuZ2V0UHJldkl0ZW1LZXkoc2VsZWN0ZWRJdGVt S2V5KSk7CisgICAgfSBlbHNlIGlmIChlLmtleUNvZGUgPT0gJzQwJykgeworICAgICAgZS5wcmV2 ZW50RGVmYXVsdCgpOworICAgICAgc2V0U2VsZWN0ZWRJdGVtS2V5KHFodS5jdXJyZW50LmdldE5l eHRJdGVtS2V5KHNlbGVjdGVkSXRlbUtleSkpOworICAgIH0KKyAgfTsKKworICByZXR1cm4gKAor ICAgIDw+CisgICAgICA8TG9hZGVyIG1lc3NhZ2U9e2xvYWRlclRleHR9IC8+CisgICAgICB7UmVh Y3QudXNlTWVtbygoKT0+KAorICAgICAgICA8Qm94IGRpc3BsYXk9ImZsZXgiIGhlaWdodD0iMTAw JSI+CisgICAgICAgICAgPEJveCBmbGV4QmFzaXM9IjUwJSIgbWF4V2lkdGg9IjUwJSIgY2xhc3NO YW1lPXtjbGFzc2VzLmxlZnRSb290fT4KKyAgICAgICAgICAgIDxCb3ggcGFkZGluZz0iMC4yNXJl bSIgZGlzcGxheT0iZmxleCI+CisgICAgICAgICAgICAgIHtnZXR0ZXh0KCdTaG93IHF1ZXJpZXMg Z2VuZXJhdGVkIGludGVybmFsbHkgYnkgcGdBZG1pbj8nKX0KKyAgICAgICAgICAgICAgPElucHV0 U3dpdGNoIHZhbHVlPXtzaG93SW50ZXJuYWx9IG9uQ2hhbmdlPXsoZSk9PnsKKyAgICAgICAgICAg ICAgICBzZXRTaG93SW50ZXJuYWwoZS50YXJnZXQuY2hlY2tlZCk7CisgICAgICAgICAgICAgICAg cWh1LmN1cnJlbnQuc2hvd0ludGVybmFsID0gZS50YXJnZXQuY2hlY2tlZDsKKyAgICAgICAgICAg ICAgICBzZXRTZWxlY3RlZEl0ZW1LZXkocWh1LmN1cnJlbnQuZ2V0TmV4dEl0ZW1LZXkoKSk7Cisg ICAgICAgICAgICAgIH19IC8+CisgICAgICAgICAgICAgIDxCb3ggbWFyZ2luTGVmdD0iYXV0byI+ CisgICAgICAgICAgICAgICAgPERlZmF1bHRCdXR0b24gc2l6ZT0ic21hbGwiIGRpc2FibGVkPXsh c2VsZWN0ZWRJdGVtS2V5fSBvbkNsaWNrPXtvblJlbW92ZX0+UmVtb3ZlPC9EZWZhdWx0QnV0dG9u PgorICAgICAgICAgICAgICAgIDxEZWZhdWx0QnV0dG9uIHNpemU9InNtYWxsIiBjbGFzc05hbWU9 e2NsYXNzZXMucmVtb3ZlQnRuTWFyZ2lufSBvbkNsaWNrPXtvblJlbW92ZUFsbH0+UmVtb3ZlIEFs bDwvRGVmYXVsdEJ1dHRvbj4KKyAgICAgICAgICAgICAgPC9Cb3g+CisgICAgICAgICAgICA8L0Jv eD4KKyAgICAgICAgICAgIDxCb3ggZmxleEdyb3c9IjEiIG92ZXJmbG93PSJhdXRvIiBjbGFzc05h bWU9e2NsYXNzZXMubGlzdFJvb3R9PgorICAgICAgICAgICAgICA8TGlzdCBpbm5lclJlZj17bGlz dFJlZn0gY2xhc3NOYW1lPXtjbGFzc2VzLnJvb3R9IHN1YmhlYWRlcj17PGxpIC8+fSB0YWJJbmRl eD0iMCIgb25LZXlEb3duPXtvbktleVByZXNzZWR9PgorICAgICAgICAgICAgICAgIHtxaHUuY3Vy cmVudC5nZXRHcm91cHMoKS5tYXAoKFtncm91cEtleSwgZ3JvdXBIZWFkZXJdKSA9PiAoCisgICAg ICAgICAgICAgICAgICA8TGlzdEl0ZW0ga2V5PXtgc2VjdGlvbi0ke2dyb3VwS2V5fWB9IGNsYXNz TmFtZT17Y2xhc3Nlcy5yZW1vdmVQYWRkaW5nfT4KKyAgICAgICAgICAgICAgICAgICAgPExpc3Qg Y2xhc3NOYW1lPXtjbGFzc2VzLnJlbW92ZVBhZGRpbmd9PgorICAgICAgICAgICAgICAgICAgICAg IDxMaXN0U3ViaGVhZGVyIGNsYXNzTmFtZT17Y2xhc3Nlcy5saXN0U3ViaGVhZGVyfT57Z3JvdXBI ZWFkZXJ9PC9MaXN0U3ViaGVhZGVyPgorICAgICAgICAgICAgICAgICAgICAgIHtxaHUuY3VycmVu dC5nZXRHcm91cEVudHJpZXMoZ3JvdXBLZXkpLm1hcCgoZW50cnkpID0+ICgKKyAgICAgICAgICAg ICAgICAgICAgICAgIDxIaXN0b3J5RW50cnkga2V5PXtlbnRyeS5pdGVtS2V5fSBlbnRyeT17ZW50 cnl9IGZvcm1hdEVudHJ5RGF0ZT17cWh1LmN1cnJlbnQuZm9ybWF0RW50cnlEYXRlfQorICAgICAg ICAgICAgICAgICAgICAgICAgICBpdGVtS2V5PXtlbnRyeS5pdGVtS2V5fSBzZWxlY3RlZEl0ZW1L ZXk9e3NlbGVjdGVkSXRlbUtleX0gb25DbGljaz17KCk9PntzZXRTZWxlY3RlZEl0ZW1LZXkoZW50 cnkuaXRlbUtleSk7fX0vPgorICAgICAgICAgICAgICAgICAgICAgICkpfQorICAgICAgICAgICAg ICAgICAgICA8L0xpc3Q+CisgICAgICAgICAgICAgICAgICA8L0xpc3RJdGVtPgorICAgICAgICAg ICAgICAgICkpfQorICAgICAgICAgICAgICA8L0xpc3Q+CisgICAgICAgICAgICA8L0JveD4KKyAg ICAgICAgICA8L0JveD4KKyAgICAgICAgICA8Qm94IGZsZXhCYXNpcz0iNTAlIiBtYXhXaWR0aD0i NTAlIiBvdmVyZmxvdz0iYXV0byI+CisgICAgICAgICAgICA8UXVlcnlIaXN0b3J5RGV0YWlscyBl bnRyeT17c2VsZWN0ZWRFbnRyeX0vPgorICAgICAgICAgIDwvQm94PgorICAgICAgICA8L0JveD4K KyAgICAgICksIFtzZWxlY3RlZEl0ZW1LZXksIHNob3dJbnRlcm5hbCwgcWh1LmN1cnJlbnQuc2l6 ZSgpXSl9CisgICAgPC8+CisgICk7Cit9CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi90b29scy9z cWxlZGl0b3Ivc3RhdGljL2pzL2NvbXBvbmVudHMvc2VjdGlvbnMvUmVzdWx0U2V0LmpzeCBiL3dl Yi9wZ2FkbWluL3Rvb2xzL3NxbGVkaXRvci9zdGF0aWMvanMvY29tcG9uZW50cy9zZWN0aW9ucy9S ZXN1bHRTZXQuanN4Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMC4uYWNhZmY3 NDZhCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vdG9vbHMvc3FsZWRpdG9yL3N0YXRp Yy9qcy9jb21wb25lbnRzL3NlY3Rpb25zL1Jlc3VsdFNldC5qc3gKQEAgLTAsMCArMSwxMjAyIEBA CisvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vCisvLworLy8gcGdBZG1pbiA0IC0gUG9zdGdyZVNRTCBUb29scworLy8KKy8vIENvcHly aWdodCAoQykgMjAxMyAtIDIwMjIsIFRoZSBwZ0FkbWluIERldmVsb3BtZW50IFRlYW0KKy8vIFRo aXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgdGhlIFBvc3RncmVTUUwgTGljZW5jZQorLy8K Ky8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vCitpbXBvcnQgXyBmcm9tICdsb2Rhc2gnOworaW1wb3J0IFJlYWN0LCB7IHVzZUNvbnRl eHQsIHVzZUVmZmVjdCwgdXNlU3RhdGUgfSAgZnJvbSAncmVhY3QnOworaW1wb3J0IFF1ZXJ5VG9v bERhdGFHcmlkLCB7IEdSSURfUk9XX1NFTEVDVF9LRVkgfSBmcm9tICcuLi9RdWVyeVRvb2xEYXRh R3JpZCc7CitpbXBvcnQge0NPTk5FQ1RJT05fU1RBVFVTLCBQQU5FTFMsIFFVRVJZX1RPT0xfRVZF TlRTfSBmcm9tICcuLi9RdWVyeVRvb2xDb25zdGFudHMnOworaW1wb3J0IHVybF9mb3IgZnJvbSAn c291cmNlcy91cmxfZm9yJzsKK2ltcG9ydCBnZXRBcGlJbnN0YW5jZSwgeyBwYXJzZUFwaUVycm9y IH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vc3RhdGljL2pzL2FwaV9pbnN0YW5jZSc7CitpbXBv cnQgeyBRdWVyeVRvb2xDb250ZXh0LCBRdWVyeVRvb2xFdmVudHNDb250ZXh0IH0gZnJvbSAnLi4v UXVlcnlUb29sQ29tcG9uZW50JzsKK2ltcG9ydCBnZXR0ZXh0IGZyb20gJ3NvdXJjZXMvZ2V0dGV4 dCc7CitpbXBvcnQgTG9hZGVyIGZyb20gJ3NvdXJjZXMvY29tcG9uZW50cy9Mb2FkZXInOworaW1w b3J0IHsgQm94IH0gZnJvbSAnQG1hdGVyaWFsLXVpL2NvcmUnOworaW1wb3J0IHsgUmVzdWx0U2V0 VG9vbGJhciB9IGZyb20gJy4vUmVzdWx0U2V0VG9vbGJhcic7CitpbXBvcnQgeyBMYXlvdXRIZWxw ZXIgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9zdGF0aWMvanMvaGVscGVycy9MYXlvdXQnOwor aW1wb3J0IHsgR2VvbWV0cnlWaWV3ZXIgfSBmcm9tICcuL0dlb21ldHJ5Vmlld2VyJzsKK2ltcG9y dCBFeHBsYWluIGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL3N0YXRpYy9qcy9FeHBsYWluJzsKK2lt cG9ydCBOb3RpZmllciBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9zdGF0aWMvanMvaGVscGVycy9O b3RpZmllcic7CitpbXBvcnQgeyBRdWVyeVNvdXJjZXMgfSBmcm9tICcuL1F1ZXJ5SGlzdG9yeSc7 CitpbXBvcnQgeyBnZXRCcm93c2VyIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vc3RhdGljL2pz L3V0aWxzJzsKK2ltcG9ydCBDb3B5RGF0YSBmcm9tICcuLi9RdWVyeVRvb2xEYXRhR3JpZC9Db3B5 RGF0YSc7CitpbXBvcnQgbW9tZW50IGZyb20gJ21vbWVudCc7CitpbXBvcnQgQ29uZmlybVNhdmVD b250ZW50IGZyb20gJy4uL2RpYWxvZ3MvQ29uZmlybVNhdmVDb250ZW50JzsKKworZXhwb3J0IGNs YXNzIFJlc3VsdFNldFV0aWxzIHsKKyAgY29uc3RydWN0b3IoYXBpLCB0cmFuc0lkLCBpc1F1ZXJ5 VG9vbD10cnVlKSB7CisgICAgdGhpcy5hcGkgPSBhcGk7CisgICAgdGhpcy50cmFuc0lkID0gdHJh bnNJZDsKKyAgICB0aGlzLnN0YXJ0VGltZSA9IG5ldyBEYXRlKCk7CisgICAgdGhpcy5jbGllbnRQ SyA9IG51bGw7CisgICAgdGhpcy5pc1F1ZXJ5VG9vbCA9IGlzUXVlcnlUb29sOworICAgIHRoaXMu Y2xpZW50UEtMYXN0SW5kZXggPSAwOworICAgIHRoaXMuaGlzdG9yeVF1ZXJ5U291cmNlID0gbnVs bDsKKyAgfQorCisgIHN0YXRpYyBnZW5lcmF0ZVVSTFJlY29ubmVjdGlvbkZsYWcoYmFzZVVybCwg dHJhbnNJZCwgc2hvdWxkUmVjb25uZWN0KSB7CisgICAgbGV0IHVybCA9IHVybF9mb3IoYmFzZVVy bCwgeworICAgICAgJ3RyYW5zX2lkJzogdHJhbnNJZCwKKyAgICB9KTsKKworICAgIGlmIChzaG91 bGRSZWNvbm5lY3QpIHsKKyAgICAgIHVybCArPSAnP2Nvbm5lY3Q9MSc7CisgICAgfQorICAgIHJl dHVybiB1cmw7CisgIH0KKworICBzdGF0aWMgcHJlcGFyZUFuYWx5emVTcWwoc3FsU3RhdGVtZW50 LCBhbmFseXplU3FsKSB7CisgICAgcmV0dXJuIHsKKyAgICAgIHNxbDogc3FsU3RhdGVtZW50LAor ICAgICAgZXhwbGFpbl9wbGFuOiBhbmFseXplU3FsLAorICAgIH07CisgIH0KKworICBzdGF0aWMg d2FzQ29ubmVjdGlvbkxvc3RUb1B5dGhvblNlcnZlcihodHRwUmVzcG9uc2UpIHsKKyAgICByZXR1 cm4gXy5pc1VuZGVmaW5lZChodHRwUmVzcG9uc2UpIHx8IF8uaXNVbmRlZmluZWQoaHR0cFJlc3Bv bnNlLmRhdGEpOworICB9CisKKyAgc3RhdGljIHdhc0RhdGFiYXNlQ29ubmVjdGlvbkxvc3QoaHR0 cE1lc3NhZ2UpIHsKKyAgICByZXR1cm4gaHR0cE1lc3NhZ2UucmVzcG9uc2Uuc3RhdHVzID09PSA1 MDMgJiYKKyAgICAgIGh0dHBNZXNzYWdlLnJlc3BvbnNlLmRhdGEuaW5mbyAhPT0gdW5kZWZpbmVk ICYmCisgICAgICBodHRwTWVzc2FnZS5yZXNwb25zZS5kYXRhLmluZm8gPT09ICdDT05ORUNUSU9O X0xPU1QnOworICB9CisKKyAgc3RhdGljIGlzQ3J5cHRLZXlNaXNzaW5nKGh0dHBNZXNzYWdlKSB7 CisgICAgcmV0dXJuIGh0dHBNZXNzYWdlLnJlc3BvbnNlLnN0YXR1cyA9PT0gNTAzICYmCisgICAg ICBodHRwTWVzc2FnZS5yZXNwb25zZS5kYXRhLmluZm8gIT09IHVuZGVmaW5lZCAmJgorICAgICAg aHR0cE1lc3NhZ2UucmVzcG9uc2UuZGF0YS5pbmZvID09PSAnQ1JZUFRLRVlfTUlTU0lORyc7Cisg IH0KKworICBzdGF0aWMgaXNTcWxDb3JyZWN0KGh0dHBNZXNzYWdlRGF0YSkgeworICAgIHJldHVy biBodHRwTWVzc2FnZURhdGEuZGF0YS5zdGF0dXM7CisgIH0KKworICBzdGF0aWMgZXh0cmFjdEVy cm9yTWVzc2FnZShodHRwTWVzc2FnZSkgeworICAgIGxldCBtc2cgPSBodHRwTWVzc2FnZS5lcnJv cm1zZzsKKyAgICBpZiAoaHR0cE1lc3NhZ2UucmVzcG9uc2VKU09OICE9PSB1bmRlZmluZWQgJiYK KyAgICAgIGh0dHBNZXNzYWdlLnJlc3BvbnNlSlNPTi5lcnJvcm1zZyAhPT0gdW5kZWZpbmVkKQor ICAgICAgbXNnID0gaHR0cE1lc3NhZ2UucmVzcG9uc2VKU09OLmVycm9ybXNnOworCisgICAgcmV0 dXJuIG1zZzsKKyAgfQorCisgIHN0YXRpYyBpc1F1ZXJ5RmluaXNoZWQoaHR0cE1lc3NhZ2UpIHsK KyAgICByZXR1cm4gaHR0cE1lc3NhZ2UuZGF0YS5kYXRhLnN0YXR1cyA9PT0gJ1N1Y2Nlc3MnOwor ICB9CisKKyAgc3RhdGljIGlzUXVlcnlTdGlsbFJ1bm5pbmcoaHR0cE1lc3NhZ2UpIHsKKyAgICBy ZXR1cm4gaHR0cE1lc3NhZ2UuZGF0YS5kYXRhLnN0YXR1cyA9PT0gJ0J1c3knOworICB9CisKKyAg c3RhdGljIGlzUXVlcnlDYW5jZWxsZWQoaHR0cE1lc3NhZ2UpIHsKKyAgICByZXR1cm4gaHR0cE1l c3NhZ2UuZGF0YS5kYXRhLnN0YXR1cyA9PT0gJ0NhbmNlbCc7CisgIH0KKworICBzdGF0aWMgaXND b25uZWN0aW9uVG9TZXJ2ZXJMb3N0V2hpbGVQb2xsaW5nKGh0dHBNZXNzYWdlKSB7CisgICAgcmV0 dXJuIGh0dHBNZXNzYWdlLmRhdGEuZGF0YS5zdGF0dXMgPT09ICdOb3RDb25uZWN0ZWQnOworICB9 CisKKyAgc2V0U3RhcnRUaW1lKHN0YXJ0KSB7CisgICAgdGhpcy5zdGFydFRpbWUgPSBzdGFydDsK KyAgfQorCisgIHNldEVuZFRpbWUoZW5kKSB7CisgICAgdGhpcy5lbmRUaW1lID0gZW5kOworICB9 CisKKyAgcXVlcnlSdW5UaW1lKCkgeworICAgIGxldCB0b3RhbF9tcyA9IG1vbWVudCh0aGlzLmVu ZFRpbWUpLmRpZmYodGhpcy5zdGFydFRpbWUpOworICAgIGxldCByZXN1bHQgPSAnJzsKKyAgICBs ZXQgc2VjcywgbWlucywgaHJzOworCisgICAgLyogRXh0cmFjdCBzZWNvbmRzIGZyb20gbWlsbGlz ZWNzICovCisgICAgc2VjcyA9IHBhcnNlSW50KHRvdGFsX21zLzEwMDApOworICAgIHRvdGFsX21z ID0gdG90YWxfbXMlMTAwMDsKKworICAgIC8qIEV4dHJhY3QgbWlucyBmcm9tIHNlY29uZHMgKi8K KyAgICBtaW5zID0gcGFyc2VJbnQoc2Vjcy82MCk7CisgICAgc2VjcyA9IHNlY3MlNjA7CisKKyAg ICAvKiBFeHRyYWN0IGhycyBmcm9tIG1pbnMgKi8KKyAgICBocnMgPSBwYXJzZUludChtaW5zLzYw KTsKKyAgICBtaW5zID0gbWlucyU2MDsKKworICAgIHJlc3VsdCA9IChocnM+MCA/IGhycyArICcg JyArIGdldHRleHQoJ2hyJykgKyAnICc6ICcnKQorICAgICAgICAgICAgKyAobWlucz4wID8gbWlu cyArICcgJyArIGdldHRleHQoJ21pbicpICsgJyAnOiAnJykKKyAgICAgICAgICAgICsgKGhyczw9 MCAmJiBzZWNzPjAgPyBzZWNzICsgJyAnICsgZ2V0dGV4dCgnc2VjcycpICsgJyAnOiAnJykKKyAg ICAgICAgICAgICsgKGhyczw9MCAmJiBtaW5zPD0wID8gdG90YWxfbXMgKyAnICcgKyBnZXR0ZXh0 KCdtc2VjJykgKyAnICc6JycpOworICAgIHJldHVybiByZXN1bHQudHJpbSgpOworICB9CisKKyAg c2V0RXZlbnRCdXMoZXZlbnRCdXMpIHsKKyAgICB0aGlzLmV2ZW50QnVzID0gZXZlbnRCdXM7Cisg IH0KKworICBzZXRTdGFydERhdGEoZGF0YSkgeworICAgIHRoaXMuc3RhcnREYXRhID0gZGF0YTsK KyAgfQorCisgIHJlc2V0Q2xpZW50UEtJbmRleCgpIHsKKyAgICB0aGlzLmNsaWVudFBLTGFzdElu ZGV4ID0gMDsKKyAgfQorCisgIHNldENsaWVudFBLKGNsaWVudFBLKSB7CisgICAgdGhpcy5jbGll bnRQSyA9IGNsaWVudFBLIHx8IEdSSURfUk9XX1NFTEVDVF9LRVk7CisgIH0KKworICBoYXNSZXN1 bHRzVG9EaXNwbGF5KHJlcykgeworICAgIHJldHVybiByZXMuY29saW5mbyAhPSBudWxsOworICB9 CisKKyAgaXNBdEJvdHRvbSh7IGN1cnJlbnRUYXJnZXQgfSkgeworICAgIHJldHVybiBjdXJyZW50 VGFyZ2V0LnNjcm9sbFRvcCArIDEwID49IGN1cnJlbnRUYXJnZXQuc2Nyb2xsSGVpZ2h0IC0gY3Vy cmVudFRhcmdldC5jbGllbnRIZWlnaHQ7CisgIH0KKworICBwb3N0RXhlY3V0aW9uQXBpKHF1ZXJ5 LCBleHBsYWluT2JqZWN0LCBpc1F1ZXJ5VG9vbD10cnVlLCByZWNvbm5lY3Q9ZmFsc2UpIHsKKyAg ICBpZihpc1F1ZXJ5VG9vbCkgeworICAgICAgcmV0dXJuIHRoaXMuYXBpLnBvc3QoCisgICAgICAg IFJlc3VsdFNldFV0aWxzLmdlbmVyYXRlVVJMUmVjb25uZWN0aW9uRmxhZygnc3FsZWRpdG9yLnF1 ZXJ5X3Rvb2xfc3RhcnQnLCB0aGlzLnRyYW5zSWQsIHJlY29ubmVjdCksCisgICAgICAgIEpTT04u c3RyaW5naWZ5KHsKKyAgICAgICAgICBzcWw6IHF1ZXJ5LAorICAgICAgICAgIGV4cGxhaW5fcGxh bjogZXhwbGFpbk9iamVjdCwKKyAgICAgICAgfSkKKyAgICAgICk7CisgICAgfSBlbHNlIHsKKyAg ICAgIHJldHVybiB0aGlzLmFwaS5nZXQoCisgICAgICAgIFJlc3VsdFNldFV0aWxzLmdlbmVyYXRl VVJMUmVjb25uZWN0aW9uRmxhZygnc3FsZWRpdG9yLnZpZXdfZGF0YV9zdGFydCcsIHRoaXMudHJh bnNJZCwgcmVjb25uZWN0KQorICAgICAgKTsKKyAgICB9CisgIH0KKworICBhc3luYyBzdGFydEV4 ZWN1dGlvbihxdWVyeSwgZXhwbGFpbk9iamVjdCwgb25JbmNvcnJlY3RTUUwsIGZsYWdzPXsKKyAg ICBpc1F1ZXJ5VG9vbDogdHJ1ZSwgZXh0ZXJuYWw6IGZhbHNlLCByZWNvbm5lY3Q6IGZhbHNlLAor ICB9KSB7CisgICAgdGhpcy5ldmVudEJ1cy5maXJlRXZlbnQoUVVFUllfVE9PTF9FVkVOVFMuU0VU X01FU1NBR0UsICcnKTsKKyAgICB0aGlzLnNldFN0YXJ0VGltZShuZXcgRGF0ZSgpKTsKKyAgICB0 aGlzLnF1ZXJ5ID0gcXVlcnk7CisgICAgdGhpcy5oaXN0b3J5UXVlcnlTb3VyY2UgPSBmbGFncy5p c1F1ZXJ5VG9vbCA/IFF1ZXJ5U291cmNlcy5FWEVDVVRFIDogUXVlcnlTb3VyY2VzLlZJRVdfREFU QTsKKyAgICBpZihleHBsYWluT2JqZWN0KSB7CisgICAgICBpZihleHBsYWluT2JqZWN0LmFuYWx5 emUpIHsKKyAgICAgICAgdGhpcy5oaXN0b3J5UXVlcnlTb3VyY2UgPSBRdWVyeVNvdXJjZXMuRVhQ TEFJTl9BTkFMWVpFOworICAgICAgfSBlbHNlIHsKKyAgICAgICAgdGhpcy5oaXN0b3J5UXVlcnlT b3VyY2UgPSBRdWVyeVNvdXJjZXMuRVhQTEFJTjsKKyAgICAgIH0KKyAgICB9IGVsc2UgaWYocXVl cnkgPT0gJ0NPTU1JVDsnKSB7CisgICAgICB0aGlzLmhpc3RvcnlRdWVyeVNvdXJjZSA9IFF1ZXJ5 U291cmNlcy5DT01NSVQ7CisgICAgfSBlbHNlIGlmKHF1ZXJ5ID09ICdST0xMQkFDSzsnKSB7Cisg ICAgICB0aGlzLmhpc3RvcnlRdWVyeVNvdXJjZSA9IFF1ZXJ5U291cmNlcy5ST0xMQkFDSzsKKyAg ICB9CisgICAgdHJ5IHsKKyAgICAgIGxldCB7ZGF0YTogaHR0cE1lc3NhZ2VEYXRhfSA9IGF3YWl0 IHRoaXMucG9zdEV4ZWN1dGlvbkFwaShxdWVyeSwgZXhwbGFpbk9iamVjdCwgZmxhZ3MuaXNRdWVy eVRvb2wsIGZsYWdzLnJlY29ubmVjdCk7CisgICAgICB0aGlzLmV2ZW50QnVzLmZpcmVFdmVudChR VUVSWV9UT09MX0VWRU5UUy5TRVRfQ09OTkVDVElPTl9TVEFUVVMsIGh0dHBNZXNzYWdlRGF0YS5k YXRhLnRyYW5zYWN0aW9uX3N0YXR1cyk7CisKKyAgICAgIGlmIChSZXN1bHRTZXRVdGlscy5pc1Nx bENvcnJlY3QoaHR0cE1lc3NhZ2VEYXRhKSkgeworICAgICAgICB0aGlzLnNldFN0YXJ0RGF0YSho dHRwTWVzc2FnZURhdGEuZGF0YSk7CisgICAgICAgIGlmKCFmbGFncy5pc1F1ZXJ5VG9vbCkgewor ICAgICAgICAgIHRoaXMucXVlcnkgPSBodHRwTWVzc2FnZURhdGEuZGF0YS5zcWw7CisgICAgICAg ICAgdGhpcy5ldmVudEJ1cy5maXJlRXZlbnQoUVVFUllfVE9PTF9FVkVOVFMuU0VUX0ZJTFRFUl9J TkZPLCBodHRwTWVzc2FnZURhdGEuZGF0YS5jYW5fZmlsdGVyLCBodHRwTWVzc2FnZURhdGEuZGF0 YS5maWx0ZXJfYXBwbGllZCk7CisgICAgICAgICAgdGhpcy5ldmVudEJ1cy5maXJlRXZlbnQoUVVF UllfVE9PTF9FVkVOVFMuU0VUX0xJTUlUX1ZBTFVFLCBodHRwTWVzc2FnZURhdGEuZGF0YS5saW1p dCk7CisgICAgICAgICAgdGhpcy5ldmVudEJ1cy5maXJlRXZlbnQoUVVFUllfVE9PTF9FVkVOVFMu RURJVE9SX1NFVF9TUUwsIGh0dHBNZXNzYWdlRGF0YS5kYXRhLnNxbCwgZmFsc2UpOworICAgICAg ICB9CisgICAgICAgIHJldHVybiB0cnVlOworICAgICAgfSBlbHNlIHsKKyAgICAgICAgdGhpcy5l dmVudEJ1cy5maXJlRXZlbnQoUVVFUllfVE9PTF9FVkVOVFMuRVhFQ1VUSU9OX0VORCk7CisgICAg ICAgIHRoaXMuZXZlbnRCdXMuZmlyZUV2ZW50KFFVRVJZX1RPT0xfRVZFTlRTLlNFVF9NRVNTQUdF LCBodHRwTWVzc2FnZURhdGEuZGF0YS5yZXN1bHQpOworICAgICAgICB0aGlzLmV2ZW50QnVzLmZp cmVFdmVudChRVUVSWV9UT09MX0VWRU5UUy5GT0NVU19QQU5FTCwgUEFORUxTLk1FU1NBR0VTKTsK KyAgICAgICAgb25JbmNvcnJlY3RTUUwoKTsKKyAgICAgICAgdGhpcy5yZXNldENsaWVudFBLSW5k ZXgoKTsKKyAgICAgICAgdGhpcy5ldmVudEJ1cy5maXJlRXZlbnQoUVVFUllfVE9PTF9FVkVOVFMu UFVTSF9ISVNUT1JZLCB7CisgICAgICAgICAgc3RhdHVzOiBmYWxzZSwKKyAgICAgICAgICBzdGFy dF90aW1lOiB0aGlzLnN0YXJ0VGltZSwKKyAgICAgICAgICBxdWVyeTogdGhpcy5xdWVyeSwKKyAg ICAgICAgICByb3dfYWZmZWN0ZWQ6IG51bGwsCisgICAgICAgICAgdG90YWxfdGltZTogdGhpcy5x dWVyeVJ1blRpbWUoKSwKKyAgICAgICAgICBtZXNzYWdlOiBodHRwTWVzc2FnZURhdGEuZGF0YS5y ZXN1bHQsCisgICAgICAgICAgcXVlcnlfc291cmNlOiB0aGlzLmhpc3RvcnlRdWVyeVNvdXJjZSwK KyAgICAgICAgICBpc19wZ2FkbWluX3F1ZXJ5OiBmYWxzZSwKKyAgICAgICAgfSk7CisgICAgICAg IGlmKCFmbGFncy5leHRlcm5hbCkgeworICAgICAgICAgIHRoaXMuZXZlbnRCdXMuZmlyZUV2ZW50 KFFVRVJZX1RPT0xfRVZFTlRTLkhJR0hMSUdIVF9FUlJPUiwgaHR0cE1lc3NhZ2VEYXRhLmRhdGEu cmVzdWx0KTsKKyAgICAgICAgfQorICAgICAgfQorICAgICAgaWYoaHR0cE1lc3NhZ2VEYXRhLmRh dGEubm90aWZpZXMpIHsKKyAgICAgICAgdGhpcy5ldmVudEJ1cy5maXJlRXZlbnQoUVVFUllfVE9P TF9FVkVOVFMuUFVTSF9OT1RJQ0UsIGh0dHBNZXNzYWdlRGF0YS5kYXRhLm5vdGlmaWVzKTsKKyAg ICAgIH0KKyAgICB9IGNhdGNoKGUpIHsKKyAgICAgIHRoaXMuZXZlbnRCdXMuZmlyZUV2ZW50KFFV RVJZX1RPT0xfRVZFTlRTLkVYRUNVVElPTl9FTkQpOworICAgICAgdGhpcy5ldmVudEJ1cy5maXJl RXZlbnQoUVVFUllfVE9PTF9FVkVOVFMuSEFORExFX0FQSV9FUlJPUiwKKyAgICAgICAgZSwKKyAg ICAgICAgeworICAgICAgICAgIGNvbm5lY3Rpb25Mb3N0Q2FsbGJhY2s6ICgpPT57CisgICAgICAg ICAgICB0aGlzLmV2ZW50QnVzLmZpcmVFdmVudChRVUVSWV9UT09MX0VWRU5UUy5FWEVDVVRJT05f U1RBUlQsIHF1ZXJ5LCBleHBsYWluT2JqZWN0LCBmbGFncy5leHRlcm5hbCwgdHJ1ZSk7CisgICAg ICAgICAgfSwKKyAgICAgICAgICBjaGVja1RyYW5zYWN0aW9uOiB0cnVlLAorICAgICAgICB9Cisg ICAgICApOworICAgIH0KKyAgICByZXR1cm4gZmFsc2U7CisgIH0KKworICBwb2xsKCkgeworICAg IGxldCBkZWxheSA9IDE7CisgICAgdmFyIHNlY29uZHMgPSBwYXJzZUludCgoRGF0ZS5ub3coKSAt IHRoaXMuc3RhcnRUaW1lLmdldFRpbWUoKSkgLyAxMDAwKTsKKyAgICAvLyBjYWxjdWxhdGUgJiBy ZXR1cm4gZmFsbCBiYWNrIHBvbGxpbmcgdGltZW91dAorICAgIGlmIChzZWNvbmRzID49IDEwICYm IHNlY29uZHMgPCAzMCkgeworICAgICAgZGVsYXkgPSA1MDA7CisgICAgfSBlbHNlIGlmIChzZWNv bmRzID49IDMwICYmIHNlY29uZHMgPCA2MCkgeworICAgICAgZGVsYXkgPSAxMDAwOworICAgIH0g ZWxzZSBpZiAoc2Vjb25kcyA+PSA2MCAmJiBzZWNvbmRzIDwgOTApIHsKKyAgICAgIGRlbGF5ID0g MjAwMDsKKyAgICB9IGVsc2UgaWYgKHNlY29uZHMgPj0gOTApIHsKKyAgICAgIGRlbGF5ID0gNTAw MDsKKyAgICB9IGVsc2UgeworICAgICAgZGVsYXkgPSAxOworICAgIH0KKworICAgIHJldHVybiBu ZXcgUHJvbWlzZSgocmVzb2x2ZSk9PnsKKyAgICAgIHNldFRpbWVvdXQoKCkgPT4geworICAgICAg ICByZXNvbHZlKHRoaXMuYXBpLmdldCgKKyAgICAgICAgICB1cmxfZm9yKCdzcWxlZGl0b3IucG9s bCcsIHsKKyAgICAgICAgICAgICd0cmFuc19pZCc6IHRoaXMudHJhbnNJZCwKKyAgICAgICAgICB9 KQorICAgICAgICApKTsKKyAgICAgIH0sIGRlbGF5KTsKKyAgICB9KTsKKyAgfQorCisgIGhhbmRs ZVBvbGxFcnJvcihlcnJvcikgeworICAgIHRoaXMuZXZlbnRCdXMuZmlyZUV2ZW50KFFVRVJZX1RP T0xfRVZFTlRTLkVYRUNVVElPTl9FTkQpOworICAgIHRoaXMuZXZlbnRCdXMuZmlyZUV2ZW50KFFV RVJZX1RPT0xfRVZFTlRTLkZPQ1VTX1BBTkVMLCBQQU5FTFMuTUVTU0FHRVMpOworICAgIHRoaXMu ZXZlbnRCdXMuZmlyZUV2ZW50KFFVRVJZX1RPT0xfRVZFTlRTLlNFVF9DT05ORUNUSU9OX1NUQVRV UywgQ09OTkVDVElPTl9TVEFUVVMuVFJBTlNBQ1RJT05fU1RBVFVTX0lORVJST1IpOworICAgIHRo aXMuZXZlbnRCdXMuZmlyZUV2ZW50KFFVRVJZX1RPT0xfRVZFTlRTLlBVU0hfSElTVE9SWSwgewor ICAgICAgc3RhdHVzOiBmYWxzZSwKKyAgICAgIHN0YXJ0X3RpbWU6IHRoaXMuc3RhcnRUaW1lLAor ICAgICAgcXVlcnk6IHRoaXMucXVlcnksCisgICAgICByb3dfYWZmZWN0ZWQ6IG51bGwsCisgICAg ICB0b3RhbF90aW1lOiB0aGlzLnF1ZXJ5UnVuVGltZSgpLAorICAgICAgbWVzc2FnZTogcGFyc2VB cGlFcnJvcihlcnJvciwgZmFsc2UpLAorICAgICAgcXVlcnlfc291cmNlOiB0aGlzLmhpc3RvcnlR dWVyeVNvdXJjZSwKKyAgICAgIGlzX3BnYWRtaW5fcXVlcnk6IGZhbHNlLAorICAgIH0pOworICAg IHRoaXMuZXZlbnRCdXMuZmlyZUV2ZW50KFFVRVJZX1RPT0xfRVZFTlRTLkhBTkRMRV9BUElfRVJS T1IsIGVycm9yKTsKKyAgfQorCisgIGFzeW5jIHBvbGxGb3JSZXN1bHQob25SZXN1bHRzQXZhaWxh YmxlLCBvbkV4cGxhaW4sIG9uUG9sbEVycm9yKSB7CisgICAgdHJ5IHsKKyAgICAgIGxldCBodHRw TWVzc2FnZSA9IGF3YWl0IHRoaXMucG9sbCgpOworICAgICAgbGV0IG1zZyA9ICcnOworICAgICAg aWYoaHR0cE1lc3NhZ2UuZGF0YS5kYXRhLm5vdGlmaWVzKSB7CisgICAgICAgIHRoaXMuZXZlbnRC dXMuZmlyZUV2ZW50KFFVRVJZX1RPT0xfRVZFTlRTLlBVU0hfTk9USUNFLCBodHRwTWVzc2FnZS5k YXRhLmRhdGEubm90aWZpZXMpOworICAgICAgfQorICAgICAgaWYgKFJlc3VsdFNldFV0aWxzLmlz UXVlcnlGaW5pc2hlZChodHRwTWVzc2FnZSkpIHsKKyAgICAgICAgbXNnID0gdGhpcy5xdWVyeUZp bmlzaGVkKGh0dHBNZXNzYWdlLCBvblJlc3VsdHNBdmFpbGFibGUsIG9uRXhwbGFpbik7CisgICAg ICB9IGVsc2UgaWYgKFJlc3VsdFNldFV0aWxzLmlzUXVlcnlTdGlsbFJ1bm5pbmcoaHR0cE1lc3Nh Z2UpKSB7CisgICAgICAgIHRoaXMuZXZlbnRCdXMuZmlyZUV2ZW50KFFVRVJZX1RPT0xfRVZFTlRT LlNFVF9DT05ORUNUSU9OX1NUQVRVUywgaHR0cE1lc3NhZ2UuZGF0YS5kYXRhLnRyYW5zYWN0aW9u X3N0YXR1cyk7CisgICAgICAgIGlmKGh0dHBNZXNzYWdlLmRhdGEuZGF0YS5yZXN1bHQpIHsKKyAg ICAgICAgICB0aGlzLmV2ZW50QnVzLmZpcmVFdmVudChRVUVSWV9UT09MX0VWRU5UUy5TRVRfTUVT U0FHRSwgaHR0cE1lc3NhZ2UuZGF0YS5kYXRhLnJlc3VsdCwgdHJ1ZSk7CisgICAgICAgIH0KKyAg ICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh0aGlzLnBvbGxGb3JSZXN1bHQob25SZXN1bHRz QXZhaWxhYmxlLCBvbkV4cGxhaW4sIG9uUG9sbEVycm9yKSk7CisgICAgICB9IGVsc2UgaWYgKFJl c3VsdFNldFV0aWxzLmlzQ29ubmVjdGlvblRvU2VydmVyTG9zdFdoaWxlUG9sbGluZyhodHRwTWVz c2FnZSkpIHsKKyAgICAgICAgbXNnID0gaHR0cE1lc3NhZ2UuZGF0YS5kYXRhLnJlc3VsdDsKKyAg ICAgICAgdGhpcy5ldmVudEJ1cy5maXJlRXZlbnQoUVVFUllfVE9PTF9FVkVOVFMuU0VUX01FU1NB R0UsIG1zZywgdHJ1ZSk7CisgICAgICAgIHRoaXMuZXZlbnRCdXMuZmlyZUV2ZW50KFFVRVJZX1RP T0xfRVZFTlRTLkVYRUNVVElPTl9FTkQpOworICAgICAgfSBlbHNlIGlmIChSZXN1bHRTZXRVdGls cy5pc1F1ZXJ5Q2FuY2VsbGVkKGh0dHBNZXNzYWdlKSkgeworICAgICAgICBtc2cgPSBodHRwTWVz c2FnZS5kYXRhLmRhdGEucmVzdWx0IHx8ICdFeGVjdXRpb24gQ2FuY2VsbGVkISc7CisgICAgICAg IHRoaXMuZXZlbnRCdXMuZmlyZUV2ZW50KFFVRVJZX1RPT0xfRVZFTlRTLlNFVF9NRVNTQUdFLCBo dHRwTWVzc2FnZS5kYXRhLmRhdGEucmVzdWx0IHx8ICdFeGVjdXRpb24gQ2FuY2VsbGVkIScsIHRy dWUpOworICAgICAgICB0aGlzLmV2ZW50QnVzLmZpcmVFdmVudChRVUVSWV9UT09MX0VWRU5UUy5F WEVDVVRJT05fRU5EKTsKKyAgICAgIH0KKyAgICAgIE5vdGlmaWVyLnN1Y2Nlc3MobXNnKTsKKyAg ICAgIGlmKCFSZXN1bHRTZXRVdGlscy5pc1F1ZXJ5U3RpbGxSdW5uaW5nKGh0dHBNZXNzYWdlKSkg eworICAgICAgICB0aGlzLmV2ZW50QnVzLmZpcmVFdmVudChRVUVSWV9UT09MX0VWRU5UUy5QVVNI X0hJU1RPUlksIHsKKyAgICAgICAgICBzdGF0dXM6IHRydWUsCisgICAgICAgICAgc3RhcnRfdGlt ZTogdGhpcy5zdGFydFRpbWUsCisgICAgICAgICAgcXVlcnk6IHRoaXMucXVlcnksCisgICAgICAg ICAgcm93X2FmZmVjdGVkOiBodHRwTWVzc2FnZS5kYXRhLmRhdGE/LnJvd3NfYWZmZWN0ZWQsCisg ICAgICAgICAgdG90YWxfdGltZTogdGhpcy5xdWVyeVJ1blRpbWUoKSwKKyAgICAgICAgICBtZXNz YWdlOiBtc2csCisgICAgICAgICAgcXVlcnlfc291cmNlOiB0aGlzLmhpc3RvcnlRdWVyeVNvdXJj ZSwKKyAgICAgICAgICBpc19wZ2FkbWluX3F1ZXJ5OiBmYWxzZSwKKyAgICAgICAgfSk7CisgICAg ICB9CisgICAgfSBjYXRjaCAoZXJyb3IpIHsKKyAgICAgIG9uUG9sbEVycm9yKCk7CisgICAgICB0 aGlzLmhhbmRsZVBvbGxFcnJvcihlcnJvcik7CisgICAgfQorICB9CisKKyAgZ2V0TW9yZVJvd3Mo YWxsPWZhbHNlKSB7CisgICAgbGV0IHVybCA9IHVybF9mb3IoJ3NxbGVkaXRvci5mZXRjaCcsIHsK KyAgICAgICd0cmFuc19pZCc6IHRoaXMudHJhbnNJZCwKKyAgICB9KTsKKyAgICBpZihhbGwpIHsK KyAgICAgIHVybCA9IHVybF9mb3IoJ3NxbGVkaXRvci5mZXRjaF9hbGwnLCB7CisgICAgICAgICd0 cmFuc19pZCc6IHRoaXMudHJhbnNJZCwKKyAgICAgICAgJ2ZldGNoX2FsbCc6IDEsCisgICAgICB9 KTsKKyAgICB9CisgICAgcmV0dXJuIHRoaXMuYXBpLmdldCh1cmwpOworICB9CisKKyAgc3RvcEV4 ZWN1dGlvbigpIHsKKyAgICByZXR1cm4gdGhpcy5hcGkucG9zdCgKKyAgICAgIHVybF9mb3IoJ3Nx bGVkaXRvci5jYW5jZWxfdHJhbnNhY3Rpb24nLCB7J3RyYW5zX2lkJzogdGhpcy50cmFuc0lkfSkK KyAgICApOworICB9CisKKyAgc2F2ZURhdGEocmVxRGF0YSkgeworICAgIHJldHVybiB0aGlzLmFw aS5wb3N0KAorICAgICAgdXJsX2Zvcignc3FsZWRpdG9yLnNhdmUnLCB7CisgICAgICAgICd0cmFu c19pZCc6IHRoaXMudHJhbnNJZAorICAgICAgfSksCisgICAgICBKU09OLnN0cmluZ2lmeShyZXFE YXRhKQorICAgICk7CisgIH0KKworICBhc3luYyBzYXZlUmVzdWx0c1RvRmlsZShmaWxlTmFtZSkg eworICAgIHRyeSB7CisgICAgICBsZXQge2RhdGE6IHJlc3BEYXRhfSA9IGF3YWl0IHRoaXMuYXBp LnBvc3QoCisgICAgICAgIHVybF9mb3IoJ3NxbGVkaXRvci5xdWVyeV90b29sX2Rvd25sb2FkJywg eworICAgICAgICAgICd0cmFuc19pZCc6IHRoaXMudHJhbnNJZCwKKyAgICAgICAgfSksCisgICAg ICAgIHtmaWxlbmFtZTogZmlsZU5hbWV9CisgICAgICApOworCisgICAgICBpZighXy5pc1VuZGVm aW5lZChyZXNwRGF0YS5kYXRhKSkgeworICAgICAgICBpZighcmVzcERhdGEuc3RhdHVzKSB7Cisg ICAgICAgICAgdGhpcy5ldmVudEJ1cy5maXJlRXZlbnQoUVVFUllfVE9PTF9FVkVOVFMuU0VUX01F U1NBR0UsIHJlc3BEYXRhLmRhdGEucmVzdWx0KTsKKyAgICAgICAgfQorICAgICAgfSBlbHNlIHsK KyAgICAgICAgbGV0IHJlc3BCbG9iID0gbmV3IEJsb2IoW3Jlc3BEYXRhXSwge3R5cGUgOiAndGV4 dC9jc3YnfSksCisgICAgICAgICAgdXJsQ3JlYXRvciA9IHdpbmRvdy5VUkwgfHwgd2luZG93Lndl YmtpdFVSTCwKKyAgICAgICAgICBkb3dubG9hZF91cmwgPSB1cmxDcmVhdG9yLmNyZWF0ZU9iamVj dFVSTChyZXNwQmxvYiksCisgICAgICAgICAgbGluayA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo J2EnKTsKKworICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGxpbmspOworCisgICAg ICAgIGlmIChnZXRCcm93c2VyKCkgPT09ICdJRScgJiYgd2luZG93Lm5hdmlnYXRvci5tc1NhdmVC bG9iKSB7CisgICAgICAgIC8vIElFMTArIDogKGhhcyBCbG9iLCBidXQgbm90IGFbZG93bmxvYWRd IG9yIFVSTCkKKyAgICAgICAgICB3aW5kb3cubmF2aWdhdG9yLm1zU2F2ZUJsb2IocmVzcEJsb2Is IGZpbGVOYW1lKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICBsaW5rLnNldEF0dHJpYnV0 ZSgnaHJlZicsIGRvd25sb2FkX3VybCk7CisgICAgICAgICAgbGluay5zZXRBdHRyaWJ1dGUoJ2Rv d25sb2FkJywgZmlsZU5hbWUpOworICAgICAgICAgIGxpbmsuY2xpY2soKTsKKyAgICAgICAgfQor ICAgICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGxpbmspOworICAgICAgfQorICAgICAg dGhpcy5ldmVudEJ1cy5maXJlRXZlbnQoUVVFUllfVE9PTF9FVkVOVFMuVFJJR0dFUl9TQVZFX1JF U1VMVFNfRU5EKTsKKyAgICB9IGNhdGNoIChlcnJvcikgeworICAgICAgdGhpcy5ldmVudEJ1cy5m aXJlRXZlbnQoUVVFUllfVE9PTF9FVkVOVFMuVFJJR0dFUl9TQVZFX1JFU1VMVFNfRU5EKTsKKyAg ICAgIHRoaXMuZXZlbnRCdXMuZmlyZUV2ZW50KFFVRVJZX1RPT0xfRVZFTlRTLkhBTkRMRV9BUElf RVJST1IsIGVycm9yKTsKKyAgICB9CisgIH0KKworICBpbmNsdWRlRmlsdGVyKHJlcURhdGEpIHsK KyAgICByZXR1cm4gdGhpcy5hcGkucG9zdCgKKyAgICAgIHVybF9mb3IoJ3NxbGVkaXRvci5pbmNs dXNpdmVfZmlsdGVyJywgeworICAgICAgICAndHJhbnNfaWQnOiB0aGlzLnRyYW5zSWQsCisgICAg ICB9KSwKKyAgICAgIEpTT04uc3RyaW5naWZ5KHJlcURhdGEpCisgICAgKTsKKyAgfQorCisgIGV4 Y2x1ZGVGaWx0ZXIocmVxRGF0YSkgeworICAgIHJldHVybiB0aGlzLmFwaS5wb3N0KAorICAgICAg dXJsX2Zvcignc3FsZWRpdG9yLmV4Y2x1c2l2ZV9maWx0ZXInLCB7CisgICAgICAgICd0cmFuc19p ZCc6IHRoaXMudHJhbnNJZCwKKyAgICAgIH0pLAorICAgICAgSlNPTi5zdHJpbmdpZnkocmVxRGF0 YSkKKyAgICApOworICB9CisKKyAgcmVtb3ZlRmlsdGVyKCkgeworICAgIHJldHVybiB0aGlzLmFw aS5wb3N0KAorICAgICAgdXJsX2Zvcignc3FsZWRpdG9yLnJlbW92ZV9maWx0ZXInLCB7CisgICAg ICAgICd0cmFuc19pZCc6IHRoaXMudHJhbnNJZCwKKyAgICAgIH0pCisgICAgKTsKKyAgfQorCisg IHNldExpbWl0KGxpbWl0KSB7CisgICAgcmV0dXJuIHRoaXMuYXBpLnBvc3QoCisgICAgICB1cmxf Zm9yKCdzcWxlZGl0b3Iuc2V0X2xpbWl0JywgeworICAgICAgICAndHJhbnNfaWQnOiB0aGlzLnRy YW5zSWQsCisgICAgICB9KSwgSlNPTi5zdHJpbmdpZnkocGFyc2VJbnQobGltaXQpKQorICAgICk7 CisgIH0KKworICBnZXRGaW5hbENvbHVtbihjLCBpc0VkaXRhYmxlLCBpc1BLLCBwZ1R5cGVzT2lk TWFwKSB7CisgICAgbGV0IGNvbHVtblR5cGVJbnRlcm5hbCA9IHBnVHlwZXNPaWRNYXBbYy50eXBl X2NvZGVdIHx8ICd1bmtub3duJzsKKyAgICBsZXQgY29sdW1uVHlwZSA9IChpc1BLID8gJ1tQS10g JyA6ICcnKSArIGNvbHVtblR5cGVJbnRlcm5hbDsKKyAgICBsZXQgY2VsbFR5cGU7CisKKyAgICBp ZiAoYy5wcmVjaXNpb24gJiYgYy5wcmVjaXNpb24gPj0gMCAmJiBjLnByZWNpc2lvbiAhPSA2NTUz NSkgeworICAgICAgY29sdW1uVHlwZSArPSAnICgnICsgYy5wcmVjaXNpb247CisgICAgICBjb2x1 bW5UeXBlICs9IGMuc2NhbGUgJiYgYy5zY2FsZSAhPSA2NTUzNSA/CisgICAgICAgICcsJyArIGMu c2NhbGUgKyAnKScgOgorICAgICAgICAnKSc7CisgICAgfQorICAgIC8vIElkZW50aWZ5IGNlbGwg dHlwZSBvZiBjb2x1bW4uCisgICAgc3dpdGNoIChjb2x1bW5UeXBlSW50ZXJuYWwpIHsKKyAgICBj YXNlICdvaWQnOgorICAgICAgY2VsbFR5cGUgPSAnb2lkJzsKKyAgICAgIGJyZWFrOworICAgIGNh c2UgJ2pzb24nOgorICAgIGNhc2UgJ2pzb25bXSc6CisgICAgY2FzZSAnanNvbmInOgorICAgIGNh c2UgJ2pzb25iW10nOgorICAgICAgY2VsbFR5cGUgPSAnSnNvbic7CisgICAgICBicmVhazsKKyAg ICBjYXNlICdzbWFsbGludCc6CisgICAgY2FzZSAnc21hbGxpbnRbXSc6CisgICAgY2FzZSAnaW50 ZWdlcic6CisgICAgY2FzZSAnaW50ZWdlcltdJzoKKyAgICBjYXNlICdiaWdpbnQnOgorICAgIGNh c2UgJ2JpZ2ludFtdJzoKKyAgICBjYXNlICdkZWNpbWFsJzoKKyAgICBjYXNlICdkZWNpbWFsW10n OgorICAgIGNhc2UgJ251bWVyaWMnOgorICAgIGNhc2UgJ251bWVyaWNbXSc6CisgICAgY2FzZSAn cmVhbCc6CisgICAgY2FzZSAncmVhbFtdJzoKKyAgICBjYXNlICdkb3VibGUgcHJlY2lzaW9uJzoK KyAgICBjYXNlICdkb3VibGUgcHJlY2lzaW9uW10nOgorICAgICAgY2VsbFR5cGUgPSAnbnVtYmVy JzsKKyAgICAgIGJyZWFrOworICAgIGNhc2UgJ2Jvb2xlYW4nOgorICAgICAgY2VsbFR5cGUgPSAn Ym9vbGVhbic7CisgICAgICBicmVhazsKKyAgICBjYXNlICdjaGFyYWN0ZXInOgorICAgIGNhc2Ug J2NoYXJhY3RlcltdJzoKKyAgICBjYXNlICciY2hhciInOgorICAgIGNhc2UgJyJjaGFyIltdJzoK KyAgICBjYXNlICdjaGFyYWN0ZXIgdmFyeWluZyc6CisgICAgY2FzZSAnY2hhcmFjdGVyIHZhcnlp bmdbXSc6CisgICAgICBpZiAoYy5pbnRlcm5hbF9zaXplICYmIGMuaW50ZXJuYWxfc2l6ZSA+PSAw ICYmIGMuaW50ZXJuYWxfc2l6ZSAhPSA2NTUzNSkgeworICAgICAgICAvLyBVcGRhdGUgY29sdW1u IHR5cGUgdG8gZGlzcGxheSBsZW5ndGggb24gY29sdW1uIGhlYWRlcgorICAgICAgICBjb2x1bW5U eXBlICs9ICcgKCcgKyBjLmludGVybmFsX3NpemUgKyAnKSc7CisgICAgICB9CisgICAgICBjZWxs VHlwZSA9ICdzdHJpbmcnOworICAgICAgYnJlYWs7CisgICAgY2FzZSAnYnl0ZWEnOgorICAgIGNh c2UgJ2J5dGVhW10nOgorICAgICAgY2VsbFR5cGUgPSAnYmluYXJ5JzsKKyAgICAgIGJyZWFrOwor ICAgIGNhc2UgJ2dlb21ldHJ5JzoKKyAgICAgIC8vIFBvc3RHSVMgZ2VvbWV0cnkgdHlwZQorICAg ICAgY2VsbFR5cGUgPSAnZ2VvbWV0cnknOworICAgICAgaXNFZGl0YWJsZSA9IGZhbHNlOworICAg ICAgYnJlYWs7CisgICAgY2FzZSAnZ2VvZ3JhcGh5JzoKKyAgICAgIC8vIFBvc3RHSVMgZ2VvZ3Jh cGh5IHR5cGUKKyAgICAgIGNlbGxUeXBlID0gJ2dlb2dyYXBoeSc7CisgICAgICBpc0VkaXRhYmxl ID0gZmFsc2U7CisgICAgICBicmVhazsKKyAgICBkZWZhdWx0OgorICAgICAgY2VsbFR5cGUgPSAn c3RyaW5nJzsKKyAgICB9CisKKyAgICBsZXQgYXJyYXlCcmFja2V0SWR4ID0gY29sdW1uVHlwZUlu dGVybmFsLmxhc3RJbmRleE9mKCdbXScpOworICAgIHJldHVybiB7CisgICAgICAna2V5JzogYy5u YW1lLAorICAgICAgJ25hbWUnOiBjLm5hbWUsCisgICAgICAnZGlzcGxheV9uYW1lJzogYy5kaXNw bGF5X25hbWUsCisgICAgICAndHlwZSc6IGNvbHVtblR5cGVJbnRlcm5hbCwKKyAgICAgICdkaXNw bGF5X3R5cGUnOiBjb2x1bW5UeXBlLAorICAgICAgJ2NvbHVtbl90eXBlX2ludGVybmFsJzogY29s dW1uVHlwZUludGVybmFsLAorICAgICAgJ3Bvcyc6IGMucG9zLAorICAgICAgJ2NlbGwnOiBjZWxs VHlwZSwKKyAgICAgICdjYW5fZWRpdCc6IChjLm5hbWUgPT0gJ29pZCcpID8gZmFsc2UgOiBpc0Vk aXRhYmxlLAorICAgICAgJ25vdF9udWxsJzogYy5ub3RfbnVsbCwKKyAgICAgICdoYXNfZGVmYXVs dF92YWwnOiBjLmhhc19kZWZhdWx0X3ZhbCwKKyAgICAgICdpc19hcnJheSc6IGFycmF5QnJhY2tl dElkeCA+IC0xICYmIGFycmF5QnJhY2tldElkeCArIDIgPT0gY29sdW1uVHlwZUludGVybmFsLmxl bmd0aCwKKyAgICB9OworICB9CisKKyAgcHJvY2Vzc0NvbHVtbnMoZGF0YSkgeworICAgIGxldCBj b2x1bW5zID0gW107CisgICAgbGV0IHNlbGYgPSB0aGlzOworCisgICAgbGV0IHBnVHlwZXNPaWRN YXAgPSB7fTsKKyAgICBfLmlzQXJyYXkoZGF0YS50eXBlcykgJiYgZGF0YS50eXBlcz8uZm9yRWFj aCgodCk9PnsKKyAgICAgIHBnVHlwZXNPaWRNYXBbdC5vaWRdID0gdC50eXBuYW1lOworICAgIH0p OworCisgICAgLy8gQ3JlYXRlIGNvbHVtbnMKKyAgICBkYXRhLmNvbGluZm8uZm9yRWFjaChmdW5j dGlvbihjKSB7CisgICAgICB2YXIgaXNQSyA9IGZhbHNlLAorICAgICAgICBpc0VkaXRhYmxlID0g ZGF0YS5jYW5fZWRpdCAmJiAoIXNlbGYuaXNRdWVyeVRvb2wgfHwgYy5pc19lZGl0YWJsZSk7CisK KyAgICAgIC8vIENoZWNrIHdoZXRoZXIgdGhpcyBjb2x1bW4gaXMgYSBwcmltYXJ5IGtleQorICAg ICAgaWYgKGlzRWRpdGFibGUpIHsKKyAgICAgICAgaXNQSyA9IF8uc29tZShkYXRhLnByaW1hcnlf a2V5c3x8W10sIChfdiwga2V5KT0+a2V5ID09PSBjLm5hbWUpOworICAgICAgfQorCisgICAgICAv LyBDcmVhdGUgY29sdW1uIGxhYmVsIGFuZCB0eXBlLgorICAgICAgY29sdW1ucy5wdXNoKHNlbGYu Z2V0RmluYWxDb2x1bW4oYywgaXNFZGl0YWJsZSwgaXNQSywgcGdUeXBlc09pZE1hcCkpOworICAg IH0pOworCisgICAgcmV0dXJuIGNvbHVtbnM7CisgIH0KKworICBwcm9jZXNzQ2xpcGJvYXJkVmFs KGNvbHVtblZhbCwgY29sKSB7CisgICAgaWYoY29sdW1uVmFsID09PSAnJykgeworICAgICAgaWYo Y29sLmhhc19kZWZhdWx0X3ZhbCkgeworICAgICAgICBjb2x1bW5WYWwgPSB1bmRlZmluZWQ7Cisg ICAgICB9CisgICAgfQorICAgIGlmKGNvbC5jZWxsID09PSAnYm9vbGVhbicpIHsKKyAgICAgIGlm KGNvbHVtblZhbCA9PSAndHJ1ZScpIHsKKyAgICAgICAgY29sdW1uVmFsID0gdHJ1ZTsKKyAgICAg IH0gZWxzZSBpZihjb2x1bW5WYWwgPT0gJ2ZhbHNlJykgeworICAgICAgICBjb2x1bW5WYWwgPSBm YWxzZTsKKyAgICAgIH0gZWxzZSB7CisgICAgICAgIGNvbHVtblZhbCA9IG51bGw7CisgICAgICB9 CisgICAgfQorICAgIHJldHVybiBjb2x1bW5WYWw7CisgIH0KKworICBwcm9jZXNzUm93cyhyZXN1 bHQsIGNvbHVtbnMsIGZyb21DbGlwYm9hcmQ9ZmFsc2UpIHsKKyAgICBsZXQgcmV0VmFsID0gW107 CisgICAgaWYoIV8uaXNBcnJheShyZXN1bHQpIHx8ICFfLnNpemUocmVzdWx0KSkgeworICAgICAg cmV0dXJuIHJldFZhbDsKKyAgICB9CisgICAgZm9yKGNvbnN0IHJlYyBvZiByZXN1bHQpIHsKKyAg ICAgIC8vIENvbnZlcnQgMmRhcnJheSB0byBkaWN0LgorICAgICAgbGV0IHJvd09iaiA9IHt9Owor ICAgICAgZm9yKGNvbnN0IGNvbCBvZiBjb2x1bW5zKSB7CisgICAgICAgIGxldCBjb2x1bW5WYWwg PSByZWNbY29sLnBvc107CisgICAgICAgIC8qIElmIHRoZSBzb3VyY2UgaXMgY2xpcGJvYXJkLCB0 aGVuIGl0IG5lZWRzIHNvbWUgZXh0cmEgaGFuZGxpbmcgKi8KKyAgICAgICAgaWYoZnJvbUNsaXBi b2FyZCkgeworICAgICAgICAgIGNvbHVtblZhbCA9IHRoaXMucHJvY2Vzc0NsaXBib2FyZFZhbChj b2x1bW5WYWwsIGNvbCk7CisgICAgICAgIH0KKyAgICAgICAgcm93T2JqW2NvbC5rZXldID0gY29s dW1uVmFsOworICAgICAgfQorICAgICAgLyogVGhpcyB3aWxsIHVzZWQgZm9yIHVuaXF1ZWx5IGlk ZW50aWZ5aW5nIHNlbGVjdGVkIHJvd3MgKi8KKyAgICAgIHJvd09ialt0aGlzLmNsaWVudFBLXSA9 IHRoaXMuY2xpZW50UEtMYXN0SW5kZXgudG9TdHJpbmcoKTsKKyAgICAgIHJldFZhbC5wdXNoKHJv d09iaik7CisgICAgICB0aGlzLmNsaWVudFBLTGFzdEluZGV4Kys7CisgICAgfQorICAgIHJldHVy biByZXRWYWw7CisgIH0KKworICBnZXRQbGFuSnNvbihyZXN1bHQsIGRhdGEpIHsKKyAgICBpZihy ZXN1bHQgJiYgIV8uaXNFbXB0eShkYXRhLmNvbGluZm8pCisgICAgICAmJiBkYXRhLmNvbGluZm9b MF0ubmFtZSA9PSAnUVVFUlkgUExBTicgJiYgIV8uaXNFbXB0eShkYXRhLnR5cGVzKQorICAgICAg JiYgZGF0YS50eXBlc1swXSAmJiBkYXRhLnR5cGVzWzBdLnR5cG5hbWUgPT09ICdqc29uJykgewor ICAgICAgLyoganNvbiBpcyBzZW50IGFzIHRleHQsIHBhcnNlIGl0ICovCisgICAgICBsZXQgcGxh bkpzb24gPSBKU09OLnBhcnNlKGRhdGEucmVzdWx0WzBdWzBdKTsKKyAgICAgIGlmIChwbGFuSnNv biAmJiBwbGFuSnNvblswXSAmJiBwbGFuSnNvblswXS5oYXNPd25Qcm9wZXJ0eSgnUGxhbicpICYm CisgICAgICAgICAgICBfLmlzT2JqZWN0KHBsYW5Kc29uWzBdWydQbGFuJ10pCisgICAgICApIHsK KyAgICAgICAgcmV0dXJuIHBsYW5Kc29uOworICAgICAgfQorICAgIH0KKyAgICByZXR1cm4gbnVs bDsKKyAgfQorCisgIHF1ZXJ5RmluaXNoZWQoaHR0cE1lc3NhZ2UsIG9uUmVzdWx0c0F2YWlsYWJs ZSwgb25FeHBsYWluKSB7CisgICAgbGV0IG1zZzsKKyAgICB0aGlzLmV2ZW50QnVzLmZpcmVFdmVu dChRVUVSWV9UT09MX0VWRU5UUy5FWEVDVVRJT05fRU5ELCB0cnVlKTsKKyAgICB0aGlzLmV2ZW50 QnVzLmZpcmVFdmVudChRVUVSWV9UT09MX0VWRU5UUy5TRVRfQ09OTkVDVElPTl9TVEFUVVMsIGh0 dHBNZXNzYWdlLmRhdGEuZGF0YS50cmFuc2FjdGlvbl9zdGF0dXMpOworICAgIHRoaXMuc2V0RW5k VGltZShuZXcgRGF0ZSgpKTsKKworICAgIG1zZyA9IGdldHRleHQoJ1F1ZXJ5IHJldHVybmVkIHN1 Y2Nlc3NmdWxseSBpbiAlcy4nLCB0aGlzLnF1ZXJ5UnVuVGltZSgpKTsKKyAgICBpZih0aGlzLmhh c1Jlc3VsdHNUb0Rpc3BsYXkoaHR0cE1lc3NhZ2UuZGF0YS5kYXRhKSkgeworICAgICAgaWYoIV8u aXNOdWxsKGh0dHBNZXNzYWdlLmRhdGEuZGF0YS5hZGRpdGlvbmFsX21lc3NhZ2VzKSl7CisgICAg ICAgIG1zZyA9IGh0dHBNZXNzYWdlLmRhdGEuZGF0YS5hZGRpdGlvbmFsX21lc3NhZ2VzICsgJ1xu JyArIG1zZzsKKyAgICAgIH0KKyAgICAgIHRoaXMuZXZlbnRCdXMuZmlyZUV2ZW50KFFVRVJZX1RP T0xfRVZFTlRTLlNFVF9NRVNTQUdFLCBtc2cpOworICAgICAgdGhpcy5zZXRDbGllbnRQSyhodHRw TWVzc2FnZS5kYXRhLmRhdGEuY2xpZW50X3ByaW1hcnlfa2V5KTsKKyAgICAgIGxldCB7cmVzdWx0 fSA9IGh0dHBNZXNzYWdlLmRhdGEuZGF0YTsKKyAgICAgIGxldCBkYXRhID0geworICAgICAgICAu Li50aGlzLnN0YXJ0RGF0YSwKKyAgICAgICAgLi4uaHR0cE1lc3NhZ2UuZGF0YS5kYXRhLAorICAg ICAgfTsKKyAgICAgIGRhdGEucHJpbWFyeV9rZXlzID0gKF8uaXNFbXB0eShkYXRhLnByaW1hcnlf a2V5cykgJiYgZGF0YS5oYXNfb2lkcykgPyBkYXRhLm9pZHMgOiBkYXRhLnByaW1hcnlfa2V5czsK KyAgICAgIGRhdGEuY2FuX2VkaXQgPSAhXy5pc0VtcHR5KGRhdGEucHJpbWFyeV9rZXlzKTsKKyAg ICAgIGxldCBwcm9jQ29sdW1ucyA9IHRoaXMucHJvY2Vzc0NvbHVtbnMoZGF0YSk7CisgICAgICBv blJlc3VsdHNBdmFpbGFibGUoZGF0YSwgcHJvY0NvbHVtbnMsIHRoaXMucHJvY2Vzc1Jvd3MocmVz dWx0LCBwcm9jQ29sdW1ucywgdGhpcy5wcm9jZXNzUm93cyhyZXN1bHQsIHByb2NDb2x1bW5zKSkp OworICAgICAgdGhpcy5zZXRTdGFydERhdGEobnVsbCk7CisgICAgICBsZXQgcGxhbkpzb24gPSB0 aGlzLmdldFBsYW5Kc29uKHJlc3VsdCwgZGF0YSk7CisgICAgICBpZihwbGFuSnNvbikgeworICAg ICAgICBvbkV4cGxhaW4ocGxhbkpzb24pOworICAgICAgfSBlbHNlIHsKKyAgICAgICAgdGhpcy5l dmVudEJ1cy5maXJlRXZlbnQoUVVFUllfVE9PTF9FVkVOVFMuRk9DVVNfUEFORUwsIFBBTkVMUy5E QVRBX09VVFBVVCk7CisgICAgICB9CisgICAgfSBlbHNlIHsKKyAgICAgIGlmIChodHRwTWVzc2Fn ZS5kYXRhLmRhdGEucmVzdWx0KSB7CisgICAgICAgIG1zZyA9IGh0dHBNZXNzYWdlLmRhdGEuZGF0 YS5yZXN1bHQgKyAnXG5cbicgKyBtc2c7CisgICAgICB9CisgICAgICB0aGlzLmV2ZW50QnVzLmZp cmVFdmVudChRVUVSWV9UT09MX0VWRU5UUy5TRVRfTUVTU0FHRSwgbXNnLCB0cnVlKTsKKyAgICAg IHRoaXMuZXZlbnRCdXMuZmlyZUV2ZW50KFFVRVJZX1RPT0xfRVZFTlRTLkZPQ1VTX1BBTkVMLCBQ QU5FTFMuTUVTU0FHRVMpOworICAgIH0KKyAgICByZXR1cm4gbXNnOworICB9Cit9CisKK2Z1bmN0 aW9uIGRhdGFDaGFuZ2VSZWR1Y2VyKHN0YXRlLCBhY3Rpb24pIHsKKyAgbGV0IGRhdGFDaGFuZ2Ug PSBfLmNsb25lKHN0YXRlKTsKKyAgbGV0IGNvdW50OworICBzd2l0Y2ggKGFjdGlvbi50eXBlKSB7 CisgIGNhc2UgJ3VwZGF0ZWQnOgorICAgIGRhdGFDaGFuZ2UudXBkYXRlZFthY3Rpb24uY2xpZW50 UEtdID0geworICAgICAgLi4uZGF0YUNoYW5nZS51cGRhdGVkW2FjdGlvbi5jbGllbnRQS10sCisg ICAgICAuLi5hY3Rpb24ucGF5bG9hZCwKKyAgICAgIGRhdGE6IHsKKyAgICAgICAgLi4uZGF0YUNo YW5nZS51cGRhdGVkW2FjdGlvbi5jbGllbnRQS10/LmRhdGEsCisgICAgICAgIC4uLmFjdGlvbi5w YXlsb2FkLmRhdGEsCisgICAgICB9CisgICAgfTsKKyAgICBicmVhazsKKyAgY2FzZSAnYWRkZWQn OgorICAgIGFjdGlvbi5hZGQgPSBhY3Rpb24uYWRkIHx8IHt9OworICAgIGFjdGlvbi5yZW1vdmUg PSBhY3Rpb24ucmVtb3ZlIHx8IFtdOworICAgIGRhdGFDaGFuZ2UuYWRkZWQgPSBfLnBpY2tCeShk YXRhQ2hhbmdlLmFkZGVkLCAoX3YsIGspPT4oYWN0aW9uLnJlbW92ZS5pbmRleE9mKGspID09IC0x KSk7CisgICAgZGF0YUNoYW5nZS5hZGRlZF9pbmRleCA9IF8ucGlja0J5KGRhdGFDaGFuZ2UuYWRk ZWRfaW5kZXgsICh2KT0+KGFjdGlvbi5yZW1vdmUuaW5kZXhPZih2KSA9PSAtMSkpOworICAgIGNv dW50ID0gXy5tYXgoT2JqZWN0LmtleXMoZGF0YUNoYW5nZS5hZGRlZF9pbmRleCkpfHwwOworICAg IE9iamVjdC5rZXlzKGFjdGlvbi5hZGQpLmZvckVhY2goKGspPT57CisgICAgICBkYXRhQ2hhbmdl LmFkZGVkX2luZGV4WysrY291bnRdID0gazsKKyAgICB9KTsKKyAgICBkYXRhQ2hhbmdlLmFkZGVk ID0geworICAgICAgLi4uZGF0YUNoYW5nZS5hZGRlZCwKKyAgICAgIC4uLmFjdGlvbi5hZGQsCisg ICAgfTsKKyAgICBicmVhazsKKyAgY2FzZSAnZGVsZXRlZCc6CisgICAgZGF0YUNoYW5nZS5kZWxl dGVkID0gXy5waWNrQnkoZGF0YUNoYW5nZS5kZWxldGVkLCAoX3YsIGspPT4oYWN0aW9uLnJlbW92 ZS5pbmRleE9mKGspID09IC0xKSk7CisgICAgZGF0YUNoYW5nZS5kZWxldGVkID0geworICAgICAg Li4uZGF0YUNoYW5nZS5kZWxldGVkLAorICAgICAgLi4uYWN0aW9uLmFkZCwKKyAgICB9OworICAg IGJyZWFrOworICBjYXNlICdyZXNldCc6CisgICAgZGF0YUNoYW5nZSA9IHsKKyAgICAgIHVwZGF0 ZWQ6IHt9LAorICAgICAgYWRkZWQ6IHt9LAorICAgICAgYWRkZWRfaW5kZXg6IHt9LAorICAgICAg ZGVsZXRlZDoge30sCisgICAgfTsKKyAgICBicmVhazsKKyAgZGVmYXVsdDoKKyAgICBicmVhazsK KyAgfQorCisgIHJldHVybiBkYXRhQ2hhbmdlOworfQorCitleHBvcnQgZnVuY3Rpb24gUmVzdWx0 U2V0KCkgeworICBjb25zdCBjb250YWluZXJSZWYgPSBSZWFjdC51c2VSZWYobnVsbCk7CisgIGNv bnN0IGV2ZW50QnVzID0gdXNlQ29udGV4dChRdWVyeVRvb2xFdmVudHNDb250ZXh0KTsKKyAgY29u c3QgcXVlcnlUb29sQ3R4ID0gdXNlQ29udGV4dChRdWVyeVRvb2xDb250ZXh0KTsKKyAgY29uc3Qg W2xvYWRlclRleHQsIHNldExvYWRlclRleHRdID0gdXNlU3RhdGUoJycpOworICBjb25zdCBbcXVl cnlEYXRhLCBzZXRRdWVyeURhdGFdID0gdXNlU3RhdGUobnVsbCk7CisgIGNvbnN0IFtyb3dzLCBz ZXRSb3dzXSA9IHVzZVN0YXRlKFtdKTsKKyAgY29uc3QgW2NvbHVtbnMsIHNldENvbHVtbnNdID0g dXNlU3RhdGUoW10pOworICBjb25zdCBbaXNMb2FkaW5nTW9yZSwgc2V0SXNMb2FkaW5nTW9yZV0g PSB1c2VTdGF0ZShmYWxzZSk7CisgIGNvbnN0IGFwaSA9IGdldEFwaUluc3RhbmNlKCk7CisgIGNv bnN0IHJzdSA9IFJlYWN0LnVzZVJlZihuZXcgUmVzdWx0U2V0VXRpbHMoYXBpLCBxdWVyeVRvb2xD dHgucGFyYW1zLnRyYW5zX2lkKSk7CisgIGNvbnN0IFtkYXRhQ2hhbmdlU3RvcmUsIGRpc3BhdGNo RGF0YUNoYW5nZV0gPSBSZWFjdC51c2VSZWR1Y2VyKGRhdGFDaGFuZ2VSZWR1Y2VyLCB7fSk7Cisg IGNvbnN0IFtzZWxlY3RlZFJvd3MsIHNldFNlbGVjdGVkUm93c10gPSB1c2VTdGF0ZShuZXcgU2V0 KCkpOworICBjb25zdCBbc2VsZWN0ZWRDb2x1bW5zLCBzZXRTZWxlY3RlZENvbHVtbnNdID0gdXNl U3RhdGUobmV3IFNldCgpKTsKKyAgY29uc3QgW3NlbGVjdGVkQ2VsbCwgc2V0U2VsZWN0ZWRDZWxs XSA9IHVzZVN0YXRlKFtdKTsKKyAgY29uc3QgW3Jvd3NSZXNldEtleSwgc2V0Um93c1Jlc2V0S2V5 XSA9IHVzZVN0YXRlKHRydWUpOworCisgIHJzdS5jdXJyZW50LnNldEV2ZW50QnVzKGV2ZW50QnVz KTsKKworICBjb25zdCBleGVjdXRpb25TdGFydENhbGxiYWNrID0gYXN5bmMgKHF1ZXJ5LCBleHBs YWluT2JqZWN0LCBleHRlcm5hbD1mYWxzZSwgcmVjb25uZWN0PWZhbHNlKT0+eworICAgIC8qIFJl c2V0ICovCisgICAgZGlzcGF0Y2hEYXRhQ2hhbmdlKHt0eXBlOiAncmVzZXQnfSk7CisgICAgc2V0 U2VsZWN0ZWRSb3dzKG5ldyBTZXQoKSk7CisgICAgc2V0U2VsZWN0ZWRDb2x1bW5zKG5ldyBTZXQo KSk7CisgICAgc2V0TG9hZGVyVGV4dChnZXR0ZXh0KCdXYWl0aW5nIGZvciB0aGUgcXVlcnkgdG8g Y29tcGxldGUuLi4nKSk7CisgICAgbGV0IGdvRm9yUG9sbCA9IGF3YWl0IHJzdS5jdXJyZW50LnN0 YXJ0RXhlY3V0aW9uKAorICAgICAgcXVlcnksIGV4cGxhaW5PYmplY3QsCisgICAgICAoKT0+ewor ICAgICAgICBzZXRDb2x1bW5zKFtdKTsKKyAgICAgICAgc2V0Um93cyhbXSk7CisgICAgICB9LAor ICAgICAge2lzUXVlcnlUb29sOiBxdWVyeVRvb2xDdHgucGFyYW1zLmlzX3F1ZXJ5X3Rvb2wsIGV4 dGVybmFsOiBleHRlcm5hbCwgcmVjb25uZWN0OiByZWNvbm5lY3R9CisgICAgKTsKKyAgICBpZihn b0ZvclBvbGwpIHsKKyAgICAgIHJzdS5jdXJyZW50LnBvbGxGb3JSZXN1bHQoCisgICAgICAgIChw cm9jUXVlcnlEYXRhLCBwcm9jQ29sdW1ucywgcHJvY1Jvd3MpPT57CisgICAgICAgICAgc2V0UXVl cnlEYXRhKHByb2NRdWVyeURhdGEpOworICAgICAgICAgIHNldENvbHVtbnMocHJvY0NvbHVtbnMp OworICAgICAgICAgIHNldFJvd3MocHJvY1Jvd3MpOworICAgICAgICAgIHNldFJvd3NSZXNldEtl eSghcm93c1Jlc2V0S2V5KTsKKyAgICAgICAgfSwKKyAgICAgICAgKHBsYW5Kc29uKT0+eworICAg ICAgICAgIExheW91dEhlbHBlci5vcGVuVGFiKHF1ZXJ5VG9vbEN0eC5kb2NrZXIsIHsKKyAgICAg ICAgICAgIGlkOiBQQU5FTFMuRVhQTEFJTiwKKyAgICAgICAgICAgIHRpdGxlOidFeHBsYWluJywK KyAgICAgICAgICAgIGNvbnRlbnQ6IDxFeHBsYWluIHBsYW5zPXtwbGFuSnNvbn0gLz4sCisgICAg ICAgICAgICBjbG9zYWJsZTogdHJ1ZSwKKyAgICAgICAgICB9LCBQQU5FTFMuTUVTU0FHRVMsICdh ZnRlci10YWInLCB0cnVlKTsKKyAgICAgICAgfSwKKyAgICAgICAgKCk9PnsKKyAgICAgICAgICBz ZXRDb2x1bW5zKFtdKTsKKyAgICAgICAgICBzZXRSb3dzKFtdKTsKKyAgICAgICAgfQorICAgICAg KTsKKyAgICB9CisgIH07CisKKyAgdXNlRWZmZWN0KCgpPT57CisgICAgZXZlbnRCdXMucmVnaXN0 ZXJMaXN0ZW5lcihRVUVSWV9UT09MX0VWRU5UUy5UUklHR0VSX1NUT1BfRVhFQ1VUSU9OLCBhc3lu YyAoKT0+eworICAgICAgdHJ5IHsKKyAgICAgICAgYXdhaXQgcnN1LmN1cnJlbnQuc3RvcEV4ZWN1 dGlvbigpOworICAgICAgfSBjYXRjaChlKSB7CisgICAgICAgIGV2ZW50QnVzLmZpcmVFdmVudChR VUVSWV9UT09MX0VWRU5UUy5IQU5ETEVfQVBJX0VSUk9SLCBlKTsKKyAgICAgIH0KKyAgICAgIGV2 ZW50QnVzLmZpcmVFdmVudChRVUVSWV9UT09MX0VWRU5UUy5TRVRfQ09OTkVDVElPTl9TVEFUVVMs IENPTk5FQ1RJT05fU1RBVFVTLlRSQU5TQUNUSU9OX1NUQVRVU19JRExFKTsKKyAgICAgIGV2ZW50 QnVzLmZpcmVFdmVudChRVUVSWV9UT09MX0VWRU5UUy5FWEVDVVRJT05fRU5EKTsKKyAgICB9KTsK KworICAgIGV2ZW50QnVzLnJlZ2lzdGVyTGlzdGVuZXIoUVVFUllfVE9PTF9FVkVOVFMuRVhFQ1VU SU9OX0VORCwgKCk9PnsKKyAgICAgIHNldExvYWRlclRleHQobnVsbCk7CisgICAgfSk7CisKKyAg ICBldmVudEJ1cy5yZWdpc3Rlckxpc3RlbmVyKFFVRVJZX1RPT0xfRVZFTlRTLlRSSUdHRVJfU0FW RV9SRVNVTFRTLCAoKT0+eworICAgICAgbGV0IGV4dGVuc2lvbiA9IHF1ZXJ5VG9vbEN0eC5wcmVm ZXJlbmNlcz8uc3FsZWRpdG9yPy5jc3ZfZmllbGRfc2VwYXJhdG9yID09PSAnLCcgPyAnLmNzdic6 ICcudHh0JzsKKyAgICAgIGxldCBmaWxlTmFtZSA9ICdkYXRhLScgKyBuZXcgRGF0ZSgpLmdldFRp bWUoKSArIGV4dGVuc2lvbjsKKyAgICAgIGlmKCFxdWVyeVRvb2xDdHgucGFyYW1zLmlzX3F1ZXJ5 X3Rvb2wpIHsKKyAgICAgICAgZmlsZU5hbWUgPSBxdWVyeVRvb2xDdHgucGFyYW1zLm5vZGVfbmFt ZSArIGV4dGVuc2lvbjsKKyAgICAgIH0KKyAgICAgIHNldExvYWRlclRleHQoZ2V0dGV4dCgnRG93 bmxvYWRpbmcgcmVzdWx0cy4uLicpKTsKKyAgICAgIHJzdS5jdXJyZW50LnNhdmVSZXN1bHRzVG9G aWxlKGZpbGVOYW1lKTsKKyAgICAgIHNldExvYWRlclRleHQoJycpOworICAgIH0pOworCisgICAg ZXZlbnRCdXMucmVnaXN0ZXJMaXN0ZW5lcihRVUVSWV9UT09MX0VWRU5UUy5UUklHR0VSX1NFVF9M SU1JVCwgYXN5bmMgKGxpbWl0KT0+eworICAgICAgc2V0TG9hZGVyVGV4dChnZXR0ZXh0KCdTZXR0 aW5nIHRoZSBsaW1pdCBvbiB0aGUgcmVzdWx0Li4uJykpOworICAgICAgdHJ5IHsKKyAgICAgICAg YXdhaXQgcnN1LmN1cnJlbnQuc2V0TGltaXQobGltaXQpOworICAgICAgICBzZXRMb2FkZXJUZXh0 KCcnKTsKKyAgICAgICAgZXZlbnRCdXMuZmlyZUV2ZW50KFFVRVJZX1RPT0xfRVZFTlRTLlRSSUdH RVJfRVhFQ1VUSU9OKTsKKyAgICAgIH0gY2F0Y2goZXJyKSB7CisgICAgICAgIGV2ZW50QnVzLmZp cmVFdmVudChRVUVSWV9UT09MX0VWRU5UUy5IQU5ETEVfQVBJX0VSUk9SLCBlcnIsIHsKKyAgICAg ICAgICBjaGVja1RyYW5zYWN0aW9uOiB0cnVlLAorICAgICAgICB9KTsKKyAgICAgICAgc2V0TG9h ZGVyVGV4dCgnJyk7CisgICAgICB9CisgICAgfSk7CisKKyAgICBldmVudEJ1cy5yZWdpc3Rlckxp c3RlbmVyKFFVRVJZX1RPT0xfRVZFTlRTLlRSSUdHRVJfUkVNT1ZFX0ZJTFRFUiwgYXN5bmMgKCk9 PnsKKyAgICAgIHNldExvYWRlclRleHQoZ2V0dGV4dCgnUmVtb3ZpbmcgdGhlIGZpbHRlci4uLicp KTsKKyAgICAgIHRyeSB7CisgICAgICAgIGF3YWl0IHJzdS5jdXJyZW50LnJlbW92ZUZpbHRlcigp OworICAgICAgICBzZXRMb2FkZXJUZXh0KCcnKTsKKyAgICAgICAgZXZlbnRCdXMuZmlyZUV2ZW50 KFFVRVJZX1RPT0xfRVZFTlRTLlRSSUdHRVJfRVhFQ1VUSU9OKTsKKyAgICAgIH0gY2F0Y2goZXJy KSB7CisgICAgICAgIGV2ZW50QnVzLmZpcmVFdmVudChRVUVSWV9UT09MX0VWRU5UUy5IQU5ETEVf QVBJX0VSUk9SLCBlcnIsIHsKKyAgICAgICAgICBjaGVja1RyYW5zYWN0aW9uOiB0cnVlLAorICAg ICAgICB9KTsKKyAgICAgICAgc2V0TG9hZGVyVGV4dCgnJyk7CisgICAgICB9CisgICAgfSk7Cisg IH0sIFtdKTsKKworICB1c2VFZmZlY3QoKCk9PnsKKyAgICBldmVudEJ1cy5yZWdpc3Rlckxpc3Rl bmVyKFFVRVJZX1RPT0xfRVZFTlRTLkVYRUNVVElPTl9TVEFSVCwgZXhlY3V0aW9uU3RhcnRDYWxs YmFjayk7CisgICAgcmV0dXJuICgpPT57CisgICAgICBldmVudEJ1cy5kZXJlZ2lzdGVyTGlzdGVu ZXIoUVVFUllfVE9PTF9FVkVOVFMuRVhFQ1VUSU9OX1NUQVJULCBleGVjdXRpb25TdGFydENhbGxi YWNrKTsKKyAgICB9OworICB9LCBbcXVlcnlUb29sQ3R4LmRvY2tlcl0pOworCisgIHVzZUVmZmVj dCgoKT0+eworICAgIGNvbnN0IHRyaWdnZXJGaWx0ZXIgPSBhc3luYyAoaW5jbHVkZSk9PnsKKyAg ICAgIHNldExvYWRlclRleHQoZ2V0dGV4dCgnQXBwbHlpbmcgdGhlIG5ldyBmaWx0ZXIuLi4nKSk7 CisgICAgICBpZighc2VsZWN0ZWRDZWxsKSB7CisgICAgICAgIHJldHVybjsKKyAgICAgIH0KKyAg ICAgIHRyeSB7CisgICAgICAgIGxldCBkYXRhID0geworICAgICAgICAgIFtzZWxlY3RlZENlbGxb MV0ua2V5XTogc2VsZWN0ZWRDZWxsWzBdW3NlbGVjdGVkQ2VsbFsxXS5rZXldLAorICAgICAgICB9 OworICAgICAgICBpZihpbmNsdWRlKSB7CisgICAgICAgICAgYXdhaXQgcnN1LmN1cnJlbnQuaW5j bHVkZUZpbHRlcihkYXRhKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICBhd2FpdCByc3Uu Y3VycmVudC5leGNsdWRlRmlsdGVyKGRhdGEpOworICAgICAgICB9CisgICAgICAgIHNldExvYWRl clRleHQoJycpOworICAgICAgICBldmVudEJ1cy5maXJlRXZlbnQoUVVFUllfVE9PTF9FVkVOVFMu VFJJR0dFUl9FWEVDVVRJT04pOworICAgICAgfSBjYXRjaChlcnIpIHsKKyAgICAgICAgZXZlbnRC dXMuZmlyZUV2ZW50KFFVRVJZX1RPT0xfRVZFTlRTLkhBTkRMRV9BUElfRVJST1IsIGVyciwgewor ICAgICAgICAgIGNoZWNrVHJhbnNhY3Rpb246IHRydWUsCisgICAgICAgIH0pOworICAgICAgICBz ZXRMb2FkZXJUZXh0KCcnKTsKKyAgICAgIH0KKyAgICB9OworICAgIGV2ZW50QnVzLnJlZ2lzdGVy TGlzdGVuZXIoUVVFUllfVE9PTF9FVkVOVFMuVFJJR0dFUl9JTkNMVURFX0VYQ0xVREVfRklMVEVS LCB0cmlnZ2VyRmlsdGVyKTsKKyAgICByZXR1cm4gKCk9PmV2ZW50QnVzLmRlcmVnaXN0ZXJMaXN0 ZW5lcihRVUVSWV9UT09MX0VWRU5UUy5UUklHR0VSX0lOQ0xVREVfRVhDTFVERV9GSUxURVIsIHRy aWdnZXJGaWx0ZXIpOworICB9LCBbc2VsZWN0ZWRDZWxsXSk7CisKKyAgdXNlRWZmZWN0KCgpPT57 CisgICAgZXZlbnRCdXMuZmlyZUV2ZW50KFFVRVJZX1RPT0xfRVZFTlRTLlNFTEVDVEVEX1JPV1Nf Q0hBTkdFRCwgc2VsZWN0ZWRSb3dzLnNpemUpOworICB9LCBbc2VsZWN0ZWRSb3dzLnNpemVdKTsK KworICB1c2VFZmZlY3QoKCk9PnsKKyAgICByc3UuY3VycmVudC50cmFuc0lkID0gcXVlcnlUb29s Q3R4LnBhcmFtcy50cmFuc19pZDsKKyAgfSwgW3F1ZXJ5VG9vbEN0eC5wYXJhbXMudHJhbnNfaWRd KTsKKworICB1c2VFZmZlY3QoKCk9PnsKKyAgICBldmVudEJ1cy5maXJlRXZlbnQoUVVFUllfVE9P TF9FVkVOVFMuUk9XU19GRVRDSEVELCBxdWVyeURhdGE/LnJvd3NfZmV0Y2hlZF90bywgcXVlcnlE YXRhPy5yb3dzX2FmZmVjdGVkKTsKKyAgfSwgW3F1ZXJ5RGF0YV0pOworCisgIGNvbnN0IHdhcm5T YXZlRGF0YUNsb3NlID0gKCk9PnsKKyAgICAvLyBObyBjaGFuZ2VzLgorICAgIGlmKCFfLnNpemUo ZGF0YUNoYW5nZVN0b3JlLnVwZGF0ZWQpICYmICFfLnNpemUoZGF0YUNoYW5nZVN0b3JlLmFkZGVk KSAmJiAhXy5zaXplKGRhdGFDaGFuZ2VTdG9yZS5kZWxldGVkKSkgeworICAgICAgZXZlbnRCdXMu ZmlyZUV2ZW50KFFVRVJZX1RPT0xfRVZFTlRTLldBUk5fU0FWRV9URVhUX0NMT1NFKTsKKyAgICAg IHJldHVybjsKKyAgICB9CisgICAgcXVlcnlUb29sQ3R4Lm1vZGFsLnNob3dNb2RhbChnZXR0ZXh0 KCdTYXZlIGRhdGEgY2hhbmdlcz8nKSwgKGNsb3NlTW9kYWwpPT4oCisgICAgICA8Q29uZmlybVNh dmVDb250ZW50CisgICAgICAgIGNsb3NlTW9kYWw9e2Nsb3NlTW9kYWx9CisgICAgICAgIHRleHQ9 e2dldHRleHQoJ1RoZSBkYXRhIGhhcyBjaGFuZ2VkLiBEbyB5b3Ugd2FudCB0byBzYXZlIGNoYW5n ZXM/Jyl9CisgICAgICAgIG9uRG9udFNhdmU9eygpPT57CisgICAgICAgICAgZXZlbnRCdXMuZmly ZUV2ZW50KFFVRVJZX1RPT0xfRVZFTlRTLldBUk5fU0FWRV9URVhUX0NMT1NFKTsKKyAgICAgICAg fX0KKyAgICAgICAgb25TYXZlPXthc3luYyAoKT0+eworICAgICAgICAgIGF3YWl0IHRyaWdnZXJT YXZlRGF0YSgpOworICAgICAgICAgIGV2ZW50QnVzLmZpcmVFdmVudChRVUVSWV9UT09MX0VWRU5U Uy5XQVJOX1NBVkVfVEVYVF9DTE9TRSk7CisgICAgICAgIH19CisgICAgICAvPgorICAgICkpOwor ICB9OworICB1c2VFZmZlY3QoKCk9PnsKKyAgICBsZXQgaXNEaXJ0eSA9IF8uc2l6ZShkYXRhQ2hh bmdlU3RvcmUudXBkYXRlZCkgfHwgXy5zaXplKGRhdGFDaGFuZ2VTdG9yZS5hZGRlZCkgfHwgXy5z aXplKGRhdGFDaGFuZ2VTdG9yZS5kZWxldGVkKTsKKyAgICBldmVudEJ1cy5maXJlRXZlbnQoUVVF UllfVE9PTF9FVkVOVFMuREFUQUdSSURfQ0hBTkdFRCwgaXNEaXJ0eSwgZGF0YUNoYW5nZVN0b3Jl KTsKKworICAgIGV2ZW50QnVzLnJlZ2lzdGVyTGlzdGVuZXIoUVVFUllfVE9PTF9FVkVOVFMuV0FS Tl9TQVZFX0RBVEFfQ0xPU0UsIHdhcm5TYXZlRGF0YUNsb3NlKTsKKyAgICByZXR1cm4gKCk9PnsK KyAgICAgIGV2ZW50QnVzLmRlcmVnaXN0ZXJMaXN0ZW5lcihRVUVSWV9UT09MX0VWRU5UUy5XQVJO X1NBVkVfREFUQV9DTE9TRSwgd2FyblNhdmVEYXRhQ2xvc2UpOworICAgIH07CisgIH0sIFtkYXRh Q2hhbmdlU3RvcmVdKTsKKworICBjb25zdCB0cmlnZ2VyU2F2ZURhdGEgPSBhc3luYyAoKT0+ewor ICAgIHJzdS5jdXJyZW50Lmhpc3RvcnlRdWVyeVNvdXJjZSA9IFF1ZXJ5U291cmNlcy5TQVZFX0RB VEE7CisgICAgc2V0TG9hZGVyVGV4dChnZXR0ZXh0KCdTYXZpbmcgZGF0YS4uLicpKTsKKyAgICBp ZighXy5zaXplKGRhdGFDaGFuZ2VTdG9yZS51cGRhdGVkKSAmJiAhXy5zaXplKGRhdGFDaGFuZ2VT dG9yZS5hZGRlZCkgJiYgIV8uc2l6ZShkYXRhQ2hhbmdlU3RvcmUuZGVsZXRlZCkpIHsKKyAgICAg IHNldExvYWRlclRleHQobnVsbCk7CisgICAgICByZXR1cm47CisgICAgfQorICAgIHRyeSB7Cisg ICAgICAvKiBDb252ZXJ0IHRoZSBhZGRlZCBpbmZvIHRvIGFjdHVhbCByb3dzICovCisgICAgICBs ZXQgYWRkZWQgPSB7Li4uZGF0YUNoYW5nZVN0b3JlLmFkZGVkfTsKKyAgICAgIE9iamVjdC5rZXlz KGFkZGVkKS5tYXAoKGNsaWVudFBLKT0+eworICAgICAgICBhZGRlZFtjbGllbnRQS10uZGF0YSA9 IF8uZmluZChyb3dzLCAocik9PnJvd0tleUdldHRlcihyKT09Y2xpZW50UEspOworICAgICAgfSk7 CisgICAgICBsZXQge2RhdGE6IHJlc3BEYXRhfSA9IGF3YWl0IHJzdS5jdXJyZW50LnNhdmVEYXRh KHsKKyAgICAgICAgdXBkYXRlZDogZGF0YUNoYW5nZVN0b3JlLnVwZGF0ZWQsCisgICAgICAgIGRl bGV0ZWQ6IGRhdGFDaGFuZ2VTdG9yZS5kZWxldGVkLAorICAgICAgICBhZGRlZF9pbmRleDogZGF0 YUNoYW5nZVN0b3JlLmFkZGVkX2luZGV4LAorICAgICAgICBhZGRlZDogYWRkZWQsCisgICAgICAg IGNvbHVtbnM6IGNvbHVtbnMsCisgICAgICB9KTsKKworICAgICAgdHJ5IHsKKyAgICAgICAgcmVz cERhdGEuZGF0YS5xdWVyeV9yZXN1bHRzLmZvckVhY2goKHIpPT57CisgICAgICAgICAgZXZlbnRC dXMuZmlyZUV2ZW50KFFVRVJZX1RPT0xfRVZFTlRTLlBVU0hfSElTVE9SWSwgeworICAgICAgICAg ICAgJ3N0YXR1cyc6IHIuc3RhdHVzLAorICAgICAgICAgICAgJ3N0YXJ0X3RpbWUnOiByc3UuY3Vy cmVudC5zdGFydFRpbWUsCisgICAgICAgICAgICAncXVlcnknOiByLnNxbCwKKyAgICAgICAgICAg ICdyb3dfYWZmZWN0ZWQnOiByLnJvd3NfYWZmZWN0ZWQsCisgICAgICAgICAgICAndG90YWxfdGlt ZSc6IG51bGwsCisgICAgICAgICAgICAnbWVzc2FnZSc6IHIucmVzdWx0LAorICAgICAgICAgICAg J3F1ZXJ5X3NvdXJjZSc6IFF1ZXJ5U291cmNlcy5TQVZFX0RBVEEsCisgICAgICAgICAgICAnaXNf cGdhZG1pbl9xdWVyeSc6IHRydWUsCisgICAgICAgICAgICAnaW5mbyc6IGdldHRleHQoJ1RoaXMg cXVlcnkgd2FzIGdlbmVyYXRlZCBieSBwZ0FkbWluIGFzIHBhcnQgb2YgYSAiU2F2ZSBEYXRhIiBv cGVyYXRpb24nKSwKKyAgICAgICAgICB9KTsKKyAgICAgICAgfSk7CisgICAgICB9IGNhdGNoIChf ZSkgey8qIEhpc3RvcnkgZXJyb3JzIHNob3VsZCBub3QgYm90aGVyIG90aGVycyAqL30KKworICAg ICAgaWYoIXJlc3BEYXRhLmRhdGEuc3RhdHVzKSB7CisgICAgICAgIGV2ZW50QnVzLmZpcmVFdmVu dChRVUVSWV9UT09MX0VWRU5UUy5TQVZFX0RBVEFfRE9ORSwgZmFsc2UpOworICAgICAgICBldmVu dEJ1cy5maXJlRXZlbnQoUVVFUllfVE9PTF9FVkVOVFMuU0VUX01FU1NBR0UsIHJlc3BEYXRhLmRh dGEucmVzdWx0KTsKKyAgICAgICAgTm90aWZpZXIuZXJyb3IocmVzcERhdGEuZGF0YS5yZXN1bHQs IDIwMDAwKTsKKyAgICAgICAgLy8gSWYgdGhlIHRyYW5zYWN0aW9uIGlzIG5vdCBpZGxlLCBub3Rp ZnkgdGhlIHVzZXIgdGhhdCBwcmV2aW91cyBxdWVyaWVzIGFyZSBub3Qgcm9sbGVkIGJhY2ssCisg ICAgICAgIC8vIG9ubHkgdGhlIGZhaWxlZCBzYXZlIHF1ZXJpZXMuCisgICAgICAgIGlmIChyZXNw RGF0YS5kYXRhLnRyYW5zYWN0aW9uX3N0YXR1cyAhPSBDT05ORUNUSU9OX1NUQVRVUy5UUkFOU0FD VElPTl9TVEFUVVNfSURMRSkgeworICAgICAgICAgIE5vdGlmaWVyLmluZm8oZ2V0dGV4dCgnU2F2 aW5nIGRhdGEgY2hhbmdlcyB3YXMgcm9sbGVkIGJhY2sgYnV0IHRoZSBjdXJyZW50IHRyYW5zYWN0 aW9uIGlzICcgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc3RpbGwgYWN0aXZl OyBwcmV2aW91cyBxdWVyaWVzIGFyZSB1bmFmZmVjdGVkLicpKTsKKyAgICAgICAgfQorCisgICAg ICAgIC8vIGhpZ2hsaWdodCBlcnJvciByb3dzCisgICAgICAgIC8vIFRvIGhpZ2hsaWdodCB0aGUg cm93IGF0IGZhdWx0CisgICAgICAgIC8vIGlmIChfLmhhcyhyZXMuZGF0YSwgJ19yb3dpZCcpICYm CisgICAgICAgIC8vICghXy5pc1VuZGVmaW5lZChyZXMuZGF0YS5fcm93aWQpIHx8ICFfLmlzTnVs bChyZXMuZGF0YS5fcm93aWQpKSkgeworICAgICAgICAvLyAgIHZhciBfcm93X2luZGV4ID0gc2Vs Zi5fZmluZF9yb3dpbmRleChyZXMuZGF0YS5fcm93aWQpOworICAgICAgICAvLyAgIGlmIChfcm93 X2luZGV4IGluIHNlbGYuZGF0YV9zdG9yZS5hZGRlZF9pbmRleCkgeworICAgICAgICAvLyAgIC8v IFJlbW92ZSBuZXcgcm93IGluZGV4IGZyb20gdGVtcF9saXN0IGlmIHNhdmUgb3BlcmF0aW9uCisg ICAgICAgIC8vICAgLy8gZmFpbHMKKyAgICAgICAgLy8gICAgIHZhciBpbmRleCA9IHNlbGYuaGFu ZGxlci50ZW1wX25ld19yb3dzLmluZGV4T2YocmVzLmRhdGEuX3Jvd2lkKTsKKyAgICAgICAgLy8g ICAgIGlmIChpbmRleCA+IC0xKSB7CisgICAgICAgIC8vICAgICAgIHNlbGYuaGFuZGxlci50ZW1w X25ld19yb3dzLnNwbGljZShpbmRleCwgMSk7CisgICAgICAgIC8vICAgICB9CisgICAgICAgIC8v ICAgICBzZWxmLmRhdGFfc3RvcmUuYWRkZWRbc2VsZi5kYXRhX3N0b3JlLmFkZGVkX2luZGV4W19y b3dfaW5kZXhdXS5lcnIgPSB0cnVlOworICAgICAgICAvLyAgIH0gZWxzZSBpZiAoX3Jvd19pbmRl eCBpbiBzZWxmLmRhdGFfc3RvcmUudXBkYXRlZF9pbmRleCkgeworICAgICAgICAvLyAgICAgc2Vs Zi5kYXRhX3N0b3JlLnVwZGF0ZWRbc2VsZi5kYXRhX3N0b3JlLnVwZGF0ZWRfaW5kZXhbX3Jvd19p bmRleF1dLmVyciA9IHRydWU7CisgICAgICAgIC8vICAgfQorICAgICAgICAvLyB9CisgICAgICAg IHJldHVybjsKKyAgICAgIH0KKworICAgICAgZXZlbnRCdXMuZmlyZUV2ZW50KFFVRVJZX1RPT0xf RVZFTlRTLlNBVkVfREFUQV9ET05FLCB0cnVlKTsKKyAgICAgIGlmKCFfLnNpemUoZGF0YUNoYW5n ZVN0b3JlLmFkZGVkKSkgeworICAgICAgICAvLyBVcGRhdGUgdGhlIHJvd3MgaW4gYSBncmlkIGFm dGVyIGFkZGl0aW9uCisgICAgICAgIHJlc3BEYXRhLmRhdGEucXVlcnlfcmVzdWx0cy5mb3JFYWNo KChxcik9PnsKKyAgICAgICAgICBpZighXy5pc051bGwocXIucm93X2FkZGVkKSkgeworICAgICAg ICAgICAgbGV0IHJvd0NsaWVudFBLID0gT2JqZWN0LmtleXMocXIucm93X2FkZGVkKVswXTsKKyAg ICAgICAgICAgIHNldFJvd3MoKHByZXZSb3dzKT0+eworICAgICAgICAgICAgICBsZXQgcm93SWR4 ID0gcHJldlJvd3MuZmluZEluZGV4KChyKT0+cm93S2V5R2V0dGVyKHIpPT1yb3dDbGllbnRQSyk7 CisgICAgICAgICAgICAgIHJldHVybiBbCisgICAgICAgICAgICAgICAgLi4ucHJldlJvd3Muc2xp Y2UoMCwgcm93SWR4KSwKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAuLi5w cmV2Um93c1tyb3dJZHhdLAorICAgICAgICAgICAgICAgICAgLi4ucXIucm93X2FkZGVkW3Jvd0Ns aWVudFBLXSwKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIC4uLnByZXZSb3dz LnNsaWNlKHJvd0lkeCsxKSwKKyAgICAgICAgICAgICAgXTsKKyAgICAgICAgICAgIH0pOworICAg ICAgICAgIH0KKyAgICAgICAgfSk7CisgICAgICB9CisgICAgICBsZXQgZGVsZXRlZEtleXMgPSBP YmplY3Qua2V5cyhkYXRhQ2hhbmdlU3RvcmUuZGVsZXRlZCk7CisgICAgICBpZihkZWxldGVkS2V5 cy5sZW5ndGggPT0gcm93cy5sZW5ndGgpIHsKKyAgICAgICAgc2V0Um93cyhbXSk7CisgICAgICB9 CisgICAgICBlbHNlIGlmKGRlbGV0ZWRLZXlzLmxlbmd0aCA+IDApIHsKKyAgICAgICAgc2V0Um93 cygocHJldlJvd3MpPT57CisgICAgICAgICAgcmV0dXJuIHByZXZSb3dzLmZpbHRlcigocm93KT0+ eworICAgICAgICAgICAgcmV0dXJuIGRlbGV0ZWRLZXlzLmluZGV4T2Yocm93W3JzdS5jdXJyZW50 LmNsaWVudFBLXSkgPT0gLTE7CisgICAgICAgICAgfSk7CisgICAgICAgIH0pOworICAgICAgICBz ZXRDb2x1bW5zKGNvbHVtbnMpOworICAgICAgfQorICAgICAgZGlzcGF0Y2hEYXRhQ2hhbmdlKHt0 eXBlOiAncmVzZXQnfSk7CisgICAgICBzZXRTZWxlY3RlZFJvd3MobmV3IFNldCgpKTsKKyAgICAg IHNldFNlbGVjdGVkQ29sdW1ucyhuZXcgU2V0KCkpOworICAgICAgZXZlbnRCdXMuZmlyZUV2ZW50 KFFVRVJZX1RPT0xfRVZFTlRTLlNFVF9DT05ORUNUSU9OX1NUQVRVUywgcmVzcERhdGEuZGF0YS50 cmFuc2FjdGlvbl9zdGF0dXMpOworICAgICAgZXZlbnRCdXMuZmlyZUV2ZW50KFFVRVJZX1RPT0xf RVZFTlRTLlNFVF9NRVNTQUdFLCAnJyk7CisgICAgICBOb3RpZmllci5zdWNjZXNzKGdldHRleHQo J0RhdGEgc2F2ZWQgc3VjY2Vzc2Z1bGx5LicpKTsKKyAgICAgIGlmKHJlc3BEYXRhLmRhdGEudHJh bnNhY3Rpb25fc3RhdHVzID4gQ09OTkVDVElPTl9TVEFUVVMuVFJBTlNBQ1RJT05fU1RBVFVTX0lE TEUpIHsKKyAgICAgICAgTm90aWZpZXIuaW5mbyhnZXR0ZXh0KCdBdXRvLWNvbW1pdCBpcyBvZmYu IFlvdSBzdGlsbCBuZWVkIHRvIGNvbW1pdCBjaGFuZ2VzIHRvIHRoZSBkYXRhYmFzZS4nKSk7Cisg ICAgICB9CisgICAgfSBjYXRjaCAoZXJyb3IpIHsKKyAgICAgIGV2ZW50QnVzLmZpcmVFdmVudChR VUVSWV9UT09MX0VWRU5UUy5TQVZFX0RBVEFfRE9ORSwgZmFsc2UpOworICAgICAgZXZlbnRCdXMu ZmlyZUV2ZW50KFFVRVJZX1RPT0xfRVZFTlRTLkhBTkRMRV9BUElfRVJST1IsIGVycm9yLCB7Cisg ICAgICAgIGNoZWNrVHJhbnNhY3Rpb246IHRydWUsCisgICAgICB9KTsKKyAgICB9CisgICAgc2V0 TG9hZGVyVGV4dChudWxsKTsKKyAgfTsKKworICB1c2VFZmZlY3QoKCk9PnsKKyAgICBldmVudEJ1 cy5yZWdpc3Rlckxpc3RlbmVyKFFVRVJZX1RPT0xfRVZFTlRTLlRSSUdHRVJfU0FWRV9EQVRBLCB0 cmlnZ2VyU2F2ZURhdGEpOworICAgIHJldHVybiAoKT0+ZXZlbnRCdXMuZGVyZWdpc3Rlckxpc3Rl bmVyKFFVRVJZX1RPT0xfRVZFTlRTLlRSSUdHRVJfU0FWRV9EQVRBLCB0cmlnZ2VyU2F2ZURhdGEp OworICB9LCBbZGF0YUNoYW5nZVN0b3JlLCByb3dzLCBjb2x1bW5zXSk7CisKKyAgY29uc3QgY29w eURhdGFGdW5jID0gKHdpdGhIZWFkZXJzPWZhbHNlKT0+eworICAgIGNvbnN0IHF1ZXJ5VG9vbFBy ZWYgPSBxdWVyeVRvb2xDdHgucHJlZmVyZW5jZXMuc3FsZWRpdG9yOworICAgIGxldCBjb3B5RGF0 YSA9IG5ldyBDb3B5RGF0YSh7CisgICAgICBxdW90aW5nOiBxdWVyeVRvb2xQcmVmLnJlc3VsdHNf Z3JpZF9xdW90aW5nLAorICAgICAgcXVvdGVfY2hhcjogcXVlcnlUb29sUHJlZi5yZXN1bHRzX2dy aWRfcXVvdGVfY2hhciwKKyAgICAgIGZpZWxkX3NlcGFyYXRvcjogcXVlcnlUb29sUHJlZi5yZXN1 bHRzX2dyaWRfZmllbGRfc2VwYXJhdG9yLAorICAgIH0pOworICAgIGxldCBjb3B5Um93cz1bXSwg Y29weUNvbHM9W107CisgICAgaWYoc2VsZWN0ZWRSb3dzLnNpemUgPiAwKSB7CisgICAgICBjb3B5 Q29scyA9IGNvbHVtbnM7CisgICAgICBjb3B5Um93cyA9IHJvd3MuZmlsdGVyKChyKT0+c2VsZWN0 ZWRSb3dzLmhhcyhyW3JzdS5jdXJyZW50LmNsaWVudFBLXSkpOworICAgIH0gZWxzZSBpZihzZWxl Y3RlZENvbHVtbnMuc2l6ZSA+IDApIHsKKyAgICAgIC8qIFJvdyBudW0gY29sIGlzIGFkZGVkIGJ5 IFF1ZXJ5RGF0YUdyaWQsIGluZGV4IHdpbGwgYmUgKzEgKi8KKyAgICAgIGNvcHlDb2xzID0gXy5m aWx0ZXIoY29sdW1ucywgKF9jLCBpKT0+c2VsZWN0ZWRDb2x1bW5zLmhhcyhpKzEpKTsKKyAgICAg IGNvcHlSb3dzID0gXy5tYXAocm93cywgKHIpPT5fLnBpY2sociwgXy5tYXAoY29weUNvbHMsIChj KT0+Yy5rZXkpKSk7CisgICAgfSBlbHNlIGlmKHNlbGVjdGVkQ2VsbFswXSAmJiBzZWxlY3RlZENl bGxbMV0pIHsKKyAgICAgIGNvcHlDb2xzID0gW3NlbGVjdGVkQ2VsbFsxXV07CisgICAgICBjb3B5 Um93cyA9IFt7W3NlbGVjdGVkQ2VsbFsxXS5rZXldOiBzZWxlY3RlZENlbGxbMF1bc2VsZWN0ZWRD ZWxsWzFdLmtleV19XTsKKyAgICB9CisgICAgaWYoY29weVJvd3MubGVuZ3RoID4gMCAmJiBjb3B5 Q29scy5sZW5ndGggPjApIHsKKyAgICAgIGNvcHlEYXRhLmNvcHlSb3dzVG9Dc3YoY29weVJvd3Ms IGNvcHlDb2xzLCB3aXRoSGVhZGVycyk7CisgICAgfQorICB9OworCisgIGNvbnN0IHRyaWdnZXJE ZWxldGVSb3dzID0gKCk9PnsKKyAgICBpZighcXVlcnlEYXRhLmNhbl9lZGl0KSB7CisgICAgICBy ZXR1cm47CisgICAgfQorICAgIGxldCBhZGQgPSB7fTsKKyAgICBsZXQgcmVtb3ZlID0gW107Cisg ICAgbGV0IHNlbFJvd3NEYXRhID0gcm93cy5maWx0ZXIoKHIpPT5zZWxlY3RlZFJvd3MuaGFzKHJb cnN1LmN1cnJlbnQuY2xpZW50UEtdKSk7CisgICAgbGV0IHJlbW92ZU5ld2x5QWRkZWQgPSBbXTsK KyAgICBmb3IobGV0IHJvdyBvZiBzZWxSb3dzRGF0YSkgeworICAgICAgbGV0IGNsaWVudFBLID0g cm93W3JzdS5jdXJyZW50LmNsaWVudFBLXTsKKyAgICAgIGlmKGNsaWVudFBLIGluIGRhdGFDaGFu Z2VTdG9yZS5kZWxldGVkKSB7CisgICAgICAgIHJlbW92ZS5wdXNoKGNsaWVudFBLKTsKKyAgICAg IH0gZWxzZSB7CisgICAgICAgIC8qIElmIGRlbGV0ZWQgZnJvbSBuZXdseSBhZGRlZCAqLworICAg ICAgICBpZihjbGllbnRQSyBpbiBkYXRhQ2hhbmdlU3RvcmUuYWRkZWQpIHsKKyAgICAgICAgICBy ZW1vdmVOZXdseUFkZGVkLnB1c2goY2xpZW50UEspOworICAgICAgICB9IGVsc2UgeworICAgICAg ICAgIGxldCBwcmltYXJ5S2V5cyA9IHt9OworICAgICAgICAgIE9iamVjdC5rZXlzKHF1ZXJ5RGF0 YS5wcmltYXJ5X2tleXMpLmZvckVhY2goKGspPT57CisgICAgICAgICAgICBwcmltYXJ5S2V5c1tr XSA9IHJvd1trXTsKKyAgICAgICAgICB9KTsKKyAgICAgICAgICBhZGRbY2xpZW50UEtdID0gcHJp bWFyeUtleXM7CisgICAgICAgIH0KKyAgICAgIH0KKyAgICB9CisgICAgaWYocmVtb3ZlTmV3bHlB ZGRlZC5sZW5ndGggPiAwKSB7CisgICAgICBkaXNwYXRjaERhdGFDaGFuZ2UoeworICAgICAgICB0 eXBlOiAnYWRkZWQnLAorICAgICAgICByZW1vdmU6IHJlbW92ZU5ld2x5QWRkZWQsCisgICAgICB9 KTsKKyAgICAgIHNldFJvd3MoKHByZXYpPT57CisgICAgICAgIHJldHVybiBwcmV2LmZpbHRlcigo cik9PnJlbW92ZU5ld2x5QWRkZWQuaW5kZXhPZihyb3dLZXlHZXR0ZXIocikpPT0tMSk7CisgICAg ICB9KTsKKyAgICAgIHNldFNlbGVjdGVkUm93cygocHJldik9PnsKKyAgICAgICAgbGV0IG5ld1Jv d3MgPSBuZXcgU2V0KHByZXYpOworICAgICAgICByZW1vdmVOZXdseUFkZGVkLmZvckVhY2goKHJv d0lkKT0+eworICAgICAgICAgIGlmKG5ld1Jvd3MuaGFzKHJvd0lkKSkgeworICAgICAgICAgICAg bmV3Um93cy5kZWxldGUocm93SWQpOworICAgICAgICAgIH0KKyAgICAgICAgfSk7CisgICAgICAg IHJldHVybiBuZXdSb3dzOworICAgICAgfSk7CisgICAgfQorCisgICAgZGlzcGF0Y2hEYXRhQ2hh bmdlKHsKKyAgICAgIHR5cGU6ICdkZWxldGVkJywKKyAgICAgIGFkZDogYWRkLAorICAgICAgcmVt b3ZlOiByZW1vdmUsCisgICAgfSk7CisgIH07CisKKyAgdXNlRWZmZWN0KCgpPT57CisgICAgZXZl bnRCdXMucmVnaXN0ZXJMaXN0ZW5lcihRVUVSWV9UT09MX0VWRU5UUy5UUklHR0VSX0RFTEVURV9S T1dTLCB0cmlnZ2VyRGVsZXRlUm93cyk7CisgICAgZXZlbnRCdXMucmVnaXN0ZXJMaXN0ZW5lcihR VUVSWV9UT09MX0VWRU5UUy5DT1BZX0RBVEEsIGNvcHlEYXRhRnVuYyk7CisgICAgcmV0dXJuICgp PT57CisgICAgICBldmVudEJ1cy5kZXJlZ2lzdGVyTGlzdGVuZXIoUVVFUllfVE9PTF9FVkVOVFMu VFJJR0dFUl9ERUxFVEVfUk9XUywgdHJpZ2dlckRlbGV0ZVJvd3MpOworICAgICAgZXZlbnRCdXMu ZGVyZWdpc3Rlckxpc3RlbmVyKFFVRVJZX1RPT0xfRVZFTlRTLkNPUFlfREFUQSwgY29weURhdGFG dW5jKTsKKyAgICB9OworICB9LCBbc2VsZWN0ZWRSb3dzLCBxdWVyeURhdGEsIGRhdGFDaGFuZ2VT dG9yZV0pOworCisgIHVzZUVmZmVjdCgoKT0+eworICAgIGNvbnN0IHRyaWdnZXJBZGRSb3dzID0g KF9yb3dzKT0+eworICAgICAgbGV0IG5ld1Jvd3MgPSByc3UuY3VycmVudC5wcm9jZXNzUm93cyhf cm93cywgY29sdW1ucywgdHJ1ZSk7CisgICAgICBzZXRSb3dzKChwcmV2KT0+Wy4uLm5ld1Jvd3Ms IC4uLnByZXZdKTsKKyAgICAgIGxldCBhZGQgPSB7fTsKKyAgICAgIG5ld1Jvd3MuZm9yRWFjaCgo cm93KT0+eworICAgICAgICBhZGRbcm93S2V5R2V0dGVyKHJvdyldID0geworICAgICAgICAgIGVy cjogZmFsc2UsCisgICAgICAgIH07CisgICAgICB9KTsKKyAgICAgIGRpc3BhdGNoRGF0YUNoYW5n ZSh7CisgICAgICAgIHR5cGU6ICdhZGRlZCcsCisgICAgICAgIGFkZDogYWRkLAorICAgICAgfSk7 CisgICAgfTsKKyAgICBldmVudEJ1cy5yZWdpc3Rlckxpc3RlbmVyKFFVRVJZX1RPT0xfRVZFTlRT LlRSSUdHRVJfQUREX1JPV1MsIHRyaWdnZXJBZGRSb3dzKTsKKyAgICByZXR1cm4gKCk9PmV2ZW50 QnVzLmRlcmVnaXN0ZXJMaXN0ZW5lcihRVUVSWV9UT09MX0VWRU5UUy5UUklHR0VSX0FERF9ST1dT LCB0cmlnZ2VyQWRkUm93cyk7CisgIH0sIFtjb2x1bW5zXSk7CisKKyAgdXNlRWZmZWN0KCgpPT57 CisgICAgY29uc3QgcmVuZGVyR2VvbWV0cmllcyA9IChjb2x1bW4pPT57CisgICAgICBsZXQgc2Vs Um93c0RhdGEgPSByb3dzLmZpbHRlcigocik9PnNlbGVjdGVkUm93cy5oYXMocm93S2V5R2V0dGVy KHIpKSk7CisgICAgICBMYXlvdXRIZWxwZXIub3BlblRhYihxdWVyeVRvb2xDdHguZG9ja2VyLCB7 CisgICAgICAgIGlkOiBQQU5FTFMuR0VPTUVUUlksCisgICAgICAgIHRpdGxlOidHZW9tZXRyeSBW aWV3ZXInLAorICAgICAgICBjb250ZW50OiA8R2VvbWV0cnlWaWV3ZXIgcm93cz17c2VsUm93c0Rh dGF9IGNvbHVtbnM9e2NvbHVtbnN9IGNvbHVtbj17Y29sdW1ufSAvPiwKKyAgICAgICAgY2xvc2Fi bGU6IHRydWUsCisgICAgICB9LCBQQU5FTFMuTUVTU0FHRVMsICdhZnRlci10YWInLCB0cnVlKTsK KyAgICB9OworICAgIGV2ZW50QnVzLnJlZ2lzdGVyTGlzdGVuZXIoUVVFUllfVE9PTF9FVkVOVFMu VFJJR0dFUl9SRU5ERVJfR0VPTUVUUklFUywgcmVuZGVyR2VvbWV0cmllcyk7CisgICAgcmV0dXJu ICgpPT5ldmVudEJ1cy5kZXJlZ2lzdGVyTGlzdGVuZXIoUVVFUllfVE9PTF9FVkVOVFMuVFJJR0dF Ul9SRU5ERVJfR0VPTUVUUklFUywgcmVuZGVyR2VvbWV0cmllcyk7CisgIH0sIFtyb3dzLCBjb2x1 bW5zLCBzZWxlY3RlZFJvd3Muc2l6ZV0pOworCisgIGNvbnN0IGhhbmRsZVNjcm9sbCA9IGFzeW5j IChlKT0+eworICAgIGlmIChpc0xvYWRpbmdNb3JlIHx8ICFyc3UuY3VycmVudC5pc0F0Qm90dG9t KGUpKSByZXR1cm47CisKKyAgICBpZihxdWVyeURhdGEuaGFzX21vcmVfcm93cykgeworICAgICAg c2V0SXNMb2FkaW5nTW9yZSh0cnVlKTsKKyAgICAgIGNvbnN0IHJlcyA9IGF3YWl0IHJzdS5jdXJy ZW50LmdldE1vcmVSb3dzKCk7CisgICAgICBjb25zdCBuZXdSb3dzID0gcnN1LmN1cnJlbnQucHJv Y2Vzc1Jvd3MocmVzLmRhdGEuZGF0YS5yZXN1bHQsIGNvbHVtbnMpOworICAgICAgc2V0Um93cyhb Li4ucm93cywgLi4ubmV3Um93c10pOworICAgICAgc2V0UXVlcnlEYXRhKChwcmV2KT0+KHsKKyAg ICAgICAgLi4ucHJldiwKKyAgICAgICAgaGFzX21vcmVfcm93czogcmVzLmRhdGEuZGF0YS5oYXNf bW9yZV9yb3dzLAorICAgICAgICByb3dzX2ZldGNoZWRfdG86IHJlcy5kYXRhLmRhdGEucm93c19m ZXRjaGVkX3RvLAorICAgICAgfSkpOworICAgICAgc2V0SXNMb2FkaW5nTW9yZShmYWxzZSk7Cisg ICAgfQorICB9OworCisgIGNvbnN0IG9uUm93c0NoYW5nZSA9IChuZXdSb3dzLCBvdGhlckluZm8p PT57CisgICAgbGV0IHJvdyA9IG5ld1Jvd3Nbb3RoZXJJbmZvLmluZGV4ZXNbMF1dOworICAgIGxl dCBjbGllbnRQSyA9IHJvd0tleUdldHRlcihyb3cpOworCisgICAgaWYoY2xpZW50UEsgaW4gKGRh dGFDaGFuZ2VTdG9yZS5hZGRlZCB8fCB7fSkpIHsKKyAgICAgIC8qIE5vIG5lZWQgdG8gdHJhY2sg dGhpcyAqLworICAgIH0gZWxzZSBpZihjbGllbnRQSyBpbiAoZGF0YUNoYW5nZVN0b3JlLnVwZGF0 ZWQgfHwge30pKSB7CisgICAgICBkaXNwYXRjaERhdGFDaGFuZ2UoeworICAgICAgICB0eXBlOiAn dXBkYXRlZCcsCisgICAgICAgIGNsaWVudFBLOiBjbGllbnRQSywKKyAgICAgICAgcGF5bG9hZDog eworICAgICAgICAgIGRhdGE6IHtbb3RoZXJJbmZvLmNvbHVtbi5rZXldOiByb3dbb3RoZXJJbmZv LmNvbHVtbi5rZXldfSwKKyAgICAgICAgfQorICAgICAgfSk7CisgICAgfSBlbHNlIHsKKyAgICAg IGxldCBvbGRSb3cgPSByb3dzW290aGVySW5mby5pbmRleGVzWzBdXTsKKyAgICAgIC8qIElmIHRo ZXJlIGFyZSBubyBwcmltYXJ5IGtleXMsIHRoZW4gZGlzY2FyZCAqLworICAgICAgaWYocXVlcnlE YXRhLmNhbl9lZGl0KSB7CisgICAgICAgIGxldCBwcmltYXJ5S2V5cyA9IHt9OworICAgICAgICBP YmplY3Qua2V5cyhxdWVyeURhdGEucHJpbWFyeV9rZXlzKS5mb3JFYWNoKChrKT0+eworICAgICAg ICAgIHByaW1hcnlLZXlzW2tdID0gb2xkUm93W2tdOworICAgICAgICB9KTsKKyAgICAgICAgZGlz cGF0Y2hEYXRhQ2hhbmdlKHsKKyAgICAgICAgICB0eXBlOiAndXBkYXRlZCcsCisgICAgICAgICAg Y2xpZW50UEs6IGNsaWVudFBLLAorICAgICAgICAgIHBheWxvYWQ6IHsKKyAgICAgICAgICAgIGVy cjogZmFsc2UsCisgICAgICAgICAgICBkYXRhOiB7W290aGVySW5mby5jb2x1bW4ua2V5XTogcm93 W290aGVySW5mby5jb2x1bW4ua2V5XX0sCisgICAgICAgICAgICBwcmltYXJ5X2tleXM6IHByaW1h cnlLZXlzLAorICAgICAgICAgIH0KKyAgICAgICAgfSk7CisgICAgICB9CisgICAgfQorICAgIHNl dFJvd3MobmV3Um93cyk7CisgIH07CisKKyAgY29uc3Qgcm93S2V5R2V0dGVyID0gUmVhY3QudXNl Q2FsbGJhY2soKHJvdyk9PnJvd1tyc3UuY3VycmVudC5jbGllbnRQS10pOworICByZXR1cm4gKAor ICAgIDxCb3ggZGlzcGxheT0iZmxleCIgaGVpZ2h0PSIxMDAlIiBmbGV4RGlyZWN0aW9uPSJjb2x1 bW4iIHJlZj17Y29udGFpbmVyUmVmfT4KKyAgICAgIDxMb2FkZXIgbWVzc2FnZT17bG9hZGVyVGV4 dH0gLz4KKyAgICAgIDxMb2FkZXIgbWVzc2FnZT17aXNMb2FkaW5nTW9yZSA/IGdldHRleHQoJ0xv YWRpbmcgbW9yZSByb3dzLi4uJykgOiBudWxsfSBzdHlsZT17e3RvcDogJ3Vuc2V0JywgcmlnaHQ6 ICd1bnNldCcsIHBhZGRpbmc6ICcwLjVyZW0gMXJlbSd9fS8+CisgICAgICB7KGNvbHVtbnMubGVu Z3RoICE9IDAgfHwgcm93cy5sZW5ndGggIT0gMCkgJiYgPD4KKyAgICAgICAgPFJlc3VsdFNldFRv b2xiYXIgY29udGFpbmVyUmVmPXtjb250YWluZXJSZWZ9IGNhbkVkaXQ9e3F1ZXJ5RGF0YS5jYW5f ZWRpdH0vPgorICAgICAgICA8Qm94IGZsZXhHcm93PSIxIiBtaW5IZWlnaHQ9IjAiPgorICAgICAg ICAgIDxRdWVyeVRvb2xEYXRhR3JpZAorICAgICAgICAgICAgY29sdW1ucz17Y29sdW1uc30KKyAg ICAgICAgICAgIHJvd3M9e3Jvd3N9CisgICAgICAgICAgICB0b3RhbFJvd0NvdW50PXtxdWVyeURh dGE/LnJvd3NfYWZmZWN0ZWR9CisgICAgICAgICAgICByb3dzUmVzZXRLZXk9e3Jvd3NSZXNldEtl eX0KKyAgICAgICAgICAgIHJvd0tleUdldHRlcj17cm93S2V5R2V0dGVyfQorICAgICAgICAgICAg b25TY3JvbGw9e2hhbmRsZVNjcm9sbH0KKyAgICAgICAgICAgIG9uUm93c0NoYW5nZT17b25Sb3dz Q2hhbmdlfQorICAgICAgICAgICAgZGF0YUNoYW5nZVN0b3JlPXtkYXRhQ2hhbmdlU3RvcmV9Cisg ICAgICAgICAgICBzZWxlY3RlZFJvd3M9e3NlbGVjdGVkUm93c30KKyAgICAgICAgICAgIG9uU2Vs ZWN0ZWRSb3dzQ2hhbmdlPXtzZXRTZWxlY3RlZFJvd3N9CisgICAgICAgICAgICBzZWxlY3RlZENv bHVtbnM9e3NlbGVjdGVkQ29sdW1uc30KKyAgICAgICAgICAgIG9uU2VsZWN0ZWRDb2x1bW5zQ2hh bmdlPXtzZXRTZWxlY3RlZENvbHVtbnN9CisgICAgICAgICAgICBvblNlbGVjdGVkQ2VsbENoYW5n ZT17c2V0U2VsZWN0ZWRDZWxsfQorICAgICAgICAgIC8+CisgICAgICAgIDwvQm94PgorICAgICAg PC8+fQorICAgIDwvQm94PgorICApOworfQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vdG9vbHMv c3FsZWRpdG9yL3N0YXRpYy9qcy9jb21wb25lbnRzL3NlY3Rpb25zL1Jlc3VsdFNldFRvb2xiYXIu anN4IGIvd2ViL3BnYWRtaW4vdG9vbHMvc3FsZWRpdG9yL3N0YXRpYy9qcy9jb21wb25lbnRzL3Nl Y3Rpb25zL1Jlc3VsdFNldFRvb2xiYXIuanN4Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAwMC4uYzFlODZjMTFkCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vdG9vbHMv c3FsZWRpdG9yL3N0YXRpYy9qcy9jb21wb25lbnRzL3NlY3Rpb25zL1Jlc3VsdFNldFRvb2xiYXIu anN4CkBAIC0wLDAgKzEsMTcwIEBACisvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLworLy8gcGdBZG1pbiA0IC0gUG9zdGdyZVNR TCBUb29scworLy8KKy8vIENvcHlyaWdodCAoQykgMjAxMyAtIDIwMjIsIFRoZSBwZ0FkbWluIERl dmVsb3BtZW50IFRlYW0KKy8vIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgdGhlIFBv c3RncmVTUUwgTGljZW5jZQorLy8KKy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCitpbXBvcnQgUmVhY3QsIHt1c2VDb250ZXh0LCB1 c2VDYWxsYmFjaywgdXNlRWZmZWN0LCB1c2VTdGF0ZX0gZnJvbSAncmVhY3QnOworaW1wb3J0IHsg bWFrZVN0eWxlcyB9IGZyb20gJ0BtYXRlcmlhbC11aS9zdHlsZXMnOworaW1wb3J0IHsgQm94IH0g ZnJvbSAnQG1hdGVyaWFsLXVpL2NvcmUnOworaW1wb3J0IHsgUGdCdXR0b25Hcm91cCwgUGdJY29u QnV0dG9uIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vc3RhdGljL2pzL2NvbXBvbmVudHMvQnV0 dG9ucyc7CitpbXBvcnQgS2V5Ym9hcmRBcnJvd0Rvd25JY29uIGZyb20gJ0BtYXRlcmlhbC11aS9p Y29ucy9LZXlib2FyZEFycm93RG93bic7CitpbXBvcnQgUGxheWxpc3RBZGRSb3VuZGVkSWNvbiBm cm9tICdAbWF0ZXJpYWwtdWkvaWNvbnMvUGxheWxpc3RBZGRSb3VuZGVkJzsKK2ltcG9ydCBGaWxl Q29weVJvdW5kZWRJY29uIGZyb20gJ0BtYXRlcmlhbC11aS9pY29ucy9GaWxlQ29weVJvdW5kZWQn OworaW1wb3J0IERlbGV0ZVJvdW5kZWRJY29uIGZyb20gJ0BtYXRlcmlhbC11aS9pY29ucy9EZWxl dGVSb3VuZGVkJzsKK2ltcG9ydCB7IFBhc3RlSWNvbiwgU2F2ZURhdGFJY29uIH0gZnJvbSAnLi4v Li4vLi4vLi4vLi4vLi4vc3RhdGljL2pzL2NvbXBvbmVudHMvRXh0ZXJuYWxJY29uJzsKK2ltcG9y dCBHZXRBcHBSb3VuZGVkSWNvbiBmcm9tICdAbWF0ZXJpYWwtdWkvaWNvbnMvR2V0QXBwUm91bmRl ZCc7CitpbXBvcnQge1FVRVJZX1RPT0xfRVZFTlRTfSBmcm9tICcuLi9RdWVyeVRvb2xDb25zdGFu dHMnOworaW1wb3J0IHsgUXVlcnlUb29sQ29udGV4dCwgUXVlcnlUb29sRXZlbnRzQ29udGV4dCB9 IGZyb20gJy4uL1F1ZXJ5VG9vbENvbXBvbmVudCc7CitpbXBvcnQgeyBQZ01lbnUsIFBnTWVudUl0 ZW0gfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9zdGF0aWMvanMvY29tcG9uZW50cy9NZW51JzsK K2ltcG9ydCBnZXR0ZXh0IGZyb20gJ3NvdXJjZXMvZ2V0dGV4dCc7CitpbXBvcnQgeyB1c2VLZXli b2FyZFNob3J0Y3V0cyB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL3N0YXRpYy9qcy9jdXN0b21f aG9va3MnOworaW1wb3J0IHtzaG9ydGN1dF9rZXl9IGZyb20gJ3NvdXJjZXMva2V5Ym9hcmRfc2hv cnRjdXRzJzsKK2ltcG9ydCBDb3B5RGF0YSBmcm9tICcuLi9RdWVyeVRvb2xEYXRhR3JpZC9Db3B5 RGF0YSc7CitpbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnOworaW1wb3J0IEN1c3Rv bVByb3BUeXBlcyBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9zdGF0aWMvanMvY3VzdG9tX3Byb3Bf dHlwZXMnOworCitjb25zdCB1c2VTdHlsZXMgPSBtYWtlU3R5bGVzKCh0aGVtZSk9Pih7CisgIHJv b3Q6IHsKKyAgICBwYWRkaW5nOiAnMnB4JywKKyAgICBkaXNwbGF5OiAnZmxleCcsCisgICAgYWxp Z25JdGVtczogJ2NlbnRlcicsCisgICAgZ2FwOiAnNHB4JywKKyAgICBiYWNrZ3JvdW5kQ29sb3I6 IHRoZW1lLm90aGVyVmFycy5lZGl0b3JUb29sYmFyQmcsCisgICAgLi4udGhlbWUubWl4aW5zLnBh bmVsQm9yZGVyLmJvdHRvbSwKKyAgfSwKK30pKTsKKworZXhwb3J0IGZ1bmN0aW9uIFJlc3VsdFNl dFRvb2xiYXIoe2NvbnRhaW5lclJlZiwgY2FuRWRpdH0pIHsKKyAgY29uc3QgY2xhc3NlcyA9IHVz ZVN0eWxlcygpOworICBjb25zdCBldmVudEJ1cyA9IHVzZUNvbnRleHQoUXVlcnlUb29sRXZlbnRz Q29udGV4dCk7CisgIGNvbnN0IHF1ZXJ5VG9vbEN0eCA9IHVzZUNvbnRleHQoUXVlcnlUb29sQ29u dGV4dCk7CisKKyAgY29uc3QgW2J1dHRvbnNEaXNhYmxlZCwgc2V0QnV0dG9uc0Rpc2FibGVkXSA9 IHVzZVN0YXRlKHsKKyAgICAnc2F2ZS1kYXRhJzogdHJ1ZSwKKyAgICAnZGVsZXRlLXJvd3MnOiB0 cnVlLAorICAgICdjb3B5LXJvd3MnOiB0cnVlLAorICB9KTsKKyAgY29uc3QgW21lbnVPcGVuSWQs IHNldE1lbnVPcGVuSWRdID0gUmVhY3QudXNlU3RhdGUobnVsbCk7CisgIGNvbnN0IFtjaGVja2Vk TWVudUl0ZW1zLCBzZXRDaGVja2VkTWVudUl0ZW1zXSA9IFJlYWN0LnVzZVN0YXRlKHt9KTsKKyAg LyogTWVudSBidXR0b24gcmVmcyAqLworICBjb25zdCBjb3B5TWVudVJlZiA9IFJlYWN0LnVzZVJl ZihudWxsKTsKKworICBjb25zdCBxdWVyeVRvb2xQcmVmID0gcXVlcnlUb29sQ3R4LnByZWZlcmVu Y2VzLnNxbGVkaXRvcjsKKworICBjb25zdCBzZXREaXNhYmxlQnV0dG9uID0gdXNlQ2FsbGJhY2so KG5hbWUsIGRpc2FibGU9dHJ1ZSk9PnsKKyAgICBzZXRCdXR0b25zRGlzYWJsZWQoKHByZXYpPT4o ey4uLnByZXYsIFtuYW1lXTogZGlzYWJsZX0pKTsKKyAgfSwgW10pOworICBjb25zdCBzYXZlRGF0 YSA9IHVzZUNhbGxiYWNrKCgpPT57CisgICAgZXZlbnRCdXMuZmlyZUV2ZW50KFFVRVJZX1RPT0xf RVZFTlRTLlRSSUdHRVJfU0FWRV9EQVRBKTsKKyAgfSwgW10pOworICBjb25zdCBkZWxldGVSb3dz ID0gdXNlQ2FsbGJhY2soKCk9PnsKKyAgICBldmVudEJ1cy5maXJlRXZlbnQoUVVFUllfVE9PTF9F VkVOVFMuVFJJR0dFUl9ERUxFVEVfUk9XUyk7CisgIH0sIFtdKTsKKyAgY29uc3QgcGFzdGVSb3dz ID0gdXNlQ2FsbGJhY2soYXN5bmMgKCk9PnsKKyAgICBsZXQgY29weVV0aWxzID0gbmV3IENvcHlE YXRhKHsKKyAgICAgIHF1b3Rpbmc6IHF1ZXJ5VG9vbFByZWYucmVzdWx0c19ncmlkX3F1b3Rpbmcs CisgICAgICBxdW90ZV9jaGFyOiBxdWVyeVRvb2xQcmVmLnJlc3VsdHNfZ3JpZF9xdW90ZV9jaGFy LAorICAgICAgZmllbGRfc2VwYXJhdG9yOiBxdWVyeVRvb2xQcmVmLnJlc3VsdHNfZ3JpZF9maWVs ZF9zZXBhcmF0b3IsCisgICAgfSk7CisgICAgbGV0IGNvcGllZFJvd3MgPSBhd2FpdCBjb3B5VXRp bHMuZ2V0Q29waWVkUm93cygpOworICAgIGV2ZW50QnVzLmZpcmVFdmVudChRVUVSWV9UT09MX0VW RU5UUy5UUklHR0VSX0FERF9ST1dTLCBjb3BpZWRSb3dzKTsKKyAgfSwgW3F1ZXJ5VG9vbFByZWZd KTsKKyAgY29uc3QgY29weURhdGEgPSAoKT0+eworICAgIGV2ZW50QnVzLmZpcmVFdmVudChRVUVS WV9UT09MX0VWRU5UUy5DT1BZX0RBVEEsIGNoZWNrZWRNZW51SXRlbXNbJ2NvcHlfd2l0aF9oZWFk ZXJzJ10pOworICB9OworICBjb25zdCBhZGRSb3cgPSB1c2VDYWxsYmFjaygoKT0+eworICAgIGV2 ZW50QnVzLmZpcmVFdmVudChRVUVSWV9UT09MX0VWRU5UUy5UUklHR0VSX0FERF9ST1dTLCBbW11d KTsKKyAgfSwgW10pOworICBjb25zdCBkb3dubG9hZFJlc3VsdCA9IHVzZUNhbGxiYWNrKCgpPT57 CisgICAgZXZlbnRCdXMuZmlyZUV2ZW50KFFVRVJZX1RPT0xfRVZFTlRTLlRSSUdHRVJfU0FWRV9S RVNVTFRTKTsKKyAgfSwgW10pOworCisgIGNvbnN0IG9wZW5NZW51ID0gdXNlQ2FsbGJhY2soKGUp PT57CisgICAgc2V0TWVudU9wZW5JZChlLmN1cnJlbnRUYXJnZXQubmFtZSk7CisgIH0sIFtdKTsK KyAgY29uc3QgaGFuZGxlTWVudUNsb3NlID0gdXNlQ2FsbGJhY2soKCk9PnsKKyAgICBzZXRNZW51 T3BlbklkKG51bGwpOworICB9LCBbXSk7CisKKyAgY29uc3QgY2hlY2tNZW51Q2xpY2sgPSB1c2VD YWxsYmFjaygoZSk9PnsKKyAgICBzZXRDaGVja2VkTWVudUl0ZW1zKChwcmV2KT0+eworICAgICAg bGV0IG5ld1ZhbCA9ICFwcmV2W2UudmFsdWVdOworICAgICAgcmV0dXJuIHsKKyAgICAgICAgLi4u cHJldiwKKyAgICAgICAgW2UudmFsdWVdOiBuZXdWYWwsCisgICAgICB9OworICAgIH0pOworICB9 LCBbXSk7CisKKyAgdXNlRWZmZWN0KCgpPT57CisgICAgZXZlbnRCdXMucmVnaXN0ZXJMaXN0ZW5l cihRVUVSWV9UT09MX0VWRU5UUy5EQVRBR1JJRF9DSEFOR0VELCAoaXNEaXJ0eSk9PnsKKyAgICAg IHNldERpc2FibGVCdXR0b24oJ3NhdmUtZGF0YScsICFpc0RpcnR5KTsKKyAgICB9KTsKKyAgICBl dmVudEJ1cy5yZWdpc3Rlckxpc3RlbmVyKFFVRVJZX1RPT0xfRVZFTlRTLlNFTEVDVEVEX1JPV1Nf Q0hBTkdFRCwgKGNvdW50KT0+eworICAgICAgc2V0RGlzYWJsZUJ1dHRvbignZGVsZXRlLXJvd3Mn LCAhY291bnQpOworICAgICAgc2V0RGlzYWJsZUJ1dHRvbignY29weS1yb3dzJywgIWNvdW50KTsK KyAgICB9KTsKKyAgfSwgW10pOworCisgIHVzZUVmZmVjdCgoKT0+eworICAgIGV2ZW50QnVzLnJl Z2lzdGVyTGlzdGVuZXIoUVVFUllfVE9PTF9FVkVOVFMuVFJJR0dFUl9DT1BZX0RBVEEsIGNvcHlE YXRhKTsKKyAgICByZXR1cm4gKCk9PmV2ZW50QnVzLmRlcmVnaXN0ZXJMaXN0ZW5lcihRVUVSWV9U T09MX0VWRU5UUy5UUklHR0VSX0NPUFlfREFUQSwgY29weURhdGEpOworICB9LCBbY2hlY2tlZE1l bnVJdGVtc1snY29weV93aXRoX2hlYWRlcnMnXV0pOworCisgIHVzZUtleWJvYXJkU2hvcnRjdXRz KFsKKyAgICB7CisgICAgICBzaG9ydGN1dDogcXVlcnlUb29sUHJlZi5zYXZlX2RhdGEsCisgICAg ICBvcHRpb25zOiB7CisgICAgICAgIGNhbGxiYWNrOiAoKT0+e3NhdmVEYXRhKCk7fQorICAgICAg fQorICAgIH0sCisgICAgeworICAgICAgc2hvcnRjdXQ6IHF1ZXJ5VG9vbFByZWYuZG93bmxvYWRf cmVzdWx0cywKKyAgICAgIG9wdGlvbnM6IHsKKyAgICAgICAgY2FsbGJhY2s6IChlKT0+e2UucHJl dmVudERlZmF1bHQoKTsgZG93bmxvYWRSZXN1bHQoKTt9CisgICAgICB9CisgICAgfSwKKyAgXSwg Y29udGFpbmVyUmVmKTsKKworICByZXR1cm4gKAorICAgIDw+CisgICAgICA8Qm94IGNsYXNzTmFt ZT17Y2xhc3Nlcy5yb290fT4KKyAgICAgICAgPFBnQnV0dG9uR3JvdXAgc2l6ZT0ic21hbGwiPgor ICAgICAgICAgIDxQZ0ljb25CdXR0b24gdGl0bGU9e2dldHRleHQoJ0FkZCByb3cnKX0gaWNvbj17 PFBsYXlsaXN0QWRkUm91bmRlZEljb24gc3R5bGU9e3toZWlnaHQ6ICd1bnNldCd9fS8+fQorICAg ICAgICAgICAgYWNjZXNza2V5PXtzaG9ydGN1dF9rZXkocXVlcnlUb29sUHJlZi5idG5fYWRkX3Jv dyl9IGRpc2FibGVkPXshY2FuRWRpdH0gb25DbGljaz17YWRkUm93fSAvPgorICAgICAgICAgIDxQ Z0ljb25CdXR0b24gdGl0bGU9e2dldHRleHQoJ0NvcHknKX0gaWNvbj17PEZpbGVDb3B5Um91bmRl ZEljb24gLz59CisgICAgICAgICAgICBhY2Nlc3NrZXk9e3Nob3J0Y3V0X2tleShxdWVyeVRvb2xQ cmVmLmJ0bl9jb3B5X3Jvdyl9IGRpc2FibGVkPXtidXR0b25zRGlzYWJsZWRbJ2NvcHktcm93cydd fSBvbkNsaWNrPXtjb3B5RGF0YX0gLz4KKyAgICAgICAgICA8UGdJY29uQnV0dG9uIHRpdGxlPXtn ZXR0ZXh0KCdDb3B5IG9wdGlvbnMnKX0gaWNvbj17PEtleWJvYXJkQXJyb3dEb3duSWNvbiAvPn0g c3BsaXRCdXR0b24KKyAgICAgICAgICAgIG5hbWU9Im1lbnUtY29weWhlYWRlciIgcmVmPXtjb3B5 TWVudVJlZn0gb25DbGljaz17b3Blbk1lbnV9IC8+CisgICAgICAgICAgPFBnSWNvbkJ1dHRvbiB0 aXRsZT17Z2V0dGV4dCgnUGFzdGUnKX0gaWNvbj17PFBhc3RlSWNvbiAvPn0KKyAgICAgICAgICAg IGFjY2Vzc2tleT17c2hvcnRjdXRfa2V5KHF1ZXJ5VG9vbFByZWYuYnRuX3Bhc3RlX3Jvdyl9IGRp c2FibGVkPXshY2FuRWRpdH0gb25DbGljaz17cGFzdGVSb3dzfSAvPgorICAgICAgICAgIDxQZ0lj b25CdXR0b24gdGl0bGU9e2dldHRleHQoJ0RlbGV0ZScpfSBpY29uPXs8RGVsZXRlUm91bmRlZElj b24gLz59CisgICAgICAgICAgICBhY2Nlc3NrZXk9e3Nob3J0Y3V0X2tleShxdWVyeVRvb2xQcmVm LmJ0bl9kZWxldGVfcm93KX0gZGlzYWJsZWQ9e2J1dHRvbnNEaXNhYmxlZFsnZGVsZXRlLXJvd3Mn XSB8fCAhY2FuRWRpdH0gb25DbGljaz17ZGVsZXRlUm93c30gLz4KKyAgICAgICAgPC9QZ0J1dHRv bkdyb3VwPgorICAgICAgICA8UGdCdXR0b25Hcm91cCBzaXplPSJzbWFsbCI+CisgICAgICAgICAg PFBnSWNvbkJ1dHRvbiB0aXRsZT17Z2V0dGV4dCgnU2F2ZSBEYXRhIENoYW5nZXMnKX0gaWNvbj17 PFNhdmVEYXRhSWNvbiAvPn0KKyAgICAgICAgICAgIHNob3J0Y3V0PXtxdWVyeVRvb2xQcmVmLnNh dmVfZGF0YX0gZGlzYWJsZWQ9e2J1dHRvbnNEaXNhYmxlZFsnc2F2ZS1kYXRhJ10gfHwgIWNhbkVk aXR9IG9uQ2xpY2s9e3NhdmVEYXRhfS8+CisgICAgICAgIDwvUGdCdXR0b25Hcm91cD4KKyAgICAg ICAgPFBnQnV0dG9uR3JvdXAgc2l6ZT0ic21hbGwiPgorICAgICAgICAgIDxQZ0ljb25CdXR0b24g dGl0bGU9e2dldHRleHQoJ1NhdmUgcmVzdWx0cyB0byBmaWxlJyl9IGljb249ezxHZXRBcHBSb3Vu ZGVkSWNvbiAvPn0KKyAgICAgICAgICAgIG9uQ2xpY2s9e2Rvd25sb2FkUmVzdWx0fSBzaG9ydGN1 dD17cXVlcnlUb29sUHJlZi5kb3dubG9hZF9yZXN1bHRzfS8+CisgICAgICAgIDwvUGdCdXR0b25H cm91cD4KKyAgICAgIDwvQm94PgorICAgICAgPFBnTWVudQorICAgICAgICBhbmNob3JSZWY9e2Nv cHlNZW51UmVmfQorICAgICAgICBvcGVuPXttZW51T3BlbklkPT0nbWVudS1jb3B5aGVhZGVyJ30K KyAgICAgICAgb25DbG9zZT17aGFuZGxlTWVudUNsb3NlfQorICAgICAgPgorICAgICAgICA8UGdN ZW51SXRlbSBoYXNDaGVjayB2YWx1ZT0iY29weV93aXRoX2hlYWRlcnMiIGNoZWNrZWQ9e2NoZWNr ZWRNZW51SXRlbXNbJ2NvcHlfd2l0aF9oZWFkZXJzJ119IG9uQ2xpY2s9e2NoZWNrTWVudUNsaWNr fT5Db3B5IHdpdGggaGVhZGVyczwvUGdNZW51SXRlbT4KKyAgICAgIDwvUGdNZW51PgorICAgIDwv PgorICApOworfQorCitSZXN1bHRTZXRUb29sYmFyLnByb3BUeXBlcyA9IHsKKyAgY29udGFpbmVy UmVmOiBDdXN0b21Qcm9wVHlwZXMucmVmLAorICBjYW5FZGl0OiBQcm9wVHlwZXMuYm9vbCwKK307 CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi90b29scy9zcWxlZGl0b3Ivc3RhdGljL2pzL2NvbXBv bmVudHMvc2VjdGlvbnMvU3RhdHVzQmFyLmpzeCBiL3dlYi9wZ2FkbWluL3Rvb2xzL3NxbGVkaXRv ci9zdGF0aWMvanMvY29tcG9uZW50cy9zZWN0aW9ucy9TdGF0dXNCYXIuanN4Cm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMC4uYTIyY2FiNTY2Ci0tLSAvZGV2L251bGwKKysrIGIv d2ViL3BnYWRtaW4vdG9vbHMvc3FsZWRpdG9yL3N0YXRpYy9qcy9jb21wb25lbnRzL3NlY3Rpb25z L1N0YXR1c0Jhci5qc3gKQEAgLTAsMCArMSwxMjEgQEAKKworLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworLy8KKy8vIHBnQWRtaW4g NCAtIFBvc3RncmVTUUwgVG9vbHMKKy8vCisvLyBDb3B5cmlnaHQgKEMpIDIwMTMgLSAyMDIyLCBU aGUgcGdBZG1pbiBEZXZlbG9wbWVudCBUZWFtCisvLyBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2Vk IHVuZGVyIHRoZSBQb3N0Z3JlU1FMIExpY2VuY2UKKy8vCisvLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworaW1wb3J0IFJlYWN0LCB7 IHVzZUVmZmVjdCwgdXNlU3RhdGUsIHVzZUNvbnRleHQgfSAgZnJvbSAncmVhY3QnOworaW1wb3J0 IHsgbWFrZVN0eWxlcyB9IGZyb20gJ0BtYXRlcmlhbC11aS9zdHlsZXMnOworaW1wb3J0IHsgQm94 IH0gZnJvbSAnQG1hdGVyaWFsLXVpL2NvcmUnOworaW1wb3J0IGNsc3ggZnJvbSAnY2xzeCc7Citp bXBvcnQgXyBmcm9tICdsb2Rhc2gnOworaW1wb3J0IHsgUVVFUllfVE9PTF9FVkVOVFMgfSBmcm9t ICcuLi9RdWVyeVRvb2xDb25zdGFudHMnOworaW1wb3J0IHsgdXNlU3RvcHdhdGNoIH0gZnJvbSAn Li4vLi4vLi4vLi4vLi4vLi4vc3RhdGljL2pzL2N1c3RvbV9ob29rcyc7CitpbXBvcnQgeyBRdWVy eVRvb2xFdmVudHNDb250ZXh0IH0gZnJvbSAnLi4vUXVlcnlUb29sQ29tcG9uZW50JzsKKworCitj b25zdCB1c2VTdHlsZXMgPSBtYWtlU3R5bGVzKCh0aGVtZSk9Pih7CisgIHJvb3Q6IHsKKyAgICBk aXNwbGF5OiAnZmxleCcsCisgICAgYWxpZ25JdGVtczogJ2NlbnRlcicsCisgICAgLi4udGhlbWUu bWl4aW5zLnBhbmVsQm9yZGVyLnRvcCwKKyAgICBmbGV4V3JhcDogJ3dyYXAnLAorICB9LAorICBw YWRkaW5nOiB7CisgICAgcGFkZGluZzogJzJweCAxMnB4JywKKyAgfSwKKyAgZGl2aWRlcjogewor ICAgIC4uLnRoZW1lLm1peGlucy5wYW5lbEJvcmRlci5yaWdodCwKKyAgfSwKKyAgbWxBdXRvOiB7 CisgICAgbWFyZ2luTGVmdDogJ2F1dG8nLAorICB9Cit9KSk7CisKK2V4cG9ydCBmdW5jdGlvbiBT dGF0dXNCYXIoKSB7CisgIGNvbnN0IGNsYXNzZXMgPSB1c2VTdHlsZXMoKTsKKyAgY29uc3QgZXZl bnRCdXMgPSB1c2VDb250ZXh0KFF1ZXJ5VG9vbEV2ZW50c0NvbnRleHQpOworICBjb25zdCBbcG9z aXRpb24sIHNldFBvc2l0aW9uXSA9IHVzZVN0YXRlKFsxLCAxXSk7CisgIGNvbnN0IFtsYXN0VGFz a1RleHQsIHNldExhc3RUYXNrVGV4dF0gPSB1c2VTdGF0ZShudWxsKTsKKyAgY29uc3QgW3Jvd3ND b3VudCwgc2V0Um93c0NvdW50XSA9IHVzZVN0YXRlKFswLCAwXSk7CisgIGNvbnN0IFtzZWxlY3Rl ZFJvd3NDb3VudCwgc2V0U2VsZWN0ZWRSb3dzQ291bnRdID0gdXNlU3RhdGUoMCk7CisgIGNvbnN0 IFtkYXRhUm93Q2hhbmdlQ291bnRzLCBzZXREYXRhUm93Q2hhbmdlQ291bnRzXSA9IHVzZVN0YXRl KHsKKyAgICBpc0RpcnR5OiBmYWxzZSwKKyAgICBhZGRlZDogMCwKKyAgICB1cGRhdGVkOiAwLAor ICAgIGRlbGV0ZWQ6IDAsCisgIH0pOworICBjb25zdCB7c2Vjb25kcywgbWludXRlcywgaG91cnMs IHN0YXJ0OnN0YXJ0VGltZXIsIHBhdXNlOnBhdXNlVGltZXIsIHJlc2V0OnJlc2V0VGltZXJ9ID0g dXNlU3RvcHdhdGNoKHt9KTsKKworICB1c2VFZmZlY3QoKCk9PnsKKyAgICBldmVudEJ1cy5yZWdp c3Rlckxpc3RlbmVyKFFVRVJZX1RPT0xfRVZFTlRTLkNVUlNPUl9BQ1RJVklUWSwgKG5ld1Bvcyk9 PnsKKyAgICAgIHNldFBvc2l0aW9uKG5ld1Bvc3x8WzEsIDFdKTsKKyAgICB9KTsKKyAgICBldmVu dEJ1cy5yZWdpc3Rlckxpc3RlbmVyKFFVRVJZX1RPT0xfRVZFTlRTLkVYRUNVVElPTl9TVEFSVCwg KCk9PnsKKyAgICAgIHJlc2V0VGltZXIoKTsKKyAgICAgIHN0YXJ0VGltZXIoKTsKKyAgICAgIHNl dExhc3RUYXNrVGV4dCgnV2FpdGluZyBmb3IgdGhlIHF1ZXJ5IHRvIGNvbXBsZXRlLi4uJyk7Cisg ICAgfSk7CisgICAgZXZlbnRCdXMucmVnaXN0ZXJMaXN0ZW5lcihRVUVSWV9UT09MX0VWRU5UUy5F WEVDVVRJT05fRU5ELCAoKT0+eworICAgICAgcGF1c2VUaW1lcigpOworICAgICAgc2V0TGFzdFRh c2tUZXh0KCdRdWVyeSBjb21wbGV0ZScpOworICAgIH0pOworICAgIGV2ZW50QnVzLnJlZ2lzdGVy TGlzdGVuZXIoUVVFUllfVE9PTF9FVkVOVFMuVEFTS19TVEFSVCwgKHRhc2tUZXh0KT0+eworICAg ICAgcmVzZXRUaW1lcigpOworICAgICAgc3RhcnRUaW1lcigpOworICAgICAgc2V0TGFzdFRhc2tU ZXh0KHRhc2tUZXh0KTsKKyAgICB9KTsKKyAgICBldmVudEJ1cy5yZWdpc3Rlckxpc3RlbmVyKFFV RVJZX1RPT0xfRVZFTlRTLlRBU0tfRU5ELCAodGFza1RleHQpPT57CisgICAgICBwYXVzZVRpbWVy KCk7CisgICAgICBzZXRMYXN0VGFza1RleHQodGFza1RleHQpOworICAgIH0pOworICAgIGV2ZW50 QnVzLnJlZ2lzdGVyTGlzdGVuZXIoUVVFUllfVE9PTF9FVkVOVFMuUk9XU19GRVRDSEVELCAoZmV0 Y2hlZCwgdG90YWwpPT57CisgICAgICBzZXRSb3dzQ291bnQoW2ZldGNoZWR8fDAsIHRvdGFsfHww XSk7CisgICAgfSk7CisgICAgZXZlbnRCdXMucmVnaXN0ZXJMaXN0ZW5lcihRVUVSWV9UT09MX0VW RU5UUy5TRUxFQ1RFRF9ST1dTX0NIQU5HRUQsIChjb3VudCk9PnsKKyAgICAgIHNldFNlbGVjdGVk Um93c0NvdW50KGNvdW50KTsKKyAgICB9KTsKKyAgICBldmVudEJ1cy5yZWdpc3Rlckxpc3RlbmVy KFFVRVJZX1RPT0xfRVZFTlRTLkRBVEFHUklEX0NIQU5HRUQsIChfaXNEaXJ0eSwgZGF0YUNoYW5n ZVN0b3JlKT0+eworICAgICAgc2V0RGF0YVJvd0NoYW5nZUNvdW50cyh7CisgICAgICAgIGFkZGVk OiBPYmplY3Qua2V5cyhkYXRhQ2hhbmdlU3RvcmUuYWRkZWR8fHt9KS5sZW5ndGgsCisgICAgICAg IHVwZGF0ZWQ6IE9iamVjdC5rZXlzKGRhdGFDaGFuZ2VTdG9yZS51cGRhdGVkfHx7fSkubGVuZ3Ro LAorICAgICAgICBkZWxldGVkOiBPYmplY3Qua2V5cyhkYXRhQ2hhbmdlU3RvcmUuZGVsZXRlZHx8 e30pLmxlbmd0aCwKKyAgICAgIH0pOworICAgIH0pOworICB9LCBbXSk7CisKKworICBsZXQgc3Rh Z2VkVGV4dCA9ICcnOworICBpZihkYXRhUm93Q2hhbmdlQ291bnRzLmFkZGVkID4gMCkgeworICAg IHN0YWdlZFRleHQgKz0gYCBBZGRlZDogJHtkYXRhUm93Q2hhbmdlQ291bnRzLmFkZGVkfTtgOwor ICB9CisgIGlmKGRhdGFSb3dDaGFuZ2VDb3VudHMudXBkYXRlZCA+IDApIHsKKyAgICBzdGFnZWRU ZXh0ICs9IGAgVXBkYXRlZDogJHtkYXRhUm93Q2hhbmdlQ291bnRzLnVwZGF0ZWR9O2A7CisgIH0K KyAgaWYoZGF0YVJvd0NoYW5nZUNvdW50cy5kZWxldGVkID4gMCkgeworICAgIHN0YWdlZFRleHQg Kz0gYCBEZWxldGVkOiAke2RhdGFSb3dDaGFuZ2VDb3VudHMuZGVsZXRlZH07YDsKKyAgfQorCisg IHJldHVybiAoCisgICAgPEJveCBjbGFzc05hbWU9e2NsYXNzZXMucm9vdH0+CisgICAgICA8Qm94 IGNsYXNzTmFtZT17Y2xzeChjbGFzc2VzLnBhZGRpbmcsIGNsYXNzZXMuZGl2aWRlcil9PlRvdGFs IHJvd3M6IHtyb3dzQ291bnRbMF19IG9mIHtyb3dzQ291bnRbMV19PC9Cb3g+CisgICAgICB7bGFz dFRhc2tUZXh0ICYmCisgICAgICAgIDxCb3ggY2xhc3NOYW1lPXtjbHN4KGNsYXNzZXMucGFkZGlu ZywgY2xhc3Nlcy5kaXZpZGVyKX0+e2xhc3RUYXNrVGV4dH0ge2hvdXJzLnRvU3RyaW5nKCkucGFk U3RhcnQoMiwgJzAnKX06e21pbnV0ZXMudG9TdHJpbmcoKS5wYWRTdGFydCgyLCAnMCcpfTp7c2Vj b25kcy50b1N0cmluZygpLnBhZFN0YXJ0KDIsICcwJyl9PC9Cb3g+CisgICAgICB9CisgICAgICB7 IWxhc3RUYXNrVGV4dCAmJiAhXy5pc051bGwobGFzdFRhc2tUZXh0KSAmJgorICAgICAgICA8Qm94 IGNsYXNzTmFtZT17Y2xzeChjbGFzc2VzLnBhZGRpbmcsIGNsYXNzZXMuZGl2aWRlcil9PntsYXN0 VGFza1RleHR9IHtob3Vycy50b1N0cmluZygpLnBhZFN0YXJ0KDIsICcwJyl9OnttaW51dGVzLnRv U3RyaW5nKCkucGFkU3RhcnQoMiwgJzAnKX06e3NlY29uZHMudG9TdHJpbmcoKS5wYWRTdGFydCgy LCAnMCcpfTwvQm94PgorICAgICAgfQorICAgICAge0Jvb2xlYW4oc2VsZWN0ZWRSb3dzQ291bnQp ICYmCisgICAgICAgIDxCb3ggY2xhc3NOYW1lPXtjbHN4KGNsYXNzZXMucGFkZGluZywgY2xhc3Nl cy5kaXZpZGVyKX0+Um93cyBzZWxlY3RlZDoge3NlbGVjdGVkUm93c0NvdW50fTwvQm94Pn0KKyAg ICAgIHtzdGFnZWRUZXh0ICYmCisgICAgICAgIDxCb3ggY2xhc3NOYW1lPXtjbHN4KGNsYXNzZXMu cGFkZGluZywgY2xhc3Nlcy5kaXZpZGVyKX0+CisgICAgICAgICAgPHNwYW4+Q2hhbmdlcyBzdGFn ZWQ6IHtzdGFnZWRUZXh0fTwvc3Bhbj4KKyAgICAgICAgPC9Cb3g+CisgICAgICB9CisgICAgICA8 Qm94IGNsYXNzTmFtZT17Y2xzeChjbGFzc2VzLnBhZGRpbmcsIGNsYXNzZXMubWxBdXRvKX0+TG4g e3Bvc2l0aW9uWzBdfSwgQ29sIHtwb3NpdGlvblsxXX08L0JveD4KKyAgICA8L0JveD4KKyAgKTsK K30KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL3Rvb2xzL3NxbGVkaXRvci9zdGF0aWMvanMvaW5k ZXguanMgYi93ZWIvcGdhZG1pbi90b29scy9zcWxlZGl0b3Ivc3RhdGljL2pzL2luZGV4LmpzCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMC4uNmFkMzVmYjM0Ci0tLSAvZGV2L251 bGwKKysrIGIvd2ViL3BnYWRtaW4vdG9vbHMvc3FsZWRpdG9yL3N0YXRpYy9qcy9pbmRleC5qcwpA QCAtMCwwICsxLDI2IEBACisvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLworLy8gcGdBZG1pbiA0IC0gUG9zdGdyZVNRTCBUb29s cworLy8KKy8vIENvcHlyaWdodCAoQykgMjAxMyAtIDIwMjIsIFRoZSBwZ0FkbWluIERldmVsb3Bt ZW50IFRlYW0KKy8vIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgdGhlIFBvc3RncmVT UUwgTGljZW5jZQorLy8KKy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vCitpbXBvcnQgcGdBZG1pbiBmcm9tICdzb3VyY2VzL3BnYWRt aW4nOworaW1wb3J0IHBnQnJvd3NlciBmcm9tICd0b3AvYnJvd3Nlci9zdGF0aWMvanMvYnJvd3Nl cic7CitpbXBvcnQgU1FMRWRpdG9yIGZyb20gJy4vU1FMRWRpdG9yTW9kdWxlJzsKKworLyogZXNs aW50LWRpc2FibGUgKi8KKy8qIFRoaXMgaXMgdXNlZCB0byBjaGFuZ2UgcHVibGljUGF0aCBvZiB3 ZWJwYWNrIGF0IHJ1bnRpbWUgZm9yIGxvYWRpbmcgY2h1bmtzICovCisvKiBEbyBub3QgYWRkIGxl dCwgdmFyLCBjb25zdCB0byB0aGlzIHZhcmlhYmxlICovCitfX3dlYnBhY2tfcHVibGljX3BhdGhf XyA9IHdpbmRvdy5yZXNvdXJjZUJhc2VQYXRoOworLyogZXNsaW50LWVuYWJsZSAqLworCitpZigh cGdBZG1pbi5Ub29scykgeworICBwZ0FkbWluLlRvb2xzID0ge307Cit9CitwZ0FkbWluLlRvb2xz LlNRTEVkaXRvciA9IFNRTEVkaXRvci5nZXRJbnN0YW5jZShwZ0FkbWluLCBwZ0Jyb3dzZXIpOwor Cittb2R1bGUuZXhwb3J0cyA9IHsKKyAgU1FMRWRpdG9yOiBTUUxFZGl0b3IsCit9OwpkaWZmIC0t Z2l0IGEvd2ViL3BnYWRtaW4vdG9vbHMvZGF0YWdyaWQvc3RhdGljL2pzL3Nob3dfcXVlcnlfdG9v bC5qcyBiL3dlYi9wZ2FkbWluL3Rvb2xzL3NxbGVkaXRvci9zdGF0aWMvanMvc2hvd19xdWVyeV90 b29sLmpzCnNpbWlsYXJpdHkgaW5kZXggNjUlCnJlbmFtZSBmcm9tIHdlYi9wZ2FkbWluL3Rvb2xz L2RhdGFncmlkL3N0YXRpYy9qcy9zaG93X3F1ZXJ5X3Rvb2wuanMKcmVuYW1lIHRvIHdlYi9wZ2Fk bWluL3Rvb2xzL3NxbGVkaXRvci9zdGF0aWMvanMvc2hvd19xdWVyeV90b29sLmpzCmluZGV4IDE1 N2RiMzMzNS4uN2Y2NTg1YjBmIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi90b29scy9kYXRhZ3Jp ZC9zdGF0aWMvanMvc2hvd19xdWVyeV90b29sLmpzCisrKyBiL3dlYi9wZ2FkbWluL3Rvb2xzL3Nx bGVkaXRvci9zdGF0aWMvanMvc2hvd19xdWVyeV90b29sLmpzCkBAIC05LDcgKzksNyBAQAogCiBp bXBvcnQgZ2V0dGV4dCBmcm9tICcuLi8uLi8uLi8uLi9zdGF0aWMvanMvZ2V0dGV4dCc7CiBpbXBv cnQgdXJsX2ZvciBmcm9tICcuLi8uLi8uLi8uLi9zdGF0aWMvanMvdXJsX2Zvcic7Ci1pbXBvcnQg e2dldFBhbmVsVGl0bGV9IGZyb20gJy4vZGF0YWdyaWRfcGFuZWxfdGl0bGUnOworaW1wb3J0IHtn ZXRQYW5lbFRpdGxlfSBmcm9tICcuL3NxbGVkaXRvcl90aXRsZSc7CiBpbXBvcnQge2dldFJhbmRv bUludH0gZnJvbSAnc291cmNlcy91dGlscyc7CiBpbXBvcnQgJCBmcm9tICdqcXVlcnknOwogaW1w b3J0IE5vdGlmeSBmcm9tICcuLi8uLi8uLi8uLi9zdGF0aWMvanMvaGVscGVycy9Ob3RpZmllcic7 CkBAIC0xOCwxOCArMTgsMjAgQEAgZnVuY3Rpb24gaGFzRGF0YWJhc2VJbmZvcm1hdGlvbihwYXJl bnREYXRhKSB7CiAgIHJldHVybiBwYXJlbnREYXRhLmRhdGFiYXNlOwogfQogCi1mdW5jdGlvbiBn ZW5lcmF0ZVVybCh0cmFuc19pZCwgdGl0bGUsIHBhcmVudERhdGEsIHNxbElkKSB7Ci0gIGxldCB1 cmxfZW5kcG9pbnQgPSB1cmxfZm9yKCdkYXRhZ3JpZC5wYW5lbCcsIHsKK2V4cG9ydCBmdW5jdGlv biBnZW5lcmF0ZVVybCh0cmFuc19pZCwgcGFyZW50RGF0YSwgc3FsSWQpIHsKKyAgbGV0IHVybF9l bmRwb2ludCA9IHVybF9mb3IoJ3NxbGVkaXRvci5wYW5lbCcsIHsKICAgICAndHJhbnNfaWQnOiB0 cmFuc19pZCwKICAgfSk7CiAKICAgdXJsX2VuZHBvaW50ICs9IGA/aXNfcXVlcnlfdG9vbD0ke3Ry dWV9YAogICAgICtgJnNnaWQ9JHtwYXJlbnREYXRhLnNlcnZlcl9ncm91cC5faWR9YAotICAgICtg JnNpZD0ke3BhcmVudERhdGEuc2VydmVyLl9pZH1gCi0gICAgK2Amc2VydmVyX3R5cGU9JHtwYXJl bnREYXRhLnNlcnZlci5zZXJ2ZXJfdHlwZX1gOworICAgICtgJnNpZD0ke3BhcmVudERhdGEuc2Vy dmVyLl9pZH1gOwogCiAgIGlmIChoYXNEYXRhYmFzZUluZm9ybWF0aW9uKHBhcmVudERhdGEpKSB7 CiAgICAgdXJsX2VuZHBvaW50ICs9IGAmZGlkPSR7cGFyZW50RGF0YS5kYXRhYmFzZS5faWR9YDsK KyAgICBpZihwYXJlbnREYXRhLmRhdGFiYXNlLmxhYmVsKSB7CisgICAgICB1cmxfZW5kcG9pbnQg Kz0gYCZkYXRhYmFzZV9uYW1lPSR7cGFyZW50RGF0YS5kYXRhYmFzZS5sYWJlbH1gOworICAgIH0K ICAgfQogCiAgIGlmKHNxbElkKSB7CkBAIC00Nyw3ICs0OSw3IEBAIGZ1bmN0aW9uIGdlbmVyYXRl VGl0bGUocGdCcm93c2VyLCBhY2lUcmVlSWRlbnRpZmllcikgewogICByZXR1cm4gZ2V0UGFuZWxU aXRsZShwZ0Jyb3dzZXIsIGFjaVRyZWVJZGVudGlmaWVyKTsKIH0KIAotZXhwb3J0IGZ1bmN0aW9u IHNob3dRdWVyeVRvb2woZGF0YWdyaWQsIHBnQnJvd3NlciwgdXJsLCBhY2lUcmVlSWRlbnRpZmll ciwgdHJhbnNJZCkgeworZXhwb3J0IGZ1bmN0aW9uIHNob3dRdWVyeVRvb2wocXVlcnlUb29sTW9k LCBwZ0Jyb3dzZXIsIHVybCwgYWNpVHJlZUlkZW50aWZpZXIsIHRyYW5zSWQpIHsKICAgY29uc3Qg c1VSTCA9IHVybCB8fCAnJzsKICAgY29uc3QgcXVlcnlUb29sVGl0bGUgPSBnZW5lcmF0ZVRpdGxl KHBnQnJvd3NlciwgYWNpVHJlZUlkZW50aWZpZXIpOwogCkBAIC02NiwxNSArNjgsMTUgQEAgZXhw b3J0IGZ1bmN0aW9uIHNob3dRdWVyeVRvb2woZGF0YWdyaWQsIHBnQnJvd3NlciwgdXJsLCBhY2lU cmVlSWRlbnRpZmllciwgdHJhbnMKICAgICByZXR1cm47CiAgIH0KIAotICBjb25zdCBncmlkVXJs ID0gZ2VuZXJhdGVVcmwodHJhbnNJZCwgcXVlcnlUb29sVGl0bGUsIHBhcmVudERhdGEpOwotICBs YXVuY2hEYXRhR3JpZChkYXRhZ3JpZCwgdHJhbnNJZCwgZ3JpZFVybCwgcXVlcnlUb29sVGl0bGUs IHNVUkwpOworICBjb25zdCBncmlkVXJsID0gZ2VuZXJhdGVVcmwodHJhbnNJZCwgcGFyZW50RGF0 YSk7CisgIGxhdW5jaFF1ZXJ5VG9vbChxdWVyeVRvb2xNb2QsIHRyYW5zSWQsIGdyaWRVcmwsIHF1 ZXJ5VG9vbFRpdGxlLCBzVVJMKTsKIH0KIAotZXhwb3J0IGZ1bmN0aW9uIGdlbmVyYXRlU2NyaXB0 KHBhcmVudERhdGEsIGRhdGFncmlkKSB7CitleHBvcnQgZnVuY3Rpb24gZ2VuZXJhdGVTY3JpcHQo cGFyZW50RGF0YSwgcXVlcnlUb29sTW9kKSB7CiAgIGNvbnN0IHF1ZXJ5VG9vbFRpdGxlID0gYCR7 cGFyZW50RGF0YS5kYXRhYmFzZX0vJHtwYXJlbnREYXRhLnVzZXJ9QCR7cGFyZW50RGF0YS5zZXJ2 ZXJ9YDsKICAgY29uc3QgdHJhbnNJZCA9IGdldFJhbmRvbUludCgxLCA5OTk5OTk5KTsKIAotICBs ZXQgdXJsX2VuZHBvaW50ID0gdXJsX2ZvcignZGF0YWdyaWQucGFuZWwnLCB7CisgIGxldCB1cmxf ZW5kcG9pbnQgPSB1cmxfZm9yKCdzcWxlZGl0b3IucGFuZWwnLCB7CiAgICAgJ3RyYW5zX2lkJzog dHJhbnNJZCwKICAgfSk7CiAKQEAgLTg0LDEwICs4NiwxMCBAQCBleHBvcnQgZnVuY3Rpb24gZ2Vu ZXJhdGVTY3JpcHQocGFyZW50RGF0YSwgZGF0YWdyaWQpIHsKICAgICArYCZzZXJ2ZXJfdHlwZT0k e3BhcmVudERhdGEuc3R5cGV9YAogICAgICtgJmRpZD0ke3BhcmVudERhdGEuZGlkfWA7CiAKLSAg bGF1bmNoRGF0YUdyaWQoZGF0YWdyaWQsIHRyYW5zSWQsIHVybF9lbmRwb2ludCwgcXVlcnlUb29s VGl0bGUsICcnKTsKKyAgbGF1bmNoUXVlcnlUb29sKHF1ZXJ5VG9vbE1vZCwgdHJhbnNJZCwgdXJs X2VuZHBvaW50LCBxdWVyeVRvb2xUaXRsZSwgJycpOwogfQogCi1leHBvcnQgZnVuY3Rpb24gc2hv d0VSRFNxbFRvb2wocGFyZW50RGF0YSwgZXJkU3FsSWQsIHF1ZXJ5VG9vbFRpdGxlLCBkYXRhZ3Jp ZCkgeworZXhwb3J0IGZ1bmN0aW9uIHNob3dFUkRTcWxUb29sKHBhcmVudERhdGEsIGVyZFNxbElk LCBxdWVyeVRvb2xUaXRsZSwgcXVlcnlUb29sTW9kKSB7CiAgIGNvbnN0IHRyYW5zSWQgPSBnZXRS YW5kb21JbnQoMSwgOTk5OTk5OSk7CiAgIHBhcmVudERhdGEgPSB7CiAgICAgc2VydmVyX2dyb3Vw OiB7CkBAIC0xMDIsMTIgKzEwNCwxMiBAQCBleHBvcnQgZnVuY3Rpb24gc2hvd0VSRFNxbFRvb2wo cGFyZW50RGF0YSwgZXJkU3FsSWQsIHF1ZXJ5VG9vbFRpdGxlLCBkYXRhZ3JpZCkgewogICAgIH0s CiAgIH07CiAKLSAgY29uc3QgZ3JpZFVybCA9IGdlbmVyYXRlVXJsKHRyYW5zSWQsIHF1ZXJ5VG9v bFRpdGxlLCBwYXJlbnREYXRhLCBlcmRTcWxJZCk7Ci0gIGxhdW5jaERhdGFHcmlkKGRhdGFncmlk LCB0cmFuc0lkLCBncmlkVXJsLCBxdWVyeVRvb2xUaXRsZSwgJycpOworICBjb25zdCBncmlkVXJs ID0gZ2VuZXJhdGVVcmwodHJhbnNJZCwgcGFyZW50RGF0YSwgZXJkU3FsSWQpOworICBsYXVuY2hR dWVyeVRvb2wocXVlcnlUb29sTW9kLCB0cmFuc0lkLCBncmlkVXJsLCBxdWVyeVRvb2xUaXRsZSwg JycpOwogfQogCi1leHBvcnQgZnVuY3Rpb24gbGF1bmNoRGF0YUdyaWQoZGF0YWdyaWQsIHRyYW5z SWQsIGdyaWRVcmwsIHF1ZXJ5VG9vbFRpdGxlLCBzVVJMKSB7Ci0gIGxldCByZXRWYWwgPSBkYXRh Z3JpZC5sYXVuY2hfZ3JpZCh0cmFuc0lkLCBncmlkVXJsLCB0cnVlLCBxdWVyeVRvb2xUaXRsZSwg c1VSTCk7CitleHBvcnQgZnVuY3Rpb24gbGF1bmNoUXVlcnlUb29sKHF1ZXJ5VG9vbE1vZCwgdHJh bnNJZCwgZ3JpZFVybCwgcXVlcnlUb29sVGl0bGUsIHNVUkwpIHsKKyAgbGV0IHJldFZhbCA9IHF1 ZXJ5VG9vbE1vZC5sYXVuY2godHJhbnNJZCwgZ3JpZFVybCwgdHJ1ZSwgcXVlcnlUb29sVGl0bGUs IHNVUkwpOwogCiAgIGlmKCFyZXRWYWwpIHsKICAgICBOb3RpZnkuYWxlcnQoCkBAIC0xMTksMjMg KzEyMSwxNyBAQCBleHBvcnQgZnVuY3Rpb24gbGF1bmNoRGF0YUdyaWQoZGF0YWdyaWQsIHRyYW5z SWQsIGdyaWRVcmwsIHF1ZXJ5VG9vbFRpdGxlLCBzVVJMKQogICB9CiB9CiAKLWZ1bmN0aW9uIHNl dFBhbmVsVGl0bGUocGFuZWwsIHZhbHVlKSB7Ci0gIGlmKHZhbHVlKSB7Ci0gICAgJCgnIycgKyBw YW5lbC4kdGl0bGUuaW5kZXgoKSArICcgZGl2OmZpcnN0JykuYWRkQ2xhc3MoJ3djUGFuZWxUYWIt ZHluYW1pYycpOwotICB9IGVsc2UgewotICAgICQoJyMnICsgcGFuZWwuJHRpdGxlLmluZGV4KCkg KyAnIGRpdjpmaXJzdCcpLnJlbW92ZUNsYXNzKCd3Y1BhbmVsVGFiLWR5bmFtaWMnKTsKLSAgfQot fQotCiBleHBvcnQgZnVuY3Rpb24gX3NldF9keW5hbWljX3RhYihwZ0Jyb3dzZXIsIHZhbHVlKXsK LSAgdmFyIGRhdGFncmlkX3BhbmVscyA9IHBnQnJvd3Nlci5kb2NrZXIuZmluZFBhbmVscygnZnJt X2RhdGFncmlkJyk7Ci0gIGRhdGFncmlkX3BhbmVscy5mb3JFYWNoKHBhbmVsID0+IHsKLSAgICBz ZXRQYW5lbFRpdGxlKHBhbmVsLCB2YWx1ZSk7Ci0gIH0pOworICB2YXIgc3FsZWRpdG9yX3BhbmVs cyA9IHBnQnJvd3Nlci5kb2NrZXIuZmluZFBhbmVscygnZnJtX3NxbGVkaXRvcicpOworICBjb25z dCBwcm9jZXNzID0gcGFuZWwgPT4geworICAgIGlmKHZhbHVlKSB7CisgICAgICAkKCcjJyArIHBh bmVsLiR0aXRsZS5pbmRleCgpICsgJyBkaXY6Zmlyc3QnKS5hZGRDbGFzcygnd2NQYW5lbFRhYi1k eW5hbWljJyk7CisgICAgfSBlbHNlIHsKKyAgICAgICQoJyMnICsgcGFuZWwuJHRpdGxlLmluZGV4 KCkgKyAnIGRpdjpmaXJzdCcpLnJlbW92ZUNsYXNzKCd3Y1BhbmVsVGFiLWR5bmFtaWMnKTsKKyAg ICB9CisgIH07CisgIHNxbGVkaXRvcl9wYW5lbHMuZm9yRWFjaChwcm9jZXNzKTsKIAogICB2YXIg ZGVidWdnZXJfcGFuZWxzID0gcGdCcm93c2VyLmRvY2tlci5maW5kUGFuZWxzKCdmcm1fZGVidWdn ZXInKTsKLSAgZGVidWdnZXJfcGFuZWxzLmZvckVhY2gocGFuZWwgPT4gewotICAgIHNldFBhbmVs VGl0bGUocGFuZWwsIHZhbHVlKTsKLSAgfSk7Ci0KKyAgZGVidWdnZXJfcGFuZWxzLmZvckVhY2go cHJvY2Vzcyk7CiB9CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi90b29scy9kYXRhZ3JpZC9zdGF0 aWMvanMvc2hvd19kYXRhLmpzIGIvd2ViL3BnYWRtaW4vdG9vbHMvc3FsZWRpdG9yL3N0YXRpYy9q cy9zaG93X3ZpZXdfZGF0YS5qcwpzaW1pbGFyaXR5IGluZGV4IDg4JQpyZW5hbWUgZnJvbSB3ZWIv cGdhZG1pbi90b29scy9kYXRhZ3JpZC9zdGF0aWMvanMvc2hvd19kYXRhLmpzCnJlbmFtZSB0byB3 ZWIvcGdhZG1pbi90b29scy9zcWxlZGl0b3Ivc3RhdGljL2pzL3Nob3dfdmlld19kYXRhLmpzCmlu ZGV4IGY0MThlN2RhNy4uODUxNjRiMDhhIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi90b29scy9k YXRhZ3JpZC9zdGF0aWMvanMvc2hvd19kYXRhLmpzCisrKyBiL3dlYi9wZ2FkbWluL3Rvb2xzL3Nx bGVkaXRvci9zdGF0aWMvanMvc2hvd192aWV3X2RhdGEuanMKQEAgLTgsMjQgKzgsMjQgQEAKIC8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vCiBpbXBvcnQgZ2V0dGV4dCBmcm9tICcuLi8uLi8uLi8uLi9zdGF0aWMvanMvZ2V0dGV4dCc7 CiBpbXBvcnQgdXJsX2ZvciBmcm9tICcuLi8uLi8uLi8uLi9zdGF0aWMvanMvdXJsX2Zvcic7Ci1p bXBvcnQge2dldERhdGFiYXNlTGFiZWwsIGdlbmVyYXRlVGl0bGV9IGZyb20gJy4vZGF0YWdyaWRf cGFuZWxfdGl0bGUnOworaW1wb3J0IHtnZXREYXRhYmFzZUxhYmVsLCBnZW5lcmF0ZVRpdGxlfSBm cm9tICcuL3NxbGVkaXRvcl90aXRsZSc7CiBpbXBvcnQgQ29kZU1pcnJvciBmcm9tICdidW5kbGVk X2NvZGVtaXJyb3InOwogaW1wb3J0ICogYXMgU3FsRWRpdG9yVXRpbHMgZnJvbSAnc291cmNlcy9z cWxlZGl0b3JfdXRpbHMnOwogaW1wb3J0ICQgZnJvbSAnanF1ZXJ5JzsKIGltcG9ydCBfIGZyb20g J3VuZGVyc2NvcmUnOwogaW1wb3J0IE5vdGlmeSBmcm9tICcuLi8uLi8uLi8uLi9zdGF0aWMvanMv aGVscGVycy9Ob3RpZmllcic7CiAKLWV4cG9ydCBmdW5jdGlvbiBzaG93RGF0YUdyaWQoCi0gIGRh dGFncmlkLAorZXhwb3J0IGZ1bmN0aW9uIHNob3dWaWV3RGF0YSgKKyAgcXVlcnlUb29sTW9kLAog ICBwZ0Jyb3dzZXIsCiAgIGFsZXJ0aWZ5LAogICBjb25uZWN0aW9uRGF0YSwKLSAgYWNpVHJlZUlk ZW50aWZpZXIsCisgIHRyZWVJZGVudGlmaWVyLAogICB0cmFuc0lkLAogICBmaWx0ZXI9ZmFsc2Us CiAgIHByZWZlcmVuY2VzPW51bGwKICkgewotICBjb25zdCBub2RlID0gcGdCcm93c2VyLnRyZWUu ZmluZE5vZGVCeURvbUVsZW1lbnQoYWNpVHJlZUlkZW50aWZpZXIpOworICBjb25zdCBub2RlID0g cGdCcm93c2VyLnRyZWUuZmluZE5vZGVCeURvbUVsZW1lbnQodHJlZUlkZW50aWZpZXIpOwogICBp ZiAobm9kZSA9PT0gdW5kZWZpbmVkIHx8ICFub2RlLmdldERhdGEoKSkgewogICAgIE5vdGlmeS5h bGVydCgKICAgICAgIGdldHRleHQoJ0RhdGEgR3JpZCBFcnJvcicpLApAQCAtMzQsNyArMzQsNyBA QCBleHBvcnQgZnVuY3Rpb24gc2hvd0RhdGFHcmlkKAogICAgIHJldHVybjsKICAgfQogCi0gIGNv bnN0IHBhcmVudERhdGEgPSBwZ0Jyb3dzZXIudHJlZS5nZXRUcmVlTm9kZUhpZXJhcmNoeSggIGFj aVRyZWVJZGVudGlmaWVyCisgIGNvbnN0IHBhcmVudERhdGEgPSBwZ0Jyb3dzZXIudHJlZS5nZXRU cmVlTm9kZUhpZXJhcmNoeSggIHRyZWVJZGVudGlmaWVyCiAgICk7CiAKICAgaWYgKGhhc1NlcnZl ck9yRGF0YWJhc2VDb25maWd1cmF0aW9uKHBhcmVudERhdGEpCkBAIC00OCwyNCArNDgsMjQgQEAg ZXhwb3J0IGZ1bmN0aW9uIHNob3dEYXRhR3JpZCgKICAgfQogCiAgIGNvbnN0IGdyaWRVcmwgPSBn ZW5lcmF0ZVVybCh0cmFuc0lkLCBjb25uZWN0aW9uRGF0YSwgbm9kZS5nZXREYXRhKCksIHBhcmVu dERhdGEpOwotICBjb25zdCBxdWVyeVRvb2xUaXRsZSA9IGdlbmVyYXRlRGF0YWdyaWRUaXRsZShw Z0Jyb3dzZXIsIGFjaVRyZWVJZGVudGlmaWVyKTsKKyAgY29uc3QgcXVlcnlUb29sVGl0bGUgPSBn ZW5lcmF0ZVZpZXdEYXRhVGl0bGUocGdCcm93c2VyLCB0cmVlSWRlbnRpZmllcik7CiAgIGlmKGZp bHRlcikgewogICAgIGluaXRGaWx0ZXJEaWFsb2coYWxlcnRpZnksIHBnQnJvd3Nlcik7CiAKICAg ICBjb25zdCB2YWxpZGF0ZVVybCA9IGdlbmVyYXRlRmlsdGVyVmFsaWRhdGVVcmwobm9kZS5nZXRE YXRhKCksIHBhcmVudERhdGEpOwogCiAgICAgbGV0IG9rQ2FsbGJhY2sgPSBmdW5jdGlvbihzcWwp IHsKLSAgICAgIGRhdGFncmlkLmxhdW5jaF9ncmlkKHRyYW5zSWQsIGdyaWRVcmwsIGZhbHNlLCBx dWVyeVRvb2xUaXRsZSwgbnVsbCwgc3FsKTsKKyAgICAgIHF1ZXJ5VG9vbE1vZC5sYXVuY2godHJh bnNJZCwgZ3JpZFVybCwgZmFsc2UsIHF1ZXJ5VG9vbFRpdGxlLCBudWxsLCBzcWwpOwogICAgIH07 CiAKLSAgICAkLmdldCh1cmxfZm9yKCdkYXRhZ3JpZC5maWx0ZXInKSwKKyAgICAkLmdldCh1cmxf Zm9yKCdxdWVyeVRvb2xNb2QuZmlsdGVyJyksCiAgICAgICBmdW5jdGlvbihkYXRhKSB7CiAgICAg ICAgIGFsZXJ0aWZ5LmZpbHRlckRpYWxvZyhnZXR0ZXh0KCdEYXRhIEZpbHRlciAtICVzJywgcXVl cnlUb29sVGl0bGUpLCBkYXRhLCB2YWxpZGF0ZVVybCwgcHJlZmVyZW5jZXMsIG9rQ2FsbGJhY2sp CiAgICAgICAgICAgLnJlc2l6ZVRvKHBnQnJvd3Nlci5zdGRXLnNtLHBnQnJvd3Nlci5zdGRILnNt KTsKICAgICAgIH0KICAgICApOwogICB9IGVsc2UgewotICAgIGRhdGFncmlkLmxhdW5jaF9ncmlk KHRyYW5zSWQsIGdyaWRVcmwsIGZhbHNlLCBxdWVyeVRvb2xUaXRsZSk7CisgICAgcXVlcnlUb29s TW9kLmxhdW5jaCh0cmFuc0lkLCBncmlkVXJsLCBmYWxzZSwgcXVlcnlUb29sVGl0bGUpOwogICB9 CiB9CiAKQEAgLTgzLDggKzgzLDIxIEBAIGV4cG9ydCBmdW5jdGlvbiByZXRyaWV2ZU5hbWVTcGFj ZU5hbWUocGFyZW50RGF0YSkgewogICByZXR1cm4gJyc7CiB9CiAKK2V4cG9ydCBmdW5jdGlvbiBy ZXRyaWV2ZU5vZGVOYW1lKHBhcmVudERhdGEpIHsKKyAgaWYgKHBhcmVudERhdGEudGFibGUgIT09 IHVuZGVmaW5lZCkgeworICAgIHJldHVybiBwYXJlbnREYXRhLnRhYmxlLmxhYmVsOworICB9Cisg IGVsc2UgaWYgKHBhcmVudERhdGEudmlldyAhPT0gdW5kZWZpbmVkKSB7CisgICAgcmV0dXJuIHBh cmVudERhdGEudmlldy5sYWJlbDsKKyAgfQorICBlbHNlIGlmIChwYXJlbnREYXRhLmNhdGFsb2cg IT09IHVuZGVmaW5lZCkgeworICAgIHJldHVybiBwYXJlbnREYXRhLmNhdGFsb2cubGFiZWw7Cisg IH0KKyAgcmV0dXJuICcnOworfQorCiBmdW5jdGlvbiBnZW5lcmF0ZVVybCh0cmFuc19pZCwgY29u bmVjdGlvbkRhdGEsIG5vZGVEYXRhLCBwYXJlbnREYXRhKSB7Ci0gIGxldCB1cmxfZW5kcG9pbnQg PSB1cmxfZm9yKCdkYXRhZ3JpZC5wYW5lbCcsIHsKKyAgbGV0IHVybF9lbmRwb2ludCA9IHVybF9m b3IoJ3NxbGVkaXRvci5wYW5lbCcsIHsKICAgICAndHJhbnNfaWQnOiB0cmFuc19pZCwKICAgfSk7 CiAKQEAgLTEwOCw3ICsxMjEsNyBAQCBmdW5jdGlvbiBnZW5lcmF0ZUZpbHRlclZhbGlkYXRlVXJs KG5vZGVEYXRhLCBwYXJlbnREYXRhKSB7CiAgICAgJ29ial9pZCc6IG5vZGVEYXRhLl9pZCwKICAg fTsKIAotICByZXR1cm4gdXJsX2ZvcignZGF0YWdyaWQuZmlsdGVyX3ZhbGlkYXRlJywgdXJsX3Bh cmFtcyk7CisgIHJldHVybiB1cmxfZm9yKCdxdWVyeVRvb2xNb2QuZmlsdGVyX3ZhbGlkYXRlJywg dXJsX3BhcmFtcyk7CiB9CiAKIGZ1bmN0aW9uIGluaXRGaWx0ZXJEaWFsb2coYWxlcnRpZnksIHBn QnJvd3NlcikgewpAQCAtMjg2LDE1ICsyOTksMTUgQEAgZnVuY3Rpb24gaGFzU2NoZW1hT3JDYXRh bG9nT3JWaWV3SW5mb3JtYXRpb24ocGFyZW50RGF0YSkgewogICAgIHBhcmVudERhdGEuY2F0YWxv ZyAhPT0gdW5kZWZpbmVkOwogfQogCi1leHBvcnQgZnVuY3Rpb24gZ2VuZXJhdGVEYXRhZ3JpZFRp dGxlKHBnQnJvd3NlciwgYWNpVHJlZUlkZW50aWZpZXIsIGN1c3RvbV90aXRsZT1udWxsLCBiYWNr ZW5kX2VudGl0eT1udWxsKSB7CitleHBvcnQgZnVuY3Rpb24gZ2VuZXJhdGVWaWV3RGF0YVRpdGxl KHBnQnJvd3NlciwgdHJlZUlkZW50aWZpZXIsIGN1c3RvbV90aXRsZT1udWxsLCBiYWNrZW5kX2Vu dGl0eT1udWxsKSB7CiAgIHZhciBwcmVmZXJlbmNlcyA9IHBnQnJvd3Nlci5nZXRfcHJlZmVyZW5j ZXNfZm9yX21vZHVsZSgnYnJvd3NlcicpOwogICBjb25zdCBwYXJlbnREYXRhID0gcGdCcm93c2Vy LnRyZWUuZ2V0VHJlZU5vZGVIaWVyYXJjaHkoCi0gICAgYWNpVHJlZUlkZW50aWZpZXIKKyAgICB0 cmVlSWRlbnRpZmllcgogICApOwogCiAgIGNvbnN0IG5hbWVzcGFjZU5hbWUgPSByZXRyaWV2ZU5h bWVTcGFjZU5hbWUocGFyZW50RGF0YSk7CiAgIGNvbnN0IGRiX2xhYmVsID0gIV8uaXNVbmRlZmlu ZWQoYmFja2VuZF9lbnRpdHkpICYmIGJhY2tlbmRfZW50aXR5ICE9IG51bGwgJiYgYmFja2VuZF9l bnRpdHkuaGFzT3duUHJvcGVydHkoJ2RiX25hbWUnKSA/IGJhY2tlbmRfZW50aXR5WydkYl9uYW1l J10gOiBnZXREYXRhYmFzZUxhYmVsKHBhcmVudERhdGEpOwotICBjb25zdCBub2RlID0gcGdCcm93 c2VyLnRyZWUuZmluZE5vZGVCeURvbUVsZW1lbnQoYWNpVHJlZUlkZW50aWZpZXIpOworICBjb25z dCBub2RlID0gcGdCcm93c2VyLnRyZWUuZmluZE5vZGVCeURvbUVsZW1lbnQodHJlZUlkZW50aWZp ZXIpOwogCiAgIHZhciBkdGdfdGl0bGVfcGxhY2Vob2xkZXIgPSAnJzsKICAgaWYoY3VzdG9tX3Rp dGxlKSB7CkBAIC0zMTAsNyArMzIzLDcgQEAgZXhwb3J0IGZ1bmN0aW9uIGdlbmVyYXRlRGF0YWdy aWRUaXRsZShwZ0Jyb3dzZXIsIGFjaVRyZWVJZGVudGlmaWVyLCBjdXN0b21fdGl0bGUKICAgICAn c2VydmVyJzogcGFyZW50RGF0YS5zZXJ2ZXIubGFiZWwsCiAgICAgJ3NjaGVtYSc6IG5hbWVzcGFj ZU5hbWUsCiAgICAgJ3RhYmxlJzogbm9kZS5nZXREYXRhKCkubGFiZWwsCi0gICAgJ3R5cGUnOiAn ZGF0YWdyaWQnLAorICAgICd0eXBlJzogJ3ZpZXdfZGF0YScsCiAgIH07CiAgIHJldHVybiBnZW5l cmF0ZVRpdGxlKGR0Z190aXRsZV9wbGFjZWhvbGRlciwgdGl0bGVfZGF0YSk7CiB9CmRpZmYgLS1n aXQgYS93ZWIvcGdhZG1pbi90b29scy9zcWxlZGl0b3Ivc3RhdGljL2pzL3NxbGVkaXRvci5qcyBi L3dlYi9wZ2FkbWluL3Rvb2xzL3NxbGVkaXRvci9zdGF0aWMvanMvc3FsZWRpdG9yLmpzCmRlbGV0 ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzNWM2YWFkOWEuLjAwMDAwMDAwMAotLS0gYS93ZWIv cGdhZG1pbi90b29scy9zcWxlZGl0b3Ivc3RhdGljL2pzL3NxbGVkaXRvci5qcworKysgL2Rldi9u dWxsCkBAIC0xLDUxODkgKzAsMCBAQAotLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwotLy8KLS8vIHBnQWRtaW4gNCAtIFBvc3RncmVT UUwgVG9vbHMKLS8vCi0vLyBDb3B5cmlnaHQgKEMpIDIwMTMgLSAyMDIyLCBUaGUgcGdBZG1pbiBE ZXZlbG9wbWVudCBUZWFtCi0vLyBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIHRoZSBQ b3N0Z3JlU1FMIExpY2VuY2UKLS8vCi0vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwotLyogZXNsaW50LWRpc2FibGUgKi8KLS8qIFRo aXMgaXMgdXNlZCB0byBjaGFuZ2UgcHVibGljUGF0aCBvZiB3ZWJwYWNrIGF0IHJ1bnRpbWUgZm9y IGxvYWRpbmcgY2h1bmtzICovCi0vKiBEbyBub3QgYWRkIGxldCwgdmFyLCBjb25zdCB0byB0aGlz IHZhcmlhYmxlICovCi1fX3dlYnBhY2tfcHVibGljX3BhdGhfXyA9IHdpbmRvdy5yZXNvdXJjZUJh c2VQYXRoOwotLyogZXNsaW50LWVuYWJsZSAqLwotCi1pbXBvcnQge2xhdW5jaERhdGFHcmlkfSBm cm9tICd0b29scy9kYXRhZ3JpZC9zdGF0aWMvanMvc2hvd19xdWVyeV90b29sJzsKLWltcG9ydCB7 Z2VuZXJhdGVEYXRhZ3JpZFRpdGxlfSBmcm9tICd0b29scy9kYXRhZ3JpZC9zdGF0aWMvanMvc2hv d19kYXRhJzsKLWltcG9ydCBOb3RpZnkgZnJvbSAnLi4vLi4vLi4vLi4vc3RhdGljL2pzL2hlbHBl cnMvTm90aWZpZXInOwotCi1kZWZpbmUoJ3Rvb2xzLnF1ZXJ5dG9vbCcsIFsKLSAgJ3NvdXJjZXMv Z2V0dGV4dCcsICdzb3VyY2VzL3VybF9mb3InLCAnanF1ZXJ5JywgJ2pxdWVyeS51aScsCi0gICdq cXVlcnl1aS5wb3NpdGlvbicsICd1bmRlcnNjb3JlJywgJ3BnYWRtaW4uYWxlcnRpZnlqcycsCi0g ICdzb3VyY2VzL3BnYWRtaW4nLCAnYmFja2JvbmUnLCAnYnVuZGxlZF9jb2RlbWlycm9yJywgJ3Nv dXJjZXMvdXRpbHMnLAotICAncGdhZG1pbi5taXNjLmV4cGxhaW4nLAotICAncGdhZG1pbi51c2Vy X21hbmFnZW1lbnQuY3VycmVudF91c2VyJywKLSAgJ3NvdXJjZXMvc2VsZWN0aW9uL2dyaWRfc2Vs ZWN0b3InLAotICAnc291cmNlcy9zZWxlY3Rpb24vYWN0aXZlX2NlbGxfY2FwdHVyZScsCi0gICdz b3VyY2VzL3NlbGVjdGlvbi9jbGlwYm9hcmQnLAotICAnc291cmNlcy9zZWxlY3Rpb24vY29weV9k YXRhJywKLSAgJ3NvdXJjZXMvc2VsZWN0aW9uL3JhbmdlX3NlbGVjdGlvbl9oZWxwZXInLAotICAn c291cmNlcy9zbGlja2dyaWQvZXZlbnRfaGFuZGxlcnMvaGFuZGxlX3F1ZXJ5X291dHB1dF9rZXli b2FyZF9ldmVudCcsCi0gICdzb3VyY2VzL3NlbGVjdGlvbi94Y2VsbF9zZWxlY3Rpb25fbW9kZWwn LAotICAnc291cmNlcy9zZWxlY3Rpb24vc2V0X3N0YWdlZF9yb3dzJywKLSAgJ3NvdXJjZXMvc3Fs ZWRpdG9yX3V0aWxzJywKLSAgJ3NvdXJjZXMvc3FsZWRpdG9yL2V4ZWN1dGVfcXVlcnknLAotICAn c291cmNlcy9zcWxlZGl0b3IvcXVlcnlfdG9vbF9odHRwX2Vycm9yX2hhbmRsZXInLAotICAnc291 cmNlcy9zcWxlZGl0b3IvZmlsdGVyX2RpYWxvZycsCi0gICdzb3VyY2VzL3NxbGVkaXRvci9uZXdf Y29ubmVjdGlvbl9kaWFsb2cnLAotICAnc291cmNlcy9zcWxlZGl0b3IvZ2VvbWV0cnlfdmlld2Vy JywKLSAgJ3NvdXJjZXMvc3FsZWRpdG9yL2hpc3RvcnkvaGlzdG9yeV9jb2xsZWN0aW9uLmpzJywK LSAgJ3NvdXJjZXMvc3FsZWRpdG9yL2hpc3RvcnkvcXVlcnlfaGlzdG9yeScsCi0gICdzb3VyY2Vz L3NxbGVkaXRvci9oaXN0b3J5L3F1ZXJ5X3NvdXJjZXMnLAotICAnc291cmNlcy9rZXlib2FyZF9z aG9ydGN1dHMnLAotICAnc291cmNlcy9zcWxlZGl0b3IvcXVlcnlfdG9vbF9hY3Rpb25zJywKLSAg J3NvdXJjZXMvc3FsZWRpdG9yL3F1ZXJ5X3Rvb2xfbm90aWZpY2F0aW9ucycsCi0gICdwZ2FkbWlu LmRhdGFncmlkJywKLSAgJ3NvdXJjZXMvbW9kaWZ5X2FuaW1hdGlvbicsCi0gICdzb3VyY2VzL3Nx bGVkaXRvci9jYWxjdWxhdGVfcXVlcnlfcnVuX3RpbWUnLAotICAnc291cmNlcy9zcWxlZGl0b3Iv Y2FsbF9yZW5kZXJfYWZ0ZXJfcG9sbCcsCi0gICdzb3VyY2VzL3NxbGVkaXRvci9xdWVyeV90b29s X3ByZWZlcmVuY2VzJywKLSAgJ3NvdXJjZXMvc3FsZWRpdG9yL3F1ZXJ5X3R4bl9zdGF0dXNfY29u c3RhbnRzJywKLSAgJ3NvdXJjZXMvY3NyZicsCi0gICd0b29scy9kYXRhZ3JpZC9zdGF0aWMvanMv ZGF0YWdyaWRfcGFuZWxfdGl0bGUnLAotICAnc291cmNlcy93aW5kb3cnLAotICAnc291cmNlcy9p c19uYXRpdmUnLAotICAnc291cmNlcy9zcWxlZGl0b3IvbWFjcm8nLAotICAncGdhZG1pbi5hdXRo ZW50aWNhdGUua2VyYmVyb3MnLAotICAnc291cmNlcy8uLi9idW5kbGUvc2xpY2tncmlkJywKLSAg J3BnYWRtaW4uZmlsZV9tYW5hZ2VyJywKLSAgJ3NsaWNrLnBnYWRtaW4uZm9ybWF0dGVycycsCi0g ICdzbGljay5wZ2FkbWluLmVkaXRvcnMnLAotICAnc2xpY2sucGdhZG1pbi5wbHVnaW5zL3NsaWNr LmF1dG9jb2x1bW5zaXplJywKLSAgJ3BnYWRtaW4uYnJvd3NlcicsCi0gICdwZ2FkbWluLnRvb2xz LnVzZXJfbWFuYWdlbWVudCcsCi1dLCBmdW5jdGlvbigKLSAgZ2V0dGV4dCwgdXJsX2ZvciwgJCwg anF1ZXJ5dWksIGpxdWVyeXVpX3Bvc2l0aW9uLCBfLCBhbGVydGlmeSwgcGdBZG1pbiwgQmFja2Jv bmUsIGNvZGVtaXJyb3IsIHBnYWRtaW5VdGlscywKLSAgcGdFeHBsYWluLCBjdXJyZW50X3VzZXIs IEdyaWRTZWxlY3RvciwgQWN0aXZlQ2VsbENhcHR1cmUsIGNsaXBib2FyZCwgY29weURhdGEsIFJh bmdlU2VsZWN0aW9uSGVscGVyLCBoYW5kbGVRdWVyeU91dHB1dEtleWJvYXJkRXZlbnQsCi0gIFhD ZWxsU2VsZWN0aW9uTW9kZWwsIHNldFN0YWdlZFJvd3MsIFNxbEVkaXRvclV0aWxzLCBFeGVjdXRl UXVlcnksIGh0dHBFcnJvckhhbmRsZXIsIEZpbHRlckhhbmRsZXIsIG5ld0Nvbm5lY3Rpb25IYW5k bGVyLAotICBHZW9tZXRyeVZpZXdlciwgaGlzdG9yeUNvbGwsIHF1ZXJ5SGlzdCwgcXVlcnlTb3Vy Y2VzLAotICBrZXlib2FyZFNob3J0Y3V0cywgcXVlcnlUb29sQWN0aW9ucywgcXVlcnlUb29sTm90 aWZpY2F0aW9ucywgRGF0YWdyaWQsCi0gIG1vZGlmeUFuaW1hdGlvbiwgY2FsY3VsYXRlUXVlcnlS dW5UaW1lLCBjYWxsUmVuZGVyQWZ0ZXJQb2xsLCBxdWVyeVRvb2xQcmVmLCBxdWVyeVR4blN0YXR1 cywgY3NyZlRva2VuLCBwYW5lbFRpdGxlRnVuYywKLSAgcGdXaW5kb3csIGlzTmF0aXZlLCBNYWNy b0hhbmRsZXIsIEtlcmJlcm9zKSB7Ci0gIC8qIFJldHVybiBiYWNrLCB0aGlzIGhhcyBiZWVuIGNh bGxlZCBtb3JlIHRoYW4gb25jZSAqLwotICBpZiAocGdBZG1pbi5TcWxFZGl0b3IpCi0gICAgcmV0 dXJuIHBnQWRtaW4uU3FsRWRpdG9yOwotCi0gIC8vIFNvbWUgc2NyaXB0cyBkbyBleHBvcnQgdGhl aXIgb2JqZWN0IGluIHRoZSB3aW5kb3cgb25seS4KLSAgLy8gR2VuZXJhbGx5IHRoZSBvbmUsIHdo aWNoIGRvIG5vIGhhdmUgQU1EIHN1cHBvcnQuCi0gIHZhciB3Y0RvY2tlciA9IHdpbmRvdy53Y0Rv Y2tlciwKLSAgICBwZ0Jyb3dzZXIgPSBwZ0FkbWluLkJyb3dzZXIsCi0gICAgQ29kZU1pcnJvciA9 IGNvZGVtaXJyb3IuZGVmYXVsdCwKLSAgICBTbGljayA9IHdpbmRvdy5TbGljaywKLSAgICBIaXN0 b3J5Q29sbGVjdGlvbiA9IGhpc3RvcnlDb2xsLmRlZmF1bHQsCi0gICAgUXVlcnlIaXN0b3J5ID0g cXVlcnlIaXN0LmRlZmF1bHQsCi0gICAgUXVlcnlTb3VyY2VzID0gcXVlcnlTb3VyY2VzLlF1ZXJ5 U291cmNlczsKLQotICBjc3JmVG9rZW4uc2V0UEdDU1JGVG9rZW4ocGdBZG1pbi5jc3JmX3Rva2Vu X2hlYWRlciwgcGdBZG1pbi5jc3JmX3Rva2VuKTsKLQotICB2YXIgaXNfcXVlcnlfcnVubmluZyA9 IGZhbHNlOwotCi0gIGNvbnN0IEVNUFRZX0RBVEFfT1VUUFVUX0NPTlRFTlQgPSAnPGRpdiByb2xl PSJzdGF0dXMiIGNsYXNzPSJwZy1wYW5lbC1tZXNzYWdlIj4nICsKLSAgICBnZXR0ZXh0KCdObyBk YXRhIG91dHB1dC4gRXhlY3V0ZSBhIHF1ZXJ5IHRvIGdldCBvdXRwdXQuJykgKwotICAnPC9kaXY+ JzsKLQotICBjb25zdCBFTVBUWV9FWFBMQUlOX0NPTlRFTlQgPSAnPGRpdiByb2xlPSJzdGF0dXMi IGNsYXNzPSJwZy1wYW5lbC1tZXNzYWdlIj4nICsKLSAgICBnZXR0ZXh0KCdVc2UgRXhwbGFpbi9F eHBsYWluIGFuYWx5emUgYnV0dG9uIHRvIGdlbmVyYXRlIHRoZSBwbGFuIGZvciBhIHF1ZXJ5LiBB bHRlcm5hdGl2ZWx5LCB5b3UgY2FuIGFsc28gZXhlY3V0ZSAiRVhQTEFJTiAoRk9STUFUIEpTT04p IFtRVUVSWV0iLicpICsKLSAgJzwvZGl2Pic7Ci0KLSAgLy8gRGVmaW5pbmcgQmFja2JvbmUgdmll dyBmb3IgdGhlIHNxbCBncmlkLgotICB2YXIgU1FMRWRpdG9yVmlldyA9IEJhY2tib25lLlZpZXcu ZXh0ZW5kKHsKLSAgICBpbml0aWFsaXplOiBmdW5jdGlvbihvcHRzKSB7Ci0gICAgICB0aGlzLiRl bCA9IG9wdHMuZWw7Ci0gICAgICB0aGlzLmhhbmRsZXIgPSBvcHRzLmhhbmRsZXI7Ci0gICAgICB0 aGlzLmhhbmRsZXJbJ2NvbF9zaXplJ10gPSB7fTsKLSAgICAgIGxldCBicm93c2VyID0gcGdXaW5k b3cuZGVmYXVsdC5wZ0FkbWluLkJyb3dzZXI7Ci0gICAgICB0aGlzLnByZWZlcmVuY2VzID0gYnJv d3Nlci5nZXRfcHJlZmVyZW5jZXNfZm9yX21vZHVsZSgnc3FsZWRpdG9yJyk7Ci0gICAgICB0aGlz LmJyb3dzZXJfcHJlZmVyZW5jZXMgPSBicm93c2VyLmdldF9wcmVmZXJlbmNlc19mb3JfbW9kdWxl KCdicm93c2VyJyk7Ci0gICAgICB0aGlzLmhhbmRsZXIucHJlZmVyZW5jZXMgPSB0aGlzLnByZWZl cmVuY2VzOwotICAgICAgdGhpcy5oYW5kbGVyLmJyb3dzZXJfcHJlZmVyZW5jZXMgPSB0aGlzLmJy b3dzZXJfcHJlZmVyZW5jZXM7Ci0gICAgICB0aGlzLmNvbm5JbnRlcnZhbElkID0gbnVsbDsKLSAg ICAgIHRoaXMubGF5b3V0ID0gb3B0cy5sYXlvdXQ7Ci0gICAgICB0aGlzLnNldF9zZXJ2ZXJfdmVy c2lvbihvcHRzLnNlcnZlcl92ZXIpOwotICAgICAgdGhpcy50cmlnZ2VyKCdwZ2FkbWluLXNxbGVk aXRvcjp2aWV3OmluaXRpYWxpc2VkJyk7Ci0gICAgICB0aGlzLmNvbm5lY3Rpb25fbGlzdCA9IFsK LSAgICAgICAgeydzZXJ2ZXJfZ3JvdXAnOiBudWxsLCdzZXJ2ZXInOiBudWxsLCAnZGF0YWJhc2Un OiBudWxsLCAndXNlcic6IG51bGwsICdyb2xlJzogbnVsbCwgJ2Nvbm5fdGl0bGUnOiAnPCcgKyBn ZXR0ZXh0KCdOZXcgQ29ubmVjdGlvbicpICsgJz4nfSwKLSAgICAgIF07Ci0gICAgfSwKLQotICAg IC8vIEJpbmQgYWxsIHRoZSBldmVudHMKLSAgICBldmVudHM6IHsKLSAgICAgICdjbGljayAjYnRu LXNob3ctcXVlcnktdG9vbCc6ICdvbl9zaG93X3F1ZXJ5X3Rvb2wnLAotICAgICAgJ2NsaWNrIC5i dG4tbG9hZC1maWxlJzogJ29uX2ZpbGVfbG9hZCcsCi0gICAgICAnY2xpY2sgI2J0bi1zYXZlLWZp bGUnOiAnb25fc2F2ZV9maWxlJywKLSAgICAgICdjbGljayAjYnRuLWZpbGUtbWVudS1zYXZlJzog J29uX3NhdmVfZmlsZScsCi0gICAgICAnY2xpY2sgI2J0bi1maWxlLW1lbnUtc2F2ZS1hcyc6ICdv bl9zYXZlX2FzJywKLSAgICAgICdjbGljayAjYnRuLWZpbmQnOiAnb25fZmluZCcsCi0gICAgICAn Y2xpY2sgI2J0bi1maW5kLW1lbnUtZmluZCc6ICdvbl9maW5kJywKLSAgICAgICdjbGljayAjYnRu LWZpbmQtbWVudS1maW5kLW5leHQnOiAnb25fZmluZF9uZXh0JywKLSAgICAgICdjbGljayAjYnRu LWZpbmQtbWVudS1maW5kLXByZXZpb3VzJzogJ29uX2ZpbmRfcHJldmlvdXMnLAotICAgICAgJ2Ns aWNrICNidG4tZmluZC1tZW51LXJlcGxhY2UnOiAnb25fcmVwbGFjZScsCi0gICAgICAnY2xpY2sg I2J0bi1maW5kLW1lbnUtcmVwbGFjZS1hbGwnOiAnb25fcmVwbGFjZV9hbGwnLAotICAgICAgJ2Ns aWNrICNidG4tZmluZC1tZW51LWZpbmQtcGVyc2lzdGVudCc6ICdvbl9maW5kX3BlcnNpc3RlbnQn LAotICAgICAgJ2NsaWNrICNidG4tZmluZC1tZW51LWp1bXAnOiAnb25fanVtcCcsCi0gICAgICAn Y2xpY2sgI2J0bi1kZWxldGUtcm93JzogJ29uX2RlbGV0ZScsCi0gICAgICAnY2xpY2sgI2J0bi1z YXZlLWRhdGEnOiAnb25fc2F2ZV9kYXRhJywKLSAgICAgICdjbGljayAjYnRuLWZpbHRlcic6ICdv bl9zaG93X2ZpbHRlcicsCi0gICAgICAnY2xpY2sgI2J0bi1maWx0ZXItbWVudSc6ICdvbl9zaG93 X2ZpbHRlcicsCi0gICAgICAnY2xpY2sgI2J0bi1pbmNsdWRlLWZpbHRlcic6ICdvbl9pbmNsdWRl X2ZpbHRlcicsCi0gICAgICAnY2xpY2sgI2J0bi1leGNsdWRlLWZpbHRlcic6ICdvbl9leGNsdWRl X2ZpbHRlcicsCi0gICAgICAnY2xpY2sgI2J0bi1yZW1vdmUtZmlsdGVyJzogJ29uX3JlbW92ZV9m aWx0ZXInLAotICAgICAgJ2NsaWNrICNidG4tY2FuY2VsJzogJ29uX2NhbmNlbCcsCi0gICAgICAn Y2xpY2sgI2J0bi1jb3B5LXJvdyc6ICdvbl9jb3B5X3JvdycsCi0gICAgICAnY2xpY2sgI2J0bi1j b3B5LXdpdGgtaGVhZGVyJzogJ29uX2NvcHlfcm93X3dpdGhfaGVhZGVyJywKLSAgICAgICdjbGlj ayAjYnRuLXBhc3RlLXJvdyc6ICdvbl9wYXN0ZV9yb3cnLAotICAgICAgJ2NsaWNrICNidG4tZmxh c2gnOiAnb25fZmxhc2gnLAotICAgICAgJ2NsaWNrICNidG4tZmxhc2gtbWVudSc6ICdvbl9mbGFz aCcsCi0gICAgICAnY2xpY2sgI2J0bi1jYW5jZWwtcXVlcnknOiAnb25fY2FuY2VsX3F1ZXJ5JywK LSAgICAgICdjbGljayAjYnRuLXNhdmUtcmVzdWx0cy10by1maWxlJzogJ29uX2Rvd25sb2FkJywK LSAgICAgICdjbGljayAjYnRuLWNsZWFyJzogJ29uX2NsZWFyJywKLSAgICAgICdjbGljayAjYnRu LWF1dG8tY29tbWl0JzogJ29uX2F1dG9fY29tbWl0JywKLSAgICAgICdjbGljayAjYnRuLWF1dG8t cm9sbGJhY2snOiAnb25fYXV0b19yb2xsYmFjaycsCi0gICAgICAnY2xpY2sgI2J0bi1jbGVhci1o aXN0b3J5JzogJ29uX2NsZWFyX2hpc3RvcnknLAotICAgICAgJ2NsaWNrIC5ub2Nsb3NlJzogJ2Rv X25vdF9jbG9zZV9tZW51JywKLSAgICAgICdjbGljayAjYnRuLWV4cGxhaW4nOiAnb25fZXhwbGFp bicsCi0gICAgICAnY2xpY2sgI2J0bi1leHBsYWluLWFuYWx5emUnOiAnb25fZXhwbGFpbl9hbmFs eXplJywKLSAgICAgICdjbGljayAjYnRuLWV4cGxhaW4tdmVyYm9zZSc6ICdvbl9leHBsYWluX3Zl cmJvc2UnLAotICAgICAgJ2NsaWNrICNidG4tZXhwbGFpbi1jb3N0cyc6ICdvbl9leHBsYWluX2Nv c3RzJywKLSAgICAgICdjbGljayAjYnRuLWV4cGxhaW4tYnVmZmVycyc6ICdvbl9leHBsYWluX2J1 ZmZlcnMnLAotICAgICAgJ2NsaWNrICNidG4tZXhwbGFpbi10aW1pbmcnOiAnb25fZXhwbGFpbl90 aW1pbmcnLAotICAgICAgJ2NsaWNrICNidG4tZXhwbGFpbi1zdW1tYXJ5JzogJ29uX2V4cGxhaW5f c3VtbWFyeScsCi0gICAgICAnY2xpY2sgI2J0bi1leHBsYWluLXNldHRpbmdzJzogJ29uX2V4cGxh aW5fc2V0dGluZ3MnLAotICAgICAgJ2NoYW5nZSAubGltaXQnOiAnb25fbGltaXRfY2hhbmdlJywK LSAgICAgICdrZXlkb3duJzogJ2tleUFjdGlvbicsCi0gICAgICAvLyBDb21tZW50IG9wdGlvbnMK LSAgICAgICdjbGljayAjYnRuLWNvbW1lbnQtY29kZSc6ICdvbl90b2dnbGVfY29tbWVudF9ibG9j a19jb2RlJywKLSAgICAgICdjbGljayAjYnRuLXRvZ2dsZS1jb21tZW50LWJsb2NrJzogJ29uX3Rv Z2dsZV9jb21tZW50X2Jsb2NrX2NvZGUnLAotICAgICAgJ2NsaWNrICNidG4tY29tbWVudC1saW5l JzogJ29uX2NvbW1lbnRfbGluZV9jb2RlJywKLSAgICAgICdjbGljayAjYnRuLXVuY29tbWVudC1s aW5lJzogJ29uX3VuY29tbWVudF9saW5lX2NvZGUnLAotICAgICAgLy8gSW5kZW50YXRpb24gb3B0 aW9ucwotICAgICAgJ2NsaWNrICNidG4taW5kZW50LWNvZGUnOiAnb25faW5kZW50X2NvZGUnLAot ICAgICAgJ2NsaWNrICNidG4tdW5pbmRlbnQtY29kZSc6ICdvbl91bmluZGVudF9jb2RlJywKLSAg ICAgIC8vIEZvcm1hdAotICAgICAgJ2NsaWNrICNidG4tZm9ybWF0LXNxbCc6ICdvbl9mb3JtYXRf c3FsJywKLSAgICAgIC8vIFRyYW5zYWN0aW9uIGNvbnRyb2wKLSAgICAgICdjbGljayAjYnRuLWNv bW1pdCc6ICdvbl9jb21taXRfdHJhbnNhY3Rpb24nLAotICAgICAgJ2NsaWNrICNidG4tcm9sbGJh Y2snOiAnb25fcm9sbGJhY2tfdHJhbnNhY3Rpb24nLAotICAgICAgLy8gTWFuYWdlIE1hY3Jvcwot ICAgICAgJ2NsaWNrICNidG4tbWFuYWdlLW1hY3Jvcyc6ICdvbl9tYW5hZ2VfbWFjcm9zJywKLSAg ICAgICdjbGljayAuYnRuLW1hY3JvJzogJ29uX2V4ZWN1dGVfbWFjcm8nLAotICAgIH0sCi0KLSAg ICByZW5kZXJfY29ubmVjdGlvbjogZnVuY3Rpb24oZGF0YV9saXN0KSB7Ci0gICAgICBpZih0aGlz LmhhbmRsZXIuaXNfcXVlcnlfdG9vbCkgewotICAgICAgICB2YXIgZHJvcGRvd25FbGVtZW50ID0g ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2Nvbm5lY3Rpb25zLWxpc3QnKTsKLSAgICAgICAgZHJv cGRvd25FbGVtZW50LmlubmVySFRNTCA9ICcnOwotICAgICAgICBkYXRhX2xpc3QuZm9yRWFjaCgo b3B0aW9uLCBpbmRleCkgPT4gewotICAgICAgICAgIHZhciBvcHQgPSAnJzsKLSAgICAgICAgICBp ZiAoJ2lzX3NlbGVjdGVkJyBpbiBvcHRpb24gJiYgb3B0aW9uWydpc19zZWxlY3RlZCddKSB7Ci0g ICAgICAgICAgICBvcHQgPSAnPGxpIGNsYXNzPSJjb25uZWN0aW9uLWxpc3QtaXRlbSBzZWxlY3Rl ZC1jb25uZWN0aW9uIiBkYXRhLWluZGV4PScrIGluZGV4ICsnPjxhIGNsYXNzPSJkcm9wZG93bi1p dGVtIiBocmVmPSIjIiB0YWJpbmRleD0iMCI+JysgXy5lc2NhcGUob3B0aW9uLmNvbm5fdGl0bGUp ICsnPC9hPjwvbGk+JzsKLSAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgb3B0ID0gJzxs aSBjbGFzcz0iY29ubmVjdGlvbi1saXN0LWl0ZW0iIGRhdGEtaW5kZXg9JysgaW5kZXggKyc+PGEg Y2xhc3M9ImRyb3Bkb3duLWl0ZW0iIGhyZWY9IiMiIHRhYmluZGV4PSIwIj4nKyBfLmVzY2FwZShv cHRpb24uY29ubl90aXRsZSkgKyc8L2E+PC9saT4nOwotICAgICAgICAgIH0KLSAgICAgICAgICAk KCcjY29ubmVjdGlvbnMtbGlzdCcpLmFwcGVuZChvcHQpOwotICAgICAgICB9KTsKLSAgICAgICAg dmFyIHNlbGYgPSB0aGlzOwotICAgICAgICAkKCcuY29ubmVjdGlvbi1saXN0LWl0ZW0nKS5jbGlj ayhmdW5jdGlvbigpIHsKLSAgICAgICAgICBzZWxmLmdldF9jb25uZWN0aW9uX2RhdGEodGhpcyk7 Ci0gICAgICAgIH0pOwotICAgICAgfSBlbHNlIHsKLSAgICAgICAgJCgnLmNvbm4taW5mby1kZCcp LmhpZGUoKTsKLSAgICAgICAgJCgnLmNvbm5lY3Rpb24tZGF0YScpLmNzcyh7cG9pbnRlckV2ZW50 czogJ25vbmUnLCBjdXJzb3I6ICdhcnJvdyd9KTsKLSAgICAgIH0KLSAgICB9LAotCi0gICAgZ2V0 X2Nvbm5lY3Rpb25fZGF0YTogZnVuY3Rpb24oZXZlbnQpewotICAgICAgdmFyIGluZGV4ID0gJChl dmVudCkuYXR0cignZGF0YS1pbmRleCcpOwotICAgICAgdmFyIGNvbm5lY3Rpb25fZGV0YWlscyA9 IHRoaXMuY29ubmVjdGlvbl9saXN0W2luZGV4XTsKLSAgICAgIGlmKGNvbm5lY3Rpb25fZGV0YWls cy5zZXJ2ZXJfZ3JvdXApIHsKLSAgICAgICAgdGhpcy5vbl9jaGFuZ2VfY29ubmVjdGlvbihjb25u ZWN0aW9uX2RldGFpbHMpOwotICAgICAgfSBlbHNlIHsKLSAgICAgICAgdGhpcy5vbl9uZXdfY29u bmVjdGlvbigpOwotICAgICAgfQotCi0gICAgfSwKLQotICAgIHJlZmxlY3RQcmVmZXJlbmNlczog ZnVuY3Rpb24oKSB7Ci0gICAgICBsZXQgc2VsZiA9IHRoaXMsCi0gICAgICAgIGJyb3dzZXIgPSBw Z1dpbmRvdy5kZWZhdWx0LnBnQWRtaW4uQnJvd3NlciwKLSAgICAgICAgYnJvd3Nlcl9wcmVmZXJl bmNlcyA9IGJyb3dzZXIuZ2V0X3ByZWZlcmVuY2VzX2Zvcl9tb2R1bGUoJ2Jyb3dzZXInKTsKLQot ICAgICAgLyogcGdCcm93c2VyIGlzIGRpZmZlcmVudCBvYmogZnJvbSBwZ1dpbmRvdy5kZWZhdWx0 LnBnQWRtaW4uQnJvd3NlcgotICAgICAgICogTWFrZSBzdXJlIHRvIGdldCBvbmx5IHRoZSBsYXRl c3QgdXBkYXRlLiBPbGRlciB2ZXJzaW9ucyB3aWxsIGJlIGRpc2NhcmRlZAotICAgICAgICogaWYg ZnVuY3Rpb24gaXMgY2FsbGVkIGJ5IG9sZGVyIGV2ZW50cy4KLSAgICAgICAqIFRoaXMgd29ya3Mg Zm9yIG5ldyB0YWIgc3FsIGVkaXRvciBhbHNvIGFzIGl0IHBvbGxzIGlmIGxhdGVzdCB2ZXJzaW9u IGF2YWlsYWJsZQotICAgICAgICogVGhpcyBpcyByZXF1aXJlZCBiZWNhdXNlIHNxbCBlZGl0b3Ig Y2FuIHVwZGF0ZSBwcmVmZXJlbmNlcyBkaXJlY3RseQotICAgICAgICovCi0gICAgICBpZihwZ0Jy b3dzZXIucHJlZmVyZW5jZV92ZXJzaW9uKCkgPCBicm93c2VyLnByZWZlcmVuY2VfdmVyc2lvbigp KXsKLSAgICAgICAgcGdCcm93c2VyLnByZWZlcmVuY2VfdmVyc2lvbihicm93c2VyLnByZWZlcmVu Y2VfdmVyc2lvbigpKTsKLSAgICAgICAgc2VsZi5wcmVmZXJlbmNlcyA9IGJyb3dzZXIuZ2V0X3By ZWZlcmVuY2VzX2Zvcl9tb2R1bGUoJ3NxbGVkaXRvcicpOwotICAgICAgICBzZWxmLnByZWZlcmVu Y2VzLnNob3dfcXVlcnlfdG9vbCA9IGJyb3dzZXJfcHJlZmVyZW5jZXMuc3ViX21lbnVfcXVlcnlf dG9vbDsKLSAgICAgICAgc2VsZi5oYW5kbGVyLnByZWZlcmVuY2VzID0gc2VsZi5wcmVmZXJlbmNl czsKLSAgICAgICAgcXVlcnlUb29sUHJlZi51cGRhdGVVSVByZWZlcmVuY2VzKHNlbGYpOwotICAg ICAgfQotICAgIH0sCi0KLSAgICBidWlsZERlZmF1bHRMYXlvdXQ6IGZ1bmN0aW9uKGRvY2tlcikg ewotICAgICAgbGV0IHNxbF9wYW5lbF9vYmogPSBkb2NrZXIuYWRkUGFuZWwoJ3NxbF9wYW5lbCcs IHdjRG9ja2VyLkRPQ0suVE9QKTsKLQotICAgICAgZG9ja2VyLmFkZFBhbmVsKCdzY3JhdGNoJywg d2NEb2NrZXIuRE9DSy5SSUdIVCwgc3FsX3BhbmVsX29iaik7Ci0gICAgICBkb2NrZXIuYWRkUGFu ZWwoJ2hpc3RvcnknLCB3Y0RvY2tlci5ET0NLLlNUQUNLRUQsIHNxbF9wYW5lbF9vYmopOwotCi0g ICAgICBsZXQgZGF0YV9vdXRwdXRfcGFuZWwgPSBkb2NrZXIuYWRkUGFuZWwoJ2RhdGFfb3V0cHV0 Jywgd2NEb2NrZXIuRE9DSy5CT1RUT00pOwotICAgICAgZG9ja2VyLmFkZFBhbmVsKCdleHBsYWlu Jywgd2NEb2NrZXIuRE9DSy5TVEFDS0VELCBkYXRhX291dHB1dF9wYW5lbCk7Ci0gICAgICBkb2Nr ZXIuYWRkUGFuZWwoJ21lc3NhZ2VzJywgd2NEb2NrZXIuRE9DSy5TVEFDS0VELCBkYXRhX291dHB1 dF9wYW5lbCk7Ci0gICAgICBkb2NrZXIuYWRkUGFuZWwoJ25vdGlmaWNhdGlvbnMnLCB3Y0RvY2tl ci5ET0NLLlNUQUNLRUQsIGRhdGFfb3V0cHV0X3BhbmVsKTsKLSAgICB9LAotCi0gICAgc2V0X3Nl cnZlcl92ZXJzaW9uOiBmdW5jdGlvbihzZXJ2ZXJfdmVyKSB7Ci0gICAgICBsZXQgc2VsZiA9IHRo aXM7Ci0gICAgICBzZWxmLnNlcnZlcl92ZXIgPSBzZXJ2ZXJfdmVyOwotCi0gICAgICB0aGlzLiRl bC5maW5kKCcqW2RhdGEtbWluLXZlcl0nKS5tYXAoZnVuY3Rpb24oKSB7Ci0gICAgICAgIGxldCBt aW5WZXIgPSAwLAotICAgICAgICAgIGVsZSA9ICQodGhpcyk7Ci0gICAgICAgIG1pblZlciA9IHBh cnNlSW50KGVsZS5hdHRyKCdkYXRhLW1pbi12ZXInKSk7Ci0gICAgICAgIGlmKG1pblZlciA+IHNl bGYuc2VydmVyX3ZlcikgewotICAgICAgICAgIGVsZS5hZGRDbGFzcygnZC1ub25lJyk7Ci0gICAg ICAgIH0gZWxzZSB7Ci0gICAgICAgICAgZWxlLnJlbW92ZUNsYXNzKCdkLW5vbmUnKTsKLSAgICAg ICAgfQotICAgICAgfSk7Ci0gICAgfSwKLQotICAgIHNldF9lZGl0b3JfdGl0bGU6IGZ1bmN0aW9u KHRpdGxlKSB7Ci0gICAgICB0aGlzLiRlbC5maW5kKCcuZWRpdG9yLXRpdGxlJykudGV4dChfLnVu ZXNjYXBlKHRpdGxlKSk7Ci0gICAgICB0aGlzLnJlbmRlcl9jb25uZWN0aW9uKHRoaXMuY29ubmVj dGlvbl9saXN0KTsKLSAgICB9LAotCi0gICAgLy8gVGhpcyBmdW5jdGlvbiBpcyB1c2VkIHRvIHJl bmRlciB0aGUgdGVtcGxhdGUuCi0gICAgcmVuZGVyOiBmdW5jdGlvbigpIHsKLSAgICAgIHZhciBz ZWxmID0gdGhpczsKLQotICAgICAgLy8gVXBkYXRlcyBjb25uZWN0aW9uIHN0YXR1cyBmbGFnCi0g ICAgICBzZWxmLmdhaW5fZm9jdXMgPSBmdW5jdGlvbigpIHsKLSAgICAgICAgc2V0VGltZW91dChm dW5jdGlvbigpIHsKLSAgICAgICAgICBTcWxFZGl0b3JVdGlscy51cGRhdGVDb25uZWN0aW9uU3Rh dHVzRmxhZygndmlzaWJsZScpOwotICAgICAgICB9LCAxMDApOwotICAgICAgfTsKLSAgICAgIC8v IFVwZGF0ZXMgY29ubmVjdGlvbiBzdGF0dXMgZmxhZwotICAgICAgc2VsZi5sb3N0X2ZvY3VzID0g ZnVuY3Rpb24oKSB7Ci0gICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7Ci0gICAgICAgICAg U3FsRWRpdG9yVXRpbHMudXBkYXRlQ29ubmVjdGlvblN0YXR1c0ZsYWcoJ2hpZGRlbicpOwotICAg ICAgICB9LCAxMDApOwotICAgICAgfTsKLQotICAgICAgLy8gQ3JlYXRlIG1haW4gd2NEb2NrZXIg aW5zdGFuY2UKLSAgICAgIHNlbGYuZG9ja2VyID0gbmV3IHdjRG9ja2VyKAotICAgICAgICAnI2Vk aXRvci1wYW5lbCcsIHsKLSAgICAgICAgICBhbGxvd0NvbnRleHRNZW51OiB0cnVlLAotICAgICAg ICAgIGFsbG93Q29sbGFwc2U6IGZhbHNlLAotICAgICAgICAgIGxvYWRpbmdDbGFzczogJ3BnLXNw LWljb24nLAotICAgICAgICAgIHRoZW1lUGF0aDogdXJsX2Zvcignc3RhdGljJywgewotICAgICAg ICAgICAgJ2ZpbGVuYW1lJzogJ2NzcycsCi0gICAgICAgICAgfSksCi0gICAgICAgICAgdGhlbWU6 ICd3ZWJjYWJpbi5vdmVycmlkZXMuY3NzJywKLSAgICAgICAgfQotICAgICAgKTsKLQotICAgICAg Ly8gQ3JlYXRlIHRoZSBwYW5lbHMKLSAgICAgIHZhciBzcWxfcGFuZWwgPSBuZXcgcGdBZG1pbi5C cm93c2VyLlBhbmVsKHsKLSAgICAgICAgbmFtZTogJ3NxbF9wYW5lbCcsCi0gICAgICAgIHRpdGxl OiBnZXR0ZXh0KCdRdWVyeSBFZGl0b3InKSwKLSAgICAgICAgd2lkdGg6ICc3NSUnLAotICAgICAg ICBoZWlnaHQ6ICczMyUnLAotICAgICAgICBpc0Nsb3NlYWJsZTogZmFsc2UsCi0gICAgICAgIGlz UHJpdmF0ZTogdHJ1ZSwKLSAgICAgIH0pOwotCi0gICAgICB2YXIgZGF0YV9vdXRwdXQgPSBuZXcg cGdBZG1pbi5Ccm93c2VyLlBhbmVsKHsKLSAgICAgICAgbmFtZTogJ2RhdGFfb3V0cHV0JywKLSAg ICAgICAgdGl0bGU6IGdldHRleHQoJ0RhdGEgT3V0cHV0JyksCi0gICAgICAgIHdpZHRoOiAnMTAw JScsCi0gICAgICAgIGhlaWdodDogJzEwMCUnLAotICAgICAgICBpc0Nsb3NlYWJsZTogZmFsc2Us Ci0gICAgICAgIGlzUHJpdmF0ZTogdHJ1ZSwKLSAgICAgICAgZXh0cmFDbGFzc2VzOiAnaGlkZS12 ZXJ0aWNhbC1zY3JvbGxiYXInLAotICAgICAgICBjb250ZW50OiBgPGRpdiBjbGFzcz0iZGF0YS1v dXRwdXQtY29udGFpbmVyIj4KLSAgICAgICAgICA8ZGl2IGlkPSJmZXRjaGluZ19kYXRhIiBjbGFz cz0icGctc3AtY29udGFpbmVyIHNxbC1lZGl0b3ItYnVzeS1mZXRjaGluZyI+Ci0gICAgICAgICAg ICAgIDxkaXYgY2xhc3M9InBnLXNwLWNvbnRlbnQiPgotICAgICAgICAgICAgICAgICAgPGRpdiBj bGFzcz0icm93Ij4KLSAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wtMTIgcGct c3AtaWNvbiBzcWwtZWRpdG9yLWJ1c3ktaWNvbiI+PC9kaXY+Ci0gICAgICAgICAgICAgICAgICA8 L2Rpdj4KLSAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InJvdyI+PGRpdiBjbGFzcz0iY29s LTEyIHBnLXNwLXRleHQgc3FsLWVkaXRvci1idXN5LXRleHQiPiR7Z2V0dGV4dCgnTG9hZGluZy4u LicpfTwvZGl2PjwvZGl2PgotICAgICAgICAgICAgICA8L2Rpdj4KLSAgICAgICAgICA8L2Rpdj4K LSAgICAgICAgICA8ZGl2IGlkID0iZGF0YWdyaWQiIGNsYXNzPSJzcWwtZWRpdG9yLWdyaWQtY29u dGFpbmVyIHRleHQtMTIiIHRhYmluZGV4PSIwIj4ke0VNUFRZX0RBVEFfT1VUUFVUX0NPTlRFTlR9 PC9kaXY+Ci0gICAgICAgIDwvZGl2PmAsCi0gICAgICB9KTsKLQotICAgICAgdmFyIGV4cGxhaW4g PSBuZXcgcGdBZG1pbi5Ccm93c2VyLlBhbmVsKHsKLSAgICAgICAgbmFtZTogJ2V4cGxhaW4nLAot ICAgICAgICB0aXRsZTogZ2V0dGV4dCgnRXhwbGFpbicpLAotICAgICAgICB3aWR0aDogJzEwMCUn LAotICAgICAgICBoZWlnaHQ6ICcxMDAlJywKLSAgICAgICAgaXNDbG9zZWFibGU6IGZhbHNlLAot ICAgICAgICBpc1ByaXZhdGU6IHRydWUsCi0gICAgICAgIGNvbnRlbnQ6IGA8ZGl2IGNsYXNzPSJz cWwtZWRpdG9yLWV4cGxhaW4gcGctZWwtY29udGFpbmVyIiB0YWJpbmRleD0iMCI+JHtFTVBUWV9F WFBMQUlOX0NPTlRFTlR9PC9kaXY+YCwKLSAgICAgIH0pOwotCi0gICAgICB2YXIgbWVzc2FnZXMg PSBuZXcgcGdBZG1pbi5Ccm93c2VyLlBhbmVsKHsKLSAgICAgICAgbmFtZTogJ21lc3NhZ2VzJywK LSAgICAgICAgdGl0bGU6IGdldHRleHQoJ01lc3NhZ2VzJyksCi0gICAgICAgIHdpZHRoOiAnMTAw JScsCi0gICAgICAgIGhlaWdodDogJzEwMCUnLAotICAgICAgICBpc0Nsb3NlYWJsZTogZmFsc2Us Ci0gICAgICAgIGlzUHJpdmF0ZTogdHJ1ZSwKLSAgICAgICAgY29udGVudDogJzxkaXYgcm9sZT0i c3RhdHVzIiBjbGFzcz0ic3FsLWVkaXRvci1tZXNzYWdlIiB0YWJpbmRleD0iMCI+PC9kaXY+JywK LSAgICAgIH0pOwotCi0gICAgICB2YXIgaGlzdG9yeSA9IG5ldyBwZ0FkbWluLkJyb3dzZXIuUGFu ZWwoewotICAgICAgICBuYW1lOiAnaGlzdG9yeScsCi0gICAgICAgIHRpdGxlOiBnZXR0ZXh0KCdR dWVyeSBIaXN0b3J5JyksCi0gICAgICAgIHdpZHRoOiAnMTAwJScsCi0gICAgICAgIGhlaWdodDog JzMzJScsCi0gICAgICAgIGlzQ2xvc2VhYmxlOiBmYWxzZSwKLSAgICAgICAgaXNQcml2YXRlOiB0 cnVlLAotICAgICAgICBjb250ZW50OiAnPGRpdiBpZCA9Imhpc3RvcnlfZ3JpZCIgY2xhc3M9InNx bC1lZGl0b3ItaGlzdG9yeS1jb250YWluZXIiIHRhYmluZGV4PSIwIj48L2Rpdj4nLAotICAgICAg fSk7Ci0KLSAgICAgIHZhciBzY3JhdGNoID0gbmV3IHBnQWRtaW4uQnJvd3Nlci5QYW5lbCh7Ci0g ICAgICAgIG5hbWU6ICdzY3JhdGNoJywKLSAgICAgICAgdGl0bGU6IGdldHRleHQoJ1NjcmF0Y2gg UGFkJyksCi0gICAgICAgIHdpZHRoOiAnMjUlJywKLSAgICAgICAgaGVpZ2h0OiAnMzMlJywKLSAg ICAgICAgaXNDbG9zZWFibGU6IHRydWUsCi0gICAgICAgIGlzUHJpdmF0ZTogZmFsc2UsCi0gICAg ICAgIGNvbnRlbnQ6ICc8ZGl2IGNsYXNzPSJzcWwtc2NyYXRjaCI+PHRleHRhcmVhIHdyYXA9Im9m ZiIgdGFiaW5kZXg9IjAiPjwvdGV4dGFyZWE+PC9kaXY+JywKLSAgICAgIH0pOwotCi0gICAgICB2 YXIgbm90aWZpY2F0aW9ucyA9IG5ldyBwZ0FkbWluLkJyb3dzZXIuUGFuZWwoewotICAgICAgICBu YW1lOiAnbm90aWZpY2F0aW9ucycsCi0gICAgICAgIHRpdGxlOiBnZXR0ZXh0KCdOb3RpZmljYXRp b25zJyksCi0gICAgICAgIHdpZHRoOiAnMTAwJScsCi0gICAgICAgIGhlaWdodDogJzEwMCUnLAot ICAgICAgICBpc0Nsb3NlYWJsZTogZmFsc2UsCi0gICAgICAgIGlzUHJpdmF0ZTogdHJ1ZSwKLSAg ICAgICAgY29udGVudDogJzxkaXYgaWQgPSJub3RpZmljYXRpb25fZ3JpZCIgY2xhc3M9InNxbC1l ZGl0b3Itbm90aWZpY2F0aW9ucyIgdGFiaW5kZXg9IjAiPjwvZGl2PicsCi0gICAgICB9KTsKLQot ICAgICAgdmFyIGdlb21ldHJ5X3ZpZXdlciA9IG5ldyBwZ0FkbWluLkJyb3dzZXIuUGFuZWwoewot ICAgICAgICBuYW1lOiAnZ2VvbWV0cnlfdmlld2VyJywKLSAgICAgICAgdGl0bGU6IGdldHRleHQo J0dlb21ldHJ5IFZpZXdlcicpLAotICAgICAgICB3aWR0aDogJzEwMCUnLAotICAgICAgICBoZWln aHQ6ICcxMDAlJywKLSAgICAgICAgaXNDbG9zZWFibGU6IHRydWUsCi0gICAgICAgIGlzUHJpdmF0 ZTogdHJ1ZSwKLSAgICAgICAgaXNMYXlvdXRNZW1iZXI6IGZhbHNlLAotICAgICAgICBjb250ZW50 OiAnPGRpdiBpZCA9Imdlb21ldHJ5X3ZpZXdlcl9wYW5lbCIgY2xhc3M9InNxbC1lZGl0b3ItZ2Vv bWV0cnktdmlld2VyIiB0YWJpbmRleD0iMCI+PC9kaXY+JywKLSAgICAgIH0pOwotCi0gICAgICAv LyBMb2FkIGFsbCB0aGUgY3JlYXRlZCBwYW5lbHMKLSAgICAgIHNxbF9wYW5lbC5sb2FkKHNlbGYu ZG9ja2VyKTsKLSAgICAgIGRhdGFfb3V0cHV0LmxvYWQoc2VsZi5kb2NrZXIpOwotICAgICAgZXhw bGFpbi5sb2FkKHNlbGYuZG9ja2VyKTsKLSAgICAgIG1lc3NhZ2VzLmxvYWQoc2VsZi5kb2NrZXIp OwotICAgICAgaGlzdG9yeS5sb2FkKHNlbGYuZG9ja2VyKTsKLSAgICAgIHNjcmF0Y2gubG9hZChz ZWxmLmRvY2tlcik7Ci0gICAgICBub3RpZmljYXRpb25zLmxvYWQoc2VsZi5kb2NrZXIpOwotICAg ICAgZ2VvbWV0cnlfdmlld2VyLmxvYWQoc2VsZi5kb2NrZXIpOwotCi0gICAgICAvLyByZXN0b3Jl IHRoZSBsYXlvdXQgaWYgcHJlc2VudCBlbHNlIGZhbGxiYWNrIHRvIGJ1aWxkRGVmYXVsdExheW91 dAotICAgICAgcGdCcm93c2VyLnJlc3RvcmVfbGF5b3V0KHNlbGYuZG9ja2VyLCB0aGlzLmxheW91 dCwgdGhpcy5idWlsZERlZmF1bHRMYXlvdXQuYmluZCh0aGlzKSk7Ci0KLSAgICAgIHNlbGYuZG9j a2VyLm9uKHdjRG9ja2VyLkVWRU5ULkxBWU9VVF9DSEFOR0VELCBmdW5jdGlvbigpIHsKLSAgICAg ICAgcGdCcm93c2VyLnNhdmVfY3VycmVudF9sYXlvdXQoJ1NRTEVkaXRvci9MYXlvdXQnLCBzZWxm LmRvY2tlcik7Ci0gICAgICB9KTsKLQotICAgICAgc2VsZi5zcWxfcGFuZWxfb2JqID0gc2VsZi5k b2NrZXIuZmluZFBhbmVscygnc3FsX3BhbmVsJylbMF07Ci0gICAgICBzZWxmLmhpc3RvcnlfcGFu ZWwgPSBzZWxmLmRvY2tlci5maW5kUGFuZWxzKCdoaXN0b3J5JylbMF07Ci0gICAgICBzZWxmLmRh dGFfb3V0cHV0X3BhbmVsID0gc2VsZi5kb2NrZXIuZmluZFBhbmVscygnZGF0YV9vdXRwdXQnKVsw XTsKLSAgICAgIHNlbGYuZXhwbGFpbl9wYW5lbCA9IHNlbGYuZG9ja2VyLmZpbmRQYW5lbHMoJ2V4 cGxhaW4nKVswXTsKLSAgICAgIHNlbGYubWVzc2FnZXNfcGFuZWwgPSBzZWxmLmRvY2tlci5maW5k UGFuZWxzKCdtZXNzYWdlcycpWzBdOwotICAgICAgc2VsZi5ub3RpZmljYXRpb25zX3BhbmVsID0g c2VsZi5kb2NrZXIuZmluZFBhbmVscygnbm90aWZpY2F0aW9ucycpWzBdOwotCi0gICAgICBpZiAo Xy5pc1VuZGVmaW5lZChzZWxmLnNxbF9wYW5lbF9vYmopIHx8IF8uaXNVbmRlZmluZWQoc2VsZi5o aXN0b3J5X3BhbmVsKSB8fAotICAgICAgIF8uaXNVbmRlZmluZWQoc2VsZi5kYXRhX291dHB1dF9w YW5lbCkgfHwgXy5pc1VuZGVmaW5lZChzZWxmLmV4cGxhaW5fcGFuZWwpIHx8Ci0gICAgICAgXy5p c1VuZGVmaW5lZChzZWxmLm1lc3NhZ2VzX3BhbmVsKSB8fCBfLmlzVW5kZWZpbmVkKHNlbGYubm90 aWZpY2F0aW9uc19wYW5lbCkpIHsKLSAgICAgICAgTm90aWZ5LmFsZXJ0KAotICAgICAgICAgIGdl dHRleHQoJ1BhbmVsIExvYWRpbmcgRXJyb3InKSwKLSAgICAgICAgICBnZXR0ZXh0KCdTb21ldGhp bmcgd2VudCB3cm9uZyB3aGlsZSBsb2FkaW5nIHRoZSBwYW5lbHMuJwotICAgICAgICAgICsgJyBQ bGVhc2UgbWFrZSBzdXJlIHRvIHJlc2V0IHRoZSBsYXlvdXQgKEZpbGUgPiBSZXNldCBMYXlvdXQp IGZvciB0aGUgYmV0dGVyIHVzZXIgZXhwZXJpZW5jZS4nKQotICAgICAgICApOwotICAgICAgfQot Ci0gICAgICAvLyBSZWZyZXNoIENvZGUgbWlycm9yIG9uIFNRTCBwYW5lbCByZXNpemUgdG8KLSAg ICAgIC8vIGRpc3BsYXkgaXRzIHZhbHVlIHByb3Blcmx5Ci0gICAgICBzZWxmLnNxbF9wYW5lbF9v Ymoub24od2NEb2NrZXIuRVZFTlQuUkVTSVpFX0VOREVELCBmdW5jdGlvbigpIHsKLSAgICAgICAg c2V0VGltZW91dChmdW5jdGlvbigpIHsKLSAgICAgICAgICBpZiAoc2VsZiAmJiBzZWxmLnF1ZXJ5 X3Rvb2xfb2JqKSB7Ci0gICAgICAgICAgICBzZWxmLnF1ZXJ5X3Rvb2xfb2JqLnJlZnJlc2goKTsK LSAgICAgICAgICB9Ci0gICAgICAgIH0sIDIwMCk7Ci0gICAgICB9KTsKLQotICAgICAgc2VsZi5y ZW5kZXJfaGlzdG9yeV9ncmlkKCk7Ci0gICAgICBwZ0Jyb3dzZXIuRXZlbnRzLm9uKCdwZ2FkbWlu OnF1ZXJ5X3Rvb2w6Y29ubmVjdGVkOicrc2VsZi5oYW5kbGVyLnRyYW5zSWQsICgpPT57Ci0gICAg ICAgIHNlbGYuZmV0Y2hfcXVlcnlfaGlzdG9yeSgpOwotICAgICAgfSk7Ci0KLSAgICAgIHNlbGYu aGFuZGxlci5vbigncGdhZG1pbi1zcWxlZGl0b3I6Y2hlY2tfc3luY2hyb25vdXNfZGJfbmFtZV9j aGFuZ2UnLCAocmVzdWx0KT0+ewotICAgICAgICBzZWxmLmhhbmRsZXIuY2hlY2tfZGJfbmFtZV9j aGFuZ2UocmVzdWx0KTsKLSAgICAgIH0pOwotCi0gICAgICBxdWVyeVRvb2xOb3RpZmljYXRpb25z LnJlbmRlck5vdGlmaWNhdGlvbnNHcmlkKHNlbGYubm90aWZpY2F0aW9uc19wYW5lbCk7Ci0KLSAg ICAgIHZhciB0ZXh0X2NvbnRhaW5lciA9ICQoJzx0ZXh0YXJlYSBpZD0ic3FsX3F1ZXJ5X3Rvb2wi IHRhYmluZGV4PSItMSI+PC90ZXh0YXJlYT4nKTsKLSAgICAgIHZhciBvdXRwdXRfY29udGFpbmVy ID0gJCgnPGxhYmVsIGZvcj0ic3FsX3F1ZXJ5X3Rvb2wiIGNsYXNzPSJzci1vbmx5Ij5TUUwgRWRp dG9yPC9sYWJlbD48ZGl2IGlkPSJvdXRwdXQtcGFuZWwiIHRhYmluZGV4PSIwIj48L2Rpdj4nKS5h cHBlbmQodGV4dF9jb250YWluZXIpOwotICAgICAgc2VsZi5zcWxfcGFuZWxfb2JqLiRjb250YWlu ZXIuZmluZCgnLnBnLXBhbmVsLWNvbnRlbnQnKS5hcHBlbmQob3V0cHV0X2NvbnRhaW5lcik7Ci0K LSAgICAgIHNlbGYucXVlcnlfdG9vbF9vYmogPSBDb2RlTWlycm9yLmZyb21UZXh0QXJlYSh0ZXh0 X2NvbnRhaW5lci5nZXQoMCksIHsKLSAgICAgICAgdGFiaW5kZXg6ICcwJywKLSAgICAgICAgbGlu ZU51bWJlcnM6IHRydWUsCi0gICAgICAgIHN0eWxlU2VsZWN0ZWRUZXh0OiB0cnVlLAotICAgICAg ICBtb2RlOiAndGV4dC94LXBnc3FsJywKLSAgICAgICAgZm9sZE9wdGlvbnM6IHsKLSAgICAgICAg ICB3aWRnZXQ6ICdcdTIwMjYnLAotICAgICAgICB9LAotICAgICAgICBmb2xkR3V0dGVyOiB0cnVl LAotICAgICAgICBndXR0ZXJzOiBbJ0NvZGVNaXJyb3ItbGluZW51bWJlcnMnLCAnQ29kZU1pcnJv ci1mb2xkZ3V0dGVyJ10sCi0gICAgICAgIGV4dHJhS2V5czogcGdCcm93c2VyLmVkaXRvcl9zaG9y dGN1dF9rZXlzLAotICAgICAgICBzY3JvbGxiYXJTdHlsZTogJ3NpbXBsZScsCi0gICAgICAgIGRy YWdEcm9wOiBmYWxzZSwKLSAgICAgICAgc2NyZWVuUmVhZGVyTGFiZWw6IGdldHRleHQoJ1NRTCBl ZGl0b3InKSwKLSAgICAgIH0pOwotCi0gICAgICBpZihzZWxmLmhhbmRsZXIuaXNfcXVlcnlfdG9v bCkgewotICAgICAgICBzZWxmLnF1ZXJ5X3Rvb2xfb2JqLnNldE9wdGlvbignZHJhZ0Ryb3AnLCB0 cnVlKTsKLSAgICAgICAgc2VsZi5xdWVyeV90b29sX29iai5vbignZHJvcCcsIChlZGl0b3IsIGUp ID0+IHsKLSAgICAgICAgICB2YXIgZHJvcERldGFpbHMgPSBudWxsOwotICAgICAgICAgIHRyeSB7 Ci0gICAgICAgICAgICBkcm9wRGV0YWlscyA9IEpTT04ucGFyc2UoZS5kYXRhVHJhbnNmZXIuZ2V0 RGF0YSgndGV4dCcpKTsKLQotICAgICAgICAgICAgLyogU3RvcCBmaXJlZm94IGZyb20gcmVkaXJl Y3RpbmcgKi8KLQotICAgICAgICAgICAgaWYoZS5wcmV2ZW50RGVmYXVsdCkgewotICAgICAgICAg ICAgICBlLnByZXZlbnREZWZhdWx0KCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiAo ZS5zdG9wUHJvcGFnYXRpb24pIHsKLSAgICAgICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTsK LSAgICAgICAgICAgIH0KLSAgICAgICAgICB9IGNhdGNoKGVycm9yKSB7Ci0gICAgICAgICAgICAv KiBpZiBwYXJzaW5nIGZhaWxzLCBpdCBtdXN0IGJlIHRoZSBkcmFnIGludGVybmFsIG9mIGNvZGVt aXJyb3IgdGV4dCAqLwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgIH0KLQotICAgICAg ICAgIHZhciBjdXJzb3IgPSBlZGl0b3IuY29vcmRzQ2hhcih7Ci0gICAgICAgICAgICBsZWZ0OiBl LngsCi0gICAgICAgICAgICB0b3A6IGUueSwKLSAgICAgICAgICB9KTsKLSAgICAgICAgICBlZGl0 b3IucmVwbGFjZVJhbmdlKGRyb3BEZXRhaWxzLnRleHQsIGN1cnNvcik7Ci0gICAgICAgICAgZWRp dG9yLmZvY3VzKCk7Ci0gICAgICAgICAgZWRpdG9yLnNldFNlbGVjdGlvbih7Ci0gICAgICAgICAg ICAuLi5jdXJzb3IsCi0gICAgICAgICAgICBjaDogY3Vyc29yLmNoICsgZHJvcERldGFpbHMuY3Vy LmZyb20sCi0gICAgICAgICAgfSx7Ci0gICAgICAgICAgICAuLi5jdXJzb3IsCi0gICAgICAgICAg ICBjaDogY3Vyc29yLmNoICtkcm9wRGV0YWlscy5jdXIudG8sCi0gICAgICAgICAgfSk7Ci0gICAg ICAgIH0pOwotICAgICAgfQotCi0gICAgICBwZ0Jyb3dzZXIuRXZlbnRzLm9uKCdwZ2FkbWluOnF1 ZXJ5X3Rvb2w6c3FsX3BhbmVsOmZvY3VzJywgKCk9PnsKLSAgICAgICAgc2VsZi5xdWVyeV90b29s X29iai5mb2N1cygpOwotICAgICAgfSk7Ci0KLSAgICAgIHBnQnJvd3Nlci5FdmVudHMub24oJ3Bn YWRtaW46cXVlcnlfdG9vbDpleHBsYWluOmZvY3VzJywgKCk9PnsKLSAgICAgICAgc2V0VGltZW91 dChmdW5jdGlvbiAoKSB7Ci0gICAgICAgICAgJCgnLnNxbC1lZGl0b3ItZXhwbGFpbiAuYmFja2Zv cm0tdGFiIC5uYXYtbGluay5hY3RpdmUnKS5mb2N1cygpOwotICAgICAgICB9LCAyMDApOwotICAg ICAgfSk7Ci0KLSAgICAgIC8vIFByZXZlbnQgYnJvd3NlciBmcm9tIG9wZW5pbmcgdGhlIGRyYWcg ZmlsZS4KLSAgICAgICQoJyNkYXRhZ3JpZCcpLmJpbmQoJ2RyYWdvdmVyIGRyb3AnLCBmdW5jdGlv biAoZXZlbnQpIHsKLSAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7Ci0gICAgICAgIGV2 ZW50LnByZXZlbnREZWZhdWx0KCk7Ci0gICAgICB9KTsKLQotICAgICAgdmFyIG9wZW5fbmV3X3Rh YiA9IHNlbGYuYnJvd3Nlcl9wcmVmZXJlbmNlcy5uZXdfYnJvd3Nlcl90YWJfb3BlbjsKLSAgICAg IGlmIChfLmlzTnVsbChvcGVuX25ld190YWIpIHx8IF8uaXNVbmRlZmluZWQob3Blbl9uZXdfdGFi KSB8fCAhb3Blbl9uZXdfdGFiLmluY2x1ZGVzKCdxdCcpKSB7Ci0gICAgICAgIC8vIExpc3RlbiBv biB0aGUgcGFuZWwgY2xvc2VkIGV2ZW50IGFuZCBub3RpZnkgdXNlciB0byBzYXZlIG1vZGlmaWNh dGlvbnMuCi0gICAgICAgIF8uZWFjaChwZ1dpbmRvdy5kZWZhdWx0LnBnQWRtaW4uQnJvd3Nlci5k b2NrZXIuZmluZFBhbmVscygnZnJtX2RhdGFncmlkJyksIGZ1bmN0aW9uKHApIHsKLSAgICAgICAg ICBpZiAocC50cmFuc19pZCA9PSBzZWxmLnRyYW5zSWQpIHsKLSAgICAgICAgICAgIHNlbGYuY3Vy cmVudFBhbmVsID0gcDsKLSAgICAgICAgICAgIHAub24od2NEb2NrZXIuRVZFTlQuQ0xPU0lORywg ZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICAgIHJldHVybiBzZWxmLmhhbmRsZXIuY2hlY2tfbmVl ZGVkX2NvbmZpcm1hdGlvbnNfYmVmb3JlX2Nsb3NpbmdfcGFuZWwodHJ1ZSk7Ci0gICAgICAgICAg ICB9KTsKLQotICAgICAgICAgICAgLy8gU2V0IGZvY3VzIG9uIHF1ZXJ5IHRvb2wgb2YgYWN0aXZl IHBhbmVsCi0gICAgICAgICAgICBwLm9uKHdjRG9ja2VyLkVWRU5ULkdBSU5fRk9DVVMsIGZ1bmN0 aW9uKCkgewotICAgICAgICAgICAgICB2YXIgJGNvbnRhaW5lciA9ICQodGhpcy4kY29udGFpbmVy KSwKLSAgICAgICAgICAgICAgICB0cmFuc0lkID0gc2VsZi5oYW5kbGVyLnRyYW5zSWQ7Ci0KLSAg ICAgICAgICAgICAgaWYgKCEkY29udGFpbmVyLmhhc0NsYXNzKCd3Y1BhbmVsVGFiQ29udGVudEhp ZGRlbicpKSB7Ci0KLSAgICAgICAgICAgICAgICBsZXQgbW9kYWxfbGlzdCA9IFsnZmlsZVNlbGVj dGlvbkRsZycsICdjcmVhdGVNb2RlRGxnJywKLSAgICAgICAgICAgICAgICAgICdjb25maXJtJywg J2FsZXJ0JywgJ2NvbmZpcm1TYXZlJywgJ25ld0Nvbm5lY3Rpb25EaWFsb2cnLAotICAgICAgICAg ICAgICAgICAgJ21hY3JvRGlhbG9nJ107Ci0KLSAgICAgICAgICAgICAgICAvKiBjaGVjayB0aGUg bW9kYWxzIGluc2lkZSB0aGUgc3FsZWRpdG9yIGFyZSBvcGVuLCBpZiBub3QsCi0gICAgICAgICAg ICAgICAgZm9jdXMgb24gdGhlIGVkaXRvciBpbnN0ZWFkLiAqLwotICAgICAgICAgICAgICAgIGlm KCFTcWxFZGl0b3JVdGlscy5pc01vZGFsT3Blbihtb2RhbF9saXN0KSkgewotICAgICAgICAgICAg ICAgICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7Ci0gICAgICAgICAgICAgICAgICAgIHNlbGYu aGFuZGxlci5ncmlkVmlldy5xdWVyeV90b29sX29iai5mb2N1cygpOwotICAgICAgICAgICAgICAg ICAgfSwgMjAwKTsKLQotICAgICAgICAgICAgICAgICAgLy8gVHJpZ2dlciBhbiBldmVudCB0byB1 cGRhdGUgY29ubmVjdGlvbiBzdGF0dXMgZmxhZwotICAgICAgICAgICAgICAgICAgcGdCcm93c2Vy LkV2ZW50cy50cmlnZ2VyKAotICAgICAgICAgICAgICAgICAgICAncGdhZG1pbjpxdWVyeV90b29s OnBhbmVsOmdhaW5fZm9jdXM6JyArIHRyYW5zSWQKLSAgICAgICAgICAgICAgICAgICk7Ci0gICAg ICAgICAgICAgICAgfQotICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9KTsKLQotICAgICAg ICAgICAgLy8gV2hlbiBhbnkgcXVlcnkgdG9vbCBwYW5lbCBsb3N0IGl0IGZvY3VzIHRoZW4KLSAg ICAgICAgICAgIHAub24od2NEb2NrZXIuRVZFTlQuTE9TVF9GT0NVUywgZnVuY3Rpb24gKCkgewot ICAgICAgICAgICAgICB2YXIgJGNvbnRhaW5lciA9ICQodGhpcy4kY29udGFpbmVyKSwKLSAgICAg ICAgICAgICAgICB0cmFuc0lkID0gc2VsZi5oYW5kbGVyLnRyYW5zSWQ7Ci0gICAgICAgICAgICAg IC8vIFRyaWdnZXIgYW4gZXZlbnQgdG8gdXBkYXRlIGNvbm5lY3Rpb24gc3RhdHVzIGZsYWcKLSAg ICAgICAgICAgICAgaWYgKCRjb250YWluZXIuaGFzQ2xhc3MoJ3djUGFuZWxUYWJDb250ZW50SGlk ZGVuJykpIHsKLSAgICAgICAgICAgICAgICBwZ0Jyb3dzZXIuRXZlbnRzLnRyaWdnZXIoCi0gICAg ICAgICAgICAgICAgICAncGdhZG1pbjpxdWVyeV90b29sOnBhbmVsOmxvc3RfZm9jdXM6JyArIHRy YW5zSWQKLSAgICAgICAgICAgICAgICApOwotICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9 KTsKLSAgICAgICAgICB9Ci0gICAgICAgIH0pOwotCi0gICAgICAgIC8vIENvZGUgdG8gdXBkYXRl IGNvbm5lY3Rpb24gc3RhdHVzIHBvbGxpbmcgZmxhZwotICAgICAgICBwZ0Jyb3dzZXIuRXZlbnRz Lm9uKAotICAgICAgICAgICdwZ2FkbWluOnF1ZXJ5X3Rvb2w6cGFuZWw6Z2Fpbl9mb2N1czonICsg c2VsZi5oYW5kbGVyLnRyYW5zSWQsCi0gICAgICAgICAgc2VsZi5nYWluX2ZvY3VzLCBzZWxmCi0g ICAgICAgICk7Ci0gICAgICAgIHBnQnJvd3Nlci5FdmVudHMub24oCi0gICAgICAgICAgJ3BnYWRt aW46cXVlcnlfdG9vbDpwYW5lbDpsb3N0X2ZvY3VzOicgKyBzZWxmLmhhbmRsZXIudHJhbnNJZCwK LSAgICAgICAgICBzZWxmLmxvc3RfZm9jdXMsIHNlbGYKLSAgICAgICAgKTsKLSAgICAgIH0KLQot ICAgICAgLy8gc2V0IGZvY3VzIG9uIHF1ZXJ5IHRvb2wgb25jZSBsb2FkZWQKLSAgICAgIHNldFRp bWVvdXQoZnVuY3Rpb24oKSB7Ci0gICAgICAgIHNlbGYucXVlcnlfdG9vbF9vYmouZm9jdXMoKTsK LSAgICAgIH0sIDUwMCk7Ci0KLSAgICAgIC8qIFdlIGhhdmUgb3ZlcnJpZGUvcmVnaXN0ZXIgdGhl IGhpbnQgZnVuY3Rpb24gb2YgQ29kZU1pcnJvcgotICAgICAgICogdG8gcHJvdmlkZSBvdXIgb3du IGhpbnQgbG9naWMuCi0gICAgICAgKi8KLSAgICAgIENvZGVNaXJyb3IucmVnaXN0ZXJIZWxwZXIo J2hpbnQnLCAnc3FsJywgZnVuY3Rpb24oZWRpdG9yKSB7Ci0gICAgICAgIHZhciBkYXRhID0gW10s Ci0gICAgICAgICAgZG9jID0gZWRpdG9yLmdldERvYygpLAotICAgICAgICAgIGN1ciA9IGRvYy5n ZXRDdXJzb3IoKSwKLSAgICAgICAgICAvLyBHZXQgdGhlIGN1cnJlbnQgY3Vyc29yIHBvc2l0aW9u Ci0gICAgICAgICAgY3VycmVudF9jdXIgPSBjdXIuY2gsCi0gICAgICAgICAgLy8gZnVuY3Rpb24g Y29udGV4dAotICAgICAgICAgIGN0eCA9IHsKLSAgICAgICAgICAgIGVkaXRvcjogZWRpdG9yLAot ICAgICAgICAgICAgLy8gVVJMIGZvciBhdXRvLWNvbXBsZXRlCi0gICAgICAgICAgICB1cmw6IHVy bF9mb3IoJ3NxbGVkaXRvci5hdXRvY29tcGxldGUnLCB7Ci0gICAgICAgICAgICAgICd0cmFuc19p ZCc6IHNlbGYudHJhbnNJZCwKLSAgICAgICAgICAgIH0pLAotICAgICAgICAgICAgZGF0YTogZGF0 YSwKLSAgICAgICAgICAgIC8vIEdldCB0aGUgbGluZSBudW1iZXIgaW4gdGhlIGN1cnNvciBwb3Np dGlvbgotICAgICAgICAgICAgY3VycmVudF9saW5lOiBjdXIubGluZSwKLSAgICAgICAgICAgIC8q Ci0gICAgICAgICAgICAgKiBSZW5kZXIgZnVuY3Rpb24gZm9yIGhpbnQgdG8gYWRkIG91ciBvd24g Y2xhc3MKLSAgICAgICAgICAgICAqIGFuZCBpY29uIGFzIHBlciB0aGUgb2JqZWN0IHR5cGUuCi0g ICAgICAgICAgICAgKi8KLSAgICAgICAgICAgIGhpbnRfcmVuZGVyOiBmdW5jdGlvbihlbHQsIGRh dGFfYXJnLCBjdXJfYXJnKSB7Ci0gICAgICAgICAgICAgIHZhciBlbCA9IGRvY3VtZW50LmNyZWF0 ZUVsZW1lbnQoJ3NwYW4nKTsKLQotICAgICAgICAgICAgICBzd2l0Y2ggKGN1cl9hcmcudHlwZSkg ewotICAgICAgICAgICAgICBjYXNlICdkYXRhYmFzZSc6Ci0gICAgICAgICAgICAgICAgZWwuY2xh c3NOYW1lID0gJ3NxbGVkaXRvci1oaW50IHBnLWljb24tJyArIGN1cl9hcmcudHlwZTsKLSAgICAg ICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgY2FzZSAnZGF0YXR5cGUnOgotICAgICAg ICAgICAgICAgIGVsLmNsYXNzTmFtZSA9ICdzcWxlZGl0b3ItaGludCBpY29uLXR5cGUnOwotICAg ICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICBjYXNlICdrZXl3b3JkJzoKLSAgICAg ICAgICAgICAgICBlbC5jbGFzc05hbWUgPSAnZmEgZmEta2V5JzsKLSAgICAgICAgICAgICAgICBi cmVhazsKLSAgICAgICAgICAgICAgY2FzZSAndGFibGUgYWxpYXMnOgotICAgICAgICAgICAgICAg IGVsLmNsYXNzTmFtZSA9ICdmYSBmYS1hdCc7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAg ICAgICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICAgICAgZWwuY2xhc3NOYW1lID0gJ3NxbGVk aXRvci1oaW50IGljb24tJyArIGN1cl9hcmcudHlwZTsKLSAgICAgICAgICAgICAgfQotCi0gICAg ICAgICAgICAgIGVsLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKGN1cl9hcmcu dGV4dCkpOwotICAgICAgICAgICAgICBlbHQuYXBwZW5kQ2hpbGQoZWwpOwotICAgICAgICAgICAg fSwKLSAgICAgICAgICB9OwotCi0gICAgICAgIGRhdGEucHVzaChkb2MuZ2V0VmFsdWUoKSk7Ci0g ICAgICAgIC8vIEdldCB0aGUgdGV4dCBmcm9tIHN0YXJ0IHRvIHRoZSBjdXJyZW50IGN1cnNvciBw b3NpdGlvbi4KLSAgICAgICAgZGF0YS5wdXNoKAotICAgICAgICAgIGRvYy5nZXRSYW5nZSh7Ci0g ICAgICAgICAgICBsaW5lOiAwLAotICAgICAgICAgICAgY2g6IDAsCi0gICAgICAgICAgfSwgewot ICAgICAgICAgICAgbGluZTogY3R4LmN1cnJlbnRfbGluZSwKLSAgICAgICAgICAgIGNoOiBjdXJy ZW50X2N1ciwKLSAgICAgICAgICB9KQotICAgICAgICApOwotCi0gICAgICAgIHJldHVybiB7Ci0g ICAgICAgICAgdGhlbjogZnVuY3Rpb24oY2IpIHsKLSAgICAgICAgICAgIHZhciBzZWxmX2xvY2Fs ID0gdGhpczsKLSAgICAgICAgICAgIC8vIE1ha2UgYWpheCBjYWxsIHRvIGZpbmQgdGhlIGF1dG9j b21wbGV0ZSBkYXRhCi0gICAgICAgICAgICAkLmFqYXgoewotICAgICAgICAgICAgICB1cmw6IHNl bGZfbG9jYWwudXJsLAotICAgICAgICAgICAgICBtZXRob2Q6ICdQT1NUJywKLSAgICAgICAgICAg ICAgY29udGVudFR5cGU6ICdhcHBsaWNhdGlvbi9qc29uJywKLSAgICAgICAgICAgICAgZGF0YTog SlNPTi5zdHJpbmdpZnkoc2VsZl9sb2NhbC5kYXRhKSwKLSAgICAgICAgICAgIH0pCi0gICAgICAg ICAgICAgIC5kb25lKGZ1bmN0aW9uKHJlcykgewotICAgICAgICAgICAgICAgIHZhciByZXN1bHQg PSBbXTsKLQotICAgICAgICAgICAgICAgIF8uZWFjaChyZXMuZGF0YS5yZXN1bHQsIGZ1bmN0aW9u KG9iaiwga2V5KSB7Ci0gICAgICAgICAgICAgICAgICByZXN1bHQucHVzaCh7Ci0gICAgICAgICAg ICAgICAgICAgIHRleHQ6IGtleSwKLSAgICAgICAgICAgICAgICAgICAgdHlwZTogb2JqLm9iamVj dF90eXBlLAotICAgICAgICAgICAgICAgICAgICByZW5kZXI6IHNlbGZfbG9jYWwuaGludF9yZW5k ZXIsCi0gICAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgICAgICB9KTsKLQotICAgICAg ICAgICAgICAgIC8vIFNvcnQgZnVuY3Rpb24gdG8gc29ydCB0aGUgc3VnZ2VzdGlvbidzIGFscGhh YmV0aWNhbGx5LgotICAgICAgICAgICAgICAgIHJlc3VsdC5zb3J0KGZ1bmN0aW9uKGEsIGIpIHsK LSAgICAgICAgICAgICAgICAgIHZhciB0ZXh0QSA9IGEudGV4dC50b0xvd2VyQ2FzZSgpLAotICAg ICAgICAgICAgICAgICAgICB0ZXh0QiA9IGIudGV4dC50b0xvd2VyQ2FzZSgpOwotICAgICAgICAg ICAgICAgICAgaWYgKHRleHRBIDwgdGV4dEIpIC8vc29ydCBzdHJpbmcgYXNjZW5kaW5nCi0gICAg ICAgICAgICAgICAgICAgIHJldHVybiAtMTsKLSAgICAgICAgICAgICAgICAgIGlmICh0ZXh0QSA+ IHRleHRCKQotICAgICAgICAgICAgICAgICAgICByZXR1cm4gMTsKLSAgICAgICAgICAgICAgICAg IHJldHVybiAwOyAvL2RlZmF1bHQgcmV0dXJuIHZhbHVlIChubyBzb3J0aW5nKQotICAgICAgICAg ICAgICAgIH0pOwotCi0gICAgICAgICAgICAgICAgLyoKLSAgICAgICAgICAgICAgICogQmVsb3cg bG9naWMgZmluZCB0aGUgc3RhcnQgYW5kIGVuZCBwb2ludAotICAgICAgICAgICAgICAgKiB0byBy ZXBsYWNlIHRoZSBzZWxlY3RlZCBhdXRvIGNvbXBsZXRlIHN1Z2dlc3Rpb24uCi0gICAgICAgICAg ICAgICAqLwotICAgICAgICAgICAgICAgIHZhciB0b2tlbiA9IHNlbGZfbG9jYWwuZWRpdG9yLmdl dFRva2VuQXQoY3VyKSwKLSAgICAgICAgICAgICAgICAgIHN0YXJ0LCBlbmQsIHNlYXJjaDsKLSAg ICAgICAgICAgICAgICBpZiAodG9rZW4uZW5kID4gY3VyLmNoKSB7Ci0gICAgICAgICAgICAgICAg ICB0b2tlbi5lbmQgPSBjdXIuY2g7Ci0gICAgICAgICAgICAgICAgICB0b2tlbi5zdHJpbmcgPSB0 b2tlbi5zdHJpbmcuc2xpY2UoMCwgY3VyLmNoIC0gdG9rZW4uc3RhcnQpOwotICAgICAgICAgICAg ICAgIH0KLQotICAgICAgICAgICAgICAgIGlmICh0b2tlbi5zdHJpbmcubWF0Y2goL15bLmBcd0Bd XHcqJC8pKSB7Ci0gICAgICAgICAgICAgICAgICBzZWFyY2ggPSB0b2tlbi5zdHJpbmc7Ci0gICAg ICAgICAgICAgICAgICBzdGFydCA9IHRva2VuLnN0YXJ0OwotICAgICAgICAgICAgICAgICAgZW5k ID0gdG9rZW4uZW5kOwotICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAg ICBzdGFydCA9IGVuZCA9IGN1ci5jaDsKLSAgICAgICAgICAgICAgICAgIHNlYXJjaCA9ICcnOwot ICAgICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgICAgIC8qCi0gICAgICAgICAgICAgICAq IEFkZGVkIDEgaW4gdGhlIHN0YXJ0IHBvc2l0aW9uIGlmIHNlYXJjaCBzdHJpbmcKLSAgICAgICAg ICAgICAgICogc3RhcnRlZCB3aXRoICIuIiBvciAiYCIgZWxzZSBhdXRvIGNvbXBsZXRlIG9mIGNv ZGUgbWlycm9yCi0gICAgICAgICAgICAgICAqIHdpbGwgcmVtb3ZlIHRoZSAiLiIgd2hlbiB1c2Vy IHNlbGVjdCBhbnkgc3VnZ2VzdGlvbi4KLSAgICAgICAgICAgICAgICovCi0gICAgICAgICAgICAg ICAgaWYgKHNlYXJjaC5jaGFyQXQoMCkgPT0gJy4nIHx8IHNlYXJjaC5jaGFyQXQoMCkgPT0gJ2Bg JykKLSAgICAgICAgICAgICAgICAgIHN0YXJ0ICs9IDE7Ci0KLSAgICAgICAgICAgICAgICBjYih7 Ci0gICAgICAgICAgICAgICAgICBsaXN0OiByZXN1bHQsCi0gICAgICAgICAgICAgICAgICBmcm9t OiB7Ci0gICAgICAgICAgICAgICAgICAgIGxpbmU6IHNlbGZfbG9jYWwuY3VycmVudF9saW5lLAot ICAgICAgICAgICAgICAgICAgICBjaDogc3RhcnQsCi0gICAgICAgICAgICAgICAgICB9LAotICAg ICAgICAgICAgICAgICAgdG86IHsKLSAgICAgICAgICAgICAgICAgICAgbGluZTogc2VsZl9sb2Nh bC5jdXJyZW50X2xpbmUsCi0gICAgICAgICAgICAgICAgICAgIGNoOiBlbmQsCi0gICAgICAgICAg ICAgICAgICB9LAotICAgICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgICB9KQotICAgICAg ICAgICAgICAuZmFpbChmdW5jdGlvbihlKSB7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIGh0dHBF cnJvckhhbmRsZXIuaGFuZGxlTG9naW5SZXF1aXJlZEFuZFRyYW5zYWN0aW9uUmVxdWlyZWQoCi0g ICAgICAgICAgICAgICAgICBwZ0FkbWluLCBzZWxmX2xvY2FsLCBlLCBudWxsLCBbXSwgZmFsc2UK LSAgICAgICAgICAgICAgICApOwotICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICB9LmJpbmQo Y3R4KSwKLSAgICAgICAgfTsKLSAgICAgIH0pOwotCi0gICAgICAvKiBJZiB0aGUgc2NyZWVuIHdp ZHRoIGlzIHNtYWxsIGFuZCB3ZSBob3ZlciBvdmVyIHRoZSBFeHBsYWluIE9wdGlvbnMsCi0gICAg ICAgICogdGhlIHN1Ym1lbnUgZ29lcyBiZWhpbmQgdGhlIHNjcmVlbiBvbiB0aGUgcmlnaHQgc2lk ZS4KLSAgICAgICAgKiBCZWxvdyBsb2dpYyB3aWxsIG1ha2UgaXQgYXBwZWFyIG9uIHRoZSBsZWZ0 LgotICAgICAgICAqLwotICAgICAgJCgnLmRyb3Bkb3duLXN1Ym1lbnUnKS5vbignbW91c2VlbnRl cicsZnVuY3Rpb24oKSB7Ci0gICAgICAgIHZhciBtZW51ID0gJCh0aGlzKS5maW5kKCd1bC5kcm9w ZG93bi1tZW51Jyk7Ci0gICAgICAgIHZhciBtZW51cG9zID0gJChtZW51KS5vZmZzZXQoKTsKLQot ICAgICAgICBpZiAobWVudXBvcy5sZWZ0ICsgbWVudS53aWR0aCgpID4gJCh3aW5kb3cpLndpZHRo KCkpIHsKLSAgICAgICAgICB2YXIgbmV3cG9zID0gLSQobWVudSkud2lkdGgoKTsKLSAgICAgICAg ICBtZW51LmNzcygnbGVmdCcsbmV3cG9zKTsKLSAgICAgICAgfQotICAgICAgfSkub24oJ21vdXNl bGVhdmUnLCBmdW5jdGlvbigpIHsKLSAgICAgICAgdmFyIG1lbnUgPSAkKHRoaXMpLmZpbmQoJ3Vs LmRyb3Bkb3duLW1lbnUnKTsKLSAgICAgICAgbWVudS5jc3MoJ2xlZnQnLCcnKTsKLSAgICAgIH0p OwotCi0gICAgICBzZWxmLnJlZmxlY3RQcmVmZXJlbmNlcygpOwotCi0gICAgICAvKiBTZXQgQXV0 by1jb21taXQgYW5kIGF1dG8tcm9sbGJhY2sgb24gcXVlcnkgZWRpdG9yICovCi0gICAgICBpZiAo c2VsZi5wcmVmZXJlbmNlcy5hdXRvX2NvbW1pdCkgewotICAgICAgICAkKCcuYXV0by1jb21taXQn KS5yZW1vdmVDbGFzcygndmlzaWJpbGl0eS1oaWRkZW4nKTsKLSAgICAgIH0KLSAgICAgIGVsc2Ug ewotICAgICAgICAkKCcuYXV0by1jb21taXQnKS5hZGRDbGFzcygndmlzaWJpbGl0eS1oaWRkZW4n KTsKLSAgICAgIH0KLSAgICAgIGlmIChzZWxmLnByZWZlcmVuY2VzLmF1dG9fcm9sbGJhY2spIHsK LSAgICAgICAgJCgnLmF1dG8tcm9sbGJhY2snKS5yZW1vdmVDbGFzcygndmlzaWJpbGl0eS1oaWRk ZW4nKTsKLSAgICAgIH0KLSAgICAgIGVsc2UgewotICAgICAgICAkKCcuYXV0by1yb2xsYmFjaycp LmFkZENsYXNzKCd2aXNpYmlsaXR5LWhpZGRlbicpOwotICAgICAgfQotCi0gICAgICAvKiBSZWdp c3RlciBmb3IgcHJlZmVyZW5jZSBjaGFuZ2VkIGV2ZW50IGJyb2FkY2FzdGVkIGluIHBhcmVudAot ICAgICAgICogdG8gcmVsb2FkIHRoZSBzaG9yY3V0cy4gQXMgc3FsZWRpdG9yIGlzIGluIGlGcmFt ZSBvZiB3Y0RvY2tlcgotICAgICAgICogd2luZG93IHBhcmVudCBpcyByZWZlcnJlZAotICAgICAg ICovCi0gICAgICBwZ1dpbmRvdy5kZWZhdWx0LnBnQWRtaW4uQnJvd3Nlci5vblByZWZlcmVuY2Vz Q2hhbmdlKCdzcWxlZGl0b3InLCBmdW5jdGlvbigpIHsKLSAgICAgICAgc2VsZi5yZWZsZWN0UHJl ZmVyZW5jZXMoKTsKLSAgICAgIH0pOwotCi0gICAgICAvKiBJZiBzcWwgZWRpdG9yIGlzIGluIGEg bmV3IHRhYiwgZXZlbnQgZmlyZWQgaXMgbm90IGF2YWlsYWJsZQotICAgICAgICogaW5zdGVhZCwg YSBwb2xsZXIgaXMgc2V0IHVwIHdobyB3aWxsIGNoZWNrCi0gICAgICAgKi8KLSAgICAgIHZhciBv cGVuX25ld190YWJfcXQgPSBzZWxmLmJyb3dzZXJfcHJlZmVyZW5jZXMubmV3X2Jyb3dzZXJfdGFi X29wZW47Ci0gICAgICBpZihvcGVuX25ld190YWJfcXQgJiYgb3Blbl9uZXdfdGFiX3F0LmluY2x1 ZGVzKCdxdCcpKSB7Ci0gICAgICAgIHBnQnJvd3Nlci5iaW5kX2JlZm9yZXVubG9hZCgpOwotICAg ICAgICBzZXRJbnRlcnZhbCgoKT0+ewotICAgICAgICAgIGlmKHBnV2luZG93LmRlZmF1bHQucGdB ZG1pbikgewotICAgICAgICAgICAgc2VsZi5yZWZsZWN0UHJlZmVyZW5jZXMoKTsKLSAgICAgICAg ICB9Ci0gICAgICAgIH0sIDEwMDApOwotICAgICAgfQotCi0gICAgICAvKiBSZWdpc3RlciB0byBs b2cgdGhlIGFjdGl2aXR5ICovCi0gICAgICBwZ0Jyb3dzZXIucmVnaXN0ZXJfdG9fYWN0aXZpdHlf bGlzdGVuZXIoZG9jdW1lbnQsICgpPT57Ci0gICAgICAgIE5vdGlmeS5hbGVydChnZXR0ZXh0KCdU aW1lb3V0JyksIGdldHRleHQoJ1lvdXIgc2Vzc2lvbiBoYXMgdGltZWQgb3V0IGR1ZSB0byBpbmFj dGl2aXR5LiBQbGVhc2UgY2xvc2UgdGhlIHdpbmRvdyBhbmQgbG9naW4gYWdhaW4uJykpOwotICAg ICAgfSk7Ci0KLSAgICAgIHNlbGYucmVuZGVyX2Nvbm5lY3Rpb24oc2VsZi5jb25uZWN0aW9uX2xp c3QpOwotICAgIH0sCi0KLSAgICAvKiBSZWdhcmRpbmcgU2xpY2tHcmlkIHVzYWdlIGluIHJlbmRl cl9ncmlkIGZ1bmN0aW9uLgotCi0gICAgIFNsaWNrR3JpZCBQbHVnaW5zOgotICAgICAtLS0tLS0t LS0tLS0tLS0tLS0KLSAgICAgMSkgU2xpY2suQXV0b1Rvb2x0aXBzCi0gICAgIC0gVGhpcyBwbHVn aW4gaXMgdXNlZnVsIGZvciBkaXNwbGF5aW5nIGNlbGwgZGF0YSBhcyB0b29sdGlwIHdoZW4KLSAg ICAgdXNlciBob3ZlciBtb3VzZSBvbiBjZWxsIGlmIGRhdGEgaXMgbGFyZ2UKLSAgICAgMikgU2xp Y2suQ2hlY2tib3hTZWxlY3RDb2x1bW4KLSAgICAgLSBUaGlzIHBsdWdpbiBpcyB1c2VmdWwgZm9y IHNlbGVjdGluZyByb3dzIHVzaW5nIGNoZWNrYm94Ci0gICAgIDMpIFJvd1NlbGVjdGlvbk1vZGVs Ci0gICAgIC0gVGhpcyBwbHVnaW4gaXMgbmVlZGVkIGJ5IENoZWNrYm94U2VsZWN0Q29sdW1uIHBs dWdpbiB0byBzZWxlY3Qgcm93cwotICAgICA0KSBTbGljay5IZWFkZXJCdXR0b25zCi0gICAgIC0g VGhpcyBwbHVnaW4gaXMgdXNlZnVsIGZvciBhZGQgYnV0dG9ucyBpbiBjb2x1bW4gaGVhZGVyCi0K LSAgICAgR3JpZCBPcHRpb25zOgotICAgICAtLS0tLS0tLS0tLS0tCi0gICAgIDEpIGVkaXRhYmxl Ci0gICAgIC0gVGhpcyBvcHRpb24gYWxsb3cgdXMgdG8gbWFrZSBncmlkIGVkaXRhYmxlCi0gICAg IDIpIGVuYWJsZUFkZFJvdwotICAgICAtIFRoaXMgb3B0aW9uIGFsbG93IHVzIHRvIGFkZCBuZXcg cm93cyBhdCB0aGUgZW5kIG9mIGdyaWQKLSAgICAgMykgZW5hYmxlQ2VsbE5hdmlnYXRpb24KLSAg ICAgLSBUaGlzIG9wdGlvbiBhbGxvdyB1cyB0byBuYXZpZ2F0ZSBjZWxscyB1c2luZyBrZXlib2Fy ZAotICAgICA0KSBlbmFibGVDb2x1bW5SZW9yZGVyCi0gICAgIC0gVGhpcyBvcHRpb24gYWxsb3cg dXMgdG8gcmVjb3JkIGNvbHVtbgotICAgICA1KSBhc3luY0VkaXRvckxvYWRpbmcKLSAgICAgLSBU aGlzIG9wdGlvbiBhbGxvdyB1cyB0byBvcGVuIGVkaXRvciBhc3luYwotICAgICA2KSBhdXRvRWRp dAotICAgICAtIFRoaXMgb3B0aW9uIGFsbG93IHVzIHRvIGVudGVyIGluIGVkaXQgbW9kZSBkaXJl Y3RseSB3aGVuIHVzZXIgY2xpY2tzIG9uIGl0Ci0gICAgIG90aGVyd2lzZSB1c2VyIGhhdmUgdG8g ZG91YmxlIGNsaWNrIG9yIG1hbnVhbGx5IHByZXNzIGVudGVyIG9uIGNlbGwgdG8gZ28KLSAgICAg aW4gY2VsbCBlZGl0IG1vZGUKLQotICAgICBIYW5kbGluZyBvZiBkYXRhOgotICAgICAtLS0tLS0t LS0tLS0tLS0tLQotICAgICBXZSBhcmUgZG9pbmcgZGF0YSBoYW5kbGluZyBtYW51YWxseSx3aGF0 IHVzZXIgYWRkcy91cGRhdGVzL2RlbGV0ZXMgZXRjCi0gICAgIHdlIHdpbGwgdXNlIGBkYXRhX3N0 b3JlYCBvYmplY3QgdG8gc3RvcmUgZXZlcnl0aGluZyB1c2VyIGRvZXMgd2l0aGluIGdyaWQgZGF0 YQotCi0gICAgIC0gdXBkYXRlZDoKLSAgICAgVGhpcyB3aWxsIGhvbGQgYWxsIHRoZSBkYXRhIHdo aWNoIHVzZXIgdXBkYXRlcyBpbiBncmlkCi0gICAgIC0gYWRkZWQ6Ci0gICAgIFRoaXMgd2lsbCBo b2xkIGFsbCB0aGUgbmV3IHJvdyhzKSBkYXRhIHdoaWNoIHVzZXIgYWRkcyBpbiBncmlkCi0gICAg IC0gc3RhZ2VkX3Jvd3M6Ci0gICAgIFRoaXMgd2lsbCBob2xkIGFsbCB0aGUgZGF0YSB3aGljaCB1 c2VyIGNvcGllcy9wYXN0ZXMvZGVsZXRlcyBpbiBncmlkCi0gICAgIC0gZGVsZXRlZDoKLSAgICAg VGhpcyB3aWxsIGhvbGQgYWxsIHRoZSBkYXRhIHdoaWNoIHVzZXIgZGVsZXRlcyBpbiBncmlkCi0K LSAgICAgRXZlbnRzIGhhbmRsaW5nOgotICAgICAtLS0tLS0tLS0tLS0tLS0tCi0gICAgIDEpIG9u Q2VsbENoYW5nZQotICAgICAtIFdlIGFyZSB1c2luZyB0aGlzIGV2ZW50IHRvIGxpc3RlbiB0byBj aGFuZ2VzIG9uIGluZGl2aWR1YWwgY2VsbC4KLSAgICAgMikgb25BZGROZXdSb3cKLSAgICAgLSBX ZSBhcmUgdXNpbmcgdGhpcyBldmVudCB0byBsaXN0ZW4gdG8gbmV3IHJvdyBhZGRpbmcgZnVuY3Rp b25hbGl0eS4KLSAgICAgMykgb25TZWxlY3RlZFJhbmdlc0NoYW5nZWQKLSAgICAgLSBXZSBhcmUg dXNpbmcgdGhpcyBldmVudCB0byBsaXN0ZW4gd2hlbiB1c2VyIHNlbGVjdHMgcm93cyBmb3IgY29w eS9kZWxldGUgb3BlcmF0aW9uLgotICAgICA0KSBvbkJlZm9yZUVkaXRDZWxsCi0gICAgIC0gV2Ug YXJlIHVzaW5nIHRoaXMgZXZlbnQgdG8gc2F2ZSB0aGUgZGF0YSBiZWZvcmUgdXNlcnMgbW9kaWZp ZWQgdGhlbQotICAgICA1KSBvbktleURvd24KLSAgICAgLSBXZSBhcmUgdXNpbmcgdGhpcyBldmVu dCBmb3IgQ29weSBvcGVyYXRpb24gb24gZ3JpZAotICAgICAqLwotCi0gICAgLy8gVGhpcyBmdW5j dGlvbiBpcyByZXNwb25zaWJsZSB0byBjcmVhdGUgYW5kIHJlbmRlciB0aGUgU2xpY2tHcmlkLgot ICAgIHJlbmRlcl9ncmlkOiBmdW5jdGlvbihjb2xsZWN0aW9uLCBjb2x1bW5zLCBpc19lZGl0YWJs ZSwgY2xpZW50X3ByaW1hcnlfa2V5LCByb3dzX2FmZmVjdGVkKSB7Ci0gICAgICB2YXIgc2VsZiA9 IHRoaXM7Ci0KLSAgICAgIHNlbGYuaGFuZGxlci5udW1iZXJPZk1vZGlmaWVkQ2VsbHMgPSAwOwot Ci0gICAgICBzZWxmLmhhbmRsZXIucmVzZXRfZGF0YV9zdG9yZSgpOwotCi0gICAgICAvLyBrZWVw IHRyYWNrIG9mIG5ld2x5IGFkZGVkIHJvd3MKLSAgICAgIHNlbGYuaGFuZGxlci5yb3dzX3RvX2Rp c2FibGUgPSBuZXcgQXJyYXkoKTsKLSAgICAgIC8vIFRlbXBvcmFyaWx5IGhvbGQgbmV3IHJvd3Mg YWRkZWQKLSAgICAgIHNlbGYuaGFuZGxlci50ZW1wX25ld19yb3dzID0gbmV3IEFycmF5KCk7Ci0K LSAgICAgIC8vIFRvIHN0b3JlIHByaW1hcnkga2V5cyBiZWZvcmUgdGhleSBnZXRzIGNoYW5nZWQK LSAgICAgIHNlbGYuaGFuZGxlci5wcmltYXJ5X2tleXNfZGF0YSA9IHt9OwotCi0gICAgICBzZWxm LmNsaWVudF9wcmltYXJ5X2tleSA9IGNsaWVudF9wcmltYXJ5X2tleTsKLQotICAgICAgc2VsZi5j bGllbnRfcHJpbWFyeV9rZXlfY291bnRlciA9IDA7Ci0KLSAgICAgIC8vIFJlbW92ZSBhbnkgZXhp c3RpbmcgZ3JpZCBmaXJzdAotICAgICAgaWYgKHNlbGYuaGFuZGxlci5zbGlja2dyaWQpIHsKLSAg ICAgICAgc2VsZi5oYW5kbGVyLnNsaWNrZ3JpZC5kZXN0cm95KCk7Ci0gICAgICB9Ci0KLSAgICAg IGlmICghXy5pc0FycmF5KGNvbGxlY3Rpb24pIHx8ICFfLnNpemUoY29sbGVjdGlvbikpIHsKLSAg ICAgICAgY29sbGVjdGlvbiA9IFtdOwotICAgICAgfQotCi0gICAgICB2YXIgZ3JpZF9jb2x1bW5z ID0gW10sCi0gICAgICAgIHRhYmxlX25hbWU7Ci0gICAgICB2YXIgY29sdW1uX3NpemUgPSBzZWxm LmhhbmRsZXJbJ2NvbF9zaXplJ10sCi0gICAgICAgIHF1ZXJ5ID0gc2VsZi5oYW5kbGVyLnF1ZXJ5 LAotICAgICAgICAvLyBFeHRyYWN0IHRhYmxlIG5hbWUgZnJvbSBxdWVyeQotICAgICAgICB0YWJs ZV9saXN0ID0gcXVlcnkubWF0Y2goL3NlbGVjdC4qZnJvbVxzK1x3K1wuKihcdyspL2kpOwotCi0g ICAgICBpZiAoIXRhYmxlX2xpc3QpIHsKLSAgICAgICAgdGFibGVfbmFtZSA9IFNxbEVkaXRvclV0 aWxzLmdldEhhc2gocXVlcnkpOwotICAgICAgfSBlbHNlIHsKLSAgICAgICAgdGFibGVfbmFtZSA9 IHRhYmxlX2xpc3RbMV07Ci0gICAgICB9Ci0KLSAgICAgIHNlbGYuaGFuZGxlclsndGFibGVfbmFt ZSddID0gdGFibGVfbmFtZTsKLSAgICAgIGNvbHVtbl9zaXplW3RhYmxlX25hbWVdID0gY29sdW1u X3NpemVbdGFibGVfbmFtZV0gfHwge307Ci0KLSAgICAgIC8vIEtlZXAgdHJhY2sgb2YgY29sdW1u X2RhdGFfYXV0b19yZXNpemUgcHJlZmVyZW5jZXMgdmFsdWUKLSAgICAgIGlmIChfLmlzVW5kZWZp bmVkKHNlbGYuYXV0b19yZXNpemVfY29sdW1uX2Jhc2VkX29uX2RhdGEpIHx8IHNlbGYuYXV0b19y ZXNpemVfY29sdW1uX2Jhc2VkX29uX2RhdGEgIT09IHNlbGYucHJlZmVyZW5jZXMuY29sdW1uX2Rh dGFfYXV0b19yZXNpemUpIHsKLSAgICAgICAgc2VsZi5hdXRvX3Jlc2l6ZV9jb2x1bW5fYmFzZWRf b25fZGF0YSA9IHNlbGYucHJlZmVyZW5jZXMuY29sdW1uX2RhdGFfYXV0b19yZXNpemU7Ci0gICAg ICAgIGNvbHVtbl9zaXplW3RhYmxlX25hbWVdID0ge307Ci0gICAgICB9Ci0KLSAgICAgIC8vIEtl ZXAgdHJhY2sgb2YgY29sdW1uX2RhdGFfbWF4X3dpZHRoCi0gICAgICBzZWxmLm1heF93aWR0aF9j aGFuZ2VkID0gZmFsc2U7Ci0gICAgICBpZiAoXy5pc1VuZGVmaW5lZChzZWxmLm9sZF9jb2x1bW5f ZGF0YV9tYXhfd2lkdGgpIHx8IHNlbGYub2xkX2NvbHVtbl9kYXRhX21heF93aWR0aCAhPSBzZWxm LnByZWZlcmVuY2VzLmNvbHVtbl9kYXRhX21heF93aWR0aCkgewotICAgICAgICBzZWxmLm9sZF9j b2x1bW5fZGF0YV9tYXhfd2lkdGggPSBzZWxmLnByZWZlcmVuY2VzLmNvbHVtbl9kYXRhX21heF93 aWR0aDsKLSAgICAgICAgc2VsZi5tYXhfd2lkdGhfY2hhbmdlZCA9IHRydWU7Ci0gICAgICB9Ci0K LQotICAgICAgXy5lYWNoKGNvbHVtbnMsIGZ1bmN0aW9uKGMpIHsKLSAgICAgICAgYy5kaXNwbGF5 X25hbWUgPSBfLmVzY2FwZShjLmRpc3BsYXlfbmFtZSk7Ci0gICAgICAgIGMuY29sdW1uX3R5cGUg PSBfLmVzY2FwZShjLmNvbHVtbl90eXBlKTsKLQotICAgICAgICAvLyBJZiB0aGUga2V5cyBoYXZl IG5hbWUgZnJvbSBleGlzdGluZyBKUyBrZXl3b3JkcyB0aGVuIGl0IG1heQotICAgICAgICAvLyBj cmVhdGUgcHJvYmxlbS4gZWcgLSBjb250cnVjdG9yLCBoYXNPd25Qcm9wZXJ0eS4KLSAgICAgICAg Ly8gbm9uYXRpdmVfZmllbGQgaXMgZmllbGQgd2l0aCBleHRyYSBkb3VibGUgcXVvdGVzCi0gICAg ICAgIHZhciBvcHRpb25zID0gewotICAgICAgICAgIGlkOiAgXy5lc2NhcGUoYy5uYW1lKSwKLSAg ICAgICAgICBwb3M6IGMucG9zLAotICAgICAgICAgIGZpZWxkOiBjLm5hbWUsCi0gICAgICAgICAg bm9uYXRpdmVfZmllbGQ6IGAiJHtjLm5hbWV9ImAsCi0gICAgICAgICAgbmFtZTogYy5sYWJlbCwK LSAgICAgICAgICBkaXNwbGF5X25hbWU6IGMuZGlzcGxheV9uYW1lLAotICAgICAgICAgIGNvbHVt bl90eXBlOiBjLmNvbHVtbl90eXBlLAotICAgICAgICAgIGNvbHVtbl90eXBlX2ludGVybmFsOiBj LmNvbHVtbl90eXBlX2ludGVybmFsLAotICAgICAgICAgIGNlbGw6IGMuY2VsbCwKLSAgICAgICAg ICBub3RfbnVsbDogYy5ub3RfbnVsbCwKLSAgICAgICAgICBoYXNfZGVmYXVsdF92YWw6IGMuaGFz X2RlZmF1bHRfdmFsLAotICAgICAgICAgIGlzX2FycmF5OiBjLmlzX2FycmF5LAotICAgICAgICAg IGNhbl9lZGl0OiBjLmNhbl9lZGl0LAotICAgICAgICB9OwotCi0gICAgICAgIC8vIEdldCB0aGUg Y29sdW1ucyB3aWR0aCBiYXNlZCBvbiBsb25nZXIgc3RyaW5nIGFtb25nIGRhdGEgdHlwZSBvcgot ICAgICAgICAvLyBjb2x1bW4gbmFtZS4KLSAgICAgICAgdmFyIGNvbHVtbl90eXBlID0gYy5jb2x1 bW5fdHlwZS50cmltKCk7Ci0gICAgICAgIHZhciBsYWJlbCA9IGMubmFtZS5sZW5ndGggPiBjb2x1 bW5fdHlwZS5sZW5ndGggPyBfLmVzY2FwZShjLmRpc3BsYXlfbmFtZSkgOiBjb2x1bW5fdHlwZTsK LSAgICAgICAgdmFyIGljb25XaWR0aCA9IDA7Ci0gICAgICAgIC8vIGluY3JlYXNlIHdpZHRoIHRv IGFkZCAndmlldycgYnV0dG9uCi0gICAgICAgIGlmIChjLmNlbGwgPT0gJ2dlb21ldHJ5JyB8fCBj LmNlbGwgPT0gJ2dlb2dyYXBoeScpIHsKLSAgICAgICAgICBpY29uV2lkdGggKz0gMjg7Ci0gICAg ICAgIH0KLSAgICAgICAgLy8gSW5jcmVhc2Ugd2lkdGggZm9yIGVkaXRhYmxlL3JlYWQtb25seSBp Y29uCi0gICAgICAgIGlmKCFfLmlzVW5kZWZpbmVkKGMuY2FuX2VkaXQpKSB7Ci0gICAgICAgICAg aWNvbldpZHRoICs9IDEyOwotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKF8uaXNVbmRlZmluZWQo Y29sdW1uX3NpemVbdGFibGVfbmFtZV1bb3B0aW9ucy5ub25hdGl2ZV9maWVsZF0pKSB7Ci0gICAg ICAgICAgLyogSWYgY29sdW1uX2RhdGFfYXV0b19yZXNpemUgaXMgJ2J5X2RhdGEnIHRoZW4gZm9y IHRoZSBmaXJzdCB0aW1lIHNldAotICAgICAgICAgICAqIHRoZSBhZGRXaWR0aCBwYXJhbWV0ZXIg dG8gaWNvbldpZHRoIGFuZCBpZiBpdCBpcyAnYnlfbmFtZScgdGhlbgotICAgICAgICAgICAqIGNh bGN1bGF0ZSB3aWR0aCBiYXNlZCBvbiBsb25nZXIgc3RyaW5nIGFtb25nIGRhdGEgdHlwZSBvcgot ICAgICAgICAgICAqIGNvbHVtbiBuYW1lLgotICAgICAgICAgICAqLwotICAgICAgICAgIGlmIChz ZWxmLnByZWZlcmVuY2VzLmNvbHVtbl9kYXRhX2F1dG9fcmVzaXplID09PSAnYnlfZGF0YScpIHsK LSAgICAgICAgICAgIG9wdGlvbnNbJ2FkZFdpZHRoJ10gPSBpY29uV2lkdGg7Ci0gICAgICAgICAg ICBvcHRpb25zWyd3aWR0aCddID0gTmFOOwotICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAg ICBvcHRpb25zWyd3aWR0aCddID0gU3FsRWRpdG9yVXRpbHMuY2FsY3VsYXRlQ29sdW1uV2lkdGgo bGFiZWwpOwotICAgICAgICAgICAgb3B0aW9uc1snd2lkdGgnXSArPSBpY29uV2lkdGg7Ci0gICAg ICAgICAgICBjb2x1bW5fc2l6ZVt0YWJsZV9uYW1lXVtjLm5vbmF0aXZlX2ZpZWxkXSA9IG9wdGlv bnNbJ3dpZHRoJ107Ci0gICAgICAgICAgfQotICAgICAgICB9IGVsc2UgewotICAgICAgICAgIG9w dGlvbnNbJ3dpZHRoJ10gPSBjb2x1bW5fc2l6ZVt0YWJsZV9uYW1lXVtvcHRpb25zLm5vbmF0aXZl X2ZpZWxkXTsKLSAgICAgICAgfQotCi0gICAgICAgIC8vIElmIGdyaWQgaXMgZWRpdGFibGUgdGhl biBhZGQgZWRpdG9yIGVsc2UgbWFrZSBpdCByZWFkb25seQotICAgICAgICBpZiAoYy5jZWxsID09 ICdvaWQnICYmIGMubmFtZSA9PSAnb2lkJykgewotICAgICAgICAgIG9wdGlvbnNbJ2VkaXRvcidd ID0gbnVsbDsKLSAgICAgICAgfSBlbHNlIGlmIChjLmNlbGwgPT0gJ0pzb24nKSB7Ci0gICAgICAg ICAgb3B0aW9uc1snZWRpdG9yJ10gPSBjLmNhbl9lZGl0ID8gU2xpY2suRWRpdG9ycy5Kc29uVGV4 dCA6Ci0gICAgICAgICAgICBTbGljay5FZGl0b3JzLlJlYWRPbmx5SnNvblRleHQ7Ci0gICAgICAg ICAgb3B0aW9uc1snZm9ybWF0dGVyJ10gPSBTbGljay5Gb3JtYXR0ZXJzLkpzb25TdHJpbmc7Ci0g ICAgICAgIH0gZWxzZSBpZiAoYy5jZWxsID09ICdudW1iZXInIHx8IGMuY2VsbCA9PSAnb2lkJyB8 fAotICAgICAgICAgICQuaW5BcnJheShjLnR5cGUsIFsneGlkJywgJ3JlYWwnXSkgIT09IC0xCi0g ICAgICAgICkgewotICAgICAgICAgIG9wdGlvbnNbJ2VkaXRvciddID0gYy5jYW5fZWRpdCA/IFNs aWNrLkVkaXRvcnMuQ3VzdG9tTnVtYmVyIDoKLSAgICAgICAgICAgIFNsaWNrLkVkaXRvcnMuUmVh ZE9ubHlUZXh0OwotICAgICAgICAgIG9wdGlvbnNbJ2Zvcm1hdHRlciddID0gU2xpY2suRm9ybWF0 dGVycy5OdW1iZXJzOwotICAgICAgICB9IGVsc2UgaWYgKGMuY2VsbCA9PSAnYm9vbGVhbicpIHsK LSAgICAgICAgICBvcHRpb25zWydlZGl0b3InXSA9IGMuY2FuX2VkaXQgPyBTbGljay5FZGl0b3Jz LkNoZWNrYm94IDoKLSAgICAgICAgICAgIFNsaWNrLkVkaXRvcnMuUmVhZE9ubHlDaGVja2JveDsK LSAgICAgICAgICBvcHRpb25zWydmb3JtYXR0ZXInXSA9IFNsaWNrLkZvcm1hdHRlcnMuQ2hlY2tt YXJrOwotICAgICAgICB9IGVsc2UgaWYgKGMuY2VsbCA9PSAnYmluYXJ5JykgewotICAgICAgICAg IC8vIFdlIGRvIG5vdCBzdXBwb3J0IGVkaXRpbmcgYmluYXJ5IGRhdGEgaW4gU1FMIGVkaXRvciBh bmQgZGF0YSBncmlkLgotICAgICAgICAgIG9wdGlvbnNbJ2Zvcm1hdHRlciddID0gU2xpY2suRm9y bWF0dGVycy5CaW5hcnk7Ci0gICAgICAgIH0gZWxzZSBpZiAoYy5jZWxsID09ICdnZW9tZXRyeScg fHwgYy5jZWxsID09ICdnZW9ncmFwaHknKSB7Ci0gICAgICAgICAgLy8gaW5jcmVhc2Ugd2lkdGgg dG8gYWRkICd2aWV3JyBidXR0b24KLSAgICAgICAgICBvcHRpb25zWydjYW5fZWRpdCddID0gZmFs c2U7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgb3B0aW9uc1snZWRpdG9yJ10gPSBjLmNh bl9lZGl0ID8gU2xpY2suRWRpdG9ycy5wZ1RleHQgOgotICAgICAgICAgICAgU2xpY2suRWRpdG9y cy5SZWFkT25seXBnVGV4dDsKLSAgICAgICAgICBvcHRpb25zWydmb3JtYXR0ZXInXSA9IFNsaWNr LkZvcm1hdHRlcnMuVGV4dDsKLSAgICAgICAgfQotCi0gICAgICAgIGlmKCFfLmlzVW5kZWZpbmVk KGMuY2FuX2VkaXQpKSB7Ci0gICAgICAgICAgbGV0IHRvb2x0aXAgPSAnJzsKLSAgICAgICAgICBp ZihjLmNhbl9lZGl0KQotICAgICAgICAgICAgdG9vbHRpcCA9IGdldHRleHQoJ0VkaXRhYmxlIGNv bHVtbicpOwotICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIHRvb2x0aXAgPSBnZXR0ZXh0KCdS ZWFkLW9ubHkgY29sdW1uJyk7Ci0KLSAgICAgICAgICBvcHRpb25zWyd0b29sVGlwJ10gPSB0b29s dGlwOwotICAgICAgICB9Ci0KLSAgICAgICAgZ3JpZF9jb2x1bW5zLnB1c2gob3B0aW9ucyk7Ci0g ICAgICB9KTsKLQotICAgICAgdmFyIGdyaWRTZWxlY3RvciA9IG5ldyBHcmlkU2VsZWN0b3IoKTsK LSAgICAgIGdyaWRfY29sdW1ucyA9IHNlbGYuZ3JpZF9jb2x1bW5zID0gZ3JpZFNlbGVjdG9yLmdl dENvbHVtbkRlZmluaXRpb25zKGdyaWRfY29sdW1ucyk7Ci0KLSAgICAgIF8uZWFjaChncmlkX2Nv bHVtbnMsIGZ1bmN0aW9uIChjKSB7Ci0gICAgICAgIC8vIEFkZCAndmlldycgYnV0dG9uIGluIGdl b21ldHJ5IGFuZCBnZW9ncmFwaHkgdHlwZSBjb2x1bW4gaGVhZGVycwotICAgICAgICBpZiAoYy5j b2x1bW5fdHlwZV9pbnRlcm5hbCA9PSAnZ2VvbWV0cnknIHx8IGMuY29sdW1uX3R5cGVfaW50ZXJu YWwgPT0gJ2dlb2dyYXBoeScpIHsKLSAgICAgICAgICBHZW9tZXRyeVZpZXdlci5hZGRfaGVhZGVy X2J1dHRvbihjKTsKLSAgICAgICAgfQotICAgICAgICAvLyBBZGQgZWRpdGFibGUvcmVhZC1vbmx5 IGljb24gdG8gY29sdW1ucwotICAgICAgICBpZiAoIV8uaXNVbmRlZmluZWQoYy5jYW5fZWRpdCkp IHsKLSAgICAgICAgICBTcWxFZGl0b3JVdGlscy5hZGRFZGl0YWJsZUljb24oYywgYy5jYW5fZWRp dCk7Ci0gICAgICAgIH0KLSAgICAgIH0pOwotCi0gICAgICBpZiAocm93c19hZmZlY3RlZCkgewot ICAgICAgICAvLyBjYWxjdWxhdGUgd2l0aCBmb3IgaGVhZGVyIHJvdyBjb2x1bW4uCi0gICAgICAg IGdyaWRfY29sdW1uc1swXVsnd2lkdGgnXSA9IFNxbEVkaXRvclV0aWxzLmNhbGN1bGF0ZUNvbHVt bldpZHRoKHJvd3NfYWZmZWN0ZWQpOwotICAgICAgfQotCi0gICAgICB2YXIgZ3JpZF9vcHRpb25z ID0gewotICAgICAgICBlZGl0YWJsZTogdHJ1ZSwKLSAgICAgICAgZW5hYmxlQWRkUm93OiBpc19l ZGl0YWJsZSwKLSAgICAgICAgZW5hYmxlQ2VsbE5hdmlnYXRpb246IHRydWUsCi0gICAgICAgIGVu YWJsZUNvbHVtblJlb3JkZXI6IGZhbHNlLAotICAgICAgICBhc3luY0VkaXRvckxvYWRpbmc6IGZh bHNlLAotICAgICAgICBhdXRvRWRpdDogZmFsc2UsCi0gICAgICB9OwotCi0gICAgICB2YXIgJGRh dGFfZ3JpZCA9ICQoJyNkYXRhZ3JpZCcpOwotICAgICAgLy8gQ2FsY3VsYXRlIGhlaWdodCBiYXNl ZCBvbiBwYW5lbCBzaXplIGF0IHJ1bnRpbWUgJiBzZXQgaXQKLSAgICAgIHZhciBncmlkX2hlaWdo dCA9ICQodGhpcy5kYXRhX291dHB1dF9wYW5lbC4kY29udGFpbmVyLnBhcmVudCgpLnBhcmVudCgp KS5oZWlnaHQoKSAtIDM1OwotICAgICAgJGRhdGFfZ3JpZC5oZWlnaHQoZ3JpZF9oZWlnaHQpOwot Ci0gICAgICB2YXIgZGF0YVZpZXcgPSBzZWxmLmRhdGFWaWV3ID0gbmV3IFNsaWNrLkRhdGEuRGF0 YVZpZXcoKSwKLSAgICAgICAgZ3JpZCA9IHNlbGYuZ3JpZCA9IG5ldyBTbGljay5HcmlkKCRkYXRh X2dyaWQsIGRhdGFWaWV3LCBncmlkX2NvbHVtbnMsIGdyaWRfb3B0aW9ucyk7Ci0KLSAgICAgIC8v IEFkZC1vbiBmdW5jdGlvbiB3aGljaCBhbGxvdyB1cyB0byBpZGVudGlmeSB0aGUgZmF1bHR5IHJv dyBhZnRlciBpbnNlcnQvdXBkYXRlCi0gICAgICAvLyBhbmQgYXBwbHkgY3NzIGFjY29yZGluZ2x5 Ci0KLSAgICAgIGRhdGFWaWV3LmdldEl0ZW1NZXRhZGF0YSA9IGZ1bmN0aW9uKHJvd3MpIHsKLSAg ICAgICAgdmFyIGNzc0NsYXNzID0gJycsCi0gICAgICAgICAgZGF0YV9zdG9yZSA9IHNlbGYuaGFu ZGxlci5kYXRhX3N0b3JlOwotCi0gICAgICAgIGlmIChfLmhhcyhzZWxmLmhhbmRsZXIsICdkYXRh X3N0b3JlJykpIHsKLSAgICAgICAgICBpZiAocm93cyBpbiBkYXRhX3N0b3JlLmFkZGVkX2luZGV4 ICYmCi0gICAgICAgICAgICBkYXRhX3N0b3JlLmFkZGVkX2luZGV4W3Jvd3NdIGluIGRhdGFfc3Rv cmUuYWRkZWQpIHsKLSAgICAgICAgICAgIGNzc0NsYXNzID0gJ25ld19yb3cnOwotICAgICAgICAg ICAgaWYgKGRhdGFfc3RvcmUuYWRkZWRbZGF0YV9zdG9yZS5hZGRlZF9pbmRleFtyb3dzXV0uZXJy KSB7Ci0gICAgICAgICAgICAgIGNzc0NsYXNzICs9ICcgZXJyb3InOwotICAgICAgICAgICAgfQot ICAgICAgICAgIH0gZWxzZSBpZiAocm93cyBpbiBkYXRhX3N0b3JlLnVwZGF0ZWRfaW5kZXggJiYg cm93cyBpbiBkYXRhX3N0b3JlLnVwZGF0ZWQpIHsKLSAgICAgICAgICAgIGNzc0NsYXNzID0gJ3Vw ZGF0ZWRfcm93JzsKLSAgICAgICAgICAgIGlmIChkYXRhX3N0b3JlLnVwZGF0ZWRbZGF0YV9zdG9y ZS51cGRhdGVkX2luZGV4W3Jvd3NdXS5lcnIpIHsKLSAgICAgICAgICAgICAgY3NzQ2xhc3MgKz0g JyBlcnJvcic7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgfQotICAgICAgICB9Ci0KLSAgICAg ICAgLy8gRGlzYWJsZSByb3dzIGhhdmluZyBkZWZhdWx0IHZhbHVlcwotICAgICAgICBpZiAoIV8u aXNVbmRlZmluZWQoc2VsZi5oYW5kbGVyLnJvd3NfdG9fZGlzYWJsZSkgJiYKLSAgICAgICAgICBz ZWxmLmhhbmRsZXIucm93c190b19kaXNhYmxlLmxlbmd0aCA+IDAgJiYKLSAgICAgICAgICBfLmlu ZGV4T2Yoc2VsZi5oYW5kbGVyLnJvd3NfdG9fZGlzYWJsZSwgcm93cykgIT09IC0xKSB7Ci0gICAg ICAgICAgY3NzQ2xhc3MgKz0gJyBkaXNhYmxlZF9yb3cnOwotICAgICAgICB9Ci0KLSAgICAgICAg cmV0dXJuIHsKLSAgICAgICAgICAnY3NzQ2xhc3Nlcyc6IGNzc0NsYXNzLAotICAgICAgICB9Owot ICAgICAgfTsKLQotICAgICAgZ3JpZC5yZWdpc3RlclBsdWdpbihuZXcgU2xpY2suQXV0b1Rvb2x0 aXBzKHsKLSAgICAgICAgZW5hYmxlRm9ySGVhZGVyQ2VsbHM6IGZhbHNlLAotICAgICAgfSkpOwot ICAgICAgZ3JpZC5yZWdpc3RlclBsdWdpbihuZXcgQWN0aXZlQ2VsbENhcHR1cmUoKSk7Ci0gICAg ICBncmlkLnNldFNlbGVjdGlvbk1vZGVsKG5ldyBYQ2VsbFNlbGVjdGlvbk1vZGVsKCkpOwotICAg ICAgZ3JpZC5yZWdpc3RlclBsdWdpbihncmlkU2VsZWN0b3IpOwotICAgICAgZ3JpZC5yZWdpc3Rl clBsdWdpbihuZXcgU2xpY2suQXV0b0NvbHVtblNpemUoKSk7Ci0gICAgICB2YXIgaGVhZGVyQnV0 dG9uc1BsdWdpbiA9IG5ldyBTbGljay5QbHVnaW5zLkhlYWRlckJ1dHRvbnMoKTsKLSAgICAgIGhl YWRlckJ1dHRvbnNQbHVnaW4ub25Db21tYW5kLnN1YnNjcmliZShmdW5jdGlvbiAoZSwgYXJncykg ewotICAgICAgICBsZXQgY29tbWFuZCA9IGFyZ3MuY29tbWFuZDsKLSAgICAgICAgaWYgKGNvbW1h bmQgPT09ICd2aWV3LWdlb21ldHJpZXMnKSB7Ci0gICAgICAgICAgbGV0IGNvbHMgPSBhcmdzLmdy aWQuZ2V0Q29sdW1ucygpOwotICAgICAgICAgIGxldCBjb2x1bW5JbmRleCA9IGNvbHMuaW5kZXhP ZihhcmdzLmNvbHVtbik7Ci0gICAgICAgICAgbGV0IHNlbGVjdGVkUm93cyA9IGFyZ3MuZ3JpZC5n ZXRTZWxlY3RlZFJvd3MoKTsKLSAgICAgICAgICBpZiAoc2VsZWN0ZWRSb3dzLmxlbmd0aCA9PT0g MCkgewotICAgICAgICAgICAgLy8gaWYgbm8gcm93cyBhcmUgc2VsZWN0ZWQsIGxvYWQgYW5kIHJl bmRlciBhbGwgdGhlIHJvd3MKLSAgICAgICAgICAgIGlmIChzZWxmLmhhbmRsZXIuaGFzX21vcmVf cm93cykgewotICAgICAgICAgICAgICBzZWxmLmZldGNoX25leHRfYWxsKGZ1bmN0aW9uICgpIHsK LSAgICAgICAgICAgICAgICAvLyB0cmlnZ2VyIG9uR3JpZFNlbGVjdEFsbCBtYW51YWxseSB3aXRo IG5ldyBldmVudCBkYXRhLgotICAgICAgICAgICAgICAgIGdyaWRTZWxlY3Rvci5vbkdyaWRTZWxl Y3RBbGwubm90aWZ5KGFyZ3MsIG5ldyBTbGljay5FdmVudERhdGEoKSk7Ci0gICAgICAgICAgICAg ICAgbGV0IGl0ZW1zID0gYXJncy5ncmlkLmdldERhdGEoKS5nZXRJdGVtcygpOwotICAgICAgICAg ICAgICAgIEdlb21ldHJ5Vmlld2VyLnJlbmRlcl9nZW9tZXRyaWVzKHNlbGYuaGFuZGxlciwgaXRl bXMsIGNvbHMsIGNvbHVtbkluZGV4KTsKLSAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICB9 IGVsc2UgewotICAgICAgICAgICAgICBncmlkU2VsZWN0b3Iub25HcmlkU2VsZWN0QWxsLm5vdGlm eShhcmdzLCBuZXcgU2xpY2suRXZlbnREYXRhKCkpOwotICAgICAgICAgICAgICBsZXQgaXRlbXMg PSBhcmdzLmdyaWQuZ2V0RGF0YSgpLmdldEl0ZW1zKCk7Ci0gICAgICAgICAgICAgIEdlb21ldHJ5 Vmlld2VyLnJlbmRlcl9nZW9tZXRyaWVzKHNlbGYuaGFuZGxlciwgaXRlbXMsIGNvbHMsIGNvbHVt bkluZGV4KTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAg Ly8gcmVuZGVyIHNlbGVjdGVkIHJvd3MKLSAgICAgICAgICAgIGxldCBpdGVtcyA9IGFyZ3MuZ3Jp ZC5nZXREYXRhKCkuZ2V0SXRlbXMoKTsKLSAgICAgICAgICAgIGxldCBzZWxlY3RlZEl0ZW1zID0g Xy5tYXAoc2VsZWN0ZWRSb3dzLCBmdW5jdGlvbiAocm93KSB7Ci0gICAgICAgICAgICAgIHJldHVy biBpdGVtc1tyb3ddOwotICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICBHZW9tZXRyeVZpZXdl ci5yZW5kZXJfZ2VvbWV0cmllcyhzZWxmLmhhbmRsZXIsIHNlbGVjdGVkSXRlbXMsIGNvbHMsIGNv bHVtbkluZGV4KTsKLSAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgIH0pOwotICAgICAgZ3Jp ZC5yZWdpc3RlclBsdWdpbihoZWFkZXJCdXR0b25zUGx1Z2luKTsKLQotICAgICAgdmFyIGVkaXRv cl9kYXRhID0gewotICAgICAgICBrZXlzOiAoXy5pc0VtcHR5KHNlbGYuaGFuZGxlci5wcmltYXJ5 X2tleXMpICYmIHNlbGYuaGFuZGxlci5oYXNfb2lkcykgPyBzZWxmLmhhbmRsZXIub2lkcyA6IHNl bGYuaGFuZGxlci5wcmltYXJ5X2tleXMsCi0gICAgICAgIHZhbHM6IGNvbGxlY3Rpb24sCi0gICAg ICAgIGNvbHVtbnM6IGNvbHVtbnMsCi0gICAgICAgIGdyaWQ6IGdyaWQsCi0gICAgICAgIHNlbGVj dGlvbjogZ3JpZC5nZXRTZWxlY3Rpb25Nb2RlbCgpLAotICAgICAgICBlZGl0b3I6IHNlbGYsCi0g ICAgICAgIGNsaWVudF9wcmltYXJ5X2tleTogc2VsZi5jbGllbnRfcHJpbWFyeV9rZXksCi0gICAg ICAgIGhhc19vaWRzOiBzZWxmLmhhbmRsZXIuaGFzX29pZHMsCi0gICAgICB9OwotCi0gICAgICBz ZWxmLmhhbmRsZXIuc2xpY2tncmlkID0gZ3JpZDsKLSAgICAgIC8vIEFkZCBsaXN0ZW5lciBvbiBk YXRhLWdyaWQgdGFibGUgc2Nyb2xsLgotICAgICAgc2VsZi5oYW5kbGVyLnNsaWNrZ3JpZC5vblNj cm9sbC5zdWJzY3JpYmUoZnVuY3Rpb24oKSB7Ci0gICAgICAgIC8vIE1hcmsgc2VsZWN0ZWQgcm93 cyBjZWxscyBhcyBzZWxlY3RlZC4KLSAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7Ci0gICAgICAg ICAgLy8gQ2FuJ3QgdXNlIHNldFNlbGVjdGVkUm93cyBhcyB3ZSBhcmUgdXNpbmcgY2VsbFNlbGVj dGlvbk1vZGVsLgotICAgICAgICAgIHZhciBjZWxsU2VsZWN0aW9uTW9kZWwgPSBzZWxmLmhhbmRs ZXIuZ3JpZFZpZXcuZ3JpZC5nZXRTZWxlY3Rpb25Nb2RlbCgpOwotICAgICAgICAgIHZhciByYW5n ZXMgPSBjZWxsU2VsZWN0aW9uTW9kZWwuZ2V0U2VsZWN0ZWRSYW5nZXMoKTsKLQotICAgICAgICAg IGlmIChyYW5nZXMubGVuZ3RoID4gMSkgewotICAgICAgICAgICAgLy8gU2V0IHNlbGVjdGVkIHJv d3MgY2VsbCBhcyBzZWxlY3RlZC4KLSAgICAgICAgICAgIGNlbGxTZWxlY3Rpb25Nb2RlbC5zZXRT ZWxlY3RlZFJhbmdlcyhyYW5nZXMpOwotICAgICAgICAgIH0KLSAgICAgICAgfSwgMTAwKTsKLQot ICAgICAgICBpZihPYmplY3Qua2V5cyhzZWxmLmhhbmRsZXIuZGF0YV9zdG9yZS5kZWxldGVkKS5s ZW5ndGggPiAwKSB7Ci0gICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7Ci0gICAgICAgICAgICAk KHNlbGYuaGFuZGxlci5ncmlkVmlldy5ncmlkLmdldENhbnZhc05vZGUoKSkuZmluZCgnZGl2LnNl bGVjdGVkJykucmVtb3ZlQ2xhc3MoJ3N0cmlrZW91dCcpOwotICAgICAgICAgICAgJChzZWxmLmhh bmRsZXIuZ3JpZFZpZXcuZ3JpZC5nZXRDYW52YXNOb2RlKCkpLmZpbmQoJ2Rpdi5zZWxlY3RlZCcp LmFkZENsYXNzKCdzdHJpa2VvdXQnKTsKLSAgICAgICAgICB9LCAxMDApOwotICAgICAgICB9Ci0g ICAgICB9KTsKLSAgICAgIHNlbGYuaGFuZGxlci5zbGlja2dyaWQuQ1NWT3B0aW9ucyA9IHsKLSAg ICAgICAgcXVvdGluZzogc2VsZi5wcmVmZXJlbmNlcy5yZXN1bHRzX2dyaWRfcXVvdGluZywKLSAg ICAgICAgcXVvdGVfY2hhcjogc2VsZi5wcmVmZXJlbmNlcy5yZXN1bHRzX2dyaWRfcXVvdGVfY2hh ciwKLSAgICAgICAgZmllbGRfc2VwYXJhdG9yOiBzZWxmLnByZWZlcmVuY2VzLnJlc3VsdHNfZ3Jp ZF9maWVsZF9zZXBhcmF0b3IsCi0gICAgICB9OwotCi0gICAgICAvLyBMaXN0ZW5lciBmdW5jdGlv biB0byB3YXRjaCBzZWxlY3RlZCByb3dzIGZyb20gZ3JpZAotICAgICAgaWYgKGVkaXRvcl9kYXRh LnNlbGVjdGlvbikgewotICAgICAgICBlZGl0b3JfZGF0YS5zZWxlY3Rpb24ub25TZWxlY3RlZFJh bmdlc0NoYW5nZWQuc3Vic2NyaWJlKAotICAgICAgICAgIHNldFN0YWdlZFJvd3MuYmluZChlZGl0 b3JfZGF0YSkpOwotICAgICAgfQotCi0gICAgICBncmlkLm9uQ29sdW1uc1Jlc2l6ZWQuc3Vic2Ny aWJlKGZ1bmN0aW9uKCkgewotICAgICAgICB2YXIgY29scyA9IHRoaXMuZ2V0Q29sdW1ucygpOwot ICAgICAgICBfLmVhY2goY29scywgZnVuY3Rpb24oY29sKSB7Ci0gICAgICAgICAgdmFyIGNvbF9z aXplID0gc2VsZi5oYW5kbGVyWydjb2xfc2l6ZSddOwotICAgICAgICAgIGNvbF9zaXplW3NlbGYu aGFuZGxlclsndGFibGVfbmFtZSddXVtjb2xbJ25vbmF0aXZlX2ZpZWxkJ11dID0gY29sWyd3aWR0 aCddOwotICAgICAgICB9KTsKLSAgICAgIH0uYmluZChncmlkKSk7Ci0KLSAgICAgIGdyaWRTZWxl Y3Rvci5vbkJlZm9yZUdyaWRTZWxlY3RBbGwuc3Vic2NyaWJlKGZ1bmN0aW9uKGUsIGFyZ3MpIHsK LSAgICAgICAgaWYgKHNlbGYuaGFuZGxlci5oYXNfbW9yZV9yb3dzKSB7Ci0gICAgICAgICAgLy8g dGhpcyB3aWxsIHByZXZlbnQgc2VsZWN0aW9uIHVuLXRpbGwgd2UgbG9hZCBhbGwgZGF0YQotICAg ICAgICAgIGUuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCk7Ci0gICAgICAgICAgc2VsZi5mZXRj aF9uZXh0X2FsbChmdW5jdGlvbigpIHsKLSAgICAgICAgICAgIC8vIHNpbmNlIHdlJ3ZlIHN0b3Bw ZWQgZXZlbnQgcHJvcGFnYXRpb24gd2UgbmVlZCB0bwotICAgICAgICAgICAgLy8gdHJpZ2dlciBv bkdyaWRTZWxlY3RBbGwgbWFudWFsbHkgd2l0aCBuZXcgZXZlbnQgZGF0YS4KLSAgICAgICAgICAg IGdyaWRTZWxlY3Rvci5vbkdyaWRTZWxlY3RBbGwubm90aWZ5KGFyZ3MsIG5ldyBTbGljay5FdmVu dERhdGEoKSk7Ci0gICAgICAgICAgfSk7Ci0gICAgICAgIH0KLSAgICAgIH0pOwotCi0gICAgICBn cmlkU2VsZWN0b3Iub25CZWZvcmVHcmlkQ29sdW1uU2VsZWN0QWxsLnN1YnNjcmliZShmdW5jdGlv bihlLCBhcmdzKSB7Ci0gICAgICAgIGlmIChzZWxmLmhhbmRsZXIuaGFzX21vcmVfcm93cykgewot ICAgICAgICAgIC8vIHRoaXMgd2lsbCBwcmV2ZW50IHNlbGVjdGlvbiB1bi10aWxsIHdlIGxvYWQg YWxsIGRhdGEKLSAgICAgICAgICBlLnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpOwotICAgICAg ICAgIHNlbGYuZmV0Y2hfbmV4dF9hbGwoZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICAvLyBzaW5j ZSB3ZSd2ZSBzdG9wcGVkIGV2ZW50IHByb3BhZ2F0aW9uIHdlIG5lZWQgdG8KLSAgICAgICAgICAg IC8vIHRyaWdnZXIgb25HcmlkQ29sdW1uU2VsZWN0QWxsIG1hbnVhbGx5IHdpdGggbmV3IGV2ZW50 IGRhdGEuCi0gICAgICAgICAgICBncmlkU2VsZWN0b3Iub25HcmlkQ29sdW1uU2VsZWN0QWxsLm5v dGlmeShhcmdzLCBuZXcgU2xpY2suRXZlbnREYXRhKCkpOwotICAgICAgICAgIH0pOwotICAgICAg ICB9Ci0gICAgICB9KTsKLQotICAgICAgLy8gbGlzdGVuIGZvciByb3cgY291bnQgY2hhbmdlLgot ICAgICAgZGF0YVZpZXcub25Sb3dDb3VudENoYW5nZWQuc3Vic2NyaWJlKGZ1bmN0aW9uKCkgewot ICAgICAgICBncmlkLnVwZGF0ZVJvd0NvdW50KCk7Ci0gICAgICAgIGdyaWQucmVuZGVyKCk7Ci0g ICAgICB9KTsKLQotICAgICAgLy8gbGlzdGVuIGZvciByb3dzIGNoYW5nZS4KLSAgICAgIGRhdGFW aWV3Lm9uUm93c0NoYW5nZWQuc3Vic2NyaWJlKGZ1bmN0aW9uKGUsIGFyZ3MpIHsKLSAgICAgICAg Z3JpZC5pbnZhbGlkYXRlUm93cyhhcmdzLnJvd3MpOwotICAgICAgICBncmlkLnJlbmRlcigpOwot ICAgICAgICAvLyBSZXNpemUgYWxsIGNvbHVtbnMgaWYgY29sdW1uX2RhdGFfYXV0b19yZXNpemUg aXMgJ2J5X2RhdGEnLgotICAgICAgICBpZiAoc2VsZi5wcmVmZXJlbmNlcy5jb2x1bW5fZGF0YV9h dXRvX3Jlc2l6ZSA9PT0gJ2J5X2RhdGEnKSB7Ci0gICAgICAgICAgZ3JpZC5yZXNpemVBbGxDb2x1 bW5zICYmIGdyaWQucmVzaXplQWxsQ29sdW1ucyhzZWxmLnByZWZlcmVuY2VzLmNvbHVtbl9kYXRh X21heF93aWR0aCwgc2VsZi5tYXhfd2lkdGhfY2hhbmdlZCk7Ci0gICAgICAgIH0KLSAgICAgIH0p OwotCi0gICAgICAvLyBMaXN0ZW5lciBmdW5jdGlvbiB3aGljaCB3aWxsIGJlIGNhbGxlZCBiZWZv cmUgdXNlciB1cGRhdGVzIGV4aXN0aW5nIGNlbGwKLSAgICAgIC8vIFRoaXMgd2lsbCBiZSB1c2Vk IHRvIGNvbGxlY3QgcHJpbWFyeSBrZXkgZm9yIHRoYXQgcm93Ci0gICAgICBncmlkLm9uQmVmb3Jl RWRpdENlbGwuc3Vic2NyaWJlKGZ1bmN0aW9uKGUsIGFyZ3MpIHsKLSAgICAgICAgaWYgKGFyZ3Mu Y29sdW1uLmNvbHVtbl90eXBlX2ludGVybmFsID09ICdieXRlYScgfHwKLSAgICAgICAgICBhcmdz LmNvbHVtbi5jb2x1bW5fdHlwZV9pbnRlcm5hbCA9PSAnYnl0ZWFbXScpIHsKLSAgICAgICAgICBy ZXR1cm4gZmFsc2U7Ci0gICAgICAgIH0KLQotICAgICAgICB2YXIgYmVmb3JlX2RhdGEgPSBhcmdz Lml0ZW07Ci0KLSAgICAgICAgLy8gSWYgbmV3bHkgYWRkZWQgcm93IGlzIHNhdmVkIGJ1dCBncmlk IGlzIG5vdCByZWZyZXNoZWQsCi0gICAgICAgIC8vIHRoZW4gZGlzYWJsZSBjZWxsIGVkaXRpbmcg Zm9yIHRoYXQgcm93Ci0gICAgICAgIGlmIChzZWxmLmhhbmRsZXIucm93c190b19kaXNhYmxlICYm Ci0gICAgICAgICAgXy5jb250YWlucyhzZWxmLmhhbmRsZXIucm93c190b19kaXNhYmxlLCBhcmdz LnJvdykpIHsKLSAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIH0KLQotICAgICAgICBp ZiAoc2VsZi5oYW5kbGVyLmNhbl9lZGl0ICYmIGJlZm9yZV9kYXRhICYmIHNlbGYuY2xpZW50X3By aW1hcnlfa2V5IGluIGJlZm9yZV9kYXRhKSB7Ci0gICAgICAgICAgdmFyIF9wayA9IGJlZm9yZV9k YXRhW3NlbGYuY2xpZW50X3ByaW1hcnlfa2V5XSwKLSAgICAgICAgICAgIF9rZXlzID0gc2VsZi5o YW5kbGVyLnByaW1hcnlfa2V5cywKLSAgICAgICAgICAgIGN1cnJlbnRfcGsgPSB7fTsKLQotICAg ICAgICAgIC8vIElmIGFscmVhZHkgaGF2ZSBwcmltYXJ5IGtleSBkYXRhIHRoZW4gbm8gbmVlZCB0 byBnbyBhaGVhZAotICAgICAgICAgIGlmIChfcGsgaW4gc2VsZi5oYW5kbGVyLnByaW1hcnlfa2V5 c19kYXRhKSB7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgfQotCi0gICAgICAgICAg Ly8gRmV0Y2ggcHJpbWFyeSBrZXlzIGZvciB0aGUgcm93IGJlZm9yZSB0aGV5IGdldHMgbW9kaWZp ZWQKLSAgICAgICAgICBfLmVhY2goX2tleXMsIGZ1bmN0aW9uKHZhbHVlLCBrZXkpIHsKLSAgICAg ICAgICAgIGN1cnJlbnRfcGtba2V5XSA9IGJlZm9yZV9kYXRhW2tleV07Ci0gICAgICAgICAgfSk7 Ci0gICAgICAgICAgLy8gUGxhY2UgaXQgaW4gbWFpbiB2YXJpYWJsZSBmb3IgbGF0ZXIgdXNlCi0g ICAgICAgICAgc2VsZi5oYW5kbGVyLnByaW1hcnlfa2V5c19kYXRhW19wa10gPSBjdXJyZW50X3Br OwotICAgICAgICB9Ci0gICAgICB9KTsKLQotICAgICAgZ3JpZC5vbktleURvd24uc3Vic2NyaWJl KGZ1bmN0aW9uKGV2ZW50LCBhcmdzKSB7Ci0gICAgICAgIHZhciBLRVlfQSA9IDY1OwotICAgICAg ICB2YXIgbW9kaWZpZWRLZXkgPSBldmVudC5rZXlDb2RlOwotICAgICAgICB2YXIgaXNNb2RpZmll ckRvd24gPSBldmVudC5jdHJsS2V5IHx8IGV2ZW50Lm1ldGFLZXk7Ci0gICAgICAgIC8vIEludGVy Y2VwdCBDdHJsL0NtZCArIEEga2V5IGJvYXJkIGV2ZW50LgotICAgICAgICAvLyBBcyB3ZSBtaWdo dCB3YW50IHRvIGxvYWQgYWxsIHJvd3MgYmVmb3JlIHNlbGVjdGluZyBhbGwuCi0gICAgICAgIGlm IChpc01vZGlmaWVyRG93biAmJiBtb2RpZmllZEtleSA9PSBLRVlfQSAmJiBzZWxmLmhhbmRsZXIu aGFzX21vcmVfcm93cykgewotICAgICAgICAgIHNlbGYuZmV0Y2hfbmV4dF9hbGwoZnVuY3Rpb24o KSB7Ci0gICAgICAgICAgICBoYW5kbGVRdWVyeU91dHB1dEtleWJvYXJkRXZlbnQoZXZlbnQsIGFy Z3MpOwotICAgICAgICAgIH0pOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgIGhhbmRsZVF1 ZXJ5T3V0cHV0S2V5Ym9hcmRFdmVudChldmVudCwgYXJncyk7Ci0gICAgICAgIH0KLSAgICAgIH0p OwotCi0gICAgICAvLyBIYW5kbGVzIGJsdXIgZXZlbnQgZm9yIHNsaWNrIGdyaWQgY2VsbAotICAg ICAgJCgnLnNsaWNrLXZpZXdwb3J0Jykub24oJ2JsdXInLCAnaW5wdXQuZWRpdG9yLXRleHQnLCBm dW5jdGlvbiAoKSB7Ci0gICAgICAgIHdpbmRvdy5zZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewotICAg ICAgICAgIGlmIChTbGljay5HbG9iYWxFZGl0b3JMb2NrLmlzQWN0aXZlKCkpCi0gICAgICAgICAg ICBTbGljay5HbG9iYWxFZGl0b3JMb2NrLmNvbW1pdEN1cnJlbnRFZGl0KCk7Ci0gICAgICAgIH0p OwotICAgICAgfSk7Ci0KLSAgICAgIC8vIExpc3RlbmVyIGZ1bmN0aW9uIHdoaWNoIHdpbGwgYmUg Y2FsbGVkIHdoZW4gdXNlciB1cGRhdGVzIGV4aXN0aW5nIHJvd3MKLSAgICAgIGdyaWQub25DZWxs Q2hhbmdlLnN1YnNjcmliZShmdW5jdGlvbihlLCBhcmdzKSB7Ci0gICAgICAgIC8vIHNlbGYuaGFu ZGxlci5kYXRhX3N0b3JlLnVwZGF0ZWQgd2lsbCBob2xkcyBhbGwgdGhlIHVwZGF0ZWQgZGF0YQot ICAgICAgICB2YXIgY2hhbmdlZF9jb2x1bW4gPSBhcmdzLmdyaWQuZ2V0Q29sdW1ucygpW2FyZ3Mu Y2VsbF0uZmllbGQsCi0gICAgICAgICAgdXBkYXRlZF9kYXRhID0gYXJncy5pdGVtW2NoYW5nZWRf Y29sdW1uXSwgLy8gTmV3IHZhbHVlIGZvciBjdXJyZW50IGZpZWxkCi0gICAgICAgICAgX3BrID0g YXJncy5pdGVtW3NlbGYuY2xpZW50X3ByaW1hcnlfa2V5XSB8fCBudWxsLCAvLyBVbmlxdWUga2V5 IHRvIGlkZW50aWZ5IHJvdwotICAgICAgICAgIGNvbHVtbl9kYXRhID0ge307Ci0KLSAgICAgICAg Ly8gSGlnaGxpZ2h0IHRoZSBjaGFuZ2VkIGNlbGwKLSAgICAgICAgc2VsZi5oYW5kbGVyLm51bWJl ck9mTW9kaWZpZWRDZWxscysrOwotICAgICAgICBhcmdzLmdyaWQuYWRkQ2VsbENzc1N0eWxlcyhz ZWxmLmhhbmRsZXIubnVtYmVyT2ZNb2RpZmllZENlbGxzLCB7Ci0gICAgICAgICAgW2FyZ3Mucm93 XSA6IHsKLSAgICAgICAgICAgIFtjaGFuZ2VkX2NvbHVtbl06ICdoaWdobGlnaHRlZF9ncmlkX2Nl bGxzJywKLSAgICAgICAgICB9LAotICAgICAgICB9KTsKLQotICAgICAgICAvLyBBY2Nlc3MgdG8g cm93L2NlbGwgdmFsdWUgYWZ0ZXIgYSBjZWxsIGlzIGNoYW5nZWQuCi0gICAgICAgIC8vIFRoZSBw dXJwb3NlIGlzIHRvIHJlbW92ZSByb3dfaWQgZnJvbSB0ZW1wX25ld19yb3cKLSAgICAgICAgLy8g aWYgbmV3IHJvdyBoYXMgcHJpbWFyeSBrZXkgaW5zdGVhZCBvZiBbZGVmYXVsdF92YWx1ZV0KLSAg ICAgICAgLy8gc28gdGhhdCBjZWxsIGVkaXQgaXMgZW5hYmxlZCBmb3IgdGhhdCByb3cuCi0gICAg ICAgIHZhciBncmlkX2VkaXQgPSBhcmdzLmdyaWQsCi0gICAgICAgICAgcm93X2RhdGEgPSBncmlk X2VkaXQuZ2V0RGF0YUl0ZW0oYXJncy5yb3cpLAotICAgICAgICAgIGlzX3ByaW1hcnlfa2V5ID0g c2VsZi5wcmltYXJ5X2tleXMgJiYKLSAgICAgICAgICBfLmFsbCgKLSAgICAgICAgICAgIF8udmFs dWVzKAotICAgICAgICAgICAgICBfLnBpY2soCi0gICAgICAgICAgICAgICAgcm93X2RhdGEsIHNl bGYucHJpbWFyeV9rZXlzCi0gICAgICAgICAgICAgICkKLSAgICAgICAgICAgICksCi0gICAgICAg ICAgICBmdW5jdGlvbih2YWwpIHsKLSAgICAgICAgICAgICAgcmV0dXJuIHZhbCAhPSB1bmRlZmlu ZWQ7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgKTsKLQotICAgICAgICAvLyB0ZW1wX25ld19y b3dzIGlzIGF2YWlsYWJsZSBvbmx5IGZvciB2aWV3IGRhdGEuCi0gICAgICAgIGlmIChpc19wcmlt YXJ5X2tleSAmJiBzZWxmLmhhbmRsZXIudGVtcF9uZXdfcm93cykgewotICAgICAgICAgIHZhciBp bmRleCA9IHNlbGYuaGFuZGxlci50ZW1wX25ld19yb3dzLmluZGV4T2YoYXJncy5yb3cpOwotICAg ICAgICAgIGlmIChpbmRleCA+IC0xKSB7Ci0gICAgICAgICAgICBzZWxmLmhhbmRsZXIudGVtcF9u ZXdfcm93cy5zcGxpY2UoaW5kZXgsIDEpOwotICAgICAgICAgIH0KLSAgICAgICAgfQotCi0gICAg ICAgIGNvbHVtbl9kYXRhW2NoYW5nZWRfY29sdW1uXSA9IHVwZGF0ZWRfZGF0YTsKLQotCi0gICAg ICAgIGlmIChfcGspIHsKLSAgICAgICAgICAvLyBDaGVjayBpZiBpdCBpcyBpbiBuZXdseSBhZGRl ZCByb3cgYnkgdXNlcj8KLSAgICAgICAgICBpZiAoX3BrIGluIHNlbGYuaGFuZGxlci5kYXRhX3N0 b3JlLmFkZGVkKSB7Ci0gICAgICAgICAgICBfLmV4dGVuZCgKLSAgICAgICAgICAgICAgc2VsZi5o YW5kbGVyLmRhdGFfc3RvcmUuYWRkZWRbX3BrXVsnZGF0YSddLAotICAgICAgICAgICAgICBjb2x1 bW5fZGF0YSk7Ci0gICAgICAgICAgICAvL0ZpbmQgdHlwZSBmb3IgY3VycmVudCBjb2x1bW4KLSAg ICAgICAgICAgIHNlbGYuaGFuZGxlci5kYXRhX3N0b3JlLmFkZGVkW19wa11bJ2VyciddID0gZmFs c2U7Ci0gICAgICAgICAgICAvLyBDaGVjayBpZiBpdCBpcyB1cGRhdGVkIGRhdGEgZnJvbSBleGlz dGluZyByb3dzPwotICAgICAgICAgIH0gZWxzZSBpZiAoX3BrIGluIHNlbGYuaGFuZGxlci5kYXRh X3N0b3JlLnVwZGF0ZWQpIHsKLSAgICAgICAgICAgIF8uZXh0ZW5kKAotICAgICAgICAgICAgICBz ZWxmLmhhbmRsZXIuZGF0YV9zdG9yZS51cGRhdGVkW19wa11bJ2RhdGEnXSwKLSAgICAgICAgICAg ICAgY29sdW1uX2RhdGEKLSAgICAgICAgICAgICk7Ci0gICAgICAgICAgICBzZWxmLmhhbmRsZXIu ZGF0YV9zdG9yZS51cGRhdGVkW19wa11bJ2VyciddID0gZmFsc2U7Ci0gICAgICAgICAgfSBlbHNl IHsKLSAgICAgICAgICAgIC8vIEZpcnN0IHVwZGF0ZWQgZGF0YSBmb3IgdGhpcyBwcmltYXJ5IGtl eQotICAgICAgICAgICAgc2VsZi5oYW5kbGVyLmRhdGFfc3RvcmUudXBkYXRlZFtfcGtdID0gewot ICAgICAgICAgICAgICAnZXJyJzogZmFsc2UsCi0gICAgICAgICAgICAgICdkYXRhJzogY29sdW1u X2RhdGEsCi0gICAgICAgICAgICAgICdwcmltYXJ5X2tleXMnOiBzZWxmLmhhbmRsZXIucHJpbWFy eV9rZXlzX2RhdGFbX3BrXSwKLSAgICAgICAgICAgIH07Ci0gICAgICAgICAgICBzZWxmLmhhbmRs ZXIuZGF0YV9zdG9yZS51cGRhdGVkX2luZGV4W2FyZ3Mucm93XSA9IF9wazsKLSAgICAgICAgICB9 Ci0gICAgICAgIH0KLSAgICAgICAgLy8gRW5hYmxlIHNhdmUgYnV0dG9uCi0gICAgICAgICQoJyNi dG4tc2F2ZS1kYXRhJykucHJvcCgnZGlzYWJsZWQnLCBmYWxzZSk7Ci0gICAgICB9LmJpbmQoZWRp dG9yX2RhdGEpKTsKLQotICAgICAgLy8gTGlzdGVuZXIgZnVuY3Rpb24gd2hpY2ggd2lsbCBiZSBj YWxsZWQgd2hlbiB1c2VyIGFkZHMgbmV3IHJvd3MKLSAgICAgIGdyaWQub25BZGROZXdSb3cuc3Vi c2NyaWJlKGZ1bmN0aW9uKGUsIGFyZ3MpIHsKLSAgICAgICAgLy8gc2VsZi5oYW5kbGVyLmRhdGFf c3RvcmUuYWRkZWQgd2lsbCBob2xkcyBhbGwgdGhlIG5ld2x5IGFkZGVkIHJvd3MvZGF0YQotICAg ICAgICB2YXIgY29sdW1uID0gYXJncy5jb2x1bW4sCi0gICAgICAgICAgaXRlbV9jdXJyZW50ID0g YXJncy5pdGVtLAotICAgICAgICAgIGRhdGFfbGVuZ3RoID0gdGhpcy5ncmlkLmdldERhdGFMZW5n dGgoKSwKLSAgICAgICAgICBfa2V5ID0gKHNlbGYuY2xpZW50X3ByaW1hcnlfa2V5X2NvdW50ZXIr KykudG9TdHJpbmcoKSwKLSAgICAgICAgICBkYXRhX3ZpZXcgPSB0aGlzLmdyaWQuZ2V0RGF0YSgp OwotCi0gICAgICAgIC8vIEFkZCBuZXcgcm93IGluIGxpc3QgdG8ga2VlcCB0cmFjayBvZiBpdAot ICAgICAgICBpZiAoXy5pc1VuZGVmaW5lZChpdGVtX2N1cnJlbnRbMF0pKSB7Ci0gICAgICAgICAg c2VsZi5oYW5kbGVyLnRlbXBfbmV3X3Jvd3MucHVzaChkYXRhX2xlbmd0aCk7Ci0gICAgICAgIH0K LQotICAgICAgICAvLyBJZiBjb3BpZWQgaXRlbSBoYXMgYWxyZWFkeSBwcmltYXJ5IGtleSwgdXNl IGl0LgotICAgICAgICBpZiAoaXRlbV9jdXJyZW50KSB7Ci0gICAgICAgICAgaXRlbV9jdXJyZW50 W3NlbGYuY2xpZW50X3ByaW1hcnlfa2V5XSA9IF9rZXk7Ci0gICAgICAgIH0KLQotICAgICAgICAv LyBXaGVuIGFkZGluZyBuZXcgcm93cywgbWFyayBhbGwgbmF0aXZlIEpTIGtleXdvcmRzIHVuZGVm aW5lZCBpZiBub3QgYWxyZWFkeSBzZXQKLSAgICAgICAgXy5lYWNoKGFyZ3MuZ3JpZC5nZXRDb2x1 bW5zKCksIGZ1bmN0aW9uKGNvbCl7Ci0gICAgICAgICAgaWYoaXNOYXRpdmUoaXRlbV9jdXJyZW50 W2NvbC5maWVsZF0pKSB7Ci0gICAgICAgICAgICBpdGVtX2N1cnJlbnRbY29sLmZpZWxkXSA9IHVu ZGVmaW5lZDsKLSAgICAgICAgICB9Ci0gICAgICAgIH0pOwotCi0gICAgICAgIGRhdGFfdmlldy5h ZGRJdGVtKGl0ZW1fY3VycmVudCk7Ci0gICAgICAgIHNlbGYuaGFuZGxlci5kYXRhX3N0b3JlLmFk ZGVkW19rZXldID0gewotICAgICAgICAgICdlcnInOiBmYWxzZSwKLSAgICAgICAgICAnZGF0YSc6 IGl0ZW1fY3VycmVudCwKLSAgICAgICAgfTsKLSAgICAgICAgc2VsZi5oYW5kbGVyLmRhdGFfc3Rv cmUuYWRkZWRfaW5kZXhbZGF0YV9sZW5ndGhdID0gX2tleTsKLQotICAgICAgICAvLyBGZXRjaCBk YXRhIHR5cGUgJiBhZGQgaXQgZm9yIHRoZSBjb2x1bW4KLSAgICAgICAgdmFyIHRlbXAgPSB7fTsK LSAgICAgICAgdGVtcFtjb2x1bW4ubmFtZV0gPSBfLndoZXJlKHRoaXMuY29sdW1ucywgewotICAg ICAgICAgIHBvczogY29sdW1uLnBvcywKLSAgICAgICAgfSlbMF1bJ3R5cGUnXTsKLSAgICAgICAg Z3JpZC51cGRhdGVSb3dDb3VudCgpOwotICAgICAgICBncmlkLnJlbmRlcigpOwotCi0gICAgICAg IC8vIEhpZ2hsaWdodCB0aGUgZmlyc3QgYWRkZWQgY2VsbCBvZiB0aGUgbmV3IHJvdwotICAgICAg ICB2YXIgcm93ID0gZGF0YV92aWV3LmdldFJvd0J5SXRlbShpdGVtX2N1cnJlbnQpOwotICAgICAg ICBzZWxmLmhhbmRsZXIubnVtYmVyT2ZNb2RpZmllZENlbGxzKys7Ci0gICAgICAgIGFyZ3MuZ3Jp ZC5hZGRDZWxsQ3NzU3R5bGVzKHNlbGYuaGFuZGxlci5udW1iZXJPZk1vZGlmaWVkQ2VsbHMsIHsK LSAgICAgICAgICBbcm93XSA6IHsKLSAgICAgICAgICAgIFtjb2x1bW4uZmllbGRdOiAnaGlnaGxp Z2h0ZWRfZ3JpZF9jZWxscycsCi0gICAgICAgICAgfSwKLSAgICAgICAgfSk7Ci0KLSAgICAgICAg Ly8gRW5hYmxlIHNhdmUgYnV0dG9uCi0gICAgICAgICQoJyNidG4tc2F2ZS1kYXRhJykucHJvcCgn ZGlzYWJsZWQnLCBmYWxzZSk7Ci0gICAgICB9LmJpbmQoZWRpdG9yX2RhdGEpKTsKLQotICAgICAg Ly8gTGlzdGVuIGdyaWQgdmlld3BvcnRDaGFuZ2VkIGV2ZW50IHRvIGxvYWQgbmV4dCBjaHVuayBv ZiBkYXRhLgotICAgICAgZ3JpZC5vblZpZXdwb3J0Q2hhbmdlZC5zdWJzY3JpYmUoZnVuY3Rpb24o ZSwgYXJncykgewotICAgICAgICB2YXIgcmVuZGVyZWRfcmFuZ2UgPSBhcmdzLmdyaWQuZ2V0UmVu ZGVyZWRSYW5nZSgpLAotICAgICAgICAgIGRhdGFfbGVuID0gYXJncy5ncmlkLmdldERhdGFMZW5n dGgoKTsKLSAgICAgICAgLy8gc3RhcnQgZmV0Y2hpbmcgbmV4dCBiYXRjaCBvZiByZWNvcmRzIGJl Zm9yZSByZWFjaGluZyB0byBib3R0b20uCi0gICAgICAgIGlmIChzZWxmLmhhbmRsZXIuaGFzX21v cmVfcm93cyAmJiAhc2VsZi5oYW5kbGVyLmZldGNoaW5nX3Jvd3MgJiYgcmVuZGVyZWRfcmFuZ2Uu Ym90dG9tID4gZGF0YV9sZW4gLSAxMDApIHsKLSAgICAgICAgICAvLyBmZXRjaCBhc3luY2hyb25v dXMKLSAgICAgICAgICBzZXRUaW1lb3V0KHNlbGYuZmV0Y2hfbmV4dC5iaW5kKHNlbGYpKTsKLSAg ICAgICAgfQotICAgICAgfSk7Ci0KLSAgICAgIGdyaWQub25WYWxpZGF0aW9uRXJyb3Iuc3Vic2Ny aWJlKGZ1bmN0aW9uIChlLCBhcmdzKSB7Ci0gICAgICAgIE5vdGlmeS5lcnJvcihhcmdzLnZhbGlk YXRpb25SZXN1bHRzLm1zZyk7Ci0gICAgICB9KTsKLQotICAgICAgLy8gUmVzaXplIFNsaWNrR3Jp ZCB3aGVuIHdpbmRvdyByZXNpemUKLSAgICAgICQod2luZG93KS5yZXNpemUoZnVuY3Rpb24oKSB7 Ci0gICAgICAgIC8vIFJlc2l6ZSBncmlkIG9ubHkgd2hlbiAnRGF0YSBPdXRwdXQnIHBhbmVsIGlz IHZpc2libGUuCi0gICAgICAgIGlmIChzZWxmLmRhdGFfb3V0cHV0X3BhbmVsLmlzVmlzaWJsZSgp KSB7Ci0gICAgICAgICAgc2VsZi5ncmlkX3Jlc2l6ZShncmlkKTsKLSAgICAgICAgfQotICAgICAg fSk7Ci0KLSAgICAgIC8vIFJlc2l6ZSBTbGlja0dyaWQgd2hlbiBvdXRwdXQgUGFuZWwgcmVzaXpl Ci0gICAgICBzZWxmLmRhdGFfb3V0cHV0X3BhbmVsLm9uKHdjRG9ja2VyLkVWRU5ULlJFU0laRV9F TkRFRCwgZnVuY3Rpb24oKSB7Ci0gICAgICAgIC8vIFJlc2l6ZSBncmlkIG9ubHkgd2hlbiAnRGF0 YSBPdXRwdXQnIHBhbmVsIGlzIHZpc2libGUuCi0gICAgICAgIGlmIChzZWxmLmRhdGFfb3V0cHV0 X3BhbmVsLmlzVmlzaWJsZSgpKSB7Ci0gICAgICAgICAgc2VsZi5ncmlkX3Jlc2l6ZShncmlkKTsK LSAgICAgICAgfQotICAgICAgfSk7Ci0KLSAgICAgIHNlbGYuZGF0YV9vdXRwdXRfcGFuZWwub24o d2NEb2NrZXIuRVZFTlQuUkVTSVpFRCwgZnVuY3Rpb24oKSB7Ci0gICAgICAgIC8vIFJlc2l6ZSBn cmlkIG9ubHkgd2hlbiAnRGF0YSBPdXRwdXQnIHBhbmVsIGlzIHZpc2libGUuCi0gICAgICAgIGlm IChzZWxmLmRhdGFfb3V0cHV0X3BhbmVsLmlzVmlzaWJsZSgpKSB7Ci0gICAgICAgICAgaWYgKHNl bGYucHJlZmVyZW5jZXMuY29sdW1uX2RhdGFfYXV0b19yZXNpemUgPT09ICdieV9kYXRhJykgewot ICAgICAgICAgICAgZ3JpZC5yZXNpemVBbGxDb2x1bW5zICYmIGdyaWQucmVzaXplQWxsQ29sdW1u cygKLSAgICAgICAgICAgICAgc2VsZi5wcmVmZXJlbmNlcy5jb2x1bW5fZGF0YV9tYXhfd2lkdGgs IHNlbGYubWF4X3dpZHRoX2NoYW5nZWQpOwotICAgICAgICAgIH1lbHNlewotICAgICAgICAgICAg c2VsZi5ncmlkLnJlc2l6ZUFsbENvbHVtbnMgJiYgc2VsZi5ncmlkLnJlc2l6ZUFsbENvbHVtbnMo KTsKLSAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgIH0pOwotCi0gICAgICAvLyBSZXNpemUg U2xpY2tHcmlkIHdoZW4gb3V0cHV0IFBhbmVsIGdldHMgZm9jdXMKLSAgICAgIHNlbGYuZGF0YV9v dXRwdXRfcGFuZWwub24od2NEb2NrZXIuRVZFTlQuVklTSUJJTElUWV9DSEFOR0VELCBmdW5jdGlv bigpIHsKLSAgICAgICAgLy8gUmVzaXplIGdyaWQgb25seSBpZiBvdXRwdXQgcGFuZWwgaXMgdmlz aWJsZQotICAgICAgICBpZiAoc2VsZi5kYXRhX291dHB1dF9wYW5lbC5pc1Zpc2libGUoKSkKLSAg ICAgICAgICBzZWxmLmdyaWRfcmVzaXplKGdyaWQpOwotICAgICAgfSk7Ci0KLSAgICAgIGZvciAo dmFyIGkgPSAwOyBpIDwgY29sbGVjdGlvbi5sZW5ndGg7IGkrKykgewotICAgICAgICAvLyBDb252 ZXJ0IHRvIGRpY3QgZnJvbSAyZGFycmF5Ci0gICAgICAgIHZhciBpdGVtID0ge307Ci0gICAgICAg IGZvciAodmFyIGogPSAxOyBqIDwgZ3JpZF9jb2x1bW5zLmxlbmd0aDsgaisrKSB7Ci0gICAgICAg ICAgaXRlbVtncmlkX2NvbHVtbnNbal1bJ2ZpZWxkJ11dID0gY29sbGVjdGlvbltpXVtncmlkX2Nv bHVtbnNbal1bJ3BvcyddXTsKLSAgICAgICAgfQotCi0gICAgICAgIGl0ZW1bc2VsZi5jbGllbnRf cHJpbWFyeV9rZXldID0gKHNlbGYuY2xpZW50X3ByaW1hcnlfa2V5X2NvdW50ZXIrKykudG9TdHJp bmcoKTsKLSAgICAgICAgY29sbGVjdGlvbltpXSA9IGl0ZW07Ci0gICAgICB9Ci0gICAgICBkYXRh Vmlldy5zZXRJdGVtcyhjb2xsZWN0aW9uLCBzZWxmLmNsaWVudF9wcmltYXJ5X2tleSk7Ci0gICAg ICAvKiBSZXNpemUgdGhlIGNvbHVtbnMgb25jZSBpZiBkYXRhIGVtcHR5ICovCi0gICAgICBpZiAo Y29sbGVjdGlvbi5sZW5ndGggPT09IDAgJiYgc2VsZi5wcmVmZXJlbmNlcy5jb2x1bW5fZGF0YV9h dXRvX3Jlc2l6ZSA9PT0gJ2J5X2RhdGEnKSB7Ci0gICAgICAgIHNlbGYuZ3JpZC5yZXNpemVBbGxD b2x1bW5zICYmIHNlbGYuZ3JpZC5yZXNpemVBbGxDb2x1bW5zKCk7Ci0gICAgICB9Ci0gICAgfSwK LQotICAgIGZldGNoX25leHRfYWxsOiBmdW5jdGlvbihjYikgewotICAgICAgdGhpcy5mZXRjaF9u ZXh0KHRydWUsIGNiKTsKLSAgICB9LAotCi0gICAgZmV0Y2hfbmV4dDogZnVuY3Rpb24oZmV0Y2hf YWxsLCBjYikgewotICAgICAgdmFyIHNlbGYgPSB0aGlzLAotICAgICAgICB1cmwgPSAnJzsKLQot ICAgICAgLy8gVGhpcyB3aWxsIHByZXZlbnQgZmV0Y2ggb3BlcmF0aW9uIGlmIHByZXZpb3VzIGZl dGNoIG9wZXJhdGlvbiBpcwotICAgICAgLy8gYWxyZWFkeSBpbiBwcm9ncmVzcy4KLSAgICAgIHNl bGYuaGFuZGxlci5mZXRjaGluZ19yb3dzID0gdHJ1ZTsKLQotICAgICAgJCgnI2J0bi1mbGFzaCcp LnByb3AoJ2Rpc2FibGVkJywgdHJ1ZSk7Ci0gICAgICAkKCcjYnRuLXNhdmUtcmVzdWx0cy10by1m aWxlJykucHJvcCgnZGlzYWJsZWQnLCB0cnVlKTsKLQotICAgICAgaWYgKGZldGNoX2FsbCkgewot ICAgICAgICBzZWxmLmhhbmRsZXIudHJpZ2dlcigKLSAgICAgICAgICAncGdhZG1pbi1zcWxlZGl0 b3I6bG9hZGluZy1pY29uOnNob3cnLAotICAgICAgICAgIGdldHRleHQoJ0ZldGNoaW5nIGFsbCBy ZWNvcmRzLi4uJykKLSAgICAgICAgKTsKLSAgICAgICAgdXJsID0gdXJsX2Zvcignc3FsZWRpdG9y LmZldGNoX2FsbCcsIHsKLSAgICAgICAgICAndHJhbnNfaWQnOiBzZWxmLnRyYW5zSWQsCi0gICAg ICAgICAgJ2ZldGNoX2FsbCc6IDEsCi0gICAgICAgIH0pOwotICAgICAgfSBlbHNlIHsKLSAgICAg ICAgdXJsID0gdXJsX2Zvcignc3FsZWRpdG9yLmZldGNoJywgewotICAgICAgICAgICd0cmFuc19p ZCc6IHNlbGYudHJhbnNJZCwKLSAgICAgICAgfSk7Ci0gICAgICB9Ci0KLSAgICAgICQuYWpheCh7 Ci0gICAgICAgIHVybDogdXJsLAotICAgICAgICBtZXRob2Q6ICdHRVQnLAotICAgICAgfSkKLSAg ICAgICAgLmRvbmUoZnVuY3Rpb24ocmVzKSB7Ci0gICAgICAgICAgc2VsZi5oYW5kbGVyLmhhc19t b3JlX3Jvd3MgPSByZXMuZGF0YS5oYXNfbW9yZV9yb3dzOwotICAgICAgICAgIHNldFRpbWVvdXQo KCkgPT4gewotICAgICAgICAgICAgJCgnI2J0bi1mbGFzaCcpLnByb3AoJ2Rpc2FibGVkJywgZmFs c2UpOwotICAgICAgICAgIH0sIDcwMCk7Ci0gICAgICAgICAgJCgnI2J0bi1zYXZlLXJlc3VsdHMt dG8tZmlsZScpLnByb3AoJ2Rpc2FibGVkJywgZmFsc2UpOwotICAgICAgICAgIHNlbGYuaGFuZGxl ci50cmlnZ2VyKCdwZ2FkbWluLXNxbGVkaXRvcjpsb2FkaW5nLWljb246aGlkZScpOwotICAgICAg ICAgIHNlbGYudXBkYXRlX2dyaWRfZGF0YShyZXMuZGF0YS5yZXN1bHQpOwotICAgICAgICAgIHNl bGYuaGFuZGxlci5mZXRjaGluZ19yb3dzID0gZmFsc2U7Ci0gICAgICAgICAgaWYgKHR5cGVvZiBj YiA9PSAnZnVuY3Rpb24nKSB7Ci0gICAgICAgICAgICBjYigpOwotICAgICAgICAgIH0KLSAgICAg ICAgfSkKLSAgICAgICAgLmZhaWwoZnVuY3Rpb24oZSkgewotICAgICAgICAgICQoJyNidG4tZmxh c2gnKS5wcm9wKCdkaXNhYmxlZCcsIGZhbHNlKTsKLSAgICAgICAgICAkKCcjYnRuLXNhdmUtcmVz dWx0cy10by1maWxlJykucHJvcCgnZGlzYWJsZWQnLCBmYWxzZSk7Ci0gICAgICAgICAgc2VsZi5o YW5kbGVyLnRyaWdnZXIoJ3BnYWRtaW4tc3FsZWRpdG9yOmxvYWRpbmctaWNvbjpoaWRlJyk7Ci0g ICAgICAgICAgc2VsZi5oYW5kbGVyLmhhc19tb3JlX3Jvd3MgPSBmYWxzZTsKLSAgICAgICAgICBz ZWxmLmhhbmRsZXIuZmV0Y2hpbmdfcm93cyA9IGZhbHNlOwotICAgICAgICAgIGlmICh0eXBlb2Yg Y2IgPT0gJ2Z1bmN0aW9uJykgewotICAgICAgICAgICAgY2IoKTsKLSAgICAgICAgICB9Ci0KLSAg ICAgICAgICBsZXQgbXNnID0gaHR0cEVycm9ySGFuZGxlci5oYW5kbGVRdWVyeVRvb2xBamF4RXJy b3IoCi0gICAgICAgICAgICBwZ0FkbWluLCBzZWxmLCBlLCBudWxsLCBbXSwgZmFsc2UKLSAgICAg ICAgICApOwotICAgICAgICAgIGlmIChtc2cpCi0gICAgICAgICAgICBzZWxmLnVwZGF0ZV9tc2df aGlzdG9yeShmYWxzZSwgbXNnKTsKLSAgICAgICAgfSk7Ci0gICAgfSwKLQotICAgIHVwZGF0ZV9n cmlkX2RhdGE6IGZ1bmN0aW9uKGRhdGEpIHsKLSAgICAgIHRoaXMuZGF0YVZpZXcuYmVnaW5VcGRh dGUoKTsKLQotICAgICAgZm9yIChsZXQgZGF0YV92YWwgb2YgZGF0YSkgewotICAgICAgICAvLyBD b252ZXJ0IDJkYXJyYXkgdG8gZGljdC4KLSAgICAgICAgdmFyIGl0ZW0gPSB7fTsKLSAgICAgICAg Zm9yICh2YXIgaiA9IDE7IGogPCB0aGlzLmdyaWRfY29sdW1ucy5sZW5ndGg7IGorKykgewotICAg ICAgICAgIGl0ZW1bdGhpcy5ncmlkX2NvbHVtbnNbal1bJ2ZpZWxkJ11dID0gZGF0YV92YWxbdGhp cy5ncmlkX2NvbHVtbnNbal1bJ3BvcyddXTsKLSAgICAgICAgfQotCi0gICAgICAgIGl0ZW1bdGhp cy5jbGllbnRfcHJpbWFyeV9rZXldID0gKHRoaXMuY2xpZW50X3ByaW1hcnlfa2V5X2NvdW50ZXIr KykudG9TdHJpbmcoKTsKLSAgICAgICAgdGhpcy5kYXRhVmlldy5hZGRJdGVtKGl0ZW0pOwotICAg ICAgfQotCi0gICAgICB0aGlzLmRhdGFWaWV3LmVuZFVwZGF0ZSgpOwotICAgIH0sCi0KLSAgICAv KiBUaGlzIGZ1bmN0aW9uIGlzIHJlc3BvbnNpYmxlIHRvIHJlbmRlciBvdXRwdXQgZ3JpZCAqLwot ICAgIGdyaWRfcmVzaXplOiBmdW5jdGlvbihncmlkKSB7Ci0gICAgICB2YXIgcHJldl9oZWlnaHQg PSAkKCcjZGF0YWdyaWQnKS5oZWlnaHQoKSwKLSAgICAgICAgaCA9ICQodGhpcy5kYXRhX291dHB1 dF9wYW5lbC4kY29udGFpbmVyLnBhcmVudCgpLnBhcmVudCgpKS5oZWlnaHQoKSAtIDM1LAotICAg ICAgICBwcmV2X3ZpZXdwb3J0ID0gZ3JpZC5nZXRWaWV3cG9ydCgpLAotICAgICAgICBwcmV2X3Zp ZXdwb3J0X3Jvd3MgPSBncmlkLmdldFJlbmRlcmVkUmFuZ2UoKSwKLSAgICAgICAgcHJldl9jZWxs ID0gZ3JpZC5nZXRBY3RpdmVDZWxsKCk7Ci0KLSAgICAgIC8vIEFwcGx5IGNzcyBvbmx5IGlmIG5l Y2Vzc2FyeSwgVG8gYXZvaWQgRE9NIG9wZXJhdGlvbgotICAgICAgaWYgKHByZXZfaGVpZ2h0ICE9 IGgpIHsKLSAgICAgICAgJCgnI2RhdGFncmlkJykuY3NzKHsKLSAgICAgICAgICAnaGVpZ2h0Jzog aCArICdweCcsCi0gICAgICAgIH0pOwotICAgICAgfQotCi0gICAgICBncmlkLnJlc2l6ZUNhbnZh cygpOwotCi0gICAgICAvKgotICAgICAgICogSWYgdGhlcmUgaXMgYW4gYWN0aXZlIGNlbGwgZnJv bSB1c2VyIHRoZW4gd2UgaGF2ZSB0byBnbyB0byB0aGF0IGNlbGwKLSAgICAgICAqLwotICAgICAg aWYgKHByZXZfY2VsbCkgewotICAgICAgICBncmlkLnNjcm9sbENlbGxJbnRvVmlldyhwcmV2X2Nl bGwucm93LCBwcmV2X2NlbGwuY2VsbCk7Ci0gICAgICB9Ci0KLSAgICAgIC8vIElmIGFscmVhZHkg ZGlzcGxheWluZyBmcm9tIGZpcnN0IHJvdwotICAgICAgaWYgKHByZXZfdmlld3BvcnQudG9wID09 IHByZXZfdmlld3BvcnRfcm93cy50b3ApIHsKLSAgICAgICAgcmV0dXJuOwotICAgICAgfQotICAg ICAgLy8gaWYgdXNlciBoYXMgc2Nyb2xsIHRvIHRoZSBlbmQvbGFzdCByb3cKLSAgICAgIGVsc2Ug aWYgKHByZXZfdmlld3BvcnQuYm90dG9tIC0gMiA9PSBwcmV2X3ZpZXdwb3J0X3Jvd3MuYm90dG9t KSB7Ci0gICAgICAgIGdyaWQuc2Nyb2xsUm93SW50b1ZpZXcocHJldl92aWV3cG9ydC5ib3R0b20p OwotICAgICAgfSBlbHNlIHsKLSAgICAgICAgZ3JpZC5zY3JvbGxSb3dJbnRvVmlldyhwcmV2X3Zp ZXdwb3J0LmJvdHRvbSAtIDIpOwotICAgICAgfQotICAgIH0sCi0KLSAgICBmZXRjaF9xdWVyeV9o aXN0b3J5OiBmdW5jdGlvbigpIHsKLSAgICAgIGxldCBzZWxmID0gdGhpczsKLSAgICAgICQuYWph eCh7Ci0gICAgICAgIHVybDogdXJsX2Zvcignc3FsZWRpdG9yLmdldF9xdWVyeV9oaXN0b3J5Jywg ewotICAgICAgICAgICd0cmFuc19pZCc6IHNlbGYuaGFuZGxlci50cmFuc0lkLAotICAgICAgICB9 KSwKLSAgICAgICAgbWV0aG9kOiAnR0VUJywKLSAgICAgICAgY29udGVudFR5cGU6ICdhcHBsaWNh dGlvbi9qc29uJywKLSAgICAgIH0pLmRvbmUoZnVuY3Rpb24ocmVzKSB7Ci0gICAgICAgIHJlcy5k YXRhLnJlc3VsdC5tYXAoKGVudHJ5KSA9PiB7Ci0gICAgICAgICAgbGV0IG5ld0VudHJ5ID0gSlNP Ti5wYXJzZShlbnRyeSk7Ci0gICAgICAgICAgbmV3RW50cnkuc3RhcnRfdGltZSA9IG5ldyBEYXRl KG5ld0VudHJ5LnN0YXJ0X3RpbWUpOwotICAgICAgICAgIHNlbGYuaGlzdG9yeV9jb2xsZWN0aW9u LmFkZChuZXdFbnRyeSk7Ci0gICAgICAgIH0pOwotICAgICAgfSkuZmFpbChmdW5jdGlvbigpIHsK LSAgICAgIC8qIGhpc3RvcnkgZmV0Y2ggZmFpbCBzaG91bGQgbm90IGFmZmVjdCBxdWVyeSB0b29s ICovCi0gICAgICB9KTsKLSAgICB9LAotICAgIC8qIFRoaXMgZnVuY3Rpb24gaXMgcmVzcG9uc2li bGUgdG8gY3JlYXRlIGFuZCByZW5kZXIgdGhlIGhpc3RvcnkgdGFiLiAqLwotICAgIHJlbmRlcl9o aXN0b3J5X2dyaWQ6IGZ1bmN0aW9uKCkgewotICAgICAgdmFyIHNlbGYgPSB0aGlzOwotCi0gICAg ICAvKiBTaG91bGQgbm90IHJlc2V0IGlmIGZ1bmN0aW9uIGNhbGxlZCBhZ2FpbiAqLwotICAgICAg aWYoIXNlbGYuaGlzdG9yeV9jb2xsZWN0aW9uKSB7Ci0gICAgICAgIHNlbGYuaGlzdG9yeV9jb2xs ZWN0aW9uID0gbmV3IEhpc3RvcnlDb2xsZWN0aW9uKFtdKTsKLSAgICAgIH0KLQotICAgICAgaWYo IXNlbGYuaGlzdG9yeUNvbXBvbmVudCkgewotICAgICAgICBzZWxmLmhpc3RvcnlDb21wb25lbnQg PSBuZXcgUXVlcnlIaXN0b3J5KCQoJyNoaXN0b3J5X2dyaWQnKSwgc2VsZi5oaXN0b3J5X2NvbGxl Y3Rpb24pOwotCi0gICAgICAgIC8qIENvcHkgcXVlcnkgdG8gcXVlcnkgZWRpdG9yLCBzZXQgdGhl IGZvY3VzIHRvIGVkaXRvciBhbmQgbW92ZSBjdXJzb3IgdG8gZW5kICovCi0gICAgICAgIHNlbGYu aGlzdG9yeUNvbXBvbmVudC5vbkNvcHlUb0VkaXRvckNsaWNrKChxdWVyeSk9PnsKLSAgICAgICAg ICBzZWxmLnF1ZXJ5X3Rvb2xfb2JqLnNldFZhbHVlKHF1ZXJ5KTsKLSAgICAgICAgICBzZWxmLnNx bF9wYW5lbF9vYmouZm9jdXMoKTsKLSAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHsKLSAgICAg ICAgICAgIHNlbGYucXVlcnlfdG9vbF9vYmouZm9jdXMoKTsKLSAgICAgICAgICAgIHNlbGYucXVl cnlfdG9vbF9vYmouc2V0Q3Vyc29yKHNlbGYucXVlcnlfdG9vbF9vYmoubGluZUNvdW50KCksIDAp OwotICAgICAgICAgIH0sIDEwMCk7Ci0gICAgICAgIH0pOwotCi0gICAgICAgIHNlbGYuaGlzdG9y eUNvbXBvbmVudC5yZW5kZXIoKTsKLQotICAgICAgICBzZWxmLmhpc3RvcnlfcGFuZWwub2ZmKHdj RG9ja2VyLkVWRU5ULlZJU0lCSUxJVFlfQ0hBTkdFRCk7Ci0gICAgICAgIHNlbGYuaGlzdG9yeV9w YW5lbC5vbih3Y0RvY2tlci5FVkVOVC5WSVNJQklMSVRZX0NIQU5HRUQsIGZ1bmN0aW9uKCkgewot ICAgICAgICAgIGlmIChzZWxmLmhpc3RvcnlfcGFuZWwuaXNWaXNpYmxlKCkpIHsKLSAgICAgICAg ICAgIHNldFRpbWVvdXQoKCk9PnsKLSAgICAgICAgICAgICAgc2VsZi5oaXN0b3J5Q29tcG9uZW50 LmZvY3VzKCk7Ci0gICAgICAgICAgICB9LCAxMDApOwotICAgICAgICAgIH0KLSAgICAgICAgfSk7 Ci0gICAgICB9Ci0KLSAgICAgIGlmKCFzZWxmLmhhbmRsZXIuaXNfcXVlcnlfdG9vbCkgewotICAg ICAgICBzZWxmLmhpc3RvcnlDb21wb25lbnQuc2V0RWRpdG9yUHJlZih7J2NvcHlfdG9fZWRpdG9y JzpmYWxzZX0pOwotICAgICAgfQotICAgIH0sCi0KLSAgICAvLyBDYWxsYmFjayBmdW5jdGlvbiBm b3IgZGVsZXRlIGJ1dHRvbiBjbGljay4KLSAgICBvbl9kZWxldGU6IGZ1bmN0aW9uKCkgewotICAg ICAgdmFyIHNlbGYgPSB0aGlzOwotCi0gICAgICAvLyBUcmlnZ2VyIHRoZSBkZWxldGVyb3cgc2ln bmFsIHRvIHRoZSBTcWxFZGl0b3JDb250cm9sbGVyIGNsYXNzCi0gICAgICBzZWxmLmhhbmRsZXIu dHJpZ2dlcigKLSAgICAgICAgJ3BnYWRtaW4tc3FsZWRpdG9yOmJ1dHRvbjpkZWxldGVyb3cnLAot ICAgICAgICBzZWxmLAotICAgICAgICBzZWxmLmhhbmRsZXIKLSAgICAgICk7Ci0gICAgfSwKLQot ICAgIF9zdG9wRXZlbnRQcm9wb2dhdGlvbjogZnVuY3Rpb24oZXYpIHsKLSAgICAgIGV2ID0gZXYg fHwgd2luZG93LmV2ZW50OwotICAgICAgZXYuY2FuY2VsQnViYmxlID0gdHJ1ZTsKLSAgICAgIGV2 LnN0b3BQcm9wYWdhdGlvbigpOwotICAgICAgZXYuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCk7 Ci0gICAgICBldi5wcmV2ZW50RGVmYXVsdCgpOwotICAgIH0sCi0KLSAgICBfY2xvc2VEcm9wRG93 bjogZnVuY3Rpb24oZXYpIHsKLSAgICAgIHZhciB0YXJnZXQgPSBldiAmJiAoZXYuY3VycmVudFRh cmdldCB8fCBldi50YXJnZXQpOwotICAgICAgaWYgKHRhcmdldCkgewotICAgICAgICAkKHRhcmdl dCkuY2xvc2VzdCgnLmVkaXRvci10b29sYmFyJykuZmluZCgnLnNob3cnKS5yZW1vdmVDbGFzcygn c2hvdycpOwotICAgICAgfQotICAgIH0sCi0KLSAgICAvLyBDYWxsYmFjayBmdW5jdGlvbiBmb3Ig U2F2ZSBidXR0b24gY2xpY2suCi0gICAgb25fc2F2ZV9maWxlOiBmdW5jdGlvbihldikgewotICAg ICAgdmFyIHNlbGYgPSB0aGlzOwotCi0gICAgICB0aGlzLl9zdG9wRXZlbnRQcm9wb2dhdGlvbihl dik7Ci0gICAgICB0aGlzLl9jbG9zZURyb3BEb3duKGV2KTsKLQotICAgICAgc2VsZi5oYW5kbGVy LmNsb3NlX29uX3NhdmUgPSBmYWxzZTsKLSAgICAgIC8vIFRyaWdnZXIgdGhlIHNhdmUgc2lnbmFs IHRvIHRoZSBTcWxFZGl0b3JDb250cm9sbGVyIGNsYXNzCi0gICAgICBzZWxmLmhhbmRsZXIudHJp Z2dlcigKLSAgICAgICAgJ3BnYWRtaW4tc3FsZWRpdG9yOmJ1dHRvbjpzYXZlX2ZpbGUnCi0gICAg ICApOwotICAgIH0sCi0KLSAgICAvLyBDYWxsYmFjayBmdW5jdGlvbiBmb3IgU2F2ZSBidXR0b24g Y2xpY2suCi0gICAgb25fc2F2ZV9hczogZnVuY3Rpb24oZXYpIHsKLSAgICAgIHZhciBzZWxmID0g dGhpczsKLQotICAgICAgdGhpcy5fc3RvcEV2ZW50UHJvcG9nYXRpb24oZXYpOwotICAgICAgdGhp cy5fY2xvc2VEcm9wRG93bihldik7Ci0KLSAgICAgIHNlbGYuaGFuZGxlci5jbG9zZV9vbl9zYXZl ID0gZmFsc2U7Ci0gICAgICAvLyBUcmlnZ2VyIHRoZSBzYXZlIHNpZ25hbCB0byB0aGUgU3FsRWRp dG9yQ29udHJvbGxlciBjbGFzcwotICAgICAgc2VsZi5oYW5kbGVyLnRyaWdnZXIoCi0gICAgICAg ICdwZ2FkbWluLXNxbGVkaXRvcjpidXR0b246c2F2ZV9maWxlJywKLSAgICAgICAgc2VsZiwKLSAg ICAgICAgc2VsZi5oYW5kbGVyLAotICAgICAgICB0cnVlCi0gICAgICApOwotICAgIH0sCi0KLSAg ICAvLyBDYWxsYmFjayBmdW5jdGlvbiBmb3IgdGhlIGZpbmQgYnV0dG9uIGNsaWNrLgotICAgIG9u X2ZpbmQ6IGZ1bmN0aW9uKGV2KSB7Ci0gICAgICB2YXIgc2VsZiA9IHRoaXM7Ci0gICAgICB0aGlz Ll9zdG9wRXZlbnRQcm9wb2dhdGlvbihldik7Ci0gICAgICB0aGlzLl9jbG9zZURyb3BEb3duKGV2 KTsKLQotICAgICAgc2VsZi5xdWVyeV90b29sX29iai5leGVjQ29tbWFuZCgnZmluZCcpOwotICAg IH0sCi0KLSAgICAvLyBDYWxsYmFjayBmdW5jdGlvbiBmb3IgdGhlIGZpbmQgbmV4dCBidXR0b24g Y2xpY2suCi0gICAgb25fZmluZF9uZXh0OiBmdW5jdGlvbihldikgewotICAgICAgdmFyIHNlbGYg PSB0aGlzOwotCi0gICAgICB0aGlzLl9zdG9wRXZlbnRQcm9wb2dhdGlvbihldik7Ci0gICAgICB0 aGlzLl9jbG9zZURyb3BEb3duKGV2KTsKLQotICAgICAgc2VsZi5xdWVyeV90b29sX29iai5leGVj Q29tbWFuZCgnZmluZE5leHQnKTsKLSAgICB9LAotCi0gICAgLy8gQ2FsbGJhY2sgZnVuY3Rpb24g Zm9yIHRoZSBmaW5kIHByZXZpb3VzIGJ1dHRvbiBjbGljay4KLSAgICBvbl9maW5kX3ByZXZpb3Vz OiBmdW5jdGlvbihldikgewotICAgICAgdmFyIHNlbGYgPSB0aGlzOwotICAgICAgdGhpcy5fc3Rv cEV2ZW50UHJvcG9nYXRpb24oZXYpOwotICAgICAgdGhpcy5fY2xvc2VEcm9wRG93bihldik7Ci0K LSAgICAgIHNlbGYucXVlcnlfdG9vbF9vYmouZXhlY0NvbW1hbmQoJ2ZpbmRQcmV2Jyk7Ci0gICAg fSwKLQotICAgIC8vIENhbGxiYWNrIGZ1bmN0aW9uIGZvciB0aGUgcmVwbGFjZSBidXR0b24gY2xp Y2suCi0gICAgb25fcmVwbGFjZTogZnVuY3Rpb24oZXYpIHsKLSAgICAgIHZhciBzZWxmID0gdGhp czsKLSAgICAgIHRoaXMuX3N0b3BFdmVudFByb3BvZ2F0aW9uKGV2KTsKLSAgICAgIHRoaXMuX2Ns b3NlRHJvcERvd24oZXYpOwotCi0gICAgICBzZWxmLnF1ZXJ5X3Rvb2xfb2JqLmV4ZWNDb21tYW5k KCdyZXBsYWNlJyk7Ci0gICAgfSwKLQotICAgIC8vIENhbGxiYWNrIGZ1bmN0aW9uIGZvciB0aGUg cmVwbGFjZSBhbGwgYnV0dG9uIGNsaWNrLgotICAgIG9uX3JlcGxhY2VfYWxsOiBmdW5jdGlvbihl dikgewotICAgICAgdmFyIHNlbGYgPSB0aGlzOwotICAgICAgdGhpcy5fc3RvcEV2ZW50UHJvcG9n YXRpb24oZXYpOwotICAgICAgdGhpcy5fY2xvc2VEcm9wRG93bihldik7Ci0KLSAgICAgIHNlbGYu cXVlcnlfdG9vbF9vYmouZXhlY0NvbW1hbmQoJ3JlcGxhY2VBbGwnKTsKLSAgICB9LAotCi0gICAg Ly8gQ2FsbGJhY2sgZnVuY3Rpb24gZm9yIHRoZSBmaW5kIHBlcnNpc3RlbnQgYnV0dG9uIGNsaWNr LgotICAgIG9uX2ZpbmRfcGVyc2lzdGVudDogZnVuY3Rpb24oZXYpIHsKLSAgICAgIHZhciBzZWxm ID0gdGhpczsKLQotICAgICAgdGhpcy5fc3RvcEV2ZW50UHJvcG9nYXRpb24oZXYpOwotICAgICAg dGhpcy5fY2xvc2VEcm9wRG93bihldik7Ci0KLSAgICAgIHNlbGYucXVlcnlfdG9vbF9vYmouZXhl Y0NvbW1hbmQoJ2ZpbmRQZXJzaXN0ZW50Jyk7Ci0gICAgfSwKLQotICAgIC8vIENhbGxiYWNrIGZ1 bmN0aW9uIGZvciB0aGUganVtcCBidXR0b24gY2xpY2suCi0gICAgb25fanVtcDogZnVuY3Rpb24o ZXYpIHsKLSAgICAgIHZhciBzZWxmID0gdGhpczsKLQotICAgICAgdGhpcy5fc3RvcEV2ZW50UHJv cG9nYXRpb24oZXYpOwotICAgICAgdGhpcy5fY2xvc2VEcm9wRG93bihldik7Ci0KLSAgICAgIHNl bGYucXVlcnlfdG9vbF9vYmouZXhlY0NvbW1hbmQoJ2p1bXBUb0xpbmUnKTsKLSAgICB9LAotCi0g ICAgLy8gQ2FsbGJhY2sgZnVuY3Rpb24gZm9yIGZpbHRlciBidXR0b24gY2xpY2suCi0gICAgb25f c2hvd19maWx0ZXI6IGZ1bmN0aW9uKCkgewotICAgICAgdmFyIHNlbGYgPSB0aGlzOwotCi0gICAg ICAvLyBUcmlnZ2VyIHRoZSBzaG93X2ZpbHRlciBzaWduYWwgdG8gdGhlIFNxbEVkaXRvckNvbnRy b2xsZXIgY2xhc3MKLSAgICAgIHNlbGYuaGFuZGxlci50cmlnZ2VyKAotICAgICAgICAncGdhZG1p bi1zcWxlZGl0b3I6YnV0dG9uOnNob3dfZmlsdGVyJywKLSAgICAgICAgc2VsZiwKLSAgICAgICAg c2VsZi5oYW5kbGVyCi0gICAgICApOwotICAgIH0sCi0KLSAgICBvbl9uZXdfY29ubmVjdGlvbjog ZnVuY3Rpb24oKSB7Ci0gICAgICB2YXIgc2VsZiA9IHRoaXM7Ci0KLSAgICAgIC8vIFRyaWdnZXIg dGhlIHNob3dfZmlsdGVyIHNpZ25hbCB0byB0aGUgU3FsRWRpdG9yQ29udHJvbGxlciBjbGFzcwot ICAgICAgc2VsZi5oYW5kbGVyLnRyaWdnZXIoCi0gICAgICAgICdwZ2FkbWluLXNxbGVkaXRvcjpi dXR0b246c2hvd19uZXdfY29ubmVjdGlvbicsCi0gICAgICAgIHNlbGYsCi0gICAgICAgIHNlbGYu aGFuZGxlcgotICAgICAgKTsKLSAgICB9LAotCi0gICAgLy8gQ2FsbGJhY2sgZnVuY3Rpb24gZm9y IGluY2x1ZGUgZmlsdGVyIGJ1dHRvbiBjbGljay4KLSAgICBvbl9pbmNsdWRlX2ZpbHRlcjogZnVu Y3Rpb24oZXYpIHsKLSAgICAgIHZhciBzZWxmID0gdGhpczsKLQotICAgICAgdGhpcy5fc3RvcEV2 ZW50UHJvcG9nYXRpb24oZXYpOwotICAgICAgdGhpcy5fY2xvc2VEcm9wRG93bihldik7Ci0KLSAg ICAgIC8vIFRyaWdnZXIgdGhlIGluY2x1ZGVfZmlsdGVyIHNpZ25hbCB0byB0aGUgU3FsRWRpdG9y Q29udHJvbGxlciBjbGFzcwotICAgICAgc2VsZi5oYW5kbGVyLnRyaWdnZXIoCi0gICAgICAgICdw Z2FkbWluLXNxbGVkaXRvcjpidXR0b246aW5jbHVkZV9maWx0ZXInLAotICAgICAgICBzZWxmLAot ICAgICAgICBzZWxmLmhhbmRsZXIKLSAgICAgICk7Ci0gICAgfSwKLQotICAgIC8vIENhbGxiYWNr IGZ1bmN0aW9uIGZvciBleGNsdWRlIGZpbHRlciBidXR0b24gY2xpY2suCi0gICAgb25fZXhjbHVk ZV9maWx0ZXI6IGZ1bmN0aW9uKGV2KSB7Ci0gICAgICB2YXIgc2VsZiA9IHRoaXM7Ci0KLSAgICAg IHRoaXMuX3N0b3BFdmVudFByb3BvZ2F0aW9uKGV2KTsKLSAgICAgIHRoaXMuX2Nsb3NlRHJvcERv d24oZXYpOwotCi0gICAgICAvLyBUcmlnZ2VyIHRoZSBleGNsdWRlX2ZpbHRlciBzaWduYWwgdG8g dGhlIFNxbEVkaXRvckNvbnRyb2xsZXIgY2xhc3MKLSAgICAgIHNlbGYuaGFuZGxlci50cmlnZ2Vy KAotICAgICAgICAncGdhZG1pbi1zcWxlZGl0b3I6YnV0dG9uOmV4Y2x1ZGVfZmlsdGVyJywKLSAg ICAgICAgc2VsZiwKLSAgICAgICAgc2VsZi5oYW5kbGVyCi0gICAgICApOwotICAgIH0sCi0KLSAg ICAvLyBDYWxsYmFjayBmdW5jdGlvbiBmb3IgcmVtb3ZlIGZpbHRlciBidXR0b24gY2xpY2suCi0g ICAgb25fcmVtb3ZlX2ZpbHRlcjogZnVuY3Rpb24oZXYpIHsKLSAgICAgIHZhciBzZWxmID0gdGhp czsKLQotICAgICAgdGhpcy5fc3RvcEV2ZW50UHJvcG9nYXRpb24oZXYpOwotICAgICAgdGhpcy5f Y2xvc2VEcm9wRG93bihldik7Ci0KLSAgICAgIC8vIFRyaWdnZXIgdGhlIHJlbW92ZV9maWx0ZXIg c2lnbmFsIHRvIHRoZSBTcWxFZGl0b3JDb250cm9sbGVyIGNsYXNzCi0gICAgICBzZWxmLmhhbmRs ZXIudHJpZ2dlcigKLSAgICAgICAgJ3BnYWRtaW4tc3FsZWRpdG9yOmJ1dHRvbjpyZW1vdmVfZmls dGVyJywKLSAgICAgICAgc2VsZiwKLSAgICAgICAgc2VsZi5oYW5kbGVyCi0gICAgICApOwotICAg IH0sCi0KLSAgICAvLyBDYWxsYmFjayBmdW5jdGlvbiBmb3IgY2FuY2VsIGJ1dHRvbiBjbGljay4K LSAgICBvbl9jYW5jZWw6IGZ1bmN0aW9uKCkgewotICAgICAgJCgnI2ZpbHRlcicpLmFkZENsYXNz KCdkLW5vbmUnKTsKLSAgICAgICQoJyNlZGl0b3ItcGFuZWwnKS5yZW1vdmVDbGFzcygnc3FsLWVk aXRvci1idXN5LWZldGNoaW5nJyk7Ci0gICAgfSwKLQotICAgIC8vIENhbGxiYWNrIGZ1bmN0aW9u IGZvciBjb3B5IGJ1dHRvbiBjbGljay4KLSAgICBvbl9jb3B5X3JvdzogZnVuY3Rpb24oKSB7Ci0g ICAgICB2YXIgc2VsZiA9IHRoaXM7Ci0KLSAgICAgIC8vIFRyaWdnZXIgdGhlIGNvcHkgc2lnbmFs IHRvIHRoZSBTcWxFZGl0b3JDb250cm9sbGVyIGNsYXNzCi0gICAgICBzZWxmLmhhbmRsZXIudHJp Z2dlcigKLSAgICAgICAgJ3BnYWRtaW4tc3FsZWRpdG9yOmJ1dHRvbjpjb3B5X3JvdycsCi0gICAg ICAgIHNlbGYsCi0gICAgICAgIHNlbGYuaGFuZGxlcgotICAgICAgKTsKLQotICAgIH0sCi0KLSAg ICAvLyBDYWxsYmFjayBmdW5jdGlvbiBmb3IgY29weSB3aXRoIGhlYWRlciBidXR0b24gY2xpY2su Ci0gICAgb25fY29weV9yb3dfd2l0aF9oZWFkZXI6IGZ1bmN0aW9uKGV2KSB7Ci0gICAgICB2YXIg c2VsZiA9IHRoaXM7Ci0KLSAgICAgIHRoaXMuX3N0b3BFdmVudFByb3BvZ2F0aW9uKGV2KTsKLQot ICAgICAgLy8gVG9nZ2xlIHRoZSBidXR0b24KLSAgICAgIHNlbGYuaGFuZGxlci50cmlnZ2VyKAot ICAgICAgICAncGdhZG1pbi1zcWxlZGl0b3I6YnV0dG9uOmNvcHlfcm93X3dpdGhfaGVhZGVyJywK LSAgICAgICAgc2VsZiwKLSAgICAgICAgc2VsZi5oYW5kbGVyCi0gICAgICApOwotCi0gICAgfSwK LQotICAgIC8vIENhbGxiYWNrIGZ1bmN0aW9uIGZvciBwYXN0ZSBidXR0b24gY2xpY2suCi0gICAg b25fcGFzdGVfcm93OiBmdW5jdGlvbigpIHsKLSAgICAgIHZhciBzZWxmID0gdGhpczsKLQotICAg ICAgLy8gVHJpZ2dlciB0aGUgcGFzdGUgc2lnbmFsIHRvIHRoZSBTcWxFZGl0b3JDb250cm9sbGVy IGNsYXNzCi0gICAgICBzZWxmLmhhbmRsZXIudHJpZ2dlcigKLSAgICAgICAgJ3BnYWRtaW4tc3Fs ZWRpdG9yOmJ1dHRvbjpwYXN0ZV9yb3cnLAotICAgICAgICBzZWxmLAotICAgICAgICBzZWxmLmhh bmRsZXIKLSAgICAgICk7Ci0gICAgfSwKLQotICAgIC8vIENhbGxiYWNrIGZ1bmN0aW9uIGZvciB0 aGUgY2hhbmdlIGV2ZW50IG9mIGNvbWJvIGJveAotICAgIG9uX2xpbWl0X2NoYW5nZTogZnVuY3Rp b24oKSB7Ci0gICAgICB2YXIgc2VsZiA9IHRoaXM7Ci0KLSAgICAgIC8vIFRyaWdnZXIgdGhlIGxp bWl0IHNpZ25hbCB0byB0aGUgU3FsRWRpdG9yQ29udHJvbGxlciBjbGFzcwotICAgICAgc2VsZi5o YW5kbGVyLnRyaWdnZXIoCi0gICAgICAgICdwZ2FkbWluLXNxbGVkaXRvcjpidXR0b246bGltaXQn LAotICAgICAgICBzZWxmLAotICAgICAgICBzZWxmLmhhbmRsZXIKLSAgICAgICk7Ci0gICAgfSwK LQotICAgIC8vIENhbGxiYWNrIGZ1bmN0aW9uIGZvciBTYXZlIERhdGEgQ2hhbmdlcyBidXR0b24g Y2xpY2suCi0gICAgb25fc2F2ZV9kYXRhOiBmdW5jdGlvbigpIHsKLSAgICAgIHRoaXMuaGFuZGxl ci5oaXN0b3J5X3F1ZXJ5X3NvdXJjZSA9IFF1ZXJ5U291cmNlcy5TQVZFX0RBVEE7Ci0KLSAgICAg IHF1ZXJ5VG9vbEFjdGlvbnMuc2F2ZURhdGFDaGFuZ2VzKHRoaXMuaGFuZGxlcik7Ci0gICAgfSwK LQotICAgIC8vIENhbGxiYWNrIGZ1bmN0aW9uIGZvciB0aGUgZmxhc2ggYnV0dG9uIGNsaWNrLgot ICAgIG9uX2ZsYXNoOiBmdW5jdGlvbigpIHsKLSAgICAgICQoJyNidG4tZmxhc2gnKS5wcm9wKCdk aXNhYmxlZCcsIHRydWUpOwotICAgICAgbGV0IGRhdGFfY2xpY2tfY291bnRlciA9ICQoJyNidG4t Zmxhc2gnKS5hdHRyKCdkYXRhLWNsaWNrLWNvdW50ZXInKTsKLSAgICAgIGRhdGFfY2xpY2tfY291 bnRlciA9IChwYXJzZUludChkYXRhX2NsaWNrX2NvdW50ZXIpICsgMSklMTA7Ci0gICAgICAkKCcj YnRuLWZsYXNoJykuYXR0cignZGF0YS1jbGljay1jb3VudGVyJywgZGF0YV9jbGlja19jb3VudGVy KTsKLQotICAgICAgdGhpcy5oYW5kbGVyLmhpc3RvcnlfcXVlcnlfc291cmNlID0gUXVlcnlTb3Vy Y2VzLkVYRUNVVEU7Ci0KLSAgICAgIHF1ZXJ5VG9vbEFjdGlvbnMuZXhlY3V0ZVF1ZXJ5KHRoaXMu aGFuZGxlcik7Ci0gICAgfSwKLQotICAgIC8vIENhbGxiYWNrIGZ1bmN0aW9uIGZvciB0aGUgY2Fu Y2VsIHF1ZXJ5IGJ1dHRvbiBjbGljay4KLSAgICBvbl9jYW5jZWxfcXVlcnk6IGZ1bmN0aW9uKCkg ewotICAgICAgdmFyIHNlbGYgPSB0aGlzOwotCi0gICAgICAvLyBUcmlnZ2VyIHRoZSBjYW5jZWwt cXVlcnkgc2lnbmFsIHRvIHRoZSBTcWxFZGl0b3JDb250cm9sbGVyIGNsYXNzCi0gICAgICBzZWxm LmhhbmRsZXIudHJpZ2dlcigKLSAgICAgICAgJ3BnYWRtaW4tc3FsZWRpdG9yOmJ1dHRvbjpjYW5j ZWwtcXVlcnknLAotICAgICAgICBzZWxmLAotICAgICAgICBzZWxmLmhhbmRsZXIKLSAgICAgICk7 Ci0gICAgfSwKLQotICAgIC8vIENhbGxiYWNrIGZ1bmN0aW9uIGZvciB0aGUgbGluZSBjb21tZW50 IGNvZGUKLSAgICBvbl9jb21tZW50X2xpbmVfY29kZTogZnVuY3Rpb24oKSB7Ci0gICAgICBxdWVy eVRvb2xBY3Rpb25zLmNvbW1lbnRMaW5lQ29kZSh0aGlzLmhhbmRsZXIpOwotICAgIH0sCi0KLSAg ICAvLyBDYWxsYmFjayBmdW5jdGlvbiBmb3IgdGhlIGxpbmUgdW5jb21tZW50IGNvZGUKLSAgICBv bl91bmNvbW1lbnRfbGluZV9jb2RlOiBmdW5jdGlvbigpIHsKLSAgICAgIHF1ZXJ5VG9vbEFjdGlv bnMudW5jb21tZW50TGluZUNvZGUodGhpcy5oYW5kbGVyKTsKLSAgICB9LAotCi0gICAgLy8gQ2Fs bGJhY2sgZnVuY3Rpb24gZm9yIHRoZSBibG9jayBjb21tZW50L3VuY29tbWVudCBjb2RlCi0gICAg b25fdG9nZ2xlX2NvbW1lbnRfYmxvY2tfY29kZTogZnVuY3Rpb24oKSB7Ci0gICAgICBxdWVyeVRv b2xBY3Rpb25zLmNvbW1lbnRCbG9ja0NvZGUodGhpcy5oYW5kbGVyKTsKLSAgICB9LAotCi0gICAg b25faW5kZW50X2NvZGU6IGZ1bmN0aW9uKCkgewotICAgICAgdmFyIHNlbGYgPSB0aGlzOwotICAg ICAgLy8gVHJpZ2dlciB0aGUgY29tbWVudCBzaWduYWwgdG8gdGhlIFNxbEVkaXRvckNvbnRyb2xs ZXIgY2xhc3MKLSAgICAgIHNlbGYuaGFuZGxlci50cmlnZ2VyKAotICAgICAgICAncGdhZG1pbi1z cWxlZGl0b3I6aW5kZW50X3NlbGVjdGVkX2NvZGUnLAotICAgICAgICBzZWxmLAotICAgICAgICBz ZWxmLmhhbmRsZXIKLSAgICAgICk7Ci0gICAgfSwKLQotICAgIG9uX3VuaW5kZW50X2NvZGU6IGZ1 bmN0aW9uKCkgewotICAgICAgdmFyIHNlbGYgPSB0aGlzOwotICAgICAgLy8gVHJpZ2dlciB0aGUg Y29tbWVudCBzaWduYWwgdG8gdGhlIFNxbEVkaXRvckNvbnRyb2xsZXIgY2xhc3MKLSAgICAgIHNl bGYuaGFuZGxlci50cmlnZ2VyKAotICAgICAgICAncGdhZG1pbi1zcWxlZGl0b3I6dW5pbmRlbnRf c2VsZWN0ZWRfY29kZScsCi0gICAgICAgIHNlbGYsCi0gICAgICAgIHNlbGYuaGFuZGxlcgotICAg ICAgKTsKLSAgICB9LAotCi0gICAgb25fZm9ybWF0X3NxbDogZnVuY3Rpb24oKSB7Ci0gICAgICB2 YXIgc2VsZiA9IHRoaXM7Ci0gICAgICAvLyBUcmlnZ2VyIHRoZSBmb3JtYXQgc2lnbmFsIHRvIHRo ZSBTcWxFZGl0b3JDb250cm9sbGVyIGNsYXNzCi0gICAgICBzZWxmLmhhbmRsZXIudHJpZ2dlcigK LSAgICAgICAgJ3BnYWRtaW4tc3FsZWRpdG9yOmZvcm1hdF9zcWwnLAotICAgICAgICBzZWxmLAot ICAgICAgICBzZWxmLmhhbmRsZXIKLSAgICAgICk7Ci0gICAgfSwKLQotICAgIC8vIENhbGxiYWNr IGZ1bmN0aW9uIGZvciB0aGUgY2xlYXIgYnV0dG9uIGNsaWNrLgotICAgIG9uX2NsZWFyOiBmdW5j dGlvbihldikgewotICAgICAgdmFyIHNlbGYgPSB0aGlzOwotICAgICAgdGhpcy5fc3RvcEV2ZW50 UHJvcG9nYXRpb24oZXYpOwotICAgICAgdGhpcy5fY2xvc2VEcm9wRG93bihldik7Ci0KLSAgICAg IC8qIElmIGlzX3F1ZXJ5X2NoYW5nZWQgZmxhZyBpcyBzZXQgdG8gZmFsc2UgdGhlbiBubyBuZWVk IHRvCi0gICAgICAgKiBjb25maXJtIHdpdGggdGhlIHVzZXIgZm9yIHVuc2F2ZWQgY2hhbmdlcy4K LSAgICAgICAqLwotICAgICAgaWYgKHNlbGYuaGFuZGxlci5pc19xdWVyeV9jaGFuZ2VkKSB7Ci0g ICAgICAgIE5vdGlmeS5jb25maXJtKAotICAgICAgICAgIGdldHRleHQoJ1Vuc2F2ZWQgY2hhbmdl cycpLAotICAgICAgICAgIGdldHRleHQoJ0FyZSB5b3Ugc3VyZSB5b3Ugd2lzaCB0byBkaXNjYXJk IHRoZSBjdXJyZW50IGNoYW5nZXM/JyksCi0gICAgICAgICAgZnVuY3Rpb24oKSB7Ci0gICAgICAg ICAgICAvLyBEbyBub3RoaW5nIGFzIHVzZXIgZG8gbm90IHdhbnQgdG8gc2F2ZSwganVzdCBjb250 aW51ZQotICAgICAgICAgICAgc2VsZi5xdWVyeV90b29sX29iai5zZXRWYWx1ZSgnJyk7Ci0gICAg ICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHsgc2VsZi5xdWVyeV90b29sX29iai5mb2N1cygpOyB9 LCAyMDApOwotICAgICAgICAgIH0sCi0gICAgICAgICAgZnVuY3Rpb24oKSB7Ci0gICAgICAgICAg ICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgICB9Ci0gICAgICAgICk7Ci0gICAgICB9IGVsc2Ugewot ICAgICAgICBzZWxmLnF1ZXJ5X3Rvb2xfb2JqLnNldFZhbHVlKCcnKTsKLSAgICAgIH0KLSAgICB9 LAotCi0gICAgLy8gQ2FsbGJhY2sgZnVuY3Rpb24gZm9yIHRoZSBjbGVhciBoaXN0b3J5IGJ1dHRv biBjbGljay4KLSAgICBvbl9jbGVhcl9oaXN0b3J5OiBmdW5jdGlvbihldikgewotICAgICAgdmFy IHNlbGYgPSB0aGlzOwotICAgICAgdGhpcy5fc3RvcEV2ZW50UHJvcG9nYXRpb24oZXYpOwotICAg ICAgdGhpcy5fY2xvc2VEcm9wRG93bihldik7Ci0gICAgICAvLyBhc2sgZm9yIGNvbmZpcm1hdGlv biBvbmx5IGlmIGFueXRoaW5nIHRvIGNsZWFyCi0gICAgICBpZiAoIXNlbGYuaGlzdG9yeV9jb2xs ZWN0aW9uLmxlbmd0aCgpKSB7Ci0gICAgICAgIHJldHVybjsKLSAgICAgIH0KLQotICAgICAgTm90 aWZ5LmNvbmZpcm0oZ2V0dGV4dCgnQ2xlYXIgaGlzdG9yeScpLAotICAgICAgICBnZXR0ZXh0KCdB cmUgeW91IHN1cmUgeW91IHdpc2ggdG8gY2xlYXIgdGhlIGhpc3Rvcnk/JykgKyAnPC9icj4nICsK LSAgICAgICAgZ2V0dGV4dCgnVGhpcyB3aWxsIHJlbW92ZSBhbGwgb2YgeW91ciBxdWVyeSBoaXN0 b3J5IGZyb20gdGhpcyBhbmQgb3RoZXIgc2Vzc2lvbnMgZm9yIHRoaXMgZGF0YWJhc2UuJyksCi0g ICAgICAgIGZ1bmN0aW9uKCkgewotICAgICAgICAgIGlmIChzZWxmLmhpc3RvcnlfY29sbGVjdGlv bikgewotICAgICAgICAgICAgc2VsZi5oaXN0b3J5X2NvbGxlY3Rpb24ucmVzZXQoKTsKLSAgICAg ICAgICB9Ci0KLSAgICAgICAgICBpZihzZWxmLmhhbmRsZXIuaXNfcXVlcnlfdG9vbCkgewotICAg ICAgICAgICAgJC5hamF4KHsKLSAgICAgICAgICAgICAgdXJsOiB1cmxfZm9yKCdzcWxlZGl0b3Iu Y2xlYXJfcXVlcnlfaGlzdG9yeScsIHsKLSAgICAgICAgICAgICAgICAndHJhbnNfaWQnOiBzZWxm LmhhbmRsZXIudHJhbnNJZCwKLSAgICAgICAgICAgICAgfSksCi0gICAgICAgICAgICAgIG1ldGhv ZDogJ0RFTEVURScsCi0gICAgICAgICAgICAgIGNvbnRlbnRUeXBlOiAnYXBwbGljYXRpb24vanNv bicsCi0gICAgICAgICAgICB9KQotICAgICAgICAgICAgICAuZG9uZShmdW5jdGlvbigpIHsgLyog VGhpcyBpcyBpbnRlbnRpb25hbCAqLyB9KQotICAgICAgICAgICAgICAuZmFpbChmdW5jdGlvbigp IHsKLSAgICAgICAgICAgICAgLyogaGlzdG9yeSBjbGVhciBmYWlsIHNob3VsZCBub3QgYWZmZWN0 IHF1ZXJ5IHRvb2wgKi8KLSAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgfQotICAgICAgICAg IHNldFRpbWVvdXQoKCkgPT4geyBzZWxmLnF1ZXJ5X3Rvb2xfb2JqLmZvY3VzKCk7IH0sIDIwMCk7 Ci0gICAgICAgIH0sCi0gICAgICAgIGZ1bmN0aW9uKCkgewotICAgICAgICAgIHJldHVybiB0cnVl OwotICAgICAgICB9Ci0gICAgICApOwotICAgIH0sCi0KLSAgICAvLyBDYWxsYmFjayBmdW5jdGlv biBmb3IgdGhlIGF1dG8gY29tbWl0IGJ1dHRvbiBjbGljay4KLSAgICBvbl9hdXRvX2NvbW1pdDog ZnVuY3Rpb24oZXYpIHsKLSAgICAgIHZhciBzZWxmID0gdGhpczsKLQotICAgICAgdGhpcy5fc3Rv cEV2ZW50UHJvcG9nYXRpb24oZXYpOwotCi0gICAgICAvLyBUcmlnZ2VyIHRoZSBhdXRvLWNvbW1p dCBzaWduYWwgdG8gdGhlIFNxbEVkaXRvckNvbnRyb2xsZXIgY2xhc3MKLSAgICAgIHNlbGYuaGFu ZGxlci50cmlnZ2VyKAotICAgICAgICAncGdhZG1pbi1zcWxlZGl0b3I6YnV0dG9uOmF1dG9fY29t bWl0JywKLSAgICAgICAgc2VsZiwKLSAgICAgICAgc2VsZi5oYW5kbGVyCi0gICAgICApOwotICAg IH0sCi0KLSAgICAvLyBDYWxsYmFjayBmdW5jdGlvbiBmb3IgdGhlIGF1dG8gcm9sbGJhY2sgYnV0 dG9uIGNsaWNrLgotICAgIG9uX2F1dG9fcm9sbGJhY2s6IGZ1bmN0aW9uKGV2KSB7Ci0gICAgICB2 YXIgc2VsZiA9IHRoaXM7Ci0KLSAgICAgIHRoaXMuX3N0b3BFdmVudFByb3BvZ2F0aW9uKGV2KTsK LQotICAgICAgLy8gVHJpZ2dlciB0aGUgZG93bmxvYWQgc2lnbmFsIHRvIHRoZSBTcWxFZGl0b3JD b250cm9sbGVyIGNsYXNzCi0gICAgICBzZWxmLmhhbmRsZXIudHJpZ2dlcigKLSAgICAgICAgJ3Bn YWRtaW4tc3FsZWRpdG9yOmJ1dHRvbjphdXRvX3JvbGxiYWNrJywKLSAgICAgICAgc2VsZiwKLSAg ICAgICAgc2VsZi5oYW5kbGVyCi0gICAgICApOwotICAgIH0sCi0KLSAgICAvLyBDYWxsYmFjayBm dW5jdGlvbiBmb3IgZXhwbGFpbiBidXR0b24gY2xpY2suCi0gICAgb25fZXhwbGFpbjogZnVuY3Rp b24oZXZlbnQpIHsKLSAgICAgIHRoaXMuX3N0b3BFdmVudFByb3BvZ2F0aW9uKGV2ZW50KTsKLSAg ICAgIHRoaXMuX2Nsb3NlRHJvcERvd24oZXZlbnQpOwotCi0gICAgICB0aGlzLmhhbmRsZXIuaGlz dG9yeV9xdWVyeV9zb3VyY2UgPSBRdWVyeVNvdXJjZXMuRVhQTEFJTjsKLSAgICAgIHF1ZXJ5VG9v bEFjdGlvbnMuZXhwbGFpbih0aGlzLmhhbmRsZXIpOwotICAgIH0sCi0KLSAgICAvLyBDYWxsYmFj ayBmdW5jdGlvbiBmb3IgZXhwbGFpbiBhbmFseXplIGJ1dHRvbiBjbGljay4KLSAgICBvbl9leHBs YWluX2FuYWx5emU6IGZ1bmN0aW9uKGV2ZW50KSB7Ci0gICAgICB0aGlzLl9zdG9wRXZlbnRQcm9w b2dhdGlvbihldmVudCk7Ci0gICAgICB0aGlzLl9jbG9zZURyb3BEb3duKGV2ZW50KTsKLQotICAg ICAgdGhpcy5oYW5kbGVyLmhpc3RvcnlfcXVlcnlfc291cmNlID0gUXVlcnlTb3VyY2VzLkVYUExB SU5fQU5BTFlaRTsKLSAgICAgIHF1ZXJ5VG9vbEFjdGlvbnMuZXhwbGFpbkFuYWx5emUodGhpcy5o YW5kbGVyKTsKLSAgICB9LAotCi0gICAgLy8gQ2FsbGJhY2sgZnVuY3Rpb24gZm9yIGV4cGxhaW4g b3B0aW9uICJ2ZXJib3NlIiBidXR0b24gY2xpY2sKLSAgICBvbl9leHBsYWluX3ZlcmJvc2U6IGZ1 bmN0aW9uKGV2KSB7Ci0gICAgICB2YXIgc2VsZiA9IHRoaXM7Ci0KLSAgICAgIHRoaXMuX3N0b3BF dmVudFByb3BvZ2F0aW9uKGV2KTsKLQotICAgICAgLy8gVHJpZ2dlciB0aGUgZXhwbGFpbiAidmVy Ym9zZSIgc2lnbmFsIHRvIHRoZSBTcWxFZGl0b3JDb250cm9sbGVyIGNsYXNzCi0gICAgICBzZWxm LmhhbmRsZXIudHJpZ2dlcigKLSAgICAgICAgJ3BnYWRtaW4tc3FsZWRpdG9yOmJ1dHRvbjpleHBs YWluLXZlcmJvc2UnLAotICAgICAgICBzZWxmLAotICAgICAgICBzZWxmLmhhbmRsZXIKLSAgICAg ICk7Ci0gICAgfSwKLQotICAgIC8vIENhbGxiYWNrIGZ1bmN0aW9uIGZvciBleHBsYWluIG9wdGlv biAiY29zdHMiIGJ1dHRvbiBjbGljawotICAgIG9uX2V4cGxhaW5fY29zdHM6IGZ1bmN0aW9uKGV2 KSB7Ci0gICAgICB2YXIgc2VsZiA9IHRoaXM7Ci0KLSAgICAgIHRoaXMuX3N0b3BFdmVudFByb3Bv Z2F0aW9uKGV2KTsKLQotICAgICAgLy8gVHJpZ2dlciB0aGUgZXhwbGFpbiAiY29zdHMiIHNpZ25h bCB0byB0aGUgU3FsRWRpdG9yQ29udHJvbGxlciBjbGFzcwotICAgICAgc2VsZi5oYW5kbGVyLnRy aWdnZXIoCi0gICAgICAgICdwZ2FkbWluLXNxbGVkaXRvcjpidXR0b246ZXhwbGFpbi1jb3N0cycs Ci0gICAgICAgIHNlbGYsCi0gICAgICAgIHNlbGYuaGFuZGxlcgotICAgICAgKTsKLSAgICB9LAot Ci0gICAgLy8gQ2FsbGJhY2sgZnVuY3Rpb24gZm9yIGV4cGxhaW4gb3B0aW9uICJidWZmZXJzIiBi dXR0b24gY2xpY2sKLSAgICBvbl9leHBsYWluX2J1ZmZlcnM6IGZ1bmN0aW9uKGV2KSB7Ci0gICAg ICB2YXIgc2VsZiA9IHRoaXM7Ci0KLSAgICAgIHRoaXMuX3N0b3BFdmVudFByb3BvZ2F0aW9uKGV2 KTsKLQotICAgICAgLy8gVHJpZ2dlciB0aGUgZXhwbGFpbiAiYnVmZmVycyIgc2lnbmFsIHRvIHRo ZSBTcWxFZGl0b3JDb250cm9sbGVyIGNsYXNzCi0gICAgICBzZWxmLmhhbmRsZXIudHJpZ2dlcigK LSAgICAgICAgJ3BnYWRtaW4tc3FsZWRpdG9yOmJ1dHRvbjpleHBsYWluLWJ1ZmZlcnMnLAotICAg ICAgICBzZWxmLAotICAgICAgICBzZWxmLmhhbmRsZXIKLSAgICAgICk7Ci0gICAgfSwKLQotICAg IC8vIENhbGxiYWNrIGZ1bmN0aW9uIGZvciBleHBsYWluIG9wdGlvbiAidGltaW5nIiBidXR0b24g Y2xpY2sKLSAgICBvbl9leHBsYWluX3RpbWluZzogZnVuY3Rpb24oZXYpIHsKLSAgICAgIHZhciBz ZWxmID0gdGhpczsKLQotICAgICAgdGhpcy5fc3RvcEV2ZW50UHJvcG9nYXRpb24oZXYpOwotCi0g ICAgICAvLyBUcmlnZ2VyIHRoZSBleHBsYWluICJ0aW1pbmciIHNpZ25hbCB0byB0aGUgU3FsRWRp dG9yQ29udHJvbGxlciBjbGFzcwotICAgICAgc2VsZi5oYW5kbGVyLnRyaWdnZXIoCi0gICAgICAg ICdwZ2FkbWluLXNxbGVkaXRvcjpidXR0b246ZXhwbGFpbi10aW1pbmcnLAotICAgICAgICBzZWxm LAotICAgICAgICBzZWxmLmhhbmRsZXIKLSAgICAgICk7Ci0gICAgfSwKLQotICAgIG9uX2V4cGxh aW5fc3VtbWFyeTogZnVuY3Rpb24oZXYpIHsKLSAgICAgIHZhciBzZWxmID0gdGhpczsKLQotICAg ICAgdGhpcy5fc3RvcEV2ZW50UHJvcG9nYXRpb24oZXYpOwotCi0gICAgICBzZWxmLmhhbmRsZXIu dHJpZ2dlcigKLSAgICAgICAgJ3BnYWRtaW4tc3FsZWRpdG9yOmJ1dHRvbjpleHBsYWluLXN1bW1h cnknLAotICAgICAgICBzZWxmLAotICAgICAgICBzZWxmLmhhbmRsZXIKLSAgICAgICk7Ci0gICAg fSwKLQotICAgIG9uX2V4cGxhaW5fc2V0dGluZ3M6IGZ1bmN0aW9uKGV2KSB7Ci0gICAgICB2YXIg c2VsZiA9IHRoaXM7Ci0KLSAgICAgIHRoaXMuX3N0b3BFdmVudFByb3BvZ2F0aW9uKGV2KTsKLQot ICAgICAgc2VsZi5oYW5kbGVyLnRyaWdnZXIoCi0gICAgICAgICdwZ2FkbWluLXNxbGVkaXRvcjpi dXR0b246ZXhwbGFpbi1zZXR0aW5ncycsCi0gICAgICAgIHNlbGYsCi0gICAgICAgIHNlbGYuaGFu ZGxlcgotICAgICAgKTsKLSAgICB9LAotCi0KLSAgICBkb19ub3RfY2xvc2VfbWVudTogZnVuY3Rp b24oZXYpIHsKLSAgICAgIGV2LnN0b3BQcm9wYWdhdGlvbigpOwotICAgIH0sCi0KLSAgICAvLyBj YWxsYmFjayBmdW5jdGlvbiBmb3Igc2hvdyBxdWVyeSB0b29sIGNsaWNrLgotICAgIG9uX3Nob3df cXVlcnlfdG9vbDogZnVuY3Rpb24oZXYpIHsKLSAgICAgIHZhciBzZWxmID0gdGhpczsKLQotICAg ICAgdGhpcy5fc3RvcEV2ZW50UHJvcG9nYXRpb24oZXYpOwotICAgICAgdGhpcy5fY2xvc2VEcm9w RG93bihldik7Ci0KLSAgICAgIHNlbGYuaGFuZGxlci50cmlnZ2VyKAotICAgICAgICAncGdhZG1p bi1zcWxlZGl0b3I6YnV0dG9uOnNob3dfcXVlcnlfdG9vbCcsCi0gICAgICAgIHNlbGYsCi0gICAg ICAgIHNlbGYuaGFuZGxlcgotICAgICAgKTsKLSAgICB9LAotCi0gICAgLy8gY2FsbGJhY2sgZnVu Y3Rpb24gZm9yIGxvYWQgZmlsZSBidXR0b24gY2xpY2suCi0gICAgb25fZmlsZV9sb2FkOiBmdW5j dGlvbihldikgewotICAgICAgdmFyIHNlbGYgPSB0aGlzOwotCi0gICAgICB0aGlzLl9zdG9wRXZl bnRQcm9wb2dhdGlvbihldik7Ci0gICAgICB0aGlzLl9jbG9zZURyb3BEb3duKGV2KTsKLQotICAg ICAgLy8gVHJpZ2dlciB0aGUgc2F2ZSBzaWduYWwgdG8gdGhlIFNxbEVkaXRvckNvbnRyb2xsZXIg Y2xhc3MKLSAgICAgIHNlbGYuaGFuZGxlci50cmlnZ2VyKAotICAgICAgICAncGdhZG1pbi1zcWxl ZGl0b3I6YnV0dG9uOmxvYWRfZmlsZScsCi0gICAgICAgIHNlbGYsCi0gICAgICAgIHNlbGYuaGFu ZGxlcgotICAgICAgKTsKLSAgICB9LAotCi0gICAgb25fZG93bmxvYWQ6IGZ1bmN0aW9uKCkgewot ICAgICAgcXVlcnlUb29sQWN0aW9ucy5kb3dubG9hZCh0aGlzLmhhbmRsZXIpOwotICAgIH0sCi0K LSAgICBrZXlBY3Rpb246IGZ1bmN0aW9uKGV2ZW50KSB7Ci0gICAgICB2YXIgcGFuZWxfdHlwZT0n JzsKLQotICAgICAgcGFuZWxfdHlwZSA9IGtleWJvYXJkU2hvcnRjdXRzLnByb2Nlc3NFdmVudFF1 ZXJ5VG9vbCgKLSAgICAgICAgdGhpcy5oYW5kbGVyLCBxdWVyeVRvb2xBY3Rpb25zLCBldmVudCwg dGhpcy5kb2NrZXIKLSAgICAgICk7Ci0KLSAgICAgIGlmKCFfLmlzTnVsbChwYW5lbF90eXBlKSAm JiAhXy5pc1VuZGVmaW5lZChwYW5lbF90eXBlKSAmJiBwYW5lbF90eXBlICE9ICcnKSB7Ci0gICAg ICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgcGdCcm93c2VyLkV2ZW50cy50 cmlnZ2VyKGBwZ2FkbWluOnF1ZXJ5X3Rvb2w6JHtwYW5lbF90eXBlfTpmb2N1c2ApOwotICAgICAg ICB9LCAxMDApOwotICAgICAgfQotICAgIH0sCi0KLSAgICAvLyBDYWxsYmFjayBmdW5jdGlvbiBm b3IgdGhlIGNvbW1pdCBidXR0b24gY2xpY2suCi0gICAgb25fY29tbWl0X3RyYW5zYWN0aW9uOiBm dW5jdGlvbigpIHsKLSAgICAgIHRoaXMuaGFuZGxlci5jbG9zZV9vbl9pZGxlX3RyYW5zYWN0aW9u ID0gZmFsc2U7Ci0gICAgICB0aGlzLmhhbmRsZXIuaGlzdG9yeV9xdWVyeV9zb3VyY2UgPSBRdWVy eVNvdXJjZXMuQ09NTUlUOwotCi0gICAgICBxdWVyeVRvb2xBY3Rpb25zLmV4ZWN1dGVDb21taXQo dGhpcy5oYW5kbGVyKTsKLSAgICB9LAotCi0gICAgLy8gQ2FsbGJhY2sgZnVuY3Rpb24gZm9yIHRo ZSByb2xsYmFjayBidXR0b24gY2xpY2suCi0gICAgb25fcm9sbGJhY2tfdHJhbnNhY3Rpb246IGZ1 bmN0aW9uKCkgewotICAgICAgdGhpcy5oYW5kbGVyLmNsb3NlX29uX2lkbGVfdHJhbnNhY3Rpb24g PSBmYWxzZTsKLSAgICAgIHRoaXMuaGFuZGxlci5oaXN0b3J5X3F1ZXJ5X3NvdXJjZSA9IFF1ZXJ5 U291cmNlcy5ST0xMQkFDSzsKLQotICAgICAgcXVlcnlUb29sQWN0aW9ucy5leGVjdXRlUm9sbGJh Y2sodGhpcy5oYW5kbGVyKTsKLSAgICB9LAotCi0gICAgLy8gQ2FsbGJhY2sgZnVuY3Rpb24gZm9y IG1hbmFnZSBtYWNyb3MgYnV0dG9uIGNsaWNrLgotICAgIG9uX21hbmFnZV9tYWNyb3M6IGZ1bmN0 aW9uKCkgewotICAgICAgdmFyIHNlbGYgPSB0aGlzOwotCi0gICAgICAvLyBUcmlnZ2VyIHRoZSBz aG93X2ZpbHRlciBzaWduYWwgdG8gdGhlIFNxbEVkaXRvckNvbnRyb2xsZXIgY2xhc3MKLSAgICAg IHNlbGYuaGFuZGxlci50cmlnZ2VyKAotICAgICAgICAncGdhZG1pbi1zcWxlZGl0b3I6YnV0dG9u Om1hbmFnZV9tYWNyb3MnLAotICAgICAgICBzZWxmLAotICAgICAgICBzZWxmLmhhbmRsZXIKLSAg ICAgICk7Ci0gICAgfSwKLQotICAgIC8vIENhbGxiYWNrIGZ1bmN0aW9uIGZvciBtYW5hZ2UgbWFj cm9zIGJ1dHRvbiBjbGljay4KLSAgICBvbl9leGVjdXRlX21hY3JvOiBmdW5jdGlvbihlKSB7Ci0g ICAgICBsZXQgbWFjcm9JZCA9ICQoZS5jdXJyZW50VGFyZ2V0KS5kYXRhKCdtYWNyby1pZCcpOwot ICAgICAgdGhpcy5oYW5kbGVyLmhpc3RvcnlfcXVlcnlfc291cmNlID0gUXVlcnlTb3VyY2VzLkVY RUNVVEU7Ci0gICAgICBxdWVyeVRvb2xBY3Rpb25zLmV4ZWN1dGVNYWNybyh0aGlzLmhhbmRsZXIs IG1hY3JvSWQpOwotICAgIH0sCi0KLSAgICBzZXRfc2VsZWN0ZWRfb3B0aW9uOiBmdW5jdGlvbihz ZWxlY3RlZF9jb25maWcpIHsKLSAgICAgIHRoaXMuY29ubmVjdGlvbl9saXN0LmZvckVhY2gob3B0 aW9uID0+ewotICAgICAgICBpZihvcHRpb25bJ3NlcnZlciddID09IHNlbGVjdGVkX2NvbmZpZ1sn c2VydmVyJ10gJiYgb3B0aW9uWydkYXRhYmFzZSddID09IHNlbGVjdGVkX2NvbmZpZ1snZGF0YWJh c2UnXSAmJiBvcHRpb25bJ3VzZXInXSA9PSBzZWxlY3RlZF9jb25maWdbJ3VzZXInXSAmJiBvcHRp b25bJ3JvbGUnXSA9PSBzZWxlY3RlZF9jb25maWdbJ3JvbGUnXSkgewotICAgICAgICAgIHNlbGVj dGVkX2NvbmZpZ1snaXNfc2VsZWN0ZWQnXSA9IHRydWU7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAg ICAgICAgb3B0aW9uWydpc19zZWxlY3RlZCddID0gZmFsc2U7Ci0gICAgICAgIH0KLSAgICAgIH0p OwotICAgIH0sCi0KLSAgICBvbl9jaGFuZ2VfY29ubmVjdGlvbjogZnVuY3Rpb24oY29ubmVjdGlv bl9kZXRhaWxzLCByZWYsIGFkZF9uZXdfY29ubmVjdGlvbj10cnVlKSB7Ci0gICAgICBpZighY29u bmVjdGlvbl9kZXRhaWxzWydpc19zZWxlY3RlZCddKSB7Ci0gICAgICAgIHZhciBzZWxmID0gdGhp czsKLSAgICAgICAgaWYoYWRkX25ld19jb25uZWN0aW9uKSB7Ci0gICAgICAgICAgTm90aWZ5LmNv bmZpcm0oZ2V0dGV4dCgnQ2hhbmdlIGNvbm5lY3Rpb24nKSwKLSAgICAgICAgICAgIGdldHRleHQo J0J5IGNoYW5naW5nIHRoZSBjb25uZWN0aW9uIHlvdSB3aWxsIGxvc2UgYWxsIHlvdXIgdW5zYXZl ZCBkYXRhIGZvciB0aGUgY3VycmVudCBjb25uZWN0aW9uLiA8YnI+IERvIHlvdSB3YW50IHRvIGNv bnRpbnVlPycpLAotICAgICAgICAgICAgZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICAgIHNlbGYu Y2hhbmdlX2Nvbm5lY3Rpb24oY29ubmVjdGlvbl9kZXRhaWxzLCByZWYsIHRydWUpOwotICAgICAg ICAgICAgfSwKLSAgICAgICAgICAgIGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgICB2YXIgbG9h ZGluZ0RpdiA9ICQoJyNtYWluX2xvYWRlcicpOwotICAgICAgICAgICAgICBsb2FkaW5nRGl2LmFk ZENsYXNzKCdkLW5vbmUnKTsKLSAgICAgICAgICAgICAgYWxlcnRpZnkubmV3Q29ubmVjdGlvbkRp YWxvZygpLmRlc3Ryb3koKTsKLSAgICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgICAg ICB9Ci0gICAgICAgICAgKTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICBzZWxmLmNoYW5n ZV9jb25uZWN0aW9uKGNvbm5lY3Rpb25fZGV0YWlscywgcmVmLCBmYWxzZSk7Ci0gICAgICAgIH0K LSAgICAgIH0KLSAgICB9LAotCi0gICAgY2hhbmdlX2Nvbm5lY3Rpb246IGZ1bmN0aW9uKGNvbm5l Y3Rpb25fZGV0YWlscywgcmVmLCBhZGRfbmV3X2Nvbm5lY3Rpb24pIHsKLSAgICAgIHZhciBzZWxm ID0gdGhpczsKLSAgICAgIHZhciBsb2FkaW5nRGl2ID0gbnVsbDsKLSAgICAgIHZhciBtc2dEaXYg PSBudWxsOwotICAgICAgaWYocmVmKXsKLSAgICAgICAgbG9hZGluZ0RpdiA9ICQoJyNzaG93X2Zp bHRlcl9wcm9ncmVzcycpOwotICAgICAgICBsb2FkaW5nRGl2LnJlbW92ZUNsYXNzKCdkLW5vbmUn KTsKLSAgICAgICAgbXNnRGl2ID0gbG9hZGluZ0Rpdi5maW5kKCcuc3FsLWVkaXRvci1idXN5LXRl eHQnKTsKLSAgICAgICAgbXNnRGl2LnRleHQoJ0Nvbm5lY3RpbmcgdG8gZGF0YWJhc2UuLi4nKTsK LSAgICAgIH0gZWxzZXsKLSAgICAgICAgbG9hZGluZ0RpdiA9ICQoJyNtYWluX2xvYWRlcicpOwot ICAgICAgICBsb2FkaW5nRGl2LnJlbW92ZUNsYXNzKCdkLW5vbmUnKTsKLSAgICAgIH0KLSAgICAg IHNlbGYuc2V0X3NlbGVjdGVkX29wdGlvbihjb25uZWN0aW9uX2RldGFpbHMpOwotICAgICAgJC5h amF4KHsKLSAgICAgICAgdXJsOiB1cmxfZm9yKCdkYXRhZ3JpZC51cGRhdGVfcXVlcnlfdG9vbF9j b25uZWN0aW9uJywgewotICAgICAgICAgICd0cmFuc19pZCc6IHNlbGYudHJhbnNJZCwKLSAgICAg ICAgICAnc2dpZCc6IGNvbm5lY3Rpb25fZGV0YWlsc1snc2VydmVyX2dyb3VwJ10sCi0gICAgICAg ICAgJ3NpZCc6IGNvbm5lY3Rpb25fZGV0YWlsc1snc2VydmVyJ10sCi0gICAgICAgICAgJ2RpZCc6 IGNvbm5lY3Rpb25fZGV0YWlsc1snZGF0YWJhc2UnXSwKLSAgICAgICAgfSksCi0gICAgICAgIG1l dGhvZDogJ1BPU1QnLAotICAgICAgICBjb250ZW50VHlwZTogJ2FwcGxpY2F0aW9uL2pzb24nLAot ICAgICAgICBkYXRhOiBKU09OLnN0cmluZ2lmeShjb25uZWN0aW9uX2RldGFpbHMpLAotICAgICAg fSkKLSAgICAgICAgLmRvbmUoZnVuY3Rpb24ocmVzKSB7Ci0gICAgICAgICAgaWYocmVzLnN1Y2Nl c3MpIHsKLSAgICAgICAgICAgIGRlbGV0ZSBjb25uZWN0aW9uX2RldGFpbHMucGFzc3dvcmQ7Ci0g ICAgICAgICAgICBzZWxmLnRyYW5zSWQgPSByZXMuZGF0YS50cmFuX2lkOwotICAgICAgICAgICAg c2VsZi5oYW5kbGVyLnRyYW5zSWQgPSByZXMuZGF0YS50cmFuX2lkOwotICAgICAgICAgICAgc2Vs Zi5oYW5kbGVyLnVybF9wYXJhbXMgPSB7Ci0gICAgICAgICAgICAgICdkaWQnOiBjb25uZWN0aW9u X2RldGFpbHNbJ2RhdGFiYXNlJ10sCi0gICAgICAgICAgICAgICdpc19xdWVyeV90b29sJzogc2Vs Zi5oYW5kbGVyLnVybF9wYXJhbXMuaXNfcXVlcnlfdG9vbCwKLSAgICAgICAgICAgICAgJ3NlcnZl cl90eXBlJzogc2VsZi5oYW5kbGVyLnVybF9wYXJhbXMuc2VydmVyX3R5cGUsCi0gICAgICAgICAg ICAgICdzZ2lkJzogY29ubmVjdGlvbl9kZXRhaWxzWydzZXJ2ZXJfZ3JvdXAnXSwKLSAgICAgICAg ICAgICAgJ3NpZCc6IGNvbm5lY3Rpb25fZGV0YWlsc1snc2VydmVyJ10sCi0gICAgICAgICAgICAg ICd0aXRsZSc6IGNvbm5lY3Rpb25fZGV0YWlsc1sndGl0bGUnXSwKLSAgICAgICAgICAgIH07Ci0g ICAgICAgICAgICBzZWxmLnNldF9lZGl0b3JfdGl0bGUoXy51bmVzY2FwZShjb25uZWN0aW9uX2Rl dGFpbHNbJ2Nvbm5fdGl0bGUnXSkpOwotICAgICAgICAgICAgc2VsZi5oYW5kbGVyLnNldFRpdGxl KF8udW5lc2NhcGUoc2VsZi5oYW5kbGVyLnVybF9wYXJhbXMudGl0bGUpKTsKLSAgICAgICAgICAg IGxldCBzdWNjZXNzX21zZyA9IGNvbm5lY3Rpb25fZGV0YWlsc1snc2VydmVyX25hbWUnXSArICcv JyArIGNvbm5lY3Rpb25fZGV0YWlsc1snZGF0YWJhc2VfbmFtZSddICsgJy0gRGF0YWJhc2UgY29u bmVjdGVkJzsKLSAgICAgICAgICAgIE5vdGlmeS5zdWNjZXNzKHN1Y2Nlc3NfbXNnKTsKLSAgICAg ICAgICAgIGlmKHJlZil7Ci0gICAgICAgICAgICAgIGxldCBjb25uZWN0aW9uX2RhdGEgPSB7Ci0g ICAgICAgICAgICAgICAgJ3NlcnZlcl9ncm91cCc6IHNlbGYuaGFuZGxlci51cmxfcGFyYW1zLnNn aWQsCi0gICAgICAgICAgICAgICAgJ3NlcnZlcic6IGNvbm5lY3Rpb25fZGV0YWlsc1snc2VydmVy J10sCi0gICAgICAgICAgICAgICAgJ2RhdGFiYXNlJzogY29ubmVjdGlvbl9kZXRhaWxzWydkYXRh YmFzZSddLAotICAgICAgICAgICAgICAgICd1c2VyJzogY29ubmVjdGlvbl9kZXRhaWxzWyd1c2Vy J10sCi0gICAgICAgICAgICAgICAgJ3RpdGxlJzogY29ubmVjdGlvbl9kZXRhaWxzWyd0aXRsZSdd LAotICAgICAgICAgICAgICAgICdjb25uX3RpdGxlJzogY29ubmVjdGlvbl9kZXRhaWxzWydjb25u X3RpdGxlJ10sCi0gICAgICAgICAgICAgICAgJ3JvbGUnOiBjb25uZWN0aW9uX2RldGFpbHNbJ3Jv bGUnXSwKLSAgICAgICAgICAgICAgICAnaXNfYWxsb3dfbmV3X2Nvbm5lY3Rpb24nOiB0cnVlLAot ICAgICAgICAgICAgICAgICdkYXRhYmFzZV9uYW1lJzogY29ubmVjdGlvbl9kZXRhaWxzWydkYXRh YmFzZV9uYW1lJ10sCi0gICAgICAgICAgICAgICAgJ3NlcnZlcl9uYW1lJzogY29ubmVjdGlvbl9k ZXRhaWxzWydzZXJ2ZXJfbmFtZSddLAotICAgICAgICAgICAgICAgICdpc19zZWxlY3RlZCc6IHRy dWUsCi0gICAgICAgICAgICAgIH07Ci0gICAgICAgICAgICAgIGRlbGV0ZSBjb25uZWN0aW9uX2Rh dGEucGFzc3dvcmQ7Ci0gICAgICAgICAgICAgIGlmKGFkZF9uZXdfY29ubmVjdGlvbikgewotICAg ICAgICAgICAgICAgIHNlbGYuY29ubmVjdGlvbl9saXN0LnVuc2hpZnQoY29ubmVjdGlvbl9kYXRh KTsKLSAgICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAgIHNlbGYucmVuZGVyX2Nvbm5lY3Rp b24oc2VsZi5jb25uZWN0aW9uX2xpc3QpOwotICAgICAgICAgICAgICBsb2FkaW5nRGl2LmFkZENs YXNzKCdkLW5vbmUnKTsKLSAgICAgICAgICAgICAgYWxlcnRpZnkubmV3Q29ubmVjdGlvbkRpYWxv ZygpLmRlc3Ryb3koKTsKLSAgICAgICAgICAgICAgYWxlcnRpZnkuY29ubmVjdFNlcnZlcigpLmRl c3Ryb3koKTsKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgIGxvYWRpbmdEaXYu YWRkQ2xhc3MoJ2Qtbm9uZScpOwotICAgICAgICAgICAgICBhbGVydGlmeS5jb25uZWN0U2VydmVy KCkuZGVzdHJveSgpOwotICAgICAgICAgICAgfQotICAgICAgICAgIH0KLSAgICAgICAgICByZXR1 cm4gdHJ1ZTsKLSAgICAgICAgfSkKLSAgICAgICAgLmZhaWwoZnVuY3Rpb24oeGhyKSB7Ci0gICAg ICAgICAgaWYoeGhyLnN0YXR1cyA9PSA0MjgpIHsKLSAgICAgICAgICAgIHZhciBjb25uZWN0aW9u X2luZm8gPSBjb25uZWN0aW9uX2RldGFpbHM7Ci0gICAgICAgICAgICBpZihyZWYpIHsKLSAgICAg ICAgICAgICAgY29ubmVjdGlvbl9pbmZvID0ge307Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAg ICBhbGVydGlmeS5jb25uZWN0U2VydmVyKCdDb25uZWN0IHRvIHNlcnZlcicsIHhoci5yZXNwb25z ZUpTT04ucmVzdWx0LCBjb25uZWN0aW9uX2RldGFpbHNbJ3NlcnZlciddLCBmYWxzZSwgY29ubmVj dGlvbl9pbmZvKTsKLSAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgTm90aWZ5LmVycm9y KHhoci5yZXNwb25zZUpTT05bJ2Vycm9ybXNnJ10pOwotICAgICAgICAgIH0KLSAgICAgICAgfSk7 Ci0gICAgfSwKLSAgfSk7Ci0KLQotCi0gIC8qIERlZmluaW5nIGNvbnRyb2xsZXIgY2xhc3MgZm9y IGRhdGEgZ3JpZCwgd2hpY2ggYWN0dWFsbHkKLSAgICogcGVyZm9ybSB0aGUgb3BlcmF0aW9ucyBs aWtlIGV4ZWN1dGluZyB0aGUgc3FsIHF1ZXJ5LCBwb2xsIHRoZSByZXN1bHQsCi0gICAqIHJlbmRl ciB0aGUgZGF0YSBpbiB0aGUgZ3JpZCwgU2F2ZS9SZWZyZXNoIHRoZSBkYXRhIGV0Yy4uLgotICAg Ki8KLSAgdmFyIFNxbEVkaXRvckNvbnRyb2xsZXIgPSBmdW5jdGlvbigpIHsKLSAgICB0aGlzLmlu aXRpYWxpemUuYXBwbHkodGhpcywgYXJndW1lbnRzKTsKLSAgfTsKLQotICAvKiBUaGlzIGZ1bmN0 aW9uIGlzIHVzZWQgdG8gY2hlY2sgd2hldGhlciB1c2VyIGhhdmUgY2xvc2VkCi0gICAqIHRoZSBt YWluIHdpbmRvdyB3aGVuIHF1ZXJ5IHRvb2wgaXMgb3BlbmVkIG9uIG5ldyB0YWIKLSAgICovCi0g IHZhciBpc19tYWluX3dpbmRvd19hbGl2ZSA9IGZ1bmN0aW9uKCkgewotCi0gICAgaWYoKHBnV2lu ZG93LmRlZmF1bHQgJiYgcGdXaW5kb3cuZGVmYXVsdC5jbG9zZWQpIHx8Ci0gICAgICAgIHBnV2lu ZG93LmRlZmF1bHQucGdBZG1pbiAmJiBwZ1dpbmRvdy5kZWZhdWx0LnBnQWRtaW4uQnJvd3Nlcgot ICAgICAgICAgICAgJiYgcGdXaW5kb3cuZGVmYXVsdC5wZ0FkbWluLkJyb3dzZXIucHJlZmVyZW5j ZV92ZXJzaW9uKCkgPD0gMCkgewotCi0gICAgICBOb3RpZnkuYWxlcnQoZ2V0dGV4dCgnQ29ubmVj dGlvbiBsb3N0JyksCi0gICAgICAgIGdldHRleHQoJ1RoZSBwZ0FkbWluIGJyb3dzZXIgd2luZG93 IGhhcyBiZWVuIGNsb3NlZCBhbmQgdGhlIGNvbm5lY3Rpb24gdG8gdGhlIHNlcnZlciBpcyBsb3N0 LiBQbGVhc2UgY2xvc2UgdGhpcyB3aW5kb3cgYW5kIG9wZW4gYSBuZXcgcGdBZG1pbiBzZXNzaW9u LicpLAotICAgICAgICBmdW5jdGlvbigpewotICAgICAgICAgIC8vQ2xvc2UgdGhlIHdpbmRvdyBh ZnRlciBjb25uZWN0aW9uIGlzIGxvc3QKLSAgICAgICAgICB3aW5kb3cuY2xvc2UoKTsKLSAgICAg ICAgfSwKLSAgICAgICAgZ2V0dGV4dCgnQ2xvc2UnKQotICAgICAgKTsKLSAgICB9Ci0gIH07Ci0K LSAgXy5leHRlbmQoCi0gICAgU3FsRWRpdG9yQ29udHJvbGxlci5wcm90b3R5cGUsCi0gICAgQmFj a2JvbmUuRXZlbnRzLAotICAgIHsKLSAgICAgIGluaXRpYWxpemU6IGZ1bmN0aW9uKGNvbnRhaW5l cikgewotICAgICAgICB2YXIgc2VsZiA9IHRoaXM7Ci0gICAgICAgIHRoaXMuY29udGFpbmVyID0g Y29udGFpbmVyOwotICAgICAgICB0aGlzLnN0YXRlID0ge307Ci0gICAgICAgIHRoaXMuY3NyZl90 b2tlbiA9IHBnQWRtaW4uY3NyZl90b2tlbjsKLQotICAgICAgICAvL2NhbGwgdG8gY2hlY2sgd2hl dGhlciB1c2VyIGhhdmUgY2xvc2VkIHRoZSBwYXJlbnQgd2luZG93IGFuZCB0cnlpbmcgdG8gcmVm cmVzaCwgaWYgeWVzIHJldHVybiBlcnJvci4KLSAgICAgICAgaXNfbWFpbl93aW5kb3dfYWxpdmUo KTsKLQotICAgICAgICAvLyBEaXNhYmxlIGFuaW1hdGlvbiBmaXJzdAotICAgICAgICBtb2RpZnlB bmltYXRpb24ubW9kaWZ5QWxlcnRpZnlBbmltYXRpb24oKTsKLQotICAgICAgICBpZiAoIWFsZXJ0 aWZ5LmRsZ0dldFNlcnZlclBhc3MpIHsKLSAgICAgICAgICBhbGVydGlmeS5kaWFsb2coJ2RsZ0dl dFNlcnZlclBhc3MnLCBmdW5jdGlvbiBmYWN0b3J5KCkgewotICAgICAgICAgICAgcmV0dXJuIHsK LSAgICAgICAgICAgICAgbWFpbjogZnVuY3Rpb24oCi0gICAgICAgICAgICAgICAgdGl0bGUsIG1l c3NhZ2UKLSAgICAgICAgICAgICAgKSB7Ci0gICAgICAgICAgICAgICAgdGhpcy5zZXQoJ3RpdGxl JywgdGl0bGUpOwotICAgICAgICAgICAgICAgIHRoaXMuc2V0dGluZygnbWVzc2FnZScsbWVzc2Fn ZSk7Ci0gICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAgIHNldHVwOmZ1bmN0aW9uKCkgewot ICAgICAgICAgICAgICAgIHJldHVybiB7Ci0gICAgICAgICAgICAgICAgICBidXR0b25zOlsKLSAg ICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgIHRleHQ6IGdldHRleHQo J09LJyksCi0gICAgICAgICAgICAgICAgICAgICAga2V5OiAxMywKLSAgICAgICAgICAgICAgICAg ICAgICBjbGFzc05hbWU6ICdidG4gYnRuLXByaW1hcnknLAotICAgICAgICAgICAgICAgICAgICB9 LAotICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAgdGV4dDogZ2V0 dGV4dCgnQ2FuY2VsJyksCi0gICAgICAgICAgICAgICAgICAgICAga2V5OiAyNywKLSAgICAgICAg ICAgICAgICAgICAgICBjbGFzc05hbWU6ICdidG4gYnRuLWRhbmdlcicsCi0gICAgICAgICAgICAg ICAgICAgIH0sCi0gICAgICAgICAgICAgICAgICBdLAotICAgICAgICAgICAgICAgICAgZm9jdXM6 IHsKLSAgICAgICAgICAgICAgICAgICAgZWxlbWVudDogJyNwYXNzd29yZCcsCi0gICAgICAgICAg ICAgICAgICAgIHNlbGVjdDogdHJ1ZSwKLSAgICAgICAgICAgICAgICAgIH0sCi0gICAgICAgICAg ICAgICAgICBvcHRpb25zOiB7Ci0gICAgICAgICAgICAgICAgICAgIG1vZGFsOiAwLAotICAgICAg ICAgICAgICAgICAgICByZXNpemFibGU6IGZhbHNlLAotICAgICAgICAgICAgICAgICAgICBtYXhp bWl6YWJsZTogZmFsc2UsCi0gICAgICAgICAgICAgICAgICAgIHBpbm5hYmxlOiBmYWxzZSwKLSAg ICAgICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICAgfTsKLSAgICAgICAgICAgICAgfSwK LSAgICAgICAgICAgICAgYnVpbGQ6ZnVuY3Rpb24oKSB7LyogKi99LAotICAgICAgICAgICAgICBz ZXR0aW5nczp7Ci0gICAgICAgICAgICAgICAgbWVzc2FnZTogbnVsbCwKLSAgICAgICAgICAgICAg fSwKLSAgICAgICAgICAgICAgcHJlcGFyZTpmdW5jdGlvbigpIHsKLSAgICAgICAgICAgICAgICB0 aGlzLnNldENvbnRlbnQodGhpcy5zZXR0aW5nKCdtZXNzYWdlJykpOwotICAgICAgICAgICAgICB9 LAotICAgICAgICAgICAgICBjYWxsYmFjazogZnVuY3Rpb24oY2xvc2VFdmVudCkgewotICAgICAg ICAgICAgICAgIGlmIChjbG9zZUV2ZW50LmJ1dHRvbi50ZXh0ID09IGdldHRleHQoJ09LJykpIHsK LSAgICAgICAgICAgICAgICAgIHZhciBwYXNzZGF0YSA9ICQodGhpcy5lbGVtZW50cy5jb250ZW50 KS5maW5kKCcjZnJtUGFzc3dvcmQnKS5zZXJpYWxpemUoKTsKLSAgICAgICAgICAgICAgICAgIHNl bGYuaW5pdF9jb25uZWN0aW9uKGZhbHNlLCBwYXNzZGF0YSk7Ci0gICAgICAgICAgICAgICAgfQot ICAgICAgICAgICAgICB9LAotICAgICAgICAgICAgfTsKLSAgICAgICAgICB9KTsKLSAgICAgICAg fQotICAgICAgICB0aGlzLm9uKCdwZ2FkbWluLWRhdGFncmlkOnRyYW5zYWN0aW9uOmNyZWF0ZWQn LCBmdW5jdGlvbih0cmFuc19vYmopIHsKLSAgICAgICAgICBzZWxmLnRyYW5zSWQgPSB0cmFuc19v YmouZ3JpZFRyYW5zSWQ7Ci0gICAgICAgICAgc2VsZi53YXJuX2JlZm9yZV9jb250aW51ZSgpOwot ICAgICAgICB9KTsKLSAgICAgICAgcGdCcm93c2VyLkV2ZW50cy5vbigncGdhZG1pbjp1c2VyOmxv Z2dlZC1pbicsIGZ1bmN0aW9uKCkgewotICAgICAgICAgIHNlbGYuaW5pdFRyYW5zYWN0aW9uKCk7 Ci0gICAgICAgIH0pOwotICAgICAgfSwKLSAgICAgIHNhdmVTdGF0ZTogZnVuY3Rpb24oZm4sIGFy Z3MpIHsKLSAgICAgICAgaWYgKGZuKSB7Ci0gICAgICAgICAgdGhpcy5zdGF0ZSA9IHsKLSAgICAg ICAgICAgICdmbic6IGZuLAotICAgICAgICAgICAgJ2FyZ3MnOiBhcmdzLAotICAgICAgICAgIH07 Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgdGhpcy5zdGF0ZSA9IHt9OwotICAgICAgICB9 Ci0gICAgICB9LAotCi0gICAgICBpbml0VHJhbnNhY3Rpb246IGZ1bmN0aW9uKCkgewotICAgICAg ICB2YXIgc2VsZiA9IHRoaXMsIHVybF9lbmRwb2ludDsKLSAgICAgICAgaWYgKHNlbGYuaXNfcXVl cnlfdG9vbCkgewotICAgICAgICAgIHVybF9lbmRwb2ludCA9ICdkYXRhZ3JpZC5pbml0aWFsaXpl X3F1ZXJ5X3Rvb2wnOwotCi0gICAgICAgICAgLy8gSWYgZGF0YWJhc2Ugbm90IHByZXNlbnQgdGhl biB1c2UgTWFpbnRlbmFuY2UgZGF0YWJhc2UKLSAgICAgICAgICAvLyBXZSB3aWxsIGhhbmRsZSB0 aGlzIGF0IHNlcnZlciBzaWRlCi0gICAgICAgICAgaWYgKHNlbGYudXJsX3BhcmFtcy5kaWQpIHsK LSAgICAgICAgICAgIHVybF9lbmRwb2ludCA9ICdkYXRhZ3JpZC5pbml0aWFsaXplX3F1ZXJ5X3Rv b2xfd2l0aF9kaWQnOwotICAgICAgICAgIH0KLQotICAgICAgICB9IGVsc2UgewotICAgICAgICAg IHVybF9lbmRwb2ludCA9ICdkYXRhZ3JpZC5pbml0aWFsaXplX2RhdGFncmlkJzsKLSAgICAgICAg fQotCi0gICAgICAgIHZhciBiYXNlVXJsID0gdXJsX2Zvcih1cmxfZW5kcG9pbnQsIHsKLSAgICAg ICAgICAuLi5zZWxmLnVybF9wYXJhbXMsCi0gICAgICAgICAgJ3RyYW5zX2lkJzogc2VsZi50cmFu c0lkLAotICAgICAgICB9KTsKLQotICAgICAgICAkLmFqYXgoewotICAgICAgICAgIHVybDogYmFz ZVVybCwKLSAgICAgICAgICB0eXBlOiAnUE9TVCcsCi0gICAgICAgICAgZGF0YTogc2VsZi5pc19x dWVyeV90b29sP251bGw6SlNPTi5zdHJpbmdpZnkoc2VsZi51cmxfcGFyYW1zLnNxbF9maWx0ZXIp LAotICAgICAgICAgIGNvbnRlbnRUeXBlOiAnYXBwbGljYXRpb24vanNvbicsCi0gICAgICAgIH0p LmRvbmUoKHJlcyk9PnsKLSAgICAgICAgICBwZ0Jyb3dzZXIuRXZlbnRzLnRyaWdnZXIoCi0gICAg ICAgICAgICAncGdhZG1pbjpxdWVyeV90b29sOmNvbm5lY3RlZDonICsgc2VsZi50cmFuc0lkLCBy ZXMuZGF0YQotICAgICAgICAgICk7Ci0gICAgICAgIH0pLmZhaWwoKHhociwgc3RhdHVzLCBlcnJv cik9PnsKLSAgICAgICAgICBpZiAoeGhyLnN0YXR1cyA9PT0gNDEwKSB7Ci0gICAgICAgICAgLy9j aGVja2luZyBmb3IgUXVlcnkgdG9vbCBpbiBuZXcgd2luZG93LgotICAgICAgICAgICAgdmFyIG9w ZW5fbmV3X3RhYiA9IHNlbGYuYnJvd3Nlcl9wcmVmZXJlbmNlcy5uZXdfYnJvd3Nlcl90YWJfb3Bl bjsKLSAgICAgICAgICAgIGlmKG9wZW5fbmV3X3RhYiAmJiBvcGVuX25ld190YWIuaW5jbHVkZXMo J3F0JykpIHsKLSAgICAgICAgICAgICAgcGdCcm93c2VyLnJlcG9ydF9lcnJvcihnZXR0ZXh0KCdF cnJvciBmZXRjaGluZyByb3dzIC0gJXMuJywgeGhyLnN0YXR1c1RleHQpLCB4aHIucmVzcG9uc2VK U09OLmVycm9ybXNnLCB1bmRlZmluZWQsIHdpbmRvdy5jbG9zZSk7Ci0gICAgICAgICAgICB9IGVs c2UgewotICAgICAgICAgICAgICBwZ0Jyb3dzZXIucmVwb3J0X2Vycm9yKGdldHRleHQoJ0Vycm9y IGZldGNoaW5nIHJvd3MgLSAlcy4nLCB4aHIuc3RhdHVzVGV4dCksIHhoci5yZXNwb25zZUpTT04u ZXJyb3Jtc2csIHVuZGVmaW5lZCwgc2VsZi5jbG9zZS5iaW5kKHNlbGYpKTsKLSAgICAgICAgICAg IH0KLSAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgaWYgKHhoci5yZXNwb25zZVRleHQu c2VhcmNoKCdUaWNrZXQgZXhwaXJlZCcpICE9PSAtMSkgewotICAgICAgICAgICAgICBsZXQgZmV0 Y2hUaWNrZXQgPSBLZXJiZXJvcy5mZXRjaF90aWNrZXQoKTsKLSAgICAgICAgICAgICAgZmV0Y2hU aWNrZXQudGhlbigKLSAgICAgICAgICAgICAgICBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgICAg ICAgIHNlbGYuaW5pdFRyYW5zYWN0aW9uKCk7Ci0gICAgICAgICAgICAgICAgfSwKLSAgICAgICAg ICAgICAgICBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgICAgICAgIHBnQnJvd3Nlci5FdmVudHMu dHJpZ2dlcigKLSAgICAgICAgICAgICAgICAgICAgJ3BnYWRtaW46cXVlcnlfdG9vbDpjb25uZWN0 ZWRfZmFpbDonICsgc2VsZi50cmFuc0lkLCB4aHIsIGVycm9yCi0gICAgICAgICAgICAgICAgICAp OwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgKTsKLSAgICAgICAgICAgIH0gZWxz ZSB7Ci0gICAgICAgICAgICAgIHBnQnJvd3Nlci5FdmVudHMudHJpZ2dlcigKLSAgICAgICAgICAg ICAgICAncGdhZG1pbjpxdWVyeV90b29sOmNvbm5lY3RlZF9mYWlsOicgKyBzZWxmLnRyYW5zSWQs IHhociwgZXJyb3IKLSAgICAgICAgICAgICAgKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICB9 Ci0gICAgICAgIH0pOwotICAgICAgfSwKLQotICAgICAgaGFuZGxlX2Nvbm5lY3Rpb25fbG9zdDog ZnVuY3Rpb24oY3JlYXRlX3RyYW5zYWN0aW9uLCB4aHIpIHsKLSAgICAgICAgLyogSWYgcmVzcG9u c2VKU09OIGlzIHVuZGVmaW5lZCB0aGVuIGl0IGNvdWxkIGJlIG9iamVjdCBvZgotICAgICAgICAg KiBheGlvcyhQcm9taXNlIEhUVFApIHJlc3BvbnNlLCBzbyB3ZSBzaG91bGQgY2hlY2sgYWNjb3Jk aW5nbHkuCi0gICAgICAgICAqLwotICAgICAgICBpZiAoeGhyLnJlc3BvbnNlSlNPTiAhPT0gdW5k ZWZpbmVkICYmCi0gICAgICAgICAgICB4aHIucmVzcG9uc2VKU09OLmRhdGEgJiYgIXhoci5yZXNw b25zZUpTT04uZGF0YS5jb25uX2lkKSB7Ci0gICAgICAgICAgLy8gaWYgY29ubl9pZCBpcyBudWxs IHRoZW4gdGhpcyBpcyBtYWludGVuYW5jZSBkYi4KLSAgICAgICAgICAvLyBzbyBhdHRlbXB0IGNv bm5lY3Rpb24gY29ubmVjdCB3aXRob3V0IHByb21wdC4KLSAgICAgICAgICB0aGlzLmluaXRfY29u bmVjdGlvbihjcmVhdGVfdHJhbnNhY3Rpb24pOwotICAgICAgICB9IGVsc2UgaWYgKHhoci5kYXRh ICE9PSB1bmRlZmluZWQgJiYKLSAgICAgICAgICB4aHIuZGF0YS5kYXRhICYmICF4aHIuZGF0YS5k YXRhLmNvbm5faWQpIHsKLSAgICAgICAgICAvLyBpZiBjb25uX2lkIGlzIG51bGwgdGhlbiB0aGlz IGlzIG1haW50ZW5hbmNlIGRiLgotICAgICAgICAgIC8vIHNvIGF0dGVtcHQgY29ubmVjdGlvbiBj b25uZWN0IHdpdGhvdXQgcHJvbXB0LgotICAgICAgICAgIHRoaXMuaW5pdF9jb25uZWN0aW9uKGNy ZWF0ZV90cmFuc2FjdGlvbik7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgdGhpcy53YXJu X2JlZm9yZV9jb250aW51ZSgpOwotICAgICAgICB9Ci0gICAgICB9LAotICAgICAgaGFuZGxlX2Ny eXB0a2V5X21pc3Npbmc6IGZ1bmN0aW9uKCkgewotICAgICAgICBwZ0Jyb3dzZXIuc2V0X21hc3Rl cl9wYXNzd29yZCgnJywgKCk9PnsKLSAgICAgICAgICB0aGlzLndhcm5fYmVmb3JlX2NvbnRpbnVl KCk7Ci0gICAgICAgIH0pOwotICAgICAgfSwKLSAgICAgIHdhcm5fYmVmb3JlX2NvbnRpbnVlOiBm dW5jdGlvbigpIHsKLSAgICAgICAgdmFyIHNlbGYgPSB0aGlzOwotCi0gICAgICAgIE5vdGlmeS5j b25maXJtKAotICAgICAgICAgIGdldHRleHQoJ0Nvbm5lY3Rpb24gV2FybmluZycpLAotICAgICAg ICAgICc8cCBzdHlsZT0iZmxvYXQ6bGVmdCBtYXJnaW4tcmlnaHQ6MC41ZW0iPicrCi0gICAgICAg ICAgICAnPHNwYW4gY2xhc3M9ImZhIGZhLWV4Y2xhbWF0aW9uLXRyaWFuZ2xlIHdhcm4taWNvbiIg YXJpYS1oaWRkZW49InRydWUiIHJvbGU9ImltZyI+JysKLSAgICAgICAgICAgICc8L3NwYW4+JysK LSAgICAgICAgICAnPC9wPicrCi0gICAgICAgICAgJzxwIHN0eWxlPSJkaXNwbGF5OiBpbmxpbmUt YmxvY2s7Ij4nKwotICAgICAgICAgICAgJzxzcGFuIGNsYXNzPSJ3YXJuLWhlYWRlciI+JysKLSAg ICAgICAgICAgICAgZ2V0dGV4dCgnVGhlIGFwcGxpY2F0aW9uIGhhcyBsb3N0IHRoZSBkYXRhYmFz ZSBjb25uZWN0aW9uOicpKwotICAgICAgICAgICAgJzwvc3Bhbj4nKwotICAgICAgICAgICAgJzxi cj4nKwotICAgICAgICAgICAgJzxzcGFuIGNsYXNzPSJ3YXJuLWJvZHkiPicrCi0gICAgICAgICAg ICAgIGdldHRleHQoJ+KBgyBJZiB0aGUgY29ubmVjdGlvbiB3YXMgaWRsZSBpdCBtYXkgaGF2ZSBi ZWVuIGZvcmNpYmx5IGRpc2Nvbm5lY3RlZC4nKSsKLSAgICAgICAgICAgICc8YnI+JysKLSAgICAg ICAgICAgICAgZ2V0dGV4dCgn4oGDIFRoZSBhcHBsaWNhdGlvbiBzZXJ2ZXIgb3IgZGF0YWJhc2Ug c2VydmVyIG1heSBoYXZlIGJlZW4gcmVzdGFydGVkLicpKwotICAgICAgICAgICAgJzxicj4nKwot ICAgICAgICAgICAgICBnZXR0ZXh0KCfigYMgVGhlIHVzZXIgc2Vzc2lvbiBtYXkgaGF2ZSB0aW1l ZCBvdXQuJykrCi0gICAgICAgICAgICAnPC9zcGFuPicrCi0gICAgICAgICAgICAnPGJyPicrCi0g ICAgICAgICAgICAnPHNwYW4gY2xhc3M9Indhcm4tZm9vdGVyIj4nKwotICAgICAgICAgICAgZ2V0 dGV4dCgnRG8geW91IHdhbnQgdG8gY29udGludWUgYW5kIGVzdGFibGlzaCBhIG5ldyBzZXNzaW9u PycpKwotICAgICAgICAgICAgJzwvc3Bhbj4nKwotICAgICAgICAgICc8L3A+JywKLSAgICAgICAg ICBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgIGlmICgnZm4nIGluIHNlbGYuc3RhdGUpIHsKLSAg ICAgICAgICAgICAgdmFyIGZuID0gc2VsZi5zdGF0ZVsnZm4nXSwKLSAgICAgICAgICAgICAgICBh cmdzID0gc2VsZi5zdGF0ZVsnYXJncyddOwotICAgICAgICAgICAgICBzZWxmLnNhdmVTdGF0ZSgp OwotICAgICAgICAgICAgICBpZiAoYXJncy5pbmRleE9mKCdjb25uZWN0JykgPT0gLTEpIHsKLSAg ICAgICAgICAgICAgICBhcmdzLnB1c2goJ2Nvbm5lY3QnKTsKLSAgICAgICAgICAgICAgfQotICAg ICAgICAgICAgICBpZiAoZm4gaW4gc2VsZikgewotICAgICAgICAgICAgICAgIHNlbGZbZm5dLmFw cGx5KHNlbGYsIGFyZ3MpOwotICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAg IGNvbnNvbGUud2FybignVGhlIGNhbGxiYWNrIGlzIG5vdCB2YWxpZCBmb3IgdGhpcyBjb250ZXh0 Jyk7Ci0gICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgfQotICAgICAgICAgIH0sIGZ1bmN0 aW9uKCkgewotICAgICAgICAgICAgc2VsZi5zYXZlU3RhdGUoKTsKLSAgICAgICAgICB9LAotICAg ICAgICAgIGdldHRleHQoJ0NvbnRpbnVlJyksCi0gICAgICAgICAgZ2V0dGV4dCgnQ2FuY2VsJykK LSAgICAgICAgKTsKLSAgICAgIH0sCi0gICAgICBpbml0X2Nvbm5lY3Rpb246IGZ1bmN0aW9uKGNy ZWF0ZV90cmFuc2FjdGlvbiwgcGFzc2RhdGEpIHsKLSAgICAgICAgdmFyIHNlbGYgPSB0aGlzOwot ICAgICAgICAkLnBvc3QodXJsX2ZvcignTk9ERS1zZXJ2ZXIuY29ubmVjdF9pZCcsIHsKLSAgICAg ICAgICAnZ2lkJzogdGhpcy51cmxfcGFyYW1zLnNnaWQsCi0gICAgICAgICAgJ3NpZCc6IHRoaXMu dXJsX3BhcmFtcy5zaWQsCi0gICAgICAgIH0pLHBhc3NkYXRhKQotICAgICAgICAgIC5kb25lKGZ1 bmN0aW9uKHJlcykgewotICAgICAgICAgICAgaWYgKHJlcy5zdWNjZXNzID09IDEpIHsKLSAgICAg ICAgICAgICAgTm90aWZ5LnN1Y2Nlc3MocmVzLmluZm8pOwotICAgICAgICAgICAgICBpZiAoY3Jl YXRlX3RyYW5zYWN0aW9uKSB7Ci0gICAgICAgICAgICAgICAgc2VsZi5pbml0VHJhbnNhY3Rpb24o KTsKLSAgICAgICAgICAgICAgfSBlbHNlIGlmICgnZm4nIGluIHNlbGYuc3RhdGUpIHsKLSAgICAg ICAgICAgICAgICB2YXIgZm4gPSBzZWxmLnN0YXRlWydmbiddLAotICAgICAgICAgICAgICAgICAg YXJncyA9IHNlbGYuc3RhdGVbJ2FyZ3MnXTsKLSAgICAgICAgICAgICAgICBzZWxmLnNhdmVTdGF0 ZSgpOwotICAgICAgICAgICAgICAgIHNlbGZbZm5dLmFwcGx5KHNlbGYsIGFyZ3MpOwotICAgICAg ICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgfSkKLSAgICAgICAgICAuZmFpbChm dW5jdGlvbih4aHIpIHsKLSAgICAgICAgICAgIGxldCBtc2cgPSBodHRwRXJyb3JIYW5kbGVyLmhh bmRsZVF1ZXJ5VG9vbEFqYXhFcnJvcigKLSAgICAgICAgICAgICAgcGdBZG1pbiwgc2VsZiwgeGhy LCBudWxsLCBbXSwgZmFsc2UKLSAgICAgICAgICAgICk7Ci0gICAgICAgICAgICBpZiAobXNnKQot ICAgICAgICAgICAgICBhbGVydGlmeS5kbGdHZXRTZXJ2ZXJQYXNzKAotICAgICAgICAgICAgICAg IGdldHRleHQoJ0Nvbm5lY3QgdG8gU2VydmVyJyksIG1zZwotICAgICAgICAgICAgICApOwotICAg ICAgICAgIH0pOwotICAgICAgfSwKLSAgICAgIC8qIFRoaXMgZnVuY3Rpb24gaXMgdXNlZCB0byBj cmVhdGUgaW5zdGFuY2Ugb2YgU1FMRWRpdG9yVmlldywKLSAgICAgICAqIGNhbGwgdGhlIHJlbmRl ciBtZXRob2Qgb2YgdGhlIGdyaWQgdmlldyB0byByZW5kZXIgdGhlIHNsaWNrZ3JpZAotICAgICAg ICogaGVhZGVyIGFuZCBsb2FkaW5nIGljb24gYW5kIHN0YXJ0IGV4ZWN1dGlvbiBvZiB0aGUgc3Fs IHF1ZXJ5LgotICAgICAgICovCi0gICAgICBzdGFydDogZnVuY3Rpb24odHJhbnNJZCwgdXJsX3Bh cmFtcywgbGF5b3V0LCBtYWNyb3MpIHsKLSAgICAgICAgdmFyIHNlbGYgPSB0aGlzOwotCi0gICAg ICAgIHNlbGYuaXNfcXVlcnlfdG9vbCA9IHVybF9wYXJhbXMuaXNfcXVlcnlfdG9vbD09PSd0cnVl Jz90cnVlOmZhbHNlOwotICAgICAgICBzZWxmLnJvd3NfYWZmZWN0ZWQgPSAwOwotICAgICAgICBz ZWxmLm1hcmtlZF9saW5lX25vID0gMDsKLSAgICAgICAgc2VsZi5oYXNfbW9yZV9yb3dzID0gZmFs c2U7Ci0gICAgICAgIHNlbGYuZmV0Y2hpbmdfcm93cyA9IGZhbHNlOwotICAgICAgICBzZWxmLmNs b3NlX29uX3NhdmUgPSBmYWxzZTsKLSAgICAgICAgc2VsZi5jbG9zZV9vbl9pZGxlX3RyYW5zYWN0 aW9uID0gZmFsc2U7Ci0gICAgICAgIHNlbGYubGFzdF90cmFuc2FjdGlvbl9zdGF0dXMgPSAtMTsK LSAgICAgICAgc2VsZi5zZXJ2ZXJfdHlwZSA9IHVybF9wYXJhbXMuc2VydmVyX3R5cGU7Ci0gICAg ICAgIHNlbGYudXJsX3BhcmFtcyA9IHVybF9wYXJhbXM7Ci0gICAgICAgIHNlbGYuaXNfdHJhbnNh Y3Rpb25fYnV0dG9uc19kaXNhYmxlZCA9IHRydWU7Ci0gICAgICAgIHNlbGYuaXNfc2F2ZV9yZXN1 bHRzX3RvX2ZpbGVfZGlzYWJsZWQgPSB0cnVlOwotCi0gICAgICAgIC8vIFdlIGRvIG5vdCBhbGxv dyB0byBjYWxsIHRoZSBzdGFydCBtdWx0aXBsZSB0aW1lcy4KLSAgICAgICAgaWYgKHNlbGYuZ3Jp ZFZpZXcpCi0gICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgIHNlbGYuZ3JpZFZpZXcgPSBuZXcg U1FMRWRpdG9yVmlldyh7Ci0gICAgICAgICAgZWw6IHNlbGYuY29udGFpbmVyLAotICAgICAgICAg IGhhbmRsZXI6IHNlbGYsCi0gICAgICAgICAgbGF5b3V0OiBsYXlvdXQsCi0gICAgICAgIH0pOwot ICAgICAgICBzZWxmLnRyYW5zSWQgPSBzZWxmLmdyaWRWaWV3LnRyYW5zSWQgPSB0cmFuc0lkOwot ICAgICAgICBzZWxmLm1hY3JvcyA9IHNlbGYuZ3JpZFZpZXcubWFjcm9zID0gbWFjcm9zOwotCi0g ICAgICAgIHNlbGYuZ3JpZFZpZXcuY3VycmVudF9maWxlID0gdW5kZWZpbmVkOwotCi0gICAgICAg IC8vIFJlbmRlciB0aGUgaGVhZGVyCi0gICAgICAgIHNlbGYuZ3JpZFZpZXcucmVuZGVyKCk7Ci0K LSAgICAgICAgLy8gTGlzdGVuIG9uIGV2ZW50cyB0byBzaG93L2hpZGUgbG9hZGluZy1pY29uIGFu ZCBjaGFuZ2UgbWVzc2FnZXMuCi0gICAgICAgIC8vIFBhcmFsbGVsbHksIGFsc28gdXBkYXRlIHRo ZSBib3R0b20gbWVzc2FnZS4KLSAgICAgICAgbGV0IGxvYWRpbmdEaXYgPSBzZWxmLmdyaWRWaWV3 LmRhdGFfb3V0cHV0X3BhbmVsLiRjb250YWluZXIuZmluZCgnI2ZldGNoaW5nX2RhdGEnKSwKLSAg ICAgICAgICBtc2dEaXYgPSBsb2FkaW5nRGl2LmZpbmQoJy5zcWwtZWRpdG9yLWJ1c3ktdGV4dCcp LAotICAgICAgICAgIHN0YXR1c0RpdiA9ICQoJy5zcWwtZWRpdG9yLWJ1c3ktdGV4dC1zdGF0dXMn KTsKLQotICAgICAgICBzZWxmLm9uKCdwZ2FkbWluLXNxbGVkaXRvcjpsb2FkaW5nLWljb246bWVz c2FnZScsIGZ1bmN0aW9uKG1zZykgewotICAgICAgICAgIG1zZ0Rpdi50ZXh0KG1zZyk7Ci0gICAg ICAgICAgc3RhdHVzRGl2LnRleHQobXNnKTsKLSAgICAgICAgfSkub24oJ3BnYWRtaW4tc3FsZWRp dG9yOmxvYWRpbmctaWNvbjpzaG93JywgZnVuY3Rpb24obXNnKSB7Ci0gICAgICAgICAgbG9hZGlu Z0Rpdi5yZW1vdmVDbGFzcygnZC1ub25lJyk7Ci0gICAgICAgICAgc3RhdHVzRGl2LnJlbW92ZUNs YXNzKCdkLW5vbmUnKTsKLQotICAgICAgICAgIG1zZ0Rpdi50ZXh0KG1zZyk7Ci0gICAgICAgICAg c3RhdHVzRGl2LnRleHQobXNnKTsKLSAgICAgICAgfSkub24oJ3BnYWRtaW4tc3FsZWRpdG9yOmxv YWRpbmctaWNvbjpoaWRlJywgZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgbG9hZGluZ0Rpdi5hZGRD bGFzcygnZC1ub25lJyk7Ci0gICAgICAgICAgc3RhdHVzRGl2LmFkZENsYXNzKCdkLW5vbmUnKTsK LSAgICAgICAgfSk7Ci0KLSAgICAgICAgJCgnI21haW5fbG9hZGVyJykuYWRkQ2xhc3MoJ2Qtbm9u ZScpOwotICAgICAgICBzZWxmLnRyaWdnZXIoJ3BnYWRtaW4tc3FsZWRpdG9yOmxvYWRpbmctaWNv bjpoaWRlJyk7Ci0KLSAgICAgICAgc2VsZi5ncmlkVmlldy5zZXRfZWRpdG9yX3RpdGxlKCcoJyAr IGdldHRleHQoJ09idGFpbmluZyBjb25uZWN0aW9uLi4uJykgKyBgICR7Xy51bmVzY2FwZSh1cmxf cGFyYW1zLnRpdGxlKX1gKTsKLQotICAgICAgICBsZXQgYWZ0ZXJDb25uID0gZnVuY3Rpb24oKSB7 Ci0gICAgICAgICAgbGV0IGVuYWJsZUJ0bnMgPSBbXTsKLQotICAgICAgICAgIGlmKHNlbGYuaXNf cXVlcnlfdG9vbCl7Ci0gICAgICAgICAgICBlbmFibGVCdG5zID0gWycjYnRuLWZsYXNoJywgJyNi dG4tZXhwbGFpbicsICcjYnRuLWV4cGxhaW4tYW5hbHl6ZSddOwotICAgICAgICAgIH0gZWxzZSB7 Ci0gICAgICAgICAgICBlbmFibGVCdG5zID0gWycjYnRuLWZsYXNoJ107Ci0gICAgICAgICAgfQot Ci0gICAgICAgICAgZW5hYmxlQnRucy5mb3JFYWNoKChzZWxlY3Rvcik9PnsKLSAgICAgICAgICAg ICQoc2VsZWN0b3IpLnByb3AoJ2Rpc2FibGVkJywgZmFsc2UpOwotICAgICAgICAgIH0pOwotCi0g ICAgICAgICAgJCgnI2J0bi1jb25uLXN0YXR1cyBpJykucmVtb3ZlQ2xhc3MoJ29idGFpbmluZy1j b25uJyk7Ci0KLSAgICAgICAgICB2YXIgdHJlZV9kYXRhID0gcGdXaW5kb3cuZGVmYXVsdC5wZ0Fk bWluLkJyb3dzZXIudHJlZS5nZXRUcmVlTm9kZUhpZXJhcmNoeShwZ1dpbmRvdy5kZWZhdWx0LnBn QWRtaW4uQnJvd3Nlci50cmVlLnNlbGVjdGVkKCkpOwotICAgICAgICAgIGxldCBjb25uX3RpdGxl ID0gYCAke18udW5lc2NhcGUodXJsX3BhcmFtcy50aXRsZSl9YDsKLSAgICAgICAgICBzZWxmLmdy aWRWaWV3LnNldF9lZGl0b3JfdGl0bGUoXy51bmVzY2FwZShjb25uX3RpdGxlKSk7Ci0gICAgICAg ICAgbGV0IGNvbm5lY3Rpb25fZGF0YSA9IHsKLSAgICAgICAgICAgICdzZXJ2ZXJfZ3JvdXAnOiBz ZWxmLmdyaWRWaWV3LmhhbmRsZXIudXJsX3BhcmFtcy5zZ2lkLAotICAgICAgICAgICAgJ3NlcnZl cic6IHNlbGYuZ3JpZFZpZXcuaGFuZGxlci51cmxfcGFyYW1zLnNpZCwKLSAgICAgICAgICAgICdk YXRhYmFzZSc6IHNlbGYuZ3JpZFZpZXcuaGFuZGxlci51cmxfcGFyYW1zLmRpZCwKLSAgICAgICAg ICAgICd1c2VyJzogdHJlZV9kYXRhLnNlcnZlci51c2VyLm5hbWUsCi0gICAgICAgICAgICAncm9s ZSc6IG51bGwsCi0gICAgICAgICAgICAndGl0bGUnOiBfLnVuZXNjYXBlKHVybF9wYXJhbXMudGl0 bGUpLAotICAgICAgICAgICAgJ2Nvbm5fdGl0bGUnOiBfLnVuZXNjYXBlKGNvbm5fdGl0bGUpLAot ICAgICAgICAgICAgJ2lzX2FsbG93X25ld19jb25uZWN0aW9uJzogZmFsc2UsCi0gICAgICAgICAg ICAnZGF0YWJhc2VfbmFtZSc6IF8udW5lc2NhcGUodHJlZV9kYXRhLmRhdGFiYXNlLmxhYmVsKSwK LSAgICAgICAgICAgICdzZXJ2ZXJfbmFtZSc6IF8udW5lc2NhcGUodHJlZV9kYXRhLnNlcnZlci5s YWJlbCksCi0gICAgICAgICAgICAnaXNfc2VsZWN0ZWQnOiB0cnVlLAotICAgICAgICAgIH07Ci0g ICAgICAgICAgZGVsZXRlIGNvbm5lY3Rpb25fZGF0YS5wYXNzd29yZDsKLSAgICAgICAgICBzZWxm LmdyaWRWaWV3LmNvbm5lY3Rpb25fbGlzdC51bnNoaWZ0KGNvbm5lY3Rpb25fZGF0YSk7Ci0gICAg ICAgICAgc2VsZi5ncmlkVmlldy5yZW5kZXJfY29ubmVjdGlvbihzZWxmLmdyaWRWaWV3LmNvbm5l Y3Rpb25fbGlzdCk7Ci0gICAgICAgIH07Ci0KLSAgICAgICAgcGdCcm93c2VyLkV2ZW50cy5vbign cGdhZG1pbjpxdWVyeV90b29sOmNvbm5lY3RlZDonICsgdHJhbnNJZCwgYWZ0ZXJDb25uKTsKLSAg ICAgICAgcGdCcm93c2VyLkV2ZW50cy5vbigncGdhZG1pbjpxdWVyeV90b29sOmNvbm5lY3RlZF9m YWlsOicgKyB0cmFuc0lkLCBhZnRlckNvbm4pOwotCi0gICAgICAgIHBnQnJvd3Nlci5FdmVudHMu b24oJ3BnYWRtaW46cXVlcnlfdG9vbDpjb25uZWN0ZWQ6JyArIHRyYW5zSWQsIChyZXNfZGF0YSk9 PnsKLSAgICAgICAgICBzZWxmLmdyaWRWaWV3LnNldF9zZXJ2ZXJfdmVyc2lvbihyZXNfZGF0YS5z ZXJ2ZXJWZXJzaW9uKTsKLSAgICAgICAgfSk7Ci0KLSAgICAgICAgcGdCcm93c2VyLkV2ZW50cy5v bigncGdhZG1pbjpxdWVyeV90b29sOmNvbm5lY3RlZF9mYWlsOicgKyB0cmFuc0lkLCAoeGhyLCBl cnJvcik9PnsKLSAgICAgICAgICBOb3RpZnkucGdSZXNwRXJyb3JOb3RpZnkoeGhyLCBlcnJvcik7 Ci0gICAgICAgIH0pOwotCi0gICAgICAgIHNlbGYuaW5pdFRyYW5zYWN0aW9uKCk7Ci0KLSAgICAg ICAgLyogd2NEb2NrZXIgZm9jdXNlcyBvbiB3aW5kb3cgYWx3YXlzLCBhbmQgYWxsIG91ciBzaG9y dGN1dHMgYXJlCi0gICAgICAgICAqIGJpbmQgdG8gZWRpdG9yLXBhbmVsLiBTbyB3aGVuIHdlIHVz ZSB3Y0RvY2tlciBmb2N1cywgZWRpdG9yLXBhbmVsCi0gICAgICAgICAqIGxvc2VzIGZvY3VzIGFu ZCBldmVudHMgZG9uJ3Qgd29yay4KLSAgICAgICAgICovCi0gICAgICAgICQod2luZG93KS5vbign a2V5ZG93bicsIChlKT0+ewotICAgICAgICAgIGlmKCgkKCcuc3FsLWVkaXRvcicpLmZpbmQoZS50 YXJnZXQpLmxlbmd0aCAhPT0gMCB8fCBlLnRhcmdldCA9PSAkKCdib2R5LndjRGVza3RvcCcpWzBd KSAmJiBzZWxmLmdyaWRWaWV3LmtleUFjdGlvbikgewotICAgICAgICAgICAgc2VsZi5ncmlkVmll dy5rZXlBY3Rpb24oZSk7Ci0gICAgICAgICAgfQotICAgICAgICB9KTsKLQotICAgICAgICBzZWxm LmluaXRfZXZlbnRzKCk7Ci0gICAgICAgIGlmIChzZWxmLmlzX3F1ZXJ5X3Rvb2wpIHsKLSAgICAg ICAgICAvLyBGZXRjaCB0aGUgU1FMIGZvciBTY3JpcHRzIChlZzogQ1JFQVRFL1VQREFURS9ERUxF VEUvU0VMRUNUKQotICAgICAgICAgIC8vIENhbGwgQUpBWCBvbmx5IGlmIHNjcmlwdCB0eXBlIHVy bCBpcyBwcmVzZW50Ci0gICAgICAgICAgaWYgKHVybF9wYXJhbXMucXVlcnlfdXJsKSB7Ci0gICAg ICAgICAgICAkLmFqYXgoewotICAgICAgICAgICAgICB1cmw6IHVybF9wYXJhbXMucXVlcnlfdXJs LAotICAgICAgICAgICAgICB0eXBlOidHRVQnLAotICAgICAgICAgICAgfSkKLSAgICAgICAgICAg ICAgLmRvbmUoZnVuY3Rpb24ocmVzKSB7Ci0gICAgICAgICAgICAgICAgc2VsZi5ncmlkVmlldy5x dWVyeV90b29sX29iai5yZWZyZXNoKCk7Ci0gICAgICAgICAgICAgICAgaWYgKHJlcykgewotICAg ICAgICAgICAgICAgICAgc2VsZi5ncmlkVmlldy5xdWVyeV90b29sX29iai5zZXRWYWx1ZShyZXMp OwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgfSkKLSAgICAgICAgICAgICAgLmZh aWwoZnVuY3Rpb24oanF4KSB7Ci0gICAgICAgICAgICAgICAgbGV0IG1zZyA9ICcnOwotCi0gICAg ICAgICAgICAgICAgbXNnID0gaHR0cEVycm9ySGFuZGxlci5oYW5kbGVRdWVyeVRvb2xBamF4RXJy b3IoCi0gICAgICAgICAgICAgICAgICBwZ0FkbWluLCBzZWxmLCBqcXgsIG51bGwsIFtdLCBmYWxz ZQotICAgICAgICAgICAgICAgICk7Ci0gICAgICAgICAgICAgICAgaWYgKG1zZykgewotICAgICAg ICAgICAgICAgICAgdmFyIG9wZW5fbmV3X3RhYiA9IHNlbGYuYnJvd3Nlcl9wcmVmZXJlbmNlcy5u ZXdfYnJvd3Nlcl90YWJfb3BlbjsKLSAgICAgICAgICAgICAgICAgIGlmKG9wZW5fbmV3X3RhYiAm JiBvcGVuX25ld190YWIuaW5jbHVkZXMoJ3F0JykpIHsKLSAgICAgICAgICAgICAgICAgICAgcGdC cm93c2VyLnJlcG9ydF9lcnJvcihnZXR0ZXh0KCdFcnJvciBmZXRjaGluZyBTUUwgZm9yIHNjcmlw dCAtICVzLicsIGpxeC5zdGF0dXNUZXh0KSwganF4LnJlc3BvbnNlSlNPTi5lcnJvcm1zZywgdW5k ZWZpbmVkLCB3aW5kb3cuY2xvc2UpOwotICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAg ICAgICAgICAgICAgICAgcGdCcm93c2VyLnJlcG9ydF9lcnJvcihnZXR0ZXh0KCdFcnJvciBmZXRj aGluZyBTUUwgZm9yIHNjcmlwdCAtICVzLicsIGpxeC5zdGF0dXNUZXh0KSwganF4LnJlc3BvbnNl SlNPTi5lcnJvcm1zZywgdW5kZWZpbmVkLCBzZWxmLmNsb3NlLmJpbmQoc2VsZikpOwotICAgICAg ICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgICB9KTsKLSAg ICAgICAgICB9IGVsc2UgaWYodXJsX3BhcmFtcy5zcWxfaWQpIHsKLSAgICAgICAgICAgIGxldCBz cWxWYWx1ZSA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHVybF9wYXJhbXMuc3FsX2lkKTsKLSAgICAg ICAgICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKHVybF9wYXJhbXMuc3FsX2lkKTsKLSAgICAg ICAgICAgIGlmKHNxbFZhbHVlKSB7Ci0gICAgICAgICAgICAgIHNlbGYuZ3JpZFZpZXcucXVlcnlf dG9vbF9vYmouc2V0VmFsdWUoc3FsVmFsdWUpOwotICAgICAgICAgICAgfQotICAgICAgICAgIH0K LSAgICAgICAgfQotICAgICAgICBlbHNlIHsKLSAgICAgICAgICAvLyBEaXNhYmxlIGNvZGVtaXJy b3IgYnkgc2V0dGluZyByZWFkT25seSBvcHRpb24gdG8gdHJ1ZSwgYmFja2dyb3VuZCB0byBkYXJr LCBhbmQgY3Vyc29yLCBoaWRkZW4uCi0gICAgICAgICAgc2VsZi5ncmlkVmlldy5xdWVyeV90b29s X29iai5zZXRPcHRpb24oJ3JlYWRPbmx5JywgdHJ1ZSk7Ci0gICAgICAgICAgdmFyIGNtID0gc2Vs Zi5ncmlkVmlldy5xdWVyeV90b29sX29iai5nZXRXcmFwcGVyRWxlbWVudCgpOwotICAgICAgICAg IGlmIChjbSkgewotICAgICAgICAgICAgY20uY2xhc3NOYW1lICs9ICcgYmctZ3JheS1saWdodGVy IG9wYWNpdHktNSBoaWRlLWN1cnNvci13b3JrYXJvdW5kJzsKLSAgICAgICAgICB9Ci0gICAgICAg ICAgc2VsZi5kaXNhYmxlX3Rvb2xfYnV0dG9ucyh0cnVlKTsKLSAgICAgICAgICBwZ0Jyb3dzZXIu RXZlbnRzLm9uKCdwZ2FkbWluOnF1ZXJ5X3Rvb2w6Y29ubmVjdGVkOicrIHRyYW5zSWQsKCk9PnsK LSAgICAgICAgICAgIHNlbGYuY2hlY2tfZGF0YV9jaGFuZ2VzX3RvX2V4ZWN1dGVfcXVlcnkoKTsK LSAgICAgICAgICB9KTsKLSAgICAgICAgfQotICAgICAgfSwKLQotICAgICAgc2V0X3ZhbHVlX3Rv X2VkaXRvcjogZnVuY3Rpb24ocXVlcnkpIHsKLSAgICAgICAgaWYgKHRoaXMuZ3JpZFZpZXcgJiYg dGhpcy5ncmlkVmlldy5xdWVyeV90b29sX29iaiAmJiAhXy5pc1VuZGVmaW5lZChxdWVyeSkgJiYg cXVlcnkgIT0gJycpIHsKLSAgICAgICAgICB0aGlzLmdyaWRWaWV3LnF1ZXJ5X3Rvb2xfb2JqLnNl dFZhbHVlKHF1ZXJ5KTsKLSAgICAgICAgfQotICAgICAgfSwKLQotICAgICAgaW5pdF9ldmVudHM6 IGZ1bmN0aW9uKCkgewotICAgICAgICB2YXIgc2VsZiA9IHRoaXM7Ci0gICAgICAgIC8vIExpc3Rl biB0byB0aGUgZmlsZSBtYW5hZ2VyIGJ1dHRvbiBldmVudHMKLSAgICAgICAgcGdBZG1pbi5Ccm93 c2VyLkV2ZW50cy5vbigncGdhZG1pbi1zdG9yYWdlOmZpbmlzaF9idG46c2VsZWN0X2ZpbGUnLCBz ZWxmLl9zZWxlY3RfZmlsZV9oYW5kbGVyLCBzZWxmKTsKLSAgICAgICAgcGdBZG1pbi5Ccm93c2Vy LkV2ZW50cy5vbigncGdhZG1pbi1zdG9yYWdlOmZpbmlzaF9idG46Y3JlYXRlX2ZpbGUnLCBzZWxm Ll9zYXZlX2ZpbGVfaGFuZGxlciwgc2VsZik7Ci0KLSAgICAgICAgLy8gTGlzdGVuIHRvIHRoZSBj b2RlbWlycm9yIG9uIHRleHQgY2hhbmdlIGV2ZW50Ci0gICAgICAgIC8vIG9ubHkgaW4gcXVlcnkg ZWRpdG9yIHRvb2wKLSAgICAgICAgaWYgKHNlbGYuaXNfcXVlcnlfdG9vbCkgewotICAgICAgICAg IHNlbGYuZ3JpZFZpZXcucXVlcnlfdG9vbF9vYmoub24oJ2NoYW5nZScsIHNlbGYuX29uX3F1ZXJ5 X2NoYW5nZS5iaW5kKHNlbGYpKTsKLSAgICAgICAgfQotCi0gICAgICAgIC8vIExpc3RlbiBvbiBl dmVudHMgY29tZSBmcm9tIFNRTEVkaXRvclZpZXcgZm9yIHRoZSBidXR0b24gY2xpY2tlZC4KLSAg ICAgICAgc2VsZi5vbigncGdhZG1pbi1zcWxlZGl0b3I6YnV0dG9uOmxvYWRfZmlsZScsIHNlbGYu X2xvYWRfZmlsZSwgc2VsZik7Ci0gICAgICAgIHNlbGYub24oJ3BnYWRtaW4tc3FsZWRpdG9yOmJ1 dHRvbjpzYXZlX2ZpbGUnLCBzZWxmLl9zYXZlX2ZpbGUsIHNlbGYpOwotICAgICAgICBzZWxmLm9u KCdwZ2FkbWluLXNxbGVkaXRvcjpidXR0b246ZGVsZXRlcm93Jywgc2VsZi5fZGVsZXRlLCBzZWxm KTsKLSAgICAgICAgc2VsZi5vbigncGdhZG1pbi1zcWxlZGl0b3I6YnV0dG9uOnNob3dfZmlsdGVy Jywgc2VsZi5fc2hvd19maWx0ZXIsIHNlbGYpOwotICAgICAgICBzZWxmLm9uKCdwZ2FkbWluLXNx bGVkaXRvcjpidXR0b246c2hvd19uZXdfY29ubmVjdGlvbicsIHNlbGYuX3Nob3dfbmV3X2Nvbm5l Y3Rpb24sIHNlbGYpOwotICAgICAgICBzZWxmLm9uKCdwZ2FkbWluLXNxbGVkaXRvcjpidXR0b246 aW5jbHVkZV9maWx0ZXInLCBzZWxmLl9pbmNsdWRlX2ZpbHRlciwgc2VsZik7Ci0gICAgICAgIHNl bGYub24oJ3BnYWRtaW4tc3FsZWRpdG9yOmJ1dHRvbjpleGNsdWRlX2ZpbHRlcicsIHNlbGYuX2V4 Y2x1ZGVfZmlsdGVyLCBzZWxmKTsKLSAgICAgICAgc2VsZi5vbigncGdhZG1pbi1zcWxlZGl0b3I6 YnV0dG9uOnJlbW92ZV9maWx0ZXInLCBzZWxmLl9yZW1vdmVfZmlsdGVyLCBzZWxmKTsKLSAgICAg ICAgc2VsZi5vbigncGdhZG1pbi1zcWxlZGl0b3I6YnV0dG9uOmNvcHlfcm93Jywgc2VsZi5fY29w eV9yb3csIHNlbGYpOwotICAgICAgICBzZWxmLm9uKCdwZ2FkbWluLXNxbGVkaXRvcjpidXR0b246 Y29weV9yb3dfd2l0aF9oZWFkZXInLCBzZWxmLl9jb3B5X3Jvd193aXRoX2hlYWRlciwgc2VsZik7 Ci0gICAgICAgIHNlbGYub24oJ3BnYWRtaW4tc3FsZWRpdG9yOmJ1dHRvbjpwYXN0ZV9yb3cnLCBz ZWxmLl9wYXN0ZV9yb3csIHNlbGYpOwotICAgICAgICBzZWxmLm9uKCdwZ2FkbWluLXNxbGVkaXRv cjpidXR0b246bGltaXQnLCBzZWxmLl9zZXRfbGltaXQsIHNlbGYpOwotICAgICAgICBzZWxmLm9u KCdwZ2FkbWluLXNxbGVkaXRvcjpidXR0b246Y2FuY2VsLXF1ZXJ5Jywgc2VsZi5fY2FuY2VsX3F1 ZXJ5LCBzZWxmKTsKLSAgICAgICAgc2VsZi5vbigncGdhZG1pbi1zcWxlZGl0b3I6YnV0dG9uOmF1 dG9fcm9sbGJhY2snLCBzZWxmLl9hdXRvX3JvbGxiYWNrLCBzZWxmKTsKLSAgICAgICAgc2VsZi5v bigncGdhZG1pbi1zcWxlZGl0b3I6YnV0dG9uOmF1dG9fY29tbWl0Jywgc2VsZi5fYXV0b19jb21t aXQsIHNlbGYpOwotICAgICAgICBzZWxmLm9uKCdwZ2FkbWluLXNxbGVkaXRvcjpidXR0b246ZXhw bGFpbi12ZXJib3NlJywgc2VsZi5fZXhwbGFpbl92ZXJib3NlLCBzZWxmKTsKLSAgICAgICAgc2Vs Zi5vbigncGdhZG1pbi1zcWxlZGl0b3I6YnV0dG9uOmV4cGxhaW4tY29zdHMnLCBzZWxmLl9leHBs YWluX2Nvc3RzLCBzZWxmKTsKLSAgICAgICAgc2VsZi5vbigncGdhZG1pbi1zcWxlZGl0b3I6YnV0 dG9uOmV4cGxhaW4tYnVmZmVycycsIHNlbGYuX2V4cGxhaW5fYnVmZmVycywgc2VsZik7Ci0gICAg ICAgIHNlbGYub24oJ3BnYWRtaW4tc3FsZWRpdG9yOmJ1dHRvbjpleHBsYWluLXRpbWluZycsIHNl bGYuX2V4cGxhaW5fdGltaW5nLCBzZWxmKTsKLSAgICAgICAgc2VsZi5vbigncGdhZG1pbi1zcWxl ZGl0b3I6YnV0dG9uOmV4cGxhaW4tc3VtbWFyeScsIHNlbGYuX2V4cGxhaW5fc3VtbWFyeSwgc2Vs Zik7Ci0gICAgICAgIHNlbGYub24oJ3BnYWRtaW4tc3FsZWRpdG9yOmJ1dHRvbjpleHBsYWluLXNl dHRpbmdzJywgc2VsZi5fZXhwbGFpbl9zZXR0aW5ncywgc2VsZik7Ci0gICAgICAgIHNlbGYub24o J3BnYWRtaW4tc3FsZWRpdG9yOmJ1dHRvbjpzaG93X3F1ZXJ5X3Rvb2wnLCBzZWxmLl9zaG93X3F1 ZXJ5X3Rvb2wsIHNlbGYpOwotICAgICAgICAvLyBJbmRlbnRhdGlvbiByZWxhdGVkCi0gICAgICAg IHNlbGYub24oJ3BnYWRtaW4tc3FsZWRpdG9yOmluZGVudF9zZWxlY3RlZF9jb2RlJywgc2VsZi5f aW5kZW50X3NlbGVjdGVkX2NvZGUsIHNlbGYpOwotICAgICAgICBzZWxmLm9uKCdwZ2FkbWluLXNx bGVkaXRvcjp1bmluZGVudF9zZWxlY3RlZF9jb2RlJywgc2VsZi5fdW5pbmRlbnRfc2VsZWN0ZWRf Y29kZSwgc2VsZik7Ci0gICAgICAgIC8vIEZvcm1hdAotICAgICAgICBzZWxmLm9uKCdwZ2FkbWlu LXNxbGVkaXRvcjpmb3JtYXRfc3FsJywgc2VsZi5fZm9ybWF0X3NxbCwgc2VsZik7Ci0gICAgICAg IHNlbGYub24oJ3BnYWRtaW4tc3FsZWRpdG9yOmJ1dHRvbjptYW5hZ2VfbWFjcm9zJywgc2VsZi5f bWFuYWdlX21hY3Jvcywgc2VsZik7Ci0gICAgICAgIHNlbGYub24oJ3BnYWRtaW4tc3FsZWRpdG9y OmJ1dHRvbjpleGVjdXRlX21hY3JvJywgc2VsZi5fZXhlY3V0ZV9tYWNybywgc2VsZik7Ci0KLSAg ICAgICAgd2luZG93LnBhcmVudC4kKHdpbmRvdy5wYXJlbnQuZG9jdW1lbnQpLm9uKCdwZ2FkbWlu LXNxbGVkaXRvcjpyb3dzLWNvcGllZCcsIHNlbGYuX2NvcGllZF9pbl9vdGhlcl9zZXNzaW9uKTsK LSAgICAgIH0sCi0KLSAgICAgIC8vIENoZWNrcyBpZiB0aGVyZSBpcyBhbnkgZGlydHkgZGF0YSBp biB0aGUgZ3JpZCBiZWZvcmUgZXhlY3V0aW5nIGEgcXVlcnkKLSAgICAgIGNoZWNrX2RhdGFfY2hh bmdlc190b19leGVjdXRlX3F1ZXJ5OiBmdW5jdGlvbihleHBsYWluX3ByZWZpeD1udWxsLCBzaG91 bGRSZWNvbm5lY3Q9ZmFsc2UsIG1hY3JvSWQ9dW5kZWZpbmVkKSB7Ci0gICAgICAgIHZhciBzZWxm ID0gdGhpczsKLQotICAgICAgICAvLyBDaGVjayBpZiB0aGUgZGF0YSBncmlkIGhhcyBhbnkgY2hh bmdlcyBiZWZvcmUgcnVubmluZyBxdWVyeQotICAgICAgICBpZiAoXy5oYXMoc2VsZiwgJ2RhdGFf c3RvcmUnKSAmJgotICAgICAgICAgIChfLnNpemUoc2VsZi5kYXRhX3N0b3JlLmFkZGVkKSB8fAot ICAgICAgICAgICAgXy5zaXplKHNlbGYuZGF0YV9zdG9yZS51cGRhdGVkKSB8fAotICAgICAgICAg ICAgXy5zaXplKHNlbGYuZGF0YV9zdG9yZS5kZWxldGVkKSkKLSAgICAgICAgKSB7Ci0gICAgICAg ICAgTm90aWZ5LmNvbmZpcm0oZ2V0dGV4dCgnVW5zYXZlZCBjaGFuZ2VzJyksCi0gICAgICAgICAg ICBnZXR0ZXh0KCdUaGUgZGF0YSBoYXMgYmVlbiBtb2RpZmllZCwgYnV0IG5vdCBzYXZlZC4gQXJl IHlvdSBzdXJlIHlvdSB3aXNoIHRvIGRpc2NhcmQgdGhlIGNoYW5nZXM/JyksCi0gICAgICAgICAg ICBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgICAgLy8gVGhlIHVzZXIgZG9lcyBub3Qgd2FudCB0 byBzYXZlLCBqdXN0IGNvbnRpbnVlCi0gICAgICAgICAgICAgIGlmIChtYWNyb0lkICE9PSB1bmRl ZmluZWQpIHsKLSAgICAgICAgICAgICAgICBzZWxmLl9leGVjdXRlX21hY3JvX3F1ZXJ5KGV4cGxh aW5fcHJlZml4LCBzaG91bGRSZWNvbm5lY3QsIG1hY3JvSWQpOwotICAgICAgICAgICAgICB9Ci0g ICAgICAgICAgICAgIGVsc2UgaWYoc2VsZi5pc19xdWVyeV90b29sKSB7Ci0gICAgICAgICAgICAg ICAgc2VsZi5fZXhlY3V0ZV9zcWxfcXVlcnkoZXhwbGFpbl9wcmVmaXgsIHNob3VsZFJlY29ubmVj dCk7Ci0gICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICAg ICAgc2VsZi5fZXhlY3V0ZV92aWV3X2RhdGFfcXVlcnkoKTsKLSAgICAgICAgICAgICAgfQotICAg ICAgICAgICAgfSwKLSAgICAgICAgICAgIGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgICAvLyBT dG9wLCBVc2VyIHdhbnRzIHRvIHNhdmUKLSAgICAgICAgICAgICAgJCgnI2J0bi1mbGFzaCcpLnBy b3AoJ2Rpc2FibGVkJywgZmFsc2UpOwotICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAg ICAgICAgIH0KLSAgICAgICAgICApOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgIGlmICht YWNyb0lkICE9PSB1bmRlZmluZWQpIHsKLSAgICAgICAgICAgIHNlbGYuX2V4ZWN1dGVfbWFjcm9f cXVlcnkoZXhwbGFpbl9wcmVmaXgsIHNob3VsZFJlY29ubmVjdCwgbWFjcm9JZCk7Ci0gICAgICAg ICAgfQotICAgICAgICAgIGVsc2UgaWYoc2VsZi5pc19xdWVyeV90b29sKSB7Ci0gICAgICAgICAg ICBzZWxmLl9leGVjdXRlX3NxbF9xdWVyeShleHBsYWluX3ByZWZpeCwgc2hvdWxkUmVjb25uZWN0 KTsKLSAgICAgICAgICB9Ci0gICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICBzZWxmLl9leGVj dXRlX3ZpZXdfZGF0YV9xdWVyeSgpOwotICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAgfSwK LQotICAgICAgLy8gTWFrZXMgdGhlIGFqYXggY2FsbCB0byBleGVjdXRlIHRoZSBzcWwgcXVlcnkg aW4gVmlldyBEYXRhIG1vZGUKLSAgICAgIF9leGVjdXRlX3ZpZXdfZGF0YV9xdWVyeTogZnVuY3Rp b24oKSB7Ci0gICAgICAgIHZhciBzZWxmID0gdGhpcywKLSAgICAgICAgICB1cmwgPSB1cmxfZm9y KCdzcWxlZGl0b3Iudmlld19kYXRhX3N0YXJ0JywgewotICAgICAgICAgICAgJ3RyYW5zX2lkJzog c2VsZi50cmFuc0lkLAotICAgICAgICAgIH0pOwotCi0gICAgICAgIHNlbGYucXVlcnlfc3RhcnRf dGltZSA9IG5ldyBEYXRlKCk7Ci0gICAgICAgIHNlbGYucm93c19hZmZlY3RlZCA9IDA7Ci0gICAg ICAgIHNlbGYuX2luaXRfcG9sbGluZ19mbGFncygpOwotCi0gICAgICAgIHNlbGYuaGFzX21vcmVf cm93cyA9IGZhbHNlOwotICAgICAgICBzZWxmLmZldGNoaW5nX3Jvd3MgPSBmYWxzZTsKLQotICAg ICAgICBzZWxmLnRyaWdnZXIoCi0gICAgICAgICAgJ3BnYWRtaW4tc3FsZWRpdG9yOmxvYWRpbmct aWNvbjpzaG93JywKLSAgICAgICAgICBnZXR0ZXh0KCdSdW5uaW5nIHF1ZXJ5Li4uJykKLSAgICAg ICAgKTsKLQotICAgICAgICAkKCcjYnRuLWZsYXNoJykucHJvcCgnZGlzYWJsZWQnLCB0cnVlKTsK LSAgICAgICAgc2VsZi5lbmFibGVfZGlzYWJsZV9kb3dubG9hZF9idG4odHJ1ZSk7Ci0KLSAgICAg ICAgc2VsZi50cmlnZ2VyKAotICAgICAgICAgICdwZ2FkbWluLXNxbGVkaXRvcjpsb2FkaW5nLWlj b246bWVzc2FnZScsCi0gICAgICAgICAgZ2V0dGV4dCgnV2FpdGluZyBmb3IgdGhlIHF1ZXJ5IHRv IGNvbXBsZXRlLi4uJykKLSAgICAgICAgKTsKLQotICAgICAgICBpZiAoYXJndW1lbnRzLmxlbmd0 aCA+IDAgJiYKLSAgICAgICAgICBhcmd1bWVudHNbYXJndW1lbnRzLmxlbmd0aCAtIDFdID09ICdj b25uZWN0JykgewotICAgICAgICAgIHVybCArPSAnP2Nvbm5lY3Q9MSc7Ci0gICAgICAgIH0KLQot ICAgICAgICAkLmFqYXgoewotICAgICAgICAgIHVybDogdXJsLAotICAgICAgICAgIG1ldGhvZDog J0dFVCcsCi0gICAgICAgIH0pCi0gICAgICAgICAgLmRvbmUoZnVuY3Rpb24ocmVzKSB7Ci0gICAg ICAgICAgICBpZiAocmVzLmRhdGEuc3RhdHVzKSB7Ci0gICAgICAgICAgICAgIHNlbGYuY2FuX2Vk aXQgPSByZXMuZGF0YS5jYW5fZWRpdDsKLSAgICAgICAgICAgICAgc2VsZi5jYW5fZmlsdGVyID0g cmVzLmRhdGEuY2FuX2ZpbHRlcjsKLSAgICAgICAgICAgICAgc2VsZi5pbmZvX25vdGlmaWVyX3Rp bWVvdXQgPSByZXMuZGF0YS5pbmZvX25vdGlmaWVyX3RpbWVvdXQ7Ci0KLSAgICAgICAgICAgICAg Ly8gU2V0IHRoZSBzcWwgcXVlcnkgdG8gdGhlIFNRTCBwYW5lbAotICAgICAgICAgICAgICBzZWxm LmdyaWRWaWV3LnF1ZXJ5X3Rvb2xfb2JqLnNldFZhbHVlKHJlcy5kYXRhLnNxbCk7Ci0gICAgICAg ICAgICAgIHNlbGYucXVlcnkgPSByZXMuZGF0YS5zcWw7Ci0KLQotICAgICAgICAgICAgICAvKiBJ ZiBmaWx0ZXIgaXMgYXBwbGllZCB0aGVuIHJlbW92ZSBjbGFzcyAnYnRuLXNlY29uZGFyeScKLSAg ICAgICAgICAgICAqIGFuZCBhZGQgJ2J0bi1wcmltYXJ5JyB0byBjaGFuZ2UgdGhlIGNvbG91ciBv ZiB0aGUgYnV0dG9uLgotICAgICAgICAgICAgICovCi0gICAgICAgICAgICAgIGlmIChzZWxmLmNh bl9maWx0ZXIgJiYgcmVzLmRhdGEuZmlsdGVyX2FwcGxpZWQpIHsKLSAgICAgICAgICAgICAgICAk KCcjYnRuLWZpbHRlcicpLnJlbW92ZUNsYXNzKCdidG4tc2Vjb25kYXJ5Jyk7Ci0gICAgICAgICAg ICAgICAgJCgnI2J0bi1maWx0ZXItZHJvcGRvd24nKS5yZW1vdmVDbGFzcygnYnRuLXNlY29uZGFy eScpOwotICAgICAgICAgICAgICAgICQoJyNidG4tZmlsdGVyJykuYWRkQ2xhc3MoJ2J0bi1wcmlt YXJ5Jyk7Ci0gICAgICAgICAgICAgICAgJCgnI2J0bi1maWx0ZXItZHJvcGRvd24nKS5hZGRDbGFz cygnYnRuLXByaW1hcnknKTsKLSAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAg ICAkKCcjYnRuLWZpbHRlcicpLnJlbW92ZUNsYXNzKCdidG4tcHJpbWFyeScpOwotICAgICAgICAg ICAgICAgICQoJyNidG4tZmlsdGVyLWRyb3Bkb3duJykucmVtb3ZlQ2xhc3MoJ2J0bi1wcmltYXJ5 Jyk7Ci0gICAgICAgICAgICAgICAgJCgnI2J0bi1maWx0ZXInKS5hZGRDbGFzcygnYnRuLXNlY29u ZGFyeScpOwotICAgICAgICAgICAgICAgICQoJyNidG4tZmlsdGVyLWRyb3Bkb3duJykuYWRkQ2xh c3MoJ2J0bi1zZWNvbmRhcnknKTsKLSAgICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAgICQo JyNidG4tY29weS1yb3cnKS5wcm9wKCdkaXNhYmxlZCcsIHRydWUpOwotICAgICAgICAgICAgICAk KCcjYnRuLXBhc3RlLXJvdycpLnByb3AoJ2Rpc2FibGVkJywgdHJ1ZSk7Ci0KLSAgICAgICAgICAg ICAgLy8gU2V0IHRoZSBjb21ibyBib3ggdmFsdWUKLSAgICAgICAgICAgICAgJCgnLmxpbWl0Jyku dmFsKHJlcy5kYXRhLmxpbWl0KTsKLQotICAgICAgICAgICAgICAvLyBJZiBzdGF0dXMgaXMgVHJ1 ZSB0aGVuIHBvbGwgdGhlIHJlc3VsdC4KLSAgICAgICAgICAgICAgc2VsZi5fcG9sbCgpOwotICAg ICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgc2VsZi50cmlnZ2VyKCdwZ2FkbWluLXNx bGVkaXRvcjpsb2FkaW5nLWljb246aGlkZScpOwotICAgICAgICAgICAgICBzZWxmLnVwZGF0ZV9t c2dfaGlzdG9yeShmYWxzZSwgcmVzLmRhdGEucmVzdWx0KTsKLSAgICAgICAgICAgIH0KLSAgICAg ICAgICB9KQotICAgICAgICAgIC5mYWlsKGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgICAgIHNlbGYu dHJpZ2dlcigncGdhZG1pbi1zcWxlZGl0b3I6bG9hZGluZy1pY29uOmhpZGUnKTsKLSAgICAgICAg ICAgIGxldCBtc2cgPSBodHRwRXJyb3JIYW5kbGVyLmhhbmRsZVF1ZXJ5VG9vbEFqYXhFcnJvcigK LSAgICAgICAgICAgICAgcGdBZG1pbiwgc2VsZiwgZSwgJ19leGVjdXRlX3ZpZXdfZGF0YV9xdWVy eScsIFtdLCB0cnVlCi0gICAgICAgICAgICApOwotICAgICAgICAgICAgaWYgKG1zZykKLSAgICAg ICAgICAgICAgc2VsZi51cGRhdGVfbXNnX2hpc3RvcnkoZmFsc2UsIG1zZyk7Ci0gICAgICAgICAg fSk7Ci0gICAgICB9LAotCi0gICAgICAvLyBFeGVjdXRlcyBzcWwgcXVlcnkgIGZvciBtYWNyb2lu IHRoZSBlZGl0b3IgaW4gUXVlcnkgVG9vbCBtb2RlCi0gICAgICBfZXhlY3V0ZV9tYWNyb19xdWVy eTogZnVuY3Rpb24oZXhwbGFpbl9wcmVmaXgsIHNob3VsZFJlY29ubmVjdCwgbWFjcm9JZCkgewot ICAgICAgICB2YXIgc2VsZiA9IHRoaXM7Ci0KLSAgICAgICAgc2VsZi5oYXNfbW9yZV9yb3dzID0g ZmFsc2U7Ci0gICAgICAgIHNlbGYuZmV0Y2hpbmdfcm93cyA9IGZhbHNlOwotCi0gICAgICAgICQu YWpheCh7Ci0gICAgICAgICAgdXJsOiB1cmxfZm9yKCdzcWxlZGl0b3IuZ2V0X21hY3JvJywgeydt YWNyb19pZCc6IG1hY3JvSWQsICd0cmFuc19pZCc6IHNlbGYudHJhbnNJZH0pLAotICAgICAgICAg IG1ldGhvZDogJ0dFVCcsCi0gICAgICAgICAgY29udGVudFR5cGU6ICdhcHBsaWNhdGlvbi9qc29u JywKLSAgICAgICAgICBkYXRhVHlwZTogJ2pzb24nLAotICAgICAgICB9KQotICAgICAgICAgIC5k b25lKGZ1bmN0aW9uKHJlcykgewotICAgICAgICAgICAgaWYgKHJlcykgewotICAgICAgICAgICAg ICAvLyBSZXBsYWNlIHRoZSBwbGFjZSBob2xkZXIKLSAgICAgICAgICAgICAgY29uc3QgcmVnZXgg PSAvXCRTRUxFQ1RJT05cJC9naTsKLSAgICAgICAgICAgICAgbGV0IHF1ZXJ5ID0gIHJlcy5zcWwu cmVwbGFjZShyZWdleCwgc2VsZi5ncmlkVmlldy5xdWVyeV90b29sX29iai5nZXRTZWxlY3Rpb24o KSk7Ci0KLSAgICAgICAgICAgICAgY29uc3QgZXhlY3V0ZVF1ZXJ5ID0gbmV3IEV4ZWN1dGVRdWVy eS5FeGVjdXRlUXVlcnkoc2VsZiwgcGdBZG1pbi5Ccm93c2VyLlVzZXJNYW5hZ2VtZW50KTsKLSAg ICAgICAgICAgICAgZXhlY3V0ZVF1ZXJ5LnBvbGwgPSBwZ0Jyb3dzZXIub3ZlcnJpZGVfYWN0aXZp dHlfZXZlbnRfZGVjb3JhdG9yKGV4ZWN1dGVRdWVyeS5wb2xsKS5iaW5kKGV4ZWN1dGVRdWVyeSk7 Ci0gICAgICAgICAgICAgIGV4ZWN1dGVRdWVyeS5leGVjdXRlKHF1ZXJ5LCBleHBsYWluX3ByZWZp eCwgc2hvdWxkUmVjb25uZWN0KTsKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAg IC8vIExldCBpdCBiZSBmb3Igbm93Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgfSkKLSAgICAg ICAgICAuZmFpbChmdW5jdGlvbigpIHsKLSAgICAgICAgICAvKiBmYWlsdXJlIHNob3VsZCBub3Qg YmUgaWdub3JlZCAqLwotICAgICAgICAgIH0pOwotCi0gICAgICB9LAotCi0gICAgICAvLyBFeGVj dXRlcyBzcWwgcXVlcnkgaW4gdGhlIGVkaXRvciBpbiBRdWVyeSBUb29sIG1vZGUKLSAgICAgIF9l eGVjdXRlX3NxbF9xdWVyeTogZnVuY3Rpb24oZXhwbGFpbl9wcmVmaXgsIHNob3VsZFJlY29ubmVj dCkgewotICAgICAgICB2YXIgc2VsZiA9IHRoaXMsIHNxbCA9ICcnOwotCi0gICAgICAgIHNlbGYu aGFzX21vcmVfcm93cyA9IGZhbHNlOwotICAgICAgICBzZWxmLmZldGNoaW5nX3Jvd3MgPSBmYWxz ZTsKLQotICAgICAgICBpZiAoIV8uaXNVbmRlZmluZWQoc2VsZi5zcGVjaWFsX3NxbCkpIHsKLSAg ICAgICAgICBzcWwgPSBzZWxmLnNwZWNpYWxfc3FsOwotICAgICAgICB9IGVsc2UgewotICAgICAg ICAgIC8qIElmIGNvZGUgaXMgc2VsZWN0ZWQgaW4gdGhlIGNvZGUgbWlycm9yIHRoZW4gZXhlY3V0 ZQotICAgICAgICAgICAqIHRoZSBzZWxlY3RlZCBwYXJ0IGVsc2UgZXhlY3V0ZSB0aGUgY29tcGxl dGUgY29kZS4KLSAgICAgICAgICAgKi8KLSAgICAgICAgICB2YXIgc2VsZWN0ZWRfY29kZSA9IHNl bGYuZ3JpZFZpZXcucXVlcnlfdG9vbF9vYmouZ2V0U2VsZWN0aW9uKCk7Ci0gICAgICAgICAgaWYg KHNlbGVjdGVkX2NvZGUubGVuZ3RoID4gMCkKLSAgICAgICAgICAgIHNxbCA9IHNlbGVjdGVkX2Nv ZGU7Ci0gICAgICAgICAgZWxzZQotICAgICAgICAgICAgc3FsID0gc2VsZi5ncmlkVmlldy5xdWVy eV90b29sX29iai5nZXRWYWx1ZSgpOwotICAgICAgICB9Ci0KLSAgICAgICAgY29uc3QgZXhlY3V0 ZVF1ZXJ5ID0gbmV3IEV4ZWN1dGVRdWVyeS5FeGVjdXRlUXVlcnkodGhpcywgcGdBZG1pbi5Ccm93 c2VyLlVzZXJNYW5hZ2VtZW50KTsKLSAgICAgICAgZXhlY3V0ZVF1ZXJ5LnBvbGwgPSBwZ0Jyb3dz ZXIub3ZlcnJpZGVfYWN0aXZpdHlfZXZlbnRfZGVjb3JhdG9yKGV4ZWN1dGVRdWVyeS5wb2xsKS5i aW5kKGV4ZWN1dGVRdWVyeSk7Ci0gICAgICAgIGV4ZWN1dGVRdWVyeS5leGVjdXRlKHNxbCwgZXhw bGFpbl9wcmVmaXgsIHNob3VsZFJlY29ubmVjdCk7Ci0gICAgICB9LAotCi0gICAgICAvLyBUaGlz IGlzIGEgd3JhcHBlciB0byBjYWxsX3JlbmRlciBmdW5jdGlvbgotICAgICAgLy8gV2UgbmVlZCB0 aGlzIGJlY2F1c2Ugd2UgaGF2ZSBzZXBhcmF0ZWQgY29sdW1ucyByb3V0ZSAmIHJlc3VsdCByb3V0 ZQotICAgICAgLy8gV2UgbmVlZCB0byBjb21iaW5lIGJvdGggcmVzdWx0IGhlcmUgaW4gd3JhcHBl ciBiZWZvcmUgcmVuZGVyaW5nIGdyaWQKLSAgICAgIGNhbGxfcmVuZGVyX2FmdGVyX3BvbGw6IGZ1 bmN0aW9uKHF1ZXJ5UmVzdWx0KSB7Ci0gICAgICAgIGNhbGxSZW5kZXJBZnRlclBvbGwuY2FsbFJl bmRlckFmdGVyUG9sbCh0aGlzLCBOb3RpZnksIHF1ZXJ5UmVzdWx0KTsKLSAgICAgIH0sCi0KLQot ICAgICAgLyogVGhpcyBmdW5jdGlvbiBtYWtlcyB0aGUgYWpheCBjYWxsIHRvIHBvbGwgdGhlIHJl c3VsdCwKLSAgICAgICAqIGlmIHN0YXR1cyBpcyBCdXN5IHRoZW4gcmVjdXJzaXZlbHkgY2FsbCB0 aGUgcG9sbCBmdW5jdGlvbgotICAgICAgICogdGlsbCB0aGUgc3RhdHVzIGlzICdTdWNjZXNzJyBv ciAnTm90Q29ubmVjdGVkJy4gSWYgc3RhdHVzIGlzCi0gICAgICAgKiAnU3VjY2VzcycgdGhlbiBj YWxsIHRoZSByZW5kZXIgbWV0aG9kIHRvIHJlbmRlciB0aGUgZGF0YS4KLSAgICAgICAqLwotICAg ICAgX3BvbGw6IGZ1bmN0aW9uKCkgewotICAgICAgICBjb25zdCBleGVjdXRlUXVlcnkgPSBuZXcg RXhlY3V0ZVF1ZXJ5LkV4ZWN1dGVRdWVyeSh0aGlzLCBwZ0FkbWluLkJyb3dzZXIuVXNlck1hbmFn ZW1lbnQpOwotICAgICAgICBleGVjdXRlUXVlcnkuZGVsYXllZFBvbGwodGhpcyk7Ci0gICAgICB9 LAotCi0gICAgICAvKiBUaGlzIGZ1bmN0aW9uIGlzIHVzZWQgdG8gY3JlYXRlIHRoZSBzbGlja2dy aWQgY29sdW1ucwotICAgICAgICogYW5kIHJlbmRlciB0aGUgZGF0YSBpbiB0aGUgc2xpY2tncmlk LgotICAgICAgICovCi0gICAgICBfcmVuZGVyOiBmdW5jdGlvbihkYXRhKSB7Ci0gICAgICAgIHZh ciBzZWxmID0gdGhpczsKLSAgICAgICAgc2VsZi5jb2xpbmZvID0gZGF0YS5jb2xpbmZvOwotICAg ICAgICBzZWxmLnByaW1hcnlfa2V5cyA9IChfLmlzRW1wdHkoZGF0YS5wcmltYXJ5X2tleXMpICYm IGRhdGEuaGFzX29pZHMpID8gZGF0YS5vaWRzIDogZGF0YS5wcmltYXJ5X2tleXM7Ci0gICAgICAg IHNlbGYuY2xpZW50X3ByaW1hcnlfa2V5ID0gZGF0YS5jbGllbnRfcHJpbWFyeV9rZXk7Ci0gICAg ICAgIHNlbGYuY2VsbF9zZWxlY3RlZCA9IGZhbHNlOwotICAgICAgICBzZWxmLnNlbGVjdGVkX21v ZGVsID0gbnVsbDsKLSAgICAgICAgc2VsZi5jaGFuZ2VkTW9kZWxzID0gW107Ci0gICAgICAgIHNl bGYuaGFzX29pZHMgPSBkYXRhLmhhc19vaWRzOwotICAgICAgICBzZWxmLm9pZHMgPSBkYXRhLm9p ZHM7Ci0gICAgICAgICQoJy5zcWwtZWRpdG9yLWV4cGxhaW4nKS5odG1sKEVNUFRZX0VYUExBSU5f Q09OVEVOVCk7Ci0gICAgICAgIHNlbGYuZXhwbGFpbl9wbGFuID0gZmFsc2U7Ci0KLSAgICAgICAg LyogSWYgb2JqZWN0IGRvbid0IGhhdmUgcHJpbWFyeSBrZXlzIHRoZW4gc2V0IHRoZQotICAgICAg ICAgKiBjYW5fZWRpdCBmbGFnIHRvIGZhbHNlLgotICAgICAgICAgKi8KLSAgICAgICAgaWYgKChz ZWxmLnByaW1hcnlfa2V5cyA9PT0gbnVsbCB8fCBzZWxmLnByaW1hcnlfa2V5cyA9PT0gdW5kZWZp bmVkIHx8Ci0gICAgICAgICAgICBfLnNpemUoc2VsZi5wcmltYXJ5X2tleXMpID09PSAwKSAmJiBz ZWxmLmhhc19vaWRzID09IGZhbHNlKQotICAgICAgICAgIHNlbGYuY2FuX2VkaXQgPSBmYWxzZTsK LSAgICAgICAgZWxzZQotICAgICAgICAgIHNlbGYuY2FuX2VkaXQgPSB0cnVlOwotCi0gICAgICAg IC8qIElmIHVzZXIgY2FuIGZpbHRlciB0aGUgZGF0YSB0aGVuIHdlIHNob3VsZCBlbmFibGVkCi0g ICAgICAgICAqIEZpbHRlciBhbmQgTGltaXQgYnV0dG9ucy4KLSAgICAgICAgICovCi0gICAgICAg IGlmIChzZWxmLmNhbl9maWx0ZXIpIHsKLSAgICAgICAgICAkKCcubGltaXQnKS5wcm9wKCdkaXNh YmxlZCcsIGZhbHNlKTsKLSAgICAgICAgICAkKCcubGltaXQnKS5hZGRDbGFzcygnbGltaXQtZW5h YmxlZCcpOwotICAgICAgICAgICQoJyNidG4tZmlsdGVyJykucHJvcCgnZGlzYWJsZWQnLCBmYWxz ZSk7Ci0gICAgICAgICAgJCgnI2J0bi1maWx0ZXItZHJvcGRvd24nKS5wcm9wKCdkaXNhYmxlZCcs IGZhbHNlKTsKLSAgICAgICAgfQotCi0gICAgICAgIC8vIE5vIGRhdGEgdG8gc2F2ZSBpbml0aWFs bHkKLSAgICAgICAgJCgnI2J0bi1zYXZlLWRhdGEnKS5wcm9wKCdkaXNhYmxlZCcsIHRydWUpOwot Ci0gICAgICAgIC8vIEluaXRpYWwgc2V0dGluZ3MgZm9yIGRlbGV0ZSByb3csIGNvcHkgcm93IGFu ZCBwYXN0ZSByb3cgYnV0dG9ucy4KLSAgICAgICAgJCgnI2J0bi1kZWxldGUtcm93JykucHJvcCgn ZGlzYWJsZWQnLCB0cnVlKTsKLQotICAgICAgICBpZiAoIXNlbGYuY2FuX2VkaXQpIHsKLSAgICAg ICAgICAkKCcjYnRuLWRlbGV0ZS1yb3cnKS5wcm9wKCdkaXNhYmxlZCcsIHRydWUpOwotICAgICAg ICAgICQoJyNidG4tY29weS1yb3cnKS5wcm9wKCdkaXNhYmxlZCcsIHRydWUpOwotICAgICAgICAg ICQoJyNidG4tcGFzdGUtcm93JykucHJvcCgnZGlzYWJsZWQnLCB0cnVlKTsKLSAgICAgICAgfQot Ci0gICAgICAgIC8vIEZldGNoIHRoZSBjb2x1bW5zIG1ldGFkYXRhCi0gICAgICAgIHNlbGYuX2Zl dGNoX2NvbHVtbl9tZXRhZGF0YS5jYWxsKAotICAgICAgICAgIHNlbGYsIGRhdGEsCi0gICAgICAg ICAgZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICB2YXIgc2VsZl9jb2wgPSB0aGlzOwotCi0gICAg ICAgICAgICBzZWxmX2NvbC50cmlnZ2VyKAotICAgICAgICAgICAgICAncGdhZG1pbi1zcWxlZGl0 b3I6bG9hZGluZy1pY29uOm1lc3NhZ2UnLAotICAgICAgICAgICAgICBnZXR0ZXh0KCdMb2FkaW5n IGRhdGEgZnJvbSB0aGUgZGF0YWJhc2Ugc2VydmVyIGFuZCByZW5kZXJpbmcuLi4nKSwKLSAgICAg ICAgICAgICAgc2VsZl9jb2wKLSAgICAgICAgICAgICk7Ci0KLSAgICAgICAgICAgIC8vIFNob3cg bWVzc2FnZSBpbiBtZXNzYWdlIGFuZCBoaXN0b3J5IHRhYiBpbiBjYXNlIG9mIHF1ZXJ5IHRvb2wK LSAgICAgICAgICAgIHNlbGZfY29sLnRvdGFsX3RpbWUgPSBjYWxjdWxhdGVRdWVyeVJ1blRpbWUu Y2FsY3VsYXRlUXVlcnlSdW5UaW1lKAotICAgICAgICAgICAgICBzZWxmX2NvbC5xdWVyeV9zdGFy dF90aW1lLAotICAgICAgICAgICAgICBzZWxmX2NvbC5xdWVyeV9lbmRfdGltZQotICAgICAgICAg ICAgKTsKLSAgICAgICAgICAgIHZhciBtc2cxID0gZ2V0dGV4dCgnU3VjY2Vzc2Z1bGx5IHJ1bi4g VG90YWwgcXVlcnkgcnVudGltZTogJXMuJyxzZWxmX2NvbC50b3RhbF90aW1lKTsKLSAgICAgICAg ICAgIHZhciBtc2cyID0gZ2V0dGV4dCgnJXMgcm93cyBhZmZlY3RlZC4nLHNlbGZfY29sLnJvd3Nf YWZmZWN0ZWQpOwotCi0gICAgICAgICAgICAvLyBEaXNwbGF5IHRoZSBub3RpZmllciBpZiB0aGUg dGltZW91dCBpcyBzZXQgdG8gPj0gMAotICAgICAgICAgICAgaWYgKHNlbGZfY29sLmluZm9fbm90 aWZpZXJfdGltZW91dCA+PSAwKSB7Ci0gICAgICAgICAgICAgIE5vdGlmeS5zdWNjZXNzKG1zZzEg KyAnICcgKyBtc2cyLCBzZWxmX2NvbC5pbmZvX25vdGlmaWVyX3RpbWVvdXQpOwotICAgICAgICAg ICAgfQotCi0gICAgICAgICAgICB2YXIgX21zZyA9IG1zZzEgKyAnXG4nICsgbXNnMjsKLQotCi0g ICAgICAgICAgICAvLyBJZiB0aGVyZSBpcyBhZGRpdGlvbmFsIG1lc3NhZ2VzIGZyb20gc2VydmVy IHRoZW4gYWRkIGl0IHRvIG1lc3NhZ2UKLSAgICAgICAgICAgIGlmICghXy5pc051bGwoZGF0YS5h ZGRpdGlvbmFsX21lc3NhZ2VzKSAmJgotICAgICAgICAgICAgICAhXy5pc1VuZGVmaW5lZChkYXRh LmFkZGl0aW9uYWxfbWVzc2FnZXMpKSB7Ci0gICAgICAgICAgICAgIF9tc2cgPSBkYXRhLmFkZGl0 aW9uYWxfbWVzc2FnZXMgKyAnXG4nICsgX21zZzsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAg ICAgc2VsZl9jb2wudXBkYXRlX21zZ19oaXN0b3J5KHRydWUsIF9tc2csIGZhbHNlKTsKLQotICAg ICAgICAgICAgLyogQWRkIHRoZSBkYXRhIHRvIHRoZSBjb2xsZWN0aW9uIGFuZCByZW5kZXIgdGhl IGdyaWQuCi0gICAgICAgICAgICAgKiBJbiBjYXNlIG9mIEV4cGxhaW4gZHJhdyB0aGUgZ3JhcGgg b24gZXhwbGFpbiBwYW5lbAotICAgICAgICAgICAgICogYW5kIGFkZCBqc29uIGZvcm1hdHRlZCBk YXRhIHRvIGNvbGxlY3Rpb24gYW5kIHJlbmRlci4KLSAgICAgICAgICAgICAqLwotICAgICAgICAg ICAgdmFyIGV4cGxhaW5fZGF0YV9hcnJheSA9IFtdLAotICAgICAgICAgICAgICBleHBsYWluX2Rh dGFfanNvbiA9IG51bGw7Ci0KLSAgICAgICAgICAgIGlmKGRhdGEucmVzdWx0ICYmICFfLmlzRW1w dHkoc2VsZl9jb2wuY29saW5mbykKLSAgICAgICAgICAgICAmJiBzZWxmX2NvbC5jb2xpbmZvWzBd Lm5hbWUgPT0gJ1FVRVJZIFBMQU4nICYmICFfLmlzRW1wdHkoZGF0YS50eXBlcykKLSAgICAgICAg ICAgICAmJiBkYXRhLnR5cGVzWzBdICYmIGRhdGEudHlwZXNbMF0udHlwbmFtZSA9PT0gJ2pzb24n KSB7Ci0gICAgICAgICAgICAgIC8qIGpzb24gaXMgc2VudCBhcyB0ZXh0LCBwYXJzZSBpdCAqLwot ICAgICAgICAgICAgICBleHBsYWluX2RhdGFfanNvbiA9IEpTT04ucGFyc2UoZGF0YS5yZXN1bHRb MF1bMF0pOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBpZiAoZXhwbGFpbl9kYXRhX2pz b24gJiYgZXhwbGFpbl9kYXRhX2pzb25bMF0gJiYKLSAgICAgICAgICAgICAgZXhwbGFpbl9kYXRh X2pzb25bMF0uaGFzT3duUHJvcGVydHkoJ1BsYW4nKSAmJgotICAgICAgICAgICAgICBfLmlzT2Jq ZWN0KGV4cGxhaW5fZGF0YV9qc29uWzBdWydQbGFuJ10pCi0gICAgICAgICAgICApIHsKLSAgICAg ICAgICAgICAgdmFyIGV4cGxhaW5fZGF0YSA9IFtKU09OLnN0cmluZ2lmeShleHBsYWluX2RhdGFf anNvbiwgbnVsbCwgMildOwotICAgICAgICAgICAgICBleHBsYWluX2RhdGFfYXJyYXkucHVzaChl eHBsYWluX2RhdGEpOwotICAgICAgICAgICAgICAvLyBNYWtlIHN1cmUgLSB0aGUgJ0RhdGEgT3V0 cHV0JyBwYW5lbCBpcyB2aXNpYmxlLCBiZWZvcmUgLSB3ZQotICAgICAgICAgICAgICAvLyBzdGFy dCByZW5kZXJpbmcgdGhlIGdyaWQuCi0gICAgICAgICAgICAgIHNlbGZfY29sLmdyaWRWaWV3LmRh dGFfb3V0cHV0X3BhbmVsLmZvY3VzKCk7Ci0gICAgICAgICAgICAgIHNldFRpbWVvdXQoCi0gICAg ICAgICAgICAgICAgZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICAgICAgICBzZWxmX2NvbC5ncmlk Vmlldy5yZW5kZXJfZ3JpZCgKLSAgICAgICAgICAgICAgICAgICAgZXhwbGFpbl9kYXRhX2FycmF5 LCBzZWxmX2NvbC5jb2x1bW5zLCBzZWxmX2NvbC5jYW5fZWRpdCwKLSAgICAgICAgICAgICAgICAg ICAgc2VsZl9jb2wuY2xpZW50X3ByaW1hcnlfa2V5LCAwCi0gICAgICAgICAgICAgICAgICApOwot ICAgICAgICAgICAgICAgICAgLy8gTWFrZSBzdXJlIC0gdGhlICdFeHBsYWluJyBwYW5lbCBpcyB2 aXNpYmxlLCBiZWZvcmUgLSB3ZQotICAgICAgICAgICAgICAgICAgLy8gc3RhcnQgcmVuZGVyaW5n IHRoZSBncmlkLgotICAgICAgICAgICAgICAgICAgc2VsZl9jb2wuZ3JpZFZpZXcuZXhwbGFpbl9w YW5lbC5mb2N1cygpOwotICAgICAgICAgICAgICAgICAgcGdFeHBsYWluLkRyYXdKU09OUGxhbigK LSAgICAgICAgICAgICAgICAgICAgJCgnLnNxbC1lZGl0b3ItZXhwbGFpbicpLCBleHBsYWluX2Rh dGFfanNvbgotICAgICAgICAgICAgICAgICAgKTsKLSAgICAgICAgICAgICAgICB9LCAxMAotICAg ICAgICAgICAgICApOwotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgLy8gTWFr ZSBzdXJlIC0gdGhlICdEYXRhIE91dHB1dCcgcGFuZWwgaXMgdmlzaWJsZSwgYmVmb3JlIC0gd2UK LSAgICAgICAgICAgICAgLy8gc3RhcnQgcmVuZGVyaW5nIHRoZSBncmlkLgotICAgICAgICAgICAg ICBzZWxmX2NvbC5ncmlkVmlldy5kYXRhX291dHB1dF9wYW5lbC5mb2N1cygpOwotICAgICAgICAg ICAgICBzZXRUaW1lb3V0KAotICAgICAgICAgICAgICAgIGZ1bmN0aW9uKCkgewotICAgICAgICAg ICAgICAgICAgc2VsZl9jb2wuZ3JpZFZpZXcucmVuZGVyX2dyaWQoZGF0YS5yZXN1bHQsIHNlbGZf Y29sLmNvbHVtbnMsCi0gICAgICAgICAgICAgICAgICAgIHNlbGZfY29sLmNhbl9lZGl0LCBzZWxm X2NvbC5jbGllbnRfcHJpbWFyeV9rZXksIGRhdGEucm93c19hZmZlY3RlZCk7Ci0gICAgICAgICAg ICAgICAgfSwgMTAKLSAgICAgICAgICAgICAgKTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAg ICAgLy8gSGlkZSB0aGUgbG9hZGluZyBpY29uCi0gICAgICAgICAgICBzZWxmX2NvbC50cmlnZ2Vy KCdwZ2FkbWluLXNxbGVkaXRvcjpsb2FkaW5nLWljb246aGlkZScpOwotCi0gICAgICAgICAgICAv LyBFbmFibGUvRGlzYWJsZSBkb3dubG9hZCBidXR0b24gYmFzZWQgb24gcXVlcnkgcmVzdWx0Ci0g ICAgICAgICAgICBpZiAoIV8uaXNVbmRlZmluZWQoZGF0YSkgJiYgQXJyYXkuaXNBcnJheShkYXRh LnJlc3VsdCkgJiYgZGF0YS5yZXN1bHQubGVuZ3RoID4gMCkgewotICAgICAgICAgICAgICBzZWxm LmVuYWJsZV9kaXNhYmxlX2Rvd25sb2FkX2J0bihmYWxzZSk7Ci0gICAgICAgICAgICB9Ci0gICAg ICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgICAgc2VsZi5lbmFibGVfZGlzYWJsZV9kb3dubG9h ZF9idG4odHJ1ZSk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgfS5iaW5kKHNlbGYpCi0gICAg ICAgICk7Ci0gICAgICB9LAotCi0gICAgICAvLyBUaGlzIGZ1bmN0aW9uIGNyZWF0ZXMgdGhlIGNv bHVtbnMgYXMgcmVxdWlyZWQgYnkgdGhlIGJhY2tncmlkCi0gICAgICBfZmV0Y2hfY29sdW1uX21l dGFkYXRhOiBmdW5jdGlvbihkYXRhLCBjYikgewotICAgICAgICB2YXIgY29saW5mbyA9IGRhdGEu Y29saW5mbywKLSAgICAgICAgICBwcmltYXJ5X2tleXMgPSBkYXRhLnByaW1hcnlfa2V5cywKLSAg ICAgICAgICBjb2x1bW5zID0gW10sCi0gICAgICAgICAgc2VsZiA9IHRoaXM7Ci0gICAgICAgIC8v IFN0b3JlIHBnX3R5cGVzIGluIGFuIGFycmF5Ci0gICAgICAgIHZhciBwZ190eXBlcyA9IG5ldyBB cnJheSgpOwotICAgICAgICBfLmVhY2goZGF0YS50eXBlcywgZnVuY3Rpb24ocikgewotICAgICAg ICAgIHBnX3R5cGVzW3Iub2lkXSA9IFtyLnR5cG5hbWVdOwotICAgICAgICB9KTsKLQotICAgICAg ICAvLyBDcmVhdGUgY29sdW1ucyByZXF1aXJlZCBieSBzbGljayBncmlkIHRvIHJlbmRlcgotICAg ICAgICBfLmVhY2goY29saW5mbywgZnVuY3Rpb24oYykgewotICAgICAgICAgIHZhciBpc19wcmlt YXJ5X2tleSA9IGZhbHNlLAotICAgICAgICAgICAgaXNfZWRpdGFibGUgPSBzZWxmLmNhbl9lZGl0 ICYmICghc2VsZi5pc19xdWVyeV90b29sIHx8IGMuaXNfZWRpdGFibGUpOwotCi0gICAgICAgICAg Ly8gQ2hlY2sgd2hldGhlciB0aGlzIGNvbHVtbiBpcyBhIHByaW1hcnkga2V5Ci0gICAgICAgICAg aWYgKGlzX2VkaXRhYmxlICYmIF8uc2l6ZShwcmltYXJ5X2tleXMpID4gMCkgewotICAgICAgICAg ICAgXy5lYWNoKHByaW1hcnlfa2V5cywgZnVuY3Rpb24odmFsdWUsIGtleSkgewotICAgICAgICAg ICAgICBpZiAoa2V5ID09PSBjLm5hbWUpCi0gICAgICAgICAgICAgICAgaXNfcHJpbWFyeV9rZXkg PSB0cnVlOwotICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgfQotCi0gICAgICAgICAgLy8gVG8g c2hvdyBjb2x1bW4gbGFiZWwgYW5kIGRhdGEgdHlwZSBpbiBtdWx0aWxpbmUsCi0gICAgICAgICAg Ly8gVGhlIGVsZW1lbnRzIHNob3VsZCBiZSBwdXQgaW5zaWRlIHRoZSBkaXYuCi0gICAgICAgICAg Ly8gQ3JlYXRlIGNvbHVtbiBsYWJlbCBhbmQgdHlwZS4KLSAgICAgICAgICB2YXIgY29sX3R5cGUg PSAnJywKLSAgICAgICAgICAgIGNvbHVtbl9sYWJlbCA9ICcnLAotICAgICAgICAgICAgY29sX2Nl bGw7Ci0gICAgICAgICAgdmFyIHR5cGUgPSAndW5rbm93bic7Ci0gICAgICAgICAgaWYgKHBnX3R5 cGVzW2MudHlwZV9jb2RlXSkgewotICAgICAgICAgICAgdHlwZSA9IHBnX3R5cGVzW2MudHlwZV9j b2RlXVswXTsKLSAgICAgICAgICB9IGVsc2UgaWYgKHBnX3R5cGVzW3BnX3R5cGVzLmxlbmd0aCAt IDFdWzBdKSB7Ci0gICAgICAgICAgICB0eXBlID0gcGdfdHlwZXNbcGdfdHlwZXMubGVuZ3RoIC0g MV1bMF07Ci0gICAgICAgICAgfQotCi0gICAgICAgICAgaWYgKCFpc19wcmltYXJ5X2tleSkKLSAg ICAgICAgICAgIGNvbF90eXBlICs9IHR5cGU7Ci0gICAgICAgICAgZWxzZQotICAgICAgICAgICAg Y29sX3R5cGUgKz0gJ1tQS10gJyArIHR5cGU7Ci0KLSAgICAgICAgICBpZiAoYy5wcmVjaXNpb24g JiYgYy5wcmVjaXNpb24gPj0gMCAmJiBjLnByZWNpc2lvbiAhPSA2NTUzNSkgewotICAgICAgICAg ICAgY29sX3R5cGUgKz0gJyAoJyArIGMucHJlY2lzaW9uOwotICAgICAgICAgICAgY29sX3R5cGUg Kz0gYy5zY2FsZSAmJiBjLnNjYWxlICE9IDY1NTM1ID8KLSAgICAgICAgICAgICAgJywnICsgYy5z Y2FsZSArICcpJyA6Ci0gICAgICAgICAgICAgICcpJzsKLSAgICAgICAgICB9Ci0gICAgICAgICAg Ly8gSWRlbnRpZnkgY2VsbCB0eXBlIG9mIGNvbHVtbi4KLSAgICAgICAgICBzd2l0Y2ggKHR5cGUp IHsKLSAgICAgICAgICBjYXNlICdvaWQnOgotICAgICAgICAgICAgY29sX2NlbGwgPSAnb2lkJzsK LSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgIGNhc2UgJ2pzb24nOgotICAgICAgICAgIGNh c2UgJ2pzb25bXSc6Ci0gICAgICAgICAgY2FzZSAnanNvbmInOgotICAgICAgICAgIGNhc2UgJ2pz b25iW10nOgotICAgICAgICAgICAgY29sX2NlbGwgPSAnSnNvbic7Ci0gICAgICAgICAgICBicmVh azsKLSAgICAgICAgICBjYXNlICdzbWFsbGludCc6Ci0gICAgICAgICAgY2FzZSAnc21hbGxpbnRb XSc6Ci0gICAgICAgICAgY2FzZSAnaW50ZWdlcic6Ci0gICAgICAgICAgY2FzZSAnaW50ZWdlcltd JzoKLSAgICAgICAgICBjYXNlICdiaWdpbnQnOgotICAgICAgICAgIGNhc2UgJ2JpZ2ludFtdJzoK LSAgICAgICAgICBjYXNlICdkZWNpbWFsJzoKLSAgICAgICAgICBjYXNlICdkZWNpbWFsW10nOgot ICAgICAgICAgIGNhc2UgJ251bWVyaWMnOgotICAgICAgICAgIGNhc2UgJ251bWVyaWNbXSc6Ci0g ICAgICAgICAgY2FzZSAncmVhbCc6Ci0gICAgICAgICAgY2FzZSAncmVhbFtdJzoKLSAgICAgICAg ICBjYXNlICdkb3VibGUgcHJlY2lzaW9uJzoKLSAgICAgICAgICBjYXNlICdkb3VibGUgcHJlY2lz aW9uW10nOgotICAgICAgICAgICAgY29sX2NlbGwgPSAnbnVtYmVyJzsKLSAgICAgICAgICAgIGJy ZWFrOwotICAgICAgICAgIGNhc2UgJ2Jvb2xlYW4nOgotICAgICAgICAgICAgY29sX2NlbGwgPSAn Ym9vbGVhbic7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgICBjYXNlICdjaGFyYWN0ZXIn OgotICAgICAgICAgIGNhc2UgJ2NoYXJhY3RlcltdJzoKLSAgICAgICAgICBjYXNlICciY2hhciIn OgotICAgICAgICAgIGNhc2UgJyJjaGFyIltdJzoKLSAgICAgICAgICBjYXNlICdjaGFyYWN0ZXIg dmFyeWluZyc6Ci0gICAgICAgICAgY2FzZSAnY2hhcmFjdGVyIHZhcnlpbmdbXSc6Ci0gICAgICAg ICAgICBpZiAoYy5pbnRlcm5hbF9zaXplICYmIGMuaW50ZXJuYWxfc2l6ZSA+PSAwICYmIGMuaW50 ZXJuYWxfc2l6ZSAhPSA2NTUzNSkgewotICAgICAgICAgICAgICAvLyBVcGRhdGUgY29sdW1uIHR5 cGUgdG8gZGlzcGxheSBsZW5ndGggb24gY29sdW1uIGhlYWRlcgotICAgICAgICAgICAgICBjb2xf dHlwZSArPSAnICgnICsgYy5pbnRlcm5hbF9zaXplICsgJyknOwotICAgICAgICAgICAgfQotICAg ICAgICAgICAgY29sX2NlbGwgPSAnc3RyaW5nJzsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAg ICAgIGNhc2UgJ2J5dGVhJzoKLSAgICAgICAgICBjYXNlICdieXRlYVtdJzoKLSAgICAgICAgICAg IGNvbF9jZWxsID0gJ2JpbmFyeSc7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgICBjYXNl ICdnZW9tZXRyeSc6Ci0gICAgICAgICAgICAvLyBQb3N0R0lTIGdlb21ldHJ5IHR5cGUKLSAgICAg ICAgICAgIGNvbF9jZWxsID0gJ2dlb21ldHJ5JzsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAg ICAgIGNhc2UgJ2dlb2dyYXBoeSc6Ci0gICAgICAgICAgICAvLyBQb3N0R0lTIGdlb2dyYXBoeSB0 eXBlCi0gICAgICAgICAgICBjb2xfY2VsbCA9ICdnZW9ncmFwaHknOwotICAgICAgICAgICAgYnJl YWs7Ci0gICAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgIGNvbF9jZWxsID0gJ3N0cmluZyc7 Ci0gICAgICAgICAgfQotCi0gICAgICAgICAgY29sdW1uX2xhYmVsID0gYy5kaXNwbGF5X25hbWUg KyAnPGJyPicgKyBjb2xfdHlwZTsKLQotICAgICAgICAgIHZhciBhcnJheV90eXBlX2JyYWNrZXRf aW5kZXggPSB0eXBlLmxhc3RJbmRleE9mKCdbXScpLAotICAgICAgICAgICAgY29sID0gewotICAg ICAgICAgICAgICAnbmFtZSc6IGMubmFtZSwKLSAgICAgICAgICAgICAgJ2Rpc3BsYXlfbmFtZSc6 IGMuZGlzcGxheV9uYW1lLAotICAgICAgICAgICAgICAnY29sdW1uX3R5cGUnOiBjb2xfdHlwZSwK LSAgICAgICAgICAgICAgJ2NvbHVtbl90eXBlX2ludGVybmFsJzogdHlwZSwKLSAgICAgICAgICAg ICAgJ3Bvcyc6IGMucG9zLAotICAgICAgICAgICAgICAnbGFiZWwnOiBjb2x1bW5fbGFiZWwsCi0g ICAgICAgICAgICAgICdjZWxsJzogY29sX2NlbGwsCi0gICAgICAgICAgICAgICdjYW5fZWRpdCc6 IChjLm5hbWUgPT0gJ29pZCcpID8gZmFsc2UgOiBpc19lZGl0YWJsZSwKLSAgICAgICAgICAgICAg J3R5cGUnOiB0eXBlLAotICAgICAgICAgICAgICAnbm90X251bGwnOiBjLm5vdF9udWxsLAotICAg ICAgICAgICAgICAnaGFzX2RlZmF1bHRfdmFsJzogYy5oYXNfZGVmYXVsdF92YWwsCi0gICAgICAg ICAgICAgICdpc19hcnJheSc6IGFycmF5X3R5cGVfYnJhY2tldF9pbmRleCA+IC0xICYmIGFycmF5 X3R5cGVfYnJhY2tldF9pbmRleCArIDIgPT0gdHlwZS5sZW5ndGgsCi0gICAgICAgICAgICB9Owot ICAgICAgICAgIGNvbHVtbnMucHVzaChjb2wpOwotICAgICAgICB9KTsKLQotICAgICAgICBzZWxm LmNvbHVtbnMgPSBjb2x1bW5zOwotICAgICAgICBpZiAoY2IgJiYgdHlwZW9mKGNiKSA9PSAnZnVu Y3Rpb24nKSB7Ci0gICAgICAgICAgY2IoKTsKLSAgICAgICAgfQotICAgICAgfSwKLQotICAgICAg cmVzZXRRdWVyeUhpc3RvcnlPYmplY3Q6IGZ1bmN0aW9uKGhpc3RvcnkpIHsKLSAgICAgICAgaGlz dG9yeS50b3RhbF90aW1lID0gJy0nOwotICAgICAgfSwKLQotICAgICAgc2V0X3NxbF9tZXNzYWdl KG1zZywgYXBwZW5kPWZhbHNlKSB7Ci0gICAgICAgIGlmKGFwcGVuZCkgewotICAgICAgICAgICQo Jy5zcWwtZWRpdG9yLW1lc3NhZ2UnKS5hcHBlbmQobXNnKTsKLSAgICAgICAgfSBlbHNlIHsKLSAg ICAgICAgICAkKCcuc3FsLWVkaXRvci1tZXNzYWdlJykudGV4dChtc2cpOwotICAgICAgICB9Ci0K LSAgICAgICAgLy8gU2Nyb2xsIGF1dG9tYXRpY2FsbHkgd2hlbiBtc2dzIGFwcGVuZHMgdG8gZWxl bWVudAotICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewotICAgICAgICAgICQoJy5zcWwt ZWRpdG9yLW1lc3NhZ2UnKS5zY3JvbGxUb3AoJCgnLnNxbC1lZGl0b3ItbWVzc2FnZScpWzBdLnNj cm9sbEhlaWdodCk7Ci0gICAgICAgIH0sIDEwKTsKLSAgICAgIH0sCi0KLSAgICAgIC8vIFRoaXMg ZnVuY3Rpb24gaXMgdXNlZCB0byByYWlzZSBhcHByb3ByaWF0ZSBtZXNzYWdlLgotICAgICAgdXBk YXRlX21zZ19oaXN0b3J5OiBmdW5jdGlvbihzdGF0dXMsIG1zZywgY2xlYXJfZ3JpZCkgewotICAg ICAgICB2YXIgc2VsZiA9IHRoaXM7Ci0gICAgICAgIGlmIChjbGVhcl9ncmlkID09PSB1bmRlZmlu ZWQpCi0gICAgICAgICAgY2xlYXJfZ3JpZCA9IHRydWU7Ci0KLSAgICAgICAgc2VsZi5ncmlkVmll dy5tZXNzYWdlc19wYW5lbC5mb2N1cygpOwotCi0gICAgICAgIGlmIChjbGVhcl9ncmlkKSB7Ci0g ICAgICAgICAgLy8gRGVsZXRlIGdyaWQKLSAgICAgICAgICBpZiAoc2VsZi5ncmlkVmlldy5oYW5k bGVyLnNsaWNrZ3JpZCkgewotICAgICAgICAgICAgc2VsZi5ncmlkVmlldy5oYW5kbGVyLnNsaWNr Z3JpZC5kZXN0cm95KCk7Ci0KLSAgICAgICAgICB9Ci0gICAgICAgICAgLy8gTWlzYyBjbGVhbmlu ZwotICAgICAgICAgIHNlbGYuY29sdW1ucyA9IHVuZGVmaW5lZDsKLSAgICAgICAgICBzZWxmLmNv bGxlY3Rpb24gPSB1bmRlZmluZWQ7Ci0KLSAgICAgICAgICBzZWxmLnNldF9zcWxfbWVzc2FnZSht c2cpOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgIHNlbGYuc2V0X3NxbF9tZXNzYWdlKF8u ZXNjYXBlKG1zZyksIHRydWUpOwotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKHN0YXR1cyAhPSAn QnVzeScpIHsKLSAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHsKLSAgICAgICAgICAgICQoJyNi dG4tZmxhc2gnKS5wcm9wKCdkaXNhYmxlZCcsIGZhbHNlKTsKLSAgICAgICAgICB9LCA0MDApOwot Ci0gICAgICAgICAgc2VsZi50cmlnZ2VyKCdwZ2FkbWluLXNxbGVkaXRvcjpsb2FkaW5nLWljb246 aGlkZScpOwotCi0gICAgICAgICAgaWYoIXNlbGYudG90YWxfdGltZSkgewotICAgICAgICAgICAg c2VsZi50b3RhbF90aW1lID0gY2FsY3VsYXRlUXVlcnlSdW5UaW1lLmNhbGN1bGF0ZVF1ZXJ5UnVu VGltZSgKLSAgICAgICAgICAgICAgc2VsZi5xdWVyeV9zdGFydF90aW1lLAotICAgICAgICAgICAg ICBuZXcgRGF0ZSgpKTsKLSAgICAgICAgICB9Ci0KLSAgICAgICAgICBpZihfLmlzVW5kZWZpbmVk KHNlbGYuaGlzdG9yeV9xdWVyeV9zb3VyY2UpKSB7Ci0gICAgICAgICAgICBzZWxmLmhpc3Rvcnlf cXVlcnlfc291cmNlID0gUXVlcnlTb3VyY2VzLlZJRVdfREFUQTsKLSAgICAgICAgICB9Ci0KLSAg ICAgICAgICBsZXQgaGlzdG9yeV9lbnRyeSA9IHsKLSAgICAgICAgICAgICdzdGF0dXMnOiBzdGF0 dXMsCi0gICAgICAgICAgICAnc3RhcnRfdGltZSc6IHNlbGYucXVlcnlfc3RhcnRfdGltZSwKLSAg ICAgICAgICAgICdxdWVyeSc6IHNlbGYucXVlcnksCi0gICAgICAgICAgICAncm93X2FmZmVjdGVk Jzogc2VsZi5yb3dzX2FmZmVjdGVkLAotICAgICAgICAgICAgJ3RvdGFsX3RpbWUnOiBzZWxmLnRv dGFsX3RpbWUsCi0gICAgICAgICAgICAnbWVzc2FnZSc6IG1zZywKLSAgICAgICAgICAgICdxdWVy eV9zb3VyY2UnOiBzZWxmLmhpc3RvcnlfcXVlcnlfc291cmNlLAotICAgICAgICAgICAgJ2lzX3Bn YWRtaW5fcXVlcnknOiAhc2VsZi5pc19xdWVyeV90b29sLAotICAgICAgICAgIH07Ci0KLSAgICAg ICAgICBpZighc2VsZi5pc19xdWVyeV90b29sKSB7Ci0gICAgICAgICAgICB2YXIgaW5mb19tc2cg PSBnZXR0ZXh0KCdUaGlzIHF1ZXJ5IHdhcyBnZW5lcmF0ZWQgYnkgcGdBZG1pbiBhcyBwYXJ0IG9m IGEgIlZpZXcvRWRpdCBEYXRhIiBvcGVyYXRpb24nKTsKLSAgICAgICAgICAgIGhpc3RvcnlfZW50 cnkuaW5mbyA9IGluZm9fbXNnOwotICAgICAgICAgIH0KLQotICAgICAgICAgIHNlbGYuYWRkX3Rv X2hpc3RvcnkoaGlzdG9yeV9lbnRyeSk7Ci0gICAgICAgIH0KLSAgICAgIH0sCi0KLSAgICAgIC8q IE1ha2UgYWpheCBjYWxsIHRvIHNhdmUgdGhlIGhpc3RvcnkgZGF0YSAqLwotICAgICAgYWRkX3Rv X2hpc3Rvcnk6IGZ1bmN0aW9uKGhpc3RvcnlfZW50cnkpIHsKLSAgICAgICAgdmFyIHNlbGYgPSB0 aGlzOwotCi0gICAgICAgICQuYWpheCh7Ci0gICAgICAgICAgdXJsOiB1cmxfZm9yKCdzcWxlZGl0 b3IuYWRkX3F1ZXJ5X2hpc3RvcnknLCB7Ci0gICAgICAgICAgICAndHJhbnNfaWQnOiBzZWxmLnRy YW5zSWQsCi0gICAgICAgICAgfSksCi0gICAgICAgICAgbWV0aG9kOiAnUE9TVCcsCi0gICAgICAg ICAgY29udGVudFR5cGU6ICdhcHBsaWNhdGlvbi9qc29uJywKLSAgICAgICAgICBkYXRhOiBKU09O LnN0cmluZ2lmeShoaXN0b3J5X2VudHJ5KSwKLSAgICAgICAgfSkKLSAgICAgICAgICAuZG9uZShm dW5jdGlvbigpIHsgLyogVGhpcyBpcyBpbnRlbnRpb25hbCAqLyB9KQotICAgICAgICAgIC5mYWls KGZ1bmN0aW9uKCkgeyAvKiBUaGlzIGlzIGludGVudGlvbmFsICovIH0pOwotCi0gICAgICAgIHNl bGYuZ3JpZFZpZXcuaGlzdG9yeV9jb2xsZWN0aW9uLmFkZChoaXN0b3J5X2VudHJ5KTsKLSAgICAg IH0sCi0KLSAgICAgIC8qIFRoaXMgZnVuY3Rpb24gaXMgdXNlZCB0byBjaGVjayB3aGV0aGVyIGNl bGwKLSAgICAgICAqIGlzIGVkaXRhYmxlIG9yIG5vdCBkZXBlbmRpbmcgb24gcHJpbWFyeSBrZXlz Ci0gICAgICAgKiBhbmQgc3RhZ2VkX3Jvd3MgZmxhZwotICAgICAgICovCi0gICAgICBpc19lZGl0 YWJsZTogZnVuY3Rpb24ob2JqKSB7Ci0gICAgICAgIHZhciBzZWxmID0gdGhpczsKLSAgICAgICAg aWYgKG9iaiBpbnN0YW5jZW9mIEJhY2tib25lLkNvbGxlY3Rpb24pCi0gICAgICAgICAgcmV0dXJu IGZhbHNlOwotICAgICAgICByZXR1cm4gKHNlbGYuZ2V0KCdjYW5fZWRpdCcpKTsKLSAgICAgIH0s Ci0KLSAgICAgIGVuYWJsZV9kaXNhYmxlX2Rvd25sb2FkX2J0bjogZnVuY3Rpb24oaXNfc2F2ZV9y ZXN1bHRzX3RvX2ZpbGVfZGlzYWJsZWQpIHsKLSAgICAgICAgdmFyIHNlbGYgPSB0aGlzOwotICAg ICAgICBzZWxmLmlzX3NhdmVfcmVzdWx0c190b19maWxlX2Rpc2FibGVkID0gaXNfc2F2ZV9yZXN1 bHRzX3RvX2ZpbGVfZGlzYWJsZWQ7Ci0gICAgICAgICQoJyNidG4tc2F2ZS1yZXN1bHRzLXRvLWZp bGUnKS5wcm9wKCdkaXNhYmxlZCcsIGlzX3NhdmVfcmVzdWx0c190b19maWxlX2Rpc2FibGVkKTsK LSAgICAgIH0sCi0KLSAgICAgIHJvd3NfdG9fZGVsZXRlOiBmdW5jdGlvbihkYXRhKSB7Ci0gICAg ICAgIGxldCBzZWxmID0gdGhpczsKLSAgICAgICAgbGV0IHRtcF9rZXlzID0gc2VsZi5wcmltYXJ5 X2tleXM7Ci0KLSAgICAgICAgLy8gcmUtY2FsY3VsYXRlIHJvd3Mgd2l0aCBubyBwcmltYXJ5IGtl eXMKLSAgICAgICAgc2VsZi50ZW1wX25ld19yb3dzID0gW107Ci0gICAgICAgIGRhdGEuZm9yRWFj aChmdW5jdGlvbihkLCBpZHgpIHsKLSAgICAgICAgICBsZXQgcF9rZXlzX2xpc3QgPSBfLnBpY2so ZCwgXy5rZXlzKHRtcF9rZXlzKSk7Ci0gICAgICAgICAgbGV0IGlzX3ByaW1hcnlfa2V5ID0gT2Jq ZWN0LmtleXMocF9rZXlzX2xpc3QpLmxlbmd0aCA+IDA7Ci0KLSAgICAgICAgICBpZiAoIWlzX3By aW1hcnlfa2V5KSB7Ci0gICAgICAgICAgICBzZWxmLnRlbXBfbmV3X3Jvd3MucHVzaChpZHgpOwot ICAgICAgICAgIH0KLSAgICAgICAgfSk7Ci0gICAgICAgIHNlbGYucm93c190b19kaXNhYmxlID0g Xy5jbG9uZShzZWxmLnRlbXBfbmV3X3Jvd3MpOwotICAgICAgfSwKLQotICAgICAgLy8gVGhpcyBm dW5jdGlvbiB3aWxsIGRlbGV0ZSBzZWxlY3RlZCByb3cuCi0gICAgICBfZGVsZXRlOiBmdW5jdGlv bigpIHsKLSAgICAgICAgdmFyIHNlbGYgPSB0aGlzLAotICAgICAgICAgIGRlbGV0ZWRfa2V5cyA9 IFtdLAotICAgICAgICAgIGlzX2FkZGVkID0gXy5zaXplKHNlbGYuZGF0YV9zdG9yZS5hZGRlZCks Ci0gICAgICAgICAgaXNfdXBkYXRlZCA9IF8uc2l6ZShzZWxmLmRhdGFfc3RvcmUudXBkYXRlZCk7 Ci0KLSAgICAgICAgLy8gUmVtb3ZlIG5ld2x5IGFkZGVkIHJvd3MgZnJvbSBzdGFnZWQgcm93cyBh cyB3ZSBkb24ndCB3YW50IHRvIHNlbmQgdGhlbSBvbiBzZXJ2ZXIKLSAgICAgICAgaWYgKGlzX2Fk ZGVkKSB7Ci0gICAgICAgICAgXy5lYWNoKHNlbGYuZGF0YV9zdG9yZS5hZGRlZCwgZnVuY3Rpb24o dmFsLCBrZXkpIHsKLSAgICAgICAgICAgIGlmIChrZXkgaW4gc2VsZi5kYXRhX3N0b3JlLnN0YWdl ZF9yb3dzKSB7Ci0gICAgICAgICAgICAgIC8vIFJlbW92ZSB0aGUgcm93IGZyb20gZGF0YSBzdG9y ZSBzbyB0aGF0IHdlIGRvIG5vdCBzZW5kIGl0IG9uIHNlcnZlcgotICAgICAgICAgICAgICBkZWxl dGVkX2tleXMucHVzaChrZXkpOwotICAgICAgICAgICAgfQotICAgICAgICAgIH0pOwotICAgICAg ICB9Ci0gICAgICAgIC8vIElmIG9ubHkgbmV3bHkgcm93cyB0byBkZWxldGUgYW5kIG5vIGRhdGEg aXMgdGhlcmUgdG8gc2VuZCBvbiBzZXJ2ZXIKLSAgICAgICAgLy8gdGhlbiBqdXN0IHJlLXJlbmRl ciB0aGUgZ3JpZAotICAgICAgICBpZiAoXy5zaXplKHNlbGYuZGF0YV9zdG9yZS5zdGFnZWRfcm93 cykgPiAwICYmIChfLnNpemUoc2VsZi5kYXRhX3N0b3JlLnN0YWdlZF9yb3dzKSA9PT0gXy5zaXpl KGRlbGV0ZWRfa2V5cykpKSB7Ci0gICAgICAgICAgdmFyIGdyaWQgPSBzZWxmLnNsaWNrZ3JpZCwK LSAgICAgICAgICAgIGRhdGFWaWV3ID0gZ3JpZC5nZXREYXRhKCk7Ci0KLSAgICAgICAgICBncmlk LnJlc2V0QWN0aXZlQ2VsbCgpOwotCi0gICAgICAgICAgZGF0YVZpZXcuYmVnaW5VcGRhdGUoKTsK LSAgICAgICAgICBmb3IgKGxldCBkZWxfdmFsIG9mIGRlbGV0ZWRfa2V5cykgewotICAgICAgICAg ICAgZGVsZXRlIHNlbGYuZGF0YV9zdG9yZS5zdGFnZWRfcm93c1tkZWxfdmFsXTsKLSAgICAgICAg ICAgIGRlbGV0ZSBzZWxmLmRhdGFfc3RvcmUuYWRkZWRbZGVsX3ZhbF07Ci0gICAgICAgICAgICBk ZWxldGUgc2VsZi5kYXRhX3N0b3JlLmFkZGVkX2luZGV4W2RlbF92YWxdOwotICAgICAgICAgICAg ZGF0YVZpZXcuZGVsZXRlSXRlbShkZWxfdmFsKTsKLSAgICAgICAgICB9Ci0gICAgICAgICAgZGF0 YVZpZXcuZW5kVXBkYXRlKCk7Ci0gICAgICAgICAgc2VsZi5yb3dzX3RvX2RlbGV0ZS5hcHBseShz ZWxmLCBbZGF0YVZpZXcuZ2V0SXRlbXMoKV0pOwotICAgICAgICAgIGdyaWQucmVzZXRBY3RpdmVD ZWxsKCk7Ci0gICAgICAgICAgZ3JpZC5zZXRTZWxlY3RlZFJvd3MoW10pOwotICAgICAgICAgIGdy aWQuaW52YWxpZGF0ZSgpOwotCi0gICAgICAgICAgLy8gTm90aGluZyB0byBjb3B5IG9yIGRlbGV0 ZSBoZXJlCi0gICAgICAgICAgJCgnI2J0bi1kZWxldGUtcm93JykucHJvcCgnZGlzYWJsZWQnLCB0 cnVlKTsKLSAgICAgICAgICAkKCcjYnRuLWNvcHktcm93JykucHJvcCgnZGlzYWJsZWQnLCB0cnVl KTsKLSAgICAgICAgICBpZiAoXy5zaXplKHNlbGYuZGF0YV9zdG9yZS5hZGRlZCkgfHwgaXNfdXBk YXRlZCkgewotICAgICAgICAgICAgLy8gRG8gbm90IGRpc2FibGUgc2F2ZSBidXR0b24gaWYgdGhl cmUgYXJlCi0gICAgICAgICAgICAvLyBhbnkgb3RoZXIgY2hhbmdlcyBwcmVzZW50IGluIGdyaWQg ZGF0YQotICAgICAgICAgICAgJCgnI2J0bi1zYXZlLWRhdGEnKS5wcm9wKCdkaXNhYmxlZCcsIGZh bHNlKTsKLSAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgJCgnI2J0bi1zYXZlLWRhdGEn KS5wcm9wKCdkaXNhYmxlZCcsIHRydWUpOwotICAgICAgICAgIH0KLSAgICAgICAgICBOb3RpZnku c3VjY2VzcyhnZXR0ZXh0KCdSb3cocykgZGVsZXRlZC4nKSk7Ci0gICAgICAgIH0gZWxzZSB7Ci0K LSAgICAgICAgICBsZXQgc3RyaWtlb3V0ID0gdHJ1ZTsKLSAgICAgICAgICBfLmVhY2goXy5rZXlz KHNlbGYuZGF0YV9zdG9yZS5zdGFnZWRfcm93cyksIGZ1bmN0aW9uKGtleSkgewotICAgICAgICAg ICAgaWYoa2V5IGluIHNlbGYuZGF0YV9zdG9yZS5kZWxldGVkKSB7Ci0gICAgICAgICAgICAgIHN0 cmlrZW91dCA9IGZhbHNlOwotICAgICAgICAgICAgfQotICAgICAgICAgIH0pOwotCi0gICAgICAg ICAgaWYgKCFzdHJpa2VvdXQpIHsKLSAgICAgICAgICAgICQoc2VsZi5ncmlkVmlldy5ncmlkLmdl dENhbnZhc05vZGUoKSkuZmluZCgnZGl2LnNlbGVjdGVkJykucmVtb3ZlQ2xhc3MoJ3N0cmlrZW91 dCcpOwotICAgICAgICAgICAgXy5lYWNoKF8ua2V5cyhzZWxmLmRhdGFfc3RvcmUuc3RhZ2VkX3Jv d3MpLCBmdW5jdGlvbihrZXkpIHsKLSAgICAgICAgICAgICAgaWYoa2V5IGluIHNlbGYuZGF0YV9z dG9yZS5kZWxldGVkKSB7Ci0gICAgICAgICAgICAgICAgZGVsZXRlIHNlbGYuZGF0YV9zdG9yZS5k ZWxldGVkW2tleV07Ci0gICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0pOwotICAgICAgICAg IH0gZWxzZSB7Ci0gICAgICAgICAgICAvLyBTdHJpa2Ugb3V0IHRoZSByb3dzIHRvIGJlIGRlbGV0 ZWQKLSAgICAgICAgICAgIHNlbGYuZGF0YV9zdG9yZS5kZWxldGVkID0gT2JqZWN0LmFzc2lnbih7 fSwgc2VsZi5kYXRhX3N0b3JlLmRlbGV0ZWQsIHNlbGYuZGF0YV9zdG9yZS5zdGFnZWRfcm93cyk7 Ci0gICAgICAgICAgICAkKHNlbGYuZ3JpZFZpZXcuZ3JpZC5nZXRDYW52YXNOb2RlKCkpLmZpbmQo J2Rpdi5zZWxlY3RlZCcpLmFkZENsYXNzKCdzdHJpa2VvdXQnKTsKLSAgICAgICAgICB9Ci0KLSAg ICAgICAgICBpZiAoXy5zaXplKHNlbGYuZGF0YV9zdG9yZS5hZGRlZCkgfHwgaXNfdXBkYXRlZCB8 fCBfLnNpemUoc2VsZi5kYXRhX3N0b3JlLmRlbGV0ZWQpKSB7Ci0gICAgICAgICAgICAvLyBEbyBu b3QgZGlzYWJsZSBzYXZlIGJ1dHRvbiBpZiB0aGVyZSBhcmUKLSAgICAgICAgICAgIC8vIGFueSBv dGhlciBjaGFuZ2VzIHByZXNlbnQgaW4gZ3JpZCBkYXRhCi0gICAgICAgICAgICAkKCcjYnRuLXNh dmUtZGF0YScpLnByb3AoJ2Rpc2FibGVkJywgZmFsc2UpOwotICAgICAgICAgIH0gZWxzZSB7Ci0g ICAgICAgICAgICAkKCcjYnRuLXNhdmUtZGF0YScpLnByb3AoJ2Rpc2FibGVkJywgdHJ1ZSk7Ci0g ICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICB9LAotCi0gICAgICAvLyBUaGlzIGZ1bmN0aW9u IHdpbGwgb3BlbiBzYXZlIGZpbGUgZGlhbG9nIGNvbmRpdGlvbmFsbHkuCi0KLSAgICAgIF9zYXZl X2ZpbGU6IGZ1bmN0aW9uKHNhdmVfYXM9ZmFsc2UpIHsKLSAgICAgICAgdmFyIHNlbGYgPSB0aGlz OwotCi0gICAgICAgIHZhciBjdXJyZW50X2ZpbGUgPSBzZWxmLmdyaWRWaWV3LmN1cnJlbnRfZmls ZTsKLSAgICAgICAgaWYgKCFfLmlzVW5kZWZpbmVkKGN1cnJlbnRfZmlsZSkgJiYgIXNhdmVfYXMp IHsKLSAgICAgICAgICBzZWxmLl9zYXZlX2ZpbGVfaGFuZGxlcihjdXJyZW50X2ZpbGUpOwotICAg ICAgICB9IGVsc2UgewotICAgICAgICAgIC8vIHByb3ZpZGUgY3VzdG9tIG9wdGlvbiB0byBzYXZl IGZpbGUgZGlhbG9nCi0gICAgICAgICAgdmFyIHBhcmFtcyA9IHsKLSAgICAgICAgICAgICdzdXBw b3J0ZWRfdHlwZXMnOiBbJyonLCAnc3FsJ10sCi0gICAgICAgICAgICAnZGlhbG9nX3R5cGUnOiAn Y3JlYXRlX2ZpbGUnLAotICAgICAgICAgICAgJ2RpYWxvZ190aXRsZSc6ICdTYXZlIEZpbGUnLAot ICAgICAgICAgICAgJ2J0bl9wcmltYXJ5JzogJ1NhdmUnLAotICAgICAgICAgIH07Ci0gICAgICAg ICAgcGdBZG1pbi5GaWxlTWFuYWdlci5pbml0KCk7Ci0gICAgICAgICAgcGdBZG1pbi5GaWxlTWFu YWdlci5zaG93X2RpYWxvZyhwYXJhbXMpOwotICAgICAgICB9Ci0gICAgICB9LAotCi0gICAgICAv KiBUaGlzIGZ1bmN0aW9uIHdpbGwgZmV0Y2ggdGhlIGxpc3Qgb2YgY2hhbmdlZCBtb2RlbHMgYW5k IG1ha2UKLSAgICAgICAqIHRoZSBhamF4IGNhbGwgdG8gc2F2ZSB0aGUgZGF0YSBpbnRvIHRoZSBk YXRhYmFzZSBzZXJ2ZXIuCi0gICAgICAgKi8KLSAgICAgIHNhdmVfZGF0YTogZnVuY3Rpb24oKSB7 Ci0gICAgICAgIHZhciBzZWxmID0gdGhpczsKLQotICAgICAgICBpZighc2VsZi5jYW5fZWRpdCkK LSAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgdmFyIGlzX2FkZGVkID0gXy5zaXplKHNlbGYu ZGF0YV9zdG9yZS5hZGRlZCksCi0gICAgICAgICAgaXNfdXBkYXRlZCA9IF8uc2l6ZShzZWxmLmRh dGFfc3RvcmUudXBkYXRlZCksCi0gICAgICAgICAgaXNfZGVsZXRlZCA9IF8uc2l6ZShzZWxmLmRh dGFfc3RvcmUuZGVsZXRlZCk7Ci0KLSAgICAgICAgaWYgKCFpc19hZGRlZCAmJiAhaXNfdXBkYXRl ZCAmJiAhaXNfZGVsZXRlZCkgewotICAgICAgICAgIHJldHVybjsgLy8gTm90aGluZyB0byBzYXZl IGhlcmUKLSAgICAgICAgfQotCi0gICAgICAgIHNlbGYudHJpZ2dlcigKLSAgICAgICAgICAncGdh ZG1pbi1zcWxlZGl0b3I6bG9hZGluZy1pY29uOnNob3cnLAotICAgICAgICAgIGdldHRleHQoJ1Nh dmluZyB0aGUgdXBkYXRlZCBkYXRhLi4uJykKLSAgICAgICAgKTsKLSAgICAgICAgLy8gRGlzYWJs ZSBxdWVyeSB0b29sIGJ1dHRvbnMgYW5kIGNhbmNlbCBidXR0b24gb25seSBpZiBxdWVyeSB0b29s Ci0gICAgICAgIGlmKHNlbGYuaXNfcXVlcnlfdG9vbCkKLSAgICAgICAgICBzZWxmLmRpc2FibGVf dG9vbF9idXR0b25zKHRydWUsIHRydWUpOwotCi0gICAgICAgIC8vIEFkZCB0aGUgY29sdW1ucyB0 byB0aGUgZGF0YSBzbyB0aGUgc2VydmVyIGNhbiByZW1hcCB0aGUgZGF0YQotICAgICAgICB2YXIg cmVxX2RhdGEgPSBzZWxmLmRhdGFfc3RvcmUsIHZpZXcgPSBzZWxmLmdyaWRWaWV3OwotICAgICAg ICByZXFfZGF0YS5jb2x1bW5zID0gdmlldyA/IHZpZXcuaGFuZGxlci5jb2x1bW5zIDogc2VsZi5j b2x1bW5zOwotCi0gICAgICAgIHZhciBzYXZlX3N1Y2Nlc3NmdWwgPSBmYWxzZSwgc2F2ZV9zdGFy dF90aW1lID0gbmV3IERhdGUoKTsKLQotICAgICAgICAvLyBNYWtlIGFqYXggY2FsbCB0byBzYXZl IHRoZSBkYXRhCi0gICAgICAgICQuYWpheCh7Ci0gICAgICAgICAgdXJsOiB1cmxfZm9yKCdzcWxl ZGl0b3Iuc2F2ZScsIHsKLSAgICAgICAgICAgICd0cmFuc19pZCc6IHNlbGYudHJhbnNJZCwKLSAg ICAgICAgICB9KSwKLSAgICAgICAgICBtZXRob2Q6ICdQT1NUJywKLSAgICAgICAgICBjb250ZW50 VHlwZTogJ2FwcGxpY2F0aW9uL2pzb24nLAotICAgICAgICAgIGRhdGE6IEpTT04uc3RyaW5naWZ5 KHJlcV9kYXRhKSwKLSAgICAgICAgfSkKLSAgICAgICAgICAuZG9uZShmdW5jdGlvbihyZXMpIHsK LSAgICAgICAgICAgIHZhciBncmlkID0gc2VsZi5zbGlja2dyaWQsCi0gICAgICAgICAgICAgIGRh dGFWaWV3ID0gZ3JpZC5nZXREYXRhKCksCi0gICAgICAgICAgICAgIGRhdGFfbGVuZ3RoID0gZGF0 YVZpZXcuZ2V0TGVuZ3RoKCksCi0gICAgICAgICAgICAgIGRhdGEgPSBbXTsKLQotICAgICAgICAg ICAgdmFyIHRyYW5zYWN0aW9uX3N0YXR1cyA9IHJlcy5kYXRhLnRyYW5zYWN0aW9uX3N0YXR1czsK LQotICAgICAgICAgICAgLy8gVXBkYXRlIGxhc3QgdHJhbnNhY3Rpb24gc3RhdHVzCi0gICAgICAg ICAgICBzZWxmLmxhc3RfdHJhbnNhY3Rpb25fc3RhdHVzID0gdHJhbnNhY3Rpb25fc3RhdHVzOwot Ci0gICAgICAgICAgICB2YXIgaXNfY29tbWl0X3JlcXVpcmVkID0gdHJhbnNhY3Rpb25fc3RhdHVz ID4gMDsgLy8gMCBpcyBpZGxlCi0KLSAgICAgICAgICAgIC8vIEVuYWJsZS9EaXNhYmxlIGNvbW1p dCBhbmQgcm9sbGJhY2sgYnV0dG9uLgotICAgICAgICAgICAgaWYgKGlzX2NvbW1pdF9yZXF1aXJl ZCkgewotICAgICAgICAgICAgICBzZWxmLmRpc2FibGVfdHJhbnNhY3Rpb25fYnV0dG9ucyhmYWxz ZSk7Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICBzZWxmLmRpc2FibGVfdHJh bnNhY3Rpb25fYnV0dG9ucyh0cnVlKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIC8vIEVu YWJsZSBxdWVyeSB0b29sIGJ1dHRvbnMgYW5kIGNhbmNlbCBidXR0b24gb25seSBpZiBxdWVyeSB0 b29sCi0gICAgICAgICAgICBpZihzZWxmLmlzX3F1ZXJ5X3Rvb2wpCi0gICAgICAgICAgICAgIHNl bGYuZGlzYWJsZV90b29sX2J1dHRvbnMoZmFsc2UpOwotCi0gICAgICAgICAgICBpZiAocmVzLmRh dGEuc3RhdHVzKSB7Ci0gICAgICAgICAgICAgIC8vIERpc2FibGUgU2F2ZSBEYXRhIENoYW5nZXMg YnV0dG9uCi0gICAgICAgICAgICAgICQoJyNidG4tc2F2ZS1kYXRhJykucHJvcCgnZGlzYWJsZWQn LCB0cnVlKTsKLQotICAgICAgICAgICAgICBzYXZlX3N1Y2Nlc3NmdWwgPSB0cnVlOwotCi0gICAg ICAgICAgICAgIC8vIFJlbW92ZSBoaWdobGlnaHRlZCBjZWxscyBzdHlsaW5nCi0gICAgICAgICAg ICAgIGZvciAobGV0IGkgPSAxOyBpIDw9IHNlbGYubnVtYmVyT2ZNb2RpZmllZENlbGxzOyBpKysp Ci0gICAgICAgICAgICAgICAgZ3JpZC5yZW1vdmVDZWxsQ3NzU3R5bGVzKGkpOwotCi0gICAgICAg ICAgICAgIHNlbGYubnVtYmVyT2ZNb2RpZmllZENlbGxzID0gMDsKLQotICAgICAgICAgICAgICBp Zihpc19hZGRlZCkgewotICAgICAgICAgICAgICAvLyBVcGRhdGUgdGhlIHJvd3MgaW4gYSBncmlk IGFmdGVyIGFkZGl0aW9uCi0gICAgICAgICAgICAgICAgZGF0YVZpZXcuYmVnaW5VcGRhdGUoKTsK LSAgICAgICAgICAgICAgICBfLmVhY2gocmVzLmRhdGEucXVlcnlfcmVzdWx0cywgZnVuY3Rpb24o cikgewotICAgICAgICAgICAgICAgICAgaWYgKCFfLmlzTnVsbChyLnJvd19hZGRlZCkpIHsKLSAg ICAgICAgICAgICAgICAgIC8vIEZldGNoIHRlbXBfaWQgcmV0dXJuZWQgYnkgc2VydmVyIGFmdGVy IGFkZGl0aW9uCi0gICAgICAgICAgICAgICAgICAgIHZhciByb3dfaWQgPSBPYmplY3Qua2V5cyhy LnJvd19hZGRlZClbMF07Ci0gICAgICAgICAgICAgICAgICAgIF8uZWFjaChyZXFfZGF0YS5hZGRl ZF9pbmRleCwgZnVuY3Rpb24odiwgaykgewotICAgICAgICAgICAgICAgICAgICAgIGlmICh2ID09 IHJvd19pZCkgewotICAgICAgICAgICAgICAgICAgICAgIC8vIEZldGNoIGl0ZW0gZGF0YSB0aHJv dWdoIHJvdyBpbmRleAotICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGl0ZW1fZmV0Y2hlZCA9 IGdyaWQuZ2V0RGF0YUl0ZW0oayk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBfLmV4dGVuZChp dGVtX2ZldGNoZWQsIHIucm93X2FkZGVkW3Jvd19pZF0pOwotICAgICAgICAgICAgICAgICAgICAg IH0KLSAgICAgICAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAg ICAgICAgICAgfSk7Ci0gICAgICAgICAgICAgICAgZGF0YVZpZXcuZW5kVXBkYXRlKCk7Ci0gICAg ICAgICAgICAgIH0KLSAgICAgICAgICAgICAgLy8gUmVtb3ZlIGZsYWcgaXNfcm93X2NvcGllZCBm cm9tIGNvcGllZCByb3dzCi0gICAgICAgICAgICAgIF8uZWFjaChkYXRhLCBmdW5jdGlvbihyb3cp IHsKLSAgICAgICAgICAgICAgICBpZiAocm93LmlzX3Jvd19jb3BpZWQpIHsKLSAgICAgICAgICAg ICAgICAgIGRlbGV0ZSByb3cuaXNfcm93X2NvcGllZDsKLSAgICAgICAgICAgICAgICB9Ci0gICAg ICAgICAgICAgIH0pOwotCi0gICAgICAgICAgICAgIC8vIFJlbW92ZSAyZCBjb3BpZWRfcm93cyBh cnJheQotICAgICAgICAgICAgICBpZiAoZ3JpZC5jb3BpZWRfcm93cykgewotICAgICAgICAgICAg ICAgIGRlbGV0ZSBncmlkLmNvcGllZF9yb3dzOwotICAgICAgICAgICAgICB9Ci0KLSAgICAgICAg ICAgICAgLy8gUmVtb3ZlIGRlbGV0ZWQgcm93cyBmcm9tIGNsaWVudCBhcyB3ZWxsCi0gICAgICAg ICAgICAgIGlmIChpc19kZWxldGVkKSB7Ci0gICAgICAgICAgICAgICAgdmFyIHJvd3MgPSBfLmtl eXMoc2VsZi5kYXRhX3N0b3JlLmRlbGV0ZWQpOwotICAgICAgICAgICAgICAgIGlmIChkYXRhX2xl bmd0aCA9PSByb3dzLmxlbmd0aCkgewotICAgICAgICAgICAgICAgIC8vIFRoaXMgbWVhbnMgYWxs IHRoZSByb3dzIGFyZSBzZWxlY3RlZCwgY2xlYXIgYWxsIGRhdGEKLSAgICAgICAgICAgICAgICAg IGRhdGEgPSBbXTsKLSAgICAgICAgICAgICAgICAgIGRhdGFWaWV3LnNldEl0ZW1zKGRhdGEsIHNl bGYuY2xpZW50X3ByaW1hcnlfa2V5KTsKLSAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAg ICAgICAgICAgICAgZGF0YVZpZXcuYmVnaW5VcGRhdGUoKTsKLSAgICAgICAgICAgICAgICAgIGZv ciAobGV0IHJvd192YWwgb2Ygcm93cykgewotICAgICAgICAgICAgICAgICAgICB2YXIgaXRlbSA9 IGdyaWQuZ2V0RGF0YSgpLmdldEl0ZW1CeUlkKHJvd192YWwpOwotICAgICAgICAgICAgICAgICAg ICBkYXRhLnB1c2goaXRlbSk7Ci0gICAgICAgICAgICAgICAgICAgIGRhdGFWaWV3LmRlbGV0ZUl0 ZW0oaXRlbVtzZWxmLmNsaWVudF9wcmltYXJ5X2tleV0pOwotICAgICAgICAgICAgICAgICAgfQot ICAgICAgICAgICAgICAgICAgZGF0YVZpZXcuZW5kVXBkYXRlKCk7Ci0gICAgICAgICAgICAgICAg fQotICAgICAgICAgICAgICAgIHNlbGYucm93c190b19kZWxldGUuYXBwbHkoc2VsZiwgW2RhdGFd KTsKLSAgICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAgIGdyaWQuc2V0U2VsZWN0ZWRSb3dz KFtdKTsKLQotICAgICAgICAgICAgICAvLyBSZXNldCBkYXRhIHN0b3JlCi0gICAgICAgICAgICAg IHNlbGYucmVzZXRfZGF0YV9zdG9yZSgpOwotCi0gICAgICAgICAgICAgIC8vIFJlc2V0IG9sZCBw cmltYXJ5IGtleSBkYXRhIG5vdwotICAgICAgICAgICAgICBzZWxmLnByaW1hcnlfa2V5c19kYXRh ID0ge307Ci0KLSAgICAgICAgICAgICAgLy8gQ2xlYXIgbXNncyBhZnRlciBzdWNjZXNzZnVsIHNh dmUKLSAgICAgICAgICAgICAgc2VsZi5zZXRfc3FsX21lc3NhZ2UoJycpOwotCi0gICAgICAgICAg ICAgIE5vdGlmeS5zdWNjZXNzKGdldHRleHQoJ0RhdGEgc2F2ZWQgc3VjY2Vzc2Z1bGx5LicpKTsK LQotICAgICAgICAgICAgICBpZihpc19jb21taXRfcmVxdWlyZWQpCi0gICAgICAgICAgICAgICAg Tm90aWZ5LmluZm8oZ2V0dGV4dCgnQXV0by1jb21taXQgaXMgb2ZmLiBZb3Ugc3RpbGwgbmVlZCB0 byBjb21taXQgY2hhbmdlcyB0byB0aGUgZGF0YWJhc2UuJykpOwotCi0KLSAgICAgICAgICAgIH0g ZWxzZSB7Ci0gICAgICAgICAgICAvLyBTb21ldGhpbmcgd2VudCB3cm9uZyB3aGlsZSBzYXZpbmcg ZGF0YSBvbiB0aGUgZGIgc2VydmVyCi0gICAgICAgICAgICAgIHNlbGYuc2V0X3NxbF9tZXNzYWdl KHJlcy5kYXRhLnJlc3VsdCk7Ci0gICAgICAgICAgICAgIHZhciBlcnJfbXNnID0gZ2V0dGV4dCgn JXMuJywgcmVzLmRhdGEucmVzdWx0KTsKLSAgICAgICAgICAgICAgTm90aWZ5LmVycm9yKGVycl9t c2csIDIwMDAwKTsKLSAgICAgICAgICAgICAgLy8gSWYgdGhlIHRyYW5zYWN0aW9uIGlzIG5vdCBp ZGxlLCBub3RpZnkgdGhlIHVzZXIgdGhhdCBwcmV2aW91cyBxdWVyaWVzIGFyZSBub3Qgcm9sbGVk IGJhY2ssCi0gICAgICAgICAgICAgIC8vIG9ubHkgdGhlIGZhaWxlZCBzYXZlIHF1ZXJpZXMuCi0g ICAgICAgICAgICAgIGlmICh0cmFuc2FjdGlvbl9zdGF0dXMgIT0gMCkKLSAgICAgICAgICAgICAg ICBOb3RpZnkuaW5mbyhnZXR0ZXh0KCdTYXZpbmcgZGF0YSBjaGFuZ2VzIHdhcyByb2xsZWQgYmFj ayBidXQgdGhlIGN1cnJlbnQgdHJhbnNhY3Rpb24gaXMgJyArCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICdzdGlsbCBhY3RpdmU7IHByZXZpb3VzIHF1ZXJpZXMgYXJlIHVu YWZmZWN0ZWQuJykpOwotICAgICAgICAgICAgICBncmlkLnNldFNlbGVjdGVkUm93cyhbXSk7Ci0g ICAgICAgICAgICAgIC8vIFRvIGhpZ2hsaWdodCB0aGUgcm93IGF0IGZhdWx0Ci0gICAgICAgICAg ICAgIGlmIChfLmhhcyhyZXMuZGF0YSwgJ19yb3dpZCcpICYmCi0gICAgICAgICAgICAgICghXy5p c1VuZGVmaW5lZChyZXMuZGF0YS5fcm93aWQpIHx8ICFfLmlzTnVsbChyZXMuZGF0YS5fcm93aWQp KSkgewotICAgICAgICAgICAgICAgIHZhciBfcm93X2luZGV4ID0gc2VsZi5fZmluZF9yb3dpbmRl eChyZXMuZGF0YS5fcm93aWQpOwotICAgICAgICAgICAgICAgIGlmIChfcm93X2luZGV4IGluIHNl bGYuZGF0YV9zdG9yZS5hZGRlZF9pbmRleCkgewotICAgICAgICAgICAgICAgIC8vIFJlbW92ZSBu ZXcgcm93IGluZGV4IGZyb20gdGVtcF9saXN0IGlmIHNhdmUgb3BlcmF0aW9uCi0gICAgICAgICAg ICAgICAgLy8gZmFpbHMKLSAgICAgICAgICAgICAgICAgIHZhciBpbmRleCA9IHNlbGYuaGFuZGxl ci50ZW1wX25ld19yb3dzLmluZGV4T2YocmVzLmRhdGEuX3Jvd2lkKTsKLSAgICAgICAgICAgICAg ICAgIGlmIChpbmRleCA+IC0xKSB7Ci0gICAgICAgICAgICAgICAgICAgIHNlbGYuaGFuZGxlci50 ZW1wX25ld19yb3dzLnNwbGljZShpbmRleCwgMSk7Ci0gICAgICAgICAgICAgICAgICB9Ci0gICAg ICAgICAgICAgICAgICBzZWxmLmRhdGFfc3RvcmUuYWRkZWRbc2VsZi5kYXRhX3N0b3JlLmFkZGVk X2luZGV4W19yb3dfaW5kZXhdXS5lcnIgPSB0cnVlOwotICAgICAgICAgICAgICAgIH0gZWxzZSBp ZiAoX3Jvd19pbmRleCBpbiBzZWxmLmRhdGFfc3RvcmUudXBkYXRlZF9pbmRleCkgewotICAgICAg ICAgICAgICAgICAgc2VsZi5kYXRhX3N0b3JlLnVwZGF0ZWRbc2VsZi5kYXRhX3N0b3JlLnVwZGF0 ZWRfaW5kZXhbX3Jvd19pbmRleF1dLmVyciA9IHRydWU7Ci0gICAgICAgICAgICAgICAgfQotICAg ICAgICAgICAgICB9Ci0gICAgICAgICAgICAgIGdyaWQuZ290b0NlbGwoX3Jvd19pbmRleCwgMSk7 Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIHZhciBxdWVyeV9oaXN0b3J5X2luZm9fbXNn ID0gZ2V0dGV4dCgnVGhpcyBxdWVyeSB3YXMgZ2VuZXJhdGVkIGJ5IHBnQWRtaW4gYXMgcGFydCBv ZiBhICJTYXZlIERhdGEiIG9wZXJhdGlvbicpOwotCi0gICAgICAgICAgICBfLmVhY2gocmVzLmRh dGEucXVlcnlfcmVzdWx0cywgZnVuY3Rpb24ocikgewotICAgICAgICAgICAgICB2YXIgaGlzdG9y eV9lbnRyeSA9IHsKLSAgICAgICAgICAgICAgICAnc3RhdHVzJzogci5zdGF0dXMsCi0gICAgICAg ICAgICAgICAgJ3N0YXJ0X3RpbWUnOiBzYXZlX3N0YXJ0X3RpbWUsCi0gICAgICAgICAgICAgICAg J3F1ZXJ5Jzogci5zcWwsCi0gICAgICAgICAgICAgICAgJ3Jvd19hZmZlY3RlZCc6IHIucm93c19h ZmZlY3RlZCwKLSAgICAgICAgICAgICAgICAndG90YWxfdGltZSc6IG51bGwsCi0gICAgICAgICAg ICAgICAgJ21lc3NhZ2UnOiByLnJlc3VsdCwKLSAgICAgICAgICAgICAgICAncXVlcnlfc291cmNl JzogUXVlcnlTb3VyY2VzLlNBVkVfREFUQSwKLSAgICAgICAgICAgICAgICAnaXNfcGdhZG1pbl9x dWVyeSc6IHRydWUsCi0gICAgICAgICAgICAgICAgJ2luZm8nOiBxdWVyeV9oaXN0b3J5X2luZm9f bXNnLAotICAgICAgICAgICAgICB9OwotICAgICAgICAgICAgICBzZWxmLmFkZF90b19oaXN0b3J5 KGhpc3RvcnlfZW50cnkpOwotICAgICAgICAgICAgfSk7Ci0KLSAgICAgICAgICAgIHNlbGYudHJp Z2dlcigncGdhZG1pbi1zcWxlZGl0b3I6bG9hZGluZy1pY29uOmhpZGUnKTsKLQotICAgICAgICAg ICAgZ3JpZC5pbnZhbGlkYXRlKCk7Ci0gICAgICAgICAgICBpZiAoc2VsZi5jbG9zZV9vbl9zYXZl KSB7Ci0gICAgICAgICAgICAgIGlmKHNhdmVfc3VjY2Vzc2Z1bCkgewotICAgICAgICAgICAgICAg IC8vIENoZWNrIGZvciBhbnkgb3RoZXIgbmVlZGVkIGNvbmZpcm1hdGlvbnMgYmVmb3JlIGNsb3Np bmcKLSAgICAgICAgICAgICAgICBzZWxmLmNoZWNrX25lZWRlZF9jb25maXJtYXRpb25zX2JlZm9y ZV9jbG9zaW5nX3BhbmVsKCk7Ci0gICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgZWxzZSB7 Ci0gICAgICAgICAgICAgICAgc2VsZi5jbG9zZV9vbl9zYXZlID0gZmFsc2U7Ci0gICAgICAgICAg ICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgICB9KQotICAgICAgICAgIC5mYWlsKGZ1bmN0 aW9uKGUpIHsKLSAgICAgICAgICAgIGxldCBzdGF0ZVBhcmFtcyA9IFt2aWV3XTsKLSAgICAgICAg ICAgIGxldCBtc2cgPSBodHRwRXJyb3JIYW5kbGVyLmhhbmRsZVF1ZXJ5VG9vbEFqYXhFcnJvcigK LSAgICAgICAgICAgICAgcGdBZG1pbiwgc2VsZiwgZSwgJ3NhdmVfZGF0YScsIHN0YXRlUGFyYW1z LCB0cnVlCi0gICAgICAgICAgICApOwotICAgICAgICAgICAgLy8gRW5hYmxlIHF1ZXJ5IHRvb2wg YnV0dG9ucyBhbmQgY2FuY2VsIGJ1dHRvbiBvbmx5IGlmIHF1ZXJ5IHRvb2wKLSAgICAgICAgICAg IGlmKHNlbGYuaXNfcXVlcnlfdG9vbCkKLSAgICAgICAgICAgICAgc2VsZi5kaXNhYmxlX3Rvb2xf YnV0dG9ucyhmYWxzZSk7Ci0gICAgICAgICAgICBpZiAobXNnKQotICAgICAgICAgICAgICBzZWxm LnVwZGF0ZV9tc2dfaGlzdG9yeShmYWxzZSwgbXNnKTsKLSAgICAgICAgICB9KTsKLSAgICAgIH0s Ci0KLSAgICAgIHJlc2V0X2RhdGFfc3RvcmU6IGZ1bmN0aW9uKCkgewotICAgICAgICB2YXIgc2Vs ZiA9IHRoaXM7Ci0gICAgICAgIC8vIFRoaXMgaG9sZHMgYWxsIHRoZSBpbnNlcnRlZC91cGRhdGVk L2RlbGV0ZWQgZGF0YSBmcm9tIGdyaWQKLSAgICAgICAgc2VsZi5kYXRhX3N0b3JlID0gewotICAg ICAgICAgIHVwZGF0ZWQ6IHt9LAotICAgICAgICAgIGFkZGVkOiB7fSwKLSAgICAgICAgICBzdGFn ZWRfcm93czoge30sCi0gICAgICAgICAgZGVsZXRlZDoge30sCi0gICAgICAgICAgdXBkYXRlZF9p bmRleDoge30sCi0gICAgICAgICAgYWRkZWRfaW5kZXg6IHt9LAotICAgICAgICB9OwotICAgICAg fSwKLQotICAgICAgLy8gRmluZCBpbmRleCBvZiByb3cgYXQgZmF1bHQgZnJvbSBncmlkIGRhdGEK LSAgICAgIF9maW5kX3Jvd2luZGV4OiBmdW5jdGlvbihyb3dpZCkgewotICAgICAgICB2YXIgc2Vs ZiA9IHRoaXMsCi0gICAgICAgICAgZ3JpZCA9IHNlbGYuc2xpY2tncmlkLAotICAgICAgICAgIGRh dGFWaWV3ID0gZ3JpZC5nZXREYXRhKCksCi0gICAgICAgICAgZGF0YSA9IGRhdGFWaWV3LmdldEl0 ZW1zKCksCi0gICAgICAgICAgX3Jvd2lkLAotICAgICAgICAgIGNvdW50ID0gMCwKLSAgICAgICAg ICBfaWR4ID0gLTE7Ci0KLSAgICAgICAgLy8gSWYgX3Jvd2lkIGlzIG9iamVjdCB0aGVuIGl0J3Mg dXBkYXRlL2RlbGV0ZSBvcGVyYXRpb24KLSAgICAgICAgaWYgKF8uaXNPYmplY3Qocm93aWQpKSB7 Ci0gICAgICAgICAgX3Jvd2lkID0gcm93aWQ7Ci0gICAgICAgIH0gZWxzZSBpZiAoXy5pc1N0cmlu Zyhyb3dpZCkpIHsgLy8gSW5zZXJ0IG9wZXJhdGlvbgotICAgICAgICAgIHJvd2lkID0ge307Ci0g ICAgICAgICAgcm93aWRbc2VsZi5jbGllbnRfcHJpbWFyeV9rZXldID0gcm93aWQ7Ci0gICAgICAg ICAgX3Jvd2lkID0gcm93aWQ7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgLy8gU29tZXRo aW5nIGlzIHdyb25nIHdpdGggdW5pcXVlIGlkCi0gICAgICAgICAgcmV0dXJuIF9pZHg7Ci0gICAg ICAgIH0KLQotICAgICAgICBfLmZpbmQoZGF0YSwgZnVuY3Rpb24oZCkgewotICAgICAgICAgIC8v IHNlYXJjaCBmb3IgdW5pcXVlIGlkIGluIHJvdyBkYXRhIGlmIGZvdW5kIHRoYW4gaXRzIHRoZSBy b3cKLSAgICAgICAgICAvLyB3aGljaCBlcnJvciBvdXQgb24gc2VydmVyIHNpZGUKLSAgICAgICAg ICB2YXIgdG1wID0gW107IC8vXy5maW5kV2hlcmUgbmVlZHMgYXJyYXkgb2Ygb2JqZWN0IHRvIHdv cmsKLSAgICAgICAgICB0bXAucHVzaChkKTsKLSAgICAgICAgICBpZiAoXy5maW5kV2hlcmUodG1w LCBfcm93aWQpKSB7Ci0gICAgICAgICAgICBfaWR4ID0gY291bnQ7Ci0gICAgICAgICAgICAvLyBO b3cgZXhpdCB0aGUgbG9vcCBieSByZXR1cm5pbmcgdHJ1ZQotICAgICAgICAgICAgcmV0dXJuIHRy dWU7Ci0gICAgICAgICAgfQotICAgICAgICAgIGNvdW50Kys7Ci0gICAgICAgIH0pOwotCi0gICAg ICAgIC8vIE5vdCBhYmxlIHRvIGZpbmQgaW4gZ3JpZCBEYXRhCi0gICAgICAgIHJldHVybiBfaWR4 OwotICAgICAgfSwKLQotICAgICAgLy8gU2F2ZSBhcwotICAgICAgX3NhdmVfYXM6IGZ1bmN0aW9u KCkgewotICAgICAgICByZXR1cm4gdGhpcy5fc2F2ZV9maWxlKHRydWUpOwotICAgICAgfSwKLQot ICAgICAgLy8gU2V0IHBhbmVsIHRpdGxlLgotICAgICAgc2V0VGl0bGU6IGZ1bmN0aW9uKHRpdGxl LCBpc19maWxlLCBpc19kaXJ0eV9lZGl0b3I9ZmFsc2UpIHsKLSAgICAgICAgdmFyIHNlbGYgPSB0 aGlzOwotICAgICAgICB2YXIgb3Blbl9uZXdfdGFiID0gc2VsZi5icm93c2VyX3ByZWZlcmVuY2Vz Lm5ld19icm93c2VyX3RhYl9vcGVuOwotICAgICAgICBpZihvcGVuX25ld190YWIgJiYgb3Blbl9u ZXdfdGFiLmluY2x1ZGVzKCdxdCcpKSB7Ci0gICAgICAgICAgd2luZG93LmRvY3VtZW50LnRpdGxl ID0gXy5lc2NhcGUodGl0bGUpOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgIF8uZWFjaChw Z1dpbmRvdy5kZWZhdWx0LnBnQWRtaW4uQnJvd3Nlci5kb2NrZXIuZmluZFBhbmVscygnZnJtX2Rh dGFncmlkJyksIGZ1bmN0aW9uKHApIHsKLSAgICAgICAgICAgIGlmIChwLmlzVmlzaWJsZSgpKSB7 Ci0gICAgICAgICAgICAgIGlmKGlzX2RpcnR5X2VkaXRvcikgewotICAgICAgICAgICAgICAgIHAu aXNfZGlydHlfZWRpdG9yID0gdHJ1ZTsKLSAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICBw YW5lbFRpdGxlRnVuYy5zZXRRdWVyeVRvb2xEb2NrZXJUaXRsZShwLCBzZWxmLmlzX3F1ZXJ5X3Rv b2wsIHRpdGxlLCBpc19maWxlKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICB9KTsKLSAgICAg ICAgfQotICAgICAgfSwKLQotICAgICAgLy8gbG9hZCBzZWxlY3QgZmlsZSBkaWFsb2cKLSAgICAg IF9sb2FkX2ZpbGU6IGZ1bmN0aW9uKCkgewotICAgICAgICB2YXIgc2VsZiA9IHRoaXM7Ci0KLSAg ICAgICAgLyogSWYgaXNfcXVlcnlfY2hhbmdlZCBmbGFnIGlzIHNldCB0byBmYWxzZSB0aGVuIG5v IG5lZWQgdG8KLSAgICAgICAgICogY29uZmlybSB3aXRoIHRoZSB1c2VyIGZvciB1bnNhdmVkIGNo YW5nZXMuCi0gICAgICAgICAqLwotICAgICAgICBpZiAoc2VsZi5pc19xdWVyeV9jaGFuZ2VkKSB7 Ci0gICAgICAgICAgTm90aWZ5LmNvbmZpcm0oZ2V0dGV4dCgnVW5zYXZlZCBjaGFuZ2VzJyksCi0g ICAgICAgICAgICBnZXR0ZXh0KCdBcmUgeW91IHN1cmUgeW91IHdpc2ggdG8gZGlzY2FyZCB0aGUg Y3VycmVudCBjaGFuZ2VzPycpLAotICAgICAgICAgICAgZnVuY3Rpb24oKSB7Ci0gICAgICAgICAg ICAgIC8vIFVzZXIgZG8gbm90IHdhbnQgdG8gc2F2ZSwganVzdCBjb250aW51ZQotICAgICAgICAg ICAgICBzZWxmLl9vcGVuX3NlbGVjdF9maWxlX21hbmFnZXIoKTsKLSAgICAgICAgICAgIH0sCi0g ICAgICAgICAgICBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAg ICAgICAgICB9Ci0gICAgICAgICAgKTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICBzZWxm Ll9vcGVuX3NlbGVjdF9maWxlX21hbmFnZXIoKTsKLSAgICAgICAgfQotCi0gICAgICB9LAotCi0g ICAgICAvLyBPcGVuIEZpbGVNYW5hZ2VyCi0gICAgICBfb3Blbl9zZWxlY3RfZmlsZV9tYW5hZ2Vy OiBmdW5jdGlvbigpIHsKLSAgICAgICAgdmFyIHBhcmFtcyA9IHsKLSAgICAgICAgICAnc3VwcG9y dGVkX3R5cGVzJzogWycqJywgJ3NxbCddLCAvLyBmaWxlIHR5cGVzIGFsbG93ZWQKLSAgICAgICAg ICAnZGlhbG9nX3R5cGUnOiAnc2VsZWN0X2ZpbGUnLCAvLyBvcGVuIHNlbGVjdCBmaWxlIGRpYWxv ZwotICAgICAgICB9OwotICAgICAgICBwZ0FkbWluLkZpbGVNYW5hZ2VyLmluaXQoKTsKLSAgICAg ICAgcGdBZG1pbi5GaWxlTWFuYWdlci5zaG93X2RpYWxvZyhwYXJhbXMpOwotICAgICAgfSwKLQot ICAgICAgLy8gcmVhZCBmaWxlIGRhdGEgYW5kIHJldHVybiBhcyByZXNwb25zZQotICAgICAgX3Nl bGVjdF9maWxlX2hhbmRsZXI6IGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgdmFyIHNlbGYgPSB0aGlz LAotICAgICAgICAgIF9lID0gZSwKLSAgICAgICAgICBkYXRhID0gewotICAgICAgICAgICAgJ2Zp bGVfbmFtZSc6IGRlY29kZVVSSShlKSwKLSAgICAgICAgICB9OwotCi0gICAgICAgIHNlbGYudHJp Z2dlcigKLSAgICAgICAgICAncGdhZG1pbi1zcWxlZGl0b3I6bG9hZGluZy1pY29uOnNob3cnLAot ICAgICAgICAgIGdldHRleHQoJ0xvYWRpbmcgdGhlIGZpbGUuLi4nKQotICAgICAgICApOwotICAg ICAgICAvLyBzZXQgY3Vyc29yIHRvIHByb2dyZXNzIGJlZm9yZSBmaWxlIGxvYWQKLSAgICAgICAg dmFyICRidXN5X2ljb25fZGl2ID0gJCgnLnNxbC1lZGl0b3ItYnVzeS1mZXRjaGluZycpOwotICAg ICAgICAkYnVzeV9pY29uX2Rpdi5hZGRDbGFzcygnc2hvd19wcm9ncmVzcycpOwotCi0gICAgICAg IC8vIE1ha2UgYWpheCBjYWxsIHRvIGxvYWQgdGhlIGRhdGEgZnJvbSBmaWxlCi0gICAgICAgICQu YWpheCh7Ci0gICAgICAgICAgdXJsOiB1cmxfZm9yKCdzcWxlZGl0b3IubG9hZF9maWxlJyksCi0g ICAgICAgICAgbWV0aG9kOiAnUE9TVCcsCi0gICAgICAgICAgY29udGVudFR5cGU6ICdhcHBsaWNh dGlvbi9qc29uJywKLSAgICAgICAgICBkYXRhOiBKU09OLnN0cmluZ2lmeShkYXRhKSwKLSAgICAg ICAgfSkKLSAgICAgICAgICAuZG9uZShmdW5jdGlvbihyZXMpIHsKLSAgICAgICAgICAgIHNlbGYu Z3JpZFZpZXcucXVlcnlfdG9vbF9vYmouc2V0VmFsdWUocmVzKTsKLSAgICAgICAgICAgIHNlbGYu Z3JpZFZpZXcuY3VycmVudF9maWxlID0gZTsKLSAgICAgICAgICAgIHNlbGYuZ3JpZFZpZXcucXVl cnlfdG9vbF9vYmouZmlsZV9kYXRhID0gcmVzOwotICAgICAgICAgICAgc2VsZi5zZXRUaXRsZShz ZWxmLmdyaWRWaWV3LmN1cnJlbnRfZmlsZS5zcGxpdCgnXFwnKS5wb3AoKS5zcGxpdCgnLycpLnBv cCgpLCB0cnVlKTsKLSAgICAgICAgICAgIHNlbGYudHJpZ2dlcigncGdhZG1pbi1zcWxlZGl0b3I6 bG9hZGluZy1pY29uOmhpZGUnKTsKLSAgICAgICAgICAgIC8vIGhpZGUgY3Vyc29yCi0gICAgICAg ICAgICAkYnVzeV9pY29uX2Rpdi5yZW1vdmVDbGFzcygnc2hvd19wcm9ncmVzcycpOwotCi0gICAg ICAgICAgICAvLyBkaXNhYmxlIHNhdmUgYnV0dG9uIG9uIGZpbGUgc2F2ZQotICAgICAgICAgICAg JCgnI2J0bi1zYXZlLWZpbGUnKS5wcm9wKCdkaXNhYmxlZCcsIHRydWUpOwotICAgICAgICAgICAg JCgnI2J0bi1maWxlLW1lbnUtc2F2ZScpLmNzcygnZGlzcGxheScsICdub25lJyk7Ci0KLSAgICAg ICAgICAgIC8vIFVwZGF0ZSB0aGUgZmxhZyBhcyBuZXcgY29udGVudCBpcyBqdXN0IGxvYWRlZC4K LSAgICAgICAgICAgIHNlbGYuaXNfcXVlcnlfY2hhbmdlZCA9IGZhbHNlOwotICAgICAgICAgICAg c2V0VGltZW91dCgoKSA9PiB7IHNlbGYuZ3JpZFZpZXcucXVlcnlfdG9vbF9vYmouZm9jdXMoKTsg fSwgMjAwKTsKLSAgICAgICAgICB9KQotICAgICAgICAgIC5mYWlsKGZ1bmN0aW9uKGVyKSB7Ci0g ICAgICAgICAgICBzZWxmLnRyaWdnZXIoJ3BnYWRtaW4tc3FsZWRpdG9yOmxvYWRpbmctaWNvbjpo aWRlJyk7Ci0gICAgICAgICAgICBsZXQgc3RhdGVQYXJhbXMgPSBbX2VdOwotICAgICAgICAgICAg bGV0IG1zZyA9IGh0dHBFcnJvckhhbmRsZXIuaGFuZGxlUXVlcnlUb29sQWpheEVycm9yKAotICAg ICAgICAgICAgICBwZ0FkbWluLCBzZWxmLCBlciwgJ19zZWxlY3RfZmlsZV9oYW5kbGVyJywgc3Rh dGVQYXJhbXMsIGZhbHNlCi0gICAgICAgICAgICApOwotICAgICAgICAgICAgaWYgKG1zZykKLSAg ICAgICAgICAgICAgTm90aWZ5LmVycm9yKG1zZyk7Ci0gICAgICAgICAgICAvLyBoaWRlIGN1cnNv cgotICAgICAgICAgICAgJGJ1c3lfaWNvbl9kaXYucmVtb3ZlQ2xhc3MoJ3Nob3dfcHJvZ3Jlc3Mn KTsKLSAgICAgICAgICB9KTsKLSAgICAgIH0sCi0KLSAgICAgIC8vIHJlYWQgZGF0YSBmcm9tIGNv ZGVtaXJyb3IgYW5kIHdyaXRlIHRvIGZpbGUKLSAgICAgIF9zYXZlX2ZpbGVfaGFuZGxlcjogZnVu Y3Rpb24oZSkgewotICAgICAgICB2YXIgc2VsZiA9IHRoaXMsCi0gICAgICAgICAgX2UgPSBlLAot ICAgICAgICAgIGRhdGEgPSB7Ci0gICAgICAgICAgICAnZmlsZV9uYW1lJzogZGVjb2RlVVJJKGUp LAotICAgICAgICAgICAgJ2ZpbGVfY29udGVudCc6IHNlbGYuZ3JpZFZpZXcucXVlcnlfdG9vbF9v YmouZ2V0VmFsdWUoKSwKLSAgICAgICAgICB9OwotICAgICAgICB2YXIgZmlsZV9kYXRhID0gc2Vs Zi5ncmlkVmlldy5xdWVyeV90b29sX29iai5nZXRWYWx1ZSgpOwotICAgICAgICBzZWxmLnRyaWdn ZXIoCi0gICAgICAgICAgJ3BnYWRtaW4tc3FsZWRpdG9yOmxvYWRpbmctaWNvbjpzaG93JywKLSAg ICAgICAgICBnZXR0ZXh0KCdTYXZpbmcgdGhlIHF1ZXJpZXMgaW4gdGhlIGZpbGUuLi4nKQotICAg ICAgICApOwotCi0gICAgICAgIC8vIE1ha2UgYWpheCBjYWxsIHRvIHNhdmUgdGhlIGRhdGEgdG8g ZmlsZQotICAgICAgICAkLmFqYXgoewotICAgICAgICAgIHVybDogdXJsX2Zvcignc3FsZWRpdG9y LnNhdmVfZmlsZScpLAotICAgICAgICAgIG1ldGhvZDogJ1BPU1QnLAotICAgICAgICAgIGNvbnRl bnRUeXBlOiAnYXBwbGljYXRpb24vanNvbicsCi0gICAgICAgICAgZGF0YTogSlNPTi5zdHJpbmdp ZnkoZGF0YSksCi0gICAgICAgIH0pCi0gICAgICAgICAgLmRvbmUoZnVuY3Rpb24ocmVzKSB7Ci0g ICAgICAgICAgICBpZiAocmVzLmRhdGEuc3RhdHVzKSB7Ci0gICAgICAgICAgICAgIE5vdGlmeS5z dWNjZXNzKGdldHRleHQoJ0ZpbGUgc2F2ZWQgc3VjY2Vzc2Z1bGx5LicpKTsKLSAgICAgICAgICAg ICAgc2VsZi5ncmlkVmlldy5jdXJyZW50X2ZpbGUgPSBlOwotICAgICAgICAgICAgICBzZWxmLnNl dFRpdGxlKHNlbGYuZ3JpZFZpZXcuY3VycmVudF9maWxlLnJlcGxhY2UoL14uKltcXFwvXS9nLCAn JyksIHRydWUpOwotICAgICAgICAgICAgICBzZWxmLmdyaWRWaWV3LnF1ZXJ5X3Rvb2xfb2JqLmZp bGVfZGF0YSA9IGZpbGVfZGF0YTsKLSAgICAgICAgICAgICAgLy8gZGlzYWJsZSBzYXZlIGJ1dHRv biBvbiBmaWxlIHNhdmUKLSAgICAgICAgICAgICAgJCgnI2J0bi1zYXZlLWZpbGUnKS5wcm9wKCdk aXNhYmxlZCcsIHRydWUpOwotICAgICAgICAgICAgICAkKCcjYnRuLWZpbGUtbWVudS1zYXZlJyku Y3NzKCdkaXNwbGF5JywgJ25vbmUnKTsKLQotICAgICAgICAgICAgICAvLyBVcGRhdGUgdGhlIGZs YWcgYXMgcXVlcnkgaXMgYWxyZWFkeSBzYXZlZC4KLSAgICAgICAgICAgICAgc2VsZi5pc19xdWVy eV9jaGFuZ2VkID0gZmFsc2U7Ci0gICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4geyBzZWxm LmdyaWRWaWV3LnF1ZXJ5X3Rvb2xfb2JqLmZvY3VzKCk7IH0sIDIwMCk7Ci0gICAgICAgICAgICB9 Ci0gICAgICAgICAgICBzZWxmLnRyaWdnZXIoJ3BnYWRtaW4tc3FsZWRpdG9yOmxvYWRpbmctaWNv bjpoaWRlJyk7Ci0gICAgICAgICAgICBpZiAoc2VsZi5jbG9zZV9vbl9zYXZlKSB7Ci0gICAgICAg ICAgICAgIC8vIENoZWNrIGZvciBhbnkgb3RoZXIgbmVlZGVkIGNvbmZpcm1hdGlvbnMgYmVmb3Jl IGNsb3NpbmcKLSAgICAgICAgICAgICAgc2VsZi5jaGVja19uZWVkZWRfY29uZmlybWF0aW9uc19i ZWZvcmVfY2xvc2luZ19wYW5lbCgpOwotICAgICAgICAgICAgfQotICAgICAgICAgIH0pCi0gICAg ICAgICAgLmZhaWwoZnVuY3Rpb24oZXIpIHsKLSAgICAgICAgICAgIHNlbGYudHJpZ2dlcigncGdh ZG1pbi1zcWxlZGl0b3I6bG9hZGluZy1pY29uOmhpZGUnKTsKLSAgICAgICAgICAgIGxldCBzdGF0 ZVBhcmFtcyA9IFtfZV07Ci0gICAgICAgICAgICBsZXQgbXNnID0gaHR0cEVycm9ySGFuZGxlci5o YW5kbGVRdWVyeVRvb2xBamF4RXJyb3IoCi0gICAgICAgICAgICAgIHBnQWRtaW4sIHNlbGYsIGVy LCAnX3NhdmVfZmlsZV9oYW5kbGVyJywgc3RhdGVQYXJhbXMsIGZhbHNlCi0gICAgICAgICAgICAp OwotICAgICAgICAgICAgaWYgKG1zZykKLSAgICAgICAgICAgICAgTm90aWZ5LmVycm9yKG1zZyk7 Ci0gICAgICAgICAgfSk7Ci0gICAgICB9LAotCi0gICAgICAvLyBjb2RlbWlycm9yIHRleHQgY2hh bmdlIGV2ZW50Ci0gICAgICBfb25fcXVlcnlfY2hhbmdlOiBmdW5jdGlvbigpIHsKLSAgICAgICAg dmFyIHNlbGYgPSB0aGlzOwotCi0gICAgICAgIGlmICghc2VsZi5pc19xdWVyeV9jaGFuZ2VkKSB7 Ci0gICAgICAgICAgLy8gVXBkYXRlIHRoZSBmbGFnIGFzIHF1ZXJ5IGlzIGdvaW5nIHRvIGNoYW5n ZWQuCi0gICAgICAgICAgc2VsZi5pc19xdWVyeV9jaGFuZ2VkID0gdHJ1ZTsKLQotICAgICAgICAg IGlmIChzZWxmLmdyaWRWaWV3LmN1cnJlbnRfZmlsZSkgewotICAgICAgICAgICAgdmFyIHRpdGxl ID0gc2VsZi5ncmlkVmlldy5jdXJyZW50X2ZpbGUucmVwbGFjZSgvXi4qW1xcXC9dL2csICcnKSAr ICcgKic7Ci0gICAgICAgICAgICBzZWxmLnNldFRpdGxlKHRpdGxlLCB0cnVlKTsKLSAgICAgICAg ICB9IGVsc2UgewotICAgICAgICAgICAgdmFyIG9wZW5fbmV3X3RhYiA9IHNlbGYuYnJvd3Nlcl9w cmVmZXJlbmNlcy5uZXdfYnJvd3Nlcl90YWJfb3BlbjsKLSAgICAgICAgICAgIHZhciBpc19kaXJ0 eV9lZGl0b3IgPSBmYWxzZTsKLSAgICAgICAgICAgIGlmKG9wZW5fbmV3X3RhYiAmJiBvcGVuX25l d190YWIuaW5jbHVkZXMoJ3F0JykpIHsKLSAgICAgICAgICAgICAgdGl0bGUgPSB3aW5kb3cuZG9j dW1lbnQudGl0bGUgKyAnIConOwotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAg Ly8gRmluZCB0aGUgdGl0bGUgb2YgdGhlIHZpc2libGUgcGFuZWwKLSAgICAgICAgICAgICAgXy5l YWNoKHBnV2luZG93LmRlZmF1bHQucGdBZG1pbi5Ccm93c2VyLmRvY2tlci5maW5kUGFuZWxzKCdm cm1fZGF0YWdyaWQnKSwgZnVuY3Rpb24ocCkgewotICAgICAgICAgICAgICAgIGlmIChwLmlzVmlz aWJsZSgpKSB7Ci0gICAgICAgICAgICAgICAgICBzZWxmLmdyaWRWaWV3LnBhbmVsX3RpdGxlID0g JChwLl90aXRsZSkudGV4dCgpOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgfSk7 Ci0KLSAgICAgICAgICAgICAgdGl0bGUgPSBzZWxmLmdyaWRWaWV3LnBhbmVsX3RpdGxlICsgJyAq JzsKLSAgICAgICAgICAgICAgaXNfZGlydHlfZWRpdG9yID0gdHJ1ZTsKLSAgICAgICAgICAgIH0K LSAgICAgICAgICAgIHNlbGYuc2V0VGl0bGUodGl0bGUsIGZhbHNlLCBpc19kaXJ0eV9lZGl0b3Ip OwotICAgICAgICAgIH0KLQotICAgICAgICAgICQoJyNidG4tc2F2ZS1maWxlJykucHJvcCgnZGlz YWJsZWQnLCBmYWxzZSk7Ci0gICAgICAgICAgJCgnI2J0bi1maWxlLW1lbnUtc2F2ZScpLmNzcygn ZGlzcGxheScsICdibG9jaycpOwotICAgICAgICAgICQoJyNidG4tZmlsZS1tZW51LWRyb3Bkb3du JykucHJvcCgnZGlzYWJsZWQnLCBmYWxzZSk7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAg aWYoc2VsZi5ncmlkVmlldy5jdXJyZW50X2ZpbGUpIHsKLSAgICAgICAgICAgIGlmIChzZWxmLmdy aWRWaWV3LnF1ZXJ5X3Rvb2xfb2JqLmZpbGVfZGF0YSA9PSBzZWxmLmdyaWRWaWV3LnF1ZXJ5X3Rv b2xfb2JqLmdldFZhbHVlKCkpIHsKLSAgICAgICAgICAgICAgdGl0bGUgPSBzZWxmLmdyaWRWaWV3 LmN1cnJlbnRfZmlsZS5yZXBsYWNlKC9eLipbXFxcL10vZywgJycpOwotICAgICAgICAgICAgICBp c19kaXJ0eV9lZGl0b3IgPSBmYWxzZTsKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAg ICAgIHRpdGxlID0gc2VsZi5ncmlkVmlldy5jdXJyZW50X2ZpbGUucmVwbGFjZSgvXi4qW1xcXC9d L2csICcnKSArICcgKic7Ci0gICAgICAgICAgICAgIGlzX2RpcnR5X2VkaXRvciA9IHRydWU7Ci0g ICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIHNlbGYuc2V0VGl0bGUodGl0bGUsIHRydWUsIGlz X2RpcnR5X2VkaXRvcik7Ci0gICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICB9LAotCi0gICAg ICAvLyBUaGlzIGZ1bmN0aW9uIHdpbGwgc2V0IHRoZSByZXF1aXJlZCBmbGFnIGZvciBwb2xsaW5n IHJlc3BvbnNlIGRhdGEKLSAgICAgIF9pbml0X3BvbGxpbmdfZmxhZ3M6IGZ1bmN0aW9uKCkgewot ICAgICAgICB2YXIgc2VsZiA9IHRoaXM7Ci0KLSAgICAgICAgLy8gVG8gZ2V0IGEgdGltZW91dCBm b3IgcG9sbGluZyBmYWxsYmFjayB0aW1lciBpbiBzZWNvbmRzIGluCi0gICAgICAgIC8vIHJlZ2Fy ZHMgdG8gZWxhcHNlZCB0aW1lCi0gICAgICAgIHNlbGYuUE9MTF9GQUxMQkFDS19USU1FID0gZnVu Y3Rpb24oKSB7Ci0gICAgICAgICAgdmFyIHNlY29uZHMgPSBwYXJzZUludCgoRGF0ZS5ub3coKSAt IHNlbGYucXVlcnlfc3RhcnRfdGltZS5nZXRUaW1lKCkpIC8gMTAwMCk7Ci0gICAgICAgICAgLy8g Y2FsY3VsYXRlICYgcmV0dXJuIGZhbGwgYmFjayBwb2xsaW5nIHRpbWVvdXQKLSAgICAgICAgICBp ZiAoc2Vjb25kcyA+PSAxMCAmJiBzZWNvbmRzIDwgMzApIHsKLSAgICAgICAgICAgIHJldHVybiA1 MDA7Ci0gICAgICAgICAgfSBlbHNlIGlmIChzZWNvbmRzID49IDMwICYmIHNlY29uZHMgPCA2MCkg ewotICAgICAgICAgICAgcmV0dXJuIDEwMDA7Ci0gICAgICAgICAgfSBlbHNlIGlmIChzZWNvbmRz ID49IDYwICYmIHNlY29uZHMgPCA5MCkgewotICAgICAgICAgICAgcmV0dXJuIDIwMDA7Ci0gICAg ICAgICAgfSBlbHNlIGlmIChzZWNvbmRzID49IDkwKSB7Ci0gICAgICAgICAgICByZXR1cm4gNTAw MDsKLSAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgcmV0dXJuIDE7Ci0gICAgICAgICAg fQotICAgICAgICB9OwotICAgICAgfSwKLSAgICAgIC8vIFRoaXMgZnVuY3Rpb24gd2lsbCBzaG93 IHRoZSBmaWx0ZXIgaW4gdGhlIHRleHQgYXJlYS4KLSAgICAgIF9zaG93X2ZpbHRlcjogZnVuY3Rp b24oKSB7Ci0gICAgICAgIGxldCBzZWxmID0gdGhpcywKLSAgICAgICAgICByZWNvbm5lY3QgPSBm YWxzZTsKLQotICAgICAgICAvKiBXaGVuIHNlcnZlciBpcyBkaXNjb25uZWN0ZWQgYW5kIGNvbm5l Y3RlZCwgY29ubmVjdGlvbiBpcyBsb3N0LAotICAgICAgICAgKiBUbyByZWNvbm5lY3QgcGFzcyB0 cnVlCi0gICAgICAgICAqLwotICAgICAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA+IDAgJiYKLSAg ICAgICAgICBhcmd1bWVudHNbYXJndW1lbnRzLmxlbmd0aCAtIDFdID09ICdjb25uZWN0Jykgewot ICAgICAgICAgIHJlY29ubmVjdCA9IHRydWU7Ci0gICAgICAgIH0KLSAgICAgICAgRmlsdGVySGFu ZGxlci5kaWFsb2coc2VsZiwgcmVjb25uZWN0KTsKLSAgICAgIH0sCi0gICAgICAvLyBUaGlzIGZ1 bmN0aW9uIHdpbGwgc2hvdyB0aGUgbmV3IGNvbm5lY3Rpb24uCi0gICAgICBfc2hvd19uZXdfY29u bmVjdGlvbjogZnVuY3Rpb24oKSB7Ci0gICAgICAgIGxldCBzZWxmID0gdGhpcywKLSAgICAgICAg ICByZWNvbm5lY3QgPSBmYWxzZTsKLQotICAgICAgICAvKiBXaGVuIHNlcnZlciBpcyBkaXNjb25u ZWN0ZWQgYW5kIGNvbm5lY3RlZCwgY29ubmVjdGlvbiBpcyBsb3N0LAotICAgICAgICAgKiBUbyBy ZWNvbm5lY3QgcGFzcyB0cnVlCi0gICAgICAgICAqLwotICAgICAgICBpZiAoYXJndW1lbnRzLmxl bmd0aCA+IDAgJiYgYXJndW1lbnRzW2FyZ3VtZW50cy5sZW5ndGggLSAxXSA9PSAnY29ubmVjdCcp IHsKLSAgICAgICAgICByZWNvbm5lY3QgPSB0cnVlOwotICAgICAgICB9Ci0KLSAgICAgICAgbmV3 Q29ubmVjdGlvbkhhbmRsZXIuZGlhbG9nKHNlbGYsIHJlY29ubmVjdCwgc2VsZi5icm93c2VyX3By ZWZlcmVuY2VzKTsKLSAgICAgIH0sCi0gICAgICAvLyBUaGlzIGZ1bmN0aW9uIHdpbGwgaW5jbHVk ZSB0aGUgZmlsdGVyIGJ5IHNlbGVjdGlvbi4KLSAgICAgIF9pbmNsdWRlX2ZpbHRlcjogZnVuY3Rp b24oKSB7Ci0gICAgICAgIHZhciBzZWxmID0gdGhpcywKLSAgICAgICAgICBkYXRhID0ge30sCi0g ICAgICAgICAgZ3JpZCwgYWN0aXZlX2NvbHVtbiwgY29sdW1uX2luZm8sIF92YWx1ZXM7Ci0KLSAg ICAgICAgZ3JpZCA9IHNlbGYuc2xpY2tncmlkOwotICAgICAgICBhY3RpdmVfY29sdW1uID0gZ3Jp ZC5nZXRBY3RpdmVDZWxsKCk7Ci0KLSAgICAgICAgLy8gSWYgbm8gY2VsbCBpcyBzZWxlY3RlZCB0 aGVuIHJldHVybiBmcm9tIHRoZSBmdW5jdGlvbgotICAgICAgICBpZiAoXy5pc051bGwoYWN0aXZl X2NvbHVtbikgfHwgXy5pc1VuZGVmaW5lZChhY3RpdmVfY29sdW1uKSkKLSAgICAgICAgICByZXR1 cm47Ci0KLSAgICAgICAgY29sdW1uX2luZm8gPSBncmlkLmdldENvbHVtbnMoKVthY3RpdmVfY29s dW1uLmNlbGxdOwotCi0gICAgICAgIC8vIEZldGNoIGN1cnJlbnQgcm93IGRhdGEgZnJvbSBncmlk Ci0gICAgICAgIF92YWx1ZXMgPSBncmlkLmdldERhdGFJdGVtKGFjdGl2ZV9jb2x1bW4ucm93LCBh Y3RpdmVfY29sdW1uLmNlbGwpOwotICAgICAgICBpZiAoXy5pc051bGwoX3ZhbHVlcykgfHwgXy5p c1VuZGVmaW5lZChfdmFsdWVzKSkKLSAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgLy8gQWRk IGNvbHVtbiBwb3NpdGlvbiBhbmQgaXQncyB2YWx1ZSB0byBkYXRhCi0gICAgICAgIGRhdGFbY29s dW1uX2luZm8uZmllbGRdID0gXy5pc1VuZGVmaW5lZChfdmFsdWVzW2NvbHVtbl9pbmZvLmZpZWxk XSkgPyAnJyA6IF92YWx1ZXNbY29sdW1uX2luZm8uZmllbGRdOwotCi0gICAgICAgIHNlbGYudHJp Z2dlcigKLSAgICAgICAgICAncGdhZG1pbi1zcWxlZGl0b3I6bG9hZGluZy1pY29uOnNob3cnLAot ICAgICAgICAgIGdldHRleHQoJ0FwcGx5aW5nIHRoZSBuZXcgZmlsdGVyLi4uJykKLSAgICAgICAg KTsKLQotICAgICAgICAvLyBNYWtlIGFqYXggY2FsbCB0byBpbmNsdWRlIHRoZSBmaWx0ZXIgYnkg c2VsZWN0aW9uCi0gICAgICAgICQuYWpheCh7Ci0gICAgICAgICAgdXJsOiB1cmxfZm9yKCdzcWxl ZGl0b3IuaW5jbHVzaXZlX2ZpbHRlcicsIHsKLSAgICAgICAgICAgICd0cmFuc19pZCc6IHNlbGYu dHJhbnNJZCwKLSAgICAgICAgICB9KSwKLSAgICAgICAgICBtZXRob2Q6ICdQT1NUJywKLSAgICAg ICAgICBjb250ZW50VHlwZTogJ2FwcGxpY2F0aW9uL2pzb24nLAotICAgICAgICAgIGRhdGE6IEpT T04uc3RyaW5naWZ5KGRhdGEpLAotICAgICAgICB9KQotICAgICAgICAgIC5kb25lKGZ1bmN0aW9u KHJlcykgewotICAgICAgICAgICAgc2VsZi50cmlnZ2VyKCdwZ2FkbWluLXNxbGVkaXRvcjpsb2Fk aW5nLWljb246aGlkZScpOwotICAgICAgICAgICAgc2V0VGltZW91dCgKLSAgICAgICAgICAgICAg ZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICAgICAgaWYgKHJlcy5kYXRhLnN0YXR1cykgewotICAg ICAgICAgICAgICAgIC8vIFJlZnJlc2ggdGhlIHNxbCBncmlkCi0gICAgICAgICAgICAgICAgICBx dWVyeVRvb2xBY3Rpb25zLmV4ZWN1dGVRdWVyeShzZWxmKTsKLSAgICAgICAgICAgICAgICB9IGVs c2UgewotICAgICAgICAgICAgICAgICAgTm90aWZ5LmFsZXJ0KGdldHRleHQoJ0ZpbHRlciBCeSBT ZWxlY3Rpb24gRXJyb3InKSwgcmVzLmRhdGEucmVzdWx0KTsKLSAgICAgICAgICAgICAgICB9Ci0g ICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICk7Ci0gICAgICAgICAgfSkKLSAgICAgICAgICAu ZmFpbChmdW5jdGlvbihlKSB7Ci0gICAgICAgICAgICBzZWxmLnRyaWdnZXIoJ3BnYWRtaW4tc3Fs ZWRpdG9yOmxvYWRpbmctaWNvbjpoaWRlJyk7Ci0gICAgICAgICAgICBsZXQgbXNnID0gaHR0cEVy cm9ySGFuZGxlci5oYW5kbGVRdWVyeVRvb2xBamF4RXJyb3IoCi0gICAgICAgICAgICAgIHBnQWRt aW4sIHNlbGYsIGUsICdfaW5jbHVkZV9maWx0ZXInLCBbXSwgdHJ1ZQotICAgICAgICAgICAgKTsK LSAgICAgICAgICAgIGlmIChtc2cpCi0gICAgICAgICAgICAgIE5vdGlmeS5hbGVydChnZXR0ZXh0 KCdGaWx0ZXIgQnkgU2VsZWN0aW9uIEVycm9yJyksIG1zZyk7Ci0gICAgICAgICAgfSk7Ci0gICAg ICB9LAotCi0gICAgICAvLyBUaGlzIGZ1bmN0aW9uIHdpbGwgZXhjbHVkZSB0aGUgZmlsdGVyIGJ5 IHNlbGVjdGlvbi4KLSAgICAgIF9leGNsdWRlX2ZpbHRlcjogZnVuY3Rpb24oKSB7Ci0gICAgICAg IHZhciBzZWxmID0gdGhpcywKLSAgICAgICAgICBkYXRhID0ge30sCi0gICAgICAgICAgZ3JpZCwg YWN0aXZlX2NvbHVtbiwgY29sdW1uX2luZm8sIF92YWx1ZXM7Ci0KLSAgICAgICAgZ3JpZCA9IHNl bGYuc2xpY2tncmlkOwotICAgICAgICBhY3RpdmVfY29sdW1uID0gZ3JpZC5nZXRBY3RpdmVDZWxs KCk7Ci0KLSAgICAgICAgLy8gSWYgbm8gY2VsbCBpcyBzZWxlY3RlZCB0aGVuIHJldHVybiBmcm9t IHRoZSBmdW5jdGlvbgotICAgICAgICBpZiAoXy5pc051bGwoYWN0aXZlX2NvbHVtbikgfHwgXy5p c1VuZGVmaW5lZChhY3RpdmVfY29sdW1uKSkKLSAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAg Y29sdW1uX2luZm8gPSBncmlkLmdldENvbHVtbnMoKVthY3RpdmVfY29sdW1uLmNlbGxdOwotCi0g ICAgICAgIC8vIEZldGNoIGN1cnJlbnQgcm93IGRhdGEgZnJvbSBncmlkCi0gICAgICAgIF92YWx1 ZXMgPSBncmlkLmdldERhdGFJdGVtKGFjdGl2ZV9jb2x1bW4ucm93LCBhY3RpdmVfY29sdW1uLmNl bGwpOwotICAgICAgICBpZiAoXy5pc051bGwoX3ZhbHVlcykgfHwgXy5pc1VuZGVmaW5lZChfdmFs dWVzKSkKLSAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgLy8gQWRkIGNvbHVtbiBwb3NpdGlv biBhbmQgaXQncyB2YWx1ZSB0byBkYXRhCi0gICAgICAgIGRhdGFbY29sdW1uX2luZm8uZmllbGRd ID0gXy5pc1VuZGVmaW5lZChfdmFsdWVzW2NvbHVtbl9pbmZvLmZpZWxkXSkgPyAnJyA6IF92YWx1 ZXNbY29sdW1uX2luZm8uZmllbGRdOwotCi0gICAgICAgIHNlbGYudHJpZ2dlcigKLSAgICAgICAg ICAncGdhZG1pbi1zcWxlZGl0b3I6bG9hZGluZy1pY29uOnNob3cnLAotICAgICAgICAgIGdldHRl eHQoJ0FwcGx5aW5nIHRoZSBuZXcgZmlsdGVyLi4uJykKLSAgICAgICAgKTsKLQotICAgICAgICAv LyBNYWtlIGFqYXggY2FsbCB0byBleGNsdWRlIHRoZSBmaWx0ZXIgYnkgc2VsZWN0aW9uLgotICAg ICAgICAkLmFqYXgoewotICAgICAgICAgIHVybDogdXJsX2Zvcignc3FsZWRpdG9yLmV4Y2x1c2l2 ZV9maWx0ZXInLCB7Ci0gICAgICAgICAgICAndHJhbnNfaWQnOiBzZWxmLnRyYW5zSWQsCi0gICAg ICAgICAgfSksCi0gICAgICAgICAgbWV0aG9kOiAnUE9TVCcsCi0gICAgICAgICAgY29udGVudFR5 cGU6ICdhcHBsaWNhdGlvbi9qc29uJywKLSAgICAgICAgICBkYXRhOiBKU09OLnN0cmluZ2lmeShk YXRhKSwKLSAgICAgICAgfSkKLSAgICAgICAgICAuZG9uZShmdW5jdGlvbihyZXMpIHsKLSAgICAg ICAgICAgIHNlbGYudHJpZ2dlcigncGdhZG1pbi1zcWxlZGl0b3I6bG9hZGluZy1pY29uOmhpZGUn KTsKLSAgICAgICAgICAgIHNldFRpbWVvdXQoCi0gICAgICAgICAgICAgIGZ1bmN0aW9uKCkgewot ICAgICAgICAgICAgICAgIGlmIChyZXMuZGF0YS5zdGF0dXMpIHsKLSAgICAgICAgICAgICAgICAv LyBSZWZyZXNoIHRoZSBzcWwgZ3JpZAotICAgICAgICAgICAgICAgICAgcXVlcnlUb29sQWN0aW9u cy5leGVjdXRlUXVlcnkoc2VsZik7Ci0gICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAg ICAgICAgICAgIE5vdGlmeS5hbGVydChnZXR0ZXh0KCdGaWx0ZXIgRXhjbHVkZSBTZWxlY3Rpb24g RXJyb3InKSwgcmVzLmRhdGEucmVzdWx0KTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAg ICAgIH0sIDEwCi0gICAgICAgICAgICApOwotICAgICAgICAgIH0pCi0gICAgICAgICAgLmZhaWwo ZnVuY3Rpb24oZSkgewotICAgICAgICAgICAgc2VsZi50cmlnZ2VyKCdwZ2FkbWluLXNxbGVkaXRv cjpsb2FkaW5nLWljb246aGlkZScpOwotICAgICAgICAgICAgbGV0IG1zZyA9IGh0dHBFcnJvckhh bmRsZXIuaGFuZGxlUXVlcnlUb29sQWpheEVycm9yKAotICAgICAgICAgICAgICBwZ0FkbWluLCBz ZWxmLCBlLCAnX2V4Y2x1ZGVfZmlsdGVyJywgW10sIHRydWUKLSAgICAgICAgICAgICk7Ci0gICAg ICAgICAgICBpZiAobXNnKQotICAgICAgICAgICAgICBOb3RpZnkuYWxlcnQoZ2V0dGV4dCgnRmls dGVyIEV4Y2x1ZGUgU2VsZWN0aW9uIEVycm9yJyksIG1zZyk7Ci0gICAgICAgICAgfSk7Ci0gICAg ICB9LAotCi0gICAgICAvLyBUaGlzIGZ1bmN0aW9uIHdpbGwgcmVtb3ZlIHRoZSBmaWx0ZXIuCi0g ICAgICBfcmVtb3ZlX2ZpbHRlcjogZnVuY3Rpb24oKSB7Ci0gICAgICAgIHZhciBzZWxmID0gdGhp czsKLQotICAgICAgICBzZWxmLnRyaWdnZXIoCi0gICAgICAgICAgJ3BnYWRtaW4tc3FsZWRpdG9y OmxvYWRpbmctaWNvbjpzaG93JywKLSAgICAgICAgICBnZXR0ZXh0KCdSZW1vdmluZyB0aGUgZmls dGVyLi4uJykKLSAgICAgICAgKTsKLQotICAgICAgICAvLyBNYWtlIGFqYXggY2FsbCB0byBleGNs dWRlIHRoZSBmaWx0ZXIgYnkgc2VsZWN0aW9uLgotICAgICAgICAkLmFqYXgoewotICAgICAgICAg IHVybDogdXJsX2Zvcignc3FsZWRpdG9yLnJlbW92ZV9maWx0ZXInLCB7Ci0gICAgICAgICAgICAn dHJhbnNfaWQnOiBzZWxmLnRyYW5zSWQsCi0gICAgICAgICAgfSksCi0gICAgICAgICAgbWV0aG9k OiAnUE9TVCcsCi0gICAgICAgIH0pCi0gICAgICAgICAgLmRvbmUoZnVuY3Rpb24ocmVzKSB7Ci0g ICAgICAgICAgICBzZWxmLnRyaWdnZXIoJ3BnYWRtaW4tc3FsZWRpdG9yOmxvYWRpbmctaWNvbjpo aWRlJyk7Ci0gICAgICAgICAgICBzZXRUaW1lb3V0KAotICAgICAgICAgICAgICBmdW5jdGlvbigp IHsKLSAgICAgICAgICAgICAgICBpZiAocmVzLmRhdGEuc3RhdHVzKSB7Ci0gICAgICAgICAgICAg ICAgLy8gUmVmcmVzaCB0aGUgc3FsIGdyaWQKLSAgICAgICAgICAgICAgICAgIHF1ZXJ5VG9vbEFj dGlvbnMuZXhlY3V0ZVF1ZXJ5KHNlbGYpOwotICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAg ICAgICAgICAgICAgICBOb3RpZnkuYWxlcnQoZ2V0dGV4dCgnUmVtb3ZlIEZpbHRlciBFcnJvcicp LCByZXMuZGF0YS5yZXN1bHQpOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgfQot ICAgICAgICAgICAgKTsKLSAgICAgICAgICB9KQotICAgICAgICAgIC5mYWlsKGZ1bmN0aW9uKGUp IHsKLSAgICAgICAgICAgIHNlbGYudHJpZ2dlcigncGdhZG1pbi1zcWxlZGl0b3I6bG9hZGluZy1p Y29uOmhpZGUnKTsKLSAgICAgICAgICAgIGxldCBtc2cgPSBodHRwRXJyb3JIYW5kbGVyLmhhbmRs ZVF1ZXJ5VG9vbEFqYXhFcnJvcigKLSAgICAgICAgICAgICAgcGdBZG1pbiwgc2VsZiwgZSwgJ19y ZW1vdmVfZmlsdGVyJywgW10sIHRydWUKLSAgICAgICAgICAgICk7Ci0gICAgICAgICAgICBpZiAo bXNnKQotICAgICAgICAgICAgICBOb3RpZnkuYWxlcnQoZ2V0dGV4dCgnUmVtb3ZlIEZpbHRlciBF cnJvcicpLCBtc2cpOwotICAgICAgICAgIH0pOwotICAgICAgfSwKLQotICAgICAgLy8gVGhpcyBm dW5jdGlvbiB3aWxsIGNvcHkgdGhlIHNlbGVjdGVkIHJvdy4KLSAgICAgIF9jb3B5X3JvdzogY29w eURhdGEsCi0KLSAgICAgIF9jb3B5X3Jvd193aXRoX2hlYWRlcjogZnVuY3Rpb24oKSB7Ci0gICAg ICAgICQoJy5jb3B5LXdpdGgtaGVhZGVyJykudG9nZ2xlQ2xhc3MoJ3Zpc2liaWxpdHktaGlkZGVu Jyk7Ci0gICAgICB9LAotCi0gICAgICAvLyBUaGlzIGZ1bmN0aW9uIHdpbGwgZW5hYmxlIFBhc3Rl IGJ1dHRvbiBpZiBkYXRhIGlzIGNvcGllZCBpbiBzb21lIG90aGVyIGFjdGl2ZSBzZXNzaW9uCi0g ICAgICBfY29waWVkX2luX290aGVyX3Nlc3Npb246IGZ1bmN0aW9uKGUsIGNvcGllZFdpdGhIZWFk ZXJzKSB7Ci0gICAgICAgIHBnQWRtaW4uU3FsRWRpdG9yLmNvcGllZEluT3RoZXJTZXNzaW9uV2l0 aEhlYWRlcnMgPSBjb3BpZWRXaXRoSGVhZGVyczsKLSAgICAgICAgJCgnI2J0bi1wYXN0ZS1yb3cn KS5wcm9wKCdkaXNhYmxlZCcsIGZhbHNlKTsKLSAgICAgIH0sCi0KLSAgICAgIC8vIFRoaXMgZnVu Y3Rpb24gd2lsbCBwYXN0ZSB0aGUgc2VsZWN0ZWQgcm93LgotICAgICAgX3Bhc3RlX3JvdzogZnVu Y3Rpb24oKSB7Ci0gICAgICAgIHZhciBzZWxmID0gdGhpczsKLSAgICAgICAgbGV0IHJvd3NUZXh0 ID0gY2xpcGJvYXJkLmdldFRleHRGcm9tQ2xpcGJvYXJkKCk7Ci0gICAgICAgIGxldCBjb3BpZWRf cm93cyA9IHBnYWRtaW5VdGlscy5DU1ZUb0FycmF5KHJvd3NUZXh0LCBzZWxmLnByZWZlcmVuY2Vz LnJlc3VsdHNfZ3JpZF9maWVsZF9zZXBhcmF0b3IsIHNlbGYucHJlZmVyZW5jZXMucmVzdWx0c19n cmlkX3F1b3RlX2NoYXIpOwotICAgICAgICAvLyBEbyBub3QgcGFyc2Ugcm93IGlmIHJvd3MgYXJl IGNvcGllZCB3aXRoIGhlYWRlcnMKLSAgICAgICAgaWYocGdBZG1pbi5TcWxFZGl0b3IuY29waWVk SW5PdGhlclNlc3Npb25XaXRoSGVhZGVycykgewotICAgICAgICAgIGNvcGllZF9yb3dzID0gY29w aWVkX3Jvd3Muc2xpY2UoMSk7Ci0gICAgICAgIH0KLSAgICAgICAgdmFyIHJvd19pbmRleCA9IDA7 Ci0gICAgICAgIGNvcGllZF9yb3dzID0gY29waWVkX3Jvd3MucmVkdWNlKChwYXJ0aWFsLCB2YWx1 ZXMpID0+IHsKLSAgICAgICAgICAvLyBzcGxpdCBlYWNoIHJvdyB3aXRoIGZpZWxkIHNlcGFyYXRv ciBjaGFyYWN0ZXIKLSAgICAgICAgICBsZXQgcm93ID0ge307Ci0gICAgICAgICAgZm9yIChsZXQg Y29sIGluIHNlbGYuY29sdW1ucykgewotICAgICAgICAgICAgbGV0IHYgPSB2YWx1ZXNbY29sXTsK LQotICAgICAgICAgICAgLy8gc2V0IHZhbHVlIHRvIGRlZmF1bHQgb3IgbnVsbCBkZXBlbmRpbmcg b24gY29sdW1uIG1ldGFkYXRhCi0gICAgICAgICAgICBpZih2ID09PSAnJykgewotICAgICAgICAg ICAgICBpZihzZWxmLmNvbHVtbnNbY29sXS5oYXNfZGVmYXVsdF92YWwpIHsKLSAgICAgICAgICAg ICAgICB2ID0gdW5kZWZpbmVkOwotICAgICAgICAgICAgICB9IGVsc2UgaWYgKHNlbGYuY29waWVk X3Jvd3Nbcm93X2luZGV4XVtzZWxmLmNvbHVtbnNbY29sXS5kaXNwbGF5X25hbWVdID09PSBudWxs KSB7Ci0gICAgICAgICAgICAgICAgdiA9IG51bGw7Ci0gICAgICAgICAgICAgIH0gZWxzZSB7Ci0g ICAgICAgICAgICAgICAgdiA9ICcnOwotICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0K LSAgICAgICAgICAgIGlmKHNlbGYuY29sdW1uc1tjb2xdLmNlbGwgPT09ICdib29sZWFuJykgewot ICAgICAgICAgICAgICBpZih2ID09ICd0cnVlJykgewotICAgICAgICAgICAgICAgIHYgPSB0cnVl OwotICAgICAgICAgICAgICB9IGVsc2UgaWYodiA9PSAnZmFsc2UnKSB7Ci0gICAgICAgICAgICAg ICAgdiA9IGZhbHNlOwotICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIHYg PSBudWxsOwotICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIHJv d1tzZWxmLmNvbHVtbnNbY29sXS5uYW1lXSA9IHY7Ci0gICAgICAgICAgfQotICAgICAgICAgIHBh cnRpYWwucHVzaChyb3cpOwotICAgICAgICAgIHJvd19pbmRleCArKzsKLSAgICAgICAgICByZXR1 cm4gcGFydGlhbDsKLSAgICAgICAgfSwgW10pOwotCi0gICAgICAgIC8vIElmIHRoZXJlIGFyZSBy b3dzIHRvIHBhc3RlPwotICAgICAgICBpZiAoY29waWVkX3Jvd3MubGVuZ3RoID4gMCkgewotICAg ICAgICAgIC8vIEVuYWJsZSBzYXZlIGJ1dHRvbiBzbyB0aGF0IHVzZXIgY2FuCi0gICAgICAgICAg Ly8gc2F2ZSBuZXdseSBwYXN0ZWQgcm93cyBvbiBzZXJ2ZXIKLSAgICAgICAgICAkKCcjYnRuLXNh dmUtZGF0YScpLnByb3AoJ2Rpc2FibGVkJywgZmFsc2UpOwotCi0gICAgICAgICAgdmFyIGdyaWQg PSBzZWxmLnNsaWNrZ3JpZCwKLSAgICAgICAgICAgIGRhdGFWaWV3ID0gZ3JpZC5nZXREYXRhKCks Ci0gICAgICAgICAgICBjb3VudCA9IGRhdGFWaWV3LmdldExlbmd0aCgpLAotICAgICAgICAgICAg YXJyYXlfdHlwZXMgPSBbXTsKLSAgICAgICAgICAvLyBmb3IgcXVpY2sgbG9vayB1cCBjcmVhdGUg bGlzdCBvZiBhcnJheSBkYXRhIHR5cGVzCi0gICAgICAgICAgZm9yICh2YXIgayBpbiBzZWxmLmNv bHVtbnMpIHsKLSAgICAgICAgICAgIGlmIChzZWxmLmNvbHVtbnNba10uaXNfYXJyYXkpIHsKLSAg ICAgICAgICAgICAgYXJyYXlfdHlwZXMucHVzaChzZWxmLmNvbHVtbnNba10ubmFtZSk7Ci0gICAg ICAgICAgICB9Ci0gICAgICAgICAgfQotCi0gICAgICAgICAgdmFyIGFycl90b19vYmplY3QgPSBm dW5jdGlvbiAoYXJyKSB7Ci0gICAgICAgICAgICB2YXIgb2JqID0ge307Ci0KLSAgICAgICAgICAg IF8uZWFjaChhcnIsIGZ1bmN0aW9uICh2YWwsIGkpIHsKLSAgICAgICAgICAgICAgaWYgKGFycltp XSAhPT0gdW5kZWZpbmVkKSB7Ci0gICAgICAgICAgICAgICAgLy8gRG8gbm90IHN0cmluZ2lmeSBh cnJheSB0eXBlcy4KLSAgICAgICAgICAgICAgICBpZiAoXy5pc09iamVjdChhcnJbaV0pICYmIGFy cmF5X3R5cGVzLmluZGV4T2YoaSkgPT0gLTEpIHsKLSAgICAgICAgICAgICAgICAgIG9ialtTdHJp bmcoaSldID0gSlNPTi5zdHJpbmdpZnkoYXJyW2ldKTsKLSAgICAgICAgICAgICAgICB9IGVsc2Ug ewotICAgICAgICAgICAgICAgICAgb2JqW1N0cmluZyhpKV0gPSBhcnJbaV07Ci0gICAgICAgICAg ICAgICAgfQotICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIHJl dHVybiBvYmo7Ci0gICAgICAgICAgfTsKLQotICAgICAgICAgIC8vIEdlbmVyYXRlIFVuaXF1ZSBr ZXkgZm9yIGVhY2ggcGFzdGVkIHJvdyhzKQotICAgICAgICAgIC8vIENvbnZlcnQgYXJyYXkgdmFs dWVzIHRvIG9iamVjdCB0byBzZW5kIHRvIHNlcnZlcgotICAgICAgICAgIC8vIEFkZCBmbGFnIGlz X3Jvd19jb3BpZWQgdG8gaGFuZGxlIFtkZWZhdWx0XSBhbmQgW251bGxdCi0gICAgICAgICAgLy8g Zm9yIGNvcGllZCByb3dzLgotICAgICAgICAgIC8vIEFkZCBpbmRleCBvZiBjb3BpZWQgcm93IGlu dG8gdGVtcF9uZXdfcm93cwotICAgICAgICAgIC8vIFRyaWdnZXIgZ3JpZC5vbkFkZE5ld1JvdyB3 aGVuIGEgcm93IGlzIGNvcGllZAotICAgICAgICAgIC8vIFJlc2V0IHNlbGVjdGlvbgotCi0gICAg ICAgICAgZGF0YVZpZXcuYmVnaW5VcGRhdGUoKTsKLSAgICAgICAgICBfLmVhY2goY29waWVkX3Jv d3MsIGZ1bmN0aW9uIChyb3cpIHsKLSAgICAgICAgICAgIHZhciBuZXdfcm93ID0gYXJyX3RvX29i amVjdChyb3cpLAotICAgICAgICAgICAgICBfa2V5ID0gKHNlbGYuZ3JpZFZpZXcuY2xpZW50X3By aW1hcnlfa2V5X2NvdW50ZXIrKykudG9TdHJpbmcoKTsKLSAgICAgICAgICAgIG5ld19yb3cuaXNf cm93X2NvcGllZCA9IHRydWU7Ci0gICAgICAgICAgICBzZWxmLnRlbXBfbmV3X3Jvd3MucHVzaChj b3VudCk7Ci0gICAgICAgICAgICBuZXdfcm93W3NlbGYuY2xpZW50X3ByaW1hcnlfa2V5XSA9IF9r ZXk7Ci0gICAgICAgICAgICBpZiAoc2VsZi5oYXNfb2lkcyAmJiBuZXdfcm93Lm9pZCkgewotICAg ICAgICAgICAgICBuZXdfcm93Lm9pZCA9IG51bGw7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAg ICAgIGRhdGFWaWV3LmFkZEl0ZW0obmV3X3Jvdyk7Ci0gICAgICAgICAgICBzZWxmLmRhdGFfc3Rv cmUuYWRkZWRbX2tleV0gPSB7Ci0gICAgICAgICAgICAgICdlcnInOiBmYWxzZSwKLSAgICAgICAg ICAgICAgJ2RhdGEnOiBuZXdfcm93LAotICAgICAgICAgICAgfTsKLSAgICAgICAgICAgIHNlbGYu ZGF0YV9zdG9yZS5hZGRlZF9pbmRleFtjb3VudF0gPSBfa2V5OwotICAgICAgICAgICAgY291bnQr KzsKLSAgICAgICAgICB9KTsKLSAgICAgICAgICBkYXRhVmlldy5lbmRVcGRhdGUoKTsKLSAgICAg ICAgICBncmlkLmludmFsaWRhdGVSb3coZ3JpZC5nZXRTZWxlY3RlZFJvd3MoKSk7Ci0gICAgICAg ICAgZ3JpZC51cGRhdGVSb3dDb3VudCgpOwotICAgICAgICAgIGdyaWQucmVuZGVyKCk7Ci0gICAg ICAgICAgLy8gUGFzdGVkIHJvdy9zIGFsd2F5cyBhcHBlbmQgc28gYnJpbmcgbGFzdCByb3cgaW4g dmlldyBwb3J0LgotICAgICAgICAgIGdyaWQuc2Nyb2xsUm93SW50b1ZpZXcoZGF0YVZpZXcuZ2V0 TGVuZ3RoKCkpOwotICAgICAgICAgIGdyaWQuc2V0U2VsZWN0ZWRSb3dzKFtdKTsKLSAgICAgICAg fQotICAgICAgfSwKLQotICAgICAgLy8gVGhpcyBmdW5jdGlvbiB3aWxsIHNldCB0aGUgbGltaXQg Zm9yIFNRTCBxdWVyeQotICAgICAgX3NldF9saW1pdDogZnVuY3Rpb24oKSB7Ci0gICAgICAgIHZh ciBzZWxmID0gdGhpcywKLSAgICAgICAgICBsaW1pdCA9IHBhcnNlSW50KCQoJy5saW1pdCcpLnZh bCgpKTsKLQotICAgICAgICBzZWxmLnRyaWdnZXIoCi0gICAgICAgICAgJ3BnYWRtaW4tc3FsZWRp dG9yOmxvYWRpbmctaWNvbjpzaG93JywKLSAgICAgICAgICBnZXR0ZXh0KCdTZXR0aW5nIHRoZSBs aW1pdCBvbiB0aGUgcmVzdWx0Li4uJykKLSAgICAgICAgKTsKLSAgICAgICAgLy8gTWFrZSBhamF4 IGNhbGwgdG8gY2hhbmdlIHRoZSBsaW1pdAotICAgICAgICAkLmFqYXgoewotICAgICAgICAgIHVy bDogdXJsX2Zvcignc3FsZWRpdG9yLnNldF9saW1pdCcsIHsKLSAgICAgICAgICAgICd0cmFuc19p ZCc6IHNlbGYudHJhbnNJZCwKLSAgICAgICAgICB9KSwKLSAgICAgICAgICBtZXRob2Q6ICdQT1NU JywKLSAgICAgICAgICBjb250ZW50VHlwZTogJ2FwcGxpY2F0aW9uL2pzb24nLAotICAgICAgICAg IGRhdGE6IEpTT04uc3RyaW5naWZ5KGxpbWl0KSwKLSAgICAgICAgfSkKLSAgICAgICAgICAuZG9u ZShmdW5jdGlvbihyZXMpIHsKLSAgICAgICAgICAgIHNlbGYudHJpZ2dlcigncGdhZG1pbi1zcWxl ZGl0b3I6bG9hZGluZy1pY29uOmhpZGUnKTsKLSAgICAgICAgICAgIHNldFRpbWVvdXQoCi0gICAg ICAgICAgICAgIGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgICAgIGlmIChyZXMuZGF0YS5zdGF0 dXMpIHsKLSAgICAgICAgICAgICAgICAvLyBSZWZyZXNoIHRoZSBzcWwgZ3JpZAotICAgICAgICAg ICAgICAgICAgcXVlcnlUb29sQWN0aW9ucy5leGVjdXRlUXVlcnkoc2VsZik7Ci0gICAgICAgICAg ICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIE5vdGlmeS5hbGVydChnZXR0ZXh0KCdD aGFuZ2UgbGltaXQgRXJyb3InKSwgcmVzLmRhdGEucmVzdWx0KTsKLSAgICAgICAgICAgICAgICB9 Ci0gICAgICAgICAgICAgIH0sIDEwCi0gICAgICAgICAgICApOwotICAgICAgICAgIH0pCi0gICAg ICAgICAgLmZhaWwoZnVuY3Rpb24oZSkgewotICAgICAgICAgICAgc2VsZi50cmlnZ2VyKCdwZ2Fk bWluLXNxbGVkaXRvcjpsb2FkaW5nLWljb246aGlkZScpOwotICAgICAgICAgICAgbGV0IG1zZyA9 IGh0dHBFcnJvckhhbmRsZXIuaGFuZGxlUXVlcnlUb29sQWpheEVycm9yKAotICAgICAgICAgICAg ICBwZ0FkbWluLCBzZWxmLCBlLCAnX3NldF9saW1pdCcsIFtdLCB0cnVlCi0gICAgICAgICAgICAp OwotICAgICAgICAgICAgaWYgKG1zZykKLSAgICAgICAgICAgICAgTm90aWZ5LmFsZXJ0KGdldHRl eHQoJ0NoYW5nZSBsaW1pdCBFcnJvcicpLCBtc2cpOwotICAgICAgICAgIH0pOwotICAgICAgfSwK LQotICAgICAgLy8gVGhpcyBmdW5jdGlvbiBpcyB1c2VkIHRvIGVuYWJsZS9kaXNhYmxlIGJ1dHRv bnMKLSAgICAgIGRpc2FibGVfdG9vbF9idXR0b25zOiBmdW5jdGlvbihkaXNhYmxlZCwgZGlzYWJs ZV9jYW5jZWw9bnVsbCkgewotICAgICAgICBsZXQgbW9kZV9kaXNhYmxlZCA9IGRpc2FibGVkOwot Ci0gICAgICAgIC8qIEJ1dHRvbnMgYmUgYWx3YXlzIGRpc2FibGVkIGluIHZpZXcvZWRpdCBtb2Rl ICovCi0gICAgICAgIGlmKCF0aGlzLmlzX3F1ZXJ5X3Rvb2wpIHsKLSAgICAgICAgICBtb2RlX2Rp c2FibGVkID0gdHJ1ZTsKLSAgICAgICAgfQotCi0gICAgICAgICQoJyNidG4tZXhwbGFpbicpLnBy b3AoJ2Rpc2FibGVkJywgbW9kZV9kaXNhYmxlZCk7Ci0gICAgICAgICQoJyNidG4tZXhwbGFpbi1h bmFseXplJykucHJvcCgnZGlzYWJsZWQnLCBtb2RlX2Rpc2FibGVkKTsKLSAgICAgICAgJCgnI2J0 bi1leHBsYWluLW9wdGlvbnMtZHJvcGRvd24nKS5wcm9wKCdkaXNhYmxlZCcsIG1vZGVfZGlzYWJs ZWQpOwotICAgICAgICAkKCcjYnRuLWVkaXQtZHJvcGRvd24nKS5wcm9wKCdkaXNhYmxlZCcsIG1v ZGVfZGlzYWJsZWQpOwotICAgICAgICAkKCcjYnRuLWxvYWQtZmlsZScpLnByb3AoJ2Rpc2FibGVk JywgbW9kZV9kaXNhYmxlZCk7Ci0gICAgICAgIGlmKHRoaXMuZ3JpZFZpZXcuY3VycmVudF9maWxl KSB7Ci0gICAgICAgICAgaWYodGhpcy5ncmlkVmlldy5xdWVyeV90b29sX29iai5maWxlX2RhdGEg IT0gdGhpcy5ncmlkVmlldy5xdWVyeV90b29sX29iai5nZXRWYWx1ZSgpKSB7Ci0gICAgICAgICAg ICAkKCcjYnRuLXNhdmUtZmlsZScpLnByb3AoJ2Rpc2FibGVkJywgbW9kZV9kaXNhYmxlZCk7Ci0g ICAgICAgICAgfQotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICQoJyNidG4tc2F2ZS1maWxl JykucHJvcCgnZGlzYWJsZWQnLCBtb2RlX2Rpc2FibGVkKTsKLSAgICAgICAgfQotCi0gICAgICAg ICQoJyNidG4tZmlsZS1tZW51LWRyb3Bkb3duJykucHJvcCgnZGlzYWJsZWQnLCBtb2RlX2Rpc2Fi bGVkKTsKLSAgICAgICAgJCgnI2J0bi1maW5kJykucHJvcCgnZGlzYWJsZWQnLCBtb2RlX2Rpc2Fi bGVkKTsKLSAgICAgICAgJCgnI2J0bi1maW5kLW1lbnUtZHJvcGRvd24nKS5wcm9wKCdkaXNhYmxl ZCcsIG1vZGVfZGlzYWJsZWQpOwotICAgICAgICAkKCcjYnRuLW1hY3JvLWRyb3Bkb3duJykucHJv cCgnZGlzYWJsZWQnLCBtb2RlX2Rpc2FibGVkKTsKLQotICAgICAgICBpZiAodGhpcy5pc19xdWVy eV90b29sKSB7Ci0KLSAgICAgICAgICBpZihkaXNhYmxlX2NhbmNlbCAhPT0gbnVsbCkKLSAgICAg ICAgICAgICQoJyNidG4tY2FuY2VsLXF1ZXJ5JykucHJvcCgnZGlzYWJsZWQnLCBkaXNhYmxlX2Nh bmNlbCk7Ci0gICAgICAgICAgLy8gQ2FuY2VsIHF1ZXJ5IHRvb2wgbmVlZHMgb3Bwb3NpdGUgYmVo YXZpb3VyIGlmIG5vdCBleHBsaWNpdGx5IGdpdmVuCi0gICAgICAgICAgZWxzZQotICAgICAgICAg ICAgJCgnI2J0bi1jYW5jZWwtcXVlcnknKS5wcm9wKCdkaXNhYmxlZCcsICFkaXNhYmxlZCk7Ci0K LSAgICAgICAgICBpZih0aGlzLmlzX3RyYW5zYWN0aW9uX2J1dHRvbnNfZGlzYWJsZWQpIHsKLSAg ICAgICAgICAgICQoJyNidG4tcXVlcnktZHJvcGRvd24nKS5wcm9wKCdkaXNhYmxlZCcsIGRpc2Fi bGVkKTsKLSAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgJCgnI2J0bi1xdWVyeS1kcm9w ZG93bicpLnByb3AoJ2Rpc2FibGVkJywgdHJ1ZSk7Ci0gICAgICAgICAgfQotICAgICAgICB9IGVs c2UgewotICAgICAgICAgICQoJyNidG4tcXVlcnktZHJvcGRvd24nKS5wcm9wKCdkaXNhYmxlZCcs IG1vZGVfZGlzYWJsZWQpOwotICAgICAgICB9Ci0gICAgICB9LAotCi0gICAgICAvLyBUaGlzIGZ1 bmN0aW9uIGlzIHVzZWQgdG8gZW5hYmxlL2Rpc2FibGUgY29tbWl0L3JvbGxiYWNrIGJ1dHRvbnMK LSAgICAgIGRpc2FibGVfdHJhbnNhY3Rpb25fYnV0dG9uczogZnVuY3Rpb24oZGlzYWJsZWQpIHsK LSAgICAgICAgdGhpcy5pc190cmFuc2FjdGlvbl9idXR0b25zX2Rpc2FibGVkID0gZGlzYWJsZWQ7 Ci0gICAgICAgIGlmICh0aGlzLmlzX3F1ZXJ5X3Rvb2wpIHsKLSAgICAgICAgICAkKCcjYnRuLWNv bW1pdCcpLnByb3AoJ2Rpc2FibGVkJywgZGlzYWJsZWQpOwotICAgICAgICAgICQoJyNidG4tcm9s bGJhY2snKS5wcm9wKCdkaXNhYmxlZCcsIGRpc2FibGVkKTsKLSAgICAgICAgfQotICAgICAgfSwK LQotICAgICAgLyogVGhpcyBmdW5jdGlvbiBpcyB1c2VkIHRvIGhpZ2hsaWdodCB0aGUgZXJyb3Ig bGluZSBhbmQKLSAgICAgICAqIHVuZGVybGluaW5nIGZvciB0aGUgZXJyb3Igd29yZC4KLSAgICAg ICAqLwotICAgICAgX2hpZ2hsaWdodF9lcnJvcjogZnVuY3Rpb24ocmVzdWx0KSB7Ci0gICAgICAg IHZhciBzZWxmID0gdGhpcywKLSAgICAgICAgICBlcnJvcl9saW5lX25vID0gMCwKLSAgICAgICAg ICBzdGFydF9tYXJrZXIgPSAwLAotICAgICAgICAgIGVuZF9tYXJrZXIgPSAwLAotICAgICAgICAg IHNlbGVjdGVkX2xpbmVfbm8gPSAwOwotCi0gICAgICAgIC8vIFJlbW92ZSBhbHJlYWR5IGV4aXN0 aW5nIG1hcmtlcgotICAgICAgICBzZWxmLmdyaWRWaWV3LnF1ZXJ5X3Rvb2xfb2JqLnJlbW92ZUxp bmVDbGFzcyhzZWxmLm1hcmtlZF9saW5lX25vLCAnd3JhcCcsICdDb2RlTWlycm9yLWFjdGl2ZWxp bmUtYmFja2dyb3VuZCcpOwotCi0gICAgICAgIC8vIEluIGNhc2Ugb2Ygc2VsZWN0aW9uIHdlIG5l ZWQgdG8gZmluZCB0aGUgYWN0dWFsIGxpbmUgbm8KLSAgICAgICAgaWYgKHNlbGYuZ3JpZFZpZXcu cXVlcnlfdG9vbF9vYmouZ2V0U2VsZWN0aW9uKCkubGVuZ3RoID4gMCkKLSAgICAgICAgICBzZWxl Y3RlZF9saW5lX25vID0gc2VsZi5ncmlkVmlldy5xdWVyeV90b29sX29iai5nZXRDdXJzb3IodHJ1 ZSkubGluZTsKLQotICAgICAgICAvLyBGZXRjaCB0aGUgTElORSBzdHJpbmcgdXNpbmcgcmVnZXgg ZnJvbSB0aGUgcmVzdWx0Ci0gICAgICAgIHZhciBsaW5lID0gL0xJTkUgKFxkKykvLmV4ZWMocmVz dWx0KSwKLSAgICAgICAgICAvLyBGZXRjaCB0aGUgQ2hhcmFjdGVyIHN0cmluZyB1c2luZyByZWdl eCBmcm9tIHRoZSByZXN1bHQKLSAgICAgICAgICBjaGFyID0gL0NoYXJhY3RlcjogKFxkKykvLmV4 ZWMocmVzdWx0KTsKLQotICAgICAgICAvLyBJZiBsaW5lIGFuZCBjaGFyYWN0ZXIgaXMgbnVsbCB0 aGVuIG5vIG5lZWQgdG8gbWFyawotICAgICAgICBpZiAobGluZSAhPSBudWxsICYmIGNoYXIgIT0g bnVsbCkgewotICAgICAgICAgIGVycm9yX2xpbmVfbm8gPSBzZWxmLm1hcmtlZF9saW5lX25vID0g KHBhcnNlSW50KGxpbmVbMV0pIC0gMSkgKyBzZWxlY3RlZF9saW5lX25vOwotICAgICAgICAgIHZh ciBlcnJvcl9jaGFyX25vID0gKHBhcnNlSW50KGNoYXJbMV0pIC0gMSk7Ci0KLSAgICAgICAgICAv KiBXZSBuZWVkIHRvIGxvb3AgdGhyb3VnaCBlYWNoIGxpbmUgdGlsbCB0aGUgZXJyb3IgbGluZSBh bmQKLSAgICAgICAgICAgKiBjb3VudCB0aGUgdG90YWwgbm8gb2YgY2hhcmFjdGVyIHRvIGZpZ3Vy ZSBvdXQgdGhlIGFjdHVhbAotICAgICAgICAgICAqIHN0YXJ0aW5nL2VuZGluZyBtYXJrZXIgcG9p bnQgZm9yIHRoZSBpbmRpdmlkdWFsIGxpbmUuIFdlCi0gICAgICAgICAgICogaGF2ZSBhbHNvIGFk ZGVkIDEgcGVyIGxpbmUgZm9yIHRoZSAiXG4iIGNoYXJhY3Rlci4KLSAgICAgICAgICAgKi8KLSAg ICAgICAgICB2YXIgcHJldl9saW5lX2NoYXJzID0gMDsKLSAgICAgICAgICB2YXIgbG9vcF9pbmRl eCA9IHNlbGVjdGVkX2xpbmVfbm8gPiAwID8gc2VsZWN0ZWRfbGluZV9ubyA6IDA7Ci0gICAgICAg ICAgZm9yICh2YXIgaSA9IGxvb3BfaW5kZXg7IGkgPCBlcnJvcl9saW5lX25vOyBpKyspCi0gICAg ICAgICAgICBwcmV2X2xpbmVfY2hhcnMgKz0gc2VsZi5ncmlkVmlldy5xdWVyeV90b29sX29iai5n ZXRMaW5lKGkpLmxlbmd0aCArIDE7Ci0KLSAgICAgICAgICAvKiBNYXJrZXIgc3RhcnRpbmcgcG9p bnQgZm9yIHRoZSBpbmRpdmlkdWFsIGxpbmUgaXMKLSAgICAgICAgICAgKiBlcXVhbCB0byBlcnJv ciBjaGFyYWN0ZXIgaW5kZXggbWludXMgdG90YWwgbm8gb2YKLSAgICAgICAgICAgKiBjaGFyYWN0 ZXIgdGlsbCB0aGUgZXJyb3IgbGluZSBzdGFydHMuCi0gICAgICAgICAgICovCi0gICAgICAgICAg c3RhcnRfbWFya2VyID0gZXJyb3JfY2hhcl9ubyAtIHByZXZfbGluZV9jaGFyczsKLQotICAgICAg ICAgIC8vIEZpbmQgdGhlIG5leHQgc3BhY2UgZnJvbSB0aGUgY2hhcmFjdGVyIG9yIGVuZCBvZiBs aW5lCi0gICAgICAgICAgdmFyIGVycm9yX2xpbmUgPSBzZWxmLmdyaWRWaWV3LnF1ZXJ5X3Rvb2xf b2JqLmdldExpbmUoZXJyb3JfbGluZV9ubyk7Ci0KLSAgICAgICAgICBpZiAoXy5pc1VuZGVmaW5l ZChlcnJvcl9saW5lKSkgcmV0dXJuOwotICAgICAgICAgIGVuZF9tYXJrZXIgPSBlcnJvcl9saW5l LmluZGV4T2YoJyAnLCBzdGFydF9tYXJrZXIpOwotICAgICAgICAgIGlmIChlbmRfbWFya2VyIDwg MCkKLSAgICAgICAgICAgIGVuZF9tYXJrZXIgPSBlcnJvcl9saW5lLmxlbmd0aDsKLQotICAgICAg ICAgIC8vIE1hcmsgdGhlIGVycm9yIHRleHQKLSAgICAgICAgICBzZWxmLmdyaWRWaWV3Lm1hcmtl ciA9IHNlbGYuZ3JpZFZpZXcucXVlcnlfdG9vbF9vYmoubWFya1RleHQoewotICAgICAgICAgICAg bGluZTogZXJyb3JfbGluZV9ubywKLSAgICAgICAgICAgIGNoOiBzdGFydF9tYXJrZXIsCi0gICAg ICAgICAgfSwgewotICAgICAgICAgICAgbGluZTogZXJyb3JfbGluZV9ubywKLSAgICAgICAgICAg IGNoOiBlbmRfbWFya2VyLAotICAgICAgICAgIH0sIHsKLSAgICAgICAgICAgIGNsYXNzTmFtZTog J3NxbC1lZGl0b3ItbWFyaycsCi0gICAgICAgICAgfSk7Ci0KLSAgICAgICAgICBzZWxmLmdyaWRW aWV3LnF1ZXJ5X3Rvb2xfb2JqLmFkZExpbmVDbGFzcyhzZWxmLm1hcmtlZF9saW5lX25vLCAnd3Jh cCcsICdDb2RlTWlycm9yLWFjdGl2ZWxpbmUtYmFja2dyb3VuZCcpOwotICAgICAgICB9Ci0gICAg ICB9LAotCi0gICAgICAvLyBUaGlzIGZ1bmN0aW9uIHdpbGwgY2FuY2VsIHRoZSBydW5uaW5nIHF1 ZXJ5LgotICAgICAgX2NhbmNlbF9xdWVyeTogZnVuY3Rpb24oKSB7Ci0gICAgICAgIHZhciBzZWxm ID0gdGhpczsKLSAgICAgICAgJC5hamF4KHsKLSAgICAgICAgICB1cmw6IHVybF9mb3IoJ3NxbGVk aXRvci5jYW5jZWxfdHJhbnNhY3Rpb24nLCB7Ci0gICAgICAgICAgICAndHJhbnNfaWQnOiBzZWxm LnRyYW5zSWQsCi0gICAgICAgICAgfSksCi0gICAgICAgICAgbWV0aG9kOiAnUE9TVCcsCi0gICAg ICAgICAgY29udGVudFR5cGU6ICdhcHBsaWNhdGlvbi9qc29uJywKLSAgICAgICAgfSkKLSAgICAg ICAgICAuZG9uZShmdW5jdGlvbihyZXMpIHsKLSAgICAgICAgICAgIGlmICghcmVzLmRhdGEuc3Rh dHVzKSB7Ci0gICAgICAgICAgICAgIE5vdGlmeS5hbGVydChnZXR0ZXh0KCdDYW5jZWwgUXVlcnkg RXJyb3InKSwgcmVzLmRhdGEucmVzdWx0KTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHNl bGYuZGlzYWJsZV90b29sX2J1dHRvbnMoZmFsc2UpOwotICAgICAgICAgICAgaXNfcXVlcnlfcnVu bmluZyA9IGZhbHNlOwotICAgICAgICAgICAgaWYoIV8uaXNVbmRlZmluZWQoc2VsZi5kb3dubG9h ZF9yZXN1bHRzX29iaikpIHsKLSAgICAgICAgICAgICAgc2VsZi5kb3dubG9hZF9yZXN1bHRzX29i ai5hYm9ydCgpOwotICAgICAgICAgICAgICAkKCcjYnRuLWZsYXNoJykucHJvcCgnZGlzYWJsZWQn LCBmYWxzZSk7Ci0gICAgICAgICAgICAgIHNlbGYudHJpZ2dlcigKLSAgICAgICAgICAgICAgICAn cGdhZG1pbi1zcWxlZGl0b3I6bG9hZGluZy1pY29uOmhpZGUnKTsKLSAgICAgICAgICAgIH0KLSAg ICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4geyBzZWxmLmdyaWRWaWV3LnF1ZXJ5X3Rvb2xfb2Jq LmZvY3VzKCk7IH0sIDIwMCk7Ci0gICAgICAgICAgfSkKLSAgICAgICAgICAuZmFpbChmdW5jdGlv bihlKSB7Ci0gICAgICAgICAgICBzZWxmLmRpc2FibGVfdG9vbF9idXR0b25zKGZhbHNlKTsKLQot ICAgICAgICAgICAgbGV0IG1zZyA9IGh0dHBFcnJvckhhbmRsZXIuaGFuZGxlUXVlcnlUb29sQWph eEVycm9yKAotICAgICAgICAgICAgICBwZ0FkbWluLCBzZWxmLCBlLCAnX2NhbmNlbF9xdWVyeScs IFtdLCBmYWxzZQotICAgICAgICAgICAgKTsKLSAgICAgICAgICAgIGlmIChtc2cpCi0gICAgICAg ICAgICAgIE5vdGlmeS5hbGVydChnZXR0ZXh0KCdDYW5jZWwgUXVlcnkgRXJyb3InKSwgbXNnKTsK LSAgICAgICAgICB9KTsKLSAgICAgIH0sCi0KLSAgICAgIC8vIFRyaWdnZXIgcXVlcnkgcmVzdWx0 IGRvd25sb2FkIHRvIGNzdi4KLSAgICAgIHRyaWdnZXJfY3N2X2Rvd25sb2FkOiBmdW5jdGlvbihm aWxlbmFtZSkgewotICAgICAgICB2YXIgc2VsZiA9IHRoaXMsCi0gICAgICAgICAgdXJsID0gdXJs X2Zvcignc3FsZWRpdG9yLnF1ZXJ5X3Rvb2xfZG93bmxvYWQnLCB7Ci0gICAgICAgICAgICAndHJh bnNfaWQnOiBzZWxmLnRyYW5zSWQsCi0gICAgICAgICAgfSksCi0gICAgICAgICAgZGF0YSA9IHsg ZmlsZW5hbWU6IGZpbGVuYW1lIH07Ci0KLSAgICAgICAgLy8gRGlzYWJsZSB0aGUgRXhlY3V0ZSBi dXR0b24KLSAgICAgICAgJCgnI2J0bi1mbGFzaCcpLnByb3AoJ2Rpc2FibGVkJywgdHJ1ZSk7Ci0g ICAgICAgIHNlbGYuZW5hYmxlX2Rpc2FibGVfZG93bmxvYWRfYnRuKHRydWUpOwotICAgICAgICBz ZWxmLmRpc2FibGVfdG9vbF9idXR0b25zKHRydWUpOwotICAgICAgICBzZWxmLnNldF9zcWxfbWVz c2FnZSgnJyk7Ci0gICAgICAgIHNlbGYudHJpZ2dlcigKLSAgICAgICAgICAncGdhZG1pbi1zcWxl ZGl0b3I6bG9hZGluZy1pY29uOnNob3cnLAotICAgICAgICAgIGdldHRleHQoJ0Rvd25sb2FkaW5n IFJlc3VsdHMuLi4nKQotICAgICAgICApOwotCi0gICAgICAgIC8vIEdldCB0aGUgQ1NWIGZpbGUK LSAgICAgICAgc2VsZi5kb3dubG9hZF9yZXN1bHRzX29iaiA9ICQuYWpheCh7Ci0gICAgICAgICAg dHlwZTogJ1BPU1QnLAotICAgICAgICAgIHVybDogdXJsLAotICAgICAgICAgIGRhdGE6IGRhdGEs Ci0gICAgICAgICAgY2FjaGU6IGZhbHNlLAotICAgICAgICB9KS5kb25lKGZ1bmN0aW9uKHJlc3Bv bnNlKSB7Ci0gICAgICAgICAgLy8gaWYgcmVzcG9uc2UuZGF0YSBwcmVzZW50LCBleHRyYWN0IHRo ZSBtZXNzYWdlCi0gICAgICAgICAgaWYoIV8uaXNVbmRlZmluZWQocmVzcG9uc2UuZGF0YSkpIHsK LSAgICAgICAgICAgIGlmKCFyZXNwb25zZS5zdGF0dXMpIHsKLSAgICAgICAgICAgICAgc2VsZi5f aGlnaGxpZ2h0X2Vycm9yKHJlc3BvbnNlLmRhdGEucmVzdWx0KTsKLSAgICAgICAgICAgICAgc2Vs Zi5zZXRfc3FsX21lc3NhZ2UocmVzcG9uc2UuZGF0YS5yZXN1bHQpOwotICAgICAgICAgICAgfQot ICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBsZXQgcmVzcEJsb2IgPSBuZXcgQmxvYihb cmVzcG9uc2VdLCB7dHlwZSA6ICd0ZXh0L2Nzdid9KSwKLSAgICAgICAgICAgICAgdXJsQ3JlYXRv ciA9IHdpbmRvdy5VUkwgfHwgd2luZG93LndlYmtpdFVSTCwKLSAgICAgICAgICAgICAgZG93bmxv YWRfdXJsID0gdXJsQ3JlYXRvci5jcmVhdGVPYmplY3RVUkwocmVzcEJsb2IpLAotICAgICAgICAg ICAgICBjdXJyZW50X2Jyb3dzZXIgPSBwZ0FkbWluLkJyb3dzZXIuZ2V0X2Jyb3dzZXIoKSwKLSAg ICAgICAgICAgICAgbGluayA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKTsKLQotICAgICAg ICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChsaW5rKTsKLQotICAgICAgICAgICAgaWYg KGN1cnJlbnRfYnJvd3Nlci5uYW1lID09PSAnSUUnICYmIHdpbmRvdy5uYXZpZ2F0b3IubXNTYXZl QmxvYikgewotICAgICAgICAgICAgLy8gSUUxMCsgOiAoaGFzIEJsb2IsIGJ1dCBub3QgYVtkb3du bG9hZF0gb3IgVVJMKQotICAgICAgICAgICAgICB3aW5kb3cubmF2aWdhdG9yLm1zU2F2ZUJsb2Io cmVzcEJsb2IsIGZpbGVuYW1lKTsKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAg IGxpbmsuc2V0QXR0cmlidXRlKCdocmVmJywgZG93bmxvYWRfdXJsKTsKLSAgICAgICAgICAgICAg bGluay5zZXRBdHRyaWJ1dGUoJ2Rvd25sb2FkJywgZmlsZW5hbWUpOwotICAgICAgICAgICAgICBs aW5rLmNsaWNrKCk7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGRvY3VtZW50LmJvZHku cmVtb3ZlQ2hpbGQobGluayk7Ci0gICAgICAgICAgICBzZWxmLmRvd25sb2FkX3Jlc3VsdHNfb2Jq ID0gdW5kZWZpbmVkOwotICAgICAgICAgIH0KLQotICAgICAgICAgIC8vIEVuYWJsZSB0aGUgZXhl Y3V0ZSBidXR0b24KLSAgICAgICAgICAkKCcjYnRuLWZsYXNoJykucHJvcCgnZGlzYWJsZWQnLCBm YWxzZSk7Ci0gICAgICAgICAgc2VsZi5lbmFibGVfZGlzYWJsZV9kb3dubG9hZF9idG4oZmFsc2Up OwotICAgICAgICAgIHNlbGYuZGlzYWJsZV90b29sX2J1dHRvbnMoZmFsc2UpOwotICAgICAgICAg IHNlbGYudHJpZ2dlcigncGdhZG1pbi1zcWxlZGl0b3I6bG9hZGluZy1pY29uOmhpZGUnKTsKLSAg ICAgICAgfSkuZmFpbChmdW5jdGlvbihlcnIpIHsKLSAgICAgICAgICBsZXQgbXNnID0gJyc7Ci0g ICAgICAgICAgLy8gRW5hYmxlIHRoZSBleGVjdXRlIGJ1dHRvbgotICAgICAgICAgICQoJyNidG4t Zmxhc2gnKS5wcm9wKCdkaXNhYmxlZCcsIGZhbHNlKTsKLSAgICAgICAgICBzZWxmLmVuYWJsZV9k aXNhYmxlX2Rvd25sb2FkX2J0bihmYWxzZSk7Ci0gICAgICAgICAgc2VsZi5kaXNhYmxlX3Rvb2xf YnV0dG9ucyhmYWxzZSk7Ci0gICAgICAgICAgc2VsZi50cmlnZ2VyKCdwZ2FkbWluLXNxbGVkaXRv cjpsb2FkaW5nLWljb246aGlkZScpOwotCi0KLSAgICAgICAgICBpZiAoZXJyLnN0YXR1c1RleHQg PT0gJ2Fib3J0JykgewotICAgICAgICAgICAgbXNnID0gZ2V0dGV4dCgnQ1NWIERvd25sb2FkIGNh bmNlbGxlZC4nKTsKLSAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgbXNnID0gaHR0cEVy cm9ySGFuZGxlci5oYW5kbGVRdWVyeVRvb2xBamF4RXJyb3IoCi0gICAgICAgICAgICAgIHBnQWRt aW4sIHNlbGYsIGVyciwgJ3RyaWdnZXJfY3N2X2Rvd25sb2FkJywgW10sIHRydWUKLSAgICAgICAg ICAgICk7Ci0gICAgICAgICAgfQotICAgICAgICAgIC8vIENoZWNrIGlmIGVycm9yIG1lc3NhZ2Ug aXMgcHJlc2VudAotICAgICAgICAgIGlmIChtc2cpCi0gICAgICAgICAgICBOb3RpZnkuYWxlcnQo Z2V0dGV4dCgnRG93bmxvYWQgQ1NWIGVycm9yJyksIG1zZyk7Ci0gICAgICAgIH0pOwotICAgICAg fSwKLQotICAgICAgY2FsbF9jYWNoZV9wcmVmZXJlbmNlczogZnVuY3Rpb24oKSB7Ci0gICAgICAg IGxldCBicm93c2VyID0gcGdXaW5kb3cuZGVmYXVsdC5wZ0FkbWluLkJyb3dzZXI7Ci0gICAgICAg IGJyb3dzZXIuY2FjaGVfcHJlZmVyZW5jZXMoJ3NxbGVkaXRvcicpOwotCi0gICAgICAgIC8qIFRo aXMgd2lsbCBtYWtlIHN1cmUgdG8gZ2V0IGxhdGVzdCB1cGRhdGVzIG9ubHkgYW5kIG5vdCBvbGRl ciBldmVudHMgKi8KLSAgICAgICAgcGdCcm93c2VyLnByZWZlcmVuY2VfdmVyc2lvbihwZ0Jyb3dz ZXIuZ2VuZXJhdGVfcHJlZmVyZW5jZV92ZXJzaW9uKCkpOwotICAgICAgfSwKLQotICAgICAgX2F1 dG9fcm9sbGJhY2s6IGZ1bmN0aW9uKCkgewotICAgICAgICB2YXIgc2VsZiA9IHRoaXMsCi0gICAg ICAgICAgYXV0b19yb2xsYmFjayA9IHRydWU7Ci0KLSAgICAgICAgaWYgKCQoJy5hdXRvLXJvbGxi YWNrJykuaGFzQ2xhc3MoJ3Zpc2liaWxpdHktaGlkZGVuJykgPT09IHRydWUpCi0gICAgICAgICAg JCgnLmF1dG8tcm9sbGJhY2snKS5yZW1vdmVDbGFzcygndmlzaWJpbGl0eS1oaWRkZW4nKTsKLSAg ICAgICAgZWxzZSB7Ci0gICAgICAgICAgJCgnLmF1dG8tcm9sbGJhY2snKS5hZGRDbGFzcygndmlz aWJpbGl0eS1oaWRkZW4nKTsKLSAgICAgICAgICBhdXRvX3JvbGxiYWNrID0gZmFsc2U7Ci0gICAg ICAgIH0KLQotICAgICAgICAvLyBNYWtlIGFqYXggY2FsbCB0byBjaGFuZ2UgdGhlIGxpbWl0Ci0g ICAgICAgICQuYWpheCh7Ci0gICAgICAgICAgdXJsOiB1cmxfZm9yKCdzcWxlZGl0b3IuYXV0b19y b2xsYmFjaycsIHsKLSAgICAgICAgICAgICd0cmFuc19pZCc6IHNlbGYudHJhbnNJZCwKLSAgICAg ICAgICB9KSwKLSAgICAgICAgICBtZXRob2Q6ICdQT1NUJywKLSAgICAgICAgICBjb250ZW50VHlw ZTogJ2FwcGxpY2F0aW9uL2pzb24nLAotICAgICAgICAgIGRhdGE6IEpTT04uc3RyaW5naWZ5KGF1 dG9fcm9sbGJhY2spLAotICAgICAgICB9KQotICAgICAgICAgIC5kb25lKGZ1bmN0aW9uKHJlcykg ewotICAgICAgICAgICAgaWYgKCFyZXMuZGF0YS5zdGF0dXMpCi0gICAgICAgICAgICAgIE5vdGlm eS5hbGVydChnZXR0ZXh0KCdBdXRvIFJvbGxiYWNrIEVycm9yJyksIHJlcy5kYXRhLnJlc3VsdCk7 Ci0gICAgICAgICAgfSkKLSAgICAgICAgICAuZmFpbChmdW5jdGlvbihlKSB7Ci0KLSAgICAgICAg ICAgIGxldCBtc2cgPSBodHRwRXJyb3JIYW5kbGVyLmhhbmRsZVF1ZXJ5VG9vbEFqYXhFcnJvcigK LSAgICAgICAgICAgICAgcGdBZG1pbiwgc2VsZiwgZSwgJ19hdXRvX3JvbGxiYWNrJywgW10sIHRy dWUKLSAgICAgICAgICAgICk7Ci0gICAgICAgICAgICBpZiAobXNnKQotICAgICAgICAgICAgICBO b3RpZnkuYWxlcnQoZ2V0dGV4dCgnQXV0byBSb2xsYmFjayBFcnJvcicpLCBtc2cpOwotICAgICAg ICAgIH0pOwotICAgICAgfSwKLQotICAgICAgX2F1dG9fY29tbWl0OiBmdW5jdGlvbigpIHsKLSAg ICAgICAgdmFyIHNlbGYgPSB0aGlzLAotICAgICAgICAgIGF1dG9fY29tbWl0ID0gdHJ1ZTsKLQot ICAgICAgICBpZiAoJCgnLmF1dG8tY29tbWl0JykuaGFzQ2xhc3MoJ3Zpc2liaWxpdHktaGlkZGVu JykgPT09IHRydWUpCi0gICAgICAgICAgJCgnLmF1dG8tY29tbWl0JykucmVtb3ZlQ2xhc3MoJ3Zp c2liaWxpdHktaGlkZGVuJyk7Ci0gICAgICAgIGVsc2UgewotICAgICAgICAgICQoJy5hdXRvLWNv bW1pdCcpLmFkZENsYXNzKCd2aXNpYmlsaXR5LWhpZGRlbicpOwotICAgICAgICAgIGF1dG9fY29t bWl0ID0gZmFsc2U7Ci0gICAgICAgIH0KLQotICAgICAgICAvLyBNYWtlIGFqYXggY2FsbCB0byB0 b2dnbGUgYXV0byBjb21taXQKLSAgICAgICAgJC5hamF4KHsKLSAgICAgICAgICB1cmw6IHVybF9m b3IoJ3NxbGVkaXRvci5hdXRvX2NvbW1pdCcsIHsKLSAgICAgICAgICAgICd0cmFuc19pZCc6IHNl bGYudHJhbnNJZCwKLSAgICAgICAgICB9KSwKLSAgICAgICAgICBtZXRob2Q6ICdQT1NUJywKLSAg ICAgICAgICBjb250ZW50VHlwZTogJ2FwcGxpY2F0aW9uL2pzb24nLAotICAgICAgICAgIGRhdGE6 IEpTT04uc3RyaW5naWZ5KGF1dG9fY29tbWl0KSwKLSAgICAgICAgfSkKLSAgICAgICAgICAuZG9u ZShmdW5jdGlvbihyZXMpIHsKLSAgICAgICAgICAgIGlmICghcmVzLmRhdGEuc3RhdHVzKQotICAg ICAgICAgICAgICBOb3RpZnkuYWxlcnQoZ2V0dGV4dCgnQXV0byBDb21taXQgRXJyb3InKSwgcmVz LmRhdGEucmVzdWx0KTsKLSAgICAgICAgICB9KQotICAgICAgICAgIC5mYWlsKGZ1bmN0aW9uKGUp IHsKLSAgICAgICAgICAgIGxldCBtc2cgPSBodHRwRXJyb3JIYW5kbGVyLmhhbmRsZVF1ZXJ5VG9v bEFqYXhFcnJvcigKLSAgICAgICAgICAgICAgcGdBZG1pbiwgc2VsZiwgZSwgJ19hdXRvX2NvbW1p dCcsIFtdLCB0cnVlCi0gICAgICAgICAgICApOwotICAgICAgICAgICAgaWYgKG1zZykKLSAgICAg ICAgICAgICAgTm90aWZ5LmFsZXJ0KGdldHRleHQoJ0F1dG8gQ29tbWl0IEVycm9yJyksIG1zZyk7 Ci0gICAgICAgICAgfSk7Ci0KLSAgICAgIH0sCi0KLSAgICAgIF90b2dnbGVfZXhwbGFpbl9vcHRp b246IGZ1bmN0aW9uKHR5cGUpIHsKLSAgICAgICAgbGV0IHNlbGVjdG9yID0gYC5leHBsYWluLSR7 dHlwZX1gOwotICAgICAgICAkKHNlbGVjdG9yKS50b2dnbGVDbGFzcygndmlzaWJpbGl0eS1oaWRk ZW4nKTsKLSAgICAgIH0sCi0KLSAgICAgIC8vIFRoaXMgZnVuY3Rpb24gd2lsbCB0b2dnbGUgInZl cmJvc2UiIG9wdGlvbiBpbiBleHBsYWluCi0gICAgICBfZXhwbGFpbl92ZXJib3NlOiBmdW5jdGlv bigpIHsKLSAgICAgICAgdGhpcy5fdG9nZ2xlX2V4cGxhaW5fb3B0aW9uKCd2ZXJib3NlJyk7Ci0g ICAgICB9LAotCi0gICAgICAvLyBUaGlzIGZ1bmN0aW9uIHdpbGwgdG9nZ2xlICJjb3N0cyIgb3B0 aW9uIGluIGV4cGxhaW4KLSAgICAgIF9leHBsYWluX2Nvc3RzOiBmdW5jdGlvbigpIHsKLSAgICAg ICAgdGhpcy5fdG9nZ2xlX2V4cGxhaW5fb3B0aW9uKCdjb3N0cycpOwotICAgICAgfSwKLQotICAg ICAgLy8gVGhpcyBmdW5jdGlvbiB3aWxsIHRvZ2dsZSAiYnVmZmVycyIgb3B0aW9uIGluIGV4cGxh aW4KLSAgICAgIF9leHBsYWluX2J1ZmZlcnM6IGZ1bmN0aW9uKCkgewotICAgICAgICB0aGlzLl90 b2dnbGVfZXhwbGFpbl9vcHRpb24oJ2J1ZmZlcnMnKTsKLSAgICAgIH0sCi0KLSAgICAgIC8vIFRo aXMgZnVuY3Rpb24gd2lsbCB0b2dnbGUgInRpbWluZyIgb3B0aW9uIGluIGV4cGxhaW4KLSAgICAg IF9leHBsYWluX3RpbWluZzogZnVuY3Rpb24oKSB7Ci0gICAgICAgIHRoaXMuX3RvZ2dsZV9leHBs YWluX29wdGlvbigndGltaW5nJyk7Ci0gICAgICB9LAotCi0gICAgICBfZXhwbGFpbl9zdW1tYXJ5 OiBmdW5jdGlvbigpIHsKLSAgICAgICAgdGhpcy5fdG9nZ2xlX2V4cGxhaW5fb3B0aW9uKCdzdW1t YXJ5Jyk7Ci0gICAgICB9LAotCi0gICAgICBfZXhwbGFpbl9zZXR0aW5nczogZnVuY3Rpb24oKSB7 Ci0gICAgICAgIHRoaXMuX3RvZ2dsZV9leHBsYWluX29wdGlvbignc2V0dGluZ3MnKTsKLSAgICAg IH0sCi0KLSAgICAgIF9zaG93X3F1ZXJ5X3Rvb2w6IGZ1bmN0aW9uKCkgewotICAgICAgICB2YXIg c2VsZiA9IHRoaXM7Ci0gICAgICAgIHZhciBvcGVuX25ld190YWIgPSBzZWxmLmJyb3dzZXJfcHJl ZmVyZW5jZXMubmV3X2Jyb3dzZXJfdGFiX29wZW47Ci0gICAgICAgIGlmIChvcGVuX25ld190YWIg JiYgb3Blbl9uZXdfdGFiLmluY2x1ZGVzKCdxdCcpKSB7Ci0gICAgICAgICAgaXNfbWFpbl93aW5k b3dfYWxpdmUoKTsKLSAgICAgICAgfQotICAgICAgICB0aGlzLl9vcGVuX3F1ZXJ5X3Rvb2woc2Vs Zik7Ci0gICAgICB9LAotCi0gICAgICBfb3Blbl9xdWVyeV90b29sOiBmdW5jdGlvbih0aGF0KSB7 Ci0KLSAgICAgICAgY29uc3QgdHJhbnNJZCA9IHBnYWRtaW5VdGlscy5nZXRSYW5kb21JbnQoMSwg OTk5OTk5OSk7Ci0KLSAgICAgICAgbGV0IHVybF9lbmRwb2ludCA9IHVybF9mb3IoJ2RhdGFncmlk LnBhbmVsJywgewotICAgICAgICAgICd0cmFuc19pZCc6IHRyYW5zSWQsCi0gICAgICAgIH0pOwot Ci0gICAgICAgIHVybF9lbmRwb2ludCArPSBgP2lzX3F1ZXJ5X3Rvb2w9JHt0cnVlfWAKLSAgICAg ICAgICArYCZzZ2lkPSR7dGhhdC51cmxfcGFyYW1zLnNnaWR9YAotICAgICAgICAgICtgJnNpZD0k e3RoYXQudXJsX3BhcmFtcy5zaWR9YAotICAgICAgICAgICtgJnNlcnZlcl90eXBlPSR7dGhhdC51 cmxfcGFyYW1zLnNlcnZlcl90eXBlfWA7Ci0KLSAgICAgICAgaWYodGhhdC51cmxfcGFyYW1zLmRp ZCkgewotICAgICAgICAgIHVybF9lbmRwb2ludCArPSBgJmRpZD0ke3RoYXQudXJsX3BhcmFtcy5k aWR9YDsKLSAgICAgICAgfQotCi0gICAgICAgIGxldCBwYW5lbF90aXRsZSA9IHRoYXQudXJsX3Bh cmFtcy50aXRsZTsKLSAgICAgICAgaWYodGhhdC51cmxfcGFyYW1zLmlzX3F1ZXJ5X3Rvb2wgPT0g J2ZhbHNlJykgey8vY2hlY2sgd2hldGhlciBxdWVyeSB0b29sIGlzIGhpdCBmcm9tIFZpZXcvRWRp dAotICAgICAgICAgIHZhciBzcGxpdF90aXRsZSA9IHRoYXQudXJsX3BhcmFtcy50aXRsZS5zcGxp dCgnLycpOwotICAgICAgICAgIGlmKHNwbGl0X3RpdGxlLmxlbmd0aCA+IDIpIHsKLSAgICAgICAg ICAgIHBhbmVsX3RpdGxlID0gc3BsaXRfdGl0bGVbc3BsaXRfdGl0bGUubGVuZ3RoLTJdICsgJy8n ICsgc3BsaXRfdGl0bGVbc3BsaXRfdGl0bGUubGVuZ3RoLTFdOwotICAgICAgICAgIH0KLSAgICAg ICAgfQotCi0gICAgICAgIGxhdW5jaERhdGFHcmlkKHBnV2luZG93LmRlZmF1bHQucGdBZG1pbi5E YXRhR3JpZCwgdHJhbnNJZCwgdXJsX2VuZHBvaW50LCBwYW5lbF90aXRsZSwgJycsIGFsZXJ0aWZ5 KTsKLSAgICAgIH0sCi0KLSAgICAgIC8qCi0gICAgICAgKiBUaGlzIGZ1bmN0aW9uIHdpbGwgaW5k ZW50IHNlbGVjdGVkIGNvZGUKLSAgICAgICAqLwotICAgICAgX2luZGVudF9zZWxlY3RlZF9jb2Rl OiBmdW5jdGlvbigpIHsKLSAgICAgICAgdmFyIHNlbGYgPSB0aGlzLAotICAgICAgICAgIGVkaXRv ciA9IHNlbGYuZ3JpZFZpZXcucXVlcnlfdG9vbF9vYmo7Ci0gICAgICAgIGVkaXRvci5leGVjQ29t bWFuZCgnaW5kZW50TW9yZScpOwotICAgICAgfSwKLQotICAgICAgLyoKLSAgICAgICAqIFRoaXMg ZnVuY3Rpb24gd2lsbCB1bmluZGVudCBzZWxlY3RlZCBjb2RlCi0gICAgICAgKi8KLSAgICAgIF91 bmluZGVudF9zZWxlY3RlZF9jb2RlOiBmdW5jdGlvbigpIHsKLSAgICAgICAgdmFyIHNlbGYgPSB0 aGlzLAotICAgICAgICAgIGVkaXRvciA9IHNlbGYuZ3JpZFZpZXcucXVlcnlfdG9vbF9vYmo7Ci0g ICAgICAgIGVkaXRvci5leGVjQ29tbWFuZCgnaW5kZW50TGVzcycpOwotICAgICAgfSwKLQotICAg ICAgLyoKLSAgICAgICAqIFRoaXMgZnVuY3Rpb24gd2lsbCBmb3JtYXQgdGhlIFNRTAotICAgICAg ICovCi0gICAgICBfZm9ybWF0X3NxbDogZnVuY3Rpb24oKSB7Ci0gICAgICAgIHZhciBzZWxmID0g dGhpcywKLSAgICAgICAgICBlZGl0b3IgPSBzZWxmLmdyaWRWaWV3LnF1ZXJ5X3Rvb2xfb2JqLAot ICAgICAgICAgIHNlbGVjdGlvbiA9IHRydWUsCi0gICAgICAgICAgc3FsID0gJyc7Ci0KLSAgICAg ICAgc3FsID0gZWRpdG9yLmdldFNlbGVjdGlvbigpOwotCi0gICAgICAgIGlmIChzcWwgPT0gJycp IHsKLSAgICAgICAgICBzcWwgPSBlZGl0b3IuZ2V0VmFsdWUoKTsKLSAgICAgICAgICBzZWxlY3Rp b24gPSBmYWxzZTsKLSAgICAgICAgfQotCi0gICAgICAgICQuYWpheCh7Ci0gICAgICAgICAgdXJs OiB1cmxfZm9yKCdzcWwuZm9ybWF0JyksCi0gICAgICAgICAgZGF0YTogSlNPTi5zdHJpbmdpZnko eydzcWwnOiBzcWx9KSwKLSAgICAgICAgICBtZXRob2Q6ICdQT1NUJywKLSAgICAgICAgICBjb250 ZW50VHlwZTogJ2FwcGxpY2F0aW9uL2pzb24nLAotICAgICAgICAgIGRhdGFUeXBlOiAnanNvbics Ci0gICAgICAgIH0pCi0gICAgICAgICAgLmRvbmUoZnVuY3Rpb24ocmVzKSB7Ci0gICAgICAgICAg ICBpZiAoc2VsZWN0aW9uID09PSB0cnVlKSB7Ci0gICAgICAgICAgICAgIGVkaXRvci5yZXBsYWNl U2VsZWN0aW9uKHJlcy5kYXRhLnNxbCwgJ2Fyb3VuZCcpOwotICAgICAgICAgICAgfSBlbHNlIHsK LSAgICAgICAgICAgICAgZWRpdG9yLnNldFZhbHVlKHJlcy5kYXRhLnNxbCk7Ci0gICAgICAgICAg ICB9Ci0gICAgICAgICAgfSkKLSAgICAgICAgICAuZmFpbChmdW5jdGlvbigpIHsKLSAgICAgICAg ICAvKiBmYWlsdXJlIHNob3VsZCBiZSBpZ25vcmVkICovCi0gICAgICAgICAgfSk7Ci0gICAgICB9 LAotCi0gICAgICAvLyBUaGlzIGZ1bmN0aW9uIHdpbGwgb3BlbiB0aGUgbWFuYWdlIG1hY3JvIGRp YWxvZwotICAgICAgX21hbmFnZV9tYWNyb3M6IGZ1bmN0aW9uKCkgewotICAgICAgICBsZXQgc2Vs ZiA9IHRoaXM7Ci0KLSAgICAgICAgLyogV2hlbiBzZXJ2ZXIgaXMgZGlzY29ubmVjdGVkIGFuZCBj b25uZWN0ZWQsIGNvbm5lY3Rpb24gaXMgbG9zdCwKLSAgICAgICAgICogVG8gcmVjb25uZWN0IHBh c3MgdHJ1ZQotICAgICAgICAgKi8KLSAgICAgICAgTWFjcm9IYW5kbGVyLmRpYWxvZyhzZWxmKTsK LSAgICAgIH0sCi0KLSAgICAgIC8vIFRoaXMgZnVuY3Rpb24gd2lsbCBvcGVuIHRoZSBtYW5hZ2Ug bWFjcm8gZGlhbG9nCi0gICAgICBfZXhlY3V0ZV9tYWNybzogZnVuY3Rpb24oKSB7Ci0KLSAgICAg ICAgcXVlcnlUb29sQWN0aW9ucy5leGVjdXRlTWFjcm8odGhpcy5oYW5kbGVyKTsKLQotICAgICAg fSwKLQotCi0gICAgICBpc1F1ZXJ5UnVubmluZzogZnVuY3Rpb24oKSB7Ci0gICAgICAgIHJldHVy biBpc19xdWVyeV9ydW5uaW5nOwotICAgICAgfSwKLQotICAgICAgc2V0SXNRdWVyeVJ1bm5pbmc6 IGZ1bmN0aW9uKHZhbHVlKSB7Ci0gICAgICAgIGlzX3F1ZXJ5X3J1bm5pbmcgPSB2YWx1ZTsKLSAg ICAgIH0sCi0KLSAgICAgIC8qIENoZWNrcyBpZiB0aGVyZSBpcyBhbnkgdW5zYXZlZCBkYXRhIGNo YW5nZXMsIHVuc2F2ZWQgY2hhbmdlcyBpbiB0aGUgcXVlcnkKLSAgICAgIG9yIHVuY29tbWl0dGVk IHRyYW5zYWN0aW9ucyBiZWZvcmUgY2xvc2luZyBhIHBhbmVsICovCi0gICAgICBjaGVja19uZWVk ZWRfY29uZmlybWF0aW9uc19iZWZvcmVfY2xvc2luZ19wYW5lbDogZnVuY3Rpb24oaXNfY2xvc2Vf ZXZlbnRfY2FsbCA9IGZhbHNlKSB7Ci0gICAgICAgIHZhciBzZWxmID0gdGhpcywgbXNnOwotCi0g ICAgICAgIC8qCi0gICAgICAgICBpc19jbG9zZV9ldmVudF9jYWxsID0gdHJ1ZSBvbmx5IHdoZW4g dGhlIGZ1bmN0aW9uIGlzIGNhbGxlZCB3aGVuIHRoZQotICAgICAgICAgY2xvc2UgcGFuZWwgZXZl bnQgaXMgdHJpZ2dlcmVkLCBvdGhlcndpc2UgKG9uIHJlY3Vyc2l2ZSBjYWxscykgaXQgaXMgZmFs c2UKLSAgICAgICAgKi8KLSAgICAgICAgaWYoIXNlbGYuaWdub3JlX29uX2Nsb3NlIHx8IGlzX2Ns b3NlX2V2ZW50X2NhbGwpCi0gICAgICAgICAgc2VsZi5pZ25vcmVfb25fY2xvc2UgPSB7Ci0gICAg ICAgICAgICB1bnNhdmVkX2RhdGE6IGZhbHNlLAotICAgICAgICAgICAgdW5zYXZlZF9xdWVyeTog ZmFsc2UsCi0gICAgICAgICAgfTsKLQotICAgICAgICB2YXIgaWdub3JlX3Vuc2F2ZWRfZGF0YSA9 IHNlbGYuaWdub3JlX29uX2Nsb3NlLnVuc2F2ZWRfZGF0YSwKLSAgICAgICAgICBpZ25vcmVfdW5z YXZlZF9xdWVyeSA9IHNlbGYuaWdub3JlX29uX2Nsb3NlLnVuc2F2ZWRfcXVlcnk7Ci0KLSAgICAg ICAgLy8gSWYgdGhlcmUgaXMgdW5zYXZlZCBkYXRhIGNoYW5nZXMgaW4gdGhlIGdyaWQKLSAgICAg ICAgaWYgKCFpZ25vcmVfdW5zYXZlZF9kYXRhICYmIHNlbGYuY2FuX2VkaXQKLSAgICAgICAgICAg ICYmIHNlbGYucHJlZmVyZW5jZXMucHJvbXB0X3NhdmVfZGF0YV9jaGFuZ2VzICYmCi0gICAgICAg ICAgICBzZWxmLmRhdGFfc3RvcmUgJiYKLSAgICAgICAgICAgICAoXy5zaXplKHNlbGYuZGF0YV9z dG9yZS5hZGRlZCkgfHwKLSAgICAgICAgICAgICAgXy5zaXplKHNlbGYuZGF0YV9zdG9yZS51cGRh dGVkKSB8fAotICAgICAgICAgICAgICBfLnNpemUoc2VsZi5kYXRhX3N0b3JlLmRlbGV0ZWQpKSkg ewotICAgICAgICAgIG1zZyA9IGdldHRleHQoJ1RoZSBkYXRhIGhhcyBjaGFuZ2VkLiBEbyB5b3Ug d2FudCB0byBzYXZlIGNoYW5nZXM/Jyk7Ci0gICAgICAgICAgc2VsZi51bnNhdmVkX2NoYW5nZXNf dXNlcl9jb25maXJtYXRpb24obXNnLCB0cnVlKTsKLSAgICAgICAgfSAvLyBJZiB0aGVyZSBpcyB1 bnNhdmVkIHF1ZXJ5IGNoYW5nZXMgaW4gdGhlIHF1ZXJ5IGVkaXRvcgotICAgICAgICBlbHNlIGlm ICghaWdub3JlX3Vuc2F2ZWRfcXVlcnkgJiYgc2VsZi5pc19xdWVyeV90b29sCi0gICAgICAgICAg ICAgICAgICAgJiYgc2VsZi5pc19xdWVyeV9jaGFuZ2VkCi0gICAgICAgICAgICAgICAgICAgJiYg c2VsZi5wcmVmZXJlbmNlcy5wcm9tcHRfc2F2ZV9xdWVyeV9jaGFuZ2VzKSB7Ci0gICAgICAgICAg bXNnID0gZ2V0dGV4dCgnVGhlIHF1ZXJ5IHRleHQgaGFzIGNoYW5nZWQuIERvIHlvdSB3YW50IHRv IHNhdmUgY2hhbmdlcz8nKTsKLSAgICAgICAgICBzZWxmLnVuc2F2ZWRfY2hhbmdlc191c2VyX2Nv bmZpcm1hdGlvbihtc2csIGZhbHNlKTsKLSAgICAgICAgfSAvLyBJZiBhIHRyYW5zYWN0aW9uIGlz IGN1cnJlbnRseSBvbmdvaW5nCi0gICAgICAgIGVsc2UgaWYgKHNlbGYucHJlZmVyZW5jZXMucHJv bXB0X2NvbW1pdF90cmFuc2FjdGlvbgotICAgICAgICAgICAgICAgICAmJiAoc2VsZi5sYXN0X3Ry YW5zYWN0aW9uX3N0YXR1cyA9PT0gcXVlcnlUeG5TdGF0dXMuVFJBTlNBQ1RJT05fU1RBVFVTX0lO VFJBTlMKLSAgICAgICAgICAgICAgICAgICAgfHwgc2VsZi5sYXN0X3RyYW5zYWN0aW9uX3N0YXR1 cyA9PT0gcXVlcnlUeG5TdGF0dXMuVFJBTlNBQ1RJT05fU1RBVFVTX0lORVJST1IpKSB7Ci0gICAg ICAgICAgdmFyIGlzX2NvbW1pdF9kaXNhYmxlZCA9IHNlbGYubGFzdF90cmFuc2FjdGlvbl9zdGF0 dXMgPT0gcXVlcnlUeG5TdGF0dXMuVFJBTlNBQ1RJT05fU1RBVFVTX0lORVJST1I7Ci0gICAgICAg ICAgc2VsZi51bmNvbW1pdHRlZF90cmFuc2FjdGlvbl91c2VyX2NvbmZpcm1hdGlvbihpc19jb21t aXRfZGlzYWJsZWQpOwotICAgICAgICB9Ci0gICAgICAgIGVsc2UgewotICAgICAgICAgIC8vIE5v IG90aGVyIGZ1bmN0aW9uIHNob3VsZCBjYWxsIGNsb3NlKCkgZXhjZXB0IHRocm91Z2ggdGhpcyBm dW5jdGlvbgotICAgICAgICAgIC8vIGluIG9yZGVyIHRvIHBlcmZvcm0gbmVjZXNzYXJ5IGNoZWNr cwotICAgICAgICAgIHNlbGYuaWdub3JlX29uX2Nsb3NlID0gdW5kZWZpbmVkOwotICAgICAgICAg IHNlbGYuY2xvc2UoKTsKLSAgICAgICAgfQotICAgICAgICAvLyBSZXR1cm4gZmFsc2Ugc28gdGhh dCB0aGUgcGFuZWwgZG9lcyBub3QgY2xvc2UgdW5sZXNzIGNsb3NlKCkKLSAgICAgICAgLy8gaXMg Y2FsbGVkIGV4cGxpY2l0bHkgKHdoZW4gYWxsIG5lZWRlZCBwcm9tcHRzIGFyZSBpc3N1ZWQpLgot ICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICB9LAotCi0gICAgICAvKiBUbyBwcm9tcHQgdGhl IHVzZXIgZm9yIHVuY29tbWl0dGVkIHRyYW5zYWN0aW9uICovCi0gICAgICB1bmNvbW1pdHRlZF90 cmFuc2FjdGlvbl91c2VyX2NvbmZpcm1hdGlvbjogZnVuY3Rpb24oaXNfY29tbWl0X2Rpc2FibGVk ID0gZmFsc2UpIHsKLSAgICAgICAgdmFyIHNlbGYgPSB0aGlzOwotCi0gICAgICAgIGFsZXJ0aWZ5 LmNvbmZpcm1Db21taXQgfHwgYWxlcnRpZnkuZGlhbG9nKCdjb25maXJtQ29tbWl0JywgZnVuY3Rp b24oKSB7Ci0gICAgICAgICAgcmV0dXJuIHsKLSAgICAgICAgICAgIG1haW46IGZ1bmN0aW9uKHRp dGxlLCBtZXNzYWdlLCBpc19jb21taXRfZGlzYWJsZWRfYXJnKSB7Ci0gICAgICAgICAgICAgIHRo aXMuaXNfY29tbWl0X2Rpc2FibGVkID0gaXNfY29tbWl0X2Rpc2FibGVkX2FyZzsKLSAgICAgICAg ICAgICAgdGhpcy5zZXRIZWFkZXIodGl0bGUpOwotICAgICAgICAgICAgICB0aGlzLnNldENvbnRl bnQobWVzc2FnZSk7Ci0gICAgICAgICAgICB9LAotICAgICAgICAgICAgc2V0dXA6IGZ1bmN0aW9u KCkgewotICAgICAgICAgICAgICByZXR1cm4gewotICAgICAgICAgICAgICAgIGJ1dHRvbnM6IFt7 Ci0gICAgICAgICAgICAgICAgICB0ZXh0OiBnZXR0ZXh0KCdDYW5jZWwnKSwKLSAgICAgICAgICAg ICAgICAgIGtleTogMjcsIC8vIEVTQwotICAgICAgICAgICAgICAgICAgaW52b2tlT25DbG9zZTog dHJ1ZSwKLSAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogJ2J0biBidG4tc2Vjb25kYXJ5IGZh IGZhLWxnIGZhLXRpbWVzIHBnLWFsZXJ0aWZ5LWJ1dHRvbicsCi0gICAgICAgICAgICAgICAgfSwg ewotICAgICAgICAgICAgICAgICAgdGV4dDogZ2V0dGV4dCgnUm9sbGJhY2snKSwKLSAgICAgICAg ICAgICAgICAgIGNsYXNzTmFtZTogJ2J0biBidG4tcHJpbWFyeSBmYSBmYS1sZyBwZy1hbGVydGlm eS1idXR0b24nLAotICAgICAgICAgICAgICAgIH0sIHsKLSAgICAgICAgICAgICAgICAgIHRleHQ6 IGdldHRleHQoJ0NvbW1pdCcpLAotICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lOiAnYnRuIGJ0 bi1wcmltYXJ5IGZhIGZhLWxnIHBnLWFsZXJ0aWZ5LWJ1dHRvbicsCi0gICAgICAgICAgICAgICAg fV0sCi0gICAgICAgICAgICAgICAgZm9jdXM6IHsKLSAgICAgICAgICAgICAgICAgIGVsZW1lbnQ6 IDAsCi0gICAgICAgICAgICAgICAgICBzZWxlY3Q6IGZhbHNlLAotICAgICAgICAgICAgICAgIH0s Ci0gICAgICAgICAgICAgICAgb3B0aW9uczogewotICAgICAgICAgICAgICAgICAgbWF4aW1pemFi bGU6IGZhbHNlLAotICAgICAgICAgICAgICAgICAgcmVzaXphYmxlOiBmYWxzZSwKLSAgICAgICAg ICAgICAgICB9LAotICAgICAgICAgICAgICB9OwotICAgICAgICAgICAgfSwKLSAgICAgICAgICAg IHByZXBhcmU6IGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgICAvLyBEaXNhYmxlIGNvbW1pdCBi dXR0b24gaWYgbmVlZGVkCi0gICAgICAgICAgICAgIGlmKHRoaXMuaXNfY29tbWl0X2Rpc2FibGVk KQotICAgICAgICAgICAgICAgIHRoaXMuX19pbnRlcm5hbC5idXR0b25zWzJdLmVsZW1lbnQuZGlz YWJsZWQgPSB0cnVlOwotICAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgdGhpcy5f X2ludGVybmFsLmJ1dHRvbnNbMl0uZWxlbWVudC5kaXNhYmxlZCA9IGZhbHNlOwotICAgICAgICAg ICAgfSwKLSAgICAgICAgICAgIGNhbGxiYWNrOiBmdW5jdGlvbihjbG9zZUV2ZW50KSB7Ci0gICAg ICAgICAgICAgIHN3aXRjaCAoY2xvc2VFdmVudC5pbmRleCkgewotICAgICAgICAgICAgICBjYXNl IDA6IC8vIENhbmNlbAotICAgICAgICAgICAgICAgIC8vRG8gbm90aGluZy4KLSAgICAgICAgICAg ICAgICBicmVhazsKLSAgICAgICAgICAgICAgY2FzZSAxOiAvLyBSb2xsYmFjawotICAgICAgICAg ICAgICAgIHNlbGYuY2xvc2Vfb25faWRsZV90cmFuc2FjdGlvbiA9IHRydWU7Ci0gICAgICAgICAg ICAgICAgcXVlcnlUb29sQWN0aW9ucy5leGVjdXRlUm9sbGJhY2soc2VsZik7Ci0gICAgICAgICAg ICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgIGNhc2UgMjogLy8gQ29tbWl0Ci0gICAgICAgICAg ICAgICAgc2VsZi5jbG9zZV9vbl9pZGxlX3RyYW5zYWN0aW9uID0gdHJ1ZTsKLSAgICAgICAgICAg ICAgICBxdWVyeVRvb2xBY3Rpb25zLmV4ZWN1dGVDb21taXQoc2VsZik7Ci0gICAgICAgICAgICAg ICAgYnJlYWs7Ci0gICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0sCi0gICAgICAgICAgfTsK LSAgICAgICAgfSk7Ci0KLSAgICAgICAgbGV0IG1zZyA9IGdldHRleHQoJ1RoZSBjdXJyZW50IHRy YW5zYWN0aW9uIGlzIG5vdCBjb21taXRlZCB0byB0aGUgZGF0YWJhc2UuICcKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICsgJ0RvIHlvdSB3YW50IHRvIGNvbW1pdCBvciByb2xsYmFjayB0aGUg dHJhbnNhY3Rpb24/Jyk7Ci0KLSAgICAgICAgYWxlcnRpZnkuY29uZmlybUNvbW1pdChnZXR0ZXh0 KCdDb21taXQgdHJhbnNhY3Rpb24/JyksIG1zZywgaXNfY29tbWl0X2Rpc2FibGVkKTsKLSAgICAg IH0sCi0KLSAgICAgIC8qIFRvIHByb21wdCB1c2VyIGZvciB1bnNhdmVkIGNoYW5nZXMgKi8KLSAg ICAgIHVuc2F2ZWRfY2hhbmdlc191c2VyX2NvbmZpcm1hdGlvbjogZnVuY3Rpb24obXNnLCBpc191 bnNhdmVkX2RhdGEpIHsKLSAgICAgICAgLy8gSWYgdGhlcmUgaXMgYW55dGhpbmcgdG8gc2F2ZSB0 aGVuIHByb21wdCB1c2VyCi0gICAgICAgIHZhciBzZWxmID0gdGhpczsKLQotICAgICAgICBhbGVy dGlmeS5jb25maXJtU2F2ZSB8fCBhbGVydGlmeS5kaWFsb2coJ2NvbmZpcm1TYXZlJywgZnVuY3Rp b24oKSB7Ci0gICAgICAgICAgcmV0dXJuIHsKLSAgICAgICAgICAgIG1haW46IGZ1bmN0aW9uKHRp dGxlLCBtZXNzYWdlLCBpc191bnNhdmVkX2RhdGFfYXJnKSB7Ci0gICAgICAgICAgICAgIHRoaXMu aXNfdW5zYXZlZF9kYXRhID0gaXNfdW5zYXZlZF9kYXRhX2FyZzsKLSAgICAgICAgICAgICAgdGhp cy5zZXRIZWFkZXIodGl0bGUpOwotICAgICAgICAgICAgICB0aGlzLnNldENvbnRlbnQobWVzc2Fn ZSk7Ci0gICAgICAgICAgICB9LAotICAgICAgICAgICAgc2V0dXA6IGZ1bmN0aW9uKCkgewotICAg ICAgICAgICAgICByZXR1cm4gewotICAgICAgICAgICAgICAgIGJ1dHRvbnM6IFt7Ci0gICAgICAg ICAgICAgICAgICB0ZXh0OiBnZXR0ZXh0KCdDYW5jZWwnKSwKLSAgICAgICAgICAgICAgICAgIGtl eTogMjcsIC8vIEVTQwotICAgICAgICAgICAgICAgICAgaW52b2tlT25DbG9zZTogdHJ1ZSwKLSAg ICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogJ2J0biBidG4tc2Vjb25kYXJ5IGZhIGZhLWxnIGZh LXRpbWVzIHBnLWFsZXJ0aWZ5LWJ1dHRvbicsCi0gICAgICAgICAgICAgICAgfSwgewotICAgICAg ICAgICAgICAgICAgdGV4dDogZ2V0dGV4dCgnRG9uXCd0IHNhdmUnKSwKLSAgICAgICAgICAgICAg ICAgIGNsYXNzTmFtZTogJ2J0biBidG4tc2Vjb25kYXJ5IGZhIGZhLWxnIGZhLXRyYXNoLWFsdCBw Zy1hbGVydGlmeS1idXR0b24nLAotICAgICAgICAgICAgICAgIH0sIHsKLSAgICAgICAgICAgICAg ICAgIHRleHQ6IGdldHRleHQoJ1NhdmUnKSwKLSAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZTog J2J0biBidG4tcHJpbWFyeSBmYSBmYS1sZyBmYS1zYXZlIHBnLWFsZXJ0aWZ5LWJ1dHRvbicsCi0g ICAgICAgICAgICAgICAgfV0sCi0gICAgICAgICAgICAgICAgZm9jdXM6IHsKLSAgICAgICAgICAg ICAgICAgIGVsZW1lbnQ6IDAsCi0gICAgICAgICAgICAgICAgICBzZWxlY3Q6IGZhbHNlLAotICAg ICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICAgb3B0aW9uczogewotICAgICAgICAgICAg ICAgICAgbWF4aW1pemFibGU6IGZhbHNlLAotICAgICAgICAgICAgICAgICAgcmVzaXphYmxlOiBm YWxzZSwKLSAgICAgICAgICAgICAgICB9LAotICAgICAgICAgICAgICB9OwotICAgICAgICAgICAg fSwKLSAgICAgICAgICAgIGNhbGxiYWNrOiBmdW5jdGlvbihjbG9zZUV2ZW50KSB7Ci0gICAgICAg ICAgICAgIHN3aXRjaCAoY2xvc2VFdmVudC5pbmRleCkgewotICAgICAgICAgICAgICBjYXNlIDA6 IC8vIENhbmNlbAotICAgICAgICAgICAgICAgIC8vRG8gbm90aGluZy4KLSAgICAgICAgICAgICAg ICBicmVhazsKLSAgICAgICAgICAgICAgY2FzZSAxOiAvLyBEb24ndCBTYXZlCi0gICAgICAgICAg ICAgICAgc2VsZi5jbG9zZV9vbl9zYXZlID0gZmFsc2U7Ci0gICAgICAgICAgICAgICAgc2VsZi5p c191bnNhdmVkX2RhdGEgPSB0aGlzLmlzX3Vuc2F2ZWRfZGF0YTsKLSAgICAgICAgICAgICAgICAk LmFqYXgoewotICAgICAgICAgICAgICAgICAgdXJsOiB1cmxfZm9yKCdzcWxlZGl0b3IuX2NoZWNr X3NlcnZlcl9jb25uZWN0aW9uX3N0YXR1cycsIHsKLSAgICAgICAgICAgICAgICAgICAgJ3NpZCc6 IHNlbGYudXJsX3BhcmFtcy5zaWQsCi0gICAgICAgICAgICAgICAgICAgICdzZ2lkJzogc2VsZi51 cmxfcGFyYW1zLnNnaWQsCi0gICAgICAgICAgICAgICAgICB9KSwKLSAgICAgICAgICAgICAgICAg IGhlYWRlcnM6IHsKLSAgICAgICAgICAgICAgICAgICAgJ0NhY2hlLUNvbnRyb2wnIDogJ25vLWNh Y2hlJywKLSAgICAgICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICAgfSkuZG9uZShmdW5j dGlvbiAocmVzKSB7Ci0gICAgICAgICAgICAgICAgICBsZXQgcmVzcG9uc2UgPSByZXMuZGF0YS5y ZXN1bHQuc2VydmVyOwotICAgICAgICAgICAgICAgICAgaWYgKHJlc3BvbnNlKSB7Ci0gICAgICAg ICAgICAgICAgICAgIGNsb3NlRXZlbnQuY2FuY2VsID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICAg ICAgaWYgKHNlbGYuaXNfdW5zYXZlZF9kYXRhKQotICAgICAgICAgICAgICAgICAgICAgIHNlbGYu aWdub3JlX29uX2Nsb3NlLnVuc2F2ZWRfZGF0YSA9IHRydWU7Ci0gICAgICAgICAgICAgICAgICAg IGVsc2UKLSAgICAgICAgICAgICAgICAgICAgICBzZWxmLmlnbm9yZV9vbl9jbG9zZS51bnNhdmVk X3F1ZXJ5ID0gdHJ1ZTsKLQotICAgICAgICAgICAgICAgICAgICAvLyBHbyBiYWNrIHRvIGNoZWNr IGZvciBhbnkgb3RoZXIgbmVlZGVkIGNvbmZpcm1hdGlvbnMgYmVmb3JlIGNsb3NpbmcKLSAgICAg ICAgICAgICAgICAgICAgaWYgKCFzZWxmLmNoZWNrX25lZWRlZF9jb25maXJtYXRpb25zX2JlZm9y ZV9jbG9zaW5nX3BhbmVsKCkpIHsKLSAgICAgICAgICAgICAgICAgICAgICBjbG9zZUV2ZW50LmNh bmNlbCA9IHRydWU7Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIH0g ZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgIE5vdGlmeS5jb25maXJtKAotICAgICAgICAgICAg ICAgICAgICAgIGdldHRleHQoJ1dhcm5pbmcnKSwKLSAgICAgICAgICAgICAgICAgICAgICBnZXR0 ZXh0KCdUaGUgY3VycmVudCB0cmFuc2FjdGlvbiBoYXMgYmVlbiByb2xsZWQgYmFjayBiZWNhdXNl IHRoZSBzZXJ2ZXIgd2FzIGRpc2Nvbm5lY3RlZC4nKSwKLSAgICAgICAgICAgICAgICAgICAgICBm dW5jdGlvbigpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIENsb3NlIHRoZSBxdWVyeSB0 b29sIGlmIHNlcnZlciBpcyBkaXNjb25uZWN0ZWQuCi0gICAgICAgICAgICAgICAgICAgICAgICBz ZXRUaW1lb3V0KCgpID0+IHsgc2VsZi5jbG9zZSgpOyB9LCAyMDApOwotICAgICAgICAgICAgICAg ICAgICAgIH0sCi0gICAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24oKSB7Ci0gICAgICAgICAg ICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgICAgICAgICAgICAgICB9LAotICAg ICAgICAgICAgICAgICAgICAgIGdldHRleHQoJ09LJyksCi0gICAgICAgICAgICAgICAgICAgICAg Z2V0dGV4dCgnQ2FuY2VsJykKLSAgICAgICAgICAgICAgICAgICAgKTsKLSAgICAgICAgICAgICAg ICAgIH0KLSAgICAgICAgICAgICAgICB9KS5mYWlsKGZ1bmN0aW9uKCkgewotICAgICAgICAgICAg ICAgICAgLyogZmFpbHVyZSBzaG91bGQgYmUgaWdub3JlZCAqLwotICAgICAgICAgICAgICAgIH0p OwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICBjYXNlIDI6IC8vU2F2ZQot ICAgICAgICAgICAgICAgIHNlbGYuY2xvc2Vfb25fc2F2ZSA9IHRydWU7Ci0gICAgICAgICAgICAg ICAgaWYodGhpcy5pc191bnNhdmVkX2RhdGEpIHsKLSAgICAgICAgICAgICAgICAgIHNlbGYuc2F2 ZV9kYXRhKCk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGVsc2UgewotICAg ICAgICAgICAgICAgICAgc2VsZi5fc2F2ZV9maWxlKCk7Ci0gICAgICAgICAgICAgICAgfQotICAg ICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9LAotICAg ICAgICAgIH07Ci0gICAgICAgIH0pOwotICAgICAgICBhbGVydGlmeS5jb25maXJtU2F2ZShnZXR0 ZXh0KCdTYXZlIGNoYW5nZXM/JyksIG1zZywgaXNfdW5zYXZlZF9kYXRhKTsKLSAgICAgIH0sCi0K LSAgICAgIGNsb3NlOiBmdW5jdGlvbigpIHsKLSAgICAgICAgdmFyIHNlbGYgPSB0aGlzOwotCi0g ICAgICAgIHBnQnJvd3Nlci5FdmVudHMub2ZmKCdwZ2FkbWluOnVzZXI6bG9nZ2VkLWluJywgdGhp cy5pbml0VHJhbnNhY3Rpb24pOwotICAgICAgICB3aW5kb3cub25iZWZvcmV1bmxvYWQgPSBudWxs OwotICAgICAgICBzZWxmLmdyaWRWaWV3LmN1cnJlbnRQYW5lbC5vZmYod2NEb2NrZXIuRVZFTlQu Q0xPU0lORyk7Ci0gICAgICAgIC8vIHJlbW92ZSBjb2xfc2l6ZSBvYmplY3Qgb24gcGFuZWwgY2xv c2UKLSAgICAgICAgaWYgKCFfLmlzVW5kZWZpbmVkKHNlbGYuY29sX3NpemUpKSB7Ci0gICAgICAg ICAgZGVsZXRlIHNlbGYuY29sX3NpemU7Ci0gICAgICAgIH0KLSAgICAgICAgcGdXaW5kb3cuZGVm YXVsdC5wZ0FkbWluLkJyb3dzZXIuZG9ja2VyLnJlbW92ZVBhbmVsKHNlbGYuZ3JpZFZpZXcuY3Vy cmVudFBhbmVsKTsKLSAgICAgIH0sCi0gICAgICAvKiBUaGlzIGZ1bmN0aW9uIGlzIHVzZWQgdG8g cmFpc2Ugbm90aWZ5IG1lc3NhZ2VzIGFuZCB1cGRhdGUKLSAgICAgICAqIHRoZSBub3RpZmljYXRp b24gZ3JpZC4KLSAgICAgICAqLwotICAgICAgdXBkYXRlX25vdGlmaWNhdGlvbnM6IGZ1bmN0aW9u IChub3RpZmljYXRpb25zKSB7Ci0gICAgICAgIHF1ZXJ5VG9vbE5vdGlmaWNhdGlvbnMudXBkYXRl Tm90aWZpY2F0aW9ucyhub3RpZmljYXRpb25zKTsKLSAgICAgIH0sCi0KLSAgICAgIC8qIFRoaXMg ZnVuY3Rpb24gaXMgdXNlZCB0byBzZXQgZWRpdG9yIHRpdGxlIGJhc2VkIG9uIHRpdGxlCi0gICAg ICAgKiAmIGRiX25hbWUgcGFzc2VkIGFzIHBhcmFtZXRlcnMKLSAgICAgICAqLwotICAgICAgc2V0 X3RpdGxlX2FuZF9yZW5kZXJfY29ubmVjdGlvbjogZnVuY3Rpb24odGl0bGUsIGRiX25hbWUpIHsK LSAgICAgICAgdmFyIHNlbGYgPSB0aGlzOwotICAgICAgICBzZWxmLmdyaWRWaWV3LnNldF9lZGl0 b3JfdGl0bGUoXy51bmVzY2FwZSh0aXRsZSkpOwotICAgICAgICBzZWxmLmdyaWRWaWV3LmhhbmRs ZXIuc2V0VGl0bGUoXy51bmVzY2FwZSh0aXRsZSkpOwotCi0gICAgICAgIHNlbGYuZ3JpZFZpZXcu Y29ubmVjdGlvbl9saXN0LmZvckVhY2gob3B0aW9uID0+ewotICAgICAgICAgIGlmKGRiX25hbWUg PT0gb3B0aW9uWydkYXRhYmFzZV9uYW1lJ10pIHsKLSAgICAgICAgICAgIG9wdGlvbi5kYXRhYmFz ZV9uYW1lID0gZGJfbmFtZTsKLSAgICAgICAgICAgIG9wdGlvbi50aXRsZSA9IHRpdGxlOwotICAg ICAgICAgICAgaWYoJ2lzX3NlbGVjdGVkJyBpbiBvcHRpb24gJiYgb3B0aW9uWydpc19zZWxlY3Rl ZCddKSB7Ci0gICAgICAgICAgICAgIHNlbGYuZ3JpZFZpZXcuJGVsLmZpbmQoJ3VsI2Nvbm5lY3Rp b25zLWxpc3QgbGkuc2VsZWN0ZWQtY29ubmVjdGlvbiA+IGEnKS50ZXh0KHRpdGxlKTsKLSAgICAg ICAgICAgIH0KLSAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICAgIH0KLSAgICAgICAg fSk7Ci0gICAgICB9LAotCi0gICAgICAvKiBUaGlzIGZ1bmN0aW9uIGlzIHVzZWQgdG8gY2hlY2sg dGhlIHN5bmNocm9ub3VzIGRiIG5hbWUgY2hhbmdlIGJ5IHVzZXJzLgotICAgICAgICogaWYgY2hh bmdlZCwgYWxlcnQgd2lsbCBiZSBnZW5lcmF0ZWQgd2l0aCBtZXNzYWdlIHByb21wdGluZyB1c2Vy IHRvCi0gICAgICAgKiBjbGljayBPSyBmb3IgYXV0b21hdGljIGRiIG5vZGUgcmVmcmVzaC4KLSAg ICAgICAqLwotICAgICAgY2hlY2tfZGJfbmFtZV9jaGFuZ2U6IGZ1bmN0aW9uKGRhdGEpIHsKLQot ICAgICAgICB2YXIgc2VsZiA9IHRoaXM7Ci0KLSAgICAgICAgdmFyIHNlbGVjdGVkX2l0ZW0gPSBw Z1dpbmRvdy5kZWZhdWx0LnBnQWRtaW4uQnJvd3Nlci50cmVlLnNlbGVjdGVkKCksCi0gICAgICAg ICAgdHJlZV9kYXRhID0gcGdXaW5kb3cuZGVmYXVsdC5wZ0FkbWluLkJyb3dzZXIudHJlZS50cmFu c2xhdGVUcmVlTm9kZUlkRnJvbVJlYWN0VHJlZShzZWxlY3RlZF9pdGVtKSwKLSAgICAgICAgICBz ZXJ2ZXJfZGF0YSA9IHBnV2luZG93LmRlZmF1bHQucGdBZG1pbi5Ccm93c2VyLnRyZWUuZmluZE5v ZGUodHJlZV9kYXRhWzFdKSwKLSAgICAgICAgICBkYXRhYmFzZV9kYXRhID0gcGdXaW5kb3cuZGVm YXVsdC5wZ0FkbWluLkJyb3dzZXIudHJlZS5maW5kTm9kZSh0cmVlX2RhdGFbM10pLAotICAgICAg ICAgIGRiX25hbWUgPSBkYXRhYmFzZV9kYXRhLmRhdGEubGFiZWwsCi0gICAgICAgICAgZGJfZGlk ID0gZGF0YWJhc2VfZGF0YS5kYXRhLl9pZDsKLQotICAgICAgICBpZihkYXRhLmRhdGFfb2JqLmRi X2lkID09IGRiX2RpZCAmJiAhXy5pc0VxdWFsKGRiX25hbWUsIGRhdGEuZGF0YV9vYmouZGJfbmFt ZSkpIHsKLQotICAgICAgICAgIHZhciBtZXNzYWdlID0gYEN1cnJlbnQgZGF0YWJhc2UgaGFzIGJl ZW4gbW92ZWQgb3IgcmVuYW1lZCB0byAke2RhdGEuZGF0YV9vYmouZGJfbmFtZX0uIENsaWNrIG9u IHRoZSBPSyBidXR0b24gdG8gcmVmcmVzaCB0aGUgZGF0YWJhc2UgbmFtZS5gLAotICAgICAgICAg ICAgdGl0bGUgPSAnJzsKLQotICAgICAgICAgIGlmKHNlbGYuaXNfcXVlcnlfdG9vbCkgey8vIGZv ciBxdWVyeSB0b29sCi0KLSAgICAgICAgICAgIHZhciBxdF90aXRsZV9wbGFjZWhvbGRlciA9IHNl bGYuZ3JpZFZpZXcuYnJvd3Nlcl9wcmVmZXJlbmNlc1sncXRfdGFiX3RpdGxlX3BsYWNlaG9sZGVy J107Ci0gICAgICAgICAgICB2YXIgdGl0bGVfZGF0YSA9IHsKLSAgICAgICAgICAgICAgJ2RhdGFi YXNlJzogZGF0YS5kYXRhX29iai5kYl9uYW1lLAotICAgICAgICAgICAgICAndXNlcm5hbWUnOiBz ZXJ2ZXJfZGF0YS5kYXRhLnVzZXIubmFtZSwKLSAgICAgICAgICAgICAgJ3NlcnZlcic6IHNlcnZl cl9kYXRhLmRhdGEubGFiZWwsCi0gICAgICAgICAgICAgICd0eXBlJzogJ3F1ZXJ5X3Rvb2wnCi0g ICAgICAgICAgICB9OwotICAgICAgICAgICAgdGl0bGUgPSBwYW5lbFRpdGxlRnVuYy5nZW5lcmF0 ZVRpdGxlKHF0X3RpdGxlX3BsYWNlaG9sZGVyLCB0aXRsZV9kYXRhKTsKLSAgICAgICAgICB9Ci0g ICAgICAgICAgZWxzZSB7IC8vIGZvciBkYXRhZ3JpZAotICAgICAgICAgICAgdGl0bGUgPSBnZW5l cmF0ZURhdGFncmlkVGl0bGUocGdXaW5kb3cuZGVmYXVsdC5wZ0FkbWluLkJyb3dzZXIsIHNlbGVj dGVkX2l0ZW0sIG51bGwsIGRhdGEuZGF0YV9vYmopOwotICAgICAgICAgIH0KLQotICAgICAgICAg IHBhbmVsVGl0bGVGdW5jLnJlZnJlc2hfZGJfbm9kZShtZXNzYWdlLCBkYXRhYmFzZV9kYXRhLmRv bU5vZGUpOwotICAgICAgICAgIHNlbGYuc2V0X3RpdGxlX2FuZF9yZW5kZXJfY29ubmVjdGlvbih0 aXRsZSwgZGF0YWJhc2VfZGF0YS5kYXRhLmxhYmVsKTsKLSAgICAgICAgfQotICAgICAgfSwKLSAg ICB9KTsKLQotICBwZ0FkbWluLlNxbEVkaXRvciA9IHsKLSAgICAvLyBUaGlzIGZ1bmN0aW9uIGlz IHVzZWQgdG8gY3JlYXRlIGFuZCByZXR1cm4gdGhlIG9iamVjdCBvZiBncmlkIGNvbnRyb2xsZXIu Ci0gICAgY3JlYXRlOiBmdW5jdGlvbihjb250YWluZXIpIHsKLSAgICAgIHJldHVybiBuZXcgU3Fs RWRpdG9yQ29udHJvbGxlcihjb250YWluZXIpOwotICAgIH0sCi0gICAganF1ZXJ5OiAkLAotICB9 OwotCi0gIHJldHVybiBwZ0FkbWluLlNxbEVkaXRvcjsKLX0pOwpkaWZmIC0tZ2l0IGEvd2ViL3Bn YWRtaW4vdG9vbHMvZGF0YWdyaWQvc3RhdGljL2pzL2RhdGFncmlkX3BhbmVsX3RpdGxlLmpzIGIv d2ViL3BnYWRtaW4vdG9vbHMvc3FsZWRpdG9yL3N0YXRpYy9qcy9zcWxlZGl0b3JfdGl0bGUuanMK c2ltaWxhcml0eSBpbmRleCA1OCUKcmVuYW1lIGZyb20gd2ViL3BnYWRtaW4vdG9vbHMvZGF0YWdy aWQvc3RhdGljL2pzL2RhdGFncmlkX3BhbmVsX3RpdGxlLmpzCnJlbmFtZSB0byB3ZWIvcGdhZG1p bi90b29scy9zcWxlZGl0b3Ivc3RhdGljL2pzL3NxbGVkaXRvcl90aXRsZS5qcwppbmRleCA3ZjVk NmZiZTIuLmJmNjMyY2YzMCAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vdG9vbHMvZGF0YWdyaWQv c3RhdGljL2pzL2RhdGFncmlkX3BhbmVsX3RpdGxlLmpzCisrKyBiL3dlYi9wZ2FkbWluL3Rvb2xz L3NxbGVkaXRvci9zdGF0aWMvanMvc3FsZWRpdG9yX3RpdGxlLmpzCkBAIC04LDggKzgsOSBAQAog Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8KIAogaW1wb3J0IGdldHRleHQgZnJvbSAnc291cmNlcy9nZXR0ZXh0JzsKK2ltcG9ydCBB bGVydGlmeSBmcm9tICdwZ2FkbWluLmFsZXJ0aWZ5anMnOwogaW1wb3J0IHBnV2luZG93IGZyb20g J3NvdXJjZXMvd2luZG93JzsKLWltcG9ydCBOb3RpZnkgZnJvbSAnLi4vLi4vLi4vLi4vc3RhdGlj L2pzL2hlbHBlcnMvTm90aWZpZXInOworaW1wb3J0IHsgcmV0cmlldmVOYW1lU3BhY2VOYW1lLCBy ZXRyaWV2ZU5vZGVOYW1lIH0gZnJvbSAnLi9zaG93X3ZpZXdfZGF0YSc7CiAKIGNvbnN0IHBnQWRt aW4gPSBwZ1dpbmRvdy5wZ0FkbWluOwogCkBAIC0yMiw2ICsyMywyNSBAQCBmdW5jdGlvbiBpc1Nl cnZlckluZm9ybWF0aW9uQXZhaWxhYmxlKHBhcmVudERhdGEpIHsKICAgcmV0dXJuIHBhcmVudERh dGEuc2VydmVyID09PSB1bmRlZmluZWQ7CiB9CiAKK2V4cG9ydCBmdW5jdGlvbiBnZXRUaXRsZShw Z0FkbWluLCBicm93c2VyUHJlZiwgcGFyZW50RGF0YT1udWxsLCBpc0Nvbm5UaXRsZT1mYWxzZSwg c2VydmVyPW51bGwsIGRhdGFiYXNlPW51bGwsIHVzZXJuYW1lPW51bGwsIGlzUXVlcnlUb29sPWZh bHNlKSB7CisgIGxldCB0aXRsZVRlbXBsYXRlID0gaXNRdWVyeVRvb2wgPyBwZ0FkbWluWydxdF9k ZWZhdWx0X3BsYWNlaG9sZGVyJ10gOiBwZ0FkbWluWyd2d19lZHRfZGVmYXVsdF9wbGFjZWhvbGRl ciddOworICBpZiAoIWlzQ29ublRpdGxlKSB7CisgICAgaWYoIWlzUXVlcnlUb29sKSB7CisgICAg ICB0aXRsZVRlbXBsYXRlID0gYnJvd3NlclByZWZbJ3Z3X2VkdF90YWJfdGl0bGVfcGxhY2Vob2xk ZXInXSA/PyBwZ0FkbWluWydxdF9kZWZhdWx0X3BsYWNlaG9sZGVyJ107CisgICAgfSBlbHNlIHsK KyAgICAgIHRpdGxlVGVtcGxhdGUgPSBicm93c2VyUHJlZlsncXRfdGFiX3RpdGxlX3BsYWNlaG9s ZGVyJ10gPz8gcGdBZG1pblsndndfZWR0X2RlZmF1bHRfcGxhY2Vob2xkZXInXTsKKyAgICB9Cisg IH0KKyAgcmV0dXJuIGdlbmVyYXRlVGl0bGUodGl0bGVUZW1wbGF0ZSwgeworICAgICdkYXRhYmFz ZSc6IGRhdGFiYXNlLAorICAgICd1c2VybmFtZSc6IHVzZXJuYW1lLAorICAgICdzZXJ2ZXInOiBz ZXJ2ZXIsCisgICAgJ3NjaGVtYSc6IHJldHJpZXZlTmFtZVNwYWNlTmFtZShwYXJlbnREYXRhKSwK KyAgICAndGFibGUnOiByZXRyaWV2ZU5vZGVOYW1lKHBhcmVudERhdGEpLAorICAgICd0eXBlJzog aXNRdWVyeVRvb2wgPyAncXVlcnlfdG9vbCcgOiAndmlld19kYXRhJywKKyAgfSk7Cit9CisKIGV4 cG9ydCBmdW5jdGlvbiBnZXRQYW5lbFRpdGxlKHBnQnJvd3Nlciwgc2VsZWN0ZWRfaXRlbT1udWxs LCBjdXN0b21fdGl0bGU9bnVsbCwgcGFyZW50RGF0YT1udWxsLCBjb25uX3RpdGxlPWZhbHNlLCBk Yl9sYWJlbD1udWxsKSB7CiAgIHZhciBwcmVmZXJlbmNlcyA9IHBnQnJvd3Nlci5nZXRfcHJlZmVy ZW5jZXNfZm9yX21vZHVsZSgnYnJvd3NlcicpOwogICBpZihzZWxlY3RlZF9pdGVtID09IG51bGwg JiYgcGFyZW50RGF0YSA9PSBudWxsKSB7CkBAIC01Nyw2ICs3Nyw3IEBAIGV4cG9ydCBmdW5jdGlv biBnZXRQYW5lbFRpdGxlKHBnQnJvd3Nlciwgc2VsZWN0ZWRfaXRlbT1udWxsLCBjdXN0b21fdGl0 bGU9bnVsbCwKICAgICAnc2VydmVyJzogcGFyZW50RGF0YS5zZXJ2ZXIubGFiZWwsCiAgICAgJ3R5 cGUnOiAncXVlcnlfdG9vbCcsCiAgIH07CisKICAgcmV0dXJuIGdlbmVyYXRlVGl0bGUocXRfdGl0 bGVfcGxhY2Vob2xkZXIsIHRpdGxlX2RhdGEpOwogfQogCkBAIC02OSw3ICs5MCw3IEBAIGV4cG9y dCBmdW5jdGlvbiBzZXRRdWVyeVRvb2xEb2NrZXJUaXRsZShwYW5lbCwgaXNfcXVlcnlfdG9vbCwg cGFuZWxfdGl0bGUsIGlzX2ZpCiAgICAgcGFuZWxfdG9vbHRpcCA9IGdldHRleHQoJ0ZpbGUgLSAn KSArIHBhbmVsX3RpdGxlOwogICAgIHBhbmVsX2ljb24gPSAnZmEgZmEtZmlsZS1hbHQnOwogICB9 Ci0gIGVsc2UgaWYgKGlzX3F1ZXJ5X3Rvb2wgPT0gJ2ZhbHNlJyB8fCBpc19xdWVyeV90b29sID09 IGZhbHNlKSB7CisgIGVsc2UgaWYgKGlzX3F1ZXJ5X3Rvb2wgPT0gJ2ZhbHNlJyB8fCAhaXNfcXVl cnlfdG9vbCkgewogICAgIC8vIEVkaXQgZ3JpZCB0aXRsZXMKICAgICBwYW5lbF90b29sdGlwID0g Z2V0dGV4dCgnVmlldy9FZGl0IERhdGEgLSAnKSArIHBhbmVsX3RpdGxlOwogICAgIHBhbmVsX2lj b24gPSAncGctZm9udC1pY29uIGljb24tdmlld19kYXRhJzsKQEAgLTg2LDMzICsxMDcsMjkgQEAg ZXhwb3J0IGZ1bmN0aW9uIHNldFF1ZXJ5VG9vbERvY2tlclRpdGxlKHBhbmVsLCBpc19xdWVyeV90 b29sLCBwYW5lbF90aXRsZSwgaXNfZmkKIAogZXhwb3J0IGZ1bmN0aW9uIHNldF9yZW5hbWFibGVf b3B0aW9uKHBhbmVsLCBpc19maWxlKSB7CiAgIGlmKGlzX2ZpbGUgfHwgaXNfZmlsZSA9PSAndHJ1 ZScpIHsKLSAgICBwYW5lbC5yZW5hbWFibGUoZmFsc2UpOworICAgIHBhbmVsPy5yZW5hbWFibGUo ZmFsc2UpOwogICB9IGVsc2UgewotICAgIHBhbmVsLnJlbmFtYWJsZSh0cnVlKTsKKyAgICBwYW5l bD8ucmVuYW1hYmxlKHRydWUpOwogICB9CiB9CiAKIGV4cG9ydCBmdW5jdGlvbiBnZW5lcmF0ZVRp dGxlKHRpdGxlX3BsYWNlaG9sZGVyLCB0aXRsZV9kYXRhKSB7CiAKLSAgaWYodGl0bGVfZGF0YS50 eXBlID09ICdxdWVyeV90b29sJykgewotICAgIHRpdGxlX3BsYWNlaG9sZGVyID0gdGl0bGVfcGxh Y2Vob2xkZXIucmVwbGFjZShuZXcgUmVnRXhwKCclREFUQUJBU0UlJyksIF8udW5lc2NhcGUodGl0 bGVfZGF0YS5kYXRhYmFzZSkpOwotICAgIHRpdGxlX3BsYWNlaG9sZGVyID0gdGl0bGVfcGxhY2Vo b2xkZXIucmVwbGFjZShuZXcgUmVnRXhwKCclVVNFUk5BTUUlJyksIF8udW5lc2NhcGUodGl0bGVf ZGF0YS51c2VybmFtZSkpOwotICAgIHRpdGxlX3BsYWNlaG9sZGVyID0gdGl0bGVfcGxhY2Vob2xk ZXIucmVwbGFjZShuZXcgUmVnRXhwKCclU0VSVkVSJScpLCBfLnVuZXNjYXBlKHRpdGxlX2RhdGEu c2VydmVyKSk7Ci0gIH0gZWxzZSBpZih0aXRsZV9kYXRhLnR5cGUgPT0gJ2RhdGFncmlkJykgewot ICAgIHRpdGxlX3BsYWNlaG9sZGVyID0gdGl0bGVfcGxhY2Vob2xkZXIucmVwbGFjZShuZXcgUmVn RXhwKCclREFUQUJBU0UlJyksIF8udW5lc2NhcGUodGl0bGVfZGF0YS5kYXRhYmFzZSkpOwotICAg IHRpdGxlX3BsYWNlaG9sZGVyID0gdGl0bGVfcGxhY2Vob2xkZXIucmVwbGFjZShuZXcgUmVnRXhw KCclVVNFUk5BTUUlJyksIF8udW5lc2NhcGUodGl0bGVfZGF0YS51c2VybmFtZSkpOwotICAgIHRp dGxlX3BsYWNlaG9sZGVyID0gdGl0bGVfcGxhY2Vob2xkZXIucmVwbGFjZShuZXcgUmVnRXhwKCcl U0VSVkVSJScpLCBfLnVuZXNjYXBlKHRpdGxlX2RhdGEuc2VydmVyKSk7Ci0gICAgdGl0bGVfcGxh Y2Vob2xkZXIgPSB0aXRsZV9wbGFjZWhvbGRlci5yZXBsYWNlKG5ldyBSZWdFeHAoJyVTQ0hFTUEl JyksIF8udW5lc2NhcGUodGl0bGVfZGF0YS5zY2hlbWEpKTsKLSAgICB0aXRsZV9wbGFjZWhvbGRl ciA9IHRpdGxlX3BsYWNlaG9sZGVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnJVRBQkxFJScpLCBfLnVu ZXNjYXBlKHRpdGxlX2RhdGEudGFibGUpKTsKKyAgaWYodGl0bGVfZGF0YS50eXBlID09ICdxdWVy eV90b29sJyB8fCB0aXRsZV9kYXRhLnR5cGUgPT0gJ3BzcWxfdG9vbCcpIHsKKyAgICB0aXRsZV9w bGFjZWhvbGRlciA9IHRpdGxlX3BsYWNlaG9sZGVyLnJlcGxhY2UoJyVEQVRBQkFTRSUnLCBfLnVu ZXNjYXBlKHRpdGxlX2RhdGEuZGF0YWJhc2UpKTsKKyAgICB0aXRsZV9wbGFjZWhvbGRlciA9IHRp dGxlX3BsYWNlaG9sZGVyLnJlcGxhY2UoJyVVU0VSTkFNRSUnLCBfLnVuZXNjYXBlKHRpdGxlX2Rh dGEudXNlcm5hbWUpKTsKKyAgICB0aXRsZV9wbGFjZWhvbGRlciA9IHRpdGxlX3BsYWNlaG9sZGVy LnJlcGxhY2UoJyVTRVJWRVIlJywgXy51bmVzY2FwZSh0aXRsZV9kYXRhLnNlcnZlcikpOworICB9 IGVsc2UgaWYodGl0bGVfZGF0YS50eXBlID09ICd2aWV3X2RhdGEnKSB7CisgICAgdGl0bGVfcGxh Y2Vob2xkZXIgPSB0aXRsZV9wbGFjZWhvbGRlci5yZXBsYWNlKCclREFUQUJBU0UlJywgXy51bmVz Y2FwZSh0aXRsZV9kYXRhLmRhdGFiYXNlKSk7CisgICAgdGl0bGVfcGxhY2Vob2xkZXIgPSB0aXRs ZV9wbGFjZWhvbGRlci5yZXBsYWNlKCclVVNFUk5BTUUlJywgXy51bmVzY2FwZSh0aXRsZV9kYXRh LnVzZXJuYW1lKSk7CisgICAgdGl0bGVfcGxhY2Vob2xkZXIgPSB0aXRsZV9wbGFjZWhvbGRlci5y ZXBsYWNlKCclU0VSVkVSJScsIF8udW5lc2NhcGUodGl0bGVfZGF0YS5zZXJ2ZXIpKTsKKyAgICB0 aXRsZV9wbGFjZWhvbGRlciA9IHRpdGxlX3BsYWNlaG9sZGVyLnJlcGxhY2UoJyVTQ0hFTUElJywg Xy51bmVzY2FwZSh0aXRsZV9kYXRhLnNjaGVtYSkpOworICAgIHRpdGxlX3BsYWNlaG9sZGVyID0g dGl0bGVfcGxhY2Vob2xkZXIucmVwbGFjZSgnJVRBQkxFJScsIF8udW5lc2NhcGUodGl0bGVfZGF0 YS50YWJsZSkpOwogICB9IGVsc2UgaWYodGl0bGVfZGF0YS50eXBlID09ICdkZWJ1Z2dlcicpIHsK LSAgICB0aXRsZV9wbGFjZWhvbGRlciA9IHRpdGxlX3BsYWNlaG9sZGVyLnJlcGxhY2UobmV3IFJl Z0V4cCgnJUZVTkNUSU9OJScpLCBfLnVuZXNjYXBlKHRpdGxlX2RhdGEuZnVuY3Rpb25fbmFtZSkp OwotICAgIHRpdGxlX3BsYWNlaG9sZGVyID0gdGl0bGVfcGxhY2Vob2xkZXIucmVwbGFjZShuZXcg UmVnRXhwKCclQVJHUyUnKSwgXy51bmVzY2FwZSh0aXRsZV9kYXRhLmFyZ3MpKTsKLSAgICB0aXRs ZV9wbGFjZWhvbGRlciA9IHRpdGxlX3BsYWNlaG9sZGVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnJVND SEVNQSUnKSwgXy51bmVzY2FwZSh0aXRsZV9kYXRhLnNjaGVtYSkpOwotICAgIHRpdGxlX3BsYWNl aG9sZGVyID0gdGl0bGVfcGxhY2Vob2xkZXIucmVwbGFjZShuZXcgUmVnRXhwKCclREFUQUJBU0Ul JyksIF8udW5lc2NhcGUodGl0bGVfZGF0YS5kYXRhYmFzZSkpOwotICB9IGVsc2UgaWYodGl0bGVf ZGF0YS50eXBlID09ICdwc3FsX3Rvb2wnKSB7Ci0gICAgdGl0bGVfcGxhY2Vob2xkZXIgPSB0aXRs ZV9wbGFjZWhvbGRlci5yZXBsYWNlKG5ldyBSZWdFeHAoJyVEQVRBQkFTRSUnKSwgXy51bmVzY2Fw ZSh0aXRsZV9kYXRhLmRhdGFiYXNlKSk7Ci0gICAgdGl0bGVfcGxhY2Vob2xkZXIgPSB0aXRsZV9w bGFjZWhvbGRlci5yZXBsYWNlKG5ldyBSZWdFeHAoJyVVU0VSTkFNRSUnKSwgXy51bmVzY2FwZSh0 aXRsZV9kYXRhLnVzZXJuYW1lKSk7Ci0gICAgdGl0bGVfcGxhY2Vob2xkZXIgPSB0aXRsZV9wbGFj ZWhvbGRlci5yZXBsYWNlKG5ldyBSZWdFeHAoJyVTRVJWRVIlJyksIF8udW5lc2NhcGUodGl0bGVf ZGF0YS5zZXJ2ZXIpKTsKKyAgICB0aXRsZV9wbGFjZWhvbGRlciA9IHRpdGxlX3BsYWNlaG9sZGVy LnJlcGxhY2UoJyVGVU5DVElPTiUnLCBfLnVuZXNjYXBlKHRpdGxlX2RhdGEuZnVuY3Rpb25fbmFt ZSkpOworICAgIHRpdGxlX3BsYWNlaG9sZGVyID0gdGl0bGVfcGxhY2Vob2xkZXIucmVwbGFjZSgn JUFSR1MlJywgXy51bmVzY2FwZSh0aXRsZV9kYXRhLmFyZ3MpKTsKKyAgICB0aXRsZV9wbGFjZWhv bGRlciA9IHRpdGxlX3BsYWNlaG9sZGVyLnJlcGxhY2UoJyVTQ0hFTUElJywgXy51bmVzY2FwZSh0 aXRsZV9kYXRhLnNjaGVtYSkpOworICAgIHRpdGxlX3BsYWNlaG9sZGVyID0gdGl0bGVfcGxhY2Vo b2xkZXIucmVwbGFjZSgnJURBVEFCQVNFJScsIF8udW5lc2NhcGUodGl0bGVfZGF0YS5kYXRhYmFz ZSkpOwogICB9CiAKICAgcmV0dXJuIF8uZXNjYXBlKHRpdGxlX3BsYWNlaG9sZGVyKTsKQEAgLTEy Miw3ICsxMzksNyBAQCBleHBvcnQgZnVuY3Rpb24gZ2VuZXJhdGVUaXRsZSh0aXRsZV9wbGFjZWhv bGRlciwgdGl0bGVfZGF0YSkgewogICogVGhpcyBmdW5jdGlvbiBpcyB1c2VkIHJlZnJlc2ggdGhl IGRiIG5vZGUgYWZ0ZXIgc2hvd2luZyBhbGVydCB0byB0aGUgdXNlcgogICovCiBleHBvcnQgZnVu Y3Rpb24gcmVmcmVzaF9kYl9ub2RlKG1lc3NhZ2UsIGRiTm9kZSkgewotICBOb3RpZnkuYWxlcnQo KQorICBBbGVydGlmeS5hbGVydCgpCiAgICAgLnNldHRpbmcoewogICAgICAgJ3RpdGxlJzogZ2V0 dGV4dCgnRGF0YWJhc2UgbW92ZWQvcmVuYW1lZCcpLAogICAgICAgJ2xhYmVsJzpnZXR0ZXh0KCdP SycpLApkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vdG9vbHMvc3FsZWRpdG9yL3N0YXRpYy9zY3Nz L19oaXN0b3J5LnNjc3MgYi93ZWIvcGdhZG1pbi90b29scy9zcWxlZGl0b3Ivc3RhdGljL3Njc3Mv X2hpc3Rvcnkuc2NzcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZmJiODE3ODI0Li4w MDAwMDAwMDAKLS0tIGEvd2ViL3BnYWRtaW4vdG9vbHMvc3FsZWRpdG9yL3N0YXRpYy9zY3NzL19o aXN0b3J5LnNjc3MKKysrIC9kZXYvbnVsbApAQCAtMSwyNTQgKzAsMCBAQAotLnF1ZXJ5LWhpc3Rv cnkgewotICBvdmVyZmxvdzogYXV0bzsKLQotICAubGlzdC1pdGVtIHsKLSAgICBib3JkZXItYm90 dG9tOiAkcGFuZWwtYm9yZGVyOwotICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci1iZzsKLSAg fQotCi0gIC5lbnRyeSB7Ci0gICAgZm9udC1mYW1pbHk6ICRmb250LWZhbWlseS1lZGl0b3I7Ci0g ICAgYm9yZGVyOiAkcGFuZWwtYm9yZGVyLXdpZHRoIHNvbGlkIHRyYW5zcGFyZW50OwotICAgIG1h cmdpbi1sZWZ0OiAxcHg7Ci0gICAgcGFkZGluZzogMCA1cHg7Ci0KLSAgICAub3RoZXItaW5mbyB7 Ci0gICAgICBAZXh0ZW5kIC50ZXh0LTEyOwotICAgICAgY29sb3I6ICR0ZXh0LW11dGVkOwotICAg ICAgZm9udC1mYW1pbHk6ICRmb250LWZhbWlseS1lZGl0b3I7Ci0gICAgICBkaXNwbGF5OiBmbGV4 OwotICAgICAgZmxleC1kaXJlY3Rpb246IHJvdzsKLSAgICAgIGp1c3RpZnktY29udGVudDogc3Bh Y2UtYmV0d2VlbjsKLQotICAgICAgLnRpbWVzdGFtcCB7Ci0gICAgICAgIGFsaWduLXNlbGY6IGZs ZXgtc3RhcnQ7Ci0gICAgICB9Ci0gICAgfQotCi0gICAgLnF1ZXJ5IHsKLSAgICAgIHRleHQtb3Zl cmZsb3c6IGVsbGlwc2lzOwotICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKLSAgICAgIHdoaXRlLXNw YWNlOiBub3dyYXA7Ci0gICAgICB1c2VyLXNlbGVjdDogaW5pdGlhbDsKLQotICAgICAgLnF1ZXJ5 LWhpc3RvcnktaWNvbiB7Ci0gICAgICAgIHdpZHRoOiAxOHB4OwotICAgICAgICB0ZXh0LWFsaWdu OiBjZW50ZXI7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0KLSAgLmRhdGUtbGFiZWwgewotICAgIGZv bnQtZmFtaWx5OiAkZm9udC1mYW1pbHktZWRpdG9yOwotICAgIGJhY2tncm91bmQ6ICRjb2xvci1n cmF5LWxpZ2h0ZXI7Ci0gICAgcGFkZGluZzogMnB4IDlweDsKLSAgICBmb250LXNpemU6IDExcHg7 Ci0gICAgZm9udC13ZWlnaHQ6IGJvbGQ7Ci0gICAgY29sb3I6ICAkY29sb3ItZ3JheTsKLSAgICBi b3JkZXItYm90dG9tOiAkcGFuZWwtYm9yZGVyOwotICB9Ci0KLSAgLmVudHJ5LmVycm9yIHsKLSAg ICBiYWNrZ3JvdW5kOiAkc3FsLWhpc3RvcnktZXJyb3ItYmc7Ci0gIH0KLQotICAuc2VsZWN0ZWQg ewotICAgICYgLmVudHJ5LmVycm9yIHsKLSAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzcWwtaGlz dG9yeS1lcnJvci1iZzsKLSAgICB9Ci0KLSAgICAmIC5lbnRyeSB7Ci0gICAgICBjb2xvcjogJHNx bC1oaXN0b3J5LXN1Y2Nlc3MtZmc7Ci0gICAgICBib3JkZXI6ICR0YWJsZS1ob3Zlci1ib3JkZXI7 Ci0gICAgICBiYWNrZ3JvdW5kOiAkc3FsLWhpc3Rvcnktc3VjY2Vzcy1iZzsKLSAgICAgIGZvbnQt d2VpZ2h0OiBib2xkOwotCi0gICAgICAub3RoZXItaW5mbyB7Ci0gICAgICAgIGNvbG9yOiAkc3Fs LWhpc3Rvcnktc3VjY2Vzcy1mZzsKLSAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7Ci0gICAgICB9 Ci0gICAgfQotICB9Ci19Ci0KLSNoaXN0b3J5LWRldGFpbC1xdWVyeSAuQ29kZU1pcnJvciB7Ci0g IGJvcmRlcjogJHBhbmVsLWJvcmRlcjsKLSAgYmFja2dyb3VuZC1jb2xvcjogJHNxbC1oaXN0b3J5 LWRldGFpbC1iZzsKLSAgd2lkdGg6IDEwMCU7Ci0gIHBhZGRpbmctbGVmdDogNXB4OwotICBwb3Np dGlvbjogYWJzb2x1dGU7Ci19Ci0KLS5oZWFkZXItbGFiZWwgewotICBAZXh0ZW5kIC50ZXh0LTEy OwotICBkaXNwbGF5OiBibG9jazsKLSAgY29sb3I6ICRjb2xvci1mZzsKLX0KLQotCi0uc3FsLWVk aXRvci1oaXN0b3J5LWNvbnRhaW5lciB7Ci0gIGhlaWdodDogMTAwJTsKLSAgb3ZlcmZsb3c6IGhp ZGRlbjsKLSAgYmFja2dyb3VuZC1jb2xvcjogJG5lZ2F0aXZlLWJnOwotfQotCi0KLS5xdWVyeS1k ZXRhaWwgewotICBoZWlnaHQ6IDEwMCU7Ci0gIHdpZHRoOiAxMDAlOwotICBtaW4taGVpZ2h0OiAx OWVtOwotICBvdmVyZmxvdzogYXV0bzsKLSAgZGlzcGxheTogZmxleDsKLSAgZmxleC1kaXJlY3Rp b246IGNvbHVtbjsKLSAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLWJnOwotICAuZXJyb3ItbWVz c2FnZS1ibG9jayB7Ci0gICAgYmFja2dyb3VuZDogJHNxbC1oaXN0b3J5LWVycm9yLWJnOwotICAg IGZsZXg6IDAuMzsKLSAgICBwYWRkaW5nLWxlZnQ6IDIwcHg7Ci0KLSAgICAuaGlzdG9yeS1lcnJv ci10ZXh0IHsKLSAgICAgIEBleHRlbmQgLnRleHQtMTI7Ci0gICAgICBwYWRkaW5nOiA3cHggMDsK LQotICAgICAgc3BhbiB7Ci0gICAgICAgIGNvbG9yOiRzcWwtaGlzdG9yeS1lcnJvci1mZzsKLSAg ICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKLSAgICAgICAgbWFyZ2luLXJpZ2h0OiA4cHg7Ci0gICAg ICB9Ci0gICAgfQotICB9Ci0KLSAgLmluZm8tbWVzc2FnZS1ibG9jayB7Ci0gICAgYmFja2dyb3Vu ZDogJHNxbC1oaXN0b3J5LWRldGFpbC1iZzsKLSAgICBmbGV4OiAwLjM7Ci0gICAgcGFkZGluZy1s ZWZ0OiAyMHB4OwotCi0gICAgLmhpc3RvcnktaW5mby10ZXh0IHsKLSAgICAgIEBleHRlbmQgLnRl eHQtMTI7Ci0gICAgICBwYWRkaW5nOiA3cHggMDsKLSAgICB9Ci0gIH0KLQotICAubWV0YWRhdGEt YmxvY2sgewotICAgIGZsZXg6IDAuNDsKLSAgICBwYWRkaW5nOiAxMHB4IDIwcHg7Ci0KLSAgICAu bWV0YWRhdGEgewotICAgICAgZGlzcGxheTogZmxleDsKLSAgICAgIGZsZXgtd3JhcDogd3JhcDsK LQotICAgICAgLml0ZW0gewotICAgICAgICBmbGV4OiAxOwotICAgICAgICBtaW4td2lkdGg6IDEz MHB4OwotCi0gICAgICAgIC52YWx1ZSB7Ci0gICAgICAgICAgQGV4dGVuZCAudGV4dC0xNDsKLSAg ICAgICAgICBkaXNwbGF5OiBibG9jazsKLSAgICAgICAgfQotCi0gICAgICAgIC5kZXNjcmlwdGlv biB7Ci0gICAgICAgICAgQGV4dGVuZCAuaGVhZGVyLWxhYmVsOwotICAgICAgICB9Ci0gICAgICB9 Ci0KLSAgICB9Ci0gIH0KLQotICAucXVlcnktc3RhdGVtZW50LWJsb2NrIHsKLSAgICBmbGV4OiA1 OwotICAgIG1hcmdpbi1sZWZ0OiAxMHB4OwotICAgIG1hcmdpbi1yaWdodDogMTBweDsKLSAgICBt aW4taGVpZ2h0OiA0ZW07Ci0gICAgcG9zaXRpb246IHJlbGF0aXZlOwotCi0gICAgLmNvcHktYWxs LCAud2FzLWNvcGllZCwgLmNvcHktdG8tZWRpdG9yIHsKLSAgICAgIGZsb2F0OiBsZWZ0OwotICAg ICAgcG9zaXRpb246IHJlbGF0aXZlOwotICAgICAgei1pbmRleDogMTA7Ci0gICAgICBib3JkZXI6 IDFweCBzb2xpZCAkYm9yZGVyLWNvbG9yOwotICAgICAgY29sb3I6ICRjb2xvci1mZzsKLSAgICAg IGZvbnQtc2l6ZTogMTJweDsKLSAgICAgIGJveC1zaGFkb3c6IDFweCAycHggNHB4IDBweCAkY29s b3ItZ3JheS1saWdodDsKLSAgICAgIHBhZGRpbmc6IDNweCAxMnB4IDNweCAxMHB4OwotICAgICAg Zm9udC13ZWlnaHQ6IDUwMDsKLSAgICAgIG1pbi13aWR0aDogNzVweDsKLSAgICB9Ci0KLSAgICAu Y29weS1hbGwsIC5jb3B5LXRvLWVkaXRvciB7Ci0gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29s b3ItYmc7Ci0gICAgfQotCi0gICAgLndhcy1jb3BpZWQgewotICAgICAgYmFja2dyb3VuZC1jb2xv cjogJGNvbG9yLXByaW1hcnktbGlnaHQ7Ci0gICAgICBib3JkZXItY29sb3I6ICRjb2xvci1wcmlt YXJ5LWxpZ2h0OwotICAgICAgY29sb3I6ICRidG4tY29waWVkLWNvbG9yLWZnOwotICAgIH0KLQot ICAgIC5Db2RlTWlycm9yLXNjcm9sbCB7Ci0gICAgICBwYWRkaW5nLXRvcDogMjVweDsKLSAgICB9 Ci0gIH0KLQotICAuYmxvY2stZGl2aWRlciB7Ci0gICAgbWFyZ2luLXRvcDogMTFweDsKLSAgICBt YXJnaW4tYm90dG9tOiA4cHg7Ci0gIH0KLQotICAubWVzc2FnZS1ibG9jayB7Ci0gICAgZmxleDog MjsKLSAgICBkaXNwbGF5OiBmbGV4OwotICAgIHBhZGRpbmc6IDAgMjBweDsKLSAgICBtaW4taGVp Z2h0OiA2ZW07Ci0KLSAgICAubWVzc2FnZSB7Ci0gICAgICBmbGV4OiAyIDIgMCU7Ci0gICAgICBm bGV4LWRpcmVjdGlvbjogY29sdW1uOwotICAgICAgZGlzcGxheTogZmxleDsKLQotICAgICAgLm1l c3NhZ2UtaGVhZGVyIHsKLSAgICAgICAgQGV4dGVuZCAuaGVhZGVyLWxhYmVsOwotICAgICAgICBA ZXh0ZW5kIC5ub3Qtc2VsZWN0YWJsZTsKLSAgICAgICAgZmxleDogMCAwIGF1dG87Ci0gICAgICB9 Ci0KLSAgICAgIC5jb250ZW50IHsKLSAgICAgICAgZmxleDogMCAxIGF1dG87Ci0gICAgICAgIG92 ZXJmbG93OiBhdXRvOwotICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7Ci0gICAgICAgIGhlaWdo dDogMTAwJTsKLQotICAgICAgICAuY29udGVudC12YWx1ZSB7Ci0gICAgICAgICAgQGV4dGVuZCAu Ymctd2hpdGU7Ci0gICAgICAgICAgQGV4dGVuZCAudGV4dC0xMzsKLSAgICAgICAgICBmb250LWZh bWlseTogJGZvbnQtZmFtaWx5LWVkaXRvcjsKLSAgICAgICAgICBjb2xvcjogJGNvbG9yLWZnOwot ICAgICAgICAgIGJvcmRlcjogMDsKLSAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7Ci0gICAgICAg ICAgcG9zaXRpb246IGFic29sdXRlOwotICAgICAgICB9Ci0gICAgICB9Ci0gICAgfQotICB9Ci19 Ci0KLSNoaXN0b3J5X2dyaWQgewotICAuZ3V0dGVyLmd1dHRlci1ob3Jpem9udGFsIHsKLSAgICB3 aWR0aDogJHBhbmVsLWJvcmRlci13aWR0aDsKLSAgICBiYWNrZ3JvdW5kOiAkcGFuZWwtYm9yZGVy LWNvbG9yOwotCi0gICAgJjpob3ZlciB7Ci0gICAgICBjdXJzb3I6IGV3LXJlc2l6ZTsKLSAgICB9 Ci0gIH0KLQotICAudG9nZ2xlLWFuZC1oaXN0b3J5LWNvbnRhaW5lciB7Ci0gICAgZGlzcGxheTog ZmxleDsKLSAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwotICAgIGhlaWdodDogMTAwJTsKLQot ICAgIC5xdWVyeS1oaXN0b3J5LXRvZ2dsZSB7Ci0gICAgICBwYWRkaW5nLXRvcDogNHB4OwotICAg ICAgcGFkZGluZy1ib3R0b206IDRweDsKLSAgICB9Ci0gIH0KLX0KZGlmZiAtLWdpdCBhL3dlYi9w Z2FkbWluL3Rvb2xzL3NxbGVkaXRvci9zdGF0aWMvc2Nzcy9fc3FsZWRpdG9yLnNjc3MgYi93ZWIv cGdhZG1pbi90b29scy9zcWxlZGl0b3Ivc3RhdGljL3Njc3MvX3NxbGVkaXRvci5zY3NzCmRlbGV0 ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlZTVhYWJmOGQuLjAwMDAwMDAwMAotLS0gYS93ZWIv cGdhZG1pbi90b29scy9zcWxlZGl0b3Ivc3RhdGljL3Njc3MvX3NxbGVkaXRvci5zY3NzCisrKyAv ZGV2L251bGwKQEAgLTEsNDMxICswLDAgQEAKLS5maWx0ZXItdGl0bGUgewotICBiYWNrZ3JvdW5k LWNvbG9yOiAkY29sb3ItcHJpbWFyeTsKLSAgcGFkZGluZzogMnB4OwotICBjb2xvcjogJGNvbG9y LXByaW1hcnktZmc7Ci0gIGZvbnQtc2l6ZTogMTNweDsKLX0KLQotLnNxbC1pY29uLWxnIHsKLSAg Zm9udC1zaXplOiAwLjg3NXJlbTsKLSAgbGluZS1oZWlnaHQ6IDEuMzsKLX0KLQotLnNxbF90ZXh0 YXJlYSB7Ci0gIGhlaWdodDogMTAwJTsKLX0KLQotLnNxbF90ZXh0YXJlYSAuQ29kZU1pcnJvci1z Y3JvbGwgewotICB6LWluZGV4OiAwOwotfQotCi0uZGF0YS1vdXRwdXQtY29udGFpbmVyIHsKLSAg cG9zaXRpb246IGFic29sdXRlOwotICB0b3A6IDA7Ci0gIGJvdHRvbTogMDsKLSAgcmlnaHQ6IDA7 Ci0gIGxlZnQ6IDA7Ci0gIG92ZXJmbG93OiBoaWRkZW47Ci19Ci0KLS5zcWwtZWRpdG9yLWJ1c3kt dGV4dC1zdGF0dXMgewotICBwb3NpdGlvbjogYWJzb2x1dGU7Ci0gIHBhZGRpbmc6IDFyZW0gMS41 cmVtOwotICBib3R0b206IDA7Ci0gIHJpZ2h0OiAwOwotICBvcGFjaXR5OiAwLjg7Ci0gIGJhY2tn cm91bmQtY29sb3I6ICRjb2xvci13YXJuaW5nLWxpZ2h0OwotICBjb2xvcjogJGNvbG9yLXdhcm5p bmctZmc7Ci19Ci0KLS5jb25uZWN0aW9uX3N0YXR1cyB7Ci0gIGJhY2tncm91bmQtY29sb3I6ICRz cWwtdGl0bGUtYmc7Ci0gIGNvbG9yOiAkc3FsLXRpdGxlLWZnOwotICBib3JkZXItcmlnaHQ6ICRi b3JkZXItd2lkdGggc29saWQgJGJvcmRlci1jb2xvcjsKLX0KLQotLmVkaXRvci10aXRsZSB7Ci0g IHBhZGRpbmc6ICRzcWwtdGl0bGUtcGFkZGluZzsKLSAgYmFja2dyb3VuZDogJHNxbC10aXRsZS1i ZzsKLSAgY29sb3I6ICRzcWwtdGl0bGUtZmc7Ci19Ci0KLS5jb25uZWN0aW9uLWluZm8gewotICBi YWNrZ3JvdW5kOiAkc3FsLXRpdGxlLWJnOwotICBjb2xvcjogJHNxbC10aXRsZS1mZzsKLSAgd2lk dGg6MTAwJTsKLSAgZGlzcGxheTogaW5oZXJpdDsKLX0KLQotLmNvbm4taW5mby1kZCB7Ci0gIHBh ZGRpbmctdG9wOiAwLjNlbTsKLSAgcGFkZGluZy1sZWZ0OiAwLjJlbTsKLSAgY3Vyc29yOiBwb2lu dGVyOwotfQotCi0uY29ubmVjdGlvbi1kYXRhIHsKLSAgZGlzcGxheTogaW5oZXJpdDsKLSAgY3Vy c29yOiBwb2ludGVyOwotICB3aWR0aDogYXV0bzsKLX0KLQotCi0jZWRpdG9yLXBhbmVsIHsKLSAg ei1pbmRleDogMDsKLSAgcG9zaXRpb246IGFic29sdXRlOwotICB0b3A6ICRzcWwtZWRpdG9yLXBh bmVsLXRvcDsKLSAgYm90dG9tOiAwOwotICBsZWZ0OiAwOwotICByaWdodDogMDsKLX0KLQotCi0u YWpzLWJvZHkgLndhcm4taWNvbiB7Ci0gIGNvbG9yOiAkY29sb3Itd2FybmluZzsKLSAgZm9udC1z aXplOiAyZW07Ci0gIG1hcmdpbi1yaWdodDogMjBweDsKLSAgcGFkZGluZy10b3A6IDEwcHg7Ci19 Ci0KLS5jb25uZWN0aW9uX3N0YXR1c193cmFwcGVyIHsKLSAgd2lkdGg6IDEwMCU7Ci0gIGJvcmRl ci10b3A6ICRwYW5lbC1ib3JkZXI7Ci0gIGJvcmRlci1ib3R0b206ICRwYW5lbC1ib3JkZXI7Ci19 Ci0KLWxpLkNvZGVNaXJyb3ItaGludC1hY3RpdmUgewotICBiYWNrZ3JvdW5kOiAkY29sb3ItcHJp bWFyeS1saWdodDsKLSAgY29sb3I6ICRjb2xvci1wcmltYXJ5LWZnOwotfQotCi0uc3FsLWVkaXRv ciAuQ29kZU1pcnJvci1hY3RpdmVsaW5lLWJhY2tncm91bmQgewotICBiYWNrZ3JvdW5kOiAkY29s b3ItZWRpdG9yLWFjdGl2ZWxpbmUtbGlnaHQgIWltcG9ydGFudDsKLSAgYm9yZGVyOiAxcHggc29s aWQgJGNvbG9yLWVkaXRvci1hY3RpdmVsaW5lLWJvcmRlci1jb2xvcjsKLX0KLQotLmZpbHRlci1j b250YWluZXIgewotICBwb3NpdGlvbjogcmVsYXRpdmU7Ci0gIGJhY2tncm91bmQtY29sb3I6ICRj b2xvci1iZzsKLSAgYm9yZGVyOiAxcHggc29saWQgJGJvcmRlci1jb2xvcjsKLSAgcGFkZGluZy1i b3R0b206IDMwcHg7Ci0gIHRvcDogMTBweDsKLSAgei1pbmRleDogMTsKLSAgbWFyZ2luOiBhdXRv OwotICB3aWR0aDogNjAlOwotfQotCi0ubGltaXQtZW5hYmxlZCB7Ci0gIGJhY2tncm91bmQtY29s b3I6ICRjb2xvci1iZzsKLX0KLQotCi0KLS5Db2RlTWlycm9yLWhpbnQgewotICBtYXJnaW46IDA7 Ci0gIHBhZGRpbmc6IDAgNHB4OwotICBib3JkZXItcmFkaXVzOiAycHg7Ci0gIG92ZXJmbG93OiBo aWRkZW47Ci0gIHdoaXRlLXNwYWNlOiBwcmU7Ci0gIGNvbG9yOiAkY29sb3ItZmc7Ci0gIGN1cnNv cjogcG9pbnRlcjsKLX0KLQotLmdyaWQtaGVhZGVyIC51aS1pY29uLnVpLXN0YXRlLWhvdmVyIHsK LSAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLWJnOwotfQotCi0uc2xpY2stY2VsbC5zZWxlY3Rl ZCBzcGFuW2RhdGEtY2VsbC10eXBlPSJyb3ctaGVhZGVyLXNlbGVjdG9yIl0gewotICBjb2xvcjog JGNvbG9yLXByaW1hcnktZmc7Ci19Ci0KLS5zbGljay1jZWxsLmNlbGwtbW92ZS1oYW5kbGUgewot ICBmb250LXdlaWdodDogYm9sZDsKLSAgdGV4dC1hbGlnbjogcmlnaHQ7Ci0gIGJvcmRlci1yaWdo dDogc29saWQgICRib3JkZXItY29sb3I7Ci0gIGJhY2tncm91bmQ6ICRjb2xvci1ncmF5LWxpZ2h0 ZXI7Ci0gIGN1cnNvcjogbW92ZTsKLX0KLQotLmNlbGwtbW92ZS1oYW5kbGU6aG92ZXIgewotICBi YWNrZ3JvdW5kOiAkY29sb3ItZ3JheS1saWdodDsKLX0KLQotLnNsaWNrLXJvdy5zZWxlY3RlZCAu Y2VsbC1tb3ZlLWhhbmRsZSB7Ci0gIGJhY2tncm91bmQ6ICRjb2xvci13YXJuaW5nLWxpZ2h0Owot fQotCi0uc2xpY2stcm93LmNvbXBsZXRlIHsKLSAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLXN1 Y2Nlc3MtbGlnaHQ7Ci0gIGNvbG9yOiAgJGNvbG9yLWdyYXktZGFyazsKLX0KLQotLmNlbGwtc2Vs ZWN0aW9uIHsKLSAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAkYm9yZGVyLWNvbG9yOwotICBib3JkZXIt cmlnaHQtc3R5bGU6IHNvbGlkOwotICBiYWNrZ3JvdW5kOiAkY29sb3ItZ3JheS1saWdodGVyOwot ICBjb2xvcjogICRjb2xvci1ncmF5OwotICB0ZXh0LWFsaWduOiByaWdodDsKLSAgZm9udC1zaXpl OiAxMHB4OwotfQotCi0jZGF0YWdyaWQgLnNsaWNrLWhlYWRlciAuc2xpY2staGVhZGVyLWNvbHVt bnMgewotICBiYWNrZ3JvdW5kOiAkc3FsLWdyaWQtdGl0bGUtY2VsbC1iZzsKLSAgY29sb3I6ICRz cWwtZ3JpZC10aXRsZS1jZWxsLWZnOwotICBoZWlnaHQ6IDQwcHg7Ci0gIGJvcmRlci1ib3R0b206 ICRwYW5lbC1ib3JkZXI7Ci19Ci0KLSNkYXRhZ3JpZCAuc2xpY2staGVhZGVyIC5zbGljay1oZWFk ZXItY29sdW1uLnVpLXN0YXRlLWRlZmF1bHQgewotICBwYWRkaW5nOiA0cHggMCAzcHggNnB4Owot ICBib3JkZXItYm90dG9tOiAkcGFuZWwtYm9yZGVyOwotICBib3JkZXItcmlnaHQ6ICRwYW5lbC1i b3JkZXI7Ci19Ci0KLS5zbGljay1yb3c6aG92ZXIgLnNsaWNrLWNlbGx7Ci0gIGJvcmRlci10b3A6 ICR0YWJsZS1ob3Zlci1ib3JkZXI7Ci0gIGJvcmRlci1ib3R0b206ICR0YWJsZS1ob3Zlci1ib3Jk ZXI7Ci0gIGJhY2tncm91bmQtY29sb3I6ICR0YWJsZS1ob3Zlci1iZy1jb2xvcjsKLX0KLQotI2Rh dGFncmlkIC5zbGljay1oZWFkZXIgLnNsaWNrLWhlYWRlci1jb2x1bW4uc2VsZWN0ZWQgewotICBi YWNrZ3JvdW5kLWNvbG9yOiAkY29sb3ItcHJpbWFyeTsKLX0KLS5zbGljay1yb3cgLnNsaWNrLWNl bGwgewotICBib3JkZXItYm90dG9tOiAkcGFuZWwtYm9yZGVyOwotICBib3JkZXItcmlnaHQ6ICRw YW5lbC1ib3JkZXI7Ci0gIHotaW5kZXg6IDA7Ci19Ci0KLSNkYXRhZ3JpZCB7Ci0gIGJhY2tncm91 bmQ6IG5vbmU7Ci0gIGJhY2tncm91bmQtY29sb3I6ICRkYXRhZ3JpZC1iZzsKLX0KLQotLnVpLXdp ZGdldC1jb250ZW50LnNsaWNrLXJvdyB7Ci0gICYuZXZlbiwgICYub2RkIHsKLSAgICBiYWNrZ3Jv dW5kOiBub25lOwotICAgIGJhY2tncm91bmQtY29sb3I6ICR0YWJsZS1iZzsKLSAgfQotfQotCi0v KiBSZW1vdmUgYWN0aXZlIGNlbGwgYm9yZGVyICovCi0uc2xpY2stY2VsbC5hY3RpdmUgewotICBi b3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDsKLSAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQg JGNvbG9yLWdyYXktbGlnaHQ7Ci0gIGJvcmRlci1ib3R0b20tY29sb3I6ICRjb2xvci1ncmF5LWxp Z2h0OwotfQotCi0vKiBUbyBoaWdobGlnaHQgYWxsIG5ld2x5IGluc2VydGVkIHJvd3MgKi8KLS5n cmlkLWNhbnZhcyAubmV3X3JvdyB7Ci0gIGJhY2tncm91bmQ6ICRjb2xvci1zdWNjZXNzLWxpZ2h0 ICFpbXBvcnRhbnQ7Ci19Ci0KLS8qIFRvIGhpZ2hsaWdodCBhbGwgdGhlIHVwZGF0ZWQgcm93cyAq LwotLmdyaWQtY2FudmFzIC51cGRhdGVkX3JvdyB7Ci0gIGJhY2tncm91bmQ6ICRjb2xvci1ncmF5 LWxpZ2h0ZXI7Ci19Ci0KLS8qIFRvIGhpZ2hsaWdodCByb3cgYXQgZmF1bHQgKi8KLS5ncmlkLWNh bnZhcyAubmV3X3Jvdy5lcnJvciwgLmdyaWQtY2FudmFzIC51cGRhdGVkX3Jvdy5lcnJvciB7Ci0g IGJhY2tncm91bmQ6ICRjb2xvci1kYW5nZXItbGlnaHQgIWltcG9ydGFudDsKLX0KLQotLyogRGlz YWJsZWQgcm93ICovCi0uZ3JpZC1jYW52YXMgLmRpc2FibGVkX3JvdyB7Ci0gIGJhY2tncm91bmQ6 ICRjb2xvci1ncmF5LWxpZ2h0ZXI7Ci19Ci0KLS8qIERpc2FibGVkIGNlbGwgKi8KLS5ncmlkLWNh bnZhcyAuZGlzYWJsZWRfY2VsbCB7Ci0gIGNvbG9yOiAkdGV4dC1tdXRlZDsKLX0KLQotLyogSGln aGxpZ2h0ZWQgKG1vZGlmaWVkIG9yIG5ldykgY2VsbCAqLwotLmdyaWQtY2FudmFzIC5oaWdobGln aHRlZF9ncmlkX2NlbGxzIHsKLSAgYmFja2dyb3VuZDogJGNvbG9yLWdyYXktbGlnaHRlcjsKLSAg Zm9udC13ZWlnaHQ6IGJvbGQ7Ci19Ci0KLQotLyogT3ZlcnJpZGUgc2VsZWN0ZWQgcm93IGNvbG9y ICovCi0jZGF0YWdyaWQgLnNsaWNrLXJvdyAuc2xpY2stY2VsbC5zZWxlY3RlZCB7Ci0gICAgYmFj a2dyb3VuZC1jb2xvcjogJHRhYmxlLWJnLXNlbGVjdGVkOwotICAgIGNvbG9yOiAkZGF0YWdyaWQt c2VsZWN0ZWQtY29sb3I7Ci19Ci0KLS8qIGNvbG9yIHRoZSBmaXJzdCBjb2x1bW4gKi8KLQotI2Rh dGFncmlkIC5zbGljay1yb3cgewotICAgIC5zbGljay1jZWxsIHsKLSAgICAgICAgYmFja2dyb3Vu ZC1jb2xvcjogJHNxbC1ncmlkLWRhdGEtY2VsbC1iZzsKLSAgICAgICAgY29sb3I6ICRzcWwtZ3Jp ZC1kYXRhLWNlbGwtZmc7Ci0gICAgfQotCi0gICAgLnNsaWNrLWNlbGwubDAucjAgewotICAgICAg ICBiYWNrZ3JvdW5kLWNvbG9yOiAkc3FsLWdyaWQtdGl0bGUtY2VsbC1iZzsKLSAgICAgICAgY29s b3I6ICRzcWwtZ3JpZC10aXRsZS1jZWxsLWZnOwotICAgIH0KLX0KLQotI2RhdGFncmlkIGRpdi5z bGljay1oZWFkZXIudWktc3RhdGUtZGVmYXVsdCB7Ci0gIGJhY2tncm91bmQtY29sb3I6ICRzcWwt Z3JpZC10aXRsZS1jZWxsLWJnOwotICBjb2xvcjogJHNxbC1ncmlkLXRpdGxlLWNlbGwtZmc7Ci0g IGJvcmRlci1ib3R0b206IG5vbmU7Ci0gIGJvcmRlci1yaWdodDogbm9uZTsKLSAgYm9yZGVyLXRv cDogbm9uZTsKLX0KLQotI2RhdGFncmlkIC5zbGljay1yb3cgLnNsaWNrLWNlbGwubDAucjAuc2Vs ZWN0ZWQgewotICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3ItcHJpbWFyeTsKLSAgY29sb3I6ICRj b2xvci1wcmltYXJ5LWZnOwotfQotCi0jZGF0YWdyaWQgLnNsaWNrLXJvdyA+IC5zbGljay1jZWxs Om5vdCgubDApOm5vdCgucjApLnNlbGVjdGVkIHsKLSAgYmFja2dyb3VuZC1jb2xvcjogJHRhYmxl LWhvdmVyLWJnLWNvbG9yOwotICBib3JkZXItdG9wOiAkdGFibGUtaG92ZXItYm9yZGVyOwotICBi b3JkZXItYm90dG9tOiAkdGFibGUtaG92ZXItYm9yZGVyOwotfQotCi0ucGctdGV4dC1lZGl0b3Ig ewotICB6LWluZGV4OjEwMDAwOwotICBwb3NpdGlvbjphYnNvbHV0ZTsKLSAgYmFja2dyb3VuZDog JGNvbG9yLWJnOwotICBwYWRkaW5nOiAwLjI1cmVtOwotICBib3JkZXI6ICRwYW5lbC1ib3JkZXI7 Ci0gIGJveC1zaGFkb3c6ICRkcm9wZG93bi1ib3gtc2hhZG93OwotCi0KLSAgJiAucGctdGV4dGFy ZWEgewotICAgIHdpZHRoOjI1MHB4OwotICAgIGhlaWdodDo4MHB4OwotICAgIGJvcmRlcjowOwot ICAgIG91dGxpbmU6MDsKLSAgICByZXNpemU6IGJvdGg7Ci0gIH0KLQotICAmIC5wZy10ZXh0LWlu dmFsaWQgewotICAgIGJhY2tncm91bmQ6ICRjb2xvci1kYW5nZXItbGlnaHRlcjsKLSAgfQotCi0g ICYgI3BnLWpzb24tZWRpdG9yIHsKLSAgICBtaW4td2lkdGg6NTI1cHg7Ci0gICAgbWluLWhlaWdo dDozMDBweDsKLSAgICBoZWlnaHQ6Mjk1cHg7Ci0gICAgd2lkdGg6NTUwcHg7Ci0gICAgYm9yZGVy OiAkcGFuZWwtYm9yZGVyOwotICAgIG91dGxpbmU6MDsKLSAgICByZXNpemU6IGJvdGg7Ci0gICAg b3ZlcmZsb3c6YXV0bwotICB9Ci19Ci0KLS5wZ19idXR0b25zIHsKLSAgcGFkZGluZy10b3A6IDNw eDsKLX0KLS5zcWwtZWRpdG9yLW1lc3NhZ2UgewotICB3aGl0ZS1zcGFjZTpwcmUtd3JhcDsKLSAg Zm9udC1mYW1pbHk6ICRmb250LWZhbWlseS1lZGl0b3I7Ci0gIHBhZGRpbmctdG9wOiA1cHg7Ci0g IHBhZGRpbmctbGVmdDogMTBweDsKLSAgb3ZlcmZsb3c6IGF1dG87Ci0gIGhlaWdodDogMTAwJTsK LSAgZm9udC1zaXplOiAwLjkyNWVtOwotICAtd2Via2l0LXVzZXItc2VsZWN0OiB0ZXh0OwotICAt bW96LXVzZXItc2VsZWN0OiB0ZXh0OwotICAtbXMtdXNlci1zZWxlY3Q6IHRleHQ7Ci0gIHVzZXIt c2VsZWN0OiB0ZXh0OwotfQotCi0udmlldy1nZW9tZXRyeS1wcm9wZXJ0eS10YWJsZSAudGQtZGlz YWJsZWR7Ci0gIGNvbG9yOiAkY29sb3ItZ3JheS1saWdodGVyOwotfQotCi0vKiBGb3IgbGVhZmxl dCBtYXAgYmFja2dyb3VuZCAqLwotLmdlb21ldHJ5LXZpZXdlci1jb250YWluZXItcGxhaW4tYmFj a2dyb3VuZCB7Ci0gIGJhY2tncm91bmQ6ICRjb2xvci1iZzsKLX0KLQotCi1kaXYuc3RyaWtlb3V0 OmJlZm9yZSB7Ci0gIGNvbnRlbnQ6ICIgIjsKLSAgcG9zaXRpb246IGFic29sdXRlOwotICB0b3A6 IDUwJTsKLSAgbGVmdDogMDsKLSAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRjb2xvci1kYW5nZXI7 Ci0gIHdpZHRoOiAxMDAlOwotICBmb250LXdlaWdodDogOTAwOwotfQotCi1kaXYuc3RyaWtlb3V0 OmFmdGVyIHsKLSAgY29udGVudDogIlwwMEI3IjsKLSAgZm9udC1zaXplOiAxcHg7Ci0gIGZvbnQt d2VpZ2h0OiA5MDA7Ci19Ci0KLS5zcWwtc2NyYXRjaCB7Ci0gIHdpZHRoOiAxMDAlOwotICBoZWln aHQ6IDEwMCU7Ci0gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7Ci0gIG92ZXJmbG93LXk6IGhpZGRl bjsKLQotICB0ZXh0YXJlYSB7Ci0gICAgd2lkdGg6IDEwMCU7Ci0gICAgaGVpZ2h0OiAxMDAlOwot ICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7Ci0gICAgYm9yZGVyOiBub25lOwotICAgIHJlc2l6 ZTogbm9uZTsKLSAgfQotfQotCi0uY29ubmVjdGlvbl9zdGF0dXMgLm9idGFpbmluZy1jb25uIHsK LSAgYmFja2dyb3VuZC1pbWFnZTogJGxvYWRlci1pY29uLXNtYWxsICFpbXBvcnRhbnQ7Ci0gIGJh Y2tncm91bmQtcG9zaXRpb246IGNlbnRlciBjZW50ZXI7Ci0gIGJhY2tncm91bmQtcmVwZWF0OiBu by1yZXBlYXQ7Ci0gICY6YmVmb3JlIHsKLSAgICBjb250ZW50OicnOwotICB9Ci0gIG1pbi13aWR0 aDogNTAlOwotICBtaW4taGVpZ2h0OiAxMDAlOwotfQotCi0uc3FsLWVkaXRvci1ncmlkLWNvbnRh aW5lciB7Ci0gIGhlaWdodDogMTAwJTsKLSAgb3ZlcmZsb3c6IGF1dG87Ci0KLSAgLnVpLXdpZGdl dC1jb250ZW50IHsKLSAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaW5wdXQtYmc7Ci0gICAgY29sb3I6 ICRpbnB1dC1jb2xvcjsKLSAgfQotCi0gIC51aS1zdGF0ZS1kZWZhdWx0IHsKLSAgICBjb2xvcjog JGNvbG9yLWZnOwotICB9Ci19Ci0KLS5zcWwtZWRpdG9yLWdyaWQtY29udGFpbmVyLmhhcy1uby1m b290ZXIgewotICBoZWlnaHQ6IDEwMCU7Ci19Ci0KLS5zZWxlY3RlZC1jb25uZWN0aW9uIHsKLSAg YmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLXByaW1hcnktbGlnaHQ7Ci19Ci0KLS8qIFNldHRpbmcg aXQgdG8gaGFyZGNvZGVkIHdoaXRlIGFzIHRoZSBTVkcgZ2VuZXJhdGVkIGlzIGhhdmluZyB3aGl0 ZSBiZwotICogTmVlZCB0byBjaGVjayB3aGF0IGNhbiBiZSBkb25lLgotICovCi0KLS8qIENzcyBm b3IgcHNxbCAqLwotLnBzcWxfdGVybWluYWwgLnRlcm1pbmFsIHsKLSAgcGFkZGluZy10b3A6IDEl OwotICBwYWRkaW5nLWxlZnQ6IDAuNSU7Ci0gIGhlaWdodDogMTAwJTsKLX0KLQotLnBzcWwtaWNv bi1zdHlsZSB7Ci0gIGZvbnQtc2l6ZTogaW5oZXJpdDsKLSAgcGFkZGluZy1sZWZ0OiAwZW07Ci19 Ci0KLS5wc3FsLXRhYi1zdHlsZSB7Ci0gIGZvbnQtc2l6ZTogc21hbGw7Ci0gIHBhZGRpbmctbGVm dDogMGVtOwotfQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vdG9vbHMvZGF0YWdyaWQvdGVtcGxh dGVzL2RhdGFncmlkL2ZpbHRlci5odG1sIGIvd2ViL3BnYWRtaW4vdG9vbHMvc3FsZWRpdG9yL3Rl bXBsYXRlcy9zcWxlZGl0b3IvZmlsdGVyLmh0bWwKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFt ZSBmcm9tIHdlYi9wZ2FkbWluL3Rvb2xzL2RhdGFncmlkL3RlbXBsYXRlcy9kYXRhZ3JpZC9maWx0 ZXIuaHRtbApyZW5hbWUgdG8gd2ViL3BnYWRtaW4vdG9vbHMvc3FsZWRpdG9yL3RlbXBsYXRlcy9z cWxlZGl0b3IvZmlsdGVyLmh0bWwKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL3Rvb2xzL3NxbGVk aXRvci90ZW1wbGF0ZXMvc3FsZWRpdG9yL2luZGV4Lmh0bWwgYi93ZWIvcGdhZG1pbi90b29scy9z cWxlZGl0b3IvdGVtcGxhdGVzL3NxbGVkaXRvci9pbmRleC5odG1sCm5ldyBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDAwMDAwMDAwMC4uYmNiNmEwNGVhCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3Bn YWRtaW4vdG9vbHMvc3FsZWRpdG9yL3RlbXBsYXRlcy9zcWxlZGl0b3IvaW5kZXguaHRtbApAQCAt MCwwICsxLDcwIEBACit7JSBleHRlbmRzICJiYXNlLmh0bWwiICV9Cit7JSBibG9jayB0aXRsZSAl fXt7dGl0bGV9fXslIGVuZGJsb2NrICV9CisKK3slIGJsb2NrIGNzc19saW5rICV9Cis8bGluayB0 eXBlPSJ0ZXh0L2NzcyIgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJ7eyB1cmxfZm9yKCdicm93c2Vy LmJyb3dzZXJfY3NzJyl9fSIvPgoreyUgZW5kYmxvY2sgJX0KK3slIGJsb2NrIGJvZHkgJX0KKzxz dHlsZT4KKyAgICBib2R5IHtwYWRkaW5nOiAwcHg7fQorICAgICNzcWxlZGl0b3ItY29udGFpbmVy IHsKKyAgICAgICAgZGlzcGxheTogZmxleDsKKyAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVt bjsKKyAgICAgICAgaGVpZ2h0OiAxMDAlOworICAgIH0KKyAgICAjc3FsZWRpdG9yLWNvbnRhaW5l cjpub3QoOmVtcHR5KSArIC5wZy1zcC1jb250YWluZXIgeworICAgICAgICBkaXNwbGF5OiBub25l OworICAgIH0KKyAgICB7JSBpZiBpc19kZXNrdG9wX21vZGUgYW5kIGlzX2xpbnV4ICV9CisgICAg LmFsZXJ0aWZ5IC5hanMtZGltbWVyLC5hbGVydGlmeSAuYWpzLW1vZGFsey13ZWJraXQtdHJhbnNm b3JtOiBub25lO30KKyAgICAuYWxlcnRpZnktbm90aWZpZXJ7LXdlYmtpdC10cmFuc2Zvcm06IG5v bmU7fQorICAgIC5hbGVydGlmeS1ub3RpZmllciAuYWpzLW1lc3NhZ2V7LXdlYmtpdC10cmFuc2Zv cm06IG5vbmU7fQorICAgIC5hbGVydGlmeSAuYWpzLWRpYWxvZy5hanMtc2hha2V7LXdlYmtpdC1h bmltYXRpb24tbmFtZTogbm9uZTt9CisgICAgLnNxbC1lZGl0b3ItYnVzeS1pY29uLmZhLXB1bHNl ey13ZWJraXQtYW5pbWF0aW9uOiBub25lO30KKyAgICB7JSBlbmRpZiAlfQorPC9zdHlsZT4KKzxk aXYgaWQ9InNxbGVkaXRvci1jb250YWluZXIiPgorPGRpdiBjbGFzcz0icGctc3AtY29udGFpbmVy Ij4KKyAgICA8ZGl2IGNsYXNzPSJwZy1zcC1jb250ZW50Ij4KKyAgICAgICAgPGRpdiBjbGFzcz0i cm93Ij4KKyAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC0xMiBwZy1zcC1pY29uIj48L2Rpdj4K KyAgICAgICAgPC9kaXY+CisgICAgPC9kaXY+Cis8L2Rpdj4KKzwvZGl2PgoreyUgZW5kYmxvY2sg JX0KK3slIGJsb2NrIGluaXRfc2NyaXB0ICV9CisgICAgdHJ5IHsKKyAgICAgICAgcmVxdWlyZSgK KyAgICAgICAgICAgIFsnc291cmNlcy9nZW5lcmF0ZWQvYnJvd3Nlcl9ub2RlcycsICdzb3VyY2Vz L2dlbmVyYXRlZC9jb2RlbWlycm9yJ10sCisgICAgICAgICAgICBmdW5jdGlvbigpIHsKKyAgICAg ICAgICAgICAgICByZXF1aXJlKFsnc291cmNlcy9nZW5lcmF0ZWQvc3FsZWRpdG9yJ10sIGZ1bmN0 aW9uKG1vZHVsZSkgeworICAgICAgICAgICAgICAgIHdpbmRvdy5wZ0FkbWluLlRvb2xzLlNRTEVk aXRvci5sb2FkQ29tcG9uZW50KAorICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVt ZW50QnlJZCgnc3FsZWRpdG9yLWNvbnRhaW5lcicpLCB7eyBwYXJhbXN8c2FmZSB9fSk7CisKKyAg ICAgICAgICAgICAgICBpZih3aW5kb3cub3BlbmVyKSB7CisgICAgICAgICAgICAgICAgICAgICQo d2luZG93KS5vbigndW5sb2FkJywgZnVuY3Rpb24oZXYpIHsKKyAgICAgICAgICAgICAgICAgICAg ICAgICQuYWpheCh7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWV0aG9kOiAnREVMRVRF JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmw6ICd7e2Nsb3NlX3VybH19JworICAg ICAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAg ICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICQod2luZG93KS5vbignYmVm b3JldW5sb2FkJywgZnVuY3Rpb24oZXYpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICQuYWph eCh7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWV0aG9kOiAnREVMRVRFJywKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICB1cmw6ICd7e2Nsb3NlX3VybH19JworICAgICAgICAgICAg ICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAg IH0KKyAgICAgICAgICAgIH0sIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIGNvbnNvbGUu bG9nKGFyZ3VtZW50cyk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSwKKyAgICAgICAgZnVu Y3Rpb24oKSB7CisgICAgICAgICAgICBjb25zb2xlLmxvZyhhcmd1bWVudHMpOworICAgICAgICB9 KTsKKyAgICB9IGNhdGNoIChlcnIpIHsKKyAgICAgICAgY29uc29sZS5sb2coZXJyKTsKKyAgICB9 Cit7JSBlbmRibG9jayAlfQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vdG9vbHMvc3FsZWRpdG9y L3Rlc3RzL3Rlc3RfZG93bmxvYWRfY3N2X3F1ZXJ5X3Rvb2wucHkgYi93ZWIvcGdhZG1pbi90b29s cy9zcWxlZGl0b3IvdGVzdHMvdGVzdF9kb3dubG9hZF9jc3ZfcXVlcnlfdG9vbC5weQppbmRleCBm NjA5MTkzY2UuLmJhZThmYjdlMiAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vdG9vbHMvc3FsZWRp dG9yL3Rlc3RzL3Rlc3RfZG93bmxvYWRfY3N2X3F1ZXJ5X3Rvb2wucHkKKysrIGIvd2ViL3BnYWRt aW4vdG9vbHMvc3FsZWRpdG9yL3Rlc3RzL3Rlc3RfZG93bmxvYWRfY3N2X3F1ZXJ5X3Rvb2wucHkK QEAgLTI3LDcgKzI3LDcgQEAgY2xhc3MgVGVzdERvd25sb2FkQ1NWKEJhc2VUZXN0R2VuZXJhdG9y KToKICAgICAgICAgICAgICdEb3dubG9hZCBjc3YgVVJMIHdpdGggdmFsaWQgcXVlcnknLAogICAg ICAgICAgICAgZGljdCgKICAgICAgICAgICAgICAgICBzcWw9J1NFTEVDVCAxIGFzICJBIiwyIGFz ICJCIiwzIGFzICJDIicsCi0gICAgICAgICAgICAgICAgaW5pdF91cmw9Jy9kYXRhZ3JpZC9pbml0 aWFsaXplL3F1ZXJ5X3Rvb2wvezB9L3sxfS97Mn0vezN9JywKKyAgICAgICAgICAgICAgICBpbml0 X3VybD0nL3NxbGVkaXRvci9pbml0aWFsaXplL3NxbGVkaXRvci97MH0vezF9L3syfS97M30nLAog ICAgICAgICAgICAgICAgIGRvbndsb2FkX3VybD0iL3NxbGVkaXRvci9xdWVyeV90b29sL2Rvd25s b2FkL3swfSIsCiAgICAgICAgICAgICAgICAgb3V0cHV0X2NvbHVtbnM9JyJBIiwiQiIsIkMiJywK ICAgICAgICAgICAgICAgICBvdXRwdXRfdmFsdWVzPScxLDIsMycsCkBAIC00MSw3ICs0MSw3IEBA IGNsYXNzIFRlc3REb3dubG9hZENTVihCYXNlVGVzdEdlbmVyYXRvcik6CiAgICAgICAgICAgICAn RG93bmxvYWQgY3N2IFVSTCB3aXRoIHdyb25nIFRYIGlkJywKICAgICAgICAgICAgIGRpY3QoCiAg ICAgICAgICAgICAgICAgc3FsPSdTRUxFQ1QgMSBhcyAiQSIsMiBhcyAiQiIsMyBhcyAiQyInLAot ICAgICAgICAgICAgICAgIGluaXRfdXJsPScvZGF0YWdyaWQvaW5pdGlhbGl6ZS9xdWVyeV90b29s L3swfS97MX0vezJ9L3szfScsCisgICAgICAgICAgICAgICAgaW5pdF91cmw9Jy9zcWxlZGl0b3Iv aW5pdGlhbGl6ZS9zcWxlZGl0b3IvezB9L3sxfS97Mn0vezN9JywKICAgICAgICAgICAgICAgICBk b253bG9hZF91cmw9Ii9zcWxlZGl0b3IvcXVlcnlfdG9vbC9kb3dubG9hZC97MH0iLAogICAgICAg ICAgICAgICAgIG91dHB1dF9jb2x1bW5zPU5vbmUsCiAgICAgICAgICAgICAgICAgb3V0cHV0X3Zh bHVlcz1Ob25lLApAQCAtNTUsNyArNTUsNyBAQCBjbGFzcyBUZXN0RG93bmxvYWRDU1YoQmFzZVRl c3RHZW5lcmF0b3IpOgogICAgICAgICAgICAgJ0Rvd25sb2FkIGNzdiBVUkwgd2l0aCB3cm9uZyBx dWVyeScsCiAgICAgICAgICAgICBkaWN0KAogICAgICAgICAgICAgICAgIHNxbD0nU0VMRUNUICog RlJPTSB0aGlzX3RhYmxlX2RvZXNfbm90X2V4aXN0JywKLSAgICAgICAgICAgICAgICBpbml0X3Vy bD0nL2RhdGFncmlkL2luaXRpYWxpemUvcXVlcnlfdG9vbC97MH0vezF9L3syfS97M30nLAorICAg ICAgICAgICAgICAgIGluaXRfdXJsPScvc3FsZWRpdG9yL2luaXRpYWxpemUvc3FsZWRpdG9yL3sw fS97MX0vezJ9L3szfScsCiAgICAgICAgICAgICAgICAgZG9ud2xvYWRfdXJsPSIvc3FsZWRpdG9y L3F1ZXJ5X3Rvb2wvZG93bmxvYWQvezB9IiwKICAgICAgICAgICAgICAgICBvdXRwdXRfY29sdW1u cz1Ob25lLAogICAgICAgICAgICAgICAgIG91dHB1dF92YWx1ZXM9Tm9uZSwKQEAgLTY5LDcgKzY5 LDcgQEAgY2xhc3MgVGVzdERvd25sb2FkQ1NWKEJhc2VUZXN0R2VuZXJhdG9yKToKICAgICAgICAg ICAgICdEb3dubG9hZCBhcyB0eHQgd2l0aG91dCBmaWxlbmFtZSBwYXJhbWV0ZXInLAogICAgICAg ICAgICAgZGljdCgKICAgICAgICAgICAgICAgICBzcWw9J1NFTEVDVCAxIGFzICJBIiwyIGFzICJC IiwzIGFzICJDIicsCi0gICAgICAgICAgICAgICAgaW5pdF91cmw9Jy9kYXRhZ3JpZC9pbml0aWFs aXplL3F1ZXJ5X3Rvb2wvezB9L3sxfS97Mn0vezN9JywKKyAgICAgICAgICAgICAgICBpbml0X3Vy bD0nL3NxbGVkaXRvci9pbml0aWFsaXplL3NxbGVkaXRvci97MH0vezF9L3syfS97M30nLAogICAg ICAgICAgICAgICAgIGRvbndsb2FkX3VybD0iL3NxbGVkaXRvci9xdWVyeV90b29sL2Rvd25sb2Fk L3swfSIsCiAgICAgICAgICAgICAgICAgb3V0cHV0X2NvbHVtbnM9JyJBIjsiQiI7IkMiJywKICAg ICAgICAgICAgICAgICBvdXRwdXRfdmFsdWVzPScxOzI7MycsCkBAIC04Myw3ICs4Myw3IEBAIGNs YXNzIFRlc3REb3dubG9hZENTVihCYXNlVGVzdEdlbmVyYXRvcik6CiAgICAgICAgICAgICAnRG93 bmxvYWQgYXMgY3N2IHdpdGhvdXQgZmlsZW5hbWUgcGFyYW1ldGVyJywKICAgICAgICAgICAgIGRp Y3QoCiAgICAgICAgICAgICAgICAgc3FsPSdTRUxFQ1QgMSBhcyAiQSIsMiBhcyAiQiIsMyBhcyAi QyInLAotICAgICAgICAgICAgICAgIGluaXRfdXJsPScvZGF0YWdyaWQvaW5pdGlhbGl6ZS9xdWVy eV90b29sL3swfS97MX0vezJ9L3szfScsCisgICAgICAgICAgICAgICAgaW5pdF91cmw9Jy9zcWxl ZGl0b3IvaW5pdGlhbGl6ZS9zcWxlZGl0b3IvezB9L3sxfS97Mn0vezN9JywKICAgICAgICAgICAg ICAgICBkb253bG9hZF91cmw9Ii9zcWxlZGl0b3IvcXVlcnlfdG9vbC9kb3dubG9hZC97MH0iLAog ICAgICAgICAgICAgICAgIG91dHB1dF9jb2x1bW5zPSciQSIsIkIiLCJDIicsCiAgICAgICAgICAg ICAgICAgb3V0cHV0X3ZhbHVlcz0nMSwyLDMnLApAQCAtMjExLDcgKzIxMSw3IEBAIGNsYXNzIFRl c3REb3dubG9hZENTVihCYXNlVGVzdEdlbmVyYXRvcik6CiAgICAgICAgICAgICAgICAgc2VsZi5h c3NlcnRFcXVhbChyZXNwb25zZS5zdGF0dXNfY29kZSwgNTAwKQogCiAgICAgICAgICMgQ2xvc2Ug cXVlcnkgdG9vbAotICAgICAgICB1cmwgPSAnL2RhdGFncmlkL2Nsb3NlL3swfScuZm9ybWF0KHNl bGYudHJhbnNfaWQpCisgICAgICAgIHVybCA9ICcvc3FsZWRpdG9yL2Nsb3NlL3swfScuZm9ybWF0 KHNlbGYudHJhbnNfaWQpCiAgICAgICAgIHJlc3BvbnNlID0gc2VsZi50ZXN0ZXIuZGVsZXRlKHVy bCkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXNwb25zZS5zdGF0dXNfY29kZSwgMjAwKQog CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi90b29scy9zcWxlZGl0b3IvdGVzdHMvdGVzdF9lZGl0 b3JfaGlzdG9yeS5weSBiL3dlYi9wZ2FkbWluL3Rvb2xzL3NxbGVkaXRvci90ZXN0cy90ZXN0X2Vk aXRvcl9oaXN0b3J5LnB5CmluZGV4IDg2YjVkOTM1Yi4uYzdkY2JkYWQwIDEwMDY0NAotLS0gYS93 ZWIvcGdhZG1pbi90b29scy9zcWxlZGl0b3IvdGVzdHMvdGVzdF9lZGl0b3JfaGlzdG9yeS5weQor KysgYi93ZWIvcGdhZG1pbi90b29scy9zcWxlZGl0b3IvdGVzdHMvdGVzdF9lZGl0b3JfaGlzdG9y eS5weQpAQCAtNzAsNyArNzAsNyBAQCBjbGFzcyBUZXN0RWRpdG9ySGlzdG9yeShCYXNlVGVzdEdl bmVyYXRvcik6CiAKICAgICAgICAgIyBJbml0aWFsaXplIHF1ZXJ5IHRvb2wKICAgICAgICAgc2Vs Zi50cmFuc19pZCA9IHN0cihyYW5kb20ucmFuZGludCgxLCA5OTk5OTk5KSkKLSAgICAgICAgdXJs ID0gJy9kYXRhZ3JpZC9pbml0aWFsaXplL3F1ZXJ5X3Rvb2wvezB9L3sxfS97Mn0vezN9Jy5mb3Jt YXQoCisgICAgICAgIHVybCA9ICcvc3FsZWRpdG9yL2luaXRpYWxpemUvc3FsZWRpdG9yL3swfS97 MX0vezJ9L3szfScuZm9ybWF0KAogICAgICAgICAgICAgc2VsZi50cmFuc19pZCwgdXRpbHMuU0VS VkVSX0dST1VQLCBzZWxmLnNlcnZlcl9pZCwgc2VsZi5kYl9pZCkKICAgICAgICAgcmVzcG9uc2Ug PSBzZWxmLnRlc3Rlci5wb3N0KHVybCkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXNwb25z ZS5zdGF0dXNfY29kZSwgMjAwKQpAQCAtMTAxLDcgKzEwMSw3IEBAIGNsYXNzIFRlc3RFZGl0b3JI aXN0b3J5KEJhc2VUZXN0R2VuZXJhdG9yKToKIAogICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAg ICAgICAgIyBDbG9zZSBxdWVyeSB0b29sCi0gICAgICAgIHVybCA9ICcvZGF0YWdyaWQvY2xvc2Uv ezB9Jy5mb3JtYXQoc2VsZi50cmFuc19pZCkKKyAgICAgICAgdXJsID0gJy9zcWxlZGl0b3IvY2xv c2UvezB9Jy5mb3JtYXQoc2VsZi50cmFuc19pZCkKICAgICAgICAgcmVzcG9uc2UgPSBzZWxmLnRl c3Rlci5kZWxldGUodXJsKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJlc3BvbnNlLnN0YXR1 c19jb2RlLCAyMDApCiAKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL3Rvb2xzL3NxbGVkaXRvci90 ZXN0cy90ZXN0X2VuY29kaW5nX2NoYXJzZXQucHkgYi93ZWIvcGdhZG1pbi90b29scy9zcWxlZGl0 b3IvdGVzdHMvdGVzdF9lbmNvZGluZ19jaGFyc2V0LnB5CmluZGV4IDk5ZWMzMmE0OS4uNjUzZGRh YzEwIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi90b29scy9zcWxlZGl0b3IvdGVzdHMvdGVzdF9l bmNvZGluZ19jaGFyc2V0LnB5CisrKyBiL3dlYi9wZ2FkbWluL3Rvb2xzL3NxbGVkaXRvci90ZXN0 cy90ZXN0X2VuY29kaW5nX2NoYXJzZXQucHkKQEAgLTI2Miw3ICsyNjIsNyBAQCBjbGFzcyBUZXN0 RW5jb2RpbmdDaGFyc2V0KEJhc2VUZXN0R2VuZXJhdG9yKToKIAogICAgICAgICAjIEluaXRpYWxp emUgcXVlcnkgdG9vbAogICAgICAgICBzZWxmLnRyYW5zX2lkID0gc3RyKHJhbmRvbS5yYW5kaW50 KDEsIDk5OTk5OTkpKQotICAgICAgICB1cmwgPSAnL2RhdGFncmlkL2luaXRpYWxpemUvcXVlcnlf dG9vbC97MH0vezF9L3syfS97M30nXAorICAgICAgICB1cmwgPSAnL3NxbGVkaXRvci9pbml0aWFs aXplL3NxbGVkaXRvci97MH0vezF9L3syfS97M30nXAogICAgICAgICAgICAgLmZvcm1hdChzZWxm LnRyYW5zX2lkLCB0ZXN0X3V0aWxzLlNFUlZFUl9HUk9VUCwgc2VsZi5lbmNvZGVfc2lkLAogICAg ICAgICAgICAgICAgICAgICBzZWxmLmVuY29kZV9kaWQpCiAgICAgICAgIHJlc3BvbnNlID0gc2Vs Zi50ZXN0ZXIucG9zdCh1cmwpCkBAIC0yODMsNyArMjgzLDcgQEAgY2xhc3MgVGVzdEVuY29kaW5n Q2hhcnNldChCYXNlVGVzdEdlbmVyYXRvcik6CiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVz dWx0LCBzZWxmLnRlc3Rfc3RyKQogCiAgICAgICAgICMgQ2xvc2UgcXVlcnkgdG9vbAotICAgICAg ICB1cmwgPSAnL2RhdGFncmlkL2Nsb3NlL3swfScuZm9ybWF0KHNlbGYudHJhbnNfaWQpCisgICAg ICAgIHVybCA9ICcvc3FsZWRpdG9yL2Nsb3NlL3swfScuZm9ybWF0KHNlbGYudHJhbnNfaWQpCiAg ICAgICAgIHJlc3BvbnNlID0gc2VsZi50ZXN0ZXIuZGVsZXRlKHVybCkKICAgICAgICAgc2VsZi5h c3NlcnRFcXVhbChyZXNwb25zZS5zdGF0dXNfY29kZSwgMjAwKQogCmRpZmYgLS1naXQgYS93ZWIv cGdhZG1pbi90b29scy9zcWxlZGl0b3IvdGVzdHMvdGVzdF9leHBsYWluX3BsYW4ucHkgYi93ZWIv cGdhZG1pbi90b29scy9zcWxlZGl0b3IvdGVzdHMvdGVzdF9leHBsYWluX3BsYW4ucHkKaW5kZXgg NzM0MTI1Mzk5Li5lMmJmYzI1OWEgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL3Rvb2xzL3NxbGVk aXRvci90ZXN0cy90ZXN0X2V4cGxhaW5fcGxhbi5weQorKysgYi93ZWIvcGdhZG1pbi90b29scy9z cWxlZGl0b3IvdGVzdHMvdGVzdF9leHBsYWluX3BsYW4ucHkKQEAgLTM0LDcgKzM0LDcgQEAgY2xh c3MgVGVzdEV4cGxhaW5QbGFuKEJhc2VUZXN0R2VuZXJhdG9yKToKIAogICAgICAgICAjIEluaXRp YWxpemUgcXVlcnkgdG9vbAogICAgICAgICBzZWxmLnRyYW5zX2lkID0gc3RyKHJhbmRvbS5yYW5k aW50KDEsIDk5OTk5OTkpKQotICAgICAgICB1cmwgPSAnL2RhdGFncmlkL2luaXRpYWxpemUvcXVl cnlfdG9vbC97MH0vezF9L3syfS97M30nLmZvcm1hdCgKKyAgICAgICAgdXJsID0gJy9zcWxlZGl0 b3IvaW5pdGlhbGl6ZS9zcWxlZGl0b3IvezB9L3sxfS97Mn0vezN9Jy5mb3JtYXQoCiAgICAgICAg ICAgICBzZWxmLnRyYW5zX2lkLCB1dGlscy5TRVJWRVJfR1JPVVAsIHNlbGYuc2VydmVyX2lkLCBz ZWxmLmRiX2lkKQogICAgICAgICByZXNwb25zZSA9IHNlbGYudGVzdGVyLnBvc3QodXJsKQogICAg ICAgICBzZWxmLmFzc2VydEVxdWFsKHJlc3BvbnNlLnN0YXR1c19jb2RlLCAyMDApCkBAIC02OCw3 ICs2OCw3IEBAIGNsYXNzIFRlc3RFeHBsYWluUGxhbihCYXNlVGVzdEdlbmVyYXRvcik6CiAgICAg ICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKHJlc3BvbnNlX2RhdGFbJ2RhdGEnXVsncmVzdWx0J11b MF0pLCAxKQogCiAgICAgICAgICMgQ2xvc2UgcXVlcnkgdG9vbAotICAgICAgICB1cmwgPSAnL2Rh dGFncmlkL2Nsb3NlL3swfScuZm9ybWF0KHNlbGYudHJhbnNfaWQpCisgICAgICAgIHVybCA9ICcv c3FsZWRpdG9yL2Nsb3NlL3swfScuZm9ybWF0KHNlbGYudHJhbnNfaWQpCiAgICAgICAgIHJlc3Bv bnNlID0gc2VsZi50ZXN0ZXIuZGVsZXRlKHVybCkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChy ZXNwb25zZS5zdGF0dXNfY29kZSwgMjAwKQogCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi90b29s cy9zcWxlZGl0b3IvdGVzdHMvdGVzdF9tYWNyb3MucHkgYi93ZWIvcGdhZG1pbi90b29scy9zcWxl ZGl0b3IvdGVzdHMvdGVzdF9tYWNyb3MucHkKaW5kZXggYjY2Njc4NjY4Li45NWU0MWNjYjggMTAw NjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL3Rvb2xzL3NxbGVkaXRvci90ZXN0cy90ZXN0X21hY3Jvcy5w eQorKysgYi93ZWIvcGdhZG1pbi90b29scy9zcWxlZGl0b3IvdGVzdHMvdGVzdF9tYWNyb3MucHkK QEAgLTEwNiw3ICsxMDYsNyBAQCBjbGFzcyBUZXN0TWFjcm9zKEJhc2VUZXN0R2VuZXJhdG9yKToK IAogICAgICAgICAjIEluaXRpYWxpemUgcXVlcnkgdG9vbAogICAgICAgICBzZWxmLnRyYW5zX2lk ID0gc3RyKHJhbmRvbS5yYW5kaW50KDEsIDk5OTk5OTkpKQotICAgICAgICB1cmwgPSAnL2RhdGFn cmlkL2luaXRpYWxpemUvcXVlcnlfdG9vbC97MH0vezF9L3syfS97M30nLmZvcm1hdCgKKyAgICAg ICAgdXJsID0gJy9zcWxlZGl0b3IvaW5pdGlhbGl6ZS9zcWxlZGl0b3IvezB9L3sxfS97Mn0vezN9 Jy5mb3JtYXQoCiAgICAgICAgICAgICBzZWxmLnRyYW5zX2lkLCB1dGlscy5TRVJWRVJfR1JPVVAs IHNlbGYuc2VydmVyX2lkLCBzZWxmLmRiX2lkKQogICAgICAgICByZXNwb25zZSA9IHNlbGYudGVz dGVyLnBvc3QodXJsKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJlc3BvbnNlLnN0YXR1c19j b2RlLCAyMDApCkBAIC0xNTAsNyArMTUwLDcgQEAgY2xhc3MgVGVzdE1hY3JvcyhCYXNlVGVzdEdl bmVyYXRvcik6CiAKICAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgICMgQ2xvc2UgcXVl cnkgdG9vbAotICAgICAgICB1cmwgPSAnL2RhdGFncmlkL2Nsb3NlL3swfScuZm9ybWF0KHNlbGYu dHJhbnNfaWQpCisgICAgICAgIHVybCA9ICcvc3FsZWRpdG9yL2Nsb3NlL3swfScuZm9ybWF0KHNl bGYudHJhbnNfaWQpCiAgICAgICAgIHJlc3BvbnNlID0gc2VsZi50ZXN0ZXIuZGVsZXRlKHVybCkK ICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXNwb25zZS5zdGF0dXNfY29kZSwgMjAwKQogCmRp ZmYgLS1naXQgYS93ZWIvcGdhZG1pbi90b29scy9zcWxlZGl0b3IvdGVzdHMvdGVzdF9wb2xsX3F1 ZXJ5X3Rvb2wucHkgYi93ZWIvcGdhZG1pbi90b29scy9zcWxlZGl0b3IvdGVzdHMvdGVzdF9wb2xs X3F1ZXJ5X3Rvb2wucHkKaW5kZXggOTIwODM5ZTU2Li5kMzVhMmJiNzMgMTAwNjQ0Ci0tLSBhL3dl Yi9wZ2FkbWluL3Rvb2xzL3NxbGVkaXRvci90ZXN0cy90ZXN0X3BvbGxfcXVlcnlfdG9vbC5weQor KysgYi93ZWIvcGdhZG1pbi90b29scy9zcWxlZGl0b3IvdGVzdHMvdGVzdF9wb2xsX3F1ZXJ5X3Rv b2wucHkKQEAgLTc3LDcgKzc3LDcgQEAgTk9USUNFOiAgSGVsbG8sIHdvcmxkIQogCiAgICAgICAg ICMgSW5pdGlhbGl6ZSBxdWVyeSB0b29sCiAgICAgICAgIHNlbGYudHJhbnNfaWQgPSBzdHIocmFu ZG9tLnJhbmRpbnQoMSwgOTk5OTk5OSkpCi0gICAgICAgIHVybCA9ICcvZGF0YWdyaWQvaW5pdGlh bGl6ZS9xdWVyeV90b29sL3swfS97MX0vezJ9L3szfScuZm9ybWF0KAorICAgICAgICB1cmwgPSAn L3NxbGVkaXRvci9pbml0aWFsaXplL3NxbGVkaXRvci97MH0vezF9L3syfS97M30nLmZvcm1hdCgK ICAgICAgICAgICAgIHNlbGYudHJhbnNfaWQsIHV0aWxzLlNFUlZFUl9HUk9VUCwgc2VsZi5zZXJ2 ZXJfaWQsIHNlbGYuZGJfaWQpCiAgICAgICAgIHJlc3BvbnNlID0gc2VsZi50ZXN0ZXIucG9zdCh1 cmwpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVzcG9uc2Uuc3RhdHVzX2NvZGUsIDIwMCkK QEAgLTExMCw3ICsxMTAsNyBAQCBOT1RJQ0U6ICBIZWxsbywgd29ybGQhCiAgICAgICAgICAgICBj bnQgKz0gMQogCiAgICAgICAgICMgQ2xvc2UgcXVlcnkgdG9vbAotICAgICAgICB1cmwgPSAnL2Rh dGFncmlkL2Nsb3NlL3swfScuZm9ybWF0KHNlbGYudHJhbnNfaWQpCisgICAgICAgIHVybCA9ICcv c3FsZWRpdG9yL2Nsb3NlL3swfScuZm9ybWF0KHNlbGYudHJhbnNfaWQpCiAgICAgICAgIHJlc3Bv bnNlID0gc2VsZi50ZXN0ZXIuZGVsZXRlKHVybCkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChy ZXNwb25zZS5zdGF0dXNfY29kZSwgMjAwKQogCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi90b29s cy9zcWxlZGl0b3IvdGVzdHMvdGVzdF90cmFuc2FjdGlvbl9zdGF0dXMucHkgYi93ZWIvcGdhZG1p bi90b29scy9zcWxlZGl0b3IvdGVzdHMvdGVzdF90cmFuc2FjdGlvbl9zdGF0dXMucHkKaW5kZXgg NWZiZTgzNzM0Li4zNTM4MjBiZjAgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL3Rvb2xzL3NxbGVk aXRvci90ZXN0cy90ZXN0X3RyYW5zYWN0aW9uX3N0YXR1cy5weQorKysgYi93ZWIvcGdhZG1pbi90 b29scy9zcWxlZGl0b3IvdGVzdHMvdGVzdF90cmFuc2FjdGlvbl9zdGF0dXMucHkKQEAgLTMwNCw3 ICszMDQsNyBAQCBjbGFzcyBUZXN0VHJhbnNhY3Rpb25Db250cm9sKEJhc2VUZXN0R2VuZXJhdG9y KToKIAogICAgIGRlZiBfaW5pdGlhbGl6ZV9xdWVyeV90b29sKHNlbGYpOgogICAgICAgICBzZWxm LnRyYW5zX2lkID0gc3RyKHJhbmRvbS5yYW5kaW50KDEsIDk5OTk5OTkpKQotICAgICAgICB1cmwg PSAnL2RhdGFncmlkL2luaXRpYWxpemUvcXVlcnlfdG9vbC97MH0vezF9L3syfS97M30nLmZvcm1h dCgKKyAgICAgICAgdXJsID0gJy9zcWxlZGl0b3IvaW5pdGlhbGl6ZS9zcWxlZGl0b3IvezB9L3sx fS97Mn0vezN9Jy5mb3JtYXQoCiAgICAgICAgICAgICBzZWxmLnRyYW5zX2lkLCB1dGlscy5TRVJW RVJfR1JPVVAsIHNlbGYuc2VydmVyX2lkLCBzZWxmLmRiX2lkKQogICAgICAgICByZXNwb25zZSA9 IHNlbGYudGVzdGVyLnBvc3QodXJsKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJlc3BvbnNl LnN0YXR1c19jb2RlLCAyMDApCkBAIC0zMzksNiArMzM5LDYgQEAgY2xhc3MgVGVzdFRyYW5zYWN0 aW9uQ29udHJvbChCYXNlVGVzdEdlbmVyYXRvcik6CiAgICAgICAgIHV0aWxzLmNyZWF0ZV90YWJs ZV93aXRoX3F1ZXJ5KHNlbGYuc2VydmVyLCBzZWxmLmRiX25hbWUsIGNyZWF0ZV9zcWwpCiAKICAg ICBkZWYgX2Nsb3NlX3F1ZXJ5X3Rvb2woc2VsZik6Ci0gICAgICAgIHVybCA9ICcvZGF0YWdyaWQv Y2xvc2UvezB9Jy5mb3JtYXQoc2VsZi50cmFuc19pZCkKKyAgICAgICAgdXJsID0gJy9zcWxlZGl0 b3IvY2xvc2UvezB9Jy5mb3JtYXQoc2VsZi50cmFuc19pZCkKICAgICAgICAgcmVzcG9uc2UgPSBz ZWxmLnRlc3Rlci5kZWxldGUodXJsKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJlc3BvbnNl LnN0YXR1c19jb2RlLCAyMDApCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi90b29scy9zcWxlZGl0 b3IvdGVzdHMvdGVzdF92aWV3X2RhdGEucHkgYi93ZWIvcGdhZG1pbi90b29scy9zcWxlZGl0b3Iv dGVzdHMvdGVzdF92aWV3X2RhdGEucHkKaW5kZXggYjg3YjM2MDRhLi41YWQ3NWQyOGYgMTAwNjQ0 Ci0tLSBhL3dlYi9wZ2FkbWluL3Rvb2xzL3NxbGVkaXRvci90ZXN0cy90ZXN0X3ZpZXdfZGF0YS5w eQorKysgYi93ZWIvcGdhZG1pbi90b29scy9zcWxlZGl0b3IvdGVzdHMvdGVzdF92aWV3X2RhdGEu cHkKQEAgLTk3LDcgKzk3LDcgQEAgY2xhc3MgVGVzdFZpZXdEYXRhKEJhc2VUZXN0R2VuZXJhdG9y KToKIAogICAgICAgICAjIEluaXRpYWxpemUgcXVlcnkgdG9vbAogICAgICAgICBzZWxmLnRyYW5z X2lkID0gc3RyKHJhbmRvbS5yYW5kaW50KDEsIDk5OTk5OTkpKQotICAgICAgICB1cmwgPSAnL2Rh dGFncmlkL2luaXRpYWxpemUvZGF0YWdyaWQvezB9LzMvdGFibGUvezF9L3syfS97M30vezR9JyBc CisgICAgICAgIHVybCA9ICcvc3FsZWRpdG9yL2luaXRpYWxpemUvdmlld2RhdGEvezB9LzMvdGFi bGUvezF9L3syfS97M30vezR9JyBcCiAgICAgICAgICAgICAuZm9ybWF0KHNlbGYudHJhbnNfaWQs IHRlc3RfdXRpbHMuU0VSVkVSX0dST1VQLCBzZWxmLnNlcnZlcl9pZCwKICAgICAgICAgICAgICAg ICAgICAgc2VsZi5kYl9pZCwgdGFibGVfaWQpCiAKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL3Rv b2xzL3NxbGVkaXRvci91dGlscy9tYWNyb3MucHkgYi93ZWIvcGdhZG1pbi90b29scy9zcWxlZGl0 b3IvdXRpbHMvbWFjcm9zLnB5CmluZGV4IGJkZjNlYzliZC4uN2UyZjg3MzFlIDEwMDY0NAotLS0g YS93ZWIvcGdhZG1pbi90b29scy9zcWxlZGl0b3IvdXRpbHMvbWFjcm9zLnB5CisrKyBiL3dlYi9w Z2FkbWluL3Rvb2xzL3NxbGVkaXRvci91dGlscy9tYWNyb3MucHkKQEAgLTc2LDcgKzc2LDggQEAg ZGVmIGdldF91c2VyX21hY3JvcygpOgogICAgIG1hY3JvcyA9IGRiLnNlc3Npb24ucXVlcnkoVXNl ck1hY3Jvcy5uYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTWFjcm9zLmlkLAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTWFjcm9zLmFsdCwgTWFjcm9zLmNvbnRyb2ws Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNYWNyb3Mua2V5LCBNYWNyb3Mua2V5X2Nv ZGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1hY3Jvcy5rZXksIE1hY3Jvcy5rZXlf Y29kZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVzZXJNYWNyb3Muc3FsCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICApLm91dGVyam9pbigKICAgICAgICAgTWFjcm9zLCBV c2VyTWFjcm9zLm1pZCA9PSBNYWNyb3MuaWQpLmZpbHRlcigKICAgICAgICAgVXNlck1hY3Jvcy51 aWQgPT0gY3VycmVudF91c2VyLmlkKS5vcmRlcl9ieShVc2VyTWFjcm9zLm5hbWUpLmFsbCgpCkBA IC04Nyw3ICs4OCw4IEBAIGRlZiBnZXRfdXNlcl9tYWNyb3MoKToKICAgICAgICAga2V5X2xhYmVs ID0gJ0N0cmwgKyAnICsgbVs0XSBpZiBtWzNdIGlzIFRydWUgZWxzZSAnQWx0ICsgJyArIG1bNF0K ICAgICAgICAgZGF0YS5hcHBlbmQoeyduYW1lJzogbVswXSwgJ2lkJzogbVsxXSwgJ2tleSc6IG1b NF0sCiAgICAgICAgICAgICAgICAgICAgICAna2V5X2xhYmVsJzoga2V5X2xhYmVsLCAnYWx0Jzog MSBpZiBtWzJdIGVsc2UgMCwKLSAgICAgICAgICAgICAgICAgICAgICdjb250cm9sJzogMSBpZiBt WzNdIGVsc2UgMCwgJ2tleV9jb2RlJzogbVs1XX0pCisgICAgICAgICAgICAgICAgICAgICAnY29u dHJvbCc6IDEgaWYgbVszXSBlbHNlIDAsICdrZXlfY29kZSc6IG1bNV0sCisgICAgICAgICAgICAg ICAgICAgICAnc3FsJzogbVs2XX0pCiAKICAgICByZXR1cm4gZGF0YQogCkBAIC0xMjEsNyArMTIz LDggQEAgZGVmIHNldF9tYWNyb3MoKToKICAgICAgICAgICAgICAgICByZXR1cm4gbWFrZV9qc29u X3Jlc3BvbnNlKAogICAgICAgICAgICAgICAgICAgICBzdGF0dXM9NDEwLCBzdWNjZXNzPTAsIGVy cm9ybXNnPW1zZwogICAgICAgICAgICAgICAgICkKLSAgICByZXR1cm4gYWpheF9yZXNwb25zZShz dGF0dXM9MjAwKQorCisgICAgcmV0dXJuIGdldF9tYWNyb3MoTm9uZSwgVHJ1ZSkKIAogCiBkZWYg Y3JlYXRlX21hY3JvKG1hY3JvKToKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL3Rvb2xzL3NxbGVk aXRvci91dGlscy9xdWVyeV9oaXN0b3J5LnB5IGIvd2ViL3BnYWRtaW4vdG9vbHMvc3FsZWRpdG9y L3V0aWxzL3F1ZXJ5X2hpc3RvcnkucHkKaW5kZXggY2Y1ZTVmMGI1Li43NGQ4MTU5ZDcgMTAwNjQ0 Ci0tLSBhL3dlYi9wZ2FkbWluL3Rvb2xzL3NxbGVkaXRvci91dGlscy9xdWVyeV9oaXN0b3J5LnB5 CisrKyBiL3dlYi9wZ2FkbWluL3Rvb2xzL3NxbGVkaXRvci91dGlscy9xdWVyeV9oaXN0b3J5LnB5 CkBAIC0xLDcgKzEsNyBAQAogZnJvbSBwZ2FkbWluLnV0aWxzLmFqYXggaW1wb3J0IG1ha2VfanNv bl9yZXNwb25zZQogZnJvbSBwZ2FkbWluLm1vZGVsIGltcG9ydCBkYiwgUXVlcnlIaXN0b3J5TW9k ZWwKIGZyb20gY29uZmlnIGltcG9ydCBNQVhfUVVFUllfSElTVF9TVE9SRUQKLQoraW1wb3J0IGpz b24KIAogY2xhc3MgUXVlcnlIaXN0b3J5OgogICAgIEBzdGF0aWNtZXRob2QKQEAgLTEwNywzMCAr MTA3LDM0IEBAIGNsYXNzIFF1ZXJ5SGlzdG9yeToKICAgICAgICAgKQogCiAgICAgQHN0YXRpY21l dGhvZAotICAgIGRlZiBjbGVhcl9oaXN0b3J5KHVpZCwgc2lkLCBkYm5hbWU9Tm9uZSk6CisgICAg ZGVmIGNsZWFyX2hpc3RvcnkodWlkLCBzaWQsIGRibmFtZT1Ob25lLCBmaWx0ZXI9Tm9uZSk6CiAg ICAgICAgIHRyeToKKyAgICAgICAgICAgIGZpbHRlcnMgPSBbCisgICAgICAgICAgICAgICAgUXVl cnlIaXN0b3J5TW9kZWwudWlkID09IHVpZCwKKyAgICAgICAgICAgICAgICBRdWVyeUhpc3RvcnlN b2RlbC5zaWQgPT0gc2lkCisgICAgICAgICAgICBdCiAgICAgICAgICAgICBpZiBkYm5hbWUgaXMg bm90IE5vbmU6Ci0gICAgICAgICAgICAgICAgZGIuc2Vzc2lvbi5xdWVyeShRdWVyeUhpc3RvcnlN b2RlbCkgXAotICAgICAgICAgICAgICAgICAgICAuZmlsdGVyKFF1ZXJ5SGlzdG9yeU1vZGVsLnVp ZCA9PSB1aWQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgUXVlcnlIaXN0b3J5TW9kZWwu c2lkID09IHNpZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBRdWVyeUhpc3RvcnlNb2Rl bC5kYm5hbWUgPT0gZGJuYW1lKSBcCi0gICAgICAgICAgICAgICAgICAgIC5kZWxldGUoKQotCi0g ICAgICAgICAgICAgICAgZGIuc2Vzc2lvbi5jb21taXQoKQorICAgICAgICAgICAgICAgIGZpbHRl cnMuYXBwZW5kKFF1ZXJ5SGlzdG9yeU1vZGVsLmRibmFtZSA9PSBkYm5hbWUpCisKKyAgICAgICAg ICAgIGhpc3RvcnkgPSBkYi5zZXNzaW9uLnF1ZXJ5KFF1ZXJ5SGlzdG9yeU1vZGVsKSBcCisgICAg ICAgICAgICAgICAgLmZpbHRlcigqZmlsdGVycykKKyAgICAgICAgICAgIGlmIGZpbHRlciBpcyBu b3QgTm9uZToKKyAgICAgICAgICAgICAgICBmb3Igcm93IGluIGhpc3Rvcnk6CisgICAgICAgICAg ICAgICAgICAgIHF1ZXJ5X2luZm8gPSBqc29uLmxvYWRzKHJvdy5xdWVyeV9pbmZvLmRlY29kZSgp KQorICAgICAgICAgICAgICAgICAgICBpZiBxdWVyeV9pbmZvWydxdWVyeSddID09IGZpbHRlclsn cXVlcnknXSBhbmQgXAorICAgICAgICAgICAgICAgICAgICAgICAgcXVlcnlfaW5mb1snc3RhcnRf dGltZSddID09IGZpbHRlclsnc3RhcnRfdGltZSddOgorICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGRiLnNlc3Npb24uZGVsZXRlKHJvdykKICAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAg ICAgICAgZGIuc2Vzc2lvbi5xdWVyeShRdWVyeUhpc3RvcnlNb2RlbCkgXAotICAgICAgICAgICAg ICAgICAgICAuZmlsdGVyKFF1ZXJ5SGlzdG9yeU1vZGVsLnVpZCA9PSB1aWQsCi0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgUXVlcnlIaXN0b3J5TW9kZWwuc2lkID09IHNpZClcCi0gICAgICAg ICAgICAgICAgICAgIC5kZWxldGUoKQorICAgICAgICAgICAgICAgIGhpc3RvcnkuZGVsZXRlKCkK IAotICAgICAgICAgICAgICAgIGRiLnNlc3Npb24uY29tbWl0KCkKKyAgICAgICAgICAgIGRiLnNl c3Npb24uY29tbWl0KCkKICAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbjoKICAgICAgICAgICAgIGRi LnNlc3Npb24ucm9sbGJhY2soKQogICAgICAgICAgICAgIyBkbyBub3QgYWZmZWN0IHF1ZXJ5IGV4 ZWN1dGlvbiBpZiBoaXN0b3J5IGNsZWFyIGZhaWxzCiAKICAgICBAc3RhdGljbWV0aG9kCi0gICAg ZGVmIGNsZWFyKHVpZCwgc2lkLCBkYm5hbWU9Tm9uZSk6Ci0gICAgICAgIFF1ZXJ5SGlzdG9yeS5j bGVhcl9oaXN0b3J5KHVpZCwgc2lkLCBkYm5hbWUpCisgICAgZGVmIGNsZWFyKHVpZCwgc2lkLCBk Ym5hbWU9Tm9uZSwgZmlsdGVyPU5vbmUpOgorICAgICAgICBRdWVyeUhpc3RvcnkuY2xlYXJfaGlz dG9yeSh1aWQsIHNpZCwgZGJuYW1lLCBmaWx0ZXIpCiAgICAgICAgIHJldHVybiBtYWtlX2pzb25f cmVzcG9uc2UoCiAgICAgICAgICAgICBkYXRhPXsKICAgICAgICAgICAgICAgICAnc3RhdHVzJzog VHJ1ZSwKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL3Rvb2xzL3NxbGVkaXRvci91dGlscy90ZXN0 cy90ZXN0X2lzX3F1ZXJ5X3Jlc3VsdHNldF91cGRhdGFibGUucHkgYi93ZWIvcGdhZG1pbi90b29s cy9zcWxlZGl0b3IvdXRpbHMvdGVzdHMvdGVzdF9pc19xdWVyeV9yZXN1bHRzZXRfdXBkYXRhYmxl LnB5CmluZGV4IGM2ODQwZGY2My4uOTgzOTQ3MmVjIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi90 b29scy9zcWxlZGl0b3IvdXRpbHMvdGVzdHMvdGVzdF9pc19xdWVyeV9yZXN1bHRzZXRfdXBkYXRh YmxlLnB5CisrKyBiL3dlYi9wZ2FkbWluL3Rvb2xzL3NxbGVkaXRvci91dGlscy90ZXN0cy90ZXN0 X2lzX3F1ZXJ5X3Jlc3VsdHNldF91cGRhdGFibGUucHkKQEAgLTIwMyw3ICsyMDMsNyBAQCBjbGFz cyBUZXN0UXVlcnlVcGRhdGFibGVSZXN1bHRzZXQoQmFzZVRlc3RHZW5lcmF0b3IpOgogCiAgICAg ZGVmIF9pbml0aWFsaXplX3F1ZXJ5X3Rvb2woc2VsZik6CiAgICAgICAgIHNlbGYudHJhbnNfaWQg PSBzdHIocmFuZG9tLnJhbmRpbnQoMSwgOTk5OTk5OSkpCi0gICAgICAgIHVybCA9ICcvZGF0YWdy aWQvaW5pdGlhbGl6ZS9xdWVyeV90b29sL3swfS97MX0vezJ9L3szfScuZm9ybWF0KAorICAgICAg ICB1cmwgPSAnL3NxbGVkaXRvci9pbml0aWFsaXplL3NxbGVkaXRvci97MH0vezF9L3syfS97M30n LmZvcm1hdCgKICAgICAgICAgICAgIHNlbGYudHJhbnNfaWQsIHV0aWxzLlNFUlZFUl9HUk9VUCwg c2VsZi5zZXJ2ZXJfaWQsIHNlbGYuZGJfaWQpCiAgICAgICAgIHJlc3BvbnNlID0gc2VsZi50ZXN0 ZXIucG9zdCh1cmwpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVzcG9uc2Uuc3RhdHVzX2Nv ZGUsIDIwMCkKQEAgLTIzNSw3ICsyMzUsNyBAQCBjbGFzcyBUZXN0UXVlcnlVcGRhdGFibGVSZXN1 bHRzZXQoQmFzZVRlc3RHZW5lcmF0b3IpOgogICAgICAgICB1dGlscy5jcmVhdGVfdGFibGVfd2l0 aF9xdWVyeShzZWxmLnNlcnZlciwgc2VsZi5kYl9uYW1lLCBjcmVhdGVfc3FsKQogCiAgICAgZGVm IF9jbG9zZV9xdWVyeV90b29sKHNlbGYpOgotICAgICAgICB1cmwgPSAnL2RhdGFncmlkL2Nsb3Nl L3swfScuZm9ybWF0KHNlbGYudHJhbnNfaWQpCisgICAgICAgIHVybCA9ICcvc3FsZWRpdG9yL2Ns b3NlL3swfScuZm9ybWF0KHNlbGYudHJhbnNfaWQpCiAgICAgICAgIHJlc3BvbnNlID0gc2VsZi50 ZXN0ZXIuZGVsZXRlKHVybCkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXNwb25zZS5zdGF0 dXNfY29kZSwgMjAwKQogCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi90b29scy9zcWxlZGl0b3Iv dXRpbHMvdGVzdHMvdGVzdF9zYXZlX2NoYW5nZWRfZGF0YS5weSBiL3dlYi9wZ2FkbWluL3Rvb2xz L3NxbGVkaXRvci91dGlscy90ZXN0cy90ZXN0X3NhdmVfY2hhbmdlZF9kYXRhLnB5CmluZGV4IDBi ZWY5Yjk0Ny4uMWI4ODhkMjg1IDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi90b29scy9zcWxlZGl0 b3IvdXRpbHMvdGVzdHMvdGVzdF9zYXZlX2NoYW5nZWRfZGF0YS5weQorKysgYi93ZWIvcGdhZG1p bi90b29scy9zcWxlZGl0b3IvdXRpbHMvdGVzdHMvdGVzdF9zYXZlX2NoYW5nZWRfZGF0YS5weQpA QCAtOTIxLDcgKzkyMSw3IEBAIGNsYXNzIFRlc3RTYXZlQ2hhbmdlZERhdGEoQmFzZVRlc3RHZW5l cmF0b3IpOgogCiAgICAgZGVmIF9pbml0aWFsaXplX3F1ZXJ5X3Rvb2woc2VsZik6CiAgICAgICAg IHNlbGYudHJhbnNfaWQgPSBzdHIocmFuZG9tLnJhbmRpbnQoMSwgOTk5OTk5OSkpCi0gICAgICAg IHVybCA9ICcvZGF0YWdyaWQvaW5pdGlhbGl6ZS9xdWVyeV90b29sL3swfS97MX0vezJ9L3szfScu Zm9ybWF0KAorICAgICAgICB1cmwgPSAnL3NxbGVkaXRvci9pbml0aWFsaXplL3NxbGVkaXRvci97 MH0vezF9L3syfS97M30nLmZvcm1hdCgKICAgICAgICAgICAgIHNlbGYudHJhbnNfaWQsIHV0aWxz LlNFUlZFUl9HUk9VUCwgc2VsZi5zZXJ2ZXJfaWQsIHNlbGYuZGJfaWQpCiAgICAgICAgIHJlc3Bv bnNlID0gc2VsZi50ZXN0ZXIucG9zdCh1cmwpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVz cG9uc2Uuc3RhdHVzX2NvZGUsIDIwMCkKQEAgLTk1NSw2ICs5NTUsNiBAQCBjbGFzcyBUZXN0U2F2 ZUNoYW5nZWREYXRhKEJhc2VUZXN0R2VuZXJhdG9yKToKICAgICAgICAgdXRpbHMuY3JlYXRlX3Rh YmxlX3dpdGhfcXVlcnkoc2VsZi5zZXJ2ZXIsIHNlbGYuZGJfbmFtZSwgY3JlYXRlX3NxbCkKIAog ICAgIGRlZiBfY2xvc2VfcXVlcnlfdG9vbChzZWxmKToKLSAgICAgICAgdXJsID0gJy9kYXRhZ3Jp ZC9jbG9zZS97MH0nLmZvcm1hdChzZWxmLnRyYW5zX2lkKQorICAgICAgICB1cmwgPSAnL3NxbGVk aXRvci9jbG9zZS97MH0nLmZvcm1hdChzZWxmLnRyYW5zX2lkKQogICAgICAgICByZXNwb25zZSA9 IHNlbGYudGVzdGVyLmRlbGV0ZSh1cmwpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVzcG9u c2Uuc3RhdHVzX2NvZGUsIDIwMCkKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL3V0aWxzL2NvbnN0 YW50cy5weSBiL3dlYi9wZ2FkbWluL3V0aWxzL2NvbnN0YW50cy5weQppbmRleCA5ODczMzcxZDIu LjM1YTVlZDUxZCAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vdXRpbHMvY29uc3RhbnRzLnB5Cisr KyBiL3dlYi9wZ2FkbWluL3V0aWxzL2NvbnN0YW50cy5weQpAQCAtMzQsNiArMzQsNyBAQCBTRVJW RVJfQ09OTkVDVElPTl9DTE9TRUQgPSBnZXR0ZXh0KAogCiAjIFF1ZXJ5IHRvb2wgcGxhY2Vob2xk ZXIKIFFUX0RFRkFVTFRfUExBQ0VIT0xERVIgPSAnJURBVEFCQVNFJS8lVVNFUk5BTUUlQCVTRVJW RVIlJworVldfRURUX0RFRkFVTFRfUExBQ0VIT0xERVIgPSAnJVNDSEVNQSUuJVRBQkxFJS8lREFU QUJBU0UlLyVVU0VSTkFNRSVAJVNFUlZFUiUnCiAKICMgRGF0YSBUeXBlcwogREFUQVRZUEVfVElN RV9XSVRIX1RJTUVaT05FID0gJ3RpbWUgd2l0aCB0aW1lIHpvbmUnCmRpZmYgLS1naXQgYS93ZWIv cGdhZG1pbi91dGlscy9jc3JmLnB5IGIvd2ViL3BnYWRtaW4vdXRpbHMvY3NyZi5weQppbmRleCBm ODhjYmY1OGUuLjdhZDE0ZWViZSAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vdXRpbHMvY3NyZi5w eQorKysgYi93ZWIvcGdhZG1pbi91dGlscy9jc3JmLnB5CkBAIC0zMSw4ICszMSw5IEBAIGNsYXNz IF9QR0NTUkZQcm90ZWN0KENTUkZQcm90ZWN0KToKICAgICAgICAgICAgICdwZ2FkbWluLnRvb2xz LnRyYW5zbGF0aW9ucycsCiAgICAgICAgICAgICBhcHAuYmx1ZXByaW50c1sncmVkaXJlY3RzJ10s CiAgICAgICAgICAgICAncGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5zdXBw b3J0ZWRfc2VydmVycy1qcycsCi0gICAgICAgICAgICAncGdhZG1pbi50b29scy5kYXRhZ3JpZC5p bml0aWFsaXplX3F1ZXJ5X3Rvb2wnLAorICAgICAgICAgICAgJ3BnYWRtaW4udG9vbHMuc3FsZWRp dG9yLmluaXRpYWxpemVfc3FsZWRpdG9yJywKICAgICAgICAgICAgICdwZ2FkbWluLnRvb2xzLmRh dGFncmlkLnBhbmVsJywKKyAgICAgICAgICAgICdwZ2FkbWluLnRvb2xzLnNxbGVkaXRvci5wYW5l bCcsCiAgICAgICAgICAgICAncGdhZG1pbi50b29scy5kZWJ1Z2dlci5pbml0aWFsaXplX3Rhcmdl dCcsCiAgICAgICAgICAgICAncGdhZG1pbi50b29scy5kZWJ1Z2dlci5kaXJlY3RfbmV3JywKICAg ICAgICAgICAgICdwZ2FkbWluLnRvb2xzLnNjaGVtYV9kaWZmLnBhbmVsJywKZGlmZiAtLWdpdCBh L3dlYi9yZWdyZXNzaW9uL2phdmFzY3JpcHQvY29tcG9uZW50cy9Db2RlTWlycm9yLnNwZWMuanMg Yi93ZWIvcmVncmVzc2lvbi9qYXZhc2NyaXB0L2NvbXBvbmVudHMvQ29kZU1pcnJvci5zcGVjLmpz CmluZGV4IDdlOGQ4ZjI0OC4uNmNlYzcxNWQ0IDEwMDY0NAotLS0gYS93ZWIvcmVncmVzc2lvbi9q YXZhc2NyaXB0L2NvbXBvbmVudHMvQ29kZU1pcnJvci5zcGVjLmpzCisrKyBiL3dlYi9yZWdyZXNz aW9uL2phdmFzY3JpcHQvY29tcG9uZW50cy9Db2RlTWlycm9yLnNwZWMuanMKQEAgLTUyLDkgKzUy LDMzIEBAIGRlc2NyaWJlKCdDb2RlTWlycm9yJywgKCk9PnsKICAgICAgICdzZXRTZWxlY3Rpb24n OiAoKT0+ey8qVGhpcyBpcyBpbnRlbnRpb25hbCAoU29uYXJRdWJlKSovfSwKICAgICAgICdzY3Jv bGxJbnRvVmlldyc6ICgpPT57LypUaGlzIGlzIGludGVudGlvbmFsIChTb25hclF1YmUpKi99LAog ICAgICAgJ2dldFdyYXBwZXJFbGVtZW50JzogZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyks CisgICAgICAnb24nOiAoKT0+ey8qVGhpcyBpcyBpbnRlbnRpb25hbCAoU29uYXJRdWJlKSovfSwK ICAgICB9KTsKICAgYmVmb3JlRWFjaCgoKT0+ewogICAgIGphc21pbmVFbnp5bWUoKTsKKyAgICB3 aW5kb3cucGdBZG1pbiA9IHsKKyAgICAgIEJyb3dzZXI6IHsKKyAgICAgICAgRXZlbnRzOiB7Cisg ICAgICAgICAgb246IGphc21pbmUuY3JlYXRlU3B5KCdvbicpLAorICAgICAgICB9LAorICAgICAg ICBnZXRfcHJlZmVyZW5jZXNfZm9yX21vZHVsZTogKCk9Pih7fSksCisgICAgICAgIGRvY2tlcjog eworICAgICAgICAgIGZpbmRQYW5lbHM6IGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgcmV0dXJu IFsKKyAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGlzVmlzaWJsZTogZnVuY3Rpb24o KSB7CisgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgICAgICB9LAor ICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgXTsKKyAgICAgICAgICB9LAorICAgICAgICB9 LAorICAgICAgICBvblByZWZlcmVuY2VzQ2hhbmdlOiAoKT0+ey8qVGhpcyBpcyBpbnRlbnRpb25h bCAoU29uYXJRdWJlKSovfSwKKyAgICAgICAgdXRpbHM6IHsKKyAgICAgICAgICBhcHBfdmVyc2lv bl9pbnQ6IDEyMzQsCisgICAgICAgIH0sCisgICAgICB9LAorICAgIH07CiAgICAgc3B5T24oT3Jp Z0NvZGVNaXJyb3IsICdmcm9tVGV4dEFyZWEnKS5hbmQucmV0dXJuVmFsdWUoY21PYmopOwogICAg IGNvbnN0IFRoZW1lZENNID0gd2l0aFRoZW1lKENvZGVNaXJyb3IpOwogICAgIGNtSW5zdGFuY2Ug PSBtb3VudCgKQEAgLTY1LDYgKzg5LDEwIEBAIGRlc2NyaWJlKCdDb2RlTWlycm9yJywgKCk9PnsK ICAgICAgIC8+KTsKICAgfSk7CiAKKyAgYWZ0ZXJFYWNoKCgpPT57CisgICAgd2luZG93LnBnQWRt aW4gPSB1bmRlZmluZWQ7CisgIH0pOworCiAgIGl0KCdpbml0JywgKCk9PnsKICAgICAvKiB0ZXh0 YXJlYSByZWYgcGFzc2VkIHRvIGZyb21UZXh0QXJlYSAqLwogICAgIGV4cGVjdChPcmlnQ29kZU1p cnJvci5mcm9tVGV4dEFyZWEpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKGNtSW5zdGFuY2UuZmluZCgn dGV4dGFyZWEnKS5nZXRET01Ob2RlKCksIGphc21pbmUub2JqZWN0Q29udGFpbmluZyhvcHRpb25z KSk7CmRpZmYgLS1naXQgYS93ZWIvcmVncmVzc2lvbi9qYXZhc2NyaXB0L2NvbXBvbmVudHMvU2hv cnRjdXRUaXRsZS5zcGVjLmpzIGIvd2ViL3JlZ3Jlc3Npb24vamF2YXNjcmlwdC9jb21wb25lbnRz L1Nob3J0Y3V0VGl0bGUuc3BlYy5qcwppbmRleCBhODhmOWQ3YWQuLjE1MDhiYmEwNyAxMDA2NDQK LS0tIGEvd2ViL3JlZ3Jlc3Npb24vamF2YXNjcmlwdC9jb21wb25lbnRzL1Nob3J0Y3V0VGl0bGUu c3BlYy5qcworKysgYi93ZWIvcmVncmVzc2lvbi9qYXZhc2NyaXB0L2NvbXBvbmVudHMvU2hvcnRj dXRUaXRsZS5zcGVjLmpzCkBAIC01Nyw3ICs1Nyw2IEBAIGRlc2NyaWJlKCdTaG9ydGN1dFRpdGxl JywgKCk9PnsKICAgfSk7CiAKICAgZGVzY3JpYmUoJ3Nob3J0Y3V0VG9TdHJpbmcnLCAoKT0+ewot CiAgICAgaXQoJ3Nob3J0Y3V0JywgKCk9PnsKICAgICAgIHNweU9uKGtleVNob3J0LCAnaXNNYWMn KS5hbmQucmV0dXJuVmFsdWUoZmFsc2UpOwogICAgICAgZXhwZWN0KHNob3J0Y3V0VG9TdHJpbmco c2hvcnRjdXQpKS50b0JlKCdDdHJsICsgU2hpZnQgKyBLJyk7CkBAIC02OSw2ICs2OCw3IEBAIGRl c2NyaWJlKCdTaG9ydGN1dFRpdGxlJywgKCk9PnsKICAgICB9KTsKIAogICAgIGl0KCdhY2Nlc3Nr ZXknLCAoKT0+eworICAgICAgc3B5T25Qcm9wZXJ0eSh3aW5kb3cubmF2aWdhdG9yLCAndXNlckFn ZW50JykuYW5kLnJldHVyblZhbHVlKCdVbmtub3duJyk7CiAgICAgICBleHBlY3Qoc2hvcnRjdXRU b1N0cmluZyhudWxsLCAnQScpKS50b0VxdWFsKCdBY2Nlc3NrZXkgKyBBJyk7CiAgICAgfSk7CiAK ZGlmZiAtLWdpdCBhL3dlYi9yZWdyZXNzaW9uL2phdmFzY3JpcHQvZGF0YWdyaWQvZ2V0X3BhbmVs X3RpdGxlX3NwZWMuanMgYi93ZWIvcmVncmVzc2lvbi9qYXZhc2NyaXB0L2RhdGFncmlkL2dldF9w YW5lbF90aXRsZV9zcGVjLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxMjMwZWIz OTQuLjAwMDAwMDAwMAotLS0gYS93ZWIvcmVncmVzc2lvbi9qYXZhc2NyaXB0L2RhdGFncmlkL2dl dF9wYW5lbF90aXRsZV9zcGVjLmpzCisrKyAvZGV2L251bGwKQEAgLTEsOTQgKzAsMCBAQAotLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v LwotLy8KLS8vIHBnQWRtaW4gNCAtIFBvc3RncmVTUUwgVG9vbHMKLS8vCi0vLyBDb3B5cmlnaHQg KEMpIDIwMTMgLSAyMDIyLCBUaGUgcGdBZG1pbiBEZXZlbG9wbWVudCBUZWFtCi0vLyBUaGlzIHNv ZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIHRoZSBQb3N0Z3JlU1FMIExpY2VuY2UKLS8vCi0vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v LwotCi1pbXBvcnQge2dldFBhbmVsVGl0bGV9IGZyb20gJy4uLy4uLy4uL3BnYWRtaW4vdG9vbHMv ZGF0YWdyaWQvc3RhdGljL2pzL2RhdGFncmlkX3BhbmVsX3RpdGxlJzsKLWltcG9ydCB7VHJlZUZh a2V9IGZyb20gJy4uL3RyZWUvdHJlZV9mYWtlJzsKLWltcG9ydCB7VHJlZU5vZGV9IGZyb20gJy4u Ly4uLy4uL3BnYWRtaW4vc3RhdGljL2pzL3RyZWUvdHJlZV9ub2Rlcyc7Ci1pbXBvcnQge3BnQnJv d3Nlcn0gZnJvbSAncGdhZG1pbi5icm93c2VyLnByZWZlcmVuY2VzJzsKLQotY29uc3QgY29udGV4 dCA9IGRlc2NyaWJlOwotCi12YXIgZHVtbXlfY2FjaGUgPSBbCi0gIHsKLSAgICBpZDogMSwKLSAg ICBtaWQ6IDEsCi0gICAgbW9kdWxlOidicm93c2VyJywKLSAgICBuYW1lOidxdF90YWJfdGl0bGVf cGxhY2Vob2xkZXInLAotICAgIHZhbHVlOiAnJURBVEFCQVNFJS8lVVNFUk5BTUUlQCVTRVJWRVIl JywKLSAgfSwKLV07Ci0KLWRlc2NyaWJlKCcjZ2V0UGFuZWxUaXRsZScsICgpID0+IHsKLSAgbGV0 IHRyZWU7Ci0gIGJlZm9yZUVhY2goKCkgPT4gewotICAgIHBnQnJvd3Nlci5wcmVmZXJlbmNlc19j YWNoZSA9IGR1bW15X2NhY2hlOwotICAgIHBnQnJvd3Nlci5Ob2RlcyA9IHsKLSAgICAgIHNlcnZl cjogewotICAgICAgICBoYXNJZDogdHJ1ZSwKLSAgICAgICAgX3R5cGU6ICdzZXJ2ZXInLAotICAg ICAgfSwKLSAgICAgIGRhdGFiYXNlOiB7Ci0gICAgICAgIGhhc0lkOiB0cnVlLAotICAgICAgICBf dHlwZTogJ2RhdGFiYXNlJywKLSAgICAgIH0sCi0gICAgfTsKLSAgICBwZ0Jyb3dzZXIucHJlZmVy ZW5jZXMgPSB7Ci0gICAgICAncXRfdGFiX3RpdGxlX3BsYWNlaG9sZGVyJzogJycsCi0gICAgfTsK LSAgICB0cmVlID0gbmV3IFRyZWVGYWtlKHBnQnJvd3Nlcik7Ci0gICAgcGdCcm93c2VyLnRyZWUg PSB0cmVlOwotICB9KTsKLQotICBjb250ZXh0KCdzZWxlY3RlZCBub2RlIGRvZXMgbm90IGJlbG9u ZyB0byBhIHNlcnZlcicsICgpID0+IHsKLSAgICBpdCgncmV0dXJucyB1bmRlZmluZWQnLCAoKSA9 PiB7Ci0gICAgICBjb25zdCByb290ID0gdHJlZS5hZGROZXdOb2RlKCdsZXZlbDEnLCB7X3R5cGU6 ICdzZXJ2ZXJfZ3JvdXBzJ30pOwotICAgICAgdHJlZS5hZGRDaGlsZChyb290LCBuZXcgVHJlZU5v ZGUoJ2xldmVsMS4xJywge190eXBlOiAnb3RoZXInfSkpOwotICAgICAgdHJlZS5zZWxlY3ROb2Rl KFt7aWQ6ICdsZXZlbDEnfV0pOwotICAgICAgZXhwZWN0KGdldFBhbmVsVGl0bGUocGdCcm93c2Vy KSkudG9CZVVuZGVmaW5lZCgpOwotICAgIH0pOwotICB9KTsKLQotICBjb250ZXh0KCdzZWxlY3Rl ZCBub2RlIGJlbG9uZyB0byBhIHNlcnZlcicsICgpID0+IHsKLSAgICBjb250ZXh0KCdzZWxlY3Rl ZCBub2RlIGRvZXMgbm90IGJlbG9uZyB0byBhIGRhdGFiYXNlJywgKCkgPT4gewotICAgICAgaXQo J3JldHVybnMgdGhlIHNlcnZlciBsYWJlbCBhbmQgdGhlIHVzZXJuYW1lJywgKCkgPT4gewotICAg ICAgICB0cmVlLmFkZE5ld05vZGUoJ2xldmVsMScsIHsKLSAgICAgICAgICBfdHlwZTogJ3NlcnZl cicsCi0gICAgICAgICAgZGI6ICdvdGhlciBkYiBsYWJlbCcsCi0gICAgICAgICAgdXNlcjoge25h bWU6ICdzb21lIHVzZXIgbmFtZSd9LAotICAgICAgICAgIGxhYmVsOiAnc2VydmVyIGxhYmVsJywK LSAgICAgICAgfSwgW10pOwotCi0gICAgICAgIHRyZWUuc2VsZWN0Tm9kZShbe2lkOiAnbGV2ZWwx J31dKTsKLSAgICAgICAgZXhwZWN0KGdldFBhbmVsVGl0bGUocGdCcm93c2VyKSkKLSAgICAgICAg ICAudG9FcXVhbCgnb3RoZXIgZGIgbGFiZWwvc29tZSB1c2VyIG5hbWVAc2VydmVyIGxhYmVsJyk7 Ci0gICAgICB9KTsKLSAgICB9KTsKLQotICAgIGNvbnRleHQoJ3NlbGVjdGVkIG5vZGUgYmVsb25n cyB0byBhIGRhdGFiYXNlJywgKCkgPT4gewotICAgICAgaXQoJ3JldHVybnMgdGhlIGRhdGFiYXNl IGxhYmVsIGFuZCB0aGUgdXNlcm5hbWUnLCAoKSA9PiB7Ci0gICAgICAgIGNvbnN0IHJvb3QgPSB0 cmVlLmFkZE5ld05vZGUoJ2xldmVsMScsIHsKLSAgICAgICAgICBfdHlwZTogJ3NlcnZlcicsCi0g ICAgICAgICAgZGI6ICdvdGhlciBkYiBsYWJlbCcsCi0gICAgICAgICAgdXNlcjoge25hbWU6ICdz b21lIHVzZXIgbmFtZSd9LAotICAgICAgICAgIGxhYmVsOiAnc2VydmVyIGxhYmVsJywKLSAgICAg ICAgfSk7Ci0gICAgICAgIGNvbnN0IGxldmVsMSA9IG5ldyBUcmVlTm9kZSgnbGV2ZWwxLjEnLCB7 Ci0gICAgICAgICAgX3R5cGU6ICdkYXRhYmFzZScsCi0gICAgICAgICAgbGFiZWw6ICdkYiBsYWJl bCcsCi0gICAgICAgIH0pOwotICAgICAgICB0cmVlLmFkZENoaWxkKHJvb3QsIGxldmVsMSk7Ci0g ICAgICAgIHRyZWUuYWRkQ2hpbGQobGV2ZWwxLAotICAgICAgICAgIG5ldyBUcmVlTm9kZSgnbGV2 ZWwxLjEuMScsIHtfdHlwZTogJ3RhYmxlJ30pKTsKLSAgICAgICAgdHJlZS5zZWxlY3ROb2RlKFt7 aWQ6ICdsZXZlbDEuMS4xJ31dKTsKLSAgICAgICAgZXhwZWN0KGdldFBhbmVsVGl0bGUocGdCcm93 c2VyKSkKLSAgICAgICAgICAudG9FcXVhbCgnZGIgbGFiZWwvc29tZSB1c2VyIG5hbWVAc2VydmVy IGxhYmVsJyk7Ci0gICAgICB9KTsKLSAgICB9KTsKLSAgfSk7Ci19KTsKZGlmZiAtLWdpdCBhL3dl Yi9yZWdyZXNzaW9uL2phdmFzY3JpcHQvZGF0YWdyaWQvc2hvd19kYXRhX3NwZWMuanMgYi93ZWIv cmVncmVzc2lvbi9qYXZhc2NyaXB0L2RhdGFncmlkL3Nob3dfZGF0YV9zcGVjLmpzCmRlbGV0ZWQg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3OWY1Njk2YjMuLjAwMDAwMDAwMAotLS0gYS93ZWIvcmVn cmVzc2lvbi9qYXZhc2NyaXB0L2RhdGFncmlkL3Nob3dfZGF0YV9zcGVjLmpzCisrKyAvZGV2L251 bGwKQEAgLTEsMTY3ICswLDAgQEAKLS8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLS8vCi0vLyBwZ0FkbWluIDQgLSBQb3N0Z3JlU1FM IFRvb2xzCi0vLwotLy8gQ29weXJpZ2h0IChDKSAyMDEzIC0gMjAyMiwgVGhlIHBnQWRtaW4gRGV2 ZWxvcG1lbnQgVGVhbQotLy8gVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciB0aGUgUG9z dGdyZVNRTCBMaWNlbmNlCi0vLwotLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLQotaW1wb3J0IHtzaG93RGF0YUdyaWR9IGZyb20g Jy4uLy4uLy4uL3BnYWRtaW4vdG9vbHMvZGF0YWdyaWQvc3RhdGljL2pzL3Nob3dfZGF0YSc7Ci1p bXBvcnQge1RyZWVGYWtlfSBmcm9tICcuLi90cmVlL3RyZWVfZmFrZSc7Ci1pbXBvcnQge1RyZWVO b2RlfSBmcm9tICcuLi8uLi8uLi9wZ2FkbWluL3N0YXRpYy9qcy90cmVlL3RyZWVfbm9kZXMnOwot aW1wb3J0IHtwZ0Jyb3dzZXJ9IGZyb20gJ3BnYWRtaW4uYnJvd3Nlci5wcmVmZXJlbmNlcyc7Ci1p bXBvcnQgTm90aWZ5IGZyb20gJy4uLy4uLy4uL3BnYWRtaW4vc3RhdGljL2pzL2hlbHBlcnMvTm90 aWZpZXInOwotCi1jb25zdCBjb250ZXh0ID0gZGVzY3JpYmU7Ci0KLXZhciBkdW1teV9jYWNoZSA9 IFsKLSAgewotICAgIGlkOiAxLAotICAgIG1pZDogMSwKLSAgICBtb2R1bGU6J2Jyb3dzZXInLAot ICAgIG5hbWU6J3Z3X2VkdF90YWJfdGl0bGVfcGxhY2Vob2xkZXInLAotICAgIHZhbHVlOiAnJVND SEVNQSUuJVRBQkxFJS8lREFUQUJBU0UlLyVVU0VSTkFNRSVAJVNFUlZFUiUnLAotICB9LAotXTsK LQotZGVzY3JpYmUoJyNzaG93X2RhdGEnLCAoKSA9PiB7Ci0gIGxldCBkYXRhZ3JpZDsKLSAgbGV0 IGFsZXJ0aWZ5OwotICBsZXQgdHJhbnNJZCA9IDk4NzY1NDMyOwotICBiZWZvcmVFYWNoKCgpID0+ IHsKLSAgICBwZ0Jyb3dzZXIucHJlZmVyZW5jZXNfY2FjaGUgPSBkdW1teV9jYWNoZTsKLSAgICBh bGVydGlmeSA9IGphc21pbmUuY3JlYXRlU3B5T2JqKCdhbGVydGlmeScsIFsnYWxlcnQnLCAnZXJy b3InXSk7Ci0gICAgc3B5T24oTm90aWZ5LCAnZXJyb3InKTsKLSAgICBzcHlPbihOb3RpZnksICdh bGVydCcpOwotICAgIGRhdGFncmlkID0gewotICAgICAgbGF1bmNoX2dyaWQ6IGphc21pbmUuY3Jl YXRlU3B5KCdsYXVuY2hfZ3JpZCcpLAotICAgIH07Ci0gICAgcGdCcm93c2VyLk5vZGVzID0gewot ICAgICAgc2VydmVyX2dyb3VwOiB7Ci0gICAgICAgIF90eXBlOiAnc2VydmVyX2dyb3VwJywKLSAg ICAgICAgaGFzSWQ6IHRydWUsCi0gICAgICB9LAotICAgICAgc2VydmVyOiB7Ci0gICAgICAgIF90 eXBlOiAnc2VydmVyJywKLSAgICAgICAgaGFzSWQ6IHRydWUsCi0gICAgICB9LAotICAgICAgZGF0 YWJhc2U6IHsKLSAgICAgICAgX3R5cGU6ICdkYXRhYmFzZScsCi0gICAgICAgIGhhc0lkOiB0cnVl LAotICAgICAgfSwKLSAgICAgIHNjaGVtYTogewotICAgICAgICBfdHlwZTogJ3NjaGVtYScsCi0g ICAgICAgIGhhc0lkOiB0cnVlLAotICAgICAgfSwKLSAgICAgIHZpZXc6IHsKLSAgICAgICAgX3R5 cGU6ICd2aWV3JywKLSAgICAgICAgaGFzSWQ6IHRydWUsCi0gICAgICB9LAotICAgICAgY2F0YWxv ZzogewotICAgICAgICBfdHlwZTogJ2NhdGFsb2cnLAotICAgICAgICBoYXNJZDogdHJ1ZSwKLSAg ICAgIH0sCi0gICAgfTsKLSAgICBwZ0Jyb3dzZXIudHJlZSA9IG5ldyBUcmVlRmFrZShwZ0Jyb3dz ZXIpOwotICAgIGNvbnN0IHBhcmVudCA9IHBnQnJvd3Nlci50cmVlLmFkZE5ld05vZGUoJ3BhcmVu dCcsIHtfdHlwZTogJ3BhcmVudCd9LCBbXSk7Ci0gICAgY29uc3Qgc2VydmVyR3JvdXAxID0gbmV3 IFRyZWVOb2RlKCdzZXJ2ZXJfZ3JvdXAxJywgewotICAgICAgX3R5cGU6ICdzZXJ2ZXJfZ3JvdXAn LAotICAgICAgX2lkOiAxLAotICAgIH0pOwotICAgIHBnQnJvd3Nlci50cmVlLmFkZENoaWxkKHBh cmVudCwgc2VydmVyR3JvdXAxKTsKLQotICAgIGNvbnN0IHNlcnZlcjEgPSBuZXcgVHJlZU5vZGUo J3NlcnZlcjEnLCB7Ci0gICAgICBfdHlwZTogJ3NlcnZlcicsCi0gICAgICBsYWJlbDogJ3NlcnZl cjEnLAotICAgICAgc2VydmVyX3R5cGU6ICdwZycsCi0gICAgICBfaWQ6IDIsCi0gICAgICB1c2Vy OiB7bmFtZTogJ3NvbWV1c2VyJ30sCi0gICAgfSwgWydwYXJlbnQnLCAnc2VydmVyX2dyb3VwMSdd KTsKLSAgICBwZ0Jyb3dzZXIudHJlZS5hZGRDaGlsZChzZXJ2ZXJHcm91cDEsIHNlcnZlcjEpOwot Ci0gICAgY29uc3QgZGF0YWJhc2UxID0gbmV3IFRyZWVOb2RlKCdkYXRhYmFzZTEnLCB7Ci0gICAg ICBfdHlwZTogJ2RhdGFiYXNlJywKLSAgICAgIGxhYmVsOiAnZGF0YWJhc2UxJywKLSAgICAgIF9p ZDogMywKLSAgICB9LCBbJ3BhcmVudCcsICdzZXJ2ZXJfZ3JvdXAxJywgJ3NlcnZlcjEnXSk7Ci0g ICAgcGdCcm93c2VyLnRyZWUuYWRkQ2hpbGQoc2VydmVyMSwgZGF0YWJhc2UxKTsKLQotICAgIGNv bnN0IHNjaGVtYTEgPSBuZXcgVHJlZU5vZGUoJ3NjaGVtYTEnLCB7Ci0gICAgICBfdHlwZTogJ3Nj aGVtYScsCi0gICAgICBsYWJlbDogJ3NjaGVtYTEnLAotICAgICAgX2lkOiA0LAotICAgIH0pOwot ICAgIHBnQnJvd3Nlci50cmVlLmFkZENoaWxkKGRhdGFiYXNlMSwgc2NoZW1hMSk7Ci0KLSAgICBj b25zdCB2aWV3MSA9IG5ldyBUcmVlTm9kZSgndmlldzEnLCB7Ci0gICAgICBfdHlwZTogJ3ZpZXcn LAotICAgICAgbGFiZWw6ICd2aWV3MScsCi0gICAgICBfaWQ6IDUsCi0gICAgfSwgWydwYXJlbnQn LCAnc2VydmVyX2dyb3VwMScsICdzZXJ2ZXIxJywgJ2RhdGFiYXNlMSddKTsKLSAgICBwZ0Jyb3dz ZXIudHJlZS5hZGRDaGlsZChkYXRhYmFzZTEsIHZpZXcxKTsKLQotICAgIGNvbnN0IGNhdGFsb2cx ID0gbmV3IFRyZWVOb2RlKCdjYXRhbG9nMScsIHsKLSAgICAgIF90eXBlOiAnY2F0YWxvZycsCi0g ICAgICBsYWJlbDogJ2NhdGFsb2cxJywKLSAgICAgIF9pZDogNiwKLSAgICB9LCBbJ3BhcmVudCcs ICdzZXJ2ZXJfZ3JvdXAxJywgJ3NlcnZlcjEnLCAnZGF0YWJhc2UxJ10pOwotICAgIHBnQnJvd3Nl ci50cmVlLmFkZENoaWxkKGRhdGFiYXNlMSwgY2F0YWxvZzEpOwotICB9KTsKLQotICBjb250ZXh0 KCdjYW5ub3QgZmluZCB0aGUgdHJlZSBub2RlJywgKCkgPT4gewotICAgIGl0KCdkb2VzIG5vdCBj cmVhdGUgYSB0cmFuc2FjdGlvbicsICgpID0+IHsKLSAgICAgIHNob3dEYXRhR3JpZChkYXRhZ3Jp ZCwgcGdCcm93c2VyLCBhbGVydGlmeSwge30sIFt7aWQ6ICcxMCd9XSwgdHJhbnNJZCk7Ci0gICAg ICBleHBlY3QoZGF0YWdyaWQubGF1bmNoX2dyaWQpLm5vdC50b0hhdmVCZWVuQ2FsbGVkKCk7Ci0g ICAgfSk7Ci0KLSAgICBpdCgnZGlzcGxheSBhbGVydCcsICgpID0+IHsKLSAgICAgIHNob3dEYXRh R3JpZChkYXRhZ3JpZCwgcGdCcm93c2VyLCBhbGVydGlmeSwge30sIFt7aWQ6ICcxMCd9XSwgdHJh bnNJZCk7Ci0gICAgICBleHBlY3QoTm90aWZ5LmFsZXJ0KS50b0hhdmVCZWVuQ2FsbGVkV2l0aCgK LSAgICAgICAgJ0RhdGEgR3JpZCBFcnJvcicsCi0gICAgICAgICdObyBvYmplY3Qgc2VsZWN0ZWQu JwotICAgICAgKTsKLSAgICB9KTsKLSAgfSk7Ci0KLSAgY29udGV4dCgnY3VycmVudCBub2RlIGlz IG5vdCB1bmRlcm5lYXRoIGEgc2VydmVyJywgKCkgPT4gewotICAgIGl0KCdkb2VzIG5vdCBjcmVh dGUgYSB0cmFuc2FjdGlvbicsICgpID0+IHsKLSAgICAgIHNob3dEYXRhR3JpZChkYXRhZ3JpZCwg cGdCcm93c2VyLCBhbGVydGlmeSwge30sIFt7aWQ6ICdwYXJlbnQnfV0sIHRyYW5zSWQpOwotICAg ICAgZXhwZWN0KGRhdGFncmlkLmxhdW5jaF9ncmlkKS5ub3QudG9IYXZlQmVlbkNhbGxlZCgpOwot ICAgIH0pOwotICB9KTsKLQotICBjb250ZXh0KCdjdXJyZW50IG5vZGUgaXMgbm90IHVuZGVybmVh dGggYSBzY2hlbWEgb3IgdmlldyBvciBjYXRhbG9nJywgKCkgPT4gewotICAgIGl0KCdkb2VzIG5v dCBjcmVhdGUgYSB0cmFuc2FjdGlvbicsICgpID0+IHsKLSAgICAgIHNob3dEYXRhR3JpZChkYXRh Z3JpZCwgcGdCcm93c2VyLCBhbGVydGlmeSwge30sIFt7aWQ6ICdkYXRhYmFzZTEnfV0sIHRyYW5z SWQpOwotICAgICAgZXhwZWN0KGRhdGFncmlkLmxhdW5jaF9ncmlkKS5ub3QudG9IYXZlQmVlbkNh bGxlZCgpOwotICAgIH0pOwotICB9KTsKLQotICBjb250ZXh0KCdjdXJyZW50IG5vZGUgaXMgdW5k ZXJuZWF0aCBhIHNjaGVtYScsICgpID0+IHsKLSAgICBpdCgnZG9lcyBub3QgY3JlYXRlIGEgdHJh bnNhY3Rpb24nLCAoKSA9PiB7Ci0gICAgICBzaG93RGF0YUdyaWQoZGF0YWdyaWQsIHBnQnJvd3Nl ciwgYWxlcnRpZnksIHttbnVpZDogMTF9LCBbe2lkOiAnc2NoZW1hMSd9XSwgdHJhbnNJZCk7Ci0g ICAgICBleHBlY3QoZGF0YWdyaWQubGF1bmNoX2dyaWQpLm5vdC50b0hhdmVCZWVuQ2FsbGVkKCk7 Ci0gICAgfSk7Ci0gIH0pOwotCi0gIGNvbnRleHQoJ2N1cnJlbnQgbm9kZSBpcyB1bmRlcm5lYXRo IGEgdmlldycsICgpID0+IHsKLSAgICBpdCgnZG9lcyBub3QgY3JlYXRlIGEgdHJhbnNhY3Rpb24n LCAoKSA9PiB7Ci0gICAgICBzaG93RGF0YUdyaWQoZGF0YWdyaWQsIHBnQnJvd3NlciwgYWxlcnRp ZnksIHttbnVpZDogMTF9LCBbe2lkOiAndmlldzEnfV0sIHRyYW5zSWQpOwotCi0gICAgICBleHBl Y3QoZGF0YWdyaWQubGF1bmNoX2dyaWQpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKAotICAgICAgICA5 ODc2NTQzMiwKLSAgICAgICAgJy9wYW5lbC85ODc2NTQzMj9pc19xdWVyeV90b29sPWZhbHNlJmNt ZF90eXBlPTExJm9ial90eXBlPXZpZXcmb2JqX2lkPTUmc2dpZD0xJnNpZD0yJmRpZD0zJnNlcnZl cl90eXBlPXBnJywKLSAgICAgICAgZmFsc2UsCi0gICAgICAgICd2aWV3MS52aWV3MS9kYXRhYmFz ZTEvc29tZXVzZXJAc2VydmVyMScKLSAgICAgICk7Ci0gICAgfSk7Ci0gIH0pOwotCi0gIGNvbnRl eHQoJ2N1cnJlbnQgbm9kZSBpcyB1bmRlcm5lYXRoIGEgY2F0YWxvZycsICgpID0+IHsKLSAgICBp dCgnZG9lcyBub3QgY3JlYXRlIGEgdHJhbnNhY3Rpb24nLCAoKSA9PiB7Ci0gICAgICBzaG93RGF0 YUdyaWQoZGF0YWdyaWQsIHBnQnJvd3NlciwgYWxlcnRpZnksIHttbnVpZDogMTF9LCBbe2lkOiAn Y2F0YWxvZzEnfV0sIHRyYW5zSWQpOwotICAgICAgZXhwZWN0KGRhdGFncmlkLmxhdW5jaF9ncmlk KS5ub3QudG9IYXZlQmVlbkNhbGxlZCgpOwotICAgIH0pOwotICB9KTsKLX0pOwpkaWZmIC0tZ2l0 IGEvd2ViL3JlZ3Jlc3Npb24vamF2YXNjcmlwdC9kYXRhZ3JpZC9zaG93X3F1ZXJ5X3Rvb2xfc3Bl Yy5qcyBiL3dlYi9yZWdyZXNzaW9uL2phdmFzY3JpcHQvZGF0YWdyaWQvc2hvd19xdWVyeV90b29s X3NwZWMuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDVjYjY3N2QxZi4uMDAwMDAw MDAwCi0tLSBhL3dlYi9yZWdyZXNzaW9uL2phdmFzY3JpcHQvZGF0YWdyaWQvc2hvd19xdWVyeV90 b29sX3NwZWMuanMKKysrIC9kZXYvbnVsbApAQCAtMSwxMzIgKzAsMCBAQAotLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwotLy8KLS8v IHBnQWRtaW4gNCAtIFBvc3RncmVTUUwgVG9vbHMKLS8vCi0vLyBDb3B5cmlnaHQgKEMpIDIwMTMg LSAyMDIyLCBUaGUgcGdBZG1pbiBEZXZlbG9wbWVudCBUZWFtCi0vLyBUaGlzIHNvZnR3YXJlIGlz IHJlbGVhc2VkIHVuZGVyIHRoZSBQb3N0Z3JlU1FMIExpY2VuY2UKLS8vCi0vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwotCi1pbXBv cnQge1RyZWVGYWtlfSBmcm9tICcuLi90cmVlL3RyZWVfZmFrZSc7Ci1pbXBvcnQge3Nob3dRdWVy eVRvb2x9IGZyb20gJy4uLy4uLy4uL3BnYWRtaW4vdG9vbHMvZGF0YWdyaWQvc3RhdGljL2pzL3No b3dfcXVlcnlfdG9vbCc7Ci1pbXBvcnQge1RyZWVOb2RlfSBmcm9tICcuLi8uLi8uLi9wZ2FkbWlu L3N0YXRpYy9qcy90cmVlL3RyZWVfbm9kZXMnOwotaW1wb3J0IHtwZ0Jyb3dzZXJ9IGZyb20gJ3Bn YWRtaW4uYnJvd3Nlci5wcmVmZXJlbmNlcyc7Ci1pbXBvcnQgTm90aWZ5IGZyb20gJy4uLy4uLy4u L3BnYWRtaW4vc3RhdGljL2pzL2hlbHBlcnMvTm90aWZpZXInOwotCi1jb25zdCBjb250ZXh0ID0g ZGVzY3JpYmU7Ci0KLXZhciBkdW1teV9jYWNoZSA9IFsKLSAgewotICAgIGlkOiAxLAotICAgIG1p ZDogMSwKLSAgICBtb2R1bGU6J2Jyb3dzZXInLAotICAgIG5hbWU6J3F0X3RhYl90aXRsZV9wbGFj ZWhvbGRlcicsCi0gICAgdmFsdWU6ICclREFUQUJBU0UlLyVVU0VSTkFNRSVAJVNFUlZFUiUnLAot ICB9LAotXTsKLQotZGVzY3JpYmUoJyNzaG93UXVlcnlUb29sJywgKCkgPT4gewotICBsZXQgcXVl cnlUb29sOwotICBsZXQgdHJhbnNJZCA9IDk4NzY1NDMyOwotICBiZWZvcmVFYWNoKCgpID0+IHsK LSAgICBwZ0Jyb3dzZXIucHJlZmVyZW5jZXNfY2FjaGUgPSBkdW1teV9jYWNoZTsKLSAgICBzcHlP bihOb3RpZnksICdhbGVydCcpOwotICAgIHF1ZXJ5VG9vbCA9IHsKLSAgICAgIGxhdW5jaF9ncmlk OiBqYXNtaW5lLmNyZWF0ZVNweSgnbGF1bmNoX2dyaWQnKSwKLSAgICB9OwotICAgIHBnQnJvd3Nl ci5Ob2RlcyA9IHsKLSAgICAgIHNlcnZlcl9ncm91cDogewotICAgICAgICBfdHlwZTogJ3NlcnZl cl9ncm91cCcsCi0gICAgICAgIGhhc0lkOiB0cnVlLAotICAgICAgfSwKLSAgICAgIHNlcnZlcjog ewotICAgICAgICBfdHlwZTogJ3NlcnZlcicsCi0gICAgICAgIGhhc0lkOiB0cnVlLAotICAgICAg fSwKLSAgICAgIGRhdGFiYXNlOiB7Ci0gICAgICAgIF90eXBlOiAnZGF0YWJhc2UnLAotICAgICAg ICBoYXNJZDogdHJ1ZSwKLSAgICAgIH0sCi0gICAgfTsKLSAgICBwZ0Jyb3dzZXIudHJlZSA9IG5l dyBUcmVlRmFrZShwZ0Jyb3dzZXIpOwotCi0gICAgY29uc3QgcGFyZW50ID0gcGdCcm93c2VyLnRy ZWUuYWRkTmV3Tm9kZSgncGFyZW50Jywge190eXBlOiAncGFyZW50J30pOwotICAgIGNvbnN0IHNl cnZlckdyb3VwMSA9ICBuZXcgVHJlZU5vZGUoJ3NlcnZlcl9ncm91cDEnLCB7Ci0gICAgICBfdHlw ZTogJ3NlcnZlcl9ncm91cCcsCi0gICAgICBfaWQ6IDEsCi0gICAgfSwgWydwYXJlbnQnXSk7Ci0g ICAgcGdCcm93c2VyLnRyZWUuYWRkQ2hpbGQocGFyZW50LCBzZXJ2ZXJHcm91cDEpOwotCi0gICAg Y29uc3Qgc2VydmVyMSA9IG5ldyBUcmVlTm9kZSgnc2VydmVyMScsIHsKLSAgICAgIF90eXBlOiAn c2VydmVyJywKLSAgICAgIGxhYmVsOiAnc2VydmVyMScsCi0gICAgICBzZXJ2ZXJfdHlwZTogJ3Bn JywKLSAgICAgIF9pZDogMiwKLSAgICAgIHVzZXI6IHtuYW1lOiAnc29tZXVzZXInfSwKLSAgICAg IGRiOiAnb3RoZXJkYmxhYmVsJywKLSAgICB9KTsKLSAgICBwZ0Jyb3dzZXIudHJlZS5hZGRDaGls ZChzZXJ2ZXJHcm91cDEsIHNlcnZlcjEpOwotCi0gICAgY29uc3QgZGF0YWJhc2UxID0gbmV3ICBU cmVlTm9kZSgnZGF0YWJhc2UxJywgewotICAgICAgX3R5cGU6ICdkYXRhYmFzZScsCi0gICAgICBs YWJlbDogJ2RhdGFiYXNlMScsCi0gICAgICBfaWQ6IDMsCi0gICAgfSk7Ci0gICAgcGdCcm93c2Vy LnRyZWUuYWRkQ2hpbGQoc2VydmVyMSwgZGF0YWJhc2UxKTsKLSAgfSk7Ci0KLSAgY29udGV4dCgn Y2Fubm90IGZpbmQgdGhlIHRyZWUgbm9kZScsICgpID0+IHsKLSAgICBiZWZvcmVFYWNoKCgpID0+ IHsKLSAgICAgIHNob3dRdWVyeVRvb2wocXVlcnlUb29sLCBwZ0Jyb3dzZXIsICcnLCBbe2lkOiAn MTAnfV0sIHRyYW5zSWQpOwotICAgIH0pOwotICAgIGl0KCdkb2VzIG5vdCBjcmVhdGUgYSB0cmFu c2FjdGlvbicsICgpID0+IHsKLSAgICAgIGV4cGVjdChxdWVyeVRvb2wubGF1bmNoX2dyaWQpLm5v dC50b0hhdmVCZWVuQ2FsbGVkKCk7Ci0gICAgfSk7Ci0KLSAgICBpdCgnZGlzcGxheSBhbGVydCcs ICgpID0+IHsKLSAgICAgIGV4cGVjdChOb3RpZnkuYWxlcnQpLnRvSGF2ZUJlZW5DYWxsZWRXaXRo KAotICAgICAgICAnUXVlcnkgVG9vbCBFcnJvcicsCi0gICAgICAgICdObyBvYmplY3Qgc2VsZWN0 ZWQuJwotICAgICAgKTsKLSAgICB9KTsKLSAgfSk7Ci0KLSAgY29udGV4dCgnY3VycmVudCBub2Rl IGlzIG5vdCB1bmRlcm5lYXRoIGEgc2VydmVyJywgKCkgPT4gewotICAgIGl0KCdkb2VzIG5vdCBj cmVhdGUgYSB0cmFuc2FjdGlvbicsICgpID0+IHsKLSAgICAgIHNob3dRdWVyeVRvb2wocXVlcnlU b29sLCBwZ0Jyb3dzZXIsICcnLCBbe2lkOiAncGFyZW50J31dLCB0cmFuc0lkKTsKLSAgICAgIGV4 cGVjdChxdWVyeVRvb2wubGF1bmNoX2dyaWQpLm5vdC50b0hhdmVCZWVuQ2FsbGVkKCk7Ci0gICAg fSk7Ci0KLSAgICBpdCgnbm8gYWxlcnQgaXMgZGlzcGxheWVkJywgKCkgPT4gewotICAgICAgZXhw ZWN0KE5vdGlmeS5hbGVydCkubm90LnRvSGF2ZUJlZW5DYWxsZWQoKTsKLSAgICB9KTsKLSAgfSk7 Ci0KLSAgY29udGV4dCgnY3VycmVudCBub2RlIGlzIHVuZGVybmVhdGggYSBzZXJ2ZXInLCAoKSA9 PiB7Ci0gICAgY29udGV4dCgnY3VycmVudCBub2RlIGlzIG5vdCB1bmRlcm5lYXRoIGEgZGF0YWJh c2UnLCAoKSA9PiB7Ci0gICAgICBpdCgnY3JlYXRlcyBhIHRyYW5zYWN0aW9uJywgKCkgPT4gewot ICAgICAgICBzaG93UXVlcnlUb29sKHF1ZXJ5VG9vbCwgcGdCcm93c2VyLCAnaHR0cDovL3NvbWV1 cmwnLCBbe2lkOiAnc2VydmVyMSd9XSwgdHJhbnNJZCk7Ci0gICAgICAgIGV4cGVjdChxdWVyeVRv b2wubGF1bmNoX2dyaWQpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKAotICAgICAgICAgIDk4NzY1NDMy LAotICAgICAgICAgICcvcGFuZWwvOTg3NjU0MzI/aXNfcXVlcnlfdG9vbD10cnVlJnNnaWQ9MSZz aWQ9MiZzZXJ2ZXJfdHlwZT1wZycsCi0gICAgICAgICAgdHJ1ZSwKLSAgICAgICAgICAnb3RoZXJk YmxhYmVsL3NvbWV1c2VyQHNlcnZlcjEnLAotICAgICAgICAgICdodHRwOi8vc29tZXVybCcKLSAg ICAgICAgKTsKLSAgICAgIH0pOwotICAgIH0pOwotCi0gICAgY29udGV4dCgnY3VycmVudCBub2Rl IGlzIHVuZGVybmVhdGggYSBkYXRhYmFzZScsICgpID0+IHsKLSAgICAgIGl0KCdjcmVhdGVzIGEg dHJhbnNhY3Rpb24nLCAoKSA9PiB7Ci0gICAgICAgIHNob3dRdWVyeVRvb2wocXVlcnlUb29sLCBw Z0Jyb3dzZXIsICdodHRwOi8vc29tZXVybCcsIFt7aWQ6ICdkYXRhYmFzZTEnfV0sIHRyYW5zSWQp OwotICAgICAgICBleHBlY3QocXVlcnlUb29sLmxhdW5jaF9ncmlkKS50b0hhdmVCZWVuQ2FsbGVk V2l0aCgKLSAgICAgICAgICA5ODc2NTQzMiwKLSAgICAgICAgICAnL3BhbmVsLzk4NzY1NDMyP2lz X3F1ZXJ5X3Rvb2w9dHJ1ZSZzZ2lkPTEmc2lkPTImc2VydmVyX3R5cGU9cGcmZGlkPTMnLAotICAg ICAgICAgIHRydWUsCi0gICAgICAgICAgJ2RhdGFiYXNlMS9zb21ldXNlckBzZXJ2ZXIxJywKLSAg ICAgICAgICAnaHR0cDovL3NvbWV1cmwnCi0gICAgICAgICk7Ci0gICAgICB9KTsKLSAgICB9KTsK LSAgfSk7Ci19KTsKZGlmZiAtLWdpdCBhL3dlYi9yZWdyZXNzaW9uL2phdmFzY3JpcHQvZXJkL3Vp X2NvbXBvbmVudHMvYm9keV93aWRnZXRfc3BlYy5qcyBiL3dlYi9yZWdyZXNzaW9uL2phdmFzY3Jp cHQvZXJkL3VpX2NvbXBvbmVudHMvYm9keV93aWRnZXRfc3BlYy5qcwppbmRleCAwNzM4ZTdmODIu LjliMTViZTBhYiAxMDA2NDQKLS0tIGEvd2ViL3JlZ3Jlc3Npb24vamF2YXNjcmlwdC9lcmQvdWlf Y29tcG9uZW50cy9ib2R5X3dpZGdldF9zcGVjLmpzCisrKyBiL3dlYi9yZWdyZXNzaW9uL2phdmFz Y3JpcHQvZXJkL3VpX2NvbXBvbmVudHMvYm9keV93aWRnZXRfc3BlYy5qcwpAQCAtOSw3ICs5LDcg QEAgaW1wb3J0IEVSRENvcmUgZnJvbSAncGdhZG1pbi50b29scy5lcmQvZXJkX3Rvb2wvRVJEQ29y ZSc7CiBpbXBvcnQgKiBhcyBlcmRNb2R1bGUgZnJvbSAncGdhZG1pbi50b29scy5lcmQvZXJkX21v ZHVsZSc7CiBpbXBvcnQgZXJkUHJlZiBmcm9tICcuL2VyZF9wcmVmZXJlbmNlcyc7CiBpbXBvcnQg Qm9keVdpZGdldCBmcm9tICdwZ2FkbWluLnRvb2xzLmVyZC9lcmRfdG9vbC91aV9jb21wb25lbnRz L0JvZHlXaWRnZXQnOwotaW1wb3J0ICogYXMgRVJEU3FsVG9vbCBmcm9tICd0b29scy9kYXRhZ3Jp ZC9zdGF0aWMvanMvc2hvd19xdWVyeV90b29sJzsKK2ltcG9ydCAqIGFzIEVSRFNxbFRvb2wgZnJv bSAndG9vbHMvc3FsZWRpdG9yL3N0YXRpYy9qcy9zaG93X3F1ZXJ5X3Rvb2wnOwogaW1wb3J0IHsg RmFrZUxpbmssIEZha2VOb2RlIH0gZnJvbSAnLi4vZmFrZV9pdGVtJzsKIGltcG9ydCBOb3RpZnkg ZnJvbSAnLi4vLi4vLi4vLi4vcGdhZG1pbi9zdGF0aWMvanMvaGVscGVycy9Ob3RpZmllcic7CiAK ZGlmZiAtLWdpdCBhL3dlYi9yZWdyZXNzaW9uL2phdmFzY3JpcHQvZmFrZV9lbmRwb2ludHMuanMg Yi93ZWIvcmVncmVzc2lvbi9qYXZhc2NyaXB0L2Zha2VfZW5kcG9pbnRzLmpzCmluZGV4IGRkZDUw ZmI4Yi4uZmQ1ZWMxNzVmIDEwMDY0NAotLS0gYS93ZWIvcmVncmVzc2lvbi9qYXZhc2NyaXB0L2Zh a2VfZW5kcG9pbnRzLmpzCisrKyBiL3dlYi9yZWdyZXNzaW9uL2phdmFzY3JpcHQvZmFrZV9lbmRw b2ludHMuanMKQEAgLTE0LDExICsxNCwxMSBAQCBkZWZpbmUoZnVuY3Rpb24gKCkgewogICAgICdz cWxlZGl0b3IucXVlcnlfdG9vbF9zdGFydCc6ICcvc3FsZWRpdG9yL3F1ZXJ5X3Rvb2wvc3RhcnQv PHBhdGg6dHJhbnNfaWQ+JywKICAgICAnYmFja3VwLmNyZWF0ZV9zZXJ2ZXJfam9iJzogICcvYmFj a3VwL2pvYi88aW50OnNpZD4nLAogICAgICdiYWNrdXAuY3JlYXRlX29iamVjdF9qb2InOiAgJy9i YWNrdXAvam9iLzxpbnQ6c2lkPi9vYmplY3QnLAotICAgICdkYXRhZ3JpZC5pbml0aWFsaXplX2Rh dGFncmlkJzogJy9pbml0aWFsaXplL2RhdGFncmlkLzxpbnQ6Y21kX3R5cGU+LzxvYmpfdHlwZT4v PGludDpzZ2lkPi88aW50OnNpZD4vPGludDpkaWQ+LzxpbnQ6b2JqX2lkPicsCi0gICAgJ2RhdGFn cmlkLmluaXRpYWxpemVfcXVlcnlfdG9vbCc6ICcvaW5pdGlhbGl6ZS9xdWVyeV90b29sLzxpbnQ6 c2dpZD4vPGludDpzaWQ+JywKLSAgICAnZGF0YWdyaWQuaW5pdGlhbGl6ZV9xdWVyeV90b29sX3dp dGhfZGlkJzogJy9pbml0aWFsaXplL3F1ZXJ5X3Rvb2wvPGludDpzZ2lkPi88aW50OnNpZD4vPGlu dDpkaWQ+JywKKyAgICAnc3FsZWRpdG9yLmluaXRpYWxpemVfdmlld2RhdGEnOiAnL2luaXRpYWxp emUvc3FsZWRpdG9yLzxpbnQ6Y21kX3R5cGU+LzxvYmpfdHlwZT4vPGludDpzZ2lkPi88aW50OnNp ZD4vPGludDpkaWQ+LzxpbnQ6b2JqX2lkPicsCisgICAgJ3NxbGVkaXRvci5pbml0aWFsaXplX3Nx bGVkaXRvcic6ICcvaW5pdGlhbGl6ZS9zcWxlZGl0b3IvPGludDpzZ2lkPi88aW50OnNpZD4nLAor ICAgICdzcWxlZGl0b3IuaW5pdGlhbGl6ZV9zcWxlZGl0b3Jfd2l0aF9kaWQnOiAnL2luaXRpYWxp emUvc3FsZWRpdG9yLzxpbnQ6c2dpZD4vPGludDpzaWQ+LzxpbnQ6ZGlkPicsCiAgICAgJ3Jlc3Rv cmUuY3JlYXRlX2pvYic6ICcvcmVzdG9yZS9qb2IvPGludDpzaWQ+JywKLSAgICAnZGF0YWdyaWQu cGFuZWwnOiAnL3BhbmVsLzxpbnQ6dHJhbnNfaWQ+JywKKyAgICAnc3FsZWRpdG9yLnBhbmVsJzog Jy9wYW5lbC88aW50OnRyYW5zX2lkPicsCiAgICAgJ3NlYXJjaF9vYmplY3RzLnR5cGVzJzogJy9z ZWFyY2hfb2JqZWN0cy90eXBlcy88aW50OnNpZD4vPGludDpkaWQ+JywKICAgICAnc2VhcmNoX29i amVjdHMuc2VhcmNoJzogJy9zZWFyY2hfb2JqZWN0cy9zZWFyY2gvPGludDpzaWQ+LzxpbnQ6ZGlk PicsCiAgICAgJ2Rhc2hib2FyZC5kYXNoYm9hcmRfc3RhdHMnOiAnL2Rhc2hib2FyZC9kYXNoYm9h cmRfc3RhdHMnLApkaWZmIC0tZ2l0IGEvd2ViL3JlZ3Jlc3Npb24vamF2YXNjcmlwdC9nZW9tZXRy eV92aWV3ZXIvZ2VvbWV0cnlfdmlld2VyX3NwZWMuanMgYi93ZWIvcmVncmVzc2lvbi9qYXZhc2Ny aXB0L2dlb21ldHJ5X3ZpZXdlci9nZW9tZXRyeV92aWV3ZXJfc3BlYy5qcwpkZWxldGVkIGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMjcxMGViMWUwLi4wMDAwMDAwMDAKLS0tIGEvd2ViL3JlZ3Jlc3Np b24vamF2YXNjcmlwdC9nZW9tZXRyeV92aWV3ZXIvZ2VvbWV0cnlfdmlld2VyX3NwZWMuanMKKysr IC9kZXYvbnVsbApAQCAtMSwyMzIgKzAsMCBAQAotLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwotLy8KLS8vIHBnQWRtaW4gNCAtIFBv c3RncmVTUUwgVG9vbHMKLS8vCi0vLyBDb3B5cmlnaHQgKEMpIDIwMTMgLSAyMDIyLCBUaGUgcGdB ZG1pbiBEZXZlbG9wbWVudCBUZWFtCi0vLyBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVy IHRoZSBQb3N0Z3JlU1FMIExpY2VuY2UKLS8vCi0vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwotCi1pbXBvcnQgR2VvbWV0cnlWaWV3 ZXIgZnJvbSAnc291cmNlcy9zcWxlZGl0b3IvZ2VvbWV0cnlfdmlld2VyJzsKLWltcG9ydCB7R2Vv bWV0cnl9IGZyb20gJ3dreCc7Ci0KLWRlc2NyaWJlKCdnZW9tZXRyeSB2aWV3ZXIgdGVzdCcsIGZ1 bmN0aW9uICgpIHsKLQotICBkZXNjcmliZSgnZ2VvbWV0cnkgdmlld2VyIGFkZCBoZWFkZXIgYnV0 dG9uIHRlc3QnLCBmdW5jdGlvbiAoKSB7Ci0gICAgbGV0IGFkZF9idXR0b24gPSBHZW9tZXRyeVZp ZXdlci5hZGRfaGVhZGVyX2J1dHRvbjsKLSAgICBpdCgnc2hvdWxkIGFkZCBidXR0b24gZm9yIGdl b2dyYXBoeSB0eXBlJywgZnVuY3Rpb24gKCkgewotICAgICAgbGV0IGNvbHVtbkRlZiA9IHsKLSAg ICAgICAgY29sdW1uX3R5cGVfaW50ZXJuYWw6ICdnZW9ncmFwaHknLAotICAgICAgfTsKLSAgICAg IGFkZF9idXR0b24oY29sdW1uRGVmKTsKLSAgICAgIGV4cGVjdChjb2x1bW5EZWYuaGVhZGVyKS50 b0JlRGVmaW5lZCgpOwotICAgIH0pOwotCi0gICAgaXQoJ3Nob3VsZCBhZGQgYnV0dG9uIGZvciBn ZW9tZXRyeSB0eXBlJywgZnVuY3Rpb24gKCkgewotICAgICAgbGV0IGNvbHVtbkRlZiA9IHsKLSAg ICAgICAgY29sdW1uX3R5cGVfaW50ZXJuYWw6ICdnZW9tZXRyeScsCi0gICAgICB9OwotICAgICAg YWRkX2J1dHRvbihjb2x1bW5EZWYpOwotICAgICAgZXhwZWN0KGNvbHVtbkRlZi5oZWFkZXIpLnRv QmVEZWZpbmVkKCk7Ci0gICAgfSk7Ci0gIH0pOwotCi0gIGRlc2NyaWJlKCdnZW9tZXRyeSB2aWV3 ZXIgcmVuZXIgZ2VvbWV0cnkgdGVzdCcsIGZ1bmN0aW9uICgpIHsKLQotICAgIGl0KCdzaG91bGQg Z3JvdXAgZ2VvbWV0cnkgYnkgc3JpZCcsIGZ1bmN0aW9uICgpIHsKLSAgICAgIC8vIFBPSU5UKDAg MCkKLSAgICAgIGxldCBld2tiID0gJzAxMDEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMCc7Ci0gICAgICAvLyBTUklEPTMyNjMyO1BPSU5UKDAgMCkKLSAgICAgIGxldCBld2ti MSA9ICcwMTAxMDAwMDIwNzg3RjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCc7 Ci0gICAgICBsZXQgaXRlbXMgPSBbewotICAgICAgICBpZDogMSwKLSAgICAgICAgZ2VvbTogZXdr YiwKLSAgICAgIH0sIHsKLSAgICAgICAgaWQ6IDEsCi0gICAgICAgIGdlb206IGV3a2IsCi0gICAg ICB9LCB7Ci0gICAgICAgIGlkOiAxLAotICAgICAgICBnZW9tOiBld2tiMSwKLSAgICAgIH1dOwot ICAgICAgbGV0IGNvbHVtbnMgPSBbCi0gICAgICAgIHsKLSAgICAgICAgICBjb2x1bW5fdHlwZV9p bnRlcm5hbDogJ2dlb21ldHJ5JywKLSAgICAgICAgICBmaWVsZDogJ2dlb20nLAotICAgICAgICB9 LAotICAgICAgXTsKLSAgICAgIGxldCBjb2x1bW5JbmRleCA9IDA7Ci0gICAgICBsZXQgcmVzdWx0 ID0gR2VvbWV0cnlWaWV3ZXIucGFyc2VfZGF0YShpdGVtcywgY29sdW1ucywgY29sdW1uSW5kZXgs IEdlb21ldHJ5KTsKLSAgICAgIGV4cGVjdChyZXN1bHQuZ2VvSlNPTnMubGVuZ3RoKS50b0VxdWFs KDIpOwotICAgIH0pOwotCi0KLSAgICBpdCgnc2hvdWxkIHN1cHBvcnQgZ2VvbWV0cnkgY29sbGVj dGlvbicsIGZ1bmN0aW9uICgpIHsKLSAgICAgIC8vIEdFT01FVFJZQ09MTEVDVElPTihQT0lOVCgy IDMpLExJTkVTVFJJTkcoMiAzLDMgNCkpCi0gICAgICBsZXQgZXdrYiA9ICcwMTA3MDAwMDAwMDIw MDAwMDAwMTAxMDAwMDAwMDAwMDAwMDAwMDAwMDA0MDAwMDAwMDAwMDAwMDA4NDAwMScgKwotICAg ICAgICAnMDIwMDAwMDAwMjAwMDAwMDAwMDAwMDAwMDAwMDAwNDAwMDAwMDAwMDAwMDAwODQwMDAw MDAwMDAwMDAwMDg0MDAwMDAwMDAnICsKLSAgICAgICAgJzAwMDAwMTA0MCc7Ci0gICAgICBsZXQg aXRlbXMgPSBbewotICAgICAgICBpZDogMSwKLSAgICAgICAgZ2VvbTogZXdrYiwKLSAgICAgIH1d OwotICAgICAgbGV0IGNvbHVtbnMgPSBbCi0gICAgICAgIHsKLSAgICAgICAgICBjb2x1bW5fdHlw ZV9pbnRlcm5hbDogJ2dlb21ldHJ5JywKLSAgICAgICAgICBmaWVsZDogJ2dlb20nLAotICAgICAg ICB9LAotICAgICAgXTsKLSAgICAgIGxldCBjb2x1bW5JbmRleCA9IDA7Ci0gICAgICBsZXQgcmVz dWx0ID0gR2VvbWV0cnlWaWV3ZXIucGFyc2VfZGF0YShpdGVtcywgY29sdW1ucywgY29sdW1uSW5k ZXgsIEdlb21ldHJ5KTsKLSAgICAgIGV4cGVjdChyZXN1bHQuZ2VvSlNPTnMubGVuZ3RoKS50b0Vx dWFsKDEpOwotICAgIH0pOwotCi0gICAgaXQoJ3Nob3VsZCBzdXBwb3J0IGdlb21ldHJ5IE0nLCBm dW5jdGlvbiAoKSB7Ci0gICAgICAvLyBTUklEPTQzMjY7TVVMVElQT0lOVE0oMCAwIDAsMSAyIDEp Ci0gICAgICBsZXQgZXdrYiA9ICcwMTA0MDAwMDYwRTYxMDAwMDAwMjAwMDAwMDAxMDEwMDAwNDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCcgKwotICAgICAgICAnMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAxMDEwMDAwNDAwMDAwMDAwMDAwMDBGMDNGMDAwMDAwMDAwMDAwMDA0MDAwMDAwMDAnICsK LSAgICAgICAgJzAwMDAwRjAzRic7Ci0gICAgICBsZXQgaXRlbXMgPSBbewotICAgICAgICBpZDog MSwKLSAgICAgICAgZ2VvbTogZXdrYiwKLSAgICAgIH1dOwotICAgICAgbGV0IGNvbHVtbnMgPSBb Ci0gICAgICAgIHsKLSAgICAgICAgICBjb2x1bW5fdHlwZV9pbnRlcm5hbDogJ2dlb21ldHJ5JywK LSAgICAgICAgICBmaWVsZDogJ2dlb20nLAotICAgICAgICB9LAotICAgICAgXTsKLSAgICAgIGxl dCBjb2x1bW5JbmRleCA9IDA7Ci0gICAgICBsZXQgcmVzdWx0ID0gR2VvbWV0cnlWaWV3ZXIucGFy c2VfZGF0YShpdGVtcywgY29sdW1ucywgY29sdW1uSW5kZXgsIEdlb21ldHJ5KTsKLSAgICAgIGV4 cGVjdChyZXN1bHQuZ2VvSlNPTnMubGVuZ3RoKS50b0VxdWFsKDEpOwotICAgIH0pOwotCi0gICAg aXQoJ3Nob3VsZCBzdXBwb3J0IGVtcHR5IGdlb21ldHJ5JywgZnVuY3Rpb24gKCkgewotICAgICAg Ly8gR0VPTUVUUllDT0xMRUNUSU9OIEVNUFRZCi0gICAgICBsZXQgZXdrYiA9ICcwMTA3MDAwMDAw MDAwMDAwMDAnOwotICAgICAgbGV0IGl0ZW1zID0gW3sKLSAgICAgICAgaWQ6IDEsCi0gICAgICAg IGdlb206IGV3a2IsCi0gICAgICB9XTsKLSAgICAgIGxldCBjb2x1bW5zID0gWwotICAgICAgICB7 Ci0gICAgICAgICAgY29sdW1uX3R5cGVfaW50ZXJuYWw6ICdnZW9tZXRyeScsCi0gICAgICAgICAg ZmllbGQ6ICdnZW9tJywKLSAgICAgICAgfSwKLSAgICAgIF07Ci0gICAgICBsZXQgY29sdW1uSW5k ZXggPSAwOwotICAgICAgbGV0IHJlc3VsdCA9IEdlb21ldHJ5Vmlld2VyLnBhcnNlX2RhdGEoaXRl bXMsIGNvbHVtbnMsIGNvbHVtbkluZGV4LCBHZW9tZXRyeSk7Ci0gICAgICBleHBlY3QocmVzdWx0 Lmdlb0pTT05zLmxlbmd0aCkudG9FcXVhbCgxKTsKLSAgICB9KTsKLQotCi0gICAgaXQoJ3Nob3Vs ZCBzdXBwb3J0IG1peGVkIGdlb21ldHJ5IHR5cGUnLCBmdW5jdGlvbiAoKSB7Ci0gICAgICAvLyBH RU9NRVRSWUNPTExFQ1RJT04gRU1QVFkKLSAgICAgIGxldCBld2tiID0gJzAxMDcwMDAwMDAwMDAw MDAwMCc7Ci0gICAgICAvLyBQT0lOVCgwIDApCi0gICAgICBsZXQgZXdrYjEgPSAnMDEwMTAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwJzsKLSAgICAgIC8vIFNSSUQ9NDMyNjtN VUxUSVBPSU5UTSgwIDAgMCwxIDIgMSkKLSAgICAgIGxldCBld2tiMiA9ICcwMTA0MDAwMDYwRTYx MDAwMDAwMjAwMDAwMDAxMDEwMDAwNDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCcgKwotICAg ICAgICAnMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxMDEwMDAwNDAwMDAwMDAwMDAwMDBGMDNGMDAw MDAwMDAwMDAwMDA0MDAwMDAwMDAnICsKLSAgICAgICAgJzAwMDAwRjAzRic7Ci0gICAgICBsZXQg aXRlbXMgPSBbewotICAgICAgICBpZDogMSwKLSAgICAgICAgZ2VvbTogZXdrYiwKLSAgICAgIH0s IHsKLSAgICAgICAgaWQ6IDEsCi0gICAgICAgIGdlb206IGV3a2IxLAotICAgICAgfSwgewotICAg ICAgICBpZDogMSwKLSAgICAgICAgZ2VvbTogZXdrYjIsCi0gICAgICB9XTsKLSAgICAgIGxldCBj b2x1bW5zID0gWwotICAgICAgICB7Ci0gICAgICAgICAgY29sdW1uX3R5cGVfaW50ZXJuYWw6ICdn ZW9tZXRyeScsCi0gICAgICAgICAgZmllbGQ6ICdnZW9tJywKLSAgICAgICAgfSwKLSAgICAgIF07 Ci0gICAgICBsZXQgY29sdW1uSW5kZXggPSAwOwotICAgICAgbGV0IHJlc3VsdCA9IEdlb21ldHJ5 Vmlld2VyLnBhcnNlX2RhdGEoaXRlbXMsIGNvbHVtbnMsIGNvbHVtbkluZGV4LCBHZW9tZXRyeSk7 Ci0gICAgICBleHBlY3QocmVzdWx0Lmdlb0pTT05zLmxlbmd0aCkudG9FcXVhbCgyKTsKLSAgICB9 KTsKLQotCi0gICAgaXQoJ3Nob3VsZCBub3Qgc3VwcG9ydCAzRCBnZW9tZXRyeScsIGZ1bmN0aW9u ICgpIHsKLSAgICAgIC8vIFBPSU5UKDAgMCAwKQotICAgICAgbGV0IGV3a2IgPSAnMDEwMTAwMDA4 MDAwMDAwMDAwMDAwMEYwM0YwMDAwMDAwMDAwMDBGMDNGMDAwMDAwMDAwMDAwRjAzRic7Ci0gICAg ICBsZXQgaXRlbXMgPSBbewotICAgICAgICBpZDogMSwKLSAgICAgICAgZ2VvbTogZXdrYiwKLSAg ICAgIH1dOwotICAgICAgbGV0IGNvbHVtbnMgPSBbCi0gICAgICAgIHsKLSAgICAgICAgICBjb2x1 bW5fdHlwZV9pbnRlcm5hbDogJ2dlb21ldHJ5JywKLSAgICAgICAgICBmaWVsZDogJ2dlb20nLAot ICAgICAgICB9LAotICAgICAgXTsKLSAgICAgIGxldCBjb2x1bW5JbmRleCA9IDA7Ci0gICAgICBs ZXQgcmVzdWx0ID0gR2VvbWV0cnlWaWV3ZXIucGFyc2VfZGF0YShpdGVtcywgY29sdW1ucywgY29s dW1uSW5kZXgsIEdlb21ldHJ5KTsKLSAgICAgIGV4cGVjdChyZXN1bHQuZ2VvSlNPTnMubGVuZ3Ro KS50b0VxdWFsKDApOwotICAgIH0pOwotCi0gICAgaXQoJ3Nob3VsZCBub3Qgc3VwcG9ydCAzRE0g Z2VvbWV0cnknLCBmdW5jdGlvbiAoKSB7Ci0gICAgICAvLyBQT0lOVCgwIDAgMCAwKQotICAgICAg bGV0IGV3a2IgPSAnMDEwMTAwMDBDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAnICsKLSAgICAgICAgJzAwMDAwMDAwMDAwMCc7Ci0gICAgICBsZXQg aXRlbXMgPSBbewotICAgICAgICBpZDogMSwKLSAgICAgICAgZ2VvbTogZXdrYiwKLSAgICAgIH1d OwotICAgICAgbGV0IGNvbHVtbnMgPSBbCi0gICAgICAgIHsKLSAgICAgICAgICBjb2x1bW5fdHlw ZV9pbnRlcm5hbDogJ2dlb21ldHJ5JywKLSAgICAgICAgICBmaWVsZDogJ2dlb20nLAotICAgICAg ICB9LAotICAgICAgXTsKLSAgICAgIGxldCBjb2x1bW5JbmRleCA9IDA7Ci0gICAgICBsZXQgcmVz dWx0ID0gR2VvbWV0cnlWaWV3ZXIucGFyc2VfZGF0YShpdGVtcywgY29sdW1ucywgY29sdW1uSW5k ZXgsIEdlb21ldHJ5KTsKLSAgICAgIGV4cGVjdChyZXN1bHQuZ2VvSlNPTnMubGVuZ3RoKS50b0Vx dWFsKDApOwotICAgIH0pOwotCi0gICAgaXQoJ3Nob3VsZCBub3Qgc3VwcG9ydCBUUklBTkdMRSBn ZW9tZXRyeScsIGZ1bmN0aW9uICgpIHsKLSAgICAgIC8vIFRSSUFOR0xFICgoMCAwLCAwIDksIDkg MCwgMCAwKSkKLSAgICAgIGxldCBld2tiID0gJzAxMTEwMDAwMDAwMTAwMDAwMDA0MDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwJyArCi0gICAgICAgICcwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAyMjQwMDAwMDAwMDAwMDAwMjI0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMCcgKwotICAgICAgICAnMDAwMDAwMDAwMDAwMDAwMDAwMDAwJzsKLSAgICAgIGxldCBpdGVt cyA9IFt7Ci0gICAgICAgIGlkOiAxLAotICAgICAgICBnZW9tOiBld2tiLAotICAgICAgfV07Ci0g ICAgICBsZXQgY29sdW1ucyA9IFsKLSAgICAgICAgewotICAgICAgICAgIGNvbHVtbl90eXBlX2lu dGVybmFsOiAnZ2VvbWV0cnknLAotICAgICAgICAgIGZpZWxkOiAnZ2VvbScsCi0gICAgICAgIH0s Ci0gICAgICBdOwotICAgICAgbGV0IGNvbHVtbkluZGV4ID0gMDsKLSAgICAgIGxldCByZXN1bHQg PSBHZW9tZXRyeVZpZXdlci5wYXJzZV9kYXRhKGl0ZW1zLCBjb2x1bW5zLCBjb2x1bW5JbmRleCwg R2VvbWV0cnkpOwotICAgICAgZXhwZWN0KHJlc3VsdC5nZW9KU09Ocy5sZW5ndGgpLnRvRXF1YWwo MCk7Ci0gICAgfSk7Ci0KLSAgICBpdCgnc2hvdWxkIGxpbWl0IGRhdGEgc2l6ZScsIGZ1bmN0aW9u ICgpIHsKLSAgICAgIC8vIFBPSU5UKDAgMCkKLSAgICAgIGxldCBld2tiID0gJzAxMDEwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCc7Ci0gICAgICBsZXQgaXRlbXMgPSBbXTsK LSAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgNjAwMDAwOyBpKyspIHsKLSAgICAgICAgaXRlbXMu cHVzaCh7Ci0gICAgICAgICAgaWQ6IGksCi0gICAgICAgICAgZ2VvbTogZXdrYiwKLSAgICAgICAg fSk7Ci0gICAgICB9Ci0KLSAgICAgIGxldCBjb2x1bW5zID0gWwotICAgICAgICB7Ci0gICAgICAg ICAgY29sdW1uX3R5cGVfaW50ZXJuYWw6ICdnZW9tZXRyeScsCi0gICAgICAgICAgZmllbGQ6ICdn ZW9tJywKLSAgICAgICAgfSwKLSAgICAgIF07Ci0gICAgICBsZXQgY29sdW1uSW5kZXggPSAwOwot ICAgICAgbGV0IHJlc3VsdCA9IEdlb21ldHJ5Vmlld2VyLnBhcnNlX2RhdGEoaXRlbXMsIGNvbHVt bnMsIGNvbHVtbkluZGV4LCBHZW9tZXRyeSk7Ci0gICAgICBleHBlY3QocmVzdWx0Lmdlb0pTT05z Lmxlbmd0aCkudG9CZUxlc3NUaGFuKDYwMDAwMCk7Ci0gICAgfSk7Ci0gIH0pOwotfSk7CmRpZmYg LS1naXQgYS93ZWIvcmVncmVzc2lvbi9qYXZhc2NyaXB0L2hpc3RvcnkvaGlzdG9yeV9jb2xsZWN0 aW9uX3NwZWMuanMgYi93ZWIvcmVncmVzc2lvbi9qYXZhc2NyaXB0L2hpc3RvcnkvaGlzdG9yeV9j b2xsZWN0aW9uX3NwZWMuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGZlZjNlNjc0 Yi4uMDAwMDAwMDAwCi0tLSBhL3dlYi9yZWdyZXNzaW9uL2phdmFzY3JpcHQvaGlzdG9yeS9oaXN0 b3J5X2NvbGxlY3Rpb25fc3BlYy5qcworKysgL2Rldi9udWxsCkBAIC0xLDgyICswLDAgQEAKLS8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8KLS8vCi0vLyBwZ0FkbWluIDQgLSBQb3N0Z3JlU1FMIFRvb2xzCi0vLwotLy8gQ29weXJpZ2h0 IChDKSAyMDEzIC0gMjAyMiwgVGhlIHBnQWRtaW4gRGV2ZWxvcG1lbnQgVGVhbQotLy8gVGhpcyBz b2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciB0aGUgUG9zdGdyZVNRTCBMaWNlbmNlCi0vLwotLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8KLQotaW1wb3J0IEhpc3RvcnlDb2xsZWN0aW9uIGZyb20gJ3NvdXJjZXMvc3FsZWRpdG9yL2hp c3RvcnkvaGlzdG9yeV9jb2xsZWN0aW9uJzsKLQotZGVzY3JpYmUoJ2hpc3RvcnlDb2xsZWN0aW9u JywgZnVuY3Rpb24gKCkgewotICBsZXQgaGlzdG9yeUNvbGxlY3Rpb24sIGhpc3RvcnlNb2RlbCwg b25BZGRTcHksIG9uUmVzZXRTcHk7Ci0gIGJlZm9yZUVhY2goKCkgPT4gewotICAgIGhpc3RvcnlN b2RlbCA9IFt7c29tZTogJ3RoaW5nJywgc29tZU90aGVyOiBbJ2FycmF5IGVsZW1lbnQnXX1dOwot ICAgIGhpc3RvcnlDb2xsZWN0aW9uID0gbmV3IEhpc3RvcnlDb2xsZWN0aW9uKGhpc3RvcnlNb2Rl bCk7Ci0gICAgb25BZGRTcHkgPSBqYXNtaW5lLmNyZWF0ZVNweSgnb25BZGRIYW5kbGVyJyk7Ci0g ICAgb25SZXNldFNweSA9IGphc21pbmUuY3JlYXRlU3B5KCdvblJlc2V0SGFuZGxlcicpOwotCi0g ICAgaGlzdG9yeUNvbGxlY3Rpb24ub25BZGQob25BZGRTcHkpOwotICAgIGhpc3RvcnlDb2xsZWN0 aW9uLm9uUmVzZXQob25SZXNldFNweSk7Ci0gIH0pOwotCi0gIGRlc2NyaWJlKCdsZW5ndGgnLCBm dW5jdGlvbiAoKSB7Ci0gICAgaXQoJ3JldHVybnMgMCB3aGVuIHVuZGVybHlpbmcgaGlzdG9yeSBt b2RlbCBoYXMgbm8gZWxlbWVudHMnLCBmdW5jdGlvbiAoKSB7Ci0gICAgICBoaXN0b3J5Q29sbGVj dGlvbiA9IG5ldyBIaXN0b3J5Q29sbGVjdGlvbihbXSk7Ci0KLSAgICAgIGV4cGVjdChoaXN0b3J5 Q29sbGVjdGlvbi5sZW5ndGgoKSkudG9FcXVhbCgwKTsKLSAgICB9KTsKLQotICAgIGl0KCdyZXR1 cm5zIHRoZSBsZW5ndGggb2YgdGhlIHVuZGVybHlpbmcgaGlzdG9yeSBtb2RlbCcsIGZ1bmN0aW9u ICgpIHsKLSAgICAgIGV4cGVjdChoaXN0b3J5Q29sbGVjdGlvbi5sZW5ndGgoKSkudG9FcXVhbCgx KTsKLSAgICB9KTsKLSAgfSk7Ci0KLSAgZGVzY3JpYmUoJ2FkZCcsIGZ1bmN0aW9uICgpIHsKLSAg ICBsZXQgZXhwZWN0ZWRIaXN0b3J5OwotICAgIGxldCBuZXdFbnRyeSA9IHtzb21lOiAnbmV3IHRo aW5nJywgc29tZU90aGVyOiBbJ3ZhbHVlMScsICd2YWx1ZTInXX07Ci0gICAgYmVmb3JlRWFjaCgo KSA9PiB7Ci0gICAgICBoaXN0b3J5Q29sbGVjdGlvbi5hZGQobmV3RW50cnkpOwotCi0gICAgICBl eHBlY3RlZEhpc3RvcnkgPSBbCi0gICAgICAgIHtzb21lOiAnbmV3IHRoaW5nJywgc29tZU90aGVy OiBbJ3ZhbHVlMScsICd2YWx1ZTInXX0sCi0gICAgICAgIHtzb21lOiAndGhpbmcnLCBzb21lT3Ro ZXI6IFsnYXJyYXkgZWxlbWVudCddfSwKLSAgICAgIF07Ci0gICAgfSk7Ci0KLSAgICBpdCgnYWRk cyBhIHBhc3NlZCBlbnRyeScsIGZ1bmN0aW9uICgpIHsKLSAgICAgIGV4cGVjdChoaXN0b3J5Q29s bGVjdGlvbi5oaXN0b3J5TGlzdCkudG9FcXVhbChleHBlY3RlZEhpc3RvcnkpOwotICAgIH0pOwot Ci0gICAgaXQoJ2NhbGxzIHRoZSBvbkNoYW5nZSBmdW5jdGlvbicsIGZ1bmN0aW9uICgpIHsKLSAg ICAgIGV4cGVjdChvbkFkZFNweSkudG9IYXZlQmVlbkNhbGxlZFdpdGgobmV3RW50cnkpOwotICAg IH0pOwotICB9KTsKLQotICBkZXNjcmliZSgncmVzZXQnLCBmdW5jdGlvbiAoKSB7Ci0gICAgYmVm b3JlRWFjaCgoKSA9PiB7Ci0gICAgICBoaXN0b3J5Q29sbGVjdGlvbi5yZXNldCgpOwotICAgIH0p OwotCi0gICAgaXQoJ2Ryb3BzIHRoZSBoaXN0b3J5JywgZnVuY3Rpb24gKCkgewotICAgICAgZXhw ZWN0KGhpc3RvcnlDb2xsZWN0aW9uLmhpc3RvcnlMaXN0KS50b0VxdWFsKFtdKTsKLSAgICAgIGV4 cGVjdChoaXN0b3J5Q29sbGVjdGlvbi5sZW5ndGgoKSkudG9FcXVhbCgwKTsKLSAgICB9KTsKLQot ICAgIGl0KCdjYWxscyB0aGUgb25SZXNldCBmdW5jdGlvbicsIGZ1bmN0aW9uICgpIHsKLSAgICAg IGV4cGVjdChvblJlc2V0U3B5KS50b0hhdmVCZWVuQ2FsbGVkV2l0aChbXSk7Ci0gICAgfSk7Ci0g IH0pOwotCi0gIGRlc2NyaWJlKCd3aGVuIGluc3RhbnRpYXRlZCcsIGZ1bmN0aW9uICgpIHsKLSAg ICBkZXNjcmliZSgnZnJvbSBhIGhpc3RvcnkgbW9kZWwnLCBmdW5jdGlvbiAoKSB7Ci0gICAgICBp dCgnaGFzIHRoZSBoaXN0b3J5TW9kZWwnLCAoKSA9PiB7Ci0gICAgICAgIGxldCBjb250ZW50ID0g aGlzdG9yeUNvbGxlY3Rpb24uaGlzdG9yeUxpc3Q7Ci0KLSAgICAgICAgZXhwZWN0KGNvbnRlbnQp LnRvRXF1YWwoaGlzdG9yeU1vZGVsKTsKLSAgICAgIH0pOwotCi0gICAgfSk7Ci0gIH0pOwotfSk7 CmRpZmYgLS1naXQgYS93ZWIvcmVncmVzc2lvbi9qYXZhc2NyaXB0L2hpc3RvcnkvcXVlcnlfaGlz dG9yeV9zcGVjLmpzIGIvd2ViL3JlZ3Jlc3Npb24vamF2YXNjcmlwdC9oaXN0b3J5L3F1ZXJ5X2hp c3Rvcnlfc3BlYy5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzRhMGExMjQ3Li4w MDAwMDAwMDAKLS0tIGEvd2ViL3JlZ3Jlc3Npb24vamF2YXNjcmlwdC9oaXN0b3J5L3F1ZXJ5X2hp c3Rvcnlfc3BlYy5qcworKysgL2Rldi9udWxsCkBAIC0xLDQwNSArMCwwIEBACi0vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi0vLwot Ly8gcGdBZG1pbiA0IC0gUG9zdGdyZVNRTCBUb29scwotLy8KLS8vIENvcHlyaWdodCAoQykgMjAx MyAtIDIwMjIsIFRoZSBwZ0FkbWluIERldmVsb3BtZW50IFRlYW0KLS8vIFRoaXMgc29mdHdhcmUg aXMgcmVsZWFzZWQgdW5kZXIgdGhlIFBvc3RncmVTUUwgTGljZW5jZQotLy8KLS8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi0KLS8q IGVzbGludC1kaXNhYmxlIHJlYWN0L25vLWZpbmQtZG9tLW5vZGUgKi8KLQotaW1wb3J0IFF1ZXJ5 SGlzdG9yeSBmcm9tICdzb3VyY2VzL3NxbGVkaXRvci9oaXN0b3J5L3F1ZXJ5X2hpc3RvcnknOwot aW1wb3J0IEhpc3RvcnlDb2xsZWN0aW9uIGZyb20gJ3NvdXJjZXMvc3FsZWRpdG9yL2hpc3Rvcnkv aGlzdG9yeV9jb2xsZWN0aW9uJzsKLWltcG9ydCBjbGlwYm9hcmQgZnJvbSAnc291cmNlcy9zZWxl Y3Rpb24vY2xpcGJvYXJkJzsKLWltcG9ydCAkIGZyb20gJ2pxdWVyeSc7Ci1pbXBvcnQgbW9tZW50 IGZyb20gJ21vbWVudCc7Ci0KLWRlc2NyaWJlKCdRdWVyeUhpc3RvcnknLCAoKSA9PiB7Ci0gIGxl dCBoaXN0b3J5Q29sbGVjdGlvbjsKLSAgbGV0IGhpc3RvcnlXcmFwcGVyOwotICBsZXQgaGlzdG9y eUNvbXBvbmVudDsKLQotICBiZWZvcmVFYWNoKCgpID0+IHsKLSAgICBoaXN0b3J5V3JhcHBlciA9 ICQoJzxkaXYgaWQ9Imhpc3RvcnlfZ3JpZCI+PC9kaXY+JykuYXBwZW5kVG8oJ2JvZHknKTsKLSAg fSk7Ci0KLSAgZGVzY3JpYmUoJ3doZW4gdGhlcmUgaXMgbm8gaGlzdG9yeScsICgpID0+IHsKLSAg ICBiZWZvcmVFYWNoKCgpID0+IHsKLSAgICAgIGhpc3RvcnlDb2xsZWN0aW9uID0gbmV3IEhpc3Rv cnlDb2xsZWN0aW9uKFtdKTsKLQotICAgICAgaGlzdG9yeUNvbXBvbmVudCA9IG5ldyBRdWVyeUhp c3RvcnkoaGlzdG9yeVdyYXBwZXIsIGhpc3RvcnlDb2xsZWN0aW9uKTsKLSAgICAgIGhpc3RvcnlD b21wb25lbnQucmVuZGVyKCk7Ci0gICAgfSk7Ci0KLSAgICBpdCgnaGFzIG5vIGVudHJpZXMnLCAo ZG9uZSkgPT4gewotICAgICAgbGV0IGZvdW5kQ2hpbGRyZW4gPSBoaXN0b3J5V3JhcHBlci5maW5k KCcjcXVlcnlfbGlzdCcpOwotICAgICAgZXhwZWN0KGZvdW5kQ2hpbGRyZW4ubGVuZ3RoKS50b0Jl KDApOwotICAgICAgZG9uZSgpOwotICAgIH0pOwotCi0gICAgaXQoJ05vIGhpc3RvcnkgZm91bmQg aXMgZGlzcGxheWVkJywgKGRvbmUpID0+IHsKLSAgICAgIGV4cGVjdChoaXN0b3J5V3JhcHBlci5m aW5kKCcucGctcGFuZWwtbWVzc2FnZScpLmh0bWwoKSkudG9CZSgnTm8gaGlzdG9yeSBmb3VuZCcp OwotICAgICAgZG9uZSgpOwotICAgIH0pOwotICB9KTsKLQotICBkZXNjcmliZSgnd2hlbiB0aGVy ZSBpcyBoaXN0b3J5JywgKCkgPT4gewotICAgIGxldCBxdWVyeUVudHJpZXM7Ci0gICAgbGV0IHF1 ZXJ5RGV0YWlsOwotCi0gICAgZGVzY3JpYmUoJ3doZW4gdHdvIFNRTCBxdWVyaWVzIHdlcmUgZXhl Y3V0ZWQnLCAoKSA9PiB7Ci0KLSAgICAgIGJlZm9yZUVhY2goKCkgPT4gewotICAgICAgICBjb25z dCBoaXN0b3J5T2JqZWN0cyA9IFt7Ci0gICAgICAgICAgcXVlcnk6ICdmaXJzdCBzcWwgc3RhdGVt ZW50JywKLSAgICAgICAgICBzdGFydF90aW1lOiBuZXcgRGF0ZSgyMDE3LCA1LCAzLCAxNCwgMywg MTUsIDE1MCksCi0gICAgICAgICAgc3RhdHVzOiB0cnVlLAotICAgICAgICAgIHJvd19hZmZlY3Rl ZDogMTIzNDUsCi0gICAgICAgICAgdG90YWxfdGltZTogJzE0IG1zZWMnLAotICAgICAgICAgIG1l c3NhZ2U6ICdzb21ldGhpbmcgaW1wb3J0YW50IEVSUk9SOiAgbWVzc2FnZSBmcm9tIGZpcnN0IHNx bCBxdWVyeScsCi0gICAgICAgIH0sIHsKLSAgICAgICAgICBxdWVyeTogJ3NlY29uZCBzcWwgc3Rh dGVtZW50JywKLSAgICAgICAgICBzdGFydF90aW1lOiBuZXcgRGF0ZSgyMDE2LCAxMSwgMTEsIDEs IDMzLCA1LCA5OSksCi0gICAgICAgICAgc3RhdHVzOiBmYWxzZSwKLSAgICAgICAgICByb3dfYWZm ZWN0ZWQ6IDEsCi0gICAgICAgICAgdG90YWxfdGltZTogJzIzNCBtc2VjJywKLSAgICAgICAgICBt ZXNzYWdlOiAnc29tZXRoaW5nIGltcG9ydGFudCBFUlJPUjogIG1lc3NhZ2UgZnJvbSBzZWNvbmQg c3FsIHF1ZXJ5JywKLSAgICAgICAgfV07Ci0KLSAgICAgICAgaGlzdG9yeUNvbGxlY3Rpb24gPSBu ZXcgSGlzdG9yeUNvbGxlY3Rpb24oaGlzdG9yeU9iamVjdHMpOwotICAgICAgICBoaXN0b3J5Q29t cG9uZW50ID0gbmV3IFF1ZXJ5SGlzdG9yeShoaXN0b3J5V3JhcHBlciwgaGlzdG9yeUNvbGxlY3Rp b24pOwotICAgICAgICBoaXN0b3J5Q29tcG9uZW50Lm9uQ29weVRvRWRpdG9yQ2xpY2soKCk9Pnsv KlRoaXMgaXMgaW50ZW50aW9uYWwgKFNvbmFyUXViZSkqL30pOwotICAgICAgICBoaXN0b3J5Q29t cG9uZW50LnJlbmRlcigpOwotCi0gICAgICAgIHF1ZXJ5RW50cmllcyA9IGhpc3RvcnlXcmFwcGVy LmZpbmQoJyNxdWVyeV9saXN0IC5saXN0LWl0ZW0nKTsKLSAgICAgICAgcXVlcnlEZXRhaWwgPSBo aXN0b3J5V3JhcHBlci5maW5kKCcjcXVlcnlfZGV0YWlsJyk7Ci0gICAgICB9KTsKLQotICAgICAg ZGVzY3JpYmUoJ3RoZSBoaXN0b3J5IGVudHJpZXMgcGFuZWwnLCAoKSA9PiB7Ci0gICAgICAgIGl0 KCdoYXMgdHdvIHF1ZXJ5IGhpc3RvcnkgZW50cmllcycsIChkb25lKSA9PiB7Ci0gICAgICAgICAg ZXhwZWN0KHF1ZXJ5RW50cmllcy5sZW5ndGgpLnRvQmUoMik7Ci0gICAgICAgICAgZG9uZSgpOwot ICAgICAgICB9KTsKLQotICAgICAgICBpdCgnZGlzcGxheXMgdGhlIHF1ZXJ5IGhpc3RvcnkgZW50 cmllcyBpbiBvcmRlcicsICgpID0+IHsKLSAgICAgICAgICBleHBlY3QoJChxdWVyeUVudHJpZXNb MF0pLnRleHQoKSkudG9Db250YWluKCdmaXJzdCBzcWwgc3RhdGVtZW50Jyk7Ci0gICAgICAgICAg ZXhwZWN0KCQocXVlcnlFbnRyaWVzWzFdKS50ZXh0KCkpLnRvQ29udGFpbignc2Vjb25kIHNxbCBz dGF0ZW1lbnQnKTsKLSAgICAgICAgfSk7Ci0KLSAgICAgICAgaXQoJ2Rpc3BsYXlzIHRoZSBmb3Jt YXR0ZWQgdGltZXN0YW1wIG9mIHRoZSBxdWVyaWVzIGluIGNocm9ub2xvZ2ljYWwgb3JkZXIgYnkg bW9zdCByZWNlbnQgZmlyc3QnLCAoKSA9PiB7Ci0gICAgICAgICAgZXhwZWN0KCQocXVlcnlFbnRy aWVzWzBdKS5maW5kKCcudGltZXN0YW1wJykudGV4dCgpKS50b0JlKCcxNDowMzoxNScpOwotICAg ICAgICAgIGV4cGVjdCgkKHF1ZXJ5RW50cmllc1sxXSkuZmluZCgnLnRpbWVzdGFtcCcpLnRleHQo KSkudG9CZSgnMDE6MzM6MDUnKTsKLSAgICAgICAgfSk7Ci0KLSAgICAgICAgaXQoJ3JlbmRlcnMg dGhlIG1vc3QgcmVjZW50IHF1ZXJ5IGFzIHNlbGVjdGVkJywgKGRvbmUpID0+IHsKLSAgICAgICAg ICBleHBlY3QoJChxdWVyeUVudHJpZXNbMF0pLmhhc0NsYXNzKCdzZWxlY3RlZCcpKS50b0JlVHJ1 dGh5KCk7Ci0gICAgICAgICAgZG9uZSgpOwotICAgICAgICB9KTsKLQotICAgICAgICBpdCgncmVu ZGVycyB0aGUgb2xkZXIgcXVlcnkgYXMgbm90IHNlbGVjdGVkJywgKCkgPT4gewotICAgICAgICAg IGV4cGVjdCgkKHF1ZXJ5RW50cmllc1sxXSkuaGFzQ2xhc3MoJ3NlbGVjdGVkJykpLnRvQmVGYWxz eSgpOwotICAgICAgICAgIGV4cGVjdCgkKHF1ZXJ5RW50cmllc1sxXSkuZmluZCgnLmVudHJ5Jyku aGFzQ2xhc3MoJ2Vycm9yJykpLnRvQmVUcnV0aHkoKTsKLSAgICAgICAgfSk7Ci0gICAgICB9KTsK LQotICAgICAgZGVzY3JpYmUoJ3RoZSBoaXN0b3J5ZGV0YWlscyBwYW5lbCcsICgpID0+IHsKLSAg ICAgICAgbGV0IGNvcHlBbGxCdXR0b24sIGNvcHlFZGl0b3JCdXR0b247Ci0KLSAgICAgICAgYmVm b3JlRWFjaCgoKSA9PiB7Ci0gICAgICAgICAgY29weUFsbEJ1dHRvbiA9ICgpID0+IHF1ZXJ5RGV0 YWlsLmZpbmQoJyNoaXN0b3J5LWRldGFpbC1xdWVyeSAuYnRuLWNvcHknKTsKLSAgICAgICAgICBj b3B5RWRpdG9yQnV0dG9uID0gKCkgPT4gcXVlcnlEZXRhaWwuZmluZCgnI2hpc3RvcnktZGV0YWls LXF1ZXJ5IC5idG4tY29weS1lZGl0b3InKTsKLSAgICAgICAgfSk7Ci0KLSAgICAgICAgaXQoJ3No b3VsZCBjaGFuZ2UgcHJlZmVyZW5jZSBmb250IHNpemUnLCAoKT0+ewotICAgICAgICAgIGhpc3Rv cnlDb21wb25lbnQuc2V0RWRpdG9yUHJlZih7c3FsX2ZvbnRfc2l6ZTogJzEuNWVtJ30pOwotICAg ICAgICAgIGV4cGVjdChxdWVyeURldGFpbC5maW5kKCcjaGlzdG9yeS1kZXRhaWwtcXVlcnkgLkNv ZGVNaXJyb3InKS5hdHRyKCdzdHlsZScpKS50b0JlKCdmb250LXNpemU6IDEuNWVtOycpOwotICAg ICAgICB9KTsKLQotICAgICAgICBpdCgnc2hvdWxkIGNoYW5nZSBwcmVmZXJlbmNlIGNvcHkgdG8g ZWRpdG9yIGZhbHNlJywgKCk9PnsKLSAgICAgICAgICBoaXN0b3J5Q29tcG9uZW50LnNldEVkaXRv clByZWYoe2NvcHlfdG9fZWRpdG9yOiBmYWxzZX0pOwotICAgICAgICAgIGV4cGVjdCgkKHF1ZXJ5 RGV0YWlsLmZpbmQoJyNoaXN0b3J5LWRldGFpbC1xdWVyeSAuYnRuLWNvcHktZWRpdG9yJykpLmhh c0NsYXNzKCdkLW5vbmUnKSkudG9CZSh0cnVlKTsKLSAgICAgICAgfSk7Ci0KLSAgICAgICAgaXQo J2Rpc3BsYXlzIHRoZSBmb3JtYXR0ZWQgdGltZXN0YW1wJywgKCkgPT4gewotICAgICAgICAgIGxl dCBmaXJzdERhdGUgPSBuZXcgRGF0ZSgyMDE3LCA1LCAzLCAxNCwgMywgMTUsIDE1MCk7Ci0gICAg ICAgICAgZXhwZWN0KHF1ZXJ5RGV0YWlsLnRleHQoKSkudG9Db250YWluKGZpcnN0RGF0ZS50b0xv Y2FsZURhdGVTdHJpbmcoKSArICcgJyArIGZpcnN0RGF0ZS50b0xvY2FsZVRpbWVTdHJpbmcoKSk7 Ci0gICAgICAgIH0pOwotCi0gICAgICAgIGl0KCdkaXNwbGF5cyB0aGUgbnVtYmVyIG9mIHJvd3Mg YWZmZWN0ZWQnLCAoKSA9PiB7Ci0gICAgICAgICAgaWYgKC9QaGFudG9tSlMvLnRlc3Qod2luZG93 Lm5hdmlnYXRvci51c2VyQWdlbnQpKSB7Ci0gICAgICAgICAgICBleHBlY3QocXVlcnlEZXRhaWwu dGV4dCgpKS50b0NvbnRhaW4oJzEyMzQ1Jyk7Ci0gICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAg ICAgIGV4cGVjdChxdWVyeURldGFpbC50ZXh0KCkpLnRvQ29udGFpbignMTIsMzQ1Jyk7Ci0gICAg ICAgICAgfQotICAgICAgICB9KTsKLQotICAgICAgICBpdCgnZGlzcGxheXMgdGhlIHRvdGFsIHRp bWUnLCAoKSA9PiB7Ci0gICAgICAgICAgZXhwZWN0KHF1ZXJ5RGV0YWlsLnRleHQoKSkudG9Db250 YWluKCcxNCBtc2VjJyk7Ci0gICAgICAgIH0pOwotCi0gICAgICAgIGl0KCdkaXNwbGF5cyB0aGUg ZnVsbCBtZXNzYWdlJywgKCkgPT4gewotICAgICAgICAgIGV4cGVjdChxdWVyeURldGFpbC50ZXh0 KCkpLnRvQ29udGFpbignbWVzc2FnZSBmcm9tIGZpcnN0IHNxbCBxdWVyeScpOwotICAgICAgICB9 KTsKLQotICAgICAgICBpdCgnZGlzcGxheXMgZmlyc3QgcXVlcnkgU1FMJywgKGRvbmUpID0+IHsK LSAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHsKLSAgICAgICAgICAgIGV4cGVjdChxdWVyeURl dGFpbC50ZXh0KCkpLnRvQ29udGFpbignZmlyc3Qgc3FsIHN0YXRlbWVudCcpOwotICAgICAgICAg ICAgZG9uZSgpOwotICAgICAgICAgIH0sIDEwMDApOwotICAgICAgICB9KTsKLQotICAgICAgICBk ZXNjcmliZSgnd2hlbiB0aGUgIkNvcHkiIGJ1dHRvbiBpcyBjbGlja2VkJywgKCkgPT4gewotICAg ICAgICAgIGJlZm9yZUVhY2goKCkgPT4gewotICAgICAgICAgICAgc3B5T24oY2xpcGJvYXJkLCAn Y29weVRleHRUb0NsaXBib2FyZCcpOwotICAgICAgICAgICAgY29weUFsbEJ1dHRvbigpLnRyaWdn ZXIoJ2NsaWNrJyk7Ci0gICAgICAgICAgfSk7Ci0KLSAgICAgICAgICBpdCgnY29waWVzIHRoZSBx dWVyeSB0byB0aGUgY2xpcGJvYXJkJywgKCkgPT4gewotICAgICAgICAgICAgZXhwZWN0KGNsaXBi b2FyZC5jb3B5VGV4dFRvQ2xpcGJvYXJkKS50b0hhdmVCZWVuQ2FsbGVkV2l0aCgnZmlyc3Qgc3Fs IHN0YXRlbWVudCcpOwotICAgICAgICAgIH0pOwotICAgICAgICB9KTsKLQotICAgICAgICBkZXNj cmliZSgnQ29weSBidXR0b24nLCAoKSA9PiB7Ci0gICAgICAgICAgYmVmb3JlRWFjaCgoKSA9PiB7 Ci0gICAgICAgICAgICBqYXNtaW5lLmNsb2NrKCkuaW5zdGFsbCgpOwotICAgICAgICAgIH0pOwot Ci0gICAgICAgICAgYWZ0ZXJFYWNoKCgpID0+IHsKLSAgICAgICAgICAgIGphc21pbmUuY2xvY2so KS51bmluc3RhbGwoKTsKLSAgICAgICAgICB9KTsKLQotICAgICAgICAgIGl0KCdzaG91bGQgaGF2 ZSB0ZXh0IFwnQ29weVwnJywgKCkgPT4gewotICAgICAgICAgICAgZXhwZWN0KGNvcHlBbGxCdXR0 b24oKS50ZXh0KCkpLnRvQmUoJ0NvcHknKTsKLSAgICAgICAgICB9KTsKLQotICAgICAgICAgIGl0 KCdzaG91bGQgbm90IGhhdmUgdGhlIGNsYXNzIFwnd2FzLWNvcGllZFwnJywgKCkgPT4gewotICAg ICAgICAgICAgZXhwZWN0KGNvcHlBbGxCdXR0b24oKS5oYXNDbGFzcygnd2FzLWNvcGllZCcpKS50 b0JlKGZhbHNlKTsKLSAgICAgICAgICB9KTsKLQotICAgICAgICAgIGRlc2NyaWJlKCd3aGVuIHRo ZSBjb3B5IGJ1dHRvbiBpcyBjbGlja2VkJywgKCkgPT4gewotICAgICAgICAgICAgYmVmb3JlRWFj aCgoKSA9PiB7Ci0gICAgICAgICAgICAgIGNvcHlBbGxCdXR0b24oKS50cmlnZ2VyKCdjbGljaycp OwotICAgICAgICAgICAgfSk7Ci0KLSAgICAgICAgICAgIGRlc2NyaWJlKCdiZWZvcmUgMS41IHNl Y29uZHMnLCAoKSA9PiB7Ci0gICAgICAgICAgICAgIGJlZm9yZUVhY2goKCkgPT4gewotICAgICAg ICAgICAgICAgIGphc21pbmUuY2xvY2soKS50aWNrKDE0OTkpOwotICAgICAgICAgICAgICB9KTsK LQotICAgICAgICAgICAgICBpdCgnMS41IHNlY29uZHMgc2hvdWxkIGNoYW5nZSB0aGUgYnV0dG9u IHRleHQgdG8gXCdDb3BpZWQhXCcnLCAoKSA9PiB7Ci0gICAgICAgICAgICAgICAgZXhwZWN0KGNv cHlBbGxCdXR0b24oKS50ZXh0KCkpLnRvQmUoJ0NvcGllZCEnKTsKLSAgICAgICAgICAgICAgfSk7 Ci0KLSAgICAgICAgICAgICAgaXQoJ3Nob3VsZCBoYXZlIHRoZSBjbGFzcyBcJ3dhcy1jb3BpZWRc JycsICgpID0+IHsKLSAgICAgICAgICAgICAgICBleHBlY3QoY29weUFsbEJ1dHRvbigpLmhhc0Ns YXNzKCd3YXMtY29waWVkJykpLnRvQmUodHJ1ZSk7Ci0gICAgICAgICAgICAgIH0pOwotICAgICAg ICAgICAgfSk7Ci0KLSAgICAgICAgICAgIGRlc2NyaWJlKCdhZnRlciAxLjUgc2Vjb25kcycsICgp ID0+IHsKLSAgICAgICAgICAgICAgYmVmb3JlRWFjaCgoKSA9PiB7Ci0gICAgICAgICAgICAgICAg amFzbWluZS5jbG9jaygpLnRpY2soMTUwMSk7Ci0gICAgICAgICAgICAgIH0pOwotCi0gICAgICAg ICAgICAgIGl0KCcxLjUgc2Vjb25kcyBzaG91bGQgY2hhbmdlIHRoZSBidXR0b24gdGV4dCBiYWNr IHRvIFwnQ29weVwnJywgKCkgPT4gewotICAgICAgICAgICAgICAgIGV4cGVjdChjb3B5QWxsQnV0 dG9uKCkudGV4dCgpKS50b0JlKCdDb3B5Jyk7Ci0gICAgICAgICAgICAgIH0pOwotICAgICAgICAg ICAgfSk7Ci0KLSAgICAgICAgICAgIGRlc2NyaWJlKCd3aGVuIGlzIGNsaWNrZWQgYWdhaW4gYWZ0 ZXIgMXMnLCAoKSA9PiB7Ci0gICAgICAgICAgICAgIGJlZm9yZUVhY2goKCkgPT4gewotICAgICAg ICAgICAgICAgIGphc21pbmUuY2xvY2soKS50aWNrKDEwMDApOwotICAgICAgICAgICAgICAgIGNv cHlBbGxCdXR0b24oKS50cmlnZ2VyKCdjbGljaycpOwotCi0gICAgICAgICAgICAgIH0pOwotCi0g ICAgICAgICAgICAgIGRlc2NyaWJlKCdiZWZvcmUgMi41IHNlY29uZHMnLCAoKSA9PiB7Ci0gICAg ICAgICAgICAgICAgYmVmb3JlRWFjaCgoKSA9PiB7Ci0gICAgICAgICAgICAgICAgICBqYXNtaW5l LmNsb2NrKCkudGljaygxNDk5KTsKLSAgICAgICAgICAgICAgICB9KTsKLQotICAgICAgICAgICAg ICAgIGl0KCdzaG91bGQgY2hhbmdlIHRoZSBidXR0b24gdGV4dCB0byBcJ0NvcGllZCFcJycsICgp ID0+IHsKLSAgICAgICAgICAgICAgICAgIGV4cGVjdChjb3B5QWxsQnV0dG9uKCkudGV4dCgpKS50 b0JlKCdDb3BpZWQhJyk7Ci0gICAgICAgICAgICAgICAgfSk7Ci0KLSAgICAgICAgICAgICAgICBp dCgnc2hvdWxkIGhhdmUgdGhlIGNsYXNzIFwnd2FzLWNvcGllZFwnJywgKCkgPT4gewotICAgICAg ICAgICAgICAgICAgZXhwZWN0KGNvcHlBbGxCdXR0b24oKS5oYXNDbGFzcygnd2FzLWNvcGllZCcp KS50b0JlKHRydWUpOwotICAgICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgICB9KTsKLQot ICAgICAgICAgICAgICBkZXNjcmliZSgnYWZ0ZXIgMi41IHNlY29uZHMnLCAoKSA9PiB7Ci0gICAg ICAgICAgICAgICAgYmVmb3JlRWFjaCgoKSA9PiB7Ci0gICAgICAgICAgICAgICAgICBqYXNtaW5l LmNsb2NrKCkudGljaygxNTAxKTsKLSAgICAgICAgICAgICAgICB9KTsKLQotICAgICAgICAgICAg ICAgIGl0KCdzaG91bGQgY2hhbmdlIHRoZSBidXR0b24gdGV4dCBiYWNrIHRvIFwnQ29weVwnJywg KCkgPT4gewotICAgICAgICAgICAgICAgICAgZXhwZWN0KGNvcHlBbGxCdXR0b24oKS50ZXh0KCkp LnRvQmUoJ0NvcHknKTsKLSAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgICAgfSk7Ci0g ICAgICAgICAgICB9KTsKLSAgICAgICAgICB9KTsKLSAgICAgICAgfSk7Ci0KLSAgICAgICAgZGVz Y3JpYmUoJ3doZW4gdGhlICJDb3B5IHRvIHF1ZXJ5IGVkaXRvciIgYnV0dG9uIGlzIGNsaWNrZWQn LCAoKSA9PiB7Ci0gICAgICAgICAgYmVmb3JlRWFjaCgoKSA9PiB7Ci0gICAgICAgICAgICBzcHlP bihoaXN0b3J5Q29tcG9uZW50LnF1ZXJ5SGlzdERldGFpbHMsICdvbkNvcHlUb0VkaXRvckhhbmRs ZXInKS5hbmQuY2FsbFRocm91Z2goKTsKLSAgICAgICAgICAgIGNvcHlFZGl0b3JCdXR0b24oKS50 cmlnZ2VyKCdjbGljaycpOwotICAgICAgICAgIH0pOwotCi0gICAgICAgICAgaXQoJ3NlbmRzIHRo ZSBxdWVyeSB0byB0aGUgb25Db3B5VG9FZGl0b3JIYW5kbGVyJywgKCkgPT4gewotICAgICAgICAg ICAgZXhwZWN0KGhpc3RvcnlDb21wb25lbnQucXVlcnlIaXN0RGV0YWlscy5vbkNvcHlUb0VkaXRv ckhhbmRsZXIpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKCdmaXJzdCBzcWwgc3RhdGVtZW50Jyk7Ci0g ICAgICAgICAgfSk7Ci0gICAgICAgIH0pOwotCi0gICAgICAgIGRlc2NyaWJlKCd3aGVuIHRoZSBx dWVyeSBmYWlsZWQnLCAoKSA9PiB7Ci0gICAgICAgICAgbGV0IGZhaWxlZEVudHJ5OwotCi0gICAg ICAgICAgYmVmb3JlRWFjaCgoKSA9PiB7Ci0gICAgICAgICAgICBmYWlsZWRFbnRyeSA9ICQocXVl cnlFbnRyaWVzWzFdKTsKLSAgICAgICAgICAgIGZhaWxlZEVudHJ5LnRyaWdnZXIoJ2NsaWNrJyk7 Ci0gICAgICAgICAgfSk7Ci0KLSAgICAgICAgICBpdCgnZGlzcGxheXMgdGhlIGVycm9yIG1lc3Nh Z2Ugb24gdG9wIG9mIHRoZSBkZXRhaWxzIHBhbmUnLCAoKSA9PiB7Ci0gICAgICAgICAgICBleHBl Y3QocXVlcnlEZXRhaWwudGV4dCgpKS50b0NvbnRhaW4oJ0Vycm9yIE1lc3NhZ2UgbWVzc2FnZSBm cm9tIHNlY29uZCBzcWwgcXVlcnknKTsKLSAgICAgICAgICB9KTsKLSAgICAgICAgfSk7Ci0gICAg ICB9KTsKLQotCi0gICAgICBkZXNjcmliZSgnd2hlbiB0aGUgb2xkZXIgcXVlcnkgaXMgY2xpY2tl ZCBvbicsICgpID0+IHsKLSAgICAgICAgbGV0IGZpcnN0RW50cnksIHNlY29uZEVudHJ5OwotCi0g ICAgICAgIGJlZm9yZUVhY2goKCkgPT4gewotICAgICAgICAgIGZpcnN0RW50cnkgPSAkKHF1ZXJ5 RW50cmllc1swXSk7Ci0gICAgICAgICAgc2Vjb25kRW50cnkgPSAkKHF1ZXJ5RW50cmllc1sxXSk7 Ci0gICAgICAgICAgc2Vjb25kRW50cnkudHJpZ2dlcignY2xpY2snKTsKLSAgICAgICAgfSk7Ci0K LSAgICAgICAgaXQoJ2Rpc3BsYXlzIHRoZSBxdWVyeSBpbiB0aGUgcmlnaHQgcGFuZScsICgpID0+ IHsKLSAgICAgICAgICBleHBlY3QocXVlcnlEZXRhaWwudGV4dCgpKS50b0NvbnRhaW4oJ3NlY29u ZCBzcWwgc3RhdGVtZW50Jyk7Ci0gICAgICAgIH0pOwotCi0gICAgICAgIGl0KCdkZXNlbGVjdHMg dGhlIGZpcnN0IGhpc3RvcnkgZW50cnknLCAoKSA9PiB7Ci0gICAgICAgICAgZXhwZWN0KGZpcnN0 RW50cnkuaGFzQ2xhc3MoJ3NlbGVjdGVkJykpLnRvQmVGYWxzeSgpOwotICAgICAgICB9KTsKLQot ICAgICAgICBpdCgnc2VsZWN0cyB0aGUgc2Vjb25kIGhpc3RvcnkgZW50cnknLCAoKSA9PiB7Ci0g ICAgICAgICAgZXhwZWN0KHNlY29uZEVudHJ5Lmhhc0NsYXNzKCdzZWxlY3RlZCcpKS50b0JlVHJ1 dGh5KCk7Ci0gICAgICAgIH0pOwotICAgICAgfSk7Ci0KLSAgICAgIGRlc2NyaWJlKCd3aGVuIGEg dGhpcmQgU1FMIHF1ZXJ5IGlzIGV4ZWN1dGVkJywgKCkgPT4gewotICAgICAgICBiZWZvcmVFYWNo KCgpID0+IHsKLSAgICAgICAgICBoaXN0b3J5Q29sbGVjdGlvbi5hZGQoewotICAgICAgICAgICAg cXVlcnk6ICd0aGlyZCBzcWwgc3RhdGVtZW50JywKLSAgICAgICAgICAgIHN0YXJ0X3RpbWU6IG5l dyBEYXRlKDIwMTcsIDExLCAxMSwgMSwgMzMsIDUsIDk5KSwKLSAgICAgICAgICAgIHN0YXR1czog ZmFsc2UsCi0gICAgICAgICAgICByb3dfYWZmZWN0ZWQ6IDUsCi0gICAgICAgICAgICB0b3RhbF90 aW1lOiAnMjYgbXNlYycsCi0gICAgICAgICAgICBtZXNzYWdlOiAncHJldGV4dCBFUlJPUjogIHRo aXJkIHNxbCBtZXNzYWdlJywKLSAgICAgICAgICB9KTsKLQotICAgICAgICAgIHF1ZXJ5RW50cmll cyA9IGhpc3RvcnlXcmFwcGVyLmZpbmQoJyNxdWVyeV9saXN0IC5saXN0LWl0ZW0nKTsKLSAgICAg ICAgfSk7Ci0KLSAgICAgICAgaXQoJ2Rpc3BsYXlzIHRoaXJkIHF1ZXJ5IFNRTCBpbiB0aGUgcmln aHQgcGFuZScsICgpID0+IHsKLSAgICAgICAgICBleHBlY3QocXVlcnlEZXRhaWwudGV4dCgpKS50 b0NvbnRhaW4oJ3RoaXJkIHNxbCBzdGF0ZW1lbnQnKTsKLSAgICAgICAgfSk7Ci0gICAgICB9KTsK LQotICAgICAgZGVzY3JpYmUoJ3doZW4gYSBmb3VydGggU1FMIHF1ZXJ5IGlzIGV4ZWN1dGVkJywg KCkgPT4gewotICAgICAgICBiZWZvcmVFYWNoKCgpID0+IHsKLSAgICAgICAgICBoaXN0b3J5Q29s bGVjdGlvbi5hZGQoewotICAgICAgICAgICAgcXVlcnk6ICdmb3VydGggc3FsIHN0YXRlbWVudCcs Ci0gICAgICAgICAgICBzdGFydF90aW1lOiBuZXcgRGF0ZSgyMDE3LCAxMiwgMTIsIDEsIDMzLCA1 LCA5OSksCi0gICAgICAgICAgICBzdGF0dXM6IGZhbHNlLAotICAgICAgICAgICAgcm93X2FmZmVj dGVkOiAwLAotICAgICAgICAgICAgdG90YWxfdGltZTogJzI2IG1zZWMnLAotICAgICAgICAgICAg bWVzc2FnZTogJ0VSUk9SOiB1bmV4cGVjdGVkIGVycm9yIGZyb20gZm91cnRoIHNxbCBtZXNzYWdl JywKLSAgICAgICAgICB9KTsKLQotICAgICAgICAgIHF1ZXJ5RW50cmllcyA9IGhpc3RvcnlXcmFw cGVyLmZpbmQoJyNxdWVyeV9saXN0IC5saXN0LWl0ZW0nKTsKLSAgICAgICAgfSk7Ci0KLSAgICAg ICAgaXQoJ2Rpc3BsYXlzIGZvdXJ0aCBxdWVyeSBTUUwgaW4gdGhlIHJpZ2h0IHBhbmUnLCAoKSA9 PiB7Ci0gICAgICAgICAgZXhwZWN0KHF1ZXJ5RGV0YWlsLnRleHQoKSkudG9Db250YWluKCdFcnJv ciBNZXNzYWdlIHVuZXhwZWN0ZWQgZXJyb3IgZnJvbSBmb3VydGggc3FsIG1lc3NhZ2UnKTsKLSAg ICAgICAgfSk7Ci0gICAgICB9KTsKLSAgICB9KTsKLQotICAgIGRlc2NyaWJlKCd3aGVuIHNldmVy YWwgZGF5cyBvZiBxdWVyaWVzIHdlcmUgZXhlY3V0ZWQnLCAoKSA9PiB7Ci0gICAgICBsZXQgcXVl cnlFbnRyeURhdGVHcm91cHM7Ci0gICAgICBsZXQgZGF0ZVRvZGF5LCBkYXRlWWVzdCwgZGF0ZUJl Zm9yZVllc3Q7Ci0KLSAgICAgIGJlZm9yZUVhY2goKCkgPT4gewotICAgICAgICBqYXNtaW5lLmNs b2NrKCkuaW5zdGFsbCgpOwotICAgICAgICBjb25zdCBtb2NrZWRDdXJyZW50RGF0ZSA9IG1vbWVu dCgnMjAxNy0wNy0wMSAxMzozMDowMCcpOwotICAgICAgICBqYXNtaW5lLmNsb2NrKCkubW9ja0Rh dGUobW9ja2VkQ3VycmVudERhdGUudG9EYXRlKCkpOwotCi0gICAgICAgIGRhdGVUb2RheSA9IG1v Y2tlZEN1cnJlbnREYXRlLnRvRGF0ZSgpOwotICAgICAgICBkYXRlWWVzdCA9IG1vY2tlZEN1cnJl bnREYXRlLmNsb25lKCkuc3VidHJhY3QoMSwgJ2RheXMnKS50b0RhdGUoKTsKLSAgICAgICAgZGF0 ZUJlZm9yZVllc3QgPSBtb2NrZWRDdXJyZW50RGF0ZS5jbG9uZSgpLnN1YnRyYWN0KDMsICdkYXlz JykudG9EYXRlKCk7Ci0KLSAgICAgICAgY29uc3QgaGlzdG9yeU9iamVjdHMgPSBbewotICAgICAg ICAgIHF1ZXJ5OiAnZmlyc3QgdG9kYXkgc3FsIHN0YXRlbWVudCcsCi0gICAgICAgICAgc3RhcnRf dGltZTogbW9ja2VkQ3VycmVudERhdGUudG9EYXRlKCksCi0gICAgICAgICAgc3RhdHVzOiB0cnVl LAotICAgICAgICAgIHJvd19hZmZlY3RlZDogMTIzNDUsCi0gICAgICAgICAgdG90YWxfdGltZTog JzE0IG1zZWMnLAotICAgICAgICAgIG1lc3NhZ2U6ICdtZXNzYWdlIGZyb20gZmlyc3QgdG9kYXkg c3FsIHF1ZXJ5JywKLSAgICAgICAgfSwgewotICAgICAgICAgIHF1ZXJ5OiAnc2Vjb25kIHRvZGF5 IHNxbCBzdGF0ZW1lbnQnLAotICAgICAgICAgIHN0YXJ0X3RpbWU6IG1vY2tlZEN1cnJlbnREYXRl LmNsb25lKCkuc3VidHJhY3QoMSwgJ2hvdXJzJykudG9EYXRlKCksCi0gICAgICAgICAgc3RhdHVz OiBmYWxzZSwKLSAgICAgICAgICByb3dfYWZmZWN0ZWQ6IDEsCi0gICAgICAgICAgdG90YWxfdGlt ZTogJzIzNCBtc2VjJywKLSAgICAgICAgICBtZXNzYWdlOiAnbWVzc2FnZSBmcm9tIHNlY29uZCB0 b2RheSBzcWwgcXVlcnknLAotICAgICAgICB9LCB7Ci0gICAgICAgICAgcXVlcnk6ICdmaXJzdCB5 ZXN0ZXJkYXkgc3FsIHN0YXRlbWVudCcsCi0gICAgICAgICAgc3RhcnRfdGltZTogbW9ja2VkQ3Vy cmVudERhdGUuY2xvbmUoKS5zdWJ0cmFjdCgxLCAnZGF5cycpLnRvRGF0ZSgpLAotICAgICAgICAg IHN0YXR1czogdHJ1ZSwKLSAgICAgICAgICByb3dfYWZmZWN0ZWQ6IDEyMzQ1LAotICAgICAgICAg IHRvdGFsX3RpbWU6ICcxNCBtc2VjJywKLSAgICAgICAgICBtZXNzYWdlOiAnbWVzc2FnZSBmcm9t IGZpcnN0IHllc3RlcmRheSBzcWwgcXVlcnknLAotICAgICAgICB9LCB7Ci0gICAgICAgICAgcXVl cnk6ICdzZWNvbmQgeWVzdGVyZGF5IHNxbCBzdGF0ZW1lbnQnLAotICAgICAgICAgIHN0YXJ0X3Rp bWU6IG1vY2tlZEN1cnJlbnREYXRlLmNsb25lKCkuc3VidHJhY3QoMSwgJ2RheXMnKS5zdWJ0cmFj dCgxLCAnaG91cnMnKS50b0RhdGUoKSwKLSAgICAgICAgICBzdGF0dXM6IGZhbHNlLAotICAgICAg ICAgIHJvd19hZmZlY3RlZDogMSwKLSAgICAgICAgICB0b3RhbF90aW1lOiAnMjM0IG1zZWMnLAot ICAgICAgICAgIG1lc3NhZ2U6ICdtZXNzYWdlIGZyb20gc2Vjb25kIHllc3RlcmRheSBzcWwgcXVl cnknLAotICAgICAgICB9LCB7Ci0gICAgICAgICAgcXVlcnk6ICdvbGRlciB0aGFuIHllc3RlcmRh eSBzcWwgc3RhdGVtZW50JywKLSAgICAgICAgICBzdGFydF90aW1lOiBtb2NrZWRDdXJyZW50RGF0 ZS5jbG9uZSgpLnN1YnRyYWN0KDMsICdkYXlzJykudG9EYXRlKCksCi0gICAgICAgICAgc3RhdHVz OiB0cnVlLAotICAgICAgICAgIHJvd19hZmZlY3RlZDogMTIzNDUsCi0gICAgICAgICAgdG90YWxf dGltZTogJzE0IG1zZWMnLAotICAgICAgICAgIG1lc3NhZ2U6ICdtZXNzYWdlIGZyb20gb2xkZXIg dGhhbiB5ZXN0ZXJkYXkgc3FsIHF1ZXJ5JywKLSAgICAgICAgfV07Ci0gICAgICAgIGhpc3RvcnlD b2xsZWN0aW9uID0gbmV3IEhpc3RvcnlDb2xsZWN0aW9uKGhpc3RvcnlPYmplY3RzKTsKLQotICAg ICAgICBoaXN0b3J5Q29tcG9uZW50ID0gbmV3IFF1ZXJ5SGlzdG9yeShoaXN0b3J5V3JhcHBlciwg aGlzdG9yeUNvbGxlY3Rpb24pOwotICAgICAgICBoaXN0b3J5Q29tcG9uZW50LnJlbmRlcigpOwot Ci0gICAgICAgIHF1ZXJ5RW50cmllcyA9IGhpc3RvcnlXcmFwcGVyLmZpbmQoJyNxdWVyeV9saXN0 IC5saXN0LWl0ZW0nKTsKLSAgICAgICAgcXVlcnlFbnRyeURhdGVHcm91cHMgPSBoaXN0b3J5V3Jh cHBlci5maW5kKCcjcXVlcnlfbGlzdCAucXVlcnktZ3JvdXAnKTsKLSAgICAgIH0pOwotCi0gICAg ICBhZnRlckVhY2goKCkgPT4gewotICAgICAgICBqYXNtaW5lLmNsb2NrKCkudW5pbnN0YWxsKCk7 Ci0gICAgICB9KTsKLQotICAgICAgZGVzY3JpYmUoJ3RoZSBoaXN0b3J5IGVudHJpZXMgcGFuZWwn LCAoKSA9PiB7Ci0gICAgICAgIGl0KCdoYXMgdGhyZWUgcXVlcnkgaGlzdG9yeSBlbnRyeSBkYXRh IGdyb3VwcycsICgpID0+IHsKLSAgICAgICAgICBleHBlY3QocXVlcnlFbnRyeURhdGVHcm91cHMu bGVuZ3RoKS50b0JlKDMpOwotICAgICAgICB9KTsKLQotICAgICAgICBpdCgnaGFzIHRpdGxlIGFi b3ZlJywgKCkgPT4gewotICAgICAgICAgIGV4cGVjdCgkKHF1ZXJ5RW50cnlEYXRlR3JvdXBzWzBd KS5maW5kKCcuZGF0ZS1sYWJlbCcpLnRleHQoKSkudG9CZSgnVG9kYXkgLSAnICsgZGF0ZVRvZGF5 LnRvTG9jYWxlRGF0ZVN0cmluZygpKTsKLSAgICAgICAgICBleHBlY3QoJChxdWVyeUVudHJ5RGF0 ZUdyb3Vwc1sxXSkuZmluZCgnLmRhdGUtbGFiZWwnKS50ZXh0KCkpLnRvQmUoJ1llc3RlcmRheSAt ICcgKyBkYXRlWWVzdC50b0xvY2FsZURhdGVTdHJpbmcoKSk7Ci0gICAgICAgICAgZXhwZWN0KCQo cXVlcnlFbnRyeURhdGVHcm91cHNbMl0pLmZpbmQoJy5kYXRlLWxhYmVsJykudGV4dCgpKS50b0Jl KGRhdGVCZWZvcmVZZXN0LnRvTG9jYWxlRGF0ZVN0cmluZygpKTsKLSAgICAgICAgfSk7Ci0gICAg ICB9KTsKLSAgICB9KTsKLSAgfSk7Ci19KTsKZGlmZiAtLWdpdCBhL3dlYi9yZWdyZXNzaW9uL2ph dmFzY3JpcHQvc3FsZWRpdG9yL2NhbGN1bGF0ZV9xdWVyeV9ydW5fdGltZV9zcGVjLmpzIGIvd2Vi L3JlZ3Jlc3Npb24vamF2YXNjcmlwdC9zcWxlZGl0b3IvY2FsY3VsYXRlX3F1ZXJ5X3J1bl90aW1l X3NwZWMuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGUwZTgxZDBkMi4uMDAwMDAw MDAwCi0tLSBhL3dlYi9yZWdyZXNzaW9uL2phdmFzY3JpcHQvc3FsZWRpdG9yL2NhbGN1bGF0ZV9x dWVyeV9ydW5fdGltZV9zcGVjLmpzCisrKyAvZGV2L251bGwKQEAgLTEsMTA1ICswLDAgQEAKLS8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8KLS8vCi0vLyBwZ0FkbWluIDQgLSBQb3N0Z3JlU1FMIFRvb2xzCi0vLwotLy8gQ29weXJpZ2h0 IChDKSAyMDEzIC0gMjAyMiwgVGhlIHBnQWRtaW4gRGV2ZWxvcG1lbnQgVGVhbQotLy8gVGhpcyBz b2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciB0aGUgUG9zdGdyZVNRTCBMaWNlbmNlCi0vLwotLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8KLQotaW1wb3J0IG1vbWVudCBmcm9tICdtb21lbnQnOwotaW1wb3J0IHtjYWxjdWxhdGVRdWVy eVJ1blRpbWV9IGZyb20gJy4uLy4uLy4uL3BnYWRtaW4vc3RhdGljL2pzL3NxbGVkaXRvci9jYWxj dWxhdGVfcXVlcnlfcnVuX3RpbWUnOwotCi1kZXNjcmliZSgnI2NhbGN1bGF0ZVF1ZXJ5UnVuVGlt ZScsICgpID0+IHsKLSAgZGVzY3JpYmUoJ3RpbWUgZGlmZmVyZW5jZSBpcyBzbWFsbGVyIHRoZW4g MSBzZWNvbmQnLCAoKSA9PiB7Ci0gICAgaXQoJ2Rpc3BsYXlzIG1pbGxpc2Vjb25kcycsICgpID0+ IHsKLSAgICAgIGxldCBzdGFydERhdGUgPSBtb21lbnQoewotICAgICAgICB5ZWFyczoyMDE4LAot ICAgICAgICBtb250aHM6NCwKLSAgICAgICAgZGF0ZToyLAotICAgICAgICBob3VyczoxMCwKLSAg ICAgICAgbWludXRlczozMCwKLSAgICAgICAgc2Vjb25kczoyMCwKLSAgICAgICAgbWlsbGlzZWNv bmRzOjEyM30pLnRvRGF0ZSgpOwotICAgICAgbGV0IGVuZERhdGUgPSBtb21lbnQoewotICAgICAg ICB5ZWFyczoyMDE4LAotICAgICAgICBtb250aHM6NCwKLSAgICAgICAgZGF0ZToyLAotICAgICAg ICBob3VyczoxMCwKLSAgICAgICAgbWludXRlczozMCwKLSAgICAgICAgc2Vjb25kczoyMSwKLSAg ICAgICAgbWlsbGlzZWNvbmRzOjcwfSkudG9EYXRlKCk7Ci0gICAgICBleHBlY3QoY2FsY3VsYXRl UXVlcnlSdW5UaW1lKHN0YXJ0RGF0ZSwgZW5kRGF0ZSkpCi0gICAgICAgIC50b0VxdWFsKCc5NDcg bXNlYycpOwotICAgIH0pOwotICB9KTsKLQotICBkZXNjcmliZSgndGltZSBkaWZmZXJlbmNlIGlz IHNtYWxsZXIgdGhlbiAxIG1pbnV0ZScsICgpID0+IHsKLSAgICBpdCgnZGlzcGxheXMgbWlsbGlz ZWNvbmRzJywgKCkgPT4gewotICAgICAgbGV0IHN0YXJ0RGF0ZSA9IG1vbWVudCh7Ci0gICAgICAg IHllYXJzOjIwMTgsCi0gICAgICAgIG1vbnRoczo0LAotICAgICAgICBkYXRlOjIsCi0gICAgICAg IGhvdXJzOjEwLAotICAgICAgICBtaW51dGVzOjMwLAotICAgICAgICBzZWNvbmRzOjIwLAotICAg ICAgICBtaWxsaXNlY29uZHM6MTIzfSkudG9EYXRlKCk7Ci0gICAgICBsZXQgZW5kRGF0ZSA9IG1v bWVudCh7Ci0gICAgICAgIHllYXJzOjIwMTgsCi0gICAgICAgIG1vbnRoczo0LAotICAgICAgICBk YXRlOjIsCi0gICAgICAgIGhvdXJzOjEwLAotICAgICAgICBtaW51dGVzOjMxLAotICAgICAgICBz ZWNvbmRzOjE1LAotICAgICAgICBtaWxsaXNlY29uZHM6NzB9KS50b0RhdGUoKTsKLSAgICAgIGV4 cGVjdChjYWxjdWxhdGVRdWVyeVJ1blRpbWUoc3RhcnREYXRlLCBlbmREYXRlKSkKLSAgICAgICAg LnRvRXF1YWwoJzU0IHNlY3MgOTQ3IG1zZWMnKTsKLSAgICB9KTsKLSAgfSk7Ci0KLSAgZGVzY3Jp YmUoJ3RpbWUgZGlmZmVyZW5jZSBpcyBiaWdnZXIgdGhlbiAxIG1pbnV0ZScsICgpID0+IHsKLSAg ICBpdCgnZGlzcGxheXMgbWlsbGlzZWNvbmRzJywgKCkgPT4gewotICAgICAgbGV0IHN0YXJ0RGF0 ZSA9IG1vbWVudCh7Ci0gICAgICAgIHllYXJzOjIwMTgsCi0gICAgICAgIG1vbnRoczo0LAotICAg ICAgICBkYXRlOjIsCi0gICAgICAgIGhvdXJzOjEwLAotICAgICAgICBtaW51dGVzOjMwLAotICAg ICAgICBzZWNvbmRzOjIwLAotICAgICAgICBtaWxsaXNlY29uZHM6MTIzfSkudG9EYXRlKCk7Ci0g ICAgICBsZXQgZW5kRGF0ZSA9IG1vbWVudCh7Ci0gICAgICAgIHllYXJzOjIwMTgsCi0gICAgICAg IG1vbnRoczo0LAotICAgICAgICBkYXRlOjIsCi0gICAgICAgIGhvdXJzOjEwLAotICAgICAgICBt aW51dGVzOjQwLAotICAgICAgICBzZWNvbmRzOjE1LAotICAgICAgICBtaWxsaXNlY29uZHM6NzB9 KS50b0RhdGUoKTsKLSAgICAgIGV4cGVjdChjYWxjdWxhdGVRdWVyeVJ1blRpbWUoc3RhcnREYXRl LCBlbmREYXRlKSkKLSAgICAgICAgLnRvRXF1YWwoJzkgbWluIDU0IHNlY3MnKTsKLSAgICB9KTsK LSAgfSk7Ci0KLSAgZGVzY3JpYmUoJ3RpbWUgZGlmZmVyZW5jZSBpcyBiaWdnZXIgdGhlbiAxIGhv dXInLCAoKSA9PiB7Ci0gICAgaXQoJ2Rpc3BsYXlzIHNlY29uZHMsIG1pbGxpc2Vjb25kcycsICgp ID0+IHsKLSAgICAgIGxldCBzdGFydERhdGUgPSBtb21lbnQoewotICAgICAgICB5ZWFyczoyMDE4 LAotICAgICAgICBtb250aHM6NCwKLSAgICAgICAgZGF0ZToyLAotICAgICAgICBob3VyczoxMCwK LSAgICAgICAgbWludXRlczozMCwKLSAgICAgICAgc2Vjb25kczoyMCwKLSAgICAgICAgbWlsbGlz ZWNvbmRzOjEyM30pLnRvRGF0ZSgpOwotICAgICAgbGV0IGVuZERhdGUgPSBtb21lbnQoewotICAg ICAgICB5ZWFyczoyMDE4LAotICAgICAgICBtb250aHM6NCwKLSAgICAgICAgZGF0ZToyLAotICAg ICAgICBob3VyczoxMSwKLSAgICAgICAgbWludXRlczo0MCwKLSAgICAgICAgc2Vjb25kczoxNSwK LSAgICAgICAgbWlsbGlzZWNvbmRzOjcwfSkudG9EYXRlKCk7Ci0gICAgICBleHBlY3QoY2FsY3Vs YXRlUXVlcnlSdW5UaW1lKHN0YXJ0RGF0ZSwgZW5kRGF0ZSkpCi0gICAgICAgIC50b0VxdWFsKCcx IGhyIDkgbWluJyk7Ci0gICAgfSk7Ci0gIH0pOwotfSk7CmRpZmYgLS1naXQgYS93ZWIvcmVncmVz c2lvbi9qYXZhc2NyaXB0L3NxbGVkaXRvci9jYWxsX3JlbmRlcl9hZnRlcl9wb2xsX3NwZWMuanMg Yi93ZWIvcmVncmVzc2lvbi9qYXZhc2NyaXB0L3NxbGVkaXRvci9jYWxsX3JlbmRlcl9hZnRlcl9w b2xsX3NwZWMuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDkwMzVmMTYxMi4uMDAw MDAwMDAwCi0tLSBhL3dlYi9yZWdyZXNzaW9uL2phdmFzY3JpcHQvc3FsZWRpdG9yL2NhbGxfcmVu ZGVyX2FmdGVyX3BvbGxfc3BlYy5qcworKysgL2Rldi9udWxsCkBAIC0xLDIwMiArMCwwIEBACi0v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vCi0vLwotLy8gcGdBZG1pbiA0IC0gUG9zdGdyZVNRTCBUb29scwotLy8KLS8vIENvcHlyaWdo dCAoQykgMjAxMyAtIDIwMjIsIFRoZSBwZ0FkbWluIERldmVsb3BtZW50IFRlYW0KLS8vIFRoaXMg c29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgdGhlIFBvc3RncmVTUUwgTGljZW5jZQotLy8KLS8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vCi0KLWltcG9ydCB7Y2FsbFJlbmRlckFmdGVyUG9sbH0gZnJvbSAnLi4vLi4vLi4vcGdhZG1p bi9zdGF0aWMvanMvc3FsZWRpdG9yL2NhbGxfcmVuZGVyX2FmdGVyX3BvbGwnOwotaW1wb3J0IG1v bWVudCBmcm9tICdtb21lbnQnOwotCi1kZXNjcmliZSgnI2NhbGxSZW5kZXJBZnRlclBvbGwnLCAo KSA9PiB7Ci0gIGxldCBzcWxFZGl0b3JTcHksIHF1ZXJ5UmVzdWx0LCBOb3RpZnk7Ci0gIGJlZm9y ZUVhY2goKCkgPT4gewotICAgIGxldCB0b2RheSA9IG1vbWVudCgnMjAxOC0wMS0wMSAxMDoxMjoz MScpLnRvRGF0ZSgpOwotICAgIGphc21pbmUuY2xvY2soKS5pbnN0YWxsKCk7Ci0gICAgamFzbWlu ZS5jbG9jaygpLm1vY2tEYXRlKHRvZGF5KTsKLSAgICBzcWxFZGl0b3JTcHkgPSB7Ci0gICAgICBf cmVuZGVyOiBqYXNtaW5lLmNyZWF0ZVNweSgnU1FMRWRpdG9yLl9yZW5kZXInKSwKLSAgICAgIHNl dElzUXVlcnlSdW5uaW5nOiBqYXNtaW5lLmNyZWF0ZVNweSgnU1FMRWRpdG9yLnNldElzUXVlcnlS dW5uaW5nJyksCi0gICAgICB0cmlnZ2VyOiBqYXNtaW5lLmNyZWF0ZVNweSgnU1FMRWRpdG9yLnRy aWdnZXInKSwKLSAgICAgIHVwZGF0ZV9tc2dfaGlzdG9yeTogamFzbWluZS5jcmVhdGVTcHkoJ1NR TEVkaXRvci51cGRhdGVfbXNnX2hpc3RvcnknKSwKLSAgICAgIGRpc2FibGVfdG9vbF9idXR0b25z OiBqYXNtaW5lLmNyZWF0ZVNweSgnU1FMRWRpdG9yLmRpc2FibGVfdG9vbF9idXR0b25zJyksCi0g ICAgICBkaXNhYmxlX3RyYW5zYWN0aW9uX2J1dHRvbnM6IGphc21pbmUuY3JlYXRlU3B5KCdTUUxF ZGl0b3IuZGlzYWJsZV90cmFuc2FjdGlvbl9idXR0b25zJyksCi0gICAgICByZXNldF9kYXRhX3N0 b3JlOiBqYXNtaW5lLmNyZWF0ZVNweSgnU1FMRWRpdG9yLnJlc2V0X2RhdGFfc3RvcmUnKSwKLSAg ICAgIGVuYWJsZV9kaXNhYmxlX2Rvd25sb2FkX2J0bjogamFzbWluZS5jcmVhdGVTcHkoJ1NRTEVk aXRvci5lbmFibGVfZGlzYWJsZV9kb3dubG9hZF9idG4nKSwKLSAgICAgIGNoZWNrX2RiX25hbWVf Y2hhbmdlOiBqYXNtaW5lLmNyZWF0ZVNweSgnU1FMRWRpdG9yLmNoZWNrX2RiX25hbWVfY2hhbmdl JyksCi0gICAgICBxdWVyeV9zdGFydF90aW1lOiBuZXcgRGF0ZSgpLAotICAgIH07Ci0gICAgTm90 aWZ5ID0gamFzbWluZS5jcmVhdGVTcHlPYmooJ05vdGlmeScsIFsnc3VjY2VzcyddKTsKLSAgfSk7 Ci0KLSAgYWZ0ZXJFYWNoKGZ1bmN0aW9uICgpIHsKLSAgICBqYXNtaW5lLmNsb2NrKCkudW5pbnN0 YWxsKCk7Ci0gIH0pOwotCi0gIGxldCBleHBlY3RBY3Rpb24gPSAoZXhwZWN0T2JqLCBjYWxsV2l0 aFZhbHVlPW51bGwpPT4gewotICAgIGNhbGxSZW5kZXJBZnRlclBvbGwoc3FsRWRpdG9yU3B5LCBO b3RpZnksIHF1ZXJ5UmVzdWx0KTsKLSAgICBpZiAoY2FsbFdpdGhWYWx1ZSAhPT0gbnVsbCkgewot ICAgICAgZXhwZWN0KGV4cGVjdE9iaikudG9IYXZlQmVlbkNhbGxlZFdpdGgoY2FsbFdpdGhWYWx1 ZSk7Ci0gICAgfSBlbHNlIHsKLSAgICAgIGV4cGVjdChleHBlY3RPYmopLnRvSGF2ZUJlZW5DYWxs ZWRXaXRoKCk7Ci0gICAgfQotICB9OwotCi0gIGxldCBxdWVyeVJlc3VsdDEgPSAoKT0+ewotICAg IHF1ZXJ5UmVzdWx0ID0gewotICAgICAgcm93c19hZmZlY3RlZDogMTAsCi0gICAgICBoYXNfbW9y ZV9yb3dzOiBmYWxzZSwKLSAgICAgIGNvbGluZm86IHt9LAotICAgIH07Ci0gIH07Ci0KLSAgbGV0 IHF1ZXJ5UmVzdWx0MiA9ICgpPT57Ci0gICAgcXVlcnlSZXN1bHQgPSB7Ci0gICAgICByb3dzX2Fm ZmVjdGVkOiAxMCwKLSAgICAgIGhhc19tb3JlX3Jvd3M6IGZhbHNlLAotICAgICAgY29saW5mbzog dW5kZWZpbmVkLAotICAgICAgcmVzdWx0OiAnU29tZSByZXN1bHQnLAotICAgIH07Ci0gIH07Ci0K LSAgbGV0IGRpc3BsYXlOb3RpZmljYXRpb25BY3Rpb24gPSAoKT0+IHsKLSAgICBzcWxFZGl0b3JT cHkuaW5mb19ub3RpZmllcl90aW1lb3V0ID0gMTA7Ci0gICAgY2FsbFJlbmRlckFmdGVyUG9sbChz cWxFZGl0b3JTcHksIE5vdGlmeSwgcXVlcnlSZXN1bHQpOwotCi0gICAgZXhwZWN0KE5vdGlmeS5z dWNjZXNzKS50b0hhdmVCZWVuQ2FsbGVkV2l0aCgKLSAgICAgICdRdWVyeSByZXR1cm5lZCBzdWNj ZXNzZnVsbHkgaW4gMCBtc2VjLicsCi0gICAgICAxMAotICAgICk7Ci0gIH07Ci0KLSAgbGV0IHNh dmVBY3Rpb24gPSAoKT0+IHsKLSAgICBjYWxsUmVuZGVyQWZ0ZXJQb2xsKHNxbEVkaXRvclNweSwg Tm90aWZ5LCBxdWVyeVJlc3VsdCk7Ci0KLSAgICBleHBlY3Qoc3FsRWRpdG9yU3B5LnVwZGF0ZV9t c2dfaGlzdG9yeSkudG9IYXZlQmVlbkNhbGxlZFdpdGgoCi0gICAgICB0cnVlLAotICAgICAgJ1Nv bWUgcmVzdWx0XG5cblF1ZXJ5IHJldHVybmVkIHN1Y2Nlc3NmdWxseSBpbiAwIG1zZWMuJywKLSAg ICAgIGZhbHNlCi0gICAgKTsKLSAgfTsKLQotICBkZXNjcmliZSgnaXQgaXMgbm90IGEgcXVlcnkg dG9vbCcsICgpID0+IHsKLSAgICBiZWZvcmVFYWNoKCgpID0+IHsKLSAgICAgIHNxbEVkaXRvclNw eS5pc19xdWVyeV90b29sID0gZmFsc2U7Ci0gICAgfSk7Ci0KLSAgICBkZXNjcmliZSgncXVlcnkg d2FzIHN1Y2Nlc3NmdWwgYW5kIGhhdmUgcmVzdWx0cycsICgpID0+IHsKLSAgICAgIGJlZm9yZUVh Y2gocXVlcnlSZXN1bHQxKTsKLQotICAgICAgaXQoJ3JlbmRlcnMgdGhlIGVkaXRvcicsICgpID0+ IHsKLSAgICAgICAgZXhwZWN0QWN0aW9uKHNxbEVkaXRvclNweS5fcmVuZGVyLCBxdWVyeVJlc3Vs dCk7Ci0gICAgICB9KTsKLQotICAgICAgaXQoJ2luZm9ybSBzcWxlZGl0b3IgdGhhdCB0aGUgcXVl cnkgc3RvcHBlZCBydW5uaW5nJywgKCkgPT4gewotICAgICAgICBleHBlY3RBY3Rpb24oc3FsRWRp dG9yU3B5LnNldElzUXVlcnlSdW5uaW5nLCBmYWxzZSk7Ci0gICAgICB9KTsKLQotICAgICAgaXQo J2hpZGVzIHRoZSBsb2FkaW5nIGljb24nLCAoKSA9PiB7Ci0gICAgICAgIGV4cGVjdEFjdGlvbihz cWxFZGl0b3JTcHkudHJpZ2dlciwgJ3BnYWRtaW4tc3FsZWRpdG9yOmxvYWRpbmctaWNvbjpoaWRl Jyk7Ci0gICAgICB9KTsKLSAgICB9KTsKLQotICAgIGRlc2NyaWJlKCdxdWVyeSB3YXMgc3VjY2Vz c2Z1bCBidXQgaGFkIG5vIHJlc3VsdCB0byBkaXNwbGF5JywgKCkgPT4gewotICAgICAgYmVmb3Jl RWFjaChxdWVyeVJlc3VsdDIpOwotCi0gICAgICBpdCgnc2F2ZXMgZXhlY3V0aW9uIGluZm9ybWF0 aW9uIGluIHRoZSBoaXN0b3J5JywgKCkgPT4gewotICAgICAgICBzYXZlQWN0aW9uKCk7Ci0gICAg ICB9KTsKLQotICAgICAgaXQoJ3Jlc2V0cyB0aGUgY2hhbmdlZCBkYXRhIHN0b3JlJywgKCkgPT4g ewotICAgICAgICBleHBlY3RBY3Rpb24oc3FsRWRpdG9yU3B5LnJlc2V0X2RhdGFfc3RvcmUpOwot ICAgICAgfSk7Ci0KLSAgICAgIGl0KCdpbmZvcm0gc3FsZWRpdG9yIHRoYXQgdGhlIHF1ZXJ5IHN0 b3BwZWQgcnVubmluZycsICgpID0+IHsKLSAgICAgICAgZXhwZWN0QWN0aW9uKHNxbEVkaXRvclNw eS5zZXRJc1F1ZXJ5UnVubmluZywgZmFsc2UpOwotICAgICAgfSk7Ci0KLSAgICAgIGl0KCdoaWRl cyB0aGUgbG9hZGluZyBpY29uJywgKCkgPT4gewotICAgICAgICBleHBlY3RBY3Rpb24oc3FsRWRp dG9yU3B5LnRyaWdnZXIsICdwZ2FkbWluLXNxbGVkaXRvcjpsb2FkaW5nLWljb246aGlkZScpOwot ICAgICAgfSk7Ci0KLSAgICAgIGRlc2NyaWJlKCdub3RpZmljYXRpb25zIGFyZSBlbmFibGVkJywg KCkgPT4gewotICAgICAgICBpdCgnZGlzcGxheSBub3RpZmljYXRpb24nLCBkaXNwbGF5Tm90aWZp Y2F0aW9uQWN0aW9uKTsKLSAgICAgIH0pOwotCi0gICAgICBpdCgnZGlzYWJsZXMgdGhlIHNhdmUg cmVzdWx0cyBidXR0b24nLCAoKSA9PiB7Ci0gICAgICAgIGV4cGVjdEFjdGlvbihzcWxFZGl0b3JT cHkuZW5hYmxlX2Rpc2FibGVfZG93bmxvYWRfYnRuLCB0cnVlKTsKLSAgICAgICAgZXhwZWN0KHNx bEVkaXRvclNweS50cmlnZ2VyKS50b0hhdmVCZWVuQ2FsbGVkV2l0aCgncGdhZG1pbi1zcWxlZGl0 b3I6bG9hZGluZy1pY29uOmhpZGUnKTsKLSAgICAgIH0pOwotICAgIH0pOwotICB9KTsKLQotICBk ZXNjcmliZSgnaXQgaXMgYSBxdWVyeSB0b29sJywgKCkgPT4gewotICAgIGJlZm9yZUVhY2goKCkg PT4gewotICAgICAgc3FsRWRpdG9yU3B5LmlzX3F1ZXJ5X3Rvb2wgPSB0cnVlOwotICAgIH0pOwot Ci0gICAgZGVzY3JpYmUoJ3F1ZXJ5IHdhcyBzdWNjZXNzZnVsIGFuZCBoYXZlIHJlc3VsdHMnLCAo KSA9PiB7Ci0gICAgICBiZWZvcmVFYWNoKHF1ZXJ5UmVzdWx0MSk7Ci0KLSAgICAgIGl0KCdyZW5k ZXJzIHRoZSBlZGl0b3InLCAoKSA9PiB7Ci0gICAgICAgIGV4cGVjdEFjdGlvbihzcWxFZGl0b3JT cHkuX3JlbmRlciwgcXVlcnlSZXN1bHQpOwotICAgICAgfSk7Ci0KLSAgICAgIGl0KCdpbmZvcm0g c3FsZWRpdG9yIHRoYXQgdGhlIHF1ZXJ5IHN0b3BwZWQgcnVubmluZycsICgpID0+IHsKLSAgICAg ICAgZXhwZWN0QWN0aW9uKHNxbEVkaXRvclNweS5zZXRJc1F1ZXJ5UnVubmluZywgZmFsc2UpOwot ICAgICAgfSk7Ci0KLSAgICAgIGl0KCdoaWRlcyB0aGUgbG9hZGluZyBpY29uJywgKCkgPT4gewot ICAgICAgICBleHBlY3RBY3Rpb24oc3FsRWRpdG9yU3B5LnRyaWdnZXIsICdwZ2FkbWluLXNxbGVk aXRvcjpsb2FkaW5nLWljb246aGlkZScpOwotICAgICAgfSk7Ci0KLSAgICAgIGl0KCdlbmFibGVz IHNxbGVkaXRvciB0b29scyBidXR0b25zJywgKCkgPT4gewotICAgICAgICBleHBlY3RBY3Rpb24o c3FsRWRpdG9yU3B5LmRpc2FibGVfdG9vbF9idXR0b25zLCBmYWxzZSk7Ci0gICAgICB9KTsKLSAg ICB9KTsKLQotICAgIGRlc2NyaWJlKCdxdWVyeSB3YXMgc3VjY2Vzc2Z1bCBidXQgaGFkIG5vIHJl c3VsdCB0byBkaXNwbGF5JywgKCkgPT4gewotICAgICAgYmVmb3JlRWFjaChxdWVyeVJlc3VsdDIp OwotCi0gICAgICBpdCgnc2F2ZXMgZXhlY3V0aW9uIGluZm9ybWF0aW9uIGluIHRoZSBoaXN0b3J5 JywgKCkgPT4gewotICAgICAgICBzYXZlQWN0aW9uKCk7Ci0gICAgICB9KTsKLQotICAgICAgaXQo J3Jlc2V0cyB0aGUgY2hhbmdlZCBkYXRhIHN0b3JlJywgKCkgPT4gewotICAgICAgICBleHBlY3RB Y3Rpb24oc3FsRWRpdG9yU3B5LnJlc2V0X2RhdGFfc3RvcmUpOwotICAgICAgfSk7Ci0KLSAgICAg IGl0KCdpbmZvcm0gc3FsZWRpdG9yIHRoYXQgdGhlIHF1ZXJ5IHN0b3BwZWQgcnVubmluZycsICgp ID0+IHsKLSAgICAgICAgZXhwZWN0QWN0aW9uKHNxbEVkaXRvclNweS5zZXRJc1F1ZXJ5UnVubmlu ZywgZmFsc2UpOwotICAgICAgfSk7Ci0KLSAgICAgIGl0KCdoaWRlcyB0aGUgbG9hZGluZyBpY29u JywgKCkgPT4gewotICAgICAgICBleHBlY3RBY3Rpb24oc3FsRWRpdG9yU3B5LnRyaWdnZXIsICdw Z2FkbWluLXNxbGVkaXRvcjpsb2FkaW5nLWljb246aGlkZScpOwotICAgICAgfSk7Ci0KLSAgICAg IGl0KCdlbmFibGVzIHNxbGVkaXRvciB0b29scyBidXR0b25zJywgKCkgPT4gewotICAgICAgICBl eHBlY3RBY3Rpb24oc3FsRWRpdG9yU3B5LmRpc2FibGVfdG9vbF9idXR0b25zLCBmYWxzZSk7Ci0g ICAgICB9KTsKLQotICAgICAgZGVzY3JpYmUoJ25vdGlmaWNhdGlvbnMgYXJlIGVuYWJsZWQnLCAo KSA9PiB7Ci0gICAgICAgIGl0KCdkaXNwbGF5IG5vdGlmaWNhdGlvbicsIGRpc3BsYXlOb3RpZmlj YXRpb25BY3Rpb24pOwotICAgICAgfSk7Ci0KLSAgICAgIGl0KCdkaXNhYmxlcyB0aGUgc2F2ZSBy ZXN1bHRzIGJ1dHRvbicsICgpID0+IHsKLSAgICAgICAgZXhwZWN0QWN0aW9uKHNxbEVkaXRvclNw eS5lbmFibGVfZGlzYWJsZV9kb3dubG9hZF9idG4sIHRydWUpOwotCi0gICAgICAgIGV4cGVjdChz cWxFZGl0b3JTcHkudHJpZ2dlcikudG9IYXZlQmVlbkNhbGxlZFdpdGgoJ3BnYWRtaW4tc3FsZWRp dG9yOmxvYWRpbmctaWNvbjpoaWRlJyk7Ci0gICAgICB9KTsKLQotICAgICAgaXQoJ2NoZWNrIHdo ZXRoZXIgZGF0YWJhc2UgaGFzIGJlZW4gbW92ZWQvcmVuYW1lZCcsICgpID0+IHsKLSAgICAgICAg Y2FsbFJlbmRlckFmdGVyUG9sbChzcWxFZGl0b3JTcHksIE5vdGlmeSwgcXVlcnlSZXN1bHQpOwot Ci0gICAgICAgIGV4cGVjdChzcWxFZGl0b3JTcHkudHJpZ2dlcikudG9IYXZlQmVlbkNhbGxlZFdp dGgoJ3BnYWRtaW4tc3FsZWRpdG9yOmNoZWNrX3N5bmNocm9ub3VzX2RiX25hbWVfY2hhbmdlJywg cXVlcnlSZXN1bHQpOwotCi0gICAgICAgIGV4cGVjdChzcWxFZGl0b3JTcHkudHJpZ2dlcikudG9I YXZlQmVlbkNhbGxlZFdpdGgoJ3BnYWRtaW4tc3FsZWRpdG9yOmxvYWRpbmctaWNvbjpoaWRlJyk7 Ci0gICAgICB9KTsKLSAgICB9KTsKLSAgfSk7Ci19KTsKZGlmZiAtLWdpdCBhL3dlYi9yZWdyZXNz aW9uL2phdmFzY3JpcHQvc3FsZWRpdG9yL2V4ZWN1dGVfcXVlcnlfc3BlYy5qcyBiL3dlYi9yZWdy ZXNzaW9uL2phdmFzY3JpcHQvc3FsZWRpdG9yL2V4ZWN1dGVfcXVlcnlfc3BlYy5qcwpkZWxldGVk IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOWExMzQwMWUyLi4wMDAwMDAwMDAKLS0tIGEvd2ViL3Jl Z3Jlc3Npb24vamF2YXNjcmlwdC9zcWxlZGl0b3IvZXhlY3V0ZV9xdWVyeV9zcGVjLmpzCisrKyAv ZGV2L251bGwKQEAgLTEsMTA0NCArMCwwIEBACi0vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwotLy8KLS8vIHBn QWRtaW4gNCAtIFBvc3RncmVTUUwgVG9vbHMKLS8vCi0vLyBDb3B5cmlnaHQgKEMpIDIwMTMgLSAy MDIyLCBUaGUgcGdBZG1pbiBEZXZlbG9wbWVudCBUZWFtCi0vLyBUaGlzIHNvZnR3YXJlIGlzIHJl bGVhc2VkIHVuZGVyIHRoZSBQb3N0Z3JlU1FMIExpY2VuY2UKLS8vCi0vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v LwotCi1pbXBvcnQgKiBhcyBzdWJqZWN0IGZyb20gJ3NvdXJjZXMvc3FsZWRpdG9yL2V4ZWN1dGVf cXVlcnknOwotaW1wb3J0ICogYXMgaHR0cEVycm9ySGFuZGxlciBmcm9tICdzb3VyY2VzL3NxbGVk aXRvci9xdWVyeV90b29sX2h0dHBfZXJyb3JfaGFuZGxlcic7Ci1pbXBvcnQgYXhpb3MgZnJvbSAn YXhpb3MnOwotaW1wb3J0IE1vY2tBZGFwdGVyIGZyb20gJ2F4aW9zLW1vY2stYWRhcHRlcic7Ci1p bXBvcnQgJCBmcm9tICdqcXVlcnknOwotCi1jb25zdCBjb250ZXh0ID0gZGVzY3JpYmU7Ci0KLWRl c2NyaWJlKCdFeGVjdXRlUXVlcnknLCAoKSA9PiB7Ci0gIGxldCBzcWxFZGl0b3JNb2NrOwotICBs ZXQgbmV0d29ya01vY2s7Ci0gIGxldCBleGVjdXRlUXVlcnk7Ci0gIGxldCB1c2VyTWFuYWdlbWVu dE1vY2s7Ci0gIGxldCBpc05ld1RyYW5zYWN0aW9uUmVxdWlyZWRNb2NrOwotCi0gIGNvbnN0IHN0 YXJ0VGltZSA9IG5ldyBEYXRlKDIwMTgsIDEsIDI5LCAxMiwgMTUsIDUyKTsKLSAgYmVmb3JlRWFj aCgoKSA9PiB7Ci0gICAgbmV0d29ya01vY2sgPSBuZXcgTW9ja0FkYXB0ZXIoYXhpb3MpOwotICAg IHVzZXJNYW5hZ2VtZW50TW9jayA9IGphc21pbmUuY3JlYXRlU3B5T2JqKCdVc2VyTWFuYWdlbWVu dCcsIFsKLSAgICAgICdpc1BnYUxvZ2luUmVxdWlyZWQnLAotICAgICAgJ3BnYUxvZ2luJywKLSAg ICBdKTsKLQotICAgIHNxbEVkaXRvck1vY2sgPSBqYXNtaW5lLmNyZWF0ZVNweU9iaignU3FsRWRp dG9yJywgWwotICAgICAgJ2NhbGxfcmVuZGVyX2FmdGVyX3BvbGwnLAotICAgICAgJ2Rpc2FibGVf dG9vbF9idXR0b25zJywKLSAgICAgICdyZXNldFF1ZXJ5SGlzdG9yeU9iamVjdCcsCi0gICAgICAn c2V0SXNRdWVyeVJ1bm5pbmcnLAotICAgICAgJ3RyaWdnZXInLAotICAgICAgJ3VwZGF0ZV9tc2df aGlzdG9yeScsCi0gICAgICAnX2hpZ2hsaWdodF9lcnJvcicsCi0gICAgICAnX2luaXRfcG9sbGlu Z19mbGFncycsCi0gICAgICAnc2F2ZVN0YXRlJywKLSAgICAgICdpbml0VHJhbnNhY3Rpb24nLAot ICAgICAgJ2hhbmRsZV9jb25uZWN0aW9uX2xvc3QnLAotICAgICAgJ3VwZGF0ZV9ub3RpZmljYXRp b25zJywKLSAgICAgICdkaXNhYmxlX3RyYW5zYWN0aW9uX2J1dHRvbnMnLAotICAgICAgJ2VuYWJs ZV9kaXNhYmxlX2Rvd25sb2FkX2J0bicsCi0gICAgXSk7Ci0gICAgc3FsRWRpdG9yTW9jay50cmFu c0lkID0gMTIzOwotICAgIHNxbEVkaXRvck1vY2sucm93c19hZmZlY3RlZCA9IDEwMDA7Ci0gICAg ZXhlY3V0ZVF1ZXJ5ID0gbmV3IHN1YmplY3QuRXhlY3V0ZVF1ZXJ5KHNxbEVkaXRvck1vY2ssIHVz ZXJNYW5hZ2VtZW50TW9jayk7Ci0gICAgaXNOZXdUcmFuc2FjdGlvblJlcXVpcmVkTW9jayA9IHNw eU9uKGh0dHBFcnJvckhhbmRsZXIsICdodHRwUmVzcG9uc2VSZXF1aXJlc05ld1RyYW5zYWN0aW9u Jyk7Ci0gIH0pOwotCi0gIGFmdGVyRWFjaCgoKSA9PiB7Ci0gICAgbmV0d29ya01vY2sucmVzdG9y ZSgpOwotICB9KTsKLQotICBsZXQgdXBkYXRlSGlzdG9yeU5vdENhbGxlZCA9IChkb25lKT0+IHsK LSAgICBzZXRUaW1lb3V0KCgpID0+IHsKLSAgICAgIGV4cGVjdChzcWxFZGl0b3JNb2NrLnVwZGF0 ZV9tc2dfaGlzdG9yeSkubm90LnRvSGF2ZUJlZW5DYWxsZWQoKTsKLSAgICAgIGRvbmUoKTsKLSAg ICB9LCAwKTsKLSAgfTsKLQotICBsZXQgcGdhTG9naW5Ob3RDYWxsZWQgPSAoZG9uZSk9PiB7Ci0g ICAgc2V0VGltZW91dCgoKSA9PiB7Ci0gICAgICBleHBlY3QodXNlck1hbmFnZW1lbnRNb2NrLnBn YUxvZ2luKS5ub3QudG9IYXZlQmVlbkNhbGxlZCgpOwotICAgICAgZG9uZSgpOwotICAgIH0sIDAp OwotICB9OwotCi0gIGxldCBkaXNhYmxlVG9vbEJ1dHRvbnNOb3RDYWxsZWQgPSAoZG9uZSk9PiB7 Ci0gICAgc2V0VGltZW91dCgoKSA9PiB7Ci0gICAgICBleHBlY3Qoc3FsRWRpdG9yTW9jay5kaXNh YmxlX3Rvb2xfYnV0dG9ucykubm90LnRvSGF2ZUJlZW5DYWxsZWQoKTsKLSAgICAgIGRvbmUoKTsK LSAgICB9LCAwKTsKLSAgfTsKLQotICBsZXQgY2FuY2VsQnV0dG9uTm90Q2FsbGVkID0gKGRvbmUp PT4gewotICAgIGxldCBjYW5jZWxCdXR0b25TcHkgPSBzcHlPbigkLmZuLCAncHJvcCcpOwotICAg IHNldFRpbWVvdXQoKCkgPT4gewotICAgICAgZXhwZWN0KGNhbmNlbEJ1dHRvblNweSkubm90LnRv SGF2ZUJlZW5DYWxsZWQoKTsKLSAgICAgIGRvbmUoKTsKLSAgICB9LCAwKTsKLSAgfTsKLQotICBs ZXQgYmVmb3JlRWFjaE5vdENvbm5lY3RlZCA9ICgpPT4gewotICAgIGxldCByZXNwb25zZSA9IHsK LSAgICAgIGRhdGE6IHsKLSAgICAgICAgc3RhdHVzOiAnTm90Q29ubmVjdGVkJywKLSAgICAgICAg cmVzdWx0OiAnU29tZSBpbnRlcmVzdGluZyByZXN1bHQnLAotICAgICAgfSwKLSAgICB9OwotICAg IG5ldHdvcmtNb2NrLm9uR2V0KCcvc3FsZWRpdG9yL3F1ZXJ5X3Rvb2wvcG9sbC8xMjMnKS5yZXBs eSgyMDAsIHJlc3BvbnNlKTsKLQotICAgIGV4ZWN1dGVRdWVyeS5wb2xsKCk7Ci0gIH07Ci0KLSAg bGV0IGJlZm9yZUVhY2hQeXRob25TZXJ2ZXIgPSAoKT0+IHsKLSAgICBuZXR3b3JrTW9jay5vbkdl dCgnL3NxbGVkaXRvci9xdWVyeV90b29sL3BvbGwvMTIzJykucmVwbHkoNDA0LCB1bmRlZmluZWQp OwotICAgIGV4ZWN1dGVRdWVyeS5wb2xsKCk7Ci0gIH07Ci0KLSAgbGV0IHNldEZsYWdRdWVyeUlz UnVubmluZ1Rlc3RDYXNlID0gKCk9PiB7Ci0gICAgaXQoJ3Nob3VsZCBzZXQgdGhlIGZsYWcgdG8g aW5mb3JtIFNRTEVkaXRvciBhIHF1ZXJ5IGlzIHJ1bm5pbmcnLCAoZG9uZSkgPT4gewotICAgICAg c2V0VGltZW91dCgoKSA9PiB7Ci0gICAgICAgIGV4cGVjdChzcWxFZGl0b3JNb2NrLnNldElzUXVl cnlSdW5uaW5nKQotICAgICAgICAgIC50b0hhdmVCZWVuQ2FsbGVkV2l0aCh0cnVlKTsKLSAgICAg ICAgZG9uZSgpOwotICAgICAgfSwgMCk7Ci0gICAgfSk7Ci0gIH07Ci0KLSAgbGV0IHVwZGF0ZUhp c3RvcnlNZXNzYWdlVGVzdENhc2UgPSAoKT0+IHsKLSAgICBpdCgnc2hvdWxkIHVwZGF0ZSBoaXN0 b3J5IG1lc3NhZ2UnLCAoZG9uZSkgPT4gewotICAgICAgc2V0VGltZW91dCgoKSA9PiB7Ci0gICAg ICAgIGV4cGVjdChzcWxFZGl0b3JNb2NrLnVwZGF0ZV9tc2dfaGlzdG9yeSkKLSAgICAgICAgICAu dG9IYXZlQmVlbkNhbGxlZFdpdGgoJ0J1c3knLCAnU29tZSBpbXBvcnRhbnQgcmVzdWx0JywgZmFs c2UpOwotICAgICAgICBkb25lKCk7Ci0gICAgICB9LCAwKTsKLSAgICB9KTsKLSAgfTsKLQotICBs ZXQgY2FsbFBvb2xpbmdUZXN0Q2FzZSA9ICgpPT4gewotICAgIGl0KCdzaG91bGQgcmVjdXJzaXZl bHkgY2FsbCBwb2xsaW5nJywgKGRvbmUpID0+IHsKLSAgICAgIHNldFRpbWVvdXQoKCkgPT4gewot ICAgICAgICBleHBlY3QoZXhlY3V0ZVF1ZXJ5LmRlbGF5ZWRQb2xsKQotICAgICAgICAgIC50b0hh dmVCZWVuQ2FsbGVkKCk7Ci0gICAgICAgIGRvbmUoKTsKLSAgICAgIH0sIDApOwotICAgIH0pOwot ICB9OwotCi0gIGxldCBzaG91bGROb3RVcGRhdGVIaXN0b3J5TWVzc2FnZVRlc3RDYXNlID0gKCk9 PiB7Ci0gICAgaXQoJ3Nob3VsZCBkb2VzIG5vdCB1cGRhdGUgaGlzdG9yeScsIChkb25lKSA9PiB7 Ci0gICAgICB1cGRhdGVIaXN0b3J5Tm90Q2FsbGVkKGRvbmUpOwotICAgIH0pOwotICB9OwotCi0g IGxldCBzaG91bGRIaWRlTG9hZGluZ0ljb25UZXN0Q2FzZSA9ICgpPT4gewotICAgIGl0KCdzaG91 bGQgaGlkZSB0aGUgbG9hZGluZyBpY29uJywgKGRvbmUpID0+IHsKLSAgICAgIHNldFRpbWVvdXQo KCkgPT4gewotICAgICAgICBleHBlY3Qoc3FsRWRpdG9yTW9jay50cmlnZ2VyKQotICAgICAgICAg IC50b0hhdmVCZWVuQ2FsbGVkV2l0aCgncGdhZG1pbi1zcWxlZGl0b3I6bG9hZGluZy1pY29uOmhp ZGUnKTsKLSAgICAgICAgZG9uZSgpOwotICAgICAgfSwgMCk7Ci0gICAgfSk7Ci0gIH07Ci0KLSAg bGV0IHNob3VsZFVwZGF0ZUxvYWRpbmdJY29uTWVzc2FnZVRlc3RDYXNlID0gKCk9PnsKLSAgICBp dCgnc2hvdWxkIHVwZGF0ZSB0aGUgbG9hZGluZyBpY29uIG1lc3NhZ2UnLCAoZG9uZSkgPT4gewot ICAgICAgc2V0VGltZW91dCgoKSA9PiB7Ci0gICAgICAgIGV4cGVjdChzcWxFZGl0b3JNb2NrLnRy aWdnZXIpCi0gICAgICAgICAgLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKAotICAgICAgICAgICAgJ3Bn YWRtaW4tc3FsZWRpdG9yOmxvYWRpbmctaWNvbjptZXNzYWdlJywKLSAgICAgICAgICAgICdMb2Fk aW5nIGRhdGEgZnJvbSB0aGUgZGF0YWJhc2Ugc2VydmVyIGFuZCByZW5kZXJpbmcuLi4nCi0gICAg ICAgICAgKTsKLSAgICAgICAgZG9uZSgpOwotICAgICAgfSwgMCk7Ci0gICAgfSk7Ci0gIH07Ci0K LSAgbGV0IGFkZE5ld0VudHJ5VG9IaXN0b3J5VGVzdENhc2UgPSAoKT0+ewotICAgIGl0KCdzaG91 bGQgYWRkIG5ldyBlbnRyeSB0byBoaXN0b3J5IGFuZCB1cGRhdGUgdGhlIE1lc3NhZ2VzIHRhYiBh bmQgY2xlYXIgdGhlIHJlc3VsdCBncmlkJywgKGRvbmUpID0+IHsKLSAgICAgIHNldFRpbWVvdXQo KCkgPT4gewotICAgICAgICBleHBlY3Qoc3FsRWRpdG9yTW9jay51cGRhdGVfbXNnX2hpc3Rvcnkp Ci0gICAgICAgICAgLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKAotICAgICAgICAgICAgZmFsc2UsCi0g ICAgICAgICAgICAnU29tZSBpbnRlcmVzdGluZyByZXN1bHQnLAotICAgICAgICAgICAgdHJ1ZQot ICAgICAgICAgICk7Ci0gICAgICAgIGRvbmUoKTsKLSAgICAgIH0sIDApOwotICAgIH0pOwotICB9 OwotCi0gIGxldCBzaG91bGRFbmFibGVUb29sc0J1dHRvblRlc3RDYXNlID0gKCk9PnsKLSAgICBp dCgnc2hvdWxkIGVuYWJsZSB0aGUgdG9vbCBidXR0b25zJywgKGRvbmUpID0+IHsKLSAgICAgIHNl dFRpbWVvdXQoCi0gICAgICAgICgpID0+IHsKLSAgICAgICAgICBleHBlY3Qoc3FsRWRpdG9yTW9j ay5kaXNhYmxlX3Rvb2xfYnV0dG9ucykudG9IYXZlQmVlbkNhbGxlZFdpdGgoZmFsc2UpOwotICAg ICAgICAgIGRvbmUoKTsKLSAgICAgICAgfSwgMCk7Ci0gICAgfSk7Ci0gIH07Ci0KLSAgbGV0IGFk ZE5ld0VudHJ5VG9IaXN0b3J5RXhlY3V0aW9uQ2FuY2VsVGVzdENhc2UgPSAoKT0+IHsKLSAgICBp dCgnc2hvdWxkIGFkZCBuZXcgZW50cnkgdG8gaGlzdG9yeSwgYWRkIGNhbmNlbGxhdGlvbiBtZXNz YWdlIHRvIE1lc3NhZ2VzIHRhYiBhbmQgY2xlYXIgdGhlIHJlc3VsdCBncmlkJywgKGRvbmUpID0+ IHsKLSAgICAgIHNldFRpbWVvdXQoKCkgPT4gewotICAgICAgICBleHBlY3Qoc3FsRWRpdG9yTW9j ay51cGRhdGVfbXNnX2hpc3RvcnkpCi0gICAgICAgICAgLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKAot ICAgICAgICAgICAgZmFsc2UsCi0gICAgICAgICAgICAnRXhlY3V0aW9uIENhbmNlbGxlZCEnLAot ICAgICAgICAgICAgdHJ1ZQotICAgICAgICAgICk7Ci0gICAgICAgIGRvbmUoKTsKLSAgICAgIH0s IDApOwotICAgIH0pOwotICB9OwotCi0gIGxldCBzaG91bGRSZXNldExhc3RRdWVyeUluZm9ybWF0 aW9uVGVzdENhc2UgPSAoKT0+IHsKLSAgICBpdCgnc2hvdWxkIHJlc2V0IGxhc3QgcXVlcnkgaW5m b3JtYXRpb24nLCAoZG9uZSkgPT4gewotICAgICAgc2V0VGltZW91dCgKLSAgICAgICAgKCkgPT4g ewotICAgICAgICAgIGV4cGVjdChzcWxFZGl0b3JNb2NrLnJlc2V0UXVlcnlIaXN0b3J5T2JqZWN0 KQotICAgICAgICAgICAgLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKHNxbEVkaXRvck1vY2spOwotICAg ICAgICAgIGRvbmUoKTsKLSAgICAgICAgfSwgMCk7Ci0gICAgfSk7Ci0gIH07Ci0KLSAgbGV0IHNo b3VsZE5vdEFkZE5ld0VudHJ5VGVzdENhc2UgPSAoKT0+IHsKLSAgICBpdCgnc2hvdWxkIG5vdCBh ZGQgbmV3IGVudHJ5IHRvIGhpc3RvcnkgYW5kIHVwZGF0ZSB0aGUgTWVzc2FnZXMgdGFiJywgKGRv bmUpID0+IHsKLSAgICAgIHVwZGF0ZUhpc3RvcnlOb3RDYWxsZWQoZG9uZSk7Ci0gICAgfSk7Ci0g IH07Ci0KLSAgbGV0IHNob3VsZE5vdEhpZ2hsaWdodEVycm9yVGVzdENhc2UgPSAoKT0+ewotICAg IGl0KCdzaG91bGQgbm90IGhpZ2hsaWdodCB0aGUgZXJyb3IgaW4gdGhlIFNRTCBwYW5lbCcsIChk b25lKSA9PiB7Ci0gICAgICBzZXRUaW1lb3V0KAotICAgICAgICAoKSA9PiB7Ci0gICAgICAgICAg ZXhwZWN0KHNxbEVkaXRvck1vY2suX2hpZ2hsaWdodF9lcnJvcikubm90Ci0gICAgICAgICAgICAu dG9IYXZlQmVlbkNhbGxlZCgpOwotICAgICAgICAgIGRvbmUoKTsKLSAgICAgICAgfSwgMCk7Ci0g ICAgfSk7Ci0gIH07Ci0KLSAgbGV0IHNob3VsZEhpZ2hsaWdodEVycm9yVGVzdENhc2UgPSAobXNn KT0+ewotICAgIGl0KCdzaG91bGQgaGlnaGxpZ2h0IHRoZSBlcnJvciBpbiB0aGUgU1FMIHBhbmVs JywgKGRvbmUpID0+IHsKLSAgICAgIHNldFRpbWVvdXQoCi0gICAgICAgICgpID0+IHsKLSAgICAg ICAgICBleHBlY3Qoc3FsRWRpdG9yTW9jay5faGlnaGxpZ2h0X2Vycm9yKQotICAgICAgICAgICAg LnRvSGF2ZUJlZW5DYWxsZWRXaXRoKG1zZyk7Ci0gICAgICAgICAgZG9uZSgpOwotICAgICAgICB9 LCAwKTsKLSAgICB9KTsKLSAgfTsKLQotICBsZXQgc2hvdWxkTG9naW5Ob3REaXNwbGF5ZWRUZXN0 Q2FzZSA9ICgpPT57Ci0gICAgaXQoJ3Nob3VsZCBsb2dpbiBpcyBub3QgZGlzcGxheWVkJywgKGRv bmUpID0+IHsKLSAgICAgIHBnYUxvZ2luTm90Q2FsbGVkKGRvbmUpOwotICAgIH0pOwotICB9Owot Ci0gIGxldCBzaG91bGROb3REaXNwbGF5UEdBTG9naW5UZXN0Q2FzZSA9ICgpPT57Ci0gICAgaXQo J3Nob3VsZCBub3QgZGlzcGxheSBwZ2EgbG9naW4nLCAoZG9uZSkgPT4gewotICAgICAgcGdhTG9n aW5Ob3RDYWxsZWQoZG9uZSk7Ci0gICAgfSk7Ci0gIH07Ci0KLSAgbGV0IHNob3VsZExvZ2luRGlz cGxheWVkVGVzdENhc2UgPSAoKT0+ewotICAgIGl0KCdzaG91bGQgbG9naW4gaXMgZGlzcGxheWVk JywgKGRvbmUpID0+IHsKLSAgICAgIHNldFRpbWVvdXQoCi0gICAgICAgICgpID0+IHsKLSAgICAg ICAgICBleHBlY3QodXNlck1hbmFnZW1lbnRNb2NrLnBnYUxvZ2luKQotICAgICAgICAgICAgLnRv SGF2ZUJlZW5DYWxsZWQoKTsKLSAgICAgICAgICBkb25lKCk7Ci0gICAgICAgIH0sIDApOwotICAg IH0pOwotICB9OwotCi0gIGxldCBhZGROZXdFbnRyeVRvSGlzdG9yeVVwZGF0ZU1zZ1Rlc3RDYXNl ID0gKG1zZyk9PiB7Ci0gICAgaXQoJ3Nob3VsZCBhZGQgbmV3IGVudHJ5IHRvIGhpc3RvcnkgYW5k IHVwZGF0ZSB0aGUgTWVzc2FnZXMgdGFiJywgKGRvbmUpID0+IHsKLSAgICAgIHNldFRpbWVvdXQo Ci0gICAgICAgICgpID0+IHsKLSAgICAgICAgICBleHBlY3Qoc3FsRWRpdG9yTW9jay51cGRhdGVf bXNnX2hpc3RvcnkpCi0gICAgICAgICAgICAudG9IYXZlQmVlbkNhbGxlZFdpdGgoZmFsc2UsIG1z Zyk7Ci0gICAgICAgICAgZG9uZSgpOwotICAgICAgICB9LCAwKTsKLSAgICB9KTsKLSAgfTsKLQot ICBsZXQgc2hvdWxkTm90U2F2ZVN0YXRlVGVzdENhc2UgPSAoKT0+ewotICAgIGl0KCdzaG91bGQg bm90IHNhdmUgdGhlIHN0YXRlJywgKGRvbmUpID0+IHsKLSAgICAgIHNldFRpbWVvdXQoKCkgPT4g ewotICAgICAgICBleHBlY3Qoc3FsRWRpdG9yTW9jay5zYXZlU3RhdGUpLm5vdC50b0hhdmVCZWVu Q2FsbGVkKCk7Ci0gICAgICAgIGRvbmUoKTsKLSAgICAgIH0sIDApOwotICAgIH0pOwotICB9Owot Ci0gIGxldCBzaG91bGRTYXZlU3RhdGVUZXN0Q2FzZSA9ICgpPT4gewotICAgIGl0KCdzaG91bGQg c2F2ZSB0aGUgc3RhdGUnLCAoZG9uZSkgPT4gewotICAgICAgc2V0VGltZW91dCgoKSA9PiB7Ci0g ICAgICAgIGV4cGVjdChzcWxFZGl0b3JNb2NrLnNhdmVTdGF0ZSkudG9IYXZlQmVlbkNhbGxlZFdp dGgoCi0gICAgICAgICAgJ2NoZWNrX2RhdGFfY2hhbmdlc190b19leGVjdXRlX3F1ZXJ5JywKLSAg ICAgICAgICBbJyddCi0gICAgICAgICk7Ci0gICAgICAgIGRvbmUoKTsKLSAgICAgIH0sIDApOwot ICAgIH0pOwotICB9OwotCi0gIGxldCBzaG91bGREaXNhYmxlQ2FuY2VsQnV0dG9uVGVzdENhc2Ug PSAoKT0+IHsKLSAgICBpdCgnc2hvdWxkIGRpc2FibGUgdGhlIGNhbmNlbCBidXR0b24nLCAoZG9u ZSkgPT4gewotICAgICAgY2FuY2VsQnV0dG9uTm90Q2FsbGVkKGRvbmUpOwotICAgIH0pOwotICB9 OwotCi0gIGxldCB3aGVuUXVlcnlJc1N0aWxsUnVubmluZ1Rlc3RDYXNlcyA9ICgpPT4gewotICAg IGRlc2NyaWJlKCd3aGVuIHF1ZXJ5IGlzIHN0aWxsIHJ1bm5pbmcnLCAoKSA9PiB7Ci0gICAgICBj b250ZXh0KCd3aGVuIG5vIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gaXMgcmV0dXJuZWQnLCAoKSA9 PiB7Ci0gICAgICAgIGJlZm9yZUVhY2goKCkgPT4gewotICAgICAgICAgIGxldCByZXNwb25zZSA9 IHsKLSAgICAgICAgICAgIGRhdGE6IHtzdGF0dXM6ICdCdXN5J30sCi0gICAgICAgICAgfTsKLQot ICAgICAgICAgIG5ldHdvcmtNb2NrLm9uR2V0KCcvc3FsZWRpdG9yL3F1ZXJ5X3Rvb2wvcG9sbC8x MjMnKS5yZXBseSgyMDAsIHJlc3BvbnNlKTsKLSAgICAgICAgICBleGVjdXRlUXVlcnkucG9sbCgp OwotICAgICAgICB9KTsKLQotICAgICAgICBzZXRGbGFnUXVlcnlJc1J1bm5pbmdUZXN0Q2FzZSgp OwotICAgICAgICBzaG91bGROb3RVcGRhdGVIaXN0b3J5TWVzc2FnZVRlc3RDYXNlKCk7Ci0gICAg ICAgIGNhbGxQb29saW5nVGVzdENhc2UoKTsKLSAgICAgIH0pOwotCi0gICAgICBjb250ZXh0KCd3 aGVuIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gaXMgcmV0dXJuZWQnLCAoKSA9PiB7Ci0gICAgICAg IGJlZm9yZUVhY2goKCkgPT4gewotICAgICAgICAgIGxldCByZXNwb25zZSA9IHsKLSAgICAgICAg ICAgIGRhdGE6IHsKLSAgICAgICAgICAgICAgc3RhdHVzOiAnQnVzeScsCi0gICAgICAgICAgICAg IHJlc3VsdDogJ1NvbWUgaW1wb3J0YW50IHJlc3VsdCcsCi0gICAgICAgICAgICB9LAotICAgICAg ICAgIH07Ci0KLSAgICAgICAgICBuZXR3b3JrTW9jay5vbkdldCgnL3NxbGVkaXRvci9xdWVyeV90 b29sL3BvbGwvMTIzJykucmVwbHkoMjAwLCByZXNwb25zZSk7Ci0gICAgICAgICAgZXhlY3V0ZVF1 ZXJ5LnBvbGwoKTsKLSAgICAgICAgfSk7Ci0KLSAgICAgICAgc2V0RmxhZ1F1ZXJ5SXNSdW5uaW5n VGVzdENhc2UoKTsKLSAgICAgICAgdXBkYXRlSGlzdG9yeU1lc3NhZ2VUZXN0Q2FzZSgpOwotICAg ICAgICBjYWxsUG9vbGluZ1Rlc3RDYXNlKCk7Ci0gICAgICB9KTsKLSAgICB9KTsKLSAgfTsKLQot ICBsZXQgd2hlblF1ZXJ5V2FzQ2FuY2VsbGVkVGVzdENhc2VzID0gKCk9PiB7Ci0gICAgZGVzY3Jp YmUoJ3doZW4gcXVlcnkgd2FzIGNhbmNlbGxlZCcsICgpID0+IHsKLSAgICAgIGJlZm9yZUVhY2go KCkgPT4gewotICAgICAgICBsZXQgcmVzcG9uc2UgPSB7Ci0gICAgICAgICAgZGF0YToge3N0YXR1 czogJ0NhbmNlbCd9LAotICAgICAgICB9OwotICAgICAgICBuZXR3b3JrTW9jay5vbkdldCgnL3Nx bGVkaXRvci9xdWVyeV90b29sL3BvbGwvMTIzJykucmVwbHkoMjAwLCByZXNwb25zZSk7Ci0KLSAg ICAgICAgZXhlY3V0ZVF1ZXJ5LnBvbGwoKTsKLSAgICAgIH0pOwotCi0gICAgICBzaG91bGRIaWRl TG9hZGluZ0ljb25UZXN0Q2FzZSgpOwotICAgICAgYWRkTmV3RW50cnlUb0hpc3RvcnlFeGVjdXRp b25DYW5jZWxUZXN0Q2FzZSgpOwotICAgIH0pOwotICB9OwotCi0gIGRlc2NyaWJlKCcjcG9sbCcs ICgpID0+IHsKLSAgICBsZXQgcmVzcG9uc2U7Ci0KLSAgICBiZWZvcmVFYWNoKCgpID0+IHsKLSAg ICAgIHNxbEVkaXRvck1vY2suUE9MTF9GQUxMQkFDS19USU1FID0gKCkgPT4gewotICAgICAgICBy ZXR1cm4gMDsKLSAgICAgIH07Ci0KLSAgICAgIGV4ZWN1dGVRdWVyeS5kZWxheWVkUG9sbCA9IGph c21pbmUuY3JlYXRlU3B5KCdFeGVjdXRlUXVlcnkuZGVsYXllZFBvbGwnKTsKLSAgICB9KTsKLQot ICAgIGNvbnRleHQoJ3doZW4gU1FMRWRpdG9yIGlzIHRoZSBxdWVyeSB0b29sJywgKCkgPT4gewot ICAgICAgYmVmb3JlRWFjaCgoKSA9PiB7Ci0gICAgICAgIHNxbEVkaXRvck1vY2suaXNfcXVlcnlf dG9vbCA9IHRydWU7Ci0gICAgICB9KTsKLQotICAgICAgZGVzY3JpYmUoJ3doZW4gc2VydmVyIGFu c3dlciB3aXRoIHN1Y2Nlc3MnLCAoKSA9PiB7Ci0gICAgICAgIGRlc2NyaWJlKCd3aGVuIHF1ZXJ5 IHdhcyBzdWNjZXNzZnVsJywgKCkgPT4gewotICAgICAgICAgIGJlZm9yZUVhY2goKCkgPT4gewot ICAgICAgICAgICAgcmVzcG9uc2UgPSB7Ci0gICAgICAgICAgICAgIGRhdGE6IHtzdGF0dXM6ICdT dWNjZXNzJywgbm90aWZpZXM6IFt7J3BpZCc6IDEwMH1dfSwKLSAgICAgICAgICAgIH07Ci0gICAg ICAgICAgICBuZXR3b3JrTW9jay5vbkdldCgnL3NxbGVkaXRvci9xdWVyeV90b29sL3BvbGwvMTIz JykucmVwbHkoMjAwLCByZXNwb25zZSk7Ci0KLSAgICAgICAgICAgIGV4ZWN1dGVRdWVyeS5wb2xs KCk7Ci0gICAgICAgICAgfSk7Ci0KLSAgICAgICAgICBzaG91bGRVcGRhdGVMb2FkaW5nSWNvbk1l c3NhZ2VUZXN0Q2FzZSgpOwotCi0gICAgICAgICAgaXQoJ3Nob3VsZCByZW5kZXIgdGhlIHJlc3Vs dHMnLCAoZG9uZSkgPT4gewotICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7Ci0gICAgICAg ICAgICAgIGV4cGVjdChzcWxFZGl0b3JNb2NrLmNhbGxfcmVuZGVyX2FmdGVyX3BvbGwpCi0gICAg ICAgICAgICAgICAgLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKHtzdGF0dXM6ICdTdWNjZXNzJywgbm90 aWZpZXM6IFt7J3BpZCc6IDEwMH1dfSk7Ci0gICAgICAgICAgICAgIGRvbmUoKTsKLSAgICAgICAg ICAgIH0sIDApOwotICAgICAgICAgIH0pOwotCi0gICAgICAgICAgaXQoJ3Nob3VsZCB1cGRhdGUg dGhlIG5vdGlmaWNhdGlvbiBwYW5lbCcsIChkb25lKSA9PiB7Ci0gICAgICAgICAgICBzZXRUaW1l b3V0KCgpID0+IHsKLSAgICAgICAgICAgICAgZXhwZWN0KHNxbEVkaXRvck1vY2sudXBkYXRlX25v dGlmaWNhdGlvbnMpCi0gICAgICAgICAgICAgICAgLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKFt7J3Bp ZCc6IDEwMH1dKTsKLSAgICAgICAgICAgICAgZG9uZSgpOwotICAgICAgICAgICAgfSwgMCk7Ci0g ICAgICAgICAgfSk7Ci0gICAgICAgIH0pOwotCi0gICAgICAgIGRlc2NyaWJlKCd3aGVuIHF1ZXJ5 IHdhcyBzdWNjZXNzZnVsIGJ1dCBpbiB0cmFuc2FjdGlvbiBibG9jaycsICgpID0+IHsKLSAgICAg ICAgICBiZWZvcmVFYWNoKCgpID0+IHsKLSAgICAgICAgICAgIHJlc3BvbnNlID0gewotICAgICAg ICAgICAgICBkYXRhOiB7c3RhdHVzOiAnU3VjY2VzcycsIG5vdGlmaWVzOiBbeydwaWQnOiAxMDB9 XSwgdHJhbnNhY3Rpb25fc3RhdHVzOiAyfSwKLSAgICAgICAgICAgIH07Ci0gICAgICAgICAgICBu ZXR3b3JrTW9jay5vbkdldCgnL3NxbGVkaXRvci9xdWVyeV90b29sL3BvbGwvMTIzJykucmVwbHko MjAwLCByZXNwb25zZSk7Ci0KLSAgICAgICAgICAgIGV4ZWN1dGVRdWVyeS5wb2xsKCk7Ci0gICAg ICAgICAgfSk7Ci0KLSAgICAgICAgICBpdCgnZW5hYmxlIHRoZSB0cmFuc2FjdGlvbiBidXR0b25z JywgKGRvbmUpID0+IHsKLSAgICAgICAgICAgIHNldFRpbWVvdXQoCi0gICAgICAgICAgICAgICgp ID0+IHsKLSAgICAgICAgICAgICAgICBleHBlY3Qoc3FsRWRpdG9yTW9jay5kaXNhYmxlX3RyYW5z YWN0aW9uX2J1dHRvbnMpCi0gICAgICAgICAgICAgICAgICAudG9IYXZlQmVlbkNhbGxlZFdpdGgo ZmFsc2UpOwotICAgICAgICAgICAgICAgIGRvbmUoKTsKLSAgICAgICAgICAgICAgfSwgMCk7Ci0g ICAgICAgICAgfSk7Ci0gICAgICAgIH0pOwotCi0gICAgICAgIGRlc2NyaWJlKCd3aGVuIHF1ZXJ5 IHdhcyBzdWNjZXNzZnVsIGJ1dCBub3QgaW4gdHJhbnNhY3Rpb24gYmxvY2snLCAoKSA9PiB7Ci0g ICAgICAgICAgYmVmb3JlRWFjaCgoKSA9PiB7Ci0gICAgICAgICAgICByZXNwb25zZSA9IHsKLSAg ICAgICAgICAgICAgZGF0YToge3N0YXR1czogJ1N1Y2Nlc3MnLCBub3RpZmllczogW3sncGlkJzog MTAwfV0sIHRyYW5zYWN0aW9uX3N0YXR1czogMH0sCi0gICAgICAgICAgICB9OwotICAgICAgICAg ICAgbmV0d29ya01vY2sub25HZXQoJy9zcWxlZGl0b3IvcXVlcnlfdG9vbC9wb2xsLzEyMycpLnJl cGx5KDIwMCwgcmVzcG9uc2UpOwotCi0gICAgICAgICAgICBleGVjdXRlUXVlcnkucG9sbCgpOwot ICAgICAgICAgIH0pOwotCi0gICAgICAgICAgaXQoJ2Rpc2FibGUgdGhlIHRyYW5zYWN0aW9uIGJ1 dHRvbnMnLCAoZG9uZSkgPT4gewotICAgICAgICAgICAgc2V0VGltZW91dCgKLSAgICAgICAgICAg ICAgKCkgPT4gewotICAgICAgICAgICAgICAgIGV4cGVjdChzcWxFZGl0b3JNb2NrLmRpc2FibGVf dHJhbnNhY3Rpb25fYnV0dG9ucykKLSAgICAgICAgICAgICAgICAgIC50b0hhdmVCZWVuQ2FsbGVk V2l0aCh0cnVlKTsKLSAgICAgICAgICAgICAgICBkb25lKCk7Ci0gICAgICAgICAgICAgIH0sIDAp OwotICAgICAgICAgIH0pOwotICAgICAgICB9KTsKLQotICAgICAgICB3aGVuUXVlcnlJc1N0aWxs UnVubmluZ1Rlc3RDYXNlcygpOwotCi0gICAgICAgIGRlc2NyaWJlKCd3aGVuIHRoZSBhcHBsaWNh dGlvbiBsb3N0IGNvbm5lY3Rpb24gd2l0aCB0aGUgZGF0YWJhc2UnLCAoKSA9PiB7Ci0gICAgICAg ICAgYmVmb3JlRWFjaChiZWZvcmVFYWNoTm90Q29ubmVjdGVkKTsKLQotICAgICAgICAgIHNob3Vs ZEhpZGVMb2FkaW5nSWNvblRlc3RDYXNlKCk7Ci0gICAgICAgICAgYWRkTmV3RW50cnlUb0hpc3Rv cnlUZXN0Q2FzZSgpOwotICAgICAgICAgIHNob3VsZEVuYWJsZVRvb2xzQnV0dG9uVGVzdENhc2Uo KTsKLSAgICAgICAgfSk7Ci0KLSAgICAgICAgd2hlblF1ZXJ5V2FzQ2FuY2VsbGVkVGVzdENhc2Vz KCk7Ci0gICAgICB9KTsKLQotICAgICAgZGVzY3JpYmUoJ3doZW4gYW4gZXJyb3Igb2NjdXInLCAo KSA9PiB7Ci0gICAgICAgIGxldCBlcnJvck1lc3NhZ2VKc29uID0gewotICAgICAgICAgIGVycm9y bXNnOiAnU29tZSBlcnJvciBpbiBKU09OJywKLSAgICAgICAgfTsKLSAgICAgICAgbGV0IGVycm9y TWVzc2FnZVRleHQgPSAnU29tZSBwbGFpbiB0ZXh0IGVycm9yJzsKLQotICAgICAgICBkZXNjcmli ZSgnd2hlbiB0aGUgY29ubmVjdGlvbiB0byB0aGUgc2VydmVyIHdhcyBsb3N0JywgKCkgPT4gewot ICAgICAgICAgIGRlc2NyaWJlKCd3aGVuIEpTT04gcmVzcG9uc2UgaXMgYXZhaWxhYmxlJywgKCkg PT4gewotICAgICAgICAgICAgZGVzY3JpYmUoJ3doZW4gbG9naW4gaXMgbm90IHJlcXVpcmVkJywg KCkgPT4gewotICAgICAgICAgICAgICBiZWZvcmVFYWNoKCgpID0+IHsKLSAgICAgICAgICAgICAg ICB1c2VyTWFuYWdlbWVudE1vY2suaXNQZ2FMb2dpblJlcXVpcmVkLmFuZC5yZXR1cm5WYWx1ZShm YWxzZSk7Ci0gICAgICAgICAgICAgICAgcmVzcG9uc2UgPSB7cmVzcG9uc2VKU09OOiBlcnJvck1l c3NhZ2VKc29ufTsKLSAgICAgICAgICAgICAgICBuZXR3b3JrTW9jay5vbkdldCgnL3NxbGVkaXRv ci9xdWVyeV90b29sL3BvbGwvMTIzJykucmVwbHkoNDAxLCByZXNwb25zZSk7Ci0KLSAgICAgICAg ICAgICAgICBleGVjdXRlUXVlcnkucG9sbCgpOwotICAgICAgICAgICAgICB9KTsKLQotICAgICAg ICAgICAgICBzaG91bGRIaWRlTG9hZGluZ0ljb25UZXN0Q2FzZSgpOwotICAgICAgICAgICAgICBz aG91bGRSZXNldExhc3RRdWVyeUluZm9ybWF0aW9uVGVzdENhc2UoKTsKLSAgICAgICAgICAgICAg c2hvdWxkSGlnaGxpZ2h0RXJyb3JUZXN0Q2FzZSgnU29tZSBlcnJvciBpbiBKU09OJyk7Ci0gICAg ICAgICAgICAgIGFkZE5ld0VudHJ5VG9IaXN0b3J5VXBkYXRlTXNnVGVzdENhc2UoJ1NvbWUgZXJy b3IgaW4gSlNPTicpOwotICAgICAgICAgICAgICBzaG91bGRFbmFibGVUb29sc0J1dHRvblRlc3RD YXNlKCk7Ci0gICAgICAgICAgICAgIHNob3VsZExvZ2luTm90RGlzcGxheWVkVGVzdENhc2UoKTsK LSAgICAgICAgICAgIH0pOwotCi0gICAgICAgICAgICBkZXNjcmliZSgnd2hlbiBsb2dpbiBpcyBy ZXF1aXJlZCcsICgpID0+IHsKLSAgICAgICAgICAgICAgYmVmb3JlRWFjaCgoKSA9PiB7Ci0gICAg ICAgICAgICAgICAgdXNlck1hbmFnZW1lbnRNb2NrLmlzUGdhTG9naW5SZXF1aXJlZC5hbmQucmV0 dXJuVmFsdWUodHJ1ZSk7Ci0gICAgICAgICAgICAgICAgcmVzcG9uc2UgPSB7cmVzcG9uc2VKU09O OiBlcnJvck1lc3NhZ2VKc29ufTsKLSAgICAgICAgICAgICAgICBuZXR3b3JrTW9jay5vbkdldCgn L3NxbGVkaXRvci9xdWVyeV90b29sL3BvbGwvMTIzJykucmVwbHkoNDAxLCByZXNwb25zZSk7Ci0K LSAgICAgICAgICAgICAgICBleGVjdXRlUXVlcnkucG9sbCgpOwotICAgICAgICAgICAgICB9KTsK LQotICAgICAgICAgICAgICBzaG91bGRIaWRlTG9hZGluZ0ljb25UZXN0Q2FzZSgpOwotICAgICAg ICAgICAgICBzaG91bGRSZXNldExhc3RRdWVyeUluZm9ybWF0aW9uVGVzdENhc2UoKTsKLSAgICAg ICAgICAgICAgc2hvdWxkTm90SGlnaGxpZ2h0RXJyb3JUZXN0Q2FzZSgpOwotICAgICAgICAgICAg ICBzaG91bGROb3RBZGROZXdFbnRyeVRlc3RDYXNlKCk7Ci0gICAgICAgICAgICAgIHNob3VsZEVu YWJsZVRvb2xzQnV0dG9uVGVzdENhc2UoKTsKLSAgICAgICAgICAgICAgc2hvdWxkTG9naW5EaXNw bGF5ZWRUZXN0Q2FzZSgpOwotICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgfSk7Ci0KLSAgICAg ICAgICBkZXNjcmliZSgnd2hlbiBubyBKU09OIHJlc3BvbnNlIGlzIGF2YWlsYWJsZScsICgpID0+ IHsKLSAgICAgICAgICAgIGRlc2NyaWJlKCd3aGVuIGxvZ2luIGlzIG5vdCByZXF1aXJlZCcsICgp ID0+IHsKLSAgICAgICAgICAgICAgYmVmb3JlRWFjaCgoKSA9PiB7Ci0gICAgICAgICAgICAgICAg dXNlck1hbmFnZW1lbnRNb2NrLmlzUGdhTG9naW5SZXF1aXJlZC5hbmQucmV0dXJuVmFsdWUoZmFs c2UpOwotICAgICAgICAgICAgICAgIHJlc3BvbnNlID0gewotICAgICAgICAgICAgICAgICAgZXJy b3Jtc2c6IGVycm9yTWVzc2FnZVRleHQsCi0gICAgICAgICAgICAgICAgfTsKLSAgICAgICAgICAg ICAgICBuZXR3b3JrTW9jay5vbkdldCgnL3NxbGVkaXRvci9xdWVyeV90b29sL3BvbGwvMTIzJyku cmVwbHkoNDAxLCByZXNwb25zZSk7Ci0KLSAgICAgICAgICAgICAgICBleGVjdXRlUXVlcnkucG9s bCgpOwotICAgICAgICAgICAgICB9KTsKLQotICAgICAgICAgICAgICBzaG91bGRIaWRlTG9hZGlu Z0ljb25UZXN0Q2FzZSgpOwotICAgICAgICAgICAgICBzaG91bGRSZXNldExhc3RRdWVyeUluZm9y bWF0aW9uVGVzdENhc2UoKTsKLSAgICAgICAgICAgICAgc2hvdWxkSGlnaGxpZ2h0RXJyb3JUZXN0 Q2FzZSgnU29tZSBwbGFpbiB0ZXh0IGVycm9yJyk7Ci0gICAgICAgICAgICAgIGFkZE5ld0VudHJ5 VG9IaXN0b3J5VXBkYXRlTXNnVGVzdENhc2UoJ1NvbWUgcGxhaW4gdGV4dCBlcnJvcicpOwotICAg ICAgICAgICAgICBzaG91bGRFbmFibGVUb29sc0J1dHRvblRlc3RDYXNlKCk7Ci0gICAgICAgICAg ICAgIHNob3VsZExvZ2luTm90RGlzcGxheWVkVGVzdENhc2UoKTsKLSAgICAgICAgICAgIH0pOwot Ci0gICAgICAgICAgICBkZXNjcmliZSgnd2hlbiBsb2dpbiBpcyByZXF1aXJlZCcsICgpID0+IHsK LSAgICAgICAgICAgICAgYmVmb3JlRWFjaCgoKSA9PiB7Ci0gICAgICAgICAgICAgICAgdXNlck1h bmFnZW1lbnRNb2NrLmlzUGdhTG9naW5SZXF1aXJlZC5hbmQucmV0dXJuVmFsdWUodHJ1ZSk7Ci0g ICAgICAgICAgICAgICAgcmVzcG9uc2UgPSB7Ci0gICAgICAgICAgICAgICAgICBlcnJvcm1zZzog ZXJyb3JNZXNzYWdlVGV4dCwKLSAgICAgICAgICAgICAgICB9OwotICAgICAgICAgICAgICAgIG5l dHdvcmtNb2NrLm9uR2V0KCcvc3FsZWRpdG9yL3F1ZXJ5X3Rvb2wvcG9sbC8xMjMnKS5yZXBseSg0 MDEsIHJlc3BvbnNlKTsKLQotICAgICAgICAgICAgICAgIGV4ZWN1dGVRdWVyeS5wb2xsKCk7Ci0g ICAgICAgICAgICAgIH0pOwotCi0gICAgICAgICAgICAgIHNob3VsZEhpZGVMb2FkaW5nSWNvblRl c3RDYXNlKCk7Ci0gICAgICAgICAgICAgIHNob3VsZFJlc2V0TGFzdFF1ZXJ5SW5mb3JtYXRpb25U ZXN0Q2FzZSgpOwotICAgICAgICAgICAgICBzaG91bGROb3RIaWdobGlnaHRFcnJvclRlc3RDYXNl KCk7Ci0gICAgICAgICAgICAgIHNob3VsZE5vdEFkZE5ld0VudHJ5VGVzdENhc2UoKTsKLSAgICAg ICAgICAgICAgc2hvdWxkRW5hYmxlVG9vbHNCdXR0b25UZXN0Q2FzZSgpOwotICAgICAgICAgICAg ICBzaG91bGRMb2dpbkRpc3BsYXllZFRlc3RDYXNlKCk7Ci0KLSAgICAgICAgICAgIH0pOwotICAg ICAgICAgIH0pOwotCi0gICAgICAgICAgZGVzY3JpYmUoJ3doZW4gY2Fubm90IHJlYWNoIHRoZSBQ eXRob24gU2VydmVyJywgKCkgPT4gewotICAgICAgICAgICAgYmVmb3JlRWFjaChiZWZvcmVFYWNo UHl0aG9uU2VydmVyKTsKLQotICAgICAgICAgICAgc2hvdWxkSGlkZUxvYWRpbmdJY29uVGVzdENh c2UoKTsKLSAgICAgICAgICAgIHNob3VsZFJlc2V0TGFzdFF1ZXJ5SW5mb3JtYXRpb25UZXN0Q2Fz ZSgpOwotICAgICAgICAgICAgc2hvdWxkTm90SGlnaGxpZ2h0RXJyb3JUZXN0Q2FzZSgpOwotICAg ICAgICAgICAgYWRkTmV3RW50cnlUb0hpc3RvcnlVcGRhdGVNc2dUZXN0Q2FzZSgnTm90IGNvbm5l Y3RlZCB0byB0aGUgc2VydmVyIG9yIHRoZSBjb25uZWN0aW9uIHRvIHRoZSBzZXJ2ZXIgaGFzIGJl ZW4gY2xvc2VkLicpOwotICAgICAgICAgICAgc2hvdWxkRW5hYmxlVG9vbHNCdXR0b25UZXN0Q2Fz ZSgpOwotICAgICAgICAgICAgc2hvdWxkTG9naW5Ob3REaXNwbGF5ZWRUZXN0Q2FzZSgpOwotICAg ICAgICAgIH0pOwotICAgICAgICB9KTsKLSAgICAgIH0pOwotICAgIH0pOwotCi0gICAgY29udGV4 dCgnd2hlbiBTUUxFZGl0b3IgaXMgTk9UIHRoZSBxdWVyeSB0b29sJywgKCkgPT4gewotICAgICAg YmVmb3JlRWFjaCgoKSA9PiB7Ci0gICAgICAgIHNxbEVkaXRvck1vY2suaXNfcXVlcnlfdG9vbCA9 IGZhbHNlOwotICAgICAgfSk7Ci0KLSAgICAgIGRlc2NyaWJlKCd3aGVuIHNlcnZlciBhbnN3ZXIg d2l0aCBzdWNjZXNzJywgKCkgPT4gewotICAgICAgICBkZXNjcmliZSgnd2hlbiBxdWVyeSB3YXMg c3VjY2Vzc2Z1bCcsICgpID0+IHsKLSAgICAgICAgICBiZWZvcmVFYWNoKCgpID0+IHsKLSAgICAg ICAgICAgIHJlc3BvbnNlID0gewotICAgICAgICAgICAgICBkYXRhOiB7c3RhdHVzOiAnU3VjY2Vz cyd9LAotICAgICAgICAgICAgfTsKLSAgICAgICAgICAgIG5ldHdvcmtNb2NrLm9uR2V0KCcvc3Fs ZWRpdG9yL3F1ZXJ5X3Rvb2wvcG9sbC8xMjMnKS5yZXBseSgyMDAsIHJlc3BvbnNlKTsKLQotICAg ICAgICAgICAgZXhlY3V0ZVF1ZXJ5LnBvbGwoKTsKLSAgICAgICAgICB9KTsKLQotICAgICAgICAg IHNob3VsZFVwZGF0ZUxvYWRpbmdJY29uTWVzc2FnZVRlc3RDYXNlKCk7Ci0KLSAgICAgICAgICBp dCgnc2hvdWxkIHJlbmRlciB0aGUgcmVzdWx0cycsIChkb25lKSA9PiB7Ci0gICAgICAgICAgICBz ZXRUaW1lb3V0KCgpID0+IHsKLSAgICAgICAgICAgICAgZXhwZWN0KHNxbEVkaXRvck1vY2suY2Fs bF9yZW5kZXJfYWZ0ZXJfcG9sbCkKLSAgICAgICAgICAgICAgICAudG9IYXZlQmVlbkNhbGxlZFdp dGgoe3N0YXR1czogJ1N1Y2Nlc3MnfSk7Ci0gICAgICAgICAgICAgIGRvbmUoKTsKLSAgICAgICAg ICAgIH0sIDApOwotICAgICAgICAgIH0pOwotICAgICAgICB9KTsKLQotICAgICAgICB3aGVuUXVl cnlJc1N0aWxsUnVubmluZ1Rlc3RDYXNlcygpOwotCi0gICAgICAgIGRlc2NyaWJlKCd3aGVuIHRo ZSBhcHBsaWNhdGlvbiBsb3N0IGNvbm5lY3Rpb24gd2l0aCB0aGUgZGF0YWJhc2UnLCAoKSA9PiB7 Ci0gICAgICAgICAgYmVmb3JlRWFjaChiZWZvcmVFYWNoTm90Q29ubmVjdGVkKTsKLQotICAgICAg ICAgIHNob3VsZEhpZGVMb2FkaW5nSWNvblRlc3RDYXNlKCk7Ci0gICAgICAgICAgYWRkTmV3RW50 cnlUb0hpc3RvcnlUZXN0Q2FzZSgpOwotCi0gICAgICAgICAgaXQoJ3Nob3VsZCBOT1QgZW5hYmxl IHRoZSB0b29sIGJ1dHRvbnMnLCAoZG9uZSkgPT4gewotICAgICAgICAgICAgZGlzYWJsZVRvb2xC dXR0b25zTm90Q2FsbGVkKGRvbmUpOwotICAgICAgICAgIH0pOwotCi0gICAgICAgICAgaXQoJ3No b3VsZCBOT1QgZGlzYWJsZSB0aGUgY2FuY2VsIGJ1dHRvbicsIChkb25lKSA9PiB7Ci0gICAgICAg ICAgICBjYW5jZWxCdXR0b25Ob3RDYWxsZWQoZG9uZSk7Ci0gICAgICAgICAgfSk7Ci0gICAgICAg IH0pOwotCi0gICAgICAgIHdoZW5RdWVyeVdhc0NhbmNlbGxlZFRlc3RDYXNlcygpOwotICAgICAg fSk7Ci0KLSAgICAgIGRlc2NyaWJlKCd3aGVuIGFuIGVycm9yIG9jY3VyJywgKCkgPT4gewotICAg ICAgICBsZXQgZXJyb3JNZXNzYWdlSnNvbiA9IHsKLSAgICAgICAgICBlcnJvcm1zZzogJ1NvbWUg ZXJyb3IgaW4gSlNPTicsCi0gICAgICAgIH07Ci0gICAgICAgIGxldCBlcnJvck1lc3NhZ2VUZXh0 ID0gJ1NvbWUgcGxhaW4gdGV4dCBlcnJvcic7Ci0gICAgICAgIGxldCByZXM7Ci0KLSAgICAgICAg ZGVzY3JpYmUoJ3doZW4gdGhlIGNvbm5lY3Rpb24gdG8gdGhlIHNlcnZlciB3YXMgbG9zdCcsICgp ID0+IHsKLSAgICAgICAgICBkZXNjcmliZSgnd2hlbiBKU09OIHJlc3BvbnNlIGlzIGF2YWlsYWJs ZScsICgpID0+IHsKLSAgICAgICAgICAgIGJlZm9yZUVhY2goKCkgPT4gewotICAgICAgICAgICAg ICByZXMgPSB7cmVzcG9uc2VKU09OOiBlcnJvck1lc3NhZ2VKc29ufTsKLSAgICAgICAgICAgICAg bmV0d29ya01vY2sub25HZXQoJy9zcWxlZGl0b3IvcXVlcnlfdG9vbC9wb2xsLzEyMycpLnJlcGx5 KDQwMSwgcmVzKTsKLQotICAgICAgICAgICAgICBleGVjdXRlUXVlcnkucG9sbCgpOwotICAgICAg ICAgICAgfSk7Ci0KLSAgICAgICAgICAgIHNob3VsZEhpZGVMb2FkaW5nSWNvblRlc3RDYXNlKCk7 Ci0gICAgICAgICAgICBzaG91bGRSZXNldExhc3RRdWVyeUluZm9ybWF0aW9uVGVzdENhc2UoKTsK LSAgICAgICAgICAgIHNob3VsZEhpZ2hsaWdodEVycm9yVGVzdENhc2UoJ1NvbWUgZXJyb3IgaW4g SlNPTicpOwotICAgICAgICAgICAgYWRkTmV3RW50cnlUb0hpc3RvcnlVcGRhdGVNc2dUZXN0Q2Fz ZSgnU29tZSBlcnJvciBpbiBKU09OJyk7Ci0KLSAgICAgICAgICAgIGl0KCdzaG91bGQgZW5hYmxl IHRoZSB0b29sIGJ1dHRvbnMnLCAoZG9uZSkgPT4gewotICAgICAgICAgICAgICBkaXNhYmxlVG9v bEJ1dHRvbnNOb3RDYWxsZWQoZG9uZSk7Ci0gICAgICAgICAgICB9KTsKLQotICAgICAgICAgICAg c2hvdWxkRGlzYWJsZUNhbmNlbEJ1dHRvblRlc3RDYXNlKCk7Ci0gICAgICAgICAgfSk7Ci0gICAg ICAgICAgZGVzY3JpYmUoJ3doZW4gbm8gSlNPTiByZXNwb25zZSBpcyBhdmFpbGFibGUnLCAoKSA9 PiB7Ci0gICAgICAgICAgICBiZWZvcmVFYWNoKCgpID0+IHsKLSAgICAgICAgICAgICAgcmVzID0g e2Vycm9ybXNnOiBlcnJvck1lc3NhZ2VUZXh0fTsKLSAgICAgICAgICAgICAgbmV0d29ya01vY2su b25HZXQoJy9zcWxlZGl0b3IvcXVlcnlfdG9vbC9wb2xsLzEyMycpLnJlcGx5KDQwMSwgcmVzKTsK LQotICAgICAgICAgICAgICBleGVjdXRlUXVlcnkucG9sbCgpOwotICAgICAgICAgICAgfSk7Ci0K LSAgICAgICAgICAgIHNob3VsZEhpZGVMb2FkaW5nSWNvblRlc3RDYXNlKCk7Ci0gICAgICAgICAg ICBzaG91bGRSZXNldExhc3RRdWVyeUluZm9ybWF0aW9uVGVzdENhc2UoKTsKLSAgICAgICAgICAg IHNob3VsZEhpZ2hsaWdodEVycm9yVGVzdENhc2UoJ1NvbWUgcGxhaW4gdGV4dCBlcnJvcicpOwot ICAgICAgICAgICAgYWRkTmV3RW50cnlUb0hpc3RvcnlVcGRhdGVNc2dUZXN0Q2FzZSgnU29tZSBw bGFpbiB0ZXh0IGVycm9yJyk7Ci0KLSAgICAgICAgICAgIGl0KCdzaG91bGQgbm90IGVuYWJsZSB0 aGUgdG9vbCBidXR0b25zJywgKGRvbmUpID0+IHsKLSAgICAgICAgICAgICAgZGlzYWJsZVRvb2xC dXR0b25zTm90Q2FsbGVkKGRvbmUpOwotICAgICAgICAgICAgfSk7Ci0KLSAgICAgICAgICB9KTsK LQotICAgICAgICAgIGRlc2NyaWJlKCd3aGVuIGNhbm5vdCByZWFjaCB0aGUgUHl0aG9uIFNlcnZl cicsICgpID0+IHsKLSAgICAgICAgICAgIGJlZm9yZUVhY2goYmVmb3JlRWFjaFB5dGhvblNlcnZl cik7Ci0KLSAgICAgICAgICAgIHNob3VsZEhpZGVMb2FkaW5nSWNvblRlc3RDYXNlKCk7Ci0gICAg ICAgICAgICBzaG91bGRSZXNldExhc3RRdWVyeUluZm9ybWF0aW9uVGVzdENhc2UoKTsKLSAgICAg ICAgICAgIHNob3VsZE5vdEhpZ2hsaWdodEVycm9yVGVzdENhc2UoKTsKLSAgICAgICAgICAgIGFk ZE5ld0VudHJ5VG9IaXN0b3J5VXBkYXRlTXNnVGVzdENhc2UoJ05vdCBjb25uZWN0ZWQgdG8gdGhl IHNlcnZlciBvciB0aGUgY29ubmVjdGlvbiB0byB0aGUgc2VydmVyIGhhcyBiZWVuIGNsb3NlZC4n KTsKLQotICAgICAgICAgICAgaXQoJ3Nob3VsZCBlbmFibGUgdGhlIHRvb2wgYnV0dG9ucycsIChk b25lKSA9PiB7Ci0gICAgICAgICAgICAgIGRpc2FibGVUb29sQnV0dG9uc05vdENhbGxlZChkb25l KTsKLSAgICAgICAgICAgIH0pOwotCi0gICAgICAgICAgICBzaG91bGREaXNhYmxlQ2FuY2VsQnV0 dG9uVGVzdENhc2UoKTsKLSAgICAgICAgICB9KTsKLSAgICAgICAgfSk7Ci0gICAgICB9KTsKLSAg ICB9KTsKLSAgfSk7Ci0KLSAgZGVzY3JpYmUoJyNleGVjdXRlJywgKCkgPT4gewotICAgIGxldCBy ZXNwb25zZTsKLQotICAgIGJlZm9yZUVhY2goKCkgPT4gewotICAgICAgcmVzcG9uc2UgPSB7Ci0g ICAgICAgICdpbmZvJzogJycsCi0gICAgICAgICdlcnJvcm1zZyc6ICcnLAotICAgICAgICAnZGF0 YSc6IHsKLSAgICAgICAgICAnc3RhdHVzJzogdHJ1ZSwKLSAgICAgICAgICAnY2FuX2VkaXQnOiBm YWxzZSwKLSAgICAgICAgICAnaW5mb19ub3RpZmllcl90aW1lb3V0JzogNSwKLSAgICAgICAgICAn cmVzdWx0JzogJzInLAotICAgICAgICAgICdjYW5fZmlsdGVyJzogZmFsc2UsCi0gICAgICAgIH0s Ci0gICAgICAgICdyZXN1bHQnOiBudWxsLAotICAgICAgICAnc3VjY2Vzcyc6IDEsCi0gICAgICB9 OwotICAgIH0pOwotCi0gICAgY29udGV4dCgnd2hlbiB0aGUgU1FMIHN0YXRlbWVudCBpcyBlbXB0 eScsICgpID0+IHsKLSAgICAgIGl0KCdzaG91bGQgcmV0dXJuIHdpdGhvdXQgZXhlY3V0aW5nJywg KGRvbmUpID0+IHsKLSAgICAgICAgbGV0IHdhc05ldHdvcmtDYWxsZWQgPSBmYWxzZTsKLSAgICAg ICAgbmV0d29ya01vY2sub25BbnkoJy9zcWxlZGl0b3IvcXVlcnlfdG9vbC9zdGFydC8xMjMnKS5y ZXBseSgoKSA9PiB7Ci0gICAgICAgICAgd2FzTmV0d29ya0NhbGxlZCA9IHRydWU7Ci0gICAgICAg IH0pOwotCi0gICAgICAgIGV4ZWN1dGVRdWVyeS5leGVjdXRlKCcnLCB7fSk7Ci0KLSAgICAgICAg c2V0VGltZW91dCgoKSA9PiB7Ci0gICAgICAgICAgZXhwZWN0KHdhc05ldHdvcmtDYWxsZWQpLnRv RXF1YWwoZmFsc2UpOwotICAgICAgICAgIGRvbmUoKTsKLSAgICAgICAgfSwgMCk7Ci0gICAgICB9 KTsKLSAgICB9KTsKLQotICAgIGNvbnRleHQoJ3doZW4gdGhlIFNRTCBzdGF0ZW1lbnQgaXMgbm90 IGVtcHR5JywgKCkgPT4gewotICAgICAgbGV0IHBvbGxTcHk7Ci0KLSAgICAgIGJlZm9yZUVhY2go KCkgPT4gewotICAgICAgICBzcWxFZGl0b3JNb2NrLmdyaWRWaWV3ID0ge307Ci0gICAgICAgIHNx bEVkaXRvck1vY2suZ3JpZFZpZXcucXVlcnlfdG9vbF9vYmogPSBqYXNtaW5lLmNyZWF0ZVNweU9i aigKLSAgICAgICAgICAnUXVlcnlUb29sT2JqZWN0JywKLSAgICAgICAgICBbJ3JlbW92ZUxpbmVD bGFzcyddCi0gICAgICAgICk7Ci0KLSAgICAgICAgJCgnYm9keScpLmFwcGVuZCgKLSAgICAgICAg ICAnPGRpdiBpZD0idGVzdC1pZCI+JyArCi0gICAgICAgICAgJzxidXR0b24gaWQ9ImJ0bi1mbGFz aCIgZGlzYWJsZWQ+PC9idXR0b24+JyArCi0gICAgICAgICAgJzxidXR0b24gaWQ9ImJ0bi1jYW5j ZWwtcXVlcnkiPjwvYnV0dG9uPicgKwotICAgICAgICAgICc8L2Rpdj4nCi0gICAgICAgICk7Ci0g ICAgICB9KTsKLQotICAgICAgYWZ0ZXJFYWNoKGZ1bmN0aW9uICgpIHsKLSAgICAgICAgJCgnYm9k eScpLnJlbW92ZSgnI3Rlc3QtaWQnKTsKLSAgICAgIH0pOwotCi0gICAgICBkZXNjcmliZSgnYmVm b3JlIHRoZSBiYWNrZW5kIHJlcXVlc3QnLCAoKSA9PiB7Ci0gICAgICAgIGJlZm9yZUVhY2goKCkg PT4gewotICAgICAgICAgIGphc21pbmUuY2xvY2soKS5pbnN0YWxsKCk7Ci0gICAgICAgICAgamFz bWluZS5jbG9jaygpLm1vY2tEYXRlKHN0YXJ0VGltZSk7Ci0gICAgICAgICAgamFzbWluZS5jbG9j aygpLnRpY2soNTApOwotICAgICAgICAgIG5ldHdvcmtNb2NrLm9uQW55KCcvc3FsZWRpdG9yL3F1 ZXJ5X3Rvb2wvc3RhcnQvMTIzJykucmVwbHkoMjAwLCByZXNwb25zZSk7Ci0gICAgICAgICAgcG9s bFNweSA9IHNweU9uKGV4ZWN1dGVRdWVyeSwgJ3BvbGwnKTsKLSAgICAgICAgICBleGVjdXRlUXVl cnkuZXhlY3V0ZSgnc29tZSBzcWwgcXVlcnknLCAnJyk7Ci0gICAgICAgIH0pOwotCi0gICAgICAg IGFmdGVyRWFjaChmdW5jdGlvbiAoKSB7Ci0gICAgICAgICAgamFzbWluZS5jbG9jaygpLnVuaW5z dGFsbCgpOwotICAgICAgICB9KTsKLQotICAgICAgICBpdCgnc2hvdWxkIHVwZGF0ZSBsb2FkaW5n IHRleHQgdG8gIlJ1bm5pbmcgcXVlcnkiJywgKCkgPT4gewotICAgICAgICAgIGV4cGVjdChzcWxF ZGl0b3JNb2NrLnRyaWdnZXIpCi0gICAgICAgICAgICAudG9IYXZlQmVlbkNhbGxlZFdpdGgoCi0g ICAgICAgICAgICAgICdwZ2FkbWluLXNxbGVkaXRvcjpsb2FkaW5nLWljb246c2hvdycsCi0gICAg ICAgICAgICAgICdSdW5uaW5nIHF1ZXJ5Li4uJwotICAgICAgICAgICAgKTsKLSAgICAgICAgfSk7 Ci0KLSAgICAgICAgaXQoJ2Rpc2FibGVzIHRoZSBydW4gcXVlcnkgYnV0dG9uJywgKCkgPT4gewot ICAgICAgICAgIGxldCBidXR0b25GbGFzaCA9ICQoJyNidG4tZmxhc2gnKTsKLQotICAgICAgICAg IGV4cGVjdChidXR0b25GbGFzaC5wcm9wKCdkaXNhYmxlZCcpKS50b0VxdWFsKHRydWUpOwotICAg ICAgICB9KTsKLQotICAgICAgICBpdCgnZW5hYmxlIHRoZSBjYW5jZWwgcXVlcnkgYnV0dG9uJywg KCkgPT4gewotICAgICAgICAgIGxldCBidXR0b25GbGFzaCA9ICQoJyNidG4tY2FuY2VsLXF1ZXJ5 Jyk7Ci0KLSAgICAgICAgICBleHBlY3QoYnV0dG9uRmxhc2gucHJvcCgnZGlzYWJsZWQnKSkudG9F cXVhbChmYWxzZSk7Ci0gICAgICAgIH0pOwotCi0gICAgICAgIGl0KCdkaXNhYmxlIHRoZSBxdWVy eSB0b29sIGJ1dHRvbnMnLCAoKSA9PiB7Ci0gICAgICAgICAgZXhwZWN0KHNxbEVkaXRvck1vY2su ZGlzYWJsZV90b29sX2J1dHRvbnMpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKHRydWUpOwotICAgICAg ICB9KTsKLQotICAgICAgICBpdCgnaW5pdGlhbGl6ZXMgdGhlIHBvbGxpbmcgZmxhZ3MnLCAoKSA9 PiB7Ci0gICAgICAgICAgZXhwZWN0KHNxbEVkaXRvck1vY2suX2luaXRfcG9sbGluZ19mbGFncyku dG9IYXZlQmVlbkNhbGxlZCgpOwotICAgICAgICB9KTsKLQotICAgICAgICBpdCgnc2F2ZSB0aGUg cXVlcnknLCAoKSA9PiB7Ci0gICAgICAgICAgZXhwZWN0KHNxbEVkaXRvck1vY2sucXVlcnkpLnRv RXF1YWwoJ3NvbWUgc3FsIHF1ZXJ5Jyk7Ci0gICAgICAgIH0pOwotCi0gICAgICAgIGl0KCdyZXNl dCB0aGUgbnVtYmVyIG9mIHJvd3MgdGhhdCB3ZXJlIGFmZmVjdGVkJywgKCkgPT4gewotICAgICAg ICAgIGV4cGVjdChzcWxFZGl0b3JNb2NrLnJvd3NfYWZmZWN0ZWQpLnRvRXF1YWwoMCk7Ci0gICAg ICAgIH0pOwotCi0gICAgICAgIGl0KCdyZXNldCBxdWVyeSBzdGFydCB0aW1lJywgKCkgPT4gewot ICAgICAgICAgIGV4cGVjdChzcWxFZGl0b3JNb2NrLnF1ZXJ5X3N0YXJ0X3RpbWUuZ2V0VGltZSgp KS50b0VxdWFsKHN0YXJ0VGltZS5nZXRUaW1lKCkgKyA1MCk7Ci0gICAgICAgIH0pOwotICAgICAg fSk7Ci0KLSAgICAgIGRlc2NyaWJlKCd3aGVuIEhUVFAgcmV0dXJuIDIwMCcsICgpID0+IHsKLSAg ICAgICAgZGVzY3JpYmUoJ3doZW4gYmFja2VuZCBpbmZvcm1zIHRoYXQgcXVlcnkgc3RhcnRlZCBz dWNjZXNzZnVsbHknLCAoKSA9PiB7Ci0gICAgICAgICAgYmVmb3JlRWFjaCgoKSA9PiB7Ci0gICAg ICAgICAgICBuZXR3b3JrTW9jay5vblBvc3QoJy9zcWxlZGl0b3IvcXVlcnlfdG9vbC9zdGFydC8x MjM/Y29ubmVjdD0xJykucmVwbHkoMjAwLCByZXNwb25zZSk7Ci0gICAgICAgICAgICBwb2xsU3B5 ID0gc3B5T24oZXhlY3V0ZVF1ZXJ5LCAnZGVsYXllZFBvbGwnKTsKLSAgICAgICAgICAgIGV4ZWN1 dGVRdWVyeS5leGVjdXRlKCdzb21lIHNxbCBxdWVyeScsICcnLCB0cnVlKTsKLSAgICAgICAgICB9 KTsKLQotICAgICAgICAgIGl0KCdzaG91bGQgY2hhbmdlcyB0aGUgbG9hZGluZyBtZXNzYWdlIHRv ICJXYWl0aW5nIGZvciB0aGUgcXVlcnkgdG8gY29tcGxldGUiJywgKGRvbmUpID0+IHsKLSAgICAg ICAgICAgIHNldFRpbWVvdXQoKCkgPT4gewotICAgICAgICAgICAgICBleHBlY3Qoc3FsRWRpdG9y TW9jay50cmlnZ2VyKS50b0hhdmVCZWVuQ2FsbGVkV2l0aCgKLSAgICAgICAgICAgICAgICAncGdh ZG1pbi1zcWxlZGl0b3I6bG9hZGluZy1pY29uOm1lc3NhZ2UnLAotICAgICAgICAgICAgICAgICdX YWl0aW5nIGZvciB0aGUgcXVlcnkgdG8gY29tcGxldGUuLi4nCi0gICAgICAgICAgICAgICk7Ci0g ICAgICAgICAgICAgIGRvbmUoKTsKLSAgICAgICAgICAgIH0sIDApOwotICAgICAgICAgIH0pOwot Ci0gICAgICAgICAgaXQoJ3Nob3VsZCB1cGRhdGUgdGhlIGNhbiBlZGl0IGZsYWcnLCAoZG9uZSkg PT4gewotICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7Ci0gICAgICAgICAgICAgIGV4cGVj dChzcWxFZGl0b3JNb2NrLmNhbl9lZGl0KS50b0VxdWFsKGZhbHNlKTsKLSAgICAgICAgICAgICAg ZG9uZSgpOwotICAgICAgICAgICAgfSwgMCk7Ci0gICAgICAgICAgfSk7Ci0KLSAgICAgICAgICBp dCgnc2hvdWxkIHVwZGF0ZSB0aGUgY2FuIGZpbHRlciBmbGFnJywgKGRvbmUpID0+IHsKLSAgICAg ICAgICAgIHNldFRpbWVvdXQoKCkgPT4gewotICAgICAgICAgICAgICBleHBlY3Qoc3FsRWRpdG9y TW9jay5jYW5fZmlsdGVyKS50b0VxdWFsKGZhbHNlKTsKLSAgICAgICAgICAgICAgZG9uZSgpOwot ICAgICAgICAgICAgfSwgMCk7Ci0gICAgICAgICAgfSk7Ci0KLSAgICAgICAgICBpdCgnc2hvdWxk IHVwZGF0ZSBpbmZvcm1hdGlvbiBub3RpZmllciB0aW1lb3V0JywgKGRvbmUpID0+IHsKLSAgICAg ICAgICAgIHNldFRpbWVvdXQoKCkgPT4gewotICAgICAgICAgICAgICBleHBlY3Qoc3FsRWRpdG9y TW9jay5pbmZvX25vdGlmaWVyX3RpbWVvdXQpLnRvRXF1YWwoNSk7Ci0gICAgICAgICAgICAgIGRv bmUoKTsKLSAgICAgICAgICAgIH0sIDApOwotICAgICAgICAgIH0pOwotCi0gICAgICAgICAgaXQo J3Nob3VsZCBzdGFydCBwb2xsaW5nJywgKGRvbmUpID0+IHsKLSAgICAgICAgICAgIHNldFRpbWVv dXQoKCkgPT4gewotICAgICAgICAgICAgICBleHBlY3QocG9sbFNweSkudG9IYXZlQmVlbkNhbGxl ZCgpOwotICAgICAgICAgICAgICBkb25lKCk7Ci0gICAgICAgICAgICB9LCAwKTsKLSAgICAgICAg ICB9KTsKLSAgICAgICAgfSk7Ci0KLSAgICAgICAgZGVzY3JpYmUoJ3doZW4gZXhwbGFpbiBwbGFu IGlzIG5vdCBlbXB0eScsICgpID0+IHsKLSAgICAgICAgICBpdCgnc2hvdWxkIHNlbmQgdGhlIGV4 cGxhaW4gcGxhbiBpbmZvcm1hdGlvb24gdGhyb3VnaCB0aGUgd2lyZScsIChkb25lKSA9PiB7Ci0g ICAgICAgICAgICBuZXR3b3JrTW9jay5vbkFueSgnL3NxbGVkaXRvci9xdWVyeV90b29sL3N0YXJ0 LzEyMycpLnJlcGx5KChjb25maWcpID0+IHsKLSAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9 PiB7Ci0gICAgICAgICAgICAgICAgZXhwZWN0KGNvbmZpZy5kYXRhKS50b0VxdWFsKEpTT04uc3Ry aW5naWZ5KHsKLSAgICAgICAgICAgICAgICAgIHNxbDogJ3NvbWUgc3FsIHF1ZXJ5JywKLSAgICAg ICAgICAgICAgICAgIGV4cGxhaW5fcGxhbjogewotICAgICAgICAgICAgICAgICAgICBidWZmZXJz OiB0cnVlLAotICAgICAgICAgICAgICAgICAgICBhbmFseXplOiBmYWxzZSwKLSAgICAgICAgICAg ICAgICAgICAgdGltaW5nOiB0cnVlLAotICAgICAgICAgICAgICAgICAgICBzdW1tYXJ5OiBmYWxz ZSwKLSAgICAgICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICAgfSkpOwotCi0gICAgICAg ICAgICAgICAgZG9uZSgpOwotICAgICAgICAgICAgICB9LCAwKTsKLSAgICAgICAgICAgICAgcmV0 dXJuIFsyMDAsICcnXTsKLSAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgcG9sbFNweSA9IHNw eU9uKGV4ZWN1dGVRdWVyeSwgJ2RlbGF5ZWRQb2xsJyk7Ci0gICAgICAgICAgICBleGVjdXRlUXVl cnkuZXhlY3V0ZSgnc29tZSBzcWwgcXVlcnknLCB7Ci0gICAgICAgICAgICAgIGJ1ZmZlcnM6IHRy dWUsCi0gICAgICAgICAgICAgIGFuYWx5emU6IGZhbHNlLAotICAgICAgICAgICAgICB0aW1pbmc6 IHRydWUsCi0gICAgICAgICAgICAgIHN1bW1hcnk6IGZhbHNlLAotICAgICAgICAgICAgfSk7Ci0g ICAgICAgICAgfSk7Ci0KLQotICAgICAgICB9KTsKLQotICAgICAgICBkZXNjcmliZSgnd2hlbiBi YWNrZW5kIGluZm9ybXMgdGhhdCB0aGVyZSB3YXMgYSBwcm9ibGVtIHdpdGggdGhlIHF1ZXJ5Jywg KCkgPT4gewotICAgICAgICAgIGJlZm9yZUVhY2goKCkgPT4gewotICAgICAgICAgICAgcmVzcG9u c2UuZGF0YS5zdGF0dXMgPSBmYWxzZTsKLSAgICAgICAgICAgIHJlc3BvbnNlLmRhdGEucmVzdWx0 ID0gJ3NvbWV0aGluZyB3ZW50IHdyb25nJzsKLSAgICAgICAgICAgIG5ldHdvcmtNb2NrLm9uQW55 KCcvc3FsZWRpdG9yL3F1ZXJ5X3Rvb2wvc3RhcnQvMTIzJykucmVwbHkoMjAwLCByZXNwb25zZSk7 Ci0gICAgICAgICAgICBwb2xsU3B5ID0gc3B5T24oZXhlY3V0ZVF1ZXJ5LCAncG9sbCcpOwotICAg ICAgICAgICAgZXhlY3V0ZVF1ZXJ5LmV4ZWN1dGUoJ3NvbWUgc3FsIHF1ZXJ5JywgJycpOwotICAg ICAgICAgIH0pOwotCi0gICAgICAgICAgc2hvdWxkSGlkZUxvYWRpbmdJY29uVGVzdENhc2UoKTsK LSAgICAgICAgICBzaG91bGRFbmFibGVUb29sc0J1dHRvblRlc3RDYXNlKCk7Ci0KLSAgICAgICAg ICBpdCgndXBkYXRlIHRoZSBoaXN0b3J5IHRhYiB3aXRoIHRoZSByZXN1bHQgbWVzc2FnZScsIChk b25lKSA9PiB7Ci0gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHsKLSAgICAgICAgICAgICAg ZXhwZWN0KHNxbEVkaXRvck1vY2sudXBkYXRlX21zZ19oaXN0b3J5KS50b0hhdmVCZWVuQ2FsbGVk V2l0aChmYWxzZSwgJ3NvbWV0aGluZyB3ZW50IHdyb25nJyk7Ci0gICAgICAgICAgICAgIGRvbmUo KTsKLSAgICAgICAgICAgIH0sIDApOwotICAgICAgICAgIH0pOwotCi0gICAgICAgICAgaXQoJ2hp Z2hsaWdodCB0aGUgZXJyb3IgaW4gdGhlIGVkaXRvcicsIChkb25lKSA9PiB7Ci0gICAgICAgICAg ICBzZXRUaW1lb3V0KCgpID0+IHsKLSAgICAgICAgICAgICAgZXhwZWN0KHNxbEVkaXRvck1vY2su X2hpZ2hsaWdodF9lcnJvcikudG9IYXZlQmVlbkNhbGxlZFdpdGgoJ3NvbWV0aGluZyB3ZW50IHdy b25nJyk7Ci0gICAgICAgICAgICAgIGRvbmUoKTsKLSAgICAgICAgICAgIH0sIDApOwotICAgICAg ICAgIH0pOwotCi0gICAgICAgICAgaXQoJ3Nob3VsZCBub3Qgc3RhcnQgcG9sbGluZycsIChkb25l KSA9PiB7Ci0gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHsKLSAgICAgICAgICAgICAgZXhw ZWN0KHBvbGxTcHkpLm5vdC50b0hhdmVCZWVuQ2FsbGVkKCk7Ci0gICAgICAgICAgICAgIGRvbmUo KTsKLSAgICAgICAgICAgIH0sIDApOwotICAgICAgICAgIH0pOwotICAgICAgICB9KTsKLQotICAg ICAgICBkZXNjcmliZSgnd2hlbiB0aGVyZSBpcyBhIG1hcmtlciBzZXQgaW4gdGhlIGdyaWQnLCAo KSA9PiB7Ci0gICAgICAgICAgbGV0IG1hcmtlckNsZWFyU3B5OwotICAgICAgICAgIGJlZm9yZUVh Y2goKCkgPT4gewotICAgICAgICAgICAgc3FsRWRpdG9yTW9jay5ncmlkVmlldy5tYXJrZXIgPSBq YXNtaW5lLmNyZWF0ZVNweU9iaigKLSAgICAgICAgICAgICAgJ0dyaWRWaWV3TWFya2VyJywKLSAg ICAgICAgICAgICAgWydjbGVhciddCi0gICAgICAgICAgICApOwotICAgICAgICAgICAgbWFya2Vy Q2xlYXJTcHkgPSBzcWxFZGl0b3JNb2NrLmdyaWRWaWV3Lm1hcmtlci5jbGVhcjsKLSAgICAgICAg ICAgIG5ldHdvcmtNb2NrLm9uQW55KCcvc3FsZWRpdG9yL3F1ZXJ5X3Rvb2wvc3RhcnQvMTIzJyku cmVwbHkoMjAwLCByZXNwb25zZSk7Ci0gICAgICAgICAgICBwb2xsU3B5ID0gc3B5T24oZXhlY3V0 ZVF1ZXJ5LCAncG9sbCcpOwotICAgICAgICAgICAgZXhlY3V0ZVF1ZXJ5LmV4ZWN1dGUoJ3NvbWUg c3FsIHF1ZXJ5JywgJycpOwotICAgICAgICAgIH0pOwotCi0gICAgICAgICAgaXQoJ3Nob3VsZCBj YWxsIGNsZWFyIGZ1bmN0aW9uIG9uIG1hcmtlcicsIChkb25lKSA9PiB7Ci0gICAgICAgICAgICBz ZXRUaW1lb3V0KCgpID0+IHsKLSAgICAgICAgICAgICAgZXhwZWN0KG1hcmtlckNsZWFyU3B5KS50 b0hhdmVCZWVuQ2FsbGVkKCk7Ci0gICAgICAgICAgICAgIGRvbmUoKTsKLSAgICAgICAgICAgIH0s IDApOwotICAgICAgICAgIH0pOwotCi0gICAgICAgICAgaXQoJ3Nob3VsZCByZW1vdmVzIHRoZSBt YXJrZXInLCAoZG9uZSkgPT4gewotICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7Ci0gICAg ICAgICAgICAgIGV4cGVjdChzcWxFZGl0b3JNb2NrLmdyaWRWaWV3Lm1hcmtlcikudG9FcXVhbChu dWxsKTsKLSAgICAgICAgICAgICAgZG9uZSgpOwotICAgICAgICAgICAgfSwgMCk7Ci0gICAgICAg ICAgfSk7Ci0KLSAgICAgICAgICBpdCgnc2hvdWxkIHJlbW92ZSBDU1MgY2xhc3NlcyBmcm9tIHRo ZSBlZGl0b3InLCAoZG9uZSkgPT4gewotICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7Ci0g ICAgICAgICAgICAgIGV4cGVjdChzcWxFZGl0b3JNb2NrLmdyaWRWaWV3LnF1ZXJ5X3Rvb2xfb2Jq LnJlbW92ZUxpbmVDbGFzcykKLSAgICAgICAgICAgICAgICAudG9IYXZlQmVlbkNhbGxlZFdpdGgo c3FsRWRpdG9yTW9jay5tYXJrZWRfbGluZV9ubywgJ3dyYXAnLCAnQ29kZU1pcnJvci1hY3RpdmVs aW5lLWJhY2tncm91bmQnKTsKLSAgICAgICAgICAgICAgZG9uZSgpOwotICAgICAgICAgICAgfSwg MCk7Ci0gICAgICAgICAgfSk7Ci0gICAgICAgIH0pOwotICAgICAgfSk7Ci0KLSAgICAgIGRlc2Ny aWJlKCd3aGVuIGNhbm5vdCByZWFjaCB0aGUgUHl0aG9uIFNlcnZlcicsICgpID0+IHsKLSAgICAg ICAgYmVmb3JlRWFjaCgoKSA9PiB7Ci0gICAgICAgICAgbmV0d29ya01vY2sub25BbnkoJy9zcWxl ZGl0b3IvcXVlcnlfdG9vbC9zdGFydC8xMjMnKS5yZXBseSg1MDAsIHVuZGVmaW5lZCk7Ci0KLQot ICAgICAgICAgIGV4ZWN1dGVRdWVyeS5leGVjdXRlKCdzb21lIHNxbCBxdWVyeScsICcnKTsKLSAg ICAgICAgfSk7Ci0KLSAgICAgICAgc2hvdWxkSGlkZUxvYWRpbmdJY29uVGVzdENhc2UoKTsKLSAg ICAgICAgc2hvdWxkTm90SGlnaGxpZ2h0RXJyb3JUZXN0Q2FzZSgpOwotICAgICAgICBhZGROZXdF bnRyeVRvSGlzdG9yeVVwZGF0ZU1zZ1Rlc3RDYXNlKCdOb3QgY29ubmVjdGVkIHRvIHRoZSBzZXJ2 ZXIgb3IgdGhlIGNvbm5lY3Rpb24gdG8gdGhlIHNlcnZlciBoYXMgYmVlbiBjbG9zZWQuJyk7Ci0g ICAgICAgIHNob3VsZEVuYWJsZVRvb2xzQnV0dG9uVGVzdENhc2UoKTsKLSAgICAgIH0pOwotCi0g ICAgICBkZXNjcmliZSgnd2hlbiBlcnJvciBpcyByZXR1cm5lZCBieSB0aGUgc2VydmVyJywgKCkg PT4gewotICAgICAgICBkZXNjcmliZSgnd2hlbiBsb2dpbiBpcyBub3QgcmVxdWlyZWQnLCAoKSA9 PiB7Ci0gICAgICAgICAgYmVmb3JlRWFjaCgoKSA9PiB7Ci0gICAgICAgICAgICB1c2VyTWFuYWdl bWVudE1vY2suaXNQZ2FMb2dpblJlcXVpcmVkLmFuZC5yZXR1cm5WYWx1ZShmYWxzZSk7Ci0gICAg ICAgICAgICByZXNwb25zZS5lcnJvcm1zZyA9ICdzb21lIGVycm9yIG1lc3NhZ2UnOwotICAgICAg ICAgICAgbmV0d29ya01vY2sub25BbnkoJy9zcWxlZGl0b3IvcXVlcnlfdG9vbC9zdGFydC8xMjMn KS5yZXBseSg1MDAsIHJlc3BvbnNlKTsKLQotCi0gICAgICAgICAgICBleGVjdXRlUXVlcnkuZXhl Y3V0ZSgnc29tZSBzcWwgcXVlcnknLCAnJyk7Ci0gICAgICAgICAgfSk7Ci0KLSAgICAgICAgICBz aG91bGRIaWRlTG9hZGluZ0ljb25UZXN0Q2FzZSgpOwotICAgICAgICAgIHNob3VsZE5vdEhpZ2hs aWdodEVycm9yVGVzdENhc2UoKTsKLSAgICAgICAgICBhZGROZXdFbnRyeVRvSGlzdG9yeVVwZGF0 ZU1zZ1Rlc3RDYXNlKCdzb21lIGVycm9yIG1lc3NhZ2UnKTsKLSAgICAgICAgICBzaG91bGRFbmFi bGVUb29sc0J1dHRvblRlc3RDYXNlKCk7Ci0gICAgICAgICAgc2hvdWxkTm90U2F2ZVN0YXRlVGVz dENhc2UoKTsKLSAgICAgICAgICBzaG91bGROb3REaXNwbGF5UEdBTG9naW5UZXN0Q2FzZSgpOwot ICAgICAgICB9KTsKLSAgICAgICAgZGVzY3JpYmUoJ3doZW4gbG9naW4gaXMgcmVxdWlyZWQnLCAo KSA9PiB7Ci0gICAgICAgICAgYmVmb3JlRWFjaCgoKSA9PiB7Ci0gICAgICAgICAgICB1c2VyTWFu YWdlbWVudE1vY2suaXNQZ2FMb2dpblJlcXVpcmVkLmFuZC5yZXR1cm5WYWx1ZSh0cnVlKTsKLSAg ICAgICAgICAgIHJlc3BvbnNlLmVycm9ybXNnID0gJ3NvbWUgZXJyb3IgbWVzc2FnZSc7Ci0gICAg ICAgICAgICBuZXR3b3JrTW9jay5vbkFueSgnL3NxbGVkaXRvci9xdWVyeV90b29sL3N0YXJ0LzEy MycpLnJlcGx5KDUwMCwgcmVzcG9uc2UpOwotCi0KLSAgICAgICAgICAgIGV4ZWN1dGVRdWVyeS5l eGVjdXRlKCdzb21lIHNxbCBxdWVyeScsICcnKTsKLSAgICAgICAgICB9KTsKLQotICAgICAgICAg IHNob3VsZEhpZGVMb2FkaW5nSWNvblRlc3RDYXNlKCk7Ci0gICAgICAgICAgc2hvdWxkTm90SGln aGxpZ2h0RXJyb3JUZXN0Q2FzZSgpOwotICAgICAgICAgIGFkZE5ld0VudHJ5VG9IaXN0b3J5VXBk YXRlTXNnVGVzdENhc2UoJ3NvbWUgZXJyb3IgbWVzc2FnZScpOwotICAgICAgICAgIHNob3VsZEVu YWJsZVRvb2xzQnV0dG9uVGVzdENhc2UoKTsKLSAgICAgICAgICBzaG91bGRTYXZlU3RhdGVUZXN0 Q2FzZSgpOwotICAgICAgICAgIHNob3VsZExvZ2luRGlzcGxheWVkVGVzdENhc2UoKTsKLSAgICAg ICAgfSk7Ci0gICAgICAgIGRlc2NyaWJlKCd3aGVuIGEgbmV3IHRyYW5zYWN0aW9uIGlzIG5vdCBy ZXF1aXJlZCcsICgpID0+IHsKLSAgICAgICAgICBiZWZvcmVFYWNoKCgpID0+IHsKLSAgICAgICAg ICAgIGlzTmV3VHJhbnNhY3Rpb25SZXF1aXJlZE1vY2suYW5kLnJldHVyblZhbHVlKGZhbHNlKTsK LSAgICAgICAgICAgIHJlc3BvbnNlLmVycm9ybXNnID0gJ3NvbWUgZXJyb3IgbWVzc2FnZSc7Ci0g ICAgICAgICAgICBuZXR3b3JrTW9jay5vbkFueSgnL3NxbGVkaXRvci9xdWVyeV90b29sL3N0YXJ0 LzEyMycpLnJlcGx5KDUwMCwgcmVzcG9uc2UpOwotCi0KLSAgICAgICAgICAgIGV4ZWN1dGVRdWVy eS5leGVjdXRlKCdzb21lIHNxbCBxdWVyeScsICcnKTsKLSAgICAgICAgICB9KTsKLQotICAgICAg ICAgIHNob3VsZEhpZGVMb2FkaW5nSWNvblRlc3RDYXNlKCk7Ci0gICAgICAgICAgc2hvdWxkTm90 SGlnaGxpZ2h0RXJyb3JUZXN0Q2FzZSgpOwotICAgICAgICAgIGFkZE5ld0VudHJ5VG9IaXN0b3J5 VXBkYXRlTXNnVGVzdENhc2UoJ3NvbWUgZXJyb3IgbWVzc2FnZScpOwotICAgICAgICAgIHNob3Vs ZEVuYWJsZVRvb2xzQnV0dG9uVGVzdENhc2UoKTsKLSAgICAgICAgICBzaG91bGROb3RTYXZlU3Rh dGVUZXN0Q2FzZSgpOwotICAgICAgICAgIHNob3VsZE5vdERpc3BsYXlQR0FMb2dpblRlc3RDYXNl KCk7Ci0KLSAgICAgICAgICBpdCgnc2hvdWxkIG5vdCBpbml0aWFsaXplIGEgbmV3IHRyYW5zYWN0 aW9uJywgKGRvbmUpID0+IHsKLSAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gewotICAgICAg ICAgICAgICBleHBlY3Qoc3FsRWRpdG9yTW9jay5pbml0VHJhbnNhY3Rpb24pLm5vdC50b0hhdmVC ZWVuQ2FsbGVkKCk7Ci0gICAgICAgICAgICAgIGRvbmUoKTsKLSAgICAgICAgICAgIH0sIDApOwot ICAgICAgICAgIH0pOwotICAgICAgICB9KTsKLQotICAgICAgICBkZXNjcmliZSgnd2hlbiBhIG5l dyB0cmFuc2FjdGlvbiBpcyByZXF1aXJlZCcsICgpID0+IHsKLSAgICAgICAgICBiZWZvcmVFYWNo KCgpID0+IHsKLSAgICAgICAgICAgIGlzTmV3VHJhbnNhY3Rpb25SZXF1aXJlZE1vY2suYW5kLnJl dHVyblZhbHVlKHRydWUpOwotICAgICAgICAgICAgcmVzcG9uc2UuZXJyb3Jtc2cgPSAnc29tZSBl cnJvciBtZXNzYWdlJzsKLSAgICAgICAgICAgIG5ldHdvcmtNb2NrLm9uQW55KCcvc3FsZWRpdG9y L3F1ZXJ5X3Rvb2wvc3RhcnQvMTIzJykucmVwbHkoNTAwLCByZXNwb25zZSk7Ci0KLSAgICAgICAg ICAgIGV4ZWN1dGVRdWVyeS5leGVjdXRlKCdzb21lIHNxbCBxdWVyeScsICcnKTsKLSAgICAgICAg ICB9KTsKLQotICAgICAgICAgIHNob3VsZEhpZGVMb2FkaW5nSWNvblRlc3RDYXNlKCk7Ci0gICAg ICAgICAgc2hvdWxkTm90SGlnaGxpZ2h0RXJyb3JUZXN0Q2FzZSgpOwotICAgICAgICAgIGFkZE5l d0VudHJ5VG9IaXN0b3J5VXBkYXRlTXNnVGVzdENhc2UoJ3NvbWUgZXJyb3IgbWVzc2FnZScpOwot ICAgICAgICAgIHNob3VsZEVuYWJsZVRvb2xzQnV0dG9uVGVzdENhc2UoKTsKLSAgICAgICAgICBz aG91bGRTYXZlU3RhdGVUZXN0Q2FzZSgpOwotICAgICAgICAgIHNob3VsZE5vdERpc3BsYXlQR0FM b2dpblRlc3RDYXNlKCk7Ci0KLSAgICAgICAgICBpdCgnc2hvdWxkIGluaXRpYWxpemUgYSBuZXcg dHJhbnNhY3Rpb24nLCAoZG9uZSkgPT4gewotICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7 Ci0gICAgICAgICAgICAgIGV4cGVjdChzcWxFZGl0b3JNb2NrLmluaXRUcmFuc2FjdGlvbikudG9I YXZlQmVlbkNhbGxlZCgpOwotICAgICAgICAgICAgICBkb25lKCk7Ci0gICAgICAgICAgICB9LCAw KTsKLSAgICAgICAgICB9KTsKLSAgICAgICAgfSk7Ci0gICAgICAgIGRlc2NyaWJlKCd3aGVuIGNv bm5lY3Rpb24gdG8gZGF0YWJhc2UgaXMgbG9zdCcsICgpID0+IHsKLSAgICAgICAgICBiZWZvcmVF YWNoKCgpID0+IHsKLSAgICAgICAgICAgIGlzTmV3VHJhbnNhY3Rpb25SZXF1aXJlZE1vY2suYW5k LnJldHVyblZhbHVlKGZhbHNlKTsKLSAgICAgICAgICAgIHJlc3BvbnNlLmluZm8gPSAnQ09OTkVD VElPTl9MT1NUJzsKLSAgICAgICAgICAgIG5ldHdvcmtNb2NrLm9uQW55KCcvc3FsZWRpdG9yL3F1 ZXJ5X3Rvb2wvc3RhcnQvMTIzJykucmVwbHkoNTAzLCByZXNwb25zZSk7Ci0KLSAgICAgICAgICAg IGV4ZWN1dGVRdWVyeS5leGVjdXRlKCdzb21lIHNxbCBxdWVyeScsICcnKTsKLSAgICAgICAgICB9 KTsKLQotICAgICAgICAgIHNob3VsZFNhdmVTdGF0ZVRlc3RDYXNlKCk7Ci0KLSAgICAgICAgICBp dCgnY2FsbHMgaGFuZGxlX2Nvbm5lY3Rpb25fbG9zdCcsIChkb25lKSA9PiB7Ci0gICAgICAgICAg ICBzZXRUaW1lb3V0KCgpID0+IHsKLSAgICAgICAgICAgICAgZXhwZWN0KHNxbEVkaXRvck1vY2su aGFuZGxlX2Nvbm5lY3Rpb25fbG9zdCkudG9IYXZlQmVlbkNhbGxlZCgpOwotICAgICAgICAgICAg ICBkb25lKCk7Ci0gICAgICAgICAgICB9LCAwKTsKLSAgICAgICAgICB9KTsKLSAgICAgICAgfSk7 Ci0gICAgICB9KTsKLQotICAgIH0pOwotICB9KTsKLX0pOwotCmRpZmYgLS1naXQgYS93ZWIvcmVn cmVzc2lvbi9qYXZhc2NyaXB0L3NxbGVkaXRvci9maWx0ZXJfZGlhbG9nX3NwZWNzLmpzIGIvd2Vi L3JlZ3Jlc3Npb24vamF2YXNjcmlwdC9zcWxlZGl0b3IvZmlsdGVyX2RpYWxvZ19zcGVjcy5qcwpk ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTVhYmQ4ODM3Li4wMDAwMDAwMDAKLS0tIGEv d2ViL3JlZ3Jlc3Npb24vamF2YXNjcmlwdC9zcWxlZGl0b3IvZmlsdGVyX2RpYWxvZ19zcGVjcy5q cworKysgL2Rldi9udWxsCkBAIC0xLDI4ICswLDAgQEAKLS8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi0vLwot Ly8gcGdBZG1pbiA0IC0gUG9zdGdyZVNRTCBUb29scwotLy8KLS8vIENvcHlyaWdodCAoQykgMjAx MyAtIDIwMjIsIFRoZSBwZ0FkbWluIERldmVsb3BtZW50IFRlYW0KLS8vIFRoaXMgc29mdHdhcmUg aXMgcmVsZWFzZWQgdW5kZXIgdGhlIFBvc3RncmVTUUwgTGljZW5jZQotLy8KLS8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vCi1pbXBvcnQgZmlsdGVyRGlhbG9nIGZyb20gJ3NvdXJjZXMvc3FsZWRpdG9yL2ZpbHRl cl9kaWFsb2cnOwotCi1kZXNjcmliZSgnZmlsdGVyRGlhbG9nJywgKCkgPT4gewotICBkZXNjcmli ZSgnZmlsdGVyRGlhbG9nJywgKCkgPT4gewotICAgIGRlc2NyaWJlKCd3aGVuIHVzaW5nIGZpbHRl ciBkaWFsb2cnLCAoKSA9PiB7Ci0gICAgICBiZWZvcmVFYWNoKCgpID0+IHsKLSAgICAgICAgc3B5 T24oZmlsdGVyRGlhbG9nLCAnZGlhbG9nJyk7Ci0gICAgICB9KTsKLQotICAgICAgaXQoJ2l0IHNo b3VsZCBiZSBkZWZpbmVkIGFzIGZ1bmN0aW9uJywgZnVuY3Rpb24oKSB7Ci0gICAgICAgIGV4cGVj dChmaWx0ZXJEaWFsb2cuZGlhbG9nKS50b0JlRGVmaW5lZCgpOwotICAgICAgfSk7Ci0KLSAgICAg IGl0KCdpdCBzaG91bGQgY2FsbCB3aXRob3V0IHByb3BlciBoYW5kbGVyJywgKCkgPT4gewotICAg ICAgICBleHBlY3QoZmlsdGVyRGlhbG9nLmRpYWxvZykubm90LnRvSGF2ZUJlZW5DYWxsZWRXaXRo KHt9KTsKLSAgICAgIH0pOwotCi0gICAgfSk7Ci0gIH0pOwotfSk7CmRpZmYgLS1naXQgYS93ZWIv cmVncmVzc2lvbi9qYXZhc2NyaXB0L3NxbGVkaXRvci9rZXlib2FyZF9zaG9ydGN1dHNfc3BlYy5q cyBiL3dlYi9yZWdyZXNzaW9uL2phdmFzY3JpcHQvc3FsZWRpdG9yL2tleWJvYXJkX3Nob3J0Y3V0 c19zcGVjLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2NzU5NWYyMTUuLjAwMDAw MDAwMAotLS0gYS93ZWIvcmVncmVzc2lvbi9qYXZhc2NyaXB0L3NxbGVkaXRvci9rZXlib2FyZF9z aG9ydGN1dHNfc3BlYy5qcworKysgL2Rldi9udWxsCkBAIC0xLDczMyArMCwwIEBACi0vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLwotLy8KLS8vIHBnQWRtaW4gNCAtIFBvc3RncmVTUUwgVG9vbHMKLS8vCi0vLyBD b3B5cmlnaHQgKEMpIDIwMTMgLSAyMDIyLCBUaGUgcGdBZG1pbiBEZXZlbG9wbWVudCBUZWFtCi0v LyBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIHRoZSBQb3N0Z3JlU1FMIExpY2VuY2UK LS8vCi0vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLwotCi1pbXBvcnQgKiBhcyBrZXlib2FyZFNob3J0Y3V0cyBm cm9tICdzb3VyY2VzL2tleWJvYXJkX3Nob3J0Y3V0cyc7Ci1pbXBvcnQge3F1ZXJ5VG9vbEFjdGlv bnN9IGZyb20gJ3NvdXJjZXMvc3FsZWRpdG9yL3F1ZXJ5X3Rvb2xfYWN0aW9ucyc7Ci1pbXBvcnQg Z2V0dGV4dCBmcm9tICdzb3VyY2VzL2dldHRleHQnOwotCi1kZXNjcmliZSgndGhlIGtleWJvYXJk IHNob3J0Y3V0cycsICgpID0+IHsKLSAgY29uc3QgRjFfS0VZID0gMTEyLAotICAgIEY1X0tFWSA9 IDExNiwKLSAgICBGNl9LRVkgPSAxMTcsCi0gICAgRjdfS0VZID0gMTE4LAotICAgIEY4X0tFWSA9 IDExOSwKLSAgICBQRVJJT0RfS0VZID0gMTkwLAotICAgIEZXRF9TTEFTSF9LRVkgPSAxOTEsCi0g ICAgQzFfS0VZID0gNDk7Ci0KLSAgbGV0IHNxbEVkaXRvckNvbnRyb2xsZXJTcHksIGV2ZW50LCBx dWVyeVRvb2xBY3Rpb25zU3B5OwotICBiZWZvcmVFYWNoKCgpID0+IHsKLSAgICBldmVudCA9IHsK LSAgICAgIHNoaWZ0OiBmYWxzZSwKLSAgICAgIHdoaWNoOiB1bmRlZmluZWQsCi0gICAgICBwcmV2 ZW50RGVmYXVsdDogamFzbWluZS5jcmVhdGVTcHkoJ3ByZXZlbnREZWZhdWx0JyksCi0gICAgICBj YW5jZWxCdWJibGU6IGZhbHNlLAotICAgICAgc3RvcFByb3BhZ2F0aW9uOiBqYXNtaW5lLmNyZWF0 ZVNweSgnc3RvcFByb3BhZ2F0aW9uJyksCi0gICAgICBzdG9wSW1tZWRpYXRlUHJvcGFnYXRpb246 IGphc21pbmUuY3JlYXRlU3B5KCdzdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24nKSwKLSAgICB9Owot Ci0gICAgbGV0IGdyaWRWaWV3ID0gewotICAgICAgcXVlcnlfdG9vbF9vYmo6IHsKLSAgICAgICAg Z2V0U2VsZWN0aW9uOiBqYXNtaW5lLmNyZWF0ZVNweSgnZ2V0U2VsZWN0aW9uJyksCi0gICAgICAg IGdldFZhbHVlOiBqYXNtaW5lLmNyZWF0ZVNweSgnZ2V0VmFsdWUnKSwKLSAgICAgIH0sCi0gICAg fTsKLQotICAgIHNxbEVkaXRvckNvbnRyb2xsZXJTcHkgPSBqYXNtaW5lLmNyZWF0ZVNweU9iaign U3FsRWRpdG9yQ29udHJvbGxlcicsIFsKLSAgICAgICdpc1F1ZXJ5UnVubmluZycsCi0gICAgICAn ZXhlY3V0ZScsCi0gICAgXSk7Ci0KLSAgICBzcWxFZGl0b3JDb250cm9sbGVyU3B5LmdyaWRWaWV3 ID0gZ3JpZFZpZXc7Ci0KLSAgICBzcWxFZGl0b3JDb250cm9sbGVyU3B5LnByZWZlcmVuY2VzID0g ewotICAgICAgZXhlY3V0ZV9xdWVyeTogewotICAgICAgICBhbHQ6IGZhbHNlLAotICAgICAgICBz aGlmdDogZmFsc2UsCi0gICAgICAgIGNvbnRyb2w6IGZhbHNlLAotICAgICAgICBrZXk6IHsKLSAg ICAgICAgICBrZXlfY29kZTogRjVfS0VZLAotICAgICAgICB9LAotICAgICAgfSwKLSAgICAgIGV4 cGxhaW5fcXVlcnk6IHsKLSAgICAgICAgYWx0OiBmYWxzZSwKLSAgICAgICAgc2hpZnQ6IGZhbHNl LAotICAgICAgICBjb250cm9sOiBmYWxzZSwKLSAgICAgICAga2V5OiB7Ci0gICAgICAgICAga2V5 X2NvZGU6IEY3X0tFWSwKLSAgICAgICAgfSwKLSAgICAgIH0sCi0gICAgICBleHBsYWluX2FuYWx5 emVfcXVlcnk6IHsKLSAgICAgICAgYWx0OiBmYWxzZSwKLSAgICAgICAgc2hpZnQ6IHRydWUsCi0g ICAgICAgIGNvbnRyb2w6IGZhbHNlLAotICAgICAgICBrZXk6IHsKLSAgICAgICAgICBrZXlfY29k ZTogRjdfS0VZLAotICAgICAgICB9LAotICAgICAgfSwKLSAgICAgIGRvd25sb2FkX3Jlc3VsdHM6 IHsKLSAgICAgICAgYWx0OiBmYWxzZSwKLSAgICAgICAgc2hpZnQ6IGZhbHNlLAotICAgICAgICBj b250cm9sOiBmYWxzZSwKLSAgICAgICAga2V5OiB7Ci0gICAgICAgICAga2V5X2NvZGU6IEY4X0tF WSwKLSAgICAgICAgfSwKLSAgICAgIH0sCi0gICAgICBtb3ZlX25leHQ6IHsKLSAgICAgICAgYWx0 OiBmYWxzZSwKLSAgICAgICAgc2hpZnQ6IGZhbHNlLAotICAgICAgICBjb250cm9sOiBmYWxzZSwK LSAgICAgICAga2V5OiB7Ci0gICAgICAgICAga2V5X2NvZGU6IG51bGwsCi0gICAgICAgIH0sCi0g ICAgICB9LAotICAgICAgbW92ZV9wcmV2aW91czogewotICAgICAgICBhbHQ6IGZhbHNlLAotICAg ICAgICBzaGlmdDogZmFsc2UsCi0gICAgICAgIGNvbnRyb2w6IGZhbHNlLAotICAgICAgICBrZXk6 IHsKLSAgICAgICAgICBrZXlfY29kZTogbnVsbCwKLSAgICAgICAgfSwKLSAgICAgIH0sCi0gICAg ICBjb21taXRfdHJhbnNhY3Rpb246IHsKLSAgICAgICAgYWx0OiBmYWxzZSwKLSAgICAgICAgc2hp ZnQ6IHRydWUsCi0gICAgICAgIGNvbnRyb2w6IHRydWUsCi0gICAgICAgIGtleTogewotICAgICAg ICAgIGtleV9jb2RlOiAnbScsCi0gICAgICAgIH0sCi0gICAgICB9LAotICAgICAgcm9sbGJhY2tf dHJhbnNhY3Rpb246IHsKLSAgICAgICAgYWx0OiBmYWxzZSwKLSAgICAgICAgc2hpZnQ6IHRydWUs Ci0gICAgICAgIGNvbnRyb2w6IHRydWUsCi0gICAgICAgIGtleTogewotICAgICAgICAgIGtleV9j b2RlOiAncicsCi0gICAgICAgIH0sCi0gICAgICB9LAotICAgICAgc2F2ZV9kYXRhOiB7Ci0gICAg ICAgIGFsdCA6IGZhbHNlLAotICAgICAgICBzaGlmdDogZmFsc2UsCi0gICAgICAgIGNvbnRyb2w6 IGZhbHNlLAotICAgICAgICBrZXk6IHsKLSAgICAgICAgICBrZXlfY29kZTogRjZfS0VZLAotICAg ICAgICB9LAotICAgICAgfSwKLSAgICB9OwotCi0gICAgc3FsRWRpdG9yQ29udHJvbGxlclNweS5t YWNyb3MgPSBbCi0gICAgICB7Ci0gICAgICAgIGFsdDogZmFsc2UsCi0gICAgICAgIGNvbnRyb2w6 IHRydWUsCi0gICAgICAgIGlkOiAxLAotICAgICAgICBrZXk6ICcxJywKLSAgICAgICAga2V5X2Nv ZGU6IEMxX0tFWSwKLSAgICAgICAga2V5X2xhYmVsOiAnQ3RybCArIDEnLAotICAgICAgICBuYW1l OiAnQzEnLAotICAgICAgICBzcWw6ICdTZWxlY3QgMTsnLAotICAgICAgfSwKLSAgICBdOwotCi0g ICAgcXVlcnlUb29sQWN0aW9uc1NweSA9IGphc21pbmUuY3JlYXRlU3B5T2JqKHF1ZXJ5VG9vbEFj dGlvbnMsIFsKLSAgICAgICdleHBsYWluQW5hbHl6ZScsCi0gICAgICAnZXhwbGFpbicsCi0gICAg ICAnZG93bmxvYWQnLAotICAgICAgJ2NvbW1lbnRCbG9ja0NvZGUnLAotICAgICAgJ2NvbW1lbnRM aW5lQ29kZScsCi0gICAgICAndW5jb21tZW50TGluZUNvZGUnLAotICAgICAgJ2V4ZWN1dGVRdWVy eScsCi0gICAgICAnZXhlY3V0ZUNvbW1pdCcsCi0gICAgICAnZXhlY3V0ZVJvbGxiYWNrJywKLSAg ICAgICdzYXZlRGF0YUNoYW5nZXMnLAotICAgICAgJ2V4ZWN1dGVNYWNybycsCi0gICAgXSk7Ci0g IH0pOwotCi0gIGxldCBkb2VzTm90aGluZ1Rlc3RDYXNlID0gKCk9PiB7Ci0gICAgaXQoJ2RvZXMg bm90aGluZycsICgpID0+IHsKLSAgICAgIGtleWJvYXJkU2hvcnRjdXRzLnByb2Nlc3NFdmVudFF1 ZXJ5VG9vbCgKLSAgICAgICAgc3FsRWRpdG9yQ29udHJvbGxlclNweSwgcXVlcnlUb29sQWN0aW9u c1NweSwgZXZlbnQKLSAgICAgICk7Ci0KLSAgICAgIGV4cGVjdChxdWVyeVRvb2xBY3Rpb25zU3B5 LmNvbW1lbnRMaW5lQ29kZSkubm90LnRvSGF2ZUJlZW5DYWxsZWQoKTsKLSAgICB9KTsKLSAgfTsK LQotICBsZXQgYmVmb3JlRWFjaFdpbmRvd3MgPSAoKT0+IHsKLSAgICB3aW5kb3dzS2V5c1NldHVw KCk7Ci0gICAgZXZlbnQud2hpY2ggPSBGV0RfU0xBU0hfS0VZOwotICAgIGV2ZW50LnNoaWZ0S2V5 ID0gdHJ1ZTsKLSAgICBrZXlib2FyZFNob3J0Y3V0cy5wcm9jZXNzRXZlbnRRdWVyeVRvb2woCi0g ICAgICBzcWxFZGl0b3JDb250cm9sbGVyU3B5LCBxdWVyeVRvb2xBY3Rpb25zU3B5LCBldmVudAot ICAgICk7Ci0gIH07Ci0KLSAgbGV0IGJlZm9yZUVhY2hNQUMgPSAoKT0+IHsKLSAgICBtYWNLZXlz U2V0dXAoKTsKLSAgICBldmVudC53aGljaCA9IEZXRF9TTEFTSF9LRVk7Ci0gICAgZXZlbnQuc2hp ZnRLZXkgPSB0cnVlOwotICAgIGtleWJvYXJkU2hvcnRjdXRzLnByb2Nlc3NFdmVudFF1ZXJ5VG9v bCgKLSAgICAgIHNxbEVkaXRvckNvbnRyb2xsZXJTcHksIHF1ZXJ5VG9vbEFjdGlvbnNTcHksIGV2 ZW50Ci0gICAgKTsKLSAgfTsKLQotCi0gIGRlc2NyaWJlKCd3aGVuIHRoZSBrZXkgaXMgbm90IGhh bmRsZWQgYnkgdGhlIGZ1bmN0aW9uJywgZnVuY3Rpb24gKCkgewotCi0gICAgYmVmb3JlRWFjaCgo KSA9PiB7Ci0gICAgICBldmVudC53aGljaCA9IEYxX0tFWTsKLSAgICAgIGtleWJvYXJkU2hvcnRj dXRzLnByb2Nlc3NFdmVudFF1ZXJ5VG9vbCgKLSAgICAgICAgc3FsRWRpdG9yQ29udHJvbGxlclNw eSwgcXVlcnlUb29sQWN0aW9uc1NweSwgZXZlbnQKLSAgICAgICk7Ci0gICAgfSk7Ci0KLSAgICBp dCgnc2hvdWxkIGFsbG93IGV2ZW50IHRvIHByb3BhZ2F0ZScsICgpID0+IHsKLSAgICAgIGV4cGVj dChldmVudC5wcmV2ZW50RGVmYXVsdCkubm90LnRvSGF2ZUJlZW5DYWxsZWQoKTsKLSAgICB9KTsK LSAgfSk7Ci0KLSAgZGVzY3JpYmUoJ0Y1JywgKCkgPT4gewotICAgIGRlc2NyaWJlKCd3aGVuIHRo ZXJlIGlzIG5vIHF1ZXJ5IGFscmVhZHkgcnVubmluZycsICgpID0+IHsKLSAgICAgIGJlZm9yZUVh Y2goKCkgPT4gewotICAgICAgICBldmVudC5rZXlDb2RlID0gRjVfS0VZOwotICAgICAgICBldmVu dC5hbHRLZXkgPSBmYWxzZTsKLSAgICAgICAgZXZlbnQuc2hpZnRLZXkgPSBmYWxzZTsKLSAgICAg ICAgZXZlbnQuY3RybEtleSA9IGZhbHNlOwotICAgICAgICBrZXlib2FyZFNob3J0Y3V0cy5wcm9j ZXNzRXZlbnRRdWVyeVRvb2woCi0gICAgICAgICAgc3FsRWRpdG9yQ29udHJvbGxlclNweSwgcXVl cnlUb29sQWN0aW9uc1NweSwgZXZlbnQKLSAgICAgICAgKTsKLSAgICAgIH0pOwotCi0gICAgICBp dCgnc2hvdWxkIGV4ZWN1dGUgdGhlIHF1ZXJ5JywgKCkgPT4gewotICAgICAgICBleHBlY3QocXVl cnlUb29sQWN0aW9uc1NweS5leGVjdXRlUXVlcnkpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKHNxbEVk aXRvckNvbnRyb2xsZXJTcHkpOwotICAgICAgfSk7Ci0KLSAgICAgIGl0KCdzaG91bGQgc3RvcCBl dmVudCBwcm9wYWdhdGlvbicsICgpID0+IHsKLSAgICAgICAgZXhwZWN0KGV2ZW50LnByZXZlbnRE ZWZhdWx0KS50b0hhdmVCZWVuQ2FsbGVkKCk7Ci0gICAgICB9KTsKLSAgICB9KTsKLQotICAgIGRl c2NyaWJlKCd3aGVuIHRoZSBxdWVyeSBpcyBhbHJlYWR5IHJ1bm5pbmcnLCAoKSA9PiB7Ci0gICAg ICBpdCgnZG9lcyBub3RoaW5nJywgKCkgPT4gewotICAgICAgICBldmVudC5rZXlDb2RlID0gRjVf S0VZOwotICAgICAgICBldmVudC5hbHRLZXkgPSBmYWxzZTsKLSAgICAgICAgZXZlbnQuc2hpZnRL ZXkgPSBmYWxzZTsKLSAgICAgICAgZXZlbnQuY3RybEtleSA9IGZhbHNlOwotICAgICAgICBzcWxF ZGl0b3JDb250cm9sbGVyU3B5LmlzUXVlcnlSdW5uaW5nLmFuZC5yZXR1cm5WYWx1ZSh0cnVlKTsK LQotICAgICAgICBrZXlib2FyZFNob3J0Y3V0cy5wcm9jZXNzRXZlbnRRdWVyeVRvb2woCi0gICAg ICAgICAgc3FsRWRpdG9yQ29udHJvbGxlclNweSwgcXVlcnlUb29sQWN0aW9uc1NweSwgZXZlbnQK LSAgICAgICAgKTsKLQotICAgICAgICBleHBlY3QocXVlcnlUb29sQWN0aW9uc1NweS5leGVjdXRl UXVlcnkpLm5vdC50b0hhdmVCZWVuQ2FsbGVkKCk7Ci0gICAgICB9KTsKLSAgICB9KTsKLSAgfSk7 Ci0KLSAgZGVzY3JpYmUoJ0Y2JywgKCkgPT4gewotICAgIGRlc2NyaWJlKCd3aGVuIHRoZXJlIGlz IG5vdCBhIHF1ZXJ5IGFscmVhZHkgcnVubmluZycsICgpID0+IHsKLSAgICAgIGJlZm9yZUVhY2go KCkgPT4gewotICAgICAgICBldmVudC53aGljaCA9IEY2X0tFWTsKLSAgICAgICAgZXZlbnQuYWx0 S2V5ID0gZmFsc2U7Ci0gICAgICAgIGV2ZW50LnNoaWZ0S2V5ID0gZmFsc2U7Ci0gICAgICAgIGV2 ZW50LmN0cmxLZXkgPSBmYWxzZTsKLSAgICAgICAga2V5Ym9hcmRTaG9ydGN1dHMucHJvY2Vzc0V2 ZW50UXVlcnlUb29sKAotICAgICAgICAgIHNxbEVkaXRvckNvbnRyb2xsZXJTcHksIHF1ZXJ5VG9v bEFjdGlvbnNTcHksIGV2ZW50Ci0gICAgICAgICk7Ci0gICAgICB9KTsKLQotICAgICAgaXQoJ3No b3VsZCBzYXZlIHRoZSBjaGFuZ2VkIGRhdGEnLCAoKSA9PiB7Ci0gICAgICAgIGV4cGVjdChxdWVy eVRvb2xBY3Rpb25zU3B5LnNhdmVEYXRhQ2hhbmdlcykudG9IYXZlQmVlbkNhbGxlZFdpdGgoc3Fs RWRpdG9yQ29udHJvbGxlclNweSk7Ci0gICAgICB9KTsKLQotICAgICAgZXhwZWN0RXZlbnRQcm9w YWdhdGlvblRvU3RvcCgpOwotICAgIH0pOwotCi0gICAgZGVzY3JpYmUoJ3doZW4gdGhlIHF1ZXJ5 IGlzIGFscmVhZHkgcnVubmluZycsICgpID0+IHsKLSAgICAgIGl0KCdkb2VzIG5vdGhpbmcnLCAo KSA9PiB7Ci0gICAgICAgIGV2ZW50LmtleUNvZGUgPSBGNl9LRVk7Ci0gICAgICAgIGV2ZW50LmFs dEtleSA9IGZhbHNlOwotICAgICAgICBldmVudC5zaGlmdEtleSA9IGZhbHNlOwotICAgICAgICBl dmVudC5jdHJsS2V5ID0gZmFsc2U7Ci0gICAgICAgIHNxbEVkaXRvckNvbnRyb2xsZXJTcHkuaXNR dWVyeVJ1bm5pbmcuYW5kLnJldHVyblZhbHVlKHRydWUpOwotCi0gICAgICAgIGtleWJvYXJkU2hv cnRjdXRzLnByb2Nlc3NFdmVudFF1ZXJ5VG9vbCgKLSAgICAgICAgICBzcWxFZGl0b3JDb250cm9s bGVyU3B5LCBxdWVyeVRvb2xBY3Rpb25zU3B5LCBldmVudAotICAgICAgICApOwotCi0gICAgICAg IGV4cGVjdChxdWVyeVRvb2xBY3Rpb25zU3B5LnNhdmVEYXRhQ2hhbmdlcykubm90LnRvSGF2ZUJl ZW5DYWxsZWQoKTsKLSAgICAgIH0pOwotICAgIH0pOwotICB9KTsKLQotICBkZXNjcmliZSgnRjcn LCAoKSA9PiB7Ci0gICAgZGVzY3JpYmUoJ3doZW4gdGhlcmUgaXMgbm90IGEgcXVlcnkgYWxyZWFk eSBydW5uaW5nJywgKCkgPT4gewotICAgICAgYmVmb3JlRWFjaCgoKSA9PiB7Ci0gICAgICAgIGV2 ZW50LndoaWNoID0gRjdfS0VZOwotICAgICAgICBldmVudC5hbHRLZXkgPSBmYWxzZTsKLSAgICAg ICAgZXZlbnQuc2hpZnRLZXkgPSBmYWxzZTsKLSAgICAgICAgZXZlbnQuY3RybEtleSA9IGZhbHNl OwotICAgICAgICBrZXlib2FyZFNob3J0Y3V0cy5wcm9jZXNzRXZlbnRRdWVyeVRvb2woCi0gICAg ICAgICAgc3FsRWRpdG9yQ29udHJvbGxlclNweSwgcXVlcnlUb29sQWN0aW9uc1NweSwgZXZlbnQK LSAgICAgICAgKTsKLSAgICAgIH0pOwotCi0gICAgICBpdCgnc2hvdWxkIGV4cGxhaW4gdGhlIHF1 ZXJ5IHBsYW4nLCAoKSA9PiB7Ci0gICAgICAgIGV4cGVjdChxdWVyeVRvb2xBY3Rpb25zU3B5LmV4 cGxhaW4pLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKHNxbEVkaXRvckNvbnRyb2xsZXJTcHkpOwotICAg ICAgfSk7Ci0KLSAgICAgIGV4cGVjdEV2ZW50UHJvcGFnYXRpb25Ub1N0b3AoKTsKLSAgICB9KTsK LQotICAgIGRlc2NyaWJlKCd3aGVuIHRoZSBxdWVyeSBpcyBhbHJlYWR5IHJ1bm5pbmcnLCAoKSA9 PiB7Ci0gICAgICBpdCgnZG9lcyBub3RoaW5nJywgKCkgPT4gewotICAgICAgICBldmVudC5rZXlD b2RlID0gRjdfS0VZOwotICAgICAgICBldmVudC5hbHRLZXkgPSBmYWxzZTsKLSAgICAgICAgZXZl bnQuc2hpZnRLZXkgPSBmYWxzZTsKLSAgICAgICAgZXZlbnQuY3RybEtleSA9IGZhbHNlOwotICAg ICAgICBzcWxFZGl0b3JDb250cm9sbGVyU3B5LmlzUXVlcnlSdW5uaW5nLmFuZC5yZXR1cm5WYWx1 ZSh0cnVlKTsKLQotICAgICAgICBrZXlib2FyZFNob3J0Y3V0cy5wcm9jZXNzRXZlbnRRdWVyeVRv b2woCi0gICAgICAgICAgc3FsRWRpdG9yQ29udHJvbGxlclNweSwgcXVlcnlUb29sQWN0aW9uc1Nw eSwgZXZlbnQKLSAgICAgICAgKTsKLQotICAgICAgICBleHBlY3QocXVlcnlUb29sQWN0aW9uc1Nw eS5leHBsYWluKS5ub3QudG9IYXZlQmVlbkNhbGxlZCgpOwotICAgICAgfSk7Ci0gICAgfSk7Ci0g IH0pOwotCi0gIGRlc2NyaWJlKCdTaGlmdCtGNycsICgpID0+IHsKLSAgICBkZXNjcmliZSgnd2hl biB0aGVyZSBpcyBub3QgYSBxdWVyeSBhbHJlYWR5IHJ1bm5pbmcnLCAoKSA9PiB7Ci0gICAgICBi ZWZvcmVFYWNoKCgpID0+IHsKLSAgICAgICAgZXZlbnQuc2hpZnRLZXkgPSB0cnVlOwotICAgICAg ICBldmVudC53aGljaCA9IEY3X0tFWTsKLSAgICAgICAgZXZlbnQuYWx0S2V5ID0gZmFsc2U7Ci0g ICAgICAgIGV2ZW50LmN0cmxLZXkgPSBmYWxzZTsKLSAgICAgICAga2V5Ym9hcmRTaG9ydGN1dHMu cHJvY2Vzc0V2ZW50UXVlcnlUb29sKAotICAgICAgICAgIHNxbEVkaXRvckNvbnRyb2xsZXJTcHks IHF1ZXJ5VG9vbEFjdGlvbnNTcHksIGV2ZW50Ci0gICAgICAgICk7Ci0gICAgICB9KTsKLQotICAg ICAgaXQoJ3Nob3VsZCBhbmFseXplIGV4cGxhaW4gdGhlIHF1ZXJ5IHBsYW4nLCAoKSA9PiB7Ci0g ICAgICAgIGV4cGVjdChxdWVyeVRvb2xBY3Rpb25zU3B5LmV4cGxhaW5BbmFseXplKS50b0hhdmVC ZWVuQ2FsbGVkV2l0aChzcWxFZGl0b3JDb250cm9sbGVyU3B5KTsKLSAgICAgIH0pOwotCi0gICAg ICBleHBlY3RFdmVudFByb3BhZ2F0aW9uVG9TdG9wKCk7Ci0gICAgfSk7Ci0KLSAgICBkZXNjcmli ZSgnd2hlbiB0aGUgcXVlcnkgaXMgYWxyZWFkeSBydW5uaW5nJywgKCkgPT4gewotICAgICAgaXQo J2RvZXMgbm90aGluZycsICgpID0+IHsKLSAgICAgICAgZXZlbnQuc2hpZnRLZXkgPSB0cnVlOwot ICAgICAgICBldmVudC53aGljaCA9IEY3X0tFWTsKLSAgICAgICAgZXZlbnQuYWx0S2V5ID0gZmFs c2U7Ci0gICAgICAgIGV2ZW50LmN0cmxLZXkgPSBmYWxzZTsKLQotICAgICAgICBzcWxFZGl0b3JD b250cm9sbGVyU3B5LmlzUXVlcnlSdW5uaW5nLmFuZC5yZXR1cm5WYWx1ZSh0cnVlKTsKLQotICAg ICAgICBrZXlib2FyZFNob3J0Y3V0cy5wcm9jZXNzRXZlbnRRdWVyeVRvb2woCi0gICAgICAgICAg c3FsRWRpdG9yQ29udHJvbGxlclNweSwgcXVlcnlUb29sQWN0aW9uc1NweSwgZXZlbnQKLSAgICAg ICAgKTsKLQotICAgICAgICBleHBlY3QocXVlcnlUb29sQWN0aW9uc1NweS5leHBsYWluQW5hbHl6 ZSkubm90LnRvSGF2ZUJlZW5DYWxsZWQoKTsKLSAgICAgIH0pOwotICAgIH0pOwotICB9KTsKLQot ICBkZXNjcmliZSgnRjgnLCAoKSA9PiB7Ci0gICAgZGVzY3JpYmUoJ3doZW4gdGhlcmUgaXMgbm90 IGEgcXVlcnkgYWxyZWFkeSBydW5uaW5nJywgKCkgPT4gewotICAgICAgYmVmb3JlRWFjaCgoKSA9 PiB7Ci0gICAgICAgIGV2ZW50LndoaWNoID0gRjhfS0VZOwotICAgICAgICBldmVudC5hbHRLZXkg PSBmYWxzZTsKLSAgICAgICAgZXZlbnQuc2hpZnRLZXkgPSBmYWxzZTsKLSAgICAgICAgZXZlbnQu Y3RybEtleSA9IGZhbHNlOwotCi0gICAgICAgIGtleWJvYXJkU2hvcnRjdXRzLnByb2Nlc3NFdmVu dFF1ZXJ5VG9vbCgKLSAgICAgICAgICBzcWxFZGl0b3JDb250cm9sbGVyU3B5LCBxdWVyeVRvb2xB Y3Rpb25zU3B5LCBldmVudAotICAgICAgICApOwotICAgICAgfSk7Ci0KLSAgICAgIGl0KCdzaG91 bGQgZG93bmxvYWQgdGhlIHF1ZXJ5IHJlc3VsdHMgYXMgYSBDU1YnLCAoKSA9PiB7Ci0gICAgICAg IGV4cGVjdChxdWVyeVRvb2xBY3Rpb25zU3B5LmRvd25sb2FkKS50b0hhdmVCZWVuQ2FsbGVkKCk7 Ci0gICAgICB9KTsKLQotICAgICAgaXQoJ3Nob3VsZCBzdG9wIGV2ZW50IHByb3BhZ2F0aW9uJywg KCkgPT4gewotICAgICAgICBleHBlY3QoZXZlbnQucHJldmVudERlZmF1bHQpLnRvSGF2ZUJlZW5D YWxsZWQoKTsKLSAgICAgIH0pOwotICAgIH0pOwotCi0gICAgZGVzY3JpYmUoJ3doZW4gdGhlIHF1 ZXJ5IGlzIGFscmVhZHkgcnVubmluZycsICgpID0+IHsKLSAgICAgIGl0KCdkb2VzIG5vdGhpbmcn LCAoKSA9PiB7Ci0gICAgICAgIGV2ZW50LmtleUNvZGUgPSBGOF9LRVk7Ci0gICAgICAgIGV2ZW50 LmFsdEtleSA9IGZhbHNlOwotICAgICAgICBldmVudC5zaGlmdEtleSA9IGZhbHNlOwotICAgICAg ICBldmVudC5jdHJsS2V5ID0gZmFsc2U7Ci0KLSAgICAgICAgc3FsRWRpdG9yQ29udHJvbGxlclNw eS5pc1F1ZXJ5UnVubmluZy5hbmQucmV0dXJuVmFsdWUodHJ1ZSk7Ci0KLSAgICAgICAga2V5Ym9h cmRTaG9ydGN1dHMucHJvY2Vzc0V2ZW50UXVlcnlUb29sKAotICAgICAgICAgIHNxbEVkaXRvckNv bnRyb2xsZXJTcHksIHF1ZXJ5VG9vbEFjdGlvbnNTcHksIGV2ZW50Ci0gICAgICAgICk7Ci0KLSAg ICAgICAgZXhwZWN0KHF1ZXJ5VG9vbEFjdGlvbnNTcHkuZG93bmxvYWQpLm5vdC50b0hhdmVCZWVu Q2FsbGVkKCk7Ci0gICAgICB9KTsKLSAgICB9KTsKLSAgfSk7Ci0KLSAgZGVzY3JpYmUoJ2lubGlu ZUNvbW1lbnQnLCAoKSA9PiB7Ci0gICAgZGVzY3JpYmUoJ3doZW4gdGhlcmUgaXMgbm90IGEgcXVl cnkgYWxyZWFkeSBydW5uaW5nJywgKCkgPT4gewotICAgICAgZGVzY3JpYmUoJ2FuZCB0aGUgc3lz dGVtIGlzIGEgTWFjJywgKCkgPT4gewotICAgICAgICBiZWZvcmVFYWNoKCgpID0+IHsKLSAgICAg ICAgICBtYWNLZXlzU2V0dXAoKTsKLSAgICAgICAgICBldmVudC53aGljaCA9IEZXRF9TTEFTSF9L RVk7Ci0gICAgICAgICAga2V5Ym9hcmRTaG9ydGN1dHMucHJvY2Vzc0V2ZW50UXVlcnlUb29sKAot ICAgICAgICAgICAgc3FsRWRpdG9yQ29udHJvbGxlclNweSwgcXVlcnlUb29sQWN0aW9uc1NweSwg ZXZlbnQKLSAgICAgICAgICApOwotICAgICAgICB9KTsKLQotICAgICAgICBpdCgnc2hvdWxkIGNv bW1lbnQgdGhlIGxpbmUnLCAoKSA9PiB7Ci0gICAgICAgICAgZXhwZWN0KHF1ZXJ5VG9vbEFjdGlv bnNTcHkuY29tbWVudExpbmVDb2RlKS50b0hhdmVCZWVuQ2FsbGVkV2l0aChzcWxFZGl0b3JDb250 cm9sbGVyU3B5KTsKLSAgICAgICAgfSk7Ci0KLSAgICAgICAgZXhwZWN0RXZlbnRQcm9wYWdhdGlv blRvU3RvcCgpOwotICAgICAgfSk7Ci0KLSAgICAgIGRlc2NyaWJlKCdhbmQgdGhlIHN5c3RlbSBp cyBXaW5kb3dzJywgKCkgPT4gewotICAgICAgICBiZWZvcmVFYWNoKCgpID0+IHsKLSAgICAgICAg ICB3aW5kb3dzS2V5c1NldHVwKCk7Ci0gICAgICAgICAgZXZlbnQud2hpY2ggPSBGV0RfU0xBU0hf S0VZOwotICAgICAgICAgIGtleWJvYXJkU2hvcnRjdXRzLnByb2Nlc3NFdmVudFF1ZXJ5VG9vbCgK LSAgICAgICAgICAgIHNxbEVkaXRvckNvbnRyb2xsZXJTcHksIHF1ZXJ5VG9vbEFjdGlvbnNTcHks IGV2ZW50Ci0gICAgICAgICAgKTsKLSAgICAgICAgfSk7Ci0KLSAgICAgICAgaXQoJ3Nob3VsZCBj b21tZW50IHRoZSBsaW5lJywgKCkgPT4gewotICAgICAgICAgIGV4cGVjdChxdWVyeVRvb2xBY3Rp b25zU3B5LmNvbW1lbnRMaW5lQ29kZSkudG9IYXZlQmVlbkNhbGxlZFdpdGgoc3FsRWRpdG9yQ29u dHJvbGxlclNweSk7Ci0gICAgICAgIH0pOwotCi0gICAgICAgIGV4cGVjdEV2ZW50UHJvcGFnYXRp b25Ub1N0b3AoKTsKLSAgICAgIH0pOwotICAgIH0pOwotCi0gICAgZGVzY3JpYmUoJ3doZW4gdGhl IHF1ZXJ5IGlzIGFscmVhZHkgcnVubmluZycsICgpID0+IHsKLSAgICAgIGJlZm9yZUVhY2goKCkg PT4gewotICAgICAgICBzcWxFZGl0b3JDb250cm9sbGVyU3B5LmlzUXVlcnlSdW5uaW5nLmFuZC5y ZXR1cm5WYWx1ZSh0cnVlKTsKLSAgICAgIH0pOwotICAgICAgZGVzY3JpYmUoJ2FuZCB0aGUgc3lz dGVtIGlzIGEgTWFjJywgKCkgPT4gewotICAgICAgICBiZWZvcmVFYWNoKCgpID0+IHsKLSAgICAg ICAgICBtYWNLZXlzU2V0dXAoKTsKLSAgICAgICAgICBldmVudC53aGljaCA9IEZXRF9TTEFTSF9L RVk7Ci0gICAgICAgIH0pOwotCi0gICAgICAgIGRvZXNOb3RoaW5nVGVzdENhc2UoKTsKLSAgICAg IH0pOwotCi0gICAgICBkZXNjcmliZSgnYW5kIHRoZSBzeXN0ZW0gaXMgYSBXaW5kb3dzJywgKCkg PT4gewotICAgICAgICBiZWZvcmVFYWNoKCgpID0+IHsKLSAgICAgICAgICB3aW5kb3dzS2V5c1Nl dHVwKCk7Ci0gICAgICAgICAgZXZlbnQud2hpY2ggPSBGV0RfU0xBU0hfS0VZOwotICAgICAgICB9 KTsKLQotICAgICAgICBkb2VzTm90aGluZ1Rlc3RDYXNlKCk7Ci0gICAgICB9KTsKLSAgICB9KTsK LSAgfSk7Ci0KLSAgZGVzY3JpYmUoJ2lubGluZVVuY29tbWVudCcsICgpID0+IHsKLSAgICBkZXNj cmliZSgnd2hlbiB0aGVyZSBpcyBub3QgYSBxdWVyeSBhbHJlYWR5IHJ1bm5pbmcnLCAoKSA9PiB7 Ci0gICAgICBkZXNjcmliZSgnYW5kIHRoZSBzeXN0ZW0gaXMgYSBtYWMnLCAoKSA9PiB7Ci0gICAg ICAgIGJlZm9yZUVhY2goKCkgPT4gewotICAgICAgICAgIG1hY0tleXNTZXR1cCgpOwotICAgICAg ICAgIGV2ZW50LndoaWNoID0gUEVSSU9EX0tFWTsKLSAgICAgICAgICBrZXlib2FyZFNob3J0Y3V0 cy5wcm9jZXNzRXZlbnRRdWVyeVRvb2woCi0gICAgICAgICAgICBzcWxFZGl0b3JDb250cm9sbGVy U3B5LCBxdWVyeVRvb2xBY3Rpb25zU3B5LCBldmVudAotICAgICAgICAgICk7Ci0gICAgICAgIH0p OwotCi0gICAgICAgIGl0KCdzaG91bGQgdW5jb21tZW50IHRoZSBsaW5lJywgKCkgPT4gewotICAg ICAgICAgIGV4cGVjdChxdWVyeVRvb2xBY3Rpb25zU3B5LnVuY29tbWVudExpbmVDb2RlKS50b0hh dmVCZWVuQ2FsbGVkV2l0aChzcWxFZGl0b3JDb250cm9sbGVyU3B5KTsKLSAgICAgICAgfSk7Ci0K LSAgICAgICAgZXhwZWN0RXZlbnRQcm9wYWdhdGlvblRvU3RvcCgpOwotICAgICAgfSk7Ci0gICAg ICBkZXNjcmliZSgnYW5kIHRoZSBzeXN0ZW0gaXMgYSB3aW5kb3dzJywgKCkgPT4gewotICAgICAg ICBiZWZvcmVFYWNoKCgpID0+IHsKLSAgICAgICAgICB3aW5kb3dzS2V5c1NldHVwKCk7Ci0gICAg ICAgICAgZXZlbnQud2hpY2ggPSBQRVJJT0RfS0VZOwotICAgICAgICAgIGtleWJvYXJkU2hvcnRj dXRzLnByb2Nlc3NFdmVudFF1ZXJ5VG9vbCgKLSAgICAgICAgICAgIHNxbEVkaXRvckNvbnRyb2xs ZXJTcHksIHF1ZXJ5VG9vbEFjdGlvbnNTcHksIGV2ZW50Ci0gICAgICAgICAgKTsKLSAgICAgICAg fSk7Ci0KLSAgICAgICAgaXQoJ3Nob3VsZCB1bmNvbW1lbnQgdGhlIGxpbmUnLCAoKSA9PiB7Ci0g ICAgICAgICAgZXhwZWN0KHF1ZXJ5VG9vbEFjdGlvbnNTcHkudW5jb21tZW50TGluZUNvZGUpLnRv SGF2ZUJlZW5DYWxsZWRXaXRoKHNxbEVkaXRvckNvbnRyb2xsZXJTcHkpOwotICAgICAgICB9KTsK LQotICAgICAgICBleHBlY3RFdmVudFByb3BhZ2F0aW9uVG9TdG9wKCk7Ci0gICAgICB9KTsKLSAg ICB9KTsKLQotICAgIGRlc2NyaWJlKCd3aGVuIHRoZSBxdWVyeSBpcyBhbHJlYWR5IHJ1bm5pbmcn LCAoKSA9PiB7Ci0gICAgICBiZWZvcmVFYWNoKCgpID0+IHsKLSAgICAgICAgc3FsRWRpdG9yQ29u dHJvbGxlclNweS5pc1F1ZXJ5UnVubmluZy5hbmQucmV0dXJuVmFsdWUodHJ1ZSk7Ci0gICAgICB9 KTsKLSAgICAgIGRlc2NyaWJlKCdhbmQgdGhlIHN5c3RlbSBpcyBhIE1hYycsICgpID0+IHsKLSAg ICAgICAgYmVmb3JlRWFjaCgoKSA9PiB7Ci0gICAgICAgICAgbWFjS2V5c1NldHVwKCk7Ci0gICAg ICAgICAgZXZlbnQud2hpY2ggPSBQRVJJT0RfS0VZOwotICAgICAgICB9KTsKLQotICAgICAgICBk b2VzTm90aGluZ1Rlc3RDYXNlKCk7Ci0gICAgICB9KTsKLSAgICAgIGRlc2NyaWJlKCdhbmQgdGhl IHN5c3RlbSBpcyBhIFdpbmRvd3MnLCAoKSA9PiB7Ci0gICAgICAgIGJlZm9yZUVhY2goKCkgPT4g ewotICAgICAgICAgIHdpbmRvd3NLZXlzU2V0dXAoKTsKLSAgICAgICAgICBldmVudC53aGljaCA9 IFBFUklPRF9LRVk7Ci0gICAgICAgIH0pOwotCi0gICAgICAgIGRvZXNOb3RoaW5nVGVzdENhc2Uo KTsKLSAgICAgIH0pOwotICAgIH0pOwotICB9KTsKLQotICBkZXNjcmliZSgnYmxvY2tDb21tZW50 JywgKCkgPT4gewotICAgIGRlc2NyaWJlKCd3aGVuIHRoZXJlIGlzIG5vdCBhIHF1ZXJ5IGFscmVh ZHkgcnVubmluZycsICgpID0+IHsKLSAgICAgIGRlc2NyaWJlKCdhbmQgdGhlIHN5c3RlbSBpcyBh IE1hYycsICgpID0+IHsKLSAgICAgICAgYmVmb3JlRWFjaChiZWZvcmVFYWNoTUFDKTsKLQotICAg ICAgICBpdCgnc2hvdWxkIGNvbW1lbnQgb3V0IHRoZSBibG9jayBzZWxlY3Rpb24nLCAoKSA9PiB7 Ci0gICAgICAgICAgZXhwZWN0KHF1ZXJ5VG9vbEFjdGlvbnNTcHkuY29tbWVudEJsb2NrQ29kZSku dG9IYXZlQmVlbkNhbGxlZFdpdGgoc3FsRWRpdG9yQ29udHJvbGxlclNweSk7Ci0gICAgICAgIH0p OwotCi0gICAgICAgIGV4cGVjdEV2ZW50UHJvcGFnYXRpb25Ub1N0b3AoKTsKLSAgICAgIH0pOwot ICAgIH0pOwotCi0gICAgZGVzY3JpYmUoJ3doZW4gdGhlcmUgaXMgbm90IGEgcXVlcnkgYWxyZWFk eSBydW5uaW5nJywgKCkgPT4gewotICAgICAgZGVzY3JpYmUoJ2FuZCB0aGUgc3lzdGVtIGlzIGEg V2luZG93cycsICgpID0+IHsKLSAgICAgICAgYmVmb3JlRWFjaChiZWZvcmVFYWNoV2luZG93cyk7 Ci0KLSAgICAgICAgaXQoJ3Nob3VsZCBjb21tZW50IG91dCB0aGUgYmxvY2sgc2VsZWN0aW9uJywg KCkgPT4gewotICAgICAgICAgIGV4cGVjdChxdWVyeVRvb2xBY3Rpb25zU3B5LmNvbW1lbnRCbG9j a0NvZGUpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKHNxbEVkaXRvckNvbnRyb2xsZXJTcHkpOwotICAg ICAgICB9KTsKLQotICAgICAgICBleHBlY3RFdmVudFByb3BhZ2F0aW9uVG9TdG9wKCk7Ci0gICAg ICB9KTsKLSAgICB9KTsKLQotICAgIGRlc2NyaWJlKCd3aGVuIHRoZXJlIGlzIGEgcXVlcnkgYWxy ZWFkeSBydW5uaW5nJywgKCkgPT4gewotICAgICAgYmVmb3JlRWFjaCgoKSA9PiB7Ci0gICAgICAg IHNxbEVkaXRvckNvbnRyb2xsZXJTcHkuaXNRdWVyeVJ1bm5pbmcuYW5kLnJldHVyblZhbHVlKHRy dWUpOwotICAgICAgfSk7Ci0gICAgICBkZXNjcmliZSgnYW5kIHRoZSBzeXN0ZW0gaXMgYSBNYWMn LCAoKSA9PiB7Ci0gICAgICAgIGJlZm9yZUVhY2goYmVmb3JlRWFjaE1BQyk7Ci0gICAgICAgIGl0 KCdkb2VzIG5vdGhpbmcnLCAoKSA9PiB7Ci0gICAgICAgICAgZXhwZWN0KHF1ZXJ5VG9vbEFjdGlv bnNTcHkuY29tbWVudEJsb2NrQ29kZSkubm90LnRvSGF2ZUJlZW5DYWxsZWQoKTsKLSAgICAgICAg fSk7Ci0gICAgICB9KTsKLSAgICAgIGRlc2NyaWJlKCdhbmQgdGhlIHN5c3RlbSBpcyBhIFdpbmRv d3MnLCAoKSA9PiB7Ci0gICAgICAgIGJlZm9yZUVhY2goYmVmb3JlRWFjaFdpbmRvd3MpOwotICAg ICAgICBpdCgnZG9lcyBub3RoaW5nJywgKCkgPT4gewotICAgICAgICAgIGV4cGVjdChxdWVyeVRv b2xBY3Rpb25zU3B5LmNvbW1lbnRCbG9ja0NvZGUpLm5vdC50b0hhdmVCZWVuQ2FsbGVkKCk7Ci0g ICAgICAgIH0pOwotICAgICAgfSk7Ci0gICAgfSk7Ci0gIH0pOwotCi0gIGRlc2NyaWJlKCdzaG9y dGN1dCB0byB0ZXh0IGNvbnZlcnRlcnMnLCAoKT0+IHsKLSAgICB2YXIgc2hvcnRjdXQgPSB7Ci0g ICAgICBhbHQ6IGZhbHNlLAotICAgICAgc2hpZnQ6IGZhbHNlLAotICAgICAgY29udHJvbDogZmFs c2UsCi0gICAgICBrZXk6IHsKLSAgICAgICAgY2hhcjogJ2EnLAotICAgICAgICBrZXlfY29kZTog NjUsCi0gICAgICB9LAotICAgIH07Ci0KLSAgICBpdCgnc2hvcnRjdXRfa2V5JywoKT0+ewotICAg ICAgZXhwZWN0KGtleWJvYXJkU2hvcnRjdXRzLnNob3J0Y3V0X2tleShzaG9ydGN1dCkpLnRvRXF1 YWwoJ0EnKTsKLSAgICB9KTsKLQotICAgIGl0KCdzaG9ydGN1dF9hY2Nlc3NrZXlfdGl0bGUnLCgp PT57Ci0gICAgICBleHBlY3Qoa2V5Ym9hcmRTaG9ydGN1dHMuc2hvcnRjdXRfYWNjZXNza2V5X3Rp dGxlKAotICAgICAgICAnVGl0bGUnLCBzaG9ydGN1dCkpLnRvRXF1YWwoZ2V0dGV4dCgnVGl0bGUg KGFjY2Vzc2tleSArIEEpJykpOwotICAgIH0pOwotCi0gICAgaXQoJ3Nob3J0Y3V0X3RpdGxlJywo KT0+ewotICAgICAgc2hvcnRjdXQuYWx0ID0gdHJ1ZTsKLSAgICAgIHNob3J0Y3V0LnNoaWZ0ID0g ZmFsc2U7Ci0gICAgICBzaG9ydGN1dC5jb250cm9sID0gZmFsc2U7Ci0gICAgICBleHBlY3Qoa2V5 Ym9hcmRTaG9ydGN1dHMuc2hvcnRjdXRfdGl0bGUoCi0gICAgICAgICdUaXRsZScsIHNob3J0Y3V0 KSkudG9FcXVhbChnZXR0ZXh0KCdUaXRsZSAoQWx0K0EpJykpOwotCi0gICAgICBzaG9ydGN1dC5h bHQgPSBmYWxzZTsKLSAgICAgIHNob3J0Y3V0LnNoaWZ0ID0gdHJ1ZTsKLSAgICAgIHNob3J0Y3V0 LmNvbnRyb2wgPSBmYWxzZTsKLSAgICAgIGV4cGVjdChrZXlib2FyZFNob3J0Y3V0cy5zaG9ydGN1 dF90aXRsZSgKLSAgICAgICAgJ1RpdGxlJywgc2hvcnRjdXQpKS50b0VxdWFsKGdldHRleHQoJ1Rp dGxlIChTaGlmdCtBKScpKTsKLQotICAgICAgc2hvcnRjdXQuYWx0ID0gZmFsc2U7Ci0gICAgICBz aG9ydGN1dC5zaGlmdCA9IGZhbHNlOwotICAgICAgc2hvcnRjdXQuY29udHJvbCA9IHRydWU7Ci0g ICAgICBleHBlY3Qoa2V5Ym9hcmRTaG9ydGN1dHMuc2hvcnRjdXRfdGl0bGUoCi0gICAgICAgICdU aXRsZScsIHNob3J0Y3V0KSkudG9FcXVhbChnZXR0ZXh0KCdUaXRsZSAoQ3RybCtBKScpKTsKLQot ICAgICAgc2hvcnRjdXQuYWx0ID0gdHJ1ZTsKLSAgICAgIHNob3J0Y3V0LnNoaWZ0ID0gdHJ1ZTsK LSAgICAgIHNob3J0Y3V0LmNvbnRyb2wgPSB0cnVlOwotICAgICAgZXhwZWN0KGtleWJvYXJkU2hv cnRjdXRzLnNob3J0Y3V0X3RpdGxlKAotICAgICAgICAnVGl0bGUnLCBzaG9ydGN1dCkpLnRvRXF1 YWwoZ2V0dGV4dCgnVGl0bGUgKEFsdCtTaGlmdCtDdHJsK0EpJykpOwotICAgIH0pOwotICB9KTsK LQotICBkZXNjcmliZSgnU2hpZnQrQ3RybCtDJywgKCkgPT4gewotICAgIGRlc2NyaWJlKCd3aGVu IHRoZXJlIGlzIG5vdCBhIHF1ZXJ5IGFscmVhZHkgcnVubmluZycsICgpID0+IHsKLSAgICAgIGJl Zm9yZUVhY2goKCkgPT4gewotICAgICAgICBldmVudC5zaGlmdEtleSA9IHRydWU7Ci0gICAgICAg IGV2ZW50LndoaWNoID0gJ20nOwotICAgICAgICBldmVudC5hbHRLZXkgPSBmYWxzZTsKLSAgICAg ICAgZXZlbnQuY3RybEtleSA9IHRydWU7Ci0gICAgICAgIGtleWJvYXJkU2hvcnRjdXRzLnByb2Nl c3NFdmVudFF1ZXJ5VG9vbCgKLSAgICAgICAgICBzcWxFZGl0b3JDb250cm9sbGVyU3B5LCBxdWVy eVRvb2xBY3Rpb25zU3B5LCBldmVudAotICAgICAgICApOwotICAgICAgfSk7Ci0KLSAgICAgIGl0 KCdzaG91bGQgY29tbWl0IHRoZSB0cmFuc2FjdGlvbicsICgpID0+IHsKLSAgICAgICAgZXhwZWN0 KHF1ZXJ5VG9vbEFjdGlvbnNTcHkuZXhlY3V0ZUNvbW1pdCkudG9IYXZlQmVlbkNhbGxlZFdpdGgo c3FsRWRpdG9yQ29udHJvbGxlclNweSk7Ci0gICAgICB9KTsKLQotICAgICAgZXhwZWN0RXZlbnRQ cm9wYWdhdGlvblRvU3RvcCgpOwotICAgIH0pOwotCi0gICAgZGVzY3JpYmUoJ3doZW4gdGhlIHF1 ZXJ5IGlzIGFscmVhZHkgcnVubmluZycsICgpID0+IHsKLSAgICAgIGl0KCdkb2VzIG5vdGhpbmcn LCAoKSA9PiB7Ci0gICAgICAgIGV2ZW50LnNoaWZ0S2V5ID0gdHJ1ZTsKLSAgICAgICAgZXZlbnQu d2hpY2ggPSAnbSc7Ci0gICAgICAgIGV2ZW50LmFsdEtleSA9IGZhbHNlOwotICAgICAgICBldmVu dC5jdHJsS2V5ID0gdHJ1ZTsKLQotICAgICAgICBzcWxFZGl0b3JDb250cm9sbGVyU3B5LmlzUXVl cnlSdW5uaW5nLmFuZC5yZXR1cm5WYWx1ZSh0cnVlKTsKLQotICAgICAgICBrZXlib2FyZFNob3J0 Y3V0cy5wcm9jZXNzRXZlbnRRdWVyeVRvb2woCi0gICAgICAgICAgc3FsRWRpdG9yQ29udHJvbGxl clNweSwgcXVlcnlUb29sQWN0aW9uc1NweSwgZXZlbnQKLSAgICAgICAgKTsKLQotICAgICAgICBl eHBlY3QocXVlcnlUb29sQWN0aW9uc1NweS5leGVjdXRlQ29tbWl0KS5ub3QudG9IYXZlQmVlbkNh bGxlZCgpOwotICAgICAgfSk7Ci0gICAgfSk7Ci0gIH0pOwotCi0gIGRlc2NyaWJlKCdTaGlmdCtD dHJsK1InLCAoKSA9PiB7Ci0gICAgZGVzY3JpYmUoJ3doZW4gdGhlcmUgaXMgbm90IGEgcXVlcnkg YWxyZWFkeSBydW5uaW5nJywgKCkgPT4gewotICAgICAgYmVmb3JlRWFjaCgoKSA9PiB7Ci0gICAg ICAgIGV2ZW50LnNoaWZ0S2V5ID0gdHJ1ZTsKLSAgICAgICAgZXZlbnQud2hpY2ggPSAncic7Ci0g ICAgICAgIGV2ZW50LmFsdEtleSA9IGZhbHNlOwotICAgICAgICBldmVudC5jdHJsS2V5ID0gdHJ1 ZTsKLSAgICAgICAga2V5Ym9hcmRTaG9ydGN1dHMucHJvY2Vzc0V2ZW50UXVlcnlUb29sKAotICAg ICAgICAgIHNxbEVkaXRvckNvbnRyb2xsZXJTcHksIHF1ZXJ5VG9vbEFjdGlvbnNTcHksIGV2ZW50 Ci0gICAgICAgICk7Ci0gICAgICB9KTsKLQotICAgICAgaXQoJ3Nob3VsZCByb2xsYmFjayB0aGUg dHJhbnNhY3Rpb24nLCAoKSA9PiB7Ci0gICAgICAgIGV4cGVjdChxdWVyeVRvb2xBY3Rpb25zU3B5 LmV4ZWN1dGVSb2xsYmFjaykudG9IYXZlQmVlbkNhbGxlZFdpdGgoc3FsRWRpdG9yQ29udHJvbGxl clNweSk7Ci0gICAgICB9KTsKLQotICAgICAgZXhwZWN0RXZlbnRQcm9wYWdhdGlvblRvU3RvcCgp OwotICAgIH0pOwotCi0gICAgZGVzY3JpYmUoJ3doZW4gdGhlIHF1ZXJ5IGlzIGFscmVhZHkgcnVu bmluZycsICgpID0+IHsKLSAgICAgIGl0KCdkb2VzIG5vdGhpbmcnLCAoKSA9PiB7Ci0gICAgICAg IGV2ZW50LnNoaWZ0S2V5ID0gdHJ1ZTsKLSAgICAgICAgZXZlbnQud2hpY2ggPSAncic7Ci0gICAg ICAgIGV2ZW50LmFsdEtleSA9IGZhbHNlOwotICAgICAgICBldmVudC5jdHJsS2V5ID0gdHJ1ZTsK LQotICAgICAgICBzcWxFZGl0b3JDb250cm9sbGVyU3B5LmlzUXVlcnlSdW5uaW5nLmFuZC5yZXR1 cm5WYWx1ZSh0cnVlKTsKLQotICAgICAgICBrZXlib2FyZFNob3J0Y3V0cy5wcm9jZXNzRXZlbnRR dWVyeVRvb2woCi0gICAgICAgICAgc3FsRWRpdG9yQ29udHJvbGxlclNweSwgcXVlcnlUb29sQWN0 aW9uc1NweSwgZXZlbnQKLSAgICAgICAgKTsKLQotICAgICAgICBleHBlY3QocXVlcnlUb29sQWN0 aW9uc1NweS5leGVjdXRlUm9sbGJhY2spLm5vdC50b0hhdmVCZWVuQ2FsbGVkKCk7Ci0gICAgICB9 KTsKLSAgICB9KTsKLSAgfSk7Ci0KLSAgZGVzY3JpYmUoJ01hY3JvIEN0cmwgKyAxJywgKCkgPT4g ewotICAgIGRlc2NyaWJlKCd3aGVuIHRoZXJlIGlzIG5vdCBhIHF1ZXJ5IGFscmVhZHkgcnVubmlu ZycsICgpID0+IHsKLSAgICAgIGJlZm9yZUVhY2goKCkgPT4gewotICAgICAgICBldmVudC53aGlj aCA9IEMxX0tFWTsKLSAgICAgICAgZXZlbnQuYWx0S2V5ID0gZmFsc2U7Ci0gICAgICAgIGV2ZW50 LnNoaWZ0S2V5ID0gZmFsc2U7Ci0gICAgICAgIGV2ZW50LmN0cmxLZXkgPSB0cnVlOwotCi0gICAg ICAgIGtleWJvYXJkU2hvcnRjdXRzLnByb2Nlc3NFdmVudFF1ZXJ5VG9vbCgKLSAgICAgICAgICBz cWxFZGl0b3JDb250cm9sbGVyU3B5LCBxdWVyeVRvb2xBY3Rpb25zU3B5LCBldmVudAotICAgICAg ICApOwotICAgICAgfSk7Ci0KLSAgICAgIGl0KCdzaG91bGQgZXhlY3V0ZSB0aGUgbWFjcm8nLCAo KSA9PiB7Ci0gICAgICAgIGV4cGVjdChxdWVyeVRvb2xBY3Rpb25zU3B5LmV4ZWN1dGVNYWNybyku dG9IYXZlQmVlbkNhbGxlZFdpdGgoc3FsRWRpdG9yQ29udHJvbGxlclNweSwKLSAgICAgICAgICBz cWxFZGl0b3JDb250cm9sbGVyU3B5Lm1hY3Jvc1swXS5pZCk7Ci0gICAgICB9KTsKLQotICAgICAg aXQoJ3Nob3VsZCBzdG9wIGV2ZW50IHByb3BhZ2F0aW9uJywgKCkgPT4gewotICAgICAgICBleHBl Y3QoZXZlbnQucHJldmVudERlZmF1bHQpLnRvSGF2ZUJlZW5DYWxsZWQoKTsKLSAgICAgIH0pOwot ICAgIH0pOwotCi0gICAgZGVzY3JpYmUoJ3doZW4gdGhlIHF1ZXJ5IGlzIGFscmVhZHkgcnVubmlu ZycsICgpID0+IHsKLSAgICAgIGl0KCdkb2VzIG5vdGhpbmcnLCAoKSA9PiB7Ci0gICAgICAgIGV2 ZW50LmtleUNvZGUgPSBDMV9LRVk7Ci0gICAgICAgIGV2ZW50LmFsdEtleSA9IGZhbHNlOwotICAg ICAgICBldmVudC5zaGlmdEtleSA9IGZhbHNlOwotICAgICAgICBldmVudC5jdHJsS2V5ID0gdHJ1 ZTsKLQotICAgICAgICBzcWxFZGl0b3JDb250cm9sbGVyU3B5LmlzUXVlcnlSdW5uaW5nLmFuZC5y ZXR1cm5WYWx1ZSh0cnVlKTsKLQotICAgICAgICBrZXlib2FyZFNob3J0Y3V0cy5wcm9jZXNzRXZl bnRRdWVyeVRvb2woCi0gICAgICAgICAgc3FsRWRpdG9yQ29udHJvbGxlclNweSwgcXVlcnlUb29s QWN0aW9uc1NweSwgZXZlbnQKLSAgICAgICAgKTsKLQotICAgICAgICBleHBlY3QocXVlcnlUb29s QWN0aW9uc1NweS5leGVjdXRlTWFjcm8pLm5vdC50b0hhdmVCZWVuQ2FsbGVkKCk7Ci0gICAgICB9 KTsKLSAgICB9KTsKLSAgfSk7Ci0KLSAgZnVuY3Rpb24gZXhwZWN0RXZlbnRQcm9wYWdhdGlvblRv U3RvcCgpIHsKLSAgICBkZXNjcmliZSgnc3RvcHMgYWxsIGV2ZW50IHByb3BvZ2F0aW9uJywgKCkg PT4gewotCi0gICAgICBpdCgnc2hvdWxkIGNhbmNlbCB0aGUgYnViYmxlJywgKCkgPT4gewotICAg ICAgICBleHBlY3QoZXZlbnQuY2FuY2VsQnViYmxlKS50b0VxdWFsKHRydWUpOwotICAgICAgfSk7 Ci0KLSAgICAgIGl0KCdzaG91bGQgcHJldmVudCB0aGUgZGVmYXVsdCBiZWhhdmlvcicsICgpID0+ IHsKLSAgICAgICAgZXhwZWN0KGV2ZW50LnByZXZlbnREZWZhdWx0KS50b0hhdmVCZWVuQ2FsbGVk KCk7Ci0gICAgICB9KTsKLQotICAgICAgaXQoJ3Nob3VsZCBzdG9wIGV2ZW50IHByb3BhZ2F0aW9u JywgKCkgPT4gewotICAgICAgICBleHBlY3QoZXZlbnQuc3RvcFByb3BhZ2F0aW9uKS50b0hhdmVC ZWVuQ2FsbGVkKCk7Ci0gICAgICAgIGV4cGVjdChldmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRp b24pLnRvSGF2ZUJlZW5DYWxsZWQoKTsKLSAgICAgIH0pOwotICAgIH0pOwotICB9Ci0KLSAgZnVu Y3Rpb24gd2luZG93c0tleXNTZXR1cCgpIHsKLSAgICBzcHlPbihrZXlib2FyZFNob3J0Y3V0cywg J2lzTWFjJykuYW5kLnJldHVyblZhbHVlKGZhbHNlKTsKLSAgICBldmVudC5jdHJsS2V5ID0gdHJ1 ZTsKLSAgICBldmVudC5tZXRhS2V5ID0gZmFsc2U7Ci0gIH0KLQotICBmdW5jdGlvbiBtYWNLZXlz U2V0dXAoKSB7Ci0gICAgc3B5T24oa2V5Ym9hcmRTaG9ydGN1dHMsICdpc01hYycpLmFuZC5yZXR1 cm5WYWx1ZSh0cnVlKTsKLSAgICBldmVudC5jdHJsS2V5ID0gZmFsc2U7Ci0gICAgZXZlbnQubWV0 YUtleSA9IHRydWU7Ci0gIH0KLX0pOwpkaWZmIC0tZ2l0IGEvd2ViL3JlZ3Jlc3Npb24vamF2YXNj cmlwdC9zcWxlZGl0b3IvcXVlcnlfdG9vbF9hY3Rpb25zX3NwZWMuanMgYi93ZWIvcmVncmVzc2lv bi9qYXZhc2NyaXB0L3NxbGVkaXRvci9xdWVyeV90b29sX2FjdGlvbnNfc3BlYy5qcwpkZWxldGVk IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzRiODJkMDVkLi4wMDAwMDAwMDAKLS0tIGEvd2ViL3Jl Z3Jlc3Npb24vamF2YXNjcmlwdC9zcWxlZGl0b3IvcXVlcnlfdG9vbF9hY3Rpb25zX3NwZWMuanMK KysrIC9kZXYvbnVsbApAQCAtMSw2MDggKzAsMCBAQAotLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLS8vCi0v LyBwZ0FkbWluIDQgLSBQb3N0Z3JlU1FMIFRvb2xzCi0vLwotLy8gQ29weXJpZ2h0IChDKSAyMDEz IC0gMjAyMiwgVGhlIHBnQWRtaW4gRGV2ZWxvcG1lbnQgVGVhbQotLy8gVGhpcyBzb2Z0d2FyZSBp cyByZWxlYXNlZCB1bmRlciB0aGUgUG9zdGdyZVNRTCBMaWNlbmNlCi0vLwotLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8KLWltcG9ydCBxdWVyeVRvb2xBY3Rpb25zIGZyb20gJ3NvdXJjZXMvc3FsZWRpdG9yL3F1 ZXJ5X3Rvb2xfYWN0aW9ucyc7Ci0KLWRlc2NyaWJlKCdxdWVyeVRvb2xBY3Rpb25zJywgKCkgPT4g ewotICBsZXQgc3FsRWRpdG9yQ29udHJvbGxlciwKLSAgICBnZXRTZWxlY3Rpb25TcHksIGdldFZh bHVlU3B5LAotICAgIHNlbGVjdGVkUXVlcnlTdHJpbmcsIGVudGlyZVF1ZXJ5U3RyaW5nLAotICAg IHJlcGxhY2VTZWxlY3Rpb25TcHk7Ci0KLSAgbGV0IGV4ZWN1dGVGdW5jdGlvbkNhbGwgPSAoKT0+ ewotICAgIHF1ZXJ5VG9vbEFjdGlvbnMuZXhlY3V0ZVF1ZXJ5KHNxbEVkaXRvckNvbnRyb2xsZXIp OwotICAgIGV4cGVjdChzcWxFZGl0b3JDb250cm9sbGVyLmNoZWNrX2RhdGFfY2hhbmdlc190b19l eGVjdXRlX3F1ZXJ5KS50b0hhdmVCZWVuQ2FsbGVkKCk7Ci0gIH07Ci0KLSAgbGV0IHRvZ2dsZVNl bGVjdGlvblN0cmluZ1VwcGVyQ2FzZSA9ICgpPT4gewotICAgIGl0KCd0b2dnbGUgdGhlIHNlbGVj dGlvbiBhbmQgc3RyaW5nIHNob3VsZCBiZSBpbiB1cHBlciBjYXNlJywgKCkgPT4gewotICAgICAg cXVlcnlUb29sQWN0aW9ucy50b2dnbGVDYXNlT2ZTZWxlY3RlZFRleHQoc3FsRWRpdG9yQ29udHJv bGxlcik7Ci0gICAgICBleHBlY3QocmVwbGFjZVNlbGVjdGlvblNweQotICAgICAgKS50b0hhdmVC ZWVuQ2FsbGVkV2l0aCgnU1RSSU5HJyk7Ci0gICAgfSk7Ci0gIH07Ci0KLSAgbGV0IGJlZm9yZUVh Y2hFbXB0eVNlbGVjdGlvbiA9ICgpPT4gewotICAgIHNldFVwU3BpZXMoJycsICdhIHN0cmluZ1xu ZGRkXG5zc3MnKTsKLQotICAgIHNxbEVkaXRvckNvbnRyb2xsZXIuZ3JpZFZpZXcucXVlcnlfdG9v bF9vYmouZ2V0Q3Vyc29yID0gKCkgPT4gewotICAgICAgcmV0dXJuIDM7Ci0gICAgfTsKLSAgfTsK LQotICBkZXNjcmliZSgnZXhlY3V0ZVF1ZXJ5JywgKCkgPT4gewotICAgIGRlc2NyaWJlKCd3aGVu IHRoZSBjb21tYW5kIGlzIGJlaW5nIHJ1biBmcm9tIHRoZSBxdWVyeSB0b29sJywgKCkgPT4gewot ICAgICAgYmVmb3JlRWFjaCgoKSA9PiB7Ci0gICAgICAgIHNldFVwU3BpZXMoJycsICcnKTsKLSAg ICAgICAgc3B5T24ocXVlcnlUb29sQWN0aW9ucywgJ19jbGVhck1lc3NhZ2VUYWInKTsKLSAgICAg IH0pOwotCi0gICAgICBpdCgnY2xlYXJzIHRoZSBodG1sIGluIHRoZSBtZXNzYWdlIHRhYicsICgp ID0+IHsKLSAgICAgICAgcXVlcnlUb29sQWN0aW9ucy5leGVjdXRlUXVlcnkoc3FsRWRpdG9yQ29u dHJvbGxlcik7Ci0KLSAgICAgICAgZXhwZWN0KHF1ZXJ5VG9vbEFjdGlvbnMuX2NsZWFyTWVzc2Fn ZVRhYikudG9IYXZlQmVlbkNhbGxlZCgpOwotICAgICAgfSk7Ci0KLSAgICAgIGl0KCdjYWxscyB0 aGUgZXhlY3V0ZSBmdW5jdGlvbiBvbiB0aGUgc3FsRWRpdG9yQ29udHJvbGxlcicsIGV4ZWN1dGVG dW5jdGlvbkNhbGwpOwotICAgIH0pOwotICAgIGRlc2NyaWJlKCd3aGVuIHRoZSBjb21tYW5kIGlz IGJlaW5nIHJ1biBmcm9tIHRoZSB2aWV3IGRhdGEgdmlldycsICgpID0+IHsKLSAgICAgIGJlZm9y ZUVhY2goKCkgPT4gewotICAgICAgICBzZXRVcFNwaWVzKCcnLCAnJyk7Ci0gICAgICAgIHNxbEVk aXRvckNvbnRyb2xsZXIuaXNfcXVlcnlfdG9vbCA9IGZhbHNlOwotICAgICAgfSk7Ci0KLSAgICAg IGl0KCdpdCBjYWxscyB0aGUgY2hlY2tfZGF0YV9jaGFuZ2VzX3RvX2V4ZWN1dGVfcXVlcnkgZnVu Y3Rpb24gb24gdGhlIHNxbEVkaXRvckNvbnRyb2xsZXInLCBleGVjdXRlRnVuY3Rpb25DYWxsKTsK LSAgICB9KTsKLSAgfSk7Ci0KLSAgZGVzY3JpYmUoJ2V4cGxhaW5BbmFseXplJywgKCkgPT4gewot ICAgIGRlc2NyaWJlKCd3aGVuIHZlcmJvc2UgYW5kIGNvc3RzIGFyZSBub3Qgc2VsZWN0ZWQgYW5k IGJ1ZmZlcnMgYW5kIHRpbWluZyBhcmUgbm90IHNlbGVjdGVkJywgKCkgPT4gewotICAgICAgYmVm b3JlRWFjaCgoKSA9PiB7Ci0gICAgICAgIHNldFVwU3BpZXMoJycsICcnKTsKLSAgICAgICAgc3B5 T24ocXVlcnlUb29sQWN0aW9ucywgJ192ZXJib3NlJykuYW5kLnJldHVyblZhbHVlKGZhbHNlKTsK LSAgICAgICAgc3B5T24ocXVlcnlUb29sQWN0aW9ucywgJ19jb3N0c0VuYWJsZWQnKS5hbmQucmV0 dXJuVmFsdWUoZmFsc2UpOwotICAgICAgICBzcHlPbihxdWVyeVRvb2xBY3Rpb25zLCAnX2J1ZmZl cnMnKS5hbmQucmV0dXJuVmFsdWUoZmFsc2UpOwotICAgICAgICBzcHlPbihxdWVyeVRvb2xBY3Rp b25zLCAnX3RpbWluZycpLmFuZC5yZXR1cm5WYWx1ZShmYWxzZSk7Ci0gICAgICAgIHNweU9uKHF1 ZXJ5VG9vbEFjdGlvbnMsICdfc3VtbWFyeScpLmFuZC5yZXR1cm5WYWx1ZShmYWxzZSk7Ci0gICAg ICAgIHNweU9uKHF1ZXJ5VG9vbEFjdGlvbnMsICdfc2V0dGluZ3MnKS5hbmQucmV0dXJuVmFsdWUo ZmFsc2UpOwotICAgICAgfSk7Ci0KLSAgICAgIGl0KCdjYWxscyB0aGUgZXhlY3V0ZSBmdW5jdGlv bicsICgpID0+IHsKLSAgICAgICAgcXVlcnlUb29sQWN0aW9ucy5leHBsYWluQW5hbHl6ZShzcWxF ZGl0b3JDb250cm9sbGVyKTsKLQotICAgICAgICBjb25zdCBleHBsYWluT2JqZWN0ID0gewotICAg ICAgICAgIGZvcm1hdDogJ2pzb24nLAotICAgICAgICAgIGFuYWx5emU6IHRydWUsCi0gICAgICAg ICAgdmVyYm9zZTogZmFsc2UsCi0gICAgICAgICAgY29zdHM6IGZhbHNlLAotICAgICAgICAgIGJ1 ZmZlcnM6IGZhbHNlLAotICAgICAgICAgIHRpbWluZzogZmFsc2UsCi0gICAgICAgICAgc3VtbWFy eTogZmFsc2UsCi0gICAgICAgICAgc2V0dGluZ3M6IGZhbHNlLAotICAgICAgICB9OwotCi0gICAg ICAgIGV4cGVjdChzcWxFZGl0b3JDb250cm9sbGVyLmNoZWNrX2RhdGFfY2hhbmdlc190b19leGVj dXRlX3F1ZXJ5KS50b0hhdmVCZWVuQ2FsbGVkV2l0aChleHBsYWluT2JqZWN0KTsKLSAgICAgIH0p OwotICAgIH0pOwotCi0gICAgZGVzY3JpYmUoJ3doZW4gYWxsIG9wdGlvbnMgYXJlIHNlbGVjdGVk JywgKCkgPT4gewotICAgICAgYmVmb3JlRWFjaCgoKSA9PiB7Ci0gICAgICAgIHNldFVwU3BpZXMo JycsICcnKTsKLSAgICAgICAgc3B5T24ocXVlcnlUb29sQWN0aW9ucywgJ192ZXJib3NlJykuYW5k LnJldHVyblZhbHVlKHRydWUpOwotICAgICAgICBzcHlPbihxdWVyeVRvb2xBY3Rpb25zLCAnX2Nv c3RzRW5hYmxlZCcpLmFuZC5yZXR1cm5WYWx1ZSh0cnVlKTsKLSAgICAgICAgc3B5T24ocXVlcnlU b29sQWN0aW9ucywgJ19idWZmZXJzJykuYW5kLnJldHVyblZhbHVlKHRydWUpOwotICAgICAgICBz cHlPbihxdWVyeVRvb2xBY3Rpb25zLCAnX3RpbWluZycpLmFuZC5yZXR1cm5WYWx1ZSh0cnVlKTsK LSAgICAgICAgc3B5T24ocXVlcnlUb29sQWN0aW9ucywgJ19zdW1tYXJ5JykuYW5kLnJldHVyblZh bHVlKHRydWUpOwotICAgICAgICBzcHlPbihxdWVyeVRvb2xBY3Rpb25zLCAnX3NldHRpbmdzJyku YW5kLnJldHVyblZhbHVlKHRydWUpOwotICAgICAgfSk7Ci0gICAgICBpdCgnY2FsbHMgdGhlIGV4 ZWN1dGUgZnVuY3Rpb24nLCAoKSA9PiB7Ci0gICAgICAgIHF1ZXJ5VG9vbEFjdGlvbnMuZXhwbGFp bkFuYWx5emUoc3FsRWRpdG9yQ29udHJvbGxlcik7Ci0gICAgICAgIGNvbnN0IGV4cGxhaW5PYmpl Y3QgPSB7Ci0gICAgICAgICAgZm9ybWF0OiAnanNvbicsCi0gICAgICAgICAgYW5hbHl6ZTogdHJ1 ZSwKLSAgICAgICAgICB2ZXJib3NlOiB0cnVlLAotICAgICAgICAgIGNvc3RzOiB0cnVlLAotICAg ICAgICAgIGJ1ZmZlcnM6IHRydWUsCi0gICAgICAgICAgdGltaW5nOiB0cnVlLAotICAgICAgICAg IHN1bW1hcnk6IHRydWUsCi0gICAgICAgICAgc2V0dGluZ3M6IHRydWUsCi0gICAgICAgIH07Ci0g ICAgICAgIGV4cGVjdChzcWxFZGl0b3JDb250cm9sbGVyLmNoZWNrX2RhdGFfY2hhbmdlc190b19l eGVjdXRlX3F1ZXJ5KS50b0hhdmVCZWVuQ2FsbGVkV2l0aChleHBsYWluT2JqZWN0KTsKLSAgICAg IH0pOwotICAgIH0pOwotCi0gICAgZGVzY3JpYmUoJ3doZW4gdmVyYm9zZSBpcyBzZWxlY3RlZCBh bmQgY29zdHMgaXMgbm90IHNlbGVjdGVkIGFuZCBidWZmZXIgaXMgc2VsZWN0ZWQgYW5kIHRpbWlu ZyBpcyBub3Qgc2VsZWN0ZWQnLCAoKSA9PiB7Ci0gICAgICBiZWZvcmVFYWNoKCgpID0+IHsKLSAg ICAgICAgc2V0VXBTcGllcygnJywgJycpOwotICAgICAgICBzcHlPbihxdWVyeVRvb2xBY3Rpb25z LCAnX3ZlcmJvc2UnKS5hbmQucmV0dXJuVmFsdWUodHJ1ZSk7Ci0gICAgICAgIHNweU9uKHF1ZXJ5 VG9vbEFjdGlvbnMsICdfY29zdHNFbmFibGVkJykuYW5kLnJldHVyblZhbHVlKGZhbHNlKTsKLSAg ICAgICAgc3B5T24ocXVlcnlUb29sQWN0aW9ucywgJ19idWZmZXJzJykuYW5kLnJldHVyblZhbHVl KHRydWUpOwotICAgICAgICBzcHlPbihxdWVyeVRvb2xBY3Rpb25zLCAnX3RpbWluZycpLmFuZC5y ZXR1cm5WYWx1ZShmYWxzZSk7Ci0gICAgICAgIHNweU9uKHF1ZXJ5VG9vbEFjdGlvbnMsICdfc3Vt bWFyeScpLmFuZC5yZXR1cm5WYWx1ZShmYWxzZSk7Ci0gICAgICAgIHNweU9uKHF1ZXJ5VG9vbEFj dGlvbnMsICdfc2V0dGluZ3MnKS5hbmQucmV0dXJuVmFsdWUoZmFsc2UpOwotICAgICAgfSk7Ci0g ICAgICBpdCgnY2FsbHMgdGhlIGV4ZWN1dGUgZnVuY3Rpb24nLCAoKSA9PiB7Ci0gICAgICAgIHF1 ZXJ5VG9vbEFjdGlvbnMuZXhwbGFpbkFuYWx5emUoc3FsRWRpdG9yQ29udHJvbGxlcik7Ci0KLSAg ICAgICAgY29uc3QgZXhwbGFpbk9iamVjdCA9IHsKLSAgICAgICAgICBmb3JtYXQ6ICdqc29uJywK LSAgICAgICAgICBhbmFseXplOiB0cnVlLAotICAgICAgICAgIHZlcmJvc2U6IHRydWUsCi0gICAg ICAgICAgY29zdHM6IGZhbHNlLAotICAgICAgICAgIGJ1ZmZlcnM6IHRydWUsCi0gICAgICAgICAg dGltaW5nOiBmYWxzZSwKLSAgICAgICAgICBzdW1tYXJ5OiBmYWxzZSwKLSAgICAgICAgICBzZXR0 aW5nczogZmFsc2UsCi0gICAgICAgIH07Ci0KLSAgICAgICAgZXhwZWN0KHNxbEVkaXRvckNvbnRy b2xsZXIuY2hlY2tfZGF0YV9jaGFuZ2VzX3RvX2V4ZWN1dGVfcXVlcnkpLnRvSGF2ZUJlZW5DYWxs ZWRXaXRoKGV4cGxhaW5PYmplY3QpOwotICAgICAgfSk7Ci0gICAgfSk7Ci0KLSAgICBkZXNjcmli ZSgnd2hlbiB2ZXJib3NlIGlzICBub3Qgc2VsZWN0ZWQgYW5kIGNvc3RzIGlzIHNlbGVjdGVkIGFu ZCBidWZmZXIgaXMgbm90IHNlbGVjdGVkIGFuZCB0aW1pbmcgaXMgIHNlbGVjdGVkJywgKCkgPT4g ewotICAgICAgYmVmb3JlRWFjaCgoKSA9PiB7Ci0gICAgICAgIHNldFVwU3BpZXMoJycsICcnKTsK LSAgICAgICAgc3B5T24ocXVlcnlUb29sQWN0aW9ucywgJ192ZXJib3NlJykuYW5kLnJldHVyblZh bHVlKGZhbHNlKTsKLSAgICAgICAgc3B5T24ocXVlcnlUb29sQWN0aW9ucywgJ19jb3N0c0VuYWJs ZWQnKS5hbmQucmV0dXJuVmFsdWUodHJ1ZSk7Ci0gICAgICAgIHNweU9uKHF1ZXJ5VG9vbEFjdGlv bnMsICdfYnVmZmVycycpLmFuZC5yZXR1cm5WYWx1ZShmYWxzZSk7Ci0gICAgICAgIHNweU9uKHF1 ZXJ5VG9vbEFjdGlvbnMsICdfdGltaW5nJykuYW5kLnJldHVyblZhbHVlKHRydWUpOwotICAgICAg ICBzcHlPbihxdWVyeVRvb2xBY3Rpb25zLCAnX3N1bW1hcnknKS5hbmQucmV0dXJuVmFsdWUoZmFs c2UpOwotICAgICAgICBzcHlPbihxdWVyeVRvb2xBY3Rpb25zLCAnX3NldHRpbmdzJykuYW5kLnJl dHVyblZhbHVlKGZhbHNlKTsKLSAgICAgIH0pOwotICAgICAgaXQoJ2NhbGxzIHRoZSBleGVjdXRl IGZ1bmN0aW9uJywgKCkgPT4gewotICAgICAgICBxdWVyeVRvb2xBY3Rpb25zLmV4cGxhaW5BbmFs eXplKHNxbEVkaXRvckNvbnRyb2xsZXIpOwotCi0gICAgICAgIGNvbnN0IGV4cGxhaW5PYmplY3Qg PSB7Ci0gICAgICAgICAgZm9ybWF0OiAnanNvbicsCi0gICAgICAgICAgYW5hbHl6ZTogdHJ1ZSwK LSAgICAgICAgICB2ZXJib3NlOiBmYWxzZSwKLSAgICAgICAgICBjb3N0czogdHJ1ZSwKLSAgICAg ICAgICBidWZmZXJzOiBmYWxzZSwKLSAgICAgICAgICB0aW1pbmc6IHRydWUsCi0gICAgICAgICAg c3VtbWFyeTogZmFsc2UsCi0gICAgICAgICAgc2V0dGluZ3M6IGZhbHNlLAotICAgICAgICB9Owot Ci0gICAgICAgIGV4cGVjdChzcWxFZGl0b3JDb250cm9sbGVyLmNoZWNrX2RhdGFfY2hhbmdlc190 b19leGVjdXRlX3F1ZXJ5KS50b0hhdmVCZWVuQ2FsbGVkV2l0aChleHBsYWluT2JqZWN0KTsKLSAg ICAgIH0pOwotICAgIH0pOwotCi0gICAgZGVzY3JpYmUoJ3doZW4gYWxsIGFyZSBub3Qgc2VsZWN0 ZWQgZXhjZXB0IHN1bW1hcnkgYW5kIHNldHRpbmdzJywgKCkgPT4gewotICAgICAgYmVmb3JlRWFj aCgoKSA9PiB7Ci0gICAgICAgIHNldFVwU3BpZXMoJycsICcnKTsKLSAgICAgICAgc3B5T24ocXVl cnlUb29sQWN0aW9ucywgJ192ZXJib3NlJykuYW5kLnJldHVyblZhbHVlKGZhbHNlKTsKLSAgICAg ICAgc3B5T24ocXVlcnlUb29sQWN0aW9ucywgJ19jb3N0c0VuYWJsZWQnKS5hbmQucmV0dXJuVmFs dWUoZmFsc2UpOwotICAgICAgICBzcHlPbihxdWVyeVRvb2xBY3Rpb25zLCAnX2J1ZmZlcnMnKS5h bmQucmV0dXJuVmFsdWUoZmFsc2UpOwotICAgICAgICBzcHlPbihxdWVyeVRvb2xBY3Rpb25zLCAn X3RpbWluZycpLmFuZC5yZXR1cm5WYWx1ZShmYWxzZSk7Ci0gICAgICAgIHNweU9uKHF1ZXJ5VG9v bEFjdGlvbnMsICdfc3VtbWFyeScpLmFuZC5yZXR1cm5WYWx1ZSh0cnVlKTsKLSAgICAgICAgc3B5 T24ocXVlcnlUb29sQWN0aW9ucywgJ19zZXR0aW5ncycpLmFuZC5yZXR1cm5WYWx1ZSh0cnVlKTsK LSAgICAgIH0pOwotICAgICAgaXQoJ2NhbGxzIHRoZSBleGVjdXRlIGZ1bmN0aW9uJywgKCkgPT4g ewotICAgICAgICBxdWVyeVRvb2xBY3Rpb25zLmV4cGxhaW5BbmFseXplKHNxbEVkaXRvckNvbnRy b2xsZXIpOwotCi0gICAgICAgIGNvbnN0IGV4cGxhaW5PYmplY3QgPSB7Ci0gICAgICAgICAgZm9y bWF0OiAnanNvbicsCi0gICAgICAgICAgYW5hbHl6ZTogdHJ1ZSwKLSAgICAgICAgICB2ZXJib3Nl OiBmYWxzZSwKLSAgICAgICAgICBjb3N0czogZmFsc2UsCi0gICAgICAgICAgYnVmZmVyczogZmFs c2UsCi0gICAgICAgICAgdGltaW5nOiBmYWxzZSwKLSAgICAgICAgICBzdW1tYXJ5OiB0cnVlLAot ICAgICAgICAgIHNldHRpbmdzOiB0cnVlLAotICAgICAgICB9OwotCi0gICAgICAgIGV4cGVjdChz cWxFZGl0b3JDb250cm9sbGVyLmNoZWNrX2RhdGFfY2hhbmdlc190b19leGVjdXRlX3F1ZXJ5KS50 b0hhdmVCZWVuQ2FsbGVkV2l0aChleHBsYWluT2JqZWN0KTsKLSAgICAgIH0pOwotICAgIH0pOwot ICB9KTsKLQotICBkZXNjcmliZSgnZXhwbGFpbicsICgpID0+IHsKLSAgICBkZXNjcmliZSgnd2hl biB2ZXJib3NlIGFuZCBjb3N0cyBhcmUgc2VsZWN0ZWQnLCAoKSA9PiB7Ci0gICAgICBiZWZvcmVF YWNoKCgpID0+IHsKLSAgICAgICAgc2V0VXBTcGllcygnJywgJycpOwotICAgICAgICBzcHlPbihx dWVyeVRvb2xBY3Rpb25zLCAnX3ZlcmJvc2UnKS5hbmQucmV0dXJuVmFsdWUodHJ1ZSk7Ci0gICAg ICAgIHNweU9uKHF1ZXJ5VG9vbEFjdGlvbnMsICdfY29zdHNFbmFibGVkJykuYW5kLnJldHVyblZh bHVlKHRydWUpOwotICAgICAgICBzcHlPbihxdWVyeVRvb2xBY3Rpb25zLCAnX3N1bW1hcnknKS5h bmQucmV0dXJuVmFsdWUoZmFsc2UpOwotICAgICAgICBzcHlPbihxdWVyeVRvb2xBY3Rpb25zLCAn X3NldHRpbmdzJykuYW5kLnJldHVyblZhbHVlKGZhbHNlKTsKLSAgICAgIH0pOwotCi0gICAgICBp dCgnY2FsbHMgdGhlIGV4ZWN1dGUgZnVuY3Rpb24nLCAoKSA9PiB7Ci0gICAgICAgIHF1ZXJ5VG9v bEFjdGlvbnMuZXhwbGFpbihzcWxFZGl0b3JDb250cm9sbGVyKTsKLSAgICAgICAgY29uc3QgZXhw bGFpbk9iamVjdCA9IHsKLSAgICAgICAgICBmb3JtYXQ6ICdqc29uJywKLSAgICAgICAgICBhbmFs eXplOiBmYWxzZSwKLSAgICAgICAgICB2ZXJib3NlOiB0cnVlLAotICAgICAgICAgIGNvc3RzOiB0 cnVlLAotICAgICAgICAgIGJ1ZmZlcnM6IGZhbHNlLAotICAgICAgICAgIHRpbWluZzogZmFsc2Us Ci0gICAgICAgICAgc3VtbWFyeTogZmFsc2UsCi0gICAgICAgICAgc2V0dGluZ3M6IGZhbHNlLAot ICAgICAgICB9OwotICAgICAgICBleHBlY3Qoc3FsRWRpdG9yQ29udHJvbGxlci5jaGVja19kYXRh X2NoYW5nZXNfdG9fZXhlY3V0ZV9xdWVyeSkudG9IYXZlQmVlbkNhbGxlZFdpdGgoZXhwbGFpbk9i amVjdCk7Ci0gICAgICB9KTsKLSAgICB9KTsKLQotICAgIGRlc2NyaWJlKCd3aGVuIHZlcmJvc2Ug YW5kIGNvc3RzIGFyZSBub3Qgc2VsZWN0ZWQnLCAoKSA9PiB7Ci0gICAgICBiZWZvcmVFYWNoKCgp ID0+IHsKLSAgICAgICAgc2V0VXBTcGllcygnJywgJycpOwotICAgICAgICBzcHlPbihxdWVyeVRv b2xBY3Rpb25zLCAnX3ZlcmJvc2UnKS5hbmQucmV0dXJuVmFsdWUoZmFsc2UpOwotICAgICAgICBz cHlPbihxdWVyeVRvb2xBY3Rpb25zLCAnX2Nvc3RzRW5hYmxlZCcpLmFuZC5yZXR1cm5WYWx1ZShm YWxzZSk7Ci0gICAgICAgIHNweU9uKHF1ZXJ5VG9vbEFjdGlvbnMsICdfc3VtbWFyeScpLmFuZC5y ZXR1cm5WYWx1ZShmYWxzZSk7Ci0gICAgICAgIHNweU9uKHF1ZXJ5VG9vbEFjdGlvbnMsICdfc2V0 dGluZ3MnKS5hbmQucmV0dXJuVmFsdWUoZmFsc2UpOwotICAgICAgfSk7Ci0KLSAgICAgIGl0KCdj YWxscyB0aGUgZXhlY3V0ZSBmdW5jdGlvbicsICgpID0+IHsKLSAgICAgICAgcXVlcnlUb29sQWN0 aW9ucy5leHBsYWluKHNxbEVkaXRvckNvbnRyb2xsZXIpOwotICAgICAgICBjb25zdCBleHBsYWlu T2JqZWN0ID0gewotICAgICAgICAgIGZvcm1hdDogJ2pzb24nLAotICAgICAgICAgIGFuYWx5emU6 IGZhbHNlLAotICAgICAgICAgIHZlcmJvc2U6IGZhbHNlLAotICAgICAgICAgIGNvc3RzOiBmYWxz ZSwKLSAgICAgICAgICBidWZmZXJzOiBmYWxzZSwKLSAgICAgICAgICB0aW1pbmc6IGZhbHNlLAot ICAgICAgICAgIHN1bW1hcnk6IGZhbHNlLAotICAgICAgICAgIHNldHRpbmdzOiBmYWxzZSwKLSAg ICAgICAgfTsKLQotICAgICAgICBleHBlY3Qoc3FsRWRpdG9yQ29udHJvbGxlci5jaGVja19kYXRh X2NoYW5nZXNfdG9fZXhlY3V0ZV9xdWVyeSkudG9IYXZlQmVlbkNhbGxlZFdpdGgoZXhwbGFpbk9i amVjdCk7Ci0gICAgICB9KTsKLSAgICB9KTsKLQotICAgIGRlc2NyaWJlKCd3aGVuIHZlcmJvc2Ug aXMgc2VsZWN0ZWQgYW5kIGNvc3RzIGlzIG5vdCBzZWxlY3RlZCcsICgpID0+IHsKLSAgICAgIGJl Zm9yZUVhY2goKCkgPT4gewotICAgICAgICBzZXRVcFNwaWVzKCcnLCAnJyk7Ci0gICAgICAgIHNw eU9uKHF1ZXJ5VG9vbEFjdGlvbnMsICdfdmVyYm9zZScpLmFuZC5yZXR1cm5WYWx1ZSh0cnVlKTsK LSAgICAgICAgc3B5T24ocXVlcnlUb29sQWN0aW9ucywgJ19jb3N0c0VuYWJsZWQnKS5hbmQucmV0 dXJuVmFsdWUoZmFsc2UpOwotICAgICAgICBzcHlPbihxdWVyeVRvb2xBY3Rpb25zLCAnX3N1bW1h cnknKS5hbmQucmV0dXJuVmFsdWUoZmFsc2UpOwotICAgICAgICBzcHlPbihxdWVyeVRvb2xBY3Rp b25zLCAnX3NldHRpbmdzJykuYW5kLnJldHVyblZhbHVlKGZhbHNlKTsKLSAgICAgIH0pOwotCi0g ICAgICBpdCgnY2FsbHMgdGhlIGV4ZWN1dGUgZnVuY3Rpb24nLCAoKSA9PiB7Ci0gICAgICAgIHF1 ZXJ5VG9vbEFjdGlvbnMuZXhwbGFpbihzcWxFZGl0b3JDb250cm9sbGVyKTsKLSAgICAgICAgY29u c3QgZXhwbGFpbk9iamVjdCA9IHsKLSAgICAgICAgICBmb3JtYXQ6ICdqc29uJywKLSAgICAgICAg ICBhbmFseXplOiBmYWxzZSwKLSAgICAgICAgICB2ZXJib3NlOiB0cnVlLAotICAgICAgICAgIGNv c3RzOiBmYWxzZSwKLSAgICAgICAgICBidWZmZXJzOiBmYWxzZSwKLSAgICAgICAgICB0aW1pbmc6 IGZhbHNlLAotICAgICAgICAgIHN1bW1hcnk6IGZhbHNlLAotICAgICAgICAgIHNldHRpbmdzOiBm YWxzZSwKLSAgICAgICAgfTsKLSAgICAgICAgZXhwZWN0KHNxbEVkaXRvckNvbnRyb2xsZXIuY2hl Y2tfZGF0YV9jaGFuZ2VzX3RvX2V4ZWN1dGVfcXVlcnkpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKGV4 cGxhaW5PYmplY3QpOwotICAgICAgfSk7Ci0gICAgfSk7Ci0gIH0pOwotCi0gIGRlc2NyaWJlKCdk b3dubG9hZCcsICgpID0+IHsKLSAgICBkZXNjcmliZSgnd2hlbiB0aGUgcXVlcnkgaXMgZW1wdHkn LCAoKSA9PiB7Ci0gICAgICBiZWZvcmVFYWNoKCgpID0+IHsKLSAgICAgICAgc2V0VXBTcGllcygn JywgJycpOwotICAgICAgfSk7Ci0gICAgICBpdCgnZG9lcyBub3RoaW5nJywgKCkgPT4gewotICAg ICAgICBxdWVyeVRvb2xBY3Rpb25zLmRvd25sb2FkKHNxbEVkaXRvckNvbnRyb2xsZXIpOwotCi0g ICAgICAgIGV4cGVjdChzcWxFZGl0b3JDb250cm9sbGVyLnRyaWdnZXJfY3N2X2Rvd25sb2FkKS50 b0hhdmVCZWVuQ2FsbGVkKCk7Ci0gICAgICB9KTsKLSAgICB9KTsKLQotICAgIGRlc2NyaWJlKCd3 aGVuIHRoZSB0YWJsZSB3YXMgb3BlbmVkIHRocm91Z2ggdGhlIHF1ZXJ5VG9vbCcsICgpID0+IHsK LSAgICAgIGxldCB0aW1lOwotICAgICAgbGV0IHNweUNhbGwgPSAoKT0+IHsKLSAgICAgICAgdGlt ZSA9ICdyaWdodE5vdyc7Ci0gICAgICAgIHNweU9uKHdpbmRvdywgJ0RhdGUnKS5hbmQuY2FsbEZh a2UoKCkgPT4gKHsKLSAgICAgICAgICBnZXRUaW1lOiAoKSA9PiB7Ci0gICAgICAgICAgICByZXR1 cm4gdGltZTsKLSAgICAgICAgICB9LAotICAgICAgICB9KSk7Ci0gICAgICB9OwotCi0gICAgICBs ZXQgY2FsbENTVkRvd25sb2FkID0gKCk9PiB7Ci0gICAgICAgIGxldCBmaWxlbmFtZSA9ICdkYXRh LScgKyB0aW1lICsgJy5jc3YnOwotCi0gICAgICAgIHF1ZXJ5VG9vbEFjdGlvbnMuZG93bmxvYWQo c3FsRWRpdG9yQ29udHJvbGxlcik7Ci0KLSAgICAgICAgZXhwZWN0KHNxbEVkaXRvckNvbnRyb2xs ZXIudHJpZ2dlcl9jc3ZfZG93bmxvYWQpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKGZpbGVuYW1lKTsK LSAgICAgIH07Ci0KLSAgICAgIGRlc2NyaWJlKCd3aGVuIHRoZSBxdWVyeSB0b29sIG9iamVjdCBo YXMgYSBzZWxlY3Rpb24nLCAoKSA9PiB7Ci0gICAgICAgIGJlZm9yZUVhY2goKCkgPT4gewotICAg ICAgICAgIGVudGlyZVF1ZXJ5U3RyaW5nID0gJ2luY2x1ZGUgc29tZSBtb3JlIG9mIHRoYXQgeXVt bXkgc3RyaW5nIGNoZWVzZTsnOwotICAgICAgICAgIHNlbGVjdGVkUXVlcnlTdHJpbmcgPSAnc29t ZSBzaWxseSBzdHJpbmcgY2hlZXNlJzsKLSAgICAgICAgICBzZXRVcFNwaWVzKHNlbGVjdGVkUXVl cnlTdHJpbmcsIGVudGlyZVF1ZXJ5U3RyaW5nKTsKLQotICAgICAgICAgIHNweUNhbGwoKTsKLSAg ICAgICAgfSk7Ci0KLSAgICAgICAgaXQoJ2NhbGxzIHRyaWdnZXJfY3N2X2Rvd25sb2FkIHdpdGgg ZmlsZW5hbWUgaGF2aW5nIC5jc3YgZXh0ZW5zaW9uJywgY2FsbENTVkRvd25sb2FkKTsKLQotICAg ICAgICBpdCgnY2FsbHMgdHJpZ2dlcl9jc3ZfZG93bmxvYWQgZmlsZW5hbWUgaGF2aW5nIC50eHQg ZXh0ZW5zaW9uJywgKCkgPT4gewotICAgICAgICAgIHNxbEVkaXRvckNvbnRyb2xsZXIucHJlZmVy ZW5jZXMuY3N2X2ZpZWxkX3NlcGFyYXRvciA9ICc7JzsKLSAgICAgICAgICBsZXQgZmlsZW5hbWUg PSAnZGF0YS0nICsgdGltZSArICcudHh0JzsKLQotICAgICAgICAgIHF1ZXJ5VG9vbEFjdGlvbnMu ZG93bmxvYWQoc3FsRWRpdG9yQ29udHJvbGxlcik7Ci0KLSAgICAgICAgICBleHBlY3Qoc3FsRWRp dG9yQ29udHJvbGxlci50cmlnZ2VyX2Nzdl9kb3dubG9hZCkudG9IYXZlQmVlbkNhbGxlZFdpdGgo ZmlsZW5hbWUpOwotICAgICAgICB9KTsKLSAgICAgIH0pOwotCi0gICAgICBkZXNjcmliZSgnd2hl biB0aGVyZSBpcyBubyBzZWxlY3Rpb24nLCAoKSA9PiB7Ci0gICAgICAgIGJlZm9yZUVhY2goKCkg PT4gewotICAgICAgICAgIHNlbGVjdGVkUXVlcnlTdHJpbmcgPSAnJzsKLSAgICAgICAgICBlbnRp cmVRdWVyeVN0cmluZyA9ICdpbmNsdWRlIHNvbWUgbW9yZSBvZiB0aGF0IHl1bW15IHN0cmluZyBj aGVlc2U7JzsKLSAgICAgICAgICBzZXRVcFNwaWVzKHNlbGVjdGVkUXVlcnlTdHJpbmcsIGVudGly ZVF1ZXJ5U3RyaW5nKTsKLSAgICAgICAgICBzcHlDYWxsKCk7Ci0gICAgICAgIH0pOwotCi0gICAg ICAgIGl0KCdjYWxscyB0cmlnZ2VyX2Nzdl9kb3dubG9hZCB3aXRoIGZpbGVuYW1lJywgY2FsbENT VkRvd25sb2FkKTsKLSAgICAgIH0pOwotICAgIH0pOwotCi0gICAgZGVzY3JpYmUoJ3doZW4gdGhl IHRhYmxlIHdhcyBvcGVuZWQgdGhyb3VnaCB0YWJsZXMsIHZpZXcgYWxsIGRhdGEnLCAoKSA9PiB7 Ci0gICAgICBpdCgnY2FsbHMgdHJpZ2dlcl9jc3ZfZG93bmxvYWQgd2l0aCB0aGUgc3FsUXVlcnkg YW5kIHRoZSB0YWJsZSBuYW1lJywgKCkgPT4gewotICAgICAgICBsZXQgcXVlcnkgPSAnYSB2ZXJ5 IGxvbmcgcXVlcnknOwotICAgICAgICBzZXRVcFNwaWVzKCcnLCBxdWVyeSk7Ci0gICAgICAgIHNx bEVkaXRvckNvbnRyb2xsZXIuaXNfcXVlcnlfdG9vbCA9IGZhbHNlOwotCi0gICAgICAgIHF1ZXJ5 VG9vbEFjdGlvbnMuZG93bmxvYWQoc3FsRWRpdG9yQ29udHJvbGxlcik7Ci0KLSAgICAgICAgZXhw ZWN0KHNxbEVkaXRvckNvbnRyb2xsZXIudHJpZ2dlcl9jc3ZfZG93bmxvYWQpLnRvSGF2ZUJlZW5D YWxsZWRXaXRoKCdpQW1BVGFibGUnICsgJy5jc3YnKTsKLSAgICAgIH0pOwotICAgIH0pOwotCi0g IH0pOwotCi0gIGRlc2NyaWJlKCdjb21tZW50QmxvY2tDb2RlJywgKCkgPT4gewotICAgIGRlc2Ny aWJlKCd3aGVuIHRoZXJlIGlzIG5vIHF1ZXJ5IHRleHQnLCAoKSA9PiB7Ci0gICAgICBiZWZvcmVF YWNoKCgpID0+IHsKLSAgICAgICAgc2V0VXBTcGllcygnJywgJycpOwotICAgICAgfSk7Ci0gICAg ICBpdCgnZG9lcyBub3RoaW5nJywgKCkgPT4gewotICAgICAgICBsZXQgY29kZU1pcnJvck9iaiA9 IHNxbEVkaXRvckNvbnRyb2xsZXIuZ3JpZFZpZXcucXVlcnlfdG9vbF9vYmo7Ci0KLSAgICAgICAg cXVlcnlUb29sQWN0aW9ucy5jb21tZW50QmxvY2tDb2RlKHNxbEVkaXRvckNvbnRyb2xsZXIpOwot Ci0gICAgICAgIGV4cGVjdChjb2RlTWlycm9yT2JqLnRvZ2dsZUNvbW1lbnQpLm5vdC50b0hhdmVC ZWVuQ2FsbGVkKCk7Ci0gICAgICB9KTsKLSAgICB9KTsKLQotICAgIGRlc2NyaWJlKCd3aGVuIHRo ZXJlIGlzIGVtcHR5IHNlbGVjdGlvbicsICgpID0+IHsKLSAgICAgIGJlZm9yZUVhY2goYmVmb3Jl RWFjaEVtcHR5U2VsZWN0aW9uKTsKLQotICAgICAgaXQoJ2NvbW1lbnRzIHRoZSBjdXJyZW50IGxp bmUnLCAoKSA9PiB7Ci0gICAgICAgIGxldCBjb2RlTWlycm9yT2JqID0gc3FsRWRpdG9yQ29udHJv bGxlci5ncmlkVmlldy5xdWVyeV90b29sX29iajsKLQotICAgICAgICBxdWVyeVRvb2xBY3Rpb25z LmNvbW1lbnRCbG9ja0NvZGUoc3FsRWRpdG9yQ29udHJvbGxlcik7Ci0KLSAgICAgICAgZXhwZWN0 KGNvZGVNaXJyb3JPYmoudG9nZ2xlQ29tbWVudCkudG9IYXZlQmVlbkNhbGxlZFdpdGgoMywgMyk7 Ci0gICAgICB9KTsKLSAgICB9KTsKLQotICAgIGRlc2NyaWJlKCd3aGVuIHNvbWUgcGFydCBvZiB0 aGUgcXVlcnkgaXMgc2VsZWN0ZWQnLCAoKSA9PiB7Ci0gICAgICBiZWZvcmVFYWNoKCgpID0+IHsK LSAgICAgICAgc2V0VXBTcGllcygnYSBzdHJpbmdcbmRkZCcsICdhIHN0cmluZ1xuZGRkXG5zc3Mn KTsKLSAgICAgIH0pOwotCi0gICAgICBpdCgnY29tbWVudHMgdGhlIHNlbGVjdGlvbicsICgpID0+ IHsKLSAgICAgICAgbGV0IGNvZGVNaXJyb3JPYmogPSBzcWxFZGl0b3JDb250cm9sbGVyLmdyaWRW aWV3LnF1ZXJ5X3Rvb2xfb2JqOwotCi0gICAgICAgIHF1ZXJ5VG9vbEFjdGlvbnMuY29tbWVudEJs b2NrQ29kZShzcWxFZGl0b3JDb250cm9sbGVyKTsKLQotICAgICAgICBleHBlY3QoY29kZU1pcnJv ck9iai50b2dnbGVDb21tZW50KS50b0hhdmVCZWVuQ2FsbGVkV2l0aCgwLCAxMik7Ci0gICAgICB9 KTsKLSAgICB9KTsKLSAgfSk7Ci0KLSAgZGVzY3JpYmUoJ2NvbW1lbnRMaW5lQ29kZScsICgpID0+ IHsKLSAgICBkZXNjcmliZSgnd2hlbiB0aGVyZSBpcyBubyBxdWVyeSB0ZXh0JywgKCkgPT4gewot ICAgICAgYmVmb3JlRWFjaCgoKSA9PiB7Ci0gICAgICAgIHNldFVwU3BpZXMoJycsICcnKTsKLSAg ICAgIH0pOwotICAgICAgaXQoJ2RvZXMgbm90aGluZycsICgpID0+IHsKLSAgICAgICAgbGV0IGNv ZGVNaXJyb3JPYmogPSBzcWxFZGl0b3JDb250cm9sbGVyLmdyaWRWaWV3LnF1ZXJ5X3Rvb2xfb2Jq OwotCi0gICAgICAgIHF1ZXJ5VG9vbEFjdGlvbnMuY29tbWVudExpbmVDb2RlKHNxbEVkaXRvckNv bnRyb2xsZXIpOwotCi0gICAgICAgIGV4cGVjdChjb2RlTWlycm9yT2JqLmxpbmVDb21tZW50KS5u b3QudG9IYXZlQmVlbkNhbGxlZCgpOwotICAgICAgfSk7Ci0gICAgfSk7Ci0KLSAgICBkZXNjcmli ZSgnd2hlbiB0aGVyZSBpcyBlbXB0eSBzZWxlY3Rpb24nLCAoKSA9PiB7Ci0gICAgICBiZWZvcmVF YWNoKGJlZm9yZUVhY2hFbXB0eVNlbGVjdGlvbik7Ci0KLSAgICAgIGl0KCdjb21tZW50cyB0aGUg Y3VycmVudCBsaW5lJywgKCkgPT4gewotICAgICAgICBsZXQgY29kZU1pcnJvck9iaiA9IHNxbEVk aXRvckNvbnRyb2xsZXIuZ3JpZFZpZXcucXVlcnlfdG9vbF9vYmo7Ci0KLSAgICAgICAgcXVlcnlU b29sQWN0aW9ucy5jb21tZW50TGluZUNvZGUoc3FsRWRpdG9yQ29udHJvbGxlcik7Ci0KLSAgICAg ICAgZXhwZWN0KGNvZGVNaXJyb3JPYmoubGluZUNvbW1lbnQpLnRvSGF2ZUJlZW5DYWxsZWRXaXRo KDMsIDMsIHtsaW5lQ29tbWVudDogJy0tJ30pOwotICAgICAgfSk7Ci0gICAgfSk7Ci0KLSAgICBk ZXNjcmliZSgnd2hlbiBzb21lIHBhcnQgb2YgdGhlIHF1ZXJ5IGlzIHNlbGVjdGVkJywgKCkgPT4g ewotICAgICAgYmVmb3JlRWFjaCgoKSA9PiB7Ci0gICAgICAgIHNldFVwU3BpZXMoJ3RyaW5nXG5k ZGQnLCAnYSBzdHJpbmdcbmRkZFxuc3NzJyk7Ci0gICAgICB9KTsKLQotICAgICAgaXQoJ2NvbW1l bnRzIHRoZSBzZWxlY3Rpb24nLCAoKSA9PiB7Ci0gICAgICAgIGxldCBjb2RlTWlycm9yT2JqID0g c3FsRWRpdG9yQ29udHJvbGxlci5ncmlkVmlldy5xdWVyeV90b29sX29iajsKLQotICAgICAgICBx dWVyeVRvb2xBY3Rpb25zLmNvbW1lbnRMaW5lQ29kZShzcWxFZGl0b3JDb250cm9sbGVyKTsKLQot ICAgICAgICBleHBlY3QoY29kZU1pcnJvck9iai5saW5lQ29tbWVudCkudG9IYXZlQmVlbkNhbGxl ZFdpdGgoMywgMTIsIHtsaW5lQ29tbWVudDogJy0tJ30pOwotICAgICAgfSk7Ci0gICAgfSk7Ci0g IH0pOwotCi0gIGRlc2NyaWJlKCd1bmNvbW1lbnRMaW5lQ29kZScsICgpID0+IHsKLSAgICBkZXNj cmliZSgnd2hlbiB0aGVyZSBpcyBubyBxdWVyeSB0ZXh0JywgKCkgPT4gewotICAgICAgYmVmb3Jl RWFjaCgoKSA9PiB7Ci0gICAgICAgIHNldFVwU3BpZXMoJycsICcnKTsKLSAgICAgIH0pOwotICAg ICAgaXQoJ2RvZXMgbm90aGluZycsICgpID0+IHsKLSAgICAgICAgbGV0IGNvZGVNaXJyb3JPYmog PSBzcWxFZGl0b3JDb250cm9sbGVyLmdyaWRWaWV3LnF1ZXJ5X3Rvb2xfb2JqOwotCi0gICAgICAg IHF1ZXJ5VG9vbEFjdGlvbnMudW5jb21tZW50TGluZUNvZGUoc3FsRWRpdG9yQ29udHJvbGxlcik7 Ci0KLSAgICAgICAgZXhwZWN0KGNvZGVNaXJyb3JPYmoudW5jb21tZW50KS5ub3QudG9IYXZlQmVl bkNhbGxlZCgpOwotICAgICAgfSk7Ci0gICAgfSk7Ci0KLSAgICBkZXNjcmliZSgnd2hlbiB0aGVy ZSBpcyBlbXB0eSBzZWxlY3Rpb24nLCAoKSA9PiB7Ci0gICAgICBiZWZvcmVFYWNoKGJlZm9yZUVh Y2hFbXB0eVNlbGVjdGlvbik7Ci0KLSAgICAgIGl0KCd1bmNvbW1lbnRzIHRoZSBjdXJyZW50IGxp bmUnLCAoKSA9PiB7Ci0gICAgICAgIGxldCBjb2RlTWlycm9yT2JqID0gc3FsRWRpdG9yQ29udHJv bGxlci5ncmlkVmlldy5xdWVyeV90b29sX29iajsKLQotICAgICAgICBxdWVyeVRvb2xBY3Rpb25z LnVuY29tbWVudExpbmVDb2RlKHNxbEVkaXRvckNvbnRyb2xsZXIpOwotCi0gICAgICAgIGV4cGVj dChjb2RlTWlycm9yT2JqLnVuY29tbWVudCkudG9IYXZlQmVlbkNhbGxlZFdpdGgoMywgMywge2xp bmVDb21tZW50OiAnLS0nfSk7Ci0gICAgICB9KTsKLSAgICB9KTsKLQotICAgIGRlc2NyaWJlKCd3 aGVuIHNvbWUgcGFydCBvZiB0aGUgcXVlcnkgaXMgc2VsZWN0ZWQnLCAoKSA9PiB7Ci0gICAgICBi ZWZvcmVFYWNoKCgpID0+IHsKLSAgICAgICAgc2V0VXBTcGllcygndHJpbmdcbmRkZCcsICdhIHN0 cmluZ1xuZGRkXG5zc3MnKTsKLSAgICAgIH0pOwotCi0gICAgICBpdCgndW5jb21tZW50cyB0aGUg c2VsZWN0aW9uJywgKCkgPT4gewotICAgICAgICBsZXQgY29kZU1pcnJvck9iaiA9IHNxbEVkaXRv ckNvbnRyb2xsZXIuZ3JpZFZpZXcucXVlcnlfdG9vbF9vYmo7Ci0KLSAgICAgICAgcXVlcnlUb29s QWN0aW9ucy51bmNvbW1lbnRMaW5lQ29kZShzcWxFZGl0b3JDb250cm9sbGVyKTsKLQotICAgICAg ICBleHBlY3QoY29kZU1pcnJvck9iai51bmNvbW1lbnQpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKDMs IDEyLCB7bGluZUNvbW1lbnQ6ICctLSd9KTsKLSAgICAgIH0pOwotICAgIH0pOwotICB9KTsKLQot ICBkZXNjcmliZSgndG9nZ2xlQ2FzZU9mU2VsZWN0ZWRUZXh0JywgKCkgPT4gewotCi0gICAgbGV0 IGRvZXNOb3RoaW5nVGVzdENhc2UgPSAoKT0+IHsKLSAgICAgIGl0KCdkb2VzIG5vdGhpbmcnLCAo KSA9PiB7Ci0gICAgICAgIGV4cGVjdCgKLSAgICAgICAgICBxdWVyeVRvb2xBY3Rpb25zLnRvZ2ds ZUNhc2VPZlNlbGVjdGVkVGV4dChzcWxFZGl0b3JDb250cm9sbGVyKQotICAgICAgICApLm5vdC50 b0JlRGVmaW5lZCgpOwotICAgICAgfSk7Ci0gICAgfTsKLQotICAgIGRlc2NyaWJlKCd3aGVuIHRo ZXJlIGlzIG5vIHF1ZXJ5IHRleHQnLCAoKSA9PiB7Ci0gICAgICBiZWZvcmVFYWNoKCgpID0+IHsK LSAgICAgICAgc2V0VXBTcGllcygnJywgJycpOwotICAgICAgfSk7Ci0gICAgICBkb2VzTm90aGlu Z1Rlc3RDYXNlKCk7Ci0gICAgfSk7Ci0KLSAgICBkZXNjcmliZSgnd2hlbiB0aGVyZSBpcyBlbXB0 eSBzZWxlY3Rpb24nLCAoKSA9PiB7Ci0gICAgICBiZWZvcmVFYWNoKGJlZm9yZUVhY2hFbXB0eVNl bGVjdGlvbik7Ci0KLSAgICAgIGRvZXNOb3RoaW5nVGVzdENhc2UoKTsKLSAgICB9KTsKLQotICAg IGRlc2NyaWJlKCd3aGVuIHNlbGVjdGVkIHF1ZXJ5IGlzIGluIGxvd2VyIGNhc2UnLCAoKSA9PiB7 Ci0gICAgICBiZWZvcmVFYWNoKCgpID0+IHsKLSAgICAgICAgc2V0VXBTcGllcygnc3RyaW5nJywg J2Egc3RyaW5nXG5kZGRcbnNzcycpOwotICAgICAgfSk7Ci0KLSAgICAgIHRvZ2dsZVNlbGVjdGlv blN0cmluZ1VwcGVyQ2FzZSgpOwotCi0gICAgICBpdCgnKG5lZ2F0aXZlIHNjZW5hcmlvIHRvZ2ds ZSB0aGUgc2VsZWN0aW9uIGFuZCBzdHJpbmcgc2hvdWxkIGJlIGluIHVwcGVyIGNhc2UnLCAoKSA9 PiB7Ci0gICAgICAgIHF1ZXJ5VG9vbEFjdGlvbnMudG9nZ2xlQ2FzZU9mU2VsZWN0ZWRUZXh0KHNx bEVkaXRvckNvbnRyb2xsZXIpOwotICAgICAgICBleHBlY3QocmVwbGFjZVNlbGVjdGlvblNweQot ICAgICAgICApLm5vdC50b0hhdmVCZWVuQ2FsbGVkV2l0aCgnc3RyaW5nJyk7Ci0gICAgICB9KTsK LSAgICB9KTsKLQotICAgIGRlc2NyaWJlKCd3aGVuIHNlbGVjdGVkIHF1ZXJ5IGlzIGluIHVwcGVy IGNhc2UnLCAoKSA9PiB7Ci0gICAgICBiZWZvcmVFYWNoKCgpID0+IHsKLSAgICAgICAgc2V0VXBT cGllcygnU1RSSU5HJywgJ2Egc3RyaW5nXG5kZGRcbnNzcycpOwotICAgICAgfSk7Ci0KLSAgICAg IGl0KCd0b2dnbGUgdGhlIHNlbGVjdGlvbiBhbmQgc3RyaW5nIHNob3VsZCBiZSBpbiBsb3dlciBj YXNlJywgKCkgPT4gewotICAgICAgICBxdWVyeVRvb2xBY3Rpb25zLnRvZ2dsZUNhc2VPZlNlbGVj dGVkVGV4dChzcWxFZGl0b3JDb250cm9sbGVyKTsKLSAgICAgICAgZXhwZWN0KHJlcGxhY2VTZWxl Y3Rpb25TcHkKLSAgICAgICAgKS50b0hhdmVCZWVuQ2FsbGVkV2l0aCgnc3RyaW5nJyk7Ci0gICAg ICB9KTsKLQotICAgICAgaXQoJyhuZWdhdGl2ZSBzY2VuYXJpbyB0b2dnbGUgdGhlIHNlbGVjdGlv biBhbmQgc3RyaW5nIHNob3VsZCBiZSBpbiBsb3dlciBjYXNlJywgKCkgPT4gewotICAgICAgICBx dWVyeVRvb2xBY3Rpb25zLnRvZ2dsZUNhc2VPZlNlbGVjdGVkVGV4dChzcWxFZGl0b3JDb250cm9s bGVyKTsKLSAgICAgICAgZXhwZWN0KHJlcGxhY2VTZWxlY3Rpb25TcHkKLSAgICAgICAgKS5ub3Qu dG9IYXZlQmVlbkNhbGxlZFdpdGgoJ1NUUklORycpOwotICAgICAgfSk7Ci0gICAgfSk7Ci0KLSAg ICBkZXNjcmliZSgnd2hlbiBzZWxlY3RlZCBxdWVyeSBpcyBpbiBtaXhlZCBjYXNlJywgKCkgPT4g ewotICAgICAgYmVmb3JlRWFjaCgoKSA9PiB7Ci0gICAgICAgIHNldFVwU3BpZXMoJ3NUUkluZycs ICdhIHN0cmluZ1xuZGRkXG5zc3MnKTsKLSAgICAgIH0pOwotCi0gICAgICB0b2dnbGVTZWxlY3Rp b25TdHJpbmdVcHBlckNhc2UoKTsKLQotICAgICAgaXQoJyhuZWdhdGl2ZSBzY2VuYXJpbyB0b2dn bGUgdGhlIHNlbGVjdGlvbiBhbmQgc3RyaW5nIHNob3VsZCBiZSBpbiB1cHBlciBjYXNlJywgKCkg PT4gewotICAgICAgICBxdWVyeVRvb2xBY3Rpb25zLnRvZ2dsZUNhc2VPZlNlbGVjdGVkVGV4dChz cWxFZGl0b3JDb250cm9sbGVyKTsKLSAgICAgICAgZXhwZWN0KHJlcGxhY2VTZWxlY3Rpb25TcHkK LSAgICAgICAgKS5ub3QudG9IYXZlQmVlbkNhbGxlZFdpdGgoJ3NUUkluZycpOwotICAgICAgfSk7 Ci0gICAgfSk7Ci0gIH0pOwotCi0gIGRlc2NyaWJlKCdleGVjdXRlQ29tbWl0JywgKCkgPT4gewot ICAgIGRlc2NyaWJlKCd3aGVuIGNvbW1pdCBhY3Rpb24gaXMgYmVpbmcgcnVuIGZyb20gdGhlIHF1 ZXJ5IHRvb2wnLCAoKSA9PiB7Ci0gICAgICBiZWZvcmVFYWNoKCgpID0+IHsKLSAgICAgICAgc2V0 VXBTcGllcygnJywgJycpOwotICAgICAgfSk7Ci0KLSAgICAgIGl0KCdjYWxscyB0aGUgZXhlY3V0 ZSBjb21taXQgZnVuY3Rpb24nLCAoKSA9PiB7Ci0gICAgICAgIHF1ZXJ5VG9vbEFjdGlvbnMuZXhl Y3V0ZUNvbW1pdChzcWxFZGl0b3JDb250cm9sbGVyKTsKLSAgICAgICAgZXhwZWN0KHNxbEVkaXRv ckNvbnRyb2xsZXIuc3BlY2lhbF9zcWwpLnRvRXF1YWwoJ0NPTU1JVDsnKTsKLSAgICAgIH0pOwot ICAgIH0pOwotICB9KTsKLQotICBkZXNjcmliZSgnZXhlY3V0ZVJvbGxiYWNrJywgKCkgPT4gewot ICAgIGRlc2NyaWJlKCd3aGVuIHJvbGxiYWNrIGFjdGlvbiBpcyBiZWluZyBydW4gZnJvbSB0aGUg cXVlcnkgdG9vbCcsICgpID0+IHsKLSAgICAgIGJlZm9yZUVhY2goKCkgPT4gewotICAgICAgICBz ZXRVcFNwaWVzKCcnLCAnJyk7Ci0gICAgICB9KTsKLQotICAgICAgaXQoJ2NhbGxzIHRoZSBleGVj dXRlIHJvbGxiYWNrIGZ1bmN0aW9uJywgKCkgPT4gewotICAgICAgICBxdWVyeVRvb2xBY3Rpb25z LmV4ZWN1dGVSb2xsYmFjayhzcWxFZGl0b3JDb250cm9sbGVyKTsKLSAgICAgICAgZXhwZWN0KHNx bEVkaXRvckNvbnRyb2xsZXIuc3BlY2lhbF9zcWwpLnRvRXF1YWwoJ1JPTExCQUNLOycpOwotICAg ICAgfSk7Ci0gICAgfSk7Ci0gIH0pOwotCi0gIGZ1bmN0aW9uIHNldFVwU3BpZXMoc2VsZWN0ZWRR dWVyeVN0cmluZ0FyZywgZW50aXJlUXVlcnlTdHJpbmdBcmcpIHsKLSAgICBnZXRWYWx1ZVNweSA9 IGphc21pbmUuY3JlYXRlU3B5KCdnZXRWYWx1ZVNweScpLmFuZC5yZXR1cm5WYWx1ZShlbnRpcmVR dWVyeVN0cmluZ0FyZyk7Ci0gICAgZ2V0U2VsZWN0aW9uU3B5ID0gamFzbWluZS5jcmVhdGVTcHko J2dldFNlbGVjdGlvblNweScpLmFuZC5yZXR1cm5WYWx1ZShzZWxlY3RlZFF1ZXJ5U3RyaW5nQXJn KTsKLSAgICByZXBsYWNlU2VsZWN0aW9uU3B5ID0gamFzbWluZS5jcmVhdGVTcHkoJ3JlcGxhY2VT ZWxlY3Rpb25TcHknKTsKLQotICAgIHNxbEVkaXRvckNvbnRyb2xsZXIgPSB7Ci0gICAgICBncmlk VmlldzogewotICAgICAgICBxdWVyeV90b29sX29iajogewotICAgICAgICAgIGdldFNlbGVjdGlv bjogZ2V0U2VsZWN0aW9uU3B5LAotICAgICAgICAgIGdldFZhbHVlOiBnZXRWYWx1ZVNweSwKLSAg ICAgICAgICB0b2dnbGVDb21tZW50OiBqYXNtaW5lLmNyZWF0ZVNweSgndG9nZ2xlQ29tbWVudFNw eScpLAotICAgICAgICAgIGxpbmVDb21tZW50OiBqYXNtaW5lLmNyZWF0ZVNweSgnbGluZUNvbW1l bnRTcHknKSwKLSAgICAgICAgICB1bmNvbW1lbnQ6IGphc21pbmUuY3JlYXRlU3B5KCd1bmNvbW1l bnRTcHknKSwKLSAgICAgICAgICByZXBsYWNlU2VsZWN0aW9uOiByZXBsYWNlU2VsZWN0aW9uU3B5 LAotICAgICAgICAgIGdldEN1cnNvcjogKGlzRnJvbSkgPT4gewotICAgICAgICAgICAgcmV0dXJu IGVudGlyZVF1ZXJ5U3RyaW5nQXJnLmluZGV4T2Yoc2VsZWN0ZWRRdWVyeVN0cmluZ0FyZykgKyAo aXNGcm9tID8gMCA6IHNlbGVjdGVkUXVlcnlTdHJpbmdBcmcubGVuZ3RoKTsKLSAgICAgICAgICB9 LAotICAgICAgICB9LAotICAgICAgfSwKLSAgICAgIHRyaWdnZXJfY3N2X2Rvd25sb2FkOiBqYXNt aW5lLmNyZWF0ZVNweSgndHJpZ2dlcl9jc3ZfZG93bmxvYWQnKSwKLSAgICAgIHRyaWdnZXI6IGph c21pbmUuY3JlYXRlU3B5KCd0cmlnZ2VyJyksCi0gICAgICB0YWJsZV9uYW1lOiAnaUFtQVRhYmxl JywKLSAgICAgIGlzX3F1ZXJ5X3Rvb2w6IHRydWUsCi0gICAgICBjaGVja19kYXRhX2NoYW5nZXNf dG9fZXhlY3V0ZV9xdWVyeTogamFzbWluZS5jcmVhdGVTcHkoJ2NoZWNrX2RhdGFfY2hhbmdlc190 b19leGVjdXRlX3F1ZXJ5JyksCi0gICAgICBwcmVmZXJlbmNlczogewotICAgICAgICBjc3ZfZmll bGRfc2VwYXJhdG9yOiAnLCcsCi0gICAgICB9LAotICAgIH07Ci0gIH0KLX0pOwpkaWZmIC0tZ2l0 IGEvd2ViL3JlZ3Jlc3Npb24vamF2YXNjcmlwdC9zcWxlZGl0b3IvcXVlcnlfdG9vbF9odHRwX2Vy cm9yX2hhbmRsZXJfc3BlYy5qcyBiL3dlYi9yZWdyZXNzaW9uL2phdmFzY3JpcHQvc3FsZWRpdG9y L3F1ZXJ5X3Rvb2xfaHR0cF9lcnJvcl9oYW5kbGVyX3NwZWMuanMKZGVsZXRlZCBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IGVhMTVlZmFlZC4uMDAwMDAwMDAwCi0tLSBhL3dlYi9yZWdyZXNzaW9uL2ph dmFzY3JpcHQvc3FsZWRpdG9yL3F1ZXJ5X3Rvb2xfaHR0cF9lcnJvcl9oYW5kbGVyX3NwZWMuanMK KysrIC9kZXYvbnVsbApAQCAtMSwxOTEgKzAsMCBAQAotLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLS8vCi0v LyBwZ0FkbWluIDQgLSBQb3N0Z3JlU1FMIFRvb2xzCi0vLwotLy8gQ29weXJpZ2h0IChDKSAyMDEz IC0gMjAyMiwgVGhlIHBnQWRtaW4gRGV2ZWxvcG1lbnQgVGVhbQotLy8gVGhpcyBzb2Z0d2FyZSBp cyByZWxlYXNlZCB1bmRlciB0aGUgUG9zdGdyZVNRTCBMaWNlbmNlCi0vLwotLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8KLQotaW1wb3J0IHsKLSAgaHR0cFJlc3BvbnNlUmVxdWlyZXNOZXdUcmFuc2FjdGlvbiwK LSAgaGFuZGxlUXVlcnlUb29sQWpheEVycm9yLAotfSBmcm9tICcuLi8uLi8uLi9wZ2FkbWluL3N0 YXRpYy9qcy9zcWxlZGl0b3IvcXVlcnlfdG9vbF9odHRwX2Vycm9yX2hhbmRsZXInOwotCi1kZXNj cmliZSgnI2h0dHBSZXNwb25zZVJlcXVpcmVzTmV3VHJhbnNhY3Rpb24nLCAoKSA9PiB7Ci0gIGRl c2NyaWJlKCd3aGVuIHN0YXR1cyBpcyBub3QgNDA0JywgKCkgPT4gewotICAgIGl0KCdzaG91bGQg cmV0dXJuIGZhbHNlJywgKCkgPT4gewotICAgICAgZXhwZWN0KGh0dHBSZXNwb25zZVJlcXVpcmVz TmV3VHJhbnNhY3Rpb24oewotICAgICAgICBzdGF0dXM6IDMwMCwKLSAgICAgIH0pKS50b0VxdWFs KGZhbHNlKTsKLSAgICB9KTsKLSAgfSk7Ci0KLSAgZGVzY3JpYmUoJ3doZW4gc3RhdHVzIGlzIDQw NCcsICgpID0+IHsKLSAgICBkZXNjcmliZSgnd2hlbiBkYXRhIGlzIG5vdCBwcmVzZW50JywgKCkg PT4gewotICAgICAgaXQoJ3Nob3VsZCByZXR1cm4gZmFsc2UnLCAoKSA9PiB7Ci0gICAgICAgIGV4 cGVjdChodHRwUmVzcG9uc2VSZXF1aXJlc05ld1RyYW5zYWN0aW9uKHsKLSAgICAgICAgICBzdGF0 dXM6IDQwNCwKLSAgICAgICAgfSkpLnRvQmVGYWxzeSgpOwotICAgICAgfSk7Ci0gICAgfSk7Ci0K LSAgICBkZXNjcmliZSgnd2hlbiBkYXRhIGlzIHByZXNlbnQnLCAoKSA9PiB7Ci0gICAgICBkZXNj cmliZSgnd2hlbiBpbmZvIGlzIG5vdCBwcmVzZW50IGluc2lkZSBkYXRhJywgKCkgPT4gewotICAg ICAgICBpdCgnc2hvdWxkIHJldHVybiBmYWxzZScsICgpID0+IHsKLSAgICAgICAgICBleHBlY3Qo aHR0cFJlc3BvbnNlUmVxdWlyZXNOZXdUcmFuc2FjdGlvbih7Ci0gICAgICAgICAgICBzdGF0dXM6 IDQwNCwKLSAgICAgICAgICAgIGRhdGE6IHt9LAotICAgICAgICAgIH0pKS50b0JlRmFsc3koKTsK LSAgICAgICAgfSk7Ci0gICAgICB9KTsKLQotICAgICAgZGVzY3JpYmUoJ3doZW4gaW5mbyBpcyBw cmVzZW50IGluc2lkZSBkYXRhJywgKCkgPT4gewotICAgICAgICBkZXNjcmliZSgnd2hlbiBpbmZv IHZhbHVlIGlzIG5vdCAiREFUQUdSSURfVFJBTlNBQ1RJT05fUkVRVUlSRUQiJywgKCkgPT4gewot ICAgICAgICAgIGl0KCdzaG91bGQgcmV0dXJuIGZhbHNlJywgKCkgPT4gewotICAgICAgICAgICAg ZXhwZWN0KGh0dHBSZXNwb25zZVJlcXVpcmVzTmV3VHJhbnNhY3Rpb24oewotICAgICAgICAgICAg ICBzdGF0dXM6IDQwNCwKLSAgICAgICAgICAgICAgZGF0YTogewotICAgICAgICAgICAgICAgIGlu Zm86ICdzb21lIGluZm9ybWF0aW9uJywKLSAgICAgICAgICAgICAgfSwKLSAgICAgICAgICAgIH0p KS50b0VxdWFsKGZhbHNlKTsKLSAgICAgICAgICB9KTsKLSAgICAgICAgfSk7Ci0KLSAgICAgICAg ZGVzY3JpYmUoJ3doZW4gaW5mbyB2YWx1ZSBpcyAiREFUQUdSSURfVFJBTlNBQ1RJT05fUkVRVUlS RUQiJywgKCkgPT4gewotICAgICAgICAgIGl0KCdzaG91bGQgcmV0dXJuIGZhbHNlJywgKCkgPT4g ewotICAgICAgICAgICAgZXhwZWN0KGh0dHBSZXNwb25zZVJlcXVpcmVzTmV3VHJhbnNhY3Rpb24o ewotICAgICAgICAgICAgICBzdGF0dXM6IDQwNCwKLSAgICAgICAgICAgICAgZGF0YTogewotICAg ICAgICAgICAgICAgIGluZm86ICdEQVRBR1JJRF9UUkFOU0FDVElPTl9SRVFVSVJFRCcsCi0gICAg ICAgICAgICAgIH0sCi0gICAgICAgICAgICB9KSkudG9FcXVhbCh0cnVlKTsKLSAgICAgICAgICB9 KTsKLSAgICAgICAgfSk7Ci0gICAgICB9KTsKLSAgICB9KTsKLSAgfSk7Ci19KTsKLQotCi1kZXNj cmliZSgnI2hhbmRsZVF1ZXJ5VG9vbEFqYXhFcnJvcicsICgpID0+IHsKLSAgbGV0IHNxbEVkaXRv ckhhbmRsZXIsCi0gICAgZXhjZXB0aW9uU3B5LCBzdGF0ZVRvU2F2ZSwKLSAgICBzdGF0ZVBhcmFt ZXRlcnMsIGNoZWNrVHJhbnNhY3Rpb24sCi0gICAgcGdCcm93c2VyTW9jazsKLQotICBiZWZvcmVF YWNoKCgpID0+IHsKLSAgICBzdGF0ZVRvU2F2ZSA9ICd0ZXN0U3RhdGUnOwotICAgIHN0YXRlUGFy YW1ldGVycyA9IFtdOwotICAgIGNoZWNrVHJhbnNhY3Rpb24gPSBmYWxzZTsKLSAgICBzcWxFZGl0 b3JIYW5kbGVyID0gamFzbWluZS5jcmVhdGVTcHlPYmooCi0gICAgICAnaGFuZGxlcicsIFsnaW5p dFRyYW5zYWN0aW9uJywgJ3NhdmVTdGF0ZScsICdoYW5kbGVfY29ubmVjdGlvbl9sb3N0J10KLSAg ICApOwotICAgIGV4Y2VwdGlvblNweSA9IHsKLSAgICAgIHJlYWR5U3RhdGU6IDAsCi0gICAgICBz dGF0dXM6IDQwNCwKLSAgICAgIGRhdGE6IHsKLSAgICAgICAgaW5mbzogJ0NPTk5FQ1RJT05fTE9T VCcsCi0gICAgICB9LAotICAgIH07Ci0gICAgcGdCcm93c2VyTW9jayA9IHsKLSAgICAgICdCcm93 c2VyJzogewotICAgICAgICAnVXNlck1hbmFnZW1lbnQnOiBqYXNtaW5lLmNyZWF0ZVNweU9iaign VXNlck1hbmFnZW1lbnQnLCBbJ2lzUGdhTG9naW5SZXF1aXJlZCcsICdwZ2FMb2dpbiddKSwKLSAg ICAgIH0sCi0gICAgfTsKLSAgfSk7Ci0KLSAgZGVzY3JpYmUoJ3doZW4gcmVhZHkgc3RhdGUgaXMg MCcsICgpID0+IHsKLSAgICBpdCgnc2hvdWxkIHJldHVybiBjb25uZWN0aW9uJywgKCkgPT4gewot ICAgICAgZXhwZWN0KAotICAgICAgICBoYW5kbGVRdWVyeVRvb2xBamF4RXJyb3IoCi0gICAgICAg ICAgcGdCcm93c2VyTW9jaywgc3FsRWRpdG9ySGFuZGxlciwgZXhjZXB0aW9uU3B5LCBzdGF0ZVRv U2F2ZSwKLSAgICAgICAgICBzdGF0ZVBhcmFtZXRlcnMsIGNoZWNrVHJhbnNhY3Rpb24KLSAgICAg ICAgKQotICAgICAgKS50b0VxdWFsKCdOb3QgY29ubmVjdGVkIHRvIHRoZSBzZXJ2ZXIgb3IgdGhl IGNvbm5lY3Rpb24gdG8gdGhlIHNlcnZlciBoYXMgYmVlbiBjbG9zZWQuJyk7Ci0gICAgfSk7Ci0g IH0pOwotCi0gIGRlc2NyaWJlKCd3aGVuIHRoZXJlIGlzIGFuIGFqYXggZXJyb3IgZHVlIHRvIGxv Z2luIGlzIHJlcXVpcmVkJywgKCkgPT4gewotICAgIGJlZm9yZUVhY2goKCkgPT4gewotICAgICAg ZXhjZXB0aW9uU3B5LnJlYWR5U3RhdGUgPSAxOwotICAgICAgZXhjZXB0aW9uU3B5LnN0YXR1cyA9 IDQwMTsKLSAgICAgIGV4Y2VwdGlvblNweS5kYXRhLmluZm8gPSAnUEdBRE1JTl9MT0dJTl9SRVFV SVJFRCc7Ci0gICAgICBwZ0Jyb3dzZXJNb2NrLkJyb3dzZXIuVXNlck1hbmFnZW1lbnQuaXNQZ2FM b2dpblJlcXVpcmVkLmFuZC5yZXR1cm5WYWx1ZSh0cnVlKTsKLSAgICB9KTsKLQotICAgIGl0KCdz aG91bGQgc2F2ZSB0aGUgY3VycmVudCBzdGF0ZSBhbmQgY2FsbCBsb2dpbiBoYW5kbGVyJywgKCkg PT4gewotICAgICAgaGFuZGxlUXVlcnlUb29sQWpheEVycm9yKAotICAgICAgICBwZ0Jyb3dzZXJN b2NrLCBzcWxFZGl0b3JIYW5kbGVyLCBleGNlcHRpb25TcHksIHN0YXRlVG9TYXZlLAotICAgICAg ICBzdGF0ZVBhcmFtZXRlcnMsIGNoZWNrVHJhbnNhY3Rpb24KLSAgICAgICk7Ci0gICAgICBleHBl Y3Qoc3FsRWRpdG9ySGFuZGxlci5zYXZlU3RhdGUpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKHN0YXRl VG9TYXZlLCBzdGF0ZVBhcmFtZXRlcnMpOwotICAgICAgZXhwZWN0KHBnQnJvd3Nlck1vY2suQnJv d3Nlci5Vc2VyTWFuYWdlbWVudC5wZ2FMb2dpbikudG9IYXZlQmVlbkNhbGxlZCgpOwotICAgIH0p OwotICB9KTsKLQotICBkZXNjcmliZSgnd2hlbiB0aGVyZSBpcyBhbiBhamF4IGVycm9yIGFuZCBu ZXcgdHJhbnNhY3Rpb24gaW5pdGlhbGl6YXRpb24gcmVxdWlyZWQnLCAoKSA9PiB7Ci0gICAgYmVm b3JlRWFjaCgoKSA9PiB7Ci0gICAgICBleGNlcHRpb25TcHkucmVhZHlTdGF0ZSA9IDE7Ci0gICAg ICBleGNlcHRpb25TcHkuc3RhdHVzID0gNDA0OwotICAgICAgZXhjZXB0aW9uU3B5LmRhdGEuaW5m byA9ICdEQVRBR1JJRF9UUkFOU0FDVElPTl9SRVFVSVJFRCc7Ci0gICAgICBwZ0Jyb3dzZXJNb2Nr LkJyb3dzZXIuVXNlck1hbmFnZW1lbnQuaXNQZ2FMb2dpblJlcXVpcmVkLmFuZC5yZXR1cm5WYWx1 ZShmYWxzZSk7Ci0gICAgICBjaGVja1RyYW5zYWN0aW9uID0gdHJ1ZTsKLSAgICB9KTsKLQotICAg IGl0KCdzaG91bGQgc2F2ZSB0aGUgY3VycmVudCBzdGF0ZSBhbmQgY2FsbCBsb2dpbiBoYW5kbGVy JywgKCkgPT4gewotICAgICAgaGFuZGxlUXVlcnlUb29sQWpheEVycm9yKAotICAgICAgICBwZ0Jy b3dzZXJNb2NrLCBzcWxFZGl0b3JIYW5kbGVyLCBleGNlcHRpb25TcHksIHN0YXRlVG9TYXZlLAot ICAgICAgICBzdGF0ZVBhcmFtZXRlcnMsIGNoZWNrVHJhbnNhY3Rpb24KLSAgICAgICk7Ci0gICAg ICBleHBlY3QocGdCcm93c2VyTW9jay5Ccm93c2VyLlVzZXJNYW5hZ2VtZW50LnBnYUxvZ2luKS5u b3QudG9IYXZlQmVlbkNhbGxlZCgpOwotICAgICAgZXhwZWN0KHNxbEVkaXRvckhhbmRsZXIuc2F2 ZVN0YXRlKS50b0hhdmVCZWVuQ2FsbGVkV2l0aChzdGF0ZVRvU2F2ZSwgc3RhdGVQYXJhbWV0ZXJz KTsKLSAgICAgIGV4cGVjdChzcWxFZGl0b3JIYW5kbGVyLmluaXRUcmFuc2FjdGlvbikudG9IYXZl QmVlbkNhbGxlZCgpOwotICAgIH0pOwotICB9KTsKLQotICBkZXNjcmliZSgnd2hlbiB0aGVyZSBp cyBhbiBhamF4IGVycm9yIGR1ZSB0byBkYXRhYmFzZSBjb25uZWN0aW9uIGhhcyBiZWVuIGxvc3Qn LCAoKSA9PiB7Ci0gICAgYmVmb3JlRWFjaCgoKSA9PiB7Ci0gICAgICBleGNlcHRpb25TcHkucmVh ZHlTdGF0ZSA9IDE7Ci0gICAgICBleGNlcHRpb25TcHkuc3RhdHVzID0gNTAzOwotICAgICAgZXhj ZXB0aW9uU3B5LnJlc3BvbnNlSlNPTiA9IHsKLSAgICAgICAgJ2luZm8nOiAnQ09OTkVDVElPTl9M T1NUJywKLSAgICAgIH07Ci0gICAgICBwZ0Jyb3dzZXJNb2NrLkJyb3dzZXIuVXNlck1hbmFnZW1l bnQuaXNQZ2FMb2dpblJlcXVpcmVkLmFuZC5yZXR1cm5WYWx1ZShmYWxzZSk7Ci0gICAgICBjaGVj a1RyYW5zYWN0aW9uID0gZmFsc2U7Ci0gICAgfSk7Ci0KLSAgICBpdCgnc2hvdWxkIHNhdmUgdGhl IGN1cnJlbnQgc3RhdGUgYW5kIGNhbGwgY29ubmVjdGlvbiBsb3N0IGhhbmRsZXInLCAoZG9uZSkg PT4gewotICAgICAgaGFuZGxlUXVlcnlUb29sQWpheEVycm9yKAotICAgICAgICBwZ0Jyb3dzZXJN b2NrLCBzcWxFZGl0b3JIYW5kbGVyLCBleGNlcHRpb25TcHksIHN0YXRlVG9TYXZlLAotICAgICAg ICBzdGF0ZVBhcmFtZXRlcnMsIGNoZWNrVHJhbnNhY3Rpb24KLSAgICAgICk7Ci0gICAgICBleHBl Y3QocGdCcm93c2VyTW9jay5Ccm93c2VyLlVzZXJNYW5hZ2VtZW50LnBnYUxvZ2luKS5ub3QudG9I YXZlQmVlbkNhbGxlZCgpOwotICAgICAgc2V0VGltZW91dCgoKSA9PiB7Ci0gICAgICAgIGV4cGVj dChzcWxFZGl0b3JIYW5kbGVyLnNhdmVTdGF0ZSkudG9IYXZlQmVlbkNhbGxlZFdpdGgoc3RhdGVU b1NhdmUsIHN0YXRlUGFyYW1ldGVycyk7Ci0gICAgICAgIGV4cGVjdChzcWxFZGl0b3JIYW5kbGVy LmhhbmRsZV9jb25uZWN0aW9uX2xvc3QpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKGZhbHNlLCBleGNl cHRpb25TcHkpOwotICAgICAgICBkb25lKCk7Ci0gICAgICB9LCAwKTsKLSAgICB9KTsKLSAgfSk7 Ci0KLSAgZGVzY3JpYmUoJ3doZW4gdGhlcmUgaXMgYW4gYWpheCBlcnJvciBkdWUgdG8gdW5rbm93 biByZWFzb24nLCAoKSA9PiB7Ci0gICAgYmVmb3JlRWFjaCgoKSA9PiB7Ci0gICAgICBleGNlcHRp b25TcHkucmVhZHlTdGF0ZSA9IDE7Ci0gICAgICBleGNlcHRpb25TcHkuc3RhdHVzID0gODAzOwot ICAgICAgZXhjZXB0aW9uU3B5LnJlc3BvbnNlVGV4dCA9ICdhamF4IGZhaWxlZCB3aXRoIHVua25v d24gcmVhc29uJzsKLSAgICAgIHBnQnJvd3Nlck1vY2suQnJvd3Nlci5Vc2VyTWFuYWdlbWVudC5p c1BnYUxvZ2luUmVxdWlyZWQuYW5kLnJldHVyblZhbHVlKGZhbHNlKTsKLSAgICAgIGNoZWNrVHJh bnNhY3Rpb24gPSBmYWxzZTsKLSAgICB9KTsKLQotICAgIGl0KCdzaG91bGQgcmV0dXJuIHByb3Bl ciBlcnJvciBtZXNzYWdlIGZyb20gYWpheCBleGNlcHRpb24nLCAoKSA9PiB7Ci0gICAgICBleHBl Y3QoCi0gICAgICAgIGhhbmRsZVF1ZXJ5VG9vbEFqYXhFcnJvcigKLSAgICAgICAgICBwZ0Jyb3dz ZXJNb2NrLCBzcWxFZGl0b3JIYW5kbGVyLCBleGNlcHRpb25TcHksIHN0YXRlVG9TYXZlLAotICAg ICAgICAgIHN0YXRlUGFyYW1ldGVycywgY2hlY2tUcmFuc2FjdGlvbgotICAgICAgICApCi0gICAg ICApLnRvRXF1YWwoJ2FqYXggZmFpbGVkIHdpdGggdW5rbm93biByZWFzb24nKTsKLSAgICB9KTsK LSAgfSk7Ci0KLX0pOwpkaWZmIC0tZ2l0IGEvd2ViL3dlYnBhY2suY29uZmlnLmpzIGIvd2ViL3dl YnBhY2suY29uZmlnLmpzCmluZGV4IDNmOWM1ZjhmNC4uNjZiODQ2MTFkIDEwMDY0NAotLS0gYS93 ZWIvd2VicGFjay5jb25maWcuanMKKysrIGIvd2ViL3dlYnBhY2suY29uZmlnLmpzCkBAIC0zNzQs NyArMzc0LDcgQEAgbW9kdWxlLmV4cG9ydHMgPSBbewogICAgICdhcHAuYnVuZGxlJzogc291cmNl RGlyICsgJy9idW5kbGUvYXBwLmpzJywKICAgICBjb2RlbWlycm9yOiBzb3VyY2VEaXIgKyAnL2J1 bmRsZS9jb2RlbWlycm9yLmpzJywKICAgICBzbGlja2dyaWQ6IHNvdXJjZURpciArICcvYnVuZGxl L3NsaWNrZ3JpZC5qcycsCi0gICAgc3FsZWRpdG9yOiAnLi9wZ2FkbWluL3Rvb2xzL3NxbGVkaXRv ci9zdGF0aWMvanMvc3FsZWRpdG9yLmpzJywKKyAgICBzcWxlZGl0b3I6ICcuL3BnYWRtaW4vdG9v bHMvc3FsZWRpdG9yL3N0YXRpYy9qcy9pbmRleC5qcycsCiAgICAgZGVidWdnZXJfZGlyZWN0OiAn Li9wZ2FkbWluL3Rvb2xzL2RlYnVnZ2VyL3N0YXRpYy9qcy9kaXJlY3QuanMnLAogICAgIHNjaGVt YV9kaWZmOiAnLi9wZ2FkbWluL3Rvb2xzL3NjaGVtYV9kaWZmL3N0YXRpYy9qcy9zY2hlbWFfZGlm Zl9ob29rLmpzJywKICAgICBlcmRfdG9vbDogJy4vcGdhZG1pbi90b29scy9lcmQvc3RhdGljL2pz L2VyZF90b29sX2hvb2suanMnLApAQCAtNDYzLDcgKzQ2Myw3IEBAIG1vZHVsZS5leHBvcnRzID0g W3sKICAgICAgIC8vIHZhciBqUXVlcnkgPSByZXF1aXJlKCdqcXVlcnknKTsgdmFyIGJyb3dzZXIg PSByZXF1aXJlKCdwZ2FkbWluLmJyb3dzZXInKQogICAgICAgLy8gSXQgc29sdmVzIG51bWJlciBv ZiBwcm9ibGVtcwogICAgICAgLy8gUmVmOiBodHRwOi9naXRodWIuY29tL3dlYnBhY2stY29udHJp Yi9pbXBvcnRzLWxvYWRlci8KLSAgICAgIHRlc3Q6IHJlcXVpcmUucmVzb2x2ZSgnLi9wZ2FkbWlu L3Rvb2xzL2RhdGFncmlkL3N0YXRpYy9qcy9kYXRhZ3JpZCcpLAorICAgICAgdGVzdDogcmVxdWly ZS5yZXNvbHZlKCcuL3BnYWRtaW4vdG9vbHMvc3FsZWRpdG9yL3N0YXRpYy9qcy9pbmRleCcpLAog ICAgICAgdXNlOiB7CiAgICAgICAgIGxvYWRlcjogJ2ltcG9ydHMtbG9hZGVyJywKICAgICAgICAg b3B0aW9uczogewpAQCAtNTY2LDYgKzU2Niw3IEBAIG1vZHVsZS5leHBvcnRzID0gW3sKICAgICAg ICAgICAgICdwdXJlfHBnYWRtaW4udG9vbHMuc2VhcmNoX29iamVjdHMnLAogICAgICAgICAgICAg J3B1cmV8cGdhZG1pbi50b29scy5lcmRfbW9kdWxlJywKICAgICAgICAgICAgICdwdXJlfHBnYWRt aW4udG9vbHMucHNxbF9tb2R1bGUnLAorICAgICAgICAgICAgJ3B1cmV8cGdhZG1pbi50b29scy5z cWxlZGl0b3InLAogICAgICAgICAgICAgJ3B1cmV8cGdhZG1pbi5taXNjLmNsb3VkJywKICAgICAg ICAgICBdLAogICAgICAgICB9LApkaWZmIC0tZ2l0IGEvd2ViL3dlYnBhY2suc2hpbS5qcyBiL3dl Yi93ZWJwYWNrLnNoaW0uanMKaW5kZXggZjQ1ZWZkZTg4Li40ZDU2MGIwNTEgMTAwNjQ0Ci0tLSBh L3dlYi93ZWJwYWNrLnNoaW0uanMKKysrIGIvd2ViL3dlYnBhY2suc2hpbS5qcwpAQCAtMjE2LDcg KzIxNiw2IEBAIHZhciB3ZWJwYWNrU2hpbUNvbmZpZyA9IHsKICAgICAncGdhZG1pbi5icm93c2Vy LnV0aWxzJzogJy9icm93c2VyL2pzL3V0aWxzJywKICAgICAncGdhZG1pbi5icm93c2VyLndpemFy ZCc6IHBhdGguam9pbihfX2Rpcm5hbWUsICcuL3BnYWRtaW4vYnJvd3Nlci9zdGF0aWMvanMvd2l6 YXJkJyksCiAgICAgJ3BnYWRtaW4uZGFzaGJvYXJkJzogcGF0aC5qb2luKF9fZGlybmFtZSwgJy4v cGdhZG1pbi9kYXNoYm9hcmQvc3RhdGljL2pzL2Rhc2hib2FyZCcpLAotICAgICdwZ2FkbWluLmRh dGFncmlkJzogcGF0aC5qb2luKF9fZGlybmFtZSwgJy4vcGdhZG1pbi90b29scy9kYXRhZ3JpZC9z dGF0aWMvanMvZGF0YWdyaWQnKSwKICAgICAncGdhZG1pbi5maWxlX21hbmFnZXInOiBwYXRoLmpv aW4oX19kaXJuYW1lLCAnLi9wZ2FkbWluL21pc2MvZmlsZV9tYW5hZ2VyL3N0YXRpYy9qcy9maWxl X21hbmFnZXInKSwKICAgICAncGdhZG1pbi5maWxlX3V0aWxpdHknOiBwYXRoLmpvaW4oX19kaXJu YW1lLCAnLi9wZ2FkbWluL21pc2MvZmlsZV9tYW5hZ2VyL3N0YXRpYy9qcy91dGlsaXR5JyksCiAg ICAgJ3BnYWRtaW4uaGVscCc6IHBhdGguam9pbihfX2Rpcm5hbWUsICcuL3BnYWRtaW4vaGVscC9z dGF0aWMvanMvaGVscCcpLApAQCAtMjg1LDcgKzI4NCw2IEBAIHZhciB3ZWJwYWNrU2hpbUNvbmZp ZyA9IHsKICAgICAncGdhZG1pbi5wcmVmZXJlbmNlcyc6IHBhdGguam9pbihfX2Rpcm5hbWUsICcu L3BnYWRtaW4vcHJlZmVyZW5jZXMvc3RhdGljL2pzL3ByZWZlcmVuY2VzJyksCiAgICAgJ3BnYWRt aW4uc2V0dGluZ3MnOiBwYXRoLmpvaW4oX19kaXJuYW1lLCAnLi9wZ2FkbWluL3NldHRpbmdzL3N0 YXRpYy9qcy9zZXR0aW5ncycpLAogICAgICdwZ2FkbWluLnNlcnZlci5zdXBwb3J0ZWRfc2VydmVy cyc6ICcvYnJvd3Nlci9zZXJ2ZXIvc3VwcG9ydGVkX3NlcnZlcnMnLAotICAgICdwZ2FkbWluLnNx bGVkaXRvcic6IHBhdGguam9pbihfX2Rpcm5hbWUsICcuL3BnYWRtaW4vdG9vbHMvc3FsZWRpdG9y L3N0YXRpYy9qcy9zcWxlZGl0b3InKSwKICAgICAncGdhZG1pbi50YWJsZXMuanMnOiBwYXRoLmpv aW4oX19kaXJuYW1lLCAnLi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9zdGF0aWMvanMvJyksCiAgICAgJ3BnYWRtaW4udG9vbHMu YmFja3VwJzogcGF0aC5qb2luKF9fZGlybmFtZSwgJy4vcGdhZG1pbi90b29scy9iYWNrdXAvc3Rh dGljL2pzL2JhY2t1cCcpLAogICAgICdwZ2FkbWluLnRvb2xzLmRlYnVnZ2VyLmNvbnRyb2xsZXIn OiBwYXRoLmpvaW4oX19kaXJuYW1lLCAnLi9wZ2FkbWluL3Rvb2xzL2RlYnVnZ2VyL3N0YXRpYy9q cy9kZWJ1Z2dlcicpLApAQCAtMzA1LDcgKzMwMyw3IEBAIHZhciB3ZWJwYWNrU2hpbUNvbmZpZyA9 IHsKICAgICAncGdhZG1pbi50b29scy5lcmQnOiBwYXRoLmpvaW4oX19kaXJuYW1lLCAnLi9wZ2Fk bWluL3Rvb2xzL2VyZC9zdGF0aWMvanMnKSwKICAgICAncGdhZG1pbi50b29scy5wc3FsX21vZHVs ZSc6IHBhdGguam9pbihfX2Rpcm5hbWUsICcuL3BnYWRtaW4vdG9vbHMvcHNxbC9zdGF0aWMvanMv cHNxbF9tb2R1bGUnKSwKICAgICAncGdhZG1pbi50b29scy5wc3FsJzogcGF0aC5qb2luKF9fZGly bmFtZSwgJy4vcGdhZG1pbi90b29scy9wc3FsL3N0YXRpYy9qcycpLAotICAgICdwZ2FkbWluLnRv b2xzLnF1ZXJ5X3Rvb2wnOiBwYXRoLmpvaW4oX19kaXJuYW1lLCAnLi9wZ2FkbWluL3Rvb2xzL3F1 ZXJ5X3Rvb2wvc3RhdGljL2pzJyksCisgICAgJ3BnYWRtaW4udG9vbHMuc3FsZWRpdG9yJzogcGF0 aC5qb2luKF9fZGlybmFtZSwgJy4vcGdhZG1pbi90b29scy9zcWxlZGl0b3Ivc3RhdGljL2pzJyks CiAgICAgJ3BnYWRtaW4uc2VhcmNoX29iamVjdHMnOiBwYXRoLmpvaW4oX19kaXJuYW1lLCAnLi9w Z2FkbWluL3Rvb2xzL3NlYXJjaF9vYmplY3RzL3N0YXRpYy9qcycpLAogICAgICdwZ2FkbWluLnRv b2xzLnVzZXJfbWFuYWdlbWVudCc6IHBhdGguam9pbihfX2Rpcm5hbWUsICcuL3BnYWRtaW4vdG9v bHMvdXNlcl9tYW5hZ2VtZW50L3N0YXRpYy9qcy91c2VyX21hbmFnZW1lbnQnKSwKICAgICAncGdh ZG1pbi51c2VyX21hbmFnZW1lbnQuY3VycmVudF91c2VyJzogJy91c2VyX21hbmFnZW1lbnQvY3Vy cmVudF91c2VyJywKZGlmZiAtLWdpdCBhL3dlYi93ZWJwYWNrLnRlc3QuY29uZmlnLmpzIGIvd2Vi L3dlYnBhY2sudGVzdC5jb25maWcuanMKaW5kZXggYzM2ZDQ2M2I5Li4xOTczOTVkOTkgMTAwNjQ0 Ci0tLSBhL3dlYi93ZWJwYWNrLnRlc3QuY29uZmlnLmpzCisrKyBiL3dlYi93ZWJwYWNrLnRlc3Qu Y29uZmlnLmpzCkBAIC0xODUsNiArMTg1LDggQEAgbW9kdWxlLmV4cG9ydHMgPSB7CiAgICAgICAn YmFja2Zvcm0nOiBwYXRoLmpvaW4oX19kaXJuYW1lLCAnLi9ub2RlX21vZHVsZXMvYmFja2Zvcm0v c3JjL2JhY2tmb3JtJyksCiAgICAgICAnYmFja2dyaWQnOiBwYXRoLmpvaW4oX19kaXJuYW1lLCAn Li9wZ2FkbWluL3N0YXRpYy92ZW5kb3IvYmFja2dyaWQvYmFja2dyaWQnKSwKICAgICAgICdiYWNr Z3JpZC5maWx0ZXInOiBwYXRoLmpvaW4oX19kaXJuYW1lLCAnLi9ub2RlX21vZHVsZXMvYmFja2dy aWQtZmlsdGVyL2JhY2tncmlkLWZpbHRlcicpLAorICAgICAgJ3JlYWN0JzogcGF0aC5qb2luKF9f ZGlybmFtZSwgJ25vZGVfbW9kdWxlcy9yZWFjdCcpLAorICAgICAgJ3JlYWN0LWRvbSc6IHBhdGgu am9pbihfX2Rpcm5hbWUsICdub2RlX21vZHVsZXMvcmVhY3QtZG9tJyksCiAgICAgICAnc291cmNl cyc6IHNvdXJjZXNEaXIgKyAnL2pzJywKICAgICAgICd0cmFuc2xhdGlvbnMnOiByZWdyZXNzaW9u RGlyICsgJy9qYXZhc2NyaXB0L2Zha2VfdHJhbnNsYXRpb25zJywKICAgICAgICdwZ2FkbWluLmJy b3dzZXIubWVzc2FnZXMnOiByZWdyZXNzaW9uRGlyICsgJy9qYXZhc2NyaXB0L2Zha2VfbWVzc2Fn ZXMnLApAQCAtMTk0LDYgKzE5Niw3IEBAIG1vZHVsZS5leHBvcnRzID0gewogICAgICAgJ3NsaWNr Z3JpZC5wbHVnaW5zJzogbm9kZU1vZHVsZXNEaXIgKyAnL3NsaWNrZ3JpZC9wbHVnaW5zLycsCiAg ICAgICAnc2xpY2tncmlkLmdyaWQnOiBub2RlTW9kdWxlc0RpciArICcvc2xpY2tncmlkL3NsaWNr LmdyaWQnLAogICAgICAgJ21vbWVudCc6IHBhdGguam9pbihfX2Rpcm5hbWUsICcuL25vZGVfbW9k dWxlcy9tb21lbnQvbW9tZW50JyksCisgICAgICAnanNvbmVkaXRvci5taW4nOiBwYXRoLmpvaW4o X19kaXJuYW1lLCAnLi9ub2RlX21vZHVsZXMvanNvbmVkaXRvci9kaXN0L2pzb25lZGl0b3IubWlu JyksCiAgICAgICAnYnJvd3Nlcic6IHBhdGgucmVzb2x2ZShfX2Rpcm5hbWUsICdwZ2FkbWluL2Jy b3dzZXIvc3RhdGljL2pzJyksCiAgICAgICAncGdhZG1pbic6IHNvdXJjZXNEaXIgKyAnL2pzL3Bn YWRtaW4nLAogICAgICAgJ3BnYWRtaW4uc3FsZm9sZGNvZGUnOiBzb3VyY2VzRGlyICsgJy9qcy9j b2RlbWlycm9yL2FkZG9uL2ZvbGQvcGdhZG1pbi1zcWxmb2xkY29kZScsCkBAIC0yMDgsNiArMjEx LDggQEAgbW9kdWxlLmV4cG9ydHMgPSB7CiAgICAgICAncGdhZG1pbi5icm93c2VyLmFjdGl2aXR5 JzogcGF0aC5qb2luKF9fZGlybmFtZSwgJy4vcGdhZG1pbi9icm93c2VyL3N0YXRpYy9qcy9hY3Rp dml0eScpLAogICAgICAgJ3BnYWRtaW4udG9vbHMuZXJkJzogcGF0aC5qb2luKF9fZGlybmFtZSwg Jy4vcGdhZG1pbi90b29scy9lcmQvc3RhdGljL2pzJyksCiAgICAgICAncGdhZG1pbi50b29scy5w c3FsJzogcGF0aC5qb2luKF9fZGlybmFtZSwgJy4vcGdhZG1pbi90b29scy9wc3FsL3N0YXRpYy9q cycpLAorICAgICAgJ3BnYWRtaW4udG9vbHMuc3FsZWRpdG9yJzogcGF0aC5qb2luKF9fZGlybmFt ZSwgJy4vcGdhZG1pbi90b29scy9zcWxlZGl0b3Ivc3RhdGljL2pzJyksCisgICAgICAncGdhZG1p bi5hdXRoZW50aWNhdGUua2VyYmVyb3MnOiBwYXRoLmpvaW4oX19kaXJuYW1lLCAnLi9wZ2FkbWlu L2F1dGhlbnRpY2F0ZS9zdGF0aWMvanMva2VyYmVyb3MnKSwKICAgICAgICdidW5kbGVkX2NvZGVt aXJyb3InOiBwYXRoLmpvaW4oX19kaXJuYW1lLCAnLi9wZ2FkbWluL3N0YXRpYy9idW5kbGUvY29k ZW1pcnJvcicpLAogICAgICAgJ3Rvb2xzJzogcGF0aC5qb2luKF9fZGlybmFtZSwgJy4vcGdhZG1p bi90b29scy8nKSwKICAgICAgICdwZ2FkbWluLnVzZXJfbWFuYWdlbWVudC5jdXJyZW50X3VzZXIn OiByZWdyZXNzaW9uRGlyICsgJy9qYXZhc2NyaXB0L2Zha2VfY3VycmVudF91c2VyJywKZGlmZiAt LWdpdCBhL3dlYi95YXJuLmxvY2sgYi93ZWIveWFybi5sb2NrCmluZGV4IDdkYzcwOWFiNS4uN2Qw MTI4YWFkIDEwMDY0NAotLS0gYS93ZWIveWFybi5sb2NrCisrKyBiL3dlYi95YXJuLmxvY2sKQEAg LTMxLDYgKzMxLDEzIEBACiAgIGRlcGVuZGVuY2llczoKICAgICAiQGJhYmVsL2hpZ2hsaWdodCIg Il43LjE0LjUiCiAKKyJAYmFiZWwvY29kZS1mcmFtZUBeNy4xNi4wIjoKKyAgdmVyc2lvbiAiNy4x Ni4wIgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9AYmFiZWwvY29k ZS1mcmFtZS8tL2NvZGUtZnJhbWUtNy4xNi4wLnRneiMwZGZjODAzMDliZWVjODQxMWU2NWU3MDY0 NjFjNDA4YjBiYjliNDMxIgorICBpbnRlZ3JpdHkgc2hhNTEyLUlGNEVPTUVWK2JmWXdPbU54R3pT bmpSMkVtUW9kN2YxVVhPcFpNM2w0aTRvNFFOd3pqdEpBdS9IeGRqSHEwYVlCdmRxTXVRRVkxZWcw bnFXOVpQT1JBPT0KKyAgZGVwZW5kZW5jaWVzOgorICAgICJAYmFiZWwvaGlnaGxpZ2h0IiAiXjcu MTYuMCIKKwogIkBiYWJlbC9jb2RlLWZyYW1lQF43LjE2LjciOgogICB2ZXJzaW9uICI3LjE2Ljci CiAgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL0BiYWJlbC9jb2RlLWZy YW1lLy0vY29kZS1mcmFtZS03LjE2LjcudGd6IzQ0NDE2YjZiZDc2MjRiOTk4ZjViMWFmNWQ0NzA4 NTZjNDAxMzg3ODkiCkBAIC0zOCwxMiArNDUsNyBAQAogICBkZXBlbmRlbmNpZXM6CiAgICAgIkBi YWJlbC9oaWdobGlnaHQiICJeNy4xNi43IgogCi0iQGJhYmVsL2NvbXBhdC1kYXRhQF43LjEzLjAi LCAiQGJhYmVsL2NvbXBhdC1kYXRhQF43LjEzLjgiLCAiQGJhYmVsL2NvbXBhdC1kYXRhQF43LjE0 LjUiLCAiQGJhYmVsL2NvbXBhdC1kYXRhQF43LjE0LjciOgotICB2ZXJzaW9uICI3LjE0LjciCi0g IHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL0BiYWJlbC9jb21wYXQtZGF0 YS8tL2NvbXBhdC1kYXRhLTcuMTQuNy50Z3ojN2IwNDdkN2EzYTg5YTY3ZDIyNThkYzYxZjYwNGYw OThmMWJjN2UwOCIKLSAgaW50ZWdyaXR5IHNoYTUxMi1uUzZkWmFJU0NYSjMrNTE4Q1dpQmZFci8v Z0h5TU8wMnVEeEJrWFRLWkRONVBPcnVDbk9aMU40WUJSWkRDYWJ3RjhuWk1XQnBSeElpY21YdEJz K2Z2dz09Ci0KLSJAYmFiZWwvY29tcGF0LWRhdGFAXjcuMTMuMTEiLCAiQGJhYmVsL2NvbXBhdC1k YXRhQF43LjE2LjQiLCAiQGJhYmVsL2NvbXBhdC1kYXRhQF43LjE2LjgiOgorIkBiYWJlbC9jb21w YXQtZGF0YUBeNy4xMy4wIiwgIkBiYWJlbC9jb21wYXQtZGF0YUBeNy4xMy4xMSIsICJAYmFiZWwv Y29tcGF0LWRhdGFAXjcuMTMuOCIsICJAYmFiZWwvY29tcGF0LWRhdGFAXjcuMTQuNSIsICJAYmFi ZWwvY29tcGF0LWRhdGFAXjcuMTQuNyIsICJAYmFiZWwvY29tcGF0LWRhdGFAXjcuMTYuNCIsICJA YmFiZWwvY29tcGF0LWRhdGFAXjcuMTYuOCI6CiAgIHZlcnNpb24gIjcuMTcuMCIKICAgcmVzb2x2 ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vQGJhYmVsL2NvbXBhdC1kYXRhLy0vY29t cGF0LWRhdGEtNy4xNy4wLnRneiM4Njg1MGI4NTk3ZWE2OTYyMDg5NzcwOTUyMDc1ZGNhYWJiOGRi YTM0IgogICBpbnRlZ3JpdHkgc2hhNTEyLTM5MmJ5VGxwR1dYTXY0RmJ5V3czc0FaL0ZyVy9Ecndx TEdYcHkwbWJ5TmU5VGFxdjFtZzl5T041L28wY25yOFhZQ2tGVFpiQzFlVitjK0xBUk9ncm5nPT0K QEAgLTkyLDMxICs5NCwyMiBAQAogICAgIHNlbXZlciAiXjYuMy4wIgogCiAiQGJhYmVsL2VzbGlu dC1wYXJzZXJAXjcuMTIuMTMiOgotICB2ZXJzaW9uICI3LjEzLjgiCi0gIHJlc29sdmVkICJodHRw czovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL0BiYWJlbC9lc2xpbnQtcGFyc2VyLy0vZXNsaW50LXBh cnNlci03LjEzLjgudGd6IzZmMmJkZTZiMDY5MGZjYzA1OThiNDg2OWZjN2M4ZThiNTViMTc2ODci Ci0gIGludGVncml0eSBzaGE1MTItWGV3S2tpeXVrckd6TWVxVG9YSlFrNmhqZzJ2ZUk5U05RRWxH ekFvQWpLeFlDTGJnY1ZYNEtBMldob3lxTW9uOU40Uk1kQ1poTlRKTk9CY3A5c3BzaXc9PQorICB2 ZXJzaW9uICI3LjE2LjAiCisgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29t L0BiYWJlbC9lc2xpbnQtcGFyc2VyLy0vZXNsaW50LXBhcnNlci03LjE2LjAudGd6IzAzMmNmNmM4 ZDg0NGE5NWFkNjJmNzc5ZDI3MDhmYjRmNzdlMWE4MWMiCisgIGludGVncml0eSBzaGE1MTItYytB c1lPSGpJK0ZnQ2EraWZMZDhzRFhwNFU0bWprZkZnTDlOZFFXaHVBNzMxa0FVSnMwV2RKSVhFVDRB MTRFSkFSOUp2OUZGRi9NelBXSmZWOU9pcnc9PQogICBkZXBlbmRlbmNpZXM6Ci0gICAgZXNsaW50 LXNjb3BlICI1LjEuMCIKLSAgICBlc2xpbnQtdmlzaXRvci1rZXlzICJeMS4zLjAiCisgICAgZXNs aW50LXNjb3BlICJeNS4xLjEiCisgICAgZXNsaW50LXZpc2l0b3Ita2V5cyAiXjIuMS4wIgogICAg IHNlbXZlciAiXjYuMy4wIgogCiAiQGJhYmVsL2VzbGludC1wbHVnaW5AXjcuMTIuMTMiOgotICB2 ZXJzaW9uICI3LjEzLjAiCi0gIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29t L0BiYWJlbC9lc2xpbnQtcGx1Z2luLy0vZXNsaW50LXBsdWdpbi03LjEzLjAudGd6I2U2ZDk5ZWZj ZDZiODU1MWFkZjQ3OWUzODJhNDcyMTg3MjYxNzliMWIiCi0gIGludGVncml0eSBzaGE1MTItWUd3 Q0xjL3UvdWMzYlUrcS9mdmdSUTYyK1RreHV5VnZkbXliSzZFbHpFNDl2T0RwK1JuUmUxNmVKek1N N0V3dmNSUFFmUXZjT1N1R216ZmNiWkUyK3c9PQotICBkZXBlbmRlbmNpZXM6Ci0gICAgZXNsaW50 LXJ1bGUtY29tcG9zZXIgIl4wLjMuMCIKLQotIkBiYWJlbC9nZW5lcmF0b3JAXjcuMTMuMCIsICJA YmFiZWwvZ2VuZXJhdG9yQF43LjE0LjUiOgogICB2ZXJzaW9uICI3LjE0LjUiCi0gIHJlc29sdmVk ICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL0BiYWJlbC9nZW5lcmF0b3IvLS9nZW5lcmF0 b3ItNy4xNC41LnRneiM4NDhkN2I5ZjAzMWNhY2E5ZDBjZDBhZjAxYjA2M2YyMjZmNTJkNzg1Igot ICBpbnRlZ3JpdHkgc2hhNTEyLXkzcmxQKy9HMjVPSVgzbVlLS0lPbFFSY3FqN1lncnZIeE9MYlZt eUxKOWJQbWk1dHR2VW1weWRWamNGalpwaE9rdFd1QTdvdmJ4OTFFQ2xvV1RmaklBPT0KKyAgcmVz b2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vQGJhYmVsL2VzbGludC1wbHVnaW4v LS9lc2xpbnQtcGx1Z2luLTcuMTQuNS50Z3ojNzBiNzY2MDhkNDkwOTQwNjJlOGRhMmEyNjE0ZDUw ZmVjNzc1YzAwZiIKKyAgaW50ZWdyaXR5IHNoYTUxMi1uenQvWU1uT09JUmlrdlNuMmhrOStXMm9t Z0pCeTZVOFROMFIrV1RUbXFhcEErSG5aVHV2aVpha2V0ZFRFOVc3L2svK0UvRGZabHQxZXkxTlNF MzlwZz09CiAgIGRlcGVuZGVuY2llczoKLSAgICAiQGJhYmVsL3R5cGVzIiAiXjcuMTQuNSIKLSAg ICBqc2VzYyAiXjIuNS4xIgotICAgIHNvdXJjZS1tYXAgIl4wLjUuMCIKKyAgICBlc2xpbnQtcnVs ZS1jb21wb3NlciAiXjAuMy4wIgogCi0iQGJhYmVsL2dlbmVyYXRvckBeNy4xNy4wIjoKKyJAYmFi ZWwvZ2VuZXJhdG9yQF43LjEzLjAiLCAiQGJhYmVsL2dlbmVyYXRvckBeNy4xNC41IiwgIkBiYWJl bC9nZW5lcmF0b3JAXjcuMTcuMCI6CiAgIHZlcnNpb24gIjcuMTcuMCIKICAgcmVzb2x2ZWQgImh0 dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vQGJhYmVsL2dlbmVyYXRvci8tL2dlbmVyYXRvci03 LjE3LjAudGd6IzdiZDg5MGJhNzA2Y2Q4NmQzZTJmNzI3MzIyMzQ2ZmZkYmY5OGY2NWUiCiAgIGlu dGVncml0eSBzaGE1MTItSTNPbWl2NkZHT0MyOWR0bFpoa2ZYTzZwZ2ttdWtKU2xUMjZRalZ2UzFE R1plL056U1ZDUEc0MVgwdFMyMW9aa0pZbG92Zmo5cURXZ0tQK0NuNGJYeHc9PQpAQCAtMTI1LDEy ICsxMTgsMjEgQEAKICAgICBqc2VzYyAiXjIuNS4xIgogICAgIHNvdXJjZS1tYXAgIl4wLjUuMCIK IAotIkBiYWJlbC9oZWxwZXItYW5ub3RhdGUtYXMtcHVyZUBeNy4wLjAiLCAiQGJhYmVsL2hlbHBl ci1hbm5vdGF0ZS1hcy1wdXJlQF43LjEwLjQiLCAiQGJhYmVsL2hlbHBlci1hbm5vdGF0ZS1hcy1w dXJlQF43LjEyLjEzIiwgIkBiYWJlbC9oZWxwZXItYW5ub3RhdGUtYXMtcHVyZUBeNy4xNC41IjoK LSAgdmVyc2lvbiAiNy4xNC41IgotICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtn LmNvbS9AYmFiZWwvaGVscGVyLWFubm90YXRlLWFzLXB1cmUvLS9oZWxwZXItYW5ub3RhdGUtYXMt cHVyZS03LjE0LjUudGd6IzdiZjQ3OGVjM2I3MTcyNmQ1NmE4Y2E1Nzc1YjA0NmZjMjk4NzllNjEi Ci0gIGludGVncml0eSBzaGE1MTItRWl2SDlFZ0JJYitHOGlqMUIyakF3U0gzNlduR3ZrUVNFQzZD a1gvNnY2WkZsdzVmVk9IdnNnR0Y0dWlFSE8yR3pNdnVuWmI2dERMUUVRU2RyZG9jckE9PQorIkBi YWJlbC9nZW5lcmF0b3JAXjcuMTYuMCI6CisgIHZlcnNpb24gIjcuMTYuMCIKKyAgcmVzb2x2ZWQg Imh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vQGJhYmVsL2dlbmVyYXRvci8tL2dlbmVyYXRv ci03LjE2LjAudGd6I2Q0MGYzZDFkNTA3NWU2MmQzNTAwYmNjYjY3ZjNkYWE4YTk1MjY1YjIiCisg IGludGVncml0eSBzaGE1MTItUlI4aFVDZlJRbjlqOVJQS0VWWG85TGl3b3hMUFluNmhOWmx2VU9S OHRTbmF4bEQwcDArbGEwMFpQOS9TblJ0NkhjaEtyK1gwZk8ycjh2ckVUaUpHZXc9PQogICBkZXBl bmRlbmNpZXM6Ci0gICAgIkBiYWJlbC90eXBlcyIgIl43LjE0LjUiCisgICAgIkBiYWJlbC90eXBl cyIgIl43LjE2LjAiCisgICAganNlc2MgIl4yLjUuMSIKKyAgICBzb3VyY2UtbWFwICJeMC41LjAi CisKKyJAYmFiZWwvaGVscGVyLWFubm90YXRlLWFzLXB1cmVAXjcuMTUuNCIsICJAYmFiZWwvaGVs cGVyLWFubm90YXRlLWFzLXB1cmVAXjcuMTYuMCI6CisgIHZlcnNpb24gIjcuMTYuMCIKKyAgcmVz b2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vQGJhYmVsL2hlbHBlci1hbm5vdGF0 ZS1hcy1wdXJlLy0vaGVscGVyLWFubm90YXRlLWFzLXB1cmUtNy4xNi4wLnRneiM5YTFmMGViY2Rh NTNkOWEyZDAwMTA4YzRjZWFjZTZhNWQ1ZjFmMDhkIgorICBpbnRlZ3JpdHkgc2hhNTEyLUl0bVlG OXZSNHpBOGNCeURvY1kwNW8wTEdVa3AxemhiVFFPSDFORnlsNXhYRXFsVEpRQ0VKamllcml3K2FG cHhvMTZzd014VW5VaUtTN2EvcjR2dEhnPT0KKyAgZGVwZW5kZW5jaWVzOgorICAgICJAYmFiZWwv dHlwZXMiICJeNy4xNi4wIgogCiAiQGJhYmVsL2hlbHBlci1hbm5vdGF0ZS1hcy1wdXJlQF43LjE2 LjciOgogICB2ZXJzaW9uICI3LjE2LjciCkBAIC0xMzksMTQgKzE0MSw2IEBACiAgIGRlcGVuZGVu Y2llczoKICAgICAiQGJhYmVsL3R5cGVzIiAiXjcuMTYuNyIKIAotIkBiYWJlbC9oZWxwZXItYnVp bGRlci1iaW5hcnktYXNzaWdubWVudC1vcGVyYXRvci12aXNpdG9yQF43LjEyLjEzIjoKLSAgdmVy c2lvbiAiNy4xMi4xMyIKLSAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20v QGJhYmVsL2hlbHBlci1idWlsZGVyLWJpbmFyeS1hc3NpZ25tZW50LW9wZXJhdG9yLXZpc2l0b3Iv LS9oZWxwZXItYnVpbGRlci1iaW5hcnktYXNzaWdubWVudC1vcGVyYXRvci12aXNpdG9yLTcuMTIu MTMudGd6IzZiYzIwMzYxYzg4YjBhNzRkMDUxMzdhNjVjYWM4ZDNjYmY2ZjYxZmMiCi0gIGludGVn cml0eSBzaGE1MTItQ1pPdjl0R3BoaERSbFZqVmtBZ204TmhrbG05UnpTbVdwWDJteSt0N1VhL0tU NjE2cEV6WHNRQ2ppbnp2a1J2SFdKOWl0TzRmMjk2ZWZyb1gyM1hDTUE9PQotICBkZXBlbmRlbmNp ZXM6Ci0gICAgIkBiYWJlbC9oZWxwZXItZXhwbG9kZS1hc3NpZ25hYmxlLWV4cHJlc3Npb24iICJe Ny4xMi4xMyIKLSAgICAiQGJhYmVsL3R5cGVzIiAiXjcuMTIuMTMiCi0KICJAYmFiZWwvaGVscGVy LWJ1aWxkZXItYmluYXJ5LWFzc2lnbm1lbnQtb3BlcmF0b3ItdmlzaXRvckBeNy4xNi43IjoKICAg dmVyc2lvbiAiNy4xNi43IgogICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNv bS9AYmFiZWwvaGVscGVyLWJ1aWxkZXItYmluYXJ5LWFzc2lnbm1lbnQtb3BlcmF0b3ItdmlzaXRv ci8tL2hlbHBlci1idWlsZGVyLWJpbmFyeS1hc3NpZ25tZW50LW9wZXJhdG9yLXZpc2l0b3ItNy4x Ni43LnRneiMzOGQxMzg1NjFlYTIwN2YwZjY5ZWIxNjI2YTQxOGU0ZjdlNmE1ODBiIgpAQCAtMTU1 LDcgKzE0OSw3IEBACiAgICAgIkBiYWJlbC9oZWxwZXItZXhwbG9kZS1hc3NpZ25hYmxlLWV4cHJl c3Npb24iICJeNy4xNi43IgogICAgICJAYmFiZWwvdHlwZXMiICJeNy4xNi43IgogCi0iQGJhYmVs L2hlbHBlci1jb21waWxhdGlvbi10YXJnZXRzQF43LjEzLjAiLCAiQGJhYmVsL2hlbHBlci1jb21w aWxhdGlvbi10YXJnZXRzQF43LjEzLjgiLCAiQGJhYmVsL2hlbHBlci1jb21waWxhdGlvbi10YXJn ZXRzQF43LjE0LjUiOgorIkBiYWJlbC9oZWxwZXItY29tcGlsYXRpb24tdGFyZ2V0c0BeNy4xMy4w IiwgIkBiYWJlbC9oZWxwZXItY29tcGlsYXRpb24tdGFyZ2V0c0BeNy4xMy44IjoKICAgdmVyc2lv biAiNy4xNC41IgogICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9AYmFi ZWwvaGVscGVyLWNvbXBpbGF0aW9uLXRhcmdldHMvLS9oZWxwZXItY29tcGlsYXRpb24tdGFyZ2V0 cy03LjE0LjUudGd6IzdhOTljNWQwOTY3OTExZTk3MmZlMmMzNDExZjdkNWI0OTg0OThlY2YiCiAg IGludGVncml0eSBzaGE1MTItditRdFpxWEVpT25wTzZFWXZsSW1CNnpDRDJMZWwwNlJ6T1B6bWt6 L0QvWGdRaVV1M0MvSmIxTE9xU3QvQUlBMzRUWWkvUStLbFQ4dlRRcmdkeGtiTHc9PQpAQCAtMTY1 LDcgKzE1OSw3IEBACiAgICAgYnJvd3NlcnNsaXN0ICJeNC4xNi42IgogICAgIHNlbXZlciAiXjYu My4wIgogCi0iQGJhYmVsL2hlbHBlci1jb21waWxhdGlvbi10YXJnZXRzQF43LjE2LjciOgorIkBi YWJlbC9oZWxwZXItY29tcGlsYXRpb24tdGFyZ2V0c0BeNy4xNC41IiwgIkBiYWJlbC9oZWxwZXIt Y29tcGlsYXRpb24tdGFyZ2V0c0BeNy4xNi43IjoKICAgdmVyc2lvbiAiNy4xNi43IgogICByZXNv bHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9AYmFiZWwvaGVscGVyLWNvbXBpbGF0 aW9uLXRhcmdldHMvLS9oZWxwZXItY29tcGlsYXRpb24tdGFyZ2V0cy03LjE2LjcudGd6IzA2ZTY2 YzVmMjk5NjAxZTZjN2RhMzUwMDQ5MzE1ZTgzMjA5ZDU1MWIiCiAgIGludGVncml0eSBzaGE1MTIt bUdvakJ3SVdjd0dENnJmcWdSWFZsVlltUEF2N2VPcEllbVVHM2RHbkRkQ1k0UGFlNzBST2lqM1ht ZnJINkZhMWgxYWlEeWxwZ2xiWnlrdGZ6eW8vaEE9PQpAQCAtMTc1LDE3ICsxNjksMzAgQEAKICAg ICBicm93c2Vyc2xpc3QgIl40LjE3LjUiCiAgICAgc2VtdmVyICJeNi4zLjAiCiAKLSJAYmFiZWwv aGVscGVyLWNyZWF0ZS1jbGFzcy1mZWF0dXJlcy1wbHVnaW5AXjcuMTMuMCIsICJAYmFiZWwvaGVs cGVyLWNyZWF0ZS1jbGFzcy1mZWF0dXJlcy1wbHVnaW5AXjcuMTQuNiI6Ci0gIHZlcnNpb24gIjcu MTQuNiIKLSAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vQGJhYmVsL2hl bHBlci1jcmVhdGUtY2xhc3MtZmVhdHVyZXMtcGx1Z2luLy0vaGVscGVyLWNyZWF0ZS1jbGFzcy1m ZWF0dXJlcy1wbHVnaW4tNy4xNC42LnRneiNmMTE0NDY5YjZjMDZmOGI1YzU5YzZjNGU3NDYyMWY1 MDg1MzYyNTQyIgotICBpbnRlZ3JpdHkgc2hhNTEyLVo2Z3NmR29mVHhILytMUVhxWUVLNDVreG1j ZW5zYnptay9vaThEbWFReXRsUUNncU5adDlYUUY4aXFsSS9TZVhXVmphTU54dll2emFZdytraDQy bURnPT0KKyJAYmFiZWwvaGVscGVyLWNyZWF0ZS1jbGFzcy1mZWF0dXJlcy1wbHVnaW5AXjcuMTMu MCI6CisgIHZlcnNpb24gIjcuMTcuMSIKKyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFy bnBrZy5jb20vQGJhYmVsL2hlbHBlci1jcmVhdGUtY2xhc3MtZmVhdHVyZXMtcGx1Z2luLy0vaGVs cGVyLWNyZWF0ZS1jbGFzcy1mZWF0dXJlcy1wbHVnaW4tNy4xNy4xLnRneiM5Njk5ZjE0YTg4ODMz YTdlMDU1Y2U1N2RjZDNmZmRjZDI1MTg2YjIxIgorICBpbnRlZ3JpdHkgc2hhNTEyLUpCZFNyL0x0 eVlJbm8vcE5uSjc1bEJjcWMzWjFYWHVqelBhbkhxanZ2cmhPQStEVGNlVEZ1Smk4WGptV1RaaDRy M2ZzZGZxYUNNTjBpWmVtZGt4WkhRPT0KICAgZGVwZW5kZW5jaWVzOgotICAgICJAYmFiZWwvaGVs cGVyLWFubm90YXRlLWFzLXB1cmUiICJeNy4xNC41IgotICAgICJAYmFiZWwvaGVscGVyLWZ1bmN0 aW9uLW5hbWUiICJeNy4xNC41IgotICAgICJAYmFiZWwvaGVscGVyLW1lbWJlci1leHByZXNzaW9u LXRvLWZ1bmN0aW9ucyIgIl43LjE0LjUiCi0gICAgIkBiYWJlbC9oZWxwZXItb3B0aW1pc2UtY2Fs bC1leHByZXNzaW9uIiAiXjcuMTQuNSIKLSAgICAiQGJhYmVsL2hlbHBlci1yZXBsYWNlLXN1cGVy cyIgIl43LjE0LjUiCi0gICAgIkBiYWJlbC9oZWxwZXItc3BsaXQtZXhwb3J0LWRlY2xhcmF0aW9u IiAiXjcuMTQuNSIKKyAgICAiQGJhYmVsL2hlbHBlci1hbm5vdGF0ZS1hcy1wdXJlIiAiXjcuMTYu NyIKKyAgICAiQGJhYmVsL2hlbHBlci1lbnZpcm9ubWVudC12aXNpdG9yIiAiXjcuMTYuNyIKKyAg ICAiQGJhYmVsL2hlbHBlci1mdW5jdGlvbi1uYW1lIiAiXjcuMTYuNyIKKyAgICAiQGJhYmVsL2hl bHBlci1tZW1iZXItZXhwcmVzc2lvbi10by1mdW5jdGlvbnMiICJeNy4xNi43IgorICAgICJAYmFi ZWwvaGVscGVyLW9wdGltaXNlLWNhbGwtZXhwcmVzc2lvbiIgIl43LjE2LjciCisgICAgIkBiYWJl bC9oZWxwZXItcmVwbGFjZS1zdXBlcnMiICJeNy4xNi43IgorICAgICJAYmFiZWwvaGVscGVyLXNw bGl0LWV4cG9ydC1kZWNsYXJhdGlvbiIgIl43LjE2LjciCisKKyJAYmFiZWwvaGVscGVyLWNyZWF0 ZS1jbGFzcy1mZWF0dXJlcy1wbHVnaW5AXjcuMTYuMCI6CisgIHZlcnNpb24gIjcuMTYuMCIKKyAg cmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vQGJhYmVsL2hlbHBlci1jcmVh dGUtY2xhc3MtZmVhdHVyZXMtcGx1Z2luLy0vaGVscGVyLWNyZWF0ZS1jbGFzcy1mZWF0dXJlcy1w bHVnaW4tNy4xNi4wLnRneiMwOTBkNGQxNjZiMzQyYTAzYTlmZWMzN2VmNGZkNWFlYjljN2M2YTRi IgorICBpbnRlZ3JpdHkgc2hhNTEyLVhMd1d2cUVhcTE5ekZsRjVQVGdPb2Q0YlVBK1hia1I0V0xR QmN0MWJrem14SkdCMFpFSmFvS0Y0YzhjZ0g5b0J0Q0R1WUo4QlA1TkI5dUZpRWdPNVFBPT0KKyAg ZGVwZW5kZW5jaWVzOgorICAgICJAYmFiZWwvaGVscGVyLWFubm90YXRlLWFzLXB1cmUiICJeNy4x Ni4wIgorICAgICJAYmFiZWwvaGVscGVyLWZ1bmN0aW9uLW5hbWUiICJeNy4xNi4wIgorICAgICJA YmFiZWwvaGVscGVyLW1lbWJlci1leHByZXNzaW9uLXRvLWZ1bmN0aW9ucyIgIl43LjE2LjAiCisg ICAgIkBiYWJlbC9oZWxwZXItb3B0aW1pc2UtY2FsbC1leHByZXNzaW9uIiAiXjcuMTYuMCIKKyAg ICAiQGJhYmVsL2hlbHBlci1yZXBsYWNlLXN1cGVycyIgIl43LjE2LjAiCisgICAgIkBiYWJlbC9o ZWxwZXItc3BsaXQtZXhwb3J0LWRlY2xhcmF0aW9uIiAiXjcuMTYuMCIKIAogIkBiYWJlbC9oZWxw ZXItY3JlYXRlLWNsYXNzLWZlYXR1cmVzLXBsdWdpbkBeNy4xNi4xMCIsICJAYmFiZWwvaGVscGVy LWNyZWF0ZS1jbGFzcy1mZWF0dXJlcy1wbHVnaW5AXjcuMTYuNyI6CiAgIHZlcnNpb24gIjcuMTcu MCIKQEAgLTIwMCwxNSArMjA3LDcgQEAKICAgICAiQGJhYmVsL2hlbHBlci1yZXBsYWNlLXN1cGVy cyIgIl43LjE2LjciCiAgICAgIkBiYWJlbC9oZWxwZXItc3BsaXQtZXhwb3J0LWRlY2xhcmF0aW9u IiAiXjcuMTYuNyIKIAotIkBiYWJlbC9oZWxwZXItY3JlYXRlLXJlZ2V4cC1mZWF0dXJlcy1wbHVn aW5AXjcuMTIuMTMiOgotICB2ZXJzaW9uICI3LjE0LjMiCi0gIHJlc29sdmVkICJodHRwczovL3Jl Z2lzdHJ5Lnlhcm5wa2cuY29tL0BiYWJlbC9oZWxwZXItY3JlYXRlLXJlZ2V4cC1mZWF0dXJlcy1w bHVnaW4vLS9oZWxwZXItY3JlYXRlLXJlZ2V4cC1mZWF0dXJlcy1wbHVnaW4tNy4xNC4zLnRneiMx NDlhYTZkNzhjMDE2ZTMxOGM0M2UyNDA5YTBhZTljMTM2YTg2Njg4IgotICBpbnRlZ3JpdHkgc2hh NTEyLUpJQjIrWEpyYjd2M3pjZVYyWHpEaEdJQjkwMkNtS0dTcFNsNHEyQzZhZ1U5U05MRy8yVjFS dEZSR1BHMUFqaDlTVGozK3E2ekpNT0MrTi9wcDJQOURBPT0KLSAgZGVwZW5kZW5jaWVzOgotICAg ICJAYmFiZWwvaGVscGVyLWFubm90YXRlLWFzLXB1cmUiICJeNy4xMi4xMyIKLSAgICByZWdleHB1 LWNvcmUgIl40LjcuMSIKLQotIkBiYWJlbC9oZWxwZXItY3JlYXRlLXJlZ2V4cC1mZWF0dXJlcy1w bHVnaW5AXjcuMTYuNyI6CisiQGJhYmVsL2hlbHBlci1jcmVhdGUtcmVnZXhwLWZlYXR1cmVzLXBs dWdpbkBeNy4xMi4xMyIsICJAYmFiZWwvaGVscGVyLWNyZWF0ZS1yZWdleHAtZmVhdHVyZXMtcGx1 Z2luQF43LjE2LjciOgogICB2ZXJzaW9uICI3LjE3LjAiCiAgIHJlc29sdmVkICJodHRwczovL3Jl Z2lzdHJ5Lnlhcm5wa2cuY29tL0BiYWJlbC9oZWxwZXItY3JlYXRlLXJlZ2V4cC1mZWF0dXJlcy1w bHVnaW4vLS9oZWxwZXItY3JlYXRlLXJlZ2V4cC1mZWF0dXJlcy1wbHVnaW4tNy4xNy4wLnRneiMx ZGNjN2Q0MGJhMGM2YjZiMjU2MTg5OTdjNWRiZmQzMTBmMTg2ZmUxIgogICBpbnRlZ3JpdHkgc2hh NTEyLWF3TzJTbzk5d0c2S25sRStUUHM2cm44M2dDejVXbEVlUEpEVG5MRXFiY2hNVnJCZUF1alVS VnBoUmRpZ3NrMDk0Vmh2WmVoRm9OT2loU2xjQmp3c1hBPT0KQEAgLTIxNiw2ICsyMTUsMTQgQEAK ICAgICAiQGJhYmVsL2hlbHBlci1hbm5vdGF0ZS1hcy1wdXJlIiAiXjcuMTYuNyIKICAgICByZWdl eHB1LWNvcmUgIl41LjAuMSIKIAorIkBiYWJlbC9oZWxwZXItY3JlYXRlLXJlZ2V4cC1mZWF0dXJl cy1wbHVnaW5AXjcuMTYuMCI6CisgIHZlcnNpb24gIjcuMTYuMCIKKyAgcmVzb2x2ZWQgImh0dHBz Oi8vcmVnaXN0cnkueWFybnBrZy5jb20vQGJhYmVsL2hlbHBlci1jcmVhdGUtcmVnZXhwLWZlYXR1 cmVzLXBsdWdpbi8tL2hlbHBlci1jcmVhdGUtcmVnZXhwLWZlYXR1cmVzLXBsdWdpbi03LjE2LjAu dGd6IzA2YjIzNDhjZTM3ZmNjYzRmNWUxOGRjZDhkNzUwNTNmMmE3YzQ0ZmYiCisgIGludGVncml0 eSBzaGE1MTItM0R5RzB6QUZBWktjT3A3YVZyMzNkZHdreEowWjBKcjVWOTl5M0k2OTBlWUxwdWtK c0p2QWJ6VHkxZXdvQ3FzTUw4U2JJcmpIMTRKYy9uU1E0VHZOUEE9PQorICBkZXBlbmRlbmNpZXM6 CisgICAgIkBiYWJlbC9oZWxwZXItYW5ub3RhdGUtYXMtcHVyZSIgIl43LjE2LjAiCisgICAgcmVn ZXhwdS1jb3JlICJeNC43LjEiCisKICJAYmFiZWwvaGVscGVyLWRlZmluZS1wb2x5ZmlsbC1wcm92 aWRlckBeMC4xLjUiOgogICB2ZXJzaW9uICIwLjEuNSIKICAgcmVzb2x2ZWQgImh0dHBzOi8vcmVn aXN0cnkueWFybnBrZy5jb20vQGJhYmVsL2hlbHBlci1kZWZpbmUtcG9seWZpbGwtcHJvdmlkZXIv LS9oZWxwZXItZGVmaW5lLXBvbHlmaWxsLXByb3ZpZGVyLTAuMS41LnRneiMzYzJmOTFiNzk3MWI5 ZmMxMWZlNzc5Yzk0NWMwMTQwNjVkZWEzNDBlIgpAQCAtMjUxLDEzICsyNTgsNiBAQAogICBkZXBl bmRlbmNpZXM6CiAgICAgIkBiYWJlbC90eXBlcyIgIl43LjE2LjciCiAKLSJAYmFiZWwvaGVscGVy LWV4cGxvZGUtYXNzaWduYWJsZS1leHByZXNzaW9uQF43LjEyLjEzIjoKLSAgdmVyc2lvbiAiNy4x My4wIgotICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9AYmFiZWwvaGVs cGVyLWV4cGxvZGUtYXNzaWduYWJsZS1leHByZXNzaW9uLy0vaGVscGVyLWV4cGxvZGUtYXNzaWdu YWJsZS1leHByZXNzaW9uLTcuMTMuMC50Z3ojMTdiNWM1OWZmNDczZDlmOTU2ZjQwZWY1NzBjZjNh NzZjYTEyNjU3ZiIKLSAgaW50ZWdyaXR5IHNoYTUxMi1xUzBwZUxURFA4a09pc0cxYmxLYmFvQmcv bzlPU2ExcW91bU1qVEs1cE0rS0RUdHB4cHNpdWJuQ0dQMzR2SzhCWEdjYjJNOWVpZ3dndm9Kcnly endXQT09Ci0gIGRlcGVuZGVuY2llczoKLSAgICAiQGJhYmVsL3R5cGVzIiAiXjcuMTMuMCIKLQog IkBiYWJlbC9oZWxwZXItZXhwbG9kZS1hc3NpZ25hYmxlLWV4cHJlc3Npb25AXjcuMTYuNyI6CiAg IHZlcnNpb24gIjcuMTYuNyIKICAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5j b20vQGJhYmVsL2hlbHBlci1leHBsb2RlLWFzc2lnbmFibGUtZXhwcmVzc2lvbi8tL2hlbHBlci1l eHBsb2RlLWFzc2lnbmFibGUtZXhwcmVzc2lvbi03LjE2LjcudGd6IzEyYTZkODUyMmZkZDgzNGYx OTRlODY4YWY2MzU0ZTg2NTAyNDJiN2EiCkBAIC0yNjUsNyArMjY1LDcgQEAKICAgZGVwZW5kZW5j aWVzOgogICAgICJAYmFiZWwvdHlwZXMiICJeNy4xNi43IgogCi0iQGJhYmVsL2hlbHBlci1mdW5j dGlvbi1uYW1lQF43LjEyLjEzIiwgIkBiYWJlbC9oZWxwZXItZnVuY3Rpb24tbmFtZUBeNy4xNC41 IjoKKyJAYmFiZWwvaGVscGVyLWZ1bmN0aW9uLW5hbWVAXjcuMTQuNSI6CiAgIHZlcnNpb24gIjcu MTQuNSIKICAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vQGJhYmVsL2hl bHBlci1mdW5jdGlvbi1uYW1lLy0vaGVscGVyLWZ1bmN0aW9uLW5hbWUtNy4xNC41LnRneiM4OWUy YzQ3NDk3MmYxNWQ4ZTIzM2I1MmVlOGM0ODBlMmNmY2Q1MGM0IgogICBpbnRlZ3JpdHkgc2hhNTEy LUdqbmEwQXNYV2ZGdnJBdVgrVktjTi9hTk5Xb25pekJqMzl5R3dVelZEVlRsTVlKTUsyV3A2eGRw eTcybWZBckZxNXVLK05PdWV4ZnpabHpJMXo5K0FRPT0KQEAgLTI3NCw2ICsyNzQsMTUgQEAKICAg ICAiQGJhYmVsL3RlbXBsYXRlIiAiXjcuMTQuNSIKICAgICAiQGJhYmVsL3R5cGVzIiAiXjcuMTQu NSIKIAorIkBiYWJlbC9oZWxwZXItZnVuY3Rpb24tbmFtZUBeNy4xNi4wIjoKKyAgdmVyc2lvbiAi Ny4xNi4wIgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9AYmFiZWwv aGVscGVyLWZ1bmN0aW9uLW5hbWUvLS9oZWxwZXItZnVuY3Rpb24tbmFtZS03LjE2LjAudGd6I2I3 ZGQwNzk3ZDAwYmJmZWU0ZjA3ZTljNGVhNWIwZTMwYzhiYjE0ODEiCisgIGludGVncml0eSBzaGE1 MTItQlpoNG1FazF4aTJoNEhGaldVWFJRWDVBRXg0cnZhWnhIZ2F4OWdjamRMV2RranNZN01LdDVw MG90anNnNW5vWHcrcEIrY2xNQ2p3K2FFVllBRE1qb2c9PQorICBkZXBlbmRlbmNpZXM6CisgICAg IkBiYWJlbC9oZWxwZXItZ2V0LWZ1bmN0aW9uLWFyaXR5IiAiXjcuMTYuMCIKKyAgICAiQGJhYmVs L3RlbXBsYXRlIiAiXjcuMTYuMCIKKyAgICAiQGJhYmVsL3R5cGVzIiAiXjcuMTYuMCIKKwogIkBi YWJlbC9oZWxwZXItZnVuY3Rpb24tbmFtZUBeNy4xNi43IjoKICAgdmVyc2lvbiAiNy4xNi43Igog ICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9AYmFiZWwvaGVscGVyLWZ1 bmN0aW9uLW5hbWUvLS9oZWxwZXItZnVuY3Rpb24tbmFtZS03LjE2LjcudGd6I2YxZWM1MTU1MWZi MWM4OTU2YmM4ZGQ5NWYzODUyM2I2Y2YzNzVmOGYiCkBAIC0yODMsMjcgKzI5MiwzNCBAQAogICAg ICJAYmFiZWwvdGVtcGxhdGUiICJeNy4xNi43IgogICAgICJAYmFiZWwvdHlwZXMiICJeNy4xNi43 IgogCi0iQGJhYmVsL2hlbHBlci1nZXQtZnVuY3Rpb24tYXJpdHlAXjcuMTQuNSI6Ci0gIHZlcnNp b24gIjcuMTQuNSIKLSAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vQGJh YmVsL2hlbHBlci1nZXQtZnVuY3Rpb24tYXJpdHkvLS9oZWxwZXItZ2V0LWZ1bmN0aW9uLWFyaXR5 LTcuMTQuNS50Z3ojMjVmYmZhNTc5YjA5MzdlZWUxZjNiODA1ZWNlNGNlMzk4YzQzMTgxNSIKLSAg aW50ZWdyaXR5IHNoYTUxMi1JMURiNFNoc3Q1bGV3T000VitaS0p6UTBKR0dhWjZWWTFqWXZNZ2hS anFzNkRXZ3hMQ0l5RnQzMEdsbktrZlVlRkxwSnQydnpiTVZFWFZTWGxJRllVZz09Ci0gIGRlcGVu ZGVuY2llczoKLSAgICAiQGJhYmVsL3R5cGVzIiAiXjcuMTQuNSIKLQotIkBiYWJlbC9oZWxwZXIt Z2V0LWZ1bmN0aW9uLWFyaXR5QF43LjE2LjciOgorIkBiYWJlbC9oZWxwZXItZ2V0LWZ1bmN0aW9u LWFyaXR5QF43LjE0LjUiLCAiQGJhYmVsL2hlbHBlci1nZXQtZnVuY3Rpb24tYXJpdHlAXjcuMTYu NyI6CiAgIHZlcnNpb24gIjcuMTYuNyIKICAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFy bnBrZy5jb20vQGJhYmVsL2hlbHBlci1nZXQtZnVuY3Rpb24tYXJpdHkvLS9oZWxwZXItZ2V0LWZ1 bmN0aW9uLWFyaXR5LTcuMTYuNy50Z3ojZWEwOGFjNzUzMTE3YTY2OWYxNTA4YmEwNmViY2M0OTE1 NjM4NzQxOSIKICAgaW50ZWdyaXR5IHNoYTUxMi1mbGMrUkxTT0JYek56VmhjTHU2dWplSFVyRDZ0 QU5BT1U1b2pyUngvYXMrdGJ6Zjgrc3RVQ2o3K0lmUlJvQWJFWnFqL2FoWEVNc2poT2hnZVpzcm5U dz09CiAgIGRlcGVuZGVuY2llczoKICAgICAiQGJhYmVsL3R5cGVzIiAiXjcuMTYuNyIKIAotIkBi YWJlbC9oZWxwZXItaG9pc3QtdmFyaWFibGVzQF43LjEzLjAiLCAiQGJhYmVsL2hlbHBlci1ob2lz dC12YXJpYWJsZXNAXjcuMTQuNSI6CisiQGJhYmVsL2hlbHBlci1nZXQtZnVuY3Rpb24tYXJpdHlA XjcuMTYuMCI6CisgIHZlcnNpb24gIjcuMTYuMCIKKyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0 cnkueWFybnBrZy5jb20vQGJhYmVsL2hlbHBlci1nZXQtZnVuY3Rpb24tYXJpdHkvLS9oZWxwZXIt Z2V0LWZ1bmN0aW9uLWFyaXR5LTcuMTYuMC50Z3ojMDA4OGM3NDg2YjI5YTljYjVkOTQ4YjFhMWRl NDZkYjY2ZTA4OWNmYSIKKyAgaW50ZWdyaXR5IHNoYTUxMi1BU0NxdU5jeXdDMU5rWWgvejdDZ3Az dzMxWVc4YW9qallJbE5nNFZlSmlIa3F5UDRBekl2cjRxeDdwWURiNC9zOFljc1pXcXFPU3hna3Zq VXoxa3BEUT09CisgIGRlcGVuZGVuY2llczoKKyAgICAiQGJhYmVsL3R5cGVzIiAiXjcuMTYuMCIK KworIkBiYWJlbC9oZWxwZXItaG9pc3QtdmFyaWFibGVzQF43LjE0LjUiOgogICB2ZXJzaW9uICI3 LjE0LjUiCiAgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL0BiYWJlbC9o ZWxwZXItaG9pc3QtdmFyaWFibGVzLy0vaGVscGVyLWhvaXN0LXZhcmlhYmxlcy03LjE0LjUudGd6 I2UwZGQyN2MzM2E3OGU1NzdkN2M4ODg0OTE2YTNlN2VmMWY3YzdmOGQiCiAgIGludGVncml0eSBz aGE1MTItUjFQWGl6MzFVYzBWeHk0T0VPbTA3eDBvU2pLQWRQUENoM3RQaXZuL0VvOGN2ejZndmVB ZXV5VVVQQjIxSG9paWYwdW9QUVNTZGhJUFMzMzUybnZkeVE9PQogICBkZXBlbmRlbmNpZXM6CiAg ICAgIkBiYWJlbC90eXBlcyIgIl43LjE0LjUiCiAKKyJAYmFiZWwvaGVscGVyLWhvaXN0LXZhcmlh Ymxlc0BeNy4xNi4wIjoKKyAgdmVyc2lvbiAiNy4xNi4wIgorICByZXNvbHZlZCAiaHR0cHM6Ly9y ZWdpc3RyeS55YXJucGtnLmNvbS9AYmFiZWwvaGVscGVyLWhvaXN0LXZhcmlhYmxlcy8tL2hlbHBl ci1ob2lzdC12YXJpYWJsZXMtNy4xNi4wLnRneiM0YzkwMjNjMmYxZGVmN2UyOGZmNDZmYzFkYmNk MzZhMzliZWFhODFhIgorICBpbnRlZ3JpdHkgc2hhNTEyLTFBWmxwYXpqVVIwRVFaUXYzc2dSTmZN OW1FVldQSzNNNnZsYWxjekErRUVDY1B6M1hQaDZWcGxiRXJMNVVvTXBDaGhTY2s1d0FKSHRobGox YllwY21nPT0KKyAgZGVwZW5kZW5jaWVzOgorICAgICJAYmFiZWwvdHlwZXMiICJeNy4xNi4wIgor CiAiQGJhYmVsL2hlbHBlci1ob2lzdC12YXJpYWJsZXNAXjcuMTYuNyI6CiAgIHZlcnNpb24gIjcu MTYuNyIKICAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vQGJhYmVsL2hl bHBlci1ob2lzdC12YXJpYWJsZXMvLS9oZWxwZXItaG9pc3QtdmFyaWFibGVzLTcuMTYuNy50Z3oj ODZiY2IxOWE3N2E1MDljN2I3N2QwZTIyMzIzZWY1ODhmYTU4YzI0NiIKQEAgLTMxMSwxMiArMzI3 LDEyIEBACiAgIGRlcGVuZGVuY2llczoKICAgICAiQGJhYmVsL3R5cGVzIiAiXjcuMTYuNyIKIAot IkBiYWJlbC9oZWxwZXItbWVtYmVyLWV4cHJlc3Npb24tdG8tZnVuY3Rpb25zQF43LjE0LjUiOgot ICB2ZXJzaW9uICI3LjE0LjciCi0gIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cu Y29tL0BiYWJlbC9oZWxwZXItbWVtYmVyLWV4cHJlc3Npb24tdG8tZnVuY3Rpb25zLy0vaGVscGVy LW1lbWJlci1leHByZXNzaW9uLXRvLWZ1bmN0aW9ucy03LjE0LjcudGd6Izk3ZTU2MjQ0YmViOTQy MTFmZTI3N2JkODE4ZTNhMzI5YzY2Zjc5NzAiCi0gIGludGVncml0eSBzaGE1MTItVE1VdDR4S3hK bjZjY2pjT1c3YzRobHd5SkFyaXpza0Fob1NUT0NrQTB1WitLZ2hJYWNpMFFnOVIwNDNrVU1XSTlt dFFmZ255K05RNVFBVG5aK3BhYUE9PQorIkBiYWJlbC9oZWxwZXItbWVtYmVyLWV4cHJlc3Npb24t dG8tZnVuY3Rpb25zQF43LjE2LjAiOgorICB2ZXJzaW9uICI3LjE2LjAiCisgIHJlc29sdmVkICJo dHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL0BiYWJlbC9oZWxwZXItbWVtYmVyLWV4cHJlc3Np b24tdG8tZnVuY3Rpb25zLy0vaGVscGVyLW1lbWJlci1leHByZXNzaW9uLXRvLWZ1bmN0aW9ucy03 LjE2LjAudGd6IzI5Mjg3MDQwZWZkMTk3Yzc3NjM2ZWY3NTE4OGU4MWRhOGJjY2Q1YTQiCisgIGlu dGVncml0eSBzaGE1MTItYnNqbEJGUHVXVDZJV2hsMjhFZHJRK2dUdlN2ajV0cVZQNVhlZnRwMDdT RXV6NXBMbnNYWnVEa0REM1JmY3h5MElzSG1iWis3QjIvOVNIenhPMFQrc1E9PQogICBkZXBlbmRl bmNpZXM6Ci0gICAgIkBiYWJlbC90eXBlcyIgIl43LjE0LjUiCisgICAgIkBiYWJlbC90eXBlcyIg Il43LjE2LjAiCiAKICJAYmFiZWwvaGVscGVyLW1lbWJlci1leHByZXNzaW9uLXRvLWZ1bmN0aW9u c0BeNy4xNi43IjoKICAgdmVyc2lvbiAiNy4xNi43IgpAQCAtMzI1LDEzICszNDEsMjAgQEAKICAg ZGVwZW5kZW5jaWVzOgogICAgICJAYmFiZWwvdHlwZXMiICJeNy4xNi43IgogCi0iQGJhYmVsL2hl bHBlci1tb2R1bGUtaW1wb3J0c0BeNy4wLjAiLCAiQGJhYmVsL2hlbHBlci1tb2R1bGUtaW1wb3J0 c0BeNy4xMi4xMyIsICJAYmFiZWwvaGVscGVyLW1vZHVsZS1pbXBvcnRzQF43LjEzLjEyIjoKKyJA YmFiZWwvaGVscGVyLW1vZHVsZS1pbXBvcnRzQF43LjAuMCIsICJAYmFiZWwvaGVscGVyLW1vZHVs ZS1pbXBvcnRzQF43LjEyLjEzIjoKICAgdmVyc2lvbiAiNy4xMy4xMiIKICAgcmVzb2x2ZWQgImh0 dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vQGJhYmVsL2hlbHBlci1tb2R1bGUtaW1wb3J0cy8t L2hlbHBlci1tb2R1bGUtaW1wb3J0cy03LjEzLjEyLnRneiNjNmEzNjlhNmYzNjIxY2IyNWRhMDE0 MDc4Njg0ZGE5MTk2YjYxOTc3IgogICBpbnRlZ3JpdHkgc2hhNTEyLTRjVnZSMi8xQjY5M0l1T3ZT STIweHFxYS8rYmw3bHFBTVI1OVI0aXUzOVI5YU9YOC9Kb1lZMXNGYU52VU15TUJHbkhkd3ZKZ1Vy ek5Mb1VaeFh5cHhBPT0KICAgZGVwZW5kZW5jaWVzOgogICAgICJAYmFiZWwvdHlwZXMiICJeNy4x My4xMiIKIAorIkBiYWJlbC9oZWxwZXItbW9kdWxlLWltcG9ydHNAXjcuMTUuNCI6CisgIHZlcnNp b24gIjcuMTYuMCIKKyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vQGJh YmVsL2hlbHBlci1tb2R1bGUtaW1wb3J0cy8tL2hlbHBlci1tb2R1bGUtaW1wb3J0cy03LjE2LjAu dGd6IzkwNTM4ZTYwYjY3MmVjZjFiNDQ4ZjVmNGY1NDMzZDM3ZTc5YTNlYzMiCisgIGludGVncml0 eSBzaGE1MTIta2tIN3NXektQcTB4dDNIMW4rZ2hiNHhFTVA4azBVN1hWM2trQitaR3k2OWtEazJ5 U0ZXMXFQaTA2c2pLekZZM3QxajZYYkpTcXI0bUY5TDdDWVZ5aGc9PQorICBkZXBlbmRlbmNpZXM6 CisgICAgIkBiYWJlbC90eXBlcyIgIl43LjE2LjAiCisKICJAYmFiZWwvaGVscGVyLW1vZHVsZS1p bXBvcnRzQF43LjE2LjciOgogICB2ZXJzaW9uICI3LjE2LjciCiAgIHJlc29sdmVkICJodHRwczov L3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL0BiYWJlbC9oZWxwZXItbW9kdWxlLWltcG9ydHMvLS9oZWxw ZXItbW9kdWxlLWltcG9ydHMtNy4xNi43LnRneiMyNTYxMmE4MDkxYTk5OTcwNDQ2MWM4YTIyMmQw ZWZlYzVkMDkxNDM3IgpAQCAtMzY4LDEyICszOTEsMTIgQEAKICAgICAiQGJhYmVsL3RyYXZlcnNl IiAiXjcuMTYuNyIKICAgICAiQGJhYmVsL3R5cGVzIiAiXjcuMTYuNyIKIAotIkBiYWJlbC9oZWxw ZXItb3B0aW1pc2UtY2FsbC1leHByZXNzaW9uQF43LjEyLjEzIiwgIkBiYWJlbC9oZWxwZXItb3B0 aW1pc2UtY2FsbC1leHByZXNzaW9uQF43LjE0LjUiOgotICB2ZXJzaW9uICI3LjE0LjUiCi0gIHJl c29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL0BiYWJlbC9oZWxwZXItb3B0aW1p c2UtY2FsbC1leHByZXNzaW9uLy0vaGVscGVyLW9wdGltaXNlLWNhbGwtZXhwcmVzc2lvbi03LjE0 LjUudGd6I2YyNzM5NWE4NjE5ZTA2NjViM2YwMzY0Y2RkYjQxYzI1ZDcxYjQ5OWMiCi0gIGludGVn cml0eSBzaGE1MTItSXFpTElyT0RVT2RuUFU5L0Y4aWIxRngyb2hsZ0RoeG5JRFU3T0VWaStrQWJF WmN5aUY3QkxVOFc2UGZ2UGk5THp6dGpTN2tjYnpibUw3b0c4a0Q2VkE9PQorIkBiYWJlbC9oZWxw ZXItb3B0aW1pc2UtY2FsbC1leHByZXNzaW9uQF43LjE2LjAiOgorICB2ZXJzaW9uICI3LjE2LjAi CisgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL0BiYWJlbC9oZWxwZXIt b3B0aW1pc2UtY2FsbC1leHByZXNzaW9uLy0vaGVscGVyLW9wdGltaXNlLWNhbGwtZXhwcmVzc2lv bi03LjE2LjAudGd6I2NlY2RiMTQ1ZDcwYzU0MDk2YjE1NjRmOGU5ZjEwY2Q3ZDE5M2IzMzgiCisg IGludGVncml0eSBzaGE1MTItU3VJNDY3R2kyVjhma29mbTJKUG5aekIvU1V1WG9KQTV6WGUveHp5 UFAyTTA0Njg2UnpGS0ZIUEs2SERWTjZKdldCSUVXOHR0OWhQUjdmWGRuMkxncHc9PQogICBkZXBl bmRlbmNpZXM6Ci0gICAgIkBiYWJlbC90eXBlcyIgIl43LjE0LjUiCisgICAgIkBiYWJlbC90eXBl cyIgIl43LjE2LjAiCiAKICJAYmFiZWwvaGVscGVyLW9wdGltaXNlLWNhbGwtZXhwcmVzc2lvbkBe Ny4xNi43IjoKICAgdmVyc2lvbiAiNy4xNi43IgpAQCAtMzkyLDE1ICs0MTUsNiBAQAogICByZXNv bHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9AYmFiZWwvaGVscGVyLXBsdWdpbi11 dGlscy8tL2hlbHBlci1wbHVnaW4tdXRpbHMtNy4xNi43LnRneiNhYTNhOGFiNGMzY2NlZmY4ZTY1 ZWI5ZTczZDg3ZGM0ZmYzMjBiMmY1IgogICBpbnRlZ3JpdHkgc2hhNTEyLVFnM05rN1p4cGdNcnNv eDZIcmVZMVpOS2RCcTdLNzJ0RFNsaUE2ZENsNWYwMDdqUjRuZThpRDVVenVObkNKSDJ4QmYyQkVF VkdyKy9PTDZHZHA3UnhBPT0KIAotIkBiYWJlbC9oZWxwZXItcmVtYXAtYXN5bmMtdG8tZ2VuZXJh dG9yQF43LjEzLjAiOgotICB2ZXJzaW9uICI3LjEzLjAiCi0gIHJlc29sdmVkICJodHRwczovL3Jl Z2lzdHJ5Lnlhcm5wa2cuY29tL0BiYWJlbC9oZWxwZXItcmVtYXAtYXN5bmMtdG8tZ2VuZXJhdG9y Ly0vaGVscGVyLXJlbWFwLWFzeW5jLXRvLWdlbmVyYXRvci03LjEzLjAudGd6IzM3NmE3NjBkOWY3 YjRiMjA3N2E5ZGQwNWFhOWMzOTI3Y2FkYjIyMDkiCi0gIGludGVncml0eSBzaGE1MTItcFVRcEZC RTlKdkM5bHJRYnBYMFRtZU5JeTVzN0duWmpuYTJsaGhjSEM3RHpnQnM2ZlduNzIyWTVjZndncnRy cWM3TkFKd012T2EwbUtocTZYYUU0amc9PQotICBkZXBlbmRlbmNpZXM6Ci0gICAgIkBiYWJlbC9o ZWxwZXItYW5ub3RhdGUtYXMtcHVyZSIgIl43LjEyLjEzIgotICAgICJAYmFiZWwvaGVscGVyLXdy YXAtZnVuY3Rpb24iICJeNy4xMy4wIgotICAgICJAYmFiZWwvdHlwZXMiICJeNy4xMy4wIgotCiAi QGJhYmVsL2hlbHBlci1yZW1hcC1hc3luYy10by1nZW5lcmF0b3JAXjcuMTYuOCI6CiAgIHZlcnNp b24gIjcuMTYuOCIKICAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vQGJh YmVsL2hlbHBlci1yZW1hcC1hc3luYy10by1nZW5lcmF0b3IvLS9oZWxwZXItcmVtYXAtYXN5bmMt dG8tZ2VuZXJhdG9yLTcuMTYuOC50Z3ojMjlmZmFhZGU2OGEzNjdlMmVkMDljOTA5MDE5ODY5MThk MjVlNTdlMyIKQEAgLTQxMCwxNyArNDI0LDcgQEAKICAgICAiQGJhYmVsL2hlbHBlci13cmFwLWZ1 bmN0aW9uIiAiXjcuMTYuOCIKICAgICAiQGJhYmVsL3R5cGVzIiAiXjcuMTYuOCIKIAotIkBiYWJl bC9oZWxwZXItcmVwbGFjZS1zdXBlcnNAXjcuMTIuMTMiLCAiQGJhYmVsL2hlbHBlci1yZXBsYWNl LXN1cGVyc0BeNy4xMy4wIiwgIkBiYWJlbC9oZWxwZXItcmVwbGFjZS1zdXBlcnNAXjcuMTQuNSI6 Ci0gIHZlcnNpb24gIjcuMTQuNSIKLSAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBr Zy5jb20vQGJhYmVsL2hlbHBlci1yZXBsYWNlLXN1cGVycy8tL2hlbHBlci1yZXBsYWNlLXN1cGVy cy03LjE0LjUudGd6IzBlY2MwYjAzYzQxY2Q1NjdiNDAyNGVhMDE2MTM0YzI4NDE0YWJiOTQiCi0g IGludGVncml0eSBzaGE1MTItM2kxUWU5Lzh4L2hDSElOdWpuK2l1SHkrbU1STG9jNzdiMm5JOVRC MHpqSDFodm45cUdsWGpXbGdnZHdVY2p1MzZQa1BDeS9scE03TExVZGNUeUg0T3c9PQotICBkZXBl bmRlbmNpZXM6Ci0gICAgIkBiYWJlbC9oZWxwZXItbWVtYmVyLWV4cHJlc3Npb24tdG8tZnVuY3Rp b25zIiAiXjcuMTQuNSIKLSAgICAiQGJhYmVsL2hlbHBlci1vcHRpbWlzZS1jYWxsLWV4cHJlc3Np b24iICJeNy4xNC41IgotICAgICJAYmFiZWwvdHJhdmVyc2UiICJeNy4xNC41IgotICAgICJAYmFi ZWwvdHlwZXMiICJeNy4xNC41IgotCi0iQGJhYmVsL2hlbHBlci1yZXBsYWNlLXN1cGVyc0BeNy4x Ni43IjoKKyJAYmFiZWwvaGVscGVyLXJlcGxhY2Utc3VwZXJzQF43LjEzLjAiLCAiQGJhYmVsL2hl bHBlci1yZXBsYWNlLXN1cGVyc0BeNy4xNi43IjoKICAgdmVyc2lvbiAiNy4xNi43IgogICByZXNv bHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9AYmFiZWwvaGVscGVyLXJlcGxhY2Ut c3VwZXJzLy0vaGVscGVyLXJlcGxhY2Utc3VwZXJzLTcuMTYuNy50Z3ojZTlmNWY1ZjMyYWM5MDQy OWMxYTRiZGVjMGYyMzFlZjBjMjgzOGFiMSIKICAgaW50ZWdyaXR5IHNoYTUxMi15OXZzV2lsVE5h Vm5WaDZ4aUpmQUJ6c05wZ0RQS2V2OUhuQWd6NkdiMXA2VVV3ZjlOZXBkbHNWN1ZYR0NmdEpNK2px RDVmN0pJRXViY3BMalpqNWRCdz09CkBAIC00MzEsMjcgKzQzNSwyMyBAQAogICAgICJAYmFiZWwv dHJhdmVyc2UiICJeNy4xNi43IgogICAgICJAYmFiZWwvdHlwZXMiICJeNy4xNi43IgogCi0iQGJh YmVsL2hlbHBlci1zaW1wbGUtYWNjZXNzQF43LjEyLjEzIjoKLSAgdmVyc2lvbiAiNy4xMy4xMiIK LSAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vQGJhYmVsL2hlbHBlci1z aW1wbGUtYWNjZXNzLy0vaGVscGVyLXNpbXBsZS1hY2Nlc3MtNy4xMy4xMi50Z3ojZGQ2YzUzOGFm YjYxODE5ZDIwNWEwMTJjMzE3OTJhMzljN2E1ZWFmNiIKLSAgaW50ZWdyaXR5IHNoYTUxMi03RkVq YnJ4NVNMOWNXdlhpb0RibmxZVHBwY1pHdUNZNm93My9ENXZNZ2diMll3Z3U0ZE1ycFRKWDBKZFFB SWNSUlVFbE9JeEYzeUVvb2E5Z1ViOVpiQT09CisiQGJhYmVsL2hlbHBlci1yZXBsYWNlLXN1cGVy c0BeNy4xNi4wIjoKKyAgdmVyc2lvbiAiNy4xNi4wIgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdp c3RyeS55YXJucGtnLmNvbS9AYmFiZWwvaGVscGVyLXJlcGxhY2Utc3VwZXJzLy0vaGVscGVyLXJl cGxhY2Utc3VwZXJzLTcuMTYuMC50Z3ojNzMwNTVlOGQzY2Y5YmNiYThkZGI1NWNhZDkzZmVkYzg2 MGY2OGYxNyIKKyAgaW50ZWdyaXR5IHNoYTUxMi1UUXh1UWZTQ2RvaGE3Y3BSTkp2ZmFZeHh4em1i eFh3Lys2Y1M3VjAyZWVEWXloeGRlclNvTVZBTHZ3dXBBNTQvcFpjT1R0VmVKMHhjY3AxbkdXbGFk QT09CiAgIGRlcGVuZGVuY2llczoKLSAgICAiQGJhYmVsL3R5cGVzIiAiXjcuMTMuMTIiCisgICAg IkBiYWJlbC9oZWxwZXItbWVtYmVyLWV4cHJlc3Npb24tdG8tZnVuY3Rpb25zIiAiXjcuMTYuMCIK KyAgICAiQGJhYmVsL2hlbHBlci1vcHRpbWlzZS1jYWxsLWV4cHJlc3Npb24iICJeNy4xNi4wIgor ICAgICJAYmFiZWwvdHJhdmVyc2UiICJeNy4xNi4wIgorICAgICJAYmFiZWwvdHlwZXMiICJeNy4x Ni4wIgogCi0iQGJhYmVsL2hlbHBlci1zaW1wbGUtYWNjZXNzQF43LjE2LjciOgorIkBiYWJlbC9o ZWxwZXItc2ltcGxlLWFjY2Vzc0BeNy4xMi4xMyIsICJAYmFiZWwvaGVscGVyLXNpbXBsZS1hY2Nl c3NAXjcuMTYuNyI6CiAgIHZlcnNpb24gIjcuMTYuNyIKICAgcmVzb2x2ZWQgImh0dHBzOi8vcmVn aXN0cnkueWFybnBrZy5jb20vQGJhYmVsL2hlbHBlci1zaW1wbGUtYWNjZXNzLy0vaGVscGVyLXNp bXBsZS1hY2Nlc3MtNy4xNi43LnRneiNkNjU2NjU0YjllYTA4ZGJiOTY1OWI2OWQ2MTA2M2NjZDM0 M2ZmMGY3IgogICBpbnRlZ3JpdHkgc2hhNTEyLVpJekhWeW9lTE12WE1OL3Zvay9hNExXUnk4RzJ2 MjA1bU5QMFhPdWY5WFJMeVg1L3U5Q25WdWxVdERnVVRhbWEzbFQrYmYvVXF1Y3VaanFpR3VUUzFn PT0KICAgZGVwZW5kZW5jaWVzOgogICAgICJAYmFiZWwvdHlwZXMiICJeNy4xNi43IgogCi0iQGJh YmVsL2hlbHBlci1za2lwLXRyYW5zcGFyZW50LWV4cHJlc3Npb24td3JhcHBlcnNAXjcuMTIuMSI6 Ci0gIHZlcnNpb24gIjcuMTIuMSIKLSAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBr Zy5jb20vQGJhYmVsL2hlbHBlci1za2lwLXRyYW5zcGFyZW50LWV4cHJlc3Npb24td3JhcHBlcnMv LS9oZWxwZXItc2tpcC10cmFuc3BhcmVudC1leHByZXNzaW9uLXdyYXBwZXJzLTcuMTIuMS50Z3oj NDYyZGM2M2E3ZTQzNWFkZTg0NjgzODVjNjNkMmI4NGNjZTRiM2NiZiIKLSAgaW50ZWdyaXR5IHNo YTUxMi1NZjVBVXVoRzEvT0NDaE9KL0hjQURtdmNITTQyV0pvY2tvbWJuOEFUSkczT255aVN4Qksv TW01eDc4QlFXdm10WFpLSGdiamRHTDJraW4vSE9MbFpHQT09Ci0gIGRlcGVuZGVuY2llczoKLSAg ICAiQGJhYmVsL3R5cGVzIiAiXjcuMTIuMSIKLQogIkBiYWJlbC9oZWxwZXItc2tpcC10cmFuc3Bh cmVudC1leHByZXNzaW9uLXdyYXBwZXJzQF43LjE2LjAiOgogICB2ZXJzaW9uICI3LjE2LjAiCiAg IHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL0BiYWJlbC9oZWxwZXItc2tp cC10cmFuc3BhcmVudC1leHByZXNzaW9uLXdyYXBwZXJzLy0vaGVscGVyLXNraXAtdHJhbnNwYXJl bnQtZXhwcmVzc2lvbi13cmFwcGVycy03LjE2LjAudGd6IzBlZTMzODgwNzAxNDdjM2FlMDUxZTQ4 N2VjYTNlYmIwZTJlOGJiMDkiCkBAIC00NTksNDkgKzQ1OSw0NiBAQAogICBkZXBlbmRlbmNpZXM6 CiAgICAgIkBiYWJlbC90eXBlcyIgIl43LjE2LjAiCiAKLSJAYmFiZWwvaGVscGVyLXNwbGl0LWV4 cG9ydC1kZWNsYXJhdGlvbkBeNy4xMi4xMyIsICJAYmFiZWwvaGVscGVyLXNwbGl0LWV4cG9ydC1k ZWNsYXJhdGlvbkBeNy4xNC41IjoKKyJAYmFiZWwvaGVscGVyLXNwbGl0LWV4cG9ydC1kZWNsYXJh dGlvbkBeNy4xMi4xMyIsICJAYmFiZWwvaGVscGVyLXNwbGl0LWV4cG9ydC1kZWNsYXJhdGlvbkBe Ny4xNi43IjoKKyAgdmVyc2lvbiAiNy4xNi43IgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3Ry eS55YXJucGtnLmNvbS9AYmFiZWwvaGVscGVyLXNwbGl0LWV4cG9ydC1kZWNsYXJhdGlvbi8tL2hl bHBlci1zcGxpdC1leHBvcnQtZGVjbGFyYXRpb24tNy4xNi43LnRneiMwYjY0OGMwYzQyZGE5ZDM5 MjBkODVhZDU4NWYyNzc4NjIwYjg3MjZiIgorICBpbnRlZ3JpdHkgc2hhNTEyLXhiV295L1BGb3hT V2F6SVRvVDlTaWYrakpUbHJNY25kSXNhT0t2VEE2dTdRRW83aWxrUlpwamV3MTgvVzNjN25tOGZY ZFVEWGgwMlZYVGJaMHBHRE53PT0KKyAgZGVwZW5kZW5jaWVzOgorICAgICJAYmFiZWwvdHlwZXMi ICJeNy4xNi43IgorCisiQGJhYmVsL2hlbHBlci1zcGxpdC1leHBvcnQtZGVjbGFyYXRpb25AXjcu MTQuNSI6CiAgIHZlcnNpb24gIjcuMTQuNSIKICAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnku eWFybnBrZy5jb20vQGJhYmVsL2hlbHBlci1zcGxpdC1leHBvcnQtZGVjbGFyYXRpb24vLS9oZWxw ZXItc3BsaXQtZXhwb3J0LWRlY2xhcmF0aW9uLTcuMTQuNS50Z3ojMjJiMjNhNTRlZjUxYzJiNzYw NWQ4NTE5MzBjMTk3NmRkMGJjNjkzYSIKICAgaW50ZWdyaXR5IHNoYTUxMi1ocHJ4VlB1NmU1S2Rw MnB1WlVtdk9HamFMdjlUQ2U1OEUvRmw2aFJxNFlpVlF4SWNOdnVxNnVUTTJyMW1UL29Qc2t1UzlD Z1IrSTk0c3FBWXYwTkdLQT09CiAgIGRlcGVuZGVuY2llczoKICAgICAiQGJhYmVsL3R5cGVzIiAi XjcuMTQuNSIKIAotIkBiYWJlbC9oZWxwZXItc3BsaXQtZXhwb3J0LWRlY2xhcmF0aW9uQF43LjE2 LjciOgotICB2ZXJzaW9uICI3LjE2LjciCi0gIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlh cm5wa2cuY29tL0BiYWJlbC9oZWxwZXItc3BsaXQtZXhwb3J0LWRlY2xhcmF0aW9uLy0vaGVscGVy LXNwbGl0LWV4cG9ydC1kZWNsYXJhdGlvbi03LjE2LjcudGd6IzBiNjQ4YzBjNDJkYTlkMzkyMGQ4 NWFkNTg1ZjI3Nzg2MjBiODcyNmIiCi0gIGludGVncml0eSBzaGE1MTIteGJXb3kvUEZveFNXYXpJ VG9UOVNpZitqSlRsck1jbmRJc2FPS3ZUQTZ1N1FFbzdpbGtSWnBqZXcxOC9XM2M3bm04ZlhkVURY aDAyVlhUYlowcEdETnc9PQorIkBiYWJlbC9oZWxwZXItc3BsaXQtZXhwb3J0LWRlY2xhcmF0aW9u QF43LjE2LjAiOgorICB2ZXJzaW9uICI3LjE2LjAiCisgIHJlc29sdmVkICJodHRwczovL3JlZ2lz dHJ5Lnlhcm5wa2cuY29tL0BiYWJlbC9oZWxwZXItc3BsaXQtZXhwb3J0LWRlY2xhcmF0aW9uLy0v aGVscGVyLXNwbGl0LWV4cG9ydC1kZWNsYXJhdGlvbi03LjE2LjAudGd6IzI5NjcyZjQzNjYzZTkz NmRmMzcwYWFlYjIyYmVkZGIzYmFlYzc0MzgiCisgIGludGVncml0eSBzaGE1MTItMFlNTVJwdURG TkdUSE5SaWlxSlgxOUdqTlhBNEgwRThqWjJpYmNjZlN4YUNvZ2JtM2FtNVdOLzJuUU5qMFluUXdH V00xSjA2R09jUTJxbmgzKzBwYXc9PQogICBkZXBlbmRlbmNpZXM6Ci0gICAgIkBiYWJlbC90eXBl cyIgIl43LjE2LjciCi0KLSJAYmFiZWwvaGVscGVyLXZhbGlkYXRvci1pZGVudGlmaWVyQF43LjEy LjExIiwgIkBiYWJlbC9oZWxwZXItdmFsaWRhdG9yLWlkZW50aWZpZXJAXjcuMTQuNSIsICJAYmFi ZWwvaGVscGVyLXZhbGlkYXRvci1pZGVudGlmaWVyQF43LjE0LjkiOgotICB2ZXJzaW9uICI3LjE0 LjkiCi0gIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL0BiYWJlbC9oZWxw ZXItdmFsaWRhdG9yLWlkZW50aWZpZXIvLS9oZWxwZXItdmFsaWRhdG9yLWlkZW50aWZpZXItNy4x NC45LnRneiM2NjU0ZDE3MWIyMDI0ZjZkOGVlMTUxYmYyNTA5Njk5OTE5MTMxZDQ4IgotICBpbnRl Z3JpdHkgc2hhNTEyLXBRWXhQWTBVUDZJSElTUml0TmU4YnNpakhleDRUV1pYaTJId0tWc2pQaWx0 emxoc2Uyem5WY205QWNlNTEwVlQxa3hJSGpHSkNaWlFCWDJnSkRibzBnPT0KKyAgICAiQGJhYmVs L3R5cGVzIiAiXjcuMTYuMCIKIAotIkBiYWJlbC9oZWxwZXItdmFsaWRhdG9yLWlkZW50aWZpZXJA XjcuMTYuNyI6CisiQGJhYmVsL2hlbHBlci12YWxpZGF0b3ItaWRlbnRpZmllckBeNy4xMi4xMSIs ICJAYmFiZWwvaGVscGVyLXZhbGlkYXRvci1pZGVudGlmaWVyQF43LjE0LjUiLCAiQGJhYmVsL2hl bHBlci12YWxpZGF0b3ItaWRlbnRpZmllckBeNy4xNC45IiwgIkBiYWJlbC9oZWxwZXItdmFsaWRh dG9yLWlkZW50aWZpZXJAXjcuMTYuNyI6CiAgIHZlcnNpb24gIjcuMTYuNyIKICAgcmVzb2x2ZWQg Imh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vQGJhYmVsL2hlbHBlci12YWxpZGF0b3ItaWRl bnRpZmllci8tL2hlbHBlci12YWxpZGF0b3ItaWRlbnRpZmllci03LjE2LjcudGd6I2U4YzYwMjQz OGM0YTgxOTU3NTEyNDNkYTkwMzFkMTYwN2QyNDdjYWQiCiAgIGludGVncml0eSBzaGE1MTItaHNF bkZlbWVpVzREMDhBNWdVQVp4TEJUWHBaMzlQK2ErREdEc0h3MXl4cXlRL2p6RkVueGY1dVRFR3Ar M2J6QWJOT3hVMXBhVGdZUzRFQ1UvSWdmRHc9PQogCi0iQGJhYmVsL2hlbHBlci12YWxpZGF0b3It b3B0aW9uQF43LjEyLjE3IiwgIkBiYWJlbC9oZWxwZXItdmFsaWRhdG9yLW9wdGlvbkBeNy4xNC41 IjoKLSAgdmVyc2lvbiAiNy4xNC41IgotICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJu cGtnLmNvbS9AYmFiZWwvaGVscGVyLXZhbGlkYXRvci1vcHRpb24vLS9oZWxwZXItdmFsaWRhdG9y LW9wdGlvbi03LjE0LjUudGd6IzZlNzJhMWZmZjE4ZDVkZmNiODc4ZTFlNjJmMWEwMjFjNGI3MmQ1 YTMiCi0gIGludGVncml0eSBzaGE1MTItT1g4RDVlZVg0WHdjcm9WVzQ1Tk12b1lhSXVGSStHUXBB MmE4R2krWC9VL2NEVUlSc1YzN3FRZkY5MDVGMGh0VFJDUkVRSUI0S3FQZWF2ZVJKVWwzT3c9PQor IkBiYWJlbC9oZWxwZXItdmFsaWRhdG9yLWlkZW50aWZpZXJAXjcuMTUuNyI6CisgIHZlcnNpb24g IjcuMTUuNyIKKyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vQGJhYmVs L2hlbHBlci12YWxpZGF0b3ItaWRlbnRpZmllci8tL2hlbHBlci12YWxpZGF0b3ItaWRlbnRpZmll ci03LjE1LjcudGd6IzIyMGRmOTkzYmZlOTA0YTRhNmIwMmFiNGYzMzg1YTVlYmY2ZTIzODkiCisg IGludGVncml0eSBzaGE1MTItSzRKdkN0UXFhZDlPWTIreVRVOHcrRTgyeXdrL2ZlK0VMTmx0MUc4 ejNiVkdsWmZuL2hPY1FRc1VoR2hXL04rdGIzZnhLODAwd0x0S09FL2FNMG03Mnc9PQogCi0iQGJh YmVsL2hlbHBlci12YWxpZGF0b3Itb3B0aW9uQF43LjE2LjciOgorIkBiYWJlbC9oZWxwZXItdmFs aWRhdG9yLW9wdGlvbkBeNy4xMi4xNyIsICJAYmFiZWwvaGVscGVyLXZhbGlkYXRvci1vcHRpb25A XjcuMTYuNyI6CiAgIHZlcnNpb24gIjcuMTYuNyIKICAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0 cnkueWFybnBrZy5jb20vQGJhYmVsL2hlbHBlci12YWxpZGF0b3Itb3B0aW9uLy0vaGVscGVyLXZh bGlkYXRvci1vcHRpb24tNy4xNi43LnRneiNiMjAzY2U2MmNlNWZlMTUzODk5YjYxN2MwODk1N2Rl ODYwZGU0ZDIzIgogICBpbnRlZ3JpdHkgc2hhNTEyLVRSdGVuT3VSVVZvOW9JUUdQQzVHOURnSzQ3 NDNjZHh2dE93MHdlUU5wWlhhUzE2U0NCaTVNTmpaRjh2YmEzRVRVUmpacFRiVm43VnZjZjJlQXdG b3pRPT0KIAotIkBiYWJlbC9oZWxwZXItd3JhcC1mdW5jdGlvbkBeNy4xMy4wIjoKLSAgdmVyc2lv biAiNy4xMy4wIgotICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9AYmFi ZWwvaGVscGVyLXdyYXAtZnVuY3Rpb24vLS9oZWxwZXItd3JhcC1mdW5jdGlvbi03LjEzLjAudGd6 I2JkYjVjNjZmZGE4NTI2ZWMyMzVhYjg5NGFkNTNhMTIzNWM3OWZjYzQiCi0gIGludGVncml0eSBz aGE1MTItMVVYOUY3SzNCUzQyZkk2cWQyQTRCakt6Z0dqVG9zY3laVGRwMURqa25ITENJdnBnbmU2 OTE4aW8rYUw1TFhGY0VSLzhRV2l3cG9ZOTAycFZFcWdUWEE9PQotICBkZXBlbmRlbmNpZXM6Ci0g ICAgIkBiYWJlbC9oZWxwZXItZnVuY3Rpb24tbmFtZSIgIl43LjEyLjEzIgotICAgICJAYmFiZWwv dGVtcGxhdGUiICJeNy4xMi4xMyIKLSAgICAiQGJhYmVsL3RyYXZlcnNlIiAiXjcuMTMuMCIKLSAg ICAiQGJhYmVsL3R5cGVzIiAiXjcuMTMuMCIKKyJAYmFiZWwvaGVscGVyLXZhbGlkYXRvci1vcHRp b25AXjcuMTQuNSI6CisgIHZlcnNpb24gIjcuMTQuNSIKKyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVn aXN0cnkueWFybnBrZy5jb20vQGJhYmVsL2hlbHBlci12YWxpZGF0b3Itb3B0aW9uLy0vaGVscGVy LXZhbGlkYXRvci1vcHRpb24tNy4xNC41LnRneiM2ZTcyYTFmZmYxOGQ1ZGZjYjg3OGUxZTYyZjFh MDIxYzRiNzJkNWEzIgorICBpbnRlZ3JpdHkgc2hhNTEyLU9YOEQ1ZWVYNFh3Y3JvVlc0NU5Ndm9Z YUl1RkkrR1FwQTJhOEdpK1gvVS9jRFVJUnNWMzdxUWZGOTA1RjBodFRSQ1JFUUlCNEtxUGVhdmVS SlVsM093PT0KIAogIkBiYWJlbC9oZWxwZXItd3JhcC1mdW5jdGlvbkBeNy4xNi44IjoKICAgdmVy c2lvbiAiNy4xNi44IgpAQCAtNTQwLDYgKzUzNywxNSBAQAogICAgIGNoYWxrICJeMi4wLjAiCiAg ICAganMtdG9rZW5zICJeNC4wLjAiCiAKKyJAYmFiZWwvaGlnaGxpZ2h0QF43LjE2LjAiOgorICB2 ZXJzaW9uICI3LjE2LjAiCisgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29t L0BiYWJlbC9oaWdobGlnaHQvLS9oaWdobGlnaHQtNy4xNi4wLnRneiM2Y2ViMzJiMmNhNGI4ZjVm MzYxZmI3ZmQ4MjFlM2ZkZGY0YTE3MjVhIgorICBpbnRlZ3JpdHkgc2hhNTEyLXQ4TUg0MWtVUXls QnR1Mis0SVFBM2F0cWV2QTJsUmdxQTJ3eVZCL1lpV21zRFN1eWxaWnVYT1V5OXJpYzMwaGZ6YXVF RmZkc3VrL2VYVFJyR3JmZDBnPT0KKyAgZGVwZW5kZW5jaWVzOgorICAgICJAYmFiZWwvaGVscGVy LXZhbGlkYXRvci1pZGVudGlmaWVyIiAiXjcuMTUuNyIKKyAgICBjaGFsayAiXjIuMC4wIgorICAg IGpzLXRva2VucyAiXjQuMC4wIgorCiAiQGJhYmVsL2hpZ2hsaWdodEBeNy4xNi43IjoKICAgdmVy c2lvbiAiNy4xNi4xMCIKICAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20v QGJhYmVsL2hpZ2hsaWdodC8tL2hpZ2hsaWdodC03LjE2LjEwLnRneiM3NDRmMmViODE1NzlkNmVl YTc1M2MyMjdiMGY1NzBhZDc4NWFiYTg4IgpAQCAtNTU0LDYgKzU2MCwxMSBAQAogICByZXNvbHZl ZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9AYmFiZWwvcGFyc2VyLy0vcGFyc2VyLTcu MTQuNy50Z3ojNjA5OTcyMGM4ODM5Y2E4NjVhMjYzN2U2Yzg1ODUyZWFkMGJkYjU5NSIKICAgaW50 ZWdyaXR5IHNoYTUxMi1YNjdaNXkrVkJKdUhCL1Jqd0VDcDhrU2w1dVlpMEJ2UmJOZVdxa2FKQ1Zo K0xpVFBsMTlXQlVmRzYyN3BzU2dwOXJTZjZvanVYZ2hRTTNoYTZxSEhkQT09CiAKKyJAYmFiZWwv cGFyc2VyQF43LjE2LjAiOgorICB2ZXJzaW9uICI3LjE2LjIiCisgIHJlc29sdmVkICJodHRwczov L3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL0BiYWJlbC9wYXJzZXIvLS9wYXJzZXItNy4xNi4yLnRneiMz NzIzY2Q1YzhkODc3M2VlZjk2Y2U1N2VhMWQ5YjdmYWFjY2QxMmFjIgorICBpbnRlZ3JpdHkgc2hh NTEyLVJVVnBUMEcyaDZyT1p3cUxEVHJLazdrc052N1lwQWlsVG5ZZTEvUStlRGp4RWNlUk1LVldi Q3NYN3Q4aDZDMXFDRmkvMVk4V1pqY0VQQkFGRzI3R1B3PT0KKwogIkBiYWJlbC9wYXJzZXJAXjcu MTYuNyIsICJAYmFiZWwvcGFyc2VyQF43LjE3LjAiOgogICB2ZXJzaW9uICI3LjE3LjAiCiAgIHJl c29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL0BiYWJlbC9wYXJzZXIvLS9wYXJz ZXItNy4xNy4wLnRneiNmMGFjMzNlZGRiZTIxNGU0MTA1MzYzYmIxN2MzMzQxYzVmZmNjNDNjIgpA QCAtNTc1LDE2ICs1ODYsNyBAQAogICAgICJAYmFiZWwvaGVscGVyLXNraXAtdHJhbnNwYXJlbnQt ZXhwcmVzc2lvbi13cmFwcGVycyIgIl43LjE2LjAiCiAgICAgIkBiYWJlbC9wbHVnaW4tcHJvcG9z YWwtb3B0aW9uYWwtY2hhaW5pbmciICJeNy4xNi43IgogCi0iQGJhYmVsL3BsdWdpbi1wcm9wb3Nh bC1hc3luYy1nZW5lcmF0b3ItZnVuY3Rpb25zQF43LjEzLjgiOgotICB2ZXJzaW9uICI3LjEzLjgi Ci0gIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL0BiYWJlbC9wbHVnaW4t cHJvcG9zYWwtYXN5bmMtZ2VuZXJhdG9yLWZ1bmN0aW9ucy8tL3BsdWdpbi1wcm9wb3NhbC1hc3lu Yy1nZW5lcmF0b3ItZnVuY3Rpb25zLTcuMTMuOC50Z3ojODdhYWNiNTc0YjNiYzRiNTYwM2Y2ZmU0 MTQ1OGQ3MmE1YTJlYzRiMSIKLSAgaW50ZWdyaXR5IHNoYTUxMi1yUEJuaGorV2dvU21ncSs0Z1FV dFh4L3ZPY1UrVVl0ankxQUEvYWVENjFId2o0MTBmd1l5cWZVY1JQM2xSOHVjZ2xpVkpML0c3c1hj TlVlY0M3NUlYQT09Ci0gIGRlcGVuZGVuY2llczoKLSAgICAiQGJhYmVsL2hlbHBlci1wbHVnaW4t dXRpbHMiICJeNy4xMy4wIgotICAgICJAYmFiZWwvaGVscGVyLXJlbWFwLWFzeW5jLXRvLWdlbmVy YXRvciIgIl43LjEzLjAiCi0gICAgIkBiYWJlbC9wbHVnaW4tc3ludGF4LWFzeW5jLWdlbmVyYXRv cnMiICJeNy44LjQiCi0KLSJAYmFiZWwvcGx1Z2luLXByb3Bvc2FsLWFzeW5jLWdlbmVyYXRvci1m dW5jdGlvbnNAXjcuMTYuOCI6CisiQGJhYmVsL3BsdWdpbi1wcm9wb3NhbC1hc3luYy1nZW5lcmF0 b3ItZnVuY3Rpb25zQF43LjEzLjgiLCAiQGJhYmVsL3BsdWdpbi1wcm9wb3NhbC1hc3luYy1nZW5l cmF0b3ItZnVuY3Rpb25zQF43LjE2LjgiOgogICB2ZXJzaW9uICI3LjE2LjgiCiAgIHJlc29sdmVk ICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL0BiYWJlbC9wbHVnaW4tcHJvcG9zYWwtYXN5 bmMtZ2VuZXJhdG9yLWZ1bmN0aW9ucy8tL3BsdWdpbi1wcm9wb3NhbC1hc3luYy1nZW5lcmF0b3It ZnVuY3Rpb25zLTcuMTYuOC50Z3ojM2JkZDFlYmJlNjIwODA0ZWE5NDE2NzA2Y2Q2N2Q2MDc4NzUw NGJjOCIKICAgaW50ZWdyaXR5IHNoYTUxMi03MVlISXZNdWl1cVdKUWtlYldKdGRoUVRmZDRRNG1G NzZxMklYMzd1WlBrRzkrb2xCeHNYK3JIMXZraEZ0bzRVZUpaOWRQWTJzK21EdmhEbTF1MkJHUT09 CkBAIC01OTMsNyArNTk1LDcgQEAKICAgICAiQGJhYmVsL2hlbHBlci1yZW1hcC1hc3luYy10by1n ZW5lcmF0b3IiICJeNy4xNi44IgogICAgICJAYmFiZWwvcGx1Z2luLXN5bnRheC1hc3luYy1nZW5l cmF0b3JzIiAiXjcuOC40IgogCi0iQGJhYmVsL3BsdWdpbi1wcm9wb3NhbC1jbGFzcy1wcm9wZXJ0 aWVzQF43LjEwLjQiLCAiQGJhYmVsL3BsdWdpbi1wcm9wb3NhbC1jbGFzcy1wcm9wZXJ0aWVzQF43 LjEzLjAiOgorIkBiYWJlbC9wbHVnaW4tcHJvcG9zYWwtY2xhc3MtcHJvcGVydGllc0BeNy4xMC40 IjoKICAgdmVyc2lvbiAiNy4xMy4wIgogICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJu cGtnLmNvbS9AYmFiZWwvcGx1Z2luLXByb3Bvc2FsLWNsYXNzLXByb3BlcnRpZXMvLS9wbHVnaW4t cHJvcG9zYWwtY2xhc3MtcHJvcGVydGllcy03LjEzLjAudGd6IzE0NjM3NjAwMGI5NGVmZDAwMWU1 N2E0MGE4OGE1MjVhZmFhYjlmMzciCiAgIGludGVncml0eSBzaGE1MTItS25URGpGTkMxZys0NWth MG15Wk52U0JGTGhOQ0xOK0dlR1lMREVBOE9xN01aNnlNZ2ZMb0lSaDg2R1JUMEZqdEpoWnc4SnlV c2tQOXV2ajVwSE05Wmc9PQpAQCAtNjAxLDcgKzYwMyw3IEBACiAgICAgIkBiYWJlbC9oZWxwZXIt Y3JlYXRlLWNsYXNzLWZlYXR1cmVzLXBsdWdpbiIgIl43LjEzLjAiCiAgICAgIkBiYWJlbC9oZWxw ZXItcGx1Z2luLXV0aWxzIiAiXjcuMTMuMCIKIAotIkBiYWJlbC9wbHVnaW4tcHJvcG9zYWwtY2xh c3MtcHJvcGVydGllc0BeNy4xNi43IjoKKyJAYmFiZWwvcGx1Z2luLXByb3Bvc2FsLWNsYXNzLXBy b3BlcnRpZXNAXjcuMTMuMCIsICJAYmFiZWwvcGx1Z2luLXByb3Bvc2FsLWNsYXNzLXByb3BlcnRp ZXNAXjcuMTYuNyI6CiAgIHZlcnNpb24gIjcuMTYuNyIKICAgcmVzb2x2ZWQgImh0dHBzOi8vcmVn aXN0cnkueWFybnBrZy5jb20vQGJhYmVsL3BsdWdpbi1wcm9wb3NhbC1jbGFzcy1wcm9wZXJ0aWVz Ly0vcGx1Z2luLXByb3Bvc2FsLWNsYXNzLXByb3BlcnRpZXMtNy4xNi43LnRneiM5MjVjYWQ3YjNi MWEyZmNlYTdlNTllY2M4ZWI1OTU0Zjk2MWY5MWIwIgogICBpbnRlZ3JpdHkgc2hhNTEyLUlvYlUw WG1lMzFld2pZT1NoU0lxZC9aR00vci9jdU96MnowTURiTnJoRjVGVytaVmdpMGYybHllb2o5S0ZQ RE9BcXNZeG1MV1p0ZTFXT3dsdlk5YXd3PT0KQEAgLTYxOCwxNSArNjIwLDcgQEAKICAgICAiQGJh YmVsL2hlbHBlci1wbHVnaW4tdXRpbHMiICJeNy4xNi43IgogICAgICJAYmFiZWwvcGx1Z2luLXN5 bnRheC1jbGFzcy1zdGF0aWMtYmxvY2siICJeNy4xNC41IgogCi0iQGJhYmVsL3BsdWdpbi1wcm9w b3NhbC1keW5hbWljLWltcG9ydEBeNy4xMy44IjoKLSAgdmVyc2lvbiAiNy4xMy44IgotICByZXNv bHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9AYmFiZWwvcGx1Z2luLXByb3Bvc2Fs LWR5bmFtaWMtaW1wb3J0Ly0vcGx1Z2luLXByb3Bvc2FsLWR5bmFtaWMtaW1wb3J0LTcuMTMuOC50 Z3ojODc2YTFmNjk2NmUxZGVjMzMyZThjOTQ1MWFmZGEzYmViY2RmMmUxZCIKLSAgaW50ZWdyaXR5 IHNoYTUxMi1PTldLajBINit3SVJDa1ppOXpTYlp0RS9yNzN1T2hNVkhoMjU2eXMwVXpmTTdJM2Q0 bitzcFpOV2pPbkp2Mmd6b3B1bVAyV3hpMTg2dkk4TjBZMkp5UT09Ci0gIGRlcGVuZGVuY2llczoK LSAgICAiQGJhYmVsL2hlbHBlci1wbHVnaW4tdXRpbHMiICJeNy4xMy4wIgotICAgICJAYmFiZWwv cGx1Z2luLXN5bnRheC1keW5hbWljLWltcG9ydCIgIl43LjguMyIKLQotIkBiYWJlbC9wbHVnaW4t cHJvcG9zYWwtZHluYW1pYy1pbXBvcnRAXjcuMTYuNyI6CisiQGJhYmVsL3BsdWdpbi1wcm9wb3Nh bC1keW5hbWljLWltcG9ydEBeNy4xMy44IiwgIkBiYWJlbC9wbHVnaW4tcHJvcG9zYWwtZHluYW1p Yy1pbXBvcnRAXjcuMTYuNyI6CiAgIHZlcnNpb24gIjcuMTYuNyIKICAgcmVzb2x2ZWQgImh0dHBz Oi8vcmVnaXN0cnkueWFybnBrZy5jb20vQGJhYmVsL3BsdWdpbi1wcm9wb3NhbC1keW5hbWljLWlt cG9ydC8tL3BsdWdpbi1wcm9wb3NhbC1keW5hbWljLWltcG9ydC03LjE2LjcudGd6I2MxOWM4OTdl YWE0NmIyNzYzNGEwMGZlZTlmYjdkODI5MTU4NzA0YjIiCiAgIGludGVncml0eSBzaGE1MTItSThT VzlIbzMvOERSU2RtRGRIM2dPUmR5VXVZbmsxbTRjTXhVQWR1NW95NG4zT2ZOOGZsREVIK2Q2MGlH N2RVZmkwS2tZd1N2b2FsSHp6ZFJ6cFdIVGc9PQpAQCAtNjM0LDE1ICs2MjgsNyBAQAogICAgICJA YmFiZWwvaGVscGVyLXBsdWdpbi11dGlscyIgIl43LjE2LjciCiAgICAgIkBiYWJlbC9wbHVnaW4t c3ludGF4LWR5bmFtaWMtaW1wb3J0IiAiXjcuOC4zIgogCi0iQGJhYmVsL3BsdWdpbi1wcm9wb3Nh bC1leHBvcnQtbmFtZXNwYWNlLWZyb21AXjcuMTIuMTMiOgotICB2ZXJzaW9uICI3LjE0LjIiCi0g IHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL0BiYWJlbC9wbHVnaW4tcHJv cG9zYWwtZXhwb3J0LW5hbWVzcGFjZS1mcm9tLy0vcGx1Z2luLXByb3Bvc2FsLWV4cG9ydC1uYW1l c3BhY2UtZnJvbS03LjE0LjIudGd6IzYyNTQyZjk0YWE5Y2U4ZjZkYmE3OWVlYzY5OGFmMjIxMTIy NTM3OTEiCi0gIGludGVncml0eSBzaGE1MTItc1J4VzN6M1pwM3BGZkxBZ1ZFdnpURnV0VFhheDgz N29PYXRVSXZTRzlvNWdSajltS3dtM2JyMVNlNWY0UWFsVFFzOXg0QXpsQS9IckNXYlFJSEFTVVE9 PQotICBkZXBlbmRlbmNpZXM6Ci0gICAgIkBiYWJlbC9oZWxwZXItcGx1Z2luLXV0aWxzIiAiXjcu MTMuMCIKLSAgICAiQGJhYmVsL3BsdWdpbi1zeW50YXgtZXhwb3J0LW5hbWVzcGFjZS1mcm9tIiAi XjcuOC4zIgotCi0iQGJhYmVsL3BsdWdpbi1wcm9wb3NhbC1leHBvcnQtbmFtZXNwYWNlLWZyb21A XjcuMTYuNyI6CisiQGJhYmVsL3BsdWdpbi1wcm9wb3NhbC1leHBvcnQtbmFtZXNwYWNlLWZyb21A XjcuMTIuMTMiLCAiQGJhYmVsL3BsdWdpbi1wcm9wb3NhbC1leHBvcnQtbmFtZXNwYWNlLWZyb21A XjcuMTYuNyI6CiAgIHZlcnNpb24gIjcuMTYuNyIKICAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0 cnkueWFybnBrZy5jb20vQGJhYmVsL3BsdWdpbi1wcm9wb3NhbC1leHBvcnQtbmFtZXNwYWNlLWZy b20vLS9wbHVnaW4tcHJvcG9zYWwtZXhwb3J0LW5hbWVzcGFjZS1mcm9tLTcuMTYuNy50Z3ojMDlk ZTA5ZGYxODQ0NWE1Nzg2YTMwNTY4MTQyM2FlNjM1MDdhNjE2MyIKICAgaW50ZWdyaXR5IHNoYTUx Mi1aeGR0cURYTFJHQkw2NG9jWmNzN292dDcxTDNqaEMxUkdTeVI5OTZzdnJDaTNQWXFITmtiM1N3 UEpDczhSSXpEODZzK1dQcHQyUzczK0VIQ0dPK05VQT09CkBAIC02NTAsMTUgKzYzNiw3IEBACiAg ICAgIkBiYWJlbC9oZWxwZXItcGx1Z2luLXV0aWxzIiAiXjcuMTYuNyIKICAgICAiQGJhYmVsL3Bs dWdpbi1zeW50YXgtZXhwb3J0LW5hbWVzcGFjZS1mcm9tIiAiXjcuOC4zIgogCi0iQGJhYmVsL3Bs dWdpbi1wcm9wb3NhbC1qc29uLXN0cmluZ3NAXjcuMTMuOCI6Ci0gIHZlcnNpb24gIjcuMTMuOCIK LSAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vQGJhYmVsL3BsdWdpbi1w cm9wb3NhbC1qc29uLXN0cmluZ3MvLS9wbHVnaW4tcHJvcG9zYWwtanNvbi1zdHJpbmdzLTcuMTMu OC50Z3ojYmYxZmIzNjI1NDcwNzVhZmRhMzYzNGVkMzE1NzFjNTkwMWFmZWY3YiIKLSAgaW50ZWdy aXR5IHNoYTUxMi13NHpPUEtVRlBYMW1ndlRtTC9mY0VxeTM0aHJRMUNSY0d4ZHBoQmM2c25Ebm5x SjQ3RVpESXlvcDZJd1h6QUM4RzkxNmhzSXVYQjJaTUJDRXhDNWs3UT09Ci0gIGRlcGVuZGVuY2ll czoKLSAgICAiQGJhYmVsL2hlbHBlci1wbHVnaW4tdXRpbHMiICJeNy4xMy4wIgotICAgICJAYmFi ZWwvcGx1Z2luLXN5bnRheC1qc29uLXN0cmluZ3MiICJeNy44LjMiCi0KLSJAYmFiZWwvcGx1Z2lu LXByb3Bvc2FsLWpzb24tc3RyaW5nc0BeNy4xNi43IjoKKyJAYmFiZWwvcGx1Z2luLXByb3Bvc2Fs LWpzb24tc3RyaW5nc0BeNy4xMy44IiwgIkBiYWJlbC9wbHVnaW4tcHJvcG9zYWwtanNvbi1zdHJp bmdzQF43LjE2LjciOgogICB2ZXJzaW9uICI3LjE2LjciCiAgIHJlc29sdmVkICJodHRwczovL3Jl Z2lzdHJ5Lnlhcm5wa2cuY29tL0BiYWJlbC9wbHVnaW4tcHJvcG9zYWwtanNvbi1zdHJpbmdzLy0v cGx1Z2luLXByb3Bvc2FsLWpzb24tc3RyaW5ncy03LjE2LjcudGd6Izk3MzJjYjFkMTdkOWEyNjI2 YTA4YzViZTI1MTg2YzE5NWI2ZmE2ZTgiCiAgIGludGVncml0eSBzaGE1MTItbE5aM0VFZ2dzR1k3 OEphdmdiSHNLOXU1UDNwUWFXN2s0YXhsZ0ZMWWtNZDdVQnNpTmFoQ0lUU2hMak5Rc2NoUHlqdE82 ZEFEckwyNDc1N0lkaEJyc1E9PQpAQCAtNjY2LDE1ICs2NDQsNyBAQAogICAgICJAYmFiZWwvaGVs cGVyLXBsdWdpbi11dGlscyIgIl43LjE2LjciCiAgICAgIkBiYWJlbC9wbHVnaW4tc3ludGF4LWpz b24tc3RyaW5ncyIgIl43LjguMyIKIAotIkBiYWJlbC9wbHVnaW4tcHJvcG9zYWwtbG9naWNhbC1h c3NpZ25tZW50LW9wZXJhdG9yc0BeNy4xMy44IjoKLSAgdmVyc2lvbiAiNy4xMy44IgotICByZXNv bHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9AYmFiZWwvcGx1Z2luLXByb3Bvc2Fs LWxvZ2ljYWwtYXNzaWdubWVudC1vcGVyYXRvcnMvLS9wbHVnaW4tcHJvcG9zYWwtbG9naWNhbC1h c3NpZ25tZW50LW9wZXJhdG9ycy03LjEzLjgudGd6IzkzZmE3OGQ2Mzg1N2M0MGNlM2M4YzMzMTUy MjBmZDAwYmZiYjRlMWEiCi0gIGludGVncml0eSBzaGE1MTItYXVsNnpuWUI0TjRIR3dlSW1xS241 OVN1OVJTOGxiVUlxeHRYVE9jQUd0TklEY3pvRUZ2K2wxRWhtWDhyVUJwM0cxak1qS0ptOG0walhW cDYzWnBTNEE9PQotICBkZXBlbmRlbmNpZXM6Ci0gICAgIkBiYWJlbC9oZWxwZXItcGx1Z2luLXV0 aWxzIiAiXjcuMTMuMCIKLSAgICAiQGJhYmVsL3BsdWdpbi1zeW50YXgtbG9naWNhbC1hc3NpZ25t ZW50LW9wZXJhdG9ycyIgIl43LjEwLjQiCi0KLSJAYmFiZWwvcGx1Z2luLXByb3Bvc2FsLWxvZ2lj YWwtYXNzaWdubWVudC1vcGVyYXRvcnNAXjcuMTYuNyI6CisiQGJhYmVsL3BsdWdpbi1wcm9wb3Nh bC1sb2dpY2FsLWFzc2lnbm1lbnQtb3BlcmF0b3JzQF43LjEzLjgiLCAiQGJhYmVsL3BsdWdpbi1w cm9wb3NhbC1sb2dpY2FsLWFzc2lnbm1lbnQtb3BlcmF0b3JzQF43LjE2LjciOgogICB2ZXJzaW9u ICI3LjE2LjciCiAgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL0BiYWJl bC9wbHVnaW4tcHJvcG9zYWwtbG9naWNhbC1hc3NpZ25tZW50LW9wZXJhdG9ycy8tL3BsdWdpbi1w cm9wb3NhbC1sb2dpY2FsLWFzc2lnbm1lbnQtb3BlcmF0b3JzLTcuMTYuNy50Z3ojYmUyM2MwYmE3 NGRlZWMxOTIyZTYzOTgzMjkwNGJlMGJlYTczY2RlYSIKICAgaW50ZWdyaXR5IHNoYTUxMi1LM1h6 eVpKR1FDcjAwK0V0WXRyRGptd1g3bzdQTEs2VTliaTFuQ3drUWlvUkZWVXY2ZEpveGJRanRXVnRQ K2JDUHk4MmJPTkJLRzhOUHlRNCtpNnlqZz09CkBAIC02ODIsMTUgKzY1Miw3IEBACiAgICAgIkBi YWJlbC9oZWxwZXItcGx1Z2luLXV0aWxzIiAiXjcuMTYuNyIKICAgICAiQGJhYmVsL3BsdWdpbi1z eW50YXgtbG9naWNhbC1hc3NpZ25tZW50LW9wZXJhdG9ycyIgIl43LjEwLjQiCiAKLSJAYmFiZWwv cGx1Z2luLXByb3Bvc2FsLW51bGxpc2gtY29hbGVzY2luZy1vcGVyYXRvckBeNy4xMy44IjoKLSAg dmVyc2lvbiAiNy4xMy44IgotICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNv bS9AYmFiZWwvcGx1Z2luLXByb3Bvc2FsLW51bGxpc2gtY29hbGVzY2luZy1vcGVyYXRvci8tL3Bs dWdpbi1wcm9wb3NhbC1udWxsaXNoLWNvYWxlc2Npbmctb3BlcmF0b3ItNy4xMy44LnRneiMzNzMw YTMxZGFmZDNjMTBkOGNjZDEwNjQ4ZWQ4MGEyYWM1NDcyZWYzIgotICBpbnRlZ3JpdHkgc2hhNTEy LWllUGxEUEJuLy9VaHhFeHlTOUt5ZVlVN1JNOVdTY0FHK0QzSGhubzBQTEplYkFFcERaTW9jYkRl NjRlcXluaE5Bbnd6L3Zab0wvcS9RQjJUMU9IMzlBPT0KLSAgZGVwZW5kZW5jaWVzOgotICAgICJA YmFiZWwvaGVscGVyLXBsdWdpbi11dGlscyIgIl43LjEzLjAiCi0gICAgIkBiYWJlbC9wbHVnaW4t c3ludGF4LW51bGxpc2gtY29hbGVzY2luZy1vcGVyYXRvciIgIl43LjguMyIKLQotIkBiYWJlbC9w bHVnaW4tcHJvcG9zYWwtbnVsbGlzaC1jb2FsZXNjaW5nLW9wZXJhdG9yQF43LjE2LjciOgorIkBi YWJlbC9wbHVnaW4tcHJvcG9zYWwtbnVsbGlzaC1jb2FsZXNjaW5nLW9wZXJhdG9yQF43LjEzLjgi LCAiQGJhYmVsL3BsdWdpbi1wcm9wb3NhbC1udWxsaXNoLWNvYWxlc2Npbmctb3BlcmF0b3JAXjcu MTYuNyI6CiAgIHZlcnNpb24gIjcuMTYuNyIKICAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnku eWFybnBrZy5jb20vQGJhYmVsL3BsdWdpbi1wcm9wb3NhbC1udWxsaXNoLWNvYWxlc2Npbmctb3Bl cmF0b3IvLS9wbHVnaW4tcHJvcG9zYWwtbnVsbGlzaC1jb2FsZXNjaW5nLW9wZXJhdG9yLTcuMTYu Ny50Z3ojMTQxZmMyMGI2ODU3ZTU5NDU5ZDQzMGM4NTBhMDAxMWUzNjU2MWQ5OSIKICAgaW50ZWdy aXR5IHNoYTUxMi1hVU9yWVUzRVZ0amY2MmpRckNqNjNwWVo3azZ2bnMyaC9EUXZIUFdHbXNKUll6 V1haNi9Bc2ZncGlSeTZYaXVJREFEaEp6UDJROU13U01LYXVCUStVUT09CkBAIC02OTgsMTUgKzY2 MCw3IEBACiAgICAgIkBiYWJlbC9oZWxwZXItcGx1Z2luLXV0aWxzIiAiXjcuMTYuNyIKICAgICAi QGJhYmVsL3BsdWdpbi1zeW50YXgtbnVsbGlzaC1jb2FsZXNjaW5nLW9wZXJhdG9yIiAiXjcuOC4z IgogCi0iQGJhYmVsL3BsdWdpbi1wcm9wb3NhbC1udW1lcmljLXNlcGFyYXRvckBeNy4xMi4xMyI6 Ci0gIHZlcnNpb24gIjcuMTQuMiIKLSAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBr Zy5jb20vQGJhYmVsL3BsdWdpbi1wcm9wb3NhbC1udW1lcmljLXNlcGFyYXRvci8tL3BsdWdpbi1w cm9wb3NhbC1udW1lcmljLXNlcGFyYXRvci03LjE0LjIudGd6IzgyYjRjYzA2NTcxMTQzZmFmNTA2 MjYxMDRiMzM1ZGQ3MWJhYTRmOWUiCi0gIGludGVncml0eSBzaGE1MTItRGNUUVk5c3l4dTlCcFUz VW85NGZqQ0IzTE45L2hnUFM4b1VMN0tyU1czYkEyZVByS1paUEpjYzV5MGhvSkFNOWRmdDNwR2ZF cnRFVXZ4WFFjZkx4VWc9PQotICBkZXBlbmRlbmNpZXM6Ci0gICAgIkBiYWJlbC9oZWxwZXItcGx1 Z2luLXV0aWxzIiAiXjcuMTMuMCIKLSAgICAiQGJhYmVsL3BsdWdpbi1zeW50YXgtbnVtZXJpYy1z ZXBhcmF0b3IiICJeNy4xMC40IgotCi0iQGJhYmVsL3BsdWdpbi1wcm9wb3NhbC1udW1lcmljLXNl cGFyYXRvckBeNy4xNi43IjoKKyJAYmFiZWwvcGx1Z2luLXByb3Bvc2FsLW51bWVyaWMtc2VwYXJh dG9yQF43LjEyLjEzIiwgIkBiYWJlbC9wbHVnaW4tcHJvcG9zYWwtbnVtZXJpYy1zZXBhcmF0b3JA XjcuMTYuNyI6CiAgIHZlcnNpb24gIjcuMTYuNyIKICAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0 cnkueWFybnBrZy5jb20vQGJhYmVsL3BsdWdpbi1wcm9wb3NhbC1udW1lcmljLXNlcGFyYXRvci8t L3BsdWdpbi1wcm9wb3NhbC1udW1lcmljLXNlcGFyYXRvci03LjE2LjcudGd6I2Q2YjY5ZjRhZjYz ZmIzOGI2Y2EyNTU4NDQyYTdmYjE5MTIzNmViYTkiCiAgIGludGVncml0eSBzaGE1MTItdlFnUE1r bk9JZ2l1VnFib2tUb3lYYmtZL09tbWpBenIvMGxoU0liRy9LbW56WFBHd1cvQWRoZEtwaStPNFgv VmtXaVdqbmtLT0JpcUpyVGFDOThWS3c9PQpAQCAtNzE0LDcgKzY2OCw3IEBACiAgICAgIkBiYWJl bC9oZWxwZXItcGx1Z2luLXV0aWxzIiAiXjcuMTYuNyIKICAgICAiQGJhYmVsL3BsdWdpbi1zeW50 YXgtbnVtZXJpYy1zZXBhcmF0b3IiICJeNy4xMC40IgogCi0iQGJhYmVsL3BsdWdpbi1wcm9wb3Nh bC1vYmplY3QtcmVzdC1zcHJlYWRAXjcuMTAuMSIsICJAYmFiZWwvcGx1Z2luLXByb3Bvc2FsLW9i amVjdC1yZXN0LXNwcmVhZEBeNy4xMy44IjoKKyJAYmFiZWwvcGx1Z2luLXByb3Bvc2FsLW9iamVj dC1yZXN0LXNwcmVhZEBeNy4xMC4xIjoKICAgdmVyc2lvbiAiNy4xNC43IgogICByZXNvbHZlZCAi aHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9AYmFiZWwvcGx1Z2luLXByb3Bvc2FsLW9iamVj dC1yZXN0LXNwcmVhZC8tL3BsdWdpbi1wcm9wb3NhbC1vYmplY3QtcmVzdC1zcHJlYWQtNy4xNC43 LnRneiM1OTIwYTJiM2RmN2Y3OTAxZGYwMjA1OTc0YzA2NDFiMTNmZDlkMzYzIgogICBpbnRlZ3Jp dHkgc2hhNTEyLTA4MmhzWnorc1ZhYmZtRFdvMU9jdDF1MUFnYktiVUF5VmdtWDRvdEljN2Jkc1Jn SEJYd1R3YjNEcERtRDRFeXl4NkROaXV6NVVBQVRUNjU1aytrTDVnPT0KQEAgLTcyNSw3ICs2Nzks NyBAQAogICAgICJAYmFiZWwvcGx1Z2luLXN5bnRheC1vYmplY3QtcmVzdC1zcHJlYWQiICJeNy44 LjMiCiAgICAgIkBiYWJlbC9wbHVnaW4tdHJhbnNmb3JtLXBhcmFtZXRlcnMiICJeNy4xNC41Igog Ci0iQGJhYmVsL3BsdWdpbi1wcm9wb3NhbC1vYmplY3QtcmVzdC1zcHJlYWRAXjcuMTYuNyI6Cisi QGJhYmVsL3BsdWdpbi1wcm9wb3NhbC1vYmplY3QtcmVzdC1zcHJlYWRAXjcuMTMuOCIsICJAYmFi ZWwvcGx1Z2luLXByb3Bvc2FsLW9iamVjdC1yZXN0LXNwcmVhZEBeNy4xNi43IjoKICAgdmVyc2lv biAiNy4xNi43IgogICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9AYmFi ZWwvcGx1Z2luLXByb3Bvc2FsLW9iamVjdC1yZXN0LXNwcmVhZC8tL3BsdWdpbi1wcm9wb3NhbC1v YmplY3QtcmVzdC1zcHJlYWQtNy4xNi43LnRneiM5NDU5M2VmMWRkZjM3MDIxYTI1YmRjYjU3NTRj NGE4ZDUzNGIwMWQ4IgogICBpbnRlZ3JpdHkgc2hhNTEyLTNPMFk0K2R3OTRIQTg2cVNnOUlIZnlQ a3RnUjdxM2dwTlZBZWlLUWQrOGpCS0ZhVTVOUVMxWWF0Z280d1krVUZOdUxqdnhjU216Y3NIcXJo Z1R5QlVBPT0KQEAgLTczNiwxNSArNjkwLDcgQEAKICAgICAiQGJhYmVsL3BsdWdpbi1zeW50YXgt b2JqZWN0LXJlc3Qtc3ByZWFkIiAiXjcuOC4zIgogICAgICJAYmFiZWwvcGx1Z2luLXRyYW5zZm9y bS1wYXJhbWV0ZXJzIiAiXjcuMTYuNyIKIAotIkBiYWJlbC9wbHVnaW4tcHJvcG9zYWwtb3B0aW9u YWwtY2F0Y2gtYmluZGluZ0BeNy4xMy44IjoKLSAgdmVyc2lvbiAiNy4xMy44IgotICByZXNvbHZl ZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9AYmFiZWwvcGx1Z2luLXByb3Bvc2FsLW9w dGlvbmFsLWNhdGNoLWJpbmRpbmcvLS9wbHVnaW4tcHJvcG9zYWwtb3B0aW9uYWwtY2F0Y2gtYmlu ZGluZy03LjEzLjgudGd6IzNhZDZiZDU5MDE1MDZlYTk5NmZjMzFiZGNmM2NjZmEyYmVkNzExMDci Ci0gIGludGVncml0eSBzaGE1MTItMHdTLzREVUYxQ3VUbUdvK05pYUhmSGNWU2VTTGo1UzNlNlJp dlBUZy8yazN3T3Yzak8zNXRaNi9aV3NRaFFNdmRnSTdDd3BoalFhL2NjYXJMeW1IVkE9PQotICBk ZXBlbmRlbmNpZXM6Ci0gICAgIkBiYWJlbC9oZWxwZXItcGx1Z2luLXV0aWxzIiAiXjcuMTMuMCIK LSAgICAiQGJhYmVsL3BsdWdpbi1zeW50YXgtb3B0aW9uYWwtY2F0Y2gtYmluZGluZyIgIl43Ljgu MyIKLQotIkBiYWJlbC9wbHVnaW4tcHJvcG9zYWwtb3B0aW9uYWwtY2F0Y2gtYmluZGluZ0BeNy4x Ni43IjoKKyJAYmFiZWwvcGx1Z2luLXByb3Bvc2FsLW9wdGlvbmFsLWNhdGNoLWJpbmRpbmdAXjcu MTMuOCIsICJAYmFiZWwvcGx1Z2luLXByb3Bvc2FsLW9wdGlvbmFsLWNhdGNoLWJpbmRpbmdAXjcu MTYuNyI6CiAgIHZlcnNpb24gIjcuMTYuNyIKICAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnku eWFybnBrZy5jb20vQGJhYmVsL3BsdWdpbi1wcm9wb3NhbC1vcHRpb25hbC1jYXRjaC1iaW5kaW5n Ly0vcGx1Z2luLXByb3Bvc2FsLW9wdGlvbmFsLWNhdGNoLWJpbmRpbmctNy4xNi43LnRneiNjNjIz YTQzMDY3NGZmYzRhYjczMmZkMGEwYWU3NzIyYjY3Y2I3NGNmIgogICBpbnRlZ3JpdHkgc2hhNTEy LWVNT0gvTDRPdldTWkFFMVZrSGJyMXZja0xHMVdVY0hHSlNMcXFRd2wyR2FVcUc2UWpkZHZyT2FU VU1OWWl2NzdINUlLUE1aOVU5UDdFYUh3dkFTaGZBPT0KQEAgLTc1MiwxNiArNjk4LDcgQEAKICAg ICAiQGJhYmVsL2hlbHBlci1wbHVnaW4tdXRpbHMiICJeNy4xNi43IgogICAgICJAYmFiZWwvcGx1 Z2luLXN5bnRheC1vcHRpb25hbC1jYXRjaC1iaW5kaW5nIiAiXjcuOC4zIgogCi0iQGJhYmVsL3Bs dWdpbi1wcm9wb3NhbC1vcHRpb25hbC1jaGFpbmluZ0BeNy4xMy44IjoKLSAgdmVyc2lvbiAiNy4x My44IgotICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9AYmFiZWwvcGx1 Z2luLXByb3Bvc2FsLW9wdGlvbmFsLWNoYWluaW5nLy0vcGx1Z2luLXByb3Bvc2FsLW9wdGlvbmFs LWNoYWluaW5nLTcuMTMuOC50Z3ojZTM5ZGY5M2VmZTdlN2U2MjE4NDFiYWJjMTk3OTgyZTE0MGU5 MDc1NiIKLSAgaW50ZWdyaXR5IHNoYTUxMi1ocGJCd2JUZ2Q3Q3oxUXJ5dndKWlJvMVUwazFxOHV5 Qm1lWE9TUVVqZGcvQTJUQVNraFIvcno3QXlxWi9rUzhrYnBzTkE4MHJPWWJ4eVNCSkFxbWhoUT09 Ci0gIGRlcGVuZGVuY2llczoKLSAgICAiQGJhYmVsL2hlbHBlci1wbHVnaW4tdXRpbHMiICJeNy4x My4wIgotICAgICJAYmFiZWwvaGVscGVyLXNraXAtdHJhbnNwYXJlbnQtZXhwcmVzc2lvbi13cmFw cGVycyIgIl43LjEyLjEiCi0gICAgIkBiYWJlbC9wbHVnaW4tc3ludGF4LW9wdGlvbmFsLWNoYWlu aW5nIiAiXjcuOC4zIgotCi0iQGJhYmVsL3BsdWdpbi1wcm9wb3NhbC1vcHRpb25hbC1jaGFpbmlu Z0BeNy4xNi43IjoKKyJAYmFiZWwvcGx1Z2luLXByb3Bvc2FsLW9wdGlvbmFsLWNoYWluaW5nQF43 LjEzLjgiLCAiQGJhYmVsL3BsdWdpbi1wcm9wb3NhbC1vcHRpb25hbC1jaGFpbmluZ0BeNy4xNi43 IjoKICAgdmVyc2lvbiAiNy4xNi43IgogICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJu cGtnLmNvbS9AYmFiZWwvcGx1Z2luLXByb3Bvc2FsLW9wdGlvbmFsLWNoYWluaW5nLy0vcGx1Z2lu LXByb3Bvc2FsLW9wdGlvbmFsLWNoYWluaW5nLTcuMTYuNy50Z3ojN2NkNjI5NTY0NzI0ODE2YzBl OGE5Njk1MzU1NTFmOTQzYzY0YzM5YSIKICAgaW50ZWdyaXR5IHNoYTUxMi1lQzN4eStaclVjQnRQ N3grc3E2MlEvSFlkNjc0cFBUYi83N1haTWI1d2JEUEdXSWRVYlNyNEFncjA1Mit6YVVQU2IrZ0dS bmp4WGZLRnZ4NWlNSitEQT09CkBAIC03NzAsMTUgKzcwNyw3IEBACiAgICAgIkBiYWJlbC9oZWxw ZXItc2tpcC10cmFuc3BhcmVudC1leHByZXNzaW9uLXdyYXBwZXJzIiAiXjcuMTYuMCIKICAgICAi QGJhYmVsL3BsdWdpbi1zeW50YXgtb3B0aW9uYWwtY2hhaW5pbmciICJeNy44LjMiCiAKLSJAYmFi ZWwvcGx1Z2luLXByb3Bvc2FsLXByaXZhdGUtbWV0aG9kc0BeNy4xMy4wIjoKLSAgdmVyc2lvbiAi Ny4xMy4wIgotICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9AYmFiZWwv cGx1Z2luLXByb3Bvc2FsLXByaXZhdGUtbWV0aG9kcy8tL3BsdWdpbi1wcm9wb3NhbC1wcml2YXRl LW1ldGhvZHMtNy4xMy4wLnRneiMwNGJkNGM2ZDQwZjZlNmJiZmEyZjU3ZTJkODA5NGJhZDkwMGVm Nzg3IgotICBpbnRlZ3JpdHkgc2hhNTEyLU1YeXlLUWQ5aW5oeDFrRFlQa0ZSVk9CWFEyMEVTOFB0 bzNUN1VaOTJ4ajJtWTBFVkQ4b0FWemV5WXVWZnkvbXhBZFRTSWF5T3ZnK2FWemNIVjJibjZRPT0K LSAgZGVwZW5kZW5jaWVzOgotICAgICJAYmFiZWwvaGVscGVyLWNyZWF0ZS1jbGFzcy1mZWF0dXJl cy1wbHVnaW4iICJeNy4xMy4wIgotICAgICJAYmFiZWwvaGVscGVyLXBsdWdpbi11dGlscyIgIl43 LjEzLjAiCi0KLSJAYmFiZWwvcGx1Z2luLXByb3Bvc2FsLXByaXZhdGUtbWV0aG9kc0BeNy4xNi4x MSI6CisiQGJhYmVsL3BsdWdpbi1wcm9wb3NhbC1wcml2YXRlLW1ldGhvZHNAXjcuMTMuMCIsICJA YmFiZWwvcGx1Z2luLXByb3Bvc2FsLXByaXZhdGUtbWV0aG9kc0BeNy4xNi4xMSI6CiAgIHZlcnNp b24gIjcuMTYuMTEiCiAgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL0Bi YWJlbC9wbHVnaW4tcHJvcG9zYWwtcHJpdmF0ZS1tZXRob2RzLy0vcGx1Z2luLXByb3Bvc2FsLXBy aXZhdGUtbWV0aG9kcy03LjE2LjExLnRneiNlOGRmMTA4Mjg4NTU1ZmYyNTlmNDUyN2RiZTg0ODEz YWFjM2ExYzUwIgogICBpbnRlZ3JpdHkgc2hhNTEyLUYvMnVBa1BsWERyOCtCSHBadm8xOXczaExG S2dlK2s3NVhVcHJFNmphcUt4akdrU1ljSys0YytidXA1UGRXLzdXL1JwandxbDdGVFZFRFcrZlJB UXN3PT0KQEAgLTc5NiwxNSArNzI1LDcgQEAKICAgICAiQGJhYmVsL2hlbHBlci1wbHVnaW4tdXRp bHMiICJeNy4xNi43IgogICAgICJAYmFiZWwvcGx1Z2luLXN5bnRheC1wcml2YXRlLXByb3BlcnR5 LWluLW9iamVjdCIgIl43LjE0LjUiCiAKLSJAYmFiZWwvcGx1Z2luLXByb3Bvc2FsLXVuaWNvZGUt cHJvcGVydHktcmVnZXhAXjcuMTIuMTMiLCAiQGJhYmVsL3BsdWdpbi1wcm9wb3NhbC11bmljb2Rl LXByb3BlcnR5LXJlZ2V4QF43LjQuNCI6Ci0gIHZlcnNpb24gIjcuMTIuMTMiCi0gIHJlc29sdmVk ICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL0BiYWJlbC9wbHVnaW4tcHJvcG9zYWwtdW5p Y29kZS1wcm9wZXJ0eS1yZWdleC8tL3BsdWdpbi1wcm9wb3NhbC11bmljb2RlLXByb3BlcnR5LXJl Z2V4LTcuMTIuMTMudGd6I2JlYmRlNTEzMzliZTgyOWMxN2FhYWFjZWQxODY0MWRlYjYyYjM5YmEi Ci0gIGludGVncml0eSBzaGE1MTItWHlKbVppZE5mb2ZFa3FGVjVWQy9iTGFiR21PNVF6ZW5QTy9Z T2ZHdUViZ1UrMnNTd01taW8zWUxiNFd0QmdjbW1kd1pIeVZ5djhvbjc3SVVqUTVHdmc9PQotICBk ZXBlbmRlbmNpZXM6Ci0gICAgIkBiYWJlbC9oZWxwZXItY3JlYXRlLXJlZ2V4cC1mZWF0dXJlcy1w bHVnaW4iICJeNy4xMi4xMyIKLSAgICAiQGJhYmVsL2hlbHBlci1wbHVnaW4tdXRpbHMiICJeNy4x Mi4xMyIKLQotIkBiYWJlbC9wbHVnaW4tcHJvcG9zYWwtdW5pY29kZS1wcm9wZXJ0eS1yZWdleEBe Ny4xNi43IjoKKyJAYmFiZWwvcGx1Z2luLXByb3Bvc2FsLXVuaWNvZGUtcHJvcGVydHktcmVnZXhA XjcuMTIuMTMiLCAiQGJhYmVsL3BsdWdpbi1wcm9wb3NhbC11bmljb2RlLXByb3BlcnR5LXJlZ2V4 QF43LjE2LjciOgogICB2ZXJzaW9uICI3LjE2LjciCiAgIHJlc29sdmVkICJodHRwczovL3JlZ2lz dHJ5Lnlhcm5wa2cuY29tL0BiYWJlbC9wbHVnaW4tcHJvcG9zYWwtdW5pY29kZS1wcm9wZXJ0eS1y ZWdleC8tL3BsdWdpbi1wcm9wb3NhbC11bmljb2RlLXByb3BlcnR5LXJlZ2V4LTcuMTYuNy50Z3oj NjM1ZDE4ZWIxMGM2MjE0MjEwZmZjNWZmNDkzMjU1MmRlMDgxODhhMiIKICAgaW50ZWdyaXR5IHNo YTUxMi1RUkswWUkvNDBWTGhOVkdJalJOQUFRa0VId3MwY3N3U2RGRmpwRnl0OTQzWW1KSVUxZGE5 dVc2M0l1Nk5GVjZDeFRaVzVlVERDcndaVXN0QldncC9SZz09CkBAIC04MTIsNiArNzMzLDE0IEBA CiAgICAgIkBiYWJlbC9oZWxwZXItY3JlYXRlLXJlZ2V4cC1mZWF0dXJlcy1wbHVnaW4iICJeNy4x Ni43IgogICAgICJAYmFiZWwvaGVscGVyLXBsdWdpbi11dGlscyIgIl43LjE2LjciCiAKKyJAYmFi ZWwvcGx1Z2luLXByb3Bvc2FsLXVuaWNvZGUtcHJvcGVydHktcmVnZXhAXjcuNC40IjoKKyAgdmVy c2lvbiAiNy4xNi4wIgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9A YmFiZWwvcGx1Z2luLXByb3Bvc2FsLXVuaWNvZGUtcHJvcGVydHktcmVnZXgvLS9wbHVnaW4tcHJv cG9zYWwtdW5pY29kZS1wcm9wZXJ0eS1yZWdleC03LjE2LjAudGd6Izg5MDQ4MmRmYzVlYTM3OGU0 MmUxOWE3MWU3MDk3MjhjYWJmMTg2MTIiCisgIGludGVncml0eSBzaGE1MTItdGk3SWRNNTROWHYy OWNBNCtiTk5LRU1TNGpMTUNiSmdsK0RyditGZ1l5MGVySkxBeE5BSVhjTmpOanJSWkVjV3EweEpI c05Wd1FlenNrTUZwRjhOOWc9PQorICBkZXBlbmRlbmNpZXM6CisgICAgIkBiYWJlbC9oZWxwZXIt Y3JlYXRlLXJlZ2V4cC1mZWF0dXJlcy1wbHVnaW4iICJeNy4xNi4wIgorICAgICJAYmFiZWwvaGVs cGVyLXBsdWdpbi11dGlscyIgIl43LjE0LjUiCisKICJAYmFiZWwvcGx1Z2luLXN5bnRheC1hc3lu Yy1nZW5lcmF0b3JzQF43LjguNCI6CiAgIHZlcnNpb24gIjcuOC40IgogICByZXNvbHZlZCAiaHR0 cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9AYmFiZWwvcGx1Z2luLXN5bnRheC1hc3luYy1nZW5l cmF0b3JzLy0vcGx1Z2luLXN5bnRheC1hc3luYy1nZW5lcmF0b3JzLTcuOC40LnRneiNhOTgzZmIx YWViMmVjM2Y2ZWQwNDJhMjEwZjY0MGU5MGU3ODZmZTBkIgpAQCAtODU0LDEzICs3ODMsNiBAQAog ICBkZXBlbmRlbmNpZXM6CiAgICAgIkBiYWJlbC9oZWxwZXItcGx1Z2luLXV0aWxzIiAiXjcuOC4w IgogCi0iQGJhYmVsL3BsdWdpbi1zeW50YXgtanN4QF43LjEyLjEzIjoKLSAgdmVyc2lvbiAiNy4x Mi4xMyIKLSAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vQGJhYmVsL3Bs dWdpbi1zeW50YXgtanN4Ly0vcGx1Z2luLXN5bnRheC1qc3gtNy4xMi4xMy50Z3ojMDQ0ZmI4MWVi YWQ2Njk4ZmU2MmM0Nzg4NzU1NzViY2JiOWI3MGYxNSIKLSAgaW50ZWdyaXR5IHNoYTUxMi1kNEhN MjNRMUs3b3EvU0xObUc2bVJ0ODVsMmNzbVEwY0hSYXhSWGpLVzBZRmRFWHFsWjVrekZRS0g1VWMz ckRKRUNndSt5Q1JnUGtHMDRNbTk4Ui8xZz09Ci0gIGRlcGVuZGVuY2llczoKLSAgICAiQGJhYmVs L2hlbHBlci1wbHVnaW4tdXRpbHMiICJeNy4xMi4xMyIKLQogIkBiYWJlbC9wbHVnaW4tc3ludGF4 LWpzeEBeNy4xNi4wIiwgIkBiYWJlbC9wbHVnaW4tc3ludGF4LWpzeEBeNy4xNi43IjoKICAgdmVy c2lvbiAiNy4xNi43IgogICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9A YmFiZWwvcGx1Z2luLXN5bnRheC1qc3gvLS9wbHVnaW4tc3ludGF4LWpzeC03LjE2LjcudGd6IzUw YjY1NzFkMTNmNzY0MjY2YTExM2Q3N2M4MmI0YTY1MDhiYmU2NjUiCkBAIC05MTcsNTEgKzgzOSwy OCBAQAogICBkZXBlbmRlbmNpZXM6CiAgICAgIkBiYWJlbC9oZWxwZXItcGx1Z2luLXV0aWxzIiAi XjcuMTQuNSIKIAotIkBiYWJlbC9wbHVnaW4tc3ludGF4LXRvcC1sZXZlbC1hd2FpdEBeNy4xMi4x MyI6Ci0gIHZlcnNpb24gIjcuMTIuMTMiCi0gIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlh cm5wa2cuY29tL0BiYWJlbC9wbHVnaW4tc3ludGF4LXRvcC1sZXZlbC1hd2FpdC8tL3BsdWdpbi1z eW50YXgtdG9wLWxldmVsLWF3YWl0LTcuMTIuMTMudGd6I2M1ZjBmYTZlMjQ5ZjViNzM5NzI3Zjky MzU0MGNmN2E4MDYxMzAxNzgiCi0gIGludGVncml0eSBzaGE1MTItQTgxRjlwRHd5Uzd5TS8vS3di Q1NEcXkzVWo0Tk1JdXJ0cGx4cGhXeG9ZdE5Qb3Y3Y0pzRGtBRk5OeVZsSVozandHeWNWc3VyWitM dE9BOGdaMzc2aVE9PQotICBkZXBlbmRlbmNpZXM6Ci0gICAgIkBiYWJlbC9oZWxwZXItcGx1Z2lu LXV0aWxzIiAiXjcuMTIuMTMiCi0KLSJAYmFiZWwvcGx1Z2luLXN5bnRheC10b3AtbGV2ZWwtYXdh aXRAXjcuMTQuNSI6CisiQGJhYmVsL3BsdWdpbi1zeW50YXgtdG9wLWxldmVsLWF3YWl0QF43LjEy LjEzIiwgIkBiYWJlbC9wbHVnaW4tc3ludGF4LXRvcC1sZXZlbC1hd2FpdEBeNy4xNC41IjoKICAg dmVyc2lvbiAiNy4xNC41IgogICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNv bS9AYmFiZWwvcGx1Z2luLXN5bnRheC10b3AtbGV2ZWwtYXdhaXQvLS9wbHVnaW4tc3ludGF4LXRv cC1sZXZlbC1hd2FpdC03LjE0LjUudGd6I2MxY2ZkYWRjMzVhNjQ2MjQwMDAxZjA2MTM4MjQ3Yjc0 MWMzNGQ5NGMiCiAgIGludGVncml0eSBzaGE1MTItaHgrK3VwTHY1VTFyZ1lmd2UxeEJRVWhSbVU0 MU5FdnBVdnJwOGprclNDZHZHU25NNS9xZFJNdHlsSjZQRzVPRmtCYUhrYlRBS1RuZDMvWXlFU1JI Rnc9PQogICBkZXBlbmRlbmNpZXM6CiAgICAgIkBiYWJlbC9oZWxwZXItcGx1Z2luLXV0aWxzIiAi XjcuMTQuNSIKIAotIkBiYWJlbC9wbHVnaW4tc3ludGF4LXR5cGVzY3JpcHRAXjcuMTQuNSI6Ci0g IHZlcnNpb24gIjcuMTQuNSIKLSAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5j b20vQGJhYmVsL3BsdWdpbi1zeW50YXgtdHlwZXNjcmlwdC8tL3BsdWdpbi1zeW50YXgtdHlwZXNj cmlwdC03LjE0LjUudGd6I2I4MmM2Y2U0NzFiMTY1YjVjZTQyMGNmOTI5MTRkNmZiNDYyMjU3MTYi Ci0gIGludGVncml0eSBzaGE1MTItdTZPWHpEYUlYakVzdEJSUm9CQ1EvdUtRS2xidWFlRTVpbjBS dldkQTRwTjZBaHF4VEl3VXNuSFBVMUNGWkEvYW1ZT2JNc3VXaFlmUmwzQ2g5MEhEMFE9PQorIkBi YWJlbC9wbHVnaW4tc3ludGF4LXR5cGVzY3JpcHRAXjcuMTYuMCI6CisgIHZlcnNpb24gIjcuMTYu MCIKKyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vQGJhYmVsL3BsdWdp bi1zeW50YXgtdHlwZXNjcmlwdC8tL3BsdWdpbi1zeW50YXgtdHlwZXNjcmlwdC03LjE2LjAudGd6 IzJmZWViMTNkOTMzNGNjNTgyZWE5MTExZDM1MDZmNzczMTc0MTc5YmIiCisgIGludGVncml0eSBz aGE1MTItWHY2bUVYcVZkYXFDQmZKRnllYWIwZkgyRG5Vb01zRG1oYW14c1NpNGo4bkxkNFZ0dzIx M1dNSnI1NXh4cWlwQy9ZVld5UFkzSzBibEpuY1BZamkrZFE9PQogICBkZXBlbmRlbmNpZXM6CiAg ICAgIkBiYWJlbC9oZWxwZXItcGx1Z2luLXV0aWxzIiAiXjcuMTQuNSIKIAotIkBiYWJlbC9wbHVn aW4tdHJhbnNmb3JtLWFycm93LWZ1bmN0aW9uc0BeNy4xMy4wIjoKLSAgdmVyc2lvbiAiNy4xMy4w IgotICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9AYmFiZWwvcGx1Z2lu LXRyYW5zZm9ybS1hcnJvdy1mdW5jdGlvbnMvLS9wbHVnaW4tdHJhbnNmb3JtLWFycm93LWZ1bmN0 aW9ucy03LjEzLjAudGd6IzEwYTU5YmViYWQ1MmQ2MzdhMDI3YWZhNjkyZThkNWNlZmY1ZTNkYWUi Ci0gIGludGVncml0eSBzaGE1MTItOTZsZ0phZ29iZVZtYXpYRmFEcmJtQ0xReEJ5c0t1N1U2RG8z bUxzeDI3Z2Y1RGs4NWV6eXNyczJCWlVwWEQ3MDNVL1N1MXhUQkR4eGFyMm9hNGpBR2c9PQotICBk ZXBlbmRlbmNpZXM6Ci0gICAgIkBiYWJlbC9oZWxwZXItcGx1Z2luLXV0aWxzIiAiXjcuMTMuMCIK LQotIkBiYWJlbC9wbHVnaW4tdHJhbnNmb3JtLWFycm93LWZ1bmN0aW9uc0BeNy4xNi43IjoKKyJA YmFiZWwvcGx1Z2luLXRyYW5zZm9ybS1hcnJvdy1mdW5jdGlvbnNAXjcuMTMuMCIsICJAYmFiZWwv cGx1Z2luLXRyYW5zZm9ybS1hcnJvdy1mdW5jdGlvbnNAXjcuMTYuNyI6CiAgIHZlcnNpb24gIjcu MTYuNyIKICAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vQGJhYmVsL3Bs dWdpbi10cmFuc2Zvcm0tYXJyb3ctZnVuY3Rpb25zLy0vcGx1Z2luLXRyYW5zZm9ybS1hcnJvdy1m dW5jdGlvbnMtNy4xNi43LnRneiM0NDEyNWU2NTNkOTRiOThkYjc2MzY5ZGU5YzM5NmRjMTRiZWY0 MTU0IgogICBpbnRlZ3JpdHkgc2hhNTEyLTlmZmtGRk1idnpUdnYrN2RUcC82Nnh2WkFXQVN1UEQ1 VGw5TEszWjl2aE9tQU5vNmo5NHJpays1WU1CdDRDd0hWTVdMV3BNc3JpSWMyenNhM1dXM3hRPT0K ICAgZGVwZW5kZW5jaWVzOgogICAgICJAYmFiZWwvaGVscGVyLXBsdWdpbi11dGlscyIgIl43LjE2 LjciCiAKLSJAYmFiZWwvcGx1Z2luLXRyYW5zZm9ybS1hc3luYy10by1nZW5lcmF0b3JAXjcuMTMu MCI6Ci0gIHZlcnNpb24gIjcuMTMuMCIKLSAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFy bnBrZy5jb20vQGJhYmVsL3BsdWdpbi10cmFuc2Zvcm0tYXN5bmMtdG8tZ2VuZXJhdG9yLy0vcGx1 Z2luLXRyYW5zZm9ybS1hc3luYy10by1nZW5lcmF0b3ItNy4xMy4wLnRneiM4ZTExMmJmNjc3MWI4 MmJmMWU5NzRlNWUyNjgwNmM1Yzk5YWE1MTZmIgotICBpbnRlZ3JpdHkgc2hhNTEyLTNqNkUwMDRE eDBLM2VHbWh4Vkp4d3dJODlDVEpyY2U3bGczVXJ0RnVEQVZRLzIrU0ovaC9hU0ZPZUU2L24wV0Ix R3NPZmZzSnA2TW5QUU5ROG5td2hnPT0KLSAgZGVwZW5kZW5jaWVzOgotICAgICJAYmFiZWwvaGVs cGVyLW1vZHVsZS1pbXBvcnRzIiAiXjcuMTIuMTMiCi0gICAgIkBiYWJlbC9oZWxwZXItcGx1Z2lu LXV0aWxzIiAiXjcuMTMuMCIKLSAgICAiQGJhYmVsL2hlbHBlci1yZW1hcC1hc3luYy10by1nZW5l cmF0b3IiICJeNy4xMy4wIgotCi0iQGJhYmVsL3BsdWdpbi10cmFuc2Zvcm0tYXN5bmMtdG8tZ2Vu ZXJhdG9yQF43LjE2LjgiOgorIkBiYWJlbC9wbHVnaW4tdHJhbnNmb3JtLWFzeW5jLXRvLWdlbmVy YXRvckBeNy4xMy4wIiwgIkBiYWJlbC9wbHVnaW4tdHJhbnNmb3JtLWFzeW5jLXRvLWdlbmVyYXRv ckBeNy4xNi44IjoKICAgdmVyc2lvbiAiNy4xNi44IgogICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdp c3RyeS55YXJucGtnLmNvbS9AYmFiZWwvcGx1Z2luLXRyYW5zZm9ybS1hc3luYy10by1nZW5lcmF0 b3IvLS9wbHVnaW4tdHJhbnNmb3JtLWFzeW5jLXRvLWdlbmVyYXRvci03LjE2LjgudGd6I2I4M2Rm ZjRiOTcwY2Y0MWYxYjgxOWY4YjQ5Y2MwY2ZiYWE1M2E4MDgiCiAgIGludGVncml0eSBzaGE1MTIt TXRtVW1USlFIQ255SlZyU2NOek5sb2ZRSjNkTEZ1b2JZbjNtd09US0huU0NNdGJOc3F2RjcxR1Ft SmZGamRyWFNzQUE3aXlzRm1ZV3c0YlhaMjBoT2c9PQpAQCAtOTcwLDQ4ICs4NjksMjEgQEAKICAg ICAiQGJhYmVsL2hlbHBlci1wbHVnaW4tdXRpbHMiICJeNy4xNi43IgogICAgICJAYmFiZWwvaGVs cGVyLXJlbWFwLWFzeW5jLXRvLWdlbmVyYXRvciIgIl43LjE2LjgiCiAKLSJAYmFiZWwvcGx1Z2lu LXRyYW5zZm9ybS1ibG9jay1zY29wZWQtZnVuY3Rpb25zQF43LjEyLjEzIjoKLSAgdmVyc2lvbiAi Ny4xMi4xMyIKLSAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vQGJhYmVs L3BsdWdpbi10cmFuc2Zvcm0tYmxvY2stc2NvcGVkLWZ1bmN0aW9ucy8tL3BsdWdpbi10cmFuc2Zv cm0tYmxvY2stc2NvcGVkLWZ1bmN0aW9ucy03LjEyLjEzLnRneiNhOWJmMTgzNmYyYTM5YjRlYjZj ZjA5OTY3NzM5ZGUyOWVhNGJmNGM0IgotICBpbnRlZ3JpdHkgc2hhNTEyLXpOeUZxYmMza0kvZlZw cXdmcWtnNlJ2QmdGcEM0SjE4YUtLTW12N0tkUS8xR2dSRWFwU0pBeWtMTVZOd2ZSR08zQnRIajNZ UVpsOGt4Q1hQY1ZNVmVnPT0KLSAgZGVwZW5kZW5jaWVzOgotICAgICJAYmFiZWwvaGVscGVyLXBs dWdpbi11dGlscyIgIl43LjEyLjEzIgotCi0iQGJhYmVsL3BsdWdpbi10cmFuc2Zvcm0tYmxvY2st c2NvcGVkLWZ1bmN0aW9uc0BeNy4xNi43IjoKKyJAYmFiZWwvcGx1Z2luLXRyYW5zZm9ybS1ibG9j ay1zY29wZWQtZnVuY3Rpb25zQF43LjEyLjEzIiwgIkBiYWJlbC9wbHVnaW4tdHJhbnNmb3JtLWJs b2NrLXNjb3BlZC1mdW5jdGlvbnNAXjcuMTYuNyI6CiAgIHZlcnNpb24gIjcuMTYuNyIKICAgcmVz b2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vQGJhYmVsL3BsdWdpbi10cmFuc2Zv cm0tYmxvY2stc2NvcGVkLWZ1bmN0aW9ucy8tL3BsdWdpbi10cmFuc2Zvcm0tYmxvY2stc2NvcGVk LWZ1bmN0aW9ucy03LjE2LjcudGd6IzRkMGQ1N2Q5NjMyZWY2MDYyY2RmMzU0YmI3MTcxMDJlZTA0 MmE2MjAiCiAgIGludGVncml0eSBzaGE1MTItSlV1emx6bUY0MFo5Y1h5eXRjYlpFWktja2dyUXpD aGJRSncvNVB1RUhZZXF6Q3N2ZWJEeDBLMGpXbklJVmNtbURPQVZjdENnbllzMHBNY3JZajJ6Smc9 PQogICBkZXBlbmRlbmNpZXM6CiAgICAgIkBiYWJlbC9oZWxwZXItcGx1Z2luLXV0aWxzIiAiXjcu MTYuNyIKIAotIkBiYWJlbC9wbHVnaW4tdHJhbnNmb3JtLWJsb2NrLXNjb3BpbmdAXjcuMTIuMTMi OgotICB2ZXJzaW9uICI3LjE0LjIiCi0gIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5w a2cuY29tL0BiYWJlbC9wbHVnaW4tdHJhbnNmb3JtLWJsb2NrLXNjb3BpbmcvLS9wbHVnaW4tdHJh bnNmb3JtLWJsb2NrLXNjb3BpbmctNy4xNC4yLnRneiM3NjFjYjEyYWI1YTg4ZDY0MGFkNGFmNGFh ODFmODIwZTZiNWZkZjVjIgotICBpbnRlZ3JpdHkgc2hhNTEyLW5lWlpjUDE5TnVnWlpxTndNVEgr S29Cang1V3l2RVNQU0lPUWI0SkhwZmQrelBmcWNINjVSTXU1eEpqdTUrNnEvWTJWellybGVRVHIr YjZNRVR5eXhnPT0KLSAgZGVwZW5kZW5jaWVzOgotICAgICJAYmFiZWwvaGVscGVyLXBsdWdpbi11 dGlscyIgIl43LjEzLjAiCi0KLSJAYmFiZWwvcGx1Z2luLXRyYW5zZm9ybS1ibG9jay1zY29waW5n QF43LjE2LjciOgorIkBiYWJlbC9wbHVnaW4tdHJhbnNmb3JtLWJsb2NrLXNjb3BpbmdAXjcuMTIu MTMiLCAiQGJhYmVsL3BsdWdpbi10cmFuc2Zvcm0tYmxvY2stc2NvcGluZ0BeNy4xNi43IjoKICAg dmVyc2lvbiAiNy4xNi43IgogICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNv bS9AYmFiZWwvcGx1Z2luLXRyYW5zZm9ybS1ibG9jay1zY29waW5nLy0vcGx1Z2luLXRyYW5zZm9y bS1ibG9jay1zY29waW5nLTcuMTYuNy50Z3ojZjUwNjY0YWI5OWRkZWFlZTViYzY4MWI4ZjNhNmVh OWQ3MmFiNGY4NyIKICAgaW50ZWdyaXR5IHNoYTUxMi1PYlpldjJueFZBWUE0Ymh5dXNFTGRvOWhi M0grQTU2YnhIM0ZaTWJFSW1aRmlFRFlWSFhRU0oxaFFLRmxEbmx0OEc5YkJyQ1o1WnBVUlpVclY0 RzVxUT09CiAgIGRlcGVuZGVuY2llczoKICAgICAiQGJhYmVsL2hlbHBlci1wbHVnaW4tdXRpbHMi ICJeNy4xNi43IgogCi0iQGJhYmVsL3BsdWdpbi10cmFuc2Zvcm0tY2xhc3Nlc0BeNy4xMy4wIjoK LSAgdmVyc2lvbiAiNy4xMy4wIgotICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtn LmNvbS9AYmFiZWwvcGx1Z2luLXRyYW5zZm9ybS1jbGFzc2VzLy0vcGx1Z2luLXRyYW5zZm9ybS1j bGFzc2VzLTcuMTMuMC50Z3ojMDI2NTE1NTA3NWM0MjkxOGJmNGQzYTQwNTMxMzQxNzZhZDliNTMz YiIKLSAgaW50ZWdyaXR5IHNoYTUxMi05QnRIQ1BVQVJ5Vkgxb1hHY1NKRDNZcHNxUkxST0p4NVpO UDZ0TjV2bmsxN04wU1ZmOVdDdGY4TnVoMUNGbWdCeUtLQUlNc3RpdEtkdW9DbXNhREs1Zz09Ci0g IGRlcGVuZGVuY2llczoKLSAgICAiQGJhYmVsL2hlbHBlci1hbm5vdGF0ZS1hcy1wdXJlIiAiXjcu MTIuMTMiCi0gICAgIkBiYWJlbC9oZWxwZXItZnVuY3Rpb24tbmFtZSIgIl43LjEyLjEzIgotICAg ICJAYmFiZWwvaGVscGVyLW9wdGltaXNlLWNhbGwtZXhwcmVzc2lvbiIgIl43LjEyLjEzIgotICAg ICJAYmFiZWwvaGVscGVyLXBsdWdpbi11dGlscyIgIl43LjEzLjAiCi0gICAgIkBiYWJlbC9oZWxw ZXItcmVwbGFjZS1zdXBlcnMiICJeNy4xMy4wIgotICAgICJAYmFiZWwvaGVscGVyLXNwbGl0LWV4 cG9ydC1kZWNsYXJhdGlvbiIgIl43LjEyLjEzIgotICAgIGdsb2JhbHMgIl4xMS4xLjAiCi0KLSJA YmFiZWwvcGx1Z2luLXRyYW5zZm9ybS1jbGFzc2VzQF43LjE2LjciOgorIkBiYWJlbC9wbHVnaW4t dHJhbnNmb3JtLWNsYXNzZXNAXjcuMTMuMCIsICJAYmFiZWwvcGx1Z2luLXRyYW5zZm9ybS1jbGFz c2VzQF43LjE2LjciOgogICB2ZXJzaW9uICI3LjE2LjciCiAgIHJlc29sdmVkICJodHRwczovL3Jl Z2lzdHJ5Lnlhcm5wa2cuY29tL0BiYWJlbC9wbHVnaW4tdHJhbnNmb3JtLWNsYXNzZXMvLS9wbHVn aW4tdHJhbnNmb3JtLWNsYXNzZXMtNy4xNi43LnRneiM4ZjRiOTU2Mjg1MGNkOTczZGUzYjQ5OGYx MjE4Nzk2ZWIxODFjZTAwIgogICBpbnRlZ3JpdHkgc2hhNTEyLVdZN29nMzhTRkFHWVJlNjRCcmpL ZjhPckU2dWxFSHRyNWpFWWFaTXdveDlLZWJncVBpNjdacXo4SzUzRUtrMWZGRUpnbTk2cjMycmtL WjNxQTJuQ1dRPT0KQEAgLTEwMjUsNDMgKzg5NywyMSBAQAogICAgICJAYmFiZWwvaGVscGVyLXNw bGl0LWV4cG9ydC1kZWNsYXJhdGlvbiIgIl43LjE2LjciCiAgICAgZ2xvYmFscyAiXjExLjEuMCIK IAotIkBiYWJlbC9wbHVnaW4tdHJhbnNmb3JtLWNvbXB1dGVkLXByb3BlcnRpZXNAXjcuMTMuMCI6 Ci0gIHZlcnNpb24gIjcuMTMuMCIKLSAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBr Zy5jb20vQGJhYmVsL3BsdWdpbi10cmFuc2Zvcm0tY29tcHV0ZWQtcHJvcGVydGllcy8tL3BsdWdp bi10cmFuc2Zvcm0tY29tcHV0ZWQtcHJvcGVydGllcy03LjEzLjAudGd6Izg0NWM2ZThiOWJiNTUz NzZiMWZhMGI5MmVmMGJkYzhlYTA2NjQ0ZWQiCi0gIGludGVncml0eSBzaGE1MTItUlJxVFlUZVpr WkF6OFdiaWVMVHZLVUVVeFpsVVRkbUw1S0dNeVpqN0ZuTWZMTktWNCtyNTU0OWFPUkcvbWdvalJt RmxRTUpEVXVwd0FNaUYyUTdPVWc9PQotICBkZXBlbmRlbmNpZXM6Ci0gICAgIkBiYWJlbC9oZWxw ZXItcGx1Z2luLXV0aWxzIiAiXjcuMTMuMCIKLQotIkBiYWJlbC9wbHVnaW4tdHJhbnNmb3JtLWNv bXB1dGVkLXByb3BlcnRpZXNAXjcuMTYuNyI6CisiQGJhYmVsL3BsdWdpbi10cmFuc2Zvcm0tY29t cHV0ZWQtcHJvcGVydGllc0BeNy4xMy4wIiwgIkBiYWJlbC9wbHVnaW4tdHJhbnNmb3JtLWNvbXB1 dGVkLXByb3BlcnRpZXNAXjcuMTYuNyI6CiAgIHZlcnNpb24gIjcuMTYuNyIKICAgcmVzb2x2ZWQg Imh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vQGJhYmVsL3BsdWdpbi10cmFuc2Zvcm0tY29t cHV0ZWQtcHJvcGVydGllcy8tL3BsdWdpbi10cmFuc2Zvcm0tY29tcHV0ZWQtcHJvcGVydGllcy03 LjE2LjcudGd6IzY2ZGVlMTJlNDZmNjFkMmFhZTdhNzM3MTBmNTkxZWIzZGY2MTY0NzAiCiAgIGlu dGVncml0eSBzaGE1MTItZ043Mkc5YmNtZW5WSUxqLy9zdjF6TE5hUHlZY096VWhvMmxJSkJNaC9p YWtKOXlnQ28vaEVGOWNwR2I2MVNDTUVEeGJieUJvVlF4cnQrYldLdTVLR3c9PQogICBkZXBlbmRl bmNpZXM6CiAgICAgIkBiYWJlbC9oZWxwZXItcGx1Z2luLXV0aWxzIiAiXjcuMTYuNyIKIAotIkBi YWJlbC9wbHVnaW4tdHJhbnNmb3JtLWRlc3RydWN0dXJpbmdAXjcuMTMuMCI6Ci0gIHZlcnNpb24g IjcuMTMuMCIKLSAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vQGJhYmVs L3BsdWdpbi10cmFuc2Zvcm0tZGVzdHJ1Y3R1cmluZy8tL3BsdWdpbi10cmFuc2Zvcm0tZGVzdHJ1 Y3R1cmluZy03LjEzLjAudGd6I2M1ZGNlMjcwMDE0ZDRlMWViYjFkODA2MTE2Njk0YzEyYjcwMjg5 NjMiCi0gIGludGVncml0eSBzaGE1MTItenltNWVtN3RlUG9OVDlzOTY0YzAvS1UzSlBQbnVxN1Zo SXhQUmVmSjQvczgyY0QrcTFtZ0tmdUdSRE1DUEwwSFR5S3o0ZElTdVFsQ3VzZmdDSjg2SEE9PQot ICBkZXBlbmRlbmNpZXM6Ci0gICAgIkBiYWJlbC9oZWxwZXItcGx1Z2luLXV0aWxzIiAiXjcuMTMu MCIKLQotIkBiYWJlbC9wbHVnaW4tdHJhbnNmb3JtLWRlc3RydWN0dXJpbmdAXjcuMTYuNyI6Cisi QGJhYmVsL3BsdWdpbi10cmFuc2Zvcm0tZGVzdHJ1Y3R1cmluZ0BeNy4xMy4wIiwgIkBiYWJlbC9w bHVnaW4tdHJhbnNmb3JtLWRlc3RydWN0dXJpbmdAXjcuMTYuNyI6CiAgIHZlcnNpb24gIjcuMTYu NyIKICAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vQGJhYmVsL3BsdWdp bi10cmFuc2Zvcm0tZGVzdHJ1Y3R1cmluZy8tL3BsdWdpbi10cmFuc2Zvcm0tZGVzdHJ1Y3R1cmlu Zy03LjE2LjcudGd6I2NhOTU4OGFlMmQ2Mzk3OGE0YzI5ZDNmMzMyODJkODYwM2Y2MThlMjMiCiAg IGludGVncml0eSBzaGE1MTItVnFBd2hUSEJudTV4QlZEQ3ZydnFKYnRMVWErK3FaYVdDMEZncjJt cW9rQmx1bFpBUkd5SXZaRG9xYlBsUGFLSW1ROWRLQWNDemJ2K3VsLy91cXU3MEE9PQogICBkZXBl bmRlbmNpZXM6CiAgICAgIkBiYWJlbC9oZWxwZXItcGx1Z2luLXV0aWxzIiAiXjcuMTYuNyIKIAot IkBiYWJlbC9wbHVnaW4tdHJhbnNmb3JtLWRvdGFsbC1yZWdleEBeNy4xMi4xMyIsICJAYmFiZWwv cGx1Z2luLXRyYW5zZm9ybS1kb3RhbGwtcmVnZXhAXjcuNC40IjoKLSAgdmVyc2lvbiAiNy4xMi4x MyIKLSAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vQGJhYmVsL3BsdWdp bi10cmFuc2Zvcm0tZG90YWxsLXJlZ2V4Ly0vcGx1Z2luLXRyYW5zZm9ybS1kb3RhbGwtcmVnZXgt Ny4xMi4xMy50Z3ojM2YxNjAxY2MyOTkwNWJmY2I2N2Y1MzkxMGYxOTdhZWFmZWJiMjVhZCIKLSAg aW50ZWdyaXR5IHNoYTUxMi1mb0Ryb3pFNjVaRmRVQzJPZmdlT0NyRVBUeGRCM3lqcXhwWGg4Q0gr aXBkOUNIZDRzL2lxODFrY1VweUg4QUNHTkVQZEZxYnR6Zmd6YlQvWkdsYkRlUT09Ci0gIGRlcGVu ZGVuY2llczoKLSAgICAiQGJhYmVsL2hlbHBlci1jcmVhdGUtcmVnZXhwLWZlYXR1cmVzLXBsdWdp biIgIl43LjEyLjEzIgotICAgICJAYmFiZWwvaGVscGVyLXBsdWdpbi11dGlscyIgIl43LjEyLjEz IgotCi0iQGJhYmVsL3BsdWdpbi10cmFuc2Zvcm0tZG90YWxsLXJlZ2V4QF43LjE2LjciOgorIkBi YWJlbC9wbHVnaW4tdHJhbnNmb3JtLWRvdGFsbC1yZWdleEBeNy4xMi4xMyIsICJAYmFiZWwvcGx1 Z2luLXRyYW5zZm9ybS1kb3RhbGwtcmVnZXhAXjcuMTYuNyI6CiAgIHZlcnNpb24gIjcuMTYuNyIK ICAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vQGJhYmVsL3BsdWdpbi10 cmFuc2Zvcm0tZG90YWxsLXJlZ2V4Ly0vcGx1Z2luLXRyYW5zZm9ybS1kb3RhbGwtcmVnZXgtNy4x Ni43LnRneiM2YjJkNjc2ODZmYWIxNWZiNmE3ZmQ0YmQ4OTVkNTk4MmNmYzgxMjQxIgogICBpbnRl Z3JpdHkgc2hhNTEyLUx5dHRhYW8yU2paRjZQZjR2azFkVkt2OFl5cE1wb21BYnlnVyttVTVjWVAz UzVjV1RmQ0pqRzh4VjZDRmR6R0ZsZldLODFJakw5dmlpVHZwYjZHN2dRPT0KQEAgLTEwNjksMjkg KzkxOSwyMiBAQAogICAgICJAYmFiZWwvaGVscGVyLWNyZWF0ZS1yZWdleHAtZmVhdHVyZXMtcGx1 Z2luIiAiXjcuMTYuNyIKICAgICAiQGJhYmVsL2hlbHBlci1wbHVnaW4tdXRpbHMiICJeNy4xNi43 IgogCi0iQGJhYmVsL3BsdWdpbi10cmFuc2Zvcm0tZHVwbGljYXRlLWtleXNAXjcuMTIuMTMiOgor IkBiYWJlbC9wbHVnaW4tdHJhbnNmb3JtLWRvdGFsbC1yZWdleEBeNy40LjQiOgogICB2ZXJzaW9u ICI3LjEyLjEzIgotICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9AYmFi ZWwvcGx1Z2luLXRyYW5zZm9ybS1kdXBsaWNhdGUta2V5cy8tL3BsdWdpbi10cmFuc2Zvcm0tZHVw bGljYXRlLWtleXMtNy4xMi4xMy50Z3ojNmYwNmI4N2E4YjgwM2ZkOTI4ZTU0YjgxYzI1OGYwYTAw MzM5MDRkZSIKLSAgaW50ZWdyaXR5IHNoYTUxMi1OZkFESmlpSGRoTEJXM3B1bEpsSkkyTkIwdDRj Y2k0V1RaOEZ0ZEl1TmMyKzhwc2xYZFB0UlJBRVdxVVkrbTlrTk9rMmVSWWJUQU9pcEF4bHJPY3d3 UT09CisgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL0BiYWJlbC9wbHVn aW4tdHJhbnNmb3JtLWRvdGFsbC1yZWdleC8tL3BsdWdpbi10cmFuc2Zvcm0tZG90YWxsLXJlZ2V4 LTcuMTIuMTMudGd6IzNmMTYwMWNjMjk5MDViZmNiNjdmNTM5MTBmMTk3YWVhZmViYjI1YWQiCisg IGludGVncml0eSBzaGE1MTItZm9Ecm96RTY1WkZkVUMyT2ZnZU9DckVQVHhkQjN5anF4cFhoOENI K2lwZDlDSGQ0cy9pcTgxa2NVcHlIOEFDR05FUGRGcWJ0emZnemJUL1pHbGJEZVE9PQogICBkZXBl bmRlbmNpZXM6CisgICAgIkBiYWJlbC9oZWxwZXItY3JlYXRlLXJlZ2V4cC1mZWF0dXJlcy1wbHVn aW4iICJeNy4xMi4xMyIKICAgICAiQGJhYmVsL2hlbHBlci1wbHVnaW4tdXRpbHMiICJeNy4xMi4x MyIKIAotIkBiYWJlbC9wbHVnaW4tdHJhbnNmb3JtLWR1cGxpY2F0ZS1rZXlzQF43LjE2LjciOgor IkBiYWJlbC9wbHVnaW4tdHJhbnNmb3JtLWR1cGxpY2F0ZS1rZXlzQF43LjEyLjEzIiwgIkBiYWJl bC9wbHVnaW4tdHJhbnNmb3JtLWR1cGxpY2F0ZS1rZXlzQF43LjE2LjciOgogICB2ZXJzaW9uICI3 LjE2LjciCiAgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL0BiYWJlbC9w bHVnaW4tdHJhbnNmb3JtLWR1cGxpY2F0ZS1rZXlzLy0vcGx1Z2luLXRyYW5zZm9ybS1kdXBsaWNh dGUta2V5cy03LjE2LjcudGd6IzIyMDdlOWNhOGY4MmEwZDM2YTVhNjdiNjUzNmU3ZWY4YjA4ODIz YzkiCiAgIGludGVncml0eSBzaGE1MTItMDNEdnBiUmZ2V0lYeUswLzZRaVIxS01UV2VUNk9jUTd0 Ymhqclh5RlMwMmtqdVgvbXU1QnZuaDVTRFNXSHh5YXdpdDJnNWFXaEt3STg2RUU3R1VuVHc9PQog ICBkZXBlbmRlbmNpZXM6CiAgICAgIkBiYWJlbC9oZWxwZXItcGx1Z2luLXV0aWxzIiAiXjcuMTYu NyIKIAotIkBiYWJlbC9wbHVnaW4tdHJhbnNmb3JtLWV4cG9uZW50aWF0aW9uLW9wZXJhdG9yQF43 LjEyLjEzIjoKLSAgdmVyc2lvbiAiNy4xMi4xMyIKLSAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0 cnkueWFybnBrZy5jb20vQGJhYmVsL3BsdWdpbi10cmFuc2Zvcm0tZXhwb25lbnRpYXRpb24tb3Bl cmF0b3IvLS9wbHVnaW4tdHJhbnNmb3JtLWV4cG9uZW50aWF0aW9uLW9wZXJhdG9yLTcuMTIuMTMu dGd6IzRkNTIzOTBiOWEyNzNlNjUxZTRhYmE2YWVlNDllZjQwZTgwY2QwYTEiCi0gIGludGVncml0 eSBzaGE1MTItZmJVZWxrTTFhcHZxZXoveVl4MS9vSUNWbkdvMktNNXM2M21oR3lscm1YVXhLL0lB WFNJZjg3UUl4VmZabGRXZjRRc09hZlk2dlYzYlg4YU1IU3ZOckE9PQotICBkZXBlbmRlbmNpZXM6 Ci0gICAgIkBiYWJlbC9oZWxwZXItYnVpbGRlci1iaW5hcnktYXNzaWdubWVudC1vcGVyYXRvci12 aXNpdG9yIiAiXjcuMTIuMTMiCi0gICAgIkBiYWJlbC9oZWxwZXItcGx1Z2luLXV0aWxzIiAiXjcu MTIuMTMiCi0KLSJAYmFiZWwvcGx1Z2luLXRyYW5zZm9ybS1leHBvbmVudGlhdGlvbi1vcGVyYXRv ckBeNy4xNi43IjoKKyJAYmFiZWwvcGx1Z2luLXRyYW5zZm9ybS1leHBvbmVudGlhdGlvbi1vcGVy YXRvckBeNy4xMi4xMyIsICJAYmFiZWwvcGx1Z2luLXRyYW5zZm9ybS1leHBvbmVudGlhdGlvbi1v cGVyYXRvckBeNy4xNi43IjoKICAgdmVyc2lvbiAiNy4xNi43IgogICByZXNvbHZlZCAiaHR0cHM6 Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9AYmFiZWwvcGx1Z2luLXRyYW5zZm9ybS1leHBvbmVudGlh dGlvbi1vcGVyYXRvci8tL3BsdWdpbi10cmFuc2Zvcm0tZXhwb25lbnRpYXRpb24tb3BlcmF0b3It Ny4xNi43LnRneiNlZmE5ODYyZWY5N2U5ZTllNWY2NTNmNmRkYzdiNjY1ZTg1MzZmZTliIgogICBp bnRlZ3JpdHkgc2hhNTEyLThVWUxTbHlMZ1JpeFF2bFlIM0oyZWtYRkhERkxRdXRkeTdGZkZBTW0z Q1BaNnE5d0hDd25VeWlYcFFDZTNnVlZuUWxIYzVuc3VpRVZ6aXRlUk5UWEVBPT0KQEAgLTEwOTks MjkgKzk0MiwxNCBAQAogICAgICJAYmFiZWwvaGVscGVyLWJ1aWxkZXItYmluYXJ5LWFzc2lnbm1l bnQtb3BlcmF0b3ItdmlzaXRvciIgIl43LjE2LjciCiAgICAgIkBiYWJlbC9oZWxwZXItcGx1Z2lu LXV0aWxzIiAiXjcuMTYuNyIKIAotIkBiYWJlbC9wbHVnaW4tdHJhbnNmb3JtLWZvci1vZkBeNy4x My4wIjoKLSAgdmVyc2lvbiAiNy4xMy4wIgotICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55 YXJucGtnLmNvbS9AYmFiZWwvcGx1Z2luLXRyYW5zZm9ybS1mb3Itb2YvLS9wbHVnaW4tdHJhbnNm b3JtLWZvci1vZi03LjEzLjAudGd6I2M3OTlmODgxYTgwOTFhYzI2YjU0ODY3YTg0NWMzZTk3ZDI2 OTYwNjIiCi0gIGludGVncml0eSBzaGE1MTItSUhLVDAwbXdVVllFMHp6YmtEZ05SUDZTUnp2ZkdD WXNPeElSejhLc2lhYUhDY1Q5QldJa08rSDlRUkpzZUhCTE9HQlprSFVkSGlxajZyMFBPc2R5dGc9 PQotICBkZXBlbmRlbmNpZXM6Ci0gICAgIkBiYWJlbC9oZWxwZXItcGx1Z2luLXV0aWxzIiAiXjcu MTMuMCIKLQotIkBiYWJlbC9wbHVnaW4tdHJhbnNmb3JtLWZvci1vZkBeNy4xNi43IjoKKyJAYmFi ZWwvcGx1Z2luLXRyYW5zZm9ybS1mb3Itb2ZAXjcuMTMuMCIsICJAYmFiZWwvcGx1Z2luLXRyYW5z Zm9ybS1mb3Itb2ZAXjcuMTYuNyI6CiAgIHZlcnNpb24gIjcuMTYuNyIKICAgcmVzb2x2ZWQgImh0 dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vQGJhYmVsL3BsdWdpbi10cmFuc2Zvcm0tZm9yLW9m Ly0vcGx1Z2luLXRyYW5zZm9ybS1mb3Itb2YtNy4xNi43LnRneiM2NDlkNjM5ZDQ2MTdkZmY1MDJh OWExNThjNDc5YjNiNTU2NzI4ZDhjIgogICBpbnRlZ3JpdHkgc2hhNTEyLS9RWm05VzkyUHRwdzdz akk5TngxbWJjc1d6MzMrbDhrdU1JUW5Ed2dRQkc1czNmQWZRdmtSalE3TnFYaHROY0tPblBrZElD bVVIeUNhV1cwNkhDc3FnPT0KICAgZGVwZW5kZW5jaWVzOgogICAgICJAYmFiZWwvaGVscGVyLXBs dWdpbi11dGlscyIgIl43LjE2LjciCiAKLSJAYmFiZWwvcGx1Z2luLXRyYW5zZm9ybS1mdW5jdGlv bi1uYW1lQF43LjEyLjEzIjoKLSAgdmVyc2lvbiAiNy4xMi4xMyIKLSAgcmVzb2x2ZWQgImh0dHBz Oi8vcmVnaXN0cnkueWFybnBrZy5jb20vQGJhYmVsL3BsdWdpbi10cmFuc2Zvcm0tZnVuY3Rpb24t bmFtZS8tL3BsdWdpbi10cmFuc2Zvcm0tZnVuY3Rpb24tbmFtZS03LjEyLjEzLnRneiNiYjAyNDQ1 MmY5YWFlZDg2MWQzNzRjOGU3YTI0MjUyY2UzYTUwMDUxIgotICBpbnRlZ3JpdHkgc2hhNTEyLTZL N2daeWNHMGNtSXd3Rjd1TUsvWnFlQ2lrQ0dWQmR5UDJKNVNLTkNYTzVFT0hjcWkrejdKd2Y4QW15 RE5jQmd4RVQ4RHJFdEN0L21QS1B5QXpYeXFRPT0KLSAgZGVwZW5kZW5jaWVzOgotICAgICJAYmFi ZWwvaGVscGVyLWZ1bmN0aW9uLW5hbWUiICJeNy4xMi4xMyIKLSAgICAiQGJhYmVsL2hlbHBlci1w bHVnaW4tdXRpbHMiICJeNy4xMi4xMyIKLQotIkBiYWJlbC9wbHVnaW4tdHJhbnNmb3JtLWZ1bmN0 aW9uLW5hbWVAXjcuMTYuNyI6CisiQGJhYmVsL3BsdWdpbi10cmFuc2Zvcm0tZnVuY3Rpb24tbmFt ZUBeNy4xMi4xMyIsICJAYmFiZWwvcGx1Z2luLXRyYW5zZm9ybS1mdW5jdGlvbi1uYW1lQF43LjE2 LjciOgogICB2ZXJzaW9uICI3LjE2LjciCiAgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlh cm5wa2cuY29tL0BiYWJlbC9wbHVnaW4tdHJhbnNmb3JtLWZ1bmN0aW9uLW5hbWUvLS9wbHVnaW4t dHJhbnNmb3JtLWZ1bmN0aW9uLW5hbWUtNy4xNi43LnRneiM1YWIzNDM3NWM2NGQ2MWQwODNkN2Qy ZjA1YzM4ZDkwYjk3ZWM2NWNmIgogICBpbnRlZ3JpdHkgc2hhNTEyLVNVL0M2OFlWd1RSeHFXajVr Z3NiS0lOYWtHYWcwS1RncTlmMmlaRVhkU3RvQWJPekxIRUJSWXpJbW1BNnlGbzhZWmhKVmZsdlht SUhVTzdHV0hteHhBPT0KQEAgLTExMzAsNDQgKzk1OCwyMSBAQAogICAgICJAYmFiZWwvaGVscGVy LWZ1bmN0aW9uLW5hbWUiICJeNy4xNi43IgogICAgICJAYmFiZWwvaGVscGVyLXBsdWdpbi11dGls cyIgIl43LjE2LjciCiAKLSJAYmFiZWwvcGx1Z2luLXRyYW5zZm9ybS1saXRlcmFsc0BeNy4xMi4x MyI6Ci0gIHZlcnNpb24gIjcuMTIuMTMiCi0gIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlh cm5wa2cuY29tL0BiYWJlbC9wbHVnaW4tdHJhbnNmb3JtLWxpdGVyYWxzLy0vcGx1Z2luLXRyYW5z Zm9ybS1saXRlcmFscy03LjEyLjEzLnRneiMyY2E0NWJhZmU0YTgyMDE5N2NmMzE1Nzk0YTRkMjY1 NjBmZTRiZGI5IgotICBpbnRlZ3JpdHkgc2hhNTEyLUZXK1dQalNSN2hpVXhNY0txeU5qUDA1dFEy a21CQ2RwRXBaSFkxQVJtOTZ0R1FDQ0J2WEtucGpJTHREcGxVbkovZUhaMGxBTExNK2QybE1GU3BZ SnJRPT0KLSAgZGVwZW5kZW5jaWVzOgotICAgICJAYmFiZWwvaGVscGVyLXBsdWdpbi11dGlscyIg Il43LjEyLjEzIgotCi0iQGJhYmVsL3BsdWdpbi10cmFuc2Zvcm0tbGl0ZXJhbHNAXjcuMTYuNyI6 CisiQGJhYmVsL3BsdWdpbi10cmFuc2Zvcm0tbGl0ZXJhbHNAXjcuMTIuMTMiLCAiQGJhYmVsL3Bs dWdpbi10cmFuc2Zvcm0tbGl0ZXJhbHNAXjcuMTYuNyI6CiAgIHZlcnNpb24gIjcuMTYuNyIKICAg cmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vQGJhYmVsL3BsdWdpbi10cmFu c2Zvcm0tbGl0ZXJhbHMvLS9wbHVnaW4tdHJhbnNmb3JtLWxpdGVyYWxzLTcuMTYuNy50Z3ojMjU0 Yzk2MThjNWZmNzQ5ZTg3Y2IwYzBjZWYxYTBhMDUwYzBiZGFiMSIKICAgaW50ZWdyaXR5IHNoYTUx Mi02dEg4UlRwVFdJMHMyc1Y2dXEzZS9DOXdQbzRQVHFxWnBzNHVGMGt6UTkveFBMRlF0aXB5bnZt VDFnL2RPZkVKKzBFUXNIaGtRL3p5UklkOEoyYjh6UT09CiAgIGRlcGVuZGVuY2llczoKICAgICAi QGJhYmVsL2hlbHBlci1wbHVnaW4tdXRpbHMiICJeNy4xNi43IgogCi0iQGJhYmVsL3BsdWdpbi10 cmFuc2Zvcm0tbWVtYmVyLWV4cHJlc3Npb24tbGl0ZXJhbHNAXjcuMTIuMTMiOgotICB2ZXJzaW9u ICI3LjEyLjEzIgotICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9AYmFi ZWwvcGx1Z2luLXRyYW5zZm9ybS1tZW1iZXItZXhwcmVzc2lvbi1saXRlcmFscy8tL3BsdWdpbi10 cmFuc2Zvcm0tbWVtYmVyLWV4cHJlc3Npb24tbGl0ZXJhbHMtNy4xMi4xMy50Z3ojNWZmYTY2Y2Q1 OWI5ZTE5MTMxNGM5ZjFmODAzYjkzOGU4YzA4MWU0MCIKLSAgaW50ZWdyaXR5IHNoYTUxMi1reExr T3NnOHlpcjRZZUVQSEx1TzJ0WFA5Ui9nVGpwdVRPanNocVNwRUxVTjNaQWcyamZEbktVdnp6SnhP YnVuMzhzdzN3bTRVdTY5c1gvekE3aVJ2Zz09Ci0gIGRlcGVuZGVuY2llczoKLSAgICAiQGJhYmVs L2hlbHBlci1wbHVnaW4tdXRpbHMiICJeNy4xMi4xMyIKLQotIkBiYWJlbC9wbHVnaW4tdHJhbnNm b3JtLW1lbWJlci1leHByZXNzaW9uLWxpdGVyYWxzQF43LjE2LjciOgorIkBiYWJlbC9wbHVnaW4t dHJhbnNmb3JtLW1lbWJlci1leHByZXNzaW9uLWxpdGVyYWxzQF43LjEyLjEzIiwgIkBiYWJlbC9w bHVnaW4tdHJhbnNmb3JtLW1lbWJlci1leHByZXNzaW9uLWxpdGVyYWxzQF43LjE2LjciOgogICB2 ZXJzaW9uICI3LjE2LjciCiAgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29t L0BiYWJlbC9wbHVnaW4tdHJhbnNmb3JtLW1lbWJlci1leHByZXNzaW9uLWxpdGVyYWxzLy0vcGx1 Z2luLXRyYW5zZm9ybS1tZW1iZXItZXhwcmVzc2lvbi1saXRlcmFscy03LjE2LjcudGd6IzZlNWRj ZjkwNmVmOGEwOThlNjMwMTQ5ZDE0Yzg2N2RkMjhmOTIzODQiCiAgIGludGVncml0eSBzaGE1MTIt bUJydVJNYmt0S1F3YnhhSm9mMzJMVDlLTHkyZjNnSCsyN2E1WFN1WG82aDdSM3ZxbHRsMFBnWjgw QzhaTUt3OThCZjhicXQ2QkVWaTNzdk9oMlB6TXc9PQogICBkZXBlbmRlbmNpZXM6CiAgICAgIkBi YWJlbC9oZWxwZXItcGx1Z2luLXV0aWxzIiAiXjcuMTYuNyIKIAotIkBiYWJlbC9wbHVnaW4tdHJh bnNmb3JtLW1vZHVsZXMtYW1kQF43LjEzLjAiOgotICB2ZXJzaW9uICI3LjEzLjAiCi0gIHJlc29s dmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL0BiYWJlbC9wbHVnaW4tdHJhbnNmb3Jt LW1vZHVsZXMtYW1kLy0vcGx1Z2luLXRyYW5zZm9ybS1tb2R1bGVzLWFtZC03LjEzLjAudGd6IzE5 ZjUxMWQ2MGUzZDg3NTNjYzVhNmQ0ZTc3NWQzYTUxODQ4NjZjYzMiCi0gIGludGVncml0eSBzaGE1 MTItRUt5L0UyTkhoWS82Vnc1ZDFrM3Jnb29iZnRjTlVtcDlmR2piOVhad1FMdFRjdHNSQk9UUk83 UkhIeGZJa3kxb2dNTjVCeE43cDl1TUEzU3pQZm90TVE9PQotICBkZXBlbmRlbmNpZXM6Ci0gICAg IkBiYWJlbC9oZWxwZXItbW9kdWxlLXRyYW5zZm9ybXMiICJeNy4xMy4wIgotICAgICJAYmFiZWwv aGVscGVyLXBsdWdpbi11dGlscyIgIl43LjEzLjAiCi0gICAgYmFiZWwtcGx1Z2luLWR5bmFtaWMt aW1wb3J0LW5vZGUgIl4yLjMuMyIKLQotIkBiYWJlbC9wbHVnaW4tdHJhbnNmb3JtLW1vZHVsZXMt YW1kQF43LjE2LjciOgorIkBiYWJlbC9wbHVnaW4tdHJhbnNmb3JtLW1vZHVsZXMtYW1kQF43LjEz LjAiLCAiQGJhYmVsL3BsdWdpbi10cmFuc2Zvcm0tbW9kdWxlcy1hbWRAXjcuMTYuNyI6CiAgIHZl cnNpb24gIjcuMTYuNyIKICAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20v QGJhYmVsL3BsdWdpbi10cmFuc2Zvcm0tbW9kdWxlcy1hbWQvLS9wbHVnaW4tdHJhbnNmb3JtLW1v ZHVsZXMtYW1kLTcuMTYuNy50Z3ojYjI4ZDMyMzAxNmE3ZGFhYWU4NjA5NzgxZDFmOGM5ZGE0MmIx MzE4NiIKICAgaW50ZWdyaXR5IHNoYTUxMi1LYWFFdGdCTDdGS1l3akovdGVINjNvQW1FM2xQMzRO M2tzaHo4bW00Vk1BdzdVM1B4alZ3d1VteEVGa3NiZ3NOVWFPM3dJZDlSMkFWUVlTRUdSYTIrZz09 CkBAIC0xMTc2LDE3ICs5ODEsNyBAQAogICAgICJAYmFiZWwvaGVscGVyLXBsdWdpbi11dGlscyIg Il43LjE2LjciCiAgICAgYmFiZWwtcGx1Z2luLWR5bmFtaWMtaW1wb3J0LW5vZGUgIl4yLjMuMyIK IAotIkBiYWJlbC9wbHVnaW4tdHJhbnNmb3JtLW1vZHVsZXMtY29tbW9uanNAXjcuMTMuOCI6Ci0g IHZlcnNpb24gIjcuMTMuOCIKLSAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5j b20vQGJhYmVsL3BsdWdpbi10cmFuc2Zvcm0tbW9kdWxlcy1jb21tb25qcy8tL3BsdWdpbi10cmFu c2Zvcm0tbW9kdWxlcy1jb21tb25qcy03LjEzLjgudGd6IzdiMDFhZDdjMmRjZjIyNzViMDZmYTE3 ODFlMDBkMTNkNDIwYjNlMWIiCi0gIGludGVncml0eSBzaGE1MTItOVFpT3g0TUVHZ2xmWVo0WE9u VTc5T0hyNnZJV1Vha0lqOWI0bWlvTjhlUUlvRWgrcGY1cC96RUIzNkpwREZXQTEybk5NaVJmN2Jm b1J2bDlSbjc5Qnc9PQotICBkZXBlbmRlbmNpZXM6Ci0gICAgIkBiYWJlbC9oZWxwZXItbW9kdWxl LXRyYW5zZm9ybXMiICJeNy4xMy4wIgotICAgICJAYmFiZWwvaGVscGVyLXBsdWdpbi11dGlscyIg Il43LjEzLjAiCi0gICAgIkBiYWJlbC9oZWxwZXItc2ltcGxlLWFjY2VzcyIgIl43LjEyLjEzIgot ICAgIGJhYmVsLXBsdWdpbi1keW5hbWljLWltcG9ydC1ub2RlICJeMi4zLjMiCi0KLSJAYmFiZWwv cGx1Z2luLXRyYW5zZm9ybS1tb2R1bGVzLWNvbW1vbmpzQF43LjE2LjgiOgorIkBiYWJlbC9wbHVn aW4tdHJhbnNmb3JtLW1vZHVsZXMtY29tbW9uanNAXjcuMTMuOCIsICJAYmFiZWwvcGx1Z2luLXRy YW5zZm9ybS1tb2R1bGVzLWNvbW1vbmpzQF43LjE2LjgiOgogICB2ZXJzaW9uICI3LjE2LjgiCiAg IHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL0BiYWJlbC9wbHVnaW4tdHJh bnNmb3JtLW1vZHVsZXMtY29tbW9uanMvLS9wbHVnaW4tdHJhbnNmb3JtLW1vZHVsZXMtY29tbW9u anMtNy4xNi44LnRneiNjZGVlMTlhYWU4ODdiMTZiOWQzMzEwMDlhYTlhMjE5YWY3Yzg2YWZlIgog ICBpbnRlZ3JpdHkgc2hhNTEyLW9mbEtQdnNMVDIrdUtRb3Blc0p0M0FwaWFJUzJIVytoekhGY3dS TnR5REdpZUFlQy9kSUhaWDhidUpRMkoyWDFyeEdQeTRlUmNVaWptM3FjU1BqWWNBPT0KQEAgLTEx OTYsMTggKzk5MSw3IEBACiAgICAgIkBiYWJlbC9oZWxwZXItc2ltcGxlLWFjY2VzcyIgIl43LjE2 LjciCiAgICAgYmFiZWwtcGx1Z2luLWR5bmFtaWMtaW1wb3J0LW5vZGUgIl4yLjMuMyIKIAotIkBi YWJlbC9wbHVnaW4tdHJhbnNmb3JtLW1vZHVsZXMtc3lzdGVtanNAXjcuMTMuOCI6Ci0gIHZlcnNp b24gIjcuMTMuOCIKLSAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vQGJh YmVsL3BsdWdpbi10cmFuc2Zvcm0tbW9kdWxlcy1zeXN0ZW1qcy8tL3BsdWdpbi10cmFuc2Zvcm0t bW9kdWxlcy1zeXN0ZW1qcy03LjEzLjgudGd6IzZkMDY2ZWUyYmZmM2M3YjNkNjBiZjI4ZGVjMTY5 YWQ5OTM4MzFhZTMiCi0gIGludGVncml0eSBzaGE1MTItaHdxY3RQWWpoTTZjV3ZWSWxPSWUyN2pD SUJnSENzZEgyeENKVkFZUW03VjV5VE1vaWxiVk1pOWY2d0tnMHJwUUFPbjZaRzRBT3l2Q3FGRi9o VWg2K0E9PQotICBkZXBlbmRlbmNpZXM6Ci0gICAgIkBiYWJlbC9oZWxwZXItaG9pc3QtdmFyaWFi bGVzIiAiXjcuMTMuMCIKLSAgICAiQGJhYmVsL2hlbHBlci1tb2R1bGUtdHJhbnNmb3JtcyIgIl43 LjEzLjAiCi0gICAgIkBiYWJlbC9oZWxwZXItcGx1Z2luLXV0aWxzIiAiXjcuMTMuMCIKLSAgICAi QGJhYmVsL2hlbHBlci12YWxpZGF0b3ItaWRlbnRpZmllciIgIl43LjEyLjExIgotICAgIGJhYmVs LXBsdWdpbi1keW5hbWljLWltcG9ydC1ub2RlICJeMi4zLjMiCi0KLSJAYmFiZWwvcGx1Z2luLXRy YW5zZm9ybS1tb2R1bGVzLXN5c3RlbWpzQF43LjE2LjciOgorIkBiYWJlbC9wbHVnaW4tdHJhbnNm b3JtLW1vZHVsZXMtc3lzdGVtanNAXjcuMTMuOCIsICJAYmFiZWwvcGx1Z2luLXRyYW5zZm9ybS1t b2R1bGVzLXN5c3RlbWpzQF43LjE2LjciOgogICB2ZXJzaW9uICI3LjE2LjciCiAgIHJlc29sdmVk ICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL0BiYWJlbC9wbHVnaW4tdHJhbnNmb3JtLW1v ZHVsZXMtc3lzdGVtanMvLS9wbHVnaW4tdHJhbnNmb3JtLW1vZHVsZXMtc3lzdGVtanMtNy4xNi43 LnRneiM4ODdjZWZhZWY4OGU2ODRkMjk1NThjMmIxM2VlMDU2M2UyODdjMmQ3IgogICBpbnRlZ3Jp dHkgc2hhNTEyLUR1SzVFM2srUVFtbk9xQlI5VWt1c0J5eTVXWldHUnhmelY1MjlzOW5QcmExR0U3 b2xteGZxTzJGSG9iRU9ZU1BJalBCVHI0cDY2WURjalFudDhjQm13PT0KQEAgLTEyMTgsMTUgKzEw MDIsNyBAQAogICAgICJAYmFiZWwvaGVscGVyLXZhbGlkYXRvci1pZGVudGlmaWVyIiAiXjcuMTYu NyIKICAgICBiYWJlbC1wbHVnaW4tZHluYW1pYy1pbXBvcnQtbm9kZSAiXjIuMy4zIgogCi0iQGJh YmVsL3BsdWdpbi10cmFuc2Zvcm0tbW9kdWxlcy11bWRAXjcuMTMuMCI6Ci0gIHZlcnNpb24gIjcu MTMuMCIKLSAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vQGJhYmVsL3Bs dWdpbi10cmFuc2Zvcm0tbW9kdWxlcy11bWQvLS9wbHVnaW4tdHJhbnNmb3JtLW1vZHVsZXMtdW1k LTcuMTMuMC50Z3ojOGEzZDk2YTk3ZDE5OTcwNWI5ZmQwMjE1ODAwODJhZjgxYzA2ZTcwYiIKLSAg aW50ZWdyaXR5IHNoYTUxMi1EL0lMekFoNnV5dmtXaktLeUZFL1cwRnpXd2FzdjZ2UFRTcVBjanhG cW42UXBYM3U4RGpSVmxpcTRGMkJhbU8yV2VlL29tMDZWeXkrdlBrTnJkNHd4dz09Ci0gIGRlcGVu ZGVuY2llczoKLSAgICAiQGJhYmVsL2hlbHBlci1tb2R1bGUtdHJhbnNmb3JtcyIgIl43LjEzLjAi Ci0gICAgIkBiYWJlbC9oZWxwZXItcGx1Z2luLXV0aWxzIiAiXjcuMTMuMCIKLQotIkBiYWJlbC9w bHVnaW4tdHJhbnNmb3JtLW1vZHVsZXMtdW1kQF43LjE2LjciOgorIkBiYWJlbC9wbHVnaW4tdHJh bnNmb3JtLW1vZHVsZXMtdW1kQF43LjEzLjAiLCAiQGJhYmVsL3BsdWdpbi10cmFuc2Zvcm0tbW9k dWxlcy11bWRAXjcuMTYuNyI6CiAgIHZlcnNpb24gIjcuMTYuNyIKICAgcmVzb2x2ZWQgImh0dHBz Oi8vcmVnaXN0cnkueWFybnBrZy5jb20vQGJhYmVsL3BsdWdpbi10cmFuc2Zvcm0tbW9kdWxlcy11 bWQvLS9wbHVnaW4tdHJhbnNmb3JtLW1vZHVsZXMtdW1kLTcuMTYuNy50Z3ojMjNkYWQ0NzlmYTU4 NTI4M2RiZDIyMjE1YmZmMTI3MTkxNzFlNzYxOCIKICAgaW50ZWdyaXR5IHNoYTUxMi1FTWg3dW9s c0M4TzR4aHVkRjJGNndlZGJTSG0xSEhaMEM2YUo3SzY3emNETmlkTXpWY3hXZEdyK2h0VzluMjFr bG0rYk9uK1J4NENCc0FudFpkM3JFUT09CkBAIC0xMjM0LDQzICsxMDEwLDIxIEBACiAgICAgIkBi YWJlbC9oZWxwZXItbW9kdWxlLXRyYW5zZm9ybXMiICJeNy4xNi43IgogICAgICJAYmFiZWwvaGVs cGVyLXBsdWdpbi11dGlscyIgIl43LjE2LjciCiAKLSJAYmFiZWwvcGx1Z2luLXRyYW5zZm9ybS1u YW1lZC1jYXB0dXJpbmctZ3JvdXBzLXJlZ2V4QF43LjEyLjEzIjoKLSAgdmVyc2lvbiAiNy4xMi4x MyIKLSAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vQGJhYmVsL3BsdWdp bi10cmFuc2Zvcm0tbmFtZWQtY2FwdHVyaW5nLWdyb3Vwcy1yZWdleC8tL3BsdWdpbi10cmFuc2Zv cm0tbmFtZWQtY2FwdHVyaW5nLWdyb3Vwcy1yZWdleC03LjEyLjEzLnRneiMyMjEzNzI1YTVmNWJi YmUzNjRiNTBjM2JhNTk5OGM5NTk5YzVjOWQ5IgotICBpbnRlZ3JpdHkgc2hhNTEyLVhzbThQMmhy NWhBeHlZYmxyZkFDWHBRS2RRYng0bTJkZjkvWlpTUThNQWhzYWR3MDYralc3czl6c1N3NmhlK21K WlhSbFZNeUVuVmt0Sm80emprMVdBPT0KLSAgZGVwZW5kZW5jaWVzOgotICAgICJAYmFiZWwvaGVs cGVyLWNyZWF0ZS1yZWdleHAtZmVhdHVyZXMtcGx1Z2luIiAiXjcuMTIuMTMiCi0KLSJAYmFiZWwv cGx1Z2luLXRyYW5zZm9ybS1uYW1lZC1jYXB0dXJpbmctZ3JvdXBzLXJlZ2V4QF43LjE2LjgiOgor IkBiYWJlbC9wbHVnaW4tdHJhbnNmb3JtLW5hbWVkLWNhcHR1cmluZy1ncm91cHMtcmVnZXhAXjcu MTIuMTMiLCAiQGJhYmVsL3BsdWdpbi10cmFuc2Zvcm0tbmFtZWQtY2FwdHVyaW5nLWdyb3Vwcy1y ZWdleEBeNy4xNi44IjoKICAgdmVyc2lvbiAiNy4xNi44IgogICByZXNvbHZlZCAiaHR0cHM6Ly9y ZWdpc3RyeS55YXJucGtnLmNvbS9AYmFiZWwvcGx1Z2luLXRyYW5zZm9ybS1uYW1lZC1jYXB0dXJp bmctZ3JvdXBzLXJlZ2V4Ly0vcGx1Z2luLXRyYW5zZm9ybS1uYW1lZC1jYXB0dXJpbmctZ3JvdXBz LXJlZ2V4LTcuMTYuOC50Z3ojN2Y4NjBlMGU0MGQ4NDRhMDJjOWRjZjlkODQ5NjVlN2RmZDY2NjI1 MiIKICAgaW50ZWdyaXR5IHNoYTUxMi1qM0p3K241UHZwbWhSUittcmdJaDA0cHVTQU5Day9UL1VB M20zUDFNakpraGxLOTA2K0FwSGhESXFCUURkT2dML3IxVVlwejRHTmNsVFh4eVpyWUdTdz09CiAg IGRlcGVuZGVuY2llczoKICAgICAiQGJhYmVsL2hlbHBlci1jcmVhdGUtcmVnZXhwLWZlYXR1cmVz LXBsdWdpbiIgIl43LjE2LjciCiAKLSJAYmFiZWwvcGx1Z2luLXRyYW5zZm9ybS1uZXctdGFyZ2V0 QF43LjEyLjEzIjoKLSAgdmVyc2lvbiAiNy4xMi4xMyIKLSAgcmVzb2x2ZWQgImh0dHBzOi8vcmVn aXN0cnkueWFybnBrZy5jb20vQGJhYmVsL3BsdWdpbi10cmFuc2Zvcm0tbmV3LXRhcmdldC8tL3Bs dWdpbi10cmFuc2Zvcm0tbmV3LXRhcmdldC03LjEyLjEzLnRneiNlMjJkOGMzYWYyNGIxNTBkZDUy OGNiZDZlNjg1ZTc5OWJmMWMzNTFjIgotICBpbnRlZ3JpdHkgc2hhNTEyLS9LWTJoYkx4ckc1R1RR OXp6WlNjM3hXaU95Mzc5cElFVEVoYnR6d1pjdzlydnVhVlY0RnF5N0JZR1lPV1puYW9YSVFZYmJK MHppWExhL3NLY0dDWUVRPT0KLSAgZGVwZW5kZW5jaWVzOgotICAgICJAYmFiZWwvaGVscGVyLXBs dWdpbi11dGlscyIgIl43LjEyLjEzIgotCi0iQGJhYmVsL3BsdWdpbi10cmFuc2Zvcm0tbmV3LXRh cmdldEBeNy4xNi43IjoKKyJAYmFiZWwvcGx1Z2luLXRyYW5zZm9ybS1uZXctdGFyZ2V0QF43LjEy LjEzIiwgIkBiYWJlbC9wbHVnaW4tdHJhbnNmb3JtLW5ldy10YXJnZXRAXjcuMTYuNyI6CiAgIHZl cnNpb24gIjcuMTYuNyIKICAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20v QGJhYmVsL3BsdWdpbi10cmFuc2Zvcm0tbmV3LXRhcmdldC8tL3BsdWdpbi10cmFuc2Zvcm0tbmV3 LXRhcmdldC03LjE2LjcudGd6Izk5NjdkODlhNWMyNDM4MThlMDgwMGZkYWQ4OWRiMjJjNWY1MTQy NDQiCiAgIGludGVncml0eSBzaGE1MTIteGlMRHpXTk1mS29HT3BjNnQzVStldENFMnlSbm4zU00w OUJYcVdQSVpPQnBMMmd2VnJCV1VLbnNKeDBLL0FEaTVGNVlDNWY4QVBGZldyejI1VGRsR2c9PQog ICBkZXBlbmRlbmNpZXM6CiAgICAgIkBiYWJlbC9oZWxwZXItcGx1Z2luLXV0aWxzIiAiXjcuMTYu NyIKIAotIkBiYWJlbC9wbHVnaW4tdHJhbnNmb3JtLW9iamVjdC1zdXBlckBeNy4xMi4xMyI6Ci0g IHZlcnNpb24gIjcuMTIuMTMiCi0gIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cu Y29tL0BiYWJlbC9wbHVnaW4tdHJhbnNmb3JtLW9iamVjdC1zdXBlci8tL3BsdWdpbi10cmFuc2Zv cm0tb2JqZWN0LXN1cGVyLTcuMTIuMTMudGd6I2I0NDE2YTJkNjNiOGY3YmUzMTRmM2QzNDliZDU1 YTljMWI1MTcxZjciCi0gIGludGVncml0eSBzaGE1MTItSnpZSWNqM1h0WXNwWkRWOGo5dWxub01Q WlpuRi9DajBMVXhQT2pSODlCZEJWeCt6WUpJOU1kTUlsVVpqYlhEWCs2WVZlUzZJM2U4b3ArcVEz QllCb1E9PQotICBkZXBlbmRlbmNpZXM6Ci0gICAgIkBiYWJlbC9oZWxwZXItcGx1Z2luLXV0aWxz IiAiXjcuMTIuMTMiCi0gICAgIkBiYWJlbC9oZWxwZXItcmVwbGFjZS1zdXBlcnMiICJeNy4xMi4x MyIKLQotIkBiYWJlbC9wbHVnaW4tdHJhbnNmb3JtLW9iamVjdC1zdXBlckBeNy4xNi43IjoKKyJA YmFiZWwvcGx1Z2luLXRyYW5zZm9ybS1vYmplY3Qtc3VwZXJAXjcuMTIuMTMiLCAiQGJhYmVsL3Bs dWdpbi10cmFuc2Zvcm0tb2JqZWN0LXN1cGVyQF43LjE2LjciOgogICB2ZXJzaW9uICI3LjE2Ljci CiAgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL0BiYWJlbC9wbHVnaW4t dHJhbnNmb3JtLW9iamVjdC1zdXBlci8tL3BsdWdpbi10cmFuc2Zvcm0tb2JqZWN0LXN1cGVyLTcu MTYuNy50Z3ojYWMzNTljZjhkMzJjZjQzNTRkMjdhNDY4Njc5OTk0OTBiNmMzMmE5NCIKICAgaW50 ZWdyaXR5IHNoYTUxMi0xNEoxZmVpUVZXYUd2UnhqMldqeU11WFMyanNCa2dCM01kU041SHVDMkc1 blJzcGE1Uks5Q09jczgyUHd5NUJ1R2NqYitmWWFVajk0bVljT2o3ckN2dz09CkBAIC0xMjc4LDI4 ICsxMDMyLDE0IEBACiAgICAgIkBiYWJlbC9oZWxwZXItcGx1Z2luLXV0aWxzIiAiXjcuMTYuNyIK ICAgICAiQGJhYmVsL2hlbHBlci1yZXBsYWNlLXN1cGVycyIgIl43LjE2LjciCiAKLSJAYmFiZWwv cGx1Z2luLXRyYW5zZm9ybS1wYXJhbWV0ZXJzQF43LjEzLjAiLCAiQGJhYmVsL3BsdWdpbi10cmFu c2Zvcm0tcGFyYW1ldGVyc0BeNy4xNC41IjoKLSAgdmVyc2lvbiAiNy4xNC41IgotICByZXNvbHZl ZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9AYmFiZWwvcGx1Z2luLXRyYW5zZm9ybS1w YXJhbWV0ZXJzLy0vcGx1Z2luLXRyYW5zZm9ybS1wYXJhbWV0ZXJzLTcuMTQuNS50Z3ojNDk2NjJl ODZhMWYzZGRjY2FjNjM2M2E3ZGZiMWZmMGExNThhZmViMyIKLSAgaW50ZWdyaXR5IHNoYTUxMi1U bDdMV2RyNkhVeFRtelF0enVVMTRTcWJnclNLbWFSNzdNME9LeXE0bmpaTFFUUGZPdnpibE5LeU5r R3dPZkVGQ0V4N0tlWUhRSERJMFAzRjAySVZrQT09Ci0gIGRlcGVuZGVuY2llczoKLSAgICAiQGJh YmVsL2hlbHBlci1wbHVnaW4tdXRpbHMiICJeNy4xNC41IgotCi0iQGJhYmVsL3BsdWdpbi10cmFu c2Zvcm0tcGFyYW1ldGVyc0BeNy4xNi43IjoKKyJAYmFiZWwvcGx1Z2luLXRyYW5zZm9ybS1wYXJh bWV0ZXJzQF43LjEzLjAiLCAiQGJhYmVsL3BsdWdpbi10cmFuc2Zvcm0tcGFyYW1ldGVyc0BeNy4x NC41IiwgIkBiYWJlbC9wbHVnaW4tdHJhbnNmb3JtLXBhcmFtZXRlcnNAXjcuMTYuNyI6CiAgIHZl cnNpb24gIjcuMTYuNyIKICAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20v QGJhYmVsL3BsdWdpbi10cmFuc2Zvcm0tcGFyYW1ldGVycy8tL3BsdWdpbi10cmFuc2Zvcm0tcGFy YW1ldGVycy03LjE2LjcudGd6I2ExNzIxZjU1Yjk5YjczNjUxMWNiN2UwMTUyZjYxZjE3Njg4ZjMz MWYiCiAgIGludGVncml0eSBzaGE1MTItQVQzTXVmUTd6WkVoVTJod09BMTFheEJuRXhXMExzenU0 UkwvdEFsVUpCdU5vUmFrK3dlaFFXOGg2S2NYT2Nnalk0MmZIdER4c3d1TWhNakZFdXYvYXc9PQog ICBkZXBlbmRlbmNpZXM6CiAgICAgIkBiYWJlbC9oZWxwZXItcGx1Z2luLXV0aWxzIiAiXjcuMTYu NyIKIAotIkBiYWJlbC9wbHVnaW4tdHJhbnNmb3JtLXByb3BlcnR5LWxpdGVyYWxzQF43LjEyLjEz IjoKLSAgdmVyc2lvbiAiNy4xMi4xMyIKLSAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFy bnBrZy5jb20vQGJhYmVsL3BsdWdpbi10cmFuc2Zvcm0tcHJvcGVydHktbGl0ZXJhbHMvLS9wbHVn aW4tdHJhbnNmb3JtLXByb3BlcnR5LWxpdGVyYWxzLTcuMTIuMTMudGd6IzRlNmE5ZTM3ODY0ZDhm MWIzYmMwZTJkY2U3YmY4ODU3ZGI4YjFhODEiCi0gIGludGVncml0eSBzaGE1MTItbnFWaWd3VmFu K2xSK2c4Rmo4RXhsMFVRWDJreW10amNXZk1PWU0xdlRZRUt1amV5djJTa01nYXpmMnFOY0s3bDRT RGlLeVRBL25IQ1BxTDRlMnpvMUE9PQotICBkZXBlbmRlbmNpZXM6Ci0gICAgIkBiYWJlbC9oZWxw ZXItcGx1Z2luLXV0aWxzIiAiXjcuMTIuMTMiCi0KLSJAYmFiZWwvcGx1Z2luLXRyYW5zZm9ybS1w cm9wZXJ0eS1saXRlcmFsc0BeNy4xNi43IjoKKyJAYmFiZWwvcGx1Z2luLXRyYW5zZm9ybS1wcm9w ZXJ0eS1saXRlcmFsc0BeNy4xMi4xMyIsICJAYmFiZWwvcGx1Z2luLXRyYW5zZm9ybS1wcm9wZXJ0 eS1saXRlcmFsc0BeNy4xNi43IjoKICAgdmVyc2lvbiAiNy4xNi43IgogICByZXNvbHZlZCAiaHR0 cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9AYmFiZWwvcGx1Z2luLXRyYW5zZm9ybS1wcm9wZXJ0 eS1saXRlcmFscy8tL3BsdWdpbi10cmFuc2Zvcm0tcHJvcGVydHktbGl0ZXJhbHMtNy4xNi43LnRn eiMyZGFkYWM4NTE1NTQzNmYyMmM2OTZjNDgyNzczMGUwZmUxMDU3YTU1IgogICBpbnRlZ3JpdHkg c2hhNTEyLXo0RkdyOU5NR2RvSWwxUnFhdkNxR0crWnVZamZaL2hrQ0lldUg2RG83dFhtU20wbHMx MW5ZVlNKcUZFVU9TSmJEYWI1d0M2bFJFL3c2WWpWY3I2SHF3PT0KQEAgLTEzMTMsNDYgKzEwNTMs MjEgQEAKICAgZGVwZW5kZW5jaWVzOgogICAgICJAYmFiZWwvaGVscGVyLXBsdWdpbi11dGlscyIg Il43LjE2LjciCiAKLSJAYmFiZWwvcGx1Z2luLXRyYW5zZm9ybS1yZWFjdC1kaXNwbGF5LW5hbWVA XjcuMTIuMTMiOgotICB2ZXJzaW9uICI3LjE0LjIiCi0gIHJlc29sdmVkICJodHRwczovL3JlZ2lz dHJ5Lnlhcm5wa2cuY29tL0BiYWJlbC9wbHVnaW4tdHJhbnNmb3JtLXJlYWN0LWRpc3BsYXktbmFt ZS8tL3BsdWdpbi10cmFuc2Zvcm0tcmVhY3QtZGlzcGxheS1uYW1lLTcuMTQuMi50Z3ojMmU4NTQ1 NDRkNDJhYjNiYjljMjFmODRlMTUzZDYyZTgwMGZiZDU5MyIKLSAgaW50ZWdyaXR5IHNoYTUxMi16 Q3VidlAramphaHBuRkp2UGFIUGlHVmZ1VlVqWEhoRnZKS1FkTm5zbVNzaVU5a1IvckNaNDFqSGMr K3RFUkQyelYrcDdIcjZpcyt0NWI2aVdUQ3FTdz09Ci0gIGRlcGVuZGVuY2llczoKLSAgICAiQGJh YmVsL2hlbHBlci1wbHVnaW4tdXRpbHMiICJeNy4xMy4wIgotCi0iQGJhYmVsL3BsdWdpbi10cmFu c2Zvcm0tcmVhY3QtZGlzcGxheS1uYW1lQF43LjE2LjciOgorIkBiYWJlbC9wbHVnaW4tdHJhbnNm b3JtLXJlYWN0LWRpc3BsYXktbmFtZUBeNy4xMi4xMyIsICJAYmFiZWwvcGx1Z2luLXRyYW5zZm9y bS1yZWFjdC1kaXNwbGF5LW5hbWVAXjcuMTYuNyI6CiAgIHZlcnNpb24gIjcuMTYuNyIKICAgcmVz b2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vQGJhYmVsL3BsdWdpbi10cmFuc2Zv cm0tcmVhY3QtZGlzcGxheS1uYW1lLy0vcGx1Z2luLXRyYW5zZm9ybS1yZWFjdC1kaXNwbGF5LW5h bWUtNy4xNi43LnRneiM3YjZkNDBkMjMyZjRjMGY1NTBlYTM0ODU5M2RiM2IyMWUyNDA0MzQwIgog ICBpbnRlZ3JpdHkgc2hhNTEyLXFnSWc4QmNaZ2QwRy9DejkxNkQ1KzlrcVgwYzduUFp5WGFQOFIy dExOTjV0a3lJWmRHNWZFd0JyeHdwbHpTbmpDMWp2UW15TU5Wd1VDWlBjYkdZN1BnPT0KICAgZGVw ZW5kZW5jaWVzOgogICAgICJAYmFiZWwvaGVscGVyLXBsdWdpbi11dGlscyIgIl43LjE2LjciCiAK LSJAYmFiZWwvcGx1Z2luLXRyYW5zZm9ybS1yZWFjdC1qc3gtZGV2ZWxvcG1lbnRAXjcuMTIuMTci OgotICB2ZXJzaW9uICI3LjEyLjE3IgotICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJu cGtnLmNvbS9AYmFiZWwvcGx1Z2luLXRyYW5zZm9ybS1yZWFjdC1qc3gtZGV2ZWxvcG1lbnQvLS9w bHVnaW4tdHJhbnNmb3JtLXJlYWN0LWpzeC1kZXZlbG9wbWVudC03LjEyLjE3LnRneiNmNTEwYzBm YTdjZDcyMzQxNTM1MzlmOWEzNjJjZWQ0MWE1Y2ExNDQ3IgotICBpbnRlZ3JpdHkgc2hhNTEyLUJQ allWODZTVnVPYXVkRmhzSlIxempneHhPaEpEdDZKSE5vRDQ4RHhXRUl4VUNBTWpWMXlzNkRZdzRT RFlaaDBiMVFzUzJ2ZklBOXQvWnNRR3NET1VRPT0KLSAgZGVwZW5kZW5jaWVzOgotICAgICJAYmFi ZWwvcGx1Z2luLXRyYW5zZm9ybS1yZWFjdC1qc3giICJeNy4xMi4xNyIKLQotIkBiYWJlbC9wbHVn aW4tdHJhbnNmb3JtLXJlYWN0LWpzeC1kZXZlbG9wbWVudEBeNy4xNi43IjoKKyJAYmFiZWwvcGx1 Z2luLXRyYW5zZm9ybS1yZWFjdC1qc3gtZGV2ZWxvcG1lbnRAXjcuMTIuMTciLCAiQGJhYmVsL3Bs dWdpbi10cmFuc2Zvcm0tcmVhY3QtanN4LWRldmVsb3BtZW50QF43LjE2LjciOgogICB2ZXJzaW9u ICI3LjE2LjciCiAgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL0BiYWJl bC9wbHVnaW4tdHJhbnNmb3JtLXJlYWN0LWpzeC1kZXZlbG9wbWVudC8tL3BsdWdpbi10cmFuc2Zv cm0tcmVhY3QtanN4LWRldmVsb3BtZW50LTcuMTYuNy50Z3ojNDNhMDA3MjRhM2VkMjU1N2VkM2Yy NzZhMDFhOTI5ZTY2ODZhYzdiOCIKICAgaW50ZWdyaXR5IHNoYTUxMi1STXZRV3ZwbGEreHk2TWxC cFBscktaQ01SczJBR2lIT0dIWTN4UndsMHBFZWltMzQ4ZER5eGVINHhCc01QYklNaHVqZXE3aWhF NzAyZU0yRXcwV28rQT09CiAgIGRlcGVuZGVuY2llczoKICAgICAiQGJhYmVsL3BsdWdpbi10cmFu c2Zvcm0tcmVhY3QtanN4IiAiXjcuMTYuNyIKIAotIkBiYWJlbC9wbHVnaW4tdHJhbnNmb3JtLXJl YWN0LWpzeEBeNy4xMi4xNyIsICJAYmFiZWwvcGx1Z2luLXRyYW5zZm9ybS1yZWFjdC1qc3hAXjcu MTMuMTIiOgotICB2ZXJzaW9uICI3LjEzLjEyIgotICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3Ry eS55YXJucGtnLmNvbS9AYmFiZWwvcGx1Z2luLXRyYW5zZm9ybS1yZWFjdC1qc3gvLS9wbHVnaW4t dHJhbnNmb3JtLXJlYWN0LWpzeC03LjEzLjEyLnRneiMxZGY1ZGZhZjBmNGI3ODRiNDNlOTZkYTZm MjhkNjMwZTc3NWY2OGIzIgotICBpbnRlZ3JpdHkgc2hhNTEyLWpjRUkyVXFJY3BDcUI1VTVEUnhJ bDB0UUVQcm9JMmdjdStnOFZUSXF4TE81SWlkb2piNGQ3N3ErZndHc2VDdmQ4YWYvbEo5bWFzcDRR V3pCWEZFMnhBPT0KLSAgZGVwZW5kZW5jaWVzOgotICAgICJAYmFiZWwvaGVscGVyLWFubm90YXRl LWFzLXB1cmUiICJeNy4xMi4xMyIKLSAgICAiQGJhYmVsL2hlbHBlci1tb2R1bGUtaW1wb3J0cyIg Il43LjEzLjEyIgotICAgICJAYmFiZWwvaGVscGVyLXBsdWdpbi11dGlscyIgIl43LjEzLjAiCi0g ICAgIkBiYWJlbC9wbHVnaW4tc3ludGF4LWpzeCIgIl43LjEyLjEzIgotICAgICJAYmFiZWwvdHlw ZXMiICJeNy4xMy4xMiIKLQotIkBiYWJlbC9wbHVnaW4tdHJhbnNmb3JtLXJlYWN0LWpzeEBeNy4x Ni43IjoKKyJAYmFiZWwvcGx1Z2luLXRyYW5zZm9ybS1yZWFjdC1qc3hAXjcuMTMuMTIiLCAiQGJh YmVsL3BsdWdpbi10cmFuc2Zvcm0tcmVhY3QtanN4QF43LjE2LjciOgogICB2ZXJzaW9uICI3LjE2 LjciCiAgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL0BiYWJlbC9wbHVn aW4tdHJhbnNmb3JtLXJlYWN0LWpzeC8tL3BsdWdpbi10cmFuc2Zvcm0tcmVhY3QtanN4LTcuMTYu Ny50Z3ojODZhNmEyMjA1NTJhZmQwZTRlMWYwMzg4YTY4YTM3MmJlN2FkZDBkNCIKICAgaW50ZWdy aXR5IHNoYTUxMi04RDE2eWU2NmZ4aUU4bTg5MHcwQnBQcG5nRzlvOU9WQkJ5MGdIMkUrMkFSN3FN UjJacFRZSkVxTHhBc29yb2VuTUlkMHAvd01XK0JsYzBtZURndTBBZz09CkBAIC0xMzYzLDE1ICsx MDc4LDcgQEAKICAgICAiQGJhYmVsL3BsdWdpbi1zeW50YXgtanN4IiAiXjcuMTYuNyIKICAgICAi QGJhYmVsL3R5cGVzIiAiXjcuMTYuNyIKIAotIkBiYWJlbC9wbHVnaW4tdHJhbnNmb3JtLXJlYWN0 LXB1cmUtYW5ub3RhdGlvbnNAXjcuMTIuMSI6Ci0gIHZlcnNpb24gIjcuMTIuMSIKLSAgcmVzb2x2 ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vQGJhYmVsL3BsdWdpbi10cmFuc2Zvcm0t cmVhY3QtcHVyZS1hbm5vdGF0aW9ucy8tL3BsdWdpbi10cmFuc2Zvcm0tcmVhY3QtcHVyZS1hbm5v dGF0aW9ucy03LjEyLjEudGd6IzA1ZDQ2ZjBhYjRkMTMzOWFjNTlhZGYyMGExNDYyYzkxYjM3YTFh NDIiCi0gIGludGVncml0eSBzaGE1MTItUnFlYUhpd1p0cGhTSVVaNUk4NVBFSDE5TE9TenhmdUVh em9ZNy9wV0FTQ0FJQnVBVFF6cFNWRCtlVDZNZWJlZVpUMkY0ZVNMMHU0dnc2bjRObTBNamc9PQot ICBkZXBlbmRlbmNpZXM6Ci0gICAgIkBiYWJlbC9oZWxwZXItYW5ub3RhdGUtYXMtcHVyZSIgIl43 LjEwLjQiCi0gICAgIkBiYWJlbC9oZWxwZXItcGx1Z2luLXV0aWxzIiAiXjcuMTAuNCIKLQotIkBi YWJlbC9wbHVnaW4tdHJhbnNmb3JtLXJlYWN0LXB1cmUtYW5ub3RhdGlvbnNAXjcuMTYuNyI6Cisi QGJhYmVsL3BsdWdpbi10cmFuc2Zvcm0tcmVhY3QtcHVyZS1hbm5vdGF0aW9uc0BeNy4xMi4xIiwg IkBiYWJlbC9wbHVnaW4tdHJhbnNmb3JtLXJlYWN0LXB1cmUtYW5ub3RhdGlvbnNAXjcuMTYuNyI6 CiAgIHZlcnNpb24gIjcuMTYuNyIKICAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBr Zy5jb20vQGJhYmVsL3BsdWdpbi10cmFuc2Zvcm0tcmVhY3QtcHVyZS1hbm5vdGF0aW9ucy8tL3Bs dWdpbi10cmFuc2Zvcm0tcmVhY3QtcHVyZS1hbm5vdGF0aW9ucy03LjE2LjcudGd6IzIzMmJmZDJm MTJlYjU1MWQ2ZDdkMDFkMTNmZTNmODZiNDVlYjljNjciCiAgIGludGVncml0eSBzaGE1MTItaHM3 MVRvQzk3azNRV3hzd2gyRWx6TUZBQlhIdkdpSjAxSUIxVGJZUURHZVdSS1d6L01QVVRoNWpHRXhk SHZvc1lLcG5KVzVQbTNTNCtUQTNGeVgrR0E9PQpAQCAtMTM3OSw1NyArMTA4NiwyOCBAQAogICAg ICJAYmFiZWwvaGVscGVyLWFubm90YXRlLWFzLXB1cmUiICJeNy4xNi43IgogICAgICJAYmFiZWwv aGVscGVyLXBsdWdpbi11dGlscyIgIl43LjE2LjciCiAKLSJAYmFiZWwvcGx1Z2luLXRyYW5zZm9y bS1yZWdlbmVyYXRvckBeNy4xMi4xMyI6Ci0gIHZlcnNpb24gIjcuMTMuMTUiCi0gIHJlc29sdmVk ICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL0BiYWJlbC9wbHVnaW4tdHJhbnNmb3JtLXJl Z2VuZXJhdG9yLy0vcGx1Z2luLXRyYW5zZm9ybS1yZWdlbmVyYXRvci03LjEzLjE1LnRneiNlNWVi Mjg5NDViZjhiNjU2M2U3ZjgxODk0NWY5NjZhOGQyOTk3ZjM5IgotICBpbnRlZ3JpdHkgc2hhNTEy LUJrOWNPTFN6OERpdXJjTUVUWjhFMll0SVZKYkZDUEdXMjhESldVYWtteVZXdFFTbTZXc2YwcDRC NEJmRXIvZUwyTmtoZS9DSUNpVWlNT0NpMVRQaHVRPT0KLSAgZGVwZW5kZW5jaWVzOgotICAgIHJl Z2VuZXJhdG9yLXRyYW5zZm9ybSAiXjAuMTQuMiIKLQotIkBiYWJlbC9wbHVnaW4tdHJhbnNmb3Jt LXJlZ2VuZXJhdG9yQF43LjE2LjciOgorIkBiYWJlbC9wbHVnaW4tdHJhbnNmb3JtLXJlZ2VuZXJh dG9yQF43LjEyLjEzIiwgIkBiYWJlbC9wbHVnaW4tdHJhbnNmb3JtLXJlZ2VuZXJhdG9yQF43LjE2 LjciOgogICB2ZXJzaW9uICI3LjE2LjciCiAgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlh cm5wa2cuY29tL0BiYWJlbC9wbHVnaW4tdHJhbnNmb3JtLXJlZ2VuZXJhdG9yLy0vcGx1Z2luLXRy YW5zZm9ybS1yZWdlbmVyYXRvci03LjE2LjcudGd6IzllNzU3NmRjNDc2Y2I4OWNjYzUwOTZmZmY3 YWY2NTkyNDNiNGFkZWIiCiAgIGludGVncml0eSBzaGE1MTItbUY3ak9nR1lDa1NKYWdKNlhDdWpT UWcrNnhDMU03Ny8wM0syb0JtVkpXb0ZHTlV0blZKTzRXSEtKazNkblBDOEhDY2o0eEJRUDFFZ204 RFdoM1BiM1E9PQogICBkZXBlbmRlbmNpZXM6CiAgICAgcmVnZW5lcmF0b3ItdHJhbnNmb3JtICJe MC4xNC4yIgogCi0iQGJhYmVsL3BsdWdpbi10cmFuc2Zvcm0tcmVzZXJ2ZWQtd29yZHNAXjcuMTIu MTMiOgotICB2ZXJzaW9uICI3LjEyLjEzIgotICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55 YXJucGtnLmNvbS9AYmFiZWwvcGx1Z2luLXRyYW5zZm9ybS1yZXNlcnZlZC13b3Jkcy8tL3BsdWdp bi10cmFuc2Zvcm0tcmVzZXJ2ZWQtd29yZHMtNy4xMi4xMy50Z3ojN2Q5OTg4ZDRmMDZlMGZlNjk3 ZWExZDk4MDMxODhhYTE4YjQ3MjY5NSIKLSAgaW50ZWdyaXR5IHNoYTUxMi14aFVQekRYeFpOMVFm aU95L0k1dHl5ZStUUno2bEE3ejZ4YVQ0Q0xPalBSTVZnMWxkUmYwTEh3MFREQnBZTDR2Rzc4NTU2 V3VIZHlPOW9pNVVtelpCZz09Ci0gIGRlcGVuZGVuY2llczoKLSAgICAiQGJhYmVsL2hlbHBlci1w bHVnaW4tdXRpbHMiICJeNy4xMi4xMyIKLQotIkBiYWJlbC9wbHVnaW4tdHJhbnNmb3JtLXJlc2Vy dmVkLXdvcmRzQF43LjE2LjciOgorIkBiYWJlbC9wbHVnaW4tdHJhbnNmb3JtLXJlc2VydmVkLXdv cmRzQF43LjEyLjEzIiwgIkBiYWJlbC9wbHVnaW4tdHJhbnNmb3JtLXJlc2VydmVkLXdvcmRzQF43 LjE2LjciOgogICB2ZXJzaW9uICI3LjE2LjciCiAgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5 Lnlhcm5wa2cuY29tL0BiYWJlbC9wbHVnaW4tdHJhbnNmb3JtLXJlc2VydmVkLXdvcmRzLy0vcGx1 Z2luLXRyYW5zZm9ybS1yZXNlcnZlZC13b3Jkcy03LjE2LjcudGd6IzFkNzk4ZTA3OGY3YzU5NThl ZWM5NTIwNTljNDYwYjIyMGE2M2Y1ODYiCiAgIGludGVncml0eSBzaGE1MTItS1F6ekRuWjloV1FC andpNWxwWTV2OXNobW02SVZHMFU5cEIxOHp2TXUyaTRIOTB4cFQ0Z21xd1BZc244ck9iaWFkWWUy TTBnbWdzaU9JRjVBLzJydGc9PQogICBkZXBlbmRlbmNpZXM6CiAgICAgIkBiYWJlbC9oZWxwZXIt cGx1Z2luLXV0aWxzIiAiXjcuMTYuNyIKIAotIkBiYWJlbC9wbHVnaW4tdHJhbnNmb3JtLXNob3J0 aGFuZC1wcm9wZXJ0aWVzQF43LjEyLjEzIjoKLSAgdmVyc2lvbiAiNy4xMi4xMyIKLSAgcmVzb2x2 ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vQGJhYmVsL3BsdWdpbi10cmFuc2Zvcm0t c2hvcnRoYW5kLXByb3BlcnRpZXMvLS9wbHVnaW4tdHJhbnNmb3JtLXNob3J0aGFuZC1wcm9wZXJ0 aWVzLTcuMTIuMTMudGd6I2RiNzU1NzMyYjcwYzUzOWQ1MDRjNjM5MGQ5Y2U5MGZlNjRhZmY3YWQi Ci0gIGludGVncml0eSBzaGE1MTIteHBMNDlwcVBuTHRmMHRWbHV1cXZ6V0lnTEVodVBwWnp2czJ5 YWJVSFNLUk5sTjdTY1lVN2FNbG1hdk9leVhKWktnWktRUkJsaDhySGJLaUpEcmFUU3c9PQotICBk ZXBlbmRlbmNpZXM6Ci0gICAgIkBiYWJlbC9oZWxwZXItcGx1Z2luLXV0aWxzIiAiXjcuMTIuMTMi Ci0KLSJAYmFiZWwvcGx1Z2luLXRyYW5zZm9ybS1zaG9ydGhhbmQtcHJvcGVydGllc0BeNy4xNi43 IjoKKyJAYmFiZWwvcGx1Z2luLXRyYW5zZm9ybS1zaG9ydGhhbmQtcHJvcGVydGllc0BeNy4xMi4x MyIsICJAYmFiZWwvcGx1Z2luLXRyYW5zZm9ybS1zaG9ydGhhbmQtcHJvcGVydGllc0BeNy4xNi43 IjoKICAgdmVyc2lvbiAiNy4xNi43IgogICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJu cGtnLmNvbS9AYmFiZWwvcGx1Z2luLXRyYW5zZm9ybS1zaG9ydGhhbmQtcHJvcGVydGllcy8tL3Bs dWdpbi10cmFuc2Zvcm0tc2hvcnRoYW5kLXByb3BlcnRpZXMtNy4xNi43LnRneiNlODU0OWFlNGFm Y2Y4MzgyZjcxMTc5NGMwYzdiNmI5MzRjNWZiZDJhIgogICBpbnRlZ3JpdHkgc2hhNTEyLWhhaDIr RkVub1JvQVRkSWIwNUlPWGYrNEd6WFlUcTc1VFZoSW4xUGV3aWhicHlyTldVdDJKYnVkS1FPRVRX dzZRcExlK0FJVXBKNU1WTFlUUWJlZVVnPT0KICAgZGVwZW5kZW5jaWVzOgogICAgICJAYmFiZWwv aGVscGVyLXBsdWdpbi11dGlscyIgIl43LjE2LjciCiAKLSJAYmFiZWwvcGx1Z2luLXRyYW5zZm9y bS1zcHJlYWRAXjcuMTMuMCI6Ci0gIHZlcnNpb24gIjcuMTMuMCIKLSAgcmVzb2x2ZWQgImh0dHBz Oi8vcmVnaXN0cnkueWFybnBrZy5jb20vQGJhYmVsL3BsdWdpbi10cmFuc2Zvcm0tc3ByZWFkLy0v cGx1Z2luLXRyYW5zZm9ybS1zcHJlYWQtNy4xMy4wLnRneiM4NDg4NzcxMGUyNzNjMTgxNWFjZTdh ZTQ1OWY2ZjQyYTVkMzFkNWZkIgotICBpbnRlZ3JpdHkgc2hhNTEyLVY2dmtpWGlqanpZZUZtUVRy M2RCeFB0WllMUGNVZlkzNERlYk9VMjdqSWwyTS9ZOEVnbTUySHc4MkNTampQcWQ1NEdUbEpzNXgr Q1I3SGVOcjI0Y2tnPT0KLSAgZGVwZW5kZW5jaWVzOgotICAgICJAYmFiZWwvaGVscGVyLXBsdWdp bi11dGlscyIgIl43LjEzLjAiCi0gICAgIkBiYWJlbC9oZWxwZXItc2tpcC10cmFuc3BhcmVudC1l eHByZXNzaW9uLXdyYXBwZXJzIiAiXjcuMTIuMSIKLQotIkBiYWJlbC9wbHVnaW4tdHJhbnNmb3Jt LXNwcmVhZEBeNy4xNi43IjoKKyJAYmFiZWwvcGx1Z2luLXRyYW5zZm9ybS1zcHJlYWRAXjcuMTMu MCIsICJAYmFiZWwvcGx1Z2luLXRyYW5zZm9ybS1zcHJlYWRAXjcuMTYuNyI6CiAgIHZlcnNpb24g IjcuMTYuNyIKICAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vQGJhYmVs L3BsdWdpbi10cmFuc2Zvcm0tc3ByZWFkLy0vcGx1Z2luLXRyYW5zZm9ybS1zcHJlYWQtNy4xNi43 LnRneiNhMzAzZTIxMjJmOWYxMmUwMTA1ZGFlZWRkMGYzMGZiMTk3ZDhmZjQ0IgogICBpbnRlZ3Jp dHkgc2hhNTEyLStwakpwZ0FuZ2I1M0wwaWFBNWdVLzFNTFhKSWZYY1llcExnWEIzZXNWUmY0ZnFt ajhmMmN4TTMvRkthSHNabXMwOGhGUUprRmNjRVd1SXBtNDI5VFhnPT0KQEAgLTE0MzcsODAgKzEx MTUsNDQgQEAKICAgICAiQGJhYmVsL2hlbHBlci1wbHVnaW4tdXRpbHMiICJeNy4xNi43IgogICAg ICJAYmFiZWwvaGVscGVyLXNraXAtdHJhbnNwYXJlbnQtZXhwcmVzc2lvbi13cmFwcGVycyIgIl43 LjE2LjAiCiAKLSJAYmFiZWwvcGx1Z2luLXRyYW5zZm9ybS1zdGlja3ktcmVnZXhAXjcuMTIuMTMi OgotICB2ZXJzaW9uICI3LjEyLjEzIgotICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJu cGtnLmNvbS9AYmFiZWwvcGx1Z2luLXRyYW5zZm9ybS1zdGlja3ktcmVnZXgvLS9wbHVnaW4tdHJh bnNmb3JtLXN0aWNreS1yZWdleC03LjEyLjEzLnRneiM3NjBmZmQ5MzZmYWNlNzNmODYwYWU2NDZm Yjg2ZWU4MmYzZDA2ZDFmIgotICBpbnRlZ3JpdHkgc2hhNTEyLUpjM0pTYWFXVDgrZnI3R1J2UVAw MmZLRHNZazRLL2xZd1dxMzhyL1VHZmF4bzg5YWp1ZDMyMU5IMjhLUlE3eHkxWWJjMFZVRTVQejhw c2pOTkRVZ2xnPT0KLSAgZGVwZW5kZW5jaWVzOgotICAgICJAYmFiZWwvaGVscGVyLXBsdWdpbi11 dGlscyIgIl43LjEyLjEzIgotCi0iQGJhYmVsL3BsdWdpbi10cmFuc2Zvcm0tc3RpY2t5LXJlZ2V4 QF43LjE2LjciOgorIkBiYWJlbC9wbHVnaW4tdHJhbnNmb3JtLXN0aWNreS1yZWdleEBeNy4xMi4x MyIsICJAYmFiZWwvcGx1Z2luLXRyYW5zZm9ybS1zdGlja3ktcmVnZXhAXjcuMTYuNyI6CiAgIHZl cnNpb24gIjcuMTYuNyIKICAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20v QGJhYmVsL3BsdWdpbi10cmFuc2Zvcm0tc3RpY2t5LXJlZ2V4Ly0vcGx1Z2luLXRyYW5zZm9ybS1z dGlja3ktcmVnZXgtNy4xNi43LnRneiNjODQ3NDFkNGY0YTM4MDcyYjlhMWUyZTNmZDU2ZDM1OTU1 MmU4NjYwIgogICBpbnRlZ3JpdHkgc2hhNTEyLU5KYTBCZC84N1FWNU5aWnpUdVpHNUJQSmpMWWFk ZVNaOWZPNm9PVW9MNGlReCs5RUV1dy9lRU05MlNyc1QxOVljMmpnQjF1MWhzanFEdEgwMmMzRHJ3 PT0KICAgZGVwZW5kZW5jaWVzOgotICAgICJAYmFiZWwvaGVscGVyLXBsdWdpbi11dGlscyIgIl43 LjE2LjciCi0KLSJAYmFiZWwvcGx1Z2luLXRyYW5zZm9ybS10ZW1wbGF0ZS1saXRlcmFsc0BeNy4x My4wIjoKLSAgdmVyc2lvbiAiNy4xMy4wIgotICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55 YXJucGtnLmNvbS9AYmFiZWwvcGx1Z2luLXRyYW5zZm9ybS10ZW1wbGF0ZS1saXRlcmFscy8tL3Bs dWdpbi10cmFuc2Zvcm0tdGVtcGxhdGUtbGl0ZXJhbHMtNy4xMy4wLnRneiNhMzYwNDkxMjc5Nzdh ZDk0NDM4ZGVlNzQ0MzU5OGQxY2VmZGY0MDlkIgotICBpbnRlZ3JpdHkgc2hhNTEyLWQ2N3VtVzZu bGZtcjFpZWhDY0J2NjllU1VTeVNrMUVzSVM4YVREWDRYbzlxYWpBaDZtWXRjbDRrSnJCa0dYdXha UEVnVnI3UlZmQXZOVzZZUWtkNE13PT0KLSAgZGVwZW5kZW5jaWVzOgotICAgICJAYmFiZWwvaGVs cGVyLXBsdWdpbi11dGlscyIgIl43LjEzLjAiCisgICAgIkBiYWJlbC9oZWxwZXItcGx1Z2luLXV0 aWxzIiAiXjcuMTYuNyIKIAotIkBiYWJlbC9wbHVnaW4tdHJhbnNmb3JtLXRlbXBsYXRlLWxpdGVy YWxzQF43LjE2LjciOgorIkBiYWJlbC9wbHVnaW4tdHJhbnNmb3JtLXRlbXBsYXRlLWxpdGVyYWxz QF43LjEzLjAiLCAiQGJhYmVsL3BsdWdpbi10cmFuc2Zvcm0tdGVtcGxhdGUtbGl0ZXJhbHNAXjcu MTYuNyI6CiAgIHZlcnNpb24gIjcuMTYuNyIKICAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnku eWFybnBrZy5jb20vQGJhYmVsL3BsdWdpbi10cmFuc2Zvcm0tdGVtcGxhdGUtbGl0ZXJhbHMvLS9w bHVnaW4tdHJhbnNmb3JtLXRlbXBsYXRlLWxpdGVyYWxzLTcuMTYuNy50Z3ojZjNkMWM0NWQyODk2 N2M4ZTgwZjUzNjY2ZmM5YzNlNTA2MTgyMTdhYiIKICAgaW50ZWdyaXR5IHNoYTUxMi1Wd2JrRERV ZWVubElqbWZOZURYL1YwYVdyUUgyUWlWeUp0d3ltVlFTekl0RkRUcHhmeUpoM0VWYVFpUzBySU4v Q3FiTEdyMFZjR211d3lUZFp0ZElzQT09CiAgIGRlcGVuZGVuY2llczoKICAgICAiQGJhYmVsL2hl bHBlci1wbHVnaW4tdXRpbHMiICJeNy4xNi43IgogCi0iQGJhYmVsL3BsdWdpbi10cmFuc2Zvcm0t dHlwZW9mLXN5bWJvbEBeNy4xMi4xMyI6Ci0gIHZlcnNpb24gIjcuMTIuMTMiCi0gIHJlc29sdmVk ICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL0BiYWJlbC9wbHVnaW4tdHJhbnNmb3JtLXR5 cGVvZi1zeW1ib2wvLS9wbHVnaW4tdHJhbnNmb3JtLXR5cGVvZi1zeW1ib2wtNy4xMi4xMy50Z3oj Nzg1ZGQ2N2ExZjJlYTU3OWQ5YzJiZTcyMmRlOGM4NGNiODVmNWE3ZiIKLSAgaW50ZWdyaXR5IHNo YTUxMi1lS3YvTG1VSnBNbnU0bnBnZnZzM0xpSGhKdWE1Zm8vQ3lzRU54YTQ1WUNRWFp3S25HQ1FL QWc4N2J2b3FTVzFmRlQrSEEzMmwwM1F4c204b3VUWTNaUT09Ci0gIGRlcGVuZGVuY2llczoKLSAg ICAiQGJhYmVsL2hlbHBlci1wbHVnaW4tdXRpbHMiICJeNy4xMi4xMyIKLQotIkBiYWJlbC9wbHVn aW4tdHJhbnNmb3JtLXR5cGVvZi1zeW1ib2xAXjcuMTYuNyI6CisiQGJhYmVsL3BsdWdpbi10cmFu c2Zvcm0tdHlwZW9mLXN5bWJvbEBeNy4xMi4xMyIsICJAYmFiZWwvcGx1Z2luLXRyYW5zZm9ybS10 eXBlb2Ytc3ltYm9sQF43LjE2LjciOgogICB2ZXJzaW9uICI3LjE2LjciCiAgIHJlc29sdmVkICJo dHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL0BiYWJlbC9wbHVnaW4tdHJhbnNmb3JtLXR5cGVv Zi1zeW1ib2wvLS9wbHVnaW4tdHJhbnNmb3JtLXR5cGVvZi1zeW1ib2wtNy4xNi43LnRneiM5Y2Ri ZTYyMjU4MmMyMTM2OGJkNDgyYjY2MGJhODdkNTU0NWQ0ZjdlIgogICBpbnRlZ3JpdHkgc2hhNTEy LXAyck9peENLUkp6cGc5SkI0Z2puRzRnaldrV2E4OVpvWVVubDlzbkoxY1dJY1RIL2h2eFpxZk8r V2pHNlQ4RFJCcGN0RW9sNWp3MU81ckE4Z2tDb2tRPT0KICAgZGVwZW5kZW5jaWVzOgogICAgICJA YmFiZWwvaGVscGVyLXBsdWdpbi11dGlscyIgIl43LjE2LjciCiAKLSJAYmFiZWwvcGx1Z2luLXRy YW5zZm9ybS10eXBlc2NyaXB0QF43LjE0LjUiOgotICB2ZXJzaW9uICI3LjE0LjYiCi0gIHJlc29s dmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL0BiYWJlbC9wbHVnaW4tdHJhbnNmb3Jt LXR5cGVzY3JpcHQvLS9wbHVnaW4tdHJhbnNmb3JtLXR5cGVzY3JpcHQtNy4xNC42LnRneiM2ZTlj MmQ5OGRhMjUwN2ViZTBhODgzYjEwMGNkZTNjNzI3OWRmMzZjIgotICBpbnRlZ3JpdHkgc2hhNTEy LVhsVGRCcTdBd3I0RllJenFobVlZODBXTjBWMGF6Rjc0RE1QeUZxVkhCdmY4MVpVZ2M0WDdaT3B4 Nk84ZUxESzZpTTVjQ1F6ZXlKdzB5blRhZWZpeFJBPT0KKyJAYmFiZWwvcGx1Z2luLXRyYW5zZm9y bS10eXBlc2NyaXB0QF43LjE2LjAiOgorICB2ZXJzaW9uICI3LjE2LjEiCisgIHJlc29sdmVkICJo dHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL0BiYWJlbC9wbHVnaW4tdHJhbnNmb3JtLXR5cGVz Y3JpcHQvLS9wbHVnaW4tdHJhbnNmb3JtLXR5cGVzY3JpcHQtNy4xNi4xLnRneiNjYzA2NzBiMjgy MmIwMzM4MzU1YmMxYjNkMjI0NmE0MmI4MTY2NDA5IgorICBpbnRlZ3JpdHkgc2hhNTEyLU5PNFhv cnlCbmcwNmpqdy9xV0VVMkxoY0xKcjF0V2tocE1hbS9INGVhcy9DREtNWC9iMi9ZbGI2RUkyNTZZ NytGVlBDYXd3U00xcnJKTk9wRGl6K0xnPT0KICAgZGVwZW5kZW5jaWVzOgotICAgICJAYmFiZWwv aGVscGVyLWNyZWF0ZS1jbGFzcy1mZWF0dXJlcy1wbHVnaW4iICJeNy4xNC42IgorICAgICJAYmFi ZWwvaGVscGVyLWNyZWF0ZS1jbGFzcy1mZWF0dXJlcy1wbHVnaW4iICJeNy4xNi4wIgogICAgICJA YmFiZWwvaGVscGVyLXBsdWdpbi11dGlscyIgIl43LjE0LjUiCi0gICAgIkBiYWJlbC9wbHVnaW4t c3ludGF4LXR5cGVzY3JpcHQiICJeNy4xNC41IgotCi0iQGJhYmVsL3BsdWdpbi10cmFuc2Zvcm0t dW5pY29kZS1lc2NhcGVzQF43LjEyLjEzIjoKLSAgdmVyc2lvbiAiNy4xMi4xMyIKLSAgcmVzb2x2 ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vQGJhYmVsL3BsdWdpbi10cmFuc2Zvcm0t dW5pY29kZS1lc2NhcGVzLy0vcGx1Z2luLXRyYW5zZm9ybS11bmljb2RlLWVzY2FwZXMtNy4xMi4x My50Z3ojODQwY2VkM2I4MTZkM2I1MTI3ZGQxZDEyZGNlZGM1ZGVhZDFhNWU3NCIKLSAgaW50ZWdy aXR5IHNoYTUxMi0wYkhFa2R3Si9zTi9pa0JIZlNtT1hQeXBOL2JlaUdxam8rbzQvNUsrdnhFRk5Q UlBkSW1odmlQYWtNS0c0eDk2bDg1ZW1vYTBaNmNEZmxzZEJ1c1pidz09Ci0gIGRlcGVuZGVuY2ll czoKLSAgICAiQGJhYmVsL2hlbHBlci1wbHVnaW4tdXRpbHMiICJeNy4xMi4xMyIKKyAgICAiQGJh YmVsL3BsdWdpbi1zeW50YXgtdHlwZXNjcmlwdCIgIl43LjE2LjAiCiAKLSJAYmFiZWwvcGx1Z2lu LXRyYW5zZm9ybS11bmljb2RlLWVzY2FwZXNAXjcuMTYuNyI6CisiQGJhYmVsL3BsdWdpbi10cmFu c2Zvcm0tdW5pY29kZS1lc2NhcGVzQF43LjEyLjEzIiwgIkBiYWJlbC9wbHVnaW4tdHJhbnNmb3Jt LXVuaWNvZGUtZXNjYXBlc0BeNy4xNi43IjoKICAgdmVyc2lvbiAiNy4xNi43IgogICByZXNvbHZl ZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9AYmFiZWwvcGx1Z2luLXRyYW5zZm9ybS11 bmljb2RlLWVzY2FwZXMvLS9wbHVnaW4tdHJhbnNmb3JtLXVuaWNvZGUtZXNjYXBlcy03LjE2Ljcu dGd6I2RhODcxN2RlN2IzMjg3YTJjNmQ2NTk3NTBjOTY0ZjMwMmIzMWVjZTMiCiAgIGludGVncml0 eSBzaGE1MTItVEFWNUlHYWhJejN5WjkvSGZ2MzVUVjJ4RW0ra2FCRGFaUUNuMlMvaEc5L0NaMERr dHhKdjllS2ZQYzd5WUN2T1lSNEpHeDFoOEMramNTT3ZnYWFJL1E9PQogICBkZXBlbmRlbmNpZXM6 CiAgICAgIkBiYWJlbC9oZWxwZXItcGx1Z2luLXV0aWxzIiAiXjcuMTYuNyIKIAotIkBiYWJlbC9w bHVnaW4tdHJhbnNmb3JtLXVuaWNvZGUtcmVnZXhAXjcuMTIuMTMiOgotICB2ZXJzaW9uICI3LjEy LjEzIgotICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9AYmFiZWwvcGx1 Z2luLXRyYW5zZm9ybS11bmljb2RlLXJlZ2V4Ly0vcGx1Z2luLXRyYW5zZm9ybS11bmljb2RlLXJl Z2V4LTcuMTIuMTMudGd6I2I1MjUyMTY4NTgwNGUxNTViMTIwMmU4M2ZjMTg4ZDM0YmI3MGY1YWMi Ci0gIGludGVncml0eSBzaGE1MTItbURSelNOWTcvem9wd2lzUFo1a005WEtDZmhjaHFJWXdBS1JF UnRFbmhZc2NaQjc5VlJla3VSU29ZYk4wK0tWZTN5OCtxMWg2QTRzdlh0UDdOK1VvQ0E9PQotICBk ZXBlbmRlbmNpZXM6Ci0gICAgIkBiYWJlbC9oZWxwZXItY3JlYXRlLXJlZ2V4cC1mZWF0dXJlcy1w bHVnaW4iICJeNy4xMi4xMyIKLSAgICAiQGJhYmVsL2hlbHBlci1wbHVnaW4tdXRpbHMiICJeNy4x Mi4xMyIKLQotIkBiYWJlbC9wbHVnaW4tdHJhbnNmb3JtLXVuaWNvZGUtcmVnZXhAXjcuMTYuNyI6 CisiQGJhYmVsL3BsdWdpbi10cmFuc2Zvcm0tdW5pY29kZS1yZWdleEBeNy4xMi4xMyIsICJAYmFi ZWwvcGx1Z2luLXRyYW5zZm9ybS11bmljb2RlLXJlZ2V4QF43LjE2LjciOgogICB2ZXJzaW9uICI3 LjE2LjciCiAgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL0BiYWJlbC9w bHVnaW4tdHJhbnNmb3JtLXVuaWNvZGUtcmVnZXgvLS9wbHVnaW4tdHJhbnNmb3JtLXVuaWNvZGUt cmVnZXgtNy4xNi43LnRneiMwZjdhYTRhNTAxMTk4OTc2ZTI1ZTgyNzAyNTc0YzM0Y2ZlYmU5ZWYy IgogICBpbnRlZ3JpdHkgc2hhNTEyLW9DNXRZWUt3NTZITzc1S1pWTFErUi9ObDNIcm85a2Y4aUcw aFhvYUhQN3RqQXlDcHZxQmlTTmU2dkdyWm5pMVo2TWdnbVVPQzZBN1ZQN0FWbXcyMjVRPT0KQEAg LTE2NzIsMTggKzEzMTQsNyBAQAogICAgIGNvcmUtanMtY29tcGF0ICJeMy4yMC4yIgogICAgIHNl bXZlciAiXjYuMy4wIgogCi0iQGJhYmVsL3ByZXNldC1tb2R1bGVzQF4wLjEuNCI6Ci0gIHZlcnNp b24gIjAuMS40IgotICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9AYmFi ZWwvcHJlc2V0LW1vZHVsZXMvLS9wcmVzZXQtbW9kdWxlcy0wLjEuNC50Z3ojMzYyZjJiNjhjNjYy ODQyOTcwZmRiNWUyNTRmZmM4ZmMxYzJlNDE1ZSIKLSAgaW50ZWdyaXR5IHNoYTUxMi1KMzZOaHdu ZmR6cG1INDFNMURybmtrZ0FxaFphcXIvTkJkUGZRNjc3bUx6bGFYbytvRGl2MWRleUNEdGdBaHo4 cDMyOG90ZG9iMER1Nyt4Z0hHWmJLZz09Ci0gIGRlcGVuZGVuY2llczoKLSAgICAiQGJhYmVsL2hl bHBlci1wbHVnaW4tdXRpbHMiICJeNy4wLjAiCi0gICAgIkBiYWJlbC9wbHVnaW4tcHJvcG9zYWwt dW5pY29kZS1wcm9wZXJ0eS1yZWdleCIgIl43LjQuNCIKLSAgICAiQGJhYmVsL3BsdWdpbi10cmFu c2Zvcm0tZG90YWxsLXJlZ2V4IiAiXjcuNC40IgotICAgICJAYmFiZWwvdHlwZXMiICJeNy40LjQi Ci0gICAgZXN1dGlscyAiXjIuMC4yIgotCi0iQGJhYmVsL3ByZXNldC1tb2R1bGVzQF4wLjEuNSI6 CisiQGJhYmVsL3ByZXNldC1tb2R1bGVzQF4wLjEuNCIsICJAYmFiZWwvcHJlc2V0LW1vZHVsZXNA XjAuMS41IjoKICAgdmVyc2lvbiAiMC4xLjUiCiAgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5 Lnlhcm5wa2cuY29tL0BiYWJlbC9wcmVzZXQtbW9kdWxlcy8tL3ByZXNldC1tb2R1bGVzLTAuMS41 LnRneiNlZjkzOWQ2ZTdmMjY4ODI3ZTE4NDE2MzhkYzZmZjk1NTE1ZTExNWQ5IgogICBpbnRlZ3Jp dHkgc2hhNTEyLUE1N3RoNllSRzdvUjNjcS95dC9ZODRNdkdnRTBlSkcyRjFKTGhLdXlHK2pGeEVn cmQvSEFNSmF0aUZ0bU9pWnVyeiswRGtydmJoZUNMYVY1ZjJKZmpBPT0KQEAgLTE3MTksMTggKzEz NTAsMTggQEAKICAgICAiQGJhYmVsL3BsdWdpbi10cmFuc2Zvcm0tcmVhY3QtcHVyZS1hbm5vdGF0 aW9ucyIgIl43LjE2LjciCiAKICJAYmFiZWwvcHJlc2V0LXR5cGVzY3JpcHRAXjcuOC4zIjoKLSAg dmVyc2lvbiAiNy4xNC41IgotICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNv bS9AYmFiZWwvcHJlc2V0LXR5cGVzY3JpcHQvLS9wcmVzZXQtdHlwZXNjcmlwdC03LjE0LjUudGd6 I2FhOThkZTExOWNmOTg1MmI3OTUxMWYxOWU3ZjQ0YTJkMzc5YmNjZTAiCi0gIGludGVncml0eSBz aGE1MTItdTR6TzZDZGJSS2JTOVR5cE1xcmxHSDdzZDJUQUpwcFp3bjNjL1pSTGVPL3dHc2JkZHhn YlBEVVpWTnJpZTNKV1lMUTl2cGluZUtsc3JXRnZPNlB3a3c9PQorICB2ZXJzaW9uICI3LjE2LjAi CisgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL0BiYWJlbC9wcmVzZXQt dHlwZXNjcmlwdC8tL3ByZXNldC10eXBlc2NyaXB0LTcuMTYuMC50Z3ojYjBiNGYxMDViODU1ZmIz ZDYzMWVjMDM2Y2RjOWQxZmZkMWZhNWVhYyIKKyAgaW50ZWdyaXR5IHNoYTUxMi10eGVnZHJaWWdP OURsUGJ2KzlRT1ZwTW5LYk90ZXpzTEhXc25zUkY0QWpiU0lzVmF1anJxMXFnOEhLMG14UXBXdjBq bmVqdDB5RW9XMXVXcHZickRUZz09CiAgIGRlcGVuZGVuY2llczoKICAgICAiQGJhYmVsL2hlbHBl ci1wbHVnaW4tdXRpbHMiICJeNy4xNC41IgogICAgICJAYmFiZWwvaGVscGVyLXZhbGlkYXRvci1v cHRpb24iICJeNy4xNC41IgotICAgICJAYmFiZWwvcGx1Z2luLXRyYW5zZm9ybS10eXBlc2NyaXB0 IiAiXjcuMTQuNSIKKyAgICAiQGJhYmVsL3BsdWdpbi10cmFuc2Zvcm0tdHlwZXNjcmlwdCIgIl43 LjE2LjAiCiAKICJAYmFiZWwvcnVudGltZUBeNy4wLjAiLCAiQGJhYmVsL3J1bnRpbWVAXjcuMTIu MCIsICJAYmFiZWwvcnVudGltZUBeNy4xMy4xMCIsICJAYmFiZWwvcnVudGltZUBeNy4zLjEiLCAi QGJhYmVsL3J1bnRpbWVAXjcuNC40IiwgIkBiYWJlbC9ydW50aW1lQF43LjUuNSIsICJAYmFiZWwv cnVudGltZUBeNy42LjAiLCAiQGJhYmVsL3J1bnRpbWVAXjcuNy4yIiwgIkBiYWJlbC9ydW50aW1l QF43LjguMyIsICJAYmFiZWwvcnVudGltZUBeNy44LjQiLCAiQGJhYmVsL3J1bnRpbWVAXjcuOC43 IjoKLSAgdmVyc2lvbiAiNy4xNC4wIgotICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJu cGtnLmNvbS9AYmFiZWwvcnVudGltZS8tL3J1bnRpbWUtNy4xNC4wLnRneiM0Njc5NGJjMjBiNjEy YzVmNzVlNjJkZDA3MWUyNGRmZDk1ZjFjYmU2IgotICBpbnRlZ3JpdHkgc2hhNTEyLUpFTGt2by9E bHBOZEo3ZGx5dy9lWTdFMHN1eTVpNUdRSCtWbHhhcTFuc05KK0g3ZjRWdHYzak1lQ0VnUmhaWlFG WFRqbGRZZlFndjJxbU02TTF2NXdBPT0KKyAgdmVyc2lvbiAiNy4xNi4wIgorICByZXNvbHZlZCAi aHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9AYmFiZWwvcnVudGltZS8tL3J1bnRpbWUtNy4x Ni4wLnRneiNlMjdiOTc3ZjJlMjA4OGJhMjQ3NDhiZjk5YjVlMWRlY2U2NGU0ZjBiIgorICBpbnRl Z3JpdHkgc2hhNTEyLU5odDhMME84WUNrdG1zRFY2RnFGdWU3dlFMUngzSGIwQjM3bFM1eTBqRFJx UnhsQkc0d0lKSG5mOS9iZ1NFMlV5aXBLRkEwMVl0UytucFJkVFdCVXl3PT0KICAgZGVwZW5kZW5j aWVzOgogICAgIHJlZ2VuZXJhdG9yLXJ1bnRpbWUgIl4wLjEzLjQiCiAKQEAgLTE3NDEsNyArMTM3 Miw3IEBACiAgIGRlcGVuZGVuY2llczoKICAgICByZWdlbmVyYXRvci1ydW50aW1lICJeMC4xMy40 IgogCi0iQGJhYmVsL3RlbXBsYXRlQF43LjEyLjEzIiwgIkBiYWJlbC90ZW1wbGF0ZUBeNy4xNC41 IjoKKyJAYmFiZWwvdGVtcGxhdGVAXjcuMTIuMTMiOgogICB2ZXJzaW9uICI3LjE0LjUiCiAgIHJl c29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL0BiYWJlbC90ZW1wbGF0ZS8tL3Rl bXBsYXRlLTcuMTQuNS50Z3ojYTliYzlkOGIzMzM1NGZmNmU1NWE5YzYwZDExMDkyMDBhNjg5NzRm NCIKICAgaW50ZWdyaXR5IHNoYTUxMi02WjNQbzg1c2Z4UkdhY2hMVUxVaE9tdkFhT283eEN2cUdR dHhJTmFpMm1FR1BGbTZwUTR6NVFJbkZuVXJScGZvU1Y2MEJuanlGNUYzYysxNWZ4RlYxZz09CkBA IC0xNzUwLDcgKzEzODEsNyBAQAogICAgICJAYmFiZWwvcGFyc2VyIiAiXjcuMTQuNSIKICAgICAi QGJhYmVsL3R5cGVzIiAiXjcuMTQuNSIKIAotIkBiYWJlbC90ZW1wbGF0ZUBeNy4xNi43IjoKKyJA YmFiZWwvdGVtcGxhdGVAXjcuMTQuNSIsICJAYmFiZWwvdGVtcGxhdGVAXjcuMTYuNyI6CiAgIHZl cnNpb24gIjcuMTYuNyIKICAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20v QGJhYmVsL3RlbXBsYXRlLy0vdGVtcGxhdGUtNy4xNi43LnRneiM4ZDEyNmM4NzAxZmRlNGQ2NmIy NjRiM2ViYTNkOTZmMDc2NjZkMTU1IgogICBpbnRlZ3JpdHkgc2hhNTEyLUk4ai94OGtIVXJiWVJU VXhYcnJNYmZDYTdqeGtFN3RacmUzOXgza2pyOWh2STgyY0sxRmZxTHlnb3RjV041a2RQR1djTGRX TUhwU0JhdnNlNXRXdzN3PT0KQEAgLTE3NTksNyArMTM5MCwxNiBAQAogICAgICJAYmFiZWwvcGFy c2VyIiAiXjcuMTYuNyIKICAgICAiQGJhYmVsL3R5cGVzIiAiXjcuMTYuNyIKIAotIkBiYWJlbC90 cmF2ZXJzZUBeNy4xMy4wIiwgIkBiYWJlbC90cmF2ZXJzZUBeNy4xNC41IiwgIkBiYWJlbC90cmF2 ZXJzZUBeNy40LjUiOgorIkBiYWJlbC90ZW1wbGF0ZUBeNy4xNi4wIjoKKyAgdmVyc2lvbiAiNy4x Ni4wIgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9AYmFiZWwvdGVt cGxhdGUvLS90ZW1wbGF0ZS03LjE2LjAudGd6I2QxNmEzNWViZjRjZDc0ZTIwMjA4MzM1NmZhYjIx ZGQ4OTM2M2RkZDYiCisgIGludGVncml0eSBzaGE1MTItTW5aZHBGRC9aZFloWHdpdW5NcXFneVp5 dWNhWXNiTDBJcmpvR2phVmhHaWx6K3g4WUIrK2tSZnlnU09JajF5T3RXS1BseDdOQnArOUkxUlFT Z3NkNUE9PQorICBkZXBlbmRlbmNpZXM6CisgICAgIkBiYWJlbC9jb2RlLWZyYW1lIiAiXjcuMTYu MCIKKyAgICAiQGJhYmVsL3BhcnNlciIgIl43LjE2LjAiCisgICAgIkBiYWJlbC90eXBlcyIgIl43 LjE2LjAiCisKKyJAYmFiZWwvdHJhdmVyc2VAXjcuMTMuMCIsICJAYmFiZWwvdHJhdmVyc2VAXjcu NC41IjoKICAgdmVyc2lvbiAiNy4xNC43IgogICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55 YXJucGtnLmNvbS9AYmFiZWwvdHJhdmVyc2UvLS90cmF2ZXJzZS03LjE0LjcudGd6IzY0MDA3Yzk3 NzRjZmRjM2FiZDIzYjA3ODBiYzE4YTNjZTM2MzE3NTMiCiAgIGludGVncml0eSBzaGE1MTItOXZE cjVOekh1Mjd3Z3dlanVLTDdrSU9tNGJ3RXRhUFE0WjZjcENtalN1YVJxcEgvN3hjNHFjR0VzY3dN cWxrd2djWGw2TXZxb0FqWmtRMjR1U2RJWlE9PQpAQCAtMTc3NCw2ICsxNDE0LDIxIEBACiAgICAg ZGVidWcgIl40LjEuMCIKICAgICBnbG9iYWxzICJeMTEuMS4wIgogCisiQGJhYmVsL3RyYXZlcnNl QF43LjE2LjAiOgorICB2ZXJzaW9uICI3LjE2LjAiCisgIHJlc29sdmVkICJodHRwczovL3JlZ2lz dHJ5Lnlhcm5wa2cuY29tL0BiYWJlbC90cmF2ZXJzZS8tL3RyYXZlcnNlLTcuMTYuMC50Z3ojOTY1 ZGY2YzZiZmMwYTk1OGMxZTczOTI4NGQzYzlmYTRhNmUzYzQ1YiIKKyAgaW50ZWdyaXR5IHNoYTUx Mi1xUTg0aklzMWFSUXhhR2F4U3lzSUk5VHVEYWd1WjV5VnJFdUMwQk4ydmNQbGFsd2ZMb3ZWbUNq YkZEUEVDUFhjWU0vd0x2TkZmcDh1RE9saUx4SW9VUT09CisgIGRlcGVuZGVuY2llczoKKyAgICAi QGJhYmVsL2NvZGUtZnJhbWUiICJeNy4xNi4wIgorICAgICJAYmFiZWwvZ2VuZXJhdG9yIiAiXjcu MTYuMCIKKyAgICAiQGJhYmVsL2hlbHBlci1mdW5jdGlvbi1uYW1lIiAiXjcuMTYuMCIKKyAgICAi QGJhYmVsL2hlbHBlci1ob2lzdC12YXJpYWJsZXMiICJeNy4xNi4wIgorICAgICJAYmFiZWwvaGVs cGVyLXNwbGl0LWV4cG9ydC1kZWNsYXJhdGlvbiIgIl43LjE2LjAiCisgICAgIkBiYWJlbC9wYXJz ZXIiICJeNy4xNi4wIgorICAgICJAYmFiZWwvdHlwZXMiICJeNy4xNi4wIgorICAgIGRlYnVnICJe NC4xLjAiCisgICAgZ2xvYmFscyAiXjExLjEuMCIKKwogIkBiYWJlbC90cmF2ZXJzZUBeNy4xNi43 IiwgIkBiYWJlbC90cmF2ZXJzZUBeNy4xNi44IiwgIkBiYWJlbC90cmF2ZXJzZUBeNy4xNy4wIjoK ICAgdmVyc2lvbiAiNy4xNy4wIgogICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtn LmNvbS9AYmFiZWwvdHJhdmVyc2UvLS90cmF2ZXJzZS03LjE3LjAudGd6IzMxNDNlNTA2Njc5NjQw OGNjYzg4MGEzM2VjZDMxODRmM2U3NWNkMzAiCkBAIC0xNzkwLDE1ICsxNDQ1LDcgQEAKICAgICBk ZWJ1ZyAiXjQuMS4wIgogICAgIGdsb2JhbHMgIl4xMS4xLjAiCiAKLSJAYmFiZWwvdHlwZXNAXjcu MTIuMSIsICJAYmFiZWwvdHlwZXNAXjcuMTIuMTMiLCAiQGJhYmVsL3R5cGVzQF43LjEzLjAiLCAi QGJhYmVsL3R5cGVzQF43LjEzLjEyIiwgIkBiYWJlbC90eXBlc0BeNy4xNC41IiwgIkBiYWJlbC90 eXBlc0BeNy40LjQiOgotICB2ZXJzaW9uICI3LjE1LjQiCi0gIHJlc29sdmVkICJodHRwczovL3Jl Z2lzdHJ5Lnlhcm5wa2cuY29tL0BiYWJlbC90eXBlcy8tL3R5cGVzLTcuMTUuNC50Z3ojNzRlZWI4 NmRiZDY3NDhkMjc0MTM5NjU1N2I5ODYwZTU3ZmNlMGEwZCIKLSAgaW50ZWdyaXR5IHNoYTUxMi0w ZjFISkZ1R21tYnJLVENadGJtM2NVK2IvQXFkRVlrNXRvajVpUXVyNTh4a1ZNbFMwSldhS3hUQlNt Q1hkNDd1aU43dmJjb3pBdXBtNk12czgwR05odz09Ci0gIGRlcGVuZGVuY2llczoKLSAgICAiQGJh YmVsL2hlbHBlci12YWxpZGF0b3ItaWRlbnRpZmllciIgIl43LjE0LjkiCi0gICAgdG8tZmFzdC1w cm9wZXJ0aWVzICJeMi4wLjAiCi0KLSJAYmFiZWwvdHlwZXNAXjcuMTIuNiIsICJAYmFiZWwvdHlw ZXNAXjcuMTYuMCIsICJAYmFiZWwvdHlwZXNAXjcuMTYuNyIsICJAYmFiZWwvdHlwZXNAXjcuMTYu OCIsICJAYmFiZWwvdHlwZXNAXjcuMTcuMCI6CisiQGJhYmVsL3R5cGVzQF43LjEyLjYiLCAiQGJh YmVsL3R5cGVzQF43LjEzLjEyIiwgIkBiYWJlbC90eXBlc0BeNy4xNi4wIiwgIkBiYWJlbC90eXBl c0BeNy4xNi43IiwgIkBiYWJlbC90eXBlc0BeNy4xNi44IiwgIkBiYWJlbC90eXBlc0BeNy4xNy4w IjoKICAgdmVyc2lvbiAiNy4xNy4wIgogICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJu cGtnLmNvbS9AYmFiZWwvdHlwZXMvLS90eXBlcy03LjE3LjAudGd6I2E4MjZlMzY4YmNjYjZiM2Q4 NGFjZDc2YWNhZDVjMGQ4NzM0MjM5MGIiCiAgIGludGVncml0eSBzaGE1MTItVG1LU05PNEQ1cnpo TDVialdGY1ZISExFVHpmUS9BbWJLcEtQT1NqbFAwV29IWjZMOTExZmdvT0tZNEFscC9lbXpHNGNI SmR5TjQ5enBna2JYRkVISHc9PQpAQCAtMTgwNiw2ICsxNDUzLDE0IEBACiAgICAgIkBiYWJlbC9o ZWxwZXItdmFsaWRhdG9yLWlkZW50aWZpZXIiICJeNy4xNi43IgogICAgIHRvLWZhc3QtcHJvcGVy dGllcyAiXjIuMC4wIgogCisiQGJhYmVsL3R5cGVzQF43LjEzLjAiLCAiQGJhYmVsL3R5cGVzQF43 LjE0LjUiLCAiQGJhYmVsL3R5cGVzQF43LjQuNCI6CisgIHZlcnNpb24gIjcuMTUuNCIKKyAgcmVz b2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vQGJhYmVsL3R5cGVzLy0vdHlwZXMt Ny4xNS40LnRneiM3NGVlYjg2ZGJkNjc0OGQyNzQxMzk2NTU3Yjk4NjBlNTdmY2UwYTBkIgorICBp bnRlZ3JpdHkgc2hhNTEyLTBmMUhKRnVHbW1icktUQ1p0Ym0zY1UrYi9BcWRFWWs1dG9qNWlRdXI1 OHhrVk1sUzBKV2FLeFRCU21DWGQ0N3VpTjd2YmNvekF1cG02TXZzODBHTmh3PT0KKyAgZGVwZW5k ZW5jaWVzOgorICAgICJAYmFiZWwvaGVscGVyLXZhbGlkYXRvci1pZGVudGlmaWVyIiAiXjcuMTQu OSIKKyAgICB0by1mYXN0LXByb3BlcnRpZXMgIl4yLjAuMCIKKwogIkBjb2xvcnMvY29sb3JzQDEu NS4wIjoKICAgdmVyc2lvbiAiMS41LjAiCiAgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlh cm5wa2cuY29tL0Bjb2xvcnMvY29sb3JzLy0vY29sb3JzLTEuNS4wLnRneiNiYjUwNDU3OWMxY2Fl OTIzZTY1NzZhNGY1ZGE0M2QyNWY5N2JkYmQ5IgpAQCAtMTgyNCw5ICsxNDc5LDkgQEAKICAgICAi QGRhdGUtaW8vY29yZSIgIl4xLjMuMTMiCiAKICJAZGlzY292ZXJ5anMvanNvbi1leHRAXjAuNS4w IjoKLSAgdmVyc2lvbiAiMC41LjMiCi0gIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5w a2cuY29tL0BkaXNjb3Zlcnlqcy9qc29uLWV4dC8tL2pzb24tZXh0LTAuNS4zLnRneiM5MDQyMGY5 ZjljNmQzOTg3ZjE3NmExOWE3ZDhlNzY0MjcxYTJmNTVkIgotICBpbnRlZ3JpdHkgc2hhNTEyLUZ4 dCtBZlhnak1vaW4ybWFQSVl6RlpuUWpBWGpBTDBQSHNjTTVwUlR0YXRGcUIrdlp4QU05dExwMk9w dG51dzNRT1FDNDBqVE5lR1lGT012eWY3djlnPT0KKyAgdmVyc2lvbiAiMC41LjUiCisgIHJlc29s dmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL0BkaXNjb3Zlcnlqcy9qc29uLWV4dC8t L2pzb24tZXh0LTAuNS41LnRneiM5MjgzYzljZTViMjg5YTNjNGY2MWMxMjc1NzQ2OWU1OTM3N2Y4 MWYzIgorICBpbnRlZ3JpdHkgc2hhNTEyLTZuRmtma21TZVYvcnFTYVM0b1dIZ21wbll3MTk0ZjZo bVdGNWlzNmIwSjFuYUpab2lEME5UYzlBaVV3UEh2V3Nvd2tqdUhFckNaVDF3YTBqZytCTElBPT0K IAogIkBlbW90aW9uL2NhY2hlQF4xMC4wLjI3IjoKICAgdmVyc2lvbiAiMTAuMC4yOSIKQEAgLTE4 MzgsMTYgKzE0OTMsMTYgQEAKICAgICAiQGVtb3Rpb24vdXRpbHMiICIwLjExLjMiCiAgICAgIkBl bW90aW9uL3dlYWstbWVtb2l6ZSIgIjAuMi41IgogCi0iQGVtb3Rpb24vY2FjaGVAXjExLjQuMCI6 Ci0gIHZlcnNpb24gIjExLjQuMCIKLSAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBr Zy5jb20vQGVtb3Rpb24vY2FjaGUvLS9jYWNoZS0xMS40LjAudGd6IzI5M2ZjOWQ5YTdhMzhiOWFh ZDhlOTMzN2U1MDE0MzY2YzNiMDlhYzAiCi0gIGludGVncml0eSBzaGE1MTItWng3MGJqRTdMRXJS TzlPYVpyaGYyMlF5ZTF5NEY3aURsK0lUamV0MEoraStCODhQckFPQmtLdmFBV2h4c1pmNzJ0RExh andDZ2ZDakoyZHZINzdDM2c9PQorIkBlbW90aW9uL2NhY2hlQF4xMS40LjAiLCAiQGVtb3Rpb24v Y2FjaGVAXjExLjUuMCI6CisgIHZlcnNpb24gIjExLjUuMCIKKyAgcmVzb2x2ZWQgImh0dHBzOi8v cmVnaXN0cnkueWFybnBrZy5jb20vQGVtb3Rpb24vY2FjaGUvLS9jYWNoZS0xMS41LjAudGd6I2E1 ZWI3OGNiZWY4MTYzOTM5ZWUzNDVlM2RkZjBhZjIxN2I4NDVlNjIiCisgIGludGVncml0eSBzaGE1 MTItbUFaNVFScExyaUJ0YWovazJxeXJYd2NrNnllb3oxVjVsTXQvamZqNmlnV1UzNXlZbE5LczJM emlYVmd2SDgxZ25KWis5UVFOR2VsU3NudW9BeTZ1SXc9PQogICBkZXBlbmRlbmNpZXM6CiAgICAg IkBlbW90aW9uL21lbW9pemUiICJeMC43LjQiCi0gICAgIkBlbW90aW9uL3NoZWV0IiAiXjEuMC4w IgorICAgICJAZW1vdGlvbi9zaGVldCIgIl4xLjAuMyIKICAgICAiQGVtb3Rpb24vdXRpbHMiICJe MS4wLjAiCiAgICAgIkBlbW90aW9uL3dlYWstbWVtb2l6ZSIgIl4wLjIuNSIKLSAgICBzdHlsaXMg Il40LjAuMyIKKyAgICBzdHlsaXMgIl40LjAuMTAiCiAKICJAZW1vdGlvbi9jb3JlQF4xMC4wLjE0 IjoKICAgdmVyc2lvbiAiMTAuMS4xIgpAQCAtMTg5MywxNCArMTU0OCwxNCBAQAogICBpbnRlZ3Jp dHkgc2hhNTEyLWlnWDlhMzdEUjJaUEdZdFY2c3VaNndocjhwVEZ0eUhMM0svb0xVb3R4cFNWTzJB U2Fwcm1BZTJEa3E3dEJvN0NSWTdNTURyQWE5bnVRUDkvWUc4RnhRPT0KIAogIkBlbW90aW9uL3Jl YWN0QF4xMS4xLjEiLCAiQGVtb3Rpb24vcmVhY3RAXjExLjEuNSI6Ci0gIHZlcnNpb24gIjExLjQu MCIKLSAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vQGVtb3Rpb24vcmVh Y3QvLS9yZWFjdC0xMS40LjAudGd6IzI0NjVhZDdiMDczYTY5MTQwOWI4OGRmZDk2ZGMxNzA5N2Rk YWQ5YjciCi0gIGludGVncml0eSBzaGE1MTItNFhrbFdzbDlCZHRhdExvSnBTanVzWGhwS3Y5WVZ0 ZVlLaDloUEtQMVN4bCttc3dFRm9VZTBXdG10V2p4RWprQTUxRFEyUVJNQ05PdktjU2xDUTdpdmc9 PQorICB2ZXJzaW9uICIxMS41LjAiCisgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5w a2cuY29tL0BlbW90aW9uL3JlYWN0Ly0vcmVhY3QtMTEuNS4wLnRneiMxOWI1NzcxYmJmYmRhNWU4 NTE3ZTk0OGEyZDkwNjQ4MTBmMDAyMmJkIgorICBpbnRlZ3JpdHkgc2hhNTEyLU1ZcS9ienAzclli ZWU0RU1CT1JDbjRkdVBRZmdwaUVCNVh6clpFQm5VWkFMODBRZGZyN0NFdi9UODBqd2FUbC9kblpt dDlTblRhOE5rVHJ3Rk5wTGx3PT0KICAgZGVwZW5kZW5jaWVzOgogICAgICJAYmFiZWwvcnVudGlt ZSIgIl43LjEzLjEwIgotICAgICJAZW1vdGlvbi9jYWNoZSIgIl4xMS40LjAiCisgICAgIkBlbW90 aW9uL2NhY2hlIiAiXjExLjUuMCIKICAgICAiQGVtb3Rpb24vc2VyaWFsaXplIiAiXjEuMC4yIgot ICAgICJAZW1vdGlvbi9zaGVldCIgIl4xLjAuMSIKKyAgICAiQGVtb3Rpb24vc2hlZXQiICJeMS4w LjMiCiAgICAgIkBlbW90aW9uL3V0aWxzIiAiXjEuMC4wIgogICAgICJAZW1vdGlvbi93ZWFrLW1l bW9pemUiICJeMC4yLjUiCiAgICAgaG9pc3Qtbm9uLXJlYWN0LXN0YXRpY3MgIl4zLjMuMSIKQEAg LTE5MzIsMTAgKzE1ODcsMTAgQEAKICAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBr Zy5jb20vQGVtb3Rpb24vc2hlZXQvLS9zaGVldC0wLjkuNC50Z3ojODk0Mzc0YmVhMzllYzMwZjQ4 OWJiZmMzNDM4MTkyYjk3NzRkMzJlNSIKICAgaW50ZWdyaXR5IHNoYTUxMi16TTlQRm1nVlNxQnc0 ekwxMDFRMEhyQlZUR21wQXhGWkgvcFl4L2NqSlQ1YWR2WGd1dmNnakhGVENhSU8zZW5ML3hyODl2 SzJiaDBNZnlqOWFhMEFOQT09CiAKLSJAZW1vdGlvbi9zaGVldEBeMS4wLjAiLCAiQGVtb3Rpb24v c2hlZXRAXjEuMC4xIjoKLSAgdmVyc2lvbiAiMS4wLjEiCi0gIHJlc29sdmVkICJodHRwczovL3Jl Z2lzdHJ5Lnlhcm5wa2cuY29tL0BlbW90aW9uL3NoZWV0Ly0vc2hlZXQtMS4wLjEudGd6IzI0NWY1 NGFiYjAyZGZkODIzMjZlMjg2ODlmMzRjMjdhYTliMmE2OTgiCi0gIGludGVncml0eSBzaGE1MTIt R2JJdlZNZTRVK1pjKzkyOU4xVjduVzZZWUp0aWRqMzFsaWRTbWRZY1dvendvQklPYlhCbmFKa0tO RGpackxtOU5jMEJSK1p5SE5hUlp4cU5aYm9mNWc9PQorIkBlbW90aW9uL3NoZWV0QF4xLjAuMSIs ICJAZW1vdGlvbi9zaGVldEBeMS4wLjMiOgorICB2ZXJzaW9uICIxLjAuMyIKKyAgcmVzb2x2ZWQg Imh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vQGVtb3Rpb24vc2hlZXQvLS9zaGVldC0xLjAu My50Z3ojMDBjMzI2Y2Q3OTg1YzVjY2I4ZmUyYzFiNTkyODg2NTc5ZGNmYWI4ZiIKKyAgaW50ZWdy aXR5IHNoYTUxMi1Zb1g1R3lRNGRiN0xwYm1YSE11YzhrZWJ0QkdQNm5aZlJDNVoxM09LSk1peEJF d2Racko5MTRENnlKdi9QK1pIL1lZM0Y1czg5TllYMmhsWkFmM1NSUT09CiAKICJAZW1vdGlvbi9z dHlsZWQtYmFzZUBeMTAuMC4yNyI6CiAgIHZlcnNpb24gIjEwLjAuMzEiCkBAIC0xOTgwLDE1ICsx NjM1LDE1IEBACiAgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL0BlbW90 aW9uL3dlYWstbWVtb2l6ZS8tL3dlYWstbWVtb2l6ZS0wLjIuNS50Z3ojOGVlZDk4MmUyZWU2Zjdm NGU0NGMyNTNlMTI5NjI5ODA3OTFlZmQ0NiIKICAgaW50ZWdyaXR5IHNoYTUxMi02VTcxQzJXcDdy NVh0RnRRellyVzVpS0ZUNjdPaXhyU3hqSTRNcHRDSHpkU1ZsZ2FiY3p6cUxlMFpTZ251Yi81S3A0 aFNicERCMXRNeXRaWTlwd3h4QT09CiAKLSJAZXNsaW50L2VzbGludHJjQF4wLjQuMCI6Ci0gIHZl cnNpb24gIjAuNC4wIgotICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9A ZXNsaW50L2VzbGludHJjLy0vZXNsaW50cmMtMC40LjAudGd6Izk5Y2MwYTA1ODRkNzJmMWRmMzhi OTAwZmIwNjJiYTk5NWYzOTU1NDciCi0gIGludGVncml0eSBzaGE1MTItMlpQQ2MrdU5ialY1RVJK cithS1NQUndaZ0tkMnoxMXgwRWdMdmIxUFVSbVVybjlRTlJYRnFqZTBMZHE0NTRQZkFWeWFKWXly RHZ2SUtTRlA0Tm5Cb2c9PQorIkBlc2xpbnQvZXNsaW50cmNAXjAuNC4zIjoKKyAgdmVyc2lvbiAi MC40LjMiCisgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL0Blc2xpbnQv ZXNsaW50cmMvLS9lc2xpbnRyYy0wLjQuMy50Z3ojOWU0Mjk4MWVmMDM1YmViM2RkNDlhZGQxN2Fj Yjk2ZThmZjZmMzk0YyIKKyAgaW50ZWdyaXR5IHNoYTUxMi1KNktGRno1UUNZVUpxM3BmMG1qRWND SlZFUmJ6djcxUFVJRGN6dWg5Smt3R0V6Y2VkNkNPNUFETEhCMXJiZi8rb1BCdG9QZk1ZTk9wR0R6 Q0FObGJYdz09CiAgIGRlcGVuZGVuY2llczoKICAgICBhanYgIl42LjEyLjQiCiAgICAgZGVidWcg Il40LjEuMSIKICAgICBlc3ByZWUgIl43LjMuMCIKLSAgICBnbG9iYWxzICJeMTIuMS4wIgorICAg IGdsb2JhbHMgIl4xMy45LjAiCiAgICAgaWdub3JlICJeNC4wLjYiCiAgICAgaW1wb3J0LWZyZXNo ICJeMy4yLjEiCiAgICAganMteWFtbCAiXjMuMTMuMSIKQEAgLTIwMDUsNiArMTY2MCwyMCBAQAog ICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9AZ2FyL3Byb21pc2lmeS8t L3Byb21pc2lmeS0xLjEuMi50Z3ojMzBhYTgyNWYxMWQ0Mzg2NzFkNTg1YmQ0NGU3ZmQ1NjQ1MzVm YzIxMCIKICAgaW50ZWdyaXR5IHNoYTUxMi04MmNweUp5S1JvUW9SaSsxNGliQ2VHUHUwQ3d5cGd0 QkFkQmhxMVdmdmFncENaTktxd1hiS3dYbGxZU01HOTFEaG1HNGp0OWdOOGVQNmxHT3RvenVhdz09 CiAKKyJAaHVtYW53aG9jb2Rlcy9jb25maWctYXJyYXlAXjAuNS4wIjoKKyAgdmVyc2lvbiAiMC41 LjAiCisgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL0BodW1hbndob2Nv ZGVzL2NvbmZpZy1hcnJheS8tL2NvbmZpZy1hcnJheS0wLjUuMC50Z3ojMTQwNzk2N2Q0YzZlZWNk NzM4OGY4M2FjZjFlYWY0ZDBjNmU1OGVmOSIKKyAgaW50ZWdyaXR5IHNoYTUxMi1GYWd0S0Z6NzRY clRsN3k2SEN6UXB3RGZYUDB5aHhlOWxITEQxVVp4anZaSWNieVJ6OHpURkYveVlOZlNmelU0MTRl RHdaMVNyTzBRdnR5Zit3Rk1RZz09CisgIGRlcGVuZGVuY2llczoKKyAgICAiQGh1bWFud2hvY29k ZXMvb2JqZWN0LXNjaGVtYSIgIl4xLjIuMCIKKyAgICBkZWJ1ZyAiXjQuMS4xIgorICAgIG1pbmlt YXRjaCAiXjMuMC40IgorCisiQGh1bWFud2hvY29kZXMvb2JqZWN0LXNjaGVtYUBeMS4yLjAiOgor ICB2ZXJzaW9uICIxLjIuMSIKKyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5j b20vQGh1bWFud2hvY29kZXMvb2JqZWN0LXNjaGVtYS8tL29iamVjdC1zY2hlbWEtMS4yLjEudGd6 I2I1MjA1MjllYzIxZDhlNTk0NWExODUxZGZkMWMzMmU5NGUzOWZmNDUiCisgIGludGVncml0eSBz aGE1MTItWm5RTW5MVjRlN2hEbFV2dzhIK1U4QVNMMDJTUzJHbjYrOUFjM3dHR0xJZTcramUyQWVB T3hQWStpeklQSkRmRkRiN2VEamV2MFVzOE1PMWlGUk44aEE9PQorCiAiQGlzdGFuYnVsanMvc2No ZW1hQF4wLjEuMiI6CiAgIHZlcnNpb24gIjAuMS4zIgogICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdp c3RyeS55YXJucGtnLmNvbS9AaXN0YW5idWxqcy9zY2hlbWEvLS9zY2hlbWEtMC4xLjMudGd6I2U0 NWUzODRlNGI4ZWMxNmJjZTJmZDkwM2FmNzg0NTBmNmJmN2VjOTgiCkBAIC0yMDYwLDkgKzE3Mjks OSBAQAogICAgIHJlYWN0LWlzICJeMTYuOC4wIHx8IF4xNy4wLjAiCiAKICJAbWF0ZXJpYWwtdWkv cGlja2Vyc0BeMy4yLjEwIjoKLSAgdmVyc2lvbiAiMy4yLjEwIgotICByZXNvbHZlZCAiaHR0cHM6 Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9AbWF0ZXJpYWwtdWkvcGlja2Vycy8tL3BpY2tlcnMtMy4y LjEwLnRneiMxOWRmMDI0ODk1ODc2ZWIwZWM3Y2QyMzliYmFlYTU5NWY3MDNmMGFlIgotICBpbnRl Z3JpdHkgc2hhNTEyLUI4RzZPYm41UzNSQ2w3aHdhaGtRajlzS1VhcHdYV0ZqaWF6L0JzdzFmaFlG ZE5NbkRVb2xSaVdRU29LUGIxL29LZTM3RHRmc3pveXdpMVluYm8zeTh3PT0KKyAgdmVyc2lvbiAi My4zLjEwIgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9AbWF0ZXJp YWwtdWkvcGlja2Vycy8tL3BpY2tlcnMtMy4zLjEwLnRneiNmMWIwZjk2MzM0OGNjMTkxNjQ1ZWYw YmRlZmY3YTY3YzZhYTI1NDg1IgorICBpbnRlZ3JpdHkgc2hhNTEyLWhTNHB4d24xWkdYVmttZ0Q0 dHBGcGF1bVVhQWcyWnpiVHJ4bHRmQzV5UHc0QkpWK21Ha2ZuUU9CNFZwV0VZWncyanY2NVowd0x3 REUvcGlRaVBQWjN3PT0KICAgZGVwZW5kZW5jaWVzOgogICAgICJAYmFiZWwvcnVudGltZSIgIl43 LjYuMCIKICAgICAiQGRhdGUtaW8vY29yZSIgIjEueCIKQEAgLTIxMTcsMjUgKzE3ODYsMjUgQEAK ICAgICBwcm9wLXR5cGVzICJeMTUuNy4yIgogICAgIHJlYWN0LWlzICJeMTYuOC4wIHx8IF4xNy4w LjAiCiAKLSJAbm9kZWxpYi9mcy5zY2FuZGlyQDIuMS40IjoKLSAgdmVyc2lvbiAiMi4xLjQiCi0g IHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL0Bub2RlbGliL2ZzLnNjYW5k aXIvLS9mcy5zY2FuZGlyLTIuMS40LnRneiNkNGIzNTQ5YTVkYjVkZTI2ODNlMGMxMDcxYWI0ZjE0 MDkwNGJiZjY5IgotICBpbnRlZ3JpdHkgc2hhNTEyLTMzZzNwTUprM2JnNW5YYkwvK0NZNkkyZUpE elpBbmk0OVBmSm5MNWZnaFBUZ2dQdkJkL3BGTlNnSnNkQWdXcHR1RnU3cXEvRVJ2T1lGbGh2c0xU Q0tBPT0KKyJAbm9kZWxpYi9mcy5zY2FuZGlyQDIuMS41IjoKKyAgdmVyc2lvbiAiMi4xLjUiCisg IHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL0Bub2RlbGliL2ZzLnNjYW5k aXIvLS9mcy5zY2FuZGlyLTIuMS41LnRneiM3NjE5YzJlYjIxYjI1NDgzZjZkMTY3NTQ4YjRjZmQ1 YTc0ODhjM2Q1IgorICBpbnRlZ3JpdHkgc2hhNTEyLXZxMjRCcTN5bTVIRVFtMk5LQ3IzeVhEd2pj N3ZUc0VUaFJEbmtwMkRLOXAxdXFMUitESHVybS9OT1RvMEtHN0hZSFU3ZXBwS1pqM015cVl1TUJm NjJnPT0KICAgZGVwZW5kZW5jaWVzOgotICAgICJAbm9kZWxpYi9mcy5zdGF0IiAiMi4wLjQiCisg ICAgIkBub2RlbGliL2ZzLnN0YXQiICIyLjAuNSIKICAgICBydW4tcGFyYWxsZWwgIl4xLjEuOSIK IAotIkBub2RlbGliL2ZzLnN0YXRAMi4wLjQiLCAiQG5vZGVsaWIvZnMuc3RhdEBeMi4wLjIiOgot ICB2ZXJzaW9uICIyLjAuNCIKLSAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5j b20vQG5vZGVsaWIvZnMuc3RhdC8tL2ZzLnN0YXQtMi4wLjQudGd6I2EzZjJkZDYxYmFiNDNiOGRi OGZhMTA4YTEyMWNmZmZlNGM2NzY2NTUiCi0gIGludGVncml0eSBzaGE1MTItSVlsSEpBMGNsdDIr Vmc3YmNjcStUelJkSnZ2MTljMklOcUJTc29PTHAxamU3eGp0cjdKMjYrV1hSNzJNQ2R2VTlxMXFU eklXRGZoTWYrRFJ2UUpLNFE9PQorIkBub2RlbGliL2ZzLnN0YXRAMi4wLjUiLCAiQG5vZGVsaWIv ZnMuc3RhdEBeMi4wLjIiOgorICB2ZXJzaW9uICIyLjAuNSIKKyAgcmVzb2x2ZWQgImh0dHBzOi8v cmVnaXN0cnkueWFybnBrZy5jb20vQG5vZGVsaWIvZnMuc3RhdC8tL2ZzLnN0YXQtMi4wLjUudGd6 IzViZDI2MmFmOTRlOWQyNWJkMWU3MWIwNWRlZWQ0NDg3NmEyMjJlOGIiCisgIGludGVncml0eSBz aGE1MTItUmtoUFBwMnpycURBUUEvMmpOaG56dGNQQWx2NjRYZGhJcDdhNzQ1NEE1b3ZJN0J1a3hn dDdNWDd1ZHdBdTN6ZzFEY3BQVTByejNWVjFTZWFxdlk0K0E9PQogCiAiQG5vZGVsaWIvZnMud2Fs a0BeMS4yLjMiOgotICB2ZXJzaW9uICIxLjIuNiIKLSAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0 cnkueWFybnBrZy5jb20vQG5vZGVsaWIvZnMud2Fsay8tL2ZzLndhbGstMS4yLjYudGd6I2NjZTkz OTZiMzBhYTVhZmU5ZTM3NTY2MDhmNTgzMWFkY2I1M2QwNjMiCi0gIGludGVncml0eSBzaGE1MTIt OEJyb2FzNnZUdFc0R0lYVEFIRG9FMzJobk4yTTV5a2dDcFdHYnVYSFExNXZFTXFyMjNwQjc2ZS9H WmNZc1pDSEFMdjUwa3RkMjRxaEV5S3I2d0J0b3c9PQorICB2ZXJzaW9uICIxLjIuOCIKKyAgcmVz b2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vQG5vZGVsaWIvZnMud2Fsay8tL2Zz LndhbGstMS4yLjgudGd6I2U5NTczN2U4YmI2NzQ2ZGRlZGY2OWM1NTY5NTM0OTRmMTk2ZmU2OWEi CisgIGludGVncml0eSBzaGE1MTItb0dCK1V4bGdXY2dRa2d3bzhHY0VHd2Vtb1RGdDNGSU85YWJh YkJtYUd3WElvQktaK0dUeTBwUDE4NWJlR2c3TGxpaC9OU0hTVjJYQXMxbG56bm9jU2c9PQogICBk ZXBlbmRlbmNpZXM6Ci0gICAgIkBub2RlbGliL2ZzLnNjYW5kaXIiICIyLjEuNCIKKyAgICAiQG5v ZGVsaWIvZnMuc2NhbmRpciIgIjIuMS41IgogICAgIGZhc3RxICJeMS42LjAiCiAKICJAbnBtY2xp L2ZzQF4xLjAuMCI6CkBAIC0yMTU0LDE1ICsxODIzLDE1IEBACiAgICAgbWtkaXJwICJeMS4wLjQi CiAgICAgcmltcmFmICJeMy4wLjIiCiAKLSJAcG9sa2EvdXJsQF4xLjAuMC1uZXh0LjE1IjoKLSAg dmVyc2lvbiAiMS4wLjAtbmV4dC4xNSIKLSAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFy bnBrZy5jb20vQHBvbGthL3VybC8tL3VybC0xLjAuMC1uZXh0LjE1LnRneiM2YTlkMTQzZjdmNGY0 OWRiMmQ3ODJmOWUxYzg4MzlhMjliNDNhZTIzIgotICBpbnRlZ3JpdHkgc2hhNTEyLTE1c3BpM1Yy OFFkZXZsZVdCTlhFNHBJbHMzbkZabUJiVUdyVzlJVlB3aVFjenVTYjluNzZUQ0I0YnNrOFRTZWwr STFPa0hFZFBodTVRS01mWTZyUUhBPT0KKyJAcG9sa2EvdXJsQF4xLjAuMC1uZXh0LjIwIjoKKyAg dmVyc2lvbiAiMS4wLjAtbmV4dC4yMSIKKyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFy bnBrZy5jb20vQHBvbGthL3VybC8tL3VybC0xLjAuMC1uZXh0LjIxLnRneiM1ZGU1YTIzODVhMzUz MDk0MjdmNjAxMTk5MmI1NDQ1MTRkNTU5YWExIgorICBpbnRlZ3JpdHkgc2hhNTEyLWE1U2FiMUM0 L2ljcFRaVnpaYzVHaHB6ODh5UXRHT3lOcVlYY1pnT3NzQjJ1dUFyK3dGL012TjZiZ3RXMzJxN0hI cnZCa2krQnNaME91TnY2RVYzSzlnPT0KIAotIkBwb3BwZXJqcy9jb3JlQF4yLjguMyI6Ci0gIHZl cnNpb24gIjIuOS4wIgotICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9A cG9wcGVyanMvY29yZS8tL2NvcmUtMi45LjAudGd6IzMyZTYzMjEyMjkzZGQzZWZiYjUyMWNkMzVh NTAyMGFiNjZlYWE1NDYiCi0gIGludGVncml0eSBzaGE1MTItd2p0S2VoRkFJQVJxMk94SzhqM0py Z2dObEVzbEpmTnVTbTJBcnRlSWJLeVJNdHMyZzBhN0t6VHhmUlZOVU0rTzBnbkJKMmhOVjhuV1BP WUJnSTFzZXc9PQorIkBwb3BwZXJqcy9jb3JlQF4yLjkuMCI6CisgIHZlcnNpb24gIjIuMTAuMiIK KyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vQHBvcHBlcmpzL2NvcmUv LS9jb3JlLTIuMTAuMi50Z3ojMDc5OGMwMzM1MWYwZGVhMWE1YTRjYWJkZGYyNmE1NWE3Y2JlZTU5 MCIKKyAgaW50ZWdyaXR5IHNoYTUxMi1JWGYzWEE3K1h5TjdDUDlnR2gvWEIwVXhWTWx2QVJHRWdH WEx1YkZJQ3NVTUd6NlErRFUraTRnR2xwT3hUakt2WGprSkRKQzhZZHFkS2tEajlxWkhFUT09CiAK ICJAcHJvamVjdHN0b3JtL2dlb21ldHJ5QF42LjYuMSI6CiAgIHZlcnNpb24gIjYuNi4xIgpAQCAt MjIwOSwxMiArMTg3OCwxNyBAQAogICAgICJAcHJvamVjdHN0b3JtL3JlYWN0LWRpYWdyYW1zLWRl ZmF1bHRzIiAiXjYuNi4xIgogICAgICJAcHJvamVjdHN0b3JtL3JlYWN0LWRpYWdyYW1zLXJvdXRp bmciICJeNi42LjEiCiAKKyJAcmVhY3QtbGVhZmxldC9jb3JlQF4xLjEuMSI6CisgIHZlcnNpb24g IjEuMS4xIgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9AcmVhY3Qt bGVhZmxldC9jb3JlLy0vY29yZS0xLjEuMS50Z3ojODI3ZmQwNWJiNTQyY2Y4NzQxMTYxNzZkOGVm NDhkNWIxMjE2M2Y4MSIKKyAgaW50ZWdyaXR5IHNoYTUxMi03UEdMV2E5TVo1eC9jV3k4RUgyVnpJ NFQ4cTVXcHVIYml4ekNEWHFpeFAvV3lxd0lyZzVORFVQZ1l1Rm5CNElFSVpGKzZuQTI2NW1ZenN3 Rm8vaDFQdz09CisKICJAc2ltb253ZXAvcGlja3JAXjEuNS4xIjoKLSAgdmVyc2lvbiAiMS44LjEi Ci0gIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL0BzaW1vbndlcC9waWNr ci8tL3BpY2tyLTEuOC4xLnRneiNlMTM2Y2JkOWMzNDVkZGJiN2Q3MWViMTRhZjU0NGM3OTgxNjVk NDk1IgotICBpbnRlZ3JpdHkgc2hhNTEyLTNRNStJTldXMFB5Ky9FOWhneTBjeUQwLzB3L3lHWmJr eGFtNlJ6RlZGRE9FSGdBcU1WSlIreDl6bng1OC9reS9aSXZFLzc4RmJIMTg5eUlDOWgxMTFBPT0K KyAgdmVyc2lvbiAiMS44LjIiCisgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cu Y29tL0BzaW1vbndlcC9waWNrci8tL3BpY2tyLTEuOC4yLnRneiM5NmRjODY2NzU5NDBkN2NhZDYz ZDY5YzIyMDgzZGQxY2JiOTc5N2NiIgorICBpbnRlZ3JpdHkgc2hhNTEyLS9sNXc4QklrcnBQNm4x eHNldHg5TVdQV2xVNk9ibE41WWdaWnBoeGFuMFRxNEJCeVRDRVRMNmx5SWVZOGxhZ2FsUzJOYnQ0 RjJXMDM0S0hMSWl1bktBPT0KICAgZGVwZW5kZW5jaWVzOgotICAgIGNvcmUtanMgIl4zLjEyLjEi CisgICAgY29yZS1qcyAiXjMuMTUuMSIKICAgICBuYW5vcG9wICJeMi4xLjAiCiAKICJAc2luZHJl c29yaHVzL2lzQF4wLjcuMCI6CkBAIC0yMjI3LDYgKzE5MDEsMTEgQEAKICAgcmVzb2x2ZWQgImh0 dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vQHNvY2tldC5pby9iYXNlNjQtYXJyYXlidWZmZXIv LS9iYXNlNjQtYXJyYXlidWZmZXItMS4wLjIudGd6IzU2OGQ5YmVhZTAwYjBkODM1ZjRmOGM1M2Zk NTU3MTQ5ODY0OTJlNjEiCiAgIGludGVncml0eSBzaGE1MTItZE9sQ0JLbkR3NGlTaGFJc0gvYnh1 aktUTTE4KzJUT0FzWXorS1NjMTFBbTM4SDRxNVh3OEJiejk3WllkclZOTSt1bTNwN3c4NkJ2dm1j bjlxKzUrZVE9PQogCisiQHNvY2tldC5pby9jb21wb25lbnQtZW1pdHRlckB+My4wLjAiOgorICB2 ZXJzaW9uICIzLjAuMCIKKyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20v QHNvY2tldC5pby9jb21wb25lbnQtZW1pdHRlci8tL2NvbXBvbmVudC1lbWl0dGVyLTMuMC4wLnRn eiM4ODYzOTE1Njc2ZjgzN2Q5ZGFkN2I3NmY1MGNiNTAwYzFlOTQyMmU5IgorICBpbnRlZ3JpdHkg c2hhNTEyLTJwVEd1aWJBWEpzd0FQSmphS2lzdGhxUy9OT0s1eXBHNExZVDZ0RUFWMFMvbXhXMHpP SXZZdkdLMFY4dzgrU0h4QW02dlJNU2pxU2FsRlhlQkFxcytRPT0KKwogIkBzcGhpbnh4eHgvY29s b3ItY29udmVyc2lvbkBeMi4yLjIiOgogICB2ZXJzaW9uICIyLjIuMiIKICAgcmVzb2x2ZWQgImh0 dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vQHNwaGlueHh4eC9jb2xvci1jb252ZXJzaW9uLy0v Y29sb3ItY29udmVyc2lvbi0yLjIuMi50Z3ojMDNlY2MyOTI3OWUzYzBjODMyZjYxODVhNWJmYTM0 OTc4NThhYzhjYSIKQEAgLTIzNDQsOSArMjAyMyw5IEBACiAgICAgcmVhY3QtdHJhbnNpdGlvbi1z dGF0ZSAiXjEuMS4zIgogCiAiQHRpcHB5anMvcmVhY3RAXjQuMi4wIjoKLSAgdmVyc2lvbiAiNC4y LjMiCi0gIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL0B0aXBweWpzL3Jl YWN0Ly0vcmVhY3QtNC4yLjMudGd6I2MyZGJlOWViNzFiZDlmZmEzOTc0ZjliYThlM2E0YTZmYzE1 MzhhZWQiCi0gIGludGVncml0eSBzaGE1MTItNDR2QmFwcVJPUUk3UTVuRHRYMU1NQWdjQVYrM0Rz SWkrbS80NUN4UTcyQzVMRE5tTkRxOWgzZjA0eDNOSE1yVWhXY2ZnZmdqWUEyRW1lTFNILzRlUmc9 PQorICB2ZXJzaW9uICI0LjIuNiIKKyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBr Zy5jb20vQHRpcHB5anMvcmVhY3QvLS9yZWFjdC00LjIuNi50Z3ojOTcxNjc3YTU5OWJmNjYzZjIw YmIxYzYwYTYyYjk1NTViNzQ5Y2M3MSIKKyAgaW50ZWdyaXR5IHNoYTUxMi05MVJpY0RSK0g3b0RT eVB5Y0kxM3EzYjdvNE82MHdhMm9SYmpsejJmeVJMbUhJbWM0dnlEd3VVUDhOdFphTjBWQVJKWTVo eWJ2RFlyRnpoWTkrTGJ5dz09CiAgIGRlcGVuZGVuY2llczoKICAgICB0aXBweS5qcyAiXjYuMy4x IgogCkBAIC0yMzY4LDkgKzIwNDcsOSBAQAogICAgIGNsYXNzbmFtZXMgIioiCiAKICJAdHlwZXMv Y29tcG9uZW50LWVtaXR0ZXJAXjEuMi4xMCI6Ci0gIHZlcnNpb24gIjEuMi4xMCIKLSAgcmVzb2x2 ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vQHR5cGVzL2NvbXBvbmVudC1lbWl0dGVy Ly0vY29tcG9uZW50LWVtaXR0ZXItMS4yLjEwLnRneiNlZjViMTU4OWI5ZjE2NTQ0NjQyZTQ3M2Ri NWVhNTYzOTEwN2VmM2VhIgotICBpbnRlZ3JpdHkgc2hhNTEyLWJzamxldVJLV21HcWFqTWVya3pv eDE5YUdic2NRWDVybW12dlhsM3dsSXA1Z01HMUhna2l3UHhzTjVwMDcwZkJES1ROU1Bnb2pWYnVZ MStIV01iRmhnPT0KKyAgdmVyc2lvbiAiMS4yLjExIgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdp c3RyeS55YXJucGtnLmNvbS9AdHlwZXMvY29tcG9uZW50LWVtaXR0ZXIvLS9jb21wb25lbnQtZW1p dHRlci0xLjIuMTEudGd6IzUwZDQ3ZDQyYjM0NzI1MzgxN2EzOTcwOWZlZjAzY2U2NmExMDg1MDYi CisgIGludGVncml0eSBzaGE1MTItU1JYak0rdGZzU2xBOVZ1RzhoR08ybmZ0MnA4empYQ0sxVmND Nk40TlhiQmJZYlNpYTlrekNDaFlRYWpJanpJcU9PT3VoNU9jazZNbVYyb3V4NGpEWlE9PQogCiAi QHR5cGVzL2Nvb2tpZUBeMC40LjEiOgogICB2ZXJzaW9uICIwLjQuMSIKQEAgLTIzODMsNDggKzIw NjIsNDggQEAKICAgaW50ZWdyaXR5IHNoYTUxMi12dCtrRGhxL00yYXliZXJFdEpjSU4vaHhYeTFQ ays1OWcyRlYvWlFjZWVhVHlDdEN1Y2pMMlE3RlhsRmp0V240bjE1S0NyMU5FMmxOTkZocDBsRVRo dz09CiAKICJAdHlwZXMvZXNsaW50LXNjb3BlQF4zLjcuMCI6Ci0gIHZlcnNpb24gIjMuNy4wIgot ICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9AdHlwZXMvZXNsaW50LXNj b3BlLy0vZXNsaW50LXNjb3BlLTMuNy4wLnRneiM0NzkyODE2ZTMxMTE5ZWJkNTA2OTAyYTQ4MmNh ZWM0OTUxZmFiZDg2IgotICBpbnRlZ3JpdHkgc2hhNTEyLU8vcWwyK3JyQ1VlMlcycnM3d01SK0dx UFJjZ0I2VWlxTjVSaHJSNXhydUZsWTdsOVlMTW4wWmtEempvSExlaUZrUjhNQ1FaVnVkVXV1dlEy QkxDOVF3PT0KKyAgdmVyc2lvbiAiMy43LjEiCisgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5 Lnlhcm5wa2cuY29tL0B0eXBlcy9lc2xpbnQtc2NvcGUvLS9lc2xpbnQtc2NvcGUtMy43LjEudGd6 IzhkYzM5MGE3YjRmOWRkOWYxMjg0NjI5ZWZjZTk4MmU0MTYxMjExNmUiCisgIGludGVncml0eSBz aGE1MTItU0NGZW9ncWlwdG1zNEZnMjlXcE9UazVuSEl6ZnBLQ2VtU042M2tzQlFZS1RjWG9KRW1K YWdWK0RoVm1iYXBaelk0LzVZYU9WMW5ad3JzVTc5ZkZtMWc9PQogICBkZXBlbmRlbmNpZXM6CiAg ICAgIkB0eXBlcy9lc2xpbnQiICIqIgogICAgICJAdHlwZXMvZXN0cmVlIiAiKiIKIAogIkB0eXBl cy9lc2xpbnRAKiI6Ci0gIHZlcnNpb24gIjcuMi43IgotICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdp c3RyeS55YXJucGtnLmNvbS9AdHlwZXMvZXNsaW50Ly0vZXNsaW50LTcuMi43LnRneiNmN2VmMWNm MGRjZWFiMGFlNmY5YTk3NmEwYTlhZjE0YWIxYmFjYTI2IgotICBpbnRlZ3JpdHkgc2hhNTEyLUVI WGJjMXoyR29RUnFIYUFUNytncnhsVEozV0UyWU5lRDZqbHBQb1JjODNjQ29UaFJZK05VV2pDVVph WW1rNTFPSUNrUFhuMmhocGhjV2NXWGdOVzBRPT0KKyAgdmVyc2lvbiAiNy4yOC4yIgorICByZXNv bHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9AdHlwZXMvZXNsaW50Ly0vZXNsaW50 LTcuMjguMi50Z3ojMGZmMjk0N2NkZDMwNTg5N2M1MmQ1MzcyMjk0ZThjNzZmMzUxZGI2OCIKKyAg aW50ZWdyaXR5IHNoYTUxMi1LdWJiQURQa2ZvVTc1S2dLZUtMc0ZIWG5VNGlwSDd3WWcwVFJUMzNO SzNOM3lpdTdqbEZBQW95Z0lXQlYrS2J1SHgvRytBdnVHWDZEbGxuSzM1Z2ZKQT09CiAgIGRlcGVu ZGVuY2llczoKICAgICAiQHR5cGVzL2VzdHJlZSIgIioiCiAgICAgIkB0eXBlcy9qc29uLXNjaGVt YSIgIioiCiAKLSJAdHlwZXMvZXN0cmVlQCoiLCAiQHR5cGVzL2VzdHJlZUBeMC4wLjQ2IjoKLSAg dmVyc2lvbiAiMC4wLjQ2IgotICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNv bS9AdHlwZXMvZXN0cmVlLy0vZXN0cmVlLTAuMC40Ni50Z3ojMGZiNmJmYmJlYWJkN2EzMDg4MDUw NDk5MzM2OWM0YmYxZGVhYjFmZSIKLSAgaW50ZWdyaXR5IHNoYTUxMi1sYUlqd1RRYUQrNUR1a0Ja YXlnUTc5SzFaMGpiMWJQRU1ScmtYU0xqdENjWm0rYWJ5cDVZYnJxcFNMekQ0MkZ3V1c2Z0svYVM0 TllwSjgwNG5HMmJyZz09CisiQHR5cGVzL2VzdHJlZUAqIiwgIkB0eXBlcy9lc3RyZWVAXjAuMC41 MCI6CisgIHZlcnNpb24gIjAuMC41MCIKKyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFy bnBrZy5jb20vQHR5cGVzL2VzdHJlZS8tL2VzdHJlZS0wLjAuNTAudGd6IzFlMGNhYTkzNjRkM2Zj Y2QyOTMxYzNlZDk2ZmRiZWFhNWQ0Y2NhODMiCisgIGludGVncml0eSBzaGE1MTItQzZONXMyWkZ0 dVpSajU0azIvenlSaE5Eakp3d2NWaUFNM05ibTh6akJwYnFBZFowMG1yMENGeHZTS2VPOFkvZTAz V1ZGTHBRTWRIWVZmVWQ2U0IrSHc9PQogCiAiQHR5cGVzL2dsb2JAXjcuMS4xIjoKLSAgdmVyc2lv biAiNy4xLjMiCi0gIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL0B0eXBl cy9nbG9iLy0vZ2xvYi03LjEuMy50Z3ojZTZiYTgwZjM2YjdkYWFkMmM2ODVhY2Q5MjY2MzgyZTY4 OTg1YzE4MyIKLSAgaW50ZWdyaXR5IHNoYTUxMi1TRVllR0FJUUlRWDhOTjZMREtwckxqYnJkNWRB Uk01RVhzZDhHSS9BNWwwYXBZSTFmR01XZ1BIU2U0WktMNGVvemxBeUkrZG9VRTlYYllTNHhDa1Ex dz09CisgIHZlcnNpb24gIjcuMi4wIgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJu cGtnLmNvbS9AdHlwZXMvZ2xvYi8tL2dsb2ItNy4yLjAudGd6I2JjMWI1YmYzYWE5MmYyNWJkNWRk MzlmMzVjNTczNjFiZGNlNWIyZWIiCisgIGludGVncml0eSBzaGE1MTItWlV4YnpLbDBJZkpJTFRT NnQ3aXA1ZlFRTS9KM1RKWXViRG0zbk1iZ3ViTk5ZUzYyZVhlVXBvTFVDOC83ZkpOaUZZSFRyR1BR bjdoc3BEVXpJSFgzVUE9PQogICBkZXBlbmRlbmNpZXM6CiAgICAgIkB0eXBlcy9taW5pbWF0Y2gi ICIqIgogICAgICJAdHlwZXMvbm9kZSIgIioiCiAKLSJAdHlwZXMvanNvbi1zY2hlbWFAKiIsICJA dHlwZXMvanNvbi1zY2hlbWFAXjcuMC41IiwgIkB0eXBlcy9qc29uLXNjaGVtYUBeNy4wLjYiOgot ICB2ZXJzaW9uICI3LjAuNyIKLSAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5j b20vQHR5cGVzL2pzb24tc2NoZW1hLy0vanNvbi1zY2hlbWEtNy4wLjcudGd6Izk4YTk5MzUxNmM4 NTllYjBkNWM0YzhmMDk4MzE3YTllYTY4ZGI5YWQiCi0gIGludGVncml0eSBzaGE1MTItY3hXRlFW c2VCbTZPOUdidzFJV2I4cjZPUzRPaFN0M2hQWkxrRkFwTGpNOFRFWFJPQnVRR0xBSDJpMmdacGNY ZExCSXJwWHVURGhIN1ZibTFpWG1OR0E9PQorIkB0eXBlcy9qc29uLXNjaGVtYUAqIiwgIkB0eXBl cy9qc29uLXNjaGVtYUBeNy4wLjUiLCAiQHR5cGVzL2pzb24tc2NoZW1hQF43LjAuOCI6CisgIHZl cnNpb24gIjcuMC45IgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9A dHlwZXMvanNvbi1zY2hlbWEvLS9qc29uLXNjaGVtYS03LjAuOS50Z3ojOTdlZGM5MDM3ZWEwYzM4 NTg1MzIwYjI4OTY0ZGRlM2IzOWU0NjYwZCIKKyAgaW50ZWdyaXR5IHNoYTUxMi1xY1VYdWVtdEV1 K0U1d1pTSkhOeFVYZUNaaEFmWEtRNDFEK2R1WCtWWVBkZTd4eUVWWmNpKy9vWEtKTDEzdG5Sczls UjJwcjRmb2Q1OUdUNi9YMS95UT09CiAKICJAdHlwZXMvbWluaW1hdGNoQCoiOgotICB2ZXJzaW9u ICIzLjAuNCIKLSAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vQHR5cGVz L21pbmltYXRjaC8tL21pbmltYXRjaC0zLjAuNC50Z3ojZjBlYzI1ZGJmMmYwZTRiMTg2NDczMTNh YzAzMTEzNGNhNWIyNGIyMSIKLSAgaW50ZWdyaXR5IHNoYTUxMi0xejhrNHd6Rm5OalZLL3RseHZy V3VLNVdNdDZteWRXV1A3K3p2SDVlRmVwNG9qK1VrcmZpSlRSdGpDZUJYTnB3YUEvRllxcXRiNC9R UzRpYW5GcElSQT09CisgIHZlcnNpb24gIjMuMC41IgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdp c3RyeS55YXJucGtnLmNvbS9AdHlwZXMvbWluaW1hdGNoLy0vbWluaW1hdGNoLTMuMC41LnRneiMx MDAxY2M1ZTZhMzcwNGI4M2MyMzYwMjdlNzdmMmY1OGVhMDEwZjQwIgorICBpbnRlZ3JpdHkgc2hh NTEyLUtsejk0OWgwMkd6MnVaQ01Hd0RVU0RTMVlCbFRkRERnYldIaSs4MWwyOXRRQUxVdHZ6NHJB WWk1dW9WaEU1TGFnb3E2RGVxQVVsYnJIdlcvbVhEZ2RRPT0KIAogIkB0eXBlcy9ub2RlQCoiLCAi QHR5cGVzL25vZGVAPj0xMC4wLjAiOgotICB2ZXJzaW9uICIxNC4xNC4zMiIKLSAgcmVzb2x2ZWQg Imh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vQHR5cGVzL25vZGUvLS9ub2RlLTE0LjE0LjMy LnRneiM5MGM1YzRhOGQ3MmJiYmZlNTMwMzNmMTIyMzQxMzQzMjQ5MTgzNDQ4IgotICBpbnRlZ3Jp dHkgc2hhNTEyLS9DdHJmdHgvenA0bThKT3VqTTVaaHd6bFdMeDIybmJRSmlWcXo4L3pFMTVnT2VF Vyt1bHkzRlNYNGZHRnBjZkV2RnpYY01DSndxOWxHVldneUFSWGhnPT0KKyAgdmVyc2lvbiAiMTYu MTEuNiIKKyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vQHR5cGVzL25v ZGUvLS9ub2RlLTE2LjExLjYudGd6IzZiZWY3YTJhMGFkNjg0Y2Y2ZTkwZmNmZTMxY2VjYWJkOWNl MGEzYWUiCisgIGludGVncml0eSBzaGE1MTItdWE3UGdVb2VRRmptV1Bjb285a2hpUHVtM1BkNjBr NC8yWkdYdDE4c20yU2xrMFcweFpUcXQ1WTBOeTFOeUJpTjFFVlEvK0ZhRjlOY1k0UWU2cndrNXc9 PQogCiAiQHR5cGVzL3BhcnNlLWpzb25AXjQuMC4wIjoKICAgdmVyc2lvbiAiNC4wLjAiCkBAIC0y NDMyLDE0ICsyMTExLDE0IEBACiAgIGludGVncml0eSBzaGE1MTItLy9vb3JFWmpMNnNiUGNLVWFD ZElHbElVZUgyNm1nemltakJCNzdHNlhSZ25EbC9MNXdPbnB5QkdSZS9NbWY1Q1ZXM1B3RUJFMU5q aU1aL3NzRmg0d0E9PQogCiAiQHR5cGVzL3Byb3AtdHlwZXNAKiI6Ci0gIHZlcnNpb24gIjE1Ljcu MyIKLSAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vQHR5cGVzL3Byb3At dHlwZXMvLS9wcm9wLXR5cGVzLTE1LjcuMy50Z3ojMmFiMGQ1ZGEyZTU4MTVmOTRiMGI5ZDRiOTVk MWU1ZjI0M2FiMmNhNyIKLSAgaW50ZWdyaXR5IHNoYTUxMi1LZlJMM1B1SG1xUUxPRysydEdwUk8y NkN0ZytDcTFFMDFEMkRNcmlLRUFUSGdXTGZlTkRtcTllMjlROVdJa3kwZFEzTlBrZDFtellIOExt OTM2Wjlxdz09CisgIHZlcnNpb24gIjE1LjcuNCIKKyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0 cnkueWFybnBrZy5jb20vQHR5cGVzL3Byb3AtdHlwZXMvLS9wcm9wLXR5cGVzLTE1LjcuNC50Z3oj ZmNmNzIwNWMyNWRmZjc5NWVlNzlhZjFlMzBkYTJjOTc5MDgwOGYxMSIKKyAgaW50ZWdyaXR5IHNo YTUxMi1yWjVkckMvaldqckFyclM4QlI2U0lyNGNXcFcwOVJOVFl0OUFNWm8zSnd3aWYraWFjWEFx Z1ZqbTBCMEJ2L1MxamhEWEtIcVJWTkNiQUNrSjg5UkFuUT09CiAKICJAdHlwZXMvcUBeMS41LjEi OgotICB2ZXJzaW9uICIxLjUuNCIKLSAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBr Zy5jb20vQHR5cGVzL3EvLS9xLTEuNS40LnRneiMxNTkyNTQxNGUwYWQyY2Q3NjViZmVmNTg4NDJm N2UyNmE3YWNjYjI0IgotICBpbnRlZ3JpdHkgc2hhNTEyLTFIY0RhczhTRWo0ejFXYzY5NnRINTZH OE9sUmFIL3NxWk95bk5OQitIRjBXT2VYUGF4VHRiWXpKWTJvRWZpVXhqU0tqaENLcitNdlI3ZENI Y0VlbHVnPT0KKyAgdmVyc2lvbiAiMS41LjUiCisgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5 Lnlhcm5wa2cuY29tL0B0eXBlcy9xLy0vcS0xLjUuNS50Z3ojNzVhMmE4ZTdkOGFiNGIyMzA0MTQ1 MDVkOTIzMzVkMWRjYjUzYTZkZiIKKyAgaW50ZWdyaXR5IHNoYTUxMi1MMjhqMkZjSmZTWk9uTDFX QmpEWXAydlVIQ2VJRmx5WUkvNTNFd0QvcktVQlE3TXRVVWZiUVdpeUtKR3BjbnY0L1dncmhXc0ZL cmNQc3RjQXQvSjB0UT09CiAKICJAdHlwZXMvcmVhY3QtZG9tQF4xNi4wLjExIjoKICAgdmVyc2lv biAiMTYuOS4xNCIKQEAgLTI0NDksMzkgKzIxMjgsMzkgQEAKICAgICAiQHR5cGVzL3JlYWN0IiAi XjE2IgogCiAiQHR5cGVzL3JlYWN0LXRyYW5zaXRpb24tZ3JvdXBAXjQuMi4wIjoKLSAgdmVyc2lv biAiNC40LjEiCi0gIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL0B0eXBl cy9yZWFjdC10cmFuc2l0aW9uLWdyb3VwLy0vcmVhY3QtdHJhbnNpdGlvbi1ncm91cC00LjQuMS50 Z3ojZTFhM2NiMjc4ZGY3ZjQ3ZjE3YjUwODJiMWIzZGExNzE3MGJkNDRiMSIKLSAgaW50ZWdyaXR5 IHNoYTUxMi12SW82OXFLS2NZb0o4d0tDSmp3U2dDVE0rejNjaHczZzE4ZGtyRGZWWDY2NXRNSDd0 bWJEeEVBblBkZXk0Z1Rsd1p6NVF1SEd6ZCtodWwwT1ZaRHFxUT09CisgIHZlcnNpb24gIjQuNC40 IgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9AdHlwZXMvcmVhY3Qt dHJhbnNpdGlvbi1ncm91cC8tL3JlYWN0LXRyYW5zaXRpb24tZ3JvdXAtNC40LjQudGd6I2FjZDRj Y2VhYTJiZTZiNzU3ZGI2MWVkN2I0MzJlMTAzMjQyZDE2M2UiCisgIGludGVncml0eSBzaGE1MTIt N2dBUHo3YW5WSzV4emJlUVc5d0ZCRGc3RysrYVBMQUZZMFFhU01Pb3U5ckpacGJ1STU4V0F1SnJn dStxUjkybDYxZ3JsbkNVZTdBRlg4S0dhaEFndWc9PQogICBkZXBlbmRlbmNpZXM6CiAgICAgIkB0 eXBlcy9yZWFjdCIgIioiCiAKLSJAdHlwZXMvcmVhY3RAKiIsICJAdHlwZXMvcmVhY3RAXjE2IjoK LSAgdmVyc2lvbiAiMTYuMTQuMTAiCi0gIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5w a2cuY29tL0B0eXBlcy9yZWFjdC8tL3JlYWN0LTE2LjE0LjEwLnRneiM3NmJjMWM0MmVkNWFiMGQy YWIxM2U1YzU4ZmFhY2NhYWQzNDQ5NDc3IgotICBpbnRlZ3JpdHkgc2hhNTEyLVFhZEJzTXlGNmxk akVBWEVoc21FVy9MMHVCREpUOHl3N1FvZTVzUm5FS1Zyek1raVlvSndxb0w1VEtKT2xBcnNuL3d2 SUpNL1hkVnprZEw2K0FTNjRRPT0KKyJAdHlwZXMvcmVhY3RAKiI6CisgIHZlcnNpb24gIjE3LjAu MzQiCisgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL0B0eXBlcy9yZWFj dC8tL3JlYWN0LTE3LjAuMzQudGd6Izc5N2I2NmQzNTliNjkyZTNmMTk5OTFiNmIwN2U0YjBjNzA2 YzAxMDIiCisgIGludGVncml0eSBzaGE1MTItNDZGRUdyTWpjMis4WGhIWElMciszKy9zVGUzT2Z6 U1BVOVlHS0lMTHJVWWJRMUNMUUM5RGFxbzFLekVOR1hBV3dyRndpWTBsNFpiRjIwZ1J2Z3BXVGc9 PQogICBkZXBlbmRlbmNpZXM6CiAgICAgIkB0eXBlcy9wcm9wLXR5cGVzIiAiKiIKICAgICAiQHR5 cGVzL3NjaGVkdWxlciIgIioiCiAgICAgY3NzdHlwZSAiXjMuMC4yIgogCi0iQHR5cGVzL3JlYWN0 QF4xNi43LjE4IjoKLSAgdmVyc2lvbiAiMTYuMTQuMTgiCi0gIHJlc29sdmVkICJodHRwczovL3Jl Z2lzdHJ5Lnlhcm5wa2cuY29tL0B0eXBlcy9yZWFjdC8tL3JlYWN0LTE2LjE0LjE4LnRneiNiMmJj ZWEwNWVlMjQ0ZmRlOTJkNDA5ZjkxYmQ4ODhjYThlNTRiMjBmIgotICBpbnRlZ3JpdHkgc2hhNTEy LWVleXFkMW1xb0c0M21JMFR2Tkt5OVFOZjFUanozREVPc1JQM3JsUG8zNU9lTUl0MDVJK3Y5UlI4 WnZMMkd1WVplRjJXQWNMWEpaTXp1NnpkejNWYnRRPT0KKyJAdHlwZXMvcmVhY3RAXjE2IiwgIkB0 eXBlcy9yZWFjdEBeMTYuNy4xOCI6CisgIHZlcnNpb24gIjE2LjE0LjIwIgorICByZXNvbHZlZCAi aHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9AdHlwZXMvcmVhY3QvLS9yZWFjdC0xNi4xNC4y MC50Z3ojZmY2ZTkzMmFkNzFkOTJjMjc1OTBlNGE4NjY3YzdhNTNhN2QwYmFhZCIKKyAgaW50ZWdy aXR5IHNoYTUxMi1TVjdUYVZjOGU5RS81WHV2NlRJeUo1VmhRcFpvVkZKcVg2SVpnajVIWm9GQ3RJ RENBckUzcVhrY0hsYzZPL1VkNFV3Y01vWCt0bHZEQTk1WXJLZExnQT09CiAgIGRlcGVuZGVuY2ll czoKICAgICAiQHR5cGVzL3Byb3AtdHlwZXMiICIqIgogICAgICJAdHlwZXMvc2NoZWR1bGVyIiAi KiIKICAgICBjc3N0eXBlICJeMy4wLjIiCiAKICJAdHlwZXMvc2NoZWR1bGVyQCoiOgotICB2ZXJz aW9uICIwLjE2LjEiCi0gIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL0B0 eXBlcy9zY2hlZHVsZXIvLS9zY2hlZHVsZXItMC4xNi4xLnRneiMxODg0NTIwNWU4NmZmMDAzODUx N2FhYjdhMThhNjJhNmI5ZjcxMjc1IgotICBpbnRlZ3JpdHkgc2hhNTEyLUVhQ3hiYW5WZXl4RFJU UUJrZExiM0J2bC9ISzdQQks2VUpqc1NpeEIwaUhLb1d4RTV1dTJRL0RndHBPaFBJb2pOMFpsMXdo dk9kN1BvSHMyUDBzNWVBPT0KKyAgdmVyc2lvbiAiMC4xNi4yIgorICByZXNvbHZlZCAiaHR0cHM6 Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9AdHlwZXMvc2NoZWR1bGVyLy0vc2NoZWR1bGVyLTAuMTYu Mi50Z3ojMWE2MmY4OTUyNTcyM2RkZTI0YmExYjAxYjA5MmJmNWRmOGFkNGQzOSIKKyAgaW50ZWdy aXR5IHNoYTUxMi1ocHBRRUJEbWx3aEZBWEtKWDJLbldMWXU1eU1maTkxeWF6UGIybCtsYkppd1cr d2RvMWdOZVJBKzNSZ05TTzM5V1lYMmV1ZXk0MUtFd25xZXNVMkpldz09CiAKICJAdHlwZXMvc3R5 bGVkLWpzeEBeMi4yLjgiOgotICB2ZXJzaW9uICIyLjIuOCIKLSAgcmVzb2x2ZWQgImh0dHBzOi8v cmVnaXN0cnkueWFybnBrZy5jb20vQHR5cGVzL3N0eWxlZC1qc3gvLS9zdHlsZWQtanN4LTIuMi44 LnRneiNiNTBkMTNkOGEzYzM0MDM2MjgyZDY1MTk0NTU0Y2YxODZiYWI3MjM0IgotICBpbnRlZ3Jp dHkgc2hhNTEyLVlqeWU5VndNZFllWGZTNzFpaHVlV1JTeHJydXVYVHdLQ2J6dWU0KzViMnJqblEv L0F0eU03bXlaMUJFaE5oQlEvbkwvUkU3YmRUb1VvTGxuMm1pS3ZnPT0KKyAgdmVyc2lvbiAiMi4y LjkiCisgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL0B0eXBlcy9zdHls ZWQtanN4Ly0vc3R5bGVkLWpzeC0yLjIuOS50Z3ojZTUwYjNmODY4YzA1NWJjYmY5YmMzNTNlY2E2 YzEwZmRhZDMyYTUzZiIKKyAgaW50ZWdyaXR5IHNoYTUxMi1XL2lUbElrR0V5VEJHVEV2WkNleThF Z1FsUTVsMER3TXFpM2lPWGxMczJreUJ3WVRYSEtFaVU2SVo1RXdvUnduZ0w4L2RHWXV6ZXpTdXA4 OXR0VkhMdz09CiAgIGRlcGVuZGVuY2llczoKICAgICAiQHR5cGVzL3JlYWN0IiAiKiIKIApAQCAt MjUwMSwxNDMgKzIxODAsMTQzIEBACiAgICAgdW5kZXJzY29yZSAiXjEuOS4xIgogICAgIHVybC1q b2luICJeNC4wLjAiCiAKLSJAd2ViYXNzZW1ibHlqcy9hc3RAMS4xMS4wIjoKLSAgdmVyc2lvbiAi MS4xMS4wIgotICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9Ad2ViYXNz ZW1ibHlqcy9hc3QvLS9hc3QtMS4xMS4wLnRneiNhNWFhNjc5ZWZkYzllNTE3MDdhNDIwNzEzOWRh NTc5MjA1NTU5NjFmIgotICBpbnRlZ3JpdHkgc2hhNTEyLWtYMlc0OUxXc2J0aHJtSVJNYlFadVFE aEd0anlxWGZFbW1IeUVpNFhXblNadFBteFkwKzNhblBJenNuUmI0NVZIL0o1NXpsT2ZXdlp1WTQ3 YUpaVEpnPT0KKyJAd2ViYXNzZW1ibHlqcy9hc3RAMS4xMS4xIjoKKyAgdmVyc2lvbiAiMS4xMS4x IgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9Ad2ViYXNzZW1ibHlq cy9hc3QvLS9hc3QtMS4xMS4xLnRneiMyYmZkNzY3ZWFlMWE2OTk2ZjQzMmZmN2U4ZDdmYzc1Njc5 YzBiNmE3IgorICBpbnRlZ3JpdHkgc2hhNTEyLXVrQmgxNHFGTGp4VFFOVFhvY2R5a3NONVFkTTI4 UzFDeEh0MnJkc2tGeUwreEZWN1ZyZW11QkxWYm1DZVBqK1VSYWxYQkVOeC85TG03bG5oaWh0Q1N3 PT0KICAgZGVwZW5kZW5jaWVzOgotICAgICJAd2ViYXNzZW1ibHlqcy9oZWxwZXItbnVtYmVycyIg IjEuMTEuMCIKLSAgICAiQHdlYmFzc2VtYmx5anMvaGVscGVyLXdhc20tYnl0ZWNvZGUiICIxLjEx LjAiCisgICAgIkB3ZWJhc3NlbWJseWpzL2hlbHBlci1udW1iZXJzIiAiMS4xMS4xIgorICAgICJA d2ViYXNzZW1ibHlqcy9oZWxwZXItd2FzbS1ieXRlY29kZSIgIjEuMTEuMSIKIAotIkB3ZWJhc3Nl bWJseWpzL2Zsb2F0aW5nLXBvaW50LWhleC1wYXJzZXJAMS4xMS4wIjoKLSAgdmVyc2lvbiAiMS4x MS4wIgotICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9Ad2ViYXNzZW1i bHlqcy9mbG9hdGluZy1wb2ludC1oZXgtcGFyc2VyLy0vZmxvYXRpbmctcG9pbnQtaGV4LXBhcnNl ci0xLjExLjAudGd6IzM0ZDYyMDUyZjQ1M2NkNDMxMDFkNzJlYWI0OTY2YTAyMjU4Nzk0N2MiCi0g IGludGVncml0eSBzaGE1MTItUS9hVllzL1ZuUERWWXZzQ0JML2dTZ3dtZmplQ2I0TFc4K1RNck8z Y1N6SkltZ3Y4bHh4RVBNMkpBNWpNcml2RTdMU3ozVitQRnF0TWJsczNtMWV4REE9PQorIkB3ZWJh c3NlbWJseWpzL2Zsb2F0aW5nLXBvaW50LWhleC1wYXJzZXJAMS4xMS4xIjoKKyAgdmVyc2lvbiAi MS4xMS4xIgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9Ad2ViYXNz ZW1ibHlqcy9mbG9hdGluZy1wb2ludC1oZXgtcGFyc2VyLy0vZmxvYXRpbmctcG9pbnQtaGV4LXBh cnNlci0xLjExLjEudGd6I2Y2YzYxYTcwNWYwZmQ3YTZhZWNhYTRlODE5OGYyM2Q5ZGMxNzllNGYi CisgIGludGVncml0eSBzaGE1MTItaUdSZnljNUJxK05uTnVYOGI1aHdCclJqemYwb2NySlBJNkdX Rm9kQkZ6bUZueXZyUTgzU0hLaG1pbENVLzhKdjY3aTRHSlpCTWhFemx0eHpjTmFndFE9PQogCi0i QHdlYmFzc2VtYmx5anMvaGVscGVyLWFwaS1lcnJvckAxLjExLjAiOgotICB2ZXJzaW9uICIxLjEx LjAiCi0gIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL0B3ZWJhc3NlbWJs eWpzL2hlbHBlci1hcGktZXJyb3IvLS9oZWxwZXItYXBpLWVycm9yLTEuMTEuMC50Z3ojYWFlYThm YjNiOTIzZjRhYWE5YjUxMmZmNTQxYjAxM2ZmYjY4ZDJkNCIKLSAgaW50ZWdyaXR5IHNoYTUxMi1i YVQvdmE5NWVYaVhiMlFmbFN4OTVRR1Q1Q2x6V3BHYWE4TDdKbkpiZ3pvWWVhQTI3RkN2dUJYVTc1 OGwrS1hXUm5kRW1VWGpQMFE1ZmliaGF2SW44dz09CisiQHdlYmFzc2VtYmx5anMvaGVscGVyLWFw aS1lcnJvckAxLjExLjEiOgorICB2ZXJzaW9uICIxLjExLjEiCisgIHJlc29sdmVkICJodHRwczov L3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL0B3ZWJhc3NlbWJseWpzL2hlbHBlci1hcGktZXJyb3IvLS9o ZWxwZXItYXBpLWVycm9yLTEuMTEuMS50Z3ojMWE2MzE5MmQ4Nzg4ZTVjMDEyODAwYmE2YTdhNDZj NzA1Mjg4ZmQxNiIKKyAgaW50ZWdyaXR5IHNoYTUxMi1SbGhTOENCQ1hmUlVSL2N3bzJobzlia2hl U1hHMCtOd29vWGNjM1BBSUxBTGYyUUxkRnlqN0tHc0tSYlZjOTVoWm5obkVSb240a1cvRDNTWnBw NlRjZz09CiAKLSJAd2ViYXNzZW1ibHlqcy9oZWxwZXItYnVmZmVyQDEuMTEuMCI6Ci0gIHZlcnNp b24gIjEuMTEuMCIKLSAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vQHdl YmFzc2VtYmx5anMvaGVscGVyLWJ1ZmZlci8tL2hlbHBlci1idWZmZXItMS4xMS4wLnRneiNkMDI2 YzI1ZDE3NWUzODhhN2RiZGE5Njk0ZTkxZTc0M2NiZTliNjQyIgotICBpbnRlZ3JpdHkgc2hhNTEy LXU5SFBCRWw0RFMrdkE4cUxRZEVRNk4vZUpRN2dUN2FOdk1JbzhBQVd2QWwveE1yY09TaUkyTTBN QW5NQ3kzaklGa2U3YkVlZS9Kd2RYMW5VcEN0ZHlBPT0KKyJAd2ViYXNzZW1ibHlqcy9oZWxwZXIt YnVmZmVyQDEuMTEuMSI6CisgIHZlcnNpb24gIjEuMTEuMSIKKyAgcmVzb2x2ZWQgImh0dHBzOi8v cmVnaXN0cnkueWFybnBrZy5jb20vQHdlYmFzc2VtYmx5anMvaGVscGVyLWJ1ZmZlci8tL2hlbHBl ci1idWZmZXItMS4xMS4xLnRneiM4MzJhOTAwZWI0NDQ4ODRjZGU5YTdjYWQ0NjdmODE1MDBmNWU1 YWI1IgorICBpbnRlZ3JpdHkgc2hhNTEyLWd3aWtGNjVhRE5lZVhhOEp4WGEyQkFrK1JFalN5aHJO Qzlad2RUMGY4amM0ZFFRZURRN0c0bTBmMlFDTFBKaU1UVE82d2ZEbVJtai9wVzBQc1V2SWNBPT0K IAotIkB3ZWJhc3NlbWJseWpzL2hlbHBlci1udW1iZXJzQDEuMTEuMCI6Ci0gIHZlcnNpb24gIjEu MTEuMCIKLSAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vQHdlYmFzc2Vt Ymx5anMvaGVscGVyLW51bWJlcnMvLS9oZWxwZXItbnVtYmVycy0xLjExLjAudGd6IzdhYjA0MTcy ZDU0ZTMxMmNjNmVhNDI4NmQ3ZDlmYTI3Yzg4Y2Q0ZjkiCi0gIGludGVncml0eSBzaGE1MTItRGhS UUtlbElqMDFzNUlnZHNPSk1LTHBwSSs0enBtY01RM1hib0ZQTHdDcFNOSDZIcW8xcml0Z0hnRDBu cUhlU1lxb2ZBNmFCTi9ObVh1R2pNMWpFZlE9PQorIkB3ZWJhc3NlbWJseWpzL2hlbHBlci1udW1i ZXJzQDEuMTEuMSI6CisgIHZlcnNpb24gIjEuMTEuMSIKKyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVn aXN0cnkueWFybnBrZy5jb20vQHdlYmFzc2VtYmx5anMvaGVscGVyLW51bWJlcnMvLS9oZWxwZXIt bnVtYmVycy0xLjExLjEudGd6IzY0ZDgxZGEyMTlmYmJiYTFlM2JkMWJmYzc0ZjZlOGM0ZTEwYTYy YWUiCisgIGludGVncml0eSBzaGE1MTItdkRrYnhpQjh6Zm5QZE5LOVJhamNleTVDMHcrUUp1Z0Vn bE4wb2Yra21POGw3bERiNzdBbmxLWVFGN2Fhclp1Q3J2K2wwVXZxTCs2OGdTRHIzazlMUFE9PQog ICBkZXBlbmRlbmNpZXM6Ci0gICAgIkB3ZWJhc3NlbWJseWpzL2Zsb2F0aW5nLXBvaW50LWhleC1w YXJzZXIiICIxLjExLjAiCi0gICAgIkB3ZWJhc3NlbWJseWpzL2hlbHBlci1hcGktZXJyb3IiICIx LjExLjAiCisgICAgIkB3ZWJhc3NlbWJseWpzL2Zsb2F0aW5nLXBvaW50LWhleC1wYXJzZXIiICIx LjExLjEiCisgICAgIkB3ZWJhc3NlbWJseWpzL2hlbHBlci1hcGktZXJyb3IiICIxLjExLjEiCiAg ICAgIkB4dHVjL2xvbmciICI0LjIuMiIKIAotIkB3ZWJhc3NlbWJseWpzL2hlbHBlci13YXNtLWJ5 dGVjb2RlQDEuMTEuMCI6Ci0gIHZlcnNpb24gIjEuMTEuMCIKLSAgcmVzb2x2ZWQgImh0dHBzOi8v cmVnaXN0cnkueWFybnBrZy5jb20vQHdlYmFzc2VtYmx5anMvaGVscGVyLXdhc20tYnl0ZWNvZGUv LS9oZWxwZXItd2FzbS1ieXRlY29kZS0xLjExLjAudGd6Izg1ZmRjZGE0MTI5OTAyZmU4NmY4MWFi ZjdlNzIzNjk1M2VjNWE0ZTEiCi0gIGludGVncml0eSBzaGE1MTItTWJtaHZ4WEV4bTU0MnRXUkVn U0ZuT1ZvMDdmRHBzQkpnM3NJbDZmU3A5eHV1NzVlR3o1bHozMXE3d1RMZmZ3TDNaYTdYTlJDTVp5 MjEwK3Ruc1VTRUE9PQorIkB3ZWJhc3NlbWJseWpzL2hlbHBlci13YXNtLWJ5dGVjb2RlQDEuMTEu MSI6CisgIHZlcnNpb24gIjEuMTEuMSIKKyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFy bnBrZy5jb20vQHdlYmFzc2VtYmx5anMvaGVscGVyLXdhc20tYnl0ZWNvZGUvLS9oZWxwZXItd2Fz bS1ieXRlY29kZS0xLjExLjEudGd6I2YzMjgyNDFlNDFlN2IxOTlkMGIyMGMxOGU4ODQyOWM0NDMz Mjk1ZTEiCisgIGludGVncml0eSBzaGE1MTItUHZwb09HaUp3WGVUclNmL3FmdWRKaHdsdkRReEZn ZWxiTXF0cTUyV1dpWEM2WGdnMUlSRWRuZ21QTjNiczRSb084M1BuTC9uRnJ4dWNYajErQlg2MlE9 PQogCi0iQHdlYmFzc2VtYmx5anMvaGVscGVyLXdhc20tc2VjdGlvbkAxLjExLjAiOgotICB2ZXJz aW9uICIxLjExLjAiCi0gIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL0B3 ZWJhc3NlbWJseWpzL2hlbHBlci13YXNtLXNlY3Rpb24vLS9oZWxwZXItd2FzbS1zZWN0aW9uLTEu MTEuMC50Z3ojOWNlMmNjODkzMDAyNjI1MDljODAxYjRhZjExM2QxY2EyNWMxYTc1YiIKLSAgaW50 ZWdyaXR5IHNoYTUxMi0zRWI4OGhjYmZZL0ZDdWtyZzZpM0VIOEgyVXNEN3g4Vnk0N2lWSnJQOTY3 QTlKR3FnQlZMOWFINzFTRVRQeDFKckdzT1VWTG8wYzd2TUNOMjJ5dEpldz09CisiQHdlYmFzc2Vt Ymx5anMvaGVscGVyLXdhc20tc2VjdGlvbkAxLjExLjEiOgorICB2ZXJzaW9uICIxLjExLjEiCisg IHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL0B3ZWJhc3NlbWJseWpzL2hl bHBlci13YXNtLXNlY3Rpb24vLS9oZWxwZXItd2FzbS1zZWN0aW9uLTEuMTEuMS50Z3ojMjFlZTA2 NWE3YjYzNWYzMTllNzM4ZjBkZDczYmZiZGEyODFjMDk3YSIKKyAgaW50ZWdyaXR5IHNoYTUxMi0x MFA5Tm8yOXJZWDFqN0YzRVZQWDNKdkdQUVBhZStBb211U1RQaUY5ZUJRZUNoSEk2aXFqTUl3UjlK bU9KWHdwbm4vb1ZHRGs3STVJbHNrdU13VS9wZz09CiAgIGRlcGVuZGVuY2llczoKLSAgICAiQHdl YmFzc2VtYmx5anMvYXN0IiAiMS4xMS4wIgotICAgICJAd2ViYXNzZW1ibHlqcy9oZWxwZXItYnVm ZmVyIiAiMS4xMS4wIgotICAgICJAd2ViYXNzZW1ibHlqcy9oZWxwZXItd2FzbS1ieXRlY29kZSIg IjEuMTEuMCIKLSAgICAiQHdlYmFzc2VtYmx5anMvd2FzbS1nZW4iICIxLjExLjAiCisgICAgIkB3 ZWJhc3NlbWJseWpzL2FzdCIgIjEuMTEuMSIKKyAgICAiQHdlYmFzc2VtYmx5anMvaGVscGVyLWJ1 ZmZlciIgIjEuMTEuMSIKKyAgICAiQHdlYmFzc2VtYmx5anMvaGVscGVyLXdhc20tYnl0ZWNvZGUi ICIxLjExLjEiCisgICAgIkB3ZWJhc3NlbWJseWpzL3dhc20tZ2VuIiAiMS4xMS4xIgogCi0iQHdl YmFzc2VtYmx5anMvaWVlZTc1NEAxLjExLjAiOgotICB2ZXJzaW9uICIxLjExLjAiCi0gIHJlc29s dmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL0B3ZWJhc3NlbWJseWpzL2llZWU3NTQv LS9pZWVlNzU0LTEuMTEuMC50Z3ojNDY5NzVkNTgzZjk4MjhmNWQwOTRhYzIxMGUyMTk0NDFjNGU2 ZjVjZiIKLSAgaW50ZWdyaXR5IHNoYTUxMi1LWHpPcXBjWVF3QWZlUTZXYkY2SFhvKzB1ZEJObXcw aVhEbUVLNXNGbG1RZG1ORCt0cjc3M1RpOC81VC9NNlRsLzQxM0FyU0pFckFUZDhJbjNCK1dCQT09 CisiQHdlYmFzc2VtYmx5anMvaWVlZTc1NEAxLjExLjEiOgorICB2ZXJzaW9uICIxLjExLjEiCisg IHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL0B3ZWJhc3NlbWJseWpzL2ll ZWU3NTQvLS9pZWVlNzU0LTEuMTEuMS50Z3ojOTYzOTI5ZTliYmQwNTcwOWU3ZTEyMjQzYTA5OTE4 MDgxMjk5MjYxNCIKKyAgaW50ZWdyaXR5IHNoYTUxMi1oSjg3UUlQdEFNS2JGcTZDR1RrWllKaXZF d1pEYlFVZ1lkM3FLU2FkVE5PaFZZN3ArZ2ZQNlNyMGxMUlZUYUcxSmpGaityM1ljaG9xUll4Tkgz TTBHUT09CiAgIGRlcGVuZGVuY2llczoKICAgICAiQHh0dWMvaWVlZTc1NCIgIl4xLjIuMCIKIAot IkB3ZWJhc3NlbWJseWpzL2xlYjEyOEAxLjExLjAiOgotICB2ZXJzaW9uICIxLjExLjAiCi0gIHJl c29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL0B3ZWJhc3NlbWJseWpzL2xlYjEy OC8tL2xlYjEyOC0xLjExLjAudGd6I2Y3MzUzZGUxZGYzOGFhMjAxY2JhOWZiODhiNDNmNDFmNzVm ZjQwM2IiCi0gIGludGVncml0eSBzaGE1MTItYXFic0hhMW1TUUFiZWVOY2wzOHVuNnFWWSsraGg4 T3BDT3p4aGl4U1lnYlJmTldjeEpOSlF3ZTJyZXpLOVhFY3NzSmJiV0lrYmxhSlJ3R01TOXpwK2c9 PQorIkB3ZWJhc3NlbWJseWpzL2xlYjEyOEAxLjExLjEiOgorICB2ZXJzaW9uICIxLjExLjEiCisg IHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL0B3ZWJhc3NlbWJseWpzL2xl YjEyOC8tL2xlYjEyOC0xLjExLjEudGd6I2NlODE0YjQ1NTc0ZTkzZDc2YmFlMWZiMjY0NGFiOWNk ZDk1MjdhYTUiCisgIGludGVncml0eSBzaGE1MTItQkoyUDBoTlowdStUaDFZWlhKcHpXNm1pd3FR VUdjSUhUMUcvc2Y3MmdMVkQ5RFo1QWRZVHFQTmJIWmg2SzFNNVZtS3ZGWHdHU1daQUR6K3FCV3hl Unc9PQogICBkZXBlbmRlbmNpZXM6CiAgICAgIkB4dHVjL2xvbmciICI0LjIuMiIKIAotIkB3ZWJh c3NlbWJseWpzL3V0ZjhAMS4xMS4wIjoKLSAgdmVyc2lvbiAiMS4xMS4wIgotICByZXNvbHZlZCAi aHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9Ad2ViYXNzZW1ibHlqcy91dGY4Ly0vdXRmOC0x LjExLjAudGd6Izg2ZTQ4Zjk1OWNmNDllMGU1MDkxZjA2OWE3MDliODYyZjVhMmNhZGYiCi0gIGlu dGVncml0eSBzaGE1MTItQS9sY2xHeEg2U3BTTFN5Rm93TXpPLythREVQVTRodkVpb29DTVhRUGNR RlBQSmFZY1BRTktHT0NMVXlTSnNZSjR0cmJwcitGczA4bjRqZWxrVlRHVnc9PQotCi0iQHdlYmFz c2VtYmx5anMvd2FzbS1lZGl0QDEuMTEuMCI6Ci0gIHZlcnNpb24gIjEuMTEuMCIKLSAgcmVzb2x2 ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vQHdlYmFzc2VtYmx5anMvd2FzbS1lZGl0 Ly0vd2FzbS1lZGl0LTEuMTEuMC50Z3ojZWU0YTVjOWY2NzcwNDZhMjEwNTQyYWU2Mzg5NzA5NGMy MDI3Y2I3OCIKLSAgaW50ZWdyaXR5IHNoYTUxMi1KSFEwZGFtWHkwRzZKOXVjeUtWWE8yajA4SlZK Mm50a2RKbHExVVRpVXJJZ2ZHTW1BN0lrNVZkQy9MOGhCSzQ2a1ZKZ3Vqa0JJb010VDh5VnIreVZP UT09Ci0gIGRlcGVuZGVuY2llczoKLSAgICAiQHdlYmFzc2VtYmx5anMvYXN0IiAiMS4xMS4wIgot ICAgICJAd2ViYXNzZW1ibHlqcy9oZWxwZXItYnVmZmVyIiAiMS4xMS4wIgotICAgICJAd2ViYXNz ZW1ibHlqcy9oZWxwZXItd2FzbS1ieXRlY29kZSIgIjEuMTEuMCIKLSAgICAiQHdlYmFzc2VtYmx5 anMvaGVscGVyLXdhc20tc2VjdGlvbiIgIjEuMTEuMCIKLSAgICAiQHdlYmFzc2VtYmx5anMvd2Fz bS1nZW4iICIxLjExLjAiCi0gICAgIkB3ZWJhc3NlbWJseWpzL3dhc20tb3B0IiAiMS4xMS4wIgot ICAgICJAd2ViYXNzZW1ibHlqcy93YXNtLXBhcnNlciIgIjEuMTEuMCIKLSAgICAiQHdlYmFzc2Vt Ymx5anMvd2FzdC1wcmludGVyIiAiMS4xMS4wIgotCi0iQHdlYmFzc2VtYmx5anMvd2FzbS1nZW5A MS4xMS4wIjoKLSAgdmVyc2lvbiAiMS4xMS4wIgotICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3Ry eS55YXJucGtnLmNvbS9Ad2ViYXNzZW1ibHlqcy93YXNtLWdlbi8tL3dhc20tZ2VuLTEuMTEuMC50 Z3ojM2NkYjM1ZTcwMDgyZDQyYTM1MTY2OTg4ZGRhNjRmMjRjZWI5N2FiZSIKLSAgaW50ZWdyaXR5 IHNoYTUxMi1CRVV2MWFqMFdwdENaOWtJUzMwdGg1SUxBU1VuQVBFdkUzdFZNVHJJdG5aUlQ5dFhD TFcyTEVYVDhlekx3NTlycVBQOWtsaDlMUG1wVStXbVJRbUNQUT09Ci0gIGRlcGVuZGVuY2llczoK LSAgICAiQHdlYmFzc2VtYmx5anMvYXN0IiAiMS4xMS4wIgotICAgICJAd2ViYXNzZW1ibHlqcy9o ZWxwZXItd2FzbS1ieXRlY29kZSIgIjEuMTEuMCIKLSAgICAiQHdlYmFzc2VtYmx5anMvaWVlZTc1 NCIgIjEuMTEuMCIKLSAgICAiQHdlYmFzc2VtYmx5anMvbGViMTI4IiAiMS4xMS4wIgotICAgICJA d2ViYXNzZW1ibHlqcy91dGY4IiAiMS4xMS4wIgotCi0iQHdlYmFzc2VtYmx5anMvd2FzbS1vcHRA MS4xMS4wIjoKLSAgdmVyc2lvbiAiMS4xMS4wIgotICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3Ry eS55YXJucGtnLmNvbS9Ad2ViYXNzZW1ibHlqcy93YXNtLW9wdC8tL3dhc20tb3B0LTEuMTEuMC50 Z3ojMTYzOGFlMTg4MTM3ZjRiYjAzMWY1NjhhNDEzY2QyNGQzMmY5Mjk3OCIKLSAgaW50ZWdyaXR5 IHNoYTUxMi10SFVTUDVGNHl3eWgzaFowK2ZEUXVXeEt4M21KaVBlRnVmZys5Z3dUcFlwMzI0bVBD UWdudVZLd3pMVFpWcWowZHVSRG92blBhWnFEd295aElPOGtZZz09Ci0gIGRlcGVuZGVuY2llczoK LSAgICAiQHdlYmFzc2VtYmx5anMvYXN0IiAiMS4xMS4wIgotICAgICJAd2ViYXNzZW1ibHlqcy9o ZWxwZXItYnVmZmVyIiAiMS4xMS4wIgotICAgICJAd2ViYXNzZW1ibHlqcy93YXNtLWdlbiIgIjEu MTEuMCIKLSAgICAiQHdlYmFzc2VtYmx5anMvd2FzbS1wYXJzZXIiICIxLjExLjAiCi0KLSJAd2Vi YXNzZW1ibHlqcy93YXNtLXBhcnNlckAxLjExLjAiOgotICB2ZXJzaW9uICIxLjExLjAiCi0gIHJl c29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL0B3ZWJhc3NlbWJseWpzL3dhc20t cGFyc2VyLy0vd2FzbS1wYXJzZXItMS4xMS4wLnRneiMzZTY4MGI4ODMwZDViMTNkMWVjODZjYzQy ZjM4ZjNkNGE3NzAwNzU0IgotICBpbnRlZ3JpdHkgc2hhNTEyLTZMMjg1U2d1OWdwaHJjcERYSU52 bTBNOUJza3pubnpKVEU3Z1lrakRieEVUMjhzaERxcDI3d3BydXl4M0MyUy9kdkV3aWlnQndMQTFj ejdsTlVpMGt3PT0KLSAgZGVwZW5kZW5jaWVzOgotICAgICJAd2ViYXNzZW1ibHlqcy9hc3QiICIx LjExLjAiCi0gICAgIkB3ZWJhc3NlbWJseWpzL2hlbHBlci1hcGktZXJyb3IiICIxLjExLjAiCi0g ICAgIkB3ZWJhc3NlbWJseWpzL2hlbHBlci13YXNtLWJ5dGVjb2RlIiAiMS4xMS4wIgotICAgICJA d2ViYXNzZW1ibHlqcy9pZWVlNzU0IiAiMS4xMS4wIgotICAgICJAd2ViYXNzZW1ibHlqcy9sZWIx MjgiICIxLjExLjAiCi0gICAgIkB3ZWJhc3NlbWJseWpzL3V0ZjgiICIxLjExLjAiCi0KLSJAd2Vi YXNzZW1ibHlqcy93YXN0LXByaW50ZXJAMS4xMS4wIjoKLSAgdmVyc2lvbiAiMS4xMS4wIgotICBy ZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9Ad2ViYXNzZW1ibHlqcy93YXN0 LXByaW50ZXIvLS93YXN0LXByaW50ZXItMS4xMS4wLnRneiM2ODBkMWY2YTUzNjVkNmQ0MDE5NzRh OGU5NDllMDU0NzRlMWZhYjdlIgotICBpbnRlZ3JpdHkgc2hhNTEyLUZnNU9YNDZwUmRUZ0I3cktJ VW9qa2g5dlhhVk42c0dZQ25FaUpOMUdZa2IwUlB3U2haWHA2S1REcW1vTWRRUEtoY3JvT1hoM2ZF em1rV21DWWFLWWhRPT0KLSAgZGVwZW5kZW5jaWVzOgotICAgICJAd2ViYXNzZW1ibHlqcy9hc3Qi ICIxLjExLjAiCisiQHdlYmFzc2VtYmx5anMvdXRmOEAxLjExLjEiOgorICB2ZXJzaW9uICIxLjEx LjEiCisgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL0B3ZWJhc3NlbWJs eWpzL3V0ZjgvLS91dGY4LTEuMTEuMS50Z3ojZDFmOGI3NjQzNjllN2M2ZTZiYWUzNTBlODU0ZGVj OWE1OWYwYTNmZiIKKyAgaW50ZWdyaXR5IHNoYTUxMi05a3FjeEFFZE1oaXdRa0hwa05pb3JaenFw R3JvZFFRMklHckhIeEN5K096bmcwb2Z5TUEwbFRxaUxrVnMxdXpUUmVqWCsvTzBFT1Q3S3hxVlB1 WG9zUT09CisKKyJAd2ViYXNzZW1ibHlqcy93YXNtLWVkaXRAMS4xMS4xIjoKKyAgdmVyc2lvbiAi MS4xMS4xIgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9Ad2ViYXNz ZW1ibHlqcy93YXNtLWVkaXQvLS93YXNtLWVkaXQtMS4xMS4xLnRneiNhZDIwNmViZjRiZjk1YTA1 OGNlOTg4MGE4YzA5MmM1ZGVjODE5M2Q2IgorICBpbnRlZ3JpdHkgc2hhNTEyLWcrUnN1cFVDMWFU SGZSOENEZ25zVlJWWkZKcWRrRkhwc0hNZkp1V1F6V1UzdHZuTEMwN1VxSElDZlArNFh5TDJ0bnIx YW12bDFTZHAwNlRuWUNtVmtBPT0KKyAgZGVwZW5kZW5jaWVzOgorICAgICJAd2ViYXNzZW1ibHlq cy9hc3QiICIxLjExLjEiCisgICAgIkB3ZWJhc3NlbWJseWpzL2hlbHBlci1idWZmZXIiICIxLjEx LjEiCisgICAgIkB3ZWJhc3NlbWJseWpzL2hlbHBlci13YXNtLWJ5dGVjb2RlIiAiMS4xMS4xIgor ICAgICJAd2ViYXNzZW1ibHlqcy9oZWxwZXItd2FzbS1zZWN0aW9uIiAiMS4xMS4xIgorICAgICJA d2ViYXNzZW1ibHlqcy93YXNtLWdlbiIgIjEuMTEuMSIKKyAgICAiQHdlYmFzc2VtYmx5anMvd2Fz bS1vcHQiICIxLjExLjEiCisgICAgIkB3ZWJhc3NlbWJseWpzL3dhc20tcGFyc2VyIiAiMS4xMS4x IgorICAgICJAd2ViYXNzZW1ibHlqcy93YXN0LXByaW50ZXIiICIxLjExLjEiCisKKyJAd2ViYXNz ZW1ibHlqcy93YXNtLWdlbkAxLjExLjEiOgorICB2ZXJzaW9uICIxLjExLjEiCisgIHJlc29sdmVk ICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL0B3ZWJhc3NlbWJseWpzL3dhc20tZ2VuLy0v d2FzbS1nZW4tMS4xMS4xLnRneiM4NmM1ZWEzMDQ4NDk3NTliN2Q4OGM0N2EzMmY0ZjAzOWFlM2M4 Zjc2IgorICBpbnRlZ3JpdHkgc2hhNTEyLUY3UXFLWHd3TmxNbXN1bGo2K083cjRtbXRBbENXZk8v MEhkZ094U2tsWmZRY0R1MFRwTGlEMW1SdC96RjI1Qms1OUZJakV1R0FJeW41ZWk0eU1mTGhBPT0K KyAgZGVwZW5kZW5jaWVzOgorICAgICJAd2ViYXNzZW1ibHlqcy9hc3QiICIxLjExLjEiCisgICAg IkB3ZWJhc3NlbWJseWpzL2hlbHBlci13YXNtLWJ5dGVjb2RlIiAiMS4xMS4xIgorICAgICJAd2Vi YXNzZW1ibHlqcy9pZWVlNzU0IiAiMS4xMS4xIgorICAgICJAd2ViYXNzZW1ibHlqcy9sZWIxMjgi ICIxLjExLjEiCisgICAgIkB3ZWJhc3NlbWJseWpzL3V0ZjgiICIxLjExLjEiCisKKyJAd2ViYXNz ZW1ibHlqcy93YXNtLW9wdEAxLjExLjEiOgorICB2ZXJzaW9uICIxLjExLjEiCisgIHJlc29sdmVk ICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL0B3ZWJhc3NlbWJseWpzL3dhc20tb3B0Ly0v d2FzbS1vcHQtMS4xMS4xLnRneiM2NTdiNGMyMjAyZjRjZjNiMzQ1ZjhhNGM2NDYxYzhjMjQxODk4 NWYyIgorICBpbnRlZ3JpdHkgc2hhNTEyLVZxbmtOcW5abFU1RUI2NHBwMWw3aGRtM2htUXc3Vmdx YTBLRi9LQ05POXNJcEk2Rms2YnJERWlYK2lDT1lydk11QldEd3MwTmtUT3hZRWI4NVhRSEh3PT0K KyAgZGVwZW5kZW5jaWVzOgorICAgICJAd2ViYXNzZW1ibHlqcy9hc3QiICIxLjExLjEiCisgICAg IkB3ZWJhc3NlbWJseWpzL2hlbHBlci1idWZmZXIiICIxLjExLjEiCisgICAgIkB3ZWJhc3NlbWJs eWpzL3dhc20tZ2VuIiAiMS4xMS4xIgorICAgICJAd2ViYXNzZW1ibHlqcy93YXNtLXBhcnNlciIg IjEuMTEuMSIKKworIkB3ZWJhc3NlbWJseWpzL3dhc20tcGFyc2VyQDEuMTEuMSI6CisgIHZlcnNp b24gIjEuMTEuMSIKKyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vQHdl YmFzc2VtYmx5anMvd2FzbS1wYXJzZXIvLS93YXNtLXBhcnNlci0xLjExLjEudGd6Izg2Y2E3MzQ1 MzRmNDE3ZTliZDNjNjdjN2ExYzc1ZDhiZTQxZmIxOTkiCisgIGludGVncml0eSBzaGE1MTItcnJC dWp3K2RKdTMyZ1lCNy9MdXA2VWhka1B4OVM5U25vYlp6UlZMN1ZjQkg5QnQ5YkNCTEV1WC9ZWE9P dEJzT1o0TlFyUnlrS2hmZlJXSHZpZ1F2T0E9PQorICBkZXBlbmRlbmNpZXM6CisgICAgIkB3ZWJh c3NlbWJseWpzL2FzdCIgIjEuMTEuMSIKKyAgICAiQHdlYmFzc2VtYmx5anMvaGVscGVyLWFwaS1l cnJvciIgIjEuMTEuMSIKKyAgICAiQHdlYmFzc2VtYmx5anMvaGVscGVyLXdhc20tYnl0ZWNvZGUi ICIxLjExLjEiCisgICAgIkB3ZWJhc3NlbWJseWpzL2llZWU3NTQiICIxLjExLjEiCisgICAgIkB3 ZWJhc3NlbWJseWpzL2xlYjEyOCIgIjEuMTEuMSIKKyAgICAiQHdlYmFzc2VtYmx5anMvdXRmOCIg IjEuMTEuMSIKKworIkB3ZWJhc3NlbWJseWpzL3dhc3QtcHJpbnRlckAxLjExLjEiOgorICB2ZXJz aW9uICIxLjExLjEiCisgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL0B3 ZWJhc3NlbWJseWpzL3dhc3QtcHJpbnRlci8tL3dhc3QtcHJpbnRlci0xLjExLjEudGd6I2QwYzcz YmVkYThlZWM1NDI2ZjEwYWU4ZWY1NWNlZTVlNzA4NGMyZjAiCisgIGludGVncml0eSBzaGE1MTIt SVFib1VXTTRlS3pXVytOL2ppajJzUmF0S01oOTlRRWVsbzNFYjJxMHFYa3ZQUklTQWo4UXh0bXc1 aXR3cUsrVFRrQnVVSUU0NUF4WVBUb3FQdEw1Z2c9PQorICBkZXBlbmRlbmNpZXM6CisgICAgIkB3 ZWJhc3NlbWJseWpzL2FzdCIgIjEuMTEuMSIKICAgICAiQHh0dWMvbG9uZyIgIjQuMi4yIgogCi0i QHdlYnBhY2stY2xpL2NvbmZpZ3Rlc3RAXjEuMC4zIjoKLSAgdmVyc2lvbiAiMS4wLjMiCi0gIHJl c29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL0B3ZWJwYWNrLWNsaS9jb25maWd0 ZXN0Ly0vY29uZmlndGVzdC0xLjAuMy50Z3ojMjA0YmNmZjg3Y2RhM2VhNDgxMDg4MWY3ZWE5NmU1 ZjUzMjFiODdiOSIKLSAgaW50ZWdyaXR5IHNoYTUxMi1XUXMwZXA5OEZYWDJYQkFmUXBSYlkwTWE2 QUR3OEpSNnhvSWthSWlKSXpDbEdPTXFWUnZQQ1dxbmRUeGYyOERnRm9wV2FuMEVLdEh0Zy81VzFo MFprdz09CisiQHdlYnBhY2stY2xpL2NvbmZpZ3Rlc3RAXjEuMS4wIjoKKyAgdmVyc2lvbiAiMS4x LjAiCisgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL0B3ZWJwYWNrLWNs aS9jb25maWd0ZXN0Ly0vY29uZmlndGVzdC0xLjEuMC50Z3ojODM0MmJlZjBiYWRmYjdkZmQzYjU3 NmYyNTc0YWI4MGM3MjViZTA0MyIKKyAgaW50ZWdyaXR5IHNoYTUxMi10dE9rRWtvYWxFSGE3UmFG WXBNMEVySzF4YzR0d2czQW05aGZIaEw3TVZxbEhlYm5rWWQyd3VJL1pxVERqMGNWelpobzZQZGlu WTBwaEZaVjNPME16Zz09CiAKLSJAd2VicGFjay1jbGkvaW5mb0BeMS4yLjQiOgotICB2ZXJzaW9u ICIxLjIuNCIKLSAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vQHdlYnBh Y2stY2xpL2luZm8vLS9pbmZvLTEuMi40LnRneiM3MzgxZmQ0MWM5NTc3YjJkOGY2YzI1OTRmYWQz OTdlZjQ5YWQ1NTczIgotICBpbnRlZ3JpdHkgc2hhNTEyLW9nRTJUNCtwTGhUVFBTLzhNTTNJakhu MElZcGxLTTRIYlZOTUNXQTlONE5yZFB6dW53ZW5wQ3NxS0VYeWVqTWZSdTZLOG1oYXVJUFlmOFp4 V0c1TzZnPT0KKyJAd2VicGFjay1jbGkvaW5mb0BeMS40LjAiOgorICB2ZXJzaW9uICIxLjQuMCIK KyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vQHdlYnBhY2stY2xpL2lu Zm8vLS9pbmZvLTEuNC4wLnRneiNiOTE3OWMzMjI3YWIwOWNiYmIxNDlhYTczMzQ3NWZjZjk5NDMw MjIzIgorICBpbnRlZ3JpdHkgc2hhNTEyLUY2YitNYW4wcndFNG4wNDA5RnlBSkhTdFlBNU9JWkVS eG1uVWZMVnd2MG1jMFYxd0xhZDNWN2pxUmxNa2dLQmVBcTA3alV2Z2xhY05hYTZnOWxPcHV3PT0K ICAgZGVwZW5kZW5jaWVzOgogICAgIGVudmluZm8gIl43LjcuMyIKIAotIkB3ZWJwYWNrLWNsaS9z ZXJ2ZUBeMS40LjAiOgotICB2ZXJzaW9uICIxLjQuMCIKLSAgcmVzb2x2ZWQgImh0dHBzOi8vcmVn aXN0cnkueWFybnBrZy5jb20vQHdlYnBhY2stY2xpL3NlcnZlLy0vc2VydmUtMS40LjAudGd6I2Y4 NGZkMDdiY2FjZWZlNTZjZTc2MjkyNTc5ODg3MTA5MmYwZjIyOGUiCi0gIGludGVncml0eSBzaGE1 MTIteGdUL0hxSit1TFdHWCtNenVmdXNsM2NnakFjbnFZWXNrYUI3bzB2UmN3T0VmdXU2aE16U0lM UXBuSXpGTUdzVGFlYVg0Tm5la2wrNmZhZExibDEvVmc9PQorIkB3ZWJwYWNrLWNsaS9zZXJ2ZUBe MS42LjAiOgorICB2ZXJzaW9uICIxLjYuMCIKKyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnku eWFybnBrZy5jb20vQHdlYnBhY2stY2xpL3NlcnZlLy0vc2VydmUtMS42LjAudGd6IzJjMjc1YWEw NWM4OTVlY2NlYmJmYzM0Y2ZiMjIzYzZlOGJkNTkxYTIiCisgIGludGVncml0eSBzaGE1MTItWmtW ZXFFbVJwQlYyR0h2ampVWnFFYWkyUHBVYnVxOEJxZC8vdkVZc3A2M0o4V3lleEk4cHBDcVZTM1pz MFFBRGY2YVd1UGRVKzBYc1BJNjQ3UFZsUUE9PQogCiAiQHdvanRla21hai9lbnp5bWUtYWRhcHRl ci1yZWFjdC0xN0BeMC40LjEiOgogICB2ZXJzaW9uICIwLjQuMSIKQEAgLTI2OTEsMTggKzIzNzAs MjMgQEAgYWNjZXB0c0B+MS4zLjQ6CiAgICAgbmVnb3RpYXRvciAiMC42LjIiCiAKIGFjZS1idWls ZHNAXjEuNC4xMjoKLSAgdmVyc2lvbiAiMS40LjEyIgotICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdp c3RyeS55YXJucGtnLmNvbS9hY2UtYnVpbGRzLy0vYWNlLWJ1aWxkcy0xLjQuMTIudGd6Izg4OGVm YTM4NmUzNmY0MzQ1ZjQwYjUyMzNmY2M0ZmU0YzU4OGZhZTciCi0gIGludGVncml0eSBzaGE1MTIt RytjaEpjdEZQaWlMR3ZzMysvTWx5M2FwWFRjZmdFNDVkVDV5cDEyQmNXWjFrVXMrZ20wcWQzL2Z2 NGdzejZmVmFnNG1NMG1vSFZwakhESWdwaDZQc2c9PQorICB2ZXJzaW9uICIxLjQuMTMiCisgIHJl c29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL2FjZS1idWlsZHMvLS9hY2UtYnVp bGRzLTEuNC4xMy50Z3ojMTg2ZjQyZDM4NDllYmNjNmE0OGI5MzA4OGEwNTg0ODk4OTc1MTRjMSIK KyAgaW50ZWdyaXR5IHNoYTUxMi1TT0x6ZGFRa1k2ZWNQS1lSRERnK01ZMVdvR2dYQTM0Y0l2WUpO Tm9CTUdHVXN3SG1sYXVVMkh5MFVMOTZ2VzBGcy9MZ0ZiTVVqRCs2dnF6V1RsZElZUT09CiAKICJh Y2l0cmVlQGdpdCtodHRwczovL2dpdGh1Yi5jb20vaW1zdXJpbmRlcjkwL2pxdWVyeS1hY2lUcmVl LmdpdCNyYy43IjoKICAgdmVyc2lvbiAiNC41LjAtcmMuNyIKICAgcmVzb2x2ZWQgImdpdCtodHRw czovL2dpdGh1Yi5jb20vaW1zdXJpbmRlcjkwL2pxdWVyeS1hY2lUcmVlLmdpdCMyNGRjZDc1MzZh MDA4YWJlMjVkYTZhZGI3YmZkZThlZWI1Mzg5MmYxIgogCithY29ybi1pbXBvcnQtYXNzZXJ0aW9u c0BeMS43LjY6CisgIHZlcnNpb24gIjEuOC4wIgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3Ry eS55YXJucGtnLmNvbS9hY29ybi1pbXBvcnQtYXNzZXJ0aW9ucy8tL2Fjb3JuLWltcG9ydC1hc3Nl cnRpb25zLTEuOC4wLnRneiNiYTJiNTkzOWNlNjJjMjM4ZGI2ZDkzZDgxYzliMTExYjI5Yjg1NWU5 IgorICBpbnRlZ3JpdHkgc2hhNTEyLW03Vlozand6NGVLNkE0VnR0OEV3MS9tTmJQMjR1MEZoZHlm QTdmU3ZuSlI2TE1kZk9Zbm11SXJySkFncllmWUoxMEYvb3RhSFR0cnRydG1IZE1OekV3PT0KKwog YWNvcm4tanN4QF41LjMuMToKLSAgdmVyc2lvbiAiNS4zLjEiCi0gIHJlc29sdmVkICJodHRwczov L3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL2Fjb3JuLWpzeC8tL2Fjb3JuLWpzeC01LjMuMS50Z3ojZmM4 NjYxZTExYjdhYzE1MzljNDdkYmZlYTJlNzJiM2FmMzRkMjY3YiIKLSAgaW50ZWdyaXR5IHNoYTUx Mi1LMFB0bS80N09LZlFScE5RMkovb0lOLzNRWWlLNkZ3VytlSmJJTGhzZHhoMldUTGRsKzMwbzhh R2RUYm01SmJmZnBGRkFnL2cremkxRStqdkpoYTVuZz09CisgIHZlcnNpb24gIjUuMy4yIgorICBy ZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9hY29ybi1qc3gvLS9hY29ybi1q c3gtNS4zLjIudGd6IzdlZDViYjU1OTA4YjNiMmYxYmM1NWM2YWYxNjUzYmFkYTdmMDc5MzciCisg IGludGVncml0eSBzaGE1MTItcnE5cytKTmhmMElDaGp0RFh4bGxKN2c0MW9aazVTbFh0cDBMSHd5 QTVjZWp3bjd2S21LcDRwUHJpNllFZVB2MlBVNjVzQXNlZ2JYdElpbm1ERkRYZ1E9PQogCiBhY29y bi1ub2RlQF4xLjIuMCwgYWNvcm4tbm9kZUBeMS4zLjAsIGFjb3JuLW5vZGVAXjEuNS4yLCBhY29y bi1ub2RlQF4xLjYuMToKICAgdmVyc2lvbiAiMS44LjIiCkBAIC0yNzE5LDE5ICsyNDAzLDE5IEBA IGFjb3JuLXdhbGtAXjcuMC4wOgogICBpbnRlZ3JpdHkgc2hhNTEyLU9QZENGNkdzTUlQK0F6K2FX ZkFBT0V0Mi8raVZES0U3b3k2bEowOThhb2U1OW9BbUs3NnFWNkd3NjBTYlo4akh1RzJ3SDA1OEdG NHBMRmJZYW1ZclZBPT0KIAogYWNvcm4td2Fsa0BeOC4wLjA6Ci0gIHZlcnNpb24gIjguMS4wIgot ICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9hY29ybi13YWxrLy0vYWNv cm4td2Fsay04LjEuMC50Z3ojZDNjNmE5ZmFmMDA5ODdhNWUyYjliZGI1MDZjMmFhNzZjZDcwN2Y4 MyIKLSAgaW50ZWdyaXR5IHNoYTUxMi1tam16bXYxMllJRy9HOEpRZFF1ejJNVURTaEVKNnRlWXBU NWJtV0E0cTdpd29HZW44eHR0M3R3RjNPdnpJVWwrUTA2YVdJanZud1FVS3ZRNlR0TVJqZz09Cisg IHZlcnNpb24gIjguMi4wIgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNv bS9hY29ybi13YWxrLy0vYWNvcm4td2Fsay04LjIuMC50Z3ojNzQxMjEwZjJlMjQyNjQ1NDUwODg1 M2EyZjQ0ZDBhYjgzYjdmNjljMSIKKyAgaW50ZWdyaXR5IHNoYTUxMi1rK2l5SEV1UGdTdzZTYnVE cEdRTSswNkhRVWEwNERaM28rRjZDU3pYTXZ2STVLTXZuYUVxWGUrWVZlNTU1UjlubjZHUHQ0MDRm b3M0d2NncHcxMlNEQT09CiAKIGFjb3JuQF43LjAuMCwgYWNvcm5AXjcuNC4wOgogICB2ZXJzaW9u ICI3LjQuMSIKICAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vYWNvcm4v LS9hY29ybi03LjQuMS50Z3ojZmVhZWQyNTU5NzNkMmU3NzU1NWI4M2RiYzA4ODUxYTZjNjM1MjBm YSIKICAgaW50ZWdyaXR5IHNoYTUxMi1uUXlwMG8xL21OZGJUTzFQTzZrSGt3U3JtZ1owTVQvakND cE5pd2JVakdvUk40ZGxCaHFKdG9RdUNuRU9LemdUVndnMFpXaUNvUXk2U3hNZWJRVmg4QT09CiAK LWFjb3JuQF44LjAuNDoKLSAgdmVyc2lvbiAiOC4yLjQiCi0gIHJlc29sdmVkICJodHRwczovL3Jl Z2lzdHJ5Lnlhcm5wa2cuY29tL2Fjb3JuLy0vYWNvcm4tOC4yLjQudGd6I2NhYmEyNGIwODE4NWMz YjU2ZTMxNjhlOTdkMTVlZDE3ZjRkMzFmZDAiCi0gIGludGVncml0eSBzaGE1MTItSWJ0ODRZd0JE REE4OTBlRGlEQ0VxY2J3dkhsQnZ6ekRrVTJjR0JCRERJMVFXVDEyalRpWElPbjJDSXc1S0s0aTZO NVoySFV4d1lqenJpRHlxYXFxWmc9PQorYWNvcm5AXjguMC40LCBhY29ybkBeOC40LjE6CisgIHZl cnNpb24gIjguNS4wIgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9h Y29ybi8tL2Fjb3JuLTguNS4wLnRneiM0NTEyY2NiOTliMzY5OGM3NTI1OTFlOWJiNDQ3MmUzOGFk NDNjZWUyIgorICBpbnRlZ3JpdHkgc2hhNTEyLXlYYlllRnkralV1WWQzL0NEY2cyTmtJWUU5OTFY WVgvYmplN0xtakppZ1VjaWFlTzFKUjRYeFhnQ0lWMS9aYy9kUnVGRXl3MUwwcGJBK3F5bkprVzVR PT0KIAogYWdlbnQtYmFzZUA2LCBhZ2VudC1iYXNlQF42LjAuMjoKICAgdmVyc2lvbiAiNi4wLjIi CkBAIC0yODAzLDkgKzI0ODcsOSBAQCBhanZAXjYuMS4wLCBhanZAXjYuMTAuMCwgYWp2QF42LjEy LjQsIGFqdkBeNi4xMi41LCBhanZAXjYuMTIuNjoKICAgICB1cmktanMgIl40LjIuMiIKIAogYWp2 QF44LjAuMToKLSAgdmVyc2lvbiAiOC41LjAiCi0gIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5 Lnlhcm5wa2cuY29tL2Fqdi8tL2Fqdi04LjUuMC50Z3ojNjk1NTI4Mjc0YmNiNWFmYzg2NTQ0NmFh Mjc1NDg0MDQ5YTE4YWU0YiIKLSAgaW50ZWdyaXR5IHNoYTUxMi1ZMmwzOTlUdDFBZ3VVM0JQUlA5 Rm40ZU4rT3IrU3RVR1dDVXBibkZ5WFNvOE5aOVM0dWorQUcycGpzNWFwSytaTU93WU96MSthK1ZL dktIN0N1ZFhnUT09CisgIHZlcnNpb24gIjguNi4zIgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdp c3RyeS55YXJucGtnLmNvbS9hanYvLS9hanYtOC42LjMudGd6IzExYTY2NTI3NzYxZGMzZTlhMzg0 NWVhNzc1ZDJkM2MwNDE0ZTg3NjQiCisgIGludGVncml0eSBzaGE1MTItU01KT2REUDZMcVRrRDBV cThxTGkrZ013U3QwaW1YTFNWMDgwcUZWd0pDcEg5VTZNYitTVUdIQVhNMEtOYmNCUGd1eXRXeXZG eGNIZ01MZTJEMlhTcHc9PQogICBkZXBlbmRlbmNpZXM6CiAgICAgZmFzdC1kZWVwLWVxdWFsICJe My4xLjEiCiAgICAganNvbi1zY2hlbWEtdHJhdmVyc2UgIl4xLjAuMCIKQEAgLTI4NDEsNyArMjUy NSw3IEBAIGFuc2ktcmVnZXhAXjIuMC4wOgogICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55 YXJucGtnLmNvbS9hbnNpLXJlZ2V4Ly0vYW5zaS1yZWdleC0yLjEuMS50Z3ojYzNiMzNhYjVlZTM2 MGQ4NmUwZTYyOGYwNDY4YWU3ZWYyN2Q2NTRkZiIKICAgaW50ZWdyaXR5IHNoYTEtdzdNNnRlNDJE WWJnNWlqd1Jvcm43eWZXVk44PQogCi1hbnNpLXJlZ2V4QF41LjAuMDoKK2Fuc2ktcmVnZXhAXjUu MC4xOgogICB2ZXJzaW9uICI1LjAuMSIKICAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFy bnBrZy5jb20vYW5zaS1yZWdleC8tL2Fuc2ktcmVnZXgtNS4wLjEudGd6IzA4MmNiMmM4OWM5ZmU4 NjU5YTMxMWE1M2JkNmE0ZGM1MzAxZGIzMDQiCiAgIGludGVncml0eSBzaGE1MTItcXVKUVhsVFNV R0wyTEg5U1VYbzhWd3NZNHNvYW5oZ282TE5TbTg0RTFMQmNFOHMzTzB3cGRpUnp5Ujl6L1paSk1s TVd2MzdxT09iOXBkSmxNVUVLRlE9PQpAQCAtMjg2NSw3ICsyNTQ5LDcgQEAgYW5zaS1zdHlsZXNA XjQuMC4wLCBhbnNpLXN0eWxlc0BeNC4xLjA6CiAgIGRlcGVuZGVuY2llczoKICAgICBjb2xvci1j b252ZXJ0ICJeMi4wLjEiCiAKLWFueW1hdGNoQH4zLjEuMSwgYW55bWF0Y2hAfjMuMS4yOgorYW55 bWF0Y2hAfjMuMS4yOgogICB2ZXJzaW9uICIzLjEuMiIKICAgcmVzb2x2ZWQgImh0dHBzOi8vcmVn aXN0cnkueWFybnBrZy5jb20vYW55bWF0Y2gvLS9hbnltYXRjaC0zLjEuMi50Z3ojYzA1NTdjMDk2 YWYzMmYxMDYxOThmNGY0ZTJhMzgzNTM3ZTM3ODcxNiIKICAgaW50ZWdyaXR5IHNoYTUxMi1QNDNl UGZPQUl1cGtndUhVeWNyYzRxSjlrejhaaXVPVWlqYUVUd1g3VEh0MFkvR05LN3YwYWE4clk4MTZ4 V2paN3JKZEE1WGRNY3BWRlRLTXErUnZXZz09CkBAIC0yOTEwLDE2ICsyNTk0LDE2IEBAIGFyZ3Bh cnNlQF4yLjAuMToKICAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vYXJn cGFyc2UvLS9hcmdwYXJzZS0yLjAuMS50Z3ojMjQ2ZjUwZjNjYTc4YTMyNDBmNmM5OTdlOGE5YmQx ZWFjNDllNGIzOCIKICAgaW50ZWdyaXR5IHNoYTUxMi04KzlXcWViYkZ6cFg5T1IrV2E2TzI5YXNJ b2dlUk16Y0d0QUlOZHBNSEh5QWcxMGYwNWFTRlZCYmNFcUdmL1BYdzFFakFaK3EyL2JFQmczRHZ1 ckszUT09CiAKLWFycmF5LWluY2x1ZGVzQF4zLjEuMiwgYXJyYXktaW5jbHVkZXNAXjMuMS4zOgot ICB2ZXJzaW9uICIzLjEuMyIKLSAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5j b20vYXJyYXktaW5jbHVkZXMvLS9hcnJheS1pbmNsdWRlcy0zLjEuMy50Z3ojYzdmNjE5YjM4MmFk MmFmYWY1MzI2Y2RkZmRjMGFmYzYxYWY3NjkwYSIKLSAgaW50ZWdyaXR5IHNoYTUxMi1nY2VtMUts QlU3YzlyQitScTgvM1BQS3NLMmtqcWVFQmEzYkQ1a2tRbzRuWWxPSFFDSnFJSkZxQlhERWZ3YVJ1 WVRUNEUrRnhBOXhlejdHZi9lM1E3QT09CithcnJheS1pbmNsdWRlc0BeMy4xLjM6CisgIHZlcnNp b24gIjMuMS40IgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9hcnJh eS1pbmNsdWRlcy8tL2FycmF5LWluY2x1ZGVzLTMuMS40LnRneiNmNWI0OTMxNjJjNzYwZjM1Mzk2 MzFmMDA1YmEyYmI0NmFjYjQ1YmE5IgorICBpbnRlZ3JpdHkgc2hhNTEyLVpUTlNRa21XdW1FYmlI TzJHRjRHbVd4WVZUaVF5SnkyWE9UYTE1c2RRU3J2S243bCsxODBlZ1FNcWxyTU9VTUN5TE1EN3Bt eVFlNG1NRFVUNkJlaHJ3PT0KICAgZGVwZW5kZW5jaWVzOgogICAgIGNhbGwtYmluZCAiXjEuMC4y IgogICAgIGRlZmluZS1wcm9wZXJ0aWVzICJeMS4xLjMiCi0gICAgZXMtYWJzdHJhY3QgIl4xLjE4 LjAtbmV4dC4yIgorICAgIGVzLWFic3RyYWN0ICJeMS4xOS4xIgogICAgIGdldC1pbnRyaW5zaWMg Il4xLjEuMSIKLSAgICBpcy1zdHJpbmcgIl4xLjAuNSIKKyAgICBpcy1zdHJpbmcgIl4xLjAuNyIK IAogYXJyYXktdW5pb25AXjIuMS4wOgogICB2ZXJzaW9uICIyLjEuMCIKQEAgLTI5MjcsMzQgKzI2 MTEsMzUgQEAgYXJyYXktdW5pb25AXjIuMS4wOgogICBpbnRlZ3JpdHkgc2hhNTEyLUhHeXhvT1RZ VXlDTTZzdFVlNkVKZ25kNEVvZXdBSTd6TWRmcU8ra0dqbmxabUJEei9jUjVwZjhyL2NSNFdxNjBz TC9wMElrY2pVRUVQd1MzR0ZySXl3PT0KIAogYXJyYXkucHJvdG90eXBlLmZpbHRlckBeMS4wLjA6 Ci0gIHZlcnNpb24gIjEuMC4wIgotICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtn LmNvbS9hcnJheS5wcm90b3R5cGUuZmlsdGVyLy0vYXJyYXkucHJvdG90eXBlLmZpbHRlci0xLjAu MC50Z3ojMjRkNjNlMzg5ODNjZGM2YmYwMjNhM2M1NzRiMmYyYTNmMzg0YzMwMSIKLSAgaW50ZWdy aXR5IHNoYTUxMi1UZk8xZ3ordExtK0Jzd3EwRkJPWFBxQWNodENyMlJuNDhUOGRMSm9SRmw4Tm9F b3NqWm16cHRtdW8xWDhhWkJ6WmNxc1IxVzhVNzYxdGpBQ0p0bmdUUT09CisgIHZlcnNpb24gIjEu MC4xIgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9hcnJheS5wcm90 b3R5cGUuZmlsdGVyLy0vYXJyYXkucHJvdG90eXBlLmZpbHRlci0xLjAuMS50Z3ojMjA2ODg3OTJh Y2RiOTdhMDk0ODhlYWFlZTllZWJiZjM5NjZhYWUyMSIKKyAgaW50ZWdyaXR5IHNoYTUxMi1EazNU eTdONDJPZGs3UGpVL0NpM3pUNHBMajIwWXZ1Vm5uZUcvNThJQ002YnQ0SWo1a1phSlRWUTlUU2FX YUlFQ1gyc0Z5ejRLSXRrVlpxSE5uY2lxdz09CiAgIGRlcGVuZGVuY2llczoKICAgICBjYWxsLWJp bmQgIl4xLjAuMiIKICAgICBkZWZpbmUtcHJvcGVydGllcyAiXjEuMS4zIgotICAgIGVzLWFic3Ry YWN0ICJeMS4xOC4wIgorICAgIGVzLWFic3RyYWN0ICJeMS4xOS4wIgogICAgIGVzLWFycmF5LW1l dGhvZC1ib3hlcy1wcm9wZXJseSAiXjEuMC4wIgotICAgIGlzLXN0cmluZyAiXjEuMC41IgorICAg IGlzLXN0cmluZyAiXjEuMC43IgogCiBhcnJheS5wcm90b3R5cGUuZmluZEBeMi4xLjE6Ci0gIHZl cnNpb24gIjIuMS4xIgotICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9h cnJheS5wcm90b3R5cGUuZmluZC8tL2FycmF5LnByb3RvdHlwZS5maW5kLTIuMS4xLnRneiMzYmFj YTI2MTA4Y2E3YWZmYjA4ZGIwNmJmMGJlNmNiMzExNWE5NjljIgotICBpbnRlZ3JpdHkgc2hhNTEy LW1pK01ZTkpZTFR4MmVOWXkrWWg2cmFvUWFjQ3NOZWVNVWFzcEZQaDlZMTQxbEZTc1d4eEI4Vjlt TTJ5ZStlcWlSczkxN0o2L3BKNE05WlB6ZW5XY2tBPT0KKyAgdmVyc2lvbiAiMi4xLjIiCisgIHJl c29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL2FycmF5LnByb3RvdHlwZS5maW5k Ly0vYXJyYXkucHJvdG90eXBlLmZpbmQtMi4xLjIudGd6IzZhYmJkMGMyNTczOTI1ZDgwOTRmN2Qy MzExMjMwNmFmOGMxNmQ1MzQiCisgIGludGVncml0eSBzaGE1MTItMDBTMU80ZXdPOTVPbW1KVzdF ZXNXZlFsckNyTEVMOGtaNDB3MytHa0xYMnlUdDBtMmdnY2VQUGEydUhQSjlLVW1KdndScStsQ1Y5 YkQ4WWltMjN4L1E9PQogICBkZXBlbmRlbmNpZXM6CisgICAgY2FsbC1iaW5kICJeMS4wLjIiCiAg ICAgZGVmaW5lLXByb3BlcnRpZXMgIl4xLjEuMyIKLSAgICBlcy1hYnN0cmFjdCAiXjEuMTcuNCIK KyAgICBlcy1hYnN0cmFjdCAiXjEuMTkuMCIKIAogYXJyYXkucHJvdG90eXBlLmZsYXRAXjEuMi4z OgotICB2ZXJzaW9uICIxLjIuNCIKLSAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBr Zy5jb20vYXJyYXkucHJvdG90eXBlLmZsYXQvLS9hcnJheS5wcm90b3R5cGUuZmxhdC0xLjIuNC50 Z3ojNmVmNjM4YjQzMzEyYmQ0MDFiNGM2MTk5ZmRlYzdlMmRjOWU5YTEyMyIKLSAgaW50ZWdyaXR5 IHNoYTUxMi00NDcwWGkzR0FQQWpacUZjbGpYMnh6Y2t2MXFlS1Bpem9Oa2lTMCtPNElvUFIyWk5w Y2pFMHBraGRpaGxEb3VLK3g2UU9hc3QyNkI0US9POURKbndTZz09CisgIHZlcnNpb24gIjEuMi41 IgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9hcnJheS5wcm90b3R5 cGUuZmxhdC8tL2FycmF5LnByb3RvdHlwZS5mbGF0LTEuMi41LnRneiMwN2UwOTc1ZDg0YmJjN2M0 OGNkMTg3OWQ2MDllNjgyNTk4ZDMzZTEzIgorICBpbnRlZ3JpdHkgc2hhNTEyLUthWVUrUytuZFZx eVVuaWduSGZ0a3djNThvM3VWVTFqemN6SUxKMXROMllhSVpwRklLQmlQL3gvajk3RTVNVlBzYUNs b1BicVdMQi84cUNUVnZUMnFnPT0KICAgZGVwZW5kZW5jaWVzOgotICAgIGNhbGwtYmluZCAiXjEu MC4wIgorICAgIGNhbGwtYmluZCAiXjEuMC4yIgogICAgIGRlZmluZS1wcm9wZXJ0aWVzICJeMS4x LjMiCi0gICAgZXMtYWJzdHJhY3QgIl4xLjE4LjAtbmV4dC4xIgorICAgIGVzLWFic3RyYWN0ICJe MS4xOS4wIgogCi1hcnJheS5wcm90b3R5cGUuZmxhdG1hcEAxLjIuNCwgYXJyYXkucHJvdG90eXBl LmZsYXRtYXBAXjEuMi40OgorYXJyYXkucHJvdG90eXBlLmZsYXRtYXBAMS4yLjQ6CiAgIHZlcnNp b24gIjEuMi40IgogICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9hcnJh eS5wcm90b3R5cGUuZmxhdG1hcC8tL2FycmF5LnByb3RvdHlwZS5mbGF0bWFwLTEuMi40LnRneiM5 NGNmZDQ3Y2MxNTU2ZWMwNzQ3ZDk3ZjdjNzczOGM1ODEyMjAwNGM5IgogICBpbnRlZ3JpdHkgc2hh NTEyLXI5WjB6WW94cUh6NjB2dlFiV0VkWElFdEN3SEYweXhhV2ZubzlxelhlTkh2ZnlsM0JacXln bUd6Yjg0ZHN1YnlhWExINGh1c0YrTkZnTVNkcFpoazJRPT0KQEAgLTI5NjQsNiArMjY0OSwxNSBA QCBhcnJheS5wcm90b3R5cGUuZmxhdG1hcEAxLjIuNCwgYXJyYXkucHJvdG90eXBlLmZsYXRtYXBA XjEuMi40OgogICAgIGVzLWFic3RyYWN0ICJeMS4xOC4wLW5leHQuMSIKICAgICBmdW5jdGlvbi1i aW5kICJeMS4xLjEiCiAKK2FycmF5LnByb3RvdHlwZS5mbGF0bWFwQF4xLjIuNDoKKyAgdmVyc2lv biAiMS4yLjUiCisgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL2FycmF5 LnByb3RvdHlwZS5mbGF0bWFwLy0vYXJyYXkucHJvdG90eXBlLmZsYXRtYXAtMS4yLjUudGd6Izkw OGRjODJkOGE0MDY5MzBmZGYzODU5OGQ1MWU3NDExZDE4ZDQ0NDYiCisgIGludGVncml0eSBzaGE1 MTItMDh1NnJWeWkxTGo3b3FXYlM5blV4bGlFVHJ0SVJPVDRYR1RBNEQvTFdHdGVuNkUzb2NtN2N5 OVNJcm1OSE9MNVhWYlZ1Y2tVcDNYNlh5ZzgvenB2SEE9PQorICBkZXBlbmRlbmNpZXM6CisgICAg Y2FsbC1iaW5kICJeMS4wLjAiCisgICAgZGVmaW5lLXByb3BlcnRpZXMgIl4xLjEuMyIKKyAgICBl cy1hYnN0cmFjdCAiXjEuMTkuMCIKKwogYXNuMS5qc0BeNS4yLjA6CiAgIHZlcnNpb24gIjUuNC4x IgogICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9hc24xLmpzLy0vYXNu MS5qcy01LjQuMS50Z3ojMTFhOTgwYjg0ZWJiOTE3ODFjZTM1YjBmZGMyZWUyOTRlMzc4M2YwNyIK QEAgLTI5NzUsOSArMjY2OSw5IEBAIGFzbjEuanNAXjUuMi4wOgogICAgIHNhZmVyLWJ1ZmZlciAi XjIuMS4wIgogCiBhc3Blbi1jb3JlQF4xLjAuNDoKLSAgdmVyc2lvbiAiMS4wLjQiCi0gIHJlc29s dmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL2FzcGVuLWNvcmUvLS9hc3Blbi1jb3Jl LTEuMC40LnRneiNhMmQ2YTIzYzgwMzAzZTczYWFhODM2YzEyNGMxMTZlNDQ3YmE3YTdkIgotICBp bnRlZ3JpdHkgc2hhNTEyLW1RNzlKeEhzdEIycmY0N1pndzJ5ZHVBSDlMNDdiKzNid1F0cGJFQUtl U0pzTFRQZThYN2xzUTZsTFAzdEZiUzIwNFROSUxDNUx4U2tWV3Y0NUZYUVlnPT0KKyAgdmVyc2lv biAiMS4wLjUiCisgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL2FzcGVu LWNvcmUvLS9hc3Blbi1jb3JlLTEuMC41LnRneiM3NzQ1ZGVmODExZjc2MWJjYTQ5ZDQ3NWQ5YWRk YzhhNWRiYjFjNzFjIgorICBpbnRlZ3JpdHkgc2hhNTEyLWlxV09STlFlUVRuNlhIU3RsMXVDUTR0 MXlNUE13L25TV3lnZlhWQUVmbGY4dkFXczR2UjJNMlRxREVaR3Z5b1RrcnhJUE9Odit3eVFRRkRu TjVRQ2tnPT0KICAgZGVwZW5kZW5jaWVzOgogICAgIG5vdGlmaWNhciAiXjEuMC4xIgogICAgIHAt c2VyaWVzICJeMS4xLjAiCkBAIC0zMDI0LDM0ICsyNzE4LDM1IEBAIGFzeW5jQF4yLjEuNDoKICAg ICBsb2Rhc2ggIl40LjE3LjE0IgogCiBhc3luY0BeMy4yLjA6Ci0gIHZlcnNpb24gIjMuMi4wIgot ICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9hc3luYy8tL2FzeW5jLTMu Mi4wLnRneiNiM2EyNjg1YzVlYmI2NDFkM2RlMDJkMTYxMDAyYzYwZmM5Zjg1NzIwIgotICBpbnRl Z3JpdHkgc2hhNTEyLVRSMm1FWkZWT2oycExTdFl4TGh0N1R5ZnVSemF5ZGZweHIzazlScEhJek1n dzdBNjRkenNkcUN4SDFXSnlRZG9lOFQxMG5EWGQ5d25FaWdtaXVISVp3PT0KKyAgdmVyc2lvbiAi My4yLjIiCisgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL2FzeW5jLy0v YXN5bmMtMy4yLjIudGd6IzJlYjc2NzEwMzRiYjIxOTRkNDVkMzBlMzFlMjRlYzdlN2Y5NjcwY2Qi CisgIGludGVncml0eSBzaGE1MTItSDBFK3FaYURFZngvRlk0dDdpTFJ2MVcyZkZJNitweUNlVHcx dU4yMEFRUGl3cXdNNm9qUHhIeGRMdjR6OGhpMkR0blc5Qk9ja1NzcEx1Y1c3cElFNWc9PQogCiBh dXRvcHJlZml4ZXJAXjEwLjIuNDoKLSAgdmVyc2lvbiAiMTAuMi42IgotICByZXNvbHZlZCAiaHR0 cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9hdXRvcHJlZml4ZXIvLS9hdXRvcHJlZml4ZXItMTAu Mi42LnRneiNhYWRkOWVjMzRlMWM5OGQ0MDNlMDE5NTAwMzgwNDlmMGViMjUyOTQ5IgotICBpbnRl Z3JpdHkgc2hhNTEyLThsQ2hTbWRVNmRDTk1DUW9wSWY0UGU1a2lwa0FHai9mdlRNc2xDc2loMHVI cE9yWE9QVUVWT21ZTU1xbXczY2VrUWtTRDdFaElldVlsNXkwQkxkS3FnPT0KKyAgdmVyc2lvbiAi MTAuNC4wIgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9hdXRvcHJl Zml4ZXIvLS9hdXRvcHJlZml4ZXItMTAuNC4wLnRneiNjMzU3N2ViMzJhMTA3OWE0NDBlYzI1M2U0 MDRlYWYxZWIyMTM4OGM4IgorICBpbnRlZ3JpdHkgc2hhNTEyLTdGZEoxT050d3pWMUc0M0dERDBr cFZNbi9xYmlOcXlPUE1GVFg1blJmZkkrN3ZnV29GRWM2RGNYT3hISnhyV05EWHJaaDE4ZURzWmp2 WkdVbGpTUkdBPT0KICAgZGVwZW5kZW5jaWVzOgotICAgIGJyb3dzZXJzbGlzdCAiXjQuMTYuNiIK LSAgICBjYW5pdXNlLWxpdGUgIl4xLjAuMzAwMDEyMzAiCi0gICAgY29sb3JldHRlICJeMS4yLjIi CisgICAgYnJvd3NlcnNsaXN0ICJeNC4xNy41IgorICAgIGNhbml1c2UtbGl0ZSAiXjEuMC4zMDAw MTI3MiIKICAgICBmcmFjdGlvbi5qcyAiXjQuMS4xIgogICAgIG5vcm1hbGl6ZS1yYW5nZSAiXjAu MS4yIgorICAgIHBpY29jb2xvcnMgIl4xLjAuMCIKICAgICBwb3N0Y3NzLXZhbHVlLXBhcnNlciAi XjQuMS4wIgogCi1hdmFpbGFibGUtdHlwZWQtYXJyYXlzQF4xLjAuMjoKLSAgdmVyc2lvbiAiMS4w LjQiCi0gIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL2F2YWlsYWJsZS10 eXBlZC1hcnJheXMvLS9hdmFpbGFibGUtdHlwZWQtYXJyYXlzLTEuMC40LnRneiM5ZTBhZTg0ZWNm ZjIwY2FhZTZhOTRhMWMzYmMzOWI5NTU2NDliN2E5IgotICBpbnRlZ3JpdHkgc2hhNTEyLVNBNW1Y SldySWQxVGFRamZ4VVlnaGJxUS9oWWlvS21MSnZQSnlEdVlSdFhYZW5GTk1qajRoU1N0MUNmMXhz dVhTWHJ0eHJWQzVPdDRlVTZjT3RCRGRBPT0KK2F2YWlsYWJsZS10eXBlZC1hcnJheXNAXjEuMC41 OgorICB2ZXJzaW9uICIxLjAuNSIKKyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBr Zy5jb20vYXZhaWxhYmxlLXR5cGVkLWFycmF5cy8tL2F2YWlsYWJsZS10eXBlZC1hcnJheXMtMS4w LjUudGd6IzkyZjk1NjE2NTAxMDY5ZDA3ZDEwZWRiMmZjMzdkM2UxYzY1MTIzYjciCisgIGludGVn cml0eSBzaGE1MTItRE1EMEtpTjQ2ZWlwZXppU1QxTFBQL1NUZkRVMHN1ZklTWG1qU2d2VnNvVTJ0 cXhjdFFlQVNlaldjZk50eFlLcUVUTTFVeFE4c3AyT3JTQldwSFk2c3c9PQogCiBheGlvcy1tb2Nr LWFkYXB0ZXJAXjEuMTcuMDoKLSAgdmVyc2lvbiAiMS4xOS4wIgotICByZXNvbHZlZCAiaHR0cHM6 Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9heGlvcy1tb2NrLWFkYXB0ZXIvLS9heGlvcy1tb2NrLWFk YXB0ZXItMS4xOS4wLnRneiM5ZDcyZTMyMWE2YzU0MThlMWVmZjA2N2FhOTk3NjFhODZjNTE4OGE0 IgotICBpbnRlZ3JpdHkgc2hhNTEyLUQrMFU0TE5QcjdXcm9pQkR2V2lselRNWVBZVHVabGJvNkJJ OFlIWnRqN3dZUVM4TmtBUmxQOUtCdDhJV1dIVFFKMHEvOG9aMENsUEJ0S0NDa3g4Y1FnPT0KKyAg dmVyc2lvbiAiMS4yMC4wIgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNv bS9heGlvcy1tb2NrLWFkYXB0ZXIvLS9heGlvcy1tb2NrLWFkYXB0ZXItMS4yMC4wLnRneiMyMWY1 YjRiNjI1MzA2ZjQzZThjMDU2NzM2MTY3MTlkYTg2ZTIwZGNiIgorICBpbnRlZ3JpdHkgc2hhNTEy LXNoWlJoVGpMUDBXV2RjdkhLZjNySDNpVzlkZWIzVWRLYmRuS1VvSG1tc25CaFZYTjNzalBKTTZa dlEyci95d2d2QlZRck1uanJTeVFhYjYwRzFzcjJ3PT0KICAgZGVwZW5kZW5jaWVzOgogICAgIGZh c3QtZGVlcC1lcXVhbCAiXjMuMS4zIgotICAgIGlzLWJ1ZmZlciAiXjIuMC4zIgorICAgIGlzLWJs b2IgIl4yLjEuMCIKKyAgICBpcy1idWZmZXIgIl4yLjAuNSIKIAogYXhpb3NAXjAuMjEuMToKICAg dmVyc2lvbiAiMC4yMS40IgpAQCAtMzA4NCw5ICsyNzc5LDkgQEAgYmFiZWwtZ2VuZXJhdG9yQF42 LjE4LjA6CiAgICAgdHJpbS1yaWdodCAiXjEuMC4xIgogCiBiYWJlbC1sb2FkZXJAXjguMS4wOgot ICB2ZXJzaW9uICI4LjIuMiIKLSAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5j b20vYmFiZWwtbG9hZGVyLy0vYmFiZWwtbG9hZGVyLTguMi4yLnRneiM5MzYzY2U4NGMxMGM5YTQw ZTZjNzUzNzQ4ZTE0NDFiNjBjOGEwYjgxIgotICBpbnRlZ3JpdHkgc2hhNTEyLUp2VGQwL0Q4ODlQ UUJ0VVhKMlBYYUtVL3BqWkRNdEhBOVYyZWNtK2VOUm1tQkNNUjA5YStmbXBHVE53bkp0Rm1GbDVF aTdWeTQ3TGpCYitMMHdROTlnPT0KKyAgdmVyc2lvbiAiOC4yLjMiCisgIHJlc29sdmVkICJodHRw czovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL2JhYmVsLWxvYWRlci8tL2JhYmVsLWxvYWRlci04LjIu My50Z3ojODk4NmI0MGYxYTY0Y2FjZmNiNGI4NDI5MzIwMDg1ZWY2OGIxMzQyZCIKKyAgaW50ZWdy aXR5IHNoYTUxMi1uNFpldGE4TkMzUUFzdXlpaXp1MEdrbVJjUTZjbGtWOVdGVW5VZjFpWFAvL0ll U0tiV2pvZlczVUh5WlZ3bE9CNHkwMzlZUUtlZmF3eVRuNjRad2J1dz09CiAgIGRlcGVuZGVuY2ll czoKICAgICBmaW5kLWNhY2hlLWRpciAiXjMuMy4xIgogICAgIGxvYWRlci11dGlscyAiXjEuNC4w IgpAQCAtMzE4MCwxMyArMjg3NSwxMyBAQCBiYWJlbC1wbHVnaW4tcG9seWZpbGwtcmVnZW5lcmF0 b3JAXjAuMy4wOgogICBkZXBlbmRlbmNpZXM6CiAgICAgIkBiYWJlbC9oZWxwZXItZGVmaW5lLXBv bHlmaWxsLXByb3ZpZGVyIiAiXjAuMy4xIgogCi0iYmFiZWwtcGx1Z2luLXN0eWxlZC1jb21wb25l bnRzQD49IDEiOgotICB2ZXJzaW9uICIxLjEyLjAiCi0gIHJlc29sdmVkICJodHRwczovL3JlZ2lz dHJ5Lnlhcm5wa2cuY29tL2JhYmVsLXBsdWdpbi1zdHlsZWQtY29tcG9uZW50cy8tL2JhYmVsLXBs dWdpbi1zdHlsZWQtY29tcG9uZW50cy0xLjEyLjAudGd6IzFkZWMxNjc2NTEyMTc3ZGU2YjgyNzIx MWU5ZWRhNWEzMGRiNGY5YjkiCi0gIGludGVncml0eSBzaGE1MTItRkVpRDdsNVpBQmRKUHBMc3NL WGpCVUpNWXF6YmNOekJvd2ZYRENkSmhPcGJoV2lld2FwVWFZK0xaR1Q4UjRKZzJUd09qR2pHNFJL ZXlyTzVwOXNCa0E9PQorImJhYmVsLXBsdWdpbi1zdHlsZWQtY29tcG9uZW50c0A+PSAxLjEyLjAi OgorICB2ZXJzaW9uICIxLjEzLjMiCisgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5w a2cuY29tL2JhYmVsLXBsdWdpbi1zdHlsZWQtY29tcG9uZW50cy8tL2JhYmVsLXBsdWdpbi1zdHls ZWQtY29tcG9uZW50cy0xLjEzLjMudGd6IzFmMWNiMzkyN2Q0YWZhMWUzMjQ2OTVjNzhmNjkwOTAw ZTNkMDc1YmMiCisgIGludGVncml0eSBzaGE1MTItbWVHU3RSR3YrVnVLQS9xMC9qWHhyUE5XRW00 TFBmWUlxeG9vRFRkbWg4a0ZzUC9QaDdqSkc1clVQd1VQWDNRSFV2Z2d3ZGJnZEdwbzg4UC9yUllz Vnc9PQogICBkZXBlbmRlbmNpZXM6Ci0gICAgIkBiYWJlbC9oZWxwZXItYW5ub3RhdGUtYXMtcHVy ZSIgIl43LjAuMCIKLSAgICAiQGJhYmVsL2hlbHBlci1tb2R1bGUtaW1wb3J0cyIgIl43LjAuMCIK KyAgICAiQGJhYmVsL2hlbHBlci1hbm5vdGF0ZS1hcy1wdXJlIiAiXjcuMTUuNCIKKyAgICAiQGJh YmVsL2hlbHBlci1tb2R1bGUtaW1wb3J0cyIgIl43LjE1LjQiCiAgICAgYmFiZWwtcGx1Z2luLXN5 bnRheC1qc3ggIl42LjE4LjAiCiAgICAgbG9kYXNoICJeNC4xNy4xMSIKIApAQCAtMzMwOCwxNiAr MzAwMywxNiBAQCBiYWxhbmNlZC1tYXRjaEBeMS4wLjA6CiAgIHJlc29sdmVkICJodHRwczovL3Jl Z2lzdHJ5Lnlhcm5wa2cuY29tL2JhbGFuY2VkLW1hdGNoLy0vYmFsYW5jZWQtbWF0Y2gtMS4wLjIu dGd6I2U4M2UzYTdlM2YzMDBiMzRjYjlkODdmNjE1ZmEwY2JmMzU3NjkwZWUiCiAgIGludGVncml0 eSBzaGE1MTItM29TZVVPMFRNVjY3aE4xQW1iWHNLNHlhcVU3dGppSGxieFJEWk9wSDBLVzkrQ2VY NGJSQWFYMEFueHQwdHgyTXJwUnBXd1FhUHdJbElTRUpoWVU1UHc9PQogCi1iYXNlNjQtYXJyYXli dWZmZXJAMC4xLjQ6Ci0gIHZlcnNpb24gIjAuMS40IgotICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdp c3RyeS55YXJucGtnLmNvbS9iYXNlNjQtYXJyYXlidWZmZXIvLS9iYXNlNjQtYXJyYXlidWZmZXIt MC4xLjQudGd6Izk4MThjNzllMDU5YjEzNTVmOTdlMDQyOGEwMTdjODM4ZTkwYmE4MTIiCi0gIGlu dGVncml0eSBzaGExLW1CakhuZ1diRTFYNWZnUW9vQmZJT09rTHFCST0KLQogYmFzZTY0LWFycmF5 YnVmZmVyQF4wLjIuMDoKICAgdmVyc2lvbiAiMC4yLjAiCiAgIHJlc29sdmVkICJodHRwczovL3Jl Z2lzdHJ5Lnlhcm5wa2cuY29tL2Jhc2U2NC1hcnJheWJ1ZmZlci8tL2Jhc2U2NC1hcnJheWJ1ZmZl ci0wLjIuMC50Z3ojNGI5NDRmYWMwMTkxYWE1OTA3YWZlMmQ4Yzk5OWNjYzU3Y2U4MGY0NSIKICAg aW50ZWdyaXR5IHNoYTUxMi03ZW15Q3N1MS94aUJYZ1FacnNjdy84S1BSVDQ0STRZcTlQZTZFR3Mz YVBSVHNXdWdnTUwxLzFEVHVaVXVJYUpQSW0xRlREVVZYbDR4L3lXOHMwa1FEUT09CiAKK2Jhc2U2 NC1hcnJheWJ1ZmZlckBeMS4wLjE6CisgIHZlcnNpb24gIjEuMC4xIgorICByZXNvbHZlZCAiaHR0 cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9iYXNlNjQtYXJyYXlidWZmZXIvLS9iYXNlNjQtYXJy YXlidWZmZXItMS4wLjEudGd6Izg3YmQxMzUyNTYyNmRiNGE5ODM4ZTAwYTUwOGMyYjczZWZjZjM0 OGMiCisgIGludGVncml0eSBzaGE1MTItdkZJVXE3RmRMdGpaTWhBVHdEdWw1UlpXdjJqcFhRMDlQ ZDZqY1ZFT3ZJc3FDV1RSRkQvT05ITmZ5T1M4ZEEvSXBwaTVkc0lncHlLV0taYUFLWmx0YkE9PQor CiBiYXNlNjQtanNAXjEuMC4yLCBiYXNlNjQtanNAXjEuMy4xOgogICB2ZXJzaW9uICIxLjUuMSIK ICAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vYmFzZTY0LWpzLy0vYmFz ZTY0LWpzLTEuNS4xLnRneiMxYjFiNDQwMTYwYTViZjdhZDQwYjY1MGYwOTU5NjM0ODE5MDM5MzBh IgpAQCAtMzQ1NSw5ICszMTUwLDkgQEAgYm9vdHN0cmFwNC10b2dnbGVAXjMuNi4xOgogICBpbnRl Z3JpdHkgc2hhNTEyLWVSZWpjVGM5WXVyaFo2NG5IWTlJaTlEUW4rRjkvUjc0SDlSUG9lQU5WTTNO MStDMmxaMnRVdUZDeDF3M29yT0oxeS9pRzRBN2lDd2REWnBoTURJcllnPT0KIAogYm9vdHN0cmFw QF40LjMuMSwgYm9vdHN0cmFwQF40LjUuMjoKLSAgdmVyc2lvbiAiNC42LjAiCi0gIHJlc29sdmVk ICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL2Jvb3RzdHJhcC8tL2Jvb3RzdHJhcC00LjYu MC50Z3ojOTdiOWYyOWFjOThmOThkZmE0M2JmNzQ2ODI2MmQ4NDM5MjU1MmZkNyIKLSAgaW50ZWdy aXR5IHNoYTUxMi1JbzU1SXVRWTNreWR6SHRiR3ZReWEzSCtLb3JTL005clNOeWZDR0NnOVdaNHB5 VC9sQ3hJbHBKZ0cxR1hXL1Bzd3pDODRUcjJmQllpKzcrakZWUVFCdz09CisgIHZlcnNpb24gIjQu Ni4xIgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9ib290c3RyYXAv LS9ib290c3RyYXAtNC42LjEudGd6I2JjMjUzODBjMmMxNDE5MjM3NGU4ZGVjMDdjZjAxYjI3NDJk MjIyYTIiCisgIGludGVncml0eSBzaGE1MTItMGRqK1ZnSTlFY29tK3J2dnBOWjRNVVpKejhkY1g3 V0NYK2VUSUQ5Ky84SGdPa3YzZHNSemk4QkdlWkpDUVU2ZmxXUVZZeHdUUW5FWkZybUpTRU83b2c9 PQogCiBib3dzZXJAXjIuMTEuMDoKICAgdmVyc2lvbiAiMi4xMS4wIgpAQCAtMzYzMSwxNiArMzMy NiwxNiBAQCBicm93c2VyaWZ5QF4xNy4wLjA6CiAgICAgdm0tYnJvd3NlcmlmeSAiXjEuMC4wIgog ICAgIHh0ZW5kICJeNC4wLjAiCiAKLWJyb3dzZXJzbGlzdEBeNC4wLjAsIGJyb3dzZXJzbGlzdEBe NC4xNC41LCBicm93c2Vyc2xpc3RAXjQuMTYuMCwgYnJvd3NlcnNsaXN0QF40LjE2LjMsIGJyb3dz ZXJzbGlzdEBeNC4xNi42OgotICB2ZXJzaW9uICI0LjE2LjYiCi0gIHJlc29sdmVkICJodHRwczov L3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL2Jyb3dzZXJzbGlzdC8tL2Jyb3dzZXJzbGlzdC00LjE2LjYu dGd6I2Q3OTAxMjc3YTVhODhlNTU0ZWQzMDViMTgzZWM5YjBjMDhmNjZmYTIiCi0gIGludGVncml0 eSBzaGE1MTItV3Nway9QcU8rNFc5cXA1aVVUSnNhMUIvUXJZbjFrZU5DY0VQNU92UDdXQndUNEth RGx5MHVPTlltQzZYYTNaNUlxblVnUzBLY2dMWXUxbDc0eDBaWFE9PQorYnJvd3NlcnNsaXN0QF40 LjAuMCwgYnJvd3NlcnNsaXN0QF40LjE0LjUsIGJyb3dzZXJzbGlzdEBeNC4xNi4wLCBicm93c2Vy c2xpc3RAXjQuMTYuNjoKKyAgdmVyc2lvbiAiNC4xNy42IgorICByZXNvbHZlZCAiaHR0cHM6Ly9y ZWdpc3RyeS55YXJucGtnLmNvbS9icm93c2Vyc2xpc3QvLS9icm93c2Vyc2xpc3QtNC4xNy42LnRn eiNjNzZiZTMzZTc3ODZiNDk3ZjY2Y2FkMjVhNzM3NTZjOGI5Mzg5ODVkIgorICBpbnRlZ3JpdHkg c2hhNTEyLXVQZ3ozdnlSVGxFaUN2NGVlOUtsc0tnbzJWNnFQazdKc24wS0FuMk9CcWJxS28zaU5j UEVDMVRpNko0ZHdueithSVJmRUVFdU96QzlJQms4dFhVb213PT0KICAgZGVwZW5kZW5jaWVzOgot ICAgIGNhbml1c2UtbGl0ZSAiXjEuMC4zMDAwMTIxOSIKLSAgICBjb2xvcmV0dGUgIl4xLjIuMiIK LSAgICBlbGVjdHJvbi10by1jaHJvbWl1bSAiXjEuMy43MjMiCisgICAgY2FuaXVzZS1saXRlICJe MS4wLjMwMDAxMjc0IgorICAgIGVsZWN0cm9uLXRvLWNocm9taXVtICJeMS4zLjg4NiIKICAgICBl c2NhbGFkZSAiXjMuMS4xIgotICAgIG5vZGUtcmVsZWFzZXMgIl4xLjEuNzEiCisgICAgbm9kZS1y ZWxlYXNlcyAiXjIuMC4xIgorICAgIHBpY29jb2xvcnMgIl4xLjAuMCIKIAogYnJvd3NlcnNsaXN0 QF40LjE3LjUsIGJyb3dzZXJzbGlzdEBeNC4xOS4xOgogICB2ZXJzaW9uICI0LjE5LjEiCkBAIC0z Njc3LDkgKzMzNzIsOSBAQCBidWZmZXItZmlsbEBeMS4wLjA6CiAgIGludGVncml0eSBzaGExLStQ ZUxkbmlZaU84NThnWE5ZMzlvNXdJU0t5dz0KIAogYnVmZmVyLWZyb21AXjEuMC4wOgotICB2ZXJz aW9uICIxLjEuMSIKLSAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vYnVm ZmVyLWZyb20vLS9idWZmZXItZnJvbS0xLjEuMS50Z3ojMzI3MTNiYzAyOGY3NWMwMmZkYjcxMGQ3 YzdiY2VjMWYyYzYwNzBlZiIKLSAgaW50ZWdyaXR5IHNoYTUxMi1NUWNYRVViQ0t0RW83YmhxRXM2 NTYwSHlkNFhhb3ZabE8vazlWM2hqVlVGL3p3VzdLQlZkU0s0Z0l0L2J6d1M5TWJSNXFvYitGNWp1 c1pzYjBZUUsyQT09CisgIHZlcnNpb24gIjEuMS4yIgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdp c3RyeS55YXJucGtnLmNvbS9idWZmZXItZnJvbS8tL2J1ZmZlci1mcm9tLTEuMS4yLnRneiMyYjE0 NmE2ZmQ3MmU4MGI0ZjU1ZDI1NWYzNWVkNTlhM2E5YTQxYmQ1IgorICBpbnRlZ3JpdHkgc2hhNTEy LUUrWFFDUndTYmFhaUNodHY2azZEd2djK2J4K0JzNnZ1S0pISGw1a294L0JhS2JoaVh6cVFPd0s0 Y08yMnlFbEdwMk9DbWp3VmhUM0hteGd5UEduSmZRPT0KIAogYnVmZmVyLXhvckBeMS4wLjM6CiAg IHZlcnNpb24gIjEuMC4zIgpAQCAtMzgwMiwxMSArMzQ5NywxNiBAQCBjYW5pdXNlLWFwaUBeMy4w LjA6CiAgICAgbG9kYXNoLm1lbW9pemUgIl40LjEuMiIKICAgICBsb2Rhc2gudW5pcSAiXjQuNS4w IgogCi1jYW5pdXNlLWxpdGVAXjEuMC4wLCBjYW5pdXNlLWxpdGVAXjEuMC4zMDAwMTIxOSwgY2Fu aXVzZS1saXRlQF4xLjAuMzAwMDEyMzAsIGNhbml1c2UtbGl0ZUBeMS4wLjMwMDAxMjg2OgorY2Fu aXVzZS1saXRlQF4xLjAuMCwgY2FuaXVzZS1saXRlQF4xLjAuMzAwMDEyODY6CiAgIHZlcnNpb24g IjEuMC4zMDAwMTMwOSIKICAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkubnBtanMub3JnL2Nh bml1c2UtbGl0ZS8tL2Nhbml1c2UtbGl0ZS0xLjAuMzAwMDEzMDkudGd6IgogICBpbnRlZ3JpdHkg c2hhNTEyLVBsOHZmaWdtQlhYcSsveVV6MWpVd1VMZXE5eGhNSnpuemRjL3h3bDRXY2xEQXVlYmNU SFZlZnB6OGxFL2JNSStVTjdUT2tTU2U3QjdSblpkNitkempBPT0KIAorY2FuaXVzZS1saXRlQF4x LjAuMzAwMDEyNzIsIGNhbml1c2UtbGl0ZUBeMS4wLjMwMDAxMjc0OgorICB2ZXJzaW9uICIxLjAu MzAwMDEyNzgiCisgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL2Nhbml1 c2UtbGl0ZS8tL2Nhbml1c2UtbGl0ZS0xLjAuMzAwMDEyNzgudGd6IzUxY2FmYzg1OGRmNzdkOTY2 YjE3ZjU5YjU4MzkyNTBiMjQ0MTdmZmYiCisgIGludGVncml0eSBzaGE1MTItbXBGOUtlSDh1NWNN b0VtSWljL2NyN1BOUytGNUxXQmswdDJla0dUNjBsRmYwV3ErbjlMc3BBajBnM1ArbzdEUWhEM3NV ZGxNbG40WUZBV2hGWW45amc9PQorCiBjYXdAXjIuMC4wLCBjYXdAXjIuMC4xOgogICB2ZXJzaW9u ICIyLjAuMSIKICAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vY2F3Ly0v Y2F3LTIuMC4xLnRneiM2YzNjYTA3MWZjMTk0NzIwODgzYzJkYzVkYTliMDc0YmZjN2U5ZTk1IgpA QCAtMzgzOCw5ICszNTM4LDkgQEAgY2hhbGtAXjIuMC4wLCBjaGFsa0BeMi40LjEsIGNoYWxrQF4y LjQuMjoKICAgICBzdXBwb3J0cy1jb2xvciAiXjUuMy4wIgogCiBjaGFsa0BeNC4wLjAsIGNoYWxr QF40LjEuMDoKLSAgdmVyc2lvbiAiNC4xLjEiCi0gIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5 Lnlhcm5wa2cuY29tL2NoYWxrLy0vY2hhbGstNC4xLjEudGd6I2M4MGIzZmFiMjhiZjYzNzFlNjg2 MzMyNWVlZTY3ZTYxOGI3N2U2YWQiCi0gIGludGVncml0eSBzaGE1MTItZGlIemRES3hjVStiQXNV Ym9ITFBFRFFpdzBxRWUwcWQ3U1lVbjNIZ2NGbFdnYkRjZkxHc3dPSFllR3JIS3pHOXo2VVlmMDFk OVZGTWZaeFBNMXhaU2c9PQorICB2ZXJzaW9uICI0LjEuMiIKKyAgcmVzb2x2ZWQgImh0dHBzOi8v cmVnaXN0cnkueWFybnBrZy5jb20vY2hhbGsvLS9jaGFsay00LjEuMi50Z3ojYWFjNGUyYjc3MzRh NzQwODY3YWViMTZiZjAyYWFkNTU2YTFlN2EwMSIKKyAgaW50ZWdyaXR5IHNoYTUxMi1vS25iaEZ5 UklYcFV1ZXo4aUJNbXlFYTRuYmo0SU9ReXVoYy93eTlrWTcvV1ZQY3dJTzlWQTY2OFB1OFJrTzcr MEc3NlNMUk9leXc5Q3BRMDYxaTRtQT09CiAgIGRlcGVuZGVuY2llczoKICAgICBhbnNpLXN0eWxl cyAiXjQuMS4wIgogICAgIHN1cHBvcnRzLWNvbG9yICJeNy4xLjAiCkBAIC0zODY4LDQ0ICszNTY4 LDQ0IEBAIGNoYXJ0anMtY29sb3JAXjIuMS4wOgogICAgIGNoYXJ0anMtY29sb3Itc3RyaW5nICJe MC42LjAiCiAgICAgY29sb3ItY29udmVydCAiXjEuOS4zIgogCi1jaGVlcmlvLXNlbGVjdEBeMS40 LjA6Ci0gIHZlcnNpb24gIjEuNC4wIgotICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJu cGtnLmNvbS9jaGVlcmlvLXNlbGVjdC8tL2NoZWVyaW8tc2VsZWN0LTEuNC4wLnRneiMzYTE2ZjIx ZTM3YTJlZjBmMjExZDZkMWFhNGVmZjA1NGJiMjJjZGM5IgotICBpbnRlZ3JpdHkgc2hhNTEyLXNv YlIzWXF6MjdMNTUzUWE3Y0s2cnRKbE1EYmlLUGROeXd0Ujk1U2ovWWdmcExmeTB1NkNHSnVhQktl NVlFL3ZUYzIzU0NSS3hXU2Rsb24vdzZJL0V3PT0KK2NoZWVyaW8tc2VsZWN0QF4xLjUuMDoKKyAg dmVyc2lvbiAiMS41LjAiCisgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29t L2NoZWVyaW8tc2VsZWN0Ly0vY2hlZXJpby1zZWxlY3QtMS41LjAudGd6I2ZhZjNkYWViMzFiMTdj NWUxYTlkYWJjZWUyODhhYWY4YWFmYTU4MjMiCisgIGludGVncml0eSBzaGE1MTItcW9jYUhQdjV5 cGVmaDZZTnh2bmJBQk0wN0tNeEV4YnRiZnVKb0lpZTNpWlhYMUVSd1ltSmNJaVJycjlIMDV1Y1FQ MWsyOGRhdjhycGREZ2pRZDhkcmc9PQogICBkZXBlbmRlbmNpZXM6Ci0gICAgY3NzLXNlbGVjdCAi XjQuMS4yIgotICAgIGNzcy13aGF0ICJeNS4wLjAiCisgICAgY3NzLXNlbGVjdCAiXjQuMS4zIgor ICAgIGNzcy13aGF0ICJeNS4wLjEiCiAgICAgZG9tZWxlbWVudHR5cGUgIl4yLjIuMCIKICAgICBk b21oYW5kbGVyICJeNC4yLjAiCi0gICAgZG9tdXRpbHMgIl4yLjYuMCIKKyAgICBkb211dGlscyAi XjIuNy4wIgogCiBjaGVlcmlvQF4xLjAuMC1yYy4zOgotICB2ZXJzaW9uICIxLjAuMC1yYy45Igot ICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9jaGVlcmlvLy0vY2hlZXJp by0xLjAuMC1yYy45LnRneiNhM2FlNmI3Y2U3YWY4MDY3NTMwMmZmODM2ZjYyOGU3Y2I3ODZhNjdm IgotICBpbnRlZ3JpdHkgc2hhNTEyLVFGNlhWZHJMT05PNkRYUkY1aWFvbFkrb2RtaGoyQ0xqK3h6 Tm9kN0lOUFdNaS94OVg0U095bEgwUy92YVBwWCtBVVU2dDA0czM0U1FOaDdEYmt1Q25nPT0KKyAg dmVyc2lvbiAiMS4wLjAtcmMuMTAiCisgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5w a2cuY29tL2NoZWVyaW8vLS9jaGVlcmlvLTEuMC4wLXJjLjEwLnRneiMyYmEzZGNkZmNjMjZlNzk1 NmZjMWY0NDBlNjFkNTFjNjQzMzc5ZjNlIgorICBpbnRlZ3JpdHkgc2hhNTEyLWcwSjBxL082bVc4 ejV6eFEzQThFOEoxaFVncDRTTU92RW9XL3g4NE93eUhLZS9aY2N6ODNQVlQ0eTVDcmNyNTMwRlY2 TmdtS0kxcXZHVEtWbDlYWFZ3PT0KICAgZGVwZW5kZW5jaWVzOgotICAgIGNoZWVyaW8tc2VsZWN0 ICJeMS40LjAiCi0gICAgZG9tLXNlcmlhbGl6ZXIgIl4xLjMuMSIKKyAgICBjaGVlcmlvLXNlbGVj dCAiXjEuNS4wIgorICAgIGRvbS1zZXJpYWxpemVyICJeMS4zLjIiCiAgICAgZG9taGFuZGxlciAi XjQuMi4wIgogICAgIGh0bWxwYXJzZXIyICJeNi4xLjAiCiAgICAgcGFyc2U1ICJeNi4wLjEiCiAg ICAgcGFyc2U1LWh0bWxwYXJzZXIyLXRyZWUtYWRhcHRlciAiXjYuMC4xIgogICAgIHRzbGliICJe Mi4yLjAiCiAKLSJjaG9raWRhckA+PTIuMC4wIDw0LjAuMCI6Ci0gIHZlcnNpb24gIjMuNS4xIgot ICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9jaG9raWRhci8tL2Nob2tp ZGFyLTMuNS4xLnRneiNlZTljZTdiYmViZDJiNzlmNDlmMzA0Nzk5ZDU0NjhlMzFlMTRlNjhhIgot ICBpbnRlZ3JpdHkgc2hhNTEyLTkrcytPZCtXMFZKSnphd0RtYS9ndkJOUXFrVGlxWVRXTHVab3lB c2l2c0k0QWFXVEN6SEcwNi9UTWpzZjFjWWU5Q2I5N1VDRWhqejdIdm5QazJwL3R3PT0KKyJjaG9r aWRhckA+PTMuMC4wIDw0LjAuMCI6CisgIHZlcnNpb24gIjMuNS4yIgorICByZXNvbHZlZCAiaHR0 cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9jaG9raWRhci8tL2Nob2tpZGFyLTMuNS4yLnRneiNk YmEzOTc2ZmNhZGIwMTZmNjZmZDM2NTAyMWQ5MTYwMGQwMWMxZTc1IgorICBpbnRlZ3JpdHkgc2hh NTEyLWVrR2hPbk5WUGdUNzdyNEsvVTNHRGh1K0ZRMlM4VG5LL3MyS2JJR1hpMFNaV3V3a1oyUU55 ZldkWlcrVFZmbjg0RHBFUDdyTGVDdDJVSTZiSjhHd2JRPT0KICAgZGVwZW5kZW5jaWVzOgotICAg IGFueW1hdGNoICJ+My4xLjEiCisgICAgYW55bWF0Y2ggIn4zLjEuMiIKICAgICBicmFjZXMgIn4z LjAuMiIKLSAgICBnbG9iLXBhcmVudCAifjUuMS4wIgorICAgIGdsb2ItcGFyZW50ICJ+NS4xLjIi CiAgICAgaXMtYmluYXJ5LXBhdGggIn4yLjEuMCIKICAgICBpcy1nbG9iICJ+NC4wLjEiCiAgICAg bm9ybWFsaXplLXBhdGggIn4zLjAuMCIKLSAgICByZWFkZGlycCAifjMuNS4wIgorICAgIHJlYWRk aXJwICJ+My42LjAiCiAgIG9wdGlvbmFsRGVwZW5kZW5jaWVzOgotICAgIGZzZXZlbnRzICJ+Mi4z LjEiCisgICAgZnNldmVudHMgIn4yLjMuMiIKIAogY2hva2lkYXJAXjMuNS4xOgogICB2ZXJzaW9u ICIzLjUuMyIKQEAgLTQwMTIsOSArMzcxMiw5IEBAIGNvZGUtcG9pbnQtYXRAXjEuMC4wOgogICBp bnRlZ3JpdHkgc2hhMS1EUWNMVFFRNlcrb3pvdkdrRGk3YlBacE16M2M9CiAKIGNvZGVtaXJyb3JA XjUuNTkuMjoKLSAgdmVyc2lvbiAiNS41OS40IgotICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3Ry eS55YXJucGtnLmNvbS9jb2RlbWlycm9yLy0vY29kZW1pcnJvci01LjU5LjQudGd6I2JmYzExYzhj ZTMyYjA0ODE4ZThkNjYxYmJkNzkwYTk0ZjRiM2E2ZjMiCi0gIGludGVncml0eSBzaGE1MTItYWNo dzVKQmd4OFFQY0FDRERuK0VVVVhtQ1l6eC96eEV0T0dYeWp2TEV2WVk4R2xlVXJuZm01RCtaYitV alNoSGdnWEtEVDlBWHJia0JaWDZhMFlTUWc9PQorICB2ZXJzaW9uICI1LjYzLjMiCisgIHJlc29s dmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL2NvZGVtaXJyb3IvLS9jb2RlbWlycm9y LTUuNjMuMy50Z3ojOTcwNDJhMjQyMDI3ZmUwYzg3YzA5YjM2YmMwMTkzMWQzN2I3NjUyNyIKKyAg aW50ZWdyaXR5IHNoYTUxMi0xQytMRUxyKzVncmdKWXF3WktxeHJjYlBzSEZIYXBWYVZBbG9Cc0ZC QVNicExuUXFMdzFVOHlYSjNnVDVEK3JoeElpU3BvK2tUcU4raFErOWlhbElYdz09CiAKIGNvbG9y LWNvbnZlcnRAXjEuOS4wLCBjb2xvci1jb252ZXJ0QF4xLjkuMzoKICAgdmVyc2lvbiAiMS45LjMi CkBAIC00MDQwLDE1ICszNzQwLDE1IEBAIGNvbG9yLW5hbWVAXjEuMC4wLCBjb2xvci1uYW1lQH4x LjEuNDoKICAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vY29sb3ItbmFt ZS8tL2NvbG9yLW5hbWUtMS4xLjQudGd6I2MyYTA5YTg3YWNiZGU2OTU0M2RlNmY2M2ZhMzk5NWM4 MjZjNTM2YTIiCiAgIGludGVncml0eSBzaGE1MTItZE95KzNBdVczYTJ3TmJaSEl1TVpwVGNnakd1 TFUvdUJML3ViY1pGOU9YYkRvOGZmNE84eVZwNUJmMGVmUzh1RW9ZbzVxNEZ4N2RZOU9nUUdYZ0Fz UUE9PQogCi1jb2xvcmRAXjIuMC4wOgotICB2ZXJzaW9uICIyLjAuMCIKLSAgcmVzb2x2ZWQgImh0 dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vY29sb3JkLy0vY29sb3JkLTIuMC4wLnRneiNmOGMx OWYyNTI2YjdkYzViMjJkNmU1N2VmMTAyZjAzYTJhNDNhM2Q4IgotICBpbnRlZ3JpdHkgc2hhNTEy LVdNREZKZm9ZM3dxUFpOcEtVRmRzZTNIaEQ1QkhDYkU5SkNkeFJ6b1ZIK3l3UklUR09lV0FITmtH RW15eExsRXJFcE45T0xNV2dkTTlkV1F0RGs1ZG9nPT0KK2NvbG9yZEBeMi45LjE6CisgIHZlcnNp b24gIjIuOS4xIgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9jb2xv cmQvLS9jb2xvcmQtMi45LjEudGd6I2M5NjFlYTBlZmViNTdjOWYwZjQ4MzQ0NThmMjZjYjljYzRh M2Y5MGUiCisgIGludGVncml0eSBzaGE1MTItNExCTVN0MDl2UjB1TG5QVmtPVUJubXhnb2FlTjRl d1JieDgwMXdZL2JYY2x0WGZwUi9HNDZPZFduOTZYcFltQ1d1WXZPNDZhQlpQNE5nWDhIcE5BY3c9 PQogCi1jb2xvcmV0dGVAXjEuMi4xLCBjb2xvcmV0dGVAXjEuMi4yOgotICB2ZXJzaW9uICIxLjIu MiIKLSAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vY29sb3JldHRlLy0v Y29sb3JldHRlLTEuMi4yLnRneiNjYmNjNzlkNWU5OWNhZWEyZGJmMTBlYjNhMjZmZDhiM2U2YWNm YTk0IgotICBpbnRlZ3JpdHkgc2hhNTEyLU1LR016eWZldXV0Qy9aSjFjYmE5TnFjTnBmZXFNVWNZ bXlGMVpGWTYvQ243Q05TQUt4NmErczQ4c3FMcXlBaVp1YVAyVGNxTWhvbytkbHdGblZ4VDl3PT0K K2NvbG9yZXR0ZUBeMi4wLjE0OgorICB2ZXJzaW9uICIyLjAuMTYiCisgIHJlc29sdmVkICJodHRw czovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL2NvbG9yZXR0ZS8tL2NvbG9yZXR0ZS0yLjAuMTYudGd6 IzcxM2I5YWY4NGZkYjAwMDEzOWYwNDU0NmJkNGE5M2Y2MmE1MDg1ZGEiCisgIGludGVncml0eSBz aGE1MTItaFVld3Y3b01qQ3Ard2tCdjVSbTB2ODdlSmhxNHdvaDVyU1IrNDJZU1FKS2VjQ3FnSXFO a1o2bEFsUW1zL0J3SFBKQTVOS01SbHB4UFJ2MG44SFFXNmc9PQogCiBjb21iaW5lLXNvdXJjZS1t YXBAXjAuOC4wLCBjb21iaW5lLXNvdXJjZS1tYXBAfjAuOC4wOgogICB2ZXJzaW9uICIwLjguMCIK QEAgLTQwNzAsMTcgKzM3NzAsNyBAQCBjb21tYW5kZXJAXjQuMC4xOgogICByZXNvbHZlZCAiaHR0 cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9jb21tYW5kZXIvLS9jb21tYW5kZXItNC4xLjEudGd6 IzlmZDYwMmJkOTM2Mjk0ZTllOWVmNDZhM2Y0ZDY5NjQwNDRiMTgwNjgiCiAgIGludGVncml0eSBz aGE1MTItTk9LbTh4aGt6QWp6Rng4QjJ2NU9BSFQrdTVwUlFjMlVDYTJWcTlqWUwvMzFvMndpOW14 QkE3TElGczNzVjVWU0M0OXo2cEVoZmJNVUx2U2hLajI2V0E9PQogCi1jb21tYW5kZXJAXjYuMi4w OgotICB2ZXJzaW9uICI2LjIuMSIKLSAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBr Zy5jb20vY29tbWFuZGVyLy0vY29tbWFuZGVyLTYuMi4xLnRneiMwNzkyZWI2ODJkZmJjMzI1OTk5 YmIyYjg0ZmRkZGRiYTExMGFjNzNjIgotICBpbnRlZ3JpdHkgc2hhNTEyLVU3VmRySkZuSmdvNHhq ckhwVHp1MHlySFBHSW1kc21EOTVabGdZU0VhakFuMkpLekRoRFRQRzlrQlRlZm1PYkwydy9uZ2Va bmlsaytPVjlDRzNkN1VBPT0KLQotY29tbWFuZGVyQF43LjAuMDoKLSAgdmVyc2lvbiAiNy4xLjAi Ci0gIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL2NvbW1hbmRlci8tL2Nv bW1hbmRlci03LjEuMC50Z3ojZjJlYWVjZjEzMWYxMGUzNmUwN2Q4OTQ2OTgyMjZlMzZhZTBlYjVm ZiIKLSAgaW50ZWdyaXR5IHNoYTUxMi1wUnhCbmEzTUplNkhLbkJHc0R5TXY4RVRicHR3M2F4RWRZ SG9xTmg3Z3U1b0RjZXc4ZnMweG5pdlpHbTA2T2drOHpHQUo5VlgrT1BFcjJHWEVRSzRkZz09Ci0K LWNvbW1hbmRlckBeNy4yLjA6Citjb21tYW5kZXJAXjcuMC4wLCBjb21tYW5kZXJAXjcuMi4wOgog ICB2ZXJzaW9uICI3LjIuMCIKICAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5j b20vY29tbWFuZGVyLy0vY29tbWFuZGVyLTcuMi4wLnRneiNhMzZjYjU3ZDBiNTAxY2UxMDhlNGQy MDU1OWExNTBhMzkxZDk3YWI3IgogICBpbnRlZ3JpdHkgc2hhNTEyLVFyV1hCK1pRU1ZQbUlXSWh0 RU85SCtnd0hhTUdZaUY1Q2h2b0orSzlaR0hHL3NWc2E2eWllc0FEMUdDL3g0NnNFVDAwWGx3bzF1 NDlSVlZWenZjU2t3PT0KQEAgLTQxMTEsOSArMzgwMSw5IEBAIGNvbmNhdC1zdHJlYW1AXjEuNi4w LCBjb25jYXQtc3RyZWFtQF4xLjYuMSwgY29uY2F0LXN0cmVhbUB+MS42LjA6CiAgICAgdHlwZWRh cnJheSAiXjAuMC42IgogCiBjb25maWctY2hhaW5AXjEuMS4xMToKLSAgdmVyc2lvbiAiMS4xLjEy IgotICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9jb25maWctY2hhaW4v LS9jb25maWctY2hhaW4tMS4xLjEyLnRneiMwZmRlOGQwOTEyMDBlYjVlODA4Y2FmMjVmZTYxOGMw MmY0OGU0ZWZhIgotICBpbnRlZ3JpdHkgc2hhNTEyLWExZU9JY3U4KzdsVUluZ2U0UnBmL240S3Jr ZjNEZDlscWhsalJ6SUkxL1puby9rUnRVV256blBPM2pPS0JtVEVrdGt0M2ZreGlzVWNpdm9qMGVi em9BPT0KKyAgdmVyc2lvbiAiMS4xLjEzIgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55 YXJucGtnLmNvbS9jb25maWctY2hhaW4vLS9jb25maWctY2hhaW4tMS4xLjEzLnRneiNmYWQwNzk1 YWE2YTZjZGFmZjllZDFiNjhlOWRmZjk0MzcyYzIzMmY0IgorICBpbnRlZ3JpdHkgc2hhNTEyLXFq K2Y4QVBBUlhIck0waHJhcVhZYjIvYk9WU1Y0UHZKUWxOWi9EVmowUXJtTk0ycTJldWl6a2V1VmNr UTU3SitXMG1SSDZIdmkrazUwTTRKdWwyVlJRPT0KICAgZGVwZW5kZW5jaWVzOgogICAgIGluaSAi XjEuMy40IgogICAgIHByb3RvLWxpc3QgIn4xLjIuMSIKQEAgLTQyMDAsNyArMzg5MCw3IEBAIGNv cHktd2VicGFjay1wbHVnaW5AXjcuMC4wOgogICAgIHNjaGVtYS11dGlscyAiXjMuMC4wIgogICAg IHNlcmlhbGl6ZS1qYXZhc2NyaXB0ICJeNS4wLjEiCiAKLWNvcmUtanMtY29tcGF0QF4zLjIwLjIs IGNvcmUtanMtY29tcGF0QF4zLjIxLjA6Citjb3JlLWpzLWNvbXBhdEBeMy4yMC4yLCBjb3JlLWpz LWNvbXBhdEBeMy4yMS4wLCBjb3JlLWpzLWNvbXBhdEBeMy44LjEsIGNvcmUtanMtY29tcGF0QF4z LjkuMDoKICAgdmVyc2lvbiAiMy4yMS4wIgogICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55 YXJucGtnLmNvbS9jb3JlLWpzLWNvbXBhdC8tL2NvcmUtanMtY29tcGF0LTMuMjEuMC50Z3ojYmNj ODZhYTVhNTg5Y2VlMzU4ZTdhN2ZhMGE0OTc5ZDVhNzZjMzg4NSIKICAgaW50ZWdyaXR5IHNoYTUx Mi1PU1hzZU5QU0syT1BKYTZHZHRrTXovWHhlWHg4L0NKdmZoUVdUcWQ2bmV1VXJhdWpjTDRqVnNq a0xRejFPV25heDh4VlFKblJQZTBWMmpxTldPUkErQT09CkBAIC00MjA4LDI4ICszODk4LDIwIEBA IGNvcmUtanMtY29tcGF0QF4zLjIwLjIsIGNvcmUtanMtY29tcGF0QF4zLjIxLjA6CiAgICAgYnJv d3NlcnNsaXN0ICJeNC4xOS4xIgogICAgIHNlbXZlciAiNy4wLjAiCiAKLWNvcmUtanMtY29tcGF0 QF4zLjguMSwgY29yZS1qcy1jb21wYXRAXjMuOS4wOgotICB2ZXJzaW9uICIzLjkuMSIKLSAgcmVz b2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vY29yZS1qcy1jb21wYXQvLS9jb3Jl LWpzLWNvbXBhdC0zLjkuMS50Z3ojNGU1NzJhY2ZlOTBhZmY2OWQ3NmQ4YzM3NzU5ZDIxYTVjNTli YjQ1NSIKLSAgaW50ZWdyaXR5IHNoYTUxMi1qWEFpck1ReHJrYmlpTHNDeDliUVBKRkE2bGxEYWRL TXBZckJKUUozL2M0L3ZzUFAvZkFmMjloMjR0dmlSbHZ3VUw2QW1ZNUNITHUyR3ZqdVl2aVFxQT09 Ci0gIGRlcGVuZGVuY2llczoKLSAgICBicm93c2Vyc2xpc3QgIl40LjE2LjMiCi0gICAgc2VtdmVy ICI3LjAuMCIKLQogY29yZS1qc0BeMi40LjA6CiAgIHZlcnNpb24gIjIuNi4xMiIKICAgcmVzb2x2 ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vY29yZS1qcy8tL2NvcmUtanMtMi42LjEy LnRneiNkOTMzM2RmYTdiMDY1ZTM0N2NjNTY4MjIxOWQ2ZjY5MDg1OWNjMmVjIgogICBpbnRlZ3Jp dHkgc2hhNTEyLUtiMndDMGZ2c1dmUXJnazhIVTVsVzZVL0xjczgrOWFhWWN5NFpGYzZERGxvNG5a N243MGRFZ0U1cnRSMG9HNnVmS0RVbnJ3ZldMMW1YUjVsakRhdHJRPT0KIAotY29yZS1qc0BeMy4x Mi4xLCBjb3JlLWpzQF4zLjIuMToKLSAgdmVyc2lvbiAiMy4xMi4xIgotICByZXNvbHZlZCAiaHR0 cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9jb3JlLWpzLy0vY29yZS1qcy0zLjEyLjEudGd6IzZi NWFmNGZmNTU2MTZjMDhhNDRkMzg2ZjFmNTEwOTE3ZmYyMDQxMTIiCi0gIGludGVncml0eSBzaGE1 MTItTmU5REtQSFRPYlJ1QjA5RHJ1NUFqd0tqWTRjSkhWR3UreTVmN2NvR24xRTlHcmtjM3AyaUJ3 RTlBSS9uSnpzRTI5bVFGN29xK21oWVlScU9NRk4xQnc9PQorY29yZS1qc0BeMy4xNS4xLCBjb3Jl LWpzQF4zLjIuMToKKyAgdmVyc2lvbiAiMy4xOS4xIgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdp c3RyeS55YXJucGtnLmNvbS9jb3JlLWpzLy0vY29yZS1qcy0zLjE5LjEudGd6I2Y2ZjE3M2NhZTIz ZTczYTdkODhmYTIzYjZlOWRhMzI5Mjc2YzY2NDEiCisgIGludGVncml0eSBzaGE1MTItVG5jN0U5 aUtkL2IvZmY3R0ZiaHdQVnpKelB6dEdyQ2hCOFg4R0xxb1lHZEVPRzhJcExuSzF4UHlvM1pvTzNI c0s2VG9kSlM1OFZHUE94QStoTEhRTWc9PQogCiBjb3JlLXV0aWwtaXNAfjEuMC4wOgotICB2ZXJz aW9uICIxLjAuMiIKLSAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vY29y ZS11dGlsLWlzLy0vY29yZS11dGlsLWlzLTEuMC4yLnRneiNiNWZkNTQyMjBhYTJiYzVhYjU3YWFi NzE0MGM5NDA3NTQ1MDNjMWE3IgotICBpbnRlZ3JpdHkgc2hhMS10ZjFVSWdxaXZGcTFlcXR4UU1s QWRVVUR3YWM9CisgIHZlcnNpb24gIjEuMC4zIgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3Ry eS55YXJucGtnLmNvbS9jb3JlLXV0aWwtaXMvLS9jb3JlLXV0aWwtaXMtMS4wLjMudGd6I2E2MDQy ZDM2MzRjMmIyN2U5MzI4ZjgzN2I5NjVmYWM4MzgwOGRiODUiCisgIGludGVncml0eSBzaGE1MTIt WlFCdmkxRGNwSjRHRHFhbmp1Y1oySGozd0VPNXBaRFM4OUJXYmtjcnZkeGtzSm9yd1VERFphbVg5 bGRGa3A5YXcybG1CRExna09iRUE0RFdOSjlGWVE9PQogCiBjb3JzQH4yLjguNToKICAgdmVyc2lv biAiMi44LjUiCkBAIC00MjUxLDkgKzM5MzMsOSBAQCBjb3NtaWNvbmZpZ0BeNi4wLjA6CiAgICAg eWFtbCAiXjEuNy4yIgogCiBjb3NtaWNvbmZpZ0BeNy4wLjA6Ci0gIHZlcnNpb24gIjcuMC4wIgot ICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9jb3NtaWNvbmZpZy8tL2Nv c21pY29uZmlnLTcuMC4wLnRneiNlZjliNDRkNzczOTU5Y2FlNjNkZGVjZDEyMmRlMjM4NTNiNjBm OGQzIgotICBpbnRlZ3JpdHkgc2hhNTEyLXBvbmRHdlR1VllEaysrdXBnaFhKYWJXekw2S3h1NmYy NmxqRnc2NFN3cTl2NnNRUFVMM0VVbFZEVjU2ZGlPanBDYXlLaWhMNmhWZThleElBQ1U0WGNBPT0K KyAgdmVyc2lvbiAiNy4wLjEiCisgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cu Y29tL2Nvc21pY29uZmlnLy0vY29zbWljb25maWctNy4wLjEudGd6IzcxNGQ3NTY1MjJjYWNlODY3 ODY3Y2NiNDQ3NGM1ZDAxYmJhZTVkNmQiCisgIGludGVncml0eSBzaGE1MTItYTFZV05VVjJId0dp bUI3ZFUyczF3VU11ck5LanB4NjBIeEJCNnhVTThSZSsyczFnMUlJZkp2RlIwL2lDRitYSGRFMEdN VEtUdUxSMzJVUWZmNFRFeVE9PQogICBkZXBlbmRlbmNpZXM6CiAgICAgIkB0eXBlcy9wYXJzZS1q c29uIiAiXjQuMC4wIgogICAgIGltcG9ydC1mcmVzaCAiXjMuMi4xIgpAQCAtNDM1MCw1OSArNDAz Miw1MiBAQCBjc3MtY29sb3Ita2V5d29yZHNAXjEuMC4wOgogICByZXNvbHZlZCAiaHR0cHM6Ly9y ZWdpc3RyeS55YXJucGtnLmNvbS9jc3MtY29sb3Ita2V5d29yZHMvLS9jc3MtY29sb3Ita2V5d29y ZHMtMS4wLjAudGd6I2ZlYTI2MTZkYzY3NmIyOTYyNjg2YjNhZjhkYmRiZTE4MGIyNDRlMDUiCiAg IGludGVncml0eSBzaGExLS9xSmhiY1oyc3BZbWhyT3ZqYjIrR0Fza1RnVT0KIAotY3NzLWNvbG9y LW5hbWVzQF4wLjAuNDoKLSAgdmVyc2lvbiAiMC4wLjQiCi0gIHJlc29sdmVkICJodHRwczovL3Jl Z2lzdHJ5Lnlhcm5wa2cuY29tL2Nzcy1jb2xvci1uYW1lcy8tL2Nzcy1jb2xvci1uYW1lcy0wLjAu NC50Z3ojODA4YWRjMmU3OWNmODQ3MzgwNjliNjQ2Y2IyMGVjMjdiZWI2MjllMCIKLSAgaW50ZWdy aXR5IHNoYTEtZ0lyY0xublBoSE9BYWJaR3l5RHNKNzYyS2VBPQotCiBjc3MtY29sb3ItbmFtZXNA XjEuMC4xOgogICB2ZXJzaW9uICIxLjAuMSIKICAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnku eWFybnBrZy5jb20vY3NzLWNvbG9yLW5hbWVzLy0vY3NzLWNvbG9yLW5hbWVzLTEuMC4xLnRneiM2 ZmY3ZWU4MWE4MjNhZDQ2ZTAyMGZhMmZkNmFiNDBhODg3ZTJiYTY3IgogICBpbnRlZ3JpdHkgc2hh NTEyLS9sb1hZT2NoMXFVMWJpU3RJRnNISDhTeFRtT3NlaDFJSnFGdnk4SXVqWE9tMWgrUWpVZERo a3pPclI1SEc4SzhtbHhSRWoweWZpOGV3Q0h4MGVNeHpBPT0KIAogY3NzLWRlY2xhcmF0aW9uLXNv cnRlckBeNi4wLjM6Ci0gIHZlcnNpb24gIjYuMC4zIgotICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdp c3RyeS55YXJucGtnLmNvbS9jc3MtZGVjbGFyYXRpb24tc29ydGVyLy0vY3NzLWRlY2xhcmF0aW9u LXNvcnRlci02LjAuMy50Z3ojOWRmZDhlYTBkZjRjYzc4NDY4Mjc4NzZmYWZiNTIzMTQ4OTBjMjFh OSIKLSAgaW50ZWdyaXR5IHNoYTUxMi01MlA5NW12VzFTTXp1UlplZ3ZwbHVUNnlFdjBGcVF1c3lk S1FQWnNOTjVRN2hoOEV3UXZOOEUybnd1SjE2QkJ2Tk42TGNvSVpYdS9CazU4REFocnJ4dz09Cisg IHZlcnNpb24gIjYuMS4zIgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNv bS9jc3MtZGVjbGFyYXRpb24tc29ydGVyLy0vY3NzLWRlY2xhcmF0aW9uLXNvcnRlci02LjEuMy50 Z3ojZTk4NTJlNGNmOTQwYmE3OWY1MDlkOTQyNWIxMzdkMWY5NDQzOGRjMiIKKyAgaW50ZWdyaXR5 IHNoYTUxMi1TdmpRak5SWmdoNFVMSzFMREoyQWR1UEtVS3hJcW10VTdaQXlpNDdCVFYrTTkwUXZ4 cjlBQjZsS2xMYkRVZlhxSTlJUWVZQThMYkFzQ1pQcEpFVjNhQT09CiAgIGRlcGVuZGVuY2llczoK ICAgICB0aW1zb3J0ICJeMC4zLjAiCiAKLWNzcy1saW5lLWJyZWFrQDEuMS4xOgotICB2ZXJzaW9u ICIxLjEuMSIKLSAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vY3NzLWxp bmUtYnJlYWsvLS9jc3MtbGluZS1icmVhay0xLjEuMS50Z3ojZDVlOWJkZDI5Nzg0MDA5OWViMDUw M2M3MzEwZmQzNDkyN2EwMjZlZiIKLSAgaW50ZWdyaXR5IHNoYTUxMi0xZmVOVmFNNEZ5emRqNG1L UElRTkwybjcwTW11WXpBWFoxYXl0bFJPRlgxSnNPbzA3ME9zdWd3R2pqN25sNmpuREpXSERNOHpS WnN3a21lWVZXWkpRQT09Citjc3MtbGluZS1icmVha0AyLjAuMToKKyAgdmVyc2lvbiAiMi4wLjEi CisgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL2Nzcy1saW5lLWJyZWFr Ly0vY3NzLWxpbmUtYnJlYWstMi4wLjEudGd6IzNkYzc0YzJlZDVlYjY0MjExNDgwMjgxOTMyNDc1 NzkwMjQzZTczMzgiCisgIGludGVncml0eSBzaGE1MTItZ3dLWUlNVW43eG9kSWNiMzQ2d2dVaEUy RHQ1TzFLbXJjMTZQV2k4c0w0RlRmeURqOFA1MDk1cnpINytPOENUWnVkSnIrdXcyR0NJL2h3RWtE SkZJMnc9PQogICBkZXBlbmRlbmNpZXM6CiAgICAgYmFzZTY0LWFycmF5YnVmZmVyICJeMC4yLjAi CiAKIGNzcy1sb2FkZXJAXjUuMC4xOgotICB2ZXJzaW9uICI1LjEuMSIKLSAgcmVzb2x2ZWQgImh0 dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vY3NzLWxvYWRlci8tL2Nzcy1sb2FkZXItNS4xLjEu dGd6IzkzNjJkNDQ0YTBmN2MwOGMxNDhhMTA5NTk2NzE1YzkwNGUyNTI4NzkiCi0gIGludGVncml0 eSBzaGE1MTItNUZmaHBqd3R1Umd4cW11c0RpZG93cW1MbGNiKzFIZ25FRE1zaTJKaGlVclpVY29j K2NxdyttVXRNSUYvK09mZU1ZYWFGQ0xZcDFUYUl0OUg2SS9mS0E9PQorICB2ZXJzaW9uICI1LjIu NyIKKyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vY3NzLWxvYWRlci8t L2Nzcy1sb2FkZXItNS4yLjcudGd6IzliOWYxMTFlZGY2ZmIyYmU1ZGM2MjUyNTY0NGNiYzljMjMy MDY0YWUiCisgIGludGVncml0eSBzaGE1MTItUTdtT3ZwQk5CRzdZclZHTXhSeGNCSlpGTDc1bytj SDJhYk5BU2RpYmtqL2ZmZllEOHFXYkluWnJEMFM5Y2NJNnZaY2xGM0RzSEU3bmpHbEx0YUhiaGc9 PQogICBkZXBlbmRlbmNpZXM6Ci0gICAgY2FtZWxjYXNlICJeNi4yLjAiCi0gICAgY3NzZXNjICJe My4wLjAiCiAgICAgaWNzcy11dGlscyAiXjUuMS4wIgogICAgIGxvYWRlci11dGlscyAiXjIuMC4w IgotICAgIHBvc3Rjc3MgIl44LjIuNiIKKyAgICBwb3N0Y3NzICJeOC4yLjE1IgogICAgIHBvc3Rj c3MtbW9kdWxlcy1leHRyYWN0LWltcG9ydHMgIl4zLjAuMCIKICAgICBwb3N0Y3NzLW1vZHVsZXMt bG9jYWwtYnktZGVmYXVsdCAiXjQuMC4wIgogICAgIHBvc3Rjc3MtbW9kdWxlcy1zY29wZSAiXjMu MC4wIgogICAgIHBvc3Rjc3MtbW9kdWxlcy12YWx1ZXMgIl40LjAuMCIKICAgICBwb3N0Y3NzLXZh bHVlLXBhcnNlciAiXjQuMS4wIgogICAgIHNjaGVtYS11dGlscyAiXjMuMC4wIgotICAgIHNlbXZl ciAiXjcuMy40IgorICAgIHNlbXZlciAiXjcuMy41IgogCiBjc3MtbWluaW1pemVyLXdlYnBhY2st cGx1Z2luQF4zLjAuMDoKLSAgdmVyc2lvbiAiMy4wLjAiCi0gIHJlc29sdmVkICJodHRwczovL3Jl Z2lzdHJ5Lnlhcm5wa2cuY29tL2Nzcy1taW5pbWl6ZXItd2VicGFjay1wbHVnaW4vLS9jc3MtbWlu aW1pemVyLXdlYnBhY2stcGx1Z2luLTMuMC4wLnRneiM1YjFlZGJmZmUxYTNlNjQ1MGQ4Y2I1M2Zi NGY0YzUwMTNiN2FmMzEzIgotICBpbnRlZ3JpdHkgc2hhNTEyLXlJcnFHMHBQcGhSMVJvTngyd0R4 WW14UmYydWJSQ2hMRFh4djdjY2lwRW01YlJLc1pSWXA4bisycGVlWGVodFRGNXMzeU54bHFzZHoz V1FPc0FnVWt3PT0KKyAgdmVyc2lvbiAiMy4xLjEiCisgIHJlc29sdmVkICJodHRwczovL3JlZ2lz dHJ5Lnlhcm5wa2cuY29tL2Nzcy1taW5pbWl6ZXItd2VicGFjay1wbHVnaW4vLS9jc3MtbWluaW1p emVyLXdlYnBhY2stcGx1Z2luLTMuMS4xLnRneiMyN2JhZmEzYjc1MDU0NzEzNTY1YjIyNjZjNjRi MDIyOGFjZDE4NjM0IgorICBpbnRlZ3JpdHkgc2hhNTEyLUtsQjhsNXVvTmNmOUY3aTVrWG5reG9x SkdkMkJYSDRmMCtMajJ2U1dTbXV2TUxZTzFrTnNKMUtIU3plRFc4ZTQ1L3doZ1NPUGNLVlQvM0pv cGtUOGRnPT0KICAgZGVwZW5kZW5jaWVzOgotICAgIGNzc25hbm8gIl41LjAuMCIKLSAgICBqZXN0 LXdvcmtlciAiXjI2LjMuMCIKKyAgICBjc3NuYW5vICJeNS4wLjYiCisgICAgamVzdC13b3JrZXIg Il4yNy4wLjIiCiAgICAgcC1saW1pdCAiXjMuMC4yIgotICAgIHBvc3Rjc3MgIl44LjIuOSIKLSAg ICBzY2hlbWEtdXRpbHMgIl4zLjAuMCIKLSAgICBzZXJpYWxpemUtamF2YXNjcmlwdCAiXjUuMC4x IgorICAgIHBvc3Rjc3MgIl44LjMuNSIKKyAgICBzY2hlbWEtdXRpbHMgIl4zLjEuMCIKKyAgICBz ZXJpYWxpemUtamF2YXNjcmlwdCAiXjYuMC4wIgogICAgIHNvdXJjZS1tYXAgIl4wLjYuMSIKIAog Y3NzLXNlbGVjdC1iYXNlLWFkYXB0ZXJAXjAuMS4xOgpAQCAtNDQyMCw3ICs0MDk1LDcgQEAgY3Nz LXNlbGVjdEBeMi4wLjA6CiAgICAgZG9tdXRpbHMgIl4xLjcuMCIKICAgICBudGgtY2hlY2sgIl4x LjAuMiIKIAotY3NzLXNlbGVjdEBeNC4xLjIsIGNzcy1zZWxlY3RAXjQuMS4zOgorY3NzLXNlbGVj dEBeNC4xLjM6CiAgIHZlcnNpb24gIjQuMS4zIgogICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3Ry eS55YXJucGtnLmNvbS9jc3Mtc2VsZWN0Ly0vY3NzLXNlbGVjdC00LjEuMy50Z3ojYTcwNDQwZjcw MzE3ZjI2NjkxMThhZDc0ZmYxMDVlNjU4NDljNzA2NyIKICAgaW50ZWdyaXR5IHNoYTUxMi1nVDN3 Qk5kOU5qNDlyQWJtdEZIajFjbGpJQU9MWVNYMW5aOENCN1RCTzNJTllja3lnbTVCN0xJU1Uvc3pZ Ly9ZbWRpU0xiSnZETE94OVZuTVZwTUJ4QT09CkBAIC00NDY5LDcgKzQxNDQsNyBAQCBjc3Mtd2hh dEBeMy4yLjE6CiAgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL2Nzcy13 aGF0Ly0vY3NzLXdoYXQtMy40LjIudGd6I2VhNzAyNmZjYjAxNzc3ZWRiZGU1MjEyNGUyMWYzMjdl N2FlOTUwZTQiCiAgIGludGVncml0eSBzaGE1MTItQUNVbTNMMC9qaVpUcWZ6Uk0zSGk5UThlWnFk NklLMzdtTVdQTHo5UEp4a0xXbGxZZVJmK0VIVVNIWUV0Rm9wMkVxeXRhcTFGaXpGVmg3WGZCblhD RFE9PQogCi1jc3Mtd2hhdEBeNS4wLjA6Citjc3Mtd2hhdEBeNS4wLjAsIGNzcy13aGF0QF41LjAu MToKICAgdmVyc2lvbiAiNS4xLjAiCiAgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5w a2cuY29tL2Nzcy13aGF0Ly0vY3NzLXdoYXQtNS4xLjAudGd6IzNmN2I3MDdhYWRmNjMzYmFmNjJj MmNlYjg1NzliNTQ1YmI0MGY3ZmUiCiAgIGludGVncml0eSBzaGE1MTItYXJTTVJXSUlGWTBoVjhw SXhaTUVmbU1JNDdXajNSL2FXcFpERHhXWUNQRWlPTXY2dGZPcm5wRHRneEJZUEVRRDRWMFkvOTU4 KzFUZEMzaVdURmNVUHc9PQpAQCAtNDQ3OSwyNCArNDE1NCwyNCBAQCBjc3Nlc2NAXjMuMC4wOgog ICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9jc3Nlc2MvLS9jc3Nlc2Mt My4wLjAudGd6IzM3NzQxOTE5OTAzYjg2ODU2NWUxYzA5ZWE3NDc0NDVjZDE4OTgzZWUiCiAgIGlu dGVncml0eSBzaGE1MTItL1RiL0pjaksxMTFuTlNjR29iNU1OdHNudE5NMWFDTlVEaXBCL1Rrd1pG aHlEcnJFNDdTT3gvMTh3RjJiYmpnYzNaekNTS1cxVDVudDVFYkZvQXovVmc9PQogCi1jc3NuYW5v LXByZXNldC1kZWZhdWx0QF41LjEuMToKLSAgdmVyc2lvbiAiNS4xLjEiCi0gIHJlc29sdmVkICJo dHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL2Nzc25hbm8tcHJlc2V0LWRlZmF1bHQvLS9jc3Nu YW5vLXByZXNldC1kZWZhdWx0LTUuMS4xLnRneiM1Y2Q3ODNjYWVkOTQyY2M5NDE1OWFlYjEwNTgz YWY0NjkxNDQ1YjhjIgotICBpbnRlZ3JpdHkgc2hhNTEyLWtBaFI3MVRhc2NtbmpsaGw0VWVnR0Ez S0dHYk1MWEhra3FWcEE5aWRzUlQxSm1JaElzejFDM3REcEJlUU1VdzVFWDVSZmIxSEdjL1BScUQy QUZrM1ZnPT0KK2Nzc25hbm8tcHJlc2V0LWRlZmF1bHRAXjUuMS41OgorICB2ZXJzaW9uICI1LjEu NSIKKyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vY3NzbmFuby1wcmVz ZXQtZGVmYXVsdC8tL2Nzc25hbm8tcHJlc2V0LWRlZmF1bHQtNS4xLjUudGd6IzZlZmZiNzE3NWVl NWQyOTZmOTUzMzBlMTM3NTg3ZTI3ZWU5NzRkNDQiCisgIGludGVncml0eSBzaGE1MTItZkYwMFVJ K2QzUFdrR2ZNZDYyZ2VxbW9VZTVoK0xPaEdFMkdINEZxcTNiZU5LZENVMUxXd0xVeUljdTQvQTcy bFd2MDczN2NIZXk1emhoV3czclcwc0E9PQogICBkZXBlbmRlbmNpZXM6CiAgICAgY3NzLWRlY2xh cmF0aW9uLXNvcnRlciAiXjYuMC4zIgogICAgIGNzc25hbm8tdXRpbHMgIl4yLjAuMSIKICAgICBw b3N0Y3NzLWNhbGMgIl44LjAuMCIKLSAgICBwb3N0Y3NzLWNvbG9ybWluICJeNS4xLjEiCi0gICAg cG9zdGNzcy1jb252ZXJ0LXZhbHVlcyAiXjUuMC4xIgorICAgIHBvc3Rjc3MtY29sb3JtaW4gIl41 LjIuMSIKKyAgICBwb3N0Y3NzLWNvbnZlcnQtdmFsdWVzICJeNS4wLjIiCiAgICAgcG9zdGNzcy1k aXNjYXJkLWNvbW1lbnRzICJeNS4wLjEiCiAgICAgcG9zdGNzcy1kaXNjYXJkLWR1cGxpY2F0ZXMg Il41LjAuMSIKICAgICBwb3N0Y3NzLWRpc2NhcmQtZW1wdHkgIl41LjAuMSIKICAgICBwb3N0Y3Nz LWRpc2NhcmQtb3ZlcnJpZGRlbiAiXjUuMC4xIgogICAgIHBvc3Rjc3MtbWVyZ2UtbG9uZ2hhbmQg Il41LjAuMiIKLSAgICBwb3N0Y3NzLW1lcmdlLXJ1bGVzICJeNS4wLjEiCisgICAgcG9zdGNzcy1t ZXJnZS1ydWxlcyAiXjUuMC4yIgogICAgIHBvc3Rjc3MtbWluaWZ5LWZvbnQtdmFsdWVzICJeNS4w LjEiCi0gICAgcG9zdGNzcy1taW5pZnktZ3JhZGllbnRzICJeNS4wLjEiCisgICAgcG9zdGNzcy1t aW5pZnktZ3JhZGllbnRzICJeNS4wLjMiCiAgICAgcG9zdGNzcy1taW5pZnktcGFyYW1zICJeNS4w LjEiCiAgICAgcG9zdGNzcy1taW5pZnktc2VsZWN0b3JzICJeNS4xLjAiCiAgICAgcG9zdGNzcy1u b3JtYWxpemUtY2hhcnNldCAiXjUuMC4xIgpAQCAtNDUwNiwxMiArNDE4MSwxMiBAQCBjc3NuYW5v LXByZXNldC1kZWZhdWx0QF41LjEuMToKICAgICBwb3N0Y3NzLW5vcm1hbGl6ZS1zdHJpbmcgIl41 LjAuMSIKICAgICBwb3N0Y3NzLW5vcm1hbGl6ZS10aW1pbmctZnVuY3Rpb25zICJeNS4wLjEiCiAg ICAgcG9zdGNzcy1ub3JtYWxpemUtdW5pY29kZSAiXjUuMC4xIgotICAgIHBvc3Rjc3Mtbm9ybWFs aXplLXVybCAiXjUuMC4xIgorICAgIHBvc3Rjc3Mtbm9ybWFsaXplLXVybCAiXjUuMC4yIgogICAg IHBvc3Rjc3Mtbm9ybWFsaXplLXdoaXRlc3BhY2UgIl41LjAuMSIKLSAgICBwb3N0Y3NzLW9yZGVy ZWQtdmFsdWVzICJeNS4wLjEiCisgICAgcG9zdGNzcy1vcmRlcmVkLXZhbHVlcyAiXjUuMC4yIgog ICAgIHBvc3Rjc3MtcmVkdWNlLWluaXRpYWwgIl41LjAuMSIKICAgICBwb3N0Y3NzLXJlZHVjZS10 cmFuc2Zvcm1zICJeNS4wLjEiCi0gICAgcG9zdGNzcy1zdmdvICJeNS4wLjEiCisgICAgcG9zdGNz cy1zdmdvICJeNS4wLjMiCiAgICAgcG9zdGNzcy11bmlxdWUtc2VsZWN0b3JzICJeNS4wLjEiCiAK IGNzc25hbm8tdXRpbHNAXjIuMC4xOgpAQCAtNDUxOSwxNCArNDE5NCwxNSBAQCBjc3NuYW5vLXV0 aWxzQF4yLjAuMToKICAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vY3Nz bmFuby11dGlscy8tL2Nzc25hbm8tdXRpbHMtMi4wLjEudGd6Izg2NjBhYTJiMzdlZDg2OWQyZTJm MjI5MTgxOTZhOWE4YjY0OThjZTIiCiAgIGludGVncml0eSBzaGE1MTItaTh2TFJaVG5FSDl1Ykl5 ZmRaQ0FkSWRnbkhBVWVRZUJ5RWVRMkk3b1RpbHZQOW9ITzZSU2NwZXEzR3NGVVZxZUI4dVpnT1E5 cHc4dXRvZk5uMzJoaFE9PQogCi1jc3NuYW5vQF41LjAuMCwgY3NzbmFub0BeNS4wLjI6Ci0gIHZl cnNpb24gIjUuMC40IgotICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9j c3NuYW5vLy0vY3NzbmFuby01LjAuNC50Z3ojNWNhOTA3MjljOTRjNzFjNGJjM2Q0NWFiYjU0M2Jl MTA3NDBiZjM4MSIKLSAgaW50ZWdyaXR5IHNoYTUxMi1JK2ZEVzc0Q0o0eWIzMTc2NW92OXhYZTcw WExadkZUWGp3aG1BLy9WZ0FBdVNBVTM0T2JsYmU5NFE5emZmaUNYMVZoY1NmUVdBUlFud2h6K05x Z2I0UT09Citjc3NuYW5vQF41LjAuMiwgY3NzbmFub0BeNS4wLjY6CisgIHZlcnNpb24gIjUuMC45 IgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9jc3NuYW5vLy0vY3Nz bmFuby01LjAuOS50Z3ojYmQwMzE2ODgzNWMwODgzYzE2NzU0MDg1NzA0ZjU3ODYxYTMyZDk5YyIK KyAgaW50ZWdyaXR5IHNoYTUxMi1ZNG9sVEtCS3NQS2w1aXpwY1hIUkRpQi8xclZkYklETTRxVlhn RUtCdDQ2NmtZVDQyU0VFc25DWU9RRkZYekVrVVlWOHBKTkNJSTlKS3piOEtmRGsrZz09CiAgIGRl cGVuZGVuY2llczoKLSAgICBjb3NtaWNvbmZpZyAiXjcuMC4wIgotICAgIGNzc25hbm8tcHJlc2V0 LWRlZmF1bHQgIl41LjEuMSIKKyAgICBjc3NuYW5vLXByZXNldC1kZWZhdWx0ICJeNS4xLjUiCiAg ICAgaXMtcmVzb2x2YWJsZSAiXjEuMS4wIgorICAgIGxpbGNvbmZpZyAiXjIuMC4zIgorICAgIHlh bWwgIl4xLjEwLjIiCiAKIGNzc29AXjQuMC4yLCBjc3NvQF40LjIuMDoKICAgdmVyc2lvbiAiNC4y LjAiCkBAIC00NTM2LDE0ICs0MjEyLDE0IEBAIGNzc29AXjQuMC4yLCBjc3NvQF40LjIuMDoKICAg ICBjc3MtdHJlZSAiXjEuMS4yIgogCiBjc3N0eXBlQF4yLjUuMiwgY3NzdHlwZUBeMi41Ljc6Ci0g IHZlcnNpb24gIjIuNi4xNiIKLSAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5j b20vY3NzdHlwZS8tL2Nzc3R5cGUtMi42LjE2LnRneiM1NDRkNjlmNTQ3MDEzYjg1YTQwZDE1YmZm NzVkYjM4ZjM0ZmU5YzM5IgotICBpbnRlZ3JpdHkgc2hhNTEyLTYxRkJXb0RIcC9nUnRzb0RrcS9C MW5XckNVRy9vazFFM3RVcmNOYlpqc0U5Q3hkOXl6VWlyalMzK25BQVRCOFU0Y1R0YVFtQUhiTm5k b0Z6NUw2QzlRPT0KKyAgdmVyc2lvbiAiMi42LjE4IgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdp c3RyeS55YXJucGtnLmNvbS9jc3N0eXBlLy0vY3NzdHlwZS0yLjYuMTgudGd6Izk4MGE4YjUzMDg1 ZjM0YWYzMTM0MTBhZjA2NGYyYmQyNDE3ODQyMTgiCisgIGludGVncml0eSBzaGE1MTItUlNVNkh5 ZWcxNGFtM0FoNFZaRW1lWDhIN2tMd0VFaXJYZTZhVTJJUGZLTnZoWHdUZmxLNUhRUkROSTB5cFFY b3FtbStRUHlHMklhUHVRRTV6TXdTSVE9PQogCiBjc3N0eXBlQF4zLjAuMjoKLSAgdmVyc2lvbiAi My4wLjgiCi0gIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL2Nzc3R5cGUv LS9jc3N0eXBlLTMuMC44LnRneiNkMjI2NmE3OTI3MjlmYjIyN2NkMjE2ZmI1NzJmNDM3MjhlMWFk MzQwIgotICBpbnRlZ3JpdHkgc2hhNTEyLWpYS2hXcVhQbWxVZW9RbkYvRWhUdFRsNEM5U25yeFNI L2paVWloM2ptTzZsQktyOTlyUDMvK0Ztck1qNEVGcE9Yek10WEhBWmtkM3gwRTZoNkZnZmx3PT0K KyAgdmVyc2lvbiAiMy4wLjkiCisgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cu Y29tL2Nzc3R5cGUvLS9jc3N0eXBlLTMuMC45LnRneiM2NDEwYWYzMWIyNmJkMDUyMDkzM2QwMmNi YzY0ZmNlOWNlM2ZiZjBiIgorICBpbnRlZ3JpdHkgc2hhNTEyLXJwdzZKUHhLNlJmZzF6TE9ZQ1N3 bGUyR0ZPT3Nuam1EWURhQndFY3dvT2c0cWxzSVZDTjc4OVZrQlpESkFHaTRUMDdnSTRZU3V0UjQz dDlaejRMenV3PT0KIAogY3ViaWMycXVhZEBeMS4wLjA6CiAgIHZlcnNpb24gIjEuMi4xIgpAQCAt NDU2OSwxNCArNDI0NSwxNCBAQCBkYXNoLWFzdEBeMS4wLjA6CiAgIGludGVncml0eSBzaGE1MTIt Vnk0ZHg3Z3F1VGVNY1FSL2hEa1lMR1Vud1ZpbDZ2azRGT09jdCtkalVuSE9VV3QrekpQSkFhUklY YUFGa1BYdEpqdmxZN28zcmZSdTAvM2hwbndvVUE9PQogCiBkYXRlLWZuc0BeMi4yNC4wOgotICB2 ZXJzaW9uICIyLjI0LjAiCi0gIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29t L2RhdGUtZm5zLy0vZGF0ZS1mbnMtMi4yNC4wLnRneiM3ZDg2ZGMwZDkzYzg3Yjc2YjYzZDIxM2I0 NDEzMzM3Y2ZkMWMxMDVkIgotICBpbnRlZ3JpdHkgc2hhNTEyLTZ1and2d2dQSUQ2emJJMG83VWJV UmkydmxMRFI5dVAyNit0VzZMZytKaTN3N2RkMGkzRE9jamNDbExqTFByYW5UNjBTU0VGQndkU3lZ d24vWmtQSXV3PT0KKyAgdmVyc2lvbiAiMi4yNS4wIgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdp c3RyeS55YXJucGtnLmNvbS9kYXRlLWZucy8tL2RhdGUtZm5zLTIuMjUuMC50Z3ojOGM1YzhmMWQ5 NThiZTM4MDlhOWEwM2Y0Yjc0MmViYTg5NGZjNTY4MCIKKyAgaW50ZWdyaXR5IHNoYTUxMi1vdllS Rm5UcmJHUEQ0bnFhRXFlc2NQRXYxbU53dnQrVVRxSTNBeTlTek50ZXk5TlpuWXU2RTJxQ2NCQmdK Ni8yVkYxekdHeWdweVRESVRxcFFRNWUrdz09CiAKIGRhdGUtZm9ybWF0QF40LjAuMzoKICAgdmVy c2lvbiAiNC4wLjMiCiAgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL2Rh dGUtZm9ybWF0Ly0vZGF0ZS1mb3JtYXQtNC4wLjMudGd6I2Y2M2RlNWRjMDhkYzAyZWZkOGVmMzJi ZjJhNjkxOGU0ODZmMzU4NzMiCi0gIGludGVncml0eSAic2hhMS05ajNsM0FqY0F1L1k3eksvS21r WTVJYnpXSE09IHNoYTUxMi03UDNGeXFEY2Zlem5MWnAyYitPTWl0VjlTejJsVW5zVDg3V2FUYXQ5 blZ3cXNCa1R6UEczbFBMTndXM2VuNkY0cEhVaVd6cjZ2YjhDTGhqZEs5YmN4UT09IgorICBpbnRl Z3JpdHkgc2hhNTEyLTdQM0Z5cURjZmV6bkxacDJiK09NaXRWOVN6MmxVbnNUODdXYVRhdDluVndx c0JrVHpQRzNsUExOd1czZW42RjRwSFVpV3pyNnZiOENMaGpkSzliY3hRPT0KIAogZGVidWdAMi42 LjksIGRlYnVnQF4yLjYuODoKICAgdmVyc2lvbiAiMi42LjkiCkBAIC00NTg2LDkgKzQyNjIsOSBA QCBkZWJ1Z0AyLjYuOSwgZGVidWdAXjIuNi44OgogICAgIG1zICIyLjAuMCIKIAogZGVidWdANCwg ZGVidWdAXjQuMC4xLCBkZWJ1Z0BeNC4xLjAsIGRlYnVnQF40LjEuMSwgZGVidWdAXjQuMy4xLCBk ZWJ1Z0B+NC4zLjE6Ci0gIHZlcnNpb24gIjQuMy4xIgotICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdp c3RyeS55YXJucGtnLmNvbS9kZWJ1Zy8tL2RlYnVnLTQuMy4xLnRneiNmMGQyMjljNTA1ZTBjNmQ4 YzQ5YWM1NTNkMWIxM2RjMTgzZjZiMmVlIgotICBpbnRlZ3JpdHkgc2hhNTEyLWRvRXdkdm00UENl SzRLM1JRTjJaQzJCWVVCYXh3TEFSQ3FabU1qdEY4YTUxSjJSYjB4cFZsb0ZSbkNPRHdxanB3bkFv YW80cGVsTjhsM1JKZHYzZ1JRPT0KKyAgdmVyc2lvbiAiNC4zLjIiCisgIHJlc29sdmVkICJodHRw czovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL2RlYnVnLy0vZGVidWctNC4zLjIudGd6I2YwYTQ5YzE4 YWM4Nzc5ZTMxZDRhMGM2MDI5ZGZiNzY4NzNjNzQyOGIiCisgIGludGVncml0eSBzaGE1MTItbU9w OHdLY3ZqN1h4Qzc4ekxndy9aQSs2VFNna29FMkMvaWVudGhoUkQyOThUN1VOd0FnOWRpQnBMUnhD MG1PZXpMbDRCMHhWN00wY0NPNlAvTzBYaHc9PQogICBkZXBlbmRlbmNpZXM6CiAgICAgbXMgIjIu MS4yIgogCkBAIC00Njc3LDkgKzQzNTMsOSBAQCBkZWVwLWVxdWFsLWlkZW50QF4xLjEuMToKICAg ICBsb2Rhc2guaXNlcXVhbCAiXjMuMCIKIAogZGVlcC1pc0BeMC4xLjM6Ci0gIHZlcnNpb24gIjAu MS4zIgotICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9kZWVwLWlzLy0v ZGVlcC1pcy0wLjEuMy50Z3ojYjM2OWQ2ZmI1ZGJjMTNlZWNmNTI0ZjkxYjA3MGZlZWRjMzU3Y2Yz NCIKLSAgaW50ZWdyaXR5IHNoYTEtczJuVysxMjhFKzdQVWsrUnNIRCs3Y05YenpRPQorICB2ZXJz aW9uICIwLjEuNCIKKyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vZGVl cC1pcy8tL2RlZXAtaXMtMC4xLjQudGd6I2E2ZjJkY2U2MTJmYWRkMmVmMWY1MTliNzM1NTFmMTdl ODUxOTk4MzEiCisgIGludGVncml0eSBzaGE1MTItb0lQemtzbVRnNC9NcmlpYVlHTytva1hEVDd6 dG4vdzNFcHR2LytnU0lkTWRLc0pvMHU0Q2ZZTkZKUHkrNFNLTXVDcUd3Mnd4bkErVVJNZzN0OGEv YlE9PQogCiBkZWVwbWVyZ2VAXjQuMi4yOgogICB2ZXJzaW9uICI0LjIuMiIKQEAgLTQ3NDgsMTIg KzQ0MjQsMTIgQEAgZGlAXjAuMC4xOgogICBpbnRlZ3JpdHkgc2hhMS1nR1pKTW16cXA4cWpNRzEx MllYcUowaTZrVHc9CiAKIGRpZmYtYXJyYXlzLW9mLW9iamVjdHNAXjEuMS44OgotICB2ZXJzaW9u ICIxLjEuOCIKLSAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vZGlmZi1h cnJheXMtb2Ytb2JqZWN0cy8tL2RpZmYtYXJyYXlzLW9mLW9iamVjdHMtMS4xLjgudGd6I2E1YjAw OGJiNDA5YWY3YzdmOTk3ZjAwNjRlMzEyZGYwZDVhMWJiMjQiCi0gIGludGVncml0eSBzaGE1MTIt T0FhaURsUVJpdjUrRUFTVXB3TlNEYS9zV3lLSEt2T0RRZmFoMUNBeDBkb3NSOE9XWGVkRlhneEFR SElkZVdEb2JaODZENmc5M0JmSzJYOUVDSVJ1cXc9PQorICB2ZXJzaW9uICIxLjEuOSIKKyAgcmVz b2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vZGlmZi1hcnJheXMtb2Ytb2JqZWN0 cy8tL2RpZmYtYXJyYXlzLW9mLW9iamVjdHMtMS4xLjkudGd6I2IxZjAwNDg1Njg0YzFiYjJhYzY2 MTBkMmY2MDRiNTFmOTY3OTA2NGQiCisgIGludGVncml0eSBzaGE1MTItVjNVazBzbTcxUmpMc0V2 SDlOWmNnejYrQzhGdTJlQlJMd2xyRmx3WERFajZkZkhYNUVsNm1sUlVTMWhUU0VtNmVOdkxtRTRl d0oraVFiWENxR3ZWZ1E9PQogICBkZXBlbmRlbmNpZXM6CiAgICAgZGVlcC1kaWZmICJeMS4wLjIi Ci0gICAgbG9kYXNoICJeNC4xNy4xOSIKKyAgICBsb2Rhc2ggIjQiCiAKIGRpZmZpZS1oZWxsbWFu QF41LjAuMDoKICAgdmVyc2lvbiAiNS4wLjMiCkBAIC00Nzk2LDkgKzQ0NzIsOSBAQCBkb20tYWxp Z25AXjEuNy4wOgogICBpbnRlZ3JpdHkgc2hhNTEyLXBIdWF6Z3Fyc1RGckdVMldMRGRYeENGYWJr ZFFEeDcyZGRrcmFaTmloMUtzTWNONXFzUlNUUjlPNFZKUmx3VFBDUGI1Q09ZZzNMT2ZpTUhIY1BJ bkhnPT0KIAogZG9tLWhlbHBlcnNAXjUuMC4xOgotICB2ZXJzaW9uICI1LjIuMCIKLSAgcmVzb2x2 ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vZG9tLWhlbHBlcnMvLS9kb20taGVscGVy cy01LjIuMC50Z3ojNTdmZDA1NGM1ZjhmMzRjNTJhM2VlZmZkYjdlN2U5M2NkMzU3ZDk1YiIKLSAg aW50ZWdyaXR5IHNoYTUxMi1SdTVvOStWOENwdW5Lbno1TEdnV1hrbXJILzIwY0dLd2NId1M0bTcz ekl2czU0Q045ZXBFbVQvSExxRkpXM2tYcGFrQUZrRWR6Z3kxaHpsSmUzRTRPUT09CisgIHZlcnNp b24gIjUuMi4xIgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9kb20t aGVscGVycy8tL2RvbS1oZWxwZXJzLTUuMi4xLnRneiNkOTQwMDUzNmIyYmY4MjI1YWQ5OGZlMDUy ZTAyOTQ1MWFjNDBlOTAyIgorICBpbnRlZ3JpdHkgc2hhNTEyLW5SQ2E3Q0szVlRyTTJObUdrSXk0 Y2JLN0labGdCRS9QWU1uNTVyclhlZnI1eFhEUDBMZHRmUG5ibEZEb1ZkY0Fmc2xKN29yNmlxQVVu eDBDQ0dJV1FBPT0KICAgZGVwZW5kZW5jaWVzOgogICAgICJAYmFiZWwvcnVudGltZSIgIl43Ljgu NyIKICAgICBjc3N0eXBlICJeMy4wLjIiCkBAIC00ODIxLDcgKzQ0OTcsNyBAQCBkb20tc2VyaWFs aXplckAwOgogICAgIGRvbWVsZW1lbnR0eXBlICJeMi4wLjEiCiAgICAgZW50aXRpZXMgIl4yLjAu MCIKIAotZG9tLXNlcmlhbGl6ZXJAXjEuMC4xLCBkb20tc2VyaWFsaXplckBeMS4zLjE6Citkb20t c2VyaWFsaXplckBeMS4wLjEsIGRvbS1zZXJpYWxpemVyQF4xLjMuMjoKICAgdmVyc2lvbiAiMS4z LjIiCiAgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL2RvbS1zZXJpYWxp emVyLy0vZG9tLXNlcmlhbGl6ZXItMS4zLjIudGd6IzYyMDY0MzdkMzJjZWVmYWVjNzE2MTgwMzIz MGM3YTIwYmMxYjRkOTEiCiAgIGludGVncml0eSBzaGE1MTItNWM1NEJrNUR3NHFBeE5PSTFwRkVp elBTalZzeDUrYnBKS21MMmtQbjhKaEJVcTJxMDl0VENhM21qaWp1bjJOZks3OE5Nb3VEWU5NQmtP clBaaVMraWc9PQpAQCAtNDg0NSwxMCArNDUyMSwxMCBAQCBkb21lbGVtZW50dHlwZUBeMi4wLjEs IGRvbWVsZW1lbnR0eXBlQF4yLjIuMDoKICAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFy bnBrZy5jb20vZG9tZWxlbWVudHR5cGUvLS9kb21lbGVtZW50dHlwZS0yLjIuMC50Z3ojOWEwYjZj Mjc4MmVkNmExYzczMjNkNDIyNjcxODNkZjliZDhiMWQ1NyIKICAgaW50ZWdyaXR5IHNoYTUxMi1E dEJNbzgycHYxZEZ0VW1IeXI0OGJlaXVxNzkyU3hvaHIrOEhtOXpveGtsWVBmYTZuMFozQnlqajJJ VjdibXIySXlxQ2xucUVRaGZnSEpKNVFGMFI1QT09CiAKLWRvbWhhbmRsZXJANC4yLjAsIGRvbWhh bmRsZXJAXjQuMC4wLCBkb21oYW5kbGVyQF40LjIuMDoKLSAgdmVyc2lvbiAiNC4yLjAiCi0gIHJl c29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL2RvbWhhbmRsZXIvLS9kb21oYW5k bGVyLTQuMi4wLnRneiNmOTc2OGE1ZjAzNGJlNjBhODlhMjdjMmU0ZDBmNzRlYmEwZDhiMDU5Igot ICBpbnRlZ3JpdHkgc2hhNTEyLXprN3NndDk3MGt6UGtzMkJmK2R3VC9QTHpnaExuc2l2YjlDY3hr dlI4TXpyNjZPbHIwT2ZkOG5lU2JnbEhKSGFIYTJNYWRmb1NkTmxLWUFhYWZtV2ZBPT0KK2RvbWhh bmRsZXJANC4yLjIsIGRvbWhhbmRsZXJAXjQuMC4wLCBkb21oYW5kbGVyQF40LjIuMDoKKyAgdmVy c2lvbiAiNC4yLjIiCisgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL2Rv bWhhbmRsZXIvLS9kb21oYW5kbGVyLTQuMi4yLnRneiNlODI1ZDcyMWQxOWE4NmI4YzIwMWEzNTI2 NGUyMjZjNjc4ZWU3NTVmIgorICBpbnRlZ3JpdHkgc2hhNTEyLVB6RTlhQk1zZFpPOFRLNEJudUp3 SDBRVDQxd2dNYlJ6dVpySFVjcFluY0VqbVFhenE4UUVhQldnTEc3WnlDL0RBWktFZ2dscElBNmo0 UW4vSG14UzN3PT0KICAgZGVwZW5kZW5jaWVzOgogICAgIGRvbWVsZW1lbnR0eXBlICJeMi4yLjAi CiAKQEAgLTQ4NjAsMTAgKzQ1MzYsMTAgQEAgZG9tdXRpbHNAXjEuNy4wOgogICAgIGRvbS1zZXJp YWxpemVyICIwIgogICAgIGRvbWVsZW1lbnR0eXBlICIxIgogCi1kb211dGlsc0BeMi41LjIsIGRv bXV0aWxzQF4yLjYuMDoKLSAgdmVyc2lvbiAiMi42LjAiCi0gIHJlc29sdmVkICJodHRwczovL3Jl Z2lzdHJ5Lnlhcm5wa2cuY29tL2RvbXV0aWxzLy0vZG9tdXRpbHMtMi42LjAudGd6IzJlMTVjMDQx ODVkNDNmYjE2YWU3MDU3Y2I3NjQzM2M2ZWRiOTM4YjciCi0gIGludGVncml0eSBzaGE1MTIteTBC ZXpIdXk0TURZeGg2T3ZvbFhZc0grMUVNR21GYnd2NUZLVzdvdndNRzZ6VFBXcU5QcTNXRjlheVpz c0ZxK1VsS2RmZkdMYk9FYWdoTmRhT20xV0E9PQorZG9tdXRpbHNAXjIuNS4yLCBkb211dGlsc0Be Mi42LjAsIGRvbXV0aWxzQF4yLjcuMDoKKyAgdmVyc2lvbiAiMi44LjAiCisgIHJlc29sdmVkICJo dHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL2RvbXV0aWxzLy0vZG9tdXRpbHMtMi44LjAudGd6 IzQ0MzdkZWY1ZGI2ZTJkMWY1ZDZlZTg1OWJkOTVjYTdkMDIwNDgxMzUiCisgIGludGVncml0eSBz aGE1MTItdzk2Q2pvZnA3Mk01SUlocGpnb2JCaW1ZRWZvUGp4MVZ4MEJTWDlQMzBXQmRaVzJXSUtV MFQxQmQwa3oyZU5aOWlraktnSGJFeUt4OEJCNkgxTDNoM0E9PQogICBkZXBlbmRlbmNpZXM6CiAg ICAgZG9tLXNlcmlhbGl6ZXIgIl4xLjAuMSIKICAgICBkb21lbGVtZW50dHlwZSAiXjIuMi4wIgpA QCAtNDkzOCwxMCArNDYxNCwxMCBAQCBlanNAfjMuMS42OgogICBkZXBlbmRlbmNpZXM6CiAgICAg amFrZSAiXjEwLjYuMSIKIAotZWxlY3Ryb24tdG8tY2hyb21pdW1AXjEuMy43MjM6Ci0gIHZlcnNp b24gIjEuMy43NDAiCi0gIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL2Vs ZWN0cm9uLXRvLWNocm9taXVtLy0vZWxlY3Ryb24tdG8tY2hyb21pdW0tMS4zLjc0MC50Z3ojZTM4 YjdkMmI4NDhmNjMyMTkxYjY0M2U2ZGFiY2E1MWJlMjE2MjkyMiIKLSAgaW50ZWdyaXR5IHNoYTUx Mi1NaTJtNTVKclgyQkZiTlpHS1lSKzJJdGNHblI0TzVIaHJ2Z29SUnlaUWxhTUdRVUxxRGhvR2tM V0h6Sm9zaFN6aTdrMVBVb2Z4Y0RiTmhsRnJEWk5oZz09CitlbGVjdHJvbi10by1jaHJvbWl1bUBe MS4zLjg4NjoKKyAgdmVyc2lvbiAiMS4zLjg4OSIKKyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0 cnkueWFybnBrZy5jb20vZWxlY3Ryb24tdG8tY2hyb21pdW0vLS9lbGVjdHJvbi10by1jaHJvbWl1 bS0xLjMuODg5LnRneiMwYjdjNmY3NjI4NTU5NTkyZDU0MDZkZWRhMjgxNzg4ZjM3MTA3NzkwIgor ICBpbnRlZ3JpdHkgc2hhNTEyLXN1RVVvUFREMW1FeGpMOVRkbUg3Y3ZFaVdKVk0yb0VpQWkrWTFw MFFLeEkySGNSbFQ0NHFEVFAyYzFhWm1Wd1JlbUlQWU9weG1WN0N4UUNPV2NtNFhRPT0KIAogZWxl Y3Ryb24tdG8tY2hyb21pdW1AXjEuNC4xNzoKICAgdmVyc2lvbiAiMS40LjYzIgpAQCAtNDk5MCwy OCArNDY2NiwyMSBAQCBlbmQtb2Ytc3RyZWFtQF4xLjAuMCwgZW5kLW9mLXN0cmVhbUBeMS4xLjA6 CiAgIGRlcGVuZGVuY2llczoKICAgICBvbmNlICJeMS40LjAiCiAKLWVuZ2luZS5pby1jbGllbnRA fjUuMS4xOgotICB2ZXJzaW9uICI1LjEuMSIKLSAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnku eWFybnBrZy5jb20vZW5naW5lLmlvLWNsaWVudC8tL2VuZ2luZS5pby1jbGllbnQtNS4xLjEudGd6 I2Y1YzNhYWFlZjFiZGM5NDQzYWFjNmZmZGU0OGIzYjJmYjJkYzU2ZmMiCi0gIGludGVncml0eSBz aGE1MTItalBGcHcySExMMGxoWjJLWTBCcFpoSUpkbGVRY1VPOVcxeGtJcG8waDNkNnMrNUQ2K0VW L3hnUXc5cVdPbXltc3p2MldYZWYvNktVVWVoeXhFS29tbFE9PQorZW5naW5lLmlvLWNsaWVudEB+ Ni4wLjE6CisgIHZlcnNpb24gIjYuMC4yIgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55 YXJucGtnLmNvbS9lbmdpbmUuaW8tY2xpZW50Ly0vZW5naW5lLmlvLWNsaWVudC02LjAuMi50Z3oj Y2NmYzA1OTA1MWU2NWNhNjM4NDVlNjU5MjkxODQ3NTc3NTRjYzM0ZSIKKyAgaW50ZWdyaXR5IHNo YTUxMi1jQWVwOWxoWlY2UThqTVh4M1ROU1U1Y3lkTXpNZWQ4L083VHo1dXp5cVp2cE5QdFEzV1FY ckxZR0FEeGxzdWFGbU9MTjd3WkxtVDdJbWlGaFVPa3U4Zz09CiAgIGRlcGVuZGVuY2llczoKLSAg ICBiYXNlNjQtYXJyYXlidWZmZXIgIjAuMS40IgotICAgIGNvbXBvbmVudC1lbWl0dGVyICJ+MS4z LjAiCisgICAgIkBzb2NrZXQuaW8vY29tcG9uZW50LWVtaXR0ZXIiICJ+My4wLjAiCiAgICAgZGVi dWcgIn40LjMuMSIKLSAgICBlbmdpbmUuaW8tcGFyc2VyICJ+NC4wLjEiCisgICAgZW5naW5lLmlv LXBhcnNlciAifjUuMC4wIgogICAgIGhhcy1jb3JzICIxLjEuMCIKICAgICBwYXJzZXFzICIwLjAu NiIKICAgICBwYXJzZXVyaSAiMC4wLjYiCi0gICAgd3MgIn43LjQuMiIKKyAgICB3cyAifjguMi4z IgorICAgIHhtbGh0dHByZXF1ZXN0LXNzbCAifjIuMC4wIgogICAgIHllYXN0ICIwLjEuMiIKIAot ZW5naW5lLmlvLXBhcnNlckB+NC4wLjE6Ci0gIHZlcnNpb24gIjQuMC4yIgotICByZXNvbHZlZCAi aHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9lbmdpbmUuaW8tcGFyc2VyLy0vZW5naW5lLmlv LXBhcnNlci00LjAuMi50Z3ojZTQxZDBiM2ZiNjZmN2JmNGEzNjcxZDIwMzhhMTU0MDI0ZWRiNTAx ZSIKLSAgaW50ZWdyaXR5IHNoYTUxMi1zSGZFUXY2bm10SnJxNlRLdUl6NWt5RUtIL3FTZEs1Nkgv QSs3RG5BdVVQV29zbklaQVMyTkhOY1BMbXlqdFkzY0dTL01xSmRaYlVqVzk3SlU3MmlZZz09Ci0g IGRlcGVuZGVuY2llczoKLSAgICBiYXNlNjQtYXJyYXlidWZmZXIgIjAuMS40IgotCiBlbmdpbmUu aW8tcGFyc2VyQH41LjAuMDoKICAgdmVyc2lvbiAiNS4wLjMiCiAgIHJlc29sdmVkICJodHRwczov L3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL2VuZ2luZS5pby1wYXJzZXIvLS9lbmdpbmUuaW8tcGFyc2Vy LTUuMC4zLnRneiNjYTFmMGQ3YjExZTI5MGI0YmZkYTI1MTgwM2JhZWE3NjVlZDg5YzA5IgpAQCAt NTAzNSwxMCArNDcwNCwxMCBAQCBlbmdpbmUuaW9AfjYuMS4wOgogICAgIGVuZ2luZS5pby1wYXJz ZXIgIn41LjAuMCIKICAgICB3cyAifjguMi4zIgogCi1lbmhhbmNlZC1yZXNvbHZlQF41LjcuMDoK LSAgdmVyc2lvbiAiNS44LjIiCi0gIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cu Y29tL2VuaGFuY2VkLXJlc29sdmUvLS9lbmhhbmNlZC1yZXNvbHZlLTUuOC4yLnRneiMxNWRkYzc3 OTM0NWNiYjczZTk3YzYxMWNkMDBjMDFjMWU3YmY0ZDhiIgotICBpbnRlZ3JpdHkgc2hhNTEyLUYy N29CM1d1SER6dlIyRE9HTlRhWXkwRDVvMGNucnY4VGVJNDgyVk00a1lnUWQvRlQ5bFVRd3VOc0ow b09IdEJVcTdlaVc1eXRxenA3bkJGa25MK0dBPT0KK2VuaGFuY2VkLXJlc29sdmVAXjUuOC4zOgor ICB2ZXJzaW9uICI1LjguMyIKKyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5j b20vZW5oYW5jZWQtcmVzb2x2ZS8tL2VuaGFuY2VkLXJlc29sdmUtNS44LjMudGd6IzZkNTUyZDQ2 NWNjZTA0MjNmNWIzZDcxODUxMWVhNTM4MjZhN2IyZjAiCisgIGludGVncml0eSBzaGE1MTItRUdB Ykd2SDdqN1h0Mm5jMEU3RDk5TGExT2lFczhMbnlpbWtSZ3dFeHBVTVNjTjZPKzN4OXRJV3M3UExR WlZOeDRZRCswMHNrSFhQWGkxeVFIcEFtWkE9PQogICBkZXBlbmRlbmNpZXM6CiAgICAgZ3JhY2Vm dWwtZnMgIl40LjIuNCIKICAgICB0YXBhYmxlICJeMi4yLjAiCkBAIC01MTM5LDIyICs0ODA4LDI2 IEBAIGVycm9yLWV4QF4xLjMuMToKICAgZGVwZW5kZW5jaWVzOgogICAgIGlzLWFycmF5aXNoICJe MC4yLjEiCiAKLWVzLWFic3RyYWN0QF4xLjE3LjIsIGVzLWFic3RyYWN0QF4xLjE3LjQsIGVzLWFi c3RyYWN0QF4xLjE4LjAsIGVzLWFic3RyYWN0QF4xLjE4LjAtbmV4dC4xLCBlcy1hYnN0cmFjdEBe MS4xOC4wLW5leHQuMiwgZXMtYWJzdHJhY3RAXjEuMTguMjoKLSAgdmVyc2lvbiAiMS4xOC4yIgot ICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9lcy1hYnN0cmFjdC8tL2Vz LWFic3RyYWN0LTEuMTguMi50Z3ojNmViNTE4YjY0MDI2MmU4ZGRjYmQ0OGUwYmM4NTQ5ZjgyZWZk NDhhNyIKLSAgaW50ZWdyaXR5IHNoYTUxMi1ieVJpTklRWEU2SFdOeVNhVTZKb2hvTlh6WWdiQmp6 dHdGbkJMVVRpSm1XWGphVTliU3EzdXJRTFVsTkxRMjkydGMrZ2MwN3pZWlhOWmphT29BWDNzdz09 Citlcy1hYnN0cmFjdEBeMS4xNy4yLCBlcy1hYnN0cmFjdEBeMS4xOC4wLW5leHQuMSwgZXMtYWJz dHJhY3RAXjEuMTguNSwgZXMtYWJzdHJhY3RAXjEuMTkuMCwgZXMtYWJzdHJhY3RAXjEuMTkuMToK KyAgdmVyc2lvbiAiMS4xOS4xIgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtn LmNvbS9lcy1hYnN0cmFjdC8tL2VzLWFic3RyYWN0LTEuMTkuMS50Z3ojZDQ4ODU3OTY4NzY5MTY5 NTlkZTc4ZWRhYTBkZjQ1NjYyNzExNWVjMyIKKyAgaW50ZWdyaXR5IHNoYTUxMi0ydko2dGpBL1Vm cUxtMk1QczdqeFZ5YkxvQjhpMXQxSmQ5UjNrSVNsZDIwc0l4UGNUYkx1Z2dRT1V4ZVdlQXZJVWtk dXYvQ2ZNanVoNFdtaVhyMnY5dz09CiAgIGRlcGVuZGVuY2llczoKICAgICBjYWxsLWJpbmQgIl4x LjAuMiIKICAgICBlcy10by1wcmltaXRpdmUgIl4xLjIuMSIKICAgICBmdW5jdGlvbi1iaW5kICJe MS4xLjEiCiAgICAgZ2V0LWludHJpbnNpYyAiXjEuMS4xIgorICAgIGdldC1zeW1ib2wtZGVzY3Jp cHRpb24gIl4xLjAuMCIKICAgICBoYXMgIl4xLjAuMyIKICAgICBoYXMtc3ltYm9scyAiXjEuMC4y IgotICAgIGlzLWNhbGxhYmxlICJeMS4yLjMiCisgICAgaW50ZXJuYWwtc2xvdCAiXjEuMC4zIgor ICAgIGlzLWNhbGxhYmxlICJeMS4yLjQiCiAgICAgaXMtbmVnYXRpdmUtemVybyAiXjIuMC4xIgot ICAgIGlzLXJlZ2V4ICJeMS4xLjMiCi0gICAgaXMtc3RyaW5nICJeMS4wLjYiCi0gICAgb2JqZWN0 LWluc3BlY3QgIl4xLjEwLjMiCisgICAgaXMtcmVnZXggIl4xLjEuNCIKKyAgICBpcy1zaGFyZWQt YXJyYXktYnVmZmVyICJeMS4wLjEiCisgICAgaXMtc3RyaW5nICJeMS4wLjciCisgICAgaXMtd2Vh a3JlZiAiXjEuMC4xIgorICAgIG9iamVjdC1pbnNwZWN0ICJeMS4xMS4wIgogICAgIG9iamVjdC1r ZXlzICJeMS4xLjEiCiAgICAgb2JqZWN0LmFzc2lnbiAiXjQuMS4yIgogICAgIHN0cmluZy5wcm90 b3R5cGUudHJpbWVuZCAiXjEuMC40IgpAQCAtNTE2NiwxMCArNDgzOSwxMCBAQCBlcy1hcnJheS1t ZXRob2QtYm94ZXMtcHJvcGVybHlAXjEuMC4wOgogICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3Ry eS55YXJucGtnLmNvbS9lcy1hcnJheS1tZXRob2QtYm94ZXMtcHJvcGVybHkvLS9lcy1hcnJheS1t ZXRob2QtYm94ZXMtcHJvcGVybHktMS4wLjAudGd6Izg3M2YzZTg0NDE4ZGU0ZWUxOWM1YmU3NTI5 OTBiMmU0NDcxOGQwOWUiCiAgIGludGVncml0eSBzaGE1MTItd2Q2SlhVbXlIbXQ4VDVhMnhyZVV3 S2NHUHE2ZjFmK1d3SUpraWpVcWlHY0p6MXFxblpnUDZYSUsrUXlJV1U1bFQ3aW1lTnhVbGw0OGJ6 aUcrVFNZY0E9PQogCi1lcy1tb2R1bGUtbGV4ZXJAXjAuNC4wOgotICB2ZXJzaW9uICIwLjQuMSIK LSAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vZXMtbW9kdWxlLWxleGVy Ly0vZXMtbW9kdWxlLWxleGVyLTAuNC4xLnRneiNkZGE4YzZhMTRkOGYzNDBhMjRlMzQzMzFlMGZh YjBjYjUwNDM4ZTBlIgotICBpbnRlZ3JpdHkgc2hhNTEyLW9vWWNpQ1V0Znc2L2QydzU2VVZlcUhQ Y29DRkFpSmR6NVhPa1lwdi9UeGwxSE1Vb3pwWGp6LzJSSVFncXdLZFhORFBTRjFXN21KQ0ZzZTNH K0hEeUFBPT0KK2VzLW1vZHVsZS1sZXhlckBeMC45LjA6CisgIHZlcnNpb24gIjAuOS4zIgorICBy ZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9lcy1tb2R1bGUtbGV4ZXIvLS9l cy1tb2R1bGUtbGV4ZXItMC45LjMudGd6IzZmMTNkYjAwY2MzODQxNzEzN2RhZjc0MzY2ZjUzNWM4 ZWI0MzhmMTkiCisgIGludGVncml0eSBzaGE1MTItMUhRMk0yc1B0eHdudk92VDFaQ2xIeVFEaWdn ZE5qVVJXcFkyd2U2YU1LQ1FpVVZ4VG1WczJVWVBMSXJEODRzUytrTWRVd2ZCU3lsYkpQd05uQnJu SFE9PQogCiBlcy10by1wcmltaXRpdmVAXjEuMi4xOgogICB2ZXJzaW9uICIxLjIuMSIKQEAgLTUx OTUsNDMgKzQ4NjgsNDIgQEAgZXNjYXBlLXN0cmluZy1yZWdleHBAXjEuMC4yLCBlc2NhcGUtc3Ry aW5nLXJlZ2V4cEBeMS4wLjU6CiAgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cu Y29tL2VzY2FwZS1zdHJpbmctcmVnZXhwLy0vZXNjYXBlLXN0cmluZy1yZWdleHAtMS4wLjUudGd6 IzFiNjFjMDU2MjE5MGE4ZGZmNmFlM2JiMmNmMDIwMGNhMTMwYjg2ZDQiCiAgIGludGVncml0eSBz aGExLUcySEFWaUdRcU4vMnJqdXl6d0lBeWhNTGh0UT0KIAorZXNjYXBlLXN0cmluZy1yZWdleHBA XjQuMC4wOgorICB2ZXJzaW9uICI0LjAuMCIKKyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnku eWFybnBrZy5jb20vZXNjYXBlLXN0cmluZy1yZWdleHAvLS9lc2NhcGUtc3RyaW5nLXJlZ2V4cC00 LjAuMC50Z3ojMTRiYTgzYTVkMzczZTNkMzExZTVhZmNhMjljZjViZmFkOTY1YmYzNCIKKyAgaW50 ZWdyaXR5IHNoYTUxMi1UdHBjTkozWEF6eDNHcThzV1J6SmFWYWpSczB1VnhBMllBa2RiMWptMllr UHo0RzZlZ1VGQXlBM241dnRFSVplZlBrNVdhNFVYYkt1UzVmS2tKV2RnQT09CisKIGVzbGludC1w bHVnaW4tcmVhY3QtaG9va3NAXjQuMy4wOgogICB2ZXJzaW9uICI0LjMuMCIKICAgcmVzb2x2ZWQg Imh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vZXNsaW50LXBsdWdpbi1yZWFjdC1ob29rcy8t L2VzbGludC1wbHVnaW4tcmVhY3QtaG9va3MtNC4zLjAudGd6IzMxOGRiZjMxMmUwNmZhYjFjODM1 YTRhYmVmMDAxMjE3NTFhYzExNzIiCiAgIGludGVncml0eSBzaGE1MTItWHNsWnkwTG5Nbis4NE5F RzlqU0dSNmVHcWFaQjMxMzNMOHhld1FvM2ZRYWdiUXVHdDdhNjNnZitQMU5HS1phdkVZRUMzVVhh V0VBQS9BcURrdU42eEE9PQogCiBlc2xpbnQtcGx1Z2luLXJlYWN0QF43LjIwLjU6Ci0gIHZlcnNp b24gIjcuMjMuMiIKLSAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vZXNs aW50LXBsdWdpbi1yZWFjdC8tL2VzbGludC1wbHVnaW4tcmVhY3QtNy4yMy4yLnRneiMyZDIyOTFi MGY5NWMwMzcyOGI1NTg2OWYwMTEwMjI5MGU3OTJkNDk0IgotICBpbnRlZ3JpdHkgc2hhNTEyLUFm amdGUUIrbllzenVka3hSa1RGdTBVUjF6RVFpZzBBclZNUGxvS2h4d2x3a3phdy9mQmlIMFFXY0JC aFpPTmxYcVFDNTErbmZxRnJrbjRFekhjR0J3PT0KKyAgdmVyc2lvbiAiNy4yNi4xIgorICByZXNv bHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9lc2xpbnQtcGx1Z2luLXJlYWN0Ly0v ZXNsaW50LXBsdWdpbi1yZWFjdC03LjI2LjEudGd6IzQxYmNmZTNlMzllNmE1YWMwNDA5NzFjMWFm OTQ0MzdjODBkYWE0MGUiCisgIGludGVncml0eSBzaGE1MTItTHVnMCtOT0ZYZU9FK09SWjVwYnNo Nm1TS2pCS1hEWEl0VUQyc1FvVCs1WWwwZW9UODJEcW5YZVRNZlVhcmU0UVZDbjlRd1hiZnpPL2RC TGpMWHdWalE9PQogICBkZXBlbmRlbmNpZXM6CiAgICAgYXJyYXktaW5jbHVkZXMgIl4zLjEuMyIK ICAgICBhcnJheS5wcm90b3R5cGUuZmxhdG1hcCAiXjEuMi40IgogICAgIGRvY3RyaW5lICJeMi4x LjAiCi0gICAgaGFzICJeMS4wLjMiCisgICAgZXN0cmF2ZXJzZSAiXjUuMi4wIgogICAgIGpzeC1h c3QtdXRpbHMgIl4yLjQuMSB8fCBeMy4wLjAiCiAgICAgbWluaW1hdGNoICJeMy4wLjQiCi0gICAg b2JqZWN0LmVudHJpZXMgIl4xLjEuMyIKKyAgICBvYmplY3QuZW50cmllcyAiXjEuMS40IgogICAg IG9iamVjdC5mcm9tZW50cmllcyAiXjIuMC40IgotICAgIG9iamVjdC52YWx1ZXMgIl4xLjEuMyIK KyAgICBvYmplY3QuaGFzb3duICJeMS4wLjAiCisgICAgb2JqZWN0LnZhbHVlcyAiXjEuMS40Igog ICAgIHByb3AtdHlwZXMgIl4xNS43LjIiCiAgICAgcmVzb2x2ZSAiXjIuMC4wLW5leHQuMyIKLSAg ICBzdHJpbmcucHJvdG90eXBlLm1hdGNoYWxsICJeNC4wLjQiCisgICAgc2VtdmVyICJeNi4zLjAi CisgICAgc3RyaW5nLnByb3RvdHlwZS5tYXRjaGFsbCAiXjQuMC41IgogCiBlc2xpbnQtcnVsZS1j b21wb3NlckBeMC4zLjA6CiAgIHZlcnNpb24gIjAuMy4wIgogICByZXNvbHZlZCAiaHR0cHM6Ly9y ZWdpc3RyeS55YXJucGtnLmNvbS9lc2xpbnQtcnVsZS1jb21wb3Nlci8tL2VzbGludC1ydWxlLWNv bXBvc2VyLTAuMy4wLnRneiM3OTMyMGM5MjdiMGM1YzBkM2QzZDJiNzZjOGI0YTQ4OGYyNWJiYWY5 IgogICBpbnRlZ3JpdHkgc2hhNTEyLWJ0K1NoOEN0RG1uMk9hanh2Tk8rQlg3V240Q0lXTXBUUm0z TWFpS1BDUWNubmxtMENTMm1odWk2UWFvZVF1Z3MrM0tqMkVTS0VFR0pVZFZhZndoaUNnPT0KIAot ZXNsaW50LXNjb3BlQDUuMS4wOgotICB2ZXJzaW9uICI1LjEuMCIKLSAgcmVzb2x2ZWQgImh0dHBz Oi8vcmVnaXN0cnkueWFybnBrZy5jb20vZXNsaW50LXNjb3BlLy0vZXNsaW50LXNjb3BlLTUuMS4w LnRneiNkMGY5NzFkZmU1OWM2OWUwY2FkYTY4NGIyM2Q0OWRiZjgyNjAwY2U1IgotICBpbnRlZ3Jp dHkgc2hhNTEyLWlpR1J2dHhXcWd0eDVtOEV5UVVKaWhCbG9FNEVuWWVHRS9iejF3U1B3SkU2dFp1 SlV0SGxocURNNFhqMnVrRThEeXkxK0hDWjRoRTBmeklWTXpiNTh3PT0KLSAgZGVwZW5kZW5jaWVz OgotICAgIGVzcmVjdXJzZSAiXjQuMS4wIgotICAgIGVzdHJhdmVyc2UgIl40LjEuMSIKLQotZXNs aW50LXNjb3BlQF41LjEuMToKK2VzbGludC1zY29wZUA1LjEuMSwgZXNsaW50LXNjb3BlQF41LjEu MToKICAgdmVyc2lvbiAiNS4xLjEiCiAgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5w a2cuY29tL2VzbGludC1zY29wZS8tL2VzbGludC1zY29wZS01LjEuMS50Z3ojZTc4NmU1OWE2NmNi OTJiM2Y2YzFmYjBkNTA4YWFiMTc0ODQ4ZjQ4YyIKICAgaW50ZWdyaXR5IHNoYTUxMi0yTnh3YkYv aFowS3BlcFlOMGNOYm8rRk42WG9LN0dhSGxRaGd4L2hJWmw2VmEwYkY0NVJRT093aExJeThsUURi dUNpYWRTTENCbkgyQ0ZZcXVpdDVidz09CkBAIC01MjUxLDM0ICs0OTIzLDM3IEBAIGVzbGludC12 aXNpdG9yLWtleXNAXjEuMS4wLCBlc2xpbnQtdmlzaXRvci1rZXlzQF4xLjMuMDoKICAgcmVzb2x2 ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vZXNsaW50LXZpc2l0b3Ita2V5cy8tL2Vz bGludC12aXNpdG9yLWtleXMtMS4zLjAudGd6IzMwZWJkMWVmN2MyZmRmZjAxYzNhNGYxNTEwNDRh ZjI1ZmFiMDUyM2UiCiAgIGludGVncml0eSBzaGE1MTItNko3Mk44VU5hNDYyd2EvS0ZPRHQvUEoz SVU2MFNEcEMzUVhDMUhqYzFCWFhwZkwyQzlSNStBVTdqaGUwRjZHUkVxVk1oNEp1dStOWTd4bis2 ZGlwVVE9PQogCi1lc2xpbnQtdmlzaXRvci1rZXlzQF4yLjAuMDoKK2VzbGludC12aXNpdG9yLWtl eXNAXjIuMC4wLCBlc2xpbnQtdmlzaXRvci1rZXlzQF4yLjEuMDoKICAgdmVyc2lvbiAiMi4xLjAi CiAgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL2VzbGludC12aXNpdG9y LWtleXMvLS9lc2xpbnQtdmlzaXRvci1rZXlzLTIuMS4wLnRneiNmNjUzMjgyNTkzMDU5MjczOTJj OTM4ZWQ0NGViMGE1YzliMmJkMzAzIgogICBpbnRlZ3JpdHkgc2hhNTEyLTByU21SQnpYZ0R6SXNE Nm1HZEpnZXZ6Z2V6STUzNENlcjVML3Z5TVgwa0h6VC9qaUI0M2pSaGQ5WVVsTUdZTFF5Mnpwck5t b1Q4cWFzQ0d0WStRYUt3PT0KIAogZXNsaW50QF43LjE5LjA6Ci0gIHZlcnNpb24gIjcuMjEuMCIK LSAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vZXNsaW50Ly0vZXNsaW50 LTcuMjEuMC50Z3ojNGVjZDViOGM1YjQ0ZjVkZWRjOWI4YTExMGIwMWJiZmViMTVkMWM4MyIKLSAg aW50ZWdyaXR5IHNoYTUxMi1XMmFKYlhwTU5vZlVwMHp0UWFGNDBmdmVTc0pCamxTQ1NXcHkvL2d6 ZlR2d0MrVVNzL25jZUJyS21sSk9pTThyMWJMd1AyRXVZa0NxQXJuLzZRVElnZz09CisgIHZlcnNp b24gIjcuMzIuMCIKKyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vZXNs aW50Ly0vZXNsaW50LTcuMzIuMC50Z3ojYzZkMzI4YTE0YmUzZmIwOGM4ZDFkMjFlMTJjMDJmZGI3 YTJhODEyZCIKKyAgaW50ZWdyaXR5IHNoYTUxMi1WSFo4Z1grRURmeis5N2pHY2d5R0N5UmlhL2RQ T2Q2WGg5eVB2OEJsMStTb2FJd0QrYS92bHJPbUdSVXlPWXU3TXdVaGM3Q3hxZWFEWlUxM1M0K0Vw QT09CiAgIGRlcGVuZGVuY2llczoKICAgICAiQGJhYmVsL2NvZGUtZnJhbWUiICI3LjEyLjExIgot ICAgICJAZXNsaW50L2VzbGludHJjIiAiXjAuNC4wIgorICAgICJAZXNsaW50L2VzbGludHJjIiAi XjAuNC4zIgorICAgICJAaHVtYW53aG9jb2Rlcy9jb25maWctYXJyYXkiICJeMC41LjAiCiAgICAg YWp2ICJeNi4xMC4wIgogICAgIGNoYWxrICJeNC4wLjAiCiAgICAgY3Jvc3Mtc3Bhd24gIl43LjAu MiIKICAgICBkZWJ1ZyAiXjQuMC4xIgogICAgIGRvY3RyaW5lICJeMy4wLjAiCiAgICAgZW5xdWly ZXIgIl4yLjMuNSIKKyAgICBlc2NhcGUtc3RyaW5nLXJlZ2V4cCAiXjQuMC4wIgogICAgIGVzbGlu dC1zY29wZSAiXjUuMS4xIgogICAgIGVzbGludC11dGlscyAiXjIuMS4wIgogICAgIGVzbGludC12 aXNpdG9yLWtleXMgIl4yLjAuMCIKICAgICBlc3ByZWUgIl43LjMuMSIKICAgICBlc3F1ZXJ5ICJe MS40LjAiCiAgICAgZXN1dGlscyAiXjIuMC4yIgorICAgIGZhc3QtZGVlcC1lcXVhbCAiXjMuMS4z IgogICAgIGZpbGUtZW50cnktY2FjaGUgIl42LjAuMSIKICAgICBmdW5jdGlvbmFsLXJlZC1ibGFj ay10cmVlICJeMS4wLjEiCi0gICAgZ2xvYi1wYXJlbnQgIl41LjAuMCIKLSAgICBnbG9iYWxzICJe MTIuMS4wIgorICAgIGdsb2ItcGFyZW50ICJeNS4xLjIiCisgICAgZ2xvYmFscyAiXjEzLjYuMCIK ICAgICBpZ25vcmUgIl40LjAuNiIKICAgICBpbXBvcnQtZnJlc2ggIl4zLjAuMCIKICAgICBpbXVy bXVyaGFzaCAiXjAuMS40IgpAQCAtNTI4Niw3ICs0OTYxLDcgQEAgZXNsaW50QF43LjE5LjA6CiAg ICAganMteWFtbCAiXjMuMTMuMSIKICAgICBqc29uLXN0YWJsZS1zdHJpbmdpZnktd2l0aG91dC1q c29uaWZ5ICJeMS4wLjEiCiAgICAgbGV2biAiXjAuNC4xIgotICAgIGxvZGFzaCAiXjQuMTcuMjAi CisgICAgbG9kYXNoLm1lcmdlICJeNC42LjIiCiAgICAgbWluaW1hdGNoICJeMy4wLjQiCiAgICAg bmF0dXJhbC1jb21wYXJlICJeMS40LjAiCiAgICAgb3B0aW9uYXRvciAiXjAuOS4xIgpAQCAtNTI5 NSw3ICs0OTcwLDcgQEAgZXNsaW50QF43LjE5LjA6CiAgICAgc2VtdmVyICJeNy4yLjEiCiAgICAg c3RyaXAtYW5zaSAiXjYuMC4wIgogICAgIHN0cmlwLWpzb24tY29tbWVudHMgIl4zLjEuMCIKLSAg ICB0YWJsZSAiXjYuMC40IgorICAgIHRhYmxlICJeNi4wLjkiCiAgICAgdGV4dC10YWJsZSAiXjAu Mi4wIgogICAgIHY4LWNvbXBpbGUtY2FjaGUgIl4yLjAuMyIKIApAQCAtNTMyMCw3ICs0OTk1LDcg QEAgZXNxdWVyeUBeMS40LjA6CiAgIGRlcGVuZGVuY2llczoKICAgICBlc3RyYXZlcnNlICJeNS4x LjAiCiAKLWVzcmVjdXJzZUBeNC4xLjAsIGVzcmVjdXJzZUBeNC4zLjA6Citlc3JlY3Vyc2VAXjQu My4wOgogICB2ZXJzaW9uICI0LjMuMCIKICAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFy bnBrZy5jb20vZXNyZWN1cnNlLy0vZXNyZWN1cnNlLTQuMy4wLnRneiM3YWQ3OTY0ZDY3OWFiYjI4 YmVlNzJjZWM2Mzc1OGIxYzVkMmM5OTIxIgogICBpbnRlZ3JpdHkgc2hhNTEyLUttZktMM2I2RytS WHZQOE4xdnIzVHExa0wvb0NGZ24yTllYRXRxUDgvTDNwS2FwVUE0RzhjRlZhb0YzU1UzMjNDRDRY eXBSL2ZmaW9IbWt0aTYvVGFnPT0KQEAgLTUzMzMsOSArNTAwOCw5IEBAIGVzdHJhdmVyc2VAXjQu MS4xOgogICBpbnRlZ3JpdHkgc2hhNTEyLTM5bm5LZmZXejh4TjFCVS8yYzc5bjluQjlIRHpvMG5p WVVxeDZ4eXFVbnlvQW5ReXlXcE9UZFpFZWlDY2g4QkJ1NTE1dDR3cDlabWdWZlZobjlFQnB3PT0K IAogZXN0cmF2ZXJzZUBeNS4xLjAsIGVzdHJhdmVyc2VAXjUuMi4wOgotICB2ZXJzaW9uICI1LjIu MCIKLSAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vZXN0cmF2ZXJzZS8t L2VzdHJhdmVyc2UtNS4yLjAudGd6IzMwN2RmNDI1NDdlNmNjNzMyNGQzY2YwM2MxNTVkNWNkYjhj NTM4ODAiCi0gIGludGVncml0eSBzaGE1MTItQnhiTkdHTm0wUnlSWXZVZEhwSXd2OUlXemVNOVhD bGJPeHdvQVR1RmRPRTdaRTZ3SEwrSFE1VDhob1BNK3pIdm1LenpzRXFoZ3kwR3JRNVgxM2FmaVE9 PQorICB2ZXJzaW9uICI1LjMuMCIKKyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBr Zy5jb20vZXN0cmF2ZXJzZS8tL2VzdHJhdmVyc2UtNS4zLjAudGd6IzJlZWE1MjkwNzAyZjI2YWI4 ZmU1MzcwMzcwZmY4NmM5NjVkMjExMjMiCisgIGludGVncml0eSBzaGE1MTItTU1kQVJ1VkVRemlO VGVKRDhEZ01xbWh3UjExQlJRL2NCUCtwTHRZZFNUbmYzTUlPOGZGZWlJTkViWDM2WmRObGZVLzdB OWYzZ1V3NDlCM29Rc3Z3QkE9PQogCiBlc3V0aWxzQF4yLjAuMjoKICAgdmVyc2lvbiAiMi4wLjMi CkBAIC01NDE4LDkgKzUwOTMsOSBAQCBleGVjYUBeNC4wLjA6CiAgICAgc3RyaXAtZmluYWwtbmV3 bGluZSAiXjIuMC4wIgogCiBleGVjYUBeNS4wLjA6Ci0gIHZlcnNpb24gIjUuMC4wIgotICByZXNv bHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9leGVjYS8tL2V4ZWNhLTUuMC4wLnRn eiM0MDI5YjAwMDc5OThhODQxZmJkMTAzMmU1ZjRkZTg2YTNjMWUzMzc2IgotICBpbnRlZ3JpdHkg c2hhNTEyLW92NncvMkxDaXV5TzRSTFlHZHBGR2prY3Mwd01UZ0dFOFBya1RIaWtlVXk1aUpla1h5 UElLVWppZms1Q3NFMHB0N3NNQ3JNWjNZTnFvQ2o2aWRRT25RPT0KKyAgdmVyc2lvbiAiNS4xLjEi CisgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL2V4ZWNhLy0vZXhlY2Et NS4xLjEudGd6I2Y4MGFkOWNiZjQyOThmN2JkMWQ0Yzk1NTVjMjFlOTM3NDFjNDExZGQiCisgIGlu dGVncml0eSBzaGE1MTItOHVTcFpab2NBWlJCQVBJRUlOSmozTG85SHlHaXRsbGN6YzI3RWg1WVlv ampNRk1uOHlITURNYVVIRTJKcWZxMDVEL3d1Y3dJNEpHVVJ5WHQxdmNoeWc9PQogICBkZXBlbmRl bmNpZXM6CiAgICAgY3Jvc3Mtc3Bhd24gIl43LjAuMyIKICAgICBnZXQtc3RyZWFtICJeNi4wLjAi CkBAIC01NDc3LDE2ICs1MTUyLDE1IEBAIGZhc3QtZGVlcC1lcXVhbEBeMy4xLjEsIGZhc3QtZGVl cC1lcXVhbEBeMy4xLjM6CiAgIGludGVncml0eSBzaGE1MTItZjNxUTlvUXk5ajJBaEJlL0g5VkM5 MXdMbUtCQ0NVL2dET25LTkFZRzVoc3dPN0JMS2owOUhjNUhZTno5Y0dJKyt4bHBEQ0lnRGFpdFZz MDNBVFI4NFE9PQogCiBmYXN0LWdsb2JAXjMuMC4zLCBmYXN0LWdsb2JAXjMuMS4xLCBmYXN0LWds b2JAXjMuMi40OgotICB2ZXJzaW9uICIzLjIuNSIKLSAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0 cnkueWFybnBrZy5jb20vZmFzdC1nbG9iLy0vZmFzdC1nbG9iLTMuMi41LnRneiM3OTM5YWYyYTY1 NmRlNzlhNGYxOTAxOTAzZWU4YWRjYWE3Y2I5NjYxIgotICBpbnRlZ3JpdHkgc2hhNTEyLTJEdEZj Z1Q2OHdpVFRpd1oyaE5kSmZjSE5rZTlYT2Zud21CUldYaG1lS004ckYwVEd3bUMvUXRvM1M3Um9a S3A1Y2lsWmJ4ek81aVROVFFzSitFZURnPT0KKyAgdmVyc2lvbiAiMy4yLjciCisgIHJlc29sdmVk ICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL2Zhc3QtZ2xvYi8tL2Zhc3QtZ2xvYi0zLjIu Ny50Z3ojZmQ2Y2I3YTJkN2U5YWE3YTc4NDYxMTFlODVhMTk2ZDZiMmY3NjZhMSIKKyAgaW50ZWdy aXR5IHNoYTUxMi1yWUdNUndpcDZsVU12WUQzQlRTY013VDFIdEFzMmQ3MVNNdjY2VnJ4czBJZWtH WkVqaE0wcGNNZmpRUG5rbkJ0MnplQ3dRTUV1cGlOMDJaUDREaVQxUT09CiAgIGRlcGVuZGVuY2ll czoKICAgICAiQG5vZGVsaWIvZnMuc3RhdCIgIl4yLjAuMiIKICAgICAiQG5vZGVsaWIvZnMud2Fs ayIgIl4xLjIuMyIKLSAgICBnbG9iLXBhcmVudCAiXjUuMS4wIgorICAgIGdsb2ItcGFyZW50ICJe NS4xLjIiCiAgICAgbWVyZ2UyICJeMS4zLjAiCi0gICAgbWljcm9tYXRjaCAiXjQuMC4yIgotICAg IHBpY29tYXRjaCAiXjIuMi4xIgorICAgIG1pY3JvbWF0Y2ggIl40LjAuNCIKIAogZmFzdC1qc29u LXN0YWJsZS1zdHJpbmdpZnlAXjIuMC4wOgogICB2ZXJzaW9uICIyLjEuMCIKQEAgLTU0OTksMTQg KzUxNzMsMTYgQEAgZmFzdC1sZXZlbnNodGVpbkBeMi4wLjY6CiAgIGludGVncml0eSBzaGExLVBZ cGNab2c2RnFNTXFHUStoUjhadXFkNWVSYz0KIAogZmFzdC1zYWZlLXN0cmluZ2lmeUBeMi4wLjc6 Ci0gIHZlcnNpb24gIjIuMC43IgotICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtn LmNvbS9mYXN0LXNhZmUtc3RyaW5naWZ5Ly0vZmFzdC1zYWZlLXN0cmluZ2lmeS0yLjAuNy50Z3oj MTI0YWE4ODU4OTkyNjFmNjhhZWRiNDJhN2MwODBkZTlkYTYwODc0MyIKLSAgaW50ZWdyaXR5IHNo YTUxMi1VdG02Q2R6VCs2eHNEazJtOFM2dUw4Vkh4TndJNkp1YitlOU5ZVGNBbXMyOFQ4NHBUYTI1 R0pRVjlqMENZME4xck04aEs0eDZncnBGMkJRZisycXdWQT09CisgIHZlcnNpb24gIjIuMS4xIgor ICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9mYXN0LXNhZmUtc3RyaW5n aWZ5Ly0vZmFzdC1zYWZlLXN0cmluZ2lmeS0yLjEuMS50Z3ojYzQwNmE4M2I2ZTcwZDllMzVjZTNi MzBhODExNDFkZjMwYWViYTg4NCIKKyAgaW50ZWdyaXR5IHNoYTUxMi1XK0tKYzJkbUlMbFBwbEQv SDRLOWw5TGNBSEFmUHRQNkJZODR1VkxYUTZFdmN6OUxjZzMzWTJ6MUlWYmxUNnhkWTU0UFhZVkhF diswV3BxOElvNnprQT09CiAKIGZhc3QteG1sLXBhcnNlckBeMy4xOS4wOgotICB2ZXJzaW9uICIz LjE5LjAiCi0gIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL2Zhc3QteG1s LXBhcnNlci8tL2Zhc3QteG1sLXBhcnNlci0zLjE5LjAudGd6I2NiNjM3ZWMzZjM5OTlmNTE0MDZk ZDhmZjBlNmZjNGQ4M2U1MjBkMDEiCi0gIGludGVncml0eSBzaGE1MTItNHBYd21CcGxzQ1B2OEZP WTFXUmFrRjk3MFRqTkduR25mYk9uTHFqbFl2TWlGMVNSM3lPSHl4TVIvWUNYcFBUT3NwTkY1Z3d1 ZHFrdElQNFZzV2t2Qmc9PQorICB2ZXJzaW9uICIzLjIxLjEiCisgIHJlc29sdmVkICJodHRwczov L3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL2Zhc3QteG1sLXBhcnNlci8tL2Zhc3QteG1sLXBhcnNlci0z LjIxLjEudGd6IzE1MmExZDUxZDQ0NTM4MGY3MDQ2YjMwNDY3MmRkNTVkMTVjOWU3MzYiCisgIGlu dGVncml0eSBzaGE1MTItRlRGVmpZb0JPWlRKZWtpVXNhd0dzU1lWOVFMMEErekRZQ1JqN3kzNElP NkpnKzJJTVlFdFFhK2JiaWN0cGRwVjhkSHhYeXdxVTdDMGdSREVPRnRCRmc9PQorICBkZXBlbmRl bmNpZXM6CisgICAgc3RybnVtICJeMS4wLjQiCiAKIGZhc3Rlc3QtbGV2ZW5zaHRlaW5AXjEuMC4x MjoKICAgdmVyc2lvbiAiMS4wLjEyIgpAQCAtNTUxNCw5ICs1MTkwLDkgQEAgZmFzdGVzdC1sZXZl bnNodGVpbkBeMS4wLjEyOgogICBpbnRlZ3JpdHkgc2hhNTEyLU9uMk4rQnBZSjE1eElDOTc0UU5W dVlHTU9sRVZ0NHMwRU9JM3d3TXFPbUsxZmREWStGTi96bHRQVjh2b3NxNGFkNGMvZ0oxS0hTY1Vu LzZBV0lnaW93PT0KIAogZmFzdHFAXjEuNi4wOgotICB2ZXJzaW9uICIxLjExLjAiCi0gIHJlc29s dmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL2Zhc3RxLy0vZmFzdHEtMS4xMS4wLnRn eiNiYjlmYjk1NWEwNzEzMGE5MThlYjYzYzFmNTE2MWNjMzJhNWQwODU4IgotICBpbnRlZ3JpdHkg c2hhNTEyLTdFY3pzOGdJUERyVnpUK0Vrc1lCY3VwcU15eFNIWFhySE9MUlJ4VTIvRGljVjg3ODlN UkJSUjgrSGMydVd6VXVwT3M0WVM0SnpCbUJ4ampDVkJ4RC9nPT0KKyAgdmVyc2lvbiAiMS4xMy4w IgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9mYXN0cS8tL2Zhc3Rx LTEuMTMuMC50Z3ojNjE2NzYwZjg4YTc1MjZiZGZjNTk2YjdjYWI4YzE4OTM4YzM2Yjk4YyIKKyAg aW50ZWdyaXR5IHNoYTUxMi1ZcGtwVW5LOG9kMG8xaG1lU2M3VVVzL2VCL3ZJUFdKWWpLY2syUUtJ ekFmNzFWbTFBQVEzRWJ1WkIzZzJKSXkrcGcrRVJEMHZxSTc5S3laaUIyZTJOdz09CiAgIGRlcGVu ZGVuY2llczoKICAgICByZXVzaWZ5ICJeMS4wLjQiCiAKQEAgLTU2MTEsOSArNTI4Nyw5IEBAIGZp bmFsaGFuZGxlckAxLjEuMjoKICAgICB1bnBpcGUgIn4xLjAuMCIKIAogZmluZC1jYWNoZS1kaXJA XjMuMy4xOgotICB2ZXJzaW9uICIzLjMuMSIKLSAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnku eWFybnBrZy5jb20vZmluZC1jYWNoZS1kaXIvLS9maW5kLWNhY2hlLWRpci0zLjMuMS50Z3ojODli MzNmYWQ0YTQ2NzBkYWE5NGY4NTVmN2ZiZTMxZDZkODRmZTg4MCIKLSAgaW50ZWdyaXR5IHNoYTUx Mi10MkdETXQzb0dDL3YrQk13em1sbFdEdUpGL3hjRHRFNWovZkNHYnFERDdPTHVKa2owY2ZoMVlT QTVWS1B2d01lTEZMTkRCa3dPS1oyWDg1akdMVmZ0UT09CisgIHZlcnNpb24gIjMuMy4yIgorICBy ZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9maW5kLWNhY2hlLWRpci8tL2Zp bmQtY2FjaGUtZGlyLTMuMy4yLnRneiNiMzBjNWI2ZWZmMDczMDczMWFlYTliYmQ5ZGJlY2JkODAy NTZkNjRiIgorICBpbnRlZ3JpdHkgc2hhNTEyLXdYWlY1ZW1GRWpycmlkSWdFRDExT29VS0x4aVlq QWNxb3QvTkpkQWtPaGxKK3ZHendoT0FmY0c1T1gxalArUzBQY2pFbjhiZE1KditnMmp3UTNPbmln PT0KICAgZGVwZW5kZW5jaWVzOgogICAgIGNvbW1vbmRpciAiXjEuMC4xIgogICAgIG1ha2UtZGly ICJeMy4wLjIiCkBAIC01NjQ4LDE0ICs1MzI0LDE0IEBAIGZsYXQtY2FjaGVAXjMuMC40OgogICAg IHJpbXJhZiAiXjMuMC4yIgogCiBmbGF0dGVkQF4zLjEuMDoKLSAgdmVyc2lvbiAiMy4xLjEiCi0g IHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL2ZsYXR0ZWQvLS9mbGF0dGVk LTMuMS4xLnRneiNjNGI0ODllODAwOTZkOWRmMWRmYzk3Yzc5ODcxYWVhN2M2MTdjNDY5IgotICBp bnRlZ3JpdHkgc2hhNTEyLXpBb0FRaXVkeStyNVN2blN3M0tKeTVvcy9vUkpZSHpyemphL3RCRHFy WnROaFV3OGJ0Nnk4T0J6TVdjaldyKzhsaVY4RWI2eU9odzhXWjdWRlo1WnpBPT0KKyAgdmVyc2lv biAiMy4yLjIiCisgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL2ZsYXR0 ZWQvLS9mbGF0dGVkLTMuMi4yLnRneiM2NGJmZWQ1Y2I2OGZlM2NhNzhiM2ViMjE0YWQ5N2I2M2Jl ZGNlNTYxIgorICBpbnRlZ3JpdHkgc2hhNTEyLUphVFkvd3RyY1N5dlhKbDRJTUZIUEt5RnVyMXNF OUFVcWMwUW5oT2FKMEN4SHRBb0lWOHBZRHplRWZBYU5FdEdrT2ZxNGdyM0xCRm1kWFc1bU9RRm5B PT0KIAogZmxhdHRlZEBeMy4yLjQ6CiAgIHZlcnNpb24gIjMuMi41IgogICByZXNvbHZlZCAiaHR0 cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9mbGF0dGVkLy0vZmxhdHRlZC0zLjIuNS50Z3ojNzZj ODU4NGY0ZmM4NDNkYjY0NzAyYTZiZDA0YWI3YThiZDY2NmRhMyIKLSAgaW50ZWdyaXR5ICJzaGEx LWRzaFlUMC9JUTl0a2NDcHIwRXEzcUwxbWJhTT0gc2hhNTEyLVdJV0dpMkwzRHlUVXZVcndSS2dH aTlUd3hRTVVFcVBPUFFCVmk3MVI5NmpaWEpkRnNrWEVtZjU0Qm9aYVMxa2tuR09Eb0lHQVNHRXpC VVlkeU1DQkpnPT0iCisgIGludGVncml0eSBzaGE1MTItV0lXR2kyTDNEeVRVdlVyd1JLZ0dpOVR3 eFFNVUVxUE9QUUJWaTcxUjk2alpYSmRGc2tYRW1mNTRCb1phUzFra25HT0RvSUdBU0dFekJVWWR5 TUNCSmc9PQogCiBmb2xsb3ctcmVkaXJlY3RzQF4xLjAuMCwgZm9sbG93LXJlZGlyZWN0c0BeMS4x NC4wOgogICB2ZXJzaW9uICIxLjE0LjgiCkBAIC01Njg4LDcgKzUzNjQsNyBAQCBmcy1jb25zdGFu dHNAXjEuMC4wOgogZnMtZXh0cmFAXjEwLjAuMDoKICAgdmVyc2lvbiAiMTAuMC4wIgogICByZXNv bHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9mcy1leHRyYS8tL2ZzLWV4dHJhLTEw LjAuMC50Z3ojOWZmNjFiNjU1ZGRlNTNmYjM0YTgyZGY4NGJiMjE0Y2U4MDJlMTdjMSIKLSAgaW50 ZWdyaXR5ICJzaGExLW4vWWJaVjNlVS9zMHFDMzRTN0lVem9BdUY4RT0gc2hhNTEyLUM1b3diMTR1 OWVKd2l6S0dkY2hjRFVRZUZ0bFNISHRoQms4cGJYOVZjMVBGWnJMb21idWRqRG5ObnM4OGFZc2xD eUY2SVk1U1V3M1JvejZ4U2hjRUlRPT0iCisgIGludGVncml0eSBzaGE1MTItQzVvd2IxNHU5ZUp3 aXpLR2RjaGNEVVFlRnRsU0hIdGhCazhwYlg5VmMxUEZackxvbWJ1ZGpEbk5uczg4YVlzbEN5RjZJ WTVTVXczUm96NnhTaGNFSVE9PQogICBkZXBlbmRlbmNpZXM6CiAgICAgZ3JhY2VmdWwtZnMgIl40 LjIuMCIKICAgICBqc29uZmlsZSAiXjYuMC4xIgpAQCAtNTcwNiw3ICs1MzgyLDcgQEAgZnMucmVh bHBhdGhAXjEuMC4wOgogICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9m cy5yZWFscGF0aC8tL2ZzLnJlYWxwYXRoLTEuMC4wLnRneiMxNTA0YWQyNTIzMTU4Y2FhNDBkYjRh Mjc4N2NiMDE0MTE5OTRlYTRmIgogICBpbnRlZ3JpdHkgc2hhMS1GUVN0SlNNVmpLcEEyMG9uaDhz QlFSbVU2azg9CiAKLWZzZXZlbnRzQH4yLjMuMSwgZnNldmVudHNAfjIuMy4yOgorZnNldmVudHNA fjIuMy4yOgogICB2ZXJzaW9uICIyLjMuMiIKICAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnku eWFybnBrZy5jb20vZnNldmVudHMvLS9mc2V2ZW50cy0yLjMuMi50Z3ojOGE1MjZmNzhiOGZkZjQ2 MjNiNzA5ZTBiOTc1YzUyYzI0YzAyZmQxYSIKICAgaW50ZWdyaXR5IHNoYTUxMi14aXFNUVI0eEFl SFR1Qjl1V20rZkZSY0lPZ0tCTWlPQlArZVhpeVQ3anNnVkNxMWJrVnlndDAwb0FTb3dCN0VkdHBP SGFhUGdLdDgxMlA5YWIrRERLQT09CkBAIC01NzE3LDEzICs1MzkzLDEzIEBAIGZ1bmN0aW9uLWJp bmRAXjEuMS4xOgogICBpbnRlZ3JpdHkgc2hhNTEyLXlJb3ZBek1YNDlzRjhZbDU4ZlNDV0o1c3ZT THVhaWJQeFhRSkZMbUJPYlR1Q3IwTWYxS2lQb3BHTTlOaUZqaVlCQ2JmYWEyRmg2YnJlUTZBTlZU STBBPT0KIAogZnVuY3Rpb24ucHJvdG90eXBlLm5hbWVAXjEuMS4yLCBmdW5jdGlvbi5wcm90b3R5 cGUubmFtZUBeMS4xLjM6Ci0gIHZlcnNpb24gIjEuMS40IgotICByZXNvbHZlZCAiaHR0cHM6Ly9y ZWdpc3RyeS55YXJucGtnLmNvbS9mdW5jdGlvbi5wcm90b3R5cGUubmFtZS8tL2Z1bmN0aW9uLnBy b3RvdHlwZS5uYW1lLTEuMS40LnRneiNlNGVhODM5YjlkMzY3MmFlOTlkMGVmZDlmMzhkOTE5MWM1 ZWFhYzgzIgotICBpbnRlZ3JpdHkgc2hhNTEyLWlxeTFwSW90WS9SbWhkRlp5Z1NTbFcwd2tvMnl4 a1NDS3FzdXY0cHI4UUVTb2hwWXlHL1o3Qi9YWHZQUktUSlMvLzk2MHJnZ3VFNW1TUlVzRGRhSnJR PT0KKyAgdmVyc2lvbiAiMS4xLjUiCisgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5w a2cuY29tL2Z1bmN0aW9uLnByb3RvdHlwZS5uYW1lLy0vZnVuY3Rpb24ucHJvdG90eXBlLm5hbWUt MS4xLjUudGd6I2NjZTA1MDVmZTFmZmI4MDUwM2U2ZjllNDZjYzY0ZTQ2YTEyYTk2MjEiCisgIGlu dGVncml0eSBzaGE1MTItdU43bS9CelZLUW5DVUYvaVc4alllYTY3disrMnU3bTVVZ0VOYkhSdGRE VmNsT1VQK0ZNUGxDTmRtazBoL3lzR3lvMnRhdk1KRURxSkFrSmRSYTF2TUE9PQogICBkZXBlbmRl bmNpZXM6CiAgICAgY2FsbC1iaW5kICJeMS4wLjIiCiAgICAgZGVmaW5lLXByb3BlcnRpZXMgIl4x LjEuMyIKLSAgICBlcy1hYnN0cmFjdCAiXjEuMTguMC1uZXh0LjIiCisgICAgZXMtYWJzdHJhY3Qg Il4xLjE5LjAiCiAgICAgZnVuY3Rpb25zLWhhdmUtbmFtZXMgIl4xLjIuMiIKIAogZnVuY3Rpb25h bC1yZWQtYmxhY2stdHJlZUBeMS4wLjE6CkBAIC01ODE4LDcgKzU0OTQsMTUgQEAgZ2V0LXN0cmVh bUBeNi4wLjA6CiAgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL2dldC1z dHJlYW0vLS9nZXQtc3RyZWFtLTYuMC4xLnRneiNhMjYyZDhlZWY2N2FjZWQ1N2MyODUyYWQ2MTY3 NTI2YTQzY2JmN2I3IgogICBpbnRlZ3JpdHkgc2hhNTEyLXRzNldpKzJqM2pRanFpNzB3NUFsTjhE Rm5rU3dDK01xbXhFemRFQUxCMnFYWllWM1gvYjFDVGZnUExHSk5NZUFXeGRQZlU4Rk8xbXMzTlVm YUhDUFlnPT0KIAotZ2xvYi1wYXJlbnRAXjUuMC4wLCBnbG9iLXBhcmVudEBeNS4xLjAsIGdsb2It cGFyZW50QF41LjEuMSwgZ2xvYi1wYXJlbnRAfjUuMS4wLCBnbG9iLXBhcmVudEB+NS4xLjI6Citn ZXQtc3ltYm9sLWRlc2NyaXB0aW9uQF4xLjAuMDoKKyAgdmVyc2lvbiAiMS4wLjAiCisgIHJlc29s dmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL2dldC1zeW1ib2wtZGVzY3JpcHRpb24v LS9nZXQtc3ltYm9sLWRlc2NyaXB0aW9uLTEuMC4wLnRneiM3ZmRiODFjOTAwMTAxZmJkNTY0ZGQ1 ZjFhMzBhZjVhYWRjMWU1OGQ2IgorICBpbnRlZ3JpdHkgc2hhNTEyLTJFbWRIMVl2SVFpWnBsdENO Z2t1aVVueXVrenhNL1I2TkRKWDMxS2UzQkcxTnE1YjBTMlBoWDU5VUtpOXZacFBEUVZkcW4rMUlj YUF3bnpUVDV2Q2p3PT0KKyAgZGVwZW5kZW5jaWVzOgorICAgIGNhbGwtYmluZCAiXjEuMC4yIgor ICAgIGdldC1pbnRyaW5zaWMgIl4xLjEuMSIKKworZ2xvYi1wYXJlbnRAXjUuMS4xLCBnbG9iLXBh cmVudEBeNS4xLjIsIGdsb2ItcGFyZW50QH41LjEuMjoKICAgdmVyc2lvbiAiNS4xLjIiCiAgIHJl c29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL2dsb2ItcGFyZW50Ly0vZ2xvYi1w YXJlbnQtNS4xLjIudGd6Izg2OTgzMmM1ODAzNGZlNjhhNDA5M2MxN2RjMTVlODM0MGQ4NDAxYzQi CiAgIGludGVncml0eSBzaGE1MTItQU9JZ1NRQ2VwaUpZd1AzQVJuR3grNVZuVHUySEJZZHpiR1A0 NWVMdzF2cjN6QjN2WkxleWVkMXNDOWhuYmNPYzkvU3JNeU01UlBRcmtHejRhUzlab3c9PQpAQCAt NTgzMCwxOSArNTUxNCw3IEBAIGdsb2ItdG8tcmVnZXhwQF4wLjQuMToKICAgcmVzb2x2ZWQgImh0 dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vZ2xvYi10by1yZWdleHAvLS9nbG9iLXRvLXJlZ2V4 cC0wLjQuMS50Z3ojYzc1Mjk3MDg3Yzg1MWI5YTU3OGJkMjE3ZGQ1OWE5MmY1OWZlNTQ2ZSIKICAg aW50ZWdyaXR5IHNoYTUxMi1sa1gxSEpYd3lNY3Bydy81WVVaYzJzN0RycEFpSEIyMS9WK0UxckhV clZOb2trdkI2YnFNelQwVmZWNi84NlpOYWJ0MWsxNFlPSWFUN25Edk9YM0lpdz09CiAKLWdsb2JA XjcuMS4wLCBnbG9iQF43LjEuMywgZ2xvYkBeNy4xLjQsIGdsb2JAXjcuMS42OgotICB2ZXJzaW9u ICI3LjEuNiIKLSAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vZ2xvYi8t L2dsb2ItNy4xLjYudGd6IzE0MWYzM2I4MWE3YzI0OTJlMTI1NTk0MzA3NDgwYzQ2Njc5Mjc4YTYi Ci0gIGludGVncml0eSBzaGE1MTItTHdheHd5WjcyTGs3dlpJTnROTnJ5d1gwWnVMeVN0cmREdGFi ZWZaS0FZNVpHSmhWdGdkem5sdVJlc3hObVBpdEUwU0FPK08yNnNXVEhlS1NJMndNQkE9PQotICBk ZXBlbmRlbmNpZXM6Ci0gICAgZnMucmVhbHBhdGggIl4xLjAuMCIKLSAgICBpbmZsaWdodCAiXjEu MC40IgotICAgIGluaGVyaXRzICIyIgotICAgIG1pbmltYXRjaCAiXjMuMC40IgotICAgIG9uY2Ug Il4xLjMuMCIKLSAgICBwYXRoLWlzLWFic29sdXRlICJeMS4wLjAiCi0KLWdsb2JAXjcuMS43Ogor Z2xvYkBeNy4xLjAsIGdsb2JAXjcuMS4zLCBnbG9iQF43LjEuNCwgZ2xvYkBeNy4xLjYsIGdsb2JA XjcuMS43OgogICB2ZXJzaW9uICI3LjIuMCIKICAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnku eWFybnBrZy5jb20vZ2xvYi8tL2dsb2ItNy4yLjAudGd6I2QxNTUzNWFmNzczMmUwMmU5NDhmNGM0 MTYyOGJkOTEwMjkzZjYwMjMiCiAgIGludGVncml0eSBzaGE1MTItbG1MZjZndHlyUHE4dFRqU21y Tzk0d0JlUWJGUjNIYkxIYnV5RDY5d3V5UWtJbXAyaFdxTUdCNDdPWDY1RkJrUGZmTzY0MUlQOWpX YTF6NGl2cUcyNlE9PQpAQCAtNTg1OSwxMiArNTUzMSwxMiBAQCBnbG9iYWxzQF4xMS4xLjA6CiAg IHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL2dsb2JhbHMvLS9nbG9iYWxz LTExLjEyLjAudGd6I2FiODc5NTMzODg2OGEwYmFiZDg1MjU3NTgwMThjMmE3ZWI5NWM0MmUiCiAg IGludGVncml0eSBzaGE1MTItV09CcC9FRUdVaUlzSlNwN3djdi95Nk1PK2xWOVVvbmNXcXh1RmZt OGVCd3pXTmd5ZkJkNkd6K0llS1E5akNteWhvSDk5ZzE1TTNUK1FhVkhGaml6VkE9PQogCi1nbG9i YWxzQF4xMi4xLjA6Ci0gIHZlcnNpb24gIjEyLjQuMCIKLSAgcmVzb2x2ZWQgImh0dHBzOi8vcmVn aXN0cnkueWFybnBrZy5jb20vZ2xvYmFscy8tL2dsb2JhbHMtMTIuNC4wLnRneiNhMTg4MTM1NzZh NDFiMDBhMjRhOTdlN2Y4MTU5MThjMmUxOTkyNWY4IgotICBpbnRlZ3JpdHkgc2hhNTEyLUJXSUN1 enpEdkRvSDU0TkhLQ3NlRGFuQWhFM0NlRG9yZ0RMNU1UNkxNWFhqMldDbmQ5VUMyc3pkazRBV0xm amRnTkJDWExVYW5YWWNwQkJLT1NXR3dnPT0KK2dsb2JhbHNAXjEzLjYuMCwgZ2xvYmFsc0BeMTMu OS4wOgorICB2ZXJzaW9uICIxMy4xMi4wIgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55 YXJucGtnLmNvbS9nbG9iYWxzLy0vZ2xvYmFscy0xMy4xMi4wLnRneiM0ZDczMzc2MDMwNDIzMGEw MDgyZWQ5NmUyMWU1YzU2NWY4OTgwODllIgorICBpbnRlZ3JpdHkgc2hhNTEyLXVTOFg2bFNLTjJK dW1Wb1hyYlV6K3VHNEJZRytlaWF3cW0zcUZjVDdhbW1mYlVIZUNCb0pNbEhjZWMvUzNrclNrNzMv QUUvZjBzellGbWdBQTNrWVpnPT0KICAgZGVwZW5kZW5jaWVzOgotICAgIHR5cGUtZmVzdCAiXjAu OC4xIgorICAgIHR5cGUtZmVzdCAiXjAuMjAuMiIKIAogZ2xvYmFsc0BeOS4xOC4wOgogICB2ZXJz aW9uICI5LjE4LjAiCkBAIC01ODg2LDkgKzU1NTgsOSBAQCBnbG9iYnlAXjEwLjAuMDoKICAgICBz bGFzaCAiXjMuMC4wIgogCiBnbG9iYnlAXjExLjAuMToKLSAgdmVyc2lvbiAiMTEuMC4zIgotICBy ZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9nbG9iYnkvLS9nbG9iYnktMTEu MC4zLnRneiM5YjFmMGNiNTIzZTE3MWRkMWFkOGM3YjJhOWZiNGI2NDRiOTU5M2NiIgotICBpbnRl Z3JpdHkgc2hhNTEyLWZmZG1vc2pBODA3eTcrbEExTk0wakVMQVJWbVl1bC83MTV4aUlMRWpvM2hC TFBUY2lyZ1FOblhFQ241ZzNtdFI4VE9MQ1Zia2Z1YTFIcGVuMjUvWGNnPT0KKyAgdmVyc2lvbiAi MTEuMC40IgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9nbG9iYnkv LS9nbG9iYnktMTEuMC40LnRneiMyY2JhZmY3N2MyZjJhNjJlNzFlOWIyODEzYTY3Yjk3YTNhMzAw MWE1IgorICBpbnRlZ3JpdHkgc2hhNTEyLTlPNE1WRzlpb1pKMDhmZmJjeVZZeUxPSkxrNUpRNjg4 cEo0ZU1HTHBkV0xIcS9XcjFEOUJscmlMUXlMMEUramJrdWVQVlpYWUZqNDdRTS92MDkzd0hnPT0K ICAgZGVwZW5kZW5jaWVzOgogICAgIGFycmF5LXVuaW9uICJeMi4xLjAiCiAgICAgZGlyLWdsb2Ig Il4zLjAuMSIKQEAgLTU5NDEsOSArNTYxMyw5IEBAIGdvdEBeOC4zLjE6CiAgICAgdXJsLXRvLW9w dGlvbnMgIl4xLjAuMSIKIAogZ3JhY2VmdWwtZnNAXjQuMS4xMCwgZ3JhY2VmdWwtZnNAXjQuMS4y LCBncmFjZWZ1bC1mc0BeNC4xLjYsIGdyYWNlZnVsLWZzQF40LjIuMCwgZ3JhY2VmdWwtZnNAXjQu Mi4yLCBncmFjZWZ1bC1mc0BeNC4yLjQsIGdyYWNlZnVsLWZzQF40LjIuNjoKLSAgdmVyc2lvbiAi NC4yLjYiCi0gIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL2dyYWNlZnVs LWZzLy0vZ3JhY2VmdWwtZnMtNC4yLjYudGd6I2ZmMDQwYjJiMDg1M2IyM2MzZDMxMDI3NTIzNzA2 ZjE4ODVkNzZiZWUiCi0gIGludGVncml0eSBzaGE1MTItblRuSjUyOHBicXhZYW5ocERZc2k0UmQ4 TUFlYUJBNjcrUloxMENNMW0zYlRBVkZFRGNkNUF1QTRhNlc1WWtHWjFpTlhIelp6OFQ2VEJLTGVC dU5yaVE9PQorICB2ZXJzaW9uICI0LjIuOCIKKyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnku eWFybnBrZy5jb20vZ3JhY2VmdWwtZnMvLS9ncmFjZWZ1bC1mcy00LjIuOC50Z3ojZTQxMmI4ZDMz ZjVlMDA2NTkzY2JkM2NlZTZkZjlmMmNlYmJlODAyYSIKKyAgaW50ZWdyaXR5IHNoYTUxMi1xa0lp bFBVWWNOaEpwZDMzbjBHQlhUQjFNTVBwMTRUeEVzRXMwcFRyc1NWdWNBcHNZelc1VitROFF4aGlr NktVM2V2eStxa0FBb3dUQnl5bUswYXZkZz09CiAKIGdyYXBobGliQF4yLjEuODoKICAgdmVyc2lv biAiMi4xLjgiCkBAIC02MDE1LDYgKzU2ODcsMTMgQEAgaGFzLXRvLXN0cmluZy10YWcteEBeMS4y LjA6CiAgIGRlcGVuZGVuY2llczoKICAgICBoYXMtc3ltYm9sLXN1cHBvcnQteCAiXjEuNC4xIgog CitoYXMtdG9zdHJpbmd0YWdAXjEuMC4wOgorICB2ZXJzaW9uICIxLjAuMCIKKyAgcmVzb2x2ZWQg Imh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vaGFzLXRvc3RyaW5ndGFnLy0vaGFzLXRvc3Ry aW5ndGFnLTEuMC4wLnRneiM3ZTEzMzgxOGE3ZDM5NDczNGY5NDFlNzNjM2QzZjkyOTFlNjU4YjI1 IgorICBpbnRlZ3JpdHkgc2hhNTEyLWtGamNTTmhubEdWMWt5b0drN09YS1Nhd0g1Sk9iL0x6VWM1 dzlCMDJoT1RPMGRmRlJqYkhRS3ZnMWQ2Y2YzSGJlVW10VTlWYmJWM3F6WjJUZWg5N1dRPT0KKyAg ZGVwZW5kZW5jaWVzOgorICAgIGhhcy1zeW1ib2xzICJeMS4wLjIiCisKIGhhcy11bmljb2RlQF4y LjAuMDoKICAgdmVyc2lvbiAiMi4wLjEiCiAgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlh cm5wa2cuY29tL2hhcy11bmljb2RlLy0vaGFzLXVuaWNvZGUtMi4wLjEudGd6I2UwZTZmZTZhMjhj ZjUxMTM4ODU1ZTA4NmQxNjkxZTc3MWRlMmE4YjkiCkBAIC02MDU0LDExICs1NzMzLDYgQEAgaGVh cEAwLjIuNToKICAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vaGVhcC8t L2hlYXAtMC4yLjUudGd6IzcxM2I2NTU5MGViY2M0MGZjYmVlYWY1NWU4NTE2OTQwOTJiMzlhZjEi CiAgIGludGVncml0eSBzaGExLWNUdGxXUTY4eEEvTDdxOVY2RkZwUUpLem12RT0KIAotaGV4LWNv bG9yLXJlZ2V4QF4xLjEuMDoKLSAgdmVyc2lvbiAiMS4xLjAiCi0gIHJlc29sdmVkICJodHRwczov L3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL2hleC1jb2xvci1yZWdleC8tL2hleC1jb2xvci1yZWdleC0x LjEuMC50Z3ojNGMwNmZjY2I0NjAyZmUyNjAyYjNjOTNkZjgyZDdlN2RiZjFhOGE4ZSIKLSAgaW50 ZWdyaXR5IHNoYTUxMi1sOXNmREZzdXF0T3FLRHNRZHFyTVJrMFU4NVJaYzBSdE9SOXlQSTdtUlZP YTRGc1IvQlZuWjBzaG1RUk05NkppOTlrWVpQLzdobjFjZWRjMStBcHNUUT09Ci0KIGhtYWMtZHJi Z0BeMS4wLjE6CiAgIHZlcnNpb24gIjEuMC4xIgogICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3Ry eS55YXJucGtnLmNvbS9obWFjLWRyYmcvLS9obWFjLWRyYmctMS4wLjEudGd6I2QyNzQ1NzAxMDI1 YTZjNzc1YTZjNTQ1NzkzZWQ1MDJmYzBjNjQ5YTEiCkBAIC02MDc1LDIyICs1NzQ5LDEyIEBAIGhv aXN0LW5vbi1yZWFjdC1zdGF0aWNzQF4zLjAuMCwgaG9pc3Qtbm9uLXJlYWN0LXN0YXRpY3NAXjMu My4wLCBob2lzdC1ub24tcmVhY3QtCiAgIGRlcGVuZGVuY2llczoKICAgICByZWFjdC1pcyAiXjE2 LjcuMCIKIAotaHNsLXJlZ2V4QF4xLjAuMDoKLSAgdmVyc2lvbiAiMS4wLjAiCi0gIHJlc29sdmVk ICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL2hzbC1yZWdleC8tL2hzbC1yZWdleC0xLjAu MC50Z3ojZDQ5MzMwYzc4OWVkODE5ZTI3NmE0YzBkMjcyZGZmYTMwYjE4ZmU2ZSIKLSAgaW50ZWdy aXR5IHNoYTEtMUpNd3g0bnRnWjRuYWt3Tkp5My9vd3NZL200PQotCi1oc2xhLXJlZ2V4QF4xLjAu MDoKLSAgdmVyc2lvbiAiMS4wLjAiCi0gIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5w a2cuY29tL2hzbGEtcmVnZXgvLS9oc2xhLXJlZ2V4LTEuMC4wLnRneiNjMWNlN2EzMTY4YzhjNjYx NDAzM2E0YjVmNzg3N2YzYjIyNWY5YzM4IgotICBpbnRlZ3JpdHkgc2hhMS13YzU2TVdqSXhtRkFN NlMxOTRkL095SmZuRGc9Ci0KLWh0bWwtZG9tLXBhcnNlckAxLjAuMToKLSAgdmVyc2lvbiAiMS4w LjEiCi0gIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL2h0bWwtZG9tLXBh cnNlci8tL2h0bWwtZG9tLXBhcnNlci0xLjAuMS50Z3ojNWQxNDdmZWQ2NjU2YzEyOTE4ZWRiY2Vh NGE0MjNlZWZlOGQwZTcxNSIKLSAgaW50ZWdyaXR5IHNoYTUxMi11S1hJU0tsSHpCL2w5QTA4anJz MndzZVFKOWI4NjRaZkVkbUlac2tqMTBjdVA2SHhDT01IU0swUmRsdVY4TlZRYVdzMFB3ZWZON2Q4 d3FHM2pSMEliUT09CitodG1sLWRvbS1wYXJzZXJAMS4wLjI6CisgIHZlcnNpb24gIjEuMC4yIgor ICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9odG1sLWRvbS1wYXJzZXIv LS9odG1sLWRvbS1wYXJzZXItMS4wLjIudGd6I2JiNWZmODQ0ZjIxNDY1N2Q4OTlhYTRmYjdiMGE5 ZTdkMTU2MDdlOTYiCisgIGludGVncml0eSBzaGE1MTItSnE0b1ZrVlNuKzEwdXQzZnljMlAvRnMx anFUbzBsNDVjUDZROGQyZWYvOWpma1l3dWxPMFFYbXlMSTBWVWlaclhGNGN6cEdnTUVKUmE1MkNR NkZrOFE9PQogICBkZXBlbmRlbmNpZXM6Ci0gICAgZG9taGFuZGxlciAiNC4yLjAiCisgICAgZG9t aGFuZGxlciAiNC4yLjIiCiAgICAgaHRtbHBhcnNlcjIgIjYuMS4wIgogCiBodG1sLWVsZW1lbnQt bWFwQF4xLjIuMDoKQEAgLTYxMDcsMjEgKzU3NzEsMjIgQEAgaHRtbC1lc2NhcGVyQF4yLjAuMDoK ICAgaW50ZWdyaXR5IHNoYTUxMi1IMmlNdGQwSTRNdDVlWWlhcFJkSURqcCtYemVsWFEwdEZFNEpT N1lGd0ZldlhYTW1PcDlteU5yVXZDZzBENndzOGlxa1JQQmZLSGdid2lnMVNtbExmZz09CiAKIGh0 bWwtcmVhY3QtcGFyc2VyQF4xLjIuNzoKLSAgdmVyc2lvbiAiMS4yLjciCi0gIHJlc29sdmVkICJo dHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL2h0bWwtcmVhY3QtcGFyc2VyLy0vaHRtbC1yZWFj dC1wYXJzZXItMS4yLjcudGd6IzE2NzRlZDRiOTZiMzQ0MGFkOTIyOTYyYTNmZjAwMGU3ZjMzMjUy OTMiCi0gIGludGVncml0eSBzaGE1MTItZ1VVRWdyWlYwWWFDeHRaTzJYdUpEVW5IU3E3Z09xS3Ux a3J5ZTk3Y3hnaVoraXBhSXpzcEdNaEFUZXE5bGh5OWd3WW13QkYyWUNIZS9hY2NyTU1vOFE9PQor ICB2ZXJzaW9uICIxLjQuMCIKKyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5j b20vaHRtbC1yZWFjdC1wYXJzZXIvLS9odG1sLXJlYWN0LXBhcnNlci0xLjQuMC50Z3ojYmYyNjRm MzhiOWZkZjRkOTRlMjEyMGY2YTM5NTg2YzE1Y2I4MWJkMCIKKyAgaW50ZWdyaXR5IHNoYTUxMi12 OEt4eSs3TDkwWkZTTTY5MG9KV0JOUnpaV1pPUXF1WVBwUXQ2a0RRUHpReVpwdFhnT0o2OWtIU2k3 eGRxTmRtMW1PZnNEUHdGNEs5Qm8vZFM1Z1JUUT09CiAgIGRlcGVuZGVuY2llczoKLSAgICBkb21o YW5kbGVyICI0LjIuMCIKLSAgICBodG1sLWRvbS1wYXJzZXIgIjEuMC4xIgotICAgIHJlYWN0LXBy b3BlcnR5ICIxLjAuMSIKKyAgICBkb21oYW5kbGVyICI0LjIuMiIKKyAgICBodG1sLWRvbS1wYXJz ZXIgIjEuMC4yIgorICAgIHJlYWN0LXByb3BlcnR5ICIyLjAuMCIKICAgICBzdHlsZS10by1qcyAi MS4xLjAiCiAKIGh0bWwyY2FudmFzQF4xLjAuMC1yYy43OgotICB2ZXJzaW9uICIxLjAuMC1yYy43 IgotICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9odG1sMmNhbnZhcy8t L2h0bWwyY2FudmFzLTEuMC4wLXJjLjcudGd6IzcwYzE1OWNlMGU2Mzk1NGE5MTE2OTUzMTg5NGQw OGFkNTYyN2FjOTgiCi0gIGludGVncml0eSBzaGE1MTIteXZQTlpHZWpCMktPeUtsZVpzcGpLL05y dVhWUXVvd3U4Tm5WMkhZRzdnVzd5dHpsK3VtZmZidFVJNjJ2MmRDSFFMRGRzSzZISUR0eUpaMFcz bmVlckE9PQorICB2ZXJzaW9uICIxLjMuMiIKKyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnku eWFybnBrZy5jb20vaHRtbDJjYW52YXMvLS9odG1sMmNhbnZhcy0xLjMuMi50Z3ojOTUxY2M4Mzg4 YTNjZTkzOWZkYWMwMjEzMTAwN2VlMjgxMjRhZmMyNyIKKyAgaW50ZWdyaXR5IHNoYTUxMi00K3px djg3L2ExTHNhQ3JJTlY2OXdWTEdHOEdCWmNZQmJvejFKUFdFZ2lYY1dvRDlrcm9MemNjc0JSVS9M OVVsZlYyTUFaKzNKOTJVOUlRUFZNRGVTUT09CiAgIGRlcGVuZGVuY2llczoKLSAgICBjc3MtbGlu ZS1icmVhayAiMS4xLjEiCisgICAgY3NzLWxpbmUtYnJlYWsgIjIuMC4xIgorICAgIHRleHQtc2Vn bWVudGF0aW9uICJeMS4wLjIiCiAKIGh0bWxlc2NhcGVAXjEuMS4wOgogICB2ZXJzaW9uICIxLjEu MSIKQEAgLTYyNDIsOSArNTkwNyw5IEBAIGlnbm9yZUBeNC4wLjY6CiAgIGludGVncml0eSBzaGE1 MTItY3lGREtycWMvWWRjV0ZuaUpoekk0MitBelMrZ053bVV6T1NGY1JDUVl3eVN1QkJCeS9LanV4 V0xaL0ZIRUg2TW9xMU5pek1PQld5VGN2OE80T1pJTWc9PQogCiBpZ25vcmVAXjUuMS4xLCBpZ25v cmVAXjUuMS40OgotICB2ZXJzaW9uICI1LjEuOCIKLSAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0 cnkueWFybnBrZy5jb20vaWdub3JlLy0vaWdub3JlLTUuMS44LnRneiNmMTUwYThiNTBhMzQyODli MzNlMjJmNTg4OWFiZDRkODAxNmYwZTU3IgotICBpbnRlZ3JpdHkgc2hhNTEyLUJNcGZEN1BwaUVU cEJsL0E2UzQ5OEJhSUo2WS9BQlQ5M0VUYmJ5MmZQMDB2NEVidlBCWFdFb2FSMVVCUEtzM2lSNTNw Slk3RXRaazVLQUNJNTdpMVV3PT0KKyAgdmVyc2lvbiAiNS4xLjkiCisgIHJlc29sdmVkICJodHRw czovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL2lnbm9yZS8tL2lnbm9yZS01LjEuOS50Z3ojOWVjMWE1 Y2JlOGUxNDQ2ZWM2MGQ0NDIwMDYwZDQzYWE2ZTczODJmYiIKKyAgaW50ZWdyaXR5IHNoYTUxMi0y emVNUXBiS3o1ZGhaOUl3TDBnYnhTVzV3ME5LL01TQU10TnVoZ0lIRVBtYVUzdlBkS1BMMFVkdlVD WHM1U1M0SkF3c0J4eXNLNXNGTVc4b2NGaVZqUT09CiAKIGltYWdlLW1pbmltaXplci13ZWJwYWNr LXBsdWdpbkBeMi4yLjA6CiAgIHZlcnNpb24gIjIuMi4wIgpAQCAtNjMyNiw5ICs1OTkxLDkgQEAg aW1wb3J0LWxhenlAXjMuMS4wOgogICBpbnRlZ3JpdHkgc2hhNTEyLTgvZ3ZYdlgySk1uMEYrQ0Rs U0M0bDZrT21WYUxPTzNYTGtrc0k3Q0kzVWQ5NUtEWUp1WXVyMmI5UC9QVXQvaS9wREFNZC9EdWxR c05iYmJtUlJzRElRPT0KIAogaW1wb3J0LWxvY2FsQF4zLjAuMjoKLSAgdmVyc2lvbiAiMy4wLjIi Ci0gIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL2ltcG9ydC1sb2NhbC8t L2ltcG9ydC1sb2NhbC0zLjAuMi50Z3ojYThjZmQwNDMxZDFkZTRhMjE5OTcwM2QwMDNlM2U2MjM2 NGZhNmRiNiIKLSAgaW50ZWdyaXR5IHNoYTUxMi12akwzK3cwb3VsQVZaMGhCSG54YS9ObTVUQXVy ZjlZTFFKRGhxUlp5cWIrVktHT0I2TFU4dDlIMU5yNUNJbzE2dmg5WGZKVE9vSHdVMEI3MVM1NTdn QT09CisgIHZlcnNpb24gIjMuMC4zIgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJu cGtnLmNvbS9pbXBvcnQtbG9jYWwvLS9pbXBvcnQtbG9jYWwtMy4wLjMudGd6IzRkNTFjMmM0OTVj YTkzOTNkYTI1OWVjNjZiNjJlMDIyOTIwMjExZTAiCisgIGludGVncml0eSBzaGE1MTItYkU5aWFV WTNDWEg4Q3dmYW4vYWJES0F4ZTFLR1Q5a3lHc0JQcWY2RE1LL3owYTJPekFzcnVrZVlOZ0lINmNI NVhyNDUyamIxVFVMOHJTZkNMalo5dUE9PQogICBkZXBlbmRlbmNpZXM6CiAgICAgcGtnLWRpciAi XjQuMi4wIgogICAgIHJlc29sdmUtY3dkICJeMy4wLjAiCkBAIC02MzQ3LDEzICs2MDEyLDYgQEAg aW11cm11cmhhc2hAXjAuMS40OgogICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtn LmNvbS9pbXVybXVyaGFzaC8tL2ltdXJtdXJoYXNoLTAuMS40LnRneiM5MjE4YjliMmI5MjhhMjM4 YjEzZGM0ZmI2YjZkNTc2ZjIzMTQ1M2VhIgogICBpbnRlZ3JpdHkgc2hhMS1raGk1c3Jrb29qaXhQ Y1Q3YTIxWGJ5TVVVK289CiAKLWluZGVmaW5pdGUtb2JzZXJ2YWJsZUBeMi4wLjE6Ci0gIHZlcnNp b24gIjIuMC4xIgotICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9pbmRl ZmluaXRlLW9ic2VydmFibGUvLS9pbmRlZmluaXRlLW9ic2VydmFibGUtMi4wLjEudGd6IzU3NGFm MjliZmJjMTdlYjU5NDc3OTM3OTdiZGRjOTRjOWQ4NTk0MDAiCi0gIGludGVncml0eSBzaGE1MTIt Rzh2Z21vcmsrNkg5UzhsVUFnMWd0WEVqMkp4SVFUbzBnMlBiRmlZT2Rqa3ppU0kwRjdVWUJpVndo WlJ1aXhoQkNOR2N6QWxzMzQrNUhKUHlaeXN2eFE9PQotICBkZXBlbmRlbmNpZXM6Ci0gICAgc3lt Ym9sLW9ic2VydmFibGUgIjEuMi4wIgotCiBpbmRlbnQtc3RyaW5nQF40LjAuMDoKICAgdmVyc2lv biAiNC4wLjAiCiAgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL2luZGVu dC1zdHJpbmcvLS9pbmRlbnQtc3RyaW5nLTQuMC4wLnRneiM2MjRmOGY0NDk3ZDYxOWIyZDk3Njg1 MzFkNThmNDEyMjg1NGQ3MjUxIgpAQCAtNjQ3MywxNiArNjEzMSwxNyBAQCBpcy1hYnNvbHV0ZS11 cmxAXjMuMC4zOgogICBpbnRlZ3JpdHkgc2hhNTEyLW9wbU5JWDd1Rm5TOTZOdFBtaFdRZ1F4Ni9O WUZnc1VYWU1sbGNmendXS1VNd2ZvOGtrdTFUdkU2aGtOY0grUTF0czVjTVZyc1k3ajBieFhRRGNp dTlRPT0KIAogaXMtYW55LWFycmF5QF4xLjAuMDoKLSAgdmVyc2lvbiAiMS4wLjAiCi0gIHJlc29s dmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL2lzLWFueS1hcnJheS8tL2lzLWFueS1h cnJheS0xLjAuMC50Z3ojYmNiMmM3ZTJkMjhhYWEyZmEwMmVlOGY2YjYwNGIwYjNhOTU3YmJhNyIK LSAgaW50ZWdyaXR5IHNoYTUxMi0wbzBac2dPYm55bHY3Mm5PMzlQNk0rUEw3alBVRXgzOU82QkVm WnVYMzZJS1B5L1JwZHVkeGx1QUlhUm4vTFppNWVWUERNbE1CYUxBQnpPSzZid1Bsdz09CisgIHZl cnNpb24gIjEuMC4xIgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9p cy1hbnktYXJyYXkvLS9pcy1hbnktYXJyYXktMS4wLjEudGd6IzA1ZmVkZWMxYTRkY2VkMTg1NGJk Mjc5YjJlYzVkZjQzMWU1YmVhOWUiCisgIGludGVncml0eSBzaGE1MTItbStGU2lhT054QnQyVzBo OVhPVW5nTUJ1L1dXOHV6QUtiU2s0VHkyYWVDY1FKK211QnFFTmV4dnhVSHREcFg2NWZrNUFNQ1JP eHFnTlgwc1NBSHN0Y3c9PQogCiBpcy1hcmd1bWVudHNAXjEuMC40OgotICB2ZXJzaW9uICIxLjEu MCIKLSAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vaXMtYXJndW1lbnRz Ly0vaXMtYXJndW1lbnRzLTEuMS4wLnRneiM2MjM1MzAzMWRmYmVlMDdjZWIzNDY1NmE2YmRlNTll ZmVjYWU4ZGQ5IgotICBpbnRlZ3JpdHkgc2hhNTEyLTFJajRsT01QbC94QjVrQkRuN0krYjJ0dFBN S2E4c3poRUlyWER1WFFEL29lM0hKTFRMaHFoZ0dzcHdneUdkNk1PeXdCVXFWdllpY0Y3MmxrZ0Ru SUhnPT0KKyAgdmVyc2lvbiAiMS4xLjEiCisgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlh cm5wa2cuY29tL2lzLWFyZ3VtZW50cy8tL2lzLWFyZ3VtZW50cy0xLjEuMS50Z3ojMTViM2Y4OGZk YTAxZjJhOTdmZWM4NGNhNzYxYTU2MGYxMjNlZmE5YiIKKyAgaW50ZWdyaXR5IHNoYTUxMi04UTdF QVJqekVuS3B0L1BDRDdlMWNnVVMwYTZYOHU1dGRTaU1xWGhvak9kb1Y5VHNNc2lPKzlWTEM1dkFt TzhONy9HbVhuN3lqUjhxbkE2YlZBRXpmQT09CiAgIGRlcGVuZGVuY2llczoKLSAgICBjYWxsLWJp bmQgIl4xLjAuMCIKKyAgICBjYWxsLWJpbmQgIl4xLjAuMiIKKyAgICBoYXMtdG9zdHJpbmd0YWcg Il4xLjAuMCIKIAogaXMtYXJyYXlpc2hAXjAuMi4xOgogICB2ZXJzaW9uICIwLjIuMSIKQEAgLTY0 OTAsOSArNjE0OSwxMSBAQCBpcy1hcnJheWlzaEBeMC4yLjE6CiAgIGludGVncml0eSBzaGExLWQ4 bVlRRko2cU95eHFMcHBlNEJrV25xU2FwMD0KIAogaXMtYmlnaW50QF4xLjAuMToKLSAgdmVyc2lv biAiMS4wLjEiCi0gIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL2lzLWJp Z2ludC8tL2lzLWJpZ2ludC0xLjAuMS50Z3ojNjkyMzA1MWRmY2JjNzY0Mjc4NTQwYjljZTBlNmIz MjEzYWE1ZWJjMiIKLSAgaW50ZWdyaXR5IHNoYTUxMi1KMEVMRjR5SEZ4SHkwY21TeFp1aGVET3oy bHVPZFZ2cWp3bUVjajhIL0wxSkhldUVEU0RiZVJQK0RrOWtGVms1UlRGemJ1Y0oyS2I5RjdpeFky UWFDZz09CisgIHZlcnNpb24gIjEuMC40IgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55 YXJucGtnLmNvbS9pcy1iaWdpbnQvLS9pcy1iaWdpbnQtMS4wLjQudGd6IzA4MTQ3YTE4NzViYzJi MzIwMDVkNDFjY2Q4MjkxZGZmYzY2OTFkZjMiCisgIGludGVncml0eSBzaGE1MTItekI5Q3J1TWFt anltODFpMkpaM1VNbjU0UEtHc1F6c0plbzZ4dk4zSEpKNENBc1FOQjZpUnV0cDJUbzc3T2ZDTnVv eHNwc0loemFQb08xenlDRWhGT2c9PQorICBkZXBlbmRlbmNpZXM6CisgICAgaGFzLWJpZ2ludHMg Il4xLjAuMSIKIAogaXMtYmluYXJ5LXBhdGhAfjIuMS4wOgogICB2ZXJzaW9uICIyLjEuMCIKQEAg LTY1MDEsNTEgKzYxNjIsNDcgQEAgaXMtYmluYXJ5LXBhdGhAfjIuMS4wOgogICBkZXBlbmRlbmNp ZXM6CiAgICAgYmluYXJ5LWV4dGVuc2lvbnMgIl4yLjAuMCIKIAoraXMtYmxvYkBeMi4xLjA6Cisg IHZlcnNpb24gIjIuMS4wIgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNv bS9pcy1ibG9iLy0vaXMtYmxvYi0yLjEuMC50Z3ojZTM2Y2Q4MmM5MDY1M2YxZTFiOTMwZjExYmFm OWM2NDIxNmEwNTM4NSIKKyAgaW50ZWdyaXR5IHNoYTUxMi1TWi9mVGZ0NWVVaFFNNm9GL1phQVNG REVkYkZWZTg5SW1sdG45dVpyMDN3ZEtNY1dOVllTTWpRUEZ0ZzA1UXVOa3Q1bDVjMTM1RWx2WEVR RzByazR0dz09CisKIGlzLWJvb2xlYW4tb2JqZWN0QF4xLjAuMSwgaXMtYm9vbGVhbi1vYmplY3RA XjEuMS4wOgotICB2ZXJzaW9uICIxLjEuMCIKLSAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnku eWFybnBrZy5jb20vaXMtYm9vbGVhbi1vYmplY3QvLS9pcy1ib29sZWFuLW9iamVjdC0xLjEuMC50 Z3ojZTJhYWFkM2EzYThmY2EzNGMyOGY2ZWVlMTM1YjE1NmVkMjU4N2ZmMCIKLSAgaW50ZWdyaXR5 IHNoYTUxMi1hN1Vwcng4VXREK0hXZHlZd25EMStFeHRUZ3FRdEQyay8xeUpndFhQNnduTW04Ynlo a29UWlJsKzk1TExUaHB6TlpKNWFFdmk0NmNkSCtheU1GUndtQT09CisgIHZlcnNpb24gIjEuMS4y IgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9pcy1ib29sZWFuLW9i amVjdC8tL2lzLWJvb2xlYW4tb2JqZWN0LTEuMS4yLnRneiM1YzZkYzIwMDI0NmRkOTMyMWFlNGI4 ODVhMTE0YmIxZjc1ZjYzNzE5IgorICBpbnRlZ3JpdHkgc2hhNTEyLWdEWWFLSEptbmo0YVd4eWo2 WUh5WFZwZFFhd3RWTEhVNWNiK2V6dFBHY3pmNmNqdVRkd3ZlNVpJRWZnWHFINGU1N0FuMUQxQUtm OENaM2tZclFScVlBPT0KICAgZGVwZW5kZW5jaWVzOgotICAgIGNhbGwtYmluZCAiXjEuMC4wIgor ICAgIGNhbGwtYmluZCAiXjEuMC4yIgorICAgIGhhcy10b3N0cmluZ3RhZyAiXjEuMC4wIgogCiBp cy1idWZmZXJAXjEuMS4wOgogICB2ZXJzaW9uICIxLjEuNiIKICAgcmVzb2x2ZWQgImh0dHBzOi8v cmVnaXN0cnkueWFybnBrZy5jb20vaXMtYnVmZmVyLy0vaXMtYnVmZmVyLTEuMS42LnRneiNlZmFh MmVhOWRhYTBkN2FiMmVhMTNhOTdiMmI4YWQ1MWZlZmJlOGJlIgogICBpbnRlZ3JpdHkgc2hhNTEy LU5jZEFMd3BYa1RtNVp2dmJrN293T1VTdlZ2QktEZ0tQNS9ld2ZYRXpubVFGZnM0WlJtYW5PZUtC VGpSVmprYTNRRm9ONlhKKzlGM1VTcWZIcVRhVTV3PT0KIAotaXMtYnVmZmVyQF4yLjAuMzoKK2lz LWJ1ZmZlckBeMi4wLjU6CiAgIHZlcnNpb24gIjIuMC41IgogICByZXNvbHZlZCAiaHR0cHM6Ly9y ZWdpc3RyeS55YXJucGtnLmNvbS9pcy1idWZmZXIvLS9pcy1idWZmZXItMi4wLjUudGd6I2ViYzI1 MmU0MDBkMjJmZjhkNzdmYTA5ODg4ODIxYTI0YTY1OGMxOTEiCiAgIGludGVncml0eSBzaGE1MTIt aTJSNnpORkR3Z0VISnlRVXRKRWswWEZpMWkwZFBGbi9vcWpLMy92UENjRGVKdlc1TlE4M1Y4UWJp Y2ZGMVN1cE9hQjBoOG50Z0JDMllpRTdkZnljdFE9PQogCi1pcy1jYWxsYWJsZUBeMS4xLjQsIGlz LWNhbGxhYmxlQF4xLjEuNSwgaXMtY2FsbGFibGVAXjEuMi4zOgotICB2ZXJzaW9uICIxLjIuMyIK LSAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vaXMtY2FsbGFibGUvLS9p cy1jYWxsYWJsZS0xLjIuMy50Z3ojOGIxZTA1MDBiNzNhMWQ3NmM3MDQ4NzYzNmYzNjhlNTE5ZGU4 ZGI4ZSIKLSAgaW50ZWdyaXR5IHNoYTUxMi1KMURjTWU4VVlUQlNyS2V6dUlVVFV3alhzaG8yOTY5 M3VuWE0yWWhKVVRSMnR4Sy9lRzQ3YnZOYS93aXBQRm1aRmdyL042ZjFHQTY2ZHYwbUV5VEl5UT09 Ci0KLWlzLWNvbG9yLXN0b3BAXjEuMS4wOgotICB2ZXJzaW9uICIxLjEuMCIKLSAgcmVzb2x2ZWQg Imh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vaXMtY29sb3Itc3RvcC8tL2lzLWNvbG9yLXN0 b3AtMS4xLjAudGd6I2NmZmY0NzFhZWU0ZGQ1YzllMTU4NTk4ZmJlMTI5NjdiNWNkYWQzNDUiCi0g IGludGVncml0eSBzaGExLXovOUhHdTVOMWNuaFdGbVB2aEtXZTF6YTAwVT0KLSAgZGVwZW5kZW5j aWVzOgotICAgIGNzcy1jb2xvci1uYW1lcyAiXjAuMC40IgotICAgIGhleC1jb2xvci1yZWdleCAi XjEuMS4wIgotICAgIGhzbC1yZWdleCAiXjEuMC4wIgotICAgIGhzbGEtcmVnZXggIl4xLjAuMCIK LSAgICByZ2ItcmVnZXggIl4xLjAuMSIKLSAgICByZ2JhLXJlZ2V4ICJeMS4wLjAiCitpcy1jYWxs YWJsZUBeMS4xLjQsIGlzLWNhbGxhYmxlQF4xLjEuNSwgaXMtY2FsbGFibGVAXjEuMi40OgorICB2 ZXJzaW9uICIxLjIuNCIKKyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20v aXMtY2FsbGFibGUvLS9pcy1jYWxsYWJsZS0xLjIuNC50Z3ojNDczMDFkNThkZDAyNTk0MDc4NjU1 NDc4NTNkZjZkNjFmZTQ3MTk0NSIKKyAgaW50ZWdyaXR5IHNoYTUxMi1uc3V3dHhaZk1YNjdPcnls OUxDUSt1cG5DMFowQmdwd250cFM4OW0xSC9UTEYwek5memZMTVYvOVdhLzZNWnNqMGFjcEVqQU8w S0YxeFQ2WmRMbDk1dz09CiAKIGlzLWNvcmUtbW9kdWxlQF4yLjIuMDoKLSAgdmVyc2lvbiAiMi4y LjAiCi0gIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL2lzLWNvcmUtbW9k dWxlLy0vaXMtY29yZS1tb2R1bGUtMi4yLjAudGd6Izk3MDM3ZWYzZDUyMjI0ZDg1MTYzZjU1OTdi MmI2M2Q5YWZlZDk4MWEiCi0gIGludGVncml0eSBzaGE1MTItWFJBZkFkeXlZNUY1Y09YbjdoWVFE cWgyWG1paStERWZJY1FHeEsvdU53TUhoSWtQV08wZzhtc1hjYnpMZStNcEdvUjk1MU1scU0vMmlJ bFU0dktEZFE9PQorICB2ZXJzaW9uICIyLjguMCIKKyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0 cnkueWFybnBrZy5jb20vaXMtY29yZS1tb2R1bGUvLS9pcy1jb3JlLW1vZHVsZS0yLjguMC50Z3oj MDMyMTMzNmMzZDA5MjVlNDk3ZmQ5N2Y1ZDk1Y2IxMTRhNWNjZDU0OCIKKyAgaW50ZWdyaXR5IHNo YTUxMi12ZDE1cUhzYXFyUkw3ZHRINlFOdXkwbmRKbVJEclM5SEFNMUNBaVNpZk5VRnY0eDFhMEND VnNqMThoSjFtU2h4SUc2VDJpMXNPNzhNa1A1NnIwbllSdz09CiAgIGRlcGVuZGVuY2llczoKICAg ICBoYXMgIl4xLjAuMyIKIAogaXMtZGF0ZS1vYmplY3RAXjEuMC4xOgotICB2ZXJzaW9uICIxLjAu NCIKLSAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vaXMtZGF0ZS1vYmpl Y3QvLS9pcy1kYXRlLW9iamVjdC0xLjAuNC50Z3ojNTUwY2ZjYzAzYWZhZGEwNWVlYTNkZDMwOTgx YzdiMDk1NTFmNzNlNSIKLSAgaW50ZWdyaXR5IHNoYTUxMi0vYjRaVnNHN1o1WFZ0SXhzL2g5Vzhu dmZMZ1NBeUtZZHRHV1FMYnF5NmpBMWljbWdqZjhXQ29US2dlUzR3eTV0WWFQZVBvdXpGTUFOYm5q OTRjMlorQT09CisgIHZlcnNpb24gIjEuMC41IgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3Ry eS55YXJucGtnLmNvbS9pcy1kYXRlLW9iamVjdC8tL2lzLWRhdGUtb2JqZWN0LTEuMC41LnRneiMw ODQxZDU1MzZlNzI0YzI1NTk3YmY2ZWE2MmUxYmQzODI5OGRmMzFmIgorICBpbnRlZ3JpdHkgc2hh NTEyLTlZUWFTeHNBaVN3Y3ZTMzNNQmszd1RDVm5XSytIaEY4VlpSMmpSeGVoTTE2UWNWT2RIcVBu NFZQSG1SSzRsU3IzOG45SnJpdXJJbkxjUDkweHNZTmZRPT0KKyAgZGVwZW5kZW5jaWVzOgorICAg IGhhcy10b3N0cmluZ3RhZyAiXjEuMC4wIgogCiBpcy1kb2NrZXJAXjIuMS4xOgogICB2ZXJzaW9u ICIyLjIuMSIKQEAgLTY1NzUsMTQgKzYyMzIsMTYgQEAgaXMtZnVsbHdpZHRoLWNvZGUtcG9pbnRA XjMuMC4wOgogICBpbnRlZ3JpdHkgc2hhNTEyLXp5bW01K3Urc0NzU1d5RDlxTmFlalYzREZ2aENL Y2xLZGl6WWFKVXVIQTgzUkxqYjduU3VHbmRkQ0hHdjBoaytLWTdCTUFsc1dlSzRVZWc2RVY2WFFn PT0KIAogaXMtZ2VuZXJhdG9yLWZ1bmN0aW9uQF4xLjAuNzoKLSAgdmVyc2lvbiAiMS4wLjkiCi0g IHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL2lzLWdlbmVyYXRvci1mdW5j dGlvbi8tL2lzLWdlbmVyYXRvci1mdW5jdGlvbi0xLjAuOS50Z3ojZTVmODJjMjMyMzY3M2U3ZmNh ZDNkMTI4NThjODNjNDAzOWY2Mzk5YyIKLSAgaW50ZWdyaXR5IHNoYTUxMi1aSjM0cDF1dklmcHRI Q043c0ZUakdpYkI5L29CZzE3c0hxekRMZnV3aHZtTi9xTFZ2SVFYUlE4bGljWlEzNVdKOEt1RVF0 L2V0bm56UUZJOUM5VWUvQT09CisgIHZlcnNpb24gIjEuMC4xMCIKKyAgcmVzb2x2ZWQgImh0dHBz Oi8vcmVnaXN0cnkueWFybnBrZy5jb20vaXMtZ2VuZXJhdG9yLWZ1bmN0aW9uLy0vaXMtZ2VuZXJh dG9yLWZ1bmN0aW9uLTEuMC4xMC50Z3ojZjE1NThiYWYxYWMxN2UwZGVlYTdjMDQxNWM0MzgzNTFm ZjJiM2M3MiIKKyAgaW50ZWdyaXR5IHNoYTUxMi1qc0VqeTlsM3lpWEVRK1BzWGRtQndFUGNPeGFY V0xzcEtkcGxGVVZJOXZxMWlaZ0lla2VDMEwxNjdxZXU4NmN6UWF4ZWQzcS9VenV3MHN3TDBpckw4 QT09CisgIGRlcGVuZGVuY2llczoKKyAgICBoYXMtdG9zdHJpbmd0YWcgIl4xLjAuMCIKIAogaXMt Z2xvYkBeNC4wLjAsIGlzLWdsb2JAXjQuMC4xLCBpcy1nbG9iQH40LjAuMToKLSAgdmVyc2lvbiAi NC4wLjEiCi0gIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL2lzLWdsb2Iv LS9pcy1nbG9iLTQuMC4xLnRneiM3NTY3ZGJlOWYyZjVlMjQ2N2JjNzdhYjgzYzRhMjk0ODI0MDdh NWRjIgotICBpbnRlZ3JpdHkgc2hhNTEyLTVHMHRLdEJURkltT3FEbkxCMmhHNkJwMnFjS0VGZHVv NHRadTlNVC9INk5Rdi9naGh5MzBvNTV1ZmFmeEovTGRINzlMTHMyS2Zybjg1VExLeUE3QlVnPT0K KyAgdmVyc2lvbiAiNC4wLjMiCisgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cu Y29tL2lzLWdsb2IvLS9pcy1nbG9iLTQuMC4zLnRneiM2NGY2MWU0MmNiYmIyZWVjMjA3MWE5ZGFj MGIyOGJhMWU2NWQ1MDg0IgorICBpbnRlZ3JpdHkgc2hhNTEyLXhlbFNheUhIMzZaZ0U3WldobGk3 cFczNGhOYk5sOE9qdjVLVm1rSkQ0aEJkRDN0aDhUZms5dllhc0xNK21YV09aaEZrZ1pmeGhMU25y d1JyNGVsU1NnPT0KICAgZGVwZW5kZW5jaWVzOgogICAgIGlzLWV4dGdsb2IgIl4yLjEuMSIKIApA QCAtNjYxMiw5ICs2MjcxLDExIEBAIGlzLW5lZ2F0aXZlLXplcm9AXjIuMC4xOgogICBpbnRlZ3Jp dHkgc2hhNTEyLTJ6Nkp6UXZaUmE5QTJZN3hDNmRRUW00RlNUU1ROV2pLSVlZVHQ0MjQ2ZU1USm1J bzBRK1p5T3NVNjZYOGx4SzFBYkI5MmRGZWdsUExyaHdwZVJLTzZ3PT0KIAogaXMtbnVtYmVyLW9i amVjdEBeMS4wLjQ6Ci0gIHZlcnNpb24gIjEuMC41IgotICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdp c3RyeS55YXJucGtnLmNvbS9pcy1udW1iZXItb2JqZWN0Ly0vaXMtbnVtYmVyLW9iamVjdC0xLjAu NS50Z3ojNmVkZmFlZWQ3OTUwY2ZmMTlhZmVkY2U5ZmJmY2E5ZWU2ZGQyODllYiIKLSAgaW50ZWdy aXR5IHNoYTUxMi1SVTBsSS9uOTVwTW9VS3U5djFCWlA1TUJjWnVOU1ZKa01rQUcyZEpxQzR6Mkds a0dVTmVINjhTdUh1QktCRC9YRmUrTEhaK2Y5QktrTEVUNjBOaWVkdz09CisgIHZlcnNpb24gIjEu MC42IgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9pcy1udW1iZXIt b2JqZWN0Ly0vaXMtbnVtYmVyLW9iamVjdC0xLjAuNi50Z3ojNmE3YWFmODM4YzdmMDY4NmE1MGI0 NTUzZjdlNTRhOTY0OTRlODlmMCIKKyAgaW50ZWdyaXR5IHNoYTUxMi1iRVZPcWlSY3ZvM3pPMStH MmxWTXkrZ2trRW05WWg3Y0RNUnVzS0t1NVpKS1BVWVNKd0lDVEtack5LSEEyRWJTUDBUdTArNkIv ZW1zWU5IWnluNks4Zz09CisgIGRlcGVuZGVuY2llczoKKyAgICBoYXMtdG9zdHJpbmd0YWcgIl4x LjAuMCIKIAogaXMtbnVtYmVyQF43LjAuMDoKICAgdmVyc2lvbiAiNy4wLjAiCkBAIC02NjQzLDEz ICs2MzA0LDEzIEBAIGlzLXBuZ0BeMi4wLjA6CiAgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5 Lnlhcm5wa2cuY29tL2lzLXBuZy8tL2lzLXBuZy0yLjAuMC50Z3ojZWU4Y2JjOWU5YjA1MDQyNWNl ZGVlYjRhNmZiNzRhNjQ5YjBhNGE4ZCIKICAgaW50ZWdyaXR5IHNoYTUxMi00S1BHaXphVkdqMkxL N3h3Skl6OG81QjJ1YnUxRC92Y1FzZ09HRkVEbHBjdmdaSHRvNGdCbnlkMGlnN1dzKzY3aXhtd0tv Tm11MGhZbnBvNkFhS2I1Zz09CiAKLWlzLXJlZ2V4QF4xLjAuNSwgaXMtcmVnZXhAXjEuMS4wLCBp cy1yZWdleEBeMS4xLjM6Ci0gIHZlcnNpb24gIjEuMS4zIgotICByZXNvbHZlZCAiaHR0cHM6Ly9y ZWdpc3RyeS55YXJucGtnLmNvbS9pcy1yZWdleC8tL2lzLXJlZ2V4LTEuMS4zLnRneiNkMDI5Zjlh ZmY2NDQ4YjkzZWJiZTNmMzNkYWM3MTUxMWZkY2JlZjlmIgotICBpbnRlZ3JpdHkgc2hhNTEyLXFT VlhGejI4SE03eStJV1g2dkxDc2V4ZGx2elQxUEpORlNCdWFRTFE1bzBJRXc4VURZVzYvMitlQ01W eUlzYk04Q05MWDJhL1FXbVNweXhZRUhZN0NRPT0KK2lzLXJlZ2V4QF4xLjAuNSwgaXMtcmVnZXhA XjEuMS4wLCBpcy1yZWdleEBeMS4xLjQ6CisgIHZlcnNpb24gIjEuMS40IgorICByZXNvbHZlZCAi aHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9pcy1yZWdleC8tL2lzLXJlZ2V4LTEuMS40LnRn eiNlZWY1NjYzY2Q1OWZhNGMwYWUzMzk1MDUzMjNkZjY4NTRiYjE1OTU4IgorICBpbnRlZ3JpdHkg c2hhNTEyLWt2UmR4RHN4WmpoelVYMDdabkx5ZHpTMVRVL1RKbFRVSEhZNFlMTDg3ZTM3b1VBNDlE ZmtMcWd5K1ZqRm9jb3d5MjljS3ZjU2l1K2tJdjcyOGpUVFZnPT0KICAgZGVwZW5kZW5jaWVzOgog ICAgIGNhbGwtYmluZCAiXjEuMC4yIgotICAgIGhhcy1zeW1ib2xzICJeMS4wLjIiCisgICAgaGFz LXRvc3RyaW5ndGFnICJeMS4wLjAiCiAKIGlzLXJlbGF0aXZlQF4xLjAuMDoKICAgdmVyc2lvbiAi MS4wLjAiCkBAIC02NjY4LDIwICs2MzI5LDI3IEBAIGlzLXJldHJ5LWFsbG93ZWRAXjEuMC4wLCBp cy1yZXRyeS1hbGxvd2VkQF4xLjEuMDoKICAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFy bnBrZy5jb20vaXMtcmV0cnktYWxsb3dlZC8tL2lzLXJldHJ5LWFsbG93ZWQtMS4yLjAudGd6I2Q3 Nzg0ODhiZDBhNDY2NmEzYmU4YTE0ODJiOWYyYmFhZmVkZWE4YjQiCiAgIGludGVncml0eSBzaGE1 MTItUlViVWVLd3ZtM1hHMlZZYW1oSkwxeEZrdGdqdlB6TDBIcThDKzZ5cldJc3dEeTNCSVhHcUN4 aHhrYzMwTjlqcUszMTFnVlUxMzdLOEVpNTUvelZKUmc9PQogCitpcy1zaGFyZWQtYXJyYXktYnVm ZmVyQF4xLjAuMToKKyAgdmVyc2lvbiAiMS4wLjEiCisgIHJlc29sdmVkICJodHRwczovL3JlZ2lz dHJ5Lnlhcm5wa2cuY29tL2lzLXNoYXJlZC1hcnJheS1idWZmZXIvLS9pcy1zaGFyZWQtYXJyYXkt YnVmZmVyLTEuMC4xLnRneiM5N2IwYzg1ZmJkYWNiNTljOWM0NDZmZTY1M2I4MmNmMmI1YjdjZmU2 IgorICBpbnRlZ3JpdHkgc2hhNTEyLUlVME5teWtuWVpOMHJDaGNLaFJPMVg4TFl6NUlzai9Gc3Fo OE5KT1NmK04vaENPVHd5MjlGMzJJazdhK1FzekU2M0lkdm13ZFRQRGQ2Y1o1cGc0Y3dBPT0KKwog aXMtc3RyZWFtQF4xLjAuMCwgaXMtc3RyZWFtQF4xLjEuMDoKICAgdmVyc2lvbiAiMS4xLjAiCiAg IHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL2lzLXN0cmVhbS8tL2lzLXN0 cmVhbS0xLjEuMC50Z3ojMTJkNGEzZGQ0ZTY4ZTBiNzljZWI4ZGJjODQxNzNhZTgwZDkxY2E0NCIK ICAgaW50ZWdyaXR5IHNoYTEtRXRTajNVNW80TGVjNjQyOGhCYzY2QTJSeWtRPQogCiBpcy1zdHJl YW1AXjIuMC4wOgotICB2ZXJzaW9uICIyLjAuMCIKLSAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0 cnkueWFybnBrZy5jb20vaXMtc3RyZWFtLy0vaXMtc3RyZWFtLTIuMC4wLnRneiNiZGU5YzMyNjgw ZDZmYWUwNDEyOWQ2YWM5ZDkyMWNlNzgxNWY3OGUzIgotICBpbnRlZ3JpdHkgc2hhNTEyLVhDb3kr V2xVcjdkMStaOEdnU3VYbXB1VUZDOWZPaFJYZ2xKTXgrZHdMS1RrTDQ0Q2pkNFcxWjVQK0JRWnBy K2NSOTNhR1A0Uy9zN0Z0dzZOZC9raUV3PT0KKyAgdmVyc2lvbiAiMi4wLjEiCisgIHJlc29sdmVk ICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL2lzLXN0cmVhbS8tL2lzLXN0cmVhbS0yLjAu MS50Z3ojZmFjMWUzZDUzYjk3YWQ1YTlkMGFlOWNlZjIzODlmNTgxMGE1YzA3NyIKKyAgaW50ZWdy aXR5IHNoYTUxMi1oRm9pSmlUbDYzbm4ra3N0SEdCdGV3V1NLblFMcHliMTU1S0hoZUExbDM5dXZ0 TzluV0lvcDFwM3VkcVBjVWQveGJGMVZMTU80bjdPSTZwN1JibmdEZz09CiAKLWlzLXN0cmluZ0Be MS4wLjUsIGlzLXN0cmluZ0BeMS4wLjY6Ci0gIHZlcnNpb24gIjEuMC42IgotICByZXNvbHZlZCAi aHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9pcy1zdHJpbmcvLS9pcy1zdHJpbmctMS4wLjYu dGd6IzNmZTVkNTk5MmZiMGQ5MzQwNGYzMjU4NGQ0YjAxNzlhNzFiNTRhNWYiCi0gIGludGVncml0 eSBzaGE1MTItMmdkemJLVXVxdFEzbFlOclVUUVlvQ2xQaG03b1F1NFVkcFNaTXAxL0RHZ2tIQlQ4 RTJaMWwweU1kYjZENHpOQXh3RGlNdjhNZHVsS1JPSkdObDBRMHc9PQoraXMtc3RyaW5nQF4xLjAu NSwgaXMtc3RyaW5nQF4xLjAuNzoKKyAgdmVyc2lvbiAiMS4wLjciCisgIHJlc29sdmVkICJodHRw czovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL2lzLXN0cmluZy8tL2lzLXN0cmluZy0xLjAuNy50Z3oj MGRkMTJiZjIwMDZmMjU1YmI1OGY2OTUxMTBlZmY3NDkxZWViYzBmZCIKKyAgaW50ZWdyaXR5IHNo YTUxMi10RTJVWHppdmplNm9mUFc3bDIzY2pET01hMDlnYjd4bEFxRzZqRzVlajZ1UFYzMlRsV1Az TktQaWd0YUdlSE51OWZvaGNjUll2SWlaTWZPT25PWVV0Zz09CisgIGRlcGVuZGVuY2llczoKKyAg ICBoYXMtdG9zdHJpbmd0YWcgIl4xLjAuMCIKIAogaXMtc3Vic2V0QF4wLjEuMToKICAgdmVyc2lv biAiMC4xLjEiCkBAIC02Njk2LDIyICs2MzY0LDIyIEBAIGlzLXN2Z0BeNC4yLjE6CiAgICAgZmFz dC14bWwtcGFyc2VyICJeMy4xOS4wIgogCiBpcy1zeW1ib2xAXjEuMC4yLCBpcy1zeW1ib2xAXjEu MC4zOgotICB2ZXJzaW9uICIxLjAuMyIKLSAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFy bnBrZy5jb20vaXMtc3ltYm9sLy0vaXMtc3ltYm9sLTEuMC4zLnRneiMzOGUxMDE0YjllNjMyOWJl MGRlOWQyNGE0MTRmZDc0NDFlYzYxOTM3IgotICBpbnRlZ3JpdHkgc2hhNTEyLU93aWpoYVJTZ3F2 aG0vMFpkQWNYTlp0OWxZZEtGcGNSRFQ1VUxVdVlYUG9UNzk0VU5PZFUrZ3BUNlJ6bzdiNFYySFVs L29wNkdxWTg5NEFad3Y5ZmFRPT0KKyAgdmVyc2lvbiAiMS4wLjQiCisgIHJlc29sdmVkICJodHRw czovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL2lzLXN5bWJvbC8tL2lzLXN5bWJvbC0xLjAuNC50Z3oj YTZkYWM5M2I2MzViMDYzY2E2ODcyMjM2ZGU4ODkxMGE1N2FmMTM5YyIKKyAgaW50ZWdyaXR5IHNo YTUxMi1DL0NQQnFLV252ZGN4cUlBUnh5T2g0djFVVUVPQ0hwZ0RhMFdZZ3BLREZNc3pjclBjZmZn NXVod1NnUENMRDJXV3htcTZpc2lzejg3dHpUMDF0dUdoZz09CiAgIGRlcGVuZGVuY2llczoKLSAg ICBoYXMtc3ltYm9scyAiXjEuMC4xIgorICAgIGhhcy1zeW1ib2xzICJeMS4wLjIiCiAKLWlzLXR5 cGVkLWFycmF5QF4xLjEuMzoKLSAgdmVyc2lvbiAiMS4xLjUiCi0gIHJlc29sdmVkICJodHRwczov L3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL2lzLXR5cGVkLWFycmF5Ly0vaXMtdHlwZWQtYXJyYXktMS4x LjUudGd6I2YzMmU2ZTA5NjQ1NWUzMjllYjdiNDIzODYyNDU2YWEyMTNmMGViNGUiCi0gIGludGVn cml0eSBzaGE1MTItUytHUkRnSmxSM1B5RWJzWC9Gb2JkOWNxcFpCdXZVUys4YXNScVlETUxDYjJx TXp0MW96NW01b3hRQ3hPZ1VEeGlXc09WTmk0eWFGKy91dmRsSGxZdWc9PQoraXMtdHlwZWQtYXJy YXlAXjEuMS4zLCBpcy10eXBlZC1hcnJheUBeMS4xLjc6CisgIHZlcnNpb24gIjEuMS44IgorICBy ZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9pcy10eXBlZC1hcnJheS8tL2lz LXR5cGVkLWFycmF5LTEuMS44LnRneiNjYmFhNjU4NWRjN2RiNDMzMThiYzViODk1MjNlYTM4NGE2 ZjY1ZTc5IgorICBpbnRlZ3JpdHkgc2hhNTEyLUhxSDQxVE5acTJmZ3RHVDhXSFZGVkpoQlZHdVkz QW5QM1EzNks4SktYVXhTeFJnay9kKzdOam13RzJ2bzJtWW1YSzhVWVpLdTBxSDhiVlA1Z0Vpc2pB PT0KICAgZGVwZW5kZW5jaWVzOgotICAgIGF2YWlsYWJsZS10eXBlZC1hcnJheXMgIl4xLjAuMiIK KyAgICBhdmFpbGFibGUtdHlwZWQtYXJyYXlzICJeMS4wLjUiCiAgICAgY2FsbC1iaW5kICJeMS4w LjIiCi0gICAgZXMtYWJzdHJhY3QgIl4xLjE4LjAtbmV4dC4yIgorICAgIGVzLWFic3RyYWN0ICJe MS4xOC41IgogICAgIGZvcmVhY2ggIl4yLjAuNSIKLSAgICBoYXMtc3ltYm9scyAiXjEuMC4xIgor ICAgIGhhcy10b3N0cmluZ3RhZyAiXjEuMC4wIgogCiBpcy11bmMtcGF0aEBeMS4wLjA6CiAgIHZl cnNpb24gIjEuMC4wIgpAQCAtNjcyMCw2ICs2Mzg4LDEzIEBAIGlzLXVuYy1wYXRoQF4xLjAuMDoK ICAgZGVwZW5kZW5jaWVzOgogICAgIHVuYy1wYXRoLXJlZ2V4ICJeMC4xLjIiCiAKK2lzLXdlYWty ZWZAXjEuMC4xOgorICB2ZXJzaW9uICIxLjAuMSIKKyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0 cnkueWFybnBrZy5jb20vaXMtd2Vha3JlZi8tL2lzLXdlYWtyZWYtMS4wLjEudGd6Izg0MmRiYTRl YzE3ZmE5YWM5ODUwZGYyZDZlZmJjMTczNzI3NGYyYTIiCisgIGludGVncml0eSBzaGE1MTItYjJq S2MycFFaamFlRllXRWY3U2NGaitCZTFJK1BYbWx1NTcyUThjb1RYWitMRC9RUVo3U2hQTXN0OGgx NnJpVmd5WFRRd1VzRkVsNzRtRHZjLzNNSFE9PQorICBkZXBlbmRlbmNpZXM6CisgICAgY2FsbC1i aW5kICJeMS4wLjAiCisKIGlzYXJyYXlAMC4wLjE6CiAgIHZlcnNpb24gIjAuMC4xIgogICByZXNv bHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9pc2FycmF5Ly0vaXNhcnJheS0wLjAu MS50Z3ojOGExOGFjZmNhOWE4ZjQxNzdlMDlhYmZjNjAzODkzOWIwNWQxZWVkZiIKQEAgLTY3NjEs OSArNjQzNiw5IEBAIGlzdGFuYnVsLWxpYi1jb3ZlcmFnZUBeMS4yLjE6CiAgIGludGVncml0eSBz aGE1MTItUHpJVGV1bkFneUdidFkxaWJWSVVpVjY3OUVGQ2hIam9NTlJpYkVJb2J2bXJDUmFJZ3dM eE51Y09TaW10TldVaEVpYi9vTzdRWTJpbUQ3NUpWZ0NKV1E9PQogCiBpc3RhbmJ1bC1saWItY292 ZXJhZ2VAXjMuMC4wOgotICB2ZXJzaW9uICIzLjAuMCIKLSAgcmVzb2x2ZWQgImh0dHBzOi8vcmVn aXN0cnkueWFybnBrZy5jb20vaXN0YW5idWwtbGliLWNvdmVyYWdlLy0vaXN0YW5idWwtbGliLWNv dmVyYWdlLTMuMC4wLnRneiNmNTk0NGEzN2M3MGI1NTBiMDJhNzhhNWMzYjIwNTViMjgwY2VjOGVj IgotICBpbnRlZ3JpdHkgc2hhNTEyLVVpVUlxeE1nUkRFVDZlUitvNUhiZlJZUDFsMGhxa1dPczd2 TnhDL21nZ3V0Q01VSWhXTW04Z0FIYjh0SGx5ZkQzL2w2cmxnTkE1Y0tkRHpFQWY2aEVnPT0KKyAg dmVyc2lvbiAiMy4yLjAiCisgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29t L2lzdGFuYnVsLWxpYi1jb3ZlcmFnZS8tL2lzdGFuYnVsLWxpYi1jb3ZlcmFnZS0zLjIuMC50Z3oj MTg5ZTc5MDlkMGEzOWZhNWEzZGZhZDViMDNmNzE5NDc3NzAxOTFkMyIKKyAgaW50ZWdyaXR5IHNo YTUxMi1lT2VKNUJIQ21IWXZRSzd4dDlHa2RIdXp1Q0dTMVk2ZzlHdm54M1ltMzNmei9IcExSWXhp UzB3SE5yK20vTUJDOEI2NDdYdDYwOHZDREV2aGw5YzZNdz09CiAKIGlzdGFuYnVsLWxpYi1pbnN0 cnVtZW50QF4xLjcuMzoKICAgdmVyc2lvbiAiMS4xMC4yIgpAQCAtNjc5OCwxOCArNjQ3MywxOCBA QCBpc3RhbmJ1bC1saWItcmVwb3J0QF4zLjAuMDoKICAgICBzdXBwb3J0cy1jb2xvciAiXjcuMS4w IgogCiBpc3RhbmJ1bC1saWItc291cmNlLW1hcHNAXjQuMC4wOgotICB2ZXJzaW9uICI0LjAuMCIK LSAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vaXN0YW5idWwtbGliLXNv dXJjZS1tYXBzLy0vaXN0YW5idWwtbGliLXNvdXJjZS1tYXBzLTQuMC4wLnRneiM3NTc0M2NlNmQ5 NmJiODZkYzdlZTQzNTJjZjYzNjZhMjNmMGIxYWQ5IgotICBpbnRlZ3JpdHkgc2hhNTEyLWMxNkxw RlJrUjh2UVh5SFo1bkxwWTM1Slp0emoxUFFZMWlabWVzVWJmMUZaSGJJdXBjV2ZqZ09YQlk5WUhr TEVRNnB1ejF1NERnajZxbVUvRGlzclpnPT0KKyAgdmVyc2lvbiAiNC4wLjEiCisgIHJlc29sdmVk ICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL2lzdGFuYnVsLWxpYi1zb3VyY2UtbWFwcy8t L2lzdGFuYnVsLWxpYi1zb3VyY2UtbWFwcy00LjAuMS50Z3ojODk1ZjNhNzA5ZmNmYmEzNGM2ZGU1 YTQyOTM5MDIyZjNlNDM1ODU1MSIKKyAgaW50ZWdyaXR5IHNoYTUxMi1uM3M4RXdrZEZJSkNHM0JQ S0JZdnNrZ1hHb3k4OEFSenZlZ2tpdGs2ME54UmR3bHRMT1RhSDdDVWlNUlh2d1lvcmwwUTcxMmlF amNXQitmSy9NcldWdz09CiAgIGRlcGVuZGVuY2llczoKICAgICBkZWJ1ZyAiXjQuMS4xIgogICAg IGlzdGFuYnVsLWxpYi1jb3ZlcmFnZSAiXjMuMC4wIgogICAgIHNvdXJjZS1tYXAgIl4wLjYuMSIK IAogaXN0YW5idWwtcmVwb3J0c0BeMy4wLjA6Ci0gIHZlcnNpb24gIjMuMC4yIgotICByZXNvbHZl ZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9pc3RhbmJ1bC1yZXBvcnRzLy0vaXN0YW5i dWwtcmVwb3J0cy0zLjAuMi50Z3ojZDU5MzIxMGU1MDAwNjgzNzUwY2IwOWZjMDY0NGU0YjZlMjdm ZDUzYiIKLSAgaW50ZWdyaXR5IHNoYTUxMi05dFp2ejdBaVIzUEVETkdpVjl2SW91US9FQWNxTVhG bWtjQTFDREZUd09COThPWlZETDBQSDlnbEhvdGY1VWdwNkdDT1R5cGZ6R1dJL09xaldOQ1JVdz09 CisgIHZlcnNpb24gIjMuMC41IgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtn LmNvbS9pc3RhbmJ1bC1yZXBvcnRzLy0vaXN0YW5idWwtcmVwb3J0cy0zLjAuNS50Z3ojYTI1ODAx MDdlNzEyNzllYTZkNjYxZGRlZGU5MjlmZmM2ZDY5MzM4NCIKKyAgaW50ZWdyaXR5IHNoYTUxMi01 KzE5UGxobkdhYk5XQjdrT0ZudXhUOEgzVC9pSXlRekliUU14WHNVUm1tdktnODZQMnNia3JHT1Q3 N1ZuSHcwUXIwZ2MyWHpSYVJmTVpZWWJTUUNKUT09CiAgIGRlcGVuZGVuY2llczoKICAgICBodG1s LWVzY2FwZXIgIl4yLjAuMCIKICAgICBpc3RhbmJ1bC1saWItcmVwb3J0ICJeMy4wLjAiCkBAIC02 ODMzLDkgKzY1MDgsOSBAQCBqYWtlQF4xMC42LjE6CiAgICAgbWluaW1hdGNoICJeMy4wLjQiCiAK IGphc21pbmUtY29yZUBeMy42LjA6Ci0gIHZlcnNpb24gIjMuNy4xIgotICByZXNvbHZlZCAiaHR0 cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9qYXNtaW5lLWNvcmUvLS9qYXNtaW5lLWNvcmUtMy43 LjEudGd6IzA0MDEzMjdmNjI0OWVhYzk5M2Q0N2JiZmExOGQ0ZThlZmFjZmI1NjEiCi0gIGludGVn cml0eSBzaGE1MTItREgzb1lEUy9BVXZ2cjIyK3hVQlc2Mm0xWG95N3RVbFkxdHN4S0VKdmw1SmVK N3E4emQxSzViVXdpT3hkSCtlcmo2bDJ2QU1NM2hWMjVYczkvV3JtdVE9PQorICB2ZXJzaW9uICIz LjEwLjEiCisgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL2phc21pbmUt Y29yZS8tL2phc21pbmUtY29yZS0zLjEwLjEudGd6IzdhYTZmYTJiODM0YTUyMjMxNWM2NTFhMTI4 ZDk0MGVjYTU1Mzk4OWEiCisgIGludGVncml0eSBzaGE1MTItb29aV1NEVkFkaDc5UnJqNC9ubmZr bEwzTlFWcmEwQmN1aGN1V29Bd3dpK3puTERvVWVIODdBRmZlWDhzK1llWWk2eGx2NW52ZVJ5YUEx djdDaW50ZkE9PQogCiBqYXNtaW5lLWVuenltZUBeNy4xLjI6CiAgIHZlcnNpb24gIjcuMS4yIgpA QCAtNjg0OSwxNCArNjUyNCwxNCBAQCBqYXZhc2NyaXB0LW5hdHVyYWwtc29ydEBeMC43LjE6CiAg IHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL2phdmFzY3JpcHQtbmF0dXJh bC1zb3J0Ly0vamF2YXNjcmlwdC1uYXR1cmFsLXNvcnQtMC43LjEudGd6I2Y5ZTIzMDNkNDUwN2Y2 ZDc0MzU1YTczNjY0ZDE0NDBmYjVhMGVmNTkiCiAgIGludGVncml0eSBzaGExLStlSXdQVVVIOXRk RFZhYzJaTkZFRDdXZzcxaz0KIAotamVzdC13b3JrZXJAXjI2LjMuMCwgamVzdC13b3JrZXJAXjI2 LjYuMjoKLSAgdmVyc2lvbiAiMjYuNi4yIgotICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55 YXJucGtnLmNvbS9qZXN0LXdvcmtlci8tL2plc3Qtd29ya2VyLTI2LjYuMi50Z3ojN2Y3MmNiYzRk NjQzYzM2NWUyN2I5ZmQ3NzVmOWQwZWFhOWM3YThlZCIKLSAgaW50ZWdyaXR5IHNoYTUxMi1LV1lW VjFjNGkramJNcGFCQytVKys0VmEwY3A4T2lzVTE4NW83M1Qxdm85OWhxaTd3OHRTSmZVWFlzd3dx cXJqend4YTZLcFJLNTRXaFB2d2Y1dzZQUT09CitqZXN0LXdvcmtlckBeMjcuMC4yLCBqZXN0LXdv cmtlckBeMjcuMC42OgorICB2ZXJzaW9uICIyNy4zLjEiCisgIHJlc29sdmVkICJodHRwczovL3Jl Z2lzdHJ5Lnlhcm5wa2cuY29tL2plc3Qtd29ya2VyLy0vamVzdC13b3JrZXItMjcuMy4xLnRneiMw ZGVmN2ZlYWU1YjgwNDJiZTM4NDc5Nzk5YWViN2I1ZmFjYWMyNGIyIgorICBpbnRlZ3JpdHkgc2hh NTEyLWtzM1dDenNpWmFPUEpsL29Nc0RqYWYwVFJpU3Y3Y3ROZ3MwRnFScjJuQVJzb3Z6NkFXV3k0 b0xFbHdjcXVHU3o2OTJEemdaUXJDTFNjUE5zNVlsQzRnPT0KICAgZGVwZW5kZW5jaWVzOgogICAg ICJAdHlwZXMvbm9kZSIgIioiCiAgICAgbWVyZ2Utc3RyZWFtICJeMi4wLjAiCi0gICAgc3VwcG9y dHMtY29sb3IgIl43LjAuMCIKKyAgICBzdXBwb3J0cy1jb2xvciAiXjguMC4wIgogCiBqbWVzcGF0 aEBeMC4xNS4wOgogICB2ZXJzaW9uICIwLjE1LjAiCkBAIC03MDExLDcgKzY2ODYsNyBAQCBqc29u ZWRpdG9yQF45LjUuNDoKIGpzb25maWxlQF42LjAuMToKICAgdmVyc2lvbiAiNi4xLjAiCiAgIHJl c29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL2pzb25maWxlLy0vanNvbmZpbGUt Ni4xLjAudGd6I2JjNTViMjYzNDc5M2M2NzllYzY0MDMwOTRlYjEzNjk4YTZlYzBhYWUiCi0gIGlu dGVncml0eSAic2hhMS12Rld5WTBlVHhubnNaQU1KVHJFMm1LYnNDcTQ9IHNoYTUxMi01ZGduZFdP cmlZU201Y25ZYUpOaGFsTE5ES09xRnd5REIvcnIxRTlac0djaUd2S1BzOFIyeFlHQ2FjdWYzejZL MVlLRHoxODJmZCtmWTNjbjNwTXFYUT09IgorICBpbnRlZ3JpdHkgc2hhNTEyLTVkZ25kV09yaVlT bTVjbllhSk5oYWxMTkRLT3FGd3lEQi9ycjFFOVpzR2NpR3ZLUHM4UjJ4WUdDYWN1ZjN6NksxWUtE ejE4MmZkK2ZZM2NuM3BNcVhRPT0KICAgZGVwZW5kZW5jaWVzOgogICAgIHVuaXZlcnNhbGlmeSAi XjIuMC4wIgogICBvcHRpb25hbERlcGVuZGVuY2llczoKQEAgLTcwMjgsODIgKzY3MDMsODEgQEAg anNvbnJlcGFpckBeMi4yLjE6CiAgIGludGVncml0eSBzaGE1MTItbzlKZThUY2VJTG84NzJ1UUM5 ZklCSm05NTdqMUlvN3o4Q2ExaVdJcVk2UzVTNjVIR0U5WE43WEVFdzcrdFV2aUI5VnE0c3lnVjg5 TVZUeGwrcmhaeWc9PQogCiBqc3MtcGx1Z2luLWNhbWVsLWNhc2VAXjEwLjUuMToKLSAgdmVyc2lv biAiMTAuNS4xIgotICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9qc3Mt cGx1Z2luLWNhbWVsLWNhc2UvLS9qc3MtcGx1Z2luLWNhbWVsLWNhc2UtMTAuNS4xLnRneiM0Mjdi MjRhOTk1MWI0YzJlYWE3ZTNkNTI2N2FjZDJlMDBiMDkzNGY5IgotICBpbnRlZ3JpdHkgc2hhNTEy LTkrb3ltQTd3UHRzd20renhWdGkxcWlvd0M1cTdiUmRDSk5PUnRuczJKVWovUUhwMlFQWFl3U05S RDgrRDJDeTMvQ0VNdGRKemxObnQ1YVhtcFM2TkFnPT0KKyAgdmVyc2lvbiAiMTAuOC4yIgorICBy ZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9qc3MtcGx1Z2luLWNhbWVsLWNh c2UvLS9qc3MtcGx1Z2luLWNhbWVsLWNhc2UtMTAuOC4yLnRneiM4ZDdmOTE1YzgxMTVhZmFmZjhj YmRlMDhmYWY2MTBlYzk4OTJmYmE2IgorICBpbnRlZ3JpdHkgc2hhNTEyLTJJTnl4UisxVWROdUtm NHY5SXQzdE5mUHZmN0lQcnRraXd6b2ZlS3VNZDVENTgvZHhESlZVUVlSVmcvbjQ2MHJUbEhVZnNF UXg0M2hEcmN4aTlkU1BBPT0KICAgZGVwZW5kZW5jaWVzOgogICAgICJAYmFiZWwvcnVudGltZSIg Il43LjMuMSIKICAgICBoeXBoZW5hdGUtc3R5bGUtbmFtZSAiXjEuMC4zIgotICAgIGpzcyAiMTAu NS4xIgorICAgIGpzcyAiMTAuOC4yIgogCiBqc3MtcGx1Z2luLWRlZmF1bHQtdW5pdEBeMTAuNS4x OgotICB2ZXJzaW9uICIxMC41LjEiCi0gIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5w a2cuY29tL2pzcy1wbHVnaW4tZGVmYXVsdC11bml0Ly0vanNzLXBsdWdpbi1kZWZhdWx0LXVuaXQt MTAuNS4xLnRneiMyYmUzODVkNzFkNTBhZWUyZWU4MWMyYTlhYzcwZTAwNTkyZWQ4NjFiIgotICBp bnRlZ3JpdHkgc2hhNTEyLUQ0OGhKQmM5VGozUHVzdmxpbGxIVzhGejB5L1FxQTdNTm1UWURRYVNC LzdtVHJDWmp0N0FWUlJPRXhvT0hFdGQycUlZS09ZSlczSmMyYWdudnNYUmxRPT0KKyAgdmVyc2lv biAiMTAuOC4yIgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9qc3Mt cGx1Z2luLWRlZmF1bHQtdW5pdC8tL2pzcy1wbHVnaW4tZGVmYXVsdC11bml0LTEwLjguMi50Z3oj YzY2ZjEyZTAyZTA4MTVkOTExYjg1YzAyYzJhOTc5ZWU3YjRjZTY5YSIKKyAgaW50ZWdyaXR5IHNo YTUxMi1VWjdjd1Q5TkZZU0crU0V5N25vUlU1MHM0emlmdWxGZGprVU5LRSt1Nm1XN3ZGUDk2MCtS Z2xXalRnTWZoNzlHNk9FTlptYVluakhWL2djS1Y0blN4Zz09CiAgIGRlcGVuZGVuY2llczoKICAg ICAiQGJhYmVsL3J1bnRpbWUiICJeNy4zLjEiCi0gICAganNzICIxMC41LjEiCisgICAganNzICIx MC44LjIiCiAKIGpzcy1wbHVnaW4tZ2xvYmFsQF4xMC41LjE6Ci0gIHZlcnNpb24gIjEwLjUuMSIK LSAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vanNzLXBsdWdpbi1nbG9i YWwvLS9qc3MtcGx1Z2luLWdsb2JhbC0xMC41LjEudGd6IzBlMTc5M2RlYTg2YzI5ODM2MGE3ZTIw MDQ3MjEzNTE2NTNjN2U3NjQiCi0gIGludGVncml0eSBzaGE1MTItalg0WHBOZ29hQjh5UFd3L2dB MWFQWEpFb1gwTE5wdnNST1B2eGxuWWUrU0UwSk9odXZGN21BNmRDa2dwWEJ4ZlRXS0pzbm83Y0RT Q2d6SFRvY1JqQ1E9PQorICB2ZXJzaW9uICIxMC44LjIiCisgIHJlc29sdmVkICJodHRwczovL3Jl Z2lzdHJ5Lnlhcm5wa2cuY29tL2pzcy1wbHVnaW4tZ2xvYmFsLy0vanNzLXBsdWdpbi1nbG9iYWwt MTAuOC4yLnRneiMxYTM1NjMyYTY5M2NmNTAxMTNiY2M1ZmZlNmI1MTk2OWRmNzljNGVjIgorICBp bnRlZ3JpdHkgc2hhNTEyLVVhWU1TUHNZWjdzL0VDR29qNEtvSEMyandRZDVpUTdLK0ZGR25DQUlM ZFFydjdoUG12TTJZZGc0NVRoVC9zSDQ2RHFrdENSVjJTcWpSdXhlQkg4blJBPT0KICAgZGVwZW5k ZW5jaWVzOgogICAgICJAYmFiZWwvcnVudGltZSIgIl43LjMuMSIKLSAgICBqc3MgIjEwLjUuMSIK KyAgICBqc3MgIjEwLjguMiIKIAoganNzLXBsdWdpbi1uZXN0ZWRAXjEwLjUuMToKLSAgdmVyc2lv biAiMTAuNS4xIgotICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9qc3Mt cGx1Z2luLW5lc3RlZC8tL2pzcy1wbHVnaW4tbmVzdGVkLTEwLjUuMS50Z3ojODc1M2E4MGFkMzEx OTBmYjZhYzZmZGQzOWY1NzM1MmRjZjEyOTViYiIKLSAgaW50ZWdyaXR5IHNoYTUxMi14WGtXS09D bGp1d0hOalNZY1hyQ3hCbmpkOGVKcDkwS1ZGVzFybGh2S0tSWG5FS1ZENnZkS1hZZXprMmE4OXVL QUhja1N2QnZCb0RHc2ZacmxkV3FxUT09CisgIHZlcnNpb24gIjEwLjguMiIKKyAgcmVzb2x2ZWQg Imh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vanNzLXBsdWdpbi1uZXN0ZWQvLS9qc3MtcGx1 Z2luLW5lc3RlZC0xMC44LjIudGd6Izc5ZjNjN2Y3NWVhNmEzNmFlNzJmZTUyZTc3NzAzNWJiMjRk MjMwYzciCisgIGludGVncml0eSBzaGE1MTItYWNSdnVQSk9iOTMwZnVZbWhrSmFhOTk0RUFEcHQ4 VHhJNjNJeWc5NkM4Rko5VDJ4UnlVNVQ2UjFJWUtSd1VpcVpvKzJTcjdmZEd6UlRERDR1QlphTUE9 PQogICBkZXBlbmRlbmNpZXM6CiAgICAgIkBiYWJlbC9ydW50aW1lIiAiXjcuMy4xIgotICAgIGpz cyAiMTAuNS4xIgorICAgIGpzcyAiMTAuOC4yIgogICAgIHRpbnktd2FybmluZyAiXjEuMC4yIgog CiBqc3MtcGx1Z2luLXByb3BzLXNvcnRAXjEwLjUuMToKLSAgdmVyc2lvbiAiMTAuNS4xIgotICBy ZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9qc3MtcGx1Z2luLXByb3BzLXNv cnQvLS9qc3MtcGx1Z2luLXByb3BzLXNvcnQtMTAuNS4xLnRneiNhYjFjMTY3ZmQyZDQ1MDZmYjZh MWMxZDY2YzVmM2VmNTQ1ZmYxY2Q4IgotICBpbnRlZ3JpdHkgc2hhNTEyLXQrMnZjZXZObU1nNFUv akF1eGxmakt0NDZEL2pIekNQRWpzakxSai9KNTZDdlA3SXkwM3Njc1VQNThJdzhtVm5hVjM2eEFV WkgyQ21BbUFkbzg5OTRnPT0KKyAgdmVyc2lvbiAiMTAuOC4yIgorICByZXNvbHZlZCAiaHR0cHM6 Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9qc3MtcGx1Z2luLXByb3BzLXNvcnQvLS9qc3MtcGx1Z2lu LXByb3BzLXNvcnQtMTAuOC4yLnRneiNlMjVhNzQ3MTg2ODY1MmMzOTQ1NjJiNmRjNTQzM2RjYWVh N2RmZjZmIgorICBpbnRlZ3JpdHkgc2hhNTEyLXdxZGNqYXlLUldCWm5OcExVclh2c1dxaCs1SjVZ VG9BUSs4SE5CTncwa1p4VnZDRHd6aEsyTng2QUtzN3ArNS9NYkFoMlBMZ05XNVltL3lzYlZBdXFR PT0KICAgZGVwZW5kZW5jaWVzOgogICAgICJAYmFiZWwvcnVudGltZSIgIl43LjMuMSIKLSAgICBq c3MgIjEwLjUuMSIKKyAgICBqc3MgIjEwLjguMiIKIAoganNzLXBsdWdpbi1ydWxlLXZhbHVlLWZ1 bmN0aW9uQF4xMC41LjE6Ci0gIHZlcnNpb24gIjEwLjUuMSIKLSAgcmVzb2x2ZWQgImh0dHBzOi8v cmVnaXN0cnkueWFybnBrZy5jb20vanNzLXBsdWdpbi1ydWxlLXZhbHVlLWZ1bmN0aW9uLy0vanNz LXBsdWdpbi1ydWxlLXZhbHVlLWZ1bmN0aW9uLTEwLjUuMS50Z3ojMzdmNDAzMDUyM2ZiMzAzMmM4 ODAxZmFiNDhjMzZjMzczMDA0ZGU3ZSIKLSAgaW50ZWdyaXR5IHNoYTUxMi0zZ2pyU3hzeTRrYS9s R1FzVERZOG9ZWXRrdDJlc0J2UWljZUdCQjRQeWtYeEhvR1J6MTR0YkNLMzFaYzZESEVuSWVxc2pN VUdicSt3RWx5NVVWaVN0UT09CisgIHZlcnNpb24gIjEwLjguMiIKKyAgcmVzb2x2ZWQgImh0dHBz Oi8vcmVnaXN0cnkueWFybnBrZy5jb20vanNzLXBsdWdpbi1ydWxlLXZhbHVlLWZ1bmN0aW9uLy0v anNzLXBsdWdpbi1ydWxlLXZhbHVlLWZ1bmN0aW9uLTEwLjguMi50Z3ojNTUzNTRiNTVmMWIyOTY4 YTE1OTc2NzI5OTY4Zjc2N2YwMmQ2NDA0OSIKKyAgaW50ZWdyaXR5IHNoYTUxMi1iVzBFS0FzKzBI WHBiNkJLSmhybjk0SURkaVdiMENuU2x1VGtoMHJHRWd5elkvbm1EMXVWL1dmNktHbGVzR09aOWdt SnpReSs5RkZkeElVSUQxYzlVZz09CiAgIGRlcGVuZGVuY2llczoKICAgICAiQGJhYmVsL3J1bnRp bWUiICJeNy4zLjEiCi0gICAganNzICIxMC41LjEiCisgICAganNzICIxMC44LjIiCiAgICAgdGlu eS13YXJuaW5nICJeMS4wLjIiCiAKIGpzcy1wbHVnaW4tdmVuZG9yLXByZWZpeGVyQF4xMC41LjE6 Ci0gIHZlcnNpb24gIjEwLjUuMSIKLSAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBr Zy5jb20vanNzLXBsdWdpbi12ZW5kb3ItcHJlZml4ZXIvLS9qc3MtcGx1Z2luLXZlbmRvci1wcmVm aXhlci0xMC41LjEudGd6IzQ1YTE4M2EzYTBlYjA5N2JkZmFiMDk4NmI4NThkOTk5MjBjMGJiZDgi Ci0gIGludGVncml0eSBzaGE1MTItY0xrSDZSYVBaV0hhMVRxU2ZkMnZzek5OZ3hUMVcwb21sU2pB ZDZoQ0ZIcDNLSW9jU3JXMjFnYUhqbE1VMjZKcFRId2tjK3RKVENRT21FL08xQTRGS1E9PQorICB2 ZXJzaW9uICIxMC44LjIiCisgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29t L2pzcy1wbHVnaW4tdmVuZG9yLXByZWZpeGVyLy0vanNzLXBsdWdpbi12ZW5kb3ItcHJlZml4ZXIt MTAuOC4yLnRneiNlYmI0YTQ4MjY0MmYzNDA5MWU0NTQ5MDFlMjExNzY0NDFkZDVmNDc1IgorICBp bnRlZ3JpdHkgc2hhNTEyLURlR3YxOFFzU2lZTFNWSUVCMitsMGFmNk9Ub1VlMEpCK3RycHpVeHlx RDJRUkMvNUF6ekRyQ3JZZmZPNUFIWjgxUWJmZll2U04vcGtmWmFUV3BSWGxnPT0KICAgZGVwZW5k ZW5jaWVzOgogICAgICJAYmFiZWwvcnVudGltZSIgIl43LjMuMSIKICAgICBjc3MtdmVuZG9yICJe Mi4wLjgiCi0gICAganNzICIxMC41LjEiCisgICAganNzICIxMC44LjIiCiAKLWpzc0AxMC41LjEs IGpzc0BeMTAuNS4xOgotICB2ZXJzaW9uICIxMC41LjEiCi0gIHJlc29sdmVkICJodHRwczovL3Jl Z2lzdHJ5Lnlhcm5wa2cuY29tL2pzcy8tL2pzcy0xMC41LjEudGd6IzkzZTZiMjQyOGM4NDA0MDgz NzJkOGI1NDhjM2YzYzYwZmE2MDFjNDAiCi0gIGludGVncml0eSBzaGE1MTItaGJiTzMrRk9UcVZk ZDdaVW9UaXdwSHpLWElvNXZHcE1OYnVYSDFhMHd1YlJTV0xXU0J2d3ZhcTRDaUhIL1U0MkNtak9u cDZsVk5Ocy9sK1o3WmREbWc9PQoranNzQDEwLjguMiwganNzQF4xMC41LjE6CisgIHZlcnNpb24g IjEwLjguMiIKKyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vanNzLy0v anNzLTEwLjguMi50Z3ojNGIyYTMwYjA5NGI5MjQ2MjlhNjQ5MjgyMzYwMTdhNTJjN2M5NzUwNSIK KyAgaW50ZWdyaXR5IHNoYTUxMi1Ga29VTnhJMzI5Q0tROU9RQzhMNzJNQkY5S1BmNXE4bUl1cEFK NXR3VTdHN1hSRVc3YWhiKzdqRmZyalo0aXkxcXZoeDFId0lXVUl2a1pCRG5La0VkUT09CiAgIGRl cGVuZGVuY2llczoKICAgICAiQGJhYmVsL3J1bnRpbWUiICJeNy4zLjEiCiAgICAgY3NzdHlwZSAi XjMuMC4yIgotICAgIGluZGVmaW5pdGUtb2JzZXJ2YWJsZSAiXjIuMC4xIgogICAgIGlzLWluLWJy b3dzZXIgIl4xLjEuMyIKICAgICB0aW55LXdhcm5pbmcgIl4xLjAuMiIKIAogImpzeC1hc3QtdXRp bHNAXjIuNC4xIHx8IF4zLjAuMCI6Ci0gIHZlcnNpb24gIjMuMi4wIgotICByZXNvbHZlZCAiaHR0 cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9qc3gtYXN0LXV0aWxzLy0vanN4LWFzdC11dGlscy0z LjIuMC50Z3ojNDExMDhkMmNlYzQwOGMzNDUzYzFiYmU4YTRhYWU5ZTFlMmJkOGY4MiIKLSAgaW50 ZWdyaXR5IHNoYTUxMi1FSXNtdDNPM2xqc1U2c290L0o0RTF6RFJ4ZkJOcmhqeWYvT0tqbHlkd2dF aW1RdXpubE00V3Y3VSt1ZU9OSk15RW4xV1JFMEs4ZGhpM2RWQVhZVDI0UT09CisgIHZlcnNpb24g IjMuMi4xIgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9qc3gtYXN0 LXV0aWxzLy0vanN4LWFzdC11dGlscy0zLjIuMS50Z3ojNzIwYjk3YmZlN2Q5MDFiOTI3ZDg3YzM3 NzM2MzdhZThlYTQ4NzgxYiIKKyAgaW50ZWdyaXR5IHNoYTUxMi11UDV2dTh4ZnkyRjlBNkxHQzIy S083ZTIvdkdUUzFNaFArMThmKytaTmxmME9oYXhiYzluSUV3SEFzZWpsSkt5emZaelU1VUloZTVJ dFlraXRjWm5aQT09CiAgIGRlcGVuZGVuY2llczoKLSAgICBhcnJheS1pbmNsdWRlcyAiXjMuMS4y IgorICAgIGFycmF5LWluY2x1ZGVzICJeMy4xLjMiCiAgICAgb2JqZWN0LmFzc2lnbiAiXjQuMS4y IgogCiBqdW5rQF4zLjEuMDoKQEAgLTcxNDgsOSArNjgyMiw5IEBAIGthcm1hLWNvdmVyYWdlQF4y LjAuMzoKICAgICBtaW5pbWF0Y2ggIl4zLjAuNCIKIAoga2FybWEtamFzbWluZS1odG1sLXJlcG9y dGVyQF4xLjQuMDoKLSAgdmVyc2lvbiAiMS42LjAiCi0gIHJlc29sdmVkICJodHRwczovL3JlZ2lz dHJ5Lnlhcm5wa2cuY29tL2thcm1hLWphc21pbmUtaHRtbC1yZXBvcnRlci8tL2thcm1hLWphc21p bmUtaHRtbC1yZXBvcnRlci0xLjYuMC50Z3ojNTg2ZTE3MDI1YTFiNDEyOGU5ZmJhNTVkNWYxZTg5 MjFiZmMzYmMxZSIKLSAgaW50ZWdyaXR5IHNoYTUxMi1FTE85eWYwY05xcHphTkxzZkZnWGQvd3ha VllrRTIrRUNVd2hNSFVENFBaMTdrY3NQc1lzVnlqcXVpUnF5TW4yamtkMnNIdDBJZU15QXlxMU1D MjNGdz09CisgIHZlcnNpb24gIjEuNy4wIgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55 YXJucGtnLmNvbS9rYXJtYS1qYXNtaW5lLWh0bWwtcmVwb3J0ZXIvLS9rYXJtYS1qYXNtaW5lLWh0 bWwtcmVwb3J0ZXItMS43LjAudGd6IzUyYzQ4OWE3NGQ3NjA5MzRhMTA4OWJmYTVlYTRhOGZjYjg0 Y2MyOGIiCisgIGludGVncml0eSBzaGE1MTItcHp1bTFUTDdqOTBEVEU4NmVGdDQ4L3MxMmhxd1F1 aUQrZTVhWHgyRGM5d0RFbjJMZkdxNlJvQXhFWlpqRmlOMFJEU0NPbm9zRUtSWld4YlEraU1wUVE9 PQogCiBrYXJtYS1qYXNtaW5lQF40LjAuMToKICAgdmVyc2lvbiAiNC4wLjEiCkBAIC03MjMwLDkg KzY5MDQsOSBAQCBraW5kLW9mQF42LjAuMjoKICAgaW50ZWdyaXR5IHNoYTUxMi1kY1MxdWwrOXRt ZUQ5NVQreDI4L2VoTGdkOW1FTmEzTHN2RFR0em0zdnlCRU83UlBwdHZBRCt0NDRXVlhhVWpUQlJj cnBGZUZsQzhXQ3J1VVI0NTZodz09CiAKIGtsb25hQF4yLjAuNDoKLSAgdmVyc2lvbiAiMi4wLjQi Ci0gIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL2tsb25hLy0va2xvbmEt Mi4wLjQudGd6IzdiYjFlM2FmZmIwY2I4NjI0NTQ3ZWY3ZThmNjcwOGVhMmUzOWRmYzAiCi0gIGlu dGVncml0eSBzaGE1MTItWlJibnZkZy9OeHF6QzdMOVV5cXpmNHBzaTFPTTRDdWMrc0pBa1FQak82 WGtRSUpUTmJmSzJSc21idzhmeDFwMm1rWmRwMkZaWW8yK0x3WFlZL3V3SUE9PQorICB2ZXJzaW9u ICIyLjAuNSIKKyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20va2xvbmEv LS9rbG9uYS0yLjAuNS50Z3ojZDE2NjU3NGQ5MDA3NjM5NWQ5OTYzYWE3YTkyOGZhYmI4ZDc2YWZi YyIKKyAgaW50ZWdyaXR5IHNoYTUxMi1wSmlCcGlYTWJ0N2RrelhlOEdoai91NEZmWE9PYTk4ZlBX K2JpaE9KNFNqbm9pandlSnJOVGhKZmQzaWZYcFhoUkVqcG9GMm1aVkgxR2ZTOUxWM2tIUT09CiAK IGxhYmVsZWQtc3RyZWFtLXNwbGljZXJAXjIuMC4wOgogICB2ZXJzaW9uICIyLjAuMiIKQEAgLTcy NTUsNiArNjkyOSwxMSBAQCBsZXZuQF4wLjQuMToKICAgICBwcmVsdWRlLWxzICJeMS4yLjEiCiAg ICAgdHlwZS1jaGVjayAifjAuNC4wIgogCitsaWxjb25maWdAXjIuMC4zOgorICB2ZXJzaW9uICIy LjAuMyIKKyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vbGlsY29uZmln Ly0vbGlsY29uZmlnLTIuMC4zLnRneiM2OGYzMDA1ZTkyMWRhZmJkMmEyYWZiNDgzNzk5ODZhYTZk MjU3OWZkIgorICBpbnRlZ3JpdHkgc2hhNTEyLUVIS3FyLytadmRLQ2lmcE5ySkNLeEJUZ2s1WHVw WkEzeS9hQ1BZOW14ZmdCem1naDkzTXQvV3FqalEzOG9NeFh1dkRva2FLaU0zbEFndlNIMnNqdEhn PT0KKwogbGluZXMtYW5kLWNvbHVtbnNAXjEuMS42OgogICB2ZXJzaW9uICIxLjEuNiIKICAgcmVz b2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vbGluZXMtYW5kLWNvbHVtbnMvLS9s aW5lcy1hbmQtY29sdW1ucy0xLjEuNi50Z3ojMWMwMGM3NDNiNDMzY2QwYTRlODA3NThmN2I2NGE1 NzQ0MGQ5ZmYwMCIKQEAgLTcyNzUsOSArNjk1NCw5IEBAIGxvYWRlci11dGlsc0BeMS4wLjMsIGxv YWRlci11dGlsc0BeMS4xLjAsIGxvYWRlci11dGlsc0BeMS40LjA6CiAgICAganNvbjUgIl4xLjAu MSIKIAogbG9hZGVyLXV0aWxzQF4yLjAuMDoKLSAgdmVyc2lvbiAiMi4wLjAiCi0gIHJlc29sdmVk ICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL2xvYWRlci11dGlscy8tL2xvYWRlci11dGls cy0yLjAuMC50Z3ojZTRjYWNlNWI4MTZkNDI1YTE2NmI1ZjA5N2UxMGNkMTJiMzYwNjRiMCIKLSAg aW50ZWdyaXR5IHNoYTUxMi1yUDRGMGgyUmFXU3ZQRWtEN0JMREZRbnZTZituSyt3cjNFU1VqTlR5 QUdvYnFyaWptVzkyemMrU082ZDRwNEIxd2g3K0IvSmcxbWtRZTVOWVVFSHRIUT09CisgIHZlcnNp b24gIjIuMC4yIgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9sb2Fk ZXItdXRpbHMvLS9sb2FkZXItdXRpbHMtMi4wLjIudGd6I2Q2ZTNiNGZiODE4NzA3MjFhZTRlMDg2 OGFiMTFkZDYzODM2OGMxMjkiCisgIGludGVncml0eSBzaGE1MTItVE01N1ZlSHB0djU2OWQvR0to NlRBWWR6S2Jsd0ROaXVtT2RrRm5lampEMFh3VEg4N0s5MHczTzdBaUpScWRRb1h5Z3ZpMVZRVEpU TEdoSmw3V3FBN0E9PQogICBkZXBlbmRlbmNpZXM6CiAgICAgYmlnLmpzICJeNS4yLjIiCiAgICAg ZW1vamlzLWxpc3QgIl4zLjAuMCIKQEAgLTczMDksMTEgKzY5ODgsNiBAQCBsb2Rhc2guX2dldG5h dGl2ZUBeMy4wLjA6CiAgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL2xv ZGFzaC5fZ2V0bmF0aXZlLy0vbG9kYXNoLl9nZXRuYXRpdmUtMy45LjEudGd6IzU3MGJjN2RlZGU0 NmQ2MWNkY2RlNjg3ZDY1ZDNlZWNiYWEzYWFmZjUiCiAgIGludGVncml0eSBzaGExLVZ3dkgzdDVH MWh6YzNtaDlaZFB1eTZvNnIvVT0KIAotbG9kYXNoLmNsb25lZGVlcEBeNC41LjA6Ci0gIHZlcnNp b24gIjQuNS4wIgotICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9sb2Rh c2guY2xvbmVkZWVwLy0vbG9kYXNoLmNsb25lZGVlcC00LjUuMC50Z3ojZTIzZjNmOWM0ZjhmYmRk ZTg3MjUyOWMxMDcxODU3YTA4NmU1Y2NlZiIKLSAgaW50ZWdyaXR5IHNoYTEtNGo4L25FK1B2ZDZI SlNuQkJ4aFhvSWJsek84PQotCiBsb2Rhc2guZGVib3VuY2VAXjQuMC44OgogICB2ZXJzaW9uICI0 LjAuOCIKICAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vbG9kYXNoLmRl Ym91bmNlLy0vbG9kYXNoLmRlYm91bmNlLTQuMC44LnRneiM4MmQ3OWJmZjMwYTY3YzQwMDVmZmQ1 ZTI1MTUzMDBhZDljYTRkN2FmIgpAQCAtNzM3Niw2ICs3MDUwLDExIEBAIGxvZGFzaC5tZW1vaXpl QH4zLjAuMzoKICAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vbG9kYXNo Lm1lbW9pemUvLS9sb2Rhc2gubWVtb2l6ZS0zLjAuNC50Z3ojMmRjYmQyYzI4N2NiYzBhNTVjYzQy MzI4YmQwYzczNjE1MGQ1M2UzZiIKICAgaW50ZWdyaXR5IHNoYTEtTGN2U3dvZkx3S1ZjeENNb3ZR eHpZVkRWUGo4PQogCitsb2Rhc2gubWVyZ2VAXjQuNi4yOgorICB2ZXJzaW9uICI0LjYuMiIKKyAg cmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vbG9kYXNoLm1lcmdlLy0vbG9k YXNoLm1lcmdlLTQuNi4yLnRneiM1NThhYTUzYjQzYjY2MWUxOTI1YTBhZmRmYTM2YTlhMTA4NWZl NTdhIgorICBpbnRlZ3JpdHkgc2hhNTEyLTBLcGpxWFJWdnJZeUNzWDFzd1IvWFRLMHZhNlZRa1FN Nk1ObzdQcVc3N0J5akFob0FSQThFZnJQMU40K0tsS2o4WVMwWlVDdFJUL1lVdWh5WUR1aklRPT0K KwogbG9kYXNoLnRydW5jYXRlQF40LjQuMjoKICAgdmVyc2lvbiAiNC40LjIiCiAgIHJlc29sdmVk ICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL2xvZGFzaC50cnVuY2F0ZS8tL2xvZGFzaC50 cnVuY2F0ZS00LjQuMi50Z3ojNWEzNTBkYTBiMTExM2I4MzdlY2ZmZmQ1ODEyY2JlNThkNmVhZTE5 MyIKQEAgLTczODYsNyArNzA2NSw3IEBAIGxvZGFzaC51bmlxQF40LjUuMDoKICAgcmVzb2x2ZWQg Imh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vbG9kYXNoLnVuaXEvLS9sb2Rhc2gudW5pcS00 LjUuMC50Z3ojZDAyMjUzNzNhZWI2NTJhZGMxYmM4MmU0OTQ1MzM5YTg0Mjc1NDc3MyIKICAgaW50 ZWdyaXR5IHNoYTEtMENKVGM2NjJVcTNCdklMa2xGTTVxRUoxUjNNPQogCi1sb2Rhc2hANC4qLCBs b2Rhc2hAXjQuMTQuMSwgbG9kYXNoQF40LjE3LjEwLCBsb2Rhc2hAXjQuMTcuMTEsIGxvZGFzaEBe NC4xNy4xNCwgbG9kYXNoQF40LjE3LjE1LCBsb2Rhc2hAXjQuMTcuMTksIGxvZGFzaEBeNC4xNy4y MCwgbG9kYXNoQF40LjE3LjIxLCBsb2Rhc2hAXjQuMTcuNDoKK2xvZGFzaEA0LCBsb2Rhc2hANC4q LCBsb2Rhc2hAXjQuMTQuMSwgbG9kYXNoQF40LjE3LjEwLCBsb2Rhc2hAXjQuMTcuMTEsIGxvZGFz aEBeNC4xNy4xNCwgbG9kYXNoQF40LjE3LjE1LCBsb2Rhc2hAXjQuMTcuMTksIGxvZGFzaEBeNC4x Ny4yMCwgbG9kYXNoQF40LjE3LjIxLCBsb2Rhc2hAXjQuMTcuNDoKICAgdmVyc2lvbiAiNC4xNy4y MSIKICAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vbG9kYXNoLy0vbG9k YXNoLTQuMTcuMjEudGd6IzY3OTU5MWM1NjRjM2JmZmFhZTg0NTRjZjBiM2RmMzcwYzNkNjkxMWMi CiAgIGludGVncml0eSBzaGE1MTItdjJrREVlNTdsZWNUdWxhREl1TlRQeTNSeTRnTEdKNloxTzN2 RTFrcmdYWk5yc1ErTEZUR0hWeFZqY1hQczE3TGhiWlZHZWRBSnY4WFoxdHZqNUZ2U2c9PQpAQCAt NzQ3Niw5ICs3MTU1LDkgQEAgbWFrZS1mZXRjaC1oYXBwZW5AXjkuMS4wOgogICAgIHNzcmkgIl44 LjAuMCIKIAogbWFya2VkQF4yLjAuMDoKLSAgdmVyc2lvbiAiMi4wLjEiCi0gIHJlc29sdmVkICJo dHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL21hcmtlZC8tL21hcmtlZC0yLjAuMS50Z3ojNWU3 ZWQ3MDA5YmZhNWM5NTE4MmU0ZWI2OTZmODVlOTQ4Y2VmY2VlMyIKLSAgaW50ZWdyaXR5IHNoYTUx Mi01Ky9mS2dNdjJoQVJtTVc3RE9weWtyMmlMaGwwTmdqeUVMazV5bjkyaUU3ejhTZTFJUzluM1Vz Rm04NmhGWElrdk1CbVZ4a2k4K2NrY3BqQmV5by9odz09CisgIHZlcnNpb24gIjIuMS4zIgorICBy ZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9tYXJrZWQvLS9tYXJrZWQtMi4x LjMudGd6I2JkMDE3Y2VmNjQzMTcyNGZkNGIyN2UwNjU3ZjVjZWIxNGJmZjM3NTMiCisgIGludGVn cml0eSBzaGE1MTItL1ErN01HemFFVHFpZk9NV1lFQTdIVk1hWmI0WGJjUmZhT3pjU3NIWkVpdGg4 M0tHbHZhU0czM3UwU0t1ODlNajVoK1Q4VjJoTSs4TzQ1UWM1WFRnd0E9PQogCiBtYXRjaGVzLXNl bGVjdG9yQDAuMC4xOgogICB2ZXJzaW9uICIwLjAuMSIKQEAgLTc1MjksNyArNzIwOCw3IEBAIG1p Y3JvYnVmZmVyQF4xLjAuMDoKICAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5j b20vbWljcm9idWZmZXIvLS9taWNyb2J1ZmZlci0xLjAuMC50Z3ojOGIzODMyZWQ0MGM4N2Q1MWY0 N2JiMjM0OTEzYTY5OGE3NTZkMTlkMiIKICAgaW50ZWdyaXR5IHNoYTEtaXpneTdVRElmVkgwZTdJ MGtUcHBpblZ0R2RJPQogCi1taWNyb21hdGNoQF40LjAuMjoKK21pY3JvbWF0Y2hAXjQuMC40Ogog ICB2ZXJzaW9uICI0LjAuNCIKICAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5j b20vbWljcm9tYXRjaC8tL21pY3JvbWF0Y2gtNC4wLjQudGd6Izg5NmQ1MTlkZmU5ZGIyNWZjZTk0 Y2ViN2E1MDA5MTliZjg4MWViZjkiCiAgIGludGVncml0eSBzaGE1MTItcFJtencvWFVjd1hHcEQ5 YUk5cS8wWE93TE55Z2pFVEo4eTBhbzB3ZHFwcnJ6RGE0WW54TGN6N2ZRUlpyOHZvaDhWMTBrR2hB QmJOY0hWazV3SGdXd2c9PQpAQCAtNzU0NSwxNyArNzIyNCwxNyBAQCBtaWxsZXItcmFiaW5AXjQu MC4wOgogICAgIGJuLmpzICJeNC4wLjAiCiAgICAgYnJvcmFuZCAiXjEuMC4xIgogCi1taW1lLWRi QDEuNDYuMCwgbWltZS1kYkBeMS4yOC4wOgotICB2ZXJzaW9uICIxLjQ2LjAiCi0gIHJlc29sdmVk ICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL21pbWUtZGIvLS9taW1lLWRiLTEuNDYuMC50 Z3ojNjI2Nzc0OGE3Zjc5OTU5NGRlM2NiYzhjZGU5MWRlZjM0OTY2MWNlZSIKLSAgaW50ZWdyaXR5 IHNoYTUxMi1zdlhhUDhVUVJaNUs3b3IrWm1mTmhnMnhYM3lLRE1VenFhZHNTcWk0TkNIL0tvbWNI NzVNQU1ZQUdWbHZYbjQrYi94T1BoUzNJMnVIS1JVenZqWTdCUT09CittaW1lLWRiQDEuNTAuMCwg bWltZS1kYkBeMS4yOC4wOgorICB2ZXJzaW9uICIxLjUwLjAiCisgIHJlc29sdmVkICJodHRwczov L3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL21pbWUtZGIvLS9taW1lLWRiLTEuNTAuMC50Z3ojYWJkNGFj OTRlOThkM2MwZTE4NTAxNmM2N2FiNDVkNWZkZTQwYzExZiIKKyAgaW50ZWdyaXR5IHNoYTUxMi05 dE1aQ0RsWUhxZUVSWEVITzlmL2hLZk5YaHJlNWRLMmVFL2tySXZValpiUzJLUGNxR0RmTlNoSVdT MXVXOVhPVEtRS3FLNnFiZU9jaTE4cmJmVzc3QT09CiAKIG1pbWUtdHlwZXNAXjIuMS4yNywgbWlt ZS10eXBlc0B+Mi4xLjI0OgotICB2ZXJzaW9uICIyLjEuMjkiCi0gIHJlc29sdmVkICJodHRwczov L3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL21pbWUtdHlwZXMvLS9taW1lLXR5cGVzLTIuMS4yOS50Z3oj MWQ0YWI3N2RhNjRiOTFmNWY3MjQ4OWRmMjkyMzY1NjM3NTRiYjFiMiIKLSAgaW50ZWdyaXR5IHNo YTUxMi1ZL2pNdC9TNXNSOU9hcXRlSnRzbHNGWktXT0lJcU1BQ3NKU2lIZ2hsQ0F5aGY3amZWWWpL Qm1MaVg4T2dwV2VXK2ZqSjJiK0F6NjlhUEZQa1VPWTZ4UT09CisgIHZlcnNpb24gIjIuMS4zMyIK KyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vbWltZS10eXBlcy8tL21p bWUtdHlwZXMtMi4xLjMzLnRneiMxZmExMmE5MDQ0NzJmYWZkMDY4ZTQ4ZDllODQwMWY3NGQzZjcw ZWRiIgorICBpbnRlZ3JpdHkgc2hhNTEyLXBsTEVsWHA3cFJEZDBiTlpIdytuTWQ1MnZSWWpMd1Fq eWdhTmc3ZGRKMnVKdFRsbW5UQ2pXdVBLeFZ1Ni8vQWRhUnVNRTg0U3ZMVzkxc0lrQnFHVDBnPT0K ICAgZGVwZW5kZW5jaWVzOgotICAgIG1pbWUtZGIgIjEuNDYuMCIKKyAgICBtaW1lLWRiICIxLjUw LjAiCiAKIG1pbWVAXjIuMC4zLCBtaW1lQF4yLjMuMToKICAgdmVyc2lvbiAiMi41LjIiCkBAIC03 NTc4LDkgKzcyNTcsOSBAQCBtaW1pYy1yZXNwb25zZUBeMS4wLjA6CiAgIGludGVncml0eSBzaGE1 MTItajVFY3Rua0g3YW1mVi9xNUhnbW9hbDFnMlFIRkpScmFPdG14MEpwSXFreGhCaEkvbEpTbDFu TXBRNDVoVmFyd05FVE9vV0VpbW5kWjRRSzBSSHh1eFE9PQogCiBtaW5pLWNzcy1leHRyYWN0LXBs dWdpbkBeMS4zLjU6Ci0gIHZlcnNpb24gIjEuMy45IgotICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdp c3RyeS55YXJucGtnLmNvbS9taW5pLWNzcy1leHRyYWN0LXBsdWdpbi8tL21pbmktY3NzLWV4dHJh Y3QtcGx1Z2luLTEuMy45LnRneiM0N2EzMjEzMmIwZmQ5N2ExMTlhY2Q1MzBlODQyMWU4ZjZhYjE2 ZDVlIgotICBpbnRlZ3JpdHkgc2hhNTEyLUFjNHMreGhWYnFseWhYUzVKL1ZoL1FYVXozeWNYbENx b0NQcGcwdmRmaHNJQkg5ZWcvSXQvOUwxcjFYaFNDSDczN00xbHFjV25NdVdMMTN6Y3lnbjVBPT0K KyAgdmVyc2lvbiAiMS42LjIiCisgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cu Y29tL21pbmktY3NzLWV4dHJhY3QtcGx1Z2luLy0vbWluaS1jc3MtZXh0cmFjdC1wbHVnaW4tMS42 LjIudGd6IzgzMTcyYjRmZDgxMmY4ZmM0YTA5ZDZmNmQxNmY5MjRmNTM5OTBjYTgiCisgIGludGVn cml0eSBzaGE1MTItV2hEdk8zU2pHbTQwb1Y1eTI2R2pNSllqZDJVTXFyTEFHS3k1WVMyLzNRS0p5 MkY3amd5bnVIVGlyL3RnVVVPaU5RdTVzYVhIZGM4cmVvN1l1aGhUNFE9PQogICBkZXBlbmRlbmNp ZXM6CiAgICAgbG9hZGVyLXV0aWxzICJeMi4wLjAiCiAgICAgc2NoZW1hLXV0aWxzICJeMy4wLjAi CkBAIC03Njk0LDkgKzczNzMsOSBAQCBtbC1hcnJheS1taW5AXjEuMi4yOgogICAgIGlzLWFueS1h cnJheSAiXjEuMC4wIgogCiBtbC1hcnJheS1yZXNjYWxlQF4xLjMuNToKLSAgdmVyc2lvbiAiMS4z LjUiCi0gIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL21sLWFycmF5LXJl c2NhbGUvLS9tbC1hcnJheS1yZXNjYWxlLTEuMy41LnRneiNhNDFhOTg1MzVlNWIzYmNkY2RlMmYx ZWY1MzJmNDQ1M2ZlYjExMTA0IgotICBpbnRlZ3JpdHkgc2hhNTEyLWN6SytmYU43a1lyRjQ4U2dW UWVYR2t4VWpERWFzNkJBNEV6RjRqSk5oOFVFdHpwU3ZIVzNSbGxaQ0pDQ3lyQXFlRmMrWS9MaGdZ VXp1SEZwZXZNM3FBPT0KKyAgdmVyc2lvbiAiMS4zLjYiCisgIHJlc29sdmVkICJodHRwczovL3Jl Z2lzdHJ5Lnlhcm5wa2cuY29tL21sLWFycmF5LXJlc2NhbGUvLS9tbC1hcnJheS1yZXNjYWxlLTEu My42LnRneiMwNjBkMWM2MzZmYmI1Zjg3NzI2NWY0ZmNjNGUwZTE1NzUyMWQ2MTVhIgorICBpbnRl Z3JpdHkgc2hhNTEyLUx6ajQ1VDZodkhOZGh0OTI0SlFoSHpJbklLK2lsQzU1em45OHVyYVpVdkxC a09XT0pHT3p0RWtSTTB4eXpBald2VnVocHN6TEFET25vVndmQlNuajh3PT0KICAgZGVwZW5kZW5j aWVzOgogICAgIGlzLWFueS1hcnJheSAiXjEuMC4wIgogICAgIG1sLWFycmF5LW1heCAiXjEuMi4z IgpAQCAtNzc3NSwyNiArNzQ1NCwzMSBAQCBtc0AyLjAuMDoKICAgcmVzb2x2ZWQgImh0dHBzOi8v cmVnaXN0cnkueWFybnBrZy5jb20vbXMvLS9tcy0yLjAuMC50Z3ojNTYwOGFlYWRmYzAwYmU2YzI5 MDFkZjVmOTg2MTc4OGRlMGQ1OTdjOCIKICAgaW50ZWdyaXR5IHNoYTEtVmdpdXJmd0F2bXdwQWQ5 Zm1HRjRqZURWbDhnPQogCi1tc0AyLjEuMiwgbXNAXjIuMC4wOgorbXNAMi4xLjI6CiAgIHZlcnNp b24gIjIuMS4yIgogICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9tcy8t L21zLTIuMS4yLnRneiNkMDlkMWYzNTdiNDQzZjQ5MzM4MmE4ZWIzY2NkMTgzODcyYWU2MDA5Igog ICBpbnRlZ3JpdHkgc2hhNTEyLXNHa1B4K1ZqTXRtQTZNWDI3b0E0RkJGRUxGQ1paNFM0WHFlR09Y Q3Y2OHRUK2piM3ZrL1J5YUtXUDBQVEt5V3RtTFNNMGIrYWRVVEV2YnMxUEVhSDJ3PT0KIAorbXNA XjIuMC4wOgorICB2ZXJzaW9uICIyLjEuMyIKKyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnku eWFybnBrZy5jb20vbXMvLS9tcy0yLjEuMy50Z3ojNTc0YzgxMzhjZTFkMmI1ODYxZjBiNDQ1Nzlk YmFkZDYwYzY2MTViMiIKKyAgaW50ZWdyaXR5IHNoYTUxMi02Rmx6dWJUTFpHM0oyYS9OVkNBbGVF aGp6cTVveGdIeWFDVTl5WVh2Y0xzdm9WYUhKcS9zNXhYSTYvWFhQNnR6N1I5eEFPdEhuU08vdFh0 RjNXUlRsQT09CisKIG5hbkBeMi4xNC4yOgogICB2ZXJzaW9uICIyLjE1LjAiCiAgIHJlc29sdmVk ICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL25hbi8tL25hbi0yLjE1LjAudGd6IzNmMzRh NDczZmYxOGUxNWMxYjU2MjZiNjI5MDNiNWFkNmU2NjVmZWUiCiAgIGludGVncml0eSBzaGE1MTIt OFp0dkVuQTJjNWFZQ1pZZDFjdmdkblU2Y3F3aXhSb1lnNzB4UExXVXdzNU9SVGEvbG53K3U0YW1p eFJTL0FjNVU1bVFWZ3A5cG5sU1VuYk5XRmFXWlE9PQogCi1uYW5vY29sb3JzQF4wLjEuMTI6Ci0g IHZlcnNpb24gIjAuMS4xMiIKLSAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5j b20vbmFub2NvbG9ycy8tL25hbm9jb2xvcnMtMC4xLjEyLnRneiM4NTc3NDgyYzU4Y2JkN2I1YmIx NjgxZGI0Y2Y0OGYxMWE4N2ZkNWY2IgotICBpbnRlZ3JpdHkgc2hhNTEyLTJuTUhxZzF4NVBVK3Vu eFg3UEdZN0F1WXhsMnFEeDdQU3JUUmppenI4c3hkZDNsLzNoQnVXV2FraTYycW10WW0yVTVpNFo1 RTdHYmpseURGaHM5L0VRPT0KLQotbmFub2lkQF4zLjAuMCwgbmFub2lkQF4zLjEuMjM6CituYW5v aWRAXjMuMC4wOgogICB2ZXJzaW9uICIzLjIuMCIKICAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0 cnkueWFybnBrZy5jb20vbmFub2lkLy0vbmFub2lkLTMuMi4wLnRneiM2MjY2NzUyMmRhNjY3Mzk3 MWNjYTkxNmE2ZDNlZmYzZjQxNWZmODBjIgogICBpbnRlZ3JpdHkgInNoYTEtWW1aMUl0cG1jNWNj eXBGcWJUNy9QMEZmK0F3PSBzaGE1MTItZm1zWllhOWxwbjY5QWQ1ZURuN0ZNY25uU1IrOFIzNFc5 cUpFaWp4WWhUYmZPV3pyMjJuMVF4Q016WExLK09EeVcyOTczVjNGdXg5NTlpUW9VeHpVSUE9PSIK IAorbmFub2lkQF4zLjEuMzA6CisgIHZlcnNpb24gIjMuMS4zMCIKKyAgcmVzb2x2ZWQgImh0dHBz Oi8vcmVnaXN0cnkueWFybnBrZy5jb20vbmFub2lkLy0vbmFub2lkLTMuMS4zMC50Z3ojNjNmOTNj YzU0OGQyYTExM2RjNWRmYmM2M2JmYTA5ZTJiOWI2NDM2MiIKKyAgaW50ZWdyaXR5IHNoYTUxMi16 SnB1UER3T3Y4RDJ6cTJXUm9NZTFIc2ZadGhWZXdwZWw5Q0F2VGZjLzJtQkQxdVVUL2FnYzVmN0dI R1dYbFlrRnZpMW1WeGU0SWp2UDJITnJvcDduUT09CisKIG5hbm9wb3BAXjIuMS4wOgogICB2ZXJz aW9uICIyLjEuMCIKICAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vbmFu b3BvcC8tL25hbm9wb3AtMi4xLjAudGd6IzIzNDc2NTEzY2VlMjQwNTg4OGFmZDJlOGE0YjU0MDY2 YjcwYjllNjAiCkBAIC03ODM4LDkgKzc1MjIsOSBAQCBuaWNlLXRyeUBeMS4wLjQ6CiAgIGludGVn cml0eSBzaGE1MTItMW5oNDVkZWViNW9sTlk3ZVg4MkJrUE83U1N4UjVTU1lKaVBUclRkRlVWWXdB bDhDS01BNU45UGpUWWtIaVJqaXNWY3hjUTFIWGRMaHgycXh4SnpMTlE9PQogCiBub2RlLWd5cEBe OC4xLjA6Ci0gIHZlcnNpb24gIjguMy4wIgotICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55 YXJucGtnLmNvbS9ub2RlLWd5cC8tL25vZGUtZ3lwLTguMy4wLnRneiNlYmMzNmExNDZkNDUwOTVl MWM2YWY2Y2NiMGU0N2QxYzhmYzNmZTY5IgotICBpbnRlZ3JpdHkgc2hhNTEyLWUrdm1LeVRpeWJL Z3JtdnM0TTJSRUZLQ25PZCtOY3JBQW5uOTlZa282TlFBK3paZE1sUnZiSVVIb2pmc0hyU1ExQ2Rk TGdabkhpY25FVmdESHppSnpBPT0KKyAgdmVyc2lvbiAiOC40LjAiCisgIHJlc29sdmVkICJodHRw czovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL25vZGUtZ3lwLy0vbm9kZS1neXAtOC40LjAudGd6IzZl MTExMmIxMDYxN2YwZjg1NTljNjRiM2Y3MzdlODEwOWU1YTgzMzgiCisgIGludGVncml0eSBzaGE1 MTItQmkvb0NtNWJINkYrRm16ZlV4SnBQYXhNRXlJaHN6VUxHUjNUcHJtVGVrdTgvZE1GY2RUY3lw azEyME5lWnFFdDU0cjFCcmdFS3RtMmpKaXVJS0UyOFE9PQogICBkZXBlbmRlbmNpZXM6CiAgICAg ZW52LXBhdGhzICJeMi4yLjAiCiAgICAgZ2xvYiAiXjcuMS40IgpAQCAtNzg1MywxMSArNzUzNyw2 IEBAIG5vZGUtZ3lwQF44LjEuMDoKICAgICB0YXIgIl42LjEuMiIKICAgICB3aGljaCAiXjIuMC4y IgogCi1ub2RlLXJlbGVhc2VzQF4xLjEuNzE6Ci0gIHZlcnNpb24gIjEuMS43MiIKLSAgcmVzb2x2 ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vbm9kZS1yZWxlYXNlcy8tL25vZGUtcmVs ZWFzZXMtMS4xLjcyLnRneiMxNDgwMmFiNmIxMDM5YTc5YTBjN2Q2NjJiNjEwYTViYmQ3NmVhY2Jl IgotICBpbnRlZ3JpdHkgc2hhNTEyLUxMVW8rUHBIM2RVNlhpelgzaVZvdWJVTmhlRi9vd2pYQ1pa NXlBQ0R4Tm5QdGdGdWx1ZFYxWkwzYXlLMWtWZXA0MlJtbTArUjkvWTYwTlFiWjJiaWZ3PT0KLQog bm9kZS1yZWxlYXNlc0BeMi4wLjE6CiAgIHZlcnNpb24gIjIuMC4xIgogICByZXNvbHZlZCAiaHR0 cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9ub2RlLXJlbGVhc2VzLy0vbm9kZS1yZWxlYXNlcy0y LjAuMS50Z3ojM2QxZDM5NWYyMDRmMWYyZjI5YTU0MzU4YjlmYjY3ODc2NWFkMmZjNSIKQEAgLTc4 ODksMTAgKzc1NjgsMTAgQEAgbm9ybWFsaXplLXVybEAyLjAuMToKICAgICBxdWVyeS1zdHJpbmcg Il41LjAuMSIKICAgICBzb3J0LWtleXMgIl4yLjAuMCIKIAotbm9ybWFsaXplLXVybEBeNC41LjA6 Ci0gIHZlcnNpb24gIjQuNS4xIgotICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtn LmNvbS9ub3JtYWxpemUtdXJsLy0vbm9ybWFsaXplLXVybC00LjUuMS50Z3ojMGRkOTBjZjEyODhl ZTFkMTMxM2I4NzA4MWM5YTU5MzJlZTQ4NTE4YSIKLSAgaW50ZWdyaXR5IHNoYTUxMi05VVpDRlJI UWROcmZUcEdnOCsxSU5JZzkzQjZ6RTBhWE1WRmt3MVdGd3ZPNFNsWnl3VTZhTGc1T2YwQXAvUGdj YlN3NExOeHZNV1hNZXVnd01DWDBBQT09Citub3JtYWxpemUtdXJsQF42LjAuMToKKyAgdmVyc2lv biAiNi4xLjAiCisgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL25vcm1h bGl6ZS11cmwvLS9ub3JtYWxpemUtdXJsLTYuMS4wLnRneiM0MGQwODg1YjUzNWRlZmZlM2YzMTQ3 YmVjODc3ZDA1ZmU0YzU2NjhhIgorICBpbnRlZ3JpdHkgc2hhNTEyLURsTCtYd095M054QVE4eHVD MG9rUGdLNDZpdVZOQUswMVlON1J1ZVlCcXFGZUdzQmpWOVhtQ0F6QWRndCs2NjdiQ2w1a1BoOUVx S0tEd25hUEcxSTdBPT0KIAogbm90aWZpY2FyQF4xLjAuMToKICAgdmVyc2lvbiAiMS4wLjEiCkBA IC03OTYzLDEwICs3NjQyLDEwIEBAIG9iamVjdC1hc3NpZ25AXjQsIG9iamVjdC1hc3NpZ25AXjQu MC4xLCBvYmplY3QtYXNzaWduQF40LjEuMCwgb2JqZWN0LWFzc2lnbkBeNC4xCiAgIHJlc29sdmVk ICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL29iamVjdC1hc3NpZ24vLS9vYmplY3QtYXNz aWduLTQuMS4xLnRneiMyMTA5YWRjNzk2NTg4N2NmYzA1Y2JiZDQ0MmNhYzhiZmJiMzYwODYzIgog ICBpbnRlZ3JpdHkgc2hhMS1JUW10eDVaWWg4L0FYTHZVUXNySXY3czJDR009CiAKLW9iamVjdC1p bnNwZWN0QF4xLjEwLjMsIG9iamVjdC1pbnNwZWN0QF4xLjcuMCwgb2JqZWN0LWluc3BlY3RAXjEu OS4wOgotICB2ZXJzaW9uICIxLjEwLjMiCi0gIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlh cm5wa2cuY29tL29iamVjdC1pbnNwZWN0Ly0vb2JqZWN0LWluc3BlY3QtMS4xMC4zLnRneiNjMmFh N2QyZDA5ZjUwYzk5Mzc1NzA0ZjdhMGFkZjI0YzU3ODJkMzY5IgotICBpbnRlZ3JpdHkgc2hhNTEy LWU1bUNKbFNIN3BvQU5mQzh6OFM5czlTMklONS80WmIzYVozM2Y1czhZcW9hekNGek5MbG9MVThy NVZDRytHN1dvcUx2QUFab1ZNY3kzdHAvM1gwUGx3PT0KK29iamVjdC1pbnNwZWN0QF4xLjExLjAs IG9iamVjdC1pbnNwZWN0QF4xLjcuMCwgb2JqZWN0LWluc3BlY3RAXjEuOS4wOgorICB2ZXJzaW9u ICIxLjExLjAiCisgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL29iamVj dC1pbnNwZWN0Ly0vb2JqZWN0LWluc3BlY3QtMS4xMS4wLnRneiM5ZGNlYjE0NmNlZGQ0MTQ4YTBk OWU1MWFiODhkMzRjZjUwOTkyMmIxIgorICBpbnRlZ3JpdHkgc2hhNTEyLWpwN2lrUzZTZDNHeFFm WkpQeUgzY2pjYkpGNkdaUENsZ2RWK0VGeWdqRkxRNUZtVy9kUlVuVGQ5UFE5azBKaG9ORGFiV0Zi cEYxeUNkU1dDQzZnZXhnPT0KIAogb2JqZWN0LWlzQF4xLjAuMiwgb2JqZWN0LWlzQF4xLjEuMjoK ICAgdmVyc2lvbiAiMS4xLjUiCkBAIC03OTkxLDQyICs3NjcwLDQ5IEBAIG9iamVjdC5hc3NpZ25A XjQuMS4wLCBvYmplY3QuYXNzaWduQF40LjEuMjoKICAgICBoYXMtc3ltYm9scyAiXjEuMC4xIgog ICAgIG9iamVjdC1rZXlzICJeMS4xLjEiCiAKLW9iamVjdC5lbnRyaWVzQF4xLjEuMSwgb2JqZWN0 LmVudHJpZXNAXjEuMS4yLCBvYmplY3QuZW50cmllc0BeMS4xLjM6Ci0gIHZlcnNpb24gIjEuMS40 IgotICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9vYmplY3QuZW50cmll cy8tL29iamVjdC5lbnRyaWVzLTEuMS40LnRneiM0M2NjZjlhNTBiYzVmZDViNjQ5ZDQ1YWIxYTU3 OWYyNGUwODhjYWZkIgotICBpbnRlZ3JpdHkgc2hhNTEyLWg0TFdLV0Urd0tRR2h0TWpaRUJ1ZDd1 TEdocXlMd2o4ZnBIT2FyWmhEMnVZM0M5Y1J0azU3VlE4OWtlM21vQnlMWE1lZHFzM1hDSHp5YjRB bUEyRGpBPT0KK29iamVjdC5lbnRyaWVzQF4xLjEuMSwgb2JqZWN0LmVudHJpZXNAXjEuMS4yLCBv YmplY3QuZW50cmllc0BeMS4xLjQ6CisgIHZlcnNpb24gIjEuMS41IgorICByZXNvbHZlZCAiaHR0 cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9vYmplY3QuZW50cmllcy8tL29iamVjdC5lbnRyaWVz LTEuMS41LnRneiNlMWFjZGQxN2M0ZGUyY2Q5NmQ1YTA4NDg3Y2ZiOWRiODRkODgxODYxIgorICBp bnRlZ3JpdHkgc2hhNTEyLVR5eG1qVW9aZ2dkNE9yclUxVzY2Rk1ERzZDdXFKeHNGdnltZXlYSTUx K3ZRTE42N3pZZlpzZXB0UmdlNzAza0tRZG80dWNjZ0FLZWJYRmNSQ3prNCtnPT0KICAgZGVwZW5k ZW5jaWVzOgogICAgIGNhbGwtYmluZCAiXjEuMC4yIgogICAgIGRlZmluZS1wcm9wZXJ0aWVzICJe MS4xLjMiCi0gICAgZXMtYWJzdHJhY3QgIl4xLjE4LjIiCisgICAgZXMtYWJzdHJhY3QgIl4xLjE5 LjEiCiAKIG9iamVjdC5mcm9tZW50cmllc0BeMi4wLjMsIG9iamVjdC5mcm9tZW50cmllc0BeMi4w LjQ6Ci0gIHZlcnNpb24gIjIuMC40IgotICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJu cGtnLmNvbS9vYmplY3QuZnJvbWVudHJpZXMvLS9vYmplY3QuZnJvbWVudHJpZXMtMi4wLjQudGd6 IzI2ZTFiYTVjNDU3MWM1YzZmMDg5MGNlZjQ0NzMwNjY0NTZhMTIwYjgiCi0gIGludGVncml0eSBz aGE1MTItRXNGQnNoczVSVVVwUUVZMUQ0cS9tNTlrTWZ6NFlKdnh1TkNKY3Yvald3T0pyMzRFYVZu RzExWnJaYTBVSEIzd256VjF3eDhtNThUNGhRTDhJdU5YbFE9PQorICB2ZXJzaW9uICIyLjAuNSIK KyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vb2JqZWN0LmZyb21lbnRy aWVzLy0vb2JqZWN0LmZyb21lbnRyaWVzLTIuMC41LnRneiM3YjM3YjIwNTEwOWMyMWU3NDFlNjA1 NzI3ZmU4YjBhZDVmYTA4MjUxIgorICBpbnRlZ3JpdHkgc2hhNTEyLUNBeUc1bVdRUlJpQlU1N1Jl NEZLb1RCalhmRG9Od2RGVkgyWTF0UzlQcUNzZlVUeW1Bb2hPa0VNU0czYVJOS212NGxWM083cDFl dDdjMTg3cTZieW53PT0KICAgZGVwZW5kZW5jaWVzOgogICAgIGNhbGwtYmluZCAiXjEuMC4yIgog ICAgIGRlZmluZS1wcm9wZXJ0aWVzICJeMS4xLjMiCi0gICAgZXMtYWJzdHJhY3QgIl4xLjE4LjAt bmV4dC4yIgotICAgIGhhcyAiXjEuMC4zIgorICAgIGVzLWFic3RyYWN0ICJeMS4xOS4xIgogCiBv YmplY3QuZ2V0b3ducHJvcGVydHlkZXNjcmlwdG9yc0BeMi4xLjA6Ci0gIHZlcnNpb24gIjIuMS4y IgotICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9vYmplY3QuZ2V0b3du cHJvcGVydHlkZXNjcmlwdG9ycy8tL29iamVjdC5nZXRvd25wcm9wZXJ0eWRlc2NyaXB0b3JzLTIu MS4yLnRneiMxYmQ2M2FlYWNmMGQ1ZDJkMmYzMWI1ZTM5M2IwM2E3YzYwMWEyM2Y3IgotICBpbnRl Z3JpdHkgc2hhNTEyLVd0eGVLU3pmQmpsekwrRjliN003aGV3RHpNd3krQzhOUnNzSGQxWXJObHpI eklEclhjWGlOT01yZXpkQUVNNFVYaXhnVit2dm55QmVON1J5Z2wydHRRPT0KKyAgdmVyc2lvbiAi Mi4xLjMiCisgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL29iamVjdC5n ZXRvd25wcm9wZXJ0eWRlc2NyaXB0b3JzLy0vb2JqZWN0LmdldG93bnByb3BlcnR5ZGVzY3JpcHRv cnMtMi4xLjMudGd6I2IyMjNjZjM4ZTE3ZmVmYjk3YTYzYzEwYzkxZGY3MmNjYjM4NmRmOWUiCisg IGludGVncml0eSBzaGE1MTItVmREb0N3dkpJNFFkQzZuZGpwcUZtb0wzLytIeGZmRkJiY0p6S2k1 aHdMTHFxeDNtZGJlZFJwZlpEZEswU3JPU2F1ajhYNEd6QnZuRFpsNHZUTjdkT3c9PQogICBkZXBl bmRlbmNpZXM6CiAgICAgY2FsbC1iaW5kICJeMS4wLjIiCiAgICAgZGVmaW5lLXByb3BlcnRpZXMg Il4xLjEuMyIKLSAgICBlcy1hYnN0cmFjdCAiXjEuMTguMC1uZXh0LjIiCisgICAgZXMtYWJzdHJh Y3QgIl4xLjE5LjEiCiAKLW9iamVjdC52YWx1ZXNAXjEuMS4wLCBvYmplY3QudmFsdWVzQF4xLjEu MSwgb2JqZWN0LnZhbHVlc0BeMS4xLjM6Ci0gIHZlcnNpb24gIjEuMS40IgotICByZXNvbHZlZCAi aHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9vYmplY3QudmFsdWVzLy0vb2JqZWN0LnZhbHVl cy0xLjEuNC50Z3ojMGQyNzM3NjI4MzNlODE2YjY5M2E2MzdkMzAwNzNlNzA1MTUzNWIzMCIKLSAg aW50ZWdyaXR5IHNoYTUxMi1UbkdvN2o0WFNuS1FvSzNNZnZrenFLQ2kwblZlL0Q5STlJandUTllk Yi9meFlIcGpybHVIVk9ndzBBRjZqclJGR01QSGRmdWlkUjA5dElEaUl2bmFTZz09CitvYmplY3Qu aGFzb3duQF4xLjAuMDoKKyAgdmVyc2lvbiAiMS4xLjAiCisgIHJlc29sdmVkICJodHRwczovL3Jl Z2lzdHJ5Lnlhcm5wa2cuY29tL29iamVjdC5oYXNvd24vLS9vYmplY3QuaGFzb3duLTEuMS4wLnRn eiM3MjMyZWQyNjZmMzRkMTk3ZDE1Y2FjNTg4MDIzMmY3YTQ3OTBhZmU1IgorICBpbnRlZ3JpdHkg c2hhNTEyLU1oallSZmozR0JsaFNrREhvNlFtdmdqUkxYUTJ6bmRhYmRmM25YMHlUeVpLOXJQZnhi NnVScEFhYzhIWE5MeTFHcHFXdFo4MVFoNHYzdU9sczJzUkFnPT0KKyAgZGVwZW5kZW5jaWVzOgor ICAgIGRlZmluZS1wcm9wZXJ0aWVzICJeMS4xLjMiCisgICAgZXMtYWJzdHJhY3QgIl4xLjE5LjEi CisKK29iamVjdC52YWx1ZXNAXjEuMS4wLCBvYmplY3QudmFsdWVzQF4xLjEuMSwgb2JqZWN0LnZh bHVlc0BeMS4xLjQ6CisgIHZlcnNpb24gIjEuMS41IgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdp c3RyeS55YXJucGtnLmNvbS9vYmplY3QudmFsdWVzLy0vb2JqZWN0LnZhbHVlcy0xLjEuNS50Z3oj OTU5ZjYzZTNjZTllZjEwODcyMDMzMzA4MjEzMWU0YTQ1OWI3MTZhYyIKKyAgaW50ZWdyaXR5IHNo YTUxMi1RVVpSVzBpbFEzUG5QcGJOdGdkTlYxUERiRXFMSWlTRkIzbCtFbkd0QlEvOFNVVExqMVBa d3RRSEFCWnRMZ3dwSlpUU1podUdMT0drNTdEcngySXZZZz09CiAgIGRlcGVuZGVuY2llczoKICAg ICBjYWxsLWJpbmQgIl4xLjAuMiIKICAgICBkZWZpbmUtcHJvcGVydGllcyAiXjEuMS4zIgotICAg IGVzLWFic3RyYWN0ICJeMS4xOC4yIgorICAgIGVzLWFic3RyYWN0ICJeMS4xOS4xIgogCiBvbi1m aW5pc2hlZEB+Mi4zLjA6CiAgIHZlcnNpb24gIjIuMy4wIgpAQCAtODQ0OCwxOSArODEzNCwyMCBA QCBwb3N0Y3NzLWNhbGNAXjguMC4wOgogICAgIHBvc3Rjc3Mtc2VsZWN0b3ItcGFyc2VyICJeNi4w LjIiCiAgICAgcG9zdGNzcy12YWx1ZS1wYXJzZXIgIl40LjAuMiIKIAotcG9zdGNzcy1jb2xvcm1p bkBeNS4xLjE6Ci0gIHZlcnNpb24gIjUuMS4xIgotICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3Ry eS55YXJucGtnLmNvbS9wb3N0Y3NzLWNvbG9ybWluLy0vcG9zdGNzcy1jb2xvcm1pbi01LjEuMS50 Z3ojODM0ZDI2MmY2MDIxZjgzMmQ5MDg1ZTM1NWYwOGFkZTI4OGE5MmExZCIKLSAgaW50ZWdyaXR5 IHNoYTUxMi1TeVRtcUtLTjZQeVlOZWVLRUMwaHFJUDVDRHVwck8xaEh1cmRXMWFlekR5Zm9mRFVP bjd5N01heGNvbGJzVzNvYXpQd0ZpR2lZMzBYUmlXMVY0aVpwQT09Citwb3N0Y3NzLWNvbG9ybWlu QF41LjIuMToKKyAgdmVyc2lvbiAiNS4yLjEiCisgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5 Lnlhcm5wa2cuY29tL3Bvc3Rjc3MtY29sb3JtaW4vLS9wb3N0Y3NzLWNvbG9ybWluLTUuMi4xLnRn eiM2ZTQ0NGE4MDZmZDNjNTc4ODI3ZGJhZDAyMjc2MmRmMTkzMzQ0MTRkIgorICBpbnRlZ3JpdHkg c2hhNTEyLVZWd01yRVlMY0hZZVBVWVY5OVltdW9pN1doS3JNR3kvVjkva1RTMERrQ29KWW1tamRP TW5leWh6WVV4Y05ndGVLRFZicmV3T2tTTTdXamUvTUZ3eHpBPT0KICAgZGVwZW5kZW5jaWVzOgot ICAgIGJyb3dzZXJzbGlzdCAiXjQuMTYuMCIKLSAgICBjb2xvcmQgIl4yLjAuMCIKKyAgICBicm93 c2Vyc2xpc3QgIl40LjE2LjYiCisgICAgY2FuaXVzZS1hcGkgIl4zLjAuMCIKKyAgICBjb2xvcmQg Il4yLjkuMSIKICAgICBwb3N0Y3NzLXZhbHVlLXBhcnNlciAiXjQuMS4wIgogCi1wb3N0Y3NzLWNv bnZlcnQtdmFsdWVzQF41LjAuMToKLSAgdmVyc2lvbiAiNS4wLjEiCi0gIHJlc29sdmVkICJodHRw czovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL3Bvc3Rjc3MtY29udmVydC12YWx1ZXMvLS9wb3N0Y3Nz LWNvbnZlcnQtdmFsdWVzLTUuMC4xLnRneiM0ZWMxOWQ2MDE2NTM0ZTMwZTMxMDJmZGY0MTRlNzUz Mzk4NjQ1MjMyIgotICBpbnRlZ3JpdHkgc2hhNTEyLUMzelIxRG8yQmtLa0NnQzBnM3NGOFRTMGtv RjJHK21OOHh4YXlaeDNmMTBjSVJtVGFBbnBncFJRWmpOZWtUWnhNMmNpU1BvaDJJV0ptMFZaeDhO b1FnPT0KK3Bvc3Rjc3MtY29udmVydC12YWx1ZXNAXjUuMC4yOgorICB2ZXJzaW9uICI1LjAuMiIK KyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vcG9zdGNzcy1jb252ZXJ0 LXZhbHVlcy8tL3Bvc3Rjc3MtY29udmVydC12YWx1ZXMtNS4wLjIudGd6Izg3OWI4NDlkYzM2Nzdj N2Q2YmM5NGI2YTJjMWEzZjA4MDg3OTgwNTkiCisgIGludGVncml0eSBzaGE1MTItS1EwNEUyeWFk bWZhMUxxWG03VUlEd1cxZnR4VS9RV1ptejZOS25IblV2SjNMRVliYmNYNmkzMjlmL2lnK1duRUJ5 SGVndWxvY1hyRUNhWkdMcEw4Wmc9PQogICBkZXBlbmRlbmNpZXM6CiAgICAgcG9zdGNzcy12YWx1 ZS1wYXJzZXIgIl40LjEuMCIKIApAQCAtODQ4NSw5ICs4MTcyLDkgQEAgcG9zdGNzcy1kaXNjYXJk LW92ZXJyaWRkZW5AXjUuMC4xOgogICBpbnRlZ3JpdHkgc2hhNTEyLVkyOEg3eTkzTDJCcEpocmRV UjJTUjJmblNzVCszVFZ4MU5tVlFMYmNuWld3SVVwSjdtZmNUQzZaYTlNMlBHNnc4ajdVUVJmenhx bjhqVTJWd0Z4bzNRPT0KIAogcG9zdGNzcy1sb2FkZXJAXjUuMC4wOgotICB2ZXJzaW9uICI1LjEu MCIKLSAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vcG9zdGNzcy1sb2Fk ZXIvLS9wb3N0Y3NzLWxvYWRlci01LjEuMC50Z3ojOGEzNmYxOGI4OTg5YmVlOTQxNzI2MjZiMjVm MmI5Y2M2MTYwZmI0MyIKLSAgaW50ZWdyaXR5IHNoYTUxMi10R2dLWkY2TnRuMTZ6SVdYdDd5S1Yx OUwwcklTYW96SFBDZmRQdCthSE9uVFpycmVlcVZSNmhDa0ZoWllmSjZLZ3B5SUZSa0t1Vzh5Z0h0 VWlkNEdsQT09CisgIHZlcnNpb24gIjUuMy4wIgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3Ry eS55YXJucGtnLmNvbS9wb3N0Y3NzLWxvYWRlci8tL3Bvc3Rjc3MtbG9hZGVyLTUuMy4wLnRneiMx NjU3Zjg2OWU0OGQ0ZmRiMDE4YTQwNzcxYzIzNWU0OTllZTI2MjQ0IgorICBpbnRlZ3JpdHkgc2hh NTEyLS8rWjFSQW1zc2RpU0xnSVp3bkpId0JNbmxBQlBnRjdnaVl6VE4yTk9mcjlEMjFJSlo0bVFD MVIybWl3cDgwem5vOU00ek1EL3VtR0k4Y1IrMkVMNXp3PT0KICAgZGVwZW5kZW5jaWVzOgogICAg IGNvc21pY29uZmlnICJeNy4wLjAiCiAgICAga2xvbmEgIl4yLjAuNCIKQEAgLTg1MDIsMTIgKzgx ODksMTIgQEAgcG9zdGNzcy1tZXJnZS1sb25naGFuZEBeNS4wLjI6CiAgICAgcG9zdGNzcy12YWx1 ZS1wYXJzZXIgIl40LjEuMCIKICAgICBzdHlsZWhhY2tzICJeNS4wLjEiCiAKLXBvc3Rjc3MtbWVy Z2UtcnVsZXNAXjUuMC4xOgotICB2ZXJzaW9uICI1LjAuMSIKLSAgcmVzb2x2ZWQgImh0dHBzOi8v cmVnaXN0cnkueWFybnBrZy5jb20vcG9zdGNzcy1tZXJnZS1ydWxlcy8tL3Bvc3Rjc3MtbWVyZ2Ut cnVsZXMtNS4wLjEudGd6IzRmZjYxYzUwODlkODY4NDUxODRhMGYxNDllODhkNjg3MDI4YmVmN2Ui Ci0gIGludGVncml0eSBzaGE1MTItVVI2UjVQaDBjOTZRQjlUTUJIM21sOC9rdlBDVGhQSGVwZGhS cUFidk1SRFJIUUFDUEM4aU01TnBmSUMwMytWUk1aVEdYeTRML0J2RnpjREZDZ2IrZkE9PQorcG9z dGNzcy1tZXJnZS1ydWxlc0BeNS4wLjI6CisgIHZlcnNpb24gIjUuMC4yIgorICByZXNvbHZlZCAi aHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9wb3N0Y3NzLW1lcmdlLXJ1bGVzLy0vcG9zdGNz cy1tZXJnZS1ydWxlcy01LjAuMi50Z3ojZDZlNGQ2NTAxOGJhZGJkYjdkY2M3ODljNGYzOWI5NDEz MDVkNDEwYSIKKyAgaW50ZWdyaXR5IHNoYTUxMi01SytNZDdTM0d3QmV3ZkI0cmpEZW9sNlYvUlo4 Uyt2NEI2NlprMmdDaFJxTFRDQzh5am5IUTYwMW9tajlUS2Z0UzE5T1BHcVovWHpvcXB6TlFRTHdi Zz09CiAgIGRlcGVuZGVuY2llczoKLSAgICBicm93c2Vyc2xpc3QgIl40LjE2LjAiCisgICAgYnJv d3NlcnNsaXN0ICJeNC4xNi42IgogICAgIGNhbml1c2UtYXBpICJeMy4wLjAiCiAgICAgY3NzbmFu by11dGlscyAiXjIuMC4xIgogICAgIHBvc3Rjc3Mtc2VsZWN0b3ItcGFyc2VyICJeNi4wLjUiCkBA IC04NTIwLDEzICs4MjA3LDEzIEBAIHBvc3Rjc3MtbWluaWZ5LWZvbnQtdmFsdWVzQF41LjAuMToK ICAgZGVwZW5kZW5jaWVzOgogICAgIHBvc3Rjc3MtdmFsdWUtcGFyc2VyICJeNC4xLjAiCiAKLXBv c3Rjc3MtbWluaWZ5LWdyYWRpZW50c0BeNS4wLjE6Ci0gIHZlcnNpb24gIjUuMC4xIgotICByZXNv bHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9wb3N0Y3NzLW1pbmlmeS1ncmFkaWVu dHMvLS9wb3N0Y3NzLW1pbmlmeS1ncmFkaWVudHMtNS4wLjEudGd6IzJkYzc5ZmQxYTFhZmNiNzJh OWU3MjdiYzU0OWNlODYwZjkzNTY1ZDIiCi0gIGludGVncml0eSBzaGE1MTItb2RPd0JGQUluMndJ ditYWVJwb04yaFVWM3BQUWxnYkoxMFhlWFBxOFVZMk4rOVpHNDJ4dTQ1bFRuL2c5elorZDcwTktT UUQ2RU9pNlVpQ011M0ZON2c9PQorcG9zdGNzcy1taW5pZnktZ3JhZGllbnRzQF41LjAuMzoKKyAg dmVyc2lvbiAiNS4wLjMiCisgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29t L3Bvc3Rjc3MtbWluaWZ5LWdyYWRpZW50cy8tL3Bvc3Rjc3MtbWluaWZ5LWdyYWRpZW50cy01LjAu My50Z3ojZjk3MGExMWNjNzFlMDhlOTA5NWU3OGVjM2E2YjM0YjkxYzE5NTUwZSIKKyAgaW50ZWdy aXR5IHNoYTUxMi1aOTFPbDIybkI2WEpXKzVvZTMxK1l4UnNZb294T2RGS2NiT3FZL1Y4RnhzZTFZ M3ZxbE5ScGkxY3hDcW9BQ1pUUUVobCt4dnQ0aHNiV2lWNVIrWEk5UT09CiAgIGRlcGVuZGVuY2ll czoKKyAgICBjb2xvcmQgIl4yLjkuMSIKICAgICBjc3NuYW5vLXV0aWxzICJeMi4wLjEiCi0gICAg aXMtY29sb3Itc3RvcCAiXjEuMS4wIgogICAgIHBvc3Rjc3MtdmFsdWUtcGFyc2VyICJeNC4xLjAi CiAKIHBvc3Rjc3MtbWluaWZ5LXBhcmFtc0BeNS4wLjE6CkBAIC04NjI3LDEzICs4MzE0LDEzIEBA IHBvc3Rjc3Mtbm9ybWFsaXplLXVuaWNvZGVAXjUuMC4xOgogICAgIGJyb3dzZXJzbGlzdCAiXjQu MTYuMCIKICAgICBwb3N0Y3NzLXZhbHVlLXBhcnNlciAiXjQuMS4wIgogCi1wb3N0Y3NzLW5vcm1h bGl6ZS11cmxAXjUuMC4xOgotICB2ZXJzaW9uICI1LjAuMSIKLSAgcmVzb2x2ZWQgImh0dHBzOi8v cmVnaXN0cnkueWFybnBrZy5jb20vcG9zdGNzcy1ub3JtYWxpemUtdXJsLy0vcG9zdGNzcy1ub3Jt YWxpemUtdXJsLTUuMC4xLnRneiNmZmE5ZmU1NDU5MzVkOGI1N2JlY2JiYjc5MzRkZDVlMjQ1NTEz MTgzIgotICBpbnRlZ3JpdHkgc2hhNTEyLWhrYkcwajU4WjFNODMwL0NKNzNWc1A3Z3ZsRzF5Ris0 eTdGZDF3NHREMmM3Q2FBMlBzbGwrcFE2ZVFodGg5eTlFYXFaU0x6YW1mZi9EME1aQk1iWVNnPT0K K3Bvc3Rjc3Mtbm9ybWFsaXplLXVybEBeNS4wLjI6CisgIHZlcnNpb24gIjUuMC4yIgorICByZXNv bHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9wb3N0Y3NzLW5vcm1hbGl6ZS11cmwv LS9wb3N0Y3NzLW5vcm1hbGl6ZS11cmwtNS4wLjIudGd6I2RkY2RmYjdjZWRlMTI3MDc0MGNmM2U0 ZGZjNjAwOGJkOTZhYmM3NjMiCisgIGludGVncml0eSBzaGE1MTItazRqTFRQVXhSRVE1YnBhakZR WnB4OGJDRjJVcmxxT1R6UDlrRXFjRW5PZndzUnNoV3MyK29BRklIZkRRQjhHTzJQYVVhU0UwTmxU QVl0Ymx1WlRsSFE9PQogICBkZXBlbmRlbmNpZXM6CiAgICAgaXMtYWJzb2x1dGUtdXJsICJeMy4w LjMiCi0gICAgbm9ybWFsaXplLXVybCAiXjQuNS4wIgorICAgIG5vcm1hbGl6ZS11cmwgIl42LjAu MSIKICAgICBwb3N0Y3NzLXZhbHVlLXBhcnNlciAiXjQuMS4wIgogCiBwb3N0Y3NzLW5vcm1hbGl6 ZS13aGl0ZXNwYWNlQF41LjAuMToKQEAgLTg2NDMsMTAgKzgzMzAsMTAgQEAgcG9zdGNzcy1ub3Jt YWxpemUtd2hpdGVzcGFjZUBeNS4wLjE6CiAgIGRlcGVuZGVuY2llczoKICAgICBwb3N0Y3NzLXZh bHVlLXBhcnNlciAiXjQuMS4wIgogCi1wb3N0Y3NzLW9yZGVyZWQtdmFsdWVzQF41LjAuMToKLSAg dmVyc2lvbiAiNS4wLjEiCi0gIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29t L3Bvc3Rjc3Mtb3JkZXJlZC12YWx1ZXMvLS9wb3N0Y3NzLW9yZGVyZWQtdmFsdWVzLTUuMC4xLnRn eiM3OWVmNmUyYmQyNjdjY2FkM2ZjMGM0ZjRhNTg2ZGZkMDFjMTMxZjY0IgotICBpbnRlZ3JpdHkg c2hhNTEyLTZta0NGNUJRMjVIdkVjRGZyTUhDTExGSGxyYUJTbE9YRm5RTUhZaFNwRE8vNWpTUjFr OExkRVhPa3YrNyt1elc2bzZ0QlllYTFLbTB3UVNSa1BKa3dBPT0KK3Bvc3Rjc3Mtb3JkZXJlZC12 YWx1ZXNAXjUuMC4yOgorICB2ZXJzaW9uICI1LjAuMiIKKyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVn aXN0cnkueWFybnBrZy5jb20vcG9zdGNzcy1vcmRlcmVkLXZhbHVlcy8tL3Bvc3Rjc3Mtb3JkZXJl ZC12YWx1ZXMtNS4wLjIudGd6IzFmMzUxNDI2OTc3YmUwMGUwZjc2NWIzMTY0YWQ3NTNkYWM4ZWQw NDQiCisgIGludGVncml0eSBzaGE1MTItOEFGWURTT1lXZWJKWUx5SmkzZnlqbDZDcU1FRy9VVndv cmppeUsxcjU3M0k1NmtiM2U4NzlzQ0pMR3ZSM21lcmorZkFkUHBWcGxYS1FaditleTZDZ1E9PQog ICBkZXBlbmRlbmNpZXM6CiAgICAgY3NzbmFuby11dGlscyAiXjIuMC4xIgogICAgIHBvc3Rjc3Mt dmFsdWUtcGFyc2VyICJeNC4xLjAiCkBAIC04Njc1LDEzICs4MzYyLDEzIEBAIHBvc3Rjc3Mtc2Vs ZWN0b3ItcGFyc2VyQF42LjAuMiwgcG9zdGNzcy1zZWxlY3Rvci1wYXJzZXJAXjYuMC40LCBwb3N0 Y3NzLXNlbGVjdG9yCiAgICAgY3NzZXNjICJeMy4wLjAiCiAgICAgdXRpbC1kZXByZWNhdGUgIl4x LjAuMiIKIAotcG9zdGNzcy1zdmdvQF41LjAuMToKLSAgdmVyc2lvbiAiNS4wLjEiCi0gIHJlc29s dmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL3Bvc3Rjc3Mtc3Znby8tL3Bvc3Rjc3Mt c3Znby01LjAuMS50Z3ojNmVkNWUwMWUxNjRlNTkyMDQ5Nzg5OTRkODQ0YzY1M2EzMzFhODEwMCIK LSAgaW50ZWdyaXR5IHNoYTUxMi1jRDdERm82dEY5aTVlV3Z3dEk0aXJLT0hDcG1BU0ZTMHh2WjVF UUlnRWRBMUFXZk0vWGlISFkvaXNzMGdjS0hoa3F3Z1ltdW8yTTBLaEpMZDVVczZtZz09Citwb3N0 Y3NzLXN2Z29AXjUuMC4zOgorICB2ZXJzaW9uICI1LjAuMyIKKyAgcmVzb2x2ZWQgImh0dHBzOi8v cmVnaXN0cnkueWFybnBrZy5jb20vcG9zdGNzcy1zdmdvLy0vcG9zdGNzcy1zdmdvLTUuMC4zLnRn eiNkOTQ1MTg1NzU2ZTVkZmFhZTA3ZjllZGIwZDNjYWU3ZmY3OWY5YjMwIgorICBpbnRlZ3JpdHkg c2hhNTEyLTQxWFpVQTF3TkRBWnJRM1hnV1JFTC9NMnpTdzhMSlB2YjVaV2l2bGpCc1VRQUdvRUtN WW02b2tIc1RqSnhLWUk0TTc1UlFFSDRLWWxFTTUyVndkWFZBPT0KICAgZGVwZW5kZW5jaWVzOgog ICAgIHBvc3Rjc3MtdmFsdWUtcGFyc2VyICJeNC4xLjAiCi0gICAgc3ZnbyAiXjIuMy4wIgorICAg IHN2Z28gIl4yLjcuMCIKIAogcG9zdGNzcy11bmlxdWUtc2VsZWN0b3JzQF41LjAuMToKICAgdmVy c2lvbiAiNS4wLjEiCkBAIC04Njk3LDE0ICs4Mzg0LDE0IEBAIHBvc3Rjc3MtdmFsdWUtcGFyc2Vy QF40LjAuMiwgcG9zdGNzcy12YWx1ZS1wYXJzZXJAXjQuMS4wOgogICByZXNvbHZlZCAiaHR0cHM6 Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9wb3N0Y3NzLXZhbHVlLXBhcnNlci8tL3Bvc3Rjc3MtdmFs dWUtcGFyc2VyLTQuMS4wLnRneiM0NDNmNmEyMGNlZDY0ODFhMmJkYTRmYTg1MzJhNmU1NWQ3ODlh MmNiIgogICBpbnRlZ3JpdHkgc2hhNTEyLTk3RFhPRmJRSmhrNzFuZTUvTXQ2Y091Nnl4c1NmTTBR R1F5bDBMMjVHY2E0eUdXRUdKYWlnN2w3Z2JDWDYyM1ZxVEJOR0xSTGFWVUNuTmtjZWRsUlNRPT0K IAotcG9zdGNzc0BeOC4yLjE1LCBwb3N0Y3NzQF44LjIuNiwgcG9zdGNzc0BeOC4yLjk6Ci0gIHZl cnNpb24gIjguMi4xNSIKLSAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20v cG9zdGNzcy8tL3Bvc3Rjc3MtOC4yLjE1LnRneiM5ZTY2Y2NmMDcyOTI4MTdkMjI2ZmMzMTVjYmJm OWJjMTQ4ZmJjYTY1IgotICBpbnRlZ3JpdHkgc2hhNTEyLTJ6TzNiMjZlSkQvOHJiMTA2UXUybzdR Z2c1Mk5ENUhQamN5UWlLMkI5OE8zODhoNDNBNDQ4TENzbEMwZEkyUDk3d0NBUVJKc0Z2d1RSY1h4 VEtkcytRPT0KK3Bvc3Rjc3NAXjguMi4xNSwgcG9zdGNzc0BeOC4zLjU6CisgIHZlcnNpb24gIjgu My4xMSIKKyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vcG9zdGNzcy8t L3Bvc3Rjc3MtOC4zLjExLnRneiNjM2JlY2E3ZWE4MTFjZDVlMWM0YTNlYzZkMmU3NTk5ZWYxZjhm ODU4IgorICBpbnRlZ3JpdHkgc2hhNTEyLWhDbWxVQUlsVWlhdjhYZHF3M0lvNExjcEExRE90N2gz TFNUQUM0RzZKR0hGRmFXekk2cXZGdDlvaWx2bDhCbWtiQlJYMUloTTkwWkFtcGs2OHpjY1FBPT0K ICAgZGVwZW5kZW5jaWVzOgotICAgIGNvbG9yZXR0ZSAiXjEuMi4yIgotICAgIG5hbm9pZCAiXjMu MS4yMyIKLSAgICBzb3VyY2UtbWFwICJeMC42LjEiCisgICAgbmFub2lkICJeMy4xLjMwIgorICAg IHBpY29jb2xvcnMgIl4xLjAuMCIKKyAgICBzb3VyY2UtbWFwLWpzICJeMC42LjIiCiAKIHByZWNv bmRAXjAuMi4zOgogICB2ZXJzaW9uICIwLjIuMyIKQEAgLTkwNDQsNiArODczMSwxMiBAQCByZWFj dC1jaGVja2JveC10cmVlQF4xLjcuMjoKICAgICBuYW5vaWQgIl4zLjAuMCIKICAgICBwcm9wLXR5 cGVzICJeMTUuNS44IgogCisicmVhY3QtZGF0YS1ncmlkQGdpdCtodHRwczovL2dpdGh1Yi5jb20v YWRpdHlhdG9zaG5pd2FsL3JlYWN0LWRhdGEtZ3JpZC8jZGNjYjdkMDU0OTIwNWEzOGE2ODkxOWVi YmY1ZDg5MTFjOWMwOGFjOCI6CisgIHZlcnNpb24gIjcuMC4wLWJldGEuMTEiCisgIHJlc29sdmVk ICJnaXQraHR0cHM6Ly9naXRodWIuY29tL2FkaXR5YXRvc2huaXdhbC9yZWFjdC1kYXRhLWdyaWQv I2RjY2I3ZDA1NDkyMDVhMzhhNjg5MTllYmJmNWQ4OTExYzljMDhhYzgiCisgIGRlcGVuZGVuY2ll czoKKyAgICBjbHN4ICJeMS4xLjEiCisKIHJlYWN0LWRvbUBeMTYuNi4zOgogICB2ZXJzaW9uICIx Ni4xNC4wIgogICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9yZWFjdC1k b20vLS9yZWFjdC1kb20tMTYuMTQuMC50Z3ojN2FkODM4ZWMyOWE3NzdmYjNjNzVjM2ExOTBmNjYx Y2Y5MmFiOGI4OSIKQEAgLTkwODgsMTAgKzg3ODEsMTcgQEAgcmVhY3QtaXNAXjE2LjEyLjAsIHJl YWN0LWlzQF4xNi4xMy4xLCByZWFjdC1pc0BeMTYuNy4wLCByZWFjdC1pc0BeMTYuOC4wLCByZWFj dC0KICAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vcmVhY3QtaXMvLS9y ZWFjdC1pcy0xNy4wLjIudGd6I2U2OTFkNGE4ZTljNzg5MzY1NjU1NTM5YWIzNzI3NjJiMGVmYjU0 ZjAiCiAgIGludGVncml0eSBzaGE1MTItdzJHc3l1a0w2MklKbmxhZmYvblJlZ1BRUjk0Qy9YWGFt dk1XbVNIUko0eTdUcy80b2NHUm1USHZPczhQU0U2cEIzZFdPckQvbnVldVU1c2R1QnNRNHc9PQog Ci1yZWFjdC1wcm9wZXJ0eUAxLjAuMToKLSAgdmVyc2lvbiAiMS4wLjEiCi0gIHJlc29sdmVkICJo dHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL3JlYWN0LXByb3BlcnR5Ly0vcmVhY3QtcHJvcGVy dHktMS4wLjEudGd6IzRhZTQyMTE1NTdkMGEwYWUwNTBhNzFhYThhZDI4OGMwNzRiZWE0ZTYiCi0g IGludGVncml0eSBzaGE1MTItMXRLT3d4Rm4zZFhWb21INnBNOUlrTGtxMlk4b2grZmgvbFlXM01K L0IwM1VSc3dVVHF0dGdja09sYnhZMlhIRjN2UEc2dWFuU2M0ZFZzTFcvd2szd1E9PQorcmVhY3Qt bGVhZmxldEBeMy4yLjI6CisgIHZlcnNpb24gIjMuMi4yIgorICByZXNvbHZlZCAiaHR0cHM6Ly9y ZWdpc3RyeS55YXJucGtnLmNvbS9yZWFjdC1sZWFmbGV0Ly0vcmVhY3QtbGVhZmxldC0zLjIuMi50 Z3ojM2Q3Nzk2NjJjMzJhMWQ4NzI5ZTczZDI0ZThhZDk2ZWU1YjM4YmVlZiIKKyAgaW50ZWdyaXR5 IHNoYTUxMi01VzdpV2pJOStDZFRHVkFJQ2U4UlV5SzBuK3VMc2hyK2VMUWE4ZUJDYm1zdFBOcENI WkpUVVNianU0V3M1ZGtTL1BVQ3I5dDVWbW9JRTlDWHVTQkVodz09CisgIGRlcGVuZGVuY2llczoK KyAgICAiQHJlYWN0LWxlYWZsZXQvY29yZSIgIl4xLjEuMSIKKworcmVhY3QtcHJvcGVydHlAMi4w LjA6CisgIHZlcnNpb24gIjIuMC4wIgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJu cGtnLmNvbS9yZWFjdC1wcm9wZXJ0eS8tL3JlYWN0LXByb3BlcnR5LTIuMC4wLnRneiMyMTU2YmE5 ZDg1ZmE0NzQxZmFmMTkxOGIzOGVmYzFlYWUzYzZhMTM2IgorICBpbnRlZ3JpdHkgc2hhNTEyLWt6 bU5qSWdVMzJtTzRtbUg1K2lVeXJxbHBGUWhGOEsyazdlWjRmZExTT1BGckQxWGdFdVNCdjlMREVn eFJYVE1CcU1kOHBwVDB4NlRJenFFNXBkR2R3PT0KIAogcmVhY3Qtc2VsZWN0QF40LjIuMToKICAg dmVyc2lvbiAiNC4zLjEiCkBAIC05MTM1LDkgKzg4MzUsOSBAQCByZWFjdC10aW1lci1ob29rQF4z LjAuNToKICAgaW50ZWdyaXR5IHNoYTUxMi1uKzk4U2RtWXZ1aTJuZTNLeVdiM0xkdTRrME5ZUWEz Zy9Welc2VkVJZlpKOEdBay9qSnNJWTcwME04TmQydk5TVGowNWM3d0t5UWZKQnFaMHg3emZpQT09 CiAKIHJlYWN0LXRyYW5zaXRpb24tZ3JvdXBAXjQuMC4wLCByZWFjdC10cmFuc2l0aW9uLWdyb3Vw QF40LjMuMCwgcmVhY3QtdHJhbnNpdGlvbi1ncm91cEBeNC40LjA6Ci0gIHZlcnNpb24gIjQuNC4x IgotICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9yZWFjdC10cmFuc2l0 aW9uLWdyb3VwLy0vcmVhY3QtdHJhbnNpdGlvbi1ncm91cC00LjQuMS50Z3ojNjM4NjhmOTMyNWEz OGVhNWVlOTUzNWQ4MjgzMjdmODU3NzMzNDVjOSIKLSAgaW50ZWdyaXR5IHNoYTUxMi1EanFyN09R MmFQVWlZdXJoUGFsVHJWeTlkZG1GQ0N6d2hxUW10TitKMyszRHpMTzIwOUZkcjcwUXJOOFozRHNn bFdxbDZpWTFsRFdBZnBGaUJ0dUtHdz09CisgIHZlcnNpb24gIjQuNC4yIgorICByZXNvbHZlZCAi aHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9yZWFjdC10cmFuc2l0aW9uLWdyb3VwLy0vcmVh Y3QtdHJhbnNpdGlvbi1ncm91cC00LjQuMi50Z3ojOGI1OWE1NmYwOWNlZDdiNTVjYmQ1M2MzNjc2 OGI5MjI4OTBkNTQ3MCIKKyAgaW50ZWdyaXR5IHNoYTUxMi0vUk5ZZlJBTWxad0RTcjZ6NHpOS1Y2 eHU1My9lMkJ1YUJiR2hieVlJWFRybWd1L2JHSHptcU9zN21KU0pCSHk5VWQrQXBIeDNRanJrS1Nw MXB4dmxGZz09CiAgIGRlcGVuZGVuY2llczoKICAgICAiQGJhYmVsL3J1bnRpbWUiICJeNy41LjUi CiAgICAgZG9tLWhlbHBlcnMgIl41LjAuMSIKQEAgLTkyMTgsMTMgKzg5MTgsNiBAQCByZWFkYWJs ZS1zdHJlYW1AXjMuNC4wLCByZWFkYWJsZS1zdHJlYW1AXjMuNS4wLCByZWFkYWJsZS1zdHJlYW1A XjMuNi4wOgogICAgIHN0cmluZ19kZWNvZGVyICJeMS4xLjEiCiAgICAgdXRpbC1kZXByZWNhdGUg Il4xLjAuMSIKIAotcmVhZGRpcnBAfjMuNS4wOgotICB2ZXJzaW9uICIzLjUuMCIKLSAgcmVzb2x2 ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vcmVhZGRpcnAvLS9yZWFkZGlycC0zLjUu MC50Z3ojOWJhNzRjMDE5YjE1ZDM2NTI3OGQyZTkxYmI4YzQ4ZDdiNGQ0MmM5ZSIKLSAgaW50ZWdy aXR5IHNoYTUxMi1jTWh1N2MvOHJkaGtIWFdzWStvc0JoZlN5MEppa3dwSEsvNStpbW8rTHBlYXNU RjhvdUVySHJsWWt3VDArK25qaXl1RHZjN09GWTVUM3Vrdlo4cW1GUT09Ci0gIGRlcGVuZGVuY2ll czoKLSAgICBwaWNvbWF0Y2ggIl4yLjIuMSIKLQogcmVhZGRpcnBAfjMuNi4wOgogICB2ZXJzaW9u ICIzLjYuMCIKICAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vcmVhZGRp cnAvLS9yZWFkZGlycC0zLjYuMC50Z3ojNzRhMzcwYmQ4NTcxMTZlMjQ1YjI5Y2M5NzM0MGNkNDMx YTAyYTZjNyIKQEAgLTkyMzMsOSArODkyNiw5IEBAIHJlYWRkaXJwQH4zLjYuMDoKICAgICBwaWNv bWF0Y2ggIl4yLjIuMSIKIAogcmVjaG9pckBeMC43LjA6Ci0gIHZlcnNpb24gIjAuNy4wIgotICBy ZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9yZWNob2lyLy0vcmVjaG9pci0w LjcuMC50Z3ojMzI2NTBmZDUyYzIxYWIyNTJhYTVkNjViMTkzMTA0NDFjN2UwM2FjYSIKLSAgaW50 ZWdyaXR5IHNoYTUxMi1BRHNERUgyYnZiamx0WEVQK2hUSUFtZUZla1RGSzBWMkJUeE1rb2s2cUlM eUFKRVhWMEFGZm9XY0FxNHlmbGw1VmRJTWQvUlZYcTBsUit3UWk1WlUzUT09CisgIHZlcnNpb24g IjAuNy4xIgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9yZWNob2ly Ly0vcmVjaG9pci0wLjcuMS50Z3ojOTQ3OGE5NmExY2ExMzViNWU4OGZjMDI3ZjAzZWU5MmQ2YzY0 NTY4NiIKKyAgaW50ZWdyaXR5IHNoYTUxMi0vbmptWjhzMXdWZVI2cGpUWiswbkNudjhTcFpOUk1U MkQxUkxPSlFFU2xZRkRCdndwVEE0S1dKcForc0JKNCt2aGpJTFJjSzdKSUZkR0NkeEVBQWl0Zz09 CiAgIGRlcGVuZGVuY2llczoKICAgICByZXNvbHZlICJeMS45LjAiCiAKQEAgLTkyNjksOSArODk2 Miw5IEBAIHJlZ2VuZXJhdG9yLXJ1bnRpbWVAXjAuMTEuMDoKICAgaW50ZWdyaXR5IHNoYTUxMi1N Z3VHOTVvaWowZkMzUVYzVVJmNFYyU0RZR0poSm5KR3F2SUlnZEVDZU9EQ1Q5OHdTV0RBSjk0U1N1 VnBZUVVvVGNHVUlMNkw0eU5CN2oxREZGSFNCZz09CiAKIHJlZ2VuZXJhdG9yLXJ1bnRpbWVAXjAu MTMuNDoKLSAgdmVyc2lvbiAiMC4xMy43IgotICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55 YXJucGtnLmNvbS9yZWdlbmVyYXRvci1ydW50aW1lLy0vcmVnZW5lcmF0b3ItcnVudGltZS0wLjEz LjcudGd6I2NhYzJkYWNjOGExZWE2NzVmZWFhYmFlYjhhZTgzMzg5OGFlNDZmNTUiCi0gIGludGVn cml0eSBzaGE1MTItYTU0RnhvSkRJcjI3cGdmN0lnZVFHeG1xVU5ZcmNWMzM4bGYvNmdINDU2SFov UGhYKzVCY3dIWEc5YWpFU213ZTZXUk8wdEF6UlVyUm1OT05XZ2tyZXc9PQorICB2ZXJzaW9uICIw LjEzLjkiCisgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL3JlZ2VuZXJh dG9yLXJ1bnRpbWUvLS9yZWdlbmVyYXRvci1ydW50aW1lLTAuMTMuOS50Z3ojODkyNTc0MmE5OGZm ZDkwODE0OTg4ZDc1NjZhZDMwY2EzYjI2M2I1MiIKKyAgaW50ZWdyaXR5IHNoYTUxMi1wM1ZUK2NP RWd4RnNSUkE5WDRsa0kxRStrMi9DdG5LdFU0Z2N4eWFDVXJlaWxML3ZxSTZDZFozd3hWVXgzVU9V ZytnblVPUVFjUkk3Qm1TSTY1Nk1ZQT09CiAKIHJlZ2VuZXJhdG9yLXRyYW5zZm9ybUBeMC4xNC4y OgogICB2ZXJzaW9uICIwLjE0LjUiCkBAIC05Mjg5LDkgKzg5ODIsOSBAQCByZWdleHAucHJvdG90 eXBlLmZsYWdzQF4xLjMuMToKICAgICBkZWZpbmUtcHJvcGVydGllcyAiXjEuMS4zIgogCiByZWdl eHBwQF4zLjEuMDoKLSAgdmVyc2lvbiAiMy4xLjAiCi0gIHJlc29sdmVkICJodHRwczovL3JlZ2lz dHJ5Lnlhcm5wa2cuY29tL3JlZ2V4cHAvLS9yZWdleHBwLTMuMS4wLnRneiMyMDZkMGFkMGE1NjQ4 Y2ZmYmRiOGFlNDY0MzhmM2RjNTFjOWY3OGUyIgotICBpbnRlZ3JpdHkgc2hhNTEyLVpPSXpkOHlW c1FRQTdqOEdDU2xQR1h3ZzVQZm1BMW1ycTBKUDRuR2hoNTRMYUtOM3hkYWkvdkhVRHU3NHBLd1Y4 T3hzZU1TNjV1Mk5JbW9zUWNTRDBRPT0KKyAgdmVyc2lvbiAiMy4yLjAiCisgIHJlc29sdmVkICJo dHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL3JlZ2V4cHAvLS9yZWdleHBwLTMuMi4wLnRneiMw NDI1YTI3NjhkOGYyM2JhZDcwY2E0YjkwNDYxZmEyZjEyMTNlMWIyIgorICBpbnRlZ3JpdHkgc2hh NTEyLXBxMmJXbzltVkQ0M25idHMyd0d2MTdYTGlOTHlhK0drbFo4a2FETFYyWjA4Z0RDc0dwbktu OUJGTWVwdld1SENieVZ2WTdKNW81K0JWdm9RYm1sSkxnPT0KIAogcmVnZXhwdS1jb3JlQF40Ljcu MToKICAgdmVyc2lvbiAiNC43LjEiCkBAIC05NDMzLDE2ICs5MTI2LDYgQEAgcmZkY0BeMS4zLjA6 CiAgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL3JmZGMvLS9yZmRjLTEu My4wLnRneiNkMGI3YzQ0MWFiMjcyMGQwNWRjNGNmMjZlMDFjODk2MzFkOWRhMDhiIgogICBpbnRl Z3JpdHkgc2hhNTEyLVYyaG92ZHpGYk9pNzcvV2FqYVNNWGsyT0xtK3hOSWVRZE1NdUI3aWNqN2Jr NnppMkY4R0dBeGlnY25ERnBKSGJOeU5jZ3lKRGlQKzhuT3JZNWNaR3JBPT0KIAotcmdiLXJlZ2V4 QF4xLjAuMToKLSAgdmVyc2lvbiAiMS4wLjEiCi0gIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5 Lnlhcm5wa2cuY29tL3JnYi1yZWdleC8tL3JnYi1yZWdleC0xLjAuMS50Z3ojYzBlMGQ2ODgyZGYw ZTIzYmUyNTRhNDc1ZThlZGQ0MTkxNWZlYWViMSIKLSAgaW50ZWdyaXR5IHNoYTEtd09EV2lDM3c0 anZpVktSMTZPM1VHUlgrcnJFPQotCi1yZ2JhLXJlZ2V4QF4xLjAuMDoKLSAgdmVyc2lvbiAiMS4w LjAiCi0gIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL3JnYmEtcmVnZXgv LS9yZ2JhLXJlZ2V4LTEuMC4wLnRneiM0MzM3NGUyZTJjYTA5NjhiMGVmMTUyMzQ2MGI3ZDczMGZm MjJlZWIzIgotICBpbnRlZ3JpdHkgc2hhMS1RemRPTGl5Z2xvc084VkkwWUxmWE1QOGk3ck09Ci0K IHJpZm1AXjAuNy4wOgogICB2ZXJzaW9uICIwLjcuMCIKICAgcmVzb2x2ZWQgImh0dHBzOi8vcmVn aXN0cnkueWFybnBrZy5jb20vcmlmbS8tL3JpZm0tMC43LjAudGd6I2RlYmU5NTFhOWM4MzU0OWNh NmIzM2U1OTE5ZjcxNjA0NGMyMjMwYmUiCkBAIC05NTExLDkgKzkxOTQsOSBAQCBzYXNzLWxvYWRl ckBeMTEuMC4wOgogICAgIG5lby1hc3luYyAiXjIuNi4yIgogCiBzYXNzLXJlc291cmNlcy1sb2Fk ZXJAXjIuMi4xOgotICB2ZXJzaW9uICIyLjIuMSIKLSAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0 cnkueWFybnBrZy5jb20vc2Fzcy1yZXNvdXJjZXMtbG9hZGVyLy0vc2Fzcy1yZXNvdXJjZXMtbG9h ZGVyLTIuMi4xLnRneiNkN2RiYzM2Y2NiMjViMmQ4ZmZhNTA4YjFiODYzMGI5ODdkZjFlNWMzIgot ICBpbnRlZ3JpdHkgc2hhNTEyLVdsb2Z4YldPVm54YWQ4NzRJSFpkV2JQOWVXMXBieXFzVEpLQnNN YmVCK1lFTHZMU3JaUU5EVHBINzBzNkYxOUJ3dGFuUjNORUZueUd3SjlXeW90SlRRPT0KKyAgdmVy c2lvbiAiMi4yLjQiCisgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL3Nh c3MtcmVzb3VyY2VzLWxvYWRlci8tL3Nhc3MtcmVzb3VyY2VzLWxvYWRlci0yLjIuNC50Z3ojMWE4 NmZiYTQ5OWU3NGE4OGNiN2NlOTVmMGM5ODQ0OWYzNDhkMzYwZSIKKyAgaW50ZWdyaXR5IHNoYTUx Mi1oSVFoQnlnWWt5K3JMZis0Y3VvR1lPTlo2MjNDRUg0U3dvMWZzMVdSSmt1a2JxZHZOMVZJdTJL Q0w1OWR1NnZYOTJiTkVMek5rR1BMeCtOb3JONzN4QT09CiAgIGRlcGVuZGVuY2llczoKICAgICBh c3luYyAiXjMuMi4wIgogICAgIGNoYWxrICJeNC4xLjAiCkBAIC05NTIxLDExICs5MjA0LDExIEBA IHNhc3MtcmVzb3VyY2VzLWxvYWRlckBeMi4yLjE6CiAgICAgbG9hZGVyLXV0aWxzICJeMi4wLjAi CiAKIHNhc3NAXjEuMjQuNDoKLSAgdmVyc2lvbiAiMS4zMi44IgotICByZXNvbHZlZCAiaHR0cHM6 Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9zYXNzLy0vc2Fzcy0xLjMyLjgudGd6I2YxNmE5YWJkOGRj NTMwYWRkODgzNGU1MDY4NzhhMjgwOGMwMzdiZGMiCi0gIGludGVncml0eSBzaGE1MTItU2w2bUll R3B6aklVWnF2S25LRVRmTWYwaURBc3dEOVRObHYxM0E3YUFGM1habFJQTXE0VnZKV0JDMk4yRFhi cDk0TVFWZE5TRkc2TGZGL2lPWHJQSFE9PQorICB2ZXJzaW9uICIxLjQzLjQiCisgIHJlc29sdmVk ICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL3Nhc3MvLS9zYXNzLTEuNDMuNC50Z3ojNjhj N2Q2YTFiMDA0YmVmNDlhZjBkOWNhZjc1MGU5YjI1MjEwNWQxZiIKKyAgaW50ZWdyaXR5IHNoYTUx Mi0vcHRHN0tFOWx4cEdTWWlYbjdBcitsS092Mzd4ZldzWlJ0RllhbDJRSE5pZ3lWUUR4Njg1VkZU L2g3ZWpWcitSOHc3SDR0bVVndHVsc0tsNVlwdmVPZz09CiAgIGRlcGVuZGVuY2llczoKLSAgICBj aG9raWRhciAiPj0yLjAuMCA8NC4wLjAiCisgICAgY2hva2lkYXIgIj49My4wLjAgPDQuMC4wIgog CiBzYXhAXjEuMi40LCBzYXhAfjEuMi40OgogICB2ZXJzaW9uICIxLjIuNCIKQEAgLTk1NzMsMTIg KzkyNTYsMTIgQEAgc2NoZW1hLXV0aWxzQF4yLjYuNToKICAgICBhanYgIl42LjEyLjQiCiAgICAg YWp2LWtleXdvcmRzICJeMy41LjIiCiAKLXNjaGVtYS11dGlsc0BeMy4wLjA6Ci0gIHZlcnNpb24g IjMuMC4wIgotICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9zY2hlbWEt dXRpbHMvLS9zY2hlbWEtdXRpbHMtMy4wLjAudGd6IzY3NTAyZjZhYTJiNjZhMmQ0MDMyYjQyNzlh Mjk0NDk3OGEwOTEzZWYiCi0gIGludGVncml0eSBzaGE1MTItNkQ4Mi94U3pPMDk0YWphbm9PU2Jl NFl2WFdNZm4yQS8vOFkxK01VcUZBSnVsNUJzK3luMzZ4Yks5T3RORGNSVlNCSjlqamVvWGZ0TTZD Znp0c2pPQUE9PQorc2NoZW1hLXV0aWxzQF4zLjAuMCwgc2NoZW1hLXV0aWxzQF4zLjEuMCwgc2No ZW1hLXV0aWxzQF4zLjEuMToKKyAgdmVyc2lvbiAiMy4xLjEiCisgIHJlc29sdmVkICJodHRwczov L3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL3NjaGVtYS11dGlscy8tL3NjaGVtYS11dGlscy0zLjEuMS50 Z3ojYmM3NGM0YjZiNjk5NWMxZDg4Zjc2YThiNzdiZWE3MjE5ZTBjODI4MSIKKyAgaW50ZWdyaXR5 IHNoYTUxMi1ZNVBReFM0SVRsQytFYWhMdVhhWTg2VFhmUjdEYzVsdzI5NGFsWE9xODZKQUhDaWhB SVpmcXY4bk5DV3ZhRUp2YUM1MXVOOWhiTEdlVjBjRkJkSCtGdz09CiAgIGRlcGVuZGVuY2llczoK LSAgICAiQHR5cGVzL2pzb24tc2NoZW1hIiAiXjcuMC42IgorICAgICJAdHlwZXMvanNvbi1zY2hl bWEiICJeNy4wLjgiCiAgICAgYWp2ICJeNi4xMi41IgogICAgIGFqdi1rZXl3b3JkcyAiXjMuNS4y IgogCkBAIC05NjIxLDE0ICs5MzA0LDcgQEAgc2VtdmVyQF42LjAuMCwgc2VtdmVyQF42LjEuMSwg c2VtdmVyQF42LjEuMiwgc2VtdmVyQF42LjMuMDoKICAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0 cnkueWFybnBrZy5jb20vc2VtdmVyLy0vc2VtdmVyLTYuMy4wLnRneiNlZTBhNjRjOGFmNWU4Y2Vl YTY3Njg3YjEzMzc2MWUxYmVjYmQxZDNkIgogICBpbnRlZ3JpdHkgc2hhNTEyLWIzOVRCYVRTZlY2 eUJyYXBVODlwNWZLZWtFMm0vTnduRG9jT1ZydVFGUzEvdmVNZ2R6dVBjbk9NMzRNNkN3eFc4akgv bHhFYTVyQm9EZVV3dTVISFR3PT0KIAotc2VtdmVyQF43LjIuMSwgc2VtdmVyQF43LjMuNDoKLSAg dmVyc2lvbiAiNy4zLjQiCi0gIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29t L3NlbXZlci8tL3NlbXZlci03LjMuNC50Z3ojMjdhYWE3ZDJlNGNhNzY0NTJmOThkM2FkZDA5M2E3 MmM5NDNlZGM5NyIKLSAgaW50ZWdyaXR5IHNoYTUxMi10Q2ZiMldManFGQXRYbjRLRWR4SWhhbG5S dG9LRk43bkF3ajBCM1pYQ2JRbG9WMnRxNWVEYmNUbVQ2OEpKRDNuUkpxMjQvWGd4dFFLRklwUWR0 dm1Wdz09Ci0gIGRlcGVuZGVuY2llczoKLSAgICBscnUtY2FjaGUgIl42LjAuMCIKLQotc2VtdmVy QF43LjMuNToKK3NlbXZlckBeNy4yLjEsIHNlbXZlckBeNy4zLjQsIHNlbXZlckBeNy4zLjU6CiAg IHZlcnNpb24gIjcuMy41IgogICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNv bS9zZW12ZXIvLS9zZW12ZXItNy4zLjUudGd6IzBiNjIxYzg3OTM0OGQ4OTk4ZTRiMGU0YmU5NGIz ZjEyZTYwMThlZjciCiAgIGludGVncml0eSBzaGE1MTItUG9lR0pZaDhISzRCVE8vYTlUZjZaRzN2 ZW8vQTdaVnNZclNBNko4bnk5bmIzQjFWcnBrdU4rejlPRTV3ZkU1cDZINExjaFlac2VnaVFnYkpE OTRaRlE9PQpAQCAtOTY0Miw2ICs5MzE4LDEzIEBAIHNlcmlhbGl6ZS1qYXZhc2NyaXB0QF41LjAu MToKICAgZGVwZW5kZW5jaWVzOgogICAgIHJhbmRvbWJ5dGVzICJeMi4xLjAiCiAKK3NlcmlhbGl6 ZS1qYXZhc2NyaXB0QF42LjAuMDoKKyAgdmVyc2lvbiAiNi4wLjAiCisgIHJlc29sdmVkICJodHRw czovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL3NlcmlhbGl6ZS1qYXZhc2NyaXB0Ly0vc2VyaWFsaXpl LWphdmFzY3JpcHQtNi4wLjAudGd6I2VmYWU1ZDg4ZjQ1ZDc5MjQxNDFkYThiNWMzYTdhN2U2NjNm ZWZlYjgiCisgIGludGVncml0eSBzaGE1MTItUXIzVG9zdmd1RnQ4ZVBXcXN2UmZyS3lRWElpVytu R2JZcHk4WEsyNE5RSEU4M2NheFd0K21JeW1UVDE5REdGYk5XTkxmRXdzcmtTbU42NGxWV0I5YWc9 PQorICBkZXBlbmRlbmNpZXM6CisgICAgcmFuZG9tYnl0ZXMgIl4yLjEuMCIKKwogc2V0LWJsb2Nr aW5nQH4yLjAuMDoKICAgdmVyc2lvbiAiMi4wLjAiCiAgIHJlc29sdmVkICJodHRwczovL3JlZ2lz dHJ5Lnlhcm5wa2cuY29tL3NldC1ibG9ja2luZy8tL3NldC1ibG9ja2luZy0yLjAuMC50Z3ojMDQ1 Zjk3ODJkMDExYWU5YTY4MDNkZGQzODJiMjQzOTJiM2Q4OTBmNyIKQEAgLTk3MDQsOSArOTM4Nyw5 IEBAIHNoZWJhbmctcmVnZXhAXjMuMC4wOgogICBpbnRlZ3JpdHkgc2hhNTEyLTcrK2RGaHRjeDMz NTN1QmFxOEREUjROdXhCZXRCekM3WlFPaG1UUUluSEVkNmJTclhkaUV5ekN2RzA3WjQ0VVlkTFNo V1V5WHQ1TS95aHo4ZWtjYjFBPT0KIAogc2hlbGwtcXVvdGVAXjEuNi4xOgotICB2ZXJzaW9uICIx LjcuMiIKLSAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vc2hlbGwtcXVv dGUvLS9zaGVsbC1xdW90ZS0xLjcuMi50Z3ojNjdhN2QwMmM3NmM5ZGEyNGY5OWQyMDgwOGZjYWRl ZDBlMGUwNGJlMiIKLSAgaW50ZWdyaXR5IHNoYTUxMi1tUnovbS9KVnNjQ3JrTXlQcUhjL2Jjemkz T1FIa0xUcVhIRUZ1MHpEaEsvcWZ2M1VjT0E0U1ZtUkNMbW9zNGJoanI5ZWtWUXViai9SN3dhS2Fw bWlRZz09CisgIHZlcnNpb24gIjEuNy4zIgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55 YXJucGtnLmNvbS9zaGVsbC1xdW90ZS8tL3NoZWxsLXF1b3RlLTEuNy4zLnRneiNhYTQwZWRhYzE3 MDQ0NWI5YTQzMWUxN2JiNjJjMGI4ODFiOWM0MTIzIgorICBpbnRlZ3JpdHkgc2hhNTEyLVZwZnF3 bTRFbnFHZGxzQkZObUhoeGhFbEpZcmRmY3hQVGh1K3J5S1M1SjhML2ZoQXdMYXpGWnRxK1MrVFda OUFOajJwaVNRTEdqNk5RZytsS1BteHJ3PT0KIAogc2hpbS1sb2FkZXJAXjEuMC4xOgogICB2ZXJz aW9uICIxLjAuMSIKQEAgLTk3MjgsOSArOTQxMSw5IEBAIHNpZGUtY2hhbm5lbEBeMS4wLjQ6CiAg ICAgb2JqZWN0LWluc3BlY3QgIl4xLjkuMCIKIAogc2lnbmFsLWV4aXRAXjMuMC4wLCBzaWduYWwt ZXhpdEBeMy4wLjIsIHNpZ25hbC1leGl0QF4zLjAuMzoKLSAgdmVyc2lvbiAiMy4wLjMiCi0gIHJl c29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL3NpZ25hbC1leGl0Ly0vc2lnbmFs LWV4aXQtMy4wLjMudGd6I2ExNDEwYzJlZGQ4ZjA3N2IwOGI0ZTI1M2M4ZWFjZmNhZjA1NzQ2MWMi Ci0gIGludGVncml0eSBzaGE1MTItVlVKNDlGQzhVMU94d1pMeEliVFRyRHZMbmYvNlREZ3haY0s4 d3hSOHpzMTN4cHg3eGJHNjBuZEJsaE5yRmkyRU11RlJvZURvSk83d3RoU0xxNDJFakE9PQorICB2 ZXJzaW9uICIzLjAuNSIKKyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20v c2lnbmFsLWV4aXQvLS9zaWduYWwtZXhpdC0zLjAuNS50Z3ojOWUzZThjYzBjNzVhOTk0NzJiNDQz MjEwMzNhNzcwMmU3NzM4MjUyZiIKKyAgaW50ZWdyaXR5IHNoYTUxMi1LV2NPaUtlUWo2WnlYeDd6 cTRZeFNNZ0hSbG9kNGN6ZUJRWnJQYjhPS2NvaGNxQVhTaG03RTIwa0VNbGU5V0J0MjZoRmNBZjBx TE9jcDV6bVk3a09xUT09CiAKIHNpbXBsZS1jb25jYXRAXjEuMC4wOgogICB2ZXJzaW9uICIxLjAu MSIKQEAgLTk3MzgsMTEgKzk0MjEsMTEgQEAgc2ltcGxlLWNvbmNhdEBeMS4wLjA6CiAgIGludGVn cml0eSBzaGE1MTItY1NGdEFQdFJobGp2NjlJSzBoVFZaUStPZkU5bmVQaS9ydEptdzVVakhlVnlW cm9FcUpYUDFzRnp0S1V5MXFVK3h2ejN1L3NmWUpMYTk0N2I3bkFOMlE9PQogCiBzaXJ2QF4xLjAu NzoKLSAgdmVyc2lvbiAiMS4wLjEyIgotICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJu cGtnLmNvbS9zaXJ2Ly0vc2lydi0xLjAuMTIudGd6I2Q4MTZjODgyYjM1NDg5YjNjNjMyOTBlMmY0 NTVhZTNlY2NkNWY2NTIiCi0gIGludGVncml0eSBzaGE1MTItK2pRb0N4bmR6N0wydHFRTDRaeXpm RGhreTBXLzRaSmlwM1hvT3V4eVFXbkF3TXhpbmRMbDNYdjFxVDR4MVlYL3JlMGxlU2h2VG04VWsw a1FzcEdoQmc9PQorICB2ZXJzaW9uICIxLjAuMTgiCisgIHJlc29sdmVkICJodHRwczovL3JlZ2lz dHJ5Lnlhcm5wa2cuY29tL3NpcnYvLS9zaXJ2LTEuMC4xOC50Z3ojMTA1ZmFiNTJmYjY1NmNlOGEy YmViYmYzNmIxMTA1MjAwNTk1Mjg5OSIKKyAgaW50ZWdyaXR5IHNoYTUxMi1mMkFPUG9nWm1YZ0o5 TWEyTTIyWkVoYzFkTnRSSXpjRWtpZmxNRmVWVFJxK09WaU9aTXZIMUlQTVZPd3JLYXhwU2FIaW9C SmlEUjBTbHVScUdhN2F0QT09CiAgIGRlcGVuZGVuY2llczoKLSAgICAiQHBvbGthL3VybCIgIl4x LjAuMC1uZXh0LjE1IgorICAgICJAcG9sa2EvdXJsIiAiXjEuMC4wLW5leHQuMjAiCiAgICAgbWlt ZSAiXjIuMy4xIgogICAgIHRvdGFsaXN0ICJeMS4wLjAiCiAKQEAgLTk3OTIsMTcgKzk0NzUsMTYg QEAgc29ja2V0LmlvLWFkYXB0ZXJAfjIuMy4zOgogICBpbnRlZ3JpdHkgc2hhNTEyLVFkL2l3bjNW c2tycE5PNjBCZVJ5Q3lyOFpXdzlDUFp5aXRXNEFRd21SWjh6Q2l5RGlMK3puUm5XWDZ0REhYbldu MXNKck0xK2I2TW42d0VESko0YVlRPT0KIAogc29ja2V0LmlvLWNsaWVudEBeNC4wLjA6Ci0gIHZl cnNpb24gIjQuMS4yIgotICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9z b2NrZXQuaW8tY2xpZW50Ly0vc29ja2V0LmlvLWNsaWVudC00LjEuMi50Z3ojOTVhZDcxMTMzMThl YTAxZmJhMDg2MDIzN2I5NmQ3MWUxYjFmZDJlYiIKLSAgaW50ZWdyaXR5IHNoYTUxMi1SRHBXSlA0 RFFUMVhlZXhtZUR5RGttMHZyRmMwK2JVc0hES2lWR2FOSVNKdkpvbmhRUU9NcVY5VndmZzBacFBK MjdMQ2RhbjdpcVRJOTJGUlNPa0ZXUT09CisgIHZlcnNpb24gIjQuMy4yIgorICByZXNvbHZlZCAi aHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9zb2NrZXQuaW8tY2xpZW50Ly0vc29ja2V0Lmlv LWNsaWVudC00LjMuMi50Z3ojOWNmZGI4ZmVjYWM4YTI0ZDU3MjNkYWY4Yzg3NDllNzBjOGZkZWIy NSIKKyAgaW50ZWdyaXR5IHNoYTUxMi0yQjlMcVN1bk42MHlWOEY3Uzg0Q0NFRWNnYllOZnJuN2Vq SUluWnRMWjdwcFd0aVg4ckdaQWp2ZEN2Ym5DOGJxby85UmxDTk9Vc09STHlza3hTRlAxZz09CiAg IGRlcGVuZGVuY2llczoKLSAgICAiQHR5cGVzL2NvbXBvbmVudC1lbWl0dGVyIiAiXjEuMi4xMCIK KyAgICAiQHNvY2tldC5pby9jb21wb25lbnQtZW1pdHRlciIgIn4zLjAuMCIKICAgICBiYWNrbzIg In4xLjAuMiIKLSAgICBjb21wb25lbnQtZW1pdHRlciAifjEuMy4wIgotICAgIGRlYnVnICJ+NC4z LjEiCi0gICAgZW5naW5lLmlvLWNsaWVudCAifjUuMS4xIgorICAgIGRlYnVnICJ+NC4zLjIiCisg ICAgZW5naW5lLmlvLWNsaWVudCAifjYuMC4xIgogICAgIHBhcnNldXJpICIwLjAuNiIKLSAgICBz b2NrZXQuaW8tcGFyc2VyICJ+NC4wLjQiCisgICAgc29ja2V0LmlvLXBhcnNlciAifjQuMS4xIgog CiBzb2NrZXQuaW8tcGFyc2VyQH40LjAuNDoKICAgdmVyc2lvbiAiNC4wLjQiCkBAIC05ODEzLDYg Kzk0OTUsMTQgQEAgc29ja2V0LmlvLXBhcnNlckB+NC4wLjQ6CiAgICAgY29tcG9uZW50LWVtaXR0 ZXIgIn4xLjMuMCIKICAgICBkZWJ1ZyAifjQuMy4xIgogCitzb2NrZXQuaW8tcGFyc2VyQH40LjEu MToKKyAgdmVyc2lvbiAiNC4xLjEiCisgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5w a2cuY29tL3NvY2tldC5pby1wYXJzZXIvLS9zb2NrZXQuaW8tcGFyc2VyLTQuMS4xLnRneiMwYWQ1 M2Q5ODA3ODFjYWIxZWFiZTMyMDQxN2Q4NDgwYzAxMzNlNjJkIgorICBpbnRlZ3JpdHkgc2hhNTEy LVVTUVZMU2tEV0U1bmJjWTc2MEV4ZEthSnhDRTY1a2NzRy84azVGREdaVlZ4cEQxcEE3aEFCWVhZ a0NVdnhVdVlZaC8rdVF3ME4vZnZCemZUOG8wN0tBPT0KKyAgZGVwZW5kZW5jaWVzOgorICAgICJA c29ja2V0LmlvL2NvbXBvbmVudC1lbWl0dGVyIiAifjMuMC4wIgorICAgIGRlYnVnICJ+NC4zLjEi CisKIHNvY2tldC5pb0BeNC4yLjA6CiAgIHZlcnNpb24gIjQuNC4xIgogICByZXNvbHZlZCAiaHR0 cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9zb2NrZXQuaW8vLS9zb2NrZXQuaW8tNC40LjEudGd6 I2NkNmRlMjllMjc3YTE2MWQxNzY4MzJiYjI0ZjY0ZWUwNDVjNTZhYjgiCkBAIC05ODY4LDE1ICs5 NTU4LDIwIEBAIHNvdXJjZS1saXN0LW1hcEBeMS4xLjE6CiAgIHJlc29sdmVkICJodHRwczovL3Jl Z2lzdHJ5Lnlhcm5wa2cuY29tL3NvdXJjZS1saXN0LW1hcC8tL3NvdXJjZS1saXN0LW1hcC0xLjEu Mi50Z3ojOTg4OTAxOWQxMDI0Y2NlNTVjZGMwNjk0OTgzMzdlZjYxODZhMTFhMSIKICAgaW50ZWdy aXR5IHNoYTEtbUlrQm5SQWt6T1ZjM0FhVW1ETis5aGhxRWFFPQogCi1zb3VyY2UtbGlzdC1tYXBA XjIuMC4wLCBzb3VyY2UtbGlzdC1tYXBAXjIuMC4xOgorc291cmNlLWxpc3QtbWFwQF4yLjAuMDoK ICAgdmVyc2lvbiAiMi4wLjEiCiAgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cu Y29tL3NvdXJjZS1saXN0LW1hcC8tL3NvdXJjZS1saXN0LW1hcC0yLjAuMS50Z3ojMzk5M2JkODcz YmZjNDg0NzljY2E5ZWEzYTU0NzgzNWM3YzE1NGIzNCIKICAgaW50ZWdyaXR5IHNoYTUxMi1xblE3 Z1ZNeEdOeHNpTDRsRXVKd2UvVG84VW5LN2ZBbm1iR0VFSDhScExvdXVLYmVFbTBsaGJRVkZJck5T dUIrRzd0VnJBbFZzWmdFVFQ1bmxqZitJdz09CiAKLXNvdXJjZS1tYXAtc3VwcG9ydEBeMC41LjUs IHNvdXJjZS1tYXAtc3VwcG9ydEB+MC41LjE5OgotICB2ZXJzaW9uICIwLjUuMTkiCi0gIHJlc29s dmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL3NvdXJjZS1tYXAtc3VwcG9ydC8tL3Nv dXJjZS1tYXAtc3VwcG9ydC0wLjUuMTkudGd6I2E5OGI2MmY4NmRjYWY0ZjY3Mzk5NjQ4YzA4NTI5 MWFiOWU4ZmVkNjEiCi0gIGludGVncml0eSBzaGE1MTItV29ubTd6T0NJSnpCR1FkQit0aHNQYXIw a1l1Q0l6WXZ4WndsQmE4N3lpL01kanY3VGlwMmN5VmJMajVvMGNGUE40RVZrdVR3YjNHRER5VXgy REduR3c9PQorc291cmNlLW1hcC1qc0BeMC42LjI6CisgIHZlcnNpb24gIjAuNi4yIgorICByZXNv bHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9zb3VyY2UtbWFwLWpzLy0vc291cmNl LW1hcC1qcy0wLjYuMi50Z3ojMGJiNWRlNjMxYjQxY2ZiZGE2Y2ZiYThiZDA1YTgwZWZkZmQyMzg1 ZSIKKyAgaW50ZWdyaXR5IHNoYTUxMi0vM0dwdHpXenUwKzBNQlFGckRLencvRHZ2TVRVT1J2Z1k2 azZqZC9WUzZpQ1I0UkRUS1dINnY2V1B3UW9VTzg2Njd1UUVmOU9lMzhEeEFZV1k1Ri9VZz09CisK K3NvdXJjZS1tYXAtc3VwcG9ydEBeMC41LjUsIHNvdXJjZS1tYXAtc3VwcG9ydEB+MC41LjIwOgor ICB2ZXJzaW9uICIwLjUuMjAiCisgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cu Y29tL3NvdXJjZS1tYXAtc3VwcG9ydC8tL3NvdXJjZS1tYXAtc3VwcG9ydC0wLjUuMjAudGd6IzEy MTY2MDg5ZjhmNWU1ZThjNTY5MjZiMzc3NjMzMzkyZGQyY2I2YzkiCisgIGludGVncml0eSBzaGE1 MTItbjFsWlo4VmU0a3NScWl6YUJRZ3hYRGdLd3R0SERoeWZRakE2WVpabjgrQXJvSGJzSXorSmp3 eFFEeGJwKzd5NU9ZQ0k4dDFZazdldGpEOUNSZDJoSXc9PQogICBkZXBlbmRlbmNpZXM6CiAgICAg YnVmZmVyLWZyb20gIl4xLjAuMCIKICAgICBzb3VyY2UtbWFwICJeMC42LjAiCkBAIC05OTcwLDcg Kzk2NjUsNyBAQCBzdHJlYW0tc3BsaWNlckBeMi4wLjA6CiBzdHJlYW1yb2xsZXJAXjMuMC4yOgog ICB2ZXJzaW9uICIzLjAuMiIKICAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5j b20vc3RyZWFtcm9sbGVyLy0vc3RyZWFtcm9sbGVyLTMuMC4yLnRneiMzMDQxOGQwZWVlM2Q2Yzkz ZWM4OTdmODkyZWQwOThlM2E4MWU2OGI3IgotICBpbnRlZ3JpdHkgInNoYTEtTUVHTkR1NDliSlBz aVgrSkx0Q1k0NmdlYUxjPSBzaGE1MTItdXI2eTVTNWRvcE9hUlhCdVJJWjF1NkdDNWJjRVhIUlpL Z2ZCamZDZ2xNaG1JZityb1ZDRUNqdmtFWXpOUU9YSU4yL0pQbmtNUFcvOEIzQ1pvS2FFUEE9PSIK KyAgaW50ZWdyaXR5IHNoYTUxMi11cjZ5NVM1ZG9wT2FSWEJ1UklaMXU2R0M1YmNFWEhSWktnZkJq ZkNnbE1obUlmK3JvVkNFQ2p2a0VZek5RT1hJTjIvSlBua01QVy84QjNDWm9LYUVQQT09CiAgIGRl cGVuZGVuY2llczoKICAgICBkYXRlLWZvcm1hdCAiXjQuMC4zIgogICAgIGRlYnVnICJeNC4xLjEi CkBAIC05OTkwLDE0ICs5Njg1LDE0IEBAIHN0cmluZy13aWR0aEBeMS4wLjE6CiAgICAgaXMtZnVs bHdpZHRoLWNvZGUtcG9pbnQgIl4xLjAuMCIKICAgICBzdHJpcC1hbnNpICJeMy4wLjAiCiAKLSJz dHJpbmctd2lkdGhAXjEuMC4yIHx8IDIgfHwgMyB8fCA0Iiwgc3RyaW5nLXdpZHRoQF40LjEuMCwg c3RyaW5nLXdpZHRoQF40LjIuMDoKLSAgdmVyc2lvbiAiNC4yLjIiCi0gIHJlc29sdmVkICJodHRw czovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL3N0cmluZy13aWR0aC8tL3N0cmluZy13aWR0aC00LjIu Mi50Z3ojZGFmZDRmOTU1OWE3NTg1Y2ZiYTUyOWM2YTBhNGY3MzQ4OGViZDRjNSIKLSAgaW50ZWdy aXR5IHNoYTUxMi1YQkpiVDNONEpoVnVtWEUwZW9MVTlEQ2pjYUY5MktMTnFUbUZDbkcxcGY4ZHVV eEZHd3RQNkFENm5ranc5YTNJZGlSdEwzRTJ3M0pEaUUveGkzdk9lQT09Cisic3RyaW5nLXdpZHRo QF4xLjAuMiB8fCAyIHx8IDMgfHwgNCIsIHN0cmluZy13aWR0aEBeNC4xLjAsIHN0cmluZy13aWR0 aEBeNC4yLjAsIHN0cmluZy13aWR0aEBeNC4yLjM6CisgIHZlcnNpb24gIjQuMi4zIgorICByZXNv bHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9zdHJpbmctd2lkdGgvLS9zdHJpbmct d2lkdGgtNC4yLjMudGd6IzI2OWM3MTE3ZDI3YjA1YWQyZTUzNjgzMGE4ZWM4OTVlZjljNmQwMTAi CisgIGludGVncml0eSBzaGE1MTItd0t5UVJRcGpKMHNJcDYyRXJTWmRHc2pNSldzYXA1b1JOaWhI aHU2RzdKVk8vOWpJQjZVeWV2TCt0WHVPcXJuZzhqL2N4S1RXeVdVd3ZTVHJpaVp6L2c9PQogICBk ZXBlbmRlbmNpZXM6CiAgICAgZW1vamktcmVnZXggIl44LjAuMCIKICAgICBpcy1mdWxsd2lkdGgt Y29kZS1wb2ludCAiXjMuMC4wIgotICAgIHN0cmlwLWFuc2kgIl42LjAuMCIKKyAgICBzdHJpcC1h bnNpICJeNi4wLjEiCiAKIHN0cmluZy5mcm9tY29kZXBvaW50QF4wLjIuMToKICAgdmVyc2lvbiAi MC4yLjEiCkBAIC0xMDAwOSwxNCArOTcwNCwxNCBAQCBzdHJpbmcucHJvdG90eXBlLmNvZGVwb2lu dGF0QF4wLjIuMToKICAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vc3Ry aW5nLnByb3RvdHlwZS5jb2RlcG9pbnRhdC8tL3N0cmluZy5wcm90b3R5cGUuY29kZXBvaW50YXQt MC4yLjEudGd6IzAwNGFkNDRjOGFmYzcyNzUyN2IxMDhjZDQ2MmI0ZDk3MWNkNDY5YmMiCiAgIGlu dGVncml0eSBzaGE1MTItMmNCVkNqNkk0SU92RW5qZ08vaFdxWGpxQkdzWSt6d1BtSGwxMlNyazlJ WFNaNTZKd3dteSs2NlhPNUl1dC9vUVZSN3Q1aWhZZExCMEdNYTRhbEVVY2c9PQogCi1zdHJpbmcu cHJvdG90eXBlLm1hdGNoYWxsQF40LjAuNDoKLSAgdmVyc2lvbiAiNC4wLjUiCi0gIHJlc29sdmVk ICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL3N0cmluZy5wcm90b3R5cGUubWF0Y2hhbGwv LS9zdHJpbmcucHJvdG90eXBlLm1hdGNoYWxsLTQuMC41LnRneiM1OTM3MDY0NGUxZGI3ZTRjMGMw NDUyNzc2OTBjZjdiMDEyMDNjNGRhIgotICBpbnRlZ3JpdHkgc2hhNTEyLVo1WmFYTzBzdnMwTTJ4 ZC82QnkzcXBlS3BMS2Q5bU80djRxM29NRVFyazhDazR4T0Q1ZDVYZUJPT2pHcm1WWlovQUhCMVMw Q2dHNE41cjFHOU4zRTJRPT0KK3N0cmluZy5wcm90b3R5cGUubWF0Y2hhbGxAXjQuMC41OgorICB2 ZXJzaW9uICI0LjAuNiIKKyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20v c3RyaW5nLnByb3RvdHlwZS5tYXRjaGFsbC8tL3N0cmluZy5wcm90b3R5cGUubWF0Y2hhbGwtNC4w LjYudGd6IzVhYmI1ZGFiYzk0YzdiMGVhMjM4MGY2NWJhNjEwYjNhNTQ0YjE1ZmEiCisgIGludGVn cml0eSBzaGE1MTItNldnRFg4SG1RcXZFZDdKK0c2VnRBYWhoc1FJc3NpWjh6bDd6S2gxVkRNRnlM M2hSVEpQNEZUTkEzUmJJcDJUT1E5QVlORGNjN2UzZkgwUWJ1cCtEQmc9PQogICBkZXBlbmRlbmNp ZXM6CiAgICAgY2FsbC1iaW5kICJeMS4wLjIiCiAgICAgZGVmaW5lLXByb3BlcnRpZXMgIl4xLjEu MyIKLSAgICBlcy1hYnN0cmFjdCAiXjEuMTguMiIKKyAgICBlcy1hYnN0cmFjdCAiXjEuMTkuMSIK ICAgICBnZXQtaW50cmluc2ljICJeMS4xLjEiCiAgICAgaGFzLXN5bWJvbHMgIl4xLjAuMiIKICAg ICBpbnRlcm5hbC1zbG90ICJeMS4wLjMiCkBAIC0xMDAyNCwxMyArOTcxOSwxMyBAQCBzdHJpbmcu cHJvdG90eXBlLm1hdGNoYWxsQF40LjAuNDoKICAgICBzaWRlLWNoYW5uZWwgIl4xLjAuNCIKIAog c3RyaW5nLnByb3RvdHlwZS50cmltQF4xLjIuMToKLSAgdmVyc2lvbiAiMS4yLjQiCi0gIHJlc29s dmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL3N0cmluZy5wcm90b3R5cGUudHJpbS8t L3N0cmluZy5wcm90b3R5cGUudHJpbS0xLjIuNC50Z3ojNjAxNDY4OWJhZjVlZmFmMTA2YWQwMzFh NWZhNDUxNTc2NjZlZDFiZCIKLSAgaW50ZWdyaXR5IHNoYTUxMi1oV0NrL2lxZjdscDAvQWdURjcv ZGRPMUlXdFNOUEFTamx6Q2ljVjVpckFWZEUxZ3Jqc25lSzI2WUc2eEFDTUJFZEN2TzhmVVNUMFV6 RE1oLzJReSs5UT09CisgIHZlcnNpb24gIjEuMi41IgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdp c3RyeS55YXJucGtnLmNvbS9zdHJpbmcucHJvdG90eXBlLnRyaW0vLS9zdHJpbmcucHJvdG90eXBl LnRyaW0tMS4yLjUudGd6I2E1ODdiY2M4YmZhZDhjYjk4MjlhNTc3ZjVkZTMwZGQxNzBjMTY4MmMi CisgIGludGVncml0eSBzaGE1MTItTG5oMTd3ZWJKVnNENkVDZW92cFZOMTdSbEFLam16NHJGOVMr OFk0NUNrTWMvdWZWcFRrVTN2Wkl5SUM3c2xsUTFGQ3ZPYlpubkNkTnMvSFhUVU9UbGc9PQogICBk ZXBlbmRlbmNpZXM6CiAgICAgY2FsbC1iaW5kICJeMS4wLjIiCiAgICAgZGVmaW5lLXByb3BlcnRp ZXMgIl4xLjEuMyIKLSAgICBlcy1hYnN0cmFjdCAiXjEuMTguMC1uZXh0LjIiCisgICAgZXMtYWJz dHJhY3QgIl4xLjE5LjEiCiAKIHN0cmluZy5wcm90b3R5cGUudHJpbWVuZEBeMS4wLjQ6CiAgIHZl cnNpb24gIjEuMC40IgpAQCAtMTAwNzQsMTIgKzk3NjksMTIgQEAgc3RyaXAtYW5zaUBeMy4wLjAs IHN0cmlwLWFuc2lAXjMuMC4xOgogICBkZXBlbmRlbmNpZXM6CiAgICAgYW5zaS1yZWdleCAiXjIu MC4wIgogCi1zdHJpcC1hbnNpQF42LjAuMDoKLSAgdmVyc2lvbiAiNi4wLjAiCi0gIHJlc29sdmVk ICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL3N0cmlwLWFuc2kvLS9zdHJpcC1hbnNpLTYu MC4wLnRneiMwYjE1NzFkZDc2NjljY2Q0ZjNlMDZlMTRlZjFlZWQyNjIyNWFlNTMyIgotICBpbnRl Z3JpdHkgc2hhNTEyLUF1dktUclRmUU5ZTkljdGJSMUsvWUdUUjE3NTZHeWNQc2c3YjliZFY5RHVx dXI0Z3Y2YUtxSFhhaDY3WjhJbVM3V0V6NVFWY090bGZXMnJaRXVndDZ3PT0KK3N0cmlwLWFuc2lA XjYuMC4wLCBzdHJpcC1hbnNpQF42LjAuMToKKyAgdmVyc2lvbiAiNi4wLjEiCisgIHJlc29sdmVk ICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL3N0cmlwLWFuc2kvLS9zdHJpcC1hbnNpLTYu MC4xLnRneiM5ZTI2YzYzZDMwZjUzNDQzZTk0ODk0OTViMjEwNWQzN2I2N2E4NWQ5IgorICBpbnRl Z3JpdHkgc2hhNTEyLVkzOFZQU0hjcWtGckNwRm5ROXZ1U1htcXV1djVvWE9LcEdlVDZhR3JyM28z R2M5QWxWYTZKQmZVU09DbmJ4R0daRisvMG9vSTdLclB1VVN6dFVkVTVBPT0KICAgZGVwZW5kZW5j aWVzOgotICAgIGFuc2ktcmVnZXggIl41LjAuMCIKKyAgICBhbnNpLXJlZ2V4ICJeNS4wLjEiCiAK IHN0cmlwLWNvbW1lbnRzQF4yLjAuMToKICAgdmVyc2lvbiAiMi4wLjEiCkBAIC0xMDExNSw2ICs5 ODEwLDExIEBAIHN0cmlwLW91dGVyQF4xLjAuMDoKICAgZGVwZW5kZW5jaWVzOgogICAgIGVzY2Fw ZS1zdHJpbmctcmVnZXhwICJeMS4wLjIiCiAKK3N0cm51bUBeMS4wLjQ6CisgIHZlcnNpb24gIjEu MC40IgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9zdHJudW0vLS9z dHJudW0tMS4wLjQudGd6I2U5N2UzNmE3ZDZiYTlmOTNkMGQ2YjQ5NmIyZWQwNjc4ZDQyMjgzMmIi CisgIGludGVncml0eSBzaGE1MTItbE16Tk1mRHBhUU9MdDRCMm1FYmZ6WVMwK1Q3ZHZDWGVvam5s R2Y2ZjFBeWd2V0RNY1d5WFlhTGJ5SUNmalZ1MjlzRXJSOGZuUmFnUWZCVy9OL2hHZ3c9PQorCiBz dHlsZS1sb2FkZXJAXjIuMC4wOgogICB2ZXJzaW9uICIyLjAuMCIKICAgcmVzb2x2ZWQgImh0dHBz Oi8vcmVnaXN0cnkueWFybnBrZy5jb20vc3R5bGUtbG9hZGVyLy0vc3R5bGUtbG9hZGVyLTIuMC4w LnRneiM5NjY5NjAyZmQ0NjkwNzQwZWFhZWMxMzc3OTlhMDNhZGRiYmMzOTNjIgpAQCAtMTAxMzgs MTYgKzk4MzgsMTYgQEAgc3R5bGUtdG8tb2JqZWN0QDAuMy4wOgogICAgIGlubGluZS1zdHlsZS1w YXJzZXIgIjAuMS4xIgogCiBzdHlsZWQtY29tcG9uZW50c0BeNS4yLjE6Ci0gIHZlcnNpb24gIjUu Mi4xIgotICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9zdHlsZWQtY29t cG9uZW50cy8tL3N0eWxlZC1jb21wb25lbnRzLTUuMi4xLnRneiM2ZWQ3ZmFkMmRjMjMzODI1ZjY0 YzcxOWZmYmRlZGQ4NGFkNzkxMDFhIgotICBpbnRlZ3JpdHkgc2hhNTEyLXNCZGdMV3JDRlRLdG1a bS85eDdqa0lhYmpGTlZ6Q1VlS2ZvUXNNNlIzc2FJbWtVbmp4MFFZZEx3SkhCalk5aWZFY21qRGFt SkRWZmtuV20xeXhaUHhRPT0KKyAgdmVyc2lvbiAiNS4zLjMiCisgIHJlc29sdmVkICJodHRwczov L3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL3N0eWxlZC1jb21wb25lbnRzLy0vc3R5bGVkLWNvbXBvbmVu dHMtNS4zLjMudGd6IzMxMmEzZDlhNTQ5ZjQ3MDhmMGZiMGVkYzgyOWViMzRiZGUwMzI3NDMiCisg IGludGVncml0eSBzaGE1MTItKys0aUh3Qk03Wk4reDZEdFBQV2tDSTR2ZHR3dW1RK2luQS9EZEFz cVlkNFNWZ1VLSmllNXZYeXpvdEEwMHR0Y0ZkUWtDbmc3emM2Z3J3bGZJZncrbHc9PQogICBkZXBl bmRlbmNpZXM6CiAgICAgIkBiYWJlbC9oZWxwZXItbW9kdWxlLWltcG9ydHMiICJeNy4wLjAiCiAg ICAgIkBiYWJlbC90cmF2ZXJzZSIgIl43LjQuNSIKICAgICAiQGVtb3Rpb24vaXMtcHJvcC12YWxp ZCIgIl4wLjguOCIKICAgICAiQGVtb3Rpb24vc3R5bGlzIiAiXjAuOC40IgogICAgICJAZW1vdGlv bi91bml0bGVzcyIgIl4wLjcuNCIKLSAgICBiYWJlbC1wbHVnaW4tc3R5bGVkLWNvbXBvbmVudHMg Ij49IDEiCisgICAgYmFiZWwtcGx1Z2luLXN0eWxlZC1jb21wb25lbnRzICI+PSAxLjEyLjAiCiAg ICAgY3NzLXRvLXJlYWN0LW5hdGl2ZSAiXjMuMC4wIgogICAgIGhvaXN0LW5vbi1yZWFjdC1zdGF0 aWNzICJeMy4wLjAiCiAgICAgc2hhbGxvd2VxdWFsICJeMS4xLjAiCkBAIC0xMDE2MSw3ICs5ODYx LDcgQEAgc3R5bGVoYWNrc0BeNS4wLjE6CiAgICAgYnJvd3NlcnNsaXN0ICJeNC4xNi4wIgogICAg IHBvc3Rjc3Mtc2VsZWN0b3ItcGFyc2VyICJeNi4wLjQiCiAKLXN0eWxpc0BeNC4wLjMsIHN0eWxp c0BeNC4wLjc6CitzdHlsaXNAXjQuMC4xMCwgc3R5bGlzQF40LjAuNzoKICAgdmVyc2lvbiAiNC4w LjEwIgogICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9zdHlsaXMvLS9z dHlsaXMtNC4wLjEwLnRneiM0NDY1MTJkMTA5NzE5N2FiM2YwMmZiM2MyNTgzNThjM2Y3YTE0MjQw IgogICBpbnRlZ3JpdHkgc2hhNTEyLW0zaytkazdRZUp3NjYwZUlLUlJuM3hQRjZ1dXZIcy9GRnpq WDNIUTVvdmUwcVlzaXlnb0Fod241YTNJWUthWlBvNUxyWUQwcmZWbXR2MWdOWTF1WXdnPT0KQEAg LTEwMTg1LDEzICs5ODg1LDIwIEBAIHN1cHBvcnRzLWNvbG9yQF41LjMuMCwgc3VwcG9ydHMtY29s b3JAXjUuNS4wOgogICBkZXBlbmRlbmNpZXM6CiAgICAgaGFzLWZsYWcgIl4zLjAuMCIKIAotc3Vw cG9ydHMtY29sb3JAXjcuMC4wLCBzdXBwb3J0cy1jb2xvckBeNy4xLjA6CitzdXBwb3J0cy1jb2xv ckBeNy4xLjA6CiAgIHZlcnNpb24gIjcuMi4wIgogICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3Ry eS55YXJucGtnLmNvbS9zdXBwb3J0cy1jb2xvci8tL3N1cHBvcnRzLWNvbG9yLTcuMi4wLnRneiMx YjdkY2RjYjMyYjgxMzg4MDFiM2U0NzhiYTZhNTFjYWE4OTY0OGRhIgogICBpbnRlZ3JpdHkgc2hh NTEyLXFwQ0F2Umw5c3R1T0h2ZUtzbjdIbmNKUnZ2NTAxcUlhY0t6UWxPLytMd3hjOSswcTJ3THl2 NERmdnQ4MC9EUG4ycHFPQnNKZERpb2dYR1I5K092d1J3PT0KICAgZGVwZW5kZW5jaWVzOgogICAg IGhhcy1mbGFnICJeNC4wLjAiCiAKK3N1cHBvcnRzLWNvbG9yQF44LjAuMDoKKyAgdmVyc2lvbiAi OC4xLjEiCisgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL3N1cHBvcnRz LWNvbG9yLy0vc3VwcG9ydHMtY29sb3ItOC4xLjEudGd6I2NkNmZjMTdlMjg1MDBjZmY1NmMxYjg2 YzBhN2ZkNGE1NGE3MzAwNWMiCisgIGludGVncml0eSBzaGE1MTItTXBVRU4yT29kdFV6eHZLUWw3 MmNVRjdSUTVFaUhzR3ZTc1ZHMGlhOWM1UmJXR0wyQ0k0QzdFcFBTOFVUQklwbG5selppTnVWNTZ3 K0Z1Tnh5M3R5MlE9PQorICBkZXBlbmRlbmNpZXM6CisgICAgaGFzLWZsYWcgIl40LjAuMCIKKwog c3ZnLXBhcnNlckBeMi4wLjI6CiAgIHZlcnNpb24gIjIuMC40IgogICByZXNvbHZlZCAiaHR0cHM6 Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9zdmctcGFyc2VyLy0vc3ZnLXBhcnNlci0yLjAuNC50Z3oj ZmRjMmUyOWUxMzk1MTczNjE0MGI3NmNiMTIyYzhlZTY2MzBlYjZiNSIKQEAgLTEwMjU3LDE5ICs5 OTY0LDYgQEAgc3Znb0BeMS4yLjIsIHN2Z29AXjEuMy4yOgogICAgIHVucXVvdGUgIn4xLjEuMSIK ICAgICB1dGlsLnByb21pc2lmeSAifjEuMC4wIgogCi1zdmdvQF4yLjMuMDoKLSAgdmVyc2lvbiAi Mi43LjAiCi0gIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL3N2Z28vLS9z dmdvLTIuNy4wLnRneiNlMTY0Y2RlZDIyZjQ0MDhmZTQ5NzhmMDgyYmU4MDE1OWNhZWExZTJkIgot ICBpbnRlZ3JpdHkgc2hhNTEyLWFETHNHa3JlNGZURENXdm9seVcrZnM4WkpGQUJwekxYYnRkSzF5 NzFDS25IekFucER4S1hQajJtTktqK3B5T1hVQ3pGSHp1eFJKOTRYT0Z5Z09XVjN3PT0KLSAgZGVw ZW5kZW5jaWVzOgotICAgICJAdHJ5c291bmQvc2F4IiAiMC4yLjAiCi0gICAgY29tbWFuZGVyICJe Ny4yLjAiCi0gICAgY3NzLXNlbGVjdCAiXjQuMS4zIgotICAgIGNzcy10cmVlICJeMS4xLjMiCi0g ICAgY3NzbyAiXjQuMi4wIgotICAgIG5hbm9jb2xvcnMgIl4wLjEuMTIiCi0gICAgc3RhYmxlICJe MC4xLjgiCi0KIHN2Z29AXjIuNy4wOgogICB2ZXJzaW9uICIyLjguMCIKICAgcmVzb2x2ZWQgImh0 dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vc3Znby8tL3N2Z28tMi44LjAudGd6IzRmZjgwY2Nl NjcxMGRjMjc5NWYwYzdjNzQxMDFlNjc2NGNmY2NkMjQiCkBAIC0xMDI4OCwxMSArOTk4Miw2IEBA IHN2Z3BhdGhAXjIuMS41OgogICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNv bS9zdmdwYXRoLy0vc3ZncGF0aC0yLjMuMS50Z3ojYjEwMjMzNGJlYmQyMjQ0YjQ4MTg0NjBiYTJl YmFkNTI3MTZhMGQ0MyIKICAgaW50ZWdyaXR5IHNoYTUxMi13Tno2bENvais5OUdNb3lVN1NvelRm UHFpTEh6NldjSllaMzBaK0Y0bEYvZ1B0eFdIQkNwWjREaG9ESTArb1owZE9iS3lZc0pkU1BHYkwy bUpxL3FDZz09CiAKLXN5bWJvbC1vYnNlcnZhYmxlQDEuMi4wOgotICB2ZXJzaW9uICIxLjIuMCIK LSAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vc3ltYm9sLW9ic2VydmFi bGUvLS9zeW1ib2wtb2JzZXJ2YWJsZS0xLjIuMC50Z3ojYzIyNjg4YWVkNGVhYjNjZGMyZGZlYWNi YjU2MTY2MDU2MGEwMDgwNCIKLSAgaW50ZWdyaXR5IHNoYTUxMi1lOTAwbk04UlJ0R2hsVjM2S0dF VTlrNjVLM21QYjFXVjcwT2RqZnhsRzJFQXVNMW5vaS9FL0JhVy91TWhMN2JQRXNzSzhRVjU3dk4z ZXNpeGpVdmNYUT09Ci0KIHN5bnRheC1lcnJvckBeMS4xLjE6CiAgIHZlcnNpb24gIjEuNC4wIgog ICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9zeW50YXgtZXJyb3IvLS9z eW50YXgtZXJyb3ItMS40LjAudGd6IzJkOWQ0ZmY1YzA2NGFjYjcxMTU5NGEzZTNiOTUwNTRhZDUx ZDkwN2MiCkBAIC0xMDMwMCwxNyArOTk4OSwxNiBAQCBzeW50YXgtZXJyb3JAXjEuMS4xOgogICBk ZXBlbmRlbmNpZXM6CiAgICAgYWNvcm4tbm9kZSAiXjEuMi4wIgogCi10YWJsZUBeNi4wLjQ6Ci0g IHZlcnNpb24gIjYuNy4xIgotICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNv bS90YWJsZS8tL3RhYmxlLTYuNy4xLnRneiNlZTA1NTkyYjcxNDM4MzFhOGM5NGYzY2VlNmFhZTRj MWNjZWYzM2UyIgotICBpbnRlZ3JpdHkgc2hhNTEyLVpHdW00N1lpNktPT0ZERThtMjIzdGQ1M2F0 aDJlbkhjWUxnT0NqR3I1bmd1OGJkSUFSUWs2bU4vd1JNdjR5TVJjSG5DU25IYkNFaGE0c29iUXg1 eVdnPT0KK3RhYmxlQF42LjAuOToKKyAgdmVyc2lvbiAiNi43LjMiCisgIHJlc29sdmVkICJodHRw czovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL3RhYmxlLy0vdGFibGUtNi43LjMudGd6IzI1NTM4ODQz OTcxNWE3MzgzOTFiZDJlZTRjYmNhODlhNGQwNWE5YjciCisgIGludGVncml0eSBzaGE1MTItNURr SXhlQTdYRVJCcU13SnEwYUhaT2RNYWRCeDRlNmVEb0ZSdXlUNVZSODJKMFljZzJEd002R2ZBL0VR QWhKK3RvUlRhUzFsSWRTUUNxZ3JtaFBubHc9PQogICBkZXBlbmRlbmNpZXM6CiAgICAgYWp2ICJe OC4wLjEiCi0gICAgbG9kYXNoLmNsb25lZGVlcCAiXjQuNS4wIgogICAgIGxvZGFzaC50cnVuY2F0 ZSAiXjQuNC4yIgogICAgIHNsaWNlLWFuc2kgIl40LjAuMCIKLSAgICBzdHJpbmctd2lkdGggIl40 LjIuMCIKLSAgICBzdHJpcC1hbnNpICJeNi4wLjAiCisgICAgc3RyaW5nLXdpZHRoICJeNC4yLjMi CisgICAgc3RyaXAtYW5zaSAiXjYuMC4xIgogCiB0YWJsZXNvcnRlckBeMi4zMS4yOgogICB2ZXJz aW9uICIyLjMxLjMiCkBAIC0xMDMyMCw5ICsxMDAwOCw5IEBAIHRhYmxlc29ydGVyQF4yLjMxLjI6 CiAgICAganF1ZXJ5ICI+PTEuMi42IgogCiB0YXBhYmxlQF4yLjEuMSwgdGFwYWJsZUBeMi4yLjA6 Ci0gIHZlcnNpb24gIjIuMi4wIgotICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtn LmNvbS90YXBhYmxlLy0vdGFwYWJsZS0yLjIuMC50Z3ojNWMzNzNkMjgxZDljNjcyODQ4MjEzZDBl MDM3ZDFjNDE2NWFiNDI2YiIKLSAgaW50ZWdyaXR5IHNoYTUxMi1GQms0SWVzTVYxckJ4WDJ0ZmlL OFJBbW9ndFduNTNwdUxPUWx2TzhYdXdsZ3hjWWJQNG1WUFM5UGg0YWVhbVN5eVZqT2wyNGFZV0F1 YzhVNWtDVndNdz09CisgIHZlcnNpb24gIjIuMi4xIgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdp c3RyeS55YXJucGtnLmNvbS90YXBhYmxlLy0vdGFwYWJsZS0yLjIuMS50Z3ojMTk2N2E3M2VmNDA2 MGE4MmYxMmFiOTZhZjg2ZDUyZmRiNzZlZWNhMCIKKyAgaW50ZWdyaXR5IHNoYTUxMi1HTnpRdlFU T0lQNlJ5VGZFMlF4YjhaVmxObXcwbjg4dnAxc3p3V1JpbVAwMm1uVHN4M1d0bjVxUmRxWTl3Mlhk dUZOVWd2T3doTm5Rc2p3Q3Ara3FhUT09CiAKIHRhci1zdHJlYW1AXjEuNS4yOgogICB2ZXJzaW9u ICIxLjYuMiIKQEAgLTEwMzgyLDI2ICsxMDA3MCwzMyBAQCB0ZW1wdXNkb21pbnVzLWNvcmVAXjUu MC4zOgogICAgIG1vbWVudCAifjIuMjQuMCIKICAgICBtb21lbnQtdGltZXpvbmUgIl4wLjUuMjgi CiAKLXRlcnNlci13ZWJwYWNrLXBsdWdpbkBeNS4xLjE6Ci0gIHZlcnNpb24gIjUuMS4yIgotICBy ZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS90ZXJzZXItd2VicGFjay1wbHVn aW4vLS90ZXJzZXItd2VicGFjay1wbHVnaW4tNS4xLjIudGd6IzUxZDI5NWViN2NjNTY3ODVhNjdh MzcyNTc1ZmRjNDZlNDJkNWMyMGMiCi0gIGludGVncml0eSBzaGE1MTItNlFoRGFBaVZISVFyNUFi M1hVV1p5RG1ySVBDSE1pcUpWbGpNRjkxWUt5cXdLa0w1UUhuWU1rck1CeTk2djlaN2V2MWhHaFNF dzFIUVpjMnAvczVaOFE9PQordGVyc2VyLXdlYnBhY2stcGx1Z2luQF41LjEuMSwgdGVyc2VyLXdl YnBhY2stcGx1Z2luQF41LjEuMzoKKyAgdmVyc2lvbiAiNS4yLjQiCisgIHJlc29sdmVkICJodHRw czovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL3RlcnNlci13ZWJwYWNrLXBsdWdpbi8tL3RlcnNlci13 ZWJwYWNrLXBsdWdpbi01LjIuNC50Z3ojYWQxYmU3NjM5YjFjYmUzZWE0OWZhYjk5NWNiZTcyMjRi MzE3NDdhMSIKKyAgaW50ZWdyaXR5IHNoYTUxMi1FMkNrTk1OKzFjaG8wNFlwZEFOeVJybjhDeU40 eU15K1dkRktaSXlTRlpyR1haeEp3SlA2UE1OR0djL01jcjZxeWdRSFVVcVJ4bkFQbWkwTTlmMDBY QT09CiAgIGRlcGVuZGVuY2llczoKLSAgICBqZXN0LXdvcmtlciAiXjI2LjYuMiIKKyAgICBqZXN0 LXdvcmtlciAiXjI3LjAuNiIKICAgICBwLWxpbWl0ICJeMy4xLjAiCi0gICAgc2NoZW1hLXV0aWxz ICJeMy4wLjAiCi0gICAgc2VyaWFsaXplLWphdmFzY3JpcHQgIl41LjAuMSIKKyAgICBzY2hlbWEt dXRpbHMgIl4zLjEuMSIKKyAgICBzZXJpYWxpemUtamF2YXNjcmlwdCAiXjYuMC4wIgogICAgIHNv dXJjZS1tYXAgIl4wLjYuMSIKLSAgICB0ZXJzZXIgIl41LjcuMCIKKyAgICB0ZXJzZXIgIl41Ljcu MiIKIAotdGVyc2VyQF41LjcuMDoKLSAgdmVyc2lvbiAiNS43LjAiCi0gIHJlc29sdmVkICJodHRw czovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL3RlcnNlci8tL3RlcnNlci01LjcuMC50Z3ojYTc2MWVl ZWMyMDZiYzg3YjYwNWFiMTMwMjk4NzZlYWQ5MzhhZTY5MyIKLSAgaW50ZWdyaXR5IHNoYTUxMi1I UDUvOWhwMlVhWnQ1ZllrdWhOQlI4WXlSY1Q4anV3OCt1RmJBbWU1M2lOOWhibHZLbkxVVEtrbXdK RzZvY1dwSUtmOFVLNERvZVdHNHR5MEo2UzYvZz09Cit0ZXJzZXJAXjUuNy4yOgorICB2ZXJzaW9u ICI1LjkuMCIKKyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vdGVyc2Vy Ly0vdGVyc2VyLTUuOS4wLnRneiM0N2Q2ZTYyOWE1MjI5NjMyNDBmMmI1NWZjYWEzYzk5MDgzZDJj MzUxIgorICBpbnRlZ3JpdHkgc2hhNTEyLWg1aHhhMjNzQ2RwemN5ZS83YjhZcWJFNU93S2NhL25p MFJRejF1UlgzdEdoOGhhYUdIcWN1U3FiR1J5YnVBS05kbnRaMG1EZ0ZOWFBKNDh4UTJSWEtRPT0K ICAgZGVwZW5kZW5jaWVzOgogICAgIGNvbW1hbmRlciAiXjIuMjAuMCIKICAgICBzb3VyY2UtbWFw ICJ+MC43LjIiCi0gICAgc291cmNlLW1hcC1zdXBwb3J0ICJ+MC41LjE5IgorICAgIHNvdXJjZS1t YXAtc3VwcG9ydCAifjAuNS4yMCIKKwordGV4dC1zZWdtZW50YXRpb25AXjEuMC4yOgorICB2ZXJz aW9uICIxLjAuMiIKKyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vdGV4 dC1zZWdtZW50YXRpb24vLS90ZXh0LXNlZ21lbnRhdGlvbi0xLjAuMi50Z3ojMWY4MjhmYTE0YWEx MDFjMTE0ZGVkMWJkYTM1YmE3ZGNjMTdjOTg1OCIKKyAgaW50ZWdyaXR5IHNoYTUxMi11VHF2THhk QnJWbngvQ0ZRT3RuZjh0ZnpTWEZtKzFReGF1N1hpNTRqNE9QVFpva3VET1g4cW5jUXpyZzJHOFpp Y0FNT004VGd6RkFZVGIrQXFOTzRDdz09CisgIGRlcGVuZGVuY2llczoKKyAgICB1dHJpZSAiXjEu MC4xIgogCiB0ZXh0LXRhYmxlQF4wLjIuMDoKICAgdmVyc2lvbiAiMC4yLjAiCkBAIC0xMDQ0OSwx MSArMTAxNDQsMTEgQEAgdGlueS13YXJuaW5nQF4xLjAuMjoKICAgaW50ZWdyaXR5IHNoYTUxMi1s Qk45ekxOL29BZjY4bzN6TlhZcmRDdDFrUDhXc2lHVzhPbzJrYTQxYjJJTTVKTC9TMUNUeVgxclcw bWIvelN1SnVuMFpVckR4eDRzcXZZUzJGV3pQQT09CiAKIHRpcHB5LmpzQF42LjMuMToKLSAgdmVy c2lvbiAiNi4zLjEiCi0gIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL3Rp cHB5LmpzLy0vdGlwcHkuanMtNi4zLjEudGd6IzM3ODhhMDA3YmU3MDE1ZWVlMGZkNTg5YTY2Yjk4 ZmIzZjhmMTAxODEiCi0gIGludGVncml0eSBzaGE1MTItSm5GbmNDcStyRjFkVFVSdXBvSjR5UGll NUNvZjk3OGluVzYvNFM2a21XVjdMTDlZT1NFVk1pZkVEM0tkclZQRUcrWi9URkgyQ0ROSmNRRWZh ZXVRd3c9PQorICB2ZXJzaW9uICI2LjMuNSIKKyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnku eWFybnBrZy5jb20vdGlwcHkuanMvLS90aXBweS5qcy02LjMuNS50Z3ojY2JjOTlkMzRmODdjY2Mx MjdlNjQ2MDAzMmI4NmM4ZDQ3OTcxZDM4ZiIKKyAgaW50ZWdyaXR5IHNoYTUxMi1COWhBUTVLTkYr akRKUmc2Y1J5c1Y2WTNKKzVmaU5mRDYwR3VYUjVUUDBzZnJjbHRwZ2R6VmM3ZjF3TXRqUTNXMCtY c3k4MENEdmswWitWcjBjTTRzUT09CiAgIGRlcGVuZGVuY2llczoKLSAgICAiQHBvcHBlcmpzL2Nv cmUiICJeMi44LjMiCisgICAgIkBwb3BwZXJqcy9jb3JlIiAiXjIuOS4wIgogCiB0bXBAXjAuMi4x OgogICB2ZXJzaW9uICIwLjIuMSIKQEAgLTEwNTEyLDkgKzEwMjA3LDkgQEAgdHJpbS1yaWdodEBe MS4wLjE6CiAgIGludGVncml0eSBzaGExLXl5NFNBd1orREkzaDloUUpTNS9rVndUcVlBTT0KIAog dHNsaWJAXjIuMi4wOgotICB2ZXJzaW9uICIyLjIuMCIKLSAgcmVzb2x2ZWQgImh0dHBzOi8vcmVn aXN0cnkueWFybnBrZy5jb20vdHNsaWIvLS90c2xpYi0yLjIuMC50Z3ojZmIyYzQ3NTk3N2UzNWUy NDEzMTFlZGUyNjkzY2VlMWVjNjY5OGY1YyIKLSAgaW50ZWdyaXR5IHNoYTUxMi1nUzlHVkhSVStS R241S1FNMnJsbEFsUjNkVTZtN0FjcEpLZHRIOGdGdlFpQzRPdGdrOThYbm1NVStuWmVuSHQvK1Zo bkJQV3dnckpzeXJkY3c2aTIzdz09CisgIHZlcnNpb24gIjIuMy4xIgorICByZXNvbHZlZCAiaHR0 cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS90c2xpYi8tL3RzbGliLTIuMy4xLnRneiNlOGEzMzVh ZGQ1Y2VhZTUxYWEyNjFkMzJhNDkwMTU4ZWYwNDJlZjAxIgorICBpbnRlZ3JpdHkgc2hhNTEyLTc3 RWJ5UFBwTXorRlJGUnVBRmxXTXRtZ1VXR2U5VU9HMloyNU5xQ3dpSWpSaE9mNWlLR3V6U2U1UDJ3 MWxhcStGa1J5NHArUEN1VmtKU0drelRFS1Z3PT0KIAogdHRmMmVvdEBeMi4wLjA6CiAgIHZlcnNp b24gIjIuMC4wIgpAQCAtMTA1NjcsMTAgKzEwMjYyLDEwIEBAIHR5cGUtZmVzdEBeMC4xMS4wOgog ICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS90eXBlLWZlc3QvLS90eXBl LWZlc3QtMC4xMS4wLnRneiM5N2FiZjA4NzIzMTBmZWQ4OGE1YzQ2NmIyNTY4MTU3NjE0NWUzM2Yx IgogICBpbnRlZ3JpdHkgc2hhNTEyLU9kalhKeG5DTjFBdnlMU3plS0lnWFRYeFYrOTladVhsM0hw bzlYcEpBdjlNQmNIcnJKT1E1a1Y3eXBYT3VRaWUrQW1XRzI1aExiaUtkd1lUaWZ6Y2ZRPT0KIAot dHlwZS1mZXN0QF4wLjguMToKLSAgdmVyc2lvbiAiMC44LjEiCi0gIHJlc29sdmVkICJodHRwczov L3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL3R5cGUtZmVzdC8tL3R5cGUtZmVzdC0wLjguMS50Z3ojMDll MjQ5ZWJkZTg1MWQzYjFlNDhkMjdjMTA1NDQ0NjY3ZjE3YjgzZCIKLSAgaW50ZWdyaXR5IHNoYTUx Mi00ZGJ6SXpxdmp0Z2lNNXJ3MWs1ckVIdEJBTkttZHVkaEd5QkVhak4wMWZFeWhhQUloc29LTnk2 eTcrSU45M0lmcEZ0d1k5aXFpN2tEK3h3S2hRc05KQT09Cit0eXBlLWZlc3RAXjAuMjAuMjoKKyAg dmVyc2lvbiAiMC4yMC4yIgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNv bS90eXBlLWZlc3QvLS90eXBlLWZlc3QtMC4yMC4yLnRneiMxYmYyMDdmNGIyOGY5MTU4MzY2NmNi NWZiZDMyNzg4NzMwMWNkNWY0IgorICBpbnRlZ3JpdHkgc2hhNTEyLU5lK2VFNHIwL2lXbnBBeEQ4 NTJ6M0ErTjBCdDVSTi8vTmpKd1JkMlZGSEVtcnl3eGY1dnNabGg0UjZsaXhsNkIrd3ovOGQrbWFU U0FrTjFGSWtJM0xRPT0KIAogdHlwZS1pc0B+MS42LjE3OgogICB2ZXJzaW9uICIxLjYuMTgiCkBA IC0xMDU5Niw5ICsxMDI5MSw5IEBAIHVhLXBhcnNlci1qc0BeMC43LjMwOgogICBpbnRlZ3JpdHkg c2hhNTEyLXFMSy9YZTlFMnV6bVlJM3FMZU9tSTB0RU90K1RCQlF5VUlBaDRhQWdVMDVGVll6ZVpy S1Vka0FaZkJOVkdSYUhWZ1YwVERrZEVuZ0pTdy9TeVFjaGtRPT0KIAogdWdsaWZ5LWpzQF4zLjEu NDoKLSAgdmVyc2lvbiAiMy4xNC4yIgotICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJu cGtnLmNvbS91Z2xpZnktanMvLS91Z2xpZnktanMtMy4xNC4yLnRneiNkN2RkNmE0NmNhNTcyMTRm NTRhMmQwYTQzY2FkMGYzNWRiODJhYzk5IgotICBpbnRlZ3JpdHkgc2hhNTEyLXJ0UE1sbWNPNGFn VFVmejEwQ2JnSjFrNlVBb1hNMmdXYjNHb01QUFpCLysvQWNrZjhsTldrMTFLNHJZaTJEMGFwZ29G Ukx0UU9aaGIrL2lHTkpxMjZBPT0KKyAgdmVyc2lvbiAiMy4xNC4zIgorICByZXNvbHZlZCAiaHR0 cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS91Z2xpZnktanMvLS91Z2xpZnktanMtMy4xNC4zLnRn eiNjMGYyNWRmZWExZThlNTMyM2VjY2Y1OTYxMGJlMDhiNjA0M2MxNWNmIgorICBpbnRlZ3JpdHkg c2hhNTEyLW1pYzNhT2RpcTAxRHVTVngwVHNlYUV6TUlWcWViTVowWjN2YWVEaEZFaDlic2MyNGhW MVRGdk43NHJlQTJ2czA4RDBaV2ZOakFjSjNVYlZMYUJzcytnPT0KIAogdW1kQF4zLjAuMDoKICAg dmVyc2lvbiAiMy4wLjMiCkBAIC0xMDcxMiw3ICsxMDQwNyw3IEBAIHVuaXF1ZS1zbHVnQF4yLjAu MDoKIHVuaXZlcnNhbGlmeUBeMi4wLjA6CiAgIHZlcnNpb24gIjIuMC4wIgogICByZXNvbHZlZCAi aHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS91bml2ZXJzYWxpZnkvLS91bml2ZXJzYWxpZnkt Mi4wLjAudGd6Izc1YTQ5ODRlZmVkYzRiMDg5NzVjNWFlYjczZjUzMGQwMmRmMjU3MTciCi0gIGlu dGVncml0eSAic2hhMS1kYVNZVHY3Y1N3aVhYRnJyYy9VdzBDM3lWeGM9IHNoYTUxMi1oQVpzS3E3 WXkxMVp1MURFME96V2p3N25uTFptSlpZVERaWnlFRkhaZFVoVjhGa0g1TUNmb1UxWE1heFhvdnB5 VzVucTVzY1BxcTBaRFA5WnlsMDRvUT09IgorICBpbnRlZ3JpdHkgc2hhNTEyLWhBWnNLcTdZeTEx WnUxREUwT3pXanc3bm5MWm1KWllURFpaeUVGSFpkVWhWOEZrSDVNQ2ZvVTFYTWF4WG92cHlXNW5x NXNjUHFxMFpEUDlaeWwwNG9RPT0KIAogdW5waXBlQDEuMC4wLCB1bnBpcGVAfjEuMC4wOgogICB2 ZXJzaW9uICIxLjAuMCIKQEAgLTEwNzk1LDkgKzEwNDkwLDkgQEAgdXRpbEAwLjEwLjM6CiAgICAg aW5oZXJpdHMgIjIuMC4xIgogCiB1dGlsQH4wLjEyLjA6Ci0gIHZlcnNpb24gIjAuMTIuMyIKLSAg cmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vdXRpbC8tL3V0aWwtMC4xMi4z LnRneiM5NzFiYjAyOTJkMmNjMGM4OTJkYWI3YzZhNWQzN2MyYmVjNzA3ODg4IgotICBpbnRlZ3Jp dHkgc2hhNTEyLUk4WGtvUXdFK2ZQUUVoeTl2MDEyVitUU2RIMmtwOXRzMjlpMjBUYWFEVVhzZzd4 L29uZVBiaEZKVUV4QmZ2LzJheTFaT3AvVnNtM25EbG1uRkdTQW9nPT0KKyAgdmVyc2lvbiAiMC4x Mi40IgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS91dGlsLy0vdXRp bC0wLjEyLjQudGd6IzY2MTIxYTMxNDIwZGY4ZjAxY2EwYzQ2NGJlMTVkZmExZDE4NTAyNTMiCisg IGludGVncml0eSBzaGE1MTItYnhaOXF0U2xHVVdTT3k5UWE5WGdrMTFrU3NscHVad2F4Q2c0c05J RGo2Rkx1Y0RhYjJKeG5Id3lOVENwSE10SzFNam9RaVdRNkRpVU1aWWJTck8rU3c9PQogICBkZXBl bmRlbmNpZXM6CiAgICAgaW5oZXJpdHMgIl4yLjAuMyIKICAgICBpcy1hcmd1bWVudHMgIl4xLjAu NCIKQEAgLTEwODExLDEyICsxMDUwNiwxOSBAQCB1dGlscy1tZXJnZUAxLjAuMToKICAgcmVzb2x2 ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vdXRpbHMtbWVyZ2UvLS91dGlscy1tZXJn ZS0xLjAuMS50Z3ojOWY5NTcxMGY1MGEyNjc5NDdiMmNjYzEyNDc0MWMxMDI4NDI3ZTcxMyIKICAg aW50ZWdyaXR5IHNoYTEtbjVWeEQxQ2laNVI3TE13U1IwSEJBb1FuNXhNPQogCit1dHJpZUBeMS4w LjE6CisgIHZlcnNpb24gIjEuMC4xIgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJu cGtnLmNvbS91dHJpZS8tL3V0cmllLTEuMC4xLnRneiNlMTU1MjM1ZWJjYmRkYzg5YWUwOTI2MWFi NmU3NzNjZTYxNDAxYjJmIgorICBpbnRlZ3JpdHkgc2hhNTEyLUpQYURYRjN2emdaeGZlRXd1dGRH emxyTm9WRkw1VXZaY2JPNlFvOUQ0R29haHJpZVVQb01VOEdDcFZwUjdNUXFjS2htU2hJaDhWbGJF TjNQTE0zRUJnPT0KKyAgZGVwZW5kZW5jaWVzOgorICAgIGJhc2U2NC1hcnJheWJ1ZmZlciAiXjEu MC4xIgorCiB1dWlkQF4zLjAuMToKICAgdmVyc2lvbiAiMy40LjAiCiAgIHJlc29sdmVkICJodHRw czovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL3V1aWQvLS91dWlkLTMuNC4wLnRneiNiMjNlNDM1OGFm YThhMjAyZmU3YTEwMGFmMWY1Zjg4M2YwMjAwN2VlIgogICBpbnRlZ3JpdHkgc2hhNTEyLUhqU0RS dzZnWkU1Sk1nZ2N0SEJjalZhazA4K0tFVmhTSWlEekZuVDlTOWFlZ21wODVTL2JSZUJWVGI0UVRG YVJOcHRKOWt1WWFOaG5iTkVPa2JLYi9BPT0KIAotdjgtY29tcGlsZS1jYWNoZUBeMi4wLjMsIHY4 LWNvbXBpbGUtY2FjaGVAXjIuMi4wOgordjgtY29tcGlsZS1jYWNoZUBeMi4wLjM6CiAgIHZlcnNp b24gIjIuMy4wIgogICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS92OC1j b21waWxlLWNhY2hlLy0vdjgtY29tcGlsZS1jYWNoZS0yLjMuMC50Z3ojMmRlMTk2MThjNjZkYzI0 N2RjZmI2Zjk5MzM4MDM1ZDgyNDVhMmNlZSIKICAgaW50ZWdyaXR5IHNoYTUxMi1sOGxDRW1MY0xZ Wmg0bmJ1bk5adlFDSmM1cHY3K1JDd2E4cS9MZFV4OHU3bHNXdlBES21wb2RKQUpOd2tBaEpDLy9k Rlk0OEt1SUVtanRkNFJWaURyQT09CkBAIC0xMDgyOSw5ICsxMDUzMSw5IEBAIHZhbGlkLWZpbGVu YW1lQF4yLjAuMToKICAgICBmaWxlbmFtZS1yZXNlcnZlZC1yZWdleCAiXjIuMC4wIgogCiB2YW5p bGxhLXBpY2tlckBeMi4xMS4yOgotICB2ZXJzaW9uICIyLjExLjIiCi0gIHJlc29sdmVkICJodHRw czovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL3ZhbmlsbGEtcGlja2VyLy0vdmFuaWxsYS1waWNrZXIt Mi4xMS4yLnRneiNlYWEyNGVmYTY4YzI3ZTdlZTllMDc3NmRmNTVkNjkxM2I4NTVmMTMzIgotICBp bnRlZ3JpdHkgc2hhNTEyLTJjUDdMbFVueEh4d09mMDZSZVVWdGQyUkZKTW5KR2F4TjJzMHA4d3pC SDNJbjViMDBMZTdmRlo5VnJJb0JFMHN2WmtTcS9CQy9Qd3Evay85bitBQTJnPT0KKyAgdmVyc2lv biAiMi4xMi4xIgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS92YW5p bGxhLXBpY2tlci8tL3ZhbmlsbGEtcGlja2VyLTIuMTIuMS50Z3ojNmU2MTllZWNmNTUzODkxYjhk MmQwNDJiNzQ1YTIzYzkxZjE5ZjM0YyIKKyAgaW50ZWdyaXR5IHNoYTUxMi0ycXJFUDlWWXlsS1hi eXpYS3NidTJkZmVyQlR2cW5sc3IyOVhqSHdGRSsvTUVwMFZOajZvRVVFU0xEdEtaN0RXekdkU3Yx eC8rdWpxRlpGK0tzTzNjZz09CiAgIGRlcGVuZGVuY2llczoKICAgICAiQHNwaGlueHh4eC9jb2xv ci1jb252ZXJzaW9uIiAiXjIuMi4yIgogCkBAIC0xMDg2Miw3ICsxMDU2NCw3IEBAIHZvaWQtZWxl bWVudHNAXjIuMC4wOgogICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS92 b2lkLWVsZW1lbnRzLy0vdm9pZC1lbGVtZW50cy0yLjAuMS50Z3ojYzA2NmFmYjU4MmJiMWNiNDEy OGQ2MGVhOTIzOTJlOTRkNWU5ZGJlYyIKICAgaW50ZWdyaXR5IHNoYTEtd0dhdnRZSzdITFFTaldE cWtqa3VsTlhwMit3PQogCi13YXRjaHBhY2tAXjIuMC4wOgord2F0Y2hwYWNrQF4yLjIuMDoKICAg dmVyc2lvbiAiMi4yLjAiCiAgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29t L3dhdGNocGFjay8tL3dhdGNocGFjay0yLjIuMC50Z3ojNDdkNzhmNTQxNWZlNTUwZWNkNzQwZjk5 ZmUyODgyMzIzYTU4YjFjZSIKICAgaW50ZWdyaXR5IHNoYTUxMi11cDRZQW4vWEhnWkhJeEZCVkNk bE1pV0RqNldhTEtwd1ZlR1FrMkk1dGhkWXhGL0ttRjBhYXo2VGZKWi9oZmwxaC9YbGNEcjdrMUtI N1RoRGFncEZhQT09CkBAIC0xMDg4OSwxNCArMTA1OTEsMTQgQEAgd2ViZm9udHMtbG9hZGVyQF43 LjMuMDoKICAgICBsb2FkZXItdXRpbHMgIl4yLjAuMCIKIAogd2VicGFjay1idW5kbGUtYW5hbHl6 ZXJAXjQuNC4wOgotICB2ZXJzaW9uICI0LjQuMiIKLSAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0 cnkueWFybnBrZy5jb20vd2VicGFjay1idW5kbGUtYW5hbHl6ZXIvLS93ZWJwYWNrLWJ1bmRsZS1h bmFseXplci00LjQuMi50Z3ojMzk4OThjZjYyMDAxNzgyNDA5MTBkNjI5NzA1ZjBmMzQ5M2Y3ZDY2 NiIKLSAgaW50ZWdyaXR5IHNoYTUxMi1QSWFnTVlobEV6RmZoTVlPenM1Z0ZUNTVEa1Vka3lySmkv U3hKcDhFRjNZTVdoUytUOXZ2czJFb1RldHBrNXFiNlZzQ3EwMmVYVGxSRE95ZFJoREZBUT09Cisg IHZlcnNpb24gIjQuNS4wIgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNv bS93ZWJwYWNrLWJ1bmRsZS1hbmFseXplci8tL3dlYnBhY2stYnVuZGxlLWFuYWx5emVyLTQuNS4w LnRneiMxYjBlZWEyOTQ3ZTczNTI4NzU0YTZmOWFmM2U5MWIyYjZlMGY3OWQ1IgorICBpbnRlZ3Jp dHkgc2hhNTEyLUdVTVpsTTNTS3dTOForQ0tlSUZ4N0NWb0huM2RYRmNVQWpUL2RjWlFRbWZTWkd2 aXRQZk1vYjJpcGphaTdvdkZGcVB2VHFrRVovbGVMNE8wWU9kQVlRPT0KICAgZGVwZW5kZW5jaWVz OgogICAgIGFjb3JuICJeOC4wLjQiCiAgICAgYWNvcm4td2FsayAiXjguMC4wIgogICAgIGNoYWxr ICJeNC4xLjAiCi0gICAgY29tbWFuZGVyICJeNi4yLjAiCisgICAgY29tbWFuZGVyICJeNy4yLjAi CiAgICAgZ3ppcC1zaXplICJeNi4wLjAiCiAgICAgbG9kYXNoICJeNC4xNy4yMCIKICAgICBvcGVu ZXIgIl4xLjUuMiIKQEAgLTEwOTA0LDIyICsxMDYwNiwyMSBAQCB3ZWJwYWNrLWJ1bmRsZS1hbmFs eXplckBeNC40LjA6CiAgICAgd3MgIl43LjMuMSIKIAogd2VicGFjay1jbGlAXjQuNS4wOgotICB2 ZXJzaW9uICI0LjcuMCIKLSAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20v d2VicGFjay1jbGkvLS93ZWJwYWNrLWNsaS00LjcuMC50Z3ojMzE5NWE3NzdmMWY4MDJlY2RhNzMy ZjZjOTVkMjRjMDAwNGJjNWEzNSIKLSAgaW50ZWdyaXR5IHNoYTUxMi03YktyOTE4Mi9zR2ZqRm0r eGRaU3dnUXVGamdFY3kwaUNUSUJ4UlVldGVKMktyOC9XejBxTkpYK2p3NjBMVTM2akFwdDRubU1r ZXA2K1c1QUtob2s2Zz09CisgIHZlcnNpb24gIjQuOS4xIgorICByZXNvbHZlZCAiaHR0cHM6Ly9y ZWdpc3RyeS55YXJucGtnLmNvbS93ZWJwYWNrLWNsaS8tL3dlYnBhY2stY2xpLTQuOS4xLnRneiNi NjRiZTgyNWUyZDFiMTMwZjI4NWMzMTRjYWEzYjFiYTlhNDYzMmIzIgorICBpbnRlZ3JpdHkgc2hh NTEyLUpZUkZWdXlGcHpEeE1EQit2L25hblVkUVljWnRxRlBHem1sVzRzK1VrUE1GaFNwZlJObWYx ejRBd1ljSEpWZHZFRkFNN0ZGQ1FkTlRwc0JZaERMdXNRPT0KICAgZGVwZW5kZW5jaWVzOgogICAg ICJAZGlzY292ZXJ5anMvanNvbi1leHQiICJeMC41LjAiCi0gICAgIkB3ZWJwYWNrLWNsaS9jb25m aWd0ZXN0IiAiXjEuMC4zIgotICAgICJAd2VicGFjay1jbGkvaW5mbyIgIl4xLjIuNCIKLSAgICAi QHdlYnBhY2stY2xpL3NlcnZlIiAiXjEuNC4wIgotICAgIGNvbG9yZXR0ZSAiXjEuMi4xIgorICAg ICJAd2VicGFjay1jbGkvY29uZmlndGVzdCIgIl4xLjEuMCIKKyAgICAiQHdlYnBhY2stY2xpL2lu Zm8iICJeMS40LjAiCisgICAgIkB3ZWJwYWNrLWNsaS9zZXJ2ZSIgIl4xLjYuMCIKKyAgICBjb2xv cmV0dGUgIl4yLjAuMTQiCiAgICAgY29tbWFuZGVyICJeNy4wLjAiCiAgICAgZXhlY2EgIl41LjAu MCIKICAgICBmYXN0ZXN0LWxldmVuc2h0ZWluICJeMS4wLjEyIgogICAgIGltcG9ydC1sb2NhbCAi XjMuMC4yIgogICAgIGludGVycHJldCAiXjIuMi4wIgogICAgIHJlY2hvaXIgIl4wLjcuMCIKLSAg ICB2OC1jb21waWxlLWNhY2hlICJeMi4yLjAiCiAgICAgd2VicGFjay1tZXJnZSAiXjUuNy4zIgog CiB3ZWJwYWNrLW1lcmdlQF40LjEuNToKQEAgLTEwOTMwLDkgKzEwNjMxLDkgQEAgd2VicGFjay1t ZXJnZUBeNC4xLjU6CiAgICAgbG9kYXNoICJeNC4xNy4xNSIKIAogd2VicGFjay1tZXJnZUBeNS43 LjM6Ci0gIHZlcnNpb24gIjUuNy4zIgotICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJu cGtnLmNvbS93ZWJwYWNrLW1lcmdlLy0vd2VicGFjay1tZXJnZS01LjcuMy50Z3ojMmEwNzU0ZTE4 NzdhMjVhOGJiYWIzZDI0NzVjYTcwYTA1MjcwODIxMyIKLSAgaW50ZWdyaXR5IHNoYTUxMi02L0pV UXYwRUxRMWlnakdEekhrWGJWRFJ4a2ZBNTdadzdQZml1cGRMRkpZcmdGcVk1WlA4eHhicHAybFUz RVB3WXg4OWh0NVovYURrRDQwaEZDbTVBQT09CisgIHZlcnNpb24gIjUuOC4wIgorICByZXNvbHZl ZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS93ZWJwYWNrLW1lcmdlLy0vd2VicGFjay1t ZXJnZS01LjguMC50Z3ojMmIzOWRiZjIyYWY4Nzc3NmFkNzQ0YzM5MDIyMzczMWQzMGE2OGY2MSIK KyAgaW50ZWdyaXR5IHNoYTUxMi0vU2FJN3hZMDgzMVh3UDZrenV3aEtXVktEUDl0MVFZMWg2NWxB RkxiWnFNUEl1WWNEOVFBVzR1OVNUSWJVOWthSmJQQkIvZ2VVL2dMcjF3RGpPaFErUT09CiAgIGRl cGVuZGVuY2llczoKICAgICBjbG9uZS1kZWVwICJeNC4wLjEiCiAgICAgd2lsZGNhcmQgIl4yLjAu MCIKQEAgLTEwOTUzLDMwICsxMDY1NCwyOCBAQCB3ZWJwYWNrLXNvdXJjZXNAXjEuMS4wOgogICAg IHNvdXJjZS1saXN0LW1hcCAiXjIuMC4wIgogICAgIHNvdXJjZS1tYXAgIn4wLjYuMSIKIAotd2Vi cGFjay1zb3VyY2VzQF4yLjEuMToKLSAgdmVyc2lvbiAiMi4zLjAiCi0gIHJlc29sdmVkICJodHRw czovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL3dlYnBhY2stc291cmNlcy8tL3dlYnBhY2stc291cmNl cy0yLjMuMC50Z3ojOWVkMmRlNjliMjUxNDNhNGMxODg0NzU4NmFkOWVjY2IxOTI3OGNmYSIKLSAg aW50ZWdyaXR5IHNoYTUxMi1XeU9kdHdTdk9NTDFrYmd0WGJURG5FVzBqa0o3aFpyL2JEQnlJd3N6 aFdkLzRYWDFBM1hNa3JiRk1zdUg0Ky9NZkxsWkNVemxBZGc0cjdqYUdLRUlnUT09Ci0gIGRlcGVu ZGVuY2llczoKLSAgICBzb3VyY2UtbGlzdC1tYXAgIl4yLjAuMSIKLSAgICBzb3VyY2UtbWFwICJe MC42LjEiCit3ZWJwYWNrLXNvdXJjZXNAXjMuMi4wOgorICB2ZXJzaW9uICIzLjIuMSIKKyAgcmVz b2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vd2VicGFjay1zb3VyY2VzLy0vd2Vi cGFjay1zb3VyY2VzLTMuMi4xLnRneiMyNTFhN2Q5NzIwZDc1YWRhMTQ2OWNhMDdkYmI2MmYzNjQx YTA1YjZkIgorICBpbnRlZ3JpdHkgc2hhNTEyLXQ2Qk1WTFEwQWtqQk9vUlRaZ3FyV203eGJYTUJ6 RCtYRHEyRVo5Nit2TWZuM3FLZ3N2ZFhaaGJQWjRFbFVPcGR2NHUraWlHZSt3MytKNzVpeS9iWUdB PT0KIAogd2VicGFja0BeNS4yMS4yOgotICB2ZXJzaW9uICI1LjI0LjMiCi0gIHJlc29sdmVkICJo dHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL3dlYnBhY2svLS93ZWJwYWNrLTUuMjQuMy50Z3oj NmVjMGY1MDU5ZjhkN2M3OTYxMDc1ZmE1NTNjZmNlN2I3OTI4YWNiMyIKLSAgaW50ZWdyaXR5IHNo YTUxMi14N2xyV1o3d2xXQWR5S2RNTDZZUHZmVlpraEQxSUN1SVpHT0RFNVN6S0pqcUk5QTRTcHFH VGpHSlRjNkN3YUhxbjE5Z0dhb09SM09OSjQ2bllzbjlydz09CisgIHZlcnNpb24gIjUuNjEuMCIK KyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vd2VicGFjay8tL3dlYnBh Y2stNS42MS4wLnRneiNmYTgyN2YwZWU5YmRmZDE0MWRkNzNjM2U4OTFlOTU1ZWJkNTJmZTdmIgor ICBpbnRlZ3JpdHkgc2hhNTEyLWZQZFR1YVlaL0dNR0ZtNFdyUGkyS1JDcVMxdkRwNzcza2o5UzBp STVVYy8vNWNzenNGRURnSE5hWDRSajF2b2JVaVUxZEZJVjNtQTlrMWVIZWx1RnB3PT0KICAgZGVw ZW5kZW5jaWVzOgogICAgICJAdHlwZXMvZXNsaW50LXNjb3BlIiAiXjMuNy4wIgotICAgICJAdHlw ZXMvZXN0cmVlIiAiXjAuMC40NiIKLSAgICAiQHdlYmFzc2VtYmx5anMvYXN0IiAiMS4xMS4wIgot ICAgICJAd2ViYXNzZW1ibHlqcy93YXNtLWVkaXQiICIxLjExLjAiCi0gICAgIkB3ZWJhc3NlbWJs eWpzL3dhc20tcGFyc2VyIiAiMS4xMS4wIgotICAgIGFjb3JuICJeOC4wLjQiCisgICAgIkB0eXBl cy9lc3RyZWUiICJeMC4wLjUwIgorICAgICJAd2ViYXNzZW1ibHlqcy9hc3QiICIxLjExLjEiCisg ICAgIkB3ZWJhc3NlbWJseWpzL3dhc20tZWRpdCIgIjEuMTEuMSIKKyAgICAiQHdlYmFzc2VtYmx5 anMvd2FzbS1wYXJzZXIiICIxLjExLjEiCisgICAgYWNvcm4gIl44LjQuMSIKKyAgICBhY29ybi1p bXBvcnQtYXNzZXJ0aW9ucyAiXjEuNy42IgogICAgIGJyb3dzZXJzbGlzdCAiXjQuMTQuNSIKICAg ICBjaHJvbWUtdHJhY2UtZXZlbnQgIl4xLjAuMiIKLSAgICBlbmhhbmNlZC1yZXNvbHZlICJeNS43 LjAiCi0gICAgZXMtbW9kdWxlLWxleGVyICJeMC40LjAiCi0gICAgZXNsaW50LXNjb3BlICJeNS4x LjEiCisgICAgZW5oYW5jZWQtcmVzb2x2ZSAiXjUuOC4zIgorICAgIGVzLW1vZHVsZS1sZXhlciAi XjAuOS4wIgorICAgIGVzbGludC1zY29wZSAiNS4xLjEiCiAgICAgZXZlbnRzICJeMy4yLjAiCiAg ICAgZ2xvYi10by1yZWdleHAgIl4wLjQuMSIKICAgICBncmFjZWZ1bC1mcyAiXjQuMi40IgpAQCAt MTA5ODQsMTEgKzEwNjgzLDExIEBAIHdlYnBhY2tAXjUuMjEuMjoKICAgICBsb2FkZXItcnVubmVy ICJeNC4yLjAiCiAgICAgbWltZS10eXBlcyAiXjIuMS4yNyIKICAgICBuZW8tYXN5bmMgIl4yLjYu MiIKLSAgICBzY2hlbWEtdXRpbHMgIl4zLjAuMCIKKyAgICBzY2hlbWEtdXRpbHMgIl4zLjEuMCIK ICAgICB0YXBhYmxlICJeMi4xLjEiCi0gICAgdGVyc2VyLXdlYnBhY2stcGx1Z2luICJeNS4xLjEi Ci0gICAgd2F0Y2hwYWNrICJeMi4wLjAiCi0gICAgd2VicGFjay1zb3VyY2VzICJeMi4xLjEiCisg ICAgdGVyc2VyLXdlYnBhY2stcGx1Z2luICJeNS4xLjMiCisgICAgd2F0Y2hwYWNrICJeMi4yLjAi CisgICAgd2VicGFjay1zb3VyY2VzICJeMy4yLjAiCiAKIHdoaWNoLWJveGVkLXByaW1pdGl2ZUBe MS4wLjI6CiAgIHZlcnNpb24gIjEuMC4yIgpAQCAtMTEwMDIsMTcgKzEwNzAxLDE2IEBAIHdoaWNo LWJveGVkLXByaW1pdGl2ZUBeMS4wLjI6CiAgICAgaXMtc3ltYm9sICJeMS4wLjMiCiAKIHdoaWNo LXR5cGVkLWFycmF5QF4xLjEuMjoKLSAgdmVyc2lvbiAiMS4xLjQiCi0gIHJlc29sdmVkICJodHRw czovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL3doaWNoLXR5cGVkLWFycmF5Ly0vd2hpY2gtdHlwZWQt YXJyYXktMS4xLjQudGd6IzhmY2I3ZDNlZTVhZGYyZDc3MTA2NmZiYTdjZjM3ZTMyZmU4NzExZmYi Ci0gIGludGVncml0eSBzaGE1MTItNDlFMFNwVWU5MGNqcG9jN0JPSnd5UEhScVNBZDEyYzEwUW0y YW1kRVpySlBDWTJORHhhVzAxekhJVHJlbStybkVUWTNkd3JiSDNVVXJVd2FnZkNZREE9PQorICB2 ZXJzaW9uICIxLjEuNyIKKyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20v d2hpY2gtdHlwZWQtYXJyYXkvLS93aGljaC10eXBlZC1hcnJheS0xLjEuNy50Z3ojMjc2MTc5OWI5 YTIyZDRiODY2MGIzYzFiNDBhYmFhNzczOTY5MTc5MyIKKyAgaW50ZWdyaXR5IHNoYTUxMi12anhh QjRuZkRxd0tJMHdzN3dacHhJbGRlMVhyTFg1dUIwWmpwZnNoZ21hcEpNRDdqSldoWkkreVRvSlRx YUZCeUYwZU5CY1l4YmptQ3pvUlA3Q2ZFdz09CiAgIGRlcGVuZGVuY2llczoKLSAgICBhdmFpbGFi bGUtdHlwZWQtYXJyYXlzICJeMS4wLjIiCi0gICAgY2FsbC1iaW5kICJeMS4wLjAiCi0gICAgZXMt YWJzdHJhY3QgIl4xLjE4LjAtbmV4dC4xIgorICAgIGF2YWlsYWJsZS10eXBlZC1hcnJheXMgIl4x LjAuNSIKKyAgICBjYWxsLWJpbmQgIl4xLjAuMiIKKyAgICBlcy1hYnN0cmFjdCAiXjEuMTguNSIK ICAgICBmb3JlYWNoICJeMi4wLjUiCi0gICAgZnVuY3Rpb24tYmluZCAiXjEuMS4xIgotICAgIGhh cy1zeW1ib2xzICJeMS4wLjEiCi0gICAgaXMtdHlwZWQtYXJyYXkgIl4xLjEuMyIKKyAgICBoYXMt dG9zdHJpbmd0YWcgIl4xLjAuMCIKKyAgICBpcy10eXBlZC1hcnJheSAiXjEuMS43IgogCiB3aGlj aEBeMS4yLjEsIHdoaWNoQF4xLjIuOToKICAgdmVyc2lvbiAiMS4zLjEiCkBAIC0xMTA3MSwxMCAr MTA3NjksMTAgQEAgd3JhcHB5QDE6CiAgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5w a2cuY29tL3dyYXBweS8tL3dyYXBweS0xLjAuMi50Z3ojYjUyNDNkOGYzZWMxYWEzNWYxMzY0NjA1 YmMwZDEwMzZlMzBhYjY5ZiIKICAgaW50ZWdyaXR5IHNoYTEtdFNROWp6N0Jxalh4TmtZRnZBMFFO dU1LdHA4PQogCi13c0BeNy4zLjEsIHdzQH43LjQuMjoKLSAgdmVyc2lvbiAiNy40LjYiCi0gIHJl c29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL3dzLy0vd3MtNy40LjYudGd6IzU2 NTRjYThlY2RlZWU0N2MzM2E5YTRiZjZkMjhlMmJlMjk4MDM3N2MiCi0gIGludGVncml0eSBzaGE1 MTItWW1oSERPNE16YURMQitNOXltL21EQTV6MG5hWDhqN1NJbFQ4Zjh6K0kwVnR6c1JiZWt4RXV0 SFNtZTdOUFMycUU4U3RDWVFOVW5mV2RYdGEvWXU4NUE9PQord3NAXjcuMy4xOgorICB2ZXJzaW9u ICI3LjUuNSIKKyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vd3MvLS93 cy03LjUuNS50Z3ojOGI0YmM0YWY1MThjZmFiZDA0NzNhZTRmOTkxNDQyODdiMzNlYjg4MSIKKyAg aW50ZWdyaXR5IHNoYTUxMi1CQWtNRmNBemw4YXMxRy9oQXJreE94cTNHN3BqVXFRM2d6WWJMTDAv NXpOa3BoNzBlK2xDb3hCR25tNkFXMSsvYWlOZVY0Zm5LcVo4bTRHWmV3bUgydz09CiAKIHdzQH44 LjIuMzoKICAgdmVyc2lvbiAiOC4yLjMiCkBAIC0xMTA4Niw2ICsxMDc4NCwxMSBAQCB4bWxkb21A fjAuNS4wOgogICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS94bWxkb20v LS94bWxkb20tMC41LjAudGd6IzE5M2NiOTZiODRhYTM0ODYxMjdlYTYyNzJjNDU5NjM1NGNiNDk2 MmUiCiAgIGludGVncml0eSBzaGE1MTItRm9hajVGWFZ6Z243eEZ6c0tlTklkZTlnNmFGQnhUUGkz N2l3c25vOFF2QXBtdGc3S1lycitPUHlSSGNKRjdkdWQyYTVuR1JCWEszbjBkTDYyR2Y3UEE9PQog Cit4bWxodHRwcmVxdWVzdC1zc2xAfjIuMC4wOgorICB2ZXJzaW9uICIyLjAuMCIKKyAgcmVzb2x2 ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20veG1saHR0cHJlcXVlc3Qtc3NsLy0veG1s aHR0cHJlcXVlc3Qtc3NsLTIuMC4wLnRneiM5MTM2MGM4NmI5MTRlNjdmNDRkY2U3NjkxODAwMjdj MGRhNjE4YzY3IgorICBpbnRlZ3JpdHkgc2hhNTEyLVFLeFZSeGlSQUNRY1Z1UUVZRnNJMWhoa3JN bHJYSFBlZ2JiZDF5bjlVSE9tUnhZK3NpMTJuUVl6cmkzdmJ6dDhWZFRUUnZpcWNLeGN5bGxGYXM1 ejJBPT0KKwogeHRlbmRAXjQuMC4wLCB4dGVuZEBeNC4wLjEsIHh0ZW5kQF40LjAuMiwgeHRlbmRA fjQuMC4xOgogICB2ZXJzaW9uICI0LjAuMiIKICAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnku eWFybnBrZy5jb20veHRlbmQvLS94dGVuZC00LjAuMi50Z3ojYmI3Mjc3OWY1ZmE0NjUxODZiMWY0 MzhmNjc0ZmEzNDdmZGI1ZGI1NCIKQEAgLTExMDk3LDkgKzEwODAwLDkgQEAgeHRlcm0tYWRkb24t Zml0QF4wLjUuMDoKICAgaW50ZWdyaXR5IHNoYTUxMi1Ec1M5ZnFoWEhhY0Vtc1B4QkpadmZqMmxh MzBJejl4aytVS2poUWduWU5rclVJTjVDWUxidzdXRWZ6MTE3YzcrUzg2Uy90cEhQZnZOeEpzRjUv Rzh3UT09CiAKIHh0ZXJtLWFkZG9uLXNlYXJjaEBeMC44LjA6Ci0gIHZlcnNpb24gIjAuOC4wIgot ICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS94dGVybS1hZGRvbi1zZWFy Y2gvLS94dGVybS1hZGRvbi1zZWFyY2gtMC44LjAudGd6I2UzM2VhYjkxOGRmN2VhYzdlN2JhZjk1 ZGQyYjNkMTQxMzM3NTQ4ODEiCi0gIGludGVncml0eSBzaGE1MTItTVBKR1BWUHBIUlV3OWNMSXVx UWJyVmVwbUVOTU95YlZVU3hJQUx6NWgxcnl5UUJyVnFWdWpxMmhMNWFyb1g1L2RaSm9IeDlsR0hR VFZMUTA3U0tnS0E9PQorICB2ZXJzaW9uICIwLjguMSIKKyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVn aXN0cnkueWFybnBrZy5jb20veHRlcm0tYWRkb24tc2VhcmNoLy0veHRlcm0tYWRkb24tc2VhcmNo LTAuOC4xLnRneiNkZmM1NTdlOWJjZjVmZDhlZDk2MjkyYzBkMjcxYWE4NjViYzU0NWQ1IgorICBp bnRlZ3JpdHkgc2hhNTEyLU90T2FDOWd4RDJRNFpualpyQ1NSWm1LTHd3VWpYWDNnUDdtSXpxOFJz NTAzMTdER1JEcWdUTHVIVFl2L054L0x2STVjZVZGUllDeEszNkl4czFuWE53PT0KIAogeHRlcm0t YWRkb24td2ViLWxpbmtzQF4wLjQuMDoKICAgdmVyc2lvbiAiMC40LjAiCkBAIC0xMTEwNyw5ICsx MDgxMCw5IEBAIHh0ZXJtLWFkZG9uLXdlYi1saW5rc0BeMC40LjA6CiAgIGludGVncml0eSBzaGE1 MTIteHY4R2VpSU5teDB6RU5POWhmNWsrNWJua2FFOG1SekYrT0JBcjlXZUZxMmVMYVFTdWRpb1FT aVQzNE0xb2ZLYnpjZGpTc0tpWm0xOVJ3M2k0ZVhhbWc9PQogCiB4dGVybUBeNC4xMS4wOgotICB2 ZXJzaW9uICI0LjEyLjAiCi0gIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29t L3h0ZXJtLy0veHRlcm0tNC4xMi4wLnRneiNkYjA5YjQyNWI0ZGNhZTViOTZmOGNiYmFhYTkzYjNi YzYwOTk3Y2E5IgotICBpbnRlZ3JpdHkgc2hhNTEyLUs1bUYvcDN0eFVWMThtamlaRmxFbGFnb0hG cHFYcm01T1lIZW95bWVYU3U4R0cvbk1hT08vK05SY05Dd2ZkanpBYmRRNVZMRjMyaEVIaVdXS0tt MGJ3PT0KKyAgdmVyc2lvbiAiNC4xNC4xIgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55 YXJucGtnLmNvbS94dGVybS8tL3h0ZXJtLTQuMTQuMS50Z3ojNjg4NGNiOGZiM2I4MzM1M2IxYTk4 MTM5ZWEyM2RhZWRmOGUzNTc5NiIKKyAgaW50ZWdyaXR5IHNoYTUxMi1qZ3pOZzVCdUdQd3E1L000 ZEdubWJnaFp2SHgyamFqKzljclNFdDE1YlYzNFphNDlWemlCbUN1N3pJeTg4elVLS2lHVHhlbzdh VnppckZTSkFySU1Gdz09CiAKIHkxOG5AXjUuMC41OgogICB2ZXJzaW9uICI1LjAuOCIKQEAgLTEx MTI2LDE1ICsxMDgyOSwxNSBAQCB5YWxsaXN0QF40LjAuMDoKICAgcmVzb2x2ZWQgImh0dHBzOi8v cmVnaXN0cnkueWFybnBrZy5jb20veWFsbGlzdC8tL3lhbGxpc3QtNC4wLjAudGd6IzliYjkyNzkw ZDljMGVmZmVjNjNiZTczNTE5ZTExYTM1MDE5YTNhNzIiCiAgIGludGVncml0eSBzaGE1MTItM3dk R2lkWnlxNVBCMDg0WExFUzVUcE9TUkEzd2pYQWxJV01odW0ya1Jjdi80MVNuMmVtUTBkeWNRVzR1 WlhMZWp3S3ZnNkVzdmJkbFZMK0ZZRWN0N0E9PQogCi15YW1sQF4xLjEwLjAsIHlhbWxAXjEuNy4y OgoreWFtbEBeMS4xMC4wLCB5YW1sQF4xLjEwLjIsIHlhbWxAXjEuNy4yOgogICB2ZXJzaW9uICIx LjEwLjIiCiAgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL3lhbWwvLS95 YW1sLTEuMTAuMi50Z3ojMjMwMWM1ZmZiZjEyYjQ2N2RlOGRhMjMzM2E0NTllMjllNzkyMGU0YiIK ICAgaW50ZWdyaXR5IHNoYTUxMi1yM3ZYeUVyUkNZSjd3ZzI4eXZCWTVWU29BRjhadmxjVzkvQndV ekV0VXNqdlgvREtzMjRkSWt1d2p0dXByd0pKSHNieVViTEFwZXBZVFIxQk40dUhyZz09CiAKIHlh cmdzLXBhcnNlckBeMjAuMi4yOgotICB2ZXJzaW9uICIyMC4yLjYiCi0gIHJlc29sdmVkICJodHRw czovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL3lhcmdzLXBhcnNlci8tL3lhcmdzLXBhcnNlci0yMC4y LjYudGd6IzY5ZjkyMGFkZGY2MWFhZmMwYjhiODkwMDJmNWQ2NmUyOGYyZDhiMjAiCi0gIGludGVn cml0eSBzaGE1MTItQVAxK2ZRSVdTTS9zTWlFVDhmeWF5angvSitKbVRQdDJNcjBGa3JncUI0dG9k dGZhNTNzT3NyU0FjSXJKUkQ1WFMyMGJLVXdhREl1TWtXS0NFaVFMS0E9PQorICB2ZXJzaW9uICIy MC4yLjkiCisgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL3lhcmdzLXBh cnNlci8tL3lhcmdzLXBhcnNlci0yMC4yLjkudGd6IzJlYjdkYzNiMDI4OTcxOGZjMjk1ZjM2Mjc1 Mzg0NWM0MWEwYzk0ZWUiCisgIGludGVncml0eSBzaGE1MTIteTExbkdFbFRJVitDVDNadjl0N1ZL bCtRM2hUUW9UOWExUXplemhobDZScDIxZ0ovSVZUVzdaM3k5RVdYaHVVQkMyU2huZitEWDBhbnRl Y3BBd1NQOHc9PQogCiB5YXJnc0BeMTYuMS4xOgogICB2ZXJzaW9uICIxNi4yLjAiCg== --000000000000994b3f05da5175d3--