<?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>71611</bug_id>
          
          <creation_ts>2011-11-05 10:31:18 -0700</creation_ts>
          <short_desc>[GTK] simplify ResourceHandleSoup</short_desc>
          <delta_ts>2011-12-08 08:27:39 -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>
          
          <blocked>72227</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Dan Winship">danw</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>gustavo.noronha</cc>
    
    <cc>gustavo</cc>
    
    <cc>leandro</cc>
    
    <cc>mrobinson</cc>
    
    <cc>rakuco</cc>
    
    <cc>svillar</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>496676</commentid>
    <comment_count>0</comment_count>
    <who name="Dan Winship">danw</who>
    <bug_when>2011-11-05 10:31:18 -0700</bug_when>
    <thetext>One of the goals of the SoupRequest API was to make it possible to unify the HTTP and non-HTTP codepaths in ResourceHandleSoup, but this never completely happened. This should move us much further towards that goal (and gets rid of a lot of redundant code in the process).

The first three patches are miscellaneous cleanups, and can be committed at any time (and possibly squashed into a single commit?). But the last patch depends on the corresponding libsoup changes in https://bugzilla.gnome.org/show_bug.cgi?id=663451 and so will need to be coordinated with that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>496677</commentid>
    <comment_count>1</comment_count>
      <attachid>113758</attachid>
    <who name="Dan Winship">danw</who>
    <bug_when>2011-11-05 10:32:07 -0700</bug_when>
    <thetext>Created attachment 113758
Don&apos;t unnecessarily 0-initialize read buffers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>496678</commentid>
    <comment_count>2</comment_count>
      <attachid>113759</attachid>
    <who name="Dan Winship">danw</who>
    <bug_when>2011-11-05 10:32:26 -0700</bug_when>
    <thetext>Created attachment 113759
Remove a bit of dead code</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>496679</commentid>
    <comment_count>3</comment_count>
      <attachid>113760</attachid>
    <who name="Dan Winship">danw</who>
    <bug_when>2011-11-05 10:32:51 -0700</bug_when>
    <thetext>Created attachment 113760
Actually use the user_data arguments to gio async</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>496680</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-11-05 10:33:03 -0700</bug_when>
    <thetext>Attachment 113758 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCor...&quot; exit_code: 1

Source/WebCore/ChangeLog:1:  ChangeLog entry has no bug number  [changelog/bugnumber] [5]
Total errors found: 1 in 2 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>496681</commentid>
    <comment_count>5</comment_count>
      <attachid>113761</attachid>
    <who name="Dan Winship">danw</who>
    <bug_when>2011-11-05 10:33:17 -0700</bug_when>
    <thetext>Created attachment 113761
Remove lots of code that is now unnecessary after</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>496682</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-11-05 10:34:46 -0700</bug_when>
    <thetext>Attachment 113759 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCor...&quot; exit_code: 1

Source/WebCore/ChangeLog:1:  ChangeLog entry has no bug number  [changelog/bugnumber] [5]
Total errors found: 1 in 2 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>496683</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-11-05 10:35:55 -0700</bug_when>
    <thetext>Attachment 113761 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;ChangeLog&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u...&quot; exit_code: 1

Source/WebCore/ChangeLog:1:  ChangeLog entry has no bug number  [changelog/bugnumber] [5]
ChangeLog:1:  ChangeLog entry has no bug number  [changelog/bugnumber] [5]
Total errors found: 2 in 4 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>496690</commentid>
    <comment_count>8</comment_count>
      <attachid>113761</attachid>
    <who name="Collabora GTK+ EWS bot">gustavo.noronha</who>
    <bug_when>2011-11-05 12:16:36 -0700</bug_when>
    <thetext>Comment on attachment 113761
Remove lots of code that is now unnecessary after

Attachment 113761 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/10336291</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>496691</commentid>
    <comment_count>9</comment_count>
      <attachid>113758</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2011-11-05 12:20:24 -0700</bug_when>
    <thetext>Comment on attachment 113758
Don&apos;t unnecessarily 0-initialize read buffers.

This change looks fine, but you should probably update the changelog to include the bug. You can use prepare-ChangeLog --bug &lt;bugnumber&gt; for that. It&apos;s also easier if you split each patch into it&apos;s own bug. There&apos;s no strict requirement for this, but it allows using the commit-queue to land the patches.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>496692</commentid>
    <comment_count>10</comment_count>
      <attachid>113759</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2011-11-05 12:22:20 -0700</bug_when>
    <thetext>Comment on attachment 113759
Remove a bit of dead code

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

&gt; Source/WebCore/platform/network/soup/ResourceHandleSoup.cpp:-835
&gt; -    bool convertToUTF16 = static_cast&lt;bool&gt;(data);

It seems data is unused now? If so you should remove the argument name or surround it like this /* data */ to avoid a compiler warning.

&gt; Source/WebCore/platform/network/soup/ResourceHandleSoup.cpp:862
&gt; -    if (G_LIKELY(!convertToUTF16))
&gt; -        client-&gt;didReceiveData(handle.get(), d-&gt;m_buffer, bytesRead, bytesRead);
&gt; -    else {
&gt; -        // We have to convert it to UTF-16 due to limitations in KURL
&gt; -        String data = String::fromUTF8(d-&gt;m_buffer, bytesRead);
&gt; -        client-&gt;didReceiveData(handle.get(), reinterpret_cast&lt;const char*&gt;(data.characters()), data.length() * sizeof(UChar), bytesRead);
&gt; -    }
&gt; +    client-&gt;didReceiveData(handle.get(), d-&gt;m_buffer, bytesRead, bytesRead);

Oh, thank god. That code was so mysterious. I&apos;m glad it&apos;s gone.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>496693</commentid>
    <comment_count>11</comment_count>
      <attachid>113760</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2011-11-05 12:23:54 -0700</bug_when>
    <thetext>Comment on attachment 113760
Actually use the user_data arguments to gio async

Awesome!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>496694</commentid>
    <comment_count>12</comment_count>
      <attachid>113761</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2011-11-05 12:36:57 -0700</bug_when>
    <thetext>Comment on attachment 113761
Remove lots of code that is now unnecessary after

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

This patch is awesome. I&apos;m sad to see the soup dependency go up again, but we were using unstable API so it seem unavoidable.

&gt; Source/WebCore/platform/network/soup/ResourceHandleSoup.cpp:316
&gt; +        if (handle-&gt;shouldContentSniff()
&gt; +            &amp;&amp; soupMessage-&gt;status_code != SOUP_STATUS_NOT_MODIFIED) {

This can be one line. In WebKit we generally go to about 120 character before splitting them.

&gt; Source/WebCore/platform/network/soup/ResourceHandleSoup.cpp:321
&gt; +            const char* officialType = soup_message_headers_get_one(soupMessage-&gt;response_headers, &quot;Content-Type&quot;);
&gt; +            const char* sniffedType = soup_request_get_content_type(d-&gt;m_soupRequest.get());
&gt; +            if (sniffedType &amp;&amp; (!officialType || strcmp(officialType, sniffedType)))
&gt; +                d-&gt;m_response.setSniffedContentType(sniffedType);
&gt; +        }

I think it would make sense to always set the sniffed content type and move the logic about whether or not the sniffed type should override the advertised type to ResourceResponse::updateFromSoupMessage. I say this because otherwise there might be times when sniffedContentType returns an empty string even when Soup did sniff a content type.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>496700</commentid>
    <comment_count>13</comment_count>
    <who name="Dan Winship">danw</who>
    <bug_when>2011-11-05 13:53:28 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; It&apos;s also easier if you split each patch into it&apos;s own bug. There&apos;s no strict requirement for this, but it allows using the commit-queue to land the patches.

