<?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>45206</bug_id>
          
          <creation_ts>2010-09-03 15:18:53 -0700</creation_ts>
          <short_desc>Add AudioProcessor.h</short_desc>
          <delta_ts>2010-09-09 12:52:59 -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>Other</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Chris Rogers">crogers</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>cmarrin</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dglazkov</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>japhet</cc>
    
    <cc>jer.noble</cc>
    
    <cc>kbr</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>274215</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Rogers">crogers</who>
    <bug_when>2010-09-03 15:18:53 -0700</bug_when>
    <thetext>Add AudioProcessor.h</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>274216</commentid>
    <comment_count>1</comment_count>
      <attachid>66556</attachid>
    <who name="Chris Rogers">crogers</who>
    <bug_when>2010-09-03 15:20:32 -0700</bug_when>
    <thetext>Created attachment 66556
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>274340</commentid>
    <comment_count>2</comment_count>
      <attachid>66556</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2010-09-03 20:03:14 -0700</bug_when>
    <thetext>Comment on attachment 66556
Patch

&gt;          Reviewed by Darin Adler.
&gt; Index: WebCore/platform/audio/AudioProcessor.h
&gt; ===================================================================
&gt; --- WebCore/platform/audio/AudioProcessor.h	(revision 0)
&gt; +++ WebCore/platform/audio/AudioProcessor.h	(revision 0)
&gt; @@ -0,0 +1,73 @@
&gt; +/*
&gt; + * Copyright (C) 2010 Google Inc. All rights reserved.
&gt; + *
&gt; + * Redistribution and use in source and binary forms, with or without
&gt; + * modification, are permitted provided that the following conditions
&gt; + * are met:
&gt; + *
&gt; + * 1.  Redistributions of source code must retain the above copyright
&gt; + *     notice, this list of conditions and the following disclaimer.
&gt; + * 2.  Redistributions in binary form must reproduce the above copyright
&gt; + *     notice, this list of conditions and the following disclaimer in the
&gt; + *     documentation and/or other materials provided with the distribution.
&gt; + * 3.  Neither the name of Apple Computer, Inc. (&quot;Apple&quot;) nor the names of
&gt; + *     its contributors may be used to endorse or promote products derived
&gt; + *     from this software without specific prior written permission.
&gt; + *
&gt; + * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS &quot;AS IS&quot; AND ANY
&gt; + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
&gt; + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
&gt; + * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
&gt; + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
&gt; + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
&gt; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
&gt; + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
&gt; + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
&gt; + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
&gt; + */
&gt; +

wrong license
http://trac.webkit.org/browser/trunk/WebKit/LICENSE


