<?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>47063</bug_id>
          
          <creation_ts>2010-10-03 12:13:02 -0700</creation_ts>
          <short_desc>Fix broken C++ in PODInterval and PODIntervalTree</short_desc>
          <delta_ts>2010-10-04 23:10:23 -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>1</everconfirmed>
          <reporter name="Nico Weber">thakis</reporter>
          <assigned_to name="Nico Weber">thakis</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>dglazkov</cc>
    
    <cc>evan</cc>
    
    <cc>hans</cc>
    
    <cc>kbr</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>288778</commentid>
    <comment_count>0</comment_count>
    <who name="Nico Weber">thakis</who>
    <bug_when>2010-10-03 12:13:02 -0700</bug_when>
    <thetext>Fix broken C++ in PODInterval and PODIntervalTree</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>288781</commentid>
    <comment_count>1</comment_count>
      <attachid>69592</attachid>
    <who name="Nico Weber">thakis</who>
    <bug_when>2010-10-03 12:50:37 -0700</bug_when>
    <thetext>Created attachment 69592
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>288783</commentid>
    <comment_count>2</comment_count>
    <who name="Nico Weber">thakis</who>
    <bug_when>2010-10-03 12:52:28 -0700</bug_when>
    <thetext>kbr: Please review.

evan, hans: fyi</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>288784</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-10-03 13:12:46 -0700</bug_when>
    <thetext>Attachment 69592 did not build on chromium:
Build output: http://queues.webkit.org/results/4162058</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>288785</commentid>
    <comment_count>4</comment_count>
    <who name="Nico Weber">thakis</who>
    <bug_when>2010-10-03 13:21:53 -0700</bug_when>
    <thetext>dglazkov: Which gcc version is cr-linux running? Builds fine for me locally with 4.0.1 and 4.2.1.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>288951</commentid>
    <comment_count>5</comment_count>
    <who name="Nico Weber">thakis</who>
    <bug_when>2010-10-04 08:45:31 -0700</bug_when>
    <thetext>Turns out function templates can&apos;t be partially specialized. Please refrain from reviewing…</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>288963</commentid>
    <comment_count>6</comment_count>
    <who name="Nico Weber">thakis</who>
    <bug_when>2010-10-04 09:07:00 -0700</bug_when>
    <thetext>Thinking about this, the options seem to be:

1. Convert the function template into a class template, which can then use partial specialization like this:
template &lt;class T&gt;
struct ValueToString {
    static String value(const T&amp; t);
};
template &lt;&gt;
struct&lt;int&gt; ValueToString {
    static String value(const int&amp; t) { return intToStr(t); }
};

etc.


2. Use argument-dependent lookup for the function. ADL only works for class types, so I&apos;d need to declare the function for all basic types, and could then use ADL for the rest.


3. Just delete this code. It&apos;s only used for debugging and probably isn&apos;t worth all the complexity.


I think we should go with 3. Comments?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>288965</commentid>
    <comment_count>7</comment_count>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2010-10-04 09:09:29 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; Thinking about this, the options seem to be:
&gt; 
&gt; 1. Convert the function template into a class template, which can then use partial specialization like this:
&gt; template &lt;class T&gt;
&gt; struct ValueToString {
&gt;     static String value(const T&amp; t);
&gt; };
&gt; template &lt;&gt;
&gt; struct&lt;int&gt; ValueToString {
&gt;     static String value(const int&amp; t) { return intToStr(t); }
&gt; };
&gt; 
&gt; etc.
&gt; 
&gt; 
&gt; 2. Use argument-dependent lookup for the function. ADL only works for class types, so I&apos;d need to declare the function for all basic types, and could then use ADL for the rest.
&gt; 
&gt; 
&gt; 3. Just delete this code. It&apos;s only used for debugging and probably isn&apos;t worth all the complexity.
&gt; 
&gt; 
&gt; I think we should go with 3. Comments?

I do not support simply deleting this code. It has occasionally proven essential for debugging purposes. The original code used iostreams and overloaded operator&lt;&lt; to provide printing functionality. Either option (1) or (2) sounds fine. I&apos;m happy to make the change to (1) if you want.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>288979</commentid>
    <comment_count>8</comment_count>
      <attachid>69644</attachid>
    <who name="Nico Weber">thakis</who>
    <bug_when>2010-10-04 09:55:27 -0700</bug_when>
    <thetext>Created attachment 69644
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>288980</commentid>
    <comment_count>9</comment_count>
    <who name="Nico Weber">thakis</who>
    <bug_when>2010-10-04 09:56:07 -0700</bug_when>
    <thetext>Approach 1 it is.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>289009</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-10-04 11:08:27 -0700</bug_when>
    <thetext>Attachment 69644 did not build on chromium:
Build output: http://queues.webkit.org/results/4173065</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>289062</commentid>
    <comment_count>11</comment_count>
      <attachid>69664</attachid>
    <who name="Nico Weber">thakis</who>
    <bug_when>2010-10-04 12:16:57 -0700</bug_when>
    <thetext>Created attachment 69664
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>289109</commentid>
    <comment_count>12</comment_count>
      <attachid>69664</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2010-10-04 13:39:59 -0700</bug_when>
    <thetext>Comment on attachment 69664
Patch

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

Code changes look fine; please note minor documentation changes needed.

&gt; WebCore/platform/graphics/gpu/PODInterval.h:64
&gt; +//       String string(const T&amp; t);

This should be documented as being static, as is used in the code.

&gt; WebCore/platform/graphics/gpu/PODInterval.h:67
&gt; +//       String string(const UserData&amp; t);

static.

&gt; WebCore/platform/graphics/gpu/PODRedBlackTree.h:48
&gt; +//       String string(const T&amp; t);

static.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>289115</commentid>
    <comment_count>13</comment_count>
      <attachid>69677</attachid>
    <who name="Nico Weber">thakis</who>
    <bug_when>2010-10-04 13:43:44 -0700</bug_when>
    <thetext>Created attachment 69677
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>289128</commentid>
    <comment_count>14</comment_count>
      <attachid>69677</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2010-10-04 14:07:25 -0700</bug_when>
    <thetext>Comment on attachment 69677
Patch

Looks fine. I think you need to wait for the r+ before marking it cq+, though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>289460</commentid>
    <comment_count>15</comment_count>
      <attachid>69677</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-10-04 23:10:16 -0700</bug_when>
    <thetext>Comment on attachment 69677
Patch

Clearing flags on attachment: 69677

Committed r69081: &lt;http://trac.webkit.org/changeset/69081&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>289461</commentid>
    <comment_count>16</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-10-04 23:10:23 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>69592</attachid>
            <date>2010-10-03 12:50:37 -0700</date>
            <delta_ts>2010-10-04 09:55:23 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-47063-20101003125023.patch</filename>
            <type>text/plain</type>
            <size>6895</size>
            <attacher name="Nico Weber">thakis</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
