<?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>65651</bug_id>
          
          <creation_ts>2011-08-03 15:58:57 -0700</creation_ts>
          <short_desc>Make sure that AudioArray is 16-byte aligned</short_desc>
          <delta_ts>2011-08-05 03:49:05 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Rogers">crogers</reporter>
          <assigned_to name="Chris Rogers">crogers</assigned_to>
          <cc>kbr</cc>
    
    <cc>skylined</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>446167</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Rogers">crogers</who>
    <bug_when>2011-08-03 15:58:57 -0700</bug_when>
    <thetext>Make sure that AudioArray is 16-byte aligned</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>446170</commentid>
    <comment_count>1</comment_count>
      <attachid>102846</attachid>
    <who name="Chris Rogers">crogers</who>
    <bug_when>2011-08-03 16:03:31 -0700</bug_when>
    <thetext>Created attachment 102846
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>446176</commentid>
    <comment_count>2</comment_count>
    <who name="Chris Rogers">crogers</who>
    <bug_when>2011-08-03 16:07:22 -0700</bug_when>
    <thetext>this fixes:
https://bugs.webkit.org/show_bug.cgi?id=63998

Audio arrays should be 16-byte aligned for maximum performance.  In FFTFrameFFMPEG&apos;s case, the av_rdft_calc() function actually can crash if not given an aligned address, although this is not documented!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>446231</commentid>
    <comment_count>3</comment_count>
      <attachid>102846</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2011-08-03 17:05:01 -0700</bug_when>
    <thetext>Comment on attachment 102846
Patch

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

Generally looks good but I strongly feel you should be using FastMalloc.h.

&gt; Source/WebCore/platform/audio/AudioArray.h:48
&gt; +        free(m_allocation);

You should use fastMalloc and fastFree (in &lt;wtf/FastMalloc.h&gt;), as Vector.h does, to have the possibility of using WebKit&apos;s malloc validation, and to crash upon allocation failure on all platforms.

&gt; Source/WebCore/platform/audio/AudioArray.h:59
&gt; +            free(m_allocation);

Here too.

&gt; Source/WebCore/platform/audio/AudioArray.h:68
&gt; +            T* allocation = static_cast&lt;T*&gt;(malloc(sizeof(T) * n + extraAllocationBytes));

Here too.

&gt; Source/WebCore/platform/audio/AudioArray.h:79
&gt; +                free(allocation);

Here too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>446663</commentid>
    <comment_count>4</comment_count>
      <attachid>102954</attachid>
    <who name="Chris Rogers">crogers</who>
    <bug_when>2011-08-04 11:53:30 -0700</bug_when>
    <thetext>Created attachment 102954
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>446665</commentid>
    <comment_count>5</comment_count>
      <attachid>102846</attachid>
    <who name="Chris Rogers">crogers</who>
    <bug_when>2011-08-04 11:55:02 -0700</bug_when>
    <thetext>Comment on attachment 102846
Patch

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

&gt;&gt; Source/WebCore/platform/audio/AudioArray.h:48
&gt;&gt; +        free(m_allocation);
&gt; 
&gt; You should use fastMalloc and fastFree (in &lt;wtf/FastMalloc.h&gt;), as Vector.h does, to have the possibility of using WebKit&apos;s malloc validation, and to crash upon allocation failure on all platforms.

FIXED

&gt;&gt; Source/WebCore/platform/audio/AudioArray.h:59
&gt;&gt; +            free(m_allocation);
&gt; 
&gt; Here too.

FIXED

&gt;&gt; Source/WebCore/platform/audio/AudioArray.h:68
&gt;&gt; +            T* allocation = static_cast&lt;T*&gt;(malloc(sizeof(T) * n + extraAllocationBytes));
&gt; 
&gt; Here too.

FIXED

&gt;&gt; Source/WebCore/platform/audio/AudioArray.h:79
&gt;&gt; +                free(allocation);
&gt; 
&gt; Here too.

FIXED</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>446713</commentid>
    <comment_count>6</comment_count>
      <attachid>102954</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2011-08-04 13:00:35 -0700</bug_when>
    <thetext>Comment on attachment 102954
Patch

Looks good.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>446766</commentid>
    <comment_count>7</comment_count>
      <attachid>102954</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-08-04 14:07:37 -0700</bug_when>
    <thetext>Comment on attachment 102954
Patch

Clearing flags on attachment: 102954

Committed r92408: &lt;http://trac.webkit.org/changeset/92408&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>446767</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-08-04 14:07:41 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>447146</commentid>
    <comment_count>9</comment_count>
    <who name="Berend-Jan Wever">skylined</who>
    <bug_when>2011-08-05 03:49:05 -0700</bug_when>
    <thetext>Sorry I&apos;m late to the party. I have some questions and remarks about the patch. I assume you added the loop in an attempt to prevent over-allocating to align the data in case it aligns correctly by chance.

1) Since allocations are already 4 bytes aligned, you will need to add 4, 8 or 12 bytes to correct the alignment if it&apos;s not aligned correctly. Why are you adding &quot;alignment&quot; (16 bytes) to the allocation, rather than &quot;alignment - 4&quot;? Your code over-allocates 12, 8 or 4 bytes for an average of 6 bytes. If you use &quot;alignment - 4&quot;, this will drop to 3 bytes.

2) Why use a loop when the code is only going to be executed twice? It seems the code would be much cleaner if you unrolled the loop. Also, why use a local variable to terminate it, rather than break?

m_allocation = static_cast&lt;T*&gt;(fastMalloc(sizeof(T) * n)); 
m_alignedData = alignedAddress(m_allocation, alignment); 

