<?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>72227</bug_id>
          
          <creation_ts>2011-11-13 10:42:45 -0800</creation_ts>
          <short_desc>[GTK] improve platformSetDefersLoading</short_desc>
          <delta_ts>2011-11-16 10:21:08 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKitGTK</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</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>
          <dependson>71611</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Dan Winship">danw</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>mrobinson</cc>
    
    <cc>pnormand</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>501524</commentid>
    <comment_count>0</comment_count>
    <who name="Dan Winship">danw</who>
    <bug_when>2011-11-13 10:42:45 -0800</bug_when>
    <thetext>ResourceHandleSoup currently implements defersLoading by calling soup_session_pause_message()/soup_session_unpause_message(), which is bad because that API sucks, and because SoupHTTPInputStream also uses it internally, and ResourceHandleSoup&apos;s use of it interferes with libsoup&apos;s, and complicates SoupHTTPInputStream because it has to deal with receiving input even when it thought the message was paused.

This patch fixes that. It&apos;s built on top of the bug 71611 patches, although I think it could be rebased away from that pretty easily if we wanted to land it before that.

This patch also makes defersLoading work for non-http URIs, which didn&apos;t work before... I looked through the skipped tests list, but I couldn&apos;t find any that looked like they were being skipped because of that. Maybe we need a new one?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>501525</commentid>
    <comment_count>1</comment_count>
      <attachid>114861</attachid>
    <who name="Dan Winship">danw</who>
    <bug_when>2011-11-13 10:46:05 -0800</bug_when>
    <thetext>Created attachment 114861
Fix platformDefersLoading</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>501594</commentid>
    <comment_count>2</comment_count>
      <attachid>114861</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2011-11-13 20:32:50 -0800</bug_when>
    <thetext>Comment on attachment 114861
Fix platformDefersLoading

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

I really like how this patch removes a lot of hacks for using soup_session_(un)pause_message. A couple comments follow.

&gt; Source/WebCore/ChangeLog:9
&gt; +        No new tests. (OOPS!)

You&apos;ll need to remove the OOPS here for the cq to land this patch. You can just say something like, &quot;No new tests. This is covered by existing tests.&quot;

&gt; Source/WebCore/platform/network/soup/ResourceHandleSoup.cpp:564
&gt;          return;

It seems like there&apos;s nothing now to do in this method if defersLoading == true? If so, you can do an early return right away and avoid all the other checking later.

&gt; Source/WebCore/platform/network/soup/ResourceHandleSoup.cpp:567
&gt; +    // Requests that haven&apos;t yet been sent
&gt; +    if (!d-&gt;m_cancellable) {

I think it makes sense to actually remove the comment and add a helper that makes this check explicit. You might do something like static bool requestStarted(...). It makes sense to have a canonical idea of when the request has started.

&gt; Source/WebCore/platform/network/soup/ResourceHandleSoup.cpp:578
&gt; +    // Do not pause or unpause operations that have not reached sendRequestCallback yet.
&gt; +    // If m_defersLoading is true at that point, we&apos;ll pause.
&gt;      if (!d-&gt;m_inputStream)
&gt;          return;

This check existed only because calling soup_session_pause_message at the wrong time led to CRITICAL warnings. I&apos;m pretty sure you can remove it competely now.

&gt; Source/WebCore/platform/network/soup/ResourceHandleSoup.cpp:582
&gt; +        GRefPtr&lt;GAsyncResult&gt; asyncResult = d-&gt;m_deferredResult;
&gt; +        d-&gt;m_deferredResult = 0;

I think you can just do: RefPtr&lt;GAsyncResult&gt; asyncResult = adoptGRef(d-&gt;m_deferredResult.leakRef());</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>501595</commentid>
    <comment_count>3</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2011-11-13 20:33:41 -0800</bug_when>
    <thetext>Philippe can you verify that &quot;emulating&quot; a message pause still fulfills the needs of the GStreamer backend.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>501728</commentid>
    <comment_count>4</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2011-11-14 01:50:29 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; Philippe can you verify that &quot;emulating&quot; a message pause still fulfills the needs of the GStreamer backend.

I tested the patches, haven&apos;t found any regression media playback-wise, I did some functional testing and tried the layout tests as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>501851</commentid>
    <comment_count>5</comment_count>
    <who name="Dan Winship">danw</who>
    <bug_when>2011-11-14 06:10:37 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; &gt; +        No new tests. (OOPS!)
&gt; 
&gt; You&apos;ll need to remove the OOPS here for the cq to land this patch. You can just say something like, &quot;No new tests. This is covered by existing tests.&quot;

Yeah, that was intentional:

&gt; This patch also makes defersLoading work for non-http URIs, which
&gt; didn&apos;t work before... I looked through the skipped tests list, but
&gt; I couldn&apos;t find any that looked like they were being skipped because
&gt; of that. Maybe we need a new one?


&gt; It seems like there&apos;s nothing now to do in this method if defersLoading == true?

&gt; This check existed only because calling soup_session_pause_message at the wrong time led to CRITICAL warnings. I&apos;m pretty sure you can remove it competely now.

Ah, yeah. Cruft from earlier versions of the patch.

&gt; &gt; +        GRefPtr&lt;GAsyncResult&gt; asyncResult = d-&gt;m_deferredResult;
&gt; &gt; +        d-&gt;m_deferredResult = 0;
&gt; 
&gt; I think you can just do: RefPtr&lt;GAsyncResult&gt; asyncResult = adoptGRef(d-&gt;m_deferredResult.leakRef());

OK. But is that actually nicer? :)

Is http://www.webkit.org/coding/RefPtr.html out of date? Or does GRefPtr intentionally not work like RefPtr? I originally tried

    GRefPtr&lt;GAsyncResult&gt; asyncResult = d-&gt;m_deferredResult.release();

