Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dDpta-0002Cj-Fo for pgadmin-hackers@arkaria.postgresql.org; Thu, 25 May 2017 10:21:30 +0000 Received: from localhost ([127.0.0.1] helo=postgresql.org) by malur.postgresql.org with smtp (Exim 4.84_2) (envelope-from ) id 1dDptZ-0006vG-PS for pgadmin-hackers@arkaria.postgresql.org; Thu, 25 May 2017 10:21:29 +0000 Received: from makus.postgresql.org ([2001:4800:1501:1::229]) by malur.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1dDptB-0005nz-SK for pgadmin-hackers@postgresql.org; Thu, 25 May 2017 10:21:06 +0000 Received: from mail-wm0-x232.google.com ([2a00:1450:400c:c09::232]) by makus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.84_2) (envelope-from ) id 1dDpt6-0004Ha-S2 for pgadmin-hackers@postgresql.org; Thu, 25 May 2017 10:21:04 +0000 Received: by mail-wm0-x232.google.com with SMTP id 123so32226146wmg.1 for ; Thu, 25 May 2017 03:21:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=enterprisedb-com.20150623.gappssmtp.com; s=20150623; h=mime-version:from:date:message-id:subject:to; bh=nzaa4YVCEJxr0j+wXmsVRRriFXuLhX7wIWx/mXMhzgA=; b=M4NeeBQo1YRAcVoPSYD+VOEKNHxIii5JoKjaZCPLwCV3vSE9xKX8/iN31FGpvioB2O 05RCPp1RrVVsdzH9pNrUrhO5r6XP2xMVbcsujWHwSzMKZVjfaOlvtZoBVaw3fzkxT/TO ycA4SPhzhP0AWtmWAcnyU7R9kvc1WaFOsoPd938n9A8qZs/1JBfhNCbeJ9fuXt6FWmN9 LM1gihvpTH9vZJIlDbdZIem0E5UismF3QS2ccjbVQRKOSARYWXAVGSjuyAsgPgOHXhr5 lGH+t2J02QxCUKgR+eHPZs2aG8yRS2H1PZ8xAWIrzlH5fen+akRkYlzTxj6noeX09hrO 96TQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=nzaa4YVCEJxr0j+wXmsVRRriFXuLhX7wIWx/mXMhzgA=; b=sWA/42qJBZEvmyV1BccHCXnURzDY09M/YNM1/9F+K76YZ7+VY8d3eUHvvFJCRqFXUG Ior/j/jJdB1zo9NaIqctDwh4oOEd5UtSsmGI/K5Z+WfsAUlIpntsGbilu08HYhD2qjjU UcVA6m5lVCn8IBT9H9sIqADiFhGIsrtloqQE/e+Cb66CscyyLiRRrqxurWsPwjOtX7UG sBFAwHnXlHTTfoEk5R220wxxesYUPdvuUaQ+nWvtnPr2mf9msA85a7UvCp467VnZJZOh qtTeuii83NDYxU2WLV+F5UnpEMLQlozhfDZxyv/kM/dvKdDbLlkbnsv41m+1zrpLkhZJ RPSA== X-Gm-Message-State: AODbwcAmQanjksZsaiLoSm64e6Vt2ClbGQB0E+Z0ip7kAdyN5fjwXjbX xIee7K2FdqaZ38xBjijK1Wfd6zpHo18E X-Received: by 10.28.87.16 with SMTP id l16mr9866810wmb.114.1495707658623; Thu, 25 May 2017 03:20:58 -0700 (PDT) MIME-Version: 1.0 Received: by 10.223.136.70 with HTTP; Thu, 25 May 2017 03:20:37 -0700 (PDT) From: Murtuza Zabuawala Date: Thu, 25 May 2017 15:50:37 +0530 Message-ID: Subject: [pgAdmin4] [PATCH] To fix error in SQL panel To: pgadmin-hackers Content-Type: multipart/mixed; boundary="001a1144375aae841305505693db" X-Pg-Spam-Score: -2.6 (--) List-Archive: List-Help: List-ID: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: X-Mailing-List: pgadmin-hackers Precedence: bulk Sender: pgadmin-hackers-owner@postgresql.org --001a1144375aae841305505693db Content-Type: multipart/alternative; boundary="001a1144375aae840e05505693d9" --001a1144375aae840e05505693d9 Content-Type: text/plain; charset="UTF-8" Hi, PFA patch to fix the issue which due to python side validations, at many places it was assumed that we will always get a row from query result. RM#2427 *Note:* Almost all the database level nodes are affected by this patch. -- Regards, Murtuza Zabuawala EnterpriseDB: http://www.enterprisedb.com The Enterprise PostgreSQL Company --001a1144375aae840e05505693d9 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi,

PFA patch to fix the issue which du= e to python side validations, at many places it was assumed that we will al= ways get a row from query result.
RM#2427

Note: Almost all the database level nodes are affected by this pat= ch.

--
Regards,
Murtuza Zabuawala
EnterpriseDB:=C2=A0http://www.enterprisedb.com
The En= terprise PostgreSQL Company

