<?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>61495</bug_id>
          
          <creation_ts>2011-05-25 18:47:15 -0700</creation_ts>
          <short_desc>Make RenderStyle visuallyOrdered property use an enum instead of a bool.</short_desc>
          <delta_ts>2011-06-09 23:21:15 -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>0</everconfirmed>
          <reporter name="Luke Macpherson">macpherson</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>dglazkov</cc>
    
    <cc>eric</cc>
    
    <cc>leviw</cc>
    
    <cc>mitz</cc>
    
    <cc>rniwa</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>410113</commentid>
    <comment_count>0</comment_count>
    <who name="Luke Macpherson">macpherson</who>
    <bug_when>2011-05-25 18:47:15 -0700</bug_when>
    <thetext>Make RenderStyle visuallyOrdered property use an enum instead of a bool.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>410142</commentid>
    <comment_count>1</comment_count>
      <attachid>94909</attachid>
    <who name="Luke Macpherson">macpherson</who>
    <bug_when>2011-05-25 20:05:06 -0700</bug_when>
    <thetext>Created attachment 94909
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>410143</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-05-25 20:08:20 -0700</bug_when>
    <thetext>Attachment 94909 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCor...&quot; exit_code: 1

Source/WebCore/rendering/style/RenderStyle.h:202:  _visuallyOrdered is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
Total errors found: 1 in 6 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>410149</commentid>
    <comment_count>3</comment_count>
    <who name="Luke Macpherson">macpherson</who>
    <bug_when>2011-05-25 20:23:08 -0700</bug_when>
    <thetext>The style issue is pre-existing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>410388</commentid>
    <comment_count>4</comment_count>
      <attachid>94909</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-05-26 06:26:19 -0700</bug_when>
    <thetext>Comment on attachment 94909
Patch

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

&gt; Source/WebCore/css/CSSPrimitiveValueMappings.h:2592
&gt; +    default:
&gt; +        ASSERT_NOT_REACHED();
&gt; +        return LogicalOrder;

Don&apos;t add a default: so that teh compiler will complain if you forget an enum.  You can always do the &quot;default&quot; behavior after the switch.

&gt; Source/WebCore/rendering/style/RenderStyleConstants.h:431
&gt; +enum ERtlOrdering { LogicalOrder = 0, VisualOrder };

RTL is generally all caps.  So this would be ERTLOrdering.  But I would just drop the E personally. :)  Does this only apply to RTL?  I guess for RTL logical and visual ordering are the same so we don&apos;t care?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>411022</commentid>
    <comment_count>5</comment_count>
      <attachid>94909</attachid>
    <who name="Luke Macpherson">macpherson</who>
    <bug_when>2011-05-26 17:02:25 -0700</bug_when>
    <thetext>Comment on attachment 94909
Patch

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

&gt;&gt; Source/WebCore/rendering/style/RenderStyleConstants.h:431
&gt;&gt; +enum ERtlOrdering { LogicalOrder = 0, VisualOrder };
&gt; 
&gt; RTL is generally all caps.  So this would be ERTLOrdering.  But I would just drop the E personally. :)  Does this only apply to RTL?  I guess for RTL logical and visual ordering are the same so we don&apos;t care?

This is the set of values that can be used for the webkit-rtl-ordering property. But if you want me to drop the RTL bit I don&apos;t mind.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>411048</commentid>
    <comment_count>6</comment_count>
      <attachid>94909</attachid>
    <who name="Luke Macpherson">macpherson</who>
    <bug_when>2011-05-26 17:41:59 -0700</bug_when>
    <thetext>Comment on attachment 94909
Patch

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

&gt;&gt; Source/WebCore/css/CSSPrimitiveValueMappings.h:2592
&gt;&gt; +        return LogicalOrder;
&gt; 
&gt; Don&apos;t add a default: so that teh compiler will complain if you forget an enum.  You can always do the &quot;default&quot; behavior after the switch.

You need it here - m_value.ident has hundreds of possible values - it is the superset of all css values.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>411049</commentid>
    <comment_count>7</comment_count>
      <attachid>95088</attachid>
    <who name="Luke Macpherson">macpherson</who>
    <bug_when>2011-05-26 17:45:26 -0700</bug_when>
    <thetext>Created attachment 95088
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>411050</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-05-26 17:48:17 -0700</bug_when>
    <thetext>Attachment 95088 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCor...&quot; exit_code: 1

Source/WebCore/rendering/style/RenderStyle.h:202:  _visuallyOrdered is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
Total errors found: 1 in 6 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>416172</commentid>
    <comment_count>9</comment_count>
      <attachid>95088</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-06-06 17:40:38 -0700</bug_when>
    <thetext>Comment on attachment 95088
Patch

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

&gt; Source/WebCore/rendering/style/RenderStyle.h:362
&gt; +    Order visuallyOrdered() const { return static_cast&lt;Order&gt;(inherited_flags._visuallyOrdered); }
&gt; +    void setVisuallyOrdered(Order o) { inherited_flags._visuallyOrdered = o; }

The naming gets confused here.  The current names (mostly) look like they take/return bools.  Technically it should be isVisuallyOrdered(), but some old parts of the code don&apos;t follow the &quot;is&quot; style.  If we&apos;re changing thsi to an enum, it makes better sense to name it something like rtlOrdering().  Which I would argue is still better than the old code because it&apos;s not immediately clear that the opposite of visual ordering is logical ordering.

If it&apos;s not too much work, I would rename this to rtlOrdering and setRTLOrdering and we can be done. :)

As is, I&apos;m not sure the bool -&gt; enum conversion is worth it in this case, as it doesnt&apos; really add clarity.  The clarity comes when replacing callsites which pass &quot;true&quot; or &quot;false&quot; to functions which take more than one argument.  In this case, isFoo and setFoo are pretty clear when passed true/false.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>416178</commentid>
    <comment_count>10</comment_count>
    <who name="Luke Macpherson">macpherson</who>
    <bug_when>2011-06-06 17:46:49 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; (From update of attachment 95088 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=95088&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/rendering/style/RenderStyle.h:362
&gt; &gt; +    Order visuallyOrdered() const { return static_cast&lt;Order&gt;(inherited_flags._visuallyOrdered); }
&gt; &gt; +    void setVisuallyOrdered(Order o) { inherited_flags._visuallyOrdered = o; }
&gt; 
&gt; The naming gets confused here.  The current names (mostly) look like they take/return bools.  Technically it should be isVisuallyOrdered(), but some old parts of the code don&apos;t follow the &quot;is&quot; style.  If we&apos;re changing thsi to an enum, it makes better sense to name it something like rtlOrdering().  Which I would argue is still better than the old code because it&apos;s not immediately clear that the opposite of visual ordering is logical ordering.
&gt; 
&gt; If it&apos;s not too much work, I would rename this to rtlOrdering and setRTLOrdering and we can be done. :)

Ok, I&apos;ll update that and get back to you shortly.

&gt; As is, I&apos;m not sure the bool -&gt; enum conversion is worth it in this case, as it doesnt&apos; really add clarity.  The clarity comes when replacing callsites which pass &quot;true&quot; or &quot;false&quot; to functions which take more than one argument.  In this case, isFoo and setFoo are pretty clear when passed true/false.

Pragmatically it is necessary because you can overload the cast to an enum in a sensible way, but you can&apos;t do that with a boolean because a CSSPrimitiveValue could represent a number of different boolean types.  So I need an enum simply to allow the cast to be overloaded sensibly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>416281</commentid>
    <comment_count>11</comment_count>
      <attachid>96192</attachid>
    <who name="Luke Macpherson">macpherson</who>
    <bug_when>2011-06-06 21:10:16 -0700</bug_when>
    <thetext>Created attachment 96192
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>416336</commentid>
    <comment_count>12</comment_count>
      <attachid>96192</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-06-06 22:35:41 -0700</bug_when>
    <thetext>Comment on attachment 96192
Patch

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

Now I have mixed feelings about this again.  I&apos;m amazed that 4 places in our code have diffent names for hte same bool!

Anyway, r=me.  If you are interested in this area of code, obviously someone might want to make all 4 use the same enum/bool/whatever.

&gt; Source/WebCore/css/CSSStyleSelector.cpp:1226
&gt; +    documentStyle-&gt;setRTLOrdering(document-&gt;visuallyOrdered() ? VisualOrder : LogicalOrder);

Two ways to say the same thing.... Sigh.

&gt; Source/WebCore/rendering/RenderBlock.cpp:6311
&gt; +    bool directionalOverride = style-&gt;rtlOrdering() == VisualOrder;

wow.  I love how we have a 3rd confusing way to say the same thing here.

&gt; Source/WebCore/rendering/RenderBlockLineLayout.cpp:964
&gt; +            VisualDirectionOverride override = (style()-&gt;rtlOrdering() == VisualOrder ? (style()-&gt;direction() == LTR ? VisualLeftToRightOverride : VisualRightToLeftOverride) : NoVisualOverride);