MDViOTc3NTc3NjQwNTgwMDgyMjQyYzQ3MDAzZGVhYWJmOThlMTU3MS4uZjA1ZGM5MGNkMzc2YjRi
OTQ0Yjc3NGJhNGZhMzkwOWU4ZGVhZmEzZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAxMC0xMC0wMyAgTmlj
b2xhcyBXZWJlciAgPHRoYWtpc0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRml4IGJyb2tlbiBDKysgaW4gUE9ESW50ZXJ2YWwg
YW5kIFBPREludGVydmFsVHJlZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NDcwNjMKKworICAgICAgICBTZWUgaHR0cDovL2NsYW5nLmxsdm0ub3JnL2Nv
bXBhdGliaWxpdHkuaHRtbCNkZXBfbG9va3VwIC4gU2luY2UKKyAgICAgICAgdmFsdWVUb1N0cmlu
ZyBuZWVkcyB0byB3b3JrIHdpdGggbm9uLWNsYXNzIHR5cGVzLCBpdCBuZWVkcyB0byBiZQorICAg
ICAgICBkZWNsYXJlZCBiZWZvcmUgaXQncyB1c2VkLiBBbmQgc2luY2UgaXQgbmVlZHMgdG8gaGFu
ZGxlIG1hbnkgdHlwZXMsIGl0CisgICAgICAgIG5lZWRzIHRvIGJlIGEgdGVtcGxhdGUgZnVuY3Rp
b24sIGZvciB3aGljaCBjbGllbnRzIHdpbGwgbmVlZCB0bworICAgICAgICBwcm92aWRlIHNwZWNp
YWxpemF0aW9ucyBmb3IgdGhlIHR5cGVzIHRoZXkgY2FyZSBhYm91dC4KKworICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2dwdS9QT0RJbnRlcnZhbC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2dwdS9QT0RJbnRlcnZhbFRyZWUuaDoKKyAgICAgICAgKFdlYkNvcmU6OlVzZXJEYXRh
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9ncHUvUE9EUmVkQmxhY2tUcmVlLmg6CisK
IDIwMTAtMTAtMDMgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KIAogICAgICAgICBS
ZXZpZXdlZCBieSBIb2xnZXIgRnJleXRoZXIuCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2dwdS9QT0RJbnRlcnZhbC5oIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9n
cHUvUE9ESW50ZXJ2YWwuaAppbmRleCA5ZGY2OWJhY2E1MWI4YTRkMmZhODVkNGM2MTM5YTBiMDMw
OTI4MGYyLi42MjgwNjIwOGY0ZTczMDdlN2FkNjY0ZDQxYzQ3MTQ0YzAyZmM2NzRlIDEwMDY0NAot
LS0gYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9QT0RJbnRlcnZhbC5oCisrKyBiL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L1BPREludGVydmFsLmgKQEAgLTU5LDEyICs1OSwx
NyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAvLyBJbiBkZWJ1ZyBtb2RlLCBwcmludGluZyBvZiBp
bnRlcnZhbHMgYW5kIHRoZSBkYXRhIHRoZXkgY29udGFpbiBpcwogLy8gZW5hYmxlZC4gVGhpcyBy
ZXF1aXJlcyB0aGUgZm9sbG93aW5nIGZ1bmN0aW9ucyB0byBiZSBhdmFpbGFibGU6CiAvLwotLy8g
ICBTdHJpbmcgdmFsdWVUb1N0cmluZyhjb25zdCBUJik7Ci0vLyAgIFN0cmluZyB2YWx1ZVRvU3Ry
aW5nKGNvbnN0IFVzZXJEYXRhJik7CisvLyAgIFN0cmluZyBXZWJDb3JlOjp2YWx1ZVRvU3RyaW5n
KGNvbnN0IFQmKTsKKy8vICAgU3RyaW5nIFdlYkNvcmU6OnZhbHVlVG9TdHJpbmcoY29uc3QgVXNl
ckRhdGEmKTsKIC8vCiAvLyBOb3RlIHRoYXQgdGhpcyBjbGFzcyByZXF1aXJlcyBhIGNvcHkgY29u
c3RydWN0b3IgYW5kIGFzc2lnbm1lbnQKIC8vIG9wZXJhdG9yIGluIG9yZGVyIHRvIGJlIHN0b3Jl
ZCBpbiB0aGUgcmVkLWJsYWNrIHRyZWUuCiAKKyNpZm5kZWYgTkRFQlVHCit0ZW1wbGF0ZTxjbGFz
cyBUPgorU3RyaW5nIHZhbHVlVG9TdHJpbmcoY29uc3QgVCYgdmFsdWUpOworI2VuZGlmCisKIHRl
bXBsYXRlPGNsYXNzIFQsIGNsYXNzIFVzZXJEYXRhID0gdm9pZCo+CiBjbGFzcyBQT0RJbnRlcnZh
bCB7CiBwdWJsaWM6CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9Q
T0RJbnRlcnZhbFRyZWUuaCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L1BPREludGVy
dmFsVHJlZS5oCmluZGV4IGMwYTg2YWEyM2M0ZmQ1ZTRiYWM4Mzc4OTU1NjFjNWVhMTcxZThlMWUu
LjY2ZjYyYTBmMDkzYWI2OGFhODkyOGQxZmNlNDEyNDc5NWFmMGMyNTUgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L1BPREludGVydmFsVHJlZS5oCisrKyBiL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L1BPREludGVydmFsVHJlZS5oCkBAIC0zNSw2ICszNSwx
MSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKKyNpZm5kZWYgTkRFQlVHCit0ZW1wbGF0ZTxj
bGFzcyBUPgorU3RyaW5nIHZhbHVlVG9TdHJpbmcoY29uc3QgVCYgdmFsdWUpOworI2VuZGlmCisK
IC8vIEFuIGludGVydmFsIHRyZWUsIHdoaWNoIGlzIGEgZm9ybSBvZiBhdWdtZW50ZWQgcmVkLWJs
YWNrIHRyZWUuIEl0CiAvLyBzdXBwb3J0cyBlZmZpY2llbnQgKE8obGcgbikpIGluc2VydGlvbiwg
cmVtb3ZhbCBhbmQgcXVlcnlpbmcgb2YKIC8vIGludGVydmFscyBpbiB0aGUgdHJlZS4KQEAgLTIw
Niw3ICsyMTEsNyBAQCBwcml2YXRlOgogI2lmbmRlZiBOREVCVUcKIC8vIFN1cHBvcnQgZm9yIHBy
aW50aW5nIFBPREludGVydmFscyBhdCB0aGUgUE9EUmVkQmxhY2tUcmVlIGxldmVsLgogdGVtcGxh
dGU8Y2xhc3MgVCwgY2xhc3MgVXNlckRhdGE+Ci1TdHJpbmcgdmFsdWVUb1N0cmluZyhjb25zdCBQ
T0RJbnRlcnZhbDxULCBVc2VyRGF0YT4mIGludGVydmFsKQorU3RyaW5nIHZhbHVlVG9TdHJpbmc8
UE9ESW50ZXJ2YWw8VCwgVXNlckRhdGE+ID4oY29uc3QgUE9ESW50ZXJ2YWw8VCwgVXNlckRhdGE+
JiBpbnRlcnZhbCkKIHsKICAgICByZXR1cm4gaW50ZXJ2YWwudG9TdHJpbmcoKTsKIH0KZGlmZiAt
LWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L1BPRFJlZEJsYWNrVHJlZS5oIGIv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvUE9EUmVkQmxhY2tUcmVlLmgKaW5kZXggOWIw
MjAzNzBjZmM4OWM1MzExMjRhZGJmY2E5ODM5OWFhMzA3ZjNiYi4uNjQ0OGFiYjJjYmRlMDFkZGQ0
MzA4MzViOWUxMDMxZjFkZDljZTY5ZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9ncHUvUE9EUmVkQmxhY2tUcmVlLmgKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9ncHUvUE9EUmVkQmxhY2tUcmVlLmgKQEAgLTQ0LDcgKzQ0LDcgQEAKIC8vIEluIGRlYnVnIG1v
ZGUsIHByaW50aW5nIG9mIHRoZSBkYXRhIGNvbnRhaW5lZCBpbiB0aGUgdHJlZSBpcwogLy8gZW5h
YmxlZC4gVGhpcyByZXF1aXJlcyB0aGUgZm9sbG93aW5nIGZ1bmN0aW9uIHRvIGJlIGF2YWlsYWJs
ZToKIC8vCi0vLyAgIFN0cmluZyB2YWx1ZVRvU3RyaW5nKGNvbnN0IFQmKTsKKy8vICAgU3RyaW5n
IFdlYkNvcmU6OnZhbHVlVG9TdHJpbmcoY29uc3QgVCYpOwogLy8KIC8vIE5vdGUgdGhhdCB3aGVu
IGNvbXBsZXggdHlwZXMgYXJlIHN0b3JlZCBpbiB0aGlzIHJlZC9ibGFjayB0cmVlLCBpdAogLy8g
aXMgcG9zc2libGUgdGhhdCBzaW5nbGUgaW52b2NhdGlvbnMgb2YgdGhlICI8IiBhbmQgIj09IiBv
cGVyYXRvcnMKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9XZWJLaXQv
Y2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IGU2YzgwMGI2ZmVjOGJjY2FmODhiYzBjYjViZTcwZmIx
YjJkZTAxNzkuLjc0MTA4MDgyZmJiNjUzYTllNGU5YWNiOTllYWZjMzdhMGZjZjg3Y2IgMTAwNjQ0
Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L2Nocm9taXVtL0No
YW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDEwLTEwLTAzICBOaWNvbGFzIFdlYmVyICA8dGhh
a2lzQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBGaXggYnJva2VuIEMrKyBpbiBQT0RJbnRlcnZhbCBhbmQgUE9ESW50ZXJ2YWxU
cmVlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NzA2
MworCisgICAgICAgIENoYW5nZSBmdW5jdGlvbnMgdG8gYmUgZnVuY3Rpb24gdGVtcGxhdGUgc3Bl
Y2lhbGl6YXRpb25zLCBsaWtlIGl0J3MKKyAgICAgICAgbm93IHJlcXVpcmVkIGJ5IFBPREludGVy
dmFsVHJlZSBhbmQgZnJpZW5kcy4KKworICAgICAgICAqIHRlc3RzL1BPREludGVydmFsVHJlZVRl
c3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6ZmxvYXQpOgorICAgICAgICAoV2ViQ29yZTo6dm9p
ZCk6CisgICAgICAgIChXZWJDb3JlOjppbnQpOgorICAgICAgICAoV2ViQ29yZTo6VXNlckRhdGEx
KToKKyAgICAgICAgKFdlYkNvcmU6OkVuZHBvaW50VHlwZTEpOgorCiAyMDEwLTEwLTAxICBNaWhh
aSBQYXJwYXJpdGEgIDxtaWhhaXBAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5
IE5hdGUgQ2hhcGluLgpkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL1BPREludGVy
dmFsVHJlZVRlc3QuY3BwIGIvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL1BPREludGVydmFsVHJlZVRl
c3QuY3BwCmluZGV4IDNhOGEyNDViYjIzYWQyY2NiM2M3MmYzNjI4YTkzYzBlODE1YzRmMTQuLjQy
NmE1ZWNkODEzYzY5ZDMyNDg1NGY3NjhiNWY4ZGY3MDQ1ZDUwZmEgMTAwNjQ0Ci0tLSBhL1dlYktp
dC9jaHJvbWl1bS90ZXN0cy9QT0RJbnRlcnZhbFRyZWVUZXN0LmNwcAorKysgYi9XZWJLaXQvY2hy
b21pdW0vdGVzdHMvUE9ESW50ZXJ2YWxUcmVlVGVzdC5jcHAKQEAgLTQxLDEyICs0MSwxNCBAQCB1
c2luZyBUcmVlVGVzdEhlbHBlcnM6OmdlbmVyYXRlU2VlZDsKIHVzaW5nIFRyZWVUZXN0SGVscGVy
czo6aW5pdFJhbmRvbTsKIHVzaW5nIFRyZWVUZXN0SGVscGVyczo6bmV4dFJhbmRvbTsKIAotaW5s
aW5lIFN0cmluZyB2YWx1ZVRvU3RyaW5nKGNvbnN0IGZsb2F0JiB2YWx1ZSkKK3RlbXBsYXRlPD4K
K1N0cmluZyB2YWx1ZVRvU3RyaW5nPGZsb2F0Pihjb25zdCBmbG9hdCYgdmFsdWUpCiB7CiAgICAg
cmV0dXJuIFN0cmluZzo6bnVtYmVyKHZhbHVlKTsKIH0KIAotaW5saW5lIFN0cmluZyB2YWx1ZVRv
U3RyaW5nKHZvaWQqIGNvbnN0JiB2YWx1ZSkKK3RlbXBsYXRlPD4KK1N0cmluZyB2YWx1ZVRvU3Ry
aW5nPHZvaWQqPih2b2lkKiBjb25zdCYgdmFsdWUpCiB7CiAgICAgcmV0dXJuIFN0cmluZzo6Zm9y
bWF0KCIweCVwIiwgdmFsdWUpOwogfQpAQCAtODIsNiArODQsMTIgQEAgVEVTVChQT0RJbnRlcnZh
bFRyZWVUZXN0LCBUZXN0UXVlcnlBZ2FpbnN0WmVyb1NpemVJbnRlcnZhbCkKICAgICBFWFBFQ1Rf
RVEoNCwgcmVzdWx0WzBdLmhpZ2goKSk7CiB9CiAKK3RlbXBsYXRlPD4KK1N0cmluZyB2YWx1ZVRv
U3RyaW5nPGludCo+KGludCogY29uc3QmIHZhbHVlKQoreworICAgIHJldHVybiBTdHJpbmc6OmZv
cm1hdCgiMHglcCIsIHZhbHVlKTsKK30KKwogVEVTVChQT0RJbnRlcnZhbFRyZWVUZXN0LCBUZXN0
RHVwbGljYXRlRWxlbWVudEluc2VydGlvbikKIHsKICAgICBQT0RJbnRlcnZhbFRyZWU8ZmxvYXQs
IGludCo+IHRyZWU7CkBAIC0xMTMsMTMgKzEyMSwxNCBAQCBwdWJsaWM6CiAgICAgaW50IGI7CiB9
OwogCi1pbmxpbmUgU3RyaW5nIHZhbHVlVG9TdHJpbmcoY29uc3QgVXNlckRhdGExJiB2YWx1ZSkK
K30gLy8gYW5vbnltb3VzIG5hbWVzcGFjZQorCit0ZW1wbGF0ZTw+CitTdHJpbmcgdmFsdWVUb1N0
cmluZzxVc2VyRGF0YTE+KGNvbnN0IFVzZXJEYXRhMSYgdmFsdWUpCiB7CiAgICAgcmV0dXJuIFN0
cmluZygiW1VzZXJEYXRhMSBhPSIpICsgU3RyaW5nOjpudW1iZXIodmFsdWUuYSkgKyAiIGI9IiAr
IFN0cmluZzo6bnVtYmVyKHZhbHVlLmIpICsgIl0iOwogfQogCi19IC8vIGFub255bW91cyBuYW1l
c3BhY2UKLQogVEVTVChQT0RJbnRlcnZhbFRyZWVUZXN0LCBUZXN0SW5zZXJ0aW9uT2ZDb21wbGV4
VXNlckRhdGEpCiB7CiAgICAgUE9ESW50ZXJ2YWxUcmVlPGZsb2F0LCBVc2VyRGF0YTE+IHRyZWU7
CkBAIC0xNjUsMTMgKzE3NCwxNCBAQCBwcml2YXRlOgogICAgIGJvb2wgb3BlcmF0b3IhPShjb25z
dCBFbmRwb2ludFR5cGUxJiBvdGhlcik7CiB9OwogCi1pbmxpbmUgU3RyaW5nIHZhbHVlVG9TdHJp
bmcoY29uc3QgRW5kcG9pbnRUeXBlMSYgdmFsdWUpCit9IC8vIGFub255bW91cyBuYW1lc3BhY2UK
KwordGVtcGxhdGU8PgorU3RyaW5nIHZhbHVlVG9TdHJpbmc8RW5kcG9pbnRUeXBlMT4oY29uc3Qg
RW5kcG9pbnRUeXBlMSYgdmFsdWUpCiB7CiAgICAgcmV0dXJuIFN0cmluZygiW0VuZHBvaW50VHlw
ZTEgdmFsdWU9IikgKyBTdHJpbmc6Om51bWJlcih2YWx1ZS52YWx1ZSgpKSArICJdIjsKIH0KIAot
fSAvLyBhbm9ueW1vdXMgbmFtZXNwYWNlCi0KIFRFU1QoUE9ESW50ZXJ2YWxUcmVlVGVzdCwgVGVz
dFRyZWVEb2VzTm90UmVxdWlyZU1vc3RPcGVyYXRvcnMpCiB7CiAgICAgUE9ESW50ZXJ2YWxUcmVl
PEVuZHBvaW50VHlwZTE+IHRyZWU7CkBAIC0xODIsNiArMTkyLDEyIEBAIFRFU1QoUE9ESW50ZXJ2
YWxUcmVlVGVzdCwgVGVzdFRyZWVEb2VzTm90UmVxdWlyZU1vc3RPcGVyYXRvcnMpCiAvLyBVbmNv
bW1lbnQgdG8gZGVidWcgYSBmYWlsdXJlIG9mIHRoZSBpbnNlcnRpb24gYW5kIGRlbGV0aW9uIHRl
c3QuCiAvLyAjZGVmaW5lIERFQlVHX0lOU0VSVElPTl9BTkRfREVMRVRJT05fVEVTVAogCit0ZW1w
bGF0ZTw+CitTdHJpbmcgdmFsdWVUb1N0cmluZzxpbnQ+KGNvbnN0IGludCYgdmFsdWUpCit7Cisg
ICAgcmV0dXJuIFN0cmluZzo6bnVtYmVyKHZhbHVlKTsKK30KKwogbmFtZXNwYWNlIHsKIAogdm9p
ZCBJbnNlcnRpb25BbmREZWxldGlvblRlc3QoaW50MzJfdCBzZWVkLCBpbnQgdHJlZVNpemUpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>69644</attachid>
            <date>2010-10-04 09:55:27 -0700</date>
            <delta_ts>2010-10-04 12:16:53 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-47063-20101004095525.patch</filename>
            <type>text/plain</type>
            <size>12031</size>
            <attacher name="Nico Weber">thakis</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
