<?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>74752</bug_id>
          
          <creation_ts>2011-12-16 14:38:32 -0800</creation_ts>
          <short_desc>Consolidate before-advice regarding attribute modification into a single method</short_desc>
          <delta_ts>2011-12-16 20:36:55 -0800</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>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Adam Klein">adamk</reporter>
          <assigned_to name="Adam Klein">adamk</assigned_to>
          <cc>rniwa</cc>
    
    <cc>sam</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>523041</commentid>
    <comment_count>0</comment_count>
    <who name="Adam Klein">adamk</who>
    <bug_when>2011-12-16 14:38:32 -0800</bug_when>
    <thetext>Consolidate before-advice regarding attribute modification into a single method</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>523056</commentid>
    <comment_count>1</comment_count>
      <attachid>119680</attachid>
    <who name="Adam Klein">adamk</who>
    <bug_when>2011-12-16 14:53:09 -0800</bug_when>
    <thetext>Created attachment 119680
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>523147</commentid>
    <comment_count>2</comment_count>
      <attachid>119680</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-12-16 16:23:30 -0800</bug_when>
    <thetext>Comment on attachment 119680
Patch

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

&gt; Source/WebCore/dom/Attr.cpp:182
&gt; +            valueBuilder.append(static_cast&lt;Text *&gt;(n)-&gt;data());

There should be no space between Text and *.

&gt; Source/WebCore/dom/Attr.cpp:185
&gt; +    AtomicString value = valueBuilder.toString();

We should probably call this variable newValue for clarity.