if (m_alignedData != m_allocation) { 
  fastFree(m_allocation); 
  m_allocation = static_cast&lt;T*&gt;(fastMalloc(sizeof(T) * n + alignment - 4));
  m_alignedData = alignedAddress(m_allocation, alignment); 
}
m_size = n; 
zero(); 

3) If you immediately over-allocate &quot;alignment - 4&quot;, there is no need for a &quot;loop&quot; or &quot;if&quot; at all, simplifying the code even further. In this case you will over allocate 12, 8, 4 or 0 bytes for an average of 6, which is equivalent to the current code.

m_allocation = static_cast&lt;T*&gt;(fastMalloc(sizeof(T) * n + alignment - 4));
m_alignedData = alignedAddress(m_allocation, alignment); 
m_size = n; 
zero();</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>102846</attachid>
            <date>2011-08-03 16:03:31 -0700</date>
            <delta_ts>2011-08-04 11:55:02 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-65651-20110803160330.patch</filename>
            <type>text/plain</type>
            <size>7485</size>
            <attacher name="Chris Rogers">crogers</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDkyMzIxKQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzAgQEAKKzIwMTEtMDgtMDMgIENocmlzIFJv
Z2VycyAgPGNyb2dlcnNAZ29vZ2xlLmNvbT4KKworICAgICAgICBNYWtlIHN1cmUgdGhhdCBBdWRp
b0FycmF5IGlzIDE2LWJ5dGUgYWxpZ25lZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NjU2NTEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHMgLSB0aGlzIGRvZXMgbm90IGNoYW5nZSBKYXZh
U2NyaXB0IEFQSS4KKworICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL0F1ZGlvQXJyYXkuaDoKKyAg
ICAgICAgKFdlYkNvcmU6OkF1ZGlvQXJyYXk6OkF1ZGlvQXJyYXkpOgorICAgICAgICAoV2ViQ29y
ZTo6QXVkaW9BcnJheTo6fkF1ZGlvQXJyYXkpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9BcnJh
eTo6YWxsb2NhdGUpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9BcnJheTo6ZGF0YSk6CisgICAg
ICAgIChXZWJDb3JlOjpBdWRpb0FycmF5OjpzaXplKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlv
QXJyYXk6OmF0KToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvQXJyYXk6Om9wZXJhdG9yW10pOgor
ICAgICAgICAoV2ViQ29yZTo6QXVkaW9BcnJheTo6YWxpZ25lZEFkZHJlc3MpOgorICAgICAgICAq
IHBsYXRmb3JtL2F1ZGlvL0JpcXVhZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpCaXF1YWQ6OkJp
cXVhZCk6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vUmV2ZXJiQ29udm9sdmVyU3RhZ2UuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6UmV2ZXJiQ29udm9sdmVyU3RhZ2U6OlJldmVyYkNvbnZvbHZl
clN0YWdlKToKKyAgICAgICAgKiB3ZWJhdWRpby9EZWxheURTUEtlcm5lbC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpEZWxheURTUEtlcm5lbDo6RGVsYXlEU1BLZXJuZWwpOgorICAgICAgICAqIHdl
YmF1ZGlvL1JlYWx0aW1lQW5hbHlzZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVB
bmFseXNlcjo6c2V0RmZ0U2l6ZSk6CisKIDIwMTEtMDgtMDMgIE1hcmsgUGlsZ3JpbSAgPHBpbGdy
aW1AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJlbW92ZSBMZWdhY3lEZWZhdWx0T3B0aW9uYWxB
cmd1bWVudHMgZmxhZyBmcm9tIERPTVNlbGVjdGlvbi5pZGwKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2F1ZGlvL0F1ZGlvQXJyYXkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9hdWRpby9BdWRpb0FycmF5LmgJKHJldmlzaW9uIDkyMjk0KQorKysgU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9BcnJheS5oCSh3b3JraW5nIGNvcHkpCkBAIC0z
NSwxMCArMzUsNjMgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdGVtcGxhdGU8dHlwZW5hbWUg
VD4KLWNsYXNzIEF1ZGlvQXJyYXkgOiBwdWJsaWMgVmVjdG9yPFQ+IHsKK2NsYXNzIEF1ZGlvQXJy
YXkgewogcHVibGljOgotICAgIEF1ZGlvQXJyYXkoKSA6IFZlY3RvcjxUPigwKSB7IH0KLSAgICBl
eHBsaWNpdCBBdWRpb0FycmF5KHNpemVfdCBuKSA6IFZlY3RvcjxUPihuLCAwKSB7IH0KKyAgICBB
dWRpb0FycmF5KCkgOiBtX2FsbG9jYXRpb24oMCksIG1fYWxpZ25lZERhdGEoMCksIG1fc2l6ZSgw
KSB7IH0KKyAgICBleHBsaWNpdCBBdWRpb0FycmF5KHNpemVfdCBuKSA6IG1fYWxsb2NhdGlvbigw
KSwgbV9hbGlnbmVkRGF0YSgwKSwgbV9zaXplKDApCisgICAgeworICAgICAgICBhbGxvY2F0ZShu
KTsKKyAgICB9CisKKyAgICB+QXVkaW9BcnJheSgpCisgICAgeworICAgICAgICBmcmVlKG1fYWxs
b2NhdGlvbik7CisgICAgfQorCisgICAgLy8gSXQncyBPSyB0byBjYWxsIGFsbG9jYXRlKCkgbXVs
dGlwbGUgdGltZXMsIGJ1dCBkYXRhIHdpbGwgKm5vdCogYmUgY29waWVkIGZyb20gYW4gaW5pdGlh
bCBhbGxvY2F0aW9uCisgICAgLy8gaWYgcmUtYWxsb2NhdGVkLiBBbGxvY2F0aW9ucyBhcmUgemVy
by1pbml0aWFsaXplZC4KKyAgICB2b2lkIGFsbG9jYXRlKHNpemVfdCBuKQorICAgIHsKKyAgICAg
ICAgLy8gMTYtYnl0ZSBhbGlnbm1lbnQgZm9yIDEyOGJpdCBTSU1ELgorICAgICAgICBjb25zdCBz
aXplX3QgYWxpZ25tZW50ID0gMTY7CisKKyAgICAgICAgaWYgKG1fYWxsb2NhdGlvbikKKyAgICAg
ICAgICAgIGZyZWUobV9hbGxvY2F0aW9uKTsKKyAgICAgICAgCisgICAgICAgIGJvb2wgaXNBbGxv
Y2F0aW9uR29vZCA9IGZhbHNlOworICAgICAgICAKKyAgICAgICAgd2hpbGUgKCFpc0FsbG9jYXRp
b25Hb29kKSB7CisgICAgICAgICAgICAvLyBJbml0aWFsbHkgd2UgdHJ5IHRvIGFsbG9jYXRlIHRo
ZSBleGFjdCBzaXplLCBidXQgaWYgaXQncyBub3QgYWxpZ25lZAorICAgICAgICAgICAgLy8gdGhl
biB3ZSdsbCBoYXZlIHRvIHJlYWxsb2NhdGUgYW5kIGZyb20gdGhlbiBvbiBhbGxvY2F0ZSBleHRy
YS4KKyAgICAgICAgICAgIHN0YXRpYyBzaXplX3QgZXh0cmFBbGxvY2F0aW9uQnl0ZXMgPSAwOwor
CisgICAgICAgICAgICBUKiBhbGxvY2F0aW9uID0gc3RhdGljX2Nhc3Q8VCo+KG1hbGxvYyhzaXpl
b2YoVCkgKiBuICsgZXh0cmFBbGxvY2F0aW9uQnl0ZXMpKTsKKyAgICAgICAgICAgIFQqIGFsaWdu
ZWREYXRhID0gYWxpZ25lZEFkZHJlc3MoYWxsb2NhdGlvbiwgYWxpZ25tZW50KTsKKworICAgICAg
ICAgICAgaWYgKGFsaWduZWREYXRhID09IGFsbG9jYXRpb24gfHwgZXh0cmFBbGxvY2F0aW9uQnl0
ZXMgPT0gYWxpZ25tZW50KSB7CisgICAgICAgICAgICAgICAgbV9hbGxvY2F0aW9uID0gYWxsb2Nh
dGlvbjsKKyAgICAgICAgICAgICAgICBtX2FsaWduZWREYXRhID0gYWxpZ25lZERhdGE7CisgICAg
ICAgICAgICAgICAgbV9zaXplID0gbjsKKyAgICAgICAgICAgICAgICBpc0FsbG9jYXRpb25Hb29k
ID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICB6ZXJvKCk7CisgICAgICAgICAgICB9IGVsc2Ugewor
ICAgICAgICAgICAgICAgIGV4dHJhQWxsb2NhdGlvbkJ5dGVzID0gYWxpZ25tZW50OyAvLyBhbHdh
eXMgYWxsb2NhdGUgZXh0cmEgYWZ0ZXIgdGhlIGZpcnN0IGFsaWdubWVudCBmYWlsdXJlLgorICAg
ICAgICAgICAgICAgIGZyZWUoYWxsb2NhdGlvbik7CisgICAgICAgICAgICB9CisgICAgICAgIH0K
KyAgICB9CisKKyAgICBUKiBkYXRhKCkgeyByZXR1cm4gbV9hbGlnbmVkRGF0YTsgfQorICAgIGNv
bnN0IFQqIGRhdGEoKSBjb25zdCB7IHJldHVybiBtX2FsaWduZWREYXRhOyB9CisgICAgc2l6ZV90
IHNpemUoKSBjb25zdCB7IHJldHVybiBtX3NpemU7IH0KKworICAgIFQmIGF0KHNpemVfdCBpKQor
ICAgIHsKKyAgICAgICAgQVNTRVJUKGkgPCBzaXplKCkpOworICAgICAgICByZXR1cm4gZGF0YSgp
W2ldOworICAgIH0KKworICAgIFQmIG9wZXJhdG9yW10oc2l6ZV90IGkpIHsgcmV0dXJuIGF0KGkp
OyB9CiAKICAgICB2b2lkIHplcm8oKSB7IG1lbXNldCh0aGlzLT5kYXRhKCksIDAsIHNpemVvZihU
KSAqIHRoaXMtPnNpemUoKSk7IH0KIApAQCAtNjEsNiArMTE0LDE3IEBAIHB1YmxpYzoKIAogICAg
ICAgICBtZW1jcHkodGhpcy0+ZGF0YSgpICsgc3RhcnQsIHNvdXJjZURhdGEsIHNpemVvZihUKSAq
IChlbmQgLSBzdGFydCkpOwogICAgIH0KKworcHJpdmF0ZToKKyAgICBzdGF0aWMgVCogYWxpZ25l
ZEFkZHJlc3MoVCogYWRkcmVzcywgaW50cHRyX3QgYWxpZ25tZW50KQorICAgIHsKKyAgICAgICAg
aW50cHRyX3QgdmFsdWUgPSByZWludGVycHJldF9jYXN0PGludHB0cl90PihhZGRyZXNzKTsKKyAg
ICAgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8VCo+KCh2YWx1ZSArIGFsaWdubWVudCAtIDEp
ICYgfihhbGlnbm1lbnQgLSAxKSk7CisgICAgfQorCisgICAgVCogbV9hbGxvY2F0aW9uOworICAg
IFQqIG1fYWxpZ25lZERhdGE7CisgICAgc2l6ZV90IG1fc2l6ZTsKIH07CiAKIHR5cGVkZWYgQXVk
aW9BcnJheTxmbG9hdD4gQXVkaW9GbG9hdEFycmF5OwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vYXVkaW8vQmlxdWFkLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9hdWRpby9CaXF1YWQuY3BwCShyZXZpc2lvbiA5MjI5NCkKKysrIFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2F1ZGlvL0JpcXVhZC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ4LDggKzQ4LDgg
QEAgQmlxdWFkOjpCaXF1YWQoKQogewogI2lmIE9TKERBUldJTikKICAgICAvLyBBbGxvY2F0ZSB0
d28gc2FtcGxlcyBtb3JlIGZvciBmaWx0ZXIgaGlzdG9yeQotICAgIG1faW5wdXRCdWZmZXIucmVz
aXplKGtCdWZmZXJTaXplICsgMik7Ci0gICAgbV9vdXRwdXRCdWZmZXIucmVzaXplKGtCdWZmZXJT
aXplICsgMik7CisgICAgbV9pbnB1dEJ1ZmZlci5hbGxvY2F0ZShrQnVmZmVyU2l6ZSArIDIpOwor
ICAgIG1fb3V0cHV0QnVmZmVyLmFsbG9jYXRlKGtCdWZmZXJTaXplICsgMik7CiAjZW5kaWYKIAog
ICAgIC8vIEluaXRpYWxpemUgYXMgcGFzcy10aHJ1IChzdHJhaWdodC13aXJlLCBubyBmaWx0ZXIg
ZWZmZWN0KQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vUmV2ZXJiQ29udm9s
dmVyU3RhZ2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlv
L1JldmVyYkNvbnZvbHZlclN0YWdlLmNwcAkocmV2aXNpb24gOTIyOTQpCisrKyBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9hdWRpby9SZXZlcmJDb252b2x2ZXJTdGFnZS5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTU2LDcgKzU2LDcgQEAgUmV2ZXJiQ29udm9sdmVyU3RhZ2U6OlJldmVyYkNvbnZvbHZl
clN0YQogICAgIAogICAgIG1fZmZ0S2VybmVsLmRvUGFkZGVkRkZUKGltcHVsc2VSZXNwb25zZSAr
IHN0YWdlT2Zmc2V0LCBzdGFnZUxlbmd0aCk7CiAgICAgbV9jb252b2x2ZXIgPSBhZG9wdFB0cihu
ZXcgRkZUQ29udm9sdmVyKGZmdFNpemUpKTsKLSAgICBtX3RlbXBvcmFyeUJ1ZmZlci5yZXNpemUo
cmVuZGVyU2xpY2VTaXplKTsKKyAgICBtX3RlbXBvcmFyeUJ1ZmZlci5hbGxvY2F0ZShyZW5kZXJT
bGljZVNpemUpOwogCiAgICAgLy8gVGhlIGNvbnZvbHV0aW9uIHN0YWdlIGF0IG9mZnNldCBzdGFn
ZU9mZnNldCBuZWVkcyB0byBoYXZlIGEgY29ycmVzcG9uZGluZyBkZWxheSB0byBjYW5jZWwgb3V0
IHRoZSBvZmZzZXQuCiAgICAgc2l6ZV90IHRvdGFsRGVsYXkgPSBzdGFnZU9mZnNldCArIHJldmVy
YlRvdGFsTGF0ZW5jeTsKQEAgLTc4LDcgKzc4LDcgQEAgUmV2ZXJiQ29udm9sdmVyU3RhZ2U6OlJl
dmVyYkNvbnZvbHZlclN0YQogICAgIG1fcHJlUmVhZFdyaXRlSW5kZXggPSAwOwogICAgIG1fZnJh
bWVzUHJvY2Vzc2VkID0gMDsgLy8gdG90YWwgZnJhbWVzIHByb2Nlc3NlZCBzbyBmYXIKIAotICAg
IG1fcHJlRGVsYXlCdWZmZXIucmVzaXplKG1fcHJlRGVsYXlMZW5ndGggPCBmZnRTaXplID8gZmZ0
U2l6ZSA6IG1fcHJlRGVsYXlMZW5ndGgpOworICAgIG1fcHJlRGVsYXlCdWZmZXIuYWxsb2NhdGUo
bV9wcmVEZWxheUxlbmd0aCA8IGZmdFNpemUgPyBmZnRTaXplIDogbV9wcmVEZWxheUxlbmd0aCk7
CiB9CiAKIHZvaWQgUmV2ZXJiQ29udm9sdmVyU3RhZ2U6OnByb2Nlc3NJbkJhY2tncm91bmQoUmV2
ZXJiQ29udm9sdmVyKiBjb252b2x2ZXIsIHNpemVfdCBmcmFtZXNUb1Byb2Nlc3MpCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS93ZWJhdWRpby9EZWxheURTUEtlcm5lbC5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvd2ViYXVkaW8vRGVsYXlEU1BLZXJuZWwuY3BwCShyZXZpc2lvbiA5MjI5
NCkKKysrIFNvdXJjZS9XZWJDb3JlL3dlYmF1ZGlvL0RlbGF5RFNQS2VybmVsLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtNDgsNyArNDgsNyBAQCBEZWxheURTUEtlcm5lbDo6RGVsYXlEU1BLZXJuZWwo
RGVsYXlQcm9jCiAgICAgaWYgKCFwcm9jZXNzb3IpCiAgICAgICAgIHJldHVybjsKIAotICAgIG1f
YnVmZmVyLnJlc2l6ZShzdGF0aWNfY2FzdDxzaXplX3Q+KHByb2Nlc3Nvci0+c2FtcGxlUmF0ZSgp
ICogRGVmYXVsdE1heERlbGF5VGltZSkpOworICAgIG1fYnVmZmVyLmFsbG9jYXRlKHN0YXRpY19j
YXN0PHNpemVfdD4ocHJvY2Vzc29yLT5zYW1wbGVSYXRlKCkgKiBEZWZhdWx0TWF4RGVsYXlUaW1l
KSk7CiAgICAgbV9idWZmZXIuemVybygpOwogCiAgICAgbV9zbW9vdGhpbmdSYXRlID0gQXVkaW9V
dGlsaXRpZXM6OmRpc2NyZXRlVGltZUNvbnN0YW50Rm9yU2FtcGxlUmF0ZShTbW9vdGhpbmdUaW1l
Q29uc3RhbnQsIHByb2Nlc3Nvci0+c2FtcGxlUmF0ZSgpKTsKQEAgLTY5LDcgKzY5LDcgQEAgRGVs
YXlEU1BLZXJuZWw6OkRlbGF5RFNQS2VybmVsKGRvdWJsZSBtYQogICAgIGlmICghYnVmZmVyTGVu
Z3RoKQogICAgICAgICByZXR1cm47CiAgICAgCi0gICAgbV9idWZmZXIucmVzaXplKGJ1ZmZlckxl
bmd0aCk7CisgICAgbV9idWZmZXIuYWxsb2NhdGUoYnVmZmVyTGVuZ3RoKTsKICAgICBtX2J1ZmZl
ci56ZXJvKCk7CiAKICAgICBtX3Ntb290aGluZ1JhdGUgPSBBdWRpb1V0aWxpdGllczo6ZGlzY3Jl
dGVUaW1lQ29uc3RhbnRGb3JTYW1wbGVSYXRlKFNtb290aGluZ1RpbWVDb25zdGFudCwgc2FtcGxl
UmF0ZSk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS93ZWJhdWRpby9SZWFsdGltZUFuYWx5c2VyLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS93ZWJhdWRpby9SZWFsdGltZUFuYWx5c2Vy
LmNwcAkocmV2aXNpb24gOTIyOTQpCisrKyBTb3VyY2UvV2ViQ29yZS93ZWJhdWRpby9SZWFsdGlt
ZUFuYWx5c2VyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTAsNyArOTAsNyBAQCB2b2lkIFJlYWx0
aW1lQW5hbHlzZXI6OnNldEZmdFNpemUoc2l6ZV90CiAKICAgICBpZiAobV9mZnRTaXplICE9IHNp
emUpIHsKICAgICAgICAgbV9hbmFseXNpc0ZyYW1lID0gYWRvcHRQdHIobmV3IEZGVEZyYW1lKG1f
ZmZ0U2l6ZSkpOwotICAgICAgICBtX21hZ25pdHVkZUJ1ZmZlci5yZXNpemUoc2l6ZSk7CisgICAg
ICAgIG1fbWFnbml0dWRlQnVmZmVyLmFsbG9jYXRlKHNpemUpOwogICAgICAgICBtX2ZmdFNpemUg
PSBzaXplOwogICAgIH0KIH0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>102954</attachid>
            <date>2011-08-04 11:53:30 -0700</date>
            <delta_ts>2011-08-04 14:07:37 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-65651-20110804115326.patch</filename>
            <type>text/plain</type>
            <size>7602</size>
            <attacher name="Chris Rogers">crogers</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDkyMzIxKQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzAgQEAKKzIwMTEtMDgtMDMgIENocmlzIFJv
