<?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>156852</bug_id>
          
          <creation_ts>2016-04-21 09:15:08 -0700</creation_ts>
          <short_desc>Element::idForStyleResolution() is a foot-gun</short_desc>
          <delta_ts>2016-04-21 16:28:36 -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>DOM</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=156806</see_also>
          <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="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>kling</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1185814</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-04-21 09:15:08 -0700</bug_when>
    <thetext>Element::idForStyleResolution() is a foot-gun. It requires the caller to check Element::hasID() first or it may end up crashing when dereferencing elementData(). See Bug 156806.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1185917</commentid>
    <comment_count>1</comment_count>
      <attachid>276953</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-04-21 13:48:47 -0700</bug_when>
    <thetext>Created attachment 276953
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1185924</commentid>
    <comment_count>2</comment_count>
      <attachid>276953</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2016-04-21 13:52:58 -0700</bug_when>
    <thetext>Comment on attachment 276953
Patch

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

&gt; Source/WebCore/css/ElementRuleCollector.cpp:158
&gt; +        collectMatchingRulesForList(matchRequest.ruleSet-&gt;idRules(id.impl()), matchRequest, ruleRange);

Seems that idRules should take a reference not a pointer, since we are checking for null before calling it..

&gt; Source/WebCore/css/SelectorChecker.cpp:658
&gt; +    if (selector.match() == CSSSelector::Id) {
&gt; +        auto&amp; id = element.idForStyleResolution();
&gt; +        return !id.isNull() &amp;&amp; id == selector.value();
&gt; +    }

Do we really need the isNull check here? Can selector.value() be null? I suggest proving it’s not needed and having the code be more streamlined without the isNull check.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1185982</commentid>
    <comment_count>3</comment_count>
      <attachid>276971</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-04-21 15:36:49 -0700</bug_when>
    <thetext>Created attachment 276971
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1186006</commentid>
    <comment_count>4</comment_count>
      <attachid>276971</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-04-21 16:28:29 -0700</bug_when>
    <thetext>Comment on attachment 276971
Patch

Clearing flags on attachment: 276971

Committed r199844: &lt;http://trac.webkit.org/changeset/199844&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1186007</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-04-21 16:28:36 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>276953</attachid>
            <date>2016-04-21 13:48:47 -0700</date>
            <delta_ts>2016-04-21 15:36:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-156852-20160421134909.patch</filename>
            <type>text/plain</type>
            <size>7960</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk5ODE4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2M2NGY0YmEzZDU2MzQx
