<?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>75582</bug_id>
          
          <creation_ts>2012-01-04 15:13:24 -0800</creation_ts>
          <short_desc>[skia] Switch FEColorMatrix filter to use skia&apos;s SkColorMatrixFilter</short_desc>
          <delta_ts>2012-01-10 07:01:33 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>SVG</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="Stephen White">senorblanco</reporter>
          <assigned_to name="Stephen White">senorblanco</assigned_to>
          <cc>dglazkov</cc>
    
    <cc>gustavo</cc>
    
    <cc>kbr</cc>
    
    <cc>krit</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
    
    <cc>zherczeg</cc>
    
    <cc>zimmermann</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>529810</commentid>
    <comment_count>0</comment_count>
    <who name="Stephen White">senorblanco</who>
    <bug_when>2012-01-04 15:13:24 -0800</bug_when>
    <thetext>[skia] Switch FEColorMatrix filter to use skia&apos;s SkColorMatrixFilter</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>529812</commentid>
    <comment_count>1</comment_count>
      <attachid>121171</attachid>
    <who name="Stephen White">senorblanco</who>
    <bug_when>2012-01-04 15:14:03 -0800</bug_when>
    <thetext>Created attachment 121171
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>529883</commentid>
    <comment_count>2</comment_count>
      <attachid>121171</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-01-04 17:00:24 -0800</bug_when>
    <thetext>Comment on attachment 121171
Patch

Attachment 121171 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/11107030</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>529884</commentid>
    <comment_count>3</comment_count>
      <attachid>121171</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2012-01-04 17:05:25 -0800</bug_when>
    <thetext>Comment on attachment 121171
Patch

Attachment 121171 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/11115008</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>529885</commentid>
    <comment_count>4</comment_count>
      <attachid>121171</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-01-04 17:09:30 -0800</bug_when>
    <thetext>Comment on attachment 121171
Patch

Attachment 121171 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/11128003</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>529937</commentid>
    <comment_count>5</comment_count>
      <attachid>121201</attachid>
    <who name="Stephen White">senorblanco</who>
    <bug_when>2012-01-04 18:33:11 -0800</bug_when>
    <thetext>Created attachment 121201
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>530311</commentid>
    <comment_count>6</comment_count>
      <attachid>121201</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-01-05 08:29:04 -0800</bug_when>
    <thetext>Comment on attachment 121201
Patch

Attachment 121201 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/11120389

New failing tests:
svg/filters/feColorMatrix-saturate.svg
svg/filters/feColorMatrix-offset.svg
svg/dynamic-updates/SVGFEColorMatrixElement-svgdom-in-prop.html
svg/W3C-SVG-1.1/filters-color-01-b.svg
svg/dynamic-updates/SVGFEColorMatrixElement-dom-in-attr.html
svg/dynamic-updates/SVGFEColorMatrixElement-dom-type-attr.html
svg/dynamic-updates/SVGFEColorMatrixElement-dom-values-attr.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>530312</commentid>
    <comment_count>7</comment_count>
      <attachid>121283</attachid>
    <who name="Stephen White">senorblanco</who>
    <bug_when>2012-01-05 08:30:30 -0800</bug_when>
    <thetext>Created attachment 121283
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>531067</commentid>
    <comment_count>8</comment_count>
    <who name="Stephen White">senorblanco</who>
    <bug_when>2012-01-06 07:28:02 -0800</bug_when>
    <thetext>Note that this could probably be handled a bit more cleanly.  Here are some other options:

1)  Make a platformApplySkia() virtual on FilterEffect, which FilterEffect::apply() would call for USE(SKIA).  The base class implementation could call platformApplySoftware(), so that effects which are not yet ported would still work.

2)  Rename FEColorMatrix::platformApplySkia() to platformApplySoftware(), and #ifdef out the standard implementation entirely for USE(SKIA).  This would be similar to GraphicsContext and friends.

#1 might be a bit more clean, design-wise, but #2 would reduce code size, since only a single version of each function would be compiled in.  Note that (unlike the NEON case?), there&apos;s no need for more than one implementation to be available at runtime.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>531128</commentid>
    <comment_count>9</comment_count>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2012-01-06 10:05:29 -0800</bug_when>
    <thetext>(In reply to comment #8)
&gt; Note that this could probably be handled a bit more cleanly.  Here are some other options:
&gt; 
&gt; 1)  Make a platformApplySkia() virtual on FilterEffect, which FilterEffect::apply() would call for USE(SKIA).  The base class implementation could call platformApplySoftware(), so that effects which are not yet ported would still work.
&gt; 
&gt; 2)  Rename FEColorMatrix::platformApplySkia() to platformApplySoftware(), and #ifdef out the standard implementation entirely for USE(SKIA).  This would be similar to GraphicsContext and friends.
&gt; 
&gt; #1 might be a bit more clean, design-wise, but #2 would reduce code size, since only a single version of each function would be compiled in.  Note that (unlike the NEON case?), there&apos;s no need for more than one implementation to be available at runtime.

I&apos;d suggest going with #2 for parity with how GraphicsContext is currently implemented. The fact that the Skia #ifdef leaks into the header is a little gross.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>531190</commentid>
    <comment_count>10</comment_count>
      <attachid>121450</attachid>
    <who name="Stephen White">senorblanco</who>
    <bug_when>2012-01-06 11:20:47 -0800</bug_when>
    <thetext>Created attachment 121450
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>531210</commentid>
    <comment_count>11</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2012-01-06 11:42:13 -0800</bug_when>
    <thetext>(In reply to comment #9)
&gt; (In reply to comment #8)
&gt; &gt; Note that this could probably be handled a bit more cleanly.  Here are some other options:
&gt; &gt; 
&gt; &gt; 1)  Make a platformApplySkia() virtual on FilterEffect, which FilterEffect::apply() would call for USE(SKIA).  The base class implementation could call platformApplySoftware(), so that effects which are not yet ported would still work.
&gt; &gt; 
&gt; &gt; 2)  Rename FEColorMatrix::platformApplySkia() to platformApplySoftware(), and #ifdef out the standard implementation entirely for USE(SKIA).  This would be similar to GraphicsContext and friends.
&gt; &gt; 
&gt; &gt; #1 might be a bit more clean, design-wise, but #2 would reduce code size, since only a single version of each function would be compiled in.  Note that (unlike the NEON case?), there&apos;s no need for more than one implementation to be available at runtime.
&gt; 
&gt; I&apos;d suggest going with #2 for parity with how GraphicsContext is currently implemented. The fact that the Skia #ifdef leaks into the header is a little gross.

I&apos;d rather go with 1) to avoid the same design problems as GC has (complex ifdefs, etc.).
What&apos;s the benefit to using SkColorMatrixFilter btw?
The ChangeLog doesn&apos;t say this, and I can&apos;t remember. Can it be accelerated out-of-the-box with Skia?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>531219</commentid>
    <comment_count>12</comment_count>
    <who name="Stephen White">senorblanco</who>
    <bug_when>2012-01-06 11:49:47 -0800</bug_when>
    <thetext>(In reply to comment #11)
&gt; (In reply to comment #9)
&gt; &gt; (In reply to comment #8)
&gt; &gt; &gt; Note that this could probably be handled a bit more cleanly.  Here are some other options:
&gt; &gt; &gt; 
&gt; &gt; &gt; 1)  Make a platformApplySkia() virtual on FilterEffect, which FilterEffect::apply() would call for USE(SKIA).  The base class implementation could call platformApplySoftware(), so that effects which are not yet ported would still work.
&gt; &gt; &gt; 
&gt; &gt; &gt; 2)  Rename FEColorMatrix::platformApplySkia() to platformApplySoftware(), and #ifdef out the standard implementation entirely for USE(SKIA).  This would be similar to GraphicsContext and friends.
&gt; &gt; &gt; 
&gt; &gt; &gt; #1 might be a bit more clean, design-wise, but #2 would reduce code size, since only a single version of each function would be compiled in.  Note that (unlike the NEON case?), there&apos;s no need for more than one implementation to be available at runtime.
&gt; &gt; 
&gt; &gt; I&apos;d suggest going with #2 for parity with how GraphicsContext is currently implemented. The fact that the Skia #ifdef leaks into the header is a little gross.
&gt; 
&gt; I&apos;d rather go with 1) to avoid the same design problems as GC has (complex ifdefs, etc.).

OK, I&apos;ve uploaded a patch with #2 as Ken suggested.  If you&apos;d still prefer #1, I&apos;ll go that way instead.  I&apos;m leaning towards #2, due to the code size issue.

&gt; What&apos;s the benefit to using SkColorMatrixFilter btw?
&gt; The ChangeLog doesn&apos;t say this, and I can&apos;t remember. Can it be accelerated out-of-the-box with Skia?

