<?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>13090</bug_id>
          
          <creation_ts>2007-03-15 19:30:30 -0700</creation_ts>
          <short_desc>curl (linux/gdk) networking improvements</short_desc>
          <delta_ts>2007-05-29 23:22:58 -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>523.x (Safari 3)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.4</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="Krzysztof Kowalczyk">kkowalczyk</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>18355</commentid>
    <comment_count>0</comment_count>
    <who name="Krzysztof Kowalczyk">kkowalczyk</who>
    <bug_when>2007-03-15 19:30:30 -0700</bug_when>
    <thetext>curl (linux/gdk) networking improvements</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>18356</commentid>
    <comment_count>1</comment_count>
      <attachid>13653</attachid>
    <who name="Krzysztof Kowalczyk">kkowalczyk</who>
    <bug_when>2007-03-15 19:31:38 -0700</bug_when>
    <thetext>Created attachment 13653
curl networking improvements

Curl (linux/gdk) networking improvements: 
a) POST support
b) don&apos;t use CURL in a re-entrant way.
c) for easier debugging, in debug build if env var DEBUG_CURL is set,
   turn on curl&apos;s internal debbuging</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>14276</commentid>
    <comment_count>2</comment_count>
      <attachid>13653</attachid>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2007-04-18 09:42:15 -0700</bug_when>
    <thetext>Comment on attachment 13653
curl networking improvements

+    if ((CURLE_OK == err) &amp;&amp; ((301 == httpCode) || (302 == httpCode)))
+        return totalSize;
+

You have unneeded parenthesis here, and in several other places.


+        CString cstring =  elements[i].m_filename.utf8();

An extra space after the =.

+        // Fill in the file upload field
+        curl_formadd(&amp;post,
+                      &amp;lastItem,
+                      CURLFORM_COPYNAME, &quot;sendfile&quot;,
+                      CURLFORM_FILE, d-&gt;m_fileName,
+                      CURLFORM_END);
+ 
+        // Fill in the filename field
+        curl_formadd(&amp;post,
+                      &amp;lastItem,
+                      CURLFORM_COPYNAME, &quot;filename&quot;,
+                      CURLFORM_COPYCONTENTS, d-&gt;m_fileName,
+                      CURLFORM_END);
+ 
+        // Fill in the submit field too, even if this is rarely needed
+        curl_formadd(&amp;post,
+                      &amp;lastItem,
+                      CURLFORM_COPYNAME, &quot;submit&quot;,
+                      CURLFORM_COPYCONTENTS, &quot;send&quot;,
+                      CURLFORM_END);

This looks to be based on curl example code.  It seems incorrect to be adding a form field named &quot;submit&quot; for each file that is uploaded.  I think the indentation style of this code block could be cleaned up a great deal too.


+        if (job == node-&gt;job()) {
+            node-&gt;setRemoved(true);
+            return true;
+            node = next;
+        }

I think &quot;node = next;&quot; should be outside the braces.