MTc5Y2Q5NjcwNThiYzFmYWNjZGQ1MjQ1YS4uMGNmYWIyNDIyYWNhNDFhZGVhYmE3NTRjNzY1OWQz
ZjI5ZjkyMTFiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDE2LTA0LTIxICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgRWxlbWVudDo6aWRGb3JTdHls
ZVJlc29sdXRpb24oKSBpcyBhIGZvb3QtZ3VuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNTY4NTIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBFbGVtZW50OjppZEZvclN0eWxlUmVzb2x1dGlvbigpIGlzIGEg
Zm9vdC1ndW4uIEl0IHJlcXVpcmVzIHRoZSBjYWxsZXIgdG8gY2hlY2sKKyAgICAgICAgRWxlbWVu
dDo6aGFzSUQoKSBmaXJzdCBvciBpdCBtYXkgZW5kIHVwIGNyYXNoaW5nIHdoZW4gZGVyZWZlcmVu
Y2luZyBlbGVtZW50RGF0YSgpCisgICAgICAgIChlLmcuIHNlZSBCdWcgMTU2ODA2KS4KKworICAg
ICAgICBUaGlzIHBhdGNoIHVwZGF0ZXMgRWxlbWVudDo6aWRGb3JTdHlsZVJlc29sdXRpb24oKSB0
byByZXR1cm4gbnVsbEF0b20gaXMgdGhlCisgICAgICAgIEVsZW1lbnQgZG9lcyBub3QgaGF2ZSBh
biBJRC4gSSBkaWQgbm90IHNlZSBhIHBlcmZvcm1hbmNlIGltcGFjdCBvbiBTcGVlZG9tZXRlciwK
KyAgICAgICAgRHJvbWFlbyBET00gQ29yZSwgRHJvbWFlbyBDU1MgU2VsZWN0b3JzIGFuZCBvdXIg
bG9jYWwgcGVyZm9ybWFuY2VUZXN0cy8uCisKKyAgICAgICAgKiBjc3MvRWxlbWVudFJ1bGVDb2xs
ZWN0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudFJ1bGVDb2xsZWN0b3I6OmNvbGxl
Y3RNYXRjaGluZ1J1bGVzKToKKyAgICAgICAgKiBjc3MvU2VsZWN0b3JDaGVja2VyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlNlbGVjdG9yQ2hlY2tlcjo6Y2hlY2tPbmUpOgorICAgICAgICAqIGNz
cy9TZWxlY3RvckZpbHRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjb2xsZWN0RWxlbWVudElk
ZW50aWZpZXJIYXNoZXMpOgorICAgICAgICAqIGRvbS9FbGVtZW50Lmg6CisgICAgICAgIChXZWJD
b3JlOjpFbGVtZW50OjppZEZvclN0eWxlUmVzb2x1dGlvbik6CisgICAgICAgICogcmVuZGVyaW5n
L1JlbmRlckJsb2NrRmxvdy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpuZWVkc0FwcGxlTWFpbFBh
Z2luYXRpb25RdWlyayk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRyZWVBc1RleHQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6d3JpdGVSZW5kZXJSZWdpb25MaXN0KToKKyAgICAgICAgKiBz
dHlsZS9TdHlsZVNoYXJpbmdSZXNvbHZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZTo6
U2hhcmluZ1Jlc29sdmVyOjpjYW5TaGFyZVN0eWxlV2l0aEVsZW1lbnQpOgorCiAyMDE2LTA0LTIx
ICBEYXZlIEh5YXR0ICA8aHlhdHRAYXBwbGUuY29tPgogCiAgICAgICAgIERvbid0IGh5cGhlbmF0
ZSB0aGUgbGFzdCB3b3JkIGluIGEgcGFyYWdyYXBoIG9mIHRleHQuCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvRWxlbWVudFJ1bGVDb2xsZWN0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUv
Y3NzL0VsZW1lbnRSdWxlQ29sbGVjdG9yLmNwcAppbmRleCA1YmJhNTI1NjZlMGExNWVmNGY0OTFl
OTNkMGY3NDBlYTgyZWVjYjhmLi5iYThlMmQxODMyMTAwZjg0YjMzNTRhN2RhZjcxMjk5Njc5M2Fi
MDc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvRWxlbWVudFJ1bGVDb2xsZWN0b3Iu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9FbGVtZW50UnVsZUNvbGxlY3Rvci5jcHAKQEAg
LTE1Myw4ICsxNTMsOSBAQCB2b2lkIEVsZW1lbnRSdWxlQ29sbGVjdG9yOjpjb2xsZWN0TWF0Y2hp
bmdSdWxlcyhjb25zdCBNYXRjaFJlcXVlc3QmIG1hdGNoUmVxdWVzdAogCiAgICAgLy8gV2UgbmVl
ZCB0byBjb2xsZWN0IHRoZSBydWxlcyBmb3IgaWQsIGNsYXNzLCB0YWcsIGFuZCBldmVyeXRoaW5n
IGVsc2UgaW50byBhIGJ1ZmZlciBhbmQKICAgICAvLyB0aGVuIHNvcnQgdGhlIGJ1ZmZlci4KLSAg
ICBpZiAobV9lbGVtZW50Lmhhc0lEKCkpCi0gICAgICAgIGNvbGxlY3RNYXRjaGluZ1J1bGVzRm9y
TGlzdChtYXRjaFJlcXVlc3QucnVsZVNldC0+aWRSdWxlcyhtX2VsZW1lbnQuaWRGb3JTdHlsZVJl
c29sdXRpb24oKS5pbXBsKCkpLCBtYXRjaFJlcXVlc3QsIHJ1bGVSYW5nZSk7CisgICAgYXV0byYg
aWQgPSBtX2VsZW1lbnQuaWRGb3JTdHlsZVJlc29sdXRpb24oKTsKKyAgICBpZiAoIWlkLmlzTnVs
bCgpKQorICAgICAgICBjb2xsZWN0TWF0Y2hpbmdSdWxlc0Zvckxpc3QobWF0Y2hSZXF1ZXN0LnJ1
bGVTZXQtPmlkUnVsZXMoaWQuaW1wbCgpKSwgbWF0Y2hSZXF1ZXN0LCBydWxlUmFuZ2UpOwogICAg
IGlmIChtX2VsZW1lbnQuaGFzQ2xhc3MoKSkgewogICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsg
aSA8IG1fZWxlbWVudC5jbGFzc05hbWVzKCkuc2l6ZSgpOyArK2kpCiAgICAgICAgICAgICBjb2xs
ZWN0TWF0Y2hpbmdSdWxlc0Zvckxpc3QobWF0Y2hSZXF1ZXN0LnJ1bGVTZXQtPmNsYXNzUnVsZXMo
bV9lbGVtZW50LmNsYXNzTmFtZXMoKVtpXS5pbXBsKCkpLCBtYXRjaFJlcXVlc3QsIHJ1bGVSYW5n
ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU2VsZWN0b3JDaGVja2VyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy9TZWxlY3RvckNoZWNrZXIuY3BwCmluZGV4IGI2OTFjZTRlMGI2
NjVhYTdiNDMyM2U1ZGQzZDBjYjcyNmE5NGZhOGUuLjVmNmE1MGUzYzE0YjdlOGFjNDc3OGYyNGMw
MTA5ZjQyM2E5ZWZmYWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TZWxlY3RvckNo
ZWNrZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TZWxlY3RvckNoZWNrZXIuY3BwCkBA
IC02NTIsOCArNjUyLDEwIEBAIGJvb2wgU2VsZWN0b3JDaGVja2VyOjpjaGVja09uZShDaGVja2lu
Z0NvbnRleHQmIGNoZWNraW5nQ29udGV4dCwgY29uc3QgTG9jYWxDb250CiAgICAgaWYgKHNlbGVj
dG9yLm1hdGNoKCkgPT0gQ1NTU2VsZWN0b3I6OkNsYXNzKQogICAgICAgICByZXR1cm4gZWxlbWVu
dC5oYXNDbGFzcygpICYmIGVsZW1lbnQuY2xhc3NOYW1lcygpLmNvbnRhaW5zKHNlbGVjdG9yLnZh
bHVlKCkpOwogCi0gICAgaWYgKHNlbGVjdG9yLm1hdGNoKCkgPT0gQ1NTU2VsZWN0b3I6OklkKQot
ICAgICAgICByZXR1cm4gZWxlbWVudC5oYXNJRCgpICYmIGVsZW1lbnQuaWRGb3JTdHlsZVJlc29s
dXRpb24oKSA9PSBzZWxlY3Rvci52YWx1ZSgpOworICAgIGlmIChzZWxlY3Rvci5tYXRjaCgpID09
IENTU1NlbGVjdG9yOjpJZCkgeworICAgICAgICBhdXRvJiBpZCA9IGVsZW1lbnQuaWRGb3JTdHls
ZVJlc29sdXRpb24oKTsKKyAgICAgICAgcmV0dXJuICFpZC5pc051bGwoKSAmJiBpZCA9PSBzZWxl
Y3Rvci52YWx1ZSgpOworICAgIH0KIAogICAgIGlmIChzZWxlY3Rvci5pc0F0dHJpYnV0ZVNlbGVj
dG9yKCkpIHsKICAgICAgICAgaWYgKCFlbGVtZW50Lmhhc0F0dHJpYnV0ZXMoKSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TZWxlY3RvckZpbHRlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvU2VsZWN0b3JGaWx0ZXIuY3BwCmluZGV4IDJmMWEzMDA0ZmM4NzdmOWRjNjQ3ZGQ4OWYx
YTllNTc5ODM5MTk3ZDIuLmI5NzNjZWYwNTBkNDVmNmQ4OTlkNWUxODdlMGVjOGExZjYzY2YzOGMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TZWxlY3RvckZpbHRlci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvY3NzL1NlbGVjdG9yRmlsdGVyLmNwcApAQCAtNDMsOCArNDMsOSBAQCBz
dGF0aWMgaW5saW5lIHZvaWQgY29sbGVjdEVsZW1lbnRJZGVudGlmaWVySGFzaGVzKGNvbnN0IEVs
ZW1lbnQqIGVsZW1lbnQsIFZlY3RvcgogICAgIEF0b21pY1N0cmluZyB0YWdMb3dlcmNhc2VMb2Nh
bE5hbWUgPSBlbGVtZW50LT5sb2NhbE5hbWUoKS5jb252ZXJ0VG9BU0NJSUxvd2VyY2FzZSgpOwog
ICAgIGlkZW50aWZpZXJIYXNoZXMuYXBwZW5kKHRhZ0xvd2VyY2FzZUxvY2FsTmFtZS5pbXBsKCkt
PmV4aXN0aW5nSGFzaCgpICogVGFnTmFtZVNhbHQpOwogCi0gICAgaWYgKGVsZW1lbnQtPmhhc0lE
KCkpCi0gICAgICAgIGlkZW50aWZpZXJIYXNoZXMuYXBwZW5kKGVsZW1lbnQtPmlkRm9yU3R5bGVS
ZXNvbHV0aW9uKCkuaW1wbCgpLT5leGlzdGluZ0hhc2goKSAqIElkQXR0cmlidXRlU2FsdCk7Cisg
ICAgYXV0byYgaWQgPSBlbGVtZW50LT5pZEZvclN0eWxlUmVzb2x1dGlvbigpOworICAgIGlmICgh
aWQuaXNOdWxsKCkpCisgICAgICAgIGlkZW50aWZpZXJIYXNoZXMuYXBwZW5kKGlkLmltcGwoKS0+
ZXhpc3RpbmdIYXNoKCkgKiBJZEF0dHJpYnV0ZVNhbHQpOwogICAgIGNvbnN0IFN0eWxlZEVsZW1l
bnQqIHN0eWxlZEVsZW1lbnQgPSBlbGVtZW50LT5pc1N0eWxlZEVsZW1lbnQoKSA/IHN0YXRpY19j
YXN0PGNvbnN0IFN0eWxlZEVsZW1lbnQqPihlbGVtZW50KSA6IDA7CiAgICAgaWYgKHN0eWxlZEVs
ZW1lbnQgJiYgc3R5bGVkRWxlbWVudC0+aGFzQ2xhc3MoKSkgewogICAgICAgICBjb25zdCBTcGFj
ZVNwbGl0U3RyaW5nJiBjbGFzc05hbWVzID0gc3R5bGVkRWxlbWVudC0+Y2xhc3NOYW1lcygpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9FbGVtZW50LmgKaW5kZXggZTE2ZjdkZTg1MGI2YmE4ZWMxM2M4NDljZWY3ODIwY2IyNzdk
NDA5Ni4uYzQ3ZWE0NjA1MjFmYzhmOWY2YTg3MjlmNDI1NzFjNmY1ODYyNWFkYiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
RWxlbWVudC5oCkBAIC02NjQsOCArNjY0LDcgQEAgaW5saW5lIGJvb2wgRWxlbWVudDo6aGFzQXR0
cmlidXRlc1dpdGhvdXRVcGRhdGUoKSBjb25zdAogCiBpbmxpbmUgY29uc3QgQXRvbWljU3RyaW5n
JiBFbGVtZW50OjppZEZvclN0eWxlUmVzb2x1dGlvbigpIGNvbnN0CiB7Ci0gICAgQVNTRVJUKGhh
c0lEKCkpOwotICAgIHJldHVybiBlbGVtZW50RGF0YSgpLT5pZEZvclN0eWxlUmVzb2x1dGlvbigp
OworICAgIHJldHVybiBoYXNJRCgpID8gZWxlbWVudERhdGEoKS0+aWRGb3JTdHlsZVJlc29sdXRp
b24oKSA6IG51bGxBdG9tOwogfQogCiBpbmxpbmUgY29uc3QgQXRvbWljU3RyaW5nJiBFbGVtZW50
OjpnZXRJZEF0dHJpYnV0ZSgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyQmxvY2tGbG93LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJCbG9ja0Zsb3cuY3BwCmluZGV4IDY5NDIzODQwYTZjODM2ZmI3ODViMDc3ZTU5N2M1ZWQ5ZjA0
MTQ1ZWUuLjM4YTQxNDhmMTFiZGVhYjhmMTU4MTZmNWYxYzBmYzIxMjU2NThkNWMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cuY3BwCkBAIC0xNjQzLDcgKzE2
NDMsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgbmVlZHNBcHBsZU1haWxQYWdpbmF0aW9uUXVpcmso
Um9vdElubGluZUJveCYgbGluZUJveCkKICAgICBpZiAoIXJlbmRlcmVyLmRvY3VtZW50KCkuc2V0
dGluZ3MoKS0+YXBwbGVNYWlsUGFnaW5hdGlvblF1aXJrRW5hYmxlZCgpKQogICAgICAgICByZXR1
cm4gZmFsc2U7CiAKLSAgICBpZiAocmVuZGVyZXIuZWxlbWVudCgpICYmIHJlbmRlcmVyLmVsZW1l
bnQoKS0+aGFzSUQoKSAmJiByZW5kZXJlci5lbGVtZW50KCktPmlkRm9yU3R5bGVSZXNvbHV0aW9u
KCkgPT0gIm1lc3NhZ2VDb250ZW50Q29udGFpbmVyIikKKyAgICBpZiAocmVuZGVyZXIuZWxlbWVu
dCgpICYmIHJlbmRlcmVyLmVsZW1lbnQoKS0+aWRGb3JTdHlsZVJlc29sdXRpb24oKSA9PSAibWVz
c2FnZUNvbnRlbnRDb250YWluZXIiKQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAogICAgIHJldHVy
biBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUcmVl
QXNUZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUcmVlQXNUZXh0LmNw
cAppbmRleCAxNmQ3NDliNzZiYWZkZjA5MWMyZjg4NGUyMWUzNGE3MDllYTAyMjZiLi5jYWMwZjc3
NGI2MThhOTIyYjI2ZmJjZDE2MTA4Mzk0OTUyZjE4MjU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyVHJlZUFzVGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclRyZWVBc1RleHQuY3BwCkBAIC02OTAsOCArNjkwLDkgQEAgc3RhdGlj
IHZvaWQgd3JpdGVSZW5kZXJSZWdpb25MaXN0KGNvbnN0IFJlbmRlclJlZ2lvbkxpc3QmIGZsb3dU
aHJlYWRSZWdpb25MaXN0LAogCiAgICAgICAgICAgICB0cyA8PCAiIHsiIDw8IHRhZ05hbWUudG9T
dHJpbmcoKSA8PCAifSI7CiAKLSAgICAgICAgICAgIGlmIChnZW5lcmF0aW5nRWxlbWVudC0+aGFz
SUQoKSkKLSAgICAgICAgICAgICAgICB0cyA8PCAiICMiIDw8IGdlbmVyYXRpbmdFbGVtZW50LT5p
ZEZvclN0eWxlUmVzb2x1dGlvbigpOworICAgICAgICAgICAgYXV0byYgZ2VuZXJhdGluZ0VsZW1l
bnRJZCA9IGdlbmVyYXRpbmdFbGVtZW50LT5pZEZvclN0eWxlUmVzb2x1dGlvbigpOworICAgICAg
ICAgICAgaWYgKCFnZW5lcmF0aW5nRWxlbWVudElkLmlzTnVsbCgpKQorICAgICAgICAgICAgICAg
IHRzIDw8ICIgIyIgPDwgZ2VuZXJhdGluZ0VsZW1lbnRJZDsKIAogICAgICAgICAgICAgaWYgKGlz
UmVuZGVyTmFtZWRGbG93RnJhZ21lbnQpCiAgICAgICAgICAgICAgICAgdHMgPDwgIikiOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVTaGFyaW5nUmVzb2x2ZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVTaGFyaW5nUmVzb2x2ZXIuY3BwCmluZGV4IDkxN2Rj
MjQzOTk0MDVlODg5OTI5M2JmYmNjYTg2ZWJhNWJkOTJiYmYuLjYyMmVlNjJkMTFiOWJlMGExOWJh
MmE1ZGJlMDQ4YzE2NTU4OTFmYzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0
eWxlU2hhcmluZ1Jlc29sdmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVNo
YXJpbmdSZXNvbHZlci5jcHAKQEAgLTIzNyw3ICsyMzcsOCBAQCBib29sIFNoYXJpbmdSZXNvbHZl
cjo6Y2FuU2hhcmVTdHlsZVdpdGhFbGVtZW50KGNvbnN0IENvbnRleHQmIGNvbnRleHQsIGNvbnN0
IFN0eQogICAgIGlmIChjYW5kaWRhdGVFbGVtZW50LmFmZmVjdHNOZXh0U2libGluZ0VsZW1lbnRT
dHlsZSgpIHx8IGNhbmRpZGF0ZUVsZW1lbnQuc3R5bGVJc0FmZmVjdGVkQnlQcmV2aW91c1NpYmxp
bmcoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgaWYgKGNhbmRpZGF0ZUVsZW1lbnQu
aGFzSUQoKSAmJiBtX3J1bGVTZXRzLmZlYXR1cmVzKCkuaWRzSW5SdWxlcy5jb250YWlucyhjYW5k
aWRhdGVFbGVtZW50LmlkRm9yU3R5bGVSZXNvbHV0aW9uKCkuaW1wbCgpKSkKKyAgICBhdXRvJiBj
YW5kaWRhdGVFbGVtZW50SWQgPSBjYW5kaWRhdGVFbGVtZW50LmlkRm9yU3R5bGVSZXNvbHV0aW9u
KCk7CisgICAgaWYgKCFjYW5kaWRhdGVFbGVtZW50SWQuaXNOdWxsKCkgJiYgbV9ydWxlU2V0cy5m
ZWF0dXJlcygpLmlkc0luUnVsZXMuY29udGFpbnMoY2FuZGlkYXRlRWxlbWVudElkLmltcGwoKSkp
CiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIGJvb2wgaXNDb250cm9sID0gaXM8SFRNTEZv
cm1Db250cm9sRWxlbWVudD4oY2FuZGlkYXRlRWxlbWVudCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>276971</attachid>
            <date>2016-04-21 15:36:49 -0700</date>
            <delta_ts>2016-04-21 16:28:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-156852-20160421153710.patch</filename>
            <type>text/plain</type>
            <size>9433</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk5ODE4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2M2NGY0YmEzZDU2MzQx
