Return-Path: X-Original-To: apmail-cassandra-user-archive@www.apache.org Delivered-To: apmail-cassandra-user-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 49FA910120 for ; Thu, 31 Oct 2013 07:03:39 +0000 (UTC) Received: (qmail 52651 invoked by uid 500); 31 Oct 2013 07:03:25 -0000 Delivered-To: apmail-cassandra-user-archive@cassandra.apache.org Received: (qmail 52306 invoked by uid 500); 31 Oct 2013 07:03:16 -0000 Mailing-List: contact user-help@cassandra.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: user@cassandra.apache.org Delivered-To: mailing list user@cassandra.apache.org Received: (qmail 52287 invoked by uid 99); 31 Oct 2013 07:03:12 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 31 Oct 2013 07:03:12 +0000 X-ASF-Spam-Status: No, hits=1.5 required=5.0 tests=HTML_MESSAGE,RCVD_IN_DNSWL_LOW,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (nike.apache.org: domain of ash2kk@gmail.com designates 209.85.217.176 as permitted sender) Received: from [209.85.217.176] (HELO mail-lb0-f176.google.com) (209.85.217.176) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 31 Oct 2013 07:03:04 +0000 Received: by mail-lb0-f176.google.com with SMTP id z5so2008443lbh.7 for ; Thu, 31 Oct 2013 00:02:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:from:date:message-id:subject:to:content-type; bh=31bSO4MOX8pGpp8fa+xoUPh/Y/dRwMM20QKQC4jXtXs=; b=py8t+uSaSkXXJQCkmWMP4epBUDhuW0Gwfa/z/xV2naRLku7T9Ol1dKQX/NmBJlIFlN RIldI1KxpVZVLAl+9nSUrJwl3sS04Q3U55A4+8MRHFjFcBEaYh7oBF8VVy2FczBwo1Q1 yxAqSlNTU4f2MndsJDjKnRA/BfYH57K+sGLE5f/U6PnJMLpdRHOL8ifFzf3xoJIVyS9i vuEIb7Q6Tj1d4McERCBO53c/xqNicKtqChQNYPYb0Obr4gjMPY8QuRtg/XuGErOuQoPk FgxuBBdLluJNa9AqYIwajtrlaX4Juyj0CEP4LjKmg/SHWfhlO6zlfFMFEunXY6gEyD+K PWrQ== X-Received: by 10.112.159.166 with SMTP id xd6mr1447424lbb.22.1383202963581; Thu, 31 Oct 2013 00:02:43 -0700 (PDT) MIME-Version: 1.0 Received: by 10.114.93.2 with HTTP; Thu, 31 Oct 2013 00:02:22 -0700 (PDT) From: Mikhail Mazursky Date: Thu, 31 Oct 2013 13:02:22 +0600 Message-ID: Subject: Node hang on shutdown To: user@cassandra.apache.org Content-Type: multipart/mixed; boundary=001a11c3db744c03cd04ea04098e X-Virus-Checked: Checked by ClamAV on apache.org --001a11c3db744c03cd04ea04098e Content-Type: multipart/alternative; boundary=001a11c3db744c03c904ea04098c --001a11c3db744c03c904ea04098c Content-Type: text/plain; charset=UTF-8 Hi. I was upgrading my 3 node testing cluster from 2.0.1 to 2.0.2. I successfully upgraded two nodes but the last one did not shutdown properly. Does somebody see anything suspicious in the attached thread dump? Regards, Mikhail. --001a11c3db744c03c904ea04098c Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
Hi.

I was upgrading my 3 node = testing cluster from 2.0.1 to 2.0.2. I successfully upgraded two nodes but = the last one did not shutdown properly. Does somebody see anything suspicio= us in the attached thread dump?