Z2VycyAgPGNyb2dlcnNAZ29vZ2xlLmNvbT4KKworICAgICAgICBNYWtlIHN1cmUgdGhhdCBBdWRp
b0FycmF5IGlzIDE2LWJ5dGUgYWxpZ25lZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NjU2NTEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHMgLSB0aGlzIGRvZXMgbm90IGNoYW5nZSBKYXZh
U2NyaXB0IEFQSS4KKworICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL0F1ZGlvQXJyYXkuaDoKKyAg
ICAgICAgKFdlYkNvcmU6OkF1ZGlvQXJyYXk6OkF1ZGlvQXJyYXkpOgorICAgICAgICAoV2ViQ29y
ZTo6QXVkaW9BcnJheTo6fkF1ZGlvQXJyYXkpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9BcnJh
eTo6YWxsb2NhdGUpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9BcnJheTo6ZGF0YSk6CisgICAg
ICAgIChXZWJDb3JlOjpBdWRpb0FycmF5OjpzaXplKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlv
QXJyYXk6OmF0KToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvQXJyYXk6Om9wZXJhdG9yW10pOgor
ICAgICAgICAoV2ViQ29yZTo6QXVkaW9BcnJheTo6YWxpZ25lZEFkZHJlc3MpOgorICAgICAgICAq
IHBsYXRmb3JtL2F1ZGlvL0JpcXVhZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpCaXF1YWQ6OkJp
cXVhZCk6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vUmV2ZXJiQ29udm9sdmVyU3RhZ2UuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6UmV2ZXJiQ29udm9sdmVyU3RhZ2U6OlJldmVyYkNvbnZvbHZl
clN0YWdlKToKKyAgICAgICAgKiB3ZWJhdWRpby9EZWxheURTUEtlcm5lbC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpEZWxheURTUEtlcm5lbDo6RGVsYXlEU1BLZXJuZWwpOgorICAgICAgICAqIHdl
YmF1ZGlvL1JlYWx0aW1lQW5hbHlzZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVB
bmFseXNlcjo6c2V0RmZ0U2l6ZSk6CisKIDIwMTEtMDgtMDMgIE1hcmsgUGlsZ3JpbSAgPHBpbGdy
aW1AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJlbW92ZSBMZWdhY3lEZWZhdWx0T3B0aW9uYWxB
cmd1bWVudHMgZmxhZyBmcm9tIERPTVNlbGVjdGlvbi5pZGwKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2F1ZGlvL0F1ZGlvQXJyYXkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9hdWRpby9BdWRpb0FycmF5LmgJKHJldmlzaW9uIDkyMjk0KQorKysgU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9BcnJheS5oCSh3b3JraW5nIGNvcHkpCkBAIC0z
MCwxNSArMzAsNjkgQEAKICNkZWZpbmUgQXVkaW9BcnJheV9oCiAKICNpbmNsdWRlIDxzdHJpbmcu
aD4KKyNpbmNsdWRlIDx3dGYvRmFzdE1hbGxvYy5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4K
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgotY2xhc3MgQXVk
aW9BcnJheSA6IHB1YmxpYyBWZWN0b3I8VD4geworY2xhc3MgQXVkaW9BcnJheSB7CiBwdWJsaWM6
Ci0gICAgQXVkaW9BcnJheSgpIDogVmVjdG9yPFQ+KDApIHsgfQotICAgIGV4cGxpY2l0IEF1ZGlv
QXJyYXkoc2l6ZV90IG4pIDogVmVjdG9yPFQ+KG4sIDApIHsgfQorICAgIEF1ZGlvQXJyYXkoKSA6
IG1fYWxsb2NhdGlvbigwKSwgbV9hbGlnbmVkRGF0YSgwKSwgbV9zaXplKDApIHsgfQorICAgIGV4
cGxpY2l0IEF1ZGlvQXJyYXkoc2l6ZV90IG4pIDogbV9hbGxvY2F0aW9uKDApLCBtX2FsaWduZWRE
YXRhKDApLCBtX3NpemUoMCkKKyAgICB7CisgICAgICAgIGFsbG9jYXRlKG4pOworICAgIH0KKwor
ICAgIH5BdWRpb0FycmF5KCkKKyAgICB7CisgICAgICAgIGZhc3RGcmVlKG1fYWxsb2NhdGlvbik7
CisgICAgfQorCisgICAgLy8gSXQncyBPSyB0byBjYWxsIGFsbG9jYXRlKCkgbXVsdGlwbGUgdGlt
ZXMsIGJ1dCBkYXRhIHdpbGwgKm5vdCogYmUgY29waWVkIGZyb20gYW4gaW5pdGlhbCBhbGxvY2F0
aW9uCisgICAgLy8gaWYgcmUtYWxsb2NhdGVkLiBBbGxvY2F0aW9ucyBhcmUgemVyby1pbml0aWFs
aXplZC4KKyAgICB2b2lkIGFsbG9jYXRlKHNpemVfdCBuKQorICAgIHsKKyAgICAgICAgLy8gMTYt
Ynl0ZSBhbGlnbm1lbnQgZm9yIDEyOGJpdCBTSU1ELgorICAgICAgICBjb25zdCBzaXplX3QgYWxp
Z25tZW50ID0gMTY7CisKKyAgICAgICAgaWYgKG1fYWxsb2NhdGlvbikKKyAgICAgICAgICAgIGZh
c3RGcmVlKG1fYWxsb2NhdGlvbik7CisgICAgICAgIAorICAgICAgICBib29sIGlzQWxsb2NhdGlv
bkdvb2QgPSBmYWxzZTsKKyAgICAgICAgCisgICAgICAgIHdoaWxlICghaXNBbGxvY2F0aW9uR29v
ZCkgeworICAgICAgICAgICAgLy8gSW5pdGlhbGx5IHdlIHRyeSB0byBhbGxvY2F0ZSB0aGUgZXhh
Y3Qgc2l6ZSwgYnV0IGlmIGl0J3Mgbm90IGFsaWduZWQKKyAgICAgICAgICAgIC8vIHRoZW4gd2Un
bGwgaGF2ZSB0byByZWFsbG9jYXRlIGFuZCBmcm9tIHRoZW4gb24gYWxsb2NhdGUgZXh0cmEuCisg
ICAgICAgICAgICBzdGF0aWMgc2l6ZV90IGV4dHJhQWxsb2NhdGlvbkJ5dGVzID0gMDsKKworICAg
ICAgICAgICAgVCogYWxsb2NhdGlvbiA9IHN0YXRpY19jYXN0PFQqPihmYXN0TWFsbG9jKHNpemVv
ZihUKSAqIG4gKyBleHRyYUFsbG9jYXRpb25CeXRlcykpOworICAgICAgICAgICAgVCogYWxpZ25l
ZERhdGEgPSBhbGlnbmVkQWRkcmVzcyhhbGxvY2F0aW9uLCBhbGlnbm1lbnQpOworCisgICAgICAg
ICAgICBpZiAoYWxpZ25lZERhdGEgPT0gYWxsb2NhdGlvbiB8fCBleHRyYUFsbG9jYXRpb25CeXRl
cyA9PSBhbGlnbm1lbnQpIHsKKyAgICAgICAgICAgICAgICBtX2FsbG9jYXRpb24gPSBhbGxvY2F0
aW9uOworICAgICAgICAgICAgICAgIG1fYWxpZ25lZERhdGEgPSBhbGlnbmVkRGF0YTsKKyAgICAg
ICAgICAgICAgICBtX3NpemUgPSBuOworICAgICAgICAgICAgICAgIGlzQWxsb2NhdGlvbkdvb2Qg
PSB0cnVlOworICAgICAgICAgICAgICAgIHplcm8oKTsKKyAgICAgICAgICAgIH0gZWxzZSB7Cisg
ICAgICAgICAgICAgICAgZXh0cmFBbGxvY2F0aW9uQnl0ZXMgPSBhbGlnbm1lbnQ7IC8vIGFsd2F5
cyBhbGxvY2F0ZSBleHRyYSBhZnRlciB0aGUgZmlyc3QgYWxpZ25tZW50IGZhaWx1cmUuCisgICAg
ICAgICAgICAgICAgZmFzdEZyZWUoYWxsb2NhdGlvbik7CisgICAgICAgICAgICB9CisgICAgICAg
IH0KKyAgICB9CisKKyAgICBUKiBkYXRhKCkgeyByZXR1cm4gbV9hbGlnbmVkRGF0YTsgfQorICAg
IGNvbnN0IFQqIGRhdGEoKSBjb25zdCB7IHJldHVybiBtX2FsaWduZWREYXRhOyB9CisgICAgc2l6
ZV90IHNpemUoKSBjb25zdCB7IHJldHVybiBtX3NpemU7IH0KKworICAgIFQmIGF0KHNpemVfdCBp
KQorICAgIHsKKyAgICAgICAgQVNTRVJUKGkgPCBzaXplKCkpOworICAgICAgICByZXR1cm4gZGF0
YSgpW2ldOworICAgIH0KKworICAgIFQmIG9wZXJhdG9yW10oc2l6ZV90IGkpIHsgcmV0dXJuIGF0
KGkpOyB9CiAKICAgICB2b2lkIHplcm8oKSB7IG1lbXNldCh0aGlzLT5kYXRhKCksIDAsIHNpemVv
ZihUKSAqIHRoaXMtPnNpemUoKSk7IH0KIApAQCAtNjEsNiArMTE1LDE3IEBAIHB1YmxpYzoKIAog
ICAgICAgICBtZW1jcHkodGhpcy0+ZGF0YSgpICsgc3RhcnQsIHNvdXJjZURhdGEsIHNpemVvZihU
KSAqIChlbmQgLSBzdGFydCkpOwogICAgIH0KKworcHJpdmF0ZToKKyAgICBzdGF0aWMgVCogYWxp
Z25lZEFkZHJlc3MoVCogYWRkcmVzcywgaW50cHRyX3QgYWxpZ25tZW50KQorICAgIHsKKyAgICAg
ICAgaW50cHRyX3QgdmFsdWUgPSByZWludGVycHJldF9jYXN0PGludHB0cl90PihhZGRyZXNzKTsK
KyAgICAgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8VCo+KCh2YWx1ZSArIGFsaWdubWVudCAt
IDEpICYgfihhbGlnbm1lbnQgLSAxKSk7CisgICAgfQorCisgICAgVCogbV9hbGxvY2F0aW9uOwor
ICAgIFQqIG1fYWxpZ25lZERhdGE7CisgICAgc2l6ZV90IG1fc2l6ZTsKIH07CiAKIHR5cGVkZWYg
QXVkaW9BcnJheTxmbG9hdD4gQXVkaW9GbG9hdEFycmF5OwpJbmRleDogU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vYXVkaW8vQmlxdWFkLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9hdWRpby9CaXF1YWQuY3BwCShyZXZpc2lvbiA5MjI5NCkKKysrIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2F1ZGlvL0JpcXVhZC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ4LDggKzQ4
LDggQEAgQmlxdWFkOjpCaXF1YWQoKQogewogI2lmIE9TKERBUldJTikKICAgICAvLyBBbGxvY2F0
ZSB0d28gc2FtcGxlcyBtb3JlIGZvciBmaWx0ZXIgaGlzdG9yeQotICAgIG1faW5wdXRCdWZmZXIu
cmVzaXplKGtCdWZmZXJTaXplICsgMik7Ci0gICAgbV9vdXRwdXRCdWZmZXIucmVzaXplKGtCdWZm
ZXJTaXplICsgMik7CisgICAgbV9pbnB1dEJ1ZmZlci5hbGxvY2F0ZShrQnVmZmVyU2l6ZSArIDIp
OworICAgIG1fb3V0cHV0QnVmZmVyLmFsbG9jYXRlKGtCdWZmZXJTaXplICsgMik7CiAjZW5kaWYK
IAogICAgIC8vIEluaXRpYWxpemUgYXMgcGFzcy10aHJ1IChzdHJhaWdodC13aXJlLCBubyBmaWx0
ZXIgZWZmZWN0KQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vUmV2ZXJiQ29u
dm9sdmVyU3RhZ2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1
ZGlvL1JldmVyYkNvbnZvbHZlclN0YWdlLmNwcAkocmV2aXNpb24gOTIyOTQpCisrKyBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9SZXZlcmJDb252b2x2ZXJTdGFnZS5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTU2LDcgKzU2LDcgQEAgUmV2ZXJiQ29udm9sdmVyU3RhZ2U6OlJldmVyYkNvbnZv
bHZlclN0YQogICAgIAogICAgIG1fZmZ0S2VybmVsLmRvUGFkZGVkRkZUKGltcHVsc2VSZXNwb25z
ZSArIHN0YWdlT2Zmc2V0LCBzdGFnZUxlbmd0aCk7CiAgICAgbV9jb252b2x2ZXIgPSBhZG9wdFB0
cihuZXcgRkZUQ29udm9sdmVyKGZmdFNpemUpKTsKLSAgICBtX3RlbXBvcmFyeUJ1ZmZlci5yZXNp
emUocmVuZGVyU2xpY2VTaXplKTsKKyAgICBtX3RlbXBvcmFyeUJ1ZmZlci5hbGxvY2F0ZShyZW5k
ZXJTbGljZVNpemUpOwogCiAgICAgLy8gVGhlIGNvbnZvbHV0aW9uIHN0YWdlIGF0IG9mZnNldCBz
dGFnZU9mZnNldCBuZWVkcyB0byBoYXZlIGEgY29ycmVzcG9uZGluZyBkZWxheSB0byBjYW5jZWwg
b3V0IHRoZSBvZmZzZXQuCiAgICAgc2l6ZV90IHRvdGFsRGVsYXkgPSBzdGFnZU9mZnNldCArIHJl
dmVyYlRvdGFsTGF0ZW5jeTsKQEAgLTc4LDcgKzc4LDcgQEAgUmV2ZXJiQ29udm9sdmVyU3RhZ2U6
OlJldmVyYkNvbnZvbHZlclN0YQogICAgIG1fcHJlUmVhZFdyaXRlSW5kZXggPSAwOwogICAgIG1f
ZnJhbWVzUHJvY2Vzc2VkID0gMDsgLy8gdG90YWwgZnJhbWVzIHByb2Nlc3NlZCBzbyBmYXIKIAot
ICAgIG1fcHJlRGVsYXlCdWZmZXIucmVzaXplKG1fcHJlRGVsYXlMZW5ndGggPCBmZnRTaXplID8g
ZmZ0U2l6ZSA6IG1fcHJlRGVsYXlMZW5ndGgpOworICAgIG1fcHJlRGVsYXlCdWZmZXIuYWxsb2Nh
dGUobV9wcmVEZWxheUxlbmd0aCA8IGZmdFNpemUgPyBmZnRTaXplIDogbV9wcmVEZWxheUxlbmd0
aCk7CiB9CiAKIHZvaWQgUmV2ZXJiQ29udm9sdmVyU3RhZ2U6OnByb2Nlc3NJbkJhY2tncm91bmQo
UmV2ZXJiQ29udm9sdmVyKiBjb252b2x2ZXIsIHNpemVfdCBmcmFtZXNUb1Byb2Nlc3MpCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS93ZWJhdWRpby9EZWxheURTUEtlcm5lbC5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvd2ViYXVkaW8vRGVsYXlEU1BLZXJuZWwuY3BwCShyZXZpc2lvbiA5
MjI5NCkKKysrIFNvdXJjZS9XZWJDb3JlL3dlYmF1ZGlvL0RlbGF5RFNQS2VybmVsLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtNDgsNyArNDgsNyBAQCBEZWxheURTUEtlcm5lbDo6RGVsYXlEU1BLZXJu
ZWwoRGVsYXlQcm9jCiAgICAgaWYgKCFwcm9jZXNzb3IpCiAgICAgICAgIHJldHVybjsKIAotICAg
IG1fYnVmZmVyLnJlc2l6ZShzdGF0aWNfY2FzdDxzaXplX3Q+KHByb2Nlc3Nvci0+c2FtcGxlUmF0
ZSgpICogRGVmYXVsdE1heERlbGF5VGltZSkpOworICAgIG1fYnVmZmVyLmFsbG9jYXRlKHN0YXRp
Y19jYXN0PHNpemVfdD4ocHJvY2Vzc29yLT5zYW1wbGVSYXRlKCkgKiBEZWZhdWx0TWF4RGVsYXlU
aW1lKSk7CiAgICAgbV9idWZmZXIuemVybygpOwogCiAgICAgbV9zbW9vdGhpbmdSYXRlID0gQXVk
aW9VdGlsaXRpZXM6OmRpc2NyZXRlVGltZUNvbnN0YW50Rm9yU2FtcGxlUmF0ZShTbW9vdGhpbmdU
aW1lQ29uc3RhbnQsIHByb2Nlc3Nvci0+c2FtcGxlUmF0ZSgpKTsKQEAgLTY5LDcgKzY5LDcgQEAg
RGVsYXlEU1BLZXJuZWw6OkRlbGF5RFNQS2VybmVsKGRvdWJsZSBtYQogICAgIGlmICghYnVmZmVy
TGVuZ3RoKQogICAgICAgICByZXR1cm47CiAgICAgCi0gICAgbV9idWZmZXIucmVzaXplKGJ1ZmZl
ckxlbmd0aCk7CisgICAgbV9idWZmZXIuYWxsb2NhdGUoYnVmZmVyTGVuZ3RoKTsKICAgICBtX2J1
ZmZlci56ZXJvKCk7CiAKICAgICBtX3Ntb290aGluZ1JhdGUgPSBBdWRpb1V0aWxpdGllczo6ZGlz
Y3JldGVUaW1lQ29uc3RhbnRGb3JTYW1wbGVSYXRlKFNtb290aGluZ1RpbWVDb25zdGFudCwgc2Ft
cGxlUmF0ZSk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS93ZWJhdWRpby9SZWFsdGltZUFuYWx5c2Vy
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS93ZWJhdWRpby9SZWFsdGltZUFuYWx5
c2VyLmNwcAkocmV2aXNpb24gOTIyOTQpCisrKyBTb3VyY2UvV2ViQ29yZS93ZWJhdWRpby9SZWFs
dGltZUFuYWx5c2VyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTAsNyArOTAsNyBAQCB2b2lkIFJl
YWx0aW1lQW5hbHlzZXI6OnNldEZmdFNpemUoc2l6ZV90CiAKICAgICBpZiAobV9mZnRTaXplICE9
IHNpemUpIHsKICAgICAgICAgbV9hbmFseXNpc0ZyYW1lID0gYWRvcHRQdHIobmV3IEZGVEZyYW1l
KG1fZmZ0U2l6ZSkpOwotICAgICAgICBtX21hZ25pdHVkZUJ1ZmZlci5yZXNpemUoc2l6ZSk7Cisg
ICAgICAgIG1fbWFnbml0dWRlQnVmZmVyLmFsbG9jYXRlKHNpemUpOwogICAgICAgICBtX2ZmdFNp
emUgPSBzaXplOwogICAgIH0KIH0K
</data>

          </attachment>
      

    </bug>

</bugzilla>