MTc5Y2Q5NjcwNThiYzFmYWNjZGQ1MjQ1YS4uN2ViNWJjZjJkMzQxZjVhMjMzYTVhZmRmYjhjMjFh
ZTJlZmZjYTYwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDE2LTA0LTIxICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgRWxlbWVudDo6aWRGb3JTdHls
ZVJlc29sdXRpb24oKSBpcyBhIGZvb3QtZ3VuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNTY4NTIKKworICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBB
ZGxlci4KKworICAgICAgICBFbGVtZW50OjppZEZvclN0eWxlUmVzb2x1dGlvbigpIGlzIGEgZm9v
dC1ndW4uIEl0IHJlcXVpcmVzIHRoZSBjYWxsZXIgdG8gY2hlY2sKKyAgICAgICAgRWxlbWVudDo6
aGFzSUQoKSBmaXJzdCBvciBpdCBtYXkgZW5kIHVwIGNyYXNoaW5nIHdoZW4gZGVyZWZlcmVuY2lu
ZyBlbGVtZW50RGF0YSgpCisgICAgICAgIChlLmcuIHNlZSBCdWcgMTU2ODA2KS4KKworICAgICAg
ICBUaGlzIHBhdGNoIHVwZGF0ZXMgRWxlbWVudDo6aWRGb3JTdHlsZVJlc29sdXRpb24oKSB0byBy
ZXR1cm4gbnVsbEF0b20gaXMgdGhlCisgICAgICAgIEVsZW1lbnQgZG9lcyBub3QgaGF2ZSBhbiBJ
RC4gSSBkaWQgbm90IHNlZSBhIHBlcmZvcm1hbmNlIGltcGFjdCBvbiBTcGVlZG9tZXRlciwKKyAg
ICAgICAgRHJvbWFlbyBET00gQ29yZSwgRHJvbWFlbyBDU1MgU2VsZWN0b3JzIGFuZCBvdXIgbG9j
YWwgcGVyZm9ybWFuY2VUZXN0cy8uCisKKyAgICAgICAgKiBjc3MvRWxlbWVudFJ1bGVDb2xsZWN0
b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudFJ1bGVDb2xsZWN0b3I6OmNvbGxlY3RN
YXRjaGluZ1J1bGVzKToKKyAgICAgICAgKiBjc3MvU2VsZWN0b3JDaGVja2VyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlNlbGVjdG9yQ2hlY2tlcjo6Y2hlY2tPbmUpOgorICAgICAgICAqIGNzcy9T
ZWxlY3RvckZpbHRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjb2xsZWN0RWxlbWVudElkZW50
aWZpZXJIYXNoZXMpOgorICAgICAgICAqIGRvbS9FbGVtZW50Lmg6CisgICAgICAgIChXZWJDb3Jl
OjpFbGVtZW50OjppZEZvclN0eWxlUmVzb2x1dGlvbik6CisgICAgICAgICogcmVuZGVyaW5nL1Jl
bmRlckJsb2NrRmxvdy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpuZWVkc0FwcGxlTWFpbFBhZ2lu
YXRpb25RdWlyayk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRyZWVBc1RleHQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6d3JpdGVSZW5kZXJSZWdpb25MaXN0KToKKyAgICAgICAgKiBzdHls
ZS9TdHlsZVNoYXJpbmdSZXNvbHZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZTo6U2hh
cmluZ1Jlc29sdmVyOjpjYW5TaGFyZVN0eWxlV2l0aEVsZW1lbnQpOgorCiAyMDE2LTA0LTIxICBE
YXZlIEh5YXR0ICA8aHlhdHRAYXBwbGUuY29tPgogCiAgICAgICAgIERvbid0IGh5cGhlbmF0ZSB0
aGUgbGFzdCB3b3JkIGluIGEgcGFyYWdyYXBoIG9mIHRleHQuCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvRWxlbWVudFJ1bGVDb2xsZWN0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvY3Nz
L0VsZW1lbnRSdWxlQ29sbGVjdG9yLmNwcAppbmRleCA1YmJhNTI1NjZlMGExNWVmNGY0OTFlOTNk
MGY3NDBlYTgyZWVjYjhmLi40OGU4ZTAwN2JiMWY2YTk1ZTg4MGMzMjEyYTEyNjA0YjQ2Yjc3Mjlk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvRWxlbWVudFJ1bGVDb2xsZWN0b3IuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9FbGVtZW50UnVsZUNvbGxlY3Rvci5jcHAKQEAgLTE1
Myw4ICsxNTMsOSBAQCB2b2lkIEVsZW1lbnRSdWxlQ29sbGVjdG9yOjpjb2xsZWN0TWF0Y2hpbmdS
dWxlcyhjb25zdCBNYXRjaFJlcXVlc3QmIG1hdGNoUmVxdWVzdAogCiAgICAgLy8gV2UgbmVlZCB0
byBjb2xsZWN0IHRoZSBydWxlcyBmb3IgaWQsIGNsYXNzLCB0YWcsIGFuZCBldmVyeXRoaW5nIGVs
c2UgaW50byBhIGJ1ZmZlciBhbmQKICAgICAvLyB0aGVuIHNvcnQgdGhlIGJ1ZmZlci4KLSAgICBp
ZiAobV9lbGVtZW50Lmhhc0lEKCkpCi0gICAgICAgIGNvbGxlY3RNYXRjaGluZ1J1bGVzRm9yTGlz
dChtYXRjaFJlcXVlc3QucnVsZVNldC0+aWRSdWxlcyhtX2VsZW1lbnQuaWRGb3JTdHlsZVJlc29s
dXRpb24oKS5pbXBsKCkpLCBtYXRjaFJlcXVlc3QsIHJ1bGVSYW5nZSk7CisgICAgYXV0byYgaWQg
PSBtX2VsZW1lbnQuaWRGb3JTdHlsZVJlc29sdXRpb24oKTsKKyAgICBpZiAoIWlkLmlzTnVsbCgp
KQorICAgICAgICBjb2xsZWN0TWF0Y2hpbmdSdWxlc0Zvckxpc3QobWF0Y2hSZXF1ZXN0LnJ1bGVT
ZXQtPmlkUnVsZXMoKmlkLmltcGwoKSksIG1hdGNoUmVxdWVzdCwgcnVsZVJhbmdlKTsKICAgICBp
ZiAobV9lbGVtZW50Lmhhc0NsYXNzKCkpIHsKICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkg
PCBtX2VsZW1lbnQuY2xhc3NOYW1lcygpLnNpemUoKTsgKytpKQogICAgICAgICAgICAgY29sbGVj
dE1hdGNoaW5nUnVsZXNGb3JMaXN0KG1hdGNoUmVxdWVzdC5ydWxlU2V0LT5jbGFzc1J1bGVzKG1f
ZWxlbWVudC5jbGFzc05hbWVzKClbaV0uaW1wbCgpKSwgbWF0Y2hSZXF1ZXN0LCBydWxlUmFuZ2Up
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1J1bGVTZXQuaCBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9SdWxlU2V0LmgKaW5kZXggMjNjNjNkYzNlNTI3ZTBiOTRhMThkZmZhZjFiODBlYTE3
ZjgxMzc0Yy4uMDdkODEyOGVmN2JkY2Q4NDU0OWVmZDkwYWRkZGQzYjA4Nzg5NDc2NCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1J1bGVTZXQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvUnVsZVNldC5oCkBAIC0xNzQsNyArMTc0LDcgQEAgcHVibGljOgogCiAgICAgY29uc3QgUnVs
ZUZlYXR1cmVTZXQmIGZlYXR1cmVzKCkgY29uc3QgeyByZXR1cm4gbV9mZWF0dXJlczsgfQogCi0g
ICAgY29uc3QgUnVsZURhdGFWZWN0b3IqIGlkUnVsZXMoQXRvbWljU3RyaW5nSW1wbCoga2V5KSBj
b25zdCB7IHJldHVybiBtX2lkUnVsZXMuZ2V0KGtleSk7IH0KKyAgICBjb25zdCBSdWxlRGF0YVZl
Y3RvciogaWRSdWxlcyhBdG9taWNTdHJpbmdJbXBsJiBrZXkpIGNvbnN0IHsgcmV0dXJuIG1faWRS
dWxlcy5nZXQoJmtleSk7IH0KICAgICBjb25zdCBSdWxlRGF0YVZlY3RvciogY2xhc3NSdWxlcyhB
dG9taWNTdHJpbmdJbXBsKiBrZXkpIGNvbnN0IHsgcmV0dXJuIG1fY2xhc3NSdWxlcy5nZXQoa2V5
KTsgfQogICAgIGNvbnN0IFJ1bGVEYXRhVmVjdG9yKiB0YWdSdWxlcyhBdG9taWNTdHJpbmdJbXBs
KiBrZXksIGJvb2wgaXNIVE1MTmFtZSkgY29uc3Q7CiAgICAgY29uc3QgUnVsZURhdGFWZWN0b3Iq
IHNoYWRvd1BzZXVkb0VsZW1lbnRSdWxlcyhBdG9taWNTdHJpbmdJbXBsKiBrZXkpIGNvbnN0IHsg
cmV0dXJuIG1fc2hhZG93UHNldWRvRWxlbWVudFJ1bGVzLmdldChrZXkpOyB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvU2VsZWN0b3JDaGVja2VyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9TZWxlY3RvckNoZWNrZXIuY3BwCmluZGV4IGI2OTFjZTRlMGI2NjVhYTdiNDMyM2U1ZGQz
ZDBjYjcyNmE5NGZhOGUuLjgyODVlZTY4MTMzYTEzNWQyMGMzYmQ4NTkwNWNiZGNmMjI2Nzg0N2Yg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TZWxlY3RvckNoZWNrZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy9TZWxlY3RvckNoZWNrZXIuY3BwCkBAIC02NTIsOCArNjUyLDEw
IEBAIGJvb2wgU2VsZWN0b3JDaGVja2VyOjpjaGVja09uZShDaGVja2luZ0NvbnRleHQmIGNoZWNr
aW5nQ29udGV4dCwgY29uc3QgTG9jYWxDb250CiAgICAgaWYgKHNlbGVjdG9yLm1hdGNoKCkgPT0g
Q1NTU2VsZWN0b3I6OkNsYXNzKQogICAgICAgICByZXR1cm4gZWxlbWVudC5oYXNDbGFzcygpICYm
IGVsZW1lbnQuY2xhc3NOYW1lcygpLmNvbnRhaW5zKHNlbGVjdG9yLnZhbHVlKCkpOwogCi0gICAg
aWYgKHNlbGVjdG9yLm1hdGNoKCkgPT0gQ1NTU2VsZWN0b3I6OklkKQotICAgICAgICByZXR1cm4g
ZWxlbWVudC5oYXNJRCgpICYmIGVsZW1lbnQuaWRGb3JTdHlsZVJlc29sdXRpb24oKSA9PSBzZWxl
Y3Rvci52YWx1ZSgpOworICAgIGlmIChzZWxlY3Rvci5tYXRjaCgpID09IENTU1NlbGVjdG9yOjpJ
ZCkgeworICAgICAgICBBU1NFUlQoIXNlbGVjdG9yLnZhbHVlKCkuaXNOdWxsKCkpOworICAgICAg
ICByZXR1cm4gZWxlbWVudC5pZEZvclN0eWxlUmVzb2x1dGlvbigpID09IHNlbGVjdG9yLnZhbHVl
KCk7CisgICAgfQogCiAgICAgaWYgKHNlbGVjdG9yLmlzQXR0cmlidXRlU2VsZWN0b3IoKSkgewog
ICAgICAgICBpZiAoIWVsZW1lbnQuaGFzQXR0cmlidXRlcygpKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvY3NzL1NlbGVjdG9yRmlsdGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TZWxl
Y3RvckZpbHRlci5jcHAKaW5kZXggMmYxYTMwMDRmYzg3N2Y5ZGM2NDdkZDg5ZjFhOWU1Nzk4Mzkx
OTdkMi4uYjk3M2NlZjA1MGQ0NWY2ZDg5OWQ1ZTE4N2UwZWM4YTFmNjNjZjM4YyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvY3NzL1NlbGVjdG9yRmlsdGVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvU2VsZWN0b3JGaWx0ZXIuY3BwCkBAIC00Myw4ICs0Myw5IEBAIHN0YXRpYyBpbmxp
bmUgdm9pZCBjb2xsZWN0RWxlbWVudElkZW50aWZpZXJIYXNoZXMoY29uc3QgRWxlbWVudCogZWxl
bWVudCwgVmVjdG9yCiAgICAgQXRvbWljU3RyaW5nIHRhZ0xvd2VyY2FzZUxvY2FsTmFtZSA9IGVs
ZW1lbnQtPmxvY2FsTmFtZSgpLmNvbnZlcnRUb0FTQ0lJTG93ZXJjYXNlKCk7CiAgICAgaWRlbnRp
Zmllckhhc2hlcy5hcHBlbmQodGFnTG93ZXJjYXNlTG9jYWxOYW1lLmltcGwoKS0+ZXhpc3RpbmdI
YXNoKCkgKiBUYWdOYW1lU2FsdCk7CiAKLSAgICBpZiAoZWxlbWVudC0+aGFzSUQoKSkKLSAgICAg
ICAgaWRlbnRpZmllckhhc2hlcy5hcHBlbmQoZWxlbWVudC0+aWRGb3JTdHlsZVJlc29sdXRpb24o
KS5pbXBsKCktPmV4aXN0aW5nSGFzaCgpICogSWRBdHRyaWJ1dGVTYWx0KTsKKyAgICBhdXRvJiBp
ZCA9IGVsZW1lbnQtPmlkRm9yU3R5bGVSZXNvbHV0aW9uKCk7CisgICAgaWYgKCFpZC5pc051bGwo
KSkKKyAgICAgICAgaWRlbnRpZmllckhhc2hlcy5hcHBlbmQoaWQuaW1wbCgpLT5leGlzdGluZ0hh
c2goKSAqIElkQXR0cmlidXRlU2FsdCk7CiAgICAgY29uc3QgU3R5bGVkRWxlbWVudCogc3R5bGVk
RWxlbWVudCA9IGVsZW1lbnQtPmlzU3R5bGVkRWxlbWVudCgpID8gc3RhdGljX2Nhc3Q8Y29uc3Qg
U3R5bGVkRWxlbWVudCo+KGVsZW1lbnQpIDogMDsKICAgICBpZiAoc3R5bGVkRWxlbWVudCAmJiBz
dHlsZWRFbGVtZW50LT5oYXNDbGFzcygpKSB7CiAgICAgICAgIGNvbnN0IFNwYWNlU3BsaXRTdHJp
bmcmIGNsYXNzTmFtZXMgPSBzdHlsZWRFbGVtZW50LT5jbGFzc05hbWVzKCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1l
bnQuaAppbmRleCBlMTZmN2RlODUwYjZiYThlYzEzYzg0OWNlZjc4MjBjYjI3N2Q0MDk2Li5jNDdl
YTQ2MDUyMWZjOGY5ZjZhODcyOWY0MjU3MWM2ZjU4NjI1YWRiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgK
QEAgLTY2NCw4ICs2NjQsNyBAQCBpbmxpbmUgYm9vbCBFbGVtZW50OjpoYXNBdHRyaWJ1dGVzV2l0
aG91dFVwZGF0ZSgpIGNvbnN0CiAKIGlubGluZSBjb25zdCBBdG9taWNTdHJpbmcmIEVsZW1lbnQ6
OmlkRm9yU3R5bGVSZXNvbHV0aW9uKCkgY29uc3QKIHsKLSAgICBBU1NFUlQoaGFzSUQoKSk7Ci0g
ICAgcmV0dXJuIGVsZW1lbnREYXRhKCktPmlkRm9yU3R5bGVSZXNvbHV0aW9uKCk7CisgICAgcmV0
dXJuIGhhc0lEKCkgPyBlbGVtZW50RGF0YSgpLT5pZEZvclN0eWxlUmVzb2x1dGlvbigpIDogbnVs
bEF0b207CiB9CiAKIGlubGluZSBjb25zdCBBdG9taWNTdHJpbmcmIEVsZW1lbnQ6OmdldElkQXR0
cmlidXRlKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJCbG9ja0Zsb3cuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxv
dy5jcHAKaW5kZXggNjk0MjM4NDBhNmM4MzZmYjc4NWIwNzdlNTk3YzVlZDlmMDQxNDVlZS4uMzhh
NDE0OGYxMWJkZWFiOGYxNTgxNmY1ZjFjMGZjMjEyNTY1OGQ1YyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5jcHAKQEAgLTE2NDMsNyArMTY0Myw3IEBAIHN0
YXRpYyBpbmxpbmUgYm9vbCBuZWVkc0FwcGxlTWFpbFBhZ2luYXRpb25RdWlyayhSb290SW5saW5l
Qm94JiBsaW5lQm94KQogICAgIGlmICghcmVuZGVyZXIuZG9jdW1lbnQoKS5zZXR0aW5ncygpLT5h
cHBsZU1haWxQYWdpbmF0aW9uUXVpcmtFbmFibGVkKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsK
IAotICAgIGlmIChyZW5kZXJlci5lbGVtZW50KCkgJiYgcmVuZGVyZXIuZWxlbWVudCgpLT5oYXNJ
RCgpICYmIHJlbmRlcmVyLmVsZW1lbnQoKS0+aWRGb3JTdHlsZVJlc29sdXRpb24oKSA9PSAibWVz
c2FnZUNvbnRlbnRDb250YWluZXIiKQorICAgIGlmIChyZW5kZXJlci5lbGVtZW50KCkgJiYgcmVu
ZGVyZXIuZWxlbWVudCgpLT5pZEZvclN0eWxlUmVzb2x1dGlvbigpID09ICJtZXNzYWdlQ29udGVu
dENvbnRhaW5lciIpCiAgICAgICAgIHJldHVybiB0cnVlOwogCiAgICAgcmV0dXJuIGZhbHNlOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRyZWVBc1RleHQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRyZWVBc1RleHQuY3BwCmluZGV4IDE2
ZDc0OWI3NmJhZmRmMDkxYzJmODg0ZTIxZTM0YTcwOWVhMDIyNmIuLmNhYzBmNzc0YjYxOGE5MjJi
MjZmYmNkMTYxMDgzOTQ5NTJmMTgyNTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJUcmVlQXNUZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyVHJlZUFzVGV4dC5jcHAKQEAgLTY5MCw4ICs2OTAsOSBAQCBzdGF0aWMgdm9pZCB3cml0
ZVJlbmRlclJlZ2lvbkxpc3QoY29uc3QgUmVuZGVyUmVnaW9uTGlzdCYgZmxvd1RocmVhZFJlZ2lv
bkxpc3QsCiAKICAgICAgICAgICAgIHRzIDw8ICIgeyIgPDwgdGFnTmFtZS50b1N0cmluZygpIDw8
ICJ9IjsKIAotICAgICAgICAgICAgaWYgKGdlbmVyYXRpbmdFbGVtZW50LT5oYXNJRCgpKQotICAg
ICAgICAgICAgICAgIHRzIDw8ICIgIyIgPDwgZ2VuZXJhdGluZ0VsZW1lbnQtPmlkRm9yU3R5bGVS
ZXNvbHV0aW9uKCk7CisgICAgICAgICAgICBhdXRvJiBnZW5lcmF0aW5nRWxlbWVudElkID0gZ2Vu
ZXJhdGluZ0VsZW1lbnQtPmlkRm9yU3R5bGVSZXNvbHV0aW9uKCk7CisgICAgICAgICAgICBpZiAo
IWdlbmVyYXRpbmdFbGVtZW50SWQuaXNOdWxsKCkpCisgICAgICAgICAgICAgICAgdHMgPDwgIiAj
IiA8PCBnZW5lcmF0aW5nRWxlbWVudElkOwogCiAgICAgICAgICAgICBpZiAoaXNSZW5kZXJOYW1l
ZEZsb3dGcmFnbWVudCkKICAgICAgICAgICAgICAgICB0cyA8PCAiKSI7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVNoYXJpbmdSZXNvbHZlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9zdHlsZS9TdHlsZVNoYXJpbmdSZXNvbHZlci5jcHAKaW5kZXggOTE3ZGMyNDM5OTQwNWU4
ODk5MjkzYmZiY2NhODZlYmE1YmQ5MmJiZi4uNjBiZGFjMjMxMmNmODA2MzgwNThkZTQwNjMxMGIz
MGU0ZDIwMDVkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVTaGFyaW5n
UmVzb2x2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlU2hhcmluZ1Jlc29s
dmVyLmNwcApAQCAtODgsNyArODgsOCBAQCBSZWZQdHI8UmVuZGVyU3R5bGU+IFNoYXJpbmdSZXNv
bHZlcjo6cmVzb2x2ZShjb25zdCBFbGVtZW50JiBzZWFyY2hFbGVtZW50LCBjb25zdAogICAgIGlm
IChlbGVtZW50LmlzU1ZHRWxlbWVudCgpICYmIGRvd25jYXN0PFNWR0VsZW1lbnQ+KGVsZW1lbnQp
LmFuaW1hdGVkU01JTFN0eWxlUHJvcGVydGllcygpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsK
ICAgICAvLyBJZHMgc3RvcCBzdHlsZSBzaGFyaW5nIGlmIHRoZXkgc2hvdyB1cCBpbiB0aGUgc3R5
bGVzaGVldHMuCi0gICAgaWYgKGVsZW1lbnQuaGFzSUQoKSAmJiBtX3J1bGVTZXRzLmZlYXR1cmVz
KCkuaWRzSW5SdWxlcy5jb250YWlucyhlbGVtZW50LmlkRm9yU3R5bGVSZXNvbHV0aW9uKCkuaW1w
bCgpKSkKKyAgICBhdXRvJiBpZCA9IGVsZW1lbnQuaWRGb3JTdHlsZVJlc29sdXRpb24oKTsKKyAg
ICBpZiAoIWlkLmlzTnVsbCgpICYmIG1fcnVsZVNldHMuZmVhdHVyZXMoKS5pZHNJblJ1bGVzLmNv
bnRhaW5zKGlkLmltcGwoKSkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIGlmIChwYXJl
bnRFbGVtZW50UHJldmVudHNTaGFyaW5nKHBhcmVudEVsZW1lbnQpKQogICAgICAgICByZXR1cm4g
bnVsbHB0cjsKQEAgLTIzNyw3ICsyMzgsOCBAQCBib29sIFNoYXJpbmdSZXNvbHZlcjo6Y2FuU2hh
cmVTdHlsZVdpdGhFbGVtZW50KGNvbnN0IENvbnRleHQmIGNvbnRleHQsIGNvbnN0IFN0eQogICAg
IGlmIChjYW5kaWRhdGVFbGVtZW50LmFmZmVjdHNOZXh0U2libGluZ0VsZW1lbnRTdHlsZSgpIHx8
IGNhbmRpZGF0ZUVsZW1lbnQuc3R5bGVJc0FmZmVjdGVkQnlQcmV2aW91c1NpYmxpbmcoKSkKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgaWYgKGNhbmRpZGF0ZUVsZW1lbnQuaGFzSUQoKSAm
JiBtX3J1bGVTZXRzLmZlYXR1cmVzKCkuaWRzSW5SdWxlcy5jb250YWlucyhjYW5kaWRhdGVFbGVt
ZW50LmlkRm9yU3R5bGVSZXNvbHV0aW9uKCkuaW1wbCgpKSkKKyAgICBhdXRvJiBjYW5kaWRhdGVF
bGVtZW50SWQgPSBjYW5kaWRhdGVFbGVtZW50LmlkRm9yU3R5bGVSZXNvbHV0aW9uKCk7CisgICAg
aWYgKCFjYW5kaWRhdGVFbGVtZW50SWQuaXNOdWxsKCkgJiYgbV9ydWxlU2V0cy5mZWF0dXJlcygp
Lmlkc0luUnVsZXMuY29udGFpbnMoY2FuZGlkYXRlRWxlbWVudElkLmltcGwoKSkpCiAgICAgICAg
IHJldHVybiBmYWxzZTsKIAogICAgIGJvb2wgaXNDb250cm9sID0gaXM8SFRNTEZvcm1Db250cm9s
RWxlbWVudD4oY2FuZGlkYXRlRWxlbWVudCk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>