<?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>75334</bug_id>
          
          <creation_ts>2011-12-28 20:34:11 -0800</creation_ts>
          <short_desc>Use VectorMath lib when possible to optimize the processing in WebAudio AudioBus</short_desc>
          <delta_ts>2012-01-06 11:51:39 -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>Web Audio</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="Wei James (wistoch)">james.wei</reporter>
          <assigned_to name="Wei James (wistoch)">james.wei</assigned_to>
          <cc>crogers</cc>
    
    <cc>kbr</cc>
    
    <cc>rtoy</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>527836</commentid>
    <comment_count>0</comment_count>
    <who name="Wei James (wistoch)">james.wei</who>
    <bug_when>2011-12-28 20:34:11 -0800</bug_when>
    <thetext>Use VectorMath lib when possible to optimize the processing in WebAudio AudioBus</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>527840</commentid>
    <comment_count>1</comment_count>
      <attachid>120717</attachid>
    <who name="Wei James (wistoch)">james.wei</who>
    <bug_when>2011-12-28 20:36:59 -0800</bug_when>
    <thetext>Created attachment 120717
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>529127</commentid>
    <comment_count>2</comment_count>
      <attachid>120717</attachid>
    <who name="Chris Rogers">crogers</who>
    <bug_when>2012-01-03 15:58:52 -0800</bug_when>
    <thetext>Comment on attachment 120717
Patch

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

&gt; Source/WebCore/platform/audio/AudioBus.cpp:241
&gt; +#if (defined(__GNUC__) &amp;&amp; (defined(__i386__) || defined(__x86_64__))) || (OS(WINDOWS) &amp;&amp; COMPILER(MSVC) &amp;&amp; (_M_IX86_FP)) 

I think we should have this conditional somewhere in DenormalDisabler.h, since that&apos;s where the rest of those low-level details are dealt with

Also, the macro name shouldn&apos;t be called USE_VECTOR_MATH_LIB, but instead should be more general -- something like HAS_HARDWARE_DENORMAL_FLUSHING
(or maybe you can think of a better and more accurate name)

&gt; Source/WebCore/platform/audio/AudioBus.cpp:301
&gt; +#define STEREO_NO_SUM_V \

I&apos;d love to see if we could just stop worrying about denormals in the case when the gain has already converged to the target and avoid
the #if #else here and in the other two places below (in other words just always go with the vsmul case).  That might also simplify some of the other macros you&apos;ve defined.

We can clamp (to zero) the &quot;targetGain&quot; when it&apos;s less than a certain lower value (like -100dB or maybe lower?)

It&apos;s true that there could be cases where targetGain is say -80dB and the values of the vector being scaled are already
quite small, pushing them into denormal range, but I think this case will not be common (and we can work more to avoid generating
them in the first place).   I&apos;m worried about the extra code complexity of having to deal with denormals in this case, especially when we add in the other up and down-mixing cases.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>529601</commentid>
    <comment_count>3</comment_count>
      <attachid>120717</attachid>
    <who name="Raymond Toy">rtoy</who>
    <bug_when>2012-01-04 10:28:52 -0800</bug_when>
    <thetext>Comment on attachment 120717
Patch

Should be fine, once Chris&apos;s comments are fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>530018</commentid>
    <comment_count>4</comment_count>
      <attachid>121220</attachid>
    <who name="Wei James (wistoch)">james.wei</who>
    <bug_when>2012-01-04 22:53:06 -0800</bug_when>
    <thetext>Created attachment 121220
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>530019</commentid>
    <comment_count>5</comment_count>
      <attachid>120717</attachid>
    <who name="Wei James (wistoch)">james.wei</who>
    <bug_when>2012-01-04 22:55:35 -0800</bug_when>
    <thetext>Comment on attachment 120717
Patch

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

&gt;&gt; Source/WebCore/platform/audio/AudioBus.cpp:241
&gt;&gt; +#if (defined(__GNUC__) &amp;&amp; (defined(__i386__) || defined(__x86_64__))) || (OS(WINDOWS) &amp;&amp; COMPILER(MSVC) &amp;&amp; (_M_IX86_FP)) 
&gt; 
&gt; I think we should have this conditional somewhere in DenormalDisabler.h, since that&apos;s where the rest of those low-level details are dealt with
&gt; 
&gt; Also, the macro name shouldn&apos;t be called USE_VECTOR_MATH_LIB, but instead should be more general -- something like HAS_HARDWARE_DENORMAL_FLUSHING
&gt; (or maybe you can think of a better and more accurate name)

as said in the following comment, this part will be removed. thanks

&gt;&gt; Source/WebCore/platform/audio/AudioBus.cpp:301
&gt;&gt; +#define STEREO_NO_SUM_V \
&gt; 
&gt; I&apos;d love to see if we could just stop worrying about denormals in the case when the gain has already converged to the target and avoid
&gt; the #if #else here and in the other two places below (in other words just always go with the vsmul case).  That might also simplify some of the other macros you&apos;ve defined.
&gt; 
&gt; We can clamp (to zero) the &quot;targetGain&quot; when it&apos;s less than a certain lower value (like -100dB or maybe lower?)
&gt; 
&gt; It&apos;s true that there could be cases where targetGain is say -80dB and the values of the vector being scaled are already
&gt; quite small, pushing them into denormal range, but I think this case will not be common (and we can work more to avoid generating
&gt; them in the first place).   I&apos;m worried about the extra code complexity of having to deal with denormals in this case, especially when we add in the other up and down-mixing cases.

modified the code according to your comments. thanks</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>530452</commentid>
    <comment_count>6</comment_count>
      <attachid>121220</attachid>
    <who name="Chris Rogers">crogers</who>
    <bug_when>2012-01-05 11:16:22 -0800</bug_when>
    <thetext>Comment on attachment 121220
Patch

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

&gt; Source/WebCore/platform/audio/AudioBus.cpp:257
&gt; +#define STEREO_SUM_V \

We could potentially also optimize the &quot;SUM_V&quot; cases.  We can&apos;t use vsmul() directly, but if we had something like vsmul_add() then we could!

Maybe add a FIXME here about this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>530455</commentid>
    <comment_count>7</comment_count>
      <attachid>121220</attachid>
    <who name="Chris Rogers">crogers</who>
    <bug_when>2012-01-05 11:19:18 -0800</bug_when>
    <thetext>Comment on attachment 121220
Patch

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

Looks good to me with comments addressed.

&gt; Source/WebCore/ChangeLog:8
&gt; +        No new tests. (OOPS!)

Please remove this line.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>530614</commentid>
    <comment_count>8</comment_count>
      <attachid>121220</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2012-01-05 14:05:31 -0800</bug_when>
    <thetext>Comment on attachment 121220
Patch