&gt; Source/WebCore/dom/NamedNodeMap.cpp:146
&gt; +    if (!attribute || !m_element) {

Can we have a test for this change?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>523152</commentid>
    <comment_count>3</comment_count>
      <attachid>119680</attachid>
    <who name="Adam Klein">adamk</who>
    <bug_when>2011-12-16 16:31:56 -0800</bug_when>
    <thetext>Comment on attachment 119680
Patch

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

&gt;&gt; Source/WebCore/dom/Attr.cpp:182
&gt;&gt; +            valueBuilder.append(static_cast&lt;Text *&gt;(n)-&gt;data());
&gt; 
&gt; There should be no space between Text and *.

Done.

&gt;&gt; Source/WebCore/dom/Attr.cpp:185
&gt;&gt; +    AtomicString value = valueBuilder.toString();
&gt; 
&gt; We should probably call this variable newValue for clarity.

Done.

&gt;&gt; Source/WebCore/dom/NamedNodeMap.cpp:146
&gt;&gt; +    if (!attribute || !m_element) {
&gt; 
&gt; Can we have a test for this change?

It&apos;s not possible to get a reference to a NamedNodeMap whose element is null from JavaScript, since the NamedNodeMap wrapper holds a (hidden) reference back to the element.  See NamedNodeMap::detachFromElement() for more discussion.

Adding this null check makes it clear why it&apos;s safe to call a method on m_element below, and is symmetrical with the check at the top of setNamedItem().  Would you rather I replace this with an ASSERT(m_element) instead?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>523154</commentid>
    <comment_count>4</comment_count>
      <attachid>119698</attachid>
    <who name="Adam Klein">adamk</who>
    <bug_when>2011-12-16 16:34:22 -0800</bug_when>
    <thetext>Created attachment 119698
Resolved conflicts with trunk</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>523156</commentid>
    <comment_count>5</comment_count>
      <attachid>119680</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-12-16 16:38:24 -0800</bug_when>
    <thetext>Comment on attachment 119680
Patch

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

&gt;&gt;&gt; Source/WebCore/dom/NamedNodeMap.cpp:146
&gt;&gt;&gt; +    if (!attribute || !m_element) {
&gt;&gt; 
&gt;&gt; Can we have a test for this change?
&gt; 
&gt; It&apos;s not possible to get a reference to a NamedNodeMap whose element is null from JavaScript, since the NamedNodeMap wrapper holds a (hidden) reference back to the element.  See NamedNodeMap::detachFromElement() for more discussion.
&gt; 
&gt; Adding this null check makes it clear why it&apos;s safe to call a method on m_element below, and is symmetrical with the check at the top of setNamedItem().  Would you rather I replace this with an ASSERT(m_element) instead?

I&apos;d rather see ASSERT(m_element).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>523157</commentid>
    <comment_count>6</comment_count>
      <attachid>119698</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-12-16 16:39:07 -0800</bug_when>
    <thetext>Comment on attachment 119698
Resolved conflicts with trunk

r=me provided the change in removeNamedItem is replaced by an assertion.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>523194</commentid>
    <comment_count>7</comment_count>
      <attachid>119709</attachid>
    <who name="Adam Klein">adamk</who>
    <bug_when>2011-12-16 18:05:32 -0800</bug_when>
    <thetext>Created attachment 119709
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>523230</commentid>
    <comment_count>8</comment_count>
      <attachid>119709</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-12-16 20:36:51 -0800</bug_when>
    <thetext>Comment on attachment 119709
Patch for landing

Clearing flags on attachment: 119709

Committed r103140: &lt;http://trac.webkit.org/changeset/103140&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>523231</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-12-16 20:36:55 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>119680</attachid>
            <date>2011-12-16 14:53:09 -0800</date>
            <delta_ts>2011-12-16 16:38:24 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-74752-20111216145308.patch</filename>
            <type>text/plain</type>
            <size>8620</size>
            <attacher name="Adam Klein">adamk</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAzMDg5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDMxYjU3OTNiMGQ1MzI1
MzNmNjA1YzkzOWZiYTRmNjk3ZmQwZjIyMy4uYzdkMzRmZDQwYzAwZTE0ZDg1MzdiYWEzM2FhNWFl
OWFkMzFjMTZmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDExLTEyLTE2ICBBZGFt
IEtsZWluICA8YWRhbWtAY2hyb21pdW0ub3JnPgorCisgICAgICAgIENvbnNvbGlkYXRlIGJlZm9y
ZS1hZHZpY2UgcmVnYXJkaW5nIGF0dHJpYnV0ZSBtb2RpZmljYXRpb24gaW50byBhIHNpbmdsZSBt
ZXRob2QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc0
NzUyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRk
cyBhIHdpbGxNb2RpZnlBdHRyaWJ1dGUgbWV0aG9kIHRvIEVsZW1lbnQsIG1lYW50IHRvIGJlIGNh
bGxlZAorICAgICAgICBiZWZvcmUgYW4gYXR0cmlidXRlIG9uIHRoYXQgRWxlbWVudCBpcyBhZGRl
ZC9yZW1vdmVkL2NoYW5nZWQuCisKKyAgICAgICAgUmVwbGFjZSBtb3N0IGNhbGxzIHRvIEVsZW1l
bnQ6OnVwZGF0ZUlkIGFuZCBhbGwgY2FsbHMgdG8KKyAgICAgICAgRWxlbWVudDo6ZW5xdWV1ZUF0
dHJpYnV0ZXNNdXRhdGlvblJlY29yZElmUmVxdWVzdGVkIHdpdGggY2FsbHMgdG8KKyAgICAgICAg
d2lsbE1vZGlmeUF0dHJpYnV0ZS4gTW9yZW92ZXIsIGVucXVldWVBdHRyaWJ1dGVzTXV0YXRpb24u
Li4gY2FuIG5vdworICAgICAgICBiZSBwcml2YXRlIHNpbmNlIGl0cyBvbmx5IGNhbGxlciBpcyB3
aWxsTW9kaWZ5QXR0cmlidXRlLgorCisgICAgICAgIFRoZSBvbmx5IHJlbWFpbmluZyBkaXJlY3Qg
Y2FsbHMgdG8gdXBkYXRlSWQgYXJlIGluIGNhc2VzIHRoZSBlbnRpcmUKKyAgICAgICAgTmFtZWRO
b2RlTWFwIGlzIGJlaW5nIHJlcGxhY2VkLiBUaGVzZSBhcmUgaW1wbGVtZW50YXRpb24gZGV0YWls
cyBvZgorICAgICAgICBXZWJDb3JlIHRoYXQgc2hvdWxkbid0IGJlIGV4cG9zZWQgdmlhIE11dGF0
aW9uT2JzZXJ2ZXJzLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cywgbm8gZXhwZWN0ZWQgY2hhbmdl
IGluIGJlaGF2aW9yLgorCisgICAgICAgICogZG9tL0F0dHIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6QXR0cjo6c2V0VmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6QXR0cjo6Y2hpbGRyZW5DaGFu
Z2VkKTogQmVzaWRlcyB0aGUgYWJvdmUgY2hhbmdlLCB1c2UgYQorICAgICAgICBTdHJpbmdCdWls
ZGVyIHRvIGJ1aWxkIHVwIHZhbHVlLCBhbmQgb25seSBkbyBTdHJpbmcgLT4gQXRvbWljU3RyaW5n
CisgICAgICAgIGNvbnZlcnNpb24gb25jZS4KKyAgICAgICAgKiBkb20vRWxlbWVudC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpFbGVtZW50OjpzZXRBdHRyaWJ1dGVJbnRlcm5hbCk6CisgICAgICAg
ICogZG9tL0VsZW1lbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OndpbGxNb2RpZnlB
dHRyaWJ1dGUpOgorICAgICAgICAqIGRvbS9OYW1lZE5vZGVNYXAuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6TmFtZWROb2RlTWFwOjpzZXROYW1lZEl0ZW0pOgorICAgICAgICAoV2ViQ29yZTo6TmFt
ZWROb2RlTWFwOjpyZW1vdmVOYW1lZEl0ZW0pOgorCiAyMDExLTEyLTE2ICBNYXJrIEhhaG5lbmJl
cmcgIDxtaGFobmVuYmVyZ0BhcHBsZS5jb20+CiAKICAgICAgICAgRGUtdmlydHVhbGl6ZSBkZXN0
cnVjdG9ycwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0F0dHIuY3BwIGIvU291cmNl
L1dlYkNvcmUvZG9tL0F0dHIuY3BwCmluZGV4IGRiNjllYjM0NjcwMjU0YmQxOWEzNzFlNzAyZTk5
ZWY0YjA0NjY5ZmEuLjg2M2M0ZDQ5NjQ2ODI0MmQ1ZjkwNDZkMzM2ODhhMDRlNWVkOTU1Y2UgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9BdHRyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vQXR0ci5jcHAKQEAgLTI5LDYgKzI5LDggQEAKICNpbmNsdWRlICJTY29wZWRFdmVudFF1
ZXVlLmgiCiAjaW5jbHVkZSAiVGV4dC5oIgogI2luY2x1ZGUgIlhNTE5TTmFtZXMuaCIKKyNpbmNs
dWRlIDx3dGYvdGV4dC9BdG9taWNTdHJpbmcuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdC
dWlsZGVyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtMTMwLDEzICsxMzIsOCBAQCB2
b2lkIEF0dHI6OnNldFZhbHVlKGNvbnN0IEF0b21pY1N0cmluZyYgdmFsdWUpCiAKIHZvaWQgQXR0
cjo6c2V0VmFsdWUoY29uc3QgQXRvbWljU3RyaW5nJiB2YWx1ZSwgRXhjZXB0aW9uQ29kZSYpCiB7
Ci0jaWYgRU5BQkxFKE1VVEFUSU9OX09CU0VSVkVSUykKICAgICBpZiAobV9lbGVtZW50KQotICAg
ICAgICBtX2VsZW1lbnQtPmVucXVldWVBdHRyaWJ1dGVzTXV0YXRpb25SZWNvcmRJZlJlcXVlc3Rl
ZChtX2F0dHJpYnV0ZS0+bmFtZSgpLCBtX2F0dHJpYnV0ZS0+dmFsdWUoKSk7Ci0jZW5kaWYKLQot
ICAgIGlmIChtX2VsZW1lbnQgJiYgbV9lbGVtZW50LT5pc0lkQXR0cmlidXRlTmFtZShtX2F0dHJp
YnV0ZS0+bmFtZSgpKSkKLSAgICAgICAgbV9lbGVtZW50LT51cGRhdGVJZChtX2VsZW1lbnQtPmdl
dElkQXR0cmlidXRlKCksIHZhbHVlKTsKKyAgICAgICAgbV9lbGVtZW50LT53aWxsTW9kaWZ5QXR0
cmlidXRlKG1fYXR0cmlidXRlLT5uYW1lKCksIG1fYXR0cmlidXRlLT52YWx1ZSgpLCB2YWx1ZSk7
CiAKICAgICBzZXRWYWx1ZSh2YWx1ZSk7CiAKQEAgLTE3MywyNyArMTcwLDIzIEBAIHZvaWQgQXR0
cjo6Y2hpbGRyZW5DaGFuZ2VkKGJvb2wgY2hhbmdlZEJ5UGFyc2VyLCBOb2RlKiBiZWZvcmVDaGFu
Z2UsIE5vZGUqIGFmdGVyCiAgICAgaWYgKG1faWdub3JlQ2hpbGRyZW5DaGFuZ2VkID4gMCkKICAg
ICAgICAgcmV0dXJuOwogCi0jaWYgRU5BQkxFKE1VVEFUSU9OX09CU0VSVkVSUykKLSAgICBpZiAo
bV9lbGVtZW50KQotICAgICAgICBtX2VsZW1lbnQtPmVucXVldWVBdHRyaWJ1dGVzTXV0YXRpb25S
ZWNvcmRJZlJlcXVlc3RlZChtX2F0dHJpYnV0ZS0+bmFtZSgpLCBtX2F0dHJpYnV0ZS0+dmFsdWUo
KSk7Ci0jZW5kaWYKLQogICAgIE5vZGU6OmNoaWxkcmVuQ2hhbmdlZChjaGFuZ2VkQnlQYXJzZXIs
IGJlZm9yZUNoYW5nZSwgYWZ0ZXJDaGFuZ2UsIGNoaWxkQ291bnREZWx0YSk7CiAKICAgICBpbnZh
bGlkYXRlTm9kZUxpc3RzQ2FjaGVBZnRlckF0dHJpYnV0ZUNoYW5nZWQoKTsKIAogICAgIC8vIEZJ
WE1FOiBXZSBzaG91bGQgaW5jbHVkZSBlbnRpdHkgcmVmZXJlbmNlcyBpbiB0aGUgdmFsdWUKLSAg
ICAKLSAgICBTdHJpbmcgdmFsID0gIiI7CisKKyAgICBTdHJpbmdCdWlsZGVyIHZhbHVlQnVpbGRl
cjsKICAgICBmb3IgKE5vZGUgKm4gPSBmaXJzdENoaWxkKCk7IG47IG4gPSBuLT5uZXh0U2libGlu
ZygpKSB7CiAgICAgICAgIGlmIChuLT5pc1RleHROb2RlKCkpCi0gICAgICAgICAgICB2YWwgKz0g
c3RhdGljX2Nhc3Q8VGV4dCAqPihuKS0+ZGF0YSgpOworICAgICAgICAgICAgdmFsdWVCdWlsZGVy
LmFwcGVuZChzdGF0aWNfY2FzdDxUZXh0ICo+KG4pLT5kYXRhKCkpOwogICAgIH0KIAotICAgIGlm
IChtX2VsZW1lbnQgJiYgbV9lbGVtZW50LT5pc0lkQXR0cmlidXRlTmFtZShtX2F0dHJpYnV0ZS0+
bmFtZSgpKSkKLSAgICAgICAgbV9lbGVtZW50LT51cGRhdGVJZChtX2F0dHJpYnV0ZS0+dmFsdWUo
KSwgdmFsKTsKKyAgICBBdG9taWNTdHJpbmcgdmFsdWUgPSB2YWx1ZUJ1aWxkZXIudG9TdHJpbmco
KTsKKyAgICBpZiAobV9lbGVtZW50KQorICAgICAgICBtX2VsZW1lbnQtPndpbGxNb2RpZnlBdHRy
aWJ1dGUobV9hdHRyaWJ1dGUtPm5hbWUoKSwgbV9hdHRyaWJ1dGUtPnZhbHVlKCksIHZhbHVlKTsK
IAotICAgIG1fYXR0cmlidXRlLT5zZXRWYWx1ZSh2YWwuaW1wbCgpKTsKKyAgICBtX2F0dHJpYnV0
ZS0+c2V0VmFsdWUodmFsdWUpOwogICAgIGlmIChtX2VsZW1lbnQpCiAgICAgICAgIG1fZWxlbWVu
dC0+YXR0cmlidXRlQ2hhbmdlZChtX2F0dHJpYnV0ZS5nZXQoKSk7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVu
dC5jcHAKaW5kZXggNTY1MTM0MDY4OGI4MzI0N2NhNjg1ZDI1YjkzZDQzNGUxZDJkMTM1OS4uMTI0
ZjQ1OTBhZjFiNTk2NGRhZmU3NDcxNjM1OTI5NDkxMjY3YjRkMyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50
LmNwcApAQCAtNjU1LDE0ICs2NTUsOSBAQCBpbmxpbmUgdm9pZCBFbGVtZW50OjpzZXRBdHRyaWJ1
dGVJbnRlcm5hbChBdHRyaWJ1dGUqIG9sZCwgY29uc3QgUXVhbGlmaWVkTmFtZSYgbgogICAgICAg
ICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxNb2RpZnlET01BdHRyKGRvY3VtZW50KCks
IHRoaXMpOwogI2VuZGlmCiAKLSNpZiBFTkFCTEUoTVVUQVRJT05fT0JTRVJWRVJTKQotICAgIGVu
cXVldWVBdHRyaWJ1dGVzTXV0YXRpb25SZWNvcmRJZlJlcXVlc3RlZChuYW1lLCBvbGQgPyBvbGQt
PnZhbHVlKCkgOiBudWxsQXRvbSk7Ci0jZW5kaWYKLQogICAgIGRvY3VtZW50KCktPmluY0RPTVRy
ZWVWZXJzaW9uKCk7CiAKLSAgICBpZiAoaXNJZEF0dHJpYnV0ZU5hbWUobmFtZSkpCi0gICAgICAg
IHVwZGF0ZUlkKG9sZCA/IG9sZC0+dmFsdWUoKSA6IG51bGxBdG9tLCB2YWx1ZSk7CisgICAgd2ls
bE1vZGlmeUF0dHJpYnV0ZShuYW1lLCBvbGQgPyBvbGQtPnZhbHVlKCkgOiBudWxsQXRvbSwgdmFs
dWUpOwogCiAgICAgaWYgKG9sZCAmJiB2YWx1ZS5pc051bGwoKSkKICAgICAgICAgbV9hdHRyaWJ1
dGVNYXAtPnJlbW92ZUF0dHJpYnV0ZShuYW1lKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9FbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oCmluZGV4IDFkMTcy
OGJmYjEwOWNiOGVkNDk4NDM4YWJlZGVmZTg5MTM2MTA3NTAuLjNiOGZhMTk0NWEyNmU1NmYwOGY0
Yzg3ZDY4NWY3NmU2ZWQ0NzlhOGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVt
ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaApAQCAtMjY2LDYgKzI2Niw3
IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIFN0cmluZyB0aXRsZSgpIGNvbnN0OwogCiAgICAgdm9p
ZCB1cGRhdGVJZChjb25zdCBBdG9taWNTdHJpbmcmIG9sZElkLCBjb25zdCBBdG9taWNTdHJpbmcm
IG5ld0lkKTsKKyAgICB2b2lkIHdpbGxNb2RpZnlBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFt
ZSYsIGNvbnN0IEF0b21pY1N0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21pY1N0cmluZyYgbmV3
VmFsdWUpOwogCiAgICAgTGF5b3V0U2l6ZSBtaW5pbXVtU2l6ZUZvclJlc2l6aW5nKCkgY29uc3Q7
CiAgICAgdm9pZCBzZXRNaW5pbXVtU2l6ZUZvclJlc2l6aW5nKGNvbnN0IExheW91dFNpemUmKTsK
QEAgLTM2NCwxMCArMzY1LDYgQEAgcHVibGljOgogICAgIAogICAgIFBhc3NSZWZQdHI8UmVuZGVy
U3R5bGU+IHN0eWxlRm9yUmVuZGVyZXIoKTsKIAotI2lmIEVOQUJMRShNVVRBVElPTl9PQlNFUlZF
UlMpCi0gICAgdm9pZCBlbnF1ZXVlQXR0cmlidXRlc011dGF0aW9uUmVjb3JkSWZSZXF1ZXN0ZWQo
Y29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21pY1N0cmluZyYgb2xkVmFsdWUpOwotI2Vu
ZGlmCi0KIHByb3RlY3RlZDoKICAgICBFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05h
bWUsIERvY3VtZW50KiBkb2N1bWVudCwgQ29uc3RydWN0aW9uVHlwZSB0eXBlKQogICAgICAgICA6
IENvbnRhaW5lck5vZGUoZG9jdW1lbnQsIHR5cGUpCkBAIC00MzYsNiArNDMzLDEwIEBAIHByaXZh
dGU6CiAKICAgICBTcGVsbGNoZWNrQXR0cmlidXRlU3RhdGUgc3BlbGxjaGVja0F0dHJpYnV0ZVN0
YXRlKCkgY29uc3Q7CiAKKyNpZiBFTkFCTEUoTVVUQVRJT05fT0JTRVJWRVJTKQorICAgIHZvaWQg
ZW5xdWV1ZUF0dHJpYnV0ZXNNdXRhdGlvblJlY29yZElmUmVxdWVzdGVkKGNvbnN0IFF1YWxpZmll
ZE5hbWUmLCBjb25zdCBBdG9taWNTdHJpbmcmIG9sZFZhbHVlKTsKKyNlbmRpZgorCiBwcml2YXRl
OgogICAgIG11dGFibGUgUmVmUHRyPE5hbWVkTm9kZU1hcD4gbV9hdHRyaWJ1dGVNYXA7CiB9OwpA
QCAtNTExLDYgKzUxMiwxOCBAQCBpbmxpbmUgdm9pZCBFbGVtZW50Ojp1cGRhdGVJZChjb25zdCBB
dG9taWNTdHJpbmcmIG9sZElkLCBjb25zdCBBdG9taWNTdHJpbmcmIG5ldwogICAgICAgICBzY29w
ZS0+YWRkRWxlbWVudEJ5SWQobmV3SWQsIHRoaXMpOwogfQogCitpbmxpbmUgdm9pZCBFbGVtZW50
Ojp3aWxsTW9kaWZ5QXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0
b21pY1N0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21pY1N0cmluZyYgbmV3VmFsdWUpCit7Cisg
ICAgaWYgKGlzSWRBdHRyaWJ1dGVOYW1lKG5hbWUpKQorICAgICAgICB1cGRhdGVJZChvbGRWYWx1
ZSwgbmV3VmFsdWUpOworCisgICAgLy8gRklYTUU6IFNob3VsZCBwcm9iYWJseSBjYWxsIEluc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbE1vZGlmeURPTUF0dHIgaGVyZS4KKworI2lmIEVOQUJM
RShNVVRBVElPTl9PQlNFUlZFUlMpCisgICAgZW5xdWV1ZUF0dHJpYnV0ZXNNdXRhdGlvblJlY29y
ZElmUmVxdWVzdGVkKG5hbWUsIG9sZFZhbHVlKTsKKyNlbmRpZgorfQorCiBpbmxpbmUgYm9vbCBF
bGVtZW50OjpmYXN0SGFzQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUpIGNvbnN0
CiB7CiAgICAgQVNTRVJUKGZhc3RBdHRyaWJ1dGVMb29rdXBBbGxvd2VkKG5hbWUpKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9OYW1lZE5vZGVNYXAuY3BwIGIvU291cmNlL1dlYkNv
cmUvZG9tL05hbWVkTm9kZU1hcC5jcHAKaW5kZXggY2RjODA4OTA0MGJmYjViYzQwMTFkZmUzOGFh
MzNhOWEyYWE3MGM1Mi4uNDgwMzkxY2ZiMzQ3Mzg1ZmY3ZmI3YzkwYjI4N2U0NWE1Mzg1YTgzNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL05hbWVkTm9kZU1hcC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL05hbWVkTm9kZU1hcC5jcHAKQEAgLTExOSwxMiArMTE5LDcgQEAgUGFz
c1JlZlB0cjxOb2RlPiBOYW1lZE5vZGVNYXA6OnNldE5hbWVkSXRlbShOb2RlKiBub2RlLCBFeGNl
cHRpb25Db2RlJiBlYykKICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQogCi0jaWYgRU5BQkxFKE1V
VEFUSU9OX09CU0VSVkVSUykKLSAgICBtX2VsZW1lbnQtPmVucXVldWVBdHRyaWJ1dGVzTXV0YXRp
b25SZWNvcmRJZlJlcXVlc3RlZChhdHRyaWJ1dGUtPm5hbWUoKSwgb2xkQXR0cmlidXRlID8gb2xk
QXR0cmlidXRlLT52YWx1ZSgpIDogbnVsbEF0b20pOwotI2VuZGlmCi0KLSAgICBpZiAoYXR0ci0+
aXNJZCgpKQotICAgICAgICBtX2VsZW1lbnQtPnVwZGF0ZUlkKG9sZEF0dHJpYnV0ZSA/IG9sZEF0
dHJpYnV0ZS0+dmFsdWUoKSA6IG51bGxBdG9tLCBhdHRyaWJ1dGUtPnZhbHVlKCkpOworICAgIG1f
ZWxlbWVudC0+d2lsbE1vZGlmeUF0dHJpYnV0ZShhdHRyaWJ1dGUtPm5hbWUoKSwgb2xkQXR0cmli
dXRlID8gb2xkQXR0cmlidXRlLT52YWx1ZSgpIDogbnVsbEF0b20sIGF0dHJpYnV0ZS0+dmFsdWUo
KSk7CiAKICAgICAvLyAjIyMgc2xpZ2h0bHkgaW5lZmZpY2llbnQgLSByZXNpemVzIGF0dHJpYnV0
ZSBhcnJheSB0d2ljZS4KICAgICBSZWZQdHI8QXR0cj4gb2xkQXR0cjsKQEAgLTE0OCwyMCArMTQz
LDE0IEBAIFBhc3NSZWZQdHI8Tm9kZT4gTmFtZWROb2RlTWFwOjpzZXROYW1lZEl0ZW1OUyhOb2Rl
KiBub2RlLCBFeGNlcHRpb25Db2RlJiBlYykKIFBhc3NSZWZQdHI8Tm9kZT4gTmFtZWROb2RlTWFw
OjpyZW1vdmVOYW1lZEl0ZW0oY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgRXhjZXB0aW9uQ29k
ZSYgZWMpCiB7CiAgICAgQXR0cmlidXRlKiBhdHRyaWJ1dGUgPSBnZXRBdHRyaWJ1dGVJdGVtKG5h
bWUpOwotICAgIGlmICghYXR0cmlidXRlKSB7CisgICAgaWYgKCFhdHRyaWJ1dGUgfHwgIW1fZWxl
bWVudCkgewogICAgICAgICBlYyA9IE5PVF9GT1VORF9FUlI7CiAgICAgICAgIHJldHVybiAwOwog
ICAgIH0KIAotI2lmIEVOQUJMRShNVVRBVElPTl9PQlNFUlZFUlMpCi0gICAgaWYgKG1fZWxlbWVu
dCkKLSAgICAgICAgbV9lbGVtZW50LT5lbnF1ZXVlQXR0cmlidXRlc011dGF0aW9uUmVjb3JkSWZS
ZXF1ZXN0ZWQoYXR0cmlidXRlLT5uYW1lKCksIGF0dHJpYnV0ZS0+dmFsdWUoKSk7Ci0jZW5kaWYK
LQogICAgIFJlZlB0cjxBdHRyPiBhdHRyID0gYXR0cmlidXRlLT5jcmVhdGVBdHRySWZOZWVkZWQo
bV9lbGVtZW50KTsKIAotICAgIGlmIChhdHRyLT5pc0lkKCkpCi0gICAgICAgIG1fZWxlbWVudC0+
dXBkYXRlSWQoYXR0cmlidXRlLT52YWx1ZSgpLCBudWxsQXRvbSk7CisgICAgbV9lbGVtZW50LT53
aWxsTW9kaWZ5QXR0cmlidXRlKGF0dHJpYnV0ZS0+bmFtZSgpLCBhdHRyaWJ1dGUtPnZhbHVlKCks
IG51bGxBdG9tKTsKIAogICAgIHJlbW92ZUF0dHJpYnV0ZShuYW1lKTsKICAgICByZXR1cm4gYXR0
ci5yZWxlYXNlKCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>119698</attachid>
            <date>2011-12-16 16:34:22 -0800</date>
            <delta_ts>2011-12-16 18:05:29 -0800</delta_ts>
            <desc>Resolved conflicts with trunk</desc>
            <filename>bug-74752-20111216163421.patch</filename>
            <type>text/plain</type>
            <size>8664</size>
            <attacher name="Adam Klein">adamk</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAzMTI5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTlkOGY2YTdhZmMxY2Uw
MmMwNzI2ZTk2NTQzY2VmNTllZDBhNWE1Ni4uYzRhYmE4YTk1MmFhMTczMjgxNmQ2NmE1MTBlZDE3
NjQzZmM0NTNlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDExLTEyLTE2ICBBZGFt
IEtsZWluICA8YWRhbWtAY2hyb21pdW0ub3JnPgorCisgICAgICAgIENvbnNvbGlkYXRlIGJlZm9y
ZS1hZHZpY2UgcmVnYXJkaW5nIGF0dHJpYnV0ZSBtb2RpZmljYXRpb24gaW50byBhIHNpbmdsZSBt
ZXRob2QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc0
NzUyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRk
cyBhIHdpbGxNb2RpZnlBdHRyaWJ1dGUgbWV0aG9kIHRvIEVsZW1lbnQsIG1lYW50IHRvIGJlIGNh
bGxlZAorICAgICAgICBiZWZvcmUgYW4gYXR0cmlidXRlIG9uIHRoYXQgRWxlbWVudCBpcyBhZGRl
ZC9yZW1vdmVkL2NoYW5nZWQuCisKKyAgICAgICAgUmVwbGFjZSBtb3N0IGNhbGxzIHRvIEVsZW1l
bnQ6OnVwZGF0ZUlkIGFuZCBhbGwgY2FsbHMgdG8KKyAgICAgICAgRWxlbWVudDo6ZW5xdWV1ZUF0
dHJpYnV0ZXNNdXRhdGlvblJlY29yZElmUmVxdWVzdGVkIHdpdGggY2FsbHMgdG8KKyAgICAgICAg
d2lsbE1vZGlmeUF0dHJpYnV0ZS4gTW9yZW92ZXIsIGVucXVldWVBdHRyaWJ1dGVzTXV0YXRpb24u
Li4gY2FuIG5vdworICAgICAgICBiZSBwcml2YXRlIHNpbmNlIGl0cyBvbmx5IGNhbGxlciBpcyB3
aWxsTW9kaWZ5QXR0cmlidXRlLgorCisgICAgICAgIFRoZSBvbmx5IHJlbWFpbmluZyBkaXJlY3Qg
Y2FsbHMgdG8gdXBkYXRlSWQgYXJlIGluIGNhc2VzIHRoZSBlbnRpcmUKKyAgICAgICAgTmFtZWRO
b2RlTWFwIGlzIGJlaW5nIHJlcGxhY2VkLiBUaGVzZSBhcmUgaW1wbGVtZW50YXRpb24gZGV0YWls
cyBvZgorICAgICAgICBXZWJDb3JlIHRoYXQgc2hvdWxkbid0IGJlIGV4cG9zZWQgdmlhIE11dGF0
aW9uT2JzZXJ2ZXJzLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cywgbm8gZXhwZWN0ZWQgY2hhbmdl
IGluIGJlaGF2aW9yLgorCisgICAgICAgICogZG9tL0F0dHIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6QXR0cjo6c2V0VmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6QXR0cjo6Y2hpbGRyZW5DaGFu
Z2VkKTogQmVzaWRlcyB0aGUgYWJvdmUgY2hhbmdlLCB1c2UgYQorICAgICAgICBTdHJpbmdCdWls
ZGVyIHRvIGJ1aWxkIHVwIHZhbHVlLCBhbmQgb25seSBkbyBTdHJpbmcgLT4gQXRvbWljU3RyaW5n
CisgICAgICAgIGNvbnZlcnNpb24gb25jZS4KKyAgICAgICAgKiBkb20vRWxlbWVudC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpFbGVtZW50OjpzZXRBdHRyaWJ1dGVJbnRlcm5hbCk6CisgICAgICAg
ICogZG9tL0VsZW1lbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OndpbGxNb2RpZnlB
dHRyaWJ1dGUpOgorICAgICAgICAqIGRvbS9OYW1lZE5vZGVNYXAuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6TmFtZWROb2RlTWFwOjpzZXROYW1lZEl0ZW0pOgorICAgICAgICAoV2ViQ29yZTo6TmFt
ZWROb2RlTWFwOjpyZW1vdmVOYW1lZEl0ZW0pOgorCiAyMDExLTEyLTE2ICBFcmljIFBlbm5lciAg
PGVwZW5uZXJAZ29vZ2xlLmNvbT4KIAogICAgICAgICBbY2hyb21pdW1dIE5lZWQgdG8gcHJlcGFp
bnQgdGlsZXMgaW4gVGlsZWRMYXllckNocm9taXVtCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vQXR0ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQXR0ci5jcHAKaW5kZXggNzAzODQ5
MDExOWQ4ZmQ3ZjRlMmRjZTBmNWNlNzNhNWYwYjQ2Yjg2Ni4uMmUxMWZmMDJhZDI2ZGMzMTlkYjJk
OTczYjViNTQ1ZjBjMzY0Njc0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0F0dHIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9BdHRyLmNwcApAQCAtMjksNiArMjksOCBAQAog
I2luY2x1ZGUgIlNjb3BlZEV2ZW50UXVldWUuaCIKICNpbmNsdWRlICJUZXh0LmgiCiAjaW5jbHVk
ZSAiWE1MTlNOYW1lcy5oIgorI2luY2x1ZGUgPHd0Zi90ZXh0L0F0b21pY1N0cmluZy5oPgorI2lu
Y2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
CkBAIC0xMzIsMTMgKzEzNCw4IEBAIHZvaWQgQXR0cjo6c2V0VmFsdWUoY29uc3QgQXRvbWljU3Ry
aW5nJiB2YWx1ZSkKIAogdm9pZCBBdHRyOjpzZXRWYWx1ZShjb25zdCBBdG9taWNTdHJpbmcmIHZh
bHVlLCBFeGNlcHRpb25Db2RlJikKIHsKLSNpZiBFTkFCTEUoTVVUQVRJT05fT0JTRVJWRVJTKQog
ICAgIGlmIChtX2VsZW1lbnQpCi0gICAgICAgIG1fZWxlbWVudC0+ZW5xdWV1ZUF0dHJpYnV0ZXNN
dXRhdGlvblJlY29yZElmUmVxdWVzdGVkKG1fYXR0cmlidXRlLT5uYW1lKCksIG1fYXR0cmlidXRl
LT52YWx1ZSgpKTsKLSNlbmRpZgotCi0gICAgaWYgKG1fZWxlbWVudCAmJiBtX2VsZW1lbnQtPmlz
SWRBdHRyaWJ1dGVOYW1lKG1fYXR0cmlidXRlLT5uYW1lKCkpKQotICAgICAgICBtX2VsZW1lbnQt
PnVwZGF0ZUlkKG1fZWxlbWVudC0+Z2V0SWRBdHRyaWJ1dGUoKSwgdmFsdWUpOworICAgICAgICBt
X2VsZW1lbnQtPndpbGxNb2RpZnlBdHRyaWJ1dGUobV9hdHRyaWJ1dGUtPm5hbWUoKSwgbV9hdHRy
aWJ1dGUtPnZhbHVlKCksIHZhbHVlKTsKIAogICAgIHNldFZhbHVlKHZhbHVlKTsKIApAQCAtMTc1
LDI3ICsxNzIsMjMgQEAgdm9pZCBBdHRyOjpjaGlsZHJlbkNoYW5nZWQoYm9vbCBjaGFuZ2VkQnlQ
YXJzZXIsIE5vZGUqIGJlZm9yZUNoYW5nZSwgTm9kZSogYWZ0ZXIKICAgICBpZiAobV9pZ25vcmVD
aGlsZHJlbkNoYW5nZWQgPiAwKQogICAgICAgICByZXR1cm47CiAKLSNpZiBFTkFCTEUoTVVUQVRJ
T05fT0JTRVJWRVJTKQotICAgIGlmIChtX2VsZW1lbnQpCi0gICAgICAgIG1fZWxlbWVudC0+ZW5x
dWV1ZUF0dHJpYnV0ZXNNdXRhdGlvblJlY29yZElmUmVxdWVzdGVkKG1fYXR0cmlidXRlLT5uYW1l
KCksIG1fYXR0cmlidXRlLT52YWx1ZSgpKTsKLSNlbmRpZgotCiAgICAgTm9kZTo6Y2hpbGRyZW5D
aGFuZ2VkKGNoYW5nZWRCeVBhcnNlciwgYmVmb3JlQ2hhbmdlLCBhZnRlckNoYW5nZSwgY2hpbGRD
b3VudERlbHRhKTsKIAogICAgIGludmFsaWRhdGVOb2RlTGlzdHNDYWNoZUFmdGVyQXR0cmlidXRl
Q2hhbmdlZChtX2F0dHJpYnV0ZS0+bmFtZSgpKTsKIAogICAgIC8vIEZJWE1FOiBXZSBzaG91bGQg
aW5jbHVkZSBlbnRpdHkgcmVmZXJlbmNlcyBpbiB0aGUgdmFsdWUKIAotICAgIFN0cmluZyB2YWwg
PSAiIjsKKyAgICBTdHJpbmdCdWlsZGVyIHZhbHVlQnVpbGRlcjsKICAgICBmb3IgKE5vZGUgKm4g
PSBmaXJzdENoaWxkKCk7IG47IG4gPSBuLT5uZXh0U2libGluZygpKSB7CiAgICAgICAgIGlmIChu
LT5pc1RleHROb2RlKCkpCi0gICAgICAgICAgICB2YWwgKz0gc3RhdGljX2Nhc3Q8VGV4dCAqPihu
KS0+ZGF0YSgpOworICAgICAgICAgICAgdmFsdWVCdWlsZGVyLmFwcGVuZChzdGF0aWNfY2FzdDxU
ZXh0Kj4obiktPmRhdGEoKSk7CiAgICAgfQogCi0gICAgaWYgKG1fZWxlbWVudCAmJiBtX2VsZW1l
bnQtPmlzSWRBdHRyaWJ1dGVOYW1lKG1fYXR0cmlidXRlLT5uYW1lKCkpKQotICAgICAgICBtX2Vs
ZW1lbnQtPnVwZGF0ZUlkKG1fYXR0cmlidXRlLT52YWx1ZSgpLCB2YWwpOworICAgIEF0b21pY1N0
cmluZyBuZXdWYWx1ZSA9IHZhbHVlQnVpbGRlci50b1N0cmluZygpOworICAgIGlmIChtX2VsZW1l
bnQpCisgICAgICAgIG1fZWxlbWVudC0+d2lsbE1vZGlmeUF0dHJpYnV0ZShtX2F0dHJpYnV0ZS0+
bmFtZSgpLCBtX2F0dHJpYnV0ZS0+dmFsdWUoKSwgbmV3VmFsdWUpOwogCi0gICAgbV9hdHRyaWJ1
dGUtPnNldFZhbHVlKHZhbC5pbXBsKCkpOworICAgIG1fYXR0cmlidXRlLT5zZXRWYWx1ZShuZXdW
YWx1ZSk7CiAgICAgaWYgKG1fZWxlbWVudCkKICAgICAgICAgbV9lbGVtZW50LT5hdHRyaWJ1dGVD
aGFuZ2VkKG1fYXR0cmlidXRlLmdldCgpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAppbmRleCAz
NTI3NzEyMjVhYWMyM2I0MGRlOTQxOTI5MDJkOGYyNGY4MjI5NWM2Li4yN2YzNDY5YTQ2YzY3NTRk
YTY0OWNkNDZjODMxZjhjMmRjZDYxOGMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20v
RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCkBAIC02NTUs
MTQgKzY1NSw5IEBAIGlubGluZSB2b2lkIEVsZW1lbnQ6OnNldEF0dHJpYnV0ZUludGVybmFsKEF0
dHJpYnV0ZSogb2xkLCBjb25zdCBRdWFsaWZpZWROYW1lJiBuCiAgICAgICAgIEluc3BlY3Rvcklu
c3RydW1lbnRhdGlvbjo6d2lsbE1vZGlmeURPTUF0dHIoZG9jdW1lbnQoKSwgdGhpcyk7CiAjZW5k
aWYKIAotI2lmIEVOQUJMRShNVVRBVElPTl9PQlNFUlZFUlMpCi0gICAgZW5xdWV1ZUF0dHJpYnV0
ZXNNdXRhdGlvblJlY29yZElmUmVxdWVzdGVkKG5hbWUsIG9sZCA/IG9sZC0+dmFsdWUoKSA6IG51
bGxBdG9tKTsKLSNlbmRpZgotCiAgICAgZG9jdW1lbnQoKS0+aW5jRE9NVHJlZVZlcnNpb24oKTsK
IAotICAgIGlmIChpc0lkQXR0cmlidXRlTmFtZShuYW1lKSkKLSAgICAgICAgdXBkYXRlSWQob2xk
ID8gb2xkLT52YWx1ZSgpIDogbnVsbEF0b20sIHZhbHVlKTsKKyAgICB3aWxsTW9kaWZ5QXR0cmli
dXRlKG5hbWUsIG9sZCA/IG9sZC0+dmFsdWUoKSA6IG51bGxBdG9tLCB2YWx1ZSk7CiAKICAgICBp
ZiAob2xkICYmIHZhbHVlLmlzTnVsbCgpKQogICAgICAgICBtX2F0dHJpYnV0ZU1hcC0+cmVtb3Zl
QXR0cmlidXRlKG5hbWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQu
aCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgKaW5kZXggMWQxNzI4YmZiMTA5Y2I4ZWQ0
OTg0MzhhYmVkZWZlODkxMzYxMDc1MC4uM2I4ZmExOTQ1YTI2ZTU2ZjA4ZjRjODdkNjg1Zjc2ZTZl
ZDQ3OWE4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oCkBAIC0yNjYsNiArMjY2LDcgQEAgcHVibGljOgog
ICAgIHZpcnR1YWwgU3RyaW5nIHRpdGxlKCkgY29uc3Q7CiAKICAgICB2b2lkIHVwZGF0ZUlkKGNv
bnN0IEF0b21pY1N0cmluZyYgb2xkSWQsIGNvbnN0IEF0b21pY1N0cmluZyYgbmV3SWQpOworICAg
IHZvaWQgd2lsbE1vZGlmeUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRv
bWljU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbWljU3RyaW5nJiBuZXdWYWx1ZSk7CiAKICAg
ICBMYXlvdXRTaXplIG1pbmltdW1TaXplRm9yUmVzaXppbmcoKSBjb25zdDsKICAgICB2b2lkIHNl
dE1pbmltdW1TaXplRm9yUmVzaXppbmcoY29uc3QgTGF5b3V0U2l6ZSYpOwpAQCAtMzY0LDEwICsz
NjUsNiBAQCBwdWJsaWM6CiAgICAgCiAgICAgUGFzc1JlZlB0cjxSZW5kZXJTdHlsZT4gc3R5bGVG
b3JSZW5kZXJlcigpOwogCi0jaWYgRU5BQkxFKE1VVEFUSU9OX09CU0VSVkVSUykKLSAgICB2b2lk
IGVucXVldWVBdHRyaWJ1dGVzTXV0YXRpb25SZWNvcmRJZlJlcXVlc3RlZChjb25zdCBRdWFsaWZp
ZWROYW1lJiwgY29uc3QgQXRvbWljU3RyaW5nJiBvbGRWYWx1ZSk7Ci0jZW5kaWYKLQogcHJvdGVj
dGVkOgogICAgIEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQq
IGRvY3VtZW50LCBDb25zdHJ1Y3Rpb25UeXBlIHR5cGUpCiAgICAgICAgIDogQ29udGFpbmVyTm9k
ZShkb2N1bWVudCwgdHlwZSkKQEAgLTQzNiw2ICs0MzMsMTAgQEAgcHJpdmF0ZToKIAogICAgIFNw
ZWxsY2hlY2tBdHRyaWJ1dGVTdGF0ZSBzcGVsbGNoZWNrQXR0cmlidXRlU3RhdGUoKSBjb25zdDsK
IAorI2lmIEVOQUJMRShNVVRBVElPTl9PQlNFUlZFUlMpCisgICAgdm9pZCBlbnF1ZXVlQXR0cmli
dXRlc011dGF0aW9uUmVjb3JkSWZSZXF1ZXN0ZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0
IEF0b21pY1N0cmluZyYgb2xkVmFsdWUpOworI2VuZGlmCisKIHByaXZhdGU6CiAgICAgbXV0YWJs
ZSBSZWZQdHI8TmFtZWROb2RlTWFwPiBtX2F0dHJpYnV0ZU1hcDsKIH07CkBAIC01MTEsNiArNTEy
LDE4IEBAIGlubGluZSB2b2lkIEVsZW1lbnQ6OnVwZGF0ZUlkKGNvbnN0IEF0b21pY1N0cmluZyYg
b2xkSWQsIGNvbnN0IEF0b21pY1N0cmluZyYgbmV3CiAgICAgICAgIHNjb3BlLT5hZGRFbGVtZW50
QnlJZChuZXdJZCwgdGhpcyk7CiB9CiAKK2lubGluZSB2b2lkIEVsZW1lbnQ6OndpbGxNb2RpZnlB
dHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbWljU3RyaW5nJiBv
bGRWYWx1ZSwgY29uc3QgQXRvbWljU3RyaW5nJiBuZXdWYWx1ZSkKK3sKKyAgICBpZiAoaXNJZEF0
dHJpYnV0ZU5hbWUobmFtZSkpCisgICAgICAgIHVwZGF0ZUlkKG9sZFZhbHVlLCBuZXdWYWx1ZSk7
CisKKyAgICAvLyBGSVhNRTogU2hvdWxkIHByb2JhYmx5IGNhbGwgSW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uOjp3aWxsTW9kaWZ5RE9NQXR0ciBoZXJlLgorCisjaWYgRU5BQkxFKE1VVEFUSU9OX09C
U0VSVkVSUykKKyAgICBlbnF1ZXVlQXR0cmlidXRlc011dGF0aW9uUmVjb3JkSWZSZXF1ZXN0ZWQo
bmFtZSwgb2xkVmFsdWUpOworI2VuZGlmCit9CisKIGlubGluZSBib29sIEVsZW1lbnQ6OmZhc3RI
YXNBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSkgY29uc3QKIHsKICAgICBBU1NF
UlQoZmFzdEF0dHJpYnV0ZUxvb2t1cEFsbG93ZWQobmFtZSkpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZG9tL05hbWVkTm9kZU1hcC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTmFtZWRO
b2RlTWFwLmNwcAppbmRleCBjNjI4OGI0MmI3MzE0ZWJiODljNjM1OTViZTYxOGJiZDk3YzI1YzRl
Li5iM2UxMmJmNGRjYTg5MWRmMTJmMmFlOTYwZDU4ZjUwMjgyYjQ3NjUwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kb20vTmFtZWROb2RlTWFwLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vTmFtZWROb2RlTWFwLmNwcApAQCAtMTE5LDEyICsxMTksNyBAQCBQYXNzUmVmUHRyPE5vZGU+
IE5hbWVkTm9kZU1hcDo6c2V0TmFtZWRJdGVtKE5vZGUqIG5vZGUsIEV4Y2VwdGlvbkNvZGUmIGVj
KQogICAgICAgICByZXR1cm4gMDsKICAgICB9CiAKLSNpZiBFTkFCTEUoTVVUQVRJT05fT0JTRVJW
RVJTKQotICAgIG1fZWxlbWVudC0+ZW5xdWV1ZUF0dHJpYnV0ZXNNdXRhdGlvblJlY29yZElmUmVx
dWVzdGVkKGF0dHJpYnV0ZS0+bmFtZSgpLCBvbGRBdHRyaWJ1dGUgPyBvbGRBdHRyaWJ1dGUtPnZh
bHVlKCkgOiBudWxsQXRvbSk7Ci0jZW5kaWYKLQotICAgIGlmIChhdHRyLT5pc0lkKCkpCi0gICAg
ICAgIG1fZWxlbWVudC0+dXBkYXRlSWQob2xkQXR0cmlidXRlID8gb2xkQXR0cmlidXRlLT52YWx1
ZSgpIDogbnVsbEF0b20sIGF0dHJpYnV0ZS0+dmFsdWUoKSk7CisgICAgbV9lbGVtZW50LT53aWxs
TW9kaWZ5QXR0cmlidXRlKGF0dHJpYnV0ZS0+bmFtZSgpLCBvbGRBdHRyaWJ1dGUgPyBvbGRBdHRy
aWJ1dGUtPnZhbHVlKCkgOiBudWxsQXRvbSwgYXR0cmlidXRlLT52YWx1ZSgpKTsKIAogICAgIC8v
ICMjIyBzbGlnaHRseSBpbmVmZmljaWVudCAtIHJlc2l6ZXMgYXR0cmlidXRlIGFycmF5IHR3aWNl
LgogICAgIFJlZlB0cjxBdHRyPiBvbGRBdHRyOwpAQCAtMTQ4LDIwICsxNDMsMTQgQEAgUGFzc1Jl
ZlB0cjxOb2RlPiBOYW1lZE5vZGVNYXA6OnNldE5hbWVkSXRlbU5TKE5vZGUqIG5vZGUsIEV4Y2Vw
dGlvbkNvZGUmIGVjKQogUGFzc1JlZlB0cjxOb2RlPiBOYW1lZE5vZGVNYXA6OnJlbW92ZU5hbWVk
SXRlbShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKICAg
ICBBdHRyaWJ1dGUqIGF0dHJpYnV0ZSA9IGdldEF0dHJpYnV0ZUl0ZW0obmFtZSk7Ci0gICAgaWYg
KCFhdHRyaWJ1dGUpIHsKKyAgICBpZiAoIWF0dHJpYnV0ZSB8fCAhbV9lbGVtZW50KSB7CiAgICAg
ICAgIGVjID0gTk9UX0ZPVU5EX0VSUjsKICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQogCi0jaWYg
RU5BQkxFKE1VVEFUSU9OX09CU0VSVkVSUykKLSAgICBpZiAobV9lbGVtZW50KQotICAgICAgICBt
X2VsZW1lbnQtPmVucXVldWVBdHRyaWJ1dGVzTXV0YXRpb25SZWNvcmRJZlJlcXVlc3RlZChhdHRy
aWJ1dGUtPm5hbWUoKSwgYXR0cmlidXRlLT52YWx1ZSgpKTsKLSNlbmRpZgotCiAgICAgUmVmUHRy
PEF0dHI+IGF0dHIgPSBhdHRyaWJ1dGUtPmNyZWF0ZUF0dHJJZk5lZWRlZChtX2VsZW1lbnQpOwog
Ci0gICAgaWYgKGF0dHItPmlzSWQoKSkKLSAgICAgICAgbV9lbGVtZW50LT51cGRhdGVJZChhdHRy
aWJ1dGUtPnZhbHVlKCksIG51bGxBdG9tKTsKKyAgICBtX2VsZW1lbnQtPndpbGxNb2RpZnlBdHRy
aWJ1dGUoYXR0cmlidXRlLT5uYW1lKCksIGF0dHJpYnV0ZS0+dmFsdWUoKSwgbnVsbEF0b20pOwog
CiAgICAgcmVtb3ZlQXR0cmlidXRlKG5hbWUpOwogICAgIHJldHVybiBhdHRyLnJlbGVhc2UoKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>119709</attachid>
            <date>2011-12-16 18:05:32 -0800</date>
            <delta_ts>2011-12-16 20:36:51 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-74752-20111216180531.patch</filename>
            <type>text/plain</type>
            <size>8727</size>
            <attacher name="Adam Klein">adamk</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAzMTI5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTlkOGY2YTdhZmMxY2Uw
MmMwNzI2ZTk2NTQzY2VmNTllZDBhNWE1Ni4uYmMwOGUwMjUwNzQ0ZGQzYzI2ZWVlMWM1MmY5MzI0
ZTUxODExYzNmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDExLTEyLTE2ICBBZGFt
IEtsZWluICA8YWRhbWtAY2hyb21pdW0ub3JnPgorCisgICAgICAgIENvbnNvbGlkYXRlIGJlZm9y
ZS1hZHZpY2UgcmVnYXJkaW5nIGF0dHJpYnV0ZSBtb2RpZmljYXRpb24gaW50byBhIHNpbmdsZSBt
ZXRob2QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc0
NzUyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgUnlvc3VrZSBOaXdhLgorCisgICAgICAgIEFkZHMg
YSB3aWxsTW9kaWZ5QXR0cmlidXRlIG1ldGhvZCB0byBFbGVtZW50LCBtZWFudCB0byBiZSBjYWxs
ZWQKKyAgICAgICAgYmVmb3JlIGFuIGF0dHJpYnV0ZSBvbiB0aGF0IEVsZW1lbnQgaXMgYWRkZWQv
cmVtb3ZlZC9jaGFuZ2VkLgorCisgICAgICAgIFJlcGxhY2UgbW9zdCBjYWxscyB0byBFbGVtZW50
Ojp1cGRhdGVJZCBhbmQgYWxsIGNhbGxzIHRvCisgICAgICAgIEVsZW1lbnQ6OmVucXVldWVBdHRy
aWJ1dGVzTXV0YXRpb25SZWNvcmRJZlJlcXVlc3RlZCB3aXRoIGNhbGxzIHRvCisgICAgICAgIHdp
bGxNb2RpZnlBdHRyaWJ1dGUuIE1vcmVvdmVyLCBlbnF1ZXVlQXR0cmlidXRlc011dGF0aW9uLi4u
IGNhbiBub3cKKyAgICAgICAgYmUgcHJpdmF0ZSBzaW5jZSBpdHMgb25seSBjYWxsZXIgaXMgd2ls
bE1vZGlmeUF0dHJpYnV0ZS4KKworICAgICAgICBUaGUgb25seSByZW1haW5pbmcgZGlyZWN0IGNh
bGxzIHRvIHVwZGF0ZUlkIGFyZSBpbiBjYXNlcyB0aGUgZW50aXJlCisgICAgICAgIE5hbWVkTm9k
ZU1hcCBpcyBiZWluZyByZXBsYWNlZC4gVGhlc2UgYXJlIGltcGxlbWVudGF0aW9uIGRldGFpbHMg
b2YKKyAgICAgICAgV2ViQ29yZSB0aGF0IHNob3VsZG4ndCBiZSBleHBvc2VkIHZpYSBNdXRhdGlv
bk9ic2VydmVycy4KKworICAgICAgICBObyBuZXcgdGVzdHMsIG5vIGV4cGVjdGVkIGNoYW5nZSBp
biBiZWhhdmlvci4KKworICAgICAgICAqIGRvbS9BdHRyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkF0dHI6OnNldFZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OkF0dHI6OmNoaWxkcmVuQ2hhbmdl
ZCk6IEJlc2lkZXMgdGhlIGFib3ZlIGNoYW5nZSwgdXNlIGEKKyAgICAgICAgU3RyaW5nQnVpbGRl
ciB0byBidWlsZCB1cCB2YWx1ZSwgYW5kIG9ubHkgZG8gU3RyaW5nIC0+IEF0b21pY1N0cmluZwor
ICAgICAgICBjb252ZXJzaW9uIG9uY2UuCisgICAgICAgICogZG9tL0VsZW1lbnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6RWxlbWVudDo6c2V0QXR0cmlidXRlSW50ZXJuYWwpOgorICAgICAgICAq
IGRvbS9FbGVtZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50Ojp3aWxsTW9kaWZ5QXR0
cmlidXRlKToKKyAgICAgICAgKiBkb20vTmFtZWROb2RlTWFwLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6Ok5hbWVkTm9kZU1hcDo6c2V0TmFtZWRJdGVtKToKKyAgICAgICAgKFdlYkNvcmU6Ok5hbWVk
Tm9kZU1hcDo6cmVtb3ZlTmFtZWRJdGVtKToKKwogMjAxMS0xMi0xNiAgRXJpYyBQZW5uZXIgIDxl
cGVubmVyQGdvb2dsZS5jb20+CiAKICAgICAgICAgW2Nocm9taXVtXSBOZWVkIHRvIHByZXBhaW50
IHRpbGVzIGluIFRpbGVkTGF5ZXJDaHJvbWl1bQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZG9tL0F0dHIuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0F0dHIuY3BwCmluZGV4IDcwMzg0OTAx
MTlkOGZkN2Y0ZTJkY2UwZjVjZTczYTVmMGI0NmI4NjYuLjJlMTFmZjAyYWQyNmRjMzE5ZGIyZDk3
M2I1YjU0NWYwYzM2NDY3NDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9BdHRyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQXR0ci5jcHAKQEAgLTI5LDYgKzI5LDggQEAKICNp
bmNsdWRlICJTY29wZWRFdmVudFF1ZXVlLmgiCiAjaW5jbHVkZSAiVGV4dC5oIgogI2luY2x1ZGUg
IlhNTE5TTmFtZXMuaCIKKyNpbmNsdWRlIDx3dGYvdGV4dC9BdG9taWNTdHJpbmcuaD4KKyNpbmNs
dWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApA
QCAtMTMyLDEzICsxMzQsOCBAQCB2b2lkIEF0dHI6OnNldFZhbHVlKGNvbnN0IEF0b21pY1N0cmlu
ZyYgdmFsdWUpCiAKIHZvaWQgQXR0cjo6c2V0VmFsdWUoY29uc3QgQXRvbWljU3RyaW5nJiB2YWx1
ZSwgRXhjZXB0aW9uQ29kZSYpCiB7Ci0jaWYgRU5BQkxFKE1VVEFUSU9OX09CU0VSVkVSUykKICAg
ICBpZiAobV9lbGVtZW50KQotICAgICAgICBtX2VsZW1lbnQtPmVucXVldWVBdHRyaWJ1dGVzTXV0
YXRpb25SZWNvcmRJZlJlcXVlc3RlZChtX2F0dHJpYnV0ZS0+bmFtZSgpLCBtX2F0dHJpYnV0ZS0+
dmFsdWUoKSk7Ci0jZW5kaWYKLQotICAgIGlmIChtX2VsZW1lbnQgJiYgbV9lbGVtZW50LT5pc0lk
QXR0cmlidXRlTmFtZShtX2F0dHJpYnV0ZS0+bmFtZSgpKSkKLSAgICAgICAgbV9lbGVtZW50LT51
cGRhdGVJZChtX2VsZW1lbnQtPmdldElkQXR0cmlidXRlKCksIHZhbHVlKTsKKyAgICAgICAgbV9l
bGVtZW50LT53aWxsTW9kaWZ5QXR0cmlidXRlKG1fYXR0cmlidXRlLT5uYW1lKCksIG1fYXR0cmli
dXRlLT52YWx1ZSgpLCB2YWx1ZSk7CiAKICAgICBzZXRWYWx1ZSh2YWx1ZSk7CiAKQEAgLTE3NSwy
NyArMTcyLDIzIEBAIHZvaWQgQXR0cjo6Y2hpbGRyZW5DaGFuZ2VkKGJvb2wgY2hhbmdlZEJ5UGFy
c2VyLCBOb2RlKiBiZWZvcmVDaGFuZ2UsIE5vZGUqIGFmdGVyCiAgICAgaWYgKG1faWdub3JlQ2hp
bGRyZW5DaGFuZ2VkID4gMCkKICAgICAgICAgcmV0dXJuOwogCi0jaWYgRU5BQkxFKE1VVEFUSU9O
X09CU0VSVkVSUykKLSAgICBpZiAobV9lbGVtZW50KQotICAgICAgICBtX2VsZW1lbnQtPmVucXVl
dWVBdHRyaWJ1dGVzTXV0YXRpb25SZWNvcmRJZlJlcXVlc3RlZChtX2F0dHJpYnV0ZS0+bmFtZSgp
LCBtX2F0dHJpYnV0ZS0+dmFsdWUoKSk7Ci0jZW5kaWYKLQogICAgIE5vZGU6OmNoaWxkcmVuQ2hh
bmdlZChjaGFuZ2VkQnlQYXJzZXIsIGJlZm9yZUNoYW5nZSwgYWZ0ZXJDaGFuZ2UsIGNoaWxkQ291
bnREZWx0YSk7CiAKICAgICBpbnZhbGlkYXRlTm9kZUxpc3RzQ2FjaGVBZnRlckF0dHJpYnV0ZUNo
YW5nZWQobV9hdHRyaWJ1dGUtPm5hbWUoKSk7CiAKICAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIGlu
Y2x1ZGUgZW50aXR5IHJlZmVyZW5jZXMgaW4gdGhlIHZhbHVlCiAKLSAgICBTdHJpbmcgdmFsID0g
IiI7CisgICAgU3RyaW5nQnVpbGRlciB2YWx1ZUJ1aWxkZXI7CiAgICAgZm9yIChOb2RlICpuID0g
Zmlyc3RDaGlsZCgpOyBuOyBuID0gbi0+bmV4dFNpYmxpbmcoKSkgewogICAgICAgICBpZiAobi0+
aXNUZXh0Tm9kZSgpKQotICAgICAgICAgICAgdmFsICs9IHN0YXRpY19jYXN0PFRleHQgKj4obikt
PmRhdGEoKTsKKyAgICAgICAgICAgIHZhbHVlQnVpbGRlci5hcHBlbmQoc3RhdGljX2Nhc3Q8VGV4
dCo+KG4pLT5kYXRhKCkpOwogICAgIH0KIAotICAgIGlmIChtX2VsZW1lbnQgJiYgbV9lbGVtZW50
LT5pc0lkQXR0cmlidXRlTmFtZShtX2F0dHJpYnV0ZS0+bmFtZSgpKSkKLSAgICAgICAgbV9lbGVt
ZW50LT51cGRhdGVJZChtX2F0dHJpYnV0ZS0+dmFsdWUoKSwgdmFsKTsKKyAgICBBdG9taWNTdHJp
bmcgbmV3VmFsdWUgPSB2YWx1ZUJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBpZiAobV9lbGVtZW50
KQorICAgICAgICBtX2VsZW1lbnQtPndpbGxNb2RpZnlBdHRyaWJ1dGUobV9hdHRyaWJ1dGUtPm5h
bWUoKSwgbV9hdHRyaWJ1dGUtPnZhbHVlKCksIG5ld1ZhbHVlKTsKIAotICAgIG1fYXR0cmlidXRl
LT5zZXRWYWx1ZSh2YWwuaW1wbCgpKTsKKyAgICBtX2F0dHJpYnV0ZS0+c2V0VmFsdWUobmV3VmFs
dWUpOwogICAgIGlmIChtX2VsZW1lbnQpCiAgICAgICAgIG1fZWxlbWVudC0+YXR0cmlidXRlQ2hh
bmdlZChtX2F0dHJpYnV0ZS5nZXQoKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9k
b20vRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKaW5kZXggMzUy
NzcxMjI1YWFjMjNiNDBkZTk0MTkyOTAyZDhmMjRmODIyOTVjNi4uMjdmMzQ2OWE0NmM2NzU0ZGE2
NDljZDQ2YzgzMWY4YzJkY2Q2MThjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0Vs
ZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcApAQCAtNjU1LDE0
ICs2NTUsOSBAQCBpbmxpbmUgdm9pZCBFbGVtZW50OjpzZXRBdHRyaWJ1dGVJbnRlcm5hbChBdHRy
aWJ1dGUqIG9sZCwgY29uc3QgUXVhbGlmaWVkTmFtZSYgbgogICAgICAgICBJbnNwZWN0b3JJbnN0
cnVtZW50YXRpb246OndpbGxNb2RpZnlET01BdHRyKGRvY3VtZW50KCksIHRoaXMpOwogI2VuZGlm
CiAKLSNpZiBFTkFCTEUoTVVUQVRJT05fT0JTRVJWRVJTKQotICAgIGVucXVldWVBdHRyaWJ1dGVz
TXV0YXRpb25SZWNvcmRJZlJlcXVlc3RlZChuYW1lLCBvbGQgPyBvbGQtPnZhbHVlKCkgOiBudWxs
QXRvbSk7Ci0jZW5kaWYKLQogICAgIGRvY3VtZW50KCktPmluY0RPTVRyZWVWZXJzaW9uKCk7CiAK
LSAgICBpZiAoaXNJZEF0dHJpYnV0ZU5hbWUobmFtZSkpCi0gICAgICAgIHVwZGF0ZUlkKG9sZCA/
IG9sZC0+dmFsdWUoKSA6IG51bGxBdG9tLCB2YWx1ZSk7CisgICAgd2lsbE1vZGlmeUF0dHJpYnV0
ZShuYW1lLCBvbGQgPyBvbGQtPnZhbHVlKCkgOiBudWxsQXRvbSwgdmFsdWUpOwogCiAgICAgaWYg
KG9sZCAmJiB2YWx1ZS5pc051bGwoKSkKICAgICAgICAgbV9hdHRyaWJ1dGVNYXAtPnJlbW92ZUF0
dHJpYnV0ZShuYW1lKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oCmluZGV4IDFkMTcyOGJmYjEwOWNiOGVkNDk4
NDM4YWJlZGVmZTg5MTM2MTA3NTAuLjNiOGZhMTk0NWEyNmU1NmYwOGY0Yzg3ZDY4NWY3NmU2ZWQ0
NzlhOGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaApAQCAtMjY2LDYgKzI2Niw3IEBAIHB1YmxpYzoKICAg
ICB2aXJ0dWFsIFN0cmluZyB0aXRsZSgpIGNvbnN0OwogCiAgICAgdm9pZCB1cGRhdGVJZChjb25z
dCBBdG9taWNTdHJpbmcmIG9sZElkLCBjb25zdCBBdG9taWNTdHJpbmcmIG5ld0lkKTsKKyAgICB2
b2lkIHdpbGxNb2RpZnlBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21p
Y1N0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21pY1N0cmluZyYgbmV3VmFsdWUpOwogCiAgICAg
TGF5b3V0U2l6ZSBtaW5pbXVtU2l6ZUZvclJlc2l6aW5nKCkgY29uc3Q7CiAgICAgdm9pZCBzZXRN
aW5pbXVtU2l6ZUZvclJlc2l6aW5nKGNvbnN0IExheW91dFNpemUmKTsKQEAgLTM2NCwxMCArMzY1
LDYgQEAgcHVibGljOgogICAgIAogICAgIFBhc3NSZWZQdHI8UmVuZGVyU3R5bGU+IHN0eWxlRm9y
UmVuZGVyZXIoKTsKIAotI2lmIEVOQUJMRShNVVRBVElPTl9PQlNFUlZFUlMpCi0gICAgdm9pZCBl
bnF1ZXVlQXR0cmlidXRlc011dGF0aW9uUmVjb3JkSWZSZXF1ZXN0ZWQoY29uc3QgUXVhbGlmaWVk
TmFtZSYsIGNvbnN0IEF0b21pY1N0cmluZyYgb2xkVmFsdWUpOwotI2VuZGlmCi0KIHByb3RlY3Rl
ZDoKICAgICBFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBk
b2N1bWVudCwgQ29uc3RydWN0aW9uVHlwZSB0eXBlKQogICAgICAgICA6IENvbnRhaW5lck5vZGUo
ZG9jdW1lbnQsIHR5cGUpCkBAIC00MzYsNiArNDMzLDEwIEBAIHByaXZhdGU6CiAKICAgICBTcGVs
bGNoZWNrQXR0cmlidXRlU3RhdGUgc3BlbGxjaGVja0F0dHJpYnV0ZVN0YXRlKCkgY29uc3Q7CiAK
KyNpZiBFTkFCTEUoTVVUQVRJT05fT0JTRVJWRVJTKQorICAgIHZvaWQgZW5xdWV1ZUF0dHJpYnV0
ZXNNdXRhdGlvblJlY29yZElmUmVxdWVzdGVkKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBB
dG9taWNTdHJpbmcmIG9sZFZhbHVlKTsKKyNlbmRpZgorCiBwcml2YXRlOgogICAgIG11dGFibGUg
UmVmUHRyPE5hbWVkTm9kZU1hcD4gbV9hdHRyaWJ1dGVNYXA7CiB9OwpAQCAtNTExLDYgKzUxMiwx
OCBAQCBpbmxpbmUgdm9pZCBFbGVtZW50Ojp1cGRhdGVJZChjb25zdCBBdG9taWNTdHJpbmcmIG9s
ZElkLCBjb25zdCBBdG9taWNTdHJpbmcmIG5ldwogICAgICAgICBzY29wZS0+YWRkRWxlbWVudEJ5
SWQobmV3SWQsIHRoaXMpOwogfQogCitpbmxpbmUgdm9pZCBFbGVtZW50Ojp3aWxsTW9kaWZ5QXR0
cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21pY1N0cmluZyYgb2xk
VmFsdWUsIGNvbnN0IEF0b21pY1N0cmluZyYgbmV3VmFsdWUpCit7CisgICAgaWYgKGlzSWRBdHRy
aWJ1dGVOYW1lKG5hbWUpKQorICAgICAgICB1cGRhdGVJZChvbGRWYWx1ZSwgbmV3VmFsdWUpOwor
CisgICAgLy8gRklYTUU6IFNob3VsZCBwcm9iYWJseSBjYWxsIEluc3BlY3Rvckluc3RydW1lbnRh
dGlvbjo6d2lsbE1vZGlmeURPTUF0dHIgaGVyZS4KKworI2lmIEVOQUJMRShNVVRBVElPTl9PQlNF
UlZFUlMpCisgICAgZW5xdWV1ZUF0dHJpYnV0ZXNNdXRhdGlvblJlY29yZElmUmVxdWVzdGVkKG5h
bWUsIG9sZFZhbHVlKTsKKyNlbmRpZgorfQorCiBpbmxpbmUgYm9vbCBFbGVtZW50OjpmYXN0SGFz
QXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUpIGNvbnN0CiB7CiAgICAgQVNTRVJU
KGZhc3RBdHRyaWJ1dGVMb29rdXBBbGxvd2VkKG5hbWUpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9OYW1lZE5vZGVNYXAuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL05hbWVkTm9k
ZU1hcC5jcHAKaW5kZXggYzYyODhiNDJiNzMxNGViYjg5YzYzNTk1YmU2MThiYmQ5N2MyNWM0ZS4u
MWQ5OTc2NGI4NzJiNjM1MzQyYzNjY2RiZWU1ZjYxYjliNDVmMzdlNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZG9tL05hbWVkTm9kZU1hcC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9t
L05hbWVkTm9kZU1hcC5jcHAKQEAgLTExOSwxMiArMTE5LDcgQEAgUGFzc1JlZlB0cjxOb2RlPiBO
YW1lZE5vZGVNYXA6OnNldE5hbWVkSXRlbShOb2RlKiBub2RlLCBFeGNlcHRpb25Db2RlJiBlYykK
ICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQogCi0jaWYgRU5BQkxFKE1VVEFUSU9OX09CU0VSVkVS
UykKLSAgICBtX2VsZW1lbnQtPmVucXVldWVBdHRyaWJ1dGVzTXV0YXRpb25SZWNvcmRJZlJlcXVl
c3RlZChhdHRyaWJ1dGUtPm5hbWUoKSwgb2xkQXR0cmlidXRlID8gb2xkQXR0cmlidXRlLT52YWx1
ZSgpIDogbnVsbEF0b20pOwotI2VuZGlmCi0KLSAgICBpZiAoYXR0ci0+aXNJZCgpKQotICAgICAg
ICBtX2VsZW1lbnQtPnVwZGF0ZUlkKG9sZEF0dHJpYnV0ZSA/IG9sZEF0dHJpYnV0ZS0+dmFsdWUo
KSA6IG51bGxBdG9tLCBhdHRyaWJ1dGUtPnZhbHVlKCkpOworICAgIG1fZWxlbWVudC0+d2lsbE1v
ZGlmeUF0dHJpYnV0ZShhdHRyaWJ1dGUtPm5hbWUoKSwgb2xkQXR0cmlidXRlID8gb2xkQXR0cmli
dXRlLT52YWx1ZSgpIDogbnVsbEF0b20sIGF0dHJpYnV0ZS0+dmFsdWUoKSk7CiAKICAgICAvLyAj
IyMgc2xpZ2h0bHkgaW5lZmZpY2llbnQgLSByZXNpemVzIGF0dHJpYnV0ZSBhcnJheSB0d2ljZS4K
ICAgICBSZWZQdHI8QXR0cj4gb2xkQXR0cjsKQEAgLTE0NywyMSArMTQyLDE3IEBAIFBhc3NSZWZQ
dHI8Tm9kZT4gTmFtZWROb2RlTWFwOjpzZXROYW1lZEl0ZW1OUyhOb2RlKiBub2RlLCBFeGNlcHRp
b25Db2RlJiBlYykKIC8vIGJlY2F1c2Ugb2YgcmVtb3ZlTmFtZWRJdGVtLCByZW1vdmVOYW1lZEl0
ZW1OUywgYW5kIHJlbW92ZUF0dHJpYnV0ZU5vZGUuCiBQYXNzUmVmUHRyPE5vZGU+IE5hbWVkTm9k
ZU1hcDo6cmVtb3ZlTmFtZWRJdGVtKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIEV4Y2VwdGlv
bkNvZGUmIGVjKQogeworICAgIEFTU0VSVChtX2VsZW1lbnQpOworCiAgICAgQXR0cmlidXRlKiBh
dHRyaWJ1dGUgPSBnZXRBdHRyaWJ1dGVJdGVtKG5hbWUpOwogICAgIGlmICghYXR0cmlidXRlKSB7
CiAgICAgICAgIGVjID0gTk9UX0ZPVU5EX0VSUjsKICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQog
Ci0jaWYgRU5BQkxFKE1VVEFUSU9OX09CU0VSVkVSUykKLSAgICBpZiAobV9lbGVtZW50KQotICAg
ICAgICBtX2VsZW1lbnQtPmVucXVldWVBdHRyaWJ1dGVzTXV0YXRpb25SZWNvcmRJZlJlcXVlc3Rl
ZChhdHRyaWJ1dGUtPm5hbWUoKSwgYXR0cmlidXRlLT52YWx1ZSgpKTsKLSNlbmRpZgotCiAgICAg
UmVmUHRyPEF0dHI+IGF0dHIgPSBhdHRyaWJ1dGUtPmNyZWF0ZUF0dHJJZk5lZWRlZChtX2VsZW1l
bnQpOwogCi0gICAgaWYgKGF0dHItPmlzSWQoKSkKLSAgICAgICAgbV9lbGVtZW50LT51cGRhdGVJ
ZChhdHRyaWJ1dGUtPnZhbHVlKCksIG51bGxBdG9tKTsKKyAgICBtX2VsZW1lbnQtPndpbGxNb2Rp
ZnlBdHRyaWJ1dGUoYXR0cmlidXRlLT5uYW1lKCksIGF0dHJpYnV0ZS0+dmFsdWUoKSwgbnVsbEF0
b20pOwogCiAgICAgcmVtb3ZlQXR0cmlidXRlKG5hbWUpOwogICAgIHJldHVybiBhdHRyLnJlbGVh
c2UoKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>