<?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>46200</bug_id>
          
          <creation_ts>2010-09-21 10:32:57 -0700</creation_ts>
          <short_desc>Cleanup network code in ResourceHandleWin</short_desc>
          <delta_ts>2010-09-24 10:26:37 -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>
          
          <blocked>43712</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Patrick R. Gansterer">paroga</reporter>
          <assigned_to name="Patrick R. Gansterer">paroga</assigned_to>
          <cc>aroben</cc>
    
    <cc>commit-queue</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>282409</commentid>
    <comment_count>0</comment_count>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2010-09-21 10:32:57 -0700</bug_when>
    <thetext>see patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>282429</commentid>
    <comment_count>1</comment_count>
      <attachid>68260</attachid>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2010-09-21 10:52:07 -0700</bug_when>
    <thetext>Created attachment 68260
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>282483</commentid>
    <comment_count>2</comment_count>
      <attachid>68260</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2010-09-21 12:39:17 -0700</bug_when>
    <thetext>Comment on attachment 68260
Patch

I&apos;m finding this patch hard to review, which I think is a sign that this patch is trying to do too much at once. Is there a way to break it up into smaller pieces?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>282527</commentid>
    <comment_count>3</comment_count>
      <attachid>68285</attachid>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2010-09-21 13:42:39 -0700</bug_when>
    <thetext>Created attachment 68285
Patch (subset of first patch)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>283608</commentid>
    <comment_count>4</comment_count>
      <attachid>68285</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2010-09-23 06:53:39 -0700</bug_when>
    <thetext>Comment on attachment 68285
Patch (subset of first patch)

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

&gt; WebCore/platform/network/win/ResourceHandleWin.cpp:405
&gt; +    DWORD flags =
&gt; +        INTERNET_FLAG_KEEP_CONNECTION |
&gt; +        INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTPS |
&gt; +        INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTP;

Operators should be at the start of each line, not the end.

&gt; WebCore/platform/network/win/ResourceHandleWin.cpp:414
&gt; +    d-&gt;m_connectHandle = InternetConnectW(d-&gt;m_internetHandle,
&gt; +                                          firstRequest().url().host().charactersWithNullTermination(),
&gt; +                                          firstRequest().url().port(),
&gt; +                                          0, // no username
&gt; +                                          0, // no password
&gt; +                                          INTERNET_SERVICE_HTTP,
&gt; +                                          flags,
&gt; +                                          reinterpret_cast&lt;DWORD_PTR&gt;(this));

We don&apos;t normally wrap and line up parameters like this. (Same comment applies elsewhere in this patch.)

&gt; WebCore/platform/network/win/ResourceHandleWin.cpp:444
&gt; +    if (!d-&gt;m_requestHandle) {
&gt; +        InternetCloseHandle(d-&gt;m_connectHandle);
&gt; +        return false;
&gt; +    }

Do we need to null out d-&gt;m_connectHandle here, too?

&gt; WebCore/platform/network/win/ResourceHandleWin.cpp:448
&gt; +    INTERNET_BUFFERSW internetBuffers;
&gt; +    ZeroMemory(&amp;internetBuffers, sizeof(INTERNET_BUFFERSW));
&gt; +    internetBuffers.dwStructSize = sizeof(INTERNET_BUFFERSW);

If you use sizeof(internetBuffers) instead, you won&apos;t have to change three lines if the type changes in the future.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>283631</commentid>
    <comment_count>5</comment_count>
      <attachid>68516</attachid>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2010-09-23 07:42:52 -0700</bug_when>
    <thetext>Created attachment 68516
Patch (subset of first patch)

&gt; &gt; WebCore/platform/network/win/ResourceHandleWin.cpp:444
&gt; &gt; +    if (!d-&gt;m_requestHandle) {
&gt; &gt; +        InternetCloseHandle(d-&gt;m_connectHandle);
&gt; &gt; +        return false;
&gt; &gt; +    }
&gt; 
&gt; Do we need to null out d-&gt;m_connectHandle here, too?
No, no need, because nothing will happen after the &quot;return false&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>283682</commentid>
    <comment_count>6</comment_count>
      <attachid>68516</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-09-23 09:13:27 -0700</bug_when>
    <thetext>Comment on attachment 68516
Patch (subset of first patch)

Clearing flags on attachment: 68516

Committed r68147: &lt;http://trac.webkit.org/changeset/68147&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>284498</commentid>
    <comment_count>7</comment_count>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2010-09-24 10:26:37 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>68260</attachid>
            <date>2010-09-21 10:52:07 -0700</date>
            <delta_ts>2010-09-24 10:25:41 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-46200.patch</filename>
            <type>text/plain</type>
            <size>13652</size>
            <attacher name="Patrick R. Gansterer">paroga</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