What!?  We have a 4th way to express the same concept?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>416338</commentid>
    <comment_count>13</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-06-06 22:36:25 -0700</bug_when>
    <thetext>I would let mitz have a chance to comment before we mark this cq+.  It&apos;s possible he may think this only makes the problem of this bool confusion worse.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>416341</commentid>
    <comment_count>14</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-06-06 22:37:43 -0700</bug_when>
    <thetext>(In reply to comment #12)
&gt; &gt; Source/WebCore/rendering/RenderBlockLineLayout.cpp:964
&gt; &gt; +            VisualDirectionOverride override = (style()-&gt;rtlOrdering() == VisualOrder ? (style()-&gt;direction() == LTR ? VisualLeftToRightOverride : VisualRightToLeftOverride) : NoVisualOverride);
&gt; 
&gt; What!?  We have a 4th way to express the same concept?

I guess this 4th one is a ternary not just a bool... but I expect CSS has the same thing.  auto, LTR or RTL.  I&apos;m not sure what VisualLeftToRightOverride really means.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>418410</commentid>
    <comment_count>15</comment_count>
    <who name="Luke Macpherson">macpherson</who>
    <bug_when>2011-06-09 17:15:46 -0700</bug_when>
    <thetext>(In reply to comment #14)
&gt; (In reply to comment #12)
&gt; &gt; &gt; Source/WebCore/rendering/RenderBlockLineLayout.cpp:964
&gt; &gt; &gt; +            VisualDirectionOverride override = (style()-&gt;rtlOrdering() == VisualOrder ? (style()-&gt;direction() == LTR ? VisualLeftToRightOverride : VisualRightToLeftOverride) : NoVisualOverride);
&gt; &gt; 
&gt; &gt; What!?  We have a 4th way to express the same concept?
&gt; 
&gt; I guess this 4th one is a ternary not just a bool... but I expect CSS has the same thing.  auto, LTR or RTL.  I&apos;m not sure what VisualLeftToRightOverride really means.

(In reply to comment #13)
&gt; I would let mitz have a chance to comment before we mark this cq+.  It&apos;s possible he may think this only makes the problem of this bool confusion worse.

Is 4 days enough time?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>418533</commentid>
    <comment_count>16</comment_count>
      <attachid>96192</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-06-09 23:21:10 -0700</bug_when>
    <thetext>Comment on attachment 96192
Patch

Clearing flags on attachment: 96192

Committed r88526: &lt;http://trac.webkit.org/changeset/88526&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>418534</commentid>
    <comment_count>17</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-06-09 23:21:15 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>94909</attachid>
            <date>2011-05-25 20:05:06 -0700</date>
            <delta_ts>2011-05-26 17:45:14 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-61495-20110526130504.patch</filename>
            <type>text/plain</type>
            <size>6677</size>
            <attacher name="Luke Macpherson">macpherson</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDg3MzQ3KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzEgQEAKKzIwMTEtMDUtMjUgIEx1a2UgTWFj
cGhlcnNvbiAgIDxtYWNwaGVyc29uQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNYWtlIFJlbmRlclN0eWxlIHZpc3VhbGx5T3Jk
ZXJlZCBwcm9wZXJ0eSB1c2UgYW4gZW51bSBpbnN0ZWFkIG9mIGEgYm9vbC4KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYxNDk1CisKKyAgICAgICAgTm8g
bmV3IHRlc3RzIHJlcXVpcmVkIGFzIG5vIGZ1bmN0aW9uYWxpdHkgY2hhbmdlZC4KKworICAgICAg
ICAqIGNzcy9DU1NQcmltaXRpdmVWYWx1ZU1hcHBpbmdzLmg6CisgICAgICAgIFN1cHBvcnQgY2Fz
dCB0by9mcm9tIEVSdGxPcmRlcmluZworICAgICAgICAqIGNzcy9DU1NTdHlsZVNlbGVjdG9yLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1N0eWxlU2VsZWN0b3I6OnN0eWxlRm9yRG9jdW1lbnQp
OgorICAgICAgICBDb252ZXJ0IGZyb20gYm9vbCB0byBlbnVtIHR5cGUuCisgICAgICAgIChXZWJD
b3JlOjpDU1NTdHlsZVNlbGVjdG9yOjphcHBseVByb3BlcnR5KToKKyAgICAgICAgQ29udmVydCB0
byBtYWNybyB0aGF0IHVzZXMgdGhlIGNhc3QgZGVmaW5lZCBpbiBDU1NQcmltaXRpdmVWYWx1ZU1h
cHBpbmdzLgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpE
b2N1bWVudDo6c2V0VmlzdWFsbHlPcmRlcmVkKToKKyAgICAgICAgQ2hhbmdlIGNhbGwgdG8gUmVu
ZGVyU3R5bGU6OnNldFZpc3VhbGx5T3JkZXJlZCB0byB1c2UgZW51bSBwYXJhbWV0ZXIuCisgICAg
ICAgICogcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmg6CisgICAgICAgIChXZWJDb3JlOjpJ
bmhlcml0ZWRGbGFnczo6dmlzdWFsbHlPcmRlcmVkKToKKyAgICAgICAgUmV0dXJuIGVudW0gdHlw
ZS4KKyAgICAgICAgKFdlYkNvcmU6OkluaGVyaXRlZEZsYWdzOjpzZXRWaXN1YWxseU9yZGVyZWQp
OgorICAgICAgICBBY2NlcHQgZW51bSB0eXBlLgorICAgICAgICAoV2ViQ29yZTo6SW5oZXJpdGVk
RmxhZ3M6OmluaXRpYWxWaXN1YWxseU9yZGVyZWQpOgorICAgICAgICAqIHJlbmRlcmluZy9zdHls
ZS9SZW5kZXJTdHlsZUNvbnN0YW50cy5oOgorICAgICAgICBEZWZpbmUgZW51bSB0eXBlLgorCiAy
MDExLTA1LTI1ICBTYWlsZXNoIEFncmF3YWwgIDxzYWlsQGNocm9taXVtLm9yZz4KIAogICAgICAg
ICBSZXZpZXdlZCBieSBUb255IENoYW5nLgpJbmRleDogU291cmNlL1dlYkNvcmUvY3NzL0NTU1By
aW1pdGl2ZVZhbHVlTWFwcGluZ3MuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTUHJpbWl0aXZlVmFsdWVNYXBwaW5ncy5oCShyZXZpc2lvbiA4NzI0NSkKKysrIFNvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZU1hcHBpbmdzLmgJKHdvcmtpbmcgY29weSkKQEAg
LTI1ODAsNiArMjU4MCwzMyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6
Q1NTCiAgICAgfQogfQogICAgIAordGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6
Om9wZXJhdG9yIEVSdGxPcmRlcmluZygpIGNvbnN0Cit7CisgICAgc3dpdGNoIChtX3ZhbHVlLmlk
ZW50KSB7CisgICAgY2FzZSBDU1NWYWx1ZUxvZ2ljYWw6CisgICAgICAgIHJldHVybiBMb2dpY2Fs
T3JkZXI7CisgICAgY2FzZSBDU1NWYWx1ZVZpc3VhbDoKKyAgICAgICAgcmV0dXJuIFZpc3VhbE9y
ZGVyOworICAgIGRlZmF1bHQ6CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAg
ICByZXR1cm4gTG9naWNhbE9yZGVyOworICAgIH0KK30KKwordGVtcGxhdGU8PiBpbmxpbmUgQ1NT
UHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKEVSdGxPcmRlcmluZyBlKQorICAgIDog
bV90eXBlKENTU19JREVOVCkKKyAgICAsIG1faGFzQ2FjaGVkQ1NTVGV4dChmYWxzZSkKK3sKKyAg
ICBzd2l0Y2ggKGUpIHsKKyAgICBjYXNlIExvZ2ljYWxPcmRlcjoKKyAgICAgICAgbV92YWx1ZS5p
ZGVudCA9IENTU1ZhbHVlTG9naWNhbDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBWaXN1YWxP
cmRlcjoKKyAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlVmlzdWFsOworICAgICAgICBi
cmVhazsKKyAgICB9Cit9CisKIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpv
cGVyYXRvciBFU3BlYWsoKSBjb25zdAogewogICAgIHN3aXRjaCAobV92YWx1ZS5pZGVudCkgewpJ
bmRleDogU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcAkocmV2aXNpb24gODcy
NDUpCisrKyBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTEyMjAsNyArMTIyMCw3IEBAIFBhc3NSZWZQdHI8UmVuZGVyU3R5bGU+IENTU1N0
eWxlU2VsZWN0b3IKIAogICAgIFJlZlB0cjxSZW5kZXJTdHlsZT4gZG9jdW1lbnRTdHlsZSA9IFJl
bmRlclN0eWxlOjpjcmVhdGUoKTsKICAgICBkb2N1bWVudFN0eWxlLT5zZXREaXNwbGF5KEJMT0NL
KTsKLSAgICBkb2N1bWVudFN0eWxlLT5zZXRWaXN1YWxseU9yZGVyZWQoZG9jdW1lbnQtPnZpc3Vh
bGx5T3JkZXJlZCgpKTsKKyAgICBkb2N1bWVudFN0eWxlLT5zZXRWaXN1YWxseU9yZGVyZWQoZG9j
dW1lbnQtPnZpc3VhbGx5T3JkZXJlZCgpID8gVmlzdWFsT3JkZXIgOiBMb2dpY2FsT3JkZXIpOwog
ICAgIGRvY3VtZW50U3R5bGUtPnNldFpvb20oZnJhbWUgPyBmcmFtZS0+cGFnZVpvb21GYWN0b3Io
KSA6IDEpOwogICAgIGRvY3VtZW50U3R5bGUtPnNldFBhZ2VTY2FsZVRyYW5zZm9ybShmcmFtZSA/
IGZyYW1lLT5wYWdlU2NhbGVGYWN0b3IoKSA6IDEpOwogICAgIGRvY3VtZW50U3R5bGUtPnNldFVz
ZXJNb2RpZnkoZG9jdW1lbnQtPmluRGVzaWduTW9kZSgpID8gUkVBRF9XUklURSA6IFJFQURfT05M
WSk7CkBAIC01MTc1LDEwICs1MTc1LDcgQEAgdm9pZCBDU1NTdHlsZVNlbGVjdG9yOjphcHBseVBy
b3BlcnR5KGludAogICAgIH0KICNlbmRpZiAgICAgICAgCiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdl
YmtpdFJ0bE9yZGVyaW5nOgotICAgICAgICBIQU5ETEVfSU5IRVJJVF9BTkRfSU5JVElBTCh2aXN1
YWxseU9yZGVyZWQsIFZpc3VhbGx5T3JkZXJlZCkKLSAgICAgICAgaWYgKCFwcmltaXRpdmVWYWx1
ZSB8fCAhcHJpbWl0aXZlVmFsdWUtPmdldElkZW50KCkpCi0gICAgICAgICAgICByZXR1cm47Ci0g
ICAgICAgIG1fc3R5bGUtPnNldFZpc3VhbGx5T3JkZXJlZChwcmltaXRpdmVWYWx1ZS0+Z2V0SWRl
bnQoKSA9PSBDU1NWYWx1ZVZpc3VhbCk7CisgICAgICAgIEhBTkRMRV9JTkhFUklUX0FORF9JTklU
SUFMX0FORF9QUklNSVRJVkUodmlzdWFsbHlPcmRlcmVkLCBWaXN1YWxseU9yZGVyZWQpCiAgICAg
ICAgIHJldHVybjsKICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0VGV4dFN0cm9rZVdpZHRoOiB7
CiAgICAgICAgIEhBTkRMRV9JTkhFUklUX0FORF9JTklUSUFMKHRleHRTdHJva2VXaWR0aCwgVGV4
dFN0cm9rZVdpZHRoKQpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCShyZXZpc2lvbiA4NzI0
NSkKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTE5MTIsNyArMTkxMiw3IEBAIHZvaWQgRG9jdW1lbnQ6OnNldFZpc3VhbGx5T3JkZXJlZCgpCiB7
CiAgICAgbV92aXN1YWxseU9yZGVyZWQgPSB0cnVlOwogICAgIGlmIChyZW5kZXJlcigpKQotICAg
ICAgICByZW5kZXJlcigpLT5zdHlsZSgpLT5zZXRWaXN1YWxseU9yZGVyZWQodHJ1ZSk7CisgICAg
ICAgIHJlbmRlcmVyKCktPnN0eWxlKCktPnNldFZpc3VhbGx5T3JkZXJlZChWaXN1YWxPcmRlcik7
CiB9CiAKIFBhc3NSZWZQdHI8RG9jdW1lbnRQYXJzZXI+IERvY3VtZW50OjpjcmVhdGVQYXJzZXIo
KQpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgJ
KHJldmlzaW9uIDg3MjQ1KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRl
clN0eWxlLmgJKHdvcmtpbmcgY29weSkKQEAgLTE5OSw3ICsxOTksNyBAQCBwcm90ZWN0ZWQ6CiAg
ICAgICAgIC8vIDM0IGJpdHMKICAgICAgICAgCiAgICAgICAgIC8vIG5vbiBDU1MyIGluaGVyaXRl
ZAotICAgICAgICBib29sIF92aXN1YWxseU9yZGVyZWQgOiAxOworICAgICAgICB1bnNpZ25lZCBf
dmlzdWFsbHlPcmRlcmVkIDogMTsgLy8gRVJ0bE9yZGVyaW5nCiAgICAgICAgIGJvb2wgX2ZvcmNl
X2JhY2tncm91bmRzX3RvX3doaXRlIDogMTsKICAgICAgICAgdW5zaWduZWQgX3BvaW50ZXJFdmVu
dHMgOiA0OyAvLyBFUG9pbnRlckV2ZW50cwogICAgICAgICB1bnNpZ25lZCBfaW5zaWRlTGluayA6
IDI7IC8vIEVJbnNpZGVMaW5rCkBAIC0zNTgsOCArMzU4LDggQEAgcHVibGljOgogICAgICAgICBy
ZXR1cm4gaGFzQmFja2dyb3VuZEltYWdlKCk7CiAgICAgfQogCi0gICAgYm9vbCB2aXN1YWxseU9y
ZGVyZWQoKSBjb25zdCB7IHJldHVybiBpbmhlcml0ZWRfZmxhZ3MuX3Zpc3VhbGx5T3JkZXJlZDsg
fQotICAgIHZvaWQgc2V0VmlzdWFsbHlPcmRlcmVkKGJvb2wgYikgeyBpbmhlcml0ZWRfZmxhZ3Mu
X3Zpc3VhbGx5T3JkZXJlZCA9IGI7IH0KKyAgICBFUnRsT3JkZXJpbmcgdmlzdWFsbHlPcmRlcmVk
KCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8RVJ0bE9yZGVyaW5nPihpbmhlcml0ZWRfZmxh
Z3MuX3Zpc3VhbGx5T3JkZXJlZCk7IH0KKyAgICB2b2lkIHNldFZpc3VhbGx5T3JkZXJlZChFUnRs
T3JkZXJpbmcgbykgeyBpbmhlcml0ZWRfZmxhZ3MuX3Zpc3VhbGx5T3JkZXJlZCA9IG87IH0KIAog
ICAgIGJvb2wgaXNTdHlsZUF2YWlsYWJsZSgpIGNvbnN0OwogCkBAIC0xMjk5LDcgKzEyOTksNyBA
QCBwdWJsaWM6CiAgICAgc3RhdGljIEVCb3JkZXJGaXQgaW5pdGlhbEJvcmRlckZpdCgpIHsgcmV0
dXJuIEJvcmRlckZpdEJvcmRlcjsgfQogICAgIHN0YXRpYyBFUmVzaXplIGluaXRpYWxSZXNpemUo
KSB7IHJldHVybiBSRVNJWkVfTk9ORTsgfQogICAgIHN0YXRpYyBDb250cm9sUGFydCBpbml0aWFs
QXBwZWFyYW5jZSgpIHsgcmV0dXJuIE5vQ29udHJvbFBhcnQ7IH0KLSAgICBzdGF0aWMgYm9vbCBp
bml0aWFsVmlzdWFsbHlPcmRlcmVkKCkgeyByZXR1cm4gZmFsc2U7IH0KKyAgICBzdGF0aWMgRVJ0
bE9yZGVyaW5nIGluaXRpYWxWaXN1YWxseU9yZGVyZWQoKSB7IHJldHVybiBMb2dpY2FsT3JkZXI7
IH0KICAgICBzdGF0aWMgZmxvYXQgaW5pdGlhbFRleHRTdHJva2VXaWR0aCgpIHsgcmV0dXJuIDA7
IH0KICAgICBzdGF0aWMgdW5zaWduZWQgc2hvcnQgaW5pdGlhbENvbHVtbkNvdW50KCkgeyByZXR1
cm4gMTsgfQogICAgIHN0YXRpYyBib29sIGluaXRpYWxDb2x1bW5TcGFuKCkgeyByZXR1cm4gZmFs
c2U7IH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZUNv
bnN0YW50cy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9S
ZW5kZXJTdHlsZUNvbnN0YW50cy5oCShyZXZpc2lvbiA4NzI0NSkKKysrIFNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZUNvbnN0YW50cy5oCSh3b3JraW5nIGNvcHkpCkBA
IC00MjcsNyArNDI3LDkgQEAgZW51bSBUZXh0RW1waGFzaXNNYXJrIHsgVGV4dEVtcGhhc2lzTWFy
awogZW51bSBUZXh0RW1waGFzaXNQb3NpdGlvbiB7IFRleHRFbXBoYXNpc1Bvc2l0aW9uT3Zlciwg
VGV4dEVtcGhhc2lzUG9zaXRpb25VbmRlciB9OwogCiBlbnVtIEVJbWFnZVJlbmRlcmluZyB7IElt
YWdlUmVuZGVyaW5nQXV0bywgSW1hZ2VSZW5kZXJpbmdPcHRpbWl6ZVNwZWVkLCBJbWFnZVJlbmRl
cmluZ09wdGltaXplUXVhbGl0eSwgSW1hZ2VSZW5kZXJpbmdPcHRpbWl6ZUNvbnRyYXN0IH07Ci0g
ICAgCisKK2VudW0gRVJ0bE9yZGVyaW5nIHsgTG9naWNhbE9yZGVyID0gMCwgVmlzdWFsT3JkZXIg
fTsKKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gUmVuZGVyU3R5bGVDb25z
dGFudHNfaAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>95088</attachid>
            <date>2011-05-26 17:45:26 -0700</date>
            <delta_ts>2011-06-06 21:10:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-61495-20110527104523.patch</filename>
            <type>text/plain</type>
            <size>6619</size>
            <attacher name="Luke Macpherson">macpherson</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDg3NDUzKQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzEgQEAKKzIwMTEtMDUtMjYgIEx1a2UgTWFj
cGhlcnNvbiAgIDxtYWNwaGVyc29uQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNYWtlIFJlbmRlclN0eWxlIHZpc3VhbGx5T3Jk
ZXJlZCBwcm9wZXJ0eSB1c2UgYW4gZW51bSBpbnN0ZWFkIG9mIGEgYm9vbC4KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYxNDk1CisKKyAgICAgICAgTm8g
bmV3IHRlc3RzIHJlcXVpcmVkIGFzIG5vIGZ1bmN0aW9uYWxpdHkgY2hhbmdlZC4KKworICAgICAg
ICAqIGNzcy9DU1NQcmltaXRpdmVWYWx1ZU1hcHBpbmdzLmg6CisgICAgICAgIFN1cHBvcnQgY2Fz
dCB0by9mcm9tIE9yZGVyCisgICAgICAgICogY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6Q1NTU3R5bGVTZWxlY3Rvcjo6c3R5bGVGb3JEb2N1bWVudCk6CisgICAg
ICAgIENvbnZlcnQgZnJvbSBib29sIHRvIGVudW0gdHlwZS4KKyAgICAgICAgKFdlYkNvcmU6OkNT
U1N0eWxlU2VsZWN0b3I6OmFwcGx5UHJvcGVydHkpOgorICAgICAgICBDb252ZXJ0IHRvIG1hY3Jv
IHRoYXQgdXNlcyB0aGUgY2FzdCBkZWZpbmVkIGluIENTU1ByaW1pdGl2ZVZhbHVlTWFwcGluZ3Mu
CisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50
OjpzZXRWaXN1YWxseU9yZGVyZWQpOgorICAgICAgICBDaGFuZ2UgY2FsbCB0byBSZW5kZXJTdHls
ZTo6c2V0VmlzdWFsbHlPcmRlcmVkIHRvIHVzZSBlbnVtIHBhcmFtZXRlci4KKyAgICAgICAgKiBy
ZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OkluaGVyaXRl
ZEZsYWdzOjp2aXN1YWxseU9yZGVyZWQpOgorICAgICAgICBSZXR1cm4gZW51bSB0eXBlLgorICAg
ICAgICAoV2ViQ29yZTo6SW5oZXJpdGVkRmxhZ3M6OnNldFZpc3VhbGx5T3JkZXJlZCk6CisgICAg
ICAgIEFjY2VwdCBlbnVtIHR5cGUuCisgICAgICAgIChXZWJDb3JlOjpJbmhlcml0ZWRGbGFnczo6
aW5pdGlhbFZpc3VhbGx5T3JkZXJlZCk6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1JlbmRl
clN0eWxlQ29uc3RhbnRzLmg6CisgICAgICAgIERlZmluZSBlbnVtIHR5cGUuCisKIDIwMTEtMDUt
MjYgIEFubmllIFN1bGxpdmFuICA8c3VsbGl2YW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJl
dmlld2VkIGJ5IFJ5b3N1a2UgTml3YS4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmlt
aXRpdmVWYWx1ZU1hcHBpbmdzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3NzL0NT
U1ByaW1pdGl2ZVZhbHVlTWFwcGluZ3MuaAkocmV2aXNpb24gODc0NTMpCisrKyBTb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWVNYXBwaW5ncy5oCSh3b3JraW5nIGNvcHkpCkBAIC0y
NTgwLDYgKzI1ODAsMzMgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNT
UwogICAgIH0KIH0KICAgICAKK3RlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpv
cGVyYXRvciBPcmRlcigpIGNvbnN0Cit7CisgICAgc3dpdGNoIChtX3ZhbHVlLmlkZW50KSB7Cisg
ICAgY2FzZSBDU1NWYWx1ZUxvZ2ljYWw6CisgICAgICAgIHJldHVybiBMb2dpY2FsT3JkZXI7Cisg
ICAgY2FzZSBDU1NWYWx1ZVZpc3VhbDoKKyAgICAgICAgcmV0dXJuIFZpc3VhbE9yZGVyOworICAg
IGRlZmF1bHQ6CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICByZXR1cm4g
TG9naWNhbE9yZGVyOworICAgIH0KK30KKwordGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZl
VmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKE9yZGVyIGUpCisgICAgOiBtX3R5cGUoQ1NTX0lERU5U
KQorICAgICwgbV9oYXNDYWNoZWRDU1NUZXh0KGZhbHNlKQoreworICAgIHN3aXRjaCAoZSkgewor
ICAgIGNhc2UgTG9naWNhbE9yZGVyOgorICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVM
b2dpY2FsOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFZpc3VhbE9yZGVyOgorICAgICAgICBt
X3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVWaXN1YWw7CisgICAgICAgIGJyZWFrOworICAgIH0KK30K
KwogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVTcGVhaygp
IGNvbnN0CiB7CiAgICAgc3dpdGNoIChtX3ZhbHVlLmlkZW50KSB7CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwCShyZXZpc2lvbiA4NzQ1MykKKysrIFNvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTIyMCw3
ICsxMjIwLDcgQEAgUGFzc1JlZlB0cjxSZW5kZXJTdHlsZT4gQ1NTU3R5bGVTZWxlY3RvcgogCiAg
ICAgUmVmUHRyPFJlbmRlclN0eWxlPiBkb2N1bWVudFN0eWxlID0gUmVuZGVyU3R5bGU6OmNyZWF0
ZSgpOwogICAgIGRvY3VtZW50U3R5bGUtPnNldERpc3BsYXkoQkxPQ0spOwotICAgIGRvY3VtZW50
U3R5bGUtPnNldFZpc3VhbGx5T3JkZXJlZChkb2N1bWVudC0+dmlzdWFsbHlPcmRlcmVkKCkpOwor
ICAgIGRvY3VtZW50U3R5bGUtPnNldFZpc3VhbGx5T3JkZXJlZChkb2N1bWVudC0+dmlzdWFsbHlP
cmRlcmVkKCkgPyBWaXN1YWxPcmRlciA6IExvZ2ljYWxPcmRlcik7CiAgICAgZG9jdW1lbnRTdHls
ZS0+c2V0Wm9vbShmcmFtZSA/IGZyYW1lLT5wYWdlWm9vbUZhY3RvcigpIDogMSk7CiAgICAgZG9j
dW1lbnRTdHlsZS0+c2V0UGFnZVNjYWxlVHJhbnNmb3JtKGZyYW1lID8gZnJhbWUtPnBhZ2VTY2Fs
ZUZhY3RvcigpIDogMSk7CiAgICAgZG9jdW1lbnRTdHlsZS0+c2V0VXNlck1vZGlmeShkb2N1bWVu
dC0+aW5EZXNpZ25Nb2RlKCkgPyBSRUFEX1dSSVRFIDogUkVBRF9PTkxZKTsKQEAgLTUwOTMsMTAg
KzUwOTMsNyBAQCB2b2lkIENTU1N0eWxlU2VsZWN0b3I6OmFwcGx5UHJvcGVydHkoaW50CiAgICAg
fQogI2VuZGlmICAgICAgICAKICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0UnRsT3JkZXJpbmc6
Ci0gICAgICAgIEhBTkRMRV9JTkhFUklUX0FORF9JTklUSUFMKHZpc3VhbGx5T3JkZXJlZCwgVmlz
dWFsbHlPcmRlcmVkKQotICAgICAgICBpZiAoIXByaW1pdGl2ZVZhbHVlIHx8ICFwcmltaXRpdmVW
YWx1ZS0+Z2V0SWRlbnQoKSkKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgbV9zdHlsZS0+
c2V0VmlzdWFsbHlPcmRlcmVkKHByaW1pdGl2ZVZhbHVlLT5nZXRJZGVudCgpID09IENTU1ZhbHVl
VmlzdWFsKTsKKyAgICAgICAgSEFORExFX0lOSEVSSVRfQU5EX0lOSVRJQUxfQU5EX1BSSU1JVElW
RSh2aXN1YWxseU9yZGVyZWQsIFZpc3VhbGx5T3JkZXJlZCkKICAgICAgICAgcmV0dXJuOwogICAg
IGNhc2UgQ1NTUHJvcGVydHlXZWJraXRUZXh0U3Ryb2tlV2lkdGg6IHsKICAgICAgICAgSEFORExF
X0lOSEVSSVRfQU5EX0lOSVRJQUwodGV4dFN0cm9rZVdpZHRoLCBUZXh0U3Ryb2tlV2lkdGgpCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAJKHJldmlzaW9uIDg3NDUzKQorKysgU291cmNlL1dl
YkNvcmUvZG9tL0RvY3VtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTkyMSw3ICsxOTIxLDcg
QEAgdm9pZCBEb2N1bWVudDo6c2V0VmlzdWFsbHlPcmRlcmVkKCkKIHsKICAgICBtX3Zpc3VhbGx5
T3JkZXJlZCA9IHRydWU7CiAgICAgaWYgKHJlbmRlcmVyKCkpCi0gICAgICAgIHJlbmRlcmVyKCkt
PnN0eWxlKCktPnNldFZpc3VhbGx5T3JkZXJlZCh0cnVlKTsKKyAgICAgICAgcmVuZGVyZXIoKS0+
c3R5bGUoKS0+c2V0VmlzdWFsbHlPcmRlcmVkKFZpc3VhbE9yZGVyKTsKIH0KIAogUGFzc1JlZlB0
cjxEb2N1bWVudFBhcnNlcj4gRG9jdW1lbnQ6OmNyZWF0ZVBhcnNlcigpCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaAkocmV2aXNpb24gODc0NTMp
CisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMTk5LDcgKzE5OSw3IEBAIHByb3RlY3RlZDoKICAgICAgICAgLy8gMzQgYml0
cwogICAgICAgICAKICAgICAgICAgLy8gbm9uIENTUzIgaW5oZXJpdGVkCi0gICAgICAgIGJvb2wg
X3Zpc3VhbGx5T3JkZXJlZCA6IDE7CisgICAgICAgIHVuc2lnbmVkIF92aXN1YWxseU9yZGVyZWQg
OiAxOyAvLyBPcmRlcgogICAgICAgICBib29sIF9mb3JjZV9iYWNrZ3JvdW5kc190b193aGl0ZSA6
IDE7CiAgICAgICAgIHVuc2lnbmVkIF9wb2ludGVyRXZlbnRzIDogNDsgLy8gRVBvaW50ZXJFdmVu
dHMKICAgICAgICAgdW5zaWduZWQgX2luc2lkZUxpbmsgOiAyOyAvLyBFSW5zaWRlTGluawpAQCAt
MzU4LDggKzM1OCw4IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGhhc0JhY2tncm91bmRJbWFn
ZSgpOwogICAgIH0KIAotICAgIGJvb2wgdmlzdWFsbHlPcmRlcmVkKCkgY29uc3QgeyByZXR1cm4g
aW5oZXJpdGVkX2ZsYWdzLl92aXN1YWxseU9yZGVyZWQ7IH0KLSAgICB2b2lkIHNldFZpc3VhbGx5
T3JkZXJlZChib29sIGIpIHsgaW5oZXJpdGVkX2ZsYWdzLl92aXN1YWxseU9yZGVyZWQgPSBiOyB9
CisgICAgT3JkZXIgdmlzdWFsbHlPcmRlcmVkKCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8
T3JkZXI+KGluaGVyaXRlZF9mbGFncy5fdmlzdWFsbHlPcmRlcmVkKTsgfQorICAgIHZvaWQgc2V0
VmlzdWFsbHlPcmRlcmVkKE9yZGVyIG8pIHsgaW5oZXJpdGVkX2ZsYWdzLl92aXN1YWxseU9yZGVy
ZWQgPSBvOyB9CiAKICAgICBib29sIGlzU3R5bGVBdmFpbGFibGUoKSBjb25zdDsKIApAQCAtMTI5
OSw3ICsxMjk5LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBFQm9yZGVyRml0IGluaXRpYWxCb3Jk
ZXJGaXQoKSB7IHJldHVybiBCb3JkZXJGaXRCb3JkZXI7IH0KICAgICBzdGF0aWMgRVJlc2l6ZSBp
bml0aWFsUmVzaXplKCkgeyByZXR1cm4gUkVTSVpFX05PTkU7IH0KICAgICBzdGF0aWMgQ29udHJv
bFBhcnQgaW5pdGlhbEFwcGVhcmFuY2UoKSB7IHJldHVybiBOb0NvbnRyb2xQYXJ0OyB9Ci0gICAg
c3RhdGljIGJvb2wgaW5pdGlhbFZpc3VhbGx5T3JkZXJlZCgpIHsgcmV0dXJuIGZhbHNlOyB9Cisg
ICAgc3RhdGljIE9yZGVyIGluaXRpYWxWaXN1YWxseU9yZGVyZWQoKSB7IHJldHVybiBMb2dpY2Fs
T3JkZXI7IH0KICAgICBzdGF0aWMgZmxvYXQgaW5pdGlhbFRleHRTdHJva2VXaWR0aCgpIHsgcmV0
dXJuIDA7IH0KICAgICBzdGF0aWMgdW5zaWduZWQgc2hvcnQgaW5pdGlhbENvbHVtbkNvdW50KCkg
eyByZXR1cm4gMTsgfQogICAgIHN0YXRpYyBib29sIGluaXRpYWxDb2x1bW5TcGFuKCkgeyByZXR1
cm4gZmFsc2U7IH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJT
dHlsZUNvbnN0YW50cy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dHlsZS9SZW5kZXJTdHlsZUNvbnN0YW50cy5oCShyZXZpc2lvbiA4NzQ1MykKKysrIFNvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZUNvbnN0YW50cy5oCSh3b3JraW5nIGNv
cHkpCkBAIC00MjcsNyArNDI3LDkgQEAgZW51bSBUZXh0RW1waGFzaXNNYXJrIHsgVGV4dEVtcGhh
c2lzTWFyawogZW51bSBUZXh0RW1waGFzaXNQb3NpdGlvbiB7IFRleHRFbXBoYXNpc1Bvc2l0aW9u
T3ZlciwgVGV4dEVtcGhhc2lzUG9zaXRpb25VbmRlciB9OwogCiBlbnVtIEVJbWFnZVJlbmRlcmlu
ZyB7IEltYWdlUmVuZGVyaW5nQXV0bywgSW1hZ2VSZW5kZXJpbmdPcHRpbWl6ZVNwZWVkLCBJbWFn
ZVJlbmRlcmluZ09wdGltaXplUXVhbGl0eSwgSW1hZ2VSZW5kZXJpbmdPcHRpbWl6ZUNvbnRyYXN0
IH07Ci0gICAgCisKK2VudW0gT3JkZXIgeyBMb2dpY2FsT3JkZXIgPSAwLCBWaXN1YWxPcmRlciB9
OworCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBSZW5kZXJTdHlsZUNvbnN0
YW50c19oCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>96192</attachid>
            <date>2011-06-06 21:10:16 -0700</date>
            <delta_ts>2011-06-09 23:21:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-61495-20110607141013.patch</filename>
            <type>text/plain</type>
            <size>13839</size>
            <attacher name="Luke Macpherson">macpherson</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDg4MjA2KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjcgQEAKKzIwMTEtMDYtMDYgIEx1a2UgTWFj
cGhlcnNvbiAgIDxtYWNwaGVyc29uQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW5hbWUgUmVuZGVyU3R5bGUgdmlzdWFsbHlP
cmRlcmVkIHByb3BlcnR5IGFuZCB1c2UgYW4gZW51bSBpbnN0ZWFkIG9mIGEgYm9vbC4KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYxNDk1CisKKyAgICAg
ICAgTm8gbmV3IHRlc3RzIHJlcXVpcmVkIGFzIG5vIGZ1bmN0aW9uYWxpdHkgY2hhbmdlZC4KKwor
ICAgICAgICAqIGNzcy9DU1NQcmltaXRpdmVWYWx1ZU1hcHBpbmdzLmg6CisgICAgICAgIFN1cHBv
cnQgY2FzdCB0by9mcm9tIE9yZGVyCisgICAgICAgICogY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Q1NTU3R5bGVTZWxlY3Rvcjo6c3R5bGVGb3JEb2N1bWVudCk6
CisgICAgICAgIENvbnZlcnQgZnJvbSBib29sIHRvIGVudW0gdHlwZS4KKyAgICAgICAgKFdlYkNv
cmU6OkNTU1N0eWxlU2VsZWN0b3I6OmFwcGx5UHJvcGVydHkpOgorICAgICAgICBDb252ZXJ0IHRv
IG1hY3JvIHRoYXQgdXNlcyB0aGUgY2FzdCBkZWZpbmVkIGluIENTU1ByaW1pdGl2ZVZhbHVlTWFw
cGluZ3MuCisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRv
Y3VtZW50OjpzZXRWaXN1YWxseU9yZGVyZWQpOgorICAgICAgICBDaGFuZ2UgY2FsbCB0byBSZW5k
ZXJTdHlsZTo6c2V0UlRMT3JkZXJpbmcgdXNpbmcgZW51bSBwYXJhbWV0ZXIuCisgICAgICAgICog
cmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmg6CisgICAgICAgIHJlbmFtZSB2aXN1YWxseU9y
ZGVyZWQgcHJvZXJ0aWVzIHJ0bE9yZGVyaW5nIGFuZCB1c2UgYXBwcm9wcmlhdGUgZW51bSB0eXBl
cy4KKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGVDb25zdGFudHMuaDoKKyAg
ICAgICAgRGVmaW5lIGVudW0gdHlwZS4KKwogMjAxMS0wNi0wNiAgRW1pbCBBIEVrbHVuZCAgPGVh
ZUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBTZWlkZWwuCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9u
LmNwcAkocmV2aXNpb24gODgyMDYpCisrKyBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRT
dHlsZURlY2xhcmF0aW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTU2OCw5ICsxNTY4LDcgQEAg
UGFzc1JlZlB0cjxDU1NWYWx1ZT4gQ1NTQ29tcHV0ZWRTdHlsZURlYwogICAgICAgICAgICAgcmV0
dXJuIGxpc3QucmVsZWFzZSgpOwogICAgICAgICB9CiAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlX
ZWJraXRSdGxPcmRlcmluZzoKLSAgICAgICAgICAgIGlmIChzdHlsZS0+dmlzdWFsbHlPcmRlcmVk
KCkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIHByaW1pdGl2ZVZhbHVlQ2FjaGUtPmNyZWF0ZUlk
ZW50aWZpZXJWYWx1ZShDU1NWYWx1ZVZpc3VhbCk7Ci0gICAgICAgICAgICByZXR1cm4gcHJpbWl0
aXZlVmFsdWVDYWNoZS0+Y3JlYXRlSWRlbnRpZmllclZhbHVlKENTU1ZhbHVlTG9naWNhbCk7Cisg
ICAgICAgICAgICByZXR1cm4gcHJpbWl0aXZlVmFsdWVDYWNoZS0+Y3JlYXRlSWRlbnRpZmllclZh
bHVlKHN0eWxlLT5ydGxPcmRlcmluZygpID8gQ1NTVmFsdWVWaXN1YWwgOiBDU1NWYWx1ZUxvZ2lj
YWwpOwogICAgICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0VXNlckRyYWc6CiAgICAgICAgICAg
ICByZXR1cm4gcHJpbWl0aXZlVmFsdWVDYWNoZS0+Y3JlYXRlVmFsdWUoc3R5bGUtPnVzZXJEcmFn
KCkpOwogICAgICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0VXNlclNlbGVjdDoKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZU1hcHBpbmdzLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlTWFwcGluZ3MuaAkocmV2aXNp
b24gODgyMDYpCisrKyBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWVNYXBwaW5n
cy5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNTcyLDYgKzI1NzIsMzMgQEAgdGVtcGxhdGU8PiBpbmxp
bmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTUwogICAgIH0KIH0KICAgICAKK3RlbXBsYXRlPD4gaW5s
aW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBPcmRlcigpIGNvbnN0Cit7CisgICAgc3dp
dGNoIChtX3ZhbHVlLmlkZW50KSB7CisgICAgY2FzZSBDU1NWYWx1ZUxvZ2ljYWw6CisgICAgICAg
IHJldHVybiBMb2dpY2FsT3JkZXI7CisgICAgY2FzZSBDU1NWYWx1ZVZpc3VhbDoKKyAgICAgICAg
cmV0dXJuIFZpc3VhbE9yZGVyOworICAgIGRlZmF1bHQ6CisgICAgICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOworICAgICAgICByZXR1cm4gTG9naWNhbE9yZGVyOworICAgIH0KK30KKwordGVtcGxh
dGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKE9yZGVyIGUp
CisgICAgOiBtX3R5cGUoQ1NTX0lERU5UKQorICAgICwgbV9oYXNDYWNoZWRDU1NUZXh0KGZhbHNl
KQoreworICAgIHN3aXRjaCAoZSkgeworICAgIGNhc2UgTG9naWNhbE9yZGVyOgorICAgICAgICBt
X3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVMb2dpY2FsOworICAgICAgICBicmVhazsKKyAgICBjYXNl
IFZpc3VhbE9yZGVyOgorICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVWaXN1YWw7Cisg
ICAgICAgIGJyZWFrOworICAgIH0KK30KKwogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZl
VmFsdWU6Om9wZXJhdG9yIEVTcGVhaygpIGNvbnN0CiB7CiAgICAgc3dpdGNoIChtX3ZhbHVlLmlk
ZW50KSB7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwCShyZXZp
c2lvbiA4ODIwNikKKysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMTIyMyw3ICsxMjIzLDcgQEAgUGFzc1JlZlB0cjxSZW5kZXJTdHls
ZT4gQ1NTU3R5bGVTZWxlY3RvcgogCiAgICAgUmVmUHRyPFJlbmRlclN0eWxlPiBkb2N1bWVudFN0
eWxlID0gUmVuZGVyU3R5bGU6OmNyZWF0ZSgpOwogICAgIGRvY3VtZW50U3R5bGUtPnNldERpc3Bs
YXkoQkxPQ0spOwotICAgIGRvY3VtZW50U3R5bGUtPnNldFZpc3VhbGx5T3JkZXJlZChkb2N1bWVu
dC0+dmlzdWFsbHlPcmRlcmVkKCkpOworICAgIGRvY3VtZW50U3R5bGUtPnNldFJUTE9yZGVyaW5n
KGRvY3VtZW50LT52aXN1YWxseU9yZGVyZWQoKSA/IFZpc3VhbE9yZGVyIDogTG9naWNhbE9yZGVy
KTsKICAgICBkb2N1bWVudFN0eWxlLT5zZXRab29tKGZyYW1lID8gZnJhbWUtPnBhZ2Vab29tRmFj
dG9yKCkgOiAxKTsKICAgICBkb2N1bWVudFN0eWxlLT5zZXRQYWdlU2NhbGVUcmFuc2Zvcm0oZnJh
bWUgPyBmcmFtZS0+cGFnZVNjYWxlRmFjdG9yKCkgOiAxKTsKICAgICBkb2N1bWVudFN0eWxlLT5z
ZXRVc2VyTW9kaWZ5KGRvY3VtZW50LT5pbkRlc2lnbk1vZGUoKSA/IFJFQURfV1JJVEUgOiBSRUFE
X09OTFkpOwpAQCAtNTA3MCwxMCArNTA3MCw3IEBAIHZvaWQgQ1NTU3R5bGVTZWxlY3Rvcjo6YXBw
bHlQcm9wZXJ0eShpbnQKICAgICB9CiAjZW5kaWYgICAgICAgIAogICAgIGNhc2UgQ1NTUHJvcGVy
dHlXZWJraXRSdGxPcmRlcmluZzoKLSAgICAgICAgSEFORExFX0lOSEVSSVRfQU5EX0lOSVRJQUwo
dmlzdWFsbHlPcmRlcmVkLCBWaXN1YWxseU9yZGVyZWQpCi0gICAgICAgIGlmICghcHJpbWl0aXZl
VmFsdWUgfHwgIXByaW1pdGl2ZVZhbHVlLT5nZXRJZGVudCgpKQotICAgICAgICAgICAgcmV0dXJu
OwotICAgICAgICBtX3N0eWxlLT5zZXRWaXN1YWxseU9yZGVyZWQocHJpbWl0aXZlVmFsdWUtPmdl
dElkZW50KCkgPT0gQ1NTVmFsdWVWaXN1YWwpOworICAgICAgICBIQU5ETEVfSU5IRVJJVF9BTkRf
SU5JVElBTF9BTkRfUFJJTUlUSVZFKHJ0bE9yZGVyaW5nLCBSVExPcmRlcmluZykKICAgICAgICAg
cmV0dXJuOwogICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRUZXh0U3Ryb2tlV2lkdGg6IHsKICAg
ICAgICAgSEFORExFX0lOSEVSSVRfQU5EX0lOSVRJQUwodGV4dFN0cm9rZVdpZHRoLCBUZXh0U3Ry
b2tlV2lkdGgpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAJKHJldmlzaW9uIDg4MjA2KQor
KysgU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTky
Miw3ICsxOTIyLDcgQEAgdm9pZCBEb2N1bWVudDo6c2V0VmlzdWFsbHlPcmRlcmVkKCkKIHsKICAg
ICBtX3Zpc3VhbGx5T3JkZXJlZCA9IHRydWU7CiAgICAgaWYgKHJlbmRlcmVyKCkpCi0gICAgICAg
IHJlbmRlcmVyKCktPnN0eWxlKCktPnNldFZpc3VhbGx5T3JkZXJlZCh0cnVlKTsKKyAgICAgICAg
cmVuZGVyZXIoKS0+c3R5bGUoKS0+c2V0UlRMT3JkZXJpbmcoVmlzdWFsT3JkZXIpOwogfQogCiBQ
YXNzUmVmUHRyPERvY3VtZW50UGFyc2VyPiBEb2N1bWVudDo6Y3JlYXRlUGFyc2VyKCkKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVGbG93Qm94LmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lRmxvd0JveC5jcHAJKHJldmlzaW9uIDg4
MjA2KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZUZsb3dCb3guY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xMzg3LDcgKzEzODcsNyBAQCB2b2lkIElubGluZUZsb3dCb3g6OmNvbGxl
Y3RMZWFmQm94ZXNJbkxvCiAgICAgICAgIGxlYWZCb3hlc0luTG9naWNhbE9yZGVyLmFwcGVuZChs
ZWFmKTsKICAgICB9CiAKLSAgICBpZiAocmVuZGVyZXIoKS0+c3R5bGUoKS0+dmlzdWFsbHlPcmRl
cmVkKCkpCisgICAgaWYgKHJlbmRlcmVyKCktPnN0eWxlKCktPnJ0bE9yZGVyaW5nKCkgPT0gVmlz
dWFsT3JkZXIpCiAgICAgICAgIHJldHVybjsKIAogICAgIC8vIFJldmVyc2Ugb2YgcmVvcmRlcmlu
ZyBvZiB0aGUgbGluZSAoTDIgYWNjb3JkaW5nIHRvIEJpZGkgc3BlYyk6CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lVGV4dEJveC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZVRleHRCb3guY3BwCShyZXZpc2lvbiA4ODIwNikKKysr
IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVUZXh0Qm94LmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMTMwNCw3ICsxMzA0LDcgQEAgVGV4dFJ1biBJbmxpbmVUZXh0Qm94Ojpjb25zdHJ1Y3RU
ZXh0UnVuKAogICAgIGlmIChjaGFyYWN0ZXJzV2l0aEh5cGhlbikKICAgICAgICAgYWRqdXN0Q2hh
cmFjdGVyc0FuZExlbmd0aEZvckh5cGhlbigqY2hhcmFjdGVyc1dpdGhIeXBoZW4sIHN0eWxlLCBj
aGFyYWN0ZXJzLCBsZW5ndGgpOwogCi0gICAgVGV4dFJ1biBydW4oY2hhcmFjdGVycywgbGVuZ3Ro
LCB0ZXh0UmVuZGVyZXItPmFsbG93VGFicygpLCB0ZXh0UG9zKCksIGV4cGFuc2lvbigpLCBleHBh
bnNpb25CZWhhdmlvcigpLCBkaXJlY3Rpb24oKSwgbV9kaXJPdmVycmlkZSB8fCBzdHlsZS0+dmlz
dWFsbHlPcmRlcmVkKCkpOworICAgIFRleHRSdW4gcnVuKGNoYXJhY3RlcnMsIGxlbmd0aCwgdGV4
dFJlbmRlcmVyLT5hbGxvd1RhYnMoKSwgdGV4dFBvcygpLCBleHBhbnNpb24oKSwgZXhwYW5zaW9u
QmVoYXZpb3IoKSwgZGlyZWN0aW9uKCksIG1fZGlyT3ZlcnJpZGUgfHwgc3R5bGUtPnJ0bE9yZGVy
aW5nKCkgPT0gVmlzdWFsT3JkZXIpOwogICAgIGlmICh0ZXh0UnVuTmVlZHNSZW5kZXJpbmdDb250
ZXh0KGZvbnQpKQogICAgICAgICBydW4uc2V0UmVuZGVyaW5nQ29udGV4dChTVkdUZXh0UnVuUmVu
ZGVyaW5nQ29udGV4dDo6Y3JlYXRlKHRleHRSZW5kZXJlcikpOwogCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAJKHJldmlzaW9uIDg4MjA2KQorKysgU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjMw
OCw3ICs2MzA4LDcgQEAgVGV4dFJ1biBSZW5kZXJCbG9jazo6Y29uc3RydWN0VGV4dFJ1bihSZQog
ICAgIEFTU0VSVChzdHlsZSk7CiAKICAgICBUZXh0RGlyZWN0aW9uIHRleHREaXJlY3Rpb24gPSBM
VFI7Ci0gICAgYm9vbCBkaXJlY3Rpb25hbE92ZXJyaWRlID0gc3R5bGUtPnZpc3VhbGx5T3JkZXJl
ZCgpOworICAgIGJvb2wgZGlyZWN0aW9uYWxPdmVycmlkZSA9IHN0eWxlLT5ydGxPcmRlcmluZygp
ID09IFZpc3VhbE9yZGVyOwogICAgIGlmIChmbGFncyAhPSBEZWZhdWx0VGV4dFJ1bkZsYWdzKSB7
CiAgICAgICAgIGlmIChmbGFncyAmIFJlc3BlY3REaXJlY3Rpb24pCiAgICAgICAgICAgICB0ZXh0
RGlyZWN0aW9uID0gc3R5bGUtPmRpcmVjdGlvbigpOwpJbmRleDogU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckJsb2NrTGluZUxheW91dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrTGluZUxheW91dC5jcHAJKHJldmlzaW9uIDg4MjA2
KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrTGluZUxheW91dC5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTM0NSw3ICszNDUsNyBAQCBSb290SW5saW5lQm94KiBSZW5kZXJC
bG9jazo6Y29uc3RydWN0TGluCiAgICAgICAgICAgICBwYXJlbnRCb3gtPmFkZFRvTGluZShib3gp
OwogICAgICAgICB9CiAKLSAgICAgICAgYm9vbCB2aXN1YWxseU9yZGVyZWQgPSByLT5tX29iamVj
dC0+c3R5bGUoKS0+dmlzdWFsbHlPcmRlcmVkKCk7CisgICAgICAgIGJvb2wgdmlzdWFsbHlPcmRl
cmVkID0gci0+bV9vYmplY3QtPnN0eWxlKCktPnJ0bE9yZGVyaW5nKCkgPT0gVmlzdWFsT3JkZXI7
CiAgICAgICAgIGJveC0+c2V0QmlkaUxldmVsKHItPmxldmVsKCkpOwogCiAgICAgICAgIGlmIChi
b3gtPmlzSW5saW5lVGV4dEJveCgpKSB7CkBAIC05NjEsNyArOTYxLDcgQEAgdm9pZCBSZW5kZXJC
bG9jazo6bGF5b3V0UnVuc0FuZEZsb2F0cyhMaQogICAgICAgICAgICAgaWYgKGxhc3RSb290Qm94
KCkpCiAgICAgICAgICAgICAgICAgbGFzdFJvb3RCb3goKS0+c2V0TGluZUJyZWFrSW5mbyhlbmQu
bV9vYmosIGVuZC5tX3BvcywgcmVzb2x2ZXIuc3RhdHVzKCkpOwogICAgICAgICB9IGVsc2Ugewot
ICAgICAgICAgICAgVmlzdWFsRGlyZWN0aW9uT3ZlcnJpZGUgb3ZlcnJpZGUgPSAoc3R5bGUoKS0+
dmlzdWFsbHlPcmRlcmVkKCkgPyAoc3R5bGUoKS0+ZGlyZWN0aW9uKCkgPT0gTFRSID8gVmlzdWFs
TGVmdFRvUmlnaHRPdmVycmlkZSA6IFZpc3VhbFJpZ2h0VG9MZWZ0T3ZlcnJpZGUpIDogTm9WaXN1
YWxPdmVycmlkZSk7CisgICAgICAgICAgICBWaXN1YWxEaXJlY3Rpb25PdmVycmlkZSBvdmVycmlk
ZSA9IChzdHlsZSgpLT5ydGxPcmRlcmluZygpID09IFZpc3VhbE9yZGVyID8gKHN0eWxlKCktPmRp
cmVjdGlvbigpID09IExUUiA/IFZpc3VhbExlZnRUb1JpZ2h0T3ZlcnJpZGUgOiBWaXN1YWxSaWdo
dFRvTGVmdE92ZXJyaWRlKSA6IE5vVmlzdWFsT3ZlcnJpZGUpOwogICAgICAgICAgICAgLy8gRklY
TUU6IFRoaXMgb3duZXJzaGlwIGlzIHJldmVyc2VkLiBXZSBzaG91bGQgb3duIHRoZSBCaWRpUnVu
TGlzdCBhbmQgcGFzcyBpdCB0byBjcmVhdGVCaWRpUnVuc0ZvckxpbmUuCiAgICAgICAgICAgICBC
aWRpUnVuTGlzdDxCaWRpUnVuPiYgYmlkaVJ1bnMgPSByZXNvbHZlci5ydW5zKCk7CiAgICAgICAg
ICAgICByZXNvbHZlci5jcmVhdGVCaWRpUnVuc0ZvckxpbmUoZW5kLCBvdmVycmlkZSwgbGluZUlu
Zm8ucHJldmlvdXNMaW5lQnJva2VDbGVhbmx5KCkpOwpJbmRleDogU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwCShyZXZpc2lvbiA4ODIwNikKKysrIFNv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTQyMSw3ICs0MjEsNyBAQCBTdHlsZURpZmZlcmVuY2UgUmVuZGVyU3R5bGU6OmRpZmYo
Y29uc3QgCiAgICAgICAgIHx8IGluaGVyaXRlZC0+aG9yaXpvbnRhbF9ib3JkZXJfc3BhY2luZyAh
PSBvdGhlci0+aW5oZXJpdGVkLT5ob3Jpem9udGFsX2JvcmRlcl9zcGFjaW5nCiAgICAgICAgIHx8
IGluaGVyaXRlZC0+dmVydGljYWxfYm9yZGVyX3NwYWNpbmcgIT0gb3RoZXItPmluaGVyaXRlZC0+
dmVydGljYWxfYm9yZGVyX3NwYWNpbmcKICAgICAgICAgfHwgaW5oZXJpdGVkX2ZsYWdzLl9ib3hf
ZGlyZWN0aW9uICE9IG90aGVyLT5pbmhlcml0ZWRfZmxhZ3MuX2JveF9kaXJlY3Rpb24KLSAgICAg
ICAgfHwgaW5oZXJpdGVkX2ZsYWdzLl92aXN1YWxseU9yZGVyZWQgIT0gb3RoZXItPmluaGVyaXRl
ZF9mbGFncy5fdmlzdWFsbHlPcmRlcmVkCisgICAgICAgIHx8IGluaGVyaXRlZF9mbGFncy5tX3J0
bE9yZGVyaW5nICE9IG90aGVyLT5pbmhlcml0ZWRfZmxhZ3MubV9ydGxPcmRlcmluZwogICAgICAg
ICB8fCBub25pbmhlcml0ZWRfZmxhZ3MuX3Bvc2l0aW9uICE9IG90aGVyLT5ub25pbmhlcml0ZWRf
ZmxhZ3MuX3Bvc2l0aW9uCiAgICAgICAgIHx8IG5vbmluaGVyaXRlZF9mbGFncy5fZmxvYXRpbmcg
IT0gb3RoZXItPm5vbmluaGVyaXRlZF9mbGFncy5fZmxvYXRpbmcKICAgICAgICAgfHwgbm9uaW5o
ZXJpdGVkX2ZsYWdzLl9vcmlnaW5hbERpc3BsYXkgIT0gb3RoZXItPm5vbmluaGVyaXRlZF9mbGFn
cy5fb3JpZ2luYWxEaXNwbGF5KQpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxl
L1JlbmRlclN0eWxlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0
eWxlL1JlbmRlclN0eWxlLmgJKHJldmlzaW9uIDg4MjA2KQorKysgU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgJKHdvcmtpbmcgY29weSkKQEAgLTE3NCw3ICsxNzQs
NyBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgICAgICAgICAgJiYgKF9ib3JkZXJfY29sbGFwc2UgPT0g
b3RoZXIuX2JvcmRlcl9jb2xsYXBzZSkKICAgICAgICAgICAgICAgICAmJiAoX3doaXRlX3NwYWNl
ID09IG90aGVyLl93aGl0ZV9zcGFjZSkKICAgICAgICAgICAgICAgICAmJiAoX2JveF9kaXJlY3Rp
b24gPT0gb3RoZXIuX2JveF9kaXJlY3Rpb24pCi0gICAgICAgICAgICAgICAgJiYgKF92aXN1YWxs
eU9yZGVyZWQgPT0gb3RoZXIuX3Zpc3VhbGx5T3JkZXJlZCkKKyAgICAgICAgICAgICAgICAmJiAo
bV9ydGxPcmRlcmluZyA9PSBvdGhlci5tX3J0bE9yZGVyaW5nKQogICAgICAgICAgICAgICAgICYm
IChfZm9yY2VfYmFja2dyb3VuZHNfdG9fd2hpdGUgPT0gb3RoZXIuX2ZvcmNlX2JhY2tncm91bmRz
X3RvX3doaXRlKQogICAgICAgICAgICAgICAgICYmIChfcG9pbnRlckV2ZW50cyA9PSBvdGhlci5f
cG9pbnRlckV2ZW50cykKICAgICAgICAgICAgICAgICAmJiAoX2luc2lkZUxpbmsgPT0gb3RoZXIu
X2luc2lkZUxpbmspCkBAIC0xOTksNyArMTk5LDcgQEAgcHJvdGVjdGVkOgogICAgICAgICAvLyAz
NCBiaXRzCiAgICAgICAgIAogICAgICAgICAvLyBub24gQ1NTMiBpbmhlcml0ZWQKLSAgICAgICAg
Ym9vbCBfdmlzdWFsbHlPcmRlcmVkIDogMTsKKyAgICAgICAgdW5zaWduZWQgbV9ydGxPcmRlcmlu
ZyA6IDE7IC8vIE9yZGVyCiAgICAgICAgIGJvb2wgX2ZvcmNlX2JhY2tncm91bmRzX3RvX3doaXRl
IDogMTsKICAgICAgICAgdW5zaWduZWQgX3BvaW50ZXJFdmVudHMgOiA0OyAvLyBFUG9pbnRlckV2
ZW50cwogICAgICAgICB1bnNpZ25lZCBfaW5zaWRlTGluayA6IDI7IC8vIEVJbnNpZGVMaW5rCkBA
IC0yNzgsNyArMjc4LDcgQEAgcHJvdGVjdGVkOgogICAgICAgICBpbmhlcml0ZWRfZmxhZ3MuX2Rp
cmVjdGlvbiA9IGluaXRpYWxEaXJlY3Rpb24oKTsKICAgICAgICAgaW5oZXJpdGVkX2ZsYWdzLl9i
b3JkZXJfY29sbGFwc2UgPSBpbml0aWFsQm9yZGVyQ29sbGFwc2UoKTsKICAgICAgICAgaW5oZXJp
dGVkX2ZsYWdzLl93aGl0ZV9zcGFjZSA9IGluaXRpYWxXaGl0ZVNwYWNlKCk7Ci0gICAgICAgIGlu
aGVyaXRlZF9mbGFncy5fdmlzdWFsbHlPcmRlcmVkID0gaW5pdGlhbFZpc3VhbGx5T3JkZXJlZCgp
OworICAgICAgICBpbmhlcml0ZWRfZmxhZ3MubV9ydGxPcmRlcmluZyA9IGluaXRpYWxSVExPcmRl
cmluZygpOwogICAgICAgICBpbmhlcml0ZWRfZmxhZ3MuX2JveF9kaXJlY3Rpb24gPSBpbml0aWFs
Qm94RGlyZWN0aW9uKCk7CiAgICAgICAgIGluaGVyaXRlZF9mbGFncy5fZm9yY2VfYmFja2dyb3Vu
ZHNfdG9fd2hpdGUgPSBmYWxzZTsKICAgICAgICAgaW5oZXJpdGVkX2ZsYWdzLl9wb2ludGVyRXZl
bnRzID0gaW5pdGlhbFBvaW50ZXJFdmVudHMoKTsKQEAgLTM1OCw4ICszNTgsOCBAQCBwdWJsaWM6
CiAgICAgICAgIHJldHVybiBoYXNCYWNrZ3JvdW5kSW1hZ2UoKTsKICAgICB9CiAKLSAgICBib29s
IHZpc3VhbGx5T3JkZXJlZCgpIGNvbnN0IHsgcmV0dXJuIGluaGVyaXRlZF9mbGFncy5fdmlzdWFs
bHlPcmRlcmVkOyB9Ci0gICAgdm9pZCBzZXRWaXN1YWxseU9yZGVyZWQoYm9vbCBiKSB7IGluaGVy
aXRlZF9mbGFncy5fdmlzdWFsbHlPcmRlcmVkID0gYjsgfQorICAgIE9yZGVyIHJ0bE9yZGVyaW5n
KCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8T3JkZXI+KGluaGVyaXRlZF9mbGFncy5tX3J0
bE9yZGVyaW5nKTsgfQorICAgIHZvaWQgc2V0UlRMT3JkZXJpbmcoT3JkZXIgbykgeyBpbmhlcml0
ZWRfZmxhZ3MubV9ydGxPcmRlcmluZyA9IG87IH0KIAogICAgIGJvb2wgaXNTdHlsZUF2YWlsYWJs
ZSgpIGNvbnN0OwogCkBAIC0xMjk5LDcgKzEyOTksNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIEVC
b3JkZXJGaXQgaW5pdGlhbEJvcmRlckZpdCgpIHsgcmV0dXJuIEJvcmRlckZpdEJvcmRlcjsgfQog
ICAgIHN0YXRpYyBFUmVzaXplIGluaXRpYWxSZXNpemUoKSB7IHJldHVybiBSRVNJWkVfTk9ORTsg
fQogICAgIHN0YXRpYyBDb250cm9sUGFydCBpbml0aWFsQXBwZWFyYW5jZSgpIHsgcmV0dXJuIE5v
Q29udHJvbFBhcnQ7IH0KLSAgICBzdGF0aWMgYm9vbCBpbml0aWFsVmlzdWFsbHlPcmRlcmVkKCkg
eyByZXR1cm4gZmFsc2U7IH0KKyAgICBzdGF0aWMgT3JkZXIgaW5pdGlhbFJUTE9yZGVyaW5nKCkg
eyByZXR1cm4gTG9naWNhbE9yZGVyOyB9CiAgICAgc3RhdGljIGZsb2F0IGluaXRpYWxUZXh0U3Ry
b2tlV2lkdGgoKSB7IHJldHVybiAwOyB9CiAgICAgc3RhdGljIHVuc2lnbmVkIHNob3J0IGluaXRp
YWxDb2x1bW5Db3VudCgpIHsgcmV0dXJuIDE7IH0KICAgICBzdGF0aWMgYm9vbCBpbml0aWFsQ29s
dW1uU3BhbigpIHsgcmV0dXJuIGZhbHNlOyB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3R5bGUvUmVuZGVyU3R5bGVDb25zdGFudHMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGVDb25zdGFudHMuaAkocmV2aXNpb24gODgy
MDYpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGVDb25zdGFu
dHMuaAkod29ya2luZyBjb3B5KQpAQCAtNDMxLDcgKzQzMSw5IEBAIGVudW0gVGV4dEVtcGhhc2lz
TWFyayB7IFRleHRFbXBoYXNpc01hcmsKIGVudW0gVGV4dEVtcGhhc2lzUG9zaXRpb24geyBUZXh0
RW1waGFzaXNQb3NpdGlvbk92ZXIsIFRleHRFbXBoYXNpc1Bvc2l0aW9uVW5kZXIgfTsKIAogZW51
bSBFSW1hZ2VSZW5kZXJpbmcgeyBJbWFnZVJlbmRlcmluZ0F1dG8sIEltYWdlUmVuZGVyaW5nT3B0
aW1pemVTcGVlZCwgSW1hZ2VSZW5kZXJpbmdPcHRpbWl6ZVF1YWxpdHksIEltYWdlUmVuZGVyaW5n
T3B0aW1pemVDb250cmFzdCB9OwotICAgIAorCitlbnVtIE9yZGVyIHsgTG9naWNhbE9yZGVyID0g
MCwgVmlzdWFsT3JkZXIgfTsKKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8g
UmVuZGVyU3R5bGVDb25zdGFudHNfaApJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2
Zy9TVkdJbmxpbmVUZXh0Qm94LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3ZnL1NWR0lubGluZVRleHRCb3guY3BwCShyZXZpc2lvbiA4ODIwNikKKysrIFNvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHSW5saW5lVGV4dEJveC5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTQyMCw3ICs0MjAsNyBAQCBUZXh0UnVuIFNWR0lubGluZVRleHRCb3g6OmNvbnN0cnVj
dFRleHRSCiAgICAgICAgICAgICAgICAgLCAwIC8qIHBhZGRpbmcsIG9ubHkgcmVsZXZhbnQgZm9y
IGp1c3RpZmllZCB0ZXh0LCBub3QgcmVsZXZhbnQgZm9yIFNWRyAqLwogICAgICAgICAgICAgICAg
ICwgVGV4dFJ1bjo6QWxsb3dUcmFpbGluZ0V4cGFuc2lvbgogICAgICAgICAgICAgICAgICwgZGly
ZWN0aW9uKCkKLSAgICAgICAgICAgICAgICAsIG1fZGlyT3ZlcnJpZGUgfHwgc3R5bGUtPnZpc3Vh
bGx5T3JkZXJlZCgpIC8qIGRpcmVjdGlvbmFsT3ZlcnJpZGUgKi8pOworICAgICAgICAgICAgICAg
ICwgbV9kaXJPdmVycmlkZSB8fCBzdHlsZS0+cnRsT3JkZXJpbmcoKSA9PSBWaXN1YWxPcmRlciAv
KiBkaXJlY3Rpb25hbE92ZXJyaWRlICovKTsKIAogICAgIGlmICh0ZXh0UnVuTmVlZHNSZW5kZXJp
bmdDb250ZXh0KHN0eWxlLT5mb250KCkpKQogICAgICAgICBydW4uc2V0UmVuZGVyaW5nQ29udGV4
dChTVkdUZXh0UnVuUmVuZGVyaW5nQ29udGV4dDo6Y3JlYXRlKHRleHQpKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>