Since James isn&apos;t a committer a new patch is needed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>530705</commentid>
    <comment_count>9</comment_count>
    <who name="Wei James (wistoch)">james.wei</who>
    <bug_when>2012-01-05 15:34:20 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; (From update of attachment 121220 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=121220&amp;action=review
&gt; &gt; Source/WebCore/platform/audio/AudioBus.cpp:257
&gt; &gt; +#define STEREO_SUM_V \
&gt; We could potentially also optimize the &quot;SUM_V&quot; cases.  We can&apos;t use vsmul() directly, but if we had something like vsmul_add() then we could!
&gt; Maybe add a FIXME here about this?

yes, I am working on it now. will add a new funciton on VectorMath and then use it here. thanks</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>530706</commentid>
    <comment_count>10</comment_count>
      <attachid>121350</attachid>
    <who name="Wei James (wistoch)">james.wei</who>
    <bug_when>2012-01-05 15:35:38 -0800</bug_when>
    <thetext>Created attachment 121350
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>530717</commentid>
    <comment_count>11</comment_count>
    <who name="Chris Rogers">crogers</who>
    <bug_when>2012-01-05 15:42:02 -0800</bug_when>
    <thetext>(In reply to comment #9)
&gt; &gt; We could potentially also optimize the &quot;SUM_V&quot; cases.  We can&apos;t use vsmul() directly, but if we had something like vsmul_add() then we could!
&gt; &gt; Maybe add a FIXME here about this?
&gt; 
&gt; yes, I am working on it now. will add a new funciton on VectorMath and then use it here. thanks

Thanks James - looks good to me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>530724</commentid>
    <comment_count>12</comment_count>
    <who name="Wei James (wistoch)">james.wei</who>
    <bug_when>2012-01-05 15:46:43 -0800</bug_when>
    <thetext>(In reply to comment #11)
&gt; (In reply to comment #9)
&gt; &gt; &gt; We could potentially also optimize the &quot;SUM_V&quot; cases.  We can&apos;t use vsmul() directly, but if we had something like vsmul_add() then we could!
&gt; &gt; &gt; Maybe add a FIXME here about this?
&gt; &gt; 
&gt; &gt; yes, I am working on it now. will add a new funciton on VectorMath and then use it here. thanks
&gt; 
&gt; Thanks James - looks good to me.

hi, roger, as we will use IPP to do FFT in web audio. In IPP, there are many highly optimized functions for vector operations. Can we also use them in VectorMath.cpp when we enabled IPP?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>530739</commentid>
    <comment_count>13</comment_count>
    <who name="Chris Rogers">crogers</who>
    <bug_when>2012-01-05 16:00:07 -0800</bug_when>
    <thetext>(In reply to comment #12)
&gt; hi, roger, as we will use IPP to do FFT in web audio. In IPP, there are many highly optimized functions for vector operations. Can we also use them in VectorMath.cpp when we enabled IPP?

Sure, I don&apos;t see why you couldn&apos;t call into the IPP versions similar to what we already do today for OS(DARWIN) with its &lt;Accelerate.framework&gt; functions.  Partly, this depends on your judgement of whether you believe there would be an advantage compared with the SSE optimizations you&apos;ve already made.

By the way, no worries, but my name is actually &quot;Chris&quot; :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>530744</commentid>
    <comment_count>14</comment_count>
    <who name="Wei James (wistoch)">james.wei</who>
    <bug_when>2012-01-05 16:06:57 -0800</bug_when>
    <thetext>(In reply to comment #13)
&gt; (In reply to comment #12)
&gt; &gt; hi, roger, as we will use IPP to do FFT in web audio. In IPP, there are many highly optimized functions for vector operations. Can we also use them in VectorMath.cpp when we enabled IPP?
&gt; 
&gt; Sure, I don&apos;t see why you couldn&apos;t call into the IPP versions similar to what we already do today for OS(DARWIN) with its &lt;Accelerate.framework&gt; functions.  Partly, this depends on your judgement of whether you believe there would be an advantage compared with the SSE optimizations you&apos;ve already made.
&gt; 
&gt; By the way, no worries, but my name is actually &quot;Chris&quot; :)

:) Chris, sorry for the misunderstanding. :) 

we will evaluate it and enable it if its performance is better(I believe so. :)) 

btw, could you have a look at this simple patch when you are free? Ken needs your confirmation to r+ it. 
https://bugs.webkit.org/show_bug.cgi?id=74693</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>530868</commentid>
    <comment_count>15</comment_count>
    <who name="Wei James (wistoch)">james.wei</who>
    <bug_when>2012-01-05 18:47:23 -0800</bug_when>
    <thetext>(In reply to comment #11)
&gt; (In reply to comment #9)
&gt; &gt; &gt; We could potentially also optimize the &quot;SUM_V&quot; cases.  We can&apos;t use vsmul() directly, but if we had something like vsmul_add() then we could!
&gt; &gt; &gt; Maybe add a FIXME here about this?
&gt; &gt; 
&gt; &gt; yes, I am working on it now. will add a new funciton on VectorMath and then use it here. thanks
&gt; 
&gt; Thanks James - looks good to me.

Ken, could you help to land this patch firstly? 

we will do further optimize including adding new VectorMath function etc in another patch. 

thanks</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>531148</commentid>
    <comment_count>16</comment_count>
      <attachid>121350</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2012-01-06 10:31:51 -0800</bug_when>
    <thetext>Comment on attachment 121350
Patch

If it looks good to Chris it&apos;s fine with me. rs=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>531222</commentid>
    <comment_count>17</comment_count>
      <attachid>121350</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-01-06 11:51:34 -0800</bug_when>
    <thetext>Comment on attachment 121350
Patch

Clearing flags on attachment: 121350

Committed r104308: &lt;http://trac.webkit.org/changeset/104308&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>531223</commentid>
    <comment_count>18</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-01-06 11:51:39 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>120717</attachid>
            <date>2011-12-28 20:36:59 -0800</date>
            <delta_ts>2012-01-04 22:55:35 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-75334-20111229123741.patch</filename>
            <type>text/plain</type>
            <size>5627</size>
            <attacher name="Wei James (wistoch)">james.wei</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAzNzg5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDZjYjFjMzNkNWY2MDIx
NWMzNDQxZDc5OTM4MGQ4MzkzNjRkMTY4Yy4uN2ZjNzdjMmJlODAxZDhlMDc4NWE1MTFkNzQ0NGU3
NjdjZGI1Y2U2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDExLTEyLTI4ICBXZWkg
SmFtZXMgIDxqYW1lcy53ZWlAaW50ZWwuY29tPgorCisgICAgICAgIFVzZSBWZWN0b3JNYXRoIGxp
YiB3aGVuIHBvc3NpYmxlIHRvIG9wdGltaXplIHRoZSBwcm9jZXNzaW5nIGluIFdlYkF1ZGlvIEF1
ZGlvQnVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03
NTMzNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5v
IG5ldyB0ZXN0cy4gKE9PUFMhKQorCisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vQXVkaW9CdXMu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9CdXM6OnByb2Nlc3NXaXRoR2FpbkZyb21Nb25v
U3RlcmVvKToKKwogMjAxMS0xMi0yOCAgQ2hhbmdTZW9rIE9oICA8c2hpdmFtaWRvd0BnbWFpbC5j
b20+CiAKICAgICAgICAgW0dUS10gRml4IGNvbXBpbGF0aW9uIGlzc3VlIHdoZW4gc2VsZWN0aW5n
IG9wZW5nbCBmb3IgQWNjZWxlcmF0ZWQgY29tcG9zaXRpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvQnVzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2F1ZGlvL0F1ZGlvQnVzLmNwcAppbmRleCBkMTQzMDVlMjk5ZjMwMGZmOTllMzg1ZDczYzE4
YTk5YjVlNDFlOGRiLi42NmE3NmZjNGI5NWE3ZTMyYjRmOWQ5ZTJmZWZkOTRmZjA3YTc4ZDViIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb0J1cy5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9CdXMuY3BwCkBAIC0yMzYsNiAr
MjM2LDEyIEBAIHZvaWQgQXVkaW9CdXM6OnN1bUZyb20oY29uc3QgQXVkaW9CdXMgJnNvdXJjZUJ1
cykKICAgICBnYWluICs9ICh0b3RhbERlc2lyZWRHYWluIC0gZ2FpbikgKiBEZXppcHBlclJhdGU7
IFwKICAgICBnYWluID0gRGVub3JtYWxEaXNhYmxlcjo6Zmx1c2hEZW5vcm1hbEZsb2F0VG9aZXJv
KGdhaW4pOwogCisvLyBJZiBEZW5vcm1hbERpc2FibGVyOjpmbHVzaERlbm9ybWFsRmxvYXRUb1pl
cm8oKSBpcyBhIE5PUCAoZ2NjIHZzLiBWaXN1YWwgU3R1ZGlvKSwKKy8vIHdlIGNhbiBvcHRpbWl6
ZSB0aGUgUFJPQ0VTU19XSVRIX0dBSU4gY29kZXBhdGhzIHVzaW5nIHZzbXVsKCkuCisjaWYgKGRl
ZmluZWQoX19HTlVDX18pICYmIChkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9feDg2XzY0
X18pKSkgfHwgKE9TKFdJTkRPV1MpICYmIENPTVBJTEVSKE1TVkMpICYmIChfTV9JWDg2X0ZQKSkg
CisjZGVmaW5lIFVTRV9WRUNUT1JfTUFUSF9MSUIgMQorI2VuZGlmCisKIC8vIERlLXppcHBlciBm
b3IgdGhlIGZpcnN0IGZyYW1lc1RvRGV6aXBwZXIgZnJhbWVzIGFuZCBza2lwIGRlLXppcHBlcmlu
ZyBmb3IgdGhlIHJlbWFpbmluZyBmcmFtZXMKIC8vIGJlY2F1c2UgdGhlIGdhaW4gaXMgY2xvc2Ug
ZW5vdWdoIHRvIHRoZSB0YXJnZXQgZ2Fpbi4KICNkZWZpbmUgUFJPQ0VTU19XSVRIX0dBSU4oT1Ap
IFwKQEAgLTI0NCw4ICsyNTAsNyBAQCB2b2lkIEF1ZGlvQnVzOjpzdW1Gcm9tKGNvbnN0IEF1ZGlv
QnVzICZzb3VyY2VCdXMpCiAgICAgICAgIEdBSU5fREVaSVBQRVIgXAogICAgIH0gXAogICAgIGdh
aW4gPSB0b3RhbERlc2lyZWRHYWluOyBcCi0gICAgZm9yICg7IGsgPCBmcmFtZXNUb1Byb2Nlc3M7
ICsraykgIFwKLSAgICAgICAgT1AKKyAgICBPUCMjX1YgCiAKICNkZWZpbmUgU1RFUkVPX1NVTSBc
CiAgICAgeyBcCkBAIC0yNTUsNiArMjYwLDEwIEBAIHZvaWQgQXVkaW9CdXM6OnN1bUZyb20oY29u
c3QgQXVkaW9CdXMgJnNvdXJjZUJ1cykKICAgICAgICAgKmRlc3RpbmF0aW9uUisrID0gc3VtUjsg
XAogICAgIH0KIAorI2RlZmluZSBTVEVSRU9fU1VNX1YgXAorICAgIGZvciAoOyBrIDwgZnJhbWVz
VG9Qcm9jZXNzOyArK2spIFwKKyAgICAgICAgU1RFUkVPX1NVTQorCiAvLyBNb25vIC0+IHN0ZXJl
byAobWl4IGVxdWFsbHkgaW50byBMIGFuZCBSKQogLy8gRklYTUU6IFJlYWxseSB3ZSBzaG91bGQg
YXBwbHkgYW4gZXF1YWwtcG93ZXIgc2NhbGluZyBmYWN0b3IgaGVyZSwgc2luY2Ugd2UncmUgZWZm
ZWN0aXZlbHkgcGFubmluZyBjZW50ZXIuLi4KICNkZWZpbmUgTU9OTzJTVEVSRU9fU1VNIFwKQEAg
LTI2NiwxMiArMjc1LDIwIEBAIHZvaWQgQXVkaW9CdXM6OnN1bUZyb20oY29uc3QgQXVkaW9CdXMg
JnNvdXJjZUJ1cykKICAgICAgICAgKmRlc3RpbmF0aW9uUisrID0gc3VtUjsgXAogICAgIH0KIAor
I2RlZmluZSBNT05PMlNURVJFT19TVU1fViBcCisgICAgZm9yICg7IGsgPCBmcmFtZXNUb1Byb2Nl
c3M7ICsraykgXAorICAgICAgICBNT05PMlNURVJFT19TVU0gCisgICAgCiAjZGVmaW5lIE1PTk9f
U1VNIFwKICAgICB7IFwKICAgICAgICAgZmxvYXQgc3VtID0gRGVub3JtYWxEaXNhYmxlcjo6Zmx1
c2hEZW5vcm1hbEZsb2F0VG9aZXJvKCpkZXN0aW5hdGlvbkwgKyBnYWluICogKnNvdXJjZUwrKyk7
IFwKICAgICAgICAgKmRlc3RpbmF0aW9uTCsrID0gc3VtOyBcCiAgICAgfQogCisjZGVmaW5lIE1P
Tk9fU1VNX1YgXAorICAgIGZvciAoOyBrIDwgZnJhbWVzVG9Qcm9jZXNzOyArK2spIFwKKyAgICAg
ICAgTU9OT19TVU0KKwogI2RlZmluZSBTVEVSRU9fTk9fU1VNIFwKICAgICB7IFwKICAgICAgICAg
ZmxvYXQgc2FtcGxlTCA9ICpzb3VyY2VMKys7IFwKQEAgLTI4MCw2ICsyOTcsMTggQEAgdm9pZCBB
dWRpb0J1czo6c3VtRnJvbShjb25zdCBBdWRpb0J1cyAmc291cmNlQnVzKQogICAgICAgICAqZGVz
dGluYXRpb25SKysgPSBEZW5vcm1hbERpc2FibGVyOjpmbHVzaERlbm9ybWFsRmxvYXRUb1plcm8o
Z2FpbiAqIHNhbXBsZVIpOyBcCiAgICAgfQogCisjaWYgVVNFX1ZFQ1RPUl9NQVRIX0xJQgorI2Rl
ZmluZSBTVEVSRU9fTk9fU1VNX1YgXAorICAgIHsgXAorICAgICAgICB2c211bChzb3VyY2VMLCAx
LCAmZ2FpbiwgZGVzdGluYXRpb25MLCAxLCBmcmFtZXNUb1Byb2Nlc3MgLSBrKTsgXAorICAgICAg
ICB2c211bChzb3VyY2VSLCAxLCAmZ2FpbiwgZGVzdGluYXRpb25SLCAxLCBmcmFtZXNUb1Byb2Nl
c3MgLSBrKTsgXAorICAgIH0KKyNlbHNlCisjZGVmaW5lIFNURVJFT19OT19TVU1fViBcCisgICAg
Zm9yICg7IGsgPCBmcmFtZXNUb1Byb2Nlc3M7ICsraykgXAorICAgICAgICBTVEVSRU9fTk9fU1VN
CisjZW5kaWYKKwogLy8gTW9ubyAtPiBzdGVyZW8gKG1peCBlcXVhbGx5IGludG8gTCBhbmQgUikK
IC8vIEZJWE1FOiBSZWFsbHkgd2Ugc2hvdWxkIGFwcGx5IGFuIGVxdWFsLXBvd2VyIHNjYWxpbmcg
ZmFjdG9yIGhlcmUsIHNpbmNlIHdlJ3JlIGVmZmVjdGl2ZWx5IHBhbm5pbmcgY2VudGVyLi4uCiAj
ZGVmaW5lIE1PTk8yU1RFUkVPX05PX1NVTSBcCkBAIC0yODksMTggKzMxOCw0MCBAQCB2b2lkIEF1
ZGlvQnVzOjpzdW1Gcm9tKGNvbnN0IEF1ZGlvQnVzICZzb3VyY2VCdXMpCiAgICAgICAgICpkZXN0
aW5hdGlvblIrKyA9IERlbm9ybWFsRGlzYWJsZXI6OmZsdXNoRGVub3JtYWxGbG9hdFRvWmVybyhn
YWluICogc2FtcGxlKTsgXAogICAgIH0KIAorI2lmIFVTRV9WRUNUT1JfTUFUSF9MSUIKKyNkZWZp
bmUgTU9OTzJTVEVSRU9fTk9fU1VNX1YgXAorICAgIHsgXAorICAgICAgICB2c211bChzb3VyY2VM
LCAxLCAmZ2FpbiwgZGVzdGluYXRpb25MLCAxLCBmcmFtZXNUb1Byb2Nlc3MgLSBrKTsgXAorICAg
ICAgICB2c211bChzb3VyY2VMLCAxLCAmZ2FpbiwgZGVzdGluYXRpb25SLCAxLCBmcmFtZXNUb1By
b2Nlc3MgLSBrKTsgXAorICAgIH0KKyNlbHNlCisjZGVmaW5lIE1PTk8yU1RFUkVPX05PX1NVTV9W
IFwKKyAgICBmb3IgKDsgayA8IGZyYW1lc1RvUHJvY2VzczsgKytrKSBcCisgICAgICAgIE1PTk8y
U1RFUkVPX05PX1NVTQorI2VuZGlmCisKICNkZWZpbmUgTU9OT19OT19TVU0gXAogICAgIHsgXAog
ICAgICAgICBmbG9hdCBzYW1wbGVMID0gKnNvdXJjZUwrKzsgXAogICAgICAgICAqZGVzdGluYXRp
b25MKysgPSBEZW5vcm1hbERpc2FibGVyOjpmbHVzaERlbm9ybWFsRmxvYXRUb1plcm8oZ2FpbiAq
IHNhbXBsZUwpOyBcCiAgICAgfQogCisjaWYgVVNFX1ZFQ1RPUl9NQVRIX0xJQgorI2RlZmluZSBN
T05PX05PX1NVTV9WIFwKKyAgICB7IFwKKyAgICAgICAgdnNtdWwoc291cmNlTCwgMSwgJmdhaW4s
IGRlc3RpbmF0aW9uTCwgMSwgZnJhbWVzVG9Qcm9jZXNzIC0gayk7IFwKKyAgICB9IAorI2Vsc2UK
KyNkZWZpbmUgTU9OT19OT19TVU1fViBcCisgICAgZm9yICg7IGsgPCBmcmFtZXNUb1Byb2Nlc3M7
ICsraykgXAorICAgICAgICBNT05PX05PX1NVTQorI2VuZGlmCisKIHZvaWQgQXVkaW9CdXM6OnBy
b2Nlc3NXaXRoR2FpbkZyb21Nb25vU3RlcmVvKGNvbnN0IEF1ZGlvQnVzICZzb3VyY2VCdXMsIGRv
dWJsZSogbGFzdE1peEdhaW4sIGRvdWJsZSB0YXJnZXRHYWluLCBib29sIHN1bVRvQnVzKQogewog
ICAgIC8vIFdlIGRvbid0IHdhbnQgdG8gc3VkZGVubHkgY2hhbmdlIHRoZSBnYWluIGZyb20gbWl4
aW5nIG9uZSB0aW1lIHNsaWNlIHRvIHRoZSBuZXh0LAogICAgIC8vIHNvIHdlICJkZS16aXBwZXIi
IGJ5IHNsb3dseSBjaGFuZ2luZyB0aGUgZ2FpbiBlYWNoIHNhbXBsZS1mcmFtZSB1bnRpbCB3ZSd2
ZSBhY2hpZXZlZCB0aGUgdGFyZ2V0IGdhaW4uCiAKLSAgICAvLyBGSVhNRTogb3B0aW1pemUgdGhp
cyBtZXRob2QgKFNTRSwgZXRjLikKICAgICAvLyBGSVhNRTogdGFyZ2V0R2FpbiBhbmQgbGFzdE1p
eEdhaW4gc2hvdWxkIGJlIGNoYW5nZWQgdG8gZmxvYXRzIGluc3RlYWQgb2YgZG91Ymxlcy4KICAg
ICAKICAgICAvLyBUYWtlIG1hc3RlciBidXMgZ2FpbiBpbnRvIGFjY291bnQgYXMgd2VsbCBhcyB0
aGUgdGFyZ2V0R2Fpbi4KQEAgLTM1MSw4ICs0MDIsNiBAQCB2b2lkIEF1ZGlvQnVzOjpwcm9jZXNz
V2l0aEdhaW5Gcm9tTW9ub1N0ZXJlbyhjb25zdCBBdWRpb0J1cyAmc291cmNlQnVzLCBkb3VibGUq
CiAgICAgICAgIGlmICh0aGlzID09ICZzb3VyY2VCdXMgJiYgKmxhc3RNaXhHYWluID09IHRhcmdl
dEdhaW4gJiYgdGFyZ2V0R2FpbiA9PSAxLjApCiAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAg
ICAgLy8gRklYTUU6IGlmIChmcmFtZXNUb0RlemlwcGVyID09IDApIGFuZCBEZW5vcm1hbERpc2Fi
bGVyOjpmbHVzaERlbm9ybWFsRmxvYXRUb1plcm8oKSBpcyBhIE5PUCAoZ2NjIHZzLiBWaXN1YWwg
U3R1ZGlvKSAKLSAgICAgICAgLy8gdGhlbiB3ZSBjYW4gZnVydGhlciBvcHRpbWl6ZSB0aGUgUFJP
Q0VTU19XSVRIX0dBSU4gY29kZXBhdGhzIGJlbG93IHVzaW5nIHZzbXVsKCkuCiAgICAgICAgIGlm
IChzb3VyY2VSICYmIGRlc3RpbmF0aW9uUikgewogICAgICAgICAgICAgLy8gU3RlcmVvCiAgICAg
ICAgICAgICBQUk9DRVNTX1dJVEhfR0FJTihTVEVSRU9fTk9fU1VNKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>121220</attachid>
            <date>2012-01-04 22:53:06 -0800</date>
            <delta_ts>2012-01-05 15:35:31 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-75334-20120105145353.patch</filename>
            <type>text/plain</type>
            <size>4534</size>
            <attacher name="Wei James (wistoch)">james.wei</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAzOTk1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWZkNTk5MTE5OThkOTZm
NzdhMTZmNmQ0NTI1MjIwZTFlMjIyNTg3Ni4uZmFiYTk5ZTU5NmIwZjk4YjJlMzIxYjdlNGY0YjAx
OTQxNjY4ZTJiZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDEyLTAxLTA0ICBXZWkg
SmFtZXMgIDxqYW1lcy53ZWlAaW50ZWwuY29tPgorCisgICAgICAgIFVzZSBWZWN0b3JNYXRoIGxp
YiB3aGVuIHBvc3NpYmxlIHRvIG9wdGltaXplIHRoZSBwcm9jZXNzaW5nIGluIFdlYkF1ZGlvIEF1
ZGlvQnVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03
NTMzNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5v
IG5ldyB0ZXN0cy4gKE9PUFMhKQorCisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vQXVkaW9CdXMu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9CdXM6OnByb2Nlc3NXaXRoR2FpbkZyb21Nb25v
U3RlcmVvKToKKwogMjAxMi0wMS0wMyAgV2VpIEphbWVzICA8amFtZXMud2VpQGludGVsLmNvbT4K
IAogICAgICAgICBPcHRpbWl6ZSBBdWRpb0J1ZmZlclNvdXJjZU5vZGUgcHJvY2VzcyBieSBhdm9p
ZGluZyBpbnRlcnBvbGF0aW9uIHdoZW4gcGl0Y2hSYXRlPT0xCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb0J1cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9hdWRpby9BdWRpb0J1cy5jcHAKaW5kZXggZDE0MzA1ZTI5OWYzMDBmZjk5ZTM4NWQ3M2Mx
OGE5OWI1ZTQxZThkYi4uOTBiNjQyYzkyNTdjMjMwNGUwZmZhNDY1NjllNjcxMDIzMjkwNGZmZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9CdXMuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvQnVzLmNwcApAQCAtMjQ0LDgg
KzI0NCw3IEBAIHZvaWQgQXVkaW9CdXM6OnN1bUZyb20oY29uc3QgQXVkaW9CdXMgJnNvdXJjZUJ1
cykKICAgICAgICAgR0FJTl9ERVpJUFBFUiBcCiAgICAgfSBcCiAgICAgZ2FpbiA9IHRvdGFsRGVz
aXJlZEdhaW47IFwKLSAgICBmb3IgKDsgayA8IGZyYW1lc1RvUHJvY2VzczsgKytrKSAgXAotICAg
ICAgICBPUAorICAgIE9QIyNfViAKIAogI2RlZmluZSBTVEVSRU9fU1VNIFwKICAgICB7IFwKQEAg
LTI1NSw2ICsyNTQsMTAgQEAgdm9pZCBBdWRpb0J1czo6c3VtRnJvbShjb25zdCBBdWRpb0J1cyAm
c291cmNlQnVzKQogICAgICAgICAqZGVzdGluYXRpb25SKysgPSBzdW1SOyBcCiAgICAgfQogCisj
ZGVmaW5lIFNURVJFT19TVU1fViBcCisgICAgZm9yICg7IGsgPCBmcmFtZXNUb1Byb2Nlc3M7ICsr
aykgXAorICAgICAgICBTVEVSRU9fU1VNCisKIC8vIE1vbm8gLT4gc3RlcmVvIChtaXggZXF1YWxs
eSBpbnRvIEwgYW5kIFIpCiAvLyBGSVhNRTogUmVhbGx5IHdlIHNob3VsZCBhcHBseSBhbiBlcXVh
bC1wb3dlciBzY2FsaW5nIGZhY3RvciBoZXJlLCBzaW5jZSB3ZSdyZSBlZmZlY3RpdmVseSBwYW5u
aW5nIGNlbnRlci4uLgogI2RlZmluZSBNT05PMlNURVJFT19TVU0gXApAQCAtMjY2LDEyICsyNjks
MjAgQEAgdm9pZCBBdWRpb0J1czo6c3VtRnJvbShjb25zdCBBdWRpb0J1cyAmc291cmNlQnVzKQog
ICAgICAgICAqZGVzdGluYXRpb25SKysgPSBzdW1SOyBcCiAgICAgfQogCisjZGVmaW5lIE1PTk8y
U1RFUkVPX1NVTV9WIFwKKyAgICBmb3IgKDsgayA8IGZyYW1lc1RvUHJvY2VzczsgKytrKSBcCisg
ICAgICAgIE1PTk8yU1RFUkVPX1NVTSAKKyAgICAKICNkZWZpbmUgTU9OT19TVU0gXAogICAgIHsg
XAogICAgICAgICBmbG9hdCBzdW0gPSBEZW5vcm1hbERpc2FibGVyOjpmbHVzaERlbm9ybWFsRmxv
YXRUb1plcm8oKmRlc3RpbmF0aW9uTCArIGdhaW4gKiAqc291cmNlTCsrKTsgXAogICAgICAgICAq
ZGVzdGluYXRpb25MKysgPSBzdW07IFwKICAgICB9CiAKKyNkZWZpbmUgTU9OT19TVU1fViBcCisg
ICAgZm9yICg7IGsgPCBmcmFtZXNUb1Byb2Nlc3M7ICsraykgXAorICAgICAgICBNT05PX1NVTQor
CiAjZGVmaW5lIFNURVJFT19OT19TVU0gXAogICAgIHsgXAogICAgICAgICBmbG9hdCBzYW1wbGVM
ID0gKnNvdXJjZUwrKzsgXApAQCAtMjgwLDYgKzI5MSwxMiBAQCB2b2lkIEF1ZGlvQnVzOjpzdW1G
cm9tKGNvbnN0IEF1ZGlvQnVzICZzb3VyY2VCdXMpCiAgICAgICAgICpkZXN0aW5hdGlvblIrKyA9
IERlbm9ybWFsRGlzYWJsZXI6OmZsdXNoRGVub3JtYWxGbG9hdFRvWmVybyhnYWluICogc2FtcGxl
Uik7IFwKICAgICB9CiAKKyNkZWZpbmUgU1RFUkVPX05PX1NVTV9WIFwKKyAgICB7IFwKKyAgICAg
ICAgdnNtdWwoc291cmNlTCwgMSwgJmdhaW4sIGRlc3RpbmF0aW9uTCwgMSwgZnJhbWVzVG9Qcm9j
ZXNzIC0gayk7IFwKKyAgICAgICAgdnNtdWwoc291cmNlUiwgMSwgJmdhaW4sIGRlc3RpbmF0aW9u
UiwgMSwgZnJhbWVzVG9Qcm9jZXNzIC0gayk7IFwKKyAgICB9CisKIC8vIE1vbm8gLT4gc3RlcmVv
IChtaXggZXF1YWxseSBpbnRvIEwgYW5kIFIpCiAvLyBGSVhNRTogUmVhbGx5IHdlIHNob3VsZCBh
cHBseSBhbiBlcXVhbC1wb3dlciBzY2FsaW5nIGZhY3RvciBoZXJlLCBzaW5jZSB3ZSdyZSBlZmZl
Y3RpdmVseSBwYW5uaW5nIGNlbnRlci4uLgogI2RlZmluZSBNT05PMlNURVJFT19OT19TVU0gXApA
QCAtMjg5LDE4ICszMDYsMjggQEAgdm9pZCBBdWRpb0J1czo6c3VtRnJvbShjb25zdCBBdWRpb0J1
cyAmc291cmNlQnVzKQogICAgICAgICAqZGVzdGluYXRpb25SKysgPSBEZW5vcm1hbERpc2FibGVy
OjpmbHVzaERlbm9ybWFsRmxvYXRUb1plcm8oZ2FpbiAqIHNhbXBsZSk7IFwKICAgICB9CiAKKyNk
ZWZpbmUgTU9OTzJTVEVSRU9fTk9fU1VNX1YgXAorICAgIHsgXAorICAgICAgICB2c211bChzb3Vy
Y2VMLCAxLCAmZ2FpbiwgZGVzdGluYXRpb25MLCAxLCBmcmFtZXNUb1Byb2Nlc3MgLSBrKTsgXAor
ICAgICAgICB2c211bChzb3VyY2VMLCAxLCAmZ2FpbiwgZGVzdGluYXRpb25SLCAxLCBmcmFtZXNU
b1Byb2Nlc3MgLSBrKTsgXAorICAgIH0KKwogI2RlZmluZSBNT05PX05PX1NVTSBcCiAgICAgeyBc
CiAgICAgICAgIGZsb2F0IHNhbXBsZUwgPSAqc291cmNlTCsrOyBcCiAgICAgICAgICpkZXN0aW5h
dGlvbkwrKyA9IERlbm9ybWFsRGlzYWJsZXI6OmZsdXNoRGVub3JtYWxGbG9hdFRvWmVybyhnYWlu
ICogc2FtcGxlTCk7IFwKICAgICB9CiAKKyNkZWZpbmUgTU9OT19OT19TVU1fViBcCisgICAgeyBc
CisgICAgICAgIHZzbXVsKHNvdXJjZUwsIDEsICZnYWluLCBkZXN0aW5hdGlvbkwsIDEsIGZyYW1l
c1RvUHJvY2VzcyAtIGspOyBcCisgICAgfSAKKwogdm9pZCBBdWRpb0J1czo6cHJvY2Vzc1dpdGhH
YWluRnJvbU1vbm9TdGVyZW8oY29uc3QgQXVkaW9CdXMgJnNvdXJjZUJ1cywgZG91YmxlKiBsYXN0
TWl4R2FpbiwgZG91YmxlIHRhcmdldEdhaW4sIGJvb2wgc3VtVG9CdXMpCiB7CiAgICAgLy8gV2Ug
ZG9uJ3Qgd2FudCB0byBzdWRkZW5seSBjaGFuZ2UgdGhlIGdhaW4gZnJvbSBtaXhpbmcgb25lIHRp
bWUgc2xpY2UgdG8gdGhlIG5leHQsCiAgICAgLy8gc28gd2UgImRlLXppcHBlciIgYnkgc2xvd2x5
IGNoYW5naW5nIHRoZSBnYWluIGVhY2ggc2FtcGxlLWZyYW1lIHVudGlsIHdlJ3ZlIGFjaGlldmVk
IHRoZSB0YXJnZXQgZ2Fpbi4KIAotICAgIC8vIEZJWE1FOiBvcHRpbWl6ZSB0aGlzIG1ldGhvZCAo
U1NFLCBldGMuKQogICAgIC8vIEZJWE1FOiB0YXJnZXRHYWluIGFuZCBsYXN0TWl4R2FpbiBzaG91
bGQgYmUgY2hhbmdlZCB0byBmbG9hdHMgaW5zdGVhZCBvZiBkb3VibGVzLgogICAgIAogICAgIC8v
IFRha2UgbWFzdGVyIGJ1cyBnYWluIGludG8gYWNjb3VudCBhcyB3ZWxsIGFzIHRoZSB0YXJnZXRH
YWluLgpAQCAtMzUxLDggKzM3OCw2IEBAIHZvaWQgQXVkaW9CdXM6OnByb2Nlc3NXaXRoR2FpbkZy
b21Nb25vU3RlcmVvKGNvbnN0IEF1ZGlvQnVzICZzb3VyY2VCdXMsIGRvdWJsZSoKICAgICAgICAg
aWYgKHRoaXMgPT0gJnNvdXJjZUJ1cyAmJiAqbGFzdE1peEdhaW4gPT0gdGFyZ2V0R2FpbiAmJiB0
YXJnZXRHYWluID09IDEuMCkKICAgICAgICAgICAgIHJldHVybjsKIAotICAgICAgICAvLyBGSVhN
RTogaWYgKGZyYW1lc1RvRGV6aXBwZXIgPT0gMCkgYW5kIERlbm9ybWFsRGlzYWJsZXI6OmZsdXNo
RGVub3JtYWxGbG9hdFRvWmVybygpIGlzIGEgTk9QIChnY2MgdnMuIFZpc3VhbCBTdHVkaW8pIAot
ICAgICAgICAvLyB0aGVuIHdlIGNhbiBmdXJ0aGVyIG9wdGltaXplIHRoZSBQUk9DRVNTX1dJVEhf
R0FJTiBjb2RlcGF0aHMgYmVsb3cgdXNpbmcgdnNtdWwoKS4KICAgICAgICAgaWYgKHNvdXJjZVIg
JiYgZGVzdGluYXRpb25SKSB7CiAgICAgICAgICAgICAvLyBTdGVyZW8KICAgICAgICAgICAgIFBS
T0NFU1NfV0lUSF9HQUlOKFNURVJFT19OT19TVU0pCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>121350</attachid>
            <date>2012-01-05 15:35:38 -0800</date>
            <delta_ts>2012-01-06 11:51:34 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-75334-20120106073625.patch</filename>
            <type>text/plain</type>
            <size>4573</size>
            <attacher name="Wei James (wistoch)">james.wei</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAzOTk1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWZkNTk5MTE5OThkOTZm
NzdhMTZmNmQ0NTI1MjIwZTFlMjIyNTg3Ni4uZDA1M2Y5ZGFkNjY1NzBiZjE1ZDU0ODczNGZjNWYw
ODhjYzkzMDUzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDEyLTAxLTA0ICBXZWkg
SmFtZXMgIDxqYW1lcy53ZWlAaW50ZWwuY29tPgorCisgICAgICAgIFVzZSBWZWN0b3JNYXRoIGxp
YiB3aGVuIHBvc3NpYmxlIHRvIG9wdGltaXplIHRoZSBwcm9jZXNzaW5nIGluIFdlYkF1ZGlvIEF1
ZGlvQnVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03
NTMzNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
cGxhdGZvcm0vYXVkaW8vQXVkaW9CdXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9CdXM6
OnByb2Nlc3NXaXRoR2FpbkZyb21Nb25vU3RlcmVvKToKKwogMjAxMi0wMS0wMyAgV2VpIEphbWVz
ICA8amFtZXMud2VpQGludGVsLmNvbT4KIAogICAgICAgICBPcHRpbWl6ZSBBdWRpb0J1ZmZlclNv
dXJjZU5vZGUgcHJvY2VzcyBieSBhdm9pZGluZyBpbnRlcnBvbGF0aW9uIHdoZW4gcGl0Y2hSYXRl
PT0xCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb0J1cy5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb0J1cy5jcHAKaW5kZXggZDE0
MzA1ZTI5OWYzMDBmZjk5ZTM4NWQ3M2MxOGE5OWI1ZTQxZThkYi4uODAwMTk3ZTJkZjhkM2E2NGZh
MzMwMTdlMjA1YTA2ODQ0YWQ2NjAxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vYXVkaW8vQXVkaW9CdXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlv
L0F1ZGlvQnVzLmNwcApAQCAtMjQ0LDggKzI0NCw3IEBAIHZvaWQgQXVkaW9CdXM6OnN1bUZyb20o
Y29uc3QgQXVkaW9CdXMgJnNvdXJjZUJ1cykKICAgICAgICAgR0FJTl9ERVpJUFBFUiBcCiAgICAg
fSBcCiAgICAgZ2FpbiA9IHRvdGFsRGVzaXJlZEdhaW47IFwKLSAgICBmb3IgKDsgayA8IGZyYW1l
c1RvUHJvY2VzczsgKytrKSAgXAotICAgICAgICBPUAorICAgIE9QIyNfViAKIAogI2RlZmluZSBT
VEVSRU9fU1VNIFwKICAgICB7IFwKQEAgLTI1NSw2ICsyNTQsMTEgQEAgdm9pZCBBdWRpb0J1czo6
c3VtRnJvbShjb25zdCBBdWRpb0J1cyAmc291cmNlQnVzKQogICAgICAgICAqZGVzdGluYXRpb25S
KysgPSBzdW1SOyBcCiAgICAgfQogCisvLyBGSVhNRTogdGhpcyBjYW4gYmUgb3B0aW1pemVkIHdp
dGggYWRkaXRpb25hbCBWZWN0b3JNYXRoIGZ1bmN0aW9ucy4gCisjZGVmaW5lIFNURVJFT19TVU1f
ViBcCisgICAgZm9yICg7IGsgPCBmcmFtZXNUb1Byb2Nlc3M7ICsraykgXAorICAgICAgICBTVEVS
RU9fU1VNCisKIC8vIE1vbm8gLT4gc3RlcmVvIChtaXggZXF1YWxseSBpbnRvIEwgYW5kIFIpCiAv
LyBGSVhNRTogUmVhbGx5IHdlIHNob3VsZCBhcHBseSBhbiBlcXVhbC1wb3dlciBzY2FsaW5nIGZh
Y3RvciBoZXJlLCBzaW5jZSB3ZSdyZSBlZmZlY3RpdmVseSBwYW5uaW5nIGNlbnRlci4uLgogI2Rl
ZmluZSBNT05PMlNURVJFT19TVU0gXApAQCAtMjY2LDEyICsyNzAsMjAgQEAgdm9pZCBBdWRpb0J1
czo6c3VtRnJvbShjb25zdCBBdWRpb0J1cyAmc291cmNlQnVzKQogICAgICAgICAqZGVzdGluYXRp
b25SKysgPSBzdW1SOyBcCiAgICAgfQogCisjZGVmaW5lIE1PTk8yU1RFUkVPX1NVTV9WIFwKKyAg
ICBmb3IgKDsgayA8IGZyYW1lc1RvUHJvY2VzczsgKytrKSBcCisgICAgICAgIE1PTk8yU1RFUkVP
X1NVTSAKKyAgICAKICNkZWZpbmUgTU9OT19TVU0gXAogICAgIHsgXAogICAgICAgICBmbG9hdCBz
dW0gPSBEZW5vcm1hbERpc2FibGVyOjpmbHVzaERlbm9ybWFsRmxvYXRUb1plcm8oKmRlc3RpbmF0
aW9uTCArIGdhaW4gKiAqc291cmNlTCsrKTsgXAogICAgICAgICAqZGVzdGluYXRpb25MKysgPSBz
dW07IFwKICAgICB9CiAKKyNkZWZpbmUgTU9OT19TVU1fViBcCisgICAgZm9yICg7IGsgPCBmcmFt
ZXNUb1Byb2Nlc3M7ICsraykgXAorICAgICAgICBNT05PX1NVTQorCiAjZGVmaW5lIFNURVJFT19O
T19TVU0gXAogICAgIHsgXAogICAgICAgICBmbG9hdCBzYW1wbGVMID0gKnNvdXJjZUwrKzsgXApA
QCAtMjgwLDYgKzI5MiwxMiBAQCB2b2lkIEF1ZGlvQnVzOjpzdW1Gcm9tKGNvbnN0IEF1ZGlvQnVz
ICZzb3VyY2VCdXMpCiAgICAgICAgICpkZXN0aW5hdGlvblIrKyA9IERlbm9ybWFsRGlzYWJsZXI6
OmZsdXNoRGVub3JtYWxGbG9hdFRvWmVybyhnYWluICogc2FtcGxlUik7IFwKICAgICB9CiAKKyNk
ZWZpbmUgU1RFUkVPX05PX1NVTV9WIFwKKyAgICB7IFwKKyAgICAgICAgdnNtdWwoc291cmNlTCwg
MSwgJmdhaW4sIGRlc3RpbmF0aW9uTCwgMSwgZnJhbWVzVG9Qcm9jZXNzIC0gayk7IFwKKyAgICAg
ICAgdnNtdWwoc291cmNlUiwgMSwgJmdhaW4sIGRlc3RpbmF0aW9uUiwgMSwgZnJhbWVzVG9Qcm9j
ZXNzIC0gayk7IFwKKyAgICB9CisKIC8vIE1vbm8gLT4gc3RlcmVvIChtaXggZXF1YWxseSBpbnRv
IEwgYW5kIFIpCiAvLyBGSVhNRTogUmVhbGx5IHdlIHNob3VsZCBhcHBseSBhbiBlcXVhbC1wb3dl
ciBzY2FsaW5nIGZhY3RvciBoZXJlLCBzaW5jZSB3ZSdyZSBlZmZlY3RpdmVseSBwYW5uaW5nIGNl
bnRlci4uLgogI2RlZmluZSBNT05PMlNURVJFT19OT19TVU0gXApAQCAtMjg5LDE4ICszMDcsMjgg
QEAgdm9pZCBBdWRpb0J1czo6c3VtRnJvbShjb25zdCBBdWRpb0J1cyAmc291cmNlQnVzKQogICAg
ICAgICAqZGVzdGluYXRpb25SKysgPSBEZW5vcm1hbERpc2FibGVyOjpmbHVzaERlbm9ybWFsRmxv
YXRUb1plcm8oZ2FpbiAqIHNhbXBsZSk7IFwKICAgICB9CiAKKyNkZWZpbmUgTU9OTzJTVEVSRU9f
Tk9fU1VNX1YgXAorICAgIHsgXAorICAgICAgICB2c211bChzb3VyY2VMLCAxLCAmZ2FpbiwgZGVz
dGluYXRpb25MLCAxLCBmcmFtZXNUb1Byb2Nlc3MgLSBrKTsgXAorICAgICAgICB2c211bChzb3Vy
Y2VMLCAxLCAmZ2FpbiwgZGVzdGluYXRpb25SLCAxLCBmcmFtZXNUb1Byb2Nlc3MgLSBrKTsgXAor
ICAgIH0KKwogI2RlZmluZSBNT05PX05PX1NVTSBcCiAgICAgeyBcCiAgICAgICAgIGZsb2F0IHNh
bXBsZUwgPSAqc291cmNlTCsrOyBcCiAgICAgICAgICpkZXN0aW5hdGlvbkwrKyA9IERlbm9ybWFs
RGlzYWJsZXI6OmZsdXNoRGVub3JtYWxGbG9hdFRvWmVybyhnYWluICogc2FtcGxlTCk7IFwKICAg
ICB9CiAKKyNkZWZpbmUgTU9OT19OT19TVU1fViBcCisgICAgeyBcCisgICAgICAgIHZzbXVsKHNv
dXJjZUwsIDEsICZnYWluLCBkZXN0aW5hdGlvbkwsIDEsIGZyYW1lc1RvUHJvY2VzcyAtIGspOyBc
CisgICAgfSAKKwogdm9pZCBBdWRpb0J1czo6cHJvY2Vzc1dpdGhHYWluRnJvbU1vbm9TdGVyZW8o
Y29uc3QgQXVkaW9CdXMgJnNvdXJjZUJ1cywgZG91YmxlKiBsYXN0TWl4R2FpbiwgZG91YmxlIHRh
cmdldEdhaW4sIGJvb2wgc3VtVG9CdXMpCiB7CiAgICAgLy8gV2UgZG9uJ3Qgd2FudCB0byBzdWRk
ZW5seSBjaGFuZ2UgdGhlIGdhaW4gZnJvbSBtaXhpbmcgb25lIHRpbWUgc2xpY2UgdG8gdGhlIG5l
eHQsCiAgICAgLy8gc28gd2UgImRlLXppcHBlciIgYnkgc2xvd2x5IGNoYW5naW5nIHRoZSBnYWlu
IGVhY2ggc2FtcGxlLWZyYW1lIHVudGlsIHdlJ3ZlIGFjaGlldmVkIHRoZSB0YXJnZXQgZ2Fpbi4K
IAotICAgIC8vIEZJWE1FOiBvcHRpbWl6ZSB0aGlzIG1ldGhvZCAoU1NFLCBldGMuKQogICAgIC8v
IEZJWE1FOiB0YXJnZXRHYWluIGFuZCBsYXN0TWl4R2FpbiBzaG91bGQgYmUgY2hhbmdlZCB0byBm
bG9hdHMgaW5zdGVhZCBvZiBkb3VibGVzLgogICAgIAogICAgIC8vIFRha2UgbWFzdGVyIGJ1cyBn
YWluIGludG8gYWNjb3VudCBhcyB3ZWxsIGFzIHRoZSB0YXJnZXRHYWluLgpAQCAtMzUxLDggKzM3
OSw2IEBAIHZvaWQgQXVkaW9CdXM6OnByb2Nlc3NXaXRoR2FpbkZyb21Nb25vU3RlcmVvKGNvbnN0
IEF1ZGlvQnVzICZzb3VyY2VCdXMsIGRvdWJsZSoKICAgICAgICAgaWYgKHRoaXMgPT0gJnNvdXJj
ZUJ1cyAmJiAqbGFzdE1peEdhaW4gPT0gdGFyZ2V0R2FpbiAmJiB0YXJnZXRHYWluID09IDEuMCkK
ICAgICAgICAgICAgIHJldHVybjsKIAotICAgICAgICAvLyBGSVhNRTogaWYgKGZyYW1lc1RvRGV6
aXBwZXIgPT0gMCkgYW5kIERlbm9ybWFsRGlzYWJsZXI6OmZsdXNoRGVub3JtYWxGbG9hdFRvWmVy
bygpIGlzIGEgTk9QIChnY2MgdnMuIFZpc3VhbCBTdHVkaW8pIAotICAgICAgICAvLyB0aGVuIHdl
IGNhbiBmdXJ0aGVyIG9wdGltaXplIHRoZSBQUk9DRVNTX1dJVEhfR0FJTiBjb2RlcGF0aHMgYmVs
b3cgdXNpbmcgdnNtdWwoKS4KICAgICAgICAgaWYgKHNvdXJjZVIgJiYgZGVzdGluYXRpb25SKSB7
CiAgICAgICAgICAgICAvLyBTdGVyZW8KICAgICAgICAgICAgIFBST0NFU1NfV0lUSF9HQUlOKFNU
RVJFT19OT19TVU0pCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>