<?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>37191</bug_id>
          
          <creation_ts>2010-04-07 01:17:36 -0700</creation_ts>
          <short_desc>[Qt] WebKit crash in WebCore::FrameLoader::loadResourceSynchronously()</short_desc>
          <delta_ts>2011-05-04 12:59:48 -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>Page Loading</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc>http://shop.nationalgeographic.com/ngs/browse/productDetail.jsp?productId=1076013&amp;code=NG93906&amp;source=foshopsc1</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>Qt, QtTriaged</keywords>
          <priority>P1</priority>
          <bug_severity>Critical</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>50089</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Benjamin Poulain">benjamin</reporter>
          <assigned_to name="Andreas Kling">kling</assigned_to>
          <cc>abarth</cc>
    
    <cc>ademar</cc>
    
    <cc>benjamin</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eric</cc>
    
    <cc>hausmann</cc>
    
    <cc>jesus</cc>
    
    <cc>kenneth</cc>
    
    <cc>kling</cc>
    
    <cc>kokilakr</cc>
    
    <cc>laszlo.gombos</cc>
    
    <cc>luiz</cc>
    
    <cc>markus</cc>
    
    <cc>ossy</cc>
    
    <cc>peter.hartmann</cc>
    
    <cc>webkit-ews</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>209526</commentid>
    <comment_count>0</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2010-04-07 01:17:36 -0700</bug_when>
    <thetext>The robustness test crashed on the page: http://shop.nationalgeographic.com/ngs/browse/productDetail.jsp?productId=1076013&amp;code=NG93906&amp;source=foshopsc1 with WebKit trunk.

Backtrace:
#0  0x00007ffff7175034 in WebCore::FrameLoader::loadResourceSynchronously(WebCore::ResourceRequest const&amp;, WebCore::StoredCredentials, WebCore::ResourceError&amp;, WebCore::ResourceResponse&amp;, WTF::Vector&lt;char, 0ul&gt;&amp;) ()
   from /home/ikipou/build/webkit/oslo-staging-1_release_64/Release/lib/libQtWebKit.so.4
#1  0x00007ffff7169f95 in WebCore::DocumentThreadableLoader::loadRequest(WebCore::ResourceRequest const&amp;, WebCore::SecurityCheckPolicy) () from /home/ikipou/build/webkit/oslo-staging-1_release_64/Release/lib/libQtWebKit.so.4
#2  0x00007ffff716b6c8 in WebCore::DocumentThreadableLoader::DocumentThreadableLoader(WebCore::Document*, WebCore::ThreadableLoaderClient*, WebCore::DocumentThreadableLoader::BlockingBehavior, WebCore::ResourceRequest const&amp;, WebCore::ThreadableLoaderOptions const&amp;) () from /home/ikipou/build/webkit/oslo-staging-1_release_64/Release/lib/libQtWebKit.so.4
#3  0x00007ffff716b9fc in WebCore::DocumentThreadableLoader::loadResourceSynchronously(WebCore::Document*, WebCore::ResourceRequest const&amp;, WebCore::ThreadableLoaderClient&amp;, WebCore::ThreadableLoaderOptions const&amp;) ()
   from /home/ikipou/build/webkit/oslo-staging-1_release_64/Release/lib/libQtWebKit.so.4
#4  0x00007ffff733c65b in WebCore::XMLHttpRequest::createRequest(int&amp;) () from /home/ikipou/build/webkit/oslo-staging-1_release_64/Release/lib/libQtWebKit.so.4
#5  0x00007ffff733cd1b in WebCore::XMLHttpRequest::send(WebCore::String const&amp;, int&amp;) () from /home/ikipou/build/webkit/oslo-staging-1_release_64/Release/lib/libQtWebKit.so.4
#6  0x00007ffff733cfea in WebCore::XMLHttpRequest::send(int&amp;) () from /home/ikipou/build/webkit/oslo-staging-1_release_64/Release/lib/libQtWebKit.so.4
#7  0x00007ffff6ee7dbe in WebCore::JSXMLHttpRequest::send(JSC::ExecState*, JSC::ArgList const&amp;) () from /home/ikipou/build/webkit/oslo-staging-1_release_64/Release/lib/libQtWebKit.so.4
#8  0x00007ffff6e7dd14 in WebCore::jsXMLHttpRequestPrototypeFunctionSend(JSC::ExecState*, JSC::JSObject*, JSC::JSValue, JSC::ArgList const&amp;) () from /home/ikipou/build/webkit/oslo-staging-1_release_64/Release/lib/libQtWebKit.so.4</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>209603</commentid>
    <comment_count>1</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2010-04-07 06:20:40 -0700</bug_when>
    <thetext>This happens because we reenter the event loop during processing of synchronous XHR. Qt is currently missing the necessary API to do avoid this, so I&apos;ve opened an issue in the Qt bug tracker: http://bugreports.qt.nokia.com/browse/QTBUG-9667</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>209631</commentid>
    <comment_count>2</comment_count>
    <who name="Markus Goetz">markus</who>
    <bug_when>2010-04-07 07:21:22 -0700</bug_when>
    <thetext>I agree that the current implementation of WebCoreSynchronousLoader is not optimal.

Small note, it crashes for me with 4.5 but not with 4.6 git and 4.7 git (Linux, webkit included in the respective Qt)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>219431</commentid>
    <comment_count>3</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2010-04-30 04:21:09 -0700</bug_when>
    <thetext>*** Bug 37269 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>224860</commentid>
    <comment_count>4</comment_count>
    <who name="Jesus Sanchez-Palencia">jesus</who>
    <bug_when>2010-05-12 13:48:07 -0700</bug_when>
    <thetext>Reproduced on Snow Leopard with Qt 4.7 trunk (HEAD 03f8f1df0d88f5ffe0b3120cffce614cbeefdb70) and WebKit trunk (r59155).

Backtrace: 

0   QtWebKit                      	0x0082de3f WTF::OwnPtr&lt;WebCore::ApplicationCacheHost&gt;::get() const + 9 (OwnPtr.h:54)
1   QtWebKit                      	0x0082de5a WebCore::DocumentLoader::applicationCacheHost() const + 22 (DocumentLoader.h:205)
2   QtWebKit                      	0x00916784 WebCore::FrameLoader::loadResourceSynchronously(WebCore::ResourceRequest const&amp;, WebCore::StoredCredentials, WebCore::ResourceError&amp;, WebCore::ResourceResponse&amp;, WTF::Vector&lt;char, 0ul&gt;&amp;) + 936 (FrameLoader.cpp:3274)
3   QtWebKit                      	0x0090f8f0 WebCore::DocumentThreadableLoader::loadRequest(WebCore::ResourceRequest const&amp;, WebCore::SecurityCheckPolicy) + 1050 (DocumentThreadableLoader.cpp:325)
4   QtWebKit                      	0x00910e4f WebCore::DocumentThreadableLoader::DocumentThreadableLoader(WebCore::Document*, WebCore::ThreadableLoaderClient*, WebCore::DocumentThreadableLoader::BlockingBehavior, WebCore::ResourceRequest const&amp;, WebCore::ThreadableLoaderOptions const&amp;) + 393 (DocumentThreadableLoader.cpp:74)
5   QtWebKit                      	0x00911326 WebCore::DocumentThreadableLoader::loadResourceSynchronously(WebCore::Document*, WebCore::ResourceRequest const&amp;, WebCore::ThreadableLoaderClient&amp;, WebCore::ThreadableLoaderOptions const&amp;) + 76 (DocumentThreadableLoader.cpp:50)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>224879</commentid>
    <comment_count>5</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2010-05-12 14:11:17 -0700</bug_when>
    <thetext>Removing the blocker.

None of the crashes we have with the synchronous calls can be fixed with 4.7. The synchronous API of QNAM is not implemented.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>224891</commentid>
    <comment_count>6</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2010-05-12 14:23:17 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; Removing the blocker.
&gt; 
&gt; None of the crashes we have with the synchronous calls can be fixed with 4.7. The synchronous API of QNAM is not implemented.

I guess we need to document that then.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>234551</commentid>
    <comment_count>7</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-06-04 23:07:34 -0700</bug_when>
    <thetext>*** Bug 39722 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>313306</commentid>
    <comment_count>8</comment_count>
      <attachid>74761</attachid>
    <who name="Peter Hartmann">peter.hartmann</who>
    <bug_when>2010-11-24 08:08:09 -0800</bug_when>
    <thetext>Created attachment 74761
patch for using Qt&apos;s synchronous HTTP feature

Does this commit need a layout test? No idea, this is my first proposed patch to Webkit...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>313310</commentid>
    <comment_count>9</comment_count>
      <attachid>74761</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2010-11-24 08:18:43 -0800</bug_when>
    <thetext>Comment on attachment 74761
patch for using Qt&apos;s synchronous HTTP feature

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

&gt; WebCore/platform/network/qt/QNetworkReplyHandler.cpp:56
&gt; +const QNetworkRequest::Attribute gSynchronousNetworkRequestAttribute = static_cast&lt;QNetworkRequest::Attribute&gt;(QNetworkRequest::DownloadBufferAttribute + 1);

Wow, this is kinda dirty. At the very least we need a comment explaining it.

&gt; WebCore/platform/network/qt/QNetworkReplyHandler.cpp:226
&gt; +        m_request.setAttribute(gSynchronousNetworkRequestAttribute, true);

Should we be restricting this to QT_VERSION &gt;= something?
Perhaps it&apos;s not necessary and it&apos;ll fall back nicely to m_loadMode = Normal..

&gt; WebCore/platform/network/qt/ResourceHandleQt.cpp:212
&gt; +    // when using synchronous calls, we are finished when reaching this point

Capital W, period at the end of the line. &lt;/kenneth&gt;

&gt; WebCore/platform/network/qt/ResourceHandleQt.cpp:215
&gt; +    d-&gt;m_job-&gt;forwardData();
&gt; +    d-&gt;m_job-&gt;finish();

Should these really be called if (!reply-&gt;isFinished())?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>313311</commentid>
    <comment_count>10</comment_count>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2010-11-24 08:18:51 -0800</bug_when>
    <thetext>Attachment 74761 did not build on qt:
