<?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>50660</bug_id>
          
          <creation_ts>2010-12-07 18:21:11 -0800</creation_ts>
          <short_desc>Convert &lt;progress&gt; shadow DOM to a DOM-based shadow.</short_desc>
          <delta_ts>2011-02-01 20:24:42 -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>DOM</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>53412</dependson>
          <blocked>48698</blocked>
    
    <blocked>53417</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Hajime Morrita">morrita</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>dglazkov</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>318530</commentid>
    <comment_count>0</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2010-12-07 18:21:11 -0800</bug_when>
    <thetext>&lt;progress&gt; is holding its shadows as a member variables of  RenderProgress. 
We could move them to HTMLMeterElement.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>318532</commentid>
    <comment_count>1</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2010-12-07 18:22:53 -0800</bug_when>
    <thetext>(In reply to comment #0)
&gt; &lt;progress&gt; is holding its shadows as a member variables of  RenderProgress. 
&gt; We could move them to HTMLMeterElement.
No, to HTMLProgressElement.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>341348</commentid>
    <comment_count>2</comment_count>
      <attachid>80424</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2011-01-28 00:56:58 -0800</bug_when>
    <thetext>Created attachment 80424
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>341349</commentid>
    <comment_count>3</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2011-01-28 00:58:36 -0800</bug_when>
    <thetext>Hi Dimitri, could you take a look?
I know this is just the first step of the shadow refresh and
I&apos;ll eliminate more renderer-to-dom dependency in following changes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>341465</commentid>
    <comment_count>4</comment_count>
      <attachid>80424</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2011-01-28 08:43:26 -0800</bug_when>
    <thetext>Comment on attachment 80424
Patch

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

Ok. You probably should&apos;ve put this patch into a separate bug, since it doesn&apos;t technically fix the bug yet -- and use this bug as a meta-bug :)

