<?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>36253</bug_id>
          
          <creation_ts>2010-03-17 17:19:39 -0700</creation_ts>
          <short_desc>First cut at SheriffBot</short_desc>
          <delta_ts>2010-03-18 12:49:46 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>OS X 10.5</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="Adam Barth">abarth</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>eric</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>201064</commentid>
    <comment_count>0</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-03-17 17:19:39 -0700</bug_when>
    <thetext>First cut at SheriffBot</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>201067</commentid>
    <comment_count>1</comment_count>
      <attachid>50978</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-03-17 17:24:14 -0700</bug_when>
    <thetext>Created attachment 50978
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>201076</commentid>
    <comment_count>2</comment_count>
      <attachid>50978</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-03-17 17:43:02 -0700</bug_when>
    <thetext>Comment on attachment 50978
Patch

I think IRC connection should be explicit.  It&apos;s &quot;dangerous&quot;.  It should just return None until someone has explicitly connected.

Or you coudl have an ensure_irc_connected() method, which makes it clear that it does work.  &quot;irc()&quot; could leave me in some sort of false impression that it doesn&apos;t do any work, or certainly doesn&apos;t connect me to anything.

I think if we have some explicit connect method it should take a username/host/channel, as whoever is calling it will have that information.

I worry that the name &quot;finalize&quot; is overloaded.  Maybe we should have some custom name.  I think you mentioned &quot;command_completed()&quot; in person.   The default implementation could pass.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>201081</commentid>
    <comment_count>3</comment_count>
      <attachid>50982</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-03-17 17:49:39 -0700</bug_when>
    <thetext>Created attachment 50982
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>201216</commentid>
    <comment_count>4</comment_count>
      <attachid>50982</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-03-18 01:09:19 -0700</bug_when>
    <thetext>Comment on attachment 50982
Patch

OK.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>201483</commentid>
    <comment_count>5</comment_count>
      <attachid>50982</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-03-18 12:49:42 -0700</bug_when>
    <thetext>Comment on attachment 50982
Patch

Clearing flags on attachment: 50982

Committed r56181: &lt;http://trac.webkit.org/changeset/56181&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>201484</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-03-18 12:49:46 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>50978</attachid>
            <date>2010-03-17 17:24:14 -0700</date>
            <delta_ts>2010-03-17 17:49:35 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-36253-20100317172412.patch</filename>
            <type>text/plain</type>
            <size>18369</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCAzNzA4ODQ2Li42OTEyNzY2IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9DaGFuZ2VM