Build output: http://queues.webkit.org/results/6394033</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>313363</commentid>
    <comment_count>11</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2010-11-24 10:06:49 -0800</bug_when>
    <thetext>(In reply to comment #8)
&gt; Does this commit need a layout test? No idea, this is my first proposed patch to Webkit...

I can&apos;t think of any way to do a layout test for this.

Testing would require embedding a small http server that you control from the page. It could probably be done as an auto test if you are very motivated :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>313377</commentid>
    <comment_count>12</comment_count>
      <attachid>74779</attachid>
    <who name="Peter Hartmann">peter.hartmann</who>
    <bug_when>2010-11-24 10:33:31 -0800</bug_when>
    <thetext>Created attachment 74779
patch for using Qt&apos;s synchronous HTTP feature

update #1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>313380</commentid>
    <comment_count>13</comment_count>
    <who name="Peter Hartmann">peter.hartmann</who>
    <bug_when>2010-11-24 10:36:24 -0800</bug_when>
    <thetext>(In reply to comment #9)
&gt; (From update of attachment 74761 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=74761&amp;action=review
&gt; 
&gt; &gt; WebCore/platform/network/qt/QNetworkReplyHandler.cpp:56
&gt; &gt; +const QNetworkRequest::Attribute gSynchronousNetworkRequestAttribute = static_cast&lt;QNetworkRequest::Attribute&gt;(QNetworkRequest::DownloadBufferAttribute + 1);
&gt; 
&gt; Wow, this is kinda dirty. At the very least we need a comment explaining it.

Yes, it is dirty, I made a comment explaining it, it will not be cleaner before 4.8...

&gt; 
&gt; &gt; WebCore/platform/network/qt/QNetworkReplyHandler.cpp:226
&gt; &gt; +        m_request.setAttribute(gSynchronousNetworkRequestAttribute, true);
&gt; 
&gt; Should we be restricting this to QT_VERSION &gt;= something?
&gt; Perhaps it&apos;s not necessary and it&apos;ll fall back nicely to m_loadMode = Normal..

Yes, we set the load mode to normal in the line below; Qt versions 4.7.1 and older just ignore the attribute, so that should be safe.

&gt; 
&gt; &gt; WebCore/platform/network/qt/ResourceHandleQt.cpp:212
&gt; &gt; +    // when using synchronous calls, we are finished when reaching this point
&gt; 
&gt; Capital W, period at the end of the line. &lt;/kenneth&gt;

ok, changed.

&gt; 
&gt; &gt; WebCore/platform/network/qt/ResourceHandleQt.cpp:215
&gt; &gt; +    d-&gt;m_job-&gt;forwardData();
&gt; &gt; +    d-&gt;m_job-&gt;finish();
&gt; 
&gt; Should these really be called if (!reply-&gt;isFinished())?

Probably that would be ok because we check the load mode in that methods, but still, I think it is easier to understand the way you suggested; they are now just called when the method is finished. The waitForCompleted method is just called when we are not finished.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>313382</commentid>
    <comment_count>14</comment_count>
    <who name="Peter Hartmann">peter.hartmann</who>
    <bug_when>2010-11-24 10:42:41 -0800</bug_when>
    <thetext>(In reply to comment #13)
&gt; (In reply to comment #9)
&gt; &gt; (From update of attachment 74761 [details] [details])
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=74761&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; WebCore/platform/network/qt/QNetworkReplyHandler.cpp:56
&gt; &gt; &gt; +const QNetworkRequest::Attribute gSynchronousNetworkRequestAttribute = static_cast&lt;QNetworkRequest::Attribute&gt;(QNetworkRequest::DownloadBufferAttribute + 1);
&gt; &gt; 
&gt; &gt; Wow, this is kinda dirty. At the very least we need a comment explaining it.
&gt; 
&gt; Yes, it is dirty, I made a comment explaining it, it will not be cleaner before 4.8...

btw. using the QNetworkRequest::HttpPipeliningWasUsedAttribute + 7 now is to make it compile with 4.6, the other attributes were not there then.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>313728</commentid>
    <comment_count>15</comment_count>
      <attachid>74779</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2010-11-25 06:15:56 -0800</bug_when>
    <thetext>Comment on attachment 74779
patch for using Qt&apos;s synchronous HTTP feature

Looks good, r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>313764</commentid>
    <comment_count>16</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-11-25 07:31:00 -0800</bug_when>
    <thetext>The commit-queue encountered the following flaky tests while processing attachment 74779:

http/tests/appcache/foreign-fallback.html
fast/workers/storage/use-same-database-in-page-and-workers.html

Please file bugs against the tests.  These tests were authored by ap@webkit.org and dumi@chromium.org.  The commit-queue is continuing to process your patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>313778</commentid>
    <comment_count>17</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-11-25 08:17:00 -0800</bug_when>
    <thetext>The commit-queue encountered the following flaky tests while processing attachment 74779:

fast/workers/storage/use-same-database-in-page-and-workers.html

Please file bugs against the tests.  These tests were authored by dumi@chromium.org.  The commit-queue is continuing to process your patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>313780</commentid>
    <comment_count>18</comment_count>
      <attachid>74779</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-11-25 08:19:53 -0800</bug_when>
    <thetext>Comment on attachment 74779
patch for using Qt&apos;s synchronous HTTP feature

Clearing flags on attachment: 74779

Committed r72732: &lt;http://trac.webkit.org/changeset/72732&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>313781</commentid>
    <comment_count>19</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-11-25 08:19:59 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>313789</commentid>
    <comment_count>20</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-11-25 08:44:32 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/72732 might have broken Qt Linux Release
The following tests are not passing:
dom/svg/level3/xpath/Attribute_Nodes_xmlns.svg
dom/svg/level3/xpath/Conformance_Expressions.svg
dom/svg/level3/xpath/Conformance_hasFeature_3.svg
dom/svg/level3/xpath/Conformance_hasFeature_null.svg
dom/svg/level3/xpath/Conformance_isSupported_empty.svg
dom/svg/level3/xpath/Element_Nodes.svg
dom/svg/level3/xpath/Text_Nodes.svg
dom/svg/level3/xpath/XPathEvaluator_createExpression_INVALID_EXPRESSION_ERR.svg
dom/svg/level3/xpath/XPathEvaluator_createExpression_NAMESPACE_ERR_02.svg
dom/svg/level3/xpath/XPathEvaluator_createExpression_no_NS.svg
dom/svg/level3/xpath/XPathEvaluator_createNSResolver_document.svg
dom/svg/level3/xpath/XPathEvaluator_evaluate_INVALID_EXPRESSION_ERR.svg
dom/svg/level3/xpath/XPathEvaluator_evaluate_NOT_SUPPORTED_ERR.svg
dom/svg/level3/xpath/XPathEvaluator_evaluate_WRONG_DOCUMENT_ERR.svg
dom/svg/level3/xpath/XPathEvaluator_evaluate_documentElement.svg
dom/svg/level3/xpath/XPathExpression_evaluate_WRONG_DOCUMENT_ERR.svg
dom/svg/level3/xpath/XPathExpression_evaluate_documentElement.svg
dom/svg/level3/xpath/XPathNSResolver_lookupNamespaceURI_null.svg
dom/svg/level3/xpath/XPathNSResolver_lookupNamespaceURI_xml.svg
dom/svg/level3/xpath/XPathResult_booleanValue_false.svg</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>313811</commentid>
    <comment_count>21</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2010-11-25 09:51:48 -0800</bug_when>
    <thetext>Reopen, because it was rolled out by http://trac.webkit.org/changeset/72736 and http://trac.webkit.org/changeset/72735</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>313812</commentid>
    <comment_count>22</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2010-11-25 09:53:09 -0800</bug_when>
    <thetext>crashlogs: http://webkit.sed.hu/buildbot/results/x86-32%20Linux%20Qt%20Debug/r72734%20%2810488%29/results.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>330892</commentid>
    <comment_count>23</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2011-01-07 11:45:42 -0800</bug_when>
    <thetext>Peter, what is the status of this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>331531</commentid>
    <comment_count>24</comment_count>
    <who name="Peter Hartmann">peter.hartmann</who>
    <bug_when>2011-01-10 00:59:02 -0800</bug_when>
    <thetext>I will work on it again after soon, after I finished some other things...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>347259</commentid>
    <comment_count>25</comment_count>
    <who name="Markus Goetz">markus</who>
    <bug_when>2011-02-08 03:29:09 -0800</bug_when>
    <thetext>@WebKit guys: Please note that we should also cherry pick this patch into Qt 4.7.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>347261</commentid>
    <comment_count>26</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2011-02-08 03:42:49 -0800</bug_when>
    <thetext>(In reply to comment #25)
&gt; @WebKit guys: Please note that we should also cherry pick this patch into Qt 4.7.

Ademar, this is a very nasty bug. Could you make sure the patches find their way to releases and everything is tested correctly?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>347371</commentid>
    <comment_count>27</comment_count>
    <who name="Ademar Reis">ademar</who>
    <bug_when>2011-02-08 07:49:49 -0800</bug_when>
    <thetext>(In reply to comment #26)
&gt; (In reply to comment #25)
&gt; &gt; @WebKit guys: Please note that we should also cherry pick this patch into Qt 4.7.
&gt; 
&gt; Ademar, this is a very nasty bug. Could you make sure the patches find their way to releases and everything is tested correctly?

Adding it as a blocker for 2.1. Will have to check manually how to submit the change for 2.0 (qt47) later.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>352669</commentid>
    <comment_count>28</comment_count>
      <attachid>82767</attachid>
    <who name="Peter Hartmann">peter.hartmann</who>
    <bug_when>2011-02-17 01:11:57 -0800</bug_when>
    <thetext>Created attachment 82767
patch for using Qt&apos;s synchronous HTTP feature with threaded architecture

the attachment fixes the crash in the browser, but causes several of the layout tests to crash or timeout, so it is not fully working yet.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>353117</commentid>
    <comment_count>29</comment_count>
    <who name="Ademar Reis">ademar</who>
    <bug_when>2011-02-17 12:50:08 -0800</bug_when>
    <thetext>(In reply to comment #28)
&gt; Created an attachment (id=82767) [details]
&gt; patch for using Qt&apos;s synchronous HTTP feature with threaded architecture
&gt; 
&gt; the attachment fixes the crash in the browser, but causes several of the layout tests to crash or timeout, so it is not fully working yet.

Peter, any plans to still work on that? The window to submit patches to 2.1 is about to close.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>353486</commentid>
    <comment_count>30</comment_count>
    <who name="Peter Hartmann">peter.hartmann</who>
    <bug_when>2011-02-18 01:57:42 -0800</bug_when>
    <thetext>(In reply to comment #29)
(...)
&gt; Peter, any plans to still work on that? The window to submit patches to 2.1 is about to close.

I think I will look at it together with Jocelyn. How long can we submit patches to 2.1?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>353550</commentid>
    <comment_count>31</comment_count>
    <who name="Ademar Reis">ademar</who>
    <bug_when>2011-02-18 05:42:42 -0800</bug_when>
    <thetext>(In reply to comment #30)
&gt; (In reply to comment #29)
&gt; (...)
&gt; &gt; Peter, any plans to still work on that? The window to submit patches to 2.1 is about to close.
&gt; 
&gt; I think I will look at it together with Jocelyn. How long can we submit patches to 2.1?

We&apos;re waiting the green light from the Symbian team which is our main target for 2.1.0. Our expectation is to declare the next weekly release a RC.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>354558</commentid>
    <comment_count>32</comment_count>
    <who name="Ademar Reis">ademar</who>
    <bug_when>2011-02-21 06:23:31 -0800</bug_when>
    <thetext>Moving target from 2.1(.0) to 2.1.x</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>354560</commentid>
    <comment_count>33</comment_count>
    <who name="Peter Hartmann">peter.hartmann</who>
    <bug_when>2011-02-21 06:27:29 -0800</bug_when>
    <thetext>(In reply to comment #30)
&gt; (In reply to comment #29)
&gt; (...)
&gt; &gt; Peter, any plans to still work on that? The window to submit patches to 2.1 is about to close.
&gt; 
&gt; I think I will look at it together with Jocelyn. How long can we submit patches to 2.1?

update: Qt 4.8 will contain threaded networking of its own, so there is no need anymore for webkit to have the QNetworkAccessManager in its own thread. Once the webkit threaded version has been reverted, we will look into this again.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>354573</commentid>
    <comment_count>34</comment_count>
    <who name="Ademar Reis">ademar</who>
    <bug_when>2011-02-21 06:43:26 -0800</bug_when>
    <thetext>(In reply to comment #33)
&gt; (In reply to comment #30)
&gt; &gt; (In reply to comment #29)
&gt; &gt; (...)
&gt; &gt; &gt; Peter, any plans to still work on that? The window to submit patches to 2.1 is about to close.
&gt; &gt; 
&gt; &gt; I think I will look at it together with Jocelyn. How long can we submit patches to 2.1?
&gt; 
&gt; update: Qt 4.8 will contain threaded networking of its own, so there is no need anymore for webkit to have the QNetworkAccessManager in its own thread. Once the webkit threaded version has been reverted, we will look into this again.

You&apos;re saying we should live with this bug until qt-4.8 is released? I thought this was a &quot;very nasty bug that needs to be included in qt-4.7&quot; (Comment #26).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>355302</commentid>
    <comment_count>35</comment_count>
    <who name="Peter Hartmann">peter.hartmann</who>
    <bug_when>2011-02-22 08:43:09 -0800</bug_when>
    <thetext>&gt; You&apos;re saying we should live with this bug until qt-4.8 is released? I thought this was a &quot;very nasty bug that needs to be included in qt-4.7&quot; (Comment #26).

Maybe it would be a good idea to look into this earlier; however I am not working on Webkit anymore. Feel free to contact somebody else from that team.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>358510</commentid>
    <comment_count>36</comment_count>
      <attachid>83942</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2011-02-26 07:45:08 -0800</bug_when>
    <thetext>Created attachment 83942
Proposed patch

Updated patch based on the earlier work.
Don&apos;t hook up signals from the synchronous reply if it&apos;s successfully completed in start().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>358520</commentid>
    <comment_count>37</comment_count>
      <attachid>83942</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2011-02-26 08:02:55 -0800</bug_when>
    <thetext>Comment on attachment 83942
Proposed patch

How is this tested? Who sets the loadMode?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>358522</commentid>
    <comment_count>38</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2011-02-26 08:07:32 -0800</bug_when>
    <thetext>(In reply to comment #37)
&gt; (From update of attachment 83942 [details])
&gt; How is this tested? Who sets the loadMode?

The loadMode is passed as an argument to the QNetworkReplyHandler constructor.

As for testing, synchronous XHR is covered by a plethora of layout tests. Targeting the crash is virtually impossible though, since what we end up is [random] reentrancy while waiting for request completion.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>358523</commentid>
    <comment_count>39</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2011-02-26 08:09:42 -0800</bug_when>
    <thetext>OK I saw it now:

204     d-&gt;m_job = new QNetworkReplyHandler(handle.get(), QNetworkReplyHandler::LoadNormal);
 210    d-&gt;m_job = new QNetworkReplyHandler(handle.get(), QNetworkReplyHandler::LoadSynchronously);

Le&apos;ts give it a shot.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>358533</commentid>
    <comment_count>40</comment_count>
      <attachid>83942</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2011-02-26 09:12:40 -0800</bug_when>
    <thetext>Comment on attachment 83942
Proposed patch

Clearing flags on attachment: 83942

Committed r79795: &lt;http://trac.webkit.org/changeset/79795&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>358534</commentid>
    <comment_count>41</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2011-02-26 09:12:51 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>358606</commentid>
    <comment_count>42</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2011-02-26 16:35:21 -0800</bug_when>
    <thetext>It is really nice you fixed this bug. Those crashes were such a pain.

Maybe a followup patch should #ifdef WebCoreSynchronousLoader for Qt 4.8? This way we won&apos;t forget to remove it when 4.9 is release.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>359329</commentid>
    <comment_count>43</comment_count>
    <who name="Ademar Reis">ademar</who>
    <bug_when>2011-02-28 14:03:04 -0800</bug_when>
    <thetext>Revision r79795 cherry-picked into qtwebkit-2.1.x with commit 757fbfd &lt;http://gitorious.org/webkit/qtwebkit/commit/757fbfd&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>74761</attachid>
            <date>2010-11-24 08:08:09 -0800</date>
            <delta_ts>2010-11-24 10:33:31 -0800</delta_ts>
            <desc>patch for using Qt&apos;s synchronous HTTP feature</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>5057</size>
            <attacher name="Peter Hartmann">peter.hartmann</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
OGEyNDI0YS4uZDk2ZTYwOCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNSBAQAorMjAxMC0xMS0yNCAgUGV0ZXIgSGFydG1h
bm4gIDxwZXRlci5oYXJ0bWFubkBub2tpYS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgW1F0XSBlbmFibGUgdXNhZ2Ugb2Ygc3luY2hyb25vdXMg
SFRUUCBmZWF0dXJlIGluIFF0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0zNzE5MQorCisgICAgICAgIEN1cnJlbnRseSwgd2Ugc3BpbiBhbiBldmVudCBs
b29wIHdoZW4gZG9pbmcgc3luY2hyb25vdXMgY2FsbHMgdG8KKyAgICAgICAgd2FpdCBmb3IgY29t
cGxldGlvbi4gVGhpcyBwYXRjaCB1c2VzIHN5bmNocm9ub3VzIHJlcXVlc3RzIGluIFF0LAorICAg
ICAgICBpZiBhdmFpbGFibGUsIGFuZCBzcGlucyB0aGUgZXZlbnQgbG9vcCBhcyBhIGZhbGxiYWNr
IHNvbHV0aW9uLgorCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9xdC9RTmV0d29ya1JlcGx5
SGFuZGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpRTmV0d29ya1JlcGx5SGFuZGxlcjo6UU5l
dHdvcmtSZXBseUhhbmRsZXIpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvcXQvUU5ldHdv
cmtSZXBseUhhbmRsZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL3F0L1Jlc291cmNl
SGFuZGxlUXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViQ29yZVN5bmNocm9ub3VzTG9hZGVy
OjpzZXRSZXBseUZpbmlzaGVkKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkNvcmVTeW5jaHJvbm91
c0xvYWRlcjo6V2ViQ29yZVN5bmNocm9ub3VzTG9hZGVyKToKKyAgICAgICAgKFdlYkNvcmU6Oldl
YkNvcmVTeW5jaHJvbm91c0xvYWRlcjo6ZGlkRmluaXNoTG9hZGluZyk6CisgICAgICAgIChXZWJD
b3JlOjpXZWJDb3JlU3luY2hyb25vdXNMb2FkZXI6OmRpZEZhaWwpOgorICAgICAgICAoV2ViQ29y
ZTo6V2ViQ29yZVN5bmNocm9ub3VzTG9hZGVyOjp3YWl0Rm9yQ29tcGxldGlvbik6CisgICAgICAg
IChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseSk6CisK
IDIwMTAtMTEtMTIgIFN0ZXBoZW4gV2hpdGUgIDxzZW5vcmJsYW5jb0BjaHJvbWl1bS5vcmc+CiAK
ICAgICAgICAgUmV2aWV3ZWQgYnkgU2ltb24gRnJhc2VyLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL3F0L1FOZXR3b3JrUmVwbHlIYW5kbGVyLmNwcCBiL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9xdC9RTmV0d29ya1JlcGx5SGFuZGxlci5jcHAKaW5kZXggMmU5ZGM3NS4u
YWIzOTBiZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3F0L1FOZXR3b3Jr
UmVwbHlIYW5kbGVyLmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvcXQvUU5ldHdv
cmtSZXBseUhhbmRsZXIuY3BwCkBAIC01Myw2ICs1Myw4IEBACiAjZGVmaW5lIFNJR05BTF9DT05O
IFF0OjpRdWV1ZWRDb25uZWN0aW9uCiAjZW5kaWYKIAorY29uc3QgUU5ldHdvcmtSZXF1ZXN0OjpB
dHRyaWJ1dGUgZ1N5bmNocm9ub3VzTmV0d29ya1JlcXVlc3RBdHRyaWJ1dGUgPSBzdGF0aWNfY2Fz
dDxRTmV0d29ya1JlcXVlc3Q6OkF0dHJpYnV0ZT4oUU5ldHdvcmtSZXF1ZXN0OjpEb3dubG9hZEJ1
ZmZlckF0dHJpYnV0ZSArIDEpOworCiBzdGF0aWMgY29uc3QgaW50IGdNYXhSZWN1cnNpb25MaW1p
dCA9IDEwOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0yMjAsNiArMjIyLDExIEBAIFFOZXR3
b3JrUmVwbHlIYW5kbGVyOjpRTmV0d29ya1JlcGx5SGFuZGxlcihSZXNvdXJjZUhhbmRsZSogaGFu
ZGxlLCBMb2FkTW9kZSBsb2FkCiAKICAgICBtX3JlcXVlc3QgPSByLnRvTmV0d29ya1JlcXVlc3Qo
b3JpZ2luYXRpbmdPYmplY3QpOwogCisgICAgaWYgKG1fbG9hZE1vZGUgPT0gTG9hZFN5bmNocm9u
b3VzbHkpIHsKKyAgICAgICAgbV9yZXF1ZXN0LnNldEF0dHJpYnV0ZShnU3luY2hyb25vdXNOZXR3
b3JrUmVxdWVzdEF0dHJpYnV0ZSwgdHJ1ZSk7CisgICAgICAgIG1fbG9hZE1vZGUgPSBMb2FkTm9y
bWFsOworICAgIH0KKwogICAgIGlmIChtX2xvYWRNb2RlID09IExvYWROb3JtYWwpCiAgICAgICAg
IHN0YXJ0KCk7CiB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvcXQvUU5l
dHdvcmtSZXBseUhhbmRsZXIuaCBiL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9xdC9RTmV0d29y
a1JlcGx5SGFuZGxlci5oCmluZGV4IGI2NGQ1ZmYuLjhlZTE4NTggMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9xdC9RTmV0d29ya1JlcGx5SGFuZGxlci5oCisrKyBiL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9xdC9RTmV0d29ya1JlcGx5SGFuZGxlci5oCkBAIC00Miw3ICs0
Miw4IEBAIHB1YmxpYzoKICAgICBlbnVtIExvYWRNb2RlIHsKICAgICAgICAgTG9hZE5vcm1hbCwK
ICAgICAgICAgTG9hZERlZmVycmVkLAotICAgICAgICBMb2FkUmVzdW1pbmcKKyAgICAgICAgTG9h
ZFJlc3VtaW5nLAorICAgICAgICBMb2FkU3luY2hyb25vdXNseQogICAgIH07CiAKICAgICBRTmV0
d29ya1JlcGx5SGFuZGxlcihSZXNvdXJjZUhhbmRsZSAqaGFuZGxlLCBMb2FkTW9kZSk7CkBAIC01
Nyw3ICs1OCw3IEBAIHB1YmxpYzoKIHNpZ25hbHM6CiAgICAgdm9pZCBwcm9jZXNzUXVldWVkSXRl
bXMoKTsKIAotcHJpdmF0ZSBzbG90czoKK3B1YmxpYyBzbG90czoKICAgICB2b2lkIGZpbmlzaCgp
OwogICAgIHZvaWQgc2VuZFJlc3BvbnNlSWZOZWVkZWQoKTsKICAgICB2b2lkIGZvcndhcmREYXRh
KCk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvcXQvUmVzb3VyY2VIYW5k
bGVRdC5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvcXQvUmVzb3VyY2VIYW5kbGVRdC5j
cHAKaW5kZXggNGUwZTFmNC4uMDY3MGU4NSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL3F0L1Jlc291cmNlSGFuZGxlUXQuY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9xdC9SZXNvdXJjZUhhbmRsZVF0LmNwcApAQCAtNjcsMTQgKzY3LDE4IEBAIHB1YmxpYzoK
ICAgICBSZXNvdXJjZUVycm9yIHJlc291cmNlRXJyb3IoKSBjb25zdCB7IHJldHVybiBtX2Vycm9y
OyB9CiAgICAgVmVjdG9yPGNoYXI+IGRhdGEoKSBjb25zdCB7IHJldHVybiBtX2RhdGE7IH0KIAor
ICAgIHZvaWQgc2V0UmVwbHlGaW5pc2hlZChib29sIGZpbmlzaGVkKSB7IG1fcmVwbHlGaW5pc2hl
ZCA9IGZpbmlzaGVkOyB9CisKIHByaXZhdGU6CiAgICAgUmVzb3VyY2VSZXNwb25zZSBtX3Jlc3Bv
bnNlOwogICAgIFJlc291cmNlRXJyb3IgbV9lcnJvcjsKICAgICBWZWN0b3I8Y2hhcj4gbV9kYXRh
OwogICAgIFFFdmVudExvb3AgbV9ldmVudExvb3A7CisgICAgYm9vbCBtX3JlcGx5RmluaXNoZWQ7
CiB9OwogCiBXZWJDb3JlU3luY2hyb25vdXNMb2FkZXI6OldlYkNvcmVTeW5jaHJvbm91c0xvYWRl
cigpCisgICAgICAgIDogbV9yZXBseUZpbmlzaGVkKGZhbHNlKQogewogfQogCkBAIC05MCwxOCAr
OTQsMjEgQEAgdm9pZCBXZWJDb3JlU3luY2hyb25vdXNMb2FkZXI6OmRpZFJlY2VpdmVEYXRhKFJl
c291cmNlSGFuZGxlKiwgY29uc3QgY2hhciogZGF0YSwKIAogdm9pZCBXZWJDb3JlU3luY2hyb25v
dXNMb2FkZXI6OmRpZEZpbmlzaExvYWRpbmcoUmVzb3VyY2VIYW5kbGUqLCBkb3VibGUpCiB7Ci0g
ICAgbV9ldmVudExvb3AuZXhpdCgpOworICAgIGlmICghbV9yZXBseUZpbmlzaGVkKQorICAgICAg
ICBtX2V2ZW50TG9vcC5leGl0KCk7CiB9CiAKIHZvaWQgV2ViQ29yZVN5bmNocm9ub3VzTG9hZGVy
OjpkaWRGYWlsKFJlc291cmNlSGFuZGxlKiwgY29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3IpCiB7
CiAgICAgbV9lcnJvciA9IGVycm9yOwotICAgIG1fZXZlbnRMb29wLmV4aXQoKTsKKyAgICBpZiAo
IW1fcmVwbHlGaW5pc2hlZCkKKyAgICAgICAgbV9ldmVudExvb3AuZXhpdCgpOwogfQogCiB2b2lk
IFdlYkNvcmVTeW5jaHJvbm91c0xvYWRlcjo6d2FpdEZvckNvbXBsZXRpb24oKQogewotICAgIG1f
ZXZlbnRMb29wLmV4ZWMoUUV2ZW50TG9vcDo6RXhjbHVkZVVzZXJJbnB1dEV2ZW50cyk7CisgICAg
aWYgKCFtX3JlcGx5RmluaXNoZWQpCisgICAgICAgIG1fZXZlbnRMb29wLmV4ZWMoUUV2ZW50TG9v
cDo6RXhjbHVkZVVzZXJJbnB1dEV2ZW50cyk7CiB9CiAKIFJlc291cmNlSGFuZGxlSW50ZXJuYWw6
On5SZXNvdXJjZUhhbmRsZUludGVybmFsKCkKQEAgLTE5OSw3ICsyMDYsMTMgQEAgdm9pZCBSZXNv
dXJjZUhhbmRsZTo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseShOZXR3b3JraW5nQ29udGV4dCog
Y29udGV4dCwgY29uc3QKICAgICAgICAgZC0+bV9maXJzdFJlcXVlc3Quc2V0VVJMKHVybFdpdGhD
cmVkZW50aWFscyk7CiAgICAgfQogICAgIGQtPm1fY29udGV4dCA9IGNvbnRleHQ7Ci0gICAgZC0+
bV9qb2IgPSBuZXcgUU5ldHdvcmtSZXBseUhhbmRsZXIoaGFuZGxlLmdldCgpLCBRTmV0d29ya1Jl
cGx5SGFuZGxlcjo6TG9hZE5vcm1hbCk7CisgICAgZC0+bV9qb2IgPSBuZXcgUU5ldHdvcmtSZXBs
eUhhbmRsZXIoaGFuZGxlLmdldCgpLCBRTmV0d29ya1JlcGx5SGFuZGxlcjo6TG9hZFN5bmNocm9u
b3VzbHkpOworCisgICAgUU5ldHdvcmtSZXBseSogcmVwbHkgPSBkLT5tX2pvYi0+cmVwbHkoKTsK
KyAgICAvLyB3aGVuIHVzaW5nIHN5bmNocm9ub3VzIGNhbGxzLCB3ZSBhcmUgZmluaXNoZWQgd2hl
biByZWFjaGluZyB0aGlzIHBvaW50CisgICAgc3luY0xvYWRlci5zZXRSZXBseUZpbmlzaGVkKHJl
cGx5LT5pc0ZpbmlzaGVkKCkpOworICAgIGQtPm1fam9iLT5mb3J3YXJkRGF0YSgpOworICAgIGQt
Pm1fam9iLT5maW5pc2goKTsKIAogICAgIHN5bmNMb2FkZXIud2FpdEZvckNvbXBsZXRpb24oKTsK
ICAgICBlcnJvciA9IHN5bmNMb2FkZXIucmVzb3VyY2VFcnJvcigpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>74779</attachid>
            <date>2010-11-24 10:33:31 -0800</date>
            <delta_ts>2011-02-26 07:45:08 -0800</delta_ts>
            <desc>patch for using Qt&apos;s synchronous HTTP feature</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>5241</size>
            <attacher name="Peter Hartmann">peter.hartmann</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
OGEyNDI0YS4uODYzNDBlMiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNiBAQAorMjAxMC0xMS0yNCAgUGV0ZXIgSGFydG1h
bm4gIDxwZXRlci5oYXJ0bWFubkBub2tpYS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgW1F0XSBlbmFibGUgdXNhZ2Ugb2Ygc3luY2hyb25vdXMg
SFRUUCBmZWF0dXJlIGluIFF0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0zNzE5MQorCisgICAgICAgIEN1cnJlbnRseSwgd2Ugc3BpbiBhbiBldmVudCBs
b29wIHdoZW4gZG9pbmcgc3luY2hyb25vdXMgY2FsbHMgdG8KKyAgICAgICAgd2FpdCBmb3IgY29t
cGxldGlvbi4gVGhpcyBwYXRjaCB1c2VzIHN5bmNocm9ub3VzIHJlcXVlc3RzIGluIFF0LAorICAg
ICAgICBpZiBhdmFpbGFibGUsIGFuZCBzcGlucyB0aGUgZXZlbnQgbG9vcCBhcyBhIGZhbGxiYWNr
IHNvbHV0aW9uLgorICAgICAgICBQYXRjaCBieSBTaW1vbiBIYXVzbWFubiBhbmQgUGV0ZXIgSGFy
dG1hbm4uCisKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL3F0L1FOZXR3b3JrUmVwbHlIYW5k
bGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlFOZXR3b3JrUmVwbHlIYW5kbGVyOjpRTmV0d29y
a1JlcGx5SGFuZGxlcik6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9xdC9RTmV0d29ya1Jl
cGx5SGFuZGxlci5oOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvcXQvUmVzb3VyY2VIYW5k
bGVRdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJDb3JlU3luY2hyb25vdXNMb2FkZXI6OnNl
dFJlcGx5RmluaXNoZWQpOgorICAgICAgICAoV2ViQ29yZTo6V2ViQ29yZVN5bmNocm9ub3VzTG9h
ZGVyOjpXZWJDb3JlU3luY2hyb25vdXNMb2FkZXIpOgorICAgICAgICAoV2ViQ29yZTo6V2ViQ29y
ZVN5bmNocm9ub3VzTG9hZGVyOjpkaWRGaW5pc2hMb2FkaW5nKToKKyAgICAgICAgKFdlYkNvcmU6
OldlYkNvcmVTeW5jaHJvbm91c0xvYWRlcjo6ZGlkRmFpbCk6CisgICAgICAgIChXZWJDb3JlOjpX
ZWJDb3JlU3luY2hyb25vdXNMb2FkZXI6OndhaXRGb3JDb21wbGV0aW9uKToKKyAgICAgICAgKFdl
YkNvcmU6OlJlc291cmNlSGFuZGxlOjpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KToKKwogMjAx
MC0xMS0xMiAgU3RlcGhlbiBXaGl0ZSAgPHNlbm9yYmxhbmNvQGNocm9taXVtLm9yZz4KIAogICAg
ICAgICBSZXZpZXdlZCBieSBTaW1vbiBGcmFzZXIuCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvcXQvUU5ldHdvcmtSZXBseUhhbmRsZXIuY3BwIGIvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL3F0L1FOZXR3b3JrUmVwbHlIYW5kbGVyLmNwcAppbmRleCAyZTlkYzc1Li44YWJk
YzI4IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvcXQvUU5ldHdvcmtSZXBs
eUhhbmRsZXIuY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9xdC9RTmV0d29ya1Jl
cGx5SGFuZGxlci5jcHAKQEAgLTUzLDYgKzUzLDEwIEBACiAjZGVmaW5lIFNJR05BTF9DT05OIFF0
OjpRdWV1ZWRDb25uZWN0aW9uCiAjZW5kaWYKIAorLy8gSW4gUXQgNC44LCB0aGUgYXR0cmlidXRl
IGZvciBzZW5kaW5nIGEgcmVxdWVzdCBzeW5jaHJvbm91c2x5IHdpbGwgYmUgbWFkZSBwdWJsaWMs
CisvLyBmb3Igbm93LCB1c2UgdGhpcyBoYWNraXNoIHNvbHV0aW9uIGZvciBzZXR0aW5nIHRoZSBp
bnRlcm5hbCBhdHRyaWJ1dGUuCitjb25zdCBRTmV0d29ya1JlcXVlc3Q6OkF0dHJpYnV0ZSBnU3lu
Y2hyb25vdXNOZXR3b3JrUmVxdWVzdEF0dHJpYnV0ZSA9IHN0YXRpY19jYXN0PFFOZXR3b3JrUmVx
dWVzdDo6QXR0cmlidXRlPihRTmV0d29ya1JlcXVlc3Q6Okh0dHBQaXBlbGluaW5nV2FzVXNlZEF0
dHJpYnV0ZSArIDcpOworCiBzdGF0aWMgY29uc3QgaW50IGdNYXhSZWN1cnNpb25MaW1pdCA9IDEw
OwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0yMjAsNiArMjI0LDExIEBAIFFOZXR3b3JrUmVw
bHlIYW5kbGVyOjpRTmV0d29ya1JlcGx5SGFuZGxlcihSZXNvdXJjZUhhbmRsZSogaGFuZGxlLCBM
b2FkTW9kZSBsb2FkCiAKICAgICBtX3JlcXVlc3QgPSByLnRvTmV0d29ya1JlcXVlc3Qob3JpZ2lu
YXRpbmdPYmplY3QpOwogCisgICAgaWYgKG1fbG9hZE1vZGUgPT0gTG9hZFN5bmNocm9ub3VzbHkp
IHsKKyAgICAgICAgbV9yZXF1ZXN0LnNldEF0dHJpYnV0ZShnU3luY2hyb25vdXNOZXR3b3JrUmVx
dWVzdEF0dHJpYnV0ZSwgdHJ1ZSk7CisgICAgICAgIG1fbG9hZE1vZGUgPSBMb2FkTm9ybWFsOwor
ICAgIH0KKwogICAgIGlmIChtX2xvYWRNb2RlID09IExvYWROb3JtYWwpCiAgICAgICAgIHN0YXJ0
KCk7CiB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvcXQvUU5ldHdvcmtS
ZXBseUhhbmRsZXIuaCBiL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9xdC9RTmV0d29ya1JlcGx5
SGFuZGxlci5oCmluZGV4IGI2NGQ1ZmYuLjhlZTE4NTggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9xdC9RTmV0d29ya1JlcGx5SGFuZGxlci5oCisrKyBiL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9xdC9RTmV0d29ya1JlcGx5SGFuZGxlci5oCkBAIC00Miw3ICs0Miw4IEBA
IHB1YmxpYzoKICAgICBlbnVtIExvYWRNb2RlIHsKICAgICAgICAgTG9hZE5vcm1hbCwKICAgICAg
ICAgTG9hZERlZmVycmVkLAotICAgICAgICBMb2FkUmVzdW1pbmcKKyAgICAgICAgTG9hZFJlc3Vt
aW5nLAorICAgICAgICBMb2FkU3luY2hyb25vdXNseQogICAgIH07CiAKICAgICBRTmV0d29ya1Jl
cGx5SGFuZGxlcihSZXNvdXJjZUhhbmRsZSAqaGFuZGxlLCBMb2FkTW9kZSk7CkBAIC01Nyw3ICs1
OCw3IEBAIHB1YmxpYzoKIHNpZ25hbHM6CiAgICAgdm9pZCBwcm9jZXNzUXVldWVkSXRlbXMoKTsK
IAotcHJpdmF0ZSBzbG90czoKK3B1YmxpYyBzbG90czoKICAgICB2b2lkIGZpbmlzaCgpOwogICAg
IHZvaWQgc2VuZFJlc3BvbnNlSWZOZWVkZWQoKTsKICAgICB2b2lkIGZvcndhcmREYXRhKCk7CmRp
ZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvcXQvUmVzb3VyY2VIYW5kbGVRdC5j
cHAgYi9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvcXQvUmVzb3VyY2VIYW5kbGVRdC5jcHAKaW5k
ZXggNGUwZTFmNC4uODI0MWJjMiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L3F0L1Jlc291cmNlSGFuZGxlUXQuY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9x
dC9SZXNvdXJjZUhhbmRsZVF0LmNwcApAQCAtNjcsMTQgKzY3LDE4IEBAIHB1YmxpYzoKICAgICBS
ZXNvdXJjZUVycm9yIHJlc291cmNlRXJyb3IoKSBjb25zdCB7IHJldHVybiBtX2Vycm9yOyB9CiAg
ICAgVmVjdG9yPGNoYXI+IGRhdGEoKSBjb25zdCB7IHJldHVybiBtX2RhdGE7IH0KIAorICAgIHZv
aWQgc2V0UmVwbHlGaW5pc2hlZChib29sIGZpbmlzaGVkKSB7IG1fcmVwbHlGaW5pc2hlZCA9IGZp
bmlzaGVkOyB9CisKIHByaXZhdGU6CiAgICAgUmVzb3VyY2VSZXNwb25zZSBtX3Jlc3BvbnNlOwog
ICAgIFJlc291cmNlRXJyb3IgbV9lcnJvcjsKICAgICBWZWN0b3I8Y2hhcj4gbV9kYXRhOwogICAg
IFFFdmVudExvb3AgbV9ldmVudExvb3A7CisgICAgYm9vbCBtX3JlcGx5RmluaXNoZWQ7CiB9Owog
CiBXZWJDb3JlU3luY2hyb25vdXNMb2FkZXI6OldlYkNvcmVTeW5jaHJvbm91c0xvYWRlcigpCisg
ICAgICAgIDogbV9yZXBseUZpbmlzaGVkKGZhbHNlKQogewogfQogCkBAIC05MCwxMyArOTQsMTUg
QEAgdm9pZCBXZWJDb3JlU3luY2hyb25vdXNMb2FkZXI6OmRpZFJlY2VpdmVEYXRhKFJlc291cmNl
SGFuZGxlKiwgY29uc3QgY2hhciogZGF0YSwKIAogdm9pZCBXZWJDb3JlU3luY2hyb25vdXNMb2Fk
ZXI6OmRpZEZpbmlzaExvYWRpbmcoUmVzb3VyY2VIYW5kbGUqLCBkb3VibGUpCiB7Ci0gICAgbV9l
dmVudExvb3AuZXhpdCgpOworICAgIGlmICghbV9yZXBseUZpbmlzaGVkKQorICAgICAgICBtX2V2
ZW50TG9vcC5leGl0KCk7CiB9CiAKIHZvaWQgV2ViQ29yZVN5bmNocm9ub3VzTG9hZGVyOjpkaWRG
YWlsKFJlc291cmNlSGFuZGxlKiwgY29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3IpCiB7CiAgICAg
bV9lcnJvciA9IGVycm9yOwotICAgIG1fZXZlbnRMb29wLmV4aXQoKTsKKyAgICBpZiAoIW1fcmVw
bHlGaW5pc2hlZCkKKyAgICAgICAgbV9ldmVudExvb3AuZXhpdCgpOwogfQogCiB2b2lkIFdlYkNv
cmVTeW5jaHJvbm91c0xvYWRlcjo6d2FpdEZvckNvbXBsZXRpb24oKQpAQCAtMTk5LDkgKzIwNSwx
NyBAQCB2b2lkIFJlc291cmNlSGFuZGxlOjpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KE5ldHdv
cmtpbmdDb250ZXh0KiBjb250ZXh0LCBjb25zdAogICAgICAgICBkLT5tX2ZpcnN0UmVxdWVzdC5z
ZXRVUkwodXJsV2l0aENyZWRlbnRpYWxzKTsKICAgICB9CiAgICAgZC0+bV9jb250ZXh0ID0gY29u
dGV4dDsKLSAgICBkLT5tX2pvYiA9IG5ldyBRTmV0d29ya1JlcGx5SGFuZGxlcihoYW5kbGUuZ2V0
KCksIFFOZXR3b3JrUmVwbHlIYW5kbGVyOjpMb2FkTm9ybWFsKTsKLQotICAgIHN5bmNMb2FkZXIu
d2FpdEZvckNvbXBsZXRpb24oKTsKKyAgICBkLT5tX2pvYiA9IG5ldyBRTmV0d29ya1JlcGx5SGFu
ZGxlcihoYW5kbGUuZ2V0KCksIFFOZXR3b3JrUmVwbHlIYW5kbGVyOjpMb2FkU3luY2hyb25vdXNs
eSk7CisKKyAgICBRTmV0d29ya1JlcGx5KiByZXBseSA9IGQtPm1fam9iLT5yZXBseSgpOworICAg
IC8vIFdoZW4gdXNpbmcgc3luY2hyb25vdXMgY2FsbHMsIHdlIGFyZSBmaW5pc2hlZCB3aGVuIHJl
YWNoaW5nIHRoaXMgcG9pbnQuCisgICAgaWYgKHJlcGx5LT5pc0ZpbmlzaGVkKCkpIHsKKyAgICAg
ICAgc3luY0xvYWRlci5zZXRSZXBseUZpbmlzaGVkKHRydWUpOworICAgICAgICBkLT5tX2pvYi0+
Zm9yd2FyZERhdGEoKTsKKyAgICAgICAgZC0+bV9qb2ItPmZpbmlzaCgpOworICAgIH0gZWxzZSB7
CisgICAgICAgIHN5bmNMb2FkZXIud2FpdEZvckNvbXBsZXRpb24oKTsKKyAgICB9CiAgICAgZXJy
b3IgPSBzeW5jTG9hZGVyLnJlc291cmNlRXJyb3IoKTsKICAgICBkYXRhID0gc3luY0xvYWRlci5k
YXRhKCk7CiAgICAgcmVzcG9uc2UgPSBzeW5jTG9hZGVyLnJlc291cmNlUmVzcG9uc2UoKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>82767</attachid>
            <date>2011-02-17 01:11:57 -0800</date>
            <delta_ts>2011-02-26 07:45:08 -0800</delta_ts>
            <desc>patch for using Qt&apos;s synchronous HTTP feature with threaded architecture</desc>
            <filename>sync-diff</filename>
            <type>text/plain</type>
            <size>11326</size>
            <attacher name="Peter Hartmann">peter.hartmann</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvcXQvUU5ldHdvcmtS
ZXBseUhhbmRsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9xdC9RTmV0
d29ya1JlcGx5SGFuZGxlci5jcHAKaW5kZXggOThmZDY4ZC4uN2UzNDM0YSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9xdC9RTmV0d29ya1JlcGx5SGFuZGxlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9xdC9RTmV0d29ya1JlcGx5
SGFuZGxlci5jcHAKQEAgLTUyLDYgKzUyLDEwIEBACiAjZGVmaW5lIFNJR05BTF9DT05OIFF0OjpR
dWV1ZWRDb25uZWN0aW9uCiAjZW5kaWYKIAorLy8gSW4gUXQgNC44LCB0aGUgYXR0cmlidXRlIGZv
ciBzZW5kaW5nIGEgcmVxdWVzdCBzeW5jaHJvbm91c2x5IHdpbGwgYmUgbWFkZSBwdWJsaWMsCisv
LyBmb3Igbm93LCB1c2UgdGhpcyBoYWNraXNoIHNvbHV0aW9uIGZvciBzZXR0aW5nIHRoZSBpbnRl
cm5hbCBhdHRyaWJ1dGUuCitjb25zdCBRTmV0d29ya1JlcXVlc3Q6OkF0dHJpYnV0ZSBnU3luY2hy
b25vdXNOZXR3b3JrUmVxdWVzdEF0dHJpYnV0ZSA9IHN0YXRpY19jYXN0PFFOZXR3b3JrUmVxdWVz
dDo6QXR0cmlidXRlPihRTmV0d29ya1JlcXVlc3Q6Okh0dHBQaXBlbGluaW5nV2FzVXNlZEF0dHJp
YnV0ZSArIDcpOworCiBzdGF0aWMgY29uc3QgaW50IGdNYXhSZWN1cnNpb25MaW1pdCA9IDEwOwog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0yMjMsNiArMjI3LDExIEBAIFFOZXR3b3JrUmVwbHlI
YW5kbGVyOjpRTmV0d29ya1JlcGx5SGFuZGxlcihSZXNvdXJjZUhhbmRsZSogaGFuZGxlLCBMb2Fk
TW9kZSBsb2FkCiAKICAgICBtX3JlcXVlc3QgPSByLnRvTmV0d29ya1JlcXVlc3Qob3JpZ2luYXRp
bmdPYmplY3QpOwogCisgICAgaWYgKG1fbG9hZE1vZGUgPT0gTG9hZFN5bmNocm9ub3VzbHkpIHsK
KyAgICAgICAgbV9yZXF1ZXN0LnNldEF0dHJpYnV0ZShnU3luY2hyb25vdXNOZXR3b3JrUmVxdWVz
dEF0dHJpYnV0ZSwgdHJ1ZSk7CisgICAgICAgIG1fbG9hZE1vZGUgPSBMb2FkTm9ybWFsOworICAg
IH0KKwogICAgIGlmIChtX2xvYWRNb2RlID09IExvYWROb3JtYWwpCiAgICAgICAgIHN0YXJ0KCk7
CiB9CkBAIC01MTYsNyArNTI1LDggQEAgdm9pZCBRTmV0d29ya1JlcGx5SGFuZGxlcjo6c3RhcnQo
KQogICAgICAgICAmJiAoIXVybC50b0xvY2FsRmlsZSgpLmlzRW1wdHkoKSB8fCB1cmwuc2NoZW1l
KCkgPT0gUUxhdGluMVN0cmluZygiZGF0YSIpKSkKICAgICAgICAgbV9tZXRob2QgPSBRTmV0d29y
a0FjY2Vzc01hbmFnZXI6OkdldE9wZXJhdGlvbjsKIAotICAgIG1fcmVwbHkgPSBuZXcgUXROZXR3
b3JrUmVwbHlUaHJlYWRTYWZlUHJveHkobWFuYWdlcik7CisgICAgYm9vbCBpc1N5bmNocm9ub3Vz
ID0gbV9yZXF1ZXN0LmF0dHJpYnV0ZShzdGF0aWNfY2FzdDxRTmV0d29ya1JlcXVlc3Q6OkF0dHJp
YnV0ZT4oUU5ldHdvcmtSZXF1ZXN0OjpIdHRwUGlwZWxpbmluZ1dhc1VzZWRBdHRyaWJ1dGUgKyA3
KSkudG9Cb29sKCk7CisgICAgbV9yZXBseSA9IG5ldyBRdE5ldHdvcmtSZXBseVRocmVhZFNhZmVQ
cm94eShtYW5hZ2VyLCBpc1N5bmNocm9ub3VzKTsKICAgICBjb25uZWN0KG1fcmVwbHksIFNJR05B
TChmaW5pc2hlZCgpKSwgdGhpcywgU0xPVChmaW5pc2goKSksIFNJR05BTF9DT05OKTsKIAogICAg
IC8vIEZvciBodHRwKHMpIHdlIGtub3cgdGhhdCB0aGUgaGVhZGVycyBhcmUgY29tcGxldGUgdXBv
biBtZXRhRGF0YUNoYW5nZWQoKSBlbWlzc2lvbiwgc28gd2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvcXQvUU5ldHdvcmtSZXBseUhhbmRsZXIuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvcXQvUU5ldHdvcmtSZXBseUhhbmRsZXIuaAppbmRl
eCAxMTYzOGIzLi5kMjU2NGI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL3F0L1FOZXR3b3JrUmVwbHlIYW5kbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9xdC9RTmV0d29ya1JlcGx5SGFuZGxlci5oCkBAIC00NCwxMyArNDQsMTYg
QEAgcHVibGljOgogICAgIGVudW0gTG9hZE1vZGUgewogICAgICAgICBMb2FkTm9ybWFsLAogICAg
ICAgICBMb2FkRGVmZXJyZWQsCi0gICAgICAgIExvYWRSZXN1bWluZworICAgICAgICBMb2FkUmVz
dW1pbmcsCisgICAgICAgIExvYWRTeW5jaHJvbm91c2x5CiAgICAgfTsKIAogICAgIFFOZXR3b3Jr
UmVwbHlIYW5kbGVyKFJlc291cmNlSGFuZGxlICpoYW5kbGUsIExvYWRNb2RlKTsKICAgICB+UU5l
dHdvcmtSZXBseUhhbmRsZXIoKTsKICAgICB2b2lkIHNldExvYWRNb2RlKExvYWRNb2RlKTsKIAor
ICAgIFF0TmV0d29ya1JlcGx5VGhyZWFkU2FmZVByb3h5KiByZXBseSgpIGNvbnN0IHsgcmV0dXJu
IG1fcmVwbHk7IH0KKwogICAgIHZvaWQgYWJvcnQoKTsKIAogICAgIFF0TmV0d29ya1JlcGx5VGhy
ZWFkU2FmZVByb3h5KiByZWxlYXNlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL3F0L1F0TkFNVGhyZWFkU2FmZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvcXQvUXROQU1UaHJlYWRTYWZlUHJveHkuY3BwCmluZGV4IGE5OGI0
ZjQuLmVhNDMxZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
cXQvUXROQU1UaHJlYWRTYWZlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvcXQvUXROQU1UaHJlYWRTYWZlUHJveHkuY3BwCkBAIC04OSwyMyArODksMjcgQEAg
dm9pZCBRdE5BTVRocmVhZFNhZmVQcm94eTo6aGFzQ29va2llSmFyKGJvb2wqIGRvbmUsIGJvb2wq
IHJlc3VsdCkKICAgICBtX3Jlc3VsdFdhaXRDb25kaXRpb24ud2FrZUFsbCgpOwogfQogCi1RdE5l
dHdvcmtSZXBseVRocmVhZFNhZmVQcm94eTo6UXROZXR3b3JrUmVwbHlUaHJlYWRTYWZlUHJveHko
UU5ldHdvcmtBY2Nlc3NNYW5hZ2VyICptYW5hZ2VyKQorUXROZXR3b3JrUmVwbHlUaHJlYWRTYWZl
UHJveHk6OlF0TmV0d29ya1JlcGx5VGhyZWFkU2FmZVByb3h5KFFOZXR3b3JrQWNjZXNzTWFuYWdl
ciAqbWFuYWdlciwgYm9vbCBpc1N5bmNocm9ub3VzKQogICAgIDogbV9tYW5hZ2VyKG1hbmFnZXIp
CiAgICAgLCBtX3JlcGx5KDApCiAgICAgLCBtX2ZvcndhcmRpbmdEZWZlcmVkKGZhbHNlKQogICAg
ICwgbV9jb250ZW50TGVuZ3RoSGVhZGVyKDApCiAgICAgLCBtX2Vycm9yKFFOZXR3b3JrUmVwbHk6
Ok5vRXJyb3IpCiAgICAgLCBtX2h0dHBTdGF0dXNDb2RlKDApCisgICAgLCBtX2ZpbmlzaGVkKGZh
bHNlKQorICAgICwgbV9ibG9ja2luZyhpc1N5bmNocm9ub3VzICYmIG1hbmFnZXItPnRocmVhZCgp
ICE9IHRocmVhZCgpKQogewogICAgIG1vdmVUb1RocmVhZChtYW5hZ2VyLT50aHJlYWQoKSk7CiAK
KyAgICBRdDo6Q29ubmVjdGlvblR5cGUgY29ublR5cGUgPSBtX2Jsb2NraW5nID8gUXQ6OkJsb2Nr
aW5nUXVldWVkQ29ubmVjdGlvbiA6IFF0OjpBdXRvQ29ubmVjdGlvbjsKKwogICAgIC8vIFRoaXMg
bWlnaHQgYmUgdW5uZWNlc3NhcmlseSBoZWF2eSB0byBkbyBmb3IgZWFjaCByZXF1ZXN0IHdoaWxl
IHdlIGNvdWxkIGhhdmUgdGhlIHNhbWUgd3JhcHBlciBmb3IgdGhlIG1hbmFnZXIgaW5zdGVhZAot
ICAgIGNvbm5lY3QodGhpcywgU0lHTkFMKGxvY2FsR2V0UmVxdWVzdGVkKGNvbnN0IFFOZXR3b3Jr
UmVxdWVzdCYpKSwgU0xPVChsb2NhbEdldChjb25zdCBRTmV0d29ya1JlcXVlc3QmKSkpOwotICAg
IGNvbm5lY3QodGhpcywgU0lHTkFMKGxvY2FsUG9zdFJlcXVlc3RlZChjb25zdCBRTmV0d29ya1Jl
cXVlc3QmLCBRSU9EZXZpY2UqKSksIFNMT1QobG9jYWxQb3N0KGNvbnN0IFFOZXR3b3JrUmVxdWVz
dCYsIFFJT0RldmljZSopKSk7Ci0gICAgY29ubmVjdCh0aGlzLCBTSUdOQUwobG9jYWxIZWFkUmVx
dWVzdGVkKGNvbnN0IFFOZXR3b3JrUmVxdWVzdCYpKSwgU0xPVChsb2NhbEhlYWQoY29uc3QgUU5l
dHdvcmtSZXF1ZXN0JikpKTsKLSAgICBjb25uZWN0KHRoaXMsIFNJR05BTChsb2NhbFB1dFJlcXVl
c3RlZChjb25zdCBRTmV0d29ya1JlcXVlc3QmLCBRSU9EZXZpY2UqKSksIFNMT1QobG9jYWxQdXQo
Y29uc3QgUU5ldHdvcmtSZXF1ZXN0JiwgUUlPRGV2aWNlKikpKTsKLSAgICBjb25uZWN0KHRoaXMs
IFNJR05BTChsb2NhbERlbGV0ZVJlc291cmNlUmVxdWVzdGVkKGNvbnN0IFFOZXR3b3JrUmVxdWVz
dCYpKSwgU0xPVChsb2NhbERlbGV0ZVJlc291cmNlKGNvbnN0IFFOZXR3b3JrUmVxdWVzdCYpKSk7
Ci0gICAgY29ubmVjdCh0aGlzLCBTSUdOQUwobG9jYWxDdXN0b21SZXF1ZXN0UmVxdWVzdGVkKGNv
bnN0IFFOZXR3b3JrUmVxdWVzdCYsIGNvbnN0IFFCeXRlQXJyYXkmKSksIFNMT1QobG9jYWxDdXN0
b21SZXF1ZXN0KGNvbnN0IFFOZXR3b3JrUmVxdWVzdCYsIGNvbnN0IFFCeXRlQXJyYXkmKSkpOwor
ICAgIGNvbm5lY3QodGhpcywgU0lHTkFMKGxvY2FsR2V0UmVxdWVzdGVkKGNvbnN0IFFOZXR3b3Jr
UmVxdWVzdCYpKSwgU0xPVChsb2NhbEdldChjb25zdCBRTmV0d29ya1JlcXVlc3QmKSksIGNvbm5U
eXBlKTsKKyAgICBjb25uZWN0KHRoaXMsIFNJR05BTChsb2NhbFBvc3RSZXF1ZXN0ZWQoY29uc3Qg
UU5ldHdvcmtSZXF1ZXN0JiwgUUlPRGV2aWNlKikpLCBTTE9UKGxvY2FsUG9zdChjb25zdCBRTmV0
d29ya1JlcXVlc3QmLCBRSU9EZXZpY2UqKSksIGNvbm5UeXBlKTsKKyAgICBjb25uZWN0KHRoaXMs
IFNJR05BTChsb2NhbEhlYWRSZXF1ZXN0ZWQoY29uc3QgUU5ldHdvcmtSZXF1ZXN0JikpLCBTTE9U
KGxvY2FsSGVhZChjb25zdCBRTmV0d29ya1JlcXVlc3QmKSksIGNvbm5UeXBlKTsKKyAgICBjb25u
ZWN0KHRoaXMsIFNJR05BTChsb2NhbFB1dFJlcXVlc3RlZChjb25zdCBRTmV0d29ya1JlcXVlc3Qm
LCBRSU9EZXZpY2UqKSksIFNMT1QobG9jYWxQdXQoY29uc3QgUU5ldHdvcmtSZXF1ZXN0JiwgUUlP
RGV2aWNlKikpLCBjb25uVHlwZSk7CisgICAgY29ubmVjdCh0aGlzLCBTSUdOQUwobG9jYWxEZWxl
dGVSZXNvdXJjZVJlcXVlc3RlZChjb25zdCBRTmV0d29ya1JlcXVlc3QmKSksIFNMT1QobG9jYWxE
ZWxldGVSZXNvdXJjZShjb25zdCBRTmV0d29ya1JlcXVlc3QmKSksIGNvbm5UeXBlKTsKKyAgICBj
b25uZWN0KHRoaXMsIFNJR05BTChsb2NhbEN1c3RvbVJlcXVlc3RSZXF1ZXN0ZWQoY29uc3QgUU5l
dHdvcmtSZXF1ZXN0JiwgY29uc3QgUUJ5dGVBcnJheSYpKSwgU0xPVChsb2NhbEN1c3RvbVJlcXVl
c3QoY29uc3QgUU5ldHdvcmtSZXF1ZXN0JiwgY29uc3QgUUJ5dGVBcnJheSYpKSwgY29ublR5cGUp
OwogICAgIGNvbm5lY3QodGhpcywgU0lHTkFMKGxvY2FsQWJvcnRSZXF1ZXN0ZWQoKSksIFNMT1Qo
bG9jYWxBYm9ydCgpKSk7CiAgICAgY29ubmVjdCh0aGlzLCBTSUdOQUwobG9jYWxTZXRGb3J3YXJk
aW5nRGVmZXJlZFJlcXVlc3RlZChib29sKSksIFNMT1QobG9jYWxTZXRGb3J3YXJkaW5nRGVmZXJl
ZChib29sKSkpOwogfQpAQCAtMTg5LDYgKzE5Myw3IEBAIHZvaWQgUXROZXR3b3JrUmVwbHlUaHJl
YWRTYWZlUHJveHk6OmxvY2FsTWlycm9yTWVtYmVycygpCiAgICAgZm9yZWFjaCAoY29uc3QgUUJ5
dGVBcnJheSYgaGVhZGVyTmFtZSwgbV9yZXBseS0+cmF3SGVhZGVyTGlzdCgpKQogICAgICAgICBt
X3Jhd0hlYWRlclBhaXJzLmFwcGVuZChSYXdIZWFkZXJQYWlyKGhlYWRlck5hbWUsIG1fcmVwbHkt
PnJhd0hlYWRlcihoZWFkZXJOYW1lKSkpOwogI2VuZGlmCisgICAgbV9maW5pc2hlZCA9IHRydWU7
CiB9CiAKIHZvaWQgUXROZXR3b3JrUmVwbHlUaHJlYWRTYWZlUHJveHk6OmxvY2FsU2V0UmVwbHko
UU5ldHdvcmtSZXBseSAqcmVwbHkpCkBAIC0xOTYsMTQgKzIwMSwyMSBAQCB2b2lkIFF0TmV0d29y
a1JlcGx5VGhyZWFkU2FmZVByb3h5Ojpsb2NhbFNldFJlcGx5KFFOZXR3b3JrUmVwbHkgKnJlcGx5
KQogICAgIEFTU0VSVCghbV9yZXBseSk7CiAgICAgbV9yZXBseSA9IHJlcGx5OwogICAgIG1fcmVw
bHktPnNldFBhcmVudCgwKTsKLSAgICBjb25uZWN0KG1fcmVwbHksIFNJR05BTChyZWFkeVJlYWQo
KSksIHRoaXMsIFNMT1QobG9jYWxGb3J3YXJkRGF0YSgpKSk7Ci0gICAgLy8gTWFrZSBzdXJlIGxv
Y2FsTWlycm9yTWVtYmVycygpIGlzIGNhbGxlZCBiZWZvcmUgdGhlIG91dHdhcmQgc2lnbmFsCi0g
ICAgY29ubmVjdChtX3JlcGx5LCBTSUdOQUwoZmluaXNoZWQoKSksIHRoaXMsIFNMT1QobG9jYWxN
aXJyb3JNZW1iZXJzKCkpLCBRdDo6RGlyZWN0Q29ubmVjdGlvbik7Ci0gICAgY29ubmVjdChtX3Jl
cGx5LCBTSUdOQUwoZmluaXNoZWQoKSksIHRoaXMsIFNJR05BTChmaW5pc2hlZCgpKSk7Ci0gICAg
Ly8gTWFrZSBzdXJlIGxvY2FsTWlycm9yTWVtYmVycygpIGlzIGNhbGxlZCBiZWZvcmUgdGhlIG91
dHdhcmQgc2lnbmFsCi0gICAgY29ubmVjdChtX3JlcGx5LCBTSUdOQUwobWV0YURhdGFDaGFuZ2Vk
KCkpLCB0aGlzLCBTTE9UKGxvY2FsTWlycm9yTWVtYmVycygpKSwgUXQ6OkRpcmVjdENvbm5lY3Rp
b24pOwotICAgIGNvbm5lY3QobV9yZXBseSwgU0lHTkFMKG1ldGFEYXRhQ2hhbmdlZCgpKSwgdGhp
cywgU0lHTkFMKG1ldGFEYXRhQ2hhbmdlZCgpKSk7Ci0gICAgY29ubmVjdChtX3JlcGx5LCBTSUdO
QUwodXBsb2FkUHJvZ3Jlc3MocWludDY0LCBxaW50NjQpKSwgdGhpcywgU0lHTkFMKHVwbG9hZFBy
b2dyZXNzKHFpbnQ2NCwgcWludDY0KSkpOworICAgIC8vIEZvciBzeW5jaHJvbm91cyBjYWxscywg
dGhlIHJlcGx5IHdpbGwgYmUgZmluaXNoZWQgYnkgbm93LgorICAgIGlmIChtX2Jsb2NraW5nICYm
IG1fcmVwbHktPmlzRmluaXNoZWQoKSkgeworICAgICAgICBsb2NhbE1pcnJvck1lbWJlcnMoKTsK
KyAgICAgICAgbG9jYWxGb3J3YXJkRGF0YSgpOworICAgICAgICBRTWV0YU9iamVjdDo6aW52b2tl
TWV0aG9kKHRoaXMsICJlbWl0RmluaXNoZWQiLCBRdDo6UXVldWVkQ29ubmVjdGlvbik7CisgICAg
fSBlbHNlIHsKKyAgICAgICAgY29ubmVjdChtX3JlcGx5LCBTSUdOQUwocmVhZHlSZWFkKCkpLCB0
aGlzLCBTTE9UKGxvY2FsRm9yd2FyZERhdGEoKSkpOworICAgICAgICAvLyBNYWtlIHN1cmUgbG9j
YWxNaXJyb3JNZW1iZXJzKCkgaXMgY2FsbGVkIGJlZm9yZSB0aGUgb3V0d2FyZCBzaWduYWwKKyAg
ICAgICAgY29ubmVjdChtX3JlcGx5LCBTSUdOQUwoZmluaXNoZWQoKSksIHRoaXMsIFNMT1QobG9j
YWxNaXJyb3JNZW1iZXJzKCkpLCBRdDo6RGlyZWN0Q29ubmVjdGlvbik7CisgICAgICAgIGNvbm5l
Y3QobV9yZXBseSwgU0lHTkFMKGZpbmlzaGVkKCkpLCB0aGlzLCBTSUdOQUwoZmluaXNoZWQoKSkp
OworICAgICAgICAvLyBNYWtlIHN1cmUgbG9jYWxNaXJyb3JNZW1iZXJzKCkgaXMgY2FsbGVkIGJl
Zm9yZSB0aGUgb3V0d2FyZCBzaWduYWwKKyAgICAgICAgY29ubmVjdChtX3JlcGx5LCBTSUdOQUwo
bWV0YURhdGFDaGFuZ2VkKCkpLCB0aGlzLCBTTE9UKGxvY2FsTWlycm9yTWVtYmVycygpKSwgUXQ6
OkRpcmVjdENvbm5lY3Rpb24pOworICAgICAgICBjb25uZWN0KG1fcmVwbHksIFNJR05BTChtZXRh
RGF0YUNoYW5nZWQoKSksIHRoaXMsIFNJR05BTChtZXRhRGF0YUNoYW5nZWQoKSkpOworICAgICAg
ICBjb25uZWN0KG1fcmVwbHksIFNJR05BTCh1cGxvYWRQcm9ncmVzcyhxaW50NjQsIHFpbnQ2NCkp
LCB0aGlzLCBTSUdOQUwodXBsb2FkUHJvZ3Jlc3MocWludDY0LCBxaW50NjQpKSk7CisgICAgfQog
fQogCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvcXQvUXRO
QU1UaHJlYWRTYWZlUHJveHkuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvcXQv
UXROQU1UaHJlYWRTYWZlUHJveHkuaAppbmRleCA0OTA2ZmUyLi43YTM4YmY2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3F0L1F0TkFNVGhyZWFkU2FmZVByb3h5
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9xdC9RdE5BTVRocmVhZFNh
ZmVQcm94eS5oCkBAIC05Miw3ICs5Miw3IEBAIGNsYXNzIFF0TmV0d29ya1JlcGx5VGhyZWFkU2Fm
ZVByb3h5IDogcHVibGljIFFPYmplY3QgewogICAgIFFfT0JKRUNUCiBwdWJsaWM6CiAgICAgdHlw
ZWRlZiBRUGFpcjxRQnl0ZUFycmF5LCBRQnl0ZUFycmF5PiBSYXdIZWFkZXJQYWlyOwotICAgIFF0
TmV0d29ya1JlcGx5VGhyZWFkU2FmZVByb3h5KFFOZXR3b3JrQWNjZXNzTWFuYWdlciAqbWFuYWdl
cik7CisgICAgUXROZXR3b3JrUmVwbHlUaHJlYWRTYWZlUHJveHkoUU5ldHdvcmtBY2Nlc3NNYW5h
Z2VyICptYW5hZ2VyLCBib29sIGlzU3luY2hyb25vdXMpOwogICAgIH5RdE5ldHdvcmtSZXBseVRo
cmVhZFNhZmVQcm94eSgpOwogICAgIHZvaWQgYWJvcnQoKQogICAgIHsKQEAgLTExMyw2ICsxMTMs
NyBAQCBwdWJsaWM6CiAgICAgUVVybCB1cmwoKSB7IFFNdXRleExvY2tlciBsb2NrKCZtX21pcnJv
cmVkTWVtYmVyc011dGV4KTsgcmV0dXJuIG1fdXJsOyB9CiAgICAgUVVybCByZWRpcmVjdGlvblRh
cmdldCgpIHsgUU11dGV4TG9ja2VyIGxvY2soJm1fbWlycm9yZWRNZW1iZXJzTXV0ZXgpOyByZXR1
cm4gbV9yZWRpcmVjdGlvblRhcmdldDsgfQogICAgIFFMaXN0PFJhd0hlYWRlclBhaXI+IHJhd0hl
YWRlclBhaXJzKCkgeyBRTXV0ZXhMb2NrZXIgbG9jaygmbV9taXJyb3JlZE1lbWJlcnNNdXRleCk7
IHJldHVybiBtX3Jhd0hlYWRlclBhaXJzOyB9CisgICAgYm9vbCBpc0ZpbmlzaGVkKCkgeyBRTXV0
ZXhMb2NrZXIgbG9jaygmbV9taXJyb3JlZE1lbWJlcnNNdXRleCk7IHJldHVybiBtX2ZpbmlzaGVk
OyB9CiAKICAgICBRTmV0d29ya1JlcGx5KiByZXBseSgpCiAgICAgewpAQCAtMTc4LDYgKzE3OSw4
IEBAIHByaXZhdGUgc2xvdHM6CiBwcml2YXRlOgogICAgIHZvaWQgbG9jYWxTZXRSZXBseShRTmV0
d29ya1JlcGx5ICpyZXBseSk7CiAKKyAgICBRX0lOVk9LQUJMRSB2b2lkIGVtaXRGaW5pc2hlZCgp
IHsgZW1pdCBmaW5pc2hlZCgpOyB9CisKICAgICBRTmV0d29ya0FjY2Vzc01hbmFnZXIgKm1fbWFu
YWdlcjsKICAgICBRTmV0d29ya1JlcGx5ICptX3JlcGx5OwogICAgIGJvb2wgbV9mb3J3YXJkaW5n
RGVmZXJlZDsKQEAgLTE5NCw2ICsxOTcsOCBAQCBwcml2YXRlOgogICAgIFFVcmwgbV91cmw7CiAg
ICAgUVVybCBtX3JlZGlyZWN0aW9uVGFyZ2V0OwogICAgIFFMaXN0PFJhd0hlYWRlclBhaXI+IG1f
cmF3SGVhZGVyUGFpcnM7CisgICAgYm9vbCBtX2ZpbmlzaGVkOworICAgIGJvb2wgbV9ibG9ja2lu
ZzsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
cXQvUmVzb3VyY2VIYW5kbGVRdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L3F0L1Jlc291cmNlSGFuZGxlUXQuY3BwCmluZGV4IDU2MTI1YjcuLmQ4YjkwNjQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvcXQvUmVzb3VyY2VIYW5kbGVRdC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9xdC9SZXNvdXJjZUhhbmRs
ZVF0LmNwcApAQCAtNzAsMTQgKzcwLDE4IEBAIHB1YmxpYzoKICAgICBSZXNvdXJjZUVycm9yIHJl
c291cmNlRXJyb3IoKSBjb25zdCB7IHJldHVybiBtX2Vycm9yOyB9CiAgICAgVmVjdG9yPGNoYXI+
IGRhdGEoKSBjb25zdCB7IHJldHVybiBtX2RhdGE7IH0KIAorICAgIHZvaWQgc2V0UmVwbHlGaW5p
c2hlZChib29sIGZpbmlzaGVkKSB7IG1fcmVwbHlGaW5pc2hlZCA9IGZpbmlzaGVkOyB9CisKIHBy
aXZhdGU6CiAgICAgUmVzb3VyY2VSZXNwb25zZSBtX3Jlc3BvbnNlOwogICAgIFJlc291cmNlRXJy
b3IgbV9lcnJvcjsKICAgICBWZWN0b3I8Y2hhcj4gbV9kYXRhOwogICAgIFFFdmVudExvb3AgbV9l
dmVudExvb3A7CisgICAgYm9vbCBtX3JlcGx5RmluaXNoZWQ7CiB9OwogCiBXZWJDb3JlU3luY2hy
b25vdXNMb2FkZXI6OldlYkNvcmVTeW5jaHJvbm91c0xvYWRlcigpCisgICAgICAgIDogbV9yZXBs
eUZpbmlzaGVkKGZhbHNlKQogewogfQogCkBAIC05MywxMyArOTcsMTUgQEAgdm9pZCBXZWJDb3Jl
U3luY2hyb25vdXNMb2FkZXI6OmRpZFJlY2VpdmVEYXRhKFJlc291cmNlSGFuZGxlKiwgY29uc3Qg
Y2hhciogZGF0YSwKIAogdm9pZCBXZWJDb3JlU3luY2hyb25vdXNMb2FkZXI6OmRpZEZpbmlzaExv
YWRpbmcoUmVzb3VyY2VIYW5kbGUqLCBkb3VibGUpCiB7Ci0gICAgbV9ldmVudExvb3AuZXhpdCgp
OworICAgIGlmICghbV9yZXBseUZpbmlzaGVkKQorICAgICAgICBtX2V2ZW50TG9vcC5leGl0KCk7
CiB9CiAKIHZvaWQgV2ViQ29yZVN5bmNocm9ub3VzTG9hZGVyOjpkaWRGYWlsKFJlc291cmNlSGFu
ZGxlKiwgY29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3IpCiB7CiAgICAgbV9lcnJvciA9IGVycm9y
OwotICAgIG1fZXZlbnRMb29wLmV4aXQoKTsKKyAgICBpZiAoIW1fcmVwbHlGaW5pc2hlZCkKKyAg
ICAgICAgbV9ldmVudExvb3AuZXhpdCgpOwogfQogCiB2b2lkIFdlYkNvcmVTeW5jaHJvbm91c0xv
YWRlcjo6d2FpdEZvckNvbXBsZXRpb24oKQpAQCAtMTk1LDkgKzIwMSwxMyBAQCB2b2lkIFJlc291
cmNlSGFuZGxlOjpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KE5ldHdvcmtpbmdDb250ZXh0KiBj
b250ZXh0LCBjb25zdAogICAgICAgICBkLT5tX2ZpcnN0UmVxdWVzdC5zZXRVUkwodXJsV2l0aENy
ZWRlbnRpYWxzKTsKICAgICB9CiAgICAgZC0+bV9jb250ZXh0ID0gY29udGV4dDsKLSAgICBkLT5t
X2pvYiA9IG5ldyBRTmV0d29ya1JlcGx5SGFuZGxlcihoYW5kbGUuZ2V0KCksIFFOZXR3b3JrUmVw
bHlIYW5kbGVyOjpMb2FkTm9ybWFsKTsKKyAgICBkLT5tX2pvYiA9IG5ldyBRTmV0d29ya1JlcGx5
SGFuZGxlcihoYW5kbGUuZ2V0KCksIFFOZXR3b3JrUmVwbHlIYW5kbGVyOjpMb2FkU3luY2hyb25v
dXNseSk7CiAKLSAgICBzeW5jTG9hZGVyLndhaXRGb3JDb21wbGV0aW9uKCk7CisgICAgLy8gV2hl
biB1c2luZyBzeW5jaHJvbm91cyBjYWxscywgd2UgYXJlIGZpbmlzaGVkIHdoZW4gcmVhY2hpbmcg
dGhpcyBwb2ludC4KKyAgICBpZiAoZC0+bV9qb2ItPnJlcGx5KCktPmlzRmluaXNoZWQoKSkKKyAg
ICAgICAgc3luY0xvYWRlci5zZXRSZXBseUZpbmlzaGVkKHRydWUpOworICAgIGVsc2UKKyAgICAg
ICAgc3luY0xvYWRlci53YWl0Rm9yQ29tcGxldGlvbigpOwogICAgIGVycm9yID0gc3luY0xvYWRl
ci5yZXNvdXJjZUVycm9yKCk7CiAgICAgZGF0YSA9IHN5bmNMb2FkZXIuZGF0YSgpOwogICAgIHJl
c3BvbnNlID0gc3luY0xvYWRlci5yZXNvdXJjZVJlc3BvbnNlKCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>83942</attachid>
            <date>2011-02-26 07:45:08 -0800</date>
            <delta_ts>2011-02-26 09:12:40 -0800</delta_ts>
            <desc>Proposed patch</desc>
            <filename>bug-37191.diff</filename>
            <type>text/plain</type>
            <size>5876</size>
            <attacher name="Andreas Kling">kling</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAyYTA4M2UzLi4xYWNmMWI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjcg
QEAKKzIwMTEtMDItMjYgIEFuZHJlYXMgS2xpbmcgIDxrbGluZ0B3ZWJraXQub3JnPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtRdF0gRW5hYmxlIHVz
YWdlIG9mIHN5bmNocm9ub3VzIEhUVFAgZmVhdHVyZSBpbiBRdAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzcxOTEKKworICAgICAgICBDdXJyZW50bHks
IHdlIHNwaW4gYW4gZXZlbnQgbG9vcCB3aGVuIGRvaW5nIHN5bmNocm9ub3VzIGNhbGxzIHRvCisg
ICAgICAgIHdhaXQgZm9yIGNvbXBsZXRpb24uIFRoaXMgcGF0Y2ggdXNlcyBzeW5jaHJvbm91cyBy
ZXF1ZXN0cyBpbiBRdCwKKyAgICAgICAgaWYgYXZhaWxhYmxlLCBhbmQgc3BpbnMgdGhlIGV2ZW50
IGxvb3AgYXMgYSBmYWxsYmFjayBzb2x1dGlvbi4KKworICAgICAgICBCYXNlZCBvbiB3b3JrIGJ5
IFNpbW9uIEhhdXNtYW5uIGFuZCBQZXRlciBIYXJ0bWFubi4KKworICAgICAgICAqIHBsYXRmb3Jt
L25ldHdvcmsvcXQvUU5ldHdvcmtSZXBseUhhbmRsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
UU5ldHdvcmtSZXBseUhhbmRsZXI6OlFOZXR3b3JrUmVwbHlIYW5kbGVyKToKKyAgICAgICAgKFdl
YkNvcmU6OlFOZXR3b3JrUmVwbHlIYW5kbGVyOjpzdGFydCk6CisgICAgICAgICogcGxhdGZvcm0v
bmV0d29yay9xdC9RTmV0d29ya1JlcGx5SGFuZGxlci5oOgorICAgICAgICAqIHBsYXRmb3JtL25l
dHdvcmsvcXQvUmVzb3VyY2VIYW5kbGVRdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJDb3Jl
U3luY2hyb25vdXNMb2FkZXI6OnNldFJlcGx5RmluaXNoZWQpOgorICAgICAgICAoV2ViQ29yZTo6
V2ViQ29yZVN5bmNocm9ub3VzTG9hZGVyOjpXZWJDb3JlU3luY2hyb25vdXNMb2FkZXIpOgorICAg
ICAgICAoV2ViQ29yZTo6V2ViQ29yZVN5bmNocm9ub3VzTG9hZGVyOjpkaWRGaW5pc2hMb2FkaW5n
KToKKyAgICAgICAgKFdlYkNvcmU6OldlYkNvcmVTeW5jaHJvbm91c0xvYWRlcjo6ZGlkRmFpbCk6
CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6bG9hZFJlc291cmNlU3luY2hyb25v
dXNseSk6CisKIDIwMTEtMDItMjYgIEVyaWMgU2VpZGVsICA8ZXJpY0B3ZWJraXQub3JnPgogCiAg
ICAgICAgIFJldmlld2VkIGJ5IE1hY2llaiBTdGFjaG93aWFrLgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9xdC9RTmV0d29ya1JlcGx5SGFuZGxlci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3F0L1FOZXR3b3JrUmVwbHlIYW5kbGVyLmNw
cAppbmRleCA0MDY0ZDlhLi42MWZlOTZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL3F0L1FOZXR3b3JrUmVwbHlIYW5kbGVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL3F0L1FOZXR3b3JrUmVwbHlIYW5kbGVyLmNwcApAQCAtNTEs
NiArNTEsMTAgQEAKICNkZWZpbmUgU0lHTkFMX0NPTk4gUXQ6OlF1ZXVlZENvbm5lY3Rpb24KICNl
bmRpZgogCisvLyBJbiBRdCA0LjgsIHRoZSBhdHRyaWJ1dGUgZm9yIHNlbmRpbmcgYSByZXF1ZXN0
IHN5bmNocm9ub3VzbHkgd2lsbCBiZSBtYWRlIHB1YmxpYywKKy8vIGZvciBub3csIHVzZSB0aGlz
IGhhY2tpc2ggc29sdXRpb24gZm9yIHNldHRpbmcgdGhlIGludGVybmFsIGF0dHJpYnV0ZS4KK2Nv
bnN0IFFOZXR3b3JrUmVxdWVzdDo6QXR0cmlidXRlIGdTeW5jaHJvbm91c05ldHdvcmtSZXF1ZXN0
QXR0cmlidXRlID0gc3RhdGljX2Nhc3Q8UU5ldHdvcmtSZXF1ZXN0OjpBdHRyaWJ1dGU+KFFOZXR3
b3JrUmVxdWVzdDo6SHR0cFBpcGVsaW5pbmdXYXNVc2VkQXR0cmlidXRlICsgNyk7CisKIHN0YXRp
YyBjb25zdCBpbnQgZ01heFJlY3Vyc2lvbkxpbWl0ID0gMTA7CiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKQEAgLTIxOCw4ICsyMjIsMTQgQEAgUU5ldHdvcmtSZXBseUhhbmRsZXI6OlFOZXR3b3JrUmVw
bHlIYW5kbGVyKFJlc291cmNlSGFuZGxlKiBoYW5kbGUsIExvYWRNb2RlIGxvYWQKIAogICAgIG1f
cmVxdWVzdCA9IHIudG9OZXR3b3JrUmVxdWVzdChvcmlnaW5hdGluZ09iamVjdCk7CiAKLSAgICBp
ZiAobV9sb2FkTW9kZSA9PSBMb2FkTm9ybWFsKQorICAgIGlmIChtX2xvYWRNb2RlID09IExvYWRT
eW5jaHJvbm91c2x5KQorICAgICAgICBtX3JlcXVlc3Quc2V0QXR0cmlidXRlKGdTeW5jaHJvbm91
c05ldHdvcmtSZXF1ZXN0QXR0cmlidXRlLCB0cnVlKTsKKworICAgIGlmIChtX2xvYWRNb2RlID09
IExvYWROb3JtYWwgfHwgbV9sb2FkTW9kZSA9PSBMb2FkU3luY2hyb25vdXNseSkKICAgICAgICAg
c3RhcnQoKTsKKworICAgIGlmIChtX2xvYWRNb2RlID09IExvYWRTeW5jaHJvbm91c2x5KQorICAg
ICAgICBtX2xvYWRNb2RlID0gTG9hZE5vcm1hbDsKIH0KIAogdm9pZCBRTmV0d29ya1JlcGx5SGFu
ZGxlcjo6c2V0TG9hZE1vZGUoTG9hZE1vZGUgbW9kZSkKQEAgLTU0OCw2ICs1NTgsMTEgQEAgdm9p
ZCBRTmV0d29ya1JlcGx5SGFuZGxlcjo6c3RhcnQoKQogCiAgICAgbV9yZXBseS0+c2V0UGFyZW50
KHRoaXMpOwogCisgICAgaWYgKG1fbG9hZE1vZGUgPT0gTG9hZFN5bmNocm9ub3VzbHkgJiYgbV9y
ZXBseS0+aXNGaW5pc2hlZCgpKSB7CisgICAgICAgIC8vIElmIHN1cHBvcnRlZCwgYSBzeW5jaHJv
bm91cyByZXF1ZXN0IHdpbGwgYmUgZmluaXNoZWQgYXQgdGhpcyBwb2ludCwgbm8gbmVlZCB0byBo
b29rIHVwIHRoZSBzaWduYWxzLgorICAgICAgICByZXR1cm47CisgICAgfQorCiAgICAgY29ubmVj
dChtX3JlcGx5LCBTSUdOQUwoZmluaXNoZWQoKSksCiAgICAgICAgICAgICB0aGlzLCBTTE9UKGZp
bmlzaCgpKSwgU0lHTkFMX0NPTk4pOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL3F0L1FOZXR3b3JrUmVwbHlIYW5kbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL3F0L1FOZXR3b3JrUmVwbHlIYW5kbGVyLmgKaW5kZXggMTkwZjU5Zi4u
OGM5YmQwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9xdC9R
TmV0d29ya1JlcGx5SGFuZGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvcXQvUU5ldHdvcmtSZXBseUhhbmRsZXIuaApAQCAtNDIsNyArNDIsOCBAQCBwdWJsaWM6CiAg
ICAgZW51bSBMb2FkTW9kZSB7CiAgICAgICAgIExvYWROb3JtYWwsCiAgICAgICAgIExvYWREZWZl
cnJlZCwKLSAgICAgICAgTG9hZFJlc3VtaW5nCisgICAgICAgIExvYWRSZXN1bWluZywKKyAgICAg
ICAgTG9hZFN5bmNocm9ub3VzbHkKICAgICB9OwogCiAgICAgUU5ldHdvcmtSZXBseUhhbmRsZXIo
UmVzb3VyY2VIYW5kbGUgKmhhbmRsZSwgTG9hZE1vZGUpOwpAQCAtNTcsNyArNTgsNyBAQCBwdWJs
aWM6CiBzaWduYWxzOgogICAgIHZvaWQgcHJvY2Vzc1F1ZXVlZEl0ZW1zKCk7CiAKLXByaXZhdGUg
c2xvdHM6CitwdWJsaWMgc2xvdHM6CiAgICAgdm9pZCBmaW5pc2goKTsKICAgICB2b2lkIHNlbmRS
ZXNwb25zZUlmTmVlZGVkKCk7CiAgICAgdm9pZCBmb3J3YXJkRGF0YSgpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9xdC9SZXNvdXJjZUhhbmRsZVF0LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvcXQvUmVzb3VyY2VIYW5kbGVRdC5jcHAK
aW5kZXggMzc5NTkxOC4uY2QxNzY2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9xdC9SZXNvdXJjZUhhbmRsZVF0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL3F0L1Jlc291cmNlSGFuZGxlUXQuY3BwCkBAIC02OSwxNCArNjksMTgg
QEAgcHVibGljOgogICAgIFJlc291cmNlRXJyb3IgcmVzb3VyY2VFcnJvcigpIGNvbnN0IHsgcmV0
dXJuIG1fZXJyb3I7IH0KICAgICBWZWN0b3I8Y2hhcj4gZGF0YSgpIGNvbnN0IHsgcmV0dXJuIG1f
ZGF0YTsgfQogCisgICAgdm9pZCBzZXRSZXBseUZpbmlzaGVkKGJvb2wgZmluaXNoZWQpIHsgbV9y
ZXBseUZpbmlzaGVkID0gZmluaXNoZWQ7IH0KKwogcHJpdmF0ZToKICAgICBSZXNvdXJjZVJlc3Bv
bnNlIG1fcmVzcG9uc2U7CiAgICAgUmVzb3VyY2VFcnJvciBtX2Vycm9yOwogICAgIFZlY3Rvcjxj
aGFyPiBtX2RhdGE7CiAgICAgUUV2ZW50TG9vcCBtX2V2ZW50TG9vcDsKKyAgICBib29sIG1fcmVw
bHlGaW5pc2hlZDsKIH07CiAKIFdlYkNvcmVTeW5jaHJvbm91c0xvYWRlcjo6V2ViQ29yZVN5bmNo
cm9ub3VzTG9hZGVyKCkKKyAgICAgICAgOiBtX3JlcGx5RmluaXNoZWQoZmFsc2UpCiB7CiB9CiAK
QEAgLTkyLDEzICs5NiwxNSBAQCB2b2lkIFdlYkNvcmVTeW5jaHJvbm91c0xvYWRlcjo6ZGlkUmVj
ZWl2ZURhdGEoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBjaGFyKiBkYXRhLAogCiB2b2lkIFdlYkNv
cmVTeW5jaHJvbm91c0xvYWRlcjo6ZGlkRmluaXNoTG9hZGluZyhSZXNvdXJjZUhhbmRsZSosIGRv
dWJsZSkKIHsKLSAgICBtX2V2ZW50TG9vcC5leGl0KCk7CisgICAgaWYgKCFtX3JlcGx5RmluaXNo
ZWQpCisgICAgICAgIG1fZXZlbnRMb29wLmV4aXQoKTsKIH0KIAogdm9pZCBXZWJDb3JlU3luY2hy
b25vdXNMb2FkZXI6OmRpZEZhaWwoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBSZXNvdXJjZUVycm9y
JiBlcnJvcikKIHsKICAgICBtX2Vycm9yID0gZXJyb3I7Ci0gICAgbV9ldmVudExvb3AuZXhpdCgp
OworICAgIGlmICghbV9yZXBseUZpbmlzaGVkKQorICAgICAgICBtX2V2ZW50TG9vcC5leGl0KCk7
CiB9CiAKIHZvaWQgV2ViQ29yZVN5bmNocm9ub3VzTG9hZGVyOjp3YWl0Rm9yQ29tcGxldGlvbigp
CkBAIC0yMDEsOSArMjA3LDE3IEBAIHZvaWQgUmVzb3VyY2VIYW5kbGU6OmxvYWRSZXNvdXJjZVN5
bmNocm9ub3VzbHkoTmV0d29ya2luZ0NvbnRleHQqIGNvbnRleHQsIGNvbnN0CiAgICAgICAgIGQt
Pm1fZmlyc3RSZXF1ZXN0LnNldFVSTCh1cmxXaXRoQ3JlZGVudGlhbHMpOwogICAgIH0KICAgICBk
LT5tX2NvbnRleHQgPSBjb250ZXh0OwotICAgIGQtPm1fam9iID0gbmV3IFFOZXR3b3JrUmVwbHlI
YW5kbGVyKGhhbmRsZS5nZXQoKSwgUU5ldHdvcmtSZXBseUhhbmRsZXI6OkxvYWROb3JtYWwpOwor
ICAgIGQtPm1fam9iID0gbmV3IFFOZXR3b3JrUmVwbHlIYW5kbGVyKGhhbmRsZS5nZXQoKSwgUU5l
dHdvcmtSZXBseUhhbmRsZXI6OkxvYWRTeW5jaHJvbm91c2x5KTsKKworICAgIFFOZXR3b3JrUmVw
bHkqIHJlcGx5ID0gZC0+bV9qb2ItPnJlcGx5KCk7CisgICAgLy8gV2hlbiB1c2luZyBzeW5jaHJv
bm91cyBjYWxscywgd2UgYXJlIGZpbmlzaGVkIHdoZW4gcmVhY2hpbmcgdGhpcyBwb2ludC4KKyAg
ICBpZiAocmVwbHktPmlzRmluaXNoZWQoKSkgeworICAgICAgICBzeW5jTG9hZGVyLnNldFJlcGx5
RmluaXNoZWQodHJ1ZSk7CisgICAgICAgIGQtPm1fam9iLT5mb3J3YXJkRGF0YSgpOworICAgICAg
ICBkLT5tX2pvYi0+ZmluaXNoKCk7CisgICAgfSBlbHNlCisgICAgICAgIHN5bmNMb2FkZXIud2Fp
dEZvckNvbXBsZXRpb24oKTsKIAotICAgIHN5bmNMb2FkZXIud2FpdEZvckNvbXBsZXRpb24oKTsK
ICAgICBlcnJvciA9IHN5bmNMb2FkZXIucmVzb3VyY2VFcnJvcigpOwogICAgIGRhdGEgPSBzeW5j
TG9hZGVyLmRhdGEoKTsKICAgICByZXNwb25zZSA9IHN5bmNMb2FkZXIucmVzb3VyY2VSZXNwb25z
ZSgpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>