ZWRiNGU5Ny4uOTk3YTZkYiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAxMC0wOS0yMTEgIFBhdHJpY2sgR2Fu
c3RlcmVyICA8cGFyb2dhQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgQ2xlYW51cCBuZXR3b3JrIGNvbW11bmljYXRpb24gY29kZSBp
biBSZXNvdXJjZUhhbmRsZVdpbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NDYyMDAKKworICAgICAgICBBZGQgbG9naWMgZm9yIGhhbmRsaW5nIGZvcm0g
ZGF0YSBkaXJlY3RseSBpbiBSZXNvdXJjZUhhbmRsZTo6c3RhcnQgYW5kIGZpeCBzdHlsZS4KKyAg
ICAgICAgVXNlIFVuaWNvZGUgaW5zdGVhZCBvZiBBU0NJSSBXaW5kb3dzIEFQSSBmdW5jdGlvbnMu
CisKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmg6CisgICAgICAg
ICogcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZUludGVybmFsLmg6CisgICAgICAgIChX
ZWJDb3JlOjpSZXNvdXJjZUhhbmRsZUludGVybmFsOjpSZXNvdXJjZUhhbmRsZUludGVybmFsKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL3dpbi9SZXNvdXJjZUhhbmRsZVdpbi5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6b25SZXF1ZXN0Q29tcGxldGUpOgorICAg
ICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OnN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6
OlJlc291cmNlSGFuZGxlOjpjYW5jZWwpOgorCiAyMDEwLTA5LTIxICBQYXRyaWNrIEdhbnN0ZXJl
ciAgPHBhcm9nYUB3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFkYW0gUm9iZW4u
CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGUuaCBi
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5oCmluZGV4IDE3ZDE0NzIu
LmU1ZWU0NTYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhh
bmRsZS5oCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5oCkBA
IC0xNzMsNyArMTczLDcgQEAgcHVibGljOgogICAgIHZvaWQgZmlsZUxvYWRUaW1lcihUaW1lcjxS
ZXNvdXJjZUhhbmRsZT4qKTsKICAgICB2b2lkIG9uSGFuZGxlQ3JlYXRlZChMUEFSQU0pOwogICAg
IHZvaWQgb25SZXF1ZXN0UmVkaXJlY3RlZChMUEFSQU0pOwotICAgIHZvaWQgb25SZXF1ZXN0Q29t
cGxldGUoTFBBUkFNKTsKKyAgICBib29sIG9uUmVxdWVzdENvbXBsZXRlKCk7CiAgICAgZnJpZW5k
IHZvaWQgX19zdGRjYWxsIHRyYW5zZmVySm9iU3RhdHVzQ2FsbGJhY2soSElOVEVSTkVULCBEV09S
RF9QVFIsIERXT1JELCBMUFZPSUQsIERXT1JEKTsKICAgICBmcmllbmQgTFJFU1VMVCBfX3N0ZGNh
bGwgUmVzb3VyY2VIYW5kbGVXbmRQcm9jKEhXTkQsIHVuc2lnbmVkIG1lc3NhZ2UsIFdQQVJBTSwg
TFBBUkFNKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jl
c291cmNlSGFuZGxlSW50ZXJuYWwuaCBiL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJj
ZUhhbmRsZUludGVybmFsLmgKaW5kZXggMWYyY2ZmOS4uM2YzMDljZSAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlSW50ZXJuYWwuaAorKysgYi9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGVJbnRlcm5hbC5oCkBAIC05Niw2ICs5
NiwxMCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgICAgICAsIG1fc2Vjb25kYXJ5SGFu
ZGxlKDApCiAgICAgICAgICAgICAsIG1fam9iSWQoMCkKICAgICAgICAgICAgICwgbV90aHJlYWRJ
ZCgwKQorICAgICAgICAgICAgLCBtX2ludGVybmV0SGFuZGxlKDApCisgICAgICAgICAgICAsIG1f
Y29ubmVjdEhhbmRsZSgwKQorICAgICAgICAgICAgLCBtX3JlcXVlc3RIYW5kbGUoMCkKKyAgICAg
ICAgICAgICwgbV9sb2FkU3luY2hyb25vdXNseShmYWxzZSkKICAgICAgICAgICAgICwgbV9zZW50
RW5kUmVxdWVzdChmYWxzZSkKICAgICAgICAgICAgICwgbV9ieXRlc1JlbWFpbmluZ1RvV3JpdGUo
MCkKICAgICAgICAgICAgICwgbV9oYXNSZWNlaXZlZFJlc3BvbnNlKGZhbHNlKQpAQCAtMTY5LDYg
KzE3MywxMCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIEhJTlRFUk5FVCBtX3NlY29u
ZGFyeUhhbmRsZTsKICAgICAgICAgdW5zaWduZWQgbV9qb2JJZDsKICAgICAgICAgRFdPUkQgbV90
aHJlYWRJZDsKKyAgICAgICAgSElOVEVSTkVUIG1faW50ZXJuZXRIYW5kbGU7CisgICAgICAgIEhJ
TlRFUk5FVCBtX2Nvbm5lY3RIYW5kbGU7CisgICAgICAgIEhJTlRFUk5FVCBtX3JlcXVlc3RIYW5k
bGU7CisgICAgICAgIGJvb2wgbV9sb2FkU3luY2hyb25vdXNseTsKICAgICAgICAgYm9vbCBtX3Nl
bnRFbmRSZXF1ZXN0OwogICAgICAgICBWZWN0b3I8Y2hhcj4gbV9mb3JtRGF0YTsKICAgICAgICAg
aW50IG1fYnl0ZXNSZW1haW5pbmdUb1dyaXRlOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL3dpbi9SZXNvdXJjZUhhbmRsZVdpbi5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvd2luL1Jlc291cmNlSGFuZGxlV2luLmNwcAppbmRleCA2N2M1NGJjLi5kM2UyM2ZhIDEw
MDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvd2luL1Jlc291cmNlSGFuZGxlV2lu
LmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvd2luL1Jlc291cmNlSGFuZGxlV2lu
LmNwcApAQCAtMjYyLDggKzI2MiwxMyBAQCB2b2lkIFJlc291cmNlSGFuZGxlOjpvblJlcXVlc3RS
ZWRpcmVjdGVkKExQQVJBTSBsUGFyYW0pCiAgICAgY2xpZW50KCktPndpbGxTZW5kUmVxdWVzdCh0
aGlzLCByZXF1ZXN0LCByZWRpcmVjdFJlc3BvbnNlKTsKIH0KIAotdm9pZCBSZXNvdXJjZUhhbmRs
ZTo6b25SZXF1ZXN0Q29tcGxldGUoTFBBUkFNIGxQYXJhbSkKK2Jvb2wgUmVzb3VyY2VIYW5kbGU6
Om9uUmVxdWVzdENvbXBsZXRlKCkKIHsKKyAgICBpZiAoIWQtPm1faW50ZXJuZXRIYW5kbGUpIHsg
Ly8gMCBpZiBjYW5jZWxlZC4KKyAgICAgICAgZGVyZWYoKTsgLy8gYmFsYW5jZXMgcmVmIGluIHN0
YXJ0CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKICAgICBpZiAoZC0+bV9ieXRlc1Jl
bWFpbmluZ1RvV3JpdGUpIHsKICAgICAgICAgRFdPUkQgYnl0ZXNXcml0dGVuOwogICAgICAgICBJ
bnRlcm5ldFdyaXRlRmlsZShkLT5tX3JlcXVlc3RIYW5kbGUsCkBAIC0yNzIsMTggKzI3NywxNiBA
QCB2b2lkIFJlc291cmNlSGFuZGxlOjpvblJlcXVlc3RDb21wbGV0ZShMUEFSQU0gbFBhcmFtKQog
ICAgICAgICAgICAgICAgICAgICAgICAgICAmYnl0ZXNXcml0dGVuKTsKICAgICAgICAgZC0+bV9i
eXRlc1JlbWFpbmluZ1RvV3JpdGUgLT0gYnl0ZXNXcml0dGVuOwogICAgICAgICBpZiAoZC0+bV9i
eXRlc1JlbWFpbmluZ1RvV3JpdGUpCi0gICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICBy
ZXR1cm4gdHJ1ZTsKICAgICAgICAgZC0+bV9mb3JtRGF0YS5jbGVhcigpOwogICAgIH0KIAogICAg
IGlmICghZC0+bV9zZW50RW5kUmVxdWVzdCkgewogICAgICAgICBIdHRwRW5kUmVxdWVzdFcoZC0+
bV9yZXF1ZXN0SGFuZGxlLCAwLCAwLCByZWludGVycHJldF9jYXN0PERXT1JEX1BUUj4odGhpcykp
OwogICAgICAgICBkLT5tX3NlbnRFbmRSZXF1ZXN0ID0gdHJ1ZTsKLSAgICAgICAgcmV0dXJuOwor
ICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKLSAgICBISU5URVJORVQgaGFuZGxlID0gKHJl
cXVlc3QoKS5odHRwTWV0aG9kKCkgPT0gIlBPU1QiKSA/IGQtPm1fc2Vjb25kYXJ5SGFuZGxlIDog
ZC0+bV9yZXNvdXJjZUhhbmRsZTsKLQogICAgIHN0YXRpYyBjb25zdCBpbnQgYnVmZmVyU2l6ZSA9
IDMyNzY4OwogICAgIGNoYXIgYnVmZmVyW2J1ZmZlclNpemVdOwogICAgIElOVEVSTkVUX0JVRkZF
UlNBIGJ1ZmZlcnM7CkBAIC0yOTIsOSArMjk1LDEwIEBAIHZvaWQgUmVzb3VyY2VIYW5kbGU6Om9u
UmVxdWVzdENvbXBsZXRlKExQQVJBTSBsUGFyYW0pCiAgICAgYnVmZmVycy5kd0J1ZmZlckxlbmd0
aCA9IGJ1ZmZlclNpemU7CiAKICAgICBCT09MIG9rID0gRkFMU0U7Ci0gICAgd2hpbGUgKChvayA9
IEludGVybmV0UmVhZEZpbGVFeEEoaGFuZGxlLCAmYnVmZmVycywgSVJGX05PX1dBSVQsIChEV09S
RF9QVFIpdGhpcykpICYmIGJ1ZmZlcnMuZHdCdWZmZXJMZW5ndGgpIHsKLSAgICAgICAgaWYgKCFo
YXNSZWNlaXZlZFJlc3BvbnNlKCkpIHsKLSAgICAgICAgICAgIHNldEhhc1JlY2VpdmVkUmVzcG9u
c2UoKTsKKyAgICB3aGlsZSAoKG9rID0gSW50ZXJuZXRSZWFkRmlsZUV4QShkLT5tX3JlcXVlc3RI
YW5kbGUsICZidWZmZXJzLCBkLT5tX2xvYWRTeW5jaHJvbm91c2x5ID8gMCA6IElSRl9OT19XQUlU
LCByZWludGVycHJldF9jYXN0PERXT1JEX1BUUj4odGhpcykpKSAmJiBidWZmZXJzLmR3QnVmZmVy
TGVuZ3RoKSB7CisgICAgICAgIGlmICghZC0+bV9oYXNSZWNlaXZlZFJlc3BvbnNlKSB7CisgICAg
ICAgICAgICBkLT5tX2hhc1JlY2VpdmVkUmVzcG9uc2UgPSB0cnVlOworCiAgICAgICAgICAgICBS
ZXNvdXJjZVJlc3BvbnNlIHJlc3BvbnNlOwogICAgICAgICAgICAgcmVzcG9uc2Uuc2V0VVJMKGZp
cnN0UmVxdWVzdCgpLnVybCgpKTsKIApAQCAtMzE4LDM5ICszMjIsMjIgQEAgdm9pZCBSZXNvdXJj
ZUhhbmRsZTo6b25SZXF1ZXN0Q29tcGxldGUoTFBBUkFNIGxQYXJhbSkKIAogICAgICAgICAgICAg
Y2xpZW50KCktPmRpZFJlY2VpdmVSZXNwb25zZSh0aGlzLCByZXNwb25zZSk7CiAgICAgICAgIH0K
LSAgICAgICAgY2xpZW50KCktPmRpZFJlY2VpdmVEYXRhKHRoaXMsIGJ1ZmZlciwgYnVmZmVycy5k
d0J1ZmZlckxlbmd0aCwgMCk7CisKKyAgICAgICAgaWYgKFJlc291cmNlSGFuZGxlQ2xpZW50KiBy
ZXNvdXJjZUhhbmRsZUNsaWVudCA9IGNsaWVudCgpKQorICAgICAgICAgICAgcmVzb3VyY2VIYW5k
bGVDbGllbnQtPmRpZFJlY2VpdmVEYXRhKHRoaXMsIGJ1ZmZlciwgYnVmZmVycy5kd0J1ZmZlckxl
bmd0aCwgMCk7CiAgICAgICAgIGJ1ZmZlcnMuZHdCdWZmZXJMZW5ndGggPSBidWZmZXJTaXplOwog
ICAgIH0KIAotICAgIFBsYXRmb3JtRGF0YVN0cnVjdCBwbGF0Zm9ybURhdGE7Ci0gICAgcGxhdGZv
cm1EYXRhLmVycm9yU3RyaW5nID0gMDsKLSAgICBwbGF0Zm9ybURhdGEuZXJyb3IgPSAwOwotICAg
IHBsYXRmb3JtRGF0YS5sb2FkZWQgPSBvazsKKyAgICBpZiAoIW9rICYmIEdldExhc3RFcnJvcigp
ID09IEVSUk9SX0lPX1BFTkRJTkcpCisgICAgICAgIHJldHVybiB0cnVlOwogCi0gICAgaWYgKCFv
aykgewotICAgICAgICBpbnQgZXJyb3IgPSBHZXRMYXN0RXJyb3IoKTsKLSAgICAgICAgaWYgKGVy
cm9yID09IEVSUk9SX0lPX1BFTkRJTkcpCi0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIERX
T1JEIGVycm9yU3RyaW5nQ2hhcnMgPSAwOwotICAgICAgICBpZiAoIUludGVybmV0R2V0TGFzdFJl
c3BvbnNlSW5mbygmcGxhdGZvcm1EYXRhLmVycm9yLCAwLCAmZXJyb3JTdHJpbmdDaGFycykpIHsK
LSAgICAgICAgICAgIGlmIChHZXRMYXN0RXJyb3IoKSA9PSBFUlJPUl9JTlNVRkZJQ0lFTlRfQlVG
RkVSKSB7Ci0gICAgICAgICAgICAgICAgcGxhdGZvcm1EYXRhLmVycm9yU3RyaW5nID0gbmV3IFRD
SEFSW2Vycm9yU3RyaW5nQ2hhcnNdOwotICAgICAgICAgICAgICAgIEludGVybmV0R2V0TGFzdFJl
c3BvbnNlSW5mbygmcGxhdGZvcm1EYXRhLmVycm9yLCBwbGF0Zm9ybURhdGEuZXJyb3JTdHJpbmcs
ICZlcnJvclN0cmluZ0NoYXJzKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotI2lmZGVmIFJF
U09VUkNFX0xPQURFUl9ERUJVRwotICAgICAgICBjaGFyIGJ1Zls2NF07Ci0gICAgICAgIF9zbnBy
aW50ZihidWYsIHNpemVvZihidWYpLCAiTG9hZCBlcnJvcjogJWlcbiIsIGVycm9yKTsKLSAgICAg
ICAgT3V0cHV0RGVidWdTdHJpbmdBKGJ1Zik7Ci0jZW5kaWYgCi0gICAgfQotICAgIAotICAgIGlm
IChkLT5tX3NlY29uZGFyeUhhbmRsZSkKLSAgICAgICAgSW50ZXJuZXRDbG9zZUhhbmRsZShkLT5t
X3NlY29uZGFyeUhhbmRsZSk7Ci0gICAgSW50ZXJuZXRDbG9zZUhhbmRsZShkLT5tX3Jlc291cmNl
SGFuZGxlKTsKKyAgICBpZiAoUmVzb3VyY2VIYW5kbGVDbGllbnQqIHJlc291cmNlSGFuZGxlQ2xp
ZW50ID0gY2xpZW50KCkpCisgICAgICAgIHJlc291cmNlSGFuZGxlQ2xpZW50LT5kaWRGaW5pc2hM
b2FkaW5nKHRoaXMsIDApOwogCi0gICAgY2xpZW50KCktPmRpZEZpbmlzaExvYWRpbmcodGhpcywg
MCk7Ci0gICAgZGVsZXRlIHRoaXM7CisgICAgSW50ZXJuZXRDbG9zZUhhbmRsZShkLT5tX3JlcXVl
c3RIYW5kbGUpOworICAgIEludGVybmV0Q2xvc2VIYW5kbGUoZC0+bV9jb25uZWN0SGFuZGxlKTsK
KyAgICBkZXJlZigpOyAvLyBiYWxhbmNlcyByZWYgaW4gc3RhcnQKKyAgICByZXR1cm4gZmFsc2U7
CiB9CiAKIHN0YXRpYyB2b2lkIF9fc3RkY2FsbCB0cmFuc2ZlckpvYlN0YXR1c0NhbGxiYWNrKEhJ
TlRFUk5FVCBpbnRlcm5ldEhhbmRsZSwKQEAgLTQwOCw2OCArMzk1LDEwNiBAQCBzdGF0aWMgdm9p
ZCBfX3N0ZGNhbGwgdHJhbnNmZXJKb2JTdGF0dXNDYWxsYmFjayhISU5URVJORVQgaW50ZXJuZXRI
YW5kbGUsCiAKIGJvb2wgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0KE5ldHdvcmtpbmdDb250ZXh0KiBj
b250ZXh0KQogewotICAgIHJlZigpOwogICAgIGlmIChyZXF1ZXN0KCkudXJsKCkuaXNMb2NhbEZp
bGUoKSkgeworICAgICAgICByZWYoKTsgLy8gYmFsYW5jZWQgYnkgZGVyZWYgaW4gZmlsZUxvYWRU
aW1lcgogICAgICAgICBkLT5tX2ZpbGVMb2FkVGltZXIuc3RhcnRPbmVTaG90KDAuMCk7CiAgICAg
ICAgIHJldHVybiB0cnVlOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIHN0YXRpYyBISU5URVJORVQg
aW50ZXJuZXRIYW5kbGUgPSAwOwotICAgICAgICBpZiAoIWludGVybmV0SGFuZGxlKSB7Ci0gICAg
ICAgICAgICBTdHJpbmcgdXNlckFnZW50U3RyID0gY29udGV4dC0+dXNlckFnZW50KCkgKyBTdHJp
bmcoIiIsIDEpOwotICAgICAgICAgICAgTFBDV1NUUiB1c2VyQWdlbnQgPSByZWludGVycHJldF9j
YXN0PGNvbnN0IFdDSEFSKj4odXNlckFnZW50U3RyLmNoYXJhY3RlcnMoKSk7Ci0gICAgICAgICAg
ICAvLyBsZWFrIHRoZSBJbnRlcm5ldCBmb3Igbm93Ci0gICAgICAgICAgICBpbnRlcm5ldEhhbmRs
ZSA9IEludGVybmV0T3Blbih1c2VyQWdlbnQsIElOVEVSTkVUX09QRU5fVFlQRV9QUkVDT05GSUcs
IDAsIDAsIElOVEVSTkVUX0ZMQUdfQVNZTkMpOwotICAgICAgICB9Ci0gICAgICAgIGlmICghaW50
ZXJuZXRIYW5kbGUpIHsKLSAgICAgICAgICAgIGRlbGV0ZSB0aGlzOwotICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOwotICAgICAgICB9Ci0gICAgICAgIHN0YXRpYyBJTlRFUk5FVF9TVEFUVVNfQ0FM
TEJBQ0sgY2FsbGJhY2tIYW5kbGUgPSAKLSAgICAgICAgICAgIEludGVybmV0U2V0U3RhdHVzQ2Fs
bGJhY2soaW50ZXJuZXRIYW5kbGUsIHRyYW5zZmVySm9iU3RhdHVzQ2FsbGJhY2spOworICAgIH0K
IAotICAgICAgICBpbml0aWFsaXplT2ZmU2NyZWVuUmVzb3VyY2VIYW5kbGVXaW5kb3coKTsKLSAg
ICAgICAgZC0+bV9qb2JJZCA9IGFkZFRvT3V0c3RhbmRpbmdKb2JzKHRoaXMpOworICAgIGlmICgh
ZC0+bV9pbnRlcm5ldEhhbmRsZSkKKyAgICAgICAgZC0+bV9pbnRlcm5ldEhhbmRsZSA9IGFzeW5j
aHJvbm91c0ludGVybmV0SGFuZGxlKGNvbnRleHQtPnVzZXJBZ2VudCgpKTsKIAotICAgICAgICBE
V09SRCBmbGFncyA9Ci0gICAgICAgICAgICBJTlRFUk5FVF9GTEFHX0tFRVBfQ09OTkVDVElPTiB8
Ci0gICAgICAgICAgICBJTlRFUk5FVF9GTEFHX0lHTk9SRV9SRURJUkVDVF9UT19IVFRQUyB8Ci0g
ICAgICAgICAgICBJTlRFUk5FVF9GTEFHX0lHTk9SRV9SRURJUkVDVF9UT19IVFRQOworICAgIGlm
ICghZC0+bV9pbnRlcm5ldEhhbmRsZSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgICAg
IC8vIEZvciBmb3JtIHBvc3RpbmcsIHdlIGNhbid0IHVzZSBJbnRlcm5ldE9wZW5VUkwuICBXZSBo
YXZlIHRvIHVzZQotICAgICAgICAvLyBJbnRlcm5ldENvbm5lY3QgZm9sbG93ZWQgYnkgSHR0cFNl
bmRSZXF1ZXN0LgotICAgICAgICBISU5URVJORVQgdXJsSGFuZGxlOwotICAgICAgICBTdHJpbmcg
cmVmZXJyZXIgPSBjb250ZXh0LT5yZWZlcnJlcigpOwotICAgICAgICBpZiAocmVxdWVzdCgpLmh0
dHBNZXRob2QoKSA9PSAiUE9TVCIpIHsKLSAgICAgICAgICAgIGQtPm1fcG9zdFJlZmVycmVyID0g
cmVmZXJyZXI7Ci0gICAgICAgICAgICBTdHJpbmcgaG9zdCA9IHJlcXVlc3QoKS51cmwoKS5ob3N0
KCk7Ci0gICAgICAgICAgICB1cmxIYW5kbGUgPSBJbnRlcm5ldENvbm5lY3RBKGludGVybmV0SGFu
ZGxlLCBob3N0LmxhdGluMSgpLmRhdGEoKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcmVxdWVzdCgpLnVybCgpLnBvcnQoKSwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgTlVMTCwgLy8gbm8gdXNlcm5hbWUKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwgLy8gbm8gcGFzc3dvcmQKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSU5URVJORVRfU0VSVklDRV9IVFRQLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbGFncywgKERXT1JEX1BU
UilkLT5tX2pvYklkKTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIFN0cmluZyB1cmxT
dHIgPSByZXF1ZXN0KCkudXJsKCkuc3RyaW5nKCk7Ci0gICAgICAgICAgICBpbnQgZnJhZ21lbnRJ
bmRleCA9IHVybFN0ci5maW5kKCcjJyk7Ci0gICAgICAgICAgICBpZiAoZnJhZ21lbnRJbmRleCAh
PSAtMSkKLSAgICAgICAgICAgICAgICB1cmxTdHIgPSB1cmxTdHIubGVmdChmcmFnbWVudEluZGV4
KTsKLSAgICAgICAgICAgIFN0cmluZyBoZWFkZXJzOwotICAgICAgICAgICAgaWYgKCFyZWZlcnJl
ci5pc0VtcHR5KCkpCi0gICAgICAgICAgICAgICAgaGVhZGVycyArPSBTdHJpbmcoIlJlZmVyZXI6
ICIpICsgcmVmZXJyZXIgKyAiXHJcbiI7CisgICAgRFdPUkQgZmxhZ3MgPQorICAgICAgICBJTlRF
Uk5FVF9GTEFHX0tFRVBfQ09OTkVDVElPTiB8CisgICAgICAgIElOVEVSTkVUX0ZMQUdfSUdOT1JF
X1JFRElSRUNUX1RPX0hUVFBTIHwKKyAgICAgICAgSU5URVJORVRfRkxBR19JR05PUkVfUkVESVJF
Q1RfVE9fSFRUUCB8CisgICAgICAgIElOVEVSTkVUX0ZMQUdfTk9fQ0FDSEVfV1JJVEU7CiAKLSAg
ICAgICAgICAgIHVybEhhbmRsZSA9IEludGVybmV0T3BlblVybEEoaW50ZXJuZXRIYW5kbGUsIHVy
bFN0ci5sYXRpbjEoKS5kYXRhKCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGhlYWRlcnMubGF0aW4xKCkuZGF0YSgpLCBoZWFkZXJzLmxlbmd0aCgpLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbGFncywgKERXT1JEX1BUUilkLT5t
X2pvYklkKTsKLSAgICAgICAgfQorICAgIGQtPm1fY29ubmVjdEhhbmRsZSA9IEludGVybmV0Q29u
bmVjdFcoZC0+bV9pbnRlcm5ldEhhbmRsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGZpcnN0UmVxdWVzdCgpLnVybCgpLmhvc3QoKS5jaGFyYWN0ZXJzV2l0aE51
bGxUZXJtaW5hdGlvbigpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgZmlyc3RSZXF1ZXN0KCkudXJsKCkucG9ydCgpLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgMCwgLy8gbm8gdXNlcm5hbWUKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDAsIC8vIG5vIHBhc3N3b3JkCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBJTlRFUk5FVF9TRVJWSUNFX0hUVFAsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbGFncywKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8RFdPUkRfUFRSPih0
aGlzKSk7CiAKLSAgICAgICAgaWYgKHVybEhhbmRsZSA9PSBJTlZBTElEX0hBTkRMRV9WQUxVRSkg
ewotICAgICAgICAgICAgZGVsZXRlIHRoaXM7Ci0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0g
ICAgICAgIH0KLSAgICAgICAgZC0+bV90aHJlYWRJZCA9IEdldEN1cnJlbnRUaHJlYWRJZCgpOwor
ICAgIGlmICghZC0+bV9jb25uZWN0SGFuZGxlKQorICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAg
ICAgICAgcmV0dXJuIHRydWU7CisgICAgU3RyaW5nIHVybFN0ciA9IGZpcnN0UmVxdWVzdCgpLnVy
bCgpLnBhdGgoKTsKKyAgICBTdHJpbmcgdXJsUXVlcnkgPSBmaXJzdFJlcXVlc3QoKS51cmwoKS5x
dWVyeSgpOworCisgICAgaWYgKCF1cmxRdWVyeS5pc0VtcHR5KCkpIHsKKyAgICAgICAgdXJsU3Ry
LmFwcGVuZCgnPycpOworICAgICAgICB1cmxTdHIuYXBwZW5kKHVybFF1ZXJ5KTsKKyAgICB9CisK
KyAgICBTdHJpbmcgaHR0cE1ldGhvZCA9IGZpcnN0UmVxdWVzdCgpLmh0dHBNZXRob2QoKTsKKyAg
ICBTdHJpbmcgaHR0cFJlZmVycmVyID0gZmlyc3RSZXF1ZXN0KCkuaHR0cFJlZmVycmVyKCk7CisK
KyAgICBMUENXU1RSIGh0dHBBY2NlcHRbXSA9IHsgTCIqLyoiLCAwIH07CisKKyAgICBkLT5tX3Jl
cXVlc3RIYW5kbGUgPSBIdHRwT3BlblJlcXVlc3RXKGQtPm1fY29ubmVjdEhhbmRsZSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGh0dHBNZXRob2QuY2hhcmFjdGVy
c1dpdGhOdWxsVGVybWluYXRpb24oKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHVybFN0ci5jaGFyYWN0ZXJzV2l0aE51bGxUZXJtaW5hdGlvbigpLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGh0dHBSZWZlcnJlci5jaGFyYWN0ZXJzV2l0aE51bGxU
ZXJtaW5hdGlvbigpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
aHR0cEFjY2VwdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZs
YWdzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVpbnRlcnBy
ZXRfY2FzdDxEV09SRF9QVFI+KHRoaXMpKTsKKworICAgIGlmICghZC0+bV9yZXF1ZXN0SGFuZGxl
KSB7CisgICAgICAgIEludGVybmV0Q2xvc2VIYW5kbGUoZC0+bV9jb25uZWN0SGFuZGxlKTsKKyAg
ICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KKworICAgIGlmIChmaXJzdFJlcXVlc3QoKS5odHRw
Qm9keSgpKSB7CisgICAgICAgIGZpcnN0UmVxdWVzdCgpLmh0dHBCb2R5KCktPmZsYXR0ZW4oZC0+
bV9mb3JtRGF0YSk7CisgICAgICAgIGQtPm1fYnl0ZXNSZW1haW5pbmdUb1dyaXRlID0gZC0+bV9m
b3JtRGF0YS5zaXplKCk7CisgICAgfQorCisgICAgU3RyaW5nIGh0dHBIZWFkZXJzOworICAgIGNv
bnN0IEhUVFBIZWFkZXJNYXAmIGh0dHBIZWFkZXJGaWVsZHMgPSBmaXJzdFJlcXVlc3QoKS5odHRw
SGVhZGVyRmllbGRzKCk7CisKKyAgICBmb3IgKEhUVFBIZWFkZXJNYXA6OmNvbnN0X2l0ZXJhdG9y
IGl0ID0gaHR0cEhlYWRlckZpZWxkcy5iZWdpbigpOyBpdCAhPSBodHRwSGVhZGVyRmllbGRzLmVu
ZCgpOyArK2l0KSB7CisgICAgICAgIGlmIChlcXVhbElnbm9yaW5nQ2FzZShpdC0+Zmlyc3QsICJB
Y2NlcHQiKSB8fCBlcXVhbElnbm9yaW5nQ2FzZShpdC0+Zmlyc3QsICJSZWZlcmVyIikgfHwgZXF1
YWxJZ25vcmluZ0Nhc2UoaXQtPmZpcnN0LCAiVXNlci1BZ2VudCIpKQorICAgICAgICAgICAgY29u
dGludWU7CisKKyAgICAgICAgaWYgKCFodHRwSGVhZGVycy5pc0VtcHR5KCkpCisgICAgICAgICAg
ICBodHRwSGVhZGVycy5hcHBlbmQoJ1xuJyk7CisKKyAgICAgICAgaHR0cEhlYWRlcnMuYXBwZW5k
KGl0LT5maXJzdCk7CisgICAgICAgIGh0dHBIZWFkZXJzLmFwcGVuZCgnOicpOworICAgICAgICBo
dHRwSGVhZGVycy5hcHBlbmQoaXQtPnNlY29uZCk7CisgICAgfQorCisgICAgSU5URVJORVRfQlVG
RkVSU1cgaW50ZXJuZXRCdWZmZXJzOworICAgIFplcm9NZW1vcnkoJmludGVybmV0QnVmZmVycywg
c2l6ZW9mKElOVEVSTkVUX0JVRkZFUlNXKSk7CisgICAgaW50ZXJuZXRCdWZmZXJzLmR3U3RydWN0
U2l6ZSA9IHNpemVvZihJTlRFUk5FVF9CVUZGRVJTVyk7CisgICAgaW50ZXJuZXRCdWZmZXJzLmxw
Y3N6SGVhZGVyID0gaHR0cEhlYWRlcnMuY2hhcmFjdGVycygpOworICAgIGludGVybmV0QnVmZmVy
cy5kd0hlYWRlcnNMZW5ndGggPSBodHRwSGVhZGVycy5sZW5ndGgoKTsKKyAgICBpbnRlcm5ldEJ1
ZmZlcnMubHB2QnVmZmVyID0gMDsKKyAgICBpbnRlcm5ldEJ1ZmZlcnMuZHdCdWZmZXJMZW5ndGgg
PSAwOworICAgIGludGVybmV0QnVmZmVycy5kd0J1ZmZlclRvdGFsID0gZC0+bV9ieXRlc1JlbWFp
bmluZ1RvV3JpdGU7CisKKyAgICBIdHRwU2VuZFJlcXVlc3RFeFcoZC0+bV9yZXF1ZXN0SGFuZGxl
LAorICAgICAgICAgICAgICAgICAgICAgICAmaW50ZXJuZXRCdWZmZXJzLAorICAgICAgICAgICAg
ICAgICAgICAgICAwLAorICAgICAgICAgICAgICAgICAgICAgICAwLAorICAgICAgICAgICAgICAg
ICAgICAgICByZWludGVycHJldF9jYXN0PERXT1JEX1BUUj4odGhpcykpOworCisgICAgcmVmKCk7
IC8vIGJhbGFuY2VkIGJ5IGRlcmVmIGluIG9uUmVxdWVzdENvbXBsZXRlCisKKyAgICBpZiAoZC0+
bV9sb2FkU3luY2hyb25vdXNseSkKKyAgICAgICAgd2hpbGUgKHRydWUpCisgICAgICAgICAgICBp
ZiAoIW9uUmVxdWVzdENvbXBsZXRlKCkpCisgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICBy
ZXR1cm4gdHJ1ZTsKIH0KIAogdm9pZCBSZXNvdXJjZUhhbmRsZTo6ZmlsZUxvYWRUaW1lcihUaW1l
cjxSZXNvdXJjZUhhbmRsZT4qKQpAQCAtNTE2LDkgKzU0MSwxMSBAQCB2b2lkIFJlc291cmNlSGFu
ZGxlOjpmaWxlTG9hZFRpbWVyKFRpbWVyPFJlc291cmNlSGFuZGxlPiopCiAKIHZvaWQgUmVzb3Vy
Y2VIYW5kbGU6OmNhbmNlbCgpCiB7Ci0gICAgaWYgKGQtPm1fcmVzb3VyY2VIYW5kbGUpCi0gICAg
ICAgIEludGVybmV0Q2xvc2VIYW5kbGUoZC0+bV9yZXNvdXJjZUhhbmRsZSk7Ci0gICAgZWxzZQor
ICAgIGlmIChkLT5tX3JlcXVlc3RIYW5kbGUpIHsKKyAgICAgICAgZC0+bV9pbnRlcm5ldEhhbmRs
ZSA9IDA7CisgICAgICAgIEludGVybmV0Q2xvc2VIYW5kbGUoZC0+bV9yZXF1ZXN0SGFuZGxlKTsK
KyAgICAgICAgSW50ZXJuZXRDbG9zZUhhbmRsZShkLT5tX2Nvbm5lY3RIYW5kbGUpOworICAgIH0g
ZWxzZQogICAgICAgICBkLT5tX2ZpbGVMb2FkVGltZXIuc3RvcCgpOwogCiAgICAgY2xpZW50KCkt
PmRpZEZpbmlzaExvYWRpbmcodGhpcywgMCk7IAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>68285</attachid>
            <date>2010-09-21 13:42:39 -0700</date>
            <delta_ts>2010-09-23 07:42:52 -0700</delta_ts>
            <desc>Patch (subset of first patch)</desc>
            <filename>bug-46200b.patch</filename>
            <type>text/plain</type>
            <size>8852</size>
            <attacher name="Patrick R. Gansterer">paroga</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
