<?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>65092</bug_id>
          
          <creation_ts>2011-07-24 20:46:28 -0700</creation_ts>
          <short_desc>Don&apos;t set m_fontDirty when setting zoom unless zoom has actually changed</short_desc>
          <delta_ts>2011-08-01 18:42:28 -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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Luke Macpherson">macpherson</reporter>
          <assigned_to name="Luke Macpherson">macpherson</assigned_to>
          <cc>darin</cc>
    
    <cc>eric</cc>
    
    <cc>macpherson</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>tkent</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>441546</commentid>
    <comment_count>0</comment_count>
    <who name="Luke Macpherson">macpherson</who>
    <bug_when>2011-07-24 20:46:28 -0700</bug_when>
    <thetext>Don&apos;t set m_fontDirty when setting zoom unless zoom has actually changed</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>441552</commentid>
    <comment_count>1</comment_count>
      <attachid>101847</attachid>
    <who name="Luke Macpherson">macpherson</who>
    <bug_when>2011-07-24 20:59:32 -0700</bug_when>
    <thetext>Created attachment 101847
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>441981</commentid>
    <comment_count>2</comment_count>
    <who name="Luke Macpherson">macpherson</who>
    <bug_when>2011-07-25 16:37:09 -0700</bug_when>
    <thetext>Ping!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>443968</commentid>
    <comment_count>3</comment_count>
      <attachid>101847</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2011-07-29 09:24:22 -0700</bug_when>
    <thetext>Comment on attachment 101847
Patch

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

&gt; Source/WebCore/ChangeLog:8
&gt; +        Don&apos;t set m_fontDirty when setting zoom unless zoom has actually changed
&gt; +        https://bugs.webkit.org/show_bug.cgi?id=65092
&gt; +
&gt; +        Reviewed by NOBODY (OOPS!).
&gt; +
&gt; +        No new tests / cleanup.

Why?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>444478</commentid>
    <comment_count>4</comment_count>
      <attachid>102470</attachid>
    <who name="Luke Macpherson">macpherson</who>
    <bug_when>2011-07-31 17:58:48 -0700</bug_when>
    <thetext>Created attachment 102470
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>444498</commentid>
    <comment_count>5</comment_count>
      <attachid>102470</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-07-31 20:28:48 -0700</bug_when>
    <thetext>Comment on attachment 102470
Patch

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

&gt; Source/WebCore/rendering/style/RenderStyle.h:948
&gt; +    template&lt;typename T&gt; inline T setZoom(float f)

Even though we do need a version of the function without the bool return value in one place, the template is awkward overkill. We can simply have setZoomWithoutReturnValue, which can turn around and call setZoom but ignore its return value. And use it in AnimationBase.cpp.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>444526</commentid>
    <comment_count>6</comment_count>
      <attachid>102479</attachid>
    <who name="Luke Macpherson">macpherson</who>
    <bug_when>2011-07-31 22:27:36 -0700</bug_when>
    <thetext>Created attachment 102479
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>444527</commentid>
    <comment_count>7</comment_count>
      <attachid>102470</attachid>
    <who name="Luke Macpherson">macpherson</who>
    <bug_when>2011-07-31 22:28:49 -0700</bug_when>
    <thetext>Comment on attachment 102470
Patch

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

&gt;&gt; Source/WebCore/rendering/style/RenderStyle.h:948
&gt;&gt; +    template&lt;typename T&gt; inline T setZoom(float f)
&gt; 
&gt; Even though we do need a version of the function without the bool return value in one place, the template is awkward overkill. We can simply have setZoomWithoutReturnValue, which can turn around and call setZoom but ignore its return value. And use it in AnimationBase.cpp.

done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>444722</commentid>
    <comment_count>8</comment_count>
      <attachid>102479</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-08-01 09:34:57 -0700</bug_when>
    <thetext>Comment on attachment 102479
Patch

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

&gt; Source/WebCore/rendering/style/RenderStyle.h:963
&gt; +    bool setZoom(float f)
&gt; +    {
&gt; +        if (compareEqual(visual-&gt;m_zoom, f))
&gt; +            return false;
&gt; +        visual.access()-&gt;m_zoom = f;
&gt; +        setEffectiveZoom(effectiveZoom() * zoom());
&gt; +        return true;
&gt; +    }
&gt; +    void setZoomWithoutReturnValue(float f) { setZoom(f); }
&gt; +    bool setEffectiveZoom(float f)
&gt; +    {
&gt; +        if (compareEqual(rareInheritedData-&gt;m_effectiveZoom, f))
&gt; +            return false;
&gt; +        rareInheritedData.access()-&gt;m_effectiveZoom = f;
&gt; +        return true;
&gt; +    }

