<?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>43724</bug_id>
          
          <creation_ts>2010-08-09 08:55:42 -0700</creation_ts>
          <short_desc>Support all available biBitCount values in BitmapInfo</short_desc>
          <delta_ts>2010-08-23 20:43:22 -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>Platform</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Windows XP</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="Patrick R. Gansterer">paroga</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>aroben</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eric</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>262161</commentid>
    <comment_count>0</comment_count>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2010-08-09 08:55:42 -0700</bug_when>
    <thetext>see patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>262176</commentid>
    <comment_count>1</comment_count>
      <attachid>63902</attachid>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2010-08-09 09:21:43 -0700</bug_when>
    <thetext>Created attachment 63902
Patch

bitmapInfo.bmiHeader.biSizeImage     = 0;
bitmapInfo.bmiHeader.biXPelsPerMeter = 0;
bitmapInfo.bmiHeader.biYPelsPerMeter = 0;
bitmapInfo.bmiHeader.biClrUsed       = 0;
bitmapInfo.bmiHeader.biClrImportant  = 0;
Is alredy done via memset in constructor.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>265098</commentid>
    <comment_count>2</comment_count>
      <attachid>63902</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2010-08-16 07:41:37 -0700</bug_when>
    <thetext>Comment on attachment 63902
Patch

