<?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>46703</bug_id>
          
          <creation_ts>2010-09-28 01:13:14 -0700</creation_ts>
          <short_desc>Move more SheriffBot smarts into FailureMap</short_desc>
          <delta_ts>2010-09-29 19:54: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>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="Adam Barth">abarth</assigned_to>
          <cc>eric</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>286120</commentid>
    <comment_count>0</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-09-28 01:13:14 -0700</bug_when>
    <thetext>Move more SheriffBot smarts into FailureMap</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>286121</commentid>
    <comment_count>1</comment_count>
      <attachid>69030</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-09-28 01:15:31 -0700</bug_when>
    <thetext>Created attachment 69030
Work in progress</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>287326</commentid>
    <comment_count>2</comment_count>
      <attachid>69297</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-09-29 19:35:39 -0700</bug_when>
    <thetext>Created attachment 69297
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>287329</commentid>
    <comment_count>3</comment_count>
      <attachid>69297</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-09-29 19:42:49 -0700</bug_when>
    <thetext>Comment on attachment 69297
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=69297&amp;action=review

In general looks OK.

&gt; WebKitTools/Scripts/webkitpy/common/net/failuremap.py:41
&gt; +        return self._failures == []

return not self._failures maybe?

That will make None empty too.

&gt; WebKitTools/Scripts/webkitpy/common/net/failuremap.py:45
&gt; +        return sorted(set(sum([failure_info[&apos;regression_window&apos;].revisions()
&gt; +                               for failure_info in self._failures], [])))

Local variables seems useful here.

&gt; WebKitTools/Scripts/webkitpy/common/net/regressionwindow.py:52
&gt; +        if self._revisions:
&gt; +            return self._revisions
&gt; +        self._revisions = range(self._failing_build.revision(), self._build_before_failure.revision(), -1)
&gt; +        self._revisions.reverse()
&gt; +        return self._revisions

I would have reversed this if.

&gt; WebKitTools/Scripts/webkitpy/tool/commands/sheriffbot.py:61
&gt; +    def _is_old_failure(self):
&gt; +        return self._tool.status_server.svn_revision(svn_revision)

This can&apos;t work.  Seems we&apos;re missing a unit test?

&gt; WebKitTools/Scripts/webkitpy/tool/commands/sheriffbot.py:67
&gt; +        # FIXME: We need to figure out how to provoke_flaky_builders.