b2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDEgQEAKKzIwMTAtMDMt
MTcgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBGaXJzdCBjdXQgYXQgU2hlcmlmZkJvdAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzYyNTMKKworICAg
ICAgICBUaGlzIHBhdGNoIGNvbnRhaW5zIGEgZmlyc3QgYXR0ZW1wdCBhdCB3cml0aW5nIGEgc2hl
cmlmZiBib3QuCisgICAgICAgIEN1cnJlbnRseSwgd2UncmUgbWlzc2luZyB0aGUgbG9naWMgdGhh
dCBhY3R1YWxseSBmaW5kcyB0aGUgU1ZOIHJldmlzaW9uCisgICAgICAgIG51bWJlcnMgdG8gY29t
cGxhaW4gYWJvdXQsIGJ1dCBvbmNlIHdlIGhhdmUgdGhhdCwgd2UnbGwgaGF2ZSB0aGUgcmVzdAor
ICAgICAgICBvZiB0aGUgaW5mcnVzdHJ1Y3R1cmUgdG8gcGluZyBJUkMgYW5kIHRvIGZpbGUgYnVn
cy4KKworICAgICAgICBUaGVyZSdzIGEgbG90IHRvIGZpbGwgaW4gZm9yIHRoZSBTaGVyaWZmQm90
LCBidXQgdGhpcyBwYXRjaCBnaXZlIHVzIHRoZQorICAgICAgICBmcmFtZXdvcmsgaW4gd2hpY2gg
dG8gZG8gaXQuCisKKyAgICAgICAgVGhpcyBwYXRjaCByZXF1aXJlZCBhIGJpdCBvZiByZWZhY3Rv
cmluZyBvZiBBYnN0cmFjdFF1ZXVlIGJlY2F1c2UKKyAgICAgICAgU2hlcmlmZkJvdCBpcyB0aGUg
Zmlyc3QgYm90IHRoYXQgZG9lc24ndCBwcm9jZXNzIHBhdGNoZXMgKGl0IHByb2Nlc3NlcworICAg
ICAgICBTVk4gcmV2aXNpb25zKS4gIEFjY29yZGluZ2x5LCBJJ3ZlIGZhY3RvcmVkIG91dCBBYnN0
cmFjdFBhdGNoUXVldWUgdG8KKyAgICAgICAgaG9sZCB0aGUgcGFydHMgb2YgQWJzdHJhY3RRdWV1
ZSB0aGF0IGFyZSBzcGVjaWZpYyB0byBkZWFsaW5nIHdpdGgKKyAgICAgICAgcGF0Y2hlcy4gIFNv
bWUgb2YgdGhlIGNob2ljZXMgaGVyZSBtaWdodCBub3QgYmUgb2J2aW91cyB5ZXQsIGJ1dCB3ZSBj
YW4KKyAgICAgICAgdHdlYWsgdGhlbSBhcyBvdXIgbmVlZHMgYmVjb21lIGNsZWFyZXIuCisKKyAg
ICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2NvbW1hbmRzL3F1ZXVlcy5weToKKyAgICAgICAgKiBT
Y3JpcHRzL3dlYmtpdHB5L2NvbW1hbmRzL3F1ZXVlc191bml0dGVzdC5weToKKyAgICAgICAgKiBT
Y3JpcHRzL3dlYmtpdHB5L2NvbW1hbmRzL3NoZXJpZmZib3QucHk6IEFkZGVkLgorICAgICAgICAq
IFNjcmlwdHMvd2Via2l0cHkvY29tbWFuZHMvc2hlcmlmZmJvdF91bml0dGVzdC5weTogQWRkZWQu
CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9tb2NrX2J1Z3ppbGxhdG9vbC5weToKKyAgICAg
ICAgICAgIEFkZGVkIGEgTW9ja0lSQyBvYmplY3QgdG8gdGhlIG1vY2sgdG9vbC4KKyAgICAgICAg
KiBTY3JpcHRzL3dlYmtpdHB5L211bHRpY29tbWFuZHRvb2wucHk6CisgICAgICAgICAgICBBZGRl
ZCBhIGZpbmFsaXplIG1ldGhvZCBzbyB0aGUgdG9vbCBjYW4gZGlzY29ubmVjdCBmcm9tIElSQwor
ICAgICAgICAgICAgY2xlYW5seSBpbnN0ZWFkIG9mIGp1c3QgZHJvcGluZyB0aGUgc29ja2V0Lgor
ICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbXVsdGljb21tYW5kdG9vbF91bml0dGVzdC5weToK
KyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3BhdGNoL3BhdGNoZXIucHk6CisgICAgICAgICAg
ICBBZGRlZCBzdXBwb3J0IGZvciB0YWxraW5nIHRvIElSQy4KKyAgICAgICAgKiBTY3JpcHRzL3dl
YmtpdHB5L3VuaXR0ZXN0cy5weToKKyAgICAgICAgICAgIFdlIHNob3VsZCBhZGQgYSBjb21tYW5k
cy91bml0dGVzdHMucHkgZmlsZSBhdCBzb21lIHBvaW50IHRvIG1ha2UKKyAgICAgICAgICAgIHRo
ZSBjb21tYW5kcyBtb2R1bGUgbW9yZSBzZWxmLWNvbnRhaW5lZC4KKwogMjAxMC0wMy0xNyAgRGFu
aWVsIEJhdGVzICA8ZGJhdGVzQHJpbS5jb20+CiAKICAgICAgICAgUnViYmVyLXN0YW1wZWQgYnkg
RGF2aWQgTGV2aW4uCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2Nv
bW1hbmRzL3F1ZXVlcy5weSBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbWFuZHMv
cXVldWVzLnB5CmluZGV4IDBlYzdhYjMuLmY0NTQ4MDQgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xz
L1NjcmlwdHMvd2Via2l0cHkvY29tbWFuZHMvcXVldWVzLnB5CisrKyBiL1dlYktpdFRvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvY29tbWFuZHMvcXVldWVzLnB5CkBAIC02OSwyNCArNjksMjAgQEAgY2xh
c3MgQWJzdHJhY3RRdWV1ZShDb21tYW5kLCBRdWV1ZUVuZ2luZURlbGVnYXRlKToKICAgICAgICAg
ICAgIHRyYWNlYmFjay5wcmludF9leGMoKQogICAgICAgICAgICAgbG9nKCJGYWlsZWQgdG8gQ0Mg
d2F0Y2hlcnMuIikKIAotICAgIGRlZiBfdXBkYXRlX3N0YXR1cyhzZWxmLCBtZXNzYWdlLCBwYXRj
aD1Ob25lLCByZXN1bHRzX2ZpbGU9Tm9uZSk6Ci0gICAgICAgIHNlbGYudG9vbC5zdGF0dXNfc2Vy
dmVyLnVwZGF0ZV9zdGF0dXMoc2VsZi5uYW1lLCBtZXNzYWdlLCBwYXRjaCwgcmVzdWx0c19maWxl
KQotCi0gICAgZGVmIF9kaWRfcGFzcyhzZWxmLCBwYXRjaCk6Ci0gICAgICAgIHNlbGYuX3VwZGF0
ZV9zdGF0dXMoc2VsZi5fcGFzc19zdGF0dXMsIHBhdGNoKQotCi0gICAgZGVmIF9kaWRfZmFpbChz
ZWxmLCBwYXRjaCk6Ci0gICAgICAgIHNlbGYuX3VwZGF0ZV9zdGF0dXMoc2VsZi5fZmFpbF9zdGF0
dXMsIHBhdGNoKQorICAgIGRlZiBydW5fd2Via2l0X3BhdGNoKHNlbGYsIGFyZ3MpOgorICAgICAg
ICB3ZWJraXRfcGF0Y2hfYXJncyA9IFtzZWxmLnRvb2wucGF0aCgpXQorICAgICAgICAjIEZJWE1F
OiBUaGlzIGlzIGEgaGFjaywgd2Ugc2hvdWxkIGhhdmUgYSBtb3JlIGdlbmVyYWwgd2F5IHRvIHBh
c3MgZ2xvYmFsIG9wdGlvbnMuCisgICAgICAgIHdlYmtpdF9wYXRjaF9hcmdzICs9IFsiLS1zdGF0
dXMtaG9zdD0lcyIgJSBzZWxmLnRvb2wuc3RhdHVzX3NlcnZlci5ob3N0XQorICAgICAgICB3ZWJr
aXRfcGF0Y2hfYXJncyArPSBtYXAoc3RyLCBhcmdzKQorICAgICAgICBzZWxmLnRvb2wuZXhlY3V0
aXZlLnJ1bl9hbmRfdGhyb3dfaWZfZmFpbCh3ZWJraXRfcGF0Y2hfYXJncykKIAotICAgIGRlZiBf
ZGlkX2Vycm9yKHNlbGYsIHBhdGNoLCByZWFzb24pOgotICAgICAgICBtZXNzYWdlID0gIiVzOiAl
cyIgJSAoc2VsZi5fZXJyb3Jfc3RhdHVzLCByZWFzb24pCi0gICAgICAgIHNlbGYuX3VwZGF0ZV9z
dGF0dXMobWVzc2FnZSwgcGF0Y2gpCisgICAgIyBRdWV1ZUVuZ2luZURlbGVnYXRlIG1ldGhvZHMK
IAogICAgIGRlZiBxdWV1ZV9sb2dfcGF0aChzZWxmKToKICAgICAgICAgcmV0dXJuICIlcy5sb2ci
ICUgc2VsZi5uYW1lCiAKLSAgICBkZWYgd29ya19pdGVtX2xvZ19wYXRoKHNlbGYsIHBhdGNoKToK
LSAgICAgICAgcmV0dXJuIG9zLnBhdGguam9pbigiJXMtbG9ncyIgJSBzZWxmLm5hbWUsICIlcy5s
b2ciICUgcGF0Y2guYnVnX2lkKCkpCisgICAgZGVmIHdvcmtfaXRlbV9sb2dfcGF0aChzZWxmLCB3
b3JrX2l0ZW0pOgorICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yLCAic3ViY2xhc3Nl
cyBtdXN0IGltcGxlbWVudCIKIAogICAgIGRlZiBiZWdpbl93b3JrX3F1ZXVlKHNlbGYpOgogICAg
ICAgICBsb2coIkNBVVRJT046ICVzIHdpbGwgZGlzY2FyZCBhbGwgbG9jYWwgY2hhbmdlcyBpbiBc
IiVzXCIiICUgKHNlbGYubmFtZSwgc2VsZi50b29sLnNjbSgpLmNoZWNrb3V0X3Jvb3QpKQpAQCAt
MTEyLDE1ICsxMDgsNyBAQCBjbGFzcyBBYnN0cmFjdFF1ZXVlKENvbW1hbmQsIFF1ZXVlRW5naW5l
RGVsZWdhdGUpOgogICAgIGRlZiBoYW5kbGVfdW5leHBlY3RlZF9lcnJvcihzZWxmLCB3b3JrX2l0
ZW0sIG1lc3NhZ2UpOgogICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yLCAic3ViY2xh
c3NlcyBtdXN0IGltcGxlbWVudCIKIAotICAgIGRlZiBydW5fd2Via2l0X3BhdGNoKHNlbGYsIGFy
Z3MpOgotICAgICAgICB3ZWJraXRfcGF0Y2hfYXJncyA9IFtzZWxmLnRvb2wucGF0aCgpXQotICAg
ICAgICAjIEZJWE1FOiBUaGlzIGlzIGEgaGFjaywgd2Ugc2hvdWxkIGhhdmUgYSBtb3JlIGdlbmVy
YWwgd2F5IHRvIHBhc3MgZ2xvYmFsIG9wdGlvbnMuCi0gICAgICAgIHdlYmtpdF9wYXRjaF9hcmdz
ICs9IFsiLS1zdGF0dXMtaG9zdD0lcyIgJSBzZWxmLnRvb2wuc3RhdHVzX3NlcnZlci5ob3N0XQot
ICAgICAgICB3ZWJraXRfcGF0Y2hfYXJncyArPSBtYXAoc3RyLCBhcmdzKQotICAgICAgICBzZWxm
LnRvb2wuZXhlY3V0aXZlLnJ1bl9hbmRfdGhyb3dfaWZfZmFpbCh3ZWJraXRfcGF0Y2hfYXJncykK
LQotICAgIGRlZiBsb2dfcHJvZ3Jlc3Moc2VsZiwgcGF0Y2hfaWRzKToKLSAgICAgICAgbG9nKCIl
cyBpbiAlcyBbJXNdIiAlIChwbHVyYWxpemUoInBhdGNoIiwgbGVuKHBhdGNoX2lkcykpLCBzZWxm
Lm5hbWUsICIsICIuam9pbihtYXAoc3RyLCBwYXRjaF9pZHMpKSkpCisgICAgIyBDb21tYW5kIG1l
dGhvZHMKIAogICAgIGRlZiBleGVjdXRlKHNlbGYsIG9wdGlvbnMsIGFyZ3MsIHRvb2wsIGVuZ2lu
ZT1RdWV1ZUVuZ2luZSk6CiAgICAgICAgIHNlbGYub3B0aW9ucyA9IG9wdGlvbnMKQEAgLTEzNiwx
NSArMTI0LDM2IEBAIGNsYXNzIEFic3RyYWN0UXVldWUoQ29tbWFuZCwgUXVldWVFbmdpbmVEZWxl
Z2F0ZSk6CiAgICAgICAgIHJldHVybiB0b29sLnN0YXR1c19zZXJ2ZXIudXBkYXRlX3N0YXR1cyhj
bHMubmFtZSwgbWVzc2FnZSwgc3RhdGVbInBhdGNoIl0sIFN0cmluZ0lPKG91dHB1dCkpCiAKIAot
Y2xhc3MgQ29tbWl0UXVldWUoQWJzdHJhY3RRdWV1ZSwgU3RlcFNlcXVlbmNlRXJyb3JIYW5kbGVy
KToKK2NsYXNzIEFic3RyYWN0UGF0Y2hRdWV1ZShBYnN0cmFjdFF1ZXVlKToKKyAgICBkZWYgX3Vw
ZGF0ZV9zdGF0dXMoc2VsZiwgbWVzc2FnZSwgcGF0Y2g9Tm9uZSwgcmVzdWx0c19maWxlPU5vbmUp
OgorICAgICAgICBzZWxmLnRvb2wuc3RhdHVzX3NlcnZlci51cGRhdGVfc3RhdHVzKHNlbGYubmFt
ZSwgbWVzc2FnZSwgcGF0Y2gsIHJlc3VsdHNfZmlsZSkKKworICAgIGRlZiBfZGlkX3Bhc3Moc2Vs
ZiwgcGF0Y2gpOgorICAgICAgICBzZWxmLl91cGRhdGVfc3RhdHVzKHNlbGYuX3Bhc3Nfc3RhdHVz
LCBwYXRjaCkKKworICAgIGRlZiBfZGlkX2ZhaWwoc2VsZiwgcGF0Y2gpOgorICAgICAgICBzZWxm
Ll91cGRhdGVfc3RhdHVzKHNlbGYuX2ZhaWxfc3RhdHVzLCBwYXRjaCkKKworICAgIGRlZiBfZGlk
X2Vycm9yKHNlbGYsIHBhdGNoLCByZWFzb24pOgorICAgICAgICBtZXNzYWdlID0gIiVzOiAlcyIg
JSAoc2VsZi5fZXJyb3Jfc3RhdHVzLCByZWFzb24pCisgICAgICAgIHNlbGYuX3VwZGF0ZV9zdGF0
dXMobWVzc2FnZSwgcGF0Y2gpCisKKyAgICBkZWYgd29ya19pdGVtX2xvZ19wYXRoKHNlbGYsIHBh
dGNoKToKKyAgICAgICAgcmV0dXJuIG9zLnBhdGguam9pbigiJXMtbG9ncyIgJSBzZWxmLm5hbWUs
ICIlcy5sb2ciICUgcGF0Y2guYnVnX2lkKCkpCisKKyAgICBkZWYgbG9nX3Byb2dyZXNzKHNlbGYs
IHBhdGNoX2lkcyk6CisgICAgICAgIGxvZygiJXMgaW4gJXMgWyVzXSIgJSAocGx1cmFsaXplKCJw
YXRjaCIsIGxlbihwYXRjaF9pZHMpKSwgc2VsZi5uYW1lLCAiLCAiLmpvaW4obWFwKHN0ciwgcGF0
Y2hfaWRzKSkpKQorCisKK2NsYXNzIENvbW1pdFF1ZXVlKEFic3RyYWN0UGF0Y2hRdWV1ZSwgU3Rl
cFNlcXVlbmNlRXJyb3JIYW5kbGVyKToKICAgICBuYW1lID0gImNvbW1pdC1xdWV1ZSIKICAgICBk
ZWYgX19pbml0X18oc2VsZik6Ci0gICAgICAgIEFic3RyYWN0UXVldWUuX19pbml0X18oc2VsZikK
KyAgICAgICAgQWJzdHJhY3RQYXRjaFF1ZXVlLl9faW5pdF9fKHNlbGYpCiAKLSAgICAjIEFic3Ry
YWN0UXVldWUgbWV0aG9kcworICAgICMgQWJzdHJhY3RQYXRjaFF1ZXVlIG1ldGhvZHMKIAogICAg
IGRlZiBiZWdpbl93b3JrX3F1ZXVlKHNlbGYpOgotICAgICAgICBBYnN0cmFjdFF1ZXVlLmJlZ2lu
X3dvcmtfcXVldWUoc2VsZikKKyAgICAgICAgQWJzdHJhY3RQYXRjaFF1ZXVlLmJlZ2luX3dvcmtf
cXVldWUoc2VsZikKICAgICAgICAgc2VsZi5jb21taXR0ZXJfdmFsaWRhdG9yID0gQ29tbWl0dGVy
VmFsaWRhdG9yKHNlbGYudG9vbC5idWdzKQogCiAgICAgZGVmIF92YWxpZGF0ZV9wYXRjaGVzX2lu
X2NvbW1pdF9xdWV1ZShzZWxmKToKQEAgLTIyNCw5ICsyMzMsOSBAQCBjbGFzcyBDb21taXRRdWV1
ZShBYnN0cmFjdFF1ZXVlLCBTdGVwU2VxdWVuY2VFcnJvckhhbmRsZXIpOgogICAgICAgICB2YWxp
ZGF0b3IucmVqZWN0X3BhdGNoX2Zyb21fY29tbWl0X3F1ZXVlKHN0YXRlWyJwYXRjaCJdLmlkKCks
IGNscy5fZXJyb3JfbWVzc2FnZV9mb3JfYnVnKHRvb2wsIHN0YXR1c19pZCwgc2NyaXB0X2Vycm9y
KSkKIAogCi1jbGFzcyBBYnN0cmFjdFJldmlld1F1ZXVlKEFic3RyYWN0UXVldWUsIFBlcnNpc3Rl
bnRQYXRjaENvbGxlY3Rpb25EZWxlZ2F0ZSwgU3RlcFNlcXVlbmNlRXJyb3JIYW5kbGVyKToKK2Ns
YXNzIEFic3RyYWN0UmV2aWV3UXVldWUoQWJzdHJhY3RQYXRjaFF1ZXVlLCBQZXJzaXN0ZW50UGF0
Y2hDb2xsZWN0aW9uRGVsZWdhdGUsIFN0ZXBTZXF1ZW5jZUVycm9ySGFuZGxlcik6CiAgICAgZGVm
IF9faW5pdF9fKHNlbGYsIG9wdGlvbnM9Tm9uZSk6Ci0gICAgICAgIEFic3RyYWN0UXVldWUuX19p
bml0X18oc2VsZiwgb3B0aW9ucykKKyAgICAgICAgQWJzdHJhY3RQYXRjaFF1ZXVlLl9faW5pdF9f
KHNlbGYsIG9wdGlvbnMpCiAKICAgICBkZWYgX3Jldmlld19wYXRjaChzZWxmLCBwYXRjaCk6CiAg
ICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IsICJzdWJjbGFzc2VzIG11c3QgaW1wbGVt
ZW50IgpAQCAtMjQ1LDEwICsyNTQsMTAgQEAgY2xhc3MgQWJzdHJhY3RSZXZpZXdRdWV1ZShBYnN0
cmFjdFF1ZXVlLCBQZXJzaXN0ZW50UGF0Y2hDb2xsZWN0aW9uRGVsZWdhdGUsIFN0ZXAKICAgICBk
ZWYgaXNfdGVybWluYWxfc3RhdHVzKHNlbGYsIHN0YXR1cyk6CiAgICAgICAgIHJldHVybiBzdGF0
dXMgPT0gIlBhc3MiIG9yIHN0YXR1cyA9PSAiRmFpbCIgb3Igc3RhdHVzLnN0YXJ0c3dpdGgoIkVy
cm9yOiIpCiAKLSAgICAjIEFic3RyYWN0UXVldWUgbWV0aG9kcworICAgICMgQWJzdHJhY3RQYXRj
aFF1ZXVlIG1ldGhvZHMKIAogICAgIGRlZiBiZWdpbl93b3JrX3F1ZXVlKHNlbGYpOgotICAgICAg
ICBBYnN0cmFjdFF1ZXVlLmJlZ2luX3dvcmtfcXVldWUoc2VsZikKKyAgICAgICAgQWJzdHJhY3RQ
YXRjaFF1ZXVlLmJlZ2luX3dvcmtfcXVldWUoc2VsZikKICAgICAgICAgc2VsZi5fcGF0Y2hlcyA9
IFBlcnNpc3RlbnRQYXRjaENvbGxlY3Rpb24oc2VsZikKIAogICAgIGRlZiBuZXh0X3dvcmtfaXRl
bShzZWxmKToKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbWFu
ZHMvcXVldWVzX3VuaXR0ZXN0LnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21t
YW5kcy9xdWV1ZXNfdW5pdHRlc3QucHkKaW5kZXggNjU3OTE3Ni4uMTA3NzE1MiAxMDA2NDQKLS0t
IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tYW5kcy9xdWV1ZXNfdW5pdHRlc3Qu
cHkKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tYW5kcy9xdWV1ZXNfdW5p
dHRlc3QucHkKQEAgLTM3LDcgKzM3LDcgQEAgZnJvbSB3ZWJraXRweS5tb2NrX2J1Z3ppbGxhdG9v
bCBpbXBvcnQgTW9ja0J1Z3ppbGxhVG9vbAogZnJvbSB3ZWJraXRweS5vdXRwdXRjYXB0dXJlIGlt
cG9ydCBPdXRwdXRDYXB0dXJlCiAKIAotY2xhc3MgVGVzdFF1ZXVlKEFic3RyYWN0UXVldWUpOgor
Y2xhc3MgVGVzdFF1ZXVlKEFic3RyYWN0UGF0Y2hRdWV1ZSk6CiAgICAgbmFtZSA9ICJ0ZXN0LXF1
ZXVlIgogCiAKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbWFu
ZHMvc2hlcmlmZmJvdC5weSBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbWFuZHMv
c2hlcmlmZmJvdC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zOGQwZjdl
Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tYW5k
cy9zaGVyaWZmYm90LnB5CkBAIC0wLDAgKzEsNzMgQEAKKyMgQ29weXJpZ2h0IChjKSAyMDA5LCBH
b29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zIGFyZQorIyBtZXQ6CisjIAorIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjICAgICAqIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyMgY29w
eXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lcgorIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlCisjIGRpc3RyaWJ1dGlvbi4KKyMgICAgICogTmVpdGhlciB0aGUg
bmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworIyBjb250cmlidXRvcnMg
bWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQor
IyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9u
LgorIyAKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERF
UlMgQU5EIENPTlRSSUJVVE9SUworIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyMgQSBQQVJU
SUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZ
UklHSFQKKyMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsCisjIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyMgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisjIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWQorIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisjIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCitp
bXBvcnQgb3MKKworZnJvbSB3ZWJraXRweS5jb21tYW5kcy5xdWV1ZXMgaW1wb3J0IEFic3RyYWN0
UXVldWUKK2Zyb20gd2Via2l0cHkuaXJjLmlyY3Byb3h5IGltcG9ydCBJUkNQcm94eQorZnJvbSB3
ZWJraXRweS53ZWJraXRfbG9nZ2luZyBpbXBvcnQgbG9nCisKKworY2xhc3MgU2hlcmlmZkJvdChB
YnN0cmFjdFF1ZXVlKToKKyAgICBuYW1lID0gInNoZXJpZmYtYm90IgorCisgICAgIyBBYnN0cmFj
dFF1ZXVlIG1ldGhvZHMKKworICAgIGRlZiBiZWdpbl93b3JrX3F1ZXVlKHNlbGYpOgorICAgICAg
ICBBYnN0cmFjdFF1ZXVlLmJlZ2luX3dvcmtfcXVldWUoc2VsZikKKyAgICAgICAgIyBXZSBtYWtl
IHN1cmUgdG8gaW5zdGFudGlhdGUgdGhlIElSQyBwcm94eSBlYXJseSBvbiBzbyB3ZSBkb24ndCBo
YXZlCisgICAgICAgICMgdG8gd2FpdCBmb3IgaXQgdG8gYm9vdCB1cCBsYXRlci4KKyAgICAgICAg
c2VsZi50b29sLmlyYygpCisKKyAgICBkZWYgd29ya19pdGVtX2xvZ19wYXRoKHNlbGYsIHN2bl9y
ZXZpc2lvbik6CisgICAgICAgIHJldHVybiBvcy5wYXRoLmpvaW4oIiVzLWxvZ3MiICUgc2VsZi5u
YW1lLCAiJXMubG9nIiAlIHN2bl9yZXZpc2lvbikKKworICAgIGRlZiBuZXh0X3dvcmtfaXRlbShz
ZWxmKToKKyAgICAgICAgIyBGSVhNRTogQ2FsbCBtZXRob2RzIHRoYXQgYW5hbHl6ZSB0aGUgYnVp
bGQgYm90cy4KKyAgICAgICAgcmV0dXJuIE5vbmUgIyBGSVhNRTogU2hvdWxkIGJlIGFuIFNWTiBy
ZXZpc2lvbiBudW1iZXIuCisKKyAgICBkZWYgc2hvdWxkX3Byb2NlZWRfd2l0aF93b3JrX2l0ZW0o
c2VsZiwgc3ZuX3JldmlzaW9uKToKKyAgICAgICAgIyBDdXJyZW50bHksIHdlIGRvbid0IGhhdmUg
YW55IHJlYXNvbnMgbm90IHRvIHByb2NlZWQgd2l0aCB3b3JrIGl0ZW1zLgorICAgICAgICByZXR1
cm4gVHJ1ZQorCisgICAgZGVmIHByb2Nlc3Nfd29ya19pdGVtKHNlbGYsIHN2bl9yZXZpc2lvbik6
CisgICAgICAgIG1lc3NhZ2UgPSAiciVzIGFwcGVhcnMgdG8gaGF2ZSBicm9rZW4gdGhlIGJ1aWxk
LiIgJSBzdm5fcmV2aXNpb24KKyAgICAgICAgc2VsZi50b29sLmlyYygpLnBvc3QobWVzc2FnZSkK
KyAgICAgICAgIyBGSVhNRTogV2hhdCBpZiBydW5fd2Via2l0X3BhdGNoIHRocm93cyBhbiBleGNl
cHRpb24/CisgICAgICAgIHNlbGYucnVuX3dlYmtpdF9wYXRjaChbCisgICAgICAgICAgICAiY3Jl
YXRlLXJvbGxvdXQiLAorICAgICAgICAgICAgIi0tZm9yY2UtY2xlYW4iLAorICAgICAgICAgICAg
Ii0tbm9uLWludGVyYWN0aXZlIiwKKyAgICAgICAgICAgICItLXBhcmVudC1jb21tYW5kPSVzIiAl
IHNlbGYubmFtZSwKKyAgICAgICAgICAgICMgRklYTUU6IFdlIGFsc28gbmVlZCB0byBDQyB0aGUg
cmV2aWV3ZXIsIGNvbW1pdHRlciwgYW5kIGNvbnRyaWJ1dG9yLgorICAgICAgICAgICAgIi0tY2M9
JXMiICUgIiwiLmpvaW4oc2VsZi53YXRjaGVycyksCisgICAgICAgICAgICBzdm5fcmV2aXNpb24K
KyAgICAgICAgXSkKKworICAgIGRlZiBoYW5kbGVfdW5leHBlY3RlZF9lcnJvcihzZWxmLCBzdm5f
cmV2aXNpb24sIG1lc3NhZ2UpOgorICAgICAgICBsb2cobWVzc2FnZSkKZGlmZiAtLWdpdCBhL1dl
YktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbWFuZHMvc2hlcmlmZmJvdF91bml0dGVzdC5w
eSBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbWFuZHMvc2hlcmlmZmJvdF91bml0
dGVzdC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xM2FmMzliCi0tLSAv
ZGV2L251bGwKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tYW5kcy9zaGVy
aWZmYm90X3VuaXR0ZXN0LnB5CkBAIC0wLDAgKzEsNDMgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDEw
IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMgYXJlCisjIG1ldDoKKyMKKyMgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjICAgICogUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorIyBjb3B5
cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyCisjIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUKKyMgZGlzdHJpYnV0aW9uLgorIyAgICAqIE5laXRoZXIgdGhlIG5h
bWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyMgY29udHJpYnV0b3JzIG1h
eSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyMg
dGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4K
KyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMg
QU5EIENPTlRSSUJVVE9SUworIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyMgQSBQQVJUSUNV
TEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklH
SFQKKyMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsCisjIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisjIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWQorIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisjIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCitpbXBv
cnQgb3MKKworZnJvbSB3ZWJraXRweS5jb21tYW5kcy5xdWV1ZXN0ZXN0IGltcG9ydCBRdWV1ZXNU
ZXN0Citmcm9tIHdlYmtpdHB5LmNvbW1hbmRzLnNoZXJpZmZib3QgaW1wb3J0IFNoZXJpZmZCb3QK
K2Zyb20gd2Via2l0cHkubW9ja19idWd6aWxsYXRvb2wgaW1wb3J0IE1vY2tCdWd6aWxsYVRvb2wK
KworY2xhc3MgU2hlcmlmZkJvdFRlc3QoUXVldWVzVGVzdCk6CisgICAgZGVmIHRlc3Rfc2hlcmlm
Zl9ib3Qoc2VsZik6CisgICAgICAgIGV4cGVjdGVkX3N0ZGVyciA9IHsKKyAgICAgICAgICAgICJi
ZWdpbl93b3JrX3F1ZXVlIjogIkNBVVRJT046IHNoZXJpZmYtYm90IHdpbGwgZGlzY2FyZCBhbGwg
bG9jYWwgY2hhbmdlcyBpbiBcIiVzXCJcblJ1bm5pbmcgV2ViS2l0IHNoZXJpZmYtYm90LlxuIiAl
IG9zLmdldGN3ZCgpLAorICAgICAgICAgICAgIm5leHRfd29ya19pdGVtIjogIiIsCisgICAgICAg
ICAgICAicHJvY2Vzc193b3JrX2l0ZW0iOiAiTU9DSzogaXJjLnBvc3Q6IHIyOTgzNyBhcHBlYXJz
IHRvIGhhdmUgYnJva2VuIHRoZSBidWlsZC5cbiIsCisgICAgICAgICAgICAiaGFuZGxlX3VuZXhw
ZWN0ZWRfZXJyb3IiOiAiTW9jayBlcnJvciBtZXNzYWdlXG4iCisgICAgICAgIH0KKyAgICAgICAg
c2VsZi5hc3NlcnRfcXVldWVfb3V0cHV0cyhTaGVyaWZmQm90KCksIHdvcmtfaXRlbT0yOTgzNywg
ZXhwZWN0ZWRfc3RkZXJyPWV4cGVjdGVkX3N0ZGVycikKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xz
L1NjcmlwdHMvd2Via2l0cHkvbW9ja19idWd6aWxsYXRvb2wucHkgYi9XZWJLaXRUb29scy9TY3Jp
cHRzL3dlYmtpdHB5L21vY2tfYnVnemlsbGF0b29sLnB5CmluZGV4IGQ2NWUxNjcuLjI0NzQyOTYg
MTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbW9ja19idWd6aWxsYXRv
b2wucHkKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9tb2NrX2J1Z3ppbGxhdG9v
bC5weQpAQCAtMzU0LDYgKzM1NCwxNSBAQCBjbGFzcyBNb2NrVXNlcihvYmplY3QpOgogICAgICAg
ICBwYXNzCiAKIAorY2xhc3MgTW9ja0lSQyhvYmplY3QpOgorCisgICAgZGVmIHBvc3Qoc2VsZiwg
bWVzc2FnZSk6CisgICAgICAgIGxvZygiTU9DSzogaXJjLnBvc3Q6ICVzIiAlIG1lc3NhZ2UpCisK
KyAgICBkZWYgZGlzY29ubmVjdChzZWxmKToKKyAgICAgICAgbG9nKCJNT0NLOiBpcmMuZGlzY29u
bmVjdCIpCisKKwogY2xhc3MgTW9ja1N0YXR1c1NlcnZlcihvYmplY3QpOgogCiAgICAgZGVmIF9f
aW5pdF9fKHNlbGYpOgpAQCAtMzcyLDYgKzM4MSw3IEBAIGNsYXNzIE1vY2tCdWd6aWxsYVRvb2wo
KToKICAgICAgICAgc2VsZi5idWdzID0gTW9ja0J1Z3ppbGxhKCkKICAgICAgICAgc2VsZi5idWls
ZGJvdCA9IE1vY2tCdWlsZEJvdCgpCiAgICAgICAgIHNlbGYuZXhlY3V0aXZlID0gTW9jaygpCisg
ICAgICAgIHNlbGYuX2lyYyA9IE1vY2tJUkMoKQogICAgICAgICBzZWxmLnVzZXIgPSBNb2NrVXNl
cigpCiAgICAgICAgIHNlbGYuX3NjbSA9IE1vY2tTQ00oKQogICAgICAgICBzZWxmLnN0YXR1c19z
ZXJ2ZXIgPSBNb2NrU3RhdHVzU2VydmVyKCkKQEAgLTM3OSw1ICszODksOCBAQCBjbGFzcyBNb2Nr
QnVnemlsbGFUb29sKCk6CiAgICAgZGVmIHNjbShzZWxmKToKICAgICAgICAgcmV0dXJuIHNlbGYu
X3NjbQogCisgICAgZGVmIGlyYyhzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYuX2lyYworCiAg
ICAgZGVmIHBhdGgoc2VsZik6CiAgICAgICAgIHJldHVybiAiZWNobyIKZGlmZiAtLWdpdCBhL1dl
YktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbXVsdGljb21tYW5kdG9vbC5weSBiL1dlYktpdFRv
b2xzL1NjcmlwdHMvd2Via2l0cHkvbXVsdGljb21tYW5kdG9vbC5weQppbmRleCAxMGNmNDI2Li5m
OWE2YjBlIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L211bHRpY29t
bWFuZHRvb2wucHkKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9tdWx0aWNvbW1h
bmR0b29sLnB5CkBAIC0yNjMsNiArMjYzLDkgQEAgY2xhc3MgTXVsdGlDb21tYW5kVG9vbChvYmpl
Y3QpOgogICAgIGRlZiBwYXRoKHNlbGYpOgogICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVy
cm9yLCAic3ViY2xhc3NlcyBtdXN0IGltcGxlbWVudCIKIAorICAgIGRlZiBmaW5hbGl6ZShzZWxm
KToKKyAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvciwgInN1YmNsYXNzZXMgbXVzdCBp
bXBsZW1lbnQiCisKICAgICBkZWYgc2hvdWxkX3Nob3dfaW5fbWFpbl9oZWxwKHNlbGYsIGNvbW1h
bmQpOgogICAgICAgICByZXR1cm4gY29tbWFuZC5zaG93X2luX21haW5faGVscAogCkBAIC0yOTYs
NCArMjk5LDYgQEAgY2xhc3MgTXVsdGlDb21tYW5kVG9vbChvYmplY3QpOgogICAgICAgICAgICAg
bG9nKGZhaWx1cmVfcmVhc29uKQogICAgICAgICAgICAgcmV0dXJuIDAgIyBGSVhNRTogU2hvdWxk
IHRoaXMgcmVhbGx5IGJlIDA/CiAKLSAgICAgICAgcmV0dXJuIGNvbW1hbmQuY2hlY2tfYXJndW1l
bnRzX2FuZF9leGVjdXRlKG9wdGlvbnMsIGFyZ3MsIHNlbGYpCisgICAgICAgIHJlc3VsdCA9IGNv
bW1hbmQuY2hlY2tfYXJndW1lbnRzX2FuZF9leGVjdXRlKG9wdGlvbnMsIGFyZ3MsIHNlbGYpCisg
ICAgICAgIHNlbGYuZmluYWxpemUoKQorICAgICAgICByZXR1cm4gcmVzdWx0CmRpZmYgLS1naXQg
YS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L211bHRpY29tbWFuZHRvb2xfdW5pdHRlc3Qu
cHkgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L211bHRpY29tbWFuZHRvb2xfdW5pdHRl
c3QucHkKaW5kZXggYWU3N2U3My4uY2U5ZDVlMCAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9tdWx0aWNvbW1hbmR0b29sX3VuaXR0ZXN0LnB5CisrKyBiL1dlYktpdFRv
b2xzL1NjcmlwdHMvd2Via2l0cHkvbXVsdGljb21tYW5kdG9vbF91bml0dGVzdC5weQpAQCAtNzIs
OSArNzIsMTIgQEAgY2xhc3MgVHJpdmlhbFRvb2woTXVsdGlDb21tYW5kVG9vbCk6CiAgICAgZGVm
IF9faW5pdF9fKHNlbGYsIGNvbW1hbmRzPU5vbmUpOgogICAgICAgICBNdWx0aUNvbW1hbmRUb29s
Ll9faW5pdF9fKHNlbGYsIG5hbWU9InRyaXZpYWwtdG9vbCIsIGNvbW1hbmRzPWNvbW1hbmRzKQog
Ci0gICAgZGVmIHBhdGgoKToKKyAgICBkZWYgcGF0aChzZWxmKToKICAgICAgICAgcmV0dXJuIF9f
ZmlsZV9fCiAKKyAgICBkZWYgZmluYWxpemUoc2VsZik6CisgICAgICAgIHBhc3MKKwogICAgIGRl
ZiBzaG91bGRfZXhlY3V0ZV9jb21tYW5kKHNlbGYsIGNvbW1hbmQpOgogICAgICAgICByZXR1cm4g
KFRydWUsIE5vbmUpCiAKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkv
cGF0Y2gvcGF0Y2hlci5weSBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvcGF0Y2gvcGF0
Y2hlci5weQppbmRleCA5NzQ5Y2QzLi5jZGJjZWNmIDEwMDc1NQotLS0gYS9XZWJLaXRUb29scy9T
Y3JpcHRzL3dlYmtpdHB5L3BhdGNoL3BhdGNoZXIucHkKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0
cy93ZWJraXRweS9wYXRjaC9wYXRjaGVyLnB5CkBAIC02MCw2ICs2MCw3IEBAIGNsYXNzIFdlYktp
dFBhdGNoKE11bHRpQ29tbWFuZFRvb2wpOgogICAgICAgICBzZWxmLmJ1Z3MgPSBCdWd6aWxsYSgp
CiAgICAgICAgIHNlbGYuYnVpbGRib3QgPSBCdWlsZEJvdCgpCiAgICAgICAgIHNlbGYuZXhlY3V0
aXZlID0gRXhlY3V0aXZlKCkKKyAgICAgICAgc2VsZi5faXJjID0gTm9uZQogICAgICAgICBzZWxm
LnVzZXIgPSBVc2VyKCkKICAgICAgICAgc2VsZi5fc2NtID0gTm9uZQogICAgICAgICBzZWxmLnN0
YXR1c19zZXJ2ZXIgPSBTdGF0dXNTZXJ2ZXIoKQpAQCAtODEsOSArODIsMjEgQEAgY2xhc3MgV2Vi
S2l0UGF0Y2goTXVsdGlDb21tYW5kVG9vbCk6CiAKICAgICAgICAgcmV0dXJuIHNlbGYuX3NjbQog
CisgICAgZGVmIGlyYyhzZWxmKToKKyAgICAgICAgIyBXZSBjb25zdHJ1Y3QgSVJDUHJveHkgbGF6
aWx5IGJlY2F1c2UgY29uc3RydWN0aW5nIHRoZSBvYmplY3QgY2F1c2VzCisgICAgICAgICMgdXMg
dG8gYWN0dWFsbHkgY29ubmVjdCB0byB0aGUgSVJDIHNlcnZlci4gIE1vc3QgY29tbWFuZHMgbmV2
ZXIgdG91Y2gKKyAgICAgICAgIyBJUkMsIHNvIHdlIGNhbiBhdm9pZCB0aGlzIG92ZXJoZWFkLgor
ICAgICAgICBpZiBub3Qgc2VsZi5faXJjOgorICAgICAgICAgICAgc2VsZi5faXJjID0gSVJDUHJv
eHkoKQorICAgICAgICByZXR1cm4gc2VsZi5faXJjCisKICAgICBkZWYgcGF0aChzZWxmKToKICAg
ICAgICAgcmV0dXJuIHNlbGYuX3BhdGgKIAorICAgIGRlZiBmaW5hbGl6ZShzZWxmKToKKyAgICAg
ICAgaWYgc2VsZi5faXJjOgorICAgICAgICAgICAgc2VsZi5faXJjLmRpc2Nvbm5lY3QoKQorCiAg
ICAgZGVmIHNob3VsZF9zaG93X2luX21haW5faGVscChzZWxmLCBjb21tYW5kKToKICAgICAgICAg
aWYgbm90IGNvbW1hbmQuc2hvd19pbl9tYWluX2hlbHA6CiAgICAgICAgICAgICByZXR1cm4gRmFs
c2UKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdW5pdHRlc3RzLnB5
IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS91bml0dGVzdHMucHkKaW5kZXggODM5NGE3
Yi4uOTBlMWYzMyAxMDA3NTUKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS91bml0
dGVzdHMucHkKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS91bml0dGVzdHMucHkK
QEAgLTQwLDYgKzQwLDcgQEAgZnJvbSB3ZWJraXRweS5jb21tYW5kcy5vcGVuYnVnc191bml0dGVz
dCBpbXBvcnQgT3BlbkJ1Z3NUZXN0CiBmcm9tIHdlYmtpdHB5LmNvbW1hbmRzLnVwbG9hZF91bml0
dGVzdCBpbXBvcnQgKgogZnJvbSB3ZWJraXRweS5jb21tYW5kcy5xdWVyaWVzX3VuaXR0ZXN0IGlt
cG9ydCAqCiBmcm9tIHdlYmtpdHB5LmNvbW1hbmRzLnF1ZXVlc191bml0dGVzdCBpbXBvcnQgKgor
ZnJvbSB3ZWJraXRweS5jb21tYW5kcy5zaGVyaWZmYm90X3VuaXR0ZXN0IGltcG9ydCAqCiBmcm9t
IHdlYmtpdHB5LmNvbW1pdHRlcnNfdW5pdHRlc3QgaW1wb3J0ICoKIGZyb20gd2Via2l0cHkuY3Jl
ZGVudGlhbHNfdW5pdHRlc3QgaW1wb3J0ICoKIGZyb20gd2Via2l0cHkuZGlmZl9wYXJzZXJfdW5p
dHRlc3QgaW1wb3J0ICoK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>50982</attachid>
            <date>2010-03-17 17:49:39 -0700</date>
            <delta_ts>2010-03-18 12:49:41 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-36253-20100317174937.patch</filename>
            <type>text/plain</type>
            <size>18324</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCAzNzA4ODQ2Li42OTEyNzY2IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9DaGFuZ2VM