Now that these function bodies are long, it might be worthwhile to put them outside the class definition, so you can read class definition more easily.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>445011</commentid>
    <comment_count>9</comment_count>
    <who name="Luke Macpherson">macpherson</who>
    <bug_when>2011-08-01 17:16:10 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; (From update of attachment 102479 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=102479&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/rendering/style/RenderStyle.h:963
&gt; &gt; +    bool setZoom(float f)
&gt; &gt; +    {
&gt; &gt; +        if (compareEqual(visual-&gt;m_zoom, f))
&gt; &gt; +            return false;
&gt; &gt; +        visual.access()-&gt;m_zoom = f;
&gt; &gt; +        setEffectiveZoom(effectiveZoom() * zoom());
&gt; &gt; +        return true;
&gt; &gt; +    }
&gt; &gt; +    void setZoomWithoutReturnValue(float f) { setZoom(f); }
&gt; &gt; +    bool setEffectiveZoom(float f)
&gt; &gt; +    {
&gt; &gt; +        if (compareEqual(rareInheritedData-&gt;m_effectiveZoom, f))
&gt; &gt; +            return false;
&gt; &gt; +        rareInheritedData.access()-&gt;m_effectiveZoom = f;
&gt; &gt; +        return true;
&gt; &gt; +    }
&gt; 
&gt; Now that these function bodies are long, it might be worthwhile to put them outside the class definition, so you can read class definition more easily.

I see your point. The counter argument is to keep it here to preserve the existing inlining behavior, since I perceive that the intent in RenderStyle is that all the setters and getters are inlined.

I might cq+ this as is, but if you disagree with that reasoning then let me know and I&apos;ll follow up with a patch to move it into the .cpp.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>445020</commentid>
    <comment_count>10</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-08-01 17:24:18 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; (In reply to comment #8)
&gt; &gt; Now that these function bodies are long, it might be worthwhile to put them outside the class definition, so you can read class definition more easily.
&gt; 
&gt; I see your point. The counter argument is to keep it here to preserve the existing inlining behavior

You should not have to sacrifice inlining to achieve this. You can put the function definitions in the header outside the class definition and use the inline keyword.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>445028</commentid>
    <comment_count>11</comment_count>
    <who name="Luke Macpherson">macpherson</who>
    <bug_when>2011-08-01 17:32:53 -0700</bug_when>
    <thetext>Ah, ok, I misunderstood what you were asking for. Will do.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>445063</commentid>
    <comment_count>12</comment_count>
      <attachid>102607</attachid>
    <who name="Luke Macpherson">macpherson</who>
    <bug_when>2011-08-01 18:16:41 -0700</bug_when>
    <thetext>Created attachment 102607
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>445072</commentid>
    <comment_count>13</comment_count>
      <attachid>102607</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-08-01 18:42:23 -0700</bug_when>
    <thetext>Comment on attachment 102607
Patch for landing

Clearing flags on attachment: 102607

Committed r92164: &lt;http://trac.webkit.org/changeset/92164&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>445073</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-08-01 18:42:28 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>101847</attachid>
            <date>2011-07-24 20:59:32 -0700</date>
            <delta_ts>2011-07-31 17:58:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-65092-20110725135930.patch</filename>
            <type>text/plain</type>
            <size>7771</size>
            <attacher name="Luke Macpherson">macpherson</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDkxNjU0KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjQgQEAKKzIwMTEtMDctMjQgIEx1a2UgTWFj
cGhlcnNvbiAgIDxtYWNwaGVyc29uQGNocm9taXVtLm9yZz4KKworICAgICAgICBEb24ndCBzZXQg
bV9mb250RGlydHkgd2hlbiBzZXR0aW5nIHpvb20gdW5sZXNzIHpvb20gaGFzIGFjdHVhbGx5IGNo
YW5nZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY1
MDkyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8g
bmV3IHRlc3RzIC8gY2xlYW51cC4KKworICAgICAgICAqIGNzcy9DU1NTdHlsZVNlbGVjdG9yLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1N0eWxlU2VsZWN0b3I6OnN0eWxlRm9yRG9jdW1lbnQp
OgorICAgICAgICAoV2ViQ29yZTo6Q1NTU3R5bGVTZWxlY3Rvcjo6YXBwbHlQcm9wZXJ0eSk6Cisg
ICAgICAgICogY3NzL0NTU1N0eWxlU2VsZWN0b3IuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1N0
eWxlU2VsZWN0b3I6OnNldFpvb20pOgorICAgICAgICAoV2ViQ29yZTo6Q1NTU3R5bGVTZWxlY3Rv
cjo6c2V0RWZmZWN0aXZlWm9vbSk6CisgICAgICAgICogcGFnZS9hbmltYXRpb24vQW5pbWF0aW9u
QmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBbmltYXRpb25CYXNlOjplbnN1cmVQcm9wZXJ0
eU1hcCk6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmg6CisgICAgICAg
IChXZWJDb3JlOjpJbmhlcml0ZWRGbGFnczo6c2V0Wm9vbSk6CisgICAgICAgIChXZWJDb3JlOjpJ
bmhlcml0ZWRGbGFnczo6c2V0RWZmZWN0aXZlWm9vbSk6CisKIDIwMTEtMDctMjQgIEtlbnQgVGFt
dXJhICA8dGtlbnRAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFZhbGlkYXRpb24gbWVzc2FnZSBi
dWJibGUgcG9zaXRpb24gaXMgaW5jb3JyZWN0IGlmIHRoZSBjb250YWluaW5nIGJsb2NrIGhhcyBw
YWRkaW5ncy4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHAJKHJl
dmlzaW9uIDkxNjUwKQorKysgU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0xMjQ3LDcgKzEyNDcsNyBAQCBQYXNzUmVmUHRyPFJlbmRlclN0
eWxlPiBDU1NTdHlsZVNlbGVjdG9yCiAgICAgUmVmUHRyPFJlbmRlclN0eWxlPiBkb2N1bWVudFN0
eWxlID0gUmVuZGVyU3R5bGU6OmNyZWF0ZSgpOwogICAgIGRvY3VtZW50U3R5bGUtPnNldERpc3Bs
YXkoQkxPQ0spOwogICAgIGRvY3VtZW50U3R5bGUtPnNldFJUTE9yZGVyaW5nKGRvY3VtZW50LT52
aXN1YWxseU9yZGVyZWQoKSA/IFZpc3VhbE9yZGVyIDogTG9naWNhbE9yZGVyKTsKLSAgICBkb2N1
bWVudFN0eWxlLT5zZXRab29tKGZyYW1lID8gZnJhbWUtPnBhZ2Vab29tRmFjdG9yKCkgOiAxKTsK
KyAgICBkb2N1bWVudFN0eWxlLT5zZXRab29tPHZvaWQ+KGZyYW1lID8gZnJhbWUtPnBhZ2Vab29t
RmFjdG9yKCkgOiAxKTsKICAgICBkb2N1bWVudFN0eWxlLT5zZXRQYWdlU2NhbGVUcmFuc2Zvcm0o
ZnJhbWUgPyBmcmFtZS0+cGFnZVNjYWxlRmFjdG9yKCkgOiAxKTsKICAgICBkb2N1bWVudFN0eWxl
LT5zZXRVc2VyTW9kaWZ5KGRvY3VtZW50LT5pbkRlc2lnbk1vZGUoKSA/IFJFQURfV1JJVEUgOiBS
RUFEX09OTFkpOwogCkBAIC00MjkyLDMxICs0MjkyLDI2IEBAIHZvaWQgQ1NTU3R5bGVTZWxlY3Rv
cjo6YXBwbHlQcm9wZXJ0eShpbnQKICAgICB7CiAgICAgICAgIC8vIFJlc2V0IHRoZSB6b29tIGlu
IGVmZmVjdCBiZWZvcmUgd2UgZG8gYW55dGhpbmcuICBUaGlzIGFsbG93cyB0aGUgc2V0Wm9vbSBt
ZXRob2QgdG8gYWNjdXJhdGVseSBjb21wdXRlIGEgbmV3CiAgICAgICAgIC8vIHpvb20gaW4gZWZm
ZWN0LgotICAgICAgICBtX3N0eWxlLT5zZXRFZmZlY3RpdmVab29tKG1fcGFyZW50U3R5bGUgPyBt
X3BhcmVudFN0eWxlLT5lZmZlY3RpdmVab29tKCkgOiBSZW5kZXJTdHlsZTo6aW5pdGlhbFpvb20o
KSk7Ci0gICAgICAgIAotICAgICAgICAvLyBOb3cgd2UgY2FuIGhhbmRsZSBpbmhlcml0IGFuZCBp
bml0aWFsLgotICAgICAgICBIQU5ETEVfSU5IRVJJVF9BTkRfSU5JVElBTCh6b29tLCBab29tKQot
ICAgICAgICAKLSAgICAgICAgLy8gSGFuZGxlIG5vcm1hbC9yZXNldCwgbnVtYmVycyBhbmQgcGVy
Y2VudGFnZXMuCi0gICAgICAgIGludCB0eXBlID0gcHJpbWl0aXZlVmFsdWUtPnByaW1pdGl2ZVR5
cGUoKTsKLSAgICAgICAgaWYgKHByaW1pdGl2ZVZhbHVlLT5nZXRJZGVudCgpID09IENTU1ZhbHVl
Tm9ybWFsKQotICAgICAgICAgICAgbV9zdHlsZS0+c2V0Wm9vbShSZW5kZXJTdHlsZTo6aW5pdGlh
bFpvb20oKSk7CisgICAgICAgIHNldEVmZmVjdGl2ZVpvb20obV9wYXJlbnRTdHlsZSA/IG1fcGFy
ZW50U3R5bGUtPmVmZmVjdGl2ZVpvb20oKSA6IFJlbmRlclN0eWxlOjppbml0aWFsWm9vbSgpKTsK
KworICAgICAgICBpZiAoaXNJbmhlcml0KQorICAgICAgICAgICAgc2V0Wm9vbShtX3BhcmVudFN0
eWxlLT56b29tKCkpOworICAgICAgICBlbHNlIGlmIChpc0luaXRpYWwgfHwgcHJpbWl0aXZlVmFs
dWUtPmdldElkZW50KCkgPT0gQ1NTVmFsdWVOb3JtYWwpCisgICAgICAgICAgICBzZXRab29tKFJl
bmRlclN0eWxlOjppbml0aWFsWm9vbSgpKTsKICAgICAgICAgZWxzZSBpZiAocHJpbWl0aXZlVmFs
dWUtPmdldElkZW50KCkgPT0gQ1NTVmFsdWVSZXNldCkgewotICAgICAgICAgICAgbV9zdHlsZS0+
c2V0RWZmZWN0aXZlWm9vbShSZW5kZXJTdHlsZTo6aW5pdGlhbFpvb20oKSk7Ci0gICAgICAgICAg
ICBtX3N0eWxlLT5zZXRab29tKFJlbmRlclN0eWxlOjppbml0aWFsWm9vbSgpKTsKKyAgICAgICAg
ICAgIHNldEVmZmVjdGl2ZVpvb20oUmVuZGVyU3R5bGU6OmluaXRpYWxab29tKCkpOworICAgICAg
ICAgICAgc2V0Wm9vbShSZW5kZXJTdHlsZTo6aW5pdGlhbFpvb20oKSk7CiAgICAgICAgIH0gZWxz
ZSBpZiAocHJpbWl0aXZlVmFsdWUtPmdldElkZW50KCkgPT0gQ1NTVmFsdWVEb2N1bWVudCkgewog
ICAgICAgICAgICAgZmxvYXQgZG9jWm9vbSA9IG1fY2hlY2tlci5tX2RvY3VtZW50LT5yZW5kZXJl
cigpLT5zdHlsZSgpLT56b29tKCk7Ci0gICAgICAgICAgICBtX3N0eWxlLT5zZXRFZmZlY3RpdmVa
b29tKGRvY1pvb20pOwotICAgICAgICAgICAgbV9zdHlsZS0+c2V0Wm9vbShkb2Nab29tKTsKLSAg
ICAgICAgfSBlbHNlIGlmICh0eXBlID09IENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfUEVSQ0VOVEFH
RSkgeworICAgICAgICAgICAgc2V0RWZmZWN0aXZlWm9vbShkb2Nab29tKTsKKyAgICAgICAgICAg
IHNldFpvb20oZG9jWm9vbSk7CisgICAgICAgIH0gZWxzZSBpZiAocHJpbWl0aXZlVmFsdWUtPnBy
aW1pdGl2ZVR5cGUoKSA9PSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX1BFUkNFTlRBR0UpIHsKICAg
ICAgICAgICAgIGlmIChwcmltaXRpdmVWYWx1ZS0+Z2V0RmxvYXRWYWx1ZSgpKQotICAgICAgICAg
ICAgICAgIG1fc3R5bGUtPnNldFpvb20ocHJpbWl0aXZlVmFsdWUtPmdldEZsb2F0VmFsdWUoKSAv
IDEwMC4wZik7Ci0gICAgICAgIH0gZWxzZSBpZiAodHlwZSA9PSBDU1NQcmltaXRpdmVWYWx1ZTo6
Q1NTX05VTUJFUikgeworICAgICAgICAgICAgICAgIHNldFpvb20ocHJpbWl0aXZlVmFsdWUtPmdl
dEZsb2F0VmFsdWUoKSAvIDEwMC4wZik7CisgICAgICAgIH0gZWxzZSBpZiAocHJpbWl0aXZlVmFs
dWUtPnByaW1pdGl2ZVR5cGUoKSA9PSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX05VTUJFUikgewog
ICAgICAgICAgICAgaWYgKHByaW1pdGl2ZVZhbHVlLT5nZXRGbG9hdFZhbHVlKCkpCi0gICAgICAg
ICAgICAgICAgbV9zdHlsZS0+c2V0Wm9vbShwcmltaXRpdmVWYWx1ZS0+Z2V0RmxvYXRWYWx1ZSgp
KTsKKyAgICAgICAgICAgICAgICBzZXRab29tKHByaW1pdGl2ZVZhbHVlLT5nZXRGbG9hdFZhbHVl
KCkpOwogICAgICAgICB9Ci0gICAgICAgIAotICAgICAgICBtX2ZvbnREaXJ0eSA9IHRydWU7CiAg
ICAgICAgIHJldHVybjsKICAgICB9CiAvLyBzaG9ydGhhbmQgcHJvcGVydGllcwpJbmRleDogU291
cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5oCShyZXZpc2lvbiA5MTY1MCkKKysrIFNvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmgJKHdvcmtpbmcgY29weSkKQEAgLTExNiw2
ICsxMTYsOCBAQCBwdWJsaWM6CiAgICAgICAgIEZvbnREZXNjcmlwdGlvbiBmb250RGVzY3JpcHRp
b24oKSB7IHJldHVybiBzdHlsZSgpLT5mb250RGVzY3JpcHRpb24oKTsgfQogICAgICAgICBGb250
RGVzY3JpcHRpb24gcGFyZW50Rm9udERlc2NyaXB0aW9uKCkge3JldHVybiBwYXJlbnRTdHlsZSgp
LT5mb250RGVzY3JpcHRpb24oKTsgfQogICAgICAgICB2b2lkIHNldEZvbnREZXNjcmlwdGlvbihG
b250RGVzY3JpcHRpb24gZm9udERlc2NyaXB0aW9uKSB7IG1fZm9udERpcnR5IHw9IHN0eWxlKCkt
PnNldEZvbnREZXNjcmlwdGlvbihmb250RGVzY3JpcHRpb24pOyB9CisgICAgICAgIHZvaWQgc2V0
Wm9vbShmbG9hdCBmKSB7IG1fZm9udERpcnR5IHw9IHN0eWxlKCktPnNldFpvb208Ym9vbD4oZik7
IH0KKyAgICAgICAgdm9pZCBzZXRFZmZlY3RpdmVab29tKGZsb2F0IGYpIHsgbV9mb250RGlydHkg
fD0gc3R5bGUoKS0+c2V0RWZmZWN0aXZlWm9vbShmKTsgfQogCiAgICAgcHJpdmF0ZToKICAgICAg
ICAgdm9pZCBpbml0Rm9yU3R5bGVSZXNvbHZlKEVsZW1lbnQqLCBSZW5kZXJTdHlsZSogcGFyZW50
U3R5bGUgPSAwLCBQc2V1ZG9JZCA9IE5PUFNFVURPKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Bh
Z2UvYW5pbWF0aW9uL0FuaW1hdGlvbkJhc2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3BhZ2UvYW5pbWF0aW9uL0FuaW1hdGlvbkJhc2UuY3BwCShyZXZpc2lvbiA5MTY1MCkKKysr
IFNvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0FuaW1hdGlvbkJhc2UuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC03NDEsNyArNzQxLDcgQEAgdm9pZCBBbmltYXRpb25CYXNlOjplbnN1cmVQcm9w
ZXJ0eU1hcCgpCiAgICAgICAgIGdQcm9wZXJ0eVdyYXBwZXJzLT5hcHBlbmQobmV3IFByb3BlcnR5
V3JhcHBlcjxMZW5ndGhTaXplPihDU1NQcm9wZXJ0eUJvcmRlckJvdHRvbUxlZnRSYWRpdXMsICZS
ZW5kZXJTdHlsZTo6Ym9yZGVyQm90dG9tTGVmdFJhZGl1cywgJlJlbmRlclN0eWxlOjpzZXRCb3Jk
ZXJCb3R0b21MZWZ0UmFkaXVzKSk7CiAgICAgICAgIGdQcm9wZXJ0eVdyYXBwZXJzLT5hcHBlbmQo
bmV3IFByb3BlcnR5V3JhcHBlcjxMZW5ndGhTaXplPihDU1NQcm9wZXJ0eUJvcmRlckJvdHRvbVJp
Z2h0UmFkaXVzLCAmUmVuZGVyU3R5bGU6OmJvcmRlckJvdHRvbVJpZ2h0UmFkaXVzLCAmUmVuZGVy
U3R5bGU6OnNldEJvcmRlckJvdHRvbVJpZ2h0UmFkaXVzKSk7CiAgICAgICAgIGdQcm9wZXJ0eVdy
YXBwZXJzLT5hcHBlbmQobmV3IFByb3BlcnR5V3JhcHBlcjxFVmlzaWJpbGl0eT4oQ1NTUHJvcGVy
dHlWaXNpYmlsaXR5LCAmUmVuZGVyU3R5bGU6OnZpc2liaWxpdHksICZSZW5kZXJTdHlsZTo6c2V0
VmlzaWJpbGl0eSkpOwotICAgICAgICBnUHJvcGVydHlXcmFwcGVycy0+YXBwZW5kKG5ldyBQcm9w
ZXJ0eVdyYXBwZXI8ZmxvYXQ+KENTU1Byb3BlcnR5Wm9vbSwgJlJlbmRlclN0eWxlOjp6b29tLCAm
UmVuZGVyU3R5bGU6OnNldFpvb20pKTsKKyAgICAgICAgZ1Byb3BlcnR5V3JhcHBlcnMtPmFwcGVu
ZChuZXcgUHJvcGVydHlXcmFwcGVyPGZsb2F0PihDU1NQcm9wZXJ0eVpvb20sICZSZW5kZXJTdHls
ZTo6em9vbSwgJlJlbmRlclN0eWxlOjpzZXRab29tPHZvaWQ+KSk7CiAKICAgICAgICAgZ1Byb3Bl
cnR5V3JhcHBlcnMtPmFwcGVuZChuZXcgUHJvcGVydHlXcmFwcGVyPExlbmd0aEJveD4oQ1NTUHJv
cGVydHlDbGlwLCAmUmVuZGVyU3R5bGU6OmNsaXAsICZSZW5kZXJTdHlsZTo6c2V0Q2xpcCkpOwog
ICAgICAgICAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHls
ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJT
dHlsZS5oCShyZXZpc2lvbiA5MTY1MCkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHls
ZS9SZW5kZXJTdHlsZS5oCSh3b3JraW5nIGNvcHkpCkBAIC05NDUsOCArOTQ1LDIxIEBAIHB1Ymxp
YzoKICAgICB2b2lkIHNldFRleHREZWNvcmF0aW9uKGludCB2KSB7IFNFVF9WQVIodmlzdWFsLCB0
ZXh0RGVjb3JhdGlvbiwgdik7IH0KICAgICB2b2lkIHNldERpcmVjdGlvbihUZXh0RGlyZWN0aW9u
IHYpIHsgaW5oZXJpdGVkX2ZsYWdzLl9kaXJlY3Rpb24gPSB2OyB9CiAgICAgdm9pZCBzZXRMaW5l
SGVpZ2h0KExlbmd0aCB2KSB7IFNFVF9WQVIoaW5oZXJpdGVkLCBsaW5lX2hlaWdodCwgdikgfQot
ICAgIHZvaWQgc2V0Wm9vbShmbG9hdCBmKSB7IFNFVF9WQVIodmlzdWFsLCBtX3pvb20sIGYpOyBz
ZXRFZmZlY3RpdmVab29tKGVmZmVjdGl2ZVpvb20oKSAqIHpvb20oKSk7IH0KLSAgICB2b2lkIHNl
dEVmZmVjdGl2ZVpvb20oZmxvYXQgZikgeyBTRVRfVkFSKHJhcmVJbmhlcml0ZWREYXRhLCBtX2Vm
ZmVjdGl2ZVpvb20sIGYpIH0KKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBpbmxpbmUgVCBzZXRa
b29tKGZsb2F0IGYpCisgICAgeworICAgICAgICBpZiAoY29tcGFyZUVxdWFsKHZpc3VhbC0+bV96
b29tLCBmKSkKKyAgICAgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxUPihmYWxzZSk7CisgICAg
ICAgIHZpc3VhbC5hY2Nlc3MoKS0+bV96b29tID0gZjsKKyAgICAgICAgc2V0RWZmZWN0aXZlWm9v
bShlZmZlY3RpdmVab29tKCkgKiB6b29tKCkpOworICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8
VD4odHJ1ZSk7CisgICAgfQorICAgIGJvb2wgc2V0RWZmZWN0aXZlWm9vbShmbG9hdCBmKQorICAg
IHsKKyAgICAgICAgaWYgKGNvbXBhcmVFcXVhbChyYXJlSW5oZXJpdGVkRGF0YS0+bV9lZmZlY3Rp
dmVab29tLCBmKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgcmFyZUluaGVy
aXRlZERhdGEuYWNjZXNzKCktPm1fZWZmZWN0aXZlWm9vbSA9IGY7CisgICAgICAgIHJldHVybiB0
cnVlOworICAgIH0KICAgICB2b2lkIHNldEltYWdlUmVuZGVyaW5nKEVJbWFnZVJlbmRlcmluZyB2
KSB7IFNFVF9WQVIocmFyZUluaGVyaXRlZERhdGEsIG1faW1hZ2VSZW5kZXJpbmcsIHYpIH0KIAog
ICAgIHZvaWQgc2V0V2hpdGVTcGFjZShFV2hpdGVTcGFjZSB2KSB7IGluaGVyaXRlZF9mbGFncy5f
d2hpdGVfc3BhY2UgPSB2OyB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>102470</attachid>
            <date>2011-07-31 17:58:48 -0700</date>
            <delta_ts>2011-07-31 22:28:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-65092-20110801105845.patch</filename>
            <type>text/plain</type>
            <size>7886</size>
            <attacher name="Luke Macpherson">macpherson</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDkyMDkyKQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjUgQEAKKzIwMTEtMDctMzEgIEx1a2UgTWFj
cGhlcnNvbiAgIDxtYWNwaGVyc29uQGNocm9taXVtLm9yZz4KKworICAgICAgICBEb24ndCBzZXQg
bV9mb250RGlydHkgd2hlbiBzZXR0aW5nIHpvb20gdW5sZXNzIHpvb20gaGFzIGFjdHVhbGx5IGNo
YW5nZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY1
MDkyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8g
bmV3IHRlc3RzIGFzIG5vIGZ1bmN0aW9uYWxpdHkgY2hhbmdlZCAtIHRoaXMgaXMgYW4gb3B0aW1p
emF0aW9uIHRoYXQKKyAgICAgICAgc2hvdWxkIGJlIGxvZ2ljYWxseSBlcXVpdmFsZW50IHRvIHRo
ZSBjdXJyZW50IGNvZGUuCisKKyAgICAgICAgKiBjc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpDU1NTdHlsZVNlbGVjdG9yOjpzdHlsZUZvckRvY3VtZW50KToKKyAg
ICAgICAgKFdlYkNvcmU6OkNTU1N0eWxlU2VsZWN0b3I6OmFwcGx5UHJvcGVydHkpOgorICAgICAg
ICAqIGNzcy9DU1NTdHlsZVNlbGVjdG9yLmg6CisgICAgICAgIChXZWJDb3JlOjpDU1NTdHlsZVNl
bGVjdG9yOjpzZXRab29tKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1N0eWxlU2VsZWN0b3I6OnNl
dEVmZmVjdGl2ZVpvb20pOgorICAgICAgICAqIHBhZ2UvYW5pbWF0aW9uL0FuaW1hdGlvbkJhc2Uu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6QW5pbWF0aW9uQmFzZTo6ZW5zdXJlUHJvcGVydHlNYXAp
OgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oOgorICAgICAgICAoV2Vi
Q29yZTo6SW5oZXJpdGVkRmxhZ3M6OnNldFpvb20pOgorICAgICAgICAoV2ViQ29yZTo6SW5oZXJp
dGVkRmxhZ3M6OnNldEVmZmVjdGl2ZVpvb20pOgorCiAyMDExLTA3LTMxICBTYW0gV2VpbmlnICA8
c2FtQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUkVHUkVTU0lPTjogZ2V0Qm91bmRpbmdDbGllbnRS
ZWN0KCkgbWV0aG9kIG9mIFJhbmdlIGluY29ycmVjdGx5IHJldHVybnMgbnVsbCBmb3IgY29sbGFw
c2VkIFJhbmdlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwCShy
ZXZpc2lvbiA5MjA5MikKKysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMTI1Niw3ICsxMjU2LDcgQEAgUGFzc1JlZlB0cjxSZW5kZXJT
dHlsZT4gQ1NTU3R5bGVTZWxlY3RvcgogICAgIFJlZlB0cjxSZW5kZXJTdHlsZT4gZG9jdW1lbnRT
dHlsZSA9IFJlbmRlclN0eWxlOjpjcmVhdGUoKTsKICAgICBkb2N1bWVudFN0eWxlLT5zZXREaXNw
bGF5KEJMT0NLKTsKICAgICBkb2N1bWVudFN0eWxlLT5zZXRSVExPcmRlcmluZyhkb2N1bWVudC0+
dmlzdWFsbHlPcmRlcmVkKCkgPyBWaXN1YWxPcmRlciA6IExvZ2ljYWxPcmRlcik7Ci0gICAgZG9j
dW1lbnRTdHlsZS0+c2V0Wm9vbShmcmFtZSA/IGZyYW1lLT5wYWdlWm9vbUZhY3RvcigpIDogMSk7
CisgICAgZG9jdW1lbnRTdHlsZS0+c2V0Wm9vbTx2b2lkPihmcmFtZSA/IGZyYW1lLT5wYWdlWm9v
bUZhY3RvcigpIDogMSk7CiAgICAgZG9jdW1lbnRTdHlsZS0+c2V0UGFnZVNjYWxlVHJhbnNmb3Jt
KGZyYW1lID8gZnJhbWUtPnBhZ2VTY2FsZUZhY3RvcigpIDogMSk7CiAgICAgZG9jdW1lbnRTdHls
ZS0+c2V0VXNlck1vZGlmeShkb2N1bWVudC0+aW5EZXNpZ25Nb2RlKCkgPyBSRUFEX1dSSVRFIDog
UkVBRF9PTkxZKTsKIApAQCAtNDI4MSwzMSArNDI4MSwyNiBAQCB2b2lkIENTU1N0eWxlU2VsZWN0
b3I6OmFwcGx5UHJvcGVydHkoaW50CiAgICAgewogICAgICAgICAvLyBSZXNldCB0aGUgem9vbSBp
biBlZmZlY3QgYmVmb3JlIHdlIGRvIGFueXRoaW5nLiAgVGhpcyBhbGxvd3MgdGhlIHNldFpvb20g
bWV0aG9kIHRvIGFjY3VyYXRlbHkgY29tcHV0ZSBhIG5ldwogICAgICAgICAvLyB6b29tIGluIGVm
ZmVjdC4KLSAgICAgICAgbV9zdHlsZS0+c2V0RWZmZWN0aXZlWm9vbShtX3BhcmVudFN0eWxlID8g
bV9wYXJlbnRTdHlsZS0+ZWZmZWN0aXZlWm9vbSgpIDogUmVuZGVyU3R5bGU6OmluaXRpYWxab29t
KCkpOwotICAgICAgICAKLSAgICAgICAgLy8gTm93IHdlIGNhbiBoYW5kbGUgaW5oZXJpdCBhbmQg
aW5pdGlhbC4KLSAgICAgICAgSEFORExFX0lOSEVSSVRfQU5EX0lOSVRJQUwoem9vbSwgWm9vbSkK
LSAgICAgICAgCi0gICAgICAgIC8vIEhhbmRsZSBub3JtYWwvcmVzZXQsIG51bWJlcnMgYW5kIHBl
cmNlbnRhZ2VzLgotICAgICAgICBpbnQgdHlwZSA9IHByaW1pdGl2ZVZhbHVlLT5wcmltaXRpdmVU
eXBlKCk7Ci0gICAgICAgIGlmIChwcmltaXRpdmVWYWx1ZS0+Z2V0SWRlbnQoKSA9PSBDU1NWYWx1
ZU5vcm1hbCkKLSAgICAgICAgICAgIG1fc3R5bGUtPnNldFpvb20oUmVuZGVyU3R5bGU6OmluaXRp
YWxab29tKCkpOworICAgICAgICBzZXRFZmZlY3RpdmVab29tKG1fcGFyZW50U3R5bGUgPyBtX3Bh
cmVudFN0eWxlLT5lZmZlY3RpdmVab29tKCkgOiBSZW5kZXJTdHlsZTo6aW5pdGlhbFpvb20oKSk7
CisKKyAgICAgICAgaWYgKGlzSW5oZXJpdCkKKyAgICAgICAgICAgIHNldFpvb20obV9wYXJlbnRT
dHlsZS0+em9vbSgpKTsKKyAgICAgICAgZWxzZSBpZiAoaXNJbml0aWFsIHx8IHByaW1pdGl2ZVZh
bHVlLT5nZXRJZGVudCgpID09IENTU1ZhbHVlTm9ybWFsKQorICAgICAgICAgICAgc2V0Wm9vbShS
ZW5kZXJTdHlsZTo6aW5pdGlhbFpvb20oKSk7CiAgICAgICAgIGVsc2UgaWYgKHByaW1pdGl2ZVZh
bHVlLT5nZXRJZGVudCgpID09IENTU1ZhbHVlUmVzZXQpIHsKLSAgICAgICAgICAgIG1fc3R5bGUt
PnNldEVmZmVjdGl2ZVpvb20oUmVuZGVyU3R5bGU6OmluaXRpYWxab29tKCkpOwotICAgICAgICAg
ICAgbV9zdHlsZS0+c2V0Wm9vbShSZW5kZXJTdHlsZTo6aW5pdGlhbFpvb20oKSk7CisgICAgICAg
ICAgICBzZXRFZmZlY3RpdmVab29tKFJlbmRlclN0eWxlOjppbml0aWFsWm9vbSgpKTsKKyAgICAg
ICAgICAgIHNldFpvb20oUmVuZGVyU3R5bGU6OmluaXRpYWxab29tKCkpOwogICAgICAgICB9IGVs
c2UgaWYgKHByaW1pdGl2ZVZhbHVlLT5nZXRJZGVudCgpID09IENTU1ZhbHVlRG9jdW1lbnQpIHsK
ICAgICAgICAgICAgIGZsb2F0IGRvY1pvb20gPSBtX2NoZWNrZXIubV9kb2N1bWVudC0+cmVuZGVy
ZXIoKS0+c3R5bGUoKS0+em9vbSgpOwotICAgICAgICAgICAgbV9zdHlsZS0+c2V0RWZmZWN0aXZl
Wm9vbShkb2Nab29tKTsKLSAgICAgICAgICAgIG1fc3R5bGUtPnNldFpvb20oZG9jWm9vbSk7Ci0g
ICAgICAgIH0gZWxzZSBpZiAodHlwZSA9PSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX1BFUkNFTlRB
R0UpIHsKKyAgICAgICAgICAgIHNldEVmZmVjdGl2ZVpvb20oZG9jWm9vbSk7CisgICAgICAgICAg
ICBzZXRab29tKGRvY1pvb20pOworICAgICAgICB9IGVsc2UgaWYgKHByaW1pdGl2ZVZhbHVlLT5w
cmltaXRpdmVUeXBlKCkgPT0gQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19QRVJDRU5UQUdFKSB7CiAg
ICAgICAgICAgICBpZiAocHJpbWl0aXZlVmFsdWUtPmdldEZsb2F0VmFsdWUoKSkKLSAgICAgICAg
ICAgICAgICBtX3N0eWxlLT5zZXRab29tKHByaW1pdGl2ZVZhbHVlLT5nZXRGbG9hdFZhbHVlKCkg
LyAxMDAuMGYpOwotICAgICAgICB9IGVsc2UgaWYgKHR5cGUgPT0gQ1NTUHJpbWl0aXZlVmFsdWU6
OkNTU19OVU1CRVIpIHsKKyAgICAgICAgICAgICAgICBzZXRab29tKHByaW1pdGl2ZVZhbHVlLT5n
ZXRGbG9hdFZhbHVlKCkgLyAxMDAuMGYpOworICAgICAgICB9IGVsc2UgaWYgKHByaW1pdGl2ZVZh
bHVlLT5wcmltaXRpdmVUeXBlKCkgPT0gQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19OVU1CRVIpIHsK
ICAgICAgICAgICAgIGlmIChwcmltaXRpdmVWYWx1ZS0+Z2V0RmxvYXRWYWx1ZSgpKQotICAgICAg
ICAgICAgICAgIG1fc3R5bGUtPnNldFpvb20ocHJpbWl0aXZlVmFsdWUtPmdldEZsb2F0VmFsdWUo
KSk7CisgICAgICAgICAgICAgICAgc2V0Wm9vbShwcmltaXRpdmVWYWx1ZS0+Z2V0RmxvYXRWYWx1
ZSgpKTsKICAgICAgICAgfQotICAgICAgICAKLSAgICAgICAgbV9mb250RGlydHkgPSB0cnVlOwog
ICAgICAgICByZXR1cm47CiAgICAgfQogLy8gc2hvcnRoYW5kIHByb3BlcnRpZXMKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuaAkocmV2aXNpb24gOTIwOTIpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMTYs
NiArMTE2LDggQEAgcHVibGljOgogICAgICAgICBGb250RGVzY3JpcHRpb24gZm9udERlc2NyaXB0
aW9uKCkgeyByZXR1cm4gc3R5bGUoKS0+Zm9udERlc2NyaXB0aW9uKCk7IH0KICAgICAgICAgRm9u
dERlc2NyaXB0aW9uIHBhcmVudEZvbnREZXNjcmlwdGlvbigpIHtyZXR1cm4gcGFyZW50U3R5bGUo
KS0+Zm9udERlc2NyaXB0aW9uKCk7IH0KICAgICAgICAgdm9pZCBzZXRGb250RGVzY3JpcHRpb24o
Rm9udERlc2NyaXB0aW9uIGZvbnREZXNjcmlwdGlvbikgeyBtX2ZvbnREaXJ0eSB8PSBzdHlsZSgp
LT5zZXRGb250RGVzY3JpcHRpb24oZm9udERlc2NyaXB0aW9uKTsgfQorICAgICAgICB2b2lkIHNl
dFpvb20oZmxvYXQgZikgeyBtX2ZvbnREaXJ0eSB8PSBzdHlsZSgpLT5zZXRab29tPGJvb2w+KGYp
OyB9CisgICAgICAgIHZvaWQgc2V0RWZmZWN0aXZlWm9vbShmbG9hdCBmKSB7IG1fZm9udERpcnR5
IHw9IHN0eWxlKCktPnNldEVmZmVjdGl2ZVpvb20oZik7IH0KIAogICAgIHByaXZhdGU6CiAgICAg
ICAgIHZvaWQgaW5pdEZvclN0eWxlUmVzb2x2ZShFbGVtZW50KiwgUmVuZGVyU3R5bGUqIHBhcmVu
dFN0eWxlID0gMCwgUHNldWRvSWQgPSBOT1BTRVVETyk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9w
YWdlL2FuaW1hdGlvbi9BbmltYXRpb25CYXNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9wYWdlL2FuaW1hdGlvbi9BbmltYXRpb25CYXNlLmNwcAkocmV2aXNpb24gOTIwOTIpCisr
KyBTb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9BbmltYXRpb25CYXNlLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtNzQxLDcgKzc0MSw3IEBAIHZvaWQgQW5pbWF0aW9uQmFzZTo6ZW5zdXJlUHJv
cGVydHlNYXAoKQogICAgICAgICBnUHJvcGVydHlXcmFwcGVycy0+YXBwZW5kKG5ldyBQcm9wZXJ0
eVdyYXBwZXI8TGVuZ3RoU2l6ZT4oQ1NTUHJvcGVydHlCb3JkZXJCb3R0b21MZWZ0UmFkaXVzLCAm
UmVuZGVyU3R5bGU6OmJvcmRlckJvdHRvbUxlZnRSYWRpdXMsICZSZW5kZXJTdHlsZTo6c2V0Qm9y
ZGVyQm90dG9tTGVmdFJhZGl1cykpOwogICAgICAgICBnUHJvcGVydHlXcmFwcGVycy0+YXBwZW5k
KG5ldyBQcm9wZXJ0eVdyYXBwZXI8TGVuZ3RoU2l6ZT4oQ1NTUHJvcGVydHlCb3JkZXJCb3R0b21S
aWdodFJhZGl1cywgJlJlbmRlclN0eWxlOjpib3JkZXJCb3R0b21SaWdodFJhZGl1cywgJlJlbmRl
clN0eWxlOjpzZXRCb3JkZXJCb3R0b21SaWdodFJhZGl1cykpOwogICAgICAgICBnUHJvcGVydHlX
cmFwcGVycy0+YXBwZW5kKG5ldyBQcm9wZXJ0eVdyYXBwZXI8RVZpc2liaWxpdHk+KENTU1Byb3Bl
cnR5VmlzaWJpbGl0eSwgJlJlbmRlclN0eWxlOjp2aXNpYmlsaXR5LCAmUmVuZGVyU3R5bGU6OnNl
dFZpc2liaWxpdHkpKTsKLSAgICAgICAgZ1Byb3BlcnR5V3JhcHBlcnMtPmFwcGVuZChuZXcgUHJv
cGVydHlXcmFwcGVyPGZsb2F0PihDU1NQcm9wZXJ0eVpvb20sICZSZW5kZXJTdHlsZTo6em9vbSwg
JlJlbmRlclN0eWxlOjpzZXRab29tKSk7CisgICAgICAgIGdQcm9wZXJ0eVdyYXBwZXJzLT5hcHBl
bmQobmV3IFByb3BlcnR5V3JhcHBlcjxmbG9hdD4oQ1NTUHJvcGVydHlab29tLCAmUmVuZGVyU3R5
bGU6Onpvb20sICZSZW5kZXJTdHlsZTo6c2V0Wm9vbTx2b2lkPikpOwogCiAgICAgICAgIGdQcm9w
ZXJ0eVdyYXBwZXJzLT5hcHBlbmQobmV3IFByb3BlcnR5V3JhcHBlcjxMZW5ndGhCb3g+KENTU1By
b3BlcnR5Q2xpcCwgJlJlbmRlclN0eWxlOjpjbGlwLCAmUmVuZGVyU3R5bGU6OnNldENsaXApKTsK
ICAgICAgICAgCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5
bGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVy
U3R5bGUuaAkocmV2aXNpb24gOTIwOTIpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5
bGUvUmVuZGVyU3R5bGUuaAkod29ya2luZyBjb3B5KQpAQCAtOTQ1LDggKzk0NSwyMSBAQCBwdWJs
aWM6CiAgICAgdm9pZCBzZXRUZXh0RGVjb3JhdGlvbihpbnQgdikgeyBTRVRfVkFSKHZpc3VhbCwg
dGV4dERlY29yYXRpb24sIHYpOyB9CiAgICAgdm9pZCBzZXREaXJlY3Rpb24oVGV4dERpcmVjdGlv
biB2KSB7IGluaGVyaXRlZF9mbGFncy5fZGlyZWN0aW9uID0gdjsgfQogICAgIHZvaWQgc2V0TGlu
ZUhlaWdodChMZW5ndGggdikgeyBTRVRfVkFSKGluaGVyaXRlZCwgbGluZV9oZWlnaHQsIHYpIH0K
LSAgICB2b2lkIHNldFpvb20oZmxvYXQgZikgeyBTRVRfVkFSKHZpc3VhbCwgbV96b29tLCBmKTsg
c2V0RWZmZWN0aXZlWm9vbShlZmZlY3RpdmVab29tKCkgKiB6b29tKCkpOyB9Ci0gICAgdm9pZCBz
ZXRFZmZlY3RpdmVab29tKGZsb2F0IGYpIHsgU0VUX1ZBUihyYXJlSW5oZXJpdGVkRGF0YSwgbV9l
ZmZlY3RpdmVab29tLCBmKSB9CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gaW5saW5lIFQgc2V0
Wm9vbShmbG9hdCBmKQorICAgIHsKKyAgICAgICAgaWYgKGNvbXBhcmVFcXVhbCh2aXN1YWwtPm1f
em9vbSwgZikpCisgICAgICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8VD4oZmFsc2UpOworICAg
ICAgICB2aXN1YWwuYWNjZXNzKCktPm1fem9vbSA9IGY7CisgICAgICAgIHNldEVmZmVjdGl2ZVpv
b20oZWZmZWN0aXZlWm9vbSgpICogem9vbSgpKTsKKyAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0
PFQ+KHRydWUpOworICAgIH0KKyAgICBib29sIHNldEVmZmVjdGl2ZVpvb20oZmxvYXQgZikKKyAg
ICB7CisgICAgICAgIGlmIChjb21wYXJlRXF1YWwocmFyZUluaGVyaXRlZERhdGEtPm1fZWZmZWN0
aXZlWm9vbSwgZikpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIHJhcmVJbmhl
cml0ZWREYXRhLmFjY2VzcygpLT5tX2VmZmVjdGl2ZVpvb20gPSBmOworICAgICAgICByZXR1cm4g
dHJ1ZTsKKyAgICB9CiAgICAgdm9pZCBzZXRJbWFnZVJlbmRlcmluZyhFSW1hZ2VSZW5kZXJpbmcg
dikgeyBTRVRfVkFSKHJhcmVJbmhlcml0ZWREYXRhLCBtX2ltYWdlUmVuZGVyaW5nLCB2KSB9CiAK
ICAgICB2b2lkIHNldFdoaXRlU3BhY2UoRVdoaXRlU3BhY2UgdikgeyBpbmhlcml0ZWRfZmxhZ3Mu
X3doaXRlX3NwYWNlID0gdjsgfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>102479</attachid>
            <date>2011-07-31 22:27:36 -0700</date>
            <delta_ts>2011-08-01 18:16:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-65092-20110801152734.patch</filename>
            <type>text/plain</type>
            <size>7868</size>
            <attacher name="Luke Macpherson">macpherson</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDkyMDk4KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzUgQEAKKzIwMTEtMDctMzEgIEx1a2UgTWFj
cGhlcnNvbiAgIDxtYWNwaGVyc29uQGNocm9taXVtLm9yZz4KKworICAgICAgICBEb24ndCBzZXQg
bV9mb250RGlydHkgd2hlbiBzZXR0aW5nIHpvb20gdW5sZXNzIHpvb20gaGFzIGFjdHVhbGx5IGNo
YW5nZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY1
MDkyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8g
bmV3IHRlc3RzIGFzIG5vIGZ1bmN0aW9uYWxpdHkgY2hhbmdlZCAtIHRoaXMgaXMgYW4gb3B0aW1p
emF0aW9uIHRoYXQKKyAgICAgICAgc2hvdWxkIGJlIGxvZ2ljYWxseSBlcXVpdmFsZW50IHRvIHRo
ZSBjdXJyZW50IGNvZGUuCisKKyAgICAgICAgVGhlIGludGVudCBoZXJlIGlzIHRvIGF2b2lkIHNl
dHRpbmcgbV9mb250RGlydHkgdW5sZXNzIHRoZSBmb3JudCBpbmZvcm1hdGlvbiBpcyBhY3R1YWxs
eSBkaXJ0eS4KKworICAgICAgICAqIGNzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkNTU1N0eWxlU2VsZWN0b3I6OnN0eWxlRm9yRG9jdW1lbnQpOgorICAgICAgICAo
V2ViQ29yZTo6Q1NTU3R5bGVTZWxlY3Rvcjo6YXBwbHlQcm9wZXJ0eSk6CisgICAgICAgIFVzZSBz
ZXRab29tIGFuZCBzZXRFZmZlY3RpdmVab29tIHdyYXBwZXIgZnVuY3Rpb25zLgorICAgICAgICAq
IGNzcy9DU1NTdHlsZVNlbGVjdG9yLmg6CisgICAgICAgIChXZWJDb3JlOjpDU1NTdHlsZVNlbGVj
dG9yOjpzZXRab29tKToKKyAgICAgICAgV3JhcHBlciBmb3IgbV9zdHlsZS0+c2V0Wm9vbSgpIHRo
YXQgYXV0b21hdGljYWxseSB1cGRhdGVzIG1fZm9udERpcnR5LgorICAgICAgICAoV2ViQ29yZTo6
Q1NTU3R5bGVTZWxlY3Rvcjo6c2V0RWZmZWN0aXZlWm9vbSk6CisgICAgICAgIFdyYXBwZXIgZm9y
IG1fc3R5bGUtPnNldEVmZmVjdGl2ZVpvb20gdGhhdCBhdXRvbWF0aWNhbGx5IHVwZGF0ZXMgbV9m
b250RGlydHkuCisgICAgICAgICogcGFnZS9hbmltYXRpb24vQW5pbWF0aW9uQmFzZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpBbmltYXRpb25CYXNlOjplbnN1cmVQcm9wZXJ0eU1hcCk6CisgICAg
ICAgIFVzZSAKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaDoKKyAgICAg
ICAgKFdlYkNvcmU6OkluaGVyaXRlZEZsYWdzOjpzZXRab29tKToKKyAgICAgICAgUmV0dXJuIHRy
dWUgb25seSBpZiB1bmRlcmx5aW5nIHZhbHVlcyBjaGFuZ2UuCisgICAgICAgIChXZWJDb3JlOjpJ
bmhlcml0ZWRGbGFnczo6c2V0Wm9vbVdpdGhvdXRSZXR1cm5WYWx1ZSk6CisgICAgICAgIFJldHVy
biB2b2lkIHRvIG1hdGNoIGZ1bmN0aW9uIHBvaW50ZXIgdHlwZSB3aGVyZSByZXF1aXJlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OkluaGVyaXRlZEZsYWdzOjpzZXRFZmZlY3RpdmVab29tKToKKyAgICAg
ICAgUmV0dXJuIHRydWUgb25seSBpZiB1bmRlcmx5aW5nIHZhbHVlcyBjaGFuZ2UuCisKIDIwMTEt
MDctMzEgIFNoZXJpZmYgQm90ICA8d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29tPgogCiAgICAg
ICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHI5MjA5NC4KSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHAJKHJldmlzaW9uIDkyMDk4KQorKysgU291cmNlL1dlYkNv
cmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00MjgxLDMxICs0
MjgxLDI2IEBAIHZvaWQgQ1NTU3R5bGVTZWxlY3Rvcjo6YXBwbHlQcm9wZXJ0eShpbnQKICAgICB7
CiAgICAgICAgIC8vIFJlc2V0IHRoZSB6b29tIGluIGVmZmVjdCBiZWZvcmUgd2UgZG8gYW55dGhp
bmcuICBUaGlzIGFsbG93cyB0aGUgc2V0Wm9vbSBtZXRob2QgdG8gYWNjdXJhdGVseSBjb21wdXRl
IGEgbmV3CiAgICAgICAgIC8vIHpvb20gaW4gZWZmZWN0LgotICAgICAgICBtX3N0eWxlLT5zZXRF
ZmZlY3RpdmVab29tKG1fcGFyZW50U3R5bGUgPyBtX3BhcmVudFN0eWxlLT5lZmZlY3RpdmVab29t
KCkgOiBSZW5kZXJTdHlsZTo6aW5pdGlhbFpvb20oKSk7Ci0gICAgICAgIAotICAgICAgICAvLyBO
b3cgd2UgY2FuIGhhbmRsZSBpbmhlcml0IGFuZCBpbml0aWFsLgotICAgICAgICBIQU5ETEVfSU5I
RVJJVF9BTkRfSU5JVElBTCh6b29tLCBab29tKQotICAgICAgICAKLSAgICAgICAgLy8gSGFuZGxl
IG5vcm1hbC9yZXNldCwgbnVtYmVycyBhbmQgcGVyY2VudGFnZXMuCi0gICAgICAgIGludCB0eXBl
ID0gcHJpbWl0aXZlVmFsdWUtPnByaW1pdGl2ZVR5cGUoKTsKLSAgICAgICAgaWYgKHByaW1pdGl2
ZVZhbHVlLT5nZXRJZGVudCgpID09IENTU1ZhbHVlTm9ybWFsKQotICAgICAgICAgICAgbV9zdHls
ZS0+c2V0Wm9vbShSZW5kZXJTdHlsZTo6aW5pdGlhbFpvb20oKSk7CisgICAgICAgIHNldEVmZmVj
dGl2ZVpvb20obV9wYXJlbnRTdHlsZSA/IG1fcGFyZW50U3R5bGUtPmVmZmVjdGl2ZVpvb20oKSA6
IFJlbmRlclN0eWxlOjppbml0aWFsWm9vbSgpKTsKKworICAgICAgICBpZiAoaXNJbmhlcml0KQor
ICAgICAgICAgICAgc2V0Wm9vbShtX3BhcmVudFN0eWxlLT56b29tKCkpOworICAgICAgICBlbHNl
IGlmIChpc0luaXRpYWwgfHwgcHJpbWl0aXZlVmFsdWUtPmdldElkZW50KCkgPT0gQ1NTVmFsdWVO
b3JtYWwpCisgICAgICAgICAgICBzZXRab29tKFJlbmRlclN0eWxlOjppbml0aWFsWm9vbSgpKTsK
ICAgICAgICAgZWxzZSBpZiAocHJpbWl0aXZlVmFsdWUtPmdldElkZW50KCkgPT0gQ1NTVmFsdWVS
ZXNldCkgewotICAgICAgICAgICAgbV9zdHlsZS0+c2V0RWZmZWN0aXZlWm9vbShSZW5kZXJTdHls
ZTo6aW5pdGlhbFpvb20oKSk7Ci0gICAgICAgICAgICBtX3N0eWxlLT5zZXRab29tKFJlbmRlclN0
eWxlOjppbml0aWFsWm9vbSgpKTsKKyAgICAgICAgICAgIHNldEVmZmVjdGl2ZVpvb20oUmVuZGVy
U3R5bGU6OmluaXRpYWxab29tKCkpOworICAgICAgICAgICAgc2V0Wm9vbShSZW5kZXJTdHlsZTo6
aW5pdGlhbFpvb20oKSk7CiAgICAgICAgIH0gZWxzZSBpZiAocHJpbWl0aXZlVmFsdWUtPmdldElk
ZW50KCkgPT0gQ1NTVmFsdWVEb2N1bWVudCkgewogICAgICAgICAgICAgZmxvYXQgZG9jWm9vbSA9
IG1fY2hlY2tlci5tX2RvY3VtZW50LT5yZW5kZXJlcigpLT5zdHlsZSgpLT56b29tKCk7Ci0gICAg
ICAgICAgICBtX3N0eWxlLT5zZXRFZmZlY3RpdmVab29tKGRvY1pvb20pOwotICAgICAgICAgICAg
bV9zdHlsZS0+c2V0Wm9vbShkb2Nab29tKTsKLSAgICAgICAgfSBlbHNlIGlmICh0eXBlID09IENT
U1ByaW1pdGl2ZVZhbHVlOjpDU1NfUEVSQ0VOVEFHRSkgeworICAgICAgICAgICAgc2V0RWZmZWN0
aXZlWm9vbShkb2Nab29tKTsKKyAgICAgICAgICAgIHNldFpvb20oZG9jWm9vbSk7CisgICAgICAg
IH0gZWxzZSBpZiAocHJpbWl0aXZlVmFsdWUtPnByaW1pdGl2ZVR5cGUoKSA9PSBDU1NQcmltaXRp
dmVWYWx1ZTo6Q1NTX1BFUkNFTlRBR0UpIHsKICAgICAgICAgICAgIGlmIChwcmltaXRpdmVWYWx1
ZS0+Z2V0RmxvYXRWYWx1ZSgpKQotICAgICAgICAgICAgICAgIG1fc3R5bGUtPnNldFpvb20ocHJp
bWl0aXZlVmFsdWUtPmdldEZsb2F0VmFsdWUoKSAvIDEwMC4wZik7Ci0gICAgICAgIH0gZWxzZSBp
ZiAodHlwZSA9PSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX05VTUJFUikgeworICAgICAgICAgICAg
ICAgIHNldFpvb20ocHJpbWl0aXZlVmFsdWUtPmdldEZsb2F0VmFsdWUoKSAvIDEwMC4wZik7Cisg
ICAgICAgIH0gZWxzZSBpZiAocHJpbWl0aXZlVmFsdWUtPnByaW1pdGl2ZVR5cGUoKSA9PSBDU1NQ
cmltaXRpdmVWYWx1ZTo6Q1NTX05VTUJFUikgewogICAgICAgICAgICAgaWYgKHByaW1pdGl2ZVZh
bHVlLT5nZXRGbG9hdFZhbHVlKCkpCi0gICAgICAgICAgICAgICAgbV9zdHlsZS0+c2V0Wm9vbShw
cmltaXRpdmVWYWx1ZS0+Z2V0RmxvYXRWYWx1ZSgpKTsKKyAgICAgICAgICAgICAgICBzZXRab29t
KHByaW1pdGl2ZVZhbHVlLT5nZXRGbG9hdFZhbHVlKCkpOwogICAgICAgICB9Ci0gICAgICAgIAot
ICAgICAgICBtX2ZvbnREaXJ0eSA9IHRydWU7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAvLyBz
aG9ydGhhbmQgcHJvcGVydGllcwpJbmRleDogU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2Vs
ZWN0b3IuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rv
ci5oCShyZXZpc2lvbiA5MjA5OCkKKysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVj
dG9yLmgJKHdvcmtpbmcgY29weSkKQEAgLTExNiw2ICsxMTYsOCBAQCBwdWJsaWM6CiAgICAgICAg
IEZvbnREZXNjcmlwdGlvbiBmb250RGVzY3JpcHRpb24oKSB7IHJldHVybiBzdHlsZSgpLT5mb250
RGVzY3JpcHRpb24oKTsgfQogICAgICAgICBGb250RGVzY3JpcHRpb24gcGFyZW50Rm9udERlc2Ny
aXB0aW9uKCkge3JldHVybiBwYXJlbnRTdHlsZSgpLT5mb250RGVzY3JpcHRpb24oKTsgfQogICAg
ICAgICB2b2lkIHNldEZvbnREZXNjcmlwdGlvbihGb250RGVzY3JpcHRpb24gZm9udERlc2NyaXB0
aW9uKSB7IG1fZm9udERpcnR5IHw9IHN0eWxlKCktPnNldEZvbnREZXNjcmlwdGlvbihmb250RGVz
Y3JpcHRpb24pOyB9CisgICAgICAgIHZvaWQgc2V0Wm9vbShmbG9hdCBmKSB7IG1fZm9udERpcnR5
IHw9IHN0eWxlKCktPnNldFpvb20oZik7IH0KKyAgICAgICAgdm9pZCBzZXRFZmZlY3RpdmVab29t
KGZsb2F0IGYpIHsgbV9mb250RGlydHkgfD0gc3R5bGUoKS0+c2V0RWZmZWN0aXZlWm9vbShmKTsg
fQogCiAgICAgcHJpdmF0ZToKICAgICAgICAgdm9pZCBpbml0Rm9yU3R5bGVSZXNvbHZlKEVsZW1l
bnQqLCBSZW5kZXJTdHlsZSogcGFyZW50U3R5bGUgPSAwLCBQc2V1ZG9JZCA9IE5PUFNFVURPKTsK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0FuaW1hdGlvbkJhc2UuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0FuaW1hdGlvbkJhc2Uu
Y3BwCShyZXZpc2lvbiA5MjA5OCkKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0Fu
aW1hdGlvbkJhc2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03NDEsNyArNzQxLDcgQEAgdm9pZCBB
bmltYXRpb25CYXNlOjplbnN1cmVQcm9wZXJ0eU1hcCgpCiAgICAgICAgIGdQcm9wZXJ0eVdyYXBw
ZXJzLT5hcHBlbmQobmV3IFByb3BlcnR5V3JhcHBlcjxMZW5ndGhTaXplPihDU1NQcm9wZXJ0eUJv
cmRlckJvdHRvbUxlZnRSYWRpdXMsICZSZW5kZXJTdHlsZTo6Ym9yZGVyQm90dG9tTGVmdFJhZGl1
cywgJlJlbmRlclN0eWxlOjpzZXRCb3JkZXJCb3R0b21MZWZ0UmFkaXVzKSk7CiAgICAgICAgIGdQ
cm9wZXJ0eVdyYXBwZXJzLT5hcHBlbmQobmV3IFByb3BlcnR5V3JhcHBlcjxMZW5ndGhTaXplPihD
U1NQcm9wZXJ0eUJvcmRlckJvdHRvbVJpZ2h0UmFkaXVzLCAmUmVuZGVyU3R5bGU6OmJvcmRlckJv
dHRvbVJpZ2h0UmFkaXVzLCAmUmVuZGVyU3R5bGU6OnNldEJvcmRlckJvdHRvbVJpZ2h0UmFkaXVz
KSk7CiAgICAgICAgIGdQcm9wZXJ0eVdyYXBwZXJzLT5hcHBlbmQobmV3IFByb3BlcnR5V3JhcHBl
cjxFVmlzaWJpbGl0eT4oQ1NTUHJvcGVydHlWaXNpYmlsaXR5LCAmUmVuZGVyU3R5bGU6OnZpc2li
aWxpdHksICZSZW5kZXJTdHlsZTo6c2V0VmlzaWJpbGl0eSkpOwotICAgICAgICBnUHJvcGVydHlX
cmFwcGVycy0+YXBwZW5kKG5ldyBQcm9wZXJ0eVdyYXBwZXI8ZmxvYXQ+KENTU1Byb3BlcnR5Wm9v
bSwgJlJlbmRlclN0eWxlOjp6b29tLCAmUmVuZGVyU3R5bGU6OnNldFpvb20pKTsKKyAgICAgICAg
Z1Byb3BlcnR5V3JhcHBlcnMtPmFwcGVuZChuZXcgUHJvcGVydHlXcmFwcGVyPGZsb2F0PihDU1NQ
cm9wZXJ0eVpvb20sICZSZW5kZXJTdHlsZTo6em9vbSwgJlJlbmRlclN0eWxlOjpzZXRab29tV2l0
aG91dFJldHVyblZhbHVlKSk7CiAKICAgICAgICAgZ1Byb3BlcnR5V3JhcHBlcnMtPmFwcGVuZChu
ZXcgUHJvcGVydHlXcmFwcGVyPExlbmd0aEJveD4oQ1NTUHJvcGVydHlDbGlwLCAmUmVuZGVyU3R5
bGU6OmNsaXAsICZSZW5kZXJTdHlsZTo6c2V0Q2xpcCkpOwogICAgICAgICAKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCShyZXZpc2lvbiA5MjA5
OCkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC05NDUsOCArOTQ1LDIyIEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFRleHRE
ZWNvcmF0aW9uKGludCB2KSB7IFNFVF9WQVIodmlzdWFsLCB0ZXh0RGVjb3JhdGlvbiwgdik7IH0K
ICAgICB2b2lkIHNldERpcmVjdGlvbihUZXh0RGlyZWN0aW9uIHYpIHsgaW5oZXJpdGVkX2ZsYWdz
Ll9kaXJlY3Rpb24gPSB2OyB9CiAgICAgdm9pZCBzZXRMaW5lSGVpZ2h0KExlbmd0aCB2KSB7IFNF
VF9WQVIoaW5oZXJpdGVkLCBsaW5lX2hlaWdodCwgdikgfQotICAgIHZvaWQgc2V0Wm9vbShmbG9h
dCBmKSB7IFNFVF9WQVIodmlzdWFsLCBtX3pvb20sIGYpOyBzZXRFZmZlY3RpdmVab29tKGVmZmVj
dGl2ZVpvb20oKSAqIHpvb20oKSk7IH0KLSAgICB2b2lkIHNldEVmZmVjdGl2ZVpvb20oZmxvYXQg
ZikgeyBTRVRfVkFSKHJhcmVJbmhlcml0ZWREYXRhLCBtX2VmZmVjdGl2ZVpvb20sIGYpIH0KKyAg
ICBib29sIHNldFpvb20oZmxvYXQgZikKKyAgICB7CisgICAgICAgIGlmIChjb21wYXJlRXF1YWwo
dmlzdWFsLT5tX3pvb20sIGYpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB2
aXN1YWwuYWNjZXNzKCktPm1fem9vbSA9IGY7CisgICAgICAgIHNldEVmZmVjdGl2ZVpvb20oZWZm
ZWN0aXZlWm9vbSgpICogem9vbSgpKTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAg
IHZvaWQgc2V0Wm9vbVdpdGhvdXRSZXR1cm5WYWx1ZShmbG9hdCBmKSB7IHNldFpvb20oZik7IH0K
KyAgICBib29sIHNldEVmZmVjdGl2ZVpvb20oZmxvYXQgZikKKyAgICB7CisgICAgICAgIGlmIChj
b21wYXJlRXF1YWwocmFyZUluaGVyaXRlZERhdGEtPm1fZWZmZWN0aXZlWm9vbSwgZikpCisgICAg
ICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIHJhcmVJbmhlcml0ZWREYXRhLmFjY2Vzcygp
LT5tX2VmZmVjdGl2ZVpvb20gPSBmOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CiAgICAg
dm9pZCBzZXRJbWFnZVJlbmRlcmluZyhFSW1hZ2VSZW5kZXJpbmcgdikgeyBTRVRfVkFSKHJhcmVJ
bmhlcml0ZWREYXRhLCBtX2ltYWdlUmVuZGVyaW5nLCB2KSB9CiAKICAgICB2b2lkIHNldFdoaXRl
U3BhY2UoRVdoaXRlU3BhY2UgdikgeyBpbmhlcml0ZWRfZmxhZ3MuX3doaXRlX3NwYWNlID0gdjsg
fQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>102607</attachid>
            <date>2011-08-01 18:16:41 -0700</date>
            <delta_ts>2011-08-01 18:42:23 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-65092-20110802111639.patch</filename>
            <type>text/plain</type>
            <size>8117</size>
            <attacher name="Luke Macpherson">macpherson</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDkyMTU1KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzUgQEAKKzIwMTEtMDgtMDEgIEx1a2UgTWFj
cGhlcnNvbiAgIDxtYWNwaGVyc29uQGNocm9taXVtLm9yZz4KKworICAgICAgICBEb24ndCBzZXQg
bV9mb250RGlydHkgd2hlbiBzZXR0aW5nIHpvb20gdW5sZXNzIHpvb20gaGFzIGFjdHVhbGx5IGNo
YW5nZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY1
MDkyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisKKyAgICAgICAgTm8gbmV3
IHRlc3RzIGFzIG5vIGZ1bmN0aW9uYWxpdHkgY2hhbmdlZCAtIHRoaXMgaXMgYW4gb3B0aW1pemF0
aW9uIHRoYXQKKyAgICAgICAgc2hvdWxkIGJlIGxvZ2ljYWxseSBlcXVpdmFsZW50IHRvIHRoZSBj
dXJyZW50IGNvZGUuCisKKyAgICAgICAgVGhlIGludGVudCBoZXJlIGlzIHRvIGF2b2lkIHNldHRp
bmcgbV9mb250RGlydHkgdW5sZXNzIHRoZSBmb3JudCBpbmZvcm1hdGlvbiBpcyBhY3R1YWxseSBk
aXJ0eS4KKworICAgICAgICAqIGNzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkNTU1N0eWxlU2VsZWN0b3I6OnN0eWxlRm9yRG9jdW1lbnQpOgorICAgICAgICAoV2Vi
Q29yZTo6Q1NTU3R5bGVTZWxlY3Rvcjo6YXBwbHlQcm9wZXJ0eSk6CisgICAgICAgIFVzZSBzZXRa
b29tIGFuZCBzZXRFZmZlY3RpdmVab29tIHdyYXBwZXIgZnVuY3Rpb25zLgorICAgICAgICAqIGNz
cy9DU1NTdHlsZVNlbGVjdG9yLmg6CisgICAgICAgIChXZWJDb3JlOjpDU1NTdHlsZVNlbGVjdG9y
OjpzZXRab29tKToKKyAgICAgICAgV3JhcHBlciBmb3IgbV9zdHlsZS0+c2V0Wm9vbSgpIHRoYXQg
YXV0b21hdGljYWxseSB1cGRhdGVzIG1fZm9udERpcnR5LgorICAgICAgICAoV2ViQ29yZTo6Q1NT
U3R5bGVTZWxlY3Rvcjo6c2V0RWZmZWN0aXZlWm9vbSk6CisgICAgICAgIFdyYXBwZXIgZm9yIG1f
c3R5bGUtPnNldEVmZmVjdGl2ZVpvb20gdGhhdCBhdXRvbWF0aWNhbGx5IHVwZGF0ZXMgbV9mb250
RGlydHkuCisgICAgICAgICogcGFnZS9hbmltYXRpb24vQW5pbWF0aW9uQmFzZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpBbmltYXRpb25CYXNlOjplbnN1cmVQcm9wZXJ0eU1hcCk6CisgICAgICAg
IFVzZSAKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaDoKKyAgICAgICAg
KFdlYkNvcmU6OkluaGVyaXRlZEZsYWdzOjpzZXRab29tKToKKyAgICAgICAgUmV0dXJuIHRydWUg
b25seSBpZiB1bmRlcmx5aW5nIHZhbHVlcyBjaGFuZ2UuCisgICAgICAgIChXZWJDb3JlOjpJbmhl
cml0ZWRGbGFnczo6c2V0Wm9vbVdpdGhvdXRSZXR1cm5WYWx1ZSk6CisgICAgICAgIFJldHVybiB2
b2lkIHRvIG1hdGNoIGZ1bmN0aW9uIHBvaW50ZXIgdHlwZSB3aGVyZSByZXF1aXJlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OkluaGVyaXRlZEZsYWdzOjpzZXRFZmZlY3RpdmVab29tKToKKyAgICAgICAg
UmV0dXJuIHRydWUgb25seSBpZiB1bmRlcmx5aW5nIHZhbHVlcyBjaGFuZ2UuCisKIDIwMTEtMDgt
MDEgIE1pY2hhZWwgTm9yZG1hbiAgPG1pY2hhZWxuQGdvb2dsZS5jb20+CiAKICAgICAgICAgW0No
cm9taXVtXSBXZWJTUUxEYXRhYmFzZSB2ZXJzaW9uIGhhbmRsaW5nIGlzIGJyb2tlbiBpbiBtdWx0
aS1wcm9jZXNzIGJyb3dzZXJzLgpJbmRleDogU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2Vs
ZWN0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVj
dG9yLmNwcAkocmV2aXNpb24gOTIxNTUpCisrKyBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVT
ZWxlY3Rvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQyNzYsMzEgKzQyNzYsMjYgQEAgdm9pZCBD
U1NTdHlsZVNlbGVjdG9yOjphcHBseVByb3BlcnR5KGludAogICAgIHsKICAgICAgICAgLy8gUmVz
ZXQgdGhlIHpvb20gaW4gZWZmZWN0IGJlZm9yZSB3ZSBkbyBhbnl0aGluZy4gIFRoaXMgYWxsb3dz
IHRoZSBzZXRab29tIG1ldGhvZCB0byBhY2N1cmF0ZWx5IGNvbXB1dGUgYSBuZXcKICAgICAgICAg
Ly8gem9vbSBpbiBlZmZlY3QuCi0gICAgICAgIG1fc3R5bGUtPnNldEVmZmVjdGl2ZVpvb20obV9w
YXJlbnRTdHlsZSA/IG1fcGFyZW50U3R5bGUtPmVmZmVjdGl2ZVpvb20oKSA6IFJlbmRlclN0eWxl
Ojppbml0aWFsWm9vbSgpKTsKLSAgICAgICAgCi0gICAgICAgIC8vIE5vdyB3ZSBjYW4gaGFuZGxl
IGluaGVyaXQgYW5kIGluaXRpYWwuCi0gICAgICAgIEhBTkRMRV9JTkhFUklUX0FORF9JTklUSUFM
KHpvb20sIFpvb20pCi0gICAgICAgIAotICAgICAgICAvLyBIYW5kbGUgbm9ybWFsL3Jlc2V0LCBu
dW1iZXJzIGFuZCBwZXJjZW50YWdlcy4KLSAgICAgICAgaW50IHR5cGUgPSBwcmltaXRpdmVWYWx1
ZS0+cHJpbWl0aXZlVHlwZSgpOwotICAgICAgICBpZiAocHJpbWl0aXZlVmFsdWUtPmdldElkZW50
KCkgPT0gQ1NTVmFsdWVOb3JtYWwpCi0gICAgICAgICAgICBtX3N0eWxlLT5zZXRab29tKFJlbmRl
clN0eWxlOjppbml0aWFsWm9vbSgpKTsKKyAgICAgICAgc2V0RWZmZWN0aXZlWm9vbShtX3BhcmVu
dFN0eWxlID8gbV9wYXJlbnRTdHlsZS0+ZWZmZWN0aXZlWm9vbSgpIDogUmVuZGVyU3R5bGU6Omlu
aXRpYWxab29tKCkpOworCisgICAgICAgIGlmIChpc0luaGVyaXQpCisgICAgICAgICAgICBzZXRa
b29tKG1fcGFyZW50U3R5bGUtPnpvb20oKSk7CisgICAgICAgIGVsc2UgaWYgKGlzSW5pdGlhbCB8
fCBwcmltaXRpdmVWYWx1ZS0+Z2V0SWRlbnQoKSA9PSBDU1NWYWx1ZU5vcm1hbCkKKyAgICAgICAg
ICAgIHNldFpvb20oUmVuZGVyU3R5bGU6OmluaXRpYWxab29tKCkpOwogICAgICAgICBlbHNlIGlm
IChwcmltaXRpdmVWYWx1ZS0+Z2V0SWRlbnQoKSA9PSBDU1NWYWx1ZVJlc2V0KSB7Ci0gICAgICAg
ICAgICBtX3N0eWxlLT5zZXRFZmZlY3RpdmVab29tKFJlbmRlclN0eWxlOjppbml0aWFsWm9vbSgp
KTsKLSAgICAgICAgICAgIG1fc3R5bGUtPnNldFpvb20oUmVuZGVyU3R5bGU6OmluaXRpYWxab29t
KCkpOworICAgICAgICAgICAgc2V0RWZmZWN0aXZlWm9vbShSZW5kZXJTdHlsZTo6aW5pdGlhbFpv
b20oKSk7CisgICAgICAgICAgICBzZXRab29tKFJlbmRlclN0eWxlOjppbml0aWFsWm9vbSgpKTsK
ICAgICAgICAgfSBlbHNlIGlmIChwcmltaXRpdmVWYWx1ZS0+Z2V0SWRlbnQoKSA9PSBDU1NWYWx1
ZURvY3VtZW50KSB7CiAgICAgICAgICAgICBmbG9hdCBkb2Nab29tID0gbV9jaGVja2VyLm1fZG9j
dW1lbnQtPnJlbmRlcmVyKCktPnN0eWxlKCktPnpvb20oKTsKLSAgICAgICAgICAgIG1fc3R5bGUt
PnNldEVmZmVjdGl2ZVpvb20oZG9jWm9vbSk7Ci0gICAgICAgICAgICBtX3N0eWxlLT5zZXRab29t
KGRvY1pvb20pOwotICAgICAgICB9IGVsc2UgaWYgKHR5cGUgPT0gQ1NTUHJpbWl0aXZlVmFsdWU6
OkNTU19QRVJDRU5UQUdFKSB7CisgICAgICAgICAgICBzZXRFZmZlY3RpdmVab29tKGRvY1pvb20p
OworICAgICAgICAgICAgc2V0Wm9vbShkb2Nab29tKTsKKyAgICAgICAgfSBlbHNlIGlmIChwcmlt
aXRpdmVWYWx1ZS0+cHJpbWl0aXZlVHlwZSgpID09IENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfUEVS
Q0VOVEFHRSkgewogICAgICAgICAgICAgaWYgKHByaW1pdGl2ZVZhbHVlLT5nZXRGbG9hdFZhbHVl
KCkpCi0gICAgICAgICAgICAgICAgbV9zdHlsZS0+c2V0Wm9vbShwcmltaXRpdmVWYWx1ZS0+Z2V0
RmxvYXRWYWx1ZSgpIC8gMTAwLjBmKTsKLSAgICAgICAgfSBlbHNlIGlmICh0eXBlID09IENTU1By
aW1pdGl2ZVZhbHVlOjpDU1NfTlVNQkVSKSB7CisgICAgICAgICAgICAgICAgc2V0Wm9vbShwcmlt
aXRpdmVWYWx1ZS0+Z2V0RmxvYXRWYWx1ZSgpIC8gMTAwLjBmKTsKKyAgICAgICAgfSBlbHNlIGlm
IChwcmltaXRpdmVWYWx1ZS0+cHJpbWl0aXZlVHlwZSgpID09IENTU1ByaW1pdGl2ZVZhbHVlOjpD
U1NfTlVNQkVSKSB7CiAgICAgICAgICAgICBpZiAocHJpbWl0aXZlVmFsdWUtPmdldEZsb2F0VmFs
dWUoKSkKLSAgICAgICAgICAgICAgICBtX3N0eWxlLT5zZXRab29tKHByaW1pdGl2ZVZhbHVlLT5n
ZXRGbG9hdFZhbHVlKCkpOworICAgICAgICAgICAgICAgIHNldFpvb20ocHJpbWl0aXZlVmFsdWUt
PmdldEZsb2F0VmFsdWUoKSk7CiAgICAgICAgIH0KLSAgICAgICAgCi0gICAgICAgIG1fZm9udERp
cnR5ID0gdHJ1ZTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIC8vIHNob3J0aGFuZCBwcm9wZXJ0
aWVzCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmgJKHJldmlzaW9uIDky
MTU1KQorKysgU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuaAkod29ya2luZyBj
b3B5KQpAQCAtMTE2LDYgKzExNiw4IEBAIHB1YmxpYzoKICAgICAgICAgRm9udERlc2NyaXB0aW9u
IGZvbnREZXNjcmlwdGlvbigpIHsgcmV0dXJuIHN0eWxlKCktPmZvbnREZXNjcmlwdGlvbigpOyB9
CiAgICAgICAgIEZvbnREZXNjcmlwdGlvbiBwYXJlbnRGb250RGVzY3JpcHRpb24oKSB7cmV0dXJu
IHBhcmVudFN0eWxlKCktPmZvbnREZXNjcmlwdGlvbigpOyB9CiAgICAgICAgIHZvaWQgc2V0Rm9u
dERlc2NyaXB0aW9uKEZvbnREZXNjcmlwdGlvbiBmb250RGVzY3JpcHRpb24pIHsgbV9mb250RGly
dHkgfD0gc3R5bGUoKS0+c2V0Rm9udERlc2NyaXB0aW9uKGZvbnREZXNjcmlwdGlvbik7IH0KKyAg
ICAgICAgdm9pZCBzZXRab29tKGZsb2F0IGYpIHsgbV9mb250RGlydHkgfD0gc3R5bGUoKS0+c2V0
Wm9vbShmKTsgfQorICAgICAgICB2b2lkIHNldEVmZmVjdGl2ZVpvb20oZmxvYXQgZikgeyBtX2Zv
bnREaXJ0eSB8PSBzdHlsZSgpLT5zZXRFZmZlY3RpdmVab29tKGYpOyB9CiAKICAgICBwcml2YXRl
OgogICAgICAgICB2b2lkIGluaXRGb3JTdHlsZVJlc29sdmUoRWxlbWVudCosIFJlbmRlclN0eWxl
KiBwYXJlbnRTdHlsZSA9IDAsIFBzZXVkb0lkID0gTk9QU0VVRE8pOwpJbmRleDogU291cmNlL1dl
YkNvcmUvcGFnZS9hbmltYXRpb24vQW5pbWF0aW9uQmFzZS5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQW5pbWF0aW9uQmFzZS5jcHAJKHJldmlzaW9uIDky
MTU1KQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQW5pbWF0aW9uQmFzZS5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTc0MSw3ICs3NDEsNyBAQCB2b2lkIEFuaW1hdGlvbkJhc2U6OmVu
c3VyZVByb3BlcnR5TWFwKCkKICAgICAgICAgZ1Byb3BlcnR5V3JhcHBlcnMtPmFwcGVuZChuZXcg
UHJvcGVydHlXcmFwcGVyPExlbmd0aFNpemU+KENTU1Byb3BlcnR5Qm9yZGVyQm90dG9tTGVmdFJh
ZGl1cywgJlJlbmRlclN0eWxlOjpib3JkZXJCb3R0b21MZWZ0UmFkaXVzLCAmUmVuZGVyU3R5bGU6
OnNldEJvcmRlckJvdHRvbUxlZnRSYWRpdXMpKTsKICAgICAgICAgZ1Byb3BlcnR5V3JhcHBlcnMt
PmFwcGVuZChuZXcgUHJvcGVydHlXcmFwcGVyPExlbmd0aFNpemU+KENTU1Byb3BlcnR5Qm9yZGVy
Qm90dG9tUmlnaHRSYWRpdXMsICZSZW5kZXJTdHlsZTo6Ym9yZGVyQm90dG9tUmlnaHRSYWRpdXMs
ICZSZW5kZXJTdHlsZTo6c2V0Qm9yZGVyQm90dG9tUmlnaHRSYWRpdXMpKTsKICAgICAgICAgZ1By
b3BlcnR5V3JhcHBlcnMtPmFwcGVuZChuZXcgUHJvcGVydHlXcmFwcGVyPEVWaXNpYmlsaXR5PihD
U1NQcm9wZXJ0eVZpc2liaWxpdHksICZSZW5kZXJTdHlsZTo6dmlzaWJpbGl0eSwgJlJlbmRlclN0
eWxlOjpzZXRWaXNpYmlsaXR5KSk7Ci0gICAgICAgIGdQcm9wZXJ0eVdyYXBwZXJzLT5hcHBlbmQo
bmV3IFByb3BlcnR5V3JhcHBlcjxmbG9hdD4oQ1NTUHJvcGVydHlab29tLCAmUmVuZGVyU3R5bGU6
Onpvb20sICZSZW5kZXJTdHlsZTo6c2V0Wm9vbSkpOworICAgICAgICBnUHJvcGVydHlXcmFwcGVy
cy0+YXBwZW5kKG5ldyBQcm9wZXJ0eVdyYXBwZXI8ZmxvYXQ+KENTU1Byb3BlcnR5Wm9vbSwgJlJl
bmRlclN0eWxlOjp6b29tLCAmUmVuZGVyU3R5bGU6OnNldFpvb21XaXRob3V0UmV0dXJuVmFsdWUp
KTsKIAogICAgICAgICBnUHJvcGVydHlXcmFwcGVycy0+YXBwZW5kKG5ldyBQcm9wZXJ0eVdyYXBw
ZXI8TGVuZ3RoQm94PihDU1NQcm9wZXJ0eUNsaXAsICZSZW5kZXJTdHlsZTo6Y2xpcCwgJlJlbmRl
clN0eWxlOjpzZXRDbGlwKSk7CiAgICAgICAgIApJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N0eWxlL1JlbmRlclN0eWxlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgJKHJldmlzaW9uIDkyMTU1KQorKysgU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgJKHdvcmtpbmcgY29weSkKQEAgLTk0
NSw4ICs5NDUsOSBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRUZXh0RGVjb3JhdGlvbihpbnQgdikg
eyBTRVRfVkFSKHZpc3VhbCwgdGV4dERlY29yYXRpb24sIHYpOyB9CiAgICAgdm9pZCBzZXREaXJl
Y3Rpb24oVGV4dERpcmVjdGlvbiB2KSB7IGluaGVyaXRlZF9mbGFncy5fZGlyZWN0aW9uID0gdjsg
fQogICAgIHZvaWQgc2V0TGluZUhlaWdodChMZW5ndGggdikgeyBTRVRfVkFSKGluaGVyaXRlZCwg
bGluZV9oZWlnaHQsIHYpIH0KLSAgICB2b2lkIHNldFpvb20oZmxvYXQgZikgeyBTRVRfVkFSKHZp
c3VhbCwgbV96b29tLCBmKTsgc2V0RWZmZWN0aXZlWm9vbShlZmZlY3RpdmVab29tKCkgKiB6b29t
KCkpOyB9Ci0gICAgdm9pZCBzZXRFZmZlY3RpdmVab29tKGZsb2F0IGYpIHsgU0VUX1ZBUihyYXJl
SW5oZXJpdGVkRGF0YSwgbV9lZmZlY3RpdmVab29tLCBmKSB9CisgICAgYm9vbCBzZXRab29tKGZs
b2F0KTsKKyAgICB2b2lkIHNldFpvb21XaXRob3V0UmV0dXJuVmFsdWUoZmxvYXQgZikgeyBzZXRa
b29tKGYpOyB9CisgICAgYm9vbCBzZXRFZmZlY3RpdmVab29tKGZsb2F0KTsKICAgICB2b2lkIHNl
dEltYWdlUmVuZGVyaW5nKEVJbWFnZVJlbmRlcmluZyB2KSB7IFNFVF9WQVIocmFyZUluaGVyaXRl
ZERhdGEsIG1faW1hZ2VSZW5kZXJpbmcsIHYpIH0KIAogICAgIHZvaWQgc2V0V2hpdGVTcGFjZShF
V2hpdGVTcGFjZSB2KSB7IGluaGVyaXRlZF9mbGFncy5fd2hpdGVfc3BhY2UgPSB2OyB9CkBAIC0x
NDMxLDYgKzE0MzIsMjMgQEAgaW5saW5lIGZsb2F0IGFkanVzdEZsb2F0Rm9yQWJzb2x1dGVab29t
KAogICAgIHJldHVybiB2YWx1ZSAvIHN0eWxlLT5lZmZlY3RpdmVab29tKCk7CiB9CiAKK2lubGlu
ZSBib29sIFJlbmRlclN0eWxlOjpzZXRab29tKGZsb2F0IGYpCit7CisgICAgaWYgKGNvbXBhcmVF
cXVhbCh2aXN1YWwtPm1fem9vbSwgZikpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB2aXN1
YWwuYWNjZXNzKCktPm1fem9vbSA9IGY7CisgICAgc2V0RWZmZWN0aXZlWm9vbShlZmZlY3RpdmVa
b29tKCkgKiB6b29tKCkpOworICAgIHJldHVybiB0cnVlOworfQorCitpbmxpbmUgYm9vbCBSZW5k
ZXJTdHlsZTo6c2V0RWZmZWN0aXZlWm9vbShmbG9hdCBmKQoreworICAgIGlmIChjb21wYXJlRXF1
YWwocmFyZUluaGVyaXRlZERhdGEtPm1fZWZmZWN0aXZlWm9vbSwgZikpCisgICAgICAgIHJldHVy
biBmYWxzZTsKKyAgICByYXJlSW5oZXJpdGVkRGF0YS5hY2Nlc3MoKS0+bV9lZmZlY3RpdmVab29t
ID0gZjsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAj
ZW5kaWYgLy8gUmVuZGVyU3R5bGVfaAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>