OK, should I do that then? (I need to update all the patches either way, to include bug numbers.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>496703</commentid>
    <comment_count>14</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2011-11-05 14:06:30 -0700</bug_when>
    <thetext>(In reply to comment #13)
&gt; (In reply to comment #9)
&gt; &gt; It&apos;s also easier if you split each patch into it&apos;s own bug. There&apos;s no strict requirement for this, but it allows using the commit-queue to land the patches.
&gt; 
&gt; OK, should I do that then? (I need to update all the patches either way, to include bug numbers.)

Sure. We could land some of these immediately then.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>496812</commentid>
    <comment_count>15</comment_count>
      <attachid>113786</attachid>
    <who name="Dan Winship">danw</who>
    <bug_when>2011-11-06 10:01:07 -0800</bug_when>
    <thetext>Created attachment 113786
updated - Remove lots of code that is now unnecessary

ok, moved the sniffing override check to ResourceResponseSoup.cpp. I changed the existing references to &quot;sniffedContentType()&quot; to &quot;m_sniffedContentType&quot;, which seemed more consistent with the surrounding code.

&gt; I&apos;m sad to see the soup dependency go up again

yeah... based on historical precedent, it seems likely it will get bumped again during/after the hackfest, so maybe there&apos;s an argument for not committing this until then?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>496834</commentid>
    <comment_count>16</comment_count>
      <attachid>113786</attachid>
    <who name="Collabora GTK+ EWS bot">gustavo.noronha</who>
    <bug_when>2011-11-06 12:04:23 -0800</bug_when>
    <thetext>Comment on attachment 113786
updated - Remove lots of code that is now unnecessary

Attachment 113786 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/10334538</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>497077</commentid>
    <comment_count>17</comment_count>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2011-11-07 04:52:29 -0800</bug_when>
    <thetext>I don&apos;t think we need to wait for the hackfest, we just need to coordinate updating the bots. It&apos;ll be better having this code in and getting tested before the hackfest =) I guess we need soup master for this patch to work, or is the new stuff in a release already?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>497079</commentid>
    <comment_count>18</comment_count>
    <who name="Dan Winship">danw</who>
    <bug_when>2011-11-07 04:58:04 -0800</bug_when>
    <thetext>it&apos;s not in a release yet, though i could make a 2.37.1.1 release for you if you&apos;d like.

(it&apos;s also not committed to master yet; i didn&apos;t want to commit it until i knew for sure that this patch was going in too.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>497212</commentid>
    <comment_count>19</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2011-11-07 09:00:48 -0800</bug_when>
    <thetext>(In reply to comment #18)

&gt; (it&apos;s also not committed to master yet; i didn&apos;t want to commit it until i knew for sure that this patch was going in too.)

For what it&apos;s worth, I&apos;d really like to see this happen. I don&apos;t think anyone will be opposed to this. CCing Sergio so he can take a look.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>497289</commentid>
    <comment_count>20</comment_count>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2011-11-07 10:41:33 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; Created an attachment (id=113760) [details]
&gt; Actually use the user_data arguments to gio async

The g_object_set_data is legacy stuff that was kept when I first moved ResourceHandleSoup to the new API because the user_data argument was used for some other stuff I cannot really remember IIRC. Now it seems a pretty obvious change, thx!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>497291</commentid>
    <comment_count>21</comment_count>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2011-11-07 10:47:27 -0800</bug_when>
    <thetext>(In reply to comment #19)
&gt; (In reply to comment #18)
&gt; 
&gt; &gt; (it&apos;s also not committed to master yet; i didn&apos;t want to commit it until i knew for sure that this patch was going in too.)
&gt; 
&gt; For what it&apos;s worth, I&apos;d really like to see this happen. I don&apos;t think anyone will be opposed to this. CCing Sergio so he can take a look.

If we still pass the tests then this patch is not only awesome but super-awesome.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>513617</commentid>
    <comment_count>22</comment_count>
      <attachid>113786</attachid>
    <who name="Dan Winship">danw</who>
    <bug_when>2011-12-02 01:39:23 -0800</bug_when>
    <thetext>Comment on attachment 113786
updated - Remove lots of code that is now unnecessary

needs rebasing now (and an updated libsoup version requirement)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>513669</commentid>
    <comment_count>23</comment_count>
      <attachid>117607</attachid>
    <who name="Dan Winship">danw</who>
    <bug_when>2011-12-02 04:16:11 -0800</bug_when>
    <thetext>Created attachment 117607
rebased and with updated libsoup version requirement</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>513809</commentid>
    <comment_count>24</comment_count>
      <attachid>117607</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2011-12-02 08:57:40 -0800</bug_when>
    <thetext>Comment on attachment 117607
rebased and with updated libsoup version requirement

Attachment 117607 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/10690380</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>513887</commentid>
    <comment_count>25</comment_count>
      <attachid>117607</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2011-12-02 10:11:21 -0800</bug_when>
    <thetext>Comment on attachment 117607
rebased and with updated libsoup version requirement

Yes!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>514465</commentid>
    <comment_count>26</comment_count>
      <attachid>117607</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2011-12-03 01:23:05 -0800</bug_when>
    <thetext>Comment on attachment 117607
rebased and with updated libsoup version requirement

Clearing flags on attachment: 117607

Committed r101917: &lt;http://trac.webkit.org/changeset/101917&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>514466</commentid>
    <comment_count>27</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2011-12-03 01:23:15 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>516645</commentid>
    <comment_count>28</comment_count>
    <who name="Raphael Kubo da Costa (:rakuco)">rakuco</who>
    <bug_when>2011-12-07 08:09:16 -0800</bug_when>
    <thetext>Is there any way to make this change somehow backward-compatible? We (webkit-efl) also use the soup backend, but can&apos;t require users and developers to use a development libsoup version released a few weeks ago. Refreshing a page using EWebLauncher, for example, gives me the following backtrace:

0xb50ccd2b in WebCore::SubresourceLoader::didFail (this=0x8186fc0, error=...)
    at /home/profusion/dev/webkit-efl/Source/WebCore/loader/SubresourceLoader.cpp:270
270         ASSERT(!m_resource-&gt;resourceToRevalidate());
(gdb) bt
#0  0xb50ccd2b in WebCore::SubresourceLoader::didFail (this=0x8186fc0, error=...)
    at /home/profusion/dev/webkit-efl/Source/WebCore/loader/SubresourceLoader.cpp:270
#1  0xb50c944a in WebCore::ResourceLoader::didFail (this=0x8186fc0, error=...)
    at /home/profusion/dev/webkit-efl/Source/WebCore/loader/ResourceLoader.cpp:462
#2  0xb5b29d5e in WebCore::sendRequestCallback (source=0x80c0ea0, res=0x807aa48, data=0x8186ef8)
    at /home/profusion/dev/webkit-efl/Source/WebCore/platform/network/soup/ResourceHandleSoup.cpp:306
#3  0xb7c60ccf in g_simple_async_result_complete (simple=0x807aa48)
    at /build/buildd/glib2.0-2.28.6/./gio/gsimpleasyncresult.c:747
#4  0xb7d3c58e in sent_async (source=0x814f100, result=0x80c1a88, user_data=0x807aa48) at soup-request-http.c:109
#5  0xb7d2dc19 in wrapper_callback (source_object=0x814f100, res=0x80c1a88, user_data=0x807aa48)
    at soup-http-input-stream.c:539
#6  0xb7c60ccf in g_simple_async_result_complete (simple=0x80c1a88)
    at /build/buildd/glib2.0-2.28.6/./gio/gsimpleasyncresult.c:747
#7  0xb7d2db7e in send_async_finished (stream=0x814f100) at soup-http-input-stream.c:599
#8  0xb7d2dd7e in soup_http_input_stream_finished (msg=0x814e498, stream=0x814f100) at soup-http-input-stream.c:310
[...]</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>517320</commentid>
    <comment_count>29</comment_count>
    <who name="Dan Winship">danw</who>
    <bug_when>2011-12-08 05:16:21 -0800</bug_when>
    <thetext>(In reply to comment #28)
&gt; Is there any way to make this change somehow backward-compatible?

Short answer: No, we&apos;d need to have both the old and the new code there, selected by ifdef or at runtime.

Longer answer: WebKitGTK follows the GNOME release cycle, and so it&apos;s easy for us to have unstable WebKit requiring unstable GNOME libraries. But the EFL port has no release cycle or stable branch yet, so any dependency change immediately impacts some downstream users.

This is going to continue to be a problem, because with jhbuild in the build system and on the bots, it makes it much easier for us to depend on newer glib/libsoup releases for bugfixes and new features.

Possible fixes: (1) EFL could drop libsoup in favor of curl, or (eventually) Ecore_Con_Url. (2) EFL could use the new jhbuild infrastructure to build libsoup, etc rather than depending on the system libraries being new enough. (3) EFL could fork the soup backend and not use new APIs in the fork. (4) ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>517434</commentid>
    <comment_count>30</comment_count>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2011-12-08 08:27:39 -0800</bug_when>
    <thetext>4 would be EFL maintaining a stable branch to which they cherry-pick commits as they see fit, like we do for our stable releases, or like we do for the clutter port too - we intentionally stayed behind trunk for a while because of a soup dependency bump that we didn&apos;t want to push our to downstreams just yet, and have since caught up with that one.

If the EFL maintainers would prefer to keep using trunk, then my sugestion would be that they fork ResourceHandleSoup for now, and start using the new code again when they feel like they can depend on a newer soup. Unfortunately it&apos;s hard to balance our need to push our infrastructure forward with making it possible to build with and use older versions</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>113758</attachid>
            <date>2011-11-05 10:32:07 -0700</date>
            <delta_ts>2011-11-05 16:28:07 -0700</delta_ts>
            <desc>Don&apos;t unnecessarily 0-initialize read buffers.</desc>
            <filename>0001-GTK-Don-t-unnecessarily-0-initialize-read-buffers.patch</filename>
            <type>text/plain</type>
            <size>1882</size>
            <attacher name="Dan Winship">danw</attacher>
            
              <data encoding="base64">RnJvbSA2NjhmNjc2YTIwZTI2NjJlMWYxMmRmZTcxNzA2MTI5MTFlNTgyNWMwIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBEYW4gV2luc2hpcCA8ZGFud0Bnbm9tZS5vcmc+CkRhdGU6IFdl
ZCwgMiBOb3YgMjAxMSAxODozOTo1NCAtMDQwMApTdWJqZWN0OiBbUEFUQ0ggMS80XSBbR1RLXSBE
b24ndCB1bm5lY2Vzc2FyaWx5IDAtaW5pdGlhbGl6ZSByZWFkIGJ1ZmZlcnMuCgpSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KCk5vIG5ldyB0ZXN0czsgYmVoYXZpb3IgaXMgdW5jaGFuZ2VkCgoq
IHBsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUhhbmRsZVNvdXAuY3BwOgooV2ViQ29yZTo6
c2VuZFJlcXVlc3RDYWxsYmFjayk6Ci0tLQogU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nICAgICAg
ICAgICAgICAgICAgICAgICAgICAgfCAgIDExICsrKysrKysrKysrCiAuLi4vcGxhdGZvcm0vbmV0
d29yay9zb3VwL1Jlc291cmNlSGFuZGxlU291cC5jcHAgICB8ICAgIDIgKy0KIDIgZmlsZXMgY2hh
bmdlZCwgMTIgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDhk
NDYzNC4uYTI5ZTE2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDExLTExLTA1ICBE
YW4gV2luc2hpcCAgPGRhbndAZ25vbWUub3JnPgorCisgICAgICAgIFtHVEtdIERvbid0IHVubmVj
ZXNzYXJpbHkgMC1pbml0aWFsaXplIHJlYWQgYnVmZmVycy4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHM7IGJlaGF2aW9yIGlzIHVu
Y2hhbmdlZAorCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlSGFuZGxl
U291cC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpzZW5kUmVxdWVzdENhbGxiYWNrKToKKwogMjAx
MS0xMS0wNSAgU2ltb24gSGF1c21hbm4gIDxzaW1vbi5oYXVzbWFubkBub2tpYS5jb20+CiAKICAg
ICAgICAgUmVtb3ZlIGVtcHR5IGFuZCB1bnVzZWQgZG9tL1Bvc2l0aW9uQ3JlYXRpb25GdW5jdGlv
bnMuaCBoZWFkZXIgZmlsZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9zb3VwL1Jlc291cmNlSGFuZGxlU291cC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5kbGVTb3VwLmNwcAppbmRleCAxODU4ZjRjLi40ZjRm
MzBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVz
b3VyY2VIYW5kbGVTb3VwLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L3NvdXAvUmVzb3VyY2VIYW5kbGVTb3VwLmNwcApAQCAtNDkyLDcgKzQ5Miw3IEBAIHN0YXRpYyB2
b2lkIHNlbmRSZXF1ZXN0Q2FsbGJhY2soR09iamVjdCogc291cmNlLCBHQXN5bmNSZXN1bHQqIHJl
cywgZ3BvaW50ZXIgdXNlCiAgICAgfQogCiAgICAgZC0+bV9pbnB1dFN0cmVhbSA9IGFkb3B0R1Jl
Zihpbik7Ci0gICAgZC0+bV9idWZmZXIgPSBzdGF0aWNfY2FzdDxjaGFyKj4oZ19zbGljZV9hbGxv
YzAoUkVBRF9CVUZGRVJfU0laRSkpOworICAgIGQtPm1fYnVmZmVyID0gc3RhdGljX2Nhc3Q8Y2hh
cio+KGdfc2xpY2VfYWxsb2MoUkVBRF9CVUZGRVJfU0laRSkpOwogCiAgICAgLy8gcmVhZENhbGxi
YWNrIG5lZWRzIGl0CiAgICAgZ19vYmplY3Rfc2V0X2RhdGEoR19PQkpFQ1QoZC0+bV9pbnB1dFN0
cmVhbS5nZXQoKSksICJ3ZWJraXQtcmVzb3VyY2UiLCBoYW5kbGUuZ2V0KCkpOwotLSAKMS43LjcK
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>113759</attachid>
            <date>2011-11-05 10:32:26 -0700</date>
            <delta_ts>2011-11-05 16:28:17 -0700</delta_ts>
            <desc>Remove a bit of dead code</desc>
            <filename>0002-GTK-Remove-a-bit-of-dead-code.patch</filename>
            <type>text/plain</type>
            <size>3097</size>
            <attacher name="Dan Winship">danw</attacher>
            
              <data encoding="base64">RnJvbSA1NTcwNTgwM2I1YmEyNmFhYmYzZTE2ZTczOGUxZmI2NDA4ZTY1Zjk3IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBEYW4gV2luc2hpcCA8ZGFud0Bnbm9tZS5vcmc+CkRhdGU6IFN1
biwgMjMgT2N0IDIwMTEgMjE6MTQ6MTkgLTA0MDAKU3ViamVjdDogW1BBVENIIDIvNF0gW0dUS10g
UmVtb3ZlIGEgYml0IG9mIGRlYWQgY29kZQoKdGhlIGNhbGxlciB0aGF0IG5lZWRlZCB0aGUgY29u
dmVydFRvVVRGMTYgY29kZSB3YXMgcmVtb3ZlZCBpbiByNzc0MDgsCmJ1dCB0aGUgY29kZSB3YXMg
YWNjaWRlbnRhbGx5IGxlZnQgYmVoaW5kLgotLS0KIFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxMyArKysrKysrKysrKysrCiAuLi4vcGxhdGZv
cm0vbmV0d29yay9zb3VwL1Jlc291cmNlSGFuZGxlU291cC5jcHAgICB8ICAgMTEgKystLS0tLS0t
LS0KIDIgZmlsZXMgY2hhbmdlZCwgMTUgaW5zZXJ0aW9ucygrKSwgOSBkZWxldGlvbnMoLSkKCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKaW5kZXggYTI5ZTE2OC4uZWY4NWJjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDE4IEBA
CiAyMDExLTExLTA1ICBEYW4gV2luc2hpcCAgPGRhbndAZ25vbWUub3JnPgogCisgICAgICAgIFtH
VEtdIFJlbW92ZSBhIGJpdCBvZiBkZWFkIGNvZGUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHM7IGJlaGF2aW9yIGlzIHVuY2hhbmdl
ZAorCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlSGFuZGxlU291cC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpyZWFkQ2FsbGJhY2spOiB0aGUgY2FsbGVyIHRoYXQgbmVl
ZGVkIHRoZSBjb252ZXJ0VG9VVEYxNgorICAgICAgICBjb2RlIHdhcyByZW1vdmVkIGluIHI3NzQw
OCwgYnV0IHRoZSBjb2RlIHdhcyBhY2NpZGVudGFsbHkgbGVmdAorICAgICAgICBiZWhpbmQuCisK
KzIwMTEtMTEtMDUgIERhbiBXaW5zaGlwICA8ZGFud0Bnbm9tZS5vcmc+CisKICAgICAgICAgW0dU
S10gRG9uJ3QgdW5uZWNlc3NhcmlseSAwLWluaXRpYWxpemUgcmVhZCBidWZmZXJzLgogCiAgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlSGFuZGxlU291cC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5kbGVTb3VwLmNwcAppbmRl
eCA0ZjRmMzBkLi43MWFiNzdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5kbGVTb3VwLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5kbGVTb3VwLmNwcApAQCAtODMyLDcgKzgz
Miw2IEBAIHN0YXRpYyB2b2lkIHJlYWRDYWxsYmFjayhHT2JqZWN0KiBzb3VyY2UsIEdBc3luY1Jl
c3VsdCogYXN5bmNSZXN1bHQsIGdwb2ludGVyIGRhCiAgICAgaWYgKCFoYW5kbGUpCiAgICAgICAg
IHJldHVybjsKIAotICAgIGJvb2wgY29udmVydFRvVVRGMTYgPSBzdGF0aWNfY2FzdDxib29sPihk
YXRhKTsKICAgICBSZXNvdXJjZUhhbmRsZUludGVybmFsKiBkID0gaGFuZGxlLT5nZXRJbnRlcm5h
bCgpOwogICAgIFJlc291cmNlSGFuZGxlQ2xpZW50KiBjbGllbnQgPSBoYW5kbGUtPmNsaWVudCgp
OwogCkBAIC04NjAsMTMgKzg1OSw3IEBAIHN0YXRpYyB2b2lkIHJlYWRDYWxsYmFjayhHT2JqZWN0
KiBzb3VyY2UsIEdBc3luY1Jlc3VsdCogYXN5bmNSZXN1bHQsIGdwb2ludGVyIGRhCiAgICAgLy8g
SXQncyBtYW5kYXRvcnkgdG8gaGF2ZSBzZW50IGEgcmVzcG9uc2UgYmVmb3JlIHNlbmRpbmcgZGF0
YQogICAgIEFTU0VSVCghZC0+bV9yZXNwb25zZS5pc051bGwoKSk7CiAKLSAgICBpZiAoR19MSUtF
TFkoIWNvbnZlcnRUb1VURjE2KSkKLSAgICAgICAgY2xpZW50LT5kaWRSZWNlaXZlRGF0YShoYW5k
bGUuZ2V0KCksIGQtPm1fYnVmZmVyLCBieXRlc1JlYWQsIGJ5dGVzUmVhZCk7Ci0gICAgZWxzZSB7
Ci0gICAgICAgIC8vIFdlIGhhdmUgdG8gY29udmVydCBpdCB0byBVVEYtMTYgZHVlIHRvIGxpbWl0
YXRpb25zIGluIEtVUkwKLSAgICAgICAgU3RyaW5nIGRhdGEgPSBTdHJpbmc6OmZyb21VVEY4KGQt
Pm1fYnVmZmVyLCBieXRlc1JlYWQpOwotICAgICAgICBjbGllbnQtPmRpZFJlY2VpdmVEYXRhKGhh
bmRsZS5nZXQoKSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oZGF0YS5jaGFyYWN0ZXJz
KCkpLCBkYXRhLmxlbmd0aCgpICogc2l6ZW9mKFVDaGFyKSwgYnl0ZXNSZWFkKTsKLSAgICB9Cisg
ICAgY2xpZW50LT5kaWRSZWNlaXZlRGF0YShoYW5kbGUuZ2V0KCksIGQtPm1fYnVmZmVyLCBieXRl
c1JlYWQsIGJ5dGVzUmVhZCk7CiAKICAgICAvLyBkaWRSZWNlaXZlRGF0YSBtYXkgY2FuY2VsIHRo
ZSBsb2FkLCB3aGljaCBtYXkgcmVsZWFzZSB0aGUgbGFzdCByZWZlcmVuY2UuCiAgICAgaWYgKGQt
Pm1fY2FuY2VsbGVkIHx8ICFjbGllbnQpIHsKQEAgLTg3NSw3ICs4NjgsNyBAQCBzdGF0aWMgdm9p
ZCByZWFkQ2FsbGJhY2soR09iamVjdCogc291cmNlLCBHQXN5bmNSZXN1bHQqIGFzeW5jUmVzdWx0
LCBncG9pbnRlciBkYQogICAgIH0KIAogICAgIGdfaW5wdXRfc3RyZWFtX3JlYWRfYXN5bmMoZC0+
bV9pbnB1dFN0cmVhbS5nZXQoKSwgZC0+bV9idWZmZXIsIFJFQURfQlVGRkVSX1NJWkUsIEdfUFJJ
T1JJVFlfREVGQVVMVCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQtPm1fY2FuY2Vs
bGFibGUuZ2V0KCksIHJlYWRDYWxsYmFjaywgZGF0YSk7CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBkLT5tX2NhbmNlbGxhYmxlLmdldCgpLCByZWFkQ2FsbGJhY2ssIDApOwogfQogCiBz
dGF0aWMgYm9vbCBzdGFydE5vbkhUVFBSZXF1ZXN0KFJlc291cmNlSGFuZGxlKiBoYW5kbGUsIEtV
UkwgdXJsKQotLSAKMS43LjcKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>113760</attachid>
            <date>2011-11-05 10:32:51 -0700</date>
            <delta_ts>2011-11-05 16:28:28 -0700</delta_ts>
            <desc>Actually use the user_data arguments to gio async</desc>
            <filename>0003-GTK-Actually-use-the-user_data-arguments-to-gio-asyn.patch</filename>
            <type>text/plain</type>
            <size>8534</size>
            <attacher name="Dan Winship">danw</attacher>
            
              <data encoding="base64">RnJvbSAyNTdkZjlmMDcwOWI5MDBjYmFmZGJiNDI4NTNkMjlmYTc2ZDIwMWYxIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBEYW4gV2luc2hpcCA8ZGFud0Bnbm9tZS5vcmc+CkRhdGU6IFN1
biwgMjMgT2N0IDIwMTEgMjE6MTU6MzcgLTA0MDAKU3ViamVjdDogW1BBVENIIDMvNF0gW0dUS10g
QWN0dWFsbHkgdXNlIHRoZSB1c2VyX2RhdGEgYXJndW1lbnRzIHRvIGdpbyBhc3luYwogZnVuY3Rp
b25zCgppbnN0ZWFkIG9mIHVzaW5nIGdfb2JqZWN0X3NldF9kYXRhKCkgdG8gYmFzaWNhbGx5IHJl
aW52ZW50IHRoZW0uCi0tLQogU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nICAgICAgICAgICAgICAg
ICAgICAgICAgICAgfCAgIDE5ICsrKysrKysrCiAuLi4vcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jl
c291cmNlSGFuZGxlU291cC5jcHAgICB8ICAgNDUgKysrKysrLS0tLS0tLS0tLS0tLS0KIDIgZmls
ZXMgY2hhbmdlZCwgMzIgaW5zZXJ0aW9ucygrKSwgMzIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmlu
ZGV4IGVmODViY2MuLjY0OTU0MWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsNSArMSwyNCBAQAogMjAxMS0x
MS0wNSAgRGFuIFdpbnNoaXAgIDxkYW53QGdub21lLm9yZz4KIAorICAgICAgICBbR1RLXSBBY3R1
YWxseSB1c2UgdGhlIHVzZXJfZGF0YSBhcmd1bWVudHMgdG8gZ2lvIGFzeW5jIGZ1bmN0aW9ucwor
ICAgICAgICBpbnN0ZWFkIG9mIHVzaW5nIGdfb2JqZWN0X3NldF9kYXRhKCkgdG8gYmFzaWNhbGx5
IHJlaW52ZW50IHRoZW0uCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgTm8gbmV3IHRlc3RzOyBiZWhhdmlvciBpcyB1bmNoYW5nZWQKKworICAgICAgICAq
IHBsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUhhbmRsZVNvdXAuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6UmVzb3VyY2VIYW5kbGVJbnRlcm5hbDo6flJlc291cmNlSGFuZGxlSW50ZXJuYWwp
OgorICAgICAgICAoV2ViQ29yZTo6Y2xlYW51cFNvdXBSZXF1ZXN0T3BlcmF0aW9uKToKKyAgICAg
ICAgKFdlYkNvcmU6OnNlbmRSZXF1ZXN0Q2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6c3Rh
cnRIVFRQUmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6cGxhdGZv
cm1TZXREZWZlcnNMb2FkaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OmNsb3NlQ2FsbGJhY2spOgor
ICAgICAgICAoV2ViQ29yZTo6cmVhZENhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OnN0YXJ0
Tm9uSFRUUFJlcXVlc3QpOgorCisyMDExLTExLTA1ICBEYW4gV2luc2hpcCAgPGRhbndAZ25vbWUu
b3JnPgorCiAgICAgICAgIFtHVEtdIFJlbW92ZSBhIGJpdCBvZiBkZWFkIGNvZGUKIAogICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUhhbmRsZVNvdXAuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlSGFuZGxlU291cC5jcHAKaW5kZXgg
NzFhYjc3ZS4uYTliMDdkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9zb3VwL1Jlc291cmNlSGFuZGxlU291cC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlSGFuZGxlU291cC5jcHAKQEAgLTEzOSw4ICsxMzks
NiBAQCBzdGF0aWMgYm9vbCBzdGFydE5vbkhUVFBSZXF1ZXN0KFJlc291cmNlSGFuZGxlKiwgS1VS
TCk7CiAKIFJlc291cmNlSGFuZGxlSW50ZXJuYWw6On5SZXNvdXJjZUhhbmRsZUludGVybmFsKCkK
IHsKLSAgICBpZiAobV9zb3VwUmVxdWVzdCkKLSAgICAgICAgZ19vYmplY3Rfc2V0X2RhdGEoR19P
QkpFQ1QobV9zb3VwUmVxdWVzdC5nZXQoKSksICJ3ZWJraXQtcmVzb3VyY2UiLCAwKTsKIH0KIAog
UmVzb3VyY2VIYW5kbGU6On5SZXNvdXJjZUhhbmRsZSgpCkBAIC0zNzgsMTUgKzM3NiwxMSBAQCBz
dGF0aWMgdm9pZCBjbGVhbnVwU291cFJlcXVlc3RPcGVyYXRpb24oUmVzb3VyY2VIYW5kbGUqIGhh
bmRsZSwgYm9vbCBpc0Rlc3Ryb3lpbgogewogICAgIFJlc291cmNlSGFuZGxlSW50ZXJuYWwqIGQg
PSBoYW5kbGUtPmdldEludGVybmFsKCk7CiAKLSAgICBpZiAoZC0+bV9zb3VwUmVxdWVzdCkgewot
ICAgICAgICBnX29iamVjdF9zZXRfZGF0YShHX09CSkVDVChkLT5tX3NvdXBSZXF1ZXN0LmdldCgp
KSwgIndlYmtpdC1yZXNvdXJjZSIsIDApOworICAgIGlmIChkLT5tX3NvdXBSZXF1ZXN0KQogICAg
ICAgICBkLT5tX3NvdXBSZXF1ZXN0LmNsZWFyKCk7Ci0gICAgfQogCi0gICAgaWYgKGQtPm1faW5w
dXRTdHJlYW0pIHsKLSAgICAgICAgZ19vYmplY3Rfc2V0X2RhdGEoR19PQkpFQ1QoZC0+bV9pbnB1
dFN0cmVhbS5nZXQoKSksICJ3ZWJraXQtcmVzb3VyY2UiLCAwKTsKKyAgICBpZiAoZC0+bV9pbnB1
dFN0cmVhbSkKICAgICAgICAgZC0+bV9pbnB1dFN0cmVhbS5jbGVhcigpOwotICAgIH0KIAogICAg
IGQtPm1fY2FuY2VsbGFibGUuY2xlYXIoKTsKIApAQCAtNDMxLDExICs0MjUsOSBAQCBzdGF0aWMg
UmVzb3VyY2VFcnJvciBjb252ZXJ0U291cEVycm9yVG9SZXNvdXJjZUVycm9yKEdFcnJvciogZXJy
b3IsIFNvdXBSZXF1ZXN0KgogICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZzo6ZnJvbVVU
RjgoZXJyb3ItPm1lc3NhZ2UpKTsKIH0KIAotc3RhdGljIHZvaWQgc2VuZFJlcXVlc3RDYWxsYmFj
ayhHT2JqZWN0KiBzb3VyY2UsIEdBc3luY1Jlc3VsdCogcmVzLCBncG9pbnRlciB1c2VyRGF0YSkK
K3N0YXRpYyB2b2lkIHNlbmRSZXF1ZXN0Q2FsbGJhY2soR09iamVjdCogc291cmNlLCBHQXN5bmNS
ZXN1bHQqIHJlcywgZ3BvaW50ZXIgZGF0YSkKIHsKLSAgICBSZWZQdHI8UmVzb3VyY2VIYW5kbGU+
IGhhbmRsZSA9IHN0YXRpY19jYXN0PFJlc291cmNlSGFuZGxlKj4oZ19vYmplY3RfZ2V0X2RhdGEo
c291cmNlLCAid2Via2l0LXJlc291cmNlIikpOwotICAgIGlmICghaGFuZGxlKQotICAgICAgICBy
ZXR1cm47CisgICAgUmVmUHRyPFJlc291cmNlSGFuZGxlPiBoYW5kbGUgPSBzdGF0aWNfY2FzdDxS
ZXNvdXJjZUhhbmRsZSo+KGRhdGEpOwogCiAgICAgUmVzb3VyY2VIYW5kbGVJbnRlcm5hbCogZCA9
IGhhbmRsZS0+Z2V0SW50ZXJuYWwoKTsKICAgICBSZXNvdXJjZUhhbmRsZUNsaWVudCogY2xpZW50
ID0gaGFuZGxlLT5jbGllbnQoKTsKQEAgLTQ5NCw5ICs0ODYsNiBAQCBzdGF0aWMgdm9pZCBzZW5k
UmVxdWVzdENhbGxiYWNrKEdPYmplY3QqIHNvdXJjZSwgR0FzeW5jUmVzdWx0KiByZXMsIGdwb2lu
dGVyIHVzZQogICAgIGQtPm1faW5wdXRTdHJlYW0gPSBhZG9wdEdSZWYoaW4pOwogICAgIGQtPm1f
YnVmZmVyID0gc3RhdGljX2Nhc3Q8Y2hhcio+KGdfc2xpY2VfYWxsb2MoUkVBRF9CVUZGRVJfU0la
RSkpOwogCi0gICAgLy8gcmVhZENhbGxiYWNrIG5lZWRzIGl0Ci0gICAgZ19vYmplY3Rfc2V0X2Rh
dGEoR19PQkpFQ1QoZC0+bV9pbnB1dFN0cmVhbS5nZXQoKSksICJ3ZWJraXQtcmVzb3VyY2UiLCBo
YW5kbGUuZ2V0KCkpOwotCiAgICAgLy8gSWYgbm90IHVzaW5nIFNvdXBNZXNzYWdlIHdlIG5lZWQg
dG8gY2FsbCBkaWRSZWNlaXZlUmVzcG9uc2Ugbm93LgogICAgIC8vIChUaGlzIHdpbGwgY2hhbmdl
IGxhdGVyIHdoZW4gU291cFJlcXVlc3Qgc3VwcG9ydHMgY29udGVudCBzbmlmZmluZy4pCiAgICAg
aWYgKCFkLT5tX3NvdXBNZXNzYWdlKSB7CkBAIC01MTcsNyArNTA2LDcgQEAgc3RhdGljIHZvaWQg
c2VuZFJlcXVlc3RDYWxsYmFjayhHT2JqZWN0KiBzb3VyY2UsIEdBc3luY1Jlc3VsdCogcmVzLCBn
cG9pbnRlciB1c2UKICAgICAgICAgIHNvdXBfc2Vzc2lvbl9wYXVzZV9tZXNzYWdlKGhhbmRsZS0+
ZGVmYXVsdFNlc3Npb24oKSwgZC0+bV9zb3VwTWVzc2FnZS5nZXQoKSk7CiAKICAgICBnX2lucHV0
X3N0cmVhbV9yZWFkX2FzeW5jKGQtPm1faW5wdXRTdHJlYW0uZ2V0KCksIGQtPm1fYnVmZmVyLCBS
RUFEX0JVRkZFUl9TSVpFLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR19QUklPUklU
WV9ERUZBVUxULCBkLT5tX2NhbmNlbGxhYmxlLmdldCgpLCByZWFkQ2FsbGJhY2ssIDApOworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgR19QUklPUklUWV9ERUZBVUxULCBkLT5tX2NhbmNl
bGxhYmxlLmdldCgpLCByZWFkQ2FsbGJhY2ssIGhhbmRsZS5nZXQoKSk7CiB9CiAKIHN0YXRpYyBi
b29sIGFkZEZpbGVUb1NvdXBNZXNzYWdlQm9keShTb3VwTWVzc2FnZSogbWVzc2FnZSwgY29uc3Qg
U3RyaW5nJiBmaWxlTmFtZVN0cmluZywgc2l6ZV90IG9mZnNldCwgc2l6ZV90IGxlbmd0aFRvU2Vu
ZCwgdW5zaWduZWQgbG9uZyYgdG90YWxCb2R5U2l6ZSkKQEAgLTY0Nyw4ICs2MzYsNiBAQCBzdGF0
aWMgYm9vbCBzdGFydEhUVFBSZXF1ZXN0KFJlc291cmNlSGFuZGxlKiBoYW5kbGUpCiAgICAgICAg
IHJldHVybiBmYWxzZTsKICAgICB9CiAKLSAgICBnX29iamVjdF9zZXRfZGF0YShHX09CSkVDVChk
LT5tX3NvdXBSZXF1ZXN0LmdldCgpKSwgIndlYmtpdC1yZXNvdXJjZSIsIGhhbmRsZSk7Ci0KICAg
ICBkLT5tX3NvdXBNZXNzYWdlID0gYWRvcHRHUmVmKHNvdXBfcmVxdWVzdF9odHRwX2dldF9tZXNz
YWdlKFNPVVBfUkVRVUVTVF9IVFRQKGQtPm1fc291cFJlcXVlc3QuZ2V0KCkpKSk7CiAgICAgaWYg
KCFkLT5tX3NvdXBNZXNzYWdlKQogICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC02OTQsNyArNjgx
LDcgQEAgc3RhdGljIGJvb2wgc3RhcnRIVFRQUmVxdWVzdChSZXNvdXJjZUhhbmRsZSogaGFuZGxl
KQogICAgIC8vIFNlbmQgdGhlIHJlcXVlc3Qgb25seSBpZiBpdCdzIG5vdCBiZWVuIGV4cGxpY2l0
ZWx5IGRlZmVycmVkLgogICAgIGlmICghZC0+bV9kZWZlcnNMb2FkaW5nKSB7CiAgICAgICAgIGQt
Pm1fY2FuY2VsbGFibGUgPSBhZG9wdEdSZWYoZ19jYW5jZWxsYWJsZV9uZXcoKSk7Ci0gICAgICAg
IHNvdXBfcmVxdWVzdF9zZW5kX2FzeW5jKGQtPm1fc291cFJlcXVlc3QuZ2V0KCksIGQtPm1fY2Fu
Y2VsbGFibGUuZ2V0KCksIHNlbmRSZXF1ZXN0Q2FsbGJhY2ssIDApOworICAgICAgICBzb3VwX3Jl
cXVlc3Rfc2VuZF9hc3luYyhkLT5tX3NvdXBSZXF1ZXN0LmdldCgpLCBkLT5tX2NhbmNlbGxhYmxl
LmdldCgpLCBzZW5kUmVxdWVzdENhbGxiYWNrLCBoYW5kbGUpOwogICAgIH0KIAogICAgIHJldHVy
biB0cnVlOwpAQCAtNzYwLDcgKzc0Nyw3IEBAIHZvaWQgUmVzb3VyY2VIYW5kbGU6OnBsYXRmb3Jt
U2V0RGVmZXJzTG9hZGluZyhib29sIGRlZmVyc0xvYWRpbmcpCiAKICAgICBpZiAoIWRlZmVyc0xv
YWRpbmcgJiYgIWQtPm1fY2FuY2VsbGFibGUgJiYgZC0+bV9zb3VwUmVxdWVzdC5nZXQoKSkgewog
ICAgICAgICBkLT5tX2NhbmNlbGxhYmxlID0gYWRvcHRHUmVmKGdfY2FuY2VsbGFibGVfbmV3KCkp
OwotICAgICAgICBzb3VwX3JlcXVlc3Rfc2VuZF9hc3luYyhkLT5tX3NvdXBSZXF1ZXN0LmdldCgp
LCBkLT5tX2NhbmNlbGxhYmxlLmdldCgpLCBzZW5kUmVxdWVzdENhbGxiYWNrLCAwKTsKKyAgICAg
ICAgc291cF9yZXF1ZXN0X3NlbmRfYXN5bmMoZC0+bV9zb3VwUmVxdWVzdC5nZXQoKSwgZC0+bV9j
YW5jZWxsYWJsZS5nZXQoKSwgc2VuZFJlcXVlc3RDYWxsYmFjaywgdGhpcyk7CiAgICAgICAgIHJl
dHVybjsKICAgICB9CiAKQEAgLTgxNSwxMSArODAyLDkgQEAgdm9pZCBSZXNvdXJjZUhhbmRsZTo6
bG9hZFJlc291cmNlU3luY2hyb25vdXNseShOZXR3b3JraW5nQ29udGV4dCogY29udGV4dCwgY29u
c3QKICAgICBzeW5jTG9hZGVyLnJ1bigpOwogfQogCi1zdGF0aWMgdm9pZCBjbG9zZUNhbGxiYWNr
KEdPYmplY3QqIHNvdXJjZSwgR0FzeW5jUmVzdWx0KiByZXMsIGdwb2ludGVyKQorc3RhdGljIHZv
aWQgY2xvc2VDYWxsYmFjayhHT2JqZWN0KiBzb3VyY2UsIEdBc3luY1Jlc3VsdCogcmVzLCBncG9p
bnRlciBkYXRhKQogewotICAgIFJlZlB0cjxSZXNvdXJjZUhhbmRsZT4gaGFuZGxlID0gc3RhdGlj
X2Nhc3Q8UmVzb3VyY2VIYW5kbGUqPihnX29iamVjdF9nZXRfZGF0YShzb3VyY2UsICJ3ZWJraXQt
cmVzb3VyY2UiKSk7Ci0gICAgaWYgKCFoYW5kbGUpCi0gICAgICAgIHJldHVybjsKKyAgICBSZWZQ
dHI8UmVzb3VyY2VIYW5kbGU+IGhhbmRsZSA9IHN0YXRpY19jYXN0PFJlc291cmNlSGFuZGxlKj4o
ZGF0YSk7CiAKICAgICBSZXNvdXJjZUhhbmRsZUludGVybmFsKiBkID0gaGFuZGxlLT5nZXRJbnRl
cm5hbCgpOwogICAgIGdfaW5wdXRfc3RyZWFtX2Nsb3NlX2ZpbmlzaChkLT5tX2lucHV0U3RyZWFt
LmdldCgpLCByZXMsIDApOwpAQCAtODI4LDkgKzgxMyw3IEBAIHN0YXRpYyB2b2lkIGNsb3NlQ2Fs
bGJhY2soR09iamVjdCogc291cmNlLCBHQXN5bmNSZXN1bHQqIHJlcywgZ3BvaW50ZXIpCiAKIHN0
YXRpYyB2b2lkIHJlYWRDYWxsYmFjayhHT2JqZWN0KiBzb3VyY2UsIEdBc3luY1Jlc3VsdCogYXN5
bmNSZXN1bHQsIGdwb2ludGVyIGRhdGEpCiB7Ci0gICAgUmVmUHRyPFJlc291cmNlSGFuZGxlPiBo
YW5kbGUgPSBzdGF0aWNfY2FzdDxSZXNvdXJjZUhhbmRsZSo+KGdfb2JqZWN0X2dldF9kYXRhKHNv
dXJjZSwgIndlYmtpdC1yZXNvdXJjZSIpKTsKLSAgICBpZiAoIWhhbmRsZSkKLSAgICAgICAgcmV0
dXJuOworICAgIFJlZlB0cjxSZXNvdXJjZUhhbmRsZT4gaGFuZGxlID0gc3RhdGljX2Nhc3Q8UmVz
b3VyY2VIYW5kbGUqPihkYXRhKTsKIAogICAgIFJlc291cmNlSGFuZGxlSW50ZXJuYWwqIGQgPSBo
YW5kbGUtPmdldEludGVybmFsKCk7CiAgICAgUmVzb3VyY2VIYW5kbGVDbGllbnQqIGNsaWVudCA9
IGhhbmRsZS0+Y2xpZW50KCk7CkBAIC04NTIsNyArODM1LDcgQEAgc3RhdGljIHZvaWQgcmVhZENh
bGxiYWNrKEdPYmplY3QqIHNvdXJjZSwgR0FzeW5jUmVzdWx0KiBhc3luY1Jlc3VsdCwgZ3BvaW50
ZXIgZGEKICAgICAgICAgLy8gV2UgaW5mb3JtIFdlYkNvcmUgb2YgbG9hZCBjb21wbGV0aW9uIG5v
dyBpbnN0ZWFkIG9mIHdhaXRpbmcgZm9yIHRoZSBpbnB1dAogICAgICAgICAvLyBzdHJlYW0gdG8g
Y2xvc2UgYmVjYXVzZSB0aGUgaW5wdXQgc3RyZWFtIGlzIGNsb3NlZCBhc3luY2hyb25vdXNseS4K
ICAgICAgICAgY2xpZW50LT5kaWRGaW5pc2hMb2FkaW5nKGhhbmRsZS5nZXQoKSwgMCk7Ci0gICAg
ICAgIGdfaW5wdXRfc3RyZWFtX2Nsb3NlX2FzeW5jKGQtPm1faW5wdXRTdHJlYW0uZ2V0KCksIEdf
UFJJT1JJVFlfREVGQVVMVCwgMCwgY2xvc2VDYWxsYmFjaywgMCk7CisgICAgICAgIGdfaW5wdXRf
c3RyZWFtX2Nsb3NlX2FzeW5jKGQtPm1faW5wdXRTdHJlYW0uZ2V0KCksIEdfUFJJT1JJVFlfREVG
QVVMVCwgMCwgY2xvc2VDYWxsYmFjaywgaGFuZGxlLmdldCgpKTsKICAgICAgICAgcmV0dXJuOwog
ICAgIH0KIApAQCAtODY4LDcgKzg1MSw3IEBAIHN0YXRpYyB2b2lkIHJlYWRDYWxsYmFjayhHT2Jq
ZWN0KiBzb3VyY2UsIEdBc3luY1Jlc3VsdCogYXN5bmNSZXN1bHQsIGdwb2ludGVyIGRhCiAgICAg
fQogCiAgICAgZ19pbnB1dF9zdHJlYW1fcmVhZF9hc3luYyhkLT5tX2lucHV0U3RyZWFtLmdldCgp
LCBkLT5tX2J1ZmZlciwgUkVBRF9CVUZGRVJfU0laRSwgR19QUklPUklUWV9ERUZBVUxULAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgZC0+bV9jYW5jZWxsYWJsZS5nZXQoKSwgcmVhZENh
bGxiYWNrLCAwKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQtPm1fY2FuY2VsbGFi
bGUuZ2V0KCksIHJlYWRDYWxsYmFjaywgaGFuZGxlLmdldCgpKTsKIH0KIAogc3RhdGljIGJvb2wg
c3RhcnROb25IVFRQUmVxdWVzdChSZXNvdXJjZUhhbmRsZSogaGFuZGxlLCBLVVJMIHVybCkKQEAg
LTg5MiwxMyArODc1LDExIEBAIHN0YXRpYyBib29sIHN0YXJ0Tm9uSFRUUFJlcXVlc3QoUmVzb3Vy
Y2VIYW5kbGUqIGhhbmRsZSwgS1VSTCB1cmwpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9
CiAKLSAgICBnX29iamVjdF9zZXRfZGF0YShHX09CSkVDVChkLT5tX3NvdXBSZXF1ZXN0LmdldCgp
KSwgIndlYmtpdC1yZXNvdXJjZSIsIGhhbmRsZSk7Ci0KICAgICAvLyBiYWxhbmNlZCBieSBhIGRl
cmVmKCkgaW4gY2xlYW51cFNvdXBSZXF1ZXN0T3BlcmF0aW9uLCB3aGljaCBzaG91bGQgYWx3YXlz
IHJ1bgogICAgIGhhbmRsZS0+cmVmKCk7CiAKICAgICBkLT5tX2NhbmNlbGxhYmxlID0gYWRvcHRH
UmVmKGdfY2FuY2VsbGFibGVfbmV3KCkpOwotICAgIHNvdXBfcmVxdWVzdF9zZW5kX2FzeW5jKGQt
Pm1fc291cFJlcXVlc3QuZ2V0KCksIGQtPm1fY2FuY2VsbGFibGUuZ2V0KCksIHNlbmRSZXF1ZXN0
Q2FsbGJhY2ssIDApOworICAgIHNvdXBfcmVxdWVzdF9zZW5kX2FzeW5jKGQtPm1fc291cFJlcXVl
c3QuZ2V0KCksIGQtPm1fY2FuY2VsbGFibGUuZ2V0KCksIHNlbmRSZXF1ZXN0Q2FsbGJhY2ssIGhh
bmRsZSk7CiAKICAgICByZXR1cm4gdHJ1ZTsKIH0KLS0gCjEuNy43Cgo=
</data>
<flag name="review"
          id="112237"
          type_id="1"
          status="+"
          setter="mrobinson"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>113761</attachid>
            <date>2011-11-05 10:33:17 -0700</date>
            <delta_ts>2011-11-06 10:01:07 -0800</delta_ts>
            <desc>Remove lots of code that is now unnecessary after</desc>
            <filename>0004-GTK-Remove-lots-of-code-that-is-now-unnecessary-afte.patch</filename>
            <type>text/plain</type>
            <size>18365</size>
            <attacher name="Dan Winship">danw</attacher>
            
              <data encoding="base64">RnJvbSAxOWEwMTkzMjUzMzZlMDkyZjY4ZDA0MDQwOWU0NTYwZGUxY2RlYjk5IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBEYW4gV2luc2hpcCA8ZGFud0Bnbm9tZS5vcmc+CkRhdGU6IFN1
biwgMjMgT2N0IDIwMTEgMjE6MTc6MDAgLTA0MDAKU3ViamVjdDogW1BBVENIIDQvNF0gW0dUS10g
UmVtb3ZlIGxvdHMgb2YgY29kZSB0aGF0IGlzIG5vdyB1bm5lY2Vzc2FyeSBhZnRlcgogU291cFJl
cXVlc3RIVFRQIEFQSSBjaGFuZ2VzLgoKUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgpObyBu
ZXcgdGVzdHM7IGJlaGF2aW9yIGlzIHVuY2hhbmdlZAoKKiBwbGF0Zm9ybS9uZXR3b3JrL1Jlc291
cmNlSGFuZGxlSW50ZXJuYWwuaDoKKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlSW50ZXJuYWw6OlJl
c291cmNlSGFuZGxlSW50ZXJuYWwpOiByZW1vdmUKbm8tbG9uZ2VyLW5lZWRlZCBmaWVsZHMuCiog
cGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlSGFuZGxlU291cC5jcHA6CihXZWJDb3JlOjpm
aW5pc2hlZENhbGxiYWNrKTogcmVtb3ZlIHRoaXMsIGFuZCBtX2ZpbmlzaGVkLCB3aGljaAp3ZSBu
byBsb25nZXIgbmVlZCB0byBleHBsaWNpdGx5IHRyYWNrCihXZWJDb3JlOjpzdGF0dXNXaWxsQmVI
YW5kbGVkQnlTb3VwKToKKFdlYkNvcmU6OnNvdXBFcnJvclNob3VsZENhdXNlTG9hZEZhaWx1cmUp
OiBObyBsb25nZXIgbmVlZGVkOwpTb3VwUmVxdWVzdEhUVFAncyBsb2dpYyBpcyBub3cgYWxpZ25l
ZCB3aXRoIFdlYktpdCdzLgooV2ViQ29yZTo6c3RhcnRIVFRQUmVxdWVzdCk6CihXZWJDb3JlOjpn
b3RDaHVua0NhbGxiYWNrKTogcmVtb3ZlIGdvdENodW5rQ2FsbGJhY2ssIHdoaWNoCmlzIG5vIGxv
bmdlciBuZWVkZWQKKFdlYkNvcmU6OnNlbmRSZXF1ZXN0Q2FsbGJhY2spOgooV2ViQ29yZTo6Z290
SGVhZGVyc0NhbGxiYWNrKToKKFdlYkNvcmU6OmNvbnRlbnRTbmlmZmVkQ2FsbGJhY2spOiBtZXJn
ZSB0aGUgY29kZSBmcm9tCmdvdEhlYWRlcnNDYWxsYmFjayBhbmQgY29udGVudFNuaWZmZWRDYWxs
YmFjayBpbnRvCnNlbmRSZXF1ZXN0Q2FsbGJhY2sKLS0tCiBDaGFuZ2VMb2cgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDkgKwogU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDI3ICsrKwogLi4uL3BsYXRmb3Jt
L25ldHdvcmsvUmVzb3VyY2VIYW5kbGVJbnRlcm5hbC5oICAgICAgfCAgICA2IC0KIC4uLi9wbGF0
Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5kbGVTb3VwLmNwcCAgIHwgIDIyMCArKy0tLS0t
LS0tLS0tLS0tLS0tLQogY29uZmlndXJlLmFjICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgfCAgICAyICstCiA1IGZpbGVzIGNoYW5nZWQsIDYwIGluc2VydGlvbnMoKyksIDIw
NCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9DaGFuZ2VMb2cgYi9DaGFuZ2VMb2cKaW5kZXgg
MzUwNGQxMy4uODI1ODM3MiAxMDA2NDQKLS0tIGEvQ2hhbmdlTG9nCisrKyBiL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDEyIEBACisyMDExLTExLTA1ICBEYW4gV2luc2hpcCAgPGRhbndAZ25vbWUub3Jn
PgorCisgICAgICAgIFtHVEtdIFVwZGF0ZSByZXF1aXJlZCBsaWJzb3VwIHZlcnNpb24KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGNvbmZpZ3VyZS5h
YzogcmVxdWlyZSBsaWJzb3VwIDIuMzcuMiBmb3IgU291cFJlcXVlc3RIVFRQIEFQSQorICAgICAg
ICBjaGFuZ2VzCisKIDIwMTEtMTEtMDQgIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2Fs
aWEuY29tPgogCiAgICAgICAgIFtHVEtdIERpc2FibGUgVklERU9fVFJBQ0sgZm9yIG5vdwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCmluZGV4IDY0OTU0MWEuLmUzZDdhNWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsNSArMSwzMiBAQAog
MjAxMS0xMS0wNSAgRGFuIFdpbnNoaXAgIDxkYW53QGdub21lLm9yZz4KIAorICAgICAgICBbR1RL
XSBSZW1vdmUgbG90cyBvZiBjb2RlIHRoYXQgaXMgbm93IHVubmVjZXNzYXJ5IGFmdGVyCisgICAg
ICAgIFNvdXBSZXF1ZXN0SFRUUCBBUEkgY2hhbmdlcy4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHM7IGJlaGF2aW9yIGlzIHVuY2hh
bmdlZAorCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZUludGVybmFs
Lmg6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZUludGVybmFsOjpSZXNvdXJjZUhh
bmRsZUludGVybmFsKTogcmVtb3ZlCisgICAgICAgIG5vLWxvbmdlci1uZWVkZWQgZmllbGRzLgor
ICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUhhbmRsZVNvdXAuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6ZmluaXNoZWRDYWxsYmFjayk6IHJlbW92ZSB0aGlzLCBhbmQgbV9m
aW5pc2hlZCwgd2hpY2gKKyAgICAgICAgd2Ugbm8gbG9uZ2VyIG5lZWQgdG8gZXhwbGljaXRseSB0
cmFjaworICAgICAgICAoV2ViQ29yZTo6c3RhdHVzV2lsbEJlSGFuZGxlZEJ5U291cCk6CisgICAg
ICAgIChXZWJDb3JlOjpzb3VwRXJyb3JTaG91bGRDYXVzZUxvYWRGYWlsdXJlKTogTm8gbG9uZ2Vy
IG5lZWRlZDsKKyAgICAgICAgU291cFJlcXVlc3RIVFRQJ3MgbG9naWMgaXMgbm93IGFsaWduZWQg
d2l0aCBXZWJLaXQncy4KKyAgICAgICAgKFdlYkNvcmU6OnN0YXJ0SFRUUFJlcXVlc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6Z290Q2h1bmtDYWxsYmFjayk6IHJlbW92ZSBnb3RDaHVua0NhbGxiYWNr
LCB3aGljaAorICAgICAgICBpcyBubyBsb25nZXIgbmVlZGVkCisgICAgICAgIChXZWJDb3JlOjpz
ZW5kUmVxdWVzdENhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OmdvdEhlYWRlcnNDYWxsYmFj
ayk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZW50U25pZmZlZENhbGxiYWNrKTogbWVyZ2UgdGhl
IGNvZGUgZnJvbQorICAgICAgICBnb3RIZWFkZXJzQ2FsbGJhY2sgYW5kIGNvbnRlbnRTbmlmZmVk
Q2FsbGJhY2sgaW50bworICAgICAgICBzZW5kUmVxdWVzdENhbGxiYWNrCisKKzIwMTEtMTEtMDUg
IERhbiBXaW5zaGlwICA8ZGFud0Bnbm9tZS5vcmc+CisKICAgICAgICAgW0dUS10gQWN0dWFsbHkg
dXNlIHRoZSB1c2VyX2RhdGEgYXJndW1lbnRzIHRvIGdpbyBhc3luYyBmdW5jdGlvbnMKICAgICAg
ICAgaW5zdGVhZCBvZiB1c2luZyBnX29iamVjdF9zZXRfZGF0YSgpIHRvIGJhc2ljYWxseSByZWlu
dmVudCB0aGVtLgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L1Jlc291cmNlSGFuZGxlSW50ZXJuYWwuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvUmVzb3VyY2VIYW5kbGVJbnRlcm5hbC5oCmluZGV4IGE4NjhmNTcuLjNmYWY5N2MgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGVJbnRl
cm5hbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5k
bGVJbnRlcm5hbC5oCkBAIC0xMDksMTIgKzEwOSw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICNl
bmRpZgogI2lmIFVTRShTT1VQKQogICAgICAgICAgICAgLCBtX2NhbmNlbGxlZChmYWxzZSkKLSAg
ICAgICAgICAgICwgbV9maW5pc2hlZChmYWxzZSkKLSAgICAgICAgICAgICwgbV9maW5pc2hlZEhh
bmRsZXIoMCkKICAgICAgICAgICAgICwgbV9idWZmZXIoMCkKICAgICAgICAgICAgICwgbV9ib2R5
U2l6ZSgwKQogICAgICAgICAgICAgLCBtX2JvZHlEYXRhU2VudCgwKQotICAgICAgICAgICAgLCBt
X2dvdENodW5rSGFuZGxlcigwKQogI2VuZGlmCiAjaWYgUExBVEZPUk0oUVQpCiAgICAgICAgICAg
ICAsIG1fam9iKDApCkBAIC0xODksOCArMTg2LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAg
ICAgICBHUmVmUHRyPFNvdXBNZXNzYWdlPiBtX3NvdXBNZXNzYWdlOwogICAgICAgICBSZXNvdXJj
ZVJlc3BvbnNlIG1fcmVzcG9uc2U7CiAgICAgICAgIGJvb2wgbV9jYW5jZWxsZWQ7Ci0gICAgICAg
IGJvb2wgbV9maW5pc2hlZDsKLSAgICAgICAgZ3Vsb25nIG1fZmluaXNoZWRIYW5kbGVyOwogICAg
ICAgICBHUmVmUHRyPFNvdXBSZXF1ZXN0PiBtX3NvdXBSZXF1ZXN0OwogICAgICAgICBHUmVmUHRy
PEdJbnB1dFN0cmVhbT4gbV9pbnB1dFN0cmVhbTsKICAgICAgICAgR1JlZlB0cjxHQ2FuY2VsbGFi
bGU+IG1fY2FuY2VsbGFibGU7CkBAIC0xOTgsNyArMTkzLDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogICAgICAgICB1bnNpZ25lZCBsb25nIG1fYm9keVNpemU7CiAgICAgICAgIHVuc2lnbmVkIGxv
bmcgbV9ib2R5RGF0YVNlbnQ7CiAgICAgICAgIFJlZlB0cjxOZXR3b3JraW5nQ29udGV4dD4gbV9j
b250ZXh0OwotICAgICAgICBndWxvbmcgbV9nb3RDaHVua0hhbmRsZXI7CiAjZW5kaWYKICNpZiBQ
TEFURk9STShRVCkKICAgICAgICAgUU5ldHdvcmtSZXBseUhhbmRsZXIqIG1fam9iOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlSGFuZGxl
U291cC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VI
YW5kbGVTb3VwLmNwcAppbmRleCBhOWIwN2QyLi4yYzgxZjAwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5kbGVTb3VwLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5kbGVTb3Vw
LmNwcApAQCAtMTgwLDE5ICsxODAsNiBAQCB2b2lkIFJlc291cmNlSGFuZGxlOjpwcmVwYXJlRm9y
VVJMKGNvbnN0IEtVUkwmIHVybCkKICAgICBzb3VwX3Nlc3Npb25fcHJlcGFyZV9mb3JfdXJpKFJl
c291cmNlSGFuZGxlOjpkZWZhdWx0U2Vzc2lvbigpLCBzb3VwVVJJLmdldCgpKTsKIH0KIAotLy8g
QWxsIG90aGVyIGtpbmRzIG9mIHJlZGlyZWN0aW9ucywgZXhjZXB0IGZvciB0aGUgKjMwNCogc3Rh
dHVzIGNvZGUKLS8vIChTT1VQX1NUQVRVU19OT1RfTU9ESUZJRUQpIHdoaWNoIG5lZWRzIHRvIGJl
IGZlZCBpbnRvIFdlYkNvcmUsIHdpbGwgYmUKLS8vIGhhbmRsZWQgYnkgc291cCBkaXJlY3RseS4K
LXN0YXRpYyBnYm9vbGVhbiBzdGF0dXNXaWxsQmVIYW5kbGVkQnlTb3VwKGd1aW50IHN0YXR1c0Nv
ZGUpCi17Ci0gICAgaWYgKFNPVVBfU1RBVFVTX0lTX1RSQU5TUE9SVF9FUlJPUihzdGF0dXNDb2Rl
KQotICAgICAgICB8fCAoU09VUF9TVEFUVVNfSVNfUkVESVJFQ1RJT04oc3RhdHVzQ29kZSkgJiYg
KHN0YXR1c0NvZGUgIT0gU09VUF9TVEFUVVNfTk9UX01PRElGSUVEKSkKLSAgICAgICAgfHwgKHN0
YXR1c0NvZGUgPT0gU09VUF9TVEFUVVNfVU5BVVRIT1JJWkVEKSkKLSAgICAgICAgcmV0dXJuIHRy
dWU7Ci0KLSAgICByZXR1cm4gZmFsc2U7Ci19Ci0KIC8vIENhbGxlZCBlYWNoIHRpbWUgdGhlIG1l
c3NhZ2UgaXMgZ29pbmcgdG8gYmUgc2VudCBhZ2FpbiBleGNlcHQgdGhlIGZpcnN0IHRpbWUuCiAv
LyBJdCdzIHVzZWQgbW9zdGx5IHRvIGxldCB3ZWJraXQga25vdyBhYm91dCByZWRpcmVjdHMuCiBz
dGF0aWMgdm9pZCByZXN0YXJ0ZWRDYWxsYmFjayhTb3VwTWVzc2FnZSogbXNnLCBncG9pbnRlciBk
YXRhKQpAQCAtMjM0LDUzICsyMjEsNiBAQCBzdGF0aWMgdm9pZCByZXN0YXJ0ZWRDYWxsYmFjayhT
b3VwTWVzc2FnZSogbXNnLCBncG9pbnRlciBkYXRhKQogICAgIH0KIH0KIAotc3RhdGljIHZvaWQg
Y29udGVudFNuaWZmZWRDYWxsYmFjayhTb3VwTWVzc2FnZSosIGNvbnN0IGNoYXIqLCBHSGFzaFRh
YmxlKiwgZ3BvaW50ZXIpOwotCi1zdGF0aWMgdm9pZCBnb3RIZWFkZXJzQ2FsbGJhY2soU291cE1l
c3NhZ2UqIG1zZywgZ3BvaW50ZXIgZGF0YSkKLXsKLSAgICAvLyBGb3IgNDAxLCB3ZSB3aWxsIGFj
Y3VtdWxhdGUgdGhlIHJlc291cmNlIGJvZHksIGFuZCBvbmx5IHVzZSBpdAotICAgIC8vIGluIGNh
c2UgYXV0aGVudGljYXRpb24gd2l0aCB0aGUgc291cCBmZWF0dXJlIGRvZXNuJ3QgaGFwcGVuLgot
ICAgIC8vIEZvciAzMDIgd2UgYWNjdW11bGF0ZSB0aGUgYm9keSB0b28gYmVjYXVzZSBpdCBjb3Vs
ZCBiZSB1c2VkIGJ5Ci0gICAgLy8gc29tZSBzZXJ2ZXJzIHRvIHJlZGlyZWN0IHdpdGggYSBjbHVu
a3kgaHR0cC1lcXVpdj1SRUZSRVNICi0gICAgaWYgKHN0YXR1c1dpbGxCZUhhbmRsZWRCeVNvdXAo
bXNnLT5zdGF0dXNfY29kZSkpIHsKLSAgICAgICAgc291cF9tZXNzYWdlX2JvZHlfc2V0X2FjY3Vt
dWxhdGUobXNnLT5yZXNwb25zZV9ib2R5LCBUUlVFKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0K
LQotICAgIC8vIEZvciBhbGwgdGhlIG90aGVyIHJlc3BvbnNlcywgd2UgaGFuZGxlIGVhY2ggY2h1
bmsgb3Vyc2VsdmVzLAotICAgIC8vIGFuZCB3ZSBkb24ndCBuZWVkIG1zZy0+cmVzcG9uc2VfYm9k
eSB0byBjb250YWluIGFsbCBvZiB0aGUgZGF0YQotICAgIC8vIHdlIGdvdCwgd2hlbiB3ZSBmaW5p
c2ggZG93bmxvYWRpbmcuCi0gICAgc291cF9tZXNzYWdlX2JvZHlfc2V0X2FjY3VtdWxhdGUobXNn
LT5yZXNwb25zZV9ib2R5LCBGQUxTRSk7Ci0KLSAgICBSZWZQdHI8UmVzb3VyY2VIYW5kbGU+IGhh
bmRsZSA9IHN0YXRpY19jYXN0PFJlc291cmNlSGFuZGxlKj4oZGF0YSk7Ci0KLSAgICAvLyBUaGUg
Y29udGVudC1zbmlmZmVkIGNhbGxiYWNrIHdpbGwgaGFuZGxlIHRoZSByZXNwb25zZSBpZiBXZWJD
b3JlCi0gICAgLy8gcmVxdWlyZSB1cyB0byBzbmlmZi4KLSAgICBpZiAoIWhhbmRsZSB8fCBzdGF0
dXNXaWxsQmVIYW5kbGVkQnlTb3VwKG1zZy0+c3RhdHVzX2NvZGUpKQotICAgICAgICByZXR1cm47
Ci0KLSAgICBpZiAoaGFuZGxlLT5zaG91bGRDb250ZW50U25pZmYoKSkgewotICAgICAgICAvLyBB
dm9pZCBNSU1FIHR5cGUgc25pZmZpbmcgaWYgdGhlIHJlc3BvbnNlIGNvbWVzIGJhY2sgYXMgMzA0
IE5vdCBNb2RpZmllZC4KLSAgICAgICAgaWYgKG1zZy0+c3RhdHVzX2NvZGUgPT0gU09VUF9TVEFU
VVNfTk9UX01PRElGSUVEKSB7Ci0gICAgICAgICAgICBzb3VwX21lc3NhZ2VfZGlzYWJsZV9mZWF0
dXJlKG1zZywgU09VUF9UWVBFX0NPTlRFTlRfU05JRkZFUik7Ci0gICAgICAgICAgICBnX3NpZ25h
bF9oYW5kbGVyc19kaXNjb25uZWN0X2J5X2Z1bmMobXNnLCByZWludGVycHJldF9jYXN0PGdwb2lu
dGVyPihjb250ZW50U25pZmZlZENhbGxiYWNrKSwgaGFuZGxlLmdldCgpKTsKLSAgICAgICAgfSBl
bHNlCi0gICAgICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgUmVzb3VyY2VIYW5kbGVJbnRl
cm5hbCogZCA9IGhhbmRsZS0+Z2V0SW50ZXJuYWwoKTsKLSAgICBpZiAoZC0+bV9jYW5jZWxsZWQp
Ci0gICAgICAgIHJldHVybjsKLSAgICBSZXNvdXJjZUhhbmRsZUNsaWVudCogY2xpZW50ID0gaGFu
ZGxlLT5jbGllbnQoKTsKLSAgICBpZiAoIWNsaWVudCkKLSAgICAgICAgcmV0dXJuOwotCi0gICAg
QVNTRVJUKGQtPm1fcmVzcG9uc2UuaXNOdWxsKCkpOwotCi0gICAgZC0+bV9yZXNwb25zZS51cGRh
dGVGcm9tU291cE1lc3NhZ2UobXNnKTsKLSAgICBjbGllbnQtPmRpZFJlY2VpdmVSZXNwb25zZSho
YW5kbGUuZ2V0KCksIGQtPm1fcmVzcG9uc2UpOwotfQotCiBzdGF0aWMgdm9pZCB3cm90ZUJvZHlE
YXRhQ2FsbGJhY2soU291cE1lc3NhZ2UqLCBTb3VwQnVmZmVyKiBidWZmZXIsIGdwb2ludGVyIGRh
dGEpCiB7CiAgICAgUmVmUHRyPFJlc291cmNlSGFuZGxlPiBoYW5kbGUgPSBzdGF0aWNfY2FzdDxS
ZXNvdXJjZUhhbmRsZSo+KGRhdGEpOwpAQCAtMzAwLDc4ICsyNDAsNiBAQCBzdGF0aWMgdm9pZCB3
cm90ZUJvZHlEYXRhQ2FsbGJhY2soU291cE1lc3NhZ2UqLCBTb3VwQnVmZmVyKiBidWZmZXIsIGdw
b2ludGVyIGRhdAogICAgIGNsaWVudC0+ZGlkU2VuZERhdGEoaGFuZGxlLmdldCgpLCBpbnRlcm5h
bC0+bV9ib2R5RGF0YVNlbnQsIGludGVybmFsLT5tX2JvZHlTaXplKTsKIH0KIAotLy8gVGhpcyBj
YWxsYmFjayB3aWxsIG5vdCBiZSBjYWxsZWQgaWYgdGhlIGNvbnRlbnQgc25pZmZlciBpcyBkaXNh
YmxlZCBpbiBzdGFydEhUVFBSZXF1ZXN0Lgotc3RhdGljIHZvaWQgY29udGVudFNuaWZmZWRDYWxs
YmFjayhTb3VwTWVzc2FnZSogbXNnLCBjb25zdCBjaGFyKiBzbmlmZmVkVHlwZSwgR0hhc2hUYWJs
ZSAqcGFyYW1zLCBncG9pbnRlciBkYXRhKQotewotCi0gICAgaWYgKHN0YXR1c1dpbGxCZUhhbmRs
ZWRCeVNvdXAobXNnLT5zdGF0dXNfY29kZSkpCi0gICAgICAgIHJldHVybjsKLQotICAgIFJlZlB0
cjxSZXNvdXJjZUhhbmRsZT4gaGFuZGxlID0gc3RhdGljX2Nhc3Q8UmVzb3VyY2VIYW5kbGUqPihk
YXRhKTsKLSAgICBpZiAoIWhhbmRsZSkKLSAgICAgICAgcmV0dXJuOwotICAgIFJlc291cmNlSGFu
ZGxlSW50ZXJuYWwqIGQgPSBoYW5kbGUtPmdldEludGVybmFsKCk7Ci0gICAgaWYgKGQtPm1fY2Fu
Y2VsbGVkKQotICAgICAgICByZXR1cm47Ci0gICAgUmVzb3VyY2VIYW5kbGVDbGllbnQqIGNsaWVu
dCA9IGhhbmRsZS0+Y2xpZW50KCk7Ci0gICAgaWYgKCFjbGllbnQpCi0gICAgICAgIHJldHVybjsK
LQotICAgIEFTU0VSVChkLT5tX3Jlc3BvbnNlLmlzTnVsbCgpKTsKLQotICAgIGlmIChzbmlmZmVk
VHlwZSkgewotICAgICAgICBjb25zdCBjaGFyKiBvZmZpY2lhbFR5cGUgPSBzb3VwX21lc3NhZ2Vf
aGVhZGVyc19nZXRfb25lKG1zZy0+cmVzcG9uc2VfaGVhZGVycywgIkNvbnRlbnQtVHlwZSIpOwot
ICAgICAgICBpZiAoIW9mZmljaWFsVHlwZSB8fCBzdHJjbXAob2ZmaWNpYWxUeXBlLCBzbmlmZmVk
VHlwZSkpIHsKLSAgICAgICAgICAgIEdTdHJpbmcqIHN0ciA9IGdfc3RyaW5nX25ldyhzbmlmZmVk
VHlwZSk7Ci0gICAgICAgICAgICBpZiAocGFyYW1zKSB7Ci0gICAgICAgICAgICAgICAgR0hhc2hU
YWJsZUl0ZXIgaXRlcjsKLSAgICAgICAgICAgICAgICBncG9pbnRlciBrZXksIHZhbHVlOwotICAg
ICAgICAgICAgICAgIGdfaGFzaF90YWJsZV9pdGVyX2luaXQoJml0ZXIsIHBhcmFtcyk7Ci0gICAg
ICAgICAgICAgICAgd2hpbGUgKGdfaGFzaF90YWJsZV9pdGVyX25leHQoJml0ZXIsICZrZXksICZ2
YWx1ZSkpIHsKLSAgICAgICAgICAgICAgICAgICAgZ19zdHJpbmdfYXBwZW5kKHN0ciwgIjsgIik7
Ci0gICAgICAgICAgICAgICAgICAgIHNvdXBfaGVhZGVyX2dfc3RyaW5nX2FwcGVuZF9wYXJhbShz
dHIsIHN0YXRpY19jYXN0PGNvbnN0IGNoYXIqPihrZXkpLCBzdGF0aWNfY2FzdDxjb25zdCBjaGFy
Kj4odmFsdWUpKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAg
ICBkLT5tX3Jlc3BvbnNlLnNldFNuaWZmZWRDb250ZW50VHlwZShzdHItPnN0cik7Ci0gICAgICAg
ICAgICBnX3N0cmluZ19mcmVlKHN0ciwgVFJVRSk7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBk
LT5tX3Jlc3BvbnNlLnVwZGF0ZUZyb21Tb3VwTWVzc2FnZShtc2cpOwotICAgIGNsaWVudC0+ZGlk
UmVjZWl2ZVJlc3BvbnNlKGhhbmRsZS5nZXQoKSwgZC0+bV9yZXNwb25zZSk7Ci19Ci0KLXN0YXRp
YyB2b2lkIGdvdENodW5rQ2FsbGJhY2soU291cE1lc3NhZ2UqIG1zZywgU291cEJ1ZmZlciogY2h1
bmssIGdwb2ludGVyIGRhdGEpCi17Ci0gICAgaWYgKHN0YXR1c1dpbGxCZUhhbmRsZWRCeVNvdXAo
bXNnLT5zdGF0dXNfY29kZSkpCi0gICAgICAgIHJldHVybjsKLQotICAgIFJlZlB0cjxSZXNvdXJj
ZUhhbmRsZT4gaGFuZGxlID0gc3RhdGljX2Nhc3Q8UmVzb3VyY2VIYW5kbGUqPihkYXRhKTsKLSAg
ICBpZiAoIWhhbmRsZSkKLSAgICAgICAgcmV0dXJuOwotICAgIFJlc291cmNlSGFuZGxlSW50ZXJu
YWwqIGQgPSBoYW5kbGUtPmdldEludGVybmFsKCk7Ci0gICAgaWYgKGQtPm1fY2FuY2VsbGVkKQot
ICAgICAgICByZXR1cm47Ci0gICAgUmVzb3VyY2VIYW5kbGVDbGllbnQqIGNsaWVudCA9IGhhbmRs
ZS0+Y2xpZW50KCk7Ci0gICAgaWYgKCFjbGllbnQpCi0gICAgICAgIHJldHVybjsKLQotICAgIEFT
U0VSVCghZC0+bV9yZXNwb25zZS5pc051bGwoKSk7Ci0KLSAgICAvLyBGSVhNRTogaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5NzkzCi0gICAgLy8gLTEgbWVhbnMgd2Ug
ZG8gbm90IHByb3ZpZGUgYW55IGRhdGEgYWJvdXQgdHJhbnNmZXIgc2l6ZSB0byBpbnNwZWN0b3Ig
c28gaXQgd291bGQgdXNlCi0gICAgLy8gQ29udGVudC1MZW5ndGggaGVhZGVycyBvciBjb250ZW50
IHNpemUgdG8gc2hvdyB0cmFuc2ZlciBzaXplLgotICAgIGNsaWVudC0+ZGlkUmVjZWl2ZURhdGEo
aGFuZGxlLmdldCgpLCBjaHVuay0+ZGF0YSwgY2h1bmstPmxlbmd0aCwgLTEpOwotfQotCi1zdGF0
aWMgdm9pZCBmaW5pc2hlZENhbGxiYWNrKFNvdXBNZXNzYWdlKiBtc2csIGdwb2ludGVyIGRhdGEp
Ci17Ci0gICAgUmVmUHRyPFJlc291cmNlSGFuZGxlPiBoYW5kbGUgPSBzdGF0aWNfY2FzdDxSZXNv
dXJjZUhhbmRsZSo+KGRhdGEpOwotICAgIGlmICghaGFuZGxlKQotICAgICAgICByZXR1cm47Ci0g
ICAgaGFuZGxlLT5nZXRJbnRlcm5hbCgpLT5tX2ZpbmlzaGVkID0gdHJ1ZTsKLX0KLQogc3RhdGlj
IHZvaWQgY2xlYW51cFNvdXBSZXF1ZXN0T3BlcmF0aW9uKFJlc291cmNlSGFuZGxlKiBoYW5kbGUs
IGJvb2wgaXNEZXN0cm95aW5nID0gZmFsc2UpCiB7CiAgICAgUmVzb3VyY2VIYW5kbGVJbnRlcm5h
bCogZCA9IGhhbmRsZS0+Z2V0SW50ZXJuYWwoKTsKQEAgLTM5OSwxMiArMjY3LDYgQEAgc3RhdGlj
IHZvaWQgY2xlYW51cFNvdXBSZXF1ZXN0T3BlcmF0aW9uKFJlc291cmNlSGFuZGxlKiBoYW5kbGUs
IGJvb2wgaXNEZXN0cm95aW4KICAgICAgICAgaGFuZGxlLT5kZXJlZigpOwogfQogCi1zdGF0aWMg
Ym9vbCBzb3VwRXJyb3JTaG91bGRDYXVzZUxvYWRGYWlsdXJlKEdFcnJvciogZXJyb3IsIFNvdXBN
ZXNzYWdlKiBtZXNzYWdlKQotewotICAgIC8vIExpYnNvdXAgdHJlYXRzIHNvbWUgbm9uLWVycm9y
IGNvbmRpdGlvbnMgYXMgZXJyb3JzLCBpbmNsdWRpbmcgcmVkaXJlY3RzIGFuZCAzMDQgTm90IE1v
ZGlmaWVkIHJlc3BvbnNlcy4KLSAgICByZXR1cm4gbWVzc2FnZSAmJiBTT1VQX1NUQVRVU19JU19U
UkFOU1BPUlRfRVJST1IobWVzc2FnZS0+c3RhdHVzX2NvZGUpIHx8IGVycm9yLT5kb21haW4gPT0g
R19JT19FUlJPUjsKLX0KLQogc3RhdGljIFJlc291cmNlRXJyb3IgY29udmVydFNvdXBFcnJvclRv
UmVzb3VyY2VFcnJvcihHRXJyb3IqIGVycm9yLCBTb3VwUmVxdWVzdCogcmVxdWVzdCwgU291cE1l
c3NhZ2UqIG1lc3NhZ2UgPSAwKQogewogICAgIEFTU0VSVChlcnJvcik7CkBAIC00MzEsMTMgKzI5
Myw3IEBAIHN0YXRpYyB2b2lkIHNlbmRSZXF1ZXN0Q2FsbGJhY2soR09iamVjdCogc291cmNlLCBH
QXN5bmNSZXN1bHQqIHJlcywgZ3BvaW50ZXIgZGF0CiAKICAgICBSZXNvdXJjZUhhbmRsZUludGVy
bmFsKiBkID0gaGFuZGxlLT5nZXRJbnRlcm5hbCgpOwogICAgIFJlc291cmNlSGFuZGxlQ2xpZW50
KiBjbGllbnQgPSBoYW5kbGUtPmNsaWVudCgpOwotCi0gICAgaWYgKGQtPm1fZ290Q2h1bmtIYW5k
bGVyKSB7Ci0gICAgICAgIC8vIE5vIG5lZWQgdG8gY2FsbCBnb3RDaHVua0hhbmRsZXIgYW55bW9y
ZS4gUmVjZWl2ZWQgZGF0YSB3aWxsCi0gICAgICAgIC8vIGJlIHJlcG9ydGVkIGJ5IHJlYWRDYWxs
YmFjawotICAgICAgICBpZiAoZ19zaWduYWxfaGFuZGxlcl9pc19jb25uZWN0ZWQoZC0+bV9zb3Vw
TWVzc2FnZS5nZXQoKSwgZC0+bV9nb3RDaHVua0hhbmRsZXIpKQotICAgICAgICAgICAgZ19zaWdu
YWxfaGFuZGxlcl9kaXNjb25uZWN0KGQtPm1fc291cE1lc3NhZ2UuZ2V0KCksIGQtPm1fZ290Q2h1
bmtIYW5kbGVyKTsKLSAgICB9CisgICAgU291cE1lc3NhZ2UqIHNvdXBNZXNzYWdlID0gZC0+bV9z
b3VwTWVzc2FnZS5nZXQoKTsKIAogICAgIGlmIChkLT5tX2NhbmNlbGxlZCB8fCAhY2xpZW50KSB7
CiAgICAgICAgIGNsZWFudXBTb3VwUmVxdWVzdE9wZXJhdGlvbihoYW5kbGUuZ2V0KCkpOwpAQCAt
NDQ3LDM4ICszMDMsNyBAQCBzdGF0aWMgdm9pZCBzZW5kUmVxdWVzdENhbGxiYWNrKEdPYmplY3Qq
IHNvdXJjZSwgR0FzeW5jUmVzdWx0KiByZXMsIGdwb2ludGVyIGRhdAogICAgIEdPd25QdHI8R0Vy
cm9yPiBlcnJvcjsKICAgICBHSW5wdXRTdHJlYW0qIGluID0gc291cF9yZXF1ZXN0X3NlbmRfZmlu
aXNoKGQtPm1fc291cFJlcXVlc3QuZ2V0KCksIHJlcywgJmVycm9yLm91dFB0cigpKTsKICAgICBp
ZiAoZXJyb3IpIHsKLSAgICAgICAgU291cE1lc3NhZ2UqIHNvdXBNZXNzYWdlID0gZC0+bV9zb3Vw
TWVzc2FnZS5nZXQoKTsKLQotICAgICAgICBpZiAoc291cEVycm9yU2hvdWxkQ2F1c2VMb2FkRmFp
bHVyZShlcnJvci5nZXQoKSwgc291cE1lc3NhZ2UpKSB7Ci0gICAgICAgICAgICBjbGllbnQtPmRp
ZEZhaWwoaGFuZGxlLmdldCgpLCBjb252ZXJ0U291cEVycm9yVG9SZXNvdXJjZUVycm9yKGVycm9y
LmdldCgpLCBkLT5tX3NvdXBSZXF1ZXN0LmdldCgpLCBzb3VwTWVzc2FnZSkpOwotICAgICAgICAg
ICAgY2xlYW51cFNvdXBSZXF1ZXN0T3BlcmF0aW9uKGhhbmRsZS5nZXQoKSk7Ci0gICAgICAgICAg
ICByZXR1cm47Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAoc291cE1lc3NhZ2UgJiYgc3RhdHVz
V2lsbEJlSGFuZGxlZEJ5U291cChzb3VwTWVzc2FnZS0+c3RhdHVzX2NvZGUpKSB7Ci0gICAgICAg
ICAgICBBU1NFUlQoZC0+bV9yZXNwb25zZS5pc051bGwoKSk7Ci0KLSAgICAgICAgICAgIGQtPm1f
cmVzcG9uc2UudXBkYXRlRnJvbVNvdXBNZXNzYWdlKHNvdXBNZXNzYWdlKTsKLSAgICAgICAgICAg
IGNsaWVudC0+ZGlkUmVjZWl2ZVJlc3BvbnNlKGhhbmRsZS5nZXQoKSwgZC0+bV9yZXNwb25zZSk7
Ci0KLSAgICAgICAgICAgIC8vIFdlYkNvcmUgbWlnaHQgaGF2ZSBjYW5jZWxsZWQgdGhlIGpvYiBp
biB0aGUgd2hpbGUuIFdlCi0gICAgICAgICAgICAvLyBtdXN0IGNoZWNrIGZvciByZXNwb25zZV9i
b2R5LT5sZW5ndGggYW5kIG5vdAotICAgICAgICAgICAgLy8gcmVzcG9uc2VfYm9keS0+ZGF0YSBh
cyBsaWJzb3VwIGFsd2F5cyBjcmVhdGVzIHRoZQotICAgICAgICAgICAgLy8gU291cEJ1ZmZlciBm
b3IgdGhlIGJvZHkgZXZlbiBpZiB0aGUgbGVuZ3RoIGlzIDAKLSAgICAgICAgICAgIGlmICghZC0+
bV9jYW5jZWxsZWQgJiYgc291cE1lc3NhZ2UtPnJlc3BvbnNlX2JvZHktPmxlbmd0aCkKLSAgICAg
ICAgICAgICAgICBjbGllbnQtPmRpZFJlY2VpdmVEYXRhKGhhbmRsZS5nZXQoKSwgc291cE1lc3Nh
Z2UtPnJlc3BvbnNlX2JvZHktPmRhdGEsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBzb3VwTWVzc2FnZS0+cmVzcG9uc2VfYm9keS0+bGVuZ3RoLCBzb3VwTWVzc2FnZS0+
cmVzcG9uc2VfYm9keS0+bGVuZ3RoKTsKLSAgICAgICAgfQotCi0gICAgICAgIC8vIGRpZFJlY2Vp
dmVEYXRhIGFib3ZlIG1pZ2h0IGhhdmUgY2FuY2VsZWQgdGhpcyBvcGVyYXRpb24uIElmIG5vdCwg
aW5mb3JtIHRoZSBjbGllbnQgd2UndmUgZmluaXNoZWQgbG9hZGluZy4KLSAgICAgICAgaWYgKCFk
LT5tX2NhbmNlbGxlZCAmJiBjbGllbnQpCi0gICAgICAgICAgICBjbGllbnQtPmRpZEZpbmlzaExv
YWRpbmcoaGFuZGxlLmdldCgpLCAwKTsKLQotICAgICAgICBjbGVhbnVwU291cFJlcXVlc3RPcGVy
YXRpb24oaGFuZGxlLmdldCgpKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIGlmIChk
LT5tX2NhbmNlbGxlZCkgeworICAgICAgICBjbGllbnQtPmRpZEZhaWwoaGFuZGxlLmdldCgpLCBj
b252ZXJ0U291cEVycm9yVG9SZXNvdXJjZUVycm9yKGVycm9yLmdldCgpLCBkLT5tX3NvdXBSZXF1
ZXN0LmdldCgpLCBzb3VwTWVzc2FnZSkpOwogICAgICAgICBjbGVhbnVwU291cFJlcXVlc3RPcGVy
YXRpb24oaGFuZGxlLmdldCgpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTQ4NiwyNCAr
MzExLDMyIEBAIHN0YXRpYyB2b2lkIHNlbmRSZXF1ZXN0Q2FsbGJhY2soR09iamVjdCogc291cmNl
LCBHQXN5bmNSZXN1bHQqIHJlcywgZ3BvaW50ZXIgZGF0CiAgICAgZC0+bV9pbnB1dFN0cmVhbSA9
IGFkb3B0R1JlZihpbik7CiAgICAgZC0+bV9idWZmZXIgPSBzdGF0aWNfY2FzdDxjaGFyKj4oZ19z
bGljZV9hbGxvYyhSRUFEX0JVRkZFUl9TSVpFKSk7CiAKLSAgICAvLyBJZiBub3QgdXNpbmcgU291
cE1lc3NhZ2Ugd2UgbmVlZCB0byBjYWxsIGRpZFJlY2VpdmVSZXNwb25zZSBub3cuCi0gICAgLy8g
KFRoaXMgd2lsbCBjaGFuZ2UgbGF0ZXIgd2hlbiBTb3VwUmVxdWVzdCBzdXBwb3J0cyBjb250ZW50
IHNuaWZmaW5nLikKLSAgICBpZiAoIWQtPm1fc291cE1lc3NhZ2UpIHsKKyAgICBpZiAoc291cE1l
c3NhZ2UpIHsKKyAgICAgICAgaWYgKGhhbmRsZS0+c2hvdWxkQ29udGVudFNuaWZmKCkKKyAgICAg
ICAgICAgICYmIHNvdXBNZXNzYWdlLT5zdGF0dXNfY29kZSAhPSBTT1VQX1NUQVRVU19OT1RfTU9E
SUZJRUQpIHsKKyAgICAgICAgICAgIGNvbnN0IGNoYXIqIG9mZmljaWFsVHlwZSA9IHNvdXBfbWVz
c2FnZV9oZWFkZXJzX2dldF9vbmUoc291cE1lc3NhZ2UtPnJlc3BvbnNlX2hlYWRlcnMsICJDb250
ZW50LVR5cGUiKTsKKyAgICAgICAgICAgIGNvbnN0IGNoYXIqIHNuaWZmZWRUeXBlID0gc291cF9y
ZXF1ZXN0X2dldF9jb250ZW50X3R5cGUoZC0+bV9zb3VwUmVxdWVzdC5nZXQoKSk7CisgICAgICAg
ICAgICBpZiAoc25pZmZlZFR5cGUgJiYgKCFvZmZpY2lhbFR5cGUgfHwgc3RyY21wKG9mZmljaWFs
VHlwZSwgc25pZmZlZFR5cGUpKSkKKyAgICAgICAgICAgICAgICBkLT5tX3Jlc3BvbnNlLnNldFNu
aWZmZWRDb250ZW50VHlwZShzbmlmZmVkVHlwZSk7CisgICAgICAgIH0KKyAgICAgICAgZC0+bV9y
ZXNwb25zZS51cGRhdGVGcm9tU291cE1lc3NhZ2Uoc291cE1lc3NhZ2UpOworCisgICAgICAgIGlm
IChkLT5tX2RlZmVyc0xvYWRpbmcpCisgICAgICAgICAgICBzb3VwX3Nlc3Npb25fcGF1c2VfbWVz
c2FnZShoYW5kbGUtPmRlZmF1bHRTZXNzaW9uKCksIHNvdXBNZXNzYWdlKTsKKyAgICB9IGVsc2Ug
ewogICAgICAgICBkLT5tX3Jlc3BvbnNlLnNldFVSTChoYW5kbGUtPmZpcnN0UmVxdWVzdCgpLnVy
bCgpKTsKICAgICAgICAgY29uc3QgZ2NoYXIqIGNvbnRlbnRUeXBlID0gc291cF9yZXF1ZXN0X2dl
dF9jb250ZW50X3R5cGUoZC0+bV9zb3VwUmVxdWVzdC5nZXQoKSk7CiAgICAgICAgIGQtPm1fcmVz
cG9uc2Uuc2V0TWltZVR5cGUoZXh0cmFjdE1JTUVUeXBlRnJvbU1lZGlhVHlwZShjb250ZW50VHlw
ZSkpOwogICAgICAgICBkLT5tX3Jlc3BvbnNlLnNldFRleHRFbmNvZGluZ05hbWUoZXh0cmFjdENo
YXJzZXRGcm9tTWVkaWFUeXBlKGNvbnRlbnRUeXBlKSk7CiAgICAgICAgIGQtPm1fcmVzcG9uc2Uu
c2V0RXhwZWN0ZWRDb250ZW50TGVuZ3RoKHNvdXBfcmVxdWVzdF9nZXRfY29udGVudF9sZW5ndGgo
ZC0+bV9zb3VwUmVxdWVzdC5nZXQoKSkpOwotICAgICAgICBjbGllbnQtPmRpZFJlY2VpdmVSZXNw
b25zZShoYW5kbGUuZ2V0KCksIGQtPm1fcmVzcG9uc2UpOwotCi0gICAgICAgIGlmIChkLT5tX2Nh
bmNlbGxlZCkgewotICAgICAgICAgICAgY2xlYW51cFNvdXBSZXF1ZXN0T3BlcmF0aW9uKGhhbmRs
ZS5nZXQoKSk7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KICAgICB9CiAKLSAgICBp
ZiAoZC0+bV9kZWZlcnNMb2FkaW5nKQotICAgICAgICAgc291cF9zZXNzaW9uX3BhdXNlX21lc3Nh
Z2UoaGFuZGxlLT5kZWZhdWx0U2Vzc2lvbigpLCBkLT5tX3NvdXBNZXNzYWdlLmdldCgpKTsKKyAg
ICBjbGllbnQtPmRpZFJlY2VpdmVSZXNwb25zZShoYW5kbGUuZ2V0KCksIGQtPm1fcmVzcG9uc2Up
OworCisgICAgaWYgKGQtPm1fY2FuY2VsbGVkKSB7CisgICAgICAgIGNsZWFudXBTb3VwUmVxdWVz
dE9wZXJhdGlvbihoYW5kbGUuZ2V0KCkpOworICAgICAgICByZXR1cm47CisgICAgfQogCiAgICAg
Z19pbnB1dF9zdHJlYW1fcmVhZF9hc3luYyhkLT5tX2lucHV0U3RyZWFtLmdldCgpLCBkLT5tX2J1
ZmZlciwgUkVBRF9CVUZGRVJfU0laRSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdf
UFJJT1JJVFlfREVGQVVMVCwgZC0+bV9jYW5jZWxsYWJsZS5nZXQoKSwgcmVhZENhbGxiYWNrLCBo
YW5kbGUuZ2V0KCkpOwpAQCAtNjI3LDggKzQ2MCw2IEBAIHN0YXRpYyBib29sIHN0YXJ0SFRUUFJl
cXVlc3QoUmVzb3VyY2VIYW5kbGUqIGhhbmRsZSkKICAgICB1cmwucmVtb3ZlRnJhZ21lbnRJZGVu
dGlmaWVyKCk7CiAgICAgcmVxdWVzdC5zZXRVUkwodXJsKTsKIAotICAgIGQtPm1fZmluaXNoZWQg
PSBmYWxzZTsKLQogICAgIEdPd25QdHI8R0Vycm9yPiBlcnJvcjsKICAgICBkLT5tX3NvdXBSZXF1
ZXN0ID0gYWRvcHRHUmVmKHNvdXBfcmVxdWVzdGVyX3JlcXVlc3QocmVxdWVzdGVyLCB1cmwuc3Ry
aW5nKCkudXRmOCgpLmRhdGEoKSwgJmVycm9yLm91dFB0cigpKSk7CiAgICAgaWYgKGVycm9yKSB7
CkBAIC02NDUsMTQgKzQ3Niw5IEBAIHN0YXRpYyBib29sIHN0YXJ0SFRUUFJlcXVlc3QoUmVzb3Vy
Y2VIYW5kbGUqIGhhbmRsZSkKIAogICAgIGlmICghaGFuZGxlLT5zaG91bGRDb250ZW50U25pZmYo
KSkKICAgICAgICAgc291cF9tZXNzYWdlX2Rpc2FibGVfZmVhdHVyZShzb3VwTWVzc2FnZSwgU09V
UF9UWVBFX0NPTlRFTlRfU05JRkZFUik7Ci0gICAgZWxzZQotICAgICAgICBnX3NpZ25hbF9jb25u
ZWN0KHNvdXBNZXNzYWdlLCAiY29udGVudC1zbmlmZmVkIiwgR19DQUxMQkFDSyhjb250ZW50U25p
ZmZlZENhbGxiYWNrKSwgaGFuZGxlKTsKIAogICAgIGdfc2lnbmFsX2Nvbm5lY3Qoc291cE1lc3Nh
Z2UsICJyZXN0YXJ0ZWQiLCBHX0NBTExCQUNLKHJlc3RhcnRlZENhbGxiYWNrKSwgaGFuZGxlKTsK
LSAgICBnX3NpZ25hbF9jb25uZWN0KHNvdXBNZXNzYWdlLCAiZ290LWhlYWRlcnMiLCBHX0NBTExC
QUNLKGdvdEhlYWRlcnNDYWxsYmFjayksIGhhbmRsZSk7CiAgICAgZ19zaWduYWxfY29ubmVjdChz
b3VwTWVzc2FnZSwgIndyb3RlLWJvZHktZGF0YSIsIEdfQ0FMTEJBQ0sod3JvdGVCb2R5RGF0YUNh
bGxiYWNrKSwgaGFuZGxlKTsKLSAgICBkLT5tX2dvdENodW5rSGFuZGxlciA9IGdfc2lnbmFsX2Nv
bm5lY3Qoc291cE1lc3NhZ2UsICJnb3QtY2h1bmsiLCBHX0NBTExCQUNLKGdvdENodW5rQ2FsbGJh
Y2spLCBoYW5kbGUpOwotICAgIGQtPm1fZmluaXNoZWRIYW5kbGVyID0gZ19zaWduYWxfY29ubmVj
dChzb3VwTWVzc2FnZSwgImZpbmlzaGVkIiwgR19DQUxMQkFDSyhmaW5pc2hlZENhbGxiYWNrKSwg
aGFuZGxlKTsKIAogICAgIFN0cmluZyBmaXJzdFBhcnR5U3RyaW5nID0gcmVxdWVzdC5maXJzdFBh
cnR5Rm9yQ29va2llcygpLnN0cmluZygpOwogICAgIGlmICghZmlyc3RQYXJ0eVN0cmluZy5pc0Vt
cHR5KCkpIHsKQEAgLTc1NiwxMCArNTgyLDEwIEBAIHZvaWQgUmVzb3VyY2VIYW5kbGU6OnBsYXRm
b3JtU2V0RGVmZXJzTG9hZGluZyhib29sIGRlZmVyc0xvYWRpbmcpCiAgICAgaWYgKCFkLT5tX3Nv
dXBNZXNzYWdlKQogICAgICAgICByZXR1cm47CiAKLSAgICAvLyBEbyBub3QgcGF1c2Ugb3IgdW5w
YXVzZSBvcGVyYXRpb25zIHRoYXQgYXJlIGNvbXBsZXRlZCBvciBoYXZlIG5vdCByZWFjaGVkCisg
ICAgLy8gRG8gbm90IHBhdXNlIG9yIHVucGF1c2Ugb3BlcmF0aW9ucyB0aGF0IGhhdmUgbm90IHJl
YWNoZWQKICAgICAvLyBzZW5kUmVxdWVzdENhbGxiYWNrIHlldC4gSWYgbV9kZWZlcnNMb2FkaW5n
IGlzIHRydWUgYXQgdGhhdCBwb2ludCwgd2UnbGwgcGF1c2UuCiAgICAgU291cE1lc3NhZ2UqIHNv
dXBNZXNzYWdlID0gZC0+bV9zb3VwTWVzc2FnZS5nZXQoKTsKLSAgICBpZiAoZC0+bV9maW5pc2hl
ZCB8fCAhZC0+bV9pbnB1dFN0cmVhbSkKKyAgICBpZiAoIWQtPm1faW5wdXRTdHJlYW0pCiAgICAg
ICAgIHJldHVybjsKIAogICAgIGlmIChkZWZlcnNMb2FkaW5nKQpkaWZmIC0tZ2l0IGEvY29uZmln
dXJlLmFjIGIvY29uZmlndXJlLmFjCmluZGV4IDNkZTIzYzcuLjFlMzA1OWUgMTAwNjQ0Ci0tLSBh
L2NvbmZpZ3VyZS5hYworKysgYi9jb25maWd1cmUuYWMKQEAgLTI2Miw3ICsyNjIsNyBAQCBpZiB0
ZXN0ICIkd2l0aF9oaWxkb24iID0gInllcyI7IHRoZW4KIGZpCiAKICMgbWluaW11bSBiYXNlIGRl
cGVuZGVuY2llcwotTElCU09VUF9SRVFVSVJFRF9WRVJTSU9OPTIuMzMuNgorTElCU09VUF9SRVFV
SVJFRF9WRVJTSU9OPTIuMzcuMgogQ0FJUk9fUkVRVUlSRURfVkVSU0lPTj0xLjEwCiBGT05UQ09O
RklHX1JFUVVJUkVEX1ZFUlNJT049Mi40CiBGUkVFVFlQRTJfUkVRVUlSRURfVkVSU0lPTj05LjAK
LS0gCjEuNy43Cgo=
</data>
<flag name="commit-queue"
          id="112239"
          type_id="3"
          status="-"
          setter="gustavo.noronha"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>113786</attachid>
            <date>2011-11-06 10:01:07 -0800</date>
            <delta_ts>2011-12-02 01:39:23 -0800</delta_ts>
            <desc>updated - Remove lots of code that is now unnecessary</desc>
            <filename>0001-GTK-Remove-lots-of-code-that-is-now-unnecessary-afte.patch</filename>
            <type>text/plain</type>
            <size>19749</size>
            <attacher name="Dan Winship">danw</attacher>
            
              <data encoding="base64">RnJvbSBkMzFjN2UwYzQ1NTdhYjk5OTc4MTY5YmFhYWIzMzc2MDg2Mzc5YWRmIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBEYW4gV2luc2hpcCA8ZGFud0Bnbm9tZS5vcmc+CkRhdGU6IFN1
biwgMjMgT2N0IDIwMTEgMjE6MTc6MDAgLTA0MDAKU3ViamVjdDogW1BBVENIXSBbR1RLXSBSZW1v
dmUgbG90cyBvZiBjb2RlIHRoYXQgaXMgbm93IHVubmVjZXNzYXJ5IGFmdGVyCiBTb3VwUmVxdWVz
dEhUVFAgQVBJIGNoYW5nZXMuCgpSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KCk5vIG5ldyB0
ZXN0czsgYmVoYXZpb3IgaXMgdW5jaGFuZ2VkCgoqIHBsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VI
YW5kbGVJbnRlcm5hbC5oOgooV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGVJbnRlcm5hbDo6UmVzb3Vy
Y2VIYW5kbGVJbnRlcm5hbCk6IHJlbW92ZQpuby1sb25nZXItbmVlZGVkIGZpZWxkcy4KKiBwbGF0
Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5kbGVTb3VwLmNwcDoKKFdlYkNvcmU6OmZpbmlz
aGVkQ2FsbGJhY2spOiByZW1vdmUgdGhpcywgYW5kIG1fZmluaXNoZWQsIHdoaWNoCndlIG5vIGxv
bmdlciBuZWVkIHRvIGV4cGxpY2l0bHkgdHJhY2sKKFdlYkNvcmU6OnN0YXR1c1dpbGxCZUhhbmRs
ZWRCeVNvdXApOgooV2ViQ29yZTo6c291cEVycm9yU2hvdWxkQ2F1c2VMb2FkRmFpbHVyZSk6IE5v
IGxvbmdlciBuZWVkZWQ7ClNvdXBSZXF1ZXN0SFRUUCdzIGxvZ2ljIGlzIG5vdyBhbGlnbmVkIHdp
dGggV2ViS2l0J3MuCihXZWJDb3JlOjpzdGFydEhUVFBSZXF1ZXN0KToKKFdlYkNvcmU6OmdvdENo
dW5rQ2FsbGJhY2spOiByZW1vdmUgZ290Q2h1bmtDYWxsYmFjaywgd2hpY2gKaXMgbm8gbG9uZ2Vy
IG5lZWRlZAooV2ViQ29yZTo6c2VuZFJlcXVlc3RDYWxsYmFjayk6CihXZWJDb3JlOjpnb3RIZWFk
ZXJzQ2FsbGJhY2spOgooV2ViQ29yZTo6Y29udGVudFNuaWZmZWRDYWxsYmFjayk6IG1lcmdlIHRo
ZSBjb2RlIGZyb20KZ290SGVhZGVyc0NhbGxiYWNrIGFuZCBjb250ZW50U25pZmZlZENhbGxiYWNr
IGludG8Kc2VuZFJlcXVlc3RDYWxsYmFjawotLS0KIENoYW5nZUxvZyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxMCArCiBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMzEgKysrCiAuLi4vcGxhdGZvcm0vbmV0
d29yay9SZXNvdXJjZUhhbmRsZUludGVybmFsLmggICAgICB8ICAgIDYgLQogLi4uL3BsYXRmb3Jt
L25ldHdvcmsvc291cC9SZXNvdXJjZUhhbmRsZVNvdXAuY3BwICAgfCAgMjE3ICsrLS0tLS0tLS0t
LS0tLS0tLS0tCiAuLi4vcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlUmVzcG9uc2VTb3Vw
LmNwcCB8ICAgIDkgKy0KIGNvbmZpZ3VyZS5hYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHwgICAgMiArLQogNiBmaWxlcyBjaGFuZ2VkLCA2NyBpbnNlcnRpb25zKCspLCAy
MDggZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvQ2hhbmdlTG9nIGIvQ2hhbmdlTG9nCmluZGV4
IDM1MDRkMTMuLmQzZTM4N2YgMTAwNjQ0Ci0tLSBhL0NoYW5nZUxvZworKysgYi9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxMyBAQAorMjAxMS0xMS0wNiAgRGFuIFdpbnNoaXAgIDxkYW53QGdub21lLm9y
Zz4KKworICAgICAgICBbR1RLXSBVcGRhdGUgcmVxdWlyZWQgbGlic291cCB2ZXJzaW9uCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MTYxMQorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogY29uZmlndXJlLmFj
OiByZXF1aXJlIGxpYnNvdXAgMi4zNy4yIGZvciBTb3VwUmVxdWVzdEhUVFAgQVBJCisgICAgICAg
IGNoYW5nZXMKKwogMjAxMS0xMS0wNCAgUGhpbGlwcGUgTm9ybWFuZCAgPHBub3JtYW5kQGlnYWxp
YS5jb20+CiAKICAgICAgICAgW0dUS10gRGlzYWJsZSBWSURFT19UUkFDSyBmb3Igbm93CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cKaW5kZXggY2ZjOTQ5ZC4uMTZmOWM4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisy
MDExLTExLTA2ICBEYW4gV2luc2hpcCAgPGRhbndAZ25vbWUub3JnPgorCisgICAgICAgIFtHVEtd
IFJlbW92ZSBsb3RzIG9mIGNvZGUgdGhhdCBpcyBub3cgdW5uZWNlc3NhcnkgYWZ0ZXIKKyAgICAg
ICAgU291cFJlcXVlc3RIVFRQIEFQSSBjaGFuZ2VzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzE2MTEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHM7IGJlaGF2aW9yIGlzIHVuY2hhbmdl
ZAorCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZUludGVybmFsLmg6
CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZUludGVybmFsOjpSZXNvdXJjZUhhbmRs
ZUludGVybmFsKTogcmVtb3ZlCisgICAgICAgIG5vLWxvbmdlci1uZWVkZWQgZmllbGRzLgorICAg
ICAgICAqIHBsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUhhbmRsZVNvdXAuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6ZmluaXNoZWRDYWxsYmFjayk6IHJlbW92ZSB0aGlzLCBhbmQgbV9maW5p
c2hlZCwgd2hpY2gKKyAgICAgICAgd2Ugbm8gbG9uZ2VyIG5lZWQgdG8gZXhwbGljaXRseSB0cmFj
aworICAgICAgICAoV2ViQ29yZTo6c3RhdHVzV2lsbEJlSGFuZGxlZEJ5U291cCk6CisgICAgICAg
IChXZWJDb3JlOjpzb3VwRXJyb3JTaG91bGRDYXVzZUxvYWRGYWlsdXJlKTogTm8gbG9uZ2VyIG5l
ZWRlZDsKKyAgICAgICAgU291cFJlcXVlc3RIVFRQJ3MgbG9naWMgaXMgbm93IGFsaWduZWQgd2l0
aCBXZWJLaXQncy4KKyAgICAgICAgKFdlYkNvcmU6OnN0YXJ0SFRUUFJlcXVlc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6Z290Q2h1bmtDYWxsYmFjayk6IHJlbW92ZSBnb3RDaHVua0NhbGxiYWNrLCB3
aGljaAorICAgICAgICBpcyBubyBsb25nZXIgbmVlZGVkCisgICAgICAgIChXZWJDb3JlOjpzZW5k
UmVxdWVzdENhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OmdvdEhlYWRlcnNDYWxsYmFjayk6
CisgICAgICAgIChXZWJDb3JlOjpjb250ZW50U25pZmZlZENhbGxiYWNrKTogbWVyZ2UgdGhlIGNv
ZGUgZnJvbQorICAgICAgICBnb3RIZWFkZXJzQ2FsbGJhY2sgYW5kIGNvbnRlbnRTbmlmZmVkQ2Fs
bGJhY2sgaW50bworICAgICAgICBzZW5kUmVxdWVzdENhbGxiYWNrCisgICAgICAgICogcGxhdGZv
cm0vbmV0d29yay9zb3VwL1Jlc291cmNlUmVzcG9uc2VTb3VwLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlJlc291cmNlUmVzcG9uc2U6OnVwZGF0ZUZyb21Tb3VwTWVzc2FnZSk6IG1vdmUgdGhlCisg
ICAgICAgIHNuaWZmaW5nIG92ZXJyaWRlIGxvZ2ljIGhlcmUKKwogMjAxMS0xMS0wNSAgRGFuIFdp
bnNoaXAgIDxkYW53QGdub21lLm9yZz4KIAogICAgICAgICBbR1RLXSBBY3R1YWxseSB1c2UgdGhl
IHVzZXJfZGF0YSBhcmd1bWVudHMgdG8gZ2lvIGFzeW5jIGZ1bmN0aW9ucwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZUludGVybmFsLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlSW50ZXJuYWwu
aAppbmRleCBhODY4ZjU3Li4zZmFmOTdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlSW50ZXJuYWwuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlSW50ZXJuYWwuaApAQCAtMTA5LDEyICsx
MDksOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAjZW5kaWYKICNpZiBVU0UoU09VUCkKICAgICAg
ICAgICAgICwgbV9jYW5jZWxsZWQoZmFsc2UpCi0gICAgICAgICAgICAsIG1fZmluaXNoZWQoZmFs
c2UpCi0gICAgICAgICAgICAsIG1fZmluaXNoZWRIYW5kbGVyKDApCiAgICAgICAgICAgICAsIG1f
YnVmZmVyKDApCiAgICAgICAgICAgICAsIG1fYm9keVNpemUoMCkKICAgICAgICAgICAgICwgbV9i
b2R5RGF0YVNlbnQoMCkKLSAgICAgICAgICAgICwgbV9nb3RDaHVua0hhbmRsZXIoMCkKICNlbmRp
ZgogI2lmIFBMQVRGT1JNKFFUKQogICAgICAgICAgICAgLCBtX2pvYigwKQpAQCAtMTg5LDggKzE4
Niw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgR1JlZlB0cjxTb3VwTWVzc2FnZT4g
bV9zb3VwTWVzc2FnZTsKICAgICAgICAgUmVzb3VyY2VSZXNwb25zZSBtX3Jlc3BvbnNlOwogICAg
ICAgICBib29sIG1fY2FuY2VsbGVkOwotICAgICAgICBib29sIG1fZmluaXNoZWQ7Ci0gICAgICAg
IGd1bG9uZyBtX2ZpbmlzaGVkSGFuZGxlcjsKICAgICAgICAgR1JlZlB0cjxTb3VwUmVxdWVzdD4g
bV9zb3VwUmVxdWVzdDsKICAgICAgICAgR1JlZlB0cjxHSW5wdXRTdHJlYW0+IG1faW5wdXRTdHJl
YW07CiAgICAgICAgIEdSZWZQdHI8R0NhbmNlbGxhYmxlPiBtX2NhbmNlbGxhYmxlOwpAQCAtMTk4
LDcgKzE5Myw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdW5zaWduZWQgbG9uZyBt
X2JvZHlTaXplOwogICAgICAgICB1bnNpZ25lZCBsb25nIG1fYm9keURhdGFTZW50OwogICAgICAg
ICBSZWZQdHI8TmV0d29ya2luZ0NvbnRleHQ+IG1fY29udGV4dDsKLSAgICAgICAgZ3Vsb25nIG1f
Z290Q2h1bmtIYW5kbGVyOwogI2VuZGlmCiAjaWYgUExBVEZPUk0oUVQpCiAgICAgICAgIFFOZXR3
b3JrUmVwbHlIYW5kbGVyKiBtX2pvYjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUhhbmRsZVNvdXAuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlSGFuZGxlU291cC5jcHAKaW5kZXggYTliMDdk
Mi4uYWMzNDIzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9z
b3VwL1Jlc291cmNlSGFuZGxlU291cC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9zb3VwL1Jlc291cmNlSGFuZGxlU291cC5jcHAKQEAgLTE4MCwxOSArMTgwLDYgQEAg
dm9pZCBSZXNvdXJjZUhhbmRsZTo6cHJlcGFyZUZvclVSTChjb25zdCBLVVJMJiB1cmwpCiAgICAg
c291cF9zZXNzaW9uX3ByZXBhcmVfZm9yX3VyaShSZXNvdXJjZUhhbmRsZTo6ZGVmYXVsdFNlc3Np
b24oKSwgc291cFVSSS5nZXQoKSk7CiB9CiAKLS8vIEFsbCBvdGhlciBraW5kcyBvZiByZWRpcmVj
dGlvbnMsIGV4Y2VwdCBmb3IgdGhlICozMDQqIHN0YXR1cyBjb2RlCi0vLyAoU09VUF9TVEFUVVNf
Tk9UX01PRElGSUVEKSB3aGljaCBuZWVkcyB0byBiZSBmZWQgaW50byBXZWJDb3JlLCB3aWxsIGJl
Ci0vLyBoYW5kbGVkIGJ5IHNvdXAgZGlyZWN0bHkuCi1zdGF0aWMgZ2Jvb2xlYW4gc3RhdHVzV2ls
bEJlSGFuZGxlZEJ5U291cChndWludCBzdGF0dXNDb2RlKQotewotICAgIGlmIChTT1VQX1NUQVRV
U19JU19UUkFOU1BPUlRfRVJST1Ioc3RhdHVzQ29kZSkKLSAgICAgICAgfHwgKFNPVVBfU1RBVFVT
X0lTX1JFRElSRUNUSU9OKHN0YXR1c0NvZGUpICYmIChzdGF0dXNDb2RlICE9IFNPVVBfU1RBVFVT
X05PVF9NT0RJRklFRCkpCi0gICAgICAgIHx8IChzdGF0dXNDb2RlID09IFNPVVBfU1RBVFVTX1VO
QVVUSE9SSVpFRCkpCi0gICAgICAgIHJldHVybiB0cnVlOwotCi0gICAgcmV0dXJuIGZhbHNlOwot
fQotCiAvLyBDYWxsZWQgZWFjaCB0aW1lIHRoZSBtZXNzYWdlIGlzIGdvaW5nIHRvIGJlIHNlbnQg
YWdhaW4gZXhjZXB0IHRoZSBmaXJzdCB0aW1lLgogLy8gSXQncyB1c2VkIG1vc3RseSB0byBsZXQg
d2Via2l0IGtub3cgYWJvdXQgcmVkaXJlY3RzLgogc3RhdGljIHZvaWQgcmVzdGFydGVkQ2FsbGJh
Y2soU291cE1lc3NhZ2UqIG1zZywgZ3BvaW50ZXIgZGF0YSkKQEAgLTIzNCw1MyArMjIxLDYgQEAg
c3RhdGljIHZvaWQgcmVzdGFydGVkQ2FsbGJhY2soU291cE1lc3NhZ2UqIG1zZywgZ3BvaW50ZXIg
ZGF0YSkKICAgICB9CiB9CiAKLXN0YXRpYyB2b2lkIGNvbnRlbnRTbmlmZmVkQ2FsbGJhY2soU291
cE1lc3NhZ2UqLCBjb25zdCBjaGFyKiwgR0hhc2hUYWJsZSosIGdwb2ludGVyKTsKLQotc3RhdGlj
IHZvaWQgZ290SGVhZGVyc0NhbGxiYWNrKFNvdXBNZXNzYWdlKiBtc2csIGdwb2ludGVyIGRhdGEp
Ci17Ci0gICAgLy8gRm9yIDQwMSwgd2Ugd2lsbCBhY2N1bXVsYXRlIHRoZSByZXNvdXJjZSBib2R5
LCBhbmQgb25seSB1c2UgaXQKLSAgICAvLyBpbiBjYXNlIGF1dGhlbnRpY2F0aW9uIHdpdGggdGhl
IHNvdXAgZmVhdHVyZSBkb2Vzbid0IGhhcHBlbi4KLSAgICAvLyBGb3IgMzAyIHdlIGFjY3VtdWxh
dGUgdGhlIGJvZHkgdG9vIGJlY2F1c2UgaXQgY291bGQgYmUgdXNlZCBieQotICAgIC8vIHNvbWUg
c2VydmVycyB0byByZWRpcmVjdCB3aXRoIGEgY2x1bmt5IGh0dHAtZXF1aXY9UkVGUkVTSAotICAg
IGlmIChzdGF0dXNXaWxsQmVIYW5kbGVkQnlTb3VwKG1zZy0+c3RhdHVzX2NvZGUpKSB7Ci0gICAg
ICAgIHNvdXBfbWVzc2FnZV9ib2R5X3NldF9hY2N1bXVsYXRlKG1zZy0+cmVzcG9uc2VfYm9keSwg
VFJVRSk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICAvLyBGb3IgYWxsIHRoZSBvdGhl
ciByZXNwb25zZXMsIHdlIGhhbmRsZSBlYWNoIGNodW5rIG91cnNlbHZlcywKLSAgICAvLyBhbmQg
d2UgZG9uJ3QgbmVlZCBtc2ctPnJlc3BvbnNlX2JvZHkgdG8gY29udGFpbiBhbGwgb2YgdGhlIGRh
dGEKLSAgICAvLyB3ZSBnb3QsIHdoZW4gd2UgZmluaXNoIGRvd25sb2FkaW5nLgotICAgIHNvdXBf
bWVzc2FnZV9ib2R5X3NldF9hY2N1bXVsYXRlKG1zZy0+cmVzcG9uc2VfYm9keSwgRkFMU0UpOwot
Ci0gICAgUmVmUHRyPFJlc291cmNlSGFuZGxlPiBoYW5kbGUgPSBzdGF0aWNfY2FzdDxSZXNvdXJj
ZUhhbmRsZSo+KGRhdGEpOwotCi0gICAgLy8gVGhlIGNvbnRlbnQtc25pZmZlZCBjYWxsYmFjayB3
aWxsIGhhbmRsZSB0aGUgcmVzcG9uc2UgaWYgV2ViQ29yZQotICAgIC8vIHJlcXVpcmUgdXMgdG8g
c25pZmYuCi0gICAgaWYgKCFoYW5kbGUgfHwgc3RhdHVzV2lsbEJlSGFuZGxlZEJ5U291cChtc2ct
PnN0YXR1c19jb2RlKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgaWYgKGhhbmRsZS0+c2hvdWxk
Q29udGVudFNuaWZmKCkpIHsKLSAgICAgICAgLy8gQXZvaWQgTUlNRSB0eXBlIHNuaWZmaW5nIGlm
IHRoZSByZXNwb25zZSBjb21lcyBiYWNrIGFzIDMwNCBOb3QgTW9kaWZpZWQuCi0gICAgICAgIGlm
IChtc2ctPnN0YXR1c19jb2RlID09IFNPVVBfU1RBVFVTX05PVF9NT0RJRklFRCkgewotICAgICAg
ICAgICAgc291cF9tZXNzYWdlX2Rpc2FibGVfZmVhdHVyZShtc2csIFNPVVBfVFlQRV9DT05URU5U
X1NOSUZGRVIpOwotICAgICAgICAgICAgZ19zaWduYWxfaGFuZGxlcnNfZGlzY29ubmVjdF9ieV9m
dW5jKG1zZywgcmVpbnRlcnByZXRfY2FzdDxncG9pbnRlcj4oY29udGVudFNuaWZmZWRDYWxsYmFj
ayksIGhhbmRsZS5nZXQoKSk7Ci0gICAgICAgIH0gZWxzZQotICAgICAgICAgICAgcmV0dXJuOwot
ICAgIH0KLQotICAgIFJlc291cmNlSGFuZGxlSW50ZXJuYWwqIGQgPSBoYW5kbGUtPmdldEludGVy
bmFsKCk7Ci0gICAgaWYgKGQtPm1fY2FuY2VsbGVkKQotICAgICAgICByZXR1cm47Ci0gICAgUmVz
b3VyY2VIYW5kbGVDbGllbnQqIGNsaWVudCA9IGhhbmRsZS0+Y2xpZW50KCk7Ci0gICAgaWYgKCFj
bGllbnQpCi0gICAgICAgIHJldHVybjsKLQotICAgIEFTU0VSVChkLT5tX3Jlc3BvbnNlLmlzTnVs
bCgpKTsKLQotICAgIGQtPm1fcmVzcG9uc2UudXBkYXRlRnJvbVNvdXBNZXNzYWdlKG1zZyk7Ci0g
ICAgY2xpZW50LT5kaWRSZWNlaXZlUmVzcG9uc2UoaGFuZGxlLmdldCgpLCBkLT5tX3Jlc3BvbnNl
KTsKLX0KLQogc3RhdGljIHZvaWQgd3JvdGVCb2R5RGF0YUNhbGxiYWNrKFNvdXBNZXNzYWdlKiwg
U291cEJ1ZmZlciogYnVmZmVyLCBncG9pbnRlciBkYXRhKQogewogICAgIFJlZlB0cjxSZXNvdXJj
ZUhhbmRsZT4gaGFuZGxlID0gc3RhdGljX2Nhc3Q8UmVzb3VyY2VIYW5kbGUqPihkYXRhKTsKQEAg
LTMwMCw3OCArMjQwLDYgQEAgc3RhdGljIHZvaWQgd3JvdGVCb2R5RGF0YUNhbGxiYWNrKFNvdXBN
ZXNzYWdlKiwgU291cEJ1ZmZlciogYnVmZmVyLCBncG9pbnRlciBkYXQKICAgICBjbGllbnQtPmRp
ZFNlbmREYXRhKGhhbmRsZS5nZXQoKSwgaW50ZXJuYWwtPm1fYm9keURhdGFTZW50LCBpbnRlcm5h
bC0+bV9ib2R5U2l6ZSk7CiB9CiAKLS8vIFRoaXMgY2FsbGJhY2sgd2lsbCBub3QgYmUgY2FsbGVk
IGlmIHRoZSBjb250ZW50IHNuaWZmZXIgaXMgZGlzYWJsZWQgaW4gc3RhcnRIVFRQUmVxdWVzdC4K
LXN0YXRpYyB2b2lkIGNvbnRlbnRTbmlmZmVkQ2FsbGJhY2soU291cE1lc3NhZ2UqIG1zZywgY29u
c3QgY2hhciogc25pZmZlZFR5cGUsIEdIYXNoVGFibGUgKnBhcmFtcywgZ3BvaW50ZXIgZGF0YSkK
LXsKLQotICAgIGlmIChzdGF0dXNXaWxsQmVIYW5kbGVkQnlTb3VwKG1zZy0+c3RhdHVzX2NvZGUp
KQotICAgICAgICByZXR1cm47Ci0KLSAgICBSZWZQdHI8UmVzb3VyY2VIYW5kbGU+IGhhbmRsZSA9
IHN0YXRpY19jYXN0PFJlc291cmNlSGFuZGxlKj4oZGF0YSk7Ci0gICAgaWYgKCFoYW5kbGUpCi0g
ICAgICAgIHJldHVybjsKLSAgICBSZXNvdXJjZUhhbmRsZUludGVybmFsKiBkID0gaGFuZGxlLT5n
ZXRJbnRlcm5hbCgpOwotICAgIGlmIChkLT5tX2NhbmNlbGxlZCkKLSAgICAgICAgcmV0dXJuOwot
ICAgIFJlc291cmNlSGFuZGxlQ2xpZW50KiBjbGllbnQgPSBoYW5kbGUtPmNsaWVudCgpOwotICAg
IGlmICghY2xpZW50KQotICAgICAgICByZXR1cm47Ci0KLSAgICBBU1NFUlQoZC0+bV9yZXNwb25z
ZS5pc051bGwoKSk7Ci0KLSAgICBpZiAoc25pZmZlZFR5cGUpIHsKLSAgICAgICAgY29uc3QgY2hh
ciogb2ZmaWNpYWxUeXBlID0gc291cF9tZXNzYWdlX2hlYWRlcnNfZ2V0X29uZShtc2ctPnJlc3Bv
bnNlX2hlYWRlcnMsICJDb250ZW50LVR5cGUiKTsKLSAgICAgICAgaWYgKCFvZmZpY2lhbFR5cGUg
fHwgc3RyY21wKG9mZmljaWFsVHlwZSwgc25pZmZlZFR5cGUpKSB7Ci0gICAgICAgICAgICBHU3Ry
aW5nKiBzdHIgPSBnX3N0cmluZ19uZXcoc25pZmZlZFR5cGUpOwotICAgICAgICAgICAgaWYgKHBh
cmFtcykgewotICAgICAgICAgICAgICAgIEdIYXNoVGFibGVJdGVyIGl0ZXI7Ci0gICAgICAgICAg
ICAgICAgZ3BvaW50ZXIga2V5LCB2YWx1ZTsKLSAgICAgICAgICAgICAgICBnX2hhc2hfdGFibGVf
aXRlcl9pbml0KCZpdGVyLCBwYXJhbXMpOwotICAgICAgICAgICAgICAgIHdoaWxlIChnX2hhc2hf
dGFibGVfaXRlcl9uZXh0KCZpdGVyLCAma2V5LCAmdmFsdWUpKSB7Ci0gICAgICAgICAgICAgICAg
ICAgIGdfc3RyaW5nX2FwcGVuZChzdHIsICI7ICIpOwotICAgICAgICAgICAgICAgICAgICBzb3Vw
X2hlYWRlcl9nX3N0cmluZ19hcHBlbmRfcGFyYW0oc3RyLCBzdGF0aWNfY2FzdDxjb25zdCBjaGFy
Kj4oa2V5KSwgc3RhdGljX2Nhc3Q8Y29uc3QgY2hhcio+KHZhbHVlKSk7Ci0gICAgICAgICAgICAg
ICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgICAgZC0+bV9yZXNwb25zZS5zZXRTbmlmZmVk
Q29udGVudFR5cGUoc3RyLT5zdHIpOwotICAgICAgICAgICAgZ19zdHJpbmdfZnJlZShzdHIsIFRS
VUUpOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgZC0+bV9yZXNwb25zZS51cGRhdGVGcm9tU291
cE1lc3NhZ2UobXNnKTsKLSAgICBjbGllbnQtPmRpZFJlY2VpdmVSZXNwb25zZShoYW5kbGUuZ2V0
KCksIGQtPm1fcmVzcG9uc2UpOwotfQotCi1zdGF0aWMgdm9pZCBnb3RDaHVua0NhbGxiYWNrKFNv
dXBNZXNzYWdlKiBtc2csIFNvdXBCdWZmZXIqIGNodW5rLCBncG9pbnRlciBkYXRhKQotewotICAg
IGlmIChzdGF0dXNXaWxsQmVIYW5kbGVkQnlTb3VwKG1zZy0+c3RhdHVzX2NvZGUpKQotICAgICAg
ICByZXR1cm47Ci0KLSAgICBSZWZQdHI8UmVzb3VyY2VIYW5kbGU+IGhhbmRsZSA9IHN0YXRpY19j
YXN0PFJlc291cmNlSGFuZGxlKj4oZGF0YSk7Ci0gICAgaWYgKCFoYW5kbGUpCi0gICAgICAgIHJl
dHVybjsKLSAgICBSZXNvdXJjZUhhbmRsZUludGVybmFsKiBkID0gaGFuZGxlLT5nZXRJbnRlcm5h
bCgpOwotICAgIGlmIChkLT5tX2NhbmNlbGxlZCkKLSAgICAgICAgcmV0dXJuOwotICAgIFJlc291
cmNlSGFuZGxlQ2xpZW50KiBjbGllbnQgPSBoYW5kbGUtPmNsaWVudCgpOwotICAgIGlmICghY2xp
ZW50KQotICAgICAgICByZXR1cm47Ci0KLSAgICBBU1NFUlQoIWQtPm1fcmVzcG9uc2UuaXNOdWxs
KCkpOwotCi0gICAgLy8gRklYTUU6IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xOTc5MwotICAgIC8vIC0xIG1lYW5zIHdlIGRvIG5vdCBwcm92aWRlIGFueSBkYXRhIGFi
b3V0IHRyYW5zZmVyIHNpemUgdG8gaW5zcGVjdG9yIHNvIGl0IHdvdWxkIHVzZQotICAgIC8vIENv
bnRlbnQtTGVuZ3RoIGhlYWRlcnMgb3IgY29udGVudCBzaXplIHRvIHNob3cgdHJhbnNmZXIgc2l6
ZS4KLSAgICBjbGllbnQtPmRpZFJlY2VpdmVEYXRhKGhhbmRsZS5nZXQoKSwgY2h1bmstPmRhdGEs
IGNodW5rLT5sZW5ndGgsIC0xKTsKLX0KLQotc3RhdGljIHZvaWQgZmluaXNoZWRDYWxsYmFjayhT
b3VwTWVzc2FnZSogbXNnLCBncG9pbnRlciBkYXRhKQotewotICAgIFJlZlB0cjxSZXNvdXJjZUhh
bmRsZT4gaGFuZGxlID0gc3RhdGljX2Nhc3Q8UmVzb3VyY2VIYW5kbGUqPihkYXRhKTsKLSAgICBp
ZiAoIWhhbmRsZSkKLSAgICAgICAgcmV0dXJuOwotICAgIGhhbmRsZS0+Z2V0SW50ZXJuYWwoKS0+
bV9maW5pc2hlZCA9IHRydWU7Ci19Ci0KIHN0YXRpYyB2b2lkIGNsZWFudXBTb3VwUmVxdWVzdE9w
ZXJhdGlvbihSZXNvdXJjZUhhbmRsZSogaGFuZGxlLCBib29sIGlzRGVzdHJveWluZyA9IGZhbHNl
KQogewogICAgIFJlc291cmNlSGFuZGxlSW50ZXJuYWwqIGQgPSBoYW5kbGUtPmdldEludGVybmFs
KCk7CkBAIC0zOTksMTIgKzI2Nyw2IEBAIHN0YXRpYyB2b2lkIGNsZWFudXBTb3VwUmVxdWVzdE9w
ZXJhdGlvbihSZXNvdXJjZUhhbmRsZSogaGFuZGxlLCBib29sIGlzRGVzdHJveWluCiAgICAgICAg
IGhhbmRsZS0+ZGVyZWYoKTsKIH0KIAotc3RhdGljIGJvb2wgc291cEVycm9yU2hvdWxkQ2F1c2VM
b2FkRmFpbHVyZShHRXJyb3IqIGVycm9yLCBTb3VwTWVzc2FnZSogbWVzc2FnZSkKLXsKLSAgICAv
LyBMaWJzb3VwIHRyZWF0cyBzb21lIG5vbi1lcnJvciBjb25kaXRpb25zIGFzIGVycm9ycywgaW5j
bHVkaW5nIHJlZGlyZWN0cyBhbmQgMzA0IE5vdCBNb2RpZmllZCByZXNwb25zZXMuCi0gICAgcmV0
dXJuIG1lc3NhZ2UgJiYgU09VUF9TVEFUVVNfSVNfVFJBTlNQT1JUX0VSUk9SKG1lc3NhZ2UtPnN0
YXR1c19jb2RlKSB8fCBlcnJvci0+ZG9tYWluID09IEdfSU9fRVJST1I7Ci19Ci0KIHN0YXRpYyBS
ZXNvdXJjZUVycm9yIGNvbnZlcnRTb3VwRXJyb3JUb1Jlc291cmNlRXJyb3IoR0Vycm9yKiBlcnJv
ciwgU291cFJlcXVlc3QqIHJlcXVlc3QsIFNvdXBNZXNzYWdlKiBtZXNzYWdlID0gMCkKIHsKICAg
ICBBU1NFUlQoZXJyb3IpOwpAQCAtNDMxLDEzICsyOTMsNyBAQCBzdGF0aWMgdm9pZCBzZW5kUmVx
dWVzdENhbGxiYWNrKEdPYmplY3QqIHNvdXJjZSwgR0FzeW5jUmVzdWx0KiByZXMsIGdwb2ludGVy
IGRhdAogCiAgICAgUmVzb3VyY2VIYW5kbGVJbnRlcm5hbCogZCA9IGhhbmRsZS0+Z2V0SW50ZXJu
YWwoKTsKICAgICBSZXNvdXJjZUhhbmRsZUNsaWVudCogY2xpZW50ID0gaGFuZGxlLT5jbGllbnQo
KTsKLQotICAgIGlmIChkLT5tX2dvdENodW5rSGFuZGxlcikgewotICAgICAgICAvLyBObyBuZWVk
IHRvIGNhbGwgZ290Q2h1bmtIYW5kbGVyIGFueW1vcmUuIFJlY2VpdmVkIGRhdGEgd2lsbAotICAg
ICAgICAvLyBiZSByZXBvcnRlZCBieSByZWFkQ2FsbGJhY2sKLSAgICAgICAgaWYgKGdfc2lnbmFs
X2hhbmRsZXJfaXNfY29ubmVjdGVkKGQtPm1fc291cE1lc3NhZ2UuZ2V0KCksIGQtPm1fZ290Q2h1
bmtIYW5kbGVyKSkKLSAgICAgICAgICAgIGdfc2lnbmFsX2hhbmRsZXJfZGlzY29ubmVjdChkLT5t
X3NvdXBNZXNzYWdlLmdldCgpLCBkLT5tX2dvdENodW5rSGFuZGxlcik7Ci0gICAgfQorICAgIFNv
dXBNZXNzYWdlKiBzb3VwTWVzc2FnZSA9IGQtPm1fc291cE1lc3NhZ2UuZ2V0KCk7CiAKICAgICBp
ZiAoZC0+bV9jYW5jZWxsZWQgfHwgIWNsaWVudCkgewogICAgICAgICBjbGVhbnVwU291cFJlcXVl
c3RPcGVyYXRpb24oaGFuZGxlLmdldCgpKTsKQEAgLTQ0NywzOCArMzAzLDcgQEAgc3RhdGljIHZv
aWQgc2VuZFJlcXVlc3RDYWxsYmFjayhHT2JqZWN0KiBzb3VyY2UsIEdBc3luY1Jlc3VsdCogcmVz
LCBncG9pbnRlciBkYXQKICAgICBHT3duUHRyPEdFcnJvcj4gZXJyb3I7CiAgICAgR0lucHV0U3Ry
ZWFtKiBpbiA9IHNvdXBfcmVxdWVzdF9zZW5kX2ZpbmlzaChkLT5tX3NvdXBSZXF1ZXN0LmdldCgp
LCByZXMsICZlcnJvci5vdXRQdHIoKSk7CiAgICAgaWYgKGVycm9yKSB7Ci0gICAgICAgIFNvdXBN
ZXNzYWdlKiBzb3VwTWVzc2FnZSA9IGQtPm1fc291cE1lc3NhZ2UuZ2V0KCk7Ci0KLSAgICAgICAg
aWYgKHNvdXBFcnJvclNob3VsZENhdXNlTG9hZEZhaWx1cmUoZXJyb3IuZ2V0KCksIHNvdXBNZXNz
YWdlKSkgewotICAgICAgICAgICAgY2xpZW50LT5kaWRGYWlsKGhhbmRsZS5nZXQoKSwgY29udmVy
dFNvdXBFcnJvclRvUmVzb3VyY2VFcnJvcihlcnJvci5nZXQoKSwgZC0+bV9zb3VwUmVxdWVzdC5n
ZXQoKSwgc291cE1lc3NhZ2UpKTsKLSAgICAgICAgICAgIGNsZWFudXBTb3VwUmVxdWVzdE9wZXJh
dGlvbihoYW5kbGUuZ2V0KCkpOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0KLSAg
ICAgICAgaWYgKHNvdXBNZXNzYWdlICYmIHN0YXR1c1dpbGxCZUhhbmRsZWRCeVNvdXAoc291cE1l
c3NhZ2UtPnN0YXR1c19jb2RlKSkgewotICAgICAgICAgICAgQVNTRVJUKGQtPm1fcmVzcG9uc2Uu
aXNOdWxsKCkpOwotCi0gICAgICAgICAgICBkLT5tX3Jlc3BvbnNlLnVwZGF0ZUZyb21Tb3VwTWVz
c2FnZShzb3VwTWVzc2FnZSk7Ci0gICAgICAgICAgICBjbGllbnQtPmRpZFJlY2VpdmVSZXNwb25z
ZShoYW5kbGUuZ2V0KCksIGQtPm1fcmVzcG9uc2UpOwotCi0gICAgICAgICAgICAvLyBXZWJDb3Jl
IG1pZ2h0IGhhdmUgY2FuY2VsbGVkIHRoZSBqb2IgaW4gdGhlIHdoaWxlLiBXZQotICAgICAgICAg
ICAgLy8gbXVzdCBjaGVjayBmb3IgcmVzcG9uc2VfYm9keS0+bGVuZ3RoIGFuZCBub3QKLSAgICAg
ICAgICAgIC8vIHJlc3BvbnNlX2JvZHktPmRhdGEgYXMgbGlic291cCBhbHdheXMgY3JlYXRlcyB0
aGUKLSAgICAgICAgICAgIC8vIFNvdXBCdWZmZXIgZm9yIHRoZSBib2R5IGV2ZW4gaWYgdGhlIGxl
bmd0aCBpcyAwCi0gICAgICAgICAgICBpZiAoIWQtPm1fY2FuY2VsbGVkICYmIHNvdXBNZXNzYWdl
LT5yZXNwb25zZV9ib2R5LT5sZW5ndGgpCi0gICAgICAgICAgICAgICAgY2xpZW50LT5kaWRSZWNl
aXZlRGF0YShoYW5kbGUuZ2V0KCksIHNvdXBNZXNzYWdlLT5yZXNwb25zZV9ib2R5LT5kYXRhLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc291cE1lc3NhZ2UtPnJlc3Bv
bnNlX2JvZHktPmxlbmd0aCwgc291cE1lc3NhZ2UtPnJlc3BvbnNlX2JvZHktPmxlbmd0aCk7Ci0g
ICAgICAgIH0KLQotICAgICAgICAvLyBkaWRSZWNlaXZlRGF0YSBhYm92ZSBtaWdodCBoYXZlIGNh
bmNlbGVkIHRoaXMgb3BlcmF0aW9uLiBJZiBub3QsIGluZm9ybSB0aGUgY2xpZW50IHdlJ3ZlIGZp
bmlzaGVkIGxvYWRpbmcuCi0gICAgICAgIGlmICghZC0+bV9jYW5jZWxsZWQgJiYgY2xpZW50KQot
ICAgICAgICAgICAgY2xpZW50LT5kaWRGaW5pc2hMb2FkaW5nKGhhbmRsZS5nZXQoKSwgMCk7Ci0K
LSAgICAgICAgY2xlYW51cFNvdXBSZXF1ZXN0T3BlcmF0aW9uKGhhbmRsZS5nZXQoKSk7Ci0gICAg
ICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBpZiAoZC0+bV9jYW5jZWxsZWQpIHsKKyAgICAgICAg
Y2xpZW50LT5kaWRGYWlsKGhhbmRsZS5nZXQoKSwgY29udmVydFNvdXBFcnJvclRvUmVzb3VyY2VF
cnJvcihlcnJvci5nZXQoKSwgZC0+bV9zb3VwUmVxdWVzdC5nZXQoKSwgc291cE1lc3NhZ2UpKTsK
ICAgICAgICAgY2xlYW51cFNvdXBSZXF1ZXN0T3BlcmF0aW9uKGhhbmRsZS5nZXQoKSk7CiAgICAg
ICAgIHJldHVybjsKICAgICB9CkBAIC00ODYsMjQgKzMxMSwyOSBAQCBzdGF0aWMgdm9pZCBzZW5k
UmVxdWVzdENhbGxiYWNrKEdPYmplY3QqIHNvdXJjZSwgR0FzeW5jUmVzdWx0KiByZXMsIGdwb2lu
dGVyIGRhdAogICAgIGQtPm1faW5wdXRTdHJlYW0gPSBhZG9wdEdSZWYoaW4pOwogICAgIGQtPm1f
YnVmZmVyID0gc3RhdGljX2Nhc3Q8Y2hhcio+KGdfc2xpY2VfYWxsb2MoUkVBRF9CVUZGRVJfU0la
RSkpOwogCi0gICAgLy8gSWYgbm90IHVzaW5nIFNvdXBNZXNzYWdlIHdlIG5lZWQgdG8gY2FsbCBk
aWRSZWNlaXZlUmVzcG9uc2Ugbm93LgotICAgIC8vIChUaGlzIHdpbGwgY2hhbmdlIGxhdGVyIHdo
ZW4gU291cFJlcXVlc3Qgc3VwcG9ydHMgY29udGVudCBzbmlmZmluZy4pCi0gICAgaWYgKCFkLT5t
X3NvdXBNZXNzYWdlKSB7CisgICAgaWYgKHNvdXBNZXNzYWdlKSB7CisgICAgICAgIGlmIChoYW5k
bGUtPnNob3VsZENvbnRlbnRTbmlmZigpICYmIHNvdXBNZXNzYWdlLT5zdGF0dXNfY29kZSAhPSBT
T1VQX1NUQVRVU19OT1RfTU9ESUZJRUQpIHsKKyAgICAgICAgICAgIGNvbnN0IGNoYXIqIHNuaWZm
ZWRUeXBlID0gc291cF9yZXF1ZXN0X2dldF9jb250ZW50X3R5cGUoZC0+bV9zb3VwUmVxdWVzdC5n
ZXQoKSk7CisgICAgICAgICAgICBkLT5tX3Jlc3BvbnNlLnNldFNuaWZmZWRDb250ZW50VHlwZShz
bmlmZmVkVHlwZSk7CisgICAgICAgIH0KKyAgICAgICAgZC0+bV9yZXNwb25zZS51cGRhdGVGcm9t
U291cE1lc3NhZ2Uoc291cE1lc3NhZ2UpOworCisgICAgICAgIGlmIChkLT5tX2RlZmVyc0xvYWRp
bmcpCisgICAgICAgICAgICBzb3VwX3Nlc3Npb25fcGF1c2VfbWVzc2FnZShoYW5kbGUtPmRlZmF1
bHRTZXNzaW9uKCksIHNvdXBNZXNzYWdlKTsKKyAgICB9IGVsc2UgewogICAgICAgICBkLT5tX3Jl
c3BvbnNlLnNldFVSTChoYW5kbGUtPmZpcnN0UmVxdWVzdCgpLnVybCgpKTsKICAgICAgICAgY29u
c3QgZ2NoYXIqIGNvbnRlbnRUeXBlID0gc291cF9yZXF1ZXN0X2dldF9jb250ZW50X3R5cGUoZC0+
bV9zb3VwUmVxdWVzdC5nZXQoKSk7CiAgICAgICAgIGQtPm1fcmVzcG9uc2Uuc2V0TWltZVR5cGUo
ZXh0cmFjdE1JTUVUeXBlRnJvbU1lZGlhVHlwZShjb250ZW50VHlwZSkpOwogICAgICAgICBkLT5t
X3Jlc3BvbnNlLnNldFRleHRFbmNvZGluZ05hbWUoZXh0cmFjdENoYXJzZXRGcm9tTWVkaWFUeXBl
KGNvbnRlbnRUeXBlKSk7CiAgICAgICAgIGQtPm1fcmVzcG9uc2Uuc2V0RXhwZWN0ZWRDb250ZW50
TGVuZ3RoKHNvdXBfcmVxdWVzdF9nZXRfY29udGVudF9sZW5ndGgoZC0+bV9zb3VwUmVxdWVzdC5n
ZXQoKSkpOwotICAgICAgICBjbGllbnQtPmRpZFJlY2VpdmVSZXNwb25zZShoYW5kbGUuZ2V0KCks
IGQtPm1fcmVzcG9uc2UpOwotCi0gICAgICAgIGlmIChkLT5tX2NhbmNlbGxlZCkgewotICAgICAg
ICAgICAgY2xlYW51cFNvdXBSZXF1ZXN0T3BlcmF0aW9uKGhhbmRsZS5nZXQoKSk7Ci0gICAgICAg
ICAgICByZXR1cm47Ci0gICAgICAgIH0KICAgICB9CiAKLSAgICBpZiAoZC0+bV9kZWZlcnNMb2Fk
aW5nKQotICAgICAgICAgc291cF9zZXNzaW9uX3BhdXNlX21lc3NhZ2UoaGFuZGxlLT5kZWZhdWx0
U2Vzc2lvbigpLCBkLT5tX3NvdXBNZXNzYWdlLmdldCgpKTsKKyAgICBjbGllbnQtPmRpZFJlY2Vp
dmVSZXNwb25zZShoYW5kbGUuZ2V0KCksIGQtPm1fcmVzcG9uc2UpOworCisgICAgaWYgKGQtPm1f
Y2FuY2VsbGVkKSB7CisgICAgICAgIGNsZWFudXBTb3VwUmVxdWVzdE9wZXJhdGlvbihoYW5kbGUu
Z2V0KCkpOworICAgICAgICByZXR1cm47CisgICAgfQogCiAgICAgZ19pbnB1dF9zdHJlYW1fcmVh
ZF9hc3luYyhkLT5tX2lucHV0U3RyZWFtLmdldCgpLCBkLT5tX2J1ZmZlciwgUkVBRF9CVUZGRVJf
U0laRSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdfUFJJT1JJVFlfREVGQVVMVCwg
ZC0+bV9jYW5jZWxsYWJsZS5nZXQoKSwgcmVhZENhbGxiYWNrLCBoYW5kbGUuZ2V0KCkpOwpAQCAt
NjI3LDggKzQ1Nyw2IEBAIHN0YXRpYyBib29sIHN0YXJ0SFRUUFJlcXVlc3QoUmVzb3VyY2VIYW5k
bGUqIGhhbmRsZSkKICAgICB1cmwucmVtb3ZlRnJhZ21lbnRJZGVudGlmaWVyKCk7CiAgICAgcmVx
dWVzdC5zZXRVUkwodXJsKTsKIAotICAgIGQtPm1fZmluaXNoZWQgPSBmYWxzZTsKLQogICAgIEdP
d25QdHI8R0Vycm9yPiBlcnJvcjsKICAgICBkLT5tX3NvdXBSZXF1ZXN0ID0gYWRvcHRHUmVmKHNv
dXBfcmVxdWVzdGVyX3JlcXVlc3QocmVxdWVzdGVyLCB1cmwuc3RyaW5nKCkudXRmOCgpLmRhdGEo
KSwgJmVycm9yLm91dFB0cigpKSk7CiAgICAgaWYgKGVycm9yKSB7CkBAIC02NDUsMTQgKzQ3Myw5
IEBAIHN0YXRpYyBib29sIHN0YXJ0SFRUUFJlcXVlc3QoUmVzb3VyY2VIYW5kbGUqIGhhbmRsZSkK
IAogICAgIGlmICghaGFuZGxlLT5zaG91bGRDb250ZW50U25pZmYoKSkKICAgICAgICAgc291cF9t
ZXNzYWdlX2Rpc2FibGVfZmVhdHVyZShzb3VwTWVzc2FnZSwgU09VUF9UWVBFX0NPTlRFTlRfU05J
RkZFUik7Ci0gICAgZWxzZQotICAgICAgICBnX3NpZ25hbF9jb25uZWN0KHNvdXBNZXNzYWdlLCAi
Y29udGVudC1zbmlmZmVkIiwgR19DQUxMQkFDSyhjb250ZW50U25pZmZlZENhbGxiYWNrKSwgaGFu
ZGxlKTsKIAogICAgIGdfc2lnbmFsX2Nvbm5lY3Qoc291cE1lc3NhZ2UsICJyZXN0YXJ0ZWQiLCBH
X0NBTExCQUNLKHJlc3RhcnRlZENhbGxiYWNrKSwgaGFuZGxlKTsKLSAgICBnX3NpZ25hbF9jb25u
ZWN0KHNvdXBNZXNzYWdlLCAiZ290LWhlYWRlcnMiLCBHX0NBTExCQUNLKGdvdEhlYWRlcnNDYWxs
YmFjayksIGhhbmRsZSk7CiAgICAgZ19zaWduYWxfY29ubmVjdChzb3VwTWVzc2FnZSwgIndyb3Rl
LWJvZHktZGF0YSIsIEdfQ0FMTEJBQ0sod3JvdGVCb2R5RGF0YUNhbGxiYWNrKSwgaGFuZGxlKTsK
LSAgICBkLT5tX2dvdENodW5rSGFuZGxlciA9IGdfc2lnbmFsX2Nvbm5lY3Qoc291cE1lc3NhZ2Us
ICJnb3QtY2h1bmsiLCBHX0NBTExCQUNLKGdvdENodW5rQ2FsbGJhY2spLCBoYW5kbGUpOwotICAg
IGQtPm1fZmluaXNoZWRIYW5kbGVyID0gZ19zaWduYWxfY29ubmVjdChzb3VwTWVzc2FnZSwgImZp
bmlzaGVkIiwgR19DQUxMQkFDSyhmaW5pc2hlZENhbGxiYWNrKSwgaGFuZGxlKTsKIAogICAgIFN0
cmluZyBmaXJzdFBhcnR5U3RyaW5nID0gcmVxdWVzdC5maXJzdFBhcnR5Rm9yQ29va2llcygpLnN0
cmluZygpOwogICAgIGlmICghZmlyc3RQYXJ0eVN0cmluZy5pc0VtcHR5KCkpIHsKQEAgLTc1Niwx
MCArNTc5LDEwIEBAIHZvaWQgUmVzb3VyY2VIYW5kbGU6OnBsYXRmb3JtU2V0RGVmZXJzTG9hZGlu
Zyhib29sIGRlZmVyc0xvYWRpbmcpCiAgICAgaWYgKCFkLT5tX3NvdXBNZXNzYWdlKQogICAgICAg
ICByZXR1cm47CiAKLSAgICAvLyBEbyBub3QgcGF1c2Ugb3IgdW5wYXVzZSBvcGVyYXRpb25zIHRo
YXQgYXJlIGNvbXBsZXRlZCBvciBoYXZlIG5vdCByZWFjaGVkCisgICAgLy8gRG8gbm90IHBhdXNl
IG9yIHVucGF1c2Ugb3BlcmF0aW9ucyB0aGF0IGhhdmUgbm90IHJlYWNoZWQKICAgICAvLyBzZW5k
UmVxdWVzdENhbGxiYWNrIHlldC4gSWYgbV9kZWZlcnNMb2FkaW5nIGlzIHRydWUgYXQgdGhhdCBw
b2ludCwgd2UnbGwgcGF1c2UuCiAgICAgU291cE1lc3NhZ2UqIHNvdXBNZXNzYWdlID0gZC0+bV9z
b3VwTWVzc2FnZS5nZXQoKTsKLSAgICBpZiAoZC0+bV9maW5pc2hlZCB8fCAhZC0+bV9pbnB1dFN0
cmVhbSkKKyAgICBpZiAoIWQtPm1faW5wdXRTdHJlYW0pCiAgICAgICAgIHJldHVybjsKIAogICAg
IGlmIChkZWZlcnNMb2FkaW5nKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9zb3VwL1Jlc291cmNlUmVzcG9uc2VTb3VwLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZVJlc3BvbnNlU291cC5jcHAKaW5kZXggN2I1ODMy
NS4uM2YyMzU1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9z
b3VwL1Jlc291cmNlUmVzcG9uc2VTb3VwLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VSZXNwb25zZVNvdXAuY3BwCkBAIC03MywxMyArNzMsMTQg
QEAgdm9pZCBSZXNvdXJjZVJlc3BvbnNlOjp1cGRhdGVGcm9tU291cE1lc3NhZ2UoU291cE1lc3Nh
Z2UqIHNvdXBNZXNzYWdlKQogICAgIG1fc291cEZsYWdzID0gc291cF9tZXNzYWdlX2dldF9mbGFn
cyhzb3VwTWVzc2FnZSk7CiAKICAgICBTdHJpbmcgY29udGVudFR5cGU7Ci0gICAgaWYgKHNuaWZm
ZWRDb250ZW50VHlwZSgpLmlzRW1wdHkoKSkKLSAgICAgICAgY29udGVudFR5cGUgPSBzb3VwX21l
c3NhZ2VfaGVhZGVyc19nZXRfb25lKHNvdXBNZXNzYWdlLT5yZXNwb25zZV9oZWFkZXJzLCAiQ29u
dGVudC1UeXBlIik7CisgICAgY29uc3QgY2hhciogb2ZmaWNpYWxUeXBlID0gc291cF9tZXNzYWdl
X2hlYWRlcnNfZ2V0X29uZShzb3VwTWVzc2FnZS0+cmVzcG9uc2VfaGVhZGVycywgIkNvbnRlbnQt
VHlwZSIpOworICAgIGlmICghbV9zbmlmZmVkQ29udGVudFR5cGUuaXNFbXB0eSgpICYmIG1fc25p
ZmZlZENvbnRlbnRUeXBlICE9IG9mZmljaWFsVHlwZSkKKyAgICAgICAgY29udGVudFR5cGUgPSBt
X3NuaWZmZWRDb250ZW50VHlwZTsKICAgICBlbHNlCi0gICAgICAgIGNvbnRlbnRUeXBlID0gdGhp
cy0+c25pZmZlZENvbnRlbnRUeXBlKCk7CisgICAgICAgIGNvbnRlbnRUeXBlID0gb2ZmaWNpYWxU
eXBlOwogICAgIHNldE1pbWVUeXBlKGV4dHJhY3RNSU1FVHlwZUZyb21NZWRpYVR5cGUoY29udGVu
dFR5cGUpKTsKLQogICAgIHNldFRleHRFbmNvZGluZ05hbWUoZXh0cmFjdENoYXJzZXRGcm9tTWVk
aWFUeXBlKGNvbnRlbnRUeXBlKSk7CisKICAgICBzZXRFeHBlY3RlZENvbnRlbnRMZW5ndGgoc291
cF9tZXNzYWdlX2hlYWRlcnNfZ2V0X2NvbnRlbnRfbGVuZ3RoKHNvdXBNZXNzYWdlLT5yZXNwb25z
ZV9oZWFkZXJzKSk7CiAgICAgc2V0SFRUUFN0YXR1c1RleHQoc291cE1lc3NhZ2UtPnJlYXNvbl9w
aHJhc2UpOwogICAgIHNldFN1Z2dlc3RlZEZpbGVuYW1lKGZpbGVuYW1lRnJvbUhUVFBDb250ZW50
RGlzcG9zaXRpb24oaHR0cEhlYWRlckZpZWxkKCJDb250ZW50LURpc3Bvc2l0aW9uIikpKTsKZGlm
ZiAtLWdpdCBhL2NvbmZpZ3VyZS5hYyBiL2NvbmZpZ3VyZS5hYwppbmRleCAzZGUyM2M3Li4xZTMw
NTllIDEwMDY0NAotLS0gYS9jb25maWd1cmUuYWMKKysrIGIvY29uZmlndXJlLmFjCkBAIC0yNjIs
NyArMjYyLDcgQEAgaWYgdGVzdCAiJHdpdGhfaGlsZG9uIiA9ICJ5ZXMiOyB0aGVuCiBmaQogCiAj
IG1pbmltdW0gYmFzZSBkZXBlbmRlbmNpZXMKLUxJQlNPVVBfUkVRVUlSRURfVkVSU0lPTj0yLjMz
LjYKK0xJQlNPVVBfUkVRVUlSRURfVkVSU0lPTj0yLjM3LjIKIENBSVJPX1JFUVVJUkVEX1ZFUlNJ
T049MS4xMAogRk9OVENPTkZJR19SRVFVSVJFRF9WRVJTSU9OPTIuNAogRlJFRVRZUEUyX1JFUVVJ
UkVEX1ZFUlNJT049OS4wCi0tIAoxLjcuNwoK
</data>
<flag name="commit-queue"
          id="112271"
          type_id="3"
          status="-"
          setter="gustavo.noronha"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>117607</attachid>
            <date>2011-12-02 04:16:11 -0800</date>
            <delta_ts>2011-12-03 01:23:05 -0800</delta_ts>
            <desc>rebased and with updated libsoup version requirement</desc>
            <filename>0001-Remove-lots-of-code-that-is-now-unnecessary-after-So.patch</filename>
            <type>text/plain</type>
            <size>19512</size>
            <attacher name="Dan Winship">danw</attacher>
            
              <data encoding="base64">RnJvbSA1YjRkNWM4NjBkNmY2MjQ2YzdmMWI4YjAyM2I3ZGYxYjI2YThiMTEyIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBEYW4gV2luc2hpcCA8ZGFud0Bnbm9tZS5vcmc+CkRhdGU6IEZy
aSwgMiBEZWMgMjAxMSAxMDo1NjoyNCArMDEwMApTdWJqZWN0OiBbUEFUQ0hdIFJlbW92ZSBsb3Rz
IG9mIGNvZGUgdGhhdCBpcyBub3cgdW5uZWNlc3NhcnkgYWZ0ZXIKIFNvdXBSZXF1ZXN0SFRUUCBB
UEkgY2hhbmdlcy4KCiAgICAgICAgW0dUS10gUmVtb3ZlIGxvdHMgb2YgY29kZSB0aGF0IGlzIG5v
dyB1bm5lY2Vzc2FyeSBhZnRlcgogICAgICAgIFNvdXBSZXF1ZXN0SFRUUCBBUEkgY2hhbmdlcy4K
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzE2MTEKCiAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgogICAgICAgIE5vIG5ldyB0ZXN0czsg
YmVoYXZpb3IgaXMgdW5jaGFuZ2VkCgogICAgICAgICogcGxhdGZvcm0vbmV0d29yay9SZXNvdXJj
ZUhhbmRsZUludGVybmFsLmg6CiAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlSW50ZXJu
YWw6OlJlc291cmNlSGFuZGxlSW50ZXJuYWwpOiByZW1vdmUKICAgICAgICBuby1sb25nZXItbmVl
ZGVkIGZpZWxkcy4KICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUhhbmRs
ZVNvdXAuY3BwOgogICAgICAgIChXZWJDb3JlOjpmaW5pc2hlZENhbGxiYWNrKTogcmVtb3ZlIHRo
aXMsIGFuZCBtX2ZpbmlzaGVkLCB3aGljaAogICAgICAgIHdlIG5vIGxvbmdlciBuZWVkIHRvIGV4
cGxpY2l0bHkgdHJhY2sKICAgICAgICAoV2ViQ29yZTo6c3RhdHVzV2lsbEJlSGFuZGxlZEJ5U291
cCk6CiAgICAgICAgKFdlYkNvcmU6OnNvdXBFcnJvclNob3VsZENhdXNlTG9hZEZhaWx1cmUpOiBO
byBsb25nZXIgbmVlZGVkOwogICAgICAgIFNvdXBSZXF1ZXN0SFRUUCdzIGxvZ2ljIGlzIG5vdyBh
bGlnbmVkIHdpdGggV2ViS2l0J3MuCiAgICAgICAgKFdlYkNvcmU6OmdvdENodW5rQ2FsbGJhY2sp
OiByZW1vdmUgZ290Q2h1bmtDYWxsYmFjaywgd2hpY2gKICAgICAgICBpcyBubyBsb25nZXIgbmVl
ZGVkCiAgICAgICAgKFdlYkNvcmU6OnN0YXJ0SFRUUFJlcXVlc3QpOgogICAgICAgIChXZWJDb3Jl
OjpzZW5kUmVxdWVzdENhbGxiYWNrKToKICAgICAgICAoV2ViQ29yZTo6Z290SGVhZGVyc0NhbGxi
YWNrKToKICAgICAgICAoV2ViQ29yZTo6Y29udGVudFNuaWZmZWRDYWxsYmFjayk6IG1lcmdlIHRo
ZSBjb2RlIGZyb20KICAgICAgICBnb3RIZWFkZXJzQ2FsbGJhY2sgYW5kIGNvbnRlbnRTbmlmZmVk
Q2FsbGJhY2sgaW50bwogICAgICAgIHNlbmRSZXF1ZXN0Q2FsbGJhY2sKICAgICAgICAqIHBsYXRm
b3JtL25ldHdvcmsvc291cC9SZXNvdXJjZVJlc3BvbnNlU291cC5jcHA6CiAgICAgICAgKFdlYkNv
cmU6OlJlc291cmNlUmVzcG9uc2U6OnVwZGF0ZUZyb21Tb3VwTWVzc2FnZSk6IG1vdmUgdGhlCiAg
ICAgICAgc25pZmZpbmcgb3ZlcnJpZGUgbG9naWMgaGVyZQotLS0KIENoYW5nZUxvZyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxMCArCiBTb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMzEgKysrCiAuLi4vcGxh
dGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZUludGVybmFsLmggICAgICB8ICAgIDYgLQogLi4u
L3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUhhbmRsZVNvdXAuY3BwICAgfCAgMjEwICsr
LS0tLS0tLS0tLS0tLS0tLS0tCiAuLi4vcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlUmVz
cG9uc2VTb3VwLmNwcCB8ICAgIDkgKy0KIGNvbmZpZ3VyZS5hYyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHwgICAgMiArLQogNiBmaWxlcyBjaGFuZ2VkLCA2NSBpbnNlcnRp
b25zKCspLCAyMDMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvQ2hhbmdlTG9nIGIvQ2hhbmdl
TG9nCmluZGV4IDQyZmJlMjAuLjYzNWFjY2IgMTAwNjQ0Ci0tLSBhL0NoYW5nZUxvZworKysgYi9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxMS0xMi0wMiAgRGFuIFdpbnNoaXAgIDxkYW53
QGdub21lLm9yZz4KKworICAgICAgICBbR1RLXSBVcGRhdGUgcmVxdWlyZWQgbGlic291cCB2ZXJz
aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MTYx
MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogY29u
ZmlndXJlLmFjOiByZXF1aXJlIGxpYnNvdXAgMi4zNy4yLjEgZm9yIFNvdXBSZXF1ZXN0SFRUUCBB
UEkKKyAgICAgICAgY2hhbmdlcworCiAyMDExLTEyLTAxICBOYXlhbiBLdW1hciBLICA8bmF5YW5r
a0Btb3Rvcm9sYS5jb20+CiAKICAgICAgICAgW0dUS10gQWRkIGNvbXBpbGF0aW9uIG9wdGlvbnMg
dG8gZW5hYmxlL2Rpc2FibGUgQWNjZWxlcmF0ZWQgQ29tcG9zaXRpbmcgYW5kIHRvIGNob29zZSB0
ZXh0dXJlIG1hcHBlciBpbXBsZW1lbnRhdGlvbi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBjNzYzNDhjLi5lZTZi
ODI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzQgQEAKKzIwMTEtMTItMDIgIERhbiBXaW5zaGlw
ICA8ZGFud0Bnbm9tZS5vcmc+CisKKyAgICAgICAgW0dUS10gUmVtb3ZlIGxvdHMgb2YgY29kZSB0
aGF0IGlzIG5vdyB1bm5lY2Vzc2FyeSBhZnRlcgorICAgICAgICBTb3VwUmVxdWVzdEhUVFAgQVBJ
IGNoYW5nZXMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD03MTYxMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IE5vIG5ldyB0ZXN0czsgYmVoYXZpb3IgaXMgdW5jaGFuZ2VkCisKKyAgICAgICAgKiBwbGF0Zm9y
bS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlSW50ZXJuYWwuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJl
c291cmNlSGFuZGxlSW50ZXJuYWw6OlJlc291cmNlSGFuZGxlSW50ZXJuYWwpOiByZW1vdmUKKyAg
ICAgICAgbm8tbG9uZ2VyLW5lZWRlZCBmaWVsZHMuCisgICAgICAgICogcGxhdGZvcm0vbmV0d29y
ay9zb3VwL1Jlc291cmNlSGFuZGxlU291cC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpmaW5pc2hl
ZENhbGxiYWNrKTogcmVtb3ZlIHRoaXMsIGFuZCBtX2ZpbmlzaGVkLCB3aGljaAorICAgICAgICB3
ZSBubyBsb25nZXIgbmVlZCB0byBleHBsaWNpdGx5IHRyYWNrCisgICAgICAgIChXZWJDb3JlOjpz
dGF0dXNXaWxsQmVIYW5kbGVkQnlTb3VwKToKKyAgICAgICAgKFdlYkNvcmU6OnNvdXBFcnJvclNo
b3VsZENhdXNlTG9hZEZhaWx1cmUpOiBObyBsb25nZXIgbmVlZGVkOworICAgICAgICBTb3VwUmVx
dWVzdEhUVFAncyBsb2dpYyBpcyBub3cgYWxpZ25lZCB3aXRoIFdlYktpdCdzLgorICAgICAgICAo
V2ViQ29yZTo6Z290Q2h1bmtDYWxsYmFjayk6IHJlbW92ZSBnb3RDaHVua0NhbGxiYWNrLCB3aGlj
aAorICAgICAgICBpcyBubyBsb25nZXIgbmVlZGVkCisgICAgICAgIChXZWJDb3JlOjpzdGFydEhU
VFBSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6OnNlbmRSZXF1ZXN0Q2FsbGJhY2spOgorICAg
ICAgICAoV2ViQ29yZTo6Z290SGVhZGVyc0NhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OmNv
bnRlbnRTbmlmZmVkQ2FsbGJhY2spOiBtZXJnZSB0aGUgY29kZSBmcm9tCisgICAgICAgIGdvdEhl
YWRlcnNDYWxsYmFjayBhbmQgY29udGVudFNuaWZmZWRDYWxsYmFjayBpbnRvCisgICAgICAgIHNl
bmRSZXF1ZXN0Q2FsbGJhY2sKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3Vy
Y2VSZXNwb25zZVNvdXAuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZTo6
dXBkYXRlRnJvbVNvdXBNZXNzYWdlKTogbW92ZSB0aGUKKyAgICAgICAgc25pZmZpbmcgb3ZlcnJp
ZGUgbG9naWMgaGVyZQorCiAyMDExLTEyLTAyICBIYWppbWUgTW9ycml0YSAgPG1vcnJpdGFAY2hy
b21pdW0ub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIxMDE3NzIuCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxl
SW50ZXJuYWwuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5k
bGVJbnRlcm5hbC5oCmluZGV4IDVkZjRjYzkuLmNhZDM4MzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGVJbnRlcm5hbC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGVJbnRlcm5hbC5oCkBA
IC0xMDksMTIgKzEwOSw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICNlbmRpZgogI2lmIFVTRShT
T1VQKQogICAgICAgICAgICAgLCBtX2NhbmNlbGxlZChmYWxzZSkKLSAgICAgICAgICAgICwgbV9m
aW5pc2hlZChmYWxzZSkKLSAgICAgICAgICAgICwgbV9maW5pc2hlZEhhbmRsZXIoMCkKICAgICAg
ICAgICAgICwgbV9idWZmZXIoMCkKICAgICAgICAgICAgICwgbV9ib2R5U2l6ZSgwKQogICAgICAg
ICAgICAgLCBtX2JvZHlEYXRhU2VudCgwKQotICAgICAgICAgICAgLCBtX2dvdENodW5rSGFuZGxl
cigwKQogI2VuZGlmCiAjaWYgUExBVEZPUk0oUVQpCiAgICAgICAgICAgICAsIG1fam9iKDApCkBA
IC0xODksOCArMTg2LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBHUmVmUHRyPFNv
dXBNZXNzYWdlPiBtX3NvdXBNZXNzYWdlOwogICAgICAgICBSZXNvdXJjZVJlc3BvbnNlIG1fcmVz
cG9uc2U7CiAgICAgICAgIGJvb2wgbV9jYW5jZWxsZWQ7Ci0gICAgICAgIGJvb2wgbV9maW5pc2hl
ZDsKLSAgICAgICAgZ3Vsb25nIG1fZmluaXNoZWRIYW5kbGVyOwogICAgICAgICBHUmVmUHRyPFNv
dXBSZXF1ZXN0PiBtX3NvdXBSZXF1ZXN0OwogICAgICAgICBHUmVmUHRyPEdJbnB1dFN0cmVhbT4g
bV9pbnB1dFN0cmVhbTsKICAgICAgICAgR1JlZlB0cjxHQ2FuY2VsbGFibGU+IG1fY2FuY2VsbGFi
bGU7CkBAIC0xOTksNyArMTk0LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB1bnNp
Z25lZCBsb25nIG1fYm9keVNpemU7CiAgICAgICAgIHVuc2lnbmVkIGxvbmcgbV9ib2R5RGF0YVNl
bnQ7CiAgICAgICAgIFJlZlB0cjxOZXR3b3JraW5nQ29udGV4dD4gbV9jb250ZXh0OwotICAgICAg
ICBndWxvbmcgbV9nb3RDaHVua0hhbmRsZXI7CiAjZW5kaWYKICNpZiBQTEFURk9STShRVCkKICAg
ICAgICAgUU5ldHdvcmtSZXBseUhhbmRsZXIqIG1fam9iOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlSGFuZGxlU291cC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5kbGVTb3VwLmNwcApp
bmRleCA2MTA2ZDNiLi41Y2I1M2JkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5kbGVTb3VwLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5kbGVTb3VwLmNwcApAQCAtMTgwLDE5
ICsxODAsNiBAQCB2b2lkIFJlc291cmNlSGFuZGxlOjpwcmVwYXJlRm9yVVJMKGNvbnN0IEtVUkwm
IHVybCkKICAgICBzb3VwX3Nlc3Npb25fcHJlcGFyZV9mb3JfdXJpKFJlc291cmNlSGFuZGxlOjpk
ZWZhdWx0U2Vzc2lvbigpLCBzb3VwVVJJLmdldCgpKTsKIH0KIAotLy8gQWxsIG90aGVyIGtpbmRz
IG9mIHJlZGlyZWN0aW9ucywgZXhjZXB0IGZvciB0aGUgKjMwNCogc3RhdHVzIGNvZGUKLS8vIChT
T1VQX1NUQVRVU19OT1RfTU9ESUZJRUQpIHdoaWNoIG5lZWRzIHRvIGJlIGZlZCBpbnRvIFdlYkNv
cmUsIHdpbGwgYmUKLS8vIGhhbmRsZWQgYnkgc291cCBkaXJlY3RseS4KLXN0YXRpYyBnYm9vbGVh
biBzdGF0dXNXaWxsQmVIYW5kbGVkQnlTb3VwKGd1aW50IHN0YXR1c0NvZGUpCi17Ci0gICAgaWYg
KFNPVVBfU1RBVFVTX0lTX1RSQU5TUE9SVF9FUlJPUihzdGF0dXNDb2RlKQotICAgICAgICB8fCAo
U09VUF9TVEFUVVNfSVNfUkVESVJFQ1RJT04oc3RhdHVzQ29kZSkgJiYgKHN0YXR1c0NvZGUgIT0g
U09VUF9TVEFUVVNfTk9UX01PRElGSUVEKSkKLSAgICAgICAgfHwgKHN0YXR1c0NvZGUgPT0gU09V
UF9TVEFUVVNfVU5BVVRIT1JJWkVEKSkKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0KLSAgICByZXR1
cm4gZmFsc2U7Ci19Ci0KIC8vIENhbGxlZCBlYWNoIHRpbWUgdGhlIG1lc3NhZ2UgaXMgZ29pbmcg
dG8gYmUgc2VudCBhZ2FpbiBleGNlcHQgdGhlIGZpcnN0IHRpbWUuCiAvLyBJdCdzIHVzZWQgbW9z
dGx5IHRvIGxldCB3ZWJraXQga25vdyBhYm91dCByZWRpcmVjdHMuCiBzdGF0aWMgdm9pZCByZXN0
YXJ0ZWRDYWxsYmFjayhTb3VwTWVzc2FnZSogbXNnLCBncG9pbnRlciBkYXRhKQpAQCAtMjM0LDUz
ICsyMjEsNiBAQCBzdGF0aWMgdm9pZCByZXN0YXJ0ZWRDYWxsYmFjayhTb3VwTWVzc2FnZSogbXNn
LCBncG9pbnRlciBkYXRhKQogICAgIH0KIH0KIAotc3RhdGljIHZvaWQgY29udGVudFNuaWZmZWRD
YWxsYmFjayhTb3VwTWVzc2FnZSosIGNvbnN0IGNoYXIqLCBHSGFzaFRhYmxlKiwgZ3BvaW50ZXIp
OwotCi1zdGF0aWMgdm9pZCBnb3RIZWFkZXJzQ2FsbGJhY2soU291cE1lc3NhZ2UqIG1zZywgZ3Bv
aW50ZXIgZGF0YSkKLXsKLSAgICAvLyBGb3IgNDAxLCB3ZSB3aWxsIGFjY3VtdWxhdGUgdGhlIHJl
c291cmNlIGJvZHksIGFuZCBvbmx5IHVzZSBpdAotICAgIC8vIGluIGNhc2UgYXV0aGVudGljYXRp
b24gd2l0aCB0aGUgc291cCBmZWF0dXJlIGRvZXNuJ3QgaGFwcGVuLgotICAgIC8vIEZvciAzMDIg
d2UgYWNjdW11bGF0ZSB0aGUgYm9keSB0b28gYmVjYXVzZSBpdCBjb3VsZCBiZSB1c2VkIGJ5Ci0g
ICAgLy8gc29tZSBzZXJ2ZXJzIHRvIHJlZGlyZWN0IHdpdGggYSBjbHVua3kgaHR0cC1lcXVpdj1S
RUZSRVNICi0gICAgaWYgKHN0YXR1c1dpbGxCZUhhbmRsZWRCeVNvdXAobXNnLT5zdGF0dXNfY29k
ZSkpIHsKLSAgICAgICAgc291cF9tZXNzYWdlX2JvZHlfc2V0X2FjY3VtdWxhdGUobXNnLT5yZXNw
b25zZV9ib2R5LCBUUlVFKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIC8vIEZvciBh
bGwgdGhlIG90aGVyIHJlc3BvbnNlcywgd2UgaGFuZGxlIGVhY2ggY2h1bmsgb3Vyc2VsdmVzLAot
ICAgIC8vIGFuZCB3ZSBkb24ndCBuZWVkIG1zZy0+cmVzcG9uc2VfYm9keSB0byBjb250YWluIGFs
bCBvZiB0aGUgZGF0YQotICAgIC8vIHdlIGdvdCwgd2hlbiB3ZSBmaW5pc2ggZG93bmxvYWRpbmcu
Ci0gICAgc291cF9tZXNzYWdlX2JvZHlfc2V0X2FjY3VtdWxhdGUobXNnLT5yZXNwb25zZV9ib2R5
LCBGQUxTRSk7Ci0KLSAgICBSZWZQdHI8UmVzb3VyY2VIYW5kbGU+IGhhbmRsZSA9IHN0YXRpY19j
YXN0PFJlc291cmNlSGFuZGxlKj4oZGF0YSk7Ci0KLSAgICAvLyBUaGUgY29udGVudC1zbmlmZmVk
IGNhbGxiYWNrIHdpbGwgaGFuZGxlIHRoZSByZXNwb25zZSBpZiBXZWJDb3JlCi0gICAgLy8gcmVx
dWlyZSB1cyB0byBzbmlmZi4KLSAgICBpZiAoIWhhbmRsZSB8fCBzdGF0dXNXaWxsQmVIYW5kbGVk
QnlTb3VwKG1zZy0+c3RhdHVzX2NvZGUpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBpZiAoaGFu
ZGxlLT5zaG91bGRDb250ZW50U25pZmYoKSkgewotICAgICAgICAvLyBBdm9pZCBNSU1FIHR5cGUg
c25pZmZpbmcgaWYgdGhlIHJlc3BvbnNlIGNvbWVzIGJhY2sgYXMgMzA0IE5vdCBNb2RpZmllZC4K
LSAgICAgICAgaWYgKG1zZy0+c3RhdHVzX2NvZGUgPT0gU09VUF9TVEFUVVNfTk9UX01PRElGSUVE
KSB7Ci0gICAgICAgICAgICBzb3VwX21lc3NhZ2VfZGlzYWJsZV9mZWF0dXJlKG1zZywgU09VUF9U
WVBFX0NPTlRFTlRfU05JRkZFUik7Ci0gICAgICAgICAgICBnX3NpZ25hbF9oYW5kbGVyc19kaXNj
b25uZWN0X2J5X2Z1bmMobXNnLCByZWludGVycHJldF9jYXN0PGdwb2ludGVyPihjb250ZW50U25p
ZmZlZENhbGxiYWNrKSwgaGFuZGxlLmdldCgpKTsKLSAgICAgICAgfSBlbHNlCi0gICAgICAgICAg
ICByZXR1cm47Ci0gICAgfQotCi0gICAgUmVzb3VyY2VIYW5kbGVJbnRlcm5hbCogZCA9IGhhbmRs
ZS0+Z2V0SW50ZXJuYWwoKTsKLSAgICBpZiAoZC0+bV9jYW5jZWxsZWQpCi0gICAgICAgIHJldHVy
bjsKLSAgICBSZXNvdXJjZUhhbmRsZUNsaWVudCogY2xpZW50ID0gaGFuZGxlLT5jbGllbnQoKTsK
LSAgICBpZiAoIWNsaWVudCkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgQVNTRVJUKGQtPm1fcmVz
cG9uc2UuaXNOdWxsKCkpOwotCi0gICAgZC0+bV9yZXNwb25zZS51cGRhdGVGcm9tU291cE1lc3Nh
Z2UobXNnKTsKLSAgICBjbGllbnQtPmRpZFJlY2VpdmVSZXNwb25zZShoYW5kbGUuZ2V0KCksIGQt
Pm1fcmVzcG9uc2UpOwotfQotCiBzdGF0aWMgdm9pZCB3cm90ZUJvZHlEYXRhQ2FsbGJhY2soU291
cE1lc3NhZ2UqLCBTb3VwQnVmZmVyKiBidWZmZXIsIGdwb2ludGVyIGRhdGEpCiB7CiAgICAgUmVm
UHRyPFJlc291cmNlSGFuZGxlPiBoYW5kbGUgPSBzdGF0aWNfY2FzdDxSZXNvdXJjZUhhbmRsZSo+
KGRhdGEpOwpAQCAtMzAwLDc4ICsyNDAsNiBAQCBzdGF0aWMgdm9pZCB3cm90ZUJvZHlEYXRhQ2Fs
bGJhY2soU291cE1lc3NhZ2UqLCBTb3VwQnVmZmVyKiBidWZmZXIsIGdwb2ludGVyIGRhdAogICAg
IGNsaWVudC0+ZGlkU2VuZERhdGEoaGFuZGxlLmdldCgpLCBpbnRlcm5hbC0+bV9ib2R5RGF0YVNl
bnQsIGludGVybmFsLT5tX2JvZHlTaXplKTsKIH0KIAotLy8gVGhpcyBjYWxsYmFjayB3aWxsIG5v
dCBiZSBjYWxsZWQgaWYgdGhlIGNvbnRlbnQgc25pZmZlciBpcyBkaXNhYmxlZCBpbiBzdGFydEhU
VFBSZXF1ZXN0Lgotc3RhdGljIHZvaWQgY29udGVudFNuaWZmZWRDYWxsYmFjayhTb3VwTWVzc2Fn
ZSogbXNnLCBjb25zdCBjaGFyKiBzbmlmZmVkVHlwZSwgR0hhc2hUYWJsZSAqcGFyYW1zLCBncG9p
bnRlciBkYXRhKQotewotCi0gICAgaWYgKHN0YXR1c1dpbGxCZUhhbmRsZWRCeVNvdXAobXNnLT5z
dGF0dXNfY29kZSkpCi0gICAgICAgIHJldHVybjsKLQotICAgIFJlZlB0cjxSZXNvdXJjZUhhbmRs
ZT4gaGFuZGxlID0gc3RhdGljX2Nhc3Q8UmVzb3VyY2VIYW5kbGUqPihkYXRhKTsKLSAgICBpZiAo
IWhhbmRsZSkKLSAgICAgICAgcmV0dXJuOwotICAgIFJlc291cmNlSGFuZGxlSW50ZXJuYWwqIGQg
PSBoYW5kbGUtPmdldEludGVybmFsKCk7Ci0gICAgaWYgKGQtPm1fY2FuY2VsbGVkKQotICAgICAg
ICByZXR1cm47Ci0gICAgUmVzb3VyY2VIYW5kbGVDbGllbnQqIGNsaWVudCA9IGhhbmRsZS0+Y2xp
ZW50KCk7Ci0gICAgaWYgKCFjbGllbnQpCi0gICAgICAgIHJldHVybjsKLQotICAgIEFTU0VSVChk
LT5tX3Jlc3BvbnNlLmlzTnVsbCgpKTsKLQotICAgIGlmIChzbmlmZmVkVHlwZSkgewotICAgICAg
ICBjb25zdCBjaGFyKiBvZmZpY2lhbFR5cGUgPSBzb3VwX21lc3NhZ2VfaGVhZGVyc19nZXRfb25l
KG1zZy0+cmVzcG9uc2VfaGVhZGVycywgIkNvbnRlbnQtVHlwZSIpOwotICAgICAgICBpZiAoIW9m
ZmljaWFsVHlwZSB8fCBzdHJjbXAob2ZmaWNpYWxUeXBlLCBzbmlmZmVkVHlwZSkpIHsKLSAgICAg
ICAgICAgIEdTdHJpbmcqIHN0ciA9IGdfc3RyaW5nX25ldyhzbmlmZmVkVHlwZSk7Ci0gICAgICAg
ICAgICBpZiAocGFyYW1zKSB7Ci0gICAgICAgICAgICAgICAgR0hhc2hUYWJsZUl0ZXIgaXRlcjsK
LSAgICAgICAgICAgICAgICBncG9pbnRlciBrZXksIHZhbHVlOwotICAgICAgICAgICAgICAgIGdf
aGFzaF90YWJsZV9pdGVyX2luaXQoJml0ZXIsIHBhcmFtcyk7Ci0gICAgICAgICAgICAgICAgd2hp
bGUgKGdfaGFzaF90YWJsZV9pdGVyX25leHQoJml0ZXIsICZrZXksICZ2YWx1ZSkpIHsKLSAgICAg
ICAgICAgICAgICAgICAgZ19zdHJpbmdfYXBwZW5kKHN0ciwgIjsgIik7Ci0gICAgICAgICAgICAg
ICAgICAgIHNvdXBfaGVhZGVyX2dfc3RyaW5nX2FwcGVuZF9wYXJhbShzdHIsIHN0YXRpY19jYXN0
PGNvbnN0IGNoYXIqPihrZXkpLCBzdGF0aWNfY2FzdDxjb25zdCBjaGFyKj4odmFsdWUpKTsKLSAg
ICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBkLT5tX3Jlc3BvbnNl
LnNldFNuaWZmZWRDb250ZW50VHlwZShzdHItPnN0cik7Ci0gICAgICAgICAgICBnX3N0cmluZ19m
cmVlKHN0ciwgVFJVRSk7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBkLT5tX3Jlc3BvbnNlLnVw
ZGF0ZUZyb21Tb3VwTWVzc2FnZShtc2cpOwotICAgIGNsaWVudC0+ZGlkUmVjZWl2ZVJlc3BvbnNl
KGhhbmRsZS5nZXQoKSwgZC0+bV9yZXNwb25zZSk7Ci19Ci0KLXN0YXRpYyB2b2lkIGdvdENodW5r
Q2FsbGJhY2soU291cE1lc3NhZ2UqIG1zZywgU291cEJ1ZmZlciogY2h1bmssIGdwb2ludGVyIGRh
dGEpCi17Ci0gICAgaWYgKHN0YXR1c1dpbGxCZUhhbmRsZWRCeVNvdXAobXNnLT5zdGF0dXNfY29k
ZSkpCi0gICAgICAgIHJldHVybjsKLQotICAgIFJlZlB0cjxSZXNvdXJjZUhhbmRsZT4gaGFuZGxl
ID0gc3RhdGljX2Nhc3Q8UmVzb3VyY2VIYW5kbGUqPihkYXRhKTsKLSAgICBpZiAoIWhhbmRsZSkK
LSAgICAgICAgcmV0dXJuOwotICAgIFJlc291cmNlSGFuZGxlSW50ZXJuYWwqIGQgPSBoYW5kbGUt
PmdldEludGVybmFsKCk7Ci0gICAgaWYgKGQtPm1fY2FuY2VsbGVkKQotICAgICAgICByZXR1cm47
Ci0gICAgUmVzb3VyY2VIYW5kbGVDbGllbnQqIGNsaWVudCA9IGhhbmRsZS0+Y2xpZW50KCk7Ci0g
ICAgaWYgKCFjbGllbnQpCi0gICAgICAgIHJldHVybjsKLQotICAgIEFTU0VSVCghZC0+bV9yZXNw
b25zZS5pc051bGwoKSk7Ci0KLSAgICAvLyBGSVhNRTogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE5NzkzCi0gICAgLy8gLTEgbWVhbnMgd2UgZG8gbm90IHByb3ZpZGUg
YW55IGRhdGEgYWJvdXQgdHJhbnNmZXIgc2l6ZSB0byBpbnNwZWN0b3Igc28gaXQgd291bGQgdXNl
Ci0gICAgLy8gQ29udGVudC1MZW5ndGggaGVhZGVycyBvciBjb250ZW50IHNpemUgdG8gc2hvdyB0
cmFuc2ZlciBzaXplLgotICAgIGNsaWVudC0+ZGlkUmVjZWl2ZURhdGEoaGFuZGxlLmdldCgpLCBj
aHVuay0+ZGF0YSwgY2h1bmstPmxlbmd0aCwgLTEpOwotfQotCi1zdGF0aWMgdm9pZCBmaW5pc2hl
ZENhbGxiYWNrKFNvdXBNZXNzYWdlKiBtc2csIGdwb2ludGVyIGRhdGEpCi17Ci0gICAgUmVmUHRy
PFJlc291cmNlSGFuZGxlPiBoYW5kbGUgPSBzdGF0aWNfY2FzdDxSZXNvdXJjZUhhbmRsZSo+KGRh
dGEpOwotICAgIGlmICghaGFuZGxlKQotICAgICAgICByZXR1cm47Ci0gICAgaGFuZGxlLT5nZXRJ
bnRlcm5hbCgpLT5tX2ZpbmlzaGVkID0gdHJ1ZTsKLX0KLQogc3RhdGljIHZvaWQgY2xlYW51cFNv
dXBSZXF1ZXN0T3BlcmF0aW9uKFJlc291cmNlSGFuZGxlKiBoYW5kbGUsIGJvb2wgaXNEZXN0cm95
aW5nID0gZmFsc2UpCiB7CiAgICAgUmVzb3VyY2VIYW5kbGVJbnRlcm5hbCogZCA9IGhhbmRsZS0+
Z2V0SW50ZXJuYWwoKTsKQEAgLTM5OSwxMiArMjY3LDYgQEAgc3RhdGljIHZvaWQgY2xlYW51cFNv
dXBSZXF1ZXN0T3BlcmF0aW9uKFJlc291cmNlSGFuZGxlKiBoYW5kbGUsIGJvb2wgaXNEZXN0cm95
aW4KICAgICAgICAgaGFuZGxlLT5kZXJlZigpOwogfQogCi1zdGF0aWMgYm9vbCBzb3VwRXJyb3JT
aG91bGRDYXVzZUxvYWRGYWlsdXJlKEdFcnJvciogZXJyb3IsIFNvdXBNZXNzYWdlKiBtZXNzYWdl
KQotewotICAgIC8vIExpYnNvdXAgdHJlYXRzIHNvbWUgbm9uLWVycm9yIGNvbmRpdGlvbnMgYXMg
ZXJyb3JzLCBpbmNsdWRpbmcgcmVkaXJlY3RzIGFuZCAzMDQgTm90IE1vZGlmaWVkIHJlc3BvbnNl
cy4KLSAgICByZXR1cm4gbWVzc2FnZSAmJiBTT1VQX1NUQVRVU19JU19UUkFOU1BPUlRfRVJST1Io
bWVzc2FnZS0+c3RhdHVzX2NvZGUpIHx8IGVycm9yLT5kb21haW4gPT0gR19JT19FUlJPUjsKLX0K
LQogc3RhdGljIFJlc291cmNlRXJyb3IgY29udmVydFNvdXBFcnJvclRvUmVzb3VyY2VFcnJvcihH
RXJyb3IqIGVycm9yLCBTb3VwUmVxdWVzdCogcmVxdWVzdCwgU291cE1lc3NhZ2UqIG1lc3NhZ2Ug
PSAwKQogewogICAgIEFTU0VSVChlcnJvcik7CkBAIC00MzEsMTMgKzI5Myw3IEBAIHN0YXRpYyB2
b2lkIHNlbmRSZXF1ZXN0Q2FsbGJhY2soR09iamVjdCogc291cmNlLCBHQXN5bmNSZXN1bHQqIHJl
cywgZ3BvaW50ZXIgZGF0CiAKICAgICBSZXNvdXJjZUhhbmRsZUludGVybmFsKiBkID0gaGFuZGxl
LT5nZXRJbnRlcm5hbCgpOwogICAgIFJlc291cmNlSGFuZGxlQ2xpZW50KiBjbGllbnQgPSBoYW5k
bGUtPmNsaWVudCgpOwotCi0gICAgaWYgKGQtPm1fZ290Q2h1bmtIYW5kbGVyKSB7Ci0gICAgICAg
IC8vIE5vIG5lZWQgdG8gY2FsbCBnb3RDaHVua0hhbmRsZXIgYW55bW9yZS4gUmVjZWl2ZWQgZGF0
YSB3aWxsCi0gICAgICAgIC8vIGJlIHJlcG9ydGVkIGJ5IHJlYWRDYWxsYmFjawotICAgICAgICBp
ZiAoZ19zaWduYWxfaGFuZGxlcl9pc19jb25uZWN0ZWQoZC0+bV9zb3VwTWVzc2FnZS5nZXQoKSwg
ZC0+bV9nb3RDaHVua0hhbmRsZXIpKQotICAgICAgICAgICAgZ19zaWduYWxfaGFuZGxlcl9kaXNj
b25uZWN0KGQtPm1fc291cE1lc3NhZ2UuZ2V0KCksIGQtPm1fZ290Q2h1bmtIYW5kbGVyKTsKLSAg
ICB9CisgICAgU291cE1lc3NhZ2UqIHNvdXBNZXNzYWdlID0gZC0+bV9zb3VwTWVzc2FnZS5nZXQo
KTsKIAogICAgIGlmIChkLT5tX2NhbmNlbGxlZCB8fCAhY2xpZW50KSB7CiAgICAgICAgIGNsZWFu
dXBTb3VwUmVxdWVzdE9wZXJhdGlvbihoYW5kbGUuZ2V0KCkpOwpAQCAtNDQ3LDM4ICszMDMsNyBA
QCBzdGF0aWMgdm9pZCBzZW5kUmVxdWVzdENhbGxiYWNrKEdPYmplY3QqIHNvdXJjZSwgR0FzeW5j
UmVzdWx0KiByZXMsIGdwb2ludGVyIGRhdAogICAgIEdPd25QdHI8R0Vycm9yPiBlcnJvcjsKICAg
ICBHSW5wdXRTdHJlYW0qIGluID0gc291cF9yZXF1ZXN0X3NlbmRfZmluaXNoKGQtPm1fc291cFJl
cXVlc3QuZ2V0KCksIHJlcywgJmVycm9yLm91dFB0cigpKTsKICAgICBpZiAoZXJyb3IpIHsKLSAg
ICAgICAgU291cE1lc3NhZ2UqIHNvdXBNZXNzYWdlID0gZC0+bV9zb3VwTWVzc2FnZS5nZXQoKTsK
LQotICAgICAgICBpZiAoc291cEVycm9yU2hvdWxkQ2F1c2VMb2FkRmFpbHVyZShlcnJvci5nZXQo
KSwgc291cE1lc3NhZ2UpKSB7Ci0gICAgICAgICAgICBjbGllbnQtPmRpZEZhaWwoaGFuZGxlLmdl
dCgpLCBjb252ZXJ0U291cEVycm9yVG9SZXNvdXJjZUVycm9yKGVycm9yLmdldCgpLCBkLT5tX3Nv
dXBSZXF1ZXN0LmdldCgpLCBzb3VwTWVzc2FnZSkpOwotICAgICAgICAgICAgY2xlYW51cFNvdXBS
ZXF1ZXN0T3BlcmF0aW9uKGhhbmRsZS5nZXQoKSk7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAg
ICAgIH0KLQotICAgICAgICBpZiAoc291cE1lc3NhZ2UgJiYgc3RhdHVzV2lsbEJlSGFuZGxlZEJ5
U291cChzb3VwTWVzc2FnZS0+c3RhdHVzX2NvZGUpKSB7Ci0gICAgICAgICAgICBBU1NFUlQoZC0+
bV9yZXNwb25zZS5pc051bGwoKSk7Ci0KLSAgICAgICAgICAgIGQtPm1fcmVzcG9uc2UudXBkYXRl
RnJvbVNvdXBNZXNzYWdlKHNvdXBNZXNzYWdlKTsKLSAgICAgICAgICAgIGNsaWVudC0+ZGlkUmVj
ZWl2ZVJlc3BvbnNlKGhhbmRsZS5nZXQoKSwgZC0+bV9yZXNwb25zZSk7Ci0KLSAgICAgICAgICAg
IC8vIFdlYkNvcmUgbWlnaHQgaGF2ZSBjYW5jZWxsZWQgdGhlIGpvYiBpbiB0aGUgd2hpbGUuIFdl
Ci0gICAgICAgICAgICAvLyBtdXN0IGNoZWNrIGZvciByZXNwb25zZV9ib2R5LT5sZW5ndGggYW5k
IG5vdAotICAgICAgICAgICAgLy8gcmVzcG9uc2VfYm9keS0+ZGF0YSBhcyBsaWJzb3VwIGFsd2F5
cyBjcmVhdGVzIHRoZQotICAgICAgICAgICAgLy8gU291cEJ1ZmZlciBmb3IgdGhlIGJvZHkgZXZl
biBpZiB0aGUgbGVuZ3RoIGlzIDAKLSAgICAgICAgICAgIGlmICghZC0+bV9jYW5jZWxsZWQgJiYg
c291cE1lc3NhZ2UtPnJlc3BvbnNlX2JvZHktPmxlbmd0aCkKLSAgICAgICAgICAgICAgICBjbGll
bnQtPmRpZFJlY2VpdmVEYXRhKGhhbmRsZS5nZXQoKSwgc291cE1lc3NhZ2UtPnJlc3BvbnNlX2Jv
ZHktPmRhdGEsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzb3VwTWVz
c2FnZS0+cmVzcG9uc2VfYm9keS0+bGVuZ3RoLCBzb3VwTWVzc2FnZS0+cmVzcG9uc2VfYm9keS0+
bGVuZ3RoKTsKLSAgICAgICAgfQotCi0gICAgICAgIC8vIGRpZFJlY2VpdmVEYXRhIGFib3ZlIG1p
Z2h0IGhhdmUgY2FuY2VsZWQgdGhpcyBvcGVyYXRpb24uIElmIG5vdCwgaW5mb3JtIHRoZSBjbGll
bnQgd2UndmUgZmluaXNoZWQgbG9hZGluZy4KLSAgICAgICAgaWYgKCFkLT5tX2NhbmNlbGxlZCAm
JiBjbGllbnQpCi0gICAgICAgICAgICBjbGllbnQtPmRpZEZpbmlzaExvYWRpbmcoaGFuZGxlLmdl
dCgpLCAwKTsKLQotICAgICAgICBjbGVhbnVwU291cFJlcXVlc3RPcGVyYXRpb24oaGFuZGxlLmdl
dCgpKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIGlmIChkLT5tX2NhbmNlbGxlZCkg
eworICAgICAgICBjbGllbnQtPmRpZEZhaWwoaGFuZGxlLmdldCgpLCBjb252ZXJ0U291cEVycm9y
VG9SZXNvdXJjZUVycm9yKGVycm9yLmdldCgpLCBkLT5tX3NvdXBSZXF1ZXN0LmdldCgpLCBzb3Vw
TWVzc2FnZSkpOwogICAgICAgICBjbGVhbnVwU291cFJlcXVlc3RPcGVyYXRpb24oaGFuZGxlLmdl
dCgpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTQ4NiwyMCArMzExLDI4IEBAIHN0YXRp
YyB2b2lkIHNlbmRSZXF1ZXN0Q2FsbGJhY2soR09iamVjdCogc291cmNlLCBHQXN5bmNSZXN1bHQq
IHJlcywgZ3BvaW50ZXIgZGF0CiAgICAgZC0+bV9pbnB1dFN0cmVhbSA9IGFkb3B0R1JlZihpbik7
CiAgICAgZC0+bV9idWZmZXIgPSBzdGF0aWNfY2FzdDxjaGFyKj4oZ19zbGljZV9hbGxvYyhSRUFE
X0JVRkZFUl9TSVpFKSk7CiAKLSAgICAvLyBJZiBub3QgdXNpbmcgU291cE1lc3NhZ2Ugd2UgbmVl
ZCB0byBjYWxsIGRpZFJlY2VpdmVSZXNwb25zZSBub3cuCi0gICAgLy8gKFRoaXMgd2lsbCBjaGFu
Z2UgbGF0ZXIgd2hlbiBTb3VwUmVxdWVzdCBzdXBwb3J0cyBjb250ZW50IHNuaWZmaW5nLikKLSAg
ICBpZiAoIWQtPm1fc291cE1lc3NhZ2UpIHsKKyAgICBpZiAoc291cE1lc3NhZ2UpIHsKKyAgICAg
ICAgaWYgKGhhbmRsZS0+c2hvdWxkQ29udGVudFNuaWZmKCkgJiYgc291cE1lc3NhZ2UtPnN0YXR1
c19jb2RlICE9IFNPVVBfU1RBVFVTX05PVF9NT0RJRklFRCkgeworICAgICAgICAgICAgY29uc3Qg
Y2hhciogc25pZmZlZFR5cGUgPSBzb3VwX3JlcXVlc3RfZ2V0X2NvbnRlbnRfdHlwZShkLT5tX3Nv
dXBSZXF1ZXN0LmdldCgpKTsKKyAgICAgICAgICAgIGQtPm1fcmVzcG9uc2Uuc2V0U25pZmZlZENv
bnRlbnRUeXBlKHNuaWZmZWRUeXBlKTsKKyAgICAgICAgfQorICAgICAgICBkLT5tX3Jlc3BvbnNl
LnVwZGF0ZUZyb21Tb3VwTWVzc2FnZShzb3VwTWVzc2FnZSk7CisKKyAgICAgICAgaWYgKGQtPm1f
ZGVmZXJzTG9hZGluZykKKyAgICAgICAgICAgIHNvdXBfc2Vzc2lvbl9wYXVzZV9tZXNzYWdlKGhh
bmRsZS0+ZGVmYXVsdFNlc3Npb24oKSwgc291cE1lc3NhZ2UpOworICAgIH0gZWxzZSB7CiAgICAg
ICAgIGQtPm1fcmVzcG9uc2Uuc2V0VVJMKGhhbmRsZS0+Zmlyc3RSZXF1ZXN0KCkudXJsKCkpOwog
ICAgICAgICBjb25zdCBnY2hhciogY29udGVudFR5cGUgPSBzb3VwX3JlcXVlc3RfZ2V0X2NvbnRl
bnRfdHlwZShkLT5tX3NvdXBSZXF1ZXN0LmdldCgpKTsKICAgICAgICAgZC0+bV9yZXNwb25zZS5z
ZXRNaW1lVHlwZShleHRyYWN0TUlNRVR5cGVGcm9tTWVkaWFUeXBlKGNvbnRlbnRUeXBlKSk7CiAg
ICAgICAgIGQtPm1fcmVzcG9uc2Uuc2V0VGV4dEVuY29kaW5nTmFtZShleHRyYWN0Q2hhcnNldEZy
b21NZWRpYVR5cGUoY29udGVudFR5cGUpKTsKICAgICAgICAgZC0+bV9yZXNwb25zZS5zZXRFeHBl
Y3RlZENvbnRlbnRMZW5ndGgoc291cF9yZXF1ZXN0X2dldF9jb250ZW50X2xlbmd0aChkLT5tX3Nv
dXBSZXF1ZXN0LmdldCgpKSk7Ci0gICAgICAgIGNsaWVudC0+ZGlkUmVjZWl2ZVJlc3BvbnNlKGhh
bmRsZS5nZXQoKSwgZC0+bV9yZXNwb25zZSk7CisgICAgfQogCi0gICAgICAgIGlmIChkLT5tX2Nh
bmNlbGxlZCkgewotICAgICAgICAgICAgY2xlYW51cFNvdXBSZXF1ZXN0T3BlcmF0aW9uKGhhbmRs
ZS5nZXQoKSk7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KKyAgICBjbGllbnQtPmRp
ZFJlY2VpdmVSZXNwb25zZShoYW5kbGUuZ2V0KCksIGQtPm1fcmVzcG9uc2UpOworCisgICAgaWYg
KGQtPm1fY2FuY2VsbGVkKSB7CisgICAgICAgIGNsZWFudXBTb3VwUmVxdWVzdE9wZXJhdGlvbiho
YW5kbGUuZ2V0KCkpOworICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgZ19pbnB1dF9zdHJl
YW1fcmVhZF9hc3luYyhkLT5tX2lucHV0U3RyZWFtLmdldCgpLCBkLT5tX2J1ZmZlciwgUkVBRF9C
VUZGRVJfU0laRSwKQEAgLTYyMCw4ICs0NTMsNiBAQCBzdGF0aWMgYm9vbCBzdGFydEhUVFBSZXF1
ZXN0KFJlc291cmNlSGFuZGxlKiBoYW5kbGUpCiAgICAgdXJsLnJlbW92ZUZyYWdtZW50SWRlbnRp
ZmllcigpOwogICAgIHJlcXVlc3Quc2V0VVJMKHVybCk7CiAKLSAgICBkLT5tX2ZpbmlzaGVkID0g
ZmFsc2U7Ci0KICAgICBHT3duUHRyPEdFcnJvcj4gZXJyb3I7CiAgICAgZC0+bV9zb3VwUmVxdWVz
dCA9IGFkb3B0R1JlZihzb3VwX3JlcXVlc3Rlcl9yZXF1ZXN0KHJlcXVlc3RlciwgdXJsLnN0cmlu
ZygpLnV0ZjgoKS5kYXRhKCksICZlcnJvci5vdXRQdHIoKSkpOwogICAgIGlmIChlcnJvcikgewpA
QCAtNjM4LDE0ICs0NjksOSBAQCBzdGF0aWMgYm9vbCBzdGFydEhUVFBSZXF1ZXN0KFJlc291cmNl
SGFuZGxlKiBoYW5kbGUpCiAKICAgICBpZiAoIWhhbmRsZS0+c2hvdWxkQ29udGVudFNuaWZmKCkp
CiAgICAgICAgIHNvdXBfbWVzc2FnZV9kaXNhYmxlX2ZlYXR1cmUoc291cE1lc3NhZ2UsIFNPVVBf
VFlQRV9DT05URU5UX1NOSUZGRVIpOwotICAgIGVsc2UKLSAgICAgICAgZ19zaWduYWxfY29ubmVj
dChzb3VwTWVzc2FnZSwgImNvbnRlbnQtc25pZmZlZCIsIEdfQ0FMTEJBQ0soY29udGVudFNuaWZm
ZWRDYWxsYmFjayksIGhhbmRsZSk7CiAKICAgICBnX3NpZ25hbF9jb25uZWN0KHNvdXBNZXNzYWdl
LCAicmVzdGFydGVkIiwgR19DQUxMQkFDSyhyZXN0YXJ0ZWRDYWxsYmFjayksIGhhbmRsZSk7Ci0g
ICAgZ19zaWduYWxfY29ubmVjdChzb3VwTWVzc2FnZSwgImdvdC1oZWFkZXJzIiwgR19DQUxMQkFD
Syhnb3RIZWFkZXJzQ2FsbGJhY2spLCBoYW5kbGUpOwogICAgIGdfc2lnbmFsX2Nvbm5lY3Qoc291
cE1lc3NhZ2UsICJ3cm90ZS1ib2R5LWRhdGEiLCBHX0NBTExCQUNLKHdyb3RlQm9keURhdGFDYWxs
YmFjayksIGhhbmRsZSk7Ci0gICAgZC0+bV9nb3RDaHVua0hhbmRsZXIgPSBnX3NpZ25hbF9jb25u
ZWN0KHNvdXBNZXNzYWdlLCAiZ290LWNodW5rIiwgR19DQUxMQkFDSyhnb3RDaHVua0NhbGxiYWNr
KSwgaGFuZGxlKTsKLSAgICBkLT5tX2ZpbmlzaGVkSGFuZGxlciA9IGdfc2lnbmFsX2Nvbm5lY3Qo
c291cE1lc3NhZ2UsICJmaW5pc2hlZCIsIEdfQ0FMTEJBQ0soZmluaXNoZWRDYWxsYmFjayksIGhh
bmRsZSk7CiAKICAgICBTdHJpbmcgZmlyc3RQYXJ0eVN0cmluZyA9IHJlcXVlc3QuZmlyc3RQYXJ0
eUZvckNvb2tpZXMoKS5zdHJpbmcoKTsKICAgICBpZiAoIWZpcnN0UGFydHlTdHJpbmcuaXNFbXB0
eSgpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAv
UmVzb3VyY2VSZXNwb25zZVNvdXAuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9zb3VwL1Jlc291cmNlUmVzcG9uc2VTb3VwLmNwcAppbmRleCA3YjU4MzI1Li4zZjIzNTViIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VS
ZXNwb25zZVNvdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291
cC9SZXNvdXJjZVJlc3BvbnNlU291cC5jcHAKQEAgLTczLDEzICs3MywxNCBAQCB2b2lkIFJlc291
cmNlUmVzcG9uc2U6OnVwZGF0ZUZyb21Tb3VwTWVzc2FnZShTb3VwTWVzc2FnZSogc291cE1lc3Nh
Z2UpCiAgICAgbV9zb3VwRmxhZ3MgPSBzb3VwX21lc3NhZ2VfZ2V0X2ZsYWdzKHNvdXBNZXNzYWdl
KTsKIAogICAgIFN0cmluZyBjb250ZW50VHlwZTsKLSAgICBpZiAoc25pZmZlZENvbnRlbnRUeXBl
KCkuaXNFbXB0eSgpKQotICAgICAgICBjb250ZW50VHlwZSA9IHNvdXBfbWVzc2FnZV9oZWFkZXJz
X2dldF9vbmUoc291cE1lc3NhZ2UtPnJlc3BvbnNlX2hlYWRlcnMsICJDb250ZW50LVR5cGUiKTsK
KyAgICBjb25zdCBjaGFyKiBvZmZpY2lhbFR5cGUgPSBzb3VwX21lc3NhZ2VfaGVhZGVyc19nZXRf
b25lKHNvdXBNZXNzYWdlLT5yZXNwb25zZV9oZWFkZXJzLCAiQ29udGVudC1UeXBlIik7CisgICAg
aWYgKCFtX3NuaWZmZWRDb250ZW50VHlwZS5pc0VtcHR5KCkgJiYgbV9zbmlmZmVkQ29udGVudFR5
cGUgIT0gb2ZmaWNpYWxUeXBlKQorICAgICAgICBjb250ZW50VHlwZSA9IG1fc25pZmZlZENvbnRl
bnRUeXBlOwogICAgIGVsc2UKLSAgICAgICAgY29udGVudFR5cGUgPSB0aGlzLT5zbmlmZmVkQ29u
dGVudFR5cGUoKTsKKyAgICAgICAgY29udGVudFR5cGUgPSBvZmZpY2lhbFR5cGU7CiAgICAgc2V0
TWltZVR5cGUoZXh0cmFjdE1JTUVUeXBlRnJvbU1lZGlhVHlwZShjb250ZW50VHlwZSkpOwotCiAg
ICAgc2V0VGV4dEVuY29kaW5nTmFtZShleHRyYWN0Q2hhcnNldEZyb21NZWRpYVR5cGUoY29udGVu
dFR5cGUpKTsKKwogICAgIHNldEV4cGVjdGVkQ29udGVudExlbmd0aChzb3VwX21lc3NhZ2VfaGVh
ZGVyc19nZXRfY29udGVudF9sZW5ndGgoc291cE1lc3NhZ2UtPnJlc3BvbnNlX2hlYWRlcnMpKTsK
ICAgICBzZXRIVFRQU3RhdHVzVGV4dChzb3VwTWVzc2FnZS0+cmVhc29uX3BocmFzZSk7CiAgICAg
c2V0U3VnZ2VzdGVkRmlsZW5hbWUoZmlsZW5hbWVGcm9tSFRUUENvbnRlbnREaXNwb3NpdGlvbiho
dHRwSGVhZGVyRmllbGQoIkNvbnRlbnQtRGlzcG9zaXRpb24iKSkpOwpkaWZmIC0tZ2l0IGEvY29u
ZmlndXJlLmFjIGIvY29uZmlndXJlLmFjCmluZGV4IDczYTAwMDEuLjY3NzU1YmYgMTAwNjQ0Ci0t
LSBhL2NvbmZpZ3VyZS5hYworKysgYi9jb25maWd1cmUuYWMKQEAgLTI2Miw3ICsyNjIsNyBAQCBp
ZiB0ZXN0ICIkd2l0aF9oaWxkb24iID0gInllcyI7IHRoZW4KIGZpCiAKICMgbWluaW11bSBiYXNl
IGRlcGVuZGVuY2llcwotTElCU09VUF9SRVFVSVJFRF9WRVJTSU9OPTIuMzMuNgorTElCU09VUF9S
RVFVSVJFRF9WRVJTSU9OPTIuMzcuMi4xCiBDQUlST19SRVFVSVJFRF9WRVJTSU9OPTEuMTAKIEZP
TlRDT05GSUdfUkVRVUlSRURfVkVSU0lPTj0yLjQKIEZSRUVUWVBFMl9SRVFVSVJFRF9WRVJTSU9O
PTkuMAotLSAKMS43LjcuMwoK
</data>

          </attachment>
      

    </bug>

</bugzilla>