b2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDEgQEAKKzIwMTAtMDMt
MTcgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBGaXJzdCBjdXQgYXQgU2hlcmlmZkJvdAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzYyNTMKKworICAg
ICAgICBUaGlzIHBhdGNoIGNvbnRhaW5zIGEgZmlyc3QgYXR0ZW1wdCBhdCB3cml0aW5nIGEgc2hl
cmlmZiBib3QuCisgICAgICAgIEN1cnJlbnRseSwgd2UncmUgbWlzc2luZyB0aGUgbG9naWMgdGhh
dCBhY3R1YWxseSBmaW5kcyB0aGUgU1ZOIHJldmlzaW9uCisgICAgICAgIG51bWJlcnMgdG8gY29t
cGxhaW4gYWJvdXQsIGJ1dCBvbmNlIHdlIGhhdmUgdGhhdCwgd2UnbGwgaGF2ZSB0aGUgcmVzdAor
ICAgICAgICBvZiB0aGUgaW5mcnVzdHJ1Y3R1cmUgdG8gcGluZyBJUkMgYW5kIHRvIGZpbGUgYnVn
cy4KKworICAgICAgICBUaGVyZSdzIGEgbG90IHRvIGZpbGwgaW4gZm9yIHRoZSBTaGVyaWZmQm90
LCBidXQgdGhpcyBwYXRjaCBnaXZlIHVzIHRoZQorICAgICAgICBmcmFtZXdvcmsgaW4gd2hpY2gg
dG8gZG8gaXQuCisKKyAgICAgICAgVGhpcyBwYXRjaCByZXF1aXJlZCBhIGJpdCBvZiByZWZhY3Rv
cmluZyBvZiBBYnN0cmFjdFF1ZXVlIGJlY2F1c2UKKyAgICAgICAgU2hlcmlmZkJvdCBpcyB0aGUg
Zmlyc3QgYm90IHRoYXQgZG9lc24ndCBwcm9jZXNzIHBhdGNoZXMgKGl0IHByb2Nlc3NlcworICAg
ICAgICBTVk4gcmV2aXNpb25zKS4gIEFjY29yZGluZ2x5LCBJJ3ZlIGZhY3RvcmVkIG91dCBBYnN0
cmFjdFBhdGNoUXVldWUgdG8KKyAgICAgICAgaG9sZCB0aGUgcGFydHMgb2YgQWJzdHJhY3RRdWV1
ZSB0aGF0IGFyZSBzcGVjaWZpYyB0byBkZWFsaW5nIHdpdGgKKyAgICAgICAgcGF0Y2hlcy4gIFNv
bWUgb2YgdGhlIGNob2ljZXMgaGVyZSBtaWdodCBub3QgYmUgb2J2aW91cyB5ZXQsIGJ1dCB3ZSBj
YW4KKyAgICAgICAgdHdlYWsgdGhlbSBhcyBvdXIgbmVlZHMgYmVjb21lIGNsZWFyZXIuCisKKyAg
ICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2NvbW1hbmRzL3F1ZXVlcy5weToKKyAgICAgICAgKiBT
Y3JpcHRzL3dlYmtpdHB5L2NvbW1hbmRzL3F1ZXVlc191bml0dGVzdC5weToKKyAgICAgICAgKiBT
Y3JpcHRzL3dlYmtpdHB5L2NvbW1hbmRzL3NoZXJpZmZib3QucHk6IEFkZGVkLgorICAgICAgICAq
IFNjcmlwdHMvd2Via2l0cHkvY29tbWFuZHMvc2hlcmlmZmJvdF91bml0dGVzdC5weTogQWRkZWQu
CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9tb2NrX2J1Z3ppbGxhdG9vbC5weToKKyAgICAg
ICAgICAgIEFkZGVkIGEgTW9ja0lSQyBvYmplY3QgdG8gdGhlIG1vY2sgdG9vbC4KKyAgICAgICAg
KiBTY3JpcHRzL3dlYmtpdHB5L211bHRpY29tbWFuZHRvb2wucHk6CisgICAgICAgICAgICBBZGRl
ZCBhIGZpbmFsaXplIG1ldGhvZCBzbyB0aGUgdG9vbCBjYW4gZGlzY29ubmVjdCBmcm9tIElSQwor
ICAgICAgICAgICAgY2xlYW5seSBpbnN0ZWFkIG9mIGp1c3QgZHJvcGluZyB0aGUgc29ja2V0Lgor
ICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbXVsdGljb21tYW5kdG9vbF91bml0dGVzdC5weToK
KyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3BhdGNoL3BhdGNoZXIucHk6CisgICAgICAgICAg
ICBBZGRlZCBzdXBwb3J0IGZvciB0YWxraW5nIHRvIElSQy4KKyAgICAgICAgKiBTY3JpcHRzL3dl
YmtpdHB5L3VuaXR0ZXN0cy5weToKKyAgICAgICAgICAgIFdlIHNob3VsZCBhZGQgYSBjb21tYW5k
cy91bml0dGVzdHMucHkgZmlsZSBhdCBzb21lIHBvaW50IHRvIG1ha2UKKyAgICAgICAgICAgIHRo
ZSBjb21tYW5kcyBtb2R1bGUgbW9yZSBzZWxmLWNvbnRhaW5lZC4KKwogMjAxMC0wMy0xNyAgRGFu
aWVsIEJhdGVzICA8ZGJhdGVzQHJpbS5jb20+CiAKICAgICAgICAgUnViYmVyLXN0YW1wZWQgYnkg
RGF2aWQgTGV2aW4uCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2Nv
bW1hbmRzL3F1ZXVlcy5weSBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbWFuZHMv
cXVldWVzLnB5CmluZGV4IDBlYzdhYjMuLmY0NTQ4MDQgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xz
L1NjcmlwdHMvd2Via2l0cHkvY29tbWFuZHMvcXVldWVzLnB5CisrKyBiL1dlYktpdFRvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvY29tbWFuZHMvcXVldWVzLnB5CkBAIC02OSwyNCArNjksMjAgQEAgY2xh
c3MgQWJzdHJhY3RRdWV1ZShDb21tYW5kLCBRdWV1ZUVuZ2luZURlbGVnYXRlKToKICAgICAgICAg
ICAgIHRyYWNlYmFjay5wcmludF9leGMoKQogICAgICAgICAgICAgbG9nKCJGYWlsZWQgdG8gQ0Mg
d2F0Y2hlcnMuIikKIAotICAgIGRlZiBfdXBkYXRlX3N0YXR1cyhzZWxmLCBtZXNzYWdlLCBwYXRj
aD1Ob25lLCByZXN1bHRzX2ZpbGU9Tm9uZSk6Ci0gICAgICAgIHNlbGYudG9vbC5zdGF0dXNfc2Vy
dmVyLnVwZGF0ZV9zdGF0dXMoc2VsZi5uYW1lLCBtZXNzYWdlLCBwYXRjaCwgcmVzdWx0c19maWxl
KQotCi0gICAgZGVmIF9kaWRfcGFzcyhzZWxmLCBwYXRjaCk6Ci0gICAgICAgIHNlbGYuX3VwZGF0
ZV9zdGF0dXMoc2VsZi5fcGFzc19zdGF0dXMsIHBhdGNoKQotCi0gICAgZGVmIF9kaWRfZmFpbChz
ZWxmLCBwYXRjaCk6Ci0gICAgICAgIHNlbGYuX3VwZGF0ZV9zdGF0dXMoc2VsZi5fZmFpbF9zdGF0
dXMsIHBhdGNoKQorICAgIGRlZiBydW5fd2Via2l0X3BhdGNoKHNlbGYsIGFyZ3MpOgorICAgICAg
ICB3ZWJraXRfcGF0Y2hfYXJncyA9IFtzZWxmLnRvb2wucGF0aCgpXQorICAgICAgICAjIEZJWE1F
OiBUaGlzIGlzIGEgaGFjaywgd2Ugc2hvdWxkIGhhdmUgYSBtb3JlIGdlbmVyYWwgd2F5IHRvIHBh
c3MgZ2xvYmFsIG9wdGlvbnMuCisgICAgICAgIHdlYmtpdF9wYXRjaF9hcmdzICs9IFsiLS1zdGF0
dXMtaG9zdD0lcyIgJSBzZWxmLnRvb2wuc3RhdHVzX3NlcnZlci5ob3N0XQorICAgICAgICB3ZWJr
aXRfcGF0Y2hfYXJncyArPSBtYXAoc3RyLCBhcmdzKQorICAgICAgICBzZWxmLnRvb2wuZXhlY3V0
aXZlLnJ1bl9hbmRfdGhyb3dfaWZfZmFpbCh3ZWJraXRfcGF0Y2hfYXJncykKIAotICAgIGRlZiBf
ZGlkX2Vycm9yKHNlbGYsIHBhdGNoLCByZWFzb24pOgotICAgICAgICBtZXNzYWdlID0gIiVzOiAl
cyIgJSAoc2VsZi5fZXJyb3Jfc3RhdHVzLCByZWFzb24pCi0gICAgICAgIHNlbGYuX3VwZGF0ZV9z
dGF0dXMobWVzc2FnZSwgcGF0Y2gpCisgICAgIyBRdWV1ZUVuZ2luZURlbGVnYXRlIG1ldGhvZHMK
IAogICAgIGRlZiBxdWV1ZV9sb2dfcGF0aChzZWxmKToKICAgICAgICAgcmV0dXJuICIlcy5sb2ci
ICUgc2VsZi5uYW1lCiAKLSAgICBkZWYgd29ya19pdGVtX2xvZ19wYXRoKHNlbGYsIHBhdGNoKToK
LSAgICAgICAgcmV0dXJuIG9zLnBhdGguam9pbigiJXMtbG9ncyIgJSBzZWxmLm5hbWUsICIlcy5s
b2ciICUgcGF0Y2guYnVnX2lkKCkpCisgICAgZGVmIHdvcmtfaXRlbV9sb2dfcGF0aChzZWxmLCB3
b3JrX2l0ZW0pOgorICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yLCAic3ViY2xhc3Nl
cyBtdXN0IGltcGxlbWVudCIKIAogICAgIGRlZiBiZWdpbl93b3JrX3F1ZXVlKHNlbGYpOgogICAg
ICAgICBsb2coIkNBVVRJT046ICVzIHdpbGwgZGlzY2FyZCBhbGwgbG9jYWwgY2hhbmdlcyBpbiBc
IiVzXCIiICUgKHNlbGYubmFtZSwgc2VsZi50b29sLnNjbSgpLmNoZWNrb3V0X3Jvb3QpKQpAQCAt
MTEyLDE1ICsxMDgsNyBAQCBjbGFzcyBBYnN0cmFjdFF1ZXVlKENvbW1hbmQsIFF1ZXVlRW5naW5l
RGVsZWdhdGUpOgogICAgIGRlZiBoYW5kbGVfdW5leHBlY3RlZF9lcnJvcihzZWxmLCB3b3JrX2l0
ZW0sIG1lc3NhZ2UpOgogICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yLCAic3ViY2xh
c3NlcyBtdXN0IGltcGxlbWVudCIKIAotICAgIGRlZiBydW5fd2Via2l0X3BhdGNoKHNlbGYsIGFy
Z3MpOgotICAgICAgICB3ZWJraXRfcGF0Y2hfYXJncyA9IFtzZWxmLnRvb2wucGF0aCgpXQotICAg
ICAgICAjIEZJWE1FOiBUaGlzIGlzIGEgaGFjaywgd2Ugc2hvdWxkIGhhdmUgYSBtb3JlIGdlbmVy
YWwgd2F5IHRvIHBhc3MgZ2xvYmFsIG9wdGlvbnMuCi0gICAgICAgIHdlYmtpdF9wYXRjaF9hcmdz
ICs9IFsiLS1zdGF0dXMtaG9zdD0lcyIgJSBzZWxmLnRvb2wuc3RhdHVzX3NlcnZlci5ob3N0XQot
ICAgICAgICB3ZWJraXRfcGF0Y2hfYXJncyArPSBtYXAoc3RyLCBhcmdzKQotICAgICAgICBzZWxm
LnRvb2wuZXhlY3V0aXZlLnJ1bl9hbmRfdGhyb3dfaWZfZmFpbCh3ZWJraXRfcGF0Y2hfYXJncykK
LQotICAgIGRlZiBsb2dfcHJvZ3Jlc3Moc2VsZiwgcGF0Y2hfaWRzKToKLSAgICAgICAgbG9nKCIl
cyBpbiAlcyBbJXNdIiAlIChwbHVyYWxpemUoInBhdGNoIiwgbGVuKHBhdGNoX2lkcykpLCBzZWxm
Lm5hbWUsICIsICIuam9pbihtYXAoc3RyLCBwYXRjaF9pZHMpKSkpCisgICAgIyBDb21tYW5kIG1l
dGhvZHMKIAogICAgIGRlZiBleGVjdXRlKHNlbGYsIG9wdGlvbnMsIGFyZ3MsIHRvb2wsIGVuZ2lu
ZT1RdWV1ZUVuZ2luZSk6CiAgICAgICAgIHNlbGYub3B0aW9ucyA9IG9wdGlvbnMKQEAgLTEzNiwx
NSArMTI0LDM2IEBAIGNsYXNzIEFic3RyYWN0UXVldWUoQ29tbWFuZCwgUXVldWVFbmdpbmVEZWxl
Z2F0ZSk6CiAgICAgICAgIHJldHVybiB0b29sLnN0YXR1c19zZXJ2ZXIudXBkYXRlX3N0YXR1cyhj
bHMubmFtZSwgbWVzc2FnZSwgc3RhdGVbInBhdGNoIl0sIFN0cmluZ0lPKG91dHB1dCkpCiAKIAot
Y2xhc3MgQ29tbWl0UXVldWUoQWJzdHJhY3RRdWV1ZSwgU3RlcFNlcXVlbmNlRXJyb3JIYW5kbGVy
KToKK2NsYXNzIEFic3RyYWN0UGF0Y2hRdWV1ZShBYnN0cmFjdFF1ZXVlKToKKyAgICBkZWYgX3Vw
ZGF0ZV9zdGF0dXMoc2VsZiwgbWVzc2FnZSwgcGF0Y2g9Tm9uZSwgcmVzdWx0c19maWxlPU5vbmUp
OgorICAgICAgICBzZWxmLnRvb2wuc3RhdHVzX3NlcnZlci51cGRhdGVfc3RhdHVzKHNlbGYubmFt
ZSwgbWVzc2FnZSwgcGF0Y2gsIHJlc3VsdHNfZmlsZSkKKworICAgIGRlZiBfZGlkX3Bhc3Moc2Vs
ZiwgcGF0Y2gpOgorICAgICAgICBzZWxmLl91cGRhdGVfc3RhdHVzKHNlbGYuX3Bhc3Nfc3RhdHVz
LCBwYXRjaCkKKworICAgIGRlZiBfZGlkX2ZhaWwoc2VsZiwgcGF0Y2gpOgorICAgICAgICBzZWxm
Ll91cGRhdGVfc3RhdHVzKHNlbGYuX2ZhaWxfc3RhdHVzLCBwYXRjaCkKKworICAgIGRlZiBfZGlk
X2Vycm9yKHNlbGYsIHBhdGNoLCByZWFzb24pOgorICAgICAgICBtZXNzYWdlID0gIiVzOiAlcyIg
JSAoc2VsZi5fZXJyb3Jfc3RhdHVzLCByZWFzb24pCisgICAgICAgIHNlbGYuX3VwZGF0ZV9zdGF0
dXMobWVzc2FnZSwgcGF0Y2gpCisKKyAgICBkZWYgd29ya19pdGVtX2xvZ19wYXRoKHNlbGYsIHBh
dGNoKToKKyAgICAgICAgcmV0dXJuIG9zLnBhdGguam9pbigiJXMtbG9ncyIgJSBzZWxmLm5hbWUs
ICIlcy5sb2ciICUgcGF0Y2guYnVnX2lkKCkpCisKKyAgICBkZWYgbG9nX3Byb2dyZXNzKHNlbGYs
IHBhdGNoX2lkcyk6CisgICAgICAgIGxvZygiJXMgaW4gJXMgWyVzXSIgJSAocGx1cmFsaXplKCJw
YXRjaCIsIGxlbihwYXRjaF9pZHMpKSwgc2VsZi5uYW1lLCAiLCAiLmpvaW4obWFwKHN0ciwgcGF0
Y2hfaWRzKSkpKQorCisKK2NsYXNzIENvbW1pdFF1ZXVlKEFic3RyYWN0UGF0Y2hRdWV1ZSwgU3Rl
cFNlcXVlbmNlRXJyb3JIYW5kbGVyKToKICAgICBuYW1lID0gImNvbW1pdC1xdWV1ZSIKICAgICBk
ZWYgX19pbml0X18oc2VsZik6Ci0gICAgICAgIEFic3RyYWN0UXVldWUuX19pbml0X18oc2VsZikK
KyAgICAgICAgQWJzdHJhY3RQYXRjaFF1ZXVlLl9faW5pdF9fKHNlbGYpCiAKLSAgICAjIEFic3Ry
YWN0UXVldWUgbWV0aG9kcworICAgICMgQWJzdHJhY3RQYXRjaFF1ZXVlIG1ldGhvZHMKIAogICAg
IGRlZiBiZWdpbl93b3JrX3F1ZXVlKHNlbGYpOgotICAgICAgICBBYnN0cmFjdFF1ZXVlLmJlZ2lu
X3dvcmtfcXVldWUoc2VsZikKKyAgICAgICAgQWJzdHJhY3RQYXRjaFF1ZXVlLmJlZ2luX3dvcmtf
cXVldWUoc2VsZikKICAgICAgICAgc2VsZi5jb21taXR0ZXJfdmFsaWRhdG9yID0gQ29tbWl0dGVy
VmFsaWRhdG9yKHNlbGYudG9vbC5idWdzKQogCiAgICAgZGVmIF92YWxpZGF0ZV9wYXRjaGVzX2lu
X2NvbW1pdF9xdWV1ZShzZWxmKToKQEAgLTIyNCw5ICsyMzMsOSBAQCBjbGFzcyBDb21taXRRdWV1
ZShBYnN0cmFjdFF1ZXVlLCBTdGVwU2VxdWVuY2VFcnJvckhhbmRsZXIpOgogICAgICAgICB2YWxp
ZGF0b3IucmVqZWN0X3BhdGNoX2Zyb21fY29tbWl0X3F1ZXVlKHN0YXRlWyJwYXRjaCJdLmlkKCks
IGNscy5fZXJyb3JfbWVzc2FnZV9mb3JfYnVnKHRvb2wsIHN0YXR1c19pZCwgc2NyaXB0X2Vycm9y
KSkKIAogCi1jbGFzcyBBYnN0cmFjdFJldmlld1F1ZXVlKEFic3RyYWN0UXVldWUsIFBlcnNpc3Rl
bnRQYXRjaENvbGxlY3Rpb25EZWxlZ2F0ZSwgU3RlcFNlcXVlbmNlRXJyb3JIYW5kbGVyKToKK2Ns
YXNzIEFic3RyYWN0UmV2aWV3UXVldWUoQWJzdHJhY3RQYXRjaFF1ZXVlLCBQZXJzaXN0ZW50UGF0
Y2hDb2xsZWN0aW9uRGVsZWdhdGUsIFN0ZXBTZXF1ZW5jZUVycm9ySGFuZGxlcik6CiAgICAgZGVm
IF9faW5pdF9fKHNlbGYsIG9wdGlvbnM9Tm9uZSk6Ci0gICAgICAgIEFic3RyYWN0UXVldWUuX19p
bml0X18oc2VsZiwgb3B0aW9ucykKKyAgICAgICAgQWJzdHJhY3RQYXRjaFF1ZXVlLl9faW5pdF9f
KHNlbGYsIG9wdGlvbnMpCiAKICAgICBkZWYgX3Jldmlld19wYXRjaChzZWxmLCBwYXRjaCk6CiAg
ICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IsICJzdWJjbGFzc2VzIG11c3QgaW1wbGVt
ZW50IgpAQCAtMjQ1LDEwICsyNTQsMTAgQEAgY2xhc3MgQWJzdHJhY3RSZXZpZXdRdWV1ZShBYnN0
cmFjdFF1ZXVlLCBQZXJzaXN0ZW50UGF0Y2hDb2xsZWN0aW9uRGVsZWdhdGUsIFN0ZXAKICAgICBk
ZWYgaXNfdGVybWluYWxfc3RhdHVzKHNlbGYsIHN0YXR1cyk6CiAgICAgICAgIHJldHVybiBzdGF0
dXMgPT0gIlBhc3MiIG9yIHN0YXR1cyA9PSAiRmFpbCIgb3Igc3RhdHVzLnN0YXJ0c3dpdGgoIkVy
cm9yOiIpCiAKLSAgICAjIEFic3RyYWN0UXVldWUgbWV0aG9kcworICAgICMgQWJzdHJhY3RQYXRj
aFF1ZXVlIG1ldGhvZHMKIAogICAgIGRlZiBiZWdpbl93b3JrX3F1ZXVlKHNlbGYpOgotICAgICAg
ICBBYnN0cmFjdFF1ZXVlLmJlZ2luX3dvcmtfcXVldWUoc2VsZikKKyAgICAgICAgQWJzdHJhY3RQ
YXRjaFF1ZXVlLmJlZ2luX3dvcmtfcXVldWUoc2VsZikKICAgICAgICAgc2VsZi5fcGF0Y2hlcyA9
IFBlcnNpc3RlbnRQYXRjaENvbGxlY3Rpb24oc2VsZikKIAogICAgIGRlZiBuZXh0X3dvcmtfaXRl
bShzZWxmKToKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbWFu
ZHMvcXVldWVzX3VuaXR0ZXN0LnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21t
YW5kcy9xdWV1ZXNfdW5pdHRlc3QucHkKaW5kZXggNjU3OTE3Ni4uMTA3NzE1MiAxMDA2NDQKLS0t
IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tYW5kcy9xdWV1ZXNfdW5pdHRlc3Qu
cHkKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tYW5kcy9xdWV1ZXNfdW5p
dHRlc3QucHkKQEAgLTM3LDcgKzM3LDcgQEAgZnJvbSB3ZWJraXRweS5tb2NrX2J1Z3ppbGxhdG9v
bCBpbXBvcnQgTW9ja0J1Z3ppbGxhVG9vbAogZnJvbSB3ZWJraXRweS5vdXRwdXRjYXB0dXJlIGlt
cG9ydCBPdXRwdXRDYXB0dXJlCiAKIAotY2xhc3MgVGVzdFF1ZXVlKEFic3RyYWN0UXVldWUpOgor
Y2xhc3MgVGVzdFF1ZXVlKEFic3RyYWN0UGF0Y2hRdWV1ZSk6CiAgICAgbmFtZSA9ICJ0ZXN0LXF1
ZXVlIgogCiAKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbWFu
ZHMvc2hlcmlmZmJvdC5weSBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbWFuZHMv
c2hlcmlmZmJvdC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44OWE5NmRl
Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tYW5k
cy9zaGVyaWZmYm90LnB5CkBAIC0wLDAgKzEsNzEgQEAKKyMgQ29weXJpZ2h0IChjKSAyMDA5LCBH
b29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zIGFyZQorIyBtZXQ6CisjIAorIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjICAgICAqIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyMgY29w
eXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lcgorIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlCisjIGRpc3RyaWJ1dGlvbi4KKyMgICAgICogTmVpdGhlciB0aGUg
bmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworIyBjb250cmlidXRvcnMg
bWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQor
IyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9u
LgorIyAKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERF
UlMgQU5EIENPTlRSSUJVVE9SUworIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyMgQSBQQVJU
SUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZ
UklHSFQKKyMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsCisjIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyMgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisjIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWQorIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisjIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCitp
bXBvcnQgb3MKKworZnJvbSB3ZWJraXRweS5jb21tYW5kcy5xdWV1ZXMgaW1wb3J0IEFic3RyYWN0
UXVldWUKK2Zyb20gd2Via2l0cHkuaXJjLmlyY3Byb3h5IGltcG9ydCBJUkNQcm94eQorZnJvbSB3
ZWJraXRweS53ZWJraXRfbG9nZ2luZyBpbXBvcnQgbG9nCisKKworY2xhc3MgU2hlcmlmZkJvdChB
YnN0cmFjdFF1ZXVlKToKKyAgICBuYW1lID0gInNoZXJpZmYtYm90IgorCisgICAgIyBBYnN0cmFj
dFF1ZXVlIG1ldGhvZHMKKworICAgIGRlZiBiZWdpbl93b3JrX3F1ZXVlKHNlbGYpOgorICAgICAg
ICBBYnN0cmFjdFF1ZXVlLmJlZ2luX3dvcmtfcXVldWUoc2VsZikKKyAgICAgICAgc2VsZi50b29s
LmVuc3VyZV9pcmNfY29ubmVjdGVkKCkKKworICAgIGRlZiB3b3JrX2l0ZW1fbG9nX3BhdGgoc2Vs
Ziwgc3ZuX3JldmlzaW9uKToKKyAgICAgICAgcmV0dXJuIG9zLnBhdGguam9pbigiJXMtbG9ncyIg
JSBzZWxmLm5hbWUsICIlcy5sb2ciICUgc3ZuX3JldmlzaW9uKQorCisgICAgZGVmIG5leHRfd29y
a19pdGVtKHNlbGYpOgorICAgICAgICAjIEZJWE1FOiBDYWxsIG1ldGhvZHMgdGhhdCBhbmFseXpl
IHRoZSBidWlsZCBib3RzLgorICAgICAgICByZXR1cm4gTm9uZSAjIEZJWE1FOiBTaG91bGQgYmUg
YW4gU1ZOIHJldmlzaW9uIG51bWJlci4KKworICAgIGRlZiBzaG91bGRfcHJvY2VlZF93aXRoX3dv
cmtfaXRlbShzZWxmLCBzdm5fcmV2aXNpb24pOgorICAgICAgICAjIEN1cnJlbnRseSwgd2UgZG9u
J3QgaGF2ZSBhbnkgcmVhc29ucyBub3QgdG8gcHJvY2VlZCB3aXRoIHdvcmsgaXRlbXMuCisgICAg
ICAgIHJldHVybiBUcnVlCisKKyAgICBkZWYgcHJvY2Vzc193b3JrX2l0ZW0oc2VsZiwgc3ZuX3Jl
dmlzaW9uKToKKyAgICAgICAgbWVzc2FnZSA9ICJyJXMgYXBwZWFycyB0byBoYXZlIGJyb2tlbiB0
aGUgYnVpbGQuIiAlIHN2bl9yZXZpc2lvbgorICAgICAgICBzZWxmLnRvb2wuaXJjKCkucG9zdCht
ZXNzYWdlKQorICAgICAgICAjIEZJWE1FOiBXaGF0IGlmIHJ1bl93ZWJraXRfcGF0Y2ggdGhyb3dz
IGFuIGV4Y2VwdGlvbj8KKyAgICAgICAgc2VsZi5ydW5fd2Via2l0X3BhdGNoKFsKKyAgICAgICAg
ICAgICJjcmVhdGUtcm9sbG91dCIsCisgICAgICAgICAgICAiLS1mb3JjZS1jbGVhbiIsCisgICAg
ICAgICAgICAiLS1ub24taW50ZXJhY3RpdmUiLAorICAgICAgICAgICAgIi0tcGFyZW50LWNvbW1h
bmQ9JXMiICUgc2VsZi5uYW1lLAorICAgICAgICAgICAgIyBGSVhNRTogV2UgYWxzbyBuZWVkIHRv
IENDIHRoZSByZXZpZXdlciwgY29tbWl0dGVyLCBhbmQgY29udHJpYnV0b3IuCisgICAgICAgICAg
ICAiLS1jYz0lcyIgJSAiLCIuam9pbihzZWxmLndhdGNoZXJzKSwKKyAgICAgICAgICAgIHN2bl9y
ZXZpc2lvbgorICAgICAgICBdKQorCisgICAgZGVmIGhhbmRsZV91bmV4cGVjdGVkX2Vycm9yKHNl
bGYsIHN2bl9yZXZpc2lvbiwgbWVzc2FnZSk6CisgICAgICAgIGxvZyhtZXNzYWdlKQpkaWZmIC0t
Z2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tYW5kcy9zaGVyaWZmYm90X3Vu
aXR0ZXN0LnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tYW5kcy9zaGVyaWZm
Ym90X3VuaXR0ZXN0LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjEzYWYz
OWIKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1h
bmRzL3NoZXJpZmZib3RfdW5pdHRlc3QucHkKQEAgLTAsMCArMSw0MyBAQAorIyBDb3B5cmlnaHQg
KEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucyBhcmUKKyMgbWV0OgorIworIyAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgICAg
KiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
CisjIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIKKyMgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorIyBkaXN0cmlidXRpb24uCisjICAgICogTmVpdGhl
ciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworIyBjb250cmli
dXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQg
ZnJvbQorIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJt
aXNzaW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQg
SE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisjICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisjIExJTUlURUQgVE8sIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorIyBB
IFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhF
IENPUFlSSUdIVAorIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorIyBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyMg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZCisjIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisjIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisKK2ltcG9ydCBvcworCitmcm9tIHdlYmtpdHB5LmNvbW1hbmRzLnF1ZXVlc3Rlc3QgaW1wb3J0
IFF1ZXVlc1Rlc3QKK2Zyb20gd2Via2l0cHkuY29tbWFuZHMuc2hlcmlmZmJvdCBpbXBvcnQgU2hl
cmlmZkJvdAorZnJvbSB3ZWJraXRweS5tb2NrX2J1Z3ppbGxhdG9vbCBpbXBvcnQgTW9ja0J1Z3pp
bGxhVG9vbAorCitjbGFzcyBTaGVyaWZmQm90VGVzdChRdWV1ZXNUZXN0KToKKyAgICBkZWYgdGVz
dF9zaGVyaWZmX2JvdChzZWxmKToKKyAgICAgICAgZXhwZWN0ZWRfc3RkZXJyID0geworICAgICAg
ICAgICAgImJlZ2luX3dvcmtfcXVldWUiOiAiQ0FVVElPTjogc2hlcmlmZi1ib3Qgd2lsbCBkaXNj
YXJkIGFsbCBsb2NhbCBjaGFuZ2VzIGluIFwiJXNcIlxuUnVubmluZyBXZWJLaXQgc2hlcmlmZi1i
b3QuXG4iICUgb3MuZ2V0Y3dkKCksCisgICAgICAgICAgICAibmV4dF93b3JrX2l0ZW0iOiAiIiwK
KyAgICAgICAgICAgICJwcm9jZXNzX3dvcmtfaXRlbSI6ICJNT0NLOiBpcmMucG9zdDogcjI5ODM3
IGFwcGVhcnMgdG8gaGF2ZSBicm9rZW4gdGhlIGJ1aWxkLlxuIiwKKyAgICAgICAgICAgICJoYW5k
bGVfdW5leHBlY3RlZF9lcnJvciI6ICJNb2NrIGVycm9yIG1lc3NhZ2VcbiIKKyAgICAgICAgfQor
ICAgICAgICBzZWxmLmFzc2VydF9xdWV1ZV9vdXRwdXRzKFNoZXJpZmZCb3QoKSwgd29ya19pdGVt
PTI5ODM3LCBleHBlY3RlZF9zdGRlcnI9ZXhwZWN0ZWRfc3RkZXJyKQpkaWZmIC0tZ2l0IGEvV2Vi
S2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9tb2NrX2J1Z3ppbGxhdG9vbC5weSBiL1dlYktpdFRv
b2xzL1NjcmlwdHMvd2Via2l0cHkvbW9ja19idWd6aWxsYXRvb2wucHkKaW5kZXggZDY1ZTE2Ny4u
NGNlYWIyMSAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9tb2NrX2J1
Z3ppbGxhdG9vbC5weQorKysgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L21vY2tfYnVn
emlsbGF0b29sLnB5CkBAIC0zNTQsNiArMzU0LDE1IEBAIGNsYXNzIE1vY2tVc2VyKG9iamVjdCk6
CiAgICAgICAgIHBhc3MKIAogCitjbGFzcyBNb2NrSVJDKG9iamVjdCk6CisKKyAgICBkZWYgcG9z
dChzZWxmLCBtZXNzYWdlKToKKyAgICAgICAgbG9nKCJNT0NLOiBpcmMucG9zdDogJXMiICUgbWVz
c2FnZSkKKworICAgIGRlZiBkaXNjb25uZWN0KHNlbGYpOgorICAgICAgICBsb2coIk1PQ0s6IGly
Yy5kaXNjb25uZWN0IikKKworCiBjbGFzcyBNb2NrU3RhdHVzU2VydmVyKG9iamVjdCk6CiAKICAg
ICBkZWYgX19pbml0X18oc2VsZik6CkBAIC0zNzIsNiArMzgxLDcgQEAgY2xhc3MgTW9ja0J1Z3pp
bGxhVG9vbCgpOgogICAgICAgICBzZWxmLmJ1Z3MgPSBNb2NrQnVnemlsbGEoKQogICAgICAgICBz
ZWxmLmJ1aWxkYm90ID0gTW9ja0J1aWxkQm90KCkKICAgICAgICAgc2VsZi5leGVjdXRpdmUgPSBN
b2NrKCkKKyAgICAgICAgc2VsZi5faXJjID0gTm9uZQogICAgICAgICBzZWxmLnVzZXIgPSBNb2Nr
VXNlcigpCiAgICAgICAgIHNlbGYuX3NjbSA9IE1vY2tTQ00oKQogICAgICAgICBzZWxmLnN0YXR1
c19zZXJ2ZXIgPSBNb2NrU3RhdHVzU2VydmVyKCkKQEAgLTM3OSw1ICszODksMTIgQEAgY2xhc3Mg
TW9ja0J1Z3ppbGxhVG9vbCgpOgogICAgIGRlZiBzY20oc2VsZik6CiAgICAgICAgIHJldHVybiBz
ZWxmLl9zY20KIAorICAgIGRlZiBlbnN1cmVfaXJjX2Nvbm5lY3RlZChzZWxmKToKKyAgICAgICAg
aWYgbm90IHNlbGYuX2lyYzoKKyAgICAgICAgICAgIHNlbGYuX2lyYyA9IE1vY2tJUkMoKQorCisg
ICAgZGVmIGlyYyhzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYuX2lyYworCiAgICAgZGVmIHBh
dGgoc2VsZik6CiAgICAgICAgIHJldHVybiAiZWNobyIKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xz
L1NjcmlwdHMvd2Via2l0cHkvbXVsdGljb21tYW5kdG9vbC5weSBiL1dlYktpdFRvb2xzL1Njcmlw
dHMvd2Via2l0cHkvbXVsdGljb21tYW5kdG9vbC5weQppbmRleCAxMGNmNDI2Li42MDk2NzZmIDEw
MDY0NAotLS0gYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L211bHRpY29tbWFuZHRvb2wu
cHkKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9tdWx0aWNvbW1hbmR0b29sLnB5
CkBAIC0yNjMsNiArMjYzLDkgQEAgY2xhc3MgTXVsdGlDb21tYW5kVG9vbChvYmplY3QpOgogICAg
IGRlZiBwYXRoKHNlbGYpOgogICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yLCAic3Vi
Y2xhc3NlcyBtdXN0IGltcGxlbWVudCIKIAorICAgIGRlZiBjb21tYW5kX2NvbXBsZXRlZChzZWxm
KToKKyAgICAgICAgcGFzcworCiAgICAgZGVmIHNob3VsZF9zaG93X2luX21haW5faGVscChzZWxm
LCBjb21tYW5kKToKICAgICAgICAgcmV0dXJuIGNvbW1hbmQuc2hvd19pbl9tYWluX2hlbHAKIApA
QCAtMjk2LDQgKzI5OSw2IEBAIGNsYXNzIE11bHRpQ29tbWFuZFRvb2wob2JqZWN0KToKICAgICAg
ICAgICAgIGxvZyhmYWlsdXJlX3JlYXNvbikKICAgICAgICAgICAgIHJldHVybiAwICMgRklYTUU6
IFNob3VsZCB0aGlzIHJlYWxseSBiZSAwPwogCi0gICAgICAgIHJldHVybiBjb21tYW5kLmNoZWNr
X2FyZ3VtZW50c19hbmRfZXhlY3V0ZShvcHRpb25zLCBhcmdzLCBzZWxmKQorICAgICAgICByZXN1
bHQgPSBjb21tYW5kLmNoZWNrX2FyZ3VtZW50c19hbmRfZXhlY3V0ZShvcHRpb25zLCBhcmdzLCBz
ZWxmKQorICAgICAgICBzZWxmLmNvbW1hbmRfY29tcGxldGVkKCkKKyAgICAgICAgcmV0dXJuIHJl
c3VsdApkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9tdWx0aWNvbW1h
bmR0b29sX3VuaXR0ZXN0LnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9tdWx0aWNv
bW1hbmR0b29sX3VuaXR0ZXN0LnB5CmluZGV4IGFlNzdlNzMuLjc5NGRiNjkgMTAwNjQ0Ci0tLSBh
L1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbXVsdGljb21tYW5kdG9vbF91bml0dGVzdC5w
eQorKysgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L211bHRpY29tbWFuZHRvb2xfdW5p
dHRlc3QucHkKQEAgLTcyLDcgKzcyLDcgQEAgY2xhc3MgVHJpdmlhbFRvb2woTXVsdGlDb21tYW5k
VG9vbCk6CiAgICAgZGVmIF9faW5pdF9fKHNlbGYsIGNvbW1hbmRzPU5vbmUpOgogICAgICAgICBN
dWx0aUNvbW1hbmRUb29sLl9faW5pdF9fKHNlbGYsIG5hbWU9InRyaXZpYWwtdG9vbCIsIGNvbW1h
bmRzPWNvbW1hbmRzKQogCi0gICAgZGVmIHBhdGgoKToKKyAgICBkZWYgcGF0aChzZWxmKToKICAg
ICAgICAgcmV0dXJuIF9fZmlsZV9fCiAKICAgICBkZWYgc2hvdWxkX2V4ZWN1dGVfY29tbWFuZChz
ZWxmLCBjb21tYW5kKToKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkv
cGF0Y2gvcGF0Y2hlci5weSBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvcGF0Y2gvcGF0
Y2hlci5weQppbmRleCA5NzQ5Y2QzLi4yNjgwMjc3IDEwMDc1NQotLS0gYS9XZWJLaXRUb29scy9T
Y3JpcHRzL3dlYmtpdHB5L3BhdGNoL3BhdGNoZXIucHkKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0
cy93ZWJraXRweS9wYXRjaC9wYXRjaGVyLnB5CkBAIC02MCw2ICs2MCw3IEBAIGNsYXNzIFdlYktp
dFBhdGNoKE11bHRpQ29tbWFuZFRvb2wpOgogICAgICAgICBzZWxmLmJ1Z3MgPSBCdWd6aWxsYSgp
CiAgICAgICAgIHNlbGYuYnVpbGRib3QgPSBCdWlsZEJvdCgpCiAgICAgICAgIHNlbGYuZXhlY3V0
aXZlID0gRXhlY3V0aXZlKCkKKyAgICAgICAgc2VsZi5faXJjID0gTm9uZQogICAgICAgICBzZWxm
LnVzZXIgPSBVc2VyKCkKICAgICAgICAgc2VsZi5fc2NtID0gTm9uZQogICAgICAgICBzZWxmLnN0
YXR1c19zZXJ2ZXIgPSBTdGF0dXNTZXJ2ZXIoKQpAQCAtODEsOSArODIsMjQgQEAgY2xhc3MgV2Vi
S2l0UGF0Y2goTXVsdGlDb21tYW5kVG9vbCk6CiAKICAgICAgICAgcmV0dXJuIHNlbGYuX3NjbQog
CisgICAgIyBGSVhNRTogQWRkIGEgcGFyYW1ldGVyIGZvciBuaWNrbmFtZT8KKyAgICBkZWYgZW5z
dXJlX2lyY19jb25uZWN0ZWQoc2VsZik6CisgICAgICAgIGlmIG5vdCBzZWxmLl9pcmM6CisgICAg
ICAgICAgICBzZWxmLl9pcmMgPSBJUkNQcm94eSgpCisKKyAgICBkZWYgaXJjKHNlbGYpOgorICAg
ICAgICAjIFdlIGRvbid0IGF1dG9tYXRpY2FsbHkgY29uc3RydWN0IElSQ1Byb3h5IGhlcmUgYmVj
YXVzZSBjb25zdHJ1Y3RpbmcKKyAgICAgICAgIyBJUkNQcm94eSBhY3R1YWxseSBjb25uZWN0cyB0
byBJUkMuICBXZSB3YW50IGNsaWVudHMgdG8gZXhwbGljaXRseQorICAgICAgICAjIGNvbm5lY3Qg
dG8gSVJDLgorICAgICAgICByZXR1cm4gc2VsZi5faXJjCisKICAgICBkZWYgcGF0aChzZWxmKToK
ICAgICAgICAgcmV0dXJuIHNlbGYuX3BhdGgKIAorICAgIGRlZiBjb21tYW5kX2NvbXBsZXRlZChz
ZWxmKToKKyAgICAgICAgaWYgc2VsZi5faXJjOgorICAgICAgICAgICAgc2VsZi5faXJjLmRpc2Nv
bm5lY3QoKQorCiAgICAgZGVmIHNob3VsZF9zaG93X2luX21haW5faGVscChzZWxmLCBjb21tYW5k
KToKICAgICAgICAgaWYgbm90IGNvbW1hbmQuc2hvd19pbl9tYWluX2hlbHA6CiAgICAgICAgICAg
ICByZXR1cm4gRmFsc2UKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkv
dW5pdHRlc3RzLnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS91bml0dGVzdHMucHkK
aW5kZXggODM5NGE3Yi4uOTBlMWYzMyAxMDA3NTUKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93
ZWJraXRweS91bml0dGVzdHMucHkKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS91
bml0dGVzdHMucHkKQEAgLTQwLDYgKzQwLDcgQEAgZnJvbSB3ZWJraXRweS5jb21tYW5kcy5vcGVu
YnVnc191bml0dGVzdCBpbXBvcnQgT3BlbkJ1Z3NUZXN0CiBmcm9tIHdlYmtpdHB5LmNvbW1hbmRz
LnVwbG9hZF91bml0dGVzdCBpbXBvcnQgKgogZnJvbSB3ZWJraXRweS5jb21tYW5kcy5xdWVyaWVz
X3VuaXR0ZXN0IGltcG9ydCAqCiBmcm9tIHdlYmtpdHB5LmNvbW1hbmRzLnF1ZXVlc191bml0dGVz
dCBpbXBvcnQgKgorZnJvbSB3ZWJraXRweS5jb21tYW5kcy5zaGVyaWZmYm90X3VuaXR0ZXN0IGlt
cG9ydCAqCiBmcm9tIHdlYmtpdHB5LmNvbW1pdHRlcnNfdW5pdHRlc3QgaW1wb3J0ICoKIGZyb20g
d2Via2l0cHkuY3JlZGVudGlhbHNfdW5pdHRlc3QgaW1wb3J0ICoKIGZyb20gd2Via2l0cHkuZGlm
Zl9wYXJzZXJfdW5pdHRlc3QgaW1wb3J0ICoK
</data>

          </attachment>
      

    </bug>

</bugzilla>