As of http://code.google.com/p/skia/source/detail?r=2948, it can.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>531221</commentid>
    <comment_count>13</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2012-01-06 11:51:30 -0800</bug_when>
    <thetext>(In reply to comment #12)
&gt; OK, I&apos;ve uploaded a patch with #2 as Ken suggested.  If you&apos;d still prefer #1, I&apos;ll go that way instead.  I&apos;m leaning towards #2, due to the code size issue.

I think it was agreed to go with #1) before, let&apos;s wait for Dirk/Zoltan to comment, who are behind the original design. CC&apos;ing Zoltan.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>531417</commentid>
    <comment_count>14</comment_count>
      <attachid>121499</attachid>
    <who name="Stephen White">senorblanco</who>
    <bug_when>2012-01-06 14:41:25 -0800</bug_when>
    <thetext>Created attachment 121499
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>531419</commentid>
    <comment_count>15</comment_count>
    <who name="Stephen White">senorblanco</who>
    <bug_when>2012-01-06 14:45:32 -0800</bug_when>
    <thetext>(In reply to comment #14)
&gt; Created an attachment (id=121499) [details]
&gt; Patch

This is an implementation of option #2, so we can choose.  Note that since FEGaussianBlur already had a platformApplySkia() function, I also switched it over to the new signature, and removed the skia-specific code from FEGaussianBlur::platformApplySoftware().  This means we will be using the Skia path for both software and hardware processing.  This doesn&apos;t require any new baselines since the implementations produce the same pixels.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>531893</commentid>
    <comment_count>16</comment_count>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2012-01-08 17:35:57 -0800</bug_when>
    <thetext>(In reply to comment #13)
&gt; (In reply to comment #12)
&gt; &gt; OK, I&apos;ve uploaded a patch with #2 as Ken suggested.  If you&apos;d still prefer #1, I&apos;ll go that way instead.  I&apos;m leaning towards #2, due to the code size issue.
&gt; 
&gt; I think it was agreed to go with #1) before, let&apos;s wait for Dirk/Zoltan to comment, who are behind the original design. CC&apos;ing Zoltan.

I would also use option #1.

In general I think it is a good idea to use Skia specific code instead of software rendering.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>531969</commentid>
    <comment_count>17</comment_count>
      <attachid>121620</attachid>
    <who name="Stephen White">senorblanco</who>
    <bug_when>2012-01-08 22:12:40 -0800</bug_when>
    <thetext>Created attachment 121620
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>532160</commentid>
    <comment_count>18</comment_count>
    <who name="Stephen White">senorblanco</who>
    <bug_when>2012-01-09 06:39:54 -0800</bug_when>
    <thetext>(In reply to comment #17)
&gt; Created an attachment (id=121620) [details]
&gt; Patch

This is a version of option #2 with the FEGaussianBlur change as well, so the two patches are functionally equivalent.  I&apos;ll mark the previous attachment (which implements #1) for review as well, since that seems to be the consensus.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>532493</commentid>
    <comment_count>19</comment_count>
      <attachid>121499</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-01-09 13:34:17 -0800</bug_when>
    <thetext>Comment on attachment 121499
Patch

Cleared review? from obsolete attachment 121499 so that this bug does not appear in http://webkit.org/pending-review.  If you would like this patch reviewed, please attach it to a new bug (or re-open this bug before marking it for review again).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>532529</commentid>
    <comment_count>20</comment_count>
      <attachid>121620</attachid>
    <who name="Stephen White">senorblanco</who>
    <bug_when>2012-01-09 14:23:32 -0800</bug_when>
    <thetext>Comment on attachment 121620
Patch

OK, well apparently eseidel&apos;s scripts don&apos;t like two patches marked for r+, so I&apos;ll just mark the second-last patch (option #1) for review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>532842</commentid>
    <comment_count>21</comment_count>
      <attachid>121499</attachid>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2012-01-09 23:33:16 -0800</bug_when>
    <thetext>Comment on attachment 121499
Patch

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

Looks a lot better for me. r=me with little changes before landing.

&gt; Source/WebCore/platform/graphics/filters/skia/FEColorMatrixSkia.cpp:60
&gt; +    matrix[0] =  0.213f + cosHue * 0.787f - sinHue * 0.213f;
&gt; +    matrix[1] =  0.715f - cosHue * 0.715f - sinHue * 0.715f;
&gt; +    matrix[2] =  0.072f - cosHue * 0.072f + sinHue * 0.928f;

Why are there multiple spaces after the equal sign?

&gt; Source/WebCore/platform/graphics/filters/skia/FEColorMatrixSkia.cpp:64
&gt; +    matrix[5] =  0.213f - cosHue * 0.213f + sinHue * 0.143f;
&gt; +    matrix[6] =  0.715f + cosHue * 0.285f + sinHue * 0.140f;
&gt; +    matrix[7] =  0.072f - cosHue * 0.072f - sinHue * 0.283f;

ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>533032</commentid>
    <comment_count>22</comment_count>
    <who name="Stephen White">senorblanco</who>
    <bug_when>2012-01-10 06:59:49 -0800</bug_when>
    <thetext>(In reply to comment #21)
&gt; (From update of attachment 121499 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=121499&amp;action=review
&gt; 
&gt; Looks a lot better for me. r=me with little changes before landing.
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/filters/skia/FEColorMatrixSkia.cpp:60
&gt; &gt; +    matrix[0] =  0.213f + cosHue * 0.787f - sinHue * 0.213f;
&gt; &gt; +    matrix[1] =  0.715f - cosHue * 0.715f - sinHue * 0.715f;
&gt; &gt; +    matrix[2] =  0.072f - cosHue * 0.072f + sinHue * 0.928f;
&gt; 
&gt; Why are there multiple spaces after the equal sign?
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/filters/skia/FEColorMatrixSkia.cpp:64
&gt; &gt; +    matrix[5] =  0.213f - cosHue * 0.213f + sinHue * 0.143f;
&gt; &gt; +    matrix[6] =  0.715f + cosHue * 0.285f + sinHue * 0.140f;
&gt; &gt; +    matrix[7] =  0.072f - cosHue * 0.072f - sinHue * 0.283f;
&gt; 
&gt; ditto.

I think I was trying to line up the matrix elements.  Will remove on landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>533035</commentid>
    <comment_count>23</comment_count>
    <who name="Stephen White">senorblanco</who>
    <bug_when>2012-01-10 07:01:33 -0800</bug_when>
    <thetext>Committed r104566: &lt;http://trac.webkit.org/changeset/104566&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>121171</attachid>
            <date>2012-01-04 15:14:03 -0800</date>
            <delta_ts>2012-01-04 18:33:07 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-75582-20120104181402.patch</filename>
            <type>text/plain</type>
            <size>8260</size>
            <attacher name="Stephen White">senorblanco</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwNDA4NCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI0IEBACisyMDEyLTAxLTA0ICBTdGVwaGVu
IFdoaXRlICA8c2Vub3JibGFuY29AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtTa2lhXSBTd2l0
Y2ggRkVDb2xvck1hdHJpeCB0byB1c2UgYSBza2lhLWJhc2VkIGltcGxlbWVudGF0aW9uIHdoZW4K
KyAgICAgICAgY29tcGlsaW5nIHdpdGggVVNFKFNLSUEpLgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU1ODIKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDb3ZlcmVkIGJ5IHN2Zy9XM0MtU1ZHLTEuMS9maWx0
ZXJzLWNvbG9yLTAxLWIuc3ZnIGFuZCBmcmllbmRzICh3aWxsCisgICAgICAgIG5lZWQgYSByZWJh
c2VsaW5lKS4KKworICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9maWx0ZXJzL0ZFQ29sb3JNYXRyaXguY3BwOgorICAgICAgICAoV2ViQ29yZTo6RkVD
b2xvck1hdHJpeDo6cGxhdGZvcm1BcHBseVNvZnR3YXJlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9maWx0ZXJzL0ZFQ29sb3JNYXRyaXguaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9maWx0ZXJzL3NraWEvRkVDb2xvck1hdHJpeFNraWEuY3BwOiBBZGRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OnNhdHVyYXRlTWF0cml4KToKKyAgICAgICAgKFdlYkNvcmU6Omh1ZVJvdGF0ZU1h
dHJpeCk6CisgICAgICAgIChXZWJDb3JlOjpsdW1pbmFuY2VUb0FscGhhTWF0cml4KToKKyAgICAg
ICAgKFdlYkNvcmU6OkZFQ29sb3JNYXRyaXg6OnBsYXRmb3JtQXBwbHlTa2lhKToKKwogMjAxMS0x
Mi0zMCAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KIAogICAgICAgICBJbnNlcnRp
bmcgbm9kZXMgaXMgc2xvdyBkdWUgdG8gTm9kZTo6bm90aWZ5Tm9kZUxpc3RzQXR0cmlidXRlQ2hh
bmdlZCAoMjAlKykKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkJKHJldmlzaW9uIDEwNDA3OSkKKysrIFNv
dXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQkod29ya2luZyBjb3B5KQpAQCAtMzcyOCw2ICszNzI4
LDcgQEAKICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL2FybS9GRUdhdXNz
aWFuQmx1ck5FT04uaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9h
cm0vRkVMaWdodGluZ05FT04uY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9m
aWx0ZXJzL2FybS9GRUxpZ2h0aW5nTkVPTi5oJywKKyAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFw
aGljcy9maWx0ZXJzL3NraWEvRkVDb2xvck1hdHJpeFNraWEuY3BwJywKICAgICAgICAgICAgICdw
bGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL3NraWEvRkVHYXVzc2lhbkJsdXJTa2lhLmNwcCcsCiAg
ICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvZnJlZXR5cGUvRm9udENhY2hlRnJlZVR5cGUu
Y3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9mcmVldHlwZS9Gb250Q3VzdG9t
UGxhdGZvcm1EYXRhRnJlZVR5cGUuY3BwJywKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2ZpbHRlcnMvRkVDb2xvck1hdHJpeC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbG9yTWF0cml4LmNwcAkocmV2
aXNpb24gMTA0MDc5KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVy
cy9GRUNvbG9yTWF0cml4LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTU4LDYgKzE1OCwxMCBAQCB2
b2lkIGVmZmVjdFR5cGUoQnl0ZUFycmF5KiBwaXhlbEFycmF5LCBjCiAKIHZvaWQgRkVDb2xvck1h
dHJpeDo6cGxhdGZvcm1BcHBseVNvZnR3YXJlKCkKIHsKKyNpZiBVU0UoU0tJQSkKKyAgICBwbGF0
Zm9ybUFwcGx5U2tpYSgpOworICAgIHJldHVybjsKKyNlbHNlCiAgICAgRmlsdGVyRWZmZWN0KiBp
biA9IGlucHV0RWZmZWN0KDApOwogCiAgICAgSW1hZ2VCdWZmZXIqIHJlc3VsdEltYWdlID0gY3Jl
YXRlSW1hZ2VCdWZmZXJSZXN1bHQoKTsKQEAgLTE4OCw2ICsxOTIsNyBAQCB2b2lkIEZFQ29sb3JN
YXRyaXg6OnBsYXRmb3JtQXBwbHlTb2Z0d2FyCiAgICAgfQogCiAgICAgcmVzdWx0SW1hZ2UtPnB1
dFVubXVsdGlwbGllZEltYWdlRGF0YShwaXhlbEFycmF5LmdldCgpLCBpbWFnZVJlY3Quc2l6ZSgp
LCBpbWFnZVJlY3QsIEludFBvaW50KCkpOworI2VuZGlmCiB9CiAKIHZvaWQgRkVDb2xvck1hdHJp
eDo6ZHVtcCgpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJz
L0ZFQ29sb3JNYXRyaXguaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9maWx0ZXJzL0ZFQ29sb3JNYXRyaXguaAkocmV2aXNpb24gMTA0MDc5KQorKysgU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbG9yTWF0cml4LmgJKHdv
cmtpbmcgY29weSkKQEAgLTQ5LDYgKzQ5LDcgQEAgcHVibGljOgogICAgIGJvb2wgc2V0VmFsdWVz
KGNvbnN0IFZlY3RvcjxmbG9hdD4mKTsKIAogICAgIHZpcnR1YWwgdm9pZCBwbGF0Zm9ybUFwcGx5
U29mdHdhcmUoKTsKKyAgICB2aXJ0dWFsIHZvaWQgcGxhdGZvcm1BcHBseVNraWEoKTsKICAgICB2
aXJ0dWFsIHZvaWQgZHVtcCgpOwogCiAgICAgdmlydHVhbCBUZXh0U3RyZWFtJiBleHRlcm5hbFJl
cHJlc2VudGF0aW9uKFRleHRTdHJlYW0mLCBpbnQgaW5kZW50aW9uKSBjb25zdDsKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvc2tpYS9GRUNvbG9yTWF0cml4
U2tpYS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
ZmlsdGVycy9za2lhL0ZFQ29sb3JNYXRyaXhTa2lhLmNwcAkocmV2aXNpb24gMCkKKysrIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvc2tpYS9GRUNvbG9yTWF0cml4U2tp
YS5jcHAJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTMyIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRS
SUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorI2lmIEVOQUJMRShGSUxURVJTKSAmJiBVU0UoU0tJQSkKKyNpbmNsdWRlICJGRUNv
bG9yTWF0cml4LmgiCisKKyNpbmNsdWRlICJOYXRpdmVJbWFnZVNraWEuaCIKKyNpbmNsdWRlICJT
a0NvbG9yTWF0cml4RmlsdGVyLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworc3RhdGljIHZv
aWQgc2F0dXJhdGVNYXRyaXgoZmxvYXQgcywgU2tTY2FsYXIgbWF0cml4WzIwXSkKK3sKKyAgICBt
YXRyaXhbMF0gPSAwLjIxM2YgKyAwLjc4N2YgKiBzOworICAgIG1hdHJpeFsxXSA9IDAuNzE1ZiAt
IDAuNzE1ZiAqIHM7CisgICAgbWF0cml4WzJdID0gMC4wNzJmIC0gMC4wNzJmICogczsKKyAgICBt
YXRyaXhbM10gPSBtYXRyaXhbNF0gPSAwOworICAgIG1hdHJpeFs1XSA9IDAuMjEzZiAtIDAuMjEz
ZiAqIHM7CisgICAgbWF0cml4WzZdID0gMC43MTVmICsgMC4yODVmICogczsKKyAgICBtYXRyaXhb
N10gPSAwLjA3MmYgLSAwLjA3MmYgKiBzOworICAgIG1hdHJpeFs4XSA9IG1hdHJpeFs5XSA9IDA7
CisgICAgbWF0cml4WzEwXSA9IDAuMjEzZiAtIDAuMjEzZiAqIHM7CisgICAgbWF0cml4WzExXSA9
IDAuNzE1ZiAtIDAuNzE1ZiAqIHM7CisgICAgbWF0cml4WzEyXSA9IDAuMDcyZiArIDAuOTI4ZiAq
IHM7CisgICAgbWF0cml4WzEzXSA9IG1hdHJpeFsxNF0gPSAwOworICAgIG1hdHJpeFsxNV0gPSBt
YXRyaXhbMTZdID0gbWF0cml4WzE3XSA9IDA7CisgICAgbWF0cml4WzE4XSA9IDE7CisgICAgbWF0
cml4WzE5XSA9IDA7Cit9CisKK3N0YXRpYyB2b2lkIGh1ZVJvdGF0ZU1hdHJpeChmbG9hdCBodWUs
IFNrU2NhbGFyIG1hdHJpeFsyMF0pCit7CisgICAgZmxvYXQgY29zSHVlID0gY29zZihodWUgKiBw
aUZsb2F0IC8gMTgwKTsgCisgICAgZmxvYXQgc2luSHVlID0gc2luZihodWUgKiBwaUZsb2F0IC8g
MTgwKTsgCisgICAgbWF0cml4WzBdID0gIDAuMjEzZiArIGNvc0h1ZSAqIDAuNzg3ZiAtIHNpbkh1
ZSAqIDAuMjEzZjsKKyAgICBtYXRyaXhbMV0gPSAgMC43MTVmIC0gY29zSHVlICogMC43MTVmIC0g
c2luSHVlICogMC43MTVmOworICAgIG1hdHJpeFsyXSA9ICAwLjA3MmYgLSBjb3NIdWUgKiAwLjA3
MmYgKyBzaW5IdWUgKiAwLjkyOGY7CisgICAgbWF0cml4WzNdID0gbWF0cml4WzRdID0gMDsKKyAg
ICBtYXRyaXhbNV0gPSAgMC4yMTNmIC0gY29zSHVlICogMC4yMTNmICsgc2luSHVlICogMC4xNDNm
OworICAgIG1hdHJpeFs2XSA9ICAwLjcxNWYgKyBjb3NIdWUgKiAwLjI4NWYgKyBzaW5IdWUgKiAw
LjE0MGY7CisgICAgbWF0cml4WzddID0gIDAuMDcyZiAtIGNvc0h1ZSAqIDAuMDcyZiAtIHNpbkh1
ZSAqIDAuMjgzZjsKKyAgICBtYXRyaXhbOF0gPSBtYXRyaXhbOV0gPSAwOworICAgIG1hdHJpeFsx
MF0gPSAwLjIxM2YgLSBjb3NIdWUgKiAwLjIxM2YgLSBzaW5IdWUgKiAwLjc4N2Y7CisgICAgbWF0
cml4WzExXSA9IDAuNzE1ZiAtIGNvc0h1ZSAqIDAuNzE1ZiArIHNpbkh1ZSAqIDAuNzE1ZjsKKyAg
ICBtYXRyaXhbMTJdID0gMC4wNzJmICsgY29zSHVlICogMC45MjhmICsgc2luSHVlICogMC4wNzJm
OworICAgIG1hdHJpeFsxM10gPSBtYXRyaXhbMTRdID0gMDsKKyAgICBtYXRyaXhbMTVdID0gbWF0
cml4WzE2XSA9IG1hdHJpeFsxN10gPSAwOworICAgIG1hdHJpeFsxOF0gPSAxOworICAgIG1hdHJp
eFsxOV0gPSAwOworfQorCitzdGF0aWMgdm9pZCBsdW1pbmFuY2VUb0FscGhhTWF0cml4KFNrU2Nh
bGFyIG1hdHJpeFsyMF0pCit7CisgICAgbWVtc2V0KG1hdHJpeCwgMCwgc2l6ZW9mKG1hdHJpeCkp
OworICAgIG1hdHJpeFsxNV0gPSAwLjIxMjVmOworICAgIG1hdHJpeFsxNl0gPSAwLjcxNTRmOwor
ICAgIG1hdHJpeFsxN10gPSAwLjA3MjFmOworfQorCit2b2lkIEZFQ29sb3JNYXRyaXg6OnBsYXRm
b3JtQXBwbHlTa2lhKCkKK3sKKyAgICBJbWFnZUJ1ZmZlciogcmVzdWx0SW1hZ2UgPSBjcmVhdGVJ
bWFnZUJ1ZmZlclJlc3VsdCgpOworICAgIGlmICghcmVzdWx0SW1hZ2UpCisgICAgICAgIHJldHVy
bjsKKworICAgIEZpbHRlckVmZmVjdCogaW4gPSBpbnB1dEVmZmVjdCgwKTsKKworICAgIEludFJl
Y3QgaW1hZ2VSZWN0KEludFBvaW50KCksIGFic29sdXRlUGFpbnRSZWN0KCkuc2l6ZSgpKTsKKwor
ICAgIFNrU2NhbGFyIG1hdHJpeFsyMF07CisKKyAgICBzd2l0Y2ggKG1fdHlwZSkgeworICAgIGNh
c2UgRkVDT0xPUk1BVFJJWF9UWVBFX1VOS05PV046CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ug
RkVDT0xPUk1BVFJJWF9UWVBFX01BVFJJWDoKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCAy
MDsgKytpKQorICAgICAgICAgICAgbWF0cml4W2ldID0gbV92YWx1ZXNbaV07CisKKyAgICAgICAg
bWF0cml4WzRdICo9IFNrU2NhbGFyKDI1NSk7CisgICAgICAgIG1hdHJpeFs5XSAqPSBTa1NjYWxh
cigyNTUpOworICAgICAgICBtYXRyaXhbMTRdICo9IFNrU2NhbGFyKDI1NSk7CisgICAgICAgIG1h
dHJpeFsxOV0gKj0gU2tTY2FsYXIoMjU1KTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBGRUNP
TE9STUFUUklYX1RZUEVfU0FUVVJBVEU6IAorICAgICAgICBzYXR1cmF0ZU1hdHJpeChtX3ZhbHVl
c1swXSwgbWF0cml4KTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBGRUNPTE9STUFUUklYX1RZ
UEVfSFVFUk9UQVRFOgorICAgICAgICBodWVSb3RhdGVNYXRyaXgobV92YWx1ZXNbMF0sIG1hdHJp
eCk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgRkVDT0xPUk1BVFJJWF9UWVBFX0xVTUlOQU5D
RVRPQUxQSEE6CisgICAgICAgIGx1bWluYW5jZVRvQWxwaGFNYXRyaXgobWF0cml4KTsKKyAgICAg
ICAgYnJlYWs7CisgICAgfQorCisgICAgUmVmUHRyPEltYWdlPiBpbWFnZSA9IGluLT5hc0ltYWdl
QnVmZmVyKCktPmNvcHlJbWFnZShEb250Q29weUJhY2tpbmdTdG9yZSk7CisgICAgTmF0aXZlSW1h
Z2VTa2lhKiBuYXRpdmVJbWFnZSA9IGltYWdlLT5uYXRpdmVJbWFnZUZvckN1cnJlbnRGcmFtZSgp
OworICAgIGlmICghbmF0aXZlSW1hZ2UpCisgICAgICAgIHJldHVybjsKKworICAgIFNrQ2FudmFz
KiBjYW52YXMgPSByZXN1bHRJbWFnZS0+Y29udGV4dCgpLT5wbGF0Zm9ybUNvbnRleHQoKS0+Y2Fu
dmFzKCk7CisgICAgU2tQYWludCBwYWludDsKKyAgICBwYWludC5zZXRDb2xvckZpbHRlcihuZXcg
U2tDb2xvck1hdHJpeEZpbHRlcihtYXRyaXgpKS0+dW5yZWYoKTsKKyAgICBwYWludC5zZXRYZmVy
bW9kZU1vZGUoU2tYZmVybW9kZTo6a1NyY19Nb2RlKTsKKyAgICBjYW52YXMtPmRyYXdCaXRtYXAo
bmF0aXZlSW1hZ2UtPmJpdG1hcCgpLCAwLCAwLCAmcGFpbnQpOworfQorCit9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoRklMVEVSUykgJiYgVVNFKFNLSUEpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>121201</attachid>
            <date>2012-01-04 18:33:11 -0800</date>
            <delta_ts>2012-01-05 08:30:25 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-75582-20120104213310.patch</filename>
            <type>text/plain</type>
            <size>8283</size>
            <attacher name="Stephen White">senorblanco</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwNDEwOCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI0IEBACisyMDEyLTAxLTA0ICBTdGVwaGVu
IFdoaXRlICA8c2Vub3JibGFuY29AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtTa2lhXSBTd2l0
Y2ggRkVDb2xvck1hdHJpeCB0byB1c2UgYSBza2lhLWJhc2VkIGltcGxlbWVudGF0aW9uIHdoZW4K
KyAgICAgICAgY29tcGlsaW5nIHdpdGggVVNFKFNLSUEpLgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU1ODIKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDb3ZlcmVkIGJ5IHN2Zy9XM0MtU1ZHLTEuMS9maWx0
ZXJzLWNvbG9yLTAxLWIuc3ZnIGFuZCBmcmllbmRzICh3aWxsCisgICAgICAgIG5lZWQgYSByZWJh
c2VsaW5lKS4KKworICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9maWx0ZXJzL0ZFQ29sb3JNYXRyaXguY3BwOgorICAgICAgICAoV2ViQ29yZTo6RkVD
b2xvck1hdHJpeDo6cGxhdGZvcm1BcHBseVNvZnR3YXJlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9maWx0ZXJzL0ZFQ29sb3JNYXRyaXguaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9maWx0ZXJzL3NraWEvRkVDb2xvck1hdHJpeFNraWEuY3BwOiBBZGRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OnNhdHVyYXRlTWF0cml4KToKKyAgICAgICAgKFdlYkNvcmU6Omh1ZVJvdGF0ZU1h
dHJpeCk6CisgICAgICAgIChXZWJDb3JlOjpsdW1pbmFuY2VUb0FscGhhTWF0cml4KToKKyAgICAg
ICAgKFdlYkNvcmU6OkZFQ29sb3JNYXRyaXg6OnBsYXRmb3JtQXBwbHlTa2lhKToKKwogMjAxMi0w
MS0wNCAgSmFtZXMgUm9iaW5zb24gIDxqYW1lc3JAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtj
aHJvbWl1bV0gUmVtb3ZlIGNocm9taXVtIGNvbXBvc2l0b3Igc3VwcG9ydCBmb3IgdW51c2VkIHpv
b21BbmltYXRvclRyYW5zZm9ybQpJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQkocmV2aXNpb24gMTA0MTA4
KQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCSh3b3JraW5nIGNvcHkpCkBAIC0zNzI4
LDYgKzM3MjgsNyBAQAogICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvYXJt
L0ZFR2F1c3NpYW5CbHVyTkVPTi5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9m
aWx0ZXJzL2FybS9GRUxpZ2h0aW5nTkVPTi5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2dy
YXBoaWNzL2ZpbHRlcnMvYXJtL0ZFTGlnaHRpbmdORU9OLmgnLAorICAgICAgICAgICAgJ3BsYXRm
b3JtL2dyYXBoaWNzL2ZpbHRlcnMvc2tpYS9GRUNvbG9yTWF0cml4U2tpYS5jcHAnLAogICAgICAg
ICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvc2tpYS9GRUdhdXNzaWFuQmx1clNraWEu
Y3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9mcmVldHlwZS9Gb250Q2FjaGVG
cmVlVHlwZS5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL2ZyZWV0eXBlL0Zv
bnRDdXN0b21QbGF0Zm9ybURhdGFGcmVlVHlwZS5jcHAnLApJbmRleDogU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbG9yTWF0cml4LmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29sb3JNYXRyaXgu
Y3BwCShyZXZpc2lvbiAxMDQxMDgpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9maWx0ZXJzL0ZFQ29sb3JNYXRyaXguY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNTgsNiArMTU4
LDEwIEBAIHZvaWQgZWZmZWN0VHlwZShCeXRlQXJyYXkqIHBpeGVsQXJyYXksIGMKIAogdm9pZCBG
RUNvbG9yTWF0cml4OjpwbGF0Zm9ybUFwcGx5U29mdHdhcmUoKQogeworI2lmIFVTRShTS0lBKQor
ICAgIHBsYXRmb3JtQXBwbHlTa2lhKCk7CisgICAgcmV0dXJuOworI2Vsc2UKICAgICBGaWx0ZXJF
ZmZlY3QqIGluID0gaW5wdXRFZmZlY3QoMCk7CiAKICAgICBJbWFnZUJ1ZmZlciogcmVzdWx0SW1h
Z2UgPSBjcmVhdGVJbWFnZUJ1ZmZlclJlc3VsdCgpOwpAQCAtMTg4LDYgKzE5Miw3IEBAIHZvaWQg
RkVDb2xvck1hdHJpeDo6cGxhdGZvcm1BcHBseVNvZnR3YXIKICAgICB9CiAKICAgICByZXN1bHRJ
bWFnZS0+cHV0VW5tdWx0aXBsaWVkSW1hZ2VEYXRhKHBpeGVsQXJyYXkuZ2V0KCksIGltYWdlUmVj
dC5zaXplKCksIGltYWdlUmVjdCwgSW50UG9pbnQoKSk7CisjZW5kaWYKIH0KIAogdm9pZCBGRUNv
bG9yTWF0cml4OjpkdW1wKCkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2ZpbHRlcnMvRkVDb2xvck1hdHJpeC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb2xvck1hdHJpeC5oCShyZXZpc2lvbiAxMDQxMDgp
CisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29sb3JNYXRy
aXguaAkod29ya2luZyBjb3B5KQpAQCAtNDksNiArNDksOSBAQCBwdWJsaWM6CiAgICAgYm9vbCBz
ZXRWYWx1ZXMoY29uc3QgVmVjdG9yPGZsb2F0PiYpOwogCiAgICAgdmlydHVhbCB2b2lkIHBsYXRm
b3JtQXBwbHlTb2Z0d2FyZSgpOworI2lmIFVTRShTS0lBKQorICAgIHZvaWQgcGxhdGZvcm1BcHBs
eVNraWEoKTsKKyNlbmRpZgogICAgIHZpcnR1YWwgdm9pZCBkdW1wKCk7CiAKICAgICB2aXJ0dWFs
IFRleHRTdHJlYW0mIGV4dGVybmFsUmVwcmVzZW50YXRpb24oVGV4dFN0cmVhbSYsIGludCBpbmRl
bnRpb24pIGNvbnN0OwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmls
dGVycy9za2lhL0ZFQ29sb3JNYXRyaXhTa2lhLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL3NraWEvRkVDb2xvck1hdHJpeFNraWEuY3Bw
CShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVy
cy9za2lhL0ZFQ29sb3JNYXRyaXhTa2lhLmNwcAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxMzIg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisg
KiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaWYgRU5BQkxFKEZJTFRFUlMpICYmIFVT
RShTS0lBKQorI2luY2x1ZGUgIkZFQ29sb3JNYXRyaXguaCIKKworI2luY2x1ZGUgIk5hdGl2ZUlt
YWdlU2tpYS5oIgorI2luY2x1ZGUgIlNrQ29sb3JNYXRyaXhGaWx0ZXIuaCIKKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCitzdGF0aWMgdm9pZCBzYXR1cmF0ZU1hdHJpeChmbG9hdCBzLCBTa1NjYWxh
ciBtYXRyaXhbMjBdKQoreworICAgIG1hdHJpeFswXSA9IDAuMjEzZiArIDAuNzg3ZiAqIHM7Cisg
ICAgbWF0cml4WzFdID0gMC43MTVmIC0gMC43MTVmICogczsKKyAgICBtYXRyaXhbMl0gPSAwLjA3
MmYgLSAwLjA3MmYgKiBzOworICAgIG1hdHJpeFszXSA9IG1hdHJpeFs0XSA9IDA7CisgICAgbWF0
cml4WzVdID0gMC4yMTNmIC0gMC4yMTNmICogczsKKyAgICBtYXRyaXhbNl0gPSAwLjcxNWYgKyAw
LjI4NWYgKiBzOworICAgIG1hdHJpeFs3XSA9IDAuMDcyZiAtIDAuMDcyZiAqIHM7CisgICAgbWF0
cml4WzhdID0gbWF0cml4WzldID0gMDsKKyAgICBtYXRyaXhbMTBdID0gMC4yMTNmIC0gMC4yMTNm
ICogczsKKyAgICBtYXRyaXhbMTFdID0gMC43MTVmIC0gMC43MTVmICogczsKKyAgICBtYXRyaXhb
MTJdID0gMC4wNzJmICsgMC45MjhmICogczsKKyAgICBtYXRyaXhbMTNdID0gbWF0cml4WzE0XSA9
IDA7CisgICAgbWF0cml4WzE1XSA9IG1hdHJpeFsxNl0gPSBtYXRyaXhbMTddID0gMDsKKyAgICBt
YXRyaXhbMThdID0gMTsKKyAgICBtYXRyaXhbMTldID0gMDsKK30KKworc3RhdGljIHZvaWQgaHVl
Um90YXRlTWF0cml4KGZsb2F0IGh1ZSwgU2tTY2FsYXIgbWF0cml4WzIwXSkKK3sKKyAgICBmbG9h
dCBjb3NIdWUgPSBjb3NmKGh1ZSAqIHBpRmxvYXQgLyAxODApOyAKKyAgICBmbG9hdCBzaW5IdWUg
PSBzaW5mKGh1ZSAqIHBpRmxvYXQgLyAxODApOyAKKyAgICBtYXRyaXhbMF0gPSAgMC4yMTNmICsg
Y29zSHVlICogMC43ODdmIC0gc2luSHVlICogMC4yMTNmOworICAgIG1hdHJpeFsxXSA9ICAwLjcx
NWYgLSBjb3NIdWUgKiAwLjcxNWYgLSBzaW5IdWUgKiAwLjcxNWY7CisgICAgbWF0cml4WzJdID0g
IDAuMDcyZiAtIGNvc0h1ZSAqIDAuMDcyZiArIHNpbkh1ZSAqIDAuOTI4ZjsKKyAgICBtYXRyaXhb
M10gPSBtYXRyaXhbNF0gPSAwOworICAgIG1hdHJpeFs1XSA9ICAwLjIxM2YgLSBjb3NIdWUgKiAw
LjIxM2YgKyBzaW5IdWUgKiAwLjE0M2Y7CisgICAgbWF0cml4WzZdID0gIDAuNzE1ZiArIGNvc0h1
ZSAqIDAuMjg1ZiArIHNpbkh1ZSAqIDAuMTQwZjsKKyAgICBtYXRyaXhbN10gPSAgMC4wNzJmIC0g
Y29zSHVlICogMC4wNzJmIC0gc2luSHVlICogMC4yODNmOworICAgIG1hdHJpeFs4XSA9IG1hdHJp
eFs5XSA9IDA7CisgICAgbWF0cml4WzEwXSA9IDAuMjEzZiAtIGNvc0h1ZSAqIDAuMjEzZiAtIHNp
bkh1ZSAqIDAuNzg3ZjsKKyAgICBtYXRyaXhbMTFdID0gMC43MTVmIC0gY29zSHVlICogMC43MTVm
ICsgc2luSHVlICogMC43MTVmOworICAgIG1hdHJpeFsxMl0gPSAwLjA3MmYgKyBjb3NIdWUgKiAw
LjkyOGYgKyBzaW5IdWUgKiAwLjA3MmY7CisgICAgbWF0cml4WzEzXSA9IG1hdHJpeFsxNF0gPSAw
OworICAgIG1hdHJpeFsxNV0gPSBtYXRyaXhbMTZdID0gbWF0cml4WzE3XSA9IDA7CisgICAgbWF0
cml4WzE4XSA9IDE7CisgICAgbWF0cml4WzE5XSA9IDA7Cit9CisKK3N0YXRpYyB2b2lkIGx1bWlu
YW5jZVRvQWxwaGFNYXRyaXgoU2tTY2FsYXIgbWF0cml4WzIwXSkKK3sKKyAgICBtZW1zZXQobWF0
cml4LCAwLCBzaXplb2YobWF0cml4KSk7CisgICAgbWF0cml4WzE1XSA9IDAuMjEyNWY7CisgICAg
bWF0cml4WzE2XSA9IDAuNzE1NGY7CisgICAgbWF0cml4WzE3XSA9IDAuMDcyMWY7Cit9CisKK3Zv
aWQgRkVDb2xvck1hdHJpeDo6cGxhdGZvcm1BcHBseVNraWEoKQoreworICAgIEltYWdlQnVmZmVy
KiByZXN1bHRJbWFnZSA9IGNyZWF0ZUltYWdlQnVmZmVyUmVzdWx0KCk7CisgICAgaWYgKCFyZXN1
bHRJbWFnZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgRmlsdGVyRWZmZWN0KiBpbiA9IGlucHV0
RWZmZWN0KDApOworCisgICAgSW50UmVjdCBpbWFnZVJlY3QoSW50UG9pbnQoKSwgYWJzb2x1dGVQ
YWludFJlY3QoKS5zaXplKCkpOworCisgICAgU2tTY2FsYXIgbWF0cml4WzIwXTsKKworICAgIHN3
aXRjaCAobV90eXBlKSB7CisgICAgY2FzZSBGRUNPTE9STUFUUklYX1RZUEVfVU5LTk9XTjoKKyAg
ICAgICAgYnJlYWs7CisgICAgY2FzZSBGRUNPTE9STUFUUklYX1RZUEVfTUFUUklYOgorICAgICAg
ICBmb3IgKGludCBpID0gMDsgaSA8IDIwOyArK2kpCisgICAgICAgICAgICBtYXRyaXhbaV0gPSBt
X3ZhbHVlc1tpXTsKKworICAgICAgICBtYXRyaXhbNF0gKj0gU2tTY2FsYXIoMjU1KTsKKyAgICAg
ICAgbWF0cml4WzldICo9IFNrU2NhbGFyKDI1NSk7CisgICAgICAgIG1hdHJpeFsxNF0gKj0gU2tT
Y2FsYXIoMjU1KTsKKyAgICAgICAgbWF0cml4WzE5XSAqPSBTa1NjYWxhcigyNTUpOworICAgICAg
ICBicmVhazsKKyAgICBjYXNlIEZFQ09MT1JNQVRSSVhfVFlQRV9TQVRVUkFURTogCisgICAgICAg
IHNhdHVyYXRlTWF0cml4KG1fdmFsdWVzWzBdLCBtYXRyaXgpOworICAgICAgICBicmVhazsKKyAg
ICBjYXNlIEZFQ09MT1JNQVRSSVhfVFlQRV9IVUVST1RBVEU6CisgICAgICAgIGh1ZVJvdGF0ZU1h
dHJpeChtX3ZhbHVlc1swXSwgbWF0cml4KTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBGRUNP
TE9STUFUUklYX1RZUEVfTFVNSU5BTkNFVE9BTFBIQToKKyAgICAgICAgbHVtaW5hbmNlVG9BbHBo
YU1hdHJpeChtYXRyaXgpOworICAgICAgICBicmVhazsKKyAgICB9CisKKyAgICBSZWZQdHI8SW1h
Z2U+IGltYWdlID0gaW4tPmFzSW1hZ2VCdWZmZXIoKS0+Y29weUltYWdlKERvbnRDb3B5QmFja2lu
Z1N0b3JlKTsKKyAgICBOYXRpdmVJbWFnZVNraWEqIG5hdGl2ZUltYWdlID0gaW1hZ2UtPm5hdGl2
ZUltYWdlRm9yQ3VycmVudEZyYW1lKCk7CisgICAgaWYgKCFuYXRpdmVJbWFnZSkKKyAgICAgICAg
cmV0dXJuOworCisgICAgU2tDYW52YXMqIGNhbnZhcyA9IHJlc3VsdEltYWdlLT5jb250ZXh0KCkt
PnBsYXRmb3JtQ29udGV4dCgpLT5jYW52YXMoKTsKKyAgICBTa1BhaW50IHBhaW50OworICAgIHBh
aW50LnNldENvbG9yRmlsdGVyKG5ldyBTa0NvbG9yTWF0cml4RmlsdGVyKG1hdHJpeCkpLT51bnJl
ZigpOworICAgIHBhaW50LnNldFhmZXJtb2RlTW9kZShTa1hmZXJtb2RlOjprU3JjX01vZGUpOwor
ICAgIGNhbnZhcy0+ZHJhd0JpdG1hcChuYXRpdmVJbWFnZS0+Yml0bWFwKCksIDAsIDAsICZwYWlu
dCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShGSUxU
RVJTKSAmJiBVU0UoU0tJQSkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>121283</attachid>
            <date>2012-01-05 08:30:30 -0800</date>
            <delta_ts>2012-01-06 11:20:41 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-75582-20120105113029.patch</filename>
            <type>text/plain</type>
            <size>10129</size>
            <attacher name="Stephen White">senorblanco</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwNDE2MykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI0IEBACisyMDEyLTAxLTA0ICBTdGVwaGVu
IFdoaXRlICA8c2Vub3JibGFuY29AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtTa2lhXSBTd2l0
Y2ggRkVDb2xvck1hdHJpeCB0byB1c2UgYSBza2lhLWJhc2VkIGltcGxlbWVudGF0aW9uIHdoZW4K
KyAgICAgICAgY29tcGlsaW5nIHdpdGggVVNFKFNLSUEpLgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU1ODIKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDb3ZlcmVkIGJ5IHN2Zy9XM0MtU1ZHLTEuMS9maWx0
ZXJzLWNvbG9yLTAxLWIuc3ZnIGFuZCBmcmllbmRzICh3aWxsCisgICAgICAgIG5lZWQgYSByZWJh
c2VsaW5lKS4KKworICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9maWx0ZXJzL0ZFQ29sb3JNYXRyaXguY3BwOgorICAgICAgICAoV2ViQ29yZTo6RkVD
b2xvck1hdHJpeDo6cGxhdGZvcm1BcHBseVNvZnR3YXJlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9maWx0ZXJzL0ZFQ29sb3JNYXRyaXguaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9maWx0ZXJzL3NraWEvRkVDb2xvck1hdHJpeFNraWEuY3BwOiBBZGRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OnNhdHVyYXRlTWF0cml4KToKKyAgICAgICAgKFdlYkNvcmU6Omh1ZVJvdGF0ZU1h
dHJpeCk6CisgICAgICAgIChXZWJDb3JlOjpsdW1pbmFuY2VUb0FscGhhTWF0cml4KToKKyAgICAg
ICAgKFdlYkNvcmU6OkZFQ29sb3JNYXRyaXg6OnBsYXRmb3JtQXBwbHlTa2lhKToKKwogMjAxMi0w
MS0wNSAgR3J6ZWdvcnogQ3phamtvd3NraSAgPGcuY3phamtvd3NraUBzYW1zdW5nLmNvbT4KIAog
ICAgICAgICBbRUZMXSBSZXBsYWNlIGFsbG9jYSB0byBDKysgbmV3IHBsYWNlbWVudC4KSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLmd5cGkJKHJldmlzaW9uIDEwNDE2MSkKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNv
cmUuZ3lwaQkod29ya2luZyBjb3B5KQpAQCAtMzczMiw2ICszNzMyLDcgQEAKICAgICAgICAgICAg
ICdwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL2FybS9GRUdhdXNzaWFuQmx1ck5FT04uaCcsCiAg
ICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9hcm0vRkVMaWdodGluZ05FT04u
Y3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL2FybS9GRUxpZ2h0
aW5nTkVPTi5oJywKKyAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL3NraWEv
RkVDb2xvck1hdHJpeFNraWEuY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9m
aWx0ZXJzL3NraWEvRkVHYXVzc2lhbkJsdXJTa2lhLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZv
cm0vZ3JhcGhpY3MvZnJlZXR5cGUvRm9udENhY2hlRnJlZVR5cGUuY3BwJywKICAgICAgICAgICAg
ICdwbGF0Zm9ybS9ncmFwaGljcy9mcmVldHlwZS9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhRnJlZVR5
cGUuY3BwJywKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMv
RkVDb2xvck1hdHJpeC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZmlsdGVycy9GRUNvbG9yTWF0cml4LmNwcAkocmV2aXNpb24gMTA0MTYxKQorKysg
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbG9yTWF0cml4LmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMTU4LDYgKzE1OCwxMCBAQCB2b2lkIGVmZmVjdFR5cGUoQnl0
ZUFycmF5KiBwaXhlbEFycmF5LCBjCiAKIHZvaWQgRkVDb2xvck1hdHJpeDo6cGxhdGZvcm1BcHBs
eVNvZnR3YXJlKCkKIHsKKyNpZiBVU0UoU0tJQSkKKyAgICBwbGF0Zm9ybUFwcGx5U2tpYSgpOwor
ICAgIHJldHVybjsKKyNlbHNlCiAgICAgRmlsdGVyRWZmZWN0KiBpbiA9IGlucHV0RWZmZWN0KDAp
OwogCiAgICAgSW1hZ2VCdWZmZXIqIHJlc3VsdEltYWdlID0gY3JlYXRlSW1hZ2VCdWZmZXJSZXN1
bHQoKTsKQEAgLTE4OCw2ICsxOTIsNyBAQCB2b2lkIEZFQ29sb3JNYXRyaXg6OnBsYXRmb3JtQXBw
bHlTb2Z0d2FyCiAgICAgfQogCiAgICAgcmVzdWx0SW1hZ2UtPnB1dFVubXVsdGlwbGllZEltYWdl
RGF0YShwaXhlbEFycmF5LmdldCgpLCBpbWFnZVJlY3Quc2l6ZSgpLCBpbWFnZVJlY3QsIEludFBv
aW50KCkpOworI2VuZGlmCiB9CiAKIHZvaWQgRkVDb2xvck1hdHJpeDo6ZHVtcCgpCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29sb3JNYXRyaXguaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZF
Q29sb3JNYXRyaXguaAkocmV2aXNpb24gMTA0MTYxKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbG9yTWF0cml4LmgJKHdvcmtpbmcgY29weSkKQEAgLTQ5
LDYgKzQ5LDkgQEAgcHVibGljOgogICAgIGJvb2wgc2V0VmFsdWVzKGNvbnN0IFZlY3RvcjxmbG9h
dD4mKTsKIAogICAgIHZpcnR1YWwgdm9pZCBwbGF0Zm9ybUFwcGx5U29mdHdhcmUoKTsKKyNpZiBV
U0UoU0tJQSkKKyAgICB2b2lkIHBsYXRmb3JtQXBwbHlTa2lhKCk7CisjZW5kaWYKICAgICB2aXJ0
dWFsIHZvaWQgZHVtcCgpOwogCiAgICAgdmlydHVhbCBUZXh0U3RyZWFtJiBleHRlcm5hbFJlcHJl
c2VudGF0aW9uKFRleHRTdHJlYW0mLCBpbnQgaW5kZW50aW9uKSBjb25zdDsKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvc2tpYS9GRUNvbG9yTWF0cml4U2tp
YS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmls
dGVycy9za2lhL0ZFQ29sb3JNYXRyaXhTa2lhLmNwcAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvc2tpYS9GRUNvbG9yTWF0cml4U2tpYS5j
cHAJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTMyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJV
VE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBB
UkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
CisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorI2lmIEVOQUJMRShGSUxURVJTKSAmJiBVU0UoU0tJQSkKKyNpbmNsdWRlICJGRUNvbG9y
TWF0cml4LmgiCisKKyNpbmNsdWRlICJOYXRpdmVJbWFnZVNraWEuaCIKKyNpbmNsdWRlICJTa0Nv
bG9yTWF0cml4RmlsdGVyLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworc3RhdGljIHZvaWQg
c2F0dXJhdGVNYXRyaXgoZmxvYXQgcywgU2tTY2FsYXIgbWF0cml4WzIwXSkKK3sKKyAgICBtYXRy
aXhbMF0gPSAwLjIxM2YgKyAwLjc4N2YgKiBzOworICAgIG1hdHJpeFsxXSA9IDAuNzE1ZiAtIDAu
NzE1ZiAqIHM7CisgICAgbWF0cml4WzJdID0gMC4wNzJmIC0gMC4wNzJmICogczsKKyAgICBtYXRy
aXhbM10gPSBtYXRyaXhbNF0gPSAwOworICAgIG1hdHJpeFs1XSA9IDAuMjEzZiAtIDAuMjEzZiAq
IHM7CisgICAgbWF0cml4WzZdID0gMC43MTVmICsgMC4yODVmICogczsKKyAgICBtYXRyaXhbN10g
PSAwLjA3MmYgLSAwLjA3MmYgKiBzOworICAgIG1hdHJpeFs4XSA9IG1hdHJpeFs5XSA9IDA7Cisg
ICAgbWF0cml4WzEwXSA9IDAuMjEzZiAtIDAuMjEzZiAqIHM7CisgICAgbWF0cml4WzExXSA9IDAu
NzE1ZiAtIDAuNzE1ZiAqIHM7CisgICAgbWF0cml4WzEyXSA9IDAuMDcyZiArIDAuOTI4ZiAqIHM7
CisgICAgbWF0cml4WzEzXSA9IG1hdHJpeFsxNF0gPSAwOworICAgIG1hdHJpeFsxNV0gPSBtYXRy
aXhbMTZdID0gbWF0cml4WzE3XSA9IDA7CisgICAgbWF0cml4WzE4XSA9IDE7CisgICAgbWF0cml4
WzE5XSA9IDA7Cit9CisKK3N0YXRpYyB2b2lkIGh1ZVJvdGF0ZU1hdHJpeChmbG9hdCBodWUsIFNr
U2NhbGFyIG1hdHJpeFsyMF0pCit7CisgICAgZmxvYXQgY29zSHVlID0gY29zZihodWUgKiBwaUZs
b2F0IC8gMTgwKTsgCisgICAgZmxvYXQgc2luSHVlID0gc2luZihodWUgKiBwaUZsb2F0IC8gMTgw
KTsgCisgICAgbWF0cml4WzBdID0gIDAuMjEzZiArIGNvc0h1ZSAqIDAuNzg3ZiAtIHNpbkh1ZSAq
IDAuMjEzZjsKKyAgICBtYXRyaXhbMV0gPSAgMC43MTVmIC0gY29zSHVlICogMC43MTVmIC0gc2lu
SHVlICogMC43MTVmOworICAgIG1hdHJpeFsyXSA9ICAwLjA3MmYgLSBjb3NIdWUgKiAwLjA3MmYg
KyBzaW5IdWUgKiAwLjkyOGY7CisgICAgbWF0cml4WzNdID0gbWF0cml4WzRdID0gMDsKKyAgICBt
YXRyaXhbNV0gPSAgMC4yMTNmIC0gY29zSHVlICogMC4yMTNmICsgc2luSHVlICogMC4xNDNmOwor
ICAgIG1hdHJpeFs2XSA9ICAwLjcxNWYgKyBjb3NIdWUgKiAwLjI4NWYgKyBzaW5IdWUgKiAwLjE0
MGY7CisgICAgbWF0cml4WzddID0gIDAuMDcyZiAtIGNvc0h1ZSAqIDAuMDcyZiAtIHNpbkh1ZSAq
IDAuMjgzZjsKKyAgICBtYXRyaXhbOF0gPSBtYXRyaXhbOV0gPSAwOworICAgIG1hdHJpeFsxMF0g
PSAwLjIxM2YgLSBjb3NIdWUgKiAwLjIxM2YgLSBzaW5IdWUgKiAwLjc4N2Y7CisgICAgbWF0cml4
WzExXSA9IDAuNzE1ZiAtIGNvc0h1ZSAqIDAuNzE1ZiArIHNpbkh1ZSAqIDAuNzE1ZjsKKyAgICBt
YXRyaXhbMTJdID0gMC4wNzJmICsgY29zSHVlICogMC45MjhmICsgc2luSHVlICogMC4wNzJmOwor
ICAgIG1hdHJpeFsxM10gPSBtYXRyaXhbMTRdID0gMDsKKyAgICBtYXRyaXhbMTVdID0gbWF0cml4
WzE2XSA9IG1hdHJpeFsxN10gPSAwOworICAgIG1hdHJpeFsxOF0gPSAxOworICAgIG1hdHJpeFsx
OV0gPSAwOworfQorCitzdGF0aWMgdm9pZCBsdW1pbmFuY2VUb0FscGhhTWF0cml4KFNrU2NhbGFy
IG1hdHJpeFsyMF0pCit7CisgICAgbWVtc2V0KG1hdHJpeCwgMCwgc2l6ZW9mKG1hdHJpeCkpOwor
ICAgIG1hdHJpeFsxNV0gPSAwLjIxMjVmOworICAgIG1hdHJpeFsxNl0gPSAwLjcxNTRmOworICAg
IG1hdHJpeFsxN10gPSAwLjA3MjFmOworfQorCit2b2lkIEZFQ29sb3JNYXRyaXg6OnBsYXRmb3Jt
QXBwbHlTa2lhKCkKK3sKKyAgICBJbWFnZUJ1ZmZlciogcmVzdWx0SW1hZ2UgPSBjcmVhdGVJbWFn
ZUJ1ZmZlclJlc3VsdCgpOworICAgIGlmICghcmVzdWx0SW1hZ2UpCisgICAgICAgIHJldHVybjsK
KworICAgIEZpbHRlckVmZmVjdCogaW4gPSBpbnB1dEVmZmVjdCgwKTsKKworICAgIEludFJlY3Qg
aW1hZ2VSZWN0KEludFBvaW50KCksIGFic29sdXRlUGFpbnRSZWN0KCkuc2l6ZSgpKTsKKworICAg
IFNrU2NhbGFyIG1hdHJpeFsyMF07CisKKyAgICBzd2l0Y2ggKG1fdHlwZSkgeworICAgIGNhc2Ug
RkVDT0xPUk1BVFJJWF9UWVBFX1VOS05PV046CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgRkVD
T0xPUk1BVFJJWF9UWVBFX01BVFJJWDoKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCAyMDsg
KytpKQorICAgICAgICAgICAgbWF0cml4W2ldID0gbV92YWx1ZXNbaV07CisKKyAgICAgICAgbWF0
cml4WzRdICo9IFNrU2NhbGFyKDI1NSk7CisgICAgICAgIG1hdHJpeFs5XSAqPSBTa1NjYWxhcigy
NTUpOworICAgICAgICBtYXRyaXhbMTRdICo9IFNrU2NhbGFyKDI1NSk7CisgICAgICAgIG1hdHJp
eFsxOV0gKj0gU2tTY2FsYXIoMjU1KTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBGRUNPTE9S
TUFUUklYX1RZUEVfU0FUVVJBVEU6IAorICAgICAgICBzYXR1cmF0ZU1hdHJpeChtX3ZhbHVlc1sw
XSwgbWF0cml4KTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBGRUNPTE9STUFUUklYX1RZUEVf
SFVFUk9UQVRFOgorICAgICAgICBodWVSb3RhdGVNYXRyaXgobV92YWx1ZXNbMF0sIG1hdHJpeCk7
CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgRkVDT0xPUk1BVFJJWF9UWVBFX0xVTUlOQU5DRVRP
QUxQSEE6CisgICAgICAgIGx1bWluYW5jZVRvQWxwaGFNYXRyaXgobWF0cml4KTsKKyAgICAgICAg
YnJlYWs7CisgICAgfQorCisgICAgUmVmUHRyPEltYWdlPiBpbWFnZSA9IGluLT5hc0ltYWdlQnVm
ZmVyKCktPmNvcHlJbWFnZShEb250Q29weUJhY2tpbmdTdG9yZSk7CisgICAgTmF0aXZlSW1hZ2VT
a2lhKiBuYXRpdmVJbWFnZSA9IGltYWdlLT5uYXRpdmVJbWFnZUZvckN1cnJlbnRGcmFtZSgpOwor
ICAgIGlmICghbmF0aXZlSW1hZ2UpCisgICAgICAgIHJldHVybjsKKworICAgIFNrQ2FudmFzKiBj
YW52YXMgPSByZXN1bHRJbWFnZS0+Y29udGV4dCgpLT5wbGF0Zm9ybUNvbnRleHQoKS0+Y2FudmFz
KCk7CisgICAgU2tQYWludCBwYWludDsKKyAgICBwYWludC5zZXRDb2xvckZpbHRlcihuZXcgU2tD
b2xvck1hdHJpeEZpbHRlcihtYXRyaXgpKS0+dW5yZWYoKTsKKyAgICBwYWludC5zZXRYZmVybW9k
ZU1vZGUoU2tYZmVybW9kZTo6a1NyY19Nb2RlKTsKKyAgICBjYW52YXMtPmRyYXdCaXRtYXAobmF0
aXZlSW1hZ2UtPmJpdG1hcCgpLCAwLCAwLCAmcGFpbnQpOworfQorCit9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoRklMVEVSUykgJiYgVVNFKFNLSUEpCkluZGV4OiBM
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CShyZXZpc2lvbiAxMDQxNjMpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29w
eSkKQEAgLTEsMyArMSwxMiBAQAorMjAxMi0wMS0wNSAgU3RlcGhlbiBXaGl0ZSAgPHNlbm9yYmxh
bmNvQGNocm9taXVtLm9yZz4KKworICAgICAgICBbY2hvbWl1bV0gTWFyayBzdmcgRkVDb2xvck1h
dHJpeCB0ZXN0cyBhcyBuZWVkaW5nIG5ldyBiYXNlbGluZXMuCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NTU4MgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBl
Y3RhdGlvbnMudHh0OgorCiAyMDEyLTAxLTA1ICBDc2FiYSBPc3p0cm9nb27DoWMgIDxvc3N5QHdl
YmtpdC5vcmc+CiAKICAgICAgICAgW1F0XVtXSzJdUkVHUkVTU0lPTihyMTA0MDY4KTogZWRpdGlu
Zy9wYXN0ZWJvYXJkL2NvcHktZWxlbWVudC13aXRoLWNvbmZsaWN0aW5nLWJhY2tncm91bmQtY29s
b3ItZnJvbS1ydWxlLmh0bWwgbWFkZSB0aGUgbmV4dCB0ZXN0IGZhaWwKSW5kZXg6IExheW91dFRl
c3RzL3BsYXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQJKHJl
dmlzaW9uIDEwNDE2MSkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhw
ZWN0YXRpb25zLnR4dAkod29ya2luZyBjb3B5KQpAQCAtOTMxLDYgKzkzMSwxNCBAQCBCVUdXSzYy
OTc0IDogc3ZnL2N1c3RvbS9zdmctZm9udHMtaW4taHRtCiBCVUdXSzYyOTc0IDogc3ZnL2N1c3Rv
bS9zdmctZm9udHMtd2l0aC1uby1lbGVtZW50LXJlZmVyZW5jZS5odG1sID0gSU1BR0UrVEVYVCBJ
TUFHRQogQlVHV0s2Mjk3NCBNQUMgOiBzdmcvVzNDLVNWRy0xLjEvcHNlcnZlcnMtZ3JhZC0wOC1i
LnN2ZyA9IElNQUdFCiAKK0JVR1NFTk9SQkxBTkNPIDogc3ZnL1czQy1TVkctMS4xL2ZpbHRlcnMt
Y29sb3ItMDEtYi5zdmcgPSBGQUlMCitCVUdTRU5PUkJMQU5DTyA6IHN2Zy9keW5hbWljLXVwZGF0
ZXMvU1ZHRkVDb2xvck1hdHJpeEVsZW1lbnQtZG9tLWluLWF0dHIuaHRtbCA9IEZBSUwKK0JVR1NF
Tk9SQkxBTkNPIDogc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdGRUNvbG9yTWF0cml4RWxlbWVudC1k
b20tdHlwZS1hdHRyLmh0bWwgPSBGQUlMCitCVUdTRU5PUkJMQU5DTyA6IHN2Zy9keW5hbWljLXVw
ZGF0ZXMvU1ZHRkVDb2xvck1hdHJpeEVsZW1lbnQtZG9tLXZhbHVlcy1hdHRyLmh0bWwgPSBGQUlM
CitCVUdTRU5PUkJMQU5DTyA6IHN2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRkVDb2xvck1hdHJpeEVs
ZW1lbnQtc3ZnZG9tLWluLXByb3AuaHRtbCA9IEZBSUwKK0JVR1NFTk9SQkxBTkNPIDogc3ZnL2Zp
bHRlcnMvZmVDb2xvck1hdHJpeC1vZmZzZXQuc3ZnID0gRkFJTAorQlVHU0VOT1JCTEFOQ08gOiBz
dmcvZmlsdGVycy9mZUNvbG9yTWF0cml4LXNhdHVyYXRlLnN2ZyA9IEZBSUwKKwogLy8gLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KIC8vIEVuZCBTVkcgUmVncmVzc2lvbnMKIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>121450</attachid>
            <date>2012-01-06 11:20:47 -0800</date>
            <delta_ts>2012-01-06 14:41:19 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-75582-20120106142045.patch</filename>
            <type>text/plain</type>
            <size>9362</size>
            <attacher name="Stephen White">senorblanco</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwNDMwMikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIzIEBACisyMDEyLTAxLTA0ICBTdGVwaGVu
IFdoaXRlICA8c2Vub3JibGFuY29AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtTa2lhXSBTd2l0
Y2ggRkVDb2xvck1hdHJpeCB0byB1c2UgYSBza2lhLWJhc2VkIGltcGxlbWVudGF0aW9uIHdoZW4K
KyAgICAgICAgY29tcGlsaW5nIHdpdGggVVNFKFNLSUEpLgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU1ODIKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDb3ZlcmVkIGJ5IHN2Zy9XM0MtU1ZHLTEuMS9maWx0
ZXJzLWNvbG9yLTAxLWIuc3ZnIGFuZCBmcmllbmRzICh3aWxsCisgICAgICAgIG5lZWQgYSByZWJh
c2VsaW5lKS4KKworICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9maWx0ZXJzL0ZFQ29sb3JNYXRyaXguY3BwOgorICAgICAgICAoV2ViQ29yZTo6RkVD
b2xvck1hdHJpeDo6cGxhdGZvcm1BcHBseVNvZnR3YXJlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9maWx0ZXJzL3NraWEvRkVDb2xvck1hdHJpeFNraWEuY3BwOiBBZGRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OnNhdHVyYXRlTWF0cml4KToKKyAgICAgICAgKFdlYkNvcmU6Omh1ZVJvdGF0
ZU1hdHJpeCk6CisgICAgICAgIChXZWJDb3JlOjpsdW1pbmFuY2VUb0FscGhhTWF0cml4KToKKyAg
ICAgICAgKFdlYkNvcmU6OkZFQ29sb3JNYXRyaXg6OnBsYXRmb3JtQXBwbHlTb2Z0d2FyZSk6CisK
IDIwMTItMDEtMDUgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CiAKICAgICAgICAg
UkVHUkVTU0lPTiAocjkwNzk3KTogRnVsbCBzY3JlZW4gdmlkZW8gSFVEIGNhbm5vdCBiZSBkcmFn
Z2VkIGhvcml6b250YWxseQpJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQkocmV2aXNpb24gMTA0MzAyKQor
KysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCSh3b3JraW5nIGNvcHkpCkBAIC0zNzM1LDYg
KzM3MzUsNyBAQAogICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvYXJtL0ZF
R2F1c3NpYW5CbHVyTkVPTi5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9maWx0
ZXJzL2FybS9GRUxpZ2h0aW5nTkVPTi5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBo
aWNzL2ZpbHRlcnMvYXJtL0ZFTGlnaHRpbmdORU9OLmgnLAorICAgICAgICAgICAgJ3BsYXRmb3Jt
L2dyYXBoaWNzL2ZpbHRlcnMvc2tpYS9GRUNvbG9yTWF0cml4U2tpYS5jcHAnLAogICAgICAgICAg
ICAgJ3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvc2tpYS9GRUdhdXNzaWFuQmx1clNraWEuY3Bw
JywKICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9mcmVldHlwZS9Gb250Q2FjaGVGcmVl
VHlwZS5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL2ZyZWV0eXBlL0ZvbnRD
dXN0b21QbGF0Zm9ybURhdGFGcmVlVHlwZS5jcHAnLApJbmRleDogU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbG9yTWF0cml4LmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29sb3JNYXRyaXguY3Bw
CShyZXZpc2lvbiAxMDQzMDIpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9m
aWx0ZXJzL0ZFQ29sb3JNYXRyaXguY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNTYsNiArMTU2LDcg
QEAgdm9pZCBlZmZlY3RUeXBlKEJ5dGVBcnJheSogcGl4ZWxBcnJheSwgYwogICAgIH0KIH0KIAor
I2lmICFVU0UoU0tJQSkKIHZvaWQgRkVDb2xvck1hdHJpeDo6cGxhdGZvcm1BcHBseVNvZnR3YXJl
KCkKIHsKICAgICBGaWx0ZXJFZmZlY3QqIGluID0gaW5wdXRFZmZlY3QoMCk7CkBAIC0xODksNiAr
MTkwLDcgQEAgdm9pZCBGRUNvbG9yTWF0cml4OjpwbGF0Zm9ybUFwcGx5U29mdHdhcgogCiAgICAg
cmVzdWx0SW1hZ2UtPnB1dFVubXVsdGlwbGllZEltYWdlRGF0YShwaXhlbEFycmF5LmdldCgpLCBp
bWFnZVJlY3Quc2l6ZSgpLCBpbWFnZVJlY3QsIEludFBvaW50KCkpOwogfQorI2VuZGlmCiAKIHZv
aWQgRkVDb2xvck1hdHJpeDo6ZHVtcCgpCiB7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9maWx0ZXJzL3NraWEvRkVDb2xvck1hdHJpeFNraWEuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvc2tpYS9GRUNvbG9y
TWF0cml4U2tpYS5jcHAJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9maWx0ZXJzL3NraWEvRkVDb2xvck1hdHJpeFNraWEuY3BwCShyZXZpc2lvbiAwKQpA
QCAtMCwwICsxLDEzMiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICog
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpZiBFTkFCTEUo
RklMVEVSUykgJiYgVVNFKFNLSUEpCisjaW5jbHVkZSAiRkVDb2xvck1hdHJpeC5oIgorCisjaW5j
bHVkZSAiTmF0aXZlSW1hZ2VTa2lhLmgiCisjaW5jbHVkZSAiU2tDb2xvck1hdHJpeEZpbHRlci5o
IgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0YXRpYyB2b2lkIHNhdHVyYXRlTWF0cml4KGZs
b2F0IHMsIFNrU2NhbGFyIG1hdHJpeFsyMF0pCit7CisgICAgbWF0cml4WzBdID0gMC4yMTNmICsg
MC43ODdmICogczsKKyAgICBtYXRyaXhbMV0gPSAwLjcxNWYgLSAwLjcxNWYgKiBzOworICAgIG1h
dHJpeFsyXSA9IDAuMDcyZiAtIDAuMDcyZiAqIHM7CisgICAgbWF0cml4WzNdID0gbWF0cml4WzRd
ID0gMDsKKyAgICBtYXRyaXhbNV0gPSAwLjIxM2YgLSAwLjIxM2YgKiBzOworICAgIG1hdHJpeFs2
XSA9IDAuNzE1ZiArIDAuMjg1ZiAqIHM7CisgICAgbWF0cml4WzddID0gMC4wNzJmIC0gMC4wNzJm
ICogczsKKyAgICBtYXRyaXhbOF0gPSBtYXRyaXhbOV0gPSAwOworICAgIG1hdHJpeFsxMF0gPSAw
LjIxM2YgLSAwLjIxM2YgKiBzOworICAgIG1hdHJpeFsxMV0gPSAwLjcxNWYgLSAwLjcxNWYgKiBz
OworICAgIG1hdHJpeFsxMl0gPSAwLjA3MmYgKyAwLjkyOGYgKiBzOworICAgIG1hdHJpeFsxM10g
PSBtYXRyaXhbMTRdID0gMDsKKyAgICBtYXRyaXhbMTVdID0gbWF0cml4WzE2XSA9IG1hdHJpeFsx
N10gPSAwOworICAgIG1hdHJpeFsxOF0gPSAxOworICAgIG1hdHJpeFsxOV0gPSAwOworfQorCitz
dGF0aWMgdm9pZCBodWVSb3RhdGVNYXRyaXgoZmxvYXQgaHVlLCBTa1NjYWxhciBtYXRyaXhbMjBd
KQoreworICAgIGZsb2F0IGNvc0h1ZSA9IGNvc2YoaHVlICogcGlGbG9hdCAvIDE4MCk7IAorICAg
IGZsb2F0IHNpbkh1ZSA9IHNpbmYoaHVlICogcGlGbG9hdCAvIDE4MCk7IAorICAgIG1hdHJpeFsw
XSA9ICAwLjIxM2YgKyBjb3NIdWUgKiAwLjc4N2YgLSBzaW5IdWUgKiAwLjIxM2Y7CisgICAgbWF0
cml4WzFdID0gIDAuNzE1ZiAtIGNvc0h1ZSAqIDAuNzE1ZiAtIHNpbkh1ZSAqIDAuNzE1ZjsKKyAg
ICBtYXRyaXhbMl0gPSAgMC4wNzJmIC0gY29zSHVlICogMC4wNzJmICsgc2luSHVlICogMC45Mjhm
OworICAgIG1hdHJpeFszXSA9IG1hdHJpeFs0XSA9IDA7CisgICAgbWF0cml4WzVdID0gIDAuMjEz
ZiAtIGNvc0h1ZSAqIDAuMjEzZiArIHNpbkh1ZSAqIDAuMTQzZjsKKyAgICBtYXRyaXhbNl0gPSAg
MC43MTVmICsgY29zSHVlICogMC4yODVmICsgc2luSHVlICogMC4xNDBmOworICAgIG1hdHJpeFs3
XSA9ICAwLjA3MmYgLSBjb3NIdWUgKiAwLjA3MmYgLSBzaW5IdWUgKiAwLjI4M2Y7CisgICAgbWF0
cml4WzhdID0gbWF0cml4WzldID0gMDsKKyAgICBtYXRyaXhbMTBdID0gMC4yMTNmIC0gY29zSHVl
ICogMC4yMTNmIC0gc2luSHVlICogMC43ODdmOworICAgIG1hdHJpeFsxMV0gPSAwLjcxNWYgLSBj
b3NIdWUgKiAwLjcxNWYgKyBzaW5IdWUgKiAwLjcxNWY7CisgICAgbWF0cml4WzEyXSA9IDAuMDcy
ZiArIGNvc0h1ZSAqIDAuOTI4ZiArIHNpbkh1ZSAqIDAuMDcyZjsKKyAgICBtYXRyaXhbMTNdID0g
bWF0cml4WzE0XSA9IDA7CisgICAgbWF0cml4WzE1XSA9IG1hdHJpeFsxNl0gPSBtYXRyaXhbMTdd
ID0gMDsKKyAgICBtYXRyaXhbMThdID0gMTsKKyAgICBtYXRyaXhbMTldID0gMDsKK30KKworc3Rh
dGljIHZvaWQgbHVtaW5hbmNlVG9BbHBoYU1hdHJpeChTa1NjYWxhciBtYXRyaXhbMjBdKQorewor
ICAgIG1lbXNldChtYXRyaXgsIDAsIHNpemVvZihtYXRyaXgpKTsKKyAgICBtYXRyaXhbMTVdID0g
MC4yMTI1ZjsKKyAgICBtYXRyaXhbMTZdID0gMC43MTU0ZjsKKyAgICBtYXRyaXhbMTddID0gMC4w
NzIxZjsKK30KKwordm9pZCBGRUNvbG9yTWF0cml4OjpwbGF0Zm9ybUFwcGx5U29mdHdhcmUoKQor
eworICAgIEltYWdlQnVmZmVyKiByZXN1bHRJbWFnZSA9IGNyZWF0ZUltYWdlQnVmZmVyUmVzdWx0
KCk7CisgICAgaWYgKCFyZXN1bHRJbWFnZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgRmlsdGVy
RWZmZWN0KiBpbiA9IGlucHV0RWZmZWN0KDApOworCisgICAgSW50UmVjdCBpbWFnZVJlY3QoSW50
UG9pbnQoKSwgYWJzb2x1dGVQYWludFJlY3QoKS5zaXplKCkpOworCisgICAgU2tTY2FsYXIgbWF0
cml4WzIwXTsKKworICAgIHN3aXRjaCAobV90eXBlKSB7CisgICAgY2FzZSBGRUNPTE9STUFUUklY
X1RZUEVfVU5LTk9XTjoKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBGRUNPTE9STUFUUklYX1RZ
UEVfTUFUUklYOgorICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IDIwOyArK2kpCisgICAgICAg
ICAgICBtYXRyaXhbaV0gPSBtX3ZhbHVlc1tpXTsKKworICAgICAgICBtYXRyaXhbNF0gKj0gU2tT
Y2FsYXIoMjU1KTsKKyAgICAgICAgbWF0cml4WzldICo9IFNrU2NhbGFyKDI1NSk7CisgICAgICAg
IG1hdHJpeFsxNF0gKj0gU2tTY2FsYXIoMjU1KTsKKyAgICAgICAgbWF0cml4WzE5XSAqPSBTa1Nj
YWxhcigyNTUpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEZFQ09MT1JNQVRSSVhfVFlQRV9T
QVRVUkFURTogCisgICAgICAgIHNhdHVyYXRlTWF0cml4KG1fdmFsdWVzWzBdLCBtYXRyaXgpOwor
ICAgICAgICBicmVhazsKKyAgICBjYXNlIEZFQ09MT1JNQVRSSVhfVFlQRV9IVUVST1RBVEU6Cisg
ICAgICAgIGh1ZVJvdGF0ZU1hdHJpeChtX3ZhbHVlc1swXSwgbWF0cml4KTsKKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBGRUNPTE9STUFUUklYX1RZUEVfTFVNSU5BTkNFVE9BTFBIQToKKyAgICAg
ICAgbHVtaW5hbmNlVG9BbHBoYU1hdHJpeChtYXRyaXgpOworICAgICAgICBicmVhazsKKyAgICB9
CisKKyAgICBSZWZQdHI8SW1hZ2U+IGltYWdlID0gaW4tPmFzSW1hZ2VCdWZmZXIoKS0+Y29weUlt
YWdlKERvbnRDb3B5QmFja2luZ1N0b3JlKTsKKyAgICBOYXRpdmVJbWFnZVNraWEqIG5hdGl2ZUlt
YWdlID0gaW1hZ2UtPm5hdGl2ZUltYWdlRm9yQ3VycmVudEZyYW1lKCk7CisgICAgaWYgKCFuYXRp
dmVJbWFnZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgU2tDYW52YXMqIGNhbnZhcyA9IHJlc3Vs
dEltYWdlLT5jb250ZXh0KCktPnBsYXRmb3JtQ29udGV4dCgpLT5jYW52YXMoKTsKKyAgICBTa1Bh
aW50IHBhaW50OworICAgIHBhaW50LnNldENvbG9yRmlsdGVyKG5ldyBTa0NvbG9yTWF0cml4Rmls
dGVyKG1hdHJpeCkpLT51bnJlZigpOworICAgIHBhaW50LnNldFhmZXJtb2RlTW9kZShTa1hmZXJt
b2RlOjprU3JjX01vZGUpOworICAgIGNhbnZhcy0+ZHJhd0JpdG1hcChuYXRpdmVJbWFnZS0+Yml0
bWFwKCksIDAsIDAsICZwYWludCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2Vu
ZGlmIC8vIEVOQUJMRShGSUxURVJTKSAmJiBVU0UoU0tJQSkKSW5kZXg6IExheW91dFRlc3RzL0No
YW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDEw
NDMwMikKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsx
LDEyIEBACisyMDEyLTAxLTA1ICBTdGVwaGVuIFdoaXRlICA8c2Vub3JibGFuY29AY2hyb21pdW0u
b3JnPgorCisgICAgICAgIFtjaG9taXVtXSBNYXJrIHN2ZyBGRUNvbG9yTWF0cml4IHRlc3RzIGFz
IG5lZWRpbmcgbmV3IGJhc2VsaW5lcy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTc1NTgyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQ6
CisKIDIwMTItMDEtMDYgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CiAKICAgICAg
ICAgQWRkIG5ldyAoZmFpbGluZykgdGVzdCB0byBDaHJvbWl1bSB0ZXN0X2V4cGVjdGF0aW9ucy4g
IEZpeCB0cmFja2VkIGJ5CkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS90ZXN0
X2V4cGVjdGF0aW9ucy50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hy
b21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0CShyZXZpc2lvbiAxMDQzMDIpCisrKyBMYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQJKHdvcmtpbmcgY29w
eSkKQEAgLTkzMyw2ICs5MzMsMTQgQEAgQlVHV0s2Mjk3NCA6IHN2Zy9jdXN0b20vc3ZnLWZvbnRz
LWluLWh0bQogQlVHV0s2Mjk3NCA6IHN2Zy9jdXN0b20vc3ZnLWZvbnRzLXdpdGgtbm8tZWxlbWVu
dC1yZWZlcmVuY2UuaHRtbCA9IElNQUdFK1RFWFQgSU1BR0UKIEJVR1dLNjI5NzQgTUFDIDogc3Zn
L1czQy1TVkctMS4xL3BzZXJ2ZXJzLWdyYWQtMDgtYi5zdmcgPSBJTUFHRQogCitCVUdTRU5PUkJM
QU5DTyA6IHN2Zy9XM0MtU1ZHLTEuMS9maWx0ZXJzLWNvbG9yLTAxLWIuc3ZnID0gRkFJTAorQlVH
U0VOT1JCTEFOQ08gOiBzdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZFQ29sb3JNYXRyaXhFbGVtZW50
LWRvbS1pbi1hdHRyLmh0bWwgPSBGQUlMCitCVUdTRU5PUkJMQU5DTyA6IHN2Zy9keW5hbWljLXVw
ZGF0ZXMvU1ZHRkVDb2xvck1hdHJpeEVsZW1lbnQtZG9tLXR5cGUtYXR0ci5odG1sID0gRkFJTAor
QlVHU0VOT1JCTEFOQ08gOiBzdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZFQ29sb3JNYXRyaXhFbGVt
ZW50LWRvbS12YWx1ZXMtYXR0ci5odG1sID0gRkFJTAorQlVHU0VOT1JCTEFOQ08gOiBzdmcvZHlu
YW1pYy11cGRhdGVzL1NWR0ZFQ29sb3JNYXRyaXhFbGVtZW50LXN2Z2RvbS1pbi1wcm9wLmh0bWwg
PSBGQUlMCitCVUdTRU5PUkJMQU5DTyA6IHN2Zy9maWx0ZXJzL2ZlQ29sb3JNYXRyaXgtb2Zmc2V0
LnN2ZyA9IEZBSUwKK0JVR1NFTk9SQkxBTkNPIDogc3ZnL2ZpbHRlcnMvZmVDb2xvck1hdHJpeC1z
YXR1cmF0ZS5zdmcgPSBGQUlMCisKIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAvLyBFbmQgU1ZHIFJlZ3Jlc3Npb25z
CiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>121499</attachid>
            <date>2012-01-06 14:41:25 -0800</date>
            <delta_ts>2012-01-09 23:33:15 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-75582-20120106174123.patch</filename>
            <type>text/plain</type>
            <size>13853</size>
            <attacher name="Stephen White">senorblanco</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwNDMzOCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQzIEBACisyMDEyLTAxLTA2ICBTdGVwaGVu
IFdoaXRlICA8c2Vub3JibGFuY29AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtTa2lhXSBTd2l0
Y2ggRkVDb2xvck1hdHJpeCB0byB1c2UgYSBza2lhLWJhc2VkIGltcGxlbWVudGF0aW9uIHdoZW4K
KyAgICAgICAgY29tcGlsaW5nIHdpdGggVVNFKFNLSUEpLiAgVGhpcyBjaGFuZ2Ugd2lsbCBhbHNv
IHN3aXRjaCB0aGUgc29mdHdhcmUKKyAgICAgICAgaW1wbGVtZW50YXRpb24gb2YgRkVHYXVzc2lh
bkJsdXIgdG8gdGhlIHNraWEgaW1wbGVtZW50YXRpb24gKGllLiwKKyAgICAgICAgaXQgcmVtb3Zl
cyB0aGUgYWNjZWxlcmF0aW9uIGNoZWNrKS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTc1NTgyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgQ292ZXJlZCBieSBzdmcvVzNDLVNWRy0xLjEvZmlsdGVycy1jb2xv
ci0wMS1iLnN2ZyBhbmQgZnJpZW5kcyAod2lsbAorICAgICAgICBuZWVkIGEgcmViYXNlbGluZSku
CisKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgIEFkZCBGRUNvbG9yTWF0cml4U2tp
YS5jcHAgdG8gdGhlIGJ1aWxkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMv
RkVDb2xvck1hdHJpeC5oOgorICAgICAgICBBZGQgcGxhdGZvcm1BcHBseVNraWEoKS4KKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFR2F1c3NpYW5CbHVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkZFR2F1c3NpYW5CbHVyOjpwbGF0Zm9ybUFwcGx5U29mdHdhcmUpOgorICAg
ICAgICBSZW1vdmUgc2tpYS1zcGVjaWZpYyBjb2RlIGZyb20gRkVHYXVzc2lhbkJsdXI6OnBsYXRm
b3JtQXBwbHlTb2Z0d2FyZSgpLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMv
RkVHYXVzc2lhbkJsdXIuaDoKKyAgICAgICAgTWFrZSBwbGF0Zm9ybUFwcGx5U2tpYSgpIHZpcnR1
YWwsIGFuZCBwdXQgaXQgYmVoaW5kICNpZiBVU0UoU0tJQSkuCisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvZmlsdGVycy9GaWx0ZXJFZmZlY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Rmls
dGVyRWZmZWN0OjphcHBseSk6CisgICAgICAgIENhbGwgb3V0IHRvIHBsYXRmb3JtQXBwbHlTa2lh
KCksIG9yIGZhbGwgYmFjayB0bworICAgICAgICBwbGF0Zm9ybUFwcGx5U29mdHdhcmUoKS4KKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlckVmZmVjdC5oOgorICAgICAg
ICBBZGQgcGxhdGZvcm1BcHBseVNraWEoKS4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9m
aWx0ZXJzL3NraWEvRkVDb2xvck1hdHJpeFNraWEuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OnNhdHVyYXRlTWF0cml4KToKKyAgICAgICAgKFdlYkNvcmU6Omh1ZVJvdGF0ZU1hdHJpeCk6
CisgICAgICAgIChXZWJDb3JlOjpsdW1pbmFuY2VUb0FscGhhTWF0cml4KToKKyAgICAgICAgKFdl
YkNvcmU6OkZFQ29sb3JNYXRyaXg6OnBsYXRmb3JtQXBwbHlTa2lhKToKKyAgICAgICAgUHJvY2Vz
cyBjb2xvciBtYXRyaXggZWZmZWN0LCBieSBjYWxsaW5nIG91dCB0byBnZW5lcmljIG1hdHJpeAor
ICAgICAgICB2ZXJzaW9uIG9mIFNrQ29sb3JNYXRyaXhGaWx0ZXIuCisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvZmlsdGVycy9za2lhL0ZFR2F1c3NpYW5CbHVyU2tpYS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpGRUdhdXNzaWFuQmx1cjo6cGxhdGZvcm1BcHBseVNraWEpOgorICAgICAgICBD
aGFuZ2UgdGhlIHNpZ25hdHVyZSBvZiBGRUdhdXNzaWFuQmx1cjo6cGxhdGZvcm1BcHBseVNraWEg
dG8gYmUgYW4KKyAgICAgICAgb3ZlcnJpZGUgb2YgdGhlIG5ldyBGaWx0ZXJFZmZlY3QgYmFzZSBj
bGFzcyB2ZXJzaW9uLgorCiAyMDEyLTAxLTA0ICBKb24gTGVlICA8am9ubGVlQGFwcGxlLmNvbT4K
IAogICAgICAgICBDbGlja2luZyBvbiB0aGUgY2FuY2VsIGJ1dHRvbiBvbiByZWFkb25seSBhbmQg
ZGlzYWJsZWQgc2VhcmNoIGZpZWxkcyBkYXJrZW5zIGFzIGlmIHRoZSBzZWFyY2ggZmllbGQgd2Fz
IGVkaXRhYmxlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCShyZXZpc2lvbiAxMDQzMjYpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkJKHdvcmtpbmcgY29weSkKQEAgLTM3MzUsNiArMzczNSw3
IEBACiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9hcm0vRkVHYXVzc2lh
bkJsdXJORU9OLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvYXJt
L0ZFTGlnaHRpbmdORU9OLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvZmls
dGVycy9hcm0vRkVMaWdodGluZ05FT04uaCcsCisgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhp
Y3MvZmlsdGVycy9za2lhL0ZFQ29sb3JNYXRyaXhTa2lhLmNwcCcsCiAgICAgICAgICAgICAncGxh
dGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9za2lhL0ZFR2F1c3NpYW5CbHVyU2tpYS5jcHAnLAogICAg
ICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL2ZyZWV0eXBlL0ZvbnRDYWNoZUZyZWVUeXBlLmNw
cCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvZnJlZXR5cGUvRm9udEN1c3RvbVBs
YXRmb3JtRGF0YUZyZWVUeXBlLmNwcCcsCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9maWx0ZXJzL0ZFQ29sb3JNYXRyaXguaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29sb3JNYXRyaXguaAkocmV2aXNpb24g
MTA0MzI2KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNv
bG9yTWF0cml4LmgJKHdvcmtpbmcgY29weSkKQEAgLTQ5LDYgKzQ5LDkgQEAgcHVibGljOgogICAg
IGJvb2wgc2V0VmFsdWVzKGNvbnN0IFZlY3RvcjxmbG9hdD4mKTsKIAogICAgIHZpcnR1YWwgdm9p
ZCBwbGF0Zm9ybUFwcGx5U29mdHdhcmUoKTsKKyNpZiBVU0UoU0tJQSkKKyAgICB2aXJ0dWFsIGJv
b2wgcGxhdGZvcm1BcHBseVNraWEoKTsKKyNlbmRpZgogICAgIHZpcnR1YWwgdm9pZCBkdW1wKCk7
CiAKICAgICB2aXJ0dWFsIFRleHRTdHJlYW0mIGV4dGVybmFsUmVwcmVzZW50YXRpb24oVGV4dFN0
cmVhbSYsIGludCBpbmRlbnRpb24pIGNvbnN0OwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZmlsdGVycy9GRUdhdXNzaWFuQmx1ci5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUdhdXNzaWFuQmx1ci5jcHAJ
KHJldmlzaW9uIDEwNDMyNikKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Zp
bHRlcnMvRkVHYXVzc2lhbkJsdXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNzMsMTMgKzI3Myw2
IEBAIHZvaWQgRkVHYXVzc2lhbkJsdXI6OmRldGVybWluZUFic29sdXRlUGEKIAogdm9pZCBGRUdh
dXNzaWFuQmx1cjo6cGxhdGZvcm1BcHBseVNvZnR3YXJlKCkKIHsKLSNpZiBVU0UoU0tJQSkKLSAg
ICBpZiAoZmlsdGVyKCktPnJlbmRlcmluZ01vZGUoKSA9PSBBY2NlbGVyYXRlZCkgewotICAgICAg
ICBwbGF0Zm9ybUFwcGx5U2tpYSgpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotI2VuZGlmCi0K
ICAgICBGaWx0ZXJFZmZlY3QqIGluID0gaW5wdXRFZmZlY3QoMCk7CiAKICAgICBCeXRlQXJyYXkq
IHNyY1BpeGVsQXJyYXkgPSBjcmVhdGVQcmVtdWx0aXBsaWVkSW1hZ2VSZXN1bHQoKTsKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVHYXVzc2lhbkJsdXIu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJz
L0ZFR2F1c3NpYW5CbHVyLmgJKHJldmlzaW9uIDEwNDMyNikKKysrIFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVHYXVzc2lhbkJsdXIuaAkod29ya2luZyBjb3B5KQpA
QCAtNzQsNyArNzQsOSBAQCBwcml2YXRlOgogCiAgICAgaW5saW5lIHZvaWQgcGxhdGZvcm1BcHBs
eUdlbmVyaWMoQnl0ZUFycmF5KiBzcmNQaXhlbEFycmF5LCBCeXRlQXJyYXkqIHRtcFBpeGVsQXJy
YXksIHVuc2lnbmVkIGtlcm5lbFNpemVYLCB1bnNpZ25lZCBrZXJuZWxTaXplWSwgSW50U2l6ZSYg
cGFpbnRTaXplKTsKICAgICBpbmxpbmUgdm9pZCBwbGF0Zm9ybUFwcGx5TmVvbihCeXRlQXJyYXkq
IHNyY1BpeGVsQXJyYXksIEJ5dGVBcnJheSogdG1wUGl4ZWxBcnJheSwgdW5zaWduZWQga2VybmVs
U2l6ZVgsIHVuc2lnbmVkIGtlcm5lbFNpemVZLCBJbnRTaXplJiBwYWludFNpemUpOwotICAgIHZv
aWQgcGxhdGZvcm1BcHBseVNraWEoKTsKKyNpZiBVU0UoU0tJQSkKKyAgICB2aXJ0dWFsIGJvb2wg
cGxhdGZvcm1BcHBseVNraWEoKTsKKyNlbmRpZgogCiAgICAgZmxvYXQgbV9zdGRYOwogICAgIGZs
b2F0IG1fc3RkWTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRl
cnMvRmlsdGVyRWZmZWN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlckVmZmVjdC5jcHAJKHJldmlzaW9uIDEwNDMyNikKKysr
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyRWZmZWN0LmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMTA0LDYgKzEwNCwxMCBAQCB2b2lkIEZpbHRlckVmZmVjdDo6
YXBwbHkoKQogICAgIGRldGVybWluZUFic29sdXRlUGFpbnRSZWN0KCk7CiAgICAgCiAgICAgLy8g
QWRkIHBsYXRmb3JtIHNwZWNpZmljIGFwcGx5IGZ1bmN0aW9ucyBoZXJlIGFuZCByZXR1cm4gZWFy
bGllci4KKyNpZiBVU0UoU0tJQSkKKyAgICBpZiAocGxhdGZvcm1BcHBseVNraWEoKSkKKyAgICAg
ICAgcmV0dXJuOworI2VuZGlmCiAgICAgcGxhdGZvcm1BcHBseVNvZnR3YXJlKCk7CiB9CiAKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyRWZmZWN0
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVy
cy9GaWx0ZXJFZmZlY3QuaAkocmV2aXNpb24gMTA0MzI2KQorKysgU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0ZXJFZmZlY3QuaAkod29ya2luZyBjb3B5KQpAQCAt
ODcsNiArODcsOSBAQCBwdWJsaWM6CiAgICAgdm9pZCBhcHBseSgpOwogICAgIAogICAgIHZpcnR1
YWwgdm9pZCBwbGF0Zm9ybUFwcGx5U29mdHdhcmUoKSA9IDA7CisjaWYgVVNFKFNLSUEpCisgICAg
dmlydHVhbCBib29sIHBsYXRmb3JtQXBwbHlTa2lhKCkgeyByZXR1cm4gZmFsc2U7IH0KKyNlbmRp
ZgogICAgIHZpcnR1YWwgdm9pZCBkdW1wKCkgPSAwOwogCiAgICAgdmlydHVhbCB2b2lkIGRldGVy
bWluZUFic29sdXRlUGFpbnRSZWN0KCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9maWx0ZXJzL3NraWEvRkVDb2xvck1hdHJpeFNraWEuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvc2tpYS9GRUNvbG9yTWF0
cml4U2tpYS5jcHAJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9maWx0ZXJzL3NraWEvRkVDb2xvck1hdHJpeFNraWEuY3BwCShyZXZpc2lvbiAwKQpAQCAt
MCwwICsxLDEzMyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5Z
CisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
CisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpZiBFTkFCTEUoRklM
VEVSUykgJiYgVVNFKFNLSUEpCisjaW5jbHVkZSAiRkVDb2xvck1hdHJpeC5oIgorCisjaW5jbHVk
ZSAiTmF0aXZlSW1hZ2VTa2lhLmgiCisjaW5jbHVkZSAiU2tDb2xvck1hdHJpeEZpbHRlci5oIgor
CituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0YXRpYyB2b2lkIHNhdHVyYXRlTWF0cml4KGZsb2F0
IHMsIFNrU2NhbGFyIG1hdHJpeFsyMF0pCit7CisgICAgbWF0cml4WzBdID0gMC4yMTNmICsgMC43
ODdmICogczsKKyAgICBtYXRyaXhbMV0gPSAwLjcxNWYgLSAwLjcxNWYgKiBzOworICAgIG1hdHJp
eFsyXSA9IDAuMDcyZiAtIDAuMDcyZiAqIHM7CisgICAgbWF0cml4WzNdID0gbWF0cml4WzRdID0g
MDsKKyAgICBtYXRyaXhbNV0gPSAwLjIxM2YgLSAwLjIxM2YgKiBzOworICAgIG1hdHJpeFs2XSA9
IDAuNzE1ZiArIDAuMjg1ZiAqIHM7CisgICAgbWF0cml4WzddID0gMC4wNzJmIC0gMC4wNzJmICog
czsKKyAgICBtYXRyaXhbOF0gPSBtYXRyaXhbOV0gPSAwOworICAgIG1hdHJpeFsxMF0gPSAwLjIx
M2YgLSAwLjIxM2YgKiBzOworICAgIG1hdHJpeFsxMV0gPSAwLjcxNWYgLSAwLjcxNWYgKiBzOwor
ICAgIG1hdHJpeFsxMl0gPSAwLjA3MmYgKyAwLjkyOGYgKiBzOworICAgIG1hdHJpeFsxM10gPSBt
YXRyaXhbMTRdID0gMDsKKyAgICBtYXRyaXhbMTVdID0gbWF0cml4WzE2XSA9IG1hdHJpeFsxN10g
PSAwOworICAgIG1hdHJpeFsxOF0gPSAxOworICAgIG1hdHJpeFsxOV0gPSAwOworfQorCitzdGF0
aWMgdm9pZCBodWVSb3RhdGVNYXRyaXgoZmxvYXQgaHVlLCBTa1NjYWxhciBtYXRyaXhbMjBdKQor
eworICAgIGZsb2F0IGNvc0h1ZSA9IGNvc2YoaHVlICogcGlGbG9hdCAvIDE4MCk7IAorICAgIGZs
b2F0IHNpbkh1ZSA9IHNpbmYoaHVlICogcGlGbG9hdCAvIDE4MCk7IAorICAgIG1hdHJpeFswXSA9
ICAwLjIxM2YgKyBjb3NIdWUgKiAwLjc4N2YgLSBzaW5IdWUgKiAwLjIxM2Y7CisgICAgbWF0cml4
WzFdID0gIDAuNzE1ZiAtIGNvc0h1ZSAqIDAuNzE1ZiAtIHNpbkh1ZSAqIDAuNzE1ZjsKKyAgICBt
YXRyaXhbMl0gPSAgMC4wNzJmIC0gY29zSHVlICogMC4wNzJmICsgc2luSHVlICogMC45MjhmOwor
ICAgIG1hdHJpeFszXSA9IG1hdHJpeFs0XSA9IDA7CisgICAgbWF0cml4WzVdID0gIDAuMjEzZiAt
IGNvc0h1ZSAqIDAuMjEzZiArIHNpbkh1ZSAqIDAuMTQzZjsKKyAgICBtYXRyaXhbNl0gPSAgMC43
MTVmICsgY29zSHVlICogMC4yODVmICsgc2luSHVlICogMC4xNDBmOworICAgIG1hdHJpeFs3XSA9
ICAwLjA3MmYgLSBjb3NIdWUgKiAwLjA3MmYgLSBzaW5IdWUgKiAwLjI4M2Y7CisgICAgbWF0cml4
WzhdID0gbWF0cml4WzldID0gMDsKKyAgICBtYXRyaXhbMTBdID0gMC4yMTNmIC0gY29zSHVlICog
MC4yMTNmIC0gc2luSHVlICogMC43ODdmOworICAgIG1hdHJpeFsxMV0gPSAwLjcxNWYgLSBjb3NI
dWUgKiAwLjcxNWYgKyBzaW5IdWUgKiAwLjcxNWY7CisgICAgbWF0cml4WzEyXSA9IDAuMDcyZiAr
IGNvc0h1ZSAqIDAuOTI4ZiArIHNpbkh1ZSAqIDAuMDcyZjsKKyAgICBtYXRyaXhbMTNdID0gbWF0
cml4WzE0XSA9IDA7CisgICAgbWF0cml4WzE1XSA9IG1hdHJpeFsxNl0gPSBtYXRyaXhbMTddID0g
MDsKKyAgICBtYXRyaXhbMThdID0gMTsKKyAgICBtYXRyaXhbMTldID0gMDsKK30KKworc3RhdGlj
IHZvaWQgbHVtaW5hbmNlVG9BbHBoYU1hdHJpeChTa1NjYWxhciBtYXRyaXhbMjBdKQoreworICAg
IG1lbXNldChtYXRyaXgsIDAsIHNpemVvZihtYXRyaXgpKTsKKyAgICBtYXRyaXhbMTVdID0gMC4y
MTI1ZjsKKyAgICBtYXRyaXhbMTZdID0gMC43MTU0ZjsKKyAgICBtYXRyaXhbMTddID0gMC4wNzIx
ZjsKK30KKworYm9vbCBGRUNvbG9yTWF0cml4OjpwbGF0Zm9ybUFwcGx5U2tpYSgpCit7CisgICAg
SW1hZ2VCdWZmZXIqIHJlc3VsdEltYWdlID0gY3JlYXRlSW1hZ2VCdWZmZXJSZXN1bHQoKTsKKyAg
ICBpZiAoIXJlc3VsdEltYWdlKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBGaWx0ZXJF
ZmZlY3QqIGluID0gaW5wdXRFZmZlY3QoMCk7CisKKyAgICBJbnRSZWN0IGltYWdlUmVjdChJbnRQ
b2ludCgpLCBhYnNvbHV0ZVBhaW50UmVjdCgpLnNpemUoKSk7CisKKyAgICBTa1NjYWxhciBtYXRy
aXhbMjBdOworCisgICAgc3dpdGNoIChtX3R5cGUpIHsKKyAgICBjYXNlIEZFQ09MT1JNQVRSSVhf
VFlQRV9VTktOT1dOOgorICAgICAgICBicmVhazsKKyAgICBjYXNlIEZFQ09MT1JNQVRSSVhfVFlQ
RV9NQVRSSVg6CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgMjA7ICsraSkKKyAgICAgICAg
ICAgIG1hdHJpeFtpXSA9IG1fdmFsdWVzW2ldOworCisgICAgICAgIG1hdHJpeFs0XSAqPSBTa1Nj
YWxhcigyNTUpOworICAgICAgICBtYXRyaXhbOV0gKj0gU2tTY2FsYXIoMjU1KTsKKyAgICAgICAg
bWF0cml4WzE0XSAqPSBTa1NjYWxhcigyNTUpOworICAgICAgICBtYXRyaXhbMTldICo9IFNrU2Nh
bGFyKDI1NSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgRkVDT0xPUk1BVFJJWF9UWVBFX1NB
VFVSQVRFOiAKKyAgICAgICAgc2F0dXJhdGVNYXRyaXgobV92YWx1ZXNbMF0sIG1hdHJpeCk7Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgRkVDT0xPUk1BVFJJWF9UWVBFX0hVRVJPVEFURToKKyAg
ICAgICAgaHVlUm90YXRlTWF0cml4KG1fdmFsdWVzWzBdLCBtYXRyaXgpOworICAgICAgICBicmVh
azsKKyAgICBjYXNlIEZFQ09MT1JNQVRSSVhfVFlQRV9MVU1JTkFOQ0VUT0FMUEhBOgorICAgICAg
ICBsdW1pbmFuY2VUb0FscGhhTWF0cml4KG1hdHJpeCk7CisgICAgICAgIGJyZWFrOworICAgIH0K
KworICAgIFJlZlB0cjxJbWFnZT4gaW1hZ2UgPSBpbi0+YXNJbWFnZUJ1ZmZlcigpLT5jb3B5SW1h
Z2UoRG9udENvcHlCYWNraW5nU3RvcmUpOworICAgIE5hdGl2ZUltYWdlU2tpYSogbmF0aXZlSW1h
Z2UgPSBpbWFnZS0+bmF0aXZlSW1hZ2VGb3JDdXJyZW50RnJhbWUoKTsKKyAgICBpZiAoIW5hdGl2
ZUltYWdlKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBTa0NhbnZhcyogY2FudmFzID0g
cmVzdWx0SW1hZ2UtPmNvbnRleHQoKS0+cGxhdGZvcm1Db250ZXh0KCktPmNhbnZhcygpOworICAg
IFNrUGFpbnQgcGFpbnQ7CisgICAgcGFpbnQuc2V0Q29sb3JGaWx0ZXIobmV3IFNrQ29sb3JNYXRy
aXhGaWx0ZXIobWF0cml4KSktPnVucmVmKCk7CisgICAgcGFpbnQuc2V0WGZlcm1vZGVNb2RlKFNr
WGZlcm1vZGU6OmtTcmNfTW9kZSk7CisgICAgY2FudmFzLT5kcmF3Qml0bWFwKG5hdGl2ZUltYWdl
LT5iaXRtYXAoKSwgMCwgMCwgJnBhaW50KTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKEZJTFRFUlMpICYmIFVTRShTS0lB
KQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9za2lhL0ZF
R2F1c3NpYW5CbHVyU2tpYS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZmlsdGVycy9za2lhL0ZFR2F1c3NpYW5CbHVyU2tpYS5jcHAJKHJldmlzaW9u
IDEwNDMyNikKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvc2tp
YS9GRUdhdXNzaWFuQmx1clNraWEuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMiwxMSArMzIsMTEg
QEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi12b2lkIEZFR2F1c3NpYW5CbHVyOjpwbGF0Zm9y
bUFwcGx5U2tpYSgpCitib29sIEZFR2F1c3NpYW5CbHVyOjpwbGF0Zm9ybUFwcGx5U2tpYSgpCiB7
CiAgICAgSW1hZ2VCdWZmZXIqIHJlc3VsdEltYWdlID0gY3JlYXRlSW1hZ2VCdWZmZXJSZXN1bHQo
KTsKICAgICBpZiAoIXJlc3VsdEltYWdlKQotICAgICAgICByZXR1cm47CisgICAgICAgIHJldHVy
biBmYWxzZTsKIAogICAgIEZpbHRlckVmZmVjdCogaW4gPSBpbnB1dEVmZmVjdCgwKTsKIApAQCAt
NTcsNyArNTcsNyBAQCB2b2lkIEZFR2F1c3NpYW5CbHVyOjpwbGF0Zm9ybUFwcGx5U2tpYSgpCiAg
ICAgcGFpbnQuc2V0Q29sb3IoMHhGRkZGRkZGRik7CiAgICAgZHN0Q29udGV4dC0+ZHJhd0ltYWdl
KGltYWdlLmdldCgpLCBDb2xvclNwYWNlRGV2aWNlUkdCLCBkcmF3aW5nUmVnaW9uLmxvY2F0aW9u
KCksIENvbXBvc2l0ZUNvcHkpOwogICAgIGNhbnZhcy0+cmVzdG9yZSgpOwotICAgIHJldHVybjsK
KyAgICByZXR1cm4gdHJ1ZTsKIH0KIAogfTsKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwNDMzOCkKKysr
IExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEyIEBACisy
MDEyLTAxLTA2ICBTdGVwaGVuIFdoaXRlICA8c2Vub3JibGFuY29AY2hyb21pdW0ub3JnPgorCisg
ICAgICAgIFtjaG9taXVtXSBNYXJrIHN2ZyBGRUNvbG9yTWF0cml4IHRlc3RzIGFzIG5lZWRpbmcg
bmV3IGJhc2VsaW5lcy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTc1NTgyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQ6CisKIDIwMTIt
MDEtMDYgIERtaXRyeSBMb21vdiAgPGRzbG9tb3ZAZ29vZ2xlLmNvbT4KIAogICAgICAgICBVbnJl
dmlld2VkOiBmaWxlZCBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU3
NDIgCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9u
cy50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9l
eHBlY3RhdGlvbnMudHh0CShyZXZpc2lvbiAxMDQzMjYpCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9y
bS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQJKHdvcmtpbmcgY29weSkKQEAgLTkzMyw2
ICs5MzMsMTQgQEAgQlVHV0s2Mjk3NCA6IHN2Zy9jdXN0b20vc3ZnLWZvbnRzLWluLWh0bQogQlVH
V0s2Mjk3NCA6IHN2Zy9jdXN0b20vc3ZnLWZvbnRzLXdpdGgtbm8tZWxlbWVudC1yZWZlcmVuY2Uu
aHRtbCA9IElNQUdFK1RFWFQgSU1BR0UKIEJVR1dLNjI5NzQgTUFDIDogc3ZnL1czQy1TVkctMS4x
L3BzZXJ2ZXJzLWdyYWQtMDgtYi5zdmcgPSBJTUFHRQogCitCVUdTRU5PUkJMQU5DTyA6IHN2Zy9X
M0MtU1ZHLTEuMS9maWx0ZXJzLWNvbG9yLTAxLWIuc3ZnID0gRkFJTAorQlVHU0VOT1JCTEFOQ08g
OiBzdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZFQ29sb3JNYXRyaXhFbGVtZW50LWRvbS1pbi1hdHRy
Lmh0bWwgPSBGQUlMCitCVUdTRU5PUkJMQU5DTyA6IHN2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRkVD
b2xvck1hdHJpeEVsZW1lbnQtZG9tLXR5cGUtYXR0ci5odG1sID0gRkFJTAorQlVHU0VOT1JCTEFO
Q08gOiBzdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZFQ29sb3JNYXRyaXhFbGVtZW50LWRvbS12YWx1
ZXMtYXR0ci5odG1sID0gRkFJTAorQlVHU0VOT1JCTEFOQ08gOiBzdmcvZHluYW1pYy11cGRhdGVz
L1NWR0ZFQ29sb3JNYXRyaXhFbGVtZW50LXN2Z2RvbS1pbi1wcm9wLmh0bWwgPSBGQUlMCitCVUdT
RU5PUkJMQU5DTyA6IHN2Zy9maWx0ZXJzL2ZlQ29sb3JNYXRyaXgtb2Zmc2V0LnN2ZyA9IEZBSUwK
K0JVR1NFTk9SQkxBTkNPIDogc3ZnL2ZpbHRlcnMvZmVDb2xvck1hdHJpeC1zYXR1cmF0ZS5zdmcg
PSBGQUlMCisKIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAvLyBFbmQgU1ZHIFJlZ3Jlc3Npb25zCiAvLyAtLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQo=
</data>
<flag name="review"
          id="122319"
          type_id="1"
          status="+"
          setter="krit"
    />
    <flag name="commit-queue"
          id="122412"
          type_id="3"
          status="-"
          setter="krit"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>121620</attachid>
            <date>2012-01-08 22:12:40 -0800</date>
            <delta_ts>2012-01-09 14:23:32 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-75582-20120109011238.patch</filename>
            <type>text/plain</type>
            <size>11907</size>
            <attacher name="Stephen White">senorblanco</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwNDQyOSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI3IEBACisyMDEyLTAxLTA4ICBTdGVwaGVu
IFdoaXRlICA8c2Vub3JibGFuY29AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtTa2lhXSBTd2l0
Y2ggRkVDb2xvck1hdHJpeCB0byB1c2UgYSBza2lhLWJhc2VkIGltcGxlbWVudGF0aW9uIHdoZW4K
KyAgICAgICAgY29tcGlsaW5nIHdpdGggVVNFKFNLSUEpLgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU1ODIKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDb3ZlcmVkIGJ5IHN2Zy9XM0MtU1ZHLTEuMS9maWx0
ZXJzLWNvbG9yLTAxLWIuc3ZnIGFuZCBmcmllbmRzICh3aWxsCisgICAgICAgIG5lZWQgYSByZWJh
c2VsaW5lKS4KKworICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9maWx0ZXJzL0ZFQ29sb3JNYXRyaXguY3BwOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2ZpbHRlcnMvRkVHYXVzc2lhbkJsdXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RkVH
YXVzc2lhbkJsdXI6OnBsYXRmb3JtQXBwbHlTb2Z0d2FyZSk6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvZmlsdGVycy9GRUdhdXNzaWFuQmx1ci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2ZpbHRlcnMvc2tpYS9GRUNvbG9yTWF0cml4U2tpYS5jcHA6IEFkZGVkLgorICAgICAg
ICAoV2ViQ29yZTo6c2F0dXJhdGVNYXRyaXgpOgorICAgICAgICAoV2ViQ29yZTo6aHVlUm90YXRl
TWF0cml4KToKKyAgICAgICAgKFdlYkNvcmU6Omx1bWluYW5jZVRvQWxwaGFNYXRyaXgpOgorICAg
ICAgICAoV2ViQ29yZTo6RkVDb2xvck1hdHJpeDo6cGxhdGZvcm1BcHBseVNvZnR3YXJlKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL3NraWEvRkVHYXVzc2lhbkJsdXJTa2lh
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZFR2F1c3NpYW5CbHVyOjpwbGF0Zm9ybUFwcGx5U29m
dHdhcmUpOgorCiAyMDEyLTAxLTA4ICBMZW8gWWFuZyAgPGxlby55YW5nQHRvcmNobW9iaWxlLmNv
bS5jbj4KIAogICAgICAgICBbQmxhY2tCZXJyeV0gVXNlIHRoZSBjb25jcmV0ZSBGcmFtZU5ldHdv
cmtpbmdDb250ZXh0QmxhY2tCZXJyeSB0byBhY2Nlc3MgRnJhbWUKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL1dlYkNvcmUuZ3lwaQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5
cGkJKHJldmlzaW9uIDEwNDQyOSkKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQkod29y
a2luZyBjb3B5KQpAQCAtMzczNSw2ICszNzM1LDcgQEAKICAgICAgICAgICAgICdwbGF0Zm9ybS9n
cmFwaGljcy9maWx0ZXJzL2FybS9GRUdhdXNzaWFuQmx1ck5FT04uaCcsCiAgICAgICAgICAgICAn
cGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9hcm0vRkVMaWdodGluZ05FT04uY3BwJywKICAgICAg
ICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL2FybS9GRUxpZ2h0aW5nTkVPTi5oJywK
KyAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL3NraWEvRkVDb2xvck1hdHJp
eFNraWEuY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL3NraWEv
RkVHYXVzc2lhbkJsdXJTa2lhLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3Mv
ZnJlZXR5cGUvRm9udENhY2hlRnJlZVR5cGUuY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9n
cmFwaGljcy9mcmVldHlwZS9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhRnJlZVR5cGUuY3BwJywKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb2xvck1hdHJp
eC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmls
dGVycy9GRUNvbG9yTWF0cml4LmNwcAkocmV2aXNpb24gMTA0NDI5KQorKysgU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbG9yTWF0cml4LmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMTU2LDYgKzE1Niw3IEBAIHZvaWQgZWZmZWN0VHlwZShCeXRlQXJyYXkqIHBpeGVs
QXJyYXksIGMKICAgICB9CiB9CiAKKyNpZiAhVVNFKFNLSUEpCiB2b2lkIEZFQ29sb3JNYXRyaXg6
OnBsYXRmb3JtQXBwbHlTb2Z0d2FyZSgpCiB7CiAgICAgRmlsdGVyRWZmZWN0KiBpbiA9IGlucHV0
RWZmZWN0KDApOwpAQCAtMTg5LDYgKzE5MCw3IEBAIHZvaWQgRkVDb2xvck1hdHJpeDo6cGxhdGZv
cm1BcHBseVNvZnR3YXIKIAogICAgIHJlc3VsdEltYWdlLT5wdXRVbm11bHRpcGxpZWRJbWFnZURh
dGEocGl4ZWxBcnJheS5nZXQoKSwgaW1hZ2VSZWN0LnNpemUoKSwgaW1hZ2VSZWN0LCBJbnRQb2lu
dCgpKTsKIH0KKyNlbmRpZgogCiB2b2lkIEZFQ29sb3JNYXRyaXg6OmR1bXAoKQogewpJbmRleDog
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUdhdXNzaWFuQmx1ci5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVy
cy9GRUdhdXNzaWFuQmx1ci5jcHAJKHJldmlzaW9uIDEwNDQyOSkKKysrIFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVHYXVzc2lhbkJsdXIuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0yNzEsMTUgKzI3MSw5IEBAIHZvaWQgRkVHYXVzc2lhbkJsdXI6OmRldGVybWluZUFi
c29sdXRlUGEKICAgICBzZXRBYnNvbHV0ZVBhaW50UmVjdChlbmNsb3NpbmdJbnRSZWN0KGFic29s
dXRlUGFpbnRSZWN0KSk7CiB9CiAKKyNpZiAhVVNFKFNLSUEpCiB2b2lkIEZFR2F1c3NpYW5CbHVy
OjpwbGF0Zm9ybUFwcGx5U29mdHdhcmUoKQogewotI2lmIFVTRShTS0lBKQotICAgIGlmIChmaWx0
ZXIoKS0+cmVuZGVyaW5nTW9kZSgpID09IEFjY2VsZXJhdGVkKSB7Ci0gICAgICAgIHBsYXRmb3Jt
QXBwbHlTa2lhKCk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0jZW5kaWYKLQogICAgIEZpbHRl
ckVmZmVjdCogaW4gPSBpbnB1dEVmZmVjdCgwKTsKIAogICAgIEJ5dGVBcnJheSogc3JjUGl4ZWxB
cnJheSA9IGNyZWF0ZVByZW11bHRpcGxpZWRJbWFnZVJlc3VsdCgpOwpAQCAtMzA0LDYgKzI5OCw3
IEBAIHZvaWQgRkVHYXVzc2lhbkJsdXI6OnBsYXRmb3JtQXBwbHlTb2Z0d2EKIAogICAgIHBsYXRm
b3JtQXBwbHkoc3JjUGl4ZWxBcnJheSwgdG1wUGl4ZWxBcnJheSwga2VybmVsU2l6ZVgsIGtlcm5l
bFNpemVZLCBwYWludFNpemUpOwogfQorI2VuZGlmCiAKIHZvaWQgRkVHYXVzc2lhbkJsdXI6OmR1
bXAoKQogewpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9G
RUdhdXNzaWFuQmx1ci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2ZpbHRlcnMvRkVHYXVzc2lhbkJsdXIuaAkocmV2aXNpb24gMTA0NDI5KQorKysgU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUdhdXNzaWFuQmx1ci5oCSh3
b3JraW5nIGNvcHkpCkBAIC03NCw3ICs3NCw2IEBAIHByaXZhdGU6CiAKICAgICBpbmxpbmUgdm9p
ZCBwbGF0Zm9ybUFwcGx5R2VuZXJpYyhCeXRlQXJyYXkqIHNyY1BpeGVsQXJyYXksIEJ5dGVBcnJh
eSogdG1wUGl4ZWxBcnJheSwgdW5zaWduZWQga2VybmVsU2l6ZVgsIHVuc2lnbmVkIGtlcm5lbFNp
emVZLCBJbnRTaXplJiBwYWludFNpemUpOwogICAgIGlubGluZSB2b2lkIHBsYXRmb3JtQXBwbHlO
ZW9uKEJ5dGVBcnJheSogc3JjUGl4ZWxBcnJheSwgQnl0ZUFycmF5KiB0bXBQaXhlbEFycmF5LCB1
bnNpZ25lZCBrZXJuZWxTaXplWCwgdW5zaWduZWQga2VybmVsU2l6ZVksIEludFNpemUmIHBhaW50
U2l6ZSk7Ci0gICAgdm9pZCBwbGF0Zm9ybUFwcGx5U2tpYSgpOwogCiAgICAgZmxvYXQgbV9zdGRY
OwogICAgIGZsb2F0IG1fc3RkWTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2ZpbHRlcnMvc2tpYS9GRUNvbG9yTWF0cml4U2tpYS5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9za2lhL0ZFQ29sb3JNYXRyaXhT
a2lhLmNwcAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2ZpbHRlcnMvc2tpYS9GRUNvbG9yTWF0cml4U2tpYS5jcHAJKHJldmlzaW9uIDApCkBAIC0wLDAg
KzEsMTMyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkK
KyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAq
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lmIEVOQUJMRShGSUxURVJT
KSAmJiBVU0UoU0tJQSkKKyNpbmNsdWRlICJGRUNvbG9yTWF0cml4LmgiCisKKyNpbmNsdWRlICJO
YXRpdmVJbWFnZVNraWEuaCIKKyNpbmNsdWRlICJTa0NvbG9yTWF0cml4RmlsdGVyLmgiCisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworc3RhdGljIHZvaWQgc2F0dXJhdGVNYXRyaXgoZmxvYXQgcywg
U2tTY2FsYXIgbWF0cml4WzIwXSkKK3sKKyAgICBtYXRyaXhbMF0gPSAwLjIxM2YgKyAwLjc4N2Yg
KiBzOworICAgIG1hdHJpeFsxXSA9IDAuNzE1ZiAtIDAuNzE1ZiAqIHM7CisgICAgbWF0cml4WzJd
ID0gMC4wNzJmIC0gMC4wNzJmICogczsKKyAgICBtYXRyaXhbM10gPSBtYXRyaXhbNF0gPSAwOwor
ICAgIG1hdHJpeFs1XSA9IDAuMjEzZiAtIDAuMjEzZiAqIHM7CisgICAgbWF0cml4WzZdID0gMC43
MTVmICsgMC4yODVmICogczsKKyAgICBtYXRyaXhbN10gPSAwLjA3MmYgLSAwLjA3MmYgKiBzOwor
ICAgIG1hdHJpeFs4XSA9IG1hdHJpeFs5XSA9IDA7CisgICAgbWF0cml4WzEwXSA9IDAuMjEzZiAt
IDAuMjEzZiAqIHM7CisgICAgbWF0cml4WzExXSA9IDAuNzE1ZiAtIDAuNzE1ZiAqIHM7CisgICAg
bWF0cml4WzEyXSA9IDAuMDcyZiArIDAuOTI4ZiAqIHM7CisgICAgbWF0cml4WzEzXSA9IG1hdHJp
eFsxNF0gPSAwOworICAgIG1hdHJpeFsxNV0gPSBtYXRyaXhbMTZdID0gbWF0cml4WzE3XSA9IDA7
CisgICAgbWF0cml4WzE4XSA9IDE7CisgICAgbWF0cml4WzE5XSA9IDA7Cit9CisKK3N0YXRpYyB2
b2lkIGh1ZVJvdGF0ZU1hdHJpeChmbG9hdCBodWUsIFNrU2NhbGFyIG1hdHJpeFsyMF0pCit7Cisg
ICAgZmxvYXQgY29zSHVlID0gY29zZihodWUgKiBwaUZsb2F0IC8gMTgwKTsgCisgICAgZmxvYXQg
c2luSHVlID0gc2luZihodWUgKiBwaUZsb2F0IC8gMTgwKTsgCisgICAgbWF0cml4WzBdID0gIDAu
MjEzZiArIGNvc0h1ZSAqIDAuNzg3ZiAtIHNpbkh1ZSAqIDAuMjEzZjsKKyAgICBtYXRyaXhbMV0g
PSAgMC43MTVmIC0gY29zSHVlICogMC43MTVmIC0gc2luSHVlICogMC43MTVmOworICAgIG1hdHJp
eFsyXSA9ICAwLjA3MmYgLSBjb3NIdWUgKiAwLjA3MmYgKyBzaW5IdWUgKiAwLjkyOGY7CisgICAg
bWF0cml4WzNdID0gbWF0cml4WzRdID0gMDsKKyAgICBtYXRyaXhbNV0gPSAgMC4yMTNmIC0gY29z
SHVlICogMC4yMTNmICsgc2luSHVlICogMC4xNDNmOworICAgIG1hdHJpeFs2XSA9ICAwLjcxNWYg
KyBjb3NIdWUgKiAwLjI4NWYgKyBzaW5IdWUgKiAwLjE0MGY7CisgICAgbWF0cml4WzddID0gIDAu
MDcyZiAtIGNvc0h1ZSAqIDAuMDcyZiAtIHNpbkh1ZSAqIDAuMjgzZjsKKyAgICBtYXRyaXhbOF0g
PSBtYXRyaXhbOV0gPSAwOworICAgIG1hdHJpeFsxMF0gPSAwLjIxM2YgLSBjb3NIdWUgKiAwLjIx
M2YgLSBzaW5IdWUgKiAwLjc4N2Y7CisgICAgbWF0cml4WzExXSA9IDAuNzE1ZiAtIGNvc0h1ZSAq
IDAuNzE1ZiArIHNpbkh1ZSAqIDAuNzE1ZjsKKyAgICBtYXRyaXhbMTJdID0gMC4wNzJmICsgY29z
SHVlICogMC45MjhmICsgc2luSHVlICogMC4wNzJmOworICAgIG1hdHJpeFsxM10gPSBtYXRyaXhb
MTRdID0gMDsKKyAgICBtYXRyaXhbMTVdID0gbWF0cml4WzE2XSA9IG1hdHJpeFsxN10gPSAwOwor
ICAgIG1hdHJpeFsxOF0gPSAxOworICAgIG1hdHJpeFsxOV0gPSAwOworfQorCitzdGF0aWMgdm9p
ZCBsdW1pbmFuY2VUb0FscGhhTWF0cml4KFNrU2NhbGFyIG1hdHJpeFsyMF0pCit7CisgICAgbWVt
c2V0KG1hdHJpeCwgMCwgc2l6ZW9mKG1hdHJpeCkpOworICAgIG1hdHJpeFsxNV0gPSAwLjIxMjVm
OworICAgIG1hdHJpeFsxNl0gPSAwLjcxNTRmOworICAgIG1hdHJpeFsxN10gPSAwLjA3MjFmOwor
fQorCit2b2lkIEZFQ29sb3JNYXRyaXg6OnBsYXRmb3JtQXBwbHlTb2Z0d2FyZSgpCit7CisgICAg
SW1hZ2VCdWZmZXIqIHJlc3VsdEltYWdlID0gY3JlYXRlSW1hZ2VCdWZmZXJSZXN1bHQoKTsKKyAg
ICBpZiAoIXJlc3VsdEltYWdlKQorICAgICAgICByZXR1cm47CisKKyAgICBGaWx0ZXJFZmZlY3Qq
IGluID0gaW5wdXRFZmZlY3QoMCk7CisKKyAgICBJbnRSZWN0IGltYWdlUmVjdChJbnRQb2ludCgp
LCBhYnNvbHV0ZVBhaW50UmVjdCgpLnNpemUoKSk7CisKKyAgICBTa1NjYWxhciBtYXRyaXhbMjBd
OworCisgICAgc3dpdGNoIChtX3R5cGUpIHsKKyAgICBjYXNlIEZFQ09MT1JNQVRSSVhfVFlQRV9V
TktOT1dOOgorICAgICAgICBicmVhazsKKyAgICBjYXNlIEZFQ09MT1JNQVRSSVhfVFlQRV9NQVRS
SVg6CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgMjA7ICsraSkKKyAgICAgICAgICAgIG1h
dHJpeFtpXSA9IG1fdmFsdWVzW2ldOworCisgICAgICAgIG1hdHJpeFs0XSAqPSBTa1NjYWxhcigy
NTUpOworICAgICAgICBtYXRyaXhbOV0gKj0gU2tTY2FsYXIoMjU1KTsKKyAgICAgICAgbWF0cml4
WzE0XSAqPSBTa1NjYWxhcigyNTUpOworICAgICAgICBtYXRyaXhbMTldICo9IFNrU2NhbGFyKDI1
NSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgRkVDT0xPUk1BVFJJWF9UWVBFX1NBVFVSQVRF
OiAKKyAgICAgICAgc2F0dXJhdGVNYXRyaXgobV92YWx1ZXNbMF0sIG1hdHJpeCk7CisgICAgICAg
IGJyZWFrOworICAgIGNhc2UgRkVDT0xPUk1BVFJJWF9UWVBFX0hVRVJPVEFURToKKyAgICAgICAg
aHVlUm90YXRlTWF0cml4KG1fdmFsdWVzWzBdLCBtYXRyaXgpOworICAgICAgICBicmVhazsKKyAg
ICBjYXNlIEZFQ09MT1JNQVRSSVhfVFlQRV9MVU1JTkFOQ0VUT0FMUEhBOgorICAgICAgICBsdW1p
bmFuY2VUb0FscGhhTWF0cml4KG1hdHJpeCk7CisgICAgICAgIGJyZWFrOworICAgIH0KKworICAg
IFJlZlB0cjxJbWFnZT4gaW1hZ2UgPSBpbi0+YXNJbWFnZUJ1ZmZlcigpLT5jb3B5SW1hZ2UoRG9u
dENvcHlCYWNraW5nU3RvcmUpOworICAgIE5hdGl2ZUltYWdlU2tpYSogbmF0aXZlSW1hZ2UgPSBp
bWFnZS0+bmF0aXZlSW1hZ2VGb3JDdXJyZW50RnJhbWUoKTsKKyAgICBpZiAoIW5hdGl2ZUltYWdl
KQorICAgICAgICByZXR1cm47CisKKyAgICBTa0NhbnZhcyogY2FudmFzID0gcmVzdWx0SW1hZ2Ut
PmNvbnRleHQoKS0+cGxhdGZvcm1Db250ZXh0KCktPmNhbnZhcygpOworICAgIFNrUGFpbnQgcGFp
bnQ7CisgICAgcGFpbnQuc2V0Q29sb3JGaWx0ZXIobmV3IFNrQ29sb3JNYXRyaXhGaWx0ZXIobWF0
cml4KSktPnVucmVmKCk7CisgICAgcGFpbnQuc2V0WGZlcm1vZGVNb2RlKFNrWGZlcm1vZGU6OmtT
cmNfTW9kZSk7CisgICAgY2FudmFzLT5kcmF3Qml0bWFwKG5hdGl2ZUltYWdlLT5iaXRtYXAoKSwg
MCwgMCwgJnBhaW50KTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8g
RU5BQkxFKEZJTFRFUlMpICYmIFVTRShTS0lBKQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZmlsdGVycy9za2lhL0ZFR2F1c3NpYW5CbHVyU2tpYS5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9za2lhL0ZFR2F1
c3NpYW5CbHVyU2tpYS5jcHAJKHJldmlzaW9uIDEwNDQyOSkKKysrIFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvc2tpYS9GRUdhdXNzaWFuQmx1clNraWEuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yNCw3ICsyNCw3IEBACiAgKi8KIAogI2luY2x1ZGUgImNvbmZpZy5oIgot
I2lmIFVTRShTS0lBKQorI2lmIEVOQUJMRShGSUxURVJTKSAmJiBVU0UoU0tJQSkKICNpbmNsdWRl
ICJGRUdhdXNzaWFuQmx1ci5oIgogCiAjaW5jbHVkZSAiQml0bWFwSW1hZ2VTaW5nbGVGcmFtZVNr
aWEuaCIKQEAgLTMyLDcgKzMyLDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi12b2lkIEZF
R2F1c3NpYW5CbHVyOjpwbGF0Zm9ybUFwcGx5U2tpYSgpCit2b2lkIEZFR2F1c3NpYW5CbHVyOjpw
bGF0Zm9ybUFwcGx5U29mdHdhcmUoKQogewogICAgIEltYWdlQnVmZmVyKiByZXN1bHRJbWFnZSA9
IGNyZWF0ZUltYWdlQnVmZmVyUmVzdWx0KCk7CiAgICAgaWYgKCFyZXN1bHRJbWFnZSkKSW5kZXg6
IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VM
b2cJKHJldmlzaW9uIDEwNDQyOSkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBj
b3B5KQpAQCAtMSwzICsxLDEyIEBACisyMDEyLTAxLTA4ICBTdGVwaGVuIFdoaXRlICA8c2Vub3Ji
bGFuY29AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaG9taXVtXSBNYXJrIHN2ZyBGRUNvbG9y
TWF0cml4IHRlc3RzIGFzIG5lZWRpbmcgbmV3IGJhc2VsaW5lcy4KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc1NTgyCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4
cGVjdGF0aW9ucy50eHQ6CisKIDIwMTItMDEtMDggIE1pa2UgTGF3dGhlciAgPG1pa2VsYXd0aGVy
QGNocm9taXVtLm9yZz4KIAogICAgICAgICBib3JkZXIgdGVzdHMgZm9yIENTUzMgY2FsYwpJbmRl
eDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0Cj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRp
b25zLnR4dAkocmV2aXNpb24gMTA0NDI5KQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21p
dW0vdGVzdF9leHBlY3RhdGlvbnMudHh0CSh3b3JraW5nIGNvcHkpCkBAIC05MzMsNiArOTMzLDE0
IEBAIEJVR1dLNjI5NzQgOiBzdmcvY3VzdG9tL3N2Zy1mb250cy1pbi1odG0KIEJVR1dLNjI5NzQg
OiBzdmcvY3VzdG9tL3N2Zy1mb250cy13aXRoLW5vLWVsZW1lbnQtcmVmZXJlbmNlLmh0bWwgPSBJ
TUFHRStURVhUIElNQUdFCiBCVUdXSzYyOTc0IE1BQyA6IHN2Zy9XM0MtU1ZHLTEuMS9wc2VydmVy
cy1ncmFkLTA4LWIuc3ZnID0gSU1BR0UKIAorQlVHU0VOT1JCTEFOQ08gOiBzdmcvVzNDLVNWRy0x
LjEvZmlsdGVycy1jb2xvci0wMS1iLnN2ZyA9IEZBSUwKK0JVR1NFTk9SQkxBTkNPIDogc3ZnL2R5
bmFtaWMtdXBkYXRlcy9TVkdGRUNvbG9yTWF0cml4RWxlbWVudC1kb20taW4tYXR0ci5odG1sID0g
RkFJTAorQlVHU0VOT1JCTEFOQ08gOiBzdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZFQ29sb3JNYXRy
aXhFbGVtZW50LWRvbS10eXBlLWF0dHIuaHRtbCA9IEZBSUwKK0JVR1NFTk9SQkxBTkNPIDogc3Zn
L2R5bmFtaWMtdXBkYXRlcy9TVkdGRUNvbG9yTWF0cml4RWxlbWVudC1kb20tdmFsdWVzLWF0dHIu
aHRtbCA9IEZBSUwKK0JVR1NFTk9SQkxBTkNPIDogc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdGRUNv
bG9yTWF0cml4RWxlbWVudC1zdmdkb20taW4tcHJvcC5odG1sID0gRkFJTAorQlVHU0VOT1JCTEFO
Q08gOiBzdmcvZmlsdGVycy9mZUNvbG9yTWF0cml4LW9mZnNldC5zdmcgPSBGQUlMCitCVUdTRU5P
UkJMQU5DTyA6IHN2Zy9maWx0ZXJzL2ZlQ29sb3JNYXRyaXgtc2F0dXJhdGUuc3ZnID0gRkFJTAor
CiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQogLy8gRW5kIFNWRyBSZWdyZXNzaW9ucwogLy8gLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
</data>

          </attachment>
      

    </bug>

</bugzilla>