Please file a bug.  If I had known this was broken, I could have fixed it long ago. :(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>287335</commentid>
    <comment_count>4</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-09-29 19:54:00 -0700</bug_when>
    <thetext>Committed r68740: &lt;http://trac.webkit.org/changeset/68740&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>69030</attachid>
            <date>2010-09-28 01:15:31 -0700</date>
            <delta_ts>2010-09-29 19:35:36 -0700</delta_ts>
            <desc>Work in progress</desc>
            <filename>bug-46703-20100928011530.patch</filename>
            <type>text/plain</type>
            <size>10813</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCBhYzU5NmQ5ZjdkMmY0YzFiYWY4NTY5M2M3OTUxNzYzNjNjMjFiMDFiLi4xYjU4ZWIy
MDk4MTcyNzhkYjRmYWFkYWNhOWIzNDQzZWEzYmY0OTYwIDEwMDY0NAotLS0gYS9XZWJLaXRUb29s
cy9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0yLDYgKzIsMjcgQEAK
IAogICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KIAorICAgICAgICBNb3ZlIG1v
cmUgU2hlcmlmZkJvdCBzbWFydHMgaW50byBGYWlsdXJlTWFwCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NjcwMworCisgICAgICAgIFRoaXMgcGF0Y2gg
cHVzaGVzIHRoZSBGYWlsdXJlTWFwIG1vZGVsIG9iamVjdCBmdXJ0aGVyIGludG8gdGhlCisgICAg
ICAgIFNoZXJpZmZCb3QgbWFjaGluZS4gIEluIGFkZGl0aW9uLCBpdCBtb3ZlcyBhIGNvdXBsZSBv
cGVyYXRpb25zIG9uIHRoaXMKKyAgICAgICAgb2JqZWN0IGZyb20gU2hlcmlmZkJvdCBpdHNlbGYg
dG8gdGhlIG1vZGVsLgorCisgICAgICAgIEV2ZW50dWFsbHksIEZhaWx1cmVNYXAgd2lsbCBiZSB0
aGUgY2Fub25pY2FsIGNvbnRleHQgb2JqZWN0IGZvcgorICAgICAgICBTaGVyaWZmQm90IG9wZXJh
dGlvbnMuICBGYWlsdXJlTWFwIHJlcHJlc2VudHMgYSBtYXAgb2YgdGhlIGN1cnJlbnQKKyAgICAg
ICAgZmFpbHVyZXMgb24gdGhlIGJvdHMgdGhhdCBtaWdodCByZXF1aXJlIHJlbWVkaWF0aW9uLgor
CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9jb21tb24vbmV0L2ZhaWx1cmVtYXAucHk6Cisg
ICAgICAgICogU2NyaXB0cy93ZWJraXRweS9jb21tb24vbmV0L3JlZ3Jlc3Npb253aW5kb3cucHk6
CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL3F1ZXJpZXMucHk6Cisg
ICAgICAgICogU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL3NoZXJpZmZib3QucHk6Cisg
ICAgICAgICogU2NyaXB0cy93ZWJraXRweS90b29sL21vY2t0b29sLnB5OgorCisyMDEwLTA5LTI4
ICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKICAgICAgICAgSW50cm9kdWNlIEZhaWx1cmVNYXAgdG8gc3VtbWFy
aWVzIHRoZSBmYWlsdXJlcyBzdGF0dXMgb2YgYWxsIHRoZSBib3RzCiAgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NjcwMAogCmRpZmYgLS1naXQgYS9XZWJL
aXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvZmFpbHVyZW1hcC5weSBiL1dlYktp
dFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC9mYWlsdXJlbWFwLnB5CmluZGV4IDk4
ZTRiOGZmMDJlNTQxZWU2ODlkNDk3NzU3ZTI3M2E1ZmNjNDFjMjcuLmM0YTRiOGY3NzEyMDAwOTI4
NDc2NmRmYTQyYTNiMzMzODcwNTNhZDkgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMv
d2Via2l0cHkvY29tbW9uL25ldC9mYWlsdXJlbWFwLnB5CisrKyBiL1dlYktpdFRvb2xzL1Njcmlw
dHMvd2Via2l0cHkvY29tbW9uL25ldC9mYWlsdXJlbWFwLnB5CkBAIC0zNyw2ICszNywxMyBAQCBj
bGFzcyBGYWlsdXJlTWFwKG9iamVjdCk6CiAgICAgICAgICAgICAncmVncmVzc2lvbl93aW5kb3cn
OiByZWdyZXNzaW9uX3dpbmRvdywKICAgICAgICAgfSkKIAorICAgIGRlZiBpc19lbXB0eShzZWxm
KToKKyAgICAgICAgcmV0dXJuIHNlbGYuX2ZhaWx1cmVzID09IFtdCisKKyAgICBkZWYgZmFpbGlu
Z19yZXZpc2lvbnMoc2VsZik6CisgICAgICAgIHJldHVybiBzdW0oW2ZhaWx1cmVfaW5mb1sncmVn
cmVzc2lvbl93aW5kb3cnXS5yZXZpc2lvbnMoKQorICAgICAgICAgICAgICAgICAgICBmb3IgZmFp
bHVyZV9pbmZvIGluIHNlbGYuX2ZhaWx1cmVzXSwgW10pCisKICAgICBkZWYgcmV2aXNpb25zX2Nh
dXNpbmdfZmFpbHVyZXMoc2VsZik6CiAgICAgICAgIHJldmlzaW9uX3RvX2ZhaWxpbmdfYm90cyA9
IHt9CiAgICAgICAgIGZvciBmYWlsdXJlX2luZm8gaW4gc2VsZi5fZmFpbHVyZXM6CkBAIC00Niwz
ICs1MywyOCBAQCBjbGFzcyBGYWlsdXJlTWFwKG9iamVjdCk6CiAgICAgICAgICAgICAgICAgZmFp
bGluZ19ib3RzLmFwcGVuZChmYWlsdXJlX2luZm9bJ2J1aWxkZXInXSkKICAgICAgICAgICAgICAg
ICByZXZpc2lvbl90b19mYWlsaW5nX2JvdHNbcmV2aXNpb25dID0gZmFpbGluZ19ib3RzCiAgICAg
ICAgIHJldHVybiByZXZpc2lvbl90b19mYWlsaW5nX2JvdHMKKworICAgIGRlZiBfb2xkX2ZhaWx1
cmVzKHNlbGYsIGlzX29sZF9mYWlsdXJlKToKKyAgICAgICAgcmV0dXJuIGZpbHRlcihsYW1iZGEg
cmV2aXNpb246IG5vdCBpc19vbGRfZmFpbHVyZShyZXZpc2lvbiksCisgICAgICAgICAgICAgICAg
ICAgICAgc2VsZi5mYWlsaW5nX3JldmlzaW9ucygpKQorCisgICAgZGVmIF9idWlsZGVyc19mYWls
aW5nX2JlY2F1c2Vfb2Yoc2VsZiwgcmV2aXNpb25zKToKKyAgICAgICAgcmV2aXNpb25fc2V0ID0g
c2V0KHJldmlzaW9ucykKKyAgICAgICAgcmV0dXJuIFtmYWlsdXJlX2luZm9bJ2J1aWxkZXInXSBm
b3IgZmFpbHVyZV9pbmZvIGluIHNlbGYuX2ZhaWx1cmVzCisgICAgICAgICAgICAgICAgaWYgcmV2
aXNpb25fc2V0LmludGVyc2VjdGlvbigKKyAgICAgICAgICAgICAgICAgICAgZmFpbHVyZV9pbmZv
WydyZWdyZXNzaW9uX3dpbmRvdyddLnJldmlzaW9ucygpKV0KKworICAgICMgRklYTUU6IFdlIHNo
b3VsZCByZS1wcm9jZXNzIG9sZCBmYWlsdXJlcyBhZnRlciBzb21lIHRpbWUgZGVsYXkuCisgICAg
IyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzY1ODEKKyAgICBkZWYg
ZmlsdGVyX291dF9vbGRfZmFpbHVyZXMoc2VsZiwgaXNfb2xkX2ZhaWx1cmUpOgorICAgICAgICBv
bGRfZmFpbHVyZXMgPSBzZWxmLl9vbGRfZmFpbHVyZXMoaXNfb2xkX2ZhaWx1cmUpCisgICAgICAg
IG9sZF9mYWlsaW5nX2J1aWxkZXJfbmFtZXMgPSBzZXQoW2J1aWxkZXIubmFtZSgpCisgICAgICAg
ICAgICBmb3IgYnVpbGRlciBpbiBzZWxmLl9idWlsZGVyc19mYWlsaW5nX2JlY2F1c2Vfb2Yob2xk
X2ZhaWx1cmVzKV0pCisKKyAgICAgICAgIyBXZSBmaWx0ZXIgb3V0IGFsbCB0aGUgZmFpbGluZyBi
dWlsZGVycyB0aGF0IGNvdWxkIGhhdmUgYmVlbiBjYXVzZWQKKyAgICAgICAgIyBieSBvbGRfZmFp
bHVyZXMuICBXZSBjb3VsZCBtaXNzIHNvbWUgbmV3IGZhaWx1cmVzIHRoaXMgd2F5LCBidXQKKyAg
ICAgICAgIyBlbXBlcmljYWxseSwgdGhpcyByZWR1Y2VzIHRoZSBhbW91bnQgb2Ygc3BhbSB3ZSBn
ZW5lcmF0ZS4KKyAgICAgICAgZmFpbHVyZXMgPSBzZWxmLl9mYWlsdXJlcworICAgICAgICBzZWxm
Ll9mYWlsdXJlcyA9IFtmYWlsdXJlX2luZm8gZm9yIGZhaWx1cmVfaW5mbyBpbiBmYWlsdXJlcwor
ICAgICAgICAgICAgaWYgZmFpbHVyZV9pbmZvWydidWlsZGVyJ10ubmFtZSgpIG5vdCBpbiBvbGRf
ZmFpbGluZ19idWlsZGVyX25hbWVzXQorICAgICAgICBzZWxmLl9jYWNoZSA9IHt9CmRpZmYgLS1n
aXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvcmVncmVzc2lvbndp
bmRvdy5weSBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC9yZWdyZXNz
aW9ud2luZG93LnB5CmluZGV4IDIzMTQ1OWY5ZmM2NzU0NjYwZGQ5NTc2MzM4ZGZiMjljMWZkNDFl
NWUuLjE4MzY2OGQyYzg5NmEzMGFlMmNmMjgxYWIxMjY1MDNlYmVhMGUwNTcgMTAwNjQ0Ci0tLSBh
L1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC9yZWdyZXNzaW9ud2luZG93
LnB5CisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC9yZWdyZXNz
aW9ud2luZG93LnB5CkBAIC0zMiw2ICszMiw3IEBAIGNsYXNzIFJlZ3Jlc3Npb25XaW5kb3cob2Jq
ZWN0KToKICAgICAgICAgc2VsZi5fYnVpbGRfYmVmb3JlX2ZhaWx1cmUgPSBidWlsZF9iZWZvcmVf
ZmFpbHVyZQogICAgICAgICBzZWxmLl9mYWlsaW5nX2J1aWxkID0gZmFpbGluZ19idWlsZAogICAg
ICAgICBzZWxmLl9jb21tb25fZmFpbHVyZXMgPSBjb21tb25fZmFpbHVyZXMKKyAgICAgICAgc2Vs
Zi5fcmV2aXNpb25zID0gTm9uZQogCiAgICAgZGVmIGJ1aWxkX2JlZm9yZV9mYWlsdXJlKHNlbGYp
OgogICAgICAgICByZXR1cm4gc2VsZi5fYnVpbGRfYmVmb3JlX2ZhaWx1cmUKQEAgLTQzLDYgKzQ0
LDkgQEAgY2xhc3MgUmVncmVzc2lvbldpbmRvdyhvYmplY3QpOgogICAgICAgICByZXR1cm4gc2Vs
Zi5fY29tbW9uX2ZhaWx1cmVzCiAKICAgICBkZWYgcmV2aXNpb25zKHNlbGYpOgotICAgICAgICBy
ZXZpc2lvbnMgPSByYW5nZShzZWxmLl9mYWlsaW5nX2J1aWxkLnJldmlzaW9uKCksIHNlbGYuX2J1
aWxkX2JlZm9yZV9mYWlsdXJlLnJldmlzaW9uKCksIC0xKQotICAgICAgICByZXZpc2lvbnMucmV2
ZXJzZSgpCi0gICAgICAgIHJldHVybiByZXZpc2lvbnMKKyAgICAgICAgIyBDYWNoZSByZXZpc2lv
bnMgdG8gYXZvaWQgZXhjZXNzaXZlIGFsbG9jYXRpb25zLgorICAgICAgICBpZiBzZWxmLl9yZXZp
c2lvbnM6CisgICAgICAgICAgICByZXR1cm4gc2VsZi5fcmV2aXNpb25zCisgICAgICAgIHNlbGYu
X3JldmlzaW9ucyA9IHJhbmdlKHNlbGYuX2ZhaWxpbmdfYnVpbGQucmV2aXNpb24oKSwgc2VsZi5f
YnVpbGRfYmVmb3JlX2ZhaWx1cmUucmV2aXNpb24oKSwgLTEpCisgICAgICAgIHNlbGYuX3Jldmlz
aW9ucy5yZXZlcnNlKCkKKyAgICAgICAgcmV0dXJuIHNlbGYuX3JldmlzaW9ucwpkaWZmIC0tZ2l0
IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL3F1ZXJpZXMucHkg
Yi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvcXVlcmllcy5weQpp
bmRleCBjNmU0NWFhOGNmZTgzNDlmYzU1ODQ0OWYwYWI0MTkwNGQ2Mzk1M2ZmLi5mN2Y4YjE5YTE1
MzgyZTdhNGU1Yjc1ZmRiN2MxMTE3OTIyZTRlNWQ5IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9T
Y3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvcXVlcmllcy5weQorKysgYi9XZWJLaXRUb29s
cy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvcXVlcmllcy5weQpAQCAtMTYyLDE1ICsx
NjIsNiBAQCBjbGFzcyBXaGF0QnJva2UoQWJzdHJhY3REZWNsYXJhdGl2ZUNvbW1hbmQpOgogICAg
ICAgICAgICAgcHJpbnQgIkFsbCBidWlsZGVycyBhcmUgcGFzc2luZyEiCiAKIAotY2xhc3MgV2hv
QnJva2VJdChBYnN0cmFjdERlY2xhcmF0aXZlQ29tbWFuZCk6Ci0gICAgbmFtZSA9ICJ3aG8tYnJv
a2UtaXQiCi0gICAgaGVscF90ZXh0ID0gIlByaW50IGEgbGlzdCBvZiByZXZpc2lvbnMgY2F1c2lu
ZyBmYWlsdXJlcyBvbiAlcyIgJSBCdWlsZEJvdC5kZWZhdWx0X2hvc3QKLQotICAgIGRlZiBleGVj
dXRlKHNlbGYsIG9wdGlvbnMsIGFyZ3MsIHRvb2wpOgotICAgICAgICBmb3IgcmV2aXNpb24sIGJ1
aWxkZXJzIGluIHNlbGYuX3Rvb2wuYnVpbGRib3QuZmFpbHVyZV9tYXAoRmFsc2UpLnJldmlzaW9u
c19jYXVzaW5nX2ZhaWx1cmVzKCkuaXRlbXMoKToKLSAgICAgICAgICAgIHByaW50ICJyJXMgYXBw
ZWFycyB0byBoYXZlIGJyb2tlbiAlcyIgJSAocmV2aXNpb24sIFtidWlsZGVyLm5hbWUoKSBmb3Ig
YnVpbGRlciBpbiBidWlsZGVyc10pCi0KLQogY2xhc3MgUmVzdWx0c0ZvcihBYnN0cmFjdERlY2xh
cmF0aXZlQ29tbWFuZCk6CiAgICAgbmFtZSA9ICJyZXN1bHRzLWZvciIKICAgICBoZWxwX3RleHQg
PSAiUHJpbnQgYSBsaXN0IG9mIGZhaWx1cmVzIGZvciB0aGUgcGFzc2VkIHJldmlzaW9uIGZyb20g
Ym90cyBvbiAlcyIgJSBCdWlsZEJvdC5kZWZhdWx0X2hvc3QKZGlmZiAtLWdpdCBhL1dlYktpdFRv
b2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9zaGVyaWZmYm90LnB5IGIvV2ViS2l0
VG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL3NoZXJpZmZib3QucHkKaW5kZXgg
MjNkMDEzZDgyOTc4OGZjODNlOTc5YTMxZWRiNmM3MGUzOGJlYTk0Ny4uM2I0M2M3ZjYwOWM4ZmEz
MzQwZjNlNDYwNWI1NjY5N2IxYzlkOTcyNCAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0
cy93ZWJraXRweS90b29sL2NvbW1hbmRzL3NoZXJpZmZib3QucHkKKysrIGIvV2ViS2l0VG9vbHMv
U2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL3NoZXJpZmZib3QucHkKQEAgLTU0LDU3ICs1
NCwzMCBAQCBjbGFzcyBTaGVyaWZmQm90KEFic3RyYWN0UXVldWUsIFN0ZXBTZXF1ZW5jZUVycm9y
SGFuZGxlcik6CiAgICAgICAgIHNlbGYuX2lyY19ib3QgPSBTaGVyaWZmSVJDQm90KHNlbGYuX3Rv
b2wsIHNlbGYuX3NoZXJpZmYpCiAgICAgICAgIHNlbGYuX3Rvb2wuZW5zdXJlX2lyY19jb25uZWN0
ZWQoc2VsZi5faXJjX2JvdC5pcmNfZGVsZWdhdGUoKSkKIAotICAgIGRlZiB3b3JrX2l0ZW1fbG9n
X3BhdGgoc2VsZiwgbmV3X2ZhaWx1cmVzKToKLSAgICAgICAgcmV0dXJuIG9zLnBhdGguam9pbigi
JXMtbG9ncyIgJSBzZWxmLm5hbWUsICIlcy5sb2ciICUgbmV3X2ZhaWx1cmVzLmtleXMoKVswXSkK
LQotICAgIGRlZiBfbmV3X2ZhaWx1cmVzKHNlbGYsIHJldmlzaW9uc19jYXVzaW5nX2ZhaWx1cmVz
LCBvbGRfZmFpbGluZ19zdm5fcmV2aXNpb25zKToKLSAgICAgICAgIyBXZSBpZ25vcmUgZmFpbHVy
ZXMgdGhhdCBtaWdodCBoYXZlIGJlZW4gY2F1c2VkIGJ5IHN2bl9yZXZpc2lvbnMgdGhhdAotICAg
ICAgICAjIHdlJ3ZlIGFscmVhZHkgY29tcGxhaW5lZCBhYm91dC4gIFRoaXMgaXMgY29uc2VydmF0
aXZlIGluIHRoZSBzZW5zZQotICAgICAgICAjIHRoYXQgd2UgbWlnaHQgYmUgaWdub3Jpbmcgc29t
ZSBuZXcgZmFpbHVyZXMsIGJ1dCBvdXIgZXhwZXJpZW5jZSBoYXMKLSAgICAgICAgIyBiZWVuIHRo
YXQgc2tpcHBpbmcgdGhpcyBjaGVjayBjYXVzZXMgYSBsb3Qgb2Ygc3BhbSBmb3IgYnVpbGRlcnMg
dGhhdAotICAgICAgICAjIHRha2UgYSBsb25nIHRpbWUgdG8gY3ljbGUuCi0gICAgICAgIG9sZF9m
YWlsaW5nX2J1aWxkZXJfbmFtZXMgPSBbXQotICAgICAgICBmb3Igc3ZuX3JldmlzaW9uIGluIG9s
ZF9mYWlsaW5nX3N2bl9yZXZpc2lvbnM6Ci0gICAgICAgICAgICBvbGRfZmFpbGluZ19idWlsZGVy
X25hbWVzLmV4dGVuZCgKLSAgICAgICAgICAgICAgICBbYnVpbGRlci5uYW1lKCkgZm9yIGJ1aWxk
ZXIgaW4gcmV2aXNpb25zX2NhdXNpbmdfZmFpbHVyZXNbc3ZuX3JldmlzaW9uXV0pCi0KLSAgICAg
ICAgbmV3X2ZhaWx1cmVzID0ge30KLSAgICAgICAgZm9yIHN2bl9yZXZpc2lvbiwgYnVpbGRlcnMg
aW4gcmV2aXNpb25zX2NhdXNpbmdfZmFpbHVyZXMuaXRlbXMoKToKLSAgICAgICAgICAgIGlmIHN2
bl9yZXZpc2lvbiBpbiBvbGRfZmFpbGluZ19zdm5fcmV2aXNpb25zOgotICAgICAgICAgICAgICAg
ICMgRklYTUU6IFdlIHNob3VsZCByZS1wcm9jZXNzIHRoZSB3b3JrIGl0ZW0gYWZ0ZXIgc29tZSB0
aW1lIGRlbGF5LgotICAgICAgICAgICAgICAgICMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTM2NTgxCi0gICAgICAgICAgICAgICAgY29udGludWUKLSAgICAgICAgICAg
IG5ld19idWlsZGVycyA9IFtidWlsZGVyIGZvciBidWlsZGVyIGluIGJ1aWxkZXJzCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgaWYgYnVpbGRlci5uYW1lKCkgbm90IGluIG9sZF9mYWlsaW5n
X2J1aWxkZXJfbmFtZXNdCi0gICAgICAgICAgICBpZiBuZXdfYnVpbGRlcnM6Ci0gICAgICAgICAg
ICAgICAgbmV3X2ZhaWx1cmVzW3N2bl9yZXZpc2lvbl0gPSBuZXdfYnVpbGRlcnMKLQotICAgICAg
ICByZXR1cm4gbmV3X2ZhaWx1cmVzCisgICAgZGVmIHdvcmtfaXRlbV9sb2dfcGF0aChzZWxmLCBm
YWlsdXJlX21hcCk6CisgICAgICAgIHJldHVybiBOb25lCisKKyAgICBkZWYgX2lzX29sZF9mYWls
dXJlKHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5fdG9vbC5zdGF0dXNfc2VydmVyLnN2bl9y
ZXZpc2lvbihzdm5fcmV2aXNpb24pCiAKICAgICBkZWYgbmV4dF93b3JrX2l0ZW0oc2VsZik6CiAg
ICAgICAgIHNlbGYuX2lyY19ib3QucHJvY2Vzc19wZW5kaW5nX21lc3NhZ2VzKCkKICAgICAgICAg
c2VsZi5fdXBkYXRlKCkKIAotICAgICAgICAjIFdlIGRvIG9uZSByZWFkIGZyb20gYnVpbGRib3Qg
dG8gZW5zdXJlIGEgY29uc2lzdGVudCB2aWV3LgotICAgICAgICByZXZpc2lvbnNfY2F1c2luZ19m
YWlsdXJlcyA9IHNlbGYuX3Rvb2wuYnVpbGRib3QuZmFpbHVyZV9tYXAoKS5yZXZpc2lvbnNfY2F1
c2luZ19mYWlsdXJlcygpCi0KLSAgICAgICAgIyBTaW1pbGFybHksIHdlIHJlYWQgb25jZSBmcm9t
IG91ciB0aGUgc3RhdHVzX3NlcnZlci4KLSAgICAgICAgb2xkX2ZhaWxpbmdfc3ZuX3JldmlzaW9u
cyA9IFtdCi0gICAgICAgIGZvciBzdm5fcmV2aXNpb24gaW4gcmV2aXNpb25zX2NhdXNpbmdfZmFp
bHVyZXMua2V5cygpOgotICAgICAgICAgICAgaWYgc2VsZi5fdG9vbC5zdGF0dXNfc2VydmVyLnN2
bl9yZXZpc2lvbihzdm5fcmV2aXNpb24pOgotICAgICAgICAgICAgICAgIG9sZF9mYWlsaW5nX3N2
bl9yZXZpc2lvbnMuYXBwZW5kKHN2bl9yZXZpc2lvbikKLQotICAgICAgICBuZXdfZmFpbHVyZXMg
PSBzZWxmLl9uZXdfZmFpbHVyZXMocmV2aXNpb25zX2NhdXNpbmdfZmFpbHVyZXMsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbGRfZmFpbGluZ19zdm5fcmV2aXNp
b25zKQorICAgICAgICAjIEZJWE1FOiBXZSBuZWVkIHRvIGZpZ3VyZSBvdXQgaG93IHRvIHByb3Zv
a2VfZmxha3lfYnVpbGRlcnMuCiAKLSAgICAgICAgc2VsZi5fc2hlcmlmZi5wcm92b2tlX2ZsYWt5
X2J1aWxkZXJzKHJldmlzaW9uc19jYXVzaW5nX2ZhaWx1cmVzKQotICAgICAgICByZXR1cm4gbmV3
X2ZhaWx1cmVzCisgICAgICAgIGZhaWx1cmVfbWFwID0gc2VsZi5fdG9vbC5idWlsZGJvdC5mYWls
dXJlX21hcCgpCisgICAgICAgIGZhaWx1cmVfbWFwLmZpbHRlcl9vdXRfb2xkX2ZhaWx1cmVzKHNl
bGYuX2lzX29sZF9mYWlsdXJlKQorICAgICAgICBpZiBmYWlsdXJlX21hcC5pc19lbXB0eSgpOgor
ICAgICAgICAgICAgcmV0dXJuIE5vbmUKKyAgICAgICAgcmV0dXJuIGZhaWx1cmVfbWFwCiAKLSAg
ICBkZWYgc2hvdWxkX3Byb2NlZWRfd2l0aF93b3JrX2l0ZW0oc2VsZiwgbmV3X2ZhaWx1cmVzKToK
KyAgICBkZWYgc2hvdWxkX3Byb2NlZWRfd2l0aF93b3JrX2l0ZW0oc2VsZiwgZmFpbHVyZV9tYXAp
OgogICAgICAgICAjIEN1cnJlbnRseSwgd2UgZG9uJ3QgaGF2ZSBhbnkgcmVhc29ucyBub3QgdG8g
cHJvY2VlZCB3aXRoIHdvcmsgaXRlbXMuCiAgICAgICAgIHJldHVybiBUcnVlCiAKLSAgICBkZWYg
cHJvY2Vzc193b3JrX2l0ZW0oc2VsZiwgbmV3X2ZhaWx1cmVzKToKKyAgICBkZWYgcHJvY2Vzc193
b3JrX2l0ZW0oc2VsZiwgZmFpbHVyZV9tYXApOgorICAgICAgICBuZXdfZmFpbHVyZXMgPSBmYWls
dXJlX21hcC5yZXZpc2lvbnNfY2F1c2luZ19mYWlsdXJlcygpCiAgICAgICAgIGJsYW1lX2xpc3Qg
PSBuZXdfZmFpbHVyZXMua2V5cygpCiAgICAgICAgIGZvciBzdm5fcmV2aXNpb24sIGJ1aWxkZXJz
IGluIG5ld19mYWlsdXJlcy5pdGVtcygpOgogICAgICAgICAgICAgdHJ5OgpAQCAtMTI0LDcgKzk3
LDcgQEAgY2xhc3MgU2hlcmlmZkJvdChBYnN0cmFjdFF1ZXVlLCBTdGVwU2VxdWVuY2VFcnJvckhh
bmRsZXIpOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGJ1aWxkZXIubmFtZSgpKQogICAgICAgICByZXR1cm4gVHJ1ZQogCi0g
ICAgZGVmIGhhbmRsZV91bmV4cGVjdGVkX2Vycm9yKHNlbGYsIG5ld19mYWlsdXJlcywgbWVzc2Fn
ZSk6CisgICAgZGVmIGhhbmRsZV91bmV4cGVjdGVkX2Vycm9yKHNlbGYsIGZhaWx1cmVfbWFwLCBt
ZXNzYWdlKToKICAgICAgICAgbG9nKG1lc3NhZ2UpCiAKICAgICAjIFN0ZXBTZXF1ZW5jZUVycm9y
SGFuZGxlciBtZXRob2RzCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5
L3Rvb2wvbW9ja3Rvb2wucHkgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvbW9j
a3Rvb2wucHkKaW5kZXggNTA4NGVkNTAzZTQzZjQ1ZmNjZmU2MTJhMTNlMDQ1ODhlYzUyZmJhYS4u
NGIyMzM2MTg4ZmYyNTRkNDQ3ZWFmY2QwODdlNGU1Nzc4OGFlODdkZCAxMDA2NDQKLS0tIGEvV2Vi
S2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL21vY2t0b29sLnB5CisrKyBiL1dlYktpdFRv
b2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9tb2NrdG9vbC5weQpAQCAtMzU0LDExICszNTQsMTcg
QEAgY2xhc3MgTW9ja0ZhaWx1cmVNYXAoKToKICAgICBkZWYgX19pbml0X18oc2VsZiwgYnVpbGRi
b3QpOgogICAgICAgICBzZWxmLl9idWlsZGJvdCA9IGJ1aWxkYm90CiAKKyAgICBkZWYgaXNfZW1w
dHkoc2VsZik6CisgICAgICAgIHJldHVybiBGYWxzZQorCiAgICAgZGVmIHJldmlzaW9uc19jYXVz
aW5nX2ZhaWx1cmVzKHNlbGYpOgogICAgICAgICByZXR1cm4gewogICAgICAgICAgICAgIjI5ODM3
IjogW3NlbGYuX2J1aWxkYm90LmJ1aWxkZXJfd2l0aF9uYW1lKCJCdWlsZGVyMSIpXSwKICAgICAg
ICAgfQogCisgICAgZGVmIGZpbHRlcl9vdXRfb2xkX2ZhaWx1cmVzKHNlbGYsIGlzX29sZF9yZXZp
c2lvbik6CisgICAgICAgIHBhc3MKKwogCiBjbGFzcyBNb2NrQnVpbGRCb3Qob2JqZWN0KToKICAg
ICBidWlsZGJvdF9ob3N0ID0gImR1bW15X2J1aWxkYm90X2hvc3QiCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>69297</attachid>
            <date>2010-09-29 19:35:39 -0700</date>
            <delta_ts>2010-09-29 19:42:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-46703-20100929193538.patch</filename>
            <type>text/plain</type>
            <size>16517</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXRUb29scy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDY4NzM2KQorKysgV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMjQgQEAKKzIwMTAtMDktMjkgIEFkYW0gQmFydGggIDxhYmFy
dGhAd2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBNb3ZlIG1vcmUgU2hlcmlmZkJvdCBzbWFydHMgaW50byBGYWlsdXJlTWFwCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NjcwMworCisgICAg
ICAgIFRoaXMgcGF0Y2ggcHVzaGVzIHRoZSBGYWlsdXJlTWFwIG1vZGVsIG9iamVjdCBmdXJ0aGVy
IGludG8gdGhlCisgICAgICAgIFNoZXJpZmZCb3QgbWFjaGluZS4gIEluIGFkZGl0aW9uLCBpdCBt
b3ZlcyBhIGNvdXBsZSBvcGVyYXRpb25zIG9uIHRoaXMKKyAgICAgICAgb2JqZWN0IGZyb20gU2hl
cmlmZkJvdCBpdHNlbGYgdG8gdGhlIG1vZGVsLgorCisgICAgICAgIEV2ZW50dWFsbHksIEZhaWx1
cmVNYXAgd2lsbCBiZSB0aGUgY2Fub25pY2FsIGNvbnRleHQgb2JqZWN0IGZvcgorICAgICAgICBT
aGVyaWZmQm90IG9wZXJhdGlvbnMuICBGYWlsdXJlTWFwIHJlcHJlc2VudHMgYSBtYXAgb2YgdGhl
IGN1cnJlbnQKKyAgICAgICAgZmFpbHVyZXMgb24gdGhlIGJvdHMgdGhhdCBtaWdodCByZXF1aXJl
IHJlbWVkaWF0aW9uLgorCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9jb21tb24vbmV0L2Zh
aWx1cmVtYXAucHk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9jb21tb24vbmV0L3JlZ3Jl
c3Npb253aW5kb3cucHk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRz
L3F1ZXJpZXMucHk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL3No
ZXJpZmZib3QucHk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS90b29sL21vY2t0b29sLnB5
OgorCiAyMDEwLTA5LTI5ICBUb255IENoYW5nICA8dG9ueUBjaHJvbWl1bS5vcmc+CiAKICAgICAg
ICAgUmV2aWV3ZWQgYnkgSmFtZXMgUm9iaW5zb24uCkluZGV4OiBXZWJLaXRUb29scy9TY3JpcHRz
L3dlYmtpdHB5L2NvbW1vbi9uZXQvZmFpbHVyZW1hcC5weQo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXRU
b29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvZmFpbHVyZW1hcC5weQkocmV2aXNpb24g
Njg3MzYpCisrKyBXZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvZmFpbHVy
ZW1hcC5weQkod29ya2luZyBjb3B5KQpAQCAtMzcsNiArMzcsMTMgQEAgY2xhc3MgRmFpbHVyZU1h
cChvYmplY3QpOgogICAgICAgICAgICAgJ3JlZ3Jlc3Npb25fd2luZG93JzogcmVncmVzc2lvbl93
aW5kb3csCiAgICAgICAgIH0pCiAKKyAgICBkZWYgaXNfZW1wdHkoc2VsZik6CisgICAgICAgIHJl
dHVybiBzZWxmLl9mYWlsdXJlcyA9PSBbXQorCisgICAgZGVmIGZhaWxpbmdfcmV2aXNpb25zKHNl
bGYpOgorICAgICAgICByZXR1cm4gc29ydGVkKHNldChzdW0oW2ZhaWx1cmVfaW5mb1sncmVncmVz
c2lvbl93aW5kb3cnXS5yZXZpc2lvbnMoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGZvciBmYWlsdXJlX2luZm8gaW4gc2VsZi5fZmFpbHVyZXNdLCBbXSkpKQorCiAgICAgZGVmIHJl
dmlzaW9uc19jYXVzaW5nX2ZhaWx1cmVzKHNlbGYpOgogICAgICAgICByZXZpc2lvbl90b19mYWls
aW5nX2JvdHMgPSB7fQogICAgICAgICBmb3IgZmFpbHVyZV9pbmZvIGluIHNlbGYuX2ZhaWx1cmVz
OgpAQCAtNDYsMyArNTMsMjggQEAgY2xhc3MgRmFpbHVyZU1hcChvYmplY3QpOgogICAgICAgICAg
ICAgICAgIGZhaWxpbmdfYm90cy5hcHBlbmQoZmFpbHVyZV9pbmZvWydidWlsZGVyJ10pCiAgICAg
ICAgICAgICAgICAgcmV2aXNpb25fdG9fZmFpbGluZ19ib3RzW3JldmlzaW9uXSA9IGZhaWxpbmdf
Ym90cwogICAgICAgICByZXR1cm4gcmV2aXNpb25fdG9fZmFpbGluZ19ib3RzCisKKyAgICBkZWYg
X29sZF9mYWlsdXJlcyhzZWxmLCBpc19vbGRfZmFpbHVyZSk6CisgICAgICAgIHJldHVybiBmaWx0
ZXIobGFtYmRhIHJldmlzaW9uOiBpc19vbGRfZmFpbHVyZShyZXZpc2lvbiksCisgICAgICAgICAg
ICAgICAgICAgICAgc2VsZi5mYWlsaW5nX3JldmlzaW9ucygpKQorCisgICAgZGVmIF9idWlsZGVy
c19mYWlsaW5nX2JlY2F1c2Vfb2Yoc2VsZiwgcmV2aXNpb25zKToKKyAgICAgICAgcmV2aXNpb25f
c2V0ID0gc2V0KHJldmlzaW9ucykKKyAgICAgICAgcmV0dXJuIFtmYWlsdXJlX2luZm9bJ2J1aWxk
ZXInXSBmb3IgZmFpbHVyZV9pbmZvIGluIHNlbGYuX2ZhaWx1cmVzCisgICAgICAgICAgICAgICAg
aWYgcmV2aXNpb25fc2V0LmludGVyc2VjdGlvbigKKyAgICAgICAgICAgICAgICAgICAgZmFpbHVy
ZV9pbmZvWydyZWdyZXNzaW9uX3dpbmRvdyddLnJldmlzaW9ucygpKV0KKworICAgICMgRklYTUU6
IFdlIHNob3VsZCByZS1wcm9jZXNzIG9sZCBmYWlsdXJlcyBhZnRlciBzb21lIHRpbWUgZGVsYXku
CisgICAgIyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzY1ODEKKyAg
ICBkZWYgZmlsdGVyX291dF9vbGRfZmFpbHVyZXMoc2VsZiwgaXNfb2xkX2ZhaWx1cmUpOgorICAg
ICAgICBvbGRfZmFpbHVyZXMgPSBzZWxmLl9vbGRfZmFpbHVyZXMoaXNfb2xkX2ZhaWx1cmUpCisg
ICAgICAgIG9sZF9mYWlsaW5nX2J1aWxkZXJfbmFtZXMgPSBzZXQoW2J1aWxkZXIubmFtZSgpCisg
ICAgICAgICAgICBmb3IgYnVpbGRlciBpbiBzZWxmLl9idWlsZGVyc19mYWlsaW5nX2JlY2F1c2Vf
b2Yob2xkX2ZhaWx1cmVzKV0pCisKKyAgICAgICAgIyBXZSBmaWx0ZXIgb3V0IGFsbCB0aGUgZmFp
bGluZyBidWlsZGVycyB0aGF0IGNvdWxkIGhhdmUgYmVlbiBjYXVzZWQKKyAgICAgICAgIyBieSBv
bGRfZmFpbHVyZXMuICBXZSBjb3VsZCBtaXNzIHNvbWUgbmV3IGZhaWx1cmVzIHRoaXMgd2F5LCBi
dXQKKyAgICAgICAgIyBlbXBlcmljYWxseSwgdGhpcyByZWR1Y2VzIHRoZSBhbW91bnQgb2Ygc3Bh
bSB3ZSBnZW5lcmF0ZS4KKyAgICAgICAgZmFpbHVyZXMgPSBzZWxmLl9mYWlsdXJlcworICAgICAg
ICBzZWxmLl9mYWlsdXJlcyA9IFtmYWlsdXJlX2luZm8gZm9yIGZhaWx1cmVfaW5mbyBpbiBmYWls
dXJlcworICAgICAgICAgICAgaWYgZmFpbHVyZV9pbmZvWydidWlsZGVyJ10ubmFtZSgpIG5vdCBp
biBvbGRfZmFpbGluZ19idWlsZGVyX25hbWVzXQorICAgICAgICBzZWxmLl9jYWNoZSA9IHt9Cklu
ZGV4OiBXZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvZmFpbHVyZW1hcF91
bml0dGVzdC5weQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2Nv
bW1vbi9uZXQvZmFpbHVyZW1hcF91bml0dGVzdC5weQkocmV2aXNpb24gMCkKKysrIFdlYktpdFRv
b2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC9mYWlsdXJlbWFwX3VuaXR0ZXN0LnB5CShy
ZXZpc2lvbiAwKQpAQCAtMCwwICsxLDc3IEBACisjIENvcHlyaWdodCAoYykgMjAxMCBHb29nbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFy
ZQorIyBtZXQ6CisjCisjICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgICAgICogUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorIyBjb3B5cmlnaHQg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyCisjIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUKKyMgZGlzdHJpYnV0aW9uLgorIyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9m
IEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisjIGNvbnRyaWJ1dG9ycyBtYXkgYmUg
dXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisjIHRoaXMg
c29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisjCisj
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBD
T05UUklCVVRPUlMKKyMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyMgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisjIEEgUEFSVElDVUxBUiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisj
IE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLAorIyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisjIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorIyBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkK
KyMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAorIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworaW1wb3J0IHVu
aXR0ZXN0CisKK2Zyb20gd2Via2l0cHkuY29tbW9uLm5ldC5idWlsZGJvdCBpbXBvcnQgQnVpbGQK
K2Zyb20gd2Via2l0cHkuY29tbW9uLm5ldC5mYWlsdXJlbWFwIGltcG9ydCAqCitmcm9tIHdlYmtp
dHB5LmNvbW1vbi5uZXQucmVncmVzc2lvbndpbmRvdyBpbXBvcnQgUmVncmVzc2lvbldpbmRvdwor
ZnJvbSB3ZWJraXRweS50b29sLm1vY2t0b29sIGltcG9ydCBNb2NrQnVpbGRlcgorCisKK2NsYXNz
IEZhaWx1cmVNYXBUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKKyAgICBidWlsZGVyMSA9IE1vY2tC
dWlsZGVyKCJCdWlsZGVyMSIpCisgICAgYnVpbGRlcjIgPSBNb2NrQnVpbGRlcigiQnVpbGRlcjIi
KQorCisgICAgYnVpbGQxYSA9IEJ1aWxkKGJ1aWxkZXIxLCBidWlsZF9udW1iZXI9MjIsIHJldmlz
aW9uPTEyMzMsIGlzX2dyZWVuPVRydWUpCisgICAgYnVpbGQxYiA9IEJ1aWxkKGJ1aWxkZXIxLCBi
dWlsZF9udW1iZXI9MjMsIHJldmlzaW9uPTEyMzQsIGlzX2dyZWVuPUZhbHNlKQorICAgIGJ1aWxk
MmEgPSBCdWlsZChidWlsZGVyMiwgYnVpbGRfbnVtYmVyPTg5LCByZXZpc2lvbj0xMjMzLCBpc19n
cmVlbj1UcnVlKQorICAgIGJ1aWxkMmIgPSBCdWlsZChidWlsZGVyMiwgYnVpbGRfbnVtYmVyPTkw
LCByZXZpc2lvbj0xMjM1LCBpc19ncmVlbj1GYWxzZSkKKworICAgIHJlZ3Jlc3Npb25fd2luZG93
MSA9IFJlZ3Jlc3Npb25XaW5kb3coYnVpbGQxYSwgYnVpbGQxYikKKyAgICByZWdyZXNzaW9uX3dp
bmRvdzIgPSBSZWdyZXNzaW9uV2luZG93KGJ1aWxkMmEsIGJ1aWxkMmIpCisKKyAgICBkZWYgX21h
a2VfZmFpbHVyZV9tYXAoc2VsZik6CisgICAgICAgIGZhaWx1cmVfbWFwID0gRmFpbHVyZU1hcCgp
CisgICAgICAgIGZhaWx1cmVfbWFwLmFkZF9yZWdyZXNzaW9uX3dpbmRvdyhzZWxmLmJ1aWxkZXIx
LCBzZWxmLnJlZ3Jlc3Npb25fd2luZG93MSkKKyAgICAgICAgZmFpbHVyZV9tYXAuYWRkX3JlZ3Jl
c3Npb25fd2luZG93KHNlbGYuYnVpbGRlcjIsIHNlbGYucmVncmVzc2lvbl93aW5kb3cyKQorICAg
ICAgICByZXR1cm4gZmFpbHVyZV9tYXAKKworICAgIGRlZiB0ZXN0X2ZhaWxpbmdfcmV2aXNpb25z
KHNlbGYpOgorICAgICAgICBmYWlsdXJlX21hcCA9IHNlbGYuX21ha2VfZmFpbHVyZV9tYXAoKQor
ICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhmYWlsdXJlX21hcC5mYWlsaW5nX3JldmlzaW9ucygp
LCBbMTIzNCwgMTIzNV0pCisKKyAgICBkZWYgdGVzdF9uZXdfZmFpbHVyZXMoc2VsZik6CisgICAg
ICAgIGZhaWx1cmVfbWFwID0gc2VsZi5fbWFrZV9mYWlsdXJlX21hcCgpCisgICAgICAgIGZhaWx1
cmVfbWFwLmZpbHRlcl9vdXRfb2xkX2ZhaWx1cmVzKGxhbWJkYSByZXZpc2lvbjogRmFsc2UpCisg
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKGZhaWx1cmVfbWFwLnJldmlzaW9uc19jYXVzaW5nX2Zh
aWx1cmVzKCksIHsKKyAgICAgICAgICAgIDEyMzQ6IFtzZWxmLmJ1aWxkZXIxLCBzZWxmLmJ1aWxk
ZXIyXSwKKyAgICAgICAgICAgIDEyMzU6IFtzZWxmLmJ1aWxkZXIyXSwKKyAgICAgICAgfSkKKwor
ICAgIGRlZiB0ZXN0X25ld19mYWlsdXJlc193aXRoX29sZF9yZXZpc2lvbnMoc2VsZik6CisgICAg
ICAgIGZhaWx1cmVfbWFwID0gc2VsZi5fbWFrZV9mYWlsdXJlX21hcCgpCisgICAgICAgIGZhaWx1
cmVfbWFwLmZpbHRlcl9vdXRfb2xkX2ZhaWx1cmVzKGxhbWJkYSByZXZpc2lvbjogcmV2aXNpb24g
PT0gMTIzNCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoZmFpbHVyZV9tYXAucmV2aXNpb25z
X2NhdXNpbmdfZmFpbHVyZXMoKSwge30pCisKKyAgICBkZWYgdGVzdF9uZXdfZmFpbHVyZXNfd2l0
aF9tb3JlX29sZF9yZXZpc2lvbnMoc2VsZik6CisgICAgICAgIGZhaWx1cmVfbWFwID0gc2VsZi5f
bWFrZV9mYWlsdXJlX21hcCgpCisgICAgICAgIGZhaWx1cmVfbWFwLmZpbHRlcl9vdXRfb2xkX2Zh
aWx1cmVzKGxhbWJkYSByZXZpc2lvbjogcmV2aXNpb24gPT0gMTIzNSkKKyAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbHMoZmFpbHVyZV9tYXAucmV2aXNpb25zX2NhdXNpbmdfZmFpbHVyZXMoKSwgewor
ICAgICAgICAgICAgMTIzNDogW3NlbGYuYnVpbGRlcjFdLAorICAgICAgICB9KQpJbmRleDogV2Vi
S2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vbmV0L3JlZ3Jlc3Npb253aW5kb3cucHkK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vbmV0L3Jl
Z3Jlc3Npb253aW5kb3cucHkJKHJldmlzaW9uIDY4NzM2KQorKysgV2ViS2l0VG9vbHMvU2NyaXB0
cy93ZWJraXRweS9jb21tb24vbmV0L3JlZ3Jlc3Npb253aW5kb3cucHkJKHdvcmtpbmcgY29weSkK
QEAgLTMyLDYgKzMyLDcgQEAgY2xhc3MgUmVncmVzc2lvbldpbmRvdyhvYmplY3QpOgogICAgICAg
ICBzZWxmLl9idWlsZF9iZWZvcmVfZmFpbHVyZSA9IGJ1aWxkX2JlZm9yZV9mYWlsdXJlCiAgICAg
ICAgIHNlbGYuX2ZhaWxpbmdfYnVpbGQgPSBmYWlsaW5nX2J1aWxkCiAgICAgICAgIHNlbGYuX2Nv
bW1vbl9mYWlsdXJlcyA9IGNvbW1vbl9mYWlsdXJlcworICAgICAgICBzZWxmLl9yZXZpc2lvbnMg
PSBOb25lCiAKICAgICBkZWYgYnVpbGRfYmVmb3JlX2ZhaWx1cmUoc2VsZik6CiAgICAgICAgIHJl
dHVybiBzZWxmLl9idWlsZF9iZWZvcmVfZmFpbHVyZQpAQCAtNDMsNiArNDQsOSBAQCBjbGFzcyBS
ZWdyZXNzaW9uV2luZG93KG9iamVjdCk6CiAgICAgICAgIHJldHVybiBzZWxmLl9jb21tb25fZmFp
bHVyZXMKIAogICAgIGRlZiByZXZpc2lvbnMoc2VsZik6Ci0gICAgICAgIHJldmlzaW9ucyA9IHJh
bmdlKHNlbGYuX2ZhaWxpbmdfYnVpbGQucmV2aXNpb24oKSwgc2VsZi5fYnVpbGRfYmVmb3JlX2Zh
aWx1cmUucmV2aXNpb24oKSwgLTEpCi0gICAgICAgIHJldmlzaW9ucy5yZXZlcnNlKCkKLSAgICAg
ICAgcmV0dXJuIHJldmlzaW9ucworICAgICAgICAjIENhY2hlIHJldmlzaW9ucyB0byBhdm9pZCBl
eGNlc3NpdmUgYWxsb2NhdGlvbnMuCisgICAgICAgIGlmIHNlbGYuX3JldmlzaW9uczoKKyAgICAg
ICAgICAgIHJldHVybiBzZWxmLl9yZXZpc2lvbnMKKyAgICAgICAgc2VsZi5fcmV2aXNpb25zID0g
cmFuZ2Uoc2VsZi5fZmFpbGluZ19idWlsZC5yZXZpc2lvbigpLCBzZWxmLl9idWlsZF9iZWZvcmVf
ZmFpbHVyZS5yZXZpc2lvbigpLCAtMSkKKyAgICAgICAgc2VsZi5fcmV2aXNpb25zLnJldmVyc2Uo
KQorICAgICAgICByZXR1cm4gc2VsZi5fcmV2aXNpb25zCkluZGV4OiBXZWJLaXRUb29scy9TY3Jp
cHRzL3dlYmtpdHB5L3Rvb2wvbW9ja3Rvb2wucHkKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0VG9vbHMv
U2NyaXB0cy93ZWJraXRweS90b29sL21vY2t0b29sLnB5CShyZXZpc2lvbiA2ODczNikKKysrIFdl
YktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9tb2NrdG9vbC5weQkod29ya2luZyBjb3B5
KQpAQCAtMzU0LDExICszNTQsMTcgQEAgY2xhc3MgTW9ja0ZhaWx1cmVNYXAoKToKICAgICBkZWYg
X19pbml0X18oc2VsZiwgYnVpbGRib3QpOgogICAgICAgICBzZWxmLl9idWlsZGJvdCA9IGJ1aWxk
Ym90CiAKKyAgICBkZWYgaXNfZW1wdHkoc2VsZik6CisgICAgICAgIHJldHVybiBGYWxzZQorCiAg
ICAgZGVmIHJldmlzaW9uc19jYXVzaW5nX2ZhaWx1cmVzKHNlbGYpOgogICAgICAgICByZXR1cm4g
ewogICAgICAgICAgICAgIjI5ODM3IjogW3NlbGYuX2J1aWxkYm90LmJ1aWxkZXJfd2l0aF9uYW1l
KCJCdWlsZGVyMSIpXSwKICAgICAgICAgfQogCisgICAgZGVmIGZpbHRlcl9vdXRfb2xkX2ZhaWx1
cmVzKHNlbGYsIGlzX29sZF9yZXZpc2lvbik6CisgICAgICAgIHBhc3MKKwogCiBjbGFzcyBNb2Nr
QnVpbGRCb3Qob2JqZWN0KToKICAgICBidWlsZGJvdF9ob3N0ID0gImR1bW15X2J1aWxkYm90X2hv
c3QiCkluZGV4OiBXZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvcXVl
cmllcy5weQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wv
Y29tbWFuZHMvcXVlcmllcy5weQkocmV2aXNpb24gNjg3MzYpCisrKyBXZWJLaXRUb29scy9TY3Jp
cHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvcXVlcmllcy5weQkod29ya2luZyBjb3B5KQpAQCAt
MTYyLDE1ICsxNjIsNiBAQCBjbGFzcyBXaGF0QnJva2UoQWJzdHJhY3REZWNsYXJhdGl2ZUNvbW1h
CiAgICAgICAgICAgICBwcmludCAiQWxsIGJ1aWxkZXJzIGFyZSBwYXNzaW5nISIKIAogCi1jbGFz
cyBXaG9Ccm9rZUl0KEFic3RyYWN0RGVjbGFyYXRpdmVDb21tYW5kKToKLSAgICBuYW1lID0gIndo
by1icm9rZS1pdCIKLSAgICBoZWxwX3RleHQgPSAiUHJpbnQgYSBsaXN0IG9mIHJldmlzaW9ucyBj
YXVzaW5nIGZhaWx1cmVzIG9uICVzIiAlIEJ1aWxkQm90LmRlZmF1bHRfaG9zdAotCi0gICAgZGVm
IGV4ZWN1dGUoc2VsZiwgb3B0aW9ucywgYXJncywgdG9vbCk6Ci0gICAgICAgIGZvciByZXZpc2lv
biwgYnVpbGRlcnMgaW4gc2VsZi5fdG9vbC5idWlsZGJvdC5mYWlsdXJlX21hcChGYWxzZSkucmV2
aXNpb25zX2NhdXNpbmdfZmFpbHVyZXMoKS5pdGVtcygpOgotICAgICAgICAgICAgcHJpbnQgInIl
cyBhcHBlYXJzIHRvIGhhdmUgYnJva2VuICVzIiAlIChyZXZpc2lvbiwgW2J1aWxkZXIubmFtZSgp
IGZvciBidWlsZGVyIGluIGJ1aWxkZXJzXSkKLQotCiBjbGFzcyBSZXN1bHRzRm9yKEFic3RyYWN0
RGVjbGFyYXRpdmVDb21tYW5kKToKICAgICBuYW1lID0gInJlc3VsdHMtZm9yIgogICAgIGhlbHBf
dGV4dCA9ICJQcmludCBhIGxpc3Qgb2YgZmFpbHVyZXMgZm9yIHRoZSBwYXNzZWQgcmV2aXNpb24g
ZnJvbSBib3RzIG9uICVzIiAlIEJ1aWxkQm90LmRlZmF1bHRfaG9zdApJbmRleDogV2ViS2l0VG9v
bHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL3NoZXJpZmZib3QucHkKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL3NoZXJpZmZi
b3QucHkJKHJldmlzaW9uIDY4NzM2KQorKysgV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS90
b29sL2NvbW1hbmRzL3NoZXJpZmZib3QucHkJKHdvcmtpbmcgY29weSkKQEAgLTU0LDU3ICs1NCwz
MCBAQCBjbGFzcyBTaGVyaWZmQm90KEFic3RyYWN0UXVldWUsIFN0ZXBTZXF1CiAgICAgICAgIHNl
bGYuX2lyY19ib3QgPSBTaGVyaWZmSVJDQm90KHNlbGYuX3Rvb2wsIHNlbGYuX3NoZXJpZmYpCiAg
ICAgICAgIHNlbGYuX3Rvb2wuZW5zdXJlX2lyY19jb25uZWN0ZWQoc2VsZi5faXJjX2JvdC5pcmNf
ZGVsZWdhdGUoKSkKIAotICAgIGRlZiB3b3JrX2l0ZW1fbG9nX3BhdGgoc2VsZiwgbmV3X2ZhaWx1
cmVzKToKLSAgICAgICAgcmV0dXJuIG9zLnBhdGguam9pbigiJXMtbG9ncyIgJSBzZWxmLm5hbWUs
ICIlcy5sb2ciICUgbmV3X2ZhaWx1cmVzLmtleXMoKVswXSkKKyAgICBkZWYgd29ya19pdGVtX2xv
Z19wYXRoKHNlbGYsIGZhaWx1cmVfbWFwKToKKyAgICAgICAgcmV0dXJuIE5vbmUKIAotICAgIGRl
ZiBfbmV3X2ZhaWx1cmVzKHNlbGYsIHJldmlzaW9uc19jYXVzaW5nX2ZhaWx1cmVzLCBvbGRfZmFp
bGluZ19zdm5fcmV2aXNpb25zKToKLSAgICAgICAgIyBXZSBpZ25vcmUgZmFpbHVyZXMgdGhhdCBt
aWdodCBoYXZlIGJlZW4gY2F1c2VkIGJ5IHN2bl9yZXZpc2lvbnMgdGhhdAotICAgICAgICAjIHdl
J3ZlIGFscmVhZHkgY29tcGxhaW5lZCBhYm91dC4gIFRoaXMgaXMgY29uc2VydmF0aXZlIGluIHRo
ZSBzZW5zZQotICAgICAgICAjIHRoYXQgd2UgbWlnaHQgYmUgaWdub3Jpbmcgc29tZSBuZXcgZmFp
bHVyZXMsIGJ1dCBvdXIgZXhwZXJpZW5jZSBoYXMKLSAgICAgICAgIyBiZWVuIHRoYXQgc2tpcHBp
bmcgdGhpcyBjaGVjayBjYXVzZXMgYSBsb3Qgb2Ygc3BhbSBmb3IgYnVpbGRlcnMgdGhhdAotICAg
ICAgICAjIHRha2UgYSBsb25nIHRpbWUgdG8gY3ljbGUuCi0gICAgICAgIG9sZF9mYWlsaW5nX2J1
aWxkZXJfbmFtZXMgPSBbXQotICAgICAgICBmb3Igc3ZuX3JldmlzaW9uIGluIG9sZF9mYWlsaW5n
X3N2bl9yZXZpc2lvbnM6Ci0gICAgICAgICAgICBvbGRfZmFpbGluZ19idWlsZGVyX25hbWVzLmV4
dGVuZCgKLSAgICAgICAgICAgICAgICBbYnVpbGRlci5uYW1lKCkgZm9yIGJ1aWxkZXIgaW4gcmV2
aXNpb25zX2NhdXNpbmdfZmFpbHVyZXNbc3ZuX3JldmlzaW9uXV0pCi0KLSAgICAgICAgbmV3X2Zh
aWx1cmVzID0ge30KLSAgICAgICAgZm9yIHN2bl9yZXZpc2lvbiwgYnVpbGRlcnMgaW4gcmV2aXNp
b25zX2NhdXNpbmdfZmFpbHVyZXMuaXRlbXMoKToKLSAgICAgICAgICAgIGlmIHN2bl9yZXZpc2lv
biBpbiBvbGRfZmFpbGluZ19zdm5fcmV2aXNpb25zOgotICAgICAgICAgICAgICAgICMgRklYTUU6
IFdlIHNob3VsZCByZS1wcm9jZXNzIHRoZSB3b3JrIGl0ZW0gYWZ0ZXIgc29tZSB0aW1lIGRlbGF5
LgotICAgICAgICAgICAgICAgICMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTM2NTgxCi0gICAgICAgICAgICAgICAgY29udGludWUKLSAgICAgICAgICAgIG5ld19idWls
ZGVycyA9IFtidWlsZGVyIGZvciBidWlsZGVyIGluIGJ1aWxkZXJzCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgaWYgYnVpbGRlci5uYW1lKCkgbm90IGluIG9sZF9mYWlsaW5nX2J1aWxkZXJf
bmFtZXNdCi0gICAgICAgICAgICBpZiBuZXdfYnVpbGRlcnM6Ci0gICAgICAgICAgICAgICAgbmV3
X2ZhaWx1cmVzW3N2bl9yZXZpc2lvbl0gPSBuZXdfYnVpbGRlcnMKLQotICAgICAgICByZXR1cm4g
bmV3X2ZhaWx1cmVzCisgICAgZGVmIF9pc19vbGRfZmFpbHVyZShzZWxmKToKKyAgICAgICAgcmV0
dXJuIHNlbGYuX3Rvb2wuc3RhdHVzX3NlcnZlci5zdm5fcmV2aXNpb24oc3ZuX3JldmlzaW9uKQog
CiAgICAgZGVmIG5leHRfd29ya19pdGVtKHNlbGYpOgogICAgICAgICBzZWxmLl9pcmNfYm90LnBy
b2Nlc3NfcGVuZGluZ19tZXNzYWdlcygpCiAgICAgICAgIHNlbGYuX3VwZGF0ZSgpCiAKLSAgICAg
ICAgIyBXZSBkbyBvbmUgcmVhZCBmcm9tIGJ1aWxkYm90IHRvIGVuc3VyZSBhIGNvbnNpc3RlbnQg
dmlldy4KLSAgICAgICAgcmV2aXNpb25zX2NhdXNpbmdfZmFpbHVyZXMgPSBzZWxmLl90b29sLmJ1
aWxkYm90LmZhaWx1cmVfbWFwKCkucmV2aXNpb25zX2NhdXNpbmdfZmFpbHVyZXMoKQotCi0gICAg
ICAgICMgU2ltaWxhcmx5LCB3ZSByZWFkIG9uY2UgZnJvbSBvdXIgdGhlIHN0YXR1c19zZXJ2ZXIu
Ci0gICAgICAgIG9sZF9mYWlsaW5nX3N2bl9yZXZpc2lvbnMgPSBbXQotICAgICAgICBmb3Igc3Zu
X3JldmlzaW9uIGluIHJldmlzaW9uc19jYXVzaW5nX2ZhaWx1cmVzLmtleXMoKToKLSAgICAgICAg
ICAgIGlmIHNlbGYuX3Rvb2wuc3RhdHVzX3NlcnZlci5zdm5fcmV2aXNpb24oc3ZuX3JldmlzaW9u
KToKLSAgICAgICAgICAgICAgICBvbGRfZmFpbGluZ19zdm5fcmV2aXNpb25zLmFwcGVuZChzdm5f
cmV2aXNpb24pCi0KLSAgICAgICAgbmV3X2ZhaWx1cmVzID0gc2VsZi5fbmV3X2ZhaWx1cmVzKHJl
dmlzaW9uc19jYXVzaW5nX2ZhaWx1cmVzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgb2xkX2ZhaWxpbmdfc3ZuX3JldmlzaW9ucykKKyAgICAgICAgIyBGSVhNRTog
V2UgbmVlZCB0byBmaWd1cmUgb3V0IGhvdyB0byBwcm92b2tlX2ZsYWt5X2J1aWxkZXJzLgogCi0g
ICAgICAgIHNlbGYuX3NoZXJpZmYucHJvdm9rZV9mbGFreV9idWlsZGVycyhyZXZpc2lvbnNfY2F1
c2luZ19mYWlsdXJlcykKLSAgICAgICAgcmV0dXJuIG5ld19mYWlsdXJlcworICAgICAgICBmYWls
dXJlX21hcCA9IHNlbGYuX3Rvb2wuYnVpbGRib3QuZmFpbHVyZV9tYXAoKQorICAgICAgICBmYWls
dXJlX21hcC5maWx0ZXJfb3V0X29sZF9mYWlsdXJlcyhzZWxmLl9pc19vbGRfZmFpbHVyZSkKKyAg
ICAgICAgaWYgZmFpbHVyZV9tYXAuaXNfZW1wdHkoKToKKyAgICAgICAgICAgIHJldHVybiBOb25l
CisgICAgICAgIHJldHVybiBmYWlsdXJlX21hcAogCi0gICAgZGVmIHNob3VsZF9wcm9jZWVkX3dp
dGhfd29ya19pdGVtKHNlbGYsIG5ld19mYWlsdXJlcyk6CisgICAgZGVmIHNob3VsZF9wcm9jZWVk
X3dpdGhfd29ya19pdGVtKHNlbGYsIGZhaWx1cmVfbWFwKToKICAgICAgICAgIyBDdXJyZW50bHks
IHdlIGRvbid0IGhhdmUgYW55IHJlYXNvbnMgbm90IHRvIHByb2NlZWQgd2l0aCB3b3JrIGl0ZW1z
LgogICAgICAgICByZXR1cm4gVHJ1ZQogCi0gICAgZGVmIHByb2Nlc3Nfd29ya19pdGVtKHNlbGYs
IG5ld19mYWlsdXJlcyk6CisgICAgZGVmIHByb2Nlc3Nfd29ya19pdGVtKHNlbGYsIGZhaWx1cmVf
bWFwKToKKyAgICAgICAgbmV3X2ZhaWx1cmVzID0gZmFpbHVyZV9tYXAucmV2aXNpb25zX2NhdXNp
bmdfZmFpbHVyZXMoKQogICAgICAgICBibGFtZV9saXN0ID0gbmV3X2ZhaWx1cmVzLmtleXMoKQog
ICAgICAgICBmb3Igc3ZuX3JldmlzaW9uLCBidWlsZGVycyBpbiBuZXdfZmFpbHVyZXMuaXRlbXMo
KToKICAgICAgICAgICAgIHRyeToKQEAgLTEyNCw3ICs5Nyw3IEBAIGNsYXNzIFNoZXJpZmZCb3Qo
QWJzdHJhY3RRdWV1ZSwgU3RlcFNlcXUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBidWlsZGVyLm5hbWUoKSkKICAgICAgICAg
cmV0dXJuIFRydWUKIAotICAgIGRlZiBoYW5kbGVfdW5leHBlY3RlZF9lcnJvcihzZWxmLCBuZXdf
ZmFpbHVyZXMsIG1lc3NhZ2UpOgorICAgIGRlZiBoYW5kbGVfdW5leHBlY3RlZF9lcnJvcihzZWxm
LCBmYWlsdXJlX21hcCwgbWVzc2FnZSk6CiAgICAgICAgIGxvZyhtZXNzYWdlKQogCiAgICAgIyBT
dGVwU2VxdWVuY2VFcnJvckhhbmRsZXIgbWV0aG9kcwpJbmRleDogV2ViS2l0VG9vbHMvU2NyaXB0
cy93ZWJraXRweS90b29sL2NvbW1hbmRzL3NoZXJpZmZib3RfdW5pdHRlc3QucHkKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL3NoZXJpZmZi
b3RfdW5pdHRlc3QucHkJKHJldmlzaW9uIDY4NzM2KQorKysgV2ViS2l0VG9vbHMvU2NyaXB0cy93
ZWJraXRweS90b29sL2NvbW1hbmRzL3NoZXJpZmZib3RfdW5pdHRlc3QucHkJKHdvcmtpbmcgY29w
eSkKQEAgLTMxLDYgKzMxLDcgQEAgaW1wb3J0IG9zCiBmcm9tIHdlYmtpdHB5LnRvb2wuY29tbWFu
ZHMucXVldWVzdGVzdCBpbXBvcnQgUXVldWVzVGVzdAogZnJvbSB3ZWJraXRweS50b29sLmNvbW1h
bmRzLnNoZXJpZmZib3QgaW1wb3J0IFNoZXJpZmZCb3QKIGZyb20gd2Via2l0cHkudG9vbC5tb2Nr
dG9vbCBpbXBvcnQgTW9ja0J1aWxkZXIKK2Zyb20gd2Via2l0cHkudGhpcmRwYXJ0eS5tb2NrIGlt
cG9ydCBNb2NrCiAKIAogY2xhc3MgU2hlcmlmZkJvdFRlc3QoUXVldWVzVGVzdCk6CkBAIC0zOCw3
ICszOSw4IEBAIGNsYXNzIFNoZXJpZmZCb3RUZXN0KFF1ZXVlc1Rlc3QpOgogICAgIGJ1aWxkZXIy
ID0gTW9ja0J1aWxkZXIoIkJ1aWxkZXIyIikKIAogICAgIGRlZiB0ZXN0X3NoZXJpZmZfYm90KHNl
bGYpOgotICAgICAgICBtb2NrX3dvcmtfaXRlbSA9IHsKKyAgICAgICAgbW9ja193b3JrX2l0ZW0g
PSBNb2NrKCkKKyAgICAgICAgbW9ja193b3JrX2l0ZW0ucmV2aXNpb25zX2NhdXNpbmdfZmFpbHVy
ZXMgPSBsYW1iZGE6IHsKICAgICAgICAgICAgIDI5ODM3OiBbc2VsZi5idWlsZGVyMV0sCiAgICAg
ICAgIH0KICAgICAgICAgZXhwZWN0ZWRfc3RkZXJyID0gewpAQCAtNDgsMjYgKzUwLDMgQEAgY2xh
c3MgU2hlcmlmZkJvdFRlc3QoUXVldWVzVGVzdCk6CiAgICAgICAgICAgICAiaGFuZGxlX3VuZXhw
ZWN0ZWRfZXJyb3IiOiAiTW9jayBlcnJvciBtZXNzYWdlXG4iCiAgICAgICAgIH0KICAgICAgICAg
c2VsZi5hc3NlcnRfcXVldWVfb3V0cHV0cyhTaGVyaWZmQm90KCksIHdvcmtfaXRlbT1tb2NrX3dv
cmtfaXRlbSwgZXhwZWN0ZWRfc3RkZXJyPWV4cGVjdGVkX3N0ZGVycikKLQotICAgIHJldmlzaW9u
c19jYXVzaW5nX2ZhaWx1cmVzID0gewotICAgICAgICAxMjM0OiBbYnVpbGRlcjFdLAotICAgICAg
ICAxMjM1OiBbYnVpbGRlcjEsIGJ1aWxkZXIyXSwKLSAgICB9Ci0KLSAgICBkZWYgdGVzdF9uZXdf
ZmFpbHVyZXMoc2VsZik6Ci0gICAgICAgIG9sZF9mYWlsaW5nX3N2bl9yZXZpc2lvbnMgPSBbXQot
ICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhTaGVyaWZmQm90KCkuX25ld19mYWlsdXJlcyhzZWxm
LnJldmlzaW9uc19jYXVzaW5nX2ZhaWx1cmVzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBvbGRfZmFpbGluZ19zdm5fcmV2aXNpb25zKSwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5yZXZpc2lvbnNfY2F1c2luZ19mYWlsdXJlcykK
LQotICAgIGRlZiB0ZXN0X25ld19mYWlsdXJlc193aXRoX29sZF9yZXZpc2lvbnMoc2VsZik6Ci0g
ICAgICAgIG9sZF9mYWlsaW5nX3N2bl9yZXZpc2lvbnMgPSBbMTIzNF0KLSAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbHMoU2hlcmlmZkJvdCgpLl9uZXdfZmFpbHVyZXMoc2VsZi5yZXZpc2lvbnNfY2F1
c2luZ19mYWlsdXJlcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgb2xkX2ZhaWxpbmdfc3ZuX3JldmlzaW9ucyksCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgIHsxMjM1OiBbYnVpbGRlcjJdfSkKLQotICAgIGRlZiB0ZXN0X25ld19mYWlsdXJl
c193aXRoX29sZF9yZXZpc2lvbnMoc2VsZik6Ci0gICAgICAgIG9sZF9mYWlsaW5nX3N2bl9yZXZp
c2lvbnMgPSBbMTIzNV0KLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoU2hlcmlmZkJvdCgpLl9u
ZXdfZmFpbHVyZXMoc2VsZi5yZXZpc2lvbnNfY2F1c2luZ19mYWlsdXJlcywKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2xkX2ZhaWxpbmdfc3Zu
X3JldmlzaW9ucyksCi0gICAgICAgICAgICAgICAgICAgICAgICAgIHt9KQo=
</data>
<flag name="review"
          id="58964"
          type_id="1"
          status="+"
          setter="eric"
    />
    <flag name="commit-queue"
          id="58966"
          type_id="3"
          status="-"
          setter="eric"
    />
          </attachment>
      

    </bug>

</bugzilla>