but GRefPtr doesn&apos;t have release() (and the docs on the RefPtr page say that leakRef() only exists on PassRefPtr)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>502056</commentid>
    <comment_count>6</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2011-11-14 10:24:06 -0800</bug_when>
    <thetext>(In reply to comment #5)

&gt; Is http://www.webkit.org/coding/RefPtr.html out of date? Or does GRefPtr intentionally not work like RefPtr? I originally tried
&gt; 
&gt;     GRefPtr&lt;GAsyncResult&gt; asyncResult = d-&gt;m_deferredResult.release();
&gt;
&gt; but GRefPtr doesn&apos;t have release() (and the docs on the RefPtr page say that leakRef() only exists on PassRefPtr)

Oh. I think that GRefPtr is missing the release method? That you needed it here indicates that it should probably have it. Do you mind adding it with your patch and using it? GRefPtr just lags behind RefPtr feature-wise.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>502916</commentid>
    <comment_count>7</comment_count>
    <who name="Dan Winship">danw</who>
    <bug_when>2011-11-15 08:15:59 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; Oh. I think that GRefPtr is missing the release method? That you needed it here indicates that it should probably have it. Do you mind adding it with your patch and using it? GRefPtr just lags behind RefPtr feature-wise.

Hm... RefPtr.release() returns a PassRefPtr, but there&apos;s no GPassRefPtr.

The docs say &quot;If ownership and lifetime are guaranteed, a local variable can be a raw pointer.&quot; So I just did that (with leakRef).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>502917</commentid>
    <comment_count>8</comment_count>
      <attachid>115169</attachid>
    <who name="Dan Winship">danw</who>
    <bug_when>2011-11-15 08:16:25 -0800</bug_when>
    <thetext>Created attachment 115169
updated patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>502918</commentid>
    <comment_count>9</comment_count>
    <who name="Dan Winship">danw</who>
    <bug_when>2011-11-15 08:16:41 -0800</bug_when>
    <thetext>oh, that&apos;s rebased to master btw, so it&apos;s landable</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>502934</commentid>
    <comment_count>10</comment_count>
      <attachid>115169</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2011-11-15 08:42:29 -0800</bug_when>
    <thetext>Comment on attachment 115169
updated patch

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

Looks good to me, except that I think you are leaking the asyncResult.

&gt; Source/WebCore/platform/network/soup/ResourceHandleSoup.cpp:750
&gt; +    // We only need to take action here to UN-defer loading

Nit: Missing a period.

&gt; Source/WebCore/platform/network/soup/ResourceHandleSoup.cpp:759
&gt;          return;

Is it actually possible for m_cancellable to be non-null and d-&gt;m_soupRequest to be null? If so it&apos;d be good to leave a small comment here explaining when and if not, it&apos;d be better to ASSERT(d-&gt;m_soupRequest) instead.

&gt; Source/WebCore/platform/network/soup/ResourceHandleSoup.cpp:763
&gt; +        GAsyncResult* asyncResult = d-&gt;m_deferredResult.leakRef();

I think you actually need to call adoptGRef here because the naked assignment adds another reference and the pointer leaks. Sorry for the confusion.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>503901</commentid>
    <comment_count>11</comment_count>
      <attachid>115382</attachid>
    <who name="Dan Winship">danw</who>
    <bug_when>2011-11-16 08:22:24 -0800</bug_when>
    <thetext>Created attachment 115382
updated updated patch

updated for previous comments in bugzilla and on IRC. (I ended up going with your original suggestion for the leakref thing.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>504017</commentid>
    <comment_count>12</comment_count>
      <attachid>115382</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-11-16 10:21:04 -0800</bug_when>
    <thetext>Comment on attachment 115382
updated updated patch

Clearing flags on attachment: 115382

Committed r100466: &lt;http://trac.webkit.org/changeset/100466&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>504018</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-11-16 10:21:08 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>114861</attachid>
            <date>2011-11-13 10:46:05 -0800</date>
            <delta_ts>2011-11-15 08:16:25 -0800</delta_ts>
            <desc>Fix platformDefersLoading</desc>
            <filename>0001-Fix-platformDefersLoading.patch</filename>
            <type>text/plain</type>
            <size>7202</size>
            <attacher name="Dan Winship">danw</attacher>
            
              <data encoding="base64">RnJvbSA3ODI4ZWFhZDQxY2UzODA3ZTU3ZTA3YWYyNGFmYWY0NzI1N2ViNDEwIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBEYW4gV2luc2hpcCA8ZGFud0Bnbm9tZS5vcmc+CkRhdGU6IFN1
biwgMTMgTm92IDIwMTEgMTM6NDM6MzggLTA1MDAKU3ViamVjdDogW1BBVENIXSBGaXggcGxhdGZv
cm1EZWZlcnNMb2FkaW5nCgogICAgICAgIFtHVEtdIEZpeCBwbGF0Zm9ybURlZmVyc0xvYWRpbmcg
dG8gaGFuZGxlIG5vbi1odHRwIHJlcXVlc3RzLCBhbmQKICAgICAgICB0byBub3QgdXNlIGJyb2tl
bi1pc2ggbGlic291cCBBUElzLgogICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD03MjIyNwoKICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KCiAg
ICAgICAgTm8gbmV3IHRlc3RzLiAoT09QUyEpCgogICAgICAgICogcGxhdGZvcm0vbmV0d29yay9S
ZXNvdXJjZUhhbmRsZUludGVybmFsLmg6CiAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAv
UmVzb3VyY2VIYW5kbGVTb3VwLmNwcDoKICAgICAgICAoV2ViQ29yZTo6c3RhcnRIVFRQUmVxdWVz
dCk6CiAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpwbGF0Zm9ybVNldERlZmVyc0xv
YWRpbmcpOgogICAgICAgIChXZWJDb3JlOjpyZWFkQ2FsbGJhY2spOiByYXRoZXIgdGhhbiBkZWZl
cnJpbmcgYnkgdXNpbmcKICAgICAgICBzb3VwX3Nlc3Npb25fcGF1c2VfbWVzc2FnZSgpLCBsZXQg
dGhlIHJlYWQgY29tcGxldGUsIGJ1dCBqdXN0IGRvbid0CiAgICAgICAgcHJvY2VzcyB0aGUgcmVz
dWx0IHVudGlsIHdlJ3JlIG5vIGxvbmdlciBkZWZlcnJlZC4KICAgICAgICAoV2ViQ29yZTo6c3Rh
cnROb25IVFRQUmVxdWVzdCk6IERvbid0IHN0YXJ0IHRoZSByZXF1ZXN0IGlmCiAgICAgICAgaXQn
cyBkZWZlcnJlZC4KLS0tCiBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgICAgICAgICAgICAgICAg
ICAgICAgICAgICB8ICAgMjAgKysrKysrKysKIC4uLi9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNl
SGFuZGxlSW50ZXJuYWwuaCAgICAgIHwgICAgMSArCiAuLi4vcGxhdGZvcm0vbmV0d29yay9zb3Vw
L1Jlc291cmNlSGFuZGxlU291cC5jcHAgICB8ICAgNDcgKysrKysrKysrKy0tLS0tLS0tLS0KIDMg
ZmlsZXMgY2hhbmdlZCwgNDUgaW5zZXJ0aW9ucygrKSwgMjMgZGVsZXRpb25zKC0pCgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CmluZGV4IDE2ZjljODkuLjViOTNjZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMyBAQAorMjAx
MS0xMS0xMyAgRGFuIFdpbnNoaXAgIDxkYW53QGdub21lLm9yZz4KKworICAgICAgICBbR1RLXSBG
aXggcGxhdGZvcm1EZWZlcnNMb2FkaW5nIHRvIGhhbmRsZSBub24taHR0cCByZXF1ZXN0cywgYW5k
CisgICAgICAgIHRvIG5vdCB1c2UgYnJva2VuLWlzaCBsaWJzb3VwIEFQSXMuCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MjIyNworCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cy4gKE9PUFMh
KQorCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZUludGVybmFsLmg6
CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlSGFuZGxlU291cC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpzdGFydEhUVFBSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6
OlJlc291cmNlSGFuZGxlOjpwbGF0Zm9ybVNldERlZmVyc0xvYWRpbmcpOgorICAgICAgICAoV2Vi
Q29yZTo6cmVhZENhbGxiYWNrKTogcmF0aGVyIHRoYW4gZGVmZXJyaW5nIGJ5IHVzaW5nCisgICAg
ICAgIHNvdXBfc2Vzc2lvbl9wYXVzZV9tZXNzYWdlKCksIGxldCB0aGUgcmVhZCBjb21wbGV0ZSwg
YnV0IGp1c3QgZG9uJ3QKKyAgICAgICAgcHJvY2VzcyB0aGUgcmVzdWx0IHVudGlsIHdlJ3JlIG5v
IGxvbmdlciBkZWZlcnJlZC4KKyAgICAgICAgKFdlYkNvcmU6OnN0YXJ0Tm9uSFRUUFJlcXVlc3Qp
OiBEb24ndCBzdGFydCB0aGUgcmVxdWVzdCBpZgorICAgICAgICBpdCdzIGRlZmVycmVkLgorCiAy
MDExLTExLTA2ICBEYW4gV2luc2hpcCAgPGRhbndAZ25vbWUub3JnPgogCiAgICAgICAgIFtHVEtd
IFJlbW92ZSBsb3RzIG9mIGNvZGUgdGhhdCBpcyBub3cgdW5uZWNlc3NhcnkgYWZ0ZXIKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGVJbnRl
cm5hbC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZUlu
dGVybmFsLmgKaW5kZXggM2ZhZjk3Yy4uY2FkMzgzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZUludGVybmFsLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZUludGVybmFsLmgKQEAgLTE4
OSw2ICsxODksNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIEdSZWZQdHI8U291cFJl
cXVlc3Q+IG1fc291cFJlcXVlc3Q7CiAgICAgICAgIEdSZWZQdHI8R0lucHV0U3RyZWFtPiBtX2lu
cHV0U3RyZWFtOwogICAgICAgICBHUmVmUHRyPEdDYW5jZWxsYWJsZT4gbV9jYW5jZWxsYWJsZTsK
KyAgICAgICAgR1JlZlB0cjxHQXN5bmNSZXN1bHQ+IG1fZGVmZXJyZWRSZXN1bHQ7CiAgICAgICAg
IGNoYXIqIG1fYnVmZmVyOwogICAgICAgICB1bnNpZ25lZCBsb25nIG1fYm9keVNpemU7CiAgICAg
ICAgIHVuc2lnbmVkIGxvbmcgbV9ib2R5RGF0YVNlbnQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5kbGVTb3VwLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUhhbmRsZVNvdXAuY3BwCmlu
ZGV4IGFjMzQyMzQuLmNlNjY3NGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvc291cC9SZXNvdXJjZUhhbmRsZVNvdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUhhbmRsZVNvdXAuY3BwCkBAIC0zMTcsOSAr
MzE3LDYgQEAgc3RhdGljIHZvaWQgc2VuZFJlcXVlc3RDYWxsYmFjayhHT2JqZWN0KiBzb3VyY2Us
IEdBc3luY1Jlc3VsdCogcmVzLCBncG9pbnRlciBkYXQKICAgICAgICAgICAgIGQtPm1fcmVzcG9u
c2Uuc2V0U25pZmZlZENvbnRlbnRUeXBlKHNuaWZmZWRUeXBlKTsKICAgICAgICAgfQogICAgICAg
ICBkLT5tX3Jlc3BvbnNlLnVwZGF0ZUZyb21Tb3VwTWVzc2FnZShzb3VwTWVzc2FnZSk7Ci0KLSAg
ICAgICAgaWYgKGQtPm1fZGVmZXJzTG9hZGluZykKLSAgICAgICAgICAgIHNvdXBfc2Vzc2lvbl9w
YXVzZV9tZXNzYWdlKGhhbmRsZS0+ZGVmYXVsdFNlc3Npb24oKSwgc291cE1lc3NhZ2UpOwogICAg
IH0gZWxzZSB7CiAgICAgICAgIGQtPm1fcmVzcG9uc2Uuc2V0VVJMKGhhbmRsZS0+Zmlyc3RSZXF1
ZXN0KCkudXJsKCkpOwogICAgICAgICBjb25zdCBnY2hhciogY29udGVudFR5cGUgPSBzb3VwX3Jl
cXVlc3RfZ2V0X2NvbnRlbnRfdHlwZShkLT5tX3NvdXBSZXF1ZXN0LmdldCgpKTsKQEAgLTUwMSw3
ICs0OTgsNyBAQCBzdGF0aWMgYm9vbCBzdGFydEhUVFBSZXF1ZXN0KFJlc291cmNlSGFuZGxlKiBo
YW5kbGUpCiAgICAgaWYgKCFzb3VwX21lc3NhZ2VfaGVhZGVyc19nZXRfb25lKHNvdXBNZXNzYWdl
LT5yZXF1ZXN0X2hlYWRlcnMsICJBY2NlcHQiKSkKICAgICAgICAgc291cF9tZXNzYWdlX2hlYWRl
cnNfYXBwZW5kKHNvdXBNZXNzYWdlLT5yZXF1ZXN0X2hlYWRlcnMsICJBY2NlcHQiLCAiKi8qIik7
CiAKLSAgICAvLyBTZW5kIHRoZSByZXF1ZXN0IG9ubHkgaWYgaXQncyBub3QgYmVlbiBleHBsaWNp
dGVseSBkZWZlcnJlZC4KKyAgICAvLyBTZW5kIHRoZSByZXF1ZXN0IG9ubHkgaWYgaXQncyBub3Qg
YmVlbiBleHBsaWNpdGx5IGRlZmVycmVkLgogICAgIGlmICghZC0+bV9kZWZlcnNMb2FkaW5nKSB7
CiAgICAgICAgIGQtPm1fY2FuY2VsbGFibGUgPSBhZG9wdEdSZWYoZ19jYW5jZWxsYWJsZV9uZXco
KSk7CiAgICAgICAgIHNvdXBfcmVxdWVzdF9zZW5kX2FzeW5jKGQtPm1fc291cFJlcXVlc3QuZ2V0
KCksIGQtPm1fY2FuY2VsbGFibGUuZ2V0KCksIHNlbmRSZXF1ZXN0Q2FsbGJhY2ssIGhhbmRsZSk7
CkBAIC01NjMsMzIgKzU2MCwyOCBAQCB2b2lkIFJlc291cmNlSGFuZGxlOjpjYW5jZWwoKQogCiB2
b2lkIFJlc291cmNlSGFuZGxlOjpwbGF0Zm9ybVNldERlZmVyc0xvYWRpbmcoYm9vbCBkZWZlcnNM
b2FkaW5nKQogewotICAgIC8vIEluaXRpYWwgaW1wbGVtZW50YXRpb24gb2YgdGhpcyBtZXRob2Qg
d2FzIHJlcXVpcmVkIGZvciBidWcgIzQ0MTU3LgotCiAgICAgaWYgKGQtPm1fY2FuY2VsbGVkKQog
ICAgICAgICByZXR1cm47CiAKLSAgICBpZiAoIWRlZmVyc0xvYWRpbmcgJiYgIWQtPm1fY2FuY2Vs
bGFibGUgJiYgZC0+bV9zb3VwUmVxdWVzdC5nZXQoKSkgewotICAgICAgICBkLT5tX2NhbmNlbGxh
YmxlID0gYWRvcHRHUmVmKGdfY2FuY2VsbGFibGVfbmV3KCkpOwotICAgICAgICBzb3VwX3JlcXVl
c3Rfc2VuZF9hc3luYyhkLT5tX3NvdXBSZXF1ZXN0LmdldCgpLCBkLT5tX2NhbmNlbGxhYmxlLmdl
dCgpLCBzZW5kUmVxdWVzdENhbGxiYWNrLCB0aGlzKTsKKyAgICAvLyBSZXF1ZXN0cyB0aGF0IGhh
dmVuJ3QgeWV0IGJlZW4gc2VudAorICAgIGlmICghZC0+bV9jYW5jZWxsYWJsZSkgeworICAgICAg
ICBpZiAoIWRlZmVyc0xvYWRpbmcgJiYgZC0+bV9zb3VwUmVxdWVzdC5nZXQoKSkgeworICAgICAg
ICAgICAgZC0+bV9jYW5jZWxsYWJsZSA9IGFkb3B0R1JlZihnX2NhbmNlbGxhYmxlX25ldygpKTsK
KyAgICAgICAgICAgIHNvdXBfcmVxdWVzdF9zZW5kX2FzeW5jKGQtPm1fc291cFJlcXVlc3QuZ2V0
KCksIGQtPm1fY2FuY2VsbGFibGUuZ2V0KCksIHNlbmRSZXF1ZXN0Q2FsbGJhY2ssIHRoaXMpOwor
ICAgICAgICB9CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICAvLyBPbmx5IHN1cHBvcnRl
ZCBmb3IgaHR0cChzKSB0cmFuc2ZlcnMuIFNvbWV0aGluZyBzaW1pbGFyIHdvdWxkCi0gICAgLy8g
cHJvYmFibHkgYmUgbmVlZGVkIGZvciBkYXRhIHRyYW5zZmVycyBkb25lIHdpdGggR0lPLgotICAg
IGlmICghZC0+bV9zb3VwTWVzc2FnZSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgLy8gRG8gbm90
IHBhdXNlIG9yIHVucGF1c2Ugb3BlcmF0aW9ucyB0aGF0IGhhdmUgbm90IHJlYWNoZWQKLSAgICAv
LyBzZW5kUmVxdWVzdENhbGxiYWNrIHlldC4gSWYgbV9kZWZlcnNMb2FkaW5nIGlzIHRydWUgYXQg
dGhhdCBwb2ludCwgd2UnbGwgcGF1c2UuCi0gICAgU291cE1lc3NhZ2UqIHNvdXBNZXNzYWdlID0g
ZC0+bV9zb3VwTWVzc2FnZS5nZXQoKTsKKyAgICAvLyBEbyBub3QgcGF1c2Ugb3IgdW5wYXVzZSBv
cGVyYXRpb25zIHRoYXQgaGF2ZSBub3QgcmVhY2hlZCBzZW5kUmVxdWVzdENhbGxiYWNrIHlldC4K
KyAgICAvLyBJZiBtX2RlZmVyc0xvYWRpbmcgaXMgdHJ1ZSBhdCB0aGF0IHBvaW50LCB3ZSdsbCBw
YXVzZS4KICAgICBpZiAoIWQtPm1faW5wdXRTdHJlYW0pCiAgICAgICAgIHJldHVybjsKIAotICAg
IGlmIChkZWZlcnNMb2FkaW5nKQotICAgICAgICBzb3VwX3Nlc3Npb25fcGF1c2VfbWVzc2FnZShk
ZWZhdWx0U2Vzc2lvbigpLCBzb3VwTWVzc2FnZSk7Ci0gICAgZWxzZQotICAgICAgICBzb3VwX3Nl
c3Npb25fdW5wYXVzZV9tZXNzYWdlKGRlZmF1bHRTZXNzaW9uKCksIHNvdXBNZXNzYWdlKTsKKyAg
ICBpZiAoIWRlZmVyc0xvYWRpbmcgJiYgZC0+bV9kZWZlcnJlZFJlc3VsdCkgeworICAgICAgICBH
UmVmUHRyPEdBc3luY1Jlc3VsdD4gYXN5bmNSZXN1bHQgPSBkLT5tX2RlZmVycmVkUmVzdWx0Owor
ICAgICAgICBkLT5tX2RlZmVycmVkUmVzdWx0ID0gMDsKKyAgICAgICAgcmVhZENhbGxiYWNrKEdf
T0JKRUNUKGQtPm1faW5wdXRTdHJlYW0uZ2V0KCkpLCBhc3luY1Jlc3VsdC5nZXQoKSwgdGhpcyk7
CisgICAgfQogfQogCiBib29sIFJlc291cmNlSGFuZGxlOjpsb2Fkc0Jsb2NrZWQoKQpAQCAtNjQ2
LDYgKzYzOSwxMSBAQCBzdGF0aWMgdm9pZCByZWFkQ2FsbGJhY2soR09iamVjdCogc291cmNlLCBH
QXN5bmNSZXN1bHQqIGFzeW5jUmVzdWx0LCBncG9pbnRlciBkYQogICAgICAgICByZXR1cm47CiAg
ICAgfQogCisgICAgaWYgKGQtPm1fZGVmZXJzTG9hZGluZykgeworICAgICAgICBkLT5tX2RlZmVy
cmVkUmVzdWx0ID0gYXN5bmNSZXN1bHQ7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKICAgICBH
T3duUHRyPEdFcnJvcj4gZXJyb3I7CiAgICAgZ3NzaXplIGJ5dGVzUmVhZCA9IGdfaW5wdXRfc3Ry
ZWFtX3JlYWRfZmluaXNoKGQtPm1faW5wdXRTdHJlYW0uZ2V0KCksIGFzeW5jUmVzdWx0LCAmZXJy
b3Iub3V0UHRyKCkpOwogICAgIGlmIChlcnJvcikgewpAQCAtNzAxLDggKzY5OSwxMSBAQCBzdGF0
aWMgYm9vbCBzdGFydE5vbkhUVFBSZXF1ZXN0KFJlc291cmNlSGFuZGxlKiBoYW5kbGUsIEtVUkwg
dXJsKQogICAgIC8vIGJhbGFuY2VkIGJ5IGEgZGVyZWYoKSBpbiBjbGVhbnVwU291cFJlcXVlc3RP
cGVyYXRpb24sIHdoaWNoIHNob3VsZCBhbHdheXMgcnVuCiAgICAgaGFuZGxlLT5yZWYoKTsKIAot
ICAgIGQtPm1fY2FuY2VsbGFibGUgPSBhZG9wdEdSZWYoZ19jYW5jZWxsYWJsZV9uZXcoKSk7Ci0g
ICAgc291cF9yZXF1ZXN0X3NlbmRfYXN5bmMoZC0+bV9zb3VwUmVxdWVzdC5nZXQoKSwgZC0+bV9j
YW5jZWxsYWJsZS5nZXQoKSwgc2VuZFJlcXVlc3RDYWxsYmFjaywgaGFuZGxlKTsKKyAgICAvLyBT
ZW5kIHRoZSByZXF1ZXN0IG9ubHkgaWYgaXQncyBub3QgYmVlbiBleHBsaWNpdGx5IGRlZmVycmVk
LgorICAgIGlmICghZC0+bV9kZWZlcnNMb2FkaW5nKSB7CisgICAgICAgIGQtPm1fY2FuY2VsbGFi
bGUgPSBhZG9wdEdSZWYoZ19jYW5jZWxsYWJsZV9uZXcoKSk7CisgICAgICAgIHNvdXBfcmVxdWVz
dF9zZW5kX2FzeW5jKGQtPm1fc291cFJlcXVlc3QuZ2V0KCksIGQtPm1fY2FuY2VsbGFibGUuZ2V0
KCksIHNlbmRSZXF1ZXN0Q2FsbGJhY2ssIGhhbmRsZSk7CisgICAgfQogCiAgICAgcmV0dXJuIHRy
dWU7CiB9Ci0tIAoxLjcuNy4xCgo=
</data>
<flag name="review"
          id="113625"
          type_id="1"
          status="-"
          setter="mrobinson"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>115169</attachid>
            <date>2011-11-15 08:16:25 -0800</date>
            <delta_ts>2011-11-16 08:22:24 -0800</delta_ts>
            <desc>updated patch</desc>
            <filename>0001-Fix-platformDefersLoading.patch</filename>
            <type>text/plain</type>
            <size>7376</size>
            <attacher name="Dan Winship">danw</attacher>
            
              <data encoding="base64">RnJvbSA2NWI1NGIzOWI5NDBmMTgyMDY1ZmQzYTAzNzJjNjIzYzIzMTRjOTdiIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBEYW4gV2luc2hpcCA8ZGFud0Bnbm9tZS5vcmc+CkRhdGU6IFR1
ZSwgMTUgTm92IDIwMTEgMTE6MTI6MjAgLTA1MDAKU3ViamVjdDogW1BBVENIXSBGaXggcGxhdGZv
cm1EZWZlcnNMb2FkaW5nCgogICAgICAgIFtHVEtdIEZpeCBwbGF0Zm9ybURlZmVyc0xvYWRpbmcg
dG8gaGFuZGxlIG5vbi1odHRwIHJlcXVlc3RzLCBhbmQKICAgICAgICB0byBub3QgdXNlIGJyb2tl
bi1pc2ggbGlic291cCBBUElzLgogICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD03MjIyNwoKICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KCiAg
ICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlSW50ZXJuYWwuaDoKICAgICAg
ICAqIHBsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUhhbmRsZVNvdXAuY3BwOgogICAgICAg
IChXZWJDb3JlOjpzZW5kUmVxdWVzdENhbGxiYWNrKToKICAgICAgICAoV2ViQ29yZTo6c3RhcnRI
VFRQUmVxdWVzdCk6CiAgICAgICAgKFdlYkNvcmU6Omhhc0JlZW5TZW50KToKICAgICAgICAoV2Vi
Q29yZTo6UmVzb3VyY2VIYW5kbGU6OnBsYXRmb3JtU2V0RGVmZXJzTG9hZGluZyk6CiAgICAgICAg
KFdlYkNvcmU6OnJlYWRDYWxsYmFjayk6IHJhdGhlciB0aGFuIGRlZmVycmluZyBieSB1c2luZwog
ICAgICAgIHNvdXBfc2Vzc2lvbl9wYXVzZV9tZXNzYWdlKCksIGxldCB0aGUgcmVhZCBjb21wbGV0
ZSwgYnV0IGp1c3QgZG9uJ3QKICAgICAgICBwcm9jZXNzIHRoZSByZXN1bHQgdW50aWwgd2UncmUg
bm8gbG9uZ2VyIGRlZmVycmVkLgogICAgICAgIChXZWJDb3JlOjpzdGFydE5vbkhUVFBSZXF1ZXN0
KTogRG9uJ3Qgc3RhcnQgdGhlIHJlcXVlc3QgaWYKICAgICAgICBpdCdzIGRlZmVycmVkLgotLS0K
IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAy
MCArKysrKysrCiAuLi4vcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZUludGVybmFsLmgg
ICAgICB8ICAgIDEgKwogLi4uL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUhhbmRsZVNv
dXAuY3BwICAgfCAgIDU2ICsrKysrKysrKysrLS0tLS0tLS0tCiAzIGZpbGVzIGNoYW5nZWQsIDUy
IGluc2VydGlvbnMoKyksIDI1IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA3ZmQzYWM3Li5i
ZTZlYjNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTEtMTEtMTUgIERhbiBXaW5z
aGlwICA8ZGFud0Bnbm9tZS5vcmc+CisKKyAgICAgICAgW0dUS10gRml4IHBsYXRmb3JtRGVmZXJz
TG9hZGluZyB0byBoYW5kbGUgbm9uLWh0dHAgcmVxdWVzdHMsIGFuZAorICAgICAgICB0byBub3Qg
dXNlIGJyb2tlbi1pc2ggbGlic291cCBBUElzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzIyMjcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGVJbnRl
cm5hbC5oOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUhhbmRsZVNv
dXAuY3BwOgorICAgICAgICAoV2ViQ29yZTo6c2VuZFJlcXVlc3RDYWxsYmFjayk6CisgICAgICAg
IChXZWJDb3JlOjpzdGFydEhUVFBSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6Omhhc0JlZW5T
ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpwbGF0Zm9ybVNldERlZmVy
c0xvYWRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6cmVhZENhbGxiYWNrKTogcmF0aGVyIHRoYW4g
ZGVmZXJyaW5nIGJ5IHVzaW5nCisgICAgICAgIHNvdXBfc2Vzc2lvbl9wYXVzZV9tZXNzYWdlKCks
IGxldCB0aGUgcmVhZCBjb21wbGV0ZSwgYnV0IGp1c3QgZG9uJ3QKKyAgICAgICAgcHJvY2VzcyB0
aGUgcmVzdWx0IHVudGlsIHdlJ3JlIG5vIGxvbmdlciBkZWZlcnJlZC4KKyAgICAgICAgKFdlYkNv
cmU6OnN0YXJ0Tm9uSFRUUFJlcXVlc3QpOiBEb24ndCBzdGFydCB0aGUgcmVxdWVzdCBpZgorICAg
ICAgICBpdCdzIGRlZmVycmVkLgorCiAyMDExLTExLTE1ICBQaGlsaXAgUm9nZXJzICA8cGRyQGdv
b2dsZS5jb20+CiAKICAgICAgICAgRml4IFNWRyBoaXQgdGVzdGluZyB3aGVuIHBhZGRpbmcgaXMg
cHJlc2VudApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNv
dXJjZUhhbmRsZUludGVybmFsLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jl
c291cmNlSGFuZGxlSW50ZXJuYWwuaAppbmRleCBhODY4ZjU3Li41ZGY0Y2M5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlSW50ZXJuYWwu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlSW50
ZXJuYWwuaApAQCAtMTk0LDYgKzE5NCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAg
R1JlZlB0cjxTb3VwUmVxdWVzdD4gbV9zb3VwUmVxdWVzdDsKICAgICAgICAgR1JlZlB0cjxHSW5w
dXRTdHJlYW0+IG1faW5wdXRTdHJlYW07CiAgICAgICAgIEdSZWZQdHI8R0NhbmNlbGxhYmxlPiBt
X2NhbmNlbGxhYmxlOworICAgICAgICBHUmVmUHRyPEdBc3luY1Jlc3VsdD4gbV9kZWZlcnJlZFJl
c3VsdDsKICAgICAgICAgY2hhciogbV9idWZmZXI7CiAgICAgICAgIHVuc2lnbmVkIGxvbmcgbV9i
b2R5U2l6ZTsKICAgICAgICAgdW5zaWduZWQgbG9uZyBtX2JvZHlEYXRhU2VudDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUhhbmRsZVNv
dXAuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlSGFu
ZGxlU291cC5jcHAKaW5kZXggYTliMDdkMi4uMjcxOTZkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlSGFuZGxlU291cC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlSGFuZGxlU291cC5j
cHAKQEAgLTUwMiw5ICs1MDIsNiBAQCBzdGF0aWMgdm9pZCBzZW5kUmVxdWVzdENhbGxiYWNrKEdP
YmplY3QqIHNvdXJjZSwgR0FzeW5jUmVzdWx0KiByZXMsIGdwb2ludGVyIGRhdAogICAgICAgICB9
CiAgICAgfQogCi0gICAgaWYgKGQtPm1fZGVmZXJzTG9hZGluZykKLSAgICAgICAgIHNvdXBfc2Vz
c2lvbl9wYXVzZV9tZXNzYWdlKGhhbmRsZS0+ZGVmYXVsdFNlc3Npb24oKSwgZC0+bV9zb3VwTWVz
c2FnZS5nZXQoKSk7Ci0KICAgICBnX2lucHV0X3N0cmVhbV9yZWFkX2FzeW5jKGQtPm1faW5wdXRT
dHJlYW0uZ2V0KCksIGQtPm1fYnVmZmVyLCBSRUFEX0JVRkZFUl9TSVpFLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgR19QUklPUklUWV9ERUZBVUxULCBkLT5tX2NhbmNlbGxhYmxlLmdl
dCgpLCByZWFkQ2FsbGJhY2ssIGhhbmRsZS5nZXQoKSk7CiB9CkBAIC02NzgsNyArNjc1LDcgQEAg
c3RhdGljIGJvb2wgc3RhcnRIVFRQUmVxdWVzdChSZXNvdXJjZUhhbmRsZSogaGFuZGxlKQogICAg
IGlmICghc291cF9tZXNzYWdlX2hlYWRlcnNfZ2V0X29uZShzb3VwTWVzc2FnZS0+cmVxdWVzdF9o
ZWFkZXJzLCAiQWNjZXB0IikpCiAgICAgICAgIHNvdXBfbWVzc2FnZV9oZWFkZXJzX2FwcGVuZChz
b3VwTWVzc2FnZS0+cmVxdWVzdF9oZWFkZXJzLCAiQWNjZXB0IiwgIiovKiIpOwogCi0gICAgLy8g
U2VuZCB0aGUgcmVxdWVzdCBvbmx5IGlmIGl0J3Mgbm90IGJlZW4gZXhwbGljaXRlbHkgZGVmZXJy
ZWQuCisgICAgLy8gU2VuZCB0aGUgcmVxdWVzdCBvbmx5IGlmIGl0J3Mgbm90IGJlZW4gZXhwbGlj
aXRseSBkZWZlcnJlZC4KICAgICBpZiAoIWQtPm1fZGVmZXJzTG9hZGluZykgewogICAgICAgICBk
LT5tX2NhbmNlbGxhYmxlID0gYWRvcHRHUmVmKGdfY2FuY2VsbGFibGVfbmV3KCkpOwogICAgICAg
ICBzb3VwX3JlcXVlc3Rfc2VuZF9hc3luYyhkLT5tX3NvdXBSZXF1ZXN0LmdldCgpLCBkLT5tX2Nh
bmNlbGxhYmxlLmdldCgpLCBzZW5kUmVxdWVzdENhbGxiYWNrLCBoYW5kbGUpOwpAQCAtNzM4LDM0
ICs3MzUsMzUgQEAgdm9pZCBSZXNvdXJjZUhhbmRsZTo6Y2FuY2VsKCkKICAgICAgICAgZ19jYW5j
ZWxsYWJsZV9jYW5jZWwoZC0+bV9jYW5jZWxsYWJsZS5nZXQoKSk7CiB9CiAKLXZvaWQgUmVzb3Vy
Y2VIYW5kbGU6OnBsYXRmb3JtU2V0RGVmZXJzTG9hZGluZyhib29sIGRlZmVyc0xvYWRpbmcpCitz
dGF0aWMgYm9vbCBoYXNCZWVuU2VudChSZXNvdXJjZUhhbmRsZSogaGFuZGxlKQogewotICAgIC8v
IEluaXRpYWwgaW1wbGVtZW50YXRpb24gb2YgdGhpcyBtZXRob2Qgd2FzIHJlcXVpcmVkIGZvciBi
dWcgIzQ0MTU3LgorICAgIFJlc291cmNlSGFuZGxlSW50ZXJuYWwqIGQgPSBoYW5kbGUtPmdldElu
dGVybmFsKCk7CiAKLSAgICBpZiAoZC0+bV9jYW5jZWxsZWQpCi0gICAgICAgIHJldHVybjsKKyAg
ICByZXR1cm4gZC0+bV9jYW5jZWxsYWJsZTsKK30KIAotICAgIGlmICghZGVmZXJzTG9hZGluZyAm
JiAhZC0+bV9jYW5jZWxsYWJsZSAmJiBkLT5tX3NvdXBSZXF1ZXN0LmdldCgpKSB7Ci0gICAgICAg
IGQtPm1fY2FuY2VsbGFibGUgPSBhZG9wdEdSZWYoZ19jYW5jZWxsYWJsZV9uZXcoKSk7Ci0gICAg
ICAgIHNvdXBfcmVxdWVzdF9zZW5kX2FzeW5jKGQtPm1fc291cFJlcXVlc3QuZ2V0KCksIGQtPm1f
Y2FuY2VsbGFibGUuZ2V0KCksIHNlbmRSZXF1ZXN0Q2FsbGJhY2ssIHRoaXMpOwordm9pZCBSZXNv
dXJjZUhhbmRsZTo6cGxhdGZvcm1TZXREZWZlcnNMb2FkaW5nKGJvb2wgZGVmZXJzTG9hZGluZykK
K3sKKyAgICBpZiAoZC0+bV9jYW5jZWxsZWQpCiAgICAgICAgIHJldHVybjsKLSAgICB9CiAKLSAg
ICAvLyBPbmx5IHN1cHBvcnRlZCBmb3IgaHR0cChzKSB0cmFuc2ZlcnMuIFNvbWV0aGluZyBzaW1p
bGFyIHdvdWxkCi0gICAgLy8gcHJvYmFibHkgYmUgbmVlZGVkIGZvciBkYXRhIHRyYW5zZmVycyBk
b25lIHdpdGggR0lPLgotICAgIGlmICghZC0+bV9zb3VwTWVzc2FnZSkKKyAgICAvLyBXZSBvbmx5
IG5lZWQgdG8gdGFrZSBhY3Rpb24gaGVyZSB0byBVTi1kZWZlciBsb2FkaW5nCisgICAgaWYgKGRl
ZmVyc0xvYWRpbmcpCiAgICAgICAgIHJldHVybjsKIAotICAgIC8vIERvIG5vdCBwYXVzZSBvciB1
bnBhdXNlIG9wZXJhdGlvbnMgdGhhdCBhcmUgY29tcGxldGVkIG9yIGhhdmUgbm90IHJlYWNoZWQK
LSAgICAvLyBzZW5kUmVxdWVzdENhbGxiYWNrIHlldC4gSWYgbV9kZWZlcnNMb2FkaW5nIGlzIHRy
dWUgYXQgdGhhdCBwb2ludCwgd2UnbGwgcGF1c2UuCi0gICAgU291cE1lc3NhZ2UqIHNvdXBNZXNz
YWdlID0gZC0+bV9zb3VwTWVzc2FnZS5nZXQoKTsKLSAgICBpZiAoZC0+bV9maW5pc2hlZCB8fCAh
ZC0+bV9pbnB1dFN0cmVhbSkKKyAgICBpZiAoIWhhc0JlZW5TZW50KHRoaXMpKSB7CisgICAgICAg
IGlmIChkLT5tX3NvdXBSZXF1ZXN0LmdldCgpKSB7CisgICAgICAgICAgICBkLT5tX2NhbmNlbGxh
YmxlID0gYWRvcHRHUmVmKGdfY2FuY2VsbGFibGVfbmV3KCkpOworICAgICAgICAgICAgc291cF9y
ZXF1ZXN0X3NlbmRfYXN5bmMoZC0+bV9zb3VwUmVxdWVzdC5nZXQoKSwgZC0+bV9jYW5jZWxsYWJs
ZS5nZXQoKSwgc2VuZFJlcXVlc3RDYWxsYmFjaywgdGhpcyk7CisgICAgICAgIH0KICAgICAgICAg
cmV0dXJuOworICAgIH0KIAotICAgIGlmIChkZWZlcnNMb2FkaW5nKQotICAgICAgICBzb3VwX3Nl
c3Npb25fcGF1c2VfbWVzc2FnZShkZWZhdWx0U2Vzc2lvbigpLCBzb3VwTWVzc2FnZSk7Ci0gICAg
ZWxzZQotICAgICAgICBzb3VwX3Nlc3Npb25fdW5wYXVzZV9tZXNzYWdlKGRlZmF1bHRTZXNzaW9u
KCksIHNvdXBNZXNzYWdlKTsKKyAgICBpZiAoZC0+bV9kZWZlcnJlZFJlc3VsdCkgeworICAgICAg
ICBHQXN5bmNSZXN1bHQqIGFzeW5jUmVzdWx0ID0gZC0+bV9kZWZlcnJlZFJlc3VsdC5sZWFrUmVm
KCk7CisgICAgICAgIHJlYWRDYWxsYmFjayhHX09CSkVDVChkLT5tX2lucHV0U3RyZWFtLmdldCgp
KSwgYXN5bmNSZXN1bHQsIHRoaXMpOworICAgICAgICBnX29iamVjdF91bnJlZihhc3luY1Jlc3Vs
dCk7CisgICAgfQogfQogCiBib29sIFJlc291cmNlSGFuZGxlOjpsb2Fkc0Jsb2NrZWQoKQpAQCAt
ODIzLDYgKzgyMSwxMSBAQCBzdGF0aWMgdm9pZCByZWFkQ2FsbGJhY2soR09iamVjdCogc291cmNl
LCBHQXN5bmNSZXN1bHQqIGFzeW5jUmVzdWx0LCBncG9pbnRlciBkYQogICAgICAgICByZXR1cm47
CiAgICAgfQogCisgICAgaWYgKGQtPm1fZGVmZXJzTG9hZGluZykgeworICAgICAgICBkLT5tX2Rl
ZmVycmVkUmVzdWx0ID0gYXN5bmNSZXN1bHQ7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKICAg
ICBHT3duUHRyPEdFcnJvcj4gZXJyb3I7CiAgICAgZ3NzaXplIGJ5dGVzUmVhZCA9IGdfaW5wdXRf
c3RyZWFtX3JlYWRfZmluaXNoKGQtPm1faW5wdXRTdHJlYW0uZ2V0KCksIGFzeW5jUmVzdWx0LCAm
ZXJyb3Iub3V0UHRyKCkpOwogICAgIGlmIChlcnJvcikgewpAQCAtODc4LDggKzg4MSwxMSBAQCBz
dGF0aWMgYm9vbCBzdGFydE5vbkhUVFBSZXF1ZXN0KFJlc291cmNlSGFuZGxlKiBoYW5kbGUsIEtV
UkwgdXJsKQogICAgIC8vIGJhbGFuY2VkIGJ5IGEgZGVyZWYoKSBpbiBjbGVhbnVwU291cFJlcXVl
c3RPcGVyYXRpb24sIHdoaWNoIHNob3VsZCBhbHdheXMgcnVuCiAgICAgaGFuZGxlLT5yZWYoKTsK
IAotICAgIGQtPm1fY2FuY2VsbGFibGUgPSBhZG9wdEdSZWYoZ19jYW5jZWxsYWJsZV9uZXcoKSk7
Ci0gICAgc291cF9yZXF1ZXN0X3NlbmRfYXN5bmMoZC0+bV9zb3VwUmVxdWVzdC5nZXQoKSwgZC0+
bV9jYW5jZWxsYWJsZS5nZXQoKSwgc2VuZFJlcXVlc3RDYWxsYmFjaywgaGFuZGxlKTsKKyAgICAv
LyBTZW5kIHRoZSByZXF1ZXN0IG9ubHkgaWYgaXQncyBub3QgYmVlbiBleHBsaWNpdGx5IGRlZmVy
cmVkLgorICAgIGlmICghZC0+bV9kZWZlcnNMb2FkaW5nKSB7CisgICAgICAgIGQtPm1fY2FuY2Vs
bGFibGUgPSBhZG9wdEdSZWYoZ19jYW5jZWxsYWJsZV9uZXcoKSk7CisgICAgICAgIHNvdXBfcmVx
dWVzdF9zZW5kX2FzeW5jKGQtPm1fc291cFJlcXVlc3QuZ2V0KCksIGQtPm1fY2FuY2VsbGFibGUu
Z2V0KCksIHNlbmRSZXF1ZXN0Q2FsbGJhY2ssIGhhbmRsZSk7CisgICAgfQogCiAgICAgcmV0dXJu
IHRydWU7CiB9Ci0tIAoxLjcuNy4xCgo=
</data>
<flag name="review"
          id="114007"
          type_id="1"
          status="-"
          setter="mrobinson"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>115382</attachid>
            <date>2011-11-16 08:22:24 -0800</date>
            <delta_ts>2011-11-16 10:21:03 -0800</delta_ts>
            <desc>updated updated patch</desc>
            <filename>0001-Fix-platformDefersLoading.patch</filename>
            <type>text/plain</type>
            <size>7162</size>
            <attacher name="Dan Winship">danw</attacher>
            
              <data encoding="base64">RnJvbSA3NTE2ZmQwOGZhNzQwM2JmNzBiMzRhMWE3ZTQ2MTkyOTNjOTEyZTI0IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBEYW4gV2luc2hpcCA8ZGFud0Bnbm9tZS5vcmc+CkRhdGU6IFR1
ZSwgMTUgTm92IDIwMTEgMTE6MTI6MjAgLTA1MDAKU3ViamVjdDogW1BBVENIXSBGaXggcGxhdGZv
cm1EZWZlcnNMb2FkaW5nCgogICAgICAgIFtHVEtdIEZpeCBwbGF0Zm9ybURlZmVyc0xvYWRpbmcg
dG8gaGFuZGxlIG5vbi1odHRwIHJlcXVlc3RzLCBhbmQKICAgICAgICB0byBub3QgdXNlIGJyb2tl
bi1pc2ggbGlic291cCBBUElzLgogICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD03MjIyNwoKICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KCiAg
ICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlSW50ZXJuYWwuaDoKICAgICAg
ICAqIHBsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUhhbmRsZVNvdXAuY3BwOgogICAgICAg
IChXZWJDb3JlOjpzZW5kUmVxdWVzdENhbGxiYWNrKToKICAgICAgICAoV2ViQ29yZTo6c3RhcnRI
VFRQUmVxdWVzdCk6CiAgICAgICAgKFdlYkNvcmU6Omhhc0JlZW5TZW50KToKICAgICAgICAoV2Vi
Q29yZTo6UmVzb3VyY2VIYW5kbGU6OnBsYXRmb3JtU2V0RGVmZXJzTG9hZGluZyk6CiAgICAgICAg
KFdlYkNvcmU6OnJlYWRDYWxsYmFjayk6IHJhdGhlciB0aGFuIGRlZmVycmluZyBieSB1c2luZwog
ICAgICAgIHNvdXBfc2Vzc2lvbl9wYXVzZV9tZXNzYWdlKCksIGxldCB0aGUgcmVhZCBjb21wbGV0
ZSwgYnV0IGp1c3QgZG9uJ3QKICAgICAgICBwcm9jZXNzIHRoZSByZXN1bHQgdW50aWwgd2UncmUg
bm8gbG9uZ2VyIGRlZmVycmVkLgogICAgICAgIChXZWJDb3JlOjpzdGFydE5vbkhUVFBSZXF1ZXN0
KTogRG9uJ3Qgc3RhcnQgdGhlIHJlcXVlc3QgaWYKICAgICAgICBpdCdzIGRlZmVycmVkLgotLS0K
IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAy
MCArKysrKysrKwogLi4uL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGVJbnRlcm5hbC5o
ICAgICAgfCAgICAxICsKIC4uLi9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5kbGVT
b3VwLmNwcCAgIHwgICA1MiArKysrKysrKysrKy0tLS0tLS0tLQogMyBmaWxlcyBjaGFuZ2VkLCA0
OSBpbnNlcnRpb25zKCspLCAyNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2ZkM2FjNy4u
YmU2ZWIzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDExLTExLTE1ICBEYW4gV2lu
c2hpcCAgPGRhbndAZ25vbWUub3JnPgorCisgICAgICAgIFtHVEtdIEZpeCBwbGF0Zm9ybURlZmVy
c0xvYWRpbmcgdG8gaGFuZGxlIG5vbi1odHRwIHJlcXVlc3RzLCBhbmQKKyAgICAgICAgdG8gbm90
IHVzZSBicm9rZW4taXNoIGxpYnNvdXAgQVBJcy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTcyMjI3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlSW50
ZXJuYWwuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5kbGVT
b3VwLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnNlbmRSZXF1ZXN0Q2FsbGJhY2spOgorICAgICAg
ICAoV2ViQ29yZTo6c3RhcnRIVFRQUmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpoYXNCZWVu
U2VudCk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6cGxhdGZvcm1TZXREZWZl
cnNMb2FkaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OnJlYWRDYWxsYmFjayk6IHJhdGhlciB0aGFu
IGRlZmVycmluZyBieSB1c2luZworICAgICAgICBzb3VwX3Nlc3Npb25fcGF1c2VfbWVzc2FnZSgp
LCBsZXQgdGhlIHJlYWQgY29tcGxldGUsIGJ1dCBqdXN0IGRvbid0CisgICAgICAgIHByb2Nlc3Mg
dGhlIHJlc3VsdCB1bnRpbCB3ZSdyZSBubyBsb25nZXIgZGVmZXJyZWQuCisgICAgICAgIChXZWJD
b3JlOjpzdGFydE5vbkhUVFBSZXF1ZXN0KTogRG9uJ3Qgc3RhcnQgdGhlIHJlcXVlc3QgaWYKKyAg
ICAgICAgaXQncyBkZWZlcnJlZC4KKwogMjAxMS0xMS0xNSAgUGhpbGlwIFJvZ2VycyAgPHBkckBn
b29nbGUuY29tPgogCiAgICAgICAgIEZpeCBTVkcgaGl0IHRlc3Rpbmcgd2hlbiBwYWRkaW5nIGlz
IHByZXNlbnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVz
b3VyY2VIYW5kbGVJbnRlcm5hbC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9S
ZXNvdXJjZUhhbmRsZUludGVybmFsLmgKaW5kZXggYTg2OGY1Ny4uNWRmNGNjOSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZUludGVybmFs
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZUlu
dGVybmFsLmgKQEAgLTE5NCw2ICsxOTQsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAg
IEdSZWZQdHI8U291cFJlcXVlc3Q+IG1fc291cFJlcXVlc3Q7CiAgICAgICAgIEdSZWZQdHI8R0lu
cHV0U3RyZWFtPiBtX2lucHV0U3RyZWFtOwogICAgICAgICBHUmVmUHRyPEdDYW5jZWxsYWJsZT4g
bV9jYW5jZWxsYWJsZTsKKyAgICAgICAgR1JlZlB0cjxHQXN5bmNSZXN1bHQ+IG1fZGVmZXJyZWRS
ZXN1bHQ7CiAgICAgICAgIGNoYXIqIG1fYnVmZmVyOwogICAgICAgICB1bnNpZ25lZCBsb25nIG1f
Ym9keVNpemU7CiAgICAgICAgIHVuc2lnbmVkIGxvbmcgbV9ib2R5RGF0YVNlbnQ7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5kbGVT
b3VwLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUhh
bmRsZVNvdXAuY3BwCmluZGV4IGE5YjA3ZDIuLmRhOWJlYjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUhhbmRsZVNvdXAuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUhhbmRsZVNvdXAu
Y3BwCkBAIC01MDIsOSArNTAyLDYgQEAgc3RhdGljIHZvaWQgc2VuZFJlcXVlc3RDYWxsYmFjayhH
T2JqZWN0KiBzb3VyY2UsIEdBc3luY1Jlc3VsdCogcmVzLCBncG9pbnRlciBkYXQKICAgICAgICAg
fQogICAgIH0KIAotICAgIGlmIChkLT5tX2RlZmVyc0xvYWRpbmcpCi0gICAgICAgICBzb3VwX3Nl
c3Npb25fcGF1c2VfbWVzc2FnZShoYW5kbGUtPmRlZmF1bHRTZXNzaW9uKCksIGQtPm1fc291cE1l
c3NhZ2UuZ2V0KCkpOwotCiAgICAgZ19pbnB1dF9zdHJlYW1fcmVhZF9hc3luYyhkLT5tX2lucHV0
U3RyZWFtLmdldCgpLCBkLT5tX2J1ZmZlciwgUkVBRF9CVUZGRVJfU0laRSwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIEdfUFJJT1JJVFlfREVGQVVMVCwgZC0+bV9jYW5jZWxsYWJsZS5n
ZXQoKSwgcmVhZENhbGxiYWNrLCBoYW5kbGUuZ2V0KCkpOwogfQpAQCAtNjc4LDcgKzY3NSw3IEBA
IHN0YXRpYyBib29sIHN0YXJ0SFRUUFJlcXVlc3QoUmVzb3VyY2VIYW5kbGUqIGhhbmRsZSkKICAg
ICBpZiAoIXNvdXBfbWVzc2FnZV9oZWFkZXJzX2dldF9vbmUoc291cE1lc3NhZ2UtPnJlcXVlc3Rf
aGVhZGVycywgIkFjY2VwdCIpKQogICAgICAgICBzb3VwX21lc3NhZ2VfaGVhZGVyc19hcHBlbmQo
c291cE1lc3NhZ2UtPnJlcXVlc3RfaGVhZGVycywgIkFjY2VwdCIsICIqLyoiKTsKIAotICAgIC8v
IFNlbmQgdGhlIHJlcXVlc3Qgb25seSBpZiBpdCdzIG5vdCBiZWVuIGV4cGxpY2l0ZWx5IGRlZmVy
cmVkLgorICAgIC8vIFNlbmQgdGhlIHJlcXVlc3Qgb25seSBpZiBpdCdzIG5vdCBiZWVuIGV4cGxp
Y2l0bHkgZGVmZXJyZWQuCiAgICAgaWYgKCFkLT5tX2RlZmVyc0xvYWRpbmcpIHsKICAgICAgICAg
ZC0+bV9jYW5jZWxsYWJsZSA9IGFkb3B0R1JlZihnX2NhbmNlbGxhYmxlX25ldygpKTsKICAgICAg
ICAgc291cF9yZXF1ZXN0X3NlbmRfYXN5bmMoZC0+bV9zb3VwUmVxdWVzdC5nZXQoKSwgZC0+bV9j
YW5jZWxsYWJsZS5nZXQoKSwgc2VuZFJlcXVlc3RDYWxsYmFjaywgaGFuZGxlKTsKQEAgLTczOCwz
NCArNzM1LDMzIEBAIHZvaWQgUmVzb3VyY2VIYW5kbGU6OmNhbmNlbCgpCiAgICAgICAgIGdfY2Fu
Y2VsbGFibGVfY2FuY2VsKGQtPm1fY2FuY2VsbGFibGUuZ2V0KCkpOwogfQogCi12b2lkIFJlc291
cmNlSGFuZGxlOjpwbGF0Zm9ybVNldERlZmVyc0xvYWRpbmcoYm9vbCBkZWZlcnNMb2FkaW5nKQor
c3RhdGljIGJvb2wgaGFzQmVlblNlbnQoUmVzb3VyY2VIYW5kbGUqIGhhbmRsZSkKIHsKLSAgICAv
LyBJbml0aWFsIGltcGxlbWVudGF0aW9uIG9mIHRoaXMgbWV0aG9kIHdhcyByZXF1aXJlZCBmb3Ig
YnVnICM0NDE1Ny4KKyAgICBSZXNvdXJjZUhhbmRsZUludGVybmFsKiBkID0gaGFuZGxlLT5nZXRJ
bnRlcm5hbCgpOwogCisgICAgcmV0dXJuIGQtPm1fY2FuY2VsbGFibGU7Cit9CisKK3ZvaWQgUmVz
b3VyY2VIYW5kbGU6OnBsYXRmb3JtU2V0RGVmZXJzTG9hZGluZyhib29sIGRlZmVyc0xvYWRpbmcp
Cit7CiAgICAgaWYgKGQtPm1fY2FuY2VsbGVkKQogICAgICAgICByZXR1cm47CiAKLSAgICBpZiAo
IWRlZmVyc0xvYWRpbmcgJiYgIWQtPm1fY2FuY2VsbGFibGUgJiYgZC0+bV9zb3VwUmVxdWVzdC5n
ZXQoKSkgeworICAgIC8vIFdlIG9ubHkgbmVlZCB0byB0YWtlIGFjdGlvbiBoZXJlIHRvIFVOLWRl
ZmVyIGxvYWRpbmcuCisgICAgaWYgKGRlZmVyc0xvYWRpbmcpCisgICAgICAgIHJldHVybjsKKwor
ICAgIGlmICghaGFzQmVlblNlbnQodGhpcykpIHsKKyAgICAgICAgQVNTRVJUKGQtPm1fc291cFJl
cXVlc3QpOwogICAgICAgICBkLT5tX2NhbmNlbGxhYmxlID0gYWRvcHRHUmVmKGdfY2FuY2VsbGFi
bGVfbmV3KCkpOwogICAgICAgICBzb3VwX3JlcXVlc3Rfc2VuZF9hc3luYyhkLT5tX3NvdXBSZXF1
ZXN0LmdldCgpLCBkLT5tX2NhbmNlbGxhYmxlLmdldCgpLCBzZW5kUmVxdWVzdENhbGxiYWNrLCB0
aGlzKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIC8vIE9ubHkgc3VwcG9ydGVkIGZv
ciBodHRwKHMpIHRyYW5zZmVycy4gU29tZXRoaW5nIHNpbWlsYXIgd291bGQKLSAgICAvLyBwcm9i
YWJseSBiZSBuZWVkZWQgZm9yIGRhdGEgdHJhbnNmZXJzIGRvbmUgd2l0aCBHSU8uCi0gICAgaWYg
KCFkLT5tX3NvdXBNZXNzYWdlKQotICAgICAgICByZXR1cm47Ci0KLSAgICAvLyBEbyBub3QgcGF1
c2Ugb3IgdW5wYXVzZSBvcGVyYXRpb25zIHRoYXQgYXJlIGNvbXBsZXRlZCBvciBoYXZlIG5vdCBy
ZWFjaGVkCi0gICAgLy8gc2VuZFJlcXVlc3RDYWxsYmFjayB5ZXQuIElmIG1fZGVmZXJzTG9hZGlu
ZyBpcyB0cnVlIGF0IHRoYXQgcG9pbnQsIHdlJ2xsIHBhdXNlLgotICAgIFNvdXBNZXNzYWdlKiBz
b3VwTWVzc2FnZSA9IGQtPm1fc291cE1lc3NhZ2UuZ2V0KCk7Ci0gICAgaWYgKGQtPm1fZmluaXNo
ZWQgfHwgIWQtPm1faW5wdXRTdHJlYW0pCi0gICAgICAgIHJldHVybjsKLQotICAgIGlmIChkZWZl
cnNMb2FkaW5nKQotICAgICAgICBzb3VwX3Nlc3Npb25fcGF1c2VfbWVzc2FnZShkZWZhdWx0U2Vz
c2lvbigpLCBzb3VwTWVzc2FnZSk7Ci0gICAgZWxzZQotICAgICAgICBzb3VwX3Nlc3Npb25fdW5w
YXVzZV9tZXNzYWdlKGRlZmF1bHRTZXNzaW9uKCksIHNvdXBNZXNzYWdlKTsKKyAgICBpZiAoZC0+
bV9kZWZlcnJlZFJlc3VsdCkgeworICAgICAgICBHUmVmUHRyPEdBc3luY1Jlc3VsdD4gYXN5bmNS
ZXN1bHQgPSBhZG9wdEdSZWYoZC0+bV9kZWZlcnJlZFJlc3VsdC5sZWFrUmVmKCkpOworICAgICAg
ICByZWFkQ2FsbGJhY2soR19PQkpFQ1QoZC0+bV9pbnB1dFN0cmVhbS5nZXQoKSksIGFzeW5jUmVz
dWx0LmdldCgpLCB0aGlzKTsKKyAgICB9CiB9CiAKIGJvb2wgUmVzb3VyY2VIYW5kbGU6OmxvYWRz
QmxvY2tlZCgpCkBAIC04MjMsNiArODE5LDExIEBAIHN0YXRpYyB2b2lkIHJlYWRDYWxsYmFjayhH
T2JqZWN0KiBzb3VyY2UsIEdBc3luY1Jlc3VsdCogYXN5bmNSZXN1bHQsIGdwb2ludGVyIGRhCiAg
ICAgICAgIHJldHVybjsKICAgICB9CiAKKyAgICBpZiAoZC0+bV9kZWZlcnNMb2FkaW5nKSB7Cisg
ICAgICAgIGQtPm1fZGVmZXJyZWRSZXN1bHQgPSBhc3luY1Jlc3VsdDsKKyAgICAgICAgcmV0dXJu
OworICAgIH0KKwogICAgIEdPd25QdHI8R0Vycm9yPiBlcnJvcjsKICAgICBnc3NpemUgYnl0ZXNS
ZWFkID0gZ19pbnB1dF9zdHJlYW1fcmVhZF9maW5pc2goZC0+bV9pbnB1dFN0cmVhbS5nZXQoKSwg
YXN5bmNSZXN1bHQsICZlcnJvci5vdXRQdHIoKSk7CiAgICAgaWYgKGVycm9yKSB7CkBAIC04Nzgs
OCArODc5LDExIEBAIHN0YXRpYyBib29sIHN0YXJ0Tm9uSFRUUFJlcXVlc3QoUmVzb3VyY2VIYW5k
bGUqIGhhbmRsZSwgS1VSTCB1cmwpCiAgICAgLy8gYmFsYW5jZWQgYnkgYSBkZXJlZigpIGluIGNs
ZWFudXBTb3VwUmVxdWVzdE9wZXJhdGlvbiwgd2hpY2ggc2hvdWxkIGFsd2F5cyBydW4KICAgICBo
YW5kbGUtPnJlZigpOwogCi0gICAgZC0+bV9jYW5jZWxsYWJsZSA9IGFkb3B0R1JlZihnX2NhbmNl
bGxhYmxlX25ldygpKTsKLSAgICBzb3VwX3JlcXVlc3Rfc2VuZF9hc3luYyhkLT5tX3NvdXBSZXF1
ZXN0LmdldCgpLCBkLT5tX2NhbmNlbGxhYmxlLmdldCgpLCBzZW5kUmVxdWVzdENhbGxiYWNrLCBo
YW5kbGUpOworICAgIC8vIFNlbmQgdGhlIHJlcXVlc3Qgb25seSBpZiBpdCdzIG5vdCBiZWVuIGV4
cGxpY2l0bHkgZGVmZXJyZWQuCisgICAgaWYgKCFkLT5tX2RlZmVyc0xvYWRpbmcpIHsKKyAgICAg
ICAgZC0+bV9jYW5jZWxsYWJsZSA9IGFkb3B0R1JlZihnX2NhbmNlbGxhYmxlX25ldygpKTsKKyAg
ICAgICAgc291cF9yZXF1ZXN0X3NlbmRfYXN5bmMoZC0+bV9zb3VwUmVxdWVzdC5nZXQoKSwgZC0+
bV9jYW5jZWxsYWJsZS5nZXQoKSwgc2VuZFJlcXVlc3RDYWxsYmFjaywgaGFuZGxlKTsKKyAgICB9
CiAKICAgICByZXR1cm4gdHJ1ZTsKIH0KLS0gCjEuNy43LjEKCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>