<?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>77341</bug_id>
          
          <creation_ts>2012-01-30 08:29:12 -0800</creation_ts>
          <short_desc>[soup] Add support for multiple SoupSessions.</short_desc>
          <delta_ts>2012-02-15 23:36:50 -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>WebKit Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>77874</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Raphael Kubo da Costa (:rakuco)">rakuco</reporter>
          <assigned_to name="Raphael Kubo da Costa (:rakuco)">rakuco</assigned_to>
          <cc>abarth</cc>
    
    <cc>danw</cc>
    
    <cc>glima</cc>
    
    <cc>gustavo</cc>
    
    <cc>japhet</cc>
    
    <cc>leandro</cc>
    
    <cc>mrobinson</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>545116</commentid>
    <comment_count>0</comment_count>
    <who name="Raphael Kubo da Costa (:rakuco)">rakuco</who>
    <bug_when>2012-01-30 08:29:12 -0800</bug_when>
    <thetext>[soup] Add support for multiple SoupSessions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>545118</commentid>
    <comment_count>1</comment_count>
      <attachid>124558</attachid>
    <who name="Raphael Kubo da Costa (:rakuco)">rakuco</who>
    <bug_when>2012-01-30 08:30:59 -0800</bug_when>
    <thetext>Created attachment 124558
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>545120</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-01-30 08:34:43 -0800</bug_when>
    <thetext>Attachment 124558 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/WebKit/gtk/webkit/webkitwebview.h:447:  Extra space between SoupSession and *session  [whitespace/declaration] [3]
Total errors found: 1 in 22 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>545121</commentid>
    <comment_count>3</comment_count>
    <who name="Raphael Kubo da Costa (:rakuco)">rakuco</who>
    <bug_when>2012-01-30 08:34:57 -0800</bug_when>
    <thetext>This is a WIP patch supposed to carry on the multi-SoupSession work started in bug 22624.

I&apos;d like some feedback on the WebCore and GTK+ changes: I tried to keep the existing behavior as much as possible, so that the changes are transparent to users. The WebKit2 part has not been touched, as there currently does not seem to be an easy way to pass SoupSessions around between processes (and the CookieJar calls called by WK2 assume there is only one cookie jar).

I&apos;m not sure if there are ownership and lifetime issues in the way I&apos;m using the SoupSession or WebKitWeb{Frame,View} pointers, so help in this part is also appreciated.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>545122</commentid>
    <comment_count>4</comment_count>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2012-01-30 08:36:34 -0800</bug_when>
    <thetext>May I ask what is this change required for?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>545131</commentid>
    <comment_count>5</comment_count>
      <attachid>124558</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2012-01-30 08:44:08 -0800</bug_when>
    <thetext>Comment on attachment 124558
Patch

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

Interesting. I&apos;m not sure we would like to use that API for WebKitGTK+ though, we may have to discuss it a bit more, I think it&apos;s probably material for wk2 in any case - where we have the WebContext object which we could use to split sessions instead of having the API user assign sessions to each webview.

&gt; Source/WebCore/platform/network/soup/CookieJarSoup.cpp:82
&gt; -    SoupCookieJar* jar = defaultCookieJar();
&gt; +    const NetworkingContext* context = networkingContext(document);
&gt; +    if (!context)
&gt; +        return;
&gt; +

Shouldn&apos;t you use the default cookie jar in case no network context exists? It&apos;s a bit weird that you have a networkingContext method that you only use to obtain the cookie jar, I&apos;d recommend going straight to the jar.

&gt; Source/WebCore/platform/network/soup/ResourceHandleSoup.cpp:163
&gt; +    else {
&gt; +        if (session == ResourceHandle::defaultSession())

Make this an else if and do away with the braces =)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>545134</commentid>
    <comment_count>6</comment_count>
    <who name="Raphael Kubo da Costa (:rakuco)">rakuco</who>
    <bug_when>2012-01-30 08:49:34 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; May I ask what is this change required for?

I&apos;m presently doing some downstream work using webkit-efl in which I need different parts using the port to use different SoupSessions, so that they do not share cookie jars, custom soup request handlers, callbacks to SoupSession signals etc.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>545143</commentid>
    <comment_count>7</comment_count>
    <who name="Raphael Kubo da Costa (:rakuco)">rakuco</who>
    <bug_when>2012-01-30 09:04:04 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; (From update of attachment 124558 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=124558&amp;action=review
&gt; 
&gt; Interesting. I&apos;m not sure we would like to use that API for WebKitGTK+ though, we may have to discuss it a bit more, I think it&apos;s probably material for wk2 in any case - where we have the WebContext object which we could use to split sessions instead of having the API user assign sessions to each webview.

Would you like me to just make NetworkingContextGtk::soupSession() return ResourceHandle::defaultSession() for now while we put some thought on the GTK+ part?
 
&gt; &gt; Source/WebCore/platform/network/soup/CookieJarSoup.cpp:82
&gt; &gt; -    SoupCookieJar* jar = defaultCookieJar();
&gt; &gt; +    const NetworkingContext* context = networkingContext(document);
&gt; &gt; +    if (!context)
&gt; &gt; +        return;
&gt; &gt; +
&gt; 
&gt; Shouldn&apos;t you use the default cookie jar in case no network context exists?

AFAICS, the only way for no NetworkContext to exist is by passing 0 to ResourceHandle::create(), which is only done by webkit_download_start. If there is a Document, there should be a FrameNetworkingContext (I guess).

&gt; It&apos;s a bit weird that you have a networkingContext method that you only use to obtain the cookie jar, I&apos;d recommend going straight to the jar.

Can you elaborate? What do you mean by &quot;straight to the jar&quot; in this context?

&gt; &gt; Source/WebCore/platform/network/soup/ResourceHandleSoup.cpp:163
&gt; &gt; +    else {
&gt; &gt; +        if (session == ResourceHandle::defaultSession())
&gt; 
&gt; Make this an else if and do away with the braces =)

Will do.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>545145</commentid>
    <comment_count>8</comment_count>
      <attachid>124558</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-01-30 09:08:22 -0800</bug_when>
    <thetext>Comment on attachment 124558
Patch

Attachment 124558 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/11367618</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>545170</commentid>
    <comment_count>9</comment_count>
      <attachid>124558</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2012-01-30 09:43:10 -0800</bug_when>
    <thetext>Comment on attachment 124558
Patch

Attachment 124558 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/11365660</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>545971</commentid>
    <comment_count>10</comment_count>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2012-01-31 05:40:16 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; Would you like me to just make NetworkingContextGtk::soupSession() return ResourceHandle::defaultSession() for now while we put some thought on the GTK+ part?

I think so, yeah, we&apos;ll have to think about this feature a bit more.

&gt; &gt; Shouldn&apos;t you use the default cookie jar in case no network context exists?
&gt; 
&gt; AFAICS, the only way for no NetworkContext to exist is by passing 0 to ResourceHandle::create(), which is only done by webkit_download_start. If there is a Document, there should be a FrameNetworkingContext (I guess).

Right, but downloads started with webkit_download_start() used to have access to the default cookie jar, so they should keep having, right? =)
 
&gt; &gt; It&apos;s a bit weird that you have a networkingContext method that you only use to obtain the cookie jar, I&apos;d recommend going straight to the jar.
&gt; 
&gt; Can you elaborate? What do you mean by &quot;straight to the jar&quot; in this context?

I mean instead of having a method that is given the document and obtains the context and then from that you get the jar you can have a method which is given a document and returns the jar (returning the default jar if there&apos;s no context).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>546133</commentid>
    <comment_count>11</comment_count>
      <attachid>124753</attachid>
    <who name="Raphael Kubo da Costa (:rakuco)">rakuco</who>
    <bug_when>2012-01-31 09:08:48 -0800</bug_when>
    <thetext>Created attachment 124753
Appease the bots and do not add new API to the GTK+ port</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>546139</commentid>
    <comment_count>12</comment_count>
    <who name="Raphael Kubo da Costa (:rakuco)">rakuco</who>
    <bug_when>2012-01-31 09:10:09 -0800</bug_when>
    <thetext>(In reply to comment #10)
&gt; (In reply to comment #7)
&gt; &gt; &gt; Shouldn&apos;t you use the default cookie jar in case no network context exists?
&gt; &gt; 
&gt; &gt; AFAICS, the only way for no NetworkContext to exist is by passing 0 to ResourceHandle::create(), which is only done by webkit_download_start. If there is a Document, there should be a FrameNetworkingContext (I guess).
&gt; 
&gt; Right, but downloads started with webkit_download_start() used to have access to the default cookie jar, so they should keep having, right? =)

As discussed on IRC, this part of the CookieJar API is only used via Document, which doesn&apos;t exist if ResourceHandle::create(0, ...) is used, as no NetworkingContext (and no Frame) is used.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>546145</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-01-31 09:13:11 -0800</bug_when>
    <thetext>Attachment 124753 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/update-webkit&apos;]&quot; exit_code: 9

Updating OpenSource
From git://git.webkit.org/WebKit
   ab43d00..676824a  master     -&gt; origin/master
Partial-rebuilding .git/svn/refs/remotes/origin/master/.rev_map.268f45cc-cd09-0410-ab3c-d52691b4dbfc ...
Currently at 106362 = ab43d00719700a5da4bc2b60d447b2153c0dbe70
r106363 = 676824ad52096f0bc058e283b7f9071a227cd7a6
Done rebuilding .git/svn/refs/remotes/origin/master/.rev_map.268f45cc-cd09-0410-ab3c-d52691b4dbfc
First, rewinding head to replay your work on top of it...
Applying: Fix compilation errors on build-webkit --debug --no-workers on mac.
Using index info to reconstruct a base tree...
Falling back to patching base and 3-way merge...
Auto-merging LayoutTests/ChangeLog
CONFLICT (content): Merge conflict in LayoutTests/ChangeLog
Auto-merging LayoutTests/platform/qt/Skipped
CONFLICT (content): Merge conflict in LayoutTests/platform/qt/Skipped
Auto-merging Source/WebCore/ChangeLog
CONFLICT (content): Merge conflict in Source/WebCore/ChangeLog
Failed to merge in the changes.
Patch failed at 0001 Fix compilation errors on build-webkit --debug --no-workers on mac.

When you have resolved this problem run &quot;git rebase --continue&quot;.
If you would prefer to skip this patch, instead run &quot;git rebase --skip&quot;.
To restore the original branch and stop rebasing run &quot;git rebase --abort&quot;.

rebase refs/remotes/origin/master: command returned error: 1

Died at Tools/Scripts/update-webkit line 164.


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>546237</commentid>
    <comment_count>14</comment_count>
      <attachid>124753</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-01-31 10:59:53 -0800</bug_when>
    <thetext>Comment on attachment 124753
Appease the bots and do not add new API to the GTK+ port

Attachment 124753 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/11386040</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>550008</commentid>
    <comment_count>15</comment_count>
      <attachid>125648</attachid>
    <who name="Raphael Kubo da Costa (:rakuco)">rakuco</who>
    <bug_when>2012-02-06 08:09:02 -0800</bug_when>
    <thetext>Created attachment 125648
Drop some USE(SOUP) checks now that it depends on bug 77874</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>550038</commentid>
    <comment_count>16</comment_count>
      <attachid>125648</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-02-06 08:56:49 -0800</bug_when>
    <thetext>Comment on attachment 125648
Drop some USE(SOUP) checks now that it depends on bug 77874

Attachment 125648 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/11434376</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>555449</commentid>
    <comment_count>17</comment_count>
      <attachid>126802</attachid>
    <who name="Leandro Pereira">leandro</who>
    <bug_when>2012-02-13 12:12:00 -0800</bug_when>
    <thetext>Created attachment 126802
Same as 125648; resubmitted to workaround flaky EWS

Resubmitting patch to workaround flaky EWS.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>557317</commentid>
    <comment_count>18</comment_count>
      <attachid>126802</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2012-02-15 09:24:49 -0800</bug_when>
    <thetext>Comment on attachment 126802
Same as 125648; resubmitted to workaround flaky EWS

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

It looks sane to me and shouldn&apos;t change anything for GTK+ as long as we discussed, I&apos;m still not sure about the static networkingContext() static function, see bellow:

&gt; Source/WebCore/platform/network/soup/CookieJarSoup.cpp:50
&gt; +static NetworkingContext* networkingContext(const Document* document)
&gt; +{
&gt; +    if (!document)
&gt; +        return 0;
&gt; +    const Frame* frame = document-&gt;frame();
&gt; +    if (!frame)
&gt; +        return 0;
&gt; +    const FrameLoader* loader = frame-&gt;loader();
&gt; +    if (!loader)
&gt; +        return 0;
&gt; +    return loader-&gt;networkingContext();
&gt; +}

I still find it very odd that you have this static function to return the networkingContext and in every call you make you just check for null and gets the soup session. Why don&apos;t you rename this cookieJarForDocument(const Document* document), null check and get the soup session, and return the cookie jar from it?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>557332</commentid>
    <comment_count>19</comment_count>
    <who name="Raphael Kubo da Costa (:rakuco)">rakuco</who>
    <bug_when>2012-02-15 09:52:15 -0800</bug_when>
    <thetext>(In reply to comment #18)
&gt; I still find it very odd that you have this static function to return the networkingContext and in every call you make you just check for null and gets the soup session. Why don&apos;t you rename this cookieJarForDocument(const Document* document), null check and get the soup session, and return the cookie jar from it?

You&apos;re right, that makes total sense -- I probably just looked at how the NetworkingContext was obtained in platform/qt/CookieJarQt.cpp and did the same without giving it too much thought.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>557333</commentid>
    <comment_count>20</comment_count>
      <attachid>127192</attachid>
    <who name="Raphael Kubo da Costa (:rakuco)">rakuco</who>
    <bug_when>2012-02-15 09:53:36 -0800</bug_when>
    <thetext>Created attachment 127192
Obtain the cookie jar in a saner way in CookieJarSoup.cpp</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>557337</commentid>
    <comment_count>21</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-15 09:55:18 -0800</bug_when>
    <thetext>Attachment 127192 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/update-webkit&apos;]&quot; exit_code: 2

Updating OpenSource
git.webkit.org[0: 17.254.20.231]: errno=Connection refused
fatal: unable to connect a socket (Connection refused)
Died at Tools/Scripts/update-webkit line 162.


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>557358</commentid>
    <comment_count>22</comment_count>
      <attachid>127192</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2012-02-15 10:22:52 -0800</bug_when>
    <thetext>Comment on attachment 127192
Obtain the cookie jar in a saner way in CookieJarSoup.cpp

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

&gt; Source/WebCore/platform/network/soup/CookieJarSoup.cpp:52
&gt; +    return SOUP_COOKIE_JAR(soup_session_get_feature(context-&gt;soupSession(), SOUP_TYPE_COOKIE_JAR));

Hmm, this could return NULL, so better null check the return of soup_session_get_feature, and only do cast/return after that; looks fine otherwise.

&gt; Source/WebCore/platform/network/soup/ResourceHandleSoup.cpp:160
&gt; +        SoupCookieJar* jar = SOUP_COOKIE_JAR(soup_session_get_feature(session, SOUP_TYPE_COOKIE_JAR));

Same here. This code was probably emitting warnings we just haven&apos;t seen them in any of our usual suspects.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>557527</commentid>
    <comment_count>23</comment_count>
      <attachid>127230</attachid>
    <who name="Raphael Kubo da Costa (:rakuco)">rakuco</who>
    <bug_when>2012-02-15 13:59:59 -0800</bug_when>
    <thetext>Created attachment 127230
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>557531</commentid>
    <comment_count>24</comment_count>
      <attachid>127232</attachid>
    <who name="Raphael Kubo da Costa (:rakuco)">rakuco</who>
    <bug_when>2012-02-15 14:01:43 -0800</bug_when>
    <thetext>Created attachment 127232
Patch for landing with reviewer set</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>557708</commentid>
    <comment_count>25</comment_count>
      <attachid>127269</attachid>
    <who name="Raphael Kubo da Costa (:rakuco)">rakuco</who>
    <bug_when>2012-02-15 16:20:49 -0800</bug_when>
    <thetext>Created attachment 127269
Patch for landing with reviewer, third time is a charm</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>557709</commentid>
    <comment_count>26</comment_count>
    <who name="Raphael Kubo da Costa (:rakuco)">rakuco</who>
    <bug_when>2012-02-15 16:21:25 -0800</bug_when>
    <thetext>(In reply to comment #22)
&gt; (From update of attachment 127192 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=127192&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/network/soup/CookieJarSoup.cpp:52
&gt; &gt; +    return SOUP_COOKIE_JAR(soup_session_get_feature(context-&gt;soupSession(), SOUP_TYPE_COOKIE_JAR));
&gt; 
&gt; Hmm, this could return NULL, so better null check the return of soup_session_get_feature, and only do cast/return after that; looks fine otherwise.
&gt; 
&gt; &gt; Source/WebCore/platform/network/soup/ResourceHandleSoup.cpp:160
&gt; &gt; +        SoupCookieJar* jar = SOUP_COOKIE_JAR(soup_session_get_feature(session, SOUP_TYPE_COOKIE_JAR));
&gt; 
&gt; Same here. This code was probably emitting warnings we just haven&apos;t seen them in any of our usual suspects.

For posterity: after talking to kov and Bejanmin Otte on #webkitgtk+, we&apos;ve decided to ignore these, as SOUP_COOKIE_JAR(0) just returns 0 and doesn&apos;t emit any warning. I&apos;ve submitted a patch without the suggested changes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>557721</commentid>
    <comment_count>27</comment_count>
    <who name="Raphael Kubo da Costa (:rakuco)">rakuco</who>
    <bug_when>2012-02-15 16:33:01 -0800</bug_when>
    <thetext>Committed r107854: &lt;http://trac.webkit.org/changeset/107854&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>557945</commentid>
    <comment_count>28</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-15 23:36:50 -0800</bug_when>
    <thetext>Attachment 127232 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/update-webkit&apos;]&quot; exit_code: 9

Updating OpenSource
First, rewinding head to replay your work on top of it...
Applying: dataTransfer.types (HTML5 drag &amp; drop) should return DOMStringList
Using index info to reconstruct a base tree...
&lt;stdin&gt;:84: trailing whitespace.
        
&lt;stdin&gt;:333: trailing whitespace.
&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; xmlns:xlink=&quot;http://www.w3.org/1999/xlink&quot;
&lt;stdin&gt;:334: trailing whitespace.
 width=&quot;300&quot; height=&quot;300&quot; onload=&quot;runRepaintTest()&quot;&gt;
&lt;stdin&gt;:335: trailing whitespace.
&lt;script xlink:href=&quot;../../fast/repaint/resources/repaint.js&quot; /&gt;
&lt;stdin&gt;:336: trailing whitespace.
&lt;script&gt;&lt;![CDATA[
warning: squelched 16 whitespace errors
warning: 21 lines add whitespace errors.
Falling back to patching base and 3-way merge...
Auto-merging LayoutTests/ChangeLog
CONFLICT (content): Merge conflict in LayoutTests/ChangeLog
Auto-merging Source/WebCore/ChangeLog
CONFLICT (content): Merge conflict in Source/WebCore/ChangeLog
Failed to merge in the changes.
Patch failed at 0001 dataTransfer.types (HTML5 drag &amp; drop) should return DOMStringList

When you have resolved this problem run &quot;git rebase --continue&quot;.
If you would prefer to skip this patch, instead run &quot;git rebase --skip&quot;.
To restore the original branch and stop rebasing run &quot;git rebase --abort&quot;.

rebase refs/remotes/origin/master: command returned error: 1

Died at Tools/Scripts/update-webkit line 164.


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>124558</attachid>
            <date>2012-01-30 08:30:59 -0800</date>
            <delta_ts>2012-01-31 09:08:40 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-77341-20120130143213.patch</filename>
            <type>text/plain</type>
            <size>38825</size>
            <attacher name="Raphael Kubo da Costa (:rakuco)">rakuco</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA2MDc5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGYxZmIxZmYyOGViN2U2
OWZhYzJjM2ExNTE2ODk5Y2E2ZTU0YmVkOC4uNzJiMDRiOTk0ZmQ2OGY1OGRlZjZkNGI3ZTlhM2Rl
YWVmY2RhYWViMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUxIEBACisyMDEyLTAxLTMwICBSYXBo
YWVsIEt1Ym8gZGEgQ29zdGEgIDxrdWJvQHByb2Z1c2lvbi5tb2JpPgorCisgICAgICAgIFtzb3Vw
XSBBZGQgc3VwcG9ydCBmb3IgbXVsdGlwbGUgU291cFNlc3Npb25zLgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzczNDEKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNYWtlIHRoZSBsaWJzb3VwIG5ldHdvcmsg
YmFja2VuZCBzdXBwb3J0IG11bHRpcGxlIFNvdXBTZXNzaW9ucy4gVGhpcyBpcworICAgICAgICBh
Y2NvbXBsaXNoZWQgYnkgdXNpbmcgdGhlIE5ldHdvcmtpbmdDb250ZXh0IGNsYXNzZXMsIHdoaWNo
IG5vdyBoYXZlIGEKKyAgICAgICAgYHNvdXBTZXNzaW9uKCknIG1ldGhvZCB3aGVuIHRoZSBsaWJz
b3VwIGJhY2tlbmQgaXMgYmVpbmcgdXNlZC4KKworICAgICAgICBsaWJzb3VwJ3MgUmVzb3VyY2VI
YW5kbGUgaW1wbGVtZW50YXRpb24gbm93IHJldHJpZXZlcyB0aGUgU291cFNlc3Npb24KKyAgICAg
ICAgdmlhIHRoZSBOZXR3b3JraW5nQ29udGV4dCBpdCByZWNlaXZlcyBpbnN0ZWFkIG9mIHJlbHlp
bmcgb24KKyAgICAgICAgZGVmYXVsdFNlc3Npb24oKS4gZGVmYXVsdFNlc3Npb24oKSBpcyBzdGls
bCB1c2VkIHdoZW4gYSBudWxsCisgICAgICAgIE5ldHdvcmtpbmdDb250ZXh0IGlzIHBhc3NlZCB0
byBSZXNvdXJjZUhhbmRsZTo6c3RhcnQgKGZvciBleGFtcGxlLCB2aWEKKyAgICAgICAgd2Via2l0
X2Rvd25sb2FkX3N0YXJ0KS4KKworICAgICAgICBUaGUgQ29va2llSmFyIGltcGxlbWVudGF0aW9u
IHJldHJpZXZlcyB0aGUgU291cFNlc3Npb24gZnJvbSB0aGUKKyAgICAgICAgTmV0d29ya2luZ0Nv
bnRleHQgYXMgbXVjaCBhcyBwb3NzaWJsZSBhcyB3ZWxsIC0tIHRoZSBmdW5jdGlvbnMgdXNlZCBi
eQorICAgICAgICBXZWJLaXQyIGNvdWxkIG5vdCBiZSBjb252ZXJ0ZWQsIHRob3VnaCwgYXMgdGhl
eSBzZWVtIHRvIGFzc3VtZSB0aGVyZSBpcworICAgICAgICBvbmx5IG9uZSBzaGFyZWQgY29va2ll
IGphci4KKworICAgICAgICBObyBuZXcgdGVzdHMsIGNvdmVyZWQgYnkgdGhlIGV4aXN0aW5nIG9u
ZXMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtpbmdDb250ZXh0Lmg6Cisg
ICAgICAgIChOZXR3b3JraW5nQ29udGV4dCk6IEFkZCBzb3VwU2Vzc2lvbigpIG1ldGhvZCBpZiBV
U0UoU09VUCkgaXMgc2V0LgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5k
bGVJbnRlcm5hbC5oOgorICAgICAgICAoUmVzb3VyY2VIYW5kbGVJbnRlcm5hbCk6CisgICAgICAg
ICogcGxhdGZvcm0vbmV0d29yay9zb3VwL0Nvb2tpZUphclNvdXAuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6bmV0d29ya2luZ0NvbnRleHQpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChX
ZWJDb3JlOjpkZWZhdWx0Q29va2llSmFyKToKKyAgICAgICAgKFdlYkNvcmU6OnNldENvb2tpZXMp
OgorICAgICAgICAoV2ViQ29yZTo6Y29va2llcyk6CisgICAgICAgIChXZWJDb3JlOjpjb29raWVS
ZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpjb29raWVzRW5hYmxl
ZCk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlSGFuZGxlU291cC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZUludGVybmFsOjpzb3VwU2Vzc2lv
bik6IEFkZCBtZXRob2QgdG8gcmV0cmlldmUKKyAgICAgICAgYSBTb3VwU2Vzc2lvbiBmcm9tIGEg
TmV0d29ya2luZ0NvbnRleHQgYW5kIGZhbGxiYWNrIHRvIGRlZmF1bHRTZXNzaW9uKCkKKyAgICAg
ICAgaWYgdGhlcmUncyBubyB2YWxpZCBOZXR3b3JraW5nQ29udGV4dC4KKyAgICAgICAgKFdlYkNv
cmUpOgorICAgICAgICAoV2ViQ29yZTo6ZW5zdXJlU2Vzc2lvbklzSW5pdGlhbGl6ZWQpOiBPbmx5
IGNoYW5nZSB0aGUgZGVmYXVsdCBjb29raWUKKyAgICAgICAgamFyIGlmIHRoZSBTb3VwU2Vzc2lv
biBiZWluZyBjaGFuZ2VkIGlzIHRoZSBkZWZhdWx0IG9uZS4KKyAgICAgICAgKFdlYkNvcmU6OnNl
bmRSZXF1ZXN0Q2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6c3RhcnRIVFRQUmVxdWVzdCk6
CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6Y2FuY2VsKToKKyAgICAgICAgKFdl
YkNvcmU6OnN0YXJ0Tm9uSFRUUFJlcXVlc3QpOgorCiAyMDEyLTAxLTI2ICBQYWJsbyBGbG91cmV0
ICA8cGFibG9mQG1vdG9yb2xhLmNvbT4KIAogICAgICAgICBGaXggYmFkIGNvZGUgZ2VuZXJhdGVk
IGJ5IHRoZSBKU0MgaWRsIGNvZGUgZ2VuZXJhdG9yIGZvciBbQ2FjaGVkQXR0cmlidXRlXSBhdHRy
aWJ1dGVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViS2l0L2VmbC9DaGFuZ2VMb2cKaW5kZXggODhkM2FlOWE0ZjQyODhiZGVlMTYwZmUwYzY3NjYx
YWRhMDMwNTIxNy4uMmEwNDM2MTVjMGQ2NGZmOWQ4MTQ5MTQ0NWIwNjBkN2QxYzc3NjMzZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQv
ZWZsL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDEyLTAxLTMwICBSYXBoYWVsIEt1Ym8g
ZGEgQ29zdGEgIDxrdWJvQHByb2Z1c2lvbi5tb2JpPgorCisgICAgICAgIFtzb3VwXSBBZGQgc3Vw
cG9ydCBmb3IgbXVsdGlwbGUgU291cFNlc3Npb25zLgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzczNDEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgdGhlIG5lY2Vzc2FyeSBpbmZyYXN0cnVjdHVyZSB0
byBzdXBwb3J0IG11bHRpcGxlIFNvdXBTZXNzaW9ucy4gRWFjaAorICAgICAgICBXZWJWaWV3IG5v
dyBoYXMgYSAic2Vzc2lvbiIgcHJvcGVydHksIHdoaWNoIGRlZmF1bHRzIHRvCisgICAgICAgIFJl
c291cmNlSGFuZGxlOjpkZWZhdWx0U2Vzc2lvbigpIGFuZCBjYW4gYmUgY2hhbmdlZCB0byBhbm90
aGVyCisgICAgICAgIFNvdXBTZXNzaW9uIGJ5IHRoZSB1c2VyLgorCisgICAgICAgICogQ01ha2VM
aXN0c0VmbC50eHQ6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRF
ZmwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXJDbGllbnRFZmw6OmNyZWF0ZU5l
dHdvcmtpbmdDb250ZXh0KToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFtZU5ldHdvcmtp
bmdDb250ZXh0RWZsLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1
cHBvcnQvRnJhbWVOZXR3b3JraW5nQ29udGV4dEVmbC5oLgorICAgICAgICAoV2ViQ29yZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpGcmFtZU5ldHdvcmtpbmdDb250ZXh0RWZsOjpjcmVhdGUpOgorICAg
ICAgICAoV2ViQ29yZTo6RnJhbWVOZXR3b3JraW5nQ29udGV4dEVmbDo6RnJhbWVOZXR3b3JraW5n
Q29udGV4dEVmbCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZU5ldHdvcmtpbmdDb250ZXh0RWZs
Ojpzb3VwU2Vzc2lvbik6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVOZXR3b3JraW5n
Q29udGV4dEVmbC5oOgorICAgICAgICAoRnJhbWVOZXR3b3JraW5nQ29udGV4dEVmbCk6CisgICAg
ICAgICogZXdrL2V3a19jb29raWVzLmg6IE1lbnRpb24gdGhpcyBBUEkgaXMgb25seSB2YWxpZCB3
aXRoIHRoZQorICAgICAgICBkZWZhdWx0IFNvdXBTZXNzaW9uLgorICAgICAgICAqIGV3ay9ld2tf
bmV0d29yay5oOiBEaXR0by4KKyAgICAgICAgKiBld2svZXdrX3ZpZXcuY3BwOgorICAgICAgICAo
X0V3a19WaWV3X1ByaXZhdGVfRGF0YSk6CisgICAgICAgIChfZXdrX3ZpZXdfcHJpdl9uZXcpOgor
ICAgICAgICAoZXdrX3ZpZXdfc291cF9zZXNzaW9uX2dldCk6CisgICAgICAgIChld2tfdmlld19z
b3VwX3Nlc3Npb25fc2V0KToKKyAgICAgICAgKiBld2svZXdrX3ZpZXcuaDoKKyAgICAgICAgKF9F
d2tfVmlld19TbWFydF9DbGFzcyk6CisgICAgICAgICgpOgorCiAyMDEyLTAxLTI2ICBUb21hc3og
TW9yYXdza2kgIDx0Lm1vcmF3c2tpQHNhbXN1bmcuY29tPgogCiAgICAgICAgIFtFRkxdIEFkZGVk
IG1pc3NpbmcgTkVUU0NBUEVfUExVR0lOX0FQSSBtYWNyby4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvZ3RrL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZwppbmRleCBk
NDQ5NDY0ZmY3MTRjNWY3ZTJhNjVkOGVhZjExMjgyNzBjZjA3NGY4Li43MTVhNTUzMDM2OGI4ZWM4
ZTVlMDliMTIyOTRmMTAzM2Y0NmU0MDdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzkg
QEAKKzIwMTItMDEtMzAgIFJhcGhhZWwgS3VibyBkYSBDb3N0YSAgPGt1Ym9AcHJvZnVzaW9uLm1v
Ymk+CisKKyAgICAgICAgW3NvdXBdIEFkZCBzdXBwb3J0IGZvciBtdWx0aXBsZSBTb3VwU2Vzc2lv
bnMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NzM0
MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCB0
aGUgbmVjZXNzYXJ5IGluZnJhc3RydWN0dXJlIHRvIHN1cHBvcnQgbXVsdGlwbGUgU291cFNlc3Np
b25zLiBFYWNoCisgICAgICAgIFdlYlZpZXcgbm93IGhhcyBhICJzZXNzaW9uIiBwcm9wZXJ0eSwg
d2hpY2ggZGVmYXVsdHMgdG8KKyAgICAgICAgUmVzb3VyY2VIYW5kbGU6OmRlZmF1bHRTZXNzaW9u
KCkgYW5kIGNhbiBiZSBjaGFuZ2VkIHRvIGFub3RoZXIKKyAgICAgICAgU291cFNlc3Npb24gYnkg
dGhlIHVzZXIuCisKKyAgICAgICAgUGFydCBvZiB0aGUgV2ViS2l0V2ViVmlldyBjb2RlIGlzIGJh
c2VkIG9uIHRoZSBpbml0aWFsIHdvcmsgZG9uZSBieQorICAgICAgICBDaHJpc3RpYW4gRHl3YW4g
aW4gYnVnIDIyNjI0LgorCisgICAgICAgICogR05VbWFrZWZpbGUuYW06CisgICAgICAgICogV2Vi
Q29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuY3BwOgorICAgICAgICAoV2ViS2l0OjpG
cmFtZUxvYWRlckNsaWVudDo6Y3JlYXRlTmV0d29ya2luZ0NvbnRleHQpOgorICAgICAgICAqIFdl
YkNvcmVTdXBwb3J0L0ZyYW1lTmV0d29ya2luZ0NvbnRleHRHdGsuY3BwOiBDb3BpZWQgZnJvbSBT
b3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9GcmFtZU5ldHdvcmtpbmdDb250ZXh0R3Rr
LmguCisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoV2ViS2l0OjpGcmFtZU5ldHdvcmtpbmdD
b250ZXh0R3RrOjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0OjpGcmFtZU5ldHdvcmtpbmdDb250
ZXh0R3RrOjpGcmFtZU5ldHdvcmtpbmdDb250ZXh0R3RrKToKKyAgICAgICAgKFdlYktpdDo6RnJh
bWVOZXR3b3JraW5nQ29udGV4dEd0azo6c291cFNlc3Npb24pOgorICAgICAgICAqIFdlYkNvcmVT
dXBwb3J0L0ZyYW1lTmV0d29ya2luZ0NvbnRleHRHdGsuaDoKKyAgICAgICAgKEZyYW1lTmV0d29y
a2luZ0NvbnRleHRHdGspOgorICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcDoKKyAg
ICAgICAgKHdlYmtpdF93ZWJfdmlld19nZXRfcHJvcGVydHkpOgorICAgICAgICAod2Via2l0X3dl
Yl92aWV3X3NldF9wcm9wZXJ0eSk6CisgICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfY2xhc3NfaW5p
dCk6CisgICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfaW5pdCk6CisgICAgICAgICh3ZWJraXRfd2Vi
X3ZpZXdfZ2V0X3Nlc3Npb24pOgorICAgICAgICAod2Via2l0X3dlYl92aWV3X3NldF9zZXNzaW9u
KToKKyAgICAgICAgKiB3ZWJraXQvd2Via2l0d2Vidmlldy5oOgorICAgICAgICAqIHdlYmtpdC93
ZWJraXR3ZWJ2aWV3cHJpdmF0ZS5oOgorICAgICAgICAoX1dlYktpdFdlYlZpZXdQcml2YXRlKToK
KwogMjAxMi0wMS0yMyAgTWFyaW8gU2FuY2hleiBQcmFkYSAgPG1zYW5jaGV6QGlnYWxpYS5jb20+
CiAKICAgICAgICAgW0dUS10gUmVmYWN0b3IgR1RLJ3MgYWNjZXNzaWJpbGl0aXR5IGNvZGUgdG8g
YmUgbW9yZSBtb2R1bGFyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL05ldHdvcmtpbmdDb250ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L05ldHdvcmtpbmdDb250ZXh0LmgKaW5kZXggZjJiMTBjNDQ1YmQwNTdkNjM0NDc2MGY4OTdjMzRj
ZjViZWJiMjgwMS4uMDQ2MDg1YzJmNmI0NWZiZGMxMTRiOWE2MGUxYWFjNTliMzVjNjk2MCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3JraW5nQ29udGV4
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya2luZ0NvbnRl
eHQuaApAQCAtMzUsNiArMzUsMTAgQEAgY2xhc3MgUVVybDsKIFFUX0VORF9OQU1FU1BBQ0UKICNl
bmRpZgogCisjaWYgVVNFKFNPVVApCit0eXBlZGVmIHN0cnVjdCBfU291cFNlc3Npb24gU291cFNl
c3Npb247CisjZW5kaWYKKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBSZXNvdXJjZUVy
cm9yOwpAQCAtNjYsNiArNzAsMTAgQEAgcHVibGljOgogICAgIHZpcnR1YWwgUmVzb3VyY2VFcnJv
ciBibG9ja2VkRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JikgY29uc3QgPSAwOwogI2VuZGlm
CiAKKyNpZiBVU0UoU09VUCkKKyAgICB2aXJ0dWFsIFNvdXBTZXNzaW9uKiBzb3VwU2Vzc2lvbigp
IGNvbnN0ID0gMDsKKyNlbmRpZgorCiBwcm90ZWN0ZWQ6CiAgICAgTmV0d29ya2luZ0NvbnRleHQo
KSB7IH0KIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jl
c291cmNlSGFuZGxlSW50ZXJuYWwuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
UmVzb3VyY2VIYW5kbGVJbnRlcm5hbC5oCmluZGV4IDg3Nzk5Nzk2Mzg4NGJkZGJkN2E3NmMwNmEy
OWVmNjgxZGVhZGYxNjYuLmJjNzllZDEyYjZjYWZhMjYyZWQ0OWJlZWY5OGI5Nzc0YzVmYTZjODAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5k
bGVJbnRlcm5hbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3Vy
Y2VIYW5kbGVJbnRlcm5hbC5oCkBAIC0xODksNiArMTg5LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogICAgICAgICB1bnNpZ25lZCBsb25nIG1fYm9keVNpemU7CiAgICAgICAgIHVuc2lnbmVkIGxv
bmcgbV9ib2R5RGF0YVNlbnQ7CiAgICAgICAgIFJlZlB0cjxOZXR3b3JraW5nQ29udGV4dD4gbV9j
b250ZXh0OworICAgICAgICBTb3VwU2Vzc2lvbiogc291cFNlc3Npb24oKTsKICNlbmRpZgogI2lm
IFBMQVRGT1JNKFFUKQogICAgICAgICBRTmV0d29ya1JlcGx5SGFuZGxlciogbV9qb2I7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvQ29va2llSmFyU291
cC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvQ29va2llSmFyU291
cC5jcHAKaW5kZXggZjE3MGQyZDU0ZTcxYmY5NjBjNjlmZTIxYzI5NjEyMjQ1YTNmYjhjNy4uM2Vh
OTJlZDVhMDUyZjY3N2RhNDMyM2EwNGIzMzI0YWJlMTBlMDc3NiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL0Nvb2tpZUphclNvdXAuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9Db29raWVKYXJTb3VwLmNwcApAQCAt
MjMsOCArMjMsMTIgQEAKIAogI2luY2x1ZGUgIkNvb2tpZS5oIgogI2luY2x1ZGUgIkRvY3VtZW50
LmgiCisjaW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJGcmFtZUxvYWRlci5oIgogI2luY2x1
ZGUgIkdPd25QdHJTb3VwLmgiCiAjaW5jbHVkZSAiS1VSTC5oIgorI2luY2x1ZGUgIk5ldHdvcmtp
bmdDb250ZXh0LmgiCisjaW5jbHVkZSAiUmVzb3VyY2VIYW5kbGUuaCIKICNpbmNsdWRlIDx3dGYv
dGV4dC9DU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTMyLDYgKzM2LDE5IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIHN0YXRpYyBib29sIGNvb2tpZXNJbml0aWFsaXplZDsKIHN0
YXRpYyBTb3VwQ29va2llSmFyKiBjb29raWVKYXI7CiAKK3N0YXRpYyBOZXR3b3JraW5nQ29udGV4
dCogbmV0d29ya2luZ0NvbnRleHQoY29uc3QgRG9jdW1lbnQqIGRvY3VtZW50KQoreworICAgIGlm
ICghZG9jdW1lbnQpCisgICAgICAgIHJldHVybiAwOworICAgIGNvbnN0IEZyYW1lKiBmcmFtZSA9
IGRvY3VtZW50LT5mcmFtZSgpOworICAgIGlmICghZnJhbWUpCisgICAgICAgIHJldHVybiAwOwor
ICAgIGNvbnN0IEZyYW1lTG9hZGVyKiBsb2FkZXIgPSBmcmFtZS0+bG9hZGVyKCk7CisgICAgaWYg
KCFsb2FkZXIpCisgICAgICAgIHJldHVybiAwOworICAgIHJldHVybiBsb2FkZXItPm5ldHdvcmtp
bmdDb250ZXh0KCk7Cit9CisKIFNvdXBDb29raWVKYXIqIGRlZmF1bHRDb29raWVKYXIoKQogewog
ICAgIGlmICghY29va2llc0luaXRpYWxpemVkKSB7CkBAIC01OSw3ICs3NiwxMSBAQCB2b2lkIHNl
dERlZmF1bHRDb29raWVKYXIoU291cENvb2tpZUphciogamFyKQogCiB2b2lkIHNldENvb2tpZXMo
RG9jdW1lbnQqIGRvY3VtZW50LCBjb25zdCBLVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgdmFsdWUp
CiB7Ci0gICAgU291cENvb2tpZUphciogamFyID0gZGVmYXVsdENvb2tpZUphcigpOworICAgIGNv
bnN0IE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0ID0gbmV0d29ya2luZ0NvbnRleHQoZG9jdW1l
bnQpOworICAgIGlmICghY29udGV4dCkKKyAgICAgICAgcmV0dXJuOworCisgICAgU291cENvb2tp
ZUphciogamFyID0gU09VUF9DT09LSUVfSkFSKHNvdXBfc2Vzc2lvbl9nZXRfZmVhdHVyZShjb250
ZXh0LT5zb3VwU2Vzc2lvbigpLCBTT1VQX1RZUEVfQ09PS0lFX0pBUikpOwogICAgIGlmICghamFy
KQogICAgICAgICByZXR1cm47CiAKQEAgLTczLDkgKzk0LDEzIEBAIHZvaWQgc2V0Q29va2llcyhE
b2N1bWVudCogZG9jdW1lbnQsIGNvbnN0IEtVUkwmIHVybCwgY29uc3QgU3RyaW5nJiB2YWx1ZSkK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlLnV0
ZjgoKS5kYXRhKCkpOwogfQogCi1TdHJpbmcgY29va2llcyhjb25zdCBEb2N1bWVudCogLypkb2N1
bWVudCovLCBjb25zdCBLVVJMJiB1cmwpCitTdHJpbmcgY29va2llcyhjb25zdCBEb2N1bWVudCog
ZG9jdW1lbnQsIGNvbnN0IEtVUkwmIHVybCkKIHsKLSAgICBTb3VwQ29va2llSmFyKiBqYXIgPSBk
ZWZhdWx0Q29va2llSmFyKCk7CisgICAgY29uc3QgTmV0d29ya2luZ0NvbnRleHQqIGNvbnRleHQg
PSBuZXR3b3JraW5nQ29udGV4dChkb2N1bWVudCk7CisgICAgaWYgKCFjb250ZXh0KQorICAgICAg
ICByZXR1cm4gU3RyaW5nKCk7CisKKyAgICBTb3VwQ29va2llSmFyKiBqYXIgPSBTT1VQX0NPT0tJ
RV9KQVIoc291cF9zZXNzaW9uX2dldF9mZWF0dXJlKGNvbnRleHQtPnNvdXBTZXNzaW9uKCksIFNP
VVBfVFlQRV9DT09LSUVfSkFSKSk7CiAgICAgaWYgKCFqYXIpCiAgICAgICAgIHJldHVybiBTdHJp
bmcoKTsKIApAQCAtODksOSArMTE0LDEzIEBAIFN0cmluZyBjb29raWVzKGNvbnN0IERvY3VtZW50
KiAvKmRvY3VtZW50Ki8sIGNvbnN0IEtVUkwmIHVybCkKICAgICByZXR1cm4gcmVzdWx0OwogfQog
Ci1TdHJpbmcgY29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoY29uc3QgRG9jdW1lbnQqIC8q
ZG9jdW1lbnQqLywgY29uc3QgS1VSTCYgdXJsKQorU3RyaW5nIGNvb2tpZVJlcXVlc3RIZWFkZXJG
aWVsZFZhbHVlKGNvbnN0IERvY3VtZW50KiBkb2N1bWVudCwgY29uc3QgS1VSTCYgdXJsKQogewot
ICAgIFNvdXBDb29raWVKYXIqIGphciA9IGRlZmF1bHRDb29raWVKYXIoKTsKKyAgICBjb25zdCBO
ZXR3b3JraW5nQ29udGV4dCogY29udGV4dCA9IG5ldHdvcmtpbmdDb250ZXh0KGRvY3VtZW50KTsK
KyAgICBpZiAoIWNvbnRleHQpCisgICAgICAgIHJldHVybiBTdHJpbmcoKTsKKworICAgIFNvdXBD
b29raWVKYXIqIGphciA9IFNPVVBfQ09PS0lFX0pBUihzb3VwX3Nlc3Npb25fZ2V0X2ZlYXR1cmUo
Y29udGV4dC0+c291cFNlc3Npb24oKSwgU09VUF9UWVBFX0NPT0tJRV9KQVIpKTsKICAgICBpZiAo
IWphcikKICAgICAgICAgcmV0dXJuIFN0cmluZygpOwogCkBAIC0xMDUsOSArMTM0LDEzIEBAIFN0
cmluZyBjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShjb25zdCBEb2N1bWVudCogLypkb2N1
bWVudCovLCBjb25zdCBLVVJMJiB1CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAotYm9vbCBjb29r
aWVzRW5hYmxlZChjb25zdCBEb2N1bWVudCogLypkb2N1bWVudCovKQorYm9vbCBjb29raWVzRW5h
YmxlZChjb25zdCBEb2N1bWVudCogZG9jdW1lbnQpCiB7Ci0gICAgcmV0dXJuIGRlZmF1bHRDb29r
aWVKYXIoKTsKKyAgICBjb25zdCBOZXR3b3JraW5nQ29udGV4dCogY29udGV4dCA9IG5ldHdvcmtp
bmdDb250ZXh0KGRvY3VtZW50KTsKKyAgICBpZiAoIWNvbnRleHQpCisgICAgICAgIHJldHVybiBm
YWxzZTsKKworICAgIHJldHVybiAhIShTT1VQX0NPT0tJRV9KQVIoc291cF9zZXNzaW9uX2dldF9m
ZWF0dXJlKGNvbnRleHQtPnNvdXBTZXNzaW9uKCksIFNPVVBfVFlQRV9DT09LSUVfSkFSKSkpOwog
fQogCiBib29sIGdldFJhd0Nvb2tpZXMoY29uc3QgRG9jdW1lbnQqLCBjb25zdCBLVVJMJiwgVmVj
dG9yPENvb2tpZT4mIHJhd0Nvb2tpZXMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5kbGVTb3VwLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUhhbmRsZVNvdXAuY3BwCmluZGV4IDVjYjUz
YmRmZjRmYWI1NjkzM2ExMzE5YWM2YmFjN2E2MGZiMDlmZWIuLjgxYzhiMjY0MzYxZTUzNTZiN2E2
NGM2NDNkMGZiMmQ3M2JmMWQ2YjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvc291cC9SZXNvdXJjZUhhbmRsZVNvdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUhhbmRsZVNvdXAuY3BwCkBAIC0xNDEsNiAr
MTQxLDExIEBAIFJlc291cmNlSGFuZGxlSW50ZXJuYWw6On5SZXNvdXJjZUhhbmRsZUludGVybmFs
KCkKIHsKIH0KIAorU291cFNlc3Npb24qIFJlc291cmNlSGFuZGxlSW50ZXJuYWw6OnNvdXBTZXNz
aW9uKCkKK3sKKyAgICByZXR1cm4gKG1fY29udGV4dCAmJiBtX2NvbnRleHQtPmlzVmFsaWQoKSkg
PyBtX2NvbnRleHQtPnNvdXBTZXNzaW9uKCkgOiBSZXNvdXJjZUhhbmRsZTo6ZGVmYXVsdFNlc3Np
b24oKTsKK30KKwogUmVzb3VyY2VIYW5kbGU6On5SZXNvdXJjZUhhbmRsZSgpCiB7CiAgICAgY2xl
YW51cFNvdXBSZXF1ZXN0T3BlcmF0aW9uKHRoaXMsIHRydWUpOwpAQCAtMTU0LDggKzE1OSwxMCBA
QCBzdGF0aWMgdm9pZCBlbnN1cmVTZXNzaW9uSXNJbml0aWFsaXplZChTb3VwU2Vzc2lvbiogc2Vz
c2lvbikKICAgICBTb3VwQ29va2llSmFyKiBqYXIgPSBTT1VQX0NPT0tJRV9KQVIoc291cF9zZXNz
aW9uX2dldF9mZWF0dXJlKHNlc3Npb24sIFNPVVBfVFlQRV9DT09LSUVfSkFSKSk7CiAgICAgaWYg
KCFqYXIpCiAgICAgICAgIHNvdXBfc2Vzc2lvbl9hZGRfZmVhdHVyZShzZXNzaW9uLCBTT1VQX1NF
U1NJT05fRkVBVFVSRShkZWZhdWx0Q29va2llSmFyKCkpKTsKLSAgICBlbHNlCi0gICAgICAgIHNl
dERlZmF1bHRDb29raWVKYXIoamFyKTsKKyAgICBlbHNlIHsKKyAgICAgICAgaWYgKHNlc3Npb24g
PT0gUmVzb3VyY2VIYW5kbGU6OmRlZmF1bHRTZXNzaW9uKCkpCisgICAgICAgICAgICBzZXREZWZh
dWx0Q29va2llSmFyKGphcik7CisgICAgfQogCiAgICAgaWYgKCFzb3VwX3Nlc3Npb25fZ2V0X2Zl
YXR1cmUoc2Vzc2lvbiwgU09VUF9UWVBFX0xPR0dFUikgJiYgTG9nTmV0d29yay5zdGF0ZSA9PSBX
VEZMb2dDaGFubmVsT24pIHsKICAgICAgICAgU291cExvZ2dlciogbG9nZ2VyID0gc291cF9sb2dn
ZXJfbmV3KHN0YXRpY19jYXN0PFNvdXBMb2dnZXJMb2dMZXZlbD4oU09VUF9MT0dHRVJfTE9HX0JP
RFkpLCAtMSk7CkBAIC0zMTksNyArMzI2LDcgQEAgc3RhdGljIHZvaWQgc2VuZFJlcXVlc3RDYWxs
YmFjayhHT2JqZWN0KiBzb3VyY2UsIEdBc3luY1Jlc3VsdCogcmVzLCBncG9pbnRlciBkYXQKICAg
ICAgICAgZC0+bV9yZXNwb25zZS51cGRhdGVGcm9tU291cE1lc3NhZ2Uoc291cE1lc3NhZ2UpOwog
CiAgICAgICAgIGlmIChkLT5tX2RlZmVyc0xvYWRpbmcpCi0gICAgICAgICAgICBzb3VwX3Nlc3Np
b25fcGF1c2VfbWVzc2FnZShoYW5kbGUtPmRlZmF1bHRTZXNzaW9uKCksIHNvdXBNZXNzYWdlKTsK
KyAgICAgICAgICAgIHNvdXBfc2Vzc2lvbl9wYXVzZV9tZXNzYWdlKGQtPnNvdXBTZXNzaW9uKCks
IHNvdXBNZXNzYWdlKTsKICAgICB9IGVsc2UgewogICAgICAgICBkLT5tX3Jlc3BvbnNlLnNldFVS
TChoYW5kbGUtPmZpcnN0UmVxdWVzdCgpLnVybCgpKTsKICAgICAgICAgY29uc3QgZ2NoYXIqIGNv
bnRlbnRUeXBlID0gc291cF9yZXF1ZXN0X2dldF9jb250ZW50X3R5cGUoZC0+bV9zb3VwUmVxdWVz
dC5nZXQoKSk7CkBAIC00NDIsMTIgKzQ0OSwxMiBAQCBzdGF0aWMgYm9vbCBzdGFydEhUVFBSZXF1
ZXN0KFJlc291cmNlSGFuZGxlKiBoYW5kbGUpCiB7CiAgICAgQVNTRVJUKGhhbmRsZSk7CiAKLSAg
ICBTb3VwU2Vzc2lvbiogc2Vzc2lvbiA9IGhhbmRsZS0+ZGVmYXVsdFNlc3Npb24oKTsKKyAgICBS
ZXNvdXJjZUhhbmRsZUludGVybmFsKiBkID0gaGFuZGxlLT5nZXRJbnRlcm5hbCgpOworCisgICAg
U291cFNlc3Npb24qIHNlc3Npb24gPSBkLT5zb3VwU2Vzc2lvbigpOwogICAgIGVuc3VyZVNlc3Np
b25Jc0luaXRpYWxpemVkKHNlc3Npb24pOwogICAgIFNvdXBSZXF1ZXN0ZXIqIHJlcXVlc3RlciA9
IFNPVVBfUkVRVUVTVEVSKHNvdXBfc2Vzc2lvbl9nZXRfZmVhdHVyZShzZXNzaW9uLCBTT1VQX1RZ
UEVfUkVRVUVTVEVSKSk7CiAKLSAgICBSZXNvdXJjZUhhbmRsZUludGVybmFsKiBkID0gaGFuZGxl
LT5nZXRJbnRlcm5hbCgpOwotCiAgICAgUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QoaGFuZGxlLT5m
aXJzdFJlcXVlc3QoKSk7CiAgICAgS1VSTCB1cmwocmVxdWVzdC51cmwoKSk7CiAgICAgdXJsLnJl
bW92ZUZyYWdtZW50SWRlbnRpZmllcigpOwpAQCAtNTUyLDcgKzU1OSw3IEBAIHZvaWQgUmVzb3Vy
Y2VIYW5kbGU6OmNhbmNlbCgpCiB7CiAgICAgZC0+bV9jYW5jZWxsZWQgPSB0cnVlOwogICAgIGlm
IChkLT5tX3NvdXBNZXNzYWdlKQotICAgICAgICBzb3VwX3Nlc3Npb25fY2FuY2VsX21lc3NhZ2Uo
ZGVmYXVsdFNlc3Npb24oKSwgZC0+bV9zb3VwTWVzc2FnZS5nZXQoKSwgU09VUF9TVEFUVVNfQ0FO
Q0VMTEVEKTsKKyAgICAgICAgc291cF9zZXNzaW9uX2NhbmNlbF9tZXNzYWdlKGQtPnNvdXBTZXNz
aW9uKCksIGQtPm1fc291cE1lc3NhZ2UuZ2V0KCksIFNPVVBfU1RBVFVTX0NBTkNFTExFRCk7CiAg
ICAgZWxzZSBpZiAoZC0+bV9jYW5jZWxsYWJsZSkKICAgICAgICAgZ19jYW5jZWxsYWJsZV9jYW5j
ZWwoZC0+bV9jYW5jZWxsYWJsZS5nZXQoKSk7CiB9CkBAIC02ODcsMTAgKzY5NCwxMSBAQCBzdGF0
aWMgYm9vbCBzdGFydE5vbkhUVFBSZXF1ZXN0KFJlc291cmNlSGFuZGxlKiBoYW5kbGUsIEtVUkwg
dXJsKQogICAgIGlmIChoYW5kbGUtPmZpcnN0UmVxdWVzdCgpLmh0dHBNZXRob2QoKSAhPSAiR0VU
IiAmJiBoYW5kbGUtPmZpcnN0UmVxdWVzdCgpLmh0dHBNZXRob2QoKSAhPSAiUE9TVCIpCiAgICAg
ICAgIHJldHVybiBmYWxzZTsKIAotICAgIFNvdXBTZXNzaW9uKiBzZXNzaW9uID0gaGFuZGxlLT5k
ZWZhdWx0U2Vzc2lvbigpOworICAgIFJlc291cmNlSGFuZGxlSW50ZXJuYWwqIGQgPSBoYW5kbGUt
PmdldEludGVybmFsKCk7CisKKyAgICBTb3VwU2Vzc2lvbiogc2Vzc2lvbiA9IGQtPnNvdXBTZXNz
aW9uKCk7CiAgICAgZW5zdXJlU2Vzc2lvbklzSW5pdGlhbGl6ZWQoc2Vzc2lvbik7CiAgICAgU291
cFJlcXVlc3RlciogcmVxdWVzdGVyID0gU09VUF9SRVFVRVNURVIoc291cF9zZXNzaW9uX2dldF9m
ZWF0dXJlKHNlc3Npb24sIFNPVVBfVFlQRV9SRVFVRVNURVIpKTsKLSAgICBSZXNvdXJjZUhhbmRs
ZUludGVybmFsKiBkID0gaGFuZGxlLT5nZXRJbnRlcm5hbCgpOwogCiAgICAgQ1N0cmluZyB1cmxT
dHIgPSB1cmwuc3RyaW5nKCkudXRmOCgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Vm
bC9DTWFrZUxpc3RzRWZsLnR4dCBiL1NvdXJjZS9XZWJLaXQvZWZsL0NNYWtlTGlzdHNFZmwudHh0
CmluZGV4IGVjMGM3ZDg5NDBkYjdiOWU3ZTdkNmViMmI3Y2NkMGVkMGNlMGNhMjAuLmZmNDZmZDAw
M2EzNzNhYjdmZTViM2QzOGE4ZDE1NWI0ZGY4MTc3Y2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvZWZsL0NNYWtlTGlzdHNFZmwudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL0NNYWtlTGlz
dHNFZmwudHh0CkBAIC03MSw2ICs3MSw3IEBAIExJU1QoQVBQRU5EIFdlYktpdF9TT1VSQ0VTCiAg
ICAgZWZsL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbC5jcHAKICAgICBl
ZmwvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50RWZsLmNwcAogICAgIGVmbC9XZWJDb3JlU3Vw
cG9ydC9GcmFtZUxvYWRlckNsaWVudEVmbC5jcHAKKyAgICBlZmwvV2ViQ29yZVN1cHBvcnQvRnJh
bWVOZXR3b3JraW5nQ29udGV4dEVmbC5jcHAKICAgICBlZmwvV2ViQ29yZVN1cHBvcnQvRnVsbHNj
cmVlblZpZGVvQ29udHJvbGxlckVmbC5jcHAKICAgICBlZmwvV2ViQ29yZVN1cHBvcnQvSWNvbkRh
dGFiYXNlQ2xpZW50RWZsLmNwcAogICAgIGVmbC9XZWJDb3JlU3VwcG9ydC9JbnNwZWN0b3JDbGll
bnRFZmwuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9G
cmFtZUxvYWRlckNsaWVudEVmbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9y
dC9GcmFtZUxvYWRlckNsaWVudEVmbC5jcHAKaW5kZXggMWQ0ZDY0YTlmNzRiZTRiZTg1MjJmNTkw
MWVlYWU0MmEyZGRlZmI4OC4uZGExYzM3YTFmNmJlOTE0YmQ3YjE4ZTE3MmEwYjU1OTA4NDZhOGYy
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2Fk
ZXJDbGllbnRFZmwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0Zy
YW1lTG9hZGVyQ2xpZW50RWZsLmNwcApAQCAtOTUxLDcgKzk1MSw3IEBAIHZvaWQgRnJhbWVMb2Fk
ZXJDbGllbnRFZmw6OmRpc3BhdGNoRGlkQmVjb21lRnJhbWVzZXQoYm9vbCkKIAogUGFzc1JlZlB0
cjxGcmFtZU5ldHdvcmtpbmdDb250ZXh0PiBGcmFtZUxvYWRlckNsaWVudEVmbDo6Y3JlYXRlTmV0
d29ya2luZ0NvbnRleHQoKQogewotICAgIHJldHVybiBGcmFtZU5ldHdvcmtpbmdDb250ZXh0RWZs
OjpjcmVhdGUoRVdLUHJpdmF0ZTo6Y29yZUZyYW1lKG1fZnJhbWUpKTsKKyAgICByZXR1cm4gRnJh
bWVOZXR3b3JraW5nQ29udGV4dEVmbDo6Y3JlYXRlKEVXS1ByaXZhdGU6OmNvcmVGcmFtZShtX2Zy
YW1lKSwgbV9mcmFtZSk7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL1dl
YkNvcmVTdXBwb3J0L0ZyYW1lTmV0d29ya2luZ0NvbnRleHRFZmwuY3BwIGIvU291cmNlL1dlYktp
dC9lZmwvV2ViQ29yZVN1cHBvcnQvRnJhbWVOZXR3b3JraW5nQ29udGV4dEVmbC5jcHAKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNTYyZGVmZjgzNGIwY2NhMjk0OTliNzY1YzVhMzM0OTlhYTk0YzZmYwotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTmV0d29ya2lu
Z0NvbnRleHRFZmwuY3BwCkBAIC0wLDAgKzEsNTkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTAgU2Ftc3VuZyBFbGVjdHJvbmljcworICogQ29weXJpZ2h0IChDKSAyMDEy
IFByb0ZVU0lPTiBlbWJlZGRlZCBzeXN0ZW1zCisgKgorICogQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBV
VEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVU
RVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
CisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRnJhbWVOZXR3b3JraW5nQ29u
dGV4dEVmbC5oIgorCisjaW5jbHVkZSAiUmVzb3VyY2VIYW5kbGUuaCIKKyNpbmNsdWRlICJld2tf
ZnJhbWUuaCIKKyNpbmNsdWRlICJld2tfdmlldy5oIgorCisjaW5jbHVkZSA8RXZhcy5oPgorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK1Bhc3NSZWZQdHI8RnJhbWVOZXR3b3JraW5nQ29udGV4dEVm
bD4gRnJhbWVOZXR3b3JraW5nQ29udGV4dEVmbDo6Y3JlYXRlKEZyYW1lKiBmcmFtZSwgRXZhc19P
YmplY3QqIGV3a0ZyYW1lKQoreworICAgIHJldHVybiBhZG9wdFJlZihuZXcgRnJhbWVOZXR3b3Jr
aW5nQ29udGV4dEVmbChmcmFtZSwgZXdrRnJhbWUpKTsKK30KKworRnJhbWVOZXR3b3JraW5nQ29u
dGV4dEVmbDo6RnJhbWVOZXR3b3JraW5nQ29udGV4dEVmbChGcmFtZSogZnJhbWUsIEV2YXNfT2Jq
ZWN0KiBld2tGcmFtZSkKKyAgICA6IEZyYW1lTmV0d29ya2luZ0NvbnRleHQoZnJhbWUpCisgICAg
LCBtX2V3a0ZyYW1lKGV3a0ZyYW1lKQoreworfQorCisjaWYgVVNFKFNPVVApCitTb3VwU2Vzc2lv
biogRnJhbWVOZXR3b3JraW5nQ29udGV4dEVmbDo6c291cFNlc3Npb24oKSBjb25zdAoreworICAg
IHJldHVybiBld2tfdmlld19zb3VwX3Nlc3Npb25fZ2V0KGV3a19mcmFtZV92aWV3X2dldChtX2V3
a0ZyYW1lKSk7Cit9CisjZW5kaWYKKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwv
V2ViQ29yZVN1cHBvcnQvRnJhbWVOZXR3b3JraW5nQ29udGV4dEVmbC5oIGIvU291cmNlL1dlYktp
dC9lZmwvV2ViQ29yZVN1cHBvcnQvRnJhbWVOZXR3b3JraW5nQ29udGV4dEVmbC5oCmluZGV4IDRl
Njc1MTJkMDk0YzI4ZGZkNTE1YmVlOTk3MzYxNzdmZDk1YzZjYWYuLmIxMWJlNTE2NjU2MWQ5NGJl
ZWVkMzI4NWQyZGJiZmE2YjE0MDhmYjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL1dl
YkNvcmVTdXBwb3J0L0ZyYW1lTmV0d29ya2luZ0NvbnRleHRFZmwuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9GcmFtZU5ldHdvcmtpbmdDb250ZXh0RWZsLmgKQEAgLTMx
LDIyICszMSwyNCBAQAogCiAjaW5jbHVkZSAiRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oIgogCit0
eXBlZGVmIHN0cnVjdCBfRXZhc19PYmplY3QgRXZhc19PYmplY3Q7CisKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAogY2xhc3MgRnJhbWVOZXR3b3JraW5nQ29udGV4dEVmbCA6IHB1YmxpYyBXZWJDb3Jl
OjpGcmFtZU5ldHdvcmtpbmdDb250ZXh0IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0
cjxGcmFtZU5ldHdvcmtpbmdDb250ZXh0RWZsPiBjcmVhdGUoV2ViQ29yZTo6RnJhbWUqIGZyYW1l
KQotICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBGcmFtZU5ldHdvcmtpbmdDb250
ZXh0RWZsKGZyYW1lKSk7Ci0gICAgfQorICAgIHN0YXRpYyBQYXNzUmVmUHRyPEZyYW1lTmV0d29y
a2luZ0NvbnRleHRFZmw+IGNyZWF0ZShGcmFtZSosIEV2YXNfT2JqZWN0Kik7CiAKICAgICBXZWJD
b3JlOjpGcmFtZSogY29yZUZyYW1lKCkgY29uc3QgeyByZXR1cm4gZnJhbWUoKTsgfQogCisjaWYg
VVNFKFNPVVApCisgICAgdmlydHVhbCBTb3VwU2Vzc2lvbiogc291cFNlc3Npb24oKSBjb25zdDsK
KyNlbmRpZgorCiBwcml2YXRlOgotICAgIEZyYW1lTmV0d29ya2luZ0NvbnRleHRFZmwoV2ViQ29y
ZTo6RnJhbWUqIGZyYW1lKQotICAgICAgICA6IFdlYkNvcmU6OkZyYW1lTmV0d29ya2luZ0NvbnRl
eHQoZnJhbWUpCi0gICAgewotICAgIH0KKyAgICBGcmFtZU5ldHdvcmtpbmdDb250ZXh0RWZsKEZy
YW1lKiwgRXZhc19PYmplY3QqKTsKKworICAgIEV2YXNfT2JqZWN0KiBtX2V3a0ZyYW1lOwogfTsK
IAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19jb29raWVzLmggYi9T
b3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2Nvb2tpZXMuaAppbmRleCBhY2QxNTU5NmYzYzMyOWY3
ZGUwY2VlNDQyNjcxYTM1YWI1NDU1NmZhLi5mM2M4NmQzNTQ1NjU5ODJlOTVjZjNjMjUzNTllZGEw
MzM3NGY2MTQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2Nvb2tpZXMu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2Nvb2tpZXMuaApAQCAtMjEsNiArMjEs
MTIgQEAKIC8qKgogICogQGZpbGUgICAgZXdrX2Nvb2tpZXMuaAogICogQGJyaWVmICAgVGhlIEV3
ayBjb29raWVzIEFQSS4KKyAqCisgKiBAbm90ZSBJZiB0aGUgbGlic291cCBuZXR3b3JrIGJhY2tl
bmQgaXMgYmVpbmcgdXNlZCB0aGUgZnVuY3Rpb25zIGhlcmUgd2lsbAorICogb25seSB3b3JrIHdp
dGggdGhlIEBiIGRlZmF1bHQgU291cFNlc3Npb24sIHdoaWNoIGNhbiBiZSByZXRyaWV2ZWQgd2l0
aAorICogZXdrX25ldHdvcmtfZGVmYXVsX3NvdXBfc2Vzc2lvbl9nZXQoKS4gSWYgYSBkaWZmZXJl
bnQgU291cFNlc3Npb24gaXMgdXNlZAorICogYW5kIGFzc29jaWF0ZWQgd2l0aCBhIHZpZXcgd2l0
aCBld2tfdmlld19zb3VwX3Nlc3Npb25fc2V0KCksIGFsbCBjb29raWUKKyAqIG1hbmFnZW1lbnQg
d2lsbCBoYXZlIHRvIGJlIGRvbmUgbWFudWFsbHkuCiAgKi8KIAogI2lmbmRlZiBld2tfY29va2ll
c19oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX25ldHdvcmsuaCBiL1Nv
dXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfbmV0d29yay5oCmluZGV4IDYxMmMyZjdjZTMxNWFkZjM0
OGU2OWVlMjc1YWRjZTNlYTM0ZWRiYjEuLmM3OGNkYzIwODQwODI0MTg5MzRlODUyMWUwNWFmY2Nl
ZjkxMTg2MTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfbmV0d29yay5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfbmV0d29yay5oCkBAIC0zNyw2ICszNywx
MSBAQCB0eXBlZGVmIHN0cnVjdCBfU291cFNlc3Npb24gU291cFNlc3Npb247CiAgKiBTZXRzIHRo
ZSBnaXZlbiBwcm94eSBVUkkgdG8gbmV0d29yayBiYWNrZW5kLgogICoKICAqIEBwYXJhbSBwcm94
eSBVUkkgdG8gc2V0CisgKgorICogQG5vdGUgSWYgdGhlIGxpYnNvdXAgYmFja2VuZCBpcyBiZWlu
ZyB1c2VkLCB0aGlzIGZ1bmN0aW9uIGhhcyBlZmZlY3Qgb24KKyAqIHRoZSBAYiBkZWZhdWx0IFNv
dXBTZXNzaW9uLCByZXR1cm5lZCBieSBld2tfbmV0d29ya19kZWZhdWx0X3NvdXBfc2Vzc2lvbl9n
ZXQoKS4KKyAqIElmIGEgZGlmZmVyZW50IFNvdXBTZXNzaW9uIGlzIHVzZWQgYW5kIHBhc3NlZCB0
byBld2tfdmlld19zb3VwX3Nlc3Npb25fc2V0KCksCisgKiB0aGlzIGZ1bmN0aW9uIHdpbGwgbm90
IGhhdmUgYW55IGVmZmVjdCBvbiBpdC4KICAqLwogRUFQSSB2b2lkICAgICAgICAgICAgIGV3a19u
ZXR3b3JrX3Byb3h5X3VyaV9zZXQoY29uc3QgY2hhciAqcHJveHkpOwogCkBAIC00Niw2ICs1MSwx
MSBAQCBFQVBJIHZvaWQgICAgICAgICAgICAgZXdrX25ldHdvcmtfcHJveHlfdXJpX3NldChjb25z
dCBjaGFyICpwcm94eSk7CiAgKiBUaGUgcmV0dXJuZWQgc3RyaW5nIHNob3VsZCBiZSBmcmVlZCBi
eSBlaW5hX3N0cmluZ3NoYXJlX2RlbCgpIGFmdGVyIHVzZS4KICAqCiAgKiBAcmV0dXJuIGN1cnJl
bnQgcHJveHkgVVJJIG9yIEBjIDAgaWYgaXQncyBub3Qgc2V0CisgKgorICogQG5vdGUgSWYgdGhl
IGxpYnNvdXAgYmFja2VuZCBpcyBiZWluZyB1c2VkLCB0aGlzIGZ1bmN0aW9uIGhhcyBlZmZlY3Qg
b24KKyAqIHRoZSBAYiBkZWZhdWx0IFNvdXBTZXNzaW9uLCByZXR1cm5lZCBieSBld2tfbmV0d29y
a19kZWZhdWx0X3NvdXBfc2Vzc2lvbl9nZXQoKS4KKyAqIElmIGEgZGlmZmVyZW50IFNvdXBTZXNz
aW9uIGlzIHVzZWQgYW5kIHBhc3NlZCB0byBld2tfdmlld19zb3VwX3Nlc3Npb25fc2V0KCksCisg
KiB0aGlzIGZ1bmN0aW9uIHdpbGwgbm90IGhhdmUgYW55IGVmZmVjdCBvbiBpdC4KICAqLwogRUFQ
SSBjb25zdCBjaGFyICAgICAgKmV3a19uZXR3b3JrX3Byb3h5X3VyaV9nZXQodm9pZCk7CiAKQEAg
LTYyLDYgKzcyLDExIEBAIEVBUEkgdm9pZCAgICAgICAgICAgICBld2tfbmV0d29ya19zdGF0ZV9u
b3RpZmllcl9vbmxpbmVfc2V0KEVpbmFfQm9vbCBvbmxpbmUpOwogICogQnkgZGVmYXVsdCwgSFRU
UFMgY29ubmVjdGlvbnMgYXJlIHBlcmZvcm1lZCByZWdhcmRsZXNzIG9mIHRoZSB2YWxpZGl0eSBv
ZiB0aGUgY2VydGlmaWNhdGUgcHJvdmlkZWQuCiAgKgogICogQHNhIGV3a19uZXR3b3JrX3Rsc19j
YV9jZXJ0aWZpY2F0ZXNfcGF0aF9zZXQKKyAqCisgKiBAbm90ZSBJZiB0aGUgbGlic291cCBiYWNr
ZW5kIGlzIGJlaW5nIHVzZWQsIHRoaXMgZnVuY3Rpb24gaGFzIGVmZmVjdCBvbgorICogdGhlIEBi
IGRlZmF1bHQgU291cFNlc3Npb24sIHJldHVybmVkIGJ5IGV3a19uZXR3b3JrX2RlZmF1bHRfc291
cF9zZXNzaW9uX2dldCgpLgorICogSWYgYSBkaWZmZXJlbnQgU291cFNlc3Npb24gaXMgdXNlZCBh
bmQgcGFzc2VkIHRvIGV3a192aWV3X3NvdXBfc2Vzc2lvbl9zZXQoKSwKKyAqIHRoaXMgZnVuY3Rp
b24gd2lsbCBub3QgaGF2ZSBhbnkgZWZmZWN0IG9uIGl0LgogICovCiBFQVBJIEVpbmFfQm9vbCAg
ICAgICAgZXdrX25ldHdvcmtfdGxzX2NlcnRpZmljYXRlX2NoZWNrX2dldCh2b2lkKTsKIApAQCAt
NzMsNiArODgsMTEgQEAgRUFQSSBFaW5hX0Jvb2wgICAgICAgIGV3a19uZXR3b3JrX3Rsc19jZXJ0
aWZpY2F0ZV9jaGVja19nZXQodm9pZCk7CiAgKiBAcGFyYW0gZW5hYmxlIFdoZXRoZXIgdG8gY2hl
Y2sgdGhlIHByb3ZpZGVkIGNlcnRpZmljYXRlcyBvciBub3QuCiAgKgogICogQHNhIGV3a19uZXR3
b3JrX3Rsc19jYV9jZXJ0aWZpY2F0ZXNfcGF0aF9zZXQKKyAqCisgKiBAbm90ZSBJZiB0aGUgbGli
c291cCBiYWNrZW5kIGlzIGJlaW5nIHVzZWQsIHRoaXMgZnVuY3Rpb24gaGFzIGVmZmVjdCBvbgor
ICogdGhlIEBiIGRlZmF1bHQgU291cFNlc3Npb24sIHJldHVybmVkIGJ5IGV3a19uZXR3b3JrX2Rl
ZmF1bHRfc291cF9zZXNzaW9uX2dldCgpLgorICogSWYgYSBkaWZmZXJlbnQgU291cFNlc3Npb24g
aXMgdXNlZCBhbmQgcGFzc2VkIHRvIGV3a192aWV3X3NvdXBfc2Vzc2lvbl9zZXQoKSwKKyAqIHRo
aXMgZnVuY3Rpb24gd2lsbCBub3QgaGF2ZSBhbnkgZWZmZWN0IG9uIGl0LgogICovCiBFQVBJIHZv
aWQgICAgICAgICAgICAgZXdrX25ldHdvcmtfdGxzX2NlcnRpZmljYXRlX2NoZWNrX3NldChFaW5h
X0Jvb2wgZW5hYmxlKTsKIApAQCAtODksNiArMTA5LDExIEBAIEVBUEkgdm9pZCAgICAgICAgICAg
ICBld2tfbmV0d29ya190bHNfY2VydGlmaWNhdGVfY2hlY2tfc2V0KEVpbmFfQm9vbCBlbmFibGUp
OwogICogQnkgZGVmYXVsdCwgdGhlIHBhdGggaXMgbm90IHNldCwgc28gYWxsIGNlcnRpZmljYXRl
cyBhcmUgY29uc2lkZXJlZCBhcyBub3Qgc2lnbmVkIGJ5IGEgdHJ1c3RlZCByb290IENBLgogICoK
ICAqIEBzYSBld2tfbmV0d29ya190bHNfY2VydGlmaWNhdGVfY2hlY2tfc2V0CisgKgorICogQG5v
dGUgSWYgdGhlIGxpYnNvdXAgYmFja2VuZCBpcyBiZWluZyB1c2VkLCB0aGlzIGZ1bmN0aW9uIGhh
cyBlZmZlY3Qgb24KKyAqIHRoZSBAYiBkZWZhdWx0IFNvdXBTZXNzaW9uLCByZXR1cm5lZCBieSBl
d2tfbmV0d29ya19kZWZhdWx0X3NvdXBfc2Vzc2lvbl9nZXQoKS4KKyAqIElmIGEgZGlmZmVyZW50
IFNvdXBTZXNzaW9uIGlzIHVzZWQgYW5kIHBhc3NlZCB0byBld2tfdmlld19zb3VwX3Nlc3Npb25f
c2V0KCksCisgKiB0aGlzIGZ1bmN0aW9uIHdpbGwgbm90IGhhdmUgYW55IGVmZmVjdCBvbiBpdC4K
ICAqLwogRUFQSSBjb25zdCBjaGFyICAgICAgKmV3a19uZXR3b3JrX3Rsc19jYV9jZXJ0aWZpY2F0
ZXNfcGF0aF9nZXQodm9pZCk7CiAKQEAgLTEwNyw2ICsxMzIsMTEgQEAgRUFQSSBjb25zdCBjaGFy
ICAgICAgKmV3a19uZXR3b3JrX3Rsc19jYV9jZXJ0aWZpY2F0ZXNfcGF0aF9nZXQodm9pZCk7CiAg
KiBAcGFyYW0gcGF0aCBUaGUgcGF0aCB0byB0aGUgY2VydGlmaWNhdGUgYnVuZGxlLgogICoKICAq
IEBzYSBld2tfbmV0d29ya190bHNfY2VydGlmaWNhdGVfY2hlY2tfc2V0CisgKgorICogQG5vdGUg
SWYgdGhlIGxpYnNvdXAgYmFja2VuZCBpcyBiZWluZyB1c2VkLCB0aGlzIGZ1bmN0aW9uIGhhcyBl
ZmZlY3Qgb24KKyAqIHRoZSBAYiBkZWZhdWx0IFNvdXBTZXNzaW9uLCByZXR1cm5lZCBieSBld2tf
bmV0d29ya19kZWZhdWx0X3NvdXBfc2Vzc2lvbl9nZXQoKS4KKyAqIElmIGEgZGlmZmVyZW50IFNv
dXBTZXNzaW9uIGlzIHVzZWQgYW5kIHBhc3NlZCB0byBld2tfdmlld19zb3VwX3Nlc3Npb25fc2V0
KCksCisgKiB0aGlzIGZ1bmN0aW9uIHdpbGwgbm90IGhhdmUgYW55IGVmZmVjdCBvbiBpdC4KICAq
LwogRUFQSSB2b2lkICAgICAgICAgICAgIGV3a19uZXR3b3JrX3Rsc19jYV9jZXJ0aWZpY2F0ZXNf
cGF0aF9zZXQoY29uc3QgY2hhciAqcGF0aCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
ZWZsL2V3ay9ld2tfdmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuY3Bw
CmluZGV4IGE2OGJiYWJiZThkOTNkN2RjOGU3MGQ3OTFjNjUwNzY0YmExMTNkYzkuLmQyMWJkOGRh
YThiZTBkNmY0MTQ3MGRkZWI1Y2YxNDNmM2FlNTFlZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvZWZsL2V3ay9ld2tfdmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192
aWV3LmNwcApAQCAtNTAsNiArNTAsNyBAQAogI2luY2x1ZGUgIlByb2dyZXNzVHJhY2tlci5oIgog
I2luY2x1ZGUgIlJlZlB0ckNhaXJvLmgiCiAjaW5jbHVkZSAiUmVuZGVyVGhlbWUuaCIKKyNpbmNs
dWRlICJSZXNvdXJjZUhhbmRsZS5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVkZSAi
Y19pbnN0YW5jZS5oIgogI2luY2x1ZGUgImV3a19sb2dnaW5nLmgiCkBAIC02OCw2ICs2OSwxMCBA
QAogI2luY2x1ZGUgIkRldmljZU9yaWVudGF0aW9uQ2xpZW50RWZsLmgiCiAjZW5kaWYKIAorI2lm
IFVTRShTT1VQKQorI2luY2x1ZGUgPGxpYnNvdXAvc291cC5oPgorI2VuZGlmCisKIHN0YXRpYyBj
b25zdCBmbG9hdCB6b29tTWluaW11bSA9IDAuMDU7CiBzdGF0aWMgY29uc3QgZmxvYXQgem9vbU1h
eGltdW0gPSA0LjA7CiAKQEAgLTIxMSw2ICsyMTYsOSBAQCBzdHJ1Y3QgX0V3a19WaWV3X1ByaXZh
dGVfRGF0YSB7CiAgICAgICAgIH0gY2VudGVyOwogICAgICAgICBFY29yZV9BbmltYXRvciogYW5p
bWF0b3I7CiAgICAgfSBhbmltYXRlZFpvb207CisjaWYgVVNFKFNPVVApCisgICAgU291cFNlc3Np
b24qIHNvdXBTZXNzaW9uOworI2VuZGlmCiB9OwogCiAjaWZuZGVmIEVXS19UWVBFX0NIRUNLCkBA
IC03MTksNiArNzI3LDEwIEBAIHN0YXRpYyBFd2tfVmlld19Qcml2YXRlX0RhdGEqIF9ld2tfdmll
d19wcml2X25ldyhFd2tfVmlld19TbWFydF9EYXRhKiBzbWFydERhdGEpCiAgICAgICAgIGdvdG8g
ZXJyb3JfaGlzdG9yeTsKICAgICB9CiAKKyNpZiBVU0UoU09VUCkKKyAgICBwcml2LT5zb3VwU2Vz
c2lvbiA9IFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpkZWZhdWx0U2Vzc2lvbigpOworI2VuZGlm
CisKICAgICByZXR1cm4gcHJpdjsKIAogZXJyb3JfaGlzdG9yeToKQEAgLTM5MTgsNiArMzkzMCwz
MSBAQCBFd2tfUGFnZV9WaXNpYmlsaXR5X1N0YXRlIGV3a192aWV3X3Zpc2liaWxpdHlfc3RhdGVf
Z2V0KGNvbnN0IEV2YXNfT2JqZWN0KiBld2tWaQogI2VuZGlmCiB9CiAKK1NvdXBTZXNzaW9uKiBl
d2tfdmlld19zb3VwX3Nlc3Npb25fZ2V0KGNvbnN0IEV2YXNfT2JqZWN0KiBld2tWaWV3KQorewor
I2lmIFVTRShTT1VQKQorICAgIEVXS19WSUVXX1NEX0dFVF9PUl9SRVRVUk4oZXdrVmlldywgc21h
cnREYXRhLCAwKTsKKyAgICBFV0tfVklFV19QUklWX0dFVF9PUl9SRVRVUk4oc21hcnREYXRhLCBw
cml2LCAwKTsKKyAgICByZXR1cm4gcHJpdi0+c291cFNlc3Npb247CisjZWxzZQorICAgIHJldHVy
biAwOworI2VuZGlmCit9CisKK3ZvaWQgZXdrX3ZpZXdfc291cF9zZXNzaW9uX3NldChFdmFzX09i
amVjdCogZXdrVmlldywgU291cFNlc3Npb24qIHNlc3Npb24pCit7CisjaWYgVVNFKFNPVVApCisg
ICAgRVdLX1ZJRVdfU0RfR0VUX09SX1JFVFVSTihld2tWaWV3LCBzbWFydERhdGEpOworICAgIEVX
S19WSUVXX1BSSVZfR0VUX09SX1JFVFVSTihzbWFydERhdGEsIHByaXYpOworICAgIGlmICghU09V
UF9JU19TRVNTSU9OX0FTWU5DKHNlc3Npb24pKSB7CisgICAgICAgIEVSUigiV2ViS2l0IHJlcXVp
cmVzIGFuIFNvdXBTZXNzaW9uQXN5bmMgdG8gd29yayBwcm9wZXJseSwgYnV0ICIKKyAgICAgICAg
ICAgICJhIFNvdXBTZXNzaW9uU3luYyB3YXMgcHJvdmlkZWQuIik7CisgICAgICAgIHJldHVybjsK
KyAgICB9CisgICAgcHJpdi0+c291cFNlc3Npb24gPSBzZXNzaW9uOworI2VuZGlmCit9CisKIG5h
bWVzcGFjZSBFV0tQcml2YXRlIHsKIAogV2ViQ29yZTo6UGFnZSAqY29yZVBhZ2UoY29uc3QgRXZh
c19PYmplY3QgKmV3a1ZpZXcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdr
X3ZpZXcuaCBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5oCmluZGV4IGE0MzM1Mzc0
ZjQ4Y2Q1YWU2NTNmY2Y0Yjk4Mjg1OWI1Nzk3N2ZmZWMuLjU4YmNjNmU2MjZiMjUxNWEyM2Y1ZDNh
MjRlNTQwMGRjYTUzZDkwZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tf
dmlldy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5oCkBAIC0xMDAsNiAr
MTAwLDggQEAKIGV4dGVybiAiQyIgewogI2VuZGlmCiAKK3R5cGVkZWYgc3RydWN0IF9Tb3VwU2Vz
c2lvbiBTb3VwU2Vzc2lvbjsKKwogLy8vIENyZWF0ZXMgYSB0eXBlIG5hbWUgZm9yIEBhIF9Fd2tf
Vmlld19TbWFydF9EYXRhLgogdHlwZWRlZiBzdHJ1Y3QgX0V3a19WaWV3X1NtYXJ0X0RhdGEgRXdr
X1ZpZXdfU21hcnRfRGF0YTsKIApAQCAtMjMzNSw2ICsyMzM3LDQwIEBAIEVBUEkgRWluYV9Cb29s
IGV3a192aWV3X21peGVkX2NvbnRlbnRfZGlzcGxheWVkX2dldChjb25zdCBFdmFzX09iamVjdCAq
byk7CiAgKi8KIEVBUEkgRWluYV9Cb29sIGV3a192aWV3X21peGVkX2NvbnRlbnRfcnVuX2dldChj
b25zdCBFdmFzX09iamVjdCAqbyk7CiAKKy8qKgorICogUmV0dXJucyB0aGUgU291cFNlc3Npb24g
YXNzb2NpYXRlZCB3aXRoIHRoaXMgdmlldy4KKyAqCisgKiBCeSBkZWZhdWx0LCBhbGwgdmlld3Mg
c2hhcmUgdGhlIHNhbWUsIGRlZmF1bHQgc291cCBzZXNzaW9uIGFsc28gYXZhaWxhYmxlCisgKiBi
eSBjYWxsaW5nIGV3a19uZXR3b3JrX2RlZmF1bHRfc291cF9zZXNzaW9uX2dldC4KKyAqCisgKiBA
bm90ZSBUaGlzIGZ1bmN0aW9uIG9ubHkgaGFzIGFuIGVmZmVjdCBpZiB0aGUgbGlic291cCBuZXR3
b3JrIGJhY2tlbmQKKyAqICAgICAgIGlzIHVzZWQuCisgKgorICogQHBhcmFtIG8gVGhlIHZpZXcg
dG8gcXVlcnkuCisgKgorICogQHNhIGV3a192aWV3X3NvdXBfc2Vzc2lvbl9zZXQsIGV3a19uZXR3
b3JrX2RlZmF1bHRfc291cF9zZXNzaW9uX2dldAorICovCitFQVBJIFNvdXBTZXNzaW9uKiBld2tf
dmlld19zb3VwX3Nlc3Npb25fZ2V0KGNvbnN0IEV2YXNfT2JqZWN0ICpvKTsKKworLyoqCisgKiBB
c3NvY2lhdGVzIGEgbmV3IFNvdXBTZXNzaW9uIHdpdGggdGhpcyB2aWV3LgorICoKKyAqIE9ubHkg
c2Vzc2lvbnMgb2YgdHlwZSBTb3VwU2Vzc2lvbkFzeW5jIGFyZSBzdXBwb3J0ZWQuCisgKgorICog
QG5vdGUgVGhpcyBmdW5jdGlvbiBvbmx5IGhhcyBhbiBlZmZlY3QgaWYgdGhlIGxpYnNvdXAgbmV0
d29yayBiYWNrZW5kCisgKiAgICAgICBpcyB1c2VkLgorICoKKyAqIEBub3RlIENoYW5naW5nIHRo
ZSBTb3VwU2Vzc2lvbiBzaG91bGQgbm90IGJlIG5lZWRlZCBpbiBtb3N0IGNhc2VzLiBJZgorICog
ICAgICAgYSBkaWZmZXJlbnQgU291cFNlc3Npb24gaXMgdXNlZCwgdGhlIGNvb2tpZSBtYW5hZ2Vt
ZW50IGFuZCBzb21lCisgKiAgICAgICBuZXR3b3JrIGZ1bmN0aW9ucyBpbiBld2sgd2lsbCBub3Qg
aGF2ZSBhbnkgZWZmZWN0IG9uIGl0LgorICoKKyAqIEBwYXJhbSBvIFRoZSB2aWV3IHRvIGNoYW5n
ZS4KKyAqIEBwYXJhbSBzZXNzaW9uIFRoZSBuZXcgU291cFNlc3Npb24uCisgKgorICogQHNhIGV3
a192aWV3X3NvdXBfc2Vzc2lvbl9nZXQsIGV3a19uZXR3b3JrX2RlZmF1bHRfc291cF9zZXNzaW9u
X2dldAorICovCitFQVBJIHZvaWQgZXdrX3ZpZXdfc291cF9zZXNzaW9uX3NldChFdmFzX09iamVj
dCAqbywgU291cFNlc3Npb24gKnNlc3Npb24pOworCiAjaWZkZWYgX19jcGx1c3BsdXMKIH0KICNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsvR05VbWFrZWZpbGUuYW0gYi9Tb3Vy
Y2UvV2ViS2l0L2d0ay9HTlVtYWtlZmlsZS5hbQppbmRleCA1NzY4ZGI3ZDE4YzU0ZGFhMTk3NWVm
YjNmMDFjMjY3ZTAwMTljMzQwLi45Y2ZmZjljZjIzOGI0MGQ3MTkyZDJjMzhiOTU1YTFiZGE4ZmI5
N2U0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9HTlVtYWtlZmlsZS5hbQorKysgYi9T
b3VyY2UvV2ViS2l0L2d0ay9HTlVtYWtlZmlsZS5hbQpAQCAtMjA1LDYgKzIwNSw3IEBAIHdlYmtp
dGd0a19zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9FZGl0
b3JDbGllbnRHdGsuaCBcCiAJU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRnJhbWVM
b2FkZXJDbGllbnRHdGsuY3BwIFwKIAlTb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9G
cmFtZUxvYWRlckNsaWVudEd0ay5oIFwKKwlTb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9y
dC9GcmFtZU5ldHdvcmtpbmdDb250ZXh0R3RrLmNwcCBcCiAJU291cmNlL1dlYktpdC9ndGsvV2Vi
Q29yZVN1cHBvcnQvRnJhbWVOZXR3b3JraW5nQ29udGV4dEd0ay5oIFwKIAlTb3VyY2UvV2ViS2l0
L2d0ay9XZWJDb3JlU3VwcG9ydC9GdWxsc2NyZWVuVmlkZW9Db250cm9sbGVyLmNwcCBcCiAJU291
cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRnVsbHNjcmVlblZpZGVvQ29udHJvbGxlci5o
IFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9h
ZGVyQ2xpZW50R3RrLmNwcCBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0ZyYW1l
TG9hZGVyQ2xpZW50R3RrLmNwcAppbmRleCBkOTA3YjJiY2Y2NzIxNmUwYmZkNjNmYmNkNmE2YjBk
MWUzZGM3N2RlLi5hMTNiMWZiYTVjYjU0ODA2Mjg1MmI3Y2ExNDQ1MmNjZTJiYmNmN2NiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVu
dEd0ay5jcHAKKysrIGIvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2Fk
ZXJDbGllbnRHdGsuY3BwCkBAIC0xMjczLDcgKzEyNzMsNyBAQCB2b2lkIEZyYW1lTG9hZGVyQ2xp
ZW50OjpkaXNwYXRjaERpZEJlY29tZUZyYW1lc2V0KGJvb2wpCiAKIFBhc3NSZWZQdHI8RnJhbWVO
ZXR3b3JraW5nQ29udGV4dD4gRnJhbWVMb2FkZXJDbGllbnQ6OmNyZWF0ZU5ldHdvcmtpbmdDb250
ZXh0KCkKIHsKLSAgICByZXR1cm4gRnJhbWVOZXR3b3JraW5nQ29udGV4dEd0azo6Y3JlYXRlKGNv
cmUobV9mcmFtZSkpOworICAgIHJldHVybiBGcmFtZU5ldHdvcmtpbmdDb250ZXh0R3RrOjpjcmVh
dGUoY29yZShtX2ZyYW1lKSwgbV9mcmFtZSk7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTmV0d29ya2luZ0NvbnRleHRHdGsuY3BwIGIv
U291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRnJhbWVOZXR3b3JraW5nQ29udGV4dEd0
ay5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uZmZmZjdiODdhOWVjMThjZjU4ZDEwNDBlOWI4ZjNkNThkNWZlMjdm
YwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Zy
YW1lTmV0d29ya2luZ0NvbnRleHRHdGsuY3BwCkBAIC0wLDAgKzEsNDggQEAKKy8qCisgICAgQ29w
eXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgt
aWVzKQorICAgIENvcHlyaWdodCAoQykgMjAxMiBQcm9GVVNJT04gZW1iZWRkZWQgc3lzdGVtcwor
CisgICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRl
IGl0IGFuZC9vcgorICAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJy
YXJ5IEdlbmVyYWwgUHVibGljCisgICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUg
U29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgICAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNl
LCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorCisgICAgVGhpcyBsaWJy
YXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisg
ICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2Fy
cmFudHkgb2YKKyAgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
IFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICAgIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5z
ZSBmb3IgbW9yZSBkZXRhaWxzLgorCisgICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29w
eSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICAgIGFsb25nIHdp
dGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRl
IHRvCisgICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4g
U3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAgICBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyov
CisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJGcmFtZU5ldHdvcmtpbmdDb250ZXh0
R3RrLmgiCisKKyNpbmNsdWRlICJSZXNvdXJjZUhhbmRsZS5oIgorI2luY2x1ZGUgIndlYmtpdHdl
YmZyYW1lLmgiCisjaW5jbHVkZSAid2Via2l0d2Vidmlldy5oIgorCit1c2luZyBuYW1lc3BhY2Ug
V2ViQ29yZTsKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1Bhc3NSZWZQdHI8RnJhbWVOZXR3b3Jr
aW5nQ29udGV4dEd0az4gRnJhbWVOZXR3b3JraW5nQ29udGV4dEd0azo6Y3JlYXRlKEZyYW1lKiBm
cmFtZSwgV2ViS2l0V2ViRnJhbWUqKQoreworICAgIHJldHVybiBhZG9wdFJlZihuZXcgRnJhbWVO
ZXR3b3JraW5nQ29udGV4dEd0ayhmcmFtZSwgd2ViRnJhbWUpKTsKK30KKworRnJhbWVOZXR3b3Jr
aW5nQ29udGV4dEd0azo6RnJhbWVOZXR3b3JraW5nQ29udGV4dEd0ayhGcmFtZSogZnJhbWUsIFdl
YktpdFdlYkZyYW1lKikKKyAgICA6IEZyYW1lTmV0d29ya2luZ0NvbnRleHQoZnJhbWUpCisgICAg
LCBtX3dlYkZyYW1lKHdlYkZyYW1lKQoreworfQorCitTb3VwU2Vzc2lvbiogRnJhbWVOZXR3b3Jr
aW5nQ29udGV4dEd0azo6c291cFNlc3Npb24oKSBjb25zdAoreworICAgIHJldHVybiB3ZWJraXRf
d2ViX3ZpZXdfZ2V0X3Nlc3Npb24od2Via2l0X3dlYl9mcmFtZV9nZXRfd2ViX3ZpZXcobV93ZWJG
cmFtZSkpOworfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3Vw
cG9ydC9GcmFtZU5ldHdvcmtpbmdDb250ZXh0R3RrLmggYi9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJD
b3JlU3VwcG9ydC9GcmFtZU5ldHdvcmtpbmdDb250ZXh0R3RrLmgKaW5kZXggOGU0YzIxNDhkMjE2
YmJlNGM1ZWYwM2JkYTExZDQyMGIzNDZhNDI2Yy4uMGU5MjM5OWZlM2VlZDNiYjA2MWQyOWM1ZTQw
NDk2NzU5NGU1Y2FmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBv
cnQvRnJhbWVOZXR3b3JraW5nQ29udGV4dEd0ay5oCisrKyBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dl
YkNvcmVTdXBwb3J0L0ZyYW1lTmV0d29ya2luZ0NvbnRleHRHdGsuaApAQCAtMjIsMjIgKzIyLDIx
IEBACiAKICNpbmNsdWRlICJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmgiCiAKK3R5cGVkZWYgc3Ry
dWN0IF9XZWJLaXRXZWJGcmFtZSBXZWJLaXRXZWJGcmFtZTsKKwogbmFtZXNwYWNlIFdlYktpdCB7
CiAKIGNsYXNzIEZyYW1lTmV0d29ya2luZ0NvbnRleHRHdGsgOiBwdWJsaWMgV2ViQ29yZTo6RnJh
bWVOZXR3b3JraW5nQ29udGV4dCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8RnJh
bWVOZXR3b3JraW5nQ29udGV4dEd0az4gY3JlYXRlKFdlYkNvcmU6OkZyYW1lKiBmcmFtZSkKLSAg
ICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgRnJhbWVOZXR3b3JraW5nQ29udGV4dEd0
ayhmcmFtZSkpOwotICAgIH0KKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxGcmFtZU5ldHdvcmtpbmdD
b250ZXh0R3RrPiBjcmVhdGUoV2ViQ29yZTo6RnJhbWUqLCBXZWJLaXRXZWJGcmFtZSopOwogCiAg
ICAgV2ViQ29yZTo6RnJhbWUqIGNvcmVGcmFtZSgpIGNvbnN0IHsgcmV0dXJuIGZyYW1lKCk7IH0K
KyAgICB2aXJ0dWFsIFNvdXBTZXNzaW9uKiBzb3VwU2Vzc2lvbigpIGNvbnN0OwogCiBwcml2YXRl
OgotICAgIEZyYW1lTmV0d29ya2luZ0NvbnRleHRHdGsoV2ViQ29yZTo6RnJhbWUqIGZyYW1lKQot
ICAgICAgICA6IFdlYkNvcmU6OkZyYW1lTmV0d29ya2luZ0NvbnRleHQoZnJhbWUpCi0gICAgewot
ICAgIH0KKyAgICBGcmFtZU5ldHdvcmtpbmdDb250ZXh0R3RrKFdlYkNvcmU6OkZyYW1lKiwgV2Vi
S2l0V2ViRnJhbWUqKTsKKworICAgIFdlYktpdFdlYkZyYW1lKiBtX3dlYkZyYW1lOwogfTsKIAog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnZpZXcuY3Bw
IGIvU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwCmluZGV4IGFhNDMy
YzVkNDMwZjA1NDBlYjQxNTZmMjM2MWM3ZDUwNDU2ZDA3ZmEuLmY3ODcxODYwZjYyZjgxYjdjYTUy
YjI3YmEwMTM0M2Y2OGNhMTM0ZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtp
dC93ZWJraXR3ZWJ2aWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0
d2Vidmlldy5jcHAKQEAgLTEwOSw2ICsxMDksNyBAQAogI2luY2x1ZGUgIndlYmtpdHdlYnZpZXdw
cml2YXRlLmgiCiAjaW5jbHVkZSA8Z2RrL2dka2tleXN5bXMuaD4KICNpbmNsdWRlIDxnbGliL2dp
MThuLWxpYi5oPgorI2luY2x1ZGUgPGxpYnNvdXAvc291cC1zZXNzaW9uLmg+CiAjaW5jbHVkZSA8
d3RmL2dvYmplY3QvR093blB0ci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KIApA
QCAtMjQyLDYgKzI0Myw3IEBAIGVudW0gewogICAgIFBST1BfSFNDUk9MTF9QT0xJQ1ksCiAgICAg
UFJPUF9WU0NST0xMX1BPTElDWSwKICNlbmRpZgorICAgIFBST1BfU0VTU0lPTiwKIAogICAgIC8v
IFVuZG9jdW1lbnRlZC4gTGVhdmUgdGhlc2UgcHJvcGVydGllcyBhdCB0aGUgZW5kIG9mIHRoZSBs
aXN0CiAgICAgLy8gc28gdGhhdCB3ZSBjYW4gcmVtb3ZlIHRoZW0gd2l0aG91dCBicmVha2luZyBB
QkkgY29tcGF0aWJpbGl0eS4KQEAgLTU2NCw2ICs1NjYsOSBAQCBzdGF0aWMgdm9pZCB3ZWJraXRf
d2ViX3ZpZXdfZ2V0X3Byb3BlcnR5KEdPYmplY3QqIG9iamVjdCwgZ3VpbnQgcHJvcF9pZCwgR1Zh
bHVlKgogICAgICAgICBnX3ZhbHVlX3NldF9lbnVtKHZhbHVlLCBnZXRWZXJ0aWNhbFNjcm9sbFBv
bGljeSh3ZWJWaWV3KSk7CiAgICAgICAgIGJyZWFrOwogI2VuZGlmCisgICAgY2FzZSBQUk9QX1NF
U1NJT046CisgICAgICAgIGdfdmFsdWVfc2V0X29iamVjdCh2YWx1ZSwgd2Via2l0X3dlYl92aWV3
X2dldF9zZXNzaW9uKHdlYlZpZXcpKTsKKyAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBQUk9QX1NF
TEZfU0NST0xMSU5HOgogICAgICAgICBnX3ZhbHVlX3NldF9ib29sZWFuKHZhbHVlLCB3ZWJWaWV3
LT5wcml2LT5zZWxmU2Nyb2xsaW5nKTsKICAgICAgICAgYnJlYWs7CkBAIC02MTUsNiArNjIwLDkg
QEAgc3RhdGljIHZvaWQgd2Via2l0X3dlYl92aWV3X3NldF9wcm9wZXJ0eShHT2JqZWN0KiBvYmpl
Y3QsIGd1aW50IHByb3BfaWQsIGNvbnN0IEcKICAgICAgICAgc2V0VmVydGljYWxTY3JvbGxQb2xp
Y3kod2ViVmlldywgc3RhdGljX2Nhc3Q8R3RrU2Nyb2xsYWJsZVBvbGljeT4oZ192YWx1ZV9nZXRf
ZW51bSh2YWx1ZSkpKTsKICAgICAgICAgYnJlYWs7CiAjZW5kaWYKKyAgICBjYXNlIFBST1BfU0VT
U0lPTjoKKyAgICAgICAgd2Via2l0X3dlYl92aWV3X3NldF9zZXNzaW9uKHdlYlZpZXcsIFNPVVBf
U0VTU0lPTihnX3ZhbHVlX2dldF9vYmplY3QodmFsdWUpKSk7CisgICAgICAgIGJyZWFrOwogICAg
IGNhc2UgUFJPUF9TRUxGX1NDUk9MTElORzoKICAgICAgICAgd2ViVmlldy0+cHJpdi0+c2VsZlNj
cm9sbGluZyA9IGdfdmFsdWVfZ2V0X2Jvb2xlYW4odmFsdWUpOwogICAgICAgICBicmVhazsKQEAg
LTMwNDYsNiArMzA1NCwyMCBAQCBzdGF0aWMgdm9pZCB3ZWJraXRfd2ViX3ZpZXdfY2xhc3NfaW5p
dChXZWJLaXRXZWJWaWV3Q2xhc3MqIHdlYlZpZXdDbGFzcykKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdFQktJVF9XRUJfVklFV19WSUVXX01P
REVfV0lORE9XRUQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBXRUJLSVRfUEFSQU1fUkVBRFdSSVRFKSk7CiAKKyAgICAvKioKKyAgICAqIFdl
YktpdFdlYlZpZXc6c2Vzc2lvbjoKKyAgICAqCisgICAgKiBUaGUgI1NvdXBTZXNzaW9uIGFzc29j
aWF0ZWQgd2l0aCB0aGUgI1dlYktpdFdlYlZpZXcuCisgICAgKgorICAgICogU2luY2U6IDEuNy41
CisgICAgKi8KKyAgICBnX29iamVjdF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5KG9iamVjdENsYXNz
LCBQUk9QX1NFU1NJT04sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnX3Bh
cmFtX3NwZWNfb2JqZWN0KCJzZXNzaW9uIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIlNvdXBTZXNzaW9uIiwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlRoZSAjU291cFNlc3Np
b24gYXNzb2NpYXRlZCB3aXRoIHRoZSAjV2ViS2l0V2ViVmlldy4iLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTT1VQX1RZUEVfU0VTU0lP
TiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgV0VCS0lUX1BBUkFNX1JFQURXUklURSkpOworCiAgICAgLy8gVGhpcyBwcm9wZXJ0eSBzaG91
bGQgYmUgdW5kb2N1bWVudGVkIGZvciBub3cuIEl0J3Mgb25seSB1c2VkIGJ5IERSVC4KICAgICBn
X29iamVjdF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5KG9iamVjdENsYXNzLCBQUk9QX1NFTEZfU0NS
T0xMSU5HLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ19wYXJhbV9zcGVj
X2Jvb2xlYW4oInNlbGYtc2Nyb2xsaW5nIiwgIlNlbGYtc2Nyb2xsaW5nIiwKQEAgLTMzMzgsNiAr
MzM2MCw4IEBAIHN0YXRpYyB2b2lkIHdlYmtpdF93ZWJfdmlld19pbml0KFdlYktpdFdlYlZpZXcq
IHdlYlZpZXcpCiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIHByaXYtPmFj
Y2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0ID0gQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRl
eHQ6OmNyZWF0ZSh3ZWJWaWV3KTsKICNlbmRpZgorCisgICAgcHJpdi0+c2Vzc2lvbiA9IFJlc291
cmNlSGFuZGxlOjpkZWZhdWx0U2Vzc2lvbigpOwogfQogCiBHdGtXaWRnZXQqIHdlYmtpdF93ZWJf
dmlld19uZXcodm9pZCkKQEAgLTQ4NjgsNiArNDg5Miw1MCBAQCB3ZWJraXRfd2ViX3ZpZXdfZ2V0
X2RvbV9kb2N1bWVudChXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3KQogICAgIHJldHVybiBraXQoZG9j
KTsKIH0KIAorLyoqCisgKiB3ZWJraXRfd2ViX3ZpZXdfZ2V0X3Nlc3Npb246CisgKiBAd2ViX3Zp
ZXc6IGEgI1dlYktpdFdlYlZpZXcKKyAqCisgKiBSZXRyaWV2ZXMgdGhlICNTb3VwU2Vzc2lvbiB1
c2VkIGJ5IHRoZSAjV2ViS2l0V2ViVmlldy4gVW5sZXNzIGNoYW5nZWQgd2l0aAorICogd2Via2l0
X3dlYl92aWV3X3NldF9zZXNzaW9uKCksIHRoaXMgaXMgdGhlIHNhbWUgI1NvdXBTZXNzaW9uIHJl
dHVybmVkIGJ5CisgKiB3ZWJraXRfZ2V0X2RlZmF1bHRfc2Vzc2lvbigpLgorICoKKyAqIFJldHVy
bnM6ICh0cmFuc2ZlciBub25lKTogdGhlICNTb3VwU2Vzc2lvbiBhc3NvY2lhdGVkIHdpdGggdGhl
ICNXZWJLaXRXZWJWaWV3LgorICoKKyAqIFNpbmNlOiAxLjcuNQorICovCitTb3VwU2Vzc2lvbiog
d2Via2l0X3dlYl92aWV3X2dldF9zZXNzaW9uKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcpCit7Cisg
ICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0lTX1dFQl9WSUVXKHdlYlZpZXcpLCAwKTsK
KyAgICByZXR1cm4gd2ViVmlldy0+cHJpdi0+c2Vzc2lvbjsKK30KKworLyoqCisgKiB3ZWJraXRf
d2ViX3ZpZXdfc2V0X3Nlc3Npb246CisgKiBAd2ViX3ZpZXc6IGEgI1dlYktpdFdlYlZpZXcKKyAq
IEBzZXNzaW9uOiBhICNTb3VwU2Vzc2lvbgorICoKKyAqIEFzc2lnbnMgYSBwYXJ0aWN1bGFyICNT
b3VwU2Vzc2lvbiB0byBhICNXZWJLaXRXZWJWaWV3LiBPbmx5IHNlc3Npb25zIG9mIHR5cGUKKyAq
ICNTb3VwU2Vzc2lvbkFzeW5jIGFyZSBzdXBwb3J0ZWQuCisgKgorICogVGhpcyBmdW5jdGlvbiBz
aG91bGQgb25seSBiZSB1c2VkIGlmIG9uZSBpbnRlbmRzIHRvIG1hbmFnZSBzZXNzaW9ucyBmb3Ig
b25lJ3MKKyAqIHdlYnZpZXdzIG1hbnVhbGx5LiBTZWUgYWxzbyB3ZWJraXRfZ2V0X2RlZmF1bHRf
c2Vzc2lvbigpLgorICoKKyAqIFNpbmNlOiAxLjcuNQorICovCit2b2lkIHdlYmtpdF93ZWJfdmll
d19zZXRfc2Vzc2lvbihXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3LCBTb3VwU2Vzc2lvbiogc2Vzc2lv
bikKK3sKKyAgICBnX3JldHVybl9pZl9mYWlsKFdFQktJVF9JU19XRUJfVklFVyh3ZWJWaWV3KSk7
CisKKyAgICBpZiAoIVNPVVBfSVNfU0VTU0lPTl9BU1lOQyhzZXNzaW9uKSkgeworICAgICAgICBn
X2NyaXRpY2FsKCJZb3UgYXJlIHRyeWluZyB0byBhc3NpZ24gYSBTb3VwU2Vzc2lvblN5bmMgdG8g
dGhlIHdlYiB2aWV3ICIKKyAgICAgICAgICAgICAgICAgICAiYnV0IFdlYktpdCByZXF1aXJlcyBh
IFNvdXBTZXNzaW9uQXN5bmMgdG8gd29yayBwcm9wZXJseS4iKTsKKyAgICAgICAgcmV0dXJuOwor
ICAgIH0KKworICAgIHdlYlZpZXctPnByaXYtPnNlc3Npb24gPSBzZXNzaW9uOworfQorCiBHdGtN
ZW51KiB3ZWJraXRfd2ViX3ZpZXdfZ2V0X2NvbnRleHRfbWVudShXZWJLaXRXZWJWaWV3KiB3ZWJW
aWV3KQogewogICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9JU19XRUJfVklFVyh3ZWJW
aWV3KSwgMCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vi
dmlldy5oIGIvU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnZpZXcuaAppbmRleCA2
NzhlMzI5NjYyMmUyZDA1MTZlYzZjYzY1ZTIwMzFmYzJiNjI0ZGQ2Li4yZTQ3OGYxZGE4NjRkYTEz
NTU4ZDAwM2Y3YjQ5NTdlNTAwNzI3MzU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay93
ZWJraXQvd2Via2l0d2Vidmlldy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJr
aXR3ZWJ2aWV3LmgKQEAgLTQzOSw2ICs0MzksMTMgQEAgd2Via2l0X3dlYl92aWV3X2dldF9kb21f
ZG9jdW1lbnQgICAgICAgICAgICAgICAgKFdlYktpdFdlYlZpZXcgICAgICAgICp3ZWJfdmlldykK
IFdFQktJVF9BUEkgV2ViS2l0Vmlld3BvcnRBdHRyaWJ1dGVzKgogd2Via2l0X3dlYl92aWV3X2dl
dF92aWV3cG9ydF9hdHRyaWJ1dGVzICAgICAgICAgKFdlYktpdFdlYlZpZXcgICAgICAgICp3ZWJf
dmlldyk7CiAKK1dFQktJVF9BUEkgU291cFNlc3Npb24qCit3ZWJraXRfd2ViX3ZpZXdfZ2V0X3Nl
c3Npb24gICAgICAgICAgICAgICAgICAgICAoV2ViS2l0V2ViVmlldyAgICAgICAgKndlYl92aWV3
KTsKKworV0VCS0lUX0FQSSB2b2lkCit3ZWJraXRfd2ViX3ZpZXdfc2V0X3Nlc3Npb24gICAgICAg
ICAgICAgICAgICAgICAoV2ViS2l0V2ViVmlldyAgICAgICAgKndlYl92aWV3LAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNvdXBTZXNzaW9uICAgICAg
ICAgICpzZXNzaW9uKTsKKwogR19FTkRfREVDTFMKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vidmlld3ByaXZhdGUuaCBiL1NvdXJjZS9XZWJL
aXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3cHJpdmF0ZS5oCmluZGV4IDhkMmI3YjA0YmE5MmVj
NGRlZjZlZjZhM2M0MzNkMGQwZDdhOGQ2NDMuLjMzMGJmM2I3Mzk1ZmQ4MzkyZWJjNDY2ZTMxNTM2
YzYzZDhhZTAxMWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3
ZWJ2aWV3cHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2
aWV3cHJpdmF0ZS5oCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1
ZGUgIlJlc291cmNlSGFuZGxlLmgiCiAjaW5jbHVkZSAiV2lkZ2V0QmFja2luZ1N0b3JlLmgiCisj
aW5jbHVkZSA8bGlic291cC9zb3VwLXNlc3Npb24uaD4KICNpbmNsdWRlIDx3ZWJraXQvd2Via2l0
d2Vidmlldy5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAgLTk3LDYgKzk4LDggQEAgc3RydWN0
IF9XZWJLaXRXZWJWaWV3UHJpdmF0ZSB7CiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5H
KQogICAgIE93blB0cjxXZWJLaXQ6OkFjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0PiBhY2Nl
bGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dDsKICNlbmRpZgorCisgICAgU291cFNlc3Npb24qIHNl
c3Npb247CiB9OwogCiB2b2lkIHdlYmtpdF93ZWJfdmlld19ub3RpZnlfcmVhZHkoV2ViS2l0V2Vi
VmlldyopOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>124753</attachid>
            <date>2012-01-31 09:08:48 -0800</date>
            <delta_ts>2012-02-06 08:08:36 -0800</delta_ts>
            <desc>Appease the bots and do not add new API to the GTK+ port</desc>
            <filename>bug-77341-20120131151001.patch</filename>
            <type>text/plain</type>
            <size>31601</size>
            <attacher name="Raphael Kubo da Costa (:rakuco)">rakuco</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA2MDc5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGYxZmIxZmYyOGViN2U2
OWZhYzJjM2ExNTE2ODk5Y2E2ZTU0YmVkOC4uNDFmMmIxNjY5YTlmMDBmYzk0MTc0N2E0Yzc2NWRj
NmNkZmQ2MzdiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUxIEBACisyMDEyLTAxLTMxICBSYXBo
YWVsIEt1Ym8gZGEgQ29zdGEgIDxrdWJvQHByb2Z1c2lvbi5tb2JpPgorCisgICAgICAgIFtzb3Vw
XSBBZGQgc3VwcG9ydCBmb3IgbXVsdGlwbGUgU291cFNlc3Npb25zLgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzczNDEKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNYWtlIHRoZSBsaWJzb3VwIG5ldHdvcmsg
YmFja2VuZCBzdXBwb3J0IG11bHRpcGxlIFNvdXBTZXNzaW9ucy4gVGhpcyBpcworICAgICAgICBh
Y2NvbXBsaXNoZWQgYnkgdXNpbmcgdGhlIE5ldHdvcmtpbmdDb250ZXh0IGNsYXNzZXMsIHdoaWNo
IG5vdyBoYXZlIGEKKyAgICAgICAgYHNvdXBTZXNzaW9uKCknIG1ldGhvZCB3aGVuIHRoZSBsaWJz
b3VwIGJhY2tlbmQgaXMgYmVpbmcgdXNlZC4KKworICAgICAgICBsaWJzb3VwJ3MgUmVzb3VyY2VI
YW5kbGUgaW1wbGVtZW50YXRpb24gbm93IHJldHJpZXZlcyB0aGUgU291cFNlc3Npb24KKyAgICAg
ICAgdmlhIHRoZSBOZXR3b3JraW5nQ29udGV4dCBpdCByZWNlaXZlcyBpbnN0ZWFkIG9mIHJlbHlp
bmcgb24KKyAgICAgICAgZGVmYXVsdFNlc3Npb24oKS4gZGVmYXVsdFNlc3Npb24oKSBpcyBzdGls
bCB1c2VkIHdoZW4gYSBudWxsCisgICAgICAgIE5ldHdvcmtpbmdDb250ZXh0IGlzIHBhc3NlZCB0
byBSZXNvdXJjZUhhbmRsZTo6c3RhcnQgKGZvciBleGFtcGxlLCB2aWEKKyAgICAgICAgd2Via2l0
X2Rvd25sb2FkX3N0YXJ0KS4KKworICAgICAgICBUaGUgQ29va2llSmFyIGltcGxlbWVudGF0aW9u
IHJldHJpZXZlcyB0aGUgU291cFNlc3Npb24gZnJvbSB0aGUKKyAgICAgICAgTmV0d29ya2luZ0Nv
bnRleHQgYXMgbXVjaCBhcyBwb3NzaWJsZSBhcyB3ZWxsIC0tIHRoZSBmdW5jdGlvbnMgdXNlZCBi
eQorICAgICAgICBXZWJLaXQyIGNvdWxkIG5vdCBiZSBjb252ZXJ0ZWQsIHRob3VnaCwgYXMgdGhl
eSBzZWVtIHRvIGFzc3VtZSB0aGVyZSBpcworICAgICAgICBvbmx5IG9uZSBzaGFyZWQgY29va2ll
IGphci4KKworICAgICAgICBObyBuZXcgdGVzdHMsIGNvdmVyZWQgYnkgdGhlIGV4aXN0aW5nIG9u
ZXMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtpbmdDb250ZXh0Lmg6Cisg
ICAgICAgIChOZXR3b3JraW5nQ29udGV4dCk6IEFkZCBzb3VwU2Vzc2lvbigpIG1ldGhvZCBpZiBV
U0UoU09VUCkgaXMgc2V0LgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5k
bGVJbnRlcm5hbC5oOgorICAgICAgICAoUmVzb3VyY2VIYW5kbGVJbnRlcm5hbCk6CisgICAgICAg
ICogcGxhdGZvcm0vbmV0d29yay9zb3VwL0Nvb2tpZUphclNvdXAuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6bmV0d29ya2luZ0NvbnRleHQpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChX
ZWJDb3JlOjpkZWZhdWx0Q29va2llSmFyKToKKyAgICAgICAgKFdlYkNvcmU6OnNldENvb2tpZXMp
OgorICAgICAgICAoV2ViQ29yZTo6Y29va2llcyk6CisgICAgICAgIChXZWJDb3JlOjpjb29raWVS
ZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpjb29raWVzRW5hYmxl
ZCk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlSGFuZGxlU291cC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZUludGVybmFsOjpzb3VwU2Vzc2lv
bik6IEFkZCBtZXRob2QgdG8gcmV0cmlldmUKKyAgICAgICAgYSBTb3VwU2Vzc2lvbiBmcm9tIGEg
TmV0d29ya2luZ0NvbnRleHQgYW5kIGZhbGxiYWNrIHRvIGRlZmF1bHRTZXNzaW9uKCkKKyAgICAg
ICAgaWYgdGhlcmUncyBubyB2YWxpZCBOZXR3b3JraW5nQ29udGV4dC4KKyAgICAgICAgKFdlYkNv
cmUpOgorICAgICAgICAoV2ViQ29yZTo6ZW5zdXJlU2Vzc2lvbklzSW5pdGlhbGl6ZWQpOiBPbmx5
IGNoYW5nZSB0aGUgZGVmYXVsdCBjb29raWUKKyAgICAgICAgamFyIGlmIHRoZSBTb3VwU2Vzc2lv
biBiZWluZyBjaGFuZ2VkIGlzIHRoZSBkZWZhdWx0IG9uZS4KKyAgICAgICAgKFdlYkNvcmU6OnNl
bmRSZXF1ZXN0Q2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6c3RhcnRIVFRQUmVxdWVzdCk6
CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6Y2FuY2VsKToKKyAgICAgICAgKFdl
YkNvcmU6OnN0YXJ0Tm9uSFRUUFJlcXVlc3QpOgorCiAyMDEyLTAxLTI2ICBQYWJsbyBGbG91cmV0
ICA8cGFibG9mQG1vdG9yb2xhLmNvbT4KIAogICAgICAgICBGaXggYmFkIGNvZGUgZ2VuZXJhdGVk
IGJ5IHRoZSBKU0MgaWRsIGNvZGUgZ2VuZXJhdG9yIGZvciBbQ2FjaGVkQXR0cmlidXRlXSBhdHRy
aWJ1dGVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViS2l0L2VmbC9DaGFuZ2VMb2cKaW5kZXggODhkM2FlOWE0ZjQyODhiZGVlMTYwZmUwYzY3NjYx
YWRhMDMwNTIxNy4uYjY5Mzk3ZDdlN2NmYWY4NTExOWFlZTU4ZjM4NzJhNmQxYTEwYTE1OCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQv
ZWZsL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQyIEBACisyMDEyLTAxLTMxICBSYXBoYWVsIEt1Ym8g
ZGEgQ29zdGEgIDxrdWJvQHByb2Z1c2lvbi5tb2JpPgorCisgICAgICAgIFtzb3VwXSBBZGQgc3Vw
cG9ydCBmb3IgbXVsdGlwbGUgU291cFNlc3Npb25zLgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzczNDEKKworICAgICAgICBBZGQgdGhlIG5lY2Vzc2Fy
eSBpbmZyYXN0cnVjdHVyZSB0byBzdXBwb3J0IG11bHRpcGxlIFNvdXBTZXNzaW9ucy4gRWFjaAor
ICAgICAgICBXZWJWaWV3IG5vdyBoYXMgYSAic2Vzc2lvbiIgcHJvcGVydHksIHdoaWNoIGRlZmF1
bHRzIHRvCisgICAgICAgIFJlc291cmNlSGFuZGxlOjpkZWZhdWx0U2Vzc2lvbigpIGFuZCBjYW4g
YmUgY2hhbmdlZCB0byBhbm90aGVyCisgICAgICAgIFNvdXBTZXNzaW9uIGJ5IHRoZSB1c2VyLgor
CisgICAgICAgIFNvbWUgQVBJIGluIGV3a19uZXR3b3JrIGFuZCBld2tfdmlldyB3aGljaCByZXF1
aXJlZCBTb3VwU2Vzc2lvbiB0byBiZSBhCisgICAgICAgIHZhbGlkIHR5cGUgaW4gdGhlIGhlYWRl
cnMgaGFzIG5vdyBiZWVuIG1vdmVkIGluc2lkZSAjaWYgVVNFKFNPVVApCisgICAgICAgIGlmZGVm
cyBzbyB3ZSBjYW4gYWN0dWFsbHkgdGhlIHJlcXVpcmVkIFNvdXAgaGVhZGVyIGFuZCBhdm9pZCBi
dWlsZAorICAgICAgICBwcm9ibGVtcyB3aXRoIGR1cGxpY2F0ZSB0eXBlZGVmcy4KKworICAgICAg
ICAqIENNYWtlTGlzdHNFZmwudHh0OgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1lTG9h
ZGVyQ2xpZW50RWZsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50RWZs
OjpjcmVhdGVOZXR3b3JraW5nQ29udGV4dCk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnJh
bWVOZXR3b3JraW5nQ29udGV4dEVmbC5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQvZWZs
L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTmV0d29ya2luZ0NvbnRleHRFZmwuaC4KKyAgICAgICAgKFdl
YkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVOZXR3b3JraW5nQ29udGV4dEVmbDo6Y3Jl
YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTmV0d29ya2luZ0NvbnRleHRFZmw6OkZyYW1l
TmV0d29ya2luZ0NvbnRleHRFZmwpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVOZXR3b3JraW5n
Q29udGV4dEVmbDo6c291cFNlc3Npb24pOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1l
TmV0d29ya2luZ0NvbnRleHRFZmwuaDoKKyAgICAgICAgKEZyYW1lTmV0d29ya2luZ0NvbnRleHRF
ZmwpOgorICAgICAgICAqIGV3ay9ld2tfY29va2llcy5oOiBNZW50aW9uIHRoaXMgQVBJIGlzIG9u
bHkgdmFsaWQgd2l0aCB0aGUKKyAgICAgICAgZGVmYXVsdCBTb3VwU2Vzc2lvbi4KKyAgICAgICAg
KiBld2svZXdrX25ldHdvcmsuY3BwOgorICAgICAgICAoZXdrX25ldHdvcmtfZGVmYXVsdF9zb3Vw
X3Nlc3Npb25fZ2V0KTogRGVmaW5lIG9ubHkgaWYgVVNFKFNPVVApIGlzIHNldC4KKyAgICAgICAg
KiBld2svZXdrX25ldHdvcmsuaDogRGl0dG8sIGFuZCBtZW50aW9uIHRoaXMgQVBJIGlzIG9ubHkg
dmFsaWQgd2l0aCB0aGUKKyAgICAgICAgZGVmYXVsdCBTb3VwU2Vzc2lvbi4KKyAgICAgICAgKiBl
d2svZXdrX3ZpZXcuY3BwOgorICAgICAgICAoX0V3a19WaWV3X1ByaXZhdGVfRGF0YSk6CisgICAg
ICAgIChfZXdrX3ZpZXdfcHJpdl9uZXcpOgorICAgICAgICAoZXdrX3ZpZXdfc291cF9zZXNzaW9u
X2dldCk6CisgICAgICAgIChld2tfdmlld19zb3VwX3Nlc3Npb25fc2V0KToKKyAgICAgICAgKiBl
d2svZXdrX3ZpZXcuaDoKKyAgICAgICAgKCk6CisKIDIwMTItMDEtMjYgIFRvbWFzeiBNb3Jhd3Nr
aSAgPHQubW9yYXdza2lAc2Ftc3VuZy5jb20+CiAKICAgICAgICAgW0VGTF0gQWRkZWQgbWlzc2lu
ZyBORVRTQ0FQRV9QTFVHSU5fQVBJIG1hY3JvLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9n
dGsvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nCmluZGV4IGQ0NDk0NjRm
ZjcxNGM1ZjdlMmE2NWQ4ZWFmMTEyODI3MGNmMDc0ZjguLjg0NzkyYzYxZWVkYzBhMTExZGM0OGFl
NThmZTYzYTAwYmVmY2JhMDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAx
Mi0wMS0zMSAgUmFwaGFlbCBLdWJvIGRhIENvc3RhICA8a3Vib0Bwcm9mdXNpb24ubW9iaT4KKwor
ICAgICAgICBbc291cF0gQWRkIHN1cHBvcnQgZm9yIG11bHRpcGxlIFNvdXBTZXNzaW9ucy4KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc3MzQxCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRhcHQgdG8gdGhl
IGNoYW5nZXMgdG8gRnJhbWVOZXR3b3JraW5nQ29udGV4dCBpbiBXZWJDb3JlLgorCisgICAgICAg
ICogR05VbWFrZWZpbGUuYW06CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVOZXR3b3Jr
aW5nQ29udGV4dEd0ay5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVT
dXBwb3J0L0ZyYW1lTmV0d29ya2luZ0NvbnRleHRHdGsuaC4KKyAgICAgICAgKFdlYktpdCk6Cisg
ICAgICAgIChXZWJLaXQ6OkZyYW1lTmV0d29ya2luZ0NvbnRleHRHdGs6OnNvdXBTZXNzaW9uKTog
QWx3YXlzIHJldHVybiBSZXNvdXJjZUhhbmRsZTo6ZGVmYXVsdFNlc3Npb24oKS4KKyAgICAgICAg
KiBXZWJDb3JlU3VwcG9ydC9GcmFtZU5ldHdvcmtpbmdDb250ZXh0R3RrLmg6CisgICAgICAgIChG
cmFtZU5ldHdvcmtpbmdDb250ZXh0R3RrKToKKwogMjAxMi0wMS0yMyAgTWFyaW8gU2FuY2hleiBQ
cmFkYSAgPG1zYW5jaGV6QGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dUS10gUmVmYWN0b3IgR1RL
J3MgYWNjZXNzaWJpbGl0aXR5IGNvZGUgdG8gYmUgbW9yZSBtb2R1bGFyCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtpbmdDb250ZXh0LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtpbmdDb250ZXh0LmgKaW5kZXggZjJi
MTBjNDQ1YmQwNTdkNjM0NDc2MGY4OTdjMzRjZjViZWJiMjgwMS4uMDQ2MDg1YzJmNmI0NWZiZGMx
MTRiOWE2MGUxYWFjNTliMzVjNjk2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9OZXR3b3JraW5nQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvTmV0d29ya2luZ0NvbnRleHQuaApAQCAtMzUsNiArMzUsMTAgQEAgY2xhc3Mg
UVVybDsKIFFUX0VORF9OQU1FU1BBQ0UKICNlbmRpZgogCisjaWYgVVNFKFNPVVApCit0eXBlZGVm
IHN0cnVjdCBfU291cFNlc3Npb24gU291cFNlc3Npb247CisjZW5kaWYKKwogbmFtZXNwYWNlIFdl
YkNvcmUgewogCiBjbGFzcyBSZXNvdXJjZUVycm9yOwpAQCAtNjYsNiArNzAsMTAgQEAgcHVibGlj
OgogICAgIHZpcnR1YWwgUmVzb3VyY2VFcnJvciBibG9ja2VkRXJyb3IoY29uc3QgUmVzb3VyY2VS
ZXF1ZXN0JikgY29uc3QgPSAwOwogI2VuZGlmCiAKKyNpZiBVU0UoU09VUCkKKyAgICB2aXJ0dWFs
IFNvdXBTZXNzaW9uKiBzb3VwU2Vzc2lvbigpIGNvbnN0ID0gMDsKKyNlbmRpZgorCiBwcm90ZWN0
ZWQ6CiAgICAgTmV0d29ya2luZ0NvbnRleHQoKSB7IH0KIH07CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlSW50ZXJuYWwuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGVJbnRlcm5hbC5oCmluZGV4
IDg3Nzk5Nzk2Mzg4NGJkZGJkN2E3NmMwNmEyOWVmNjgxZGVhZGYxNjYuLmJjNzllZDEyYjZjYWZh
MjYyZWQ0OWJlZWY5OGI5Nzc0YzVmYTZjODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGVJbnRlcm5hbC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGVJbnRlcm5hbC5oCkBAIC0xODksNiAr
MTg5LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB1bnNpZ25lZCBsb25nIG1fYm9k
eVNpemU7CiAgICAgICAgIHVuc2lnbmVkIGxvbmcgbV9ib2R5RGF0YVNlbnQ7CiAgICAgICAgIFJl
ZlB0cjxOZXR3b3JraW5nQ29udGV4dD4gbV9jb250ZXh0OworICAgICAgICBTb3VwU2Vzc2lvbiog
c291cFNlc3Npb24oKTsKICNlbmRpZgogI2lmIFBMQVRGT1JNKFFUKQogICAgICAgICBRTmV0d29y
a1JlcGx5SGFuZGxlciogbV9qb2I7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL3NvdXAvQ29va2llSmFyU291cC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL3NvdXAvQ29va2llSmFyU291cC5jcHAKaW5kZXggZjE3MGQyZDU0ZTcxYmY5NjBj
NjlmZTIxYzI5NjEyMjQ1YTNmYjhjNy4uM2VhOTJlZDVhMDUyZjY3N2RhNDMyM2EwNGIzMzI0YWJl
MTBlMDc3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3Vw
L0Nvb2tpZUphclNvdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
c291cC9Db29raWVKYXJTb3VwLmNwcApAQCAtMjMsOCArMjMsMTIgQEAKIAogI2luY2x1ZGUgIkNv
b2tpZS5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNs
dWRlICJGcmFtZUxvYWRlci5oIgogI2luY2x1ZGUgIkdPd25QdHJTb3VwLmgiCiAjaW5jbHVkZSAi
S1VSTC5oIgorI2luY2x1ZGUgIk5ldHdvcmtpbmdDb250ZXh0LmgiCisjaW5jbHVkZSAiUmVzb3Vy
Y2VIYW5kbGUuaCIKICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKQEAgLTMyLDYgKzM2LDE5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIHN0YXRpYyBi
b29sIGNvb2tpZXNJbml0aWFsaXplZDsKIHN0YXRpYyBTb3VwQ29va2llSmFyKiBjb29raWVKYXI7
CiAKK3N0YXRpYyBOZXR3b3JraW5nQ29udGV4dCogbmV0d29ya2luZ0NvbnRleHQoY29uc3QgRG9j
dW1lbnQqIGRvY3VtZW50KQoreworICAgIGlmICghZG9jdW1lbnQpCisgICAgICAgIHJldHVybiAw
OworICAgIGNvbnN0IEZyYW1lKiBmcmFtZSA9IGRvY3VtZW50LT5mcmFtZSgpOworICAgIGlmICgh
ZnJhbWUpCisgICAgICAgIHJldHVybiAwOworICAgIGNvbnN0IEZyYW1lTG9hZGVyKiBsb2FkZXIg
PSBmcmFtZS0+bG9hZGVyKCk7CisgICAgaWYgKCFsb2FkZXIpCisgICAgICAgIHJldHVybiAwOwor
ICAgIHJldHVybiBsb2FkZXItPm5ldHdvcmtpbmdDb250ZXh0KCk7Cit9CisKIFNvdXBDb29raWVK
YXIqIGRlZmF1bHRDb29raWVKYXIoKQogewogICAgIGlmICghY29va2llc0luaXRpYWxpemVkKSB7
CkBAIC01OSw3ICs3NiwxMSBAQCB2b2lkIHNldERlZmF1bHRDb29raWVKYXIoU291cENvb2tpZUph
ciogamFyKQogCiB2b2lkIHNldENvb2tpZXMoRG9jdW1lbnQqIGRvY3VtZW50LCBjb25zdCBLVVJM
JiB1cmwsIGNvbnN0IFN0cmluZyYgdmFsdWUpCiB7Ci0gICAgU291cENvb2tpZUphciogamFyID0g
ZGVmYXVsdENvb2tpZUphcigpOworICAgIGNvbnN0IE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0
ID0gbmV0d29ya2luZ0NvbnRleHQoZG9jdW1lbnQpOworICAgIGlmICghY29udGV4dCkKKyAgICAg
ICAgcmV0dXJuOworCisgICAgU291cENvb2tpZUphciogamFyID0gU09VUF9DT09LSUVfSkFSKHNv
dXBfc2Vzc2lvbl9nZXRfZmVhdHVyZShjb250ZXh0LT5zb3VwU2Vzc2lvbigpLCBTT1VQX1RZUEVf
Q09PS0lFX0pBUikpOwogICAgIGlmICghamFyKQogICAgICAgICByZXR1cm47CiAKQEAgLTczLDkg
Kzk0LDEzIEBAIHZvaWQgc2V0Q29va2llcyhEb2N1bWVudCogZG9jdW1lbnQsIGNvbnN0IEtVUkwm
IHVybCwgY29uc3QgU3RyaW5nJiB2YWx1ZSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHZhbHVlLnV0ZjgoKS5kYXRhKCkpOwogfQogCi1TdHJpbmcgY29v
a2llcyhjb25zdCBEb2N1bWVudCogLypkb2N1bWVudCovLCBjb25zdCBLVVJMJiB1cmwpCitTdHJp
bmcgY29va2llcyhjb25zdCBEb2N1bWVudCogZG9jdW1lbnQsIGNvbnN0IEtVUkwmIHVybCkKIHsK
LSAgICBTb3VwQ29va2llSmFyKiBqYXIgPSBkZWZhdWx0Q29va2llSmFyKCk7CisgICAgY29uc3Qg
TmV0d29ya2luZ0NvbnRleHQqIGNvbnRleHQgPSBuZXR3b3JraW5nQ29udGV4dChkb2N1bWVudCk7
CisgICAgaWYgKCFjb250ZXh0KQorICAgICAgICByZXR1cm4gU3RyaW5nKCk7CisKKyAgICBTb3Vw
Q29va2llSmFyKiBqYXIgPSBTT1VQX0NPT0tJRV9KQVIoc291cF9zZXNzaW9uX2dldF9mZWF0dXJl
KGNvbnRleHQtPnNvdXBTZXNzaW9uKCksIFNPVVBfVFlQRV9DT09LSUVfSkFSKSk7CiAgICAgaWYg
KCFqYXIpCiAgICAgICAgIHJldHVybiBTdHJpbmcoKTsKIApAQCAtODksOSArMTE0LDEzIEBAIFN0
cmluZyBjb29raWVzKGNvbnN0IERvY3VtZW50KiAvKmRvY3VtZW50Ki8sIGNvbnN0IEtVUkwmIHVy
bCkKICAgICByZXR1cm4gcmVzdWx0OwogfQogCi1TdHJpbmcgY29va2llUmVxdWVzdEhlYWRlckZp
ZWxkVmFsdWUoY29uc3QgRG9jdW1lbnQqIC8qZG9jdW1lbnQqLywgY29uc3QgS1VSTCYgdXJsKQor
U3RyaW5nIGNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKGNvbnN0IERvY3VtZW50KiBkb2N1
bWVudCwgY29uc3QgS1VSTCYgdXJsKQogewotICAgIFNvdXBDb29raWVKYXIqIGphciA9IGRlZmF1
bHRDb29raWVKYXIoKTsKKyAgICBjb25zdCBOZXR3b3JraW5nQ29udGV4dCogY29udGV4dCA9IG5l
dHdvcmtpbmdDb250ZXh0KGRvY3VtZW50KTsKKyAgICBpZiAoIWNvbnRleHQpCisgICAgICAgIHJl
dHVybiBTdHJpbmcoKTsKKworICAgIFNvdXBDb29raWVKYXIqIGphciA9IFNPVVBfQ09PS0lFX0pB
Uihzb3VwX3Nlc3Npb25fZ2V0X2ZlYXR1cmUoY29udGV4dC0+c291cFNlc3Npb24oKSwgU09VUF9U
WVBFX0NPT0tJRV9KQVIpKTsKICAgICBpZiAoIWphcikKICAgICAgICAgcmV0dXJuIFN0cmluZygp
OwogCkBAIC0xMDUsOSArMTM0LDEzIEBAIFN0cmluZyBjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRW
YWx1ZShjb25zdCBEb2N1bWVudCogLypkb2N1bWVudCovLCBjb25zdCBLVVJMJiB1CiAgICAgcmV0
dXJuIHJlc3VsdDsKIH0KIAotYm9vbCBjb29raWVzRW5hYmxlZChjb25zdCBEb2N1bWVudCogLypk
b2N1bWVudCovKQorYm9vbCBjb29raWVzRW5hYmxlZChjb25zdCBEb2N1bWVudCogZG9jdW1lbnQp
CiB7Ci0gICAgcmV0dXJuIGRlZmF1bHRDb29raWVKYXIoKTsKKyAgICBjb25zdCBOZXR3b3JraW5n
Q29udGV4dCogY29udGV4dCA9IG5ldHdvcmtpbmdDb250ZXh0KGRvY3VtZW50KTsKKyAgICBpZiAo
IWNvbnRleHQpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIHJldHVybiAhIShTT1VQX0NP
T0tJRV9KQVIoc291cF9zZXNzaW9uX2dldF9mZWF0dXJlKGNvbnRleHQtPnNvdXBTZXNzaW9uKCks
IFNPVVBfVFlQRV9DT09LSUVfSkFSKSkpOwogfQogCiBib29sIGdldFJhd0Nvb2tpZXMoY29uc3Qg
RG9jdW1lbnQqLCBjb25zdCBLVVJMJiwgVmVjdG9yPENvb2tpZT4mIHJhd0Nvb2tpZXMpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5k
bGVTb3VwLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJj
ZUhhbmRsZVNvdXAuY3BwCmluZGV4IDVjYjUzYmRmZjRmYWI1NjkzM2ExMzE5YWM2YmFjN2E2MGZi
MDlmZWIuLjgxYzhiMjY0MzYxZTUzNTZiN2E2NGM2NDNkMGZiMmQ3M2JmMWQ2YjAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUhhbmRsZVNv
dXAuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJj
ZUhhbmRsZVNvdXAuY3BwCkBAIC0xNDEsNiArMTQxLDExIEBAIFJlc291cmNlSGFuZGxlSW50ZXJu
YWw6On5SZXNvdXJjZUhhbmRsZUludGVybmFsKCkKIHsKIH0KIAorU291cFNlc3Npb24qIFJlc291
cmNlSGFuZGxlSW50ZXJuYWw6OnNvdXBTZXNzaW9uKCkKK3sKKyAgICByZXR1cm4gKG1fY29udGV4
dCAmJiBtX2NvbnRleHQtPmlzVmFsaWQoKSkgPyBtX2NvbnRleHQtPnNvdXBTZXNzaW9uKCkgOiBS
ZXNvdXJjZUhhbmRsZTo6ZGVmYXVsdFNlc3Npb24oKTsKK30KKwogUmVzb3VyY2VIYW5kbGU6On5S
ZXNvdXJjZUhhbmRsZSgpCiB7CiAgICAgY2xlYW51cFNvdXBSZXF1ZXN0T3BlcmF0aW9uKHRoaXMs
IHRydWUpOwpAQCAtMTU0LDggKzE1OSwxMCBAQCBzdGF0aWMgdm9pZCBlbnN1cmVTZXNzaW9uSXNJ
bml0aWFsaXplZChTb3VwU2Vzc2lvbiogc2Vzc2lvbikKICAgICBTb3VwQ29va2llSmFyKiBqYXIg
PSBTT1VQX0NPT0tJRV9KQVIoc291cF9zZXNzaW9uX2dldF9mZWF0dXJlKHNlc3Npb24sIFNPVVBf
VFlQRV9DT09LSUVfSkFSKSk7CiAgICAgaWYgKCFqYXIpCiAgICAgICAgIHNvdXBfc2Vzc2lvbl9h
ZGRfZmVhdHVyZShzZXNzaW9uLCBTT1VQX1NFU1NJT05fRkVBVFVSRShkZWZhdWx0Q29va2llSmFy
KCkpKTsKLSAgICBlbHNlCi0gICAgICAgIHNldERlZmF1bHRDb29raWVKYXIoamFyKTsKKyAgICBl
bHNlIHsKKyAgICAgICAgaWYgKHNlc3Npb24gPT0gUmVzb3VyY2VIYW5kbGU6OmRlZmF1bHRTZXNz
aW9uKCkpCisgICAgICAgICAgICBzZXREZWZhdWx0Q29va2llSmFyKGphcik7CisgICAgfQogCiAg
ICAgaWYgKCFzb3VwX3Nlc3Npb25fZ2V0X2ZlYXR1cmUoc2Vzc2lvbiwgU09VUF9UWVBFX0xPR0dF
UikgJiYgTG9nTmV0d29yay5zdGF0ZSA9PSBXVEZMb2dDaGFubmVsT24pIHsKICAgICAgICAgU291
cExvZ2dlciogbG9nZ2VyID0gc291cF9sb2dnZXJfbmV3KHN0YXRpY19jYXN0PFNvdXBMb2dnZXJM
b2dMZXZlbD4oU09VUF9MT0dHRVJfTE9HX0JPRFkpLCAtMSk7CkBAIC0zMTksNyArMzI2LDcgQEAg
c3RhdGljIHZvaWQgc2VuZFJlcXVlc3RDYWxsYmFjayhHT2JqZWN0KiBzb3VyY2UsIEdBc3luY1Jl
c3VsdCogcmVzLCBncG9pbnRlciBkYXQKICAgICAgICAgZC0+bV9yZXNwb25zZS51cGRhdGVGcm9t
U291cE1lc3NhZ2Uoc291cE1lc3NhZ2UpOwogCiAgICAgICAgIGlmIChkLT5tX2RlZmVyc0xvYWRp
bmcpCi0gICAgICAgICAgICBzb3VwX3Nlc3Npb25fcGF1c2VfbWVzc2FnZShoYW5kbGUtPmRlZmF1
bHRTZXNzaW9uKCksIHNvdXBNZXNzYWdlKTsKKyAgICAgICAgICAgIHNvdXBfc2Vzc2lvbl9wYXVz
ZV9tZXNzYWdlKGQtPnNvdXBTZXNzaW9uKCksIHNvdXBNZXNzYWdlKTsKICAgICB9IGVsc2Ugewog
ICAgICAgICBkLT5tX3Jlc3BvbnNlLnNldFVSTChoYW5kbGUtPmZpcnN0UmVxdWVzdCgpLnVybCgp
KTsKICAgICAgICAgY29uc3QgZ2NoYXIqIGNvbnRlbnRUeXBlID0gc291cF9yZXF1ZXN0X2dldF9j
b250ZW50X3R5cGUoZC0+bV9zb3VwUmVxdWVzdC5nZXQoKSk7CkBAIC00NDIsMTIgKzQ0OSwxMiBA
QCBzdGF0aWMgYm9vbCBzdGFydEhUVFBSZXF1ZXN0KFJlc291cmNlSGFuZGxlKiBoYW5kbGUpCiB7
CiAgICAgQVNTRVJUKGhhbmRsZSk7CiAKLSAgICBTb3VwU2Vzc2lvbiogc2Vzc2lvbiA9IGhhbmRs
ZS0+ZGVmYXVsdFNlc3Npb24oKTsKKyAgICBSZXNvdXJjZUhhbmRsZUludGVybmFsKiBkID0gaGFu
ZGxlLT5nZXRJbnRlcm5hbCgpOworCisgICAgU291cFNlc3Npb24qIHNlc3Npb24gPSBkLT5zb3Vw
U2Vzc2lvbigpOwogICAgIGVuc3VyZVNlc3Npb25Jc0luaXRpYWxpemVkKHNlc3Npb24pOwogICAg
IFNvdXBSZXF1ZXN0ZXIqIHJlcXVlc3RlciA9IFNPVVBfUkVRVUVTVEVSKHNvdXBfc2Vzc2lvbl9n
ZXRfZmVhdHVyZShzZXNzaW9uLCBTT1VQX1RZUEVfUkVRVUVTVEVSKSk7CiAKLSAgICBSZXNvdXJj
ZUhhbmRsZUludGVybmFsKiBkID0gaGFuZGxlLT5nZXRJbnRlcm5hbCgpOwotCiAgICAgUmVzb3Vy
Y2VSZXF1ZXN0IHJlcXVlc3QoaGFuZGxlLT5maXJzdFJlcXVlc3QoKSk7CiAgICAgS1VSTCB1cmwo
cmVxdWVzdC51cmwoKSk7CiAgICAgdXJsLnJlbW92ZUZyYWdtZW50SWRlbnRpZmllcigpOwpAQCAt
NTUyLDcgKzU1OSw3IEBAIHZvaWQgUmVzb3VyY2VIYW5kbGU6OmNhbmNlbCgpCiB7CiAgICAgZC0+
bV9jYW5jZWxsZWQgPSB0cnVlOwogICAgIGlmIChkLT5tX3NvdXBNZXNzYWdlKQotICAgICAgICBz
b3VwX3Nlc3Npb25fY2FuY2VsX21lc3NhZ2UoZGVmYXVsdFNlc3Npb24oKSwgZC0+bV9zb3VwTWVz
c2FnZS5nZXQoKSwgU09VUF9TVEFUVVNfQ0FOQ0VMTEVEKTsKKyAgICAgICAgc291cF9zZXNzaW9u
X2NhbmNlbF9tZXNzYWdlKGQtPnNvdXBTZXNzaW9uKCksIGQtPm1fc291cE1lc3NhZ2UuZ2V0KCks
IFNPVVBfU1RBVFVTX0NBTkNFTExFRCk7CiAgICAgZWxzZSBpZiAoZC0+bV9jYW5jZWxsYWJsZSkK
ICAgICAgICAgZ19jYW5jZWxsYWJsZV9jYW5jZWwoZC0+bV9jYW5jZWxsYWJsZS5nZXQoKSk7CiB9
CkBAIC02ODcsMTAgKzY5NCwxMSBAQCBzdGF0aWMgYm9vbCBzdGFydE5vbkhUVFBSZXF1ZXN0KFJl
c291cmNlSGFuZGxlKiBoYW5kbGUsIEtVUkwgdXJsKQogICAgIGlmIChoYW5kbGUtPmZpcnN0UmVx
dWVzdCgpLmh0dHBNZXRob2QoKSAhPSAiR0VUIiAmJiBoYW5kbGUtPmZpcnN0UmVxdWVzdCgpLmh0
dHBNZXRob2QoKSAhPSAiUE9TVCIpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIFNvdXBT
ZXNzaW9uKiBzZXNzaW9uID0gaGFuZGxlLT5kZWZhdWx0U2Vzc2lvbigpOworICAgIFJlc291cmNl
SGFuZGxlSW50ZXJuYWwqIGQgPSBoYW5kbGUtPmdldEludGVybmFsKCk7CisKKyAgICBTb3VwU2Vz
c2lvbiogc2Vzc2lvbiA9IGQtPnNvdXBTZXNzaW9uKCk7CiAgICAgZW5zdXJlU2Vzc2lvbklzSW5p
dGlhbGl6ZWQoc2Vzc2lvbik7CiAgICAgU291cFJlcXVlc3RlciogcmVxdWVzdGVyID0gU09VUF9S
RVFVRVNURVIoc291cF9zZXNzaW9uX2dldF9mZWF0dXJlKHNlc3Npb24sIFNPVVBfVFlQRV9SRVFV
RVNURVIpKTsKLSAgICBSZXNvdXJjZUhhbmRsZUludGVybmFsKiBkID0gaGFuZGxlLT5nZXRJbnRl
cm5hbCgpOwogCiAgICAgQ1N0cmluZyB1cmxTdHIgPSB1cmwuc3RyaW5nKCkudXRmOCgpOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9DTWFrZUxpc3RzRWZsLnR4dCBiL1NvdXJjZS9X
ZWJLaXQvZWZsL0NNYWtlTGlzdHNFZmwudHh0CmluZGV4IGVjMGM3ZDg5NDBkYjdiOWU3ZTdkNmVi
MmI3Y2NkMGVkMGNlMGNhMjAuLmZmNDZmZDAwM2EzNzNhYjdmZTViM2QzOGE4ZDE1NWI0ZGY4MTc3
Y2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL0NNYWtlTGlzdHNFZmwudHh0CisrKyBi
L1NvdXJjZS9XZWJLaXQvZWZsL0NNYWtlTGlzdHNFZmwudHh0CkBAIC03MSw2ICs3MSw3IEBAIExJ
U1QoQVBQRU5EIFdlYktpdF9TT1VSQ0VTCiAgICAgZWZsL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5k
ZXJUcmVlU3VwcG9ydEVmbC5jcHAKICAgICBlZmwvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50
RWZsLmNwcAogICAgIGVmbC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEVmbC5jcHAK
KyAgICBlZmwvV2ViQ29yZVN1cHBvcnQvRnJhbWVOZXR3b3JraW5nQ29udGV4dEVmbC5jcHAKICAg
ICBlZmwvV2ViQ29yZVN1cHBvcnQvRnVsbHNjcmVlblZpZGVvQ29udHJvbGxlckVmbC5jcHAKICAg
ICBlZmwvV2ViQ29yZVN1cHBvcnQvSWNvbkRhdGFiYXNlQ2xpZW50RWZsLmNwcAogICAgIGVmbC9X
ZWJDb3JlU3VwcG9ydC9JbnNwZWN0b3JDbGllbnRFZmwuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEVmbC5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEVmbC5jcHAKaW5k
ZXggMWQ0ZDY0YTlmNzRiZTRiZTg1MjJmNTkwMWVlYWU0MmEyZGRlZmI4OC4uZGExYzM3YTFmNmJl
OTE0YmQ3YjE4ZTE3MmEwYjU1OTA4NDZhOGYyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9l
ZmwvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRFZmwuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50RWZsLmNwcApAQCAtOTUx
LDcgKzk1MSw3IEBAIHZvaWQgRnJhbWVMb2FkZXJDbGllbnRFZmw6OmRpc3BhdGNoRGlkQmVjb21l
RnJhbWVzZXQoYm9vbCkKIAogUGFzc1JlZlB0cjxGcmFtZU5ldHdvcmtpbmdDb250ZXh0PiBGcmFt
ZUxvYWRlckNsaWVudEVmbDo6Y3JlYXRlTmV0d29ya2luZ0NvbnRleHQoKQogewotICAgIHJldHVy
biBGcmFtZU5ldHdvcmtpbmdDb250ZXh0RWZsOjpjcmVhdGUoRVdLUHJpdmF0ZTo6Y29yZUZyYW1l
KG1fZnJhbWUpKTsKKyAgICByZXR1cm4gRnJhbWVOZXR3b3JraW5nQ29udGV4dEVmbDo6Y3JlYXRl
KEVXS1ByaXZhdGU6OmNvcmVGcmFtZShtX2ZyYW1lKSwgbV9mcmFtZSk7CiB9CiAKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTmV0d29ya2luZ0Nv
bnRleHRFZmwuY3BwIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRnJhbWVOZXR3
b3JraW5nQ29udGV4dEVmbC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTYyZGVmZjgzNGIwY2NhMjk0OTliNzY1
YzVhMzM0OTlhYTk0YzZmYwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL1dl
YkNvcmVTdXBwb3J0L0ZyYW1lTmV0d29ya2luZ0NvbnRleHRFZmwuY3BwCkBAIC0wLDAgKzEsNTkg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0
cyBzdWJzaWRpYXJ5KC1pZXMpCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgU2Ftc3VuZyBFbGVjdHJv
bmljcworICogQ29weXJpZ2h0IChDKSAyMDEyIFByb0ZVU0lPTiBlbWJlZGRlZCBzeXN0ZW1zCisg
KgorICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisg
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAor
ICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisj
aW5jbHVkZSAiRnJhbWVOZXR3b3JraW5nQ29udGV4dEVmbC5oIgorCisjaW5jbHVkZSAiUmVzb3Vy
Y2VIYW5kbGUuaCIKKyNpbmNsdWRlICJld2tfZnJhbWUuaCIKKyNpbmNsdWRlICJld2tfdmlldy5o
IgorCisjaW5jbHVkZSA8RXZhcy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1Bhc3NSZWZQ
dHI8RnJhbWVOZXR3b3JraW5nQ29udGV4dEVmbD4gRnJhbWVOZXR3b3JraW5nQ29udGV4dEVmbDo6
Y3JlYXRlKEZyYW1lKiBmcmFtZSwgRXZhc19PYmplY3QqIGV3a0ZyYW1lKQoreworICAgIHJldHVy
biBhZG9wdFJlZihuZXcgRnJhbWVOZXR3b3JraW5nQ29udGV4dEVmbChmcmFtZSwgZXdrRnJhbWUp
KTsKK30KKworRnJhbWVOZXR3b3JraW5nQ29udGV4dEVmbDo6RnJhbWVOZXR3b3JraW5nQ29udGV4
dEVmbChGcmFtZSogZnJhbWUsIEV2YXNfT2JqZWN0KiBld2tGcmFtZSkKKyAgICA6IEZyYW1lTmV0
d29ya2luZ0NvbnRleHQoZnJhbWUpCisgICAgLCBtX2V3a0ZyYW1lKGV3a0ZyYW1lKQoreworfQor
CisjaWYgVVNFKFNPVVApCitTb3VwU2Vzc2lvbiogRnJhbWVOZXR3b3JraW5nQ29udGV4dEVmbDo6
c291cFNlc3Npb24oKSBjb25zdAoreworICAgIHJldHVybiBld2tfdmlld19zb3VwX3Nlc3Npb25f
Z2V0KGV3a19mcmFtZV92aWV3X2dldChtX2V3a0ZyYW1lKSk7Cit9CisjZW5kaWYKKworfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRnJhbWVOZXR3b3JraW5n
Q29udGV4dEVmbC5oIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRnJhbWVOZXR3
b3JraW5nQ29udGV4dEVmbC5oCmluZGV4IDRlNjc1MTJkMDk0YzI4ZGZkNTE1YmVlOTk3MzYxNzdm
ZDk1YzZjYWYuLmIxMWJlNTE2NjU2MWQ5NGJlZWVkMzI4NWQyZGJiZmE2YjE0MDhmYjQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTmV0d29ya2luZ0Nv
bnRleHRFZmwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9GcmFtZU5l
dHdvcmtpbmdDb250ZXh0RWZsLmgKQEAgLTMxLDIyICszMSwyNCBAQAogCiAjaW5jbHVkZSAiRnJh
bWVOZXR3b3JraW5nQ29udGV4dC5oIgogCit0eXBlZGVmIHN0cnVjdCBfRXZhc19PYmplY3QgRXZh
c19PYmplY3Q7CisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgRnJhbWVOZXR3b3JraW5n
Q29udGV4dEVmbCA6IHB1YmxpYyBXZWJDb3JlOjpGcmFtZU5ldHdvcmtpbmdDb250ZXh0IHsKIHB1
YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxGcmFtZU5ldHdvcmtpbmdDb250ZXh0RWZsPiBj
cmVhdGUoV2ViQ29yZTo6RnJhbWUqIGZyYW1lKQotICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0
UmVmKG5ldyBGcmFtZU5ldHdvcmtpbmdDb250ZXh0RWZsKGZyYW1lKSk7Ci0gICAgfQorICAgIHN0
YXRpYyBQYXNzUmVmUHRyPEZyYW1lTmV0d29ya2luZ0NvbnRleHRFZmw+IGNyZWF0ZShGcmFtZSos
IEV2YXNfT2JqZWN0Kik7CiAKICAgICBXZWJDb3JlOjpGcmFtZSogY29yZUZyYW1lKCkgY29uc3Qg
eyByZXR1cm4gZnJhbWUoKTsgfQogCisjaWYgVVNFKFNPVVApCisgICAgdmlydHVhbCBTb3VwU2Vz
c2lvbiogc291cFNlc3Npb24oKSBjb25zdDsKKyNlbmRpZgorCiBwcml2YXRlOgotICAgIEZyYW1l
TmV0d29ya2luZ0NvbnRleHRFZmwoV2ViQ29yZTo6RnJhbWUqIGZyYW1lKQotICAgICAgICA6IFdl
YkNvcmU6OkZyYW1lTmV0d29ya2luZ0NvbnRleHQoZnJhbWUpCi0gICAgewotICAgIH0KKyAgICBG
cmFtZU5ldHdvcmtpbmdDb250ZXh0RWZsKEZyYW1lKiwgRXZhc19PYmplY3QqKTsKKworICAgIEV2
YXNfT2JqZWN0KiBtX2V3a0ZyYW1lOwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9lZmwvZXdrL2V3a19jb29raWVzLmggYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2Nvb2tp
ZXMuaAppbmRleCBhY2QxNTU5NmYzYzMyOWY3ZGUwY2VlNDQyNjcxYTM1YWI1NDU1NmZhLi5mM2M4
NmQzNTQ1NjU5ODJlOTVjZjNjMjUzNTllZGEwMzM3NGY2MTQzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2VmbC9ld2svZXdrX2Nvb2tpZXMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2sv
ZXdrX2Nvb2tpZXMuaApAQCAtMjEsNiArMjEsMTIgQEAKIC8qKgogICogQGZpbGUgICAgZXdrX2Nv
b2tpZXMuaAogICogQGJyaWVmICAgVGhlIEV3ayBjb29raWVzIEFQSS4KKyAqCisgKiBAbm90ZSBJ
ZiB0aGUgbGlic291cCBuZXR3b3JrIGJhY2tlbmQgaXMgYmVpbmcgdXNlZCB0aGUgZnVuY3Rpb25z
IGhlcmUgd2lsbAorICogb25seSB3b3JrIHdpdGggdGhlIEBiIGRlZmF1bHQgU291cFNlc3Npb24s
IHdoaWNoIGNhbiBiZSByZXRyaWV2ZWQgd2l0aAorICogZXdrX25ldHdvcmtfZGVmYXVsX3NvdXBf
c2Vzc2lvbl9nZXQoKS4gSWYgYSBkaWZmZXJlbnQgU291cFNlc3Npb24gaXMgdXNlZAorICogYW5k
IGFzc29jaWF0ZWQgd2l0aCBhIHZpZXcgd2l0aCBld2tfdmlld19zb3VwX3Nlc3Npb25fc2V0KCks
IGFsbCBjb29raWUKKyAqIG1hbmFnZW1lbnQgd2lsbCBoYXZlIHRvIGJlIGRvbmUgbWFudWFsbHku
CiAgKi8KIAogI2lmbmRlZiBld2tfY29va2llc19oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L2VmbC9ld2svZXdrX25ldHdvcmsuY3BwIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19uZXR3
b3JrLmNwcAppbmRleCAwY2E1YmQxYmJmODMyODNkYTVhYTM2MTMwNzRmZDdlZTdiZmVkZjA0Li4x
ZmRlZTUyYjhkNWE2ZTkwZGFhMzgyN2EyMjNiYjlkOGM5NTE0Nzc0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L2VmbC9ld2svZXdrX25ldHdvcmsuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZs
L2V3ay9ld2tfbmV0d29yay5jcHAKQEAgLTExNSwxMSArMTE1LDkgQEAgdm9pZCBld2tfbmV0d29y
a190bHNfY2FfY2VydGlmaWNhdGVzX3BhdGhfc2V0KGNvbnN0IGNoYXIqIGJ1bmRsZVBhdGgpCiAj
ZW5kaWYKIH0KIAorI2lmIFVTRShTT1VQKQogU291cFNlc3Npb24qIGV3a19uZXR3b3JrX2RlZmF1
bHRfc291cF9zZXNzaW9uX2dldCgpCiB7Ci0jaWYgVVNFKFNPVVApCiAgICAgcmV0dXJuIFdlYkNv
cmU6OlJlc291cmNlSGFuZGxlOjpkZWZhdWx0U2Vzc2lvbigpOwotI2Vsc2UKLSAgICByZXR1cm4g
MDsKLSNlbmRpZgogfQorI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2sv
ZXdrX25ldHdvcmsuaCBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfbmV0d29yay5oCmluZGV4
IDYxMmMyZjdjZTMxNWFkZjM0OGU2OWVlMjc1YWRjZTNlYTM0ZWRiYjEuLjc1MjU2YzY2ZDlmYTA3
NWE3NjZiY2RlMDkyZDYzYTIxMzUwNWNkY2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZs
L2V3ay9ld2tfbmV0d29yay5oCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfbmV0d29y
ay5oCkBAIC0yNywxNiArMjcsMjMgQEAKIAogI2luY2x1ZGUgPEVpbmEuaD4KIAorI2lmIFVTRShT
T1VQKQorI2luY2x1ZGUgPGxpYnNvdXAvc291cC1zZXNzaW9uLmg+CisjZW5kaWYKKwogI2lmZGVm
IF9fY3BsdXNwbHVzCiBleHRlcm4gIkMiIHsKICNlbmRpZgogCi10eXBlZGVmIHN0cnVjdCBfU291
cFNlc3Npb24gU291cFNlc3Npb247Ci0KIC8qKgogICogU2V0cyB0aGUgZ2l2ZW4gcHJveHkgVVJJ
IHRvIG5ldHdvcmsgYmFja2VuZC4KICAqCiAgKiBAcGFyYW0gcHJveHkgVVJJIHRvIHNldAorICoK
KyAqIEBub3RlIElmIHRoZSBsaWJzb3VwIGJhY2tlbmQgaXMgYmVpbmcgdXNlZCwgdGhpcyBmdW5j
dGlvbiBoYXMgZWZmZWN0IG9uCisgKiB0aGUgQGIgZGVmYXVsdCBTb3VwU2Vzc2lvbiwgcmV0dXJu
ZWQgYnkgZXdrX25ldHdvcmtfZGVmYXVsdF9zb3VwX3Nlc3Npb25fZ2V0KCkuCisgKiBJZiBhIGRp
ZmZlcmVudCBTb3VwU2Vzc2lvbiBpcyB1c2VkIGFuZCBwYXNzZWQgdG8gZXdrX3ZpZXdfc291cF9z
ZXNzaW9uX3NldCgpLAorICogdGhpcyBmdW5jdGlvbiB3aWxsIG5vdCBoYXZlIGFueSBlZmZlY3Qg
b24gaXQuCiAgKi8KIEVBUEkgdm9pZCAgICAgICAgICAgICBld2tfbmV0d29ya19wcm94eV91cmlf
c2V0KGNvbnN0IGNoYXIgKnByb3h5KTsKIApAQCAtNDYsNiArNTMsMTEgQEAgRUFQSSB2b2lkICAg
ICAgICAgICAgIGV3a19uZXR3b3JrX3Byb3h5X3VyaV9zZXQoY29uc3QgY2hhciAqcHJveHkpOwog
ICogVGhlIHJldHVybmVkIHN0cmluZyBzaG91bGQgYmUgZnJlZWQgYnkgZWluYV9zdHJpbmdzaGFy
ZV9kZWwoKSBhZnRlciB1c2UuCiAgKgogICogQHJldHVybiBjdXJyZW50IHByb3h5IFVSSSBvciBA
YyAwIGlmIGl0J3Mgbm90IHNldAorICoKKyAqIEBub3RlIElmIHRoZSBsaWJzb3VwIGJhY2tlbmQg
aXMgYmVpbmcgdXNlZCwgdGhpcyBmdW5jdGlvbiBoYXMgZWZmZWN0IG9uCisgKiB0aGUgQGIgZGVm
YXVsdCBTb3VwU2Vzc2lvbiwgcmV0dXJuZWQgYnkgZXdrX25ldHdvcmtfZGVmYXVsdF9zb3VwX3Nl
c3Npb25fZ2V0KCkuCisgKiBJZiBhIGRpZmZlcmVudCBTb3VwU2Vzc2lvbiBpcyB1c2VkIGFuZCBw
YXNzZWQgdG8gZXdrX3ZpZXdfc291cF9zZXNzaW9uX3NldCgpLAorICogdGhpcyBmdW5jdGlvbiB3
aWxsIG5vdCBoYXZlIGFueSBlZmZlY3Qgb24gaXQuCiAgKi8KIEVBUEkgY29uc3QgY2hhciAgICAg
ICpld2tfbmV0d29ya19wcm94eV91cmlfZ2V0KHZvaWQpOwogCkBAIC02Miw2ICs3NCwxMSBAQCBF
QVBJIHZvaWQgICAgICAgICAgICAgZXdrX25ldHdvcmtfc3RhdGVfbm90aWZpZXJfb25saW5lX3Nl
dChFaW5hX0Jvb2wgb25saW5lKTsKICAqIEJ5IGRlZmF1bHQsIEhUVFBTIGNvbm5lY3Rpb25zIGFy
ZSBwZXJmb3JtZWQgcmVnYXJkbGVzcyBvZiB0aGUgdmFsaWRpdHkgb2YgdGhlIGNlcnRpZmljYXRl
IHByb3ZpZGVkLgogICoKICAqIEBzYSBld2tfbmV0d29ya190bHNfY2FfY2VydGlmaWNhdGVzX3Bh
dGhfc2V0CisgKgorICogQG5vdGUgSWYgdGhlIGxpYnNvdXAgYmFja2VuZCBpcyBiZWluZyB1c2Vk
LCB0aGlzIGZ1bmN0aW9uIGhhcyBlZmZlY3Qgb24KKyAqIHRoZSBAYiBkZWZhdWx0IFNvdXBTZXNz
aW9uLCByZXR1cm5lZCBieSBld2tfbmV0d29ya19kZWZhdWx0X3NvdXBfc2Vzc2lvbl9nZXQoKS4K
KyAqIElmIGEgZGlmZmVyZW50IFNvdXBTZXNzaW9uIGlzIHVzZWQgYW5kIHBhc3NlZCB0byBld2tf
dmlld19zb3VwX3Nlc3Npb25fc2V0KCksCisgKiB0aGlzIGZ1bmN0aW9uIHdpbGwgbm90IGhhdmUg
YW55IGVmZmVjdCBvbiBpdC4KICAqLwogRUFQSSBFaW5hX0Jvb2wgICAgICAgIGV3a19uZXR3b3Jr
X3Rsc19jZXJ0aWZpY2F0ZV9jaGVja19nZXQodm9pZCk7CiAKQEAgLTczLDYgKzkwLDExIEBAIEVB
UEkgRWluYV9Cb29sICAgICAgICBld2tfbmV0d29ya190bHNfY2VydGlmaWNhdGVfY2hlY2tfZ2V0
KHZvaWQpOwogICogQHBhcmFtIGVuYWJsZSBXaGV0aGVyIHRvIGNoZWNrIHRoZSBwcm92aWRlZCBj
ZXJ0aWZpY2F0ZXMgb3Igbm90LgogICoKICAqIEBzYSBld2tfbmV0d29ya190bHNfY2FfY2VydGlm
aWNhdGVzX3BhdGhfc2V0CisgKgorICogQG5vdGUgSWYgdGhlIGxpYnNvdXAgYmFja2VuZCBpcyBi
ZWluZyB1c2VkLCB0aGlzIGZ1bmN0aW9uIGhhcyBlZmZlY3Qgb24KKyAqIHRoZSBAYiBkZWZhdWx0
IFNvdXBTZXNzaW9uLCByZXR1cm5lZCBieSBld2tfbmV0d29ya19kZWZhdWx0X3NvdXBfc2Vzc2lv
bl9nZXQoKS4KKyAqIElmIGEgZGlmZmVyZW50IFNvdXBTZXNzaW9uIGlzIHVzZWQgYW5kIHBhc3Nl
ZCB0byBld2tfdmlld19zb3VwX3Nlc3Npb25fc2V0KCksCisgKiB0aGlzIGZ1bmN0aW9uIHdpbGwg
bm90IGhhdmUgYW55IGVmZmVjdCBvbiBpdC4KICAqLwogRUFQSSB2b2lkICAgICAgICAgICAgIGV3
a19uZXR3b3JrX3Rsc19jZXJ0aWZpY2F0ZV9jaGVja19zZXQoRWluYV9Cb29sIGVuYWJsZSk7CiAK
QEAgLTg5LDYgKzExMSwxMSBAQCBFQVBJIHZvaWQgICAgICAgICAgICAgZXdrX25ldHdvcmtfdGxz
X2NlcnRpZmljYXRlX2NoZWNrX3NldChFaW5hX0Jvb2wgZW5hYmxlKTsKICAqIEJ5IGRlZmF1bHQs
IHRoZSBwYXRoIGlzIG5vdCBzZXQsIHNvIGFsbCBjZXJ0aWZpY2F0ZXMgYXJlIGNvbnNpZGVyZWQg
YXMgbm90IHNpZ25lZCBieSBhIHRydXN0ZWQgcm9vdCBDQS4KICAqCiAgKiBAc2EgZXdrX25ldHdv
cmtfdGxzX2NlcnRpZmljYXRlX2NoZWNrX3NldAorICoKKyAqIEBub3RlIElmIHRoZSBsaWJzb3Vw
IGJhY2tlbmQgaXMgYmVpbmcgdXNlZCwgdGhpcyBmdW5jdGlvbiBoYXMgZWZmZWN0IG9uCisgKiB0
aGUgQGIgZGVmYXVsdCBTb3VwU2Vzc2lvbiwgcmV0dXJuZWQgYnkgZXdrX25ldHdvcmtfZGVmYXVs
dF9zb3VwX3Nlc3Npb25fZ2V0KCkuCisgKiBJZiBhIGRpZmZlcmVudCBTb3VwU2Vzc2lvbiBpcyB1
c2VkIGFuZCBwYXNzZWQgdG8gZXdrX3ZpZXdfc291cF9zZXNzaW9uX3NldCgpLAorICogdGhpcyBm
dW5jdGlvbiB3aWxsIG5vdCBoYXZlIGFueSBlZmZlY3Qgb24gaXQuCiAgKi8KIEVBUEkgY29uc3Qg
Y2hhciAgICAgICpld2tfbmV0d29ya190bHNfY2FfY2VydGlmaWNhdGVzX3BhdGhfZ2V0KHZvaWQp
OwogCkBAIC0xMDcsMTkgKzEzNCwyNCBAQCBFQVBJIGNvbnN0IGNoYXIgICAgICAqZXdrX25ldHdv
cmtfdGxzX2NhX2NlcnRpZmljYXRlc19wYXRoX2dldCh2b2lkKTsKICAqIEBwYXJhbSBwYXRoIFRo
ZSBwYXRoIHRvIHRoZSBjZXJ0aWZpY2F0ZSBidW5kbGUuCiAgKgogICogQHNhIGV3a19uZXR3b3Jr
X3Rsc19jZXJ0aWZpY2F0ZV9jaGVja19zZXQKKyAqCisgKiBAbm90ZSBJZiB0aGUgbGlic291cCBi
YWNrZW5kIGlzIGJlaW5nIHVzZWQsIHRoaXMgZnVuY3Rpb24gaGFzIGVmZmVjdCBvbgorICogdGhl
IEBiIGRlZmF1bHQgU291cFNlc3Npb24sIHJldHVybmVkIGJ5IGV3a19uZXR3b3JrX2RlZmF1bHRf
c291cF9zZXNzaW9uX2dldCgpLgorICogSWYgYSBkaWZmZXJlbnQgU291cFNlc3Npb24gaXMgdXNl
ZCBhbmQgcGFzc2VkIHRvIGV3a192aWV3X3NvdXBfc2Vzc2lvbl9zZXQoKSwKKyAqIHRoaXMgZnVu
Y3Rpb24gd2lsbCBub3QgaGF2ZSBhbnkgZWZmZWN0IG9uIGl0LgogICovCiBFQVBJIHZvaWQgICAg
ICAgICAgICAgZXdrX25ldHdvcmtfdGxzX2NhX2NlcnRpZmljYXRlc19wYXRoX3NldChjb25zdCBj
aGFyICpwYXRoKTsKIAorI2lmIFVTRShTT1VQKQogLyoqCiAgKiBSZXR1cm5zIHRoZSBkZWZhdWx0
IEBjIFNvdXBTZXNzaW9uIHVzZWQgYnkgYWxsIHZpZXdzLgogICoKLSAqIFRoaXMgZnVuY3Rpb24g
aXMgbWVhbmluZ2Z1bCBvbmx5IGlmIFdlYktpdCBoYXMgYmVlbiBjb21waWxlZCB3aXRoIHRoZQot
ICogQGMgU291cCBuZXR3b3JrIGJhY2tlbmQuCisgKiBUaGlzIGZ1bmN0aW9uIGlzIGRlZmluZWQg
b25seSBpZiBXZWJLaXQgaGFzIGJlZW4gY29tcGlsZWQgd2l0aCB0aGUgbGlic291cCBuZXR3b3Jr
IGJhY2tlbmQuCiAgKgotICogQHJldHVybiBUaGUgZGVmYXVsdCBAYyBTb3VwU2Vzc2lvbiBpbiB1
c2UsIG9yIEBjIE5VTEwgaWYgYW5vdGhlciBuZXR3b3JrCi0gKiAgICAgICAgIGJhY2tlbmQgd2Fz
IHVzZWQuCisgKiBAcmV0dXJuIFRoZSBkZWZhdWx0IEBjIFNvdXBTZXNzaW9uIGluIHVzZS4KICAq
LwogRUFQSSBTb3VwU2Vzc2lvbiogICAgIGV3a19uZXR3b3JrX2RlZmF1bHRfc291cF9zZXNzaW9u
X2dldCh2b2lkKTsKKyNlbmRpZgogCiAjaWZkZWYgX19jcGx1c3BsdXMKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9l
d2svZXdrX3ZpZXcuY3BwCmluZGV4IGE2OGJiYWJiZThkOTNkN2RjOGU3MGQ3OTFjNjUwNzY0YmEx
MTNkYzkuLmQyMWJkOGRhYThiZTBkNmY0MTQ3MGRkZWI1Y2YxNDNmM2FlNTFlZTkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9lZmwvZXdrL2V3a192aWV3LmNwcApAQCAtNTAsNiArNTAsNyBAQAogI2luY2x1ZGUgIlByb2dy
ZXNzVHJhY2tlci5oIgogI2luY2x1ZGUgIlJlZlB0ckNhaXJvLmgiCiAjaW5jbHVkZSAiUmVuZGVy
VGhlbWUuaCIKKyNpbmNsdWRlICJSZXNvdXJjZUhhbmRsZS5oIgogI2luY2x1ZGUgIlNldHRpbmdz
LmgiCiAjaW5jbHVkZSAiY19pbnN0YW5jZS5oIgogI2luY2x1ZGUgImV3a19sb2dnaW5nLmgiCkBA
IC02OCw2ICs2OSwxMCBAQAogI2luY2x1ZGUgIkRldmljZU9yaWVudGF0aW9uQ2xpZW50RWZsLmgi
CiAjZW5kaWYKIAorI2lmIFVTRShTT1VQKQorI2luY2x1ZGUgPGxpYnNvdXAvc291cC5oPgorI2Vu
ZGlmCisKIHN0YXRpYyBjb25zdCBmbG9hdCB6b29tTWluaW11bSA9IDAuMDU7CiBzdGF0aWMgY29u
c3QgZmxvYXQgem9vbU1heGltdW0gPSA0LjA7CiAKQEAgLTIxMSw2ICsyMTYsOSBAQCBzdHJ1Y3Qg
X0V3a19WaWV3X1ByaXZhdGVfRGF0YSB7CiAgICAgICAgIH0gY2VudGVyOwogICAgICAgICBFY29y
ZV9BbmltYXRvciogYW5pbWF0b3I7CiAgICAgfSBhbmltYXRlZFpvb207CisjaWYgVVNFKFNPVVAp
CisgICAgU291cFNlc3Npb24qIHNvdXBTZXNzaW9uOworI2VuZGlmCiB9OwogCiAjaWZuZGVmIEVX
S19UWVBFX0NIRUNLCkBAIC03MTksNiArNzI3LDEwIEBAIHN0YXRpYyBFd2tfVmlld19Qcml2YXRl
X0RhdGEqIF9ld2tfdmlld19wcml2X25ldyhFd2tfVmlld19TbWFydF9EYXRhKiBzbWFydERhdGEp
CiAgICAgICAgIGdvdG8gZXJyb3JfaGlzdG9yeTsKICAgICB9CiAKKyNpZiBVU0UoU09VUCkKKyAg
ICBwcml2LT5zb3VwU2Vzc2lvbiA9IFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpkZWZhdWx0U2Vz
c2lvbigpOworI2VuZGlmCisKICAgICByZXR1cm4gcHJpdjsKIAogZXJyb3JfaGlzdG9yeToKQEAg
LTM5MTgsNiArMzkzMCwzMSBAQCBFd2tfUGFnZV9WaXNpYmlsaXR5X1N0YXRlIGV3a192aWV3X3Zp
c2liaWxpdHlfc3RhdGVfZ2V0KGNvbnN0IEV2YXNfT2JqZWN0KiBld2tWaQogI2VuZGlmCiB9CiAK
K1NvdXBTZXNzaW9uKiBld2tfdmlld19zb3VwX3Nlc3Npb25fZ2V0KGNvbnN0IEV2YXNfT2JqZWN0
KiBld2tWaWV3KQoreworI2lmIFVTRShTT1VQKQorICAgIEVXS19WSUVXX1NEX0dFVF9PUl9SRVRV
Uk4oZXdrVmlldywgc21hcnREYXRhLCAwKTsKKyAgICBFV0tfVklFV19QUklWX0dFVF9PUl9SRVRV
Uk4oc21hcnREYXRhLCBwcml2LCAwKTsKKyAgICByZXR1cm4gcHJpdi0+c291cFNlc3Npb247Cisj
ZWxzZQorICAgIHJldHVybiAwOworI2VuZGlmCit9CisKK3ZvaWQgZXdrX3ZpZXdfc291cF9zZXNz
aW9uX3NldChFdmFzX09iamVjdCogZXdrVmlldywgU291cFNlc3Npb24qIHNlc3Npb24pCit7Cisj
aWYgVVNFKFNPVVApCisgICAgRVdLX1ZJRVdfU0RfR0VUX09SX1JFVFVSTihld2tWaWV3LCBzbWFy
dERhdGEpOworICAgIEVXS19WSUVXX1BSSVZfR0VUX09SX1JFVFVSTihzbWFydERhdGEsIHByaXYp
OworICAgIGlmICghU09VUF9JU19TRVNTSU9OX0FTWU5DKHNlc3Npb24pKSB7CisgICAgICAgIEVS
UigiV2ViS2l0IHJlcXVpcmVzIGFuIFNvdXBTZXNzaW9uQXN5bmMgdG8gd29yayBwcm9wZXJseSwg
YnV0ICIKKyAgICAgICAgICAgICJhIFNvdXBTZXNzaW9uU3luYyB3YXMgcHJvdmlkZWQuIik7Cisg
ICAgICAgIHJldHVybjsKKyAgICB9CisgICAgcHJpdi0+c291cFNlc3Npb24gPSBzZXNzaW9uOwor
I2VuZGlmCit9CisKIG5hbWVzcGFjZSBFV0tQcml2YXRlIHsKIAogV2ViQ29yZTo6UGFnZSAqY29y
ZVBhZ2UoY29uc3QgRXZhc19PYmplY3QgKmV3a1ZpZXcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L2VmbC9ld2svZXdrX3ZpZXcuaCBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5o
CmluZGV4IGE0MzM1Mzc0ZjQ4Y2Q1YWU2NTNmY2Y0Yjk4Mjg1OWI1Nzk3N2ZmZWMuLmU5NTA2N2Q4
NjE2Y2VkN2RjNDAxYjdhMGZlZWRmMmU1MDlmYWY1MDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvZWZsL2V3ay9ld2tfdmlldy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmll
dy5oCkBAIC05Niw2ICs5NiwxMCBAQAogI2luY2x1ZGUgPEV2YXMuaD4KICNpbmNsdWRlIDxjYWly
by5oPgogCisjaWYgVVNFKFNPVVApCisjaW5jbHVkZSA8bGlic291cC9zb3VwLXNlc3Npb24uaD4K
KyNlbmRpZgorCiAjaWZkZWYgX19jcGx1c3BsdXMKIGV4dGVybiAiQyIgewogI2VuZGlmCkBAIC0y
MzM1LDYgKzIzMzksNDQgQEAgRUFQSSBFaW5hX0Jvb2wgZXdrX3ZpZXdfbWl4ZWRfY29udGVudF9k
aXNwbGF5ZWRfZ2V0KGNvbnN0IEV2YXNfT2JqZWN0ICpvKTsKICAqLwogRUFQSSBFaW5hX0Jvb2wg
ZXdrX3ZpZXdfbWl4ZWRfY29udGVudF9ydW5fZ2V0KGNvbnN0IEV2YXNfT2JqZWN0ICpvKTsKIAor
I2lmIFVTRShTT1VQKQorLyoqCisgKiBSZXR1cm5zIHRoZSBTb3VwU2Vzc2lvbiBhc3NvY2lhdGVk
IHdpdGggdGhpcyB2aWV3LgorICoKKyAqIEJ5IGRlZmF1bHQsIGFsbCB2aWV3cyBzaGFyZSB0aGUg
c2FtZSwgZGVmYXVsdCBzb3VwIHNlc3Npb24gYWxzbyBhdmFpbGFibGUKKyAqIGJ5IGNhbGxpbmcg
ZXdrX25ldHdvcmtfZGVmYXVsdF9zb3VwX3Nlc3Npb25fZ2V0LgorICoKKyAqIEBub3RlIFRoaXMg
ZnVuY3Rpb24gaXMgZGVmaW5lZCBvbmx5IGlmIHRoZSBsaWJzb3VwIG5ldHdvcmsgYmFja2VuZAor
ICogICAgICAgaXMgdXNlZC4KKyAqCisgKiBAcGFyYW0gbyBUaGUgdmlldyB0byBxdWVyeS4KKyAq
CisgKiBAc2EgZXdrX3ZpZXdfc291cF9zZXNzaW9uX3NldCwgZXdrX25ldHdvcmtfZGVmYXVsdF9z
b3VwX3Nlc3Npb25fZ2V0CisgKi8KK0VBUEkgU291cFNlc3Npb24qIGV3a192aWV3X3NvdXBfc2Vz
c2lvbl9nZXQoY29uc3QgRXZhc19PYmplY3QgKm8pOworI2VuZGlmCisKKyNpZiBVU0UoU09VUCkK
Ky8qKgorICogQXNzb2NpYXRlcyBhIG5ldyBTb3VwU2Vzc2lvbiB3aXRoIHRoaXMgdmlldy4KKyAq
CisgKiBPbmx5IHNlc3Npb25zIG9mIHR5cGUgU291cFNlc3Npb25Bc3luYyBhcmUgc3VwcG9ydGVk
LgorICoKKyAqIEBub3RlIFRoaXMgZnVuY3Rpb24gaXMgZGVmaW5lZCBvbmx5IGlmIHRoZSBsaWJz
b3VwIG5ldHdvcmsgYmFja2VuZAorICogICAgICAgaXMgdXNlZC4KKyAqCisgKiBAbm90ZSBDaGFu
Z2luZyB0aGUgU291cFNlc3Npb24gc2hvdWxkIG5vdCBiZSBuZWVkZWQgaW4gbW9zdCBjYXNlcy4g
SWYKKyAqICAgICAgIGEgZGlmZmVyZW50IFNvdXBTZXNzaW9uIGlzIHVzZWQsIHRoZSBjb29raWUg
bWFuYWdlbWVudCBhbmQgc29tZQorICogICAgICAgbmV0d29yayBmdW5jdGlvbnMgaW4gZXdrIHdp
bGwgbm90IGhhdmUgYW55IGVmZmVjdCBvbiBpdC4KKyAqCisgKiBAcGFyYW0gbyBUaGUgdmlldyB0
byBjaGFuZ2UuCisgKiBAcGFyYW0gc2Vzc2lvbiBUaGUgbmV3IFNvdXBTZXNzaW9uLgorICoKKyAq
IEBzYSBld2tfdmlld19zb3VwX3Nlc3Npb25fZ2V0LCBld2tfbmV0d29ya19kZWZhdWx0X3NvdXBf
c2Vzc2lvbl9nZXQKKyAqLworRUFQSSB2b2lkIGV3a192aWV3X3NvdXBfc2Vzc2lvbl9zZXQoRXZh
c19PYmplY3QgKm8sIFNvdXBTZXNzaW9uICpzZXNzaW9uKTsKKyNlbmRpZgorCiAjaWZkZWYgX19j
cGx1c3BsdXMKIH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsvR05VbWFr
ZWZpbGUuYW0gYi9Tb3VyY2UvV2ViS2l0L2d0ay9HTlVtYWtlZmlsZS5hbQppbmRleCA1NzY4ZGI3
ZDE4YzU0ZGFhMTk3NWVmYjNmMDFjMjY3ZTAwMTljMzQwLi45Y2ZmZjljZjIzOGI0MGQ3MTkyZDJj
MzhiOTU1YTFiZGE4ZmI5N2U0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9HTlVtYWtl
ZmlsZS5hbQorKysgYi9Tb3VyY2UvV2ViS2l0L2d0ay9HTlVtYWtlZmlsZS5hbQpAQCAtMjA1LDYg
KzIwNSw3IEBAIHdlYmtpdGd0a19zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViS2l0L2d0ay9XZWJD
b3JlU3VwcG9ydC9FZGl0b3JDbGllbnRHdGsuaCBcCiAJU291cmNlL1dlYktpdC9ndGsvV2ViQ29y
ZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuY3BwIFwKIAlTb3VyY2UvV2ViS2l0L2d0ay9X
ZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5oIFwKKwlTb3VyY2UvV2ViS2l0L2d0
ay9XZWJDb3JlU3VwcG9ydC9GcmFtZU5ldHdvcmtpbmdDb250ZXh0R3RrLmNwcCBcCiAJU291cmNl
L1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRnJhbWVOZXR3b3JraW5nQ29udGV4dEd0ay5oIFwK
IAlTb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9GdWxsc2NyZWVuVmlkZW9Db250cm9s
bGVyLmNwcCBcCiAJU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRnVsbHNjcmVlblZp
ZGVvQ29udHJvbGxlci5oIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVT
dXBwb3J0L0ZyYW1lTmV0d29ya2luZ0NvbnRleHRHdGsuY3BwIGIvU291cmNlL1dlYktpdC9ndGsv
V2ViQ29yZVN1cHBvcnQvRnJhbWVOZXR3b3JraW5nQ29udGV4dEd0ay5jcHAKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NGI5ZDEyNDkxMzI2OTY2NzhmNzQzZGRjMTgzMTVlZGRmZjMyMjFjOAotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTmV0d29ya2luZ0NvbnRl
eHRHdGsuY3BwCkBAIC0wLDAgKzEsMzUgQEAKKy8qCisgICAgQ29weXJpZ2h0IChDKSAyMDEwIE5v
a2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorICAgIENvcHlyaWdo
dCAoQykgMjAxMiBQcm9GVVNJT04gZW1iZWRkZWQgc3lzdGVtcworCisgICAgVGhpcyBsaWJyYXJ5
IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICAgIG1v
ZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGlj
CisgICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv
bjsgZWl0aGVyCisgICAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRp
b24pIGFueSBsYXRlciB2ZXJzaW9uLgorCisgICAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVk
IGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgICAgYnV0IFdJVEhPVVQgQU5Z
IFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAgICBNRVJD
SEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhl
IEdOVQorICAgIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxz
LgorCisgICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICAgIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBz
ZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgICAgdGhlIEZyZWUg
U29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9v
ciwKKyAgICBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyovCisKKyNpbmNsdWRlICJjb25m
aWcuaCIKKyNpbmNsdWRlICJGcmFtZU5ldHdvcmtpbmdDb250ZXh0R3RrLmgiCisKKyNpbmNsdWRl
ICJSZXNvdXJjZUhhbmRsZS5oIgorCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworbmFtZXNw
YWNlIFdlYktpdCB7CisKK1NvdXBTZXNzaW9uKiBGcmFtZU5ldHdvcmtpbmdDb250ZXh0R3RrOjpz
b3VwU2Vzc2lvbigpIGNvbnN0Cit7CisgICAgcmV0dXJuIFJlc291cmNlSGFuZGxlOjpkZWZhdWx0
U2Vzc2lvbigpOworfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3Jl
U3VwcG9ydC9GcmFtZU5ldHdvcmtpbmdDb250ZXh0R3RrLmggYi9Tb3VyY2UvV2ViS2l0L2d0ay9X
ZWJDb3JlU3VwcG9ydC9GcmFtZU5ldHdvcmtpbmdDb250ZXh0R3RrLmgKaW5kZXggOGU0YzIxNDhk
MjE2YmJlNGM1ZWYwM2JkYTExZDQyMGIzNDZhNDI2Yy4uYTU5YTk0MDk5YWJmZDFjN2MzNGJlODRm
NWMwODQzNDE0OGU3NTM4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1
cHBvcnQvRnJhbWVOZXR3b3JraW5nQ29udGV4dEd0ay5oCisrKyBiL1NvdXJjZS9XZWJLaXQvZ3Rr
L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTmV0d29ya2luZ0NvbnRleHRHdGsuaApAQCAtMzIsNiArMzIs
NyBAQCBwdWJsaWM6CiAgICAgfQogCiAgICAgV2ViQ29yZTo6RnJhbWUqIGNvcmVGcmFtZSgpIGNv
bnN0IHsgcmV0dXJuIGZyYW1lKCk7IH0KKyAgICB2aXJ0dWFsIFNvdXBTZXNzaW9uKiBzb3VwU2Vz
c2lvbigpIGNvbnN0OwogCiBwcml2YXRlOgogICAgIEZyYW1lTmV0d29ya2luZ0NvbnRleHRHdGso
V2ViQ29yZTo6RnJhbWUqIGZyYW1lKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>125648</attachid>
            <date>2012-02-06 08:09:02 -0800</date>
            <delta_ts>2012-02-13 12:12:00 -0800</delta_ts>
            <desc>Drop some USE(SOUP) checks now that it depends on bug 77874</desc>
            <filename>bug-77341-20120206141020.patch</filename>
            <type>text/plain</type>
            <size>30158</size>
            <attacher name="Raphael Kubo da Costa (:rakuco)">rakuco</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA2Nzk3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTYyODllMTA5Yzk1YmZh
MjQwNjk2NDY5YzZmNDQ5YTNhZmUxOWViMC4uNjVkYmUzMmE2NDA1MmU4YmE2ZDE3MDI0NGQ0MDhk
NmQ4Y2Y3M2FkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUxIEBACisyMDEyLTAxLTMxICBSYXBo
YWVsIEt1Ym8gZGEgQ29zdGEgIDxrdWJvQHByb2Z1c2lvbi5tb2JpPgorCisgICAgICAgIFtzb3Vw
XSBBZGQgc3VwcG9ydCBmb3IgbXVsdGlwbGUgU291cFNlc3Npb25zLgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzczNDEKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNYWtlIHRoZSBsaWJzb3VwIG5ldHdvcmsg
YmFja2VuZCBzdXBwb3J0IG11bHRpcGxlIFNvdXBTZXNzaW9ucy4gVGhpcyBpcworICAgICAgICBh
Y2NvbXBsaXNoZWQgYnkgdXNpbmcgdGhlIE5ldHdvcmtpbmdDb250ZXh0IGNsYXNzZXMsIHdoaWNo
IG5vdyBoYXZlIGEKKyAgICAgICAgYHNvdXBTZXNzaW9uKCknIG1ldGhvZCB3aGVuIHRoZSBsaWJz
b3VwIGJhY2tlbmQgaXMgYmVpbmcgdXNlZC4KKworICAgICAgICBsaWJzb3VwJ3MgUmVzb3VyY2VI
YW5kbGUgaW1wbGVtZW50YXRpb24gbm93IHJldHJpZXZlcyB0aGUgU291cFNlc3Npb24KKyAgICAg
ICAgdmlhIHRoZSBOZXR3b3JraW5nQ29udGV4dCBpdCByZWNlaXZlcyBpbnN0ZWFkIG9mIHJlbHlp
bmcgb24KKyAgICAgICAgZGVmYXVsdFNlc3Npb24oKS4gZGVmYXVsdFNlc3Npb24oKSBpcyBzdGls
bCB1c2VkIHdoZW4gYSBudWxsCisgICAgICAgIE5ldHdvcmtpbmdDb250ZXh0IGlzIHBhc3NlZCB0
byBSZXNvdXJjZUhhbmRsZTo6c3RhcnQgKGZvciBleGFtcGxlLCB2aWEKKyAgICAgICAgd2Via2l0
X2Rvd25sb2FkX3N0YXJ0KS4KKworICAgICAgICBUaGUgQ29va2llSmFyIGltcGxlbWVudGF0aW9u
IHJldHJpZXZlcyB0aGUgU291cFNlc3Npb24gZnJvbSB0aGUKKyAgICAgICAgTmV0d29ya2luZ0Nv
bnRleHQgYXMgbXVjaCBhcyBwb3NzaWJsZSBhcyB3ZWxsIC0tIHRoZSBmdW5jdGlvbnMgdXNlZCBi
eQorICAgICAgICBXZWJLaXQyIGNvdWxkIG5vdCBiZSBjb252ZXJ0ZWQsIHRob3VnaCwgYXMgdGhl
eSBzZWVtIHRvIGFzc3VtZSB0aGVyZSBpcworICAgICAgICBvbmx5IG9uZSBzaGFyZWQgY29va2ll
IGphci4KKworICAgICAgICBObyBuZXcgdGVzdHMsIGNvdmVyZWQgYnkgdGhlIGV4aXN0aW5nIG9u
ZXMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtpbmdDb250ZXh0Lmg6Cisg
ICAgICAgIChOZXR3b3JraW5nQ29udGV4dCk6IEFkZCBzb3VwU2Vzc2lvbigpIG1ldGhvZCBpZiBV
U0UoU09VUCkgaXMgc2V0LgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5k
bGVJbnRlcm5hbC5oOgorICAgICAgICAoUmVzb3VyY2VIYW5kbGVJbnRlcm5hbCk6CisgICAgICAg
ICogcGxhdGZvcm0vbmV0d29yay9zb3VwL0Nvb2tpZUphclNvdXAuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6bmV0d29ya2luZ0NvbnRleHQpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChX
ZWJDb3JlOjpkZWZhdWx0Q29va2llSmFyKToKKyAgICAgICAgKFdlYkNvcmU6OnNldENvb2tpZXMp
OgorICAgICAgICAoV2ViQ29yZTo6Y29va2llcyk6CisgICAgICAgIChXZWJDb3JlOjpjb29raWVS
ZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpjb29raWVzRW5hYmxl
ZCk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlSGFuZGxlU291cC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZUludGVybmFsOjpzb3VwU2Vzc2lv
bik6IEFkZCBtZXRob2QgdG8gcmV0cmlldmUKKyAgICAgICAgYSBTb3VwU2Vzc2lvbiBmcm9tIGEg
TmV0d29ya2luZ0NvbnRleHQgYW5kIGZhbGxiYWNrIHRvIGRlZmF1bHRTZXNzaW9uKCkKKyAgICAg
ICAgaWYgdGhlcmUncyBubyB2YWxpZCBOZXR3b3JraW5nQ29udGV4dC4KKyAgICAgICAgKFdlYkNv
cmUpOgorICAgICAgICAoV2ViQ29yZTo6ZW5zdXJlU2Vzc2lvbklzSW5pdGlhbGl6ZWQpOiBPbmx5
IGNoYW5nZSBvciB1c2UgdGhlIGRlZmF1bHQKKyAgICAgICAgY29va2llIGphciBpZiB0aGUgU291
cFNlc3Npb24gYmVpbmcgY2hhbmdlZCBpcyB0aGUgZGVmYXVsdCBvbmUuCisgICAgICAgIChXZWJD
b3JlOjpzZW5kUmVxdWVzdENhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OnN0YXJ0SFRUUFJl
cXVlc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OmNhbmNlbCk6CisgICAg
ICAgIChXZWJDb3JlOjpzdGFydE5vbkhUVFBSZXF1ZXN0KToKKwogMjAxMi0wMi0wNiAgUmFwaGFl
bCBLdWJvIGRhIENvc3RhICA8a3Vib0Bwcm9mdXNpb24ubW9iaT4KIAogICAgICAgICBbRUZMXSBE
cm9wIHN1cHBvcnQgZm9yIHRoZSBDdXJsIG5ldHdvcmsgYmFja2VuZC4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZwpp
bmRleCBjZDE5YThkOGZmYWVkOWM1ZmE0MWI2N2I1NjIxYzZjM2NhOTkxZWU5Li4wODI1MDgwN2Q3
NWFkYTE0NGZkNmM2Y2U4MjQyMTI0MzRjNzRjNWU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L2VmbC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsNDIgQEAKKzIwMTItMDEtMzEgIFJhcGhhZWwgS3VibyBkYSBDb3N0YSAgPGt1Ym9AcHJvZnVz
aW9uLm1vYmk+CisKKyAgICAgICAgW3NvdXBdIEFkZCBzdXBwb3J0IGZvciBtdWx0aXBsZSBTb3Vw
U2Vzc2lvbnMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD03NzM0MQorCisgICAgICAgIEFkZCB0aGUgbmVjZXNzYXJ5IGluZnJhc3RydWN0dXJlIHRvIHN1
cHBvcnQgbXVsdGlwbGUgU291cFNlc3Npb25zLiBFYWNoCisgICAgICAgIFdlYlZpZXcgbm93IGhh
cyBhICJzZXNzaW9uIiBwcm9wZXJ0eSwgd2hpY2ggZGVmYXVsdHMgdG8KKyAgICAgICAgUmVzb3Vy
Y2VIYW5kbGU6OmRlZmF1bHRTZXNzaW9uKCkgYW5kIGNhbiBiZSBjaGFuZ2VkIHRvIGFub3RoZXIK
KyAgICAgICAgU291cFNlc3Npb24gYnkgdGhlIHVzZXIuCisKKyAgICAgICAgU29tZSBBUEkgaW4g
ZXdrX25ldHdvcmsgYW5kIGV3a192aWV3IHdoaWNoIHJlcXVpcmVkIFNvdXBTZXNzaW9uIHRvIGJl
IGEKKyAgICAgICAgdmFsaWQgdHlwZSBpbiB0aGUgaGVhZGVycyBoYXMgbm93IGJlZW4gbW92ZWQg
aW5zaWRlICNpZiBVU0UoU09VUCkKKyAgICAgICAgaWZkZWZzIHNvIHdlIGNhbiBhY3R1YWxseSB0
aGUgcmVxdWlyZWQgU291cCBoZWFkZXIgYW5kIGF2b2lkIGJ1aWxkCisgICAgICAgIHByb2JsZW1z
IHdpdGggZHVwbGljYXRlIHR5cGVkZWZzLgorCisgICAgICAgICogQ01ha2VMaXN0c0VmbC50eHQ6
CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRFZmwuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXJDbGllbnRFZmw6OmNyZWF0ZU5ldHdvcmtpbmdDb250
ZXh0KToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFtZU5ldHdvcmtpbmdDb250ZXh0RWZs
LmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRnJhbWVO
ZXR3b3JraW5nQ29udGV4dEVmbC5oLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJD
b3JlOjpGcmFtZU5ldHdvcmtpbmdDb250ZXh0RWZsOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29y
ZTo6RnJhbWVOZXR3b3JraW5nQ29udGV4dEVmbDo6RnJhbWVOZXR3b3JraW5nQ29udGV4dEVmbCk6
CisgICAgICAgIChXZWJDb3JlOjpGcmFtZU5ldHdvcmtpbmdDb250ZXh0RWZsOjpzb3VwU2Vzc2lv
bik6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVOZXR3b3JraW5nQ29udGV4dEVmbC5o
OgorICAgICAgICAoRnJhbWVOZXR3b3JraW5nQ29udGV4dEVmbCk6CisgICAgICAgICogZXdrL2V3
a19jb29raWVzLmg6IE1lbnRpb24gdGhpcyBBUEkgaXMgb25seSB2YWxpZCB3aXRoIHRoZQorICAg
ICAgICBkZWZhdWx0IFNvdXBTZXNzaW9uLgorICAgICAgICAqIGV3ay9ld2tfbmV0d29yay5jcHA6
CisgICAgICAgIChld2tfbmV0d29ya19kZWZhdWx0X3NvdXBfc2Vzc2lvbl9nZXQpOiBEZWZpbmUg
b25seSBpZiBVU0UoU09VUCkgaXMgc2V0LgorICAgICAgICAqIGV3ay9ld2tfbmV0d29yay5oOiBE
aXR0bywgYW5kIG1lbnRpb24gdGhpcyBBUEkgaXMgb25seSB2YWxpZCB3aXRoIHRoZQorICAgICAg
ICBkZWZhdWx0IFNvdXBTZXNzaW9uLgorICAgICAgICAqIGV3ay9ld2tfdmlldy5jcHA6CisgICAg
ICAgIChfRXdrX1ZpZXdfUHJpdmF0ZV9EYXRhKToKKyAgICAgICAgKF9ld2tfdmlld19wcml2X25l
dyk6CisgICAgICAgIChld2tfdmlld19zb3VwX3Nlc3Npb25fZ2V0KToKKyAgICAgICAgKGV3a192
aWV3X3NvdXBfc2Vzc2lvbl9zZXQpOgorICAgICAgICAqIGV3ay9ld2tfdmlldy5oOgorICAgICAg
ICAoKToKKwogMjAxMi0wMi0wNiAgUmFwaGFlbCBLdWJvIGRhIENvc3RhICA8a3Vib0Bwcm9mdXNp
b24ubW9iaT4KIAogICAgICAgICBbRUZMXSBEcm9wIHN1cHBvcnQgZm9yIHRoZSBDdXJsIG5ldHdv
cmsgYmFja2VuZC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZwppbmRleCBhM2ViMGU3ODY1MDY2MjJkMTU3MDUxNDc3
ZGM2YzliYmYzZmFiNGQ3Li41NGIxZTQwNzcyYTE5YmQ0MjMwMjFhYTZhODUxM2M0ZjM1YzAyODQ4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YktpdC9ndGsvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTItMDEtMzEgIFJhcGhhZWwg
S3VibyBkYSBDb3N0YSAgPGt1Ym9AcHJvZnVzaW9uLm1vYmk+CisKKyAgICAgICAgW3NvdXBdIEFk
ZCBzdXBwb3J0IGZvciBtdWx0aXBsZSBTb3VwU2Vzc2lvbnMuCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NzM0MQorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkYXB0IHRvIHRoZSBjaGFuZ2VzIHRvIEZyYW1l
TmV0d29ya2luZ0NvbnRleHQgaW4gV2ViQ29yZS4KKworICAgICAgICAqIEdOVW1ha2VmaWxlLmFt
OgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1lTmV0d29ya2luZ0NvbnRleHRHdGsuY3Bw
OiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9GcmFtZU5ldHdv
cmtpbmdDb250ZXh0R3RrLmguCisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoV2ViS2l0OjpG
cmFtZU5ldHdvcmtpbmdDb250ZXh0R3RrOjpzb3VwU2Vzc2lvbik6IEFsd2F5cyByZXR1cm4gUmVz
b3VyY2VIYW5kbGU6OmRlZmF1bHRTZXNzaW9uKCkuCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQv
RnJhbWVOZXR3b3JraW5nQ29udGV4dEd0ay5oOgorICAgICAgICAoRnJhbWVOZXR3b3JraW5nQ29u
dGV4dEd0ayk6CisKIDIwMTItMDItMDYgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBp
Z2FsaWEuY29tPgogCiAgICAgICAgIFtHVEtdIFVwZGF0ZSBORVdTIGFuZCBjb25maWd1cmUuYWMg
Zm9yIDEuNy41IHJlbGVhc2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvTmV0d29ya2luZ0NvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvTmV0d29ya2luZ0NvbnRleHQuaAppbmRleCBmMmIxMGM0NDViZDA1N2Q2MzQ0NzYwZjg5N2Mz
NGNmNWJlYmIyODAxLi4wNDYwODVjMmY2YjQ1ZmJkYzExNGI5YTYwZTFhYWM1OWIzNWM2OTYwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtpbmdDb250
ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3JraW5nQ29u
dGV4dC5oCkBAIC0zNSw2ICszNSwxMCBAQCBjbGFzcyBRVXJsOwogUVRfRU5EX05BTUVTUEFDRQog
I2VuZGlmCiAKKyNpZiBVU0UoU09VUCkKK3R5cGVkZWYgc3RydWN0IF9Tb3VwU2Vzc2lvbiBTb3Vw
U2Vzc2lvbjsKKyNlbmRpZgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFJlc291cmNl
RXJyb3I7CkBAIC02Niw2ICs3MCwxMCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBSZXNvdXJjZUVy
cm9yIGJsb2NrZWRFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmKSBjb25zdCA9IDA7CiAjZW5k
aWYKIAorI2lmIFVTRShTT1VQKQorICAgIHZpcnR1YWwgU291cFNlc3Npb24qIHNvdXBTZXNzaW9u
KCkgY29uc3QgPSAwOworI2VuZGlmCisKIHByb3RlY3RlZDoKICAgICBOZXR3b3JraW5nQ29udGV4
dCgpIHsgfQogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
UmVzb3VyY2VIYW5kbGVJbnRlcm5hbC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9SZXNvdXJjZUhhbmRsZUludGVybmFsLmgKaW5kZXggODc3OTk3OTYzODg0YmRkYmQ3YTc2YzA2
YTI5ZWY2ODFkZWFkZjE2Ni4uYmM3OWVkMTJiNmNhZmEyNjJlZDQ5YmVlZjk4Yjk3NzRjNWZhNmM4
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhh
bmRsZUludGVybmFsLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNv
dXJjZUhhbmRsZUludGVybmFsLmgKQEAgLTE4OSw2ICsxODksNyBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAgICAgICAgIHVuc2lnbmVkIGxvbmcgbV9ib2R5U2l6ZTsKICAgICAgICAgdW5zaWduZWQg
bG9uZyBtX2JvZHlEYXRhU2VudDsKICAgICAgICAgUmVmUHRyPE5ldHdvcmtpbmdDb250ZXh0PiBt
X2NvbnRleHQ7CisgICAgICAgIFNvdXBTZXNzaW9uKiBzb3VwU2Vzc2lvbigpOwogI2VuZGlmCiAj
aWYgUExBVEZPUk0oUVQpCiAgICAgICAgIFFOZXR3b3JrUmVwbHlIYW5kbGVyKiBtX2pvYjsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9Db29raWVKYXJT
b3VwLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9Db29raWVKYXJT
b3VwLmNwcAppbmRleCBmMTcwZDJkNTRlNzFiZjk2MGM2OWZlMjFjMjk2MTIyNDVhM2ZiOGM3Li4z
ZWE5MmVkNWEwNTJmNjc3ZGE0MzIzYTA0YjMzMjRhYmUxMGUwNzc2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvQ29va2llSmFyU291cC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL0Nvb2tpZUphclNvdXAuY3BwCkBA
IC0yMyw4ICsyMywxMiBAQAogCiAjaW5jbHVkZSAiQ29va2llLmgiCiAjaW5jbHVkZSAiRG9jdW1l
bnQuaCIKKyNpbmNsdWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIkZyYW1lTG9hZGVyLmgiCiAjaW5j
bHVkZSAiR093blB0clNvdXAuaCIKICNpbmNsdWRlICJLVVJMLmgiCisjaW5jbHVkZSAiTmV0d29y
a2luZ0NvbnRleHQuaCIKKyNpbmNsdWRlICJSZXNvdXJjZUhhbmRsZS5oIgogI2luY2x1ZGUgPHd0
Zi90ZXh0L0NTdHJpbmcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMzIsNiArMzYsMTkg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogc3RhdGljIGJvb2wgY29va2llc0luaXRpYWxpemVkOwog
c3RhdGljIFNvdXBDb29raWVKYXIqIGNvb2tpZUphcjsKIAorc3RhdGljIE5ldHdvcmtpbmdDb250
ZXh0KiBuZXR3b3JraW5nQ29udGV4dChjb25zdCBEb2N1bWVudCogZG9jdW1lbnQpCit7CisgICAg
aWYgKCFkb2N1bWVudCkKKyAgICAgICAgcmV0dXJuIDA7CisgICAgY29uc3QgRnJhbWUqIGZyYW1l
ID0gZG9jdW1lbnQtPmZyYW1lKCk7CisgICAgaWYgKCFmcmFtZSkKKyAgICAgICAgcmV0dXJuIDA7
CisgICAgY29uc3QgRnJhbWVMb2FkZXIqIGxvYWRlciA9IGZyYW1lLT5sb2FkZXIoKTsKKyAgICBp
ZiAoIWxvYWRlcikKKyAgICAgICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIGxvYWRlci0+bmV0d29y
a2luZ0NvbnRleHQoKTsKK30KKwogU291cENvb2tpZUphciogZGVmYXVsdENvb2tpZUphcigpCiB7
CiAgICAgaWYgKCFjb29raWVzSW5pdGlhbGl6ZWQpIHsKQEAgLTU5LDcgKzc2LDExIEBAIHZvaWQg
c2V0RGVmYXVsdENvb2tpZUphcihTb3VwQ29va2llSmFyKiBqYXIpCiAKIHZvaWQgc2V0Q29va2ll
cyhEb2N1bWVudCogZG9jdW1lbnQsIGNvbnN0IEtVUkwmIHVybCwgY29uc3QgU3RyaW5nJiB2YWx1
ZSkKIHsKLSAgICBTb3VwQ29va2llSmFyKiBqYXIgPSBkZWZhdWx0Q29va2llSmFyKCk7CisgICAg
Y29uc3QgTmV0d29ya2luZ0NvbnRleHQqIGNvbnRleHQgPSBuZXR3b3JraW5nQ29udGV4dChkb2N1
bWVudCk7CisgICAgaWYgKCFjb250ZXh0KQorICAgICAgICByZXR1cm47CisKKyAgICBTb3VwQ29v
a2llSmFyKiBqYXIgPSBTT1VQX0NPT0tJRV9KQVIoc291cF9zZXNzaW9uX2dldF9mZWF0dXJlKGNv
bnRleHQtPnNvdXBTZXNzaW9uKCksIFNPVVBfVFlQRV9DT09LSUVfSkFSKSk7CiAgICAgaWYgKCFq
YXIpCiAgICAgICAgIHJldHVybjsKIApAQCAtNzMsOSArOTQsMTMgQEAgdm9pZCBzZXRDb29raWVz
KERvY3VtZW50KiBkb2N1bWVudCwgY29uc3QgS1VSTCYgdXJsLCBjb25zdCBTdHJpbmcmIHZhbHVl
KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUu
dXRmOCgpLmRhdGEoKSk7CiB9CiAKLVN0cmluZyBjb29raWVzKGNvbnN0IERvY3VtZW50KiAvKmRv
Y3VtZW50Ki8sIGNvbnN0IEtVUkwmIHVybCkKK1N0cmluZyBjb29raWVzKGNvbnN0IERvY3VtZW50
KiBkb2N1bWVudCwgY29uc3QgS1VSTCYgdXJsKQogewotICAgIFNvdXBDb29raWVKYXIqIGphciA9
IGRlZmF1bHRDb29raWVKYXIoKTsKKyAgICBjb25zdCBOZXR3b3JraW5nQ29udGV4dCogY29udGV4
dCA9IG5ldHdvcmtpbmdDb250ZXh0KGRvY3VtZW50KTsKKyAgICBpZiAoIWNvbnRleHQpCisgICAg
ICAgIHJldHVybiBTdHJpbmcoKTsKKworICAgIFNvdXBDb29raWVKYXIqIGphciA9IFNPVVBfQ09P
S0lFX0pBUihzb3VwX3Nlc3Npb25fZ2V0X2ZlYXR1cmUoY29udGV4dC0+c291cFNlc3Npb24oKSwg
U09VUF9UWVBFX0NPT0tJRV9KQVIpKTsKICAgICBpZiAoIWphcikKICAgICAgICAgcmV0dXJuIFN0
cmluZygpOwogCkBAIC04OSw5ICsxMTQsMTMgQEAgU3RyaW5nIGNvb2tpZXMoY29uc3QgRG9jdW1l
bnQqIC8qZG9jdW1lbnQqLywgY29uc3QgS1VSTCYgdXJsKQogICAgIHJldHVybiByZXN1bHQ7CiB9
CiAKLVN0cmluZyBjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShjb25zdCBEb2N1bWVudCog
Lypkb2N1bWVudCovLCBjb25zdCBLVVJMJiB1cmwpCitTdHJpbmcgY29va2llUmVxdWVzdEhlYWRl
ckZpZWxkVmFsdWUoY29uc3QgRG9jdW1lbnQqIGRvY3VtZW50LCBjb25zdCBLVVJMJiB1cmwpCiB7
Ci0gICAgU291cENvb2tpZUphciogamFyID0gZGVmYXVsdENvb2tpZUphcigpOworICAgIGNvbnN0
IE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0ID0gbmV0d29ya2luZ0NvbnRleHQoZG9jdW1lbnQp
OworICAgIGlmICghY29udGV4dCkKKyAgICAgICAgcmV0dXJuIFN0cmluZygpOworCisgICAgU291
cENvb2tpZUphciogamFyID0gU09VUF9DT09LSUVfSkFSKHNvdXBfc2Vzc2lvbl9nZXRfZmVhdHVy
ZShjb250ZXh0LT5zb3VwU2Vzc2lvbigpLCBTT1VQX1RZUEVfQ09PS0lFX0pBUikpOwogICAgIGlm
ICghamFyKQogICAgICAgICByZXR1cm4gU3RyaW5nKCk7CiAKQEAgLTEwNSw5ICsxMzQsMTMgQEAg
U3RyaW5nIGNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKGNvbnN0IERvY3VtZW50KiAvKmRv
Y3VtZW50Ki8sIGNvbnN0IEtVUkwmIHUKICAgICByZXR1cm4gcmVzdWx0OwogfQogCi1ib29sIGNv
b2tpZXNFbmFibGVkKGNvbnN0IERvY3VtZW50KiAvKmRvY3VtZW50Ki8pCitib29sIGNvb2tpZXNF
bmFibGVkKGNvbnN0IERvY3VtZW50KiBkb2N1bWVudCkKIHsKLSAgICByZXR1cm4gZGVmYXVsdENv
b2tpZUphcigpOworICAgIGNvbnN0IE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0ID0gbmV0d29y
a2luZ0NvbnRleHQoZG9jdW1lbnQpOworICAgIGlmICghY29udGV4dCkKKyAgICAgICAgcmV0dXJu
IGZhbHNlOworCisgICAgcmV0dXJuICEhKFNPVVBfQ09PS0lFX0pBUihzb3VwX3Nlc3Npb25fZ2V0
X2ZlYXR1cmUoY29udGV4dC0+c291cFNlc3Npb24oKSwgU09VUF9UWVBFX0NPT0tJRV9KQVIpKSk7
CiB9CiAKIGJvb2wgZ2V0UmF3Q29va2llcyhjb25zdCBEb2N1bWVudCosIGNvbnN0IEtVUkwmLCBW
ZWN0b3I8Q29va2llPiYgcmF3Q29va2llcykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUhhbmRsZVNvdXAuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlSGFuZGxlU291cC5jcHAKaW5kZXggNWNi
NTNiZGZmNGZhYjU2OTMzYTEzMTlhYzZiYWM3YTYwZmIwOWZlYi4uODA1OGE1ZDk0YzdkMDFlYWIy
MGVmNDIxYTYxZGZiZGI3OTRkODdhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9zb3VwL1Jlc291cmNlSGFuZGxlU291cC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlSGFuZGxlU291cC5jcHAKQEAgLTE0MSw2
ICsxNDEsMTEgQEAgUmVzb3VyY2VIYW5kbGVJbnRlcm5hbDo6flJlc291cmNlSGFuZGxlSW50ZXJu
YWwoKQogewogfQogCitTb3VwU2Vzc2lvbiogUmVzb3VyY2VIYW5kbGVJbnRlcm5hbDo6c291cFNl
c3Npb24oKQoreworICAgIHJldHVybiAobV9jb250ZXh0ICYmIG1fY29udGV4dC0+aXNWYWxpZCgp
KSA/IG1fY29udGV4dC0+c291cFNlc3Npb24oKSA6IFJlc291cmNlSGFuZGxlOjpkZWZhdWx0U2Vz
c2lvbigpOworfQorCiBSZXNvdXJjZUhhbmRsZTo6flJlc291cmNlSGFuZGxlKCkKIHsKICAgICBj
bGVhbnVwU291cFJlcXVlc3RPcGVyYXRpb24odGhpcywgdHJ1ZSk7CkBAIC0xNTEsMTEgKzE1Niwx
MyBAQCBzdGF0aWMgdm9pZCBlbnN1cmVTZXNzaW9uSXNJbml0aWFsaXplZChTb3VwU2Vzc2lvbiog
c2Vzc2lvbikKICAgICBpZiAoZ19vYmplY3RfZ2V0X2RhdGEoR19PQkpFQ1Qoc2Vzc2lvbiksICJ3
ZWJraXQtaW5pdCIpKQogICAgICAgICByZXR1cm47CiAKLSAgICBTb3VwQ29va2llSmFyKiBqYXIg
PSBTT1VQX0NPT0tJRV9KQVIoc291cF9zZXNzaW9uX2dldF9mZWF0dXJlKHNlc3Npb24sIFNPVVBf
VFlQRV9DT09LSUVfSkFSKSk7Ci0gICAgaWYgKCFqYXIpCi0gICAgICAgIHNvdXBfc2Vzc2lvbl9h
ZGRfZmVhdHVyZShzZXNzaW9uLCBTT1VQX1NFU1NJT05fRkVBVFVSRShkZWZhdWx0Q29va2llSmFy
KCkpKTsKLSAgICBlbHNlCi0gICAgICAgIHNldERlZmF1bHRDb29raWVKYXIoamFyKTsKKyAgICBp
ZiAoc2Vzc2lvbiA9PSBSZXNvdXJjZUhhbmRsZTo6ZGVmYXVsdFNlc3Npb24oKSkgeworICAgICAg
ICBTb3VwQ29va2llSmFyKiBqYXIgPSBTT1VQX0NPT0tJRV9KQVIoc291cF9zZXNzaW9uX2dldF9m
ZWF0dXJlKHNlc3Npb24sIFNPVVBfVFlQRV9DT09LSUVfSkFSKSk7CisgICAgICAgIGlmICghamFy
KQorICAgICAgICAgICAgc291cF9zZXNzaW9uX2FkZF9mZWF0dXJlKHNlc3Npb24sIFNPVVBfU0VT
U0lPTl9GRUFUVVJFKGRlZmF1bHRDb29raWVKYXIoKSkpOworICAgICAgICBlbHNlCisgICAgICAg
ICAgICBzZXREZWZhdWx0Q29va2llSmFyKGphcik7CisgICAgfQogCiAgICAgaWYgKCFzb3VwX3Nl
c3Npb25fZ2V0X2ZlYXR1cmUoc2Vzc2lvbiwgU09VUF9UWVBFX0xPR0dFUikgJiYgTG9nTmV0d29y
ay5zdGF0ZSA9PSBXVEZMb2dDaGFubmVsT24pIHsKICAgICAgICAgU291cExvZ2dlciogbG9nZ2Vy
ID0gc291cF9sb2dnZXJfbmV3KHN0YXRpY19jYXN0PFNvdXBMb2dnZXJMb2dMZXZlbD4oU09VUF9M
T0dHRVJfTE9HX0JPRFkpLCAtMSk7CkBAIC0zMTksNyArMzI2LDcgQEAgc3RhdGljIHZvaWQgc2Vu
ZFJlcXVlc3RDYWxsYmFjayhHT2JqZWN0KiBzb3VyY2UsIEdBc3luY1Jlc3VsdCogcmVzLCBncG9p
bnRlciBkYXQKICAgICAgICAgZC0+bV9yZXNwb25zZS51cGRhdGVGcm9tU291cE1lc3NhZ2Uoc291
cE1lc3NhZ2UpOwogCiAgICAgICAgIGlmIChkLT5tX2RlZmVyc0xvYWRpbmcpCi0gICAgICAgICAg
ICBzb3VwX3Nlc3Npb25fcGF1c2VfbWVzc2FnZShoYW5kbGUtPmRlZmF1bHRTZXNzaW9uKCksIHNv
dXBNZXNzYWdlKTsKKyAgICAgICAgICAgIHNvdXBfc2Vzc2lvbl9wYXVzZV9tZXNzYWdlKGQtPnNv
dXBTZXNzaW9uKCksIHNvdXBNZXNzYWdlKTsKICAgICB9IGVsc2UgewogICAgICAgICBkLT5tX3Jl
c3BvbnNlLnNldFVSTChoYW5kbGUtPmZpcnN0UmVxdWVzdCgpLnVybCgpKTsKICAgICAgICAgY29u
c3QgZ2NoYXIqIGNvbnRlbnRUeXBlID0gc291cF9yZXF1ZXN0X2dldF9jb250ZW50X3R5cGUoZC0+
bV9zb3VwUmVxdWVzdC5nZXQoKSk7CkBAIC00NDIsMTIgKzQ0OSwxMiBAQCBzdGF0aWMgYm9vbCBz
dGFydEhUVFBSZXF1ZXN0KFJlc291cmNlSGFuZGxlKiBoYW5kbGUpCiB7CiAgICAgQVNTRVJUKGhh
bmRsZSk7CiAKLSAgICBTb3VwU2Vzc2lvbiogc2Vzc2lvbiA9IGhhbmRsZS0+ZGVmYXVsdFNlc3Np
b24oKTsKKyAgICBSZXNvdXJjZUhhbmRsZUludGVybmFsKiBkID0gaGFuZGxlLT5nZXRJbnRlcm5h
bCgpOworCisgICAgU291cFNlc3Npb24qIHNlc3Npb24gPSBkLT5zb3VwU2Vzc2lvbigpOwogICAg
IGVuc3VyZVNlc3Npb25Jc0luaXRpYWxpemVkKHNlc3Npb24pOwogICAgIFNvdXBSZXF1ZXN0ZXIq
IHJlcXVlc3RlciA9IFNPVVBfUkVRVUVTVEVSKHNvdXBfc2Vzc2lvbl9nZXRfZmVhdHVyZShzZXNz
aW9uLCBTT1VQX1RZUEVfUkVRVUVTVEVSKSk7CiAKLSAgICBSZXNvdXJjZUhhbmRsZUludGVybmFs
KiBkID0gaGFuZGxlLT5nZXRJbnRlcm5hbCgpOwotCiAgICAgUmVzb3VyY2VSZXF1ZXN0IHJlcXVl
c3QoaGFuZGxlLT5maXJzdFJlcXVlc3QoKSk7CiAgICAgS1VSTCB1cmwocmVxdWVzdC51cmwoKSk7
CiAgICAgdXJsLnJlbW92ZUZyYWdtZW50SWRlbnRpZmllcigpOwpAQCAtNTUyLDcgKzU1OSw3IEBA
IHZvaWQgUmVzb3VyY2VIYW5kbGU6OmNhbmNlbCgpCiB7CiAgICAgZC0+bV9jYW5jZWxsZWQgPSB0
cnVlOwogICAgIGlmIChkLT5tX3NvdXBNZXNzYWdlKQotICAgICAgICBzb3VwX3Nlc3Npb25fY2Fu
Y2VsX21lc3NhZ2UoZGVmYXVsdFNlc3Npb24oKSwgZC0+bV9zb3VwTWVzc2FnZS5nZXQoKSwgU09V
UF9TVEFUVVNfQ0FOQ0VMTEVEKTsKKyAgICAgICAgc291cF9zZXNzaW9uX2NhbmNlbF9tZXNzYWdl
KGQtPnNvdXBTZXNzaW9uKCksIGQtPm1fc291cE1lc3NhZ2UuZ2V0KCksIFNPVVBfU1RBVFVTX0NB
TkNFTExFRCk7CiAgICAgZWxzZSBpZiAoZC0+bV9jYW5jZWxsYWJsZSkKICAgICAgICAgZ19jYW5j
ZWxsYWJsZV9jYW5jZWwoZC0+bV9jYW5jZWxsYWJsZS5nZXQoKSk7CiB9CkBAIC02ODcsMTAgKzY5
NCwxMSBAQCBzdGF0aWMgYm9vbCBzdGFydE5vbkhUVFBSZXF1ZXN0KFJlc291cmNlSGFuZGxlKiBo
YW5kbGUsIEtVUkwgdXJsKQogICAgIGlmIChoYW5kbGUtPmZpcnN0UmVxdWVzdCgpLmh0dHBNZXRo
b2QoKSAhPSAiR0VUIiAmJiBoYW5kbGUtPmZpcnN0UmVxdWVzdCgpLmh0dHBNZXRob2QoKSAhPSAi
UE9TVCIpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIFNvdXBTZXNzaW9uKiBzZXNzaW9u
ID0gaGFuZGxlLT5kZWZhdWx0U2Vzc2lvbigpOworICAgIFJlc291cmNlSGFuZGxlSW50ZXJuYWwq
IGQgPSBoYW5kbGUtPmdldEludGVybmFsKCk7CisKKyAgICBTb3VwU2Vzc2lvbiogc2Vzc2lvbiA9
IGQtPnNvdXBTZXNzaW9uKCk7CiAgICAgZW5zdXJlU2Vzc2lvbklzSW5pdGlhbGl6ZWQoc2Vzc2lv
bik7CiAgICAgU291cFJlcXVlc3RlciogcmVxdWVzdGVyID0gU09VUF9SRVFVRVNURVIoc291cF9z
ZXNzaW9uX2dldF9mZWF0dXJlKHNlc3Npb24sIFNPVVBfVFlQRV9SRVFVRVNURVIpKTsKLSAgICBS
ZXNvdXJjZUhhbmRsZUludGVybmFsKiBkID0gaGFuZGxlLT5nZXRJbnRlcm5hbCgpOwogCiAgICAg
Q1N0cmluZyB1cmxTdHIgPSB1cmwuc3RyaW5nKCkudXRmOCgpOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L2VmbC9DTWFrZUxpc3RzRWZsLnR4dCBiL1NvdXJjZS9XZWJLaXQvZWZsL0NNYWtl
TGlzdHNFZmwudHh0CmluZGV4IDdiZDJhMDM2MzBjYTY3ZDA3MzgyZmQzMzdlNTQ0NjYyYjVhYWU5
ZWYuLjU0MGE2M2VlYWQxN2ZkYjQ5Y2JjOTczZjMyYjMxZjQ5MWIzZGIyZDIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvZWZsL0NNYWtlTGlzdHNFZmwudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQv
ZWZsL0NNYWtlTGlzdHNFZmwudHh0CkBAIC03NCw2ICs3NCw3IEBAIExJU1QoQVBQRU5EIFdlYktp
dF9TT1VSQ0VTCiAgICAgZWZsL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEVm
bC5jcHAKICAgICBlZmwvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50RWZsLmNwcAogICAgIGVm
bC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEVmbC5jcHAKKyAgICBlZmwvV2ViQ29y
ZVN1cHBvcnQvRnJhbWVOZXR3b3JraW5nQ29udGV4dEVmbC5jcHAKICAgICBlZmwvV2ViQ29yZVN1
cHBvcnQvRnVsbHNjcmVlblZpZGVvQ29udHJvbGxlckVmbC5jcHAKICAgICBlZmwvV2ViQ29yZVN1
cHBvcnQvSWNvbkRhdGFiYXNlQ2xpZW50RWZsLmNwcAogICAgIGVmbC9XZWJDb3JlU3VwcG9ydC9J
bnNwZWN0b3JDbGllbnRFZmwuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJD
b3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEVmbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9X
ZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEVmbC5jcHAKaW5kZXggNzA5ZDRlYWM5NmY2
NDA0YmVmZmJkM2MxY2ZjMWQzN2M0NzIxYTkwZC4uMDA5NmI4ODc0MjdlMWVkNjZmYThjMmNkNDMy
NmZmMzk5ODVhOGYzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBv
cnQvRnJhbWVMb2FkZXJDbGllbnRFZmwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNv
cmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50RWZsLmNwcApAQCAtOTQ3LDcgKzk0Nyw3IEBAIHZv
aWQgRnJhbWVMb2FkZXJDbGllbnRFZmw6OmRpc3BhdGNoRGlkQmVjb21lRnJhbWVzZXQoYm9vbCkK
IAogUGFzc1JlZlB0cjxGcmFtZU5ldHdvcmtpbmdDb250ZXh0PiBGcmFtZUxvYWRlckNsaWVudEVm
bDo6Y3JlYXRlTmV0d29ya2luZ0NvbnRleHQoKQogewotICAgIHJldHVybiBGcmFtZU5ldHdvcmtp
bmdDb250ZXh0RWZsOjpjcmVhdGUoRVdLUHJpdmF0ZTo6Y29yZUZyYW1lKG1fZnJhbWUpKTsKKyAg
ICByZXR1cm4gRnJhbWVOZXR3b3JraW5nQ29udGV4dEVmbDo6Y3JlYXRlKEVXS1ByaXZhdGU6OmNv
cmVGcmFtZShtX2ZyYW1lKSwgbV9mcmFtZSk7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTmV0d29ya2luZ0NvbnRleHRFZmwuY3BwIGIv
U291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRnJhbWVOZXR3b3JraW5nQ29udGV4dEVm
bC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uOGMyMGIyMTNhYWQyMDg3ZDc1ODg2MDJlNDI1NDkwMDVmMDk1Yzk0
NgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0Zy
YW1lTmV0d29ya2luZ0NvbnRleHRFZmwuY3BwCkBAIC0wLDAgKzEsNTcgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1p
ZXMpCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgU2Ftc3VuZyBFbGVjdHJvbmljcworICogQ29weXJp
Z2h0IChDKSAyMDEyIFByb0ZVU0lPTiBlbWJlZGRlZCBzeXN0ZW1zCisgKgorICogQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICog
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRnJhbWVO
ZXR3b3JraW5nQ29udGV4dEVmbC5oIgorCisjaW5jbHVkZSAiUmVzb3VyY2VIYW5kbGUuaCIKKyNp
bmNsdWRlICJld2tfZnJhbWUuaCIKKyNpbmNsdWRlICJld2tfdmlldy5oIgorCisjaW5jbHVkZSA8
RXZhcy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1Bhc3NSZWZQdHI8RnJhbWVOZXR3b3Jr
aW5nQ29udGV4dEVmbD4gRnJhbWVOZXR3b3JraW5nQ29udGV4dEVmbDo6Y3JlYXRlKEZyYW1lKiBm
cmFtZSwgRXZhc19PYmplY3QqIGV3a0ZyYW1lKQoreworICAgIHJldHVybiBhZG9wdFJlZihuZXcg
RnJhbWVOZXR3b3JraW5nQ29udGV4dEVmbChmcmFtZSwgZXdrRnJhbWUpKTsKK30KKworRnJhbWVO
ZXR3b3JraW5nQ29udGV4dEVmbDo6RnJhbWVOZXR3b3JraW5nQ29udGV4dEVmbChGcmFtZSogZnJh
bWUsIEV2YXNfT2JqZWN0KiBld2tGcmFtZSkKKyAgICA6IEZyYW1lTmV0d29ya2luZ0NvbnRleHQo
ZnJhbWUpCisgICAgLCBtX2V3a0ZyYW1lKGV3a0ZyYW1lKQoreworfQorCitTb3VwU2Vzc2lvbiog
RnJhbWVOZXR3b3JraW5nQ29udGV4dEVmbDo6c291cFNlc3Npb24oKSBjb25zdAoreworICAgIHJl
dHVybiBld2tfdmlld19zb3VwX3Nlc3Npb25fZ2V0KGV3a19mcmFtZV92aWV3X2dldChtX2V3a0Zy
YW1lKSk7Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBw
b3J0L0ZyYW1lTmV0d29ya2luZ0NvbnRleHRFZmwuaCBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNv
cmVTdXBwb3J0L0ZyYW1lTmV0d29ya2luZ0NvbnRleHRFZmwuaAppbmRleCA0ZTY3NTEyZDA5NGMy
OGRmZDUxNWJlZTk5NzM2MTc3ZmQ5NWM2Y2FmLi45M2ZmZDQ4YmJiNzhkZDM2MGU3MWYyYWQyODRh
Mzc1YmYwODJjZWY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9y
dC9GcmFtZU5ldHdvcmtpbmdDb250ZXh0RWZsLmgKKysrIGIvU291cmNlL1dlYktpdC9lZmwvV2Vi
Q29yZVN1cHBvcnQvRnJhbWVOZXR3b3JraW5nQ29udGV4dEVmbC5oCkBAIC0zMSwyMiArMzEsMjEg
QEAKIAogI2luY2x1ZGUgIkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaCIKIAordHlwZWRlZiBzdHJ1
Y3QgX0V2YXNfT2JqZWN0IEV2YXNfT2JqZWN0OworCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNs
YXNzIEZyYW1lTmV0d29ya2luZ0NvbnRleHRFZmwgOiBwdWJsaWMgV2ViQ29yZTo6RnJhbWVOZXR3
b3JraW5nQ29udGV4dCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8RnJhbWVOZXR3
b3JraW5nQ29udGV4dEVmbD4gY3JlYXRlKFdlYkNvcmU6OkZyYW1lKiBmcmFtZSkKLSAgICB7Ci0g
ICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgRnJhbWVOZXR3b3JraW5nQ29udGV4dEVmbChmcmFt
ZSkpOwotICAgIH0KKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxGcmFtZU5ldHdvcmtpbmdDb250ZXh0
RWZsPiBjcmVhdGUoRnJhbWUqLCBFdmFzX09iamVjdCopOwogCiAgICAgV2ViQ29yZTo6RnJhbWUq
IGNvcmVGcmFtZSgpIGNvbnN0IHsgcmV0dXJuIGZyYW1lKCk7IH0KKyAgICB2aXJ0dWFsIFNvdXBT
ZXNzaW9uKiBzb3VwU2Vzc2lvbigpIGNvbnN0OwogCiBwcml2YXRlOgotICAgIEZyYW1lTmV0d29y
a2luZ0NvbnRleHRFZmwoV2ViQ29yZTo6RnJhbWUqIGZyYW1lKQotICAgICAgICA6IFdlYkNvcmU6
OkZyYW1lTmV0d29ya2luZ0NvbnRleHQoZnJhbWUpCi0gICAgewotICAgIH0KKyAgICBGcmFtZU5l
dHdvcmtpbmdDb250ZXh0RWZsKEZyYW1lKiwgRXZhc19PYmplY3QqKTsKKworICAgIEV2YXNfT2Jq
ZWN0KiBtX2V3a0ZyYW1lOwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwv
ZXdrL2V3a19jb29raWVzLmggYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2Nvb2tpZXMuaApp
bmRleCBhY2QxNTU5NmYzYzMyOWY3ZGUwY2VlNDQyNjcxYTM1YWI1NDU1NmZhLi5mM2M4NmQzNTQ1
NjU5ODJlOTVjZjNjMjUzNTllZGEwMzM3NGY2MTQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L2VmbC9ld2svZXdrX2Nvb2tpZXMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2Nv
b2tpZXMuaApAQCAtMjEsNiArMjEsMTIgQEAKIC8qKgogICogQGZpbGUgICAgZXdrX2Nvb2tpZXMu
aAogICogQGJyaWVmICAgVGhlIEV3ayBjb29raWVzIEFQSS4KKyAqCisgKiBAbm90ZSBJZiB0aGUg
bGlic291cCBuZXR3b3JrIGJhY2tlbmQgaXMgYmVpbmcgdXNlZCB0aGUgZnVuY3Rpb25zIGhlcmUg
d2lsbAorICogb25seSB3b3JrIHdpdGggdGhlIEBiIGRlZmF1bHQgU291cFNlc3Npb24sIHdoaWNo
IGNhbiBiZSByZXRyaWV2ZWQgd2l0aAorICogZXdrX25ldHdvcmtfZGVmYXVsX3NvdXBfc2Vzc2lv
bl9nZXQoKS4gSWYgYSBkaWZmZXJlbnQgU291cFNlc3Npb24gaXMgdXNlZAorICogYW5kIGFzc29j
aWF0ZWQgd2l0aCBhIHZpZXcgd2l0aCBld2tfdmlld19zb3VwX3Nlc3Npb25fc2V0KCksIGFsbCBj
b29raWUKKyAqIG1hbmFnZW1lbnQgd2lsbCBoYXZlIHRvIGJlIGRvbmUgbWFudWFsbHkuCiAgKi8K
IAogI2lmbmRlZiBld2tfY29va2llc19oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9l
d2svZXdrX25ldHdvcmsuaCBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfbmV0d29yay5oCmlu
ZGV4IDg1M2Y4YWQ2MjcxMjJjMGQ3NDA2OTEzZTRlMzM5ODZiZjkzYjJjM2YuLjhjMzUxYTQzODA5
NjhjNzQ2MGQ4YTdmNGQwYzg4MjQxZTM4MTA3NGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
ZWZsL2V3ay9ld2tfbmV0d29yay5oCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfbmV0
d29yay5oCkBAIC0zNiw2ICszNiwxMSBAQCBleHRlcm4gIkMiIHsKICAqIFNldHMgdGhlIGdpdmVu
IHByb3h5IFVSSSB0byBuZXR3b3JrIGJhY2tlbmQuCiAgKgogICogQHBhcmFtIHByb3h5IFVSSSB0
byBzZXQKKyAqCisgKiBAbm90ZSBJZiB0aGUgbGlic291cCBiYWNrZW5kIGlzIGJlaW5nIHVzZWQs
IHRoaXMgZnVuY3Rpb24gaGFzIGVmZmVjdCBvbgorICogdGhlIEBiIGRlZmF1bHQgU291cFNlc3Np
b24sIHJldHVybmVkIGJ5IGV3a19uZXR3b3JrX2RlZmF1bHRfc291cF9zZXNzaW9uX2dldCgpLgor
ICogSWYgYSBkaWZmZXJlbnQgU291cFNlc3Npb24gaXMgdXNlZCBhbmQgcGFzc2VkIHRvIGV3a192
aWV3X3NvdXBfc2Vzc2lvbl9zZXQoKSwKKyAqIHRoaXMgZnVuY3Rpb24gd2lsbCBub3QgaGF2ZSBh
bnkgZWZmZWN0IG9uIGl0LgogICovCiBFQVBJIHZvaWQgICAgICAgICAgICAgZXdrX25ldHdvcmtf
cHJveHlfdXJpX3NldChjb25zdCBjaGFyICpwcm94eSk7CiAKQEAgLTQ1LDYgKzUwLDExIEBAIEVB
UEkgdm9pZCAgICAgICAgICAgICBld2tfbmV0d29ya19wcm94eV91cmlfc2V0KGNvbnN0IGNoYXIg
KnByb3h5KTsKICAqIFRoZSByZXR1cm5lZCBzdHJpbmcgc2hvdWxkIGJlIGZyZWVkIGJ5IGVpbmFf
c3RyaW5nc2hhcmVfZGVsKCkgYWZ0ZXIgdXNlLgogICoKICAqIEByZXR1cm4gY3VycmVudCBwcm94
eSBVUkkgb3IgQGMgMCBpZiBpdCdzIG5vdCBzZXQKKyAqCisgKiBAbm90ZSBJZiB0aGUgbGlic291
cCBiYWNrZW5kIGlzIGJlaW5nIHVzZWQsIHRoaXMgZnVuY3Rpb24gaGFzIGVmZmVjdCBvbgorICog
dGhlIEBiIGRlZmF1bHQgU291cFNlc3Npb24sIHJldHVybmVkIGJ5IGV3a19uZXR3b3JrX2RlZmF1
bHRfc291cF9zZXNzaW9uX2dldCgpLgorICogSWYgYSBkaWZmZXJlbnQgU291cFNlc3Npb24gaXMg
dXNlZCBhbmQgcGFzc2VkIHRvIGV3a192aWV3X3NvdXBfc2Vzc2lvbl9zZXQoKSwKKyAqIHRoaXMg
ZnVuY3Rpb24gd2lsbCBub3QgaGF2ZSBhbnkgZWZmZWN0IG9uIGl0LgogICovCiBFQVBJIGNvbnN0
IGNoYXIgICAgICAqZXdrX25ldHdvcmtfcHJveHlfdXJpX2dldCh2b2lkKTsKIApAQCAtNjEsNiAr
NzEsMTEgQEAgRUFQSSB2b2lkICAgICAgICAgICAgIGV3a19uZXR3b3JrX3N0YXRlX25vdGlmaWVy
X29ubGluZV9zZXQoRWluYV9Cb29sIG9ubGluZSk7CiAgKiBCeSBkZWZhdWx0LCBIVFRQUyBjb25u
ZWN0aW9ucyBhcmUgcGVyZm9ybWVkIHJlZ2FyZGxlc3Mgb2YgdGhlIHZhbGlkaXR5IG9mIHRoZSBj
ZXJ0aWZpY2F0ZSBwcm92aWRlZC4KICAqCiAgKiBAc2EgZXdrX25ldHdvcmtfdGxzX2NhX2NlcnRp
ZmljYXRlc19wYXRoX3NldAorICoKKyAqIEBub3RlIElmIHRoZSBsaWJzb3VwIGJhY2tlbmQgaXMg
YmVpbmcgdXNlZCwgdGhpcyBmdW5jdGlvbiBoYXMgZWZmZWN0IG9uCisgKiB0aGUgQGIgZGVmYXVs
dCBTb3VwU2Vzc2lvbiwgcmV0dXJuZWQgYnkgZXdrX25ldHdvcmtfZGVmYXVsdF9zb3VwX3Nlc3Np
b25fZ2V0KCkuCisgKiBJZiBhIGRpZmZlcmVudCBTb3VwU2Vzc2lvbiBpcyB1c2VkIGFuZCBwYXNz
ZWQgdG8gZXdrX3ZpZXdfc291cF9zZXNzaW9uX3NldCgpLAorICogdGhpcyBmdW5jdGlvbiB3aWxs
IG5vdCBoYXZlIGFueSBlZmZlY3Qgb24gaXQuCiAgKi8KIEVBUEkgRWluYV9Cb29sICAgICAgICBl
d2tfbmV0d29ya190bHNfY2VydGlmaWNhdGVfY2hlY2tfZ2V0KHZvaWQpOwogCkBAIC03Miw2ICs4
NywxMSBAQCBFQVBJIEVpbmFfQm9vbCAgICAgICAgZXdrX25ldHdvcmtfdGxzX2NlcnRpZmljYXRl
X2NoZWNrX2dldCh2b2lkKTsKICAqIEBwYXJhbSBlbmFibGUgV2hldGhlciB0byBjaGVjayB0aGUg
cHJvdmlkZWQgY2VydGlmaWNhdGVzIG9yIG5vdC4KICAqCiAgKiBAc2EgZXdrX25ldHdvcmtfdGxz
X2NhX2NlcnRpZmljYXRlc19wYXRoX3NldAorICoKKyAqIEBub3RlIElmIHRoZSBsaWJzb3VwIGJh
Y2tlbmQgaXMgYmVpbmcgdXNlZCwgdGhpcyBmdW5jdGlvbiBoYXMgZWZmZWN0IG9uCisgKiB0aGUg
QGIgZGVmYXVsdCBTb3VwU2Vzc2lvbiwgcmV0dXJuZWQgYnkgZXdrX25ldHdvcmtfZGVmYXVsdF9z
b3VwX3Nlc3Npb25fZ2V0KCkuCisgKiBJZiBhIGRpZmZlcmVudCBTb3VwU2Vzc2lvbiBpcyB1c2Vk
IGFuZCBwYXNzZWQgdG8gZXdrX3ZpZXdfc291cF9zZXNzaW9uX3NldCgpLAorICogdGhpcyBmdW5j
dGlvbiB3aWxsIG5vdCBoYXZlIGFueSBlZmZlY3Qgb24gaXQuCiAgKi8KIEVBUEkgdm9pZCAgICAg
ICAgICAgICBld2tfbmV0d29ya190bHNfY2VydGlmaWNhdGVfY2hlY2tfc2V0KEVpbmFfQm9vbCBl
bmFibGUpOwogCkBAIC04OCw2ICsxMDgsMTEgQEAgRUFQSSB2b2lkICAgICAgICAgICAgIGV3a19u
ZXR3b3JrX3Rsc19jZXJ0aWZpY2F0ZV9jaGVja19zZXQoRWluYV9Cb29sIGVuYWJsZSk7CiAgKiBC
eSBkZWZhdWx0LCB0aGUgcGF0aCBpcyBub3Qgc2V0LCBzbyBhbGwgY2VydGlmaWNhdGVzIGFyZSBj
b25zaWRlcmVkIGFzIG5vdCBzaWduZWQgYnkgYSB0cnVzdGVkIHJvb3QgQ0EuCiAgKgogICogQHNh
IGV3a19uZXR3b3JrX3Rsc19jZXJ0aWZpY2F0ZV9jaGVja19zZXQKKyAqCisgKiBAbm90ZSBJZiB0
aGUgbGlic291cCBiYWNrZW5kIGlzIGJlaW5nIHVzZWQsIHRoaXMgZnVuY3Rpb24gaGFzIGVmZmVj
dCBvbgorICogdGhlIEBiIGRlZmF1bHQgU291cFNlc3Npb24sIHJldHVybmVkIGJ5IGV3a19uZXR3
b3JrX2RlZmF1bHRfc291cF9zZXNzaW9uX2dldCgpLgorICogSWYgYSBkaWZmZXJlbnQgU291cFNl
c3Npb24gaXMgdXNlZCBhbmQgcGFzc2VkIHRvIGV3a192aWV3X3NvdXBfc2Vzc2lvbl9zZXQoKSwK
KyAqIHRoaXMgZnVuY3Rpb24gd2lsbCBub3QgaGF2ZSBhbnkgZWZmZWN0IG9uIGl0LgogICovCiBF
QVBJIGNvbnN0IGNoYXIgICAgICAqZXdrX25ldHdvcmtfdGxzX2NhX2NlcnRpZmljYXRlc19wYXRo
X2dldCh2b2lkKTsKIApAQCAtMTA2LDYgKzEzMSwxMSBAQCBFQVBJIGNvbnN0IGNoYXIgICAgICAq
ZXdrX25ldHdvcmtfdGxzX2NhX2NlcnRpZmljYXRlc19wYXRoX2dldCh2b2lkKTsKICAqIEBwYXJh
bSBwYXRoIFRoZSBwYXRoIHRvIHRoZSBjZXJ0aWZpY2F0ZSBidW5kbGUuCiAgKgogICogQHNhIGV3
a19uZXR3b3JrX3Rsc19jZXJ0aWZpY2F0ZV9jaGVja19zZXQKKyAqCisgKiBAbm90ZSBJZiB0aGUg
bGlic291cCBiYWNrZW5kIGlzIGJlaW5nIHVzZWQsIHRoaXMgZnVuY3Rpb24gaGFzIGVmZmVjdCBv
bgorICogdGhlIEBiIGRlZmF1bHQgU291cFNlc3Npb24sIHJldHVybmVkIGJ5IGV3a19uZXR3b3Jr
X2RlZmF1bHRfc291cF9zZXNzaW9uX2dldCgpLgorICogSWYgYSBkaWZmZXJlbnQgU291cFNlc3Np
b24gaXMgdXNlZCBhbmQgcGFzc2VkIHRvIGV3a192aWV3X3NvdXBfc2Vzc2lvbl9zZXQoKSwKKyAq
IHRoaXMgZnVuY3Rpb24gd2lsbCBub3QgaGF2ZSBhbnkgZWZmZWN0IG9uIGl0LgogICovCiBFQVBJ
IHZvaWQgICAgICAgICAgICAgZXdrX25ldHdvcmtfdGxzX2NhX2NlcnRpZmljYXRlc19wYXRoX3Nl
dChjb25zdCBjaGFyICpwYXRoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvZXdr
L2V3a192aWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5jcHAKaW5kZXgg
NTM5ZTIwMjZhZTM4MGVhM2M5NmFkOTAzMTE3NmM4YWMyNWQ2ZDY1ZS4uMTJiNWUwMjg2YzUyNGE0
OGIxMTA1NTEwNjNiMmQ1ODBiZjFjZTE2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwv
ZXdrL2V3a192aWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuY3Bw
CkBAIC01MCw2ICs1MCw3IEBACiAjaW5jbHVkZSAiUHJvZ3Jlc3NUcmFja2VyLmgiCiAjaW5jbHVk
ZSAiUmVmUHRyQ2Fpcm8uaCIKICNpbmNsdWRlICJSZW5kZXJUaGVtZS5oIgorI2luY2x1ZGUgIlJl
c291cmNlSGFuZGxlLmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRlICJjX2luc3Rh
bmNlLmgiCiAjaW5jbHVkZSAiZXdrX2xvZ2dpbmcuaCIKQEAgLTU5LDYgKzYwLDcgQEAKICNpbmNs
dWRlIDxFdmFzLmg+CiAjaW5jbHVkZSA8ZWluYV9zYWZldHlfY2hlY2tzLmg+CiAjaW5jbHVkZSA8
aW50dHlwZXMuaD4KKyNpbmNsdWRlIDxsaWJzb3VwL3NvdXAtc2Vzc2lvbi5oPgogI2luY2x1ZGUg
PGxpbWl0cz4KICNpbmNsdWRlIDxtYXRoLmg+CiAjaW5jbHVkZSA8c3lzL3RpbWUuaD4KQEAgLTIx
MSw2ICsyMTMsNyBAQCBzdHJ1Y3QgX0V3a19WaWV3X1ByaXZhdGVfRGF0YSB7CiAgICAgICAgIH0g
Y2VudGVyOwogICAgICAgICBFY29yZV9BbmltYXRvciogYW5pbWF0b3I7CiAgICAgfSBhbmltYXRl
ZFpvb207CisgICAgU291cFNlc3Npb24qIHNvdXBTZXNzaW9uOwogfTsKIAogI2lmbmRlZiBFV0tf
VFlQRV9DSEVDSwpAQCAtNzIwLDYgKzcyMyw4IEBAIHN0YXRpYyBFd2tfVmlld19Qcml2YXRlX0Rh
dGEqIF9ld2tfdmlld19wcml2X25ldyhFd2tfVmlld19TbWFydF9EYXRhKiBzbWFydERhdGEpCiAg
ICAgICAgIGdvdG8gZXJyb3JfaGlzdG9yeTsKICAgICB9CiAKKyAgICBwcml2LT5zb3VwU2Vzc2lv
biA9IFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpkZWZhdWx0U2Vzc2lvbigpOworCiAgICAgcmV0
dXJuIHByaXY7CiAKIGVycm9yX2hpc3Rvcnk6CkBAIC0zOTE5LDYgKzM5MjQsMjUgQEAgRXdrX1Bh
Z2VfVmlzaWJpbGl0eV9TdGF0ZSBld2tfdmlld192aXNpYmlsaXR5X3N0YXRlX2dldChjb25zdCBF
dmFzX09iamVjdCogZXdrVmkKICNlbmRpZgogfQogCitTb3VwU2Vzc2lvbiogZXdrX3ZpZXdfc291
cF9zZXNzaW9uX2dldChjb25zdCBFdmFzX09iamVjdCogZXdrVmlldykKK3sKKyAgICBFV0tfVklF
V19TRF9HRVRfT1JfUkVUVVJOKGV3a1ZpZXcsIHNtYXJ0RGF0YSwgMCk7CisgICAgRVdLX1ZJRVdf
UFJJVl9HRVRfT1JfUkVUVVJOKHNtYXJ0RGF0YSwgcHJpdiwgMCk7CisgICAgcmV0dXJuIHByaXYt
PnNvdXBTZXNzaW9uOworfQorCit2b2lkIGV3a192aWV3X3NvdXBfc2Vzc2lvbl9zZXQoRXZhc19P
YmplY3QqIGV3a1ZpZXcsIFNvdXBTZXNzaW9uKiBzZXNzaW9uKQoreworICAgIEVXS19WSUVXX1NE
X0dFVF9PUl9SRVRVUk4oZXdrVmlldywgc21hcnREYXRhKTsKKyAgICBFV0tfVklFV19QUklWX0dF
VF9PUl9SRVRVUk4oc21hcnREYXRhLCBwcml2KTsKKyAgICBpZiAoIVNPVVBfSVNfU0VTU0lPTl9B
U1lOQyhzZXNzaW9uKSkgeworICAgICAgICBFUlIoIldlYktpdCByZXF1aXJlcyBhbiBTb3VwU2Vz
c2lvbkFzeW5jIHRvIHdvcmsgcHJvcGVybHksIGJ1dCAiCisgICAgICAgICAgICAiYSBTb3VwU2Vz
c2lvblN5bmMgd2FzIHByb3ZpZGVkLiIpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIHBy
aXYtPnNvdXBTZXNzaW9uID0gc2Vzc2lvbjsKK30KKwogbmFtZXNwYWNlIEVXS1ByaXZhdGUgewog
CiBXZWJDb3JlOjpQYWdlICpjb3JlUGFnZShjb25zdCBFdmFzX09iamVjdCAqZXdrVmlldykKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5oIGIvU291cmNlL1dlYktp
dC9lZmwvZXdrL2V3a192aWV3LmgKaW5kZXggYTQzMzUzNzRmNDhjZDVhZTY1M2ZjZjRiOTgyODU5
YjU3OTc3ZmZlYy4uYmM5NmViNTI5MzZhOTU3NmJjZWM5ZWE5MjJiOWY2NzdjZGY5NDViNSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3LmgKKysrIGIvU291cmNlL1dl
YktpdC9lZmwvZXdrL2V3a192aWV3LmgKQEAgLTk1LDYgKzk1LDcgQEAKIAogI2luY2x1ZGUgPEV2
YXMuaD4KICNpbmNsdWRlIDxjYWlyby5oPgorI2luY2x1ZGUgPGxpYnNvdXAvc291cC1zZXNzaW9u
Lmg+CiAKICNpZmRlZiBfX2NwbHVzcGx1cwogZXh0ZXJuICJDIiB7CkBAIC0yMzM1LDYgKzIzMzYs
MzQgQEAgRUFQSSBFaW5hX0Jvb2wgZXdrX3ZpZXdfbWl4ZWRfY29udGVudF9kaXNwbGF5ZWRfZ2V0
KGNvbnN0IEV2YXNfT2JqZWN0ICpvKTsKICAqLwogRUFQSSBFaW5hX0Jvb2wgZXdrX3ZpZXdfbWl4
ZWRfY29udGVudF9ydW5fZ2V0KGNvbnN0IEV2YXNfT2JqZWN0ICpvKTsKIAorLyoqCisgKiBSZXR1
cm5zIHRoZSBTb3VwU2Vzc2lvbiBhc3NvY2lhdGVkIHdpdGggdGhpcyB2aWV3LgorICoKKyAqIEJ5
IGRlZmF1bHQsIGFsbCB2aWV3cyBzaGFyZSB0aGUgc2FtZSwgZGVmYXVsdCBzb3VwIHNlc3Npb24g
YWxzbyBhdmFpbGFibGUKKyAqIGJ5IGNhbGxpbmcgZXdrX25ldHdvcmtfZGVmYXVsdF9zb3VwX3Nl
c3Npb25fZ2V0LgorICoKKyAqIEBwYXJhbSBvIFRoZSB2aWV3IHRvIHF1ZXJ5LgorICoKKyAqIEBz
YSBld2tfdmlld19zb3VwX3Nlc3Npb25fc2V0LCBld2tfbmV0d29ya19kZWZhdWx0X3NvdXBfc2Vz
c2lvbl9nZXQKKyAqLworRUFQSSBTb3VwU2Vzc2lvbiogZXdrX3ZpZXdfc291cF9zZXNzaW9uX2dl
dChjb25zdCBFdmFzX09iamVjdCAqbyk7CisKKy8qKgorICogQXNzb2NpYXRlcyBhIG5ldyBTb3Vw
U2Vzc2lvbiB3aXRoIHRoaXMgdmlldy4KKyAqCisgKiBPbmx5IHNlc3Npb25zIG9mIHR5cGUgU291
cFNlc3Npb25Bc3luYyBhcmUgc3VwcG9ydGVkLgorICoKKyAqIEBub3RlIENoYW5naW5nIHRoZSBT
b3VwU2Vzc2lvbiBzaG91bGQgbm90IGJlIG5lZWRlZCBpbiBtb3N0IGNhc2VzLiBJZgorICogICAg
ICAgYSBkaWZmZXJlbnQgU291cFNlc3Npb24gaXMgdXNlZCwgdGhlIGNvb2tpZSBtYW5hZ2VtZW50
IGFuZCBzb21lCisgKiAgICAgICBuZXR3b3JrIGZ1bmN0aW9ucyBpbiBld2sgd2lsbCBub3QgaGF2
ZSBhbnkgZWZmZWN0IG9uIGl0LgorICoKKyAqIEBwYXJhbSBvIFRoZSB2aWV3IHRvIGNoYW5nZS4K
KyAqIEBwYXJhbSBzZXNzaW9uIFRoZSBuZXcgU291cFNlc3Npb24uCisgKgorICogQHNhIGV3a192
aWV3X3NvdXBfc2Vzc2lvbl9nZXQsIGV3a19uZXR3b3JrX2RlZmF1bHRfc291cF9zZXNzaW9uX2dl
dAorICovCitFQVBJIHZvaWQgZXdrX3ZpZXdfc291cF9zZXNzaW9uX3NldChFdmFzX09iamVjdCAq
bywgU291cFNlc3Npb24gKnNlc3Npb24pOworCiAjaWZkZWYgX19jcGx1c3BsdXMKIH0KICNlbmRp
ZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsvR05VbWFrZWZpbGUuYW0gYi9Tb3VyY2Uv
V2ViS2l0L2d0ay9HTlVtYWtlZmlsZS5hbQppbmRleCAyNDcyMjEyZTlhNTFiNmYxNGE2OTdmOTJj
OTkxNTU2NGMwYzE1ZWYxLi5lYzBmZjhhODBlMGEwN2I1OTA0MGJjYzg4MDMzYTEwMTdlNGRkNDM4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9HTlVtYWtlZmlsZS5hbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0L2d0ay9HTlVtYWtlZmlsZS5hbQpAQCAtMjAzLDYgKzIwMyw3IEBAIHdlYmtpdGd0
a19zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9FZGl0b3JD
bGllbnRHdGsuaCBcCiAJU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2Fk
ZXJDbGllbnRHdGsuY3BwIFwKIAlTb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9GcmFt
ZUxvYWRlckNsaWVudEd0ay5oIFwKKwlTb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9G
cmFtZU5ldHdvcmtpbmdDb250ZXh0R3RrLmNwcCBcCiAJU291cmNlL1dlYktpdC9ndGsvV2ViQ29y
ZVN1cHBvcnQvRnJhbWVOZXR3b3JraW5nQ29udGV4dEd0ay5oIFwKIAlTb3VyY2UvV2ViS2l0L2d0
ay9XZWJDb3JlU3VwcG9ydC9GdWxsc2NyZWVuVmlkZW9Db250cm9sbGVyLmNwcCBcCiAJU291cmNl
L1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRnVsbHNjcmVlblZpZGVvQ29udHJvbGxlci5oIFwK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTmV0d29y
a2luZ0NvbnRleHRHdGsuY3BwIGIvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRnJh
bWVOZXR3b3JraW5nQ29udGV4dEd0ay5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGI5ZDEyNDkxMzI2OTY2Nzhm
NzQzZGRjMTgzMTVlZGRmZjMyMjFjOAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQv
Z3RrL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTmV0d29ya2luZ0NvbnRleHRHdGsuY3BwCkBAIC0wLDAg
KzEsMzUgQEAKKy8qCisgICAgQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFu
ZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorICAgIENvcHlyaWdodCAoQykgMjAxMiBQcm9GVVNJ
T04gZW1iZWRkZWQgc3lzdGVtcworCisgICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7
IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICAgIG1vZGlmeSBpdCB1bmRlciB0aGUg
dGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgICAgTGljZW5zZSBhcyBw
dWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgICAgdmVy
c2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJz
aW9uLgorCisgICAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQg
aXQgd2lsbCBiZSB1c2VmdWwsCisgICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0
IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICAgIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorCisgICAgWW91IHNob3Vs
ZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMg
TGljZW5zZQorICAgIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlO
Ry5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv
biwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAgICBCb3N0b24sIE1B
IDAyMTEwLTEzMDEsIFVTQS4KKyovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJG
cmFtZU5ldHdvcmtpbmdDb250ZXh0R3RrLmgiCisKKyNpbmNsdWRlICJSZXNvdXJjZUhhbmRsZS5o
IgorCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1Nv
dXBTZXNzaW9uKiBGcmFtZU5ldHdvcmtpbmdDb250ZXh0R3RrOjpzb3VwU2Vzc2lvbigpIGNvbnN0
Cit7CisgICAgcmV0dXJuIFJlc291cmNlSGFuZGxlOjpkZWZhdWx0U2Vzc2lvbigpOworfQorCit9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9GcmFtZU5ldHdv
cmtpbmdDb250ZXh0R3RrLmggYi9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9GcmFt
ZU5ldHdvcmtpbmdDb250ZXh0R3RrLmgKaW5kZXggOGU0YzIxNDhkMjE2YmJlNGM1ZWYwM2JkYTEx
ZDQyMGIzNDZhNDI2Yy4uYTU5YTk0MDk5YWJmZDFjN2MzNGJlODRmNWMwODQzNDE0OGU3NTM4NCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRnJhbWVOZXR3b3Jr
aW5nQ29udGV4dEd0ay5oCisrKyBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Zy
YW1lTmV0d29ya2luZ0NvbnRleHRHdGsuaApAQCAtMzIsNiArMzIsNyBAQCBwdWJsaWM6CiAgICAg
fQogCiAgICAgV2ViQ29yZTo6RnJhbWUqIGNvcmVGcmFtZSgpIGNvbnN0IHsgcmV0dXJuIGZyYW1l
KCk7IH0KKyAgICB2aXJ0dWFsIFNvdXBTZXNzaW9uKiBzb3VwU2Vzc2lvbigpIGNvbnN0OwogCiBw
cml2YXRlOgogICAgIEZyYW1lTmV0d29ya2luZ0NvbnRleHRHdGsoV2ViQ29yZTo6RnJhbWUqIGZy
YW1lKQo=
</data>
<flag name="commit-queue"
          id="127211"
          type_id="3"
          status="-"
          setter="gyuyoung.kim"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>126802</attachid>
            <date>2012-02-13 12:12:00 -0800</date>
            <delta_ts>2012-02-15 09:53:27 -0800</delta_ts>
            <desc>Same as 125648; resubmitted to workaround flaky EWS</desc>
            <filename>asdf</filename>
            <type>text/plain</type>
            <size>30158</size>
            <attacher name="Leandro Pereira">leandro</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA2Nzk3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTYyODllMTA5Yzk1YmZh
MjQwNjk2NDY5YzZmNDQ5YTNhZmUxOWViMC4uNjVkYmUzMmE2NDA1MmU4YmE2ZDE3MDI0NGQ0MDhk
NmQ4Y2Y3M2FkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUxIEBACisyMDEyLTAxLTMxICBSYXBo
YWVsIEt1Ym8gZGEgQ29zdGEgIDxrdWJvQHByb2Z1c2lvbi5tb2JpPgorCisgICAgICAgIFtzb3Vw
XSBBZGQgc3VwcG9ydCBmb3IgbXVsdGlwbGUgU291cFNlc3Npb25zLgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzczNDEKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNYWtlIHRoZSBsaWJzb3VwIG5ldHdvcmsg
YmFja2VuZCBzdXBwb3J0IG11bHRpcGxlIFNvdXBTZXNzaW9ucy4gVGhpcyBpcworICAgICAgICBh
Y2NvbXBsaXNoZWQgYnkgdXNpbmcgdGhlIE5ldHdvcmtpbmdDb250ZXh0IGNsYXNzZXMsIHdoaWNo
IG5vdyBoYXZlIGEKKyAgICAgICAgYHNvdXBTZXNzaW9uKCknIG1ldGhvZCB3aGVuIHRoZSBsaWJz
b3VwIGJhY2tlbmQgaXMgYmVpbmcgdXNlZC4KKworICAgICAgICBsaWJzb3VwJ3MgUmVzb3VyY2VI
YW5kbGUgaW1wbGVtZW50YXRpb24gbm93IHJldHJpZXZlcyB0aGUgU291cFNlc3Npb24KKyAgICAg
ICAgdmlhIHRoZSBOZXR3b3JraW5nQ29udGV4dCBpdCByZWNlaXZlcyBpbnN0ZWFkIG9mIHJlbHlp
bmcgb24KKyAgICAgICAgZGVmYXVsdFNlc3Npb24oKS4gZGVmYXVsdFNlc3Npb24oKSBpcyBzdGls
bCB1c2VkIHdoZW4gYSBudWxsCisgICAgICAgIE5ldHdvcmtpbmdDb250ZXh0IGlzIHBhc3NlZCB0
byBSZXNvdXJjZUhhbmRsZTo6c3RhcnQgKGZvciBleGFtcGxlLCB2aWEKKyAgICAgICAgd2Via2l0
X2Rvd25sb2FkX3N0YXJ0KS4KKworICAgICAgICBUaGUgQ29va2llSmFyIGltcGxlbWVudGF0aW9u
IHJldHJpZXZlcyB0aGUgU291cFNlc3Npb24gZnJvbSB0aGUKKyAgICAgICAgTmV0d29ya2luZ0Nv
bnRleHQgYXMgbXVjaCBhcyBwb3NzaWJsZSBhcyB3ZWxsIC0tIHRoZSBmdW5jdGlvbnMgdXNlZCBi
eQorICAgICAgICBXZWJLaXQyIGNvdWxkIG5vdCBiZSBjb252ZXJ0ZWQsIHRob3VnaCwgYXMgdGhl
eSBzZWVtIHRvIGFzc3VtZSB0aGVyZSBpcworICAgICAgICBvbmx5IG9uZSBzaGFyZWQgY29va2ll
IGphci4KKworICAgICAgICBObyBuZXcgdGVzdHMsIGNvdmVyZWQgYnkgdGhlIGV4aXN0aW5nIG9u
ZXMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtpbmdDb250ZXh0Lmg6Cisg
ICAgICAgIChOZXR3b3JraW5nQ29udGV4dCk6IEFkZCBzb3VwU2Vzc2lvbigpIG1ldGhvZCBpZiBV
U0UoU09VUCkgaXMgc2V0LgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5k
bGVJbnRlcm5hbC5oOgorICAgICAgICAoUmVzb3VyY2VIYW5kbGVJbnRlcm5hbCk6CisgICAgICAg
ICogcGxhdGZvcm0vbmV0d29yay9zb3VwL0Nvb2tpZUphclNvdXAuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6bmV0d29ya2luZ0NvbnRleHQpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChX
ZWJDb3JlOjpkZWZhdWx0Q29va2llSmFyKToKKyAgICAgICAgKFdlYkNvcmU6OnNldENvb2tpZXMp
OgorICAgICAgICAoV2ViQ29yZTo6Y29va2llcyk6CisgICAgICAgIChXZWJDb3JlOjpjb29raWVS
ZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpjb29raWVzRW5hYmxl
ZCk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlSGFuZGxlU291cC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZUludGVybmFsOjpzb3VwU2Vzc2lv
bik6IEFkZCBtZXRob2QgdG8gcmV0cmlldmUKKyAgICAgICAgYSBTb3VwU2Vzc2lvbiBmcm9tIGEg
TmV0d29ya2luZ0NvbnRleHQgYW5kIGZhbGxiYWNrIHRvIGRlZmF1bHRTZXNzaW9uKCkKKyAgICAg
ICAgaWYgdGhlcmUncyBubyB2YWxpZCBOZXR3b3JraW5nQ29udGV4dC4KKyAgICAgICAgKFdlYkNv
cmUpOgorICAgICAgICAoV2ViQ29yZTo6ZW5zdXJlU2Vzc2lvbklzSW5pdGlhbGl6ZWQpOiBPbmx5
IGNoYW5nZSBvciB1c2UgdGhlIGRlZmF1bHQKKyAgICAgICAgY29va2llIGphciBpZiB0aGUgU291
cFNlc3Npb24gYmVpbmcgY2hhbmdlZCBpcyB0aGUgZGVmYXVsdCBvbmUuCisgICAgICAgIChXZWJD
b3JlOjpzZW5kUmVxdWVzdENhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OnN0YXJ0SFRUUFJl
cXVlc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OmNhbmNlbCk6CisgICAg
ICAgIChXZWJDb3JlOjpzdGFydE5vbkhUVFBSZXF1ZXN0KToKKwogMjAxMi0wMi0wNiAgUmFwaGFl
bCBLdWJvIGRhIENvc3RhICA8a3Vib0Bwcm9mdXNpb24ubW9iaT4KIAogICAgICAgICBbRUZMXSBE
cm9wIHN1cHBvcnQgZm9yIHRoZSBDdXJsIG5ldHdvcmsgYmFja2VuZC4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZwpp
bmRleCBjZDE5YThkOGZmYWVkOWM1ZmE0MWI2N2I1NjIxYzZjM2NhOTkxZWU5Li4wODI1MDgwN2Q3
NWFkYTE0NGZkNmM2Y2U4MjQyMTI0MzRjNzRjNWU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L2VmbC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsNDIgQEAKKzIwMTItMDEtMzEgIFJhcGhhZWwgS3VibyBkYSBDb3N0YSAgPGt1Ym9AcHJvZnVz
aW9uLm1vYmk+CisKKyAgICAgICAgW3NvdXBdIEFkZCBzdXBwb3J0IGZvciBtdWx0aXBsZSBTb3Vw
U2Vzc2lvbnMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD03NzM0MQorCisgICAgICAgIEFkZCB0aGUgbmVjZXNzYXJ5IGluZnJhc3RydWN0dXJlIHRvIHN1
cHBvcnQgbXVsdGlwbGUgU291cFNlc3Npb25zLiBFYWNoCisgICAgICAgIFdlYlZpZXcgbm93IGhh
cyBhICJzZXNzaW9uIiBwcm9wZXJ0eSwgd2hpY2ggZGVmYXVsdHMgdG8KKyAgICAgICAgUmVzb3Vy
Y2VIYW5kbGU6OmRlZmF1bHRTZXNzaW9uKCkgYW5kIGNhbiBiZSBjaGFuZ2VkIHRvIGFub3RoZXIK
KyAgICAgICAgU291cFNlc3Npb24gYnkgdGhlIHVzZXIuCisKKyAgICAgICAgU29tZSBBUEkgaW4g
ZXdrX25ldHdvcmsgYW5kIGV3a192aWV3IHdoaWNoIHJlcXVpcmVkIFNvdXBTZXNzaW9uIHRvIGJl
IGEKKyAgICAgICAgdmFsaWQgdHlwZSBpbiB0aGUgaGVhZGVycyBoYXMgbm93IGJlZW4gbW92ZWQg
aW5zaWRlICNpZiBVU0UoU09VUCkKKyAgICAgICAgaWZkZWZzIHNvIHdlIGNhbiBhY3R1YWxseSB0
aGUgcmVxdWlyZWQgU291cCBoZWFkZXIgYW5kIGF2b2lkIGJ1aWxkCisgICAgICAgIHByb2JsZW1z
IHdpdGggZHVwbGljYXRlIHR5cGVkZWZzLgorCisgICAgICAgICogQ01ha2VMaXN0c0VmbC50eHQ6
CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRFZmwuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXJDbGllbnRFZmw6OmNyZWF0ZU5ldHdvcmtpbmdDb250
ZXh0KToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFtZU5ldHdvcmtpbmdDb250ZXh0RWZs
LmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRnJhbWVO
ZXR3b3JraW5nQ29udGV4dEVmbC5oLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJD
b3JlOjpGcmFtZU5ldHdvcmtpbmdDb250ZXh0RWZsOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29y
ZTo6RnJhbWVOZXR3b3JraW5nQ29udGV4dEVmbDo6RnJhbWVOZXR3b3JraW5nQ29udGV4dEVmbCk6
CisgICAgICAgIChXZWJDb3JlOjpGcmFtZU5ldHdvcmtpbmdDb250ZXh0RWZsOjpzb3VwU2Vzc2lv
bik6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVOZXR3b3JraW5nQ29udGV4dEVmbC5o
OgorICAgICAgICAoRnJhbWVOZXR3b3JraW5nQ29udGV4dEVmbCk6CisgICAgICAgICogZXdrL2V3
a19jb29raWVzLmg6IE1lbnRpb24gdGhpcyBBUEkgaXMgb25seSB2YWxpZCB3aXRoIHRoZQorICAg
ICAgICBkZWZhdWx0IFNvdXBTZXNzaW9uLgorICAgICAgICAqIGV3ay9ld2tfbmV0d29yay5jcHA6
CisgICAgICAgIChld2tfbmV0d29ya19kZWZhdWx0X3NvdXBfc2Vzc2lvbl9nZXQpOiBEZWZpbmUg
b25seSBpZiBVU0UoU09VUCkgaXMgc2V0LgorICAgICAgICAqIGV3ay9ld2tfbmV0d29yay5oOiBE
aXR0bywgYW5kIG1lbnRpb24gdGhpcyBBUEkgaXMgb25seSB2YWxpZCB3aXRoIHRoZQorICAgICAg
ICBkZWZhdWx0IFNvdXBTZXNzaW9uLgorICAgICAgICAqIGV3ay9ld2tfdmlldy5jcHA6CisgICAg
ICAgIChfRXdrX1ZpZXdfUHJpdmF0ZV9EYXRhKToKKyAgICAgICAgKF9ld2tfdmlld19wcml2X25l
dyk6CisgICAgICAgIChld2tfdmlld19zb3VwX3Nlc3Npb25fZ2V0KToKKyAgICAgICAgKGV3a192
aWV3X3NvdXBfc2Vzc2lvbl9zZXQpOgorICAgICAgICAqIGV3ay9ld2tfdmlldy5oOgorICAgICAg
ICAoKToKKwogMjAxMi0wMi0wNiAgUmFwaGFlbCBLdWJvIGRhIENvc3RhICA8a3Vib0Bwcm9mdXNp
b24ubW9iaT4KIAogICAgICAgICBbRUZMXSBEcm9wIHN1cHBvcnQgZm9yIHRoZSBDdXJsIG5ldHdv
cmsgYmFja2VuZC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZwppbmRleCBhM2ViMGU3ODY1MDY2MjJkMTU3MDUxNDc3
ZGM2YzliYmYzZmFiNGQ3Li41NGIxZTQwNzcyYTE5YmQ0MjMwMjFhYTZhODUxM2M0ZjM1YzAyODQ4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YktpdC9ndGsvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTItMDEtMzEgIFJhcGhhZWwg
S3VibyBkYSBDb3N0YSAgPGt1Ym9AcHJvZnVzaW9uLm1vYmk+CisKKyAgICAgICAgW3NvdXBdIEFk
ZCBzdXBwb3J0IGZvciBtdWx0aXBsZSBTb3VwU2Vzc2lvbnMuCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NzM0MQorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkYXB0IHRvIHRoZSBjaGFuZ2VzIHRvIEZyYW1l
TmV0d29ya2luZ0NvbnRleHQgaW4gV2ViQ29yZS4KKworICAgICAgICAqIEdOVW1ha2VmaWxlLmFt
OgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1lTmV0d29ya2luZ0NvbnRleHRHdGsuY3Bw
OiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9GcmFtZU5ldHdv
cmtpbmdDb250ZXh0R3RrLmguCisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoV2ViS2l0OjpG
cmFtZU5ldHdvcmtpbmdDb250ZXh0R3RrOjpzb3VwU2Vzc2lvbik6IEFsd2F5cyByZXR1cm4gUmVz
b3VyY2VIYW5kbGU6OmRlZmF1bHRTZXNzaW9uKCkuCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQv
RnJhbWVOZXR3b3JraW5nQ29udGV4dEd0ay5oOgorICAgICAgICAoRnJhbWVOZXR3b3JraW5nQ29u
dGV4dEd0ayk6CisKIDIwMTItMDItMDYgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBp
Z2FsaWEuY29tPgogCiAgICAgICAgIFtHVEtdIFVwZGF0ZSBORVdTIGFuZCBjb25maWd1cmUuYWMg
Zm9yIDEuNy41IHJlbGVhc2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvTmV0d29ya2luZ0NvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvTmV0d29ya2luZ0NvbnRleHQuaAppbmRleCBmMmIxMGM0NDViZDA1N2Q2MzQ0NzYwZjg5N2Mz
NGNmNWJlYmIyODAxLi4wNDYwODVjMmY2YjQ1ZmJkYzExNGI5YTYwZTFhYWM1OWIzNWM2OTYwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtpbmdDb250
ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3JraW5nQ29u
dGV4dC5oCkBAIC0zNSw2ICszNSwxMCBAQCBjbGFzcyBRVXJsOwogUVRfRU5EX05BTUVTUEFDRQog
I2VuZGlmCiAKKyNpZiBVU0UoU09VUCkKK3R5cGVkZWYgc3RydWN0IF9Tb3VwU2Vzc2lvbiBTb3Vw
U2Vzc2lvbjsKKyNlbmRpZgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFJlc291cmNl
RXJyb3I7CkBAIC02Niw2ICs3MCwxMCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBSZXNvdXJjZUVy
cm9yIGJsb2NrZWRFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmKSBjb25zdCA9IDA7CiAjZW5k
aWYKIAorI2lmIFVTRShTT1VQKQorICAgIHZpcnR1YWwgU291cFNlc3Npb24qIHNvdXBTZXNzaW9u
KCkgY29uc3QgPSAwOworI2VuZGlmCisKIHByb3RlY3RlZDoKICAgICBOZXR3b3JraW5nQ29udGV4
dCgpIHsgfQogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
UmVzb3VyY2VIYW5kbGVJbnRlcm5hbC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9SZXNvdXJjZUhhbmRsZUludGVybmFsLmgKaW5kZXggODc3OTk3OTYzODg0YmRkYmQ3YTc2YzA2
YTI5ZWY2ODFkZWFkZjE2Ni4uYmM3OWVkMTJiNmNhZmEyNjJlZDQ5YmVlZjk4Yjk3NzRjNWZhNmM4
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhh
bmRsZUludGVybmFsLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNv
dXJjZUhhbmRsZUludGVybmFsLmgKQEAgLTE4OSw2ICsxODksNyBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAgICAgICAgIHVuc2lnbmVkIGxvbmcgbV9ib2R5U2l6ZTsKICAgICAgICAgdW5zaWduZWQg
bG9uZyBtX2JvZHlEYXRhU2VudDsKICAgICAgICAgUmVmUHRyPE5ldHdvcmtpbmdDb250ZXh0PiBt
X2NvbnRleHQ7CisgICAgICAgIFNvdXBTZXNzaW9uKiBzb3VwU2Vzc2lvbigpOwogI2VuZGlmCiAj
aWYgUExBVEZPUk0oUVQpCiAgICAgICAgIFFOZXR3b3JrUmVwbHlIYW5kbGVyKiBtX2pvYjsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9Db29raWVKYXJT
b3VwLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9Db29raWVKYXJT
b3VwLmNwcAppbmRleCBmMTcwZDJkNTRlNzFiZjk2MGM2OWZlMjFjMjk2MTIyNDVhM2ZiOGM3Li4z
ZWE5MmVkNWEwNTJmNjc3ZGE0MzIzYTA0YjMzMjRhYmUxMGUwNzc2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvQ29va2llSmFyU291cC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL0Nvb2tpZUphclNvdXAuY3BwCkBA
IC0yMyw4ICsyMywxMiBAQAogCiAjaW5jbHVkZSAiQ29va2llLmgiCiAjaW5jbHVkZSAiRG9jdW1l
bnQuaCIKKyNpbmNsdWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIkZyYW1lTG9hZGVyLmgiCiAjaW5j
bHVkZSAiR093blB0clNvdXAuaCIKICNpbmNsdWRlICJLVVJMLmgiCisjaW5jbHVkZSAiTmV0d29y
a2luZ0NvbnRleHQuaCIKKyNpbmNsdWRlICJSZXNvdXJjZUhhbmRsZS5oIgogI2luY2x1ZGUgPHd0
Zi90ZXh0L0NTdHJpbmcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMzIsNiArMzYsMTkg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogc3RhdGljIGJvb2wgY29va2llc0luaXRpYWxpemVkOwog
c3RhdGljIFNvdXBDb29raWVKYXIqIGNvb2tpZUphcjsKIAorc3RhdGljIE5ldHdvcmtpbmdDb250
ZXh0KiBuZXR3b3JraW5nQ29udGV4dChjb25zdCBEb2N1bWVudCogZG9jdW1lbnQpCit7CisgICAg
aWYgKCFkb2N1bWVudCkKKyAgICAgICAgcmV0dXJuIDA7CisgICAgY29uc3QgRnJhbWUqIGZyYW1l
ID0gZG9jdW1lbnQtPmZyYW1lKCk7CisgICAgaWYgKCFmcmFtZSkKKyAgICAgICAgcmV0dXJuIDA7
CisgICAgY29uc3QgRnJhbWVMb2FkZXIqIGxvYWRlciA9IGZyYW1lLT5sb2FkZXIoKTsKKyAgICBp
ZiAoIWxvYWRlcikKKyAgICAgICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIGxvYWRlci0+bmV0d29y
a2luZ0NvbnRleHQoKTsKK30KKwogU291cENvb2tpZUphciogZGVmYXVsdENvb2tpZUphcigpCiB7
CiAgICAgaWYgKCFjb29raWVzSW5pdGlhbGl6ZWQpIHsKQEAgLTU5LDcgKzc2LDExIEBAIHZvaWQg
c2V0RGVmYXVsdENvb2tpZUphcihTb3VwQ29va2llSmFyKiBqYXIpCiAKIHZvaWQgc2V0Q29va2ll
cyhEb2N1bWVudCogZG9jdW1lbnQsIGNvbnN0IEtVUkwmIHVybCwgY29uc3QgU3RyaW5nJiB2YWx1
ZSkKIHsKLSAgICBTb3VwQ29va2llSmFyKiBqYXIgPSBkZWZhdWx0Q29va2llSmFyKCk7CisgICAg
Y29uc3QgTmV0d29ya2luZ0NvbnRleHQqIGNvbnRleHQgPSBuZXR3b3JraW5nQ29udGV4dChkb2N1
bWVudCk7CisgICAgaWYgKCFjb250ZXh0KQorICAgICAgICByZXR1cm47CisKKyAgICBTb3VwQ29v
a2llSmFyKiBqYXIgPSBTT1VQX0NPT0tJRV9KQVIoc291cF9zZXNzaW9uX2dldF9mZWF0dXJlKGNv
bnRleHQtPnNvdXBTZXNzaW9uKCksIFNPVVBfVFlQRV9DT09LSUVfSkFSKSk7CiAgICAgaWYgKCFq
YXIpCiAgICAgICAgIHJldHVybjsKIApAQCAtNzMsOSArOTQsMTMgQEAgdm9pZCBzZXRDb29raWVz
KERvY3VtZW50KiBkb2N1bWVudCwgY29uc3QgS1VSTCYgdXJsLCBjb25zdCBTdHJpbmcmIHZhbHVl
KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUu
dXRmOCgpLmRhdGEoKSk7CiB9CiAKLVN0cmluZyBjb29raWVzKGNvbnN0IERvY3VtZW50KiAvKmRv
Y3VtZW50Ki8sIGNvbnN0IEtVUkwmIHVybCkKK1N0cmluZyBjb29raWVzKGNvbnN0IERvY3VtZW50
KiBkb2N1bWVudCwgY29uc3QgS1VSTCYgdXJsKQogewotICAgIFNvdXBDb29raWVKYXIqIGphciA9
IGRlZmF1bHRDb29raWVKYXIoKTsKKyAgICBjb25zdCBOZXR3b3JraW5nQ29udGV4dCogY29udGV4
dCA9IG5ldHdvcmtpbmdDb250ZXh0KGRvY3VtZW50KTsKKyAgICBpZiAoIWNvbnRleHQpCisgICAg
ICAgIHJldHVybiBTdHJpbmcoKTsKKworICAgIFNvdXBDb29raWVKYXIqIGphciA9IFNPVVBfQ09P
S0lFX0pBUihzb3VwX3Nlc3Npb25fZ2V0X2ZlYXR1cmUoY29udGV4dC0+c291cFNlc3Npb24oKSwg
U09VUF9UWVBFX0NPT0tJRV9KQVIpKTsKICAgICBpZiAoIWphcikKICAgICAgICAgcmV0dXJuIFN0
cmluZygpOwogCkBAIC04OSw5ICsxMTQsMTMgQEAgU3RyaW5nIGNvb2tpZXMoY29uc3QgRG9jdW1l
bnQqIC8qZG9jdW1lbnQqLywgY29uc3QgS1VSTCYgdXJsKQogICAgIHJldHVybiByZXN1bHQ7CiB9
CiAKLVN0cmluZyBjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShjb25zdCBEb2N1bWVudCog
Lypkb2N1bWVudCovLCBjb25zdCBLVVJMJiB1cmwpCitTdHJpbmcgY29va2llUmVxdWVzdEhlYWRl
ckZpZWxkVmFsdWUoY29uc3QgRG9jdW1lbnQqIGRvY3VtZW50LCBjb25zdCBLVVJMJiB1cmwpCiB7
Ci0gICAgU291cENvb2tpZUphciogamFyID0gZGVmYXVsdENvb2tpZUphcigpOworICAgIGNvbnN0
IE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0ID0gbmV0d29ya2luZ0NvbnRleHQoZG9jdW1lbnQp
OworICAgIGlmICghY29udGV4dCkKKyAgICAgICAgcmV0dXJuIFN0cmluZygpOworCisgICAgU291
cENvb2tpZUphciogamFyID0gU09VUF9DT09LSUVfSkFSKHNvdXBfc2Vzc2lvbl9nZXRfZmVhdHVy
ZShjb250ZXh0LT5zb3VwU2Vzc2lvbigpLCBTT1VQX1RZUEVfQ09PS0lFX0pBUikpOwogICAgIGlm
ICghamFyKQogICAgICAgICByZXR1cm4gU3RyaW5nKCk7CiAKQEAgLTEwNSw5ICsxMzQsMTMgQEAg
U3RyaW5nIGNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKGNvbnN0IERvY3VtZW50KiAvKmRv
Y3VtZW50Ki8sIGNvbnN0IEtVUkwmIHUKICAgICByZXR1cm4gcmVzdWx0OwogfQogCi1ib29sIGNv
b2tpZXNFbmFibGVkKGNvbnN0IERvY3VtZW50KiAvKmRvY3VtZW50Ki8pCitib29sIGNvb2tpZXNF
bmFibGVkKGNvbnN0IERvY3VtZW50KiBkb2N1bWVudCkKIHsKLSAgICByZXR1cm4gZGVmYXVsdENv
b2tpZUphcigpOworICAgIGNvbnN0IE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0ID0gbmV0d29y
a2luZ0NvbnRleHQoZG9jdW1lbnQpOworICAgIGlmICghY29udGV4dCkKKyAgICAgICAgcmV0dXJu
IGZhbHNlOworCisgICAgcmV0dXJuICEhKFNPVVBfQ09PS0lFX0pBUihzb3VwX3Nlc3Npb25fZ2V0
X2ZlYXR1cmUoY29udGV4dC0+c291cFNlc3Npb24oKSwgU09VUF9UWVBFX0NPT0tJRV9KQVIpKSk7
CiB9CiAKIGJvb2wgZ2V0UmF3Q29va2llcyhjb25zdCBEb2N1bWVudCosIGNvbnN0IEtVUkwmLCBW
ZWN0b3I8Q29va2llPiYgcmF3Q29va2llcykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUhhbmRsZVNvdXAuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlSGFuZGxlU291cC5jcHAKaW5kZXggNWNi
NTNiZGZmNGZhYjU2OTMzYTEzMTlhYzZiYWM3YTYwZmIwOWZlYi4uODA1OGE1ZDk0YzdkMDFlYWIy
MGVmNDIxYTYxZGZiZGI3OTRkODdhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9zb3VwL1Jlc291cmNlSGFuZGxlU291cC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlSGFuZGxlU291cC5jcHAKQEAgLTE0MSw2
ICsxNDEsMTEgQEAgUmVzb3VyY2VIYW5kbGVJbnRlcm5hbDo6flJlc291cmNlSGFuZGxlSW50ZXJu
YWwoKQogewogfQogCitTb3VwU2Vzc2lvbiogUmVzb3VyY2VIYW5kbGVJbnRlcm5hbDo6c291cFNl
c3Npb24oKQoreworICAgIHJldHVybiAobV9jb250ZXh0ICYmIG1fY29udGV4dC0+aXNWYWxpZCgp
KSA/IG1fY29udGV4dC0+c291cFNlc3Npb24oKSA6IFJlc291cmNlSGFuZGxlOjpkZWZhdWx0U2Vz
c2lvbigpOworfQorCiBSZXNvdXJjZUhhbmRsZTo6flJlc291cmNlSGFuZGxlKCkKIHsKICAgICBj
bGVhbnVwU291cFJlcXVlc3RPcGVyYXRpb24odGhpcywgdHJ1ZSk7CkBAIC0xNTEsMTEgKzE1Niwx
MyBAQCBzdGF0aWMgdm9pZCBlbnN1cmVTZXNzaW9uSXNJbml0aWFsaXplZChTb3VwU2Vzc2lvbiog
c2Vzc2lvbikKICAgICBpZiAoZ19vYmplY3RfZ2V0X2RhdGEoR19PQkpFQ1Qoc2Vzc2lvbiksICJ3
ZWJraXQtaW5pdCIpKQogICAgICAgICByZXR1cm47CiAKLSAgICBTb3VwQ29va2llSmFyKiBqYXIg
PSBTT1VQX0NPT0tJRV9KQVIoc291cF9zZXNzaW9uX2dldF9mZWF0dXJlKHNlc3Npb24sIFNPVVBf
VFlQRV9DT09LSUVfSkFSKSk7Ci0gICAgaWYgKCFqYXIpCi0gICAgICAgIHNvdXBfc2Vzc2lvbl9h
ZGRfZmVhdHVyZShzZXNzaW9uLCBTT1VQX1NFU1NJT05fRkVBVFVSRShkZWZhdWx0Q29va2llSmFy
KCkpKTsKLSAgICBlbHNlCi0gICAgICAgIHNldERlZmF1bHRDb29raWVKYXIoamFyKTsKKyAgICBp
ZiAoc2Vzc2lvbiA9PSBSZXNvdXJjZUhhbmRsZTo6ZGVmYXVsdFNlc3Npb24oKSkgeworICAgICAg
ICBTb3VwQ29va2llSmFyKiBqYXIgPSBTT1VQX0NPT0tJRV9KQVIoc291cF9zZXNzaW9uX2dldF9m
ZWF0dXJlKHNlc3Npb24sIFNPVVBfVFlQRV9DT09LSUVfSkFSKSk7CisgICAgICAgIGlmICghamFy
KQorICAgICAgICAgICAgc291cF9zZXNzaW9uX2FkZF9mZWF0dXJlKHNlc3Npb24sIFNPVVBfU0VT
U0lPTl9GRUFUVVJFKGRlZmF1bHRDb29raWVKYXIoKSkpOworICAgICAgICBlbHNlCisgICAgICAg
ICAgICBzZXREZWZhdWx0Q29va2llSmFyKGphcik7CisgICAgfQogCiAgICAgaWYgKCFzb3VwX3Nl
c3Npb25fZ2V0X2ZlYXR1cmUoc2Vzc2lvbiwgU09VUF9UWVBFX0xPR0dFUikgJiYgTG9nTmV0d29y
ay5zdGF0ZSA9PSBXVEZMb2dDaGFubmVsT24pIHsKICAgICAgICAgU291cExvZ2dlciogbG9nZ2Vy
ID0gc291cF9sb2dnZXJfbmV3KHN0YXRpY19jYXN0PFNvdXBMb2dnZXJMb2dMZXZlbD4oU09VUF9M
T0dHRVJfTE9HX0JPRFkpLCAtMSk7CkBAIC0zMTksNyArMzI2LDcgQEAgc3RhdGljIHZvaWQgc2Vu
ZFJlcXVlc3RDYWxsYmFjayhHT2JqZWN0KiBzb3VyY2UsIEdBc3luY1Jlc3VsdCogcmVzLCBncG9p
bnRlciBkYXQKICAgICAgICAgZC0+bV9yZXNwb25zZS51cGRhdGVGcm9tU291cE1lc3NhZ2Uoc291
cE1lc3NhZ2UpOwogCiAgICAgICAgIGlmIChkLT5tX2RlZmVyc0xvYWRpbmcpCi0gICAgICAgICAg
ICBzb3VwX3Nlc3Npb25fcGF1c2VfbWVzc2FnZShoYW5kbGUtPmRlZmF1bHRTZXNzaW9uKCksIHNv
dXBNZXNzYWdlKTsKKyAgICAgICAgICAgIHNvdXBfc2Vzc2lvbl9wYXVzZV9tZXNzYWdlKGQtPnNv
dXBTZXNzaW9uKCksIHNvdXBNZXNzYWdlKTsKICAgICB9IGVsc2UgewogICAgICAgICBkLT5tX3Jl
c3BvbnNlLnNldFVSTChoYW5kbGUtPmZpcnN0UmVxdWVzdCgpLnVybCgpKTsKICAgICAgICAgY29u
c3QgZ2NoYXIqIGNvbnRlbnRUeXBlID0gc291cF9yZXF1ZXN0X2dldF9jb250ZW50X3R5cGUoZC0+
bV9zb3VwUmVxdWVzdC5nZXQoKSk7CkBAIC00NDIsMTIgKzQ0OSwxMiBAQCBzdGF0aWMgYm9vbCBz
dGFydEhUVFBSZXF1ZXN0KFJlc291cmNlSGFuZGxlKiBoYW5kbGUpCiB7CiAgICAgQVNTRVJUKGhh
bmRsZSk7CiAKLSAgICBTb3VwU2Vzc2lvbiogc2Vzc2lvbiA9IGhhbmRsZS0+ZGVmYXVsdFNlc3Np
b24oKTsKKyAgICBSZXNvdXJjZUhhbmRsZUludGVybmFsKiBkID0gaGFuZGxlLT5nZXRJbnRlcm5h
bCgpOworCisgICAgU291cFNlc3Npb24qIHNlc3Npb24gPSBkLT5zb3VwU2Vzc2lvbigpOwogICAg
IGVuc3VyZVNlc3Npb25Jc0luaXRpYWxpemVkKHNlc3Npb24pOwogICAgIFNvdXBSZXF1ZXN0ZXIq
IHJlcXVlc3RlciA9IFNPVVBfUkVRVUVTVEVSKHNvdXBfc2Vzc2lvbl9nZXRfZmVhdHVyZShzZXNz
aW9uLCBTT1VQX1RZUEVfUkVRVUVTVEVSKSk7CiAKLSAgICBSZXNvdXJjZUhhbmRsZUludGVybmFs
KiBkID0gaGFuZGxlLT5nZXRJbnRlcm5hbCgpOwotCiAgICAgUmVzb3VyY2VSZXF1ZXN0IHJlcXVl
c3QoaGFuZGxlLT5maXJzdFJlcXVlc3QoKSk7CiAgICAgS1VSTCB1cmwocmVxdWVzdC51cmwoKSk7
CiAgICAgdXJsLnJlbW92ZUZyYWdtZW50SWRlbnRpZmllcigpOwpAQCAtNTUyLDcgKzU1OSw3IEBA
IHZvaWQgUmVzb3VyY2VIYW5kbGU6OmNhbmNlbCgpCiB7CiAgICAgZC0+bV9jYW5jZWxsZWQgPSB0
cnVlOwogICAgIGlmIChkLT5tX3NvdXBNZXNzYWdlKQotICAgICAgICBzb3VwX3Nlc3Npb25fY2Fu
Y2VsX21lc3NhZ2UoZGVmYXVsdFNlc3Npb24oKSwgZC0+bV9zb3VwTWVzc2FnZS5nZXQoKSwgU09V
UF9TVEFUVVNfQ0FOQ0VMTEVEKTsKKyAgICAgICAgc291cF9zZXNzaW9uX2NhbmNlbF9tZXNzYWdl
KGQtPnNvdXBTZXNzaW9uKCksIGQtPm1fc291cE1lc3NhZ2UuZ2V0KCksIFNPVVBfU1RBVFVTX0NB
TkNFTExFRCk7CiAgICAgZWxzZSBpZiAoZC0+bV9jYW5jZWxsYWJsZSkKICAgICAgICAgZ19jYW5j
ZWxsYWJsZV9jYW5jZWwoZC0+bV9jYW5jZWxsYWJsZS5nZXQoKSk7CiB9CkBAIC02ODcsMTAgKzY5
NCwxMSBAQCBzdGF0aWMgYm9vbCBzdGFydE5vbkhUVFBSZXF1ZXN0KFJlc291cmNlSGFuZGxlKiBo
YW5kbGUsIEtVUkwgdXJsKQogICAgIGlmIChoYW5kbGUtPmZpcnN0UmVxdWVzdCgpLmh0dHBNZXRo
b2QoKSAhPSAiR0VUIiAmJiBoYW5kbGUtPmZpcnN0UmVxdWVzdCgpLmh0dHBNZXRob2QoKSAhPSAi
UE9TVCIpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIFNvdXBTZXNzaW9uKiBzZXNzaW9u
ID0gaGFuZGxlLT5kZWZhdWx0U2Vzc2lvbigpOworICAgIFJlc291cmNlSGFuZGxlSW50ZXJuYWwq
IGQgPSBoYW5kbGUtPmdldEludGVybmFsKCk7CisKKyAgICBTb3VwU2Vzc2lvbiogc2Vzc2lvbiA9
IGQtPnNvdXBTZXNzaW9uKCk7CiAgICAgZW5zdXJlU2Vzc2lvbklzSW5pdGlhbGl6ZWQoc2Vzc2lv
bik7CiAgICAgU291cFJlcXVlc3RlciogcmVxdWVzdGVyID0gU09VUF9SRVFVRVNURVIoc291cF9z
ZXNzaW9uX2dldF9mZWF0dXJlKHNlc3Npb24sIFNPVVBfVFlQRV9SRVFVRVNURVIpKTsKLSAgICBS
ZXNvdXJjZUhhbmRsZUludGVybmFsKiBkID0gaGFuZGxlLT5nZXRJbnRlcm5hbCgpOwogCiAgICAg
Q1N0cmluZyB1cmxTdHIgPSB1cmwuc3RyaW5nKCkudXRmOCgpOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L2VmbC9DTWFrZUxpc3RzRWZsLnR4dCBiL1NvdXJjZS9XZWJLaXQvZWZsL0NNYWtl
TGlzdHNFZmwudHh0CmluZGV4IDdiZDJhMDM2MzBjYTY3ZDA3MzgyZmQzMzdlNTQ0NjYyYjVhYWU5
ZWYuLjU0MGE2M2VlYWQxN2ZkYjQ5Y2JjOTczZjMyYjMxZjQ5MWIzZGIyZDIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvZWZsL0NNYWtlTGlzdHNFZmwudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQv
ZWZsL0NNYWtlTGlzdHNFZmwudHh0CkBAIC03NCw2ICs3NCw3IEBAIExJU1QoQVBQRU5EIFdlYktp
dF9TT1VSQ0VTCiAgICAgZWZsL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEVm
bC5jcHAKICAgICBlZmwvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50RWZsLmNwcAogICAgIGVm
bC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEVmbC5jcHAKKyAgICBlZmwvV2ViQ29y
ZVN1cHBvcnQvRnJhbWVOZXR3b3JraW5nQ29udGV4dEVmbC5jcHAKICAgICBlZmwvV2ViQ29yZVN1
cHBvcnQvRnVsbHNjcmVlblZpZGVvQ29udHJvbGxlckVmbC5jcHAKICAgICBlZmwvV2ViQ29yZVN1
cHBvcnQvSWNvbkRhdGFiYXNlQ2xpZW50RWZsLmNwcAogICAgIGVmbC9XZWJDb3JlU3VwcG9ydC9J
bnNwZWN0b3JDbGllbnRFZmwuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJD
b3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEVmbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9X
ZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEVmbC5jcHAKaW5kZXggNzA5ZDRlYWM5NmY2
NDA0YmVmZmJkM2MxY2ZjMWQzN2M0NzIxYTkwZC4uMDA5NmI4ODc0MjdlMWVkNjZmYThjMmNkNDMy
NmZmMzk5ODVhOGYzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBv
cnQvRnJhbWVMb2FkZXJDbGllbnRFZmwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNv
cmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50RWZsLmNwcApAQCAtOTQ3LDcgKzk0Nyw3IEBAIHZv
aWQgRnJhbWVMb2FkZXJDbGllbnRFZmw6OmRpc3BhdGNoRGlkQmVjb21lRnJhbWVzZXQoYm9vbCkK
IAogUGFzc1JlZlB0cjxGcmFtZU5ldHdvcmtpbmdDb250ZXh0PiBGcmFtZUxvYWRlckNsaWVudEVm
bDo6Y3JlYXRlTmV0d29ya2luZ0NvbnRleHQoKQogewotICAgIHJldHVybiBGcmFtZU5ldHdvcmtp
bmdDb250ZXh0RWZsOjpjcmVhdGUoRVdLUHJpdmF0ZTo6Y29yZUZyYW1lKG1fZnJhbWUpKTsKKyAg
ICByZXR1cm4gRnJhbWVOZXR3b3JraW5nQ29udGV4dEVmbDo6Y3JlYXRlKEVXS1ByaXZhdGU6OmNv
cmVGcmFtZShtX2ZyYW1lKSwgbV9mcmFtZSk7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTmV0d29ya2luZ0NvbnRleHRFZmwuY3BwIGIv
U291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRnJhbWVOZXR3b3JraW5nQ29udGV4dEVm
bC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uOGMyMGIyMTNhYWQyMDg3ZDc1ODg2MDJlNDI1NDkwMDVmMDk1Yzk0
NgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0Zy
YW1lTmV0d29ya2luZ0NvbnRleHRFZmwuY3BwCkBAIC0wLDAgKzEsNTcgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1p
ZXMpCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgU2Ftc3VuZyBFbGVjdHJvbmljcworICogQ29weXJp
Z2h0IChDKSAyMDEyIFByb0ZVU0lPTiBlbWJlZGRlZCBzeXN0ZW1zCisgKgorICogQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICog
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRnJhbWVO
ZXR3b3JraW5nQ29udGV4dEVmbC5oIgorCisjaW5jbHVkZSAiUmVzb3VyY2VIYW5kbGUuaCIKKyNp
bmNsdWRlICJld2tfZnJhbWUuaCIKKyNpbmNsdWRlICJld2tfdmlldy5oIgorCisjaW5jbHVkZSA8
RXZhcy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1Bhc3NSZWZQdHI8RnJhbWVOZXR3b3Jr
aW5nQ29udGV4dEVmbD4gRnJhbWVOZXR3b3JraW5nQ29udGV4dEVmbDo6Y3JlYXRlKEZyYW1lKiBm
cmFtZSwgRXZhc19PYmplY3QqIGV3a0ZyYW1lKQoreworICAgIHJldHVybiBhZG9wdFJlZihuZXcg
RnJhbWVOZXR3b3JraW5nQ29udGV4dEVmbChmcmFtZSwgZXdrRnJhbWUpKTsKK30KKworRnJhbWVO
ZXR3b3JraW5nQ29udGV4dEVmbDo6RnJhbWVOZXR3b3JraW5nQ29udGV4dEVmbChGcmFtZSogZnJh
bWUsIEV2YXNfT2JqZWN0KiBld2tGcmFtZSkKKyAgICA6IEZyYW1lTmV0d29ya2luZ0NvbnRleHQo
ZnJhbWUpCisgICAgLCBtX2V3a0ZyYW1lKGV3a0ZyYW1lKQoreworfQorCitTb3VwU2Vzc2lvbiog
RnJhbWVOZXR3b3JraW5nQ29udGV4dEVmbDo6c291cFNlc3Npb24oKSBjb25zdAoreworICAgIHJl
dHVybiBld2tfdmlld19zb3VwX3Nlc3Npb25fZ2V0KGV3a19mcmFtZV92aWV3X2dldChtX2V3a0Zy
YW1lKSk7Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBw
b3J0L0ZyYW1lTmV0d29ya2luZ0NvbnRleHRFZmwuaCBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNv
cmVTdXBwb3J0L0ZyYW1lTmV0d29ya2luZ0NvbnRleHRFZmwuaAppbmRleCA0ZTY3NTEyZDA5NGMy
OGRmZDUxNWJlZTk5NzM2MTc3ZmQ5NWM2Y2FmLi45M2ZmZDQ4YmJiNzhkZDM2MGU3MWYyYWQyODRh
Mzc1YmYwODJjZWY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9y
dC9GcmFtZU5ldHdvcmtpbmdDb250ZXh0RWZsLmgKKysrIGIvU291cmNlL1dlYktpdC9lZmwvV2Vi
Q29yZVN1cHBvcnQvRnJhbWVOZXR3b3JraW5nQ29udGV4dEVmbC5oCkBAIC0zMSwyMiArMzEsMjEg
QEAKIAogI2luY2x1ZGUgIkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaCIKIAordHlwZWRlZiBzdHJ1
Y3QgX0V2YXNfT2JqZWN0IEV2YXNfT2JqZWN0OworCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNs
YXNzIEZyYW1lTmV0d29ya2luZ0NvbnRleHRFZmwgOiBwdWJsaWMgV2ViQ29yZTo6RnJhbWVOZXR3
b3JraW5nQ29udGV4dCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8RnJhbWVOZXR3
b3JraW5nQ29udGV4dEVmbD4gY3JlYXRlKFdlYkNvcmU6OkZyYW1lKiBmcmFtZSkKLSAgICB7Ci0g
ICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgRnJhbWVOZXR3b3JraW5nQ29udGV4dEVmbChmcmFt
ZSkpOwotICAgIH0KKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxGcmFtZU5ldHdvcmtpbmdDb250ZXh0
RWZsPiBjcmVhdGUoRnJhbWUqLCBFdmFzX09iamVjdCopOwogCiAgICAgV2ViQ29yZTo6RnJhbWUq
IGNvcmVGcmFtZSgpIGNvbnN0IHsgcmV0dXJuIGZyYW1lKCk7IH0KKyAgICB2aXJ0dWFsIFNvdXBT
ZXNzaW9uKiBzb3VwU2Vzc2lvbigpIGNvbnN0OwogCiBwcml2YXRlOgotICAgIEZyYW1lTmV0d29y
a2luZ0NvbnRleHRFZmwoV2ViQ29yZTo6RnJhbWUqIGZyYW1lKQotICAgICAgICA6IFdlYkNvcmU6
OkZyYW1lTmV0d29ya2luZ0NvbnRleHQoZnJhbWUpCi0gICAgewotICAgIH0KKyAgICBGcmFtZU5l
dHdvcmtpbmdDb250ZXh0RWZsKEZyYW1lKiwgRXZhc19PYmplY3QqKTsKKworICAgIEV2YXNfT2Jq
ZWN0KiBtX2V3a0ZyYW1lOwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwv
ZXdrL2V3a19jb29raWVzLmggYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2Nvb2tpZXMuaApp
bmRleCBhY2QxNTU5NmYzYzMyOWY3ZGUwY2VlNDQyNjcxYTM1YWI1NDU1NmZhLi5mM2M4NmQzNTQ1
NjU5ODJlOTVjZjNjMjUzNTllZGEwMzM3NGY2MTQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L2VmbC9ld2svZXdrX2Nvb2tpZXMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2Nv
b2tpZXMuaApAQCAtMjEsNiArMjEsMTIgQEAKIC8qKgogICogQGZpbGUgICAgZXdrX2Nvb2tpZXMu
aAogICogQGJyaWVmICAgVGhlIEV3ayBjb29raWVzIEFQSS4KKyAqCisgKiBAbm90ZSBJZiB0aGUg
bGlic291cCBuZXR3b3JrIGJhY2tlbmQgaXMgYmVpbmcgdXNlZCB0aGUgZnVuY3Rpb25zIGhlcmUg
d2lsbAorICogb25seSB3b3JrIHdpdGggdGhlIEBiIGRlZmF1bHQgU291cFNlc3Npb24sIHdoaWNo
IGNhbiBiZSByZXRyaWV2ZWQgd2l0aAorICogZXdrX25ldHdvcmtfZGVmYXVsX3NvdXBfc2Vzc2lv
bl9nZXQoKS4gSWYgYSBkaWZmZXJlbnQgU291cFNlc3Npb24gaXMgdXNlZAorICogYW5kIGFzc29j
aWF0ZWQgd2l0aCBhIHZpZXcgd2l0aCBld2tfdmlld19zb3VwX3Nlc3Npb25fc2V0KCksIGFsbCBj
b29raWUKKyAqIG1hbmFnZW1lbnQgd2lsbCBoYXZlIHRvIGJlIGRvbmUgbWFudWFsbHkuCiAgKi8K
IAogI2lmbmRlZiBld2tfY29va2llc19oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9l
d2svZXdrX25ldHdvcmsuaCBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfbmV0d29yay5oCmlu
ZGV4IDg1M2Y4YWQ2MjcxMjJjMGQ3NDA2OTEzZTRlMzM5ODZiZjkzYjJjM2YuLjhjMzUxYTQzODA5
NjhjNzQ2MGQ4YTdmNGQwYzg4MjQxZTM4MTA3NGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
ZWZsL2V3ay9ld2tfbmV0d29yay5oCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfbmV0
d29yay5oCkBAIC0zNiw2ICszNiwxMSBAQCBleHRlcm4gIkMiIHsKICAqIFNldHMgdGhlIGdpdmVu
IHByb3h5IFVSSSB0byBuZXR3b3JrIGJhY2tlbmQuCiAgKgogICogQHBhcmFtIHByb3h5IFVSSSB0
byBzZXQKKyAqCisgKiBAbm90ZSBJZiB0aGUgbGlic291cCBiYWNrZW5kIGlzIGJlaW5nIHVzZWQs
IHRoaXMgZnVuY3Rpb24gaGFzIGVmZmVjdCBvbgorICogdGhlIEBiIGRlZmF1bHQgU291cFNlc3Np
b24sIHJldHVybmVkIGJ5IGV3a19uZXR3b3JrX2RlZmF1bHRfc291cF9zZXNzaW9uX2dldCgpLgor
ICogSWYgYSBkaWZmZXJlbnQgU291cFNlc3Npb24gaXMgdXNlZCBhbmQgcGFzc2VkIHRvIGV3a192
aWV3X3NvdXBfc2Vzc2lvbl9zZXQoKSwKKyAqIHRoaXMgZnVuY3Rpb24gd2lsbCBub3QgaGF2ZSBh
bnkgZWZmZWN0IG9uIGl0LgogICovCiBFQVBJIHZvaWQgICAgICAgICAgICAgZXdrX25ldHdvcmtf
cHJveHlfdXJpX3NldChjb25zdCBjaGFyICpwcm94eSk7CiAKQEAgLTQ1LDYgKzUwLDExIEBAIEVB
UEkgdm9pZCAgICAgICAgICAgICBld2tfbmV0d29ya19wcm94eV91cmlfc2V0KGNvbnN0IGNoYXIg
KnByb3h5KTsKICAqIFRoZSByZXR1cm5lZCBzdHJpbmcgc2hvdWxkIGJlIGZyZWVkIGJ5IGVpbmFf
c3RyaW5nc2hhcmVfZGVsKCkgYWZ0ZXIgdXNlLgogICoKICAqIEByZXR1cm4gY3VycmVudCBwcm94
eSBVUkkgb3IgQGMgMCBpZiBpdCdzIG5vdCBzZXQKKyAqCisgKiBAbm90ZSBJZiB0aGUgbGlic291
cCBiYWNrZW5kIGlzIGJlaW5nIHVzZWQsIHRoaXMgZnVuY3Rpb24gaGFzIGVmZmVjdCBvbgorICog
dGhlIEBiIGRlZmF1bHQgU291cFNlc3Npb24sIHJldHVybmVkIGJ5IGV3a19uZXR3b3JrX2RlZmF1
bHRfc291cF9zZXNzaW9uX2dldCgpLgorICogSWYgYSBkaWZmZXJlbnQgU291cFNlc3Npb24gaXMg
dXNlZCBhbmQgcGFzc2VkIHRvIGV3a192aWV3X3NvdXBfc2Vzc2lvbl9zZXQoKSwKKyAqIHRoaXMg
ZnVuY3Rpb24gd2lsbCBub3QgaGF2ZSBhbnkgZWZmZWN0IG9uIGl0LgogICovCiBFQVBJIGNvbnN0
IGNoYXIgICAgICAqZXdrX25ldHdvcmtfcHJveHlfdXJpX2dldCh2b2lkKTsKIApAQCAtNjEsNiAr
NzEsMTEgQEAgRUFQSSB2b2lkICAgICAgICAgICAgIGV3a19uZXR3b3JrX3N0YXRlX25vdGlmaWVy
X29ubGluZV9zZXQoRWluYV9Cb29sIG9ubGluZSk7CiAgKiBCeSBkZWZhdWx0LCBIVFRQUyBjb25u
ZWN0aW9ucyBhcmUgcGVyZm9ybWVkIHJlZ2FyZGxlc3Mgb2YgdGhlIHZhbGlkaXR5IG9mIHRoZSBj
ZXJ0aWZpY2F0ZSBwcm92aWRlZC4KICAqCiAgKiBAc2EgZXdrX25ldHdvcmtfdGxzX2NhX2NlcnRp
ZmljYXRlc19wYXRoX3NldAorICoKKyAqIEBub3RlIElmIHRoZSBsaWJzb3VwIGJhY2tlbmQgaXMg
YmVpbmcgdXNlZCwgdGhpcyBmdW5jdGlvbiBoYXMgZWZmZWN0IG9uCisgKiB0aGUgQGIgZGVmYXVs
dCBTb3VwU2Vzc2lvbiwgcmV0dXJuZWQgYnkgZXdrX25ldHdvcmtfZGVmYXVsdF9zb3VwX3Nlc3Np
b25fZ2V0KCkuCisgKiBJZiBhIGRpZmZlcmVudCBTb3VwU2Vzc2lvbiBpcyB1c2VkIGFuZCBwYXNz
ZWQgdG8gZXdrX3ZpZXdfc291cF9zZXNzaW9uX3NldCgpLAorICogdGhpcyBmdW5jdGlvbiB3aWxs
IG5vdCBoYXZlIGFueSBlZmZlY3Qgb24gaXQuCiAgKi8KIEVBUEkgRWluYV9Cb29sICAgICAgICBl
d2tfbmV0d29ya190bHNfY2VydGlmaWNhdGVfY2hlY2tfZ2V0KHZvaWQpOwogCkBAIC03Miw2ICs4
NywxMSBAQCBFQVBJIEVpbmFfQm9vbCAgICAgICAgZXdrX25ldHdvcmtfdGxzX2NlcnRpZmljYXRl
X2NoZWNrX2dldCh2b2lkKTsKICAqIEBwYXJhbSBlbmFibGUgV2hldGhlciB0byBjaGVjayB0aGUg
cHJvdmlkZWQgY2VydGlmaWNhdGVzIG9yIG5vdC4KICAqCiAgKiBAc2EgZXdrX25ldHdvcmtfdGxz
X2NhX2NlcnRpZmljYXRlc19wYXRoX3NldAorICoKKyAqIEBub3RlIElmIHRoZSBsaWJzb3VwIGJh
Y2tlbmQgaXMgYmVpbmcgdXNlZCwgdGhpcyBmdW5jdGlvbiBoYXMgZWZmZWN0IG9uCisgKiB0aGUg
QGIgZGVmYXVsdCBTb3VwU2Vzc2lvbiwgcmV0dXJuZWQgYnkgZXdrX25ldHdvcmtfZGVmYXVsdF9z
b3VwX3Nlc3Npb25fZ2V0KCkuCisgKiBJZiBhIGRpZmZlcmVudCBTb3VwU2Vzc2lvbiBpcyB1c2Vk
IGFuZCBwYXNzZWQgdG8gZXdrX3ZpZXdfc291cF9zZXNzaW9uX3NldCgpLAorICogdGhpcyBmdW5j
dGlvbiB3aWxsIG5vdCBoYXZlIGFueSBlZmZlY3Qgb24gaXQuCiAgKi8KIEVBUEkgdm9pZCAgICAg
ICAgICAgICBld2tfbmV0d29ya190bHNfY2VydGlmaWNhdGVfY2hlY2tfc2V0KEVpbmFfQm9vbCBl
bmFibGUpOwogCkBAIC04OCw2ICsxMDgsMTEgQEAgRUFQSSB2b2lkICAgICAgICAgICAgIGV3a19u
ZXR3b3JrX3Rsc19jZXJ0aWZpY2F0ZV9jaGVja19zZXQoRWluYV9Cb29sIGVuYWJsZSk7CiAgKiBC
eSBkZWZhdWx0LCB0aGUgcGF0aCBpcyBub3Qgc2V0LCBzbyBhbGwgY2VydGlmaWNhdGVzIGFyZSBj
b25zaWRlcmVkIGFzIG5vdCBzaWduZWQgYnkgYSB0cnVzdGVkIHJvb3QgQ0EuCiAgKgogICogQHNh
IGV3a19uZXR3b3JrX3Rsc19jZXJ0aWZpY2F0ZV9jaGVja19zZXQKKyAqCisgKiBAbm90ZSBJZiB0
aGUgbGlic291cCBiYWNrZW5kIGlzIGJlaW5nIHVzZWQsIHRoaXMgZnVuY3Rpb24gaGFzIGVmZmVj
dCBvbgorICogdGhlIEBiIGRlZmF1bHQgU291cFNlc3Npb24sIHJldHVybmVkIGJ5IGV3a19uZXR3
b3JrX2RlZmF1bHRfc291cF9zZXNzaW9uX2dldCgpLgorICogSWYgYSBkaWZmZXJlbnQgU291cFNl
c3Npb24gaXMgdXNlZCBhbmQgcGFzc2VkIHRvIGV3a192aWV3X3NvdXBfc2Vzc2lvbl9zZXQoKSwK
KyAqIHRoaXMgZnVuY3Rpb24gd2lsbCBub3QgaGF2ZSBhbnkgZWZmZWN0IG9uIGl0LgogICovCiBF
QVBJIGNvbnN0IGNoYXIgICAgICAqZXdrX25ldHdvcmtfdGxzX2NhX2NlcnRpZmljYXRlc19wYXRo
X2dldCh2b2lkKTsKIApAQCAtMTA2LDYgKzEzMSwxMSBAQCBFQVBJIGNvbnN0IGNoYXIgICAgICAq
ZXdrX25ldHdvcmtfdGxzX2NhX2NlcnRpZmljYXRlc19wYXRoX2dldCh2b2lkKTsKICAqIEBwYXJh
bSBwYXRoIFRoZSBwYXRoIHRvIHRoZSBjZXJ0aWZpY2F0ZSBidW5kbGUuCiAgKgogICogQHNhIGV3
a19uZXR3b3JrX3Rsc19jZXJ0aWZpY2F0ZV9jaGVja19zZXQKKyAqCisgKiBAbm90ZSBJZiB0aGUg
bGlic291cCBiYWNrZW5kIGlzIGJlaW5nIHVzZWQsIHRoaXMgZnVuY3Rpb24gaGFzIGVmZmVjdCBv
bgorICogdGhlIEBiIGRlZmF1bHQgU291cFNlc3Npb24sIHJldHVybmVkIGJ5IGV3a19uZXR3b3Jr
X2RlZmF1bHRfc291cF9zZXNzaW9uX2dldCgpLgorICogSWYgYSBkaWZmZXJlbnQgU291cFNlc3Np
b24gaXMgdXNlZCBhbmQgcGFzc2VkIHRvIGV3a192aWV3X3NvdXBfc2Vzc2lvbl9zZXQoKSwKKyAq
IHRoaXMgZnVuY3Rpb24gd2lsbCBub3QgaGF2ZSBhbnkgZWZmZWN0IG9uIGl0LgogICovCiBFQVBJ
IHZvaWQgICAgICAgICAgICAgZXdrX25ldHdvcmtfdGxzX2NhX2NlcnRpZmljYXRlc19wYXRoX3Nl
dChjb25zdCBjaGFyICpwYXRoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvZXdr
L2V3a192aWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5jcHAKaW5kZXgg
NTM5ZTIwMjZhZTM4MGVhM2M5NmFkOTAzMTE3NmM4YWMyNWQ2ZDY1ZS4uMTJiNWUwMjg2YzUyNGE0
OGIxMTA1NTEwNjNiMmQ1ODBiZjFjZTE2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwv
ZXdrL2V3a192aWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuY3Bw
CkBAIC01MCw2ICs1MCw3IEBACiAjaW5jbHVkZSAiUHJvZ3Jlc3NUcmFja2VyLmgiCiAjaW5jbHVk
ZSAiUmVmUHRyQ2Fpcm8uaCIKICNpbmNsdWRlICJSZW5kZXJUaGVtZS5oIgorI2luY2x1ZGUgIlJl
c291cmNlSGFuZGxlLmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRlICJjX2luc3Rh
bmNlLmgiCiAjaW5jbHVkZSAiZXdrX2xvZ2dpbmcuaCIKQEAgLTU5LDYgKzYwLDcgQEAKICNpbmNs
dWRlIDxFdmFzLmg+CiAjaW5jbHVkZSA8ZWluYV9zYWZldHlfY2hlY2tzLmg+CiAjaW5jbHVkZSA8
aW50dHlwZXMuaD4KKyNpbmNsdWRlIDxsaWJzb3VwL3NvdXAtc2Vzc2lvbi5oPgogI2luY2x1ZGUg
PGxpbWl0cz4KICNpbmNsdWRlIDxtYXRoLmg+CiAjaW5jbHVkZSA8c3lzL3RpbWUuaD4KQEAgLTIx
MSw2ICsyMTMsNyBAQCBzdHJ1Y3QgX0V3a19WaWV3X1ByaXZhdGVfRGF0YSB7CiAgICAgICAgIH0g
Y2VudGVyOwogICAgICAgICBFY29yZV9BbmltYXRvciogYW5pbWF0b3I7CiAgICAgfSBhbmltYXRl
ZFpvb207CisgICAgU291cFNlc3Npb24qIHNvdXBTZXNzaW9uOwogfTsKIAogI2lmbmRlZiBFV0tf
VFlQRV9DSEVDSwpAQCAtNzIwLDYgKzcyMyw4IEBAIHN0YXRpYyBFd2tfVmlld19Qcml2YXRlX0Rh
dGEqIF9ld2tfdmlld19wcml2X25ldyhFd2tfVmlld19TbWFydF9EYXRhKiBzbWFydERhdGEpCiAg
ICAgICAgIGdvdG8gZXJyb3JfaGlzdG9yeTsKICAgICB9CiAKKyAgICBwcml2LT5zb3VwU2Vzc2lv
biA9IFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpkZWZhdWx0U2Vzc2lvbigpOworCiAgICAgcmV0
dXJuIHByaXY7CiAKIGVycm9yX2hpc3Rvcnk6CkBAIC0zOTE5LDYgKzM5MjQsMjUgQEAgRXdrX1Bh
Z2VfVmlzaWJpbGl0eV9TdGF0ZSBld2tfdmlld192aXNpYmlsaXR5X3N0YXRlX2dldChjb25zdCBF
dmFzX09iamVjdCogZXdrVmkKICNlbmRpZgogfQogCitTb3VwU2Vzc2lvbiogZXdrX3ZpZXdfc291
cF9zZXNzaW9uX2dldChjb25zdCBFdmFzX09iamVjdCogZXdrVmlldykKK3sKKyAgICBFV0tfVklF
V19TRF9HRVRfT1JfUkVUVVJOKGV3a1ZpZXcsIHNtYXJ0RGF0YSwgMCk7CisgICAgRVdLX1ZJRVdf
UFJJVl9HRVRfT1JfUkVUVVJOKHNtYXJ0RGF0YSwgcHJpdiwgMCk7CisgICAgcmV0dXJuIHByaXYt
PnNvdXBTZXNzaW9uOworfQorCit2b2lkIGV3a192aWV3X3NvdXBfc2Vzc2lvbl9zZXQoRXZhc19P
YmplY3QqIGV3a1ZpZXcsIFNvdXBTZXNzaW9uKiBzZXNzaW9uKQoreworICAgIEVXS19WSUVXX1NE
X0dFVF9PUl9SRVRVUk4oZXdrVmlldywgc21hcnREYXRhKTsKKyAgICBFV0tfVklFV19QUklWX0dF
VF9PUl9SRVRVUk4oc21hcnREYXRhLCBwcml2KTsKKyAgICBpZiAoIVNPVVBfSVNfU0VTU0lPTl9B
U1lOQyhzZXNzaW9uKSkgeworICAgICAgICBFUlIoIldlYktpdCByZXF1aXJlcyBhbiBTb3VwU2Vz
c2lvbkFzeW5jIHRvIHdvcmsgcHJvcGVybHksIGJ1dCAiCisgICAgICAgICAgICAiYSBTb3VwU2Vz
c2lvblN5bmMgd2FzIHByb3ZpZGVkLiIpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIHBy
aXYtPnNvdXBTZXNzaW9uID0gc2Vzc2lvbjsKK30KKwogbmFtZXNwYWNlIEVXS1ByaXZhdGUgewog
CiBXZWJDb3JlOjpQYWdlICpjb3JlUGFnZShjb25zdCBFdmFzX09iamVjdCAqZXdrVmlldykKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5oIGIvU291cmNlL1dlYktp
dC9lZmwvZXdrL2V3a192aWV3LmgKaW5kZXggYTQzMzUzNzRmNDhjZDVhZTY1M2ZjZjRiOTgyODU5
YjU3OTc3ZmZlYy4uYmM5NmViNTI5MzZhOTU3NmJjZWM5ZWE5MjJiOWY2NzdjZGY5NDViNSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3LmgKKysrIGIvU291cmNlL1dl
YktpdC9lZmwvZXdrL2V3a192aWV3LmgKQEAgLTk1LDYgKzk1LDcgQEAKIAogI2luY2x1ZGUgPEV2
YXMuaD4KICNpbmNsdWRlIDxjYWlyby5oPgorI2luY2x1ZGUgPGxpYnNvdXAvc291cC1zZXNzaW9u
Lmg+CiAKICNpZmRlZiBfX2NwbHVzcGx1cwogZXh0ZXJuICJDIiB7CkBAIC0yMzM1LDYgKzIzMzYs
MzQgQEAgRUFQSSBFaW5hX0Jvb2wgZXdrX3ZpZXdfbWl4ZWRfY29udGVudF9kaXNwbGF5ZWRfZ2V0
KGNvbnN0IEV2YXNfT2JqZWN0ICpvKTsKICAqLwogRUFQSSBFaW5hX0Jvb2wgZXdrX3ZpZXdfbWl4
ZWRfY29udGVudF9ydW5fZ2V0KGNvbnN0IEV2YXNfT2JqZWN0ICpvKTsKIAorLyoqCisgKiBSZXR1
cm5zIHRoZSBTb3VwU2Vzc2lvbiBhc3NvY2lhdGVkIHdpdGggdGhpcyB2aWV3LgorICoKKyAqIEJ5
IGRlZmF1bHQsIGFsbCB2aWV3cyBzaGFyZSB0aGUgc2FtZSwgZGVmYXVsdCBzb3VwIHNlc3Npb24g
YWxzbyBhdmFpbGFibGUKKyAqIGJ5IGNhbGxpbmcgZXdrX25ldHdvcmtfZGVmYXVsdF9zb3VwX3Nl
c3Npb25fZ2V0LgorICoKKyAqIEBwYXJhbSBvIFRoZSB2aWV3IHRvIHF1ZXJ5LgorICoKKyAqIEBz
YSBld2tfdmlld19zb3VwX3Nlc3Npb25fc2V0LCBld2tfbmV0d29ya19kZWZhdWx0X3NvdXBfc2Vz
c2lvbl9nZXQKKyAqLworRUFQSSBTb3VwU2Vzc2lvbiogZXdrX3ZpZXdfc291cF9zZXNzaW9uX2dl
dChjb25zdCBFdmFzX09iamVjdCAqbyk7CisKKy8qKgorICogQXNzb2NpYXRlcyBhIG5ldyBTb3Vw
U2Vzc2lvbiB3aXRoIHRoaXMgdmlldy4KKyAqCisgKiBPbmx5IHNlc3Npb25zIG9mIHR5cGUgU291
cFNlc3Npb25Bc3luYyBhcmUgc3VwcG9ydGVkLgorICoKKyAqIEBub3RlIENoYW5naW5nIHRoZSBT
b3VwU2Vzc2lvbiBzaG91bGQgbm90IGJlIG5lZWRlZCBpbiBtb3N0IGNhc2VzLiBJZgorICogICAg
ICAgYSBkaWZmZXJlbnQgU291cFNlc3Npb24gaXMgdXNlZCwgdGhlIGNvb2tpZSBtYW5hZ2VtZW50
IGFuZCBzb21lCisgKiAgICAgICBuZXR3b3JrIGZ1bmN0aW9ucyBpbiBld2sgd2lsbCBub3QgaGF2
ZSBhbnkgZWZmZWN0IG9uIGl0LgorICoKKyAqIEBwYXJhbSBvIFRoZSB2aWV3IHRvIGNoYW5nZS4K
KyAqIEBwYXJhbSBzZXNzaW9uIFRoZSBuZXcgU291cFNlc3Npb24uCisgKgorICogQHNhIGV3a192
aWV3X3NvdXBfc2Vzc2lvbl9nZXQsIGV3a19uZXR3b3JrX2RlZmF1bHRfc291cF9zZXNzaW9uX2dl
dAorICovCitFQVBJIHZvaWQgZXdrX3ZpZXdfc291cF9zZXNzaW9uX3NldChFdmFzX09iamVjdCAq
bywgU291cFNlc3Npb24gKnNlc3Npb24pOworCiAjaWZkZWYgX19jcGx1c3BsdXMKIH0KICNlbmRp
ZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsvR05VbWFrZWZpbGUuYW0gYi9Tb3VyY2Uv
V2ViS2l0L2d0ay9HTlVtYWtlZmlsZS5hbQppbmRleCAyNDcyMjEyZTlhNTFiNmYxNGE2OTdmOTJj
OTkxNTU2NGMwYzE1ZWYxLi5lYzBmZjhhODBlMGEwN2I1OTA0MGJjYzg4MDMzYTEwMTdlNGRkNDM4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9HTlVtYWtlZmlsZS5hbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0L2d0ay9HTlVtYWtlZmlsZS5hbQpAQCAtMjAzLDYgKzIwMyw3IEBAIHdlYmtpdGd0
a19zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9FZGl0b3JD
bGllbnRHdGsuaCBcCiAJU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2Fk
ZXJDbGllbnRHdGsuY3BwIFwKIAlTb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9GcmFt
ZUxvYWRlckNsaWVudEd0ay5oIFwKKwlTb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9G
cmFtZU5ldHdvcmtpbmdDb250ZXh0R3RrLmNwcCBcCiAJU291cmNlL1dlYktpdC9ndGsvV2ViQ29y
ZVN1cHBvcnQvRnJhbWVOZXR3b3JraW5nQ29udGV4dEd0ay5oIFwKIAlTb3VyY2UvV2ViS2l0L2d0
ay9XZWJDb3JlU3VwcG9ydC9GdWxsc2NyZWVuVmlkZW9Db250cm9sbGVyLmNwcCBcCiAJU291cmNl
L1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRnVsbHNjcmVlblZpZGVvQ29udHJvbGxlci5oIFwK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTmV0d29y
a2luZ0NvbnRleHRHdGsuY3BwIGIvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRnJh
bWVOZXR3b3JraW5nQ29udGV4dEd0ay5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGI5ZDEyNDkxMzI2OTY2Nzhm
NzQzZGRjMTgzMTVlZGRmZjMyMjFjOAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQv
Z3RrL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTmV0d29ya2luZ0NvbnRleHRHdGsuY3BwCkBAIC0wLDAg
KzEsMzUgQEAKKy8qCisgICAgQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFu
ZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorICAgIENvcHlyaWdodCAoQykgMjAxMiBQcm9GVVNJ
T04gZW1iZWRkZWQgc3lzdGVtcworCisgICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7
IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICAgIG1vZGlmeSBpdCB1bmRlciB0aGUg
dGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgICAgTGljZW5zZSBhcyBw
dWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgICAgdmVy
c2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJz
aW9uLgorCisgICAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQg
aXQgd2lsbCBiZSB1c2VmdWwsCisgICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0
IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICAgIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorCisgICAgWW91IHNob3Vs
ZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMg
TGljZW5zZQorICAgIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlO
Ry5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv
biwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAgICBCb3N0b24sIE1B
IDAyMTEwLTEzMDEsIFVTQS4KKyovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJG
cmFtZU5ldHdvcmtpbmdDb250ZXh0R3RrLmgiCisKKyNpbmNsdWRlICJSZXNvdXJjZUhhbmRsZS5o
IgorCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1Nv
dXBTZXNzaW9uKiBGcmFtZU5ldHdvcmtpbmdDb250ZXh0R3RrOjpzb3VwU2Vzc2lvbigpIGNvbnN0
Cit7CisgICAgcmV0dXJuIFJlc291cmNlSGFuZGxlOjpkZWZhdWx0U2Vzc2lvbigpOworfQorCit9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9GcmFtZU5ldHdv
cmtpbmdDb250ZXh0R3RrLmggYi9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9GcmFt
ZU5ldHdvcmtpbmdDb250ZXh0R3RrLmgKaW5kZXggOGU0YzIxNDhkMjE2YmJlNGM1ZWYwM2JkYTEx
ZDQyMGIzNDZhNDI2Yy4uYTU5YTk0MDk5YWJmZDFjN2MzNGJlODRmNWMwODQzNDE0OGU3NTM4NCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRnJhbWVOZXR3b3Jr
aW5nQ29udGV4dEd0ay5oCisrKyBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Zy
YW1lTmV0d29ya2luZ0NvbnRleHRHdGsuaApAQCAtMzIsNiArMzIsNyBAQCBwdWJsaWM6CiAgICAg
fQogCiAgICAgV2ViQ29yZTo6RnJhbWUqIGNvcmVGcmFtZSgpIGNvbnN0IHsgcmV0dXJuIGZyYW1l
KCk7IH0KKyAgICB2aXJ0dWFsIFNvdXBTZXNzaW9uKiBzb3VwU2Vzc2lvbigpIGNvbnN0OwogCiBw
cml2YXRlOgogICAgIEZyYW1lTmV0d29ya2luZ0NvbnRleHRHdGsoV2ViQ29yZTo6RnJhbWUqIGZy
YW1lKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>127192</attachid>
            <date>2012-02-15 09:53:36 -0800</date>
            <delta_ts>2012-02-15 13:59:51 -0800</delta_ts>
            <desc>Obtain the cookie jar in a saner way in CookieJarSoup.cpp</desc>
            <filename>bug-77341-20120215155449.patch</filename>
            <type>text/plain</type>
            <size>29626</size>
            <attacher name="Raphael Kubo da Costa (:rakuco)">rakuco</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA3ODA5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDY4YWJiYzI1YmU0NWYw
MDdhMzE4YTU4NGQyNzkyM2ZlNmE2YzRkMS4uMzhjYTM3NmQwNWFjN2QxZjViM2RkNmQ4NTEzN2Jh
MDBkN2EwMTQ4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUxIEBACisyMDEyLTAxLTMxICBSYXBo
YWVsIEt1Ym8gZGEgQ29zdGEgIDxrdWJvQHByb2Z1c2lvbi5tb2JpPgorCisgICAgICAgIFtzb3Vw
XSBBZGQgc3VwcG9ydCBmb3IgbXVsdGlwbGUgU291cFNlc3Npb25zLgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzczNDEKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNYWtlIHRoZSBsaWJzb3VwIG5ldHdvcmsg
YmFja2VuZCBzdXBwb3J0IG11bHRpcGxlIFNvdXBTZXNzaW9ucy4gVGhpcyBpcworICAgICAgICBh
Y2NvbXBsaXNoZWQgYnkgdXNpbmcgdGhlIE5ldHdvcmtpbmdDb250ZXh0IGNsYXNzZXMsIHdoaWNo
IG5vdyBoYXZlIGEKKyAgICAgICAgYHNvdXBTZXNzaW9uKCknIG1ldGhvZCB3aGVuIHRoZSBsaWJz
b3VwIGJhY2tlbmQgaXMgYmVpbmcgdXNlZC4KKworICAgICAgICBsaWJzb3VwJ3MgUmVzb3VyY2VI
YW5kbGUgaW1wbGVtZW50YXRpb24gbm93IHJldHJpZXZlcyB0aGUgU291cFNlc3Npb24KKyAgICAg
ICAgdmlhIHRoZSBOZXR3b3JraW5nQ29udGV4dCBpdCByZWNlaXZlcyBpbnN0ZWFkIG9mIHJlbHlp
bmcgb24KKyAgICAgICAgZGVmYXVsdFNlc3Npb24oKS4gZGVmYXVsdFNlc3Npb24oKSBpcyBzdGls
bCB1c2VkIHdoZW4gYSBudWxsCisgICAgICAgIE5ldHdvcmtpbmdDb250ZXh0IGlzIHBhc3NlZCB0
byBSZXNvdXJjZUhhbmRsZTo6c3RhcnQgKGZvciBleGFtcGxlLCB2aWEKKyAgICAgICAgd2Via2l0
X2Rvd25sb2FkX3N0YXJ0KS4KKworICAgICAgICBUaGUgQ29va2llSmFyIGltcGxlbWVudGF0aW9u
IHJldHJpZXZlcyB0aGUgU291cFNlc3Npb24gZnJvbSB0aGUKKyAgICAgICAgTmV0d29ya2luZ0Nv
bnRleHQgYXMgbXVjaCBhcyBwb3NzaWJsZSBhcyB3ZWxsIC0tIHRoZSBmdW5jdGlvbnMgdXNlZCBi
eQorICAgICAgICBXZWJLaXQyIGNvdWxkIG5vdCBiZSBjb252ZXJ0ZWQsIHRob3VnaCwgYXMgdGhl
eSBzZWVtIHRvIGFzc3VtZSB0aGVyZSBpcworICAgICAgICBvbmx5IG9uZSBzaGFyZWQgY29va2ll
IGphci4KKworICAgICAgICBObyBuZXcgdGVzdHMsIGNvdmVyZWQgYnkgdGhlIGV4aXN0aW5nIG9u
ZXMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtpbmdDb250ZXh0Lmg6Cisg
ICAgICAgIChOZXR3b3JraW5nQ29udGV4dCk6IEFkZCBzb3VwU2Vzc2lvbigpIG1ldGhvZCBpZiBV
U0UoU09VUCkgaXMgc2V0LgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5k
bGVJbnRlcm5hbC5oOgorICAgICAgICAoUmVzb3VyY2VIYW5kbGVJbnRlcm5hbCk6CisgICAgICAg
ICogcGxhdGZvcm0vbmV0d29yay9zb3VwL0Nvb2tpZUphclNvdXAuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6Y29va2llSmFyRm9yRG9jdW1lbnQpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAg
IChXZWJDb3JlOjpkZWZhdWx0Q29va2llSmFyKToKKyAgICAgICAgKFdlYkNvcmU6OnNldENvb2tp
ZXMpOgorICAgICAgICAoV2ViQ29yZTo6Y29va2llcyk6CisgICAgICAgIChXZWJDb3JlOjpjb29r
aWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpjb29raWVzRW5h
YmxlZCk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlSGFuZGxlU291
cC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZUludGVybmFsOjpzb3VwU2Vz
c2lvbik6IEFkZCBtZXRob2QgdG8gcmV0cmlldmUKKyAgICAgICAgYSBTb3VwU2Vzc2lvbiBmcm9t
IGEgTmV0d29ya2luZ0NvbnRleHQgYW5kIGZhbGxiYWNrIHRvIGRlZmF1bHRTZXNzaW9uKCkKKyAg
ICAgICAgaWYgdGhlcmUncyBubyB2YWxpZCBOZXR3b3JraW5nQ29udGV4dC4KKyAgICAgICAgKFdl
YkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6ZW5zdXJlU2Vzc2lvbklzSW5pdGlhbGl6ZWQpOiBP
bmx5IGNoYW5nZSBvciB1c2UgdGhlIGRlZmF1bHQKKyAgICAgICAgY29va2llIGphciBpZiB0aGUg
U291cFNlc3Npb24gYmVpbmcgY2hhbmdlZCBpcyB0aGUgZGVmYXVsdCBvbmUuCisgICAgICAgIChX
ZWJDb3JlOjpzZW5kUmVxdWVzdENhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OnN0YXJ0SFRU
UFJlcXVlc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OmNhbmNlbCk6Cisg
ICAgICAgIChXZWJDb3JlOjpzdGFydE5vbkhUVFBSZXF1ZXN0KToKKwogMjAxMi0wMi0xNSAgWXVy
eSBTZW1pa2hhdHNreSAgPHl1cnlzQGNocm9taXVtLm9yZz4KIAogICAgICAgICBVbnJldmlld2Vk
LiBCdWlsZCBmaXggYWZ0ZXIgcjEwNzgwNgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCmluZGV4IDBkYTgxZDkzMzNl
Mzk4Y2IzZjJiNTIyNGU2MmNkM2VkMjZhNDAyMjMuLmExMjRmY2QzY2MwYTIxNDcyM2IzYjIwYTRh
NDNlNTgzY2QzYzY2ZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0MiBAQAorMjAxMi0w
MS0zMSAgUmFwaGFlbCBLdWJvIGRhIENvc3RhICA8a3Vib0Bwcm9mdXNpb24ubW9iaT4KKworICAg
ICAgICBbc291cF0gQWRkIHN1cHBvcnQgZm9yIG11bHRpcGxlIFNvdXBTZXNzaW9ucy4KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc3MzQxCisKKyAgICAg
ICAgQWRkIHRoZSBuZWNlc3NhcnkgaW5mcmFzdHJ1Y3R1cmUgdG8gc3VwcG9ydCBtdWx0aXBsZSBT
b3VwU2Vzc2lvbnMuIEVhY2gKKyAgICAgICAgV2ViVmlldyBub3cgaGFzIGEgInNlc3Npb24iIHBy
b3BlcnR5LCB3aGljaCBkZWZhdWx0cyB0bworICAgICAgICBSZXNvdXJjZUhhbmRsZTo6ZGVmYXVs
dFNlc3Npb24oKSBhbmQgY2FuIGJlIGNoYW5nZWQgdG8gYW5vdGhlcgorICAgICAgICBTb3VwU2Vz
c2lvbiBieSB0aGUgdXNlci4KKworICAgICAgICBTb21lIEFQSSBpbiBld2tfbmV0d29yayBhbmQg
ZXdrX3ZpZXcgd2hpY2ggcmVxdWlyZWQgU291cFNlc3Npb24gdG8gYmUgYQorICAgICAgICB2YWxp
ZCB0eXBlIGluIHRoZSBoZWFkZXJzIGhhcyBub3cgYmVlbiBtb3ZlZCBpbnNpZGUgI2lmIFVTRShT
T1VQKQorICAgICAgICBpZmRlZnMgc28gd2UgY2FuIGFjdHVhbGx5IHRoZSByZXF1aXJlZCBTb3Vw
IGhlYWRlciBhbmQgYXZvaWQgYnVpbGQKKyAgICAgICAgcHJvYmxlbXMgd2l0aCBkdXBsaWNhdGUg
dHlwZWRlZnMuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzRWZsLnR4dDoKKyAgICAgICAgKiBXZWJD
b3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEVmbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpG
cmFtZUxvYWRlckNsaWVudEVmbDo6Y3JlYXRlTmV0d29ya2luZ0NvbnRleHQpOgorICAgICAgICAq
IFdlYkNvcmVTdXBwb3J0L0ZyYW1lTmV0d29ya2luZ0NvbnRleHRFZmwuY3BwOiBDb3BpZWQgZnJv
bSBTb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9GcmFtZU5ldHdvcmtpbmdDb250ZXh0
RWZsLmguCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTmV0d29y
a2luZ0NvbnRleHRFZmw6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZU5ldHdvcmtp
bmdDb250ZXh0RWZsOjpGcmFtZU5ldHdvcmtpbmdDb250ZXh0RWZsKToKKyAgICAgICAgKFdlYkNv
cmU6OkZyYW1lTmV0d29ya2luZ0NvbnRleHRFZmw6OnNvdXBTZXNzaW9uKToKKyAgICAgICAgKiBX
ZWJDb3JlU3VwcG9ydC9GcmFtZU5ldHdvcmtpbmdDb250ZXh0RWZsLmg6CisgICAgICAgIChGcmFt
ZU5ldHdvcmtpbmdDb250ZXh0RWZsKToKKyAgICAgICAgKiBld2svZXdrX2Nvb2tpZXMuaDogTWVu
dGlvbiB0aGlzIEFQSSBpcyBvbmx5IHZhbGlkIHdpdGggdGhlCisgICAgICAgIGRlZmF1bHQgU291
cFNlc3Npb24uCisgICAgICAgICogZXdrL2V3a19uZXR3b3JrLmNwcDoKKyAgICAgICAgKGV3a19u
ZXR3b3JrX2RlZmF1bHRfc291cF9zZXNzaW9uX2dldCk6IERlZmluZSBvbmx5IGlmIFVTRShTT1VQ
KSBpcyBzZXQuCisgICAgICAgICogZXdrL2V3a19uZXR3b3JrLmg6IERpdHRvLCBhbmQgbWVudGlv
biB0aGlzIEFQSSBpcyBvbmx5IHZhbGlkIHdpdGggdGhlCisgICAgICAgIGRlZmF1bHQgU291cFNl
c3Npb24uCisgICAgICAgICogZXdrL2V3a192aWV3LmNwcDoKKyAgICAgICAgKF9Fd2tfVmlld19Q
cml2YXRlX0RhdGEpOgorICAgICAgICAoX2V3a192aWV3X3ByaXZfbmV3KToKKyAgICAgICAgKGV3
a192aWV3X3NvdXBfc2Vzc2lvbl9nZXQpOgorICAgICAgICAoZXdrX3ZpZXdfc291cF9zZXNzaW9u
X3NldCk6CisgICAgICAgICogZXdrL2V3a192aWV3Lmg6CisgICAgICAgICgpOgorCiAyMDEyLTAy
LTEzICBSYXBoYWVsIEt1Ym8gZGEgQ29zdGEgIDxrdWJvQHByb2Z1c2lvbi5tb2JpPgogCiAgICAg
ICAgIFtDTWFrZV0gTWVyZ2UgV2ViS2l0RWZsLmNtYWtlIGludG8gRmluZEVGTC5jbWFrZS4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvZ3Rr
L0NoYW5nZUxvZwppbmRleCBjZmU4MjNlM2VmZjc0OTA2MWU2MmRkNjkyNWIxNWVkZjIxZjcyYmM2
Li4yODYxMzk5NzA1MDI4YWE4MDg0ZTQzMjVmZWQ2YTViYmNiYjAwYmMzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTItMDEtMzEgIFJhcGhhZWwgS3VibyBkYSBDb3N0YSAg
PGt1Ym9AcHJvZnVzaW9uLm1vYmk+CisKKyAgICAgICAgW3NvdXBdIEFkZCBzdXBwb3J0IGZvciBt
dWx0aXBsZSBTb3VwU2Vzc2lvbnMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD03NzM0MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEFkYXB0IHRvIHRoZSBjaGFuZ2VzIHRvIEZyYW1lTmV0d29ya2luZ0NvbnRl
eHQgaW4gV2ViQ29yZS4KKworICAgICAgICAqIEdOVW1ha2VmaWxlLmFtOgorICAgICAgICAqIFdl
YkNvcmVTdXBwb3J0L0ZyYW1lTmV0d29ya2luZ0NvbnRleHRHdGsuY3BwOiBDb3BpZWQgZnJvbSBT
b3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9GcmFtZU5ldHdvcmtpbmdDb250ZXh0R3Rr
LmguCisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoV2ViS2l0OjpGcmFtZU5ldHdvcmtpbmdD
b250ZXh0R3RrOjpzb3VwU2Vzc2lvbik6IEFsd2F5cyByZXR1cm4gUmVzb3VyY2VIYW5kbGU6OmRl
ZmF1bHRTZXNzaW9uKCkuCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVOZXR3b3JraW5n
Q29udGV4dEd0ay5oOgorICAgICAgICAoRnJhbWVOZXR3b3JraW5nQ29udGV4dEd0ayk6CisKIDIw
MTItMDItMTUgIE5vJ2FtIFJvc2VudGhhbCAgPG5vYW0ucm9zZW50aGFsQG5va2lhLmNvbT4KIAog
ICAgICAgICBbVGV4bWFwXSBEaXZpZGUgVGV4dHVyZU1hcHBlck5vZGUuY3BwIHRvIDMgZmlsZXMu
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtpbmdD
b250ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtpbmdDb250
ZXh0LmgKaW5kZXggZjJiMTBjNDQ1YmQwNTdkNjM0NDc2MGY4OTdjMzRjZjViZWJiMjgwMS4uMDQ2
MDg1YzJmNmI0NWZiZGMxMTRiOWE2MGUxYWFjNTliMzVjNjk2MCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3JraW5nQ29udGV4dC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya2luZ0NvbnRleHQuaApAQCAtMzUsNiAr
MzUsMTAgQEAgY2xhc3MgUVVybDsKIFFUX0VORF9OQU1FU1BBQ0UKICNlbmRpZgogCisjaWYgVVNF
KFNPVVApCit0eXBlZGVmIHN0cnVjdCBfU291cFNlc3Npb24gU291cFNlc3Npb247CisjZW5kaWYK
KwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBSZXNvdXJjZUVycm9yOwpAQCAtNjYsNiAr
NzAsMTAgQEAgcHVibGljOgogICAgIHZpcnR1YWwgUmVzb3VyY2VFcnJvciBibG9ja2VkRXJyb3Io
Y29uc3QgUmVzb3VyY2VSZXF1ZXN0JikgY29uc3QgPSAwOwogI2VuZGlmCiAKKyNpZiBVU0UoU09V
UCkKKyAgICB2aXJ0dWFsIFNvdXBTZXNzaW9uKiBzb3VwU2Vzc2lvbigpIGNvbnN0ID0gMDsKKyNl
bmRpZgorCiBwcm90ZWN0ZWQ6CiAgICAgTmV0d29ya2luZ0NvbnRleHQoKSB7IH0KIH07CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlSW50
ZXJuYWwuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGVJ
bnRlcm5hbC5oCmluZGV4IDg3Nzk5Nzk2Mzg4NGJkZGJkN2E3NmMwNmEyOWVmNjgxZGVhZGYxNjYu
LmJjNzllZDEyYjZjYWZhMjYyZWQ0OWJlZWY5OGI5Nzc0YzVmYTZjODAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGVJbnRlcm5hbC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGVJbnRlcm5h
bC5oCkBAIC0xODksNiArMTg5LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB1bnNp
Z25lZCBsb25nIG1fYm9keVNpemU7CiAgICAgICAgIHVuc2lnbmVkIGxvbmcgbV9ib2R5RGF0YVNl
bnQ7CiAgICAgICAgIFJlZlB0cjxOZXR3b3JraW5nQ29udGV4dD4gbV9jb250ZXh0OworICAgICAg
ICBTb3VwU2Vzc2lvbiogc291cFNlc3Npb24oKTsKICNlbmRpZgogI2lmIFBMQVRGT1JNKFFUKQog
ICAgICAgICBRTmV0d29ya1JlcGx5SGFuZGxlciogbV9qb2I7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvQ29va2llSmFyU291cC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvQ29va2llSmFyU291cC5jcHAKaW5kZXggZjE3
MGQyZDU0ZTcxYmY5NjBjNjlmZTIxYzI5NjEyMjQ1YTNmYjhjNy4uM2I4YTU0NGNmYTU0NDRjNTk3
NWQ5NjhmNTE5NWYwNjJlN2M3MTgxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9zb3VwL0Nvb2tpZUphclNvdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvc291cC9Db29raWVKYXJTb3VwLmNwcApAQCAtMjMsOCArMjMsMTIgQEAK
IAogI2luY2x1ZGUgIkNvb2tpZS5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAi
RnJhbWUuaCIKKyNpbmNsdWRlICJGcmFtZUxvYWRlci5oIgogI2luY2x1ZGUgIkdPd25QdHJTb3Vw
LmgiCiAjaW5jbHVkZSAiS1VSTC5oIgorI2luY2x1ZGUgIk5ldHdvcmtpbmdDb250ZXh0LmgiCisj
aW5jbHVkZSAiUmVzb3VyY2VIYW5kbGUuaCIKICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTMyLDYgKzM2LDIyIEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIHN0YXRpYyBib29sIGNvb2tpZXNJbml0aWFsaXplZDsKIHN0YXRpYyBTb3VwQ29va2ll
SmFyKiBjb29raWVKYXI7CiAKK3N0YXRpYyBTb3VwQ29va2llSmFyKiBjb29raWVKYXJGb3JEb2N1
bWVudChjb25zdCBEb2N1bWVudCogZG9jdW1lbnQpCit7CisgICAgaWYgKCFkb2N1bWVudCkKKyAg
ICAgICAgcmV0dXJuIDA7CisgICAgY29uc3QgRnJhbWUqIGZyYW1lID0gZG9jdW1lbnQtPmZyYW1l
KCk7CisgICAgaWYgKCFmcmFtZSkKKyAgICAgICAgcmV0dXJuIDA7CisgICAgY29uc3QgRnJhbWVM
b2FkZXIqIGxvYWRlciA9IGZyYW1lLT5sb2FkZXIoKTsKKyAgICBpZiAoIWxvYWRlcikKKyAgICAg
ICAgcmV0dXJuIDA7CisgICAgY29uc3QgTmV0d29ya2luZ0NvbnRleHQqIGNvbnRleHQgPSBsb2Fk
ZXItPm5ldHdvcmtpbmdDb250ZXh0KCk7CisgICAgaWYgKCFjb250ZXh0KQorICAgICAgICByZXR1
cm4gMDsKKyAgICByZXR1cm4gU09VUF9DT09LSUVfSkFSKHNvdXBfc2Vzc2lvbl9nZXRfZmVhdHVy
ZShjb250ZXh0LT5zb3VwU2Vzc2lvbigpLCBTT1VQX1RZUEVfQ09PS0lFX0pBUikpOworfQorCiBT
b3VwQ29va2llSmFyKiBkZWZhdWx0Q29va2llSmFyKCkKIHsKICAgICBpZiAoIWNvb2tpZXNJbml0
aWFsaXplZCkgewpAQCAtNTksNyArNzksNyBAQCB2b2lkIHNldERlZmF1bHRDb29raWVKYXIoU291
cENvb2tpZUphciogamFyKQogCiB2b2lkIHNldENvb2tpZXMoRG9jdW1lbnQqIGRvY3VtZW50LCBj
b25zdCBLVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgdmFsdWUpCiB7Ci0gICAgU291cENvb2tpZUph
ciogamFyID0gZGVmYXVsdENvb2tpZUphcigpOworICAgIFNvdXBDb29raWVKYXIqIGphciA9IGNv
b2tpZUphckZvckRvY3VtZW50KGRvY3VtZW50KTsKICAgICBpZiAoIWphcikKICAgICAgICAgcmV0
dXJuOwogCkBAIC03Myw5ICs5Myw5IEBAIHZvaWQgc2V0Q29va2llcyhEb2N1bWVudCogZG9jdW1l
bnQsIGNvbnN0IEtVUkwmIHVybCwgY29uc3QgU3RyaW5nJiB2YWx1ZSkKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlLnV0ZjgoKS5kYXRhKCkpOwog
fQogCi1TdHJpbmcgY29va2llcyhjb25zdCBEb2N1bWVudCogLypkb2N1bWVudCovLCBjb25zdCBL
VVJMJiB1cmwpCitTdHJpbmcgY29va2llcyhjb25zdCBEb2N1bWVudCogZG9jdW1lbnQsIGNvbnN0
IEtVUkwmIHVybCkKIHsKLSAgICBTb3VwQ29va2llSmFyKiBqYXIgPSBkZWZhdWx0Q29va2llSmFy
KCk7CisgICAgU291cENvb2tpZUphciogamFyID0gY29va2llSmFyRm9yRG9jdW1lbnQoZG9jdW1l
bnQpOwogICAgIGlmICghamFyKQogICAgICAgICByZXR1cm4gU3RyaW5nKCk7CiAKQEAgLTg5LDkg
KzEwOSw5IEBAIFN0cmluZyBjb29raWVzKGNvbnN0IERvY3VtZW50KiAvKmRvY3VtZW50Ki8sIGNv
bnN0IEtVUkwmIHVybCkKICAgICByZXR1cm4gcmVzdWx0OwogfQogCi1TdHJpbmcgY29va2llUmVx
dWVzdEhlYWRlckZpZWxkVmFsdWUoY29uc3QgRG9jdW1lbnQqIC8qZG9jdW1lbnQqLywgY29uc3Qg
S1VSTCYgdXJsKQorU3RyaW5nIGNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKGNvbnN0IERv
Y3VtZW50KiBkb2N1bWVudCwgY29uc3QgS1VSTCYgdXJsKQogewotICAgIFNvdXBDb29raWVKYXIq
IGphciA9IGRlZmF1bHRDb29raWVKYXIoKTsKKyAgICBTb3VwQ29va2llSmFyKiBqYXIgPSBjb29r
aWVKYXJGb3JEb2N1bWVudChkb2N1bWVudCk7CiAgICAgaWYgKCFqYXIpCiAgICAgICAgIHJldHVy
biBTdHJpbmcoKTsKIApAQCAtMTA1LDkgKzEyNSw5IEBAIFN0cmluZyBjb29raWVSZXF1ZXN0SGVh
ZGVyRmllbGRWYWx1ZShjb25zdCBEb2N1bWVudCogLypkb2N1bWVudCovLCBjb25zdCBLVVJMJiB1
CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAotYm9vbCBjb29raWVzRW5hYmxlZChjb25zdCBEb2N1
bWVudCogLypkb2N1bWVudCovKQorYm9vbCBjb29raWVzRW5hYmxlZChjb25zdCBEb2N1bWVudCog
ZG9jdW1lbnQpCiB7Ci0gICAgcmV0dXJuIGRlZmF1bHRDb29raWVKYXIoKTsKKyAgICByZXR1cm4g
ISFjb29raWVKYXJGb3JEb2N1bWVudChkb2N1bWVudCk7CiB9CiAKIGJvb2wgZ2V0UmF3Q29va2ll
cyhjb25zdCBEb2N1bWVudCosIGNvbnN0IEtVUkwmLCBWZWN0b3I8Q29va2llPiYgcmF3Q29va2ll
cykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNv
dXJjZUhhbmRsZVNvdXAuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3Vw
L1Jlc291cmNlSGFuZGxlU291cC5jcHAKaW5kZXggNWNiNTNiZGZmNGZhYjU2OTMzYTEzMTlhYzZi
YWM3YTYwZmIwOWZlYi4uODA1OGE1ZDk0YzdkMDFlYWIyMGVmNDIxYTYxZGZiZGI3OTRkODdhNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNl
SGFuZGxlU291cC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3Vw
L1Jlc291cmNlSGFuZGxlU291cC5jcHAKQEAgLTE0MSw2ICsxNDEsMTEgQEAgUmVzb3VyY2VIYW5k
bGVJbnRlcm5hbDo6flJlc291cmNlSGFuZGxlSW50ZXJuYWwoKQogewogfQogCitTb3VwU2Vzc2lv
biogUmVzb3VyY2VIYW5kbGVJbnRlcm5hbDo6c291cFNlc3Npb24oKQoreworICAgIHJldHVybiAo
bV9jb250ZXh0ICYmIG1fY29udGV4dC0+aXNWYWxpZCgpKSA/IG1fY29udGV4dC0+c291cFNlc3Np
b24oKSA6IFJlc291cmNlSGFuZGxlOjpkZWZhdWx0U2Vzc2lvbigpOworfQorCiBSZXNvdXJjZUhh
bmRsZTo6flJlc291cmNlSGFuZGxlKCkKIHsKICAgICBjbGVhbnVwU291cFJlcXVlc3RPcGVyYXRp
b24odGhpcywgdHJ1ZSk7CkBAIC0xNTEsMTEgKzE1NiwxMyBAQCBzdGF0aWMgdm9pZCBlbnN1cmVT
ZXNzaW9uSXNJbml0aWFsaXplZChTb3VwU2Vzc2lvbiogc2Vzc2lvbikKICAgICBpZiAoZ19vYmpl
Y3RfZ2V0X2RhdGEoR19PQkpFQ1Qoc2Vzc2lvbiksICJ3ZWJraXQtaW5pdCIpKQogICAgICAgICBy
ZXR1cm47CiAKLSAgICBTb3VwQ29va2llSmFyKiBqYXIgPSBTT1VQX0NPT0tJRV9KQVIoc291cF9z
ZXNzaW9uX2dldF9mZWF0dXJlKHNlc3Npb24sIFNPVVBfVFlQRV9DT09LSUVfSkFSKSk7Ci0gICAg
aWYgKCFqYXIpCi0gICAgICAgIHNvdXBfc2Vzc2lvbl9hZGRfZmVhdHVyZShzZXNzaW9uLCBTT1VQ
X1NFU1NJT05fRkVBVFVSRShkZWZhdWx0Q29va2llSmFyKCkpKTsKLSAgICBlbHNlCi0gICAgICAg
IHNldERlZmF1bHRDb29raWVKYXIoamFyKTsKKyAgICBpZiAoc2Vzc2lvbiA9PSBSZXNvdXJjZUhh
bmRsZTo6ZGVmYXVsdFNlc3Npb24oKSkgeworICAgICAgICBTb3VwQ29va2llSmFyKiBqYXIgPSBT
T1VQX0NPT0tJRV9KQVIoc291cF9zZXNzaW9uX2dldF9mZWF0dXJlKHNlc3Npb24sIFNPVVBfVFlQ
RV9DT09LSUVfSkFSKSk7CisgICAgICAgIGlmICghamFyKQorICAgICAgICAgICAgc291cF9zZXNz
aW9uX2FkZF9mZWF0dXJlKHNlc3Npb24sIFNPVVBfU0VTU0lPTl9GRUFUVVJFKGRlZmF1bHRDb29r
aWVKYXIoKSkpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBzZXREZWZhdWx0Q29va2llSmFy
KGphcik7CisgICAgfQogCiAgICAgaWYgKCFzb3VwX3Nlc3Npb25fZ2V0X2ZlYXR1cmUoc2Vzc2lv
biwgU09VUF9UWVBFX0xPR0dFUikgJiYgTG9nTmV0d29yay5zdGF0ZSA9PSBXVEZMb2dDaGFubmVs
T24pIHsKICAgICAgICAgU291cExvZ2dlciogbG9nZ2VyID0gc291cF9sb2dnZXJfbmV3KHN0YXRp
Y19jYXN0PFNvdXBMb2dnZXJMb2dMZXZlbD4oU09VUF9MT0dHRVJfTE9HX0JPRFkpLCAtMSk7CkBA
IC0zMTksNyArMzI2LDcgQEAgc3RhdGljIHZvaWQgc2VuZFJlcXVlc3RDYWxsYmFjayhHT2JqZWN0
KiBzb3VyY2UsIEdBc3luY1Jlc3VsdCogcmVzLCBncG9pbnRlciBkYXQKICAgICAgICAgZC0+bV9y
ZXNwb25zZS51cGRhdGVGcm9tU291cE1lc3NhZ2Uoc291cE1lc3NhZ2UpOwogCiAgICAgICAgIGlm
IChkLT5tX2RlZmVyc0xvYWRpbmcpCi0gICAgICAgICAgICBzb3VwX3Nlc3Npb25fcGF1c2VfbWVz
c2FnZShoYW5kbGUtPmRlZmF1bHRTZXNzaW9uKCksIHNvdXBNZXNzYWdlKTsKKyAgICAgICAgICAg
IHNvdXBfc2Vzc2lvbl9wYXVzZV9tZXNzYWdlKGQtPnNvdXBTZXNzaW9uKCksIHNvdXBNZXNzYWdl
KTsKICAgICB9IGVsc2UgewogICAgICAgICBkLT5tX3Jlc3BvbnNlLnNldFVSTChoYW5kbGUtPmZp
cnN0UmVxdWVzdCgpLnVybCgpKTsKICAgICAgICAgY29uc3QgZ2NoYXIqIGNvbnRlbnRUeXBlID0g
c291cF9yZXF1ZXN0X2dldF9jb250ZW50X3R5cGUoZC0+bV9zb3VwUmVxdWVzdC5nZXQoKSk7CkBA
IC00NDIsMTIgKzQ0OSwxMiBAQCBzdGF0aWMgYm9vbCBzdGFydEhUVFBSZXF1ZXN0KFJlc291cmNl
SGFuZGxlKiBoYW5kbGUpCiB7CiAgICAgQVNTRVJUKGhhbmRsZSk7CiAKLSAgICBTb3VwU2Vzc2lv
biogc2Vzc2lvbiA9IGhhbmRsZS0+ZGVmYXVsdFNlc3Npb24oKTsKKyAgICBSZXNvdXJjZUhhbmRs
ZUludGVybmFsKiBkID0gaGFuZGxlLT5nZXRJbnRlcm5hbCgpOworCisgICAgU291cFNlc3Npb24q
IHNlc3Npb24gPSBkLT5zb3VwU2Vzc2lvbigpOwogICAgIGVuc3VyZVNlc3Npb25Jc0luaXRpYWxp
emVkKHNlc3Npb24pOwogICAgIFNvdXBSZXF1ZXN0ZXIqIHJlcXVlc3RlciA9IFNPVVBfUkVRVUVT
VEVSKHNvdXBfc2Vzc2lvbl9nZXRfZmVhdHVyZShzZXNzaW9uLCBTT1VQX1RZUEVfUkVRVUVTVEVS
KSk7CiAKLSAgICBSZXNvdXJjZUhhbmRsZUludGVybmFsKiBkID0gaGFuZGxlLT5nZXRJbnRlcm5h
bCgpOwotCiAgICAgUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QoaGFuZGxlLT5maXJzdFJlcXVlc3Qo
KSk7CiAgICAgS1VSTCB1cmwocmVxdWVzdC51cmwoKSk7CiAgICAgdXJsLnJlbW92ZUZyYWdtZW50
SWRlbnRpZmllcigpOwpAQCAtNTUyLDcgKzU1OSw3IEBAIHZvaWQgUmVzb3VyY2VIYW5kbGU6OmNh
bmNlbCgpCiB7CiAgICAgZC0+bV9jYW5jZWxsZWQgPSB0cnVlOwogICAgIGlmIChkLT5tX3NvdXBN
ZXNzYWdlKQotICAgICAgICBzb3VwX3Nlc3Npb25fY2FuY2VsX21lc3NhZ2UoZGVmYXVsdFNlc3Np
b24oKSwgZC0+bV9zb3VwTWVzc2FnZS5nZXQoKSwgU09VUF9TVEFUVVNfQ0FOQ0VMTEVEKTsKKyAg
ICAgICAgc291cF9zZXNzaW9uX2NhbmNlbF9tZXNzYWdlKGQtPnNvdXBTZXNzaW9uKCksIGQtPm1f
c291cE1lc3NhZ2UuZ2V0KCksIFNPVVBfU1RBVFVTX0NBTkNFTExFRCk7CiAgICAgZWxzZSBpZiAo
ZC0+bV9jYW5jZWxsYWJsZSkKICAgICAgICAgZ19jYW5jZWxsYWJsZV9jYW5jZWwoZC0+bV9jYW5j
ZWxsYWJsZS5nZXQoKSk7CiB9CkBAIC02ODcsMTAgKzY5NCwxMSBAQCBzdGF0aWMgYm9vbCBzdGFy
dE5vbkhUVFBSZXF1ZXN0KFJlc291cmNlSGFuZGxlKiBoYW5kbGUsIEtVUkwgdXJsKQogICAgIGlm
IChoYW5kbGUtPmZpcnN0UmVxdWVzdCgpLmh0dHBNZXRob2QoKSAhPSAiR0VUIiAmJiBoYW5kbGUt
PmZpcnN0UmVxdWVzdCgpLmh0dHBNZXRob2QoKSAhPSAiUE9TVCIpCiAgICAgICAgIHJldHVybiBm
YWxzZTsKIAotICAgIFNvdXBTZXNzaW9uKiBzZXNzaW9uID0gaGFuZGxlLT5kZWZhdWx0U2Vzc2lv
bigpOworICAgIFJlc291cmNlSGFuZGxlSW50ZXJuYWwqIGQgPSBoYW5kbGUtPmdldEludGVybmFs
KCk7CisKKyAgICBTb3VwU2Vzc2lvbiogc2Vzc2lvbiA9IGQtPnNvdXBTZXNzaW9uKCk7CiAgICAg
ZW5zdXJlU2Vzc2lvbklzSW5pdGlhbGl6ZWQoc2Vzc2lvbik7CiAgICAgU291cFJlcXVlc3Rlciog
cmVxdWVzdGVyID0gU09VUF9SRVFVRVNURVIoc291cF9zZXNzaW9uX2dldF9mZWF0dXJlKHNlc3Np
b24sIFNPVVBfVFlQRV9SRVFVRVNURVIpKTsKLSAgICBSZXNvdXJjZUhhbmRsZUludGVybmFsKiBk
ID0gaGFuZGxlLT5nZXRJbnRlcm5hbCgpOwogCiAgICAgQ1N0cmluZyB1cmxTdHIgPSB1cmwuc3Ry
aW5nKCkudXRmOCgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9DTWFrZUxpc3Rz
RWZsLnR4dCBiL1NvdXJjZS9XZWJLaXQvZWZsL0NNYWtlTGlzdHNFZmwudHh0CmluZGV4IDIwZGNj
MzU4NzYxYzQyMzQ5MjE3YmNlMmVhZjliYmNmODQ2OWQ2MWQuLmFlZmRiOTgwNGE3MTVjMDExZDk3
ZDFkMDcyMzNkMTU5ZTYzODJmNjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL0NNYWtl
TGlzdHNFZmwudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL0NNYWtlTGlzdHNFZmwudHh0CkBA
IC03Miw2ICs3Miw3IEBAIExJU1QoQVBQRU5EIFdlYktpdF9TT1VSQ0VTCiAgICAgZWZsL1dlYkNv
cmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbC5jcHAKICAgICBlZmwvV2ViQ29yZVN1
cHBvcnQvRWRpdG9yQ2xpZW50RWZsLmNwcAogICAgIGVmbC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxv
YWRlckNsaWVudEVmbC5jcHAKKyAgICBlZmwvV2ViQ29yZVN1cHBvcnQvRnJhbWVOZXR3b3JraW5n
Q29udGV4dEVmbC5jcHAKICAgICBlZmwvV2ViQ29yZVN1cHBvcnQvRnVsbHNjcmVlblZpZGVvQ29u
dHJvbGxlckVmbC5jcHAKICAgICBlZmwvV2ViQ29yZVN1cHBvcnQvSWNvbkRhdGFiYXNlQ2xpZW50
RWZsLmNwcAogICAgIGVmbC9XZWJDb3JlU3VwcG9ydC9TdG9yYWdlVHJhY2tlckNsaWVudEVmbC5j
cHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9h
ZGVyQ2xpZW50RWZsLmNwcCBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0ZyYW1l
TG9hZGVyQ2xpZW50RWZsLmNwcAppbmRleCA3MDlkNGVhYzk2ZjY0MDRiZWZmYmQzYzFjZmMxZDM3
YzQ3MjFhOTBkLi4wMDk2Yjg4NzQyN2UxZWQ2NmZhOGMyY2Q0MzI2ZmYzOTk4NWE4ZjM0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVu
dEVmbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2Fk
ZXJDbGllbnRFZmwuY3BwCkBAIC05NDcsNyArOTQ3LDcgQEAgdm9pZCBGcmFtZUxvYWRlckNsaWVu
dEVmbDo6ZGlzcGF0Y2hEaWRCZWNvbWVGcmFtZXNldChib29sKQogCiBQYXNzUmVmUHRyPEZyYW1l
TmV0d29ya2luZ0NvbnRleHQ+IEZyYW1lTG9hZGVyQ2xpZW50RWZsOjpjcmVhdGVOZXR3b3JraW5n
Q29udGV4dCgpCiB7Ci0gICAgcmV0dXJuIEZyYW1lTmV0d29ya2luZ0NvbnRleHRFZmw6OmNyZWF0
ZShFV0tQcml2YXRlOjpjb3JlRnJhbWUobV9mcmFtZSkpOworICAgIHJldHVybiBGcmFtZU5ldHdv
cmtpbmdDb250ZXh0RWZsOjpjcmVhdGUoRVdLUHJpdmF0ZTo6Y29yZUZyYW1lKG1fZnJhbWUpLCBt
X2ZyYW1lKTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1
cHBvcnQvRnJhbWVOZXR3b3JraW5nQ29udGV4dEVmbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9X
ZWJDb3JlU3VwcG9ydC9GcmFtZU5ldHdvcmtpbmdDb250ZXh0RWZsLmNwcApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44
YzIwYjIxM2FhZDIwODdkNzU4ODYwMmU0MjU0OTAwNWYwOTVjOTQ2Ci0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRnJhbWVOZXR3b3JraW5nQ29udGV4
dEVmbC5jcHAKQEAgLTAsMCArMSw1NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tp
YSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKyAqIENvcHlyaWdodCAo
QykgMjAxMCBTYW1zdW5nIEVsZWN0cm9uaWNzCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgUHJvRlVT
SU9OIGVtYmVkZGVkIHN5c3RlbXMKKyAqCisgKiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElO
Qy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5D
LiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJGcmFtZU5ldHdvcmtpbmdDb250ZXh0RWZs
LmgiCisKKyNpbmNsdWRlICJSZXNvdXJjZUhhbmRsZS5oIgorI2luY2x1ZGUgImV3a19mcmFtZS5o
IgorI2luY2x1ZGUgImV3a192aWV3LmgiCisKKyNpbmNsdWRlIDxFdmFzLmg+CisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKworUGFzc1JlZlB0cjxGcmFtZU5ldHdvcmtpbmdDb250ZXh0RWZsPiBGcmFt
ZU5ldHdvcmtpbmdDb250ZXh0RWZsOjpjcmVhdGUoRnJhbWUqIGZyYW1lLCBFdmFzX09iamVjdCog
ZXdrRnJhbWUpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBGcmFtZU5ldHdvcmtpbmdDb250
ZXh0RWZsKGZyYW1lLCBld2tGcmFtZSkpOworfQorCitGcmFtZU5ldHdvcmtpbmdDb250ZXh0RWZs
OjpGcmFtZU5ldHdvcmtpbmdDb250ZXh0RWZsKEZyYW1lKiBmcmFtZSwgRXZhc19PYmplY3QqIGV3
a0ZyYW1lKQorICAgIDogRnJhbWVOZXR3b3JraW5nQ29udGV4dChmcmFtZSkKKyAgICAsIG1fZXdr
RnJhbWUoZXdrRnJhbWUpCit7Cit9CisKK1NvdXBTZXNzaW9uKiBGcmFtZU5ldHdvcmtpbmdDb250
ZXh0RWZsOjpzb3VwU2Vzc2lvbigpIGNvbnN0Cit7CisgICAgcmV0dXJuIGV3a192aWV3X3NvdXBf
c2Vzc2lvbl9nZXQoZXdrX2ZyYW1lX3ZpZXdfZ2V0KG1fZXdrRnJhbWUpKTsKK30KKworfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRnJhbWVOZXR3b3JraW5n
Q29udGV4dEVmbC5oIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRnJhbWVOZXR3
b3JraW5nQ29udGV4dEVmbC5oCmluZGV4IDRlNjc1MTJkMDk0YzI4ZGZkNTE1YmVlOTk3MzYxNzdm
ZDk1YzZjYWYuLjkzZmZkNDhiYmI3OGRkMzYwZTcxZjJhZDI4NGEzNzViZjA4MmNlZjggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTmV0d29ya2luZ0Nv
bnRleHRFZmwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9GcmFtZU5l
dHdvcmtpbmdDb250ZXh0RWZsLmgKQEAgLTMxLDIyICszMSwyMSBAQAogCiAjaW5jbHVkZSAiRnJh
bWVOZXR3b3JraW5nQ29udGV4dC5oIgogCit0eXBlZGVmIHN0cnVjdCBfRXZhc19PYmplY3QgRXZh
c19PYmplY3Q7CisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgRnJhbWVOZXR3b3JraW5n
Q29udGV4dEVmbCA6IHB1YmxpYyBXZWJDb3JlOjpGcmFtZU5ldHdvcmtpbmdDb250ZXh0IHsKIHB1
YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxGcmFtZU5ldHdvcmtpbmdDb250ZXh0RWZsPiBj
cmVhdGUoV2ViQ29yZTo6RnJhbWUqIGZyYW1lKQotICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0
UmVmKG5ldyBGcmFtZU5ldHdvcmtpbmdDb250ZXh0RWZsKGZyYW1lKSk7Ci0gICAgfQorICAgIHN0
YXRpYyBQYXNzUmVmUHRyPEZyYW1lTmV0d29ya2luZ0NvbnRleHRFZmw+IGNyZWF0ZShGcmFtZSos
IEV2YXNfT2JqZWN0Kik7CiAKICAgICBXZWJDb3JlOjpGcmFtZSogY29yZUZyYW1lKCkgY29uc3Qg
eyByZXR1cm4gZnJhbWUoKTsgfQorICAgIHZpcnR1YWwgU291cFNlc3Npb24qIHNvdXBTZXNzaW9u
KCkgY29uc3Q7CiAKIHByaXZhdGU6Ci0gICAgRnJhbWVOZXR3b3JraW5nQ29udGV4dEVmbChXZWJD
b3JlOjpGcmFtZSogZnJhbWUpCi0gICAgICAgIDogV2ViQ29yZTo6RnJhbWVOZXR3b3JraW5nQ29u
dGV4dChmcmFtZSkKLSAgICB7Ci0gICAgfQorICAgIEZyYW1lTmV0d29ya2luZ0NvbnRleHRFZmwo
RnJhbWUqLCBFdmFzX09iamVjdCopOworCisgICAgRXZhc19PYmplY3QqIG1fZXdrRnJhbWU7CiB9
OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2Nvb2tpZXMuaCBi
L1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfY29va2llcy5oCmluZGV4IDQwZTY5ZDU2YzRlNWY1
YjExMzA3OGUyMDU1NDBkYTI0YWMxZmVlYzAuLjI5YWMxMjE4MmMwZjgzZjRhOWE1OTc5OWQzODNi
ZGJlOGQ2MTY5ZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfY29va2ll
cy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfY29va2llcy5oCkBAIC0yMSw2ICsy
MSwxMiBAQAogLyoqCiAgKiBAZmlsZSAgICBld2tfY29va2llcy5oCiAgKiBAYnJpZWYgICBUaGUg
RXdrIGNvb2tpZXMgQVBJLgorICoKKyAqIEBub3RlIElmIHRoZSBsaWJzb3VwIG5ldHdvcmsgYmFj
a2VuZCBpcyBiZWluZyB1c2VkIHRoZSBmdW5jdGlvbnMgaGVyZSB3aWxsCisgKiBvbmx5IHdvcmsg
d2l0aCB0aGUgQGIgZGVmYXVsdCBTb3VwU2Vzc2lvbiwgd2hpY2ggY2FuIGJlIHJldHJpZXZlZCB3
aXRoCisgKiBld2tfbmV0d29ya19kZWZhdWxfc291cF9zZXNzaW9uX2dldCgpLiBJZiBhIGRpZmZl
cmVudCBTb3VwU2Vzc2lvbiBpcyB1c2VkCisgKiBhbmQgYXNzb2NpYXRlZCB3aXRoIGEgdmlldyB3
aXRoIGV3a192aWV3X3NvdXBfc2Vzc2lvbl9zZXQoKSwgYWxsIGNvb2tpZQorICogbWFuYWdlbWVu
dCB3aWxsIGhhdmUgdG8gYmUgZG9uZSBtYW51YWxseS4KICAqLwogCiAjaWZuZGVmIGV3a19jb29r
aWVzX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfbmV0d29yay5oIGIv
U291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19uZXR3b3JrLmgKaW5kZXggNjRmZDE1MDgzZmNlYzc4
ODRlODZlZmQwMjNhZjhkMmU2YTYwMWFjZC4uZGJlYzgxNTg0NjZhZjJmYjUyNmMzYWRlNWFlN2Zm
YzlkMjIxMDJjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19uZXR3b3Jr
LmgKKysrIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19uZXR3b3JrLmgKQEAgLTM2LDYgKzM2
LDExIEBAIGV4dGVybiAiQyIgewogICogU2V0cyB0aGUgZ2l2ZW4gcHJveHkgVVJJIHRvIG5ldHdv
cmsgYmFja2VuZC4KICAqCiAgKiBAcGFyYW0gcHJveHkgVVJJIHRvIHNldAorICoKKyAqIEBub3Rl
IElmIHRoZSBsaWJzb3VwIGJhY2tlbmQgaXMgYmVpbmcgdXNlZCwgdGhpcyBmdW5jdGlvbiBoYXMg
ZWZmZWN0IG9uCisgKiB0aGUgQGIgZGVmYXVsdCBTb3VwU2Vzc2lvbiwgcmV0dXJuZWQgYnkgZXdr
X25ldHdvcmtfZGVmYXVsdF9zb3VwX3Nlc3Npb25fZ2V0KCkuCisgKiBJZiBhIGRpZmZlcmVudCBT
b3VwU2Vzc2lvbiBpcyB1c2VkIGFuZCBwYXNzZWQgdG8gZXdrX3ZpZXdfc291cF9zZXNzaW9uX3Nl
dCgpLAorICogdGhpcyBmdW5jdGlvbiB3aWxsIG5vdCBoYXZlIGFueSBlZmZlY3Qgb24gaXQuCiAg
Ki8KIEVBUEkgdm9pZCAgICAgICAgICAgICBld2tfbmV0d29ya19wcm94eV91cmlfc2V0KGNvbnN0
IGNoYXIgKnByb3h5KTsKIApAQCAtNDUsNiArNTAsMTEgQEAgRUFQSSB2b2lkICAgICAgICAgICAg
IGV3a19uZXR3b3JrX3Byb3h5X3VyaV9zZXQoY29uc3QgY2hhciAqcHJveHkpOwogICogVGhlIHJl
dHVybmVkIHN0cmluZyBzaG91bGQgYmUgZnJlZWQgYnkgZWluYV9zdHJpbmdzaGFyZV9kZWwoKSBh
ZnRlciB1c2UuCiAgKgogICogQHJldHVybiBjdXJyZW50IHByb3h5IFVSSSBvciBAYyAwIGlmIGl0
J3Mgbm90IHNldAorICoKKyAqIEBub3RlIElmIHRoZSBsaWJzb3VwIGJhY2tlbmQgaXMgYmVpbmcg
dXNlZCwgdGhpcyBmdW5jdGlvbiBoYXMgZWZmZWN0IG9uCisgKiB0aGUgQGIgZGVmYXVsdCBTb3Vw
U2Vzc2lvbiwgcmV0dXJuZWQgYnkgZXdrX25ldHdvcmtfZGVmYXVsdF9zb3VwX3Nlc3Npb25fZ2V0
KCkuCisgKiBJZiBhIGRpZmZlcmVudCBTb3VwU2Vzc2lvbiBpcyB1c2VkIGFuZCBwYXNzZWQgdG8g
ZXdrX3ZpZXdfc291cF9zZXNzaW9uX3NldCgpLAorICogdGhpcyBmdW5jdGlvbiB3aWxsIG5vdCBo
YXZlIGFueSBlZmZlY3Qgb24gaXQuCiAgKi8KIEVBUEkgY29uc3QgY2hhciAgICAgICpld2tfbmV0
d29ya19wcm94eV91cmlfZ2V0KHZvaWQpOwogCkBAIC02MSw2ICs3MSwxMSBAQCBFQVBJIHZvaWQg
ICAgICAgICAgICAgZXdrX25ldHdvcmtfc3RhdGVfbm90aWZpZXJfb25saW5lX3NldChFaW5hX0Jv
b2wgb25saW5lKTsKICAqIEJ5IGRlZmF1bHQsIEhUVFBTIGNvbm5lY3Rpb25zIGFyZSBwZXJmb3Jt
ZWQgcmVnYXJkbGVzcyBvZiB0aGUgdmFsaWRpdHkgb2YgdGhlIGNlcnRpZmljYXRlIHByb3ZpZGVk
LgogICoKICAqIEBzYSBld2tfbmV0d29ya190bHNfY2FfY2VydGlmaWNhdGVzX3BhdGhfc2V0Cisg
KgorICogQG5vdGUgSWYgdGhlIGxpYnNvdXAgYmFja2VuZCBpcyBiZWluZyB1c2VkLCB0aGlzIGZ1
bmN0aW9uIGhhcyBlZmZlY3Qgb24KKyAqIHRoZSBAYiBkZWZhdWx0IFNvdXBTZXNzaW9uLCByZXR1
cm5lZCBieSBld2tfbmV0d29ya19kZWZhdWx0X3NvdXBfc2Vzc2lvbl9nZXQoKS4KKyAqIElmIGEg
ZGlmZmVyZW50IFNvdXBTZXNzaW9uIGlzIHVzZWQgYW5kIHBhc3NlZCB0byBld2tfdmlld19zb3Vw
X3Nlc3Npb25fc2V0KCksCisgKiB0aGlzIGZ1bmN0aW9uIHdpbGwgbm90IGhhdmUgYW55IGVmZmVj
dCBvbiBpdC4KICAqLwogRUFQSSBFaW5hX0Jvb2wgICAgICAgIGV3a19uZXR3b3JrX3Rsc19jZXJ0
aWZpY2F0ZV9jaGVja19nZXQodm9pZCk7CiAKQEAgLTcyLDYgKzg3LDExIEBAIEVBUEkgRWluYV9C
b29sICAgICAgICBld2tfbmV0d29ya190bHNfY2VydGlmaWNhdGVfY2hlY2tfZ2V0KHZvaWQpOwog
ICogQHBhcmFtIGVuYWJsZSBXaGV0aGVyIHRvIGNoZWNrIHRoZSBwcm92aWRlZCBjZXJ0aWZpY2F0
ZXMgb3Igbm90LgogICoKICAqIEBzYSBld2tfbmV0d29ya190bHNfY2FfY2VydGlmaWNhdGVzX3Bh
dGhfc2V0CisgKgorICogQG5vdGUgSWYgdGhlIGxpYnNvdXAgYmFja2VuZCBpcyBiZWluZyB1c2Vk
LCB0aGlzIGZ1bmN0aW9uIGhhcyBlZmZlY3Qgb24KKyAqIHRoZSBAYiBkZWZhdWx0IFNvdXBTZXNz
aW9uLCByZXR1cm5lZCBieSBld2tfbmV0d29ya19kZWZhdWx0X3NvdXBfc2Vzc2lvbl9nZXQoKS4K
KyAqIElmIGEgZGlmZmVyZW50IFNvdXBTZXNzaW9uIGlzIHVzZWQgYW5kIHBhc3NlZCB0byBld2tf
dmlld19zb3VwX3Nlc3Npb25fc2V0KCksCisgKiB0aGlzIGZ1bmN0aW9uIHdpbGwgbm90IGhhdmUg
YW55IGVmZmVjdCBvbiBpdC4KICAqLwogRUFQSSB2b2lkICAgICAgICAgICAgIGV3a19uZXR3b3Jr
X3Rsc19jZXJ0aWZpY2F0ZV9jaGVja19zZXQoRWluYV9Cb29sIGVuYWJsZSk7CiAKQEAgLTg4LDYg
KzEwOCwxMSBAQCBFQVBJIHZvaWQgICAgICAgICAgICAgZXdrX25ldHdvcmtfdGxzX2NlcnRpZmlj
YXRlX2NoZWNrX3NldChFaW5hX0Jvb2wgZW5hYmxlKTsKICAqIEJ5IGRlZmF1bHQsIHRoZSBwYXRo
IGlzIG5vdCBzZXQsIHNvIGFsbCBjZXJ0aWZpY2F0ZXMgYXJlIGNvbnNpZGVyZWQgYXMgbm90IHNp
Z25lZCBieSBhIHRydXN0ZWQgcm9vdCBDQS4KICAqCiAgKiBAc2EgZXdrX25ldHdvcmtfdGxzX2Nl
cnRpZmljYXRlX2NoZWNrX3NldAorICoKKyAqIEBub3RlIElmIHRoZSBsaWJzb3VwIGJhY2tlbmQg
aXMgYmVpbmcgdXNlZCwgdGhpcyBmdW5jdGlvbiBoYXMgZWZmZWN0IG9uCisgKiB0aGUgQGIgZGVm
YXVsdCBTb3VwU2Vzc2lvbiwgcmV0dXJuZWQgYnkgZXdrX25ldHdvcmtfZGVmYXVsdF9zb3VwX3Nl
c3Npb25fZ2V0KCkuCisgKiBJZiBhIGRpZmZlcmVudCBTb3VwU2Vzc2lvbiBpcyB1c2VkIGFuZCBw
YXNzZWQgdG8gZXdrX3ZpZXdfc291cF9zZXNzaW9uX3NldCgpLAorICogdGhpcyBmdW5jdGlvbiB3
aWxsIG5vdCBoYXZlIGFueSBlZmZlY3Qgb24gaXQuCiAgKi8KIEVBUEkgY29uc3QgY2hhciAgICAg
ICpld2tfbmV0d29ya190bHNfY2FfY2VydGlmaWNhdGVzX3BhdGhfZ2V0KHZvaWQpOwogCkBAIC0x
MDYsNiArMTMxLDExIEBAIEVBUEkgY29uc3QgY2hhciAgICAgICpld2tfbmV0d29ya190bHNfY2Ff
Y2VydGlmaWNhdGVzX3BhdGhfZ2V0KHZvaWQpOwogICogQHBhcmFtIHBhdGggVGhlIHBhdGggdG8g
dGhlIGNlcnRpZmljYXRlIGJ1bmRsZS4KICAqCiAgKiBAc2EgZXdrX25ldHdvcmtfdGxzX2NlcnRp
ZmljYXRlX2NoZWNrX3NldAorICoKKyAqIEBub3RlIElmIHRoZSBsaWJzb3VwIGJhY2tlbmQgaXMg
YmVpbmcgdXNlZCwgdGhpcyBmdW5jdGlvbiBoYXMgZWZmZWN0IG9uCisgKiB0aGUgQGIgZGVmYXVs
dCBTb3VwU2Vzc2lvbiwgcmV0dXJuZWQgYnkgZXdrX25ldHdvcmtfZGVmYXVsdF9zb3VwX3Nlc3Np
b25fZ2V0KCkuCisgKiBJZiBhIGRpZmZlcmVudCBTb3VwU2Vzc2lvbiBpcyB1c2VkIGFuZCBwYXNz
ZWQgdG8gZXdrX3ZpZXdfc291cF9zZXNzaW9uX3NldCgpLAorICogdGhpcyBmdW5jdGlvbiB3aWxs
IG5vdCBoYXZlIGFueSBlZmZlY3Qgb24gaXQuCiAgKi8KIEVBUEkgdm9pZCAgICAgICAgICAgICBl
d2tfbmV0d29ya190bHNfY2FfY2VydGlmaWNhdGVzX3BhdGhfc2V0KGNvbnN0IGNoYXIgKnBhdGgp
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuY3BwIGIvU291
cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3LmNwcAppbmRleCA5Nzg5YzFjMzBkMjkzYTBjZjI0
NTA3MjE2YjI4MjkzZTlkMGZiYTgxLi5hYWU5NTUxZWY4ODA2NjM0OWFjYzhiNzU5MmUyNjMwOGJi
MGE0Y2M1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5jcHAKQEAgLTUwLDYgKzUwLDcgQEAK
ICNpbmNsdWRlICJQcm9ncmVzc1RyYWNrZXIuaCIKICNpbmNsdWRlICJSZWZQdHJDYWlyby5oIgog
I2luY2x1ZGUgIlJlbmRlclRoZW1lLmgiCisjaW5jbHVkZSAiUmVzb3VyY2VIYW5kbGUuaCIKICNp
bmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgImNfaW5zdGFuY2UuaCIKICNpbmNsdWRlICJl
d2tfbG9nZ2luZy5oIgpAQCAtNTksNiArNjAsNyBAQAogI2luY2x1ZGUgPEV2YXMuaD4KICNpbmNs
dWRlIDxlaW5hX3NhZmV0eV9jaGVja3MuaD4KICNpbmNsdWRlIDxpbnR0eXBlcy5oPgorI2luY2x1
ZGUgPGxpYnNvdXAvc291cC1zZXNzaW9uLmg+CiAjaW5jbHVkZSA8bGltaXRzPgogI2luY2x1ZGUg
PG1hdGguaD4KICNpbmNsdWRlIDxzeXMvdGltZS5oPgpAQCAtMjExLDYgKzIxMyw3IEBAIHN0cnVj
dCBfRXdrX1ZpZXdfUHJpdmF0ZV9EYXRhIHsKICAgICAgICAgfSBjZW50ZXI7CiAgICAgICAgIEVj
b3JlX0FuaW1hdG9yKiBhbmltYXRvcjsKICAgICB9IGFuaW1hdGVkWm9vbTsKKyAgICBTb3VwU2Vz
c2lvbiogc291cFNlc3Npb247CiB9OwogCiAjaWZuZGVmIEVXS19UWVBFX0NIRUNLCkBAIC03MTQs
NiArNzE3LDggQEAgc3RhdGljIEV3a19WaWV3X1ByaXZhdGVfRGF0YSogX2V3a192aWV3X3ByaXZf
bmV3KEV3a19WaWV3X1NtYXJ0X0RhdGEqIHNtYXJ0RGF0YSkKICAgICAgICAgZ290byBlcnJvcl9o
aXN0b3J5OwogICAgIH0KIAorICAgIHByaXYtPnNvdXBTZXNzaW9uID0gV2ViQ29yZTo6UmVzb3Vy
Y2VIYW5kbGU6OmRlZmF1bHRTZXNzaW9uKCk7CisKICAgICByZXR1cm4gcHJpdjsKIAogZXJyb3Jf
aGlzdG9yeToKQEAgLTM5MTMsNiArMzkxOCwyNSBAQCBFd2tfUGFnZV9WaXNpYmlsaXR5X1N0YXRl
IGV3a192aWV3X3Zpc2liaWxpdHlfc3RhdGVfZ2V0KGNvbnN0IEV2YXNfT2JqZWN0KiBld2tWaQog
I2VuZGlmCiB9CiAKK1NvdXBTZXNzaW9uKiBld2tfdmlld19zb3VwX3Nlc3Npb25fZ2V0KGNvbnN0
IEV2YXNfT2JqZWN0KiBld2tWaWV3KQoreworICAgIEVXS19WSUVXX1NEX0dFVF9PUl9SRVRVUk4o
ZXdrVmlldywgc21hcnREYXRhLCAwKTsKKyAgICBFV0tfVklFV19QUklWX0dFVF9PUl9SRVRVUk4o
c21hcnREYXRhLCBwcml2LCAwKTsKKyAgICByZXR1cm4gcHJpdi0+c291cFNlc3Npb247Cit9CisK
K3ZvaWQgZXdrX3ZpZXdfc291cF9zZXNzaW9uX3NldChFdmFzX09iamVjdCogZXdrVmlldywgU291
cFNlc3Npb24qIHNlc3Npb24pCit7CisgICAgRVdLX1ZJRVdfU0RfR0VUX09SX1JFVFVSTihld2tW
aWV3LCBzbWFydERhdGEpOworICAgIEVXS19WSUVXX1BSSVZfR0VUX09SX1JFVFVSTihzbWFydERh
dGEsIHByaXYpOworICAgIGlmICghU09VUF9JU19TRVNTSU9OX0FTWU5DKHNlc3Npb24pKSB7Cisg
ICAgICAgIEVSUigiV2ViS2l0IHJlcXVpcmVzIGFuIFNvdXBTZXNzaW9uQXN5bmMgdG8gd29yayBw
cm9wZXJseSwgYnV0ICIKKyAgICAgICAgICAgICJhIFNvdXBTZXNzaW9uU3luYyB3YXMgcHJvdmlk
ZWQuIik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgcHJpdi0+c291cFNlc3Npb24gPSBz
ZXNzaW9uOworfQorCiBuYW1lc3BhY2UgRVdLUHJpdmF0ZSB7CiAKIFdlYkNvcmU6OlBhZ2UgKmNv
cmVQYWdlKGNvbnN0IEV2YXNfT2JqZWN0ICpld2tWaWV3KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9lZmwvZXdrL2V3a192aWV3LmggYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcu
aAppbmRleCBkMzQ3NGE2NGIzOTNmNjVlMTAzYzQ5YjAyYjY1NTQzNTgzYjUzZDZjLi43ZGUwZTQ2
MmYxN2M1YWFhMzQyODc2MzJjMmQzNGVmMTU0N2E3MzdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L2VmbC9ld2svZXdrX3ZpZXcuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3Zp
ZXcuaApAQCAtOTUsNiArOTUsNyBAQAogCiAjaW5jbHVkZSA8RXZhcy5oPgogI2luY2x1ZGUgPGNh
aXJvLmg+CisjaW5jbHVkZSA8bGlic291cC9zb3VwLXNlc3Npb24uaD4KIAogI2lmZGVmIF9fY3Bs
dXNwbHVzCiBleHRlcm4gIkMiIHsKQEAgLTIzMzUsNiArMjMzNiwzNCBAQCBFQVBJIEVpbmFfQm9v
bCBld2tfdmlld19taXhlZF9jb250ZW50X2Rpc3BsYXllZF9nZXQoY29uc3QgRXZhc19PYmplY3Qg
Km8pOwogICovCiBFQVBJIEVpbmFfQm9vbCBld2tfdmlld19taXhlZF9jb250ZW50X3J1bl9nZXQo
Y29uc3QgRXZhc19PYmplY3QgKm8pOwogCisvKioKKyAqIFJldHVybnMgdGhlIFNvdXBTZXNzaW9u
IGFzc29jaWF0ZWQgd2l0aCB0aGlzIHZpZXcuCisgKgorICogQnkgZGVmYXVsdCwgYWxsIHZpZXdz
IHNoYXJlIHRoZSBzYW1lLCBkZWZhdWx0IHNvdXAgc2Vzc2lvbiBhbHNvIGF2YWlsYWJsZQorICog
YnkgY2FsbGluZyBld2tfbmV0d29ya19kZWZhdWx0X3NvdXBfc2Vzc2lvbl9nZXQuCisgKgorICog
QHBhcmFtIG8gVGhlIHZpZXcgdG8gcXVlcnkuCisgKgorICogQHNhIGV3a192aWV3X3NvdXBfc2Vz
c2lvbl9zZXQsIGV3a19uZXR3b3JrX2RlZmF1bHRfc291cF9zZXNzaW9uX2dldAorICovCitFQVBJ
IFNvdXBTZXNzaW9uKiBld2tfdmlld19zb3VwX3Nlc3Npb25fZ2V0KGNvbnN0IEV2YXNfT2JqZWN0
ICpvKTsKKworLyoqCisgKiBBc3NvY2lhdGVzIGEgbmV3IFNvdXBTZXNzaW9uIHdpdGggdGhpcyB2
aWV3LgorICoKKyAqIE9ubHkgc2Vzc2lvbnMgb2YgdHlwZSBTb3VwU2Vzc2lvbkFzeW5jIGFyZSBz
dXBwb3J0ZWQuCisgKgorICogQG5vdGUgQ2hhbmdpbmcgdGhlIFNvdXBTZXNzaW9uIHNob3VsZCBu
b3QgYmUgbmVlZGVkIGluIG1vc3QgY2FzZXMuIElmCisgKiAgICAgICBhIGRpZmZlcmVudCBTb3Vw
U2Vzc2lvbiBpcyB1c2VkLCB0aGUgY29va2llIG1hbmFnZW1lbnQgYW5kIHNvbWUKKyAqICAgICAg
IG5ldHdvcmsgZnVuY3Rpb25zIGluIGV3ayB3aWxsIG5vdCBoYXZlIGFueSBlZmZlY3Qgb24gaXQu
CisgKgorICogQHBhcmFtIG8gVGhlIHZpZXcgdG8gY2hhbmdlLgorICogQHBhcmFtIHNlc3Npb24g
VGhlIG5ldyBTb3VwU2Vzc2lvbi4KKyAqCisgKiBAc2EgZXdrX3ZpZXdfc291cF9zZXNzaW9uX2dl
dCwgZXdrX25ldHdvcmtfZGVmYXVsdF9zb3VwX3Nlc3Npb25fZ2V0CisgKi8KK0VBUEkgdm9pZCBl
d2tfdmlld19zb3VwX3Nlc3Npb25fc2V0KEV2YXNfT2JqZWN0ICpvLCBTb3VwU2Vzc2lvbiAqc2Vz
c2lvbik7CisKICNpZmRlZiBfX2NwbHVzcGx1cwogfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L2d0ay9HTlVtYWtlZmlsZS5hbSBiL1NvdXJjZS9XZWJLaXQvZ3RrL0dOVW1ha2Vm
aWxlLmFtCmluZGV4IDM4ZDJiYjAyYTI4ODVkYTM5MDhhYmI4ZjM2NjEzZDExOTQwOWMyYjcuLjU2
N2Q3OWJiOTAzNTRmZDFkYTQyODRjNWVmYWJiY2ZhYzYxYmFlYWYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvZ3RrL0dOVW1ha2VmaWxlLmFtCisrKyBiL1NvdXJjZS9XZWJLaXQvZ3RrL0dOVW1h
a2VmaWxlLmFtCkBAIC0yMDQsNiArMjA0LDcgQEAgd2Via2l0Z3RrX3NvdXJjZXMgKz0gXAogCVNv
dXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEd0ay5oIFwKIAlTb3Vy
Y2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5jcHAgXAog
CVNvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmgg
XAorCVNvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTmV0d29ya2luZ0NvbnRl
eHRHdGsuY3BwIFwKIAlTb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9GcmFtZU5ldHdv
cmtpbmdDb250ZXh0R3RrLmggXAogCVNvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Z1
bGxzY3JlZW5WaWRlb0NvbnRyb2xsZXIuY3BwIFwKIAlTb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3Jl
U3VwcG9ydC9GdWxsc2NyZWVuVmlkZW9Db250cm9sbGVyLmggXApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRnJhbWVOZXR3b3JraW5nQ29udGV4dEd0ay5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9GcmFtZU5ldHdvcmtpbmdDb250ZXh0
R3RrLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi40YjlkMTI0OTEzMjY5NjY3OGY3NDNkZGMxODMxNWVkZGZmMzIy
MWM4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQv
RnJhbWVOZXR3b3JraW5nQ29udGV4dEd0ay5jcHAKQEAgLTAsMCArMSwzNSBAQAorLyoKKyAgICBD
b3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5
KC1pZXMpCisgICAgQ29weXJpZ2h0IChDKSAyMDEyIFByb0ZVU0lPTiBlbWJlZGRlZCBzeXN0ZW1z
CisKKyAgICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1
dGUgaXQgYW5kL29yCisgICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJl
ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAgICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vu
c2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisKKyAgICBUaGlzIGxp
YnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwK
KyAgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3
YXJyYW50eSBvZgorICAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgICAgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNl
bnNlIGZvciBtb3JlIGRldGFpbHMuCisKKyAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBj
b3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgICAgYWxvbmcg
d2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3Jp
dGUgdG8KKyAgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xp
biBTdHJlZXQsIEZpZnRoIEZsb29yLAorICAgIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgor
Ki8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkZyYW1lTmV0d29ya2luZ0NvbnRl
eHRHdGsuaCIKKworI2luY2x1ZGUgIlJlc291cmNlSGFuZGxlLmgiCisKK3VzaW5nIG5hbWVzcGFj
ZSBXZWJDb3JlOworCituYW1lc3BhY2UgV2ViS2l0IHsKKworU291cFNlc3Npb24qIEZyYW1lTmV0
d29ya2luZ0NvbnRleHRHdGs6OnNvdXBTZXNzaW9uKCkgY29uc3QKK3sKKyAgICByZXR1cm4gUmVz
b3VyY2VIYW5kbGU6OmRlZmF1bHRTZXNzaW9uKCk7Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTmV0d29ya2luZ0NvbnRleHRHdGsuaCBi
L1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTmV0d29ya2luZ0NvbnRleHRH
dGsuaAppbmRleCA4ZTRjMjE0OGQyMTZiYmU0YzVlZjAzYmRhMTFkNDIwYjM0NmE0MjZjLi5hNTlh
OTQwOTlhYmZkMWM3YzM0YmU4NGY1YzA4NDM0MTQ4ZTc1Mzg0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9GcmFtZU5ldHdvcmtpbmdDb250ZXh0R3RrLmgKKysr
IGIvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRnJhbWVOZXR3b3JraW5nQ29udGV4
dEd0ay5oCkBAIC0zMiw2ICszMiw3IEBAIHB1YmxpYzoKICAgICB9CiAKICAgICBXZWJDb3JlOjpG
cmFtZSogY29yZUZyYW1lKCkgY29uc3QgeyByZXR1cm4gZnJhbWUoKTsgfQorICAgIHZpcnR1YWwg
U291cFNlc3Npb24qIHNvdXBTZXNzaW9uKCkgY29uc3Q7CiAKIHByaXZhdGU6CiAgICAgRnJhbWVO
ZXR3b3JraW5nQ29udGV4dEd0ayhXZWJDb3JlOjpGcmFtZSogZnJhbWUpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>127230</attachid>
            <date>2012-02-15 13:59:59 -0800</date>
            <delta_ts>2012-02-15 14:01:34 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-77341-20120215200112.patch</filename>
            <type>text/plain</type>
            <size>29779</size>
            <attacher name="Raphael Kubo da Costa (:rakuco)">rakuco</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA3ODA5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDY4YWJiYzI1YmU0NWYw
MDdhMzE4YTU4NGQyNzkyM2ZlNmE2YzRkMS4uMzhjYTM3NmQwNWFjN2QxZjViM2RkNmQ4NTEzN2Jh
MDBkN2EwMTQ4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUxIEBACisyMDEyLTAxLTMxICBSYXBo
YWVsIEt1Ym8gZGEgQ29zdGEgIDxrdWJvQHByb2Z1c2lvbi5tb2JpPgorCisgICAgICAgIFtzb3Vw
XSBBZGQgc3VwcG9ydCBmb3IgbXVsdGlwbGUgU291cFNlc3Npb25zLgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzczNDEKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNYWtlIHRoZSBsaWJzb3VwIG5ldHdvcmsg
YmFja2VuZCBzdXBwb3J0IG11bHRpcGxlIFNvdXBTZXNzaW9ucy4gVGhpcyBpcworICAgICAgICBh
Y2NvbXBsaXNoZWQgYnkgdXNpbmcgdGhlIE5ldHdvcmtpbmdDb250ZXh0IGNsYXNzZXMsIHdoaWNo
IG5vdyBoYXZlIGEKKyAgICAgICAgYHNvdXBTZXNzaW9uKCknIG1ldGhvZCB3aGVuIHRoZSBsaWJz
b3VwIGJhY2tlbmQgaXMgYmVpbmcgdXNlZC4KKworICAgICAgICBsaWJzb3VwJ3MgUmVzb3VyY2VI
YW5kbGUgaW1wbGVtZW50YXRpb24gbm93IHJldHJpZXZlcyB0aGUgU291cFNlc3Npb24KKyAgICAg
ICAgdmlhIHRoZSBOZXR3b3JraW5nQ29udGV4dCBpdCByZWNlaXZlcyBpbnN0ZWFkIG9mIHJlbHlp
bmcgb24KKyAgICAgICAgZGVmYXVsdFNlc3Npb24oKS4gZGVmYXVsdFNlc3Npb24oKSBpcyBzdGls
bCB1c2VkIHdoZW4gYSBudWxsCisgICAgICAgIE5ldHdvcmtpbmdDb250ZXh0IGlzIHBhc3NlZCB0
byBSZXNvdXJjZUhhbmRsZTo6c3RhcnQgKGZvciBleGFtcGxlLCB2aWEKKyAgICAgICAgd2Via2l0
X2Rvd25sb2FkX3N0YXJ0KS4KKworICAgICAgICBUaGUgQ29va2llSmFyIGltcGxlbWVudGF0aW9u
IHJldHJpZXZlcyB0aGUgU291cFNlc3Npb24gZnJvbSB0aGUKKyAgICAgICAgTmV0d29ya2luZ0Nv
bnRleHQgYXMgbXVjaCBhcyBwb3NzaWJsZSBhcyB3ZWxsIC0tIHRoZSBmdW5jdGlvbnMgdXNlZCBi
eQorICAgICAgICBXZWJLaXQyIGNvdWxkIG5vdCBiZSBjb252ZXJ0ZWQsIHRob3VnaCwgYXMgdGhl
eSBzZWVtIHRvIGFzc3VtZSB0aGVyZSBpcworICAgICAgICBvbmx5IG9uZSBzaGFyZWQgY29va2ll
IGphci4KKworICAgICAgICBObyBuZXcgdGVzdHMsIGNvdmVyZWQgYnkgdGhlIGV4aXN0aW5nIG9u
ZXMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtpbmdDb250ZXh0Lmg6Cisg
ICAgICAgIChOZXR3b3JraW5nQ29udGV4dCk6IEFkZCBzb3VwU2Vzc2lvbigpIG1ldGhvZCBpZiBV
U0UoU09VUCkgaXMgc2V0LgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5k
bGVJbnRlcm5hbC5oOgorICAgICAgICAoUmVzb3VyY2VIYW5kbGVJbnRlcm5hbCk6CisgICAgICAg
ICogcGxhdGZvcm0vbmV0d29yay9zb3VwL0Nvb2tpZUphclNvdXAuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6Y29va2llSmFyRm9yRG9jdW1lbnQpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAg
IChXZWJDb3JlOjpkZWZhdWx0Q29va2llSmFyKToKKyAgICAgICAgKFdlYkNvcmU6OnNldENvb2tp
ZXMpOgorICAgICAgICAoV2ViQ29yZTo6Y29va2llcyk6CisgICAgICAgIChXZWJDb3JlOjpjb29r
aWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpjb29raWVzRW5h
YmxlZCk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlSGFuZGxlU291
cC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZUludGVybmFsOjpzb3VwU2Vz
c2lvbik6IEFkZCBtZXRob2QgdG8gcmV0cmlldmUKKyAgICAgICAgYSBTb3VwU2Vzc2lvbiBmcm9t
IGEgTmV0d29ya2luZ0NvbnRleHQgYW5kIGZhbGxiYWNrIHRvIGRlZmF1bHRTZXNzaW9uKCkKKyAg
ICAgICAgaWYgdGhlcmUncyBubyB2YWxpZCBOZXR3b3JraW5nQ29udGV4dC4KKyAgICAgICAgKFdl
YkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6ZW5zdXJlU2Vzc2lvbklzSW5pdGlhbGl6ZWQpOiBP
bmx5IGNoYW5nZSBvciB1c2UgdGhlIGRlZmF1bHQKKyAgICAgICAgY29va2llIGphciBpZiB0aGUg
U291cFNlc3Npb24gYmVpbmcgY2hhbmdlZCBpcyB0aGUgZGVmYXVsdCBvbmUuCisgICAgICAgIChX
ZWJDb3JlOjpzZW5kUmVxdWVzdENhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OnN0YXJ0SFRU
UFJlcXVlc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OmNhbmNlbCk6Cisg
ICAgICAgIChXZWJDb3JlOjpzdGFydE5vbkhUVFBSZXF1ZXN0KToKKwogMjAxMi0wMi0xNSAgWXVy
eSBTZW1pa2hhdHNreSAgPHl1cnlzQGNocm9taXVtLm9yZz4KIAogICAgICAgICBVbnJldmlld2Vk
LiBCdWlsZCBmaXggYWZ0ZXIgcjEwNzgwNgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCmluZGV4IDBkYTgxZDkzMzNl
Mzk4Y2IzZjJiNTIyNGU2MmNkM2VkMjZhNDAyMjMuLmExMjRmY2QzY2MwYTIxNDcyM2IzYjIwYTRh
NDNlNTgzY2QzYzY2ZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0MiBAQAorMjAxMi0w
MS0zMSAgUmFwaGFlbCBLdWJvIGRhIENvc3RhICA8a3Vib0Bwcm9mdXNpb24ubW9iaT4KKworICAg
ICAgICBbc291cF0gQWRkIHN1cHBvcnQgZm9yIG11bHRpcGxlIFNvdXBTZXNzaW9ucy4KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc3MzQxCisKKyAgICAg
ICAgQWRkIHRoZSBuZWNlc3NhcnkgaW5mcmFzdHJ1Y3R1cmUgdG8gc3VwcG9ydCBtdWx0aXBsZSBT
b3VwU2Vzc2lvbnMuIEVhY2gKKyAgICAgICAgV2ViVmlldyBub3cgaGFzIGEgInNlc3Npb24iIHBy
b3BlcnR5LCB3aGljaCBkZWZhdWx0cyB0bworICAgICAgICBSZXNvdXJjZUhhbmRsZTo6ZGVmYXVs
dFNlc3Npb24oKSBhbmQgY2FuIGJlIGNoYW5nZWQgdG8gYW5vdGhlcgorICAgICAgICBTb3VwU2Vz
c2lvbiBieSB0aGUgdXNlci4KKworICAgICAgICBTb21lIEFQSSBpbiBld2tfbmV0d29yayBhbmQg
ZXdrX3ZpZXcgd2hpY2ggcmVxdWlyZWQgU291cFNlc3Npb24gdG8gYmUgYQorICAgICAgICB2YWxp
ZCB0eXBlIGluIHRoZSBoZWFkZXJzIGhhcyBub3cgYmVlbiBtb3ZlZCBpbnNpZGUgI2lmIFVTRShT
T1VQKQorICAgICAgICBpZmRlZnMgc28gd2UgY2FuIGFjdHVhbGx5IHRoZSByZXF1aXJlZCBTb3Vw
IGhlYWRlciBhbmQgYXZvaWQgYnVpbGQKKyAgICAgICAgcHJvYmxlbXMgd2l0aCBkdXBsaWNhdGUg
dHlwZWRlZnMuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzRWZsLnR4dDoKKyAgICAgICAgKiBXZWJD
b3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEVmbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpG
cmFtZUxvYWRlckNsaWVudEVmbDo6Y3JlYXRlTmV0d29ya2luZ0NvbnRleHQpOgorICAgICAgICAq
IFdlYkNvcmVTdXBwb3J0L0ZyYW1lTmV0d29ya2luZ0NvbnRleHRFZmwuY3BwOiBDb3BpZWQgZnJv
bSBTb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9GcmFtZU5ldHdvcmtpbmdDb250ZXh0
RWZsLmguCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTmV0d29y
a2luZ0NvbnRleHRFZmw6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZU5ldHdvcmtp
bmdDb250ZXh0RWZsOjpGcmFtZU5ldHdvcmtpbmdDb250ZXh0RWZsKToKKyAgICAgICAgKFdlYkNv
cmU6OkZyYW1lTmV0d29ya2luZ0NvbnRleHRFZmw6OnNvdXBTZXNzaW9uKToKKyAgICAgICAgKiBX
ZWJDb3JlU3VwcG9ydC9GcmFtZU5ldHdvcmtpbmdDb250ZXh0RWZsLmg6CisgICAgICAgIChGcmFt
ZU5ldHdvcmtpbmdDb250ZXh0RWZsKToKKyAgICAgICAgKiBld2svZXdrX2Nvb2tpZXMuaDogTWVu
dGlvbiB0aGlzIEFQSSBpcyBvbmx5IHZhbGlkIHdpdGggdGhlCisgICAgICAgIGRlZmF1bHQgU291
cFNlc3Npb24uCisgICAgICAgICogZXdrL2V3a19uZXR3b3JrLmNwcDoKKyAgICAgICAgKGV3a19u
ZXR3b3JrX2RlZmF1bHRfc291cF9zZXNzaW9uX2dldCk6IERlZmluZSBvbmx5IGlmIFVTRShTT1VQ
KSBpcyBzZXQuCisgICAgICAgICogZXdrL2V3a19uZXR3b3JrLmg6IERpdHRvLCBhbmQgbWVudGlv
biB0aGlzIEFQSSBpcyBvbmx5IHZhbGlkIHdpdGggdGhlCisgICAgICAgIGRlZmF1bHQgU291cFNl
c3Npb24uCisgICAgICAgICogZXdrL2V3a192aWV3LmNwcDoKKyAgICAgICAgKF9Fd2tfVmlld19Q
cml2YXRlX0RhdGEpOgorICAgICAgICAoX2V3a192aWV3X3ByaXZfbmV3KToKKyAgICAgICAgKGV3
a192aWV3X3NvdXBfc2Vzc2lvbl9nZXQpOgorICAgICAgICAoZXdrX3ZpZXdfc291cF9zZXNzaW9u
X3NldCk6CisgICAgICAgICogZXdrL2V3a192aWV3Lmg6CisgICAgICAgICgpOgorCiAyMDEyLTAy
LTEzICBSYXBoYWVsIEt1Ym8gZGEgQ29zdGEgIDxrdWJvQHByb2Z1c2lvbi5tb2JpPgogCiAgICAg
ICAgIFtDTWFrZV0gTWVyZ2UgV2ViS2l0RWZsLmNtYWtlIGludG8gRmluZEVGTC5jbWFrZS4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvZ3Rr
L0NoYW5nZUxvZwppbmRleCBjZmU4MjNlM2VmZjc0OTA2MWU2MmRkNjkyNWIxNWVkZjIxZjcyYmM2
Li4yODYxMzk5NzA1MDI4YWE4MDg0ZTQzMjVmZWQ2YTViYmNiYjAwYmMzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTItMDEtMzEgIFJhcGhhZWwgS3VibyBkYSBDb3N0YSAg
PGt1Ym9AcHJvZnVzaW9uLm1vYmk+CisKKyAgICAgICAgW3NvdXBdIEFkZCBzdXBwb3J0IGZvciBt
dWx0aXBsZSBTb3VwU2Vzc2lvbnMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD03NzM0MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEFkYXB0IHRvIHRoZSBjaGFuZ2VzIHRvIEZyYW1lTmV0d29ya2luZ0NvbnRl
eHQgaW4gV2ViQ29yZS4KKworICAgICAgICAqIEdOVW1ha2VmaWxlLmFtOgorICAgICAgICAqIFdl
YkNvcmVTdXBwb3J0L0ZyYW1lTmV0d29ya2luZ0NvbnRleHRHdGsuY3BwOiBDb3BpZWQgZnJvbSBT
b3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9GcmFtZU5ldHdvcmtpbmdDb250ZXh0R3Rr
LmguCisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoV2ViS2l0OjpGcmFtZU5ldHdvcmtpbmdD
b250ZXh0R3RrOjpzb3VwU2Vzc2lvbik6IEFsd2F5cyByZXR1cm4gUmVzb3VyY2VIYW5kbGU6OmRl
ZmF1bHRTZXNzaW9uKCkuCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVOZXR3b3JraW5n
Q29udGV4dEd0ay5oOgorICAgICAgICAoRnJhbWVOZXR3b3JraW5nQ29udGV4dEd0ayk6CisKIDIw
MTItMDItMTUgIE5vJ2FtIFJvc2VudGhhbCAgPG5vYW0ucm9zZW50aGFsQG5va2lhLmNvbT4KIAog
ICAgICAgICBbVGV4bWFwXSBEaXZpZGUgVGV4dHVyZU1hcHBlck5vZGUuY3BwIHRvIDMgZmlsZXMu
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtpbmdD
b250ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtpbmdDb250
ZXh0LmgKaW5kZXggZjJiMTBjNDQ1YmQwNTdkNjM0NDc2MGY4OTdjMzRjZjViZWJiMjgwMS4uMDQ2
MDg1YzJmNmI0NWZiZGMxMTRiOWE2MGUxYWFjNTliMzVjNjk2MCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3JraW5nQ29udGV4dC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya2luZ0NvbnRleHQuaApAQCAtMzUsNiAr
MzUsMTAgQEAgY2xhc3MgUVVybDsKIFFUX0VORF9OQU1FU1BBQ0UKICNlbmRpZgogCisjaWYgVVNF
KFNPVVApCit0eXBlZGVmIHN0cnVjdCBfU291cFNlc3Npb24gU291cFNlc3Npb247CisjZW5kaWYK
KwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBSZXNvdXJjZUVycm9yOwpAQCAtNjYsNiAr
NzAsMTAgQEAgcHVibGljOgogICAgIHZpcnR1YWwgUmVzb3VyY2VFcnJvciBibG9ja2VkRXJyb3Io
Y29uc3QgUmVzb3VyY2VSZXF1ZXN0JikgY29uc3QgPSAwOwogI2VuZGlmCiAKKyNpZiBVU0UoU09V
UCkKKyAgICB2aXJ0dWFsIFNvdXBTZXNzaW9uKiBzb3VwU2Vzc2lvbigpIGNvbnN0ID0gMDsKKyNl
bmRpZgorCiBwcm90ZWN0ZWQ6CiAgICAgTmV0d29ya2luZ0NvbnRleHQoKSB7IH0KIH07CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlSW50
ZXJuYWwuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGVJ
bnRlcm5hbC5oCmluZGV4IDg3Nzk5Nzk2Mzg4NGJkZGJkN2E3NmMwNmEyOWVmNjgxZGVhZGYxNjYu
LmJjNzllZDEyYjZjYWZhMjYyZWQ0OWJlZWY5OGI5Nzc0YzVmYTZjODAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGVJbnRlcm5hbC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGVJbnRlcm5h
bC5oCkBAIC0xODksNiArMTg5LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB1bnNp
Z25lZCBsb25nIG1fYm9keVNpemU7CiAgICAgICAgIHVuc2lnbmVkIGxvbmcgbV9ib2R5RGF0YVNl
bnQ7CiAgICAgICAgIFJlZlB0cjxOZXR3b3JraW5nQ29udGV4dD4gbV9jb250ZXh0OworICAgICAg
ICBTb3VwU2Vzc2lvbiogc291cFNlc3Npb24oKTsKICNlbmRpZgogI2lmIFBMQVRGT1JNKFFUKQog
ICAgICAgICBRTmV0d29ya1JlcGx5SGFuZGxlciogbV9qb2I7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvQ29va2llSmFyU291cC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvQ29va2llSmFyU291cC5jcHAKaW5kZXggZjE3
MGQyZDU0ZTcxYmY5NjBjNjlmZTIxYzI5NjEyMjQ1YTNmYjhjNy4uMzQ4YTI1MmE2M2E1MmExYzQ2
Nzc1ZmQxODAwY2I0NGFkZjFkNzZkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9zb3VwL0Nvb2tpZUphclNvdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvc291cC9Db29raWVKYXJTb3VwLmNwcApAQCAtMjMsOCArMjMsMTIgQEAK
IAogI2luY2x1ZGUgIkNvb2tpZS5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAi
RnJhbWUuaCIKKyNpbmNsdWRlICJGcmFtZUxvYWRlci5oIgogI2luY2x1ZGUgIkdPd25QdHJTb3Vw
LmgiCiAjaW5jbHVkZSAiS1VSTC5oIgorI2luY2x1ZGUgIk5ldHdvcmtpbmdDb250ZXh0LmgiCisj
aW5jbHVkZSAiUmVzb3VyY2VIYW5kbGUuaCIKICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTMyLDYgKzM2LDI1IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIHN0YXRpYyBib29sIGNvb2tpZXNJbml0aWFsaXplZDsKIHN0YXRpYyBTb3VwQ29va2ll
SmFyKiBjb29raWVKYXI7CiAKK3N0YXRpYyBTb3VwQ29va2llSmFyKiBjb29raWVKYXJGb3JEb2N1
bWVudChjb25zdCBEb2N1bWVudCogZG9jdW1lbnQpCit7CisgICAgaWYgKCFkb2N1bWVudCkKKyAg
ICAgICAgcmV0dXJuIDA7CisgICAgY29uc3QgRnJhbWUqIGZyYW1lID0gZG9jdW1lbnQtPmZyYW1l
KCk7CisgICAgaWYgKCFmcmFtZSkKKyAgICAgICAgcmV0dXJuIDA7CisgICAgY29uc3QgRnJhbWVM
b2FkZXIqIGxvYWRlciA9IGZyYW1lLT5sb2FkZXIoKTsKKyAgICBpZiAoIWxvYWRlcikKKyAgICAg
ICAgcmV0dXJuIDA7CisgICAgY29uc3QgTmV0d29ya2luZ0NvbnRleHQqIGNvbnRleHQgPSBsb2Fk
ZXItPm5ldHdvcmtpbmdDb250ZXh0KCk7CisgICAgaWYgKCFjb250ZXh0KQorICAgICAgICByZXR1
cm4gMDsKKyAgICBTb3VwU2Vzc2lvbkZlYXR1cmUqIGNvb2tpZUphckZlYXR1cmUgPSBzb3VwX3Nl
c3Npb25fZ2V0X2ZlYXR1cmUoY29udGV4dC0+c291cFNlc3Npb24oKSwgU09VUF9UWVBFX0NPT0tJ
RV9KQVIpOworICAgIGlmICghY29va2llSmFyRmVhdHVyZSkKKyAgICAgICAgcmV0dXJuIDA7Cisg
ICAgcmV0dXJuIFNPVVBfQ09PS0lFX0pBUihjb29raWVKYXJGZWF0dXJlKTsKK30KKwogU291cENv
b2tpZUphciogZGVmYXVsdENvb2tpZUphcigpCiB7CiAgICAgaWYgKCFjb29raWVzSW5pdGlhbGl6
ZWQpIHsKQEAgLTU5LDcgKzgyLDcgQEAgdm9pZCBzZXREZWZhdWx0Q29va2llSmFyKFNvdXBDb29r
aWVKYXIqIGphcikKIAogdm9pZCBzZXRDb29raWVzKERvY3VtZW50KiBkb2N1bWVudCwgY29uc3Qg
S1VSTCYgdXJsLCBjb25zdCBTdHJpbmcmIHZhbHVlKQogewotICAgIFNvdXBDb29raWVKYXIqIGph
ciA9IGRlZmF1bHRDb29raWVKYXIoKTsKKyAgICBTb3VwQ29va2llSmFyKiBqYXIgPSBjb29raWVK
YXJGb3JEb2N1bWVudChkb2N1bWVudCk7CiAgICAgaWYgKCFqYXIpCiAgICAgICAgIHJldHVybjsK
IApAQCAtNzMsOSArOTYsOSBAQCB2b2lkIHNldENvb2tpZXMoRG9jdW1lbnQqIGRvY3VtZW50LCBj
b25zdCBLVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgdmFsdWUpCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZS51dGY4KCkuZGF0YSgpKTsKIH0KIAot
U3RyaW5nIGNvb2tpZXMoY29uc3QgRG9jdW1lbnQqIC8qZG9jdW1lbnQqLywgY29uc3QgS1VSTCYg
dXJsKQorU3RyaW5nIGNvb2tpZXMoY29uc3QgRG9jdW1lbnQqIGRvY3VtZW50LCBjb25zdCBLVVJM
JiB1cmwpCiB7Ci0gICAgU291cENvb2tpZUphciogamFyID0gZGVmYXVsdENvb2tpZUphcigpOwor
ICAgIFNvdXBDb29raWVKYXIqIGphciA9IGNvb2tpZUphckZvckRvY3VtZW50KGRvY3VtZW50KTsK
ICAgICBpZiAoIWphcikKICAgICAgICAgcmV0dXJuIFN0cmluZygpOwogCkBAIC04OSw5ICsxMTIs
OSBAQCBTdHJpbmcgY29va2llcyhjb25zdCBEb2N1bWVudCogLypkb2N1bWVudCovLCBjb25zdCBL
VVJMJiB1cmwpCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAotU3RyaW5nIGNvb2tpZVJlcXVlc3RI
ZWFkZXJGaWVsZFZhbHVlKGNvbnN0IERvY3VtZW50KiAvKmRvY3VtZW50Ki8sIGNvbnN0IEtVUkwm
IHVybCkKK1N0cmluZyBjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShjb25zdCBEb2N1bWVu
dCogZG9jdW1lbnQsIGNvbnN0IEtVUkwmIHVybCkKIHsKLSAgICBTb3VwQ29va2llSmFyKiBqYXIg
PSBkZWZhdWx0Q29va2llSmFyKCk7CisgICAgU291cENvb2tpZUphciogamFyID0gY29va2llSmFy
Rm9yRG9jdW1lbnQoZG9jdW1lbnQpOwogICAgIGlmICghamFyKQogICAgICAgICByZXR1cm4gU3Ry
aW5nKCk7CiAKQEAgLTEwNSw5ICsxMjgsOSBAQCBTdHJpbmcgY29va2llUmVxdWVzdEhlYWRlckZp
ZWxkVmFsdWUoY29uc3QgRG9jdW1lbnQqIC8qZG9jdW1lbnQqLywgY29uc3QgS1VSTCYgdQogICAg
IHJldHVybiByZXN1bHQ7CiB9CiAKLWJvb2wgY29va2llc0VuYWJsZWQoY29uc3QgRG9jdW1lbnQq
IC8qZG9jdW1lbnQqLykKK2Jvb2wgY29va2llc0VuYWJsZWQoY29uc3QgRG9jdW1lbnQqIGRvY3Vt
ZW50KQogewotICAgIHJldHVybiBkZWZhdWx0Q29va2llSmFyKCk7CisgICAgcmV0dXJuICEhY29v
a2llSmFyRm9yRG9jdW1lbnQoZG9jdW1lbnQpOwogfQogCiBib29sIGdldFJhd0Nvb2tpZXMoY29u
c3QgRG9jdW1lbnQqLCBjb25zdCBLVVJMJiwgVmVjdG9yPENvb2tpZT4mIHJhd0Nvb2tpZXMpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VI
YW5kbGVTb3VwLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNv
dXJjZUhhbmRsZVNvdXAuY3BwCmluZGV4IDVjYjUzYmRmZjRmYWI1NjkzM2ExMzE5YWM2YmFjN2E2
MGZiMDlmZWIuLmIzODZmZTY1NDRhY2Y5YzkyNDVkNzY3NjU5OTIyYjQ4ZWQyMzEyNzAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUhhbmRs
ZVNvdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNv
dXJjZUhhbmRsZVNvdXAuY3BwCkBAIC0xNDEsNiArMTQxLDExIEBAIFJlc291cmNlSGFuZGxlSW50
ZXJuYWw6On5SZXNvdXJjZUhhbmRsZUludGVybmFsKCkKIHsKIH0KIAorU291cFNlc3Npb24qIFJl
c291cmNlSGFuZGxlSW50ZXJuYWw6OnNvdXBTZXNzaW9uKCkKK3sKKyAgICByZXR1cm4gKG1fY29u
dGV4dCAmJiBtX2NvbnRleHQtPmlzVmFsaWQoKSkgPyBtX2NvbnRleHQtPnNvdXBTZXNzaW9uKCkg
OiBSZXNvdXJjZUhhbmRsZTo6ZGVmYXVsdFNlc3Npb24oKTsKK30KKwogUmVzb3VyY2VIYW5kbGU6
On5SZXNvdXJjZUhhbmRsZSgpCiB7CiAgICAgY2xlYW51cFNvdXBSZXF1ZXN0T3BlcmF0aW9uKHRo
aXMsIHRydWUpOwpAQCAtMTUxLDExICsxNTYsMTMgQEAgc3RhdGljIHZvaWQgZW5zdXJlU2Vzc2lv
bklzSW5pdGlhbGl6ZWQoU291cFNlc3Npb24qIHNlc3Npb24pCiAgICAgaWYgKGdfb2JqZWN0X2dl
dF9kYXRhKEdfT0JKRUNUKHNlc3Npb24pLCAid2Via2l0LWluaXQiKSkKICAgICAgICAgcmV0dXJu
OwogCi0gICAgU291cENvb2tpZUphciogamFyID0gU09VUF9DT09LSUVfSkFSKHNvdXBfc2Vzc2lv
bl9nZXRfZmVhdHVyZShzZXNzaW9uLCBTT1VQX1RZUEVfQ09PS0lFX0pBUikpOwotICAgIGlmICgh
amFyKQotICAgICAgICBzb3VwX3Nlc3Npb25fYWRkX2ZlYXR1cmUoc2Vzc2lvbiwgU09VUF9TRVNT
SU9OX0ZFQVRVUkUoZGVmYXVsdENvb2tpZUphcigpKSk7Ci0gICAgZWxzZQotICAgICAgICBzZXRE
ZWZhdWx0Q29va2llSmFyKGphcik7CisgICAgaWYgKHNlc3Npb24gPT0gUmVzb3VyY2VIYW5kbGU6
OmRlZmF1bHRTZXNzaW9uKCkpIHsKKyAgICAgICAgU291cFNlc3Npb25GZWF0dXJlKiBjb29raWVK
YXJGZWF0dXJlID0gc291cF9zZXNzaW9uX2dldF9mZWF0dXJlKHNlc3Npb24sIFNPVVBfVFlQRV9D
T09LSUVfSkFSKTsKKyAgICAgICAgaWYgKCFjb29raWVKYXJGZWF0dXJlKQorICAgICAgICAgICAg
c291cF9zZXNzaW9uX2FkZF9mZWF0dXJlKHNlc3Npb24sIFNPVVBfU0VTU0lPTl9GRUFUVVJFKGRl
ZmF1bHRDb29raWVKYXIoKSkpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBzZXREZWZhdWx0
Q29va2llSmFyKFNPVVBfQ09PS0lFX0pBUihjb29raWVKYXJGZWF0dXJlKSk7CisgICAgfQogCiAg
ICAgaWYgKCFzb3VwX3Nlc3Npb25fZ2V0X2ZlYXR1cmUoc2Vzc2lvbiwgU09VUF9UWVBFX0xPR0dF
UikgJiYgTG9nTmV0d29yay5zdGF0ZSA9PSBXVEZMb2dDaGFubmVsT24pIHsKICAgICAgICAgU291
cExvZ2dlciogbG9nZ2VyID0gc291cF9sb2dnZXJfbmV3KHN0YXRpY19jYXN0PFNvdXBMb2dnZXJM
b2dMZXZlbD4oU09VUF9MT0dHRVJfTE9HX0JPRFkpLCAtMSk7CkBAIC0zMTksNyArMzI2LDcgQEAg
c3RhdGljIHZvaWQgc2VuZFJlcXVlc3RDYWxsYmFjayhHT2JqZWN0KiBzb3VyY2UsIEdBc3luY1Jl
c3VsdCogcmVzLCBncG9pbnRlciBkYXQKICAgICAgICAgZC0+bV9yZXNwb25zZS51cGRhdGVGcm9t
U291cE1lc3NhZ2Uoc291cE1lc3NhZ2UpOwogCiAgICAgICAgIGlmIChkLT5tX2RlZmVyc0xvYWRp
bmcpCi0gICAgICAgICAgICBzb3VwX3Nlc3Npb25fcGF1c2VfbWVzc2FnZShoYW5kbGUtPmRlZmF1
bHRTZXNzaW9uKCksIHNvdXBNZXNzYWdlKTsKKyAgICAgICAgICAgIHNvdXBfc2Vzc2lvbl9wYXVz
ZV9tZXNzYWdlKGQtPnNvdXBTZXNzaW9uKCksIHNvdXBNZXNzYWdlKTsKICAgICB9IGVsc2Ugewog
ICAgICAgICBkLT5tX3Jlc3BvbnNlLnNldFVSTChoYW5kbGUtPmZpcnN0UmVxdWVzdCgpLnVybCgp
KTsKICAgICAgICAgY29uc3QgZ2NoYXIqIGNvbnRlbnRUeXBlID0gc291cF9yZXF1ZXN0X2dldF9j
b250ZW50X3R5cGUoZC0+bV9zb3VwUmVxdWVzdC5nZXQoKSk7CkBAIC00NDIsMTIgKzQ0OSwxMiBA
QCBzdGF0aWMgYm9vbCBzdGFydEhUVFBSZXF1ZXN0KFJlc291cmNlSGFuZGxlKiBoYW5kbGUpCiB7
CiAgICAgQVNTRVJUKGhhbmRsZSk7CiAKLSAgICBTb3VwU2Vzc2lvbiogc2Vzc2lvbiA9IGhhbmRs
ZS0+ZGVmYXVsdFNlc3Npb24oKTsKKyAgICBSZXNvdXJjZUhhbmRsZUludGVybmFsKiBkID0gaGFu
ZGxlLT5nZXRJbnRlcm5hbCgpOworCisgICAgU291cFNlc3Npb24qIHNlc3Npb24gPSBkLT5zb3Vw
U2Vzc2lvbigpOwogICAgIGVuc3VyZVNlc3Npb25Jc0luaXRpYWxpemVkKHNlc3Npb24pOwogICAg
IFNvdXBSZXF1ZXN0ZXIqIHJlcXVlc3RlciA9IFNPVVBfUkVRVUVTVEVSKHNvdXBfc2Vzc2lvbl9n
ZXRfZmVhdHVyZShzZXNzaW9uLCBTT1VQX1RZUEVfUkVRVUVTVEVSKSk7CiAKLSAgICBSZXNvdXJj
ZUhhbmRsZUludGVybmFsKiBkID0gaGFuZGxlLT5nZXRJbnRlcm5hbCgpOwotCiAgICAgUmVzb3Vy
Y2VSZXF1ZXN0IHJlcXVlc3QoaGFuZGxlLT5maXJzdFJlcXVlc3QoKSk7CiAgICAgS1VSTCB1cmwo
cmVxdWVzdC51cmwoKSk7CiAgICAgdXJsLnJlbW92ZUZyYWdtZW50SWRlbnRpZmllcigpOwpAQCAt
NTUyLDcgKzU1OSw3IEBAIHZvaWQgUmVzb3VyY2VIYW5kbGU6OmNhbmNlbCgpCiB7CiAgICAgZC0+
bV9jYW5jZWxsZWQgPSB0cnVlOwogICAgIGlmIChkLT5tX3NvdXBNZXNzYWdlKQotICAgICAgICBz
b3VwX3Nlc3Npb25fY2FuY2VsX21lc3NhZ2UoZGVmYXVsdFNlc3Npb24oKSwgZC0+bV9zb3VwTWVz
c2FnZS5nZXQoKSwgU09VUF9TVEFUVVNfQ0FOQ0VMTEVEKTsKKyAgICAgICAgc291cF9zZXNzaW9u
X2NhbmNlbF9tZXNzYWdlKGQtPnNvdXBTZXNzaW9uKCksIGQtPm1fc291cE1lc3NhZ2UuZ2V0KCks
IFNPVVBfU1RBVFVTX0NBTkNFTExFRCk7CiAgICAgZWxzZSBpZiAoZC0+bV9jYW5jZWxsYWJsZSkK
ICAgICAgICAgZ19jYW5jZWxsYWJsZV9jYW5jZWwoZC0+bV9jYW5jZWxsYWJsZS5nZXQoKSk7CiB9
CkBAIC02ODcsMTAgKzY5NCwxMSBAQCBzdGF0aWMgYm9vbCBzdGFydE5vbkhUVFBSZXF1ZXN0KFJl
c291cmNlSGFuZGxlKiBoYW5kbGUsIEtVUkwgdXJsKQogICAgIGlmIChoYW5kbGUtPmZpcnN0UmVx
dWVzdCgpLmh0dHBNZXRob2QoKSAhPSAiR0VUIiAmJiBoYW5kbGUtPmZpcnN0UmVxdWVzdCgpLmh0
dHBNZXRob2QoKSAhPSAiUE9TVCIpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIFNvdXBT
ZXNzaW9uKiBzZXNzaW9uID0gaGFuZGxlLT5kZWZhdWx0U2Vzc2lvbigpOworICAgIFJlc291cmNl
SGFuZGxlSW50ZXJuYWwqIGQgPSBoYW5kbGUtPmdldEludGVybmFsKCk7CisKKyAgICBTb3VwU2Vz
c2lvbiogc2Vzc2lvbiA9IGQtPnNvdXBTZXNzaW9uKCk7CiAgICAgZW5zdXJlU2Vzc2lvbklzSW5p
dGlhbGl6ZWQoc2Vzc2lvbik7CiAgICAgU291cFJlcXVlc3RlciogcmVxdWVzdGVyID0gU09VUF9S
RVFVRVNURVIoc291cF9zZXNzaW9uX2dldF9mZWF0dXJlKHNlc3Npb24sIFNPVVBfVFlQRV9SRVFV
RVNURVIpKTsKLSAgICBSZXNvdXJjZUhhbmRsZUludGVybmFsKiBkID0gaGFuZGxlLT5nZXRJbnRl
cm5hbCgpOwogCiAgICAgQ1N0cmluZyB1cmxTdHIgPSB1cmwuc3RyaW5nKCkudXRmOCgpOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9DTWFrZUxpc3RzRWZsLnR4dCBiL1NvdXJjZS9X
ZWJLaXQvZWZsL0NNYWtlTGlzdHNFZmwudHh0CmluZGV4IDIwZGNjMzU4NzYxYzQyMzQ5MjE3YmNl
MmVhZjliYmNmODQ2OWQ2MWQuLmFlZmRiOTgwNGE3MTVjMDExZDk3ZDFkMDcyMzNkMTU5ZTYzODJm
NjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL0NNYWtlTGlzdHNFZmwudHh0CisrKyBi
L1NvdXJjZS9XZWJLaXQvZWZsL0NNYWtlTGlzdHNFZmwudHh0CkBAIC03Miw2ICs3Miw3IEBAIExJ
U1QoQVBQRU5EIFdlYktpdF9TT1VSQ0VTCiAgICAgZWZsL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5k
ZXJUcmVlU3VwcG9ydEVmbC5jcHAKICAgICBlZmwvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50
RWZsLmNwcAogICAgIGVmbC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEVmbC5jcHAK
KyAgICBlZmwvV2ViQ29yZVN1cHBvcnQvRnJhbWVOZXR3b3JraW5nQ29udGV4dEVmbC5jcHAKICAg
ICBlZmwvV2ViQ29yZVN1cHBvcnQvRnVsbHNjcmVlblZpZGVvQ29udHJvbGxlckVmbC5jcHAKICAg
ICBlZmwvV2ViQ29yZVN1cHBvcnQvSWNvbkRhdGFiYXNlQ2xpZW50RWZsLmNwcAogICAgIGVmbC9X
ZWJDb3JlU3VwcG9ydC9TdG9yYWdlVHJhY2tlckNsaWVudEVmbC5jcHAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50RWZsLmNwcCBi
L1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50RWZsLmNw
cAppbmRleCA3MDlkNGVhYzk2ZjY0MDRiZWZmYmQzYzFjZmMxZDM3YzQ3MjFhOTBkLi4wMDk2Yjg4
NzQyN2UxZWQ2NmZhOGMyY2Q0MzI2ZmYzOTk4NWE4ZjM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEVmbC5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRFZmwuY3BwCkBA
IC05NDcsNyArOTQ3LDcgQEAgdm9pZCBGcmFtZUxvYWRlckNsaWVudEVmbDo6ZGlzcGF0Y2hEaWRC
ZWNvbWVGcmFtZXNldChib29sKQogCiBQYXNzUmVmUHRyPEZyYW1lTmV0d29ya2luZ0NvbnRleHQ+
IEZyYW1lTG9hZGVyQ2xpZW50RWZsOjpjcmVhdGVOZXR3b3JraW5nQ29udGV4dCgpCiB7Ci0gICAg
cmV0dXJuIEZyYW1lTmV0d29ya2luZ0NvbnRleHRFZmw6OmNyZWF0ZShFV0tQcml2YXRlOjpjb3Jl
RnJhbWUobV9mcmFtZSkpOworICAgIHJldHVybiBGcmFtZU5ldHdvcmtpbmdDb250ZXh0RWZsOjpj
cmVhdGUoRVdLUHJpdmF0ZTo6Y29yZUZyYW1lKG1fZnJhbWUpLCBtX2ZyYW1lKTsKIH0KIAogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRnJhbWVOZXR3b3Jr
aW5nQ29udGV4dEVmbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9GcmFt
ZU5ldHdvcmtpbmdDb250ZXh0RWZsLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44YzIwYjIxM2FhZDIwODdkNzU4
ODYwMmU0MjU0OTAwNWYwOTVjOTQ2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9l
ZmwvV2ViQ29yZVN1cHBvcnQvRnJhbWVOZXR3b3JraW5nQ29udGV4dEVmbC5jcHAKQEAgLTAsMCAr
MSw1NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQv
b3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKyAqIENvcHlyaWdodCAoQykgMjAxMCBTYW1zdW5nIEVs
ZWN0cm9uaWNzCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgUHJvRlVTSU9OIGVtYmVkZGVkIHN5c3Rl
bXMKKyAqCisgKiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBB
TlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
ICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcu
aCIKKyNpbmNsdWRlICJGcmFtZU5ldHdvcmtpbmdDb250ZXh0RWZsLmgiCisKKyNpbmNsdWRlICJS
ZXNvdXJjZUhhbmRsZS5oIgorI2luY2x1ZGUgImV3a19mcmFtZS5oIgorI2luY2x1ZGUgImV3a192
aWV3LmgiCisKKyNpbmNsdWRlIDxFdmFzLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworUGFz
c1JlZlB0cjxGcmFtZU5ldHdvcmtpbmdDb250ZXh0RWZsPiBGcmFtZU5ldHdvcmtpbmdDb250ZXh0
RWZsOjpjcmVhdGUoRnJhbWUqIGZyYW1lLCBFdmFzX09iamVjdCogZXdrRnJhbWUpCit7CisgICAg
cmV0dXJuIGFkb3B0UmVmKG5ldyBGcmFtZU5ldHdvcmtpbmdDb250ZXh0RWZsKGZyYW1lLCBld2tG
cmFtZSkpOworfQorCitGcmFtZU5ldHdvcmtpbmdDb250ZXh0RWZsOjpGcmFtZU5ldHdvcmtpbmdD
b250ZXh0RWZsKEZyYW1lKiBmcmFtZSwgRXZhc19PYmplY3QqIGV3a0ZyYW1lKQorICAgIDogRnJh
bWVOZXR3b3JraW5nQ29udGV4dChmcmFtZSkKKyAgICAsIG1fZXdrRnJhbWUoZXdrRnJhbWUpCit7
Cit9CisKK1NvdXBTZXNzaW9uKiBGcmFtZU5ldHdvcmtpbmdDb250ZXh0RWZsOjpzb3VwU2Vzc2lv
bigpIGNvbnN0Cit7CisgICAgcmV0dXJuIGV3a192aWV3X3NvdXBfc2Vzc2lvbl9nZXQoZXdrX2Zy
YW1lX3ZpZXdfZ2V0KG1fZXdrRnJhbWUpKTsKK30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRnJhbWVOZXR3b3JraW5nQ29udGV4dEVmbC5oIGIvU291
cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRnJhbWVOZXR3b3JraW5nQ29udGV4dEVmbC5o
CmluZGV4IDRlNjc1MTJkMDk0YzI4ZGZkNTE1YmVlOTk3MzYxNzdmZDk1YzZjYWYuLjkzZmZkNDhi
YmI3OGRkMzYwZTcxZjJhZDI4NGEzNzViZjA4MmNlZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvZWZsL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTmV0d29ya2luZ0NvbnRleHRFZmwuaAorKysgYi9T
b3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9GcmFtZU5ldHdvcmtpbmdDb250ZXh0RWZs
LmgKQEAgLTMxLDIyICszMSwyMSBAQAogCiAjaW5jbHVkZSAiRnJhbWVOZXR3b3JraW5nQ29udGV4
dC5oIgogCit0eXBlZGVmIHN0cnVjdCBfRXZhc19PYmplY3QgRXZhc19PYmplY3Q7CisKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgRnJhbWVOZXR3b3JraW5nQ29udGV4dEVmbCA6IHB1Ymxp
YyBXZWJDb3JlOjpGcmFtZU5ldHdvcmtpbmdDb250ZXh0IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMg
UGFzc1JlZlB0cjxGcmFtZU5ldHdvcmtpbmdDb250ZXh0RWZsPiBjcmVhdGUoV2ViQ29yZTo6RnJh
bWUqIGZyYW1lKQotICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBGcmFtZU5ldHdv
cmtpbmdDb250ZXh0RWZsKGZyYW1lKSk7Ci0gICAgfQorICAgIHN0YXRpYyBQYXNzUmVmUHRyPEZy
YW1lTmV0d29ya2luZ0NvbnRleHRFZmw+IGNyZWF0ZShGcmFtZSosIEV2YXNfT2JqZWN0Kik7CiAK
ICAgICBXZWJDb3JlOjpGcmFtZSogY29yZUZyYW1lKCkgY29uc3QgeyByZXR1cm4gZnJhbWUoKTsg
fQorICAgIHZpcnR1YWwgU291cFNlc3Npb24qIHNvdXBTZXNzaW9uKCkgY29uc3Q7CiAKIHByaXZh
dGU6Ci0gICAgRnJhbWVOZXR3b3JraW5nQ29udGV4dEVmbChXZWJDb3JlOjpGcmFtZSogZnJhbWUp
Ci0gICAgICAgIDogV2ViQ29yZTo6RnJhbWVOZXR3b3JraW5nQ29udGV4dChmcmFtZSkKLSAgICB7
Ci0gICAgfQorICAgIEZyYW1lTmV0d29ya2luZ0NvbnRleHRFZmwoRnJhbWUqLCBFdmFzX09iamVj
dCopOworCisgICAgRXZhc19PYmplY3QqIG1fZXdrRnJhbWU7CiB9OwogCiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2Nvb2tpZXMuaCBiL1NvdXJjZS9XZWJLaXQvZWZs
L2V3ay9ld2tfY29va2llcy5oCmluZGV4IDQwZTY5ZDU2YzRlNWY1YjExMzA3OGUyMDU1NDBkYTI0
YWMxZmVlYzAuLjI5YWMxMjE4MmMwZjgzZjRhOWE1OTc5OWQzODNiZGJlOGQ2MTY5ZDMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfY29va2llcy5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvZWZsL2V3ay9ld2tfY29va2llcy5oCkBAIC0yMSw2ICsyMSwxMiBAQAogLyoqCiAgKiBA
ZmlsZSAgICBld2tfY29va2llcy5oCiAgKiBAYnJpZWYgICBUaGUgRXdrIGNvb2tpZXMgQVBJLgor
ICoKKyAqIEBub3RlIElmIHRoZSBsaWJzb3VwIG5ldHdvcmsgYmFja2VuZCBpcyBiZWluZyB1c2Vk
IHRoZSBmdW5jdGlvbnMgaGVyZSB3aWxsCisgKiBvbmx5IHdvcmsgd2l0aCB0aGUgQGIgZGVmYXVs
dCBTb3VwU2Vzc2lvbiwgd2hpY2ggY2FuIGJlIHJldHJpZXZlZCB3aXRoCisgKiBld2tfbmV0d29y
a19kZWZhdWxfc291cF9zZXNzaW9uX2dldCgpLiBJZiBhIGRpZmZlcmVudCBTb3VwU2Vzc2lvbiBp
cyB1c2VkCisgKiBhbmQgYXNzb2NpYXRlZCB3aXRoIGEgdmlldyB3aXRoIGV3a192aWV3X3NvdXBf
c2Vzc2lvbl9zZXQoKSwgYWxsIGNvb2tpZQorICogbWFuYWdlbWVudCB3aWxsIGhhdmUgdG8gYmUg
ZG9uZSBtYW51YWxseS4KICAqLwogCiAjaWZuZGVmIGV3a19jb29raWVzX2gKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfbmV0d29yay5oIGIvU291cmNlL1dlYktpdC9lZmwv
ZXdrL2V3a19uZXR3b3JrLmgKaW5kZXggNjRmZDE1MDgzZmNlYzc4ODRlODZlZmQwMjNhZjhkMmU2
YTYwMWFjZC4uZGJlYzgxNTg0NjZhZjJmYjUyNmMzYWRlNWFlN2ZmYzlkMjIxMDJjMSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19uZXR3b3JrLmgKKysrIGIvU291cmNlL1dl
YktpdC9lZmwvZXdrL2V3a19uZXR3b3JrLmgKQEAgLTM2LDYgKzM2LDExIEBAIGV4dGVybiAiQyIg
ewogICogU2V0cyB0aGUgZ2l2ZW4gcHJveHkgVVJJIHRvIG5ldHdvcmsgYmFja2VuZC4KICAqCiAg
KiBAcGFyYW0gcHJveHkgVVJJIHRvIHNldAorICoKKyAqIEBub3RlIElmIHRoZSBsaWJzb3VwIGJh
Y2tlbmQgaXMgYmVpbmcgdXNlZCwgdGhpcyBmdW5jdGlvbiBoYXMgZWZmZWN0IG9uCisgKiB0aGUg
QGIgZGVmYXVsdCBTb3VwU2Vzc2lvbiwgcmV0dXJuZWQgYnkgZXdrX25ldHdvcmtfZGVmYXVsdF9z
b3VwX3Nlc3Npb25fZ2V0KCkuCisgKiBJZiBhIGRpZmZlcmVudCBTb3VwU2Vzc2lvbiBpcyB1c2Vk
IGFuZCBwYXNzZWQgdG8gZXdrX3ZpZXdfc291cF9zZXNzaW9uX3NldCgpLAorICogdGhpcyBmdW5j
dGlvbiB3aWxsIG5vdCBoYXZlIGFueSBlZmZlY3Qgb24gaXQuCiAgKi8KIEVBUEkgdm9pZCAgICAg
ICAgICAgICBld2tfbmV0d29ya19wcm94eV91cmlfc2V0KGNvbnN0IGNoYXIgKnByb3h5KTsKIApA
QCAtNDUsNiArNTAsMTEgQEAgRUFQSSB2b2lkICAgICAgICAgICAgIGV3a19uZXR3b3JrX3Byb3h5
X3VyaV9zZXQoY29uc3QgY2hhciAqcHJveHkpOwogICogVGhlIHJldHVybmVkIHN0cmluZyBzaG91
bGQgYmUgZnJlZWQgYnkgZWluYV9zdHJpbmdzaGFyZV9kZWwoKSBhZnRlciB1c2UuCiAgKgogICog
QHJldHVybiBjdXJyZW50IHByb3h5IFVSSSBvciBAYyAwIGlmIGl0J3Mgbm90IHNldAorICoKKyAq
IEBub3RlIElmIHRoZSBsaWJzb3VwIGJhY2tlbmQgaXMgYmVpbmcgdXNlZCwgdGhpcyBmdW5jdGlv
biBoYXMgZWZmZWN0IG9uCisgKiB0aGUgQGIgZGVmYXVsdCBTb3VwU2Vzc2lvbiwgcmV0dXJuZWQg
YnkgZXdrX25ldHdvcmtfZGVmYXVsdF9zb3VwX3Nlc3Npb25fZ2V0KCkuCisgKiBJZiBhIGRpZmZl
cmVudCBTb3VwU2Vzc2lvbiBpcyB1c2VkIGFuZCBwYXNzZWQgdG8gZXdrX3ZpZXdfc291cF9zZXNz
aW9uX3NldCgpLAorICogdGhpcyBmdW5jdGlvbiB3aWxsIG5vdCBoYXZlIGFueSBlZmZlY3Qgb24g
aXQuCiAgKi8KIEVBUEkgY29uc3QgY2hhciAgICAgICpld2tfbmV0d29ya19wcm94eV91cmlfZ2V0
KHZvaWQpOwogCkBAIC02MSw2ICs3MSwxMSBAQCBFQVBJIHZvaWQgICAgICAgICAgICAgZXdrX25l
dHdvcmtfc3RhdGVfbm90aWZpZXJfb25saW5lX3NldChFaW5hX0Jvb2wgb25saW5lKTsKICAqIEJ5
IGRlZmF1bHQsIEhUVFBTIGNvbm5lY3Rpb25zIGFyZSBwZXJmb3JtZWQgcmVnYXJkbGVzcyBvZiB0
aGUgdmFsaWRpdHkgb2YgdGhlIGNlcnRpZmljYXRlIHByb3ZpZGVkLgogICoKICAqIEBzYSBld2tf
bmV0d29ya190bHNfY2FfY2VydGlmaWNhdGVzX3BhdGhfc2V0CisgKgorICogQG5vdGUgSWYgdGhl
IGxpYnNvdXAgYmFja2VuZCBpcyBiZWluZyB1c2VkLCB0aGlzIGZ1bmN0aW9uIGhhcyBlZmZlY3Qg
b24KKyAqIHRoZSBAYiBkZWZhdWx0IFNvdXBTZXNzaW9uLCByZXR1cm5lZCBieSBld2tfbmV0d29y
a19kZWZhdWx0X3NvdXBfc2Vzc2lvbl9nZXQoKS4KKyAqIElmIGEgZGlmZmVyZW50IFNvdXBTZXNz
aW9uIGlzIHVzZWQgYW5kIHBhc3NlZCB0byBld2tfdmlld19zb3VwX3Nlc3Npb25fc2V0KCksCisg
KiB0aGlzIGZ1bmN0aW9uIHdpbGwgbm90IGhhdmUgYW55IGVmZmVjdCBvbiBpdC4KICAqLwogRUFQ
SSBFaW5hX0Jvb2wgICAgICAgIGV3a19uZXR3b3JrX3Rsc19jZXJ0aWZpY2F0ZV9jaGVja19nZXQo
dm9pZCk7CiAKQEAgLTcyLDYgKzg3LDExIEBAIEVBUEkgRWluYV9Cb29sICAgICAgICBld2tfbmV0
d29ya190bHNfY2VydGlmaWNhdGVfY2hlY2tfZ2V0KHZvaWQpOwogICogQHBhcmFtIGVuYWJsZSBX
aGV0aGVyIHRvIGNoZWNrIHRoZSBwcm92aWRlZCBjZXJ0aWZpY2F0ZXMgb3Igbm90LgogICoKICAq
IEBzYSBld2tfbmV0d29ya190bHNfY2FfY2VydGlmaWNhdGVzX3BhdGhfc2V0CisgKgorICogQG5v
dGUgSWYgdGhlIGxpYnNvdXAgYmFja2VuZCBpcyBiZWluZyB1c2VkLCB0aGlzIGZ1bmN0aW9uIGhh
cyBlZmZlY3Qgb24KKyAqIHRoZSBAYiBkZWZhdWx0IFNvdXBTZXNzaW9uLCByZXR1cm5lZCBieSBl
d2tfbmV0d29ya19kZWZhdWx0X3NvdXBfc2Vzc2lvbl9nZXQoKS4KKyAqIElmIGEgZGlmZmVyZW50
IFNvdXBTZXNzaW9uIGlzIHVzZWQgYW5kIHBhc3NlZCB0byBld2tfdmlld19zb3VwX3Nlc3Npb25f
c2V0KCksCisgKiB0aGlzIGZ1bmN0aW9uIHdpbGwgbm90IGhhdmUgYW55IGVmZmVjdCBvbiBpdC4K
ICAqLwogRUFQSSB2b2lkICAgICAgICAgICAgIGV3a19uZXR3b3JrX3Rsc19jZXJ0aWZpY2F0ZV9j
aGVja19zZXQoRWluYV9Cb29sIGVuYWJsZSk7CiAKQEAgLTg4LDYgKzEwOCwxMSBAQCBFQVBJIHZv
aWQgICAgICAgICAgICAgZXdrX25ldHdvcmtfdGxzX2NlcnRpZmljYXRlX2NoZWNrX3NldChFaW5h
X0Jvb2wgZW5hYmxlKTsKICAqIEJ5IGRlZmF1bHQsIHRoZSBwYXRoIGlzIG5vdCBzZXQsIHNvIGFs
bCBjZXJ0aWZpY2F0ZXMgYXJlIGNvbnNpZGVyZWQgYXMgbm90IHNpZ25lZCBieSBhIHRydXN0ZWQg
cm9vdCBDQS4KICAqCiAgKiBAc2EgZXdrX25ldHdvcmtfdGxzX2NlcnRpZmljYXRlX2NoZWNrX3Nl
dAorICoKKyAqIEBub3RlIElmIHRoZSBsaWJzb3VwIGJhY2tlbmQgaXMgYmVpbmcgdXNlZCwgdGhp
cyBmdW5jdGlvbiBoYXMgZWZmZWN0IG9uCisgKiB0aGUgQGIgZGVmYXVsdCBTb3VwU2Vzc2lvbiwg
cmV0dXJuZWQgYnkgZXdrX25ldHdvcmtfZGVmYXVsdF9zb3VwX3Nlc3Npb25fZ2V0KCkuCisgKiBJ
ZiBhIGRpZmZlcmVudCBTb3VwU2Vzc2lvbiBpcyB1c2VkIGFuZCBwYXNzZWQgdG8gZXdrX3ZpZXdf
c291cF9zZXNzaW9uX3NldCgpLAorICogdGhpcyBmdW5jdGlvbiB3aWxsIG5vdCBoYXZlIGFueSBl
ZmZlY3Qgb24gaXQuCiAgKi8KIEVBUEkgY29uc3QgY2hhciAgICAgICpld2tfbmV0d29ya190bHNf
Y2FfY2VydGlmaWNhdGVzX3BhdGhfZ2V0KHZvaWQpOwogCkBAIC0xMDYsNiArMTMxLDExIEBAIEVB
UEkgY29uc3QgY2hhciAgICAgICpld2tfbmV0d29ya190bHNfY2FfY2VydGlmaWNhdGVzX3BhdGhf
Z2V0KHZvaWQpOwogICogQHBhcmFtIHBhdGggVGhlIHBhdGggdG8gdGhlIGNlcnRpZmljYXRlIGJ1
bmRsZS4KICAqCiAgKiBAc2EgZXdrX25ldHdvcmtfdGxzX2NlcnRpZmljYXRlX2NoZWNrX3NldAor
ICoKKyAqIEBub3RlIElmIHRoZSBsaWJzb3VwIGJhY2tlbmQgaXMgYmVpbmcgdXNlZCwgdGhpcyBm
dW5jdGlvbiBoYXMgZWZmZWN0IG9uCisgKiB0aGUgQGIgZGVmYXVsdCBTb3VwU2Vzc2lvbiwgcmV0
dXJuZWQgYnkgZXdrX25ldHdvcmtfZGVmYXVsdF9zb3VwX3Nlc3Npb25fZ2V0KCkuCisgKiBJZiBh
IGRpZmZlcmVudCBTb3VwU2Vzc2lvbiBpcyB1c2VkIGFuZCBwYXNzZWQgdG8gZXdrX3ZpZXdfc291
cF9zZXNzaW9uX3NldCgpLAorICogdGhpcyBmdW5jdGlvbiB3aWxsIG5vdCBoYXZlIGFueSBlZmZl
Y3Qgb24gaXQuCiAgKi8KIEVBUEkgdm9pZCAgICAgICAgICAgICBld2tfbmV0d29ya190bHNfY2Ff
Y2VydGlmaWNhdGVzX3BhdGhfc2V0KGNvbnN0IGNoYXIgKnBhdGgpOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuY3BwIGIvU291cmNlL1dlYktpdC9lZmwvZXdr
L2V3a192aWV3LmNwcAppbmRleCA5Nzg5YzFjMzBkMjkzYTBjZjI0NTA3MjE2YjI4MjkzZTlkMGZi
YTgxLi5hYWU5NTUxZWY4ODA2NjM0OWFjYzhiNzU5MmUyNjMwOGJiMGE0Y2M1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
ZWZsL2V3ay9ld2tfdmlldy5jcHAKQEAgLTUwLDYgKzUwLDcgQEAKICNpbmNsdWRlICJQcm9ncmVz
c1RyYWNrZXIuaCIKICNpbmNsdWRlICJSZWZQdHJDYWlyby5oIgogI2luY2x1ZGUgIlJlbmRlclRo
ZW1lLmgiCisjaW5jbHVkZSAiUmVzb3VyY2VIYW5kbGUuaCIKICNpbmNsdWRlICJTZXR0aW5ncy5o
IgogI2luY2x1ZGUgImNfaW5zdGFuY2UuaCIKICNpbmNsdWRlICJld2tfbG9nZ2luZy5oIgpAQCAt
NTksNiArNjAsNyBAQAogI2luY2x1ZGUgPEV2YXMuaD4KICNpbmNsdWRlIDxlaW5hX3NhZmV0eV9j
aGVja3MuaD4KICNpbmNsdWRlIDxpbnR0eXBlcy5oPgorI2luY2x1ZGUgPGxpYnNvdXAvc291cC1z
ZXNzaW9uLmg+CiAjaW5jbHVkZSA8bGltaXRzPgogI2luY2x1ZGUgPG1hdGguaD4KICNpbmNsdWRl
IDxzeXMvdGltZS5oPgpAQCAtMjExLDYgKzIxMyw3IEBAIHN0cnVjdCBfRXdrX1ZpZXdfUHJpdmF0
ZV9EYXRhIHsKICAgICAgICAgfSBjZW50ZXI7CiAgICAgICAgIEVjb3JlX0FuaW1hdG9yKiBhbmlt
YXRvcjsKICAgICB9IGFuaW1hdGVkWm9vbTsKKyAgICBTb3VwU2Vzc2lvbiogc291cFNlc3Npb247
CiB9OwogCiAjaWZuZGVmIEVXS19UWVBFX0NIRUNLCkBAIC03MTQsNiArNzE3LDggQEAgc3RhdGlj
IEV3a19WaWV3X1ByaXZhdGVfRGF0YSogX2V3a192aWV3X3ByaXZfbmV3KEV3a19WaWV3X1NtYXJ0
X0RhdGEqIHNtYXJ0RGF0YSkKICAgICAgICAgZ290byBlcnJvcl9oaXN0b3J5OwogICAgIH0KIAor
ICAgIHByaXYtPnNvdXBTZXNzaW9uID0gV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OmRlZmF1bHRT
ZXNzaW9uKCk7CisKICAgICByZXR1cm4gcHJpdjsKIAogZXJyb3JfaGlzdG9yeToKQEAgLTM5MTMs
NiArMzkxOCwyNSBAQCBFd2tfUGFnZV9WaXNpYmlsaXR5X1N0YXRlIGV3a192aWV3X3Zpc2liaWxp
dHlfc3RhdGVfZ2V0KGNvbnN0IEV2YXNfT2JqZWN0KiBld2tWaQogI2VuZGlmCiB9CiAKK1NvdXBT
ZXNzaW9uKiBld2tfdmlld19zb3VwX3Nlc3Npb25fZ2V0KGNvbnN0IEV2YXNfT2JqZWN0KiBld2tW
aWV3KQoreworICAgIEVXS19WSUVXX1NEX0dFVF9PUl9SRVRVUk4oZXdrVmlldywgc21hcnREYXRh
LCAwKTsKKyAgICBFV0tfVklFV19QUklWX0dFVF9PUl9SRVRVUk4oc21hcnREYXRhLCBwcml2LCAw
KTsKKyAgICByZXR1cm4gcHJpdi0+c291cFNlc3Npb247Cit9CisKK3ZvaWQgZXdrX3ZpZXdfc291
cF9zZXNzaW9uX3NldChFdmFzX09iamVjdCogZXdrVmlldywgU291cFNlc3Npb24qIHNlc3Npb24p
Cit7CisgICAgRVdLX1ZJRVdfU0RfR0VUX09SX1JFVFVSTihld2tWaWV3LCBzbWFydERhdGEpOwor
ICAgIEVXS19WSUVXX1BSSVZfR0VUX09SX1JFVFVSTihzbWFydERhdGEsIHByaXYpOworICAgIGlm
ICghU09VUF9JU19TRVNTSU9OX0FTWU5DKHNlc3Npb24pKSB7CisgICAgICAgIEVSUigiV2ViS2l0
IHJlcXVpcmVzIGFuIFNvdXBTZXNzaW9uQXN5bmMgdG8gd29yayBwcm9wZXJseSwgYnV0ICIKKyAg
ICAgICAgICAgICJhIFNvdXBTZXNzaW9uU3luYyB3YXMgcHJvdmlkZWQuIik7CisgICAgICAgIHJl
dHVybjsKKyAgICB9CisgICAgcHJpdi0+c291cFNlc3Npb24gPSBzZXNzaW9uOworfQorCiBuYW1l
c3BhY2UgRVdLUHJpdmF0ZSB7CiAKIFdlYkNvcmU6OlBhZ2UgKmNvcmVQYWdlKGNvbnN0IEV2YXNf
T2JqZWN0ICpld2tWaWV3KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192
aWV3LmggYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuaAppbmRleCBkMzQ3NGE2NGIz
OTNmNjVlMTAzYzQ5YjAyYjY1NTQzNTgzYjUzZDZjLi43ZGUwZTQ2MmYxN2M1YWFhMzQyODc2MzJj
MmQzNGVmMTU0N2E3MzdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3Zp
ZXcuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuaApAQCAtOTUsNiArOTUs
NyBAQAogCiAjaW5jbHVkZSA8RXZhcy5oPgogI2luY2x1ZGUgPGNhaXJvLmg+CisjaW5jbHVkZSA8
bGlic291cC9zb3VwLXNlc3Npb24uaD4KIAogI2lmZGVmIF9fY3BsdXNwbHVzCiBleHRlcm4gIkMi
IHsKQEAgLTIzMzUsNiArMjMzNiwzNCBAQCBFQVBJIEVpbmFfQm9vbCBld2tfdmlld19taXhlZF9j
b250ZW50X2Rpc3BsYXllZF9nZXQoY29uc3QgRXZhc19PYmplY3QgKm8pOwogICovCiBFQVBJIEVp
bmFfQm9vbCBld2tfdmlld19taXhlZF9jb250ZW50X3J1bl9nZXQoY29uc3QgRXZhc19PYmplY3Qg
Km8pOwogCisvKioKKyAqIFJldHVybnMgdGhlIFNvdXBTZXNzaW9uIGFzc29jaWF0ZWQgd2l0aCB0
aGlzIHZpZXcuCisgKgorICogQnkgZGVmYXVsdCwgYWxsIHZpZXdzIHNoYXJlIHRoZSBzYW1lLCBk
ZWZhdWx0IHNvdXAgc2Vzc2lvbiBhbHNvIGF2YWlsYWJsZQorICogYnkgY2FsbGluZyBld2tfbmV0
d29ya19kZWZhdWx0X3NvdXBfc2Vzc2lvbl9nZXQuCisgKgorICogQHBhcmFtIG8gVGhlIHZpZXcg
dG8gcXVlcnkuCisgKgorICogQHNhIGV3a192aWV3X3NvdXBfc2Vzc2lvbl9zZXQsIGV3a19uZXR3
b3JrX2RlZmF1bHRfc291cF9zZXNzaW9uX2dldAorICovCitFQVBJIFNvdXBTZXNzaW9uKiBld2tf
dmlld19zb3VwX3Nlc3Npb25fZ2V0KGNvbnN0IEV2YXNfT2JqZWN0ICpvKTsKKworLyoqCisgKiBB
c3NvY2lhdGVzIGEgbmV3IFNvdXBTZXNzaW9uIHdpdGggdGhpcyB2aWV3LgorICoKKyAqIE9ubHkg
c2Vzc2lvbnMgb2YgdHlwZSBTb3VwU2Vzc2lvbkFzeW5jIGFyZSBzdXBwb3J0ZWQuCisgKgorICog
QG5vdGUgQ2hhbmdpbmcgdGhlIFNvdXBTZXNzaW9uIHNob3VsZCBub3QgYmUgbmVlZGVkIGluIG1v
c3QgY2FzZXMuIElmCisgKiAgICAgICBhIGRpZmZlcmVudCBTb3VwU2Vzc2lvbiBpcyB1c2VkLCB0
aGUgY29va2llIG1hbmFnZW1lbnQgYW5kIHNvbWUKKyAqICAgICAgIG5ldHdvcmsgZnVuY3Rpb25z
IGluIGV3ayB3aWxsIG5vdCBoYXZlIGFueSBlZmZlY3Qgb24gaXQuCisgKgorICogQHBhcmFtIG8g
VGhlIHZpZXcgdG8gY2hhbmdlLgorICogQHBhcmFtIHNlc3Npb24gVGhlIG5ldyBTb3VwU2Vzc2lv
bi4KKyAqCisgKiBAc2EgZXdrX3ZpZXdfc291cF9zZXNzaW9uX2dldCwgZXdrX25ldHdvcmtfZGVm
YXVsdF9zb3VwX3Nlc3Npb25fZ2V0CisgKi8KK0VBUEkgdm9pZCBld2tfdmlld19zb3VwX3Nlc3Np
b25fc2V0KEV2YXNfT2JqZWN0ICpvLCBTb3VwU2Vzc2lvbiAqc2Vzc2lvbik7CisKICNpZmRlZiBf
X2NwbHVzcGx1cwogfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay9HTlVt
YWtlZmlsZS5hbSBiL1NvdXJjZS9XZWJLaXQvZ3RrL0dOVW1ha2VmaWxlLmFtCmluZGV4IDM4ZDJi
YjAyYTI4ODVkYTM5MDhhYmI4ZjM2NjEzZDExOTQwOWMyYjcuLjU2N2Q3OWJiOTAzNTRmZDFkYTQy
ODRjNWVmYWJiY2ZhYzYxYmFlYWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL0dOVW1h
a2VmaWxlLmFtCisrKyBiL1NvdXJjZS9XZWJLaXQvZ3RrL0dOVW1ha2VmaWxlLmFtCkBAIC0yMDQs
NiArMjA0LDcgQEAgd2Via2l0Z3RrX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJLaXQvZ3RrL1dl
YkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEd0ay5oIFwKIAlTb3VyY2UvV2ViS2l0L2d0ay9XZWJD
b3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5jcHAgXAogCVNvdXJjZS9XZWJLaXQvZ3Rr
L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmggXAorCVNvdXJjZS9XZWJLaXQv
Z3RrL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTmV0d29ya2luZ0NvbnRleHRHdGsuY3BwIFwKIAlTb3Vy
Y2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9GcmFtZU5ldHdvcmtpbmdDb250ZXh0R3RrLmgg
XAogCVNvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Z1bGxzY3JlZW5WaWRlb0NvbnRy
b2xsZXIuY3BwIFwKIAlTb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9GdWxsc2NyZWVu
VmlkZW9Db250cm9sbGVyLmggXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsvV2ViQ29y
ZVN1cHBvcnQvRnJhbWVOZXR3b3JraW5nQ29udGV4dEd0ay5jcHAgYi9Tb3VyY2UvV2ViS2l0L2d0
ay9XZWJDb3JlU3VwcG9ydC9GcmFtZU5ldHdvcmtpbmdDb250ZXh0R3RrLmNwcApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li40YjlkMTI0OTEzMjY5NjY3OGY3NDNkZGMxODMxNWVkZGZmMzIyMWM4Ci0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRnJhbWVOZXR3b3JraW5nQ29u
dGV4dEd0ay5jcHAKQEAgLTAsMCArMSwzNSBAQAorLyoKKyAgICBDb3B5cmlnaHQgKEMpIDIwMTAg
Tm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisgICAgQ29weXJp
Z2h0IChDKSAyMDEyIFByb0ZVU0lPTiBlbWJlZGRlZCBzeXN0ZW1zCisKKyAgICBUaGlzIGxpYnJh
cnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgICAg
bW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMKKyAgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0
aW9uOyBlaXRoZXIKKyAgICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9w
dGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisKKyAgICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0
ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAgICBidXQgV0lUSE9VVCBB
TlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICAgIE1F
UkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0
aGUgR05VCisgICAgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFp
bHMuCisKKyAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGli
cmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgICAgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7
IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAgICB0aGUgRnJl
ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZs
b29yLAorICAgIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorI2luY2x1ZGUgIkZyYW1lTmV0d29ya2luZ0NvbnRleHRHdGsuaCIKKworI2luY2x1
ZGUgIlJlc291cmNlSGFuZGxlLmgiCisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCituYW1l
c3BhY2UgV2ViS2l0IHsKKworU291cFNlc3Npb24qIEZyYW1lTmV0d29ya2luZ0NvbnRleHRHdGs6
OnNvdXBTZXNzaW9uKCkgY29uc3QKK3sKKyAgICByZXR1cm4gUmVzb3VyY2VIYW5kbGU6OmRlZmF1
bHRTZXNzaW9uKCk7Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNv
cmVTdXBwb3J0L0ZyYW1lTmV0d29ya2luZ0NvbnRleHRHdGsuaCBiL1NvdXJjZS9XZWJLaXQvZ3Rr
L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTmV0d29ya2luZ0NvbnRleHRHdGsuaAppbmRleCA4ZTRjMjE0
OGQyMTZiYmU0YzVlZjAzYmRhMTFkNDIwYjM0NmE0MjZjLi5hNTlhOTQwOTlhYmZkMWM3YzM0YmU4
NGY1YzA4NDM0MTQ4ZTc1Mzg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3Jl
U3VwcG9ydC9GcmFtZU5ldHdvcmtpbmdDb250ZXh0R3RrLmgKKysrIGIvU291cmNlL1dlYktpdC9n
dGsvV2ViQ29yZVN1cHBvcnQvRnJhbWVOZXR3b3JraW5nQ29udGV4dEd0ay5oCkBAIC0zMiw2ICsz
Miw3IEBAIHB1YmxpYzoKICAgICB9CiAKICAgICBXZWJDb3JlOjpGcmFtZSogY29yZUZyYW1lKCkg
Y29uc3QgeyByZXR1cm4gZnJhbWUoKTsgfQorICAgIHZpcnR1YWwgU291cFNlc3Npb24qIHNvdXBT
ZXNzaW9uKCkgY29uc3Q7CiAKIHByaXZhdGU6CiAgICAgRnJhbWVOZXR3b3JraW5nQ29udGV4dEd0
ayhXZWJDb3JlOjpGcmFtZSogZnJhbWUpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>127232</attachid>
            <date>2012-02-15 14:01:43 -0800</date>
            <delta_ts>2012-02-15 16:20:40 -0800</delta_ts>
            <desc>Patch for landing with reviewer set</desc>
            <filename>bug-77341-20120215200255.patch</filename>
            <type>text/plain</type>
            <size>29793</size>
            <attacher name="Raphael Kubo da Costa (:rakuco)">rakuco</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA3ODA5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDY4YWJiYzI1YmU0NWYw
MDdhMzE4YTU4NGQyNzkyM2ZlNmE2YzRkMS4uYzYxNjQ5ZGI1ZmJhNzdkZWY3ZTVjMjc1ZjBkYWVl
YWE2OGEzY2E0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUxIEBACisyMDEyLTAxLTMxICBSYXBo
YWVsIEt1Ym8gZGEgQ29zdGEgIDxrdWJvQHByb2Z1c2lvbi5tb2JpPgorCisgICAgICAgIFtzb3Vw
XSBBZGQgc3VwcG9ydCBmb3IgbXVsdGlwbGUgU291cFNlc3Npb25zLgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzczNDEKKworICAgICAgICBSZXZpZXdl
ZCBieSBHdXN0YXZvIE5vcm9uaGEgU2lsdmEuCisKKyAgICAgICAgTWFrZSB0aGUgbGlic291cCBu
ZXR3b3JrIGJhY2tlbmQgc3VwcG9ydCBtdWx0aXBsZSBTb3VwU2Vzc2lvbnMuIFRoaXMgaXMKKyAg
ICAgICAgYWNjb21wbGlzaGVkIGJ5IHVzaW5nIHRoZSBOZXR3b3JraW5nQ29udGV4dCBjbGFzc2Vz
LCB3aGljaCBub3cgaGF2ZSBhCisgICAgICAgIGBzb3VwU2Vzc2lvbigpJyBtZXRob2Qgd2hlbiB0
aGUgbGlic291cCBiYWNrZW5kIGlzIGJlaW5nIHVzZWQuCisKKyAgICAgICAgbGlic291cCdzIFJl
c291cmNlSGFuZGxlIGltcGxlbWVudGF0aW9uIG5vdyByZXRyaWV2ZXMgdGhlIFNvdXBTZXNzaW9u
CisgICAgICAgIHZpYSB0aGUgTmV0d29ya2luZ0NvbnRleHQgaXQgcmVjZWl2ZXMgaW5zdGVhZCBv
ZiByZWx5aW5nIG9uCisgICAgICAgIGRlZmF1bHRTZXNzaW9uKCkuIGRlZmF1bHRTZXNzaW9uKCkg
aXMgc3RpbGwgdXNlZCB3aGVuIGEgbnVsbAorICAgICAgICBOZXR3b3JraW5nQ29udGV4dCBpcyBw
YXNzZWQgdG8gUmVzb3VyY2VIYW5kbGU6OnN0YXJ0IChmb3IgZXhhbXBsZSwgdmlhCisgICAgICAg
IHdlYmtpdF9kb3dubG9hZF9zdGFydCkuCisKKyAgICAgICAgVGhlIENvb2tpZUphciBpbXBsZW1l
bnRhdGlvbiByZXRyaWV2ZXMgdGhlIFNvdXBTZXNzaW9uIGZyb20gdGhlCisgICAgICAgIE5ldHdv
cmtpbmdDb250ZXh0IGFzIG11Y2ggYXMgcG9zc2libGUgYXMgd2VsbCAtLSB0aGUgZnVuY3Rpb25z
IHVzZWQgYnkKKyAgICAgICAgV2ViS2l0MiBjb3VsZCBub3QgYmUgY29udmVydGVkLCB0aG91Z2gs
IGFzIHRoZXkgc2VlbSB0byBhc3N1bWUgdGhlcmUgaXMKKyAgICAgICAgb25seSBvbmUgc2hhcmVk
IGNvb2tpZSBqYXIuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCBjb3ZlcmVkIGJ5IHRoZSBleGlz
dGluZyBvbmVzLgorCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9OZXR3b3JraW5nQ29udGV4
dC5oOgorICAgICAgICAoTmV0d29ya2luZ0NvbnRleHQpOiBBZGQgc291cFNlc3Npb24oKSBtZXRo
b2QgaWYgVVNFKFNPVVApIGlzIHNldC4KKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL1Jlc291
cmNlSGFuZGxlSW50ZXJuYWwuaDoKKyAgICAgICAgKFJlc291cmNlSGFuZGxlSW50ZXJuYWwpOgor
ICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvc291cC9Db29raWVKYXJTb3VwLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OmNvb2tpZUphckZvckRvY3VtZW50KToKKyAgICAgICAgKFdlYkNvcmUpOgor
ICAgICAgICAoV2ViQ29yZTo6ZGVmYXVsdENvb2tpZUphcik6CisgICAgICAgIChXZWJDb3JlOjpz
ZXRDb29raWVzKToKKyAgICAgICAgKFdlYkNvcmU6OmNvb2tpZXMpOgorICAgICAgICAoV2ViQ29y
ZTo6Y29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6Y29v
a2llc0VuYWJsZWQpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUhh
bmRsZVNvdXAuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGVJbnRlcm5hbDo6
c291cFNlc3Npb24pOiBBZGQgbWV0aG9kIHRvIHJldHJpZXZlCisgICAgICAgIGEgU291cFNlc3Np
b24gZnJvbSBhIE5ldHdvcmtpbmdDb250ZXh0IGFuZCBmYWxsYmFjayB0byBkZWZhdWx0U2Vzc2lv
bigpCisgICAgICAgIGlmIHRoZXJlJ3Mgbm8gdmFsaWQgTmV0d29ya2luZ0NvbnRleHQuCisgICAg
ICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OmVuc3VyZVNlc3Npb25Jc0luaXRpYWxp
emVkKTogT25seSBjaGFuZ2Ugb3IgdXNlIHRoZSBkZWZhdWx0CisgICAgICAgIGNvb2tpZSBqYXIg
aWYgdGhlIFNvdXBTZXNzaW9uIGJlaW5nIGNoYW5nZWQgaXMgdGhlIGRlZmF1bHQgb25lLgorICAg
ICAgICAoV2ViQ29yZTo6c2VuZFJlcXVlc3RDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpz
dGFydEhUVFBSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpjYW5j
ZWwpOgorICAgICAgICAoV2ViQ29yZTo6c3RhcnROb25IVFRQUmVxdWVzdCk6CisKIDIwMTItMDIt
MTUgIFl1cnkgU2VtaWtoYXRza3kgIDx5dXJ5c0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVW5y
ZXZpZXdlZC4gQnVpbGQgZml4IGFmdGVyIHIxMDc4MDYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvZWZsL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZwppbmRleCAwZGE4
MWQ5MzMzZTM5OGNiM2YyYjUyMjRlNjJjZDNlZDI2YTQwMjIzLi5hMTI0ZmNkM2NjMGEyMTQ3MjNi
M2IyMGE0YTQzZTU4M2NkM2M2NmQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDIgQEAK
KzIwMTItMDEtMzEgIFJhcGhhZWwgS3VibyBkYSBDb3N0YSAgPGt1Ym9AcHJvZnVzaW9uLm1vYmk+
CisKKyAgICAgICAgW3NvdXBdIEFkZCBzdXBwb3J0IGZvciBtdWx0aXBsZSBTb3VwU2Vzc2lvbnMu
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NzM0MQor
CisgICAgICAgIEFkZCB0aGUgbmVjZXNzYXJ5IGluZnJhc3RydWN0dXJlIHRvIHN1cHBvcnQgbXVs
dGlwbGUgU291cFNlc3Npb25zLiBFYWNoCisgICAgICAgIFdlYlZpZXcgbm93IGhhcyBhICJzZXNz
aW9uIiBwcm9wZXJ0eSwgd2hpY2ggZGVmYXVsdHMgdG8KKyAgICAgICAgUmVzb3VyY2VIYW5kbGU6
OmRlZmF1bHRTZXNzaW9uKCkgYW5kIGNhbiBiZSBjaGFuZ2VkIHRvIGFub3RoZXIKKyAgICAgICAg
U291cFNlc3Npb24gYnkgdGhlIHVzZXIuCisKKyAgICAgICAgU29tZSBBUEkgaW4gZXdrX25ldHdv
cmsgYW5kIGV3a192aWV3IHdoaWNoIHJlcXVpcmVkIFNvdXBTZXNzaW9uIHRvIGJlIGEKKyAgICAg
ICAgdmFsaWQgdHlwZSBpbiB0aGUgaGVhZGVycyBoYXMgbm93IGJlZW4gbW92ZWQgaW5zaWRlICNp
ZiBVU0UoU09VUCkKKyAgICAgICAgaWZkZWZzIHNvIHdlIGNhbiBhY3R1YWxseSB0aGUgcmVxdWly
ZWQgU291cCBoZWFkZXIgYW5kIGF2b2lkIGJ1aWxkCisgICAgICAgIHByb2JsZW1zIHdpdGggZHVw
bGljYXRlIHR5cGVkZWZzLgorCisgICAgICAgICogQ01ha2VMaXN0c0VmbC50eHQ6CisgICAgICAg
ICogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRFZmwuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6RnJhbWVMb2FkZXJDbGllbnRFZmw6OmNyZWF0ZU5ldHdvcmtpbmdDb250ZXh0KToKKyAg
ICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFtZU5ldHdvcmtpbmdDb250ZXh0RWZsLmNwcDogQ29w
aWVkIGZyb20gU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRnJhbWVOZXR3b3JraW5n
Q29udGV4dEVmbC5oLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpGcmFt
ZU5ldHdvcmtpbmdDb250ZXh0RWZsOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVO
ZXR3b3JraW5nQ29udGV4dEVmbDo6RnJhbWVOZXR3b3JraW5nQ29udGV4dEVmbCk6CisgICAgICAg
IChXZWJDb3JlOjpGcmFtZU5ldHdvcmtpbmdDb250ZXh0RWZsOjpzb3VwU2Vzc2lvbik6CisgICAg
ICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVOZXR3b3JraW5nQ29udGV4dEVmbC5oOgorICAgICAg
ICAoRnJhbWVOZXR3b3JraW5nQ29udGV4dEVmbCk6CisgICAgICAgICogZXdrL2V3a19jb29raWVz
Lmg6IE1lbnRpb24gdGhpcyBBUEkgaXMgb25seSB2YWxpZCB3aXRoIHRoZQorICAgICAgICBkZWZh
dWx0IFNvdXBTZXNzaW9uLgorICAgICAgICAqIGV3ay9ld2tfbmV0d29yay5jcHA6CisgICAgICAg
IChld2tfbmV0d29ya19kZWZhdWx0X3NvdXBfc2Vzc2lvbl9nZXQpOiBEZWZpbmUgb25seSBpZiBV
U0UoU09VUCkgaXMgc2V0LgorICAgICAgICAqIGV3ay9ld2tfbmV0d29yay5oOiBEaXR0bywgYW5k
IG1lbnRpb24gdGhpcyBBUEkgaXMgb25seSB2YWxpZCB3aXRoIHRoZQorICAgICAgICBkZWZhdWx0
IFNvdXBTZXNzaW9uLgorICAgICAgICAqIGV3ay9ld2tfdmlldy5jcHA6CisgICAgICAgIChfRXdr
X1ZpZXdfUHJpdmF0ZV9EYXRhKToKKyAgICAgICAgKF9ld2tfdmlld19wcml2X25ldyk6CisgICAg
ICAgIChld2tfdmlld19zb3VwX3Nlc3Npb25fZ2V0KToKKyAgICAgICAgKGV3a192aWV3X3NvdXBf
c2Vzc2lvbl9zZXQpOgorICAgICAgICAqIGV3ay9ld2tfdmlldy5oOgorICAgICAgICAoKToKKwog
MjAxMi0wMi0xMyAgUmFwaGFlbCBLdWJvIGRhIENvc3RhICA8a3Vib0Bwcm9mdXNpb24ubW9iaT4K
IAogICAgICAgICBbQ01ha2VdIE1lcmdlIFdlYktpdEVmbC5jbWFrZSBpbnRvIEZpbmRFRkwuY21h
a2UuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0L2d0ay9DaGFuZ2VMb2cKaW5kZXggY2ZlODIzZTNlZmY3NDkwNjFlNjJkZDY5MjViMTVlZGYy
MWY3MmJjNi4uNDhmNWU4NzRlNmY2N2UxNTY1ZDc4MGJhOWRiODc3MmRiZjk4NGExOCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvZ3Rr
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDEyLTAxLTMxICBSYXBoYWVsIEt1Ym8gZGEg
Q29zdGEgIDxrdWJvQHByb2Z1c2lvbi5tb2JpPgorCisgICAgICAgIFtzb3VwXSBBZGQgc3VwcG9y
dCBmb3IgbXVsdGlwbGUgU291cFNlc3Npb25zLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzczNDEKKworICAgICAgICBSZXZpZXdlZCBieSBHdXN0YXZv
IE5vcm9uaGEgU2lsdmEuCisKKyAgICAgICAgQWRhcHQgdG8gdGhlIGNoYW5nZXMgdG8gRnJhbWVO
ZXR3b3JraW5nQ29udGV4dCBpbiBXZWJDb3JlLgorCisgICAgICAgICogR05VbWFrZWZpbGUuYW06
CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVOZXR3b3JraW5nQ29udGV4dEd0ay5jcHA6
IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTmV0d29y
a2luZ0NvbnRleHRHdGsuaC4KKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChXZWJLaXQ6OkZy
YW1lTmV0d29ya2luZ0NvbnRleHRHdGs6OnNvdXBTZXNzaW9uKTogQWx3YXlzIHJldHVybiBSZXNv
dXJjZUhhbmRsZTo6ZGVmYXVsdFNlc3Npb24oKS4KKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9G
cmFtZU5ldHdvcmtpbmdDb250ZXh0R3RrLmg6CisgICAgICAgIChGcmFtZU5ldHdvcmtpbmdDb250
ZXh0R3RrKToKKwogMjAxMi0wMi0xNSAgTm8nYW0gUm9zZW50aGFsICA8bm9hbS5yb3NlbnRoYWxA
bm9raWEuY29tPgogCiAgICAgICAgIFtUZXhtYXBdIERpdmlkZSBUZXh0dXJlTWFwcGVyTm9kZS5j
cHAgdG8gMyBmaWxlcy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvTmV0d29ya2luZ0NvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
TmV0d29ya2luZ0NvbnRleHQuaAppbmRleCBmMmIxMGM0NDViZDA1N2Q2MzQ0NzYwZjg5N2MzNGNm
NWJlYmIyODAxLi4wNDYwODVjMmY2YjQ1ZmJkYzExNGI5YTYwZTFhYWM1OWIzNWM2OTYwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtpbmdDb250ZXh0
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3JraW5nQ29udGV4
dC5oCkBAIC0zNSw2ICszNSwxMCBAQCBjbGFzcyBRVXJsOwogUVRfRU5EX05BTUVTUEFDRQogI2Vu
ZGlmCiAKKyNpZiBVU0UoU09VUCkKK3R5cGVkZWYgc3RydWN0IF9Tb3VwU2Vzc2lvbiBTb3VwU2Vz
c2lvbjsKKyNlbmRpZgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFJlc291cmNlRXJy
b3I7CkBAIC02Niw2ICs3MCwxMCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBSZXNvdXJjZUVycm9y
IGJsb2NrZWRFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmKSBjb25zdCA9IDA7CiAjZW5kaWYK
IAorI2lmIFVTRShTT1VQKQorICAgIHZpcnR1YWwgU291cFNlc3Npb24qIHNvdXBTZXNzaW9uKCkg
Y29uc3QgPSAwOworI2VuZGlmCisKIHByb3RlY3RlZDoKICAgICBOZXR3b3JraW5nQ29udGV4dCgp
IHsgfQogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVz
b3VyY2VIYW5kbGVJbnRlcm5hbC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9S
ZXNvdXJjZUhhbmRsZUludGVybmFsLmgKaW5kZXggODc3OTk3OTYzODg0YmRkYmQ3YTc2YzA2YTI5
ZWY2ODFkZWFkZjE2Ni4uYmM3OWVkMTJiNmNhZmEyNjJlZDQ5YmVlZjk4Yjk3NzRjNWZhNmM4MCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRs
ZUludGVybmFsLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJj
ZUhhbmRsZUludGVybmFsLmgKQEAgLTE4OSw2ICsxODksNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAgICAgICAgIHVuc2lnbmVkIGxvbmcgbV9ib2R5U2l6ZTsKICAgICAgICAgdW5zaWduZWQgbG9u
ZyBtX2JvZHlEYXRhU2VudDsKICAgICAgICAgUmVmUHRyPE5ldHdvcmtpbmdDb250ZXh0PiBtX2Nv
bnRleHQ7CisgICAgICAgIFNvdXBTZXNzaW9uKiBzb3VwU2Vzc2lvbigpOwogI2VuZGlmCiAjaWYg
UExBVEZPUk0oUVQpCiAgICAgICAgIFFOZXR3b3JrUmVwbHlIYW5kbGVyKiBtX2pvYjsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9Db29raWVKYXJTb3Vw
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9Db29raWVKYXJTb3Vw
LmNwcAppbmRleCBmMTcwZDJkNTRlNzFiZjk2MGM2OWZlMjFjMjk2MTIyNDVhM2ZiOGM3Li4zNDhh
MjUyYTYzYTUyYTFjNDY3NzVmZDE4MDBjYjQ0YWRmMWQ3NmQ1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvQ29va2llSmFyU291cC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL0Nvb2tpZUphclNvdXAuY3BwCkBAIC0y
Myw4ICsyMywxMiBAQAogCiAjaW5jbHVkZSAiQ29va2llLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQu
aCIKKyNpbmNsdWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIkZyYW1lTG9hZGVyLmgiCiAjaW5jbHVk
ZSAiR093blB0clNvdXAuaCIKICNpbmNsdWRlICJLVVJMLmgiCisjaW5jbHVkZSAiTmV0d29ya2lu
Z0NvbnRleHQuaCIKKyNpbmNsdWRlICJSZXNvdXJjZUhhbmRsZS5oIgogI2luY2x1ZGUgPHd0Zi90
ZXh0L0NTdHJpbmcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMzIsNiArMzYsMjUgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogc3RhdGljIGJvb2wgY29va2llc0luaXRpYWxpemVkOwogc3Rh
dGljIFNvdXBDb29raWVKYXIqIGNvb2tpZUphcjsKIAorc3RhdGljIFNvdXBDb29raWVKYXIqIGNv
b2tpZUphckZvckRvY3VtZW50KGNvbnN0IERvY3VtZW50KiBkb2N1bWVudCkKK3sKKyAgICBpZiAo
IWRvY3VtZW50KQorICAgICAgICByZXR1cm4gMDsKKyAgICBjb25zdCBGcmFtZSogZnJhbWUgPSBk
b2N1bWVudC0+ZnJhbWUoKTsKKyAgICBpZiAoIWZyYW1lKQorICAgICAgICByZXR1cm4gMDsKKyAg
ICBjb25zdCBGcmFtZUxvYWRlciogbG9hZGVyID0gZnJhbWUtPmxvYWRlcigpOworICAgIGlmICgh
bG9hZGVyKQorICAgICAgICByZXR1cm4gMDsKKyAgICBjb25zdCBOZXR3b3JraW5nQ29udGV4dCog
Y29udGV4dCA9IGxvYWRlci0+bmV0d29ya2luZ0NvbnRleHQoKTsKKyAgICBpZiAoIWNvbnRleHQp
CisgICAgICAgIHJldHVybiAwOworICAgIFNvdXBTZXNzaW9uRmVhdHVyZSogY29va2llSmFyRmVh
dHVyZSA9IHNvdXBfc2Vzc2lvbl9nZXRfZmVhdHVyZShjb250ZXh0LT5zb3VwU2Vzc2lvbigpLCBT
T1VQX1RZUEVfQ09PS0lFX0pBUik7CisgICAgaWYgKCFjb29raWVKYXJGZWF0dXJlKQorICAgICAg
ICByZXR1cm4gMDsKKyAgICByZXR1cm4gU09VUF9DT09LSUVfSkFSKGNvb2tpZUphckZlYXR1cmUp
OworfQorCiBTb3VwQ29va2llSmFyKiBkZWZhdWx0Q29va2llSmFyKCkKIHsKICAgICBpZiAoIWNv
b2tpZXNJbml0aWFsaXplZCkgewpAQCAtNTksNyArODIsNyBAQCB2b2lkIHNldERlZmF1bHRDb29r
aWVKYXIoU291cENvb2tpZUphciogamFyKQogCiB2b2lkIHNldENvb2tpZXMoRG9jdW1lbnQqIGRv
Y3VtZW50LCBjb25zdCBLVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgdmFsdWUpCiB7Ci0gICAgU291
cENvb2tpZUphciogamFyID0gZGVmYXVsdENvb2tpZUphcigpOworICAgIFNvdXBDb29raWVKYXIq
IGphciA9IGNvb2tpZUphckZvckRvY3VtZW50KGRvY3VtZW50KTsKICAgICBpZiAoIWphcikKICAg
ICAgICAgcmV0dXJuOwogCkBAIC03Myw5ICs5Niw5IEBAIHZvaWQgc2V0Q29va2llcyhEb2N1bWVu
dCogZG9jdW1lbnQsIGNvbnN0IEtVUkwmIHVybCwgY29uc3QgU3RyaW5nJiB2YWx1ZSkKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlLnV0ZjgoKS5k
YXRhKCkpOwogfQogCi1TdHJpbmcgY29va2llcyhjb25zdCBEb2N1bWVudCogLypkb2N1bWVudCov
LCBjb25zdCBLVVJMJiB1cmwpCitTdHJpbmcgY29va2llcyhjb25zdCBEb2N1bWVudCogZG9jdW1l
bnQsIGNvbnN0IEtVUkwmIHVybCkKIHsKLSAgICBTb3VwQ29va2llSmFyKiBqYXIgPSBkZWZhdWx0
Q29va2llSmFyKCk7CisgICAgU291cENvb2tpZUphciogamFyID0gY29va2llSmFyRm9yRG9jdW1l
bnQoZG9jdW1lbnQpOwogICAgIGlmICghamFyKQogICAgICAgICByZXR1cm4gU3RyaW5nKCk7CiAK
QEAgLTg5LDkgKzExMiw5IEBAIFN0cmluZyBjb29raWVzKGNvbnN0IERvY3VtZW50KiAvKmRvY3Vt
ZW50Ki8sIGNvbnN0IEtVUkwmIHVybCkKICAgICByZXR1cm4gcmVzdWx0OwogfQogCi1TdHJpbmcg
Y29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoY29uc3QgRG9jdW1lbnQqIC8qZG9jdW1lbnQq
LywgY29uc3QgS1VSTCYgdXJsKQorU3RyaW5nIGNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVl
KGNvbnN0IERvY3VtZW50KiBkb2N1bWVudCwgY29uc3QgS1VSTCYgdXJsKQogewotICAgIFNvdXBD
b29raWVKYXIqIGphciA9IGRlZmF1bHRDb29raWVKYXIoKTsKKyAgICBTb3VwQ29va2llSmFyKiBq
YXIgPSBjb29raWVKYXJGb3JEb2N1bWVudChkb2N1bWVudCk7CiAgICAgaWYgKCFqYXIpCiAgICAg
ICAgIHJldHVybiBTdHJpbmcoKTsKIApAQCAtMTA1LDkgKzEyOCw5IEBAIFN0cmluZyBjb29raWVS
ZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShjb25zdCBEb2N1bWVudCogLypkb2N1bWVudCovLCBjb25z
dCBLVVJMJiB1CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAotYm9vbCBjb29raWVzRW5hYmxlZChj
b25zdCBEb2N1bWVudCogLypkb2N1bWVudCovKQorYm9vbCBjb29raWVzRW5hYmxlZChjb25zdCBE
b2N1bWVudCogZG9jdW1lbnQpCiB7Ci0gICAgcmV0dXJuIGRlZmF1bHRDb29raWVKYXIoKTsKKyAg
ICByZXR1cm4gISFjb29raWVKYXJGb3JEb2N1bWVudChkb2N1bWVudCk7CiB9CiAKIGJvb2wgZ2V0
UmF3Q29va2llcyhjb25zdCBEb2N1bWVudCosIGNvbnN0IEtVUkwmLCBWZWN0b3I8Q29va2llPiYg
cmF3Q29va2llcykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
c291cC9SZXNvdXJjZUhhbmRsZVNvdXAuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9zb3VwL1Jlc291cmNlSGFuZGxlU291cC5jcHAKaW5kZXggNWNiNTNiZGZmNGZhYjU2OTMz
YTEzMTlhYzZiYWM3YTYwZmIwOWZlYi4uYjM4NmZlNjU0NGFjZjljOTI0NWQ3Njc2NTk5MjJiNDhl
ZDIzMTI3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3Vw
L1Jlc291cmNlSGFuZGxlU291cC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9zb3VwL1Jlc291cmNlSGFuZGxlU291cC5jcHAKQEAgLTE0MSw2ICsxNDEsMTEgQEAgUmVz
b3VyY2VIYW5kbGVJbnRlcm5hbDo6flJlc291cmNlSGFuZGxlSW50ZXJuYWwoKQogewogfQogCitT
b3VwU2Vzc2lvbiogUmVzb3VyY2VIYW5kbGVJbnRlcm5hbDo6c291cFNlc3Npb24oKQoreworICAg
IHJldHVybiAobV9jb250ZXh0ICYmIG1fY29udGV4dC0+aXNWYWxpZCgpKSA/IG1fY29udGV4dC0+
c291cFNlc3Npb24oKSA6IFJlc291cmNlSGFuZGxlOjpkZWZhdWx0U2Vzc2lvbigpOworfQorCiBS
ZXNvdXJjZUhhbmRsZTo6flJlc291cmNlSGFuZGxlKCkKIHsKICAgICBjbGVhbnVwU291cFJlcXVl
c3RPcGVyYXRpb24odGhpcywgdHJ1ZSk7CkBAIC0xNTEsMTEgKzE1NiwxMyBAQCBzdGF0aWMgdm9p
ZCBlbnN1cmVTZXNzaW9uSXNJbml0aWFsaXplZChTb3VwU2Vzc2lvbiogc2Vzc2lvbikKICAgICBp
ZiAoZ19vYmplY3RfZ2V0X2RhdGEoR19PQkpFQ1Qoc2Vzc2lvbiksICJ3ZWJraXQtaW5pdCIpKQog
ICAgICAgICByZXR1cm47CiAKLSAgICBTb3VwQ29va2llSmFyKiBqYXIgPSBTT1VQX0NPT0tJRV9K
QVIoc291cF9zZXNzaW9uX2dldF9mZWF0dXJlKHNlc3Npb24sIFNPVVBfVFlQRV9DT09LSUVfSkFS
KSk7Ci0gICAgaWYgKCFqYXIpCi0gICAgICAgIHNvdXBfc2Vzc2lvbl9hZGRfZmVhdHVyZShzZXNz
aW9uLCBTT1VQX1NFU1NJT05fRkVBVFVSRShkZWZhdWx0Q29va2llSmFyKCkpKTsKLSAgICBlbHNl
Ci0gICAgICAgIHNldERlZmF1bHRDb29raWVKYXIoamFyKTsKKyAgICBpZiAoc2Vzc2lvbiA9PSBS
ZXNvdXJjZUhhbmRsZTo6ZGVmYXVsdFNlc3Npb24oKSkgeworICAgICAgICBTb3VwU2Vzc2lvbkZl
YXR1cmUqIGNvb2tpZUphckZlYXR1cmUgPSBzb3VwX3Nlc3Npb25fZ2V0X2ZlYXR1cmUoc2Vzc2lv
biwgU09VUF9UWVBFX0NPT0tJRV9KQVIpOworICAgICAgICBpZiAoIWNvb2tpZUphckZlYXR1cmUp
CisgICAgICAgICAgICBzb3VwX3Nlc3Npb25fYWRkX2ZlYXR1cmUoc2Vzc2lvbiwgU09VUF9TRVNT
SU9OX0ZFQVRVUkUoZGVmYXVsdENvb2tpZUphcigpKSk7CisgICAgICAgIGVsc2UKKyAgICAgICAg
ICAgIHNldERlZmF1bHRDb29raWVKYXIoU09VUF9DT09LSUVfSkFSKGNvb2tpZUphckZlYXR1cmUp
KTsKKyAgICB9CiAKICAgICBpZiAoIXNvdXBfc2Vzc2lvbl9nZXRfZmVhdHVyZShzZXNzaW9uLCBT
T1VQX1RZUEVfTE9HR0VSKSAmJiBMb2dOZXR3b3JrLnN0YXRlID09IFdURkxvZ0NoYW5uZWxPbikg
ewogICAgICAgICBTb3VwTG9nZ2VyKiBsb2dnZXIgPSBzb3VwX2xvZ2dlcl9uZXcoc3RhdGljX2Nh
c3Q8U291cExvZ2dlckxvZ0xldmVsPihTT1VQX0xPR0dFUl9MT0dfQk9EWSksIC0xKTsKQEAgLTMx
OSw3ICszMjYsNyBAQCBzdGF0aWMgdm9pZCBzZW5kUmVxdWVzdENhbGxiYWNrKEdPYmplY3QqIHNv
dXJjZSwgR0FzeW5jUmVzdWx0KiByZXMsIGdwb2ludGVyIGRhdAogICAgICAgICBkLT5tX3Jlc3Bv
bnNlLnVwZGF0ZUZyb21Tb3VwTWVzc2FnZShzb3VwTWVzc2FnZSk7CiAKICAgICAgICAgaWYgKGQt
Pm1fZGVmZXJzTG9hZGluZykKLSAgICAgICAgICAgIHNvdXBfc2Vzc2lvbl9wYXVzZV9tZXNzYWdl
KGhhbmRsZS0+ZGVmYXVsdFNlc3Npb24oKSwgc291cE1lc3NhZ2UpOworICAgICAgICAgICAgc291
cF9zZXNzaW9uX3BhdXNlX21lc3NhZ2UoZC0+c291cFNlc3Npb24oKSwgc291cE1lc3NhZ2UpOwog
ICAgIH0gZWxzZSB7CiAgICAgICAgIGQtPm1fcmVzcG9uc2Uuc2V0VVJMKGhhbmRsZS0+Zmlyc3RS
ZXF1ZXN0KCkudXJsKCkpOwogICAgICAgICBjb25zdCBnY2hhciogY29udGVudFR5cGUgPSBzb3Vw
X3JlcXVlc3RfZ2V0X2NvbnRlbnRfdHlwZShkLT5tX3NvdXBSZXF1ZXN0LmdldCgpKTsKQEAgLTQ0
MiwxMiArNDQ5LDEyIEBAIHN0YXRpYyBib29sIHN0YXJ0SFRUUFJlcXVlc3QoUmVzb3VyY2VIYW5k
bGUqIGhhbmRsZSkKIHsKICAgICBBU1NFUlQoaGFuZGxlKTsKIAotICAgIFNvdXBTZXNzaW9uKiBz
ZXNzaW9uID0gaGFuZGxlLT5kZWZhdWx0U2Vzc2lvbigpOworICAgIFJlc291cmNlSGFuZGxlSW50
ZXJuYWwqIGQgPSBoYW5kbGUtPmdldEludGVybmFsKCk7CisKKyAgICBTb3VwU2Vzc2lvbiogc2Vz
c2lvbiA9IGQtPnNvdXBTZXNzaW9uKCk7CiAgICAgZW5zdXJlU2Vzc2lvbklzSW5pdGlhbGl6ZWQo
c2Vzc2lvbik7CiAgICAgU291cFJlcXVlc3RlciogcmVxdWVzdGVyID0gU09VUF9SRVFVRVNURVIo
c291cF9zZXNzaW9uX2dldF9mZWF0dXJlKHNlc3Npb24sIFNPVVBfVFlQRV9SRVFVRVNURVIpKTsK
IAotICAgIFJlc291cmNlSGFuZGxlSW50ZXJuYWwqIGQgPSBoYW5kbGUtPmdldEludGVybmFsKCk7
Ci0KICAgICBSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdChoYW5kbGUtPmZpcnN0UmVxdWVzdCgpKTsK
ICAgICBLVVJMIHVybChyZXF1ZXN0LnVybCgpKTsKICAgICB1cmwucmVtb3ZlRnJhZ21lbnRJZGVu
dGlmaWVyKCk7CkBAIC01NTIsNyArNTU5LDcgQEAgdm9pZCBSZXNvdXJjZUhhbmRsZTo6Y2FuY2Vs
KCkKIHsKICAgICBkLT5tX2NhbmNlbGxlZCA9IHRydWU7CiAgICAgaWYgKGQtPm1fc291cE1lc3Nh
Z2UpCi0gICAgICAgIHNvdXBfc2Vzc2lvbl9jYW5jZWxfbWVzc2FnZShkZWZhdWx0U2Vzc2lvbigp
LCBkLT5tX3NvdXBNZXNzYWdlLmdldCgpLCBTT1VQX1NUQVRVU19DQU5DRUxMRUQpOworICAgICAg
ICBzb3VwX3Nlc3Npb25fY2FuY2VsX21lc3NhZ2UoZC0+c291cFNlc3Npb24oKSwgZC0+bV9zb3Vw
TWVzc2FnZS5nZXQoKSwgU09VUF9TVEFUVVNfQ0FOQ0VMTEVEKTsKICAgICBlbHNlIGlmIChkLT5t
X2NhbmNlbGxhYmxlKQogICAgICAgICBnX2NhbmNlbGxhYmxlX2NhbmNlbChkLT5tX2NhbmNlbGxh
YmxlLmdldCgpKTsKIH0KQEAgLTY4NywxMCArNjk0LDExIEBAIHN0YXRpYyBib29sIHN0YXJ0Tm9u
SFRUUFJlcXVlc3QoUmVzb3VyY2VIYW5kbGUqIGhhbmRsZSwgS1VSTCB1cmwpCiAgICAgaWYgKGhh
bmRsZS0+Zmlyc3RSZXF1ZXN0KCkuaHR0cE1ldGhvZCgpICE9ICJHRVQiICYmIGhhbmRsZS0+Zmly
c3RSZXF1ZXN0KCkuaHR0cE1ldGhvZCgpICE9ICJQT1NUIikKICAgICAgICAgcmV0dXJuIGZhbHNl
OwogCi0gICAgU291cFNlc3Npb24qIHNlc3Npb24gPSBoYW5kbGUtPmRlZmF1bHRTZXNzaW9uKCk7
CisgICAgUmVzb3VyY2VIYW5kbGVJbnRlcm5hbCogZCA9IGhhbmRsZS0+Z2V0SW50ZXJuYWwoKTsK
KworICAgIFNvdXBTZXNzaW9uKiBzZXNzaW9uID0gZC0+c291cFNlc3Npb24oKTsKICAgICBlbnN1
cmVTZXNzaW9uSXNJbml0aWFsaXplZChzZXNzaW9uKTsKICAgICBTb3VwUmVxdWVzdGVyKiByZXF1
ZXN0ZXIgPSBTT1VQX1JFUVVFU1RFUihzb3VwX3Nlc3Npb25fZ2V0X2ZlYXR1cmUoc2Vzc2lvbiwg
U09VUF9UWVBFX1JFUVVFU1RFUikpOwotICAgIFJlc291cmNlSGFuZGxlSW50ZXJuYWwqIGQgPSBo
YW5kbGUtPmdldEludGVybmFsKCk7CiAKICAgICBDU3RyaW5nIHVybFN0ciA9IHVybC5zdHJpbmco
KS51dGY4KCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL0NNYWtlTGlzdHNFZmwu
dHh0IGIvU291cmNlL1dlYktpdC9lZmwvQ01ha2VMaXN0c0VmbC50eHQKaW5kZXggMjBkY2MzNTg3
NjFjNDIzNDkyMTdiY2UyZWFmOWJiY2Y4NDY5ZDYxZC4uYWVmZGI5ODA0YTcxNWMwMTFkOTdkMWQw
NzIzM2QxNTllNjM4MmY2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvQ01ha2VMaXN0
c0VmbC50eHQKKysrIGIvU291cmNlL1dlYktpdC9lZmwvQ01ha2VMaXN0c0VmbC50eHQKQEAgLTcy
LDYgKzcyLDcgQEAgTElTVChBUFBFTkQgV2ViS2l0X1NPVVJDRVMKICAgICBlZmwvV2ViQ29yZVN1
cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsLmNwcAogICAgIGVmbC9XZWJDb3JlU3VwcG9y
dC9FZGl0b3JDbGllbnRFZmwuY3BwCiAgICAgZWZsL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVy
Q2xpZW50RWZsLmNwcAorICAgIGVmbC9XZWJDb3JlU3VwcG9ydC9GcmFtZU5ldHdvcmtpbmdDb250
ZXh0RWZsLmNwcAogICAgIGVmbC9XZWJDb3JlU3VwcG9ydC9GdWxsc2NyZWVuVmlkZW9Db250cm9s
bGVyRWZsLmNwcAogICAgIGVmbC9XZWJDb3JlU3VwcG9ydC9JY29uRGF0YWJhc2VDbGllbnRFZmwu
Y3BwCiAgICAgZWZsL1dlYkNvcmVTdXBwb3J0L1N0b3JhZ2VUcmFja2VyQ2xpZW50RWZsLmNwcApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJD
bGllbnRFZmwuY3BwIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2Fk
ZXJDbGllbnRFZmwuY3BwCmluZGV4IDcwOWQ0ZWFjOTZmNjQwNGJlZmZiZDNjMWNmYzFkMzdjNDcy
MWE5MGQuLjAwOTZiODg3NDI3ZTFlZDY2ZmE4YzJjZDQzMjZmZjM5OTg1YThmMzQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50RWZs
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNs
aWVudEVmbC5jcHAKQEAgLTk0Nyw3ICs5NDcsNyBAQCB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50RWZs
OjpkaXNwYXRjaERpZEJlY29tZUZyYW1lc2V0KGJvb2wpCiAKIFBhc3NSZWZQdHI8RnJhbWVOZXR3
b3JraW5nQ29udGV4dD4gRnJhbWVMb2FkZXJDbGllbnRFZmw6OmNyZWF0ZU5ldHdvcmtpbmdDb250
ZXh0KCkKIHsKLSAgICByZXR1cm4gRnJhbWVOZXR3b3JraW5nQ29udGV4dEVmbDo6Y3JlYXRlKEVX
S1ByaXZhdGU6OmNvcmVGcmFtZShtX2ZyYW1lKSk7CisgICAgcmV0dXJuIEZyYW1lTmV0d29ya2lu
Z0NvbnRleHRFZmw6OmNyZWF0ZShFV0tQcml2YXRlOjpjb3JlRnJhbWUobV9mcmFtZSksIG1fZnJh
bWUpOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9y
dC9GcmFtZU5ldHdvcmtpbmdDb250ZXh0RWZsLmNwcCBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNv
cmVTdXBwb3J0L0ZyYW1lTmV0d29ya2luZ0NvbnRleHRFZmwuY3BwCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhjMjBi
MjEzYWFkMjA4N2Q3NTg4NjAyZTQyNTQ5MDA1ZjA5NWM5NDYKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9GcmFtZU5ldHdvcmtpbmdDb250ZXh0RWZs
LmNwcApAQCAtMCwwICsxLDU3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENv
cnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorICogQ29weXJpZ2h0IChDKSAy
MDEwIFNhbXN1bmcgRWxlY3Ryb25pY3MKKyAqIENvcHlyaWdodCAoQykgMjAxMiBQcm9GVVNJT04g
ZW1iZWRkZWQgc3lzdGVtcworICoKKyAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBg
YEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9S
CisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkZyYW1lTmV0d29ya2luZ0NvbnRleHRFZmwuaCIK
KworI2luY2x1ZGUgIlJlc291cmNlSGFuZGxlLmgiCisjaW5jbHVkZSAiZXdrX2ZyYW1lLmgiCisj
aW5jbHVkZSAiZXdrX3ZpZXcuaCIKKworI2luY2x1ZGUgPEV2YXMuaD4KKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitQYXNzUmVmUHRyPEZyYW1lTmV0d29ya2luZ0NvbnRleHRFZmw+IEZyYW1lTmV0
d29ya2luZ0NvbnRleHRFZmw6OmNyZWF0ZShGcmFtZSogZnJhbWUsIEV2YXNfT2JqZWN0KiBld2tG
cmFtZSkKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IEZyYW1lTmV0d29ya2luZ0NvbnRleHRF
ZmwoZnJhbWUsIGV3a0ZyYW1lKSk7Cit9CisKK0ZyYW1lTmV0d29ya2luZ0NvbnRleHRFZmw6OkZy
YW1lTmV0d29ya2luZ0NvbnRleHRFZmwoRnJhbWUqIGZyYW1lLCBFdmFzX09iamVjdCogZXdrRnJh
bWUpCisgICAgOiBGcmFtZU5ldHdvcmtpbmdDb250ZXh0KGZyYW1lKQorICAgICwgbV9ld2tGcmFt
ZShld2tGcmFtZSkKK3sKK30KKworU291cFNlc3Npb24qIEZyYW1lTmV0d29ya2luZ0NvbnRleHRF
Zmw6OnNvdXBTZXNzaW9uKCkgY29uc3QKK3sKKyAgICByZXR1cm4gZXdrX3ZpZXdfc291cF9zZXNz
aW9uX2dldChld2tfZnJhbWVfdmlld19nZXQobV9ld2tGcmFtZSkpOworfQorCit9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9GcmFtZU5ldHdvcmtpbmdDb250
ZXh0RWZsLmggYi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9GcmFtZU5ldHdvcmtp
bmdDb250ZXh0RWZsLmgKaW5kZXggNGU2NzUxMmQwOTRjMjhkZmQ1MTViZWU5OTczNjE3N2ZkOTVj
NmNhZi4uOTNmZmQ0OGJiYjc4ZGQzNjBlNzFmMmFkMjg0YTM3NWJmMDgyY2VmOCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRnJhbWVOZXR3b3JraW5nQ29udGV4
dEVmbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTmV0d29y
a2luZ0NvbnRleHRFZmwuaApAQCAtMzEsMjIgKzMxLDIxIEBACiAKICNpbmNsdWRlICJGcmFtZU5l
dHdvcmtpbmdDb250ZXh0LmgiCiAKK3R5cGVkZWYgc3RydWN0IF9FdmFzX09iamVjdCBFdmFzX09i
amVjdDsKKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBGcmFtZU5ldHdvcmtpbmdDb250
ZXh0RWZsIDogcHVibGljIFdlYkNvcmU6OkZyYW1lTmV0d29ya2luZ0NvbnRleHQgewogcHVibGlj
OgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEZyYW1lTmV0d29ya2luZ0NvbnRleHRFZmw+IGNyZWF0
ZShXZWJDb3JlOjpGcmFtZSogZnJhbWUpCi0gICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYo
bmV3IEZyYW1lTmV0d29ya2luZ0NvbnRleHRFZmwoZnJhbWUpKTsKLSAgICB9CisgICAgc3RhdGlj
IFBhc3NSZWZQdHI8RnJhbWVOZXR3b3JraW5nQ29udGV4dEVmbD4gY3JlYXRlKEZyYW1lKiwgRXZh
c19PYmplY3QqKTsKIAogICAgIFdlYkNvcmU6OkZyYW1lKiBjb3JlRnJhbWUoKSBjb25zdCB7IHJl
dHVybiBmcmFtZSgpOyB9CisgICAgdmlydHVhbCBTb3VwU2Vzc2lvbiogc291cFNlc3Npb24oKSBj
b25zdDsKIAogcHJpdmF0ZToKLSAgICBGcmFtZU5ldHdvcmtpbmdDb250ZXh0RWZsKFdlYkNvcmU6
OkZyYW1lKiBmcmFtZSkKLSAgICAgICAgOiBXZWJDb3JlOjpGcmFtZU5ldHdvcmtpbmdDb250ZXh0
KGZyYW1lKQotICAgIHsKLSAgICB9CisgICAgRnJhbWVOZXR3b3JraW5nQ29udGV4dEVmbChGcmFt
ZSosIEV2YXNfT2JqZWN0Kik7CisKKyAgICBFdmFzX09iamVjdCogbV9ld2tGcmFtZTsKIH07CiAK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfY29va2llcy5oIGIvU291
cmNlL1dlYktpdC9lZmwvZXdrL2V3a19jb29raWVzLmgKaW5kZXggNDBlNjlkNTZjNGU1ZjViMTEz
MDc4ZTIwNTU0MGRhMjRhYzFmZWVjMC4uMjlhYzEyMTgyYzBmODNmNGE5YTU5Nzk5ZDM4M2JkYmU4
ZDYxNjlkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19jb29raWVzLmgK
KysrIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19jb29raWVzLmgKQEAgLTIxLDYgKzIxLDEy
IEBACiAvKioKICAqIEBmaWxlICAgIGV3a19jb29raWVzLmgKICAqIEBicmllZiAgIFRoZSBFd2sg
Y29va2llcyBBUEkuCisgKgorICogQG5vdGUgSWYgdGhlIGxpYnNvdXAgbmV0d29yayBiYWNrZW5k
IGlzIGJlaW5nIHVzZWQgdGhlIGZ1bmN0aW9ucyBoZXJlIHdpbGwKKyAqIG9ubHkgd29yayB3aXRo
IHRoZSBAYiBkZWZhdWx0IFNvdXBTZXNzaW9uLCB3aGljaCBjYW4gYmUgcmV0cmlldmVkIHdpdGgK
KyAqIGV3a19uZXR3b3JrX2RlZmF1bF9zb3VwX3Nlc3Npb25fZ2V0KCkuIElmIGEgZGlmZmVyZW50
IFNvdXBTZXNzaW9uIGlzIHVzZWQKKyAqIGFuZCBhc3NvY2lhdGVkIHdpdGggYSB2aWV3IHdpdGgg
ZXdrX3ZpZXdfc291cF9zZXNzaW9uX3NldCgpLCBhbGwgY29va2llCisgKiBtYW5hZ2VtZW50IHdp
bGwgaGF2ZSB0byBiZSBkb25lIG1hbnVhbGx5LgogICovCiAKICNpZm5kZWYgZXdrX2Nvb2tpZXNf
aApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19uZXR3b3JrLmggYi9Tb3Vy
Y2UvV2ViS2l0L2VmbC9ld2svZXdrX25ldHdvcmsuaAppbmRleCA2NGZkMTUwODNmY2VjNzg4NGU4
NmVmZDAyM2FmOGQyZTZhNjAxYWNkLi5kYmVjODE1ODQ2NmFmMmZiNTI2YzNhZGU1YWU3ZmZjOWQy
MjEwMmMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX25ldHdvcmsuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX25ldHdvcmsuaApAQCAtMzYsNiArMzYsMTEg
QEAgZXh0ZXJuICJDIiB7CiAgKiBTZXRzIHRoZSBnaXZlbiBwcm94eSBVUkkgdG8gbmV0d29yayBi
YWNrZW5kLgogICoKICAqIEBwYXJhbSBwcm94eSBVUkkgdG8gc2V0CisgKgorICogQG5vdGUgSWYg
dGhlIGxpYnNvdXAgYmFja2VuZCBpcyBiZWluZyB1c2VkLCB0aGlzIGZ1bmN0aW9uIGhhcyBlZmZl
Y3Qgb24KKyAqIHRoZSBAYiBkZWZhdWx0IFNvdXBTZXNzaW9uLCByZXR1cm5lZCBieSBld2tfbmV0
d29ya19kZWZhdWx0X3NvdXBfc2Vzc2lvbl9nZXQoKS4KKyAqIElmIGEgZGlmZmVyZW50IFNvdXBT
ZXNzaW9uIGlzIHVzZWQgYW5kIHBhc3NlZCB0byBld2tfdmlld19zb3VwX3Nlc3Npb25fc2V0KCks
CisgKiB0aGlzIGZ1bmN0aW9uIHdpbGwgbm90IGhhdmUgYW55IGVmZmVjdCBvbiBpdC4KICAqLwog
RUFQSSB2b2lkICAgICAgICAgICAgIGV3a19uZXR3b3JrX3Byb3h5X3VyaV9zZXQoY29uc3QgY2hh
ciAqcHJveHkpOwogCkBAIC00NSw2ICs1MCwxMSBAQCBFQVBJIHZvaWQgICAgICAgICAgICAgZXdr
X25ldHdvcmtfcHJveHlfdXJpX3NldChjb25zdCBjaGFyICpwcm94eSk7CiAgKiBUaGUgcmV0dXJu
ZWQgc3RyaW5nIHNob3VsZCBiZSBmcmVlZCBieSBlaW5hX3N0cmluZ3NoYXJlX2RlbCgpIGFmdGVy
IHVzZS4KICAqCiAgKiBAcmV0dXJuIGN1cnJlbnQgcHJveHkgVVJJIG9yIEBjIDAgaWYgaXQncyBu
b3Qgc2V0CisgKgorICogQG5vdGUgSWYgdGhlIGxpYnNvdXAgYmFja2VuZCBpcyBiZWluZyB1c2Vk
LCB0aGlzIGZ1bmN0aW9uIGhhcyBlZmZlY3Qgb24KKyAqIHRoZSBAYiBkZWZhdWx0IFNvdXBTZXNz
aW9uLCByZXR1cm5lZCBieSBld2tfbmV0d29ya19kZWZhdWx0X3NvdXBfc2Vzc2lvbl9nZXQoKS4K
KyAqIElmIGEgZGlmZmVyZW50IFNvdXBTZXNzaW9uIGlzIHVzZWQgYW5kIHBhc3NlZCB0byBld2tf
dmlld19zb3VwX3Nlc3Npb25fc2V0KCksCisgKiB0aGlzIGZ1bmN0aW9uIHdpbGwgbm90IGhhdmUg
YW55IGVmZmVjdCBvbiBpdC4KICAqLwogRUFQSSBjb25zdCBjaGFyICAgICAgKmV3a19uZXR3b3Jr
X3Byb3h5X3VyaV9nZXQodm9pZCk7CiAKQEAgLTYxLDYgKzcxLDExIEBAIEVBUEkgdm9pZCAgICAg
ICAgICAgICBld2tfbmV0d29ya19zdGF0ZV9ub3RpZmllcl9vbmxpbmVfc2V0KEVpbmFfQm9vbCBv
bmxpbmUpOwogICogQnkgZGVmYXVsdCwgSFRUUFMgY29ubmVjdGlvbnMgYXJlIHBlcmZvcm1lZCBy
ZWdhcmRsZXNzIG9mIHRoZSB2YWxpZGl0eSBvZiB0aGUgY2VydGlmaWNhdGUgcHJvdmlkZWQuCiAg
KgogICogQHNhIGV3a19uZXR3b3JrX3Rsc19jYV9jZXJ0aWZpY2F0ZXNfcGF0aF9zZXQKKyAqCisg
KiBAbm90ZSBJZiB0aGUgbGlic291cCBiYWNrZW5kIGlzIGJlaW5nIHVzZWQsIHRoaXMgZnVuY3Rp
b24gaGFzIGVmZmVjdCBvbgorICogdGhlIEBiIGRlZmF1bHQgU291cFNlc3Npb24sIHJldHVybmVk
IGJ5IGV3a19uZXR3b3JrX2RlZmF1bHRfc291cF9zZXNzaW9uX2dldCgpLgorICogSWYgYSBkaWZm
ZXJlbnQgU291cFNlc3Npb24gaXMgdXNlZCBhbmQgcGFzc2VkIHRvIGV3a192aWV3X3NvdXBfc2Vz
c2lvbl9zZXQoKSwKKyAqIHRoaXMgZnVuY3Rpb24gd2lsbCBub3QgaGF2ZSBhbnkgZWZmZWN0IG9u
IGl0LgogICovCiBFQVBJIEVpbmFfQm9vbCAgICAgICAgZXdrX25ldHdvcmtfdGxzX2NlcnRpZmlj
YXRlX2NoZWNrX2dldCh2b2lkKTsKIApAQCAtNzIsNiArODcsMTEgQEAgRUFQSSBFaW5hX0Jvb2wg
ICAgICAgIGV3a19uZXR3b3JrX3Rsc19jZXJ0aWZpY2F0ZV9jaGVja19nZXQodm9pZCk7CiAgKiBA
cGFyYW0gZW5hYmxlIFdoZXRoZXIgdG8gY2hlY2sgdGhlIHByb3ZpZGVkIGNlcnRpZmljYXRlcyBv
ciBub3QuCiAgKgogICogQHNhIGV3a19uZXR3b3JrX3Rsc19jYV9jZXJ0aWZpY2F0ZXNfcGF0aF9z
ZXQKKyAqCisgKiBAbm90ZSBJZiB0aGUgbGlic291cCBiYWNrZW5kIGlzIGJlaW5nIHVzZWQsIHRo
aXMgZnVuY3Rpb24gaGFzIGVmZmVjdCBvbgorICogdGhlIEBiIGRlZmF1bHQgU291cFNlc3Npb24s
IHJldHVybmVkIGJ5IGV3a19uZXR3b3JrX2RlZmF1bHRfc291cF9zZXNzaW9uX2dldCgpLgorICog
SWYgYSBkaWZmZXJlbnQgU291cFNlc3Npb24gaXMgdXNlZCBhbmQgcGFzc2VkIHRvIGV3a192aWV3
X3NvdXBfc2Vzc2lvbl9zZXQoKSwKKyAqIHRoaXMgZnVuY3Rpb24gd2lsbCBub3QgaGF2ZSBhbnkg
ZWZmZWN0IG9uIGl0LgogICovCiBFQVBJIHZvaWQgICAgICAgICAgICAgZXdrX25ldHdvcmtfdGxz
X2NlcnRpZmljYXRlX2NoZWNrX3NldChFaW5hX0Jvb2wgZW5hYmxlKTsKIApAQCAtODgsNiArMTA4
LDExIEBAIEVBUEkgdm9pZCAgICAgICAgICAgICBld2tfbmV0d29ya190bHNfY2VydGlmaWNhdGVf
Y2hlY2tfc2V0KEVpbmFfQm9vbCBlbmFibGUpOwogICogQnkgZGVmYXVsdCwgdGhlIHBhdGggaXMg
bm90IHNldCwgc28gYWxsIGNlcnRpZmljYXRlcyBhcmUgY29uc2lkZXJlZCBhcyBub3Qgc2lnbmVk
IGJ5IGEgdHJ1c3RlZCByb290IENBLgogICoKICAqIEBzYSBld2tfbmV0d29ya190bHNfY2VydGlm
aWNhdGVfY2hlY2tfc2V0CisgKgorICogQG5vdGUgSWYgdGhlIGxpYnNvdXAgYmFja2VuZCBpcyBi
ZWluZyB1c2VkLCB0aGlzIGZ1bmN0aW9uIGhhcyBlZmZlY3Qgb24KKyAqIHRoZSBAYiBkZWZhdWx0
IFNvdXBTZXNzaW9uLCByZXR1cm5lZCBieSBld2tfbmV0d29ya19kZWZhdWx0X3NvdXBfc2Vzc2lv
bl9nZXQoKS4KKyAqIElmIGEgZGlmZmVyZW50IFNvdXBTZXNzaW9uIGlzIHVzZWQgYW5kIHBhc3Nl
ZCB0byBld2tfdmlld19zb3VwX3Nlc3Npb25fc2V0KCksCisgKiB0aGlzIGZ1bmN0aW9uIHdpbGwg
bm90IGhhdmUgYW55IGVmZmVjdCBvbiBpdC4KICAqLwogRUFQSSBjb25zdCBjaGFyICAgICAgKmV3
a19uZXR3b3JrX3Rsc19jYV9jZXJ0aWZpY2F0ZXNfcGF0aF9nZXQodm9pZCk7CiAKQEAgLTEwNiw2
ICsxMzEsMTEgQEAgRUFQSSBjb25zdCBjaGFyICAgICAgKmV3a19uZXR3b3JrX3Rsc19jYV9jZXJ0
aWZpY2F0ZXNfcGF0aF9nZXQodm9pZCk7CiAgKiBAcGFyYW0gcGF0aCBUaGUgcGF0aCB0byB0aGUg
Y2VydGlmaWNhdGUgYnVuZGxlLgogICoKICAqIEBzYSBld2tfbmV0d29ya190bHNfY2VydGlmaWNh
dGVfY2hlY2tfc2V0CisgKgorICogQG5vdGUgSWYgdGhlIGxpYnNvdXAgYmFja2VuZCBpcyBiZWlu
ZyB1c2VkLCB0aGlzIGZ1bmN0aW9uIGhhcyBlZmZlY3Qgb24KKyAqIHRoZSBAYiBkZWZhdWx0IFNv
dXBTZXNzaW9uLCByZXR1cm5lZCBieSBld2tfbmV0d29ya19kZWZhdWx0X3NvdXBfc2Vzc2lvbl9n
ZXQoKS4KKyAqIElmIGEgZGlmZmVyZW50IFNvdXBTZXNzaW9uIGlzIHVzZWQgYW5kIHBhc3NlZCB0
byBld2tfdmlld19zb3VwX3Nlc3Npb25fc2V0KCksCisgKiB0aGlzIGZ1bmN0aW9uIHdpbGwgbm90
IGhhdmUgYW55IGVmZmVjdCBvbiBpdC4KICAqLwogRUFQSSB2b2lkICAgICAgICAgICAgIGV3a19u
ZXR3b3JrX3Rsc19jYV9jZXJ0aWZpY2F0ZXNfcGF0aF9zZXQoY29uc3QgY2hhciAqcGF0aCk7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuY3BwCmluZGV4IDk3ODljMWMzMGQyOTNhMGNmMjQ1MDcy
MTZiMjgyOTNlOWQwZmJhODEuLmFhZTk1NTFlZjg4MDY2MzQ5YWNjOGI3NTkyZTI2MzA4YmIwYTRj
YzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3LmNwcApAQCAtNTAsNiArNTAsNyBAQAogI2lu
Y2x1ZGUgIlByb2dyZXNzVHJhY2tlci5oIgogI2luY2x1ZGUgIlJlZlB0ckNhaXJvLmgiCiAjaW5j
bHVkZSAiUmVuZGVyVGhlbWUuaCIKKyNpbmNsdWRlICJSZXNvdXJjZUhhbmRsZS5oIgogI2luY2x1
ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVkZSAiY19pbnN0YW5jZS5oIgogI2luY2x1ZGUgImV3a19s
b2dnaW5nLmgiCkBAIC01OSw2ICs2MCw3IEBACiAjaW5jbHVkZSA8RXZhcy5oPgogI2luY2x1ZGUg
PGVpbmFfc2FmZXR5X2NoZWNrcy5oPgogI2luY2x1ZGUgPGludHR5cGVzLmg+CisjaW5jbHVkZSA8
bGlic291cC9zb3VwLXNlc3Npb24uaD4KICNpbmNsdWRlIDxsaW1pdHM+CiAjaW5jbHVkZSA8bWF0
aC5oPgogI2luY2x1ZGUgPHN5cy90aW1lLmg+CkBAIC0yMTEsNiArMjEzLDcgQEAgc3RydWN0IF9F
d2tfVmlld19Qcml2YXRlX0RhdGEgewogICAgICAgICB9IGNlbnRlcjsKICAgICAgICAgRWNvcmVf
QW5pbWF0b3IqIGFuaW1hdG9yOwogICAgIH0gYW5pbWF0ZWRab29tOworICAgIFNvdXBTZXNzaW9u
KiBzb3VwU2Vzc2lvbjsKIH07CiAKICNpZm5kZWYgRVdLX1RZUEVfQ0hFQ0sKQEAgLTcxNCw2ICs3
MTcsOCBAQCBzdGF0aWMgRXdrX1ZpZXdfUHJpdmF0ZV9EYXRhKiBfZXdrX3ZpZXdfcHJpdl9uZXco
RXdrX1ZpZXdfU21hcnRfRGF0YSogc21hcnREYXRhKQogICAgICAgICBnb3RvIGVycm9yX2hpc3Rv
cnk7CiAgICAgfQogCisgICAgcHJpdi0+c291cFNlc3Npb24gPSBXZWJDb3JlOjpSZXNvdXJjZUhh
bmRsZTo6ZGVmYXVsdFNlc3Npb24oKTsKKwogICAgIHJldHVybiBwcml2OwogCiBlcnJvcl9oaXN0
b3J5OgpAQCAtMzkxMyw2ICszOTE4LDI1IEBAIEV3a19QYWdlX1Zpc2liaWxpdHlfU3RhdGUgZXdr
X3ZpZXdfdmlzaWJpbGl0eV9zdGF0ZV9nZXQoY29uc3QgRXZhc19PYmplY3QqIGV3a1ZpCiAjZW5k
aWYKIH0KIAorU291cFNlc3Npb24qIGV3a192aWV3X3NvdXBfc2Vzc2lvbl9nZXQoY29uc3QgRXZh
c19PYmplY3QqIGV3a1ZpZXcpCit7CisgICAgRVdLX1ZJRVdfU0RfR0VUX09SX1JFVFVSTihld2tW
aWV3LCBzbWFydERhdGEsIDApOworICAgIEVXS19WSUVXX1BSSVZfR0VUX09SX1JFVFVSTihzbWFy
dERhdGEsIHByaXYsIDApOworICAgIHJldHVybiBwcml2LT5zb3VwU2Vzc2lvbjsKK30KKwordm9p
ZCBld2tfdmlld19zb3VwX3Nlc3Npb25fc2V0KEV2YXNfT2JqZWN0KiBld2tWaWV3LCBTb3VwU2Vz
c2lvbiogc2Vzc2lvbikKK3sKKyAgICBFV0tfVklFV19TRF9HRVRfT1JfUkVUVVJOKGV3a1ZpZXcs
IHNtYXJ0RGF0YSk7CisgICAgRVdLX1ZJRVdfUFJJVl9HRVRfT1JfUkVUVVJOKHNtYXJ0RGF0YSwg
cHJpdik7CisgICAgaWYgKCFTT1VQX0lTX1NFU1NJT05fQVNZTkMoc2Vzc2lvbikpIHsKKyAgICAg
ICAgRVJSKCJXZWJLaXQgcmVxdWlyZXMgYW4gU291cFNlc3Npb25Bc3luYyB0byB3b3JrIHByb3Bl
cmx5LCBidXQgIgorICAgICAgICAgICAgImEgU291cFNlc3Npb25TeW5jIHdhcyBwcm92aWRlZC4i
KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBwcml2LT5zb3VwU2Vzc2lvbiA9IHNlc3Np
b247Cit9CisKIG5hbWVzcGFjZSBFV0tQcml2YXRlIHsKIAogV2ViQ29yZTo6UGFnZSAqY29yZVBh
Z2UoY29uc3QgRXZhc19PYmplY3QgKmV3a1ZpZXcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L2VmbC9ld2svZXdrX3ZpZXcuaCBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5oCmlu
ZGV4IGQzNDc0YTY0YjM5M2Y2NWUxMDNjNDliMDJiNjU1NDM1ODNiNTNkNmMuLjdkZTBlNDYyZjE3
YzVhYWEzNDI4NzYzMmMyZDM0ZWYxNTQ3YTczN2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
ZWZsL2V3ay9ld2tfdmlldy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5o
CkBAIC05NSw2ICs5NSw3IEBACiAKICNpbmNsdWRlIDxFdmFzLmg+CiAjaW5jbHVkZSA8Y2Fpcm8u
aD4KKyNpbmNsdWRlIDxsaWJzb3VwL3NvdXAtc2Vzc2lvbi5oPgogCiAjaWZkZWYgX19jcGx1c3Bs
dXMKIGV4dGVybiAiQyIgewpAQCAtMjMzNSw2ICsyMzM2LDM0IEBAIEVBUEkgRWluYV9Cb29sIGV3
a192aWV3X21peGVkX2NvbnRlbnRfZGlzcGxheWVkX2dldChjb25zdCBFdmFzX09iamVjdCAqbyk7
CiAgKi8KIEVBUEkgRWluYV9Cb29sIGV3a192aWV3X21peGVkX2NvbnRlbnRfcnVuX2dldChjb25z
dCBFdmFzX09iamVjdCAqbyk7CiAKKy8qKgorICogUmV0dXJucyB0aGUgU291cFNlc3Npb24gYXNz
b2NpYXRlZCB3aXRoIHRoaXMgdmlldy4KKyAqCisgKiBCeSBkZWZhdWx0LCBhbGwgdmlld3Mgc2hh
cmUgdGhlIHNhbWUsIGRlZmF1bHQgc291cCBzZXNzaW9uIGFsc28gYXZhaWxhYmxlCisgKiBieSBj
YWxsaW5nIGV3a19uZXR3b3JrX2RlZmF1bHRfc291cF9zZXNzaW9uX2dldC4KKyAqCisgKiBAcGFy
YW0gbyBUaGUgdmlldyB0byBxdWVyeS4KKyAqCisgKiBAc2EgZXdrX3ZpZXdfc291cF9zZXNzaW9u
X3NldCwgZXdrX25ldHdvcmtfZGVmYXVsdF9zb3VwX3Nlc3Npb25fZ2V0CisgKi8KK0VBUEkgU291
cFNlc3Npb24qIGV3a192aWV3X3NvdXBfc2Vzc2lvbl9nZXQoY29uc3QgRXZhc19PYmplY3QgKm8p
OworCisvKioKKyAqIEFzc29jaWF0ZXMgYSBuZXcgU291cFNlc3Npb24gd2l0aCB0aGlzIHZpZXcu
CisgKgorICogT25seSBzZXNzaW9ucyBvZiB0eXBlIFNvdXBTZXNzaW9uQXN5bmMgYXJlIHN1cHBv
cnRlZC4KKyAqCisgKiBAbm90ZSBDaGFuZ2luZyB0aGUgU291cFNlc3Npb24gc2hvdWxkIG5vdCBi
ZSBuZWVkZWQgaW4gbW9zdCBjYXNlcy4gSWYKKyAqICAgICAgIGEgZGlmZmVyZW50IFNvdXBTZXNz
aW9uIGlzIHVzZWQsIHRoZSBjb29raWUgbWFuYWdlbWVudCBhbmQgc29tZQorICogICAgICAgbmV0
d29yayBmdW5jdGlvbnMgaW4gZXdrIHdpbGwgbm90IGhhdmUgYW55IGVmZmVjdCBvbiBpdC4KKyAq
CisgKiBAcGFyYW0gbyBUaGUgdmlldyB0byBjaGFuZ2UuCisgKiBAcGFyYW0gc2Vzc2lvbiBUaGUg
bmV3IFNvdXBTZXNzaW9uLgorICoKKyAqIEBzYSBld2tfdmlld19zb3VwX3Nlc3Npb25fZ2V0LCBl
d2tfbmV0d29ya19kZWZhdWx0X3NvdXBfc2Vzc2lvbl9nZXQKKyAqLworRUFQSSB2b2lkIGV3a192
aWV3X3NvdXBfc2Vzc2lvbl9zZXQoRXZhc19PYmplY3QgKm8sIFNvdXBTZXNzaW9uICpzZXNzaW9u
KTsKKwogI2lmZGVmIF9fY3BsdXNwbHVzCiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvZ3RrL0dOVW1ha2VmaWxlLmFtIGIvU291cmNlL1dlYktpdC9ndGsvR05VbWFrZWZpbGUu
YW0KaW5kZXggMzhkMmJiMDJhMjg4NWRhMzkwOGFiYjhmMzY2MTNkMTE5NDA5YzJiNy4uNTY3ZDc5
YmI5MDM1NGZkMWRhNDI4NGM1ZWZhYmJjZmFjNjFiYWVhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9ndGsvR05VbWFrZWZpbGUuYW0KKysrIGIvU291cmNlL1dlYktpdC9ndGsvR05VbWFrZWZp
bGUuYW0KQEAgLTIwNCw2ICsyMDQsNyBAQCB3ZWJraXRndGtfc291cmNlcyArPSBcCiAJU291cmNl
L1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50R3RrLmggXAogCVNvdXJjZS9X
ZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNwcCBcCiAJU291
cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuaCBcCisJ
U291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRnJhbWVOZXR3b3JraW5nQ29udGV4dEd0
ay5jcHAgXAogCVNvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTmV0d29ya2lu
Z0NvbnRleHRHdGsuaCBcCiAJU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRnVsbHNj
cmVlblZpZGVvQ29udHJvbGxlci5jcHAgXAogCVNvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBw
b3J0L0Z1bGxzY3JlZW5WaWRlb0NvbnRyb2xsZXIuaCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9GcmFtZU5ldHdvcmtpbmdDb250ZXh0R3RrLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTmV0d29ya2luZ0NvbnRleHRHdGsu
Y3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjRiOWQxMjQ5MTMyNjk2Njc4Zjc0M2RkYzE4MzE1ZWRkZmYzMjIxYzgK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9GcmFt
ZU5ldHdvcmtpbmdDb250ZXh0R3RrLmNwcApAQCAtMCwwICsxLDM1IEBACisvKgorICAgIENvcHly
aWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWll
cykKKyAgICBDb3B5cmlnaHQgKEMpIDIwMTIgUHJvRlVTSU9OIGVtYmVkZGVkIHN5c3RlbXMKKwor
ICAgIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBp
dCBhbmQvb3IKKyAgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFy
eSBHZW5lcmFsIFB1YmxpYworICAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNv
ZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICAgIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwg
b3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworICAgIFRoaXMgbGlicmFy
eSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICAg
IGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJh
bnR5IG9mCisgICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ
VVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAgICBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2Ug
Zm9yIG1vcmUgZGV0YWlscy4KKworICAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkg
b2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAgICBhbG9uZyB3aXRo
IHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0
bworICAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0
cmVldCwgRmlmdGggRmxvb3IsCisgICAgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisqLwor
CisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRnJhbWVOZXR3b3JraW5nQ29udGV4dEd0
ay5oIgorCisjaW5jbHVkZSAiUmVzb3VyY2VIYW5kbGUuaCIKKwordXNpbmcgbmFtZXNwYWNlIFdl
YkNvcmU7CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitTb3VwU2Vzc2lvbiogRnJhbWVOZXR3b3Jr
aW5nQ29udGV4dEd0azo6c291cFNlc3Npb24oKSBjb25zdAoreworICAgIHJldHVybiBSZXNvdXJj
ZUhhbmRsZTo6ZGVmYXVsdFNlc3Npb24oKTsKK30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRnJhbWVOZXR3b3JraW5nQ29udGV4dEd0ay5oIGIvU291
cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRnJhbWVOZXR3b3JraW5nQ29udGV4dEd0ay5o
CmluZGV4IDhlNGMyMTQ4ZDIxNmJiZTRjNWVmMDNiZGExMWQ0MjBiMzQ2YTQyNmMuLmE1OWE5NDA5
OWFiZmQxYzdjMzRiZTg0ZjVjMDg0MzQxNDhlNzUzODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTmV0d29ya2luZ0NvbnRleHRHdGsuaAorKysgYi9T
b3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9GcmFtZU5ldHdvcmtpbmdDb250ZXh0R3Rr
LmgKQEAgLTMyLDYgKzMyLDcgQEAgcHVibGljOgogICAgIH0KIAogICAgIFdlYkNvcmU6OkZyYW1l
KiBjb3JlRnJhbWUoKSBjb25zdCB7IHJldHVybiBmcmFtZSgpOyB9CisgICAgdmlydHVhbCBTb3Vw
U2Vzc2lvbiogc291cFNlc3Npb24oKSBjb25zdDsKIAogcHJpdmF0ZToKICAgICBGcmFtZU5ldHdv
cmtpbmdDb250ZXh0R3RrKFdlYkNvcmU6OkZyYW1lKiBmcmFtZSkK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>127269</attachid>
            <date>2012-02-15 16:20:49 -0800</date>
            <delta_ts>2012-02-15 16:20:49 -0800</delta_ts>
            <desc>Patch for landing with reviewer, third time is a charm</desc>
            <filename>bug-77341-20120215222202.patch</filename>
            <type>text/plain</type>
            <size>29640</size>
            <attacher name="Raphael Kubo da Costa (:rakuco)">rakuco</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA3ODA5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDY4YWJiYzI1YmU0NWYw
MDdhMzE4YTU4NGQyNzkyM2ZlNmE2YzRkMS4uYzYxNjQ5ZGI1ZmJhNzdkZWY3ZTVjMjc1ZjBkYWVl
YWE2OGEzY2E0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUxIEBACisyMDEyLTAxLTMxICBSYXBo
YWVsIEt1Ym8gZGEgQ29zdGEgIDxrdWJvQHByb2Z1c2lvbi5tb2JpPgorCisgICAgICAgIFtzb3Vw
XSBBZGQgc3VwcG9ydCBmb3IgbXVsdGlwbGUgU291cFNlc3Npb25zLgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzczNDEKKworICAgICAgICBSZXZpZXdl
ZCBieSBHdXN0YXZvIE5vcm9uaGEgU2lsdmEuCisKKyAgICAgICAgTWFrZSB0aGUgbGlic291cCBu
ZXR3b3JrIGJhY2tlbmQgc3VwcG9ydCBtdWx0aXBsZSBTb3VwU2Vzc2lvbnMuIFRoaXMgaXMKKyAg
ICAgICAgYWNjb21wbGlzaGVkIGJ5IHVzaW5nIHRoZSBOZXR3b3JraW5nQ29udGV4dCBjbGFzc2Vz
LCB3aGljaCBub3cgaGF2ZSBhCisgICAgICAgIGBzb3VwU2Vzc2lvbigpJyBtZXRob2Qgd2hlbiB0
aGUgbGlic291cCBiYWNrZW5kIGlzIGJlaW5nIHVzZWQuCisKKyAgICAgICAgbGlic291cCdzIFJl
c291cmNlSGFuZGxlIGltcGxlbWVudGF0aW9uIG5vdyByZXRyaWV2ZXMgdGhlIFNvdXBTZXNzaW9u
CisgICAgICAgIHZpYSB0aGUgTmV0d29ya2luZ0NvbnRleHQgaXQgcmVjZWl2ZXMgaW5zdGVhZCBv
ZiByZWx5aW5nIG9uCisgICAgICAgIGRlZmF1bHRTZXNzaW9uKCkuIGRlZmF1bHRTZXNzaW9uKCkg
aXMgc3RpbGwgdXNlZCB3aGVuIGEgbnVsbAorICAgICAgICBOZXR3b3JraW5nQ29udGV4dCBpcyBw
YXNzZWQgdG8gUmVzb3VyY2VIYW5kbGU6OnN0YXJ0IChmb3IgZXhhbXBsZSwgdmlhCisgICAgICAg
IHdlYmtpdF9kb3dubG9hZF9zdGFydCkuCisKKyAgICAgICAgVGhlIENvb2tpZUphciBpbXBsZW1l
bnRhdGlvbiByZXRyaWV2ZXMgdGhlIFNvdXBTZXNzaW9uIGZyb20gdGhlCisgICAgICAgIE5ldHdv
cmtpbmdDb250ZXh0IGFzIG11Y2ggYXMgcG9zc2libGUgYXMgd2VsbCAtLSB0aGUgZnVuY3Rpb25z
IHVzZWQgYnkKKyAgICAgICAgV2ViS2l0MiBjb3VsZCBub3QgYmUgY29udmVydGVkLCB0aG91Z2gs
IGFzIHRoZXkgc2VlbSB0byBhc3N1bWUgdGhlcmUgaXMKKyAgICAgICAgb25seSBvbmUgc2hhcmVk
IGNvb2tpZSBqYXIuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCBjb3ZlcmVkIGJ5IHRoZSBleGlz
dGluZyBvbmVzLgorCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9OZXR3b3JraW5nQ29udGV4
dC5oOgorICAgICAgICAoTmV0d29ya2luZ0NvbnRleHQpOiBBZGQgc291cFNlc3Npb24oKSBtZXRo
b2QgaWYgVVNFKFNPVVApIGlzIHNldC4KKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL1Jlc291
cmNlSGFuZGxlSW50ZXJuYWwuaDoKKyAgICAgICAgKFJlc291cmNlSGFuZGxlSW50ZXJuYWwpOgor
ICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvc291cC9Db29raWVKYXJTb3VwLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OmNvb2tpZUphckZvckRvY3VtZW50KToKKyAgICAgICAgKFdlYkNvcmUpOgor
ICAgICAgICAoV2ViQ29yZTo6ZGVmYXVsdENvb2tpZUphcik6CisgICAgICAgIChXZWJDb3JlOjpz
ZXRDb29raWVzKToKKyAgICAgICAgKFdlYkNvcmU6OmNvb2tpZXMpOgorICAgICAgICAoV2ViQ29y
ZTo6Y29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6Y29v
a2llc0VuYWJsZWQpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUhh
bmRsZVNvdXAuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGVJbnRlcm5hbDo6
c291cFNlc3Npb24pOiBBZGQgbWV0aG9kIHRvIHJldHJpZXZlCisgICAgICAgIGEgU291cFNlc3Np
b24gZnJvbSBhIE5ldHdvcmtpbmdDb250ZXh0IGFuZCBmYWxsYmFjayB0byBkZWZhdWx0U2Vzc2lv
bigpCisgICAgICAgIGlmIHRoZXJlJ3Mgbm8gdmFsaWQgTmV0d29ya2luZ0NvbnRleHQuCisgICAg
ICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OmVuc3VyZVNlc3Npb25Jc0luaXRpYWxp
emVkKTogT25seSBjaGFuZ2Ugb3IgdXNlIHRoZSBkZWZhdWx0CisgICAgICAgIGNvb2tpZSBqYXIg
aWYgdGhlIFNvdXBTZXNzaW9uIGJlaW5nIGNoYW5nZWQgaXMgdGhlIGRlZmF1bHQgb25lLgorICAg
ICAgICAoV2ViQ29yZTo6c2VuZFJlcXVlc3RDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpz
dGFydEhUVFBSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpjYW5j
ZWwpOgorICAgICAgICAoV2ViQ29yZTo6c3RhcnROb25IVFRQUmVxdWVzdCk6CisKIDIwMTItMDIt
MTUgIFl1cnkgU2VtaWtoYXRza3kgIDx5dXJ5c0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVW5y
ZXZpZXdlZC4gQnVpbGQgZml4IGFmdGVyIHIxMDc4MDYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvZWZsL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZwppbmRleCAwZGE4
MWQ5MzMzZTM5OGNiM2YyYjUyMjRlNjJjZDNlZDI2YTQwMjIzLi5hMTI0ZmNkM2NjMGEyMTQ3MjNi
M2IyMGE0YTQzZTU4M2NkM2M2NmQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDIgQEAK
KzIwMTItMDEtMzEgIFJhcGhhZWwgS3VibyBkYSBDb3N0YSAgPGt1Ym9AcHJvZnVzaW9uLm1vYmk+
CisKKyAgICAgICAgW3NvdXBdIEFkZCBzdXBwb3J0IGZvciBtdWx0aXBsZSBTb3VwU2Vzc2lvbnMu
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NzM0MQor
CisgICAgICAgIEFkZCB0aGUgbmVjZXNzYXJ5IGluZnJhc3RydWN0dXJlIHRvIHN1cHBvcnQgbXVs
dGlwbGUgU291cFNlc3Npb25zLiBFYWNoCisgICAgICAgIFdlYlZpZXcgbm93IGhhcyBhICJzZXNz
aW9uIiBwcm9wZXJ0eSwgd2hpY2ggZGVmYXVsdHMgdG8KKyAgICAgICAgUmVzb3VyY2VIYW5kbGU6
OmRlZmF1bHRTZXNzaW9uKCkgYW5kIGNhbiBiZSBjaGFuZ2VkIHRvIGFub3RoZXIKKyAgICAgICAg
U291cFNlc3Npb24gYnkgdGhlIHVzZXIuCisKKyAgICAgICAgU29tZSBBUEkgaW4gZXdrX25ldHdv
cmsgYW5kIGV3a192aWV3IHdoaWNoIHJlcXVpcmVkIFNvdXBTZXNzaW9uIHRvIGJlIGEKKyAgICAg
ICAgdmFsaWQgdHlwZSBpbiB0aGUgaGVhZGVycyBoYXMgbm93IGJlZW4gbW92ZWQgaW5zaWRlICNp
ZiBVU0UoU09VUCkKKyAgICAgICAgaWZkZWZzIHNvIHdlIGNhbiBhY3R1YWxseSB0aGUgcmVxdWly
ZWQgU291cCBoZWFkZXIgYW5kIGF2b2lkIGJ1aWxkCisgICAgICAgIHByb2JsZW1zIHdpdGggZHVw
bGljYXRlIHR5cGVkZWZzLgorCisgICAgICAgICogQ01ha2VMaXN0c0VmbC50eHQ6CisgICAgICAg
ICogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRFZmwuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6RnJhbWVMb2FkZXJDbGllbnRFZmw6OmNyZWF0ZU5ldHdvcmtpbmdDb250ZXh0KToKKyAg
ICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFtZU5ldHdvcmtpbmdDb250ZXh0RWZsLmNwcDogQ29w
aWVkIGZyb20gU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRnJhbWVOZXR3b3JraW5n
Q29udGV4dEVmbC5oLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpGcmFt
ZU5ldHdvcmtpbmdDb250ZXh0RWZsOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVO
ZXR3b3JraW5nQ29udGV4dEVmbDo6RnJhbWVOZXR3b3JraW5nQ29udGV4dEVmbCk6CisgICAgICAg
IChXZWJDb3JlOjpGcmFtZU5ldHdvcmtpbmdDb250ZXh0RWZsOjpzb3VwU2Vzc2lvbik6CisgICAg
ICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVOZXR3b3JraW5nQ29udGV4dEVmbC5oOgorICAgICAg
ICAoRnJhbWVOZXR3b3JraW5nQ29udGV4dEVmbCk6CisgICAgICAgICogZXdrL2V3a19jb29raWVz
Lmg6IE1lbnRpb24gdGhpcyBBUEkgaXMgb25seSB2YWxpZCB3aXRoIHRoZQorICAgICAgICBkZWZh
dWx0IFNvdXBTZXNzaW9uLgorICAgICAgICAqIGV3ay9ld2tfbmV0d29yay5jcHA6CisgICAgICAg
IChld2tfbmV0d29ya19kZWZhdWx0X3NvdXBfc2Vzc2lvbl9nZXQpOiBEZWZpbmUgb25seSBpZiBV
U0UoU09VUCkgaXMgc2V0LgorICAgICAgICAqIGV3ay9ld2tfbmV0d29yay5oOiBEaXR0bywgYW5k
IG1lbnRpb24gdGhpcyBBUEkgaXMgb25seSB2YWxpZCB3aXRoIHRoZQorICAgICAgICBkZWZhdWx0
IFNvdXBTZXNzaW9uLgorICAgICAgICAqIGV3ay9ld2tfdmlldy5jcHA6CisgICAgICAgIChfRXdr
X1ZpZXdfUHJpdmF0ZV9EYXRhKToKKyAgICAgICAgKF9ld2tfdmlld19wcml2X25ldyk6CisgICAg
ICAgIChld2tfdmlld19zb3VwX3Nlc3Npb25fZ2V0KToKKyAgICAgICAgKGV3a192aWV3X3NvdXBf
c2Vzc2lvbl9zZXQpOgorICAgICAgICAqIGV3ay9ld2tfdmlldy5oOgorICAgICAgICAoKToKKwog
MjAxMi0wMi0xMyAgUmFwaGFlbCBLdWJvIGRhIENvc3RhICA8a3Vib0Bwcm9mdXNpb24ubW9iaT4K
IAogICAgICAgICBbQ01ha2VdIE1lcmdlIFdlYktpdEVmbC5jbWFrZSBpbnRvIEZpbmRFRkwuY21h
a2UuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0L2d0ay9DaGFuZ2VMb2cKaW5kZXggY2ZlODIzZTNlZmY3NDkwNjFlNjJkZDY5MjViMTVlZGYy
MWY3MmJjNi4uNDhmNWU4NzRlNmY2N2UxNTY1ZDc4MGJhOWRiODc3MmRiZjk4NGExOCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvZ3Rr
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDEyLTAxLTMxICBSYXBoYWVsIEt1Ym8gZGEg
Q29zdGEgIDxrdWJvQHByb2Z1c2lvbi5tb2JpPgorCisgICAgICAgIFtzb3VwXSBBZGQgc3VwcG9y
dCBmb3IgbXVsdGlwbGUgU291cFNlc3Npb25zLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzczNDEKKworICAgICAgICBSZXZpZXdlZCBieSBHdXN0YXZv
IE5vcm9uaGEgU2lsdmEuCisKKyAgICAgICAgQWRhcHQgdG8gdGhlIGNoYW5nZXMgdG8gRnJhbWVO
ZXR3b3JraW5nQ29udGV4dCBpbiBXZWJDb3JlLgorCisgICAgICAgICogR05VbWFrZWZpbGUuYW06
CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVOZXR3b3JraW5nQ29udGV4dEd0ay5jcHA6
IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTmV0d29y
a2luZ0NvbnRleHRHdGsuaC4KKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChXZWJLaXQ6OkZy
YW1lTmV0d29ya2luZ0NvbnRleHRHdGs6OnNvdXBTZXNzaW9uKTogQWx3YXlzIHJldHVybiBSZXNv
dXJjZUhhbmRsZTo6ZGVmYXVsdFNlc3Npb24oKS4KKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9G
cmFtZU5ldHdvcmtpbmdDb250ZXh0R3RrLmg6CisgICAgICAgIChGcmFtZU5ldHdvcmtpbmdDb250
ZXh0R3RrKToKKwogMjAxMi0wMi0xNSAgTm8nYW0gUm9zZW50aGFsICA8bm9hbS5yb3NlbnRoYWxA
bm9raWEuY29tPgogCiAgICAgICAgIFtUZXhtYXBdIERpdmlkZSBUZXh0dXJlTWFwcGVyTm9kZS5j
cHAgdG8gMyBmaWxlcy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvTmV0d29ya2luZ0NvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
TmV0d29ya2luZ0NvbnRleHQuaAppbmRleCBmMmIxMGM0NDViZDA1N2Q2MzQ0NzYwZjg5N2MzNGNm
NWJlYmIyODAxLi4wNDYwODVjMmY2YjQ1ZmJkYzExNGI5YTYwZTFhYWM1OWIzNWM2OTYwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtpbmdDb250ZXh0
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3JraW5nQ29udGV4
dC5oCkBAIC0zNSw2ICszNSwxMCBAQCBjbGFzcyBRVXJsOwogUVRfRU5EX05BTUVTUEFDRQogI2Vu
ZGlmCiAKKyNpZiBVU0UoU09VUCkKK3R5cGVkZWYgc3RydWN0IF9Tb3VwU2Vzc2lvbiBTb3VwU2Vz
c2lvbjsKKyNlbmRpZgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFJlc291cmNlRXJy
b3I7CkBAIC02Niw2ICs3MCwxMCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBSZXNvdXJjZUVycm9y
IGJsb2NrZWRFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmKSBjb25zdCA9IDA7CiAjZW5kaWYK
IAorI2lmIFVTRShTT1VQKQorICAgIHZpcnR1YWwgU291cFNlc3Npb24qIHNvdXBTZXNzaW9uKCkg
Y29uc3QgPSAwOworI2VuZGlmCisKIHByb3RlY3RlZDoKICAgICBOZXR3b3JraW5nQ29udGV4dCgp
IHsgfQogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVz
b3VyY2VIYW5kbGVJbnRlcm5hbC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9S
ZXNvdXJjZUhhbmRsZUludGVybmFsLmgKaW5kZXggODc3OTk3OTYzODg0YmRkYmQ3YTc2YzA2YTI5
ZWY2ODFkZWFkZjE2Ni4uYmM3OWVkMTJiNmNhZmEyNjJlZDQ5YmVlZjk4Yjk3NzRjNWZhNmM4MCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRs
ZUludGVybmFsLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJj
ZUhhbmRsZUludGVybmFsLmgKQEAgLTE4OSw2ICsxODksNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAgICAgICAgIHVuc2lnbmVkIGxvbmcgbV9ib2R5U2l6ZTsKICAgICAgICAgdW5zaWduZWQgbG9u
ZyBtX2JvZHlEYXRhU2VudDsKICAgICAgICAgUmVmUHRyPE5ldHdvcmtpbmdDb250ZXh0PiBtX2Nv
bnRleHQ7CisgICAgICAgIFNvdXBTZXNzaW9uKiBzb3VwU2Vzc2lvbigpOwogI2VuZGlmCiAjaWYg
UExBVEZPUk0oUVQpCiAgICAgICAgIFFOZXR3b3JrUmVwbHlIYW5kbGVyKiBtX2pvYjsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9Db29raWVKYXJTb3Vw
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9Db29raWVKYXJTb3Vw
LmNwcAppbmRleCBmMTcwZDJkNTRlNzFiZjk2MGM2OWZlMjFjMjk2MTIyNDVhM2ZiOGM3Li4zYjhh
NTQ0Y2ZhNTQ0NGM1OTc1ZDk2OGY1MTk1ZjA2MmU3YzcxODFkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvQ29va2llSmFyU291cC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL0Nvb2tpZUphclNvdXAuY3BwCkBAIC0y
Myw4ICsyMywxMiBAQAogCiAjaW5jbHVkZSAiQ29va2llLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQu
aCIKKyNpbmNsdWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIkZyYW1lTG9hZGVyLmgiCiAjaW5jbHVk
ZSAiR093blB0clNvdXAuaCIKICNpbmNsdWRlICJLVVJMLmgiCisjaW5jbHVkZSAiTmV0d29ya2lu
Z0NvbnRleHQuaCIKKyNpbmNsdWRlICJSZXNvdXJjZUhhbmRsZS5oIgogI2luY2x1ZGUgPHd0Zi90
ZXh0L0NTdHJpbmcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMzIsNiArMzYsMjIgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogc3RhdGljIGJvb2wgY29va2llc0luaXRpYWxpemVkOwogc3Rh
dGljIFNvdXBDb29raWVKYXIqIGNvb2tpZUphcjsKIAorc3RhdGljIFNvdXBDb29raWVKYXIqIGNv
b2tpZUphckZvckRvY3VtZW50KGNvbnN0IERvY3VtZW50KiBkb2N1bWVudCkKK3sKKyAgICBpZiAo
IWRvY3VtZW50KQorICAgICAgICByZXR1cm4gMDsKKyAgICBjb25zdCBGcmFtZSogZnJhbWUgPSBk
b2N1bWVudC0+ZnJhbWUoKTsKKyAgICBpZiAoIWZyYW1lKQorICAgICAgICByZXR1cm4gMDsKKyAg
ICBjb25zdCBGcmFtZUxvYWRlciogbG9hZGVyID0gZnJhbWUtPmxvYWRlcigpOworICAgIGlmICgh
bG9hZGVyKQorICAgICAgICByZXR1cm4gMDsKKyAgICBjb25zdCBOZXR3b3JraW5nQ29udGV4dCog
Y29udGV4dCA9IGxvYWRlci0+bmV0d29ya2luZ0NvbnRleHQoKTsKKyAgICBpZiAoIWNvbnRleHQp
CisgICAgICAgIHJldHVybiAwOworICAgIHJldHVybiBTT1VQX0NPT0tJRV9KQVIoc291cF9zZXNz
aW9uX2dldF9mZWF0dXJlKGNvbnRleHQtPnNvdXBTZXNzaW9uKCksIFNPVVBfVFlQRV9DT09LSUVf
SkFSKSk7Cit9CisKIFNvdXBDb29raWVKYXIqIGRlZmF1bHRDb29raWVKYXIoKQogewogICAgIGlm
ICghY29va2llc0luaXRpYWxpemVkKSB7CkBAIC01OSw3ICs3OSw3IEBAIHZvaWQgc2V0RGVmYXVs
dENvb2tpZUphcihTb3VwQ29va2llSmFyKiBqYXIpCiAKIHZvaWQgc2V0Q29va2llcyhEb2N1bWVu
dCogZG9jdW1lbnQsIGNvbnN0IEtVUkwmIHVybCwgY29uc3QgU3RyaW5nJiB2YWx1ZSkKIHsKLSAg
ICBTb3VwQ29va2llSmFyKiBqYXIgPSBkZWZhdWx0Q29va2llSmFyKCk7CisgICAgU291cENvb2tp
ZUphciogamFyID0gY29va2llSmFyRm9yRG9jdW1lbnQoZG9jdW1lbnQpOwogICAgIGlmICghamFy
KQogICAgICAgICByZXR1cm47CiAKQEAgLTczLDkgKzkzLDkgQEAgdm9pZCBzZXRDb29raWVzKERv
Y3VtZW50KiBkb2N1bWVudCwgY29uc3QgS1VSTCYgdXJsLCBjb25zdCBTdHJpbmcmIHZhbHVlKQog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUudXRm
OCgpLmRhdGEoKSk7CiB9CiAKLVN0cmluZyBjb29raWVzKGNvbnN0IERvY3VtZW50KiAvKmRvY3Vt
ZW50Ki8sIGNvbnN0IEtVUkwmIHVybCkKK1N0cmluZyBjb29raWVzKGNvbnN0IERvY3VtZW50KiBk
b2N1bWVudCwgY29uc3QgS1VSTCYgdXJsKQogewotICAgIFNvdXBDb29raWVKYXIqIGphciA9IGRl
ZmF1bHRDb29raWVKYXIoKTsKKyAgICBTb3VwQ29va2llSmFyKiBqYXIgPSBjb29raWVKYXJGb3JE
b2N1bWVudChkb2N1bWVudCk7CiAgICAgaWYgKCFqYXIpCiAgICAgICAgIHJldHVybiBTdHJpbmco
KTsKIApAQCAtODksOSArMTA5LDkgQEAgU3RyaW5nIGNvb2tpZXMoY29uc3QgRG9jdW1lbnQqIC8q
ZG9jdW1lbnQqLywgY29uc3QgS1VSTCYgdXJsKQogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLVN0
cmluZyBjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShjb25zdCBEb2N1bWVudCogLypkb2N1
bWVudCovLCBjb25zdCBLVVJMJiB1cmwpCitTdHJpbmcgY29va2llUmVxdWVzdEhlYWRlckZpZWxk
VmFsdWUoY29uc3QgRG9jdW1lbnQqIGRvY3VtZW50LCBjb25zdCBLVVJMJiB1cmwpCiB7Ci0gICAg
U291cENvb2tpZUphciogamFyID0gZGVmYXVsdENvb2tpZUphcigpOworICAgIFNvdXBDb29raWVK
YXIqIGphciA9IGNvb2tpZUphckZvckRvY3VtZW50KGRvY3VtZW50KTsKICAgICBpZiAoIWphcikK
ICAgICAgICAgcmV0dXJuIFN0cmluZygpOwogCkBAIC0xMDUsOSArMTI1LDkgQEAgU3RyaW5nIGNv
b2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKGNvbnN0IERvY3VtZW50KiAvKmRvY3VtZW50Ki8s
IGNvbnN0IEtVUkwmIHUKICAgICByZXR1cm4gcmVzdWx0OwogfQogCi1ib29sIGNvb2tpZXNFbmFi
bGVkKGNvbnN0IERvY3VtZW50KiAvKmRvY3VtZW50Ki8pCitib29sIGNvb2tpZXNFbmFibGVkKGNv
bnN0IERvY3VtZW50KiBkb2N1bWVudCkKIHsKLSAgICByZXR1cm4gZGVmYXVsdENvb2tpZUphcigp
OworICAgIHJldHVybiAhIWNvb2tpZUphckZvckRvY3VtZW50KGRvY3VtZW50KTsKIH0KIAogYm9v
bCBnZXRSYXdDb29raWVzKGNvbnN0IERvY3VtZW50KiwgY29uc3QgS1VSTCYsIFZlY3RvcjxDb29r
aWU+JiByYXdDb29raWVzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9zb3VwL1Jlc291cmNlSGFuZGxlU291cC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5kbGVTb3VwLmNwcAppbmRleCA1Y2I1M2JkZmY0ZmFi
NTY5MzNhMTMxOWFjNmJhYzdhNjBmYjA5ZmViLi44MDU4YTVkOTRjN2QwMWVhYjIwZWY0MjFhNjFk
ZmJkYjc5NGQ4N2E1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L3NvdXAvUmVzb3VyY2VIYW5kbGVTb3VwLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5kbGVTb3VwLmNwcApAQCAtMTQxLDYgKzE0MSwxMSBA
QCBSZXNvdXJjZUhhbmRsZUludGVybmFsOjp+UmVzb3VyY2VIYW5kbGVJbnRlcm5hbCgpCiB7CiB9
CiAKK1NvdXBTZXNzaW9uKiBSZXNvdXJjZUhhbmRsZUludGVybmFsOjpzb3VwU2Vzc2lvbigpCit7
CisgICAgcmV0dXJuIChtX2NvbnRleHQgJiYgbV9jb250ZXh0LT5pc1ZhbGlkKCkpID8gbV9jb250
ZXh0LT5zb3VwU2Vzc2lvbigpIDogUmVzb3VyY2VIYW5kbGU6OmRlZmF1bHRTZXNzaW9uKCk7Cit9
CisKIFJlc291cmNlSGFuZGxlOjp+UmVzb3VyY2VIYW5kbGUoKQogewogICAgIGNsZWFudXBTb3Vw
UmVxdWVzdE9wZXJhdGlvbih0aGlzLCB0cnVlKTsKQEAgLTE1MSwxMSArMTU2LDEzIEBAIHN0YXRp
YyB2b2lkIGVuc3VyZVNlc3Npb25Jc0luaXRpYWxpemVkKFNvdXBTZXNzaW9uKiBzZXNzaW9uKQog
ICAgIGlmIChnX29iamVjdF9nZXRfZGF0YShHX09CSkVDVChzZXNzaW9uKSwgIndlYmtpdC1pbml0
IikpCiAgICAgICAgIHJldHVybjsKIAotICAgIFNvdXBDb29raWVKYXIqIGphciA9IFNPVVBfQ09P
S0lFX0pBUihzb3VwX3Nlc3Npb25fZ2V0X2ZlYXR1cmUoc2Vzc2lvbiwgU09VUF9UWVBFX0NPT0tJ
RV9KQVIpKTsKLSAgICBpZiAoIWphcikKLSAgICAgICAgc291cF9zZXNzaW9uX2FkZF9mZWF0dXJl
KHNlc3Npb24sIFNPVVBfU0VTU0lPTl9GRUFUVVJFKGRlZmF1bHRDb29raWVKYXIoKSkpOwotICAg
IGVsc2UKLSAgICAgICAgc2V0RGVmYXVsdENvb2tpZUphcihqYXIpOworICAgIGlmIChzZXNzaW9u
ID09IFJlc291cmNlSGFuZGxlOjpkZWZhdWx0U2Vzc2lvbigpKSB7CisgICAgICAgIFNvdXBDb29r
aWVKYXIqIGphciA9IFNPVVBfQ09PS0lFX0pBUihzb3VwX3Nlc3Npb25fZ2V0X2ZlYXR1cmUoc2Vz
c2lvbiwgU09VUF9UWVBFX0NPT0tJRV9KQVIpKTsKKyAgICAgICAgaWYgKCFqYXIpCisgICAgICAg
ICAgICBzb3VwX3Nlc3Npb25fYWRkX2ZlYXR1cmUoc2Vzc2lvbiwgU09VUF9TRVNTSU9OX0ZFQVRV
UkUoZGVmYXVsdENvb2tpZUphcigpKSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHNldERl
ZmF1bHRDb29raWVKYXIoamFyKTsKKyAgICB9CiAKICAgICBpZiAoIXNvdXBfc2Vzc2lvbl9nZXRf
ZmVhdHVyZShzZXNzaW9uLCBTT1VQX1RZUEVfTE9HR0VSKSAmJiBMb2dOZXR3b3JrLnN0YXRlID09
IFdURkxvZ0NoYW5uZWxPbikgewogICAgICAgICBTb3VwTG9nZ2VyKiBsb2dnZXIgPSBzb3VwX2xv
Z2dlcl9uZXcoc3RhdGljX2Nhc3Q8U291cExvZ2dlckxvZ0xldmVsPihTT1VQX0xPR0dFUl9MT0df
Qk9EWSksIC0xKTsKQEAgLTMxOSw3ICszMjYsNyBAQCBzdGF0aWMgdm9pZCBzZW5kUmVxdWVzdENh
bGxiYWNrKEdPYmplY3QqIHNvdXJjZSwgR0FzeW5jUmVzdWx0KiByZXMsIGdwb2ludGVyIGRhdAog
ICAgICAgICBkLT5tX3Jlc3BvbnNlLnVwZGF0ZUZyb21Tb3VwTWVzc2FnZShzb3VwTWVzc2FnZSk7
CiAKICAgICAgICAgaWYgKGQtPm1fZGVmZXJzTG9hZGluZykKLSAgICAgICAgICAgIHNvdXBfc2Vz
c2lvbl9wYXVzZV9tZXNzYWdlKGhhbmRsZS0+ZGVmYXVsdFNlc3Npb24oKSwgc291cE1lc3NhZ2Up
OworICAgICAgICAgICAgc291cF9zZXNzaW9uX3BhdXNlX21lc3NhZ2UoZC0+c291cFNlc3Npb24o
KSwgc291cE1lc3NhZ2UpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIGQtPm1fcmVzcG9uc2Uuc2V0
VVJMKGhhbmRsZS0+Zmlyc3RSZXF1ZXN0KCkudXJsKCkpOwogICAgICAgICBjb25zdCBnY2hhciog
Y29udGVudFR5cGUgPSBzb3VwX3JlcXVlc3RfZ2V0X2NvbnRlbnRfdHlwZShkLT5tX3NvdXBSZXF1
ZXN0LmdldCgpKTsKQEAgLTQ0MiwxMiArNDQ5LDEyIEBAIHN0YXRpYyBib29sIHN0YXJ0SFRUUFJl
cXVlc3QoUmVzb3VyY2VIYW5kbGUqIGhhbmRsZSkKIHsKICAgICBBU1NFUlQoaGFuZGxlKTsKIAot
ICAgIFNvdXBTZXNzaW9uKiBzZXNzaW9uID0gaGFuZGxlLT5kZWZhdWx0U2Vzc2lvbigpOworICAg
IFJlc291cmNlSGFuZGxlSW50ZXJuYWwqIGQgPSBoYW5kbGUtPmdldEludGVybmFsKCk7CisKKyAg
ICBTb3VwU2Vzc2lvbiogc2Vzc2lvbiA9IGQtPnNvdXBTZXNzaW9uKCk7CiAgICAgZW5zdXJlU2Vz
c2lvbklzSW5pdGlhbGl6ZWQoc2Vzc2lvbik7CiAgICAgU291cFJlcXVlc3RlciogcmVxdWVzdGVy
ID0gU09VUF9SRVFVRVNURVIoc291cF9zZXNzaW9uX2dldF9mZWF0dXJlKHNlc3Npb24sIFNPVVBf
VFlQRV9SRVFVRVNURVIpKTsKIAotICAgIFJlc291cmNlSGFuZGxlSW50ZXJuYWwqIGQgPSBoYW5k
bGUtPmdldEludGVybmFsKCk7Ci0KICAgICBSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdChoYW5kbGUt
PmZpcnN0UmVxdWVzdCgpKTsKICAgICBLVVJMIHVybChyZXF1ZXN0LnVybCgpKTsKICAgICB1cmwu
cmVtb3ZlRnJhZ21lbnRJZGVudGlmaWVyKCk7CkBAIC01NTIsNyArNTU5LDcgQEAgdm9pZCBSZXNv
dXJjZUhhbmRsZTo6Y2FuY2VsKCkKIHsKICAgICBkLT5tX2NhbmNlbGxlZCA9IHRydWU7CiAgICAg
aWYgKGQtPm1fc291cE1lc3NhZ2UpCi0gICAgICAgIHNvdXBfc2Vzc2lvbl9jYW5jZWxfbWVzc2Fn
ZShkZWZhdWx0U2Vzc2lvbigpLCBkLT5tX3NvdXBNZXNzYWdlLmdldCgpLCBTT1VQX1NUQVRVU19D
QU5DRUxMRUQpOworICAgICAgICBzb3VwX3Nlc3Npb25fY2FuY2VsX21lc3NhZ2UoZC0+c291cFNl
c3Npb24oKSwgZC0+bV9zb3VwTWVzc2FnZS5nZXQoKSwgU09VUF9TVEFUVVNfQ0FOQ0VMTEVEKTsK
ICAgICBlbHNlIGlmIChkLT5tX2NhbmNlbGxhYmxlKQogICAgICAgICBnX2NhbmNlbGxhYmxlX2Nh
bmNlbChkLT5tX2NhbmNlbGxhYmxlLmdldCgpKTsKIH0KQEAgLTY4NywxMCArNjk0LDExIEBAIHN0
YXRpYyBib29sIHN0YXJ0Tm9uSFRUUFJlcXVlc3QoUmVzb3VyY2VIYW5kbGUqIGhhbmRsZSwgS1VS
TCB1cmwpCiAgICAgaWYgKGhhbmRsZS0+Zmlyc3RSZXF1ZXN0KCkuaHR0cE1ldGhvZCgpICE9ICJH
RVQiICYmIGhhbmRsZS0+Zmlyc3RSZXF1ZXN0KCkuaHR0cE1ldGhvZCgpICE9ICJQT1NUIikKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgU291cFNlc3Npb24qIHNlc3Npb24gPSBoYW5kbGUt
PmRlZmF1bHRTZXNzaW9uKCk7CisgICAgUmVzb3VyY2VIYW5kbGVJbnRlcm5hbCogZCA9IGhhbmRs
ZS0+Z2V0SW50ZXJuYWwoKTsKKworICAgIFNvdXBTZXNzaW9uKiBzZXNzaW9uID0gZC0+c291cFNl
c3Npb24oKTsKICAgICBlbnN1cmVTZXNzaW9uSXNJbml0aWFsaXplZChzZXNzaW9uKTsKICAgICBT
b3VwUmVxdWVzdGVyKiByZXF1ZXN0ZXIgPSBTT1VQX1JFUVVFU1RFUihzb3VwX3Nlc3Npb25fZ2V0
X2ZlYXR1cmUoc2Vzc2lvbiwgU09VUF9UWVBFX1JFUVVFU1RFUikpOwotICAgIFJlc291cmNlSGFu
ZGxlSW50ZXJuYWwqIGQgPSBoYW5kbGUtPmdldEludGVybmFsKCk7CiAKICAgICBDU3RyaW5nIHVy
bFN0ciA9IHVybC5zdHJpbmcoKS51dGY4KCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
ZWZsL0NNYWtlTGlzdHNFZmwudHh0IGIvU291cmNlL1dlYktpdC9lZmwvQ01ha2VMaXN0c0VmbC50
eHQKaW5kZXggMjBkY2MzNTg3NjFjNDIzNDkyMTdiY2UyZWFmOWJiY2Y4NDY5ZDYxZC4uYWVmZGI5
ODA0YTcxNWMwMTFkOTdkMWQwNzIzM2QxNTllNjM4MmY2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9lZmwvQ01ha2VMaXN0c0VmbC50eHQKKysrIGIvU291cmNlL1dlYktpdC9lZmwvQ01ha2VM
aXN0c0VmbC50eHQKQEAgLTcyLDYgKzcyLDcgQEAgTElTVChBUFBFTkQgV2ViS2l0X1NPVVJDRVMK
ICAgICBlZmwvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsLmNwcAogICAg
IGVmbC9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRFZmwuY3BwCiAgICAgZWZsL1dlYkNvcmVT
dXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50RWZsLmNwcAorICAgIGVmbC9XZWJDb3JlU3VwcG9ydC9G
cmFtZU5ldHdvcmtpbmdDb250ZXh0RWZsLmNwcAogICAgIGVmbC9XZWJDb3JlU3VwcG9ydC9GdWxs
c2NyZWVuVmlkZW9Db250cm9sbGVyRWZsLmNwcAogICAgIGVmbC9XZWJDb3JlU3VwcG9ydC9JY29u
RGF0YWJhc2VDbGllbnRFZmwuY3BwCiAgICAgZWZsL1dlYkNvcmVTdXBwb3J0L1N0b3JhZ2VUcmFj
a2VyQ2xpZW50RWZsLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1
cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRFZmwuY3BwIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29y
ZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRFZmwuY3BwCmluZGV4IDcwOWQ0ZWFjOTZmNjQwNGJl
ZmZiZDNjMWNmYzFkMzdjNDcyMWE5MGQuLjAwOTZiODg3NDI3ZTFlZDY2ZmE4YzJjZDQzMjZmZjM5
OTg1YThmMzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0Zy
YW1lTG9hZGVyQ2xpZW50RWZsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3Vw
cG9ydC9GcmFtZUxvYWRlckNsaWVudEVmbC5jcHAKQEAgLTk0Nyw3ICs5NDcsNyBAQCB2b2lkIEZy
YW1lTG9hZGVyQ2xpZW50RWZsOjpkaXNwYXRjaERpZEJlY29tZUZyYW1lc2V0KGJvb2wpCiAKIFBh
c3NSZWZQdHI8RnJhbWVOZXR3b3JraW5nQ29udGV4dD4gRnJhbWVMb2FkZXJDbGllbnRFZmw6OmNy
ZWF0ZU5ldHdvcmtpbmdDb250ZXh0KCkKIHsKLSAgICByZXR1cm4gRnJhbWVOZXR3b3JraW5nQ29u
dGV4dEVmbDo6Y3JlYXRlKEVXS1ByaXZhdGU6OmNvcmVGcmFtZShtX2ZyYW1lKSk7CisgICAgcmV0
dXJuIEZyYW1lTmV0d29ya2luZ0NvbnRleHRFZmw6OmNyZWF0ZShFV0tQcml2YXRlOjpjb3JlRnJh
bWUobV9mcmFtZSksIG1fZnJhbWUpOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L2VmbC9XZWJDb3JlU3VwcG9ydC9GcmFtZU5ldHdvcmtpbmdDb250ZXh0RWZsLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTmV0d29ya2luZ0NvbnRleHRFZmwuY3Bw
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjhjMjBiMjEzYWFkMjA4N2Q3NTg4NjAyZTQyNTQ5MDA1ZjA5NWM5NDYKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9GcmFtZU5l
dHdvcmtpbmdDb250ZXh0RWZsLmNwcApAQCAtMCwwICsxLDU3IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQor
ICogQ29weXJpZ2h0IChDKSAyMDEwIFNhbXN1bmcgRWxlY3Ryb25pY3MKKyAqIENvcHlyaWdodCAo
QykgMjAxMiBQcm9GVVNJT04gZW1iZWRkZWQgc3lzdGVtcworICoKKyAqIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkZyYW1lTmV0d29y
a2luZ0NvbnRleHRFZmwuaCIKKworI2luY2x1ZGUgIlJlc291cmNlSGFuZGxlLmgiCisjaW5jbHVk
ZSAiZXdrX2ZyYW1lLmgiCisjaW5jbHVkZSAiZXdrX3ZpZXcuaCIKKworI2luY2x1ZGUgPEV2YXMu
aD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitQYXNzUmVmUHRyPEZyYW1lTmV0d29ya2luZ0Nv
bnRleHRFZmw+IEZyYW1lTmV0d29ya2luZ0NvbnRleHRFZmw6OmNyZWF0ZShGcmFtZSogZnJhbWUs
IEV2YXNfT2JqZWN0KiBld2tGcmFtZSkKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IEZyYW1l
TmV0d29ya2luZ0NvbnRleHRFZmwoZnJhbWUsIGV3a0ZyYW1lKSk7Cit9CisKK0ZyYW1lTmV0d29y
a2luZ0NvbnRleHRFZmw6OkZyYW1lTmV0d29ya2luZ0NvbnRleHRFZmwoRnJhbWUqIGZyYW1lLCBF
dmFzX09iamVjdCogZXdrRnJhbWUpCisgICAgOiBGcmFtZU5ldHdvcmtpbmdDb250ZXh0KGZyYW1l
KQorICAgICwgbV9ld2tGcmFtZShld2tGcmFtZSkKK3sKK30KKworU291cFNlc3Npb24qIEZyYW1l
TmV0d29ya2luZ0NvbnRleHRFZmw6OnNvdXBTZXNzaW9uKCkgY29uc3QKK3sKKyAgICByZXR1cm4g
ZXdrX3ZpZXdfc291cF9zZXNzaW9uX2dldChld2tfZnJhbWVfdmlld19nZXQobV9ld2tGcmFtZSkp
OworfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9G
cmFtZU5ldHdvcmtpbmdDb250ZXh0RWZsLmggYi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3Vw
cG9ydC9GcmFtZU5ldHdvcmtpbmdDb250ZXh0RWZsLmgKaW5kZXggNGU2NzUxMmQwOTRjMjhkZmQ1
MTViZWU5OTczNjE3N2ZkOTVjNmNhZi4uOTNmZmQ0OGJiYjc4ZGQzNjBlNzFmMmFkMjg0YTM3NWJm
MDgyY2VmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRnJh
bWVOZXR3b3JraW5nQ29udGV4dEVmbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVT
dXBwb3J0L0ZyYW1lTmV0d29ya2luZ0NvbnRleHRFZmwuaApAQCAtMzEsMjIgKzMxLDIxIEBACiAK
ICNpbmNsdWRlICJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmgiCiAKK3R5cGVkZWYgc3RydWN0IF9F
dmFzX09iamVjdCBFdmFzX09iamVjdDsKKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBG
cmFtZU5ldHdvcmtpbmdDb250ZXh0RWZsIDogcHVibGljIFdlYkNvcmU6OkZyYW1lTmV0d29ya2lu
Z0NvbnRleHQgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEZyYW1lTmV0d29ya2lu
Z0NvbnRleHRFZmw+IGNyZWF0ZShXZWJDb3JlOjpGcmFtZSogZnJhbWUpCi0gICAgewotICAgICAg
ICByZXR1cm4gYWRvcHRSZWYobmV3IEZyYW1lTmV0d29ya2luZ0NvbnRleHRFZmwoZnJhbWUpKTsK
LSAgICB9CisgICAgc3RhdGljIFBhc3NSZWZQdHI8RnJhbWVOZXR3b3JraW5nQ29udGV4dEVmbD4g
Y3JlYXRlKEZyYW1lKiwgRXZhc19PYmplY3QqKTsKIAogICAgIFdlYkNvcmU6OkZyYW1lKiBjb3Jl
RnJhbWUoKSBjb25zdCB7IHJldHVybiBmcmFtZSgpOyB9CisgICAgdmlydHVhbCBTb3VwU2Vzc2lv
biogc291cFNlc3Npb24oKSBjb25zdDsKIAogcHJpdmF0ZToKLSAgICBGcmFtZU5ldHdvcmtpbmdD
b250ZXh0RWZsKFdlYkNvcmU6OkZyYW1lKiBmcmFtZSkKLSAgICAgICAgOiBXZWJDb3JlOjpGcmFt
ZU5ldHdvcmtpbmdDb250ZXh0KGZyYW1lKQotICAgIHsKLSAgICB9CisgICAgRnJhbWVOZXR3b3Jr
aW5nQ29udGV4dEVmbChGcmFtZSosIEV2YXNfT2JqZWN0Kik7CisKKyAgICBFdmFzX09iamVjdCog
bV9ld2tGcmFtZTsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9l
d2tfY29va2llcy5oIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19jb29raWVzLmgKaW5kZXgg
NDBlNjlkNTZjNGU1ZjViMTEzMDc4ZTIwNTU0MGRhMjRhYzFmZWVjMC4uMjlhYzEyMTgyYzBmODNm
NGE5YTU5Nzk5ZDM4M2JkYmU4ZDYxNjlkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwv
ZXdrL2V3a19jb29raWVzLmgKKysrIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19jb29raWVz
LmgKQEAgLTIxLDYgKzIxLDEyIEBACiAvKioKICAqIEBmaWxlICAgIGV3a19jb29raWVzLmgKICAq
IEBicmllZiAgIFRoZSBFd2sgY29va2llcyBBUEkuCisgKgorICogQG5vdGUgSWYgdGhlIGxpYnNv
dXAgbmV0d29yayBiYWNrZW5kIGlzIGJlaW5nIHVzZWQgdGhlIGZ1bmN0aW9ucyBoZXJlIHdpbGwK
KyAqIG9ubHkgd29yayB3aXRoIHRoZSBAYiBkZWZhdWx0IFNvdXBTZXNzaW9uLCB3aGljaCBjYW4g
YmUgcmV0cmlldmVkIHdpdGgKKyAqIGV3a19uZXR3b3JrX2RlZmF1bF9zb3VwX3Nlc3Npb25fZ2V0
KCkuIElmIGEgZGlmZmVyZW50IFNvdXBTZXNzaW9uIGlzIHVzZWQKKyAqIGFuZCBhc3NvY2lhdGVk
IHdpdGggYSB2aWV3IHdpdGggZXdrX3ZpZXdfc291cF9zZXNzaW9uX3NldCgpLCBhbGwgY29va2ll
CisgKiBtYW5hZ2VtZW50IHdpbGwgaGF2ZSB0byBiZSBkb25lIG1hbnVhbGx5LgogICovCiAKICNp
Zm5kZWYgZXdrX2Nvb2tpZXNfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3
a19uZXR3b3JrLmggYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX25ldHdvcmsuaAppbmRleCA2
NGZkMTUwODNmY2VjNzg4NGU4NmVmZDAyM2FmOGQyZTZhNjAxYWNkLi5kYmVjODE1ODQ2NmFmMmZi
NTI2YzNhZGU1YWU3ZmZjOWQyMjEwMmMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9l
d2svZXdrX25ldHdvcmsuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX25ldHdvcmsu
aApAQCAtMzYsNiArMzYsMTEgQEAgZXh0ZXJuICJDIiB7CiAgKiBTZXRzIHRoZSBnaXZlbiBwcm94
eSBVUkkgdG8gbmV0d29yayBiYWNrZW5kLgogICoKICAqIEBwYXJhbSBwcm94eSBVUkkgdG8gc2V0
CisgKgorICogQG5vdGUgSWYgdGhlIGxpYnNvdXAgYmFja2VuZCBpcyBiZWluZyB1c2VkLCB0aGlz
IGZ1bmN0aW9uIGhhcyBlZmZlY3Qgb24KKyAqIHRoZSBAYiBkZWZhdWx0IFNvdXBTZXNzaW9uLCBy
ZXR1cm5lZCBieSBld2tfbmV0d29ya19kZWZhdWx0X3NvdXBfc2Vzc2lvbl9nZXQoKS4KKyAqIElm
IGEgZGlmZmVyZW50IFNvdXBTZXNzaW9uIGlzIHVzZWQgYW5kIHBhc3NlZCB0byBld2tfdmlld19z
b3VwX3Nlc3Npb25fc2V0KCksCisgKiB0aGlzIGZ1bmN0aW9uIHdpbGwgbm90IGhhdmUgYW55IGVm
ZmVjdCBvbiBpdC4KICAqLwogRUFQSSB2b2lkICAgICAgICAgICAgIGV3a19uZXR3b3JrX3Byb3h5
X3VyaV9zZXQoY29uc3QgY2hhciAqcHJveHkpOwogCkBAIC00NSw2ICs1MCwxMSBAQCBFQVBJIHZv
aWQgICAgICAgICAgICAgZXdrX25ldHdvcmtfcHJveHlfdXJpX3NldChjb25zdCBjaGFyICpwcm94
eSk7CiAgKiBUaGUgcmV0dXJuZWQgc3RyaW5nIHNob3VsZCBiZSBmcmVlZCBieSBlaW5hX3N0cmlu
Z3NoYXJlX2RlbCgpIGFmdGVyIHVzZS4KICAqCiAgKiBAcmV0dXJuIGN1cnJlbnQgcHJveHkgVVJJ
IG9yIEBjIDAgaWYgaXQncyBub3Qgc2V0CisgKgorICogQG5vdGUgSWYgdGhlIGxpYnNvdXAgYmFj
a2VuZCBpcyBiZWluZyB1c2VkLCB0aGlzIGZ1bmN0aW9uIGhhcyBlZmZlY3Qgb24KKyAqIHRoZSBA
YiBkZWZhdWx0IFNvdXBTZXNzaW9uLCByZXR1cm5lZCBieSBld2tfbmV0d29ya19kZWZhdWx0X3Nv
dXBfc2Vzc2lvbl9nZXQoKS4KKyAqIElmIGEgZGlmZmVyZW50IFNvdXBTZXNzaW9uIGlzIHVzZWQg
YW5kIHBhc3NlZCB0byBld2tfdmlld19zb3VwX3Nlc3Npb25fc2V0KCksCisgKiB0aGlzIGZ1bmN0
aW9uIHdpbGwgbm90IGhhdmUgYW55IGVmZmVjdCBvbiBpdC4KICAqLwogRUFQSSBjb25zdCBjaGFy
ICAgICAgKmV3a19uZXR3b3JrX3Byb3h5X3VyaV9nZXQodm9pZCk7CiAKQEAgLTYxLDYgKzcxLDEx
IEBAIEVBUEkgdm9pZCAgICAgICAgICAgICBld2tfbmV0d29ya19zdGF0ZV9ub3RpZmllcl9vbmxp
bmVfc2V0KEVpbmFfQm9vbCBvbmxpbmUpOwogICogQnkgZGVmYXVsdCwgSFRUUFMgY29ubmVjdGlv
bnMgYXJlIHBlcmZvcm1lZCByZWdhcmRsZXNzIG9mIHRoZSB2YWxpZGl0eSBvZiB0aGUgY2VydGlm
aWNhdGUgcHJvdmlkZWQuCiAgKgogICogQHNhIGV3a19uZXR3b3JrX3Rsc19jYV9jZXJ0aWZpY2F0
ZXNfcGF0aF9zZXQKKyAqCisgKiBAbm90ZSBJZiB0aGUgbGlic291cCBiYWNrZW5kIGlzIGJlaW5n
IHVzZWQsIHRoaXMgZnVuY3Rpb24gaGFzIGVmZmVjdCBvbgorICogdGhlIEBiIGRlZmF1bHQgU291
cFNlc3Npb24sIHJldHVybmVkIGJ5IGV3a19uZXR3b3JrX2RlZmF1bHRfc291cF9zZXNzaW9uX2dl
dCgpLgorICogSWYgYSBkaWZmZXJlbnQgU291cFNlc3Npb24gaXMgdXNlZCBhbmQgcGFzc2VkIHRv
IGV3a192aWV3X3NvdXBfc2Vzc2lvbl9zZXQoKSwKKyAqIHRoaXMgZnVuY3Rpb24gd2lsbCBub3Qg
aGF2ZSBhbnkgZWZmZWN0IG9uIGl0LgogICovCiBFQVBJIEVpbmFfQm9vbCAgICAgICAgZXdrX25l
dHdvcmtfdGxzX2NlcnRpZmljYXRlX2NoZWNrX2dldCh2b2lkKTsKIApAQCAtNzIsNiArODcsMTEg
QEAgRUFQSSBFaW5hX0Jvb2wgICAgICAgIGV3a19uZXR3b3JrX3Rsc19jZXJ0aWZpY2F0ZV9jaGVj
a19nZXQodm9pZCk7CiAgKiBAcGFyYW0gZW5hYmxlIFdoZXRoZXIgdG8gY2hlY2sgdGhlIHByb3Zp
ZGVkIGNlcnRpZmljYXRlcyBvciBub3QuCiAgKgogICogQHNhIGV3a19uZXR3b3JrX3Rsc19jYV9j
ZXJ0aWZpY2F0ZXNfcGF0aF9zZXQKKyAqCisgKiBAbm90ZSBJZiB0aGUgbGlic291cCBiYWNrZW5k
IGlzIGJlaW5nIHVzZWQsIHRoaXMgZnVuY3Rpb24gaGFzIGVmZmVjdCBvbgorICogdGhlIEBiIGRl
ZmF1bHQgU291cFNlc3Npb24sIHJldHVybmVkIGJ5IGV3a19uZXR3b3JrX2RlZmF1bHRfc291cF9z
ZXNzaW9uX2dldCgpLgorICogSWYgYSBkaWZmZXJlbnQgU291cFNlc3Npb24gaXMgdXNlZCBhbmQg
cGFzc2VkIHRvIGV3a192aWV3X3NvdXBfc2Vzc2lvbl9zZXQoKSwKKyAqIHRoaXMgZnVuY3Rpb24g
d2lsbCBub3QgaGF2ZSBhbnkgZWZmZWN0IG9uIGl0LgogICovCiBFQVBJIHZvaWQgICAgICAgICAg
ICAgZXdrX25ldHdvcmtfdGxzX2NlcnRpZmljYXRlX2NoZWNrX3NldChFaW5hX0Jvb2wgZW5hYmxl
KTsKIApAQCAtODgsNiArMTA4LDExIEBAIEVBUEkgdm9pZCAgICAgICAgICAgICBld2tfbmV0d29y
a190bHNfY2VydGlmaWNhdGVfY2hlY2tfc2V0KEVpbmFfQm9vbCBlbmFibGUpOwogICogQnkgZGVm
YXVsdCwgdGhlIHBhdGggaXMgbm90IHNldCwgc28gYWxsIGNlcnRpZmljYXRlcyBhcmUgY29uc2lk
ZXJlZCBhcyBub3Qgc2lnbmVkIGJ5IGEgdHJ1c3RlZCByb290IENBLgogICoKICAqIEBzYSBld2tf
bmV0d29ya190bHNfY2VydGlmaWNhdGVfY2hlY2tfc2V0CisgKgorICogQG5vdGUgSWYgdGhlIGxp
YnNvdXAgYmFja2VuZCBpcyBiZWluZyB1c2VkLCB0aGlzIGZ1bmN0aW9uIGhhcyBlZmZlY3Qgb24K
KyAqIHRoZSBAYiBkZWZhdWx0IFNvdXBTZXNzaW9uLCByZXR1cm5lZCBieSBld2tfbmV0d29ya19k
ZWZhdWx0X3NvdXBfc2Vzc2lvbl9nZXQoKS4KKyAqIElmIGEgZGlmZmVyZW50IFNvdXBTZXNzaW9u
IGlzIHVzZWQgYW5kIHBhc3NlZCB0byBld2tfdmlld19zb3VwX3Nlc3Npb25fc2V0KCksCisgKiB0
aGlzIGZ1bmN0aW9uIHdpbGwgbm90IGhhdmUgYW55IGVmZmVjdCBvbiBpdC4KICAqLwogRUFQSSBj
b25zdCBjaGFyICAgICAgKmV3a19uZXR3b3JrX3Rsc19jYV9jZXJ0aWZpY2F0ZXNfcGF0aF9nZXQo
dm9pZCk7CiAKQEAgLTEwNiw2ICsxMzEsMTEgQEAgRUFQSSBjb25zdCBjaGFyICAgICAgKmV3a19u
ZXR3b3JrX3Rsc19jYV9jZXJ0aWZpY2F0ZXNfcGF0aF9nZXQodm9pZCk7CiAgKiBAcGFyYW0gcGF0
aCBUaGUgcGF0aCB0byB0aGUgY2VydGlmaWNhdGUgYnVuZGxlLgogICoKICAqIEBzYSBld2tfbmV0
d29ya190bHNfY2VydGlmaWNhdGVfY2hlY2tfc2V0CisgKgorICogQG5vdGUgSWYgdGhlIGxpYnNv
dXAgYmFja2VuZCBpcyBiZWluZyB1c2VkLCB0aGlzIGZ1bmN0aW9uIGhhcyBlZmZlY3Qgb24KKyAq
IHRoZSBAYiBkZWZhdWx0IFNvdXBTZXNzaW9uLCByZXR1cm5lZCBieSBld2tfbmV0d29ya19kZWZh
dWx0X3NvdXBfc2Vzc2lvbl9nZXQoKS4KKyAqIElmIGEgZGlmZmVyZW50IFNvdXBTZXNzaW9uIGlz
IHVzZWQgYW5kIHBhc3NlZCB0byBld2tfdmlld19zb3VwX3Nlc3Npb25fc2V0KCksCisgKiB0aGlz
IGZ1bmN0aW9uIHdpbGwgbm90IGhhdmUgYW55IGVmZmVjdCBvbiBpdC4KICAqLwogRUFQSSB2b2lk
ICAgICAgICAgICAgIGV3a19uZXR3b3JrX3Rsc19jYV9jZXJ0aWZpY2F0ZXNfcGF0aF9zZXQoY29u
c3QgY2hhciAqcGF0aCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tf
dmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuY3BwCmluZGV4IDk3ODlj
MWMzMGQyOTNhMGNmMjQ1MDcyMTZiMjgyOTNlOWQwZmJhODEuLmFhZTk1NTFlZjg4MDY2MzQ5YWNj
OGI3NTkyZTI2MzA4YmIwYTRjYzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9l
d2tfdmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3LmNwcApAQCAt
NTAsNiArNTAsNyBAQAogI2luY2x1ZGUgIlByb2dyZXNzVHJhY2tlci5oIgogI2luY2x1ZGUgIlJl
ZlB0ckNhaXJvLmgiCiAjaW5jbHVkZSAiUmVuZGVyVGhlbWUuaCIKKyNpbmNsdWRlICJSZXNvdXJj
ZUhhbmRsZS5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVkZSAiY19pbnN0YW5jZS5o
IgogI2luY2x1ZGUgImV3a19sb2dnaW5nLmgiCkBAIC01OSw2ICs2MCw3IEBACiAjaW5jbHVkZSA8
RXZhcy5oPgogI2luY2x1ZGUgPGVpbmFfc2FmZXR5X2NoZWNrcy5oPgogI2luY2x1ZGUgPGludHR5
cGVzLmg+CisjaW5jbHVkZSA8bGlic291cC9zb3VwLXNlc3Npb24uaD4KICNpbmNsdWRlIDxsaW1p
dHM+CiAjaW5jbHVkZSA8bWF0aC5oPgogI2luY2x1ZGUgPHN5cy90aW1lLmg+CkBAIC0yMTEsNiAr
MjEzLDcgQEAgc3RydWN0IF9Fd2tfVmlld19Qcml2YXRlX0RhdGEgewogICAgICAgICB9IGNlbnRl
cjsKICAgICAgICAgRWNvcmVfQW5pbWF0b3IqIGFuaW1hdG9yOwogICAgIH0gYW5pbWF0ZWRab29t
OworICAgIFNvdXBTZXNzaW9uKiBzb3VwU2Vzc2lvbjsKIH07CiAKICNpZm5kZWYgRVdLX1RZUEVf
Q0hFQ0sKQEAgLTcxNCw2ICs3MTcsOCBAQCBzdGF0aWMgRXdrX1ZpZXdfUHJpdmF0ZV9EYXRhKiBf
ZXdrX3ZpZXdfcHJpdl9uZXcoRXdrX1ZpZXdfU21hcnRfRGF0YSogc21hcnREYXRhKQogICAgICAg
ICBnb3RvIGVycm9yX2hpc3Rvcnk7CiAgICAgfQogCisgICAgcHJpdi0+c291cFNlc3Npb24gPSBX
ZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6ZGVmYXVsdFNlc3Npb24oKTsKKwogICAgIHJldHVybiBw
cml2OwogCiBlcnJvcl9oaXN0b3J5OgpAQCAtMzkxMyw2ICszOTE4LDI1IEBAIEV3a19QYWdlX1Zp
c2liaWxpdHlfU3RhdGUgZXdrX3ZpZXdfdmlzaWJpbGl0eV9zdGF0ZV9nZXQoY29uc3QgRXZhc19P
YmplY3QqIGV3a1ZpCiAjZW5kaWYKIH0KIAorU291cFNlc3Npb24qIGV3a192aWV3X3NvdXBfc2Vz
c2lvbl9nZXQoY29uc3QgRXZhc19PYmplY3QqIGV3a1ZpZXcpCit7CisgICAgRVdLX1ZJRVdfU0Rf
R0VUX09SX1JFVFVSTihld2tWaWV3LCBzbWFydERhdGEsIDApOworICAgIEVXS19WSUVXX1BSSVZf
R0VUX09SX1JFVFVSTihzbWFydERhdGEsIHByaXYsIDApOworICAgIHJldHVybiBwcml2LT5zb3Vw
U2Vzc2lvbjsKK30KKwordm9pZCBld2tfdmlld19zb3VwX3Nlc3Npb25fc2V0KEV2YXNfT2JqZWN0
KiBld2tWaWV3LCBTb3VwU2Vzc2lvbiogc2Vzc2lvbikKK3sKKyAgICBFV0tfVklFV19TRF9HRVRf
T1JfUkVUVVJOKGV3a1ZpZXcsIHNtYXJ0RGF0YSk7CisgICAgRVdLX1ZJRVdfUFJJVl9HRVRfT1Jf
UkVUVVJOKHNtYXJ0RGF0YSwgcHJpdik7CisgICAgaWYgKCFTT1VQX0lTX1NFU1NJT05fQVNZTkMo
c2Vzc2lvbikpIHsKKyAgICAgICAgRVJSKCJXZWJLaXQgcmVxdWlyZXMgYW4gU291cFNlc3Npb25B
c3luYyB0byB3b3JrIHByb3Blcmx5LCBidXQgIgorICAgICAgICAgICAgImEgU291cFNlc3Npb25T
eW5jIHdhcyBwcm92aWRlZC4iKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBwcml2LT5z
b3VwU2Vzc2lvbiA9IHNlc3Npb247Cit9CisKIG5hbWVzcGFjZSBFV0tQcml2YXRlIHsKIAogV2Vi
Q29yZTo6UGFnZSAqY29yZVBhZ2UoY29uc3QgRXZhc19PYmplY3QgKmV3a1ZpZXcpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuaCBiL1NvdXJjZS9XZWJLaXQvZWZs
L2V3ay9ld2tfdmlldy5oCmluZGV4IGQzNDc0YTY0YjM5M2Y2NWUxMDNjNDliMDJiNjU1NDM1ODNi
NTNkNmMuLjdkZTBlNDYyZjE3YzVhYWEzNDI4NzYzMmMyZDM0ZWYxNTQ3YTczN2EgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
ZWZsL2V3ay9ld2tfdmlldy5oCkBAIC05NSw2ICs5NSw3IEBACiAKICNpbmNsdWRlIDxFdmFzLmg+
CiAjaW5jbHVkZSA8Y2Fpcm8uaD4KKyNpbmNsdWRlIDxsaWJzb3VwL3NvdXAtc2Vzc2lvbi5oPgog
CiAjaWZkZWYgX19jcGx1c3BsdXMKIGV4dGVybiAiQyIgewpAQCAtMjMzNSw2ICsyMzM2LDM0IEBA
IEVBUEkgRWluYV9Cb29sIGV3a192aWV3X21peGVkX2NvbnRlbnRfZGlzcGxheWVkX2dldChjb25z
dCBFdmFzX09iamVjdCAqbyk7CiAgKi8KIEVBUEkgRWluYV9Cb29sIGV3a192aWV3X21peGVkX2Nv
bnRlbnRfcnVuX2dldChjb25zdCBFdmFzX09iamVjdCAqbyk7CiAKKy8qKgorICogUmV0dXJucyB0
aGUgU291cFNlc3Npb24gYXNzb2NpYXRlZCB3aXRoIHRoaXMgdmlldy4KKyAqCisgKiBCeSBkZWZh
dWx0LCBhbGwgdmlld3Mgc2hhcmUgdGhlIHNhbWUsIGRlZmF1bHQgc291cCBzZXNzaW9uIGFsc28g
YXZhaWxhYmxlCisgKiBieSBjYWxsaW5nIGV3a19uZXR3b3JrX2RlZmF1bHRfc291cF9zZXNzaW9u
X2dldC4KKyAqCisgKiBAcGFyYW0gbyBUaGUgdmlldyB0byBxdWVyeS4KKyAqCisgKiBAc2EgZXdr
X3ZpZXdfc291cF9zZXNzaW9uX3NldCwgZXdrX25ldHdvcmtfZGVmYXVsdF9zb3VwX3Nlc3Npb25f
Z2V0CisgKi8KK0VBUEkgU291cFNlc3Npb24qIGV3a192aWV3X3NvdXBfc2Vzc2lvbl9nZXQoY29u
c3QgRXZhc19PYmplY3QgKm8pOworCisvKioKKyAqIEFzc29jaWF0ZXMgYSBuZXcgU291cFNlc3Np
b24gd2l0aCB0aGlzIHZpZXcuCisgKgorICogT25seSBzZXNzaW9ucyBvZiB0eXBlIFNvdXBTZXNz
aW9uQXN5bmMgYXJlIHN1cHBvcnRlZC4KKyAqCisgKiBAbm90ZSBDaGFuZ2luZyB0aGUgU291cFNl
c3Npb24gc2hvdWxkIG5vdCBiZSBuZWVkZWQgaW4gbW9zdCBjYXNlcy4gSWYKKyAqICAgICAgIGEg
ZGlmZmVyZW50IFNvdXBTZXNzaW9uIGlzIHVzZWQsIHRoZSBjb29raWUgbWFuYWdlbWVudCBhbmQg
c29tZQorICogICAgICAgbmV0d29yayBmdW5jdGlvbnMgaW4gZXdrIHdpbGwgbm90IGhhdmUgYW55
IGVmZmVjdCBvbiBpdC4KKyAqCisgKiBAcGFyYW0gbyBUaGUgdmlldyB0byBjaGFuZ2UuCisgKiBA
cGFyYW0gc2Vzc2lvbiBUaGUgbmV3IFNvdXBTZXNzaW9uLgorICoKKyAqIEBzYSBld2tfdmlld19z
b3VwX3Nlc3Npb25fZ2V0LCBld2tfbmV0d29ya19kZWZhdWx0X3NvdXBfc2Vzc2lvbl9nZXQKKyAq
LworRUFQSSB2b2lkIGV3a192aWV3X3NvdXBfc2Vzc2lvbl9zZXQoRXZhc19PYmplY3QgKm8sIFNv
dXBTZXNzaW9uICpzZXNzaW9uKTsKKwogI2lmZGVmIF9fY3BsdXNwbHVzCiB9CiAjZW5kaWYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL0dOVW1ha2VmaWxlLmFtIGIvU291cmNlL1dlYktp
dC9ndGsvR05VbWFrZWZpbGUuYW0KaW5kZXggMzhkMmJiMDJhMjg4NWRhMzkwOGFiYjhmMzY2MTNk
MTE5NDA5YzJiNy4uNTY3ZDc5YmI5MDM1NGZkMWRhNDI4NGM1ZWZhYmJjZmFjNjFiYWVhZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9ndGsvR05VbWFrZWZpbGUuYW0KKysrIGIvU291cmNlL1dl
YktpdC9ndGsvR05VbWFrZWZpbGUuYW0KQEAgLTIwNCw2ICsyMDQsNyBAQCB3ZWJraXRndGtfc291
cmNlcyArPSBcCiAJU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50
R3RrLmggXAogCVNvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xp
ZW50R3RrLmNwcCBcCiAJU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2Fk
ZXJDbGllbnRHdGsuaCBcCisJU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRnJhbWVO
ZXR3b3JraW5nQ29udGV4dEd0ay5jcHAgXAogCVNvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBw
b3J0L0ZyYW1lTmV0d29ya2luZ0NvbnRleHRHdGsuaCBcCiAJU291cmNlL1dlYktpdC9ndGsvV2Vi
Q29yZVN1cHBvcnQvRnVsbHNjcmVlblZpZGVvQ29udHJvbGxlci5jcHAgXAogCVNvdXJjZS9XZWJL
aXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Z1bGxzY3JlZW5WaWRlb0NvbnRyb2xsZXIuaCBcCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9GcmFtZU5ldHdvcmtpbmdD
b250ZXh0R3RrLmNwcCBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTmV0
d29ya2luZ0NvbnRleHRHdGsuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRiOWQxMjQ5MTMyNjk2Njc4Zjc0M2Rk
YzE4MzE1ZWRkZmYzMjIxYzgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L2d0ay9X
ZWJDb3JlU3VwcG9ydC9GcmFtZU5ldHdvcmtpbmdDb250ZXh0R3RrLmNwcApAQCAtMCwwICsxLDM1
IEBACisvKgorICAgIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3Ig
aXRzIHN1YnNpZGlhcnkoLWllcykKKyAgICBDb3B5cmlnaHQgKEMpIDIwMTIgUHJvRlVTSU9OIGVt
YmVkZGVkIHN5c3RlbXMKKworICAgIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3Ug
Y2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1z
IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICAgIExpY2Vuc2UgYXMgcHVibGlz
aGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICAgIHZlcnNpb24g
MiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4K
KworICAgIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdp
bGwgYmUgdXNlZnVsLAorICAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVu
IHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAgICBMaWJyYXJ5IEdlbmVy
YWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworICAgIFlvdSBzaG91bGQgaGF2
ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vu
c2UKKyAgICBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElC
LiAgSWYgbm90LCB3cml0ZSB0bworICAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIElu
Yy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgICAgQm9zdG9uLCBNQSAwMjEx
MC0xMzAxLCBVU0EuCisqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRnJhbWVO
ZXR3b3JraW5nQ29udGV4dEd0ay5oIgorCisjaW5jbHVkZSAiUmVzb3VyY2VIYW5kbGUuaCIKKwor
dXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitTb3VwU2Vz
c2lvbiogRnJhbWVOZXR3b3JraW5nQ29udGV4dEd0azo6c291cFNlc3Npb24oKSBjb25zdAorewor
ICAgIHJldHVybiBSZXNvdXJjZUhhbmRsZTo6ZGVmYXVsdFNlc3Npb24oKTsKK30KKworfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRnJhbWVOZXR3b3JraW5n
Q29udGV4dEd0ay5oIGIvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRnJhbWVOZXR3
b3JraW5nQ29udGV4dEd0ay5oCmluZGV4IDhlNGMyMTQ4ZDIxNmJiZTRjNWVmMDNiZGExMWQ0MjBi
MzQ2YTQyNmMuLmE1OWE5NDA5OWFiZmQxYzdjMzRiZTg0ZjVjMDg0MzQxNDhlNzUzODQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTmV0d29ya2luZ0Nv
bnRleHRHdGsuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9GcmFtZU5l
dHdvcmtpbmdDb250ZXh0R3RrLmgKQEAgLTMyLDYgKzMyLDcgQEAgcHVibGljOgogICAgIH0KIAog
ICAgIFdlYkNvcmU6OkZyYW1lKiBjb3JlRnJhbWUoKSBjb25zdCB7IHJldHVybiBmcmFtZSgpOyB9
CisgICAgdmlydHVhbCBTb3VwU2Vzc2lvbiogc291cFNlc3Npb24oKSBjb25zdDsKIAogcHJpdmF0
ZToKICAgICBGcmFtZU5ldHdvcmtpbmdDb250ZXh0R3RrKFdlYkNvcmU6OkZyYW1lKiBmcmFtZSkK
</data>

          </attachment>
      

    </bug>

</bugzilla>