&gt;  BitmapInfo bitmapInfoForSize(int width, int height, WORD bitCount)
&gt;  {
&gt; -    ASSERT_ARG(bitCount, bitCount == 16 || bitCount == 32);
&gt; +    ASSERT_ARG(bitCount, bitCount == 1 || bitCount == 4 || bitCount == 8 || bitCount == 16 || bitCount == 24 || bitCount == 32);

Maybe an enum would be better for the bitCount parameter?

&gt; @@ -43,11 +43,6 @@ BitmapInfo bitmapInfoForSize(int width, 
&gt;      bitmapInfo.bmiHeader.biPlanes        = 1;
&gt;      bitmapInfo.bmiHeader.biBitCount      = bitCount;
&gt;      bitmapInfo.bmiHeader.biCompression   = BI_RGB;
&gt; -    bitmapInfo.bmiHeader.biSizeImage     = 0;
&gt; -    bitmapInfo.bmiHeader.biXPelsPerMeter = 0;
&gt; -    bitmapInfo.bmiHeader.biYPelsPerMeter = 0;
&gt; -    bitmapInfo.bmiHeader.biClrUsed       = 0;
&gt; -    bitmapInfo.bmiHeader.biClrImportant  = 0;

Please explain this change in the ChangeLog just as you did in an earlier comment in this bug.
&gt; @@ -44,10 +44,12 @@ struct BitmapInfo : public BITMAPINFO {
&gt;      unsigned width() const { return abs(bmiHeader.biWidth); }
&gt;      unsigned height() const { return abs(bmiHeader.biHeight); }
&gt;      IntSize size() const { return IntSize(width(), height()); }
&gt; -    unsigned paddedWidth() const { return is16bit() ? (width() + 1) &amp; ~0x1 : width(); }
&gt; +    unsigned bytesPerLine() const { return (width() * bmiHeader.biBitCount + 7) / 8; }
&gt; +    unsigned paddedBytesPerLine() const { return (bytesPerLine() + 3) &amp; ~0x3; }
&gt; +    unsigned paddedWidth() const { return paddedBytesPerLine() * 8 / bmiHeader.biBitCount; }
&gt;      unsigned numPixels() const { return paddedWidth() * height(); }
&gt; -    unsigned paddedBytesPerLine() const { return is16bit() ? paddedWidth() * 2 : width() * 4; }
&gt; -    unsigned bytesPerLine() const { return width() * bmiHeader.biBitCount / 8; }};

How will someone know whether they should call width() or paddedWidth()? (Ditto for the other functions.)

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>265102</commentid>
    <comment_count>3</comment_count>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2010-08-16 07:54:12 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; How will someone know whether they should call width() or paddedWidth()? (Ditto for the other functions.)
I think that you will know that if you do this &quot;low level&quot; graphic stuff on windows.
The padded*() function are only used when you set the colors byte-by-byte.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>267997</commentid>
    <comment_count>4</comment_count>
      <attachid>65138</attachid>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2010-08-23 10:55:50 -0700</bug_when>
    <thetext>Created attachment 65138
Patch

The eol-style for BitmapInfo is wrong in the ChangeLog.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>267998</commentid>
    <comment_count>5</comment_count>
      <attachid>65139</attachid>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2010-08-23 10:57:50 -0700</bug_when>
    <thetext>Created attachment 65139
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>268003</commentid>
    <comment_count>6</comment_count>
      <attachid>65139</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2010-08-23 11:02:19 -0700</bug_when>
    <thetext>Comment on attachment 65139
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>268278</commentid>
    <comment_count>7</comment_count>
      <attachid>65139</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-08-23 20:04:43 -0700</bug_when>
    <thetext>Comment on attachment 65139
Patch

Clearing flags on attachment: 65139

Committed r65857: &lt;http://trac.webkit.org/changeset/65857&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>268279</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-08-23 20:04:48 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>268285</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-08-23 20:43:22 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/65857 might have broken GTK Linux 32-bit Release
The following changes are on the blame list:
http://trac.webkit.org/changeset/65856
http://trac.webkit.org/changeset/65857
http://trac.webkit.org/changeset/65854
http://trac.webkit.org/changeset/65855</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>63902</attachid>
            <date>2010-08-09 09:21:43 -0700</date>
            <delta_ts>2010-08-23 10:55:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-43724.patch</filename>
            <type>text/plain</type>
            <size>2975</size>
            <attacher name="Patrick R. Gansterer">paroga</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2NDk4NSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTcgQEAKKzIwMTAtMDgtMDkgIFBhdHJpY2sgR2Fuc3RlcmVyICA8cGFyb2dhQHBh
cm9nYS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgU3VwcG9ydCBhbGwgYXZhaWxhYmxlIGJpQml0Q291bnQgdmFsdWVzIGluIEJpdG1hcEluZm8K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQzNzI0CisK
KyAgICAgICAgKiBwbGF0Zm9ybS93aW4vQml0bWFwSW5mby5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpiaXRtYXBJbmZvRm9yU2l6ZSk6CisgICAgICAgICogcGxhdGZvcm0vd2luL0JpdG1hcEluZm8u
aDoKKyAgICAgICAgKFdlYkNvcmU6OkJpdG1hcEluZm86OmJ5dGVzUGVyTGluZSk6CisgICAgICAg
IChXZWJDb3JlOjpCaXRtYXBJbmZvOjpwYWRkZWRCeXRlc1BlckxpbmUpOgorICAgICAgICAoV2Vi
Q29yZTo6Qml0bWFwSW5mbzo6cGFkZGVkV2lkdGgpOgorCiAyMDEwLTA4LTA5ICBGcmFuw6dvaXMg
U2F1c3NldCAgPHNhdXNzZXRAZ21haWwuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEtlbm5l
dGggUm9oZGUgQ2hyaXN0aWFuc2VuLgpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS93aW4vQml0bWFw
SW5mby5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS93aW4vQml0bWFwSW5mby5j
cHAJKHJldmlzaW9uIDY0Njg3KQorKysgV2ViQ29yZS9wbGF0Zm9ybS93aW4vQml0bWFwSW5mby5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTM1LDcgKzM1LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
CiBCaXRtYXBJbmZvIGJpdG1hcEluZm9Gb3JTaXplKGludCB3aWR0aCwgaW50IGhlaWdodCwgV09S
RCBiaXRDb3VudCkKIHsKLSAgICBBU1NFUlRfQVJHKGJpdENvdW50LCBiaXRDb3VudCA9PSAxNiB8
fCBiaXRDb3VudCA9PSAzMik7CisgICAgQVNTRVJUX0FSRyhiaXRDb3VudCwgYml0Q291bnQgPT0g
MSB8fCBiaXRDb3VudCA9PSA0IHx8IGJpdENvdW50ID09IDggfHwgYml0Q291bnQgPT0gMTYgfHwg
Yml0Q291bnQgPT0gMjQgfHwgYml0Q291bnQgPT0gMzIpOwogCiAgICAgQml0bWFwSW5mbyBiaXRt
YXBJbmZvOwogICAgIGJpdG1hcEluZm8uYm1pSGVhZGVyLmJpV2lkdGggICAgICAgICA9IHdpZHRo
OwpAQCAtNDMsMTEgKzQzLDYgQEAgQml0bWFwSW5mbyBiaXRtYXBJbmZvRm9yU2l6ZShpbnQgd2lk
dGgsIAogICAgIGJpdG1hcEluZm8uYm1pSGVhZGVyLmJpUGxhbmVzICAgICAgICA9IDE7CiAgICAg
Yml0bWFwSW5mby5ibWlIZWFkZXIuYmlCaXRDb3VudCAgICAgID0gYml0Q291bnQ7CiAgICAgYml0
bWFwSW5mby5ibWlIZWFkZXIuYmlDb21wcmVzc2lvbiAgID0gQklfUkdCOwotICAgIGJpdG1hcElu
Zm8uYm1pSGVhZGVyLmJpU2l6ZUltYWdlICAgICA9IDA7Ci0gICAgYml0bWFwSW5mby5ibWlIZWFk
ZXIuYmlYUGVsc1Blck1ldGVyID0gMDsKLSAgICBiaXRtYXBJbmZvLmJtaUhlYWRlci5iaVlQZWxz
UGVyTWV0ZXIgPSAwOwotICAgIGJpdG1hcEluZm8uYm1pSGVhZGVyLmJpQ2xyVXNlZCAgICAgICA9
IDA7Ci0gICAgYml0bWFwSW5mby5ibWlIZWFkZXIuYmlDbHJJbXBvcnRhbnQgID0gMDsKIAogICAg
IHJldHVybiBiaXRtYXBJbmZvOwogfQpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS93aW4vQml0bWFw
SW5mby5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vd2luL0JpdG1hcEluZm8uaAko
cmV2aXNpb24gNjQ5NzgpCisrKyBXZWJDb3JlL3BsYXRmb3JtL3dpbi9CaXRtYXBJbmZvLmgJKHdv
cmtpbmcgY29weSkKQEAgLTQ0LDEwICs0NCwxMiBAQCBzdHJ1Y3QgQml0bWFwSW5mbyA6IHB1Ymxp
YyBCSVRNQVBJTkZPIHsKICAgICB1bnNpZ25lZCB3aWR0aCgpIGNvbnN0IHsgcmV0dXJuIGFicyhi
bWlIZWFkZXIuYmlXaWR0aCk7IH0KICAgICB1bnNpZ25lZCBoZWlnaHQoKSBjb25zdCB7IHJldHVy
biBhYnMoYm1pSGVhZGVyLmJpSGVpZ2h0KTsgfQogICAgIEludFNpemUgc2l6ZSgpIGNvbnN0IHsg
cmV0dXJuIEludFNpemUod2lkdGgoKSwgaGVpZ2h0KCkpOyB9Ci0gICAgdW5zaWduZWQgcGFkZGVk
V2lkdGgoKSBjb25zdCB7IHJldHVybiBpczE2Yml0KCkgPyAod2lkdGgoKSArIDEpICYgfjB4MSA6
IHdpZHRoKCk7IH0KKyAgICB1bnNpZ25lZCBieXRlc1BlckxpbmUoKSBjb25zdCB7IHJldHVybiAo
d2lkdGgoKSAqIGJtaUhlYWRlci5iaUJpdENvdW50ICsgNykgLyA4OyB9CisgICAgdW5zaWduZWQg
cGFkZGVkQnl0ZXNQZXJMaW5lKCkgY29uc3QgeyByZXR1cm4gKGJ5dGVzUGVyTGluZSgpICsgMykg
JiB+MHgzOyB9CisgICAgdW5zaWduZWQgcGFkZGVkV2lkdGgoKSBjb25zdCB7IHJldHVybiBwYWRk
ZWRCeXRlc1BlckxpbmUoKSAqIDggLyBibWlIZWFkZXIuYmlCaXRDb3VudDsgfQogICAgIHVuc2ln
bmVkIG51bVBpeGVscygpIGNvbnN0IHsgcmV0dXJuIHBhZGRlZFdpZHRoKCkgKiBoZWlnaHQoKTsg
fQotICAgIHVuc2lnbmVkIHBhZGRlZEJ5dGVzUGVyTGluZSgpIGNvbnN0IHsgcmV0dXJuIGlzMTZi
aXQoKSA/IHBhZGRlZFdpZHRoKCkgKiAyIDogd2lkdGgoKSAqIDQ7IH0KLSAgICB1bnNpZ25lZCBi
eXRlc1BlckxpbmUoKSBjb25zdCB7IHJldHVybiB3aWR0aCgpICogYm1pSGVhZGVyLmJpQml0Q291
bnQgLyA4OyB9fTsKK307CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEJp
dG1hcEluZm9faAo=
</data>
<flag name="review"
          id="52337"
          type_id="1"
          status="+"
          setter="aroben"
    />
    <flag name="commit-queue"
          id="52338"
          type_id="3"
          status="-"
          setter="aroben"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>65138</attachid>
            <date>2010-08-23 10:55:50 -0700</date>
            <delta_ts>2010-08-23 10:57:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-43724.patch</filename>
            <type>text/plain</type>
            <size>6049</size>
            <attacher name="Patrick R. Gansterer">paroga</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2NTgxNykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjYgQEAKKzIwMTAtMDgtMjMgIFBhdHJpY2sgR2Fuc3RlcmVyICA8cGFyb2dhQHBh
cm9nYS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgU3VwcG9ydCBhbGwgYXZhaWxhYmxlIGJpQml0Q291bnQgdmFsdWVzIGluIEJpdG1hcEluZm8K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQzNzI0CisK
KyAgICAgICAgQWRkIGFuIGVudW0gd2l0aCBhbGwgcG9zc2libGUgdmFsdWVzIGZvciBiaUJpdENv
dW50LgorICAgICAgICBBbHNvIHJlbW92ZSBleHBsaWNpdCBpbml0aWFsaXphdGlvbiBvZiBibWlI
ZWFkZXIgbWVtYmVycywKKyAgICAgICAgYmVjYXVzZSB0aGF0IGlzIGFscmVhZHkgZG9uZSBpbiB0
aGUgY29uc3RydWN0b3IuCisKKyAgICAgICAgKiBwbGF0Zm9ybS93aW4vQml0bWFwSW5mby5jcHA6
IEFkZGVkIHByb3BlcnR5IHN2bjplb2wtc3R5bGUuCisgICAgICAgIChXZWJDb3JlOjpiaXRtYXBJ
bmZvRm9yU2l6ZSk6CisgICAgICAgIChXZWJDb3JlOjpCaXRtYXBJbmZvOjpjcmVhdGUpOgorICAg
ICAgICAoV2ViQ29yZTo6Qml0bWFwSW5mbzo6Y3JlYXRlQm90dG9tVXApOgorICAgICAgICAqIHBs
YXRmb3JtL3dpbi9CaXRtYXBJbmZvLmg6IEFkZGVkIHByb3BlcnR5IHN2bjplb2wtc3R5bGUuCisg
ICAgICAgIChXZWJDb3JlOjpCaXRtYXBJbmZvOjopOgorICAgICAgICAoV2ViQ29yZTo6Qml0bWFw
SW5mbzo6Ynl0ZXNQZXJMaW5lKToKKyAgICAgICAgKFdlYkNvcmU6OkJpdG1hcEluZm86OnBhZGRl
ZEJ5dGVzUGVyTGluZSk6CisgICAgICAgIChXZWJDb3JlOjpCaXRtYXBJbmZvOjpwYWRkZWRXaWR0
aCk6CisgICAgICAgICogcGxhdGZvcm0vd2luL1BvcHVwTWVudVdpbi5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpQb3B1cE1lbnVXaW46OnBhaW50KToKKwogMjAxMC0wOC0yMyAgSWx5YSBUaWtob25v
dnNreSAgPGxvaXNsb0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgUGF2ZWwg
RmVsZG1hbi4KQEAgLTIxMDg3LDExICsyMTExMCwxMSBAQAogCiAgICAgICAgIFNldCBibWlIZWFk
ZXIuYmlTaXplIG9ubHkgYXQgY29uc3RydWN0b3IuCiAKLSAgICAgICAgKiBwbGF0Zm9ybS93aW4v
Qml0bWFwSW5mby5jcHA6IEFkZGVkIHByb3BlcnR5IHN2bjplb2wtc3R5bGUuCisgICAgICAgICog
cGxhdGZvcm0vd2luL0JpdG1hcEluZm8uY3BwOgogICAgICAgICAoV2ViQ29yZTo6Yml0bWFwSW5m
b0ZvclNpemUpOgogICAgICAgICAoV2ViQ29yZTo6Qml0bWFwSW5mbzo6Y3JlYXRlKToKICAgICAg
ICAgKFdlYkNvcmU6OkJpdG1hcEluZm86OmNyZWF0ZUJvdHRvbVVwKToKLSAgICAgICAgKiBwbGF0
Zm9ybS93aW4vQml0bWFwSW5mby5oOiBBZGRlZCBwcm9wZXJ0eSBzdm46ZW9sLXN0eWxlLgorICAg
ICAgICAqIHBsYXRmb3JtL3dpbi9CaXRtYXBJbmZvLmg6CiAgICAgICAgIChXZWJDb3JlOjpCaXRt
YXBJbmZvOjppczE2Yml0KToKICAgICAgICAgKFdlYkNvcmU6OkJpdG1hcEluZm86OmlzMzJiaXQp
OgogICAgICAgICAoV2ViQ29yZTo6Qml0bWFwSW5mbzo6d2lkdGgpOgpJbmRleDogV2ViQ29yZS9w
bGF0Zm9ybS93aW4vQml0bWFwSW5mby5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9y
bS93aW4vQml0bWFwSW5mby5jcHAJKHJldmlzaW9uIDY1ODEzKQorKysgV2ViQ29yZS9wbGF0Zm9y
bS93aW4vQml0bWFwSW5mby5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMzLDIxICszMywxNCBAQAog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLUJpdG1hcEluZm8gYml0bWFwSW5mb0ZvclNpemUoaW50
IHdpZHRoLCBpbnQgaGVpZ2h0LCBXT1JEIGJpdENvdW50KQorQml0bWFwSW5mbyBiaXRtYXBJbmZv
Rm9yU2l6ZShpbnQgd2lkdGgsIGludCBoZWlnaHQsIEJpdG1hcEluZm86OkJpdENvdW50IGJpdENv
dW50KQogewotICAgIEFTU0VSVF9BUkcoYml0Q291bnQsIGJpdENvdW50ID09IDE2IHx8IGJpdENv
dW50ID09IDMyKTsKLQogICAgIEJpdG1hcEluZm8gYml0bWFwSW5mbzsKICAgICBiaXRtYXBJbmZv
LmJtaUhlYWRlci5iaVdpZHRoICAgICAgICAgPSB3aWR0aDsKICAgICBiaXRtYXBJbmZvLmJtaUhl
YWRlci5iaUhlaWdodCAgICAgICAgPSBoZWlnaHQ7CiAgICAgYml0bWFwSW5mby5ibWlIZWFkZXIu
YmlQbGFuZXMgICAgICAgID0gMTsKICAgICBiaXRtYXBJbmZvLmJtaUhlYWRlci5iaUJpdENvdW50
ICAgICAgPSBiaXRDb3VudDsKICAgICBiaXRtYXBJbmZvLmJtaUhlYWRlci5iaUNvbXByZXNzaW9u
ICAgPSBCSV9SR0I7Ci0gICAgYml0bWFwSW5mby5ibWlIZWFkZXIuYmlTaXplSW1hZ2UgICAgID0g
MDsKLSAgICBiaXRtYXBJbmZvLmJtaUhlYWRlci5iaVhQZWxzUGVyTWV0ZXIgPSAwOwotICAgIGJp
dG1hcEluZm8uYm1pSGVhZGVyLmJpWVBlbHNQZXJNZXRlciA9IDA7Ci0gICAgYml0bWFwSW5mby5i
bWlIZWFkZXIuYmlDbHJVc2VkICAgICAgID0gMDsKLSAgICBiaXRtYXBJbmZvLmJtaUhlYWRlci5i
aUNsckltcG9ydGFudCAgPSAwOwogCiAgICAgcmV0dXJuIGJpdG1hcEluZm87CiB9CkBAIC01OCwx
MiArNTEsMTIgQEAgQml0bWFwSW5mbzo6Qml0bWFwSW5mbygpCiAgICAgYm1pSGVhZGVyLmJpU2l6
ZSA9IHNpemVvZihCSVRNQVBJTkZPSEVBREVSKTsKIH0KIAotQml0bWFwSW5mbyBCaXRtYXBJbmZv
OjpjcmVhdGUoY29uc3QgSW50U2l6ZSYgc2l6ZSwgV09SRCBiaXRDb3VudCkKK0JpdG1hcEluZm8g
Qml0bWFwSW5mbzo6Y3JlYXRlKGNvbnN0IEludFNpemUmIHNpemUsIEJpdENvdW50IGJpdENvdW50
KQogewogICAgIHJldHVybiBiaXRtYXBJbmZvRm9yU2l6ZShzaXplLndpZHRoKCksIHNpemUuaGVp
Z2h0KCksIGJpdENvdW50KTsKIH0KIAotQml0bWFwSW5mbyBCaXRtYXBJbmZvOjpjcmVhdGVCb3R0
b21VcChjb25zdCBJbnRTaXplJiBzaXplLCBXT1JEIGJpdENvdW50KQorQml0bWFwSW5mbyBCaXRt
YXBJbmZvOjpjcmVhdGVCb3R0b21VcChjb25zdCBJbnRTaXplJiBzaXplLCBCaXRDb3VudCBiaXRD
b3VudCkKIHsKICAgICByZXR1cm4gYml0bWFwSW5mb0ZvclNpemUoc2l6ZS53aWR0aCgpLCAtc2l6
ZS5oZWlnaHQoKSwgYml0Q291bnQpOwogfQoKUHJvcGVydHkgY2hhbmdlcyBvbjogV2ViQ29yZS9w
bGF0Zm9ybS93aW4vQml0bWFwSW5mby5jcHAKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpBZGRlZDogc3ZuOmVvbC1zdHls
ZQogICArIG5hdGl2ZQoKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vd2luL0JpdG1hcEluZm8uaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL3dpbi9CaXRtYXBJbmZvLmgJKHJldmlzaW9u
IDY1ODEzKQorKysgV2ViQ29yZS9wbGF0Zm9ybS93aW4vQml0bWFwSW5mby5oCSh3b3JraW5nIGNv
cHkpCkBAIC0zNSwxOSArMzUsMzAgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogc3RydWN0IEJp
dG1hcEluZm8gOiBwdWJsaWMgQklUTUFQSU5GTyB7CisgICAgZW51bSBCaXRDb3VudCB7CisgICAg
ICAgIEJpdENvdW50MSA9IDEsCisgICAgICAgIEJpdENvdW50NCA9IDQsCisgICAgICAgIEJpdENv
dW50OCA9IDgsCisgICAgICAgIEJpdENvdW50MTYgPSAxNiwKKyAgICAgICAgQml0Q291bnQyNCA9
IDI0LAorICAgICAgICBCaXRDb3VudDMyID0gMzIKKyAgICB9OworCiAgICAgQml0bWFwSW5mbygp
OwotICAgIHN0YXRpYyBCaXRtYXBJbmZvIGNyZWF0ZShjb25zdCBJbnRTaXplJiwgV09SRCBiaXRD
b3VudCA9IDMyKTsKLSAgICBzdGF0aWMgQml0bWFwSW5mbyBjcmVhdGVCb3R0b21VcChjb25zdCBJ
bnRTaXplJiwgV09SRCBiaXRDb3VudCA9IDMyKTsKKyAgICBzdGF0aWMgQml0bWFwSW5mbyBjcmVh
dGUoY29uc3QgSW50U2l6ZSYsIEJpdENvdW50IGJpdENvdW50ID0gQml0Q291bnQzMik7CisgICAg
c3RhdGljIEJpdG1hcEluZm8gY3JlYXRlQm90dG9tVXAoY29uc3QgSW50U2l6ZSYsIEJpdENvdW50
IGJpdENvdW50ID0gQml0Q291bnQzMik7CiAKICAgICBib29sIGlzMTZiaXQoKSBjb25zdCB7IHJl
dHVybiBibWlIZWFkZXIuYmlCaXRDb3VudCA9PSAxNjsgfQogICAgIGJvb2wgaXMzMmJpdCgpIGNv
bnN0IHsgcmV0dXJuIGJtaUhlYWRlci5iaUJpdENvdW50ID09IDMyOyB9CiAgICAgdW5zaWduZWQg
d2lkdGgoKSBjb25zdCB7IHJldHVybiBhYnMoYm1pSGVhZGVyLmJpV2lkdGgpOyB9CiAgICAgdW5z
aWduZWQgaGVpZ2h0KCkgY29uc3QgeyByZXR1cm4gYWJzKGJtaUhlYWRlci5iaUhlaWdodCk7IH0K
ICAgICBJbnRTaXplIHNpemUoKSBjb25zdCB7IHJldHVybiBJbnRTaXplKHdpZHRoKCksIGhlaWdo
dCgpKTsgfQotICAgIHVuc2lnbmVkIHBhZGRlZFdpZHRoKCkgY29uc3QgeyByZXR1cm4gaXMxNmJp
dCgpID8gKHdpZHRoKCkgKyAxKSAmIH4weDEgOiB3aWR0aCgpOyB9CisgICAgdW5zaWduZWQgYnl0
ZXNQZXJMaW5lKCkgY29uc3QgeyByZXR1cm4gKHdpZHRoKCkgKiBibWlIZWFkZXIuYmlCaXRDb3Vu
dCArIDcpIC8gODsgfQorICAgIHVuc2lnbmVkIHBhZGRlZEJ5dGVzUGVyTGluZSgpIGNvbnN0IHsg
cmV0dXJuIChieXRlc1BlckxpbmUoKSArIDMpICYgfjB4MzsgfQorICAgIHVuc2lnbmVkIHBhZGRl
ZFdpZHRoKCkgY29uc3QgeyByZXR1cm4gcGFkZGVkQnl0ZXNQZXJMaW5lKCkgKiA4IC8gYm1pSGVh
ZGVyLmJpQml0Q291bnQ7IH0KICAgICB1bnNpZ25lZCBudW1QaXhlbHMoKSBjb25zdCB7IHJldHVy
biBwYWRkZWRXaWR0aCgpICogaGVpZ2h0KCk7IH0KLSAgICB1bnNpZ25lZCBwYWRkZWRCeXRlc1Bl
ckxpbmUoKSBjb25zdCB7IHJldHVybiBpczE2Yml0KCkgPyBwYWRkZWRXaWR0aCgpICogMiA6IHdp
ZHRoKCkgKiA0OyB9Ci0gICAgdW5zaWduZWQgYnl0ZXNQZXJMaW5lKCkgY29uc3QgeyByZXR1cm4g
d2lkdGgoKSAqIGJtaUhlYWRlci5iaUJpdENvdW50IC8gODsgfX07Cit9OworCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBCaXRtYXBJbmZvX2gKClByb3BlcnR5IGNoYW5nZXMg
b246IFdlYkNvcmUvcGxhdGZvcm0vd2luL0JpdG1hcEluZm8uaApfX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkFkZGVkOiBz
dm46ZW9sLXN0eWxlCiAgICsgbmF0aXZlCgpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS93aW4vUG9w
dXBNZW51V2luLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL3dpbi9Qb3B1cE1l
bnVXaW4uY3BwCShyZXZpc2lvbiA2NTgxMykKKysrIFdlYkNvcmUvcGxhdGZvcm0vd2luL1BvcHVw
TWVudVdpbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU4MSw3ICs1ODEsNyBAQCB2b2lkIFBvcHVw
TWVudVdpbjo6cGFpbnQoY29uc3QgSW50UmVjdCYgCiAgICAgfQogICAgIGlmICghbV9ibXApIHsK
ICNpZiBPUyhXSU5DRSkKLSAgICAgICAgQml0bWFwSW5mbyBiaXRtYXBJbmZvID0gQml0bWFwSW5m
bzo6Y3JlYXRlQm90dG9tVXAoY2xpZW50UmVjdCgpLnNpemUoKSwgMTYpOworICAgICAgICBCaXRt
YXBJbmZvIGJpdG1hcEluZm8gPSBCaXRtYXBJbmZvOjpjcmVhdGVCb3R0b21VcChjbGllbnRSZWN0
KCkuc2l6ZSgpLCBCaXRDb3VudDE2KTsKICNlbHNlCiAgICAgICAgIEJpdG1hcEluZm8gYml0bWFw
SW5mbyA9IEJpdG1hcEluZm86OmNyZWF0ZUJvdHRvbVVwKGNsaWVudFJlY3QoKS5zaXplKCkpOwog
I2VuZGlmCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>65139</attachid>
            <date>2010-08-23 10:57:50 -0700</date>
            <delta_ts>2010-08-23 20:04:43 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-43724.patch</filename>
            <type>text/plain</type>
            <size>6061</size>
            <attacher name="Patrick R. Gansterer">paroga</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2NTgxNykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjYgQEAKKzIwMTAtMDgtMjMgIFBhdHJpY2sgR2Fuc3RlcmVyICA8cGFyb2dhQHBh
cm9nYS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgU3VwcG9ydCBhbGwgYXZhaWxhYmxlIGJpQml0Q291bnQgdmFsdWVzIGluIEJpdG1hcEluZm8K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQzNzI0CisK
KyAgICAgICAgQWRkIGFuIGVudW0gd2l0aCBhbGwgcG9zc2libGUgdmFsdWVzIGZvciBiaUJpdENv
dW50LgorICAgICAgICBBbHNvIHJlbW92ZSBleHBsaWNpdCBpbml0aWFsaXphdGlvbiBvZiBibWlI
ZWFkZXIgbWVtYmVycywKKyAgICAgICAgYmVjYXVzZSB0aGF0IGlzIGFscmVhZHkgZG9uZSBpbiB0
aGUgY29uc3RydWN0b3IuCisKKyAgICAgICAgKiBwbGF0Zm9ybS93aW4vQml0bWFwSW5mby5jcHA6
IEFkZGVkIHByb3BlcnR5IHN2bjplb2wtc3R5bGUuCisgICAgICAgIChXZWJDb3JlOjpiaXRtYXBJ
bmZvRm9yU2l6ZSk6CisgICAgICAgIChXZWJDb3JlOjpCaXRtYXBJbmZvOjpjcmVhdGUpOgorICAg
ICAgICAoV2ViQ29yZTo6Qml0bWFwSW5mbzo6Y3JlYXRlQm90dG9tVXApOgorICAgICAgICAqIHBs
YXRmb3JtL3dpbi9CaXRtYXBJbmZvLmg6IEFkZGVkIHByb3BlcnR5IHN2bjplb2wtc3R5bGUuCisg
ICAgICAgIChXZWJDb3JlOjpCaXRtYXBJbmZvOjopOgorICAgICAgICAoV2ViQ29yZTo6Qml0bWFw
SW5mbzo6Ynl0ZXNQZXJMaW5lKToKKyAgICAgICAgKFdlYkNvcmU6OkJpdG1hcEluZm86OnBhZGRl
ZEJ5dGVzUGVyTGluZSk6CisgICAgICAgIChXZWJDb3JlOjpCaXRtYXBJbmZvOjpwYWRkZWRXaWR0
aCk6CisgICAgICAgICogcGxhdGZvcm0vd2luL1BvcHVwTWVudVdpbi5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpQb3B1cE1lbnVXaW46OnBhaW50KToKKwogMjAxMC0wOC0yMyAgSWx5YSBUaWtob25v
dnNreSAgPGxvaXNsb0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgUGF2ZWwg
RmVsZG1hbi4KQEAgLTIxMDg3LDExICsyMTExMCwxMSBAQAogCiAgICAgICAgIFNldCBibWlIZWFk
ZXIuYmlTaXplIG9ubHkgYXQgY29uc3RydWN0b3IuCiAKLSAgICAgICAgKiBwbGF0Zm9ybS93aW4v
Qml0bWFwSW5mby5jcHA6IEFkZGVkIHByb3BlcnR5IHN2bjplb2wtc3R5bGUuCisgICAgICAgICog
cGxhdGZvcm0vd2luL0JpdG1hcEluZm8uY3BwOgogICAgICAgICAoV2ViQ29yZTo6Yml0bWFwSW5m
b0ZvclNpemUpOgogICAgICAgICAoV2ViQ29yZTo6Qml0bWFwSW5mbzo6Y3JlYXRlKToKICAgICAg
ICAgKFdlYkNvcmU6OkJpdG1hcEluZm86OmNyZWF0ZUJvdHRvbVVwKToKLSAgICAgICAgKiBwbGF0
Zm9ybS93aW4vQml0bWFwSW5mby5oOiBBZGRlZCBwcm9wZXJ0eSBzdm46ZW9sLXN0eWxlLgorICAg
ICAgICAqIHBsYXRmb3JtL3dpbi9CaXRtYXBJbmZvLmg6CiAgICAgICAgIChXZWJDb3JlOjpCaXRt
YXBJbmZvOjppczE2Yml0KToKICAgICAgICAgKFdlYkNvcmU6OkJpdG1hcEluZm86OmlzMzJiaXQp
OgogICAgICAgICAoV2ViQ29yZTo6Qml0bWFwSW5mbzo6d2lkdGgpOgpJbmRleDogV2ViQ29yZS9w
bGF0Zm9ybS93aW4vQml0bWFwSW5mby5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9y
bS93aW4vQml0bWFwSW5mby5jcHAJKHJldmlzaW9uIDY1ODEzKQorKysgV2ViQ29yZS9wbGF0Zm9y
bS93aW4vQml0bWFwSW5mby5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMzLDIxICszMywxNCBAQAog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLUJpdG1hcEluZm8gYml0bWFwSW5mb0ZvclNpemUoaW50
IHdpZHRoLCBpbnQgaGVpZ2h0LCBXT1JEIGJpdENvdW50KQorQml0bWFwSW5mbyBiaXRtYXBJbmZv
Rm9yU2l6ZShpbnQgd2lkdGgsIGludCBoZWlnaHQsIEJpdG1hcEluZm86OkJpdENvdW50IGJpdENv
dW50KQogewotICAgIEFTU0VSVF9BUkcoYml0Q291bnQsIGJpdENvdW50ID09IDE2IHx8IGJpdENv
dW50ID09IDMyKTsKLQogICAgIEJpdG1hcEluZm8gYml0bWFwSW5mbzsKICAgICBiaXRtYXBJbmZv
LmJtaUhlYWRlci5iaVdpZHRoICAgICAgICAgPSB3aWR0aDsKICAgICBiaXRtYXBJbmZvLmJtaUhl
YWRlci5iaUhlaWdodCAgICAgICAgPSBoZWlnaHQ7CiAgICAgYml0bWFwSW5mby5ibWlIZWFkZXIu
YmlQbGFuZXMgICAgICAgID0gMTsKICAgICBiaXRtYXBJbmZvLmJtaUhlYWRlci5iaUJpdENvdW50
ICAgICAgPSBiaXRDb3VudDsKICAgICBiaXRtYXBJbmZvLmJtaUhlYWRlci5iaUNvbXByZXNzaW9u
ICAgPSBCSV9SR0I7Ci0gICAgYml0bWFwSW5mby5ibWlIZWFkZXIuYmlTaXplSW1hZ2UgICAgID0g
MDsKLSAgICBiaXRtYXBJbmZvLmJtaUhlYWRlci5iaVhQZWxzUGVyTWV0ZXIgPSAwOwotICAgIGJp
dG1hcEluZm8uYm1pSGVhZGVyLmJpWVBlbHNQZXJNZXRlciA9IDA7Ci0gICAgYml0bWFwSW5mby5i
bWlIZWFkZXIuYmlDbHJVc2VkICAgICAgID0gMDsKLSAgICBiaXRtYXBJbmZvLmJtaUhlYWRlci5i
aUNsckltcG9ydGFudCAgPSAwOwogCiAgICAgcmV0dXJuIGJpdG1hcEluZm87CiB9CkBAIC01OCwx
MiArNTEsMTIgQEAgQml0bWFwSW5mbzo6Qml0bWFwSW5mbygpCiAgICAgYm1pSGVhZGVyLmJpU2l6
ZSA9IHNpemVvZihCSVRNQVBJTkZPSEVBREVSKTsKIH0KIAotQml0bWFwSW5mbyBCaXRtYXBJbmZv
OjpjcmVhdGUoY29uc3QgSW50U2l6ZSYgc2l6ZSwgV09SRCBiaXRDb3VudCkKK0JpdG1hcEluZm8g
Qml0bWFwSW5mbzo6Y3JlYXRlKGNvbnN0IEludFNpemUmIHNpemUsIEJpdENvdW50IGJpdENvdW50
KQogewogICAgIHJldHVybiBiaXRtYXBJbmZvRm9yU2l6ZShzaXplLndpZHRoKCksIHNpemUuaGVp
Z2h0KCksIGJpdENvdW50KTsKIH0KIAotQml0bWFwSW5mbyBCaXRtYXBJbmZvOjpjcmVhdGVCb3R0
b21VcChjb25zdCBJbnRTaXplJiBzaXplLCBXT1JEIGJpdENvdW50KQorQml0bWFwSW5mbyBCaXRt
YXBJbmZvOjpjcmVhdGVCb3R0b21VcChjb25zdCBJbnRTaXplJiBzaXplLCBCaXRDb3VudCBiaXRD
b3VudCkKIHsKICAgICByZXR1cm4gYml0bWFwSW5mb0ZvclNpemUoc2l6ZS53aWR0aCgpLCAtc2l6
ZS5oZWlnaHQoKSwgYml0Q291bnQpOwogfQoKUHJvcGVydHkgY2hhbmdlcyBvbjogV2ViQ29yZS9w
bGF0Zm9ybS93aW4vQml0bWFwSW5mby5jcHAKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpBZGRlZDogc3ZuOmVvbC1zdHls
ZQogICArIG5hdGl2ZQoKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vd2luL0JpdG1hcEluZm8uaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL3dpbi9CaXRtYXBJbmZvLmgJKHJldmlzaW9u
IDY1ODEzKQorKysgV2ViQ29yZS9wbGF0Zm9ybS93aW4vQml0bWFwSW5mby5oCSh3b3JraW5nIGNv
cHkpCkBAIC0zNSwxOSArMzUsMzAgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogc3RydWN0IEJp
dG1hcEluZm8gOiBwdWJsaWMgQklUTUFQSU5GTyB7CisgICAgZW51bSBCaXRDb3VudCB7CisgICAg
ICAgIEJpdENvdW50MSA9IDEsCisgICAgICAgIEJpdENvdW50NCA9IDQsCisgICAgICAgIEJpdENv
dW50OCA9IDgsCisgICAgICAgIEJpdENvdW50MTYgPSAxNiwKKyAgICAgICAgQml0Q291bnQyNCA9
IDI0LAorICAgICAgICBCaXRDb3VudDMyID0gMzIKKyAgICB9OworCiAgICAgQml0bWFwSW5mbygp
OwotICAgIHN0YXRpYyBCaXRtYXBJbmZvIGNyZWF0ZShjb25zdCBJbnRTaXplJiwgV09SRCBiaXRD
b3VudCA9IDMyKTsKLSAgICBzdGF0aWMgQml0bWFwSW5mbyBjcmVhdGVCb3R0b21VcChjb25zdCBJ
bnRTaXplJiwgV09SRCBiaXRDb3VudCA9IDMyKTsKKyAgICBzdGF0aWMgQml0bWFwSW5mbyBjcmVh
dGUoY29uc3QgSW50U2l6ZSYsIEJpdENvdW50IGJpdENvdW50ID0gQml0Q291bnQzMik7CisgICAg
c3RhdGljIEJpdG1hcEluZm8gY3JlYXRlQm90dG9tVXAoY29uc3QgSW50U2l6ZSYsIEJpdENvdW50
IGJpdENvdW50ID0gQml0Q291bnQzMik7CiAKICAgICBib29sIGlzMTZiaXQoKSBjb25zdCB7IHJl
dHVybiBibWlIZWFkZXIuYmlCaXRDb3VudCA9PSAxNjsgfQogICAgIGJvb2wgaXMzMmJpdCgpIGNv
bnN0IHsgcmV0dXJuIGJtaUhlYWRlci5iaUJpdENvdW50ID09IDMyOyB9CiAgICAgdW5zaWduZWQg
d2lkdGgoKSBjb25zdCB7IHJldHVybiBhYnMoYm1pSGVhZGVyLmJpV2lkdGgpOyB9CiAgICAgdW5z
aWduZWQgaGVpZ2h0KCkgY29uc3QgeyByZXR1cm4gYWJzKGJtaUhlYWRlci5iaUhlaWdodCk7IH0K
ICAgICBJbnRTaXplIHNpemUoKSBjb25zdCB7IHJldHVybiBJbnRTaXplKHdpZHRoKCksIGhlaWdo
dCgpKTsgfQotICAgIHVuc2lnbmVkIHBhZGRlZFdpZHRoKCkgY29uc3QgeyByZXR1cm4gaXMxNmJp
dCgpID8gKHdpZHRoKCkgKyAxKSAmIH4weDEgOiB3aWR0aCgpOyB9CisgICAgdW5zaWduZWQgYnl0
ZXNQZXJMaW5lKCkgY29uc3QgeyByZXR1cm4gKHdpZHRoKCkgKiBibWlIZWFkZXIuYmlCaXRDb3Vu
dCArIDcpIC8gODsgfQorICAgIHVuc2lnbmVkIHBhZGRlZEJ5dGVzUGVyTGluZSgpIGNvbnN0IHsg
cmV0dXJuIChieXRlc1BlckxpbmUoKSArIDMpICYgfjB4MzsgfQorICAgIHVuc2lnbmVkIHBhZGRl
ZFdpZHRoKCkgY29uc3QgeyByZXR1cm4gcGFkZGVkQnl0ZXNQZXJMaW5lKCkgKiA4IC8gYm1pSGVh
ZGVyLmJpQml0Q291bnQ7IH0KICAgICB1bnNpZ25lZCBudW1QaXhlbHMoKSBjb25zdCB7IHJldHVy
biBwYWRkZWRXaWR0aCgpICogaGVpZ2h0KCk7IH0KLSAgICB1bnNpZ25lZCBwYWRkZWRCeXRlc1Bl
ckxpbmUoKSBjb25zdCB7IHJldHVybiBpczE2Yml0KCkgPyBwYWRkZWRXaWR0aCgpICogMiA6IHdp
ZHRoKCkgKiA0OyB9Ci0gICAgdW5zaWduZWQgYnl0ZXNQZXJMaW5lKCkgY29uc3QgeyByZXR1cm4g
d2lkdGgoKSAqIGJtaUhlYWRlci5iaUJpdENvdW50IC8gODsgfX07Cit9OworCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBCaXRtYXBJbmZvX2gKClByb3BlcnR5IGNoYW5nZXMg
b246IFdlYkNvcmUvcGxhdGZvcm0vd2luL0JpdG1hcEluZm8uaApfX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkFkZGVkOiBz
dm46ZW9sLXN0eWxlCiAgICsgbmF0aXZlCgpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS93aW4vUG9w
dXBNZW51V2luLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL3dpbi9Qb3B1cE1l
bnVXaW4uY3BwCShyZXZpc2lvbiA2NTgxMykKKysrIFdlYkNvcmUvcGxhdGZvcm0vd2luL1BvcHVw
TWVudVdpbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU4MSw3ICs1ODEsNyBAQCB2b2lkIFBvcHVw
TWVudVdpbjo6cGFpbnQoY29uc3QgSW50UmVjdCYgCiAgICAgfQogICAgIGlmICghbV9ibXApIHsK
ICNpZiBPUyhXSU5DRSkKLSAgICAgICAgQml0bWFwSW5mbyBiaXRtYXBJbmZvID0gQml0bWFwSW5m
bzo6Y3JlYXRlQm90dG9tVXAoY2xpZW50UmVjdCgpLnNpemUoKSwgMTYpOworICAgICAgICBCaXRt
YXBJbmZvIGJpdG1hcEluZm8gPSBCaXRtYXBJbmZvOjpjcmVhdGVCb3R0b21VcChjbGllbnRSZWN0
KCkuc2l6ZSgpLCBCaXRtYXBJbmZvOjpCaXRDb3VudDE2KTsKICNlbHNlCiAgICAgICAgIEJpdG1h
cEluZm8gYml0bWFwSW5mbyA9IEJpdG1hcEluZm86OmNyZWF0ZUJvdHRvbVVwKGNsaWVudFJlY3Qo
KS5zaXplKCkpOwogI2VuZGlmCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>