<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>156498</bug_id>
          
          <creation_ts>2016-04-12 02:59:26 -0700</creation_ts>
          <short_desc>Make sync-buildbot.js fault safe</short_desc>
          <delta_ts>2016-04-12 14:04:00 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Perf Dashboard</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Ryosuke Niwa">rniwa</reporter>
          <assigned_to name="Ryosuke Niwa">rniwa</assigned_to>
          <cc>barraclough</cc>
    
    <cc>cdumez</cc>
    
    <cc>dewei_zhu</cc>
    
    <cc>joepeck</cc>
    
    <cc>rniwa</cc>
    
    <cc>slewis</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1183026</commentid>
    <comment_count>0</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2016-04-12 02:59:26 -0700</bug_when>
    <thetext>Bugs like the one fixed in http://trac.webkit.org/changeset/199332 can put
buildbot and perf dashboards into an inconsistent state.

sync-buildbot.js should be able to recover from such states.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1183027</commentid>
    <comment_count>1</comment_count>
      <attachid>276227</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2016-04-12 03:07:49 -0700</bug_when>
    <thetext>Created attachment 276227
Fixes bugs</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1183217</commentid>
    <comment_count>2</comment_count>
      <attachid>276227</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-04-12 13:43:13 -0700</bug_when>
    <thetext>Comment on attachment 276227
Fixes bugs