NjU5N2EzODEyNDY1NzQ4YzhjYTkxY2YzZWIzYjIwNjhhMWVlMWU2My4uMjQxYTY1YmM1OGUwYzRj
ZGIwMjMwZDA3M2NkNzI1MjNhYzkxZmRjZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNSBAQAorMjAxMC0xMC0wNCAgTmlj
byBXZWJlciAgPHRoYWtpc0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgRml4IGJyb2tlbiBDKysgaW4gUE9ESW50ZXJ2YWwgYW5k
IFBPREludGVydmFsVHJlZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NDcwNjMKKworICAgICAgICBTZWUgaHR0cDovL2NsYW5nLmxsdm0ub3JnL2NvbXBh
dGliaWxpdHkuaHRtbCNkZXBfbG9va3VwIC4gU2luY2UKKyAgICAgICAgdmFsdWVUb1N0cmluZyBu
ZWVkcyB0byB3b3JrIHdpdGggbm9uLWNsYXNzIHR5cGVzLCBpdCBuZWVkcyB0byBiZQorICAgICAg
ICBkZWNsYXJlZCBiZWZvcmUgaXQncyB1c2VkLiBBbmQgc2luY2UgaXQgbmVlZHMgdG8gaGFuZGxl
IG1hbnkgdHlwZXMsIGl0CisgICAgICAgIG5lZWRzIHRvIGJlIGEgdGVtcGxhdGUgZnVuY3Rpb24s
IGZvciB3aGljaCBjbGllbnRzIHdpbGwgbmVlZCB0bworICAgICAgICBwcm92aWRlIHNwZWNpYWxp
emF0aW9ucyBmb3IgdGhlIHR5cGVzIHRoZXkgY2FyZSBhYm91dC4gUGFydGlhbCB0ZW1wbGF0ZQor
ICAgICAgICBzcGVjaWFsaXphdGlvbiBpcyBvbmx5IHN1cHBvcnRlZCBmb3Igc3RydWN0cywgc28g
d3JhcCB0aGUgZnVuY3Rpb24gaW4KKyAgICAgICAgYSBzdHJ1Y3QsIHRvby4KKworICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9QT0RJbnRlcnZhbC5oOgorICAgICAgICAoV2ViQ29yZTo6
UE9ESW50ZXJ2YWw6OnRvU3RyaW5nKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9ncHUv
UE9ESW50ZXJ2YWxUcmVlLmg6CisgICAgICAgIChXZWJDb3JlOjpQT0RJbnRlcnZhbFRyZWU6OmNo
ZWNrSW52YXJpYW50c0Zyb21Ob2RlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9ncHUv
UE9EUmVkQmxhY2tUcmVlLmg6CisgICAgICAgIChXZWJDb3JlOjpQT0RSZWRCbGFja1RyZWU6OmR1
bXBGcm9tTm9kZSk6CisKIDIwMTAtMTAtMDQgIEFsZWphbmRybyBHLiBDYXN0cm8gIDxhbGV4QGln
YWxpYS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgTWFydGluIFJvYmluc29uLgpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvUE9ESW50ZXJ2YWwuaCBiL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L1BPREludGVydmFsLmgKaW5kZXggOWRmNjliYWNhNTFi
OGE0ZDJmYTg1ZDRjNjEzOWEwYjAzMDkyODBmMi4uYTBmMzlmMjI2ZTRjMGUwOTI1YzRiOTVmMmIy
YjJiZTZjODljMzVjNCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUv
UE9ESW50ZXJ2YWwuaAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9QT0RJbnRl
cnZhbC5oCkBAIC01NywxNCArNTcsMjQgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogLy8gY29uc3Ry
dWN0b3IgYW5kIGFzc2lnbm1lbnQgb3BlcmF0b3IuCiAvLwogLy8gSW4gZGVidWcgbW9kZSwgcHJp
bnRpbmcgb2YgaW50ZXJ2YWxzIGFuZCB0aGUgZGF0YSB0aGV5IGNvbnRhaW4gaXMKLS8vIGVuYWJs
ZWQuIFRoaXMgcmVxdWlyZXMgdGhlIGZvbGxvd2luZyBmdW5jdGlvbnMgdG8gYmUgYXZhaWxhYmxl
OgorLy8gZW5hYmxlZC4gVGhpcyByZXF1aXJlcyB0aGUgZm9sbG93aW5nIHRlbXBsYXRlIHNwZWNp
YWxpemF0aW9ucyB0byBiZQorLy8gYXZhaWxhYmxlOgogLy8KLS8vICAgU3RyaW5nIHZhbHVlVG9T
dHJpbmcoY29uc3QgVCYpOwotLy8gICBTdHJpbmcgdmFsdWVUb1N0cmluZyhjb25zdCBVc2VyRGF0
YSYpOworLy8gICB0ZW1wbGF0ZTw+IHN0cnVjdCBXZWJDb3JlOjpWYWx1ZVRvU3RyaW5nPFQ+IHsK
Ky8vICAgICAgIFN0cmluZyBzdHJpbmcoY29uc3QgVCYgdCk7CisvLyAgIH07CisvLyAgIHRlbXBs
YXRlPD4gc3RydWN0IFdlYkNvcmU6OlZhbHVlVG9TdHJpbmc8VXNlckRhdGE+IHsKKy8vICAgICAg
IFN0cmluZyBzdHJpbmcoY29uc3QgVXNlckRhdGEmIHQpOworLy8gICB9OwogLy8KIC8vIE5vdGUg
dGhhdCB0aGlzIGNsYXNzIHJlcXVpcmVzIGEgY29weSBjb25zdHJ1Y3RvciBhbmQgYXNzaWdubWVu
dAogLy8gb3BlcmF0b3IgaW4gb3JkZXIgdG8gYmUgc3RvcmVkIGluIHRoZSByZWQtYmxhY2sgdHJl
ZS4KIAorI2lmbmRlZiBOREVCVUcKK3RlbXBsYXRlPGNsYXNzIFQ+CitzdHJ1Y3QgVmFsdWVUb1N0
cmluZzsKKyNlbmRpZgorCiB0ZW1wbGF0ZTxjbGFzcyBULCBjbGFzcyBVc2VyRGF0YSA9IHZvaWQq
PgogY2xhc3MgUE9ESW50ZXJ2YWwgewogcHVibGljOgpAQCAtMTMxLDEzICsxNDEsMTMgQEAgcHVi
bGljOgogICAgIHsKICAgICAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwogICAgICAgICBidWls
ZGVyLmFwcGVuZCgiW1BPREludGVydmFsICgiKTsKLSAgICAgICAgYnVpbGRlci5hcHBlbmQodmFs
dWVUb1N0cmluZyhsb3coKSkpOworICAgICAgICBidWlsZGVyLmFwcGVuZChWYWx1ZVRvU3RyaW5n
PFQ+OjpzdHJpbmcobG93KCkpKTsKICAgICAgICAgYnVpbGRlci5hcHBlbmQoIiwgIik7Ci0gICAg
ICAgIGJ1aWxkZXIuYXBwZW5kKHZhbHVlVG9TdHJpbmcoaGlnaCgpKSk7CisgICAgICAgIGJ1aWxk
ZXIuYXBwZW5kKFZhbHVlVG9TdHJpbmc8VD46OnN0cmluZyhoaWdoKCkpKTsKICAgICAgICAgYnVp
bGRlci5hcHBlbmQoIiksIGRhdGE9Iik7Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5kKHZhbHVlVG9T
dHJpbmcoZGF0YSgpKSk7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKFZhbHVlVG9TdHJpbmc8VXNl
ckRhdGE+OjpzdHJpbmcoZGF0YSgpKSk7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCIsIG1heEhp
Z2g9Iik7Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5kKHZhbHVlVG9TdHJpbmcobWF4SGlnaCgpKSk7
CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKFZhbHVlVG9TdHJpbmc8VD46OnN0cmluZyhtYXhIaWdo
KCkpKTsKICAgICAgICAgYnVpbGRlci5hcHBlbmQoIl0iKTsKICAgICAgICAgcmV0dXJuIGJ1aWxk
ZXIudG9TdHJpbmcoKTsKICAgICB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dwdS9QT0RJbnRlcnZhbFRyZWUuaCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1
L1BPREludGVydmFsVHJlZS5oCmluZGV4IGMwYTg2YWEyM2M0ZmQ1ZTRiYWM4Mzc4OTU1NjFjNWVh
MTcxZThlMWUuLjMyMGNlNjAyYTJiYjllYjUzODZmNGVkYjBlMDY5YjljMDhjZjlhZWYgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L1BPREludGVydmFsVHJlZS5oCisr
KyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L1BPREludGVydmFsVHJlZS5oCkBAIC0z
NSw2ICszNSwxMSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKKyNpZm5kZWYgTkRFQlVHCit0
ZW1wbGF0ZTxjbGFzcyBUPgorc3RydWN0IFZhbHVlVG9TdHJpbmc7CisjZW5kaWYKKwogLy8gQW4g
aW50ZXJ2YWwgdHJlZSwgd2hpY2ggaXMgYSBmb3JtIG9mIGF1Z21lbnRlZCByZWQtYmxhY2sgdHJl
ZS4gSXQKIC8vIHN1cHBvcnRzIGVmZmljaWVudCAoTyhsZyBuKSkgaW5zZXJ0aW9uLCByZW1vdmFs
IGFuZCBxdWVyeWluZyBvZgogLy8gaW50ZXJ2YWxzIGluIHRoZSB0cmVlLgpAQCAtMTkxLDcgKzE5
Niw3IEBAIHByaXZhdGU6CiAgICAgICAgICAgICBsb2NhbE1heFZhbHVlID0gbm9kZS0+ZGF0YSgp
LmhpZ2goKTsKICAgICAgICAgaWYgKCEobG9jYWxNYXhWYWx1ZSA9PSBub2RlLT5kYXRhKCkubWF4
SGlnaCgpKSkgewogI2lmbmRlZiBOREVCVUcKLSAgICAgICAgICAgIFN0cmluZyBsb2NhbE1heFZh
bHVlU3RyaW5nID0gdmFsdWVUb1N0cmluZyhsb2NhbE1heFZhbHVlKTsKKyAgICAgICAgICAgIFN0
cmluZyBsb2NhbE1heFZhbHVlU3RyaW5nID0gVmFsdWVUb1N0cmluZzxUPjo6c3RyaW5nKGxvY2Fs
TWF4VmFsdWUpOwogICAgICAgICAgICAgTE9HX0VSUk9SKCJQT0RJbnRlcnZhbFRyZWUgdmVyaWZp
Y2F0aW9uIGZhaWxlZCBhdCBub2RlIDB4JXA6IGxvY2FsTWF4VmFsdWU9JXMgYW5kIGRhdGE9JXMi
LAogICAgICAgICAgICAgICAgICAgICAgIG5vZGUsIGxvY2FsTWF4VmFsdWVTdHJpbmcudXRmOCgp
LmRhdGEoKSwgbm9kZS0+ZGF0YSgpLnRvU3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7CiAjZW5kaWYK
QEAgLTIwNiwxMCArMjExLDEyIEBAIHByaXZhdGU6CiAjaWZuZGVmIE5ERUJVRwogLy8gU3VwcG9y
dCBmb3IgcHJpbnRpbmcgUE9ESW50ZXJ2YWxzIGF0IHRoZSBQT0RSZWRCbGFja1RyZWUgbGV2ZWwu
CiB0ZW1wbGF0ZTxjbGFzcyBULCBjbGFzcyBVc2VyRGF0YT4KLVN0cmluZyB2YWx1ZVRvU3RyaW5n
KGNvbnN0IFBPREludGVydmFsPFQsIFVzZXJEYXRhPiYgaW50ZXJ2YWwpCi17Ci0gICAgcmV0dXJu
IGludGVydmFsLnRvU3RyaW5nKCk7Ci19CitzdHJ1Y3QgVmFsdWVUb1N0cmluZzxQT0RJbnRlcnZh
bDxULCBVc2VyRGF0YT4gPiB7CisgICAgc3RhdGljIFN0cmluZyBzdHJpbmcoY29uc3QgUE9ESW50
ZXJ2YWw8VCwgVXNlckRhdGE+JiBpbnRlcnZhbCkKKyAgICB7CisgICAgICAgIHJldHVybiBpbnRl
cnZhbC50b1N0cmluZygpOworICAgIH0KK307CiAjZW5kaWYKIAogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvUE9EUmVkQmxh
Y2tUcmVlLmggYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9QT0RSZWRCbGFja1RyZWUu
aAppbmRleCA5YjAyMDM3MGNmYzg5YzUzMTEyNGFkYmZjYTk4Mzk5YWEzMDdmM2JiLi42MTFhYWFi
ODhkYWUxNjdjNmE0Zjk3OTdjOWY0MWQzNmFkYTNiMjUyIDEwMDY0NAotLS0gYS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dwdS9QT0RSZWRCbGFja1RyZWUuaAorKysgYi9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dwdS9QT0RSZWRCbGFja1RyZWUuaApAQCAtNDIsOSArNDIsMTEgQEAKIC8v
IHRoZSAiPCIgYW5kICI9PSIgb3BlcmF0b3JzLgogLy8KIC8vIEluIGRlYnVnIG1vZGUsIHByaW50
aW5nIG9mIHRoZSBkYXRhIGNvbnRhaW5lZCBpbiB0aGUgdHJlZSBpcwotLy8gZW5hYmxlZC4gVGhp
cyByZXF1aXJlcyB0aGUgZm9sbG93aW5nIGZ1bmN0aW9uIHRvIGJlIGF2YWlsYWJsZToKKy8vIGVu
YWJsZWQuIFRoaXMgcmVxdWlyZXMgdGhlIHRlbXBsYXRlIHNwZWNpYWxpemF0aW9uIHRvIGJlIGF2
YWlsYWJsZToKIC8vCi0vLyAgIFN0cmluZyB2YWx1ZVRvU3RyaW5nKGNvbnN0IFQmKTsKKy8vICAg
dGVtcGxhdGU8PiBzdHJ1Y3QgV2ViQ29yZTo6VmFsdWVUb1N0cmluZzxUPiB7CisvLyAgICAgICBT
dHJpbmcgc3RyaW5nKGNvbnN0IFQmIHQpOworLy8gICB9OwogLy8KIC8vIE5vdGUgdGhhdCB3aGVu
IGNvbXBsZXggdHlwZXMgYXJlIHN0b3JlZCBpbiB0aGlzIHJlZC9ibGFjayB0cmVlLCBpdAogLy8g
aXMgcG9zc2libGUgdGhhdCBzaW5nbGUgaW52b2NhdGlvbnMgb2YgdGhlICI8IiBhbmQgIj09IiBv
cGVyYXRvcnMKQEAgLTgzLDYgKzg1LDExIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorI2lm
bmRlZiBOREVCVUcKK3RlbXBsYXRlPGNsYXNzIFQ+CitzdHJ1Y3QgVmFsdWVUb1N0cmluZzsKKyNl
bmRpZgorCiB0ZW1wbGF0ZTxjbGFzcyBUPgogY2xhc3MgUE9EUmVkQmxhY2tUcmVlIHsKIHB1Ymxp
YzoKQEAgLTcyMyw3ICs3MzAsNyBAQCBwcml2YXRlOgogICAgICAgICBidWlsZGVyLmFwcGVuZCgi
LSIpOwogICAgICAgICBpZiAobm9kZSkgewogICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQoIiAi
KTsKLSAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKHZhbHVlVG9TdHJpbmcobm9kZS0+ZGF0YSgp
KSk7CisgICAgICAgICAgICBidWlsZGVyLmFwcGVuZChWYWx1ZVRvU3RyaW5nPFQ+OjpzdHJpbmco
bm9kZS0+ZGF0YSgpKSk7CiAgICAgICAgICAgICBidWlsZGVyLmFwcGVuZCgobm9kZS0+Y29sb3Io
KSA9PSBCbGFjaykgPyAiIChibGFjaykiIDogIiAocmVkKSIpOwogICAgICAgICB9CiAgICAgICAg
IExPR19FUlJPUigiJXMiLCBidWlsZGVyLnRvU3RyaW5nKCkuYXNjaWkoKS5kYXRhKCkpOwpkaWZm
IC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1dlYktpdC9jaHJvbWl1bS9DaGFu
Z2VMb2cKaW5kZXggZTZjODAwYjZmZWM4YmNjYWY4OGJjMGNiNWJlNzBmYjFiMmRlMDE3OS4uZTdk
ZGI4ODM4MzZkZjRmMDA5N2FjMzAwNjdiYTNjM2JlNzZkMzdjMSAxMDA2NDQKLS0tIGEvV2ViS2l0
L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTUgQEAKKzIwMTAtMTAtMDQgIE5pY28gV2ViZXIgIDx0aGFraXNAY2hyb21pdW0ub3Jn
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEZpeCBi
cm9rZW4gQysrIGluIFBPREludGVydmFsIGFuZCBQT0RJbnRlcnZhbFRyZWUKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ3MDYzCisKKyAgICAgICAgQ2hh
bmdlIGZ1bmN0aW9ucyB0byBiZSB0ZW1wbGF0ZSBzcGVjaWFsaXphdGlvbnMsIGxpa2UgaXQncyBu
b3cgcmVxdWlyZWQKKyAgICAgICAgYnkgUE9ESW50ZXJ2YWxUcmVlIGFuZCBmcmllbmRzLgorCisg
ICAgICAgICogdGVzdHMvUE9ESW50ZXJ2YWxUcmVlVGVzdC5jcHA6CisKIDIwMTAtMTAtMDEgIE1p
aGFpIFBhcnBhcml0YSAgPG1paGFpcEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQg
YnkgTmF0ZSBDaGFwaW4uCmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvUE9ESW50
ZXJ2YWxUcmVlVGVzdC5jcHAgYi9XZWJLaXQvY2hyb21pdW0vdGVzdHMvUE9ESW50ZXJ2YWxUcmVl
VGVzdC5jcHAKaW5kZXggM2E4YTI0NWJiMjNhZDJjY2IzYzcyZjM2MjhhOTNjMGU4MTVjNGYxNC4u
ZjcxZTFhZWZiOTkwZTUzZTQwODYxNjQ2MWU0M2U4YjdhNzllYjgxNiAxMDA2NDQKLS0tIGEvV2Vi
S2l0L2Nocm9taXVtL3Rlc3RzL1BPREludGVydmFsVHJlZVRlc3QuY3BwCisrKyBiL1dlYktpdC9j
aHJvbWl1bS90ZXN0cy9QT0RJbnRlcnZhbFRyZWVUZXN0LmNwcApAQCAtNDEsMTUgKzQxLDE4IEBA
IHVzaW5nIFRyZWVUZXN0SGVscGVyczo6Z2VuZXJhdGVTZWVkOwogdXNpbmcgVHJlZVRlc3RIZWxw
ZXJzOjppbml0UmFuZG9tOwogdXNpbmcgVHJlZVRlc3RIZWxwZXJzOjpuZXh0UmFuZG9tOwogCi1p
bmxpbmUgU3RyaW5nIHZhbHVlVG9TdHJpbmcoY29uc3QgZmxvYXQmIHZhbHVlKQotewotICAgIHJl
dHVybiBTdHJpbmc6Om51bWJlcih2YWx1ZSk7Ci19Cit0ZW1wbGF0ZTw+CitzdHJ1Y3QgVmFsdWVU
b1N0cmluZzxmbG9hdD4geworICAgIHN0YXRpYyBTdHJpbmcgc3RyaW5nKGNvbnN0IGZsb2F0JiB2
YWx1ZSkgeyByZXR1cm4gU3RyaW5nOjpudW1iZXIodmFsdWUpOyB9Cit9OwogCi1pbmxpbmUgU3Ry
aW5nIHZhbHVlVG9TdHJpbmcodm9pZCogY29uc3QmIHZhbHVlKQotewotICAgIHJldHVybiBTdHJp
bmc6OmZvcm1hdCgiMHglcCIsIHZhbHVlKTsKLX0KK3RlbXBsYXRlPD4KK3N0cnVjdCBWYWx1ZVRv
U3RyaW5nPHZvaWQqPiB7CisgICAgc3RhdGljIFN0cmluZyBzdHJpbmcodm9pZCogY29uc3QmIHZh
bHVlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIFN0cmluZzo6Zm9ybWF0KCIweCVwIiwgdmFsdWUp
OworICAgIH0KK307CiAKIFRFU1QoUE9ESW50ZXJ2YWxUcmVlVGVzdCwgVGVzdEluc2VydGlvbikK
IHsKQEAgLTgyLDYgKzg1LDE0IEBAIFRFU1QoUE9ESW50ZXJ2YWxUcmVlVGVzdCwgVGVzdFF1ZXJ5
QWdhaW5zdFplcm9TaXplSW50ZXJ2YWwpCiAgICAgRVhQRUNUX0VRKDQsIHJlc3VsdFswXS5oaWdo
KCkpOwogfQogCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgVmFsdWVUb1N0cmluZzxpbnQqPiB7CisgICAg
c3RhdGljIFN0cmluZyBzdHJpbmcoaW50KiBjb25zdCYgdmFsdWUpCisgICAgeworICAgICAgICBy
ZXR1cm4gU3RyaW5nOjpmb3JtYXQoIjB4JXAiLCB2YWx1ZSk7CisgICAgfQorfTsKKwogVEVTVChQ
T0RJbnRlcnZhbFRyZWVUZXN0LCBUZXN0RHVwbGljYXRlRWxlbWVudEluc2VydGlvbikKIHsKICAg
ICBQT0RJbnRlcnZhbFRyZWU8ZmxvYXQsIGludCo+IHRyZWU7CkBAIC0xMTMsMTMgKzEyNCwxNiBA
QCBwdWJsaWM6CiAgICAgaW50IGI7CiB9OwogCi1pbmxpbmUgU3RyaW5nIHZhbHVlVG9TdHJpbmco
Y29uc3QgVXNlckRhdGExJiB2YWx1ZSkKLXsKLSAgICByZXR1cm4gU3RyaW5nKCJbVXNlckRhdGEx
IGE9IikgKyBTdHJpbmc6Om51bWJlcih2YWx1ZS5hKSArICIgYj0iICsgU3RyaW5nOjpudW1iZXIo
dmFsdWUuYikgKyAiXSI7Ci19Ci0KIH0gLy8gYW5vbnltb3VzIG5hbWVzcGFjZQogCit0ZW1wbGF0
ZTw+CitzdHJ1Y3QgVmFsdWVUb1N0cmluZzxVc2VyRGF0YTE+IHsKKyAgICBzdGF0aWMgU3RyaW5n
IHN0cmluZyhjb25zdCBVc2VyRGF0YTEmIHZhbHVlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIFN0
cmluZygiW1VzZXJEYXRhMSBhPSIpICsgU3RyaW5nOjpudW1iZXIodmFsdWUuYSkgKyAiIGI9IiAr
IFN0cmluZzo6bnVtYmVyKHZhbHVlLmIpICsgIl0iOworICAgIH0KK307CisKIFRFU1QoUE9ESW50
ZXJ2YWxUcmVlVGVzdCwgVGVzdEluc2VydGlvbk9mQ29tcGxleFVzZXJEYXRhKQogewogICAgIFBP
REludGVydmFsVHJlZTxmbG9hdCwgVXNlckRhdGExPiB0cmVlOwpAQCAtMTY1LDEzICsxNzksMTYg
QEAgcHJpdmF0ZToKICAgICBib29sIG9wZXJhdG9yIT0oY29uc3QgRW5kcG9pbnRUeXBlMSYgb3Ro
ZXIpOwogfTsKIAotaW5saW5lIFN0cmluZyB2YWx1ZVRvU3RyaW5nKGNvbnN0IEVuZHBvaW50VHlw
ZTEmIHZhbHVlKQotewotICAgIHJldHVybiBTdHJpbmcoIltFbmRwb2ludFR5cGUxIHZhbHVlPSIp
ICsgU3RyaW5nOjpudW1iZXIodmFsdWUudmFsdWUoKSkgKyAiXSI7Ci19Ci0KIH0gLy8gYW5vbnlt
b3VzIG5hbWVzcGFjZQogCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgVmFsdWVUb1N0cmluZzxFbmRwb2lu
dFR5cGUxPiB7CisgICAgc3RhdGljIFN0cmluZyBzdHJpbmcoY29uc3QgRW5kcG9pbnRUeXBlMSYg
dmFsdWUpCisgICAgeworICAgICAgICByZXR1cm4gU3RyaW5nKCJbRW5kcG9pbnRUeXBlMSB2YWx1
ZT0iKSArIFN0cmluZzo6bnVtYmVyKHZhbHVlLnZhbHVlKCkpICsgIl0iOworICAgIH0KK307CisK
IFRFU1QoUE9ESW50ZXJ2YWxUcmVlVGVzdCwgVGVzdFRyZWVEb2VzTm90UmVxdWlyZU1vc3RPcGVy
YXRvcnMpCiB7CiAgICAgUE9ESW50ZXJ2YWxUcmVlPEVuZHBvaW50VHlwZTE+IHRyZWU7CkBAIC0x
ODIsNiArMTk5LDExIEBAIFRFU1QoUE9ESW50ZXJ2YWxUcmVlVGVzdCwgVGVzdFRyZWVEb2VzTm90
UmVxdWlyZU1vc3RPcGVyYXRvcnMpCiAvLyBVbmNvbW1lbnQgdG8gZGVidWcgYSBmYWlsdXJlIG9m
IHRoZSBpbnNlcnRpb24gYW5kIGRlbGV0aW9uIHRlc3QuCiAvLyAjZGVmaW5lIERFQlVHX0lOU0VS
VElPTl9BTkRfREVMRVRJT05fVEVTVAogCit0ZW1wbGF0ZTw+CitzdHJ1Y3QgVmFsdWVUb1N0cmlu
ZzxpbnQ+IHsKKyAgICBzdGF0aWMgU3RyaW5nIHN0cmluZyhjb25zdCBpbnQmIHZhbHVlKSB7IHJl
dHVybiBTdHJpbmc6Om51bWJlcih2YWx1ZSk7IH0KK307CisKIG5hbWVzcGFjZSB7CiAKIHZvaWQg
SW5zZXJ0aW9uQW5kRGVsZXRpb25UZXN0KGludDMyX3Qgc2VlZCwgaW50IHRyZWVTaXplKQpAQCAt
MTk4LDcgKzIyMCw3IEBAIHZvaWQgSW5zZXJ0aW9uQW5kRGVsZXRpb25UZXN0KGludDMyX3Qgc2Vl
ZCwgaW50IHRyZWVTaXplKQogICAgICAgICBQT0RJbnRlcnZhbDxpbnQ+IGludGVydmFsKGxlZnQs
IGxlZnQgKyBsZW5ndGgpOwogICAgICAgICB0cmVlLmFkZChpbnRlcnZhbCk7CiAjaWZkZWYgREVC
VUdfSU5TRVJUSU9OX0FORF9ERUxFVElPTl9URVNUCi0gICAgICAgIExPR19FUlJPUigiKioqIEFk
ZGluZyBlbGVtZW50ICVzIiwgdmFsdWVUb1N0cmluZyhpbnRlcnZhbCkuYXNjaWkoKS5kYXRhKCkp
OworICAgICAgICBMT0dfRVJST1IoIioqKiBBZGRpbmcgZWxlbWVudCAlcyIsIFZhbHVlVG9TdHJp
bmc8UE9ESW50ZXJ2YWw8aW50PiA+OjpzdHJpbmcoaW50ZXJ2YWwpLmFzY2lpKCkuZGF0YSgpKTsK
ICNlbmRpZgogICAgICAgICBhZGRlZEVsZW1lbnRzLmFwcGVuZChpbnRlcnZhbCk7CiAgICAgfQpA
QCAtMjA3LDcgKzIyOSw3IEBAIHZvaWQgSW5zZXJ0aW9uQW5kRGVsZXRpb25UZXN0KGludDMyX3Qg
c2VlZCwgaW50IHRyZWVTaXplKQogICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdHJlZVNpemUgLyAy
OyBpKyspIHsKICAgICAgICAgaW50IGluZGV4ID0gbmV4dFJhbmRvbShhZGRlZEVsZW1lbnRzLnNp
emUoKSk7CiAjaWZkZWYgREVCVUdfSU5TRVJUSU9OX0FORF9ERUxFVElPTl9URVNUCi0gICAgICAg
IExPR19FUlJPUigiKioqIFJlbW92aW5nIGVsZW1lbnQgJXMiLCB2YWx1ZVRvU3RyaW5nKGFkZGVk
RWxlbWVudHNbaW5kZXhdKS5hc2NpaSgpLmRhdGEoKSk7CisgICAgICAgIExPR19FUlJPUigiKioq
IFJlbW92aW5nIGVsZW1lbnQgJXMiLCBWYWx1ZVRvU3RyaW5nPFBPREludGVydmFsPGludD4gPjo6
c3RyaW5nKGFkZGVkRWxlbWVudHNbaW5kZXhdKS5hc2NpaSgpLmRhdGEoKSk7CiAjZW5kaWYKICAg
ICAgICAgQVNTRVJUX1RSVUUodHJlZS5jb250YWlucyhhZGRlZEVsZW1lbnRzW2luZGV4XSkpIDw8
ICJUZXN0IGZhaWxlZCBmb3Igc2VlZCAiIDw8IHNlZWQ7CiAgICAgICAgIHRyZWUucmVtb3ZlKGFk
ZGVkRWxlbWVudHNbaW5kZXhdKTsKQEAgLTIyNyw3ICsyNDksNyBAQCB2b2lkIEluc2VydGlvbkFu
ZERlbGV0aW9uVGVzdChpbnQzMl90IHNlZWQsIGludCB0cmVlU2l6ZSkKICAgICAgICAgaWYgKGFk
ZCkgewogICAgICAgICAgICAgaW50IGluZGV4ID0gbmV4dFJhbmRvbShyZW1vdmVkRWxlbWVudHMu
c2l6ZSgpKTsKICNpZmRlZiBERUJVR19JTlNFUlRJT05fQU5EX0RFTEVUSU9OX1RFU1QKLSAgICAg
ICAgICAgIExPR19FUlJPUigiKioqIEFkZGluZyBlbGVtZW50ICVzIiwgdmFsdWVUb1N0cmluZyhy
ZW1vdmVkRWxlbWVudHNbaW5kZXhdKS5hc2NpaSgpLmRhdGEoKSk7CisgICAgICAgICAgICBMT0df
RVJST1IoIioqKiBBZGRpbmcgZWxlbWVudCAlcyIsIFZhbHVlVG9TdHJpbmc8UE9ESW50ZXJ2YWw8
aW50PiA+OjpzdHJpbmcocmVtb3ZlZEVsZW1lbnRzW2luZGV4XSkuYXNjaWkoKS5kYXRhKCkpOwog
I2VuZGlmCiAgICAgICAgICAgICB0cmVlLmFkZChyZW1vdmVkRWxlbWVudHNbaW5kZXhdKTsKICAg
ICAgICAgICAgIGFkZGVkRWxlbWVudHMuYXBwZW5kKHJlbW92ZWRFbGVtZW50c1tpbmRleF0pOwpA
QCAtMjM1LDcgKzI1Nyw3IEBAIHZvaWQgSW5zZXJ0aW9uQW5kRGVsZXRpb25UZXN0KGludDMyX3Qg
c2VlZCwgaW50IHRyZWVTaXplKQogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgaW50IGlu
ZGV4ID0gbmV4dFJhbmRvbShhZGRlZEVsZW1lbnRzLnNpemUoKSk7CiAjaWZkZWYgREVCVUdfSU5T
RVJUSU9OX0FORF9ERUxFVElPTl9URVNUCi0gICAgICAgICAgICBMT0dfRVJST1IoIioqKiBSZW1v
dmluZyBlbGVtZW50ICVzIiwgdmFsdWVUb1N0cmluZyhhZGRlZEVsZW1lbnRzW2luZGV4XSkuYXNj
aWkoKS5kYXRhKCkpOworICAgICAgICAgICAgTE9HX0VSUk9SKCIqKiogUmVtb3ZpbmcgZWxlbWVu
dCAlcyIsIFZhbHVlVG9TdHJpbmc8UE9ESW50ZXJ2YWw8aW50PiA+OjpzdHJpbmcoYWRkZWRFbGVt
ZW50c1tpbmRleF0pLmFzY2lpKCkuZGF0YSgpKTsKICNlbmRpZgogICAgICAgICAgICAgQVNTRVJU
X1RSVUUodHJlZS5jb250YWlucyhhZGRlZEVsZW1lbnRzW2luZGV4XSkpIDw8ICJUZXN0IGZhaWxl
ZCBmb3Igc2VlZCAiIDw8IHNlZWQ7CiAgICAgICAgICAgICBBU1NFUlRfVFJVRSh0cmVlLnJlbW92
ZShhZGRlZEVsZW1lbnRzW2luZGV4XSkpIDw8ICJUZXN0IGZhaWxlZCBmb3Igc2VlZCAiIDw8IHNl
ZWQ7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>69664</attachid>
            <date>2010-10-04 12:16:57 -0700</date>
            <delta_ts>2010-10-04 13:43:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-47063-20101004121656.patch</filename>
            <type>text/plain</type>
            <size>12301</size>
            <attacher name="Nico Weber">thakis</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