Regards,
Mikhail.
--001a11c3db744c03c904ea04098c-- --001a11c3db744c03cd04ea04098e Content-Type: text/plain; charset=US-ASCII; name="cassandra_jstack.txt" Content-Disposition: attachment; filename="cassandra_jstack.txt" Content-Transfer-Encoding: base64 X-Attachment-Id: f_hnfnai8g0 MjAxMy0xMC0zMSAxMjowOToxMgpGdWxsIHRocmVhZCBkdW1wIEphdmEgSG90U3BvdChUTSkgNjQt Qml0IFNlcnZlciBWTSAoMjMuMjUtYjAxIG1peGVkIG1vZGUpOgoKIkF0dGFjaCBMaXN0ZW5lciIg ZGFlbW9uIHByaW89MTAgdGlkPTB4MDAwMDdmMTVlMDAwNzgwMCBuaWQ9MHgzNDY3IHdhaXRpbmcg b24gY29uZGl0aW9uIFsweDAwMDAwMDAwMDAwMDAwMDBdCiAgIGphdmEubGFuZy5UaHJlYWQuU3Rh dGU6IFJVTk5BQkxFCgogICBMb2NrZWQgb3duYWJsZSBzeW5jaHJvbml6ZXJzOgoJLSBOb25lCgoi U3RvcmFnZVNlcnZpY2VTaHV0ZG93bkhvb2siIHByaW89MTAgdGlkPTB4MDAwMDdmMTVlNDY3ODgw MCBuaWQ9MHgzNDNlIHdhaXRpbmcgb24gY29uZGl0aW9uIFsweDAwMDA3ZjE1ZGM5N2IwMDBdCiAg IGphdmEubGFuZy5UaHJlYWQuU3RhdGU6IFRJTUVEX1dBSVRJTkcgKHBhcmtpbmcpCglhdCBzdW4u bWlzYy5VbnNhZmUucGFyayhOYXRpdmUgTWV0aG9kKQoJLSBwYXJraW5nIHRvIHdhaXQgZm9yICA8 MHgwMDAwMDAwMGM2ZmRkYjEwPiAoYSBqYXZhLnV0aWwuY29uY3VycmVudC5sb2Nrcy5BYnN0cmFj dFF1ZXVlZFN5bmNocm9uaXplciRDb25kaXRpb25PYmplY3QpCglhdCBqYXZhLnV0aWwuY29uY3Vy cmVudC5sb2Nrcy5Mb2NrU3VwcG9ydC5wYXJrTmFub3MoTG9ja1N1cHBvcnQuamF2YToyMjYpCglh dCBqYXZhLnV0aWwuY29uY3VycmVudC5sb2Nrcy5BYnN0cmFjdFF1ZXVlZFN5bmNocm9uaXplciRD b25kaXRpb25PYmplY3QuYXdhaXROYW5vcyhBYnN0cmFjdFF1ZXVlZFN5bmNocm9uaXplci5qYXZh OjIwODIpCglhdCBqYXZhLnV0aWwuY29uY3VycmVudC5UaHJlYWRQb29sRXhlY3V0b3IuYXdhaXRU ZXJtaW5hdGlvbihUaHJlYWRQb29sRXhlY3V0b3IuamF2YToxNDY4KQoJYXQgb3JnLmFwYWNoZS5j YXNzYW5kcmEuc2VydmljZS5TdG9yYWdlU2VydmljZSQxLnJ1bk1heVRocm93KFN0b3JhZ2VTZXJ2 aWNlLmphdmE6NTAyKQoJYXQgb3JnLmFwYWNoZS5jYXNzYW5kcmEudXRpbHMuV3JhcHBlZFJ1bm5h YmxlLnJ1bihXcmFwcGVkUnVubmFibGUuamF2YToyOCkKCWF0IGphdmEubGFuZy5UaHJlYWQucnVu KFRocmVhZC5qYXZhOjcyNCkKCiAgIExvY2tlZCBvd25hYmxlIHN5bmNocm9uaXplcnM6CgktIE5v bmUKCiJTSUdURVJNIGhhbmRsZXIiIGRhZW1vbiBwcmlvPTEwIHRpZD0weDAwMDA3ZjE1ZTAwMWM4 MDAgbmlkPTB4MzQzYyBpbiBPYmplY3Qud2FpdCgpIFsweDAwMDA3ZjE1ZGExOTgwMDBdCiAgIGph dmEubGFuZy5UaHJlYWQuU3RhdGU6IFdBSVRJTkcgKG9uIG9iamVjdCBtb25pdG9yKQoJYXQgamF2 YS5sYW5nLk9iamVjdC53YWl0KE5hdGl2ZSBNZXRob2QpCgktIHdhaXRpbmcgb24gPDB4MDAwMDAw MDBjNmZlOTIxOD4gKGEgamF2YS5sYW5nLlRocmVhZCkKCWF0IGphdmEubGFuZy5UaHJlYWQuam9p bihUaHJlYWQuamF2YToxMjYwKQoJLSBsb2NrZWQgPDB4MDAwMDAwMDBjNmZlOTIxOD4gKGEgamF2 YS5sYW5nLlRocmVhZCkKCWF0IGphdmEubGFuZy5UaHJlYWQuam9pbihUaHJlYWQuamF2YToxMzM0 KQoJYXQgamF2YS5sYW5nLkFwcGxpY2F0aW9uU2h1dGRvd25Ib29rcy5ydW5Ib29rcyhBcHBsaWNh dGlvblNodXRkb3duSG9va3MuamF2YToxMDYpCglhdCBqYXZhLmxhbmcuQXBwbGljYXRpb25TaHV0 ZG93bkhvb2tzJDEucnVuKEFwcGxpY2F0aW9uU2h1dGRvd25Ib29rcy5qYXZhOjQ2KQoJYXQgamF2 YS5sYW5nLlNodXRkb3duLnJ1bkhvb2tzKFNodXRkb3duLmphdmE6MTIzKQoJYXQgamF2YS5sYW5n LlNodXRkb3duLnNlcXVlbmNlKFNodXRkb3duLmphdmE6MTY3KQoJYXQgamF2YS5sYW5nLlNodXRk b3duLmV4aXQoU2h1dGRvd24uamF2YToyMTIpCgktIGxvY2tlZCA8MHgwMDAwMDAwMGM2YzVlOGMw PiAoYSBqYXZhLmxhbmcuQ2xhc3MgZm9yIGphdmEubGFuZy5TaHV0ZG93bikKCWF0IGphdmEubGFu Zy5UZXJtaW5hdG9yJDEuaGFuZGxlKFRlcm1pbmF0b3IuamF2YTo1MikKCWF0IHN1bi5taXNjLlNp Z25hbCQxLnJ1bihTaWduYWwuamF2YToyMTIpCglhdCBqYXZhLmxhbmcuVGhyZWFkLnJ1bihUaHJl YWQuamF2YTo3MjQpCgogICBMb2NrZWQgb3duYWJsZSBzeW5jaHJvbml6ZXJzOgoJLSBOb25lCgoi TWlncmF0aW9uU3RhZ2U6MyIgZGFlbW9uIHByaW89MTAgdGlkPTB4MDAwMDdmMTVlYzAwZjAwMCBu aWQ9MHgzNDNhIHdhaXRpbmcgb24gY29uZGl0aW9uIFsweDAwMDA3ZjE1ZGM2MmUwMDBdCiAgIGph dmEubGFuZy5UaHJlYWQuU3RhdGU6IFRJTUVEX1dBSVRJTkcgKHBhcmtpbmcpCglhdCBzdW4ubWlz Yy5VbnNhZmUucGFyayhOYXRpdmUgTWV0aG9kKQoJLSBwYXJraW5nIHRvIHdhaXQgZm9yICA8MHgw MDAwMDAwMGM2ZmNkYjEwPiAoYSBqYXZhLnV0aWwuY29uY3VycmVudC5sb2Nrcy5BYnN0cmFjdFF1 ZXVlZFN5bmNocm9uaXplciRDb25kaXRpb25PYmplY3QpCglhdCBqYXZhLnV0aWwuY29uY3VycmVu dC5sb2Nrcy5Mb2NrU3VwcG9ydC5wYXJrTmFub3MoTG9ja1N1cHBvcnQuamF2YToyMjYpCglhdCBq YXZhLnV0aWwuY29uY3VycmVudC5sb2Nrcy5BYnN0cmFjdFF1ZXVlZFN5bmNocm9uaXplciRDb25k aXRpb25PYmplY3QuYXdhaXROYW5vcyhBYnN0cmFjdFF1ZXVlZFN5bmNocm9uaXplci5qYXZhOjIw ODIpCglhdCBqYXZhLnV0aWwuY29uY3VycmVudC5MaW5rZWRCbG9ja2luZ1F1ZXVlLnBvbGwoTGlu a2VkQmxvY2tpbmdRdWV1ZS5qYXZhOjQ2NykKCWF0IGphdmEudXRpbC5jb25jdXJyZW50LlRocmVh ZFBvb2xFeGVjdXRvci5nZXRUYXNrKFRocmVhZFBvb2xFeGVjdXRvci5qYXZhOjEwNjgpCglhdCBq YXZhLnV0aWwuY29uY3VycmVudC5UaHJlYWRQb29sRXhlY3V0b3IucnVuV29ya2VyKFRocmVhZFBv b2xFeGVjdXRvci5qYXZhOjExMzApCglhdCBqYXZhLnV0aWwuY29uY3VycmVudC5UaHJlYWRQb29s RXhlY3V0b3IkV29ya2VyLnJ1bihUaHJlYWRQb29sRXhlY3V0b3IuamF2YTo2MTUpCglhdCBqYXZh LmxhbmcuVGhyZWFkLnJ1bihUaHJlYWQuamF2YTo3MjQpCgogICBMb2NrZWQgb3duYWJsZSBzeW5j aHJvbml6ZXJzOgoJLSBOb25lCgoiTXV0YXRpb25TdGFnZToyNzE4IiBkYWVtb24gcHJpbz0xMCB0 aWQ9MHgwMDAwN2YxNWY0MDI2MDAwIG5pZD0weDMzZWEgd2FpdGluZyBvbiBjb25kaXRpb24gWzB4 MDAwMDdmMTVkODU3YTAwMF0KICAgamF2YS5sYW5nLlRocmVhZC5TdGF0ZTogV0FJVElORyAocGFy a2luZykKCWF0IHN1bi5taXNjLlVuc2FmZS5wYXJrKE5hdGl2ZSBNZXRob2QpCgktIHBhcmtpbmcg dG8gd2FpdCBmb3IgIDwweDAwMDAwMDAwYzJhMTg2YTA+IChhIGphdmEudXRpbC5jb25jdXJyZW50 LkZ1dHVyZVRhc2skU3luYykKCWF0IGphdmEudXRpbC5jb25jdXJyZW50LmxvY2tzLkxvY2tTdXBw b3J0LnBhcmsoTG9ja1N1cHBvcnQuamF2YToxODYpCglhdCBqYXZhLnV0aWwuY29uY3VycmVudC5s b2Nrcy5BYnN0cmFjdFF1ZXVlZFN5bmNocm9uaXplci5wYXJrQW5kQ2hlY2tJbnRlcnJ1cHQoQWJz dHJhY3RRdWV1ZWRTeW5jaHJvbml6ZXIuamF2YTo4MzQpCglhdCBqYXZhLnV0aWwuY29uY3VycmVu dC5sb2Nrcy5BYnN0cmFjdFF1ZXVlZFN5bmNocm9uaXplci5kb0FjcXVpcmVTaGFyZWRJbnRlcnJ1 cHRpYmx5KEFic3RyYWN0UXVldWVkU3luY2hyb25pemVyLmphdmE6OTk0KQoJYXQgamF2YS51dGls LmNvbmN1cnJlbnQubG9ja3MuQWJzdHJhY3RRdWV1ZWRTeW5jaHJvbml6ZXIuYWNxdWlyZVNoYXJl ZEludGVycnVwdGlibHkoQWJzdHJhY3RRdWV1ZWRTeW5jaHJvbml6ZXIuamF2YToxMzAzKQoJYXQg amF2YS51dGlsLmNvbmN1cnJlbnQuRnV0dXJlVGFzayRTeW5jLmlubmVyR2V0KEZ1dHVyZVRhc2su amF2YToyNDgpCglhdCBqYXZhLnV0aWwuY29uY3VycmVudC5GdXR1cmVUYXNrLmdldChGdXR1cmVU YXNrLmphdmE6MTExKQoJYXQgb3JnLmFwYWNoZS5jYXNzYW5kcmEudXRpbHMuRkJVdGlsaXRpZXMu d2FpdE9uRnV0dXJlKEZCVXRpbGl0aWVzLmphdmE6NDA3KQoJYXQgb3JnLmFwYWNoZS5jYXNzYW5k cmEuZGIuQ29sdW1uRmFtaWx5U3RvcmUuZm9yY2VCbG9ja2luZ0ZsdXNoKENvbHVtbkZhbWlseVN0 b3JlLmphdmE6ODE4KQoJYXQgb3JnLmFwYWNoZS5jYXNzYW5kcmEuZGIuQ29sdW1uRmFtaWx5U3Rv cmUudHJ1bmNhdGVCbG9ja2luZyhDb2x1bW5GYW1pbHlTdG9yZS5qYXZhOjE5MTMpCglhdCBvcmcu YXBhY2hlLmNhc3NhbmRyYS5kYi5UcnVuY2F0ZVZlcmJIYW5kbGVyLmRvVmVyYihUcnVuY2F0ZVZl cmJIYW5kbGVyLmphdmE6NDApCglhdCBvcmcuYXBhY2hlLmNhc3NhbmRyYS5uZXQuTWVzc2FnZURl bGl2ZXJ5VGFzay5ydW4oTWVzc2FnZURlbGl2ZXJ5VGFzay5qYXZhOjU2KQoJYXQgamF2YS51dGls LmNvbmN1cnJlbnQuVGhyZWFkUG9vbEV4ZWN1dG9yLnJ1bldvcmtlcihUaHJlYWRQb29sRXhlY3V0 b3IuamF2YToxMTQ1KQoJYXQgamF2YS51dGlsLmNvbmN1cnJlbnQuVGhyZWFkUG9vbEV4ZWN1dG9y JFdvcmtlci5ydW4oVGhyZWFkUG9vbEV4ZWN1dG9yLmphdmE6NjE1KQoJYXQgamF2YS5sYW5nLlRo cmVhZC5ydW4oVGhyZWFkLmphdmE6NzI0KQoKICAgTG9ja2VkIG93bmFibGUgc3luY2hyb25pemVy czoKCS0gPDB4MDAwMDAwMDBjMDkwMDg3MD4gKGEgamF2YS51dGlsLmNvbmN1cnJlbnQuVGhyZWFk UG9vbEV4ZWN1dG9yJFdvcmtlcikKCiJUaHJlYWQtMTUiIHByaW89MTAgdGlkPTB4MDAwMDdmMTVm ODA5NjgwMCBuaWQ9MHg2MWEwIHJ1bm5hYmxlIFsweDAwMDA3ZjE1ZDliNTAwMDBdCiAgIGphdmEu bGFuZy5UaHJlYWQuU3RhdGU6IFJVTk5BQkxFCglhdCBzdW4ubmlvLmNoLkZpbGVEaXNwYXRjaGVy SW1wbC5yZWFkMChOYXRpdmUgTWV0aG9kKQoJYXQgc3VuLm5pby5jaC5Tb2NrZXREaXNwYXRjaGVy LnJlYWQoU29ja2V0RGlzcGF0Y2hlci5qYXZhOjM5KQoJYXQgc3VuLm5pby5jaC5JT1V0aWwucmVh ZEludG9OYXRpdmVCdWZmZXIoSU9VdGlsLmphdmE6MjI1KQoJYXQgc3VuLm5pby5jaC5JT1V0aWwu cmVhZChJT1V0aWwuamF2YToxOTgpCglhdCBzdW4ubmlvLmNoLlNvY2tldENoYW5uZWxJbXBsLnJl YWQoU29ja2V0Q2hhbm5lbEltcGwuamF2YTozNzUpCgktIGxvY2tlZCA8MHgwMDAwMDAwMGM3NDU0 Nzc4PiAoYSBqYXZhLmxhbmcuT2JqZWN0KQoJYXQgc3VuLm5pby5jaC5Tb2NrZXRBZGFwdG9yJFNv Y2tldElucHV0U3RyZWFtLnJlYWQoU29ja2V0QWRhcHRvci5qYXZhOjIwMSkKCS0gbG9ja2VkIDww eDAwMDAwMDAwYzc0NTQ3OTA+IChhIGphdmEubGFuZy5PYmplY3QpCglhdCBzdW4ubmlvLmNoLkNo YW5uZWxJbnB1dFN0cmVhbS5yZWFkKENoYW5uZWxJbnB1dFN0cmVhbS5qYXZhOjEwMykKCS0gbG9j a2VkIDwweDAwMDAwMDAwYzc1NGE5OTg+IChhIHN1bi5uaW8uY2guU29ja2V0QWRhcHRvciRTb2Nr ZXRJbnB1dFN0cmVhbSkKCWF0IG9yZy54ZXJpYWwuc25hcHB5LlNuYXBweUlucHV0U3RyZWFtLmhh c05leHRDaHVuayhTbmFwcHlJbnB1dFN0cmVhbS5qYXZhOjMyOCkKCWF0IG9yZy54ZXJpYWwuc25h cHB5LlNuYXBweUlucHV0U3RyZWFtLnJlYWQoU25hcHB5SW5wdXRTdHJlYW0uamF2YTozODQpCglh dCBqYXZhLmlvLkRhdGFJbnB1dFN0cmVhbS5yZWFkSW50KERhdGFJbnB1dFN0cmVhbS5qYXZhOjM4 NykKCWF0IG9yZy5hcGFjaGUuY2Fzc2FuZHJhLm5ldC5JbmNvbWluZ1RjcENvbm5lY3Rpb24uaGFu ZGxlTW9kZXJuVmVyc2lvbihJbmNvbWluZ1RjcENvbm5lY3Rpb24uamF2YToxMjQpCglhdCBvcmcu YXBhY2hlLmNhc3NhbmRyYS5uZXQuSW5jb21pbmdUY3BDb25uZWN0aW9uLnJ1bihJbmNvbWluZ1Rj cENvbm5lY3Rpb24uamF2YTo3MykKCiAgIExvY2tlZCBvd25hYmxlIHN5bmNocm9uaXplcnM6Cgkt IE5vbmUKCiJUaHJlYWQtMTIiIHByaW89MTAgdGlkPTB4MDAwMDdmMTVmODA2YTgwMCBuaWQ9MHg1 ZmZhIHJ1bm5hYmxlIFsweDAwMDA3ZjE1ZGM0ZTkwMDBdCiAgIGphdmEubGFuZy5UaHJlYWQuU3Rh dGU6IFJVTk5BQkxFCglhdCBzdW4ubmlvLmNoLkZpbGVEaXNwYXRjaGVySW1wbC5yZWFkMChOYXRp dmUgTWV0aG9kKQoJYXQgc3VuLm5pby5jaC5Tb2NrZXREaXNwYXRjaGVyLnJlYWQoU29ja2V0RGlz cGF0Y2hlci5qYXZhOjM5KQoJYXQgc3VuLm5pby5jaC5JT1V0aWwucmVhZEludG9OYXRpdmVCdWZm ZXIoSU9VdGlsLmphdmE6MjI1KQoJYXQgc3VuLm5pby5jaC5JT1V0aWwucmVhZChJT1V0aWwuamF2 YToxOTgpCglhdCBzdW4ubmlvLmNoLlNvY2tldENoYW5uZWxJbXBsLnJlYWQoU29ja2V0Q2hhbm5l bEltcGwuamF2YTozNzUpCgktIGxvY2tlZCA8MHgwMDAwMDAwMGM3MTkzYWI4PiAoYSBqYXZhLmxh bmcuT2JqZWN0KQoJYXQgc3VuLm5pby5jaC5Tb2NrZXRBZGFwdG9yJFNvY2tldElucHV0U3RyZWFt LnJlYWQoU29ja2V0QWRhcHRvci5qYXZhOjIwMSkKCS0gbG9ja2VkIDwweDAwMDAwMDAwYzcxOTM5 Zjg+IChhIGphdmEubGFuZy5PYmplY3QpCglhdCBzdW4ubmlvLmNoLkNoYW5uZWxJbnB1dFN0cmVh bS5yZWFkKENoYW5uZWxJbnB1dFN0cmVhbS5qYXZhOjEwMykKCS0gbG9ja2VkIDwweDAwMDAwMDAw YzcxOTI3MDA+IChhIHN1bi5uaW8uY2guU29ja2V0QWRhcHRvciRTb2NrZXRJbnB1dFN0cmVhbSkK CWF0IG9yZy54ZXJpYWwuc25hcHB5LlNuYXBweUlucHV0U3RyZWFtLmhhc05leHRDaHVuayhTbmFw cHlJbnB1dFN0cmVhbS5qYXZhOjMyOCkKCWF0IG9yZy54ZXJpYWwuc25hcHB5LlNuYXBweUlucHV0 U3RyZWFtLnJlYWQoU25hcHB5SW5wdXRTdHJlYW0uamF2YTozODQpCglhdCBqYXZhLmlvLkRhdGFJ bnB1dFN0cmVhbS5yZWFkSW50KERhdGFJbnB1dFN0cmVhbS5qYXZhOjM4NykKCWF0IG9yZy5hcGFj aGUuY2Fzc2FuZHJhLm5ldC5JbmNvbWluZ1RjcENvbm5lY3Rpb24uaGFuZGxlTW9kZXJuVmVyc2lv bihJbmNvbWluZ1RjcENvbm5lY3Rpb24uamF2YToxMjQpCglhdCBvcmcuYXBhY2hlLmNhc3NhbmRy YS5uZXQuSW5jb21pbmdUY3BDb25uZWN0aW9uLnJ1bihJbmNvbWluZ1RjcENvbm5lY3Rpb24uamF2 YTo3MykKCiAgIExvY2tlZCBvd25hYmxlIHN5bmNocm9uaXplcnM6CgktIE5vbmUKCiJXUklURS1j YXNzYW5kcmEtdGVzdDIubG9jYWwvMTkyLjE2OC4wLjIzMiIgZGFlbW9uIHByaW89MTAgdGlkPTB4 MDAwMDdmMTVmODA2ODAwMCBuaWQ9MHg1ZmY4IHdhaXRpbmcgb24gY29uZGl0aW9uIFsweDAwMDA3 ZjE1ZGM0NjcwMDBdCiAgIGphdmEubGFuZy5UaHJlYWQuU3RhdGU6IFdBSVRJTkcgKHBhcmtpbmcp CglhdCBzdW4ubWlzYy5VbnNhZmUucGFyayhOYXRpdmUgTWV0aG9kKQoJLSBwYXJraW5nIHRvIHdh aXQgZm9yICA8MHgwMDAwMDAwMGM3MTkzOWM4PiAoYSBqYXZhLnV0aWwuY29uY3VycmVudC5sb2Nr cy5BYnN0cmFjdFF1ZXVlZFN5bmNocm9uaXplciRDb25kaXRpb25PYmplY3QpCglhdCBqYXZhLnV0 aWwuY29uY3VycmVudC5sb2Nrcy5Mb2NrU3VwcG9ydC5wYXJrKExvY2tTdXBwb3J0LmphdmE6MTg2 KQoJYXQgamF2YS51dGlsLmNvbmN1cnJlbnQubG9ja3MuQWJzdHJhY3RRdWV1ZWRTeW5jaHJvbml6 ZXIkQ29uZGl0aW9uT2JqZWN0LmF3YWl0KEFic3RyYWN0UXVldWVkU3luY2hyb25pemVyLmphdmE6 MjA0MykKCWF0IGphdmEudXRpbC5jb25jdXJyZW50LkxpbmtlZEJsb2NraW5nUXVldWUudGFrZShM aW5rZWRCbG9ja2luZ1F1ZXVlLmphdmE6NDQyKQoJYXQgb3JnLmFwYWNoZS5jYXNzYW5kcmEubmV0 Lk91dGJvdW5kVGNwQ29ubmVjdGlvbi5ydW4oT3V0Ym91bmRUY3BDb25uZWN0aW9uLmphdmE6MTI4 KQoKICAgTG9ja2VkIG93bmFibGUgc3luY2hyb25pemVyczoKCS0gTm9uZQoKIldSSVRFLWNhc3Nh bmRyYS10ZXN0Mi5sb2NhbC8xOTIuMTY4LjAuMjMyIiBkYWVtb24gcHJpbz0xMCB0aWQ9MHgwMDAw N2YxNWY4MDVlODAwIG5pZD0weDVmZjcgd2FpdGluZyBvbiBjb25kaXRpb24gWzB4MDAwMDdmMTVk YzQyNjAwMF0KICAgamF2YS5sYW5nLlRocmVhZC5TdGF0ZTogV0FJVElORyAocGFya2luZykKCWF0 IHN1bi5taXNjLlVuc2FmZS5wYXJrKE5hdGl2ZSBNZXRob2QpCgktIHBhcmtpbmcgdG8gd2FpdCBm b3IgIDwweDAwMDAwMDAwYzcxYjY0NTg+IChhIGphdmEudXRpbC5jb25jdXJyZW50LmxvY2tzLkFi c3RyYWN0UXVldWVkU3luY2hyb25pemVyJENvbmRpdGlvbk9iamVjdCkKCWF0IGphdmEudXRpbC5j b25jdXJyZW50LmxvY2tzLkxvY2tTdXBwb3J0LnBhcmsoTG9ja1N1cHBvcnQuamF2YToxODYpCglh dCBqYXZhLnV0aWwuY29uY3VycmVudC5sb2Nrcy5BYnN0cmFjdFF1ZXVlZFN5bmNocm9uaXplciRD b25kaXRpb25PYmplY3QuYXdhaXQoQWJzdHJhY3RRdWV1ZWRTeW5jaHJvbml6ZXIuamF2YToyMDQz KQoJYXQgamF2YS51dGlsLmNvbmN1cnJlbnQuTGlua2VkQmxvY2tpbmdRdWV1ZS50YWtlKExpbmtl ZEJsb2NraW5nUXVldWUuamF2YTo0NDIpCglhdCBvcmcuYXBhY2hlLmNhc3NhbmRyYS5uZXQuT3V0 Ym91bmRUY3BDb25uZWN0aW9uLnJ1bihPdXRib3VuZFRjcENvbm5lY3Rpb24uamF2YToxMjgpCgog ICBMb2NrZWQgb3duYWJsZSBzeW5jaHJvbml6ZXJzOgoJLSBOb25lCgoiVGhyZWFkLTgiIHByaW89 MTAgdGlkPTB4MDAwMDdmMTVmODA1MTgwMCBuaWQ9MHg1ZmQ4IHJ1bm5hYmxlIFsweDAwMDA3ZjE1 ZDljMTMwMDBdCiAgIGphdmEubGFuZy5UaHJlYWQuU3RhdGU6IFJVTk5BQkxFCglhdCBzdW4ubmlv LmNoLkZpbGVEaXNwYXRjaGVySW1wbC5yZWFkMChOYXRpdmUgTWV0aG9kKQoJYXQgc3VuLm5pby5j aC5Tb2NrZXREaXNwYXRjaGVyLnJlYWQoU29ja2V0RGlzcGF0Y2hlci5qYXZhOjM5KQoJYXQgc3Vu Lm5pby5jaC5JT1V0aWwucmVhZEludG9OYXRpdmVCdWZmZXIoSU9VdGlsLmphdmE6MjI1KQoJYXQg c3VuLm5pby5jaC5JT1V0aWwucmVhZChJT1V0aWwuamF2YToxOTgpCglhdCBzdW4ubmlvLmNoLlNv Y2tldENoYW5uZWxJbXBsLnJlYWQoU29ja2V0Q2hhbm5lbEltcGwuamF2YTozNzUpCgktIGxvY2tl ZCA8MHgwMDAwMDAwMGM3MTQxNGU4PiAoYSBqYXZhLmxhbmcuT2JqZWN0KQoJYXQgc3VuLm5pby5j aC5Tb2NrZXRBZGFwdG9yJFNvY2tldElucHV0U3RyZWFtLnJlYWQoU29ja2V0QWRhcHRvci5qYXZh OjIwMSkKCS0gbG9ja2VkIDwweDAwMDAwMDAwYzcxNDE1MTg+IChhIGphdmEubGFuZy5PYmplY3Qp CglhdCBzdW4ubmlvLmNoLkNoYW5uZWxJbnB1dFN0cmVhbS5yZWFkKENoYW5uZWxJbnB1dFN0cmVh bS5qYXZhOjEwMykKCS0gbG9ja2VkIDwweDAwMDAwMDAwYzcxNDNjNTg+IChhIHN1bi5uaW8uY2gu U29ja2V0QWRhcHRvciRTb2NrZXRJbnB1dFN0cmVhbSkKCWF0IG9yZy54ZXJpYWwuc25hcHB5LlNu YXBweUlucHV0U3RyZWFtLmhhc05leHRDaHVuayhTbmFwcHlJbnB1dFN0cmVhbS5qYXZhOjMyOCkK CWF0IG9yZy54ZXJpYWwuc25hcHB5LlNuYXBweUlucHV0U3RyZWFtLnJlYWQoU25hcHB5SW5wdXRT dHJlYW0uamF2YTozODQpCglhdCBqYXZhLmlvLkRhdGFJbnB1dFN0cmVhbS5yZWFkSW50KERhdGFJ bnB1dFN0cmVhbS5qYXZhOjM4NykKCWF0IG9yZy5hcGFjaGUuY2Fzc2FuZHJhLm5ldC5JbmNvbWlu Z1RjcENvbm5lY3Rpb24uaGFuZGxlTW9kZXJuVmVyc2lvbihJbmNvbWluZ1RjcENvbm5lY3Rpb24u amF2YToxMjQpCglhdCBvcmcuYXBhY2hlLmNhc3NhbmRyYS5uZXQuSW5jb21pbmdUY3BDb25uZWN0 aW9uLnJ1bihJbmNvbWluZ1RjcENvbm5lY3Rpb24uamF2YTo3MykKCiAgIExvY2tlZCBvd25hYmxl IHN5bmNocm9uaXplcnM6CgktIE5vbmUKCiJSTUkgU2NoZWR1bGVyKDApIiBkYWVtb24gcHJpbz0x MCB0aWQ9MHgwMDAwN2YxNWUwMDE0MDAwIG5pZD0weDVmZDUgd2FpdGluZyBvbiBjb25kaXRpb24g WzB4MDAwMDdmMTVkOWM5NTAwMF0KICAgamF2YS5sYW5nLlRocmVhZC5TdGF0ZTogV0FJVElORyAo cGFya2luZykKCWF0IHN1bi5taXNjLlVuc2FmZS5wYXJrKE5hdGl2ZSBNZXRob2QpCgktIHBhcmtp bmcgdG8gd2FpdCBmb3IgIDwweDAwMDAwMDAwYzZkNTY2ZTA+IChhIGphdmEudXRpbC5jb25jdXJy ZW50LmxvY2tzLkFic3RyYWN0UXVldWVkU3luY2hyb25pemVyJENvbmRpdGlvbk9iamVjdCkKCWF0 IGphdmEudXRpbC5jb25jdXJyZW50LmxvY2tzLkxvY2tTdXBwb3J0LnBhcmsoTG9ja1N1cHBvcnQu amF2YToxODYpCglhdCBqYXZhLnV0aWwuY29uY3VycmVudC5sb2Nrcy5BYnN0cmFjdFF1ZXVlZFN5 bmNocm9uaXplciRDb25kaXRpb25PYmplY3QuYXdhaXQoQWJzdHJhY3RRdWV1ZWRTeW5jaHJvbml6 ZXIuamF2YToyMDQzKQoJYXQgamF2YS51dGlsLmNvbmN1cnJlbnQuU2NoZWR1bGVkVGhyZWFkUG9v bEV4ZWN1dG9yJERlbGF5ZWRXb3JrUXVldWUudGFrZShTY2hlZHVsZWRUaHJlYWRQb29sRXhlY3V0 b3IuamF2YToxMDc5KQoJYXQgamF2YS51dGlsLmNvbmN1cnJlbnQuU2NoZWR1bGVkVGhyZWFkUG9v bEV4ZWN1dG9yJERlbGF5ZWRXb3JrUXVldWUudGFrZShTY2hlZHVsZWRUaHJlYWRQb29sRXhlY3V0 b3IuamF2YTo4MDcpCglhdCBqYXZhLnV0aWwuY29uY3VycmVudC5UaHJlYWRQb29sRXhlY3V0b3Iu Z2V0VGFzayhUaHJlYWRQb29sRXhlY3V0b3IuamF2YToxMDY4KQoJYXQgamF2YS51dGlsLmNvbmN1 cnJlbnQuVGhyZWFkUG9vbEV4ZWN1dG9yLnJ1bldvcmtlcihUaHJlYWRQb29sRXhlY3V0b3IuamF2 YToxMTMwKQoJYXQgamF2YS51dGlsLmNvbmN1cnJlbnQuVGhyZWFkUG9vbEV4ZWN1dG9yJFdvcmtl ci5ydW4oVGhyZWFkUG9vbEV4ZWN1dG9yLmphdmE6NjE1KQoJYXQgamF2YS5sYW5nLlRocmVhZC5y dW4oVGhyZWFkLmphdmE6NzI0KQoKICAgTG9ja2VkIG93bmFibGUgc3luY2hyb25pemVyczoKCS0g Tm9uZQoKIkRlc3Ryb3lKYXZhVk0iIHByaW89MTAgdGlkPTB4MDAwMDdmMTYwNDAwYTAwMCBuaWQ9 MHg1ZjY2IHdhaXRpbmcgb24gY29uZGl0aW9uIFsweDAwMDAwMDAwMDAwMDAwMDBdCiAgIGphdmEu bGFuZy5UaHJlYWQuU3RhdGU6IFJVTk5BQkxFCgogICBMb2NrZWQgb3duYWJsZSBzeW5jaHJvbml6 ZXJzOgoJLSBOb25lCgoiVGhyZWFkLTUiIHByaW89MTAgdGlkPTB4MDAwMDdmMTVmODA0ZjAwMCBu aWQ9MHg1ZmNhIHJ1bm5hYmxlIFsweDAwMDA3ZjE1ZGExNTcwMDBdCiAgIGphdmEubGFuZy5UaHJl YWQuU3RhdGU6IFJVTk5BQkxFCglhdCBzdW4ubmlvLmNoLkZpbGVEaXNwYXRjaGVySW1wbC5yZWFk MChOYXRpdmUgTWV0aG9kKQoJYXQgc3VuLm5pby5jaC5Tb2NrZXREaXNwYXRjaGVyLnJlYWQoU29j a2V0RGlzcGF0Y2hlci5qYXZhOjM5KQoJYXQgc3VuLm5pby5jaC5JT1V0aWwucmVhZEludG9OYXRp dmVCdWZmZXIoSU9VdGlsLmphdmE6MjI1KQoJYXQgc3VuLm5pby5jaC5JT1V0aWwucmVhZChJT1V0 aWwuamF2YToxOTgpCglhdCBzdW4ubmlvLmNoLlNvY2tldENoYW5uZWxJbXBsLnJlYWQoU29ja2V0 Q2hhbm5lbEltcGwuamF2YTozNzUpCgktIGxvY2tlZCA8MHgwMDAwMDAwMGM3MDYyZmIwPiAoYSBq YXZhLmxhbmcuT2JqZWN0KQoJYXQgc3VuLm5pby5jaC5Tb2NrZXRBZGFwdG9yJFNvY2tldElucHV0 U3RyZWFtLnJlYWQoU29ja2V0QWRhcHRvci5qYXZhOjIwMSkKCS0gbG9ja2VkIDwweDAwMDAwMDAw YzcwNjJmZTA+IChhIGphdmEubGFuZy5PYmplY3QpCglhdCBzdW4ubmlvLmNoLkNoYW5uZWxJbnB1 dFN0cmVhbS5yZWFkKENoYW5uZWxJbnB1dFN0cmVhbS5qYXZhOjEwMykKCS0gbG9ja2VkIDwweDAw MDAwMDAwYzcwNjI1NjA+IChhIHN1bi5uaW8uY2guU29ja2V0QWRhcHRvciRTb2NrZXRJbnB1dFN0 cmVhbSkKCWF0IG9yZy54ZXJpYWwuc25hcHB5LlNuYXBweUlucHV0U3RyZWFtLmhhc05leHRDaHVu ayhTbmFwcHlJbnB1dFN0cmVhbS5qYXZhOjMyOCkKCWF0IG9yZy54ZXJpYWwuc25hcHB5LlNuYXBw eUlucHV0U3RyZWFtLnJlYWQoU25hcHB5SW5wdXRTdHJlYW0uamF2YTozODQpCglhdCBqYXZhLmlv LkRhdGFJbnB1dFN0cmVhbS5yZWFkSW50KERhdGFJbnB1dFN0cmVhbS5qYXZhOjM4NykKCWF0IG9y Zy5hcGFjaGUuY2Fzc2FuZHJhLm5ldC5JbmNvbWluZ1RjcENvbm5lY3Rpb24uaGFuZGxlTW9kZXJu VmVyc2lvbihJbmNvbWluZ1RjcENvbm5lY3Rpb24uamF2YToxMjQpCglhdCBvcmcuYXBhY2hlLmNh c3NhbmRyYS5uZXQuSW5jb21pbmdUY3BDb25uZWN0aW9uLnJ1bihJbmNvbWluZ1RjcENvbm5lY3Rp b24uamF2YTo3MykKCiAgIExvY2tlZCBvd25hYmxlIHN5bmNocm9uaXplcnM6CgktIE5vbmUKCiJX UklURS0vMTkyLjE2OC4wLjE5NyIgZGFlbW9uIHByaW89MTAgdGlkPTB4MDAwMDdmMTVlNDRiODgw MCBuaWQ9MHg1ZmM4IHdhaXRpbmcgb24gY29uZGl0aW9uIFsweDAwMDA3ZjE1ZGEwNTIwMDBdCiAg IGphdmEubGFuZy5UaHJlYWQuU3RhdGU6IFdBSVRJTkcgKHBhcmtpbmcpCglhdCBzdW4ubWlzYy5V bnNhZmUucGFyayhOYXRpdmUgTWV0aG9kKQoJLSBwYXJraW5nIHRvIHdhaXQgZm9yICA8MHgwMDAw MDAwMGM3MDYzMDEwPiAoYSBqYXZhLnV0aWwuY29uY3VycmVudC5sb2Nrcy5BYnN0cmFjdFF1ZXVl ZFN5bmNocm9uaXplciRDb25kaXRpb25PYmplY3QpCglhdCBqYXZhLnV0aWwuY29uY3VycmVudC5s b2Nrcy5Mb2NrU3VwcG9ydC5wYXJrKExvY2tTdXBwb3J0LmphdmE6MTg2KQoJYXQgamF2YS51dGls LmNvbmN1cnJlbnQubG9ja3MuQWJzdHJhY3RRdWV1ZWRTeW5jaHJvbml6ZXIkQ29uZGl0aW9uT2Jq ZWN0LmF3YWl0KEFic3RyYWN0UXVldWVkU3luY2hyb25pemVyLmphdmE6MjA0MykKCWF0IGphdmEu dXRpbC5jb25jdXJyZW50LkxpbmtlZEJsb2NraW5nUXVldWUudGFrZShMaW5rZWRCbG9ja2luZ1F1 ZXVlLmphdmE6NDQyKQoJYXQgb3JnLmFwYWNoZS5jYXNzYW5kcmEubmV0Lk91dGJvdW5kVGNwQ29u bmVjdGlvbi5ydW4oT3V0Ym91bmRUY3BDb25uZWN0aW9uLmphdmE6MTI4KQoKICAgTG9ja2VkIG93 bmFibGUgc3luY2hyb25pemVyczoKCS0gTm9uZQoKIldSSVRFLS8xOTIuMTY4LjAuMTk3IiBkYWVt b24gcHJpbz0xMCB0aWQ9MHgwMDAwN2YxNWU0MTJlMDAwIG5pZD0weDVmYzcgd2FpdGluZyBvbiBj b25kaXRpb24gWzB4MDAwMDdmMTVkYTA5MzAwMF0KICAgamF2YS5sYW5nLlRocmVhZC5TdGF0ZTog V0FJVElORyAocGFya2luZykKCWF0IHN1bi5taXNjLlVuc2FmZS5wYXJrKE5hdGl2ZSBNZXRob2Qp CgktIHBhcmtpbmcgdG8gd2FpdCBmb3IgIDwweDAwMDAwMDAwYzcwYTBhNjA+IChhIGphdmEudXRp bC5jb25jdXJyZW50LmxvY2tzLkFic3RyYWN0UXVldWVkU3luY2hyb25pemVyJENvbmRpdGlvbk9i amVjdCkKCWF0IGphdmEudXRpbC5jb25jdXJyZW50LmxvY2tzLkxvY2tTdXBwb3J0LnBhcmsoTG9j a1N1cHBvcnQuamF2YToxODYpCglhdCBqYXZhLnV0aWwuY29uY3VycmVudC5sb2Nrcy5BYnN0cmFj dFF1ZXVlZFN5bmNocm9uaXplciRDb25kaXRpb25PYmplY3QuYXdhaXQoQWJzdHJhY3RRdWV1ZWRT eW5jaHJvbml6ZXIuamF2YToyMDQzKQoJYXQgamF2YS51dGlsLmNvbmN1cnJlbnQuTGlua2VkQmxv Y2tpbmdRdWV1ZS50YWtlKExpbmtlZEJsb2NraW5nUXVldWUuamF2YTo0NDIpCglhdCBvcmcuYXBh Y2hlLmNhc3NhbmRyYS5uZXQuT3V0Ym91bmRUY3BDb25uZWN0aW9uLnJ1bihPdXRib3VuZFRjcENv bm5lY3Rpb24uamF2YToxMjgpCgogICBMb2NrZWQgb3duYWJsZSBzeW5jaHJvbml6ZXJzOgoJLSBO b25lCgoiV1JJVEUtLzE5Mi4xNjguMC4yNTEiIGRhZW1vbiBwcmlvPTEwIHRpZD0weDAwMDA3ZjE1 ZTQ0NmIwMDAgbmlkPTB4NWZjNCB3YWl0aW5nIG9uIGNvbmRpdGlvbiBbMHgwMDAwN2YxNWRhMGQ0 MDAwXQogICBqYXZhLmxhbmcuVGhyZWFkLlN0YXRlOiBXQUlUSU5HIChwYXJraW5nKQoJYXQgc3Vu Lm1pc2MuVW5zYWZlLnBhcmsoTmF0aXZlIE1ldGhvZCkKCS0gcGFya2luZyB0byB3YWl0IGZvciAg PDB4MDAwMDAwMDBjNzA2MmJkOD4gKGEgamF2YS51dGlsLmNvbmN1cnJlbnQubG9ja3MuQWJzdHJh Y3RRdWV1ZWRTeW5jaHJvbml6ZXIkQ29uZGl0aW9uT2JqZWN0KQoJYXQgamF2YS51dGlsLmNvbmN1 cnJlbnQubG9ja3MuTG9ja1N1cHBvcnQucGFyayhMb2NrU3VwcG9ydC5qYXZhOjE4NikKCWF0IGph dmEudXRpbC5jb25jdXJyZW50LmxvY2tzLkFic3RyYWN0UXVldWVkU3luY2hyb25pemVyJENvbmRp dGlvbk9iamVjdC5hd2FpdChBYnN0cmFjdFF1ZXVlZFN5bmNocm9uaXplci5qYXZhOjIwNDMpCglh dCBqYXZhLnV0aWwuY29uY3VycmVudC5MaW5rZWRCbG9ja2luZ1F1ZXVlLnRha2UoTGlua2VkQmxv Y2tpbmdRdWV1ZS5qYXZhOjQ0MikKCWF0IG9yZy5hcGFjaGUuY2Fzc2FuZHJhLm5ldC5PdXRib3Vu ZFRjcENvbm5lY3Rpb24ucnVuKE91dGJvdW5kVGNwQ29ubmVjdGlvbi5qYXZhOjEyOCkKCiAgIExv Y2tlZCBvd25hYmxlIHN5bmNocm9uaXplcnM6CgktIE5vbmUKCiJXUklURS0vMTkyLjE2OC4wLjI1 MSIgZGFlbW9uIHByaW89MTAgdGlkPTB4MDAwMDdmMTVlNDY4YjAwMCBuaWQ9MHg1ZmMzIHdhaXRp bmcgb24gY29uZGl0aW9uIFsweDAwMDA3ZjE1ZGExMTUwMDBdCiAgIGphdmEubGFuZy5UaHJlYWQu U3RhdGU6IFdBSVRJTkcgKHBhcmtpbmcpCglhdCBzdW4ubWlzYy5VbnNhZmUucGFyayhOYXRpdmUg TWV0aG9kKQoJLSBwYXJraW5nIHRvIHdhaXQgZm9yICA8MHgwMDAwMDAwMGM3MDYyYzIwPiAoYSBq YXZhLnV0aWwuY29uY3VycmVudC5sb2Nrcy5BYnN0cmFjdFF1ZXVlZFN5bmNocm9uaXplciRDb25k aXRpb25PYmplY3QpCglhdCBqYXZhLnV0aWwuY29uY3VycmVudC5sb2Nrcy5Mb2NrU3VwcG9ydC5w YXJrKExvY2tTdXBwb3J0LmphdmE6MTg2KQoJYXQgamF2YS51dGlsLmNvbmN1cnJlbnQubG9ja3Mu QWJzdHJhY3RRdWV1ZWRTeW5jaHJvbml6ZXIkQ29uZGl0aW9uT2JqZWN0LmF3YWl0KEFic3RyYWN0 UXVldWVkU3luY2hyb25pemVyLmphdmE6MjA0MykKCWF0IGphdmEudXRpbC5jb25jdXJyZW50Lkxp bmtlZEJsb2NraW5nUXVldWUudGFrZShMaW5rZWRCbG9ja2luZ1F1ZXVlLmphdmE6NDQyKQoJYXQg b3JnLmFwYWNoZS5jYXNzYW5kcmEubmV0Lk91dGJvdW5kVGNwQ29ubmVjdGlvbi5ydW4oT3V0Ym91 bmRUY3BDb25uZWN0aW9uLmphdmE6MTI4KQoKICAgTG9ja2VkIG93bmFibGUgc3luY2hyb25pemVy czoKCS0gTm9uZQoKIkhpbnRlZEhhbmRvZmY6MiIgZGFlbW9uIHByaW89MTAgdGlkPTB4MDAwMDdm MTYwNDdmYTAwMCBuaWQ9MHg1ZmMwIHdhaXRpbmcgb24gY29uZGl0aW9uIFsweDAwMDA3ZjE1ZGEx ZDkwMDBdCiAgIGphdmEubGFuZy5UaHJlYWQuU3RhdGU6IFRJTUVEX1dBSVRJTkcgKHBhcmtpbmcp CglhdCBzdW4ubWlzYy5VbnNhZmUucGFyayhOYXRpdmUgTWV0aG9kKQoJLSBwYXJraW5nIHRvIHdh aXQgZm9yICA8MHgwMDAwMDAwMGM3MDYyY2M4PiAoYSBqYXZhLnV0aWwuY29uY3VycmVudC5sb2Nr cy5BYnN0cmFjdFF1ZXVlZFN5bmNocm9uaXplciRDb25kaXRpb25PYmplY3QpCglhdCBqYXZhLnV0 aWwuY29uY3VycmVudC5sb2Nrcy5Mb2NrU3VwcG9ydC5wYXJrTmFub3MoTG9ja1N1cHBvcnQuamF2 YToyMjYpCglhdCBqYXZhLnV0aWwuY29uY3VycmVudC5sb2Nrcy5BYnN0cmFjdFF1ZXVlZFN5bmNo cm9uaXplciRDb25kaXRpb25PYmplY3QuYXdhaXROYW5vcyhBYnN0cmFjdFF1ZXVlZFN5bmNocm9u aXplci5qYXZhOjIwODIpCglhdCBqYXZhLnV0aWwuY29uY3VycmVudC5MaW5rZWRCbG9ja2luZ1F1 ZXVlLnBvbGwoTGlua2VkQmxvY2tpbmdRdWV1ZS5qYXZhOjQ2NykKCWF0IGphdmEudXRpbC5jb25j dXJyZW50LlRocmVhZFBvb2xFeGVjdXRvci5nZXRUYXNrKFRocmVhZFBvb2xFeGVjdXRvci5qYXZh OjEwNjgpCglhdCBqYXZhLnV0aWwuY29uY3VycmVudC5UaHJlYWRQb29sRXhlY3V0b3IucnVuV29y a2VyKFRocmVhZFBvb2xFeGVjdXRvci5qYXZhOjExMzApCglhdCBqYXZhLnV0aWwuY29uY3VycmVu dC5UaHJlYWRQb29sRXhlY3V0b3IkV29ya2VyLnJ1bihUaHJlYWRQb29sRXhlY3V0b3IuamF2YTo2 MTUpCglhdCBqYXZhLmxhbmcuVGhyZWFkLnJ1bihUaHJlYWQuamF2YTo3MjQpCgogICBMb2NrZWQg b3duYWJsZSBzeW5jaHJvbml6ZXJzOgoJLSBOb25lCgoiSGludGVkSGFuZG9mZjoxIiBkYWVtb24g cHJpbz0xMCB0aWQ9MHgwMDAwN2YxNjA0N2Y4ODAwIG5pZD0weDVmYmYgd2FpdGluZyBvbiBjb25k aXRpb24gWzB4MDAwMDdmMTVkYTIxYTAwMF0KICAgamF2YS5sYW5nLlRocmVhZC5TdGF0ZTogVElN RURfV0FJVElORyAocGFya2luZykKCWF0IHN1bi5taXNjLlVuc2FmZS5wYXJrKE5hdGl2ZSBNZXRo b2QpCgktIHBhcmtpbmcgdG8gd2FpdCBmb3IgIDwweDAwMDAwMDAwYzcwNjJjYzg+IChhIGphdmEu dXRpbC5jb25jdXJyZW50LmxvY2tzLkFic3RyYWN0UXVldWVkU3luY2hyb25pemVyJENvbmRpdGlv bk9iamVjdCkKCWF0IGphdmEudXRpbC5jb25jdXJyZW50LmxvY2tzLkxvY2tTdXBwb3J0LnBhcmtO YW5vcyhMb2NrU3VwcG9ydC5qYXZhOjIyNikKCWF0IGphdmEudXRpbC5jb25jdXJyZW50LmxvY2tz LkFic3RyYWN0UXVldWVkU3luY2hyb25pemVyJENvbmRpdGlvbk9iamVjdC5hd2FpdE5hbm9zKEFi c3RyYWN0UXVldWVkU3luY2hyb25pemVyLmphdmE6MjA4MikKCWF0IGphdmEudXRpbC5jb25jdXJy ZW50LkxpbmtlZEJsb2NraW5nUXVldWUucG9sbChMaW5rZWRCbG9ja2luZ1F1ZXVlLmphdmE6NDY3 KQoJYXQgamF2YS51dGlsLmNvbmN1cnJlbnQuVGhyZWFkUG9vbEV4ZWN1dG9yLmdldFRhc2soVGhy ZWFkUG9vbEV4ZWN1dG9yLmphdmE6MTA2OCkKCWF0IGphdmEudXRpbC5jb25jdXJyZW50LlRocmVh ZFBvb2xFeGVjdXRvci5ydW5Xb3JrZXIoVGhyZWFkUG9vbEV4ZWN1dG9yLmphdmE6MTEzMCkKCWF0 IGphdmEudXRpbC5jb25jdXJyZW50LlRocmVhZFBvb2xFeGVjdXRvciRXb3JrZXIucnVuKFRocmVh ZFBvb2xFeGVjdXRvci5qYXZhOjYxNSkKCWF0IGphdmEubGFuZy5UaHJlYWQucnVuKFRocmVhZC5q YXZhOjcyNCkKCiAgIExvY2tlZCBvd25hYmxlIHN5bmNocm9uaXplcnM6CgktIE5vbmUKCiJHb3Nz aXBUYXNrczoxIiBkYWVtb24gcHJpbz0xMCB0aWQ9MHgwMDAwN2YxNjA0N2U4ODAwIG5pZD0weDVm YmQgd2FpdGluZyBvbiBjb25kaXRpb24gWzB4MDAwMDdmMTVkYTI5YzAwMF0KICAgamF2YS5sYW5n LlRocmVhZC5TdGF0ZTogV0FJVElORyAocGFya2luZykKCWF0IHN1bi5taXNjLlVuc2FmZS5wYXJr KE5hdGl2ZSBNZXRob2QpCgktIHBhcmtpbmcgdG8gd2FpdCBmb3IgIDwweDAwMDAwMDAwYzZkNDYx ODg+IChhIGphdmEudXRpbC5jb25jdXJyZW50LmxvY2tzLkFic3RyYWN0UXVldWVkU3luY2hyb25p emVyJENvbmRpdGlvbk9iamVjdCkKCWF0IGphdmEudXRpbC5jb25jdXJyZW50LmxvY2tzLkxvY2tT dXBwb3J0LnBhcmsoTG9ja1N1cHBvcnQuamF2YToxODYpCglhdCBqYXZhLnV0aWwuY29uY3VycmVu dC5sb2Nrcy5BYnN0cmFjdFF1ZXVlZFN5bmNocm9uaXplciRDb25kaXRpb25PYmplY3QuYXdhaXQo QWJzdHJhY3RRdWV1ZWRTeW5jaHJvbml6ZXIuamF2YToyMDQzKQoJYXQgamF2YS51dGlsLmNvbmN1 cnJlbnQuU2NoZWR1bGVkVGhyZWFkUG9vbEV4ZWN1dG9yJERlbGF5ZWRXb3JrUXVldWUudGFrZShT Y2hlZHVsZWRUaHJlYWRQb29sRXhlY3V0b3IuamF2YToxMDc5KQoJYXQgamF2YS51dGlsLmNvbmN1 cnJlbnQuU2NoZWR1bGVkVGhyZWFkUG9vbEV4ZWN1dG9yJERlbGF5ZWRXb3JrUXVldWUudGFrZShT Y2hlZHVsZWRUaHJlYWRQb29sRXhlY3V0b3IuamF2YTo4MDcpCglhdCBqYXZhLnV0aWwuY29uY3Vy cmVudC5UaHJlYWRQb29sRXhlY3V0b3IuZ2V0VGFzayhUaHJlYWRQb29sRXhlY3V0b3IuamF2YTox MDY4KQoJYXQgamF2YS51dGlsLmNvbmN1cnJlbnQuVGhyZWFkUG9vbEV4ZWN1dG9yLnJ1bldvcmtl cihUaHJlYWRQb29sRXhlY3V0b3IuamF2YToxMTMwKQoJYXQgamF2YS51dGlsLmNvbmN1cnJlbnQu VGhyZWFkUG9vbEV4ZWN1dG9yJFdvcmtlci5ydW4oVGhyZWFkUG9vbEV4ZWN1dG9yLmphdmE6NjE1 KQoJYXQgamF2YS5sYW5nLlRocmVhZC5ydW4oVGhyZWFkLmphdmE6NzI0KQoKICAgTG9ja2VkIG93 bmFibGUgc3luY2hyb25pemVyczoKCS0gTm9uZQoKIk1pc2NTdGFnZToxIiBkYWVtb24gcHJpbz0x MCB0aWQ9MHgwMDAwN2YxNjA0N2M5ODAwIG5pZD0weDVmYmIgd2FpdGluZyBvbiBjb25kaXRpb24g WzB4MDAwMDdmMTVkYzMyMjAwMF0KICAgamF2YS5sYW5nLlRocmVhZC5TdGF0ZTogVElNRURfV0FJ VElORyAocGFya2luZykKCWF0IHN1bi5taXNjLlVuc2FmZS5wYXJrKE5hdGl2ZSBNZXRob2QpCgkt IHBhcmtpbmcgdG8gd2FpdCBmb3IgIDwweDAwMDAwMDAwYzZmY2U2MDg+IChhIGphdmEudXRpbC5j b25jdXJyZW50LmxvY2tzLkFic3RyYWN0UXVldWVkU3luY2hyb25pemVyJENvbmRpdGlvbk9iamVj dCkKCWF0IGphdmEudXRpbC5jb25jdXJyZW50LmxvY2tzLkxvY2tTdXBwb3J0LnBhcmtOYW5vcyhM b2NrU3VwcG9ydC5qYXZhOjIyNikKCWF0IGphdmEudXRpbC5jb25jdXJyZW50LmxvY2tzLkFic3Ry YWN0UXVldWVkU3luY2hyb25pemVyJENvbmRpdGlvbk9iamVjdC5hd2FpdE5hbm9zKEFic3RyYWN0 UXVldWVkU3luY2hyb25pemVyLmphdmE6MjA4MikKCWF0IGphdmEudXRpbC5jb25jdXJyZW50Lkxp bmtlZEJsb2NraW5nUXVldWUucG9sbChMaW5rZWRCbG9ja2luZ1F1ZXVlLmphdmE6NDY3KQoJYXQg amF2YS51dGlsLmNvbmN1cnJlbnQuVGhyZWFkUG9vbEV4ZWN1dG9yLmdldFRhc2soVGhyZWFkUG9v bEV4ZWN1dG9yLmphdmE6MTA2OCkKCWF0IGphdmEudXRpbC5jb25jdXJyZW50LlRocmVhZFBvb2xF eGVjdXRvci5ydW5Xb3JrZXIoVGhyZWFkUG9vbEV4ZWN1dG9yLmphdmE6MTEzMCkKCWF0IGphdmEu dXRpbC5jb25jdXJyZW50LlRocmVhZFBvb2xFeGVjdXRvciRXb3JrZXIucnVuKFRocmVhZFBvb2xF eGVjdXRvci5qYXZhOjYxNSkKCWF0IGphdmEubGFuZy5UaHJlYWQucnVuKFRocmVhZC5qYXZhOjcy NCkKCiAgIExvY2tlZCBvd25hYmxlIHN5bmNocm9uaXplcnM6CgktIE5vbmUKCiJBbnRpRW50cm9w eVN0YWdlOjEiIGRhZW1vbiBwcmlvPTEwIHRpZD0weDAwMDA3ZjE2MDQ3YzU4MDAgbmlkPTB4NWZi OSB3YWl0aW5nIG9uIGNvbmRpdGlvbiBbMHgwMDAwN2YxNWRjM2E0MDAwXQogICBqYXZhLmxhbmcu VGhyZWFkLlN0YXRlOiBUSU1FRF9XQUlUSU5HIChwYXJraW5nKQoJYXQgc3VuLm1pc2MuVW5zYWZl LnBhcmsoTmF0aXZlIE1ldGhvZCkKCS0gcGFya2luZyB0byB3YWl0IGZvciAgPDB4MDAwMDAwMDBj NmZjZGEzOD4gKGEgamF2YS51dGlsLmNvbmN1cnJlbnQubG9ja3MuQWJzdHJhY3RRdWV1ZWRTeW5j aHJvbml6ZXIkQ29uZGl0aW9uT2JqZWN0KQoJYXQgamF2YS51dGlsLmNvbmN1cnJlbnQubG9ja3Mu TG9ja1N1cHBvcnQucGFya05hbm9zKExvY2tTdXBwb3J0LmphdmE6MjI2KQoJYXQgamF2YS51dGls LmNvbmN1cnJlbnQubG9ja3MuQWJzdHJhY3RRdWV1ZWRTeW5jaHJvbml6ZXIkQ29uZGl0aW9uT2Jq ZWN0LmF3YWl0TmFub3MoQWJzdHJhY3RRdWV1ZWRTeW5jaHJvbml6ZXIuamF2YToyMDgyKQoJYXQg amF2YS51dGlsLmNvbmN1cnJlbnQuTGlua2VkQmxvY2tpbmdRdWV1ZS5wb2xsKExpbmtlZEJsb2Nr aW5nUXVldWUuamF2YTo0NjcpCglhdCBqYXZhLnV0aWwuY29uY3VycmVudC5UaHJlYWRQb29sRXhl Y3V0b3IuZ2V0VGFzayhUaHJlYWRQb29sRXhlY3V0b3IuamF2YToxMDY4KQoJYXQgamF2YS51dGls LmNvbmN1cnJlbnQuVGhyZWFkUG9vbEV4ZWN1dG9yLnJ1bldvcmtlcihUaHJlYWRQb29sRXhlY3V0 b3IuamF2YToxMTMwKQoJYXQgamF2YS51dGlsLmNvbmN1cnJlbnQuVGhyZWFkUG9vbEV4ZWN1dG9y JFdvcmtlci5ydW4oVGhyZWFkUG9vbEV4ZWN1dG9yLmphdmE6NjE1KQoJYXQgamF2YS5sYW5nLlRo cmVhZC5ydW4oVGhyZWFkLmphdmE6NzI0KQoKICAgTG9ja2VkIG93bmFibGUgc3luY2hyb25pemVy czoKCS0gTm9uZQoKIkdvc3NpcFN0YWdlOjEiIGRhZW1vbiBwcmlvPTEwIHRpZD0weDAwMDA3ZjE2 MDQ3YzM4MDAgbmlkPTB4NWZiOCB3YWl0aW5nIG9uIGNvbmRpdGlvbiBbMHgwMDAwN2YxNWRjM2U1 MDAwXQogICBqYXZhLmxhbmcuVGhyZWFkLlN0YXRlOiBUSU1FRF9XQUlUSU5HIChwYXJraW5nKQoJ YXQgc3VuLm1pc2MuVW5zYWZlLnBhcmsoTmF0aXZlIE1ldGhvZCkKCS0gcGFya2luZyB0byB3YWl0 IGZvciAgPDB4MDAwMDAwMDBjNmZjZGEyMD4gKGEgamF2YS51dGlsLmNvbmN1cnJlbnQubG9ja3Mu QWJzdHJhY3RRdWV1ZWRTeW5jaHJvbml6ZXIkQ29uZGl0aW9uT2JqZWN0KQoJYXQgamF2YS51dGls LmNvbmN1cnJlbnQubG9ja3MuTG9ja1N1cHBvcnQucGFya05hbm9zKExvY2tTdXBwb3J0LmphdmE6 MjI2KQoJYXQgamF2YS51dGlsLmNvbmN1cnJlbnQubG9ja3MuQWJzdHJhY3RRdWV1ZWRTeW5jaHJv bml6ZXIkQ29uZGl0aW9uT2JqZWN0LmF3YWl0TmFub3MoQWJzdHJhY3RRdWV1ZWRTeW5jaHJvbml6 ZXIuamF2YToyMDgyKQoJYXQgamF2YS51dGlsLmNvbmN1cnJlbnQuTGlua2VkQmxvY2tpbmdRdWV1 ZS5wb2xsKExpbmtlZEJsb2NraW5nUXVldWUuamF2YTo0NjcpCglhdCBqYXZhLnV0aWwuY29uY3Vy cmVudC5UaHJlYWRQb29sRXhlY3V0b3IuZ2V0VGFzayhUaHJlYWRQb29sRXhlY3V0b3IuamF2YTox MDY4KQoJYXQgamF2YS51dGlsLmNvbmN1cnJlbnQuVGhyZWFkUG9vbEV4ZWN1dG9yLnJ1bldvcmtl cihUaHJlYWRQb29sRXhlY3V0b3IuamF2YToxMTMwKQoJYXQgamF2YS51dGlsLmNvbmN1cnJlbnQu VGhyZWFkUG9vbEV4ZWN1dG9yJFdvcmtlci5ydW4oVGhyZWFkUG9vbEV4ZWN1dG9yLmphdmE6NjE1 KQoJYXQgamF2YS5sYW5nLlRocmVhZC5ydW4oVGhyZWFkLmphdmE6NzI0KQoKICAgTG9ja2VkIG93 bmFibGUgc3luY2hyb25pemVyczoKCS0gTm9uZQoKIk5vblBlcmlvZGljVGFza3M6MSIgZGFlbW9u IHByaW89MTAgdGlkPTB4MDAwMDdmMTYwNDUyNTgwMCBuaWQ9MHg1ZjhhIHdhaXRpbmcgb24gY29u ZGl0aW9uIFsweDAwMDA3ZjE1ZGNmMWMwMDBdCiAgIGphdmEubGFuZy5UaHJlYWQuU3RhdGU6IFdB SVRJTkcgKHBhcmtpbmcpCglhdCBzdW4ubWlzYy5VbnNhZmUucGFyayhOYXRpdmUgTWV0aG9kKQoJ LSBwYXJraW5nIHRvIHdhaXQgZm9yICA8MHgwMDAwMDAwMGM2YzAzMDcwPiAoYSBqYXZhLnV0aWwu Y29uY3VycmVudC5sb2Nrcy5BYnN0cmFjdFF1ZXVlZFN5bmNocm9uaXplciRDb25kaXRpb25PYmpl Y3QpCglhdCBqYXZhLnV0aWwuY29uY3VycmVudC5sb2Nrcy5Mb2NrU3VwcG9ydC5wYXJrKExvY2tT dXBwb3J0LmphdmE6MTg2KQoJYXQgamF2YS51dGlsLmNvbmN1cnJlbnQubG9ja3MuQWJzdHJhY3RR dWV1ZWRTeW5jaHJvbml6ZXIkQ29uZGl0aW9uT2JqZWN0LmF3YWl0KEFic3RyYWN0UXVldWVkU3lu Y2hyb25pemVyLmphdmE6MjA0MykKCWF0IGphdmEudXRpbC5jb25jdXJyZW50LlNjaGVkdWxlZFRo cmVhZFBvb2xFeGVjdXRvciREZWxheWVkV29ya1F1ZXVlLnRha2UoU2NoZWR1bGVkVGhyZWFkUG9v bEV4ZWN1dG9yLmphdmE6MTA3OSkKCWF0IGphdmEudXRpbC5jb25jdXJyZW50LlNjaGVkdWxlZFRo cmVhZFBvb2xFeGVjdXRvciREZWxheWVkV29ya1F1ZXVlLnRha2UoU2NoZWR1bGVkVGhyZWFkUG9v bEV4ZWN1dG9yLmphdmE6ODA3KQoJYXQgamF2YS51dGlsLmNvbmN1cnJlbnQuVGhyZWFkUG9vbEV4 ZWN1dG9yLmdldFRhc2soVGhyZWFkUG9vbEV4ZWN1dG9yLmphdmE6MTA2OCkKCWF0IGphdmEudXRp bC5jb25jdXJyZW50LlRocmVhZFBvb2xFeGVjdXRvci5ydW5Xb3JrZXIoVGhyZWFkUG9vbEV4ZWN1 dG9yLmphdmE6MTEzMCkKCWF0IGphdmEudXRpbC5jb25jdXJyZW50LlRocmVhZFBvb2xFeGVjdXRv ciRXb3JrZXIucnVuKFRocmVhZFBvb2xFeGVjdXRvci5qYXZhOjYxNSkKCWF0IGphdmEubGFuZy5U aHJlYWQucnVuKFRocmVhZC5qYXZhOjcyNCkKCiAgIExvY2tlZCBvd25hYmxlIHN5bmNocm9uaXpl cnM6CgktIE5vbmUKCiJQRVJJT0RJQy1DT01NSVQtTE9HLVNZTkNFUiIgcHJpbz0xMCB0aWQ9MHgw MDAwN2YxNjA0NTA2ODAwIG5pZD0weDVmODkgd2FpdGluZyBvbiBjb25kaXRpb24gWzB4MDAwMDdm MTVkY2Y1ZDAwMF0KICAgamF2YS5sYW5nLlRocmVhZC5TdGF0ZTogVElNRURfV0FJVElORyAoc2xl ZXBpbmcpCglhdCBqYXZhLmxhbmcuVGhyZWFkLnNsZWVwKE5hdGl2ZSBNZXRob2QpCglhdCBqYXZh LmxhbmcuVGhyZWFkLnNsZWVwKFRocmVhZC5qYXZhOjM0MCkKCWF0IGphdmEudXRpbC5jb25jdXJy ZW50LlRpbWVVbml0LnNsZWVwKFRpbWVVbml0LmphdmE6MzYwKQoJYXQgY29tLmdvb2dsZS5jb21t b24udXRpbC5jb25jdXJyZW50LlVuaW50ZXJydXB0aWJsZXMuc2xlZXBVbmludGVycnVwdGlibHko VW5pbnRlcnJ1cHRpYmxlcy5qYXZhOjI3MykKCWF0IG9yZy5hcGFjaGUuY2Fzc2FuZHJhLmRiLmNv bW1pdGxvZy5QZXJpb2RpY0NvbW1pdExvZ0V4ZWN1dG9yU2VydmljZSQzLnJ1bihQZXJpb2RpY0Nv bW1pdExvZ0V4ZWN1dG9yU2VydmljZS5qYXZhOjczKQoJYXQgamF2YS5sYW5nLlRocmVhZC5ydW4o VGhyZWFkLmphdmE6NzI0KQoKICAgTG9ja2VkIG93bmFibGUgc3luY2hyb25pemVyczoKCS0gTm9u ZQoKIkNPTU1JVC1MT0ctV1JJVEVSIiBwcmlvPTEwIHRpZD0weDAwMDA3ZjE2MDQ1MDQ4MDAgbmlk PTB4NWY4OCBydW5uYWJsZSBbMHgwMDAwN2YxNWRjZjllMDAwXQogICBqYXZhLmxhbmcuVGhyZWFk LlN0YXRlOiBUSU1FRF9XQUlUSU5HIChwYXJraW5nKQoJYXQgc3VuLm1pc2MuVW5zYWZlLnBhcmso TmF0aXZlIE1ldGhvZCkKCS0gcGFya2luZyB0byB3YWl0IGZvciAgPDB4MDAwMDAwMDBjNmVmOWMx OD4gKGEgamF2YS51dGlsLmNvbmN1cnJlbnQubG9ja3MuQWJzdHJhY3RRdWV1ZWRTeW5jaHJvbml6 ZXIkQ29uZGl0aW9uT2JqZWN0KQoJYXQgamF2YS51dGlsLmNvbmN1cnJlbnQubG9ja3MuTG9ja1N1 cHBvcnQucGFya05hbm9zKExvY2tTdXBwb3J0LmphdmE6MjI2KQoJYXQgamF2YS51dGlsLmNvbmN1 cnJlbnQubG9ja3MuQWJzdHJhY3RRdWV1ZWRTeW5jaHJvbml6ZXIkQ29uZGl0aW9uT2JqZWN0LmF3 YWl0TmFub3MoQWJzdHJhY3RRdWV1ZWRTeW5jaHJvbml6ZXIuamF2YToyMDgyKQoJYXQgamF2YS51 dGlsLmNvbmN1cnJlbnQuTGlua2VkQmxvY2tpbmdRdWV1ZS5wb2xsKExpbmtlZEJsb2NraW5nUXVl dWUuamF2YTo0NjcpCglhdCBvcmcuYXBhY2hlLmNhc3NhbmRyYS5kYi5jb21taXRsb2cuUGVyaW9k aWNDb21taXRMb2dFeGVjdXRvclNlcnZpY2UkMS5ydW5NYXlUaHJvdyhQZXJpb2RpY0NvbW1pdExv Z0V4ZWN1dG9yU2VydmljZS5qYXZhOjQ1KQoJYXQgb3JnLmFwYWNoZS5jYXNzYW5kcmEudXRpbHMu V3JhcHBlZFJ1bm5hYmxlLnJ1bihXcmFwcGVkUnVubmFibGUuamF2YToyOCkKCWF0IGphdmEubGFu Zy5UaHJlYWQucnVuKFRocmVhZC5qYXZhOjcyNCkKCiAgIExvY2tlZCBvd25hYmxlIHN5bmNocm9u aXplcnM6CgktIE5vbmUKCiJDT01NSVQtTE9HLUFMTE9DQVRPUiIgcHJpbz0xMCB0aWQ9MHgwMDAw N2YxNjA0M2VhODAwIG5pZD0weDVmODcgcnVubmFibGUgWzB4MDAwMDdmMTVkZWZkZjAwMF0KICAg amF2YS5sYW5nLlRocmVhZC5TdGF0ZTogVElNRURfV0FJVElORyAocGFya2luZykKCWF0IHN1bi5t aXNjLlVuc2FmZS5wYXJrKE5hdGl2ZSBNZXRob2QpCgktIHBhcmtpbmcgdG8gd2FpdCBmb3IgIDww eDAwMDAwMDAwYzZlZjljNzg+IChhIGphdmEudXRpbC5jb25jdXJyZW50LmxvY2tzLkFic3RyYWN0 UXVldWVkU3luY2hyb25pemVyJENvbmRpdGlvbk9iamVjdCkKCWF0IGphdmEudXRpbC5jb25jdXJy ZW50LmxvY2tzLkxvY2tTdXBwb3J0LnBhcmtOYW5vcyhMb2NrU3VwcG9ydC5qYXZhOjIyNikKCWF0 IGphdmEudXRpbC5jb25jdXJyZW50LmxvY2tzLkFic3RyYWN0UXVldWVkU3luY2hyb25pemVyJENv bmRpdGlvbk9iamVjdC5hd2FpdE5hbm9zKEFic3RyYWN0UXVldWVkU3luY2hyb25pemVyLmphdmE6 MjA4MikKCWF0IGphdmEudXRpbC5jb25jdXJyZW50LkxpbmtlZEJsb2NraW5nUXVldWUucG9sbChM aW5rZWRCbG9ja2luZ1F1ZXVlLmphdmE6NDY3KQoJYXQgb3JnLmFwYWNoZS5jYXNzYW5kcmEuZGIu Y29tbWl0bG9nLkNvbW1pdExvZ0FsbG9jYXRvciQxLnJ1bk1heVRocm93KENvbW1pdExvZ0FsbG9j YXRvci5qYXZhOjkwKQoJYXQgb3JnLmFwYWNoZS5jYXNzYW5kcmEudXRpbHMuV3JhcHBlZFJ1bm5h YmxlLnJ1bihXcmFwcGVkUnVubmFibGUuamF2YToyOCkKCWF0IGphdmEubGFuZy5UaHJlYWQucnVu KFRocmVhZC5qYXZhOjcyNCkKCiAgIExvY2tlZCBvd25hYmxlIHN5bmNocm9uaXplcnM6CgktIE5v bmUKCiJjb21taXRsb2dfYXJjaGl2ZXI6MSIgZGFlbW9uIHByaW89MTAgdGlkPTB4MDAwMDdmMTYw NDNlNjAwMCBuaWQ9MHg1Zjg2IHdhaXRpbmcgb24gY29uZGl0aW9uIFsweDAwMDA3ZjE1ZGZhZWQw MDBdCiAgIGphdmEubGFuZy5UaHJlYWQuU3RhdGU6IFRJTUVEX1dBSVRJTkcgKHBhcmtpbmcpCglh dCBzdW4ubWlzYy5VbnNhZmUucGFyayhOYXRpdmUgTWV0aG9kKQoJLSBwYXJraW5nIHRvIHdhaXQg Zm9yICA8MHgwMDAwMDAwMGM2ZWY5ZTEwPiAoYSBqYXZhLnV0aWwuY29uY3VycmVudC5sb2Nrcy5B YnN0cmFjdFF1ZXVlZFN5bmNocm9uaXplciRDb25kaXRpb25PYmplY3QpCglhdCBqYXZhLnV0aWwu Y29uY3VycmVudC5sb2Nrcy5Mb2NrU3VwcG9ydC5wYXJrTmFub3MoTG9ja1N1cHBvcnQuamF2YToy MjYpCglhdCBqYXZhLnV0aWwuY29uY3VycmVudC5sb2Nrcy5BYnN0cmFjdFF1ZXVlZFN5bmNocm9u aXplciRDb25kaXRpb25PYmplY3QuYXdhaXROYW5vcyhBYnN0cmFjdFF1ZXVlZFN5bmNocm9uaXpl ci5qYXZhOjIwODIpCglhdCBqYXZhLnV0aWwuY29uY3VycmVudC5MaW5rZWRCbG9ja2luZ1F1ZXVl LnBvbGwoTGlua2VkQmxvY2tpbmdRdWV1ZS5qYXZhOjQ2NykKCWF0IGphdmEudXRpbC5jb25jdXJy ZW50LlRocmVhZFBvb2xFeGVjdXRvci5nZXRUYXNrKFRocmVhZFBvb2xFeGVjdXRvci5qYXZhOjEw NjgpCglhdCBqYXZhLnV0aWwuY29uY3VycmVudC5UaHJlYWRQb29sRXhlY3V0b3IucnVuV29ya2Vy KFRocmVhZFBvb2xFeGVjdXRvci5qYXZhOjExMzApCglhdCBqYXZhLnV0aWwuY29uY3VycmVudC5U aHJlYWRQb29sRXhlY3V0b3IkV29ya2VyLnJ1bihUaHJlYWRQb29sRXhlY3V0b3IuamF2YTo2MTUp CglhdCBqYXZhLmxhbmcuVGhyZWFkLnJ1bihUaHJlYWQuamF2YTo3MjQpCgogICBMb2NrZWQgb3du YWJsZSBzeW5jaHJvbml6ZXJzOgoJLSBOb25lCgoiTWVtb3J5TWV0ZXI6MSIgZGFlbW9uIHByaW89 MTAgdGlkPTB4MDAwMDdmMTYwNDcxMzAwMCBuaWQ9MHg1ZjdlIHdhaXRpbmcgb24gY29uZGl0aW9u IFsweDAwMDA3ZjE1ZGZiMmUwMDBdCiAgIGphdmEubGFuZy5UaHJlYWQuU3RhdGU6IFRJTUVEX1dB SVRJTkcgKHBhcmtpbmcpCglhdCBzdW4ubWlzYy5VbnNhZmUucGFyayhOYXRpdmUgTWV0aG9kKQoJ LSBwYXJraW5nIHRvIHdhaXQgZm9yICA8MHgwMDAwMDAwMGM2YzAzMGI4PiAoYSBqYXZhLnV0aWwu Y29uY3VycmVudC5sb2Nrcy5BYnN0cmFjdFF1ZXVlZFN5bmNocm9uaXplciRDb25kaXRpb25PYmpl Y3QpCglhdCBqYXZhLnV0aWwuY29uY3VycmVudC5sb2Nrcy5Mb2NrU3VwcG9ydC5wYXJrTmFub3Mo TG9ja1N1cHBvcnQuamF2YToyMjYpCglhdCBqYXZhLnV0aWwuY29uY3VycmVudC5sb2Nrcy5BYnN0 cmFjdFF1ZXVlZFN5bmNocm9uaXplciRDb25kaXRpb25PYmplY3QuYXdhaXROYW5vcyhBYnN0cmFj dFF1ZXVlZFN5bmNocm9uaXplci5qYXZhOjIwODIpCglhdCBqYXZhLnV0aWwuY29uY3VycmVudC5M aW5rZWRCbG9ja2luZ1F1ZXVlLnBvbGwoTGlua2VkQmxvY2tpbmdRdWV1ZS5qYXZhOjQ2NykKCWF0 IGphdmEudXRpbC5jb25jdXJyZW50LlRocmVhZFBvb2xFeGVjdXRvci5nZXRUYXNrKFRocmVhZFBv b2xFeGVjdXRvci5qYXZhOjEwNjgpCglhdCBqYXZhLnV0aWwuY29uY3VycmVudC5UaHJlYWRQb29s RXhlY3V0b3IucnVuV29ya2VyKFRocmVhZFBvb2xFeGVjdXRvci5qYXZhOjExMzApCglhdCBqYXZh LnV0aWwuY29uY3VycmVudC5UaHJlYWRQb29sRXhlY3V0b3IkV29ya2VyLnJ1bihUaHJlYWRQb29s RXhlY3V0b3IuamF2YTo2MTUpCglhdCBqYXZhLmxhbmcuVGhyZWFkLnJ1bihUaHJlYWQuamF2YTo3 MjQpCgogICBMb2NrZWQgb3duYWJsZSBzeW5jaHJvbml6ZXJzOgoJLSBOb25lCgoiTWVtdGFibGVQ b3N0Rmx1c2hlcjoxIiBkYWVtb24gcHJpbz0xMCB0aWQ9MHgwMDAwN2YxNjA0NmU4ODAwIG5pZD0w eDVmN2Mgd2FpdGluZyBvbiBjb25kaXRpb24gWzB4MDAwMDdmMTVkZmJiMDAwMF0KICAgamF2YS5s YW5nLlRocmVhZC5TdGF0ZTogV0FJVElORyAocGFya2luZykKCWF0IHN1bi5taXNjLlVuc2FmZS5w YXJrKE5hdGl2ZSBNZXRob2QpCgktIHBhcmtpbmcgdG8gd2FpdCBmb3IgIDwweDAwMDAwMDAwYzYy MTViNjg+IChhIGphdmEudXRpbC5jb25jdXJyZW50LkNvdW50RG93bkxhdGNoJFN5bmMpCglhdCBq YXZhLnV0aWwuY29uY3VycmVudC5sb2Nrcy5Mb2NrU3VwcG9ydC5wYXJrKExvY2tTdXBwb3J0Lmph dmE6MTg2KQoJYXQgamF2YS51dGlsLmNvbmN1cnJlbnQubG9ja3MuQWJzdHJhY3RRdWV1ZWRTeW5j aHJvbml6ZXIucGFya0FuZENoZWNrSW50ZXJydXB0KEFic3RyYWN0UXVldWVkU3luY2hyb25pemVy LmphdmE6ODM0KQoJYXQgamF2YS51dGlsLmNvbmN1cnJlbnQubG9ja3MuQWJzdHJhY3RRdWV1ZWRT eW5jaHJvbml6ZXIuZG9BY3F1aXJlU2hhcmVkSW50ZXJydXB0aWJseShBYnN0cmFjdFF1ZXVlZFN5 bmNocm9uaXplci5qYXZhOjk5NCkKCWF0IGphdmEudXRpbC5jb25jdXJyZW50LmxvY2tzLkFic3Ry YWN0UXVldWVkU3luY2hyb25pemVyLmFjcXVpcmVTaGFyZWRJbnRlcnJ1cHRpYmx5KEFic3RyYWN0 UXVldWVkU3luY2hyb25pemVyLmphdmE6MTMwMykKCWF0IGphdmEudXRpbC5jb25jdXJyZW50LkNv dW50RG93bkxhdGNoLmF3YWl0KENvdW50RG93bkxhdGNoLmphdmE6MjM2KQoJYXQgb3JnLmFwYWNo ZS5jYXNzYW5kcmEuZGIuQ29sdW1uRmFtaWx5U3RvcmUkMy5ydW5NYXlUaHJvdyhDb2x1bW5GYW1p bHlTdG9yZS5qYXZhOjc1MikKCWF0IG9yZy5hcGFjaGUuY2Fzc2FuZHJhLnV0aWxzLldyYXBwZWRS dW5uYWJsZS5ydW4oV3JhcHBlZFJ1bm5hYmxlLmphdmE6MjgpCglhdCBqYXZhLnV0aWwuY29uY3Vy cmVudC5FeGVjdXRvcnMkUnVubmFibGVBZGFwdGVyLmNhbGwoRXhlY3V0b3JzLmphdmE6NDcxKQoJ YXQgamF2YS51dGlsLmNvbmN1cnJlbnQuRnV0dXJlVGFzayRTeW5jLmlubmVyUnVuKEZ1dHVyZVRh c2suamF2YTozMzQpCglhdCBqYXZhLnV0aWwuY29uY3VycmVudC5GdXR1cmVUYXNrLnJ1bihGdXR1 cmVUYXNrLmphdmE6MTY2KQoJYXQgamF2YS51dGlsLmNvbmN1cnJlbnQuVGhyZWFkUG9vbEV4ZWN1 dG9yLnJ1bldvcmtlcihUaHJlYWRQb29sRXhlY3V0b3IuamF2YToxMTQ1KQoJYXQgamF2YS51dGls LmNvbmN1cnJlbnQuVGhyZWFkUG9vbEV4ZWN1dG9yJFdvcmtlci5ydW4oVGhyZWFkUG9vbEV4ZWN1 dG9yLmphdmE6NjE1KQoJYXQgamF2YS5sYW5nLlRocmVhZC5ydW4oVGhyZWFkLmphdmE6NzI0KQoK ICAgTG9ja2VkIG93bmFibGUgc3luY2hyb25pemVyczoKCS0gPDB4MDAwMDAwMDBjNmMwNWEyOD4g KGEgamF2YS51dGlsLmNvbmN1cnJlbnQuVGhyZWFkUG9vbEV4ZWN1dG9yJFdvcmtlcikKCiJPcHRp b25hbFRhc2tzOjEiIGRhZW1vbiBwcmlvPTEwIHRpZD0weDAwMDA3ZjE2MDQ2ZDg4MDAgbmlkPTB4 NWY3YiB3YWl0aW5nIG9uIGNvbmRpdGlvbiBbMHgwMDAwN2YxNWRmYmYxMDAwXQogICBqYXZhLmxh bmcuVGhyZWFkLlN0YXRlOiBXQUlUSU5HIChwYXJraW5nKQoJYXQgc3VuLm1pc2MuVW5zYWZlLnBh cmsoTmF0aXZlIE1ldGhvZCkKCS0gcGFya2luZyB0byB3YWl0IGZvciAgPDB4MDAwMDAwMDBjMGI5 ZGQxMD4gKGEgamF2YS51dGlsLmNvbmN1cnJlbnQuRnV0dXJlVGFzayRTeW5jKQoJYXQgamF2YS51 dGlsLmNvbmN1cnJlbnQubG9ja3MuTG9ja1N1cHBvcnQucGFyayhMb2NrU3VwcG9ydC5qYXZhOjE4 NikKCWF0IGphdmEudXRpbC5jb25jdXJyZW50LmxvY2tzLkFic3RyYWN0UXVldWVkU3luY2hyb25p emVyLnBhcmtBbmRDaGVja0ludGVycnVwdChBYnN0cmFjdFF1ZXVlZFN5bmNocm9uaXplci5qYXZh OjgzNCkKCWF0IGphdmEudXRpbC5jb25jdXJyZW50LmxvY2tzLkFic3RyYWN0UXVldWVkU3luY2hy b25pemVyLmRvQWNxdWlyZVNoYXJlZEludGVycnVwdGlibHkoQWJzdHJhY3RRdWV1ZWRTeW5jaHJv bml6ZXIuamF2YTo5OTQpCglhdCBqYXZhLnV0aWwuY29uY3VycmVudC5sb2Nrcy5BYnN0cmFjdFF1 ZXVlZFN5bmNocm9uaXplci5hY3F1aXJlU2hhcmVkSW50ZXJydXB0aWJseShBYnN0cmFjdFF1ZXVl ZFN5bmNocm9uaXplci5qYXZhOjEzMDMpCglhdCBqYXZhLnV0aWwuY29uY3VycmVudC5GdXR1cmVU YXNrJFN5bmMuaW5uZXJHZXQoRnV0dXJlVGFzay5qYXZhOjI0OCkKCWF0IGphdmEudXRpbC5jb25j dXJyZW50LkZ1dHVyZVRhc2suZ2V0KEZ1dHVyZVRhc2suamF2YToxMTEpCglhdCBvcmcuYXBhY2hl LmNhc3NhbmRyYS51dGlscy5GQlV0aWxpdGllcy53YWl0T25GdXR1cmUoRkJVdGlsaXRpZXMuamF2 YTo0MDcpCglhdCBvcmcuYXBhY2hlLmNhc3NhbmRyYS5kYi5Db2x1bW5GYW1pbHlTdG9yZS5mb3Jj ZUJsb2NraW5nRmx1c2goQ29sdW1uRmFtaWx5U3RvcmUuamF2YTo4MTgpCglhdCBvcmcuYXBhY2hl LmNhc3NhbmRyYS5kYi5CYXRjaGxvZ01hbmFnZXIuY2xlYW51cChCYXRjaGxvZ01hbmFnZXIuamF2 YToyODcpCglhdCBvcmcuYXBhY2hlLmNhc3NhbmRyYS5kYi5CYXRjaGxvZ01hbmFnZXIucmVwbGF5 QWxsRmFpbGVkQmF0Y2hlcyhCYXRjaGxvZ01hbmFnZXIuamF2YToxNjIpCglhdCBvcmcuYXBhY2hl LmNhc3NhbmRyYS5kYi5CYXRjaGxvZ01hbmFnZXIuYWNjZXNzJDAwMChCYXRjaGxvZ01hbmFnZXIu amF2YTo2MCkKCWF0IG9yZy5hcGFjaGUuY2Fzc2FuZHJhLmRiLkJhdGNobG9nTWFuYWdlciQxLnJ1 bk1heVRocm93KEJhdGNobG9nTWFuYWdlci5qYXZhOjg5KQoJYXQgb3JnLmFwYWNoZS5jYXNzYW5k cmEudXRpbHMuV3JhcHBlZFJ1bm5hYmxlLnJ1bihXcmFwcGVkUnVubmFibGUuamF2YToyOCkKCWF0 IG9yZy5hcGFjaGUuY2Fzc2FuZHJhLmNvbmN1cnJlbnQuRGVidWdnYWJsZVNjaGVkdWxlZFRocmVh ZFBvb2xFeGVjdXRvciRVbmNvbXBsYWluaW5nUnVubmFibGUucnVuKERlYnVnZ2FibGVTY2hlZHVs ZWRUaHJlYWRQb29sRXhlY3V0b3IuamF2YTo3NSkKCWF0IGphdmEudXRpbC5jb25jdXJyZW50LkV4 ZWN1dG9ycyRSdW5uYWJsZUFkYXB0ZXIuY2FsbChFeGVjdXRvcnMuamF2YTo0NzEpCglhdCBqYXZh LnV0aWwuY29uY3VycmVudC5GdXR1cmVUYXNrJFN5bmMuaW5uZXJSdW5BbmRSZXNldChGdXR1cmVU YXNrLmphdmE6MzUxKQoJYXQgamF2YS51dGlsLmNvbmN1cnJlbnQuRnV0dXJlVGFzay5ydW5BbmRS ZXNldChGdXR1cmVUYXNrLmphdmE6MTc4KQoJYXQgamF2YS51dGlsLmNvbmN1cnJlbnQuU2NoZWR1 bGVkVGhyZWFkUG9vbEV4ZWN1dG9yJFNjaGVkdWxlZEZ1dHVyZVRhc2suYWNjZXNzJDMwMShTY2hl ZHVsZWRUaHJlYWRQb29sRXhlY3V0b3IuamF2YToxNzgpCglhdCBqYXZhLnV0aWwuY29uY3VycmVu dC5TY2hlZHVsZWRUaHJlYWRQb29sRXhlY3V0b3IkU2NoZWR1bGVkRnV0dXJlVGFzay5ydW4oU2No ZWR1bGVkVGhyZWFkUG9vbEV4ZWN1dG9yLmphdmE6MjkzKQoJYXQgamF2YS51dGlsLmNvbmN1cnJl bnQuVGhyZWFkUG9vbEV4ZWN1dG9yLnJ1bldvcmtlcihUaHJlYWRQb29sRXhlY3V0b3IuamF2YTox MTQ1KQoJYXQgamF2YS51dGlsLmNvbmN1cnJlbnQuVGhyZWFkUG9vbEV4ZWN1dG9yJFdvcmtlci5y dW4oVGhyZWFkUG9vbEV4ZWN1dG9yLmphdmE6NjE1KQoJYXQgamF2YS5sYW5nLlRocmVhZC5ydW4o VGhyZWFkLmphdmE6NzI0KQoKICAgTG9ja2VkIG93bmFibGUgc3luY2hyb25pemVyczoKCS0gPDB4 MDAwMDAwMDBjNmMwNWIxOD4gKGEgamF2YS51dGlsLmNvbmN1cnJlbnQuVGhyZWFkUG9vbEV4ZWN1 dG9yJFdvcmtlcikKCiJCYWNrZ3JvdW5kX1JlcG9ydGVyOjEiIGRhZW1vbiBwcmlvPTEwIHRpZD0w eDAwMDA3ZjE2MDQ2MGQwMDAgbmlkPTB4NWY3YSB3YWl0aW5nIG9uIGNvbmRpdGlvbiBbMHgwMDAw N2YxNWZjMDc5MDAwXQogICBqYXZhLmxhbmcuVGhyZWFkLlN0YXRlOiBUSU1FRF9XQUlUSU5HIChw YXJraW5nKQoJYXQgc3VuLm1pc2MuVW5zYWZlLnBhcmsoTmF0aXZlIE1ldGhvZCkKCS0gcGFya2lu ZyB0byB3YWl0IGZvciAgPDB4MDAwMDAwMDBjNmMwMmM4MD4gKGEgamF2YS51dGlsLmNvbmN1cnJl bnQubG9ja3MuQWJzdHJhY3RRdWV1ZWRTeW5jaHJvbml6ZXIkQ29uZGl0aW9uT2JqZWN0KQoJYXQg amF2YS51dGlsLmNvbmN1cnJlbnQubG9ja3MuTG9ja1N1cHBvcnQucGFya05hbm9zKExvY2tTdXBw b3J0LmphdmE6MjI2KQoJYXQgamF2YS51dGlsLmNvbmN1cnJlbnQubG9ja3MuQWJzdHJhY3RRdWV1 ZWRTeW5jaHJvbml6ZXIkQ29uZGl0aW9uT2JqZWN0LmF3YWl0TmFub3MoQWJzdHJhY3RRdWV1ZWRT eW5jaHJvbml6ZXIuamF2YToyMDgyKQoJYXQgamF2YS51dGlsLmNvbmN1cnJlbnQuU2NoZWR1bGVk VGhyZWFkUG9vbEV4ZWN1dG9yJERlbGF5ZWRXb3JrUXVldWUudGFrZShTY2hlZHVsZWRUaHJlYWRQ b29sRXhlY3V0b3IuamF2YToxMDkwKQoJYXQgamF2YS51dGlsLmNvbmN1cnJlbnQuU2NoZWR1bGVk VGhyZWFkUG9vbEV4ZWN1dG9yJERlbGF5ZWRXb3JrUXVldWUudGFrZShTY2hlZHVsZWRUaHJlYWRQ b29sRXhlY3V0b3IuamF2YTo4MDcpCglhdCBqYXZhLnV0aWwuY29uY3VycmVudC5UaHJlYWRQb29s RXhlY3V0b3IuZ2V0VGFzayhUaHJlYWRQb29sRXhlY3V0b3IuamF2YToxMDY4KQoJYXQgamF2YS51 dGlsLmNvbmN1cnJlbnQuVGhyZWFkUG9vbEV4ZWN1dG9yLnJ1bldvcmtlcihUaHJlYWRQb29sRXhl Y3V0b3IuamF2YToxMTMwKQoJYXQgamF2YS51dGlsLmNvbmN1cnJlbnQuVGhyZWFkUG9vbEV4ZWN1 dG9yJFdvcmtlci5ydW4oVGhyZWFkUG9vbEV4ZWN1dG9yLmphdmE6NjE1KQoJYXQgamF2YS5sYW5n LlRocmVhZC5ydW4oVGhyZWFkLmphdmE6NzI0KQoKICAgTG9ja2VkIG93bmFibGUgc3luY2hyb25p emVyczoKCS0gTm9uZQoKIlNjaGVkdWxlZFRhc2tzOjEiIGRhZW1vbiBwcmlvPTEwIHRpZD0weDAw MDA3ZjE2MDQ2MDIwMDAgbmlkPTB4NWY3OCBydW5uYWJsZSBbMHgwMDAwN2YxNWZjMGZiMDAwXQog ICBqYXZhLmxhbmcuVGhyZWFkLlN0YXRlOiBUSU1FRF9XQUlUSU5HIChwYXJraW5nKQoJYXQgc3Vu Lm1pc2MuVW5zYWZlLnBhcmsoTmF0aXZlIE1ldGhvZCkKCS0gcGFya2luZyB0byB3YWl0IGZvciAg PDB4MDAwMDAwMDBjNmMwMmNlMD4gKGEgamF2YS51dGlsLmNvbmN1cnJlbnQubG9ja3MuQWJzdHJh Y3RRdWV1ZWRTeW5jaHJvbml6ZXIkQ29uZGl0aW9uT2JqZWN0KQoJYXQgamF2YS51dGlsLmNvbmN1 cnJlbnQubG9ja3MuTG9ja1N1cHBvcnQucGFya05hbm9zKExvY2tTdXBwb3J0LmphdmE6MjI2KQoJ YXQgamF2YS51dGlsLmNvbmN1cnJlbnQubG9ja3MuQWJzdHJhY3RRdWV1ZWRTeW5jaHJvbml6ZXIk Q29uZGl0aW9uT2JqZWN0LmF3YWl0TmFub3MoQWJzdHJhY3RRdWV1ZWRTeW5jaHJvbml6ZXIuamF2 YToyMDgyKQoJYXQgamF2YS51dGlsLmNvbmN1cnJlbnQuU2NoZWR1bGVkVGhyZWFkUG9vbEV4ZWN1 dG9yJERlbGF5ZWRXb3JrUXVldWUudGFrZShTY2hlZHVsZWRUaHJlYWRQb29sRXhlY3V0b3IuamF2 YToxMDkwKQoJYXQgamF2YS51dGlsLmNvbmN1cnJlbnQuU2NoZWR1bGVkVGhyZWFkUG9vbEV4ZWN1 dG9yJERlbGF5ZWRXb3JrUXVldWUudGFrZShTY2hlZHVsZWRUaHJlYWRQb29sRXhlY3V0b3IuamF2 YTo4MDcpCglhdCBqYXZhLnV0aWwuY29uY3VycmVudC5UaHJlYWRQb29sRXhlY3V0b3IuZ2V0VGFz ayhUaHJlYWRQb29sRXhlY3V0b3IuamF2YToxMDY4KQoJYXQgamF2YS51dGlsLmNvbmN1cnJlbnQu VGhyZWFkUG9vbEV4ZWN1dG9yLnJ1bldvcmtlcihUaHJlYWRQb29sRXhlY3V0b3IuamF2YToxMTMw KQoJYXQgamF2YS51dGlsLmNvbmN1cnJlbnQuVGhyZWFkUG9vbEV4ZWN1dG9yJFdvcmtlci5ydW4o VGhyZWFkUG9vbEV4ZWN1dG9yLmphdmE6NjE1KQoJYXQgamF2YS5sYW5nLlRocmVhZC5ydW4oVGhy ZWFkLmphdmE6NzI0KQoKICAgTG9ja2VkIG93bmFibGUgc3luY2hyb25pemVyczoKCS0gTm9uZQoK Im1ldHJpY3MtbWV0ZXItdGljay10aHJlYWQtMiIgZGFlbW9uIHByaW89MTAgdGlkPTB4MDAwMDdm MTYwNDYwMTAwMCBuaWQ9MHg1Zjc3IHdhaXRpbmcgb24gY29uZGl0aW9uIFsweDAwMDA3ZjE1ZmMx M2MwMDBdCiAgIGphdmEubGFuZy5UaHJlYWQuU3RhdGU6IFRJTUVEX1dBSVRJTkcgKHBhcmtpbmcp CglhdCBzdW4ubWlzYy5VbnNhZmUucGFyayhOYXRpdmUgTWV0aG9kKQoJLSBwYXJraW5nIHRvIHdh aXQgZm9yICA8MHgwMDAwMDAwMGM2YzAyY2IwPiAoYSBqYXZhLnV0aWwuY29uY3VycmVudC5sb2Nr cy5BYnN0cmFjdFF1ZXVlZFN5bmNocm9uaXplciRDb25kaXRpb25PYmplY3QpCglhdCBqYXZhLnV0 aWwuY29uY3VycmVudC5sb2Nrcy5Mb2NrU3VwcG9ydC5wYXJrTmFub3MoTG9ja1N1cHBvcnQuamF2 YToyMjYpCglhdCBqYXZhLnV0aWwuY29uY3VycmVudC5sb2Nrcy5BYnN0cmFjdFF1ZXVlZFN5bmNo cm9uaXplciRDb25kaXRpb25PYmplY3QuYXdhaXROYW5vcyhBYnN0cmFjdFF1ZXVlZFN5bmNocm9u aXplci5qYXZhOjIwODIpCglhdCBqYXZhLnV0aWwuY29uY3VycmVudC5TY2hlZHVsZWRUaHJlYWRQ b29sRXhlY3V0b3IkRGVsYXllZFdvcmtRdWV1ZS50YWtlKFNjaGVkdWxlZFRocmVhZFBvb2xFeGVj dXRvci5qYXZhOjEwOTApCglhdCBqYXZhLnV0aWwuY29uY3VycmVudC5TY2hlZHVsZWRUaHJlYWRQ b29sRXhlY3V0b3IkRGVsYXllZFdvcmtRdWV1ZS50YWtlKFNjaGVkdWxlZFRocmVhZFBvb2xFeGVj dXRvci5qYXZhOjgwNykKCWF0IGphdmEudXRpbC5jb25jdXJyZW50LlRocmVhZFBvb2xFeGVjdXRv ci5nZXRUYXNrKFRocmVhZFBvb2xFeGVjdXRvci5qYXZhOjEwNjgpCglhdCBqYXZhLnV0aWwuY29u Y3VycmVudC5UaHJlYWRQb29sRXhlY3V0b3IucnVuV29ya2VyKFRocmVhZFBvb2xFeGVjdXRvci5q YXZhOjExMzApCglhdCBqYXZhLnV0aWwuY29uY3VycmVudC5UaHJlYWRQb29sRXhlY3V0b3IkV29y a2VyLnJ1bihUaHJlYWRQb29sRXhlY3V0b3IuamF2YTo2MTUpCglhdCBqYXZhLmxhbmcuVGhyZWFk LnJ1bihUaHJlYWQuamF2YTo3MjQpCgogICBMb2NrZWQgb3duYWJsZSBzeW5jaHJvbml6ZXJzOgoJ LSBOb25lCgoibWV0cmljcy1tZXRlci10aWNrLXRocmVhZC0xIiBkYWVtb24gcHJpbz0xMCB0aWQ9 MHgwMDAwN2YxNjA0NWZmMDAwIG5pZD0weDVmNzYgd2FpdGluZyBvbiBjb25kaXRpb24gWzB4MDAw MDdmMTVmYzE3ZDAwMF0KICAgamF2YS5sYW5nLlRocmVhZC5TdGF0ZTogV0FJVElORyAocGFya2lu ZykKCWF0IHN1bi5taXNjLlVuc2FmZS5wYXJrKE5hdGl2ZSBNZXRob2QpCgktIHBhcmtpbmcgdG8g d2FpdCBmb3IgIDwweDAwMDAwMDAwYzZjMDJjYjA+IChhIGphdmEudXRpbC5jb25jdXJyZW50Lmxv Y2tzLkFic3RyYWN0UXVldWVkU3luY2hyb25pemVyJENvbmRpdGlvbk9iamVjdCkKCWF0IGphdmEu dXRpbC5jb25jdXJyZW50LmxvY2tzLkxvY2tTdXBwb3J0LnBhcmsoTG9ja1N1cHBvcnQuamF2YTox ODYpCglhdCBqYXZhLnV0aWwuY29uY3VycmVudC5sb2Nrcy5BYnN0cmFjdFF1ZXVlZFN5bmNocm9u aXplciRDb25kaXRpb25PYmplY3QuYXdhaXQoQWJzdHJhY3RRdWV1ZWRTeW5jaHJvbml6ZXIuamF2 YToyMDQzKQoJYXQgamF2YS51dGlsLmNvbmN1cnJlbnQuU2NoZWR1bGVkVGhyZWFkUG9vbEV4ZWN1 dG9yJERlbGF5ZWRXb3JrUXVldWUudGFrZShTY2hlZHVsZWRUaHJlYWRQb29sRXhlY3V0b3IuamF2 YToxMDg1KQoJYXQgamF2YS51dGlsLmNvbmN1cnJlbnQuU2NoZWR1bGVkVGhyZWFkUG9vbEV4ZWN1 dG9yJERlbGF5ZWRXb3JrUXVldWUudGFrZShTY2hlZHVsZWRUaHJlYWRQb29sRXhlY3V0b3IuamF2 YTo4MDcpCglhdCBqYXZhLnV0aWwuY29uY3VycmVudC5UaHJlYWRQb29sRXhlY3V0b3IuZ2V0VGFz ayhUaHJlYWRQb29sRXhlY3V0b3IuamF2YToxMDY4KQoJYXQgamF2YS51dGlsLmNvbmN1cnJlbnQu VGhyZWFkUG9vbEV4ZWN1dG9yLnJ1bldvcmtlcihUaHJlYWRQb29sRXhlY3V0b3IuamF2YToxMTMw KQoJYXQgamF2YS51dGlsLmNvbmN1cnJlbnQuVGhyZWFkUG9vbEV4ZWN1dG9yJFdvcmtlci5ydW4o VGhyZWFkUG9vbEV4ZWN1dG9yLmphdmE6NjE1KQoJYXQgamF2YS5sYW5nLlRocmVhZC5ydW4oVGhy ZWFkLmphdmE6NzI0KQoKICAgTG9ja2VkIG93bmFibGUgc3luY2hyb25pemVyczoKCS0gTm9uZQoK IkZpbGVXYXRjaGRvZyIgZGFlbW9uIHByaW89MTAgdGlkPTB4MDAwMDdmMTYwNDNkODgwMCBuaWQ9 MHg1Zjc0IHdhaXRpbmcgb24gY29uZGl0aW9uIFsweDAwMDA3ZjE1ZmMzZDIwMDBdCiAgIGphdmEu bGFuZy5UaHJlYWQuU3RhdGU6IFRJTUVEX1dBSVRJTkcgKHNsZWVwaW5nKQoJYXQgamF2YS5sYW5n LlRocmVhZC5zbGVlcChOYXRpdmUgTWV0aG9kKQoJYXQgb3JnLmFwYWNoZS5sb2c0ai5oZWxwZXJz LkZpbGVXYXRjaGRvZy5ydW4oRmlsZVdhdGNoZG9nLmphdmE6MTA0KQoKICAgTG9ja2VkIG93bmFi bGUgc3luY2hyb25pemVyczoKCS0gTm9uZQoKIlJNSSBUQ1AgQWNjZXB0LTAiIGRhZW1vbiBwcmlv PTEwIHRpZD0weDAwMDA3ZjE2MDQzNzMwMDAgbmlkPTB4NWY3MiBydW5uYWJsZSBbMHgwMDAwN2Yx NWZjNTE0MDAwXQogICBqYXZhLmxhbmcuVGhyZWFkLlN0YXRlOiBSVU5OQUJMRQoJYXQgamF2YS5u ZXQuUGxhaW5Tb2NrZXRJbXBsLnNvY2tldEFjY2VwdChOYXRpdmUgTWV0aG9kKQoJYXQgamF2YS5u ZXQuQWJzdHJhY3RQbGFpblNvY2tldEltcGwuYWNjZXB0KEFic3RyYWN0UGxhaW5Tb2NrZXRJbXBs LmphdmE6Mzk4KQoJYXQgamF2YS5uZXQuU2VydmVyU29ja2V0LmltcGxBY2NlcHQoU2VydmVyU29j a2V0LmphdmE6NTMwKQoJYXQgamF2YS5uZXQuU2VydmVyU29ja2V0LmFjY2VwdChTZXJ2ZXJTb2Nr ZXQuamF2YTo0OTgpCglhdCBzdW4ubWFuYWdlbWVudC5qbXhyZW1vdGUuTG9jYWxSTUlTZXJ2ZXJT b2NrZXRGYWN0b3J5JDEuYWNjZXB0KExvY2FsUk1JU2VydmVyU29ja2V0RmFjdG9yeS5qYXZhOjUy KQoJYXQgc3VuLnJtaS50cmFuc3BvcnQudGNwLlRDUFRyYW5zcG9ydCRBY2NlcHRMb29wLmV4ZWN1 dGVBY2NlcHRMb29wKFRDUFRyYW5zcG9ydC5qYXZhOjM4NykKCWF0IHN1bi5ybWkudHJhbnNwb3J0 LnRjcC5UQ1BUcmFuc3BvcnQkQWNjZXB0TG9vcC5ydW4oVENQVHJhbnNwb3J0LmphdmE6MzU5KQoJ YXQgamF2YS5sYW5nLlRocmVhZC5ydW4oVGhyZWFkLmphdmE6NzI0KQoKICAgTG9ja2VkIG93bmFi bGUgc3luY2hyb25pemVyczoKCS0gTm9uZQoKIlJNSSBUQ1AgQWNjZXB0LTcxOTkiIGRhZW1vbiBw cmlvPTEwIHRpZD0weDAwMDA3ZjE2MDQzNWM4MDAgbmlkPTB4NWY3MSBydW5uYWJsZSBbMHgwMDAw N2YxNWZjNTU1MDAwXQogICBqYXZhLmxhbmcuVGhyZWFkLlN0YXRlOiBSVU5OQUJMRQoJYXQgamF2 YS5uZXQuUGxhaW5Tb2NrZXRJbXBsLnNvY2tldEFjY2VwdChOYXRpdmUgTWV0aG9kKQoJYXQgamF2 YS5uZXQuQWJzdHJhY3RQbGFpblNvY2tldEltcGwuYWNjZXB0KEFic3RyYWN0UGxhaW5Tb2NrZXRJ bXBsLmphdmE6Mzk4KQoJYXQgamF2YS5uZXQuU2VydmVyU29ja2V0LmltcGxBY2NlcHQoU2VydmVy U29ja2V0LmphdmE6NTMwKQoJYXQgamF2YS5uZXQuU2VydmVyU29ja2V0LmFjY2VwdChTZXJ2ZXJT b2NrZXQuamF2YTo0OTgpCglhdCBzdW4ucm1pLnRyYW5zcG9ydC50Y3AuVENQVHJhbnNwb3J0JEFj Y2VwdExvb3AuZXhlY3V0ZUFjY2VwdExvb3AoVENQVHJhbnNwb3J0LmphdmE6Mzg3KQoJYXQgc3Vu LnJtaS50cmFuc3BvcnQudGNwLlRDUFRyYW5zcG9ydCRBY2NlcHRMb29wLnJ1bihUQ1BUcmFuc3Bv cnQuamF2YTozNTkpCglhdCBqYXZhLmxhbmcuVGhyZWFkLnJ1bihUaHJlYWQuamF2YTo3MjQpCgog ICBMb2NrZWQgb3duYWJsZSBzeW5jaHJvbml6ZXJzOgoJLSBOb25lCgoiUk1JIFRDUCBBY2NlcHQt MCIgZGFlbW9uIHByaW89MTAgdGlkPTB4MDAwMDdmMTYwNDMzYjAwMCBuaWQ9MHg1ZjcwIHJ1bm5h YmxlIFsweDAwMDA3ZjE1ZmM1OTYwMDBdCiAgIGphdmEubGFuZy5UaHJlYWQuU3RhdGU6IFJVTk5B QkxFCglhdCBqYXZhLm5ldC5QbGFpblNvY2tldEltcGwuc29ja2V0QWNjZXB0KE5hdGl2ZSBNZXRo b2QpCglhdCBqYXZhLm5ldC5BYnN0cmFjdFBsYWluU29ja2V0SW1wbC5hY2NlcHQoQWJzdHJhY3RQ bGFpblNvY2tldEltcGwuamF2YTozOTgpCglhdCBqYXZhLm5ldC5TZXJ2ZXJTb2NrZXQuaW1wbEFj Y2VwdChTZXJ2ZXJTb2NrZXQuamF2YTo1MzApCglhdCBqYXZhLm5ldC5TZXJ2ZXJTb2NrZXQuYWNj ZXB0KFNlcnZlclNvY2tldC5qYXZhOjQ5OCkKCWF0IHN1bi5ybWkudHJhbnNwb3J0LnRjcC5UQ1BU cmFuc3BvcnQkQWNjZXB0TG9vcC5leGVjdXRlQWNjZXB0TG9vcChUQ1BUcmFuc3BvcnQuamF2YToz ODcpCglhdCBzdW4ucm1pLnRyYW5zcG9ydC50Y3AuVENQVHJhbnNwb3J0JEFjY2VwdExvb3AucnVu KFRDUFRyYW5zcG9ydC5qYXZhOjM1OSkKCWF0IGphdmEubGFuZy5UaHJlYWQucnVuKFRocmVhZC5q YXZhOjcyNCkKCiAgIExvY2tlZCBvd25hYmxlIHN5bmNocm9uaXplcnM6CgktIE5vbmUKCiJTZXJ2 aWNlIFRocmVhZCIgZGFlbW9uIHByaW89MTAgdGlkPTB4MDAwMDdmMTYwNDFlYTAwMCBuaWQ9MHg1 ZjZmIHJ1bm5hYmxlIFsweDAwMDAwMDAwMDAwMDAwMDBdCiAgIGphdmEubGFuZy5UaHJlYWQuU3Rh dGU6IFJVTk5BQkxFCgogICBMb2NrZWQgb3duYWJsZSBzeW5jaHJvbml6ZXJzOgoJLSBOb25lCgoi QzIgQ29tcGlsZXJUaHJlYWQxIiBkYWVtb24gcHJpbz0xMCB0aWQ9MHgwMDAwN2YxNjA0MWU3ODAw IG5pZD0weDVmNmUgd2FpdGluZyBvbiBjb25kaXRpb24gWzB4MDAwMDAwMDAwMDAwMDAwMF0KICAg amF2YS5sYW5nLlRocmVhZC5TdGF0ZTogUlVOTkFCTEUKCiAgIExvY2tlZCBvd25hYmxlIHN5bmNo cm9uaXplcnM6CgktIE5vbmUKCiJDMiBDb21waWxlclRocmVhZDAiIGRhZW1vbiBwcmlvPTEwIHRp ZD0weDAwMDA3ZjE2MDQxZGU4MDAgbmlkPTB4NWY2ZCB3YWl0aW5nIG9uIGNvbmRpdGlvbiBbMHgw MDAwMDAwMDAwMDAwMDAwXQogICBqYXZhLmxhbmcuVGhyZWFkLlN0YXRlOiBSVU5OQUJMRQoKICAg TG9ja2VkIG93bmFibGUgc3luY2hyb25pemVyczoKCS0gTm9uZQoKIlNpZ25hbCBEaXNwYXRjaGVy IiBkYWVtb24gcHJpbz0xMCB0aWQ9MHgwMDAwN2YxNjA0MTQzMDAwIG5pZD0weDVmNmMgcnVubmFi bGUgWzB4MDAwMDAwMDAwMDAwMDAwMF0KICAgamF2YS5sYW5nLlRocmVhZC5TdGF0ZTogUlVOTkFC TEUKCiAgIExvY2tlZCBvd25hYmxlIHN5bmNocm9uaXplcnM6CgktIE5vbmUKCiJTdXJyb2dhdGUg TG9ja2VyIFRocmVhZCAoQ29uY3VycmVudCBHQykiIGRhZW1vbiBwcmlvPTEwIHRpZD0weDAwMDA3 ZjE2MDQxNDEwMDAgbmlkPTB4NWY2YiB3YWl0aW5nIG9uIGNvbmRpdGlvbiBbMHgwMDAwMDAwMDAw MDAwMDAwXQogICBqYXZhLmxhbmcuVGhyZWFkLlN0YXRlOiBSVU5OQUJMRQoKICAgTG9ja2VkIG93 bmFibGUgc3luY2hyb25pemVyczoKCS0gTm9uZQoKIkZpbmFsaXplciIgZGFlbW9uIHByaW89MTAg dGlkPTB4MDAwMDdmMTYwNDBmNDgwMCBuaWQ9MHg1ZjZhIGluIE9iamVjdC53YWl0KCkgWzB4MDAw MDdmMTVmZDNiMDAwMF0KICAgamF2YS5sYW5nLlRocmVhZC5TdGF0ZTogV0FJVElORyAob24gb2Jq ZWN0IG1vbml0b3IpCglhdCBqYXZhLmxhbmcuT2JqZWN0LndhaXQoTmF0aXZlIE1ldGhvZCkKCS0g d2FpdGluZyBvbiA8MHgwMDAwMDAwMGM2YzAyZTkwPiAoYSBqYXZhLmxhbmcucmVmLlJlZmVyZW5j ZVF1ZXVlJExvY2spCglhdCBqYXZhLmxhbmcucmVmLlJlZmVyZW5jZVF1ZXVlLnJlbW92ZShSZWZl cmVuY2VRdWV1ZS5qYXZhOjEzNSkKCS0gbG9ja2VkIDwweDAwMDAwMDAwYzZjMDJlOTA+IChhIGph dmEubGFuZy5yZWYuUmVmZXJlbmNlUXVldWUkTG9jaykKCWF0IGphdmEubGFuZy5yZWYuUmVmZXJl bmNlUXVldWUucmVtb3ZlKFJlZmVyZW5jZVF1ZXVlLmphdmE6MTUxKQoJYXQgamF2YS5sYW5nLnJl Zi5GaW5hbGl6ZXIkRmluYWxpemVyVGhyZWFkLnJ1bihGaW5hbGl6ZXIuamF2YToxODkpCgogICBM b2NrZWQgb3duYWJsZSBzeW5jaHJvbml6ZXJzOgoJLSBOb25lCgoiUmVmZXJlbmNlIEhhbmRsZXIi IGRhZW1vbiBwcmlvPTEwIHRpZD0weDAwMDA3ZjE2MDQwZjI4MDAgbmlkPTB4NWY2OSBpbiBPYmpl Y3Qud2FpdCgpIFsweDAwMDA3ZjE1ZmQzZjEwMDBdCiAgIGphdmEubGFuZy5UaHJlYWQuU3RhdGU6 IFdBSVRJTkcgKG9uIG9iamVjdCBtb25pdG9yKQoJYXQgamF2YS5sYW5nLk9iamVjdC53YWl0KE5h dGl2ZSBNZXRob2QpCgktIHdhaXRpbmcgb24gPDB4MDAwMDAwMDBjNmMwMmVhOD4gKGEgamF2YS5s YW5nLnJlZi5SZWZlcmVuY2UkTG9jaykKCWF0IGphdmEubGFuZy5PYmplY3Qud2FpdChPYmplY3Qu amF2YTo1MDMpCglhdCBqYXZhLmxhbmcucmVmLlJlZmVyZW5jZSRSZWZlcmVuY2VIYW5kbGVyLnJ1 bihSZWZlcmVuY2UuamF2YToxMzMpCgktIGxvY2tlZCA8MHgwMDAwMDAwMGM2YzAyZWE4PiAoYSBq YXZhLmxhbmcucmVmLlJlZmVyZW5jZSRMb2NrKQoKICAgTG9ja2VkIG93bmFibGUgc3luY2hyb25p emVyczoKCS0gTm9uZQoKIlZNIFRocmVhZCIgcHJpbz0xMCB0aWQ9MHgwMDAwN2YxNjA0MGViMDAw IG5pZD0weDVmNjggcnVubmFibGUgCgoiQ29uY3VycmVudCBNYXJrLVN3ZWVwIEdDIFRocmVhZCIg cHJpbz0xMCB0aWQ9MHgwMDAwN2YxNjA0MDJmMDAwIG5pZD0weDVmNjcgcnVubmFibGUgCiJWTSBQ ZXJpb2RpYyBUYXNrIFRocmVhZCIgcHJpbz0xMCB0aWQ9MHgwMDAwN2YxNjA0Mzc1ODAwIG5pZD0w eDVmNzMgd2FpdGluZyBvbiBjb25kaXRpb24gCgpKTkkgZ2xvYmFsIHJlZmVyZW5jZXM6IDEwNDAK Cg== --001a11c3db744c03cd04ea04098e--