+class ResourceHandleList
+{

Brace should be on same line as class statement.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>11809</commentid>
    <comment_count>3</comment_count>
      <attachid>14268</attachid>
    <who name="Alp Toker">alp</who>
    <bug_when>2007-04-29 11:22:03 -0700</bug_when>
    <thetext>Created attachment 14268
curl cleanup, take two

This patch attempts to address some of the issues in the review. I&apos;m not entirely familiar with what it&apos;s doing, but I have pending patches for this area of code and would prefer to get Krzysztof&apos;s patch merged while it still applies.

Having this patch open in bugzilla is a blocker for new work being done on the curl backend, so we should try to get this patch applied or WONTFIX if necessary.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>10763</commentid>
    <comment_count>4</comment_count>
      <attachid>14401</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2007-05-07 15:16:10 -0700</bug_when>
    <thetext>Created attachment 14401
Curl re-entrancy problem: tries to reuse semi-active handle

Segfault when libcurl tries to share handle which is not finished yet.

man curl_easy_handle:
&quot;If the curl handles are used simultaneously, you MUST use  the  locking  methods  in  the  share  handle.&quot;

When libcurl-gnutls (ubuntu package) is concerned, &quot;simultaneously&quot; means not calling add when you have received callback from that originates from curl_multi_perform.


Temp fix:
--
Index: platform/network/gdk/ResourceHandleManager.cpp
===================================================================
--- platform/network/gdk/ResourceHandleManager.cpp      (revision 21288)
+++ platform/network/gdk/ResourceHandleManager.cpp      (working copy)
@@ -188,7 +188,6 @@ void ResourceHandleManager::add(Resource
     curl_easy_setopt(d-&gt;m_handle, CURLOPT_FOLLOWLOCATION, 1);
     curl_easy_setopt(d-&gt;m_handle, CURLOPT_MAXREDIRS, 10);
     curl_easy_setopt(d-&gt;m_handle, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
-    curl_easy_setopt(d-&gt;m_handle, CURLOPT_SHARE, m_curlShareHandle);
     // enable gzip and deflate through Accept-Encoding:
     curl_easy_setopt(d-&gt;m_handle, CURLOPT_ENCODING, &quot;&quot;);</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>8886</commentid>
    <comment_count>5</comment_count>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2007-05-29 00:35:52 -0700</bug_when>
    <thetext>Code changes look ok to me, though I am not a curl expert. It&apos;s been reported these make curl networking more stable, so let us get them landed for now. They&apos;ll be more thoroughly validated once we get http layout tests running for gdk and other ports that use curl.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>8887</commentid>
    <comment_count>6</comment_count>
      <attachid>14268</attachid>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2007-05-29 00:36:45 -0700</bug_when>
    <thetext>Comment on attachment 14268
curl cleanup, take two

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>8785</commentid>
    <comment_count>7</comment_count>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2007-05-29 23:22:58 -0700</bug_when>
    <thetext>Landed in r21885.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>13653</attachid>
            <date>2007-03-15 19:31:38 -0700</date>
            <delta_ts>2007-04-29 11:22:03 -0700</delta_ts>
            <desc>curl networking improvements</desc>
            <filename>wc.patch</filename>
            <type>text/plain</type>
            <size>14385</size>
            <attacher name="Krzysztof Kowalczyk">kkowalczyk</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyMDIyNikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzQgQEAKKzIwMDctMDMtMTUgIEtyenlzenRvZiBLb3dhbGN6eWsgIDxra293YWxj
enlrQGdtYWlsLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBDdXJsIChsaW51eC9nZGspIG5ldHdvcmtpbmcgaW1wcm92ZW1lbnRzOiAKKyAgICAg
ICAgYSkgUE9TVCBzdXBwb3J0CisgICAgICAgIGIpIGRvbid0IHVzZSBDVVJMIGluIGEgcmUtZW50
cmFudCB3YXkuCisgICAgICAgIGMpIGZvciBlYXNpZXIgZGVidWdnaW5nLCBpbiBkZWJ1ZyBidWls
ZCBpZiBlbnYgdmFyIERFQlVHX0NVUkwgaXMgc2V0LAorICAgICAgICAgICB0dXJuIG9uIGN1cmwn
cyBpbnRlcm5hbCBkZWJidWdpbmcKKworICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvUmVzb3Vy
Y2VIYW5kbGVJbnRlcm5hbC5oOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGVJbnRl
cm5hbDo6UmVzb3VyY2VIYW5kbGVJbnRlcm5hbCk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29y
ay9nZGsvUmVzb3VyY2VIYW5kbGVDdXJsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNl
SGFuZGxlSW50ZXJuYWw6On5SZXNvdXJjZUhhbmRsZUludGVybmFsKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9uZXR3b3JrL2dkay9SZXNvdXJjZUhhbmRsZU1hbmFnZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UmVzb3VyY2VIYW5kbGVNYW5hZ2VyOjpSZXNvdXJjZUhhbmRsZU1hbmFnZXIpOgorICAg
ICAgICAoV2ViQ29yZTo6d3JpdGVDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJj
ZUhhbmRsZU1hbmFnZXI6OmRvd25sb2FkVGltZXJDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3Jl
OjpSZXNvdXJjZUhhbmRsZU1hbmFnZXI6OnNldHVwUE9TVCk6CisgICAgICAgIChXZWJDb3JlOjpS
ZXNvdXJjZUhhbmRsZU1hbmFnZXI6OmFkZCk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhh
bmRsZU1hbmFnZXI6OnJlbW92ZVNjaGVkdWxlZEpvYik6CisgICAgICAgIChXZWJDb3JlOjpSZXNv
dXJjZUhhbmRsZU1hbmFnZXI6OnN0YXJ0U2NoZWR1bGVkSm9icyk6CisgICAgICAgIChXZWJDb3Jl
OjpSZXNvdXJjZUhhbmRsZU1hbmFnZXI6OnN0YXJ0Sm9iKToKKyAgICAgICAgKFdlYkNvcmU6OlJl
c291cmNlSGFuZGxlTWFuYWdlcjo6Y2FuY2VsKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3Jr
L2dkay9SZXNvdXJjZUhhbmRsZU1hbmFnZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNl
SGFuZGxlTGlzdDo6UmVzb3VyY2VIYW5kbGVMaXN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291
cmNlSGFuZGxlTGlzdDo6bmV4dCk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZUxp
c3Q6OmpvYik6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZUxpc3Q6OnNldFJlbW92
ZWQpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGVMaXN0OjpyZW1vdmVkKToKKwog
MjAwNy0wMy0xNSAgQmV0aCBEYWtpbiAgPGJkYWtpbkBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2
aWV3ZWQgYnkgSHlhdHQuCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VI
YW5kbGVJbnRlcm5hbC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9S
ZXNvdXJjZUhhbmRsZUludGVybmFsLmgJKHJldmlzaW9uIDIwMjI2KQorKysgV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlSW50ZXJuYWwuaAkod29ya2luZyBjb3B5KQpAQCAt
OTEsNyArOTEsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAjaWYgVVNFKENVUkwpCiAgICAgICAg
ICAgICAsIG1faGFuZGxlKDApCiAgICAgICAgICAgICAsIG1fdXJsKDApCisgICAgICAgICAgICAs
IG1fZmlsZU5hbWUoMCkKICAgICAgICAgICAgICwgbV9jdXN0b21IZWFkZXJzKDApCisgICAgICAg
ICAgICAsIG1fY3VzdG9tUG9zdEhlYWRlcigwKQogI2VuZGlmCiAjaWYgUExBVEZPUk0oTUFDKQog
ICAgICAgICAgICAgLCBtX2N1cnJlbnRNYWNDaGFsbGVuZ2UobmlsKQpAQCAtMTM3LDcgKzEzOSwx
MCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAjaWYgVVNFKENVUkwpCiAgICAgICAgIENVUkwqIG1f
aGFuZGxlOwogICAgICAgICBjaGFyKiBtX3VybDsKKyAgICAgICAgY2hhciogbV9maWxlTmFtZTsK
ICAgICAgICAgc3RydWN0IGN1cmxfc2xpc3QqIG1fY3VzdG9tSGVhZGVyczsgICAgICAgIAorICAg
ICAgICBzdHJ1Y3QgY3VybF9zbGlzdCogbV9jdXN0b21Qb3N0SGVhZGVyOworICAgICAgICBWZWN0
b3I8Y2hhcj4gbV9wb3N0Qnl0ZXM7CiAjZW5kaWYKICNpZiBQTEFURk9STShNQUMpCiAgICAgICAg
IE5TVVJMQXV0aGVudGljYXRpb25DaGFsbGVuZ2UgKm1fY3VycmVudE1hY0NoYWxsZW5nZTsKSW5k
ZXg6IFdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9nZGsvUmVzb3VyY2VIYW5kbGVDdXJsLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvZ2RrL1Jlc291cmNlSGFuZGxl
Q3VybC5jcHAJKHJldmlzaW9uIDIwMjI2KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2dk
ay9SZXNvdXJjZUhhbmRsZUN1cmwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zOCw5ICszOCwxMSBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBSZXNvdXJjZUhhbmRsZUludGVybmFsOjp+UmVzb3VyY2VI
YW5kbGVJbnRlcm5hbCgpCiB7CiAgICAgZnJlZShtX3VybCk7Ci0KKyAgICBmcmVlKG1fZmlsZU5h
bWUpOwogICAgIGlmIChtX2N1c3RvbUhlYWRlcnMpCiAgICAgICAgIGN1cmxfc2xpc3RfZnJlZV9h
bGwobV9jdXN0b21IZWFkZXJzKTsKKyAgICBpZiAobV9jdXN0b21Qb3N0SGVhZGVyKQorICAgICAg
ICBjdXJsX3NsaXN0X2ZyZWVfYWxsKG1fY3VzdG9tUG9zdEhlYWRlcik7CiB9CiAKIFJlc291cmNl
SGFuZGxlOjp+UmVzb3VyY2VIYW5kbGUoKQpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L2dkay9SZXNvdXJjZUhhbmRsZU1hbmFnZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9nZGsvUmVzb3VyY2VIYW5kbGVNYW5hZ2VyLmNwcAkocmV2aXNpb24gMjAy
MjYpCisrKyBXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvZ2RrL1Jlc291cmNlSGFuZGxlTWFuYWdl
ci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJOb3RJbXBs
ZW1lbnRlZEdkay5oIgogI2luY2x1ZGUgIlJlc291cmNlSGFuZGxlLmgiCiAjaW5jbHVkZSAiUmVz
b3VyY2VIYW5kbGVJbnRlcm5hbC5oIgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCkBAIC00MSw2ICs0Miw3IEBAIGNvbnN0IGRvdWJsZSBwb2xsVGltZVNl
Y29uZHMgPSAwLjA1OwogUmVzb3VyY2VIYW5kbGVNYW5hZ2VyOjpSZXNvdXJjZUhhbmRsZU1hbmFn
ZXIoKQogICAgIDogbV9kb3dubG9hZFRpbWVyKHRoaXMsICZSZXNvdXJjZUhhbmRsZU1hbmFnZXI6
OmRvd25sb2FkVGltZXJDYWxsYmFjaykKICAgICAsIG1fY29va2llSmFyRmlsZU5hbWUoMCkKKyAg
ICAsIG1fcmVzb3VyY2VIYW5kbGVMaXN0SGVhZCgwKQogewogICAgIGN1cmxfZ2xvYmFsX2luaXQo
Q1VSTF9HTE9CQUxfQUxMKTsKICAgICBtX2N1cmxNdWx0aUhhbmRsZSA9IGN1cmxfbXVsdGlfaW5p
dCgpOwpAQCAtNjMsMTEgKzY1LDIxIEBAIFJlc291cmNlSGFuZGxlTWFuYWdlciogUmVzb3VyY2VI
YW5kbGVNYW4KIH0KIAogLy8gY2FsbGVkIHdpdGggZGF0YSBhZnRlciBhbGwgaGVhZGVycyBoYXZl
IGJlZW4gcHJvY2Vzc2VkIHZpYSBoZWFkZXJDYWxsYmFjawotc3RhdGljIHNpemVfdCB3cml0ZUNh
bGxiYWNrKHZvaWQqIHB0ciwgc2l6ZV90IHNpemUsIHNpemVfdCBubWVtYiwgdm9pZCogb2JqKQor
c3RhdGljIHNpemVfdCB3cml0ZUNhbGxiYWNrKHZvaWQqIHB0ciwgc2l6ZV90IHNpemUsIHNpemVf
dCBubWVtYiwgdm9pZCogZGF0YSkKIHsKLSAgICBSZXNvdXJjZUhhbmRsZSogam9iID0gc3RhdGlj
X2Nhc3Q8UmVzb3VyY2VIYW5kbGUqPihvYmopOworICAgIFJlc291cmNlSGFuZGxlKiBqb2IgPSBz
dGF0aWNfY2FzdDxSZXNvdXJjZUhhbmRsZSo+KGRhdGEpOwogICAgIFJlc291cmNlSGFuZGxlSW50
ZXJuYWwqIGQgPSBqb2ItPmdldEludGVybmFsKCk7CiAgICAgaW50IHRvdGFsU2l6ZSA9IHNpemUg
KiBubWVtYjsKKworICAgIC8vIHRoaXMgc2hvdWxkbid0IGJlIG5lY2Vzc2FyeSBidXQgYXBwYXJl
bnRseSBpcy4gQ1VSTCB3cml0ZXMgdGhlIGRhdGEKKyAgICAvLyBvZiBodG1sIHBhZ2UgZXZlbiBp
ZiBpdCBpcyBhIHJlZGlyZWN0IHRoYXQgd2FzIGhhbmRsZWQgaW50ZXJuYWxseQorICAgIC8vIGNh
biBiZSBvYnNlcnZlZCBlLmcuIG9uIGdtYWlsLmNvbQorICAgIENVUkwqIGggPSBkLT5tX2hhbmRs
ZTsKKyAgICBsb25nIGh0dHBDb2RlID0gMDsKKyAgICBDVVJMY29kZSBlcnIgPSBjdXJsX2Vhc3lf
Z2V0aW5mbyhoLCBDVVJMSU5GT19SRVNQT05TRV9DT0RFLCAmaHR0cENvZGUpOworICAgIGlmICgo
Q1VSTEVfT0sgPT0gZXJyKSAmJiAoKDMwMSA9PSBodHRwQ29kZSkgfHwgKDMwMiA9PSBodHRwQ29k
ZSkpKQorICAgICAgICByZXR1cm4gdG90YWxTaXplOworCiAgICAgaWYgKGQtPmNsaWVudCgpKQog
ICAgICAgICBkLT5jbGllbnQoKS0+ZGlkUmVjZWl2ZURhdGEoam9iLCBzdGF0aWNfY2FzdDxjaGFy
Kj4ocHRyKSwgdG90YWxTaXplLCAwKTsKICAgICByZXR1cm4gdG90YWxTaXplOwpAQCAtODMsMTQg
Kzk1LDE1IEBAIHN0YXRpYyBzaXplX3QgaGVhZGVyQ2FsbGJhY2soY2hhciogcHRyLCAKIAogdm9p
ZCBSZXNvdXJjZUhhbmRsZU1hbmFnZXI6OmRvd25sb2FkVGltZXJDYWxsYmFjayhUaW1lcjxSZXNv
dXJjZUhhbmRsZU1hbmFnZXI+KiB0aW1lcikKIHsKLSAgICBmZF9zZXQgZmRyZWFkOwotICAgIGZk
X3NldCBmZHdyaXRlOwotICAgIGZkX3NldCBmZGV4Y2VwOwotICAgIGludCBtYXhmZCA9IDA7Cisg
ICAgc3RhcnRTY2hlZHVsZWRKb2JzKCk7CiAKKyAgICBmZF9zZXQgZmRyZWFkOwogICAgIEZEX1pF
Uk8oJmZkcmVhZCk7CisgICAgZmRfc2V0IGZkd3JpdGU7CiAgICAgRkRfWkVSTygmZmR3cml0ZSk7
CisgICAgZmRfc2V0IGZkZXhjZXA7CiAgICAgRkRfWkVSTygmZmRleGNlcCk7CisgICAgaW50IG1h
eGZkID0gMDsKICAgICBjdXJsX211bHRpX2Zkc2V0KG1fY3VybE11bHRpSGFuZGxlLCAmZmRyZWFk
LCAmZmR3cml0ZSwgJmZkZXhjZXAsICZtYXhmZCk7CiAKICAgICBzdHJ1Y3QgdGltZXZhbCB0aW1l
b3V0OwpAQCAtMTI2LDEzICsxMzksMTQgQEAgdm9pZCBSZXNvdXJjZUhhbmRsZU1hbmFnZXI6OmRv
d25sb2FkVGltZQogICAgICAgICAvLyBmaW5kIHRoZSBub2RlIHdoaWNoIGhhcyBzYW1lIGQtPm1f
aGFuZGxlIGFzIGNvbXBsZXRlZCB0cmFuc2ZlcgogICAgICAgICBDVVJMKiBoYW5kbGUgPSBtc2ct
PmVhc3lfaGFuZGxlOwogICAgICAgICBBU1NFUlQoaGFuZGxlKTsKLSAgICAgICAgUmVzb3VyY2VI
YW5kbGUqIGpvYjsKLSAgICAgICAgY3VybF9lYXN5X2dldGluZm8oaGFuZGxlLCBDVVJMSU5GT19Q
UklWQVRFLCAmam9iKTsKKyAgICAgICAgUmVzb3VyY2VIYW5kbGUqIGpvYiA9IDA7CisgICAgICAg
IENVUkxjb2RlIGVyciA9IGN1cmxfZWFzeV9nZXRpbmZvKGhhbmRsZSwgQ1VSTElORk9fUFJJVkFU
RSwgJmpvYik7CisgICAgICAgIEFTU0VSVChDVVJMRV9PSyA9PSBlcnIpOwogICAgICAgICBBU1NF
UlQoam9iKTsKICAgICAgICAgaWYgKCFqb2IpCiAgICAgICAgICAgICBjb250aW51ZTsKLQogICAg
ICAgICBSZXNvdXJjZUhhbmRsZUludGVybmFsKiBkID0gam9iLT5nZXRJbnRlcm5hbCgpOworICAg
ICAgICBBU1NFUlQoZC0+bV9oYW5kbGUgPT0gaGFuZGxlKTsKICAgICAgICAgaWYgKENVUkxFX09L
ID09IG1zZy0+ZGF0YS5yZXN1bHQpIHsKICAgICAgICAgICAgIGlmIChkLT5jbGllbnQoKSkKICAg
ICAgICAgICAgICAgICBkLT5jbGllbnQoKS0+ZGlkRmluaXNoTG9hZGluZyhqb2IpOwpAQCAtMTQ5
LDcgKzE2Myw5IEBAIHZvaWQgUmVzb3VyY2VIYW5kbGVNYW5hZ2VyOjpkb3dubG9hZFRpbWUKICAg
ICAgICAgcmVtb3ZlRnJvbUN1cmwoam9iKTsKICAgICB9CiAKLSAgICBpZiAoIW1fZG93bmxvYWRU
aW1lci5pc0FjdGl2ZSgpICYmIChydW5uaW5nSGFuZGxlcyA+IDApKQorICAgIGJvb2wgc3RhcnRl
ZCA9IHN0YXJ0U2NoZWR1bGVkSm9icygpOyAvLyBuZXcgam9icyBtaWdodCBoYXZlIGJlZW4gYWRk
ZWQgaW4gdGhlIG1lYW50aW1lCisKKyAgICBpZiAoIW1fZG93bmxvYWRUaW1lci5pc0FjdGl2ZSgp
ICYmIChzdGFydGVkIHx8IChydW5uaW5nSGFuZGxlcyA+IDApKSkKICAgICAgICAgbV9kb3dubG9h
ZFRpbWVyLnN0YXJ0T25lU2hvdChwb2xsVGltZVNlY29uZHMpOwogfQogCkBAIC0xNjksMjYgKzE4
NSwxMTggQEAgdm9pZCBSZXNvdXJjZUhhbmRsZU1hbmFnZXI6OnNldHVwUFVUKFJlcwogICAgIG5v
dEltcGxlbWVudGVkR2RrKCk7CiB9CiAKLXZvaWQgUmVzb3VyY2VIYW5kbGVNYW5hZ2VyOjpzZXR1
cFBPU1QoUmVzb3VyY2VIYW5kbGUqKQordm9pZCBSZXNvdXJjZUhhbmRsZU1hbmFnZXI6OnNldHVw
UE9TVChSZXNvdXJjZUhhbmRsZSogam9iKQogewotICAgIG5vdEltcGxlbWVudGVkR2RrKCk7Ci19
CisgICAgUmVzb3VyY2VIYW5kbGVJbnRlcm5hbCogZCA9IGpvYi0+Z2V0SW50ZXJuYWwoKTsKKwor
ICAgIGN1cmxfZWFzeV9zZXRvcHQoZC0+bV9oYW5kbGUsIENVUkxPUFRfUE9TVCwgVFJVRSk7CisK
KyAgICBqb2ItPnBvc3REYXRhKCktPmZsYXR0ZW4oZC0+bV9wb3N0Qnl0ZXMpOworICAgIGlmIChk
LT5tX3Bvc3RCeXRlcy5zaXplKCkgIT0gMCkgeworICAgICAgICBjdXJsX2Vhc3lfc2V0b3B0KGQt
Pm1faGFuZGxlLCBDVVJMT1BUX1BPU1RGSUVMRFNJWkUsIGQtPm1fcG9zdEJ5dGVzLnNpemUoKSk7
CisgICAgICAgIGN1cmxfZWFzeV9zZXRvcHQoZC0+bV9oYW5kbGUsIENVUkxPUFRfUE9TVEZJRUxE
UywgZC0+bV9wb3N0Qnl0ZXMuZGF0YSgpKTsKKyAgICB9CisKKyAgICBWZWN0b3I8Rm9ybURhdGFF
bGVtZW50PiBlbGVtZW50cyA9IGpvYi0+cG9zdERhdGEoKS0+ZWxlbWVudHMoKTsKKyAgICBzaXpl
X3Qgc2l6ZSA9IGVsZW1lbnRzLnNpemUoKTsKKyAgICBzdHJ1Y3QgY3VybF9odHRwcG9zdCogbGFz
dEl0ZW0gPSAwOworICAgIHN0cnVjdCBjdXJsX2h0dHBwb3N0KiBwb3N0ID0gMDsKKyAgICBmb3Ig
KHNpemVfdCBpID0gMDsgaSA8IHNpemU7IGkrKykgeworICAgICAgICBpZiAoZWxlbWVudHNbaV0u
bV90eXBlICE9IEZvcm1EYXRhRWxlbWVudDo6ZW5jb2RlZEZpbGUpCisgICAgICAgICAgICBjb250
aW51ZTsKKyAgICAgICAgQ1N0cmluZyBjc3RyaW5nID0gIGVsZW1lbnRzW2ldLm1fZmlsZW5hbWUu
dXRmOCgpOworICAgICAgICBkLT5tX2ZpbGVOYW1lID0gc3RyZHVwKGNzdHJpbmcuZGF0YSgpKTsK
KyAKKyAgICAgICAgLy8gRmlsbCBpbiB0aGUgZmlsZSB1cGxvYWQgZmllbGQKKyAgICAgICAgY3Vy
bF9mb3JtYWRkKCZwb3N0LAorICAgICAgICAgICAgICAgICAgICAgICZsYXN0SXRlbSwKKyAgICAg
ICAgICAgICAgICAgICAgICBDVVJMRk9STV9DT1BZTkFNRSwgInNlbmRmaWxlIiwKKyAgICAgICAg
ICAgICAgICAgICAgICBDVVJMRk9STV9GSUxFLCBkLT5tX2ZpbGVOYW1lLAorICAgICAgICAgICAg
ICAgICAgICAgIENVUkxGT1JNX0VORCk7CisgCisgICAgICAgIC8vIEZpbGwgaW4gdGhlIGZpbGVu
YW1lIGZpZWxkCisgICAgICAgIGN1cmxfZm9ybWFkZCgmcG9zdCwKKyAgICAgICAgICAgICAgICAg
ICAgICAmbGFzdEl0ZW0sCisgICAgICAgICAgICAgICAgICAgICAgQ1VSTEZPUk1fQ09QWU5BTUUs
ICJmaWxlbmFtZSIsCisgICAgICAgICAgICAgICAgICAgICAgQ1VSTEZPUk1fQ09QWUNPTlRFTlRT
LCBkLT5tX2ZpbGVOYW1lLAorICAgICAgICAgICAgICAgICAgICAgIENVUkxGT1JNX0VORCk7Cisg
CisgICAgICAgIC8vIEZpbGwgaW4gdGhlIHN1Ym1pdCBmaWVsZCB0b28sIGV2ZW4gaWYgdGhpcyBp
cyByYXJlbHkgbmVlZGVkCisgICAgICAgIGN1cmxfZm9ybWFkZCgmcG9zdCwKKyAgICAgICAgICAg
ICAgICAgICAgICAmbGFzdEl0ZW0sCisgICAgICAgICAgICAgICAgICAgICAgQ1VSTEZPUk1fQ09Q
WU5BTUUsICJzdWJtaXQiLAorICAgICAgICAgICAgICAgICAgICAgIENVUkxGT1JNX0NPUFlDT05U
RU5UUywgInNlbmQiLAorICAgICAgICAgICAgICAgICAgICAgIENVUkxGT1JNX0VORCk7CisKKyAg
ICAgICAgLy8gRklYTUU6IHNob3VsZCB3ZSBzdXBwb3J0IG1vcmUgdGhhbiBvbmUgZmlsZT8KKyAg
ICAgICAgYnJlYWs7CisgICAgfQorCisgICAgaWYgKHBvc3QpCisgICAgICAgIGN1cmxfZWFzeV9z
ZXRvcHQoZC0+bV9oYW5kbGUsIENVUkxPUFRfSFRUUFBPU1QsIHBvc3QpOworIH0KIAogdm9pZCBS
ZXNvdXJjZUhhbmRsZU1hbmFnZXI6OmFkZChSZXNvdXJjZUhhbmRsZSogam9iKQogeworICAgIC8v
IHdlIGNhbiBiZSBjYWxsZWQgZnJvbSB3aXRoaW4gY3VybCwgc28gdG8gYXZvaWQgcmUtZW50cmFu
Y3kgaXNzdWVzCisgICAgLy8gc2NoZWR1bGUgdGhpcyBqb2IgdG8gYmUgYWRkZWQgdGhlIG5leHQg
dGltZSB3ZSBlbnRlciBjdXJsIGRvd25sb2FkIGxvb3AKKyAgICBtX3Jlc291cmNlSGFuZGxlTGlz
dEhlYWQgPSBuZXcgUmVzb3VyY2VIYW5kbGVMaXN0KGpvYiwgbV9yZXNvdXJjZUhhbmRsZUxpc3RI
ZWFkKTsKKyAgICBpZiAoIW1fZG93bmxvYWRUaW1lci5pc0FjdGl2ZSgpKQorICAgICAgICBtX2Rv
d25sb2FkVGltZXIuc3RhcnRPbmVTaG90KHBvbGxUaW1lU2Vjb25kcyk7Cit9CisKK2Jvb2wgUmVz
b3VyY2VIYW5kbGVNYW5hZ2VyOjpyZW1vdmVTY2hlZHVsZWRKb2IoUmVzb3VyY2VIYW5kbGUqIGpv
YikKK3sKKyAgICBSZXNvdXJjZUhhbmRsZUxpc3QqIG5vZGUgPSBtX3Jlc291cmNlSGFuZGxlTGlz
dEhlYWQ7CisgICAgd2hpbGUgKG5vZGUpIHsKKyAgICAgICAgUmVzb3VyY2VIYW5kbGVMaXN0KiBu
ZXh0ID0gbm9kZS0+bmV4dCgpOworICAgICAgICBpZiAoam9iID09IG5vZGUtPmpvYigpKSB7Cisg
ICAgICAgICAgICBub2RlLT5zZXRSZW1vdmVkKHRydWUpOworICAgICAgICAgICAgcmV0dXJuIHRy
dWU7CisgICAgICAgICAgICBub2RlID0gbmV4dDsKKyAgICAgICAgfQorICAgIH0KKyAgICByZXR1
cm4gZmFsc2U7Cit9CisKK2Jvb2wgUmVzb3VyY2VIYW5kbGVNYW5hZ2VyOjpzdGFydFNjaGVkdWxl
ZEpvYnMoKQoreworICAgIGJvb2wgc3RhcnRlZCA9IGZhbHNlOworICAgIFJlc291cmNlSGFuZGxl
TGlzdCogbm9kZSA9IG1fcmVzb3VyY2VIYW5kbGVMaXN0SGVhZDsKKyAgICB3aGlsZSAobm9kZSkg
eworICAgICAgICBSZXNvdXJjZUhhbmRsZUxpc3QqIG5leHQgPSBub2RlLT5uZXh0KCk7CisgICAg
ICAgIGlmICghbm9kZS0+cmVtb3ZlZCgpKSB7CisgICAgICAgICAgICBzdGFydEpvYihub2RlLT5q
b2IoKSk7CisgICAgICAgICAgICBzdGFydGVkID0gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICBk
ZWxldGUgbm9kZTsKKyAgICAgICAgbm9kZSA9IG5leHQ7CisgICAgfQorICAgIG1fcmVzb3VyY2VI
YW5kbGVMaXN0SGVhZCA9IDA7CisgICAgcmV0dXJuIHN0YXJ0ZWQ7Cit9CisKK3ZvaWQgUmVzb3Vy
Y2VIYW5kbGVNYW5hZ2VyOjpzdGFydEpvYihSZXNvdXJjZUhhbmRsZSogam9iKQorewogICAgIFJl
c291cmNlSGFuZGxlSW50ZXJuYWwqIGQgPSBqb2ItPmdldEludGVybmFsKCk7CiAgICAgRGVwcmVj
YXRlZFN0cmluZyB1cmwgPSBqb2ItPnVybCgpLnVybCgpOwogICAgIGQtPm1faGFuZGxlID0gY3Vy
bF9lYXN5X2luaXQoKTsKKyNpZm5kZWYgTkRFQlVHCisgICAgaWYgKGdldGVudigiREVCVUdfQ1VS
TCIpKQorICAgICAgICBjdXJsX2Vhc3lfc2V0b3B0KGQtPm1faGFuZGxlLCBDVVJMT1BUX1ZFUkJP
U0UsIDEpOworI2VuZGlmCiAgICAgY3VybF9lYXN5X3NldG9wdChkLT5tX2hhbmRsZSwgQ1VSTE9Q
VF9QUklWQVRFLCBqb2IpOwogICAgIGN1cmxfZWFzeV9zZXRvcHQoZC0+bV9oYW5kbGUsIENVUkxP
UFRfRVJST1JCVUZGRVIsIG1fY3VybEVycm9yQnVmZmVyKTsKICAgICBjdXJsX2Vhc3lfc2V0b3B0
KGQtPm1faGFuZGxlLCBDVVJMT1BUX1dSSVRFRlVOQ1RJT04sIHdyaXRlQ2FsbGJhY2spOwogICAg
IGN1cmxfZWFzeV9zZXRvcHQoZC0+bV9oYW5kbGUsIENVUkxPUFRfV1JJVEVEQVRBLCBqb2IpOwog
ICAgIGN1cmxfZWFzeV9zZXRvcHQoZC0+bV9oYW5kbGUsIENVUkxPUFRfSEVBREVSRlVOQ1RJT04s
IGhlYWRlckNhbGxiYWNrKTsKICAgICBjdXJsX2Vhc3lfc2V0b3B0KGQtPm1faGFuZGxlLCBDVVJM
T1BUX1dSSVRFSEVBREVSLCBqb2IpOworICAgIGN1cmxfZWFzeV9zZXRvcHQoZC0+bV9oYW5kbGUs
IENVUkxPUFRfQVVUT1JFRkVSRVIsIDEpOwogICAgIGN1cmxfZWFzeV9zZXRvcHQoZC0+bV9oYW5k
bGUsIENVUkxPUFRfRk9MTE9XTE9DQVRJT04sIDEpOwogICAgIGN1cmxfZWFzeV9zZXRvcHQoZC0+
bV9oYW5kbGUsIENVUkxPUFRfTUFYUkVESVJTLCAxMCk7CiAgICAgY3VybF9lYXN5X3NldG9wdChk
LT5tX2hhbmRsZSwgQ1VSTE9QVF9IVFRQQVVUSCwgQ1VSTEFVVEhfQU5ZKTsKICAgICBjdXJsX2Vh
c3lfc2V0b3B0KGQtPm1faGFuZGxlLCBDVVJMT1BUX1NIQVJFLCBtX2N1cmxTaGFyZUhhbmRsZSk7
CisgICAgY3VybF9lYXN5X3NldG9wdChkLT5tX2hhbmRsZSwgQ1VSTE9QVF9ETlNfQ0FDSEVfVElN
RU9VVCwgNjAqNSk7IC8vIDUgbWludXRlcwogICAgIC8vIGVuYWJsZSBnemlwIGFuZCBkZWZsYXRl
IHRocm91Z2ggQWNjZXB0LUVuY29kaW5nOgogICAgIGN1cmxfZWFzeV9zZXRvcHQoZC0+bV9oYW5k
bGUsIENVUkxPUFRfRU5DT0RJTkcsICIiKTsKIApAQCAtMjA2LDIxICszMTQsMjMgQEAgdm9pZCBS
ZXNvdXJjZUhhbmRsZU1hbmFnZXI6OmFkZChSZXNvdXJjZQogICAgICAgICBzdHJ1Y3QgY3VybF9z
bGlzdCogaGVhZGVycyA9IDA7CiAgICAgICAgIEhUVFBIZWFkZXJNYXAgY3VzdG9tSGVhZGVycyA9
IGpvYi0+cmVxdWVzdEhlYWRlcnMoKTsKICAgICAgICAgSFRUUEhlYWRlck1hcDo6Y29uc3RfaXRl
cmF0b3IgZW5kID0gY3VzdG9tSGVhZGVycy5lbmQoKTsKKyAgICAgICAgU3RyaW5nIHNlcGFyYXRv
cigiOiAiKTsKICAgICAgICAgZm9yIChIVFRQSGVhZGVyTWFwOjpjb25zdF9pdGVyYXRvciBpdCA9
IGN1c3RvbUhlYWRlcnMuYmVnaW4oKTsgaXQgIT0gZW5kOyArK2l0KSB7CiAgICAgICAgICAgICBT
dHJpbmcga2V5ID0gaXQtPmZpcnN0OwogICAgICAgICAgICAgU3RyaW5nIHZhbHVlID0gaXQtPnNl
Y29uZDsKLSAgICAgICAgICAgIFN0cmluZyBoZWFkZXJTdHJpbmcgPSBrZXkgKyAiOiAiICsgdmFs
dWU7Ci0gICAgICAgICAgICBjb25zdCBjaGFyKiBoZWFkZXIgPSBoZWFkZXJTdHJpbmcubGF0aW4x
KCkuZGF0YSgpOwotICAgICAgICAgICAgaGVhZGVycyA9IGN1cmxfc2xpc3RfYXBwZW5kKGhlYWRl
cnMsIGhlYWRlcik7CisgICAgICAgICAgICBTdHJpbmcgaGVhZGVyU3RyaW5nKGtleSk7CisgICAg
ICAgICAgICBoZWFkZXJTdHJpbmcuYXBwZW5kKHNlcGFyYXRvcik7CisgICAgICAgICAgICBoZWFk
ZXJTdHJpbmcuYXBwZW5kKHZhbHVlKTsKKyAgICAgICAgICAgIENTdHJpbmcgaGVhZGVyTGF0aW4x
ID0gaGVhZGVyU3RyaW5nLmxhdGluMSgpOworICAgICAgICAgICAgaGVhZGVycyA9IGN1cmxfc2xp
c3RfYXBwZW5kKGhlYWRlcnMsIGhlYWRlckxhdGluMS5kYXRhKCkpOwogICAgICAgICB9CiAgICAg
ICAgIGN1cmxfZWFzeV9zZXRvcHQoZC0+bV9oYW5kbGUsIENVUkxPUFRfSFRUUEhFQURFUiwgaGVh
ZGVycyk7CiAgICAgICAgIGQtPm1fY3VzdG9tSGVhZGVycyA9IGhlYWRlcnM7CiAgICAgfQogCi0g
ICAgLy8gZGVmYXVsdCB0byBHRVQKLSAgICBjdXJsX2Vhc3lfc2V0b3B0KGQtPm1faGFuZGxlLCBD
VVJMT1BUX0hUVFBHRVQsIFRSVUUpOwotCi0gICAgaWYgKCJQT1NUIiA9PSBqb2ItPm1ldGhvZCgp
KQorICAgIGlmICgiR0VUIiA9PSBqb2ItPm1ldGhvZCgpKQorICAgICAgICBjdXJsX2Vhc3lfc2V0
b3B0KGQtPm1faGFuZGxlLCBDVVJMT1BUX0hUVFBHRVQsIFRSVUUpOworICAgIGVsc2UgaWYgKCJQ
T1NUIiA9PSBqb2ItPm1ldGhvZCgpKQogICAgICAgICBzZXR1cFBPU1Qoam9iKTsKICAgICBlbHNl
IGlmICgiUFVUIiA9PSBqb2ItPm1ldGhvZCgpKQogICAgICAgICBzZXR1cFBVVChqb2IpOwpAQCAt
MjM3LDEzICszNDcsMTIgQEAgdm9pZCBSZXNvdXJjZUhhbmRsZU1hbmFnZXI6OmFkZChSZXNvdXJj
ZQogICAgICAgICBqb2ItPmNhbmNlbCgpOwogICAgICAgICByZXR1cm47CiAgICAgfQotCi0gICAg
aWYgKCFtX2Rvd25sb2FkVGltZXIuaXNBY3RpdmUoKSkKLSAgICAgICAgbV9kb3dubG9hZFRpbWVy
LnN0YXJ0T25lU2hvdChwb2xsVGltZVNlY29uZHMpOwogfQogCiB2b2lkIFJlc291cmNlSGFuZGxl
TWFuYWdlcjo6Y2FuY2VsKFJlc291cmNlSGFuZGxlKiBqb2IpCiB7CisgICAgaWYgKHJlbW92ZVNj
aGVkdWxlZEpvYihqb2IpKQorICAgICAgICByZXR1cm47CiAgICAgcmVtb3ZlRnJvbUN1cmwoam9i
KTsKICAgICAvLyBGSVhNRTogcmVwb3J0IGFuIGVycm9yPwogfQpJbmRleDogV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL2dkay9SZXNvdXJjZUhhbmRsZU1hbmFnZXIuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvZ2RrL1Jlc291cmNlSGFuZGxlTWFuYWdlci5oCShyZXZp
c2lvbiAyMDIyNikKKysrIFdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9nZGsvUmVzb3VyY2VIYW5k
bGVNYW5hZ2VyLmgJKHdvcmtpbmcgY29weSkKQEAgLTM1LDYgKzM1LDI1IEBACiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAorY2xhc3MgUmVzb3VyY2VIYW5kbGVMaXN0Cit7CitwdWJsaWM6CisgICAg
UmVzb3VyY2VIYW5kbGVMaXN0KFJlc291cmNlSGFuZGxlKiBqb2IsIFJlc291cmNlSGFuZGxlTGlz
dCogbmV4dCkKKyAgICAgICAgOiBtX2pvYihqb2IpCisgICAgICAgICwgbV9uZXh0KG5leHQpCisg
ICAgICAgICwgbV9yZW1vdmVkKGZhbHNlKQorICAgIHt9CisgICAgUmVzb3VyY2VIYW5kbGVMaXN0
KiBuZXh0KCkgY29uc3QgeyByZXR1cm4gbV9uZXh0OyB9CisgICAgUmVzb3VyY2VIYW5kbGUqIGpv
YigpIGNvbnN0IHsgcmV0dXJuIG1fam9iOyB9CisgICAgdm9pZCBzZXRSZW1vdmVkKGJvb2wgcmVt
b3ZlZCkgeyBtX3JlbW92ZWQgPSByZW1vdmVkOyB9CisgICAgYm9vbCByZW1vdmVkKCkgY29uc3Qg
eyByZXR1cm4gbV9yZW1vdmVkOyB9CisKK3ByaXZhdGU6CisgICAgUmVzb3VyY2VIYW5kbGUqIG1f
am9iOworICAgIFJlc291cmNlSGFuZGxlTGlzdCogbV9uZXh0OworICAgIGJvb2wgbV9yZW1vdmVk
OworfTsKKwogY2xhc3MgUmVzb3VyY2VIYW5kbGVNYW5hZ2VyIHsKIHB1YmxpYzoKICAgICBzdGF0
aWMgUmVzb3VyY2VIYW5kbGVNYW5hZ2VyKiBzaGFyZWRJbnN0YW5jZSgpOwpAQCAtNDksMTMgKzY4
LDE2IEBAIHByaXZhdGU6CiAgICAgUmVzb3VyY2VIYW5kbGVNYW5hZ2VyKCk7CiAgICAgdm9pZCBk
b3dubG9hZFRpbWVyQ2FsbGJhY2soVGltZXI8UmVzb3VyY2VIYW5kbGVNYW5hZ2VyPiopOwogICAg
IHZvaWQgcmVtb3ZlRnJvbUN1cmwoUmVzb3VyY2VIYW5kbGUqKTsKKyAgICBib29sIHJlbW92ZVNj
aGVkdWxlZEpvYihSZXNvdXJjZUhhbmRsZSopOworICAgIHZvaWQgc3RhcnRKb2IoUmVzb3VyY2VI
YW5kbGUqKTsKKyAgICBib29sIHN0YXJ0U2NoZWR1bGVkSm9icygpOwogCiAgICAgVGltZXI8UmVz
b3VyY2VIYW5kbGVNYW5hZ2VyPiBtX2Rvd25sb2FkVGltZXI7CiAgICAgQ1VSTE0qIG1fY3VybE11
bHRpSGFuZGxlOyAvLyBGSVhNRTogbmV2ZXIgZnJlZWQKICAgICBDVVJMU0gqIG1fY3VybFNoYXJl
SGFuZGxlOyAvLyBGSVhNRTogbmV2ZXIgZnJlZWQKICAgICBjaGFyKiBtX2Nvb2tpZUphckZpbGVO
YW1lOyAvLyBGSVhNRTogbmV2ZXIgZnJlZWQKLQogICAgIGNoYXIgbV9jdXJsRXJyb3JCdWZmZXJb
Q1VSTF9FUlJPUl9TSVpFXTsKKyAgICBSZXNvdXJjZUhhbmRsZUxpc3QqIG1fcmVzb3VyY2VIYW5k
bGVMaXN0SGVhZDsKIH07CiAKIH0K
</data>
<flag name="review"
          id="5424"
          type_id="1"
          status="-"
          setter="mrowe"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>14268</attachid>
            <date>2007-04-29 11:22:03 -0700</date>
            <delta_ts>2007-05-29 00:36:45 -0700</delta_ts>
            <desc>curl cleanup, take two</desc>
            <filename>curl-cleanup.patch</filename>
            <type>text/plain</type>
            <size>14064</size>
            <attacher name="Alp Toker">alp</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyMTE4MikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzQgQEAKKzIwMDctMDQtMjkgIEtyenlzenRvZiBLb3dhbGN6eWsgIDxra293YWxj
enlrQGdtYWlsLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBDdXJsIChsaW51eC9nZGspIG5ldHdvcmtpbmcgaW1wcm92ZW1lbnRzOiAKKyAgICAg
ICAgYSkgUE9TVCBzdXBwb3J0CisgICAgICAgIGIpIGRvbid0IHVzZSBDVVJMIGluIGEgcmUtZW50
cmFudCB3YXkuCisgICAgICAgIGMpIGZvciBlYXNpZXIgZGVidWdnaW5nLCBpbiBkZWJ1ZyBidWls
ZCBpZiBlbnYgdmFyIERFQlVHX0NVUkwgaXMgc2V0LAorICAgICAgICAgICB0dXJuIG9uIGN1cmwn
cyBpbnRlcm5hbCBkZWJidWdpbmcKKworICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvUmVzb3Vy
Y2VIYW5kbGVJbnRlcm5hbC5oOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGVJbnRl
cm5hbDo6UmVzb3VyY2VIYW5kbGVJbnRlcm5hbCk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29y
ay9nZGsvUmVzb3VyY2VIYW5kbGVDdXJsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNl
SGFuZGxlSW50ZXJuYWw6On5SZXNvdXJjZUhhbmRsZUludGVybmFsKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9uZXR3b3JrL2dkay9SZXNvdXJjZUhhbmRsZU1hbmFnZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UmVzb3VyY2VIYW5kbGVNYW5hZ2VyOjpSZXNvdXJjZUhhbmRsZU1hbmFnZXIpOgorICAg
ICAgICAoV2ViQ29yZTo6d3JpdGVDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJj
ZUhhbmRsZU1hbmFnZXI6OmRvd25sb2FkVGltZXJDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3Jl
OjpSZXNvdXJjZUhhbmRsZU1hbmFnZXI6OnNldHVwUE9TVCk6CisgICAgICAgIChXZWJDb3JlOjpS
ZXNvdXJjZUhhbmRsZU1hbmFnZXI6OmFkZCk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhh
bmRsZU1hbmFnZXI6OnJlbW92ZVNjaGVkdWxlZEpvYik6CisgICAgICAgIChXZWJDb3JlOjpSZXNv
dXJjZUhhbmRsZU1hbmFnZXI6OnN0YXJ0U2NoZWR1bGVkSm9icyk6CisgICAgICAgIChXZWJDb3Jl
OjpSZXNvdXJjZUhhbmRsZU1hbmFnZXI6OnN0YXJ0Sm9iKToKKyAgICAgICAgKFdlYkNvcmU6OlJl
c291cmNlSGFuZGxlTWFuYWdlcjo6Y2FuY2VsKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3Jr
L2dkay9SZXNvdXJjZUhhbmRsZU1hbmFnZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNl
SGFuZGxlTGlzdDo6UmVzb3VyY2VIYW5kbGVMaXN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291
cmNlSGFuZGxlTGlzdDo6bmV4dCk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZUxp
c3Q6OmpvYik6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZUxpc3Q6OnNldFJlbW92
ZWQpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGVMaXN0OjpyZW1vdmVkKToKKwog
MjAwNy0wNC0yOSAgRGF2aWQgSHlhdHQgIDxoeWF0dEBhcHBsZS5jb20+CiAKICAgICAgICAgRml4
IGZvciBidWd6aWxsYSAxMzUzNSwgcmVncmVzc2lvbiBmcm9tIHBvc2l0aW9uaW5nIGNsZWFudXAg
YSB3aGlsZQpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlSW50
ZXJuYWwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VI
YW5kbGVJbnRlcm5hbC5oCShyZXZpc2lvbiAyMTE4MikKKysrIFdlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9SZXNvdXJjZUhhbmRsZUludGVybmFsLmgJKHdvcmtpbmcgY29weSkKQEAgLTkxLDcgKzkx
LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogI2lmIFVTRShDVVJMKQogICAgICAgICAgICAgLCBt
X2hhbmRsZSgwKQogICAgICAgICAgICAgLCBtX3VybCgwKQorICAgICAgICAgICAgLCBtX2ZpbGVO
YW1lKDApCiAgICAgICAgICAgICAsIG1fY3VzdG9tSGVhZGVycygwKQorICAgICAgICAgICAgLCBt
X2N1c3RvbVBvc3RIZWFkZXIoMCkKICNlbmRpZgogI2lmIFBMQVRGT1JNKE1BQykKICAgICAgICAg
ICAgICwgbV9jdXJyZW50TWFjQ2hhbGxlbmdlKG5pbCkKQEAgLTEzNyw3ICsxMzksMTAgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogI2lmIFVTRShDVVJMKQogICAgICAgICBDVVJMKiBtX2hhbmRsZTsK
ICAgICAgICAgY2hhciogbV91cmw7CisgICAgICAgIGNoYXIqIG1fZmlsZU5hbWU7CiAgICAgICAg
IHN0cnVjdCBjdXJsX3NsaXN0KiBtX2N1c3RvbUhlYWRlcnM7ICAgICAgICAKKyAgICAgICAgc3Ry
dWN0IGN1cmxfc2xpc3QqIG1fY3VzdG9tUG9zdEhlYWRlcjsKKyAgICAgICAgVmVjdG9yPGNoYXI+
IG1fcG9zdEJ5dGVzOwogI2VuZGlmCiAjaWYgUExBVEZPUk0oTUFDKQogICAgICAgICBOU1VSTEF1
dGhlbnRpY2F0aW9uQ2hhbGxlbmdlICptX2N1cnJlbnRNYWNDaGFsbGVuZ2U7CkluZGV4OiBXZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvZ2RrL1Jlc291cmNlSGFuZGxlQ3VybC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2dkay9SZXNvdXJjZUhhbmRsZUN1cmwuY3Bw
CShyZXZpc2lvbiAyMTE4MikKKysrIFdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9nZGsvUmVzb3Vy
Y2VIYW5kbGVDdXJsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzgsOSArMzgsMTEgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogUmVzb3VyY2VIYW5kbGVJbnRlcm5hbDo6flJlc291cmNlSGFuZGxlSW50
ZXJuYWwoKQogewogICAgIGZyZWUobV91cmwpOwotCisgICAgZnJlZShtX2ZpbGVOYW1lKTsKICAg
ICBpZiAobV9jdXN0b21IZWFkZXJzKQogICAgICAgICBjdXJsX3NsaXN0X2ZyZWVfYWxsKG1fY3Vz
dG9tSGVhZGVycyk7CisgICAgaWYgKG1fY3VzdG9tUG9zdEhlYWRlcikKKyAgICAgICAgY3VybF9z
bGlzdF9mcmVlX2FsbChtX2N1c3RvbVBvc3RIZWFkZXIpOwogfQogCiBSZXNvdXJjZUhhbmRsZTo6
flJlc291cmNlSGFuZGxlKCkKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9nZGsvUmVz
b3VyY2VIYW5kbGVNYW5hZ2VyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvZ2RrL1Jlc291cmNlSGFuZGxlTWFuYWdlci5jcHAJKHJldmlzaW9uIDIxMTgyKQorKysg
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2dkay9SZXNvdXJjZUhhbmRsZU1hbmFnZXIuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWRH
ZGsuaCIKICNpbmNsdWRlICJSZXNvdXJjZUhhbmRsZS5oIgogI2luY2x1ZGUgIlJlc291cmNlSGFu
ZGxlSW50ZXJuYWwuaCIKKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIApAQCAtNDEsNiArNDIsNyBAQCBjb25zdCBkb3VibGUgcG9sbFRpbWVTZWNvbmRzID0g
MC4wNTsKIFJlc291cmNlSGFuZGxlTWFuYWdlcjo6UmVzb3VyY2VIYW5kbGVNYW5hZ2VyKCkKICAg
ICA6IG1fZG93bmxvYWRUaW1lcih0aGlzLCAmUmVzb3VyY2VIYW5kbGVNYW5hZ2VyOjpkb3dubG9h
ZFRpbWVyQ2FsbGJhY2spCiAgICAgLCBtX2Nvb2tpZUphckZpbGVOYW1lKDApCisgICAgLCBtX3Jl
c291cmNlSGFuZGxlTGlzdEhlYWQoMCkKIHsKICAgICBjdXJsX2dsb2JhbF9pbml0KENVUkxfR0xP
QkFMX0FMTCk7CiAgICAgbV9jdXJsTXVsdGlIYW5kbGUgPSBjdXJsX211bHRpX2luaXQoKTsKQEAg
LTYzLDExICs2NSwyMSBAQCBSZXNvdXJjZUhhbmRsZU1hbmFnZXIqIFJlc291cmNlSGFuZGxlTWFu
CiB9CiAKIC8vIGNhbGxlZCB3aXRoIGRhdGEgYWZ0ZXIgYWxsIGhlYWRlcnMgaGF2ZSBiZWVuIHBy
b2Nlc3NlZCB2aWEgaGVhZGVyQ2FsbGJhY2sKLXN0YXRpYyBzaXplX3Qgd3JpdGVDYWxsYmFjayh2
b2lkKiBwdHIsIHNpemVfdCBzaXplLCBzaXplX3Qgbm1lbWIsIHZvaWQqIG9iaikKK3N0YXRpYyBz
aXplX3Qgd3JpdGVDYWxsYmFjayh2b2lkKiBwdHIsIHNpemVfdCBzaXplLCBzaXplX3Qgbm1lbWIs
IHZvaWQqIGRhdGEpCiB7Ci0gICAgUmVzb3VyY2VIYW5kbGUqIGpvYiA9IHN0YXRpY19jYXN0PFJl
c291cmNlSGFuZGxlKj4ob2JqKTsKKyAgICBSZXNvdXJjZUhhbmRsZSogam9iID0gc3RhdGljX2Nh
c3Q8UmVzb3VyY2VIYW5kbGUqPihkYXRhKTsKICAgICBSZXNvdXJjZUhhbmRsZUludGVybmFsKiBk
ID0gam9iLT5nZXRJbnRlcm5hbCgpOwogICAgIGludCB0b3RhbFNpemUgPSBzaXplICogbm1lbWI7
CisKKyAgICAvLyB0aGlzIHNob3VsZG4ndCBiZSBuZWNlc3NhcnkgYnV0IGFwcGFyZW50bHkgaXMu
IENVUkwgd3JpdGVzIHRoZSBkYXRhCisgICAgLy8gb2YgaHRtbCBwYWdlIGV2ZW4gaWYgaXQgaXMg
YSByZWRpcmVjdCB0aGF0IHdhcyBoYW5kbGVkIGludGVybmFsbHkKKyAgICAvLyBjYW4gYmUgb2Jz
ZXJ2ZWQgZS5nLiBvbiBnbWFpbC5jb20KKyAgICBDVVJMKiBoID0gZC0+bV9oYW5kbGU7CisgICAg
bG9uZyBodHRwQ29kZSA9IDA7CisgICAgQ1VSTGNvZGUgZXJyID0gY3VybF9lYXN5X2dldGluZm8o
aCwgQ1VSTElORk9fUkVTUE9OU0VfQ09ERSwgJmh0dHBDb2RlKTsKKyAgICBpZiAoQ1VSTEVfT0sg
PT0gZXJyICYmIGh0dHBDb2RlID49IDMwMCAmJiBodHRwQ29kZSA8IDQwMCkKKyAgICAgICAgcmV0
dXJuIHRvdGFsU2l6ZTsKKwogICAgIGlmIChkLT5jbGllbnQoKSkKICAgICAgICAgZC0+Y2xpZW50
KCktPmRpZFJlY2VpdmVEYXRhKGpvYiwgc3RhdGljX2Nhc3Q8Y2hhcio+KHB0ciksIHRvdGFsU2l6
ZSwgMCk7CiAgICAgcmV0dXJuIHRvdGFsU2l6ZTsKQEAgLTgzLDE0ICs5NSwxNSBAQCBzdGF0aWMg
c2l6ZV90IGhlYWRlckNhbGxiYWNrKGNoYXIqIHB0ciwgCiAKIHZvaWQgUmVzb3VyY2VIYW5kbGVN
YW5hZ2VyOjpkb3dubG9hZFRpbWVyQ2FsbGJhY2soVGltZXI8UmVzb3VyY2VIYW5kbGVNYW5hZ2Vy
PiogdGltZXIpCiB7Ci0gICAgZmRfc2V0IGZkcmVhZDsKLSAgICBmZF9zZXQgZmR3cml0ZTsKLSAg
ICBmZF9zZXQgZmRleGNlcDsKLSAgICBpbnQgbWF4ZmQgPSAwOworICAgIHN0YXJ0U2NoZWR1bGVk
Sm9icygpOwogCisgICAgZmRfc2V0IGZkcmVhZDsKICAgICBGRF9aRVJPKCZmZHJlYWQpOworICAg
IGZkX3NldCBmZHdyaXRlOwogICAgIEZEX1pFUk8oJmZkd3JpdGUpOworICAgIGZkX3NldCBmZGV4
Y2VwOwogICAgIEZEX1pFUk8oJmZkZXhjZXApOworICAgIGludCBtYXhmZCA9IDA7CiAgICAgY3Vy
bF9tdWx0aV9mZHNldChtX2N1cmxNdWx0aUhhbmRsZSwgJmZkcmVhZCwgJmZkd3JpdGUsICZmZGV4
Y2VwLCAmbWF4ZmQpOwogCiAgICAgc3RydWN0IHRpbWV2YWwgdGltZW91dDsKQEAgLTEyNiwxMyAr
MTM5LDE0IEBAIHZvaWQgUmVzb3VyY2VIYW5kbGVNYW5hZ2VyOjpkb3dubG9hZFRpbWUKICAgICAg
ICAgLy8gZmluZCB0aGUgbm9kZSB3aGljaCBoYXMgc2FtZSBkLT5tX2hhbmRsZSBhcyBjb21wbGV0
ZWQgdHJhbnNmZXIKICAgICAgICAgQ1VSTCogaGFuZGxlID0gbXNnLT5lYXN5X2hhbmRsZTsKICAg
ICAgICAgQVNTRVJUKGhhbmRsZSk7Ci0gICAgICAgIFJlc291cmNlSGFuZGxlKiBqb2I7Ci0gICAg
ICAgIGN1cmxfZWFzeV9nZXRpbmZvKGhhbmRsZSwgQ1VSTElORk9fUFJJVkFURSwgJmpvYik7Cisg
ICAgICAgIFJlc291cmNlSGFuZGxlKiBqb2IgPSAwOworICAgICAgICBDVVJMY29kZSBlcnIgPSBj
dXJsX2Vhc3lfZ2V0aW5mbyhoYW5kbGUsIENVUkxJTkZPX1BSSVZBVEUsICZqb2IpOworICAgICAg
ICBBU1NFUlQoQ1VSTEVfT0sgPT0gZXJyKTsKICAgICAgICAgQVNTRVJUKGpvYik7CiAgICAgICAg
IGlmICgham9iKQogICAgICAgICAgICAgY29udGludWU7Ci0KICAgICAgICAgUmVzb3VyY2VIYW5k
bGVJbnRlcm5hbCogZCA9IGpvYi0+Z2V0SW50ZXJuYWwoKTsKKyAgICAgICAgQVNTRVJUKGQtPm1f
aGFuZGxlID09IGhhbmRsZSk7CiAgICAgICAgIGlmIChDVVJMRV9PSyA9PSBtc2ctPmRhdGEucmVz
dWx0KSB7CiAgICAgICAgICAgICBpZiAoZC0+Y2xpZW50KCkpCiAgICAgICAgICAgICAgICAgZC0+
Y2xpZW50KCktPmRpZEZpbmlzaExvYWRpbmcoam9iKTsKQEAgLTE0OSw3ICsxNjMsOSBAQCB2b2lk
IFJlc291cmNlSGFuZGxlTWFuYWdlcjo6ZG93bmxvYWRUaW1lCiAgICAgICAgIHJlbW92ZUZyb21D
dXJsKGpvYik7CiAgICAgfQogCi0gICAgaWYgKCFtX2Rvd25sb2FkVGltZXIuaXNBY3RpdmUoKSAm
JiAocnVubmluZ0hhbmRsZXMgPiAwKSkKKyAgICBib29sIHN0YXJ0ZWQgPSBzdGFydFNjaGVkdWxl
ZEpvYnMoKTsgLy8gbmV3IGpvYnMgbWlnaHQgaGF2ZSBiZWVuIGFkZGVkIGluIHRoZSBtZWFudGlt
ZQorCisgICAgaWYgKCFtX2Rvd25sb2FkVGltZXIuaXNBY3RpdmUoKSAmJiAoc3RhcnRlZCB8fCAo
cnVubmluZ0hhbmRsZXMgPiAwKSkpCiAgICAgICAgIG1fZG93bmxvYWRUaW1lci5zdGFydE9uZVNo
b3QocG9sbFRpbWVTZWNvbmRzKTsKIH0KIApAQCAtMTY5LDI2ICsxODUsMTA5IEBAIHZvaWQgUmVz
b3VyY2VIYW5kbGVNYW5hZ2VyOjpzZXR1cFBVVChSZXMKICAgICBub3RJbXBsZW1lbnRlZEdkaygp
OwogfQogCi12b2lkIFJlc291cmNlSGFuZGxlTWFuYWdlcjo6c2V0dXBQT1NUKFJlc291cmNlSGFu
ZGxlKikKK3ZvaWQgUmVzb3VyY2VIYW5kbGVNYW5hZ2VyOjpzZXR1cFBPU1QoUmVzb3VyY2VIYW5k
bGUqIGpvYikKIHsKLSAgICBub3RJbXBsZW1lbnRlZEdkaygpOwotfQorICAgIFJlc291cmNlSGFu
ZGxlSW50ZXJuYWwqIGQgPSBqb2ItPmdldEludGVybmFsKCk7CisKKyAgICBjdXJsX2Vhc3lfc2V0
b3B0KGQtPm1faGFuZGxlLCBDVVJMT1BUX1BPU1QsIFRSVUUpOworCisgICAgam9iLT5wb3N0RGF0
YSgpLT5mbGF0dGVuKGQtPm1fcG9zdEJ5dGVzKTsKKyAgICBpZiAoZC0+bV9wb3N0Qnl0ZXMuc2l6
ZSgpICE9IDApIHsKKyAgICAgICAgY3VybF9lYXN5X3NldG9wdChkLT5tX2hhbmRsZSwgQ1VSTE9Q
VF9QT1NURklFTERTSVpFLCBkLT5tX3Bvc3RCeXRlcy5zaXplKCkpOworICAgICAgICBjdXJsX2Vh
c3lfc2V0b3B0KGQtPm1faGFuZGxlLCBDVVJMT1BUX1BPU1RGSUVMRFMsIGQtPm1fcG9zdEJ5dGVz
LmRhdGEoKSk7CisgICAgfQorCisgICAgVmVjdG9yPEZvcm1EYXRhRWxlbWVudD4gZWxlbWVudHMg
PSBqb2ItPnBvc3REYXRhKCktPmVsZW1lbnRzKCk7CisgICAgc2l6ZV90IHNpemUgPSBlbGVtZW50
cy5zaXplKCk7CisgICAgc3RydWN0IGN1cmxfaHR0cHBvc3QqIGxhc3RJdGVtID0gMDsKKyAgICBz
dHJ1Y3QgY3VybF9odHRwcG9zdCogcG9zdCA9IDA7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkg
PCBzaXplOyBpKyspIHsKKyAgICAgICAgaWYgKGVsZW1lbnRzW2ldLm1fdHlwZSAhPSBGb3JtRGF0
YUVsZW1lbnQ6OmVuY29kZWRGaWxlKQorICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIENT
dHJpbmcgY3N0cmluZyA9IGVsZW1lbnRzW2ldLm1fZmlsZW5hbWUudXRmOCgpOworICAgICAgICBB
U1NFUlQoIWQtPm1fZmlsZU5hbWUpOworICAgICAgICBkLT5tX2ZpbGVOYW1lID0gc3RyZHVwKGNz
dHJpbmcuZGF0YSgpKTsKKworICAgICAgICAvLyBGaWxsIGluIHRoZSBmaWxlIHVwbG9hZCBmaWVs
ZAorICAgICAgICBjdXJsX2Zvcm1hZGQoJnBvc3QsICZsYXN0SXRlbSwgQ1VSTEZPUk1fQ09QWU5B
TUUsICJzZW5kZmlsZSIsIENVUkxGT1JNX0ZJTEUsIGQtPm1fZmlsZU5hbWUsIENVUkxGT1JNX0VO
RCk7CisKKyAgICAgICAgLy8gRmlsbCBpbiB0aGUgZmlsZW5hbWUgZmllbGQKKyAgICAgICAgY3Vy
bF9mb3JtYWRkKCZwb3N0LCAmbGFzdEl0ZW0sIENVUkxGT1JNX0NPUFlOQU1FLCAiZmlsZW5hbWUi
LCBDVVJMRk9STV9DT1BZQ09OVEVOVFMsIGQtPm1fZmlsZU5hbWUsIENVUkxGT1JNX0VORCk7CisK
KworICAgICAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIG5vdCBhZGQgYSAic3VibWl0IiBmaWVsZCBm
b3IgZWFjaCBmaWxlIHVwbG9hZGVkLiBSZXZpZXcgdGhpcyBjb2RlLgorICAgICAgICAvLyBGaWxs
IGluIHRoZSBzdWJtaXQgZmllbGQgdG9vLCBldmVuIGlmIHRoaXMgaXMgcmFyZWx5IG5lZWRlZAor
ICAgICAgICBjdXJsX2Zvcm1hZGQoJnBvc3QsICZsYXN0SXRlbSwgQ1VSTEZPUk1fQ09QWU5BTUUs
ICJzdWJtaXQiLCBDVVJMRk9STV9DT1BZQ09OVEVOVFMsICJzZW5kIiwgQ1VSTEZPUk1fRU5EKTsK
KworICAgICAgICAvLyBGSVhNRTogc2hvdWxkIHdlIHN1cHBvcnQgbW9yZSB0aGFuIG9uZSBmaWxl
PworICAgICAgICBicmVhazsKKyAgICB9CisKKyAgICBpZiAocG9zdCkKKyAgICAgICAgY3VybF9l
YXN5X3NldG9wdChkLT5tX2hhbmRsZSwgQ1VSTE9QVF9IVFRQUE9TVCwgcG9zdCk7CisgfQogCiB2
b2lkIFJlc291cmNlSGFuZGxlTWFuYWdlcjo6YWRkKFJlc291cmNlSGFuZGxlKiBqb2IpCiB7Cisg
ICAgLy8gd2UgY2FuIGJlIGNhbGxlZCBmcm9tIHdpdGhpbiBjdXJsLCBzbyB0byBhdm9pZCByZS1l
bnRyYW5jeSBpc3N1ZXMKKyAgICAvLyBzY2hlZHVsZSB0aGlzIGpvYiB0byBiZSBhZGRlZCB0aGUg
bmV4dCB0aW1lIHdlIGVudGVyIGN1cmwgZG93bmxvYWQgbG9vcAorICAgIG1fcmVzb3VyY2VIYW5k
bGVMaXN0SGVhZCA9IG5ldyBSZXNvdXJjZUhhbmRsZUxpc3Qoam9iLCBtX3Jlc291cmNlSGFuZGxl
TGlzdEhlYWQpOworICAgIGlmICghbV9kb3dubG9hZFRpbWVyLmlzQWN0aXZlKCkpCisgICAgICAg
IG1fZG93bmxvYWRUaW1lci5zdGFydE9uZVNob3QocG9sbFRpbWVTZWNvbmRzKTsKK30KKworYm9v
bCBSZXNvdXJjZUhhbmRsZU1hbmFnZXI6OnJlbW92ZVNjaGVkdWxlZEpvYihSZXNvdXJjZUhhbmRs
ZSogam9iKQoreworICAgIFJlc291cmNlSGFuZGxlTGlzdCogbm9kZSA9IG1fcmVzb3VyY2VIYW5k
bGVMaXN0SGVhZDsKKyAgICB3aGlsZSAobm9kZSkgeworICAgICAgICBSZXNvdXJjZUhhbmRsZUxp
c3QqIG5leHQgPSBub2RlLT5uZXh0KCk7CisgICAgICAgIGlmIChqb2IgPT0gbm9kZS0+am9iKCkp
IHsKKyAgICAgICAgICAgIG5vZGUtPnNldFJlbW92ZWQodHJ1ZSk7CisgICAgICAgICAgICByZXR1
cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICBub2RlID0gbmV4dDsKKyAgICB9CisgICAgcmV0
dXJuIGZhbHNlOworfQorCitib29sIFJlc291cmNlSGFuZGxlTWFuYWdlcjo6c3RhcnRTY2hlZHVs
ZWRKb2JzKCkKK3sKKyAgICBib29sIHN0YXJ0ZWQgPSBmYWxzZTsKKyAgICBSZXNvdXJjZUhhbmRs
ZUxpc3QqIG5vZGUgPSBtX3Jlc291cmNlSGFuZGxlTGlzdEhlYWQ7CisgICAgd2hpbGUgKG5vZGUp
IHsKKyAgICAgICAgUmVzb3VyY2VIYW5kbGVMaXN0KiBuZXh0ID0gbm9kZS0+bmV4dCgpOworICAg
ICAgICBpZiAoIW5vZGUtPnJlbW92ZWQoKSkgeworICAgICAgICAgICAgc3RhcnRKb2Iobm9kZS0+
am9iKCkpOworICAgICAgICAgICAgc3RhcnRlZCA9IHRydWU7CisgICAgICAgIH0KKyAgICAgICAg
ZGVsZXRlIG5vZGU7CisgICAgICAgIG5vZGUgPSBuZXh0OworICAgIH0KKyAgICBtX3Jlc291cmNl
SGFuZGxlTGlzdEhlYWQgPSAwOworICAgIHJldHVybiBzdGFydGVkOworfQorCit2b2lkIFJlc291
cmNlSGFuZGxlTWFuYWdlcjo6c3RhcnRKb2IoUmVzb3VyY2VIYW5kbGUqIGpvYikKK3sKICAgICBS
ZXNvdXJjZUhhbmRsZUludGVybmFsKiBkID0gam9iLT5nZXRJbnRlcm5hbCgpOwogICAgIERlcHJl
Y2F0ZWRTdHJpbmcgdXJsID0gam9iLT51cmwoKS51cmwoKTsKICAgICBkLT5tX2hhbmRsZSA9IGN1
cmxfZWFzeV9pbml0KCk7CisjaWZuZGVmIE5ERUJVRworICAgIGlmIChnZXRlbnYoIkRFQlVHX0NV
UkwiKSkKKyAgICAgICAgY3VybF9lYXN5X3NldG9wdChkLT5tX2hhbmRsZSwgQ1VSTE9QVF9WRVJC
T1NFLCAxKTsKKyNlbmRpZgogICAgIGN1cmxfZWFzeV9zZXRvcHQoZC0+bV9oYW5kbGUsIENVUkxP
UFRfUFJJVkFURSwgam9iKTsKICAgICBjdXJsX2Vhc3lfc2V0b3B0KGQtPm1faGFuZGxlLCBDVVJM
T1BUX0VSUk9SQlVGRkVSLCBtX2N1cmxFcnJvckJ1ZmZlcik7CiAgICAgY3VybF9lYXN5X3NldG9w
dChkLT5tX2hhbmRsZSwgQ1VSTE9QVF9XUklURUZVTkNUSU9OLCB3cml0ZUNhbGxiYWNrKTsKICAg
ICBjdXJsX2Vhc3lfc2V0b3B0KGQtPm1faGFuZGxlLCBDVVJMT1BUX1dSSVRFREFUQSwgam9iKTsK
ICAgICBjdXJsX2Vhc3lfc2V0b3B0KGQtPm1faGFuZGxlLCBDVVJMT1BUX0hFQURFUkZVTkNUSU9O
LCBoZWFkZXJDYWxsYmFjayk7CiAgICAgY3VybF9lYXN5X3NldG9wdChkLT5tX2hhbmRsZSwgQ1VS
TE9QVF9XUklURUhFQURFUiwgam9iKTsKKyAgICBjdXJsX2Vhc3lfc2V0b3B0KGQtPm1faGFuZGxl
LCBDVVJMT1BUX0FVVE9SRUZFUkVSLCAxKTsKICAgICBjdXJsX2Vhc3lfc2V0b3B0KGQtPm1faGFu
ZGxlLCBDVVJMT1BUX0ZPTExPV0xPQ0FUSU9OLCAxKTsKICAgICBjdXJsX2Vhc3lfc2V0b3B0KGQt
Pm1faGFuZGxlLCBDVVJMT1BUX01BWFJFRElSUywgMTApOwogICAgIGN1cmxfZWFzeV9zZXRvcHQo
ZC0+bV9oYW5kbGUsIENVUkxPUFRfSFRUUEFVVEgsIENVUkxBVVRIX0FOWSk7CiAgICAgY3VybF9l
YXN5X3NldG9wdChkLT5tX2hhbmRsZSwgQ1VSTE9QVF9TSEFSRSwgbV9jdXJsU2hhcmVIYW5kbGUp
OworICAgIGN1cmxfZWFzeV9zZXRvcHQoZC0+bV9oYW5kbGUsIENVUkxPUFRfRE5TX0NBQ0hFX1RJ
TUVPVVQsIDYwKjUpOyAvLyA1IG1pbnV0ZXMKICAgICAvLyBlbmFibGUgZ3ppcCBhbmQgZGVmbGF0
ZSB0aHJvdWdoIEFjY2VwdC1FbmNvZGluZzoKICAgICBjdXJsX2Vhc3lfc2V0b3B0KGQtPm1faGFu
ZGxlLCBDVVJMT1BUX0VOQ09ESU5HLCAiIik7CiAKQEAgLTIwOSwxOCArMzA4LDE5IEBAIHZvaWQg
UmVzb3VyY2VIYW5kbGVNYW5hZ2VyOjphZGQoUmVzb3VyY2UKICAgICAgICAgZm9yIChIVFRQSGVh
ZGVyTWFwOjpjb25zdF9pdGVyYXRvciBpdCA9IGN1c3RvbUhlYWRlcnMuYmVnaW4oKTsgaXQgIT0g
ZW5kOyArK2l0KSB7CiAgICAgICAgICAgICBTdHJpbmcga2V5ID0gaXQtPmZpcnN0OwogICAgICAg
ICAgICAgU3RyaW5nIHZhbHVlID0gaXQtPnNlY29uZDsKLSAgICAgICAgICAgIFN0cmluZyBoZWFk
ZXJTdHJpbmcgPSBrZXkgKyAiOiAiICsgdmFsdWU7Ci0gICAgICAgICAgICBjb25zdCBjaGFyKiBo
ZWFkZXIgPSBoZWFkZXJTdHJpbmcubGF0aW4xKCkuZGF0YSgpOwotICAgICAgICAgICAgaGVhZGVy
cyA9IGN1cmxfc2xpc3RfYXBwZW5kKGhlYWRlcnMsIGhlYWRlcik7CisgICAgICAgICAgICBTdHJp
bmcgaGVhZGVyU3RyaW5nKGtleSk7CisgICAgICAgICAgICBoZWFkZXJTdHJpbmcuYXBwZW5kKCI6
ICIpOworICAgICAgICAgICAgaGVhZGVyU3RyaW5nLmFwcGVuZCh2YWx1ZSk7CisgICAgICAgICAg
ICBDU3RyaW5nIGhlYWRlckxhdGluMSA9IGhlYWRlclN0cmluZy5sYXRpbjEoKTsKKyAgICAgICAg
ICAgIGhlYWRlcnMgPSBjdXJsX3NsaXN0X2FwcGVuZChoZWFkZXJzLCBoZWFkZXJMYXRpbjEuZGF0
YSgpKTsKICAgICAgICAgfQogICAgICAgICBjdXJsX2Vhc3lfc2V0b3B0KGQtPm1faGFuZGxlLCBD
VVJMT1BUX0hUVFBIRUFERVIsIGhlYWRlcnMpOwogICAgICAgICBkLT5tX2N1c3RvbUhlYWRlcnMg
PSBoZWFkZXJzOwogICAgIH0KIAotICAgIC8vIGRlZmF1bHQgdG8gR0VUCi0gICAgY3VybF9lYXN5
X3NldG9wdChkLT5tX2hhbmRsZSwgQ1VSTE9QVF9IVFRQR0VULCBUUlVFKTsKLQotICAgIGlmICgi
UE9TVCIgPT0gam9iLT5tZXRob2QoKSkKKyAgICBpZiAoIkdFVCIgPT0gam9iLT5tZXRob2QoKSkK
KyAgICAgICAgY3VybF9lYXN5X3NldG9wdChkLT5tX2hhbmRsZSwgQ1VSTE9QVF9IVFRQR0VULCBU
UlVFKTsKKyAgICBlbHNlIGlmICgiUE9TVCIgPT0gam9iLT5tZXRob2QoKSkKICAgICAgICAgc2V0
dXBQT1NUKGpvYik7CiAgICAgZWxzZSBpZiAoIlBVVCIgPT0gam9iLT5tZXRob2QoKSkKICAgICAg
ICAgc2V0dXBQVVQoam9iKTsKQEAgLTIzNywxMyArMzM3LDEyIEBAIHZvaWQgUmVzb3VyY2VIYW5k
bGVNYW5hZ2VyOjphZGQoUmVzb3VyY2UKICAgICAgICAgam9iLT5jYW5jZWwoKTsKICAgICAgICAg
cmV0dXJuOwogICAgIH0KLQotICAgIGlmICghbV9kb3dubG9hZFRpbWVyLmlzQWN0aXZlKCkpCi0g
ICAgICAgIG1fZG93bmxvYWRUaW1lci5zdGFydE9uZVNob3QocG9sbFRpbWVTZWNvbmRzKTsKIH0K
IAogdm9pZCBSZXNvdXJjZUhhbmRsZU1hbmFnZXI6OmNhbmNlbChSZXNvdXJjZUhhbmRsZSogam9i
KQogeworICAgIGlmIChyZW1vdmVTY2hlZHVsZWRKb2Ioam9iKSkKKyAgICAgICAgcmV0dXJuOwog
ICAgIHJlbW92ZUZyb21DdXJsKGpvYik7CiAgICAgLy8gRklYTUU6IHJlcG9ydCBhbiBlcnJvcj8K
IH0KSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9nZGsvUmVzb3VyY2VIYW5kbGVNYW5h
Z2VyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2dkay9SZXNvdXJj
ZUhhbmRsZU1hbmFnZXIuaAkocmV2aXNpb24gMjExODIpCisrKyBXZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvZ2RrL1Jlc291cmNlSGFuZGxlTWFuYWdlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNSw2
ICszNSwyNCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIFJlc291cmNlSGFuZGxl
TGlzdCB7CitwdWJsaWM6CisgICAgUmVzb3VyY2VIYW5kbGVMaXN0KFJlc291cmNlSGFuZGxlKiBq
b2IsIFJlc291cmNlSGFuZGxlTGlzdCogbmV4dCkKKyAgICAgICAgOiBtX2pvYihqb2IpCisgICAg
ICAgICwgbV9uZXh0KG5leHQpCisgICAgICAgICwgbV9yZW1vdmVkKGZhbHNlKQorICAgIHt9Cisg
ICAgUmVzb3VyY2VIYW5kbGVMaXN0KiBuZXh0KCkgY29uc3QgeyByZXR1cm4gbV9uZXh0OyB9Cisg
ICAgUmVzb3VyY2VIYW5kbGUqIGpvYigpIGNvbnN0IHsgcmV0dXJuIG1fam9iOyB9CisgICAgdm9p
ZCBzZXRSZW1vdmVkKGJvb2wgcmVtb3ZlZCkgeyBtX3JlbW92ZWQgPSByZW1vdmVkOyB9CisgICAg
Ym9vbCByZW1vdmVkKCkgY29uc3QgeyByZXR1cm4gbV9yZW1vdmVkOyB9CisKK3ByaXZhdGU6Cisg
ICAgUmVzb3VyY2VIYW5kbGUqIG1fam9iOworICAgIFJlc291cmNlSGFuZGxlTGlzdCogbV9uZXh0
OworICAgIGJvb2wgbV9yZW1vdmVkOworfTsKKwogY2xhc3MgUmVzb3VyY2VIYW5kbGVNYW5hZ2Vy
IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUmVzb3VyY2VIYW5kbGVNYW5hZ2VyKiBzaGFyZWRJbnN0
YW5jZSgpOwpAQCAtNDksMTMgKzY3LDE2IEBAIHByaXZhdGU6CiAgICAgUmVzb3VyY2VIYW5kbGVN
YW5hZ2VyKCk7CiAgICAgdm9pZCBkb3dubG9hZFRpbWVyQ2FsbGJhY2soVGltZXI8UmVzb3VyY2VI
YW5kbGVNYW5hZ2VyPiopOwogICAgIHZvaWQgcmVtb3ZlRnJvbUN1cmwoUmVzb3VyY2VIYW5kbGUq
KTsKKyAgICBib29sIHJlbW92ZVNjaGVkdWxlZEpvYihSZXNvdXJjZUhhbmRsZSopOworICAgIHZv
aWQgc3RhcnRKb2IoUmVzb3VyY2VIYW5kbGUqKTsKKyAgICBib29sIHN0YXJ0U2NoZWR1bGVkSm9i
cygpOwogCiAgICAgVGltZXI8UmVzb3VyY2VIYW5kbGVNYW5hZ2VyPiBtX2Rvd25sb2FkVGltZXI7
CiAgICAgQ1VSTE0qIG1fY3VybE11bHRpSGFuZGxlOyAvLyBGSVhNRTogbmV2ZXIgZnJlZWQKICAg
ICBDVVJMU0gqIG1fY3VybFNoYXJlSGFuZGxlOyAvLyBGSVhNRTogbmV2ZXIgZnJlZWQKICAgICBj
aGFyKiBtX2Nvb2tpZUphckZpbGVOYW1lOyAvLyBGSVhNRTogbmV2ZXIgZnJlZWQKLQogICAgIGNo
YXIgbV9jdXJsRXJyb3JCdWZmZXJbQ1VSTF9FUlJPUl9TSVpFXTsKKyAgICBSZXNvdXJjZUhhbmRs
ZUxpc3QqIG1fcmVzb3VyY2VIYW5kbGVMaXN0SGVhZDsKIH07CiAKIH0K
</data>
<flag name="review"
          id="5812"
          type_id="1"
          status="+"
          setter="mjs"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>14401</attachid>
            <date>2007-05-07 15:16:10 -0700</date>
            <delta_ts>2007-05-07 15:16:10 -0700</delta_ts>
            <desc>Curl re-entrancy problem: tries to reuse semi-active handle</desc>
            <filename>curl-share-bt.txt</filename>
            <type>text/plain</type>
            <size>9569</size>
            <attacher name="Kimmo Kinnunen">kkinnunen</attacher>
            
              <data encoding="base64">UHJvZ3JhbSByZWNlaXZlZCBzaWduYWwgU0lHU0VHViwgU2VnbWVudGF0aW9uIGZhdWx0LgpbU3dp
dGNoaW5nIHRvIFRocmVhZCAtMTI0MDkzMDY0MCAoTFdQIDE4NjgyKV0KMHhiNmI4ZmEwMiBpbiBj
dXJsX21lbWRlYnVnICgpIGZyb20gL3Vzci9saWIvbGliY3VybC1nbnV0bHMuc28uMwooZ2RiKSBi
dAojMCAgMHhiNmI4ZmEwMiBpbiBjdXJsX21lbWRlYnVnICgpIGZyb20gL3Vzci9saWIvbGliY3Vy
bC1nbnV0bHMuc28uMwojMSAgMHhiNmI4ZmE1NSBpbiBjdXJsX21lbWRlYnVnICgpIGZyb20gL3Vz
ci9saWIvbGliY3VybC1nbnV0bHMuc28uMwojMiAgMHhiNmI5MTA4ZSBpbiBjdXJsX211bHRpX2Fk
ZF9oYW5kbGUgKCkgZnJvbSAvdXNyL2xpYi9saWJjdXJsLWdudXRscy5zby4zCiMzICAweGI2OGUw
Mzk4IGluIFdlYkNvcmU6OlJlc291cmNlSGFuZGxlTWFuYWdlcjo6YWRkICh0aGlzPTB4YjVlNzFl
NDAsIGpvYj0weGI1ZTRiYmI4KQogICAgYXQgLi4vLi4vLi4vV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL2dkay9SZXNvdXJjZUhhbmRsZU1hbmFnZXIuY3BwOjIzMAojNCAgMHhiNjhkZjU5ZSBpbiBX
ZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6c3RhcnQgKHRoaXM9MHhiNWU0YmJiOCwgZnJhbWU9MHhi
NWU1MDFjMCkKICAgIGF0IC4uLy4uLy4uL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9nZGsvUmVz
b3VyY2VIYW5kbGVDdXJsLmNwcDo1NQojNSAgMHhiNjY4YjkzZiBpbiBXZWJDb3JlOjpSZXNvdXJj
ZUhhbmRsZTo6Y3JlYXRlIChyZXF1ZXN0PUAweGJmZDBiNDQ4LCBjbGllbnQ9MHhiNWVjOGNjMCwg
ZnJhbWU9MHhiNWU1MDFjMCwgZGVmZXJzTG9hZGluZz1mYWxzZSwKICAgIG1pZ2h0RG93bmxvYWRG
cm9tSGFuZGxlPWZhbHNlKSBhdCAuLi8uLi8uLi9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVz
b3VyY2VIYW5kbGUuY3BwOjUzCiM2ICAweGI2NjRjYmEzIGluIFdlYkNvcmU6OlJlc291cmNlTG9h
ZGVyOjpsb2FkICh0aGlzPTB4YjVlYzhjYzAsIHI9QDB4YmZkMGI2YTgpIGF0IC4uLy4uLy4uL1dl
YkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZGVyLmNwcDoxMTgKIzcgIDB4YjY2NGUyMDAgaW4gV2Vi
Q29yZTo6U3VicmVzb3VyY2VMb2FkZXI6OmxvYWQgKHRoaXM9MHhiNWVjOGNjMCwgcj1AMHhiZmQw
YjZhOCkKICAgIGF0IC4uLy4uLy4uL1dlYkNvcmUvbG9hZGVyL1N1YnJlc291cmNlTG9hZGVyLmNw
cDo4MgojOCAgMHhiNjY0ZTU5ZCBpbiBXZWJDb3JlOjpTdWJyZXNvdXJjZUxvYWRlcjo6Y3JlYXRl
IChmcmFtZT0weGI1ZTUwMWMwLCBjbGllbnQ9MHhiNjlkMWU3NCwgcmVxdWVzdD1AMHhiZmQwYjg0
NCwKICAgIHNraXBDYW5Mb2FkQ2hlY2s9ZmFsc2UpIGF0IC4uLy4uLy4uL1dlYkNvcmUvbG9hZGVy
L1N1YnJlc291cmNlTG9hZGVyLmNwcDoxMjIKIzkgIDB4YjY2NTE2M2MgaW4gV2ViQ29yZTo6TG9h
ZGVyOjpzZXJ2ZVBlbmRpbmdSZXF1ZXN0cyAodGhpcz0weGI2OWQxZTc0LCBza2lwQ2FuTG9hZENo
ZWNrPWZhbHNlKQogICAgYXQgLi4vLi4vLi4vV2ViQ29yZS9sb2FkZXIvbG9hZGVyLmNwcDo5MQoj
MTAgMHhiNjY1MjAxMiBpbiBXZWJDb3JlOjpMb2FkZXI6OmxvYWQgKHRoaXM9MHhiNjlkMWU3NCwg
ZGw9MHhiNWU0YzY0MCwgb2JqZWN0PTB4YjVlYzVlODgsIGluY3JlbWVudGFsPXRydWUsIHNraXBD
YW5Mb2FkQ2hlY2s9ZmFsc2UpCiAgICBhdCAuLi8uLi8uLi9XZWJDb3JlL2xvYWRlci9sb2FkZXIu
Y3BwOjY1CiMxMSAweGI2NjFlOTY3IGluIENhY2hlZEltYWdlICh0aGlzPTB4YjVlYzVlODgsIGRv
Y0xvYWRlcj0weGI1ZTRjNjQwLCB1cmw9QDB4YmZkMGJiZTApIGF0IC4uLy4uLy4uL1dlYkNvcmUv
bG9hZGVyL0NhY2hlZEltYWdlLmNwcDo2MQojMTIgMHhiNjYxY2Y3YiBpbiBXZWJDb3JlOjpDYWNo
ZTo6cmVxdWVzdFJlc291cmNlICh0aGlzPTB4YjY5ZDFlNjAsIGRvY0xvYWRlcj0weGI1ZTRjNjQw
LAogICAgdHlwZT1XZWJDb3JlOjpDYWNoZWRSZXNvdXJjZTo6SW1hZ2VSZXNvdXJjZSwgdXJsPUAw
eGJmZDBiZDYwLCBjaGFyc2V0PTB4MCwgc2tpcENhbkxvYWRDaGVjaz1mYWxzZSkKICAgIGF0IC4u
Ly4uLy4uL1dlYkNvcmUvbG9hZGVyL0NhY2hlLmNwcDo2NwojMTMgMHhiNjYyMTQ3NSBpbiBXZWJD
b3JlOjpEb2NMb2FkZXI6OnJlcXVlc3RSZXNvdXJjZSAodGhpcz0weGI1ZTRjNjQwLCB0eXBlPVdl
YkNvcmU6OkNhY2hlZFJlc291cmNlOjpJbWFnZVJlc291cmNlLAogICAgdXJsPUAweGJmZDBiZWE4
LCBjaGFyc2V0PTB4MCwgc2tpcENhbkxvYWRDaGVjaz1mYWxzZSkgYXQgLi4vLi4vLi4vV2ViQ29y
ZS9sb2FkZXIvRG9jTG9hZGVyLmNwcDoxMzEKIzE0IDB4YjY2MjE2NDQgaW4gV2ViQ29yZTo6RG9j
TG9hZGVyOjpyZXF1ZXN0SW1hZ2UgKHRoaXM9MHhiNWU0YzY0MCwgdXJsPUAweGJmZDBiZWE4KSBh
dCAuLi8uLi8uLi9XZWJDb3JlL2xvYWRlci9Eb2NMb2FkZXIuY3BwOjg1CiMxNSAweGI2ODZkNzBh
IGluIFdlYkNvcmU6OkhUTUxJbWFnZUxvYWRlcjo6dXBkYXRlRnJvbUVsZW1lbnQgKHRoaXM9MHhi
NWU2YWNlNCkgYXQgLi4vLi4vLi4vV2ViQ29yZS9odG1sL0hUTUxJbWFnZUxvYWRlci5jcHA6MTAy
CiMxNiAweGI2ODZjYjNlIGluIFdlYkNvcmU6OkhUTUxJbWFnZUVsZW1lbnQ6OnBhcnNlTWFwcGVk
QXR0cmlidXRlICh0aGlzPTB4YjVlNmFjNzgsIGF0dHI9MHhiNWViODljMCkKICAgIGF0IC4uLy4u
Ly4uL1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VFbGVtZW50LmNwcDo5NQojMTcgMHhiNjdkNTU2YiBp
biBXZWJDb3JlOjpTdHlsZWRFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkICh0aGlzPTB4YjVlNmFj
NzgsIGF0dHI9MHhiNWViODljMCwgcHJlc2VydmVEZWNscz1mYWxzZSkKICAgIGF0IC4uLy4uLy4u
L1dlYkNvcmUvZG9tL1N0eWxlZEVsZW1lbnQuY3BwOjE3OAojMTggMHhiNjdiYzQ1MiBpbiBXZWJD
b3JlOjpFbGVtZW50OjpzZXRBdHRyaWJ1dGVNYXAgKHRoaXM9MHhiNWU2YWM3OCwgbGlzdD0weGI1
ZTVjODQ4KSBhdCAuLi8uLi8uLi9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcDo1MDcKIzE5IDB4YjY4
ODI1N2UgaW4gV2ViQ29yZTo6SFRNTFBhcnNlcjo6cGFyc2VUb2tlbiAodGhpcz0weGI1ZTUxM2I4
LCB0PTB4YjVlYTNhOTQpIGF0IC4uLy4uLy4uL1dlYkNvcmUvaHRtbC9IVE1MUGFyc2VyLmNwcDoy
MjkKIzIwIDB4YjY4OTVlOTggaW4gV2ViQ29yZTo6SFRNTFRva2VuaXplcjo6cHJvY2Vzc1Rva2Vu
ICh0aGlzPTB4YjVlYTNhODApIGF0IC4uLy4uLy4uL1dlYkNvcmUvaHRtbC9IVE1MVG9rZW5pemVy
LmNwcDoxNTk5CiMyMSAweGI2ODk4YWUyIGluIFdlYkNvcmU6OkhUTUxUb2tlbml6ZXI6OnBhcnNl
VGFnICh0aGlzPTB4YjVlYTNhODAsIHNyYz1AMHhiNWVhM2Y4MCwgc3RhdGU9CiAgICAgIHtzdGF0
aWMgRW50aXR5U2hpZnQgPSA8b3B0aW1pemVkIG91dD4sIG1fYml0cyA9IDF9KSBhdCAuLi8uLi8u
Li9XZWJDb3JlL2h0bWwvSFRNTFRva2VuaXplci5jcHA6MTE3MgojMjIgMHhiNjg5YTczYSBpbiBX
ZWJDb3JlOjpIVE1MVG9rZW5pemVyOjp3cml0ZSAodGhpcz0weGI1ZWEzYTgwLCBzdHI9QDB4YmZk
MGMxZmMsIGFwcGVuZERhdGE9dHJ1ZSkKICAgIGF0IC4uLy4uLy4uL1dlYkNvcmUvaHRtbC9IVE1M
VG9rZW5pemVyLmNwcDoxMzk4CiMyMyAweGI2NjJlYTQ4IGluIFdlYkNvcmU6OkZyYW1lTG9hZGVy
Ojp3cml0ZSAodGhpcz0weGI1ZTVhYzAwLAogICAgc3RyPTB4ODFiMzMzYSAiPGh0bWw+PGhlYWQ+
PG1ldGEgaHR0cC1lcXVpdj1cImNvbnRlbnQtdHlwZVwiIGNvbnRlbnQ9XCJ0ZXh0L2h0bWw7IGNo
YXJzZXQ9SVNPLTg4NTktMVwiPjx0aXRsZT5Hb29nbGU8L3RpdGxlPjxzdHlsZT48IS0tXG5ib2R5
LHRkLGEscCwuaHtmb250LWZhbWlseTphcmlhbCxzYW5zLXNlcmlmfVxuLmh7Zm9udC1zaXplOjIw
cHh9XG4uaHtjb2xvcjojMzM2NmNjfVxuLiIuLi4sIGxlbj0zMTU0LCBmbHVzaD1mYWxzZSkKICAg
IGF0IC4uLy4uLy4uL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcDo5MjcKIzI0IDB4YjY2
MmVjOTMgaW4gV2ViQ29yZTo6RnJhbWVMb2FkZXI6OmFkZERhdGEgKHRoaXM9MHhiNWU1YWMwMCwK
ICAgIGJ5dGVzPTB4ODFiMzMzYSAiPGh0bWw+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj1cImNvbnRl
bnQtdHlwZVwiIGNvbnRlbnQ9XCJ0ZXh0L2h0bWw7IGNoYXJzZXQ9SVNPLTg4NTktMVwiPjx0aXRs
ZT5Hb29nbGU8L3RpdGxlPjxzdHlsZT48IS0tXG5ib2R5LHRkLGEscCwuaHtmb250LWZhbWlseTph
cmlhbCxzYW5zLXNlcmlmfVxuLmh7Zm9udC1zaXplOjIwcHh9XG4uaHtjb2xvcjojMzM2NmNjfVxu
LiIuLi4sIGxlbmd0aD0zMTU0KQogICAgYXQgLi4vLi4vLi4vV2ViQ29yZS9sb2FkZXIvRnJhbWVM
b2FkZXIuY3BwOjE1ODMKIzI1IDB4YjY2NTMxOWIgaW4gV2ViQ29yZTo6RnJhbWVMb2FkZXJDbGll
bnRHZGs6OmNvbW1pdHRlZExvYWQgKHRoaXM9MHhiNWU1NmYwMCwgbG9hZGVyPTB4YjVlNjk3MDAs
CiAgICBkYXRhPTB4ODFiMzMzYSAiPGh0bWw+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj1cImNvbnRl
bnQtdHlwZVwiIGNvbnRlbnQ9XCJ0ZXh0L2h0bWw7IGNoYXJzZXQ9SVNPLTg4NTktMVwiPjx0aXRs
ZT5Hb29nbGU8L3RpdGxlPjxzdHlsZT48IS0tXG5ib2R5LHRkLGEscCwuaHtmb250LWZhbWlseTph
cmlhbCxzYW5zLXNlcmlmfVxuLmh7Zm9udC1zaXplOjIwcHh9XG4uaHtjb2xvcjojMzM2NmNjfVxu
LiIuLi4sIGxlbmd0aD0zMTU0KQogICAgYXQgLi4vLi4vLi4vV2ViQ29yZS9sb2FkZXIvZ2RrL0Zy
YW1lTG9hZGVyQ2xpZW50R2RrLmNwcDo4MQojMjYgMHhiNjYyODMyYyBpbiBXZWJDb3JlOjpGcmFt
ZUxvYWRlcjo6Y29tbWl0dGVkTG9hZCAodGhpcz0weGI1ZTVhYzAwLCBsb2FkZXI9MHhiNWU2OTcw
MCwKICAgIGRhdGE9MHg4MWIzMzNhICI8aHRtbD48aGVhZD48bWV0YSBodHRwLWVxdWl2PVwiY29u
dGVudC10eXBlXCIgY29udGVudD1cInRleHQvaHRtbDsgY2hhcnNldD1JU08tODg1OS0xXCI+PHRp
dGxlPkdvb2dsZTwvdGl0bGU+PHN0eWxlPjwhLS1cbmJvZHksdGQsYSxwLC5oe2ZvbnQtZmFtaWx5
OmFyaWFsLHNhbnMtc2VyaWZ9XG4uaHtmb250LXNpemU6MjBweH1cbi5oe2NvbG9yOiMzMzY2Y2N9
XG4uIi4uLiwgbGVuZ3RoPTMxNTQpCiAgICBhdCAuLi8uLi8uLi9XZWJDb3JlL2xvYWRlci9GcmFt
ZUxvYWRlci5jcHA6MzAyNwojMjcgMHhiNjYyMjYxZSBpbiBXZWJDb3JlOjpEb2N1bWVudExvYWRl
cjo6Y29tbWl0TG9hZCAodGhpcz0weGI1ZTY5NzAwLAogICAgZGF0YT0weDgxYjMzM2EgIjxodG1s
PjxoZWFkPjxtZXRhIGh0dHAtZXF1aXY9XCJjb250ZW50LXR5cGVcIiBjb250ZW50PVwidGV4dC9o
dG1sOyBjaGFyc2V0PUlTTy04ODU5LTFcIj48dGl0bGU+R29vZ2xlPC90aXRsZT48c3R5bGU+PCEt
LVxuYm9keSx0ZCxhLHAsLmh7Zm9udC1mYW1pbHk6YXJpYWwsc2Fucy1zZXJpZn1cbi5oe2ZvbnQt
c2l6ZToyMHB4fVxuLmh7Y29sb3I6IzMzNjZjY31cbi4iLi4uLCBsZW5ndGg9MzE1NCkKICAgIGF0
IC4uLy4uLy4uL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcDozNDcKIzI4IDB4YjY2
MjI2YjUgaW4gV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXI6OnJlY2VpdmVkRGF0YSAodGhpcz0weGI1
ZTY5NzAwLAogICAgZGF0YT0weDgxYjMzM2EgIjxodG1sPjxoZWFkPjxtZXRhIGh0dHAtZXF1aXY9
XCJjb250ZW50LXR5cGVcIiBjb250ZW50PVwidGV4dC9odG1sOyBjaGFyc2V0PUlTTy04ODU5LTFc
Ij48dGl0bGU+R29vZ2xlPC90aXRsZT48c3R5bC0tLVR5cGUgPHJldHVybj4gdG8gY29udGludWUs
IG9yIHEgPHJldHVybj4gdG8gcXVpdC0tLQplPjwhLS1cbmJvZHksdGQsYSxwLC5oe2ZvbnQtZmFt
aWx5OmFyaWFsLHNhbnMtc2VyaWZ9XG4uaHtmb250LXNpemU6MjBweH1cbi5oe2NvbG9yOiMzMzY2
Y2N9XG4uIi4uLiwgbGVuZ3RoPTMxNTQpCiAgICBhdCAuLi8uLi8uLi9XZWJDb3JlL2xvYWRlci9E
b2N1bWVudExvYWRlci5jcHA6MzU5CiMyOSAweGI2NjI4ZDAzIGluIFdlYkNvcmU6OkZyYW1lTG9h
ZGVyOjpyZWNlaXZlZERhdGEgKHRoaXM9MHhiNWU1YWMwMCwKICAgIGRhdGE9MHg4MWIzMzNhICI8
aHRtbD48aGVhZD48bWV0YSBodHRwLWVxdWl2PVwiY29udGVudC10eXBlXCIgY29udGVudD1cInRl
eHQvaHRtbDsgY2hhcnNldD1JU08tODg1OS0xXCI+PHRpdGxlPkdvb2dsZTwvdGl0bGU+PHN0eWxl
PjwhLS1cbmJvZHksdGQsYSxwLC5oe2ZvbnQtZmFtaWx5OmFyaWFsLHNhbnMtc2VyaWZ9XG4uaHtm
b250LXNpemU6MjBweH1cbi5oe2NvbG9yOiMzMzY2Y2N9XG4uIi4uLiwgbGVuZ3RoPTMxNTQpCiAg
ICBhdCAuLi8uLi8uLi9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHA6MjAzOQojMzAgMHhi
NjY0NGI2NiBpbiBXZWJDb3JlOjpNYWluUmVzb3VyY2VMb2FkZXI6OmFkZERhdGEgKHRoaXM9MHhi
NWU2ZWFjMCwKICAgIGRhdGE9MHg4MWIzMzNhICI8aHRtbD48aGVhZD48bWV0YSBodHRwLWVxdWl2
PVwiY29udGVudC10eXBlXCIgY29udGVudD1cInRleHQvaHRtbDsgY2hhcnNldD1JU08tODg1OS0x
XCI+PHRpdGxlPkdvb2dsZTwvdGl0bGU+PHN0eWxlPjwhLS1cbmJvZHksdGQsYSxwLC5oe2ZvbnQt
ZmFtaWx5OmFyaWFsLHNhbnMtc2VyaWZ9XG4uaHtmb250LXNpemU6MjBweH1cbi5oe2NvbG9yOiMz
MzY2Y2N9XG4uIi4uLiwgbGVuZ3RoPTMxNTQsIGFsbEF0T25jZT1mYWxzZSkKICAgIGF0IC4uLy4u
Ly4uL1dlYkNvcmUvbG9hZGVyL01haW5SZXNvdXJjZUxvYWRlci5jcHA6MTMzCiMzMSAweGI2NjRh
YWY5IGluIFdlYkNvcmU6OlJlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlRGF0YSAodGhpcz0weGI1
ZTZlYWMwLAogICAgZGF0YT0weDgxYjMzM2EgIjxodG1sPjxoZWFkPjxtZXRhIGh0dHAtZXF1aXY9
XCJjb250ZW50LXR5cGVcIiBjb250ZW50PVwidGV4dC9odG1sOyBjaGFyc2V0PUlTTy04ODU5LTFc
Ij48dGl0bGU+R29vZ2xlPC90aXRsZT48c3R5bGU+PCEtLVxuYm9keSx0ZCxhLHAsLmh7Zm9udC1m
YW1pbHk6YXJpYWwsc2Fucy1zZXJpZn1cbi5oe2ZvbnQtc2l6ZToyMHB4fVxuLmh7Y29sb3I6IzMz
NjZjY31cbi4iLi4uLCBsZW5ndGg9MzE1NCwgbGVuZ3RoUmVjZWl2ZWQ9MCwKICAgIGFsbEF0T25j
ZT1mYWxzZSkgYXQgLi4vLi4vLi4vV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuY3BwOjIw
OAojMzIgMHhiNjY0NGNjNiBpbiBXZWJDb3JlOjpNYWluUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2Vp
dmVEYXRhICh0aGlzPTB4YjVlNmVhYzAsCiAgICBkYXRhPTB4ODFiMzMzYSAiPGh0bWw+PGhlYWQ+
PG1ldGEgaHR0cC1lcXVpdj1cImNvbnRlbnQtdHlwZVwiIGNvbnRlbnQ9XCJ0ZXh0L2h0bWw7IGNo
YXJzZXQ9SVNPLTg4NTktMVwiPjx0aXRsZT5Hb29nbGU8L3RpdGxlPjxzdHlsZT48IS0tXG5ib2R5
LHRkLGEscCwuaHtmb250LWZhbWlseTphcmlhbCxzYW5zLXNlcmlmfVxuLmh7Zm9udC1zaXplOjIw
cHh9XG4uaHtjb2xvcjojMzM2NmNjfVxuLiIuLi4sIGxlbmd0aD0zMTU0LAogICAgbGVuZ3RoUmVj
ZWl2ZWQ9MTM1OTk5MDA4LCBhbGxBdE9uY2U9ZmFsc2UpIGF0IC4uLy4uLy4uL1dlYkNvcmUvbG9h
ZGVyL01haW5SZXNvdXJjZUxvYWRlci5jcHA6Mjg5CiMzMyAweGI2NjRhNjI4IGluIFdlYkNvcmU6
OlJlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlRGF0YSAodGhpcz0weGI1ZTZlYWMwLAogICAgZGF0
YT0weDgxYjMzM2EgIjxodG1sPjxoZWFkPjxtZXRhIGh0dHAtZXF1aXY9XCJjb250ZW50LXR5cGVc
IiBjb250ZW50PVwidGV4dC9odG1sOyBjaGFyc2V0PUlTTy04ODU5LTFcIj48dGl0bGU+R29vZ2xl
PC90aXRsZT48c3R5bGU+PCEtLVxuYm9keSx0ZCxhLHAsLmh7Zm9udC1mYW1pbHk6YXJpYWwsc2Fu
cy1zZXJpZn1cbi5oe2ZvbnQtc2l6ZToyMHB4fVxuLmh7Y29sb3I6IzMzNjZjY31cbi4iLi4uLCBs
ZW5ndGg9MzE1NCwgbGVuZ3RoUmVjZWl2ZWQ9MCkKICAgIGF0IC4uLy4uLy4uL1dlYkNvcmUvbG9h
ZGVyL1Jlc291cmNlTG9hZGVyLmNwcDozMzAKIzM0IDB4YjY4ZGZjZDAgaW4gd3JpdGVDYWxsYmFj
ayAocHRyPTB4ODFiMzMzYSwgc2l6ZT0xLCBubWVtYj0zMTU0LCBvYmo9MHhiNWU0YjBjMCkKICAg
IGF0IC4uLy4uLy4uL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9nZGsvUmVzb3VyY2VIYW5kbGVN
YW5hZ2VyLmNwcDo3MgojMzUgMHhiNmI3YTc5OSBpbiBjdXJsX3NsaXN0X2ZyZWVfYWxsICgpIGZy
b20gL3Vzci9saWIvbGliY3VybC1nbnV0bHMuc28uMwojMzYgMHhiNmI4ZTZkMCBpbiBjdXJsX21l
bWRlYnVnICgpIGZyb20gL3Vzci9saWIvbGliY3VybC1nbnV0bHMuc28uMwojMzcgMHhiNmI4Y2Ew
YiBpbiBjdXJsX212c25wcmludGYgKCkgZnJvbSAvdXNyL2xpYi9saWJjdXJsLWdudXRscy5zby4z
CiMzOCAweGI2YjkwMWJkIGluIGN1cmxfbXVsdGlfdGltZW91dCAoKSBmcm9tIC91c3IvbGliL2xp
YmN1cmwtZ251dGxzLnNvLjMKIzM5IDB4YjZiOTA4NDQgaW4gY3VybF9tdWx0aV9wZXJmb3JtICgp
IGZyb20gL3Vzci9saWIvbGliY3VybC1nbnV0bHMuc28uMwojNDAgMHhiNjhkZmU2NyBpbiBXZWJD
b3JlOjpSZXNvdXJjZUhhbmRsZU1hbmFnZXI6OmRvd25sb2FkVGltZXJDYWxsYmFjayAodGhpcz0w
eGI1ZTcxZTQwLCB0aW1lcj0weGI1ZTcxZTQwKQogICAgYXQgLi4vLi4vLi4vV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL2dkay9SZXNvdXJjZUhhbmRsZU1hbmFnZXIuY3BwOjExMgojNDEgMHhiNjhl
MDZjYiBpbiBXZWJDb3JlOjpUaW1lcjxXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZU1hbmFnZXI+Ojpm
aXJlZCAodGhpcz0weGI1ZTcxZTQwKSBhdCAuLi8uLi8uLi9XZWJDb3JlL3BsYXRmb3JtL1RpbWVy
Lmg6OTYKIzQyIDB4YjY2N2QwNmIgaW4gV2ViQ29yZTo6VGltZXJCYXNlOjpmaXJlVGltZXJzIChm
aXJlVGltZT0xMTc4NTcyOTkyLjE0MDYyOTEsIGZpcmluZ1RpbWVycz1AMHhiZmQwYzg1NCkKICAg
IGF0IC4uLy4uLy4uL1dlYkNvcmUvcGxhdGZvcm0vVGltZXIuY3BwOjMzNgojNDMgMHhiNjY3ZDNh
NyBpbiBXZWJDb3JlOjpUaW1lckJhc2U6OnNoYXJlZFRpbWVyRmlyZWQgKCkgYXQgLi4vLi4vLi4v
V2ViQ29yZS9wbGF0Zm9ybS9UaW1lci5jcHA6MzUzCiM0NCAweGI2OGRkNjRlIGluIHRpbWVvdXRf
Y2IgKCkgYXQgLi4vLi4vLi4vV2ViQ29yZS9wbGF0Zm9ybS9nZGsvU2hhcmVkVGltZXJMaW51eC5j
cHA6NDgKIzQ1IDB4Yjc4ZjdhYTEgaW4gZ19zb3VyY2VfaXNfZGVzdHJveWVkICgpIGZyb20gL3Vz
ci9saWIvbGliZ2xpYi0yLjAuc28uMAojNDYgMHhiNzhmOTgwMiBpbiBnX21haW5fY29udGV4dF9k
aXNwYXRjaCAoKSBmcm9tIC91c3IvbGliL2xpYmdsaWItMi4wLnNvLjAKIzQ3IDB4Yjc4ZmM3ZGYg
aW4gZ19tYWluX2NvbnRleHRfY2hlY2sgKCkgZnJvbSAvdXNyL2xpYi9saWJnbGliLTIuMC5zby4w
CiM0OCAweGI3OGZjYjg5IGluIGdfbWFpbl9sb29wX3J1biAoKSBmcm9tIC91c3IvbGliL2xpYmds
aWItMi4wLnNvLjAKIzQ5IDB4YjdjYzc1NzQgaW4gZ3RrX21haW4gKCkgZnJvbSAvdXNyL2xpYi9s
aWJndGsteDExLTIuMC5zby4wCiM1MCAweDA4MDQ5NmQ5IGluIG1haW4gKGFyZ2M9MTM0NTUwNzYw
LCBhcmd2PTB4MSkgYXQgLi4vd2Via2l0LWd0ay1sYXVuY2hlci9tYWluLmM6MTUyCgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>