NjU5N2EzODEyNDY1NzQ4YzhjYTkxY2YzZWIzYjIwNjhhMWVlMWU2My4uMjQxYTY1YmM1OGUwYzRj
ZGIwMjMwZDA3M2NkNzI1MjNhYzkxZmRjZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNSBAQAorMjAxMC0xMC0wNCAgTmlj
byBXZWJlciAgPHRoYWtpc0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgRml4IGJyb2tlbiBDKysgaW4gUE9ESW50ZXJ2YWwgYW5k
IFBPREludGVydmFsVHJlZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NDcwNjMKKworICAgICAgICBTZWUgaHR0cDovL2NsYW5nLmxsdm0ub3JnL2NvbXBh
dGliaWxpdHkuaHRtbCNkZXBfbG9va3VwIC4gU2luY2UKKyAgICAgICAgdmFsdWVUb1N0cmluZyBu
ZWVkcyB0byB3b3JrIHdpdGggbm9uLWNsYXNzIHR5cGVzLCBpdCBuZWVkcyB0byBiZQorICAgICAg
ICBkZWNsYXJlZCBiZWZvcmUgaXQncyB1c2VkLiBBbmQgc2luY2UgaXQgbmVlZHMgdG8gaGFuZGxl
IG1hbnkgdHlwZXMsIGl0CisgICAgICAgIG5lZWRzIHRvIGJlIGEgdGVtcGxhdGUgZnVuY3Rpb24s
IGZvciB3aGljaCBjbGllbnRzIHdpbGwgbmVlZCB0bworICAgICAgICBwcm92aWRlIHNwZWNpYWxp
emF0aW9ucyBmb3IgdGhlIHR5cGVzIHRoZXkgY2FyZSBhYm91dC4gUGFydGlhbCB0ZW1wbGF0ZQor
ICAgICAgICBzcGVjaWFsaXphdGlvbiBpcyBvbmx5IHN1cHBvcnRlZCBmb3Igc3RydWN0cywgc28g
d3JhcCB0aGUgZnVuY3Rpb24gaW4KKyAgICAgICAgYSBzdHJ1Y3QsIHRvby4KKworICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9QT0RJbnRlcnZhbC5oOgorICAgICAgICAoV2ViQ29yZTo6
UE9ESW50ZXJ2YWw6OnRvU3RyaW5nKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9ncHUv
UE9ESW50ZXJ2YWxUcmVlLmg6CisgICAgICAgIChXZWJDb3JlOjpQT0RJbnRlcnZhbFRyZWU6OmNo
ZWNrSW52YXJpYW50c0Zyb21Ob2RlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9ncHUv
UE9EUmVkQmxhY2tUcmVlLmg6CisgICAgICAgIChXZWJDb3JlOjpQT0RSZWRCbGFja1RyZWU6OmR1
bXBGcm9tTm9kZSk6CisKIDIwMTAtMTAtMDQgIEFsZWphbmRybyBHLiBDYXN0cm8gIDxhbGV4QGln
YWxpYS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgTWFydGluIFJvYmluc29uLgpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvUE9ESW50ZXJ2YWwuaCBiL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L1BPREludGVydmFsLmgKaW5kZXggOWRmNjliYWNhNTFi
OGE0ZDJmYTg1ZDRjNjEzOWEwYjAzMDkyODBmMi4uYTBmMzlmMjI2ZTRjMGUwOTI1YzRiOTVmMmIy
YjJiZTZjODljMzVjNCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUv
UE9ESW50ZXJ2YWwuaAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9QT0RJbnRl
cnZhbC5oCkBAIC01NywxNCArNTcsMjQgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogLy8gY29uc3Ry
dWN0b3IgYW5kIGFzc2lnbm1lbnQgb3BlcmF0b3IuCiAvLwogLy8gSW4gZGVidWcgbW9kZSwgcHJp
bnRpbmcgb2YgaW50ZXJ2YWxzIGFuZCB0aGUgZGF0YSB0aGV5IGNvbnRhaW4gaXMKLS8vIGVuYWJs
ZWQuIFRoaXMgcmVxdWlyZXMgdGhlIGZvbGxvd2luZyBmdW5jdGlvbnMgdG8gYmUgYXZhaWxhYmxl
OgorLy8gZW5hYmxlZC4gVGhpcyByZXF1aXJlcyB0aGUgZm9sbG93aW5nIHRlbXBsYXRlIHNwZWNp
YWxpemF0aW9ucyB0byBiZQorLy8gYXZhaWxhYmxlOgogLy8KLS8vICAgU3RyaW5nIHZhbHVlVG9T
dHJpbmcoY29uc3QgVCYpOwotLy8gICBTdHJpbmcgdmFsdWVUb1N0cmluZyhjb25zdCBVc2VyRGF0
YSYpOworLy8gICB0ZW1wbGF0ZTw+IHN0cnVjdCBXZWJDb3JlOjpWYWx1ZVRvU3RyaW5nPFQ+IHsK
Ky8vICAgICAgIFN0cmluZyBzdHJpbmcoY29uc3QgVCYgdCk7CisvLyAgIH07CisvLyAgIHRlbXBs
YXRlPD4gc3RydWN0IFdlYkNvcmU6OlZhbHVlVG9TdHJpbmc8VXNlckRhdGE+IHsKKy8vICAgICAg
IFN0cmluZyBzdHJpbmcoY29uc3QgVXNlckRhdGEmIHQpOworLy8gICB9OwogLy8KIC8vIE5vdGUg
dGhhdCB0aGlzIGNsYXNzIHJlcXVpcmVzIGEgY29weSBjb25zdHJ1Y3RvciBhbmQgYXNzaWdubWVu
dAogLy8gb3BlcmF0b3IgaW4gb3JkZXIgdG8gYmUgc3RvcmVkIGluIHRoZSByZWQtYmxhY2sgdHJl
ZS4KIAorI2lmbmRlZiBOREVCVUcKK3RlbXBsYXRlPGNsYXNzIFQ+CitzdHJ1Y3QgVmFsdWVUb1N0
cmluZzsKKyNlbmRpZgorCiB0ZW1wbGF0ZTxjbGFzcyBULCBjbGFzcyBVc2VyRGF0YSA9IHZvaWQq
PgogY2xhc3MgUE9ESW50ZXJ2YWwgewogcHVibGljOgpAQCAtMTMxLDEzICsxNDEsMTMgQEAgcHVi
bGljOgogICAgIHsKICAgICAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwogICAgICAgICBidWls
ZGVyLmFwcGVuZCgiW1BPREludGVydmFsICgiKTsKLSAgICAgICAgYnVpbGRlci5hcHBlbmQodmFs
dWVUb1N0cmluZyhsb3coKSkpOworICAgICAgICBidWlsZGVyLmFwcGVuZChWYWx1ZVRvU3RyaW5n
PFQ+OjpzdHJpbmcobG93KCkpKTsKICAgICAgICAgYnVpbGRlci5hcHBlbmQoIiwgIik7Ci0gICAg
ICAgIGJ1aWxkZXIuYXBwZW5kKHZhbHVlVG9TdHJpbmcoaGlnaCgpKSk7CisgICAgICAgIGJ1aWxk
ZXIuYXBwZW5kKFZhbHVlVG9TdHJpbmc8VD46OnN0cmluZyhoaWdoKCkpKTsKICAgICAgICAgYnVp
bGRlci5hcHBlbmQoIiksIGRhdGE9Iik7Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5kKHZhbHVlVG9T
dHJpbmcoZGF0YSgpKSk7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKFZhbHVlVG9TdHJpbmc8VXNl
ckRhdGE+OjpzdHJpbmcoZGF0YSgpKSk7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCIsIG1heEhp
Z2g9Iik7Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5kKHZhbHVlVG9TdHJpbmcobWF4SGlnaCgpKSk7
CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKFZhbHVlVG9TdHJpbmc8VD46OnN0cmluZyhtYXhIaWdo
KCkpKTsKICAgICAgICAgYnVpbGRlci5hcHBlbmQoIl0iKTsKICAgICAgICAgcmV0dXJuIGJ1aWxk
ZXIudG9TdHJpbmcoKTsKICAgICB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dwdS9QT0RJbnRlcnZhbFRyZWUuaCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1
L1BPREludGVydmFsVHJlZS5oCmluZGV4IGMwYTg2YWEyM2M0ZmQ1ZTRiYWM4Mzc4OTU1NjFjNWVh
MTcxZThlMWUuLjMyMGNlNjAyYTJiYjllYjUzODZmNGVkYjBlMDY5YjljMDhjZjlhZWYgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L1BPREludGVydmFsVHJlZS5oCisr
KyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L1BPREludGVydmFsVHJlZS5oCkBAIC0z
NSw2ICszNSwxMSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKKyNpZm5kZWYgTkRFQlVHCit0
ZW1wbGF0ZTxjbGFzcyBUPgorc3RydWN0IFZhbHVlVG9TdHJpbmc7CisjZW5kaWYKKwogLy8gQW4g
aW50ZXJ2YWwgdHJlZSwgd2hpY2ggaXMgYSBmb3JtIG9mIGF1Z21lbnRlZCByZWQtYmxhY2sgdHJl
ZS4gSXQKIC8vIHN1cHBvcnRzIGVmZmljaWVudCAoTyhsZyBuKSkgaW5zZXJ0aW9uLCByZW1vdmFs
IGFuZCBxdWVyeWluZyBvZgogLy8gaW50ZXJ2YWxzIGluIHRoZSB0cmVlLgpAQCAtMTkxLDcgKzE5
Niw3IEBAIHByaXZhdGU6CiAgICAgICAgICAgICBsb2NhbE1heFZhbHVlID0gbm9kZS0+ZGF0YSgp
LmhpZ2goKTsKICAgICAgICAgaWYgKCEobG9jYWxNYXhWYWx1ZSA9PSBub2RlLT5kYXRhKCkubWF4
SGlnaCgpKSkgewogI2lmbmRlZiBOREVCVUcKLSAgICAgICAgICAgIFN0cmluZyBsb2NhbE1heFZh
bHVlU3RyaW5nID0gdmFsdWVUb1N0cmluZyhsb2NhbE1heFZhbHVlKTsKKyAgICAgICAgICAgIFN0
cmluZyBsb2NhbE1heFZhbHVlU3RyaW5nID0gVmFsdWVUb1N0cmluZzxUPjo6c3RyaW5nKGxvY2Fs
TWF4VmFsdWUpOwogICAgICAgICAgICAgTE9HX0VSUk9SKCJQT0RJbnRlcnZhbFRyZWUgdmVyaWZp
Y2F0aW9uIGZhaWxlZCBhdCBub2RlIDB4JXA6IGxvY2FsTWF4VmFsdWU9JXMgYW5kIGRhdGE9JXMi
LAogICAgICAgICAgICAgICAgICAgICAgIG5vZGUsIGxvY2FsTWF4VmFsdWVTdHJpbmcudXRmOCgp
LmRhdGEoKSwgbm9kZS0+ZGF0YSgpLnRvU3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7CiAjZW5kaWYK
QEAgLTIwNiwxMCArMjExLDEyIEBAIHByaXZhdGU6CiAjaWZuZGVmIE5ERUJVRwogLy8gU3VwcG9y
dCBmb3IgcHJpbnRpbmcgUE9ESW50ZXJ2YWxzIGF0IHRoZSBQT0RSZWRCbGFja1RyZWUgbGV2ZWwu
CiB0ZW1wbGF0ZTxjbGFzcyBULCBjbGFzcyBVc2VyRGF0YT4KLVN0cmluZyB2YWx1ZVRvU3RyaW5n
KGNvbnN0IFBPREludGVydmFsPFQsIFVzZXJEYXRhPiYgaW50ZXJ2YWwpCi17Ci0gICAgcmV0dXJu
IGludGVydmFsLnRvU3RyaW5nKCk7Ci19CitzdHJ1Y3QgVmFsdWVUb1N0cmluZzxQT0RJbnRlcnZh
bDxULCBVc2VyRGF0YT4gPiB7CisgICAgc3RhdGljIFN0cmluZyBzdHJpbmcoY29uc3QgUE9ESW50
ZXJ2YWw8VCwgVXNlckRhdGE+JiBpbnRlcnZhbCkKKyAgICB7CisgICAgICAgIHJldHVybiBpbnRl
cnZhbC50b1N0cmluZygpOworICAgIH0KK307CiAjZW5kaWYKIAogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvUE9EUmVkQmxh
Y2tUcmVlLmggYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9QT0RSZWRCbGFja1RyZWUu
aAppbmRleCA5YjAyMDM3MGNmYzg5YzUzMTEyNGFkYmZjYTk4Mzk5YWEzMDdmM2JiLi42MTFhYWFi
ODhkYWUxNjdjNmE0Zjk3OTdjOWY0MWQzNmFkYTNiMjUyIDEwMDY0NAotLS0gYS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dwdS9QT0RSZWRCbGFja1RyZWUuaAorKysgYi9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dwdS9QT0RSZWRCbGFja1RyZWUuaApAQCAtNDIsOSArNDIsMTEgQEAKIC8v
IHRoZSAiPCIgYW5kICI9PSIgb3BlcmF0b3JzLgogLy8KIC8vIEluIGRlYnVnIG1vZGUsIHByaW50
aW5nIG9mIHRoZSBkYXRhIGNvbnRhaW5lZCBpbiB0aGUgdHJlZSBpcwotLy8gZW5hYmxlZC4gVGhp
cyByZXF1aXJlcyB0aGUgZm9sbG93aW5nIGZ1bmN0aW9uIHRvIGJlIGF2YWlsYWJsZToKKy8vIGVu
YWJsZWQuIFRoaXMgcmVxdWlyZXMgdGhlIHRlbXBsYXRlIHNwZWNpYWxpemF0aW9uIHRvIGJlIGF2
YWlsYWJsZToKIC8vCi0vLyAgIFN0cmluZyB2YWx1ZVRvU3RyaW5nKGNvbnN0IFQmKTsKKy8vICAg
dGVtcGxhdGU8PiBzdHJ1Y3QgV2ViQ29yZTo6VmFsdWVUb1N0cmluZzxUPiB7CisvLyAgICAgICBT
dHJpbmcgc3RyaW5nKGNvbnN0IFQmIHQpOworLy8gICB9OwogLy8KIC8vIE5vdGUgdGhhdCB3aGVu
IGNvbXBsZXggdHlwZXMgYXJlIHN0b3JlZCBpbiB0aGlzIHJlZC9ibGFjayB0cmVlLCBpdAogLy8g
aXMgcG9zc2libGUgdGhhdCBzaW5nbGUgaW52b2NhdGlvbnMgb2YgdGhlICI8IiBhbmQgIj09IiBv
cGVyYXRvcnMKQEAgLTgzLDYgKzg1LDExIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorI2lm
bmRlZiBOREVCVUcKK3RlbXBsYXRlPGNsYXNzIFQ+CitzdHJ1Y3QgVmFsdWVUb1N0cmluZzsKKyNl
bmRpZgorCiB0ZW1wbGF0ZTxjbGFzcyBUPgogY2xhc3MgUE9EUmVkQmxhY2tUcmVlIHsKIHB1Ymxp
YzoKQEAgLTcyMyw3ICs3MzAsNyBAQCBwcml2YXRlOgogICAgICAgICBidWlsZGVyLmFwcGVuZCgi
LSIpOwogICAgICAgICBpZiAobm9kZSkgewogICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQoIiAi
KTsKLSAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKHZhbHVlVG9TdHJpbmcobm9kZS0+ZGF0YSgp
KSk7CisgICAgICAgICAgICBidWlsZGVyLmFwcGVuZChWYWx1ZVRvU3RyaW5nPFQ+OjpzdHJpbmco
bm9kZS0+ZGF0YSgpKSk7CiAgICAgICAgICAgICBidWlsZGVyLmFwcGVuZCgobm9kZS0+Y29sb3Io
KSA9PSBCbGFjaykgPyAiIChibGFjaykiIDogIiAocmVkKSIpOwogICAgICAgICB9CiAgICAgICAg
IExPR19FUlJPUigiJXMiLCBidWlsZGVyLnRvU3RyaW5nKCkuYXNjaWkoKS5kYXRhKCkpOwpkaWZm
IC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1dlYktpdC9jaHJvbWl1bS9DaGFu
Z2VMb2cKaW5kZXggZTZjODAwYjZmZWM4YmNjYWY4OGJjMGNiNWJlNzBmYjFiMmRlMDE3OS4uZTdk
ZGI4ODM4MzZkZjRmMDA5N2FjMzAwNjdiYTNjM2JlNzZkMzdjMSAxMDA2NDQKLS0tIGEvV2ViS2l0
L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTUgQEAKKzIwMTAtMTAtMDQgIE5pY28gV2ViZXIgIDx0aGFraXNAY2hyb21pdW0ub3Jn
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEZpeCBi
cm9rZW4gQysrIGluIFBPREludGVydmFsIGFuZCBQT0RJbnRlcnZhbFRyZWUKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ3MDYzCisKKyAgICAgICAgQ2hh
bmdlIGZ1bmN0aW9ucyB0byBiZSB0ZW1wbGF0ZSBzcGVjaWFsaXphdGlvbnMsIGxpa2UgaXQncyBu
b3cgcmVxdWlyZWQKKyAgICAgICAgYnkgUE9ESW50ZXJ2YWxUcmVlIGFuZCBmcmllbmRzLgorCisg
ICAgICAgICogdGVzdHMvUE9ESW50ZXJ2YWxUcmVlVGVzdC5jcHA6CisKIDIwMTAtMTAtMDEgIE1p
aGFpIFBhcnBhcml0YSAgPG1paGFpcEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQg
YnkgTmF0ZSBDaGFwaW4uCmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvUE9ESW50
ZXJ2YWxUcmVlVGVzdC5jcHAgYi9XZWJLaXQvY2hyb21pdW0vdGVzdHMvUE9ESW50ZXJ2YWxUcmVl
VGVzdC5jcHAKaW5kZXggM2E4YTI0NWJiMjNhZDJjY2IzYzcyZjM2MjhhOTNjMGU4MTVjNGYxNC4u
ODI0MWE4OWRjYjg3NTA3OTc3OGVhNjUyOGIxYjg1OTQ1YTE3MGU1YSAxMDA2NDQKLS0tIGEvV2Vi
S2l0L2Nocm9taXVtL3Rlc3RzL1BPREludGVydmFsVHJlZVRlc3QuY3BwCisrKyBiL1dlYktpdC9j
aHJvbWl1bS90ZXN0cy9QT0RJbnRlcnZhbFRyZWVUZXN0LmNwcApAQCAtNDEsMTUgKzQxLDIwIEBA
IHVzaW5nIFRyZWVUZXN0SGVscGVyczo6Z2VuZXJhdGVTZWVkOwogdXNpbmcgVHJlZVRlc3RIZWxw
ZXJzOjppbml0UmFuZG9tOwogdXNpbmcgVHJlZVRlc3RIZWxwZXJzOjpuZXh0UmFuZG9tOwogCi1p
bmxpbmUgU3RyaW5nIHZhbHVlVG9TdHJpbmcoY29uc3QgZmxvYXQmIHZhbHVlKQotewotICAgIHJl
dHVybiBTdHJpbmc6Om51bWJlcih2YWx1ZSk7Ci19CisjaWZuZGVmIE5ERUJVRwordGVtcGxhdGU8
Pgorc3RydWN0IFZhbHVlVG9TdHJpbmc8ZmxvYXQ+IHsKKyAgICBzdGF0aWMgU3RyaW5nIHN0cmlu
Zyhjb25zdCBmbG9hdCYgdmFsdWUpIHsgcmV0dXJuIFN0cmluZzo6bnVtYmVyKHZhbHVlKTsgfQor
fTsKIAotaW5saW5lIFN0cmluZyB2YWx1ZVRvU3RyaW5nKHZvaWQqIGNvbnN0JiB2YWx1ZSkKLXsK
LSAgICByZXR1cm4gU3RyaW5nOjpmb3JtYXQoIjB4JXAiLCB2YWx1ZSk7Ci19Cit0ZW1wbGF0ZTw+
CitzdHJ1Y3QgVmFsdWVUb1N0cmluZzx2b2lkKj4geworICAgIHN0YXRpYyBTdHJpbmcgc3RyaW5n
KHZvaWQqIGNvbnN0JiB2YWx1ZSkKKyAgICB7CisgICAgICAgIHJldHVybiBTdHJpbmc6OmZvcm1h
dCgiMHglcCIsIHZhbHVlKTsKKyAgICB9Cit9OworI2VuZGlmCiAKIFRFU1QoUE9ESW50ZXJ2YWxU
cmVlVGVzdCwgVGVzdEluc2VydGlvbikKIHsKQEAgLTgyLDYgKzg3LDE2IEBAIFRFU1QoUE9ESW50
ZXJ2YWxUcmVlVGVzdCwgVGVzdFF1ZXJ5QWdhaW5zdFplcm9TaXplSW50ZXJ2YWwpCiAgICAgRVhQ
RUNUX0VRKDQsIHJlc3VsdFswXS5oaWdoKCkpOwogfQogCisjaWZuZGVmIE5ERUJVRwordGVtcGxh
dGU8Pgorc3RydWN0IFZhbHVlVG9TdHJpbmc8aW50Kj4geworICAgIHN0YXRpYyBTdHJpbmcgc3Ry
aW5nKGludCogY29uc3QmIHZhbHVlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIFN0cmluZzo6Zm9y
bWF0KCIweCVwIiwgdmFsdWUpOworICAgIH0KK307CisjZW5kaWYKKwogVEVTVChQT0RJbnRlcnZh
bFRyZWVUZXN0LCBUZXN0RHVwbGljYXRlRWxlbWVudEluc2VydGlvbikKIHsKICAgICBQT0RJbnRl
cnZhbFRyZWU8ZmxvYXQsIGludCo+IHRyZWU7CkBAIC0xMTMsMTMgKzEyOCwxOCBAQCBwdWJsaWM6
CiAgICAgaW50IGI7CiB9OwogCi1pbmxpbmUgU3RyaW5nIHZhbHVlVG9TdHJpbmcoY29uc3QgVXNl
ckRhdGExJiB2YWx1ZSkKLXsKLSAgICByZXR1cm4gU3RyaW5nKCJbVXNlckRhdGExIGE9IikgKyBT
dHJpbmc6Om51bWJlcih2YWx1ZS5hKSArICIgYj0iICsgU3RyaW5nOjpudW1iZXIodmFsdWUuYikg
KyAiXSI7Ci19Ci0KIH0gLy8gYW5vbnltb3VzIG5hbWVzcGFjZQogCisjaWZuZGVmIE5ERUJVRwor
dGVtcGxhdGU8Pgorc3RydWN0IFZhbHVlVG9TdHJpbmc8VXNlckRhdGExPiB7CisgICAgc3RhdGlj
IFN0cmluZyBzdHJpbmcoY29uc3QgVXNlckRhdGExJiB2YWx1ZSkKKyAgICB7CisgICAgICAgIHJl
dHVybiBTdHJpbmcoIltVc2VyRGF0YTEgYT0iKSArIFN0cmluZzo6bnVtYmVyKHZhbHVlLmEpICsg
IiBiPSIgKyBTdHJpbmc6Om51bWJlcih2YWx1ZS5iKSArICJdIjsKKyAgICB9Cit9OworI2VuZGlm
CisKIFRFU1QoUE9ESW50ZXJ2YWxUcmVlVGVzdCwgVGVzdEluc2VydGlvbk9mQ29tcGxleFVzZXJE
YXRhKQogewogICAgIFBPREludGVydmFsVHJlZTxmbG9hdCwgVXNlckRhdGExPiB0cmVlOwpAQCAt
MTY1LDEzICsxODUsMTggQEAgcHJpdmF0ZToKICAgICBib29sIG9wZXJhdG9yIT0oY29uc3QgRW5k
cG9pbnRUeXBlMSYgb3RoZXIpOwogfTsKIAotaW5saW5lIFN0cmluZyB2YWx1ZVRvU3RyaW5nKGNv
bnN0IEVuZHBvaW50VHlwZTEmIHZhbHVlKQotewotICAgIHJldHVybiBTdHJpbmcoIltFbmRwb2lu
dFR5cGUxIHZhbHVlPSIpICsgU3RyaW5nOjpudW1iZXIodmFsdWUudmFsdWUoKSkgKyAiXSI7Ci19
Ci0KIH0gLy8gYW5vbnltb3VzIG5hbWVzcGFjZQogCisjaWZuZGVmIE5ERUJVRwordGVtcGxhdGU8
Pgorc3RydWN0IFZhbHVlVG9TdHJpbmc8RW5kcG9pbnRUeXBlMT4geworICAgIHN0YXRpYyBTdHJp
bmcgc3RyaW5nKGNvbnN0IEVuZHBvaW50VHlwZTEmIHZhbHVlKQorICAgIHsKKyAgICAgICAgcmV0
dXJuIFN0cmluZygiW0VuZHBvaW50VHlwZTEgdmFsdWU9IikgKyBTdHJpbmc6Om51bWJlcih2YWx1
ZS52YWx1ZSgpKSArICJdIjsKKyAgICB9Cit9OworI2VuZGlmCisKIFRFU1QoUE9ESW50ZXJ2YWxU
cmVlVGVzdCwgVGVzdFRyZWVEb2VzTm90UmVxdWlyZU1vc3RPcGVyYXRvcnMpCiB7CiAgICAgUE9E
SW50ZXJ2YWxUcmVlPEVuZHBvaW50VHlwZTE+IHRyZWU7CkBAIC0xNzksOSArMjA0LDE3IEBAIFRF
U1QoUE9ESW50ZXJ2YWxUcmVlVGVzdCwgVGVzdFRyZWVEb2VzTm90UmVxdWlyZU1vc3RPcGVyYXRv
cnMpCiAgICAgQVNTRVJUX1RSVUUodHJlZS5jaGVja0ludmFyaWFudHMoKSk7CiB9CiAKLS8vIFVu
Y29tbWVudCB0byBkZWJ1ZyBhIGZhaWx1cmUgb2YgdGhlIGluc2VydGlvbiBhbmQgZGVsZXRpb24g
dGVzdC4KKy8vIFVuY29tbWVudCB0byBkZWJ1ZyBhIGZhaWx1cmUgb2YgdGhlIGluc2VydGlvbiBh
bmQgZGVsZXRpb24gdGVzdC4gV29uJ3Qgd29yaworLy8gaW4gcmVsZWFzZSBidWlsZHMuCiAvLyAj
ZGVmaW5lIERFQlVHX0lOU0VSVElPTl9BTkRfREVMRVRJT05fVEVTVAogCisjaWZuZGVmIE5ERUJV
RwordGVtcGxhdGU8Pgorc3RydWN0IFZhbHVlVG9TdHJpbmc8aW50PiB7CisgICAgc3RhdGljIFN0
cmluZyBzdHJpbmcoY29uc3QgaW50JiB2YWx1ZSkgeyByZXR1cm4gU3RyaW5nOjpudW1iZXIodmFs
dWUpOyB9Cit9OworI2VuZGlmCisKIG5hbWVzcGFjZSB7CiAKIHZvaWQgSW5zZXJ0aW9uQW5kRGVs
ZXRpb25UZXN0KGludDMyX3Qgc2VlZCwgaW50IHRyZWVTaXplKQpAQCAtMTk4LDcgKzIzMSw3IEBA
IHZvaWQgSW5zZXJ0aW9uQW5kRGVsZXRpb25UZXN0KGludDMyX3Qgc2VlZCwgaW50IHRyZWVTaXpl
KQogICAgICAgICBQT0RJbnRlcnZhbDxpbnQ+IGludGVydmFsKGxlZnQsIGxlZnQgKyBsZW5ndGgp
OwogICAgICAgICB0cmVlLmFkZChpbnRlcnZhbCk7CiAjaWZkZWYgREVCVUdfSU5TRVJUSU9OX0FO
RF9ERUxFVElPTl9URVNUCi0gICAgICAgIExPR19FUlJPUigiKioqIEFkZGluZyBlbGVtZW50ICVz
IiwgdmFsdWVUb1N0cmluZyhpbnRlcnZhbCkuYXNjaWkoKS5kYXRhKCkpOworICAgICAgICBMT0df
RVJST1IoIioqKiBBZGRpbmcgZWxlbWVudCAlcyIsIFZhbHVlVG9TdHJpbmc8UE9ESW50ZXJ2YWw8
aW50PiA+OjpzdHJpbmcoaW50ZXJ2YWwpLmFzY2lpKCkuZGF0YSgpKTsKICNlbmRpZgogICAgICAg
ICBhZGRlZEVsZW1lbnRzLmFwcGVuZChpbnRlcnZhbCk7CiAgICAgfQpAQCAtMjA3LDcgKzI0MCw3
IEBAIHZvaWQgSW5zZXJ0aW9uQW5kRGVsZXRpb25UZXN0KGludDMyX3Qgc2VlZCwgaW50IHRyZWVT
aXplKQogICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdHJlZVNpemUgLyAyOyBpKyspIHsKICAgICAg
ICAgaW50IGluZGV4ID0gbmV4dFJhbmRvbShhZGRlZEVsZW1lbnRzLnNpemUoKSk7CiAjaWZkZWYg
REVCVUdfSU5TRVJUSU9OX0FORF9ERUxFVElPTl9URVNUCi0gICAgICAgIExPR19FUlJPUigiKioq
IFJlbW92aW5nIGVsZW1lbnQgJXMiLCB2YWx1ZVRvU3RyaW5nKGFkZGVkRWxlbWVudHNbaW5kZXhd
KS5hc2NpaSgpLmRhdGEoKSk7CisgICAgICAgIExPR19FUlJPUigiKioqIFJlbW92aW5nIGVsZW1l
bnQgJXMiLCBWYWx1ZVRvU3RyaW5nPFBPREludGVydmFsPGludD4gPjo6c3RyaW5nKGFkZGVkRWxl
bWVudHNbaW5kZXhdKS5hc2NpaSgpLmRhdGEoKSk7CiAjZW5kaWYKICAgICAgICAgQVNTRVJUX1RS
VUUodHJlZS5jb250YWlucyhhZGRlZEVsZW1lbnRzW2luZGV4XSkpIDw8ICJUZXN0IGZhaWxlZCBm
b3Igc2VlZCAiIDw8IHNlZWQ7CiAgICAgICAgIHRyZWUucmVtb3ZlKGFkZGVkRWxlbWVudHNbaW5k
ZXhdKTsKQEAgLTIyNyw3ICsyNjAsNyBAQCB2b2lkIEluc2VydGlvbkFuZERlbGV0aW9uVGVzdChp
bnQzMl90IHNlZWQsIGludCB0cmVlU2l6ZSkKICAgICAgICAgaWYgKGFkZCkgewogICAgICAgICAg
ICAgaW50IGluZGV4ID0gbmV4dFJhbmRvbShyZW1vdmVkRWxlbWVudHMuc2l6ZSgpKTsKICNpZmRl
ZiBERUJVR19JTlNFUlRJT05fQU5EX0RFTEVUSU9OX1RFU1QKLSAgICAgICAgICAgIExPR19FUlJP
UigiKioqIEFkZGluZyBlbGVtZW50ICVzIiwgdmFsdWVUb1N0cmluZyhyZW1vdmVkRWxlbWVudHNb
aW5kZXhdKS5hc2NpaSgpLmRhdGEoKSk7CisgICAgICAgICAgICBMT0dfRVJST1IoIioqKiBBZGRp
bmcgZWxlbWVudCAlcyIsIFZhbHVlVG9TdHJpbmc8UE9ESW50ZXJ2YWw8aW50PiA+OjpzdHJpbmco
cmVtb3ZlZEVsZW1lbnRzW2luZGV4XSkuYXNjaWkoKS5kYXRhKCkpOwogI2VuZGlmCiAgICAgICAg
ICAgICB0cmVlLmFkZChyZW1vdmVkRWxlbWVudHNbaW5kZXhdKTsKICAgICAgICAgICAgIGFkZGVk
RWxlbWVudHMuYXBwZW5kKHJlbW92ZWRFbGVtZW50c1tpbmRleF0pOwpAQCAtMjM1LDcgKzI2OCw3
IEBAIHZvaWQgSW5zZXJ0aW9uQW5kRGVsZXRpb25UZXN0KGludDMyX3Qgc2VlZCwgaW50IHRyZWVT
aXplKQogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgaW50IGluZGV4ID0gbmV4dFJhbmRv
bShhZGRlZEVsZW1lbnRzLnNpemUoKSk7CiAjaWZkZWYgREVCVUdfSU5TRVJUSU9OX0FORF9ERUxF
VElPTl9URVNUCi0gICAgICAgICAgICBMT0dfRVJST1IoIioqKiBSZW1vdmluZyBlbGVtZW50ICVz
IiwgdmFsdWVUb1N0cmluZyhhZGRlZEVsZW1lbnRzW2luZGV4XSkuYXNjaWkoKS5kYXRhKCkpOwor
ICAgICAgICAgICAgTE9HX0VSUk9SKCIqKiogUmVtb3ZpbmcgZWxlbWVudCAlcyIsIFZhbHVlVG9T
dHJpbmc8UE9ESW50ZXJ2YWw8aW50PiA+OjpzdHJpbmcoYWRkZWRFbGVtZW50c1tpbmRleF0pLmFz
Y2lpKCkuZGF0YSgpKTsKICNlbmRpZgogICAgICAgICAgICAgQVNTRVJUX1RSVUUodHJlZS5jb250
YWlucyhhZGRlZEVsZW1lbnRzW2luZGV4XSkpIDw8ICJUZXN0IGZhaWxlZCBmb3Igc2VlZCAiIDw8
IHNlZWQ7CiAgICAgICAgICAgICBBU1NFUlRfVFJVRSh0cmVlLnJlbW92ZShhZGRlZEVsZW1lbnRz
W2luZGV4XSkpIDw8ICJUZXN0IGZhaWxlZCBmb3Igc2VlZCAiIDw8IHNlZWQ7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>69677</attachid>
            <date>2010-10-04 13:43:44 -0700</date>
            <delta_ts>2010-10-04 23:10:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-47063-20101004134342.patch</filename>
            <type>text/plain</type>
            <size>12322</size>
            <attacher name="Nico Weber">thakis</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