rs=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1183234</commentid>
    <comment_count>3</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2016-04-12 14:04:00 -0700</bug_when>
    <thetext>Committed r199388: &lt;http://trac.webkit.org/changeset/199388&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>276227</attachid>
            <date>2016-04-12 03:07:49 -0700</date>
            <delta_ts>2016-04-12 13:43:13 -0700</delta_ts>
            <desc>Fixes bugs</desc>
            <filename>bug-156498-20160412030807.patch</filename>
            <type>text/plain</type>
            <size>25610</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL0NoYW5nZUxvZwkocmV2aXNpb24gMTk5MzQyKQorKysg
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDI5IEBACisyMDE2LTA0LTEyICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgor
CisgICAgICAgIE1ha2Ugc3luYy1idWlsZGJvdC5qcyBmYXVsdCBzYWZlCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTY0OTgKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBGaXhlZCBhIGJ1ZyB0aGF0IHN5bmMt
YnVpbGRib3QuanMgd2lsbCBjb250aW51ZSB0byBzY2hlZHVsZSBidWlsZCByZXF1ZXN0cyBmcm9t
IG11bHRpcGxlIHRlc3QgZ3JvdXBzCisgICAgICAgIGlmIG11bHRpcGxlIHRlc3QgZ3JvdXBzIGFy
ZSBzaW11bHRhbmVvdXNseSBpbi1wcm9ncmVzcyBvbiB0aGUgc2FtZSBidWlsZGVyLiBBbHNvIGZp
eGVkIGEgYnVnIHRoYXQgaWYKKyAgICAgICAgYSBidWlsZCByZXF1ZXN0IGhhZCBmYWlsZWQgd2l0
aG91dCBsZWF2aW5nIGEgdHJhY2UgKGkuZS4gbm8gZW50cnkgb24gYW55IG9mIHRoZSBidWlsZGVy
cyB3ZSBrbm93IG9mKSwKKyAgICAgICAgc3luYy1idWlsZGJvdC5qcyB0aHJvd3MgYW4gZXhjZXB0
aW9uLgorCisgICAgICAgICogc2VydmVyLXRlc3RzL3Rvb2xzLWJ1aWxkYm90LXRyaWdnZXJhYmxl
LXRlc3RzLmpzOiBBZGRlZCB0ZXN0IGNhc2VzLgorICAgICAgICAqIHRvb2xzL2pzL2J1aWxkYm90
LXN5bmNlci5qczoKKyAgICAgICAgKEJ1aWxkYm90U3luY2VyLnByb3RvdHlwZS5zY2hlZHVsZVJl
cXVlc3RJbkdyb3VwSWZBdmFpbGFibGUpOiBSZW5hbWVkLiBPcHRpb25hbGx5IHRha2VzIHRoZSBz
bGF2ZSBuYW1lLgorICAgICAgICBXaGVuIHRoaXMgcGFyYW1ldGVyIGlzIHNwZWNpZmllZCwgc2No
ZWR1bGUgdGhlIHJlcXVlc3Qgb25seSBpZiB0aGUgc3BlY2lmaWVkIHNsYXZlIGlzIGF2YWlsYWJs
ZS4KKyAgICAgICAgKiB0b29scy9qcy9idWlsZGJvdC10cmlnZ2VyYWJsZS5qczoKKyAgICAgICAg
KEJ1aWxkYm90VHJpZ2dlcmFibGUucHJvdG90eXBlLl9zY2hlZHVsZU5leHRSZXF1ZXN0SW5Hcm91
cElmU2xhdmVJc0F2YWlsYWJsZSk6IEFsd2F5cyB1c2UKKyAgICAgICAgc2NoZWR1bGVSZXF1ZXN0
SW5Hcm91cElmQXZhaWxhYmxlIHRvIHNjaGVkdWxlIGEgbmV3IGJ1aWxkIHJlcXVlc3QuIFVzaW5n
IHNjaGVkdWxlUmVxdWVzdCBmb3Igbm9uLWZpcnN0CisgICAgICAgIGJ1aWxkIHJlcXVlc3RzIHdh
cyBwcm9ibGVtYXRpYyB3aGVuIHRoZXJlIHdlcmUgbXVsdGlwbGUgdGVzdCBncm91cHMgd2l0aCBw
ZW5kaW5nIHJlcXVlc3RzIGJlY2F1c2UgdGhlbgorICAgICAgICB3ZSB3b3VsZCBzY2hlZHVsZSB0
aG9zZSBwZW5kaW5nIHJlcXVlc3RzIHdpdGhvdXQgY2hlY2tpbmcgd2hldGhlciB0aGVyZSBpcyBh
bHJlYWR5IGEgcGVuZGluZyBqb2Igb3IgaWYKKyAgICAgICAgd2UgaGF2ZSBwcmV2aW91c2x5IHNj
aGVkdWxlZCBhIGpvYi4gQWxzbyBmYWxsYmFjayB0byB1c2UgYW55IHN5bmNlciAvIGJ1aWxkZXIg
d2hlbiBncm91cEluZm8uc3luY2VyIGlzCisgICAgICAgIG5vdCBzZXQgZXZlbiBpZiB0aGUgbmV4
dCByZXF1ZXN0IHdhcyBub3QgdGhlIGZpcnN0IG9uZSBpbiB0aGUgdGVzdCBncm91cCBzaW5jZSB3
ZSBjYW4ndCBkZXRlcm1pbmUgb24KKyAgICAgICAgd2hpY2ggYnVpbGRlciBwcmVjZWRpbmcgcmVx
dWVzdHMgYXJlIHByb2Nlc3NlZCBpbiBzdWNoIGNhc2VzLgorICAgICAgICAqIHVuaXQtdGVzdHMv
YnVpbGRib3Qtc3luY2VyLXRlc3RzLmpzOgorCiAyMDE2LTA0LTExICBSeW9zdWtlIE5pd2EgIDxy
bml3YUB3ZWJraXQub3JnPgogCiAgICAgICAgIFJlcGxhY2Ugc2NyaXB0IHJ1bm5lciB0byB1c2Ug
bW9jaGEuanMgdGVzdHMKSW5kZXg6IFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVz
dHMvdG9vbHMtYnVpbGRib3QtdHJpZ2dlcmFibGUtdGVzdHMuanMKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
c2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy90b29scy1idWlsZGJvdC10cmlnZ2Vy
YWJsZS10ZXN0cy5qcwkocmV2aXNpb24gMTk5MzQyKQorKysgV2Vic2l0ZXMvcGVyZi53ZWJraXQu
b3JnL3NlcnZlci10ZXN0cy90b29scy1idWlsZGJvdC10cmlnZ2VyYWJsZS10ZXN0cy5qcwkod29y
a2luZyBjb3B5KQpAQCAtNjUxLDYgKzY1MSwxNjEgQEAgZGVzY3JpYmUoJ0J1aWxkYm90VHJpZ2dl
cmFibGUnLCBmdW5jdGlvbgogICAgICAgICAgICAgfSkuY2F0Y2goZG9uZSk7CiAgICAgICAgIH0p
OwogCisgICAgICAgIGl0KCdzaG91bGQgcmVjb3ZlciBmcm9tIG11bHRpcGxlIHRlc3QgZ3JvdXBz
IHJ1bm5pbmcgc2ltdWx0ZW5vdXNseScsIGZ1bmN0aW9uIChkb25lKSB7CisgICAgICAgICAgICBs
ZXQgZGIgPSBUZXN0U2VydmVyLmRhdGFiYXNlKCk7CisgICAgICAgICAgICBsZXQgc3luY1Byb21p
c2U7CisgICAgICAgICAgICBkYi5jb25uZWN0KCkudGhlbihmdW5jdGlvbiAoKSB7CisgICAgICAg
ICAgICAgICAgcmV0dXJuIFByb21pc2UuYWxsKFsKKyAgICAgICAgICAgICAgICAgICAgTW9ja0Rh
dGEuYWRkTW9ja0RhdGEoZGIsIFsnY29tcGxldGVkJywgJ3BlbmRpbmcnLCAncGVuZGluZycsICdw
ZW5kaW5nJ10pLAorICAgICAgICAgICAgICAgICAgICBNb2NrRGF0YS5hZGRBbm90aGVyTW9ja1Rl
c3RHcm91cChkYiwgWydjb21wbGV0ZWQnLCAncGVuZGluZycsICdwZW5kaW5nJywgJ3BlbmRpbmcn
XSkKKyAgICAgICAgICAgICAgICBdKTsKKyAgICAgICAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKCkg
eworICAgICAgICAgICAgICAgIHJldHVybiBNYW5pZmVzdC5mZXRjaCgpOworICAgICAgICAgICAg
fSkudGhlbihmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICAgICAgbGV0IGNvbmZpZyA9IE1vY2tE
YXRhLm1vY2tUZXN0U3luY0NvbmZpZ1dpdGhTaW5nbGVCdWlsZGVyKCk7CisgICAgICAgICAgICAg
ICAgbGV0IGxvZ2dlciA9IG5ldyBNb2NrTG9nZ2VyOworICAgICAgICAgICAgICAgIGxldCBzbGF2
ZUluZm8gPSB7bmFtZTogJ3N5bmMtc2xhdmUnLCBwYXNzd29yZDogJ3Bhc3N3b3JkJ307CisgICAg
ICAgICAgICAgICAgbGV0IHRyaWdnZXJhYmxlID0gbmV3IEJ1aWxkYm90VHJpZ2dlcmFibGUoY29u
ZmlnLCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLCBNb2NrUmVtb3RlQVBJLCBzbGF2ZUluZm8sIGxv
Z2dlcik7CisgICAgICAgICAgICAgICAgc3luY1Byb21pc2UgPSB0cmlnZ2VyYWJsZS5zeW5jT25j
ZSgpOworICAgICAgICAgICAgICAgIHN5bmNQcm9taXNlLmNhdGNoKGRvbmUpOworICAgICAgICAg
ICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CisgICAgICAgICAg
ICB9KS50aGVuKGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDEpOworICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVybCwgJy9qc29u
L2J1aWxkZXJzL3NvbWUtYnVpbGRlci0xL3BlbmRpbmdCdWlsZHMnKTsKKyAgICAgICAgICAgICAg
ICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnJlc29sdmUoW01vY2tEYXRhLnBlbmRpbmdCdWls
ZCh7YnVpbGRSZXF1ZXN0SWQ6IDcxMX0pXSk7CisgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tS
ZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKKyAgICAgICAgICAgIH0pLnRoZW4oZnVuY3Rpb24g
KCkgeworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
Lmxlbmd0aCwgMik7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCAnL2pzb24vYnVpbGRlcnMvc29tZS1idWls
ZGVyLTEvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJyk7CisgICAgICAgICAgICAgICAgTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5yZXNvbHZlKHtbLTFdOiBNb2NrRGF0YS5ydW5uaW5nQnVp
bGQoe2J1aWxkUmVxdWVzdElkOiA3MDB9KSwgWy0yXTogTW9ja0RhdGEuZmluaXNoZWRCdWlsZCh7
YnVpbGRSZXF1ZXN0SWQ6IDcxMH0pfSk7CisgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1v
dGVBUEkud2FpdEZvclJlcXVlc3QoKTsKKyAgICAgICAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKCkg
eworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxl
bmd0aCwgMyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbMl0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbMl0udXJsLCAnL2pzb24vYnVpbGRlcnMvc29tZS1idWlsZGVy
LTEvcGVuZGluZ0J1aWxkcycpOworICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbMl0ucmVzb2x2ZShbTW9ja0RhdGEucGVuZGluZ0J1aWxkKHtidWlsZFJlcXVlc3RJZDogNzAx
fSldKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVz
dCgpOworICAgICAgICAgICAgfSkudGhlbihmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCA0KTsKKyAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS5tZXRob2QsICdH
RVQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1szXS51cmwsICcvanNvbi9idWlsZGVycy9zb21lLWJ1aWxkZXItMS9idWlsZHMvP3NlbGVjdD0t
MSZzZWxlY3Q9LTInKTsKKyAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNd
LnJlc29sdmUoe1stMV06IE1vY2tEYXRhLnJ1bm5pbmdCdWlsZCh7YnVpbGRSZXF1ZXN0SWQ6IDcw
MH0pLCBbLTJdOiBNb2NrRGF0YS5maW5pc2hlZEJ1aWxkKHtidWlsZFJlcXVlc3RJZDogNzEwfSl9
KTsKKyAgICAgICAgICAgICAgICByZXR1cm4gc3luY1Byb21pc2U7CisgICAgICAgICAgICB9KS50
aGVuKGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1
ZXN0LmFsbCgpLmxlbmd0aCwgOCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxk
UmVxdWVzdC5maW5kQnlJZCg3MDApLnN0YXR1cygpLCAnY29tcGxldGVkJyk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDApLnN0YXR1c1VybCgp
LCBudWxsKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRC
eUlkKDcwMSkuc3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVz
KCksICdwZW5kaW5nJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVz
dC5maW5kQnlJZCg3MDIpLnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMykuc3RhdHVzKCksICdwZW5kaW5nJyk7
CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMp
LnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRS
ZXF1ZXN0LmZpbmRCeUlkKDcxMCkuc3RhdHVzKCksICdjb21wbGV0ZWQnKTsKKyAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcxMCkuc3RhdHVzVXJsKCks
IG51bGwpOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5
SWQoNzExKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcxMSkuc3RhdHVzVXJsKCksIG51bGwpOworICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzEyKS5zdGF0dXMo
KSwgJ3BlbmRpbmcnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0
LmZpbmRCeUlkKDcxMikuc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzEzKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcxMyku
c3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgICAgIHJldHVybiBCdWlsZFJlcXVlc3Qu
ZmV0Y2hGb3JUcmlnZ2VyYWJsZShNb2NrRGF0YS5tb2NrVGVzdFN5bmNDb25maWdXaXRoVHdvQnVp
bGRlcnMoKS50cmlnZ2VyYWJsZU5hbWUpOworICAgICAgICAgICAgfSkudGhlbihmdW5jdGlvbiAo
KSB7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5hbGwoKS5sZW5n
dGgsIDgpOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5
SWQoNzAwKS5zdGF0dXMoKSwgJ2NvbXBsZXRlZCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWls
ZC53ZWJraXQub3JnL2J1aWxkZXJzL3NvbWUtYnVpbGRlci0xL2J1aWxkcy8xMjQnKTsKKyAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVz
KCksICdzY2hlZHVsZWQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1
ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVzVXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9i
dWlsZGVycy9zb21lLWJ1aWxkZXItMS8nKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
QnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0YXR1c1Vy
bCgpLCBudWxsKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZp
bmRCeUlkKDcwMykuc3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMpLnN0YXR1c1VybCgpLCBudWxsKTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcxMCkuc3Rh
dHVzKCksICdjb21wbGV0ZWQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRS
ZXF1ZXN0LmZpbmRCeUlkKDcxMCkuc3RhdHVzVXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9y
Zy9idWlsZGVycy9zb21lLWJ1aWxkZXItMS9idWlsZHMvMTIzJyk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTEpLnN0YXR1cygpLCAncGVuZGlu
ZycpOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQo
NzExKS5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1
aWxkUmVxdWVzdC5maW5kQnlJZCg3MTIpLnN0YXR1cygpLCAncGVuZGluZycpOworICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzEyKS5zdGF0dXNVcmwo
KSwgbnVsbCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5k
QnlJZCg3MTMpLnN0YXR1cygpLCAncGVuZGluZycpOworICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzEzKS5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAg
ICAgICAgICAgICAgZG9uZSgpOworICAgICAgICAgICAgfSkuY2F0Y2goZG9uZSk7CisgICAgICAg
IH0pOworCisgICAgICAgIGl0KCdzaG91bGQgcmVjb3ZlciBmcm9tIG1pc3NpbmcgZmFpbGVkIGJ1
aWxkIHJlcXVlc3QnLCBmdW5jdGlvbiAoZG9uZSkgeworICAgICAgICAgICAgbGV0IGRiID0gVGVz
dFNlcnZlci5kYXRhYmFzZSgpOworICAgICAgICAgICAgbGV0IHN5bmNQcm9taXNlOworICAgICAg
ICAgICAgZGIuY29ubmVjdCgpLnRoZW4oZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgICAgIHJl
dHVybiBQcm9taXNlLmFsbChbCisgICAgICAgICAgICAgICAgICAgIE1vY2tEYXRhLmFkZE1vY2tE
YXRhKGRiLCBbJ2ZhaWxlZCcsICdwZW5kaW5nJywgJ3BlbmRpbmcnLCAncGVuZGluZyddKSwKKyAg
ICAgICAgICAgICAgICBdKTsKKyAgICAgICAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKCkgeworICAg
ICAgICAgICAgICAgIHJldHVybiBNYW5pZmVzdC5mZXRjaCgpOworICAgICAgICAgICAgfSkudGhl
bihmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICAgICAgbGV0IGNvbmZpZyA9IE1vY2tEYXRhLm1v
Y2tUZXN0U3luY0NvbmZpZ1dpdGhTaW5nbGVCdWlsZGVyKCk7CisgICAgICAgICAgICAgICAgbGV0
IGxvZ2dlciA9IG5ldyBNb2NrTG9nZ2VyOworICAgICAgICAgICAgICAgIGxldCBzbGF2ZUluZm8g
PSB7bmFtZTogJ3N5bmMtc2xhdmUnLCBwYXNzd29yZDogJ3Bhc3N3b3JkJ307CisgICAgICAgICAg
ICAgICAgbGV0IHRyaWdnZXJhYmxlID0gbmV3IEJ1aWxkYm90VHJpZ2dlcmFibGUoY29uZmlnLCBU
ZXN0U2VydmVyLnJlbW90ZUFQSSgpLCBNb2NrUmVtb3RlQVBJLCBzbGF2ZUluZm8sIGxvZ2dlcik7
CisgICAgICAgICAgICAgICAgc3luY1Byb21pc2UgPSB0cmlnZ2VyYWJsZS5zeW5jT25jZSgpOwor
ICAgICAgICAgICAgICAgIHN5bmNQcm9taXNlLmNhdGNoKGRvbmUpOworICAgICAgICAgICAgICAg
IHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CisgICAgICAgICAgICB9KS50
aGVuKGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDEpOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVybCwgJy9qc29uL2J1aWxk
ZXJzL3NvbWUtYnVpbGRlci0xL3BlbmRpbmdCdWlsZHMnKTsKKyAgICAgICAgICAgICAgICBNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzBdLnJlc29sdmUoW10pOworICAgICAgICAgICAgICAgIHJldHVy
biBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CisgICAgICAgICAgICB9KS50aGVuKGZ1
bmN0aW9uICgpIHsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0cy5sZW5ndGgsIDIpOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzFdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnVybCwgJy9qc29uL2J1aWxkZXJzL3Nv
bWUtYnVpbGRlci0xL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicpOworICAgICAgICAgICAg
ICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ucmVzb2x2ZSh7fSk7CisgICAgICAgICAgICAg
ICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKKyAgICAgICAgICAgIH0p
LnRoZW4oZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ubWV0aG9kLCAnUE9TVCcpOworICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnVybCwgJy9idWlsZGVy
cy9zb21lLWJ1aWxkZXItMS9mb3JjZScpOworICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1
YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5kYXRhLCB7J3drJzogJzE5MjczNicsICdvcyc6
ICcxMC4xMSAxNUEyODQnLCAnYnVpbGQtcmVxdWVzdC1pZCc6ICc3MDEnfSk7CisgICAgICAgICAg
ICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5yZXNvbHZlKCdPSycpOworICAgICAgICAg
ICAgfSkudGhlbihmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCA0KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS51cmwsICcvanNv
bi9idWlsZGVycy9zb21lLWJ1aWxkZXItMS9wZW5kaW5nQnVpbGRzJyk7CisgICAgICAgICAgICAg
ICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS5yZXNvbHZlKFtNb2NrRGF0YS5wZW5kaW5nQnVp
bGQoe2J1aWxkUmVxdWVzdElkOiA3MDF9KV0pOworICAgICAgICAgICAgICAgIHJldHVybiBNb2Nr
UmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CisgICAgICAgICAgICB9KS50aGVuKGZ1bmN0aW9u
ICgpIHsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
cy5sZW5ndGgsIDUpOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzWzRdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRdLnVybCwgJy9qc29uL2J1aWxkZXJzL3NvbWUtYnVp
bGRlci0xL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicpOworICAgICAgICAgICAgICAgIE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbNF0ucmVzb2x2ZSh7fSk7CisgICAgICAgICAgICAgICAgcmV0
dXJuIHN5bmNQcm9taXNlOworICAgICAgICAgICAgfSkudGhlbihmdW5jdGlvbiAoKSB7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5hbGwoKS5sZW5ndGgsIDQpOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5z
dGF0dXMoKSwgJ2ZhaWxlZCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJl
cXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1cygpLCAncGVuZGlu
ZycpOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQo
NzAxKS5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1
aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0YXR1cygpLCAncGVuZGluZycpOworICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXNVcmwo
KSwgbnVsbCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5k
QnlJZCg3MDMpLnN0YXR1cygpLCAncGVuZGluZycpOworICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAzKS5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAg
ICAgICAgICAgICAgcmV0dXJuIEJ1aWxkUmVxdWVzdC5mZXRjaEZvclRyaWdnZXJhYmxlKE1vY2tE
YXRhLm1vY2tUZXN0U3luY0NvbmZpZ1dpdGhUd29CdWlsZGVycygpLnRyaWdnZXJhYmxlTmFtZSk7
CisgICAgICAgICAgICB9KS50aGVuKGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmFsbCgpLmxlbmd0aCwgNCk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDApLnN0YXR1cygpLCAnZmFpbGVk
Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3
MDApLnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVp
bGRSZXF1ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVzKCksICdzY2hlZHVsZWQnKTsKKyAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVzVXJs
KCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9idWlsZGVycy9zb21lLWJ1aWxkZXItMS8nKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMiku
c3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxk
UmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMykuc3RhdHVzKCksICdwZW5k
aW5nJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJ
ZCg3MDMpLnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgICAgICBkb25lKCk7CisgICAg
ICAgICAgICB9KS5jYXRjaChkb25lKTsKKyAgICAgICAgfSk7CisKICAgICAgICAgaXQoJ3Nob3Vs
ZCB1cGRhdGUgdGhlIHN0YXR1cyBvZiBhIHN1cHBvc2VkbHkgc2NoZWR1bGVkIGJ1aWxkIHRoYXQg
d2VudCBtaXNzaW5nJywgZnVuY3Rpb24gKGRvbmUpIHsKICAgICAgICAgICAgIGxldCBkYiA9IFRl
c3RTZXJ2ZXIuZGF0YWJhc2UoKTsKICAgICAgICAgICAgIGxldCBzeW5jUHJvbWlzZTsKSW5kZXg6
IFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy90b29scy9qcy9idWlsZGJvdC1zeW5jZXIuanMKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Rvb2xzL2pzL2J1aWxkYm90LXN5
bmNlci5qcwkocmV2aXNpb24gMTk5MzQyKQorKysgV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Rv
b2xzL2pzL2J1aWxkYm90LXN5bmNlci5qcwkod29ya2luZyBjb3B5KQpAQCAtMTAxLDcgKzEwMSw3
IEBAIGNsYXNzIEJ1aWxkYm90U3luY2VyIHsKICAgICAgICAgcmV0dXJuIHRoaXMuX3JlbW90ZS5w
b3N0Rm9ybVVybGVuY29kZWREYXRhKHRoaXMucGF0aEZvckZvcmNlQnVpbGQoKSwgcHJvcGVydGll
cyk7CiAgICAgfQogCi0gICAgc2NoZWR1bGVGaXJzdFJlcXVlc3RJbkdyb3VwSWZBdmFpbGFibGUo
bmV3UmVxdWVzdCkKKyAgICBzY2hlZHVsZVJlcXVlc3RJbkdyb3VwSWZBdmFpbGFibGUobmV3UmVx
dWVzdCwgc2xhdmVOYW1lKQogICAgIHsKICAgICAgICAgYXNzZXJ0KG5ld1JlcXVlc3QgaW5zdGFu
Y2VvZiBCdWlsZFJlcXVlc3QpOwogCkBAIC0xMjQsNiArMTI0LDEyIEBAIGNsYXNzIEJ1aWxkYm90
U3luY2VyIHsKICAgICAgICAgICAgIHJldHVybiB0aGlzLnNjaGVkdWxlUmVxdWVzdChuZXdSZXF1
ZXN0LCBudWxsKTsKICAgICAgICAgfQogCisgICAgICAgIGlmIChzbGF2ZU5hbWUpIHsKKyAgICAg
ICAgICAgIGlmICghdXNlZFNsYXZlcy5oYXMoc2xhdmVOYW1lKSAmJiAhdGhpcy5fc2xhdmVzV2l0
aE5ld1JlcXVlc3RzLmhhcyhzbGF2ZU5hbWUpKQorICAgICAgICAgICAgICAgIHJldHVybiB0aGlz
LnNjaGVkdWxlUmVxdWVzdChuZXdSZXF1ZXN0LCBzbGF2ZU5hbWUpOworICAgICAgICAgICAgcmV0
dXJuIG51bGw7CisgICAgICAgIH0KKwogICAgICAgICBmb3IgKGxldCBzbGF2ZU5hbWUgb2YgdGhp
cy5fc2xhdmVMaXN0KSB7CiAgICAgICAgICAgICBpZiAoIXVzZWRTbGF2ZXMuaGFzKHNsYXZlTmFt
ZSkgJiYgIXRoaXMuX3NsYXZlc1dpdGhOZXdSZXF1ZXN0cy5oYXMoc2xhdmVOYW1lKSkKICAgICAg
ICAgICAgICAgICByZXR1cm4gdGhpcy5zY2hlZHVsZVJlcXVlc3QobmV3UmVxdWVzdCwgc2xhdmVO
YW1lKTsKSW5kZXg6IFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy90b29scy9qcy9idWlsZGJvdC10
cmlnZ2VyYWJsZS5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdG9v
bHMvanMvYnVpbGRib3QtdHJpZ2dlcmFibGUuanMJKHJldmlzaW9uIDE5OTM0MikKKysrIFdlYnNp
dGVzL3BlcmYud2Via2l0Lm9yZy90b29scy9qcy9idWlsZGJvdC10cmlnZ2VyYWJsZS5qcwkod29y
a2luZyBjb3B5KQpAQCAtMTMyLDE5ICsxMzIsMzAgQEAgY2xhc3MgQnVpbGRib3RUcmlnZ2VyYWJs
ZSB7CiAgICAgICAgIGlmICghbmV4dFJlcXVlc3QpCiAgICAgICAgICAgICByZXR1cm4gbnVsbDsK
IAorICAgICAgICBsZXQgcHJvbWlzZTsKKyAgICAgICAgbGV0IHN5bmNlcjsKICAgICAgICAgaWYg
KCEhbmV4dFJlcXVlc3Qub3JkZXIoKSkgewotICAgICAgICAgICAgdGhpcy5fbG9nZ2VyLmxvZyhg
U2NoZWR1bGluZyBidWlsZCByZXF1ZXN0ICR7bmV4dFJlcXVlc3QuaWQoKX0gb24gJHtncm91cElu
Zm8uc2xhdmVOYW1lfSBpbiAke2dyb3VwSW5mby5zeW5jZXIuYnVpbGRlck5hbWUoKX1gKTsKLSAg
ICAgICAgICAgIHJldHVybiBncm91cEluZm8uc3luY2VyLnNjaGVkdWxlUmVxdWVzdChuZXh0UmVx
dWVzdCwgZ3JvdXBJbmZvLnNsYXZlTmFtZSk7CisgICAgICAgICAgICBzeW5jZXIgPSBncm91cElu
Zm8uc3luY2VyOworICAgICAgICAgICAgaWYgKCFzeW5jZXIpCisgICAgICAgICAgICAgICAgdGhp
cy5fbG9nZ2VyLmVycm9yKGBDb3VsZCBub3QgaWRlbnRpZnkgdGhlIHN5bmNlciBmb3IgJHtuZXh0
UmVxdWVzdC5pZCgpfS5gKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBwcm9t
aXNlID0gc3luY2VyLnNjaGVkdWxlUmVxdWVzdEluR3JvdXBJZkF2YWlsYWJsZShuZXh0UmVxdWVz
dCwgZ3JvdXBJbmZvLnNsYXZlTmFtZSk7CiAgICAgICAgIH0KIAotICAgICAgICBmb3IgKGxldCBz
eW5jZXIgb2YgdGhpcy5fc3luY2VycykgewotICAgICAgICAgICAgbGV0IHByb21pc2UgPSBzeW5j
ZXIuc2NoZWR1bGVGaXJzdFJlcXVlc3RJbkdyb3VwSWZBdmFpbGFibGUobmV4dFJlcXVlc3QpOwot
ICAgICAgICAgICAgaWYgKHByb21pc2UpIHsKLSAgICAgICAgICAgICAgICBsZXQgc2xhdmVOYW1l
ID0gZ3JvdXBJbmZvLnNsYXZlTmFtZSA/IGAgb24gJHtncm91cEluZm8uc2xhdmVOYW1lfWAgOiAn
JzsKLSAgICAgICAgICAgICAgICB0aGlzLl9sb2dnZXIubG9nKGBTY2hlZHVsaW5nIGJ1aWxkIHJl
cXVlc3QgJHtuZXh0UmVxdWVzdC5pZCgpfSR7c2xhdmVOYW1lfSBpbiAke3N5bmNlci5idWlsZGVy
TmFtZSgpfWApOwotICAgICAgICAgICAgICAgIHJldHVybiBwcm9taXNlOworICAgICAgICBpZiAo
IXN5bmNlcikgeworICAgICAgICAgICAgZm9yIChzeW5jZXIgb2YgdGhpcy5fc3luY2Vycykgewor
ICAgICAgICAgICAgICAgIGxldCBwcm9taXNlID0gc3luY2VyLnNjaGVkdWxlUmVxdWVzdEluR3Jv
dXBJZkF2YWlsYWJsZShuZXh0UmVxdWVzdCk7CisgICAgICAgICAgICAgICAgaWYgKHByb21pc2Up
CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQogICAgICAgICB9CisK
KyAgICAgICAgaWYgKHByb21pc2UpIHsKKyAgICAgICAgICAgIGxldCBzbGF2ZU5hbWUgPSBncm91
cEluZm8uc2xhdmVOYW1lID8gYCBvbiAke2dyb3VwSW5mby5zbGF2ZU5hbWV9YCA6ICcnOworICAg
ICAgICAgICAgdGhpcy5fbG9nZ2VyLmxvZyhgU2NoZWR1bGluZyBidWlsZCByZXF1ZXN0ICR7bmV4
dFJlcXVlc3QuaWQoKX0ke3NsYXZlTmFtZX0gaW4gJHtzeW5jZXIuYnVpbGRlck5hbWUoKX1gKTsK
KyAgICAgICAgICAgIHJldHVybiBwcm9taXNlOworICAgICAgICB9CisKICAgICAgICAgcmV0dXJu
IG51bGw7CiAgICAgfQogCkluZGV4OiBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdW5pdC10ZXN0
cy9idWlsZGJvdC1zeW5jZXItdGVzdHMuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vic2l0ZXMvcGVyZi53
ZWJraXQub3JnL3VuaXQtdGVzdHMvYnVpbGRib3Qtc3luY2VyLXRlc3RzLmpzCShyZXZpc2lvbiAx
OTkzNDIpCisrKyBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdW5pdC10ZXN0cy9idWlsZGJvdC1z
eW5jZXItdGVzdHMuanMJKHdvcmtpbmcgY29weSkKQEAgLTgyNyw3ICs4MjcsNyBAQCBkZXNjcmli
ZSgnQnVpbGRib3RTeW5jZXInLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIH0pOwogICAgIH0pOwog
Ci0gICAgZGVzY3JpYmUoJ3NjaGVkdWxlRmlyc3RSZXF1ZXN0SW5Hcm91cElmQXZhaWxhYmxlJywg
ZnVuY3Rpb24gKCkgeworICAgIGRlc2NyaWJlKCdzY2hlZHVsZVJlcXVlc3RJbkdyb3VwSWZBdmFp
bGFibGUnLCBmdW5jdGlvbiAoKSB7CiAKICAgICAgICAgZnVuY3Rpb24gcHVsbEJ1aWxkYm90V2l0
aEFzc2VydGlvbihzeW5jZXIsIHBlbmRpbmdCdWlsZHMsIGluUHJvZ3Jlc3NBbmRGaW5pc2hlZEJ1
aWxkcykKICAgICAgICAgewpAQCAtODQ3LDcgKzg0Nyw3IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFN5
bmNlcicsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIGxldCBzeW5jZXIgPSBCdWlsZGJvdFN5
bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCB7J2NvbmZpZ3VyYXRpb25zJzogW3NtYWxs
Q29uZmlndXJhdGlvbigpXX0pWzBdOwogCiAgICAgICAgICAgICBwdWxsQnVpbGRib3RXaXRoQXNz
ZXJ0aW9uKHN5bmNlciwgW10sIHt9KS50aGVuKGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAgICAg
ICBzeW5jZXIuc2NoZWR1bGVGaXJzdFJlcXVlc3RJbkdyb3VwSWZBdmFpbGFibGUoY3JlYXRlU2Ft
cGxlQnVpbGRSZXF1ZXN0KE1vY2tNb2RlbHMuc29tZVBsYXRmb3JtLCBNb2NrTW9kZWxzLnNvbWVU
ZXN0KSk7CisgICAgICAgICAgICAgICAgc3luY2VyLnNjaGVkdWxlUmVxdWVzdEluR3JvdXBJZkF2
YWlsYWJsZShjcmVhdGVTYW1wbGVCdWlsZFJlcXVlc3QoTW9ja01vZGVscy5zb21lUGxhdGZvcm0s
IE1vY2tNb2RlbHMuc29tZVRlc3QpKTsKICAgICAgICAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKCkg
ewogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEpOwogICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1swXS51cmwsICcvYnVpbGRlcnMvc29t
ZSUyMGJ1aWxkZXIvZm9yY2UnKTsKQEAgLTg2MSw3ICs4NjEsNyBAQCBkZXNjcmliZSgnQnVpbGRi
b3RTeW5jZXInLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBsZXQgc3luY2VyID0gQnVpbGRi
b3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgeydjb25maWd1cmF0aW9ucyc6IFtz
bWFsbENvbmZpZ3VyYXRpb24oKV19KVswXTsKIAogICAgICAgICAgICAgcHVsbEJ1aWxkYm90V2l0
aEFzc2VydGlvbihzeW5jZXIsIFtdLCB7Wy0xXTogc21hbGxGaW5pc2hlZEJ1aWxkKCl9KS50aGVu
KGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAgICAgICBzeW5jZXIuc2NoZWR1bGVGaXJzdFJlcXVl
c3RJbkdyb3VwSWZBdmFpbGFibGUoY3JlYXRlU2FtcGxlQnVpbGRSZXF1ZXN0KE1vY2tNb2RlbHMu
c29tZVBsYXRmb3JtLCBNb2NrTW9kZWxzLnNvbWVUZXN0KSk7CisgICAgICAgICAgICAgICAgc3lu
Y2VyLnNjaGVkdWxlUmVxdWVzdEluR3JvdXBJZkF2YWlsYWJsZShjcmVhdGVTYW1wbGVCdWlsZFJl
cXVlc3QoTW9ja01vZGVscy5zb21lUGxhdGZvcm0sIE1vY2tNb2RlbHMuc29tZVRlc3QpKTsKICAg
ICAgICAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
ZXF1ZXN0c1swXS51cmwsICcvYnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIvZm9yY2UnKTsKQEAgLTg3
NSw3ICs4NzUsNyBAQCBkZXNjcmliZSgnQnVpbGRib3RTeW5jZXInLCBmdW5jdGlvbiAoKSB7CiAg
ICAgICAgICAgICBsZXQgc3luY2VyID0gQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1Jl
bW90ZUFQSSwgeydjb25maWd1cmF0aW9ucyc6IFtzbWFsbENvbmZpZ3VyYXRpb24oKV19KVswXTsK
IAogICAgICAgICAgICAgcHVsbEJ1aWxkYm90V2l0aEFzc2VydGlvbihzeW5jZXIsIFtzbWFsbFBl
bmRpbmdCdWlsZCgpXSwge30pLnRoZW4oZnVuY3Rpb24gKCkgewotICAgICAgICAgICAgICAgIHN5
bmNlci5zY2hlZHVsZUZpcnN0UmVxdWVzdEluR3JvdXBJZkF2YWlsYWJsZShjcmVhdGVTYW1wbGVC
dWlsZFJlcXVlc3QoTW9ja01vZGVscy5zb21lUGxhdGZvcm0sIE1vY2tNb2RlbHMuc29tZVRlc3Qp
KTsKKyAgICAgICAgICAgICAgICBzeW5jZXIuc2NoZWR1bGVSZXF1ZXN0SW5Hcm91cElmQXZhaWxh
YmxlKGNyZWF0ZVNhbXBsZUJ1aWxkUmVxdWVzdChNb2NrTW9kZWxzLnNvbWVQbGF0Zm9ybSwgTW9j
a01vZGVscy5zb21lVGVzdCkpOwogICAgICAgICAgICAgfSkudGhlbihmdW5jdGlvbiAoKSB7CiAg
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMCk7CiAgICAgICAg
ICAgICAgICAgZG9uZSgpOwpAQCAtODg2LDcgKzg4Niw3IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFN5
bmNlcicsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIGxldCBzeW5jZXIgPSBCdWlsZGJvdFN5
bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBzYW1wbGVpT1NDb25maWcoKSlbMF07CiAK
ICAgICAgICAgICAgIHB1bGxCdWlsZGJvdFdpdGhBc3NlcnRpb24oc3luY2VyLCBbXSwge30pLnRo
ZW4oZnVuY3Rpb24gKCkgewotICAgICAgICAgICAgICAgIHN5bmNlci5zY2hlZHVsZUZpcnN0UmVx
dWVzdEluR3JvdXBJZkF2YWlsYWJsZShjcmVhdGVTYW1wbGVCdWlsZFJlcXVlc3QoTW9ja01vZGVs
cy5pcGhvbmUsIE1vY2tNb2RlbHMuc3BlZWRvbWV0ZXIpKTsKKyAgICAgICAgICAgICAgICBzeW5j
ZXIuc2NoZWR1bGVSZXF1ZXN0SW5Hcm91cElmQXZhaWxhYmxlKGNyZWF0ZVNhbXBsZUJ1aWxkUmVx
dWVzdChNb2NrTW9kZWxzLmlwaG9uZSwgTW9ja01vZGVscy5zcGVlZG9tZXRlcikpOwogICAgICAg
ICAgICAgfSkudGhlbihmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlcXVlc3RzLmxlbmd0aCwgMSk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVl
c3RzWzBdLnVybCwgJy9idWlsZGVycy9BQlRlc3QtaVBob25lLVJ1bkJlbmNobWFyay1UZXN0cy9m
b3JjZScpOwpAQCAtODk5LDcgKzg5OSw3IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFN5bmNlcicsIGZ1
bmN0aW9uICgpIHsKICAgICAgICAgICAgIGxldCBzeW5jZXIgPSBCdWlsZGJvdFN5bmNlci5fbG9h
ZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBzYW1wbGVpT1NDb25maWcoKSlbMV07CiAKICAgICAgICAg
ICAgIHB1bGxCdWlsZGJvdFdpdGhBc3NlcnRpb24oc3luY2VyLCBbXSwge1stMV06IHNhbXBsZUZp
bmlzaGVkQnVpbGQoKX0pLnRoZW4oZnVuY3Rpb24gKCkgewotICAgICAgICAgICAgICAgIHN5bmNl
ci5zY2hlZHVsZUZpcnN0UmVxdWVzdEluR3JvdXBJZkF2YWlsYWJsZShjcmVhdGVTYW1wbGVCdWls
ZFJlcXVlc3QoTW9ja01vZGVscy5pcGFkLCBNb2NrTW9kZWxzLnNwZWVkb21ldGVyKSk7CisgICAg
ICAgICAgICAgICAgc3luY2VyLnNjaGVkdWxlUmVxdWVzdEluR3JvdXBJZkF2YWlsYWJsZShjcmVh
dGVTYW1wbGVCdWlsZFJlcXVlc3QoTW9ja01vZGVscy5pcGFkLCBNb2NrTW9kZWxzLnNwZWVkb21l
dGVyKSk7CiAgICAgICAgICAgICB9KS50aGVuKGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxKTsKICAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocmVxdWVzdHNbMF0udXJsLCAnL2J1aWxkZXJzL0FCVGVzdC1pUGFkLVJ1bkJlbmNo
bWFyay1UZXN0cy9mb3JjZScpOwpAQCAtOTEyLDcgKzkxMiw3IEBAIGRlc2NyaWJlKCdCdWlsZGJv
dFN5bmNlcicsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIGxldCBzeW5jZXIgPSBCdWlsZGJv
dFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBzYW1wbGVpT1NDb25maWcoKSlbMV07
CiAKICAgICAgICAgICAgIHB1bGxCdWlsZGJvdFdpdGhBc3NlcnRpb24oc3luY2VyLCBbc2FtcGxl
UGVuZGluZ0J1aWxkKCldLCB7fSkudGhlbihmdW5jdGlvbiAoKSB7Ci0gICAgICAgICAgICAgICAg
c3luY2VyLnNjaGVkdWxlRmlyc3RSZXF1ZXN0SW5Hcm91cElmQXZhaWxhYmxlKGNyZWF0ZVNhbXBs
ZUJ1aWxkUmVxdWVzdChNb2NrTW9kZWxzLmlwYWQsIE1vY2tNb2RlbHMuc3BlZWRvbWV0ZXIpKTsK
KyAgICAgICAgICAgICAgICBzeW5jZXIuc2NoZWR1bGVSZXF1ZXN0SW5Hcm91cElmQXZhaWxhYmxl
KGNyZWF0ZVNhbXBsZUJ1aWxkUmVxdWVzdChNb2NrTW9kZWxzLmlwYWQsIE1vY2tNb2RlbHMuc3Bl
ZWRvbWV0ZXIpKTsKICAgICAgICAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKCkgewogICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDApOwogICAgICAgICAgICAgICAg
IGRvbmUoKTsKQEAgLTkyMyw3ICs5MjMsNyBAQCBkZXNjcmliZSgnQnVpbGRib3RTeW5jZXInLCBm
dW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBsZXQgc3luY2VyID0gQnVpbGRib3RTeW5jZXIuX2xv
YWRDb25maWcoTW9ja1JlbW90ZUFQSSwgc2FtcGxlaU9TQ29uZmlnKCkpWzFdOwogCiAgICAgICAg
ICAgICBwdWxsQnVpbGRib3RXaXRoQXNzZXJ0aW9uKHN5bmNlciwgW3NhbXBsZVBlbmRpbmdCdWls
ZCgxLCAxLCAnYW5vdGhlci1zbGF2ZScpXSwge30pLnRoZW4oZnVuY3Rpb24gKCkgewotICAgICAg
ICAgICAgICAgIHN5bmNlci5zY2hlZHVsZUZpcnN0UmVxdWVzdEluR3JvdXBJZkF2YWlsYWJsZShj
cmVhdGVTYW1wbGVCdWlsZFJlcXVlc3QoTW9ja01vZGVscy5pcGFkLCBNb2NrTW9kZWxzLnNwZWVk
b21ldGVyKSk7CisgICAgICAgICAgICAgICAgc3luY2VyLnNjaGVkdWxlUmVxdWVzdEluR3JvdXBJ
ZkF2YWlsYWJsZShjcmVhdGVTYW1wbGVCdWlsZFJlcXVlc3QoTW9ja01vZGVscy5pcGFkLCBNb2Nr
TW9kZWxzLnNwZWVkb21ldGVyKSk7CiAgICAgICAgICAgICB9KS50aGVuKGZ1bmN0aW9uICgpIHsK
ICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxKTsKICAgICAg
ICAgICAgICAgICBkb25lKCk7CkBAIC05MzQsNyArOTM0LDcgQEAgZGVzY3JpYmUoJ0J1aWxkYm90
U3luY2VyJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgbGV0IHN5bmNlciA9IEJ1aWxkYm90
U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIHNhbXBsZWlPU0NvbmZpZygpKVsxXTsK
IAogICAgICAgICAgICAgcHVsbEJ1aWxkYm90V2l0aEFzc2VydGlvbihzeW5jZXIsIFtdLCB7Wy0x
XTogc2FtcGxlSW5Qcm9ncmVzc0J1aWxkKCl9KS50aGVuKGZ1bmN0aW9uICgpIHsKLSAgICAgICAg
ICAgICAgICBzeW5jZXIuc2NoZWR1bGVGaXJzdFJlcXVlc3RJbkdyb3VwSWZBdmFpbGFibGUoY3Jl
YXRlU2FtcGxlQnVpbGRSZXF1ZXN0KE1vY2tNb2RlbHMuaXBhZCwgTW9ja01vZGVscy5zcGVlZG9t
ZXRlcikpOworICAgICAgICAgICAgICAgIHN5bmNlci5zY2hlZHVsZVJlcXVlc3RJbkdyb3VwSWZB
dmFpbGFibGUoY3JlYXRlU2FtcGxlQnVpbGRSZXF1ZXN0KE1vY2tNb2RlbHMuaXBhZCwgTW9ja01v
ZGVscy5zcGVlZG9tZXRlcikpOwogICAgICAgICAgICAgfSkudGhlbihmdW5jdGlvbiAoKSB7CiAg
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMSk7CiAgICAgICAg
ICAgICAgICAgZG9uZSgpOwpAQCAtOTQ1LDcgKzk0NSw3IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFN5
bmNlcicsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIGxldCBzeW5jZXIgPSBCdWlsZGJvdFN5
bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBzYW1wbGVpT1NDb25maWcoKSlbMV07CiAK
ICAgICAgICAgICAgIHB1bGxCdWlsZGJvdFdpdGhBc3NlcnRpb24oc3luY2VyLCBbXSwge1stMV06
IHNhbXBsZUluUHJvZ3Jlc3NCdWlsZCgnb3RoZXItc2xhdmUnKX0pLnRoZW4oZnVuY3Rpb24gKCkg
ewotICAgICAgICAgICAgICAgIHN5bmNlci5zY2hlZHVsZUZpcnN0UmVxdWVzdEluR3JvdXBJZkF2
YWlsYWJsZShjcmVhdGVTYW1wbGVCdWlsZFJlcXVlc3QoTW9ja01vZGVscy5pcGFkLCBNb2NrTW9k
ZWxzLnNwZWVkb21ldGVyKSk7CisgICAgICAgICAgICAgICAgc3luY2VyLnNjaGVkdWxlUmVxdWVz
dEluR3JvdXBJZkF2YWlsYWJsZShjcmVhdGVTYW1wbGVCdWlsZFJlcXVlc3QoTW9ja01vZGVscy5p
cGFkLCBNb2NrTW9kZWxzLnNwZWVkb21ldGVyKSk7CiAgICAgICAgICAgICB9KS50aGVuKGZ1bmN0
aW9uICgpIHsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAx
KTsKICAgICAgICAgICAgICAgICBkb25lKCk7CkBAIC05NTYsNyArOTU2LDcgQEAgZGVzY3JpYmUo
J0J1aWxkYm90U3luY2VyJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgbGV0IHN5bmNlciA9
IEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIHNhbXBsZWlPU0NvbmZp
ZygpKVswXTsKIAogICAgICAgICAgICAgcHVsbEJ1aWxkYm90V2l0aEFzc2VydGlvbihzeW5jZXIs
IFtdLCB7fSkudGhlbihmdW5jdGlvbiAoKSB7Ci0gICAgICAgICAgICAgICAgc3luY2VyLnNjaGVk
dWxlRmlyc3RSZXF1ZXN0SW5Hcm91cElmQXZhaWxhYmxlKGNyZWF0ZVNhbXBsZUJ1aWxkUmVxdWVz
dChNb2NrTW9kZWxzLmlwYWQsIE1vY2tNb2RlbHMuc3BlZWRvbWV0ZXIpKTsKKyAgICAgICAgICAg
ICAgICBzeW5jZXIuc2NoZWR1bGVSZXF1ZXN0SW5Hcm91cElmQXZhaWxhYmxlKGNyZWF0ZVNhbXBs
ZUJ1aWxkUmVxdWVzdChNb2NrTW9kZWxzLmlwYWQsIE1vY2tNb2RlbHMuc3BlZWRvbWV0ZXIpKTsK
ICAgICAgICAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDApOwogICAgICAgICAgICAgICAgIGRvbmUoKTsKQEAg
LTk3MSw3ICs5NzEsNyBAQCBkZXNjcmliZSgnQnVpbGRib3RTeW5jZXInLCBmdW5jdGlvbiAoKSB7
CiAgICAgICAgICAgICAgICAgc3luY2VyLnNjaGVkdWxlUmVxdWVzdChjcmVhdGVTYW1wbGVCdWls
ZFJlcXVlc3QoTW9ja01vZGVscy5pcGFkLCBNb2NrTW9kZWxzLnNwZWVkb21ldGVyKSwgJ0FCVGVz
dC1pUGFkLTEnKTsKICAgICAgICAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKCkgewogICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDIpOwotICAgICAgICAgICAgICAg
IHN5bmNlci5zY2hlZHVsZUZpcnN0UmVxdWVzdEluR3JvdXBJZkF2YWlsYWJsZShjcmVhdGVTYW1w
bGVCdWlsZFJlcXVlc3QoTW9ja01vZGVscy5pcGFkLCBNb2NrTW9kZWxzLnNwZWVkb21ldGVyKSk7
CisgICAgICAgICAgICAgICAgc3luY2VyLnNjaGVkdWxlUmVxdWVzdEluR3JvdXBJZkF2YWlsYWJs
ZShjcmVhdGVTYW1wbGVCdWlsZFJlcXVlc3QoTW9ja01vZGVscy5pcGFkLCBNb2NrTW9kZWxzLnNw
ZWVkb21ldGVyKSk7CiAgICAgICAgICAgICB9KS50aGVuKGZ1bmN0aW9uICgpIHsKICAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAyKTsKICAgICAgICAgICAgICAg
ICBkb25lKCk7CkBAIC05ODUsNyArOTg1LDcgQEAgZGVzY3JpYmUoJ0J1aWxkYm90U3luY2VyJywg
ZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgIHN5bmNlci5zY2hlZHVsZVJlcXVlc3QoY3Jl
YXRlU2FtcGxlQnVpbGRSZXF1ZXN0KE1vY2tNb2RlbHMuaXBhZCwgTW9ja01vZGVscy5zcGVlZG9t
ZXRlciksICdBQlRlc3QtaVBhZC0wJyk7CiAgICAgICAgICAgICB9KS50aGVuKGZ1bmN0aW9uICgp
IHsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxKTsKLSAg
ICAgICAgICAgICAgICBzeW5jZXIuc2NoZWR1bGVGaXJzdFJlcXVlc3RJbkdyb3VwSWZBdmFpbGFi
bGUoY3JlYXRlU2FtcGxlQnVpbGRSZXF1ZXN0KE1vY2tNb2RlbHMuaXBhZCwgTW9ja01vZGVscy5z
cGVlZG9tZXRlciksICdBQlRlc3QtaVBhZC0xJyk7CisgICAgICAgICAgICAgICAgc3luY2VyLnNj
aGVkdWxlUmVxdWVzdEluR3JvdXBJZkF2YWlsYWJsZShjcmVhdGVTYW1wbGVCdWlsZFJlcXVlc3Qo
TW9ja01vZGVscy5pcGFkLCBNb2NrTW9kZWxzLnNwZWVkb21ldGVyKSwgJ0FCVGVzdC1pUGFkLTEn
KTsKICAgICAgICAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDIpOwogICAgICAgICAgICAgICAgIGRvbmUoKTsK
QEAgLTk5OSw3ICs5OTksNyBAQCBkZXNjcmliZSgnQnVpbGRib3RTeW5jZXInLCBmdW5jdGlvbiAo
KSB7CiAgICAgICAgICAgICAgICAgc3luY2VyLnNjaGVkdWxlUmVxdWVzdChjcmVhdGVTYW1wbGVC
dWlsZFJlcXVlc3QoTW9ja01vZGVscy5zb21lUGxhdGZvcm0sIE1vY2tNb2RlbHMuc29tZVRlc3Qp
LCBudWxsKTsKICAgICAgICAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKCkgewogICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgICAgIHN5
bmNlci5zY2hlZHVsZUZpcnN0UmVxdWVzdEluR3JvdXBJZkF2YWlsYWJsZShjcmVhdGVTYW1wbGVC
dWlsZFJlcXVlc3QoTW9ja01vZGVscy5zb21lUGxhdGZvcm0sIE1vY2tNb2RlbHMuc29tZVRlc3Qp
KTsKKyAgICAgICAgICAgICAgICBzeW5jZXIuc2NoZWR1bGVSZXF1ZXN0SW5Hcm91cElmQXZhaWxh
YmxlKGNyZWF0ZVNhbXBsZUJ1aWxkUmVxdWVzdChNb2NrTW9kZWxzLnNvbWVQbGF0Zm9ybSwgTW9j
a01vZGVscy5zb21lVGVzdCkpOwogICAgICAgICAgICAgfSkudGhlbihmdW5jdGlvbiAoKSB7CiAg
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMSk7CiAgICAgICAg
ICAgICAgICAgZG9uZSgpOwo=
</data>
<flag name="review"
          id="300523"
          type_id="1"
          status="+"
          setter="cdumez"
    />
          </attachment>
      

    </bug>

</bugzilla>