<?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>45077</bug_id>
          
          <creation_ts>2010-09-01 17:48:57 -0700</creation_ts>
          <short_desc>Add EqualPowerPanner files</short_desc>
          <delta_ts>2010-10-05 00:45:28 -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>273136</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Rogers">crogers</who>
    <bug_when>2010-09-01 17:48:57 -0700</bug_when>
    <thetext>Add EqualPowerPanner files</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>273137</commentid>
    <comment_count>1</comment_count>
      <attachid>66307</attachid>
    <who name="Chris Rogers">crogers</who>
    <bug_when>2010-09-01 17:50:14 -0700</bug_when>
    <thetext>Created attachment 66307
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>275455</commentid>
    <comment_count>2</comment_count>
      <attachid>66307</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2010-09-07 17:44:03 -0700</bug_when>
    <thetext>Comment on attachment 66307
Patch

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

&gt; WebCore/platform/audio/EqualPowerPanner.cpp:85
&gt; +    const double kDezipperK = 0.0005;
This or similar constants are replicated in a few places in the code, for example in the AudioBus (where it&apos;s ten times as large). Can this be refactored? Also, what about a FIXME indicating that it&apos;s sample rate dependent?

&gt; WebCore/platform/audio/EqualPowerPanner.cpp:98
&gt; +    m_gainR = gainR;
Why does this class not need to expose these gains externally, like the AudioBus does via the lastMixGain outgoing argument in processWithGainFromMonoStereo and processWithGainFrom?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>288482</commentid>
    <comment_count>3</comment_count>
      <attachid>69518</attachid>
    <who name="Chris Rogers">crogers</who>
    <bug_when>2010-10-01 14:22:04 -0700</bug_when>
    <thetext>Created attachment 69518
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>288487</commentid>
    <comment_count>4</comment_count>
    <who name="Chris Rogers">crogers</who>
    <bug_when>2010-10-01 14:27:08 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 66307 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=66307&amp;action=prettypatch
&gt; 
&gt; &gt; WebCore/platform/audio/EqualPowerPanner.cpp:85
&gt; &gt; +    const double kDezipperK = 0.0005;
&gt; This or similar constants are replicated in a few places in the code, for example in the AudioBus (where it&apos;s ten times as large). Can this be refactored? Also, what about a FIXME indicating that it&apos;s sample rate dependent?

I&apos;ve uploaded a patch for AudioUtilities which contains a discreteTimeConstantForSampleRate() function and am now using this.
The actual time-constant value (non sample-rate dependent) is chosen empirically for panning and may be different than volume smoothing.

&gt; 
&gt; &gt; WebCore/platform/audio/EqualPowerPanner.cpp:98
&gt; &gt; +    m_gainR = gainR;
&gt; Why does this class not need to expose these gains externally, like the AudioBus does via the lastMixGain outgoing argument in processWithGainFromMonoStereo and processWithGainFrom?

The smoothing state is best kept inside this class.  The reason they have to be kept externally in the AudioBus case is because many different sources may be summing into the same AudioBus, thus each source must keep track of its own state.  In the case of EqualPowerPanner, there is only a single source, so it makes logical sense to keep the state inside this class.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>289194</commentid>
    <comment_count>5</comment_count>
      <attachid>69518</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2010-10-04 15:13:50 -0700</bug_when>
    <thetext>Comment on attachment 69518
Patch

Looks good to me, but please update the license text before committing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>289217</commentid>
    <comment_count>6</comment_count>
      <attachid>69700</attachid>
    <who name="Chris Rogers">crogers</who>
    <bug_when>2010-10-04 15:32:03 -0700</bug_when>
    <thetext>Created attachment 69700
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>289220</commentid>
    <comment_count>7</comment_count>
    <who name="Chris Rogers">crogers</who>
    <bug_when>2010-10-04 15:32:38 -0700</bug_when>
    <thetext>Was previously R+, just fixed the license.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>289236</commentid>
    <comment_count>8</comment_count>
      <attachid>69700</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2010-10-04 15:47:01 -0700</bug_when>
    <thetext>Comment on attachment 69700
Patch

Looks good to me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>289479</commentid>
    <comment_count>9</comment_count>
      <attachid>69700</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-10-05 00:45:22 -0700</bug_when>
    <thetext>Comment on attachment 69700
Patch

Clearing flags on attachment: 69700

Committed r69089: &lt;http://trac.webkit.org/changeset/69089&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>289480</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-10-05 00:45:28 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>66307</attachid>
            <date>2010-09-01 17:50:14 -0700</date>
            <delta_ts>2010-10-01 14:22:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-45077-20100901175012.patch</filename>
            <type>text/plain</type>
            <size>7458</size>
            <attacher name="Chris Rogers">crogers</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2NjYyNykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTggQEAKKzIwMTAtMDktMDEgIENocmlzIFJvZ2VycyAgPGNyb2dlcnNAZ29vZ2xl
LmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBB
ZGQgRXF1YWxQb3dlclBhbm5lciBmaWxlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NDUwNzcKKworICAgICAgICBObyBuZXcgdGVzdHMgc2luY2UgYXVk
aW8gQVBJIGlzIG5vdCB5ZXQgaW1wbGVtZW50ZWQuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRp
by9FcXVhbFBvd2VyUGFubmVyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpFcXVhbFBv
d2VyUGFubmVyOjpwYW4pOgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL0VxdWFsUG93ZXJQYW5u
ZXIuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpFcXVhbFBvd2VyUGFubmVyOjpFcXVhbFBv
d2VyUGFubmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkVxdWFsUG93ZXJQYW5uZXI6OnJlc2V0KToK
KwogMjAxMC0wOS0wMSAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KIAogICAgICAg
ICBSZXZpZXdlZCBieSBEaW1pdHJpIEdsYXprb3YuCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2F1
ZGlvL0VxdWFsUG93ZXJQYW5uZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0v
YXVkaW8vRXF1YWxQb3dlclBhbm5lci5jcHAJKHJldmlzaW9uIDApCisrKyBXZWJDb3JlL3BsYXRm
b3JtL2F1ZGlvL0VxdWFsUG93ZXJQYW5uZXIuY3BwCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDEw
MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoK
KyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBw
bGUgQ29tcHV0ZXIsIEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKKyAqICAgICBpdHMg
Y29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBk
ZXJpdmVkCisgKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Ig
d3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJ
TVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
CisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2lmIEVOQUJMRShXRUJfQVVESU8pCisKKyNp
bmNsdWRlICJFcXVhbFBvd2VyUGFubmVyLmgiCisKKyNpbmNsdWRlICJBdWRpb0J1cy5oIgorI2lu
Y2x1ZGUgPG1hdGguaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCit2b2lkIEVxdWFsUG93ZXJQ
YW5uZXI6OnBhbihkb3VibGUgYXppbXV0aCwgZG91YmxlIC8qZWxldmF0aW9uKi8sIEF1ZGlvQnVz
KiBpbnB1dEJ1cywgQXVkaW9CdXMqIG91dHB1dEJ1cywgc2l6ZV90IGZyYW1lc1RvUHJvY2VzcykK
K3sKKyAgICAvLyBGSVhNRTogaW1wbGVtZW50IHN0ZXJlbyBzb3VyY2VzCisgICAgYm9vbCBpc0lu
cHV0U2FmZSA9IGlucHV0QnVzICYmIGlucHV0QnVzLT5udW1iZXJPZkNoYW5uZWxzKCkgPT0gMSAm
JiBmcmFtZXNUb1Byb2Nlc3MgPD0gaW5wdXRCdXMtPmxlbmd0aCgpOworICAgIEFTU0VSVChpc0lu
cHV0U2FmZSk7CisgICAgaWYgKCFpc0lucHV0U2FmZSkKKyAgICAgICAgcmV0dXJuOworCisgICAg
Ym9vbCBpc091dHB1dFNhZmUgPSBvdXRwdXRCdXMgJiYgb3V0cHV0QnVzLT5udW1iZXJPZkNoYW5u
ZWxzKCkgPT0gMiAmJiBmcmFtZXNUb1Byb2Nlc3MgPD0gb3V0cHV0QnVzLT5sZW5ndGgoKTsKKyAg
ICBBU1NFUlQoaXNPdXRwdXRTYWZlKTsKKyAgICBpZiAoIWlzT3V0cHV0U2FmZSkKKyAgICAgICAg
cmV0dXJuOworCisgICAgQXVkaW9DaGFubmVsKiBjaGFubmVsID0gaW5wdXRCdXMtPmNoYW5uZWwo
MCk7CisgICAgZmxvYXQqIHNvdXJjZVAgPSBjaGFubmVsLT5kYXRhKCk7ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIAorICAgIGZsb2F0KiBkZXN0TCA9IG91dHB1dEJ1cy0+Y2hhbm5lbEJ5
VHlwZShBdWRpb0J1czo6Q2hhbm5lbExlZnQpLT5kYXRhKCk7CisgICAgZmxvYXQqIGRlc3RSID0g
b3V0cHV0QnVzLT5jaGFubmVsQnlUeXBlKEF1ZGlvQnVzOjpDaGFubmVsUmlnaHQpLT5kYXRhKCk7
CisKKyAgICBpZiAoIXNvdXJjZVAgfHwgIWRlc3RMIHx8ICFkZXN0UikKKyAgICAgICAgcmV0dXJu
OworCisgICAgLy8gUGFuIHNtb290aGx5IGZyb20gbGVmdCB0byByaWdodCB3aXRoIGF6aW11dGgg
Z29pbmcgZnJvbSAtMzAgLT4gKzMwIGRlZ3JlZXMuCisgICAgZG91YmxlIGRlc2lyZWRQYW5Qb3Np
dGlvbjsKKyAgICBpZiAoYXppbXV0aCA+IDMwLjApCisgICAgICAgIGRlc2lyZWRQYW5Qb3NpdGlv
biA9IDEuMDsKKyAgICBlbHNlIGlmIChhemltdXRoIDwgLTMwLjApCisgICAgICAgIGRlc2lyZWRQ
YW5Qb3NpdGlvbiA9IDAuMDsKKyAgICBlbHNlCisgICAgICAgIGRlc2lyZWRQYW5Qb3NpdGlvbiA9
IChhemltdXRoICsgMzAuMCkgLyA2MC4wOworCisgICAgZG91YmxlIGRlc2lyZWRHYWluTCA9IDAu
NSAqIGNvcyhNX1BJICogZGVzaXJlZFBhblBvc2l0aW9uKSArIDAuNTsKKyAgICBkb3VibGUgZGVz
aXJlZEdhaW5SID0gc3FydCgxLjAgLSBkZXNpcmVkR2FpbkwqZGVzaXJlZEdhaW5MKTsKKworICAg
IC8vIERvbid0IGRlLXppcHBlciBvbiBmaXJzdCByZW5kZXIgY2FsbC4KKyAgICBpZiAobV9pc0Zp
cnN0UmVuZGVyKSB7CisgICAgICAgIG1faXNGaXJzdFJlbmRlciA9IGZhbHNlOworICAgICAgICBt
X2dhaW5MID0gZGVzaXJlZEdhaW5MOworICAgICAgICBtX2dhaW5SID0gZGVzaXJlZEdhaW5SOwor
ICAgIH0KKworICAgIC8vIENhY2hlIGluIGxvY2FsIHZhcmlhYmxlcy4KKyAgICBkb3VibGUgZ2Fp
bkwgPSBtX2dhaW5MOworICAgIGRvdWJsZSBnYWluUiA9IG1fZ2FpblI7CisKKyAgICAvLyBEZS16
aXBwZXJpbmcgY29uc3RhbnQKKyAgICBjb25zdCBkb3VibGUga0RlemlwcGVySyA9IDAuMDAwNTsK
KworICAgIGludCBuID0gZnJhbWVzVG9Qcm9jZXNzOworCisgICAgd2hpbGUgKG4tLSkgeworICAg
ICAgICBmbG9hdCBpbnB1dCA9ICpzb3VyY2VQKys7CisgICAgICAgIGdhaW5MICs9IChkZXNpcmVk
R2FpbkwgLSBnYWluTCkgKiBrRGV6aXBwZXJLOworICAgICAgICBnYWluUiArPSAoZGVzaXJlZEdh
aW5SIC0gZ2FpblIpICoga0RlemlwcGVySzsKKyAgICAgICAgKmRlc3RMKysgPSBzdGF0aWNfY2Fz
dDxmbG9hdD4oaW5wdXQgKiBnYWluTCk7CisgICAgICAgICpkZXN0UisrID0gc3RhdGljX2Nhc3Q8
ZmxvYXQ+KGlucHV0ICogZ2FpblIpOworICAgIH0KKworICAgIG1fZ2FpbkwgPSBnYWluTDsKKyAg
ICBtX2dhaW5SID0gZ2FpblI7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlm
IC8vIEVOQUJMRShXRUJfQVVESU8pCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0VxdWFs
UG93ZXJQYW5uZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0VxdWFs
UG93ZXJQYW5uZXIuaAkocmV2aXNpb24gMCkKKysrIFdlYkNvcmUvcGxhdGZvcm0vYXVkaW8vRXF1
YWxQb3dlclBhbm5lci5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDYxIEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKiAzLiAgTmVpdGhlciB0aGUgbmFtZSBvZiBBcHBsZSBDb21wdXRlciwgSW5j
LiAoIkFwcGxlIikgbm9yIHRoZSBuYW1lcyBvZgorICogICAgIGl0cyBjb250cmlidXRvcnMgbWF5
IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKKyAqICAgICBm
cm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Np
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENP
TlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBF
cXVhbFBvd2VyUGFubmVyX2gKKyNkZWZpbmUgRXF1YWxQb3dlclBhbm5lcl9oCisKKyNpbmNsdWRl
ICJQYW5uZXIuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCisvLyBDb21tb24gdHlwZSBvZiBz
dGVyZW8gcGFubmVyIGFzIGZvdW5kIGluIG5vcm1hbCBhdWRpbyBtaXhpbmcgZXF1aXBtZW50Lgor
CitjbGFzcyBFcXVhbFBvd2VyUGFubmVyIDogcHVibGljIFBhbm5lciB7CitwdWJsaWM6CisgICAg
RXF1YWxQb3dlclBhbm5lcigpCisgICAgICAgIDogUGFubmVyKFBhbm5pbmdNb2RlbEVxdWFsUG93
ZXIpCisgICAgICAgICwgbV9pc0ZpcnN0UmVuZGVyKHRydWUpCisgICAgICAgICwgbV9nYWluTCgw
LjApCisgICAgICAgICwgbV9nYWluUigwLjApCisgICAgeworICAgIH0KKworICAgIHZpcnR1YWwg
dm9pZCBwYW4oZG91YmxlIGF6aW11dGgsIGRvdWJsZSBlbGV2YXRpb24sIEF1ZGlvQnVzKiBpbnB1
dEJ1cywgQXVkaW9CdXMqIG91dHB1dEJ1Ziwgc2l6ZV90IGZyYW1lc1RvUHJvY2Vzcyk7CisKKyAg
ICB2aXJ0dWFsIHZvaWQgcmVzZXQoKSB7IG1faXNGaXJzdFJlbmRlciA9IHRydWU7IH0KKworcHJp
dmF0ZToKKyAgICAvLyBGb3IgZGUtemlwcGVyaW5nCisgICAgYm9vbCBtX2lzRmlyc3RSZW5kZXI7
CisgICAgZG91YmxlIG1fZ2Fpbkw7CisgICAgZG91YmxlIG1fZ2FpblI7Cit9OworCit9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFcXVhbFBvd2VyUGFubmVyX2gK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>69518</attachid>
            <date>2010-10-01 14:22:04 -0700</date>
            <delta_ts>2010-10-04 15:31:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-45077-20101001142202.patch</filename>
            <type>text/plain</type>
            <size>7895</size>
            <attacher name="Chris Rogers">crogers</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2ODkyNSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTggQEAKKzIwMTAtMTAtMDEgIENocmlzIFJvZ2VycyAgPGNyb2dlcnNAZ29vZ2xl
LmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBB
ZGQgRXF1YWxQb3dlclBhbm5lciBmaWxlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NDUwNzcKKworICAgICAgICBObyBuZXcgdGVzdHMgc2luY2UgYXVk
aW8gQVBJIGlzIG5vdCB5ZXQgaW1wbGVtZW50ZWQuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRp
by9FcXVhbFBvd2VyUGFubmVyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpFcXVhbFBv
d2VyUGFubmVyOjpFcXVhbFBvd2VyUGFubmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkVxdWFsUG93
ZXJQYW5uZXI6OnBhbik6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vRXF1YWxQb3dlclBhbm5l
ci5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkVxdWFsUG93ZXJQYW5uZXI6OnJlc2V0KToK
KwogMjAxMC0xMC0wMSAgRW5yaWNhIENhc3VjY2kgIDxlbnJpY2FAYXBwbGUuY29tPgogCiAgICAg
ICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9hdWRp
by9FcXVhbFBvd2VyUGFubmVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2F1
ZGlvL0VxdWFsUG93ZXJQYW5uZXIuY3BwCShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS9wbGF0Zm9y
bS9hdWRpby9FcXVhbFBvd2VyUGFubmVyLmNwcAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxMTYg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisg
KiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMuICBOZWl0aGVyIHRoZSBuYW1lIG9mIEFwcGxl
IENvbXB1dGVyLCBJbmMuICgiQXBwbGUiKSBub3IgdGhlIG5hbWVzIG9mCisgKiAgICAgaXRzIGNv
bnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVy
aXZlZAorICogICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdy
aXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1Q
TElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAor
ICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBFTkFCTEUoV0VCX0FVRElPKQorCisjaW5j
bHVkZSAiRXF1YWxQb3dlclBhbm5lci5oIgorCisjaW5jbHVkZSAiQXVkaW9CdXMuaCIKKyNpbmNs
dWRlICJBdWRpb1V0aWxpdGllcy5oIgorI2luY2x1ZGUgPG1hdGguaD4KKworLy8gVXNlIGEgNTBt
cyBzbW9vdGhpbmcgLyBkZS16aXBwZXJpbmcgdGltZS1jb25zdGFudC4KK2NvbnN0IGRvdWJsZSBT
bW9vdGhpbmdUaW1lQ29uc3RhbnQgPSAwLjA1MDsKKyAKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwor
RXF1YWxQb3dlclBhbm5lcjo6RXF1YWxQb3dlclBhbm5lcihkb3VibGUgc2FtcGxlUmF0ZSkKKyAg
ICA6IFBhbm5lcihQYW5uaW5nTW9kZWxFcXVhbFBvd2VyKQorICAgICwgbV9pc0ZpcnN0UmVuZGVy
KHRydWUpCisgICAgLCBtX2dhaW5MKDAuMCkKKyAgICAsIG1fZ2FpblIoMC4wKQoreworICAgIG1f
c21vb3RoaW5nQ29uc3RhbnQgPSBBdWRpb1V0aWxpdGllczo6ZGlzY3JldGVUaW1lQ29uc3RhbnRG
b3JTYW1wbGVSYXRlKFNtb290aGluZ1RpbWVDb25zdGFudCwgc2FtcGxlUmF0ZSk7Cit9CisKK3Zv
aWQgRXF1YWxQb3dlclBhbm5lcjo6cGFuKGRvdWJsZSBhemltdXRoLCBkb3VibGUgLyplbGV2YXRp
b24qLywgQXVkaW9CdXMqIGlucHV0QnVzLCBBdWRpb0J1cyogb3V0cHV0QnVzLCBzaXplX3QgZnJh
bWVzVG9Qcm9jZXNzKQoreworICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQgc3RlcmVvIHNvdXJjZXMK
KyAgICBib29sIGlzSW5wdXRTYWZlID0gaW5wdXRCdXMgJiYgaW5wdXRCdXMtPm51bWJlck9mQ2hh
bm5lbHMoKSA9PSAxICYmIGZyYW1lc1RvUHJvY2VzcyA8PSBpbnB1dEJ1cy0+bGVuZ3RoKCk7Cisg
ICAgQVNTRVJUKGlzSW5wdXRTYWZlKTsKKyAgICBpZiAoIWlzSW5wdXRTYWZlKQorICAgICAgICBy
ZXR1cm47CisKKyAgICBib29sIGlzT3V0cHV0U2FmZSA9IG91dHB1dEJ1cyAmJiBvdXRwdXRCdXMt
Pm51bWJlck9mQ2hhbm5lbHMoKSA9PSAyICYmIGZyYW1lc1RvUHJvY2VzcyA8PSBvdXRwdXRCdXMt
Pmxlbmd0aCgpOworICAgIEFTU0VSVChpc091dHB1dFNhZmUpOworICAgIGlmICghaXNPdXRwdXRT
YWZlKQorICAgICAgICByZXR1cm47CisKKyAgICBBdWRpb0NoYW5uZWwqIGNoYW5uZWwgPSBpbnB1
dEJ1cy0+Y2hhbm5lbCgwKTsKKyAgICBmbG9hdCogc291cmNlUCA9IGNoYW5uZWwtPmRhdGEoKTsg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgZmxvYXQqIGRlc3RpbmF0aW9uTCA9
IG91dHB1dEJ1cy0+Y2hhbm5lbEJ5VHlwZShBdWRpb0J1czo6Q2hhbm5lbExlZnQpLT5kYXRhKCk7
CisgICAgZmxvYXQqIGRlc3RpbmF0aW9uUiA9IG91dHB1dEJ1cy0+Y2hhbm5lbEJ5VHlwZShBdWRp
b0J1czo6Q2hhbm5lbFJpZ2h0KS0+ZGF0YSgpOworCisgICAgaWYgKCFzb3VyY2VQIHx8ICFkZXN0
aW5hdGlvbkwgfHwgIWRlc3RpbmF0aW9uUikKKyAgICAgICAgcmV0dXJuOworCisgICAgLy8gUGFu
IHNtb290aGx5IGZyb20gbGVmdCB0byByaWdodCB3aXRoIGF6aW11dGggZ29pbmcgZnJvbSAtMzAg
LT4gKzMwIGRlZ3JlZXMuCisgICAgZG91YmxlIGRlc2lyZWRQYW5Qb3NpdGlvbjsKKyAgICBpZiAo
YXppbXV0aCA+IDMwLjApCisgICAgICAgIGRlc2lyZWRQYW5Qb3NpdGlvbiA9IDEuMDsKKyAgICBl
bHNlIGlmIChhemltdXRoIDwgLTMwLjApCisgICAgICAgIGRlc2lyZWRQYW5Qb3NpdGlvbiA9IDAu
MDsKKyAgICBlbHNlCisgICAgICAgIGRlc2lyZWRQYW5Qb3NpdGlvbiA9IChhemltdXRoICsgMzAu
MCkgLyA2MC4wOworCisgICAgZG91YmxlIGRlc2lyZWRHYWluTCA9IDAuNSAqIGNvcyhNX1BJICog
ZGVzaXJlZFBhblBvc2l0aW9uKSArIDAuNTsKKyAgICBkb3VibGUgZGVzaXJlZEdhaW5SID0gc3Fy
dCgxLjAgLSBkZXNpcmVkR2FpbkwqZGVzaXJlZEdhaW5MKTsKKworICAgIC8vIERvbid0IGRlLXpp
cHBlciBvbiBmaXJzdCByZW5kZXIgY2FsbC4KKyAgICBpZiAobV9pc0ZpcnN0UmVuZGVyKSB7Cisg
ICAgICAgIG1faXNGaXJzdFJlbmRlciA9IGZhbHNlOworICAgICAgICBtX2dhaW5MID0gZGVzaXJl
ZEdhaW5MOworICAgICAgICBtX2dhaW5SID0gZGVzaXJlZEdhaW5SOworICAgIH0KKworICAgIC8v
IENhY2hlIGluIGxvY2FsIHZhcmlhYmxlcy4KKyAgICBkb3VibGUgZ2FpbkwgPSBtX2dhaW5MOwor
ICAgIGRvdWJsZSBnYWluUiA9IG1fZ2FpblI7CisKKyAgICAvLyBHZXQgbG9jYWwgY29weSBvZiBz
bW9vdGhpbmcgY29uc3RhbnQuCisgICAgY29uc3QgZG91YmxlIFNtb290aGluZ0NvbnN0YW50ID0g
bV9zbW9vdGhpbmdDb25zdGFudDsKKworICAgIGludCBuID0gZnJhbWVzVG9Qcm9jZXNzOworCisg
ICAgd2hpbGUgKG4tLSkgeworICAgICAgICBmbG9hdCBpbnB1dCA9ICpzb3VyY2VQKys7CisgICAg
ICAgIGdhaW5MICs9IChkZXNpcmVkR2FpbkwgLSBnYWluTCkgKiBTbW9vdGhpbmdDb25zdGFudDsK
KyAgICAgICAgZ2FpblIgKz0gKGRlc2lyZWRHYWluUiAtIGdhaW5SKSAqIFNtb290aGluZ0NvbnN0
YW50OworICAgICAgICAqZGVzdGluYXRpb25MKysgPSBzdGF0aWNfY2FzdDxmbG9hdD4oaW5wdXQg
KiBnYWluTCk7CisgICAgICAgICpkZXN0aW5hdGlvblIrKyA9IHN0YXRpY19jYXN0PGZsb2F0Pihp
bnB1dCAqIGdhaW5SKTsKKyAgICB9CisKKyAgICBtX2dhaW5MID0gZ2Fpbkw7CisgICAgbV9nYWlu
UiA9IGdhaW5SOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFC
TEUoV0VCX0FVRElPKQpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9FcXVhbFBvd2VyUGFu
bmVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9FcXVhbFBvd2VyUGFu
bmVyLmgJKHJldmlzaW9uIDApCisrKyBXZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0VxdWFsUG93ZXJQ
YW5uZXIuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw1NyBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgQ29tcHV0ZXIsIEluYy4gKCJBcHBs
ZSIpIG5vciB0aGUgbmFtZXMgb2YKKyAqICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2Vk
IHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCisgKiAgICAgZnJvbSB0aGlz
IHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRP
UlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJF
CisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgRXF1YWxQb3dl
clBhbm5lcl9oCisjZGVmaW5lIEVxdWFsUG93ZXJQYW5uZXJfaAorCisjaW5jbHVkZSAiUGFubmVy
LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworLy8gQ29tbW9uIHR5cGUgb2Ygc3RlcmVvIHBh
bm5lciBhcyBmb3VuZCBpbiBub3JtYWwgYXVkaW8gbWl4aW5nIGVxdWlwbWVudC4KKworY2xhc3Mg
RXF1YWxQb3dlclBhbm5lciA6IHB1YmxpYyBQYW5uZXIgeworcHVibGljOgorICAgIEVxdWFsUG93
ZXJQYW5uZXIoZG91YmxlIHNhbXBsZVJhdGUpOworCisgICAgdmlydHVhbCB2b2lkIHBhbihkb3Vi
bGUgYXppbXV0aCwgZG91YmxlIGVsZXZhdGlvbiwgQXVkaW9CdXMqIGlucHV0QnVzLCBBdWRpb0J1
cyogb3V0cHV0QnVmLCBzaXplX3QgZnJhbWVzVG9Qcm9jZXNzKTsKKworICAgIHZpcnR1YWwgdm9p
ZCByZXNldCgpIHsgbV9pc0ZpcnN0UmVuZGVyID0gdHJ1ZTsgfQorCitwcml2YXRlOgorICAgIC8v
IEZvciBzbW9vdGhpbmcgLyBkZS16aXBwZXJpbmcKKyAgICBib29sIG1faXNGaXJzdFJlbmRlcjsK
KyAgICBkb3VibGUgbV9zbW9vdGhpbmdDb25zdGFudDsKKyAgICAKKyAgICBkb3VibGUgbV9nYWlu
TDsKKyAgICBkb3VibGUgbV9nYWluUjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKwor
I2VuZGlmIC8vIEVxdWFsUG93ZXJQYW5uZXJfaAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>69700</attachid>
            <date>2010-10-04 15:32:03 -0700</date>
            <delta_ts>2010-10-05 00:45:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-45077-20101004153201.patch</filename>
            <type>text/plain</type>
            <size>7467</size>
            <attacher name="Chris Rogers">crogers</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2OTA0MykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTggQEAKKzIwMTAtMTAtMDQgIENocmlzIFJvZ2VycyAgPGNyb2dlcnNAZ29vZ2xl
LmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBB
ZGQgRXF1YWxQb3dlclBhbm5lciBmaWxlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NDUwNzcKKworICAgICAgICBObyBuZXcgdGVzdHMgc2luY2UgYXVk
aW8gQVBJIGlzIG5vdCB5ZXQgaW1wbGVtZW50ZWQuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRp
by9FcXVhbFBvd2VyUGFubmVyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpFcXVhbFBv
d2VyUGFubmVyOjpFcXVhbFBvd2VyUGFubmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkVxdWFsUG93
ZXJQYW5uZXI6OnBhbik6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vRXF1YWxQb3dlclBhbm5l
ci5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkVxdWFsUG93ZXJQYW5uZXI6OnJlc2V0KToK
KwogMjAxMC0xMC0wNCAgSnVzdGluIFNjaHVoICA8anNjaHVoQGNocm9taXVtLm9yZz4KIAogICAg
ICAgICBSZXZpZXdlZCBieSBKYW1lcyBSb2JpbnNvbi4KSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0v
YXVkaW8vRXF1YWxQb3dlclBhbm5lci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9y
bS9hdWRpby9FcXVhbFBvd2VyUGFubmVyLmNwcAkocmV2aXNpb24gMCkKKysrIFdlYkNvcmUvcGxh
dGZvcm0vYXVkaW8vRXF1YWxQb3dlclBhbm5lci5jcHAJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEs
MTEyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwLCBHb29nbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04KKyAqIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUworICogU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaWYgRU5BQkxFKFdF
Ql9BVURJTykKKworI2luY2x1ZGUgIkVxdWFsUG93ZXJQYW5uZXIuaCIKKworI2luY2x1ZGUgIkF1
ZGlvQnVzLmgiCisjaW5jbHVkZSAiQXVkaW9VdGlsaXRpZXMuaCIKKyNpbmNsdWRlIDxtYXRoLmg+
CisKKy8vIFVzZSBhIDUwbXMgc21vb3RoaW5nIC8gZGUtemlwcGVyaW5nIHRpbWUtY29uc3RhbnQu
Citjb25zdCBkb3VibGUgU21vb3RoaW5nVGltZUNvbnN0YW50ID0gMC4wNTA7CisgCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisKK0VxdWFsUG93ZXJQYW5uZXI6OkVxdWFsUG93ZXJQYW5uZXIoZG91Ymxl
IHNhbXBsZVJhdGUpCisgICAgOiBQYW5uZXIoUGFubmluZ01vZGVsRXF1YWxQb3dlcikKKyAgICAs
IG1faXNGaXJzdFJlbmRlcih0cnVlKQorICAgICwgbV9nYWluTCgwLjApCisgICAgLCBtX2dhaW5S
KDAuMCkKK3sKKyAgICBtX3Ntb290aGluZ0NvbnN0YW50ID0gQXVkaW9VdGlsaXRpZXM6OmRpc2Ny
ZXRlVGltZUNvbnN0YW50Rm9yU2FtcGxlUmF0ZShTbW9vdGhpbmdUaW1lQ29uc3RhbnQsIHNhbXBs
ZVJhdGUpOworfQorCit2b2lkIEVxdWFsUG93ZXJQYW5uZXI6OnBhbihkb3VibGUgYXppbXV0aCwg
ZG91YmxlIC8qZWxldmF0aW9uKi8sIEF1ZGlvQnVzKiBpbnB1dEJ1cywgQXVkaW9CdXMqIG91dHB1
dEJ1cywgc2l6ZV90IGZyYW1lc1RvUHJvY2VzcykKK3sKKyAgICAvLyBGSVhNRTogaW1wbGVtZW50
IHN0ZXJlbyBzb3VyY2VzCisgICAgYm9vbCBpc0lucHV0U2FmZSA9IGlucHV0QnVzICYmIGlucHV0
QnVzLT5udW1iZXJPZkNoYW5uZWxzKCkgPT0gMSAmJiBmcmFtZXNUb1Byb2Nlc3MgPD0gaW5wdXRC
dXMtPmxlbmd0aCgpOworICAgIEFTU0VSVChpc0lucHV0U2FmZSk7CisgICAgaWYgKCFpc0lucHV0
U2FmZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgYm9vbCBpc091dHB1dFNhZmUgPSBvdXRwdXRC
dXMgJiYgb3V0cHV0QnVzLT5udW1iZXJPZkNoYW5uZWxzKCkgPT0gMiAmJiBmcmFtZXNUb1Byb2Nl
c3MgPD0gb3V0cHV0QnVzLT5sZW5ndGgoKTsKKyAgICBBU1NFUlQoaXNPdXRwdXRTYWZlKTsKKyAg
ICBpZiAoIWlzT3V0cHV0U2FmZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgQXVkaW9DaGFubmVs
KiBjaGFubmVsID0gaW5wdXRCdXMtPmNoYW5uZWwoMCk7CisgICAgZmxvYXQqIHNvdXJjZVAgPSBj
aGFubmVsLT5kYXRhKCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgIGZsb2F0
KiBkZXN0aW5hdGlvbkwgPSBvdXRwdXRCdXMtPmNoYW5uZWxCeVR5cGUoQXVkaW9CdXM6OkNoYW5u
ZWxMZWZ0KS0+ZGF0YSgpOworICAgIGZsb2F0KiBkZXN0aW5hdGlvblIgPSBvdXRwdXRCdXMtPmNo
YW5uZWxCeVR5cGUoQXVkaW9CdXM6OkNoYW5uZWxSaWdodCktPmRhdGEoKTsKKworICAgIGlmICgh
c291cmNlUCB8fCAhZGVzdGluYXRpb25MIHx8ICFkZXN0aW5hdGlvblIpCisgICAgICAgIHJldHVy
bjsKKworICAgIC8vIFBhbiBzbW9vdGhseSBmcm9tIGxlZnQgdG8gcmlnaHQgd2l0aCBhemltdXRo
IGdvaW5nIGZyb20gLTMwIC0+ICszMCBkZWdyZWVzLgorICAgIGRvdWJsZSBkZXNpcmVkUGFuUG9z
aXRpb247CisgICAgaWYgKGF6aW11dGggPiAzMC4wKQorICAgICAgICBkZXNpcmVkUGFuUG9zaXRp
b24gPSAxLjA7CisgICAgZWxzZSBpZiAoYXppbXV0aCA8IC0zMC4wKQorICAgICAgICBkZXNpcmVk
UGFuUG9zaXRpb24gPSAwLjA7CisgICAgZWxzZQorICAgICAgICBkZXNpcmVkUGFuUG9zaXRpb24g
PSAoYXppbXV0aCArIDMwLjApIC8gNjAuMDsKKworICAgIGRvdWJsZSBkZXNpcmVkR2FpbkwgPSAw
LjUgKiBjb3MoTV9QSSAqIGRlc2lyZWRQYW5Qb3NpdGlvbikgKyAwLjU7CisgICAgZG91YmxlIGRl
c2lyZWRHYWluUiA9IHNxcnQoMS4wIC0gZGVzaXJlZEdhaW5MKmRlc2lyZWRHYWluTCk7CisKKyAg
ICAvLyBEb24ndCBkZS16aXBwZXIgb24gZmlyc3QgcmVuZGVyIGNhbGwuCisgICAgaWYgKG1faXNG
aXJzdFJlbmRlcikgeworICAgICAgICBtX2lzRmlyc3RSZW5kZXIgPSBmYWxzZTsKKyAgICAgICAg
bV9nYWluTCA9IGRlc2lyZWRHYWluTDsKKyAgICAgICAgbV9nYWluUiA9IGRlc2lyZWRHYWluUjsK
KyAgICB9CisKKyAgICAvLyBDYWNoZSBpbiBsb2NhbCB2YXJpYWJsZXMuCisgICAgZG91YmxlIGdh
aW5MID0gbV9nYWluTDsKKyAgICBkb3VibGUgZ2FpblIgPSBtX2dhaW5SOworCisgICAgLy8gR2V0
IGxvY2FsIGNvcHkgb2Ygc21vb3RoaW5nIGNvbnN0YW50LgorICAgIGNvbnN0IGRvdWJsZSBTbW9v
dGhpbmdDb25zdGFudCA9IG1fc21vb3RoaW5nQ29uc3RhbnQ7CisKKyAgICBpbnQgbiA9IGZyYW1l
c1RvUHJvY2VzczsKKworICAgIHdoaWxlIChuLS0pIHsKKyAgICAgICAgZmxvYXQgaW5wdXQgPSAq
c291cmNlUCsrOworICAgICAgICBnYWluTCArPSAoZGVzaXJlZEdhaW5MIC0gZ2FpbkwpICogU21v
b3RoaW5nQ29uc3RhbnQ7CisgICAgICAgIGdhaW5SICs9IChkZXNpcmVkR2FpblIgLSBnYWluUikg
KiBTbW9vdGhpbmdDb25zdGFudDsKKyAgICAgICAgKmRlc3RpbmF0aW9uTCsrID0gc3RhdGljX2Nh
c3Q8ZmxvYXQ+KGlucHV0ICogZ2FpbkwpOworICAgICAgICAqZGVzdGluYXRpb25SKysgPSBzdGF0
aWNfY2FzdDxmbG9hdD4oaW5wdXQgKiBnYWluUik7CisgICAgfQorCisgICAgbV9nYWluTCA9IGdh
aW5MOworICAgIG1fZ2FpblIgPSBnYWluUjsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQor
CisjZW5kaWYgLy8gRU5BQkxFKFdFQl9BVURJTykKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vYXVk
aW8vRXF1YWxQb3dlclBhbm5lci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vYXVk
aW8vRXF1YWxQb3dlclBhbm5lci5oCShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9h
dWRpby9FcXVhbFBvd2VyUGFubmVyLmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNTMgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTAsIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiAgUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElN
UExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTgorICogQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCisgKiBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaWZuZGVmIEVxdWFsUG93ZXJQYW5uZXJfaAorI2RlZmluZSBFcXVhbFBvd2Vy
UGFubmVyX2gKKworI2luY2x1ZGUgIlBhbm5lci5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
Ky8vIENvbW1vbiB0eXBlIG9mIHN0ZXJlbyBwYW5uZXIgYXMgZm91bmQgaW4gbm9ybWFsIGF1ZGlv
IG1peGluZyBlcXVpcG1lbnQuCisKK2NsYXNzIEVxdWFsUG93ZXJQYW5uZXIgOiBwdWJsaWMgUGFu
bmVyIHsKK3B1YmxpYzoKKyAgICBFcXVhbFBvd2VyUGFubmVyKGRvdWJsZSBzYW1wbGVSYXRlKTsK
KworICAgIHZpcnR1YWwgdm9pZCBwYW4oZG91YmxlIGF6aW11dGgsIGRvdWJsZSBlbGV2YXRpb24s
IEF1ZGlvQnVzKiBpbnB1dEJ1cywgQXVkaW9CdXMqIG91dHB1dEJ1Ziwgc2l6ZV90IGZyYW1lc1Rv
UHJvY2Vzcyk7CisKKyAgICB2aXJ0dWFsIHZvaWQgcmVzZXQoKSB7IG1faXNGaXJzdFJlbmRlciA9
IHRydWU7IH0KKworcHJpdmF0ZToKKyAgICAvLyBGb3Igc21vb3RoaW5nIC8gZGUtemlwcGVyaW5n
CisgICAgYm9vbCBtX2lzRmlyc3RSZW5kZXI7CisgICAgZG91YmxlIG1fc21vb3RoaW5nQ29uc3Rh
bnQ7CisgICAgCisgICAgZG91YmxlIG1fZ2Fpbkw7CisgICAgZG91YmxlIG1fZ2FpblI7Cit9Owor
Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFcXVhbFBvd2VyUGFubmVyX2gK
</data>

          </attachment>
      

    </bug>

</bugzilla>