--001a1144375aae840e05505693d9-- --001a1144375aae841305505693db Content-Type: application/octet-stream; name="RM_2427.patch" Content-Disposition: attachment; filename="RM_2427.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_j349cx9i0 ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9fX2luaXRfXy5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9fX2luaXRfXy5weQppbmRleCBlMzM3ZDg1Li40YjA5ZDRkIDEwMDY0 NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvX19p bml0X18ucHkKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL19faW5pdF9fLnB5CkBAIC0zMDcsNyArMzA3LDkgQEAgY2xhc3MgU2Vy dmVyR3JvdXBWaWV3KE5vZGVWaWV3KToKICAgICAgICAgICAgIGdyb3VwID0g U2VydmVyR3JvdXAucXVlcnkuZmlsdGVyX2J5KHVzZXJfaWQ9Y3VycmVudF91 c2VyLmlkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGlkPWdpZCkuZmlyc3QoKQogICAgICAgICAgICAgaWYg bm90IGdyb3VwOgotICAgICAgICAgICAgICAgIHJldHVybiBnb25lKGVycm9y bXNnPSJDb3VsZCBub3QgZmluZCB0aGUgc2VydmVyIGdyb3VwLiIpCisgICAg ICAgICAgICAgICAgcmV0dXJuIGdvbmUoCisgICAgICAgICAgICAgICAgICAg IGVycm9ybXNnPWdldHRleHQoIkNvdWxkIG5vdCBmaW5kIHRoZSBzZXJ2ZXIg Z3JvdXAuIikKKyAgICAgICAgICAgICAgICApCiAKICAgICAgICAgICAgIG5v ZGVzID0gc2VsZi5ibHVlcHJpbnQuZ2VuZXJhdGVfYnJvd3Nlcl9ub2RlKAog ICAgICAgICAgICAgICAgICIlZCIgJSAoZ3JvdXAuaWQpLCBOb25lLApkaWZm IC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL19faW5pdF9fLnB5IGIvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL19faW5pdF9f LnB5CmluZGV4IDc2MWY3NTcuLmQ1NGY2NjUgMTAwNjQ0Ci0tLSBhL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy9fX2luaXRfXy5weQorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvX19pbml0X18ucHkKQEAgLTI4 MywxNCArMjgzLDE0IEBAIGNsYXNzIERhdGFiYXNlVmlldyhQR0NoaWxkTm9k ZVZpZXcpOgogICAgICAgICApCiAgICAgICAgIHN0YXR1cywgcmVzID0gY29u bi5leGVjdXRlX2RpY3QoU1FMKQogCisgICAgICAgIGlmIG5vdCBzdGF0dXM6 CisgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVy cm9ybXNnPXJlcykKKwogICAgICAgICBpZiBsZW4ocmVzWydyb3dzJ10pID09 IDA6CiAgICAgICAgICAgICByZXR1cm4gZ29uZSgKICAgICAgICAgICAgICAg ICBfKCJDb3VsZCBub3QgZmluZCB0aGUgZGF0YWJhc2Ugb24gdGhlIHNlcnZl ci4iKQogICAgICAgICAgICAgKQogCi0gICAgICAgIGlmIG5vdCBzdGF0dXM6 Ci0gICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVy cm9ybXNnPXJlcykKLQogICAgICAgICBTUUwgPSByZW5kZXJfdGVtcGxhdGUo CiAgICAgICAgICAgICAiLyIuam9pbihbc2VsZi50ZW1wbGF0ZV9wYXRoLCAn YWNsLnNxbCddKSwKICAgICAgICAgICAgIGRpZD1kaWQsIGNvbm49Y29ubgpA QCAtODU5LDkgKzg1OSwxNSBAQCBjbGFzcyBEYXRhYmFzZVZpZXcoUEdDaGls ZE5vZGVWaWV3KToKICAgICAgICAgICAgIGRpZD1kaWQsIGNvbm49Y29ubiwg bGFzdF9zeXN0ZW1fb2lkPTAKICAgICAgICAgKQogICAgICAgICBzdGF0dXMs IHJlcyA9IGNvbm4uZXhlY3V0ZV9kaWN0KFNRTCkKKwogICAgICAgICBpZiBu b3Qgc3RhdHVzOgogICAgICAgICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZl cl9lcnJvcihlcnJvcm1zZz1yZXMpCiAKKyAgICAgICAgaWYgbGVuKHJlc1sn cm93cyddKSA9PSAwOgorICAgICAgICAgICAgcmV0dXJuIGdvbmUoCisgICAg ICAgICAgICAgICAgXygiQ291bGQgbm90IGZpbmQgdGhlIGRhdGFiYXNlIG9u IHRoZSBzZXJ2ZXIuIikKKyAgICAgICAgICAgICkKKwogICAgICAgICBTUUwg PSByZW5kZXJfdGVtcGxhdGUoCiAgICAgICAgICAgICAiLyIuam9pbihbc2Vs Zi50ZW1wbGF0ZV9wYXRoLCAnYWNsLnNxbCddKSwKICAgICAgICAgICAgIGRp ZD1kaWQsIGNvbm49c2VsZi5jb25uCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvY2Fz dHMvX19pbml0X18ucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9kYXRhYmFzZXMvY2FzdHMvX19pbml0X18ucHkKaW5k ZXggN2ZjNzJkNS4uNzFkYzBhYiAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL2Nhc3Rz L19faW5pdF9fLnB5CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9jYXN0cy9fX2luaXRfXy5weQpA QCAtMjAsOSArMjAsMTEgQEAgZnJvbSBwZ2FkbWluLmJyb3dzZXIudXRpbHMg aW1wb3J0IFBHQ2hpbGROb2RlVmlldwogZnJvbSBwZ2FkbWluLnV0aWxzLmFq YXggaW1wb3J0IG1ha2VfanNvbl9yZXNwb25zZSwgaW50ZXJuYWxfc2VydmVy X2Vycm9yLCBcCiAgICAgbWFrZV9yZXNwb25zZSBhcyBhamF4X3Jlc3BvbnNl LCBnb25lCiBmcm9tIHBnYWRtaW4udXRpbHMuZHJpdmVyIGltcG9ydCBnZXRf ZHJpdmVyCi0KIGZyb20gY29uZmlnIGltcG9ydCBQR19ERUZBVUxUX0RSSVZF UgotCitmcm9tIHBnYWRtaW4udXRpbHMgaW1wb3J0IElTX1BZMgorIyBJZiB3 ZSBhcmUgaW4gUHl0aG9uMworaWYgbm90IElTX1BZMjoKKyAgICB1bmljb2Rl ID0gc3RyCiAKIGNsYXNzIENhc3RNb2R1bGUoQ29sbGVjdGlvbk5vZGVNb2R1 bGUpOgogICAgICIiIgpAQCAtNDEzLDYgKzQxNSw5IEBAIGNsYXNzIENhc3RW aWV3KFBHQ2hpbGROb2RlVmlldyk6CiAgICAgICAgICkKICAgICAgICAgdHJ5 OgogICAgICAgICAgICAgc3FsLCBuYW1lID0gc2VsZi5nZXRfc3FsKGdpZCwg c2lkLCBkaWQsIGRhdGEsIGNpZCkKKyAgICAgICAgICAgICMgTW9zdCBwcm9i YWJseSB0aGlzIGlzIGR1ZSB0byBlcnJvcgorICAgICAgICAgICAgaWYgbm90 IGlzaW5zdGFuY2Uoc3FsLCAoc3RyLCB1bmljb2RlKSk6CisgICAgICAgICAg ICAgICAgcmV0dXJuIHNxbAogICAgICAgICAgICAgc3RhdHVzLCByZXMgPSBz ZWxmLmNvbm4uZXhlY3V0ZV9zY2FsYXIoc3FsKQogICAgICAgICAgICAgaWYg bm90IHN0YXR1czoKICAgICAgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxf c2VydmVyX2Vycm9yKGVycm9ybXNnPXJlcykKQEAgLTUwMyw2ICs1MDgsOSBA QCBjbGFzcyBDYXN0VmlldyhQR0NoaWxkTm9kZVZpZXcpOgogICAgICAgICAi IiIKICAgICAgICAgZGF0YSA9IHJlcXVlc3QuYXJncwogICAgICAgICBzcWws IG5hbWUgPSBzZWxmLmdldF9zcWwoZ2lkLCBzaWQsIGRpZCwgZGF0YSwgY2lk KQorICAgICAgICAjIE1vc3QgcHJvYmFibHkgdGhpcyBpcyBkdWUgdG8gZXJy b3IKKyAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uoc3FsLCAoc3RyLCB1bmlj b2RlKSk6CisgICAgICAgICAgICByZXR1cm4gc3FsCiAgICAgICAgIHNxbCA9 IHNxbC5zdHJpcCgnXG4nKS5zdHJpcCgnICcpCiAgICAgICAgIGlmIHNxbCA9 PSAnJzoKICAgICAgICAgICAgIHNxbCA9ICItLW1vZGlmaWVkIFNRTCIKQEAg LTUzNiw2ICs1NDQsMTEgQEAgY2xhc3MgQ2FzdFZpZXcoUEdDaGlsZE5vZGVW aWV3KToKICAgICAgICAgICAgIGlmIG5vdCBzdGF0dXM6CiAgICAgICAgICAg ICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1zZz1y ZXMpCiAKKyAgICAgICAgICAgIGlmIGxlbihyZXNbJ3Jvd3MnXSkgPT0gMDoK KyAgICAgICAgICAgICAgICByZXR1cm4gZ29uZSgKKyAgICAgICAgICAgICAg ICAgICAgXygiQ291bGQgbm90IGZpbmQgdGhlIHNwZWNpZmllZCBjYXN0IG9u IHRoZSBzZXJ2ZXIuIikKKyAgICAgICAgICAgICAgICApCisKICAgICAgICAg ICAgIG9sZF9kYXRhID0gcmVzWydyb3dzJ11bMF0KICAgICAgICAgICAgIHNx bCA9IHJlbmRlcl90ZW1wbGF0ZSgKICAgICAgICAgICAgICAgICAiLyIuam9p bihbc2VsZi50ZW1wbGF0ZV9wYXRoLCAndXBkYXRlLnNxbCddKSwKZGlmZiAt LWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9ldmVudF90cmlnZ2Vycy9fX2luaXRfXy5weSBiL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy9ldmVudF90cmlnZ2Vycy9fX2luaXRfXy5weQppbmRleCA1NDdkYWVk Li42NzFiNmY0IDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvZXZlbnRfdHJpZ2dlcnMv X19pbml0X18ucHkKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL2V2ZW50X3RyaWdnZXJzL19faW5p dF9fLnB5CkBAIC0xNywxMSArMTcsMTMgQEAgZnJvbSBmbGFza19iYWJlbCBp bXBvcnQgZ2V0dGV4dAogZnJvbSBwZ2FkbWluLmJyb3dzZXIuY29sbGVjdGlv biBpbXBvcnQgQ29sbGVjdGlvbk5vZGVNb2R1bGUKIGZyb20gcGdhZG1pbi5i cm93c2VyLnV0aWxzIGltcG9ydCBQR0NoaWxkTm9kZVZpZXcKIGZyb20gcGdh ZG1pbi51dGlscy5hamF4IGltcG9ydCBtYWtlX2pzb25fcmVzcG9uc2UsIGlu dGVybmFsX3NlcnZlcl9lcnJvciwgXAotICAgIG1ha2VfcmVzcG9uc2UgYXMg YWpheF9yZXNwb25zZQorICAgIG1ha2VfcmVzcG9uc2UgYXMgYWpheF9yZXNw b25zZSwgZ29uZQogZnJvbSBwZ2FkbWluLnV0aWxzLmRyaXZlciBpbXBvcnQg Z2V0X2RyaXZlcgotZnJvbSBwZ2FkbWluLnV0aWxzLmFqYXggaW1wb3J0IGdv bmUKLQogZnJvbSBjb25maWcgaW1wb3J0IFBHX0RFRkFVTFRfRFJJVkVSCitm cm9tIHBnYWRtaW4udXRpbHMgaW1wb3J0IElTX1BZMgorIyBJZiB3ZSBhcmUg aW4gUHl0aG9uMworaWYgbm90IElTX1BZMjoKKyAgICB1bmljb2RlID0gc3Ry CiAKIAogY2xhc3MgRXZlbnRUcmlnZ2VyTW9kdWxlKENvbGxlY3Rpb25Ob2Rl TW9kdWxlKToKQEAgLTQyNyw2ICs0MjksOSBAQCBjbGFzcyBFdmVudFRyaWdn ZXJWaWV3KFBHQ2hpbGROb2RlVmlldyk6CiAKICAgICAgICAgdHJ5OgogICAg ICAgICAgICAgc3FsID0gc2VsZi5nZXRfc3FsKGRhdGEsIGV0aWQpCisgICAg ICAgICAgICAjIE1vc3QgcHJvYmFibHkgdGhpcyBpcyBkdWUgdG8gZXJyb3IK KyAgICAgICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKHNxbCwgKHN0ciwgdW5p Y29kZSkpOgorICAgICAgICAgICAgICAgIHJldHVybiBzcWwKICAgICAgICAg ICAgIHNxbCA9IHNxbC5zdHJpcCgnXG4nKS5zdHJpcCgnICcpCiAgICAgICAg ICAgICBpZiBzcWwgIT0gIiI6CiAgICAgICAgICAgICAgICAgc3RhdHVzLCBy ZXMgPSBzZWxmLmNvbm4uZXhlY3V0ZV9zY2FsYXIoc3FsKQpAQCAtNTM5LDYg KzU0NCw5IEBAIGNsYXNzIEV2ZW50VHJpZ2dlclZpZXcoUEdDaGlsZE5vZGVW aWV3KToKICAgICAgICAgICAgICAgICBkYXRhW2tdID0gdgogICAgICAgICB0 cnk6CiAgICAgICAgICAgICBzcWwgPSBzZWxmLmdldF9zcWwoZGF0YSwgZXRp ZCkKKyAgICAgICAgICAgICMgTW9zdCBwcm9iYWJseSB0aGlzIGlzIGR1ZSB0 byBlcnJvcgorICAgICAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uoc3FsLCAo c3RyLCB1bmljb2RlKSk6CisgICAgICAgICAgICAgICAgcmV0dXJuIHNxbAog ICAgICAgICAgICAgc3FsID0gc3FsLnN0cmlwKCdcbicpLnN0cmlwKCcgJykK ICAgICAgICAgICAgIGlmIHNxbCA9PSAnJzoKICAgICAgICAgICAgICAgICBz cWwgPSAiLS1tb2RpZmllZCBTUUwiCkBAIC02MjgsNiArNjM2LDExIEBAIGNs YXNzIEV2ZW50VHJpZ2dlclZpZXcoUEdDaGlsZE5vZGVWaWV3KToKICAgICAg ICAgaWYgbm90IHN0YXR1czoKICAgICAgICAgICAgIHJldHVybiBpbnRlcm5h bF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9cmVzKQogCisgICAgICAgIGlmIGxl bihyZXNbJ3Jvd3MnXSkgPT0gMDoKKyAgICAgICAgICAgIHJldHVybiBnb25l KAorICAgICAgICAgICAgICAgIF8oIkNvdWxkIG5vdCBmaW5kIHRoZSBzcGVj aWZpZWQgZXZlbnQgdHJpZ2dlciBvbiB0aGUgc2VydmVyLiIpCisgICAgICAg ICAgICApCisKICAgICAgICAgcmVzdWx0ID0gcmVzWydyb3dzJ11bMF0KICAg ICAgICAgcmVzdWx0ID0gc2VsZi5fZm9ybWF0dGVyKHJlc3VsdCkKIApkaWZm IC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL2V4dGVuc2lvbnMvX19pbml0X18ucHkgYi93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvZXh0ZW5zaW9ucy9fX2luaXRfXy5weQppbmRleCBlNzc2YjYxLi5hZWQz OTNlIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9kYXRhYmFzZXMvZXh0ZW5zaW9ucy9fX2luaXRfXy5w eQorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvZXh0ZW5zaW9ucy9fX2luaXRfXy5weQpAQCAtMTgs MTAgKzE4LDggQEAgZnJvbSBmbGFza19iYWJlbCBpbXBvcnQgZ2V0dGV4dAog ZnJvbSBwZ2FkbWluLmJyb3dzZXIuY29sbGVjdGlvbiBpbXBvcnQgQ29sbGVj dGlvbk5vZGVNb2R1bGUKIGZyb20gcGdhZG1pbi5icm93c2VyLnV0aWxzIGlt cG9ydCBQR0NoaWxkTm9kZVZpZXcKIGZyb20gcGdhZG1pbi51dGlscy5hamF4 IGltcG9ydCBtYWtlX2pzb25fcmVzcG9uc2UsIFwKLSAgICBtYWtlX3Jlc3Bv bnNlIGFzIGFqYXhfcmVzcG9uc2UsIGludGVybmFsX3NlcnZlcl9lcnJvcgor ICAgIG1ha2VfcmVzcG9uc2UgYXMgYWpheF9yZXNwb25zZSwgaW50ZXJuYWxf c2VydmVyX2Vycm9yLCBnb25lCiBmcm9tIHBnYWRtaW4udXRpbHMuZHJpdmVy IGltcG9ydCBnZXRfZHJpdmVyCi1mcm9tIHBnYWRtaW4udXRpbHMuYWpheCBp bXBvcnQgZ29uZQotCiBmcm9tIGNvbmZpZyBpbXBvcnQgUEdfREVGQVVMVF9E UklWRVIKIAogIyBBcyB1bmljb2RlIHR5cGUgaXMgbm90IGF2YWlsYWJsZSBp biBweXRob24zCkBAIC0yMTQsNyArMjEyLDcgQEAgY2xhc3MgRXh0ZW5zaW9u VmlldyhQR0NoaWxkTm9kZVZpZXcpOgogICAgICAgICAgICAgICAgIHN0YXR1 cz0yMDAKICAgICAgICAgICAgICkKIAotICAgICAgICByZXR1cm4gZ29uZShn ZXR0ZXh0KCJDb3VsZCBub3QgZmluZCB0aGUgc3BlY2lmaWVkIGV2ZW50IHRy aWdnZXIuIikpCisgICAgICAgIHJldHVybiBnb25lKGdldHRleHQoIkNvdWxk IG5vdCBmaW5kIHRoZSBzcGVjaWZpZWQgZXh0ZW5zaW9uLiIpKQogCiAgICAg QGNoZWNrX3ByZWNvbmRpdGlvbgogICAgIGRlZiBwcm9wZXJ0aWVzKHNlbGYs IGdpZCwgc2lkLCBkaWQsIGVpZCk6CkBAIC0zMDEsNiArMjk5LDkgQEAgY2xh c3MgRXh0ZW5zaW9uVmlldyhQR0NoaWxkTm9kZVZpZXcpOgogCiAgICAgICAg IHRyeToKICAgICAgICAgICAgIFNRTCwgbmFtZSA9IHNlbGYuZ2V0U1FMKGdp ZCwgc2lkLCBkYXRhLCBkaWQsIGVpZCkKKyAgICAgICAgICAgICMgTW9zdCBw cm9iYWJseSB0aGlzIGlzIGR1ZSB0byBlcnJvcgorICAgICAgICAgICAgaWYg bm90IGlzaW5zdGFuY2UoU1FMLCAoc3RyLCB1bmljb2RlKSk6CisgICAgICAg ICAgICAgICAgcmV0dXJuIFNRTAogICAgICAgICAgICAgU1FMID0gU1FMLnN0 cmlwKCdcbicpLnN0cmlwKCcgJykKICAgICAgICAgICAgIHN0YXR1cywgcmVz ID0gc2VsZi5jb25uLmV4ZWN1dGVfZGljdChTUUwpCiAgICAgICAgICAgICBp ZiBub3Qgc3RhdHVzOgpAQCAtMzcyLDYgKzM3Myw5IEBAIGNsYXNzIEV4dGVu c2lvblZpZXcoUEdDaGlsZE5vZGVWaWV3KToKICAgICAgICAgZGF0YSA9IHJl cXVlc3QuYXJncy5jb3B5KCkKICAgICAgICAgdHJ5OgogICAgICAgICAgICAg U1FMLCBuYW1lID0gc2VsZi5nZXRTUUwoZ2lkLCBzaWQsIGRhdGEsIGRpZCwg ZWlkKQorICAgICAgICAgICAgIyBNb3N0IHByb2JhYmx5IHRoaXMgaXMgZHVl IHRvIGVycm9yCisgICAgICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShTUUws IChzdHIsIHVuaWNvZGUpKToKKyAgICAgICAgICAgICAgICByZXR1cm4gU1FM CiAgICAgICAgICAgICBTUUwgPSBTUUwuc3RyaXAoJ1xuJykuc3RyaXAoJyAn KQogICAgICAgICAgICAgaWYgU1FMID09ICcnOgogICAgICAgICAgICAgICAg IFNRTCA9ICItLW1vZGlmaWVkIFNRTCIKQEAgLTQ2OSw2ICs0NzMsMTAgQEAg Y2xhc3MgRXh0ZW5zaW9uVmlldyhQR0NoaWxkTm9kZVZpZXcpOgogICAgICAg ICBzdGF0dXMsIHJlcyA9IHNlbGYuY29ubi5leGVjdXRlX2RpY3QoU1FMKQog ICAgICAgICBpZiBub3Qgc3RhdHVzOgogICAgICAgICAgICAgcmV0dXJuIGlu dGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1zZz1yZXMpCisgICAgICAgIGlm IGxlbihyZXNbJ3Jvd3MnXSkgPT0gMDoKKyAgICAgICAgICAgIHJldHVybiBn b25lKAorICAgICAgICAgICAgICAgIF8oIkNvdWxkIG5vdCBmaW5kIHRoZSBl eHRlbnNpb24gb24gdGhlIHNlcnZlci4iKQorICAgICAgICAgICAgKQogCiAg ICAgICAgIHJlc3VsdCA9IHJlc1sncm93cyddWzBdCiAKZGlmZiAtLWdpdCBh L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9mb3JlaWduX2RhdGFfd3JhcHBlcnMvX19pbml0X18ucHkgYi93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvZm9yZWlnbl9kYXRhX3dyYXBwZXJzL19faW5pdF9fLnB5CmluZGV4 IGZkZmRjYmEuLjBiZWQyNjEgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9mb3JlaWdu X2RhdGFfd3JhcHBlcnMvX19pbml0X18ucHkKKysrIGIvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL2ZvcmVp Z25fZGF0YV93cmFwcGVycy9fX2luaXRfXy5weQpAQCAtMjAsMTEgKzIwLDEz IEBAIGZyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVy cy51dGlscyBpbXBvcnQgcGFyc2VfcHJpdl9mcm9tX2RiLCBcCiAgICAgcGFy c2VfcHJpdl90b19kYiwgdmFsaWRhdGVfb3B0aW9ucywgdG9rZW5pemVfb3B0 aW9ucwogZnJvbSBwZ2FkbWluLmJyb3dzZXIudXRpbHMgaW1wb3J0IFBHQ2hp bGROb2RlVmlldwogZnJvbSBwZ2FkbWluLnV0aWxzLmFqYXggaW1wb3J0IG1h a2VfanNvbl9yZXNwb25zZSwgaW50ZXJuYWxfc2VydmVyX2Vycm9yLCBcCi0g ICAgbWFrZV9yZXNwb25zZSBhcyBhamF4X3Jlc3BvbnNlCisgICAgbWFrZV9y ZXNwb25zZSBhcyBhamF4X3Jlc3BvbnNlLCBnb25lCiBmcm9tIHBnYWRtaW4u dXRpbHMuZHJpdmVyIGltcG9ydCBnZXRfZHJpdmVyCi1mcm9tIHBnYWRtaW4u dXRpbHMuYWpheCBpbXBvcnQgZ29uZQotCiBmcm9tIGNvbmZpZyBpbXBvcnQg UEdfREVGQVVMVF9EUklWRVIKK2Zyb20gcGdhZG1pbi51dGlscyBpbXBvcnQg SVNfUFkyCisjIElmIHdlIGFyZSBpbiBQeXRob24zCitpZiBub3QgSVNfUFky OgorICAgIHVuaWNvZGUgPSBzdHIKIAogCiBjbGFzcyBGb3JlaWduRGF0YVdy YXBwZXJNb2R1bGUoQ29sbGVjdGlvbk5vZGVNb2R1bGUpOgpAQCAtNDQxLDcg KzQ0Myw5IEBAIGNsYXNzIEZvcmVpZ25EYXRhV3JhcHBlclZpZXcoUEdDaGls ZE5vZGVWaWV3KToKIAogICAgICAgICB0cnk6CiAgICAgICAgICAgICBzcWws IG5hbWUgPSBzZWxmLmdldF9zcWwoZ2lkLCBzaWQsIGRhdGEsIGRpZCwgZmlk KQotCisgICAgICAgICAgICAjIE1vc3QgcHJvYmFibHkgdGhpcyBpcyBkdWUg dG8gZXJyb3IKKyAgICAgICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKHNxbCwg KHN0ciwgdW5pY29kZSkpOgorICAgICAgICAgICAgICAgIHJldHVybiBzcWwK ICAgICAgICAgICAgIHN0YXR1cywgcmVzID0gc2VsZi5jb25uLmV4ZWN1dGVf c2NhbGFyKHNxbCkKICAgICAgICAgICAgIGlmIG5vdCBzdGF0dXM6CiAgICAg ICAgICAgICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJvcihlcnJv cm1zZz1yZXMpCkBAIC01MzUsNyArNTM5LDkgQEAgY2xhc3MgRm9yZWlnbkRh dGFXcmFwcGVyVmlldyhQR0NoaWxkTm9kZVZpZXcpOgogICAgICAgICAgICAg ICAgIGRhdGFba10gPSB2CiAgICAgICAgIHRyeToKICAgICAgICAgICAgIHNx bCwgbmFtZSA9IHNlbGYuZ2V0X3NxbChnaWQsIHNpZCwgZGF0YSwgZGlkLCBm aWQpCi0KKyAgICAgICAgICAgICMgTW9zdCBwcm9iYWJseSB0aGlzIGlzIGR1 ZSB0byBlcnJvcgorICAgICAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uoc3Fs LCAoc3RyLCB1bmljb2RlKSk6CisgICAgICAgICAgICAgICAgcmV0dXJuIHNx bAogICAgICAgICAgICAgaWYgc3FsID09ICcnOgogICAgICAgICAgICAgICAg IHNxbCA9ICItLW1vZGlmaWVkIFNRTCIKIApAQCAtNjQ5LDYgKzY1NSwxMCBA QCBjbGFzcyBGb3JlaWduRGF0YVdyYXBwZXJWaWV3KFBHQ2hpbGROb2RlVmll dyk6CiAgICAgICAgIHN0YXR1cywgcmVzID0gc2VsZi5jb25uLmV4ZWN1dGVf ZGljdChzcWwpCiAgICAgICAgIGlmIG5vdCBzdGF0dXM6CiAgICAgICAgICAg ICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXJlcykK KyAgICAgICAgaWYgbGVuKHJlc1sncm93cyddKSA9PSAwOgorICAgICAgICAg ICAgcmV0dXJuIGdvbmUoCisgICAgICAgICAgICAgICAgXygiQ291bGQgbm90 IGZpbmQgdGhlIGZvcmVpZ24gZGF0YSB3cmFwcGVyIG9uIHRoZSBzZXJ2ZXIu IikKKyAgICAgICAgICAgICkKIAogICAgICAgICBpc192YWxpZF9vcHRpb25z ID0gRmFsc2UKICAgICAgICAgaWYgcmVzWydyb3dzJ11bMF1bJ2Zkd29wdGlv bnMnXSBpcyBub3QgTm9uZToKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9mb3JlaWdu X2RhdGFfd3JhcHBlcnMvZm9yZWlnbl9zZXJ2ZXJzL19faW5pdF9fLnB5IGIv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL2ZvcmVpZ25fZGF0YV93cmFwcGVycy9mb3JlaWduX3NlcnZlcnMv X19pbml0X18ucHkKaW5kZXggNThjZjk3Mi4uN2IyZGE5OSAxMDA2NDQKLS0t IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL2ZvcmVpZ25fZGF0YV93cmFwcGVycy9mb3JlaWduX3NlcnZl cnMvX19pbml0X18ucHkKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL2ZvcmVpZ25fZGF0YV93cmFw cGVycy9mb3JlaWduX3NlcnZlcnMvX19pbml0X18ucHkKQEAgLTIwLDExICsy MCwxMyBAQCBmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNl cnZlcnMudXRpbHMgaW1wb3J0IHBhcnNlX3ByaXZfZnJvbV9kYiwgXAogICAg IHBhcnNlX3ByaXZfdG9fZGIsIHZhbGlkYXRlX29wdGlvbnMsIHRva2VuaXpl X29wdGlvbnMKIGZyb20gcGdhZG1pbi5icm93c2VyLnV0aWxzIGltcG9ydCBQ R0NoaWxkTm9kZVZpZXcKIGZyb20gcGdhZG1pbi51dGlscy5hamF4IGltcG9y dCBtYWtlX2pzb25fcmVzcG9uc2UsIGludGVybmFsX3NlcnZlcl9lcnJvciwg XAotICAgIG1ha2VfcmVzcG9uc2UgYXMgYWpheF9yZXNwb25zZQorICAgIG1h a2VfcmVzcG9uc2UgYXMgYWpheF9yZXNwb25zZSwgZ29uZQogZnJvbSBwZ2Fk bWluLnV0aWxzLmRyaXZlciBpbXBvcnQgZ2V0X2RyaXZlcgotZnJvbSBwZ2Fk bWluLnV0aWxzLmFqYXggaW1wb3J0IGdvbmUKLQogZnJvbSBjb25maWcgaW1w b3J0IFBHX0RFRkFVTFRfRFJJVkVSCitmcm9tIHBnYWRtaW4udXRpbHMgaW1w b3J0IElTX1BZMgorIyBJZiB3ZSBhcmUgaW4gUHl0aG9uMworaWYgbm90IElT X1BZMjoKKyAgICB1bmljb2RlID0gc3RyCiAKIAogY2xhc3MgRm9yZWlnblNl cnZlck1vZHVsZShDb2xsZWN0aW9uTm9kZU1vZHVsZSk6CkBAIC00NDYsNiAr NDQ4LDkgQEAgY2xhc3MgRm9yZWlnblNlcnZlclZpZXcoUEdDaGlsZE5vZGVW aWV3KToKIAogICAgICAgICB0cnk6CiAgICAgICAgICAgICBzcWwsIG5hbWUg PSBzZWxmLmdldF9zcWwoZ2lkLCBzaWQsIGRhdGEsIGRpZCwgZmlkLCBmc2lk KQorICAgICAgICAgICAgIyBNb3N0IHByb2JhYmx5IHRoaXMgaXMgZHVlIHRv IGVycm9yCisgICAgICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShzcWwsIChz dHIsIHVuaWNvZGUpKToKKyAgICAgICAgICAgICAgICByZXR1cm4gc3FsCiAg ICAgICAgICAgICBzcWwgPSBzcWwuc3RyaXAoJ1xuJykuc3RyaXAoJyAnKQog ICAgICAgICAgICAgc3RhdHVzLCByZXMgPSBzZWxmLmNvbm4uZXhlY3V0ZV9z Y2FsYXIoc3FsKQogICAgICAgICAgICAgaWYgbm90IHN0YXR1czoKQEAgLTU0 Niw2ICs1NTEsOSBAQCBjbGFzcyBGb3JlaWduU2VydmVyVmlldyhQR0NoaWxk Tm9kZVZpZXcpOgogICAgICAgICAgICAgICAgIGRhdGFba10gPSB2CiAgICAg ICAgIHRyeToKICAgICAgICAgICAgIHNxbCwgbmFtZSA9IHNlbGYuZ2V0X3Nx bChnaWQsIHNpZCwgZGF0YSwgZGlkLCBmaWQsIGZzaWQpCisgICAgICAgICAg ICAjIE1vc3QgcHJvYmFibHkgdGhpcyBpcyBkdWUgdG8gZXJyb3IKKyAgICAg ICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKHNxbCwgKHN0ciwgdW5pY29kZSkp OgorICAgICAgICAgICAgICAgIHJldHVybiBzcWwKICAgICAgICAgICAgIGlm IHNxbCA9PSAnJzoKICAgICAgICAgICAgICAgICAgICAgc3FsID0gIi0tbW9k aWZpZWQgU1FMIgogCkBAIC01ODAsNiArNTg4LDEwIEBAIGNsYXNzIEZvcmVp Z25TZXJ2ZXJWaWV3KFBHQ2hpbGROb2RlVmlldyk6CiAgICAgICAgICAgICBz dGF0dXMsIHJlcyA9IHNlbGYuY29ubi5leGVjdXRlX2RpY3Qoc3FsKQogICAg ICAgICAgICAgaWYgbm90IHN0YXR1czoKICAgICAgICAgICAgICAgICByZXR1 cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXJlcykKKyAgICAg ICAgICAgIGlmIGxlbihyZXNbJ3Jvd3MnXSkgPT0gMDoKKyAgICAgICAgICAg ICAgICByZXR1cm4gZ29uZSgKKyAgICAgICAgICAgICAgICAgICAgZ2V0dGV4 dCgiQ291bGQgbm90IGZpbmQgdGhlIGZvcmVpZ24gc2VydmVyIGluZm9ybWF0 aW9uLiIpCisgICAgICAgICAgICAgICAgKQogCiAgICAgICAgICAgICBpZiBy ZXNbJ3Jvd3MnXVswXVsnZnNydm9wdGlvbnMnXSBpcyBub3QgTm9uZToKICAg ICAgICAgICAgICAgICByZXNbJ3Jvd3MnXVswXVsnZnNydm9wdGlvbnMnXSA9 IHRva2VuaXplX29wdGlvbnMoCkBAIC02NjIsNiArNjc0LDEwIEBAIGNsYXNz IEZvcmVpZ25TZXJ2ZXJWaWV3KFBHQ2hpbGROb2RlVmlldyk6CiAgICAgICAg IHN0YXR1cywgcmVzID0gc2VsZi5jb25uLmV4ZWN1dGVfZGljdChzcWwpCiAg ICAgICAgIGlmIG5vdCBzdGF0dXM6CiAgICAgICAgICAgICByZXR1cm4gaW50 ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXJlcykKKyAgICAgICAgaWYg bGVuKHJlc1sncm93cyddKSA9PSAwOgorICAgICAgICAgICAgcmV0dXJuIGdv bmUoCisgICAgICAgICAgICAgICAgZ2V0dGV4dCgiQ291bGQgbm90IGZpbmQg dGhlIGZvcmVpZ24gc2VydmVyIGluZm9ybWF0aW9uLiIpCisgICAgICAgICAg ICApCiAKICAgICAgICAgaXNfdmFsaWRfb3B0aW9ucyA9IEZhbHNlCiAgICAg ICAgIGlmIHJlc1sncm93cyddWzBdWydmc3J2b3B0aW9ucyddIGlzIG5vdCBO b25lOgpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL2ZvcmVpZ25fZGF0YV93cmFwcGVy cy9mb3JlaWduX3NlcnZlcnMvdXNlcl9tYXBwaW5nL19faW5pdF9fLnB5IGIv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL2ZvcmVpZ25fZGF0YV93cmFwcGVycy9mb3JlaWduX3NlcnZlcnMv dXNlcl9tYXBwaW5nL19faW5pdF9fLnB5CmluZGV4IDYzNjE5MmQuLmM2YTEz MWQgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9mb3JlaWduX2RhdGFfd3JhcHBlcnMv Zm9yZWlnbl9zZXJ2ZXJzL3VzZXJfbWFwcGluZy9fX2luaXRfXy5weQorKysg Yi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9k YXRhYmFzZXMvZm9yZWlnbl9kYXRhX3dyYXBwZXJzL2ZvcmVpZ25fc2VydmVy cy91c2VyX21hcHBpbmcvX19pbml0X18ucHkKQEAgLTIwLDExICsyMCwxMyBA QCBmcm9tIGZsYXNrX2JhYmVsIGltcG9ydCBnZXR0ZXh0CiBmcm9tIHBnYWRt aW4uYnJvd3Nlci5jb2xsZWN0aW9uIGltcG9ydCBDb2xsZWN0aW9uTm9kZU1v ZHVsZQogZnJvbSBwZ2FkbWluLmJyb3dzZXIudXRpbHMgaW1wb3J0IFBHQ2hp bGROb2RlVmlldwogZnJvbSBwZ2FkbWluLnV0aWxzLmFqYXggaW1wb3J0IG1h a2VfanNvbl9yZXNwb25zZSwgaW50ZXJuYWxfc2VydmVyX2Vycm9yLCBcCi0g ICAgbWFrZV9yZXNwb25zZSBhcyBhamF4X3Jlc3BvbnNlCisgICAgbWFrZV9y ZXNwb25zZSBhcyBhamF4X3Jlc3BvbnNlLCBnb25lCiBmcm9tIHBnYWRtaW4u dXRpbHMuZHJpdmVyIGltcG9ydCBnZXRfZHJpdmVyCi1mcm9tIHBnYWRtaW4u dXRpbHMuYWpheCBpbXBvcnQgZ29uZQotCiBmcm9tIGNvbmZpZyBpbXBvcnQg UEdfREVGQVVMVF9EUklWRVIKK2Zyb20gcGdhZG1pbi51dGlscyBpbXBvcnQg SVNfUFkyCisjIElmIHdlIGFyZSBpbiBQeXRob24zCitpZiBub3QgSVNfUFky OgorICAgIHVuaWNvZGUgPSBzdHIKIAogCiBjbGFzcyBVc2VyTWFwcGluZ01v ZHVsZShDb2xsZWN0aW9uTm9kZU1vZHVsZSk6CkBAIC00NTIsNiArNDU0LDkg QEAgY2xhc3MgVXNlck1hcHBpbmdWaWV3KFBHQ2hpbGROb2RlVmlldyk6CiAg ICAgICAgICkKICAgICAgICAgdHJ5OgogICAgICAgICAgICAgc3FsLCBuYW1l ID0gc2VsZi5nZXRfc3FsKGdpZCwgc2lkLCBkYXRhLCBkaWQsIGZpZCwgZnNp ZCwgdW1pZCkKKyAgICAgICAgICAgICMgTW9zdCBwcm9iYWJseSB0aGlzIGlz IGR1ZSB0byBlcnJvcgorICAgICAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uo c3FsLCAoc3RyLCB1bmljb2RlKSk6CisgICAgICAgICAgICAgICAgcmV0dXJu IHNxbAogICAgICAgICAgICAgc3FsID0gc3FsLnN0cmlwKCdcbicpLnN0cmlw KCcgJykKICAgICAgICAgICAgIHN0YXR1cywgcmVzID0gc2VsZi5jb25uLmV4 ZWN1dGVfc2NhbGFyKHNxbCkKICAgICAgICAgICAgIGlmIG5vdCBzdGF0dXM6 CkBAIC01NzIsNiArNTc3LDkgQEAgY2xhc3MgVXNlck1hcHBpbmdWaWV3KFBH Q2hpbGROb2RlVmlldyk6CiAgICAgICAgICAgICAgICAgZGF0YVtrXSA9IHYK ICAgICAgICAgdHJ5OgogICAgICAgICAgICAgc3FsLCBuYW1lID0gc2VsZi5n ZXRfc3FsKGdpZCwgc2lkLCBkYXRhLCBkaWQsIGZpZCwgZnNpZCwgdW1pZCkK KyAgICAgICAgICAgICMgTW9zdCBwcm9iYWJseSB0aGlzIGlzIGR1ZSB0byBl cnJvcgorICAgICAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uoc3FsLCAoc3Ry LCB1bmljb2RlKSk6CisgICAgICAgICAgICAgICAgcmV0dXJuIHNxbAogICAg ICAgICAgICAgaWYgc3FsID09ICcnOgogICAgICAgICAgICAgICAgIHNxbCA9 ICItLW1vZGlmaWVkIFNRTCIKIApAQCAtNjA2LDYgKzYxNCwxMCBAQCBjbGFz cyBVc2VyTWFwcGluZ1ZpZXcoUEdDaGlsZE5vZGVWaWV3KToKICAgICAgICAg ICAgIHN0YXR1cywgcmVzID0gc2VsZi5jb25uLmV4ZWN1dGVfZGljdChzcWwp CiAgICAgICAgICAgICBpZiBub3Qgc3RhdHVzOgogICAgICAgICAgICAgICAg IHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9cmVzKQor ICAgICAgICAgICAgaWYgbGVuKHJlc1sncm93cyddKSA9PSAwOgorICAgICAg ICAgICAgICAgIHJldHVybiBnb25lKAorICAgICAgICAgICAgICAgICAgICBn ZXR0ZXh0KCJDb3VsZCBub3QgZmluZCB0aGUgdXNlciBtYXBwaW5nIGluZm9y bWF0aW9uLiIpCisgICAgICAgICAgICAgICAgKQogCiAgICAgICAgICAgICBp ZiByZXNbJ3Jvd3MnXVswXVsndW1vcHRpb25zJ10gaXMgbm90IE5vbmU6CiAg ICAgICAgICAgICAgICAgcmVzWydyb3dzJ11bMF1bJ3Vtb3B0aW9ucyddID0g dG9rZW5pemVfb3B0aW9ucygKQEAgLTY4Myw2ICs2OTUsMTAgQEAgY2xhc3Mg VXNlck1hcHBpbmdWaWV3KFBHQ2hpbGROb2RlVmlldyk6CiAgICAgICAgIHN0 YXR1cywgcmVzID0gc2VsZi5jb25uLmV4ZWN1dGVfZGljdChzcWwpCiAgICAg ICAgIGlmIG5vdCBzdGF0dXM6CiAgICAgICAgICAgICByZXR1cm4gaW50ZXJu YWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXJlcykKKyAgICAgICAgaWYgbGVu KHJlc1sncm93cyddKSA9PSAwOgorICAgICAgICAgICAgcmV0dXJuIGdvbmUo CisgICAgICAgICAgICAgICAgZ2V0dGV4dCgiQ291bGQgbm90IGZpbmQgdGhl IHVzZXIgbWFwcGluZyBpbmZvcm1hdGlvbi4iKQorICAgICAgICAgICAgKQog CiAgICAgICAgIGlzX3ZhbGlkX29wdGlvbnMgPSBGYWxzZQogICAgICAgICBp ZiByZXNbJ3Jvd3MnXVswXVsndW1vcHRpb25zJ10gaXMgbm90IE5vbmU6CmRp ZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvbGFuZ3VhZ2VzL19faW5pdF9fLnB5IGIvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL2xhbmd1YWdlcy9fX2luaXRfXy5weQppbmRleCBiN2ExY2Y2Li4xZmUy MjQ4IDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9kYXRhYmFzZXMvbGFuZ3VhZ2VzL19faW5pdF9fLnB5 CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9sYW5ndWFnZXMvX19pbml0X18ucHkKQEAgLTIwLDEx ICsyMCwxMyBAQCBmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBz LnNlcnZlcnMudXRpbHMgaW1wb3J0IHBhcnNlX3ByaXZfZnJvbV9kYiwgXAog ICAgIHBhcnNlX3ByaXZfdG9fZGIKIGZyb20gcGdhZG1pbi5icm93c2VyLnV0 aWxzIGltcG9ydCBQR0NoaWxkTm9kZVZpZXcKIGZyb20gcGdhZG1pbi51dGls cy5hamF4IGltcG9ydCBtYWtlX2pzb25fcmVzcG9uc2UsIGludGVybmFsX3Nl cnZlcl9lcnJvciwgXAotICAgIG1ha2VfcmVzcG9uc2UgYXMgYWpheF9yZXNw b25zZQorICAgIG1ha2VfcmVzcG9uc2UgYXMgYWpheF9yZXNwb25zZSwgZ29u ZQogZnJvbSBwZ2FkbWluLnV0aWxzLmRyaXZlciBpbXBvcnQgZ2V0X2RyaXZl cgotZnJvbSBwZ2FkbWluLnV0aWxzLmFqYXggaW1wb3J0IGdvbmUKLQogZnJv bSBjb25maWcgaW1wb3J0IFBHX0RFRkFVTFRfRFJJVkVSCitmcm9tIHBnYWRt aW4udXRpbHMgaW1wb3J0IElTX1BZMgorIyBJZiB3ZSBhcmUgaW4gUHl0aG9u MworaWYgbm90IElTX1BZMjoKKyAgICB1bmljb2RlID0gc3RyCiAKIAogY2xh c3MgTGFuZ3VhZ2VNb2R1bGUoQ29sbGVjdGlvbk5vZGVNb2R1bGUpOgpAQCAt MzkyLDYgKzM5NCw5IEBAIGNsYXNzIExhbmd1YWdlVmlldyhQR0NoaWxkTm9k ZVZpZXcpOgogCiAgICAgICAgIHRyeToKICAgICAgICAgICAgIHNxbCwgbmFt ZSA9IHNlbGYuZ2V0X3NxbChkYXRhLCBsaWQpCisgICAgICAgICAgICAjIE1v c3QgcHJvYmFibHkgdGhpcyBpcyBkdWUgdG8gZXJyb3IKKyAgICAgICAgICAg IGlmIG5vdCBpc2luc3RhbmNlKHNxbCwgKHN0ciwgdW5pY29kZSkpOgorICAg ICAgICAgICAgICAgIHJldHVybiBzcWwKICAgICAgICAgICAgIHNxbCA9IHNx bC5zdHJpcCgnXG4nKS5zdHJpcCgnICcpCiAgICAgICAgICAgICBzdGF0dXMs IHJlcyA9IHNlbGYuY29ubi5leGVjdXRlX2RpY3Qoc3FsKQogICAgICAgICAg ICAgaWYgbm90IHN0YXR1czoKQEAgLTUzMSw2ICs1MzYsOSBAQCBjbGFzcyBM YW5ndWFnZVZpZXcoUEdDaGlsZE5vZGVWaWV3KToKICAgICAgICAgICAgICAg ICBkYXRhW2tdID0gdgogICAgICAgICB0cnk6CiAgICAgICAgICAgICBzcWws IG5hbWUgPSBzZWxmLmdldF9zcWwoZGF0YSwgbGlkKQorICAgICAgICAgICAg IyBNb3N0IHByb2JhYmx5IHRoaXMgaXMgZHVlIHRvIGVycm9yCisgICAgICAg ICAgICBpZiBub3QgaXNpbnN0YW5jZShzcWwsIChzdHIsIHVuaWNvZGUpKToK KyAgICAgICAgICAgICAgICByZXR1cm4gc3FsCiAgICAgICAgICAgICBpZiBz cWwgPT0gJyc6CiAgICAgICAgICAgICAgICAgc3FsID0gIi0tbW9kaWZpZWQg U1FMIgogCkBAIC02NDQsNiArNjUyLDExIEBAIGNsYXNzIExhbmd1YWdlVmll dyhQR0NoaWxkTm9kZVZpZXcpOgogICAgICAgICBpZiBub3Qgc3RhdHVzOgog ICAgICAgICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJvcihlcnJv cm1zZz1yZXMpCiAKKyAgICAgICAgaWYgbGVuKHJlc1sncm93cyddKSA9PSAw OgorICAgICAgICAgICAgcmV0dXJuIGdvbmUoCisgICAgICAgICAgICAgICAg Z2V0dGV4dCgiQ291bGQgbm90IGZpbmQgdGhlIGxhbmd1YWdlIGluZm9ybWF0 aW9uLiIpCisgICAgICAgICAgICApCisKICAgICAgICAgIyBNYWtpbmcgY29w eSBvZiBvdXRwdXQgZm9yIGZ1dHVyZSB1c2UKICAgICAgICAgb2xkX2RhdGEg PSBkaWN0KHJlc1sncm93cyddWzBdKQogCmRpZmYgLS1naXQgYS93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy9jb2xsYXRpb25zL19faW5pdF9fLnB5IGIvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVt YXMvY29sbGF0aW9ucy9fX2luaXRfXy5weQppbmRleCA0OGVjYWRjLi45Y2Ji ZjYyIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9jb2xsYXRpb25zL19f aW5pdF9fLnB5CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2NvbGxhdGlvbnMvX19p bml0X18ucHkKQEAgLTE5LDExICsxOSwxMyBAQCBmcm9tIHBnYWRtaW4uYnJv d3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnNjaGVtYXMu dXRpbHMgXAogICAgIGltcG9ydCBTY2hlbWFDaGlsZE1vZHVsZQogZnJvbSBw Z2FkbWluLmJyb3dzZXIudXRpbHMgaW1wb3J0IFBHQ2hpbGROb2RlVmlldwog ZnJvbSBwZ2FkbWluLnV0aWxzLmFqYXggaW1wb3J0IG1ha2VfanNvbl9yZXNw b25zZSwgaW50ZXJuYWxfc2VydmVyX2Vycm9yLCBcCi0gICAgbWFrZV9yZXNw b25zZSBhcyBhamF4X3Jlc3BvbnNlCisgICAgbWFrZV9yZXNwb25zZSBhcyBh amF4X3Jlc3BvbnNlLCBnb25lCiBmcm9tIHBnYWRtaW4udXRpbHMuZHJpdmVy IGltcG9ydCBnZXRfZHJpdmVyCi1mcm9tIHBnYWRtaW4udXRpbHMuYWpheCBp bXBvcnQgZ29uZQotCiBmcm9tIGNvbmZpZyBpbXBvcnQgUEdfREVGQVVMVF9E UklWRVIKK2Zyb20gcGdhZG1pbi51dGlscyBpbXBvcnQgSVNfUFkyCisjIElm IHdlIGFyZSBpbiBQeXRob24zCitpZiBub3QgSVNfUFkyOgorICAgIHVuaWNv ZGUgPSBzdHIKIAogCiBjbGFzcyBDb2xsYXRpb25Nb2R1bGUoU2NoZW1hQ2hp bGRNb2R1bGUpOgpAQCAtMzE1LDcgKzMxNyw5IEBAIGNsYXNzIENvbGxhdGlv blZpZXcoUEdDaGlsZE5vZGVWaWV3KToKICAgICAgICAgICAgIHJldHVybiBp bnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9cmVzKQogCiAgICAgICAg IGlmIGxlbihyZXNbJ3Jvd3MnXSkgPT0gMDoKLSAgICAgICAgICAgIHJldHVy biBnb25lKGdldHRleHQoIiIiQ291bGQgbm90IGZpbmQgdGhlIGNvbGxhdGlv biBvYmplY3QgaW4gdGhlIGRhdGFiYXNlLiBJdCBtYXkgaGF2ZSBiZWVuIHJl bW92ZWQgYnkgYW5vdGhlciB1c2VyLiIiIikpCisgICAgICAgICAgICByZXR1 cm4gZ29uZSgKKyAgICAgICAgICAgICAgICBnZXR0ZXh0KCJDb3VsZCBub3Qg ZmluZCB0aGUgY29sbGF0aW9uIG9iamVjdCBpbiB0aGUgZGF0YWJhc2UuIikK KyAgICAgICAgICAgICkKIAogICAgICAgICByZXR1cm4gYWpheF9yZXNwb25z ZSgKICAgICAgICAgICAgIHJlc3BvbnNlPXJlc1sncm93cyddWzBdLApAQCAt NTM1LDYgKzUzOSw5IEBAIGNsYXNzIENvbGxhdGlvblZpZXcoUEdDaGlsZE5v ZGVWaWV3KToKICAgICAgICAgICAgIHJlcXVlc3QuZGF0YSwgZW5jb2Rpbmc9 J3V0Zi04JwogICAgICAgICApCiAgICAgICAgIFNRTCwgbmFtZSA9IHNlbGYu Z2V0X3NxbChnaWQsIHNpZCwgZGF0YSwgc2NpZCwgY29pZCkKKyAgICAgICAg IyBNb3N0IHByb2JhYmx5IHRoaXMgaXMgZHVlIHRvIGVycm9yCisgICAgICAg IGlmIG5vdCBpc2luc3RhbmNlKFNRTCwgKHN0ciwgdW5pY29kZSkpOgorICAg ICAgICAgICAgcmV0dXJuIFNRTAogICAgICAgICBTUUwgPSBTUUwuc3RyaXAo J1xuJykuc3RyaXAoJyAnKQogICAgICAgICBzdGF0dXMsIHJlcyA9IHNlbGYu Y29ubi5leGVjdXRlX3NjYWxhcihTUUwpCiAKQEAgLTU4MSw2ICs1ODgsOSBA QCBjbGFzcyBDb2xsYXRpb25WaWV3KFBHQ2hpbGROb2RlVmlldyk6CiAKICAg ICAgICAgdHJ5OgogICAgICAgICAgICAgU1FMLCBuYW1lID0gc2VsZi5nZXRf c3FsKGdpZCwgc2lkLCBkYXRhLCBzY2lkLCBjb2lkKQorICAgICAgICAgICAg IyBNb3N0IHByb2JhYmx5IHRoaXMgaXMgZHVlIHRvIGVycm9yCisgICAgICAg ICAgICBpZiBub3QgaXNpbnN0YW5jZShTUUwsIChzdHIsIHVuaWNvZGUpKToK KyAgICAgICAgICAgICAgICByZXR1cm4gU1FMCiAgICAgICAgICAgICBpZiBT UUwgPT0gJyc6CiAgICAgICAgICAgICAgICAgU1FMID0gIi0tbW9kaWZpZWQg U1FMIgogCkBAIC02MDIsNiArNjEyLDExIEBAIGNsYXNzIENvbGxhdGlvblZp ZXcoUEdDaGlsZE5vZGVWaWV3KToKICAgICAgICAgICAgIHN0YXR1cywgcmVz ID0gc2VsZi5jb25uLmV4ZWN1dGVfZGljdChTUUwpCiAgICAgICAgICAgICBp ZiBub3Qgc3RhdHVzOgogICAgICAgICAgICAgICAgIHJldHVybiBpbnRlcm5h bF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9cmVzKQorICAgICAgICAgICAgaWYg bGVuKHJlc1sncm93cyddKSA9PSAwOgorICAgICAgICAgICAgICAgIHJldHVy biBnb25lKAorICAgICAgICAgICAgICAgICAgICBnZXR0ZXh0KCJDb3VsZCBu b3QgZmluZCB0aGUgY29sbGF0aW9uIG9iamVjdCBpbiB0aGUgZGF0YWJhc2Uu IikKKyAgICAgICAgICAgICAgICApCisKICAgICAgICAgICAgIG9sZF9kYXRh ID0gcmVzWydyb3dzJ11bMF0KICAgICAgICAgICAgIFNRTCA9IHJlbmRlcl90 ZW1wbGF0ZSgKICAgICAgICAgICAgICAgICAiLyIuam9pbihbc2VsZi50ZW1w bGF0ZV9wYXRoLCAndXBkYXRlLnNxbCddKSwKQEAgLTY0Myw2ICs2NTgsMTAg QEAgY2xhc3MgQ29sbGF0aW9uVmlldyhQR0NoaWxkTm9kZVZpZXcpOgogICAg ICAgICBzdGF0dXMsIHJlcyA9IHNlbGYuY29ubi5leGVjdXRlX2RpY3QoU1FM KQogICAgICAgICBpZiBub3Qgc3RhdHVzOgogICAgICAgICAgICAgcmV0dXJu IGludGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1zZz1yZXMpCisgICAgICAg IGlmIGxlbihyZXNbJ3Jvd3MnXSkgPT0gMDoKKyAgICAgICAgICAgIHJldHVy biBnb25lKAorICAgICAgICAgICAgICAgIGdldHRleHQoIkNvdWxkIG5vdCBm aW5kIHRoZSBjb2xsYXRpb24gb2JqZWN0IGluIHRoZSBkYXRhYmFzZS4iKQor ICAgICAgICAgICAgKQogCiAgICAgICAgIGRhdGEgPSByZXNbJ3Jvd3MnXVsw XQogCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9kb21haW5zL19faW5p dF9fLnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZG9tYWlucy9fX2luaXRfXy5weQpp bmRleCAxODI3NjQ0Li5jZWNkY2Q5IDEwMDY0NAotLS0gYS93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2No ZW1hcy9kb21haW5zL19faW5pdF9fLnB5CisrKyBiL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFz L2RvbWFpbnMvX19pbml0X18ucHkKQEAgLTIzLDggKzIzLDExIEBAIGZyb20g cGdhZG1pbi5icm93c2VyLnV0aWxzIGltcG9ydCBQR0NoaWxkTm9kZVZpZXcK IGZyb20gcGdhZG1pbi51dGlscy5hamF4IGltcG9ydCBtYWtlX2pzb25fcmVz cG9uc2UsIGludGVybmFsX3NlcnZlcl9lcnJvciwgXAogICAgIG1ha2VfcmVz cG9uc2UgYXMgYWpheF9yZXNwb25zZSwgZ29uZQogZnJvbSBwZ2FkbWluLnV0 aWxzLmRyaXZlciBpbXBvcnQgZ2V0X2RyaXZlcgotCiBmcm9tIGNvbmZpZyBp bXBvcnQgUEdfREVGQVVMVF9EUklWRVIKK2Zyb20gcGdhZG1pbi51dGlscyBp bXBvcnQgSVNfUFkyCisjIElmIHdlIGFyZSBpbiBQeXRob24zCitpZiBub3Qg SVNfUFkyOgorICAgIHVuaWNvZGUgPSBzdHIKIAogCiBjbGFzcyBEb21haW5N b2R1bGUoU2NoZW1hQ2hpbGRNb2R1bGUpOgpAQCAtNTI4LDYgKzUzMSw5IEBA IEFORCByZWxraW5kICE9ICdjJykpIiIiCiAKICAgICAgICAgZGF0YSA9IHNl bGYucmVxdWVzdAogICAgICAgICBTUUwsIG5hbWUgPSBzZWxmLmdldF9zcWwo Z2lkLCBzaWQsIGRhdGEsIHNjaWQpCisgICAgICAgICMgTW9zdCBwcm9iYWJs eSB0aGlzIGlzIGR1ZSB0byBlcnJvcgorICAgICAgICBpZiBub3QgaXNpbnN0 YW5jZShTUUwsIChzdHIsIHVuaWNvZGUpKToKKyAgICAgICAgICAgIHJldHVy biBTUUwKIAogICAgICAgICBzdGF0dXMsIHJlcyA9IHNlbGYuY29ubi5leGVj dXRlX3NjYWxhcihTUUwpCiAgICAgICAgIGlmIG5vdCBzdGF0dXM6CkBAIC02 MzUsMjggKzY0MSwzMCBAQCBBTkQgcmVsa2luZCAhPSAnYycpKSIiIgogICAg ICAgICAiIiIKIAogICAgICAgICBTUUwsIG5hbWUgPSBzZWxmLmdldF9zcWwo Z2lkLCBzaWQsIHNlbGYucmVxdWVzdCwgc2NpZCwgZG9pZCkKKyAgICAgICAg IyBNb3N0IHByb2JhYmx5IHRoaXMgaXMgZHVlIHRvIGVycm9yCisgICAgICAg IGlmIG5vdCBpc2luc3RhbmNlKFNRTCwgKHN0ciwgdW5pY29kZSkpOgorICAg ICAgICAgICAgcmV0dXJuIFNRTAogCi0gICAgICAgIGlmIFNRTDoKLSAgICAg ICAgICAgIHN0YXR1cywgcmVzID0gc2VsZi5jb25uLmV4ZWN1dGVfc2NhbGFy KFNRTCkKLSAgICAgICAgICAgIGlmIG5vdCBzdGF0dXM6Ci0gICAgICAgICAg ICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1zZz1y ZXMpCisgICAgICAgIHN0YXR1cywgcmVzID0gc2VsZi5jb25uLmV4ZWN1dGVf c2NhbGFyKFNRTCkKKyAgICAgICAgaWYgbm90IHN0YXR1czoKKyAgICAgICAg ICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9cmVz KQogCi0gICAgICAgICAgICAjIEdldCBTY2hlbWEgSWQKLSAgICAgICAgICAg IFNRTCA9IHJlbmRlcl90ZW1wbGF0ZSgiLyIuam9pbihbc2VsZi50ZW1wbGF0 ZV9wYXRoLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAnZ2V0X29pZC5zcWwnXSksCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgZG9pZD1kb2lkKQotICAgICAgICAgICAgc3RhdHVz LCBzY2lkID0gc2VsZi5jb25uLmV4ZWN1dGVfc2NhbGFyKFNRTCkKLSAgICAg ICAgICAgIGlmIG5vdCBzdGF0dXM6Ci0gICAgICAgICAgICAgICAgcmV0dXJu IGludGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1zZz1yZXMpCisgICAgICAg ICMgR2V0IFNjaGVtYSBJZAorICAgICAgICBTUUwgPSByZW5kZXJfdGVtcGxh dGUoIi8iLmpvaW4oW3NlbGYudGVtcGxhdGVfcGF0aCwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZ2V0X29pZC5zcWwnXSks CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvaWQ9ZG9pZCkK KyAgICAgICAgc3RhdHVzLCBzY2lkID0gc2VsZi5jb25uLmV4ZWN1dGVfc2Nh bGFyKFNRTCkKKyAgICAgICAgaWYgbm90IHN0YXR1czoKKyAgICAgICAgICAg IHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9cmVzKQog Ci0gICAgICAgICAgICByZXR1cm4ganNvbmlmeSgKLSAgICAgICAgICAgICAg ICBub2RlPXNlbGYuYmx1ZXByaW50LmdlbmVyYXRlX2Jyb3dzZXJfbm9kZSgK LSAgICAgICAgICAgICAgICAgICAgZG9pZCwKLSAgICAgICAgICAgICAgICAg ICAgc2NpZCwKLSAgICAgICAgICAgICAgICAgICAgbmFtZSwKLSAgICAgICAg ICAgICAgICAgICAgaWNvbj0iaWNvbi0lcyIgJSBzZWxmLm5vZGVfdHlwZQot ICAgICAgICAgICAgICAgICkKKyAgICAgICAgcmV0dXJuIGpzb25pZnkoCisg ICAgICAgICAgICBub2RlPXNlbGYuYmx1ZXByaW50LmdlbmVyYXRlX2Jyb3dz ZXJfbm9kZSgKKyAgICAgICAgICAgICAgICBkb2lkLAorICAgICAgICAgICAg ICAgIHNjaWQsCisgICAgICAgICAgICAgICAgbmFtZSwKKyAgICAgICAgICAg ICAgICBpY29uPSJpY29uLSVzIiAlIHNlbGYubm9kZV90eXBlCiAgICAgICAg ICAgICApCisgICAgICAgICkKIAogICAgIEBjaGVja19wcmVjb25kaXRpb24K ICAgICBkZWYgc3FsKHNlbGYsIGdpZCwgc2lkLCBkaWQsIHNjaWQsIGRvaWQ9 Tm9uZSk6CkBAIC02NzYsNyArNjg0LDEyIEBAIEFORCByZWxraW5kICE9ICdj JykpIiIiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY2lkPXNj aWQsIGRvaWQ9ZG9pZCkKICAgICAgICAgc3RhdHVzLCByZXMgPSBzZWxmLmNv bm4uZXhlY3V0ZV9kaWN0KFNRTCkKICAgICAgICAgaWYgbm90IHN0YXR1czoK LSAgICAgICAgICAgIHJldHVybiBGYWxzZSwgaW50ZXJuYWxfc2VydmVyX2Vy cm9yKGVycm9ybXNnPXJlcykKKyAgICAgICAgICAgIHJldHVybiBpbnRlcm5h bF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9cmVzKQorICAgICAgICBpZiBsZW4o cmVzWydyb3dzJ10pID09IDA6CisgICAgICAgICAgICAgICAgcmV0dXJuIGdv bmUoCisgICAgICAgICAgICAgICAgICAgIGdldHRleHQoIkNvdWxkIG5vdCBm aW5kIHRoZSBzcGVjaWZpZWQgZG9tYWluLiIpCisgICAgICAgICAgICAgICAg KQorCiAgICAgICAgIGRhdGEgPSByZXNbJ3Jvd3MnXVswXQogCiAgICAgICAg ICMgR2V0IFR5cGUgTGVuZ3RoIGFuZCBQcmVjaXNpb24KQEAgLTczMyw2ICs3 NDYsOSBAQCBBTkQgcmVsa2luZCAhPSAnYycpKSIiIgogCiAgICAgICAgIHRy eToKICAgICAgICAgICAgIFNRTCwgbmFtZSA9IHNlbGYuZ2V0X3NxbChnaWQs IHNpZCwgc2VsZi5yZXF1ZXN0LCBzY2lkLCBkb2lkKQorICAgICAgICAgICAg IyBNb3N0IHByb2JhYmx5IHRoaXMgaXMgZHVlIHRvIGVycm9yCisgICAgICAg ICAgICBpZiBub3QgaXNpbnN0YW5jZShTUUwsIChzdHIsIHVuaWNvZGUpKToK KyAgICAgICAgICAgICAgICByZXR1cm4gU1FMCiAgICAgICAgICAgICBpZiBT UUwgPT0gJyc6CiAgICAgICAgICAgICAgICAgU1FMID0gIi0tbW9kaWZpZWQg U1FMIgogCkBAIC03NjMsNiArNzc5LDEwIEBAIEFORCByZWxraW5kICE9ICdj JykpIiIiCiAKICAgICAgICAgICAgIGlmIG5vdCBzdGF0dXM6CiAgICAgICAg ICAgICAgICAgcmV0dXJuIEZhbHNlLCBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3Io ZXJyb3Jtc2c9cmVzKQorICAgICAgICAgICAgaWYgbGVuKHJlc1sncm93cydd KSA9PSAwOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4gZ29uZSgKKyAg ICAgICAgICAgICAgICAgICAgICAgIGdldHRleHQoIkNvdWxkIG5vdCBmaW5k IHRoZSBzcGVjaWZpZWQgZG9tYWluLiIpCisgICAgICAgICAgICAgICAgICAg ICkKIAogICAgICAgICAgICAgb2xkX2RhdGEgPSByZXNbJ3Jvd3MnXVswXQog CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91 cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9kb21haW5zL2RvbWFpbl9j b25zdHJhaW50cy9fX2luaXRfXy5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIv c2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2RvbWFp bnMvZG9tYWluX2NvbnN0cmFpbnRzL19faW5pdF9fLnB5CmluZGV4IGI2MTJj YmUuLmU2YzI2ZjQgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIv c2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2RvbWFp bnMvZG9tYWluX2NvbnN0cmFpbnRzL19faW5pdF9fLnB5CisrKyBiL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy9zY2hlbWFzL2RvbWFpbnMvZG9tYWluX2NvbnN0cmFpbnRzL19faW5pdF9f LnB5CkBAIC0xOSwxMCArMTksOCBAQCBmcm9tIGZsYXNrX2JhYmVsIGltcG9y dCBnZXR0ZXh0CiBmcm9tIHBnYWRtaW4uYnJvd3Nlci5jb2xsZWN0aW9uIGlt cG9ydCBDb2xsZWN0aW9uTm9kZU1vZHVsZQogZnJvbSBwZ2FkbWluLmJyb3dz ZXIudXRpbHMgaW1wb3J0IFBHQ2hpbGROb2RlVmlldwogZnJvbSBwZ2FkbWlu LnV0aWxzLmFqYXggaW1wb3J0IG1ha2VfanNvbl9yZXNwb25zZSwgaW50ZXJu YWxfc2VydmVyX2Vycm9yLCBcCi0gICAgbWFrZV9yZXNwb25zZSBhcyBhamF4 X3Jlc3BvbnNlCisgICAgbWFrZV9yZXNwb25zZSBhcyBhamF4X3Jlc3BvbnNl LCBnb25lCiBmcm9tIHBnYWRtaW4udXRpbHMuZHJpdmVyIGltcG9ydCBnZXRf ZHJpdmVyCi1mcm9tIHBnYWRtaW4udXRpbHMuYWpheCBpbXBvcnQgZ29uZQot CiBmcm9tIGNvbmZpZyBpbXBvcnQgUEdfREVGQVVMVF9EUklWRVIKIAogCkBA IC0zNjYsNyArMzY0LDkgQEAgY2xhc3MgRG9tYWluQ29uc3RyYWludFZpZXco UEdDaGlsZE5vZGVWaWV3KToKICAgICAgICAgICAgICAgICBzdGF0dXM9MjAw CiAgICAgICAgICAgICApCiAKLSAgICAgICAgcmV0dXJuIGdvbmUoZ2V0dGV4 dCgiQ291bGQgbm90IGZpbmQgdGhlIHNwZWNpZmllZCBkb21haW4gY29uc3Ry YWludC4iKSkKKyAgICAgICAgcmV0dXJuIGdvbmUoCisgICAgICAgICAgICBn ZXR0ZXh0KCJDb3VsZCBub3QgZmluZCB0aGUgc3BlY2lmaWVkIGRvbWFpbiBj b25zdHJhaW50LiIpCisgICAgICAgICkKIAogICAgIEBjaGVja19wcmVjb25k aXRpb24KICAgICBkZWYgcHJvcGVydGllcyhzZWxmLCBnaWQsIHNpZCwgZGlk LCBzY2lkLCBkb2lkLCBjb2lkKToKQEAgLTQyMSw3ICs0MjEsNyBAQCBjbGFz cyBEb21haW5Db25zdHJhaW50VmlldyhQR0NoaWxkTm9kZVZpZXcpOgogICAg ICAgICB0cnk6CiAgICAgICAgICAgICBzdGF0dXMsIFNRTCA9IHNlbGYuZ2V0 X3NxbChnaWQsIHNpZCwgZGF0YSwgc2NpZCwgZG9pZCkKICAgICAgICAgICAg IGlmIG5vdCBzdGF0dXM6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIGludGVy bmFsX3NlcnZlcl9lcnJvcihlcnJvcm1zZz1TUUwpCisgICAgICAgICAgICAg ICAgcmV0dXJuIFNRTAogCiAgICAgICAgICAgICBzdGF0dXMsIHJlcyA9IHNl bGYuY29ubi5leGVjdXRlX3NjYWxhcihTUUwpCiAKQEAgLTUyNyw2ICs1Mjcs OCBAQCBjbGFzcyBEb21haW5Db25zdHJhaW50VmlldyhQR0NoaWxkTm9kZVZp ZXcpOgogICAgICAgICAiIiIKICAgICAgICAgZGF0YSA9IHNlbGYucmVxdWVz dAogICAgICAgICBzdGF0dXMsIFNRTCA9IHNlbGYuZ2V0X3NxbChnaWQsIHNp ZCwgZGF0YSwgc2NpZCwgZG9pZCwgY29pZCkKKyAgICAgICAgaWYgbm90IHN0 YXR1czoKKyAgICAgICAgICAgIHJldHVybiBTUUwKIAogICAgICAgICB0cnk6 CiAgICAgICAgICAgICBpZiBTUUwgYW5kIHN0YXR1czoKQEAgLTU5NCw2ICs1 OTYsMTEgQEAgY2xhc3MgRG9tYWluQ29uc3RyYWludFZpZXcoUEdDaGlsZE5v ZGVWaWV3KToKICAgICAgICAgc3RhdHVzLCByZXMgPSBzZWxmLmNvbm4uZXhl Y3V0ZV9kaWN0KFNRTCkKICAgICAgICAgaWYgbm90IHN0YXR1czoKICAgICAg ICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9 cmVzKQorICAgICAgICBpZiBsZW4ocmVzWydyb3dzJ10pID09IDA6CisgICAg ICAgICAgICByZXR1cm4gZ29uZShnZXR0ZXh0KAorICAgICAgICAgICAgICAg ICJDb3VsZCBub3QgZmluZCB0aGUgc3BlY2lmaWVkIGRvbWFpbiBjb25zdHJh aW50LiIKKyAgICAgICAgICAgICAgICApCisgICAgICAgICAgICApCiAKICAg ICAgICAgZGF0YSA9IHJlc1sncm93cyddWzBdCiAKQEAgLTY2MSw2ICs2Njgs MTEgQEAgY2xhc3MgRG9tYWluQ29uc3RyYWludFZpZXcoUEdDaGlsZE5vZGVW aWV3KToKIAogICAgICAgICAgICAgICAgIGlmIG5vdCBzdGF0dXM6CiAgICAg ICAgICAgICAgICAgICAgIHJldHVybiBGYWxzZSwgaW50ZXJuYWxfc2VydmVy X2Vycm9yKGVycm9ybXNnPXJlcykKKyAgICAgICAgICAgICAgICBpZiBsZW4o cmVzWydyb3dzJ10pID09IDA6CisgICAgICAgICAgICAgICAgICAgIHJldHVy biBGYWxzZSwgZ29uZShnZXR0ZXh0KAorICAgICAgICAgICAgICAgICAgICAg ICAgIkNvdWxkIG5vdCBmaW5kIHRoZSBzcGVjaWZpZWQgZG9tYWluIGNvbnN0 cmFpbnQuIgorICAgICAgICAgICAgICAgICAgICAgICAgKQorICAgICAgICAg ICAgICAgICAgICApCiAKICAgICAgICAgICAgICAgICBvbGRfZGF0YSA9IHJl c1sncm93cyddWzBdCiAKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Zv cmVpZ25fdGFibGVzL19faW5pdF9fLnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZm9y ZWlnbl90YWJsZXMvX19pbml0X18ucHkKaW5kZXggNjBhMjFkNy4uMTU0NTVl OCAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZm9yZWlnbl90YWJsZXMv X19pbml0X18ucHkKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZm9yZWlnbl90YWJs ZXMvX19pbml0X18ucHkKQEAgLTI4LDggKzI4LDExIEBAIGZyb20gcGdhZG1p bi5icm93c2VyLnV0aWxzIGltcG9ydCBQR0NoaWxkTm9kZVZpZXcKIGZyb20g cGdhZG1pbi51dGlscy5hamF4IGltcG9ydCBtYWtlX2pzb25fcmVzcG9uc2Us IGludGVybmFsX3NlcnZlcl9lcnJvciwgXAogICAgIG1ha2VfcmVzcG9uc2Ug YXMgYWpheF9yZXNwb25zZSwgZ29uZQogZnJvbSBwZ2FkbWluLnV0aWxzLmRy aXZlciBpbXBvcnQgZ2V0X2RyaXZlcgotCiBmcm9tIGNvbmZpZyBpbXBvcnQg UEdfREVGQVVMVF9EUklWRVIKK2Zyb20gcGdhZG1pbi51dGlscyBpbXBvcnQg SVNfUFkyCisjIElmIHdlIGFyZSBpbiBQeXRob24zCitpZiBub3QgSVNfUFky OgorICAgIHVuaWNvZGUgPSBzdHIKIAogCiBjbGFzcyBGb3JlaWduVGFibGVN b2R1bGUoU2NoZW1hQ2hpbGRNb2R1bGUpOgpAQCAtNDQ5LDEzICs0NTIsMTAg QEAgY2xhc3MgRm9yZWlnblRhYmxlVmlldyhQR0NoaWxkTm9kZVZpZXcsIERh dGFUeXBlUmVhZGVyKToKICAgICAgICAgICAgIGZvaWQ6IEZvcmVpZ24gVGFi bGUgSWQKICAgICAgICAgIiIiCiAgICAgICAgIGRhdGEgPSBzZWxmLl9mZXRj aF9wcm9wZXJ0aWVzKGdpZCwgc2lkLCBkaWQsIHNjaWQsIGZvaWQpCi0KLSAg ICAgICAgaWYgbm90IGRhdGE6Ci0gICAgICAgICAgICByZXR1cm4gZ29uZShn ZXR0ZXh0KCIiIgotQ291bGQgbm90IGZpbmQgdGhlIGZvcmVpZ24gdGFibGUg aW4gdGhlIGRhdGFiYXNlLgotSXQgbWF5IGhhdmUgYmVlbiByZW1vdmVkIGJ5 IGFub3RoZXIgdXNlciBvcgotc2hpZnRlZCB0byB0aGUgYW5vdGhlciBzY2hl bWEuCi0iIiIpKQorICAgICAgICBpZiBkYXRhID09IEZhbHNlOgorICAgICAg ICAgICAgcmV0dXJuIGdvbmUoCisgICAgICAgICAgICAgICAgZ2V0dGV4dCgi Q291bGQgbm90IGZpbmQgdGhlIGZvcmVpZ24gdGFibGUgb24gdGhlIHNlcnZl ci4iKQorICAgICAgICAgICAgKQogCiAgICAgICAgIHJldHVybiBhamF4X3Jl c3BvbnNlKAogICAgICAgICAgICAgcmVzcG9uc2U9ZGF0YSwKQEAgLTY2Miw2 ICs2NjIsMTAgQEAgc2hpZnRlZCB0byB0aGUgYW5vdGhlciBzY2hlbWEuCiAg ICAgICAgIHRyeToKICAgICAgICAgICAgICMgR2V0IFNRTCB0byBjcmVhdGUg Rm9yZWlnbiBUYWJsZQogICAgICAgICAgICAgU1FMLCBuYW1lID0gc2VsZi5n ZXRfc3FsKGdpZCwgc2lkLCBkaWQsIHNjaWQsIHNlbGYucmVxdWVzdCkKKyAg ICAgICAgICAgICMgTW9zdCBwcm9iYWJseSB0aGlzIGlzIGR1ZSB0byBlcnJv cgorICAgICAgICAgICAgaWYgbm90IGlzaW5zdGFuY2UoU1FMLCAoc3RyLCB1 bmljb2RlKSk6CisgICAgICAgICAgICAgICAgcmV0dXJuIFNRTAorCiAgICAg ICAgICAgICBzdGF0dXMsIHJlcyA9IHNlbGYuY29ubi5leGVjdXRlX3NjYWxh cihTUUwpCiAgICAgICAgICAgICBpZiBub3Qgc3RhdHVzOgogICAgICAgICAg ICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9 cmVzKQpAQCAtNzcxLDYgKzc3NSwxMCBAQCBzaGlmdGVkIHRvIHRoZSBhbm90 aGVyIHNjaGVtYS4KIAogICAgICAgICB0cnk6CiAgICAgICAgICAgICBTUUws IG5hbWUgPSBzZWxmLmdldF9zcWwoZ2lkLCBzaWQsIGRpZCwgc2NpZCwgc2Vs Zi5yZXF1ZXN0LCBmb2lkKQorICAgICAgICAgICAgIyBNb3N0IHByb2JhYmx5 IHRoaXMgaXMgZHVlIHRvIGVycm9yCisgICAgICAgICAgICBpZiBub3QgaXNp bnN0YW5jZShTUUwsIChzdHIsIHVuaWNvZGUpKToKKyAgICAgICAgICAgICAg ICByZXR1cm4gU1FMCisKICAgICAgICAgICAgIFNRTCA9IFNRTC5zdHJpcCgn XG4nKS5zdHJpcCgnICcpCiAgICAgICAgICAgICBzdGF0dXMsIHJlcyA9IHNl bGYuY29ubi5leGVjdXRlX3NjYWxhcihTUUwpCiAgICAgICAgICAgICBpZiBu b3Qgc3RhdHVzOgpAQCAtODA5LDYgKzgxNywxMCBAQCBzaGlmdGVkIHRvIHRo ZSBhbm90aGVyIHNjaGVtYS4KICAgICAgICAgICAgIGZvaWQ6IEZvcmVpZ24g VGFibGUgSWQKICAgICAgICAgIiIiCiAgICAgICAgIGRhdGEgPSBzZWxmLl9m ZXRjaF9wcm9wZXJ0aWVzKGdpZCwgc2lkLCBkaWQsIHNjaWQsIGZvaWQsIGlu aGVyaXRzPVRydWUpCisgICAgICAgIGlmIGRhdGEgPT0gRmFsc2U6CisgICAg ICAgICAgICByZXR1cm4gZ29uZSgKKyAgICAgICAgICAgICAgICBnZXR0ZXh0 KCJDb3VsZCBub3QgZmluZCB0aGUgZm9yZWlnbiB0YWJsZSBvbiB0aGUgc2Vy dmVyLiIpCisgICAgICAgICAgICApCiAKICAgICAgICAgY29sX2RhdGEgPSBb XQogICAgICAgICBmb3IgYyBpbiBkYXRhWydjb2x1bW5zJ106CkBAIC04NTAs NiArODYyLDEwIEBAIHNoaWZ0ZWQgdG8gdGhlIGFub3RoZXIgc2NoZW1hLgog ICAgICAgICAiIiIKICAgICAgICAgdHJ5OgogICAgICAgICAgICAgU1FMLCBu YW1lID0gc2VsZi5nZXRfc3FsKGdpZCwgc2lkLCBkaWQsIHNjaWQsIHNlbGYu cmVxdWVzdCwgZm9pZCkKKyAgICAgICAgICAgICMgTW9zdCBwcm9iYWJseSB0 aGlzIGlzIGR1ZSB0byBlcnJvcgorICAgICAgICAgICAgaWYgbm90IGlzaW5z dGFuY2UoU1FMLCAoc3RyLCB1bmljb2RlKSk6CisgICAgICAgICAgICAgICAg cmV0dXJuIFNRTAorCiAgICAgICAgICAgICBpZiBTUUwgPT0gJyc6CiAgICAg ICAgICAgICAgICAgU1FMID0gIi0tbW9kaWZpZWQgU1FMIgogCkBAIC04NzQs MTAgKzg5MCwxMCBAQCBzaGlmdGVkIHRvIHRoZSBhbm90aGVyIHNjaGVtYS4K ICAgICAgICAgaWYgZm9pZCBpcyBub3QgTm9uZToKICAgICAgICAgICAgIG9s ZF9kYXRhID0gc2VsZi5fZmV0Y2hfcHJvcGVydGllcyhnaWQsIHNpZCwgZGlk LCBzY2lkLCBmb2lkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGluaGVyaXRzPVRydWUpCi0KLSAgICAgICAgICAg IGlmIG5vdCBvbGRfZGF0YToKLSAgICAgICAgICAgICAgICByZXR1cm4gZ29u ZShnZXR0ZXh0KCJDb3VsZCBub3QgZmluZCB0aGUgZm9yZWlnbiB0YWJsZSBp biB0aGUgZGF0YWJhc2UuIiArCi0gICAgICAgICAgICAgICAgIiBJdCBtYXkg aGF2ZSBiZWVuIHJlbW92ZWQgYnkgYW5vdGhlciB1c2VyIG9yIHNoaWZ0ZWQg dG8gdGhlIGFub3RoZXIgc2NoZW1hLiIpKQorICAgICAgICAgICAgaWYgb2xk X2RhdGEgPT0gRmFsc2U6CisgICAgICAgICAgICAgICAgcmV0dXJuIGdvbmUo CisgICAgICAgICAgICAgICAgICAgIGdldHRleHQoIkNvdWxkIG5vdCBmaW5k IHRoZSBmb3JlaWduIHRhYmxlIG9uIHRoZSBzZXJ2ZXIuIikKKyAgICAgICAg ICAgICAgICApCiAKICAgICAgICAgICAgICMgUHJlcGFyZSBkaWN0IG9mIGNv bHVtbnMgd2l0aCBrZXkgPSBjb2x1bW4ncyBhdHRudW0KICAgICAgICAgICAg ICMgV2lsbCB1c2UgdGhpcyBpbiB0aGUgdXBkYXRlIHRlbXBsYXRlIHdoZW4g YW55IGNvbHVtbiBpcwpAQCAtMTE3OCw2ICsxMTk0LDEwIEBAIHNoaWZ0ZWQg dG8gdGhlIGFub3RoZXIgc2NoZW1hLgogICAgICAgICAgICAgU0VMRUNUIFNj cmlwdCBzcWwgZm9yIHRoZSBvYmplY3QKICAgICAgICAgIiIiCiAgICAgICAg IGRhdGEgPSBzZWxmLl9mZXRjaF9wcm9wZXJ0aWVzKGdpZCwgc2lkLCBkaWQs IHNjaWQsIGZvaWQpCisgICAgICAgIGlmIGRhdGEgPT0gRmFsc2U6CisgICAg ICAgICAgICByZXR1cm4gZ29uZSgKKyAgICAgICAgICAgICAgICBnZXR0ZXh0 KCJDb3VsZCBub3QgZmluZCB0aGUgZm9yZWlnbiB0YWJsZSBvbiB0aGUgc2Vy dmVyLiIpCisgICAgICAgICAgICApCiAKICAgICAgICAgY29sdW1ucyA9IFtd CiAgICAgICAgIGZvciBjIGluIGRhdGFbJ2NvbHVtbnMnXToKQEAgLTEyMTEs NiArMTIzMSwxMCBAQCBzaGlmdGVkIHRvIHRoZSBhbm90aGVyIHNjaGVtYS4K ICAgICAgICAgICAgIElOU0VSVCBTY3JpcHQgc3FsIGZvciB0aGUgb2JqZWN0 CiAgICAgICAgICIiIgogICAgICAgICBkYXRhID0gc2VsZi5fZmV0Y2hfcHJv cGVydGllcyhnaWQsIHNpZCwgZGlkLCBzY2lkLCBmb2lkKQorICAgICAgICBp ZiBkYXRhID09IEZhbHNlOgorICAgICAgICAgICAgcmV0dXJuIGdvbmUoCisg ICAgICAgICAgICAgICAgZ2V0dGV4dCgiQ291bGQgbm90IGZpbmQgdGhlIGZv cmVpZ24gdGFibGUgb24gdGhlIHNlcnZlci4iKQorICAgICAgICAgICAgKQog CiAgICAgICAgIGNvbHVtbnMgPSBbXQogICAgICAgICB2YWx1ZXMgPSBbXQpA QCAtMTI0OSw2ICsxMjczLDEwIEBAIHNoaWZ0ZWQgdG8gdGhlIGFub3RoZXIg c2NoZW1hLgogICAgICAgICAgICAgVVBEQVRFIFNjcmlwdCBzcWwgZm9yIHRo ZSBvYmplY3QKICAgICAgICAgIiIiCiAgICAgICAgIGRhdGEgPSBzZWxmLl9m ZXRjaF9wcm9wZXJ0aWVzKGdpZCwgc2lkLCBkaWQsIHNjaWQsIGZvaWQpCisg ICAgICAgIGlmIGRhdGEgPT0gRmFsc2U6CisgICAgICAgICAgICByZXR1cm4g Z29uZSgKKyAgICAgICAgICAgICAgICBnZXR0ZXh0KCJDb3VsZCBub3QgZmlu ZCB0aGUgZm9yZWlnbiB0YWJsZSBvbiB0aGUgc2VydmVyLiIpCisgICAgICAg ICAgICApCiAKICAgICAgICAgY29sdW1ucyA9IFtdCiAKQEAgLTEyOTAsNiAr MTMxOCwxMCBAQCBzaGlmdGVkIHRvIHRoZSBhbm90aGVyIHNjaGVtYS4KICAg ICAgICAgICAgIERFTEVURSBTY3JpcHQgc3FsIGZvciB0aGUgb2JqZWN0CiAg ICAgICAgICIiIgogICAgICAgICBkYXRhID0gc2VsZi5fZmV0Y2hfcHJvcGVy dGllcyhnaWQsIHNpZCwgZGlkLCBzY2lkLCBmb2lkKQorICAgICAgICBpZiBk YXRhID09IEZhbHNlOgorICAgICAgICAgICAgcmV0dXJuIGdvbmUoCisgICAg ICAgICAgICAgICAgZ2V0dGV4dCgiQ291bGQgbm90IGZpbmQgdGhlIGZvcmVp Z24gdGFibGUgb24gdGhlIHNlcnZlci4iKQorICAgICAgICAgICAgKQogCiAg ICAgICAgIHNxbCA9IHUiREVMRVRFIEZST00gezB9XG5cdFdIRVJFIDxjb25k aXRpb24+OyIuZm9ybWF0KAogICAgICAgICAgICAgc2VsZi5xdElkZW50KHNl bGYuY29ubiwgZGF0YVsnYmFzZW5zcCddLCBkYXRhWyduYW1lJ10pCmRpZmYg LS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdHNfY29uZmlndXJhdGlvbnMvX19p bml0X18ucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdHNfY29uZmlndXJhdGlvbnMv X19pbml0X18ucHkKaW5kZXggYzQ4MjcwOC4uNjNiYTI2ZCAxMDA2NDQKLS0t IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL3NjaGVtYXMvZnRzX2NvbmZpZ3VyYXRpb25zL19faW5pdF9f LnB5CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z0c19jb25maWd1cmF0aW9ucy9f X2luaXRfXy5weQpAQCAtMjEsOCArMjEsMTEgQEAgZnJvbSBwZ2FkbWluLmJy b3dzZXIudXRpbHMgaW1wb3J0IFBHQ2hpbGROb2RlVmlldwogZnJvbSBwZ2Fk bWluLnV0aWxzLmFqYXggaW1wb3J0IG1ha2VfanNvbl9yZXNwb25zZSwgaW50 ZXJuYWxfc2VydmVyX2Vycm9yLCBcCiAgICAgbWFrZV9yZXNwb25zZSBhcyBh amF4X3Jlc3BvbnNlLCBnb25lCiBmcm9tIHBnYWRtaW4udXRpbHMuZHJpdmVy IGltcG9ydCBnZXRfZHJpdmVyCi0KIGZyb20gY29uZmlnIGltcG9ydCBQR19E RUZBVUxUX0RSSVZFUgorZnJvbSBwZ2FkbWluLnV0aWxzIGltcG9ydCBJU19Q WTIKKyMgSWYgd2UgYXJlIGluIFB5dGhvbjMKK2lmIG5vdCBJU19QWTI6Cisg ICAgdW5pY29kZSA9IHN0cgogCiAKIGNsYXNzIEZ0c0NvbmZpZ3VyYXRpb25N b2R1bGUoU2NoZW1hQ2hpbGRNb2R1bGUpOgpAQCAtNDgxLDYgKzQ4NCw5IEBA IGNsYXNzIEZ0c0NvbmZpZ3VyYXRpb25WaWV3KFBHQ2hpbGROb2RlVmlldyk6 CiAgICAgICAgICkKICAgICAgICAgIyBGZXRjaCBzcWwgcXVlcnkgdG8gdXBk YXRlIGZ0cyBDb25maWd1cmF0aW9uCiAgICAgICAgIHNxbCwgbmFtZSA9IHNl bGYuZ2V0X3NxbChnaWQsIHNpZCwgZGlkLCBzY2lkLCBkYXRhLCBjZmdpZCkK KyAgICAgICAgIyBNb3N0IHByb2JhYmx5IHRoaXMgaXMgZHVlIHRvIGVycm9y CisgICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKHNxbCwgKHN0ciwgdW5pY29k ZSkpOgorICAgICAgICAgICAgcmV0dXJuIHNxbAogICAgICAgICBzcWwgPSBz cWwuc3RyaXAoJ1xuJykuc3RyaXAoJyAnKQogICAgICAgICBzdGF0dXMsIHJl cyA9IHNlbGYuY29ubi5leGVjdXRlX3NjYWxhcihzcWwpCiAgICAgICAgIGlm IG5vdCBzdGF0dXM6CkBAIC01OTcsNiArNjAzLDEwIEBAIGNsYXNzIEZ0c0Nv bmZpZ3VyYXRpb25WaWV3KFBHQ2hpbGROb2RlVmlldyk6CiAKICAgICAgICAg IyBGZXRjaCBzcWwgcXVlcnkgZm9yIG1vZGlmaWVkIGRhdGEKICAgICAgICAg U1FMLCBuYW1lID0gc2VsZi5nZXRfc3FsKGdpZCwgc2lkLCBkaWQsIHNjaWQs IGRhdGEsIGNmZ2lkKQorICAgICAgICAjIE1vc3QgcHJvYmFibHkgdGhpcyBp cyBkdWUgdG8gZXJyb3IKKyAgICAgICAgaWYgbm90IGlzaW5zdGFuY2UoU1FM LCAoc3RyLCB1bmljb2RlKSk6CisgICAgICAgICAgICByZXR1cm4gU1FMCisK ICAgICAgICAgaWYgU1FMID09ICcnOgogICAgICAgICAgICAgU1FMID0gIi0t IE5vIGNoYW5nZSIKIApkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnRz X2RpY3Rpb25hcmllcy9fX2luaXRfXy5weSBiL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z0 c19kaWN0aW9uYXJpZXMvX19pbml0X18ucHkKaW5kZXggODJjZWRlNC4uZjBm NjE5ZSAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnRzX2RpY3Rpb25h cmllcy9fX2luaXRfXy5weQorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdHNfZGlj dGlvbmFyaWVzL19faW5pdF9fLnB5CkBAIC0yMSw4ICsyMSwxMSBAQCBmcm9t IHBnYWRtaW4uYnJvd3Nlci51dGlscyBpbXBvcnQgUEdDaGlsZE5vZGVWaWV3 CiBmcm9tIHBnYWRtaW4udXRpbHMuYWpheCBpbXBvcnQgbWFrZV9qc29uX3Jl c3BvbnNlLCBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IsIFwKICAgICBtYWtlX3Jl c3BvbnNlIGFzIGFqYXhfcmVzcG9uc2UsIGdvbmUKIGZyb20gcGdhZG1pbi51 dGlscy5kcml2ZXIgaW1wb3J0IGdldF9kcml2ZXIKLQogZnJvbSBjb25maWcg aW1wb3J0IFBHX0RFRkFVTFRfRFJJVkVSCitmcm9tIHBnYWRtaW4udXRpbHMg aW1wb3J0IElTX1BZMgorIyBJZiB3ZSBhcmUgaW4gUHl0aG9uMworaWYgbm90 IElTX1BZMjoKKyAgICB1bmljb2RlID0gc3RyCiAKIAogY2xhc3MgRnRzRGlj dGlvbmFyeU1vZHVsZShTY2hlbWFDaGlsZE1vZHVsZSk6CkBAIC00ODEsNiAr NDg0LDEwIEBAIGNsYXNzIEZ0c0RpY3Rpb25hcnlWaWV3KFBHQ2hpbGROb2Rl Vmlldyk6CiAKICAgICAgICAgIyBGZXRjaCBzcWwgcXVlcnkgdG8gdXBkYXRl IGZ0cyBkaWN0aW9uYXJ5CiAgICAgICAgIHNxbCwgbmFtZSA9IHNlbGYuZ2V0 X3NxbChnaWQsIHNpZCwgZGlkLCBzY2lkLCBkYXRhLCBkY2lkKQorICAgICAg ICAjIE1vc3QgcHJvYmFibHkgdGhpcyBpcyBkdWUgdG8gZXJyb3IKKyAgICAg ICAgaWYgbm90IGlzaW5zdGFuY2Uoc3FsLCAoc3RyLCB1bmljb2RlKSk6Cisg ICAgICAgICAgICByZXR1cm4gc3FsCisKICAgICAgICAgc3FsID0gc3FsLnN0 cmlwKCdcbicpLnN0cmlwKCcgJykKICAgICAgICAgc3RhdHVzLCByZXMgPSBz ZWxmLmNvbm4uZXhlY3V0ZV9zY2FsYXIoc3FsKQogICAgICAgICBpZiBub3Qg c3RhdHVzOgpAQCAtNTk0LDYgKzYwMSwxMCBAQCBjbGFzcyBGdHNEaWN0aW9u YXJ5VmlldyhQR0NoaWxkTm9kZVZpZXcpOgogCiAgICAgICAgICMgRmV0Y2gg c3FsIHF1ZXJ5IGZvciBtb2RpZmllZCBkYXRhCiAgICAgICAgIFNRTCwgbmFt ZSA9IHNlbGYuZ2V0X3NxbChnaWQsIHNpZCwgZGlkLCBzY2lkLCBkYXRhLCBk Y2lkKQorICAgICAgICAjIE1vc3QgcHJvYmFibHkgdGhpcyBpcyBkdWUgdG8g ZXJyb3IKKyAgICAgICAgaWYgbm90IGlzaW5zdGFuY2UoU1FMLCAoc3RyLCB1 bmljb2RlKSk6CisgICAgICAgICAgICByZXR1cm4gU1FMCisKICAgICAgICAg aWYgU1FMID09ICcnOgogICAgICAgICAgICAgU1FMID0gIi0tbW9kaWZpZWQg U1FMIgogCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdHNfcGFyc2Vy L19faW5pdF9fLnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnRzX3BhcnNlci9fX2lu aXRfXy5weQppbmRleCBiMTFiZmViLi5mODBiNGExIDEwMDY0NAotLS0gYS93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvc2NoZW1hcy9mdHNfcGFyc2VyL19faW5pdF9fLnB5CisrKyBiL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy9zY2hlbWFzL2Z0c19wYXJzZXIvX19pbml0X18ucHkKQEAgLTIwLDgg KzIwLDExIEBAIGZyb20gcGdhZG1pbi5icm93c2VyLnV0aWxzIGltcG9ydCBQ R0NoaWxkTm9kZVZpZXcKIGZyb20gcGdhZG1pbi51dGlscy5hamF4IGltcG9y dCBtYWtlX2pzb25fcmVzcG9uc2UsIGludGVybmFsX3NlcnZlcl9lcnJvciwg XAogICAgIG1ha2VfcmVzcG9uc2UgYXMgYWpheF9yZXNwb25zZSwgZ29uZQog ZnJvbSBwZ2FkbWluLnV0aWxzLmRyaXZlciBpbXBvcnQgZ2V0X2RyaXZlcgot CiBmcm9tIGNvbmZpZyBpbXBvcnQgUEdfREVGQVVMVF9EUklWRVIKK2Zyb20g cGdhZG1pbi51dGlscyBpbXBvcnQgSVNfUFkyCisjIElmIHdlIGFyZSBpbiBQ eXRob24zCitpZiBub3QgSVNfUFkyOgorICAgIHVuaWNvZGUgPSBzdHIKIAog CiBjbGFzcyBGdHNQYXJzZXJNb2R1bGUoU2NoZW1hQ2hpbGRNb2R1bGUpOgpA QCAtNDAxLDYgKzQwNCwxMCBAQCBjbGFzcyBGdHNQYXJzZXJWaWV3KFBHQ2hp bGROb2RlVmlldyk6CiAgICAgICAgICkKICAgICAgICAgIyBGZXRjaCBzcWwg cXVlcnkgdG8gdXBkYXRlIGZ0cyBwYXJzZXIKICAgICAgICAgc3FsLCBuYW1l ID0gc2VsZi5nZXRfc3FsKGdpZCwgc2lkLCBkaWQsIHNjaWQsIGRhdGEsIHBp ZCkKKyAgICAgICAgIyBNb3N0IHByb2JhYmx5IHRoaXMgaXMgZHVlIHRvIGVy cm9yCisgICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKHNxbCwgKHN0ciwgdW5p Y29kZSkpOgorICAgICAgICAgICAgcmV0dXJuIHNxbAorCiAgICAgICAgIHNx bCA9IHNxbC5zdHJpcCgnXG4nKS5zdHJpcCgnICcpCiAgICAgICAgIHN0YXR1 cywgcmVzID0gc2VsZi5jb25uLmV4ZWN1dGVfc2NhbGFyKHNxbCkKICAgICAg ICAgaWYgbm90IHN0YXR1czoKQEAgLTUxNCw2ICs1MjEsOSBAQCBjbGFzcyBG dHNQYXJzZXJWaWV3KFBHQ2hpbGROb2RlVmlldyk6CiAKICAgICAgICAgIyBG ZXRjaCBzcWwgcXVlcnkgZm9yIG1vZGlmaWVkIGRhdGEKICAgICAgICAgU1FM LCBuYW1lID0gc2VsZi5nZXRfc3FsKGdpZCwgc2lkLCBkaWQsIHNjaWQsIGRh dGEsIHBpZCkKKyAgICAgICAgIyBNb3N0IHByb2JhYmx5IHRoaXMgaXMgZHVl IHRvIGVycm9yCisgICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKFNRTCwgKHN0 ciwgdW5pY29kZSkpOgorICAgICAgICAgICAgcmV0dXJuIFNRTAogICAgICAg ICBpZiBTUUwgPT0gJyc6CiAgICAgICAgICAgICBTUUwgPSAiLS1tb2RpZmll ZCBTUUwiCiAKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z0c190ZW1w bGF0ZXMvX19pbml0X18ucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdHNfdGVtcGxh dGVzL19faW5pdF9fLnB5CmluZGV4IDRhYTljZTQuLmZhNGRmNWQgMTAwNjQ0 Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z0c190ZW1wbGF0ZXMvX19pbml0X18u cHkKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnRzX3RlbXBsYXRlcy9fX2luaXRf Xy5weQpAQCAtMjAsOCArMjAsMTEgQEAgZnJvbSBwZ2FkbWluLmJyb3dzZXIu dXRpbHMgaW1wb3J0IFBHQ2hpbGROb2RlVmlldwogZnJvbSBwZ2FkbWluLnV0 aWxzLmFqYXggaW1wb3J0IG1ha2VfanNvbl9yZXNwb25zZSwgaW50ZXJuYWxf c2VydmVyX2Vycm9yLCBcCiAgICAgbWFrZV9yZXNwb25zZSBhcyBhamF4X3Jl c3BvbnNlLCBnb25lCiBmcm9tIHBnYWRtaW4udXRpbHMuZHJpdmVyIGltcG9y dCBnZXRfZHJpdmVyCi0KIGZyb20gY29uZmlnIGltcG9ydCBQR19ERUZBVUxU X0RSSVZFUgorZnJvbSBwZ2FkbWluLnV0aWxzIGltcG9ydCBJU19QWTIKKyMg SWYgd2UgYXJlIGluIFB5dGhvbjMKK2lmIG5vdCBJU19QWTI6CisgICAgdW5p Y29kZSA9IHN0cgogCiAKIGNsYXNzIEZ0c1RlbXBsYXRlTW9kdWxlKFNjaGVt YUNoaWxkTW9kdWxlKToKQEAgLTI5MSw3ICsyOTQsOSBAQCBjbGFzcyBGdHNU ZW1wbGF0ZVZpZXcoUEdDaGlsZE5vZGVWaWV3KToKICAgICAgICAgICAgIHJl dHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9cmVzKQogCiAg ICAgICAgIGlmIGxlbihyZXNbJ3Jvd3MnXSkgPT0gMDoKLSAgICAgICAgICAg IHJldHVybiBnb25lKGdldHRleHQoIiIiQ291bGQgbm90IGZpbmQgdGhlIEZU UyB0ZW1wbGF0ZSBub2RlIGluIHRoZSBkYXRhYmFzZS4iIiIpKQorICAgICAg ICAgICAgcmV0dXJuIGdvbmUoCisgICAgICAgICAgICAgICAgZ2V0dGV4dCgi Q291bGQgbm90IGZpbmQgdGhlIHJlcXVlc3RlZCBGVFMgdGVtcGxhdGUuIikK KyAgICAgICAgICAgICkKIAogICAgICAgICByZXR1cm4gYWpheF9yZXNwb25z ZSgKICAgICAgICAgICAgIHJlc3BvbnNlPXJlc1sncm93cyddWzBdLApAQCAt Mzg1LDYgKzM5MCw5IEBAIGNsYXNzIEZ0c1RlbXBsYXRlVmlldyhQR0NoaWxk Tm9kZVZpZXcpOgogCiAgICAgICAgICMgRmV0Y2ggc3FsIHF1ZXJ5IHRvIHVw ZGF0ZSBmdHMgdGVtcGxhdGUKICAgICAgICAgc3FsLCBuYW1lID0gc2VsZi5n ZXRfc3FsKGdpZCwgc2lkLCBkaWQsIHNjaWQsIGRhdGEsIHRpZCkKKyAgICAg ICAgIyBNb3N0IHByb2JhYmx5IHRoaXMgaXMgZHVlIHRvIGVycm9yCisgICAg ICAgIGlmIG5vdCBpc2luc3RhbmNlKHNxbCwgKHN0ciwgdW5pY29kZSkpOgor ICAgICAgICAgICAgcmV0dXJuIHNxbAogICAgICAgICBzcWwgPSBzcWwuc3Ry aXAoJ1xuJykuc3RyaXAoJyAnKQogICAgICAgICBzdGF0dXMsIHJlcyA9IHNl bGYuY29ubi5leGVjdXRlX3NjYWxhcihzcWwpCiAgICAgICAgIGlmIG5vdCBz dGF0dXM6CkBAIC00ODMsNiArNDkxLDEwIEBAIGNsYXNzIEZ0c1RlbXBsYXRl VmlldyhQR0NoaWxkTm9kZVZpZXcpOgogICAgICAgICAjIEZldGNoIHNxbCBx dWVyeSBmb3IgbW9kaWZpZWQgZGF0YQogICAgICAgICAjIEZldGNoIHNxbCBx dWVyeSBmb3IgbW9kaWZpZWQgZGF0YQogICAgICAgICBTUUwsIG5hbWUgPSBz ZWxmLmdldF9zcWwoZ2lkLCBzaWQsIGRpZCwgc2NpZCwgZGF0YSwgdGlkKQor ICAgICAgICAjIE1vc3QgcHJvYmFibHkgdGhpcyBpcyBkdWUgdG8gZXJyb3IK KyAgICAgICAgaWYgbm90IGlzaW5zdGFuY2UoU1FMLCAoc3RyLCB1bmljb2Rl KSk6CisgICAgICAgICAgICByZXR1cm4gU1FMCisKICAgICAgICAgaWYgU1FM ID09ICcnOgogICAgICAgICAgICAgU1FMID0gIi0tbW9kaWZpZWQgU1FMIgog CkBAIC01MTIsNiArNTI0LDEwIEBAIGNsYXNzIEZ0c1RlbXBsYXRlVmlldyhQ R0NoaWxkTm9kZVZpZXcpOgogICAgICAgICAgICAgc3RhdHVzLCByZXMgPSBz ZWxmLmNvbm4uZXhlY3V0ZV9kaWN0KHNxbCkKICAgICAgICAgICAgIGlmIG5v dCBzdGF0dXM6CiAgICAgICAgICAgICAgICAgcmV0dXJuIGludGVybmFsX3Nl cnZlcl9lcnJvcihlcnJvcm1zZz1yZXMpCisgICAgICAgICAgICBpZiBsZW4o cmVzWydyb3dzJ10pID09IDA6CisgICAgICAgICAgICAgICAgcmV0dXJuIGdv bmUoCisgICAgICAgICAgICAgICAgICAgIGdldHRleHQoIkNvdWxkIG5vdCBm aW5kIHRoZSByZXF1ZXN0ZWQgRlRTIHRlbXBsYXRlLiIpCisgICAgICAgICAg ICAgICAgKQogCiAgICAgICAgICAgICBvbGRfZGF0YSA9IHJlc1sncm93cydd WzBdCiAKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy9f X2luaXRfXy5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy9fX2luaXRf Xy5weQppbmRleCA0ZDliOWE2Li5lMjkyMTM1IDEwMDY0NAotLS0gYS93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvc2NoZW1hcy9mdW5jdGlvbnMvX19pbml0X18ucHkKKysrIGIvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L3NjaGVtYXMvZnVuY3Rpb25zL19faW5pdF9fLnB5CkBAIC00MzYsOSArNDM2 LDE0IEBAIGNsYXNzIEZ1bmN0aW9uVmlldyhQR0NoaWxkTm9kZVZpZXcsIERh dGFUeXBlUmVhZGVyKToKICAgICAgICAgIiIiCiAKICAgICAgICAgcmVzcF9k YXRhID0gc2VsZi5fZmV0Y2hfcHJvcGVydGllcyhnaWQsIHNpZCwgZGlkLCBz Y2lkLCBmbmlkKQorICAgICAgICAjIE1vc3QgcHJvYmFibHkgdGhpcyBpcyBk dWUgdG8gZXJyb3IKKyAgICAgICAgaWYgbm90IGlzaW5zdGFuY2UocmVzcF9k YXRhLCBkaWN0KToKKyAgICAgICAgICAgIHJldHVybiByZXNwX2RhdGEKIAog ICAgICAgICBpZiBsZW4ocmVzcF9kYXRhKSA9PSAwOgotICAgICAgICAgICAg cmV0dXJuIGdvbmUoZ2V0dGV4dCgiIiJDb3VsZCBub3QgZmluZCB0aGUgZnVu Y3Rpb24gbm9kZSBpbiB0aGUgZGF0YWJhc2UuIiIiKSkKKyAgICAgICAgICAg IHJldHVybiBnb25lKAorICAgICAgICAgICAgICAgIGdldHRleHQoIkNvdWxk IG5vdCBmaW5kIHRoZSBmdW5jdGlvbiBub2RlIGluIHRoZSBkYXRhYmFzZS4i KQorICAgICAgICAgICAgKQogCiAgICAgICAgIHJldHVybiBhamF4X3Jlc3Bv bnNlKAogICAgICAgICAgICAgcmVzcG9uc2U9cmVzcF9kYXRhLApAQCAtODcx LDYgKzg3Niw5IEBAIGNsYXNzIEZ1bmN0aW9uVmlldyhQR0NoaWxkTm9kZVZp ZXcsIERhdGFUeXBlUmVhZGVyKToKICAgICAgICAgICAgICAgICByZXR1cm4g aW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXJlcykKIAogICAgICAg ICAgICAgcmVzcF9kYXRhID0gc2VsZi5fZmV0Y2hfcHJvcGVydGllcyhnaWQs IHNpZCwgZGlkLCBzY2lkLCBmbmlkKQorICAgICAgICAgICAgIyBNb3N0IHBy b2JhYmx5IHRoaXMgaXMgZHVlIHRvIGVycm9yCisgICAgICAgICAgICBpZiBu b3QgaXNpbnN0YW5jZShyZXNwX2RhdGEsIGRpY3QpOgorICAgICAgICAgICAg ICAgIHJldHVybiByZXNwX2RhdGEKIAogICAgICAgICAgICAgaWYgc2VsZi5u b2RlX3R5cGUgPT0gJ3Byb2NlZHVyZSc6CiAgICAgICAgICAgICAgICAgb2Jq X25hbWUgPSByZXNwX2RhdGFbJ25hbWVfd2l0aF9hcmdzJ10KQEAgLTkxNiw2 ICs5MjQsMTAgQEAgY2xhc3MgRnVuY3Rpb25WaWV3KFBHQ2hpbGROb2RlVmll dywgRGF0YVR5cGVSZWFkZXIpOgogICAgICAgICAgICAgZm5pZDogRnVuY3Rp b24gSWQKICAgICAgICAgIiIiCiAgICAgICAgIHJlc3BfZGF0YSA9IHNlbGYu X2ZldGNoX3Byb3BlcnRpZXMoZ2lkLCBzaWQsIGRpZCwgc2NpZCwgZm5pZCkK KyAgICAgICAgIyBNb3N0IHByb2JhYmx5IHRoaXMgaXMgZHVlIHRvIGVycm9y CisgICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKHJlc3BfZGF0YSwgZGljdCk6 CisgICAgICAgICAgICByZXR1cm4gcmVzcF9kYXRhCisKICAgICAgICAgIyBG ZXRjaCB0aGUgZnVuY3Rpb24gZGVmaW5pdGlvbi4KICAgICAgICAgYXJncyA9 IHUnJwogICAgICAgICBhcmdzX3dpdGhvdXRfbmFtZSA9IFtdCkBAIC0xMDg3 LDYgKzEwOTksMTEgQEAgY2xhc3MgRnVuY3Rpb25WaWV3KFBHQ2hpbGROb2Rl VmlldywgRGF0YVR5cGVSZWFkZXIpOgogCiAgICAgICAgICAgICAjIEZldGNo IE9sZCBEYXRhIGZyb20gZGF0YWJhc2UuCiAgICAgICAgICAgICBvbGRfZGF0 YSA9IHNlbGYuX2ZldGNoX3Byb3BlcnRpZXMoZ2lkLCBzaWQsIGRpZCwgc2Np ZCwgZm5pZCkKKyAgICAgICAgICAgICMgTW9zdCBwcm9iYWJseSB0aGlzIGlz IGR1ZSB0byBlcnJvcgorICAgICAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uo b2xkX2RhdGEsIGRpY3QpOgorICAgICAgICAgICAgICAgIHJldHVybiBGYWxz ZSwgZ2V0dGV4dCgKKyAgICAgICAgICAgICAgICAgICAgIkNvdWxkIG5vdCBm aW5kIHRoZSBmdW5jdGlvbiBpbiB0aGUgZGF0YWJhc2UuIgorICAgICAgICAg ICAgICAgICkKIAogICAgICAgICAgICAgIyBHZXQgU2NoZW1hIE5hbWUKICAg ICAgICAgICAgIG9sZF9kYXRhWydwcm9uYW1lc3BhY2UnXSA9IHNlbGYuX2dl dF9zY2hlbWEob2xkX2RhdGFbCkBAIC0xMjUwLDEwICsxMjY3LDkgQEAgY2xh c3MgRnVuY3Rpb25WaWV3KFBHQ2hpbGROb2RlVmlldywgRGF0YVR5cGVSZWFk ZXIpOgogICAgICAgICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJv cihlcnJvcm1zZz1yZXMpCiAKICAgICAgICAgaWYgbGVuKHJlc1sncm93cydd KSA9PSAwOgotICAgICAgICAgICAgcmV0dXJuIGdvbmUoZ2V0dGV4dCgiIiIK LUNvdWxkIG5vdCBmaW5kIHRoZSBmdW5jdGlvbiBpbiB0aGUgZGF0YWJhc2Uu XG4KLUl0IG1heSBoYXZlIGJlZW4gcmVtb3ZlZCBieSBhbm90aGVyIHVzZXIg b3IgbW92ZWQgdG8gYW5vdGhlciBzY2hlbWEuCi0iIiIpKQorICAgICAgICAg ICAgcmV0dXJuIGdvbmUoCisgICAgICAgICAgICAgICAgZ2V0dGV4dCgiQ291 bGQgbm90IGZpbmQgdGhlIGZ1bmN0aW9uIGluIHRoZSBkYXRhYmFzZS4iKQor ICAgICAgICAgICAgKQogCiAgICAgICAgIHJlc3BfZGF0YSA9IHJlc1sncm93 cyddWzBdCiAKQEAgLTEzOTMsNiArMTQwOSw5IEBAIEl0IG1heSBoYXZlIGJl ZW4gcmVtb3ZlZCBieSBhbm90aGVyIHVzZXIgb3IgbW92ZWQgdG8gYW5vdGhl ciBzY2hlbWEuCiAgICAgICAgICAgICBkb2lkOiBGdW5jdGlvbiBJZAogICAg ICAgICAiIiIKICAgICAgICAgcmVzcF9kYXRhID0gc2VsZi5fZmV0Y2hfcHJv cGVydGllcyhnaWQsIHNpZCwgZGlkLCBzY2lkLCBmbmlkKQorICAgICAgICAj IE1vc3QgcHJvYmFibHkgdGhpcyBpcyBkdWUgdG8gZXJyb3IKKyAgICAgICAg aWYgbm90IGlzaW5zdGFuY2UocmVzcF9kYXRhLCBkaWN0KToKKyAgICAgICAg ICAgIHJldHVybiByZXNwX2RhdGEKIAogICAgICAgICAjIEZldGNoIHRoZSBz Y2hlbWEgbmFtZSBmcm9tIE9JRAogICAgICAgICBpZiAncHJvbmFtZXNwYWNl JyBpbiByZXNwX2RhdGE6CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9w YWNrYWdlcy9fX2luaXRfXy5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3BhY2thZ2Vz L19faW5pdF9fLnB5CmluZGV4IDlmODE1N2EuLjU1YmViMzEgMTAwNjQ0Ci0t LSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9zY2hlbWFzL3BhY2thZ2VzL19faW5pdF9fLnB5CisrKyBi L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL3BhY2thZ2VzL19faW5pdF9fLnB5CkBAIC0yMSwx MSArMjEsMTQgQEAgZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vw cy5zZXJ2ZXJzLnV0aWxzIGltcG9ydCBwYXJzZV9wcml2X2Zyb21fZGIsIFwK ICAgICBwYXJzZV9wcml2X3RvX2RiCiBmcm9tIHBnYWRtaW4uYnJvd3Nlci51 dGlscyBpbXBvcnQgUEdDaGlsZE5vZGVWaWV3CiBmcm9tIHBnYWRtaW4udXRp bHMuYWpheCBpbXBvcnQgbWFrZV9qc29uX3Jlc3BvbnNlLCBcCi0gICAgbWFr ZV9yZXNwb25zZSBhcyBhamF4X3Jlc3BvbnNlLCBpbnRlcm5hbF9zZXJ2ZXJf ZXJyb3IKLWZyb20gcGdhZG1pbi51dGlscy5hamF4IGltcG9ydCBwcmVjb25k aXRpb25fcmVxdWlyZWQsIGdvbmUKKyAgICBtYWtlX3Jlc3BvbnNlIGFzIGFq YXhfcmVzcG9uc2UsIGludGVybmFsX3NlcnZlcl9lcnJvciwgXAorICAgIHBy ZWNvbmRpdGlvbl9yZXF1aXJlZCwgZ29uZQogZnJvbSBwZ2FkbWluLnV0aWxz LmRyaXZlciBpbXBvcnQgZ2V0X2RyaXZlcgotCiBmcm9tIGNvbmZpZyBpbXBv cnQgUEdfREVGQVVMVF9EUklWRVIKK2Zyb20gcGdhZG1pbi51dGlscyBpbXBv cnQgSVNfUFkyCisjIElmIHdlIGFyZSBpbiBQeXRob24zCitpZiBub3QgSVNf UFkyOgorICAgIHVuaWNvZGUgPSBzdHIKIAogCiBjbGFzcyBQYWNrYWdlTW9k dWxlKFNjaGVtYUNoaWxkTW9kdWxlKToKQEAgLTI0NCw2ICsyNDcsNDkgQEAg Y2xhc3MgUGFja2FnZVZpZXcoUEdDaGlsZE5vZGVWaWV3KToKICAgICAgICAg ICAgIHN0YXR1cz0yMDAKICAgICAgICAgKQogCisgICAgQGNoZWNrX3ByZWNv bmRpdGlvbihhY3Rpb249J25vZGUnKQorICAgIGRlZiBub2RlKHNlbGYsIGdp ZCwgc2lkLCBkaWQsIHNjaWQsIHBrZ2lkKToKKyAgICAgICAgIiIiCisgICAg ICAgIFRoaXMgZnVuY3Rpb24gd2lsbCBzaG93IHRoZSBzZWxlY3RlZCBwYWNr YWdlIG5vZGUuCisKKyAgICAgICAgQXJnczoKKyAgICAgICAgICBnaWQ6IFNl cnZlciBHcm91cCBJRAorICAgICAgICAgIHNpZDogU2VydmVyIElECisgICAg ICAgICAgZGlkOiBEYXRhYmFzZSBJRAorICAgICAgICAgIHNjaWQ6IFNjaGVt YSBJRAorICAgICAgICAgIHBrZ2lkOiBQYWNrYWdlIElECisKKyAgICAgICAg UmV0dXJuczoKKworICAgICAgICAiIiIKKyAgICAgICAgU1FMID0gcmVuZGVy X3RlbXBsYXRlKAorICAgICAgICAgICAgIi8iLmpvaW4oW3NlbGYudGVtcGxh dGVfcGF0aCwgJ3Byb3BlcnRpZXMuc3FsJ10pLCAKKyAgICAgICAgICAgIHNj aWQ9c2NpZCwgcGtnaWQ9cGtnaWQKKyAgICAgICAgKQorICAgICAgICBzdGF0 dXMsIHJzZXQgPSBzZWxmLmNvbm4uZXhlY3V0ZV9kaWN0KFNRTCkKKworICAg ICAgICBpZiBub3Qgc3RhdHVzOgorICAgICAgICAgICAgcmV0dXJuIGludGVy bmFsX3NlcnZlcl9lcnJvcihlcnJvcm1zZz1yZXMpCisKKyAgICAgICAgaWYg bGVuKHJzZXRbJ3Jvd3MnXSkgPT0gMDoKKyAgICAgICAgICAgIHJldHVybiBn b25lKAorICAgICAgICAgICAgICAgIGVycm9ybXNnPV8oIkNvdWxkIG5vdCBm aW5kIHRoZSBwYWNrYWdlIGluIHRoZSBkYXRhYmFzZS4iKQorICAgICAgICAg ICAgKQorCisgICAgICAgIGZvciByb3cgaW4gcnNldFsncm93cyddOgorICAg ICAgICAgICAgcmVzLmFwcGVuZCgKKyAgICAgICAgICAgICAgICBzZWxmLmJs dWVwcmludC5nZW5lcmF0ZV9icm93c2VyX25vZGUoCisgICAgICAgICAgICAg ICAgICAgIHJvd1snb2lkJ10sCisgICAgICAgICAgICAgICAgICAgIHNjaWQs CisgICAgICAgICAgICAgICAgICAgIHJvd1snbmFtZSddLAorICAgICAgICAg ICAgICAgICAgICBpY29uPSJpY29uLSVzIiAlIHNlbGYubm9kZV90eXBlCisg ICAgICAgICAgICAgICAgKSkKKworICAgICAgICByZXR1cm4gbWFrZV9qc29u X3Jlc3BvbnNlKAorICAgICAgICAgICAgZGF0YT1yZXMsCisgICAgICAgICAg ICBzdGF0dXM9MjAwCisgICAgICAgICkKKwogICAgIEBjaGVja19wcmVjb25k aXRpb24oYWN0aW9uPSdwcm9wZXJ0aWVzJykKICAgICBkZWYgcHJvcGVydGll cyhzZWxmLCBnaWQsIHNpZCwgZGlkLCBzY2lkLCBwa2dpZCk6CiAgICAgICAg ICIiIgpAQCAtNDQwLDYgKzQ4NiwxMCBAQCBjbGFzcyBQYWNrYWdlVmlldyhQ R0NoaWxkTm9kZVZpZXcpOgogICAgICAgICApCiAKICAgICAgICAgU1FMLCBu YW1lID0gc2VsZi5nZXRTUUwoZ2lkLCBzaWQsIGRpZCwgZGF0YSwgc2NpZCwg cGtnaWQpCisgICAgICAgICMgTW9zdCBwcm9iYWJseSB0aGlzIGlzIGR1ZSB0 byBlcnJvcgorICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShTUUwsIChzdHIs IHVuaWNvZGUpKToKKyAgICAgICAgICAgIHJldHVybiBTUUwKKwogICAgICAg ICBTUUwgPSBTUUwuc3RyaXAoJ1xuJykuc3RyaXAoJyAnKQogICAgICAgICBz dGF0dXMsIHJlcyA9IHNlbGYuY29ubi5leGVjdXRlX3NjYWxhcihTUUwpCiAg ICAgICAgIGlmIG5vdCBzdGF0dXM6CkBAIC00OTEsNiArNTQxLDEwIEBAIGNs YXNzIFBhY2thZ2VWaWV3KFBHQ2hpbGROb2RlVmlldyk6CiAgICAgICAgICAg ICAgICAgICAgICkKIAogICAgICAgICBTUUwsIG5hbWUgPSBzZWxmLmdldFNR TChnaWQsIHNpZCwgZGlkLCBkYXRhLCBzY2lkLCBwa2dpZCkKKyAgICAgICAg IyBNb3N0IHByb2JhYmx5IHRoaXMgaXMgZHVlIHRvIGVycm9yCisgICAgICAg IGlmIG5vdCBpc2luc3RhbmNlKFNRTCwgKHN0ciwgdW5pY29kZSkpOgorICAg ICAgICAgICAgcmV0dXJuIFNRTAorCiAgICAgICAgIFNRTCA9IFNRTC5zdHJp cCgnXG4nKS5zdHJpcCgnICcpCiAgICAgICAgIGlmIFNRTCA9PSAnJzoKICAg ICAgICAgICAgIFNRTCA9ICItLW1vZGlmaWVkIFNRTCIKQEAgLTUyMSw2ICs1 NzUsMTAgQEAgY2xhc3MgUGFja2FnZVZpZXcoUEdDaGlsZE5vZGVWaWV3KToK ICAgICAgICAgICAgIHN0YXR1cywgcmVzID0gc2VsZi5jb25uLmV4ZWN1dGVf ZGljdChTUUwpCiAgICAgICAgICAgICBpZiBub3Qgc3RhdHVzOgogICAgICAg ICAgICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jt c2c9cmVzKQorICAgICAgICAgICAgaWYgbGVuKHJlc1sncm93cyddKSA9PSAw OgorICAgICAgICAgICAgICAgIHJldHVybiBnb25lKAorICAgICAgICAgICAg ICAgICAgICBlcnJvcm1zZz1fKCJDb3VsZCBub3QgZmluZCB0aGUgcGFja2Fn ZSBpbiB0aGUgZGF0YWJhc2UuIikKKyAgICAgICAgICAgICAgICApCiAKICAg ICAgICAgICAgIHJlc1sncm93cyddWzBdWydwa2doZWFkc3JjJ10gPSBzZWxm LmdldF9pbm5lcihyZXNbJ3Jvd3MnXVswXVsncGtnaGVhZHNyYyddKQogICAg ICAgICAgICAgcmVzWydyb3dzJ11bMF1bJ3BrZ2JvZHlzcmMnXSA9IHNlbGYu Z2V0X2lubmVyKHJlc1sncm93cyddWzBdWydwa2dib2R5c3JjJ10pCkBAIC01 ODYsNiArNjQ0LDEwIEBAIGNsYXNzIFBhY2thZ2VWaWV3KFBHQ2hpbGROb2Rl Vmlldyk6CiAgICAgICAgICAgICBzdGF0dXMsIHJlcyA9IHNlbGYuY29ubi5l eGVjdXRlX2RpY3QoU1FMKQogICAgICAgICAgICAgaWYgbm90IHN0YXR1czoK ICAgICAgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9y KGVycm9ybXNnPXJlcykKKyAgICAgICAgICAgIGlmIGxlbihyZXNbJ3Jvd3Mn XSkgPT0gMDoKKyAgICAgICAgICAgICAgICByZXR1cm4gZ29uZSgKKyAgICAg ICAgICAgICAgICAgICAgZXJyb3Jtc2c9XygiQ291bGQgbm90IGZpbmQgdGhl IHBhY2thZ2UgaW4gdGhlIGRhdGFiYXNlLiIpCisgICAgICAgICAgICAgICAg KQogCiAgICAgICAgICAgICByZXNbJ3Jvd3MnXVswXVsncGtnaGVhZHNyYydd ID0gc2VsZi5nZXRfaW5uZXIocmVzWydyb3dzJ11bMF1bJ3BrZ2hlYWRzcmMn XSkKICAgICAgICAgICAgIHJlc1sncm93cyddWzBdWydwa2dib2R5c3JjJ10g PSBzZWxmLmdldF9pbm5lcihyZXNbJ3Jvd3MnXVswXVsncGtnYm9keXNyYydd KQpAQCAtNjA0LDYgKzY2NiwxMCBAQCBjbGFzcyBQYWNrYWdlVmlldyhQR0No aWxkTm9kZVZpZXcpOgogCiAgICAgICAgICAgICByZXN1bHQgPSByZXNbJ3Jv d3MnXVswXQogICAgICAgICAgICAgc3FsLCBuYW1lID0gc2VsZi5nZXRTUUwo Z2lkLCBzaWQsIGRpZCwgcmVzdWx0LCBzY2lkKQorICAgICAgICAgICAgIyBN b3N0IHByb2JhYmx5IHRoaXMgaXMgZHVlIHRvIGVycm9yCisgICAgICAgICAg ICBpZiBub3QgaXNpbnN0YW5jZShzcWwsIChzdHIsIHVuaWNvZGUpKToKKyAg ICAgICAgICAgICAgICByZXR1cm4gc3FsCisKICAgICAgICAgICAgIHNxbCA9 IHNxbC5zdHJpcCgnXG4nKS5zdHJpcCgnICcpCiAKICAgICAgICAgICAgIHNx bF9oZWFkZXIgPSB1Ii0tIFBhY2thZ2U6IHt9XG5cbi0tICIuZm9ybWF0KApk aWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvcGFja2FnZXMvZWRiZnVuY3Mv X19pbml0X18ucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91 cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9wYWNrYWdlcy9lZGJmdW5j cy9fX2luaXRfXy5weQppbmRleCBiMjA2MmZlLi5jMTZkNDhhIDEwMDY0NAot LS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9kYXRhYmFzZXMvc2NoZW1hcy9wYWNrYWdlcy9lZGJmdW5jcy9fX2luaXRf Xy5weQorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9wYWNrYWdlcy9lZGJmdW5jcy9f X2luaXRfXy5weQpAQCAtMzMxLDEwICszMzEsOSBAQCBjbGFzcyBFZGJGdW5j VmlldyhQR0NoaWxkTm9kZVZpZXcsIERhdGFUeXBlUmVhZGVyKToKICAgICAg ICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9 cmVzKQogCiAgICAgICAgIGlmIGxlbihyZXNbJ3Jvd3MnXSkgPT0gMDoKLSAg ICAgICAgICAgIHJldHVybiBnb25lKGdldHRleHQoIiIiCi1Db3VsZCBub3Qg ZmluZCB0aGUgZnVuY3Rpb24gaW4gdGhlIGRhdGFiYXNlLlxuCi1JdCBtYXkg aGF2ZSBiZWVuIHJlbW92ZWQgYnkgYW5vdGhlciB1c2VyIG9yIG1vdmVkIHRv IGFub3RoZXIgc2NoZW1hLgotIiIiKSkKKyAgICAgICAgICAgIHJldHVybiBn b25lKAorICAgICAgICAgICAgICAgIGdldHRleHQoIkNvdWxkIG5vdCBmaW5k IHRoZSBmdW5jdGlvbiBpbiB0aGUgZGF0YWJhc2UuIikKKyAgICAgICAgICAg ICkKIAogICAgICAgICByZXNwX2RhdGEgPSByZXNbJ3Jvd3MnXVswXQogCkBA IC01MjcsNiArNTI2LDEwIEBAIEl0IG1heSBoYXZlIGJlZW4gcmVtb3ZlZCBi eSBhbm90aGVyIHVzZXIgb3IgbW92ZWQgdG8gYW5vdGhlciBzY2hlbWEuCiAg ICAgICAgIHN0YXR1cywgcmVzID0gc2VsZi5jb25uLmV4ZWN1dGVfZGljdChT UUwpCiAgICAgICAgIGlmIG5vdCBzdGF0dXM6CiAgICAgICAgICAgICByZXR1 cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXJlcykKKyAgICAg ICAgaWYgbGVuKHJlc1sncm93cyddKSA9PSAwOgorICAgICAgICAgICAgcmV0 dXJuIGdvbmUoCisgICAgICAgICAgICAgICAgZ2V0dGV4dCgiQ291bGQgbm90 IGZpbmQgdGhlIGZ1bmN0aW9uIGluIHRoZSBkYXRhYmFzZS4iKQorICAgICAg ICAgICAgKQogCiAgICAgICAgIGJvZHkgPSBzZWxmLmdldF9pbm5lcihyZXNb J3Jvd3MnXVswXVsncGtnYm9keXNyYyddKQogCmRpZmYgLS1naXQgYS93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvc2NoZW1hcy9wYWNrYWdlcy9lZGJ2YXJzL19faW5pdF9fLnB5IGIvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3NjaGVtYXMvcGFja2FnZXMvZWRidmFycy9fX2luaXRfXy5weQppbmRl eCA0ZGU4NGU5Li45NmQ3ODkxIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1h cy9wYWNrYWdlcy9lZGJ2YXJzL19faW5pdF9fLnB5CisrKyBiL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9z Y2hlbWFzL3BhY2thZ2VzL2VkYnZhcnMvX19pbml0X18ucHkKQEAgLTI4Myw5 ICsyODMsOCBAQCBjbGFzcyBFZGJWYXJWaWV3KFBHQ2hpbGROb2RlVmlldywg RGF0YVR5cGVSZWFkZXIpOgogICAgICAgICAgICAgcmV0dXJuIGludGVybmFs X3NlcnZlcl9lcnJvcihlcnJvcm1zZz1yZXMpCiAKICAgICAgICAgaWYgbGVu KHJlc1sncm93cyddKSA9PSAwOgotICAgICAgICAgICAgcmV0dXJuIGFqYXhf cmVzcG9uc2UoCi0gICAgICAgICAgICAgICAgcmVzcG9uc2U9cmVzcF9kYXRh LAotICAgICAgICAgICAgICAgIHN0YXR1cz0yMDAKKyAgICAgICAgICAgIHJl dHVybiBnb25lKAorICAgICAgICAgICAgICAgIGVycm9ybXNnPWdldHRleHQo IkNvdWxkIG5vdCBmaW5kIHRoZSB2YXJpYWJsZXMiKQogICAgICAgICAgICAg KQogCiAgICAgICAgIHJlc3BfZGF0YSA9IHJlc1sncm93cyddWzBdCkBAIC0z MTUsNiArMzE0LDExIEBAIGNsYXNzIEVkYlZhclZpZXcoUEdDaGlsZE5vZGVW aWV3LCBEYXRhVHlwZVJlYWRlcik6CiAgICAgICAgIHN0YXR1cywgcmVzID0g c2VsZi5jb25uLmV4ZWN1dGVfZGljdChTUUwpCiAgICAgICAgIGlmIG5vdCBz dGF0dXM6CiAgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vy cm9yKGVycm9ybXNnPXJlcykKKyAgICAgICAgaWYgbGVuKHJlc1sncm93cydd KSA9PSAwOgorICAgICAgICAgICAgcmV0dXJuIGdvbmUoCisgICAgICAgICAg ICAgICAgZXJyb3Jtc2c9Z2V0dGV4dCgiQ291bGQgbm90IGZpbmQgdGhlIHZh cmlhYmxlcyIpCisgICAgICAgICAgICApCisKICAgICAgICAgdmFyID0gcmVz Wydyb3dzJ11bMF0KIAogICAgICAgICBzcWwgPSB1Ii0tIFBhY2thZ2UgVmFy aWFibGU6IHt9Ii5mb3JtYXQodmFyWyduYW1lJ10pCmRpZmYgLS1naXQgYS93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvc2NoZW1hcy9zZXF1ZW5jZXMvX19pbml0X18ucHkgYi93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy9zZXF1ZW5jZXMvX19pbml0X18ucHkKaW5kZXggMDUzNTRkNi4u ZDg4NjU5NiAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvc2VxdWVuY2Vz L19faW5pdF9fLnB5CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3NlcXVlbmNlcy9f X2luaXRfXy5weQpAQCAtMjEsMTEgKzIxLDEzIEBAIGZyb20gcGdhZG1pbi5i cm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy51dGlscyBpbXBvcnQgcGFy c2VfcHJpdl9mcm9tX2RiLCBcCiAgICAgcGFyc2VfcHJpdl90b19kYgogZnJv bSBwZ2FkbWluLmJyb3dzZXIudXRpbHMgaW1wb3J0IFBHQ2hpbGROb2RlVmll dwogZnJvbSBwZ2FkbWluLnV0aWxzLmFqYXggaW1wb3J0IG1ha2VfanNvbl9y ZXNwb25zZSwgaW50ZXJuYWxfc2VydmVyX2Vycm9yLCBcCi0gICAgbWFrZV9y ZXNwb25zZSBhcyBhamF4X3Jlc3BvbnNlCisgICAgbWFrZV9yZXNwb25zZSBh cyBhamF4X3Jlc3BvbnNlLCBnb25lCiBmcm9tIHBnYWRtaW4udXRpbHMuZHJp dmVyIGltcG9ydCBnZXRfZHJpdmVyCi0KIGZyb20gY29uZmlnIGltcG9ydCBQ R19ERUZBVUxUX0RSSVZFUgotZnJvbSBwZ2FkbWluLnV0aWxzLmFqYXggaW1w b3J0IGdvbmUKK2Zyb20gcGdhZG1pbi51dGlscyBpbXBvcnQgSVNfUFkyCisj IElmIHdlIGFyZSBpbiBQeXRob24zCitpZiBub3QgSVNfUFkyOgorICAgIHVu aWNvZGUgPSBzdHIKIAogCiBjbGFzcyBTZXF1ZW5jZU1vZHVsZShTY2hlbWFD aGlsZE1vZHVsZSk6CkBAIC0yNTMsNyArMjU1LDcgQEAgY2xhc3MgU2VxdWVu Y2VWaWV3KFBHQ2hpbGROb2RlVmlldyk6CiAgICAgICAgICAgICByZXR1cm4g aW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXJlcykKIAogICAgICAg ICBpZiBsZW4ocmVzWydyb3dzJ10pID09IDA6Ci0gICAgICAgICAgICByZXR1 cm4gZ29uZShfKCIiIkNvdWxkIG5vdCBmaW5kIHRoZSBzZXF1ZW5jZSBpbiB0 aGUgZGF0YWJhc2UuIiIiKSkKKyAgICAgICAgICAgIHJldHVybiBnb25lKF8o IkNvdWxkIG5vdCBmaW5kIHRoZSBzZXF1ZW5jZSBpbiB0aGUgZGF0YWJhc2Uu IikpCiAKICAgICAgICAgZm9yIHJvdyBpbiByZXNbJ3Jvd3MnXToKICAgICAg ICAgICAgIFNRTCA9IHJlbmRlcl90ZW1wbGF0ZSgiLyIuam9pbihbc2VsZi50 ZW1wbGF0ZV9wYXRoLCAnZ2V0X2RlZi5zcWwnXSksIGRhdGE9cm93KQpAQCAt NDUwLDYgKzQ1MiwxMCBAQCBjbGFzcyBTZXF1ZW5jZVZpZXcoUEdDaGlsZE5v ZGVWaWV3KToKICAgICAgICAgICAgIHJlcXVlc3QuZGF0YSwgZW5jb2Rpbmc9 J3V0Zi04JwogICAgICAgICApCiAgICAgICAgIFNRTCwgbmFtZSA9IHNlbGYu Z2V0U1FMKGdpZCwgc2lkLCBkaWQsIGRhdGEsIHNjaWQsIHNlaWQpCisgICAg ICAgICMgTW9zdCBwcm9iYWJseSB0aGlzIGlzIGR1ZSB0byBlcnJvcgorICAg ICAgICBpZiBub3QgaXNpbnN0YW5jZShTUUwsIChzdHIsIHVuaWNvZGUpKToK KyAgICAgICAgICAgIHJldHVybiBTUUwKKwogICAgICAgICBTUUwgPSBTUUwu c3RyaXAoJ1xuJykuc3RyaXAoJyAnKQogCiAgICAgICAgIHN0YXR1cywgcmVz ID0gc2VsZi5jb25uLmV4ZWN1dGVfc2NhbGFyKFNRTCkKQEAgLTUxMCw2ICs1 MTYsMTAgQEAgY2xhc3MgU2VxdWVuY2VWaWV3KFBHQ2hpbGROb2RlVmlldyk6 CiAgICAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAg ICAgICkKICAgICAgICAgU1FMLCBuYW1lID0gc2VsZi5nZXRTUUwoZ2lkLCBz aWQsIGRpZCwgZGF0YSwgc2NpZCwgc2VpZCkKKyAgICAgICAgIyBNb3N0IHBy b2JhYmx5IHRoaXMgaXMgZHVlIHRvIGVycm9yCisgICAgICAgIGlmIG5vdCBp c2luc3RhbmNlKFNRTCwgKHN0ciwgdW5pY29kZSkpOgorICAgICAgICAgICAg cmV0dXJuIFNRTAorCiAgICAgICAgIFNRTCA9IFNRTC5zdHJpcCgnXG4nKS5z dHJpcCgnICcpCiAgICAgICAgIGlmIFNRTCA9PSAnJzoKICAgICAgICAgICAg IFNRTCA9ICItLW1vZGlmaWVkIFNRTCIKQEAgLTU0MCw2ICs1NTAsOSBAQCBj bGFzcyBTZXF1ZW5jZVZpZXcoUEdDaGlsZE5vZGVWaWV3KToKICAgICAgICAg ICAgIHN0YXR1cywgcmVzID0gc2VsZi5jb25uLmV4ZWN1dGVfZGljdChTUUwp CiAgICAgICAgICAgICBpZiBub3Qgc3RhdHVzOgogICAgICAgICAgICAgICAg IHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9cmVzKQor ICAgICAgICAgICAgaWYgbGVuKHJlc1sncm93cyddKSA9PSAwOgorICAgICAg ICAgICAgICAgIHJldHVybiBnb25lKF8oIkNvdWxkIG5vdCBmaW5kIHRoZSBz ZXF1ZW5jZSBpbiB0aGUgZGF0YWJhc2UuIikpCisKICAgICAgICAgICAgICMg TWFraW5nIGNvcHkgb2Ygb3V0cHV0IGZvciBmdXJ0aGVyIHByb2Nlc3NpbmcK ICAgICAgICAgICAgIG9sZF9kYXRhID0gZGljdChyZXNbJ3Jvd3MnXVswXSkK ICAgICAgICAgICAgIG9sZF9kYXRhID0gc2VsZi5fZm9ybWF0dGVyKG9sZF9k YXRhLCBzY2lkLCBzZWlkKQpAQCAtNTg4LDYgKzYwMSw4IEBAIGNsYXNzIFNl cXVlbmNlVmlldyhQR0NoaWxkTm9kZVZpZXcpOgogICAgICAgICBzdGF0dXMs IHJlcyA9IHNlbGYuY29ubi5leGVjdXRlX2RpY3QoU1FMKQogICAgICAgICBp ZiBub3Qgc3RhdHVzOgogICAgICAgICAgICAgcmV0dXJuIGludGVybmFsX3Nl cnZlcl9lcnJvcihlcnJvcm1zZz1yZXMpCisgICAgICAgIGlmIGxlbihyZXNb J3Jvd3MnXSkgPT0gMDoKKyAgICAgICAgICAgIHJldHVybiBnb25lKF8oIkNv dWxkIG5vdCBmaW5kIHRoZSBzZXF1ZW5jZSBpbiB0aGUgZGF0YWJhc2UuIikp CiAKICAgICAgICAgZm9yIHJvdyBpbiByZXNbJ3Jvd3MnXToKICAgICAgICAg ICAgIFNRTCA9IHJlbmRlcl90ZW1wbGF0ZSgiLyIuam9pbihbc2VsZi50ZW1w bGF0ZV9wYXRoLCAnZ2V0X2RlZi5zcWwnXSksIGRhdGE9cm93KQpAQCAtNjA1 LDYgKzYyMCw5IEBAIGNsYXNzIFNlcXVlbmNlVmlldyhQR0NoaWxkTm9kZVZp ZXcpOgogICAgICAgICByZXN1bHQgPSByZXNbJ3Jvd3MnXVswXQogICAgICAg ICByZXN1bHQgPSBzZWxmLl9mb3JtYXR0ZXIocmVzdWx0LCBzY2lkLCBzZWlk KQogICAgICAgICBTUUwsIG5hbWUgPSBzZWxmLmdldFNRTChnaWQsIHNpZCwg ZGlkLCByZXN1bHQsIHNjaWQpCisgICAgICAgICMgTW9zdCBwcm9iYWJseSB0 aGlzIGlzIGR1ZSB0byBlcnJvcgorICAgICAgICBpZiBub3QgaXNpbnN0YW5j ZShTUUwsIChzdHIsIHVuaWNvZGUpKToKKyAgICAgICAgICAgIHJldHVybiBT UUwKICAgICAgICAgU1FMID0gU1FMLnN0cmlwKCdcbicpLnN0cmlwKCcgJykK ICAgICAgICAgcmV0dXJuIGFqYXhfcmVzcG9uc2UocmVzcG9uc2U9U1FMKQog CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91 cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9zeW5vbnltcy9fX2luaXRf Xy5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3N5bm9ueW1zL19faW5pdF9fLnB5Cmlu ZGV4IGNkZmRhZjQuLjUwZmQyMTkgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hl bWFzL3N5bm9ueW1zL19faW5pdF9fLnB5CisrKyBiL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFz L3N5bm9ueW1zL19faW5pdF9fLnB5CkBAIC0xOSwxMSArMTksMTQgQEAgZnJv bSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFi YXNlcy5zY2hlbWFzLnV0aWxzIFwKICAgICBpbXBvcnQgU2NoZW1hQ2hpbGRN b2R1bGUKIGZyb20gcGdhZG1pbi5icm93c2VyLnV0aWxzIGltcG9ydCBQR0No aWxkTm9kZVZpZXcKIGZyb20gcGdhZG1pbi51dGlscy5hamF4IGltcG9ydCBt YWtlX2pzb25fcmVzcG9uc2UsIFwKLSAgICBtYWtlX3Jlc3BvbnNlIGFzIGFq YXhfcmVzcG9uc2UsIGludGVybmFsX3NlcnZlcl9lcnJvcgorICAgIG1ha2Vf cmVzcG9uc2UgYXMgYWpheF9yZXNwb25zZSwgaW50ZXJuYWxfc2VydmVyX2Vy cm9yLCBnb25lCiBmcm9tIHBnYWRtaW4udXRpbHMuYWpheCBpbXBvcnQgcHJl Y29uZGl0aW9uX3JlcXVpcmVkCiBmcm9tIHBnYWRtaW4udXRpbHMuZHJpdmVy IGltcG9ydCBnZXRfZHJpdmVyCiBmcm9tIGNvbmZpZyBpbXBvcnQgUEdfREVG QVVMVF9EUklWRVIKLWZyb20gcGdhZG1pbi51dGlscy5hamF4IGltcG9ydCBn b25lCitmcm9tIHBnYWRtaW4udXRpbHMgaW1wb3J0IElTX1BZMgorIyBJZiB3 ZSBhcmUgaW4gUHl0aG9uMworaWYgbm90IElTX1BZMjoKKyAgICB1bmljb2Rl ID0gc3RyCiAKIAogY2xhc3MgU3lub255bU1vZHVsZShTY2hlbWFDaGlsZE1v ZHVsZSk6CkBAIC01MjcsNiArNTMwLDkgQEAgY2xhc3MgU3lub255bVZpZXco UEdDaGlsZE5vZGVWaWV3KToKICAgICAgICAgICAgIHJlcXVlc3QuZGF0YSwg ZW5jb2Rpbmc9J3V0Zi04JwogICAgICAgICApCiAgICAgICAgIFNRTCA9IHNl bGYuZ2V0X3NxbChnaWQsIHNpZCwgZGF0YSwgc2NpZCwgc3lpZCkKKyAgICAg ICAgIyBNb3N0IHByb2JhYmx5IHRoaXMgaXMgZHVlIHRvIGVycm9yCisgICAg ICAgIGlmIG5vdCBpc2luc3RhbmNlKFNRTCwgKHN0ciwgdW5pY29kZSkpOgor ICAgICAgICAgICAgcmV0dXJuIFNRTAogICAgICAgICB0cnk6CiAgICAgICAg ICAgICBpZiBTUUwgYW5kIFNRTC5zdHJpcCgnXG4nKSBhbmQgU1FMLnN0cmlw KCcgJyk6CiAgICAgICAgICAgICAgICAgc3RhdHVzLCByZXMgPSBzZWxmLmNv bm4uZXhlY3V0ZV9zY2FsYXIoU1FMKQpAQCAtNTY2LDYgKzU3Miw5IEBAIGNs YXNzIFN5bm9ueW1WaWV3KFBHQ2hpbGROb2RlVmlldyk6CiAKICAgICAgICAg dHJ5OgogICAgICAgICAgICAgU1FMID0gc2VsZi5nZXRfc3FsKGdpZCwgc2lk LCBkYXRhLCBzY2lkLCBzeWlkKQorICAgICAgICAgICAgIyBNb3N0IHByb2Jh Ymx5IHRoaXMgaXMgZHVlIHRvIGVycm9yCisgICAgICAgICAgICBpZiBub3Qg aXNpbnN0YW5jZShTUUwsIChzdHIsIHVuaWNvZGUpKToKKyAgICAgICAgICAg ICAgICByZXR1cm4gU1FMCiAgICAgICAgICAgICBpZiBTUUwgYW5kIFNRTC5z dHJpcCgnXG4nKSBhbmQgU1FMLnN0cmlwKCcgJyk6CiAgICAgICAgICAgICAg ICAgcmV0dXJuIG1ha2VfanNvbl9yZXNwb25zZSgKICAgICAgICAgICAgICAg ICAgICAgZGF0YT1TUUwsCkBAIC01ODUsNiArNTk0LDEwIEBAIGNsYXNzIFN5 bm9ueW1WaWV3KFBHQ2hpbGROb2RlVmlldyk6CiAgICAgICAgICAgICBzdGF0 dXMsIHJlcyA9IHNlbGYuY29ubi5leGVjdXRlX2RpY3QoU1FMKQogICAgICAg ICAgICAgaWYgbm90IHN0YXR1czoKICAgICAgICAgICAgICAgICByZXR1cm4g aW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXJlcykKKyAgICAgICAg ICAgIGlmIGxlbihyZXNbJ3Jvd3MnXSkgPT0gMDoKKyAgICAgICAgICAgICAg ICByZXR1cm4gZ29uZSgKKyAgICAgICAgICAgICAgICAgICAgZ2V0dGV4dCgi Q291bGQgbm90IGZpbmQgdGhlIHN5bm9ueW0gb24gdGhlIHNlcnZlci4iKQor ICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgIG9sZF9kYXRhID0gcmVz Wydyb3dzJ11bMF0KICAgICAgICAgICAgICMgSWYgdGFyZ2V0IHNjaGVtYS9v YmplY3QgaXMgbm90IHByZXNlbnQgdGhlbiB0YWtlIGl0IGZyb20KICAgICAg ICAgICAgICMgb2xkIGRhdGEsIGl0IG1lYW5zIGl0IGRvZXMgbm90IGNoYW5n ZWQKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9jb2x1bW4v X19pbml0X18ucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91 cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvY29sdW1uL19f aW5pdF9fLnB5CmluZGV4IDE5ZGI4MzAuLmQ5ZTY4OGUgMTAwNjQ0Ci0tLSBh L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9jb2x1bW4vX19pbml0X18ucHkKKysr IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL2NvbHVtbi9fX2luaXRfXy5weQpA QCAtMjIsMTEgKzIyLDEzIEBAIGZyb20gcGdhZG1pbi5icm93c2VyLnNlcnZl cl9ncm91cHMuc2VydmVycy51dGlscyBpbXBvcnQgcGFyc2VfcHJpdl9mcm9t X2RiLCBcCiAgICAgcGFyc2VfcHJpdl90b19kYgogZnJvbSBwZ2FkbWluLmJy b3dzZXIudXRpbHMgaW1wb3J0IFBHQ2hpbGROb2RlVmlldwogZnJvbSBwZ2Fk bWluLnV0aWxzLmFqYXggaW1wb3J0IG1ha2VfanNvbl9yZXNwb25zZSwgaW50 ZXJuYWxfc2VydmVyX2Vycm9yLCBcCi0gICAgbWFrZV9yZXNwb25zZSBhcyBh amF4X3Jlc3BvbnNlCisgICAgbWFrZV9yZXNwb25zZSBhcyBhamF4X3Jlc3Bv bnNlLCBnb25lCiBmcm9tIHBnYWRtaW4udXRpbHMuZHJpdmVyIGltcG9ydCBn ZXRfZHJpdmVyCi0KIGZyb20gY29uZmlnIGltcG9ydCBQR19ERUZBVUxUX0RS SVZFUgotZnJvbSBwZ2FkbWluLnV0aWxzLmFqYXggaW1wb3J0IGdvbmUKK2Zy b20gcGdhZG1pbi51dGlscyBpbXBvcnQgSVNfUFkyCisjIElmIHdlIGFyZSBp biBQeXRob24zCitpZiBub3QgSVNfUFkyOgorICAgIHVuaWNvZGUgPSBzdHIK IAogCiBjbGFzcyBDb2x1bW5zTW9kdWxlKENvbGxlY3Rpb25Ob2RlTW9kdWxl KToKQEAgLTY4OCw2ICs2OTAsOCBAQCBjbGFzcyBDb2x1bW5zVmlldyhQR0No aWxkTm9kZVZpZXcsIERhdGFUeXBlUmVhZGVyKToKICAgICAgICAgICAgIGRh dGFbJ2hhc1NxckJyYWNrZXQnXSA9IHNlbGYuaGFzU3FyQnJhY2tldAogCiAg ICAgICAgIFNRTCwgbmFtZSA9IHNlbGYuZ2V0X3NxbChzY2lkLCB0aWQsIGNs aWQsIGRhdGEpCisgICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKFNRTCwgKHN0 ciwgdW5pY29kZSkpOgorICAgICAgICAgICAgcmV0dXJuIFNRTAogICAgICAg ICBTUUwgPSBTUUwuc3RyaXAoJ1xuJykuc3RyaXAoJyAnKQogICAgICAgICBz dGF0dXMsIHJlcyA9IHNlbGYuY29ubi5leGVjdXRlX3NjYWxhcihTUUwpCiAg ICAgICAgIGlmIG5vdCBzdGF0dXM6CkBAIC03MzMsNiArNzM3LDggQEAgY2xh c3MgQ29sdW1uc1ZpZXcoUEdDaGlsZE5vZGVWaWV3LCBEYXRhVHlwZVJlYWRl cik6CiAKICAgICAgICAgdHJ5OgogICAgICAgICAgICAgU1FMLCBuYW1lID0g c2VsZi5nZXRfc3FsKHNjaWQsIHRpZCwgY2xpZCwgZGF0YSkKKyAgICAgICAg ICAgIGlmIG5vdCBpc2luc3RhbmNlKFNRTCwgKHN0ciwgdW5pY29kZSkpOgor ICAgICAgICAgICAgICAgIHJldHVybiBTUUwKIAogICAgICAgICAgICAgU1FM ID0gU1FMLnN0cmlwKCdcbicpLnN0cmlwKCcgJykKICAgICAgICAgICAgIGlm IFNRTCA9PSAnJzoKQEAgLTc1OCw3ICs3NjQsMTAgQEAgY2xhc3MgQ29sdW1u c1ZpZXcoUEdDaGlsZE5vZGVWaWV3LCBEYXRhVHlwZVJlYWRlcik6CiAgICAg ICAgICAgICBzdGF0dXMsIHJlcyA9IHNlbGYuY29ubi5leGVjdXRlX2RpY3Qo U1FMKQogICAgICAgICAgICAgaWYgbm90IHN0YXR1czoKICAgICAgICAgICAg ICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXJl cykKLQorICAgICAgICAgICAgaWYgbGVuKHJlc1sncm93cyddKSA9PSAwOgor ICAgICAgICAgICAgICAgIHJldHVybiBnb25lKAorICAgICAgICAgICAgICAg ICAgICBnZXR0ZXh0KCJDb3VsZCBub3QgZmluZCB0aGUgY29sdW1uIG9uIHRo ZSBzZXJ2ZXIuIikKKyAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICBv bGRfZGF0YSA9IGRpY3QocmVzWydyb3dzJ11bMF0pCiAgICAgICAgICAgICAj IFdlIHdpbGwgYWRkIHRhYmxlICYgc2NoZW1hIGFzIHdlbGwKICAgICAgICAg ICAgIG9sZF9kYXRhID0gc2VsZi5fZm9ybWF0dGVyKHNjaWQsIHRpZCwgY2xp ZCwgb2xkX2RhdGEpCkBAIC04MzQsNiArODQzLDEwIEBAIGNsYXNzIENvbHVt bnNWaWV3KFBHQ2hpbGROb2RlVmlldywgRGF0YVR5cGVSZWFkZXIpOgogICAg ICAgICAgICAgc3RhdHVzLCByZXMgPSBzZWxmLmNvbm4uZXhlY3V0ZV9kaWN0 KFNRTCkKICAgICAgICAgICAgIGlmIG5vdCBzdGF0dXM6CiAgICAgICAgICAg ICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1zZz1y ZXMpCisgICAgICAgICAgICBpZiBsZW4ocmVzWydyb3dzJ10pID09IDA6Cisg ICAgICAgICAgICAgICAgcmV0dXJuIGdvbmUoCisgICAgICAgICAgICAgICAg ICAgIGdldHRleHQoIkNvdWxkIG5vdCBmaW5kIHRoZSBjb2x1bW4gb24gdGhl IHNlcnZlci4iKQorICAgICAgICAgICAgICAgICkKIAogICAgICAgICAgICAg ZGF0YSA9IGRpY3QocmVzWydyb3dzJ11bMF0pCiAgICAgICAgICAgICAjIFdl IGRvIG5vdCB3YW50IHRvIGRpc3BsYXkgbGVuZ3RoIGFzIC0xIGluIGNyZWF0 ZSBxdWVyeQpAQCAtODUxLDYgKzg2NCw4IEBAIGNsYXNzIENvbHVtbnNWaWV3 KFBHQ2hpbGROb2RlVmlldywgRGF0YVR5cGVSZWFkZXIpOgogICAgICAgICAg ICAgZGF0YSA9IHNlbGYuX2Zvcm1hdHRlcihzY2lkLCB0aWQsIGNsaWQsIGRh dGEpCiAKICAgICAgICAgICAgIFNRTCwgbmFtZSA9IHNlbGYuZ2V0X3NxbChz Y2lkLCB0aWQsIE5vbmUsIGRhdGEpCisgICAgICAgICAgICBpZiBub3QgaXNp bnN0YW5jZShTUUwsIChzdHIsIHVuaWNvZGUpKToKKyAgICAgICAgICAgICAg ICByZXR1cm4gU1FMCiAKICAgICAgICAgICAgIHNxbF9oZWFkZXIgPSB1Ii0t IENvbHVtbjogezB9XG5cbi0tICIuZm9ybWF0KHNlbGYucXRJZGVudChzZWxm LmNvbm4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhWydzY2hlbWEn XSwKQEAgLTk2Niw2ICs5ODEsMTAgQEAgY2xhc3MgQ29sdW1uc1ZpZXcoUEdD aGlsZE5vZGVWaWV3LCBEYXRhVHlwZVJlYWRlcik6CiAgICAgICAgIHN0YXR1 cywgcmVzID0gc2VsZi5jb25uLmV4ZWN1dGVfZGljdChTUUwpCiAgICAgICAg IGlmIG5vdCBzdGF0dXM6CiAgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxf c2VydmVyX2Vycm9yKGVycm9ybXNnPXJlcykKKyAgICAgICAgaWYgbGVuKHJl c1sncm93cyddKSA9PSAwOgorICAgICAgICAgICAgcmV0dXJuIGdvbmUoCisg ICAgICAgICAgICAgICAgZ2V0dGV4dCgiQ291bGQgbm90IGZpbmQgdGhlIGNv bHVtbiBvbiB0aGUgc2VydmVyLiIpCisgICAgICAgICAgICApCiAKICAgICAg ICAgZGF0YSA9IGRpY3QocmVzWydyb3dzJ11bMF0pCiAgICAgICAgIGNvbHVt biA9IGRhdGFbJ25hbWUnXQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMv dGFibGVzL2NvbnN0cmFpbnRzL2NoZWNrX2NvbnN0cmFpbnQvX19pbml0X18u cHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvY29uc3RyYWludHMvY2hlY2tf Y29uc3RyYWludC9fX2luaXRfXy5weQppbmRleCAzOWZiYjhmLi5lMzAyMmFi IDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91 cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvY29uc3RyYWlu dHMvY2hlY2tfY29uc3RyYWludC9fX2luaXRfXy5weQorKysgYi93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy90YWJsZXMvY29uc3RyYWludHMvY2hlY2tfY29uc3RyYWludC9f X2luaXRfXy5weQpAQCAtMjAsMTAgKzIwLDggQEAgZnJvbSBwZ2FkbWluLmJy b3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy5zY2hlbWFz LnRhYmxlcy5jb25zdHJhaW50cy4KICAgICBpbXBvcnQgQ29uc3RyYWludFJl Z2lzdHJ5CiBmcm9tIHBnYWRtaW4uYnJvd3Nlci51dGlscyBpbXBvcnQgUEdD aGlsZE5vZGVWaWV3CiBmcm9tIHBnYWRtaW4udXRpbHMuYWpheCBpbXBvcnQg bWFrZV9qc29uX3Jlc3BvbnNlLCBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IsIFwK LSAgICBtYWtlX3Jlc3BvbnNlIGFzIGFqYXhfcmVzcG9uc2UKKyAgICBtYWtl X3Jlc3BvbnNlIGFzIGFqYXhfcmVzcG9uc2UsIGdvbmUKIGZyb20gcGdhZG1p bi51dGlscy5kcml2ZXIgaW1wb3J0IGdldF9kcml2ZXIKLWZyb20gcGdhZG1p bi51dGlscy5hamF4IGltcG9ydCBnb25lCi0KIGZyb20gY29uZmlnIGltcG9y dCBQR19ERUZBVUxUX0RSSVZFUgogCiAKQEAgLTQ1MCw2ICs0NDgsMTAgQEAg Y2xhc3MgQ2hlY2tDb25zdHJhaW50VmlldyhQR0NoaWxkTm9kZVZpZXcpOgog ICAgICAgICBzdGF0dXMsIHJlcyA9IHNlbGYuY29ubi5leGVjdXRlX2RpY3Qo U1FMKQogICAgICAgICBpZiBub3Qgc3RhdHVzOgogICAgICAgICAgICAgcmV0 dXJuIGludGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1zZz1yZXMpCisgICAg ICAgIGlmIGxlbihyZXNbJ3Jvd3MnXSkgPT0gMDoKKyAgICAgICAgICAgIHJl dHVybiBnb25lKAorICAgICAgICAgICAgICAgIF8oIkNvdWxkIG5vdCBmaW5k IHRoZSBvYmplY3Qgb24gdGhlIHNlcnZlci4iKQorICAgICAgICAgICAgKQog CiAgICAgICAgIGRhdGEgPSByZXNbJ3Jvd3MnXVswXQogICAgICAgICByZXR1 cm4gYWpheF9yZXNwb25zZSgKQEAgLTY0Niw2ICs2NDgsOCBAQCBjbGFzcyBD aGVja0NvbnN0cmFpbnRWaWV3KFBHQ2hpbGROb2RlVmlldyk6CiAgICAgICAg ICAgICBkYXRhWyd0YWJsZSddID0gc2VsZi50YWJsZQogCiAgICAgICAgICAg ICBTUUwsIG5hbWUgPSBzZWxmLmdldF9zcWwoZ2lkLCBzaWQsIGRhdGEsIHNj aWQsIHRpZCwgY2lkKQorICAgICAgICAgICAgaWYgbm90IFNRTDoKKyAgICAg ICAgICAgICAgICByZXR1cm4gbmFtZQogICAgICAgICAgICAgU1FMID0gU1FM LnN0cmlwKCdcbicpLnN0cmlwKCcgJykKIAogICAgICAgICAgICAgc3RhdHVz LCByZXMgPSBzZWxmLmNvbm4uZXhlY3V0ZV9zY2FsYXIoU1FMKQpAQCAtNjk3 LDYgKzcwMSwxMCBAQCBjbGFzcyBDaGVja0NvbnN0cmFpbnRWaWV3KFBHQ2hp bGROb2RlVmlldyk6CiAgICAgICAgIHN0YXR1cywgcmVzID0gc2VsZi5jb25u LmV4ZWN1dGVfZGljdChTUUwpCiAgICAgICAgIGlmIG5vdCBzdGF0dXM6CiAg ICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9y bXNnPXJlcykKKyAgICAgICAgaWYgbGVuKHJlc1sncm93cyddKSA9PSAwOgor ICAgICAgICAgICAgcmV0dXJuIGdvbmUoCisgICAgICAgICAgICAgICAgXygi Q291bGQgbm90IGZpbmQgdGhlIG9iamVjdCBvbiB0aGUgc2VydmVyLiIpCisg ICAgICAgICAgICApCiAKICAgICAgICAgZGF0YSA9IHJlc1sncm93cyddWzBd CiAgICAgICAgIGRhdGFbJ3NjaGVtYSddID0gc2VsZi5zY2hlbWEKQEAgLTc0 NCw2ICs3NTIsOCBAQCBjbGFzcyBDaGVja0NvbnN0cmFpbnRWaWV3KFBHQ2hp bGROb2RlVmlldyk6CiAgICAgICAgIGRhdGFbJ3RhYmxlJ10gPSBzZWxmLnRh YmxlCiAgICAgICAgIHRyeToKICAgICAgICAgICAgIHNxbCwgbmFtZSA9IHNl bGYuZ2V0X3NxbChnaWQsIHNpZCwgZGF0YSwgc2NpZCwgdGlkLCBjaWQpCisg ICAgICAgICAgICBpZiBub3Qgc3FsOgorICAgICAgICAgICAgICAgIHJldHVy biBuYW1lCiAgICAgICAgICAgICBzcWwgPSBzcWwuc3RyaXAoJ1xuJykuc3Ry aXAoJyAnKQogICAgICAgICAgICAgaWYgc3FsID09ICcnOgogICAgICAgICAg ICAgICAgIHNxbCA9ICItLW1vZGlmaWVkIFNRTCIKQEAgLTc3NSw2ICs3ODUs MTAgQEAgY2xhc3MgQ2hlY2tDb25zdHJhaW50VmlldyhQR0NoaWxkTm9kZVZp ZXcpOgogCiAgICAgICAgICAgICBpZiBub3Qgc3RhdHVzOgogICAgICAgICAg ICAgICAgIHJldHVybiBGYWxzZSwgaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVy cm9ybXNnPXJlcykKKyAgICAgICAgICAgIGlmIGxlbihyZXNbJ3Jvd3MnXSkg PT0gMDoKKyAgICAgICAgICAgICAgICByZXR1cm4gRmFsc2UsIGdvbmUoCisg ICAgICAgICAgICAgICAgICAgIF8oIkNvdWxkIG5vdCBmaW5kIHRoZSBvYmpl Y3Qgb24gdGhlIHNlcnZlci4iKQorICAgICAgICAgICAgICAgICkKIAogICAg ICAgICAgICAgb2xkX2RhdGEgPSByZXNbJ3Jvd3MnXVswXQogICAgICAgICAg ICAgcmVxdWlyZWRfYXJncyA9IFsnbmFtZSddCmRpZmYgLS1naXQgYS93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvc2NoZW1hcy90YWJsZXMvY29uc3RyYWludHMvZXhjbHVzaW9uX2NvbnN0 cmFpbnQvX19pbml0X18ucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvY29u c3RyYWludHMvZXhjbHVzaW9uX2NvbnN0cmFpbnQvX19pbml0X18ucHkKaW5k ZXggMTE0ODcyZC4uYjg2ODUwMyAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVt YXMvdGFibGVzL2NvbnN0cmFpbnRzL2V4Y2x1c2lvbl9jb25zdHJhaW50L19f aW5pdF9fLnB5CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9jb25zdHJh aW50cy9leGNsdXNpb25fY29uc3RyYWludC9fX2luaXRfXy5weQpAQCAtMTks MTEgKzE5LDEzIEBAIGZyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91 cHMuc2VydmVycy5kYXRhYmFzZXMuc2NoZW1hcy50YWJsZXMuY29uc3RyYWlu dHMuCiAgICAgaW1wb3J0IENvbnN0cmFpbnRSZWdpc3RyeSwgQ29uc3RyYWlu dFR5cGVNb2R1bGUKIGZyb20gcGdhZG1pbi5icm93c2VyLnV0aWxzIGltcG9y dCBQR0NoaWxkTm9kZVZpZXcKIGZyb20gcGdhZG1pbi51dGlscy5hamF4IGlt cG9ydCBtYWtlX2pzb25fcmVzcG9uc2UsIGludGVybmFsX3NlcnZlcl9lcnJv ciwgXAotICAgIG1ha2VfcmVzcG9uc2UgYXMgYWpheF9yZXNwb25zZQorICAg IG1ha2VfcmVzcG9uc2UgYXMgYWpheF9yZXNwb25zZSwgZ29uZQogZnJvbSBw Z2FkbWluLnV0aWxzLmRyaXZlciBpbXBvcnQgZ2V0X2RyaXZlcgotCiBmcm9t IGNvbmZpZyBpbXBvcnQgUEdfREVGQVVMVF9EUklWRVIKLWZyb20gcGdhZG1p bi51dGlscy5hamF4IGltcG9ydCBnb25lCitmcm9tIHBnYWRtaW4udXRpbHMg aW1wb3J0IElTX1BZMgorIyBJZiB3ZSBhcmUgaW4gUHl0aG9uMworaWYgbm90 IElTX1BZMjoKKyAgICB1bmljb2RlID0gc3RyCiAKIAogY2xhc3MgRXhjbHVz aW9uQ29uc3RyYWludE1vZHVsZShDb25zdHJhaW50VHlwZU1vZHVsZSk6CkBA IC02MzcsNiArNjM5LDggQEAgY2xhc3MgRXhjbHVzaW9uQ29uc3RyYWludFZp ZXcoUEdDaGlsZE5vZGVWaWV3KToKICAgICAgICAgICAgIGRhdGFbJ3NjaGVt YSddID0gc2VsZi5zY2hlbWEKICAgICAgICAgICAgIGRhdGFbJ3RhYmxlJ10g PSBzZWxmLnRhYmxlCiAgICAgICAgICAgICBzcWwsIG5hbWUgPSBzZWxmLmdl dF9zcWwoZGF0YSwgZGlkLCB0aWQsIGV4aWQpCisgICAgICAgICAgICBpZiBu b3QgaXNpbnN0YW5jZShzcWwsIChzdHIsIHVuaWNvZGUpKToKKyAgICAgICAg ICAgICAgICByZXR1cm4gc3FsCiAgICAgICAgICAgICBzcWwgPSBzcWwuc3Ry aXAoJ1xuJykuc3RyaXAoJyAnKQogICAgICAgICAgICAgc3RhdHVzLCByZXMg PSBzZWxmLmNvbm4uZXhlY3V0ZV9zY2FsYXIoc3FsKQogICAgICAgICAgICAg aWYgbm90IHN0YXR1czoKQEAgLTc1Miw2ICs3NTYsOCBAQCBjbGFzcyBFeGNs dXNpb25Db25zdHJhaW50VmlldyhQR0NoaWxkTm9kZVZpZXcpOgogICAgICAg ICBkYXRhWyd0YWJsZSddID0gc2VsZi50YWJsZQogICAgICAgICB0cnk6CiAg ICAgICAgICAgICBzcWwsIG5hbWUgPSBzZWxmLmdldF9zcWwoZGF0YSwgZGlk LCB0aWQsIGV4aWQpCisgICAgICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShz cWwsIChzdHIsIHVuaWNvZGUpKToKKyAgICAgICAgICAgICAgICByZXR1cm4g c3FsCiAgICAgICAgICAgICBzcWwgPSBzcWwuc3RyaXAoJ1xuJykuc3RyaXAo JyAnKQogICAgICAgICAgICAgaWYgc3FsID09ICcnOgogICAgICAgICAgICAg ICAgIHNxbCA9ICItLW1vZGlmaWVkIFNRTCIKQEAgLTc4Myw2ICs3ODksOCBA QCBjbGFzcyBFeGNsdXNpb25Db25zdHJhaW50VmlldyhQR0NoaWxkTm9kZVZp ZXcpOgogICAgICAgICAgICAgc3RhdHVzLCByZXMgPSBzZWxmLmNvbm4uZXhl Y3V0ZV9kaWN0KHNxbCkKICAgICAgICAgICAgIGlmIG5vdCBzdGF0dXM6CiAg ICAgICAgICAgICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJvcihl cnJvcm1zZz1yZXMpCisgICAgICAgICAgICBpZiBsZW4ocmVzWydyb3dzJ10p ID09IDA6CisgICAgICAgICAgICAgICAgcmV0dXJuIGdvbmUoXygiQ291bGQg bm90IGZpbmQgdGhlIGV4Y2x1c2lvbiBjb25zdHJhaW50LiIpKQogCiAgICAg ICAgICAgICBvbGRfZGF0YSA9IHJlc1sncm93cyddWzBdCiAgICAgICAgICAg ICByZXF1aXJlZF9hcmdzID0gWyduYW1lJ10KQEAgLTgzMCw2ICs4MzgsOCBA QCBjbGFzcyBFeGNsdXNpb25Db25zdHJhaW50VmlldyhQR0NoaWxkTm9kZVZp ZXcpOgogICAgICAgICAgICAgc3RhdHVzLCByZXN1bHQgPSBzZWxmLmNvbm4u ZXhlY3V0ZV9kaWN0KFNRTCkKICAgICAgICAgICAgIGlmIG5vdCBzdGF0dXM6 CiAgICAgICAgICAgICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJv cihlcnJvcm1zZz1yZXN1bHQpCisgICAgICAgICAgICBpZiBsZW4ocmVzdWx0 Wydyb3dzJ10pID09IDA6CisgICAgICAgICAgICAgICAgcmV0dXJuIGdvbmUo XygiQ291bGQgbm90IGZpbmQgdGhlIGV4Y2x1c2lvbiBjb25zdHJhaW50LiIp KQogCiAgICAgICAgICAgICBkYXRhID0gcmVzdWx0Wydyb3dzJ11bMF0KICAg ICAgICAgICAgIGRhdGFbJ3NjaGVtYSddID0gc2VsZi5zY2hlbWEKQEAgLTkx Niw2ICs5MjYsOCBAQCBjbGFzcyBFeGNsdXNpb25Db25zdHJhaW50VmlldyhQ R0NoaWxkTm9kZVZpZXcpOgogICAgICAgICAgICAgc3RhdHVzLCByZXN1bHQg PSBzZWxmLmNvbm4uZXhlY3V0ZV9kaWN0KFNRTCkKICAgICAgICAgICAgIGlm IG5vdCBzdGF0dXM6CiAgICAgICAgICAgICAgICAgcmV0dXJuIGludGVybmFs X3NlcnZlcl9lcnJvcihlcnJvcm1zZz1yZXN1bHQpCisgICAgICAgICAgICBp ZiBsZW4ocmVzdWx0Wydyb3dzJ10pID09IDA6CisgICAgICAgICAgICAgICAg cmV0dXJuIGdvbmUoXygiQ291bGQgbm90IGZpbmQgdGhlIGV4Y2x1c2lvbiBj b25zdHJhaW50LiIpKQogCiAgICAgICAgICAgICBkYXRhID0gcmVzdWx0Wydy b3dzJ11bMF0KICAgICAgICAgICAgIG5hbWUgPSBkYXRhWyduYW1lJ10KZGlm ZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9jb25zdHJhaW50cy9m b3JlaWduX2tleS9fX2luaXRfXy5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIv c2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxl cy9jb25zdHJhaW50cy9mb3JlaWduX2tleS9fX2luaXRfXy5weQppbmRleCAw Y2E4OGUxLi5iZTMwNjEwIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90 YWJsZXMvY29uc3RyYWludHMvZm9yZWlnbl9rZXkvX19pbml0X18ucHkKKysr IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL2NvbnN0cmFpbnRzL2ZvcmVpZ25f a2V5L19faW5pdF9fLnB5CkBAIC0xOSwxMSArMTksMTMgQEAgZnJvbSBwZ2Fk bWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy5z Y2hlbWFzLnRhYmxlcy5jb25zdHJhaW50cy4KICAgICBpbXBvcnQgQ29uc3Ry YWludFJlZ2lzdHJ5LCBDb25zdHJhaW50VHlwZU1vZHVsZQogZnJvbSBwZ2Fk bWluLmJyb3dzZXIudXRpbHMgaW1wb3J0IFBHQ2hpbGROb2RlVmlldwogZnJv bSBwZ2FkbWluLnV0aWxzLmFqYXggaW1wb3J0IG1ha2VfanNvbl9yZXNwb25z ZSwgaW50ZXJuYWxfc2VydmVyX2Vycm9yLCBcCi0gICAgbWFrZV9yZXNwb25z ZSBhcyBhamF4X3Jlc3BvbnNlCisgICAgbWFrZV9yZXNwb25zZSBhcyBhamF4 X3Jlc3BvbnNlLCBnb25lCiBmcm9tIHBnYWRtaW4udXRpbHMuZHJpdmVyIGlt cG9ydCBnZXRfZHJpdmVyCi0KIGZyb20gY29uZmlnIGltcG9ydCBQR19ERUZB VUxUX0RSSVZFUgotZnJvbSBwZ2FkbWluLnV0aWxzLmFqYXggaW1wb3J0IGdv bmUKK2Zyb20gcGdhZG1pbi51dGlscyBpbXBvcnQgSVNfUFkyCisjIElmIHdl IGFyZSBpbiBQeXRob24zCitpZiBub3QgSVNfUFkyOgorICAgIHVuaWNvZGUg PSBzdHIKIAogCiBjbGFzcyBGb3JlaWduS2V5Q29uc3RyYWludE1vZHVsZShD b25zdHJhaW50VHlwZU1vZHVsZSk6CkBAIC02ODMsNiArNjg1LDggQEAgY2xh c3MgRm9yZWlnbktleUNvbnN0cmFpbnRWaWV3KFBHQ2hpbGROb2RlVmlldyk6 CiAgICAgICAgICAgICBkYXRhWydzY2hlbWEnXSA9IHNlbGYuc2NoZW1hCiAg ICAgICAgICAgICBkYXRhWyd0YWJsZSddID0gc2VsZi50YWJsZQogICAgICAg ICAgICAgc3FsLCBuYW1lID0gc2VsZi5nZXRfc3FsKGRhdGEsIHRpZCwgZmtp ZCkKKyAgICAgICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKHNxbCwgKHN0ciwg dW5pY29kZSkpOgorICAgICAgICAgICAgICAgIHJldHVybiBzcWwKICAgICAg ICAgICAgIHNxbCA9IHNxbC5zdHJpcCgnXG4nKS5zdHJpcCgnICcpCiAKICAg ICAgICAgICAgIHN0YXR1cywgcmVzID0gc2VsZi5jb25uLmV4ZWN1dGVfc2Nh bGFyKHNxbCkKQEAgLTgwNSw2ICs4MDksOCBAQCBjbGFzcyBGb3JlaWduS2V5 Q29uc3RyYWludFZpZXcoUEdDaGlsZE5vZGVWaWV3KToKICAgICAgICAgZGF0 YVsndGFibGUnXSA9IHNlbGYudGFibGUKICAgICAgICAgdHJ5OgogICAgICAg ICAgICAgc3FsLCBuYW1lID0gc2VsZi5nZXRfc3FsKGRhdGEsIHRpZCwgZmtp ZCkKKyAgICAgICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKHNxbCwgKHN0ciwg dW5pY29kZSkpOgorICAgICAgICAgICAgICAgIHJldHVybiBzcWwKICAgICAg ICAgICAgIHNxbCA9IHNxbC5zdHJpcCgnXG4nKS5zdHJpcCgnICcpCiAgICAg ICAgICAgICBpZiBzcWwgPT0gJyc6CiAgICAgICAgICAgICAgICAgc3FsID0g Ii0tbW9kaWZpZWQgU1FMIgpAQCAtODMzLDYgKzgzOSw4IEBAIGNsYXNzIEZv cmVpZ25LZXlDb25zdHJhaW50VmlldyhQR0NoaWxkTm9kZVZpZXcpOgogICAg ICAgICAgICAgc3RhdHVzLCByZXMgPSBzZWxmLmNvbm4uZXhlY3V0ZV9kaWN0 KHNxbCkKICAgICAgICAgICAgIGlmIG5vdCBzdGF0dXM6CiAgICAgICAgICAg ICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1zZz1y ZXMpCisgICAgICAgICAgICBpZiBsZW4ocmVzWydyb3dzJ10pID09IDA6Cisg ICAgICAgICAgICAgICAgcmV0dXJuIGdvbmUoXygiIiJDb3VsZCBub3QgZmlu ZCB0aGUgZm9yZWlnbiBrZXkuIiIiKSkKIAogICAgICAgICAgICAgb2xkX2Rh dGEgPSByZXNbJ3Jvd3MnXVswXQogICAgICAgICAgICAgcmVxdWlyZWRfYXJn cyA9IFsnbmFtZSddCkBAIC05MjUsNiArOTMzLDggQEAgY2xhc3MgRm9yZWln bktleUNvbnN0cmFpbnRWaWV3KFBHQ2hpbGROb2RlVmlldyk6CiAgICAgICAg IHN0YXR1cywgcmVzID0gc2VsZi5jb25uLmV4ZWN1dGVfZGljdChTUUwpCiAg ICAgICAgIGlmIG5vdCBzdGF0dXM6CiAgICAgICAgICAgICByZXR1cm4gaW50 ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXJlcykKKyAgICAgICAgaWYg bGVuKHJlc1sncm93cyddKSA9PSAwOgorICAgICAgICAgICAgcmV0dXJuIGdv bmUoXygiIiJDb3VsZCBub3QgZmluZCB0aGUgZm9yZWlnbiBrZXkuIiIiKSkK IAogICAgICAgICBkYXRhID0gcmVzWydyb3dzJ11bMF0KICAgICAgICAgZGF0 YVsnc2NoZW1hJ10gPSBzZWxmLnNjaGVtYQpkaWZmIC0tZ2l0IGEvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L3NjaGVtYXMvdGFibGVzL2NvbnN0cmFpbnRzL2luZGV4X2NvbnN0cmFpbnQv X19pbml0X18ucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91 cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvY29uc3RyYWlu dHMvaW5kZXhfY29uc3RyYWludC9fX2luaXRfXy5weQppbmRleCBkNWVlNDQ2 Li5lN2ExMmNjIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMv Y29uc3RyYWludHMvaW5kZXhfY29uc3RyYWludC9fX2luaXRfXy5weQorKysg Yi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9k YXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvY29uc3RyYWludHMvaW5kZXhfY29u c3RyYWludC9fX2luaXRfXy5weQpAQCAtMTksMTEgKzE5LDEzIEBAIGZyb20g cGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFz ZXMuc2NoZW1hcy50YWJsZXMuY29uc3RyYWludHMuCiAgICAgaW1wb3J0IENv bnN0cmFpbnRSZWdpc3RyeSwgQ29uc3RyYWludFR5cGVNb2R1bGUKIGZyb20g cGdhZG1pbi5icm93c2VyLnV0aWxzIGltcG9ydCBQR0NoaWxkTm9kZVZpZXcK IGZyb20gcGdhZG1pbi51dGlscy5hamF4IGltcG9ydCBtYWtlX2pzb25fcmVz cG9uc2UsIGludGVybmFsX3NlcnZlcl9lcnJvciwgXAotICAgIG1ha2VfcmVz cG9uc2UgYXMgYWpheF9yZXNwb25zZQorICAgIG1ha2VfcmVzcG9uc2UgYXMg YWpheF9yZXNwb25zZSwgZ29uZQogZnJvbSBwZ2FkbWluLnV0aWxzLmRyaXZl ciBpbXBvcnQgZ2V0X2RyaXZlcgotCiBmcm9tIGNvbmZpZyBpbXBvcnQgUEdf REVGQVVMVF9EUklWRVIKLWZyb20gcGdhZG1pbi51dGlscy5hamF4IGltcG9y dCBnb25lCitmcm9tIHBnYWRtaW4udXRpbHMgaW1wb3J0IElTX1BZMgorIyBJ ZiB3ZSBhcmUgaW4gUHl0aG9uMworaWYgbm90IElTX1BZMjoKKyAgICB1bmlj b2RlID0gc3RyCiAKIAogY2xhc3MgSW5kZXhDb25zdHJhaW50TW9kdWxlKENv bnN0cmFpbnRUeXBlTW9kdWxlKToKQEAgLTY2Nyw2ICs2NjksOCBAQCBjbGFz cyBJbmRleENvbnN0cmFpbnRWaWV3KFBHQ2hpbGROb2RlVmlldyk6CiAgICAg ICAgICAgICBkYXRhWydzY2hlbWEnXSA9IHNlbGYuc2NoZW1hCiAgICAgICAg ICAgICBkYXRhWyd0YWJsZSddID0gc2VsZi50YWJsZQogICAgICAgICAgICAg c3FsLCBuYW1lID0gc2VsZi5nZXRfc3FsKGRhdGEsIGRpZCwgdGlkLCBjaWQp CisgICAgICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShzcWwsIChzdHIsIHVu aWNvZGUpKToKKyAgICAgICAgICAgICAgICByZXR1cm4gc3FsCiAgICAgICAg ICAgICBzcWwgPSBzcWwuc3RyaXAoJ1xuJykuc3RyaXAoJyAnKQogCiAgICAg ICAgICAgICBzdGF0dXMsIHJlcyA9IHNlbGYuY29ubi5leGVjdXRlX3NjYWxh cihzcWwpCkBAIC03ODcsNiArNzkxLDggQEAgY2xhc3MgSW5kZXhDb25zdHJh aW50VmlldyhQR0NoaWxkTm9kZVZpZXcpOgogICAgICAgICBkYXRhWyd0YWJs ZSddID0gc2VsZi50YWJsZQogICAgICAgICB0cnk6CiAgICAgICAgICAgICBz cWwsIG5hbWUgPSBzZWxmLmdldF9zcWwoZGF0YSwgZGlkLCB0aWQsIGNpZCkK KyAgICAgICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKHNxbCwgKHN0ciwgdW5p Y29kZSkpOgorICAgICAgICAgICAgICAgIHJldHVybiBzcWwKICAgICAgICAg ICAgIHNxbCA9IHNxbC5zdHJpcCgnXG4nKS5zdHJpcCgnICcpCiAgICAgICAg ICAgICBpZiBzcWwgPT0gJyc6CiAgICAgICAgICAgICAgICAgc3FsID0gIi0t bW9kaWZpZWQgU1FMIgpAQCAtODE5LDYgKzgyNSwxMCBAQCBjbGFzcyBJbmRl eENvbnN0cmFpbnRWaWV3KFBHQ2hpbGROb2RlVmlldyk6CiAgICAgICAgICAg ICBzdGF0dXMsIHJlcyA9IHNlbGYuY29ubi5leGVjdXRlX2RpY3Qoc3FsKQog ICAgICAgICAgICAgaWYgbm90IHN0YXR1czoKICAgICAgICAgICAgICAgICBy ZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXJlcykKKyAg ICAgICAgICAgIGlmIGxlbihyZXNbJ3Jvd3MnXSkgPT0gMDoKKyAgICAgICAg ICAgICAgICByZXR1cm4gZ29uZShfKCIiIkNvdWxkIG5vdCBmaW5kIHRoZSB7 fSBpbiB0aGUgdGFibGUuIiIiLmZvcm1hdCgKKyAgICAgICAgICAgICAgICAg ICAgInByaW1hcnkga2V5IiBpZiBzZWxmLmNvbnN0cmFpbnRfdHlwZSA9PSAi cCIgZWxzZSAidW5pcXVlIGtleSIKKyAgICAgICAgICAgICAgICApKSkKIAog ICAgICAgICAgICAgb2xkX2RhdGEgPSByZXNbJ3Jvd3MnXVswXQogICAgICAg ICAgICAgcmVxdWlyZWRfYXJncyA9IFt1J25hbWUnXQpAQCAtODg0LDYgKzg5 NCwxMCBAQCBjbGFzcyBJbmRleENvbnN0cmFpbnRWaWV3KFBHQ2hpbGROb2Rl Vmlldyk6CiAgICAgICAgIHN0YXR1cywgcmVzID0gc2VsZi5jb25uLmV4ZWN1 dGVfZGljdChTUUwpCiAgICAgICAgIGlmIG5vdCBzdGF0dXM6CiAgICAgICAg ICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXJl cykKKyAgICAgICAgaWYgbGVuKHJlc1sncm93cyddKSA9PSAwOgorICAgICAg ICAgICAgcmV0dXJuIGdvbmUoXygiIiJDb3VsZCBub3QgZmluZCB0aGUge30g aW4gdGhlIHRhYmxlLiIiIi5mb3JtYXQoCisgICAgICAgICAgICAgICAgInBy aW1hcnkga2V5IiBpZiBzZWxmLmNvbnN0cmFpbnRfdHlwZSA9PSAicCIgZWxz ZSAidW5pcXVlIGtleSIKKyAgICAgICAgICAgICkpKQogCiAgICAgICAgIGRh dGEgPSByZXNbJ3Jvd3MnXVswXQogICAgICAgICBkYXRhWydzY2hlbWEnXSA9 IHNlbGYuc2NoZW1hCkBAIC05NTcsNiArOTcxLDEwIEBAIGNsYXNzIEluZGV4 Q29uc3RyYWludFZpZXcoUEdDaGlsZE5vZGVWaWV3KToKIAogICAgICAgICAg ICAgaWYgbm90IHN0YXR1czoKICAgICAgICAgICAgICAgICByZXR1cm4gaW50 ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXJlcykKKyAgICAgICAgICAg IGlmIGxlbihyZXNbJ3Jvd3MnXSkgPT0gMDoKKyAgICAgICAgICAgICAgICBy ZXR1cm4gZ29uZShfKCIiIkNvdWxkIG5vdCBmaW5kIHRoZSB7fSBpbiB0aGUg dGFibGUuIiIiLmZvcm1hdCgKKyAgICAgICAgICAgICAgICAgICAgInByaW1h cnkga2V5IiBpZiBzZWxmLmNvbnN0cmFpbnRfdHlwZSA9PSAicCIgZWxzZSAi dW5pcXVlIGtleSIKKyAgICAgICAgICAgICAgICApKSkKIAogICAgICAgICAg ICAgcmVzdWx0ID0gcmVzWydyb3dzJ11bMF0KICAgICAgICAgICAgIG5hbWUg PSByZXN1bHRbJ25hbWUnXQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMv dGFibGVzL2luZGV4ZXMvX19pbml0X18ucHkgYi93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90 YWJsZXMvaW5kZXhlcy9fX2luaXRfXy5weQppbmRleCA2ZDg2ODBkLi5lNTJj MTViIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvaW5kZXhl cy9fX2luaXRfXy5weQorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvaW5k ZXhlcy9fX2luaXRfXy5weQpAQCAtMTgsMTEgKzE4LDEzIEBAIGZyb20gZmxh c2tfYmFiZWwgaW1wb3J0IGdldHRleHQKIGZyb20gcGdhZG1pbi5icm93c2Vy LmNvbGxlY3Rpb24gaW1wb3J0IENvbGxlY3Rpb25Ob2RlTW9kdWxlCiBmcm9t IHBnYWRtaW4uYnJvd3Nlci51dGlscyBpbXBvcnQgUEdDaGlsZE5vZGVWaWV3 CiBmcm9tIHBnYWRtaW4udXRpbHMuYWpheCBpbXBvcnQgbWFrZV9qc29uX3Jl c3BvbnNlLCBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IsIFwKLSAgICBtYWtlX3Jl c3BvbnNlIGFzIGFqYXhfcmVzcG9uc2UKKyAgICBtYWtlX3Jlc3BvbnNlIGFz IGFqYXhfcmVzcG9uc2UsIGdvbmUKIGZyb20gcGdhZG1pbi51dGlscy5kcml2 ZXIgaW1wb3J0IGdldF9kcml2ZXIKLQogZnJvbSBjb25maWcgaW1wb3J0IFBH X0RFRkFVTFRfRFJJVkVSCi1mcm9tIHBnYWRtaW4udXRpbHMuYWpheCBpbXBv cnQgZ29uZQorZnJvbSBwZ2FkbWluLnV0aWxzIGltcG9ydCBJU19QWTIKKyMg SWYgd2UgYXJlIGluIFB5dGhvbjMKK2lmIG5vdCBJU19QWTI6CisgICAgdW5p Y29kZSA9IHN0cgogCiAKIGNsYXNzIEluZGV4ZXNNb2R1bGUoQ29sbGVjdGlv bk5vZGVNb2R1bGUpOgpAQCAtNzI0LDYgKzcyNiw4IEBAIGNsYXNzIEluZGV4 ZXNWaWV3KFBHQ2hpbGROb2RlVmlldyk6CiAgICAgICAgIGRhdGFbJ3RhYmxl J10gPSBzZWxmLnRhYmxlCiAgICAgICAgIHRyeToKICAgICAgICAgICAgIFNR TCwgbmFtZSA9IHNlbGYuZ2V0X3NxbChkaWQsIHNjaWQsIHRpZCwgaWR4LCBk YXRhKQorICAgICAgICAgICAgaWYgbm90IGlzaW5zdGFuY2UoU1FMLCAoc3Ry LCB1bmljb2RlKSk6CisgICAgICAgICAgICAgICAgcmV0dXJuIFNRTAogICAg ICAgICAgICAgU1FMID0gU1FMLnN0cmlwKCdcbicpLnN0cmlwKCcgJykKICAg ICAgICAgICAgIHN0YXR1cywgcmVzID0gc2VsZi5jb25uLmV4ZWN1dGVfc2Nh bGFyKFNRTCkKICAgICAgICAgICAgIGlmIG5vdCBzdGF0dXM6CkBAIC03NjYs NiArNzcwLDggQEAgY2xhc3MgSW5kZXhlc1ZpZXcoUEdDaGlsZE5vZGVWaWV3 KToKIAogICAgICAgICB0cnk6CiAgICAgICAgICAgICBzcWwsIG5hbWUgPSBz ZWxmLmdldF9zcWwoZGlkLCBzY2lkLCB0aWQsIGlkeCwgZGF0YSwgbW9kZT0n Y3JlYXRlJykKKyAgICAgICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKHNxbCwg KHN0ciwgdW5pY29kZSkpOgorICAgICAgICAgICAgICAgIHJldHVybiBzcWwK ICAgICAgICAgICAgIHNxbCA9IHNxbC5zdHJpcCgnXG4nKS5zdHJpcCgnICcp CiAgICAgICAgICAgICBpZiBzcWwgPT0gJyc6CiAgICAgICAgICAgICAgICAg c3FsID0gIi0tbW9kaWZpZWQgU1FMIgpAQCAtNzg5LDYgKzc5NSw4IEBAIGNs YXNzIEluZGV4ZXNWaWV3KFBHQ2hpbGROb2RlVmlldyk6CiAgICAgICAgICAg ICBzdGF0dXMsIHJlcyA9IHNlbGYuY29ubi5leGVjdXRlX2RpY3QoU1FMKQog ICAgICAgICAgICAgaWYgbm90IHN0YXR1czoKICAgICAgICAgICAgICAgICBy ZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXJlcykKKyAg ICAgICAgICAgIGlmIGxlbihyZXNbJ3Jvd3MnXSkgPT0gMDoKKyAgICAgICAg ICAgICAgICByZXR1cm4gZ29uZShnZXR0ZXh0KCIiIkNvdWxkIG5vdCBmaW5k IHRoZSBpbmRleCBpbiB0aGUgdGFibGUuIiIiKSkKIAogICAgICAgICAgICAg b2xkX2RhdGEgPSBkaWN0KHJlc1sncm93cyddWzBdKQogCkBAIC04NDgsNiAr ODU2LDggQEAgY2xhc3MgSW5kZXhlc1ZpZXcoUEdDaGlsZE5vZGVWaWV3KToK ICAgICAgICAgc3RhdHVzLCByZXMgPSBzZWxmLmNvbm4uZXhlY3V0ZV9kaWN0 KFNRTCkKICAgICAgICAgaWYgbm90IHN0YXR1czoKICAgICAgICAgICAgIHJl dHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9cmVzKQorICAg ICAgICBpZiBsZW4ocmVzWydyb3dzJ10pID09IDA6CisgICAgICAgICAgICBy ZXR1cm4gZ29uZShnZXR0ZXh0KCIiIkNvdWxkIG5vdCBmaW5kIHRoZSBpbmRl eCBpbiB0aGUgdGFibGUuIiIiKSkKIAogICAgICAgICBkYXRhID0gZGljdChy ZXNbJ3Jvd3MnXVswXSkKICAgICAgICAgIyBBZGRpbmcgcGFyZW50IGludG8g ZGF0YSBkaWN0LCB3aWxsIGJlIHVzaW5nIGl0IHdoaWxlIGNyZWF0aW5nIHNx bApAQCAtODU4LDcgKzg2OCw4IEBAIGNsYXNzIEluZGV4ZXNWaWV3KFBHQ2hp bGROb2RlVmlldyk6CiAgICAgICAgIGRhdGEgPSBzZWxmLl9jb2x1bW5fZGV0 YWlscyhpZHgsIGRhdGEpCiAKICAgICAgICAgU1FMLCBuYW1lID0gc2VsZi5n ZXRfc3FsKGRpZCwgc2NpZCwgdGlkLCBOb25lLCBkYXRhKQotCisgICAgICAg IGlmIG5vdCBpc2luc3RhbmNlKFNRTCwgKHN0ciwgdW5pY29kZSkpOgorICAg ICAgICAgICAgcmV0dXJuIFNRTAogICAgICAgICBzcWxfaGVhZGVyID0gdSIt LSBJbmRleDogezB9XG5cbi0tICIuZm9ybWF0KGRhdGFbJ25hbWUnXSkKIAog ICAgICAgICBzcWxfaGVhZGVyICs9IHJlbmRlcl90ZW1wbGF0ZSgiLyIuam9p bihbc2VsZi50ZW1wbGF0ZV9wYXRoLApAQCAtOTU1LDYgKzk2NiwxMCBAQCBj bGFzcyBJbmRleGVzVmlldyhQR0NoaWxkTm9kZVZpZXcpOgogICAgICAgICAg ICAgICAgIHN0YXR1cywgcmVzID0gc2VsZi5jb25uLmV4ZWN1dGVfZGljdChT UUwpCiAgICAgICAgICAgICAgICAgaWYgbm90IHN0YXR1czoKICAgICAgICAg ICAgICAgICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJvcihlcnJv cm1zZz1yZXMpCisgICAgICAgICAgICAgICAgaWYgbGVuKHJlc1sncm93cydd KSA9PSAwOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4gZ29uZSgKKyAg ICAgICAgICAgICAgICAgICAgICAgIGdldHRleHQoIiIiQ291bGQgbm90IGZp bmQgdGhlIGluZGV4IGluIHRoZSB0YWJsZS4iIiIpCisgICAgICAgICAgICAg ICAgICAgICkKIAogICAgICAgICAgICAgICAgIGRhdGEgPSBkaWN0KHJlc1sn cm93cyddWzBdKQogICAgICAgICAgICAgICAgIGluZGV4ID0gZGF0YVsnbmFt ZSddCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvcnVsZXMv X19pbml0X18ucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91 cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvcnVsZXMvX19p bml0X18ucHkKaW5kZXggNjA3MWE2ZC4uYzMxOGU1MiAxMDA2NDQKLS0tIGEv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL3NjaGVtYXMvdGFibGVzL3J1bGVzL19faW5pdF9fLnB5CisrKyBi L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9ydWxlcy9fX2luaXRfXy5weQpAQCAt MjAsMTEgKzIwLDEzIEBAIGZyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9n cm91cHMuc2VydmVycy5kYXRhYmFzZXMuc2NoZW1hcy51dGlscyBpbXBvcnQg XAogICAgIHBhcnNlX3J1bGVfZGVmaW5pdGlvbgogZnJvbSBwZ2FkbWluLmJy b3dzZXIudXRpbHMgaW1wb3J0IFBHQ2hpbGROb2RlVmlldwogZnJvbSBwZ2Fk bWluLnV0aWxzLmFqYXggaW1wb3J0IG1ha2VfanNvbl9yZXNwb25zZSwgaW50 ZXJuYWxfc2VydmVyX2Vycm9yLCBcCi0gICAgbWFrZV9yZXNwb25zZSBhcyBh amF4X3Jlc3BvbnNlCisgICAgbWFrZV9yZXNwb25zZSBhcyBhamF4X3Jlc3Bv bnNlLCBnb25lCiBmcm9tIHBnYWRtaW4udXRpbHMuZHJpdmVyIGltcG9ydCBn ZXRfZHJpdmVyCi0KIGZyb20gY29uZmlnIGltcG9ydCBQR19ERUZBVUxUX0RS SVZFUgotZnJvbSBwZ2FkbWluLnV0aWxzLmFqYXggaW1wb3J0IGdvbmUKK2Zy b20gcGdhZG1pbi51dGlscyBpbXBvcnQgSVNfUFkyCisjIElmIHdlIGFyZSBp biBQeXRob24zCitpZiBub3QgSVNfUFkyOgorICAgIHVuaWNvZGUgPSBzdHIK IAogCiBjbGFzcyBSdWxlTW9kdWxlKENvbGxlY3Rpb25Ob2RlTW9kdWxlKToK QEAgLTM1NCw2ICszNTYsOCBAQCBjbGFzcyBSdWxlVmlldyhQR0NoaWxkTm9k ZVZpZXcpOgogICAgICAgICApCiAgICAgICAgIHRyeToKICAgICAgICAgICAg IFNRTCwgbmFtZSA9IHNlbGYuZ2V0U1FMKGdpZCwgc2lkLCBkYXRhLCB0aWQs IHJpZCkKKyAgICAgICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKFNRTCwgKHN0 ciwgdW5pY29kZSkpOgorICAgICAgICAgICAgICAgIHJldHVybiBTUUwKICAg ICAgICAgICAgIFNRTCA9IFNRTC5zdHJpcCgnXG4nKS5zdHJpcCgnICcpCiAg ICAgICAgICAgICBzdGF0dXMsIHJlcyA9IHNlbGYuY29ubi5leGVjdXRlX3Nj YWxhcihTUUwpCiAgICAgICAgICAgICBpZiBub3Qgc3RhdHVzOgpAQCAtNDMw LDYgKzQzNCw4IEBAIGNsYXNzIFJ1bGVWaWV3KFBHQ2hpbGROb2RlVmlldyk6 CiAgICAgICAgICIiIgogICAgICAgICBkYXRhID0gcmVxdWVzdC5hcmdzCiAg ICAgICAgIHNxbCwgbmFtZSA9IHNlbGYuZ2V0U1FMKGdpZCwgc2lkLCBkYXRh LCB0aWQsIHJpZCkKKyAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uoc3FsLCAo c3RyLCB1bmljb2RlKSk6CisgICAgICAgICAgICByZXR1cm4gc3FsCiAgICAg ICAgIHNxbCA9IHNxbC5zdHJpcCgnXG4nKS5zdHJpcCgnICcpCiAKICAgICAg ICAgaWYgc3FsID09ICcnOgpAQCAtNDQ5LDYgKzQ1NSw5IEBAIGNsYXNzIFJ1 bGVWaWV3KFBHQ2hpbGROb2RlVmlldyk6CiAgICAgICAgIHN0YXR1cywgcmVz ID0gc2VsZi5jb25uLmV4ZWN1dGVfZGljdChTUUwpCiAgICAgICAgIGlmIG5v dCBzdGF0dXM6CiAgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVy X2Vycm9yKGVycm9ybXNnPXJlcykKKyAgICAgICAgaWYgbGVuKHJlc1sncm93 cyddKSA9PSAwOgorICAgICAgICAgICAgcmV0dXJuIGdvbmUoZ2V0dGV4dCgi IiJDb3VsZCBub3QgZmluZCB0aGUgcnVsZSBpbiB0aGUgdGFibGUuIiIiKSkK KwogICAgICAgICByZXNfZGF0YSA9IHBhcnNlX3J1bGVfZGVmaW5pdGlvbihy ZXMpCiAgICAgICAgIFNRTCA9IHJlbmRlcl90ZW1wbGF0ZSgiLyIuam9pbigK ICAgICAgICAgICAgIFtzZWxmLnRlbXBsYXRlX3BhdGgsICdjcmVhdGUuc3Fs J10pLApAQCAtNDY1LDkgKzQ3NCwxMiBAQCBjbGFzcyBSdWxlVmlldyhQR0No aWxkTm9kZVZpZXcpOgogICAgICAgICAgICAgU1FMID0gcmVuZGVyX3RlbXBs YXRlKCIvIi5qb2luKAogICAgICAgICAgICAgICAgIFtzZWxmLnRlbXBsYXRl X3BhdGgsICdwcm9wZXJ0aWVzLnNxbCddKSwgcmlkPXJpZCkKICAgICAgICAg ICAgIHN0YXR1cywgcmVzID0gc2VsZi5jb25uLmV4ZWN1dGVfZGljdChTUUwp Ci0gICAgICAgICAgICByZXNfZGF0YSA9IHBhcnNlX3J1bGVfZGVmaW5pdGlv bihyZXMpCiAgICAgICAgICAgICBpZiBub3Qgc3RhdHVzOgogICAgICAgICAg ICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9 cmVzKQorICAgICAgICAgICAgaWYgbGVuKHJlc1sncm93cyddKSA9PSAwOgor ICAgICAgICAgICAgICAgIHJldHVybiBnb25lKGdldHRleHQoIiIiQ291bGQg bm90IGZpbmQgdGhlIHJ1bGUgaW4gdGhlIHRhYmxlLiIiIikpCisgICAgICAg ICAgICByZXNfZGF0YSA9IHBhcnNlX3J1bGVfZGVmaW5pdGlvbihyZXMpCisK ICAgICAgICAgICAgIG9sZF9kYXRhID0gcmVzX2RhdGEKICAgICAgICAgICAg IFNRTCA9IHJlbmRlcl90ZW1wbGF0ZSgKICAgICAgICAgICAgICAgICAiLyIu am9pbihbc2VsZi50ZW1wbGF0ZV9wYXRoLCAndXBkYXRlLnNxbCddKSwKZGlm ZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy90cmlnZ2Vycy9fX2lu aXRfXy5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy90cmlnZ2Vycy9fX2lu aXRfXy5weQppbmRleCBmM2NmMWYwLi5iZTA0MDRmIDEwMDY0NAotLS0gYS93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvc2NoZW1hcy90YWJsZXMvdHJpZ2dlcnMvX19pbml0X18ucHkKKysr IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3RyaWdnZXJzL19faW5pdF9fLnB5 CkBAIC0xOCwxMSArMTgsMTMgQEAgZnJvbSBmbGFza19iYWJlbCBpbXBvcnQg Z2V0dGV4dAogZnJvbSBwZ2FkbWluLmJyb3dzZXIuY29sbGVjdGlvbiBpbXBv cnQgQ29sbGVjdGlvbk5vZGVNb2R1bGUKIGZyb20gcGdhZG1pbi5icm93c2Vy LnV0aWxzIGltcG9ydCBQR0NoaWxkTm9kZVZpZXcKIGZyb20gcGdhZG1pbi51 dGlscy5hamF4IGltcG9ydCBtYWtlX2pzb25fcmVzcG9uc2UsIGludGVybmFs X3NlcnZlcl9lcnJvciwgXAotICAgIG1ha2VfcmVzcG9uc2UgYXMgYWpheF9y ZXNwb25zZQorICAgIG1ha2VfcmVzcG9uc2UgYXMgYWpheF9yZXNwb25zZSwg Z29uZQogZnJvbSBwZ2FkbWluLnV0aWxzLmRyaXZlciBpbXBvcnQgZ2V0X2Ry aXZlcgotCiBmcm9tIGNvbmZpZyBpbXBvcnQgUEdfREVGQVVMVF9EUklWRVIK LWZyb20gcGdhZG1pbi51dGlscy5hamF4IGltcG9ydCBnb25lCitmcm9tIHBn YWRtaW4udXRpbHMgaW1wb3J0IElTX1BZMgorIyBJZiB3ZSBhcmUgaW4gUHl0 aG9uMworaWYgbm90IElTX1BZMjoKKyAgICB1bmljb2RlID0gc3RyCiAKIAog Y2xhc3MgVHJpZ2dlck1vZHVsZShDb2xsZWN0aW9uTm9kZU1vZHVsZSk6CkBA IC03MzQsNiArNzM2LDggQEAgY2xhc3MgVHJpZ2dlclZpZXcoUEdDaGlsZE5v ZGVWaWV3KToKICAgICAgICAgICAgIGRhdGFbJ3RhYmxlJ10gPSBzZWxmLnRh YmxlCiAKICAgICAgICAgICAgIFNRTCwgbmFtZSA9IHNlbGYuZ2V0X3NxbChz Y2lkLCB0aWQsIHRyaWQsIGRhdGEpCisgICAgICAgICAgICBpZiBub3QgaXNp bnN0YW5jZShTUUwsIChzdHIsIHVuaWNvZGUpKToKKyAgICAgICAgICAgICAg ICByZXR1cm4gU1FMCiAgICAgICAgICAgICBTUUwgPSBTUUwuc3RyaXAoJ1xu Jykuc3RyaXAoJyAnKQogICAgICAgICAgICAgc3RhdHVzLCByZXMgPSBzZWxm LmNvbm4uZXhlY3V0ZV9zY2FsYXIoU1FMKQogICAgICAgICAgICAgaWYgbm90 IHN0YXR1czoKQEAgLTc4Niw3ICs3OTAsOCBAQCBjbGFzcyBUcmlnZ2VyVmll dyhQR0NoaWxkTm9kZVZpZXcpOgogCiAgICAgICAgIHRyeToKICAgICAgICAg ICAgIHNxbCwgbmFtZSA9IHNlbGYuZ2V0X3NxbChzY2lkLCB0aWQsIHRyaWQs IGRhdGEpCi0KKyAgICAgICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKFNRTCwg KHN0ciwgdW5pY29kZSkpOgorICAgICAgICAgICAgICAgIHJldHVybiBTUUwK ICAgICAgICAgICAgIHNxbCA9IHNxbC5zdHJpcCgnXG4nKS5zdHJpcCgnICcp CiAKICAgICAgICAgICAgIGlmIHNxbCA9PSAnJzoKQEAgLTgzNSw2ICs4NDAs MTAgQEAgY2xhc3MgVHJpZ2dlclZpZXcoUEdDaGlsZE5vZGVWaWV3KToKICAg ICAgICAgICAgIHN0YXR1cywgcmVzID0gc2VsZi5jb25uLmV4ZWN1dGVfZGlj dChTUUwpCiAgICAgICAgICAgICBpZiBub3Qgc3RhdHVzOgogICAgICAgICAg ICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9 cmVzKQorICAgICAgICAgICAgaWYgbGVuKHJlc1sncm93cyddKSA9PSAwOgor ICAgICAgICAgICAgICAgIHJldHVybiBnb25lKAorICAgICAgICAgICAgICAg ICAgICBnZXR0ZXh0KCIiIkNvdWxkIG5vdCBmaW5kIHRoZSB0cmlnZ2VyIGlu IHRoZSB0YWJsZS4iIiIpCisgICAgICAgICAgICAgICAgKQogCiAgICAgICAg ICAgICBvbGRfZGF0YSA9IGRpY3QocmVzWydyb3dzJ11bMF0pCiAKQEAgLTkw MCw2ICs5MDksOCBAQCBjbGFzcyBUcmlnZ2VyVmlldyhQR0NoaWxkTm9kZVZp ZXcpOgogICAgICAgICBzdGF0dXMsIHJlcyA9IHNlbGYuY29ubi5leGVjdXRl X2RpY3QoU1FMKQogICAgICAgICBpZiBub3Qgc3RhdHVzOgogICAgICAgICAg ICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1zZz1yZXMp CisgICAgICAgIGlmIGxlbihyZXNbJ3Jvd3MnXSkgPT0gMDoKKyAgICAgICAg ICAgIHJldHVybiBnb25lKGdldHRleHQoIiIiQ291bGQgbm90IGZpbmQgdGhl IHRyaWdnZXIgaW4gdGhlIHRhYmxlLiIiIikpCiAKICAgICAgICAgZGF0YSA9 IGRpY3QocmVzWydyb3dzJ11bMF0pCiAgICAgICAgICMgQWRkaW5nIHBhcmVu dCBpbnRvIGRhdGEgZGljdCwgd2lsbCBiZSB1c2luZyBpdCB3aGlsZSBjcmVh dGluZyBzcWwKQEAgLTk2OCw2ICs5NzksMTAgQEAgY2xhc3MgVHJpZ2dlclZp ZXcoUEdDaGlsZE5vZGVWaWV3KToKICAgICAgICAgICAgIHN0YXR1cywgcmVz ID0gc2VsZi5jb25uLmV4ZWN1dGVfZGljdChTUUwpCiAgICAgICAgICAgICBp ZiBub3Qgc3RhdHVzOgogICAgICAgICAgICAgICAgIHJldHVybiBpbnRlcm5h bF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9cmVzKQorICAgICAgICAgICAgaWYg bGVuKHJlc1sncm93cyddKSA9PSAwOgorICAgICAgICAgICAgICAgIHJldHVy biBnb25lKAorICAgICAgICAgICAgICAgICAgICBnZXR0ZXh0KCIiIkNvdWxk IG5vdCBmaW5kIHRoZSB0cmlnZ2VyIGluIHRoZSB0YWJsZS4iIiIpCisgICAg ICAgICAgICAgICAgKQogCiAgICAgICAgICAgICBvX2RhdGEgPSBkaWN0KHJl c1sncm93cyddWzBdKQogCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90 eXBlcy9fX2luaXRfXy5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3R5cGVzL19faW5p dF9fLnB5CmluZGV4IGVkODQ5MTYuLjAzMWUxYjcgMTAwNjQ0Ci0tLSBhL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy9zY2hlbWFzL3R5cGVzL19faW5pdF9fLnB5CisrKyBiL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9z Y2hlbWFzL3R5cGVzL19faW5pdF9fLnB5CkBAIC0yMSwxMSArMjEsMTMgQEAg ZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLnV0 aWxzIGltcG9ydCBwYXJzZV9wcml2X2Zyb21fZGIsIFwKICAgICBwYXJzZV9w cml2X3RvX2RiCiBmcm9tIHBnYWRtaW4uYnJvd3Nlci51dGlscyBpbXBvcnQg UEdDaGlsZE5vZGVWaWV3CiBmcm9tIHBnYWRtaW4udXRpbHMuYWpheCBpbXBv cnQgbWFrZV9qc29uX3Jlc3BvbnNlLCBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3Is IFwKLSAgICBtYWtlX3Jlc3BvbnNlIGFzIGFqYXhfcmVzcG9uc2UKKyAgICBt YWtlX3Jlc3BvbnNlIGFzIGFqYXhfcmVzcG9uc2UsIGdvbmUKIGZyb20gcGdh ZG1pbi51dGlscy5kcml2ZXIgaW1wb3J0IGdldF9kcml2ZXIKLQogZnJvbSBj b25maWcgaW1wb3J0IFBHX0RFRkFVTFRfRFJJVkVSCi1mcm9tIHBnYWRtaW4u dXRpbHMuYWpheCBpbXBvcnQgZ29uZQorZnJvbSBwZ2FkbWluLnV0aWxzIGlt cG9ydCBJU19QWTIKKyMgSWYgd2UgYXJlIGluIFB5dGhvbjMKK2lmIG5vdCBJ U19QWTI6CisgICAgdW5pY29kZSA9IHN0cgogCiAKIGNsYXNzIFR5cGVNb2R1 bGUoU2NoZW1hQ2hpbGRNb2R1bGUpOgpAQCAtMjk0LDcgKzI5Niw3IEBAIGNs YXNzIFR5cGVWaWV3KFBHQ2hpbGROb2RlVmlldywgRGF0YVR5cGVSZWFkZXIp OgogICAgICAgICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJvcihl cnJvcm1zZz1yc2V0KQogCiAgICAgICAgIGlmIGxlbihyc2V0Wydyb3dzJ10p ID09IDA6Ci0gICAgICAgICAgICByZXR1cm4gZ29uZShnZXR0ZXh0KCIiIkNv dWxkIG5vdCBmaW5kIHRoZSB0eXBlIGluIHRoZSB0YWJsZS4iIiIpKQorICAg ICAgICAgICAgcmV0dXJuIGdvbmUoZ2V0dGV4dCgiIiJDb3VsZCBub3QgZmlu ZCB0aGUgdHlwZSBpbiB0aGUgZGF0YWJhc2UuIiIiKSkKIAogICAgICAgICBy ZXMgPSBzZWxmLmJsdWVwcmludC5nZW5lcmF0ZV9icm93c2VyX25vZGUoCiAg ICAgICAgICAgICAgICAgcnNldFsncm93cyddWzBdWydvaWQnXSwKQEAgLTUz Nyw3ICs1MzksNyBAQCBjbGFzcyBUeXBlVmlldyhQR0NoaWxkTm9kZVZpZXcs IERhdGFUeXBlUmVhZGVyKToKICAgICAgICAgICAgIHJldHVybiBpbnRlcm5h bF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9cmVzKQogCiAgICAgICAgIGlmIGxl bihyZXNbJ3Jvd3MnXSkgPT0gMDoKLSAgICAgICAgICAgIHJldHVybiBnb25l KGdldHRleHQoIiIiQ291bGQgbm90IGZpbmQgdGhlIHR5cGUgaW4gdGhlIHRh YmxlLiIiIikpCisgICAgICAgICAgICByZXR1cm4gZ29uZShnZXR0ZXh0KCIi IkNvdWxkIG5vdCBmaW5kIHRoZSB0eXBlIGluIHRoZSBkYXRhYmFzZS4iIiIp KQogCiAgICAgICAgICMgTWFraW5nIGNvcHkgb2Ygb3V0cHV0IGZvciBmdXR1 cmUgdXNlCiAgICAgICAgIGNvcHlfZGljdCA9IGRpY3QocmVzWydyb3dzJ11b MF0pCkBAIC0xMDAwLDYgKzEwMDIsOSBAQCBjbGFzcyBUeXBlVmlldyhQR0No aWxkTm9kZVZpZXcsIERhdGFUeXBlUmVhZGVyKToKICAgICAgICAgKQogICAg ICAgICB0cnk6CiAgICAgICAgICAgICBTUUwsIG5hbWUgPSBzZWxmLmdldF9z cWwoZ2lkLCBzaWQsIGRhdGEsIHNjaWQsIHRpZCkKKyAgICAgICAgICAgICMg TW9zdCBwcm9iYWJseSB0aGlzIGlzIGR1ZSB0byBlcnJvcgorICAgICAgICAg ICAgaWYgbm90IGlzaW5zdGFuY2UoU1FMLCAoc3RyLCB1bmljb2RlKSk6Cisg ICAgICAgICAgICAgICAgcmV0dXJuIFNRTAogICAgICAgICAgICAgU1FMID0g U1FMLnN0cmlwKCdcbicpLnN0cmlwKCcgJykKICAgICAgICAgICAgIHN0YXR1 cywgcmVzID0gc2VsZi5jb25uLmV4ZWN1dGVfc2NhbGFyKFNRTCkKICAgICAg ICAgICAgIGlmIG5vdCBzdGF0dXM6CkBAIC0xMTEyLDYgKzExMTcsOSBAQCBj bGFzcyBUeXBlVmlldyhQR0NoaWxkTm9kZVZpZXcsIERhdGFUeXBlUmVhZGVy KToKIAogICAgICAgICB0cnk6CiAgICAgICAgICAgICBzcWwsIG5hbWUgPSBz ZWxmLmdldF9zcWwoZ2lkLCBzaWQsIGRhdGEsIHNjaWQsIHRpZCkKKyAgICAg ICAgICAgICMgTW9zdCBwcm9iYWJseSB0aGlzIGlzIGR1ZSB0byBlcnJvcgor ICAgICAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uoc3FsLCAoc3RyLCB1bmlj b2RlKSk6CisgICAgICAgICAgICAgICAgcmV0dXJuIHNxbAogICAgICAgICAg ICAgc3FsID0gc3FsLnN0cmlwKCdcbicpLnN0cmlwKCcgJykKIAogICAgICAg ICAgICAgaWYgc3FsID09ICcnOgpAQCAtMTE4NSw2ICsxMTkzLDEwIEBAIGNs YXNzIFR5cGVWaWV3KFBHQ2hpbGROb2RlVmlldywgRGF0YVR5cGVSZWFkZXIp OgogICAgICAgICAgICAgc3RhdHVzLCByZXMgPSBzZWxmLmNvbm4uZXhlY3V0 ZV9kaWN0KFNRTCkKICAgICAgICAgICAgIGlmIG5vdCBzdGF0dXM6CiAgICAg ICAgICAgICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJvcihlcnJv cm1zZz1yZXMpCisgICAgICAgICAgICBpZiBsZW4ocmVzWydyb3dzJ10pID09 IDA6CisgICAgICAgICAgICAgICAgcmV0dXJuIGdvbmUoCisgICAgICAgICAg ICAgICAgICAgIGdldHRleHQoIkNvdWxkIG5vdCBmaW5kIHRoZSB0eXBlIGlu IHRoZSBkYXRhYmFzZS4iKQorICAgICAgICAgICAgICAgICkKIAogICAgICAg ICAgICAgIyBNYWtpbmcgY29weSBvZiBvdXRwdXQgZm9yIGZ1dHVyZSB1c2UK ICAgICAgICAgICAgIG9sZF9kYXRhID0gZGljdChyZXNbJ3Jvd3MnXVswXSkK QEAgLTEyNjMsNyArMTI3NSwxMCBAQCBjbGFzcyBUeXBlVmlldyhQR0NoaWxk Tm9kZVZpZXcsIERhdGFUeXBlUmVhZGVyKToKICAgICAgICAgc3RhdHVzLCBy ZXMgPSBzZWxmLmNvbm4uZXhlY3V0ZV9kaWN0KFNRTCkKICAgICAgICAgaWYg bm90IHN0YXR1czoKICAgICAgICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2 ZXJfZXJyb3IoZXJyb3Jtc2c9cmVzKQotCisgICAgICAgIGlmIGxlbihyZXNb J3Jvd3MnXSkgPT0gMDoKKyAgICAgICAgICAgIHJldHVybiBnb25lKAorICAg ICAgICAgICAgICAgIGdldHRleHQoIkNvdWxkIG5vdCBmaW5kIHRoZSB0eXBl IGluIHRoZSBkYXRhYmFzZS4iKQorICAgICAgICAgICAgKQogICAgICAgICAj IE1ha2luZyBjb3B5IG9mIG91dHB1dCBmb3IgZnV0dXJlIHVzZQogICAgICAg ICBkYXRhID0gZGljdChyZXNbJ3Jvd3MnXVswXSkKIApAQCAtMTI5OCw3ICsx MzEzLDkgQEAgY2xhc3MgVHlwZVZpZXcoUEdDaGlsZE5vZGVWaWV3LCBEYXRh VHlwZVJlYWRlcik6CiAgICAgICAgICAgICAgICAgZGF0YVtrXSA9IE5vbmUK IAogICAgICAgICBTUUwsIG5hbWUgPSBzZWxmLmdldF9zcWwoZ2lkLCBzaWQs IGRhdGEsIHNjaWQsIHRpZD1Ob25lKQotCisgICAgICAgICMgTW9zdCBwcm9i YWJseSB0aGlzIGlzIGR1ZSB0byBlcnJvcgorICAgICAgICBpZiBub3QgaXNp bnN0YW5jZShTUUwsIChzdHIsIHVuaWNvZGUpKToKKyAgICAgICAgICAgIHJl dHVybiBTUUwKICAgICAgICAgIyBXZSBhcmUgYXBwZW5kaW5nIGhlYWRlcnMg aGVyZSBmb3Igc3FsIHBhbmVsCiAgICAgICAgIHNxbF9oZWFkZXIgPSB1Ii0t IFR5cGU6IHswfVxuXG4tLSAiLmZvcm1hdChkYXRhWyduYW1lJ10pCiAKZGlm ZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL19faW5pdF9fLnB5IGIv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL3NjaGVtYXMvdmlld3MvX19pbml0X18ucHkKaW5kZXggYWE1ZDVm My4uMGVhZDQzNyAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3Mv X19pbml0X18ucHkKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvX19pbml0 X18ucHkKQEAgLTE5LDEyICsxOSwxMSBAQCBmcm9tIHBnYWRtaW4uYnJvd3Nl ci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnNjaGVtYXMudXRp bHMgaW1wb3J0IFwKICAgICBTY2hlbWFDaGlsZE1vZHVsZSwgcGFyc2VfcnVs ZV9kZWZpbml0aW9uLCBWYWN1dW1TZXR0aW5ncwogZnJvbSBwZ2FkbWluLmJy b3dzZXIudXRpbHMgaW1wb3J0IFBHQ2hpbGROb2RlVmlldwogZnJvbSBwZ2Fk bWluLnV0aWxzLmFqYXggaW1wb3J0IG1ha2VfanNvbl9yZXNwb25zZSwgaW50 ZXJuYWxfc2VydmVyX2Vycm9yLCBcCi0gICAgbWFrZV9yZXNwb25zZSBhcyBh amF4X3Jlc3BvbnNlLCBiYWRfcmVxdWVzdAorICAgIG1ha2VfcmVzcG9uc2Ug YXMgYWpheF9yZXNwb25zZSwgYmFkX3JlcXVlc3QsIGdvbmUKIGZyb20gcGdh ZG1pbi51dGlscy5kcml2ZXIgaW1wb3J0IGdldF9kcml2ZXIKIGZyb20gcGdh ZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy51dGlscyBpbXBv cnQgcGFyc2VfcHJpdl9mcm9tX2RiLFwKICAgICBwYXJzZV9wcml2X3RvX2Ri CiBmcm9tIGNvbmZpZyBpbXBvcnQgUEdfREVGQVVMVF9EUklWRVIKLWZyb20g cGdhZG1pbi51dGlscy5hamF4IGltcG9ydCBnb25lCiAKICIiIgogICAgIFRo aXMgbW9kdWxlIGlzIHJlc3BvbnNpYmxlIGZvciBnZW5lcmF0aW5nIHR3byBu b2RlcwpAQCAtNjU5LDcgKzY1OCwxMCBAQCBjbGFzcyBWaWV3Tm9kZShQR0No aWxkTm9kZVZpZXcsIFZhY3V1bVNldHRpbmdzKToKICAgICAgICAgICAgIHN0 YXR1cywgcmVzID0gc2VsZi5jb25uLmV4ZWN1dGVfZGljdChTUUwpCiAgICAg ICAgICAgICBpZiBub3Qgc3RhdHVzOgogICAgICAgICAgICAgICAgIHJldHVy biBOb25lLCBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9cmVzKQot CisgICAgICAgICAgICBpZiBsZW4ocmVzWydyb3dzJ10pID09IDA6CisgICAg ICAgICAgICAgICAgcmV0dXJuIE5vbmUsIGdvbmUoCisgICAgICAgICAgICAg ICAgICAgIGdldHRleHQoIkNvdWxkIG5vdCBmaW5kIHRoZSB2aWV3IG9uIHRo ZSBzZXJ2ZXIuIikKKyAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICBv bGRfZGF0YSA9IHJlc1sncm93cyddWzBdCiAKICAgICAgICAgICAgIGlmICdu YW1lJyBub3QgaW4gZGF0YToKQEAgLTk3NSw2ICs5NzcsMTAgQEAgY2xhc3Mg Vmlld05vZGUoUEdDaGlsZE5vZGVWaWV3LCBWYWN1dW1TZXR0aW5ncyk6CiAg ICAgICAgIHN0YXR1cywgcmVzID0gc2VsZi5jb25uLmV4ZWN1dGVfZGljdChT UUwpCiAgICAgICAgIGlmIG5vdCBzdGF0dXM6CiAgICAgICAgICAgICByZXR1 cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXJlcykKKyAgICAg ICAgaWYgbGVuKHJlc1sncm93cyddKSA9PSAwOgorICAgICAgICAgICAgcmV0 dXJuIGdvbmUoCisgICAgICAgICAgICAgICAgZ2V0dGV4dCgiQ291bGQgbm90 IGZpbmQgdGhlIHZpZXcgb24gdGhlIHNlcnZlci4iKQorICAgICAgICAgICAg KQogCiAgICAgICAgIHJlc3VsdCA9IHJlc1sncm93cyddWzBdCiAgICAgICAg ICMgc2VuZGluZyByZXN1bHQgdG8gZm9ybXR0ZXIKQEAgLTExMTksNiArMTEy NSwxMCBAQCBjbGFzcyBWaWV3Tm9kZShQR0NoaWxkTm9kZVZpZXcsIFZhY3V1 bVNldHRpbmdzKToKICAgICAgICAgc3RhdHVzLCByZXMgPSBzZWxmLmNvbm4u ZXhlY3V0ZV9kaWN0KFNRTCkKICAgICAgICAgaWYgbm90IHN0YXR1czoKICAg ICAgICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jt c2c9cmVzKQorICAgICAgICBpZiBsZW4ocmVzWydyb3dzJ10pID09IDA6Cisg ICAgICAgICAgICByZXR1cm4gZ29uZSgKKyAgICAgICAgICAgICAgICBnZXR0 ZXh0KCJDb3VsZCBub3QgZmluZCB0aGUgdmlldyBvbiB0aGUgc2VydmVyLiIp CisgICAgICAgICAgICApCiAgICAgICAgIGRhdGFfdmlldyA9IHJlc1sncm93 cyddWzBdCiAKICAgICAgICAgU1FMID0gcmVuZGVyX3RlbXBsYXRlKApAQCAt MTE3Niw2ICsxMTg2LDExIEBAIGNsYXNzIFZpZXdOb2RlKFBHQ2hpbGROb2Rl VmlldywgVmFjdXVtU2V0dGluZ3MpOgogICAgICAgICBzdGF0dXMsIHJlcyA9 IHNlbGYuY29ubi5leGVjdXRlX2RpY3QoU1FMKQogICAgICAgICBpZiBub3Qg c3RhdHVzOgogICAgICAgICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9l cnJvcihlcnJvcm1zZz1yZXMpCisgICAgICAgIGlmIGxlbihyZXNbJ3Jvd3Mn XSkgPT0gMDoKKyAgICAgICAgICAgIHJldHVybiBnb25lKAorICAgICAgICAg ICAgICAgIGdldHRleHQoIkNvdWxkIG5vdCBmaW5kIHRoZSB2aWV3IG9uIHRo ZSBzZXJ2ZXIuIikKKyAgICAgICAgICAgICkKKwogICAgICAgICBkYXRhX3Zp ZXcgPSByZXNbJ3Jvd3MnXVswXQogCiAgICAgICAgIFNRTCA9IHJlbmRlcl90 ZW1wbGF0ZSgKQEAgLTEyOTIsNiArMTMwNywxMSBAQCBjbGFzcyBNVmlld05v ZGUoVmlld05vZGUsIFZhY3V1bVNldHRpbmdzKToKICAgICAgICAgICAgIHN0 YXR1cywgcmVzID0gc2VsZi5jb25uLmV4ZWN1dGVfZGljdChTUUwpCiAgICAg ICAgICAgICBpZiBub3Qgc3RhdHVzOgogICAgICAgICAgICAgICAgIHJldHVy biBOb25lLCBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9cmVzKQor ICAgICAgICAgICAgaWYgbGVuKHJlc1sncm93cyddKSA9PSAwOgorICAgICAg ICAgICAgICAgIHJldHVybiBOb25lLCBnb25lKAorICAgICAgICAgICAgICAg ICAgICBnZXR0ZXh0KCJDb3VsZCBub3QgZmluZCB0aGUgbWF0ZXJpYWxpemVk IHZpZXcgb24gdGhlIHNlcnZlci4iKQorICAgICAgICAgICAgICAgICkKKwog ICAgICAgICAgICAgb2xkX2RhdGEgPSByZXNbJ3Jvd3MnXVswXQogCiAgICAg ICAgICAgICBpZiAnbmFtZScgbm90IGluIGRhdGE6CkBAIC0xNDgwLDYgKzE1 MDAsMTAgQEAgY2xhc3MgTVZpZXdOb2RlKFZpZXdOb2RlLCBWYWN1dW1TZXR0 aW5ncyk6CiAgICAgICAgIHN0YXR1cywgcmVzID0gc2VsZi5jb25uLmV4ZWN1 dGVfZGljdChTUUwpCiAgICAgICAgIGlmIG5vdCBzdGF0dXM6CiAgICAgICAg ICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXJl cykKKyAgICAgICAgaWYgbGVuKHJlc1sncm93cyddKSA9PSAwOgorICAgICAg ICAgICAgcmV0dXJuIGdvbmUoCisgICAgICAgICAgICAgICAgZ2V0dGV4dCgi Q291bGQgbm90IGZpbmQgdGhlIG1hdGVyaWFsaXplZCB2aWV3IG9uIHRoZSBz ZXJ2ZXIuIikKKyAgICAgICAgICAgICkKIAogICAgICAgICByZXN1bHQgPSBy ZXNbJ3Jvd3MnXVswXQogCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9wZ2FnZW50L19faW5pdF9fLnB5 IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv cGdhZ2VudC9fX2luaXRfXy5weQppbmRleCA2MmYwOTZiLi45MTJlZDAyIDEw MDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9wZ2FnZW50L19faW5pdF9fLnB5CisrKyBiL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL3BnYWdlbnQvX19pbml0 X18ucHkKQEAgLTQ0MSw2ICs0NDEsMTIgQEAgU0VMRUNUIEVYSVNUUygKICAg ICAgICAgaWYgbm90IHN0YXR1czoKICAgICAgICAgICAgIHJldHVybiBpbnRl cm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9cmVzKQogCisKKyAgICAgICAg aWYgbGVuKHJlc1sncm93cyddKSA9PSAwOgorICAgICAgICAgICAgcmV0dXJu IGdvbmUoCisgICAgICAgICAgICAgICAgXygiQ291bGQgbm90IGZpbmQgdGhl IG9iamVjdCBvbiB0aGUgc2VydmVyLiIpCisgICAgICAgICAgICApCisKICAg ICAgICAgcm93ID0gcmVzWydyb3dzJ11bMF0KIAogICAgICAgICBzdGF0dXMs IHJlcz0gc2VsZi5jb25uLmV4ZWN1dGVfZGljdCgKZGlmZiAtLWdpdCBhL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL3Jlc291 cmNlX2dyb3Vwcy9fX2luaXRfXy5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIv c2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL3Jlc291cmNlX2dyb3Vwcy9fX2luaXRf Xy5weQppbmRleCA5NWFhMWQ4Li5jZjk0NWIwIDEwMDY0NAotLS0gYS93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9yZXNvdXJj ZV9ncm91cHMvX19pbml0X18ucHkKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvcmVzb3VyY2VfZ3JvdXBzL19faW5p dF9fLnB5CkBAIC0xOCwxMiArMTgsMTQgQEAgZnJvbSBmbGFza19iYWJlbCBp bXBvcnQgZ2V0dGV4dAogZnJvbSBwZ2FkbWluLmJyb3dzZXIuY29sbGVjdGlv biBpbXBvcnQgQ29sbGVjdGlvbk5vZGVNb2R1bGUKIGZyb20gcGdhZG1pbi5i cm93c2VyLnV0aWxzIGltcG9ydCBOb2RlVmlldwogZnJvbSBwZ2FkbWluLnV0 aWxzLmFqYXggaW1wb3J0IG1ha2VfanNvbl9yZXNwb25zZSwgXAotICAgIG1h a2VfcmVzcG9uc2UgYXMgYWpheF9yZXNwb25zZSwgaW50ZXJuYWxfc2VydmVy X2Vycm9yCisgICAgbWFrZV9yZXNwb25zZSBhcyBhamF4X3Jlc3BvbnNlLCBp bnRlcm5hbF9zZXJ2ZXJfZXJyb3IsIGdvbmUKIGZyb20gcGdhZG1pbi51dGls cy5hamF4IGltcG9ydCBwcmVjb25kaXRpb25fcmVxdWlyZWQKIGZyb20gcGdh ZG1pbi51dGlscy5kcml2ZXIgaW1wb3J0IGdldF9kcml2ZXIKLQogZnJvbSBj b25maWcgaW1wb3J0IFBHX0RFRkFVTFRfRFJJVkVSCi1mcm9tIHBnYWRtaW4u dXRpbHMuYWpheCBpbXBvcnQgZ29uZQorZnJvbSBwZ2FkbWluLnV0aWxzIGlt cG9ydCBJU19QWTIKKyMgSWYgd2UgYXJlIGluIFB5dGhvbjMKK2lmIG5vdCBJ U19QWTI6CisgICAgdW5pY29kZSA9IHN0cgogCiAKIGNsYXNzIFJlc291cmNl R3JvdXBNb2R1bGUoQ29sbGVjdGlvbk5vZGVNb2R1bGUpOgpAQCAtNTE4LDYg KzUyMCwxMCBAQCBjbGFzcyBSZXNvdXJjZUdyb3VwVmlldyhOb2RlVmlldyk6 CiAgICAgICAgICAgICAgICAgZGF0YVtrXSA9IHYKIAogICAgICAgICBzcWws IG5hbWUgPSBzZWxmLmdldF9zcWwoZGF0YSwgcmdfaWQpCisgICAgICAgICMg TW9zdCBwcm9iYWJseSB0aGlzIGlzIGR1ZSB0byBlcnJvcgorICAgICAgICBp ZiBub3QgaXNpbnN0YW5jZShzcWwsIChzdHIsIHVuaWNvZGUpKToKKyAgICAg ICAgICAgIHJldHVybiBzcWwKKwogICAgICAgICBzcWwgPSBzcWwuc3RyaXAo J1xuJykuc3RyaXAoJyAnKQogCiAgICAgICAgIGlmIHNxbCA9PSAnJzoKQEAg LTU0Myw2ICs1NDksMTEgQEAgY2xhc3MgUmVzb3VyY2VHcm91cFZpZXcoTm9k ZVZpZXcpOgogICAgICAgICAgICAgc3RhdHVzLCByZXMgPSBzZWxmLmNvbm4u ZXhlY3V0ZV9kaWN0KHNxbCkKICAgICAgICAgICAgIGlmIG5vdCBzdGF0dXM6 CiAgICAgICAgICAgICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJv cihlcnJvcm1zZz1yZXMpCisKKyAgICAgICAgICAgIGlmIGxlbihyZXNbJ3Jv d3MnXSkgPT0gMDoKKyAgICAgICAgICAgICAgICByZXR1cm4gZ29uZSgKKyAg ICAgICAgICAgICAgICAgICAgXygiVGhlIHNwZWNpZmllZCByZXNvdXJjZSBn cm91cCBjb3VsZCBub3QgYmUgZm91bmQuIikKKyAgICAgICAgICAgICAgICAp CiAgICAgICAgICAgICBvbGRfZGF0YSA9IHJlc1sncm93cyddWzBdCiAgICAg ICAgICAgICBmb3IgYXJnIGluIHJlcXVpcmVkX2FyZ3M6CiAgICAgICAgICAg ICAgICAgaWYgYXJnIG5vdCBpbiBkYXRhOgpAQCAtNTgyLDYgKzU5MywxMCBA QCBjbGFzcyBSZXNvdXJjZUdyb3VwVmlldyhOb2RlVmlldyk6CiAgICAgICAg IHN0YXR1cywgcmVzID0gc2VsZi5jb25uLmV4ZWN1dGVfZGljdChzcWwpCiAg ICAgICAgIGlmIG5vdCBzdGF0dXM6CiAgICAgICAgICAgICByZXR1cm4gaW50 ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXJlcykKKyAgICAgICAgaWYg bGVuKHJlc1sncm93cyddKSA9PSAwOgorICAgICAgICAgICAgcmV0dXJuIGdv bmUoCisgICAgICAgICAgICAgICAgXygiVGhlIHNwZWNpZmllZCByZXNvdXJj ZSBncm91cCBjb3VsZCBub3QgYmUgZm91bmQuIikKKyAgICAgICAgICAgICkK IAogICAgICAgICAjIE1ha2luZyBjb3B5IG9mIG91dHB1dCBmb3IgZnV0dXJl IHVzZQogICAgICAgICBvbGRfZGF0YSA9IGRpY3QocmVzWydyb3dzJ11bMF0p CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91 cHMvc2VydmVycy90YWJsZXNwYWNlcy9fX2luaXRfXy5weSBiL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL3RhYmxlc3BhY2Vz L19faW5pdF9fLnB5CmluZGV4IDg2ZWZmZWQuLjhjNjQxMWIgMTAwNjQ0Ci0t LSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L3RhYmxlc3BhY2VzL19faW5pdF9fLnB5CisrKyBiL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL3RhYmxlc3BhY2VzL19faW5p dF9fLnB5CkBAIC0yMSw4ICsyMSwxMSBAQCBmcm9tIHBnYWRtaW4udXRpbHMu YWpheCBpbXBvcnQgbWFrZV9qc29uX3Jlc3BvbnNlLCBcCiAgICAgbWFrZV9y ZXNwb25zZSBhcyBhamF4X3Jlc3BvbnNlLCBpbnRlcm5hbF9zZXJ2ZXJfZXJy b3IsIGdvbmUKIGZyb20gcGdhZG1pbi51dGlscy5hamF4IGltcG9ydCBwcmVj b25kaXRpb25fcmVxdWlyZWQKIGZyb20gcGdhZG1pbi51dGlscy5kcml2ZXIg aW1wb3J0IGdldF9kcml2ZXIKLQogZnJvbSBjb25maWcgaW1wb3J0IFBHX0RF RkFVTFRfRFJJVkVSCitmcm9tIHBnYWRtaW4udXRpbHMgaW1wb3J0IElTX1BZ MgorIyBJZiB3ZSBhcmUgaW4gUHl0aG9uMworaWYgbm90IElTX1BZMjoKKyAg ICB1bmljb2RlID0gc3RyCiAKIAogY2xhc3MgVGFibGVzcGFjZU1vZHVsZShD b2xsZWN0aW9uTm9kZU1vZHVsZSk6CkBAIC0zNTAsNiArMzUzLDEwIEBAIGNs YXNzIFRhYmxlc3BhY2VWaWV3KFBHQ2hpbGROb2RlVmlldyk6CiAKICAgICAg ICAgdHJ5OgogICAgICAgICAgICAgU1FMLCBuYW1lID0gc2VsZi5nZXRfc3Fs KGdpZCwgc2lkLCBkYXRhLCB0c2lkKQorICAgICAgICAgICAgIyBNb3N0IHBy b2JhYmx5IHRoaXMgaXMgZHVlIHRvIGVycm9yCisgICAgICAgICAgICBpZiBu b3QgaXNpbnN0YW5jZShzcWwsIChzdHIsIHVuaWNvZGUpKToKKyAgICAgICAg ICAgICAgICByZXR1cm4gU1FMCisKICAgICAgICAgICAgIFNRTCA9IFNRTC5z dHJpcCgnXG4nKS5zdHJpcCgnICcpCiAgICAgICAgICAgICBzdGF0dXMsIHJl cyA9IHNlbGYuY29ubi5leGVjdXRlX3NjYWxhcihTUUwpCiAgICAgICAgICAg ICBpZiBub3Qgc3RhdHVzOgpAQCAtNDMzLDYgKzQ0MCwxMCBAQCBjbGFzcyBU YWJsZXNwYWNlVmlldyhQR0NoaWxkTm9kZVZpZXcpOgogICAgICAgICAgICAg ICAgIGRhdGFba10gPSB2CiAKICAgICAgICAgc3FsLCBuYW1lID0gc2VsZi5n ZXRfc3FsKGdpZCwgc2lkLCBkYXRhLCB0c2lkKQorICAgICAgICAjIE1vc3Qg cHJvYmFibHkgdGhpcyBpcyBkdWUgdG8gZXJyb3IKKyAgICAgICAgaWYgbm90 IGlzaW5zdGFuY2Uoc3FsLCAoc3RyLCB1bmljb2RlKSk6CisgICAgICAgICAg ICByZXR1cm4gc3FsCisKICAgICAgICAgc3FsID0gc3FsLnN0cmlwKCdcbicp LnN0cmlwKCcgJykKICAgICAgICAgaWYgc3FsID09ICcnOgogICAgICAgICAg ICAgc3FsID0gIi0tbW9kaWZpZWQgU1FMIgpAQCAtNDU4LDYgKzQ2OSwxMSBA QCBjbGFzcyBUYWJsZXNwYWNlVmlldyhQR0NoaWxkTm9kZVZpZXcpOgogICAg ICAgICAgICAgaWYgbm90IHN0YXR1czoKICAgICAgICAgICAgICAgICByZXR1 cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXJlcykKIAorICAg ICAgICAgICAgaWYgbGVuKHJlc1sncm93cyddKSA9PSAwOgorICAgICAgICAg ICAgICAgIHJldHVybiBnb25lKAorICAgICAgICAgICAgICAgICAgICBfKCJD b3VsZCBub3QgZmluZCB0aGUgdGFibGVzcGFjZSBvbiB0aGUgc2VydmVyLiIp CisgICAgICAgICAgICAgICAgKQorCiAgICAgICAgICAgICAjIE1ha2luZyBj b3B5IG9mIG91dHB1dCBmb3IgZnVydGhlciBwcm9jZXNzaW5nCiAgICAgICAg ICAgICBvbGRfZGF0YSA9IGRpY3QocmVzWydyb3dzJ11bMF0pCiAgICAgICAg ICAgICBvbGRfZGF0YSA9IHNlbGYuX2Zvcm1hdHRlcihvbGRfZGF0YSwgdHNp ZCkKQEAgLTUxMiw2ICs1MjgsMTAgQEAgY2xhc3MgVGFibGVzcGFjZVZpZXco UEdDaGlsZE5vZGVWaWV3KToKICAgICAgICAgaWYgbm90IHN0YXR1czoKICAg ICAgICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jt c2c9cmVzKQogCisgICAgICAgIGlmIGxlbihyZXNbJ3Jvd3MnXSkgPT0gMDoK KyAgICAgICAgICAgIHJldHVybiBnb25lKAorICAgICAgICAgICAgICAgIF8o IkNvdWxkIG5vdCBmaW5kIHRoZSB0YWJsZXNwYWNlIG9uIHRoZSBzZXJ2ZXIu IikKKyAgICAgICAgICAgICkKICAgICAgICAgIyBNYWtpbmcgY29weSBvZiBv dXRwdXQgZm9yIGZ1dHVyZSB1c2UKICAgICAgICAgb2xkX2RhdGEgPSBkaWN0 KHJlc1sncm93cyddWzBdKQogCg== --001a1144375aae841305505693db Content-Type: text/plain Content-Disposition: inline Content-Transfer-Encoding: 8bit MIME-Version: 1.0 -- Sent via pgadmin-hackers mailing list (pgadmin-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgadmin-hackers --001a1144375aae841305505693db--