NjU5N2EzODEyNDY1NzQ4YzhjYTkxY2YzZWIzYjIwNjhhMWVlMWU2My4uMjQxYTY1YmM1OGUwYzRj
ZGIwMjMwZDA3M2NkNzI1MjNhYzkxZmRjZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNSBAQAorMjAxMC0xMC0wNCAgTmlj
byBXZWJlciAgPHRoYWtpc0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgRml4IGJyb2tlbiBDKysgaW4gUE9ESW50ZXJ2YWwgYW5k
IFBPREludGVydmFsVHJlZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NDcwNjMKKworICAgICAgICBTZWUgaHR0cDovL2NsYW5nLmxsdm0ub3JnL2NvbXBh
dGliaWxpdHkuaHRtbCNkZXBfbG9va3VwIC4gU2luY2UKKyAgICAgICAgdmFsdWVUb1N0cmluZyBu
ZWVkcyB0byB3b3JrIHdpdGggbm9uLWNsYXNzIHR5cGVzLCBpdCBuZWVkcyB0byBiZQorICAgICAg
ICBkZWNsYXJlZCBiZWZvcmUgaXQncyB1c2VkLiBBbmQgc2luY2UgaXQgbmVlZHMgdG8gaGFuZGxl
IG1hbnkgdHlwZXMsIGl0CisgICAgICAgIG5lZWRzIHRvIGJlIGEgdGVtcGxhdGUgZnVuY3Rpb24s
IGZvciB3aGljaCBjbGllbnRzIHdpbGwgbmVlZCB0bworICAgICAgICBwcm92aWRlIHNwZWNpYWxp
emF0aW9ucyBmb3IgdGhlIHR5cGVzIHRoZXkgY2FyZSBhYm91dC4gUGFydGlhbCB0ZW1wbGF0ZQor
ICAgICAgICBzcGVjaWFsaXphdGlvbiBpcyBvbmx5IHN1cHBvcnRlZCBmb3Igc3RydWN0cywgc28g
d3JhcCB0aGUgZnVuY3Rpb24gaW4KKyAgICAgICAgYSBzdHJ1Y3QsIHRvby4KKworICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9QT0RJbnRlcnZhbC5oOgorICAgICAgICAoV2ViQ29yZTo6
UE9ESW50ZXJ2YWw6OnRvU3RyaW5nKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9ncHUv
UE9ESW50ZXJ2YWxUcmVlLmg6CisgICAgICAgIChXZWJDb3JlOjpQT0RJbnRlcnZhbFRyZWU6OmNo
ZWNrSW52YXJpYW50c0Zyb21Ob2RlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9ncHUv
UE9EUmVkQmxhY2tUcmVlLmg6CisgICAgICAgIChXZWJDb3JlOjpQT0RSZWRCbGFja1RyZWU6OmR1
bXBGcm9tTm9kZSk6CisKIDIwMTAtMTAtMDQgIEFsZWphbmRybyBHLiBDYXN0cm8gIDxhbGV4QGln
YWxpYS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgTWFydGluIFJvYmluc29uLgpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvUE9ESW50ZXJ2YWwuaCBiL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L1BPREludGVydmFsLmgKaW5kZXggOWRmNjliYWNhNTFi
OGE0ZDJmYTg1ZDRjNjEzOWEwYjAzMDkyODBmMi4uMTJhNDQyMDU5MDVhNjUzMWI4NjU4NGRmZmEx
NGUxMTY4NDAyMDUwNSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUv
UE9ESW50ZXJ2YWwuaAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9QT0RJbnRl
cnZhbC5oCkBAIC01NywxNCArNTcsMjQgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogLy8gY29uc3Ry
dWN0b3IgYW5kIGFzc2lnbm1lbnQgb3BlcmF0b3IuCiAvLwogLy8gSW4gZGVidWcgbW9kZSwgcHJp
bnRpbmcgb2YgaW50ZXJ2YWxzIGFuZCB0aGUgZGF0YSB0aGV5IGNvbnRhaW4gaXMKLS8vIGVuYWJs
ZWQuIFRoaXMgcmVxdWlyZXMgdGhlIGZvbGxvd2luZyBmdW5jdGlvbnMgdG8gYmUgYXZhaWxhYmxl
OgorLy8gZW5hYmxlZC4gVGhpcyByZXF1aXJlcyB0aGUgZm9sbG93aW5nIHRlbXBsYXRlIHNwZWNp
YWxpemF0aW9ucyB0byBiZQorLy8gYXZhaWxhYmxlOgogLy8KLS8vICAgU3RyaW5nIHZhbHVlVG9T
dHJpbmcoY29uc3QgVCYpOwotLy8gICBTdHJpbmcgdmFsdWVUb1N0cmluZyhjb25zdCBVc2VyRGF0
YSYpOworLy8gICB0ZW1wbGF0ZTw+IHN0cnVjdCBXZWJDb3JlOjpWYWx1ZVRvU3RyaW5nPFQ+IHsK
Ky8vICAgICAgIHN0YXRpYyBTdHJpbmcgc3RyaW5nKGNvbnN0IFQmIHQpOworLy8gICB9OworLy8g
ICB0ZW1wbGF0ZTw+IHN0cnVjdCBXZWJDb3JlOjpWYWx1ZVRvU3RyaW5nPFVzZXJEYXRhPiB7Cisv
LyAgICAgICBzdGF0aWMgU3RyaW5nIHN0cmluZyhjb25zdCBVc2VyRGF0YSYgdCk7CisvLyAgIH07
CiAvLwogLy8gTm90ZSB0aGF0IHRoaXMgY2xhc3MgcmVxdWlyZXMgYSBjb3B5IGNvbnN0cnVjdG9y
IGFuZCBhc3NpZ25tZW50CiAvLyBvcGVyYXRvciBpbiBvcmRlciB0byBiZSBzdG9yZWQgaW4gdGhl
IHJlZC1ibGFjayB0cmVlLgogCisjaWZuZGVmIE5ERUJVRwordGVtcGxhdGU8Y2xhc3MgVD4KK3N0
cnVjdCBWYWx1ZVRvU3RyaW5nOworI2VuZGlmCisKIHRlbXBsYXRlPGNsYXNzIFQsIGNsYXNzIFVz
ZXJEYXRhID0gdm9pZCo+CiBjbGFzcyBQT0RJbnRlcnZhbCB7CiBwdWJsaWM6CkBAIC0xMzEsMTMg
KzE0MSwxMyBAQCBwdWJsaWM6CiAgICAgewogICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7
CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCJbUE9ESW50ZXJ2YWwgKCIpOwotICAgICAgICBidWls
ZGVyLmFwcGVuZCh2YWx1ZVRvU3RyaW5nKGxvdygpKSk7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5k
KFZhbHVlVG9TdHJpbmc8VD46OnN0cmluZyhsb3coKSkpOwogICAgICAgICBidWlsZGVyLmFwcGVu
ZCgiLCAiKTsKLSAgICAgICAgYnVpbGRlci5hcHBlbmQodmFsdWVUb1N0cmluZyhoaWdoKCkpKTsK
KyAgICAgICAgYnVpbGRlci5hcHBlbmQoVmFsdWVUb1N0cmluZzxUPjo6c3RyaW5nKGhpZ2goKSkp
OwogICAgICAgICBidWlsZGVyLmFwcGVuZCgiKSwgZGF0YT0iKTsKLSAgICAgICAgYnVpbGRlci5h
cHBlbmQodmFsdWVUb1N0cmluZyhkYXRhKCkpKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoVmFs
dWVUb1N0cmluZzxVc2VyRGF0YT46OnN0cmluZyhkYXRhKCkpKTsKICAgICAgICAgYnVpbGRlci5h
cHBlbmQoIiwgbWF4SGlnaD0iKTsKLSAgICAgICAgYnVpbGRlci5hcHBlbmQodmFsdWVUb1N0cmlu
ZyhtYXhIaWdoKCkpKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoVmFsdWVUb1N0cmluZzxUPjo6
c3RyaW5nKG1heEhpZ2goKSkpOwogICAgICAgICBidWlsZGVyLmFwcGVuZCgiXSIpOwogICAgICAg
ICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOwogICAgIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L1BPREludGVydmFsVHJlZS5oIGIvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9ncHUvUE9ESW50ZXJ2YWxUcmVlLmgKaW5kZXggYzBhODZhYTIzYzRmZDVlNGJh
YzgzNzg5NTU2MWM1ZWExNzFlOGUxZS4uMzIwY2U2MDJhMmJiOWViNTM4NmY0ZWRiMGUwNjliOWMw
OGNmOWFlZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvUE9ESW50
ZXJ2YWxUcmVlLmgKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvUE9ESW50ZXJ2
YWxUcmVlLmgKQEAgLTM1LDYgKzM1LDExIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorI2lm
bmRlZiBOREVCVUcKK3RlbXBsYXRlPGNsYXNzIFQ+CitzdHJ1Y3QgVmFsdWVUb1N0cmluZzsKKyNl
bmRpZgorCiAvLyBBbiBpbnRlcnZhbCB0cmVlLCB3aGljaCBpcyBhIGZvcm0gb2YgYXVnbWVudGVk
IHJlZC1ibGFjayB0cmVlLiBJdAogLy8gc3VwcG9ydHMgZWZmaWNpZW50IChPKGxnIG4pKSBpbnNl
cnRpb24sIHJlbW92YWwgYW5kIHF1ZXJ5aW5nIG9mCiAvLyBpbnRlcnZhbHMgaW4gdGhlIHRyZWUu
CkBAIC0xOTEsNyArMTk2LDcgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIGxvY2FsTWF4VmFsdWUg
PSBub2RlLT5kYXRhKCkuaGlnaCgpOwogICAgICAgICBpZiAoIShsb2NhbE1heFZhbHVlID09IG5v
ZGUtPmRhdGEoKS5tYXhIaWdoKCkpKSB7CiAjaWZuZGVmIE5ERUJVRwotICAgICAgICAgICAgU3Ry
aW5nIGxvY2FsTWF4VmFsdWVTdHJpbmcgPSB2YWx1ZVRvU3RyaW5nKGxvY2FsTWF4VmFsdWUpOwor
ICAgICAgICAgICAgU3RyaW5nIGxvY2FsTWF4VmFsdWVTdHJpbmcgPSBWYWx1ZVRvU3RyaW5nPFQ+
OjpzdHJpbmcobG9jYWxNYXhWYWx1ZSk7CiAgICAgICAgICAgICBMT0dfRVJST1IoIlBPREludGVy
dmFsVHJlZSB2ZXJpZmljYXRpb24gZmFpbGVkIGF0IG5vZGUgMHglcDogbG9jYWxNYXhWYWx1ZT0l
cyBhbmQgZGF0YT0lcyIsCiAgICAgICAgICAgICAgICAgICAgICAgbm9kZSwgbG9jYWxNYXhWYWx1
ZVN0cmluZy51dGY4KCkuZGF0YSgpLCBub2RlLT5kYXRhKCkudG9TdHJpbmcoKS51dGY4KCkuZGF0
YSgpKTsKICNlbmRpZgpAQCAtMjA2LDEwICsyMTEsMTIgQEAgcHJpdmF0ZToKICNpZm5kZWYgTkRF
QlVHCiAvLyBTdXBwb3J0IGZvciBwcmludGluZyBQT0RJbnRlcnZhbHMgYXQgdGhlIFBPRFJlZEJs
YWNrVHJlZSBsZXZlbC4KIHRlbXBsYXRlPGNsYXNzIFQsIGNsYXNzIFVzZXJEYXRhPgotU3RyaW5n
IHZhbHVlVG9TdHJpbmcoY29uc3QgUE9ESW50ZXJ2YWw8VCwgVXNlckRhdGE+JiBpbnRlcnZhbCkK
LXsKLSAgICByZXR1cm4gaW50ZXJ2YWwudG9TdHJpbmcoKTsKLX0KK3N0cnVjdCBWYWx1ZVRvU3Ry
aW5nPFBPREludGVydmFsPFQsIFVzZXJEYXRhPiA+IHsKKyAgICBzdGF0aWMgU3RyaW5nIHN0cmlu
Zyhjb25zdCBQT0RJbnRlcnZhbDxULCBVc2VyRGF0YT4mIGludGVydmFsKQorICAgIHsKKyAgICAg
ICAgcmV0dXJuIGludGVydmFsLnRvU3RyaW5nKCk7CisgICAgfQorfTsKICNlbmRpZgogCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2dwdS9QT0RSZWRCbGFja1RyZWUuaCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L1BP
RFJlZEJsYWNrVHJlZS5oCmluZGV4IDliMDIwMzcwY2ZjODljNTMxMTI0YWRiZmNhOTgzOTlhYTMw
N2YzYmIuLjc4OTg2MjgyYzc5MzMwMDc4N2U5ZjEzNzM3ZjJmNWY0OTFmN2Q3ZGMgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L1BPRFJlZEJsYWNrVHJlZS5oCisrKyBi
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L1BPRFJlZEJsYWNrVHJlZS5oCkBAIC00Miw5
ICs0MiwxMSBAQAogLy8gdGhlICI8IiBhbmQgIj09IiBvcGVyYXRvcnMuCiAvLwogLy8gSW4gZGVi
dWcgbW9kZSwgcHJpbnRpbmcgb2YgdGhlIGRhdGEgY29udGFpbmVkIGluIHRoZSB0cmVlIGlzCi0v
LyBlbmFibGVkLiBUaGlzIHJlcXVpcmVzIHRoZSBmb2xsb3dpbmcgZnVuY3Rpb24gdG8gYmUgYXZh
aWxhYmxlOgorLy8gZW5hYmxlZC4gVGhpcyByZXF1aXJlcyB0aGUgdGVtcGxhdGUgc3BlY2lhbGl6
YXRpb24gdG8gYmUgYXZhaWxhYmxlOgogLy8KLS8vICAgU3RyaW5nIHZhbHVlVG9TdHJpbmcoY29u
c3QgVCYpOworLy8gICB0ZW1wbGF0ZTw+IHN0cnVjdCBXZWJDb3JlOjpWYWx1ZVRvU3RyaW5nPFQ+
IHsKKy8vICAgICAgIHN0YXRpYyBTdHJpbmcgc3RyaW5nKGNvbnN0IFQmIHQpOworLy8gICB9Owog
Ly8KIC8vIE5vdGUgdGhhdCB3aGVuIGNvbXBsZXggdHlwZXMgYXJlIHN0b3JlZCBpbiB0aGlzIHJl
ZC9ibGFjayB0cmVlLCBpdAogLy8gaXMgcG9zc2libGUgdGhhdCBzaW5nbGUgaW52b2NhdGlvbnMg
b2YgdGhlICI8IiBhbmQgIj09IiBvcGVyYXRvcnMKQEAgLTgzLDYgKzg1LDExIEBACiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAorI2lmbmRlZiBOREVCVUcKK3RlbXBsYXRlPGNsYXNzIFQ+CitzdHJ1
Y3QgVmFsdWVUb1N0cmluZzsKKyNlbmRpZgorCiB0ZW1wbGF0ZTxjbGFzcyBUPgogY2xhc3MgUE9E
UmVkQmxhY2tUcmVlIHsKIHB1YmxpYzoKQEAgLTcyMyw3ICs3MzAsNyBAQCBwcml2YXRlOgogICAg
ICAgICBidWlsZGVyLmFwcGVuZCgiLSIpOwogICAgICAgICBpZiAobm9kZSkgewogICAgICAgICAg
ICAgYnVpbGRlci5hcHBlbmQoIiAiKTsKLSAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKHZhbHVl
VG9TdHJpbmcobm9kZS0+ZGF0YSgpKSk7CisgICAgICAgICAgICBidWlsZGVyLmFwcGVuZChWYWx1
ZVRvU3RyaW5nPFQ+OjpzdHJpbmcobm9kZS0+ZGF0YSgpKSk7CiAgICAgICAgICAgICBidWlsZGVy
LmFwcGVuZCgobm9kZS0+Y29sb3IoKSA9PSBCbGFjaykgPyAiIChibGFjaykiIDogIiAocmVkKSIp
OwogICAgICAgICB9CiAgICAgICAgIExPR19FUlJPUigiJXMiLCBidWlsZGVyLnRvU3RyaW5nKCku
YXNjaWkoKS5kYXRhKCkpOwpkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBi
L1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggZTZjODAwYjZmZWM4YmNjYWY4OGJjMGNi
NWJlNzBmYjFiMmRlMDE3OS4uZTdkZGI4ODM4MzZkZjRmMDA5N2FjMzAwNjdiYTNjM2JlNzZkMzdj
MSAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTAtMTAtMDQgIE5pY28gV2ViZXIg
IDx0aGFraXNAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEZpeCBicm9rZW4gQysrIGluIFBPREludGVydmFsIGFuZCBQT0RJbnRl
cnZhbFRyZWUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTQ3MDYzCisKKyAgICAgICAgQ2hhbmdlIGZ1bmN0aW9ucyB0byBiZSB0ZW1wbGF0ZSBzcGVjaWFs
aXphdGlvbnMsIGxpa2UgaXQncyBub3cgcmVxdWlyZWQKKyAgICAgICAgYnkgUE9ESW50ZXJ2YWxU
cmVlIGFuZCBmcmllbmRzLgorCisgICAgICAgICogdGVzdHMvUE9ESW50ZXJ2YWxUcmVlVGVzdC5j
cHA6CisKIDIwMTAtMTAtMDEgIE1paGFpIFBhcnBhcml0YSAgPG1paGFpcEBjaHJvbWl1bS5vcmc+
CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgTmF0ZSBDaGFwaW4uCmRpZmYgLS1naXQgYS9XZWJLaXQv
Y2hyb21pdW0vdGVzdHMvUE9ESW50ZXJ2YWxUcmVlVGVzdC5jcHAgYi9XZWJLaXQvY2hyb21pdW0v
dGVzdHMvUE9ESW50ZXJ2YWxUcmVlVGVzdC5jcHAKaW5kZXggM2E4YTI0NWJiMjNhZDJjY2IzYzcy
ZjM2MjhhOTNjMGU4MTVjNGYxNC4uODI0MWE4OWRjYjg3NTA3OTc3OGVhNjUyOGIxYjg1OTQ1YTE3
MGU1YSAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL1BPREludGVydmFsVHJlZVRl
c3QuY3BwCisrKyBiL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9QT0RJbnRlcnZhbFRyZWVUZXN0LmNw
cApAQCAtNDEsMTUgKzQxLDIwIEBAIHVzaW5nIFRyZWVUZXN0SGVscGVyczo6Z2VuZXJhdGVTZWVk
OwogdXNpbmcgVHJlZVRlc3RIZWxwZXJzOjppbml0UmFuZG9tOwogdXNpbmcgVHJlZVRlc3RIZWxw
ZXJzOjpuZXh0UmFuZG9tOwogCi1pbmxpbmUgU3RyaW5nIHZhbHVlVG9TdHJpbmcoY29uc3QgZmxv
YXQmIHZhbHVlKQotewotICAgIHJldHVybiBTdHJpbmc6Om51bWJlcih2YWx1ZSk7Ci19CisjaWZu
ZGVmIE5ERUJVRwordGVtcGxhdGU8Pgorc3RydWN0IFZhbHVlVG9TdHJpbmc8ZmxvYXQ+IHsKKyAg
ICBzdGF0aWMgU3RyaW5nIHN0cmluZyhjb25zdCBmbG9hdCYgdmFsdWUpIHsgcmV0dXJuIFN0cmlu
Zzo6bnVtYmVyKHZhbHVlKTsgfQorfTsKIAotaW5saW5lIFN0cmluZyB2YWx1ZVRvU3RyaW5nKHZv
aWQqIGNvbnN0JiB2YWx1ZSkKLXsKLSAgICByZXR1cm4gU3RyaW5nOjpmb3JtYXQoIjB4JXAiLCB2
YWx1ZSk7Ci19Cit0ZW1wbGF0ZTw+CitzdHJ1Y3QgVmFsdWVUb1N0cmluZzx2b2lkKj4geworICAg
IHN0YXRpYyBTdHJpbmcgc3RyaW5nKHZvaWQqIGNvbnN0JiB2YWx1ZSkKKyAgICB7CisgICAgICAg
IHJldHVybiBTdHJpbmc6OmZvcm1hdCgiMHglcCIsIHZhbHVlKTsKKyAgICB9Cit9OworI2VuZGlm
CiAKIFRFU1QoUE9ESW50ZXJ2YWxUcmVlVGVzdCwgVGVzdEluc2VydGlvbikKIHsKQEAgLTgyLDYg
Kzg3LDE2IEBAIFRFU1QoUE9ESW50ZXJ2YWxUcmVlVGVzdCwgVGVzdFF1ZXJ5QWdhaW5zdFplcm9T
aXplSW50ZXJ2YWwpCiAgICAgRVhQRUNUX0VRKDQsIHJlc3VsdFswXS5oaWdoKCkpOwogfQogCisj
aWZuZGVmIE5ERUJVRwordGVtcGxhdGU8Pgorc3RydWN0IFZhbHVlVG9TdHJpbmc8aW50Kj4gewor
ICAgIHN0YXRpYyBTdHJpbmcgc3RyaW5nKGludCogY29uc3QmIHZhbHVlKQorICAgIHsKKyAgICAg
ICAgcmV0dXJuIFN0cmluZzo6Zm9ybWF0KCIweCVwIiwgdmFsdWUpOworICAgIH0KK307CisjZW5k
aWYKKwogVEVTVChQT0RJbnRlcnZhbFRyZWVUZXN0LCBUZXN0RHVwbGljYXRlRWxlbWVudEluc2Vy
dGlvbikKIHsKICAgICBQT0RJbnRlcnZhbFRyZWU8ZmxvYXQsIGludCo+IHRyZWU7CkBAIC0xMTMs
MTMgKzEyOCwxOCBAQCBwdWJsaWM6CiAgICAgaW50IGI7CiB9OwogCi1pbmxpbmUgU3RyaW5nIHZh
bHVlVG9TdHJpbmcoY29uc3QgVXNlckRhdGExJiB2YWx1ZSkKLXsKLSAgICByZXR1cm4gU3RyaW5n
KCJbVXNlckRhdGExIGE9IikgKyBTdHJpbmc6Om51bWJlcih2YWx1ZS5hKSArICIgYj0iICsgU3Ry
aW5nOjpudW1iZXIodmFsdWUuYikgKyAiXSI7Ci19Ci0KIH0gLy8gYW5vbnltb3VzIG5hbWVzcGFj
ZQogCisjaWZuZGVmIE5ERUJVRwordGVtcGxhdGU8Pgorc3RydWN0IFZhbHVlVG9TdHJpbmc8VXNl
ckRhdGExPiB7CisgICAgc3RhdGljIFN0cmluZyBzdHJpbmcoY29uc3QgVXNlckRhdGExJiB2YWx1
ZSkKKyAgICB7CisgICAgICAgIHJldHVybiBTdHJpbmcoIltVc2VyRGF0YTEgYT0iKSArIFN0cmlu
Zzo6bnVtYmVyKHZhbHVlLmEpICsgIiBiPSIgKyBTdHJpbmc6Om51bWJlcih2YWx1ZS5iKSArICJd
IjsKKyAgICB9Cit9OworI2VuZGlmCisKIFRFU1QoUE9ESW50ZXJ2YWxUcmVlVGVzdCwgVGVzdElu
c2VydGlvbk9mQ29tcGxleFVzZXJEYXRhKQogewogICAgIFBPREludGVydmFsVHJlZTxmbG9hdCwg
VXNlckRhdGExPiB0cmVlOwpAQCAtMTY1LDEzICsxODUsMTggQEAgcHJpdmF0ZToKICAgICBib29s
IG9wZXJhdG9yIT0oY29uc3QgRW5kcG9pbnRUeXBlMSYgb3RoZXIpOwogfTsKIAotaW5saW5lIFN0
cmluZyB2YWx1ZVRvU3RyaW5nKGNvbnN0IEVuZHBvaW50VHlwZTEmIHZhbHVlKQotewotICAgIHJl
dHVybiBTdHJpbmcoIltFbmRwb2ludFR5cGUxIHZhbHVlPSIpICsgU3RyaW5nOjpudW1iZXIodmFs
dWUudmFsdWUoKSkgKyAiXSI7Ci19Ci0KIH0gLy8gYW5vbnltb3VzIG5hbWVzcGFjZQogCisjaWZu
ZGVmIE5ERUJVRwordGVtcGxhdGU8Pgorc3RydWN0IFZhbHVlVG9TdHJpbmc8RW5kcG9pbnRUeXBl
MT4geworICAgIHN0YXRpYyBTdHJpbmcgc3RyaW5nKGNvbnN0IEVuZHBvaW50VHlwZTEmIHZhbHVl
KQorICAgIHsKKyAgICAgICAgcmV0dXJuIFN0cmluZygiW0VuZHBvaW50VHlwZTEgdmFsdWU9Iikg
KyBTdHJpbmc6Om51bWJlcih2YWx1ZS52YWx1ZSgpKSArICJdIjsKKyAgICB9Cit9OworI2VuZGlm
CisKIFRFU1QoUE9ESW50ZXJ2YWxUcmVlVGVzdCwgVGVzdFRyZWVEb2VzTm90UmVxdWlyZU1vc3RP
cGVyYXRvcnMpCiB7CiAgICAgUE9ESW50ZXJ2YWxUcmVlPEVuZHBvaW50VHlwZTE+IHRyZWU7CkBA
IC0xNzksOSArMjA0LDE3IEBAIFRFU1QoUE9ESW50ZXJ2YWxUcmVlVGVzdCwgVGVzdFRyZWVEb2Vz
Tm90UmVxdWlyZU1vc3RPcGVyYXRvcnMpCiAgICAgQVNTRVJUX1RSVUUodHJlZS5jaGVja0ludmFy
aWFudHMoKSk7CiB9CiAKLS8vIFVuY29tbWVudCB0byBkZWJ1ZyBhIGZhaWx1cmUgb2YgdGhlIGlu
c2VydGlvbiBhbmQgZGVsZXRpb24gdGVzdC4KKy8vIFVuY29tbWVudCB0byBkZWJ1ZyBhIGZhaWx1
cmUgb2YgdGhlIGluc2VydGlvbiBhbmQgZGVsZXRpb24gdGVzdC4gV29uJ3Qgd29yaworLy8gaW4g
cmVsZWFzZSBidWlsZHMuCiAvLyAjZGVmaW5lIERFQlVHX0lOU0VSVElPTl9BTkRfREVMRVRJT05f
VEVTVAogCisjaWZuZGVmIE5ERUJVRwordGVtcGxhdGU8Pgorc3RydWN0IFZhbHVlVG9TdHJpbmc8
aW50PiB7CisgICAgc3RhdGljIFN0cmluZyBzdHJpbmcoY29uc3QgaW50JiB2YWx1ZSkgeyByZXR1
cm4gU3RyaW5nOjpudW1iZXIodmFsdWUpOyB9Cit9OworI2VuZGlmCisKIG5hbWVzcGFjZSB7CiAK
IHZvaWQgSW5zZXJ0aW9uQW5kRGVsZXRpb25UZXN0KGludDMyX3Qgc2VlZCwgaW50IHRyZWVTaXpl
KQpAQCAtMTk4LDcgKzIzMSw3IEBAIHZvaWQgSW5zZXJ0aW9uQW5kRGVsZXRpb25UZXN0KGludDMy
X3Qgc2VlZCwgaW50IHRyZWVTaXplKQogICAgICAgICBQT0RJbnRlcnZhbDxpbnQ+IGludGVydmFs
KGxlZnQsIGxlZnQgKyBsZW5ndGgpOwogICAgICAgICB0cmVlLmFkZChpbnRlcnZhbCk7CiAjaWZk
ZWYgREVCVUdfSU5TRVJUSU9OX0FORF9ERUxFVElPTl9URVNUCi0gICAgICAgIExPR19FUlJPUigi
KioqIEFkZGluZyBlbGVtZW50ICVzIiwgdmFsdWVUb1N0cmluZyhpbnRlcnZhbCkuYXNjaWkoKS5k
YXRhKCkpOworICAgICAgICBMT0dfRVJST1IoIioqKiBBZGRpbmcgZWxlbWVudCAlcyIsIFZhbHVl
VG9TdHJpbmc8UE9ESW50ZXJ2YWw8aW50PiA+OjpzdHJpbmcoaW50ZXJ2YWwpLmFzY2lpKCkuZGF0
YSgpKTsKICNlbmRpZgogICAgICAgICBhZGRlZEVsZW1lbnRzLmFwcGVuZChpbnRlcnZhbCk7CiAg
ICAgfQpAQCAtMjA3LDcgKzI0MCw3IEBAIHZvaWQgSW5zZXJ0aW9uQW5kRGVsZXRpb25UZXN0KGlu
dDMyX3Qgc2VlZCwgaW50IHRyZWVTaXplKQogICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdHJlZVNp
emUgLyAyOyBpKyspIHsKICAgICAgICAgaW50IGluZGV4ID0gbmV4dFJhbmRvbShhZGRlZEVsZW1l
bnRzLnNpemUoKSk7CiAjaWZkZWYgREVCVUdfSU5TRVJUSU9OX0FORF9ERUxFVElPTl9URVNUCi0g
ICAgICAgIExPR19FUlJPUigiKioqIFJlbW92aW5nIGVsZW1lbnQgJXMiLCB2YWx1ZVRvU3RyaW5n
KGFkZGVkRWxlbWVudHNbaW5kZXhdKS5hc2NpaSgpLmRhdGEoKSk7CisgICAgICAgIExPR19FUlJP
UigiKioqIFJlbW92aW5nIGVsZW1lbnQgJXMiLCBWYWx1ZVRvU3RyaW5nPFBPREludGVydmFsPGlu
dD4gPjo6c3RyaW5nKGFkZGVkRWxlbWVudHNbaW5kZXhdKS5hc2NpaSgpLmRhdGEoKSk7CiAjZW5k
aWYKICAgICAgICAgQVNTRVJUX1RSVUUodHJlZS5jb250YWlucyhhZGRlZEVsZW1lbnRzW2luZGV4
XSkpIDw8ICJUZXN0IGZhaWxlZCBmb3Igc2VlZCAiIDw8IHNlZWQ7CiAgICAgICAgIHRyZWUucmVt
b3ZlKGFkZGVkRWxlbWVudHNbaW5kZXhdKTsKQEAgLTIyNyw3ICsyNjAsNyBAQCB2b2lkIEluc2Vy
dGlvbkFuZERlbGV0aW9uVGVzdChpbnQzMl90IHNlZWQsIGludCB0cmVlU2l6ZSkKICAgICAgICAg
aWYgKGFkZCkgewogICAgICAgICAgICAgaW50IGluZGV4ID0gbmV4dFJhbmRvbShyZW1vdmVkRWxl
bWVudHMuc2l6ZSgpKTsKICNpZmRlZiBERUJVR19JTlNFUlRJT05fQU5EX0RFTEVUSU9OX1RFU1QK
LSAgICAgICAgICAgIExPR19FUlJPUigiKioqIEFkZGluZyBlbGVtZW50ICVzIiwgdmFsdWVUb1N0
cmluZyhyZW1vdmVkRWxlbWVudHNbaW5kZXhdKS5hc2NpaSgpLmRhdGEoKSk7CisgICAgICAgICAg
ICBMT0dfRVJST1IoIioqKiBBZGRpbmcgZWxlbWVudCAlcyIsIFZhbHVlVG9TdHJpbmc8UE9ESW50
ZXJ2YWw8aW50PiA+OjpzdHJpbmcocmVtb3ZlZEVsZW1lbnRzW2luZGV4XSkuYXNjaWkoKS5kYXRh
KCkpOwogI2VuZGlmCiAgICAgICAgICAgICB0cmVlLmFkZChyZW1vdmVkRWxlbWVudHNbaW5kZXhd
KTsKICAgICAgICAgICAgIGFkZGVkRWxlbWVudHMuYXBwZW5kKHJlbW92ZWRFbGVtZW50c1tpbmRl
eF0pOwpAQCAtMjM1LDcgKzI2OCw3IEBAIHZvaWQgSW5zZXJ0aW9uQW5kRGVsZXRpb25UZXN0KGlu
dDMyX3Qgc2VlZCwgaW50IHRyZWVTaXplKQogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAg
aW50IGluZGV4ID0gbmV4dFJhbmRvbShhZGRlZEVsZW1lbnRzLnNpemUoKSk7CiAjaWZkZWYgREVC
VUdfSU5TRVJUSU9OX0FORF9ERUxFVElPTl9URVNUCi0gICAgICAgICAgICBMT0dfRVJST1IoIioq
KiBSZW1vdmluZyBlbGVtZW50ICVzIiwgdmFsdWVUb1N0cmluZyhhZGRlZEVsZW1lbnRzW2luZGV4
XSkuYXNjaWkoKS5kYXRhKCkpOworICAgICAgICAgICAgTE9HX0VSUk9SKCIqKiogUmVtb3Zpbmcg
ZWxlbWVudCAlcyIsIFZhbHVlVG9TdHJpbmc8UE9ESW50ZXJ2YWw8aW50PiA+OjpzdHJpbmcoYWRk
ZWRFbGVtZW50c1tpbmRleF0pLmFzY2lpKCkuZGF0YSgpKTsKICNlbmRpZgogICAgICAgICAgICAg
QVNTRVJUX1RSVUUodHJlZS5jb250YWlucyhhZGRlZEVsZW1lbnRzW2luZGV4XSkpIDw8ICJUZXN0
IGZhaWxlZCBmb3Igc2VlZCAiIDw8IHNlZWQ7CiAgICAgICAgICAgICBBU1NFUlRfVFJVRSh0cmVl
LnJlbW92ZShhZGRlZEVsZW1lbnRzW2luZGV4XSkpIDw8ICJUZXN0IGZhaWxlZCBmb3Igc2VlZCAi
IDw8IHNlZWQ7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>