NTNhNDUzMy4uNGI0ZGZlNSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAxMC0wOS0yMSAgUGF0cmljayBHYW5z
dGVyZXIgIDxwYXJvZ2FAd2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBDbGVhbnVwIG5ldHdvcmsgY29tbXVuaWNhdGlvbiBjb2RlIGlu
IFJlc291cmNlSGFuZGxlV2luCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD00NjIwMAorCisgICAgICAgIEFkZCBsb2dpYyBmb3IgcmVxdWVzdCBoYW5kbGlu
ZyBkaXJlY3RseSBpbnRvIFJlc291cmNlSGFuZGxlOjpzdGFydCBhbmQgZml4IHN0eWxlLgorICAg
ICAgICBVc2UgVW5pY29kZSBpbnN0ZWFkIG9mIEFTQ0lJIFdpbmRvd3MgQVBJIGZ1bmN0aW9ucy4K
KworICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGVJbnRlcm5hbC5oOgor
ICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGVJbnRlcm5hbDo6UmVzb3VyY2VIYW5kbGVJ
bnRlcm5hbCk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay93aW4vUmVzb3VyY2VIYW5kbGVX
aW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6Om9uUmVxdWVzdENvbXBs
ZXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpzdGFydCk6CisKIDIwMTAt
MDktMjEgIERhbmllbCBDaGVuZyAgPGRjaGVuZ0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2
aWV3ZWQgYnkgVG9ueSBDaGFuZy4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9SZXNvdXJjZUhhbmRsZUludGVybmFsLmggYi9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVz
b3VyY2VIYW5kbGVJbnRlcm5hbC5oCmluZGV4IDFmMmNmZjkuLjJlNjVhYTQgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZUludGVybmFsLmgKKysrIGIv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlSW50ZXJuYWwuaApAQCAtOTYs
NiArOTYsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgICAgICAsIG1fc2Vjb25kYXJ5
SGFuZGxlKDApCiAgICAgICAgICAgICAsIG1fam9iSWQoMCkKICAgICAgICAgICAgICwgbV90aHJl
YWRJZCgwKQorICAgICAgICAgICAgLCBtX2ludGVybmV0SGFuZGxlKDApCisgICAgICAgICAgICAs
IG1fY29ubmVjdEhhbmRsZSgwKQorICAgICAgICAgICAgLCBtX3JlcXVlc3RIYW5kbGUoMCkKICAg
ICAgICAgICAgICwgbV9zZW50RW5kUmVxdWVzdChmYWxzZSkKICAgICAgICAgICAgICwgbV9ieXRl
c1JlbWFpbmluZ1RvV3JpdGUoMCkKICAgICAgICAgICAgICwgbV9oYXNSZWNlaXZlZFJlc3BvbnNl
KGZhbHNlKQpAQCAtMTY5LDYgKzE3Miw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAg
SElOVEVSTkVUIG1fc2Vjb25kYXJ5SGFuZGxlOwogICAgICAgICB1bnNpZ25lZCBtX2pvYklkOwog
ICAgICAgICBEV09SRCBtX3RocmVhZElkOworICAgICAgICBISU5URVJORVQgbV9pbnRlcm5ldEhh
bmRsZTsKKyAgICAgICAgSElOVEVSTkVUIG1fY29ubmVjdEhhbmRsZTsKKyAgICAgICAgSElOVEVS
TkVUIG1fcmVxdWVzdEhhbmRsZTsKICAgICAgICAgYm9vbCBtX3NlbnRFbmRSZXF1ZXN0OwogICAg
ICAgICBWZWN0b3I8Y2hhcj4gbV9mb3JtRGF0YTsKICAgICAgICAgaW50IG1fYnl0ZXNSZW1haW5p
bmdUb1dyaXRlOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3dpbi9SZXNv
dXJjZUhhbmRsZVdpbi5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvd2luL1Jlc291cmNl
SGFuZGxlV2luLmNwcAppbmRleCA2N2M1NGJjLi4xZWM5NGYyIDEwMDY0NAotLS0gYS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvd2luL1Jlc291cmNlSGFuZGxlV2luLmNwcAorKysgYi9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvd2luL1Jlc291cmNlSGFuZGxlV2luLmNwcApAQCAtMzIyLDM1ICsz
MjIsMTQgQEAgdm9pZCBSZXNvdXJjZUhhbmRsZTo6b25SZXF1ZXN0Q29tcGxldGUoTFBBUkFNIGxQ
YXJhbSkKICAgICAgICAgYnVmZmVycy5kd0J1ZmZlckxlbmd0aCA9IGJ1ZmZlclNpemU7CiAgICAg
fQogCi0gICAgUGxhdGZvcm1EYXRhU3RydWN0IHBsYXRmb3JtRGF0YTsKLSAgICBwbGF0Zm9ybURh
dGEuZXJyb3JTdHJpbmcgPSAwOwotICAgIHBsYXRmb3JtRGF0YS5lcnJvciA9IDA7Ci0gICAgcGxh
dGZvcm1EYXRhLmxvYWRlZCA9IG9rOwotCi0gICAgaWYgKCFvaykgewotICAgICAgICBpbnQgZXJy
b3IgPSBHZXRMYXN0RXJyb3IoKTsKLSAgICAgICAgaWYgKGVycm9yID09IEVSUk9SX0lPX1BFTkRJ
TkcpCi0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIERXT1JEIGVycm9yU3RyaW5nQ2hhcnMg
PSAwOwotICAgICAgICBpZiAoIUludGVybmV0R2V0TGFzdFJlc3BvbnNlSW5mbygmcGxhdGZvcm1E
YXRhLmVycm9yLCAwLCAmZXJyb3JTdHJpbmdDaGFycykpIHsKLSAgICAgICAgICAgIGlmIChHZXRM
YXN0RXJyb3IoKSA9PSBFUlJPUl9JTlNVRkZJQ0lFTlRfQlVGRkVSKSB7Ci0gICAgICAgICAgICAg
ICAgcGxhdGZvcm1EYXRhLmVycm9yU3RyaW5nID0gbmV3IFRDSEFSW2Vycm9yU3RyaW5nQ2hhcnNd
OwotICAgICAgICAgICAgICAgIEludGVybmV0R2V0TGFzdFJlc3BvbnNlSW5mbygmcGxhdGZvcm1E
YXRhLmVycm9yLCBwbGF0Zm9ybURhdGEuZXJyb3JTdHJpbmcsICZlcnJvclN0cmluZ0NoYXJzKTsK
LSAgICAgICAgICAgIH0KLSAgICAgICAgfQotI2lmZGVmIFJFU09VUkNFX0xPQURFUl9ERUJVRwot
ICAgICAgICBjaGFyIGJ1Zls2NF07Ci0gICAgICAgIF9zbnByaW50ZihidWYsIHNpemVvZihidWYp
LCAiTG9hZCBlcnJvcjogJWlcbiIsIGVycm9yKTsKLSAgICAgICAgT3V0cHV0RGVidWdTdHJpbmdB
KGJ1Zik7Ci0jZW5kaWYgCi0gICAgfQotICAgIAotICAgIGlmIChkLT5tX3NlY29uZGFyeUhhbmRs
ZSkKLSAgICAgICAgSW50ZXJuZXRDbG9zZUhhbmRsZShkLT5tX3NlY29uZGFyeUhhbmRsZSk7Ci0g
ICAgSW50ZXJuZXRDbG9zZUhhbmRsZShkLT5tX3Jlc291cmNlSGFuZGxlKTsKKyAgICBpZiAoIW9r
ICYmIEdldExhc3RFcnJvcigpID09IEVSUk9SX0lPX1BFTkRJTkcpCisgICAgICAgIHJldHVybjsK
IAogICAgIGNsaWVudCgpLT5kaWRGaW5pc2hMb2FkaW5nKHRoaXMsIDApOwotICAgIGRlbGV0ZSB0
aGlzOworICAgIEludGVybmV0Q2xvc2VIYW5kbGUoZC0+bV9yZXF1ZXN0SGFuZGxlKTsKKyAgICBJ
bnRlcm5ldENsb3NlSGFuZGxlKGQtPm1fY29ubmVjdEhhbmRsZSk7CisgICAgZGVyZWYoKTsgLy8g
YmFsYW5jZXMgcmVmIGluIHN0YXJ0CisgICAgcmV0dXJuOwogfQogCiBzdGF0aWMgdm9pZCBfX3N0
ZGNhbGwgdHJhbnNmZXJKb2JTdGF0dXNDYWxsYmFjayhISU5URVJORVQgaW50ZXJuZXRIYW5kbGUs
CkBAIC00MDgsNjggKzM4Nyw3NSBAQCBzdGF0aWMgdm9pZCBfX3N0ZGNhbGwgdHJhbnNmZXJKb2JT
dGF0dXNDYWxsYmFjayhISU5URVJORVQgaW50ZXJuZXRIYW5kbGUsCiAKIGJvb2wgUmVzb3VyY2VI
YW5kbGU6OnN0YXJ0KE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0KQogewotICAgIHJlZigpOwog
ICAgIGlmIChyZXF1ZXN0KCkudXJsKCkuaXNMb2NhbEZpbGUoKSkgeworICAgICAgICByZWYoKTsg
Ly8gYmFsYW5jZWQgYnkgZGVyZWYgaW4gZmlsZUxvYWRUaW1lcgogICAgICAgICBkLT5tX2ZpbGVM
b2FkVGltZXIuc3RhcnRPbmVTaG90KDAuMCk7CiAgICAgICAgIHJldHVybiB0cnVlOwotICAgIH0g
ZWxzZSB7Ci0gICAgICAgIHN0YXRpYyBISU5URVJORVQgaW50ZXJuZXRIYW5kbGUgPSAwOwotICAg
ICAgICBpZiAoIWludGVybmV0SGFuZGxlKSB7Ci0gICAgICAgICAgICBTdHJpbmcgdXNlckFnZW50
U3RyID0gY29udGV4dC0+dXNlckFnZW50KCkgKyBTdHJpbmcoIiIsIDEpOwotICAgICAgICAgICAg
TFBDV1NUUiB1c2VyQWdlbnQgPSByZWludGVycHJldF9jYXN0PGNvbnN0IFdDSEFSKj4odXNlckFn
ZW50U3RyLmNoYXJhY3RlcnMoKSk7Ci0gICAgICAgICAgICAvLyBsZWFrIHRoZSBJbnRlcm5ldCBm
b3Igbm93Ci0gICAgICAgICAgICBpbnRlcm5ldEhhbmRsZSA9IEludGVybmV0T3Blbih1c2VyQWdl
bnQsIElOVEVSTkVUX09QRU5fVFlQRV9QUkVDT05GSUcsIDAsIDAsIElOVEVSTkVUX0ZMQUdfQVNZ
TkMpOwotICAgICAgICB9Ci0gICAgICAgIGlmICghaW50ZXJuZXRIYW5kbGUpIHsKLSAgICAgICAg
ICAgIGRlbGV0ZSB0aGlzOwotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICB9Ci0g
ICAgICAgIHN0YXRpYyBJTlRFUk5FVF9TVEFUVVNfQ0FMTEJBQ0sgY2FsbGJhY2tIYW5kbGUgPSAK
LSAgICAgICAgICAgIEludGVybmV0U2V0U3RhdHVzQ2FsbGJhY2soaW50ZXJuZXRIYW5kbGUsIHRy
YW5zZmVySm9iU3RhdHVzQ2FsbGJhY2spOworICAgIH0KIAotICAgICAgICBpbml0aWFsaXplT2Zm
U2NyZWVuUmVzb3VyY2VIYW5kbGVXaW5kb3coKTsKLSAgICAgICAgZC0+bV9qb2JJZCA9IGFkZFRv
T3V0c3RhbmRpbmdKb2JzKHRoaXMpOworICAgIGlmICghZC0+bV9pbnRlcm5ldEhhbmRsZSkKKyAg
ICAgICAgZC0+bV9pbnRlcm5ldEhhbmRsZSA9IGFzeW5jaHJvbm91c0ludGVybmV0SGFuZGxlKGNv
bnRleHQtPnVzZXJBZ2VudCgpKTsKIAotICAgICAgICBEV09SRCBmbGFncyA9Ci0gICAgICAgICAg
ICBJTlRFUk5FVF9GTEFHX0tFRVBfQ09OTkVDVElPTiB8Ci0gICAgICAgICAgICBJTlRFUk5FVF9G
TEFHX0lHTk9SRV9SRURJUkVDVF9UT19IVFRQUyB8Ci0gICAgICAgICAgICBJTlRFUk5FVF9GTEFH
X0lHTk9SRV9SRURJUkVDVF9UT19IVFRQOworICAgIGlmICghZC0+bV9pbnRlcm5ldEhhbmRsZSkK
KyAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgICAgIC8vIEZvciBmb3JtIHBvc3RpbmcsIHdl
IGNhbid0IHVzZSBJbnRlcm5ldE9wZW5VUkwuICBXZSBoYXZlIHRvIHVzZQotICAgICAgICAvLyBJ
bnRlcm5ldENvbm5lY3QgZm9sbG93ZWQgYnkgSHR0cFNlbmRSZXF1ZXN0LgotICAgICAgICBISU5U
RVJORVQgdXJsSGFuZGxlOwotICAgICAgICBTdHJpbmcgcmVmZXJyZXIgPSBjb250ZXh0LT5yZWZl
cnJlcigpOwotICAgICAgICBpZiAocmVxdWVzdCgpLmh0dHBNZXRob2QoKSA9PSAiUE9TVCIpIHsK
LSAgICAgICAgICAgIGQtPm1fcG9zdFJlZmVycmVyID0gcmVmZXJyZXI7Ci0gICAgICAgICAgICBT
dHJpbmcgaG9zdCA9IHJlcXVlc3QoKS51cmwoKS5ob3N0KCk7Ci0gICAgICAgICAgICB1cmxIYW5k
bGUgPSBJbnRlcm5ldENvbm5lY3RBKGludGVybmV0SGFuZGxlLCBob3N0LmxhdGluMSgpLmRhdGEo
KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdCgpLnVy
bCgpLnBvcnQoKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVM
TCwgLy8gbm8gdXNlcm5hbWUKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgTlVMTCwgLy8gbm8gcGFzc3dvcmQKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgSU5URVJORVRfU0VSVklDRV9IVFRQLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBmbGFncywgKERXT1JEX1BUUilkLT5tX2pvYklkKTsKLSAgICAgICAg
fSBlbHNlIHsKLSAgICAgICAgICAgIFN0cmluZyB1cmxTdHIgPSByZXF1ZXN0KCkudXJsKCkuc3Ry
aW5nKCk7Ci0gICAgICAgICAgICBpbnQgZnJhZ21lbnRJbmRleCA9IHVybFN0ci5maW5kKCcjJyk7
Ci0gICAgICAgICAgICBpZiAoZnJhZ21lbnRJbmRleCAhPSAtMSkKLSAgICAgICAgICAgICAgICB1
cmxTdHIgPSB1cmxTdHIubGVmdChmcmFnbWVudEluZGV4KTsKLSAgICAgICAgICAgIFN0cmluZyBo
ZWFkZXJzOwotICAgICAgICAgICAgaWYgKCFyZWZlcnJlci5pc0VtcHR5KCkpCi0gICAgICAgICAg
ICAgICAgaGVhZGVycyArPSBTdHJpbmcoIlJlZmVyZXI6ICIpICsgcmVmZXJyZXIgKyAiXHJcbiI7
CisgICAgRFdPUkQgZmxhZ3MgPQorICAgICAgICBJTlRFUk5FVF9GTEFHX0tFRVBfQ09OTkVDVElP
TiB8CisgICAgICAgIElOVEVSTkVUX0ZMQUdfSUdOT1JFX1JFRElSRUNUX1RPX0hUVFBTIHwKKyAg
ICAgICAgSU5URVJORVRfRkxBR19JR05PUkVfUkVESVJFQ1RfVE9fSFRUUDsKIAotICAgICAgICAg
ICAgdXJsSGFuZGxlID0gSW50ZXJuZXRPcGVuVXJsQShpbnRlcm5ldEhhbmRsZSwgdXJsU3RyLmxh
dGluMSgpLmRhdGEoKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
aGVhZGVycy5sYXRpbjEoKS5kYXRhKCksIGhlYWRlcnMubGVuZ3RoKCksCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsYWdzLCAoRFdPUkRfUFRSKWQtPm1fam9iSWQp
OwotICAgICAgICB9CisgICAgZC0+bV9jb25uZWN0SGFuZGxlID0gSW50ZXJuZXRDb25uZWN0Vyhk
LT5tX2ludGVybmV0SGFuZGxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgZmlyc3RSZXF1ZXN0KCkudXJsKCkuaG9zdCgpLmNoYXJhY3RlcnNXaXRoTnVsbFRlcm1p
bmF0aW9uKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaXJz
dFJlcXVlc3QoKS51cmwoKS5wb3J0KCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAwLCAvLyBubyB1c2VybmFtZQorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgMCwgLy8gbm8gcGFzc3dvcmQKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIElOVEVSTkVUX1NFUlZJQ0VfSFRUUCwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsYWdzLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgcmVpbnRlcnByZXRfY2FzdDxEV09SRF9QVFI+KHRoaXMpKTsK
IAotICAgICAgICBpZiAodXJsSGFuZGxlID09IElOVkFMSURfSEFORExFX1ZBTFVFKSB7Ci0gICAg
ICAgICAgICBkZWxldGUgdGhpczsKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAg
fQotICAgICAgICBkLT5tX3RocmVhZElkID0gR2V0Q3VycmVudFRocmVhZElkKCk7CisgICAgaWYg
KCFkLT5tX2Nvbm5lY3RIYW5kbGUpCisgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgICAgICBy
ZXR1cm4gdHJ1ZTsKKyAgICBTdHJpbmcgdXJsU3RyID0gZmlyc3RSZXF1ZXN0KCkudXJsKCkucGF0
aCgpOworICAgIFN0cmluZyB1cmxRdWVyeSA9IGZpcnN0UmVxdWVzdCgpLnVybCgpLnF1ZXJ5KCk7
CisKKyAgICBpZiAoIXVybFF1ZXJ5LmlzRW1wdHkoKSkgeworICAgICAgICB1cmxTdHIuYXBwZW5k
KCc/Jyk7CisgICAgICAgIHVybFN0ci5hcHBlbmQodXJsUXVlcnkpOwogICAgIH0KKworICAgIFN0
cmluZyBodHRwTWV0aG9kID0gZmlyc3RSZXF1ZXN0KCkuaHR0cE1ldGhvZCgpOworICAgIFN0cmlu
ZyBodHRwUmVmZXJyZXIgPSBmaXJzdFJlcXVlc3QoKS5odHRwUmVmZXJyZXIoKTsKKworICAgIExQ
Q1dTVFIgaHR0cEFjY2VwdFtdID0geyBMIiovKiIsIDAgfTsKKworICAgIGQtPm1fcmVxdWVzdEhh
bmRsZSA9IEh0dHBPcGVuUmVxdWVzdFcoZC0+bV9jb25uZWN0SGFuZGxlLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaHR0cE1ldGhvZC5jaGFyYWN0ZXJzV2l0aE51
bGxUZXJtaW5hdGlvbigpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgdXJsU3RyLmNoYXJhY3RlcnNXaXRoTnVsbFRlcm1pbmF0aW9uKCksCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgaHR0cFJlZmVycmVyLmNoYXJhY3RlcnNXaXRoTnVsbFRlcm1pbmF0
aW9uKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBodHRwQWNj
ZXB0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxhZ3MsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWludGVycHJldF9jYXN0
PERXT1JEX1BUUj4odGhpcykpOworCisgICAgaWYgKCFkLT5tX3JlcXVlc3RIYW5kbGUpIHsKKyAg
ICAgICAgSW50ZXJuZXRDbG9zZUhhbmRsZShkLT5tX2Nvbm5lY3RIYW5kbGUpOworICAgICAgICBy
ZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgSU5URVJORVRfQlVGRkVSU1cgaW50ZXJuZXRCdWZm
ZXJzOworICAgIFplcm9NZW1vcnkoJmludGVybmV0QnVmZmVycywgc2l6ZW9mKElOVEVSTkVUX0JV
RkZFUlNXKSk7CisgICAgaW50ZXJuZXRCdWZmZXJzLmR3U3RydWN0U2l6ZSA9IHNpemVvZihJTlRF
Uk5FVF9CVUZGRVJTVyk7CisKKyAgICBIdHRwU2VuZFJlcXVlc3RFeFcoZC0+bV9yZXF1ZXN0SGFu
ZGxlLAorICAgICAgICAgICAgICAgICAgICAgICAmaW50ZXJuZXRCdWZmZXJzLAorICAgICAgICAg
ICAgICAgICAgICAgICAwLAorICAgICAgICAgICAgICAgICAgICAgICAwLAorICAgICAgICAgICAg
ICAgICAgICAgICByZWludGVycHJldF9jYXN0PERXT1JEX1BUUj4odGhpcykpOworCisgICAgcmVm
KCk7IC8vIGJhbGFuY2VkIGJ5IGRlcmVmIGluIG9uUmVxdWVzdENvbXBsZXRlCisKKyAgICByZXR1
cm4gdHJ1ZTsKIH0KIAogdm9pZCBSZXNvdXJjZUhhbmRsZTo6ZmlsZUxvYWRUaW1lcihUaW1lcjxS
ZXNvdXJjZUhhbmRsZT4qKQo=
</data>
<flag name="review"
          id="57787"
          type_id="1"
          status="+"
          setter="aroben"
    />
    <flag name="commit-queue"
          id="57788"
          type_id="3"
          status="-"
          setter="aroben"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>68516</attachid>
            <date>2010-09-23 07:42:52 -0700</date>
            <delta_ts>2010-09-23 09:13:27 -0700</delta_ts>
            <desc>Patch (subset of first patch)</desc>
            <filename>bug-46200c.patch</filename>
            <type>text/plain</type>
            <size>8203</size>
            <attacher name="Patrick R. Gansterer">paroga</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