&gt; +#ifndef AudioProcessor_h
&gt; +#define AudioProcessor_h
&gt; +
&gt; +namespace WebCore {
&gt; +
&gt; +class AudioBus;
&gt; +
&gt; +// AudioProcessor is an abstract base class which can be used as one part of a complex DSP algorithm.
&gt; +// Or, it can be used as the processor for a basic (one input - one output) AudioNode.
&gt; +// It&apos;s assumed that the number of input channels equals the number of output channels.
&gt; +

if it&apos;s assumed, then you should say &quot;output must equal input&quot; so there&apos;s no confusion

&gt; +class AudioProcessor {
&gt; +public:
&gt; +    AudioProcessor(double sampleRate)
&gt; +        : m_initialized(false)
&gt; +        , m_sampleRate(sampleRate)
&gt; +    {
&gt; +    }
&gt; +
&gt; +    virtual ~AudioProcessor() { }
&gt; +
&gt; +    // Full initialization can be done here instead of in the constructor.
&gt; +    virtual void initialize() = 0;
&gt; +    virtual void uninitialize() = 0;
&gt; +

Why do you want initialize and uninitialize methods instead of using constructor/destructor?

&gt; +    virtual void setNumberOfChannels(unsigned numberOfChannels) = 0;
&gt; +

You don&apos;t need to name the argument here, it is clear from the function name.

&gt; +    bool isInitialized() { return m_initialized; }
&gt; +

can this be const?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>275239</commentid>
    <comment_count>3</comment_count>
      <attachid>66756</attachid>
    <who name="Chris Rogers">crogers</who>
    <bug_when>2010-09-07 13:17:43 -0700</bug_when>
    <thetext>Created attachment 66756
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>275245</commentid>
    <comment_count>4</comment_count>
    <who name="Chris Rogers">crogers</who>
    <bug_when>2010-09-07 13:20:37 -0700</bug_when>
    <thetext>Hi Chris, thanks for having a look.  The license I changed slightly to be the one we use for Google contributed code (please see similar copyright notices in WebCore/workers, WebCore/websockets, and other places).

I tried to address all of your other comments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>275250</commentid>
    <comment_count>5</comment_count>
    <who name="Chris Rogers">crogers</who>
    <bug_when>2010-09-07 13:26:05 -0700</bug_when>
    <thetext>The reason I have explicit initialize() and uninitialize() methods is to follow the pattern used in Apple&apos;s AudioUnit plugin architecture where there is an explicit AudioUnitInitialize() and AudioUnitUninitialize().  Because audio processing objects can allocate significant resources, it is useful to be able to be able to have access to an object without it being in a fully initialized state.  There are useful things which can be done with these objects without them being fully initialized.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>276345</commentid>
    <comment_count>6</comment_count>
      <attachid>66756</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2010-09-09 00:35:53 -0700</bug_when>
    <thetext>Comment on attachment 66756
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>276687</commentid>
    <comment_count>7</comment_count>
      <attachid>66756</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-09-09 12:52:54 -0700</bug_when>
    <thetext>Comment on attachment 66756
Patch

Clearing flags on attachment: 66756

Committed r67106: &lt;http://trac.webkit.org/changeset/67106&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>276688</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-09-09 12:52:59 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>66556</attachid>
            <date>2010-09-03 15:20:32 -0700</date>
            <delta_ts>2010-09-07 13:17:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-45206-20100903152031.patch</filename>
            <type>text/plain</type>
            <size>3906</size>
            <attacher name="Chris Rogers">crogers</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2Njc3MykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTggQEAKKzIwMTAtMDktMDMgIENocmlzIFJvZ2VycyAgPGNyb2dlcnNAZ29vZ2xl
LmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBB
ZGQgQXVkaW9Qcm9jZXNzb3IuaAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NDUyMDYKKworICAgICAgICBObyBuZXcgdGVzdHMgc2luY2UgYXVkaW8gQVBJ
IGlzIG5vdCB5ZXQgaW1wbGVtZW50ZWQuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9BdWRp
b1Byb2Nlc3Nvci5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvUHJvY2Vzc29yOjpB
dWRpb1Byb2Nlc3Nvcik6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1Byb2Nlc3Nvcjo6fkF1ZGlv
UHJvY2Vzc29yKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvUHJvY2Vzc29yOjppc0luaXRpYWxp
emVkKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvUHJvY2Vzc29yOjpzYW1wbGVSYXRlKToKKwog
MjAxMC0wOS0wMyAgSmlhbiBMaSAgPGppYW5saUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2
aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlv
UHJvY2Vzc29yLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb1By
b2Nlc3Nvci5oCShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb1By
b2Nlc3Nvci5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDczIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKiAzLiAgTmVpdGhlciB0aGUgbmFtZSBvZiBBcHBsZSBDb21wdXRlciwgSW5jLiAoIkFw
cGxlIikgbm9yIHRoZSBuYW1lcyBvZgorICogICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVz
ZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKKyAqICAgICBmcm9tIHRo
aXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJV
VE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBB
UkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
CisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBBdWRpb1By
b2Nlc3Nvcl9oCisjZGVmaW5lIEF1ZGlvUHJvY2Vzc29yX2gKKworbmFtZXNwYWNlIFdlYkNvcmUg
eworCitjbGFzcyBBdWRpb0J1czsKKworLy8gQXVkaW9Qcm9jZXNzb3IgaXMgYW4gYWJzdHJhY3Qg
YmFzZSBjbGFzcyB3aGljaCBjYW4gYmUgdXNlZCBhcyBvbmUgcGFydCBvZiBhIGNvbXBsZXggRFNQ
IGFsZ29yaXRobS4KKy8vIE9yLCBpdCBjYW4gYmUgdXNlZCBhcyB0aGUgcHJvY2Vzc29yIGZvciBh
IGJhc2ljIChvbmUgaW5wdXQgLSBvbmUgb3V0cHV0KSBBdWRpb05vZGUuCisvLyBJdCdzIGFzc3Vt
ZWQgdGhhdCB0aGUgbnVtYmVyIG9mIGlucHV0IGNoYW5uZWxzIGVxdWFscyB0aGUgbnVtYmVyIG9m
IG91dHB1dCBjaGFubmVscy4KKworY2xhc3MgQXVkaW9Qcm9jZXNzb3IgeworcHVibGljOgorICAg
IEF1ZGlvUHJvY2Vzc29yKGRvdWJsZSBzYW1wbGVSYXRlKQorICAgICAgICA6IG1faW5pdGlhbGl6
ZWQoZmFsc2UpCisgICAgICAgICwgbV9zYW1wbGVSYXRlKHNhbXBsZVJhdGUpCisgICAgeworICAg
IH0KKworICAgIHZpcnR1YWwgfkF1ZGlvUHJvY2Vzc29yKCkgeyB9CisKKyAgICAvLyBGdWxsIGlu
aXRpYWxpemF0aW9uIGNhbiBiZSBkb25lIGhlcmUgaW5zdGVhZCBvZiBpbiB0aGUgY29uc3RydWN0
b3IuCisgICAgdmlydHVhbCB2b2lkIGluaXRpYWxpemUoKSA9IDA7CisgICAgdmlydHVhbCB2b2lk
IHVuaW5pdGlhbGl6ZSgpID0gMDsKKworICAgIC8vIFByb2Nlc3NlcyB0aGUgc291cmNlIHRvIGRl
c3RpbmF0aW9uIGJ1cy4gIFRoZSBudW1iZXIgb2YgY2hhbm5lbHMgbXVzdCBtYXRjaCBpbiBzb3Vy
Y2UgYW5kIGRlc3RpbmF0aW9uLgorICAgIHZpcnR1YWwgdm9pZCBwcm9jZXNzKEF1ZGlvQnVzKiBz
b3VyY2UsIEF1ZGlvQnVzKiBkZXN0aW5hdGlvbiwgc2l6ZV90IGZyYW1lc1RvUHJvY2VzcykgPSAw
OworCisgICAgLy8gUmVzZXRzIGZpbHRlciBzdGF0ZQorICAgIHZpcnR1YWwgdm9pZCByZXNldCgp
ID0gMDsKKworICAgIHZpcnR1YWwgdm9pZCBzZXROdW1iZXJPZkNoYW5uZWxzKHVuc2lnbmVkIG51
bWJlck9mQ2hhbm5lbHMpID0gMDsKKworICAgIGJvb2wgaXNJbml0aWFsaXplZCgpIHsgcmV0dXJu
IG1faW5pdGlhbGl6ZWQ7IH0KKworICAgIGRvdWJsZSBzYW1wbGVSYXRlKCkgY29uc3QgeyByZXR1
cm4gbV9zYW1wbGVSYXRlOyB9CisKK3Byb3RlY3RlZDoKKyAgICBib29sIG1faW5pdGlhbGl6ZWQ7
CisgICAgZG91YmxlIG1fc2FtcGxlUmF0ZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
KworI2VuZGlmIC8vIEF1ZGlvUHJvY2Vzc29yX2gK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>66756</attachid>
            <date>2010-09-07 13:17:43 -0700</date>
            <delta_ts>2010-09-09 12:52:54 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-45206-20100907131742.patch</filename>
            <type>text/plain</type>
            <size>3949</size>
            <attacher name="Chris Rogers">crogers</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2NjkwMykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTggQEAKKzIwMTAtMDktMDcgIENocmlzIFJvZ2VycyAgPGNyb2dlcnNAZ29vZ2xl
LmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBB
ZGQgQXVkaW9Qcm9jZXNzb3IuaAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NDUyMDYKKworICAgICAgICBObyBuZXcgdGVzdHMgc2luY2UgYXVkaW8gQVBJ
IGlzIG5vdCB5ZXQgaW1wbGVtZW50ZWQuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9BdWRp
b1Byb2Nlc3Nvci5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvUHJvY2Vzc29yOjpB
dWRpb1Byb2Nlc3Nvcik6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1Byb2Nlc3Nvcjo6fkF1ZGlv
UHJvY2Vzc29yKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvUHJvY2Vzc29yOjppc0luaXRpYWxp
emVkKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvUHJvY2Vzc29yOjpzYW1wbGVSYXRlKToKKwog
MjAxMC0wOS0wNyAgRGF2aWQgSHlhdHQgIDxoeWF0dEBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2
aWV3ZWQgYnkgQmV0aCBEYWtpbi4KSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9Q
cm9jZXNzb3IuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvUHJv
Y2Vzc29yLmgJKHJldmlzaW9uIDApCisrKyBXZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvUHJv
Y2Vzc29yLmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNzUgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgor
ICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9m
IGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBw
cm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBw
cmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QK
KyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIEF1ZGlvUHJvY2Vz
c29yX2gKKyNkZWZpbmUgQXVkaW9Qcm9jZXNzb3JfaAorCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
K2NsYXNzIEF1ZGlvQnVzOworCisvLyBBdWRpb1Byb2Nlc3NvciBpcyBhbiBhYnN0cmFjdCBiYXNl
IGNsYXNzIHJlcHJlc2VudGluZyBhbiBhdWRpbyBzaWduYWwgcHJvY2Vzc2luZyBvYmplY3Qgd2l0
aCBhIHNpbmdsZSBpbnB1dCBhbmQgYSBzaW5nbGUgb3V0cHV0LAorLy8gd2hlcmUgdGhlIG51bWJl
ciBvZiBpbnB1dCBjaGFubmVscyBlcXVhbHMgdGhlIG51bWJlciBvZiBvdXRwdXQgY2hhbm5lbHMu
ICBJdCBjYW4gYmUgdXNlZCBhcyBvbmUgcGFydCBvZiBhIGNvbXBsZXggRFNQIGFsZ29yaXRobSwK
Ky8vIG9yIGFzIHRoZSBwcm9jZXNzb3IgZm9yIGEgYmFzaWMgKG9uZSBpbnB1dCAtIG9uZSBvdXRw
dXQpIEF1ZGlvTm9kZS4KKworY2xhc3MgQXVkaW9Qcm9jZXNzb3IgeworcHVibGljOgorICAgIEF1
ZGlvUHJvY2Vzc29yKGRvdWJsZSBzYW1wbGVSYXRlKQorICAgICAgICA6IG1faW5pdGlhbGl6ZWQo
ZmFsc2UpCisgICAgICAgICwgbV9zYW1wbGVSYXRlKHNhbXBsZVJhdGUpCisgICAgeworICAgIH0K
KworICAgIHZpcnR1YWwgfkF1ZGlvUHJvY2Vzc29yKCkgeyB9CisKKyAgICAvLyBGdWxsIGluaXRp
YWxpemF0aW9uIGNhbiBiZSBkb25lIGhlcmUgaW5zdGVhZCBvZiBpbiB0aGUgY29uc3RydWN0b3Iu
CisgICAgdmlydHVhbCB2b2lkIGluaXRpYWxpemUoKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHVu
aW5pdGlhbGl6ZSgpID0gMDsKKworICAgIC8vIFByb2Nlc3NlcyB0aGUgc291cmNlIHRvIGRlc3Rp
bmF0aW9uIGJ1cy4gIFRoZSBudW1iZXIgb2YgY2hhbm5lbHMgbXVzdCBtYXRjaCBpbiBzb3VyY2Ug
YW5kIGRlc3RpbmF0aW9uLgorICAgIHZpcnR1YWwgdm9pZCBwcm9jZXNzKEF1ZGlvQnVzKiBzb3Vy
Y2UsIEF1ZGlvQnVzKiBkZXN0aW5hdGlvbiwgc2l6ZV90IGZyYW1lc1RvUHJvY2VzcykgPSAwOwor
CisgICAgLy8gUmVzZXRzIGZpbHRlciBzdGF0ZQorICAgIHZpcnR1YWwgdm9pZCByZXNldCgpID0g
MDsKKworICAgIHZpcnR1YWwgdm9pZCBzZXROdW1iZXJPZkNoYW5uZWxzKHVuc2lnbmVkKSA9IDA7
CisKKyAgICBib29sIGlzSW5pdGlhbGl6ZWQoKSBjb25zdCB7IHJldHVybiBtX2luaXRpYWxpemVk
OyB9CisKKyAgICBkb3VibGUgc2FtcGxlUmF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc2FtcGxlUmF0
ZTsgfQorCitwcm90ZWN0ZWQ6CisgICAgYm9vbCBtX2luaXRpYWxpemVkOworICAgIGRvdWJsZSBt
X3NhbXBsZVJhdGU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBB
dWRpb1Byb2Nlc3Nvcl9oCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>