&gt; Source/WebCore/html/HTMLProgressElement.cpp:40
&gt; +class ProgressBarValueElement : public ShadowBlockElement {

Does it need to be ShadowBlockElement anymore? But I guess that&apos;s what the next patch is about.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>342451</commentid>
    <comment_count>5</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2011-01-30 20:39:39 -0800</bug_when>
    <thetext>Committed r77107: &lt;http://trac.webkit.org/changeset/77107&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>342452</commentid>
    <comment_count>6</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2011-01-30 20:46:37 -0800</bug_when>
    <thetext>HI Dimitri, Thank you for reviewing!

(In reply to comment #4)
&gt; (From update of attachment 80424 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=80424&amp;action=review
&gt; 
&gt; Ok. You probably should&apos;ve put this patch into a separate bug, since it doesn&apos;t technically fix the bug yet -- and use this bug as a meta-bug :)
Sure. I&apos;ll do so ... or introduce another bug as a tracking bug.

&gt; 
&gt; &gt; Source/WebCore/html/HTMLProgressElement.cpp:40
&gt; &gt; +class ProgressBarValueElement : public ShadowBlockElement {
&gt; 
&gt; Does it need to be ShadowBlockElement anymore? But I guess that&apos;s what the next patch is about.
I&apos;ll do this when attacking &lt;meter&gt;. But I have a few item on &lt;progress&gt; side yet.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>342466</commentid>
    <comment_count>7</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2011-01-30 22:11:06 -0800</bug_when>
    <thetext>I see some new test crashes after this commit:
http://build.webkit.org/results/Leopard%20Intel%20Release%20(Tests)/r77108%20(27420)/results.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>342472</commentid>
    <comment_count>8</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2011-01-30 22:18:53 -0800</bug_when>
    <thetext>Patch was backed out via bug 53412.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>342518</commentid>
    <comment_count>9</comment_count>
      <attachid>80629</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2011-01-31 03:26:50 -0800</bug_when>
    <thetext>Created attachment 80629
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>342519</commentid>
    <comment_count>10</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2011-01-31 03:29:44 -0800</bug_when>
    <thetext>Simon, thank you for save the tree. I&apos;m sorry for the breakage.
Dimitri, could you take a look again?

The difference from the last patch is ProgressBarValueElement::detach().
The last patch missed to unlink from host -&gt; shadow reference, which caused the inconsistency.
(shadow -&gt; host reference is unlinked by ShadowElement::detach()).

Thanks in advance.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>342596</commentid>
    <comment_count>11</comment_count>
      <attachid>80629</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2011-01-31 08:50:01 -0800</bug_when>
    <thetext>Comment on attachment 80629
Patch

Please make sure to run tests before landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>342924</commentid>
    <comment_count>12</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2011-01-31 17:12:36 -0800</bug_when>
    <thetext>&gt; Please make sure to run tests before landing.
Yes, I will. I&apos;m really sorry for that.
The test was done only under dom/HTMLProgressElement/ at the last patch
and I was wrong.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>342987</commentid>
    <comment_count>13</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2011-01-31 20:06:10 -0800</bug_when>
    <thetext>Committed r77211: &lt;http://trac.webkit.org/changeset/77211&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>343346</commentid>
    <comment_count>14</comment_count>
      <attachid>80629</attachid>
    <who name="Erik Arvidsson">arv</who>
    <bug_when>2011-02-01 10:54:10 -0800</bug_when>
    <thetext>Comment on attachment 80629
Patch

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

&gt; Source/WebCore/rendering/RenderProgress.cpp:105
&gt; +    if (!(valuePart()-&gt;renderer() &amp;&amp; valuePart()-&gt;renderer()-&gt;style()-&gt;hasAppearance()))

Why does this need appearance? What happens if I do?

::-webkit-progress-bar-value {
  -webkit-appearance: none;
  background-color: red;
}</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>343799</commentid>
    <comment_count>15</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2011-02-01 20:24:42 -0800</bug_when>
    <thetext>(In reply to comment #14)
&gt; (From update of attachment 80629 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=80629&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/rendering/RenderProgress.cpp:105
&gt; &gt; +    if (!(valuePart()-&gt;renderer() &amp;&amp; valuePart()-&gt;renderer()-&gt;style()-&gt;hasAppearance()))
&gt; 
&gt; Why does this need appearance? What happens if I do?
&gt; 
&gt; ::-webkit-progress-bar-value {
&gt;   -webkit-appearance: none;
&gt;   background-color: red;
&gt; }
Shadow rendered even if &quot;none&quot; is given if host&apos;s appearance is set to &quot;none&quot;.
But yes, it&apos;s confusing.... I&apos;ll revise the logic in coming patch(es).</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>80424</attachid>
            <date>2011-01-28 00:56:58 -0800</date>
            <delta_ts>2011-01-31 03:26:45 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-50660-20110128175656.patch</filename>
            <type>text/plain</type>
            <size>12562</size>
            <attacher name="Hajime Morrita">morrita</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBjZDZiMGQ5NmRkMjY1OWJhODljNjk2ZDlhNzI2YzEwMzNjOWI1YTE1Li4y
NTAwZGQ5YTVhN2I2NDU4OWZlMDJlZDZmOTI0NmRmYWRiZjdjZTMxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsNDIgQEAKKzIwMTEtMDEtMjcgIE1PUklUQSBIYWppbWUgIDxtb3JyaXRhQGdvb2dsZS5j
b20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisgICAgICAgIAorICAg
ICAgICBDb252ZXJ0IDxwcm9ncmVzcz4gc2hhZG93IERPTSB0byBhIERPTS1iYXNlZCBzaGFkb3cu
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MDY2MAor
CisgICAgICAgICogUmVtb3ZlZCBSZW5kZXJQcm9ncmVzczo6bV92YWx1ZVBhcnQsIG1vdmVkIHRo
ZSBzaGFkb3cgbm9kZQorICAgICAgICAgIHRvIHRoZSBzaGFkb3cgcm9vdCBvZiBIVE1MUHJvZ3Jl
c3NFbGVtZW50LgorICAgICAgICAqIFJlbW92ZWQgaGFyZC1jb2RlZCBwc2V1ZG8gSUQgZm9yIC13
ZWJraXQtcHJvZ3Jlc3MtYmFyLXZhbHVlLgorICAgICAgICAgIFByb2dyZXNzQmFyVmFsdWVFbGVt
ZW50IGlzIGRlZmluZWQgb25seSBmb3Igb3ZlcnJpZGluZworICAgICAgICAgIHNoYWRvd1BzZXVk
b0lkKCkuCisgICAgICAgIAorICAgICAgICBObyBuZXcgdGVzdHMuIE5vIGJlaGF2aW9yYWwgY2hh
bmdlLgorCisgICAgICAgICogY3NzL0NTU1NlbGVjdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkNTU1NlbGVjdG9yOjpwc2V1ZG9JZCk6CisgICAgICAgIChXZWJDb3JlOjpuYW1lVG9Qc2V1ZG9U
eXBlTWFwKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1NlbGVjdG9yOjpleHRyYWN0UHNldWRvVHlw
ZSk6CisgICAgICAgICogY3NzL0NTU1NlbGVjdG9yLmg6CisgICAgICAgICogaHRtbC9IVE1MUHJv
Z3Jlc3NFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlByb2dyZXNzQmFyVmFsdWVFbGVt
ZW50OjpQcm9ncmVzc0JhclZhbHVlRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpQcm9ncmVz
c0JhclZhbHVlRWxlbWVudDo6c2hhZG93UHNldWRvSWQpOgorICAgICAgICAoV2ViQ29yZTo6UHJv
Z3Jlc3NCYXJWYWx1ZUVsZW1lbnQ6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MUHJv
Z3Jlc3NFbGVtZW50OjpwYXJzZU1hcHBlZEF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpI
VE1MUHJvZ3Jlc3NFbGVtZW50OjphdHRhY2gpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFByb2dy
ZXNzRWxlbWVudDo6dmFsdWVQYXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxQcm9ncmVzc0Vs
ZW1lbnQ6OmRpZEVsZW1lbnRTdGF0ZUNoYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MUHJv
Z3Jlc3NFbGVtZW50OjpjcmVhdGVTaGFkb3dTdWJ0cmVlSWZOZWVkZWQpOgorICAgICAgICAqIGh0
bWwvSFRNTFByb2dyZXNzRWxlbWVudC5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJQcm9n
cmVzcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJQcm9ncmVzczo6flJlbmRlclByb2dy
ZXNzKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclByb2dyZXNzOjp1cGRhdGVGcm9tRWxlbWVu
dCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJQcm9ncmVzczo6bGF5b3V0UGFydHMpOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyUHJvZ3Jlc3M6OnNob3VsZEhhdmVQYXJ0cyk6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJQcm9ncmVzczo6dmFsdWVQYXJ0KToKKyAgICAgICAgKiByZW5kZXJp
bmcvUmVuZGVyUHJvZ3Jlc3MuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5
bGVDb25zdGFudHMuaDoKKwogMjAxMS0wMS0yNiAgUGhpbGlwcGUgTm9ybWFuZCAgPHBub3JtYW5k
QGlnYWxpYS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgTWFydGluIFJvYmluc29uLgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1NlbGVjdG9yLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NTZWxlY3Rvci5jcHAKaW5kZXggOGZmMzg1OWI1YjQ1NWNkYWJlYjU1YWNjNmJl
NzM0YjFkNzJmNGI4Ny4uM2I0NjZjNDhiZjI5MGIwZTRlZDg0ODQzMjJiOWNlMDBkNjExYWM3MyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1NlbGVjdG9yLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTU2VsZWN0b3IuY3BwCkBAIC0xOTAsMTQgKzE5MCw2IEBAIFBzZXVk
b0lkIENTU1NlbGVjdG9yOjpwc2V1ZG9JZChQc2V1ZG9UeXBlIHR5cGUpCiAgICAgICAgIHJldHVy
biBJTk5FUl9TUElOX0JVVFRPTjsKICAgICBjYXNlIFBzZXVkb091dGVyU3BpbkJ1dHRvbjoKICAg
ICAgICAgcmV0dXJuIE9VVEVSX1NQSU5fQlVUVE9OOwotICAgIGNhc2UgUHNldWRvUHJvZ3Jlc3NC
YXJWYWx1ZToKLSNpZiBFTkFCTEUoUFJPR1JFU1NfVEFHKQotICAgICAgICByZXR1cm4gUFJPR1JF
U1NfQkFSX1ZBTFVFOwotI2Vsc2UKLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAg
ICAgIHJldHVybiBOT1BTRVVETzsKLSNlbmRpZgotCiAjaWYgRU5BQkxFKE1FVEVSX1RBRykKICAg
ICBjYXNlIFBzZXVkb01ldGVySG9yaXpvbnRhbEJhcjoKICAgICAgICAgcmV0dXJuIE1FVEVSX0hP
UklaT05UQUxfQkFSOwpAQCAtMzY4LDEwICszNjAsNiBAQCBzdGF0aWMgSGFzaE1hcDxBdG9taWNT
dHJpbmdJbXBsKiwgQ1NTU2VsZWN0b3I6OlBzZXVkb1R5cGU+KiBuYW1lVG9Qc2V1ZG9UeXBlTWFw
KAogICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBvbmx5T2ZUeXBlLCAoIm9u
bHktb2YtdHlwZSIpKTsKICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgb3B0
aW9uYWwsICgib3B0aW9uYWwiKSk7CiAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJp
bmcsIG91dGVyU3BpbkJ1dHRvbiwgKCItd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uIikpOwotI2lm
IEVOQUJMRShQUk9HUkVTU19UQUcpCi0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJp
bmcsIHByb2dyZXNzQmFyVmFsdWUsICgiLXdlYmtpdC1wcm9ncmVzcy1iYXItdmFsdWUiKSk7Ci0j
ZW5kaWYKLQogI2lmIEVOQUJMRShNRVRFUl9UQUcpCiAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChB
dG9taWNTdHJpbmcsIG1ldGVySG9yaXpvbnRhbEJhciwgKCItd2Via2l0LW1ldGVyLWhvcml6b250
YWwtYmFyIikpOwogICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBtZXRlckhv
cml6b250YWxPcHRpbXVtVmFsdWUsICgiLXdlYmtpdC1tZXRlci1ob3Jpem9udGFsLW9wdGltdW0t
dmFsdWUiKSk7CkBAIC00ODYsOSArNDc0LDYgQEAgc3RhdGljIEhhc2hNYXA8QXRvbWljU3RyaW5n
SW1wbCosIENTU1NlbGVjdG9yOjpQc2V1ZG9UeXBlPiogbmFtZVRvUHNldWRvVHlwZU1hcCgKICAg
ICAgICAgbmFtZVRvUHNldWRvVHlwZS0+c2V0KG50aExhc3RDaGlsZC5pbXBsKCksIENTU1NlbGVj
dG9yOjpQc2V1ZG9OdGhMYXN0Q2hpbGQpOwogICAgICAgICBuYW1lVG9Qc2V1ZG9UeXBlLT5zZXQo
bnRoTGFzdE9mVHlwZS5pbXBsKCksIENTU1NlbGVjdG9yOjpQc2V1ZG9OdGhMYXN0T2ZUeXBlKTsK
ICAgICAgICAgbmFtZVRvUHNldWRvVHlwZS0+c2V0KG91dGVyU3BpbkJ1dHRvbi5pbXBsKCksIENT
U1NlbGVjdG9yOjpQc2V1ZG9PdXRlclNwaW5CdXR0b24pOwotI2lmIEVOQUJMRShQUk9HUkVTU19U
QUcpCi0gICAgICAgIG5hbWVUb1BzZXVkb1R5cGUtPnNldChwcm9ncmVzc0JhclZhbHVlLmltcGwo
KSwgQ1NTU2VsZWN0b3I6OlBzZXVkb1Byb2dyZXNzQmFyVmFsdWUpOwotI2VuZGlmCiAjaWYgRU5B
QkxFKE1FVEVSX1RBRykKICAgICAgICAgbmFtZVRvUHNldWRvVHlwZS0+c2V0KG1ldGVySG9yaXpv
bnRhbEJhci5pbXBsKCksIENTU1NlbGVjdG9yOjpQc2V1ZG9NZXRlckhvcml6b250YWxCYXIpOwog
ICAgICAgICBuYW1lVG9Qc2V1ZG9UeXBlLT5zZXQobWV0ZXJIb3Jpem9udGFsT3B0aW11bVZhbHVl
LmltcGwoKSwgQ1NTU2VsZWN0b3I6OlBzZXVkb01ldGVySG9yaXpvbnRhbE9wdGltdW0pOwpAQCAt
NTk5LDcgKzU4NCw2IEBAIHZvaWQgQ1NTU2VsZWN0b3I6OmV4dHJhY3RQc2V1ZG9UeXBlKCkgY29u
c3QKICAgICBjYXNlIFBzZXVkb01ldGVyVmVydGljYWxTdWJvcHRpbWFsOgogICAgIGNhc2UgUHNl
dWRvTWV0ZXJWZXJ0aWNhbEV2ZW5MZXNzR29vZDoKICAgICBjYXNlIFBzZXVkb091dGVyU3BpbkJ1
dHRvbjoKLSAgICBjYXNlIFBzZXVkb1Byb2dyZXNzQmFyVmFsdWU6CiAgICAgY2FzZSBQc2V1ZG9S
ZXNpemVyOgogICAgIGNhc2UgUHNldWRvU2Nyb2xsYmFyOgogICAgIGNhc2UgUHNldWRvU2Nyb2xs
YmFyQ29ybmVyOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1NlbGVjdG9yLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU2VsZWN0b3IuaAppbmRleCA2NmM5NGYzNzhmZTQ5ZjI5
NWRhODkyYTRkMzA3Njg1ZjQ3YjEyMjlmLi42NGNhNWM5ZWUzMjg1NjZkZDNjMzZiOTNhMTdmYmE3
NzA1YTJkOGJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU2VsZWN0b3IuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU2VsZWN0b3IuaApAQCAtMjA2LDcgKzIwNiw2IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKICNlbmRpZgogICAgICAgICAgICAgUHNldWRvSW5uZXJTcGlu
QnV0dG9uLAogICAgICAgICAgICAgUHNldWRvT3V0ZXJTcGluQnV0dG9uLAotICAgICAgICAgICAg
UHNldWRvUHJvZ3Jlc3NCYXJWYWx1ZSwKICAgICAgICAgICAgIFBzZXVkb0xlZnRQYWdlLAogICAg
ICAgICAgICAgUHNldWRvUmlnaHRQYWdlLAogICAgICAgICAgICAgUHNldWRvRmlyc3RQYWdlLApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUHJvZ3Jlc3NFbGVtZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFByb2dyZXNzRWxlbWVudC5jcHAKaW5kZXggNGE1NWEx
ZTQ3ZmM0YTY3MTQzZWY0ZWVjNjMwZTJhOTA5YjQ0M2NhYS4uMTY1NTgyMzMxZTYyMThmYmZiMTRm
ZjNlNGI3NzJhODg1ZDhmMjQyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
UHJvZ3Jlc3NFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQcm9ncmVz
c0VsZW1lbnQuY3BwCkBAIC0zMCwxMiArMzAsMzMgQEAKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIK
ICNpbmNsdWRlICJIVE1MUGFyc2VySWRpb21zLmgiCiAjaW5jbHVkZSAiUmVuZGVyUHJvZ3Jlc3Mu
aCIKKyNpbmNsdWRlICJTaGFkb3dFbGVtZW50LmgiCiAjaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJh
cy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7
CiAKK2NsYXNzIFByb2dyZXNzQmFyVmFsdWVFbGVtZW50IDogcHVibGljIFNoYWRvd0Jsb2NrRWxl
bWVudCB7CitwdWJsaWM6CisgICAgUHJvZ3Jlc3NCYXJWYWx1ZUVsZW1lbnQoSFRNTEVsZW1lbnQq
IHNoYWRvd1BhcmVudCkgCisgICAgICAgIDogU2hhZG93QmxvY2tFbGVtZW50KHNoYWRvd1BhcmVu
dCkKKyAgICB7CisgICAgfQorCisgICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIHNoYWRv
d1BzZXVkb0lkKCkgY29uc3QKKyAgICB7CisgICAgICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRv
bWljU3RyaW5nLCBwc2V1ZElkLCAoIi13ZWJraXQtcHJvZ3Jlc3MtYmFyLXZhbHVlIikpOworICAg
ICAgICByZXR1cm4gcHNldWRJZDsKKyAgICB9CisKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxQcm9n
cmVzc0JhclZhbHVlRWxlbWVudD4gY3JlYXRlKEhUTUxFbGVtZW50KiBzaGFkb3dQYXJlbnQpCisg
ICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFByb2dyZXNzQmFyVmFsdWVFbGVtZW50
KHNoYWRvd1BhcmVudCkpOworICAgIH0KKworfTsKKwogSFRNTFByb2dyZXNzRWxlbWVudDo6SFRN
TFByb2dyZXNzRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCog
ZG9jdW1lbnQsIEhUTUxGb3JtRWxlbWVudCogZm9ybSkKICAgICA6IEhUTUxGb3JtQ29udHJvbEVs
ZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQsIGZvcm0pCiB7CkBAIC02MCwyMSArODEsMTkgQEAgY29u
c3QgQXRvbWljU3RyaW5nJiBIVE1MUHJvZ3Jlc3NFbGVtZW50Ojpmb3JtQ29udHJvbFR5cGUoKSBj
b25zdAogCiB2b2lkIEhUTUxQcm9ncmVzc0VsZW1lbnQ6OnBhcnNlTWFwcGVkQXR0cmlidXRlKEF0
dHJpYnV0ZSogYXR0cmlidXRlKQogewotICAgIGlmIChhdHRyaWJ1dGUtPm5hbWUoKSA9PSB2YWx1
ZUF0dHIpIHsKLSAgICAgICAgaWYgKHJlbmRlcmVyKCkpCi0gICAgICAgICAgICByZW5kZXJlcigp
LT51cGRhdGVGcm9tRWxlbWVudCgpOwotICAgIH0gZWxzZSBpZiAoYXR0cmlidXRlLT5uYW1lKCkg
PT0gbWF4QXR0cikgewotICAgICAgICBpZiAocmVuZGVyZXIoKSkKLSAgICAgICAgICAgIHJlbmRl
cmVyKCktPnVwZGF0ZUZyb21FbGVtZW50KCk7Ci0gICAgfSBlbHNlCisgICAgaWYgKGF0dHJpYnV0
ZS0+bmFtZSgpID09IHZhbHVlQXR0cikKKyAgICAgICAgZGlkRWxlbWVudFN0YXRlQ2hhbmdlKCk7
CisgICAgZWxzZSBpZiAoYXR0cmlidXRlLT5uYW1lKCkgPT0gbWF4QXR0cikKKyAgICAgICAgZGlk
RWxlbWVudFN0YXRlQ2hhbmdlKCk7CisgICAgZWxzZQogICAgICAgICBIVE1MRm9ybUNvbnRyb2xF
bGVtZW50OjpwYXJzZU1hcHBlZEF0dHJpYnV0ZShhdHRyaWJ1dGUpOwogfQogCiB2b2lkIEhUTUxQ
cm9ncmVzc0VsZW1lbnQ6OmF0dGFjaCgpCiB7CisgICAgY3JlYXRlU2hhZG93U3VidHJlZUlmTmVl
ZGVkKCk7CiAgICAgSFRNTEZvcm1Db250cm9sRWxlbWVudDo6YXR0YWNoKCk7Ci0gICAgaWYgKHJl
bmRlcmVyKCkpCi0gICAgICAgIHJlbmRlcmVyKCktPnVwZGF0ZUZyb21FbGVtZW50KCk7CisgICAg
ZGlkRWxlbWVudFN0YXRlQ2hhbmdlKCk7CiB9CiAKIGRvdWJsZSBIVE1MUHJvZ3Jlc3NFbGVtZW50
Ojp2YWx1ZSgpIGNvbnN0CkBAIC0xMjEsNSArMTQwLDIzIEBAIGRvdWJsZSBIVE1MUHJvZ3Jlc3NF
bGVtZW50Ojpwb3NpdGlvbigpIGNvbnN0CiAgICAgcmV0dXJuIHZhbHVlKCkgLyBtYXgoKTsKIH0K
IAorU2hhZG93QmxvY2tFbGVtZW50KiBIVE1MUHJvZ3Jlc3NFbGVtZW50Ojp2YWx1ZVBhcnQoKQor
eworICAgIHJldHVybiBzdGF0aWNfY2FzdDxTaGFkb3dCbG9ja0VsZW1lbnQqPihzaGFkb3dSb290
KCkpOworfQorCit2b2lkIEhUTUxQcm9ncmVzc0VsZW1lbnQ6OmRpZEVsZW1lbnRTdGF0ZUNoYW5n
ZSgpCit7CisgICAgaWYgKHJlbmRlcmVyKCkpCisgICAgICAgIHJlbmRlcmVyKCktPnVwZGF0ZUZy
b21FbGVtZW50KCk7Cit9CisKK3ZvaWQgSFRNTFByb2dyZXNzRWxlbWVudDo6Y3JlYXRlU2hhZG93
U3VidHJlZUlmTmVlZGVkKCkKK3sKKyAgICBpZiAoc2hhZG93Um9vdCgpKQorICAgICAgICByZXR1
cm47CisgICAgc2V0U2hhZG93Um9vdChQcm9ncmVzc0JhclZhbHVlRWxlbWVudDo6Y3JlYXRlKHRo
aXMpLmdldCgpKTsKK30KKwogfSAvLyBuYW1lc3BhY2UKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MUHJvZ3Jlc3NFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxQcm9ncmVzc0VsZW1lbnQuaAppbmRleCBjODBmNTBmNTJiYzMyNzBjNjE4MzAzY2Q3
OTc0MmU1YjFlMjM0ZmU0Li4zZjQzY2Q5ODZjOTQ3N2FhNDNhMGRlYjA3MGJlZjc4MzQ4ZmY3OTg4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQcm9ncmVzc0VsZW1lbnQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQcm9ncmVzc0VsZW1lbnQuaApAQCAtMjYsNiAr
MjYsOCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIFNoYWRvd0Jsb2NrRWxlbWVu
dDsKKwogY2xhc3MgSFRNTFByb2dyZXNzRWxlbWVudCA6IHB1YmxpYyBIVE1MRm9ybUNvbnRyb2xF
bGVtZW50IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxIVE1MUHJvZ3Jlc3NFbGVt
ZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50KiwgSFRNTEZvcm1FbGVt
ZW50Kik7CkBAIC0zOCw2ICs0MCw3IEBAIHB1YmxpYzoKIAogICAgIGRvdWJsZSBwb3NpdGlvbigp
IGNvbnN0OwogCisgICAgU2hhZG93QmxvY2tFbGVtZW50KiB2YWx1ZVBhcnQoKTsKIHByaXZhdGU6
CiAgICAgSFRNTFByb2dyZXNzRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQq
LCBIVE1MRm9ybUVsZW1lbnQqKTsKIApAQCAtNTAsNiArNTMsOSBAQCBwcml2YXRlOgogICAgIHZp
cnR1YWwgdm9pZCBwYXJzZU1hcHBlZEF0dHJpYnV0ZShBdHRyaWJ1dGUqKTsKIAogICAgIHZpcnR1
YWwgdm9pZCBhdHRhY2goKTsKKworICAgIHZvaWQgZGlkRWxlbWVudFN0YXRlQ2hhbmdlKCk7Cisg
ICAgdm9pZCBjcmVhdGVTaGFkb3dTdWJ0cmVlSWZOZWVkZWQoKTsKIH07CiAKIH0gLy8gbmFtZXNw
YWNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUHJvZ3Jlc3Mu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclByb2dyZXNzLmNwcAppbmRleCA0
MTk0ZTJiNGZkNTk1ZmY0ZGU4MTJlZjQyMDE3MGJjOTcxMmE2ZDRjLi4xZWMwYTcyYjA5ZjYxYzkx
MWFhN2U3Y2I3OWU1ZDViNjllZmFkMGIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyUHJvZ3Jlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJQcm9ncmVzcy5jcHAKQEAgLTQ5LDIyICs0OSwxNCBAQCBSZW5kZXJQcm9ncmVzczo6UmVu
ZGVyUHJvZ3Jlc3MoSFRNTFByb2dyZXNzRWxlbWVudCogZWxlbWVudCkKIAogUmVuZGVyUHJvZ3Jl
c3M6On5SZW5kZXJQcm9ncmVzcygpCiB7Ci0gICAgaWYgKG1fdmFsdWVQYXJ0KQotICAgICAgICBt
X3ZhbHVlUGFydC0+ZGV0YWNoKCk7CiB9CiAKIHZvaWQgUmVuZGVyUHJvZ3Jlc3M6OnVwZGF0ZUZy
b21FbGVtZW50KCkKIHsKLSAgICBpZiAoIW1fdmFsdWVQYXJ0KSB7Ci0gICAgICAgIG1fdmFsdWVQ
YXJ0ID0gU2hhZG93QmxvY2tFbGVtZW50OjpjcmVhdGVGb3JQYXJ0KHN0YXRpY19jYXN0PEhUTUxF
bGVtZW50Kj4obm9kZSgpKSwgUFJPR1JFU1NfQkFSX1ZBTFVFKTsKLSAgICAgICAgaWYgKG1fdmFs
dWVQYXJ0LT5yZW5kZXJlcigpKQotICAgICAgICAgICAgYWRkQ2hpbGQobV92YWx1ZVBhcnQtPnJl
bmRlcmVyKCkpOwotICAgIH0KLQogICAgIGlmIChzaG91bGRIYXZlUGFydHMoKSkKICAgICAgICAg
c3R5bGUoKS0+c2V0QXBwZWFyYW5jZShOb0NvbnRyb2xQYXJ0KTsKLSAgICBlbHNlIGlmIChtX3Zh
bHVlUGFydC0+cmVuZGVyZXIoKSkKLSAgICAgICAgbV92YWx1ZVBhcnQtPnJlbmRlcmVyKCktPnN0
eWxlKCktPnNldFZpc2liaWxpdHkoSElEREVOKTsKKyAgICBlbHNlIGlmICh2YWx1ZVBhcnQoKS0+
cmVuZGVyZXIoKSkKKyAgICAgICAgdmFsdWVQYXJ0KCktPnJlbmRlcmVyKCktPnN0eWxlKCktPnNl
dFZpc2liaWxpdHkoSElEREVOKTsKIAogICAgIEhUTUxQcm9ncmVzc0VsZW1lbnQqIGVsZW1lbnQg
PSBwcm9ncmVzc0VsZW1lbnQoKTsKICAgICBpZiAobV9wb3NpdGlvbiA9PSBlbGVtZW50LT5wb3Np
dGlvbigpKQpAQCAtMTAyLDcgKzk0LDcgQEAgdm9pZCBSZW5kZXJQcm9ncmVzczo6cGFpbnQoUGFp
bnRJbmZvJiBwYWludEluZm8sIGludCB0eCwgaW50IHR5KQogCiB2b2lkIFJlbmRlclByb2dyZXNz
OjpsYXlvdXRQYXJ0cygpCiB7Ci0gICAgbV92YWx1ZVBhcnQtPmxheW91dEFzUGFydCh2YWx1ZVBh
cnRSZWN0KCkpOworICAgIHZhbHVlUGFydCgpLT5sYXlvdXRBc1BhcnQodmFsdWVQYXJ0UmVjdCgp
KTsKICAgICB1cGRhdGVBbmltYXRpb25TdGF0ZSgpOwogfQogCkBAIC0xMTAsNyArMTAyLDcgQEAg
Ym9vbCBSZW5kZXJQcm9ncmVzczo6c2hvdWxkSGF2ZVBhcnRzKCkgY29uc3QKIHsKICAgICBpZiAo
IXN0eWxlKCktPmhhc0FwcGVhcmFuY2UoKSkKICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgaWYg
KFNoYWRvd0Jsb2NrRWxlbWVudDo6cGFydFNob3VsZEhhdmVTdHlsZSh0aGlzLCBQUk9HUkVTU19C
QVJfVkFMVUUpKQorICAgIGlmICghKHZhbHVlUGFydCgpLT5yZW5kZXJlcigpICYmIHZhbHVlUGFy
dCgpLT5yZW5kZXJlcigpLT5zdHlsZSgpLT5oYXNBcHBlYXJhbmNlKCkpKQogICAgICAgICByZXR1
cm4gdHJ1ZTsKICAgICByZXR1cm4gZmFsc2U7CiB9CkBAIC0xNDUsNiArMTM3LDExIEBAIEhUTUxQ
cm9ncmVzc0VsZW1lbnQqIFJlbmRlclByb2dyZXNzOjpwcm9ncmVzc0VsZW1lbnQoKSBjb25zdAog
ICAgIHJldHVybiBzdGF0aWNfY2FzdDxIVE1MUHJvZ3Jlc3NFbGVtZW50Kj4obm9kZSgpKTsKIH0g
ICAgCiAKK1NoYWRvd0Jsb2NrRWxlbWVudCogUmVuZGVyUHJvZ3Jlc3M6OnZhbHVlUGFydCgpIGNv
bnN0Cit7CisgICAgcmV0dXJuIHByb2dyZXNzRWxlbWVudCgpLT52YWx1ZVBhcnQoKTsKK30KKwog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJQcm9ncmVzcy5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclByb2dyZXNzLmgKaW5kZXggOWVkNTc0MTliMDJiOTc4YzU0ZGM3ZjRiOGMzN2E2MzEz
OWYyNDdmNi4uZDVkMDM2YzVlNDkwY2NmZWRjYWY4ZWJlYzAzZTA3MDUzMGM4MDcwZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclByb2dyZXNzLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclByb2dyZXNzLmgKQEAgLTU3LDEzICs1NywxNCBA
QCBwcml2YXRlOgogICAgIHZvaWQgYW5pbWF0aW9uVGltZXJGaXJlZChUaW1lcjxSZW5kZXJQcm9n
cmVzcz4qKTsKICAgICB2b2lkIHVwZGF0ZUFuaW1hdGlvblN0YXRlKCk7CiAKKyAgICBTaGFkb3dC
bG9ja0VsZW1lbnQqIHZhbHVlUGFydCgpIGNvbnN0OworCiAgICAgZG91YmxlIG1fcG9zaXRpb247
CiAgICAgZG91YmxlIG1fYW5pbWF0aW9uU3RhcnRUaW1lOwogICAgIGRvdWJsZSBtX2FuaW1hdGlv
blJlcGVhdEludGVydmFsOwogICAgIGRvdWJsZSBtX2FuaW1hdGlvbkR1cmF0aW9uOwogICAgIGJv
b2wgbV9hbmltYXRpbmc7CiAgICAgVGltZXI8UmVuZGVyUHJvZ3Jlc3M+IG1fYW5pbWF0aW9uVGlt
ZXI7Ci0gICAgUmVmUHRyPFNoYWRvd0Jsb2NrRWxlbWVudD4gbV92YWx1ZVBhcnQ7CiB9OwogCiBp
bmxpbmUgUmVuZGVyUHJvZ3Jlc3MqIHRvUmVuZGVyUHJvZ3Jlc3MoUmVuZGVyT2JqZWN0KiBvYmpl
Y3QpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5
bGVDb25zdGFudHMuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHls
ZUNvbnN0YW50cy5oCmluZGV4IDdjZDQ5MDMwMWExNzVjM2YxOWZmY2NmOGY2NmVhYWY5ZmZiNmY1
MzYuLjExZTY5N2U3YjlhODg3NDExMWVhYzk5ODAwZjI5YWRkYTkzMWVmNDMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZUNvbnN0YW50cy5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZUNvbnN0YW50cy5o
CkBAIC03NSw3ICs3NSw3IEBAIGVudW0gUHNldWRvSWQgewogICAgIE1FRElBX0NPTlRST0xTX1NF
RUtfQkFDS19CVVRUT04sIE1FRElBX0NPTlRST0xTX1NFRUtfRk9SV0FSRF9CVVRUT04sIE1FRElB
X0NPTlRST0xTX0ZVTExTQ1JFRU5fQlVUVE9OLCBNRURJQV9DT05UUk9MU19SRVdJTkRfQlVUVE9O
LCAKICAgICBNRURJQV9DT05UUk9MU19SRVRVUk5fVE9fUkVBTFRJTUVfQlVUVE9OLCBNRURJQV9D
T05UUk9MU19UT0dHTEVfQ0xPU0VEX0NBUFRJT05TX0JVVFRPTiwKICAgICBNRURJQV9DT05UUk9M
U19TVEFUVVNfRElTUExBWSwgU0NST0xMQkFSX1RIVU1CLCBTQ1JPTExCQVJfQlVUVE9OLCBTQ1JP
TExCQVJfVFJBQ0ssIFNDUk9MTEJBUl9UUkFDS19QSUVDRSwgU0NST0xMQkFSX0NPUk5FUiwgUkVT
SVpFUiwKLSAgICBJTlBVVF9MSVNUX0JVVFRPTiwgSU5QVVRfU1BFRUNIX0JVVFRPTiwgSU5ORVJf
U1BJTl9CVVRUT04sIE9VVEVSX1NQSU5fQlVUVE9OLCBWSVNJVEVEX0xJTkssIFBST0dSRVNTX0JB
Ul9WQUxVRSwKKyAgICBJTlBVVF9MSVNUX0JVVFRPTiwgSU5QVVRfU1BFRUNIX0JVVFRPTiwgSU5O
RVJfU1BJTl9CVVRUT04sIE9VVEVSX1NQSU5fQlVUVE9OLCBWSVNJVEVEX0xJTkssCiAgICAgTUVU
RVJfSE9SSVpPTlRBTF9CQVIsIE1FVEVSX0hPUklaT05UQUxfT1BUSU1VTSwgTUVURVJfSE9SSVpP
TlRBTF9TVUJPUFRJTUFMLCBNRVRFUl9IT1JJWk9OVEFMX0VWRU5fTEVTU19HT09ELAogICAgIE1F
VEVSX1ZFUlRJQ0FMX0JBUiwgTUVURVJfVkVSVElDQUxfT1BUSU1VTSwgTUVURVJfVkVSVElDQUxf
U1VCT1BUSU1BTCwgTUVURVJfVkVSVElDQUxfRVZFTl9MRVNTX0dPT0QsIAogICAgIEFGVEVSX0xB
U1RfSU5URVJOQUxfUFNFVURPSUQsCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>80629</attachid>
            <date>2011-01-31 03:26:50 -0800</date>
            <delta_ts>2011-02-01 10:54:10 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-50660-20110131202648.patch</filename>
            <type>text/plain</type>
            <size>13141</size>
            <attacher name="Hajime Morrita">morrita</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBmNmM2ZGJlYjQ3NjE1OGY0ZTQwNGJkNmNiODkzYTg5MjE0Mzg1ZGU4Li43
M2QwOWZhMWI0YjU4NjJkZjUyODM3ODQ5MDU2M2E3ZDgzZDI1MWVjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsNDMgQEAKKzIwMTEtMDEtMjcgIE1PUklUQSBIYWppbWUgIDxtb3JyaXRhQGdvb2dsZS5j
b20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGltaXRyaSBHbGF6a292LgorICAgICAgICAKKyAg
ICAgICAgQ29udmVydCA8cHJvZ3Jlc3M+IHNoYWRvdyBET00gdG8gYSBET00tYmFzZWQgc2hhZG93
LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTA2NjAK
KworICAgICAgICAqIFJlbW92ZWQgUmVuZGVyUHJvZ3Jlc3M6Om1fdmFsdWVQYXJ0LCBtb3ZlZCB0
aGUgc2hhZG93IG5vZGUKKyAgICAgICAgICB0byB0aGUgc2hhZG93IHJvb3Qgb2YgSFRNTFByb2dy
ZXNzRWxlbWVudC4KKyAgICAgICAgKiBSZW1vdmVkIGhhcmQtY29kZWQgcHNldWRvIElEIGZvciAt
d2Via2l0LXByb2dyZXNzLWJhci12YWx1ZS4KKyAgICAgICAgICBQcm9ncmVzc0JhclZhbHVlRWxl
bWVudCBpcyBkZWZpbmVkIG9ubHkgZm9yIG92ZXJyaWRpbmcKKyAgICAgICAgICBzaGFkb3dQc2V1
ZG9JZCgpLgorICAgICAgICAKKyAgICAgICAgTm8gbmV3IHRlc3RzLiBObyBiZWhhdmlvcmFsIGNo
YW5nZS4KKworICAgICAgICAqIGNzcy9DU1NTZWxlY3Rvci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpDU1NTZWxlY3Rvcjo6cHNldWRvSWQpOgorICAgICAgICAoV2ViQ29yZTo6bmFtZVRvUHNldWRv
VHlwZU1hcCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NTZWxlY3Rvcjo6ZXh0cmFjdFBzZXVkb1R5
cGUpOgorICAgICAgICAqIGNzcy9DU1NTZWxlY3Rvci5oOgorICAgICAgICAqIGh0bWwvSFRNTFBy
b2dyZXNzRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQcm9ncmVzc0JhclZhbHVlRWxl
bWVudDo6UHJvZ3Jlc3NCYXJWYWx1ZUVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6UHJvZ3Jl
c3NCYXJWYWx1ZUVsZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKToKKyAgICAgICAgKFdlYkNvcmU6OlBy
b2dyZXNzQmFyVmFsdWVFbGVtZW50OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6UHJvZ3Jl
c3NCYXJWYWx1ZUVsZW1lbnQ6OmRldGFjaCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MUHJvZ3Jl
c3NFbGVtZW50OjpwYXJzZU1hcHBlZEF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1M
UHJvZ3Jlc3NFbGVtZW50OjphdHRhY2gpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFByb2dyZXNz
RWxlbWVudDo6dmFsdWVQYXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxQcm9ncmVzc0VsZW1l
bnQ6OmRpZEVsZW1lbnRTdGF0ZUNoYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MUHJvZ3Jl
c3NFbGVtZW50OjpjcmVhdGVTaGFkb3dTdWJ0cmVlSWZOZWVkZWQpOgorICAgICAgICAqIGh0bWwv
SFRNTFByb2dyZXNzRWxlbWVudC5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJQcm9ncmVz
cy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJQcm9ncmVzczo6flJlbmRlclByb2dyZXNz
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclByb2dyZXNzOjp1cGRhdGVGcm9tRWxlbWVudCk6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJQcm9ncmVzczo6bGF5b3V0UGFydHMpOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyUHJvZ3Jlc3M6OnNob3VsZEhhdmVQYXJ0cyk6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJQcm9ncmVzczo6dmFsdWVQYXJ0KToKKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyUHJvZ3Jlc3MuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGVD
b25zdGFudHMuaDoKKwogMjAxMS0wMS0zMSAgWXVyeSBTZW1pa2hhdHNreSAgPHl1cnlzQGNocm9t
aXVtLm9yZz4KIAogICAgICAgICBVbnJldmlld2VkLiBGaXggQ2hyb21pdW0gY29tcGlsYXRpb24g
b24gTGludXguCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU2VsZWN0b3IuY3Bw
IGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1NlbGVjdG9yLmNwcAppbmRleCAxYmU3ZjM2NGJkYWU4
N2JlZTIyYTc1NWMzOTkyMjBmMTVlM2I4MmUzLi5kZjE5MmQ3NzBmOWE3OWM0NjIwODc2OGYxYTM3
ZDdkY2E4ODQxYjhhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU2VsZWN0b3Iu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvci5jcHAKQEAgLTE2OCwxNCAr
MTY4LDYgQEAgUHNldWRvSWQgQ1NTU2VsZWN0b3I6OnBzZXVkb0lkKFBzZXVkb1R5cGUgdHlwZSkK
ICAgICAgICAgcmV0dXJuIElOTkVSX1NQSU5fQlVUVE9OOwogICAgIGNhc2UgUHNldWRvT3V0ZXJT
cGluQnV0dG9uOgogICAgICAgICByZXR1cm4gT1VURVJfU1BJTl9CVVRUT047Ci0gICAgY2FzZSBQ
c2V1ZG9Qcm9ncmVzc0JhclZhbHVlOgotI2lmIEVOQUJMRShQUk9HUkVTU19UQUcpCi0gICAgICAg
IHJldHVybiBQUk9HUkVTU19CQVJfVkFMVUU7Ci0jZWxzZQotICAgICAgICBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsKLSAgICAgICAgcmV0dXJuIE5PUFNFVURPOwotI2VuZGlmCi0KICNpZiBFTkFCTEUo
TUVURVJfVEFHKQogICAgIGNhc2UgUHNldWRvTWV0ZXJIb3Jpem9udGFsQmFyOgogICAgICAgICBy
ZXR1cm4gTUVURVJfSE9SSVpPTlRBTF9CQVI7CkBAIC0zMzUsMTAgKzMyNyw2IEBAIHN0YXRpYyBI
YXNoTWFwPEF0b21pY1N0cmluZ0ltcGwqLCBDU1NTZWxlY3Rvcjo6UHNldWRvVHlwZT4qIG5hbWVU
b1BzZXVkb1R5cGVNYXAoCiAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIG9u
bHlPZlR5cGUsICgib25seS1vZi10eXBlIikpOwogICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRv
bWljU3RyaW5nLCBvcHRpb25hbCwgKCJvcHRpb25hbCIpKTsKICAgICBERUZJTkVfU1RBVElDX0xP
Q0FMKEF0b21pY1N0cmluZywgb3V0ZXJTcGluQnV0dG9uLCAoIi13ZWJraXQtb3V0ZXItc3Bpbi1i
dXR0b24iKSk7Ci0jaWYgRU5BQkxFKFBST0dSRVNTX1RBRykKLSAgICBERUZJTkVfU1RBVElDX0xP
Q0FMKEF0b21pY1N0cmluZywgcHJvZ3Jlc3NCYXJWYWx1ZSwgKCItd2Via2l0LXByb2dyZXNzLWJh
ci12YWx1ZSIpKTsKLSNlbmRpZgotCiAjaWYgRU5BQkxFKE1FVEVSX1RBRykKICAgICBERUZJTkVf
U1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgbWV0ZXJIb3Jpem9udGFsQmFyLCAoIi13ZWJraXQt
bWV0ZXItaG9yaXpvbnRhbC1iYXIiKSk7CiAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNT
dHJpbmcsIG1ldGVySG9yaXpvbnRhbE9wdGltdW1WYWx1ZSwgKCItd2Via2l0LW1ldGVyLWhvcml6
b250YWwtb3B0aW11bS12YWx1ZSIpKTsKQEAgLTQ0Miw5ICs0MzAsNiBAQCBzdGF0aWMgSGFzaE1h
cDxBdG9taWNTdHJpbmdJbXBsKiwgQ1NTU2VsZWN0b3I6OlBzZXVkb1R5cGU+KiBuYW1lVG9Qc2V1
ZG9UeXBlTWFwKAogICAgICAgICBuYW1lVG9Qc2V1ZG9UeXBlLT5zZXQobnRoTGFzdENoaWxkLmlt
cGwoKSwgQ1NTU2VsZWN0b3I6OlBzZXVkb050aExhc3RDaGlsZCk7CiAgICAgICAgIG5hbWVUb1Bz
ZXVkb1R5cGUtPnNldChudGhMYXN0T2ZUeXBlLmltcGwoKSwgQ1NTU2VsZWN0b3I6OlBzZXVkb050
aExhc3RPZlR5cGUpOwogICAgICAgICBuYW1lVG9Qc2V1ZG9UeXBlLT5zZXQob3V0ZXJTcGluQnV0
dG9uLmltcGwoKSwgQ1NTU2VsZWN0b3I6OlBzZXVkb091dGVyU3BpbkJ1dHRvbik7Ci0jaWYgRU5B
QkxFKFBST0dSRVNTX1RBRykKLSAgICAgICAgbmFtZVRvUHNldWRvVHlwZS0+c2V0KHByb2dyZXNz
QmFyVmFsdWUuaW1wbCgpLCBDU1NTZWxlY3Rvcjo6UHNldWRvUHJvZ3Jlc3NCYXJWYWx1ZSk7Ci0j
ZW5kaWYKICNpZiBFTkFCTEUoTUVURVJfVEFHKQogICAgICAgICBuYW1lVG9Qc2V1ZG9UeXBlLT5z
ZXQobWV0ZXJIb3Jpem9udGFsQmFyLmltcGwoKSwgQ1NTU2VsZWN0b3I6OlBzZXVkb01ldGVySG9y
aXpvbnRhbEJhcik7CiAgICAgICAgIG5hbWVUb1BzZXVkb1R5cGUtPnNldChtZXRlckhvcml6b250
YWxPcHRpbXVtVmFsdWUuaW1wbCgpLCBDU1NTZWxlY3Rvcjo6UHNldWRvTWV0ZXJIb3Jpem9udGFs
T3B0aW11bSk7CkBAIC01NDQsNyArNTI5LDYgQEAgdm9pZCBDU1NTZWxlY3Rvcjo6ZXh0cmFjdFBz
ZXVkb1R5cGUoKSBjb25zdAogICAgIGNhc2UgUHNldWRvTWV0ZXJWZXJ0aWNhbFN1Ym9wdGltYWw6
CiAgICAgY2FzZSBQc2V1ZG9NZXRlclZlcnRpY2FsRXZlbkxlc3NHb29kOgogICAgIGNhc2UgUHNl
dWRvT3V0ZXJTcGluQnV0dG9uOgotICAgIGNhc2UgUHNldWRvUHJvZ3Jlc3NCYXJWYWx1ZToKICAg
ICBjYXNlIFBzZXVkb1Jlc2l6ZXI6CiAgICAgY2FzZSBQc2V1ZG9TY3JvbGxiYXI6CiAgICAgY2Fz
ZSBQc2V1ZG9TY3JvbGxiYXJDb3JuZXI6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTU2VsZWN0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvci5oCmluZGV4IGNi
ZTNlOWI3YzhhYjllNTkxNjUyMzY1YzRmOWMzY2MxZDIxNTk1ZWUuLmYzZjgwMGJmYWRlYjgyNzc5
MjI1M2VhNWI4Mjc4NTAyYjBiMmNkOGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NTZWxlY3Rvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvci5oCkBAIC0x
OTUsNyArMTk1LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogI2VuZGlmCiAgICAgICAgICAgICBQ
c2V1ZG9Jbm5lclNwaW5CdXR0b24sCiAgICAgICAgICAgICBQc2V1ZG9PdXRlclNwaW5CdXR0b24s
Ci0gICAgICAgICAgICBQc2V1ZG9Qcm9ncmVzc0JhclZhbHVlLAogICAgICAgICAgICAgUHNldWRv
TGVmdFBhZ2UsCiAgICAgICAgICAgICBQc2V1ZG9SaWdodFBhZ2UsCiAgICAgICAgICAgICBQc2V1
ZG9GaXJzdFBhZ2UsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQcm9ncmVz
c0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUHJvZ3Jlc3NFbGVtZW50LmNw
cAppbmRleCA0YTU1YTFlNDdmYzRhNjcxNDNlZjRlZWM2MzBlMmE5MDliNDQzY2FhLi43ODI0ZmE4
NmJmN2U3ODljNWJjODI3OGY3MjMzYTAyMTQyNDAyOWZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxQcm9ncmVzc0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTFByb2dyZXNzRWxlbWVudC5jcHAKQEAgLTMwLDEyICszMCw0NCBAQAogI2luY2x1ZGUg
IkhUTUxOYW1lcy5oIgogI2luY2x1ZGUgIkhUTUxQYXJzZXJJZGlvbXMuaCIKICNpbmNsdWRlICJS
ZW5kZXJQcm9ncmVzcy5oIgorI2luY2x1ZGUgIlNoYWRvd0VsZW1lbnQuaCIKICNpbmNsdWRlIDx3
dGYvU3RkTGliRXh0cmFzLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdXNpbmcgbmFtZXNw
YWNlIEhUTUxOYW1lczsKIAorY2xhc3MgUHJvZ3Jlc3NCYXJWYWx1ZUVsZW1lbnQgOiBwdWJsaWMg
U2hhZG93QmxvY2tFbGVtZW50IHsKK3B1YmxpYzoKKyAgICBQcm9ncmVzc0JhclZhbHVlRWxlbWVu
dChIVE1MRWxlbWVudCogc2hhZG93UGFyZW50KSAKKyAgICAgICAgOiBTaGFkb3dCbG9ja0VsZW1l
bnQoc2hhZG93UGFyZW50KQorICAgIHsKKyAgICB9CisKKyAgICB2aXJ0dWFsIGNvbnN0IEF0b21p
Y1N0cmluZyYgc2hhZG93UHNldWRvSWQoKSBjb25zdAorICAgIHsKKyAgICAgICAgREVGSU5FX1NU
QVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIHBzZXVkSWQsICgiLXdlYmtpdC1wcm9ncmVzcy1iYXIt
dmFsdWUiKSk7CisgICAgICAgIHJldHVybiBwc2V1ZElkOworICAgIH0KKworICAgIHZpcnR1YWwg
dm9pZCBkZXRhY2goKQorICAgIHsKKyAgICAgICAgLy8gSW5zdGVhZCBvZiB1c2luZyBzZXRTaGFk
b3dIb3N0KCkgbGlrZSBTaGFkb3dCbG9ja0VsZW1lbnQgZG9lcywKKyAgICAgICAgLy8gdGhpcyBj
bGFzcyB1c2VzIHNldFNoYWRvd1Jvb3QoKSB0byB1bmxpbmsgbXV0dWFsIHNoYWRvdy1ob3N0IHJl
ZmVyZW5jZXMuCisgICAgICAgIC8vIE5vdGUgdGhhdCBTaGFkb3dCbG9ja0VsZW1lbnQ6OmRldGFj
aCgpIHNob3VsZCBiZSByZW1vdmVkIHdoZW4gdGhlCisgICAgICAgIC8vIHNoYWRvdyBtb2RlbCB0
cmFuc2l0aW9uIGlzIG92ZXIuIChCdWcgNTM0MTcpCisgICAgICAgIGlmIChFbGVtZW50KiBob3N0
ID0gc2hhZG93SG9zdCgpKQorICAgICAgICAgICAgaG9zdC0+c2V0U2hhZG93Um9vdCgwKTsKKyAg
ICAgICAgU2hhZG93QmxvY2tFbGVtZW50OjpzZXRTaGFkb3dIb3N0KDApOworICAgIH0KKworICAg
IHN0YXRpYyBQYXNzUmVmUHRyPFByb2dyZXNzQmFyVmFsdWVFbGVtZW50PiBjcmVhdGUoSFRNTEVs
ZW1lbnQqIHNoYWRvd1BhcmVudCkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcg
UHJvZ3Jlc3NCYXJWYWx1ZUVsZW1lbnQoc2hhZG93UGFyZW50KSk7CisgICAgfQorCit9OworCiBI
VE1MUHJvZ3Jlc3NFbGVtZW50OjpIVE1MUHJvZ3Jlc3NFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5h
bWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2N1bWVudCwgSFRNTEZvcm1FbGVtZW50KiBmb3JtKQog
ICAgIDogSFRNTEZvcm1Db250cm9sRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCwgZm9ybSkKIHsK
QEAgLTYwLDIxICs5MiwxOSBAQCBjb25zdCBBdG9taWNTdHJpbmcmIEhUTUxQcm9ncmVzc0VsZW1l
bnQ6OmZvcm1Db250cm9sVHlwZSgpIGNvbnN0CiAKIHZvaWQgSFRNTFByb2dyZXNzRWxlbWVudDo6
cGFyc2VNYXBwZWRBdHRyaWJ1dGUoQXR0cmlidXRlKiBhdHRyaWJ1dGUpCiB7Ci0gICAgaWYgKGF0
dHJpYnV0ZS0+bmFtZSgpID09IHZhbHVlQXR0cikgewotICAgICAgICBpZiAocmVuZGVyZXIoKSkK
LSAgICAgICAgICAgIHJlbmRlcmVyKCktPnVwZGF0ZUZyb21FbGVtZW50KCk7Ci0gICAgfSBlbHNl
IGlmIChhdHRyaWJ1dGUtPm5hbWUoKSA9PSBtYXhBdHRyKSB7Ci0gICAgICAgIGlmIChyZW5kZXJl
cigpKQotICAgICAgICAgICAgcmVuZGVyZXIoKS0+dXBkYXRlRnJvbUVsZW1lbnQoKTsKLSAgICB9
IGVsc2UKKyAgICBpZiAoYXR0cmlidXRlLT5uYW1lKCkgPT0gdmFsdWVBdHRyKQorICAgICAgICBk
aWRFbGVtZW50U3RhdGVDaGFuZ2UoKTsKKyAgICBlbHNlIGlmIChhdHRyaWJ1dGUtPm5hbWUoKSA9
PSBtYXhBdHRyKQorICAgICAgICBkaWRFbGVtZW50U3RhdGVDaGFuZ2UoKTsKKyAgICBlbHNlCiAg
ICAgICAgIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ6OnBhcnNlTWFwcGVkQXR0cmlidXRlKGF0dHJp
YnV0ZSk7CiB9CiAKIHZvaWQgSFRNTFByb2dyZXNzRWxlbWVudDo6YXR0YWNoKCkKIHsKKyAgICBj
cmVhdGVTaGFkb3dTdWJ0cmVlSWZOZWVkZWQoKTsKICAgICBIVE1MRm9ybUNvbnRyb2xFbGVtZW50
OjphdHRhY2goKTsKLSAgICBpZiAocmVuZGVyZXIoKSkKLSAgICAgICAgcmVuZGVyZXIoKS0+dXBk
YXRlRnJvbUVsZW1lbnQoKTsKKyAgICBkaWRFbGVtZW50U3RhdGVDaGFuZ2UoKTsKIH0KIAogZG91
YmxlIEhUTUxQcm9ncmVzc0VsZW1lbnQ6OnZhbHVlKCkgY29uc3QKQEAgLTEyMSw1ICsxNTEsMjMg
QEAgZG91YmxlIEhUTUxQcm9ncmVzc0VsZW1lbnQ6OnBvc2l0aW9uKCkgY29uc3QKICAgICByZXR1
cm4gdmFsdWUoKSAvIG1heCgpOwogfQogCitTaGFkb3dCbG9ja0VsZW1lbnQqIEhUTUxQcm9ncmVz
c0VsZW1lbnQ6OnZhbHVlUGFydCgpCit7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PFNoYWRvd0Js
b2NrRWxlbWVudCo+KHNoYWRvd1Jvb3QoKSk7Cit9CisKK3ZvaWQgSFRNTFByb2dyZXNzRWxlbWVu
dDo6ZGlkRWxlbWVudFN0YXRlQ2hhbmdlKCkKK3sKKyAgICBpZiAocmVuZGVyZXIoKSkKKyAgICAg
ICAgcmVuZGVyZXIoKS0+dXBkYXRlRnJvbUVsZW1lbnQoKTsKK30KKwordm9pZCBIVE1MUHJvZ3Jl
c3NFbGVtZW50OjpjcmVhdGVTaGFkb3dTdWJ0cmVlSWZOZWVkZWQoKQoreworICAgIGlmIChzaGFk
b3dSb290KCkpCisgICAgICAgIHJldHVybjsKKyAgICBzZXRTaGFkb3dSb290KFByb2dyZXNzQmFy
VmFsdWVFbGVtZW50OjpjcmVhdGUodGhpcykuZ2V0KCkpOworfQorCiB9IC8vIG5hbWVzcGFjZQog
I2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQcm9ncmVzc0VsZW1l
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFByb2dyZXNzRWxlbWVudC5oCmluZGV4IGM4
MGY1MGY1MmJjMzI3MGM2MTgzMDNjZDc5NzQyZTViMWUyMzRmZTQuLjNmNDNjZDk4NmM5NDc3YWE0
M2EwZGViMDcwYmVmNzgzNDhmZjc5ODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTFByb2dyZXNzRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFByb2dy
ZXNzRWxlbWVudC5oCkBAIC0yNiw2ICsyNiw4IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAor
Y2xhc3MgU2hhZG93QmxvY2tFbGVtZW50OworCiBjbGFzcyBIVE1MUHJvZ3Jlc3NFbGVtZW50IDog
cHVibGljIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQgewogcHVibGljOgogICAgIHN0YXRpYyBQYXNz
UmVmUHRyPEhUTUxQcm9ncmVzc0VsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwg
RG9jdW1lbnQqLCBIVE1MRm9ybUVsZW1lbnQqKTsKQEAgLTM4LDYgKzQwLDcgQEAgcHVibGljOgog
CiAgICAgZG91YmxlIHBvc2l0aW9uKCkgY29uc3Q7CiAKKyAgICBTaGFkb3dCbG9ja0VsZW1lbnQq
IHZhbHVlUGFydCgpOwogcHJpdmF0ZToKICAgICBIVE1MUHJvZ3Jlc3NFbGVtZW50KGNvbnN0IFF1
YWxpZmllZE5hbWUmLCBEb2N1bWVudCosIEhUTUxGb3JtRWxlbWVudCopOwogCkBAIC01MCw2ICs1
Myw5IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIHBhcnNlTWFwcGVkQXR0cmlidXRlKEF0
dHJpYnV0ZSopOwogCiAgICAgdmlydHVhbCB2b2lkIGF0dGFjaCgpOworCisgICAgdm9pZCBkaWRF
bGVtZW50U3RhdGVDaGFuZ2UoKTsKKyAgICB2b2lkIGNyZWF0ZVNoYWRvd1N1YnRyZWVJZk5lZWRl
ZCgpOwogfTsKIAogfSAvLyBuYW1lc3BhY2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJQcm9ncmVzcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyUHJvZ3Jlc3MuY3BwCmluZGV4IDQxOTRlMmI0ZmQ1OTVmZjRkZTgxMmVmNDIwMTcwYmM5NzEy
YTZkNGMuLjFlYzBhNzJiMDlmNjFjOTExYWE3ZTdjYjc5ZTVkNWI2OWVmYWQwYjAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJQcm9ncmVzcy5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclByb2dyZXNzLmNwcApAQCAtNDksMjIgKzQ5LDE0
IEBAIFJlbmRlclByb2dyZXNzOjpSZW5kZXJQcm9ncmVzcyhIVE1MUHJvZ3Jlc3NFbGVtZW50KiBl
bGVtZW50KQogCiBSZW5kZXJQcm9ncmVzczo6flJlbmRlclByb2dyZXNzKCkKIHsKLSAgICBpZiAo
bV92YWx1ZVBhcnQpCi0gICAgICAgIG1fdmFsdWVQYXJ0LT5kZXRhY2goKTsKIH0KIAogdm9pZCBS
ZW5kZXJQcm9ncmVzczo6dXBkYXRlRnJvbUVsZW1lbnQoKQogewotICAgIGlmICghbV92YWx1ZVBh
cnQpIHsKLSAgICAgICAgbV92YWx1ZVBhcnQgPSBTaGFkb3dCbG9ja0VsZW1lbnQ6OmNyZWF0ZUZv
clBhcnQoc3RhdGljX2Nhc3Q8SFRNTEVsZW1lbnQqPihub2RlKCkpLCBQUk9HUkVTU19CQVJfVkFM
VUUpOwotICAgICAgICBpZiAobV92YWx1ZVBhcnQtPnJlbmRlcmVyKCkpCi0gICAgICAgICAgICBh
ZGRDaGlsZChtX3ZhbHVlUGFydC0+cmVuZGVyZXIoKSk7Ci0gICAgfQotCiAgICAgaWYgKHNob3Vs
ZEhhdmVQYXJ0cygpKQogICAgICAgICBzdHlsZSgpLT5zZXRBcHBlYXJhbmNlKE5vQ29udHJvbFBh
cnQpOwotICAgIGVsc2UgaWYgKG1fdmFsdWVQYXJ0LT5yZW5kZXJlcigpKQotICAgICAgICBtX3Zh
bHVlUGFydC0+cmVuZGVyZXIoKS0+c3R5bGUoKS0+c2V0VmlzaWJpbGl0eShISURERU4pOworICAg
IGVsc2UgaWYgKHZhbHVlUGFydCgpLT5yZW5kZXJlcigpKQorICAgICAgICB2YWx1ZVBhcnQoKS0+
cmVuZGVyZXIoKS0+c3R5bGUoKS0+c2V0VmlzaWJpbGl0eShISURERU4pOwogCiAgICAgSFRNTFBy
b2dyZXNzRWxlbWVudCogZWxlbWVudCA9IHByb2dyZXNzRWxlbWVudCgpOwogICAgIGlmIChtX3Bv
c2l0aW9uID09IGVsZW1lbnQtPnBvc2l0aW9uKCkpCkBAIC0xMDIsNyArOTQsNyBAQCB2b2lkIFJl
bmRlclByb2dyZXNzOjpwYWludChQYWludEluZm8mIHBhaW50SW5mbywgaW50IHR4LCBpbnQgdHkp
CiAKIHZvaWQgUmVuZGVyUHJvZ3Jlc3M6OmxheW91dFBhcnRzKCkKIHsKLSAgICBtX3ZhbHVlUGFy
dC0+bGF5b3V0QXNQYXJ0KHZhbHVlUGFydFJlY3QoKSk7CisgICAgdmFsdWVQYXJ0KCktPmxheW91
dEFzUGFydCh2YWx1ZVBhcnRSZWN0KCkpOwogICAgIHVwZGF0ZUFuaW1hdGlvblN0YXRlKCk7CiB9
CiAKQEAgLTExMCw3ICsxMDIsNyBAQCBib29sIFJlbmRlclByb2dyZXNzOjpzaG91bGRIYXZlUGFy
dHMoKSBjb25zdAogewogICAgIGlmICghc3R5bGUoKS0+aGFzQXBwZWFyYW5jZSgpKQogICAgICAg
ICByZXR1cm4gdHJ1ZTsKLSAgICBpZiAoU2hhZG93QmxvY2tFbGVtZW50OjpwYXJ0U2hvdWxkSGF2
ZVN0eWxlKHRoaXMsIFBST0dSRVNTX0JBUl9WQUxVRSkpCisgICAgaWYgKCEodmFsdWVQYXJ0KCkt
PnJlbmRlcmVyKCkgJiYgdmFsdWVQYXJ0KCktPnJlbmRlcmVyKCktPnN0eWxlKCktPmhhc0FwcGVh
cmFuY2UoKSkpCiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIHJldHVybiBmYWxzZTsKIH0KQEAg
LTE0NSw2ICsxMzcsMTEgQEAgSFRNTFByb2dyZXNzRWxlbWVudCogUmVuZGVyUHJvZ3Jlc3M6OnBy
b2dyZXNzRWxlbWVudCgpIGNvbnN0CiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PEhUTUxQcm9ncmVz
c0VsZW1lbnQqPihub2RlKCkpOwogfSAgICAKIAorU2hhZG93QmxvY2tFbGVtZW50KiBSZW5kZXJQ
cm9ncmVzczo6dmFsdWVQYXJ0KCkgY29uc3QKK3sKKyAgICByZXR1cm4gcHJvZ3Jlc3NFbGVtZW50
KCktPnZhbHVlUGFydCgpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclByb2dyZXNzLmggYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUHJvZ3Jlc3MuaAppbmRleCA5ZWQ1NzQxOWIw
MmI5NzhjNTRkYzdmNGI4YzM3YTYzMTM5ZjI0N2Y2Li5kNWQwMzZjNWU0OTBjY2ZlZGNhZjhlYmVj
MDNlMDcwNTMwYzgwNzBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyUHJvZ3Jlc3MuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUHJvZ3Jl
c3MuaApAQCAtNTcsMTMgKzU3LDE0IEBAIHByaXZhdGU6CiAgICAgdm9pZCBhbmltYXRpb25UaW1l
ckZpcmVkKFRpbWVyPFJlbmRlclByb2dyZXNzPiopOwogICAgIHZvaWQgdXBkYXRlQW5pbWF0aW9u
U3RhdGUoKTsKIAorICAgIFNoYWRvd0Jsb2NrRWxlbWVudCogdmFsdWVQYXJ0KCkgY29uc3Q7CisK
ICAgICBkb3VibGUgbV9wb3NpdGlvbjsKICAgICBkb3VibGUgbV9hbmltYXRpb25TdGFydFRpbWU7
CiAgICAgZG91YmxlIG1fYW5pbWF0aW9uUmVwZWF0SW50ZXJ2YWw7CiAgICAgZG91YmxlIG1fYW5p
bWF0aW9uRHVyYXRpb247CiAgICAgYm9vbCBtX2FuaW1hdGluZzsKICAgICBUaW1lcjxSZW5kZXJQ
cm9ncmVzcz4gbV9hbmltYXRpb25UaW1lcjsKLSAgICBSZWZQdHI8U2hhZG93QmxvY2tFbGVtZW50
PiBtX3ZhbHVlUGFydDsKIH07CiAKIGlubGluZSBSZW5kZXJQcm9ncmVzcyogdG9SZW5kZXJQcm9n
cmVzcyhSZW5kZXJPYmplY3QqIG9iamVjdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZUNvbnN0YW50cy5oIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlQ29uc3RhbnRzLmgKaW5kZXggNjMzZDQ4MjRhOWVkMWIx
NWVlMjQzOWMyYjBkOTlmMzkxNGIwZGRlZi4uYzk1YmY1YTNjZDZlMTIyMjRlMGI0NTZiMTY4NzQ3
MmM5NzdhMzRlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1Jl
bmRlclN0eWxlQ29uc3RhbnRzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxl
L1JlbmRlclN0eWxlQ29uc3RhbnRzLmgKQEAgLTcxLDcgKzcxLDcgQEAgZW51bSBQc2V1ZG9JZCB7
CiAgICAgU0VBUkNIX0NBTkNFTF9CVVRUT04sIFNFQVJDSF9ERUNPUkFUSU9OLCBTRUFSQ0hfUkVT
VUxUU19ERUNPUkFUSU9OLCBTRUFSQ0hfUkVTVUxUU19CVVRUT04sIE1FRElBX0NPTlRST0xTX1BB
TkVMLAogICAgIE1FRElBX0NPTlRST0xTX1RJTUVMSU5FX0NPTlRBSU5FUiwgTUVESUFfQ09OVFJP
TFNfVk9MVU1FX1NMSURFUl9DT05UQUlORVIsIE1FRElBX0NPTlRST0xTX0NVUlJFTlRfVElNRV9E
SVNQTEFZLCBNRURJQV9DT05UUk9MU19USU1FX1JFTUFJTklOR19ESVNQTEFZLCAKICAgICBNRURJ
QV9DT05UUk9MU19TVEFUVVNfRElTUExBWSwgU0NST0xMQkFSX1RIVU1CLCBTQ1JPTExCQVJfQlVU
VE9OLCBTQ1JPTExCQVJfVFJBQ0ssIFNDUk9MTEJBUl9UUkFDS19QSUVDRSwgU0NST0xMQkFSX0NP
Uk5FUiwgUkVTSVpFUiwKLSAgICBJTlBVVF9MSVNUX0JVVFRPTiwgSU5QVVRfU1BFRUNIX0JVVFRP
TiwgSU5ORVJfU1BJTl9CVVRUT04sIE9VVEVSX1NQSU5fQlVUVE9OLCBWSVNJVEVEX0xJTkssIFBS
T0dSRVNTX0JBUl9WQUxVRSwKKyAgICBJTlBVVF9MSVNUX0JVVFRPTiwgSU5QVVRfU1BFRUNIX0JV
VFRPTiwgSU5ORVJfU1BJTl9CVVRUT04sIE9VVEVSX1NQSU5fQlVUVE9OLCBWSVNJVEVEX0xJTkss
CiAgICAgTUVURVJfSE9SSVpPTlRBTF9CQVIsIE1FVEVSX0hPUklaT05UQUxfT1BUSU1VTSwgTUVU
RVJfSE9SSVpPTlRBTF9TVUJPUFRJTUFMLCBNRVRFUl9IT1JJWk9OVEFMX0VWRU5fTEVTU19HT09E
LAogICAgIE1FVEVSX1ZFUlRJQ0FMX0JBUiwgTUVURVJfVkVSVElDQUxfT1BUSU1VTSwgTUVURVJf
VkVSVElDQUxfU1VCT1BUSU1BTCwgTUVURVJfVkVSVElDQUxfRVZFTl9MRVNTX0dPT0QsIAogICAg
IEFGVEVSX0xBU1RfSU5URVJOQUxfUFNFVURPSUQsCg==
</data>
<flag name="review"
          id="72127"
          type_id="1"
          status="+"
          setter="dglazkov"
    />
          </attachment>
      

    </bug>

</bugzilla>