NzZiMjI5OC4uYTUzNWFiYyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAxMC0wOS0yMyAgUGF0cmljayBHYW5z
dGVyZXIgIDxwYXJvZ2FAd2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBBZGFtIFJv
YmVuLgorCisgICAgICAgIENsZWFudXAgbmV0d29yayBjb21tdW5pY2F0aW9uIGNvZGUgaW4gUmVz
b3VyY2VIYW5kbGVXaW4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTQ2MjAwCisKKyAgICAgICAgQWRkIGxvZ2ljIGZvciByZXF1ZXN0IGhhbmRsaW5nIGRp
cmVjdGx5IGludG8gUmVzb3VyY2VIYW5kbGU6OnN0YXJ0IGFuZCBmaXggc3R5bGUuCisgICAgICAg
IFVzZSBVbmljb2RlIGluc3RlYWQgb2YgQVNDSUkgV2luZG93cyBBUEkgZnVuY3Rpb25zLgorCisg
ICAgICAgICogcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZUludGVybmFsLmg6CisgICAg
ICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZUludGVybmFsOjpSZXNvdXJjZUhhbmRsZUludGVy
bmFsKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL3dpbi9SZXNvdXJjZUhhbmRsZVdpbi5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6b25SZXF1ZXN0Q29tcGxldGUp
OgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OnN0YXJ0KToKKwogMjAxMC0wOS0y
MiAgTHVpeiBBZ29zdGluaSAgPGx1aXouYWdvc3RpbmlAb3BlbmJvc3NhLm9yZz4KIAogICAgICAg
ICBSZXZpZXdlZCBieSBPbGl2ZXIgSHVudC4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9SZXNvdXJjZUhhbmRsZUludGVybmFsLmggYi9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvUmVzb3VyY2VIYW5kbGVJbnRlcm5hbC5oCmluZGV4IDFmMmNmZjkuLjJlNjVhYTQgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZUludGVybmFsLmgK
KysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlSW50ZXJuYWwuaApA
QCAtOTYsNiArOTYsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgICAgICAsIG1fc2Vj
b25kYXJ5SGFuZGxlKDApCiAgICAgICAgICAgICAsIG1fam9iSWQoMCkKICAgICAgICAgICAgICwg
bV90aHJlYWRJZCgwKQorICAgICAgICAgICAgLCBtX2ludGVybmV0SGFuZGxlKDApCisgICAgICAg
ICAgICAsIG1fY29ubmVjdEhhbmRsZSgwKQorICAgICAgICAgICAgLCBtX3JlcXVlc3RIYW5kbGUo
MCkKICAgICAgICAgICAgICwgbV9zZW50RW5kUmVxdWVzdChmYWxzZSkKICAgICAgICAgICAgICwg
bV9ieXRlc1JlbWFpbmluZ1RvV3JpdGUoMCkKICAgICAgICAgICAgICwgbV9oYXNSZWNlaXZlZFJl
c3BvbnNlKGZhbHNlKQpAQCAtMTY5LDYgKzE3Miw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAg
ICAgICAgSElOVEVSTkVUIG1fc2Vjb25kYXJ5SGFuZGxlOwogICAgICAgICB1bnNpZ25lZCBtX2pv
YklkOwogICAgICAgICBEV09SRCBtX3RocmVhZElkOworICAgICAgICBISU5URVJORVQgbV9pbnRl
cm5ldEhhbmRsZTsKKyAgICAgICAgSElOVEVSTkVUIG1fY29ubmVjdEhhbmRsZTsKKyAgICAgICAg
SElOVEVSTkVUIG1fcmVxdWVzdEhhbmRsZTsKICAgICAgICAgYm9vbCBtX3NlbnRFbmRSZXF1ZXN0
OwogICAgICAgICBWZWN0b3I8Y2hhcj4gbV9mb3JtRGF0YTsKICAgICAgICAgaW50IG1fYnl0ZXNS
ZW1haW5pbmdUb1dyaXRlOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3dp
bi9SZXNvdXJjZUhhbmRsZVdpbi5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvd2luL1Jl
c291cmNlSGFuZGxlV2luLmNwcAppbmRleCA5NDZhMGY3Li43M2FkNjMyIDEwMDY0NAotLS0gYS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvd2luL1Jlc291cmNlSGFuZGxlV2luLmNwcAorKysgYi9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvd2luL1Jlc291cmNlSGFuZGxlV2luLmNwcApAQCAtMzQ5
LDM1ICszNDksMTQgQEAgdm9pZCBSZXNvdXJjZUhhbmRsZTo6b25SZXF1ZXN0Q29tcGxldGUoTFBB
UkFNIGxQYXJhbSkKICAgICAgICAgYnVmZmVycy5kd0J1ZmZlckxlbmd0aCA9IGJ1ZmZlclNpemU7
CiAgICAgfQogCi0gICAgUGxhdGZvcm1EYXRhU3RydWN0IHBsYXRmb3JtRGF0YTsKLSAgICBwbGF0
Zm9ybURhdGEuZXJyb3JTdHJpbmcgPSAwOwotICAgIHBsYXRmb3JtRGF0YS5lcnJvciA9IDA7Ci0g
ICAgcGxhdGZvcm1EYXRhLmxvYWRlZCA9IG9rOwotCi0gICAgaWYgKCFvaykgewotICAgICAgICBp
bnQgZXJyb3IgPSBHZXRMYXN0RXJyb3IoKTsKLSAgICAgICAgaWYgKGVycm9yID09IEVSUk9SX0lP
X1BFTkRJTkcpCi0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIERXT1JEIGVycm9yU3RyaW5n
Q2hhcnMgPSAwOwotICAgICAgICBpZiAoIUludGVybmV0R2V0TGFzdFJlc3BvbnNlSW5mbygmcGxh
dGZvcm1EYXRhLmVycm9yLCAwLCAmZXJyb3JTdHJpbmdDaGFycykpIHsKLSAgICAgICAgICAgIGlm
IChHZXRMYXN0RXJyb3IoKSA9PSBFUlJPUl9JTlNVRkZJQ0lFTlRfQlVGRkVSKSB7Ci0gICAgICAg
ICAgICAgICAgcGxhdGZvcm1EYXRhLmVycm9yU3RyaW5nID0gbmV3IFRDSEFSW2Vycm9yU3RyaW5n
Q2hhcnNdOwotICAgICAgICAgICAgICAgIEludGVybmV0R2V0TGFzdFJlc3BvbnNlSW5mbygmcGxh
dGZvcm1EYXRhLmVycm9yLCBwbGF0Zm9ybURhdGEuZXJyb3JTdHJpbmcsICZlcnJvclN0cmluZ0No
YXJzKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotI2lmZGVmIFJFU09VUkNFX0xPQURFUl9E
RUJVRwotICAgICAgICBjaGFyIGJ1Zls2NF07Ci0gICAgICAgIF9zbnByaW50ZihidWYsIHNpemVv
ZihidWYpLCAiTG9hZCBlcnJvcjogJWlcbiIsIGVycm9yKTsKLSAgICAgICAgT3V0cHV0RGVidWdT
dHJpbmdBKGJ1Zik7Ci0jZW5kaWYgCi0gICAgfQotICAgIAotICAgIGlmIChkLT5tX3NlY29uZGFy
eUhhbmRsZSkKLSAgICAgICAgSW50ZXJuZXRDbG9zZUhhbmRsZShkLT5tX3NlY29uZGFyeUhhbmRs
ZSk7Ci0gICAgSW50ZXJuZXRDbG9zZUhhbmRsZShkLT5tX3Jlc291cmNlSGFuZGxlKTsKKyAgICBp
ZiAoIW9rICYmIEdldExhc3RFcnJvcigpID09IEVSUk9SX0lPX1BFTkRJTkcpCisgICAgICAgIHJl
dHVybjsKIAogICAgIGNsaWVudCgpLT5kaWRGaW5pc2hMb2FkaW5nKHRoaXMsIDApOwotICAgIGRl
bGV0ZSB0aGlzOworICAgIEludGVybmV0Q2xvc2VIYW5kbGUoZC0+bV9yZXF1ZXN0SGFuZGxlKTsK
KyAgICBJbnRlcm5ldENsb3NlSGFuZGxlKGQtPm1fY29ubmVjdEhhbmRsZSk7CisgICAgZGVyZWYo
KTsgLy8gYmFsYW5jZXMgcmVmIGluIHN0YXJ0CisgICAgcmV0dXJuOwogfQogCiBzdGF0aWMgdm9p
ZCBfX3N0ZGNhbGwgdHJhbnNmZXJKb2JTdGF0dXNDYWxsYmFjayhISU5URVJORVQgaW50ZXJuZXRI
YW5kbGUsCkBAIC00MzUsNjggKzQxNCw1OCBAQCBzdGF0aWMgdm9pZCBfX3N0ZGNhbGwgdHJhbnNm
ZXJKb2JTdGF0dXNDYWxsYmFjayhISU5URVJORVQgaW50ZXJuZXRIYW5kbGUsCiAKIGJvb2wgUmVz
b3VyY2VIYW5kbGU6OnN0YXJ0KE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0KQogewotICAgIHJl
ZigpOwogICAgIGlmIChyZXF1ZXN0KCkudXJsKCkuaXNMb2NhbEZpbGUoKSkgeworICAgICAgICBy
ZWYoKTsgLy8gYmFsYW5jZWQgYnkgZGVyZWYgaW4gZmlsZUxvYWRUaW1lcgogICAgICAgICBkLT5t
X2ZpbGVMb2FkVGltZXIuc3RhcnRPbmVTaG90KDAuMCk7CiAgICAgICAgIHJldHVybiB0cnVlOwot
ICAgIH0gZWxzZSB7Ci0gICAgICAgIHN0YXRpYyBISU5URVJORVQgaW50ZXJuZXRIYW5kbGUgPSAw
OwotICAgICAgICBpZiAoIWludGVybmV0SGFuZGxlKSB7Ci0gICAgICAgICAgICBTdHJpbmcgdXNl
ckFnZW50U3RyID0gY29udGV4dC0+dXNlckFnZW50KCkgKyBTdHJpbmcoIiIsIDEpOwotICAgICAg
ICAgICAgTFBDV1NUUiB1c2VyQWdlbnQgPSByZWludGVycHJldF9jYXN0PGNvbnN0IFdDSEFSKj4o
dXNlckFnZW50U3RyLmNoYXJhY3RlcnMoKSk7Ci0gICAgICAgICAgICAvLyBsZWFrIHRoZSBJbnRl
cm5ldCBmb3Igbm93Ci0gICAgICAgICAgICBpbnRlcm5ldEhhbmRsZSA9IEludGVybmV0T3Blbih1
c2VyQWdlbnQsIElOVEVSTkVUX09QRU5fVFlQRV9QUkVDT05GSUcsIDAsIDAsIElOVEVSTkVUX0ZM
QUdfQVNZTkMpOwotICAgICAgICB9Ci0gICAgICAgIGlmICghaW50ZXJuZXRIYW5kbGUpIHsKLSAg
ICAgICAgICAgIGRlbGV0ZSB0aGlzOwotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAg
ICB9Ci0gICAgICAgIHN0YXRpYyBJTlRFUk5FVF9TVEFUVVNfQ0FMTEJBQ0sgY2FsbGJhY2tIYW5k
bGUgPSAKLSAgICAgICAgICAgIEludGVybmV0U2V0U3RhdHVzQ2FsbGJhY2soaW50ZXJuZXRIYW5k
bGUsIHRyYW5zZmVySm9iU3RhdHVzQ2FsbGJhY2spOworICAgIH0KIAotICAgICAgICBpbml0aWFs
aXplT2ZmU2NyZWVuUmVzb3VyY2VIYW5kbGVXaW5kb3coKTsKLSAgICAgICAgZC0+bV9qb2JJZCA9
IGFkZFRvT3V0c3RhbmRpbmdKb2JzKHRoaXMpOworICAgIGlmICghZC0+bV9pbnRlcm5ldEhhbmRs
ZSkKKyAgICAgICAgZC0+bV9pbnRlcm5ldEhhbmRsZSA9IGFzeW5jaHJvbm91c0ludGVybmV0SGFu
ZGxlKGNvbnRleHQtPnVzZXJBZ2VudCgpKTsKIAotICAgICAgICBEV09SRCBmbGFncyA9Ci0gICAg
ICAgICAgICBJTlRFUk5FVF9GTEFHX0tFRVBfQ09OTkVDVElPTiB8Ci0gICAgICAgICAgICBJTlRF
Uk5FVF9GTEFHX0lHTk9SRV9SRURJUkVDVF9UT19IVFRQUyB8Ci0gICAgICAgICAgICBJTlRFUk5F
VF9GTEFHX0lHTk9SRV9SRURJUkVDVF9UT19IVFRQOworICAgIGlmICghZC0+bV9pbnRlcm5ldEhh
bmRsZSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgICAgIC8vIEZvciBmb3JtIHBvc3Rp
bmcsIHdlIGNhbid0IHVzZSBJbnRlcm5ldE9wZW5VUkwuICBXZSBoYXZlIHRvIHVzZQotICAgICAg
ICAvLyBJbnRlcm5ldENvbm5lY3QgZm9sbG93ZWQgYnkgSHR0cFNlbmRSZXF1ZXN0LgotICAgICAg
ICBISU5URVJORVQgdXJsSGFuZGxlOwotICAgICAgICBTdHJpbmcgcmVmZXJyZXIgPSBjb250ZXh0
LT5yZWZlcnJlcigpOwotICAgICAgICBpZiAocmVxdWVzdCgpLmh0dHBNZXRob2QoKSA9PSAiUE9T
VCIpIHsKLSAgICAgICAgICAgIGQtPm1fcG9zdFJlZmVycmVyID0gcmVmZXJyZXI7Ci0gICAgICAg
ICAgICBTdHJpbmcgaG9zdCA9IHJlcXVlc3QoKS51cmwoKS5ob3N0KCk7Ci0gICAgICAgICAgICB1
cmxIYW5kbGUgPSBJbnRlcm5ldENvbm5lY3RBKGludGVybmV0SGFuZGxlLCBob3N0LmxhdGluMSgp
LmRhdGEoKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVz
dCgpLnVybCgpLnBvcnQoKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgTlVMTCwgLy8gbm8gdXNlcm5hbWUKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgTlVMTCwgLy8gbm8gcGFzc3dvcmQKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgSU5URVJORVRfU0VSVklDRV9IVFRQLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBmbGFncywgKERXT1JEX1BUUilkLT5tX2pvYklkKTsKLSAg
ICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIFN0cmluZyB1cmxTdHIgPSByZXF1ZXN0KCkudXJs
KCkuc3RyaW5nKCk7Ci0gICAgICAgICAgICBpbnQgZnJhZ21lbnRJbmRleCA9IHVybFN0ci5maW5k
KCcjJyk7Ci0gICAgICAgICAgICBpZiAoZnJhZ21lbnRJbmRleCAhPSAtMSkKLSAgICAgICAgICAg
ICAgICB1cmxTdHIgPSB1cmxTdHIubGVmdChmcmFnbWVudEluZGV4KTsKLSAgICAgICAgICAgIFN0
cmluZyBoZWFkZXJzOwotICAgICAgICAgICAgaWYgKCFyZWZlcnJlci5pc0VtcHR5KCkpCi0gICAg
ICAgICAgICAgICAgaGVhZGVycyArPSBTdHJpbmcoIlJlZmVyZXI6ICIpICsgcmVmZXJyZXIgKyAi
XHJcbiI7CisgICAgRFdPUkQgZmxhZ3MgPSBJTlRFUk5FVF9GTEFHX0tFRVBfQ09OTkVDVElPTgor
ICAgICAgICB8IElOVEVSTkVUX0ZMQUdfSUdOT1JFX1JFRElSRUNUX1RPX0hUVFBTCisgICAgICAg
IHwgSU5URVJORVRfRkxBR19JR05PUkVfUkVESVJFQ1RfVE9fSFRUUDsKIAotICAgICAgICAgICAg
dXJsSGFuZGxlID0gSW50ZXJuZXRPcGVuVXJsQShpbnRlcm5ldEhhbmRsZSwgdXJsU3RyLmxhdGlu
MSgpLmRhdGEoKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVh
ZGVycy5sYXRpbjEoKS5kYXRhKCksIGhlYWRlcnMubGVuZ3RoKCksCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGZsYWdzLCAoRFdPUkRfUFRSKWQtPm1fam9iSWQpOwot
ICAgICAgICB9CisgICAgZC0+bV9jb25uZWN0SGFuZGxlID0gSW50ZXJuZXRDb25uZWN0VyhkLT5t
X2ludGVybmV0SGFuZGxlLCBmaXJzdFJlcXVlc3QoKS51cmwoKS5ob3N0KCkuY2hhcmFjdGVyc1dp
dGhOdWxsVGVybWluYXRpb24oKSwgZmlyc3RSZXF1ZXN0KCkudXJsKCkucG9ydCgpLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwgMCwgSU5URVJORVRfU0VSVklD
RV9IVFRQLCBmbGFncywgcmVpbnRlcnByZXRfY2FzdDxEV09SRF9QVFI+KHRoaXMpKTsKIAotICAg
ICAgICBpZiAodXJsSGFuZGxlID09IElOVkFMSURfSEFORExFX1ZBTFVFKSB7Ci0gICAgICAgICAg
ICBkZWxldGUgdGhpczsKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgfQotICAg
ICAgICBkLT5tX3RocmVhZElkID0gR2V0Q3VycmVudFRocmVhZElkKCk7CisgICAgaWYgKCFkLT5t
X2Nvbm5lY3RIYW5kbGUpCisgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgICAgICByZXR1cm4g
dHJ1ZTsKKyAgICBTdHJpbmcgdXJsU3RyID0gZmlyc3RSZXF1ZXN0KCkudXJsKCkucGF0aCgpOwor
ICAgIFN0cmluZyB1cmxRdWVyeSA9IGZpcnN0UmVxdWVzdCgpLnVybCgpLnF1ZXJ5KCk7CisKKyAg
ICBpZiAoIXVybFF1ZXJ5LmlzRW1wdHkoKSkgeworICAgICAgICB1cmxTdHIuYXBwZW5kKCc/Jyk7
CisgICAgICAgIHVybFN0ci5hcHBlbmQodXJsUXVlcnkpOwogICAgIH0KKworICAgIFN0cmluZyBo
dHRwTWV0aG9kID0gZmlyc3RSZXF1ZXN0KCkuaHR0cE1ldGhvZCgpOworICAgIFN0cmluZyBodHRw
UmVmZXJyZXIgPSBmaXJzdFJlcXVlc3QoKS5odHRwUmVmZXJyZXIoKTsKKworICAgIExQQ1dTVFIg
aHR0cEFjY2VwdFtdID0geyBMIiovKiIsIDAgfTsKKworICAgIGQtPm1fcmVxdWVzdEhhbmRsZSA9
IEh0dHBPcGVuUmVxdWVzdFcoZC0+bV9jb25uZWN0SGFuZGxlLCBodHRwTWV0aG9kLmNoYXJhY3Rl
cnNXaXRoTnVsbFRlcm1pbmF0aW9uKCksIHVybFN0ci5jaGFyYWN0ZXJzV2l0aE51bGxUZXJtaW5h
dGlvbigpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwgaHR0
cFJlZmVycmVyLmNoYXJhY3RlcnNXaXRoTnVsbFRlcm1pbmF0aW9uKCksIGh0dHBBY2NlcHQsIGZs
YWdzLCByZWludGVycHJldF9jYXN0PERXT1JEX1BUUj4odGhpcykpOworCisgICAgaWYgKCFkLT5t
X3JlcXVlc3RIYW5kbGUpIHsKKyAgICAgICAgSW50ZXJuZXRDbG9zZUhhbmRsZShkLT5tX2Nvbm5l
Y3RIYW5kbGUpOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgSU5URVJORVRf
QlVGRkVSU1cgaW50ZXJuZXRCdWZmZXJzOworICAgIFplcm9NZW1vcnkoJmludGVybmV0QnVmZmVy
cywgc2l6ZW9mKGludGVybmV0QnVmZmVycykpOworICAgIGludGVybmV0QnVmZmVycy5kd1N0cnVj
dFNpemUgPSBzaXplb2YoaW50ZXJuZXRCdWZmZXJzKTsKKworICAgIEh0dHBTZW5kUmVxdWVzdEV4
VyhkLT5tX3JlcXVlc3RIYW5kbGUsICZpbnRlcm5ldEJ1ZmZlcnMsIDAsIDAsIHJlaW50ZXJwcmV0
X2Nhc3Q8RFdPUkRfUFRSPih0aGlzKSk7CisKKyAgICByZWYoKTsgLy8gYmFsYW5jZWQgYnkgZGVy
ZWYgaW4gb25SZXF1ZXN0Q29tcGxldGUKKworICAgIHJldHVybiB0cnVlOwogfQogCiB2b2lkIFJl
c291cmNlSGFuZGxlOjpmaWxlTG9hZFRpbWVyKFRpbWVyPFJlc291cmNlSGFuZGxlPiopCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>