<?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>97953</bug_id>
          
          <creation_ts>2012-09-28 16:44:19 -0700</creation_ts>
          <short_desc>Kill transitive effects of SelectorChecker::checkOneSelector.</short_desc>
          <delta_ts>2012-10-26 13:44:30 -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>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>
          <dependson>98181</dependson>
          <blocked>89879</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Dimitri Glazkov (Google)">dglazkov</reporter>
          <assigned_to name="Dimitri Glazkov (Google)">dglazkov</assigned_to>
          <cc>cmarcelo</cc>
    
    <cc>eric</cc>
    
    <cc>kling</cc>
    
    <cc>koivisto</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>ojan</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>731058</commentid>
    <comment_count>0</comment_count>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2012-09-28 16:44:19 -0700</bug_when>
    <thetext>Kill transitive effects of SelectorChecker::checkOneSelector.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>731059</commentid>
    <comment_count>1</comment_count>
      <attachid>166329</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2012-09-28 16:44:47 -0700</bug_when>
    <thetext>Created attachment 166329
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>731105</commentid>
    <comment_count>2</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-09-28 18:00:14 -0700</bug_when>
    <thetext>Nice!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>732003</commentid>
    <comment_count>3</comment_count>
      <attachid>166546</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2012-10-01 14:41:17 -0700</bug_when>
    <thetext>Created attachment 166546
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>732006</commentid>
    <comment_count>4</comment_count>
      <attachid>166548</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2012-10-01 14:43:27 -0700</bug_when>
    <thetext>Created attachment 166548
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>732010</commentid>
    <comment_count>5</comment_count>
      <attachid>166548</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-10-01 14:47:24 -0700</bug_when>
    <thetext>Comment on attachment 166548
Patch

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

&gt; Source/WebCore/css/SelectorChecker.cpp:448
&gt; +    if (context.selector-&gt;m_match == CSSSelector::PseudoElement) {

None of the other callers care about this block?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>732012</commentid>
    <comment_count>6</comment_count>
      <attachid>166548</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2012-10-01 14:49:49 -0700</bug_when>
    <thetext>Comment on attachment 166548
Patch

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

&gt;&gt; Source/WebCore/css/SelectorChecker.cpp:448
&gt;&gt; +    if (context.selector-&gt;m_match == CSSSelector::PseudoElement) {
&gt; 
&gt; None of the other callers care about this block?

Well, no -- since the code inside is operating on the assumption that it&apos;s looking at a pseudoelement selector :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>732054</commentid>
    <comment_count>7</comment_count>
      <attachid>166548</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-10-01 15:33:51 -0700</bug_when>
    <thetext>Comment on attachment 166548
Patch

LGTM.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>732076</commentid>
    <comment_count>8</comment_count>
      <attachid>166548</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-01 15:54:16 -0700</bug_when>
    <thetext>Comment on attachment 166548
Patch

Clearing flags on attachment: 166548

Committed r130089: &lt;http://trac.webkit.org/changeset/130089&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>732077</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-01 15:54:19 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>732841</commentid>
    <comment_count>10</comment_count>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2012-10-02 11:13:14 -0700</bug_when>
    <thetext>This may have caused a performance regression on the dromaeo tests.

http://build.chromium.org/f/chromium/perf/linux-release-webkit-latest/dromaeo_domcoremodify/report.html?history=150&amp;rev=-1&amp;graph=dom_modify
http://build.chromium.org/f/chromium/perf/linux-release-webkit-latest/dom_perf/report.html?history=150&amp;rev=-1&amp;graph=CloneNodes
http://build.chromium.org/f/chromium/perf/linux-release-webkit-latest/dromaeo_domcoremodify/report.html?history=150&amp;rev=-1&amp;graph=dom_modify_insertBefore
http://trac.webkit.org/log/?verbose=on&amp;rev=130099&amp;stop_rev=130089</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>732874</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-02 11:34:42 -0700</bug_when>
    <thetext>Re-opened since this is blocked by bug 98181</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>166329</attachid>
            <date>2012-09-28 16:44:47 -0700</date>
            <delta_ts>2012-10-01 14:41:14 -0700</delta_ts>
            <desc>WIP</desc>
            <filename>bug-97953-20120928164403.patch</filename>
            <type>text/plain</type>
            <size>8226</size>
            <attacher name="Dimitri Glazkov (Google)">dglazkov</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI5OTU0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjRjNjQwMzZhNjhlY2Zi
MzU5NzM0YjZjNmFlNDNjNjIxMjc3NTk4ZC4uZTNmYmUwODBlMTJiYWZkOWU2ZGNmZmMyYjJmNjBm
NzY3NDI3NTMzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDIzIEBACiAyMDEyLTA5LTI4ICBEaW1p
dHJpIEdsYXprb3YgIDxkZ2xhemtvdkBjaHJvbWl1bS5vcmc+CiAKKyAgICAgICAgS2lsbCB0cmFu
c2l0aXZlIGVmZmVjdHMgb2YgU2VsZWN0b3JDaGVja2VyOjpjaGVja09uZVNlbGVjdG9yLgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTc5NTMKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRpdGlvbmFsIGlu
Zm9ybWF0aW9uIG9mIHRoZSBjaGFuZ2Ugc3VjaCBhcyBhcHByb2FjaCwgcmF0aW9uYWxlLiBQbGVh
c2UgYWRkIHBlci1mdW5jdGlvbiBkZXNjcmlwdGlvbnMgYmVsb3cgKE9PUFMhKS4KKworICAgICAg
ICBObyBuZXcgdGVzdHMgKE9PUFMhKS4KKworICAgICAgICAqIGNzcy9TZWxlY3RvckNoZWNrZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U2VsZWN0b3JDaGVja2VyOjpjaGVja1NlbGVjdG9yKToK
KyAgICAgICAgKFdlYkNvcmU6OlNlbGVjdG9yQ2hlY2tlcjo6Y2hlY2tPbmVTZWxlY3Rvcik6Cisg
ICAgICAgICogY3NzL1NlbGVjdG9yQ2hlY2tlci5oOgorICAgICAgICAoV2ViQ29yZTo6U2VsZWN0
b3JDaGVja2VyOjpTZWxlY3RvckNoZWNraW5nQ29udGV4dDo6U2VsZWN0b3JDaGVja2luZ0NvbnRl
eHQpOgorICAgICAgICAoU2VsZWN0b3JDaGVja2luZ0NvbnRleHQpOgorCisyMDEyLTA5LTI4ICBE
aW1pdHJpIEdsYXprb3YgIDxkZ2xhemtvdkBjaHJvbWl1bS5vcmc+CisKICAgICAgICAgU2xpZ2h0
bHkgaW1wcm92ZSBjbGFyaXR5IG9mIHRoZSBwYXRjaCBpbiBidWcgNzg1OTUuCiAgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05Nzk0NAogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvU2VsZWN0b3JDaGVja2VyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9TZWxlY3RvckNoZWNrZXIuY3BwCmluZGV4IDQ4MTAzOWY0M2Y4NDRkYzg3MzQ4NzY0M2Fh
NTk0NmUyZDYyZTM3M2EuLmQ5MzU1MDI1OGNhNmE4ZDFhNWQyNmQ5MmJmZWU5ZDI0YTdjNWU3Nzkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TZWxlY3RvckNoZWNrZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy9TZWxlY3RvckNoZWNrZXIuY3BwCkBAIC00NDIsOSArNDQyLDI5
IEBAIGJvb2wgU2VsZWN0b3JDaGVja2VyOjppc0Zhc3RDaGVja2FibGVTZWxlY3Rvcihjb25zdCBD
U1NTZWxlY3Rvciogc2VsZWN0b3IpCiBTZWxlY3RvckNoZWNrZXI6OlNlbGVjdG9yTWF0Y2ggU2Vs
ZWN0b3JDaGVja2VyOjpjaGVja1NlbGVjdG9yKGNvbnN0IFNlbGVjdG9yQ2hlY2tpbmdDb250ZXh0
JiBjb250ZXh0LCBQc2V1ZG9JZCYgZHluYW1pY1BzZXVkbywgYm9vbCYgaGFzVW5rbm93blBzZXVk
b0VsZW1lbnRzKSBjb25zdAogewogICAgIC8vIGZpcnN0IHNlbGVjdG9yIGhhcyB0byBtYXRjaAot
ICAgIGlmICghY2hlY2tPbmVTZWxlY3Rvcihjb250ZXh0LCBkeW5hbWljUHNldWRvLCBoYXNVbmtu
b3duUHNldWRvRWxlbWVudHMpKQorICAgIGlmICghY2hlY2tPbmVTZWxlY3Rvcihjb250ZXh0KSkK
ICAgICAgICAgcmV0dXJuIFNlbGVjdG9yRmFpbHNMb2NhbGx5OwogCisgICAgLy8gRklYTUU6IE1h
eWJlIG1vdmUgdG8gYSBzZXBhcmF0ZSBmdW5jdGlvbj8hCisgICAgaWYgKGNvbnRleHQuc2VsZWN0
b3ItPm1fbWF0Y2ggPT0gQ1NTU2VsZWN0b3I6OlBzZXVkb0VsZW1lbnQpIHsKKyAgICAgICAgaWYg
KGNvbnRleHQuc2VsZWN0b3ItPmlzVW5rbm93blBzZXVkb0VsZW1lbnQoKSkgeworICAgICAgICAg
ICAgaGFzVW5rbm93blBzZXVkb0VsZW1lbnRzID0gdHJ1ZTsKKyAgICAgICAgICAgIGlmIChjb250
ZXh0LmVsZW1lbnQtPnNoYWRvd1BzZXVkb0lkKCkgIT0gY29udGV4dC5zZWxlY3Rvci0+dmFsdWUo
KSkKKyAgICAgICAgICAgICAgICByZXR1cm4gU2VsZWN0b3JGYWlsc0xvY2FsbHk7CisgICAgICAg
IH0gZWxzZSB7CisgICAgICAgICAgICBpZiAoKCFjb250ZXh0LmVsZW1lbnRTdHlsZSAmJiBtX21v
ZGUgPT0gUmVzb2x2aW5nU3R5bGUpIHx8IG1fbW9kZSA9PSBRdWVyeWluZ1J1bGVzKQorICAgICAg
ICAgICAgICAgIHJldHVybiBTZWxlY3RvckZhaWxzTG9jYWxseTsKKworICAgICAgICAgICAgUHNl
dWRvSWQgcHNldWRvSWQgPSBDU1NTZWxlY3Rvcjo6cHNldWRvSWQoY29udGV4dC5zZWxlY3Rvci0+
cHNldWRvVHlwZSgpKTsKKyAgICAgICAgICAgIGlmIChwc2V1ZG9JZCA9PSBGSVJTVF9MRVRURVIp
IHsKKyAgICAgICAgICAgICAgICBpZiAoRG9jdW1lbnQqIGRvY3VtZW50ID0gY29udGV4dC5lbGVt
ZW50LT5kb2N1bWVudCgpKQorICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC0+c3R5bGVTaGVl
dENvbGxlY3Rpb24oKS0+c2V0VXNlc0ZpcnN0TGV0dGVyUnVsZXModHJ1ZSk7CisgICAgICAgICAg
ICB9CisgICAgICAgICAgICBpZiAocHNldWRvSWQgIT0gTk9QU0VVRE8pCisgICAgICAgICAgICAg
ICAgZHluYW1pY1BzZXVkbyA9IHBzZXVkb0lkOworICAgICAgICB9CisgICAgfQorCiAgICAgLy8g
VGhlIHJlc3Qgb2YgdGhlIHNlbGVjdG9ycyBoYXMgdG8gbWF0Y2gKICAgICBDU1NTZWxlY3Rvcjo6
UmVsYXRpb24gcmVsYXRpb24gPSBjb250ZXh0LnNlbGVjdG9yLT5yZWxhdGlvbigpOwogCkBAIC00
NTUsNiArNDc1LDcgQEAgU2VsZWN0b3JDaGVja2VyOjpTZWxlY3Rvck1hdGNoIFNlbGVjdG9yQ2hl
Y2tlcjo6Y2hlY2tTZWxlY3Rvcihjb25zdCBTZWxlY3RvckNoZWMKIAogICAgIFNlbGVjdG9yQ2hl
Y2tpbmdDb250ZXh0IG5leHRDb250ZXh0KGNvbnRleHQpOwogICAgIG5leHRDb250ZXh0LnNlbGVj
dG9yID0gaGlzdG9yeVNlbGVjdG9yOworICAgIG5leHRDb250ZXh0LmR5bmFtaWNQc2V1ZG8gPSBk
eW5hbWljUHNldWRvOwogCiAgICAgUHNldWRvSWQgaWdub3JlRHluYW1pY1BzZXVkbyA9IE5PUFNF
VURPOwogICAgIGlmIChyZWxhdGlvbiAhPSBDU1NTZWxlY3Rvcjo6U3ViU2VsZWN0b3IpIHsKQEAg
LTcwNCw3ICs3MjUsNyBAQCBzdGF0aWMgYm9vbCBhbnlBdHRyaWJ1dGVNYXRjaGVzKEVsZW1lbnQq
IGVsZW1lbnQsIENTU1NlbGVjdG9yOjpNYXRjaCBtYXRjaCwgY29ucwogICAgIHJldHVybiBmYWxz
ZTsKIH0KIAotYm9vbCBTZWxlY3RvckNoZWNrZXI6OmNoZWNrT25lU2VsZWN0b3IoY29uc3QgU2Vs
ZWN0b3JDaGVja2luZ0NvbnRleHQmIGNvbnRleHQsIFBzZXVkb0lkJiBkeW5hbWljUHNldWRvLCBi
b29sJiBoYXNVbmtub3duUHNldWRvRWxlbWVudHMpIGNvbnN0Citib29sIFNlbGVjdG9yQ2hlY2tl
cjo6Y2hlY2tPbmVTZWxlY3Rvcihjb25zdCBTZWxlY3RvckNoZWNraW5nQ29udGV4dCYgY29udGV4
dCkgY29uc3QKIHsKICAgICBFbGVtZW50KiBjb25zdCAmIGVsZW1lbnQgPSBjb250ZXh0LmVsZW1l
bnQ7CiAgICAgQ1NTU2VsZWN0b3IqIGNvbnN0ICYgc2VsZWN0b3IgPSBjb250ZXh0LnNlbGVjdG9y
OwpAQCAtNzUxLDE0ICs3NzIsMTUgQEAgYm9vbCBTZWxlY3RvckNoZWNrZXI6OmNoZWNrT25lU2Vs
ZWN0b3IoY29uc3QgU2VsZWN0b3JDaGVja2luZ0NvbnRleHQmIGNvbnRleHQsIFAKICAgICAgICAg
ICAgICAgICAvLyBXZSBzZWxlY3QgYmV0d2VlbiA6dmlzaXRlZCBhbmQgOmxpbmsgd2hlbiBhcHBs
eWluZy4gV2UgZG9uJ3Qga25vdyB3aGljaCBvbmUgYXBwbGllZCAob3Igbm90KSB5ZXQuCiAgICAg
ICAgICAgICAgICAgaWYgKHN1YkNvbnRleHQuc2VsZWN0b3ItPnBzZXVkb1R5cGUoKSA9PSBDU1NT
ZWxlY3Rvcjo6UHNldWRvVmlzaXRlZCB8fCAoc3ViQ29udGV4dC5zZWxlY3Rvci0+cHNldWRvVHlw
ZSgpID09IENTU1NlbGVjdG9yOjpQc2V1ZG9MaW5rICYmIHN1YkNvbnRleHQudmlzaXRlZE1hdGNo
VHlwZSA9PSBWaXNpdGVkTWF0Y2hFbmFibGVkKSkKICAgICAgICAgICAgICAgICAgICAgcmV0dXJu
IHRydWU7Ci0gICAgICAgICAgICAgICAgaWYgKCFjaGVja09uZVNlbGVjdG9yKHN1YkNvbnRleHQs
IGR5bmFtaWNQc2V1ZG8sIGhhc1Vua25vd25Qc2V1ZG9FbGVtZW50cykpCisgICAgICAgICAgICAg
ICAgaWYgKCFjaGVja09uZVNlbGVjdG9yKHN1YkNvbnRleHQpKQogICAgICAgICAgICAgICAgICAg
ICByZXR1cm4gdHJ1ZTsKICAgICAgICAgICAgIH0KLSAgICAgICAgfSBlbHNlIGlmIChkeW5hbWlj
UHNldWRvICE9IE5PUFNFVURPICYmIChSZW5kZXJTY3JvbGxiYXI6OnNjcm9sbGJhckZvclN0eWxl
UmVzb2x2ZSgpIHx8IGR5bmFtaWNQc2V1ZG8gPT0gU0NST0xMQkFSX0NPUk5FUiB8fCBkeW5hbWlj
UHNldWRvID09IFJFU0laRVIpKSB7CisgICAgICAgIH0gZWxzZSBpZiAoY29udGV4dC5keW5hbWlj
UHNldWRvICE9IE5PUFNFVURPICYmIChSZW5kZXJTY3JvbGxiYXI6OnNjcm9sbGJhckZvclN0eWxl
UmVzb2x2ZSgpIHx8IGNvbnRleHQuZHluYW1pY1BzZXVkbyA9PSBTQ1JPTExCQVJfQ09STkVSIHx8
IGNvbnRleHQuZHluYW1pY1BzZXVkbyA9PSBSRVNJWkVSKSkgewogICAgICAgICAgICAgLy8gQ1NT
IHNjcm9sbGJhcnMgbWF0Y2ggYSBzcGVjaWZpYyBzdWJzZXQgb2YgcHNldWRvIGNsYXNzZXMsIGFu
ZCB0aGV5IGhhdmUgc3BlY2lhbGl6ZWQgcnVsZXMgZm9yIGVhY2gKICAgICAgICAgICAgIC8vIChz
aW5jZSB0aGVyZSBhcmUgbm8gZWxlbWVudHMgaW52b2x2ZWQpLgotICAgICAgICAgICAgcmV0dXJu
IGNoZWNrU2Nyb2xsYmFyUHNldWRvQ2xhc3Moc2VsZWN0b3IsIGR5bmFtaWNQc2V1ZG8pOwotICAg
ICAgICB9IGVsc2UgaWYgKGR5bmFtaWNQc2V1ZG8gPT0gU0VMRUNUSU9OKSB7CisgICAgICAgICAg
ICBQc2V1ZG9JZCBpZ25vcmVUaGlzQXJndW1lbnQ7CisgICAgICAgICAgICByZXR1cm4gY2hlY2tT
Y3JvbGxiYXJQc2V1ZG9DbGFzcyhzZWxlY3RvciwgaWdub3JlVGhpc0FyZ3VtZW50KTsKKyAgICAg
ICAgfSBlbHNlIGlmIChjb250ZXh0LmR5bmFtaWNQc2V1ZG8gPT0gU0VMRUNUSU9OKSB7CiAgICAg
ICAgICAgICBpZiAoc2VsZWN0b3ItPnBzZXVkb1R5cGUoKSA9PSBDU1NTZWxlY3Rvcjo6UHNldWRv
V2luZG93SW5hY3RpdmUpCiAgICAgICAgICAgICAgICAgcmV0dXJuICFtX2RvY3VtZW50LT5wYWdl
KCktPmZvY3VzQ29udHJvbGxlcigpLT5pc0FjdGl2ZSgpOwogICAgICAgICB9CkBAIC0xMDAwLDYg
KzEwMjIsOCBAQCBib29sIFNlbGVjdG9yQ2hlY2tlcjo6Y2hlY2tPbmVTZWxlY3Rvcihjb25zdCBT
ZWxlY3RvckNoZWNraW5nQ29udGV4dCYgY29udGV4dCwgUAogICAgICAgICAgICAgewogICAgICAg
ICAgICAgICAgIFNlbGVjdG9yQ2hlY2tpbmdDb250ZXh0IHN1YkNvbnRleHQoY29udGV4dCk7CiAg
ICAgICAgICAgICAgICAgc3ViQ29udGV4dC5pc1N1YlNlbGVjdG9yID0gdHJ1ZTsKKyAgICAgICAg
ICAgICAgICBib29sIGhhc1Vua25vd25Qc2V1ZG9FbGVtZW50cyA9IGZhbHNlOworICAgICAgICAg
ICAgICAgIFBzZXVkb0lkIGR5bmFtaWNQc2V1ZG8gPSBOT1BTRVVETzsKICAgICAgICAgICAgICAg
ICBmb3IgKHN1YkNvbnRleHQuc2VsZWN0b3IgPSBzZWxlY3Rvci0+c2VsZWN0b3JMaXN0KCktPmZp
cnN0KCk7IHN1YkNvbnRleHQuc2VsZWN0b3I7IHN1YkNvbnRleHQuc2VsZWN0b3IgPSBDU1NTZWxl
Y3Rvckxpc3Q6Om5leHQoc3ViQ29udGV4dC5zZWxlY3RvcikpIHsKICAgICAgICAgICAgICAgICAg
ICAgaWYgKGNoZWNrU2VsZWN0b3Ioc3ViQ29udGV4dCwgZHluYW1pY1BzZXVkbywgaGFzVW5rbm93
blBzZXVkb0VsZW1lbnRzKSA9PSBTZWxlY3Rvck1hdGNoZXMpCiAgICAgICAgICAgICAgICAgICAg
ICAgICByZXR1cm4gdHJ1ZTsKQEAgLTExNzUsMjMgKzExOTksNiBAQCBib29sIFNlbGVjdG9yQ2hl
Y2tlcjo6Y2hlY2tPbmVTZWxlY3Rvcihjb25zdCBTZWxlY3RvckNoZWNraW5nQ29udGV4dCYgY29u
dGV4dCwgUAogICAgICAgICB9CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9Ci0gICAgaWYg
KHNlbGVjdG9yLT5tX21hdGNoID09IENTU1NlbGVjdG9yOjpQc2V1ZG9FbGVtZW50KSB7Ci0gICAg
ICAgIGlmIChzZWxlY3Rvci0+aXNVbmtub3duUHNldWRvRWxlbWVudCgpKSB7Ci0gICAgICAgICAg
ICBoYXNVbmtub3duUHNldWRvRWxlbWVudHMgPSB0cnVlOwotICAgICAgICAgICAgcmV0dXJuIGVs
ZW1lbnQtPnNoYWRvd1BzZXVkb0lkKCkgPT0gc2VsZWN0b3ItPnZhbHVlKCk7Ci0gICAgICAgIH0K
LQotICAgICAgICBpZiAoKCFjb250ZXh0LmVsZW1lbnRTdHlsZSAmJiBtX21vZGUgPT0gUmVzb2x2
aW5nU3R5bGUpIHx8IG1fbW9kZSA9PSBRdWVyeWluZ1J1bGVzKQotICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOwotCi0gICAgICAgIFBzZXVkb0lkIHBzZXVkb0lkID0gQ1NTU2VsZWN0b3I6OnBzZXVk
b0lkKHNlbGVjdG9yLT5wc2V1ZG9UeXBlKCkpOwotICAgICAgICBpZiAocHNldWRvSWQgPT0gRklS
U1RfTEVUVEVSKSB7Ci0gICAgICAgICAgICBpZiAoRG9jdW1lbnQqIGRvY3VtZW50ID0gZWxlbWVu
dC0+ZG9jdW1lbnQoKSkKLSAgICAgICAgICAgICAgICBkb2N1bWVudC0+c3R5bGVTaGVldENvbGxl
Y3Rpb24oKS0+c2V0VXNlc0ZpcnN0TGV0dGVyUnVsZXModHJ1ZSk7Ci0gICAgICAgIH0KLSAgICAg
ICAgaWYgKHBzZXVkb0lkICE9IE5PUFNFVURPKQotICAgICAgICAgICAgZHluYW1pY1BzZXVkbyA9
IHBzZXVkb0lkOwotICAgIH0KICAgICAvLyAjIyMgYWRkIHRoZSByZXN0IG9mIHRoZSBjaGVja3Mu
Li4KICAgICByZXR1cm4gdHJ1ZTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9T
ZWxlY3RvckNoZWNrZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TZWxlY3RvckNoZWNrZXIuaApp
bmRleCBmMTVjZTBkMDhlZTQzMjk4YjQxMjA0MTJjZjc2ZDk1YWE1YmYzYzAxLi45NDk4MDEwNDVk
ODg5NmVjNDllMmUyNmM5MzYzNmRhZjY2YWJjMTg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvU2VsZWN0b3JDaGVja2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1NlbGVjdG9y
Q2hlY2tlci5oCkBAIC02NSw2ICs2NSw3IEBAIHB1YmxpYzoKICAgICAgICAgICAgICwgZWxlbWVu
dFBhcmVudFN0eWxlKDApCiAgICAgICAgICAgICAsIGlzU3ViU2VsZWN0b3IoZmFsc2UpCiAgICAg
ICAgICAgICAsIHBzZXVkb1N0eWxlKE5PUFNFVURPKQorICAgICAgICAgICAgLCBkeW5hbWljUHNl
dWRvKE5PUFNFVURPKQogICAgICAgICB7IH0KIAogICAgICAgICBDU1NTZWxlY3Rvciogc2VsZWN0
b3I7CkBAIC03NSw2ICs3Niw4IEBAIHB1YmxpYzoKICAgICAgICAgUmVuZGVyU3R5bGUqIGVsZW1l
bnRQYXJlbnRTdHlsZTsKICAgICAgICAgYm9vbCBpc1N1YlNlbGVjdG9yOwogICAgICAgICBQc2V1
ZG9JZCBwc2V1ZG9TdHlsZTsKKyAgICAgICAgLy8gRklYTUU6IE5lZWRzIGJldHRlciBOYW1lISEh
CisgICAgICAgIFBzZXVkb0lkIGR5bmFtaWNQc2V1ZG87CiAgICAgfTsKIAogICAgIGJvb2wgY2hl
Y2tTZWxlY3RvcihDU1NTZWxlY3RvciosIEVsZW1lbnQqLCBib29sIGlzRmFzdENoZWNrYWJsZVNl
bGVjdG9yID0gZmFsc2UpIGNvbnN0OwpAQCAtMTE3LDcgKzEyMCw3IEBAIHB1YmxpYzoKICAgICBz
dGF0aWMgYm9vbCBlbGVtZW50TWF0Y2hlc1NlbGVjdG9yU2NvcGVzKGNvbnN0IFN0eWxlZEVsZW1l
bnQqLCBjb25zdCBIYXNoU2V0PEF0b21pY1N0cmluZ0ltcGwqPiYgaWRTY29wZXMsIGNvbnN0IEhh
c2hTZXQ8QXRvbWljU3RyaW5nSW1wbCo+JiBjbGFzc1Njb3Blcyk7CiAKIHByaXZhdGU6Ci0gICAg
Ym9vbCBjaGVja09uZVNlbGVjdG9yKGNvbnN0IFNlbGVjdG9yQ2hlY2tpbmdDb250ZXh0JiwgUHNl
dWRvSWQmLCBib29sJiBoYXNVbmtub3duUHNldWRvRWxlbWVudHMpIGNvbnN0OworICAgIGJvb2wg
Y2hlY2tPbmVTZWxlY3Rvcihjb25zdCBTZWxlY3RvckNoZWNraW5nQ29udGV4dCYpIGNvbnN0Owog
ICAgIGJvb2wgY2hlY2tTY3JvbGxiYXJQc2V1ZG9DbGFzcyhDU1NTZWxlY3RvciosIFBzZXVkb0lk
JiBkeW5hbWljUHNldWRvKSBjb25zdDsKICAgICBzdGF0aWMgYm9vbCBpc0ZyYW1lRm9jdXNlZChj
b25zdCBFbGVtZW50Kik7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>166546</attachid>
            <date>2012-10-01 14:41:17 -0700</date>
            <delta_ts>2012-10-01 14:43:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-97953-20121001144031.patch</filename>
            <type>text/plain</type>
            <size>10082</size>
            <attacher name="Dimitri Glazkov (Google)">dglazkov</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMwMDU3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmNmYTcxZDIxNjc5NzY5
OWY2NjcwN2U2MjhmN2U0YjgzZjdiMDQ1OS4uNWZhOWVlOGRhYzUwMmRjYjEzN2MzMjE0NmU4ZWE0
NDdjNDA5MmVhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDEyLTA5LTI4ICBEaW1p
dHJpIEdsYXprb3YgIDxkZ2xhemtvdkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgS2lsbCB0cmFu
c2l0aXZlIGVmZmVjdHMgb2YgU2VsZWN0b3JDaGVja2VyOjpjaGVja09uZVNlbGVjdG9yLgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTc5NTMKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgZHluYW1pY1Bz
ZXVkby9oYXNVbmtub3duUHNldWRvZWxlbWVudHMgYnktcmVmIHBhcmFtZXRlcnMgdGhhdCBhcmUg
cGFzc2VkIGludG8gY2hlY2tPbmVTZWxlY3RvciBtYWtlIHRoZSBsb2dpYyBoYXJkZXIgdG8gdW5k
ZXJzdGFuZCBhbmQgYXJlbid0IG5lZWRlZC4gUmVmYWN0b3IgdGhlIGNvZGUgdG8gcmlkIG9mIHRo
ZW0sIHJlcGxhY2luZyB0aGVtIGluc3RlYWQgd2l0aCB0d28gZmxhZ3MgaW4gU2VsZWN0b3JDaGVj
a2luZ0NvbnRleHQuCisgICAgICAgIAorICAgICAgICBObyBjaGFuZ2UgaW4gYmVoYXZpb3IsIGNv
dmVyZWQgYnkgZXhpc3RpbmcgdGVzdHMuCisKKyAgICAgICAgKiBjc3MvU2VsZWN0b3JDaGVja2Vy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNlbGVjdG9yQ2hlY2tlcjo6Y2hlY2tTZWxlY3Rvcik6
IFJvbGxlZCBwc2V1ZG8tZWxlbWVudC1jaGVja2luZyBjb2RlIG91dCBvZiBjaGVja09uZVNlbGVj
dG9yIGludG8gaGVyZSwgc2luY2UgdGhhdCBpcyB3aGVyZSB0CisgICAgICAgIChXZWJDb3JlOjpT
ZWxlY3RvckNoZWNrZXI6OmNoZWNrT25lU2VsZWN0b3IpOiBDaGFuZ2VkIHRvIHVzZSBTZWxlY3Rv
ckNoZWNraW5nQ29udGV4dCByYXRoZXIgdGhhbiB0cmFuc2l0aXZlIHBhcmFtcy4KKyAgICAgICAg
KiBjc3MvU2VsZWN0b3JDaGVja2VyLmg6CisgICAgICAgIChXZWJDb3JlOjpTZWxlY3RvckNoZWNr
ZXI6OlNlbGVjdG9yQ2hlY2tpbmdDb250ZXh0OjpTZWxlY3RvckNoZWNraW5nQ29udGV4dCk6IEFk
ZGVkIHR3byBuZXcgZmxhZ3MuCisgICAgICAgIChTZWxlY3RvckNoZWNraW5nQ29udGV4dCk6IERp
dHRvLgorCisKIDIwMTItMTAtMDEgIEFycGl0YSBCYWh1Z3VuYSAgPGFycGl0YWJhaHVndW5hQGdt
YWlsLmNvbT4KIAogICAgICAgICBSZW5kZXJCbG9jayBpbmNvcnJlY3RseSBjYWxjdWxhdGVzIHBy
ZWYgd2lkdGggd2hlbiBhIHJlcGxhY2VkIG9iamVjdCBmb2xsb3dzIGEgUmVuZGVySW5saW5lIHdp
dGggd2lkdGgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TZWxlY3RvckNoZWNrZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL1NlbGVjdG9yQ2hlY2tlci5jcHAKaW5kZXggNDE3N2Ey
YjQ2MTcxNWExNjg5NTQ5OWM3ZjhkYTk0MTVlNzExZTY2Ni4uNDAzYjIxOGFmOWZjYmM2ZjZiNGJj
NGZkMmMwMzY3ZWFjYmI1YTY5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1NlbGVj
dG9yQ2hlY2tlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1NlbGVjdG9yQ2hlY2tlci5j
cHAKQEAgLTI2Niw5ICsyNjYsOSBAQCBib29sIFNlbGVjdG9yQ2hlY2tlcjo6Y2hlY2tTZWxlY3Rv
cihDU1NTZWxlY3Rvciogc2VsLCBFbGVtZW50KiBlbGVtZW50LCBib29sIGlzRgogICAgICAgICBy
ZXR1cm4gZmFzdENoZWNrU2VsZWN0b3Ioc2VsLCBlbGVtZW50KTsKICAgICB9CiAKLSAgICBQc2V1
ZG9JZCBkeW5hbWljUHNldWRvID0gTk9QU0VVRE87CisgICAgUHNldWRvSWQgaWdub3JlRHluYW1p
Y1BzZXVkbyA9IE5PUFNFVURPOwogICAgIGJvb2wgaGFzVW5rbm93blBzZXVkb0VsZW1lbnRzID0g
ZmFsc2U7Ci0gICAgcmV0dXJuIGNoZWNrU2VsZWN0b3IoU2VsZWN0b3JDaGVja2luZ0NvbnRleHQo
c2VsLCBlbGVtZW50LCBTZWxlY3RvckNoZWNrZXI6OlZpc2l0ZWRNYXRjaERpc2FibGVkKSwgZHlu
YW1pY1BzZXVkbywgaGFzVW5rbm93blBzZXVkb0VsZW1lbnRzKSA9PSBTZWxlY3Rvck1hdGNoZXM7
CisgICAgcmV0dXJuIGNoZWNrU2VsZWN0b3IoU2VsZWN0b3JDaGVja2luZ0NvbnRleHQoc2VsLCBl
bGVtZW50LCBTZWxlY3RvckNoZWNrZXI6OlZpc2l0ZWRNYXRjaERpc2FibGVkKSwgaWdub3JlRHlu
YW1pY1BzZXVkbywgaGFzVW5rbm93blBzZXVkb0VsZW1lbnRzKSA9PSBTZWxlY3Rvck1hdGNoZXM7
CiB9CiAKIG5hbWVzcGFjZSB7CkBAIC00NDIsOSArNDQyLDI4IEBAIGJvb2wgU2VsZWN0b3JDaGVj
a2VyOjppc0Zhc3RDaGVja2FibGVTZWxlY3Rvcihjb25zdCBDU1NTZWxlY3Rvciogc2VsZWN0b3Ip
CiBTZWxlY3RvckNoZWNrZXI6OlNlbGVjdG9yTWF0Y2ggU2VsZWN0b3JDaGVja2VyOjpjaGVja1Nl
bGVjdG9yKGNvbnN0IFNlbGVjdG9yQ2hlY2tpbmdDb250ZXh0JiBjb250ZXh0LCBQc2V1ZG9JZCYg
ZHluYW1pY1BzZXVkbywgYm9vbCYgaGFzVW5rbm93blBzZXVkb0VsZW1lbnRzKSBjb25zdAogewog
ICAgIC8vIGZpcnN0IHNlbGVjdG9yIGhhcyB0byBtYXRjaAotICAgIGlmICghY2hlY2tPbmVTZWxl
Y3Rvcihjb250ZXh0LCBkeW5hbWljUHNldWRvLCBoYXNVbmtub3duUHNldWRvRWxlbWVudHMpKQor
ICAgIGlmICghY2hlY2tPbmVTZWxlY3Rvcihjb250ZXh0KSkKICAgICAgICAgcmV0dXJuIFNlbGVj
dG9yRmFpbHNMb2NhbGx5OwogCisgICAgaWYgKGNvbnRleHQuc2VsZWN0b3ItPm1fbWF0Y2ggPT0g
Q1NTU2VsZWN0b3I6OlBzZXVkb0VsZW1lbnQpIHsKKyAgICAgICAgaWYgKGNvbnRleHQuc2VsZWN0
b3ItPmlzVW5rbm93blBzZXVkb0VsZW1lbnQoKSkgeworICAgICAgICAgICAgaGFzVW5rbm93blBz
ZXVkb0VsZW1lbnRzID0gdHJ1ZTsKKyAgICAgICAgICAgIGlmIChjb250ZXh0LmVsZW1lbnQtPnNo
YWRvd1BzZXVkb0lkKCkgIT0gY29udGV4dC5zZWxlY3Rvci0+dmFsdWUoKSkKKyAgICAgICAgICAg
ICAgICByZXR1cm4gU2VsZWN0b3JGYWlsc0xvY2FsbHk7CisgICAgICAgIH0gZWxzZSB7CisgICAg
ICAgICAgICBpZiAoKCFjb250ZXh0LmVsZW1lbnRTdHlsZSAmJiBtX21vZGUgPT0gUmVzb2x2aW5n
U3R5bGUpIHx8IG1fbW9kZSA9PSBRdWVyeWluZ1J1bGVzKQorICAgICAgICAgICAgICAgIHJldHVy
biBTZWxlY3RvckZhaWxzTG9jYWxseTsKKworICAgICAgICAgICAgUHNldWRvSWQgcHNldWRvSWQg
PSBDU1NTZWxlY3Rvcjo6cHNldWRvSWQoY29udGV4dC5zZWxlY3Rvci0+cHNldWRvVHlwZSgpKTsK
KyAgICAgICAgICAgIGlmIChwc2V1ZG9JZCA9PSBGSVJTVF9MRVRURVIpIHsKKyAgICAgICAgICAg
ICAgICBpZiAoRG9jdW1lbnQqIGRvY3VtZW50ID0gY29udGV4dC5lbGVtZW50LT5kb2N1bWVudCgp
KQorICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC0+c3R5bGVTaGVldENvbGxlY3Rpb24oKS0+
c2V0VXNlc0ZpcnN0TGV0dGVyUnVsZXModHJ1ZSk7CisgICAgICAgICAgICB9CisgICAgICAgICAg
ICBpZiAocHNldWRvSWQgIT0gTk9QU0VVRE8pCisgICAgICAgICAgICAgICAgZHluYW1pY1BzZXVk
byA9IHBzZXVkb0lkOworICAgICAgICB9CisgICAgfQorCiAgICAgLy8gVGhlIHJlc3Qgb2YgdGhl
IHNlbGVjdG9ycyBoYXMgdG8gbWF0Y2gKICAgICBDU1NTZWxlY3Rvcjo6UmVsYXRpb24gcmVsYXRp
b24gPSBjb250ZXh0LnNlbGVjdG9yLT5yZWxhdGlvbigpOwogCkBAIC01MzIsOCArNTUxLDExIEBA
IFNlbGVjdG9yQ2hlY2tlcjo6U2VsZWN0b3JNYXRjaCBTZWxlY3RvckNoZWNrZXI6OmNoZWNrU2Vs
ZWN0b3IoY29uc3QgU2VsZWN0b3JDaGVjCiAgICAgICAgIC8vIGEgc2VsZWN0b3IgaXMgaW52YWxp
ZCBpZiBzb21ldGhpbmcgZm9sbG93cyBhIHBzZXVkby1lbGVtZW50CiAgICAgICAgIC8vIFdlIG1h
a2UgYW4gZXhjZXB0aW9uIGZvciBzY3JvbGxiYXIgcHNldWRvIGVsZW1lbnRzIGFuZCBhbGxvdyBh
IHNldCBvZiBwc2V1ZG8gY2xhc3NlcyAoYnV0IG5vdGhpbmcgZWxzZSkKICAgICAgICAgLy8gdG8g
Zm9sbG93IHRoZSBwc2V1ZG8gZWxlbWVudHMuCi0gICAgICAgIGlmICgoY29udGV4dC5lbGVtZW50
U3R5bGUgfHwgbV9tb2RlID09IENvbGxlY3RpbmdSdWxlcyB8fCBtX21vZGUgPT0gUXVlcnlpbmdS
dWxlcykgJiYgZHluYW1pY1BzZXVkbyAhPSBOT1BTRVVETyAmJiBkeW5hbWljUHNldWRvICE9IFNF
TEVDVElPTgotICAgICAgICAgICAgICYmICEoKFJlbmRlclNjcm9sbGJhcjo6c2Nyb2xsYmFyRm9y
U3R5bGVSZXNvbHZlKCkgfHwgZHluYW1pY1BzZXVkbyA9PSBTQ1JPTExCQVJfQ09STkVSIHx8IGR5
bmFtaWNQc2V1ZG8gPT0gUkVTSVpFUikgJiYgbmV4dENvbnRleHQuc2VsZWN0b3ItPm1fbWF0Y2gg
PT0gQ1NTU2VsZWN0b3I6OlBzZXVkb0NsYXNzKSkKKyAgICAgICAgbmV4dENvbnRleHQuaGFzU2Ny
b2xsYmFyUHNldWRvID0gUmVuZGVyU2Nyb2xsYmFyOjpzY3JvbGxiYXJGb3JTdHlsZVJlc29sdmUo
KSB8fCBkeW5hbWljUHNldWRvID09IFNDUk9MTEJBUl9DT1JORVIgfHwgZHluYW1pY1BzZXVkbyA9
PSBSRVNJWkVSOworICAgICAgICBuZXh0Q29udGV4dC5oYXNTZWxlY3Rpb25Qc2V1ZG8gPSBkeW5h
bWljUHNldWRvID09IFNFTEVDVElPTjsKKyAgICAgICAgaWYgKChjb250ZXh0LmVsZW1lbnRTdHls
ZSB8fCBtX21vZGUgPT0gQ29sbGVjdGluZ1J1bGVzIHx8IG1fbW9kZSA9PSBRdWVyeWluZ1J1bGVz
KSAmJiBkeW5hbWljUHNldWRvICE9IE5PUFNFVURPCisgICAgICAgICAgICAmJiAhbmV4dENvbnRl
eHQuaGFzU2VsZWN0aW9uUHNldWRvCisgICAgICAgICAgICAmJiAhKG5leHRDb250ZXh0Lmhhc1Nj
cm9sbGJhclBzZXVkbyAmJiBuZXh0Q29udGV4dC5zZWxlY3Rvci0+bV9tYXRjaCA9PSBDU1NTZWxl
Y3Rvcjo6UHNldWRvQ2xhc3MpKQogICAgICAgICAgICAgcmV0dXJuIFNlbGVjdG9yRmFpbHNDb21w
bGV0ZWx5OwogICAgICAgICBuZXh0Q29udGV4dC5pc1N1YlNlbGVjdG9yID0gdHJ1ZTsKICAgICAg
ICAgcmV0dXJuIGNoZWNrU2VsZWN0b3IobmV4dENvbnRleHQsIGR5bmFtaWNQc2V1ZG8sIGhhc1Vu
a25vd25Qc2V1ZG9FbGVtZW50cyk7CkBAIC03MDQsNyArNzI2LDcgQEAgc3RhdGljIGJvb2wgYW55
QXR0cmlidXRlTWF0Y2hlcyhFbGVtZW50KiBlbGVtZW50LCBDU1NTZWxlY3Rvcjo6TWF0Y2ggbWF0
Y2gsIGNvbnMKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLWJvb2wgU2VsZWN0b3JDaGVja2VyOjpj
aGVja09uZVNlbGVjdG9yKGNvbnN0IFNlbGVjdG9yQ2hlY2tpbmdDb250ZXh0JiBjb250ZXh0LCBQ
c2V1ZG9JZCYgZHluYW1pY1BzZXVkbywgYm9vbCYgaGFzVW5rbm93blBzZXVkb0VsZW1lbnRzKSBj
b25zdAorYm9vbCBTZWxlY3RvckNoZWNrZXI6OmNoZWNrT25lU2VsZWN0b3IoY29uc3QgU2VsZWN0
b3JDaGVja2luZ0NvbnRleHQmIGNvbnRleHQpIGNvbnN0CiB7CiAgICAgRWxlbWVudCogY29uc3Qg
JiBlbGVtZW50ID0gY29udGV4dC5lbGVtZW50OwogICAgIENTU1NlbGVjdG9yKiBjb25zdCAmIHNl
bGVjdG9yID0gY29udGV4dC5zZWxlY3RvcjsKQEAgLTc1MSwxNCArNzczLDE0IEBAIGJvb2wgU2Vs
ZWN0b3JDaGVja2VyOjpjaGVja09uZVNlbGVjdG9yKGNvbnN0IFNlbGVjdG9yQ2hlY2tpbmdDb250
ZXh0JiBjb250ZXh0LCBQCiAgICAgICAgICAgICAgICAgLy8gV2Ugc2VsZWN0IGJldHdlZW4gOnZp
c2l0ZWQgYW5kIDpsaW5rIHdoZW4gYXBwbHlpbmcuIFdlIGRvbid0IGtub3cgd2hpY2ggb25lIGFw
cGxpZWQgKG9yIG5vdCkgeWV0LgogICAgICAgICAgICAgICAgIGlmIChzdWJDb250ZXh0LnNlbGVj
dG9yLT5wc2V1ZG9UeXBlKCkgPT0gQ1NTU2VsZWN0b3I6OlBzZXVkb1Zpc2l0ZWQgfHwgKHN1YkNv
bnRleHQuc2VsZWN0b3ItPnBzZXVkb1R5cGUoKSA9PSBDU1NTZWxlY3Rvcjo6UHNldWRvTGluayAm
JiBzdWJDb250ZXh0LnZpc2l0ZWRNYXRjaFR5cGUgPT0gVmlzaXRlZE1hdGNoRW5hYmxlZCkpCiAg
ICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICAgICAgICAgIGlmICghY2hl
Y2tPbmVTZWxlY3RvcihzdWJDb250ZXh0LCBkeW5hbWljUHNldWRvLCBoYXNVbmtub3duUHNldWRv
RWxlbWVudHMpKQorICAgICAgICAgICAgICAgIGlmICghY2hlY2tPbmVTZWxlY3RvcihzdWJDb250
ZXh0KSkKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgICAgICB9Ci0g
ICAgICAgIH0gZWxzZSBpZiAoZHluYW1pY1BzZXVkbyAhPSBOT1BTRVVETyAmJiAoUmVuZGVyU2Ny
b2xsYmFyOjpzY3JvbGxiYXJGb3JTdHlsZVJlc29sdmUoKSB8fCBkeW5hbWljUHNldWRvID09IFND
Uk9MTEJBUl9DT1JORVIgfHwgZHluYW1pY1BzZXVkbyA9PSBSRVNJWkVSKSkgeworICAgICAgICB9
IGVsc2UgaWYgKGNvbnRleHQuaGFzU2Nyb2xsYmFyUHNldWRvKSB7CiAgICAgICAgICAgICAvLyBD
U1Mgc2Nyb2xsYmFycyBtYXRjaCBhIHNwZWNpZmljIHN1YnNldCBvZiBwc2V1ZG8gY2xhc3Nlcywg
YW5kIHRoZXkgaGF2ZSBzcGVjaWFsaXplZCBydWxlcyBmb3IgZWFjaAogICAgICAgICAgICAgLy8g
KHNpbmNlIHRoZXJlIGFyZSBubyBlbGVtZW50cyBpbnZvbHZlZCkuCiAgICAgICAgICAgICByZXR1
cm4gY2hlY2tTY3JvbGxiYXJQc2V1ZG9DbGFzcyhzZWxlY3Rvcik7Ci0gICAgICAgIH0gZWxzZSBp
ZiAoZHluYW1pY1BzZXVkbyA9PSBTRUxFQ1RJT04pIHsKKyAgICAgICAgfSBlbHNlIGlmIChjb250
ZXh0Lmhhc1NlbGVjdGlvblBzZXVkbykgewogICAgICAgICAgICAgaWYgKHNlbGVjdG9yLT5wc2V1
ZG9UeXBlKCkgPT0gQ1NTU2VsZWN0b3I6OlBzZXVkb1dpbmRvd0luYWN0aXZlKQogICAgICAgICAg
ICAgICAgIHJldHVybiAhbV9kb2N1bWVudC0+cGFnZSgpLT5mb2N1c0NvbnRyb2xsZXIoKS0+aXNB
Y3RpdmUoKTsKICAgICAgICAgfQpAQCAtMTAwMCw4ICsxMDIyLDEwIEBAIGJvb2wgU2VsZWN0b3JD
aGVja2VyOjpjaGVja09uZVNlbGVjdG9yKGNvbnN0IFNlbGVjdG9yQ2hlY2tpbmdDb250ZXh0JiBj
b250ZXh0LCBQCiAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgU2VsZWN0b3JDaGVja2lu
Z0NvbnRleHQgc3ViQ29udGV4dChjb250ZXh0KTsKICAgICAgICAgICAgICAgICBzdWJDb250ZXh0
LmlzU3ViU2VsZWN0b3IgPSB0cnVlOworICAgICAgICAgICAgICAgIGJvb2wgaGFzVW5rbm93blBz
ZXVkb0VsZW1lbnRzID0gZmFsc2U7CisgICAgICAgICAgICAgICAgUHNldWRvSWQgaWdub3JlRHlu
YW1pY1BzZXVkbyA9IE5PUFNFVURPOwogICAgICAgICAgICAgICAgIGZvciAoc3ViQ29udGV4dC5z
ZWxlY3RvciA9IHNlbGVjdG9yLT5zZWxlY3Rvckxpc3QoKS0+Zmlyc3QoKTsgc3ViQ29udGV4dC5z
ZWxlY3Rvcjsgc3ViQ29udGV4dC5zZWxlY3RvciA9IENTU1NlbGVjdG9yTGlzdDo6bmV4dChzdWJD
b250ZXh0LnNlbGVjdG9yKSkgewotICAgICAgICAgICAgICAgICAgICBpZiAoY2hlY2tTZWxlY3Rv
cihzdWJDb250ZXh0LCBkeW5hbWljUHNldWRvLCBoYXNVbmtub3duUHNldWRvRWxlbWVudHMpID09
IFNlbGVjdG9yTWF0Y2hlcykKKyAgICAgICAgICAgICAgICAgICAgaWYgKGNoZWNrU2VsZWN0b3Io
c3ViQ29udGV4dCwgaWdub3JlRHluYW1pY1BzZXVkbywgaGFzVW5rbm93blBzZXVkb0VsZW1lbnRz
KSA9PSBTZWxlY3Rvck1hdGNoZXMpCiAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1
ZTsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9CkBAIC0xMTc1LDIzICsxMTk5LDYg
QEAgYm9vbCBTZWxlY3RvckNoZWNrZXI6OmNoZWNrT25lU2VsZWN0b3IoY29uc3QgU2VsZWN0b3JD
aGVja2luZ0NvbnRleHQmIGNvbnRleHQsIFAKICAgICAgICAgfQogICAgICAgICByZXR1cm4gZmFs
c2U7CiAgICAgfQotICAgIGlmIChzZWxlY3Rvci0+bV9tYXRjaCA9PSBDU1NTZWxlY3Rvcjo6UHNl
dWRvRWxlbWVudCkgewotICAgICAgICBpZiAoc2VsZWN0b3ItPmlzVW5rbm93blBzZXVkb0VsZW1l
bnQoKSkgewotICAgICAgICAgICAgaGFzVW5rbm93blBzZXVkb0VsZW1lbnRzID0gdHJ1ZTsKLSAg
ICAgICAgICAgIHJldHVybiBlbGVtZW50LT5zaGFkb3dQc2V1ZG9JZCgpID09IHNlbGVjdG9yLT52
YWx1ZSgpOwotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKCghY29udGV4dC5lbGVtZW50U3R5bGUg
JiYgbV9tb2RlID09IFJlc29sdmluZ1N0eWxlKSB8fCBtX21vZGUgPT0gUXVlcnlpbmdSdWxlcykK
LSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgICAgICBQc2V1ZG9JZCBwc2V1ZG9JZCA9
IENTU1NlbGVjdG9yOjpwc2V1ZG9JZChzZWxlY3Rvci0+cHNldWRvVHlwZSgpKTsKLSAgICAgICAg
aWYgKHBzZXVkb0lkID09IEZJUlNUX0xFVFRFUikgewotICAgICAgICAgICAgaWYgKERvY3VtZW50
KiBkb2N1bWVudCA9IGVsZW1lbnQtPmRvY3VtZW50KCkpCi0gICAgICAgICAgICAgICAgZG9jdW1l
bnQtPnN0eWxlU2hlZXRDb2xsZWN0aW9uKCktPnNldFVzZXNGaXJzdExldHRlclJ1bGVzKHRydWUp
OwotICAgICAgICB9Ci0gICAgICAgIGlmIChwc2V1ZG9JZCAhPSBOT1BTRVVETykKLSAgICAgICAg
ICAgIGR5bmFtaWNQc2V1ZG8gPSBwc2V1ZG9JZDsKLSAgICB9CiAgICAgLy8gIyMjIGFkZCB0aGUg
cmVzdCBvZiB0aGUgY2hlY2tzLi4uCiAgICAgcmV0dXJuIHRydWU7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9jc3MvU2VsZWN0b3JDaGVja2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
U2VsZWN0b3JDaGVja2VyLmgKaW5kZXggNjYxNzYxNTUyNjI4MDM0YzYzODdiZjQ5ZTAxNTViNDc1
MDIyM2Q2MC4uNzllYmFmNjU5NmEzYTcwNDA5ZjY1NjcyZDk1Y2MyZmZjZWVjZmI1YyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1NlbGVjdG9yQ2hlY2tlci5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9TZWxlY3RvckNoZWNrZXIuaApAQCAtNjUsNiArNjUsOCBAQCBwdWJsaWM6CiAg
ICAgICAgICAgICAsIGVsZW1lbnRQYXJlbnRTdHlsZSgwKQogICAgICAgICAgICAgLCBpc1N1YlNl
bGVjdG9yKGZhbHNlKQogICAgICAgICAgICAgLCBwc2V1ZG9TdHlsZShOT1BTRVVETykKKyAgICAg
ICAgICAgICwgaGFzU2Nyb2xsYmFyUHNldWRvKGZhbHNlKQorICAgICAgICAgICAgLCBoYXNTZWxl
Y3Rpb25Qc2V1ZG8oZmFsc2UpCiAgICAgICAgIHsgfQogCiAgICAgICAgIENTU1NlbGVjdG9yKiBz
ZWxlY3RvcjsKQEAgLTc1LDYgKzc3LDggQEAgcHVibGljOgogICAgICAgICBSZW5kZXJTdHlsZSog
ZWxlbWVudFBhcmVudFN0eWxlOwogICAgICAgICBib29sIGlzU3ViU2VsZWN0b3I7CiAgICAgICAg
IFBzZXVkb0lkIHBzZXVkb1N0eWxlOworICAgICAgICBib29sIGhhc1Njcm9sbGJhclBzZXVkbzsK
KyAgICAgICAgYm9vbCBoYXNTZWxlY3Rpb25Qc2V1ZG87CiAgICAgfTsKIAogICAgIGJvb2wgY2hl
Y2tTZWxlY3RvcihDU1NTZWxlY3RvciosIEVsZW1lbnQqLCBib29sIGlzRmFzdENoZWNrYWJsZVNl
bGVjdG9yID0gZmFsc2UpIGNvbnN0OwpAQCAtMTE3LDcgKzEyMSw3IEBAIHB1YmxpYzoKICAgICBz
dGF0aWMgYm9vbCBlbGVtZW50TWF0Y2hlc1NlbGVjdG9yU2NvcGVzKGNvbnN0IFN0eWxlZEVsZW1l
bnQqLCBjb25zdCBIYXNoU2V0PEF0b21pY1N0cmluZ0ltcGwqPiYgaWRTY29wZXMsIGNvbnN0IEhh
c2hTZXQ8QXRvbWljU3RyaW5nSW1wbCo+JiBjbGFzc1Njb3Blcyk7CiAKIHByaXZhdGU6Ci0gICAg
Ym9vbCBjaGVja09uZVNlbGVjdG9yKGNvbnN0IFNlbGVjdG9yQ2hlY2tpbmdDb250ZXh0JiwgUHNl
dWRvSWQmLCBib29sJiBoYXNVbmtub3duUHNldWRvRWxlbWVudHMpIGNvbnN0OworICAgIGJvb2wg
Y2hlY2tPbmVTZWxlY3Rvcihjb25zdCBTZWxlY3RvckNoZWNraW5nQ29udGV4dCYpIGNvbnN0Owog
ICAgIGJvb2wgY2hlY2tTY3JvbGxiYXJQc2V1ZG9DbGFzcyhDU1NTZWxlY3RvciopIGNvbnN0Owog
ICAgIHN0YXRpYyBib29sIGlzRnJhbWVGb2N1c2VkKGNvbnN0IEVsZW1lbnQqKTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>166548</attachid>
            <date>2012-10-01 14:43:27 -0700</date>
            <delta_ts>2012-10-01 15:54:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-97953-20121001144241.patch</filename>
            <type>text/plain</type>
            <size>10074</size>
            <attacher name="Dimitri Glazkov (Google)">dglazkov</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMwMDU3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmNmYTcxZDIxNjc5NzY5
OWY2NjcwN2U2MjhmN2U0YjgzZjdiMDQ1OS4uNjUwOWZjMTc2YjVmZGVhMmJkNzVjNjNiZTBhN2Q1
YTIxMjQ2ZmYxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDEyLTA5LTI4ICBEaW1p
dHJpIEdsYXprb3YgIDxkZ2xhemtvdkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgS2lsbCB0cmFu
c2l0aXZlIGVmZmVjdHMgb2YgU2VsZWN0b3JDaGVja2VyOjpjaGVja09uZVNlbGVjdG9yLgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTc5NTMKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgZHluYW1pY1Bz
ZXVkby9oYXNVbmtub3duUHNldWRvZWxlbWVudHMgYnktcmVmIHBhcmFtZXRlcnMgdGhhdCBhcmUg
cGFzc2VkIGludG8gY2hlY2tPbmVTZWxlY3RvciBtYWtlIHRoZSBsb2dpYyBoYXJkZXIgdG8gdW5k
ZXJzdGFuZCBhbmQgYXJlbid0IG5lZWRlZC4gUmVmYWN0b3IgdGhlIGNvZGUgdG8gcmlkIG9mIHRo
ZW0sIHJlcGxhY2luZyB0aGVtIGluc3RlYWQgd2l0aCB0d28gZmxhZ3MgaW4gU2VsZWN0b3JDaGVj
a2luZ0NvbnRleHQuCisKKyAgICAgICAgTm8gY2hhbmdlIGluIGJlaGF2aW9yLCBjb3ZlcmVkIGJ5
IGV4aXN0aW5nIHRlc3RzLgorCisgICAgICAgICogY3NzL1NlbGVjdG9yQ2hlY2tlci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpTZWxlY3RvckNoZWNrZXI6OmNoZWNrU2VsZWN0b3IpOiBSb2xsZWQg
cHNldWRvLWVsZW1lbnQtY2hlY2tpbmcgY29kZSBvdXQgb2YgY2hlY2tPbmVTZWxlY3RvciBpbnRv
IGhlcmUsIHNpbmNlIHRoYXQgaXMgd2hlcmUgdAorICAgICAgICAoV2ViQ29yZTo6U2VsZWN0b3JD
aGVja2VyOjpjaGVja09uZVNlbGVjdG9yKTogQ2hhbmdlZCB0byB1c2UgU2VsZWN0b3JDaGVja2lu
Z0NvbnRleHQgcmF0aGVyIHRoYW4gdHJhbnNpdGl2ZSBwYXJhbXMuCisgICAgICAgICogY3NzL1Nl
bGVjdG9yQ2hlY2tlci5oOgorICAgICAgICAoV2ViQ29yZTo6U2VsZWN0b3JDaGVja2VyOjpTZWxl
Y3RvckNoZWNraW5nQ29udGV4dDo6U2VsZWN0b3JDaGVja2luZ0NvbnRleHQpOiBBZGRlZCB0d28g
bmV3IGZsYWdzLgorICAgICAgICAoU2VsZWN0b3JDaGVja2luZ0NvbnRleHQpOiBEaXR0by4KKwor
CiAyMDEyLTEwLTAxICBBcnBpdGEgQmFodWd1bmEgIDxhcnBpdGFiYWh1Z3VuYUBnbWFpbC5jb20+
CiAKICAgICAgICAgUmVuZGVyQmxvY2sgaW5jb3JyZWN0bHkgY2FsY3VsYXRlcyBwcmVmIHdpZHRo
IHdoZW4gYSByZXBsYWNlZCBvYmplY3QgZm9sbG93cyBhIFJlbmRlcklubGluZSB3aXRoIHdpZHRo
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU2VsZWN0b3JDaGVja2VyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9TZWxlY3RvckNoZWNrZXIuY3BwCmluZGV4IDQxNzdhMmI0NjE3MTVh
MTY4OTU0OTljN2Y4ZGE5NDE1ZTcxMWU2NjYuLjQwM2IyMThhZjlmY2JjNmY2YjRiYzRmZDJjMDM2
N2VhY2JiNWE2OTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TZWxlY3RvckNoZWNr
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TZWxlY3RvckNoZWNrZXIuY3BwCkBAIC0y
NjYsOSArMjY2LDkgQEAgYm9vbCBTZWxlY3RvckNoZWNrZXI6OmNoZWNrU2VsZWN0b3IoQ1NTU2Vs
ZWN0b3IqIHNlbCwgRWxlbWVudCogZWxlbWVudCwgYm9vbCBpc0YKICAgICAgICAgcmV0dXJuIGZh
c3RDaGVja1NlbGVjdG9yKHNlbCwgZWxlbWVudCk7CiAgICAgfQogCi0gICAgUHNldWRvSWQgZHlu
YW1pY1BzZXVkbyA9IE5PUFNFVURPOworICAgIFBzZXVkb0lkIGlnbm9yZUR5bmFtaWNQc2V1ZG8g
PSBOT1BTRVVETzsKICAgICBib29sIGhhc1Vua25vd25Qc2V1ZG9FbGVtZW50cyA9IGZhbHNlOwot
ICAgIHJldHVybiBjaGVja1NlbGVjdG9yKFNlbGVjdG9yQ2hlY2tpbmdDb250ZXh0KHNlbCwgZWxl
bWVudCwgU2VsZWN0b3JDaGVja2VyOjpWaXNpdGVkTWF0Y2hEaXNhYmxlZCksIGR5bmFtaWNQc2V1
ZG8sIGhhc1Vua25vd25Qc2V1ZG9FbGVtZW50cykgPT0gU2VsZWN0b3JNYXRjaGVzOworICAgIHJl
dHVybiBjaGVja1NlbGVjdG9yKFNlbGVjdG9yQ2hlY2tpbmdDb250ZXh0KHNlbCwgZWxlbWVudCwg
U2VsZWN0b3JDaGVja2VyOjpWaXNpdGVkTWF0Y2hEaXNhYmxlZCksIGlnbm9yZUR5bmFtaWNQc2V1
ZG8sIGhhc1Vua25vd25Qc2V1ZG9FbGVtZW50cykgPT0gU2VsZWN0b3JNYXRjaGVzOwogfQogCiBu
YW1lc3BhY2UgewpAQCAtNDQyLDkgKzQ0MiwyOCBAQCBib29sIFNlbGVjdG9yQ2hlY2tlcjo6aXNG
YXN0Q2hlY2thYmxlU2VsZWN0b3IoY29uc3QgQ1NTU2VsZWN0b3IqIHNlbGVjdG9yKQogU2VsZWN0
b3JDaGVja2VyOjpTZWxlY3Rvck1hdGNoIFNlbGVjdG9yQ2hlY2tlcjo6Y2hlY2tTZWxlY3Rvcihj
b25zdCBTZWxlY3RvckNoZWNraW5nQ29udGV4dCYgY29udGV4dCwgUHNldWRvSWQmIGR5bmFtaWNQ
c2V1ZG8sIGJvb2wmIGhhc1Vua25vd25Qc2V1ZG9FbGVtZW50cykgY29uc3QKIHsKICAgICAvLyBm
aXJzdCBzZWxlY3RvciBoYXMgdG8gbWF0Y2gKLSAgICBpZiAoIWNoZWNrT25lU2VsZWN0b3IoY29u
dGV4dCwgZHluYW1pY1BzZXVkbywgaGFzVW5rbm93blBzZXVkb0VsZW1lbnRzKSkKKyAgICBpZiAo
IWNoZWNrT25lU2VsZWN0b3IoY29udGV4dCkpCiAgICAgICAgIHJldHVybiBTZWxlY3RvckZhaWxz
TG9jYWxseTsKIAorICAgIGlmIChjb250ZXh0LnNlbGVjdG9yLT5tX21hdGNoID09IENTU1NlbGVj
dG9yOjpQc2V1ZG9FbGVtZW50KSB7CisgICAgICAgIGlmIChjb250ZXh0LnNlbGVjdG9yLT5pc1Vu
a25vd25Qc2V1ZG9FbGVtZW50KCkpIHsKKyAgICAgICAgICAgIGhhc1Vua25vd25Qc2V1ZG9FbGVt
ZW50cyA9IHRydWU7CisgICAgICAgICAgICBpZiAoY29udGV4dC5lbGVtZW50LT5zaGFkb3dQc2V1
ZG9JZCgpICE9IGNvbnRleHQuc2VsZWN0b3ItPnZhbHVlKCkpCisgICAgICAgICAgICAgICAgcmV0
dXJuIFNlbGVjdG9yRmFpbHNMb2NhbGx5OworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAg
aWYgKCghY29udGV4dC5lbGVtZW50U3R5bGUgJiYgbV9tb2RlID09IFJlc29sdmluZ1N0eWxlKSB8
fCBtX21vZGUgPT0gUXVlcnlpbmdSdWxlcykKKyAgICAgICAgICAgICAgICByZXR1cm4gU2VsZWN0
b3JGYWlsc0xvY2FsbHk7CisKKyAgICAgICAgICAgIFBzZXVkb0lkIHBzZXVkb0lkID0gQ1NTU2Vs
ZWN0b3I6OnBzZXVkb0lkKGNvbnRleHQuc2VsZWN0b3ItPnBzZXVkb1R5cGUoKSk7CisgICAgICAg
ICAgICBpZiAocHNldWRvSWQgPT0gRklSU1RfTEVUVEVSKSB7CisgICAgICAgICAgICAgICAgaWYg
KERvY3VtZW50KiBkb2N1bWVudCA9IGNvbnRleHQuZWxlbWVudC0+ZG9jdW1lbnQoKSkKKyAgICAg
ICAgICAgICAgICAgICAgZG9jdW1lbnQtPnN0eWxlU2hlZXRDb2xsZWN0aW9uKCktPnNldFVzZXNG
aXJzdExldHRlclJ1bGVzKHRydWUpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKHBz
ZXVkb0lkICE9IE5PUFNFVURPKQorICAgICAgICAgICAgICAgIGR5bmFtaWNQc2V1ZG8gPSBwc2V1
ZG9JZDsKKyAgICAgICAgfQorICAgIH0KKwogICAgIC8vIFRoZSByZXN0IG9mIHRoZSBzZWxlY3Rv
cnMgaGFzIHRvIG1hdGNoCiAgICAgQ1NTU2VsZWN0b3I6OlJlbGF0aW9uIHJlbGF0aW9uID0gY29u
dGV4dC5zZWxlY3Rvci0+cmVsYXRpb24oKTsKIApAQCAtNTMyLDggKzU1MSwxMSBAQCBTZWxlY3Rv
ckNoZWNrZXI6OlNlbGVjdG9yTWF0Y2ggU2VsZWN0b3JDaGVja2VyOjpjaGVja1NlbGVjdG9yKGNv
bnN0IFNlbGVjdG9yQ2hlYwogICAgICAgICAvLyBhIHNlbGVjdG9yIGlzIGludmFsaWQgaWYgc29t
ZXRoaW5nIGZvbGxvd3MgYSBwc2V1ZG8tZWxlbWVudAogICAgICAgICAvLyBXZSBtYWtlIGFuIGV4
Y2VwdGlvbiBmb3Igc2Nyb2xsYmFyIHBzZXVkbyBlbGVtZW50cyBhbmQgYWxsb3cgYSBzZXQgb2Yg
cHNldWRvIGNsYXNzZXMgKGJ1dCBub3RoaW5nIGVsc2UpCiAgICAgICAgIC8vIHRvIGZvbGxvdyB0
aGUgcHNldWRvIGVsZW1lbnRzLgotICAgICAgICBpZiAoKGNvbnRleHQuZWxlbWVudFN0eWxlIHx8
IG1fbW9kZSA9PSBDb2xsZWN0aW5nUnVsZXMgfHwgbV9tb2RlID09IFF1ZXJ5aW5nUnVsZXMpICYm
IGR5bmFtaWNQc2V1ZG8gIT0gTk9QU0VVRE8gJiYgZHluYW1pY1BzZXVkbyAhPSBTRUxFQ1RJT04K
LSAgICAgICAgICAgICAmJiAhKChSZW5kZXJTY3JvbGxiYXI6OnNjcm9sbGJhckZvclN0eWxlUmVz
b2x2ZSgpIHx8IGR5bmFtaWNQc2V1ZG8gPT0gU0NST0xMQkFSX0NPUk5FUiB8fCBkeW5hbWljUHNl
dWRvID09IFJFU0laRVIpICYmIG5leHRDb250ZXh0LnNlbGVjdG9yLT5tX21hdGNoID09IENTU1Nl
bGVjdG9yOjpQc2V1ZG9DbGFzcykpCisgICAgICAgIG5leHRDb250ZXh0Lmhhc1Njcm9sbGJhclBz
ZXVkbyA9IFJlbmRlclNjcm9sbGJhcjo6c2Nyb2xsYmFyRm9yU3R5bGVSZXNvbHZlKCkgfHwgZHlu
YW1pY1BzZXVkbyA9PSBTQ1JPTExCQVJfQ09STkVSIHx8IGR5bmFtaWNQc2V1ZG8gPT0gUkVTSVpF
UjsKKyAgICAgICAgbmV4dENvbnRleHQuaGFzU2VsZWN0aW9uUHNldWRvID0gZHluYW1pY1BzZXVk
byA9PSBTRUxFQ1RJT047CisgICAgICAgIGlmICgoY29udGV4dC5lbGVtZW50U3R5bGUgfHwgbV9t
b2RlID09IENvbGxlY3RpbmdSdWxlcyB8fCBtX21vZGUgPT0gUXVlcnlpbmdSdWxlcykgJiYgZHlu
YW1pY1BzZXVkbyAhPSBOT1BTRVVETworICAgICAgICAgICAgJiYgIW5leHRDb250ZXh0Lmhhc1Nl
bGVjdGlvblBzZXVkbworICAgICAgICAgICAgJiYgIShuZXh0Q29udGV4dC5oYXNTY3JvbGxiYXJQ
c2V1ZG8gJiYgbmV4dENvbnRleHQuc2VsZWN0b3ItPm1fbWF0Y2ggPT0gQ1NTU2VsZWN0b3I6OlBz
ZXVkb0NsYXNzKSkKICAgICAgICAgICAgIHJldHVybiBTZWxlY3RvckZhaWxzQ29tcGxldGVseTsK
ICAgICAgICAgbmV4dENvbnRleHQuaXNTdWJTZWxlY3RvciA9IHRydWU7CiAgICAgICAgIHJldHVy
biBjaGVja1NlbGVjdG9yKG5leHRDb250ZXh0LCBkeW5hbWljUHNldWRvLCBoYXNVbmtub3duUHNl
dWRvRWxlbWVudHMpOwpAQCAtNzA0LDcgKzcyNiw3IEBAIHN0YXRpYyBib29sIGFueUF0dHJpYnV0
ZU1hdGNoZXMoRWxlbWVudCogZWxlbWVudCwgQ1NTU2VsZWN0b3I6Ok1hdGNoIG1hdGNoLCBjb25z
CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1ib29sIFNlbGVjdG9yQ2hlY2tlcjo6Y2hlY2tPbmVT
ZWxlY3Rvcihjb25zdCBTZWxlY3RvckNoZWNraW5nQ29udGV4dCYgY29udGV4dCwgUHNldWRvSWQm
IGR5bmFtaWNQc2V1ZG8sIGJvb2wmIGhhc1Vua25vd25Qc2V1ZG9FbGVtZW50cykgY29uc3QKK2Jv
b2wgU2VsZWN0b3JDaGVja2VyOjpjaGVja09uZVNlbGVjdG9yKGNvbnN0IFNlbGVjdG9yQ2hlY2tp
bmdDb250ZXh0JiBjb250ZXh0KSBjb25zdAogewogICAgIEVsZW1lbnQqIGNvbnN0ICYgZWxlbWVu
dCA9IGNvbnRleHQuZWxlbWVudDsKICAgICBDU1NTZWxlY3RvciogY29uc3QgJiBzZWxlY3RvciA9
IGNvbnRleHQuc2VsZWN0b3I7CkBAIC03NTEsMTQgKzc3MywxNCBAQCBib29sIFNlbGVjdG9yQ2hl
Y2tlcjo6Y2hlY2tPbmVTZWxlY3Rvcihjb25zdCBTZWxlY3RvckNoZWNraW5nQ29udGV4dCYgY29u
dGV4dCwgUAogICAgICAgICAgICAgICAgIC8vIFdlIHNlbGVjdCBiZXR3ZWVuIDp2aXNpdGVkIGFu
ZCA6bGluayB3aGVuIGFwcGx5aW5nLiBXZSBkb24ndCBrbm93IHdoaWNoIG9uZSBhcHBsaWVkIChv
ciBub3QpIHlldC4KICAgICAgICAgICAgICAgICBpZiAoc3ViQ29udGV4dC5zZWxlY3Rvci0+cHNl
dWRvVHlwZSgpID09IENTU1NlbGVjdG9yOjpQc2V1ZG9WaXNpdGVkIHx8IChzdWJDb250ZXh0LnNl
bGVjdG9yLT5wc2V1ZG9UeXBlKCkgPT0gQ1NTU2VsZWN0b3I6OlBzZXVkb0xpbmsgJiYgc3ViQ29u
dGV4dC52aXNpdGVkTWF0Y2hUeXBlID09IFZpc2l0ZWRNYXRjaEVuYWJsZWQpKQogICAgICAgICAg
ICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgICAgICAgICBpZiAoIWNoZWNrT25lU2Vs
ZWN0b3Ioc3ViQ29udGV4dCwgZHluYW1pY1BzZXVkbywgaGFzVW5rbm93blBzZXVkb0VsZW1lbnRz
KSkKKyAgICAgICAgICAgICAgICBpZiAoIWNoZWNrT25lU2VsZWN0b3Ioc3ViQ29udGV4dCkpCiAg
ICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICAgICAgfQotICAgICAgICB9
IGVsc2UgaWYgKGR5bmFtaWNQc2V1ZG8gIT0gTk9QU0VVRE8gJiYgKFJlbmRlclNjcm9sbGJhcjo6
c2Nyb2xsYmFyRm9yU3R5bGVSZXNvbHZlKCkgfHwgZHluYW1pY1BzZXVkbyA9PSBTQ1JPTExCQVJf
Q09STkVSIHx8IGR5bmFtaWNQc2V1ZG8gPT0gUkVTSVpFUikpIHsKKyAgICAgICAgfSBlbHNlIGlm
IChjb250ZXh0Lmhhc1Njcm9sbGJhclBzZXVkbykgewogICAgICAgICAgICAgLy8gQ1NTIHNjcm9s
bGJhcnMgbWF0Y2ggYSBzcGVjaWZpYyBzdWJzZXQgb2YgcHNldWRvIGNsYXNzZXMsIGFuZCB0aGV5
IGhhdmUgc3BlY2lhbGl6ZWQgcnVsZXMgZm9yIGVhY2gKICAgICAgICAgICAgIC8vIChzaW5jZSB0
aGVyZSBhcmUgbm8gZWxlbWVudHMgaW52b2x2ZWQpLgogICAgICAgICAgICAgcmV0dXJuIGNoZWNr
U2Nyb2xsYmFyUHNldWRvQ2xhc3Moc2VsZWN0b3IpOwotICAgICAgICB9IGVsc2UgaWYgKGR5bmFt
aWNQc2V1ZG8gPT0gU0VMRUNUSU9OKSB7CisgICAgICAgIH0gZWxzZSBpZiAoY29udGV4dC5oYXNT
ZWxlY3Rpb25Qc2V1ZG8pIHsKICAgICAgICAgICAgIGlmIChzZWxlY3Rvci0+cHNldWRvVHlwZSgp
ID09IENTU1NlbGVjdG9yOjpQc2V1ZG9XaW5kb3dJbmFjdGl2ZSkKICAgICAgICAgICAgICAgICBy
ZXR1cm4gIW1fZG9jdW1lbnQtPnBhZ2UoKS0+Zm9jdXNDb250cm9sbGVyKCktPmlzQWN0aXZlKCk7
CiAgICAgICAgIH0KQEAgLTEwMDAsOCArMTAyMiwxMCBAQCBib29sIFNlbGVjdG9yQ2hlY2tlcjo6
Y2hlY2tPbmVTZWxlY3Rvcihjb25zdCBTZWxlY3RvckNoZWNraW5nQ29udGV4dCYgY29udGV4dCwg
UAogICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIFNlbGVjdG9yQ2hlY2tpbmdDb250ZXh0
IHN1YkNvbnRleHQoY29udGV4dCk7CiAgICAgICAgICAgICAgICAgc3ViQ29udGV4dC5pc1N1YlNl
bGVjdG9yID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICBib29sIGhhc1Vua25vd25Qc2V1ZG9FbGVt
ZW50cyA9IGZhbHNlOworICAgICAgICAgICAgICAgIFBzZXVkb0lkIGlnbm9yZUR5bmFtaWNQc2V1
ZG8gPSBOT1BTRVVETzsKICAgICAgICAgICAgICAgICBmb3IgKHN1YkNvbnRleHQuc2VsZWN0b3Ig
PSBzZWxlY3Rvci0+c2VsZWN0b3JMaXN0KCktPmZpcnN0KCk7IHN1YkNvbnRleHQuc2VsZWN0b3I7
IHN1YkNvbnRleHQuc2VsZWN0b3IgPSBDU1NTZWxlY3Rvckxpc3Q6Om5leHQoc3ViQ29udGV4dC5z
ZWxlY3RvcikpIHsKLSAgICAgICAgICAgICAgICAgICAgaWYgKGNoZWNrU2VsZWN0b3Ioc3ViQ29u
dGV4dCwgZHluYW1pY1BzZXVkbywgaGFzVW5rbm93blBzZXVkb0VsZW1lbnRzKSA9PSBTZWxlY3Rv
ck1hdGNoZXMpCisgICAgICAgICAgICAgICAgICAgIGlmIChjaGVja1NlbGVjdG9yKHN1YkNvbnRl
eHQsIGlnbm9yZUR5bmFtaWNQc2V1ZG8sIGhhc1Vua25vd25Qc2V1ZG9FbGVtZW50cykgPT0gU2Vs
ZWN0b3JNYXRjaGVzKQogICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAg
ICAgICAgICAgICAgfQogICAgICAgICAgICAgfQpAQCAtMTE3NSwyMyArMTE5OSw2IEBAIGJvb2wg
U2VsZWN0b3JDaGVja2VyOjpjaGVja09uZVNlbGVjdG9yKGNvbnN0IFNlbGVjdG9yQ2hlY2tpbmdD
b250ZXh0JiBjb250ZXh0LCBQCiAgICAgICAgIH0KICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAg
IH0KLSAgICBpZiAoc2VsZWN0b3ItPm1fbWF0Y2ggPT0gQ1NTU2VsZWN0b3I6OlBzZXVkb0VsZW1l
bnQpIHsKLSAgICAgICAgaWYgKHNlbGVjdG9yLT5pc1Vua25vd25Qc2V1ZG9FbGVtZW50KCkpIHsK
LSAgICAgICAgICAgIGhhc1Vua25vd25Qc2V1ZG9FbGVtZW50cyA9IHRydWU7Ci0gICAgICAgICAg
ICByZXR1cm4gZWxlbWVudC0+c2hhZG93UHNldWRvSWQoKSA9PSBzZWxlY3Rvci0+dmFsdWUoKTsK
LSAgICAgICAgfQotCi0gICAgICAgIGlmICgoIWNvbnRleHQuZWxlbWVudFN0eWxlICYmIG1fbW9k
ZSA9PSBSZXNvbHZpbmdTdHlsZSkgfHwgbV9tb2RlID09IFF1ZXJ5aW5nUnVsZXMpCi0gICAgICAg
ICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICAgICAgUHNldWRvSWQgcHNldWRvSWQgPSBDU1NTZWxl
Y3Rvcjo6cHNldWRvSWQoc2VsZWN0b3ItPnBzZXVkb1R5cGUoKSk7Ci0gICAgICAgIGlmIChwc2V1
ZG9JZCA9PSBGSVJTVF9MRVRURVIpIHsKLSAgICAgICAgICAgIGlmIChEb2N1bWVudCogZG9jdW1l
bnQgPSBlbGVtZW50LT5kb2N1bWVudCgpKQotICAgICAgICAgICAgICAgIGRvY3VtZW50LT5zdHls
ZVNoZWV0Q29sbGVjdGlvbigpLT5zZXRVc2VzRmlyc3RMZXR0ZXJSdWxlcyh0cnVlKTsKLSAgICAg
ICAgfQotICAgICAgICBpZiAocHNldWRvSWQgIT0gTk9QU0VVRE8pCi0gICAgICAgICAgICBkeW5h
bWljUHNldWRvID0gcHNldWRvSWQ7Ci0gICAgfQogICAgIC8vICMjIyBhZGQgdGhlIHJlc3Qgb2Yg
dGhlIGNoZWNrcy4uLgogICAgIHJldHVybiB0cnVlOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvY3NzL1NlbGVjdG9yQ2hlY2tlci5oIGIvU291cmNlL1dlYkNvcmUvY3NzL1NlbGVjdG9y
Q2hlY2tlci5oCmluZGV4IDY2MTc2MTU1MjYyODAzNGM2Mzg3YmY0OWUwMTU1YjQ3NTAyMjNkNjAu
Ljc5ZWJhZjY1OTZhM2E3MDQwOWY2NTY3MmQ5NWNjMmZmY2VlY2ZiNWMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9TZWxlY3RvckNoZWNrZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvU2VsZWN0b3JDaGVja2VyLmgKQEAgLTY1LDYgKzY1LDggQEAgcHVibGljOgogICAgICAgICAg
ICAgLCBlbGVtZW50UGFyZW50U3R5bGUoMCkKICAgICAgICAgICAgICwgaXNTdWJTZWxlY3Rvcihm
YWxzZSkKICAgICAgICAgICAgICwgcHNldWRvU3R5bGUoTk9QU0VVRE8pCisgICAgICAgICAgICAs
IGhhc1Njcm9sbGJhclBzZXVkbyhmYWxzZSkKKyAgICAgICAgICAgICwgaGFzU2VsZWN0aW9uUHNl
dWRvKGZhbHNlKQogICAgICAgICB7IH0KIAogICAgICAgICBDU1NTZWxlY3Rvciogc2VsZWN0b3I7
CkBAIC03NSw2ICs3Nyw4IEBAIHB1YmxpYzoKICAgICAgICAgUmVuZGVyU3R5bGUqIGVsZW1lbnRQ
YXJlbnRTdHlsZTsKICAgICAgICAgYm9vbCBpc1N1YlNlbGVjdG9yOwogICAgICAgICBQc2V1ZG9J
ZCBwc2V1ZG9TdHlsZTsKKyAgICAgICAgYm9vbCBoYXNTY3JvbGxiYXJQc2V1ZG87CisgICAgICAg
IGJvb2wgaGFzU2VsZWN0aW9uUHNldWRvOwogICAgIH07CiAKICAgICBib29sIGNoZWNrU2VsZWN0
b3IoQ1NTU2VsZWN0b3IqLCBFbGVtZW50KiwgYm9vbCBpc0Zhc3RDaGVja2FibGVTZWxlY3RvciA9
IGZhbHNlKSBjb25zdDsKQEAgLTExNyw3ICsxMjEsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIGJv
b2wgZWxlbWVudE1hdGNoZXNTZWxlY3RvclNjb3Blcyhjb25zdCBTdHlsZWRFbGVtZW50KiwgY29u
c3QgSGFzaFNldDxBdG9taWNTdHJpbmdJbXBsKj4mIGlkU2NvcGVzLCBjb25zdCBIYXNoU2V0PEF0
b21pY1N0cmluZ0ltcGwqPiYgY2xhc3NTY29wZXMpOwogCiBwcml2YXRlOgotICAgIGJvb2wgY2hl
Y2tPbmVTZWxlY3Rvcihjb25zdCBTZWxlY3RvckNoZWNraW5nQ29udGV4dCYsIFBzZXVkb0lkJiwg
Ym9vbCYgaGFzVW5rbm93blBzZXVkb0VsZW1lbnRzKSBjb25zdDsKKyAgICBib29sIGNoZWNrT25l
U2VsZWN0b3IoY29uc3QgU2VsZWN0b3JDaGVja2luZ0NvbnRleHQmKSBjb25zdDsKICAgICBib29s
IGNoZWNrU2Nyb2xsYmFyUHNldWRvQ2xhc3MoQ1NTU2VsZWN0b3IqKSBjb25zdDsKICAgICBzdGF0
aWMgYm9vbCBpc0ZyYW1lRm9jdXNlZChjb25zdCBFbGVtZW50Kik7CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>