<?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>50698</bug_id>
          
          <creation_ts>2010-12-08 10:47:14 -0800</creation_ts>
          <short_desc>[GTK] Split webkitprivate.{cpp,h} in more manageable chunks</short_desc>
          <delta_ts>2011-01-03 14:07:48 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKitGTK</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>Gtk</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Gustavo Noronha (kov)">gustavo</reporter>
          <assigned_to name="Gustavo Noronha (kov)">gustavo</assigned_to>
          <cc>abarth</cc>
    
    <cc>eric</cc>
    
    <cc>gustavo</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>318880</commentid>
    <comment_count>0</comment_count>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2010-12-08 10:47:14 -0800</bug_when>
    <thetext>We currently have this huge collection of definitions, and code called webkitprivate. Splitting it into per-class files will make it more manageable and simpler.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>318887</commentid>
    <comment_count>1</comment_count>
      <attachid>75930</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2010-12-08 10:53:05 -0800</bug_when>
    <thetext>Created attachment 75930
split webkitwebviewprivate.h out of webkitprivate.h</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>318895</commentid>
    <comment_count>2</comment_count>
      <attachid>75930</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2010-12-08 11:06:42 -0800</bug_when>
    <thetext>Comment on attachment 75930
split webkitwebviewprivate.h out of webkitprivate.h

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

I love this change.

&gt; WebKit/gtk/WebCoreSupport/ChromeClientGtk.cpp:60
&gt;  #include &lt;wtf/text/CString.h&gt;
&gt; -
&gt;  #include &lt;glib.h&gt;
&gt;  #include &lt;glib/gi18n-lib.h&gt;
&gt;  #include &lt;gtk/gtk.h&gt;

These should be in alphabetical order.

&gt; WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:22
&gt;  

No newline here.

&gt; WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:-32
&gt;  #include &lt;wtf/text/CString.h&gt;
&gt; -
&gt;  #include &lt;glib/gi18n-lib.h&gt;
&gt;  #include &lt;glib-object.h&gt;
&gt;  #include &lt;gtk/gtk.h&gt;
&gt; -#include &quot;webkitprivate.h&quot;

These should be in alphabetical order.

&gt; WebKit/gtk/WebCoreSupport/FrameLoaderClientGtk.cpp:74
&gt;  #include &lt;wtf/text/CString.h&gt;
&gt;  #include &lt;wtf/text/StringConcatenate.h&gt;
&gt; -
&gt;  #include &lt;JavaScriptCore/APICast.h&gt;
&gt;  #include &lt;gio/gio.h&gt;
&gt;  #include &lt;glib.h&gt;

Run these through sort too.

&gt; WebKit/gtk/webkit/webkitwebview.cpp:57
&gt; +#include &quot;GOwnPtr.h&quot;
&gt; +#include &quot;GOwnPtrGtk.h&quot;

I think should be like &lt;wtf/gobject/*&gt; since they are WTF includes.

&gt; WebKit/gtk/webkit/webkitwebview.cpp:93
&gt;  #include &lt;wtf/text/CString.h&gt;
&gt; -
&gt;  #include &lt;gdk/gdkkeysyms.h&gt;
&gt; +#include &lt;glib/gi18n-lib.h&gt;

Alpha ordering here.

&gt; WebKit/gtk/webkit/webkitwebviewprivate.h:50
&gt; +extern &quot;C&quot; {
&gt; +    #define WEBKIT_WEB_VIEW_GET_PRIVATE(obj)    (G_TYPE_INSTANCE_GET_PRIVATE((obj), WEBKIT_TYPE_WEB_VIEW, WebKitWebViewPrivate))

No indentation for this block.

&gt; WebKit/gtk/webkit/webkitwebviewprivate.h:124
&gt; +    void
&gt; +    webkit_web_view_notify_ready(WebKitWebView* web_view);
&gt; +
&gt; +    void
&gt; +    webkit_web_view_request_download(WebKitWebView* web_view, WebKitNetworkRequest* request, const WebCore::ResourceResponse&amp; response = WebCore::ResourceResponse(), WebCore::ResourceHandle* handle = 0);
&gt; +
&gt; +    void
&gt; +    webkit_web_view_add_resource(WebKitWebView*, const char*, WebKitWebResource*);
&gt; +
&gt; +    void
&gt; +    webkit_web_view_add_main_resource(WebKitWebView*, const char*, WebKitWebResource*);
&gt; +
&gt; +    void
&gt; +    webkit_web_view_remove_resource(WebKitWebView*, const char*);

We should switch all these declarations to WebKit style since they aren&apos;t public API. Remove the newline after the type and between them and remove all undeeded variable names.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>318903</commentid>
    <comment_count>3</comment_count>
      <attachid>75932</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2010-12-08 11:20:27 -0800</bug_when>
    <thetext>Created attachment 75932
split webkitwebviewprivate.h

This should fix all the issues you raised =)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>318910</commentid>
    <comment_count>4</comment_count>
      <attachid>75932</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2010-12-08 11:30:29 -0800</bug_when>
    <thetext>Comment on attachment 75932
split webkitwebviewprivate.h

Okay!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>319569</commentid>
    <comment_count>5</comment_count>
      <attachid>75932</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2010-12-09 10:38:17 -0800</bug_when>
    <thetext>Comment on attachment 75932
split webkitwebviewprivate.h

Landed in r73539.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>319572</commentid>
    <comment_count>6</comment_count>
      <attachid>76091</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2010-12-09 10:39:45 -0800</bug_when>
    <thetext>Created attachment 76091
split WebKitWebFrame</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>319627</commentid>
    <comment_count>7</comment_count>
      <attachid>76100</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2010-12-09 11:43:31 -0800</bug_when>
    <thetext>Created attachment 76100
split WebKitNetworkRequest</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>319641</commentid>
    <comment_count>8</comment_count>
      <attachid>76103</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2010-12-09 12:11:41 -0800</bug_when>
    <thetext>Created attachment 76103
split web inspector</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>319798</commentid>
    <comment_count>9</comment_count>
      <attachid>76100</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2010-12-09 17:02:56 -0800</bug_when>
    <thetext>Comment on attachment 76100
split WebKitNetworkRequest

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

&gt; WebKit/gtk/webkit/webkitnetworkrequest.cpp:264
&gt; +WebKitNetworkRequest* kitNew(const WebCore::ResourceRequest&amp; resourceRequest)
&gt; +{
&gt; +    PlatformRefPtr&lt;SoupMessage&gt; soupMessage(adoptPlatformRef(resourceRequest.toSoupMessage()));
&gt; +    if (soupMessage)
&gt; +        return WEBKIT_NETWORK_REQUEST(g_object_new(WEBKIT_TYPE_NETWORK_REQUEST, &quot;message&quot;, soupMessage.get(), NULL));
&gt; +
&gt; +    return WEBKIT_NETWORK_REQUEST(g_object_new(WEBKIT_TYPE_NETWORK_REQUEST, &quot;uri&quot;, resourceRequest.url().string().utf8().data(), NULL));
&gt; +}
&gt; +

It&apos;s a shame that the WebKitNetworkRequest doesn&apos;t store a copy of the original resource request. If it&apos;s possible perhaps it would make sense to do that in another patch. The kitNew name seems a little funky here, but makes sense.

&gt; WebKit/gtk/webkit/webkitnetworkrequestprivate.h:28
&gt; +WebCore::ResourceRequest core(WebKitNetworkRequest* request);

Please remove this variable name before landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>319811</commentid>
    <comment_count>10</comment_count>
      <attachid>76103</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2010-12-09 17:16:00 -0800</bug_when>
    <thetext>Comment on attachment 76103
split web inspector

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

&gt; WebKit/gtk/webkit/webkitwebinspectorprivate.h:38
&gt; +WEBKIT_API void webkit_web_inspector_execute_script(WebKitWebInspector*, long, const gchar*);

I think here it makes sense to leave the variable names. Please add them back before landing. This should eventually move to DumpRenderTreeSupport, but that can be in another patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>320032</commentid>
    <comment_count>11</comment_count>
      <attachid>76091</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2010-12-10 02:08:18 -0800</bug_when>
    <thetext>Comment on attachment 76091
split WebKitWebFrame

Landed as r73696.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>320041</commentid>
    <comment_count>12</comment_count>
      <attachid>76100</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2010-12-10 02:26:31 -0800</bug_when>
    <thetext>Comment on attachment 76100
split WebKitNetworkRequest

Landed as r73701.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>320045</commentid>
    <comment_count>13</comment_count>
      <attachid>76103</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2010-12-10 02:27:27 -0800</bug_when>
    <thetext>Comment on attachment 76103
split web inspector

Landed as r73702.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>320143</commentid>
    <comment_count>14</comment_count>
      <attachid>76192</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2010-12-10 07:21:55 -0800</bug_when>
    <thetext>Created attachment 76192
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>320232</commentid>
    <comment_count>15</comment_count>
      <attachid>76218</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2010-12-10 10:32:15 -0800</bug_when>
    <thetext>Created attachment 76218
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>320277</commentid>
    <comment_count>16</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-12-10 11:45:17 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/73701 might have broken GTK Linux 32-bit Debug</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>320278</commentid>
    <comment_count>17</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-12-10 11:45:23 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/73702 might have broken GTK Linux 32-bit Debug</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>320454</commentid>
    <comment_count>18</comment_count>
      <attachid>76218</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2010-12-10 15:32:25 -0800</bug_when>
    <thetext>Comment on attachment 76218
Patch

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

Yay! Please fix the small nits before landing.

&gt; WebKit/gtk/webkit/webkitdownloadprivate.h:33
&gt; +void
&gt; +webkit_download_set_suggested_filename(WebKitDownload*, const gchar* suggestedFilename);

This should probably be one line here.

&gt; WebKit/gtk/webkit/webkitwebnavigationactionprivate.h:31
&gt; +WebKitWebNavigationReason kit(WebCore::NavigationType type);
&gt; +WebCore::NavigationType core(WebKitWebNavigationReason reason);

I think you can delete these variable names.

&gt; WebKit/gtk/webkit/webkitwebresourceprivate.h:46
&gt; +WebKitWebResource*
&gt; +webkit_web_resource_new_with_core_resource(PassRefPtr&lt;WebCore::ArchiveResource&gt;);
&gt; +
&gt; +void
&gt; +webkit_web_resource_init_with_core_resource(WebKitWebResource*, PassRefPtr&lt;WebCore::ArchiveResource&gt;);

I think maybe no extra newlines here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>320635</commentid>
    <comment_count>19</comment_count>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2010-12-11 03:29:33 -0800</bug_when>
    <thetext>(In reply to comment #18)
&gt; &gt; WebKit/gtk/webkit/webkitwebresourceprivate.h:46
&gt; &gt; +WebKitWebResource*
&gt; &gt; +webkit_web_resource_new_with_core_resource(PassRefPtr&lt;WebCore::ArchiveResource&gt;);
&gt; &gt; +
&gt; &gt; +void
&gt; &gt; +webkit_web_resource_init_with_core_resource(WebKitWebResource*, PassRefPtr&lt;WebCore::ArchiveResource&gt;);
&gt; 
&gt; I think maybe no extra newlines here.

These should probably become kitNew() and kit(), I guess.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>322261</commentid>
    <comment_count>20</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-12-14 15:14:14 -0800</bug_when>
    <thetext>Attachment 76218 was posted by a committer and has review+, assigning to Gustavo Noronha Silva for commit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>328169</commentid>
    <comment_count>21</comment_count>
      <attachid>77720</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2010-12-31 07:56:10 -0800</bug_when>
    <thetext>Created attachment 77720
final patch

ok, this is a rather big patch, but I think it makes sense to go in one go; it finally removes webkitprivate, and adds a new webkitgeneral module that holds the non-class-specific stuff, both public and private;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>328253</commentid>
    <comment_count>22</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-12-31 21:40:50 -0800</bug_when>
    <thetext>Attachment 77720 did not build on gtk:
Build output: http://queues.webkit.org/results/7224331</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>328526</commentid>
    <comment_count>23</comment_count>
      <attachid>77803</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2011-01-03 04:55:42 -0800</bug_when>
    <thetext>Created attachment 77803
final split, not with new files actually being added

Forgot to git add the new webkitgeneral* files.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>328587</commentid>
    <comment_count>24</comment_count>
      <attachid>77803</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2011-01-03 09:05:04 -0800</bug_when>
    <thetext>Comment on attachment 77803
final split, not with new files actually being added

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

Looks great! There are a couple issues below, which should be fixed before landing (where appropriate). In general, I think that webkitglobals makes more sense than webkitgeneral, but that&apos;s a matter of opinion.

&gt; WebKit/gtk/webkit/webkitgeneral.cpp:75
&gt; +SoupSession* webkit_get_default_session ()

There&apos;s an extra space here.

&gt; WebKit/gtk/webkit/webkitgeneral.cpp:220
&gt; +void webkit_init()

Do mind renaming this with camelCase now, to match WebKit style?

&gt; WebKit/gtk/webkit/webkitgeneralprivate.h:38
&gt; +#define WEBKIT_PARAM_READABLE ((GParamFlags)(G_PARAM_READABLE|G_PARAM_STATIC_NAME|G_PARAM_STATIC_NICK|G_PARAM_STATIC_BLURB))
&gt; +#define WEBKIT_PARAM_READWRITE ((GParamFlags)(G_PARAM_READWRITE|G_PARAM_STATIC_NAME|G_PARAM_STATIC_NICK|G_PARAM_STATIC_BLURB))

These are just defines, so they should probably go at the top of the file. I don&apos;t think they need to be in an extern &quot;C&quot; block.

&gt; WebKit/gtk/webkit/webkitgeneralprivate.h:40
&gt; +void webkit_init();

Is this ever called from a C file so that it needs to be in an extern &quot;C&quot;? I think it is probably unnecessary now and can be in the WebKit block above.

&gt; WebKit/gtk/webkit/webkitwebsettings.cpp:1449
&gt; +    return (WebCore::EditingBehaviorType)type;

This function just does a cast. I&apos;d much rather it be removed completely and replaced with static_cast&lt;WebCore::EditingBehaviorType(...) at all callsites. That avoids a function call.

&gt; WebKit/gtk/webkit/webkitwebsettingsprivate.h:41
&gt;  GSList* webkit_web_settings_get_enchant_dicts(WebKitWebView*);
&gt;  
&gt; +WTF::String webkitUserAgent();
&gt; +

If these aren&apos;t exported, so I think they belong outside the extern &quot;C&quot; block and in a WebKit block, just for clarity.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>328737</commentid>
    <comment_count>25</comment_count>
      <attachid>77803</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2011-01-03 13:20:52 -0800</bug_when>
    <thetext>Comment on attachment 77803
final split, not with new files actually being added

Landed as r74933. I ended up not moving some functions out of extern C as requested because they ended up causing undefined references.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>328758</commentid>
    <comment_count>26</comment_count>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2011-01-03 13:37:08 -0800</bug_when>
    <thetext>Why do I always forget to git add a few files?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>328780</commentid>
    <comment_count>27</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-01-03 14:07:48 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/74933 might have broken SnowLeopard Intel Release (Tests)
The following tests are not passing:
http/tests/xmlhttprequest/remember-bad-password.html</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>75930</attachid>
            <date>2010-12-08 10:53:05 -0800</date>
            <delta_ts>2010-12-08 11:20:27 -0800</delta_ts>
            <desc>split webkitwebviewprivate.h out of webkitprivate.h</desc>
            <filename>0001-split-webkitwebviewprivate.h.patch</filename>
            <type>text/plain</type>
            <size>30289</size>
            <attacher name="Gustavo Noronha (kov)">gustavo</attacher>
            
              <data encoding="base64">RnJvbSBhNTI5MjhmMTE1YTQ0ZTE4MjNhNTIwNTc2OTMxMDMyN2E0NThmOTg2IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBHdXN0YXZvIE5vcm9uaGEgU2lsdmEgPGduc0Bnbm9tZS5vcmc+
CkRhdGU6IFdlZCwgOCBEZWMgMjAxMCAxOTo1MjoxMCArMDEwMApTdWJqZWN0OiBbUEFUQ0hdIHNw
bGl0IHdlYmtpdHdlYnZpZXdwcml2YXRlLmgKCi0tLQogV2ViS2l0L2d0ay9DaGFuZ2VMb2cgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDM0ICsrKysrCiBXZWJLaXQvZ3RrL1dlYkNv
cmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5jcHAgICAgICB8ICAgMjIgKystLQogV2ViS2l0L2d0
ay9XZWJDb3JlU3VwcG9ydC9Db250ZXh0TWVudUNsaWVudEd0ay5jcHAgfCAgICA2ICstCiBXZWJL
aXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0RyYWdDbGllbnRHdGsuY3BwICAgICAgICB8ICAgIDEgKwog
Li4uL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5jcHAgICAgfCAgICAx
ICsKIFdlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50R3RrLmNwcCAgICAgIHwg
ICAgMSArCiBXZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNw
cCB8ICAgIDggKy0KIFdlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvSW5zcGVjdG9yQ2xpZW50R3Rr
LmNwcCAgIHwgICAgOSArLQogV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9QYXN0ZWJvYXJkSGVs
cGVyR3RrLmNwcCAgfCAgICA0ICstCiBXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRwcml2YXRlLmNw
cCAgICAgICAgICAgICAgICB8ICAgNDggLS0tLS0tCiBXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRw
cml2YXRlLmggICAgICAgICAgICAgICAgICB8ICAxMTYgLS0tLS0tLS0tLS0tLS0tCiBXZWJLaXQv
Z3RrL3dlYmtpdC93ZWJraXR3ZWJiYWNrZm9yd2FyZGxpc3QuY3BwICAgICB8ICAgIDEgKwogV2Vi
S2l0L2d0ay93ZWJraXQvd2Via2l0d2ViZGF0YXNvdXJjZS5jcHAgICAgICAgICAgfCAgICA4ICst
CiBXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJmcmFtZS5jcHAgICAgICAgICAgICAgICB8ICAg
MjEgKystLQogV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vidmlldy5jcHAgICAgICAgICAgICAg
ICAgfCAgIDkwICsrKysrKysrKy0tLQogV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vidmlld3By
aXZhdGUuaCAgICAgICAgICAgfCAgMTU0ICsrKysrKysrKysrKysrKysrKysrCiAxNiBmaWxlcyBj
aGFuZ2VkLCAzMDIgaW5zZXJ0aW9ucygrKSwgMjIyIGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUg
MTAwNjQ0IFdlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnZpZXdwcml2YXRlLmgKCmRpZmYgLS1n
aXQgYS9XZWJLaXQvZ3RrL0NoYW5nZUxvZyBiL1dlYktpdC9ndGsvQ2hhbmdlTG9nCmluZGV4IDc0
NTYyNTguLjFjYjAwZDAgMTAwNjQ0Ci0tLSBhL1dlYktpdC9ndGsvQ2hhbmdlTG9nCisrKyBiL1dl
YktpdC9ndGsvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMzkgQEAKIDIwMTAtMTItMDggIEd1c3Rhdm8g
Tm9yb25oYSBTaWx2YSAgPGd1c3Rhdm8ubm9yb25oYUBjb2xsYWJvcmEuY28udWs+CiAKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW0dUS10gU3BsaXQgd2Vi
a2l0cHJpdmF0ZS57Y3BwLGh9IGluIG1vcmUgbWFuYWdlYWJsZSBjaHVua3MKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUwNjk4CisKKyAgICAgICAgU3Bs
aXQgcHJpdmF0ZSBiaXRzIG9mIFdlYktpdFdlYlZpZXcgdG8gaXRzIG93biBwcml2YXRlIGhlYWRl
ciwgYW5kCisgICAgICAgIHRvIGl0cyBpbXBsZW1lbnRhdGlvbiBmaWxlLiBUYWtlIHRoZSBvcHBv
cnR1bml0eSB0byBmaXggaW5jbHVkZXMKKyAgICAgICAgc29ydGluZyB0byBjb21wbHkgd2l0aCB0
aGUgc3R5bGUgZ3VpZGUuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRH
dGsuY3BwOgorICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnQ6OmVudGVyRnVsbHNjcmVlbkZv
ck5vZGUpOgorICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnQ6OmV4aXRGdWxsc2NyZWVuRm9y
Tm9kZSk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ29udGV4dE1lbnVDbGllbnRHdGsuY3Bw
OgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0RyYWdDbGllbnRHdGsuY3BwOgorICAgICAgICAq
IFdlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5jcHA6CisgICAgICAgICog
V2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50R3RrLmNwcDoKKyAgICAgICAgKiBXZWJDb3JlU3Vw
cG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5jcHA6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQv
SW5zcGVjdG9yQ2xpZW50R3RrLmNwcDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9QYXN0ZWJv
YXJkSGVscGVyR3RrLmNwcDoKKyAgICAgICAgKiB3ZWJraXQvd2Via2l0cHJpdmF0ZS5jcHA6Cisg
ICAgICAgICh3ZWJraXRfaW5pdCk6CisgICAgICAgICogd2Via2l0L3dlYmtpdHByaXZhdGUuaDoK
KyAgICAgICAgKiB3ZWJraXQvd2Via2l0d2ViYmFja2ZvcndhcmRsaXN0LmNwcDoKKyAgICAgICAg
KiB3ZWJraXQvd2Via2l0d2ViZGF0YXNvdXJjZS5jcHA6CisgICAgICAgICogd2Via2l0L3dlYmtp
dHdlYmZyYW1lLmNwcDoKKyAgICAgICAgKiB3ZWJraXQvd2Via2l0d2Vidmlldy5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OmNvcmUpOgorICAgICAgICAoV2ViS2l0OjpraXQpOgorICAgICAgICAoV2Vi
S2l0Ojp3ZWJWaWV3RW50ZXJGdWxsc2NyZWVuKToKKyAgICAgICAgKFdlYktpdDo6d2ViVmlld0V4
aXRGdWxsc2NyZWVuKToKKyAgICAgICAgKiB3ZWJraXQvd2Via2l0d2Vidmlld3ByaXZhdGUuaDog
QWRkZWQuCisKKzIwMTAtMTItMDggIEd1c3Rhdm8gTm9yb25oYSBTaWx2YSAgPGd1c3Rhdm8ubm9y
b25oYUBjb2xsYWJvcmEuY28udWs+CisKICAgICAgICAgUmV2aWV3ZWQgYnkgWGFuIExvcGV6Lgog
CiAgICAgICAgIFRoZSBzdG9yYWdlIGZvciB0aGUgc3VicmVzb3VyY2VzIGlzIGEgR0hhc2hUYWJs
ZSB3aGljaCBkb2VzIG5vdApkaWZmIC0tZ2l0IGEvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9D
aHJvbWVDbGllbnRHdGsuY3BwIGIvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGll
bnRHdGsuY3BwCmluZGV4IDE5MGFlOWIuLjU5MzAzNjkgMTAwNjQ0Ci0tLSBhL1dlYktpdC9ndGsv
V2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNwcAorKysgYi9XZWJLaXQvZ3RrL1dlYkNv
cmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5jcHAKQEAgLTI1LDM2ICsyNSwzNiBAQAogI2luY2x1
ZGUgIkNocm9tZUNsaWVudEd0ay5oIgogCiAjaW5jbHVkZSAiQ29uc29sZS5oIgorI2lmIEVOQUJM
RShEQVRBQkFTRSkKKyNpbmNsdWRlICJEYXRhYmFzZVRyYWNrZXIuaCIKKyNlbmRpZgogI2luY2x1
ZGUgIkR1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5oIgogI2luY2x1ZGUgIkVsZW1lbnQuaCIKLSNp
bmNsdWRlICJGaWxlU3lzdGVtLmgiCiAjaW5jbHVkZSAiRmlsZUNob29zZXIuaCIKKyNpbmNsdWRl
ICJGaWxlU3lzdGVtLmgiCiAjaW5jbHVkZSAiRmxvYXRSZWN0LmgiCiAjaW5jbHVkZSAiRnJhbWVM
b2FkUmVxdWVzdC5oIgogI2luY2x1ZGUgIkZyYW1lVmlldy5oIgogI2luY2x1ZGUgIkd0a1ZlcnNp
b25pbmcuaCIKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKLSNpbmNsdWRlICJJbnRSZWN0LmgiCiAj
aW5jbHVkZSAiSGl0VGVzdFJlc3VsdC5oIgogI2luY2x1ZGUgIkljb24uaCIKKyNpbmNsdWRlICJJ
bnRSZWN0LmgiCiAjaW5jbHVkZSAiS1VSTC5oIgogI2luY2x1ZGUgIk5hdmlnYXRpb25BY3Rpb24u
aCIKKyNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgogI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5n
LmgiCiAjaW5jbHVkZSAiUG9wdXBNZW51Q2xpZW50LmgiCiAjaW5jbHVkZSAiUG9wdXBNZW51R3Rr
LmgiCiAjaW5jbHVkZSAiU2VhcmNoUG9wdXBNZW51R3RrLmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlP
cmlnaW4uaCIKKyNpbmNsdWRlICJXaW5kb3dGZWF0dXJlcy5oIgogI2luY2x1ZGUgIndlYmtpdGdl
b2xvY2F0aW9ucG9saWN5ZGVjaXNpb24uaCIKLSNpbmNsdWRlICJ3ZWJraXR3ZWJ2aWV3LmgiCiAj
aW5jbHVkZSAid2Via2l0bmV0d29ya3JlcXVlc3QuaCIKICNpbmNsdWRlICJ3ZWJraXRwcml2YXRl
LmgiCi0jaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKLSNpbmNsdWRlICJXaW5kb3dGZWF0dXJl
cy5oIgotI2lmIEVOQUJMRShEQVRBQkFTRSkKLSNpbmNsdWRlICJEYXRhYmFzZVRyYWNrZXIuaCIK
LSNlbmRpZgorI2luY2x1ZGUgIndlYmtpdHdlYnZpZXcuaCIKKyNpbmNsdWRlICJ3ZWJraXR3ZWJ2
aWV3cHJpdmF0ZS5oIgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KLQogI2luY2x1ZGUg
PGdsaWIuaD4KICNpbmNsdWRlIDxnbGliL2dpMThuLWxpYi5oPgogI2luY2x1ZGUgPGd0ay9ndGsu
aD4KQEAgLTY2OCw3ICs2NjgsNyBAQCB2b2lkIENocm9tZUNsaWVudDo6ZW50ZXJGdWxsc2NyZWVu
Rm9yTm9kZShOb2RlKiBub2RlKQogICAgIFdlYkNvcmU6OkZyYW1lKiBmcmFtZSA9IG5vZGUtPmRv
Y3VtZW50KCktPmZyYW1lKCk7CiAgICAgV2ViS2l0V2ViRnJhbWUqIHdlYkZyYW1lID0ga2l0KGZy
YW1lKTsKICAgICBXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3ID0gZ2V0Vmlld0Zyb21GcmFtZSh3ZWJG
cmFtZSk7Ci0gICAgd2Via2l0V2ViVmlld0VudGVyRnVsbHNjcmVlbih3ZWJWaWV3LCBub2RlKTsK
KyAgICB3ZWJWaWV3RW50ZXJGdWxsc2NyZWVuKHdlYlZpZXcsIG5vZGUpOwogfQogCiB2b2lkIENo
cm9tZUNsaWVudDo6ZXhpdEZ1bGxzY3JlZW5Gb3JOb2RlKE5vZGUqIG5vZGUpCkBAIC02NzYsNyAr
Njc2LDcgQEAgdm9pZCBDaHJvbWVDbGllbnQ6OmV4aXRGdWxsc2NyZWVuRm9yTm9kZShOb2RlKiBu
b2RlKQogICAgIFdlYkNvcmU6OkZyYW1lKiBmcmFtZSA9IG5vZGUtPmRvY3VtZW50KCktPmZyYW1l
KCk7CiAgICAgV2ViS2l0V2ViRnJhbWUqIHdlYkZyYW1lID0ga2l0KGZyYW1lKTsKICAgICBXZWJL
aXRXZWJWaWV3KiB3ZWJWaWV3ID0gZ2V0Vmlld0Zyb21GcmFtZSh3ZWJGcmFtZSk7Ci0gICAgd2Vi
a2l0V2ViVmlld0V4aXRGdWxsc2NyZWVuKHdlYlZpZXcpOworICAgIHdlYlZpZXdFeGl0RnVsbHNj
cmVlbih3ZWJWaWV3KTsKIH0KICNlbmRpZgogCmRpZmYgLS1naXQgYS9XZWJLaXQvZ3RrL1dlYkNv
cmVTdXBwb3J0L0NvbnRleHRNZW51Q2xpZW50R3RrLmNwcCBiL1dlYktpdC9ndGsvV2ViQ29yZVN1
cHBvcnQvQ29udGV4dE1lbnVDbGllbnRHdGsuY3BwCmluZGV4IDA2OWZiMTkuLjNlM2U5NTcgMTAw
NjQ0Ci0tLSBhL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ29udGV4dE1lbnVDbGllbnRHdGsu
Y3BwCisrKyBiL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ29udGV4dE1lbnVDbGllbnRHdGsu
Y3BwCkBAIC0xOCwxOCArMTgsMTggQEAKICAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5j
bHVkZSAiQ29udGV4dE1lbnUuaCIKICNpbmNsdWRlICJDb250ZXh0TWVudUNsaWVudEd0ay5oIgog
CisjaW5jbHVkZSAiQ29udGV4dE1lbnUuaCIKICNpbmNsdWRlICJIaXRUZXN0UmVzdWx0LmgiCiAj
aW5jbHVkZSAiS1VSTC5oIgogI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCisjaW5jbHVkZSAi
d2Via2l0cHJpdmF0ZS5oIgorI2luY2x1ZGUgIndlYmtpdHdlYnZpZXdwcml2YXRlLmgiCiAjaW5j
bHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgotCiAjaW5jbHVkZSA8Z2xpYi9naTE4bi1saWIuaD4K
ICNpbmNsdWRlIDxnbGliLW9iamVjdC5oPgogI2luY2x1ZGUgPGd0ay9ndGsuaD4KLSNpbmNsdWRl
ICJ3ZWJraXRwcml2YXRlLmgiCiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCmRpZmYgLS1n
aXQgYS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0RyYWdDbGllbnRHdGsuY3BwIGIvV2ViS2l0
L2d0ay9XZWJDb3JlU3VwcG9ydC9EcmFnQ2xpZW50R3RrLmNwcAppbmRleCBiZTBmYjEwLi4zZjA3
MTBkIDEwMDY0NAotLS0gYS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0RyYWdDbGllbnRHdGsu
Y3BwCisrKyBiL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRHJhZ0NsaWVudEd0ay5jcHAKQEAg
LTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlICJQYXN0ZWJvYXJkSGVscGVyLmgiCiAjaW5jbHVkZSAi
UmVuZGVyT2JqZWN0LmgiCiAjaW5jbHVkZSAid2Via2l0cHJpdmF0ZS5oIgorI2luY2x1ZGUgIndl
YmtpdHdlYnZpZXdwcml2YXRlLmgiCiAjaW5jbHVkZSAid2Via2l0d2Vidmlldy5oIgogI2luY2x1
ZGUgPGdkay9nZGsuaD4KICNpbmNsdWRlIDxndGsvZ3RrLmg+CmRpZmYgLS1naXQgYS9XZWJLaXQv
Z3RrL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5jcHAgYi9XZWJLaXQv
Z3RrL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5jcHAKaW5kZXggMTA2
OTRkMC4uZGU5ZmViNyAxMDA2NDQKLS0tIGEvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9EdW1w
UmVuZGVyVHJlZVN1cHBvcnRHdGsuY3BwCisrKyBiL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQv
RHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmNwcApAQCAtNDUsNiArNDUsNyBAQAogI2luY2x1ZGUg
IlNWR1NNSUxFbGVtZW50LmgiCiAjZW5kaWYKICNpbmNsdWRlICJ3ZWJraXRwcml2YXRlLmgiCisj
aW5jbHVkZSAid2Via2l0d2Vidmlld3ByaXZhdGUuaCIKICNpbmNsdWRlICJ3ZWJraXR3ZWJ2aWV3
LmgiCiAjaW5jbHVkZSAid2Via2l0d2ViZnJhbWUuaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29y
ZS9BUElDYXN0Lmg+CmRpZmYgLS1naXQgYS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0VkaXRv
ckNsaWVudEd0ay5jcHAgYi9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEd0
ay5jcHAKaW5kZXggZGEwN2U1Ni4uNmUzMWIwMyAxMDA2NDQKLS0tIGEvV2ViS2l0L2d0ay9XZWJD
b3JlU3VwcG9ydC9FZGl0b3JDbGllbnRHdGsuY3BwCisrKyBiL1dlYktpdC9ndGsvV2ViQ29yZVN1
cHBvcnQvRWRpdG9yQ2xpZW50R3RrLmNwcApAQCAtNDYsNiArNDYsNyBAQAogI2luY2x1ZGUgIldp
bmRvd3NLZXlib2FyZENvZGVzLmgiCiAjaW5jbHVkZSAid2Via2l0bWFyc2hhbC5oIgogI2luY2x1
ZGUgIndlYmtpdHByaXZhdGUuaCIKKyNpbmNsdWRlICJ3ZWJraXR3ZWJ2aWV3cHJpdmF0ZS5oIgog
I2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KIAogLy8gQXJiaXRyYXJ5IGRlcHRoIGxpbWl0
IGZvciB0aGUgdW5kbyBzdGFjaywgdG8ga2VlcCBpdCBmcm9tIHVzaW5nCmRpZmYgLS1naXQgYS9X
ZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNwcCBiL1dlYktp
dC9ndGsvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuY3BwCmluZGV4IDFkZTM3
ZjQuLmFkZTRjNTggMTAwNjQ0Ci0tLSBhL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRnJhbWVM
b2FkZXJDbGllbnRHdGsuY3BwCisrKyBiL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRnJhbWVM
b2FkZXJDbGllbnRHdGsuY3BwCkBAIC0zNCw4ICszNCw4IEBACiAjaW5jbHVkZSAiRm9ybVN0YXRl
LmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIKICNpbmNsdWRlICJGcmFtZU5ldHdvcmtpbmdD
b250ZXh0R3RrLmgiCi0jaW5jbHVkZSAiRnJhbWVWaWV3LmgiCiAjaW5jbHVkZSAiRnJhbWVUcmVl
LmgiCisjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCiAjaW5jbHVkZSAiR093blB0ci5oIgogI2luY2x1
ZGUgIkdSZWZQdHIuaCIKICNpbmNsdWRlICJHdGtQbHVnaW5XaWRnZXQuaCIKQEAgLTQ1LDYgKzQ1
LDcgQEAKICNpbmNsdWRlICJIVE1MRnJhbWVPd25lckVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1M
TmFtZXMuaCIKICNpbmNsdWRlICJIVE1MUGx1Z0luRWxlbWVudC5oIgorI2luY2x1ZGUgIkpTRE9N
QmluZGluZy5oIgogI2luY2x1ZGUgIkpTRE9NV2luZG93LmgiCiAjaW5jbHVkZSAiTGFuZ3VhZ2Uu
aCIKICNpbmNsdWRlICJNSU1FVHlwZVJlZ2lzdHJ5LmgiCkBAIC01MiwxMSArNTMsMTAgQEAKICNp
bmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJQ
bHVnaW5EYXRhYmFzZS5oIgorI2luY2x1ZGUgIlByb2dyZXNzVHJhY2tlci5oIgogI2luY2x1ZGUg
IlJlbmRlclBhcnQuaCIKICNpbmNsdWRlICJSZXNvdXJjZUhhbmRsZS5oIgogI2luY2x1ZGUgIlJl
c291cmNlUmVxdWVzdC5oIgotI2luY2x1ZGUgIlByb2dyZXNzVHJhY2tlci5oIgotI2luY2x1ZGUg
IkpTRE9NQmluZGluZy5oIgogI2luY2x1ZGUgIlNjcmlwdENvbnRyb2xsZXIuaCIKICNpbmNsdWRl
ICJ3ZWJraXRlcnJvci5oIgogI2luY2x1ZGUgIndlYmtpdG5ldHdvcmtyZXF1ZXN0LmgiCkBAIC02
Niw5ICs2Niw5IEBACiAjaW5jbHVkZSAid2Via2l0d2VibmF2aWdhdGlvbmFjdGlvbi5oIgogI2lu
Y2x1ZGUgIndlYmtpdHdlYnBvbGljeWRlY2lzaW9uLmgiCiAjaW5jbHVkZSAid2Via2l0d2Vidmll
dy5oIgorI2luY2x1ZGUgIndlYmtpdHdlYnZpZXdwcml2YXRlLmgiCiAjaW5jbHVkZSA8d3RmL3Rl
eHQvQ1N0cmluZy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0NvbmNhdGVuYXRlLmg+Ci0K
ICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9BUElDYXN0Lmg+CiAjaW5jbHVkZSA8Z2lvL2dpby5o
PgogI2luY2x1ZGUgPGdsaWIuaD4KZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBv
cnQvSW5zcGVjdG9yQ2xpZW50R3RrLmNwcCBiL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvSW5z
cGVjdG9yQ2xpZW50R3RrLmNwcAppbmRleCAzMTJiOGM4Li4wYmRiOThmIDEwMDY0NAotLS0gYS9X
ZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0luc3BlY3RvckNsaWVudEd0ay5jcHAKKysrIGIvV2Vi
S2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9JbnNwZWN0b3JDbGllbnRHdGsuY3BwCkBAIC0yMSwxMyAr
MjEsMTQgQEAKICNpbmNsdWRlICJJbnNwZWN0b3JDbGllbnRHdGsuaCIKIAogI2luY2x1ZGUgIkZy
YW1lLmgiCi0jaW5jbHVkZSAid2Via2l0d2Vidmlldy5oIgotI2luY2x1ZGUgIndlYmtpdHdlYmlu
c3BlY3Rvci5oIgotI2luY2x1ZGUgIndlYmtpdHByaXZhdGUuaCIKLSNpbmNsdWRlICJ3ZWJraXR2
ZXJzaW9uLmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIk5v
dEltcGxlbWVudGVkLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKKyNpbmNsdWRlICJ3
ZWJraXRwcml2YXRlLmgiCisjaW5jbHVkZSAid2Via2l0dmVyc2lvbi5oIgorI2luY2x1ZGUgIndl
YmtpdHdlYmluc3BlY3Rvci5oIgorI2luY2x1ZGUgIndlYmtpdHdlYnZpZXcuaCIKKyNpbmNsdWRl
ICJ3ZWJraXR3ZWJ2aWV3cHJpdmF0ZS5oIgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4K
IAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CmRpZmYgLS1naXQgYS9XZWJLaXQvZ3RrL1dlYkNv
cmVTdXBwb3J0L1Bhc3RlYm9hcmRIZWxwZXJHdGsuY3BwIGIvV2ViS2l0L2d0ay9XZWJDb3JlU3Vw
cG9ydC9QYXN0ZWJvYXJkSGVscGVyR3RrLmNwcAppbmRleCAwMmRhMWQ0Li5lOTlmYzg0IDEwMDY0
NAotLS0gYS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L1Bhc3RlYm9hcmRIZWxwZXJHdGsuY3Bw
CisrKyBiL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvUGFzdGVib2FyZEhlbHBlckd0ay5jcHAK
QEAgLTI0LDEwICsyNCwxMCBAQAogI2luY2x1ZGUgIkRhdGFPYmplY3RHdGsuaCIKICNpbmNsdWRl
ICJGb2N1c0NvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJGcmFtZS5oIgotI2luY2x1ZGUgPGd0ay9n
dGsuaD4KICNpbmNsdWRlICJ3ZWJraXR3ZWJmcmFtZS5oIgogI2luY2x1ZGUgIndlYmtpdHdlYnZp
ZXcuaCIKLSNpbmNsdWRlICJ3ZWJraXRwcml2YXRlLmgiCisjaW5jbHVkZSAid2Via2l0d2Vidmll
d3ByaXZhdGUuaCIKKyNpbmNsdWRlIDxndGsvZ3RrLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJD
b3JlOwogCmRpZmYgLS1naXQgYS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRwcml2YXRlLmNwcCBi
L1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHByaXZhdGUuY3BwCmluZGV4IDUyY2U4OTYuLmIwY2Y3
NDQgMTAwNjQ0Ci0tLSBhL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHByaXZhdGUuY3BwCisrKyBi
L1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHByaXZhdGUuY3BwCkBAIC05MCwyNSArOTAsNiBAQCBX
ZWJLaXRXZWJGcmFtZSoga2l0KFdlYkNvcmU6OkZyYW1lKiBjb3JlRnJhbWUpCiAgICAgcmV0dXJu
IGNsaWVudCA/IGNsaWVudC0+d2ViRnJhbWUoKSA6IDA7CiB9CiAKLVdlYkNvcmU6OlBhZ2UqIGNv
cmUoV2ViS2l0V2ViVmlldyogd2ViVmlldykKLXsKLSAgICBpZiAoIXdlYlZpZXcpCi0gICAgICAg
IHJldHVybiAwOwotCi0gICAgV2ViS2l0V2ViVmlld1ByaXZhdGUqIHByaXYgPSB3ZWJWaWV3LT5w
cml2OwotICAgIHJldHVybiBwcml2ID8gcHJpdi0+Y29yZVBhZ2UgOiAwOwotfQotCi1XZWJLaXRX
ZWJWaWV3KiBraXQoV2ViQ29yZTo6UGFnZSogY29yZVBhZ2UpCi17Ci0gICAgaWYgKCFjb3JlUGFn
ZSkKLSAgICAgICAgcmV0dXJuIDA7Ci0KLSAgICBBU1NFUlQoY29yZVBhZ2UtPmNocm9tZSgpKTsK
LSAgICBXZWJLaXQ6OkNocm9tZUNsaWVudCogY2xpZW50ID0gc3RhdGljX2Nhc3Q8V2ViS2l0OjpD
aHJvbWVDbGllbnQqPihjb3JlUGFnZS0+Y2hyb21lKCktPmNsaWVudCgpKTsKLSAgICByZXR1cm4g
Y2xpZW50ID8gY2xpZW50LT53ZWJWaWV3KCkgOiAwOwotfQotCiBXZWJLaXRXZWJOYXZpZ2F0aW9u
UmVhc29uIGtpdChXZWJDb3JlOjpOYXZpZ2F0aW9uVHlwZSB0eXBlKQogewogICAgIHJldHVybiAo
V2ViS2l0V2ViTmF2aWdhdGlvblJlYXNvbil0eXBlOwpAQCAtMzE2LDMyICsyOTcsMyBAQCB2b2lk
IHdlYmtpdF9pbml0KCkKIAogICAgIHNvdXBfc2Vzc2lvbl9hZGRfZmVhdHVyZV9ieV90eXBlKHNl
c3Npb24sIFNPVVBfVFlQRV9DT05URU5UX0RFQ09ERVIpOwogfQotCi12b2lkIHdlYmtpdFdlYlZp
ZXdFbnRlckZ1bGxzY3JlZW4oV2ViS2l0V2ViVmlldyogd2ViVmlldywgTm9kZSogbm9kZSkKLXsK
LSAgICBpZiAoIW5vZGUtPmhhc1RhZ05hbWUoSFRNTE5hbWVzOjp2aWRlb1RhZykpCi0gICAgICAg
IHJldHVybjsKLQotI2lmIEVOQUJMRShWSURFTykKLSAgICBIVE1MTWVkaWFFbGVtZW50KiB2aWRl
b0VsZW1lbnQgPSBzdGF0aWNfY2FzdDxIVE1MTWVkaWFFbGVtZW50Kj4obm9kZSk7Ci0gICAgV2Vi
S2l0V2ViVmlld1ByaXZhdGUqIHByaXYgPSB3ZWJWaWV3LT5wcml2OwotCi0gICAgLy8gRmlyc3Qg
ZXhpdCBGdWxsc2NyZWVuIGZvciB0aGUgb2xkIG1lZGlhRWxlbWVudC4KLSAgICBpZiAocHJpdi0+
ZnVsbHNjcmVlblZpZGVvQ29udHJvbGxlcikKLSAgICAgICAgcHJpdi0+ZnVsbHNjcmVlblZpZGVv
Q29udHJvbGxlci0+ZXhpdEZ1bGxzY3JlZW4oKTsKLQotICAgIHByaXYtPmZ1bGxzY3JlZW5WaWRl
b0NvbnRyb2xsZXIgPSBuZXcgRnVsbHNjcmVlblZpZGVvQ29udHJvbGxlcjsKLSAgICBwcml2LT5m
dWxsc2NyZWVuVmlkZW9Db250cm9sbGVyLT5zZXRNZWRpYUVsZW1lbnQodmlkZW9FbGVtZW50KTsK
LSAgICBwcml2LT5mdWxsc2NyZWVuVmlkZW9Db250cm9sbGVyLT5lbnRlckZ1bGxzY3JlZW4oKTsK
LSNlbmRpZgotfQotCi12b2lkIHdlYmtpdFdlYlZpZXdFeGl0RnVsbHNjcmVlbihXZWJLaXRXZWJW
aWV3KiB3ZWJWaWV3KQotewotI2lmIEVOQUJMRShWSURFTykKLSAgICBXZWJLaXRXZWJWaWV3UHJp
dmF0ZSogcHJpdiA9IHdlYlZpZXctPnByaXY7Ci0gICAgaWYgKHByaXYtPmZ1bGxzY3JlZW5WaWRl
b0NvbnRyb2xsZXIpCi0gICAgICAgIHByaXYtPmZ1bGxzY3JlZW5WaWRlb0NvbnRyb2xsZXItPmV4
aXRGdWxsc2NyZWVuKCk7Ci0jZW5kaWYKLX0KLQpkaWZmIC0tZ2l0IGEvV2ViS2l0L2d0ay93ZWJr
aXQvd2Via2l0cHJpdmF0ZS5oIGIvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0cHJpdmF0ZS5oCmlu
ZGV4IDBmOGQ3MDAuLmFjOGQ3ZTQgMTAwNjQ0Ci0tLSBhL1dlYktpdC9ndGsvd2Via2l0L3dlYmtp
dHByaXZhdGUuaAorKysgYi9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRwcml2YXRlLmgKQEAgLTU3
LDcgKzU3LDYgQEAKICNpbmNsdWRlICJJbnRQb2ludC5oIgogI2luY2x1ZGUgIkludFJlY3QuaCIK
ICNpbmNsdWRlICJGcmFtZUxvYWRlckNsaWVudC5oIgotI2luY2x1ZGUgIkZ1bGxzY3JlZW5WaWRl
b0NvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJOb2RlLmgiCiAjaW5jbHVkZSAiUGFnZS5oIgogI2lu
Y2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCkBAIC04Nyw5ICs4Niw2IEBAIG5hbWVzcGFjZSBXZWJL
aXQgewogICAgIFdlYkNvcmU6OkZyYW1lKiBjb3JlKFdlYktpdFdlYkZyYW1lKik7CiAgICAgV2Vi
S2l0V2ViRnJhbWUqIGtpdChXZWJDb3JlOjpGcmFtZSopOwogCi0gICAgV2ViQ29yZTo6UGFnZSog
Y29yZShXZWJLaXRXZWJWaWV3Kik7Ci0gICAgV2ViS2l0V2ViVmlldyoga2l0KFdlYkNvcmU6OlBh
Z2UqKTsKLQogICAgIFdlYkNvcmU6Okhpc3RvcnlJdGVtKiBjb3JlKFdlYktpdFdlYkhpc3RvcnlJ
dGVtKik7CiAgICAgV2ViS2l0V2ViSGlzdG9yeUl0ZW0qIGtpdChQYXNzUmVmUHRyPFdlYkNvcmU6
Okhpc3RvcnlJdGVtPik7CiAKQEAgLTExMCwxNSArMTA2LDYgQEAgbmFtZXNwYWNlIFdlYktpdCB7
CiAgICAgV2ViS2l0SGl0VGVzdFJlc3VsdCoga2l0KGNvbnN0IFdlYkNvcmU6OkhpdFRlc3RSZXN1
bHQmKTsKIAogICAgIFBhc3RlYm9hcmRIZWxwZXJHdGsqIHBhc3RlYm9hcmRIZWxwZXJJbnN0YW5j
ZSgpOwotCi0gICAgdHlwZWRlZiBzdHJ1Y3QgRHJvcHBpbmdDb250ZXh0XyB7Ci0gICAgICAgIFdl
YktpdFdlYlZpZXcqIHdlYlZpZXc7Ci0gICAgICAgIEdka0RyYWdDb250ZXh0KiBnZGtDb250ZXh0
OwotICAgICAgICBSZWZQdHI8V2ViQ29yZTo6RGF0YU9iamVjdEd0az4gZGF0YU9iamVjdDsKLSAg
ICAgICAgV2ViQ29yZTo6SW50UG9pbnQgbGFzdE1vdGlvblBvc2l0aW9uOwotICAgICAgICBpbnQg
cGVuZGluZ0RhdGFSZXF1ZXN0czsKLSAgICAgICAgYm9vbCBkcm9wSGFwcGVuZWQ7Ci0gICAgfSBE
cm9wcGluZ0NvbnRleHQ7CiB9CiAKIGV4dGVybiAiQyIgewpAQCAtMTMxLDY3ICsxMTgsNiBAQCBl
eHRlcm4gIkMiIHsKICNkZWZpbmUgV0VCS0lUX1BBUkFNX1JFQURBQkxFICgoR1BhcmFtRmxhZ3Mp
KEdfUEFSQU1fUkVBREFCTEV8R19QQVJBTV9TVEFUSUNfTkFNRXxHX1BBUkFNX1NUQVRJQ19OSUNL
fEdfUEFSQU1fU1RBVElDX0JMVVJCKSkKICNkZWZpbmUgV0VCS0lUX1BBUkFNX1JFQURXUklURSAo
KEdQYXJhbUZsYWdzKShHX1BBUkFNX1JFQURXUklURXxHX1BBUkFNX1NUQVRJQ19OQU1FfEdfUEFS
QU1fU1RBVElDX05JQ0t8R19QQVJBTV9TVEFUSUNfQkxVUkIpKQogCi0gICAgI2RlZmluZSBXRUJL
SVRfV0VCX1ZJRVdfR0VUX1BSSVZBVEUob2JqKSAgICAoR19UWVBFX0lOU1RBTkNFX0dFVF9QUklW
QVRFKChvYmopLCBXRUJLSVRfVFlQRV9XRUJfVklFVywgV2ViS2l0V2ViVmlld1ByaXZhdGUpKQot
ICAgIHR5cGVkZWYgc3RydWN0IF9XZWJLaXRXZWJWaWV3UHJpdmF0ZSBXZWJLaXRXZWJWaWV3UHJp
dmF0ZTsKLSAgICBzdHJ1Y3QgX1dlYktpdFdlYlZpZXdQcml2YXRlIHsKLSAgICAgICAgV2ViQ29y
ZTo6UGFnZSogY29yZVBhZ2U7Ci0gICAgICAgIFBsYXRmb3JtUmVmUHRyPFdlYktpdFdlYlNldHRp
bmdzPiB3ZWJTZXR0aW5nczsKLSAgICAgICAgUGxhdGZvcm1SZWZQdHI8V2ViS2l0V2ViSW5zcGVj
dG9yPiB3ZWJJbnNwZWN0b3I7Ci0gICAgICAgIFBsYXRmb3JtUmVmUHRyPFdlYktpdFdlYldpbmRv
d0ZlYXR1cmVzPiB3ZWJXaW5kb3dGZWF0dXJlczsKLQotICAgICAgICBXZWJLaXRXZWJGcmFtZSog
bWFpbkZyYW1lOwotICAgICAgICBQbGF0Zm9ybVJlZlB0cjxXZWJLaXRXZWJCYWNrRm9yd2FyZExp
c3Q+IGJhY2tGb3J3YXJkTGlzdDsKLQotICAgICAgICBQbGF0Zm9ybVJlZlB0cjxHdGtNZW51PiBj
dXJyZW50TWVudTsKLSAgICAgICAgZ2ludCBsYXN0UG9wdXBYUG9zaXRpb247Ci0gICAgICAgIGdp
bnQgbGFzdFBvcHVwWVBvc2l0aW9uOwotCi0gICAgICAgIEhhc2hTZXQ8R3RrV2lkZ2V0Kj4gY2hp
bGRyZW47Ci0gICAgICAgIGJvb2wgZWRpdGFibGU7Ci0gICAgICAgIFBsYXRmb3JtUmVmUHRyPEd0
a0lNQ29udGV4dD4gaW1Db250ZXh0OwotCi0gICAgICAgIGdib29sZWFuIHRyYW5zcGFyZW50Owot
Ci0gICAgICAgIFBsYXRmb3JtUmVmUHRyPEd0a0FkanVzdG1lbnQ+IGhvcml6b250YWxBZGp1c3Rt
ZW50OwotICAgICAgICBQbGF0Zm9ybVJlZlB0cjxHdGtBZGp1c3RtZW50PiB2ZXJ0aWNhbEFkanVz
dG1lbnQ7Ci0KLSNpZm5kZWYgR1RLX0FQSV9WRVJTSU9OXzIKLSAgICAgICAgLy8gR3RrU2Nyb2xs
YWJsZVBvbGljeSBuZWVkcyB0byBiZSBjaGVja2VkIHdoZW4KLSAgICAgICAgLy8gZHJpdmluZyB0
aGUgc2Nyb2xsYWJsZSBhZGp1c3RtZW50IHZhbHVlcwotICAgICAgICBHdGtTY3JvbGxhYmxlUG9s
aWN5IGhvcml6b250YWxTY3JvbGxpbmdQb2xpY3k7Ci0gICAgICAgIEd0a1Njcm9sbGFibGVQb2xp
Y3kgdmVydGljYWxTY3JvbGxpbmdQb2xpY3k7Ci0jZW5kaWYKLQotICAgICAgICBnYm9vbGVhbiB6
b29tRnVsbENvbnRlbnQ7Ci0gICAgICAgIFdlYktpdExvYWRTdGF0dXMgbG9hZFN0YXR1czsKLSAg
ICAgICAgQ1N0cmluZyBlbmNvZGluZzsKLSAgICAgICAgQ1N0cmluZyBjdXN0b21FbmNvZGluZzsK
LQotICAgICAgICBDU3RyaW5nIGljb25VUkk7Ci0KLSAgICAgICAgZ2Jvb2xlYW4gZGlzcG9zaW5n
OwotICAgICAgICBnYm9vbGVhbiB1c2VQcmltYXJ5Rm9yUGFzdGU7Ci0KLSNpZiBFTkFCTEUoVklE
RU8pCi0gICAgICAgIEZ1bGxzY3JlZW5WaWRlb0NvbnRyb2xsZXIqIGZ1bGxzY3JlZW5WaWRlb0Nv
bnRyb2xsZXI7Ci0jZW5kaWYKLQotICAgICAgICAvLyBUaGVzZSBhcmUgaG9zdGVkIGhlcmUgYmVj
YXVzZSB0aGUgRGF0YVNvdXJjZSBvYmplY3QgaXMKLSAgICAgICAgLy8gY3JlYXRlZCB0b28gbGF0
ZSBpbiB0aGUgZnJhbWUgbG9hZGluZyBwcm9jZXNzLgotICAgICAgICBQbGF0Zm9ybVJlZlB0cjxX
ZWJLaXRXZWJSZXNvdXJjZT4gbWFpblJlc291cmNlOwotICAgICAgICBDU3RyaW5nIG1haW5SZXNv
dXJjZUlkZW50aWZpZXI7Ci0gICAgICAgIFBsYXRmb3JtUmVmUHRyPEdIYXNoVGFibGU+IHN1YlJl
c291cmNlczsKLSAgICAgICAgQ1N0cmluZyB0b29sdGlwVGV4dDsKLSAgICAgICAgV2ViQ29yZTo6
SW50UmVjdCB0b29sdGlwQXJlYTsKLQotICAgICAgICBpbnQgY3VycmVudENsaWNrQ291bnQ7Ci0g
ICAgICAgIFdlYkNvcmU6OkludFBvaW50IHByZXZpb3VzQ2xpY2tQb2ludDsKLSAgICAgICAgZ3Vp
bnQgcHJldmlvdXNDbGlja0J1dHRvbjsKLSAgICAgICAgZ3VpbnQzMiBwcmV2aW91c0NsaWNrVGlt
ZTsKLSAgICAgICAgSGFzaE1hcDxHZGtEcmFnQ29udGV4dCosIFJlZlB0cjxXZWJDb3JlOjpEYXRh
T2JqZWN0R3RrPiA+IGRyYWdnaW5nRGF0YU9iamVjdHM7Ci0gICAgICAgIEhhc2hNYXA8R2RrRHJh
Z0NvbnRleHQqLCBXZWJLaXQ6OkRyb3BwaW5nQ29udGV4dCo+IGRyb3BwaW5nQ29udGV4dHM7Ci0g
ICAgfTsKLQogICAgICNkZWZpbmUgV0VCS0lUX1dFQl9GUkFNRV9HRVRfUFJJVkFURShvYmopICAg
IChHX1RZUEVfSU5TVEFOQ0VfR0VUX1BSSVZBVEUoKG9iaiksIFdFQktJVF9UWVBFX1dFQl9GUkFN
RSwgV2ViS2l0V2ViRnJhbWVQcml2YXRlKSkKICAgICB0eXBlZGVmIHN0cnVjdCBfV2ViS2l0V2Vi
RnJhbWVQcml2YXRlIFdlYktpdFdlYkZyYW1lUHJpdmF0ZTsKICAgICBzdHJ1Y3QgX1dlYktpdFdl
YkZyYW1lUHJpdmF0ZSB7CkBAIC0yNzEsMzkgKzE5Nyw2IEBAIGV4dGVybiAiQyIgewogICAgIFdl
YktpdFdlYldpbmRvd0ZlYXR1cmVzKgogICAgIHdlYmtpdF93ZWJfd2luZG93X2ZlYXR1cmVzX25l
d19mcm9tX2NvcmVfZmVhdHVyZXMgKGNvbnN0IFdlYkNvcmU6OldpbmRvd0ZlYXR1cmVzJiBmZWF0
dXJlcyk7CiAKLSAgICB2b2lkCi0gICAgd2Via2l0X3dlYl92aWV3X25vdGlmeV9yZWFkeSAoV2Vi
S2l0V2ViVmlldyogd2ViX3ZpZXcpOwotCi0gICAgdm9pZAotICAgIHdlYmtpdF93ZWJfdmlld19y
ZXF1ZXN0X2Rvd25sb2FkKFdlYktpdFdlYlZpZXcqIHdlYl92aWV3LCBXZWJLaXROZXR3b3JrUmVx
dWVzdCogcmVxdWVzdCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2Ug
PSBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlKCksIFdlYkNvcmU6OlJlc291cmNlSGFuZGxlKiBo
YW5kbGUgPSAwKTsKLQotICAgIHZvaWQKLSAgICB3ZWJraXRfd2ViX3ZpZXdfYWRkX3Jlc291cmNl
KFdlYktpdFdlYlZpZXcqLCBjb25zdCBjaGFyKiwgV2ViS2l0V2ViUmVzb3VyY2UqKTsKLQotICAg
IHZvaWQKLSAgICB3ZWJraXRfd2ViX3ZpZXdfYWRkX21haW5fcmVzb3VyY2UoV2ViS2l0V2ViVmll
dyosIGNvbnN0IGNoYXIqLCBXZWJLaXRXZWJSZXNvdXJjZSopOwotCi0gICAgdm9pZAotICAgIHdl
YmtpdF93ZWJfdmlld19yZW1vdmVfcmVzb3VyY2UoV2ViS2l0V2ViVmlldyosIGNvbnN0IGNoYXIq
KTsKLQotICAgIFdlYktpdFdlYlJlc291cmNlKgotICAgIHdlYmtpdF93ZWJfdmlld19nZXRfcmVz
b3VyY2UoV2ViS2l0V2ViVmlldyosIGNoYXIqKTsKLQotICAgIFdlYktpdFdlYlJlc291cmNlKgot
ICAgIHdlYmtpdF93ZWJfdmlld19nZXRfbWFpbl9yZXNvdXJjZShXZWJLaXRXZWJWaWV3Kik7Ci0K
LSAgICB2b2lkCi0gICAgd2Via2l0X3dlYl92aWV3X2NsZWFyX3Jlc291cmNlcyhXZWJLaXRXZWJW
aWV3Kik7Ci0KLSAgICBHTGlzdCoKLSAgICB3ZWJraXRfd2ViX3ZpZXdfZ2V0X3N1YnJlc291cmNl
cyhXZWJLaXRXZWJWaWV3Kik7Ci0KLSAgICB2b2lkCi0gICAgd2Via2l0X3dlYl92aWV3X3NldF90
b29sdGlwX3RleHQoV2ViS2l0V2ViVmlldyosIGNvbnN0IGNoYXIqKTsKLQotICAgIEd0a01lbnUq
Ci0gICAgd2Via2l0X3dlYl92aWV3X2dldF9jb250ZXh0X21lbnUoV2ViS2l0V2ViVmlldyopOwot
CiAgICAgV2ViS2l0RG93bmxvYWQqCiAgICAgd2Via2l0X2Rvd25sb2FkX25ld193aXRoX2hhbmRs
ZShXZWJLaXROZXR3b3JrUmVxdWVzdCogcmVxdWVzdCwgV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGUq
IGhhbmRsZSwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpOwogCkBA
IC0zMzUsMTggKzIyOCwxMiBAQCBleHRlcm4gIkMiIHsKIAogICAgIC8vIEZJWE1FOiBNb3ZlIHRo
ZXNlIHRvIHdlYmtpdHdlYmZyYW1lLmggb25jZSB0aGVpciBBUEkgaGFzIGJlZW4gZGlzY3Vzc2Vk
LgogCi0gICAgV0VCS0lUX0FQSSBnY2hhcioKLSAgICB3ZWJraXRfd2ViX3ZpZXdfZ2V0X3NlbGVj
dGVkX3RleHQgKFdlYktpdFdlYlZpZXcqIHdlYl92aWV3KTsKLQogICAgIFdFQktJVF9BUEkgdm9p
ZAogICAgIHdlYmtpdF93ZWJfc2V0dGluZ3NfYWRkX2V4dHJhX3BsdWdpbl9kaXJlY3RvcnkgKFdl
YktpdFdlYlZpZXcgKndlYl92aWV3LCBjb25zdCBnY2hhciogZGlyZWN0b3J5KTsKIAogICAgIEdT
TGlzdCoKICAgICB3ZWJraXRfd2ViX3NldHRpbmdzX2dldF9lbmNoYW50X2RpY3RzKFdlYktpdFdl
YlZpZXcqIHdlYl92aWV3KTsKIAotICAgIGJvb2wKLSAgICB3ZWJraXRfd2ViX3ZpZXdfdXNlX3By
aW1hcnlfZm9yX3Bhc3RlKFdlYktpdFdlYlZpZXcqIHdlYl92aWV3KTsKLQogICAgIEdIYXNoVGFi
bGUqCiAgICAgd2Via2l0X2hpc3RvcnlfaXRlbXModm9pZCk7CiAKQEAgLTM3NCw5ICsyNjEsNiBA
QCBleHRlcm4gIkMiIHsKIAogICAgIFdFQktJVF9BUEkgdm9pZAogICAgIHdlYmtpdF93ZWJfZnJh
bWVfbGF5b3V0KFdlYktpdFdlYkZyYW1lKiBmcmFtZSk7Ci0KLSAgICB2b2lkIHdlYmtpdFdlYlZp
ZXdFbnRlckZ1bGxzY3JlZW4oV2ViS2l0V2ViVmlldyogd2ViVmlldywgV2ViQ29yZTo6Tm9kZSog
bm9kZSk7Ci0gICAgdm9pZCB3ZWJraXRXZWJWaWV3RXhpdEZ1bGxzY3JlZW4oV2ViS2l0V2ViVmll
dyogd2ViVmlldyk7CiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvV2ViS2l0L2d0ay93ZWJraXQv
d2Via2l0d2ViYmFja2ZvcndhcmRsaXN0LmNwcCBiL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdl
YmJhY2tmb3J3YXJkbGlzdC5jcHAKaW5kZXggOWI1YmY4Yi4uNTQxYjBlMiAxMDA2NDQKLS0tIGEv
V2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2ViYmFja2ZvcndhcmRsaXN0LmNwcAorKysgYi9XZWJL
aXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJiYWNrZm9yd2FyZGxpc3QuY3BwCkBAIC0yNiw2ICsyNiw3
IEBACiAjaW5jbHVkZSAid2Via2l0cHJpdmF0ZS5oIgogI2luY2x1ZGUgIndlYmtpdHdlYmhpc3Rv
cnlpdGVtLmgiCiAjaW5jbHVkZSAid2Via2l0d2Vidmlldy5oIgorI2luY2x1ZGUgIndlYmtpdHdl
YnZpZXdwcml2YXRlLmgiCiAjaW5jbHVkZSA8Z2xpYi5oPgogCiAvKioKZGlmZiAtLWdpdCBhL1dl
YktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYmRhdGFzb3VyY2UuY3BwIGIvV2ViS2l0L2d0ay93ZWJr
aXQvd2Via2l0d2ViZGF0YXNvdXJjZS5jcHAKaW5kZXggMzY3M2E5OS4uZGU4NjcxYyAxMDA2NDQK
LS0tIGEvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2ViZGF0YXNvdXJjZS5jcHAKKysrIGIvV2Vi
S2l0L2d0ay93ZWJraXQvd2Via2l0d2ViZGF0YXNvdXJjZS5jcHAKQEAgLTIyLDE4ICsyMiwxOCBA
QAogCiAjaW5jbHVkZSAiQXJjaGl2ZVJlc291cmNlLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRMb2Fk
ZXJHdGsuaCIKLSNpbmNsdWRlICJGcmFtZUxvYWRlckNsaWVudEd0ay5oIgogI2luY2x1ZGUgIkZy
YW1lTG9hZGVyLmgiCisjaW5jbHVkZSAiRnJhbWVMb2FkZXJDbGllbnRHdGsuaCIKICNpbmNsdWRl
ICJLVVJMLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKICNpbmNsdWRlICJSZXNvdXJj
ZVJlcXVlc3QuaCIKLSNpbmNsdWRlICJydW50aW1lL0luaXRpYWxpemVUaHJlYWRpbmcuaCIKICNp
bmNsdWRlICJTaGFyZWRCdWZmZXIuaCIKICNpbmNsdWRlICJTdWJzdGl0dXRlRGF0YS5oIgotI2lu
Y2x1ZGUgIndlYmtpdHdlYnJlc291cmNlLmgiCisjaW5jbHVkZSAicnVudGltZS9Jbml0aWFsaXpl
VGhyZWFkaW5nLmgiCiAjaW5jbHVkZSAid2Via2l0cHJpdmF0ZS5oIgorI2luY2x1ZGUgIndlYmtp
dHdlYnJlc291cmNlLmgiCisjaW5jbHVkZSAid2Via2l0d2Vidmlld3ByaXZhdGUuaCIKICNpbmNs
dWRlICJ3dGYvQXNzZXJ0aW9ucy5oIgotCiAjaW5jbHVkZSA8Z2xpYi5oPgogCiAvKioKZGlmZiAt
LWdpdCBhL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYmZyYW1lLmNwcCBiL1dlYktpdC9ndGsv
d2Via2l0L3dlYmtpdHdlYmZyYW1lLmNwcAppbmRleCBlZDEwZTQ4Li41YmMwNmRmIDEwMDY0NAot
LS0gYS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJmcmFtZS5jcHAKKysrIGIvV2ViS2l0L2d0
ay93ZWJraXQvd2Via2l0d2ViZnJhbWUuY3BwCkBAIC0yNSwxNiArMjUsMTEgQEAKICAqLwogCiAj
aW5jbHVkZSAiY29uZmlnLmgiCi0KLSNpbmNsdWRlICJ3ZWJraXRlbnVtdHlwZXMuaCIKICNpbmNs
dWRlICJ3ZWJraXR3ZWJmcmFtZS5oIgotI2luY2x1ZGUgIndlYmtpdHdlYnZpZXcuaCIKLSNpbmNs
dWRlICJ3ZWJraXRtYXJzaGFsLmgiCi0jaW5jbHVkZSAid2Via2l0cHJpdmF0ZS5oIgogCisjaW5j
bHVkZSAiQVhPYmplY3RDYWNoZS5oIgogI2luY2x1ZGUgIkFjY2Vzc2liaWxpdHlPYmplY3RXcmFw
cGVyQXRrLmgiCiAjaW5jbHVkZSAiQW5pbWF0aW9uQ29udHJvbGxlci5oIgotI2luY2x1ZGUgIkFY
T2JqZWN0Q2FjaGUuaCIKICNpbmNsdWRlICJET01PYmplY3RDYWNoZS5oIgogI2luY2x1ZGUgIkRv
Y3VtZW50TG9hZGVyLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRMb2FkZXJHdGsuaCIKQEAgLTQyLDI3
ICszNywzMSBAQAogI2luY2x1ZGUgIkZyYW1lTG9hZGVyQ2xpZW50R3RrLmgiCiAjaW5jbHVkZSAi
RnJhbWVUcmVlLmgiCiAjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCi0jaW5jbHVkZSA8Z2xpYi9naTE4
bi1saWIuaD4KICNpbmNsdWRlICJHQ0NvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJHcmFwaGljc0Nv
bnRleHQuaCIKICNpbmNsdWRlICJHdGtWZXJzaW9uaW5nLmgiCiAjaW5jbHVkZSAiSFRNTEZyYW1l
T3duZXJFbGVtZW50LmgiCisjaW5jbHVkZSAiSlNET01CaW5kaW5nLmgiCiAjaW5jbHVkZSAiSlNE
T01XaW5kb3cuaCIKICNpbmNsdWRlICJKU0VsZW1lbnQuaCIKICNpbmNsdWRlICJKU0xvY2suaCIK
ICNpbmNsdWRlICJQcmludENvbnRleHQuaCIKICNpbmNsdWRlICJSZW5kZXJMaXN0SXRlbS5oIgot
I2luY2x1ZGUgIlJlbmRlclZpZXcuaCIKICNpbmNsdWRlICJSZW5kZXJUcmVlQXNUZXh0LmgiCi0j
aW5jbHVkZSAiSlNET01CaW5kaW5nLmgiCisjaW5jbHVkZSAiUmVuZGVyVmlldy5oIgogI2luY2x1
ZGUgIlNjcmlwdENvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJTdWJzdGl0dXRlRGF0YS5oIgogI2lm
IEVOQUJMRShTVkcpCiAjaW5jbHVkZSAiU1ZHU01JTEVsZW1lbnQuaCIKICNlbmRpZgotCi0jaW5j
bHVkZSA8YXRrL2F0ay5oPgorI2luY2x1ZGUgIndlYmtpdGVudW10eXBlcy5oIgorI2luY2x1ZGUg
IndlYmtpdG1hcnNoYWwuaCIKKyNpbmNsdWRlICJ3ZWJraXRwcml2YXRlLmgiCisjaW5jbHVkZSAi
d2Via2l0d2Vidmlldy5oIgorI2luY2x1ZGUgIndlYmtpdHdlYnZpZXdwcml2YXRlLmgiCiAjaW5j
bHVkZSA8SmF2YVNjcmlwdENvcmUvQVBJQ2FzdC5oPgorI2luY2x1ZGUgPGF0ay9hdGsuaD4KKyNp
bmNsdWRlIDxnbGliL2dpMThuLWxpYi5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4K
IAogLyoqCmRpZmYgLS1naXQgYS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcCBi
L1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwCmluZGV4IDkzYTMxODguLjYzY2Yy
YWYgMTAwNjQ0Ci0tLSBhL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwCisrKyBi
L1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwCkBAIC0yOSwyNiArMjksMTUgQEAK
ICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJ3ZWJraXR3ZWJ2aWV3LmgiCiAKLSNpbmNs
dWRlICJ3ZWJraXRkb3dubG9hZC5oIgotI2luY2x1ZGUgIndlYmtpdGVudW10eXBlcy5oIgotI2lu
Y2x1ZGUgIndlYmtpdGdlb2xvY2F0aW9ucG9saWN5ZGVjaXNpb24uaCIKLSNpbmNsdWRlICJ3ZWJr
aXRtYXJzaGFsLmgiCi0jaW5jbHVkZSAid2Via2l0bmV0d29ya3JlcXVlc3QuaCIKLSNpbmNsdWRl
ICJ3ZWJraXRuZXR3b3JrcmVzcG9uc2UuaCIKLSNpbmNsdWRlICJ3ZWJraXRwcml2YXRlLmgiCi0j
aW5jbHVkZSAid2Via2l0d2ViaW5zcGVjdG9yLmgiCi0jaW5jbHVkZSAid2Via2l0d2ViYmFja2Zv
cndhcmRsaXN0LmgiCi0jaW5jbHVkZSAid2Via2l0d2ViaGlzdG9yeWl0ZW0uaCIKLQogI2luY2x1
ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKICNpbmNsdWRlICJBYnN0cmFjdERhdGFiYXNlLmgiCiAjaW5j
bHVkZSAiQmFja0ZvcndhcmRMaXN0SW1wbC5oIgotI2luY2x1ZGUgIk1lbW9yeUNhY2hlLmgiCisj
aW5jbHVkZSAiQ2hyb21lLmgiCiAjaW5jbHVkZSAiQ2hyb21lQ2xpZW50R3RrLmgiCiAjaW5jbHVk
ZSAiQ2xpcGJvYXJkVXRpbGl0aWVzR3RrLmgiCisjaW5jbHVkZSAiQ29udGV4dE1lbnUuaCIKICNp
bmNsdWRlICJDb250ZXh0TWVudUNsaWVudEd0ay5oIgogI2luY2x1ZGUgIkNvbnRleHRNZW51Q29u
dHJvbGxlci5oIgotI2luY2x1ZGUgIkNvbnRleHRNZW51LmgiCiAjaW5jbHVkZSAiQ3Vyc29yLmgi
CiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJEb2N1bWVudExvYWRlci5oIgpAQCAt
NTYsMjkgKzQ1LDMwIEBACiAjaW5jbHVkZSAiRHJhZ0NsaWVudEd0ay5oIgogI2luY2x1ZGUgIkRy
YWdDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiRHJhZ0RhdGEuaCIKLSNpbmNsdWRlICJFZGl0b3JD
bGllbnRHdGsuaCIKICNpbmNsdWRlICJFZGl0b3IuaCIKKyNpbmNsdWRlICJFZGl0b3JDbGllbnRH
dGsuaCIKICNpbmNsdWRlICJFdmVudEhhbmRsZXIuaCIKICNpbmNsdWRlICJGbG9hdFF1YWQuaCIK
ICNpbmNsdWRlICJGb2N1c0NvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRlci5oIgog
I2luY2x1ZGUgIkZyYW1lTG9hZGVyVHlwZXMuaCIKICNpbmNsdWRlICJGcmFtZVZpZXcuaCIKLSNp
bmNsdWRlIDxnbGliL2dpMThuLWxpYi5oPgotI2luY2x1ZGUgPEdPd25QdHIuaD4KLSNpbmNsdWRl
IDxHT3duUHRyR3RrLmg+CisjaW5jbHVkZSAiR093blB0ci5oIgorI2luY2x1ZGUgIkdPd25QdHJH
dGsuaCIKICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQuaCIKICNpbmNsdWRlICJHdGtWZXJzaW9u
aW5nLmgiCisjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCiAjaW5jbHVkZSAiSGl0VGVzdFJlcXVlc3Qu
aCIKICNpbmNsdWRlICJIaXRUZXN0UmVzdWx0LmgiCiAjaW5jbHVkZSAiSWNvbkRhdGFiYXNlLmgi
CiAjaW5jbHVkZSAiSW5zcGVjdG9yQ2xpZW50R3RrLmgiCisjaW5jbHVkZSAiTWVtb3J5Q2FjaGUu
aCIKICNpbmNsdWRlICJNb3VzZUV2ZW50V2l0aEhpdFRlc3RSZXN1bHRzLmgiCiAjaW5jbHVkZSAi
Tm90SW1wbGVtZW50ZWQuaCIKICNpbmNsdWRlICJQYWdlQ2FjaGUuaCIKICNpbmNsdWRlICJQYXN0
ZWJvYXJkLmgiCi0jaW5jbHVkZSAiUGFzdGVib2FyZEhlbHBlckd0ay5oIgogI2luY2x1ZGUgIlBh
c3RlYm9hcmRIZWxwZXIuaCIKKyNpbmNsdWRlICJQYXN0ZWJvYXJkSGVscGVyR3RrLmgiCiAjaW5j
bHVkZSAiUGxhdGZvcm1LZXlib2FyZEV2ZW50LmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1XaGVlbEV2
ZW50LmgiCiAjaW5jbHVkZSAiUHJvZ3Jlc3NUcmFja2VyLmgiCkBAIC04Nyw5ICs3NywyMCBAQAog
I2luY2x1ZGUgIlNjcmlwdFZhbHVlLmgiCiAjaW5jbHVkZSAiU2Nyb2xsYmFyLmgiCiAjaW5jbHVk
ZSAid2Via2l0L1dlYktpdERPTURvY3VtZW50UHJpdmF0ZS5oIgorI2luY2x1ZGUgIndlYmtpdGRv
d25sb2FkLmgiCisjaW5jbHVkZSAid2Via2l0ZW51bXR5cGVzLmgiCisjaW5jbHVkZSAid2Via2l0
Z2VvbG9jYXRpb25wb2xpY3lkZWNpc2lvbi5oIgorI2luY2x1ZGUgIndlYmtpdG1hcnNoYWwuaCIK
KyNpbmNsdWRlICJ3ZWJraXRuZXR3b3JrcmVxdWVzdC5oIgorI2luY2x1ZGUgIndlYmtpdG5ldHdv
cmtyZXNwb25zZS5oIgorI2luY2x1ZGUgIndlYmtpdHByaXZhdGUuaCIKKyNpbmNsdWRlICJ3ZWJr
aXR3ZWJiYWNrZm9yd2FyZGxpc3QuaCIKKyNpbmNsdWRlICJ3ZWJraXR3ZWJoaXN0b3J5aXRlbS5o
IgorI2luY2x1ZGUgIndlYmtpdHdlYmluc3BlY3Rvci5oIgorI2luY2x1ZGUgIndlYmtpdHdlYnZp
ZXdwcml2YXRlLmgiCiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgotCiAjaW5jbHVkZSA8
Z2RrL2dka2tleXN5bXMuaD4KKyNpbmNsdWRlIDxnbGliL2dpMThuLWxpYi5oPgogCiAvKioKICAq
IFNFQ1RJT046d2Via2l0d2VidmlldwpAQCAtNTA0MSwzICs1MDQyLDU0IEBAIEd0a01lbnUqIHdl
YmtpdF93ZWJfdmlld19nZXRfY29udGV4dF9tZW51KFdlYktpdFdlYlZpZXcqIHdlYlZpZXcpCiAg
ICAgcmV0dXJuIDA7CiAjZW5kaWYKIH0KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1dlYkNvcmU6
OlBhZ2UqIGNvcmUoV2ViS2l0V2ViVmlldyogd2ViVmlldykKK3sKKyAgICBpZiAoIXdlYlZpZXcp
CisgICAgICAgIHJldHVybiAwOworCisgICAgV2ViS2l0V2ViVmlld1ByaXZhdGUqIHByaXYgPSB3
ZWJWaWV3LT5wcml2OworICAgIHJldHVybiBwcml2ID8gcHJpdi0+Y29yZVBhZ2UgOiAwOworfQor
CitXZWJLaXRXZWJWaWV3KiBraXQoV2ViQ29yZTo6UGFnZSogY29yZVBhZ2UpCit7CisgICAgaWYg
KCFjb3JlUGFnZSkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICBBU1NFUlQoY29yZVBhZ2UtPmNo
cm9tZSgpKTsKKyAgICBXZWJLaXQ6OkNocm9tZUNsaWVudCogY2xpZW50ID0gc3RhdGljX2Nhc3Q8
V2ViS2l0OjpDaHJvbWVDbGllbnQqPihjb3JlUGFnZS0+Y2hyb21lKCktPmNsaWVudCgpKTsKKyAg
ICByZXR1cm4gY2xpZW50ID8gY2xpZW50LT53ZWJWaWV3KCkgOiAwOworfQorCit2b2lkIHdlYlZp
ZXdFbnRlckZ1bGxzY3JlZW4oV2ViS2l0V2ViVmlldyogd2ViVmlldywgTm9kZSogbm9kZSkKK3sK
KyAgICBpZiAoIW5vZGUtPmhhc1RhZ05hbWUoSFRNTE5hbWVzOjp2aWRlb1RhZykpCisgICAgICAg
IHJldHVybjsKKworI2lmIEVOQUJMRShWSURFTykKKyAgICBIVE1MTWVkaWFFbGVtZW50KiB2aWRl
b0VsZW1lbnQgPSBzdGF0aWNfY2FzdDxIVE1MTWVkaWFFbGVtZW50Kj4obm9kZSk7CisgICAgV2Vi
S2l0V2ViVmlld1ByaXZhdGUqIHByaXYgPSB3ZWJWaWV3LT5wcml2OworCisgICAgLy8gRmlyc3Qg
ZXhpdCBGdWxsc2NyZWVuIGZvciB0aGUgb2xkIG1lZGlhRWxlbWVudC4KKyAgICBpZiAocHJpdi0+
ZnVsbHNjcmVlblZpZGVvQ29udHJvbGxlcikKKyAgICAgICAgcHJpdi0+ZnVsbHNjcmVlblZpZGVv
Q29udHJvbGxlci0+ZXhpdEZ1bGxzY3JlZW4oKTsKKworICAgIHByaXYtPmZ1bGxzY3JlZW5WaWRl
b0NvbnRyb2xsZXIgPSBuZXcgRnVsbHNjcmVlblZpZGVvQ29udHJvbGxlcjsKKyAgICBwcml2LT5m
dWxsc2NyZWVuVmlkZW9Db250cm9sbGVyLT5zZXRNZWRpYUVsZW1lbnQodmlkZW9FbGVtZW50KTsK
KyAgICBwcml2LT5mdWxsc2NyZWVuVmlkZW9Db250cm9sbGVyLT5lbnRlckZ1bGxzY3JlZW4oKTsK
KyNlbmRpZgorfQorCit2b2lkIHdlYlZpZXdFeGl0RnVsbHNjcmVlbihXZWJLaXRXZWJWaWV3KiB3
ZWJWaWV3KQoreworI2lmIEVOQUJMRShWSURFTykKKyAgICBXZWJLaXRXZWJWaWV3UHJpdmF0ZSog
cHJpdiA9IHdlYlZpZXctPnByaXY7CisgICAgaWYgKHByaXYtPmZ1bGxzY3JlZW5WaWRlb0NvbnRy
b2xsZXIpCisgICAgICAgIHByaXYtPmZ1bGxzY3JlZW5WaWRlb0NvbnRyb2xsZXItPmV4aXRGdWxs
c2NyZWVuKCk7CisjZW5kaWYKK30KKworfQpkaWZmIC0tZ2l0IGEvV2ViS2l0L2d0ay93ZWJraXQv
d2Via2l0d2Vidmlld3ByaXZhdGUuaCBiL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnZpZXdw
cml2YXRlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGMxYmM3NgotLS0g
L2Rldi9udWxsCisrKyBiL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnZpZXdwcml2YXRlLmgK
QEAgLTAsMCArMSwxNTQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDcsIDIwMDgsIDIwMDkg
SG9sZ2VyIEhhbnMgUGV0ZXIgRnJleXRoZXIKKyAqIENvcHlyaWdodCAoQykgMjAwOCBKYW4gTWlj
aGFlbCBDLiBBbG9uem8KKyAqIENvcHlyaWdodCAoQykgMjAwOCwgMjAxMCBDb2xsYWJvcmEgTHRk
LgorICogQ29weXJpZ2h0IChDKSAyMDEwIElnYWxpYSBTLkwuCisgKgorICogVGhpcyBsaWJyYXJ5
IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9k
aWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMK
KyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247
IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24p
IGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBp
biB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdB
UlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5U
QUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05V
CisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAq
CisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBH
ZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRo
ZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdh
cmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAq
IEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNpZm5kZWYgd2Via2l0d2Vidmll
d3ByaXZhdGVfaAorI2RlZmluZSB3ZWJraXR3ZWJ2aWV3cHJpdmF0ZV9oCisKKyNpbmNsdWRlICJE
YXRhT2JqZWN0R3RrLmgiCisjaW5jbHVkZSAiRnVsbHNjcmVlblZpZGVvQ29udHJvbGxlci5oIgor
I2luY2x1ZGUgIkdPd25QdHIuaCIKKyNpbmNsdWRlICJSZXNvdXJjZUhhbmRsZS5oIgorI2luY2x1
ZGUgPHdlYmtpdC93ZWJraXR3ZWJ2aWV3Lmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitXZWJD
b3JlOjpQYWdlKiBjb3JlKFdlYktpdFdlYlZpZXcqKTsKK1dlYktpdFdlYlZpZXcqIGtpdChXZWJD
b3JlOjpQYWdlKik7CisKKwordHlwZWRlZiBzdHJ1Y3QgRHJvcHBpbmdDb250ZXh0XyB7CisgICAg
V2ViS2l0V2ViVmlldyogd2ViVmlldzsKKyAgICBHZGtEcmFnQ29udGV4dCogZ2RrQ29udGV4dDsK
KyAgICBSZWZQdHI8V2ViQ29yZTo6RGF0YU9iamVjdEd0az4gZGF0YU9iamVjdDsKKyAgICBXZWJD
b3JlOjpJbnRQb2ludCBsYXN0TW90aW9uUG9zaXRpb247CisgICAgaW50IHBlbmRpbmdEYXRhUmVx
dWVzdHM7CisgICAgYm9vbCBkcm9wSGFwcGVuZWQ7Cit9IERyb3BwaW5nQ29udGV4dDsKKworfQor
CitleHRlcm4gIkMiIHsKKyAgICAjZGVmaW5lIFdFQktJVF9XRUJfVklFV19HRVRfUFJJVkFURShv
YmopICAgIChHX1RZUEVfSU5TVEFOQ0VfR0VUX1BSSVZBVEUoKG9iaiksIFdFQktJVF9UWVBFX1dF
Ql9WSUVXLCBXZWJLaXRXZWJWaWV3UHJpdmF0ZSkpCisgICAgdHlwZWRlZiBzdHJ1Y3QgX1dlYktp
dFdlYlZpZXdQcml2YXRlIFdlYktpdFdlYlZpZXdQcml2YXRlOworICAgIHN0cnVjdCBfV2ViS2l0
V2ViVmlld1ByaXZhdGUgeworICAgICAgICBXZWJDb3JlOjpQYWdlKiBjb3JlUGFnZTsKKyAgICAg
ICAgUGxhdGZvcm1SZWZQdHI8V2ViS2l0V2ViU2V0dGluZ3M+IHdlYlNldHRpbmdzOworICAgICAg
ICBQbGF0Zm9ybVJlZlB0cjxXZWJLaXRXZWJJbnNwZWN0b3I+IHdlYkluc3BlY3RvcjsKKyAgICAg
ICAgUGxhdGZvcm1SZWZQdHI8V2ViS2l0V2ViV2luZG93RmVhdHVyZXM+IHdlYldpbmRvd0ZlYXR1
cmVzOworCisgICAgICAgIFdlYktpdFdlYkZyYW1lKiBtYWluRnJhbWU7CisgICAgICAgIFBsYXRm
b3JtUmVmUHRyPFdlYktpdFdlYkJhY2tGb3J3YXJkTGlzdD4gYmFja0ZvcndhcmRMaXN0OworCisg
ICAgICAgIFBsYXRmb3JtUmVmUHRyPEd0a01lbnU+IGN1cnJlbnRNZW51OworICAgICAgICBnaW50
IGxhc3RQb3B1cFhQb3NpdGlvbjsKKyAgICAgICAgZ2ludCBsYXN0UG9wdXBZUG9zaXRpb247CisK
KyAgICAgICAgSGFzaFNldDxHdGtXaWRnZXQqPiBjaGlsZHJlbjsKKyAgICAgICAgYm9vbCBlZGl0
YWJsZTsKKyAgICAgICAgUGxhdGZvcm1SZWZQdHI8R3RrSU1Db250ZXh0PiBpbUNvbnRleHQ7CisK
KyAgICAgICAgZ2Jvb2xlYW4gdHJhbnNwYXJlbnQ7CisKKyAgICAgICAgUGxhdGZvcm1SZWZQdHI8
R3RrQWRqdXN0bWVudD4gaG9yaXpvbnRhbEFkanVzdG1lbnQ7CisgICAgICAgIFBsYXRmb3JtUmVm
UHRyPEd0a0FkanVzdG1lbnQ+IHZlcnRpY2FsQWRqdXN0bWVudDsKKworI2lmbmRlZiBHVEtfQVBJ
X1ZFUlNJT05fMgorICAgICAgICAvLyBHdGtTY3JvbGxhYmxlUG9saWN5IG5lZWRzIHRvIGJlIGNo
ZWNrZWQgd2hlbgorICAgICAgICAvLyBkcml2aW5nIHRoZSBzY3JvbGxhYmxlIGFkanVzdG1lbnQg
dmFsdWVzCisgICAgICAgIEd0a1Njcm9sbGFibGVQb2xpY3kgaG9yaXpvbnRhbFNjcm9sbGluZ1Bv
bGljeTsKKyAgICAgICAgR3RrU2Nyb2xsYWJsZVBvbGljeSB2ZXJ0aWNhbFNjcm9sbGluZ1BvbGlj
eTsKKyNlbmRpZgorCisgICAgICAgIGdib29sZWFuIHpvb21GdWxsQ29udGVudDsKKyAgICAgICAg
V2ViS2l0TG9hZFN0YXR1cyBsb2FkU3RhdHVzOworICAgICAgICBDU3RyaW5nIGVuY29kaW5nOwor
ICAgICAgICBDU3RyaW5nIGN1c3RvbUVuY29kaW5nOworCisgICAgICAgIENTdHJpbmcgaWNvblVS
STsKKworICAgICAgICBnYm9vbGVhbiBkaXNwb3Npbmc7CisgICAgICAgIGdib29sZWFuIHVzZVBy
aW1hcnlGb3JQYXN0ZTsKKworI2lmIEVOQUJMRShWSURFTykKKyAgICAgICAgRnVsbHNjcmVlblZp
ZGVvQ29udHJvbGxlciogZnVsbHNjcmVlblZpZGVvQ29udHJvbGxlcjsKKyNlbmRpZgorCisgICAg
ICAgIC8vIFRoZXNlIGFyZSBob3N0ZWQgaGVyZSBiZWNhdXNlIHRoZSBEYXRhU291cmNlIG9iamVj
dCBpcworICAgICAgICAvLyBjcmVhdGVkIHRvbyBsYXRlIGluIHRoZSBmcmFtZSBsb2FkaW5nIHBy
b2Nlc3MuCisgICAgICAgIFBsYXRmb3JtUmVmUHRyPFdlYktpdFdlYlJlc291cmNlPiBtYWluUmVz
b3VyY2U7CisgICAgICAgIENTdHJpbmcgbWFpblJlc291cmNlSWRlbnRpZmllcjsKKyAgICAgICAg
UGxhdGZvcm1SZWZQdHI8R0hhc2hUYWJsZT4gc3ViUmVzb3VyY2VzOworICAgICAgICBDU3RyaW5n
IHRvb2x0aXBUZXh0OworICAgICAgICBXZWJDb3JlOjpJbnRSZWN0IHRvb2x0aXBBcmVhOworCisg
ICAgICAgIGludCBjdXJyZW50Q2xpY2tDb3VudDsKKyAgICAgICAgV2ViQ29yZTo6SW50UG9pbnQg
cHJldmlvdXNDbGlja1BvaW50OworICAgICAgICBndWludCBwcmV2aW91c0NsaWNrQnV0dG9uOwor
ICAgICAgICBndWludDMyIHByZXZpb3VzQ2xpY2tUaW1lOworICAgICAgICBIYXNoTWFwPEdka0Ry
YWdDb250ZXh0KiwgUmVmUHRyPFdlYkNvcmU6OkRhdGFPYmplY3RHdGs+ID4gZHJhZ2dpbmdEYXRh
T2JqZWN0czsKKyAgICAgICAgSGFzaE1hcDxHZGtEcmFnQ29udGV4dCosIFdlYktpdDo6RHJvcHBp
bmdDb250ZXh0Kj4gZHJvcHBpbmdDb250ZXh0czsKKyAgICB9OworCisgICAgdm9pZAorICAgIHdl
YmtpdF93ZWJfdmlld19ub3RpZnlfcmVhZHkoV2ViS2l0V2ViVmlldyogd2ViX3ZpZXcpOworCisg
ICAgdm9pZAorICAgIHdlYmtpdF93ZWJfdmlld19yZXF1ZXN0X2Rvd25sb2FkKFdlYktpdFdlYlZp
ZXcqIHdlYl92aWV3LCBXZWJLaXROZXR3b3JrUmVxdWVzdCogcmVxdWVzdCwgY29uc3QgV2ViQ29y
ZTo6UmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UgPSBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNl
KCksIFdlYkNvcmU6OlJlc291cmNlSGFuZGxlKiBoYW5kbGUgPSAwKTsKKworICAgIHZvaWQKKyAg
ICB3ZWJraXRfd2ViX3ZpZXdfYWRkX3Jlc291cmNlKFdlYktpdFdlYlZpZXcqLCBjb25zdCBjaGFy
KiwgV2ViS2l0V2ViUmVzb3VyY2UqKTsKKworICAgIHZvaWQKKyAgICB3ZWJraXRfd2ViX3ZpZXdf
YWRkX21haW5fcmVzb3VyY2UoV2ViS2l0V2ViVmlldyosIGNvbnN0IGNoYXIqLCBXZWJLaXRXZWJS
ZXNvdXJjZSopOworCisgICAgdm9pZAorICAgIHdlYmtpdF93ZWJfdmlld19yZW1vdmVfcmVzb3Vy
Y2UoV2ViS2l0V2ViVmlldyosIGNvbnN0IGNoYXIqKTsKKworICAgIFdlYktpdFdlYlJlc291cmNl
KgorICAgIHdlYmtpdF93ZWJfdmlld19nZXRfcmVzb3VyY2UoV2ViS2l0V2ViVmlldyosIGNoYXIq
KTsKKworICAgIFdlYktpdFdlYlJlc291cmNlKgorICAgIHdlYmtpdF93ZWJfdmlld19nZXRfbWFp
bl9yZXNvdXJjZShXZWJLaXRXZWJWaWV3Kik7CisKKyAgICB2b2lkCisgICAgd2Via2l0X3dlYl92
aWV3X2NsZWFyX3Jlc291cmNlcyhXZWJLaXRXZWJWaWV3Kik7CisKKyAgICBHTGlzdCoKKyAgICB3
ZWJraXRfd2ViX3ZpZXdfZ2V0X3N1YnJlc291cmNlcyhXZWJLaXRXZWJWaWV3Kik7CisKKyAgICB2
b2lkCisgICAgd2Via2l0X3dlYl92aWV3X3NldF90b29sdGlwX3RleHQoV2ViS2l0V2ViVmlldyos
IGNvbnN0IGNoYXIqKTsKKworICAgIEd0a01lbnUqCisgICAgd2Via2l0X3dlYl92aWV3X2dldF9j
b250ZXh0X21lbnUoV2ViS2l0V2ViVmlldyopOworCisgICAgV0VCS0lUX0FQSSBnY2hhcioKKyAg
ICB3ZWJraXRfd2ViX3ZpZXdfZ2V0X3NlbGVjdGVkX3RleHQoV2ViS2l0V2ViVmlldyogd2ViX3Zp
ZXcpOworCisgICAgYm9vbAorICAgIHdlYmtpdF93ZWJfdmlld191c2VfcHJpbWFyeV9mb3JfcGFz
dGUoV2ViS2l0V2ViVmlldyogd2ViX3ZpZXcpOworCisgICAgdm9pZCB3ZWJWaWV3RW50ZXJGdWxs
c2NyZWVuKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcsIFdlYkNvcmU6Ok5vZGUqIG5vZGUpOworICAg
IHZvaWQgd2ViVmlld0V4aXRGdWxsc2NyZWVuKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcpOworfQor
CisjZW5kaWYKLS0gCjEuNy4yLjMKCg==
</data>
<flag name="review"
          id="66788"
          type_id="1"
          status="-"
          setter="mrobinson"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>75932</attachid>
            <date>2010-12-08 11:20:27 -0800</date>
            <delta_ts>2010-12-10 07:21:31 -0800</delta_ts>
            <desc>split webkitwebviewprivate.h</desc>
            <filename>0001-split-webkitwebviewprivate.h.patch</filename>
            <type>text/plain</type>
            <size>30356</size>
            <attacher name="Gustavo Noronha (kov)">gustavo</attacher>
            
              <data encoding="base64">RnJvbSA1ZGYzNTlhOTEzMmJlZGY3ZGQ2MDEwNDc2OTI2MjE3NmMzYjM2N2JiIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBHdXN0YXZvIE5vcm9uaGEgU2lsdmEgPGduc0Bnbm9tZS5vcmc+
CkRhdGU6IFdlZCwgOCBEZWMgMjAxMCAxOTo1MjoxMCArMDEwMApTdWJqZWN0OiBbUEFUQ0hdIHNw
bGl0IHdlYmtpdHdlYnZpZXdwcml2YXRlLmgKCi0tLQogV2ViS2l0L2d0ay9DaGFuZ2VMb2cgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDM0ICsrKysrCiBXZWJLaXQvZ3RrL1dlYkNv
cmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5jcHAgICAgICB8ICAgMjUgKystLQogV2ViS2l0L2d0
ay9XZWJDb3JlU3VwcG9ydC9Db250ZXh0TWVudUNsaWVudEd0ay5jcHAgfCAgIDEwICstCiBXZWJL
aXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0RyYWdDbGllbnRHdGsuY3BwICAgICAgICB8ICAgIDEgKwog
Li4uL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5jcHAgICAgfCAgICAx
ICsKIFdlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50R3RrLmNwcCAgICAgIHwg
ICAgMSArCiBXZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNw
cCB8ICAgMTIgKy0KIFdlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvSW5zcGVjdG9yQ2xpZW50R3Rr
LmNwcCAgIHwgICAgOSArLQogV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9QYXN0ZWJvYXJkSGVs
cGVyR3RrLmNwcCAgfCAgICA0ICstCiBXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRwcml2YXRlLmNw
cCAgICAgICAgICAgICAgICB8ICAgNDggLS0tLS0tLQogV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0
cHJpdmF0ZS5oICAgICAgICAgICAgICAgICAgfCAgMTE2IC0tLS0tLS0tLS0tLS0tLS0tCiBXZWJL
aXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJiYWNrZm9yd2FyZGxpc3QuY3BwICAgICB8ICAgIDEgKwog
V2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2ViZGF0YXNvdXJjZS5jcHAgICAgICAgICAgfCAgICA4
ICstCiBXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJmcmFtZS5jcHAgICAgICAgICAgICAgICB8
ICAgMjYgKystLQogV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vidmlldy5jcHAgICAgICAgICAg
ICAgICAgfCAgIDkyICsrKysrKysrKysrLS0tCiBXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2
aWV3cHJpdmF0ZS5oICAgICAgICAgICB8ICAxMzUgKysrKysrKysrKysrKysrKysrKysKIDE2IGZp
bGVzIGNoYW5nZWQsIDI5MyBpbnNlcnRpb25zKCspLCAyMzAgZGVsZXRpb25zKC0pCiBjcmVhdGUg
bW9kZSAxMDA2NDQgV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vidmlld3ByaXZhdGUuaAoKZGlm
ZiAtLWdpdCBhL1dlYktpdC9ndGsvQ2hhbmdlTG9nIGIvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKaW5k
ZXggNzQ1NjI1OC4uMWNiMDBkMCAxMDA2NDQKLS0tIGEvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKKysr
IGIvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKQEAgLTEsNSArMSwzOSBAQAogMjAxMC0xMi0wOCAgR3Vz
dGF2byBOb3JvbmhhIFNpbHZhICA8Z3VzdGF2by5ub3JvbmhhQGNvbGxhYm9yYS5jby51az4KIAor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbR1RLXSBTcGxp
dCB3ZWJraXRwcml2YXRlLntjcHAsaH0gaW4gbW9yZSBtYW5hZ2VhYmxlIGNodW5rcworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTA2OTgKKworICAgICAg
ICBTcGxpdCBwcml2YXRlIGJpdHMgb2YgV2ViS2l0V2ViVmlldyB0byBpdHMgb3duIHByaXZhdGUg
aGVhZGVyLCBhbmQKKyAgICAgICAgdG8gaXRzIGltcGxlbWVudGF0aW9uIGZpbGUuIFRha2UgdGhl
IG9wcG9ydHVuaXR5IHRvIGZpeCBpbmNsdWRlcworICAgICAgICBzb3J0aW5nIHRvIGNvbXBseSB3
aXRoIHRoZSBzdHlsZSBndWlkZS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNs
aWVudEd0ay5jcHA6CisgICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudDo6ZW50ZXJGdWxsc2Ny
ZWVuRm9yTm9kZSk6CisgICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudDo6ZXhpdEZ1bGxzY3Jl
ZW5Gb3JOb2RlKToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9Db250ZXh0TWVudUNsaWVudEd0
ay5jcHA6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRHJhZ0NsaWVudEd0ay5jcHA6CisgICAg
ICAgICogV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmNwcDoKKyAgICAg
ICAgKiBXZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRHdGsuY3BwOgorICAgICAgICAqIFdlYkNv
cmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNwcDoKKyAgICAgICAgKiBXZWJDb3JlU3Vw
cG9ydC9JbnNwZWN0b3JDbGllbnRHdGsuY3BwOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1Bh
c3RlYm9hcmRIZWxwZXJHdGsuY3BwOgorICAgICAgICAqIHdlYmtpdC93ZWJraXRwcml2YXRlLmNw
cDoKKyAgICAgICAgKHdlYmtpdF9pbml0KToKKyAgICAgICAgKiB3ZWJraXQvd2Via2l0cHJpdmF0
ZS5oOgorICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJiYWNrZm9yd2FyZGxpc3QuY3BwOgorICAg
ICAgICAqIHdlYmtpdC93ZWJraXR3ZWJkYXRhc291cmNlLmNwcDoKKyAgICAgICAgKiB3ZWJraXQv
d2Via2l0d2ViZnJhbWUuY3BwOgorICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcDoK
KyAgICAgICAgKFdlYktpdDo6Y29yZSk6CisgICAgICAgIChXZWJLaXQ6OmtpdCk6CisgICAgICAg
IChXZWJLaXQ6OndlYlZpZXdFbnRlckZ1bGxzY3JlZW4pOgorICAgICAgICAoV2ViS2l0Ojp3ZWJW
aWV3RXhpdEZ1bGxzY3JlZW4pOgorICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJ2aWV3cHJpdmF0
ZS5oOiBBZGRlZC4KKworMjAxMC0xMi0wOCAgR3VzdGF2byBOb3JvbmhhIFNpbHZhICA8Z3VzdGF2
by5ub3JvbmhhQGNvbGxhYm9yYS5jby51az4KKwogICAgICAgICBSZXZpZXdlZCBieSBYYW4gTG9w
ZXouCiAKICAgICAgICAgVGhlIHN0b3JhZ2UgZm9yIHRoZSBzdWJyZXNvdXJjZXMgaXMgYSBHSGFz
aFRhYmxlIHdoaWNoIGRvZXMgbm90CmRpZmYgLS1naXQgYS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBw
b3J0L0Nocm9tZUNsaWVudEd0ay5jcHAgYi9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Nocm9t
ZUNsaWVudEd0ay5jcHAKaW5kZXggMTkwYWU5Yi4uNjBjNzg4MCAxMDA2NDQKLS0tIGEvV2ViS2l0
L2d0ay9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuY3BwCisrKyBiL1dlYktpdC9ndGsv
V2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNwcApAQCAtMjcsMzcgKzI3LDM4IEBACiAj
aW5jbHVkZSAiQ29uc29sZS5oIgogI2luY2x1ZGUgIkR1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5o
IgogI2luY2x1ZGUgIkVsZW1lbnQuaCIKLSNpbmNsdWRlICJGaWxlU3lzdGVtLmgiCiAjaW5jbHVk
ZSAiRmlsZUNob29zZXIuaCIKKyNpbmNsdWRlICJGaWxlU3lzdGVtLmgiCiAjaW5jbHVkZSAiRmxv
YXRSZWN0LmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkUmVxdWVzdC5oIgogI2luY2x1ZGUgIkZyYW1l
Vmlldy5oIgogI2luY2x1ZGUgIkd0a1ZlcnNpb25pbmcuaCIKICNpbmNsdWRlICJIVE1MTmFtZXMu
aCIKLSNpbmNsdWRlICJJbnRSZWN0LmgiCiAjaW5jbHVkZSAiSGl0VGVzdFJlc3VsdC5oIgogI2lu
Y2x1ZGUgIkljb24uaCIKKyNpbmNsdWRlICJJbnRSZWN0LmgiCiAjaW5jbHVkZSAiS1VSTC5oIgog
I2luY2x1ZGUgIk5hdmlnYXRpb25BY3Rpb24uaCIKKyNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5o
IgogI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCiAjaW5jbHVkZSAiUG9wdXBNZW51Q2xpZW50
LmgiCiAjaW5jbHVkZSAiUG9wdXBNZW51R3RrLmgiCiAjaW5jbHVkZSAiU2VhcmNoUG9wdXBNZW51
R3RrLmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKKyNpbmNsdWRlICJXaW5kb3dGZWF0
dXJlcy5oIgogI2luY2x1ZGUgIndlYmtpdGdlb2xvY2F0aW9ucG9saWN5ZGVjaXNpb24uaCIKLSNp
bmNsdWRlICJ3ZWJraXR3ZWJ2aWV3LmgiCiAjaW5jbHVkZSAid2Via2l0bmV0d29ya3JlcXVlc3Qu
aCIKICNpbmNsdWRlICJ3ZWJraXRwcml2YXRlLmgiCi0jaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQu
aCIKLSNpbmNsdWRlICJXaW5kb3dGZWF0dXJlcy5oIgotI2lmIEVOQUJMRShEQVRBQkFTRSkKLSNp
bmNsdWRlICJEYXRhYmFzZVRyYWNrZXIuaCIKLSNlbmRpZgotI2luY2x1ZGUgPHd0Zi90ZXh0L0NT
dHJpbmcuaD4KLQorI2luY2x1ZGUgIndlYmtpdHdlYnZpZXcuaCIKKyNpbmNsdWRlICJ3ZWJraXR3
ZWJ2aWV3cHJpdmF0ZS5oIgogI2luY2x1ZGUgPGdsaWIuaD4KICNpbmNsdWRlIDxnbGliL2dpMThu
LWxpYi5oPgogI2luY2x1ZGUgPGd0ay9ndGsuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5n
Lmg+CisKKyNpZiBFTkFCTEUoREFUQUJBU0UpCisjaW5jbHVkZSAiRGF0YWJhc2VUcmFja2VyLmgi
CisjZW5kaWYKIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKQEAgLTY2OCw3ICs2NjksNyBA
QCB2b2lkIENocm9tZUNsaWVudDo6ZW50ZXJGdWxsc2NyZWVuRm9yTm9kZShOb2RlKiBub2RlKQog
ICAgIFdlYkNvcmU6OkZyYW1lKiBmcmFtZSA9IG5vZGUtPmRvY3VtZW50KCktPmZyYW1lKCk7CiAg
ICAgV2ViS2l0V2ViRnJhbWUqIHdlYkZyYW1lID0ga2l0KGZyYW1lKTsKICAgICBXZWJLaXRXZWJW
aWV3KiB3ZWJWaWV3ID0gZ2V0Vmlld0Zyb21GcmFtZSh3ZWJGcmFtZSk7Ci0gICAgd2Via2l0V2Vi
Vmlld0VudGVyRnVsbHNjcmVlbih3ZWJWaWV3LCBub2RlKTsKKyAgICB3ZWJWaWV3RW50ZXJGdWxs
c2NyZWVuKHdlYlZpZXcsIG5vZGUpOwogfQogCiB2b2lkIENocm9tZUNsaWVudDo6ZXhpdEZ1bGxz
Y3JlZW5Gb3JOb2RlKE5vZGUqIG5vZGUpCkBAIC02NzYsNyArNjc3LDcgQEAgdm9pZCBDaHJvbWVD
bGllbnQ6OmV4aXRGdWxsc2NyZWVuRm9yTm9kZShOb2RlKiBub2RlKQogICAgIFdlYkNvcmU6OkZy
YW1lKiBmcmFtZSA9IG5vZGUtPmRvY3VtZW50KCktPmZyYW1lKCk7CiAgICAgV2ViS2l0V2ViRnJh
bWUqIHdlYkZyYW1lID0ga2l0KGZyYW1lKTsKICAgICBXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3ID0g
Z2V0Vmlld0Zyb21GcmFtZSh3ZWJGcmFtZSk7Ci0gICAgd2Via2l0V2ViVmlld0V4aXRGdWxsc2Ny
ZWVuKHdlYlZpZXcpOworICAgIHdlYlZpZXdFeGl0RnVsbHNjcmVlbih3ZWJWaWV3KTsKIH0KICNl
bmRpZgogCmRpZmYgLS1naXQgYS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0NvbnRleHRNZW51
Q2xpZW50R3RrLmNwcCBiL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ29udGV4dE1lbnVDbGll
bnRHdGsuY3BwCmluZGV4IDA2OWZiMTkuLjJmNWM4YTggMTAwNjQ0Ci0tLSBhL1dlYktpdC9ndGsv
V2ViQ29yZVN1cHBvcnQvQ29udGV4dE1lbnVDbGllbnRHdGsuY3BwCisrKyBiL1dlYktpdC9ndGsv
V2ViQ29yZVN1cHBvcnQvQ29udGV4dE1lbnVDbGllbnRHdGsuY3BwCkBAIC0xOCwxOCArMTgsMTgg
QEAKICAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiQ29udGV4dE1lbnUuaCIK
ICNpbmNsdWRlICJDb250ZXh0TWVudUNsaWVudEd0ay5oIgogCisjaW5jbHVkZSAiQ29udGV4dE1l
bnUuaCIKICNpbmNsdWRlICJIaXRUZXN0UmVzdWx0LmgiCiAjaW5jbHVkZSAiS1VSTC5oIgogI2lu
Y2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCi0jaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgot
Ci0jaW5jbHVkZSA8Z2xpYi9naTE4bi1saWIuaD4KKyNpbmNsdWRlICJ3ZWJraXRwcml2YXRlLmgi
CisjaW5jbHVkZSAid2Via2l0d2Vidmlld3ByaXZhdGUuaCIKICNpbmNsdWRlIDxnbGliLW9iamVj
dC5oPgorI2luY2x1ZGUgPGdsaWIvZ2kxOG4tbGliLmg+CiAjaW5jbHVkZSA8Z3RrL2d0ay5oPgot
I2luY2x1ZGUgIndlYmtpdHByaXZhdGUuaCIKKyNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+
CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCmRpZmYgLS1naXQgYS9XZWJLaXQvZ3RrL1dl
YkNvcmVTdXBwb3J0L0RyYWdDbGllbnRHdGsuY3BwIGIvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9y
dC9EcmFnQ2xpZW50R3RrLmNwcAppbmRleCBiZTBmYjEwLi4zZjA3MTBkIDEwMDY0NAotLS0gYS9X
ZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0RyYWdDbGllbnRHdGsuY3BwCisrKyBiL1dlYktpdC9n
dGsvV2ViQ29yZVN1cHBvcnQvRHJhZ0NsaWVudEd0ay5jcHAKQEAgLTMzLDYgKzMzLDcgQEAKICNp
bmNsdWRlICJQYXN0ZWJvYXJkSGVscGVyLmgiCiAjaW5jbHVkZSAiUmVuZGVyT2JqZWN0LmgiCiAj
aW5jbHVkZSAid2Via2l0cHJpdmF0ZS5oIgorI2luY2x1ZGUgIndlYmtpdHdlYnZpZXdwcml2YXRl
LmgiCiAjaW5jbHVkZSAid2Via2l0d2Vidmlldy5oIgogI2luY2x1ZGUgPGdkay9nZGsuaD4KICNp
bmNsdWRlIDxndGsvZ3RrLmg+CmRpZmYgLS1naXQgYS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0
L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5jcHAgYi9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0
L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5jcHAKaW5kZXggMTA2OTRkMC4uZGU5ZmViNyAxMDA2
NDQKLS0tIGEvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRH
dGsuY3BwCisrKyBiL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBw
b3J0R3RrLmNwcApAQCAtNDUsNiArNDUsNyBAQAogI2luY2x1ZGUgIlNWR1NNSUxFbGVtZW50Lmgi
CiAjZW5kaWYKICNpbmNsdWRlICJ3ZWJraXRwcml2YXRlLmgiCisjaW5jbHVkZSAid2Via2l0d2Vi
dmlld3ByaXZhdGUuaCIKICNpbmNsdWRlICJ3ZWJraXR3ZWJ2aWV3LmgiCiAjaW5jbHVkZSAid2Vi
a2l0d2ViZnJhbWUuaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9BUElDYXN0Lmg+CmRpZmYg
LS1naXQgYS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEd0ay5jcHAgYi9X
ZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEd0ay5jcHAKaW5kZXggZGEwN2U1
Ni4uNmUzMWIwMyAxMDA2NDQKLS0tIGEvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9FZGl0b3JD
bGllbnRHdGsuY3BwCisrKyBiL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50
R3RrLmNwcApAQCAtNDYsNiArNDYsNyBAQAogI2luY2x1ZGUgIldpbmRvd3NLZXlib2FyZENvZGVz
LmgiCiAjaW5jbHVkZSAid2Via2l0bWFyc2hhbC5oIgogI2luY2x1ZGUgIndlYmtpdHByaXZhdGUu
aCIKKyNpbmNsdWRlICJ3ZWJraXR3ZWJ2aWV3cHJpdmF0ZS5oIgogI2luY2x1ZGUgPHd0Zi90ZXh0
L0NTdHJpbmcuaD4KIAogLy8gQXJiaXRyYXJ5IGRlcHRoIGxpbWl0IGZvciB0aGUgdW5kbyBzdGFj
aywgdG8ga2VlcCBpdCBmcm9tIHVzaW5nCmRpZmYgLS1naXQgYS9XZWJLaXQvZ3RrL1dlYkNvcmVT
dXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNwcCBiL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBv
cnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuY3BwCmluZGV4IDFkZTM3ZjQuLjY4MzQ5NDkgMTAwNjQ0
Ci0tLSBhL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuY3Bw
CisrKyBiL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuY3Bw
CkBAIC0zNCw4ICszNCw4IEBACiAjaW5jbHVkZSAiRm9ybVN0YXRlLmgiCiAjaW5jbHVkZSAiRnJh
bWVMb2FkZXIuaCIKICNpbmNsdWRlICJGcmFtZU5ldHdvcmtpbmdDb250ZXh0R3RrLmgiCi0jaW5j
bHVkZSAiRnJhbWVWaWV3LmgiCiAjaW5jbHVkZSAiRnJhbWVUcmVlLmgiCisjaW5jbHVkZSAiRnJh
bWVWaWV3LmgiCiAjaW5jbHVkZSAiR093blB0ci5oIgogI2luY2x1ZGUgIkdSZWZQdHIuaCIKICNp
bmNsdWRlICJHdGtQbHVnaW5XaWRnZXQuaCIKQEAgLTQ1LDYgKzQ1LDcgQEAKICNpbmNsdWRlICJI
VE1MRnJhbWVPd25lckVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKICNpbmNsdWRl
ICJIVE1MUGx1Z0luRWxlbWVudC5oIgorI2luY2x1ZGUgIkpTRE9NQmluZGluZy5oIgogI2luY2x1
ZGUgIkpTRE9NV2luZG93LmgiCiAjaW5jbHVkZSAiTGFuZ3VhZ2UuaCIKICNpbmNsdWRlICJNSU1F
VHlwZVJlZ2lzdHJ5LmgiCkBAIC01MiwxMSArNTMsMTAgQEAKICNpbmNsdWRlICJOb3RJbXBsZW1l
bnRlZC5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJQbHVnaW5EYXRhYmFzZS5oIgor
I2luY2x1ZGUgIlByb2dyZXNzVHJhY2tlci5oIgogI2luY2x1ZGUgIlJlbmRlclBhcnQuaCIKICNp
bmNsdWRlICJSZXNvdXJjZUhhbmRsZS5oIgogI2luY2x1ZGUgIlJlc291cmNlUmVxdWVzdC5oIgot
I2luY2x1ZGUgIlByb2dyZXNzVHJhY2tlci5oIgotI2luY2x1ZGUgIkpTRE9NQmluZGluZy5oIgog
I2luY2x1ZGUgIlNjcmlwdENvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJ3ZWJraXRlcnJvci5oIgog
I2luY2x1ZGUgIndlYmtpdG5ldHdvcmtyZXF1ZXN0LmgiCkBAIC02NiwxNCArNjYsMTQgQEAKICNp
bmNsdWRlICJ3ZWJraXR3ZWJuYXZpZ2F0aW9uYWN0aW9uLmgiCiAjaW5jbHVkZSAid2Via2l0d2Vi
cG9saWN5ZGVjaXNpb24uaCIKICNpbmNsdWRlICJ3ZWJraXR3ZWJ2aWV3LmgiCi0jaW5jbHVkZSA8
d3RmL3RleHQvQ1N0cmluZy5oPgotI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0NvbmNhdGVuYXRl
Lmg+Ci0KKyNpbmNsdWRlICJ3ZWJraXR3ZWJ2aWV3cHJpdmF0ZS5oIgogI2luY2x1ZGUgPEphdmFT
Y3JpcHRDb3JlL0FQSUNhc3QuaD4KICNpbmNsdWRlIDxnaW8vZ2lvLmg+CiAjaW5jbHVkZSA8Z2xp
Yi5oPgogI2luY2x1ZGUgPGdsaWIvZ2kxOG4tbGliLmg+CiAjaW5jbHVkZSA8c3RkaW8uaD4KKyNp
bmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQ29u
Y2F0ZW5hdGUuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKZGlmZiAtLWdpdCBhL1dl
YktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvSW5zcGVjdG9yQ2xpZW50R3RrLmNwcCBiL1dlYktpdC9n
dGsvV2ViQ29yZVN1cHBvcnQvSW5zcGVjdG9yQ2xpZW50R3RrLmNwcAppbmRleCAzMTJiOGM4Li4w
YmRiOThmIDEwMDY0NAotLS0gYS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0luc3BlY3RvckNs
aWVudEd0ay5jcHAKKysrIGIvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9JbnNwZWN0b3JDbGll
bnRHdGsuY3BwCkBAIC0yMSwxMyArMjEsMTQgQEAKICNpbmNsdWRlICJJbnNwZWN0b3JDbGllbnRH
dGsuaCIKIAogI2luY2x1ZGUgIkZyYW1lLmgiCi0jaW5jbHVkZSAid2Via2l0d2Vidmlldy5oIgot
I2luY2x1ZGUgIndlYmtpdHdlYmluc3BlY3Rvci5oIgotI2luY2x1ZGUgIndlYmtpdHByaXZhdGUu
aCIKLSNpbmNsdWRlICJ3ZWJraXR2ZXJzaW9uLmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yQ29udHJv
bGxlci5oIgogI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1T
dHJpbmcuaCIKKyNpbmNsdWRlICJ3ZWJraXRwcml2YXRlLmgiCisjaW5jbHVkZSAid2Via2l0dmVy
c2lvbi5oIgorI2luY2x1ZGUgIndlYmtpdHdlYmluc3BlY3Rvci5oIgorI2luY2x1ZGUgIndlYmtp
dHdlYnZpZXcuaCIKKyNpbmNsdWRlICJ3ZWJraXR3ZWJ2aWV3cHJpdmF0ZS5oIgogI2luY2x1ZGUg
PHd0Zi90ZXh0L0NTdHJpbmcuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CmRpZmYgLS1n
aXQgYS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L1Bhc3RlYm9hcmRIZWxwZXJHdGsuY3BwIGIv
V2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9QYXN0ZWJvYXJkSGVscGVyR3RrLmNwcAppbmRleCAw
MmRhMWQ0Li5lOTlmYzg0IDEwMDY0NAotLS0gYS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L1Bh
c3RlYm9hcmRIZWxwZXJHdGsuY3BwCisrKyBiL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvUGFz
dGVib2FyZEhlbHBlckd0ay5jcHAKQEAgLTI0LDEwICsyNCwxMCBAQAogI2luY2x1ZGUgIkRhdGFP
YmplY3RHdGsuaCIKICNpbmNsdWRlICJGb2N1c0NvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJGcmFt
ZS5oIgotI2luY2x1ZGUgPGd0ay9ndGsuaD4KICNpbmNsdWRlICJ3ZWJraXR3ZWJmcmFtZS5oIgog
I2luY2x1ZGUgIndlYmtpdHdlYnZpZXcuaCIKLSNpbmNsdWRlICJ3ZWJraXRwcml2YXRlLmgiCisj
aW5jbHVkZSAid2Via2l0d2Vidmlld3ByaXZhdGUuaCIKKyNpbmNsdWRlIDxndGsvZ3RrLmg+CiAK
IHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCmRpZmYgLS1naXQgYS9XZWJLaXQvZ3RrL3dlYmtp
dC93ZWJraXRwcml2YXRlLmNwcCBiL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHByaXZhdGUuY3Bw
CmluZGV4IDUyY2U4OTYuLmIwY2Y3NDQgMTAwNjQ0Ci0tLSBhL1dlYktpdC9ndGsvd2Via2l0L3dl
YmtpdHByaXZhdGUuY3BwCisrKyBiL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHByaXZhdGUuY3Bw
CkBAIC05MCwyNSArOTAsNiBAQCBXZWJLaXRXZWJGcmFtZSoga2l0KFdlYkNvcmU6OkZyYW1lKiBj
b3JlRnJhbWUpCiAgICAgcmV0dXJuIGNsaWVudCA/IGNsaWVudC0+d2ViRnJhbWUoKSA6IDA7CiB9
CiAKLVdlYkNvcmU6OlBhZ2UqIGNvcmUoV2ViS2l0V2ViVmlldyogd2ViVmlldykKLXsKLSAgICBp
ZiAoIXdlYlZpZXcpCi0gICAgICAgIHJldHVybiAwOwotCi0gICAgV2ViS2l0V2ViVmlld1ByaXZh
dGUqIHByaXYgPSB3ZWJWaWV3LT5wcml2OwotICAgIHJldHVybiBwcml2ID8gcHJpdi0+Y29yZVBh
Z2UgOiAwOwotfQotCi1XZWJLaXRXZWJWaWV3KiBraXQoV2ViQ29yZTo6UGFnZSogY29yZVBhZ2Up
Ci17Ci0gICAgaWYgKCFjb3JlUGFnZSkKLSAgICAgICAgcmV0dXJuIDA7Ci0KLSAgICBBU1NFUlQo
Y29yZVBhZ2UtPmNocm9tZSgpKTsKLSAgICBXZWJLaXQ6OkNocm9tZUNsaWVudCogY2xpZW50ID0g
c3RhdGljX2Nhc3Q8V2ViS2l0OjpDaHJvbWVDbGllbnQqPihjb3JlUGFnZS0+Y2hyb21lKCktPmNs
aWVudCgpKTsKLSAgICByZXR1cm4gY2xpZW50ID8gY2xpZW50LT53ZWJWaWV3KCkgOiAwOwotfQot
CiBXZWJLaXRXZWJOYXZpZ2F0aW9uUmVhc29uIGtpdChXZWJDb3JlOjpOYXZpZ2F0aW9uVHlwZSB0
eXBlKQogewogICAgIHJldHVybiAoV2ViS2l0V2ViTmF2aWdhdGlvblJlYXNvbil0eXBlOwpAQCAt
MzE2LDMyICsyOTcsMyBAQCB2b2lkIHdlYmtpdF9pbml0KCkKIAogICAgIHNvdXBfc2Vzc2lvbl9h
ZGRfZmVhdHVyZV9ieV90eXBlKHNlc3Npb24sIFNPVVBfVFlQRV9DT05URU5UX0RFQ09ERVIpOwog
fQotCi12b2lkIHdlYmtpdFdlYlZpZXdFbnRlckZ1bGxzY3JlZW4oV2ViS2l0V2ViVmlldyogd2Vi
VmlldywgTm9kZSogbm9kZSkKLXsKLSAgICBpZiAoIW5vZGUtPmhhc1RhZ05hbWUoSFRNTE5hbWVz
Ojp2aWRlb1RhZykpCi0gICAgICAgIHJldHVybjsKLQotI2lmIEVOQUJMRShWSURFTykKLSAgICBI
VE1MTWVkaWFFbGVtZW50KiB2aWRlb0VsZW1lbnQgPSBzdGF0aWNfY2FzdDxIVE1MTWVkaWFFbGVt
ZW50Kj4obm9kZSk7Ci0gICAgV2ViS2l0V2ViVmlld1ByaXZhdGUqIHByaXYgPSB3ZWJWaWV3LT5w
cml2OwotCi0gICAgLy8gRmlyc3QgZXhpdCBGdWxsc2NyZWVuIGZvciB0aGUgb2xkIG1lZGlhRWxl
bWVudC4KLSAgICBpZiAocHJpdi0+ZnVsbHNjcmVlblZpZGVvQ29udHJvbGxlcikKLSAgICAgICAg
cHJpdi0+ZnVsbHNjcmVlblZpZGVvQ29udHJvbGxlci0+ZXhpdEZ1bGxzY3JlZW4oKTsKLQotICAg
IHByaXYtPmZ1bGxzY3JlZW5WaWRlb0NvbnRyb2xsZXIgPSBuZXcgRnVsbHNjcmVlblZpZGVvQ29u
dHJvbGxlcjsKLSAgICBwcml2LT5mdWxsc2NyZWVuVmlkZW9Db250cm9sbGVyLT5zZXRNZWRpYUVs
ZW1lbnQodmlkZW9FbGVtZW50KTsKLSAgICBwcml2LT5mdWxsc2NyZWVuVmlkZW9Db250cm9sbGVy
LT5lbnRlckZ1bGxzY3JlZW4oKTsKLSNlbmRpZgotfQotCi12b2lkIHdlYmtpdFdlYlZpZXdFeGl0
RnVsbHNjcmVlbihXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3KQotewotI2lmIEVOQUJMRShWSURFTykK
LSAgICBXZWJLaXRXZWJWaWV3UHJpdmF0ZSogcHJpdiA9IHdlYlZpZXctPnByaXY7Ci0gICAgaWYg
KHByaXYtPmZ1bGxzY3JlZW5WaWRlb0NvbnRyb2xsZXIpCi0gICAgICAgIHByaXYtPmZ1bGxzY3Jl
ZW5WaWRlb0NvbnRyb2xsZXItPmV4aXRGdWxsc2NyZWVuKCk7Ci0jZW5kaWYKLX0KLQpkaWZmIC0t
Z2l0IGEvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0cHJpdmF0ZS5oIGIvV2ViS2l0L2d0ay93ZWJr
aXQvd2Via2l0cHJpdmF0ZS5oCmluZGV4IDBmOGQ3MDAuLmFjOGQ3ZTQgMTAwNjQ0Ci0tLSBhL1dl
YktpdC9ndGsvd2Via2l0L3dlYmtpdHByaXZhdGUuaAorKysgYi9XZWJLaXQvZ3RrL3dlYmtpdC93
ZWJraXRwcml2YXRlLmgKQEAgLTU3LDcgKzU3LDYgQEAKICNpbmNsdWRlICJJbnRQb2ludC5oIgog
I2luY2x1ZGUgIkludFJlY3QuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRlckNsaWVudC5oIgotI2lu
Y2x1ZGUgIkZ1bGxzY3JlZW5WaWRlb0NvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJOb2RlLmgiCiAj
aW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCkBAIC04Nyw5ICs4
Niw2IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogICAgIFdlYkNvcmU6OkZyYW1lKiBjb3JlKFdlYktp
dFdlYkZyYW1lKik7CiAgICAgV2ViS2l0V2ViRnJhbWUqIGtpdChXZWJDb3JlOjpGcmFtZSopOwog
Ci0gICAgV2ViQ29yZTo6UGFnZSogY29yZShXZWJLaXRXZWJWaWV3Kik7Ci0gICAgV2ViS2l0V2Vi
Vmlldyoga2l0KFdlYkNvcmU6OlBhZ2UqKTsKLQogICAgIFdlYkNvcmU6Okhpc3RvcnlJdGVtKiBj
b3JlKFdlYktpdFdlYkhpc3RvcnlJdGVtKik7CiAgICAgV2ViS2l0V2ViSGlzdG9yeUl0ZW0qIGtp
dChQYXNzUmVmUHRyPFdlYkNvcmU6Okhpc3RvcnlJdGVtPik7CiAKQEAgLTExMCwxNSArMTA2LDYg
QEAgbmFtZXNwYWNlIFdlYktpdCB7CiAgICAgV2ViS2l0SGl0VGVzdFJlc3VsdCoga2l0KGNvbnN0
IFdlYkNvcmU6OkhpdFRlc3RSZXN1bHQmKTsKIAogICAgIFBhc3RlYm9hcmRIZWxwZXJHdGsqIHBh
c3RlYm9hcmRIZWxwZXJJbnN0YW5jZSgpOwotCi0gICAgdHlwZWRlZiBzdHJ1Y3QgRHJvcHBpbmdD
b250ZXh0XyB7Ci0gICAgICAgIFdlYktpdFdlYlZpZXcqIHdlYlZpZXc7Ci0gICAgICAgIEdka0Ry
YWdDb250ZXh0KiBnZGtDb250ZXh0OwotICAgICAgICBSZWZQdHI8V2ViQ29yZTo6RGF0YU9iamVj
dEd0az4gZGF0YU9iamVjdDsKLSAgICAgICAgV2ViQ29yZTo6SW50UG9pbnQgbGFzdE1vdGlvblBv
c2l0aW9uOwotICAgICAgICBpbnQgcGVuZGluZ0RhdGFSZXF1ZXN0czsKLSAgICAgICAgYm9vbCBk
cm9wSGFwcGVuZWQ7Ci0gICAgfSBEcm9wcGluZ0NvbnRleHQ7CiB9CiAKIGV4dGVybiAiQyIgewpA
QCAtMTMxLDY3ICsxMTgsNiBAQCBleHRlcm4gIkMiIHsKICNkZWZpbmUgV0VCS0lUX1BBUkFNX1JF
QURBQkxFICgoR1BhcmFtRmxhZ3MpKEdfUEFSQU1fUkVBREFCTEV8R19QQVJBTV9TVEFUSUNfTkFN
RXxHX1BBUkFNX1NUQVRJQ19OSUNLfEdfUEFSQU1fU1RBVElDX0JMVVJCKSkKICNkZWZpbmUgV0VC
S0lUX1BBUkFNX1JFQURXUklURSAoKEdQYXJhbUZsYWdzKShHX1BBUkFNX1JFQURXUklURXxHX1BB
UkFNX1NUQVRJQ19OQU1FfEdfUEFSQU1fU1RBVElDX05JQ0t8R19QQVJBTV9TVEFUSUNfQkxVUkIp
KQogCi0gICAgI2RlZmluZSBXRUJLSVRfV0VCX1ZJRVdfR0VUX1BSSVZBVEUob2JqKSAgICAoR19U
WVBFX0lOU1RBTkNFX0dFVF9QUklWQVRFKChvYmopLCBXRUJLSVRfVFlQRV9XRUJfVklFVywgV2Vi
S2l0V2ViVmlld1ByaXZhdGUpKQotICAgIHR5cGVkZWYgc3RydWN0IF9XZWJLaXRXZWJWaWV3UHJp
dmF0ZSBXZWJLaXRXZWJWaWV3UHJpdmF0ZTsKLSAgICBzdHJ1Y3QgX1dlYktpdFdlYlZpZXdQcml2
YXRlIHsKLSAgICAgICAgV2ViQ29yZTo6UGFnZSogY29yZVBhZ2U7Ci0gICAgICAgIFBsYXRmb3Jt
UmVmUHRyPFdlYktpdFdlYlNldHRpbmdzPiB3ZWJTZXR0aW5nczsKLSAgICAgICAgUGxhdGZvcm1S
ZWZQdHI8V2ViS2l0V2ViSW5zcGVjdG9yPiB3ZWJJbnNwZWN0b3I7Ci0gICAgICAgIFBsYXRmb3Jt
UmVmUHRyPFdlYktpdFdlYldpbmRvd0ZlYXR1cmVzPiB3ZWJXaW5kb3dGZWF0dXJlczsKLQotICAg
ICAgICBXZWJLaXRXZWJGcmFtZSogbWFpbkZyYW1lOwotICAgICAgICBQbGF0Zm9ybVJlZlB0cjxX
ZWJLaXRXZWJCYWNrRm9yd2FyZExpc3Q+IGJhY2tGb3J3YXJkTGlzdDsKLQotICAgICAgICBQbGF0
Zm9ybVJlZlB0cjxHdGtNZW51PiBjdXJyZW50TWVudTsKLSAgICAgICAgZ2ludCBsYXN0UG9wdXBY
UG9zaXRpb247Ci0gICAgICAgIGdpbnQgbGFzdFBvcHVwWVBvc2l0aW9uOwotCi0gICAgICAgIEhh
c2hTZXQ8R3RrV2lkZ2V0Kj4gY2hpbGRyZW47Ci0gICAgICAgIGJvb2wgZWRpdGFibGU7Ci0gICAg
ICAgIFBsYXRmb3JtUmVmUHRyPEd0a0lNQ29udGV4dD4gaW1Db250ZXh0OwotCi0gICAgICAgIGdi
b29sZWFuIHRyYW5zcGFyZW50OwotCi0gICAgICAgIFBsYXRmb3JtUmVmUHRyPEd0a0FkanVzdG1l
bnQ+IGhvcml6b250YWxBZGp1c3RtZW50OwotICAgICAgICBQbGF0Zm9ybVJlZlB0cjxHdGtBZGp1
c3RtZW50PiB2ZXJ0aWNhbEFkanVzdG1lbnQ7Ci0KLSNpZm5kZWYgR1RLX0FQSV9WRVJTSU9OXzIK
LSAgICAgICAgLy8gR3RrU2Nyb2xsYWJsZVBvbGljeSBuZWVkcyB0byBiZSBjaGVja2VkIHdoZW4K
LSAgICAgICAgLy8gZHJpdmluZyB0aGUgc2Nyb2xsYWJsZSBhZGp1c3RtZW50IHZhbHVlcwotICAg
ICAgICBHdGtTY3JvbGxhYmxlUG9saWN5IGhvcml6b250YWxTY3JvbGxpbmdQb2xpY3k7Ci0gICAg
ICAgIEd0a1Njcm9sbGFibGVQb2xpY3kgdmVydGljYWxTY3JvbGxpbmdQb2xpY3k7Ci0jZW5kaWYK
LQotICAgICAgICBnYm9vbGVhbiB6b29tRnVsbENvbnRlbnQ7Ci0gICAgICAgIFdlYktpdExvYWRT
dGF0dXMgbG9hZFN0YXR1czsKLSAgICAgICAgQ1N0cmluZyBlbmNvZGluZzsKLSAgICAgICAgQ1N0
cmluZyBjdXN0b21FbmNvZGluZzsKLQotICAgICAgICBDU3RyaW5nIGljb25VUkk7Ci0KLSAgICAg
ICAgZ2Jvb2xlYW4gZGlzcG9zaW5nOwotICAgICAgICBnYm9vbGVhbiB1c2VQcmltYXJ5Rm9yUGFz
dGU7Ci0KLSNpZiBFTkFCTEUoVklERU8pCi0gICAgICAgIEZ1bGxzY3JlZW5WaWRlb0NvbnRyb2xs
ZXIqIGZ1bGxzY3JlZW5WaWRlb0NvbnRyb2xsZXI7Ci0jZW5kaWYKLQotICAgICAgICAvLyBUaGVz
ZSBhcmUgaG9zdGVkIGhlcmUgYmVjYXVzZSB0aGUgRGF0YVNvdXJjZSBvYmplY3QgaXMKLSAgICAg
ICAgLy8gY3JlYXRlZCB0b28gbGF0ZSBpbiB0aGUgZnJhbWUgbG9hZGluZyBwcm9jZXNzLgotICAg
ICAgICBQbGF0Zm9ybVJlZlB0cjxXZWJLaXRXZWJSZXNvdXJjZT4gbWFpblJlc291cmNlOwotICAg
ICAgICBDU3RyaW5nIG1haW5SZXNvdXJjZUlkZW50aWZpZXI7Ci0gICAgICAgIFBsYXRmb3JtUmVm
UHRyPEdIYXNoVGFibGU+IHN1YlJlc291cmNlczsKLSAgICAgICAgQ1N0cmluZyB0b29sdGlwVGV4
dDsKLSAgICAgICAgV2ViQ29yZTo6SW50UmVjdCB0b29sdGlwQXJlYTsKLQotICAgICAgICBpbnQg
Y3VycmVudENsaWNrQ291bnQ7Ci0gICAgICAgIFdlYkNvcmU6OkludFBvaW50IHByZXZpb3VzQ2xp
Y2tQb2ludDsKLSAgICAgICAgZ3VpbnQgcHJldmlvdXNDbGlja0J1dHRvbjsKLSAgICAgICAgZ3Vp
bnQzMiBwcmV2aW91c0NsaWNrVGltZTsKLSAgICAgICAgSGFzaE1hcDxHZGtEcmFnQ29udGV4dCos
IFJlZlB0cjxXZWJDb3JlOjpEYXRhT2JqZWN0R3RrPiA+IGRyYWdnaW5nRGF0YU9iamVjdHM7Ci0g
ICAgICAgIEhhc2hNYXA8R2RrRHJhZ0NvbnRleHQqLCBXZWJLaXQ6OkRyb3BwaW5nQ29udGV4dCo+
IGRyb3BwaW5nQ29udGV4dHM7Ci0gICAgfTsKLQogICAgICNkZWZpbmUgV0VCS0lUX1dFQl9GUkFN
RV9HRVRfUFJJVkFURShvYmopICAgIChHX1RZUEVfSU5TVEFOQ0VfR0VUX1BSSVZBVEUoKG9iaiks
IFdFQktJVF9UWVBFX1dFQl9GUkFNRSwgV2ViS2l0V2ViRnJhbWVQcml2YXRlKSkKICAgICB0eXBl
ZGVmIHN0cnVjdCBfV2ViS2l0V2ViRnJhbWVQcml2YXRlIFdlYktpdFdlYkZyYW1lUHJpdmF0ZTsK
ICAgICBzdHJ1Y3QgX1dlYktpdFdlYkZyYW1lUHJpdmF0ZSB7CkBAIC0yNzEsMzkgKzE5Nyw2IEBA
IGV4dGVybiAiQyIgewogICAgIFdlYktpdFdlYldpbmRvd0ZlYXR1cmVzKgogICAgIHdlYmtpdF93
ZWJfd2luZG93X2ZlYXR1cmVzX25ld19mcm9tX2NvcmVfZmVhdHVyZXMgKGNvbnN0IFdlYkNvcmU6
OldpbmRvd0ZlYXR1cmVzJiBmZWF0dXJlcyk7CiAKLSAgICB2b2lkCi0gICAgd2Via2l0X3dlYl92
aWV3X25vdGlmeV9yZWFkeSAoV2ViS2l0V2ViVmlldyogd2ViX3ZpZXcpOwotCi0gICAgdm9pZAot
ICAgIHdlYmtpdF93ZWJfdmlld19yZXF1ZXN0X2Rvd25sb2FkKFdlYktpdFdlYlZpZXcqIHdlYl92
aWV3LCBXZWJLaXROZXR3b3JrUmVxdWVzdCogcmVxdWVzdCwgY29uc3QgV2ViQ29yZTo6UmVzb3Vy
Y2VSZXNwb25zZSYgcmVzcG9uc2UgPSBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlKCksIFdlYkNv
cmU6OlJlc291cmNlSGFuZGxlKiBoYW5kbGUgPSAwKTsKLQotICAgIHZvaWQKLSAgICB3ZWJraXRf
d2ViX3ZpZXdfYWRkX3Jlc291cmNlKFdlYktpdFdlYlZpZXcqLCBjb25zdCBjaGFyKiwgV2ViS2l0
V2ViUmVzb3VyY2UqKTsKLQotICAgIHZvaWQKLSAgICB3ZWJraXRfd2ViX3ZpZXdfYWRkX21haW5f
cmVzb3VyY2UoV2ViS2l0V2ViVmlldyosIGNvbnN0IGNoYXIqLCBXZWJLaXRXZWJSZXNvdXJjZSop
OwotCi0gICAgdm9pZAotICAgIHdlYmtpdF93ZWJfdmlld19yZW1vdmVfcmVzb3VyY2UoV2ViS2l0
V2ViVmlldyosIGNvbnN0IGNoYXIqKTsKLQotICAgIFdlYktpdFdlYlJlc291cmNlKgotICAgIHdl
YmtpdF93ZWJfdmlld19nZXRfcmVzb3VyY2UoV2ViS2l0V2ViVmlldyosIGNoYXIqKTsKLQotICAg
IFdlYktpdFdlYlJlc291cmNlKgotICAgIHdlYmtpdF93ZWJfdmlld19nZXRfbWFpbl9yZXNvdXJj
ZShXZWJLaXRXZWJWaWV3Kik7Ci0KLSAgICB2b2lkCi0gICAgd2Via2l0X3dlYl92aWV3X2NsZWFy
X3Jlc291cmNlcyhXZWJLaXRXZWJWaWV3Kik7Ci0KLSAgICBHTGlzdCoKLSAgICB3ZWJraXRfd2Vi
X3ZpZXdfZ2V0X3N1YnJlc291cmNlcyhXZWJLaXRXZWJWaWV3Kik7Ci0KLSAgICB2b2lkCi0gICAg
d2Via2l0X3dlYl92aWV3X3NldF90b29sdGlwX3RleHQoV2ViS2l0V2ViVmlldyosIGNvbnN0IGNo
YXIqKTsKLQotICAgIEd0a01lbnUqCi0gICAgd2Via2l0X3dlYl92aWV3X2dldF9jb250ZXh0X21l
bnUoV2ViS2l0V2ViVmlldyopOwotCiAgICAgV2ViS2l0RG93bmxvYWQqCiAgICAgd2Via2l0X2Rv
d25sb2FkX25ld193aXRoX2hhbmRsZShXZWJLaXROZXR3b3JrUmVxdWVzdCogcmVxdWVzdCwgV2Vi
Q29yZTo6UmVzb3VyY2VIYW5kbGUqIGhhbmRsZSwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNw
b25zZSYgcmVzcG9uc2UpOwogCkBAIC0zMzUsMTggKzIyOCwxMiBAQCBleHRlcm4gIkMiIHsKIAog
ICAgIC8vIEZJWE1FOiBNb3ZlIHRoZXNlIHRvIHdlYmtpdHdlYmZyYW1lLmggb25jZSB0aGVpciBB
UEkgaGFzIGJlZW4gZGlzY3Vzc2VkLgogCi0gICAgV0VCS0lUX0FQSSBnY2hhcioKLSAgICB3ZWJr
aXRfd2ViX3ZpZXdfZ2V0X3NlbGVjdGVkX3RleHQgKFdlYktpdFdlYlZpZXcqIHdlYl92aWV3KTsK
LQogICAgIFdFQktJVF9BUEkgdm9pZAogICAgIHdlYmtpdF93ZWJfc2V0dGluZ3NfYWRkX2V4dHJh
X3BsdWdpbl9kaXJlY3RvcnkgKFdlYktpdFdlYlZpZXcgKndlYl92aWV3LCBjb25zdCBnY2hhciog
ZGlyZWN0b3J5KTsKIAogICAgIEdTTGlzdCoKICAgICB3ZWJraXRfd2ViX3NldHRpbmdzX2dldF9l
bmNoYW50X2RpY3RzKFdlYktpdFdlYlZpZXcqIHdlYl92aWV3KTsKIAotICAgIGJvb2wKLSAgICB3
ZWJraXRfd2ViX3ZpZXdfdXNlX3ByaW1hcnlfZm9yX3Bhc3RlKFdlYktpdFdlYlZpZXcqIHdlYl92
aWV3KTsKLQogICAgIEdIYXNoVGFibGUqCiAgICAgd2Via2l0X2hpc3RvcnlfaXRlbXModm9pZCk7
CiAKQEAgLTM3NCw5ICsyNjEsNiBAQCBleHRlcm4gIkMiIHsKIAogICAgIFdFQktJVF9BUEkgdm9p
ZAogICAgIHdlYmtpdF93ZWJfZnJhbWVfbGF5b3V0KFdlYktpdFdlYkZyYW1lKiBmcmFtZSk7Ci0K
LSAgICB2b2lkIHdlYmtpdFdlYlZpZXdFbnRlckZ1bGxzY3JlZW4oV2ViS2l0V2ViVmlldyogd2Vi
VmlldywgV2ViQ29yZTo6Tm9kZSogbm9kZSk7Ci0gICAgdm9pZCB3ZWJraXRXZWJWaWV3RXhpdEZ1
bGxzY3JlZW4oV2ViS2l0V2ViVmlldyogd2ViVmlldyk7CiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0
IGEvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2ViYmFja2ZvcndhcmRsaXN0LmNwcCBiL1dlYktp
dC9ndGsvd2Via2l0L3dlYmtpdHdlYmJhY2tmb3J3YXJkbGlzdC5jcHAKaW5kZXggOWI1YmY4Yi4u
NTQxYjBlMiAxMDA2NDQKLS0tIGEvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2ViYmFja2Zvcndh
cmRsaXN0LmNwcAorKysgYi9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJiYWNrZm9yd2FyZGxp
c3QuY3BwCkBAIC0yNiw2ICsyNiw3IEBACiAjaW5jbHVkZSAid2Via2l0cHJpdmF0ZS5oIgogI2lu
Y2x1ZGUgIndlYmtpdHdlYmhpc3RvcnlpdGVtLmgiCiAjaW5jbHVkZSAid2Via2l0d2Vidmlldy5o
IgorI2luY2x1ZGUgIndlYmtpdHdlYnZpZXdwcml2YXRlLmgiCiAjaW5jbHVkZSA8Z2xpYi5oPgog
CiAvKioKZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYmRhdGFzb3VyY2Uu
Y3BwIGIvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2ViZGF0YXNvdXJjZS5jcHAKaW5kZXggMzY3
M2E5OS4uZGU4NjcxYyAxMDA2NDQKLS0tIGEvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2ViZGF0
YXNvdXJjZS5jcHAKKysrIGIvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2ViZGF0YXNvdXJjZS5j
cHAKQEAgLTIyLDE4ICsyMiwxOCBAQAogCiAjaW5jbHVkZSAiQXJjaGl2ZVJlc291cmNlLmgiCiAj
aW5jbHVkZSAiRG9jdW1lbnRMb2FkZXJHdGsuaCIKLSNpbmNsdWRlICJGcmFtZUxvYWRlckNsaWVu
dEd0ay5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZGVyLmgiCisjaW5jbHVkZSAiRnJhbWVMb2FkZXJD
bGllbnRHdGsuaCIKICNpbmNsdWRlICJLVVJMLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcu
aCIKICNpbmNsdWRlICJSZXNvdXJjZVJlcXVlc3QuaCIKLSNpbmNsdWRlICJydW50aW1lL0luaXRp
YWxpemVUaHJlYWRpbmcuaCIKICNpbmNsdWRlICJTaGFyZWRCdWZmZXIuaCIKICNpbmNsdWRlICJT
dWJzdGl0dXRlRGF0YS5oIgotI2luY2x1ZGUgIndlYmtpdHdlYnJlc291cmNlLmgiCisjaW5jbHVk
ZSAicnVudGltZS9Jbml0aWFsaXplVGhyZWFkaW5nLmgiCiAjaW5jbHVkZSAid2Via2l0cHJpdmF0
ZS5oIgorI2luY2x1ZGUgIndlYmtpdHdlYnJlc291cmNlLmgiCisjaW5jbHVkZSAid2Via2l0d2Vi
dmlld3ByaXZhdGUuaCIKICNpbmNsdWRlICJ3dGYvQXNzZXJ0aW9ucy5oIgotCiAjaW5jbHVkZSA8
Z2xpYi5oPgogCiAvKioKZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYmZy
YW1lLmNwcCBiL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYmZyYW1lLmNwcAppbmRleCBlZDEw
ZTQ4Li44ZjAxOTViIDEwMDY0NAotLS0gYS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJmcmFt
ZS5jcHAKKysrIGIvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2ViZnJhbWUuY3BwCkBAIC0yNSwx
NiArMjUsMTEgQEAKICAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCi0KLSNpbmNsdWRlICJ3ZWJr
aXRlbnVtdHlwZXMuaCIKICNpbmNsdWRlICJ3ZWJraXR3ZWJmcmFtZS5oIgotI2luY2x1ZGUgIndl
YmtpdHdlYnZpZXcuaCIKLSNpbmNsdWRlICJ3ZWJraXRtYXJzaGFsLmgiCi0jaW5jbHVkZSAid2Vi
a2l0cHJpdmF0ZS5oIgogCisjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgogI2luY2x1ZGUgIkFj
Y2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyQXRrLmgiCiAjaW5jbHVkZSAiQW5pbWF0aW9uQ29udHJv
bGxlci5oIgotI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKICNpbmNsdWRlICJET01PYmplY3RD
YWNoZS5oIgogI2luY2x1ZGUgIkRvY3VtZW50TG9hZGVyLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRM
b2FkZXJHdGsuaCIKQEAgLTQyLDI5ICszNywzNCBAQAogI2luY2x1ZGUgIkZyYW1lTG9hZGVyQ2xp
ZW50R3RrLmgiCiAjaW5jbHVkZSAiRnJhbWVUcmVlLmgiCiAjaW5jbHVkZSAiRnJhbWVWaWV3Lmgi
Ci0jaW5jbHVkZSA8Z2xpYi9naTE4bi1saWIuaD4KICNpbmNsdWRlICJHQ0NvbnRyb2xsZXIuaCIK
ICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQuaCIKICNpbmNsdWRlICJHdGtWZXJzaW9uaW5nLmgi
CiAjaW5jbHVkZSAiSFRNTEZyYW1lT3duZXJFbGVtZW50LmgiCisjaW5jbHVkZSAiSlNET01CaW5k
aW5nLmgiCiAjaW5jbHVkZSAiSlNET01XaW5kb3cuaCIKICNpbmNsdWRlICJKU0VsZW1lbnQuaCIK
ICNpbmNsdWRlICJKU0xvY2suaCIKICNpbmNsdWRlICJQcmludENvbnRleHQuaCIKICNpbmNsdWRl
ICJSZW5kZXJMaXN0SXRlbS5oIgotI2luY2x1ZGUgIlJlbmRlclZpZXcuaCIKICNpbmNsdWRlICJS
ZW5kZXJUcmVlQXNUZXh0LmgiCi0jaW5jbHVkZSAiSlNET01CaW5kaW5nLmgiCisjaW5jbHVkZSAi
UmVuZGVyVmlldy5oIgogI2luY2x1ZGUgIlNjcmlwdENvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJT
dWJzdGl0dXRlRGF0YS5oIgorI2luY2x1ZGUgIndlYmtpdGVudW10eXBlcy5oIgorI2luY2x1ZGUg
IndlYmtpdG1hcnNoYWwuaCIKKyNpbmNsdWRlICJ3ZWJraXRwcml2YXRlLmgiCisjaW5jbHVkZSAi
d2Via2l0d2Vidmlldy5oIgorI2luY2x1ZGUgIndlYmtpdHdlYnZpZXdwcml2YXRlLmgiCisjaW5j
bHVkZSA8SmF2YVNjcmlwdENvcmUvQVBJQ2FzdC5oPgorI2luY2x1ZGUgPGF0ay9hdGsuaD4KKyNp
bmNsdWRlIDxnbGliL2dpMThuLWxpYi5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4K
KwogI2lmIEVOQUJMRShTVkcpCiAjaW5jbHVkZSAiU1ZHU01JTEVsZW1lbnQuaCIKICNlbmRpZgog
Ci0jaW5jbHVkZSA8YXRrL2F0ay5oPgotI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0FQSUNhc3Qu
aD4KLSNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+Ci0KIC8qKgogICogU0VDVElPTjp3ZWJr
aXR3ZWJmcmFtZQogICogQHNob3J0X2Rlc2NyaXB0aW9uOiBUaGUgY29udGVudCBvZiBhICNXZWJL
aXRXZWJWaWV3CmRpZmYgLS1naXQgYS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3LmNw
cCBiL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwCmluZGV4IDkzYTMxODguLjdl
ZjU3M2QgMTAwNjQ0Ci0tLSBhL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwCisr
KyBiL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwCkBAIC0yOSwyNiArMjksMTUg
QEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJ3ZWJraXR3ZWJ2aWV3LmgiCiAKLSNp
bmNsdWRlICJ3ZWJraXRkb3dubG9hZC5oIgotI2luY2x1ZGUgIndlYmtpdGVudW10eXBlcy5oIgot
I2luY2x1ZGUgIndlYmtpdGdlb2xvY2F0aW9ucG9saWN5ZGVjaXNpb24uaCIKLSNpbmNsdWRlICJ3
ZWJraXRtYXJzaGFsLmgiCi0jaW5jbHVkZSAid2Via2l0bmV0d29ya3JlcXVlc3QuaCIKLSNpbmNs
dWRlICJ3ZWJraXRuZXR3b3JrcmVzcG9uc2UuaCIKLSNpbmNsdWRlICJ3ZWJraXRwcml2YXRlLmgi
Ci0jaW5jbHVkZSAid2Via2l0d2ViaW5zcGVjdG9yLmgiCi0jaW5jbHVkZSAid2Via2l0d2ViYmFj
a2ZvcndhcmRsaXN0LmgiCi0jaW5jbHVkZSAid2Via2l0d2ViaGlzdG9yeWl0ZW0uaCIKLQogI2lu
Y2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKICNpbmNsdWRlICJBYnN0cmFjdERhdGFiYXNlLmgiCiAj
aW5jbHVkZSAiQmFja0ZvcndhcmRMaXN0SW1wbC5oIgotI2luY2x1ZGUgIk1lbW9yeUNhY2hlLmgi
CisjaW5jbHVkZSAiQ2hyb21lLmgiCiAjaW5jbHVkZSAiQ2hyb21lQ2xpZW50R3RrLmgiCiAjaW5j
bHVkZSAiQ2xpcGJvYXJkVXRpbGl0aWVzR3RrLmgiCisjaW5jbHVkZSAiQ29udGV4dE1lbnUuaCIK
ICNpbmNsdWRlICJDb250ZXh0TWVudUNsaWVudEd0ay5oIgogI2luY2x1ZGUgIkNvbnRleHRNZW51
Q29udHJvbGxlci5oIgotI2luY2x1ZGUgIkNvbnRleHRNZW51LmgiCiAjaW5jbHVkZSAiQ3Vyc29y
LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJEb2N1bWVudExvYWRlci5oIgpA
QCAtNTYsMjkgKzQ1LDI5IEBACiAjaW5jbHVkZSAiRHJhZ0NsaWVudEd0ay5oIgogI2luY2x1ZGUg
IkRyYWdDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiRHJhZ0RhdGEuaCIKLSNpbmNsdWRlICJFZGl0
b3JDbGllbnRHdGsuaCIKICNpbmNsdWRlICJFZGl0b3IuaCIKKyNpbmNsdWRlICJFZGl0b3JDbGll
bnRHdGsuaCIKICNpbmNsdWRlICJFdmVudEhhbmRsZXIuaCIKICNpbmNsdWRlICJGbG9hdFF1YWQu
aCIKICNpbmNsdWRlICJGb2N1c0NvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRlci5o
IgogI2luY2x1ZGUgIkZyYW1lTG9hZGVyVHlwZXMuaCIKICNpbmNsdWRlICJGcmFtZVZpZXcuaCIK
LSNpbmNsdWRlIDxnbGliL2dpMThuLWxpYi5oPgotI2luY2x1ZGUgPEdPd25QdHIuaD4KLSNpbmNs
dWRlIDxHT3duUHRyR3RrLmg+CisjaW5jbHVkZSAiR093blB0ckd0ay5oIgogI2luY2x1ZGUgIkdy
YXBoaWNzQ29udGV4dC5oIgogI2luY2x1ZGUgIkd0a1ZlcnNpb25pbmcuaCIKKyNpbmNsdWRlICJI
VE1MTmFtZXMuaCIKICNpbmNsdWRlICJIaXRUZXN0UmVxdWVzdC5oIgogI2luY2x1ZGUgIkhpdFRl
c3RSZXN1bHQuaCIKICNpbmNsdWRlICJJY29uRGF0YWJhc2UuaCIKICNpbmNsdWRlICJJbnNwZWN0
b3JDbGllbnRHdGsuaCIKKyNpbmNsdWRlICJNZW1vcnlDYWNoZS5oIgogI2luY2x1ZGUgIk1vdXNl
RXZlbnRXaXRoSGl0VGVzdFJlc3VsdHMuaCIKICNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgog
I2luY2x1ZGUgIlBhZ2VDYWNoZS5oIgogI2luY2x1ZGUgIlBhc3RlYm9hcmQuaCIKLSNpbmNsdWRl
ICJQYXN0ZWJvYXJkSGVscGVyR3RrLmgiCiAjaW5jbHVkZSAiUGFzdGVib2FyZEhlbHBlci5oIgor
I2luY2x1ZGUgIlBhc3RlYm9hcmRIZWxwZXJHdGsuaCIKICNpbmNsdWRlICJQbGF0Zm9ybUtleWJv
YXJkRXZlbnQuaCIKICNpbmNsdWRlICJQbGF0Zm9ybVdoZWVsRXZlbnQuaCIKICNpbmNsdWRlICJQ
cm9ncmVzc1RyYWNrZXIuaCIKQEAgLTg3LDkgKzc2LDIxIEBACiAjaW5jbHVkZSAiU2NyaXB0VmFs
dWUuaCIKICNpbmNsdWRlICJTY3JvbGxiYXIuaCIKICNpbmNsdWRlICJ3ZWJraXQvV2ViS2l0RE9N
RG9jdW1lbnRQcml2YXRlLmgiCi0jaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgotCisjaW5j
bHVkZSAid2Via2l0ZG93bmxvYWQuaCIKKyNpbmNsdWRlICJ3ZWJraXRlbnVtdHlwZXMuaCIKKyNp
bmNsdWRlICJ3ZWJraXRnZW9sb2NhdGlvbnBvbGljeWRlY2lzaW9uLmgiCisjaW5jbHVkZSAid2Vi
a2l0bWFyc2hhbC5oIgorI2luY2x1ZGUgIndlYmtpdG5ldHdvcmtyZXF1ZXN0LmgiCisjaW5jbHVk
ZSAid2Via2l0bmV0d29ya3Jlc3BvbnNlLmgiCisjaW5jbHVkZSAid2Via2l0cHJpdmF0ZS5oIgor
I2luY2x1ZGUgIndlYmtpdHdlYmJhY2tmb3J3YXJkbGlzdC5oIgorI2luY2x1ZGUgIndlYmtpdHdl
Ymhpc3RvcnlpdGVtLmgiCisjaW5jbHVkZSAid2Via2l0d2ViaW5zcGVjdG9yLmgiCisjaW5jbHVk
ZSAid2Via2l0d2Vidmlld3ByaXZhdGUuaCIKICNpbmNsdWRlIDxnZGsvZ2Rra2V5c3ltcy5oPgor
I2luY2x1ZGUgPGdsaWIvZ2kxOG4tbGliLmg+CisjaW5jbHVkZSA8d3RmL2dvYmplY3QvR093blB0
ci5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KIAogLyoqCiAgKiBTRUNUSU9OOndl
YmtpdHdlYnZpZXcKQEAgLTUwNDEsMyArNTA0Miw1NCBAQCBHdGtNZW51KiB3ZWJraXRfd2ViX3Zp
ZXdfZ2V0X2NvbnRleHRfbWVudShXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3KQogICAgIHJldHVybiAw
OwogI2VuZGlmCiB9CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitXZWJDb3JlOjpQYWdlKiBjb3Jl
KFdlYktpdFdlYlZpZXcqIHdlYlZpZXcpCit7CisgICAgaWYgKCF3ZWJWaWV3KQorICAgICAgICBy
ZXR1cm4gMDsKKworICAgIFdlYktpdFdlYlZpZXdQcml2YXRlKiBwcml2ID0gd2ViVmlldy0+cHJp
djsKKyAgICByZXR1cm4gcHJpdiA/IHByaXYtPmNvcmVQYWdlIDogMDsKK30KKworV2ViS2l0V2Vi
Vmlldyoga2l0KFdlYkNvcmU6OlBhZ2UqIGNvcmVQYWdlKQoreworICAgIGlmICghY29yZVBhZ2Up
CisgICAgICAgIHJldHVybiAwOworCisgICAgQVNTRVJUKGNvcmVQYWdlLT5jaHJvbWUoKSk7Cisg
ICAgV2ViS2l0OjpDaHJvbWVDbGllbnQqIGNsaWVudCA9IHN0YXRpY19jYXN0PFdlYktpdDo6Q2hy
b21lQ2xpZW50Kj4oY29yZVBhZ2UtPmNocm9tZSgpLT5jbGllbnQoKSk7CisgICAgcmV0dXJuIGNs
aWVudCA/IGNsaWVudC0+d2ViVmlldygpIDogMDsKK30KKwordm9pZCB3ZWJWaWV3RW50ZXJGdWxs
c2NyZWVuKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcsIE5vZGUqIG5vZGUpCit7CisgICAgaWYgKCFu
b2RlLT5oYXNUYWdOYW1lKEhUTUxOYW1lczo6dmlkZW9UYWcpKQorICAgICAgICByZXR1cm47CisK
KyNpZiBFTkFCTEUoVklERU8pCisgICAgSFRNTE1lZGlhRWxlbWVudCogdmlkZW9FbGVtZW50ID0g
c3RhdGljX2Nhc3Q8SFRNTE1lZGlhRWxlbWVudCo+KG5vZGUpOworICAgIFdlYktpdFdlYlZpZXdQ
cml2YXRlKiBwcml2ID0gd2ViVmlldy0+cHJpdjsKKworICAgIC8vIEZpcnN0IGV4aXQgRnVsbHNj
cmVlbiBmb3IgdGhlIG9sZCBtZWRpYUVsZW1lbnQuCisgICAgaWYgKHByaXYtPmZ1bGxzY3JlZW5W
aWRlb0NvbnRyb2xsZXIpCisgICAgICAgIHByaXYtPmZ1bGxzY3JlZW5WaWRlb0NvbnRyb2xsZXIt
PmV4aXRGdWxsc2NyZWVuKCk7CisKKyAgICBwcml2LT5mdWxsc2NyZWVuVmlkZW9Db250cm9sbGVy
ID0gbmV3IEZ1bGxzY3JlZW5WaWRlb0NvbnRyb2xsZXI7CisgICAgcHJpdi0+ZnVsbHNjcmVlblZp
ZGVvQ29udHJvbGxlci0+c2V0TWVkaWFFbGVtZW50KHZpZGVvRWxlbWVudCk7CisgICAgcHJpdi0+
ZnVsbHNjcmVlblZpZGVvQ29udHJvbGxlci0+ZW50ZXJGdWxsc2NyZWVuKCk7CisjZW5kaWYKK30K
Kwordm9pZCB3ZWJWaWV3RXhpdEZ1bGxzY3JlZW4oV2ViS2l0V2ViVmlldyogd2ViVmlldykKK3sK
KyNpZiBFTkFCTEUoVklERU8pCisgICAgV2ViS2l0V2ViVmlld1ByaXZhdGUqIHByaXYgPSB3ZWJW
aWV3LT5wcml2OworICAgIGlmIChwcml2LT5mdWxsc2NyZWVuVmlkZW9Db250cm9sbGVyKQorICAg
ICAgICBwcml2LT5mdWxsc2NyZWVuVmlkZW9Db250cm9sbGVyLT5leGl0RnVsbHNjcmVlbigpOwor
I2VuZGlmCit9CisKK30KZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnZp
ZXdwcml2YXRlLmggYi9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3cHJpdmF0ZS5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY2NjY1YjIKLS0tIC9kZXYvbnVsbAor
KysgYi9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3cHJpdmF0ZS5oCkBAIC0wLDAgKzEs
MTM1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA3LCAyMDA4LCAyMDA5IEhvbGdlciBIYW5z
IFBldGVyIEZyZXl0aGVyCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggSmFuIE1pY2hhZWwgQy4gQWxv
bnpvCisgKiBDb3B5cmlnaHQgKEMpIDIwMDgsIDIwMTAgQ29sbGFib3JhIEx0ZC4KKyAqIENvcHly
aWdodCAoQykgMjAxMCBJZ2FsaWEgUy5MLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNv
ZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRl
ciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNl
IGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAq
IHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIg
dmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUg
dGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0
aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3Ig
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFy
eSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNo
b3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZ
SU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp
b24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1B
IDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaWZuZGVmIHdlYmtpdHdlYnZpZXdwcml2YXRlX2gK
KyNkZWZpbmUgd2Via2l0d2Vidmlld3ByaXZhdGVfaAorCisjaW5jbHVkZSAiRGF0YU9iamVjdEd0
ay5oIgorI2luY2x1ZGUgIkZ1bGxzY3JlZW5WaWRlb0NvbnRyb2xsZXIuaCIKKyNpbmNsdWRlICJH
T3duUHRyLmgiCisjaW5jbHVkZSAiUmVzb3VyY2VIYW5kbGUuaCIKKyNpbmNsdWRlIDx3ZWJraXQv
d2Via2l0d2Vidmlldy5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworV2ViQ29yZTo6UGFnZSog
Y29yZShXZWJLaXRXZWJWaWV3Kik7CitXZWJLaXRXZWJWaWV3KiBraXQoV2ViQ29yZTo6UGFnZSop
OworCisKK3R5cGVkZWYgc3RydWN0IERyb3BwaW5nQ29udGV4dF8geworICAgIFdlYktpdFdlYlZp
ZXcqIHdlYlZpZXc7CisgICAgR2RrRHJhZ0NvbnRleHQqIGdka0NvbnRleHQ7CisgICAgUmVmUHRy
PFdlYkNvcmU6OkRhdGFPYmplY3RHdGs+IGRhdGFPYmplY3Q7CisgICAgV2ViQ29yZTo6SW50UG9p
bnQgbGFzdE1vdGlvblBvc2l0aW9uOworICAgIGludCBwZW5kaW5nRGF0YVJlcXVlc3RzOworICAg
IGJvb2wgZHJvcEhhcHBlbmVkOworfSBEcm9wcGluZ0NvbnRleHQ7CisKK30KKworZXh0ZXJuICJD
IiB7CisKKyNkZWZpbmUgV0VCS0lUX1dFQl9WSUVXX0dFVF9QUklWQVRFKG9iaikgICAgKEdfVFlQ
RV9JTlNUQU5DRV9HRVRfUFJJVkFURSgob2JqKSwgV0VCS0lUX1RZUEVfV0VCX1ZJRVcsIFdlYktp
dFdlYlZpZXdQcml2YXRlKSkKK3R5cGVkZWYgc3RydWN0IF9XZWJLaXRXZWJWaWV3UHJpdmF0ZSBX
ZWJLaXRXZWJWaWV3UHJpdmF0ZTsKK3N0cnVjdCBfV2ViS2l0V2ViVmlld1ByaXZhdGUgeworICAg
IFdlYkNvcmU6OlBhZ2UqIGNvcmVQYWdlOworICAgIFBsYXRmb3JtUmVmUHRyPFdlYktpdFdlYlNl
dHRpbmdzPiB3ZWJTZXR0aW5nczsKKyAgICBQbGF0Zm9ybVJlZlB0cjxXZWJLaXRXZWJJbnNwZWN0
b3I+IHdlYkluc3BlY3RvcjsKKyAgICBQbGF0Zm9ybVJlZlB0cjxXZWJLaXRXZWJXaW5kb3dGZWF0
dXJlcz4gd2ViV2luZG93RmVhdHVyZXM7CisKKyAgICBXZWJLaXRXZWJGcmFtZSogbWFpbkZyYW1l
OworICAgIFBsYXRmb3JtUmVmUHRyPFdlYktpdFdlYkJhY2tGb3J3YXJkTGlzdD4gYmFja0Zvcndh
cmRMaXN0OworCisgICAgUGxhdGZvcm1SZWZQdHI8R3RrTWVudT4gY3VycmVudE1lbnU7CisgICAg
Z2ludCBsYXN0UG9wdXBYUG9zaXRpb247CisgICAgZ2ludCBsYXN0UG9wdXBZUG9zaXRpb247CisK
KyAgICBIYXNoU2V0PEd0a1dpZGdldCo+IGNoaWxkcmVuOworICAgIGJvb2wgZWRpdGFibGU7Cisg
ICAgUGxhdGZvcm1SZWZQdHI8R3RrSU1Db250ZXh0PiBpbUNvbnRleHQ7CisKKyAgICBnYm9vbGVh
biB0cmFuc3BhcmVudDsKKworICAgIFBsYXRmb3JtUmVmUHRyPEd0a0FkanVzdG1lbnQ+IGhvcml6
b250YWxBZGp1c3RtZW50OworICAgIFBsYXRmb3JtUmVmUHRyPEd0a0FkanVzdG1lbnQ+IHZlcnRp
Y2FsQWRqdXN0bWVudDsKKworI2lmbmRlZiBHVEtfQVBJX1ZFUlNJT05fMgorICAgIC8vIEd0a1Nj
cm9sbGFibGVQb2xpY3kgbmVlZHMgdG8gYmUgY2hlY2tlZCB3aGVuCisgICAgLy8gZHJpdmluZyB0
aGUgc2Nyb2xsYWJsZSBhZGp1c3RtZW50IHZhbHVlcworICAgIEd0a1Njcm9sbGFibGVQb2xpY3kg
aG9yaXpvbnRhbFNjcm9sbGluZ1BvbGljeTsKKyAgICBHdGtTY3JvbGxhYmxlUG9saWN5IHZlcnRp
Y2FsU2Nyb2xsaW5nUG9saWN5OworI2VuZGlmCisKKyAgICBnYm9vbGVhbiB6b29tRnVsbENvbnRl
bnQ7CisgICAgV2ViS2l0TG9hZFN0YXR1cyBsb2FkU3RhdHVzOworICAgIENTdHJpbmcgZW5jb2Rp
bmc7CisgICAgQ1N0cmluZyBjdXN0b21FbmNvZGluZzsKKworICAgIENTdHJpbmcgaWNvblVSSTsK
KworICAgIGdib29sZWFuIGRpc3Bvc2luZzsKKyAgICBnYm9vbGVhbiB1c2VQcmltYXJ5Rm9yUGFz
dGU7CisKKyNpZiBFTkFCTEUoVklERU8pCisgICAgRnVsbHNjcmVlblZpZGVvQ29udHJvbGxlciog
ZnVsbHNjcmVlblZpZGVvQ29udHJvbGxlcjsKKyNlbmRpZgorCisgICAgLy8gVGhlc2UgYXJlIGhv
c3RlZCBoZXJlIGJlY2F1c2UgdGhlIERhdGFTb3VyY2Ugb2JqZWN0IGlzCisgICAgLy8gY3JlYXRl
ZCB0b28gbGF0ZSBpbiB0aGUgZnJhbWUgbG9hZGluZyBwcm9jZXNzLgorICAgIFBsYXRmb3JtUmVm
UHRyPFdlYktpdFdlYlJlc291cmNlPiBtYWluUmVzb3VyY2U7CisgICAgQ1N0cmluZyBtYWluUmVz
b3VyY2VJZGVudGlmaWVyOworICAgIFBsYXRmb3JtUmVmUHRyPEdIYXNoVGFibGU+IHN1YlJlc291
cmNlczsKKyAgICBDU3RyaW5nIHRvb2x0aXBUZXh0OworICAgIFdlYkNvcmU6OkludFJlY3QgdG9v
bHRpcEFyZWE7CisKKyAgICBpbnQgY3VycmVudENsaWNrQ291bnQ7CisgICAgV2ViQ29yZTo6SW50
UG9pbnQgcHJldmlvdXNDbGlja1BvaW50OworICAgIGd1aW50IHByZXZpb3VzQ2xpY2tCdXR0b247
CisgICAgZ3VpbnQzMiBwcmV2aW91c0NsaWNrVGltZTsKKyAgICBIYXNoTWFwPEdka0RyYWdDb250
ZXh0KiwgUmVmUHRyPFdlYkNvcmU6OkRhdGFPYmplY3RHdGs+ID4gZHJhZ2dpbmdEYXRhT2JqZWN0
czsKKyAgICBIYXNoTWFwPEdka0RyYWdDb250ZXh0KiwgV2ViS2l0OjpEcm9wcGluZ0NvbnRleHQq
PiBkcm9wcGluZ0NvbnRleHRzOworfTsKKwordm9pZCB3ZWJraXRfd2ViX3ZpZXdfbm90aWZ5X3Jl
YWR5KFdlYktpdFdlYlZpZXcqKTsKKwordm9pZCB3ZWJraXRfd2ViX3ZpZXdfcmVxdWVzdF9kb3du
bG9hZChXZWJLaXRXZWJWaWV3KiwgV2ViS2l0TmV0d29ya1JlcXVlc3QqLCBjb25zdCBXZWJDb3Jl
OjpSZXNvdXJjZVJlc3BvbnNlJiA9IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UoKSwgV2ViQ29y
ZTo6UmVzb3VyY2VIYW5kbGUqID0gMCk7CisKK3ZvaWQgd2Via2l0X3dlYl92aWV3X2FkZF9yZXNv
dXJjZShXZWJLaXRXZWJWaWV3KiwgY29uc3QgY2hhciosIFdlYktpdFdlYlJlc291cmNlKik7Cit2
b2lkIHdlYmtpdF93ZWJfdmlld19hZGRfbWFpbl9yZXNvdXJjZShXZWJLaXRXZWJWaWV3KiwgY29u
c3QgY2hhciosIFdlYktpdFdlYlJlc291cmNlKik7Cit2b2lkIHdlYmtpdF93ZWJfdmlld19yZW1v
dmVfcmVzb3VyY2UoV2ViS2l0V2ViVmlldyosIGNvbnN0IGNoYXIqKTsKK1dlYktpdFdlYlJlc291
cmNlKiB3ZWJraXRfd2ViX3ZpZXdfZ2V0X3Jlc291cmNlKFdlYktpdFdlYlZpZXcqLCBjaGFyKik7
CitXZWJLaXRXZWJSZXNvdXJjZSogd2Via2l0X3dlYl92aWV3X2dldF9tYWluX3Jlc291cmNlKFdl
YktpdFdlYlZpZXcqKTsKK3ZvaWQgd2Via2l0X3dlYl92aWV3X2NsZWFyX3Jlc291cmNlcyhXZWJL
aXRXZWJWaWV3Kik7CitHTGlzdCogd2Via2l0X3dlYl92aWV3X2dldF9zdWJyZXNvdXJjZXMoV2Vi
S2l0V2ViVmlldyopOworCit2b2lkIHdlYmtpdF93ZWJfdmlld19zZXRfdG9vbHRpcF90ZXh0KFdl
YktpdFdlYlZpZXcqLCBjb25zdCBjaGFyKik7CitHdGtNZW51KiB3ZWJraXRfd2ViX3ZpZXdfZ2V0
X2NvbnRleHRfbWVudShXZWJLaXRXZWJWaWV3Kik7CisKK1dFQktJVF9BUEkgZ2NoYXIqIHdlYmtp
dF93ZWJfdmlld19nZXRfc2VsZWN0ZWRfdGV4dChXZWJLaXRXZWJWaWV3Kik7Citib29sIHdlYmtp
dF93ZWJfdmlld191c2VfcHJpbWFyeV9mb3JfcGFzdGUoV2ViS2l0V2ViVmlldyopOworCit2b2lk
IHdlYlZpZXdFbnRlckZ1bGxzY3JlZW4oV2ViS2l0V2ViVmlldyogd2ViVmlldywgV2ViQ29yZTo6
Tm9kZSopOwordm9pZCB3ZWJWaWV3RXhpdEZ1bGxzY3JlZW4oV2ViS2l0V2ViVmlldyogd2ViVmll
dyk7CisKK30KKworI2VuZGlmCi0tIAoxLjcuMi4zCgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>76091</attachid>
            <date>2010-12-09 10:39:45 -0800</date>
            <delta_ts>2010-12-10 07:21:37 -0800</delta_ts>
            <desc>split WebKitWebFrame</desc>
            <filename>0001-split-WebKitWebFrame-stuff-from-webkitprivate.h.patch</filename>
            <type>text/plain</type>
            <size>13190</size>
            <attacher name="Gustavo Noronha (kov)">gustavo</attacher>
            
              <data encoding="base64">RnJvbSBjYWFhYTA4ZDczNmIyMGQ2NzdhOTFiNzA2NWVmZGQyODgyNjA1ODQzIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBHdXN0YXZvIE5vcm9uaGEgU2lsdmEgPGduc0Bnbm9tZS5vcmc+
CkRhdGU6IFRodSwgOSBEZWMgMjAxMCAxOTozODo1MiArMDEwMApTdWJqZWN0OiBbUEFUQ0hdIHNw
bGl0IFdlYktpdFdlYkZyYW1lIHN0dWZmIGZyb20gd2Via2l0cHJpdmF0ZS5oCgotLS0KIFdlYktp
dC9ndGsvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAyNiArKysr
KysrKysKIFdlYktpdC9ndGsvR05VbWFrZWZpbGUuYW0gICAgICAgICAgICAgICAgICAgICAgICAg
IHwgICAgMiArCiBXZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5jcHAg
ICAgICB8ICAgIDEgKwogV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9EcmFnQ2xpZW50R3RrLmNw
cCAgICAgICAgfCAgICAxICsKIC4uLi9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBv
cnRHdGsuY3BwICAgIHwgICAgMSArCiBXZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9h
ZGVyQ2xpZW50R3RrLmNwcCB8ICAgIDEgKwogV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0cHJpdmF0
ZS5jcHAgICAgICAgICAgICAgICAgfCAgIDI1IC0tLS0tLS0tLQogV2ViS2l0L2d0ay93ZWJraXQv
d2Via2l0cHJpdmF0ZS5oICAgICAgICAgICAgICAgICAgfCAgIDI1IC0tLS0tLS0tLQogV2ViS2l0
L2d0ay93ZWJraXQvd2Via2l0d2ViZGF0YXNvdXJjZS5jcHAgICAgICAgICAgfCAgICAxICsKIFdl
YktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYmZyYW1lLmNwcCAgICAgICAgICAgICAgIHwgICAzMCAr
KysrKysrKysrCiBXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJmcmFtZXByaXZhdGUuaCAgICAg
ICAgICB8ICAgNTcgKysrKysrKysrKysrKysrKysrKysKIFdlYktpdC9ndGsvd2Via2l0L3dlYmtp
dHdlYnBvbGljeWRlY2lzaW9uLmNwcCAgICAgIHwgICAgMSArCiBXZWJLaXQvZ3RrL3dlYmtpdC93
ZWJraXR3ZWJ2aWV3LmNwcCAgICAgICAgICAgICAgICB8ICAgIDEgKwogMTMgZmlsZXMgY2hhbmdl
ZCwgMTIyIGluc2VydGlvbnMoKyksIDUwIGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0
IFdlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYmZyYW1lcHJpdmF0ZS5oCgpkaWZmIC0tZ2l0IGEv
V2ViS2l0L2d0ay9DaGFuZ2VMb2cgYi9XZWJLaXQvZ3RrL0NoYW5nZUxvZwppbmRleCA1YWE1ZThj
Li45NTIwOTBlIDEwMDY0NAotLS0gYS9XZWJLaXQvZ3RrL0NoYW5nZUxvZworKysgYi9XZWJLaXQv
Z3RrL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDEwLTEyLTA5ICBHdXN0YXZvIE5vcm9u
aGEgU2lsdmEgIDxndXN0YXZvLm5vcm9uaGFAY29sbGFib3JhLmNvLnVrPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtHVEtdIFNwbGl0IHdlYmtpdHBy
aXZhdGUue2NwcCxofSBpbiBtb3JlIG1hbmFnZWFibGUgY2h1bmtzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MDY5OAorCisgICAgICAgIFNwbGl0IHBy
aXZhdGUgYml0cyBvZiBXZWJLaXRXZWJGcmFtZSB0byBpdHMgb3duIHByaXZhdGUgaGVhZGVyLCBh
bmQKKyAgICAgICAgdG8gaXRzIGltcGxlbWVudGF0aW9uIGZpbGUuCisKKyAgICAgICAgKiBHTlVt
YWtlZmlsZS5hbToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuY3Bw
OgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0RyYWdDbGllbnRHdGsuY3BwOgorICAgICAgICAq
IFdlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5jcHA6CisgICAgICAgICog
V2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuY3BwOgorICAgICAgICAqIHdlYmtp
dC93ZWJraXRwcml2YXRlLmNwcDoKKyAgICAgICAgKiB3ZWJraXQvd2Via2l0cHJpdmF0ZS5oOgor
ICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJkYXRhc291cmNlLmNwcDoKKyAgICAgICAgKiB3ZWJr
aXQvd2Via2l0d2ViZnJhbWUuY3BwOgorICAgICAgICAoV2ViS2l0OjpnZXRWaWV3RnJvbUZyYW1l
KToKKyAgICAgICAgKFdlYktpdDo6Y29yZSk6CisgICAgICAgIChXZWJLaXQ6OmtpdCk6CisgICAg
ICAgICogd2Via2l0L3dlYmtpdHdlYmZyYW1lcHJpdmF0ZS5oOiBBZGRlZC4KKyAgICAgICAgKiB3
ZWJraXQvd2Via2l0d2VicG9saWN5ZGVjaXNpb24uY3BwOgorICAgICAgICAqIHdlYmtpdC93ZWJr
aXR3ZWJ2aWV3LmNwcDoKKwogMjAxMC0xMi0wOCAgR3VzdGF2byBOb3JvbmhhIFNpbHZhICA8Z3Vz
dGF2by5ub3JvbmhhQGNvbGxhYm9yYS5jby51az4KIAogICAgICAgICBCdWlsZCBmaXguIFRha2Ug
d2ViVmlld3tFbnRlcixFeGl0fUZ1bGxzY3JlZW4gYmFjayBvdXQgb2YgdGhlCmRpZmYgLS1naXQg
YS9XZWJLaXQvZ3RrL0dOVW1ha2VmaWxlLmFtIGIvV2ViS2l0L2d0ay9HTlVtYWtlZmlsZS5hbQpp
bmRleCBhODQ2ZjdmLi5mMmU0MGMxIDEwMDY0NAotLS0gYS9XZWJLaXQvZ3RrL0dOVW1ha2VmaWxl
LmFtCisrKyBiL1dlYktpdC9ndGsvR05VbWFrZWZpbGUuYW0KQEAgLTE4NSw2ICsxODUsNyBAQCB3
ZWJraXRndGtfc291cmNlcyArPSBcCiAJV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2ViYmFja2Zv
cndhcmRsaXN0LmNwcCBcCiAJV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2ViZGF0YXNvdXJjZS5j
cHAgXAogCVdlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYmZyYW1lLmNwcCBcCisJV2ViS2l0L2d0
ay93ZWJraXQvd2Via2l0d2ViZnJhbWVwcml2YXRlLmggXAogCVdlYktpdC9ndGsvd2Via2l0L3dl
YmtpdHdlYmhpc3RvcnlpdGVtLmNwcCBcCiAJV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2ViaW5z
cGVjdG9yLmNwcCBcCiAJV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2VibmF2aWdhdGlvbmFjdGlv
bi5jcHAgXApAQCAtMTk1LDYgKzE5Niw3IEBAIHdlYmtpdGd0a19zb3VyY2VzICs9IFwKIAlXZWJL
aXQvZ3RrL3dlYmtpdC93ZWJraXRzZWN1cml0eW9yaWdpbi5jcHAgXAogCVdlYktpdC9ndGsvd2Vi
a2l0L3dlYmtpdHdlYnNldHRpbmdzLmNwcCBcCiAJV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vi
dmlldy5jcHAgXAorCVdlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnZpZXdwcml2YXRlLmggXAog
CVdlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYndpbmRvd2ZlYXR1cmVzLmNwcCBcCiAJV2ViS2l0
L2d0ay93ZWJraXQvd2Via2l0d29ya2Vycy5jcHAKIApkaWZmIC0tZ2l0IGEvV2ViS2l0L2d0ay9X
ZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuY3BwIGIvV2ViS2l0L2d0ay9XZWJDb3JlU3Vw
cG9ydC9DaHJvbWVDbGllbnRHdGsuY3BwCmluZGV4IDYwYzc4ODAuLjNkZDMyMTUgMTAwNjQ0Ci0t
LSBhL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNwcAorKysgYi9X
ZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5jcHAKQEAgLTQ5LDYgKzQ5
LDcgQEAKICNpbmNsdWRlICJ3ZWJraXRnZW9sb2NhdGlvbnBvbGljeWRlY2lzaW9uLmgiCiAjaW5j
bHVkZSAid2Via2l0bmV0d29ya3JlcXVlc3QuaCIKICNpbmNsdWRlICJ3ZWJraXRwcml2YXRlLmgi
CisjaW5jbHVkZSAid2Via2l0d2ViZnJhbWVwcml2YXRlLmgiCiAjaW5jbHVkZSAid2Via2l0d2Vi
dmlldy5oIgogI2luY2x1ZGUgIndlYmtpdHdlYnZpZXdwcml2YXRlLmgiCiAjaW5jbHVkZSA8Z2xp
Yi5oPgpkaWZmIC0tZ2l0IGEvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9EcmFnQ2xpZW50R3Rr
LmNwcCBiL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRHJhZ0NsaWVudEd0ay5jcHAKaW5kZXgg
M2YwNzEwZC4uNWYzOTFlYyAxMDA2NDQKLS0tIGEvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9E
cmFnQ2xpZW50R3RrLmNwcAorKysgYi9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0RyYWdDbGll
bnRHdGsuY3BwCkBAIC0zMyw2ICszMyw3IEBACiAjaW5jbHVkZSAiUGFzdGVib2FyZEhlbHBlci5o
IgogI2luY2x1ZGUgIlJlbmRlck9iamVjdC5oIgogI2luY2x1ZGUgIndlYmtpdHByaXZhdGUuaCIK
KyNpbmNsdWRlICJ3ZWJraXR3ZWJmcmFtZXByaXZhdGUuaCIKICNpbmNsdWRlICJ3ZWJraXR3ZWJ2
aWV3cHJpdmF0ZS5oIgogI2luY2x1ZGUgIndlYmtpdHdlYnZpZXcuaCIKICNpbmNsdWRlIDxnZGsv
Z2RrLmg+CmRpZmYgLS1naXQgYS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJU
cmVlU3VwcG9ydEd0ay5jcHAgYi9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJU
cmVlU3VwcG9ydEd0ay5jcHAKaW5kZXggYjQ1NWMxYS4uNGU3YTczNiAxMDA2NDQKLS0tIGEvV2Vi
S2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuY3BwCisrKyBi
L1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmNwcApA
QCAtNDcsNiArNDcsNyBAQAogI2luY2x1ZGUgIlNWR1NNSUxFbGVtZW50LmgiCiAjZW5kaWYKICNp
bmNsdWRlICJ3ZWJraXRwcml2YXRlLmgiCisjaW5jbHVkZSAid2Via2l0d2ViZnJhbWVwcml2YXRl
LmgiCiAjaW5jbHVkZSAid2Via2l0d2Vidmlld3ByaXZhdGUuaCIKICNpbmNsdWRlICJ3ZWJraXR3
ZWJ2aWV3LmgiCiAjaW5jbHVkZSAid2Via2l0d2ViZnJhbWUuaCIKZGlmZiAtLWdpdCBhL1dlYktp
dC9ndGsvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuY3BwIGIvV2ViS2l0L2d0
ay9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5jcHAKaW5kZXggNjgzNDk0OS4u
ODcwYTkwMiAxMDA2NDQKLS0tIGEvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRl
ckNsaWVudEd0ay5jcHAKKysrIGIvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRl
ckNsaWVudEd0ay5jcHAKQEAgLTYzLDYgKzYzLDcgQEAKICNpbmNsdWRlICJ3ZWJraXRuZXR3b3Jr
cmVzcG9uc2UuaCIKICNpbmNsdWRlICJ3ZWJraXRwcml2YXRlLmgiCiAjaW5jbHVkZSAid2Via2l0
d2ViZnJhbWUuaCIKKyNpbmNsdWRlICJ3ZWJraXR3ZWJmcmFtZXByaXZhdGUuaCIKICNpbmNsdWRl
ICJ3ZWJraXR3ZWJuYXZpZ2F0aW9uYWN0aW9uLmgiCiAjaW5jbHVkZSAid2Via2l0d2VicG9saWN5
ZGVjaXNpb24uaCIKICNpbmNsdWRlICJ3ZWJraXR3ZWJ2aWV3LmgiCmRpZmYgLS1naXQgYS9XZWJL
aXQvZ3RrL3dlYmtpdC93ZWJraXRwcml2YXRlLmNwcCBiL1dlYktpdC9ndGsvd2Via2l0L3dlYmtp
dHByaXZhdGUuY3BwCmluZGV4IGIwY2Y3NDQuLjQwYTliMjUgMTAwNjQ0Ci0tLSBhL1dlYktpdC9n
dGsvd2Via2l0L3dlYmtpdHByaXZhdGUuY3BwCisrKyBiL1dlYktpdC9ndGsvd2Via2l0L3dlYmtp
dHByaXZhdGUuY3BwCkBAIC02NSwzMSArNjUsNiBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsK
IAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLVdlYktpdFdlYlZpZXcqIGdldFZpZXdGcm9tRnJhbWUo
V2ViS2l0V2ViRnJhbWUqIGZyYW1lKQotewotICAgIFdlYktpdFdlYkZyYW1lUHJpdmF0ZSogcHJp
diA9IGZyYW1lLT5wcml2OwotICAgIHJldHVybiBwcml2LT53ZWJWaWV3OwotfQotCi1XZWJDb3Jl
OjpGcmFtZSogY29yZShXZWJLaXRXZWJGcmFtZSogZnJhbWUpCi17Ci0gICAgaWYgKCFmcmFtZSkK
LSAgICAgICAgcmV0dXJuIDA7Ci0KLSAgICBXZWJLaXRXZWJGcmFtZVByaXZhdGUqIHByaXYgPSBm
cmFtZS0+cHJpdjsKLSAgICByZXR1cm4gcHJpdiA/IHByaXYtPmNvcmVGcmFtZSA6IDA7Ci19Ci0K
LVdlYktpdFdlYkZyYW1lKiBraXQoV2ViQ29yZTo6RnJhbWUqIGNvcmVGcmFtZSkKLXsKLSAgICBp
ZiAoIWNvcmVGcmFtZSkKLSAgICAgICAgcmV0dXJuIDA7Ci0KLSAgICBBU1NFUlQoY29yZUZyYW1l
LT5sb2FkZXIoKSk7Ci0gICAgV2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudCogY2xpZW50ID0gc3Rh
dGljX2Nhc3Q8V2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudCo+KGNvcmVGcmFtZS0+bG9hZGVyKCkt
PmNsaWVudCgpKTsKLSAgICByZXR1cm4gY2xpZW50ID8gY2xpZW50LT53ZWJGcmFtZSgpIDogMDsK
LX0KLQogV2ViS2l0V2ViTmF2aWdhdGlvblJlYXNvbiBraXQoV2ViQ29yZTo6TmF2aWdhdGlvblR5
cGUgdHlwZSkKIHsKICAgICByZXR1cm4gKFdlYktpdFdlYk5hdmlnYXRpb25SZWFzb24pdHlwZTsK
ZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHByaXZhdGUuaCBiL1dlYktpdC9n
dGsvd2Via2l0L3dlYmtpdHByaXZhdGUuaAppbmRleCA0ODg5YTE1Li42NzdmOGM5IDEwMDY0NAot
LS0gYS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRwcml2YXRlLmgKKysrIGIvV2ViS2l0L2d0ay93
ZWJraXQvd2Via2l0cHJpdmF0ZS5oCkBAIC04MSwxMSArODEsNiBAQCBuYW1lc3BhY2UgV2ViS2l0
IHsKICAgICBjbGFzcyBEb2N1bWVudExvYWRlcjsKICAgICBjbGFzcyBQYXN0ZWJvYXJkSGVscGVy
R3RrOwogCi0gICAgV2ViS2l0V2ViVmlldyogZ2V0Vmlld0Zyb21GcmFtZShXZWJLaXRXZWJGcmFt
ZSopOwotCi0gICAgV2ViQ29yZTo6RnJhbWUqIGNvcmUoV2ViS2l0V2ViRnJhbWUqKTsKLSAgICBX
ZWJLaXRXZWJGcmFtZSoga2l0KFdlYkNvcmU6OkZyYW1lKik7Ci0KICAgICBXZWJDb3JlOjpIaXN0
b3J5SXRlbSogY29yZShXZWJLaXRXZWJIaXN0b3J5SXRlbSopOwogICAgIFdlYktpdFdlYkhpc3Rv
cnlJdGVtKiBraXQoUGFzc1JlZlB0cjxXZWJDb3JlOjpIaXN0b3J5SXRlbT4pOwogCkBAIC0xMTgs
MTkgKzExMyw2IEBAIGV4dGVybiAiQyIgewogI2RlZmluZSBXRUJLSVRfUEFSQU1fUkVBREFCTEUg
KChHUGFyYW1GbGFncykoR19QQVJBTV9SRUFEQUJMRXxHX1BBUkFNX1NUQVRJQ19OQU1FfEdfUEFS
QU1fU1RBVElDX05JQ0t8R19QQVJBTV9TVEFUSUNfQkxVUkIpKQogI2RlZmluZSBXRUJLSVRfUEFS
QU1fUkVBRFdSSVRFICgoR1BhcmFtRmxhZ3MpKEdfUEFSQU1fUkVBRFdSSVRFfEdfUEFSQU1fU1RB
VElDX05BTUV8R19QQVJBTV9TVEFUSUNfTklDS3xHX1BBUkFNX1NUQVRJQ19CTFVSQikpCiAKLSAg
ICAjZGVmaW5lIFdFQktJVF9XRUJfRlJBTUVfR0VUX1BSSVZBVEUob2JqKSAgICAoR19UWVBFX0lO
U1RBTkNFX0dFVF9QUklWQVRFKChvYmopLCBXRUJLSVRfVFlQRV9XRUJfRlJBTUUsIFdlYktpdFdl
YkZyYW1lUHJpdmF0ZSkpCi0gICAgdHlwZWRlZiBzdHJ1Y3QgX1dlYktpdFdlYkZyYW1lUHJpdmF0
ZSBXZWJLaXRXZWJGcmFtZVByaXZhdGU7Ci0gICAgc3RydWN0IF9XZWJLaXRXZWJGcmFtZVByaXZh
dGUgewotICAgICAgICBXZWJDb3JlOjpGcmFtZSogY29yZUZyYW1lOwotICAgICAgICBXZWJLaXRX
ZWJWaWV3KiB3ZWJWaWV3OwotCi0gICAgICAgIGdjaGFyKiBuYW1lOwotICAgICAgICBnY2hhciog
dGl0bGU7Ci0gICAgICAgIGdjaGFyKiB1cmk7Ci0gICAgICAgIFdlYktpdExvYWRTdGF0dXMgbG9h
ZFN0YXR1czsKLSAgICAgICAgV2ViS2l0U2VjdXJpdHlPcmlnaW4qIG9yaWdpbjsKLSAgICB9Owot
CiAjZGVmaW5lIFdFQktJVF9TRUNVUklUWV9PUklHSU5fR0VUX1BSSVZBVEUob2JqKSAoR19UWVBF
X0lOU1RBTkNFX0dFVF9QUklWQVRFKChvYmopLCBXRUJLSVRfVFlQRV9TRUNVUklUWV9PUklHSU4s
IFdlYktpdFNlY3VyaXR5T3JpZ2luUHJpdmF0ZSkpCiAgICAgc3RydWN0IF9XZWJLaXRTZWN1cml0
eU9yaWdpblByaXZhdGUgewogICAgICAgICBSZWZQdHI8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+
IGNvcmVPcmlnaW47CkBAIC0xNDQsOSArMTI2LDYgQEAgZXh0ZXJuICJDIiB7CiAgICAgV1RGOjpT
dHJpbmcKICAgICB3ZWJraXRVc2VyQWdlbnQoKTsKIAotICAgIHZvaWQKLSAgICB3ZWJraXRfd2Vi
X2ZyYW1lX2NvcmVfZnJhbWVfZ29uZShXZWJLaXRXZWJGcmFtZSopOwotCiAgICAgLy8gV2ViS2l0
V2ViSGlzdG9yeUl0ZW0gcHJpdmF0ZQogICAgIFdlYktpdFdlYkhpc3RvcnlJdGVtKgogICAgIHdl
YmtpdF93ZWJfaGlzdG9yeV9pdGVtX25ld193aXRoX2NvcmVfaXRlbShQYXNzUmVmUHRyPFdlYkNv
cmU6Okhpc3RvcnlJdGVtPiBoaXN0b3J5SXRlbSk7CkBAIC0yMjIsMTAgKzIwMSw2IEBAIGV4dGVy
biAiQyIgewogICAgIFdFQktJVF9BUEkgU291cE1lc3NhZ2UqCiAgICAgd2Via2l0X25ldHdvcmtf
cmVxdWVzdF9nZXRfbWVzc2FnZShXZWJLaXROZXR3b3JrUmVxdWVzdCogcmVxdWVzdCk7CiAKLSAg
ICAvLyBGSVhNRTogbW92ZSB0aGlzIGZ1bmN0aW9uYWxpdHkgaW50byBhICdXZWJLaXRXZWJEYXRh
U291cmNlJyBvbmNlIGltcGxlbWVudGVkCi0gICAgV0VCS0lUX0FQSSBnY2hhcioKLSAgICB3ZWJr
aXRfd2ViX2ZyYW1lX2dldF9yZXNwb25zZV9taW1lX3R5cGUoV2ViS2l0V2ViRnJhbWUqIGZyYW1l
KTsKLQogICAgIC8vIEZJWE1FOiBNb3ZlIHRoZXNlIHRvIHdlYmtpdHdlYmZyYW1lLmggb25jZSB0
aGVpciBBUEkgaGFzIGJlZW4gZGlzY3Vzc2VkLgogCiAgICAgV0VCS0lUX0FQSSB2b2lkCmRpZmYg
LS1naXQgYS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJkYXRhc291cmNlLmNwcCBiL1dlYktp
dC9ndGsvd2Via2l0L3dlYmtpdHdlYmRhdGFzb3VyY2UuY3BwCmluZGV4IGRlODY3MWMuLjE1MDQx
NWIgMTAwNjQ0Ci0tLSBhL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYmRhdGFzb3VyY2UuY3Bw
CisrKyBiL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYmRhdGFzb3VyY2UuY3BwCkBAIC0zMSw2
ICszMSw3IEBACiAjaW5jbHVkZSAiU3Vic3RpdHV0ZURhdGEuaCIKICNpbmNsdWRlICJydW50aW1l
L0luaXRpYWxpemVUaHJlYWRpbmcuaCIKICNpbmNsdWRlICJ3ZWJraXRwcml2YXRlLmgiCisjaW5j
bHVkZSAid2Via2l0d2ViZnJhbWVwcml2YXRlLmgiCiAjaW5jbHVkZSAid2Via2l0d2VicmVzb3Vy
Y2UuaCIKICNpbmNsdWRlICJ3ZWJraXR3ZWJ2aWV3cHJpdmF0ZS5oIgogI2luY2x1ZGUgInd0Zi9B
c3NlcnRpb25zLmgiCmRpZmYgLS1naXQgYS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJmcmFt
ZS5jcHAgYi9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJmcmFtZS5jcHAKaW5kZXggM2Q4NzJi
Ni4uMzZmYzIzMCAxMDA2NDQKLS0tIGEvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2ViZnJhbWUu
Y3BwCisrKyBiL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYmZyYW1lLmNwcApAQCAtNTMsNiAr
NTMsNyBAQAogI2luY2x1ZGUgIndlYmtpdGVudW10eXBlcy5oIgogI2luY2x1ZGUgIndlYmtpdG1h
cnNoYWwuaCIKICNpbmNsdWRlICJ3ZWJraXRwcml2YXRlLmgiCisjaW5jbHVkZSAid2Via2l0d2Vi
ZnJhbWVwcml2YXRlLmgiCiAjaW5jbHVkZSAid2Via2l0d2Vidmlldy5oIgogI2luY2x1ZGUgIndl
YmtpdHdlYnZpZXdwcml2YXRlLmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvQVBJQ2FzdC5o
PgpAQCAtOTY2LDMgKzk2NywzMiBAQCBXZWJLaXROZXR3b3JrUmVzcG9uc2UqIHdlYmtpdF93ZWJf
ZnJhbWVfZ2V0X25ldHdvcmtfcmVzcG9uc2UoV2ViS2l0V2ViRnJhbWUqIGZyYQogCiAgICAgcmV0
dXJuIHdlYmtpdF9uZXR3b3JrX3Jlc3BvbnNlX25ld193aXRoX2NvcmVfcmVzcG9uc2UobG9hZGVy
LT5yZXNwb25zZSgpKTsKIH0KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1dlYktpdFdlYlZpZXcq
IGdldFZpZXdGcm9tRnJhbWUoV2ViS2l0V2ViRnJhbWUqIGZyYW1lKQoreworICAgIFdlYktpdFdl
YkZyYW1lUHJpdmF0ZSogcHJpdiA9IGZyYW1lLT5wcml2OworICAgIHJldHVybiBwcml2LT53ZWJW
aWV3OworfQorCitXZWJDb3JlOjpGcmFtZSogY29yZShXZWJLaXRXZWJGcmFtZSogZnJhbWUpCit7
CisgICAgaWYgKCFmcmFtZSkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICBXZWJLaXRXZWJGcmFt
ZVByaXZhdGUqIHByaXYgPSBmcmFtZS0+cHJpdjsKKyAgICByZXR1cm4gcHJpdiA/IHByaXYtPmNv
cmVGcmFtZSA6IDA7Cit9CisKK1dlYktpdFdlYkZyYW1lKiBraXQoV2ViQ29yZTo6RnJhbWUqIGNv
cmVGcmFtZSkKK3sKKyAgICBpZiAoIWNvcmVGcmFtZSkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAg
ICBBU1NFUlQoY29yZUZyYW1lLT5sb2FkZXIoKSk7CisgICAgV2ViS2l0OjpGcmFtZUxvYWRlckNs
aWVudCogY2xpZW50ID0gc3RhdGljX2Nhc3Q8V2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudCo+KGNv
cmVGcmFtZS0+bG9hZGVyKCktPmNsaWVudCgpKTsKKyAgICByZXR1cm4gY2xpZW50ID8gY2xpZW50
LT53ZWJGcmFtZSgpIDogMDsKK30KKworfQpkaWZmIC0tZ2l0IGEvV2ViS2l0L2d0ay93ZWJraXQv
d2Via2l0d2ViZnJhbWVwcml2YXRlLmggYi9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJmcmFt
ZXByaXZhdGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kMjkzOTdiCi0t
LSAvZGV2L251bGwKKysrIGIvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2ViZnJhbWVwcml2YXRl
LmgKQEAgLTAsMCArMSw1NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNywgMjAwOCwgMjAw
OSBIb2xnZXIgSGFucyBQZXRlciBGcmV5dGhlcgorICogQ29weXJpZ2h0IChDKSAyMDA4IEphbiBN
aWNoYWVsIEMuIEFsb256bworICogQ29weXJpZ2h0IChDKSAyMDA4IENvbGxhYm9yYSBMdGQuCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTAgSWdhbGlhIFMuTC4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMg
ZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkg
aXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICog
TGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0
aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55
IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRo
ZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFO
VFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklM
SVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAq
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAq
IFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVy
YWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZp
bGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBG
b3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9z
dG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKworI2lmbmRlZiB3ZWJraXR3ZWJmcmFtZXBy
aXZhdGVfaAorI2RlZmluZSB3ZWJraXR3ZWJmcmFtZXByaXZhdGVfaAorCituYW1lc3BhY2UgV2Vi
S2l0IHsKKworV2ViS2l0V2ViVmlldyogZ2V0Vmlld0Zyb21GcmFtZShXZWJLaXRXZWJGcmFtZSop
OworCitXZWJDb3JlOjpGcmFtZSogY29yZShXZWJLaXRXZWJGcmFtZSopOworV2ViS2l0V2ViRnJh
bWUqIGtpdChXZWJDb3JlOjpGcmFtZSopOworCit9CisKK2V4dGVybiAiQyIgeworCisjZGVmaW5l
IFdFQktJVF9XRUJfRlJBTUVfR0VUX1BSSVZBVEUob2JqKSAgICAoR19UWVBFX0lOU1RBTkNFX0dF
VF9QUklWQVRFKChvYmopLCBXRUJLSVRfVFlQRV9XRUJfRlJBTUUsIFdlYktpdFdlYkZyYW1lUHJp
dmF0ZSkpCit0eXBlZGVmIHN0cnVjdCBfV2ViS2l0V2ViRnJhbWVQcml2YXRlIFdlYktpdFdlYkZy
YW1lUHJpdmF0ZTsKK3N0cnVjdCBfV2ViS2l0V2ViRnJhbWVQcml2YXRlIHsKKyAgICBXZWJDb3Jl
OjpGcmFtZSogY29yZUZyYW1lOworICAgIFdlYktpdFdlYlZpZXcqIHdlYlZpZXc7CisKKyAgICBn
Y2hhciogbmFtZTsKKyAgICBnY2hhciogdGl0bGU7CisgICAgZ2NoYXIqIHVyaTsKKyAgICBXZWJL
aXRMb2FkU3RhdHVzIGxvYWRTdGF0dXM7CisgICAgV2ViS2l0U2VjdXJpdHlPcmlnaW4qIG9yaWdp
bjsKK307CisKK3ZvaWQgd2Via2l0X3dlYl9mcmFtZV9jb3JlX2ZyYW1lX2dvbmUoV2ViS2l0V2Vi
RnJhbWUqKTsKKworLy8gRklYTUU6IG1vdmUgdGhpcyBmdW5jdGlvbmFsaXR5IGludG8gJ1dlYktp
dFdlYkRhdGFTb3VyY2UnPworV0VCS0lUX0FQSSBnY2hhciogd2Via2l0X3dlYl9mcmFtZV9nZXRf
cmVzcG9uc2VfbWltZV90eXBlKFdlYktpdFdlYkZyYW1lKik7CisKK30KKworI2VuZGlmCmRpZmYg
LS1naXQgYS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJwb2xpY3lkZWNpc2lvbi5jcHAgYi9X
ZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJwb2xpY3lkZWNpc2lvbi5jcHAKaW5kZXggNWVmNjMx
MC4uNjY2MWE5OSAxMDA2NDQKLS0tIGEvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2VicG9saWN5
ZGVjaXNpb24uY3BwCisrKyBiL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnBvbGljeWRlY2lz
aW9uLmNwcApAQCAtMjMsNiArMjMsNyBAQAogCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXJUeXBlcy5o
IgogI2luY2x1ZGUgIndlYmtpdHByaXZhdGUuaCIKKyNpbmNsdWRlICJ3ZWJraXR3ZWJmcmFtZXBy
aXZhdGUuaCIKIAogdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKIHVzaW5nIG5hbWVzcGFjZSBXZWJD
b3JlOwpkaWZmIC0tZ2l0IGEvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vidmlldy5jcHAgYi9X
ZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcAppbmRleCAzYjg3YzIzLi40ZjUyODYz
IDEwMDY0NAotLS0gYS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcAorKysgYi9X
ZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcApAQCAtODQsNiArODQsNyBAQAogI2lu
Y2x1ZGUgIndlYmtpdG5ldHdvcmtyZXNwb25zZS5oIgogI2luY2x1ZGUgIndlYmtpdHByaXZhdGUu
aCIKICNpbmNsdWRlICJ3ZWJraXR3ZWJiYWNrZm9yd2FyZGxpc3QuaCIKKyNpbmNsdWRlICJ3ZWJr
aXR3ZWJmcmFtZXByaXZhdGUuaCIKICNpbmNsdWRlICJ3ZWJraXR3ZWJoaXN0b3J5aXRlbS5oIgog
I2luY2x1ZGUgIndlYmtpdHdlYmluc3BlY3Rvci5oIgogI2luY2x1ZGUgIndlYmtpdHdlYnZpZXdw
cml2YXRlLmgiCi0tIAoxLjcuMi4zCgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>76100</attachid>
            <date>2010-12-09 11:43:31 -0800</date>
            <delta_ts>2010-12-10 07:21:43 -0800</delta_ts>
            <desc>split WebKitNetworkRequest</desc>
            <filename>0001-Split-NetworkRequest.patch</filename>
            <type>text/plain</type>
            <size>17378</size>
            <attacher name="Gustavo Noronha (kov)">gustavo</attacher>
            
              <data encoding="base64">RnJvbSA1OTU5M2QzYzFmZTE5YjY0YWNjYjM2ZDQ5YTQxMzZkZjAyMjEzMjY0IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBHdXN0YXZvIE5vcm9uaGEgU2lsdmEgPGduc0Bnbm9tZS5vcmc+
CkRhdGU6IFRodSwgOSBEZWMgMjAxMCAyMDo0MzowMyArMDEwMApTdWJqZWN0OiBbUEFUQ0hdIFNw
bGl0IE5ldHdvcmtSZXF1ZXN0CgotLS0KIFdlYktpdC9ndGsvQ2hhbmdlTG9nICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHwgICAzMSArKysrKysrKysrKysrKysKIFdlYktpdC9ndGsvV2Vi
Q29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuY3BwIHwgICA0MCArKysrKysrLS0tLS0t
LS0tLS0tCiBXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRkb3dubG9hZC5jcHAgICAgICAgICAgICAg
ICB8ICAgIDEgKwogV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0bmV0d29ya3JlcXVlc3QuY3BwICAg
ICAgICAgfCAgIDMzICsrKysrKysrKysrLS0tLS0KIFdlYktpdC9ndGsvd2Via2l0L3dlYmtpdG5l
dHdvcmtyZXF1ZXN0cHJpdmF0ZS5oICAgIHwgICAzMyArKysrKysrKysrKysrKysrCiBXZWJLaXQv
Z3RrL3dlYmtpdC93ZWJraXRwcml2YXRlLmNwcCAgICAgICAgICAgICAgICB8ICAgMTAgLS0tLS0K
IFdlYktpdC9ndGsvd2Via2l0L3dlYmtpdHByaXZhdGUuaCAgICAgICAgICAgICAgICAgIHwgICAg
OCAtLS0tCiBXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJkYXRhc291cmNlLmNwcCAgICAgICAg
ICB8ICAgIDUgKy0KIFdlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYmZyYW1lLmNwcCAgICAgICAg
ICAgICAgIHwgICAgMSArCiA5IGZpbGVzIGNoYW5nZWQsIDEwNyBpbnNlcnRpb25zKCspLCA1NSBk
ZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRu
ZXR3b3JrcmVxdWVzdHByaXZhdGUuaAoKZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsvQ2hhbmdlTG9n
IGIvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKaW5kZXggOTUyMDkwZS4uNmMwYjQxNCAxMDA2NDQKLS0t
IGEvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKQEAgLTUs
NiArNSwzNyBAQAogICAgICAgICBbR1RLXSBTcGxpdCB3ZWJraXRwcml2YXRlLntjcHAsaH0gaW4g
bW9yZSBtYW5hZ2VhYmxlIGNodW5rcwogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NTA2OTgKIAorICAgICAgICBTcGxpdCBwcml2YXRlIGJpdHMgb2YgV2Vi
S2l0TmV0d29ya1JlcXVlc3QgdG8gaXRzIG93biBwcml2YXRlCisgICAgICAgIGhlYWRlciwgYW5k
IHRvIGl0cyBpbXBsZW1lbnRhdGlvbiBmaWxlLiBBbHNvIHRha2UgdGhlIG9wcG9ydHVuaXR5Cisg
ICAgICAgIHRvIHVzZSBQbGF0Zm9ybVJlZlB0ciBmb3IgTmV0d29ya1JlcXVlc3Qgd2hlcmUgaXQg
bWFrZXMgc2Vuc2UsIGFuZAorICAgICAgICBtYWtlIHRoZSBjcmVhdGlvbiBsZXNzIHZlcmJvc2Ug
YnkgYWRkaW5nIGtpdE5ldy4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVy
Q2xpZW50R3RrLmNwcDoKKyAgICAgICAgKFdlYktpdDo6RnJhbWVMb2FkZXJDbGllbnQ6OmRpc3Bh
dGNoV2lsbFNlbmRSZXF1ZXN0KToKKyAgICAgICAgKFdlYktpdDo6RnJhbWVMb2FkZXJDbGllbnQ6
OmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTUlNRVR5cGUpOgorICAgICAgICAoV2ViS2l0OjpGcmFt
ZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JOZXdXaW5kb3dBY3Rpb24pOgor
ICAgICAgICAoV2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEZWNpZGVQb2xpY3lG
b3JOYXZpZ2F0aW9uQWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6RnJhbWVMb2FkZXJDbGllbnQ6
OmRvd25sb2FkKToKKyAgICAgICAgKFdlYktpdDo6RnJhbWVMb2FkZXJDbGllbnQ6OnN0YXJ0RG93
bmxvYWQpOgorICAgICAgICAqIHdlYmtpdC93ZWJraXRkb3dubG9hZC5jcHA6CisgICAgICAgICog
d2Via2l0L3dlYmtpdG5ldHdvcmtyZXF1ZXN0LmNwcDoKKyAgICAgICAgKFdlYktpdDo6a2l0TmV3
KToKKyAgICAgICAgKFdlYktpdDo6Y29yZSk6CisgICAgICAgICogd2Via2l0L3dlYmtpdG5ldHdv
cmtyZXF1ZXN0cHJpdmF0ZS5oOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJraXQvd2Via2l0cHJpdmF0
ZS5jcHA6CisgICAgICAgICogd2Via2l0L3dlYmtpdHByaXZhdGUuaDoKKyAgICAgICAgKiB3ZWJr
aXQvd2Via2l0d2ViZGF0YXNvdXJjZS5jcHA6CisgICAgICAgICh3ZWJraXRfd2ViX2RhdGFfc291
cmNlX2dldF9pbml0aWFsX3JlcXVlc3QpOgorICAgICAgICAod2Via2l0X3dlYl9kYXRhX3NvdXJj
ZV9nZXRfcmVxdWVzdCk6CisgICAgICAgICogd2Via2l0L3dlYmtpdHdlYmZyYW1lLmNwcDoKKwor
MjAxMC0xMi0wOSAgR3VzdGF2byBOb3JvbmhhIFNpbHZhICA8Z3VzdGF2by5ub3JvbmhhQGNvbGxh
Ym9yYS5jby51az4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBbR1RLXSBTcGxpdCB3ZWJraXRwcml2YXRlLntjcHAsaH0gaW4gbW9yZSBtYW5hZ2VhYmxl
IGNodW5rcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NTA2OTgKKwogICAgICAgICBTcGxpdCBwcml2YXRlIGJpdHMgb2YgV2ViS2l0V2ViRnJhbWUgdG8g
aXRzIG93biBwcml2YXRlIGhlYWRlciwgYW5kCiAgICAgICAgIHRvIGl0cyBpbXBsZW1lbnRhdGlv
biBmaWxlLgogCmRpZmYgLS1naXQgYS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9h
ZGVyQ2xpZW50R3RrLmNwcCBiL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJD
bGllbnRHdGsuY3BwCmluZGV4IDg3MGE5MDIuLmQ3NDhjZWMgMTAwNjQ0Ci0tLSBhL1dlYktpdC9n
dGsvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuY3BwCisrKyBiL1dlYktpdC9n
dGsvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuY3BwCkBAIC02MCw2ICs2MCw3
IEBACiAjaW5jbHVkZSAiU2NyaXB0Q29udHJvbGxlci5oIgogI2luY2x1ZGUgIndlYmtpdGVycm9y
LmgiCiAjaW5jbHVkZSAid2Via2l0bmV0d29ya3JlcXVlc3QuaCIKKyNpbmNsdWRlICJ3ZWJraXRu
ZXR3b3JrcmVxdWVzdHByaXZhdGUuaCIKICNpbmNsdWRlICJ3ZWJraXRuZXR3b3JrcmVzcG9uc2Uu
aCIKICNpbmNsdWRlICJ3ZWJraXRwcml2YXRlLmgiCiAjaW5jbHVkZSAid2Via2l0d2ViZnJhbWUu
aCIKQEAgLTMxMyw3ICszMTQsNyBAQCB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaFdp
bGxTZW5kUmVxdWVzdChXZWJDb3JlOjpEb2N1bWVudExvYWRlciogbG9hZGVyLAogICAgIFdlYktp
dFdlYlZpZXcqIHdlYlZpZXcgPSBnZXRWaWV3RnJvbUZyYW1lKG1fZnJhbWUpOwogICAgIEdPd25Q
dHI8Z2NoYXI+IGlkZW50aWZpZXJTdHJpbmcodG9TdHJpbmcoaWRlbnRpZmllcikpOwogICAgIFdl
YktpdFdlYlJlc291cmNlKiB3ZWJSZXNvdXJjZSA9IHdlYmtpdF93ZWJfdmlld19nZXRfcmVzb3Vy
Y2Uod2ViVmlldywgaWRlbnRpZmllclN0cmluZy5nZXQoKSk7Ci0gICAgUGxhdGZvcm1SZWZQdHI8
V2ViS2l0TmV0d29ya1JlcXVlc3Q+IG5ldHdvcmtSZXF1ZXN0KGFkb3B0UGxhdGZvcm1SZWYod2Vi
a2l0X25ldHdvcmtfcmVxdWVzdF9uZXdfd2l0aF9jb3JlX3JlcXVlc3QocmVxdWVzdCkpKTsKKyAg
ICBQbGF0Zm9ybVJlZlB0cjxXZWJLaXROZXR3b3JrUmVxdWVzdD4gbmV0d29ya1JlcXVlc3QoYWRv
cHRQbGF0Zm9ybVJlZihraXROZXcocmVxdWVzdCkpKTsKIAogICAgIGlmICghcmVkaXJlY3RSZXNw
b25zZS5pc051bGwoKSkgewogICAgICAgICAvLyBUaGlzIGlzIGEgcmVkaXJlY3QsIHNvIHdlIG5l
ZWQgdG8gdXBkYXRlIHRoZSBXZWJSZXNvdXJjZSdzIGtub3dsZWRnZQpAQCAtNDA3LDcgKzQwOCw3
IEBAIHZvaWQgRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTUlNRVR5
cGUoRnJhbWVQb2xpY3lGdW5jdGlvbiBwb2xpCiAgICAgfQogCiAgICAgV2ViS2l0V2ViVmlldyog
cGFnZSA9IGdldFZpZXdGcm9tRnJhbWUobV9mcmFtZSk7Ci0gICAgV2ViS2l0TmV0d29ya1JlcXVl
c3QqIHJlcXVlc3QgPSB3ZWJraXRfbmV0d29ya19yZXF1ZXN0X25ld193aXRoX2NvcmVfcmVxdWVz
dChyZXNvdXJjZVJlcXVlc3QpOworICAgIFBsYXRmb3JtUmVmUHRyPFdlYktpdE5ldHdvcmtSZXF1
ZXN0PiByZXF1ZXN0KGFkb3B0UGxhdGZvcm1SZWYoa2l0TmV3KHJlc291cmNlUmVxdWVzdCkpKTsK
IAogICAgIFdlYktpdFdlYlBvbGljeURlY2lzaW9uKiBwb2xpY3lEZWNpc2lvbiA9IHdlYmtpdF93
ZWJfcG9saWN5X2RlY2lzaW9uX25ldyhtX2ZyYW1lLCBwb2xpY3lGdW5jdGlvbik7CiAgICAgaWYg
KG1fcG9saWN5RGVjaXNpb24pCkBAIC00MTUsOSArNDE2LDcgQEAgdm9pZCBGcmFtZUxvYWRlckNs
aWVudDo6ZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JNSU1FVHlwZShGcmFtZVBvbGljeUZ1bmN0aW9u
IHBvbGkKICAgICBtX3BvbGljeURlY2lzaW9uID0gcG9saWN5RGVjaXNpb247CiAKICAgICBnYm9v
bGVhbiBpc0hhbmRsZWQgPSBmYWxzZTsKLSAgICBnX3NpZ25hbF9lbWl0X2J5X25hbWUocGFnZSwg
Im1pbWUtdHlwZS1wb2xpY3ktZGVjaXNpb24tcmVxdWVzdGVkIiwgbV9mcmFtZSwgcmVxdWVzdCwg
bWltZVR5cGUudXRmOCgpLmRhdGEoKSwgcG9saWN5RGVjaXNpb24sICZpc0hhbmRsZWQpOwotCi0g
ICAgZ19vYmplY3RfdW5yZWYocmVxdWVzdCk7CisgICAgZ19zaWduYWxfZW1pdF9ieV9uYW1lKHBh
Z2UsICJtaW1lLXR5cGUtcG9saWN5LWRlY2lzaW9uLXJlcXVlc3RlZCIsIG1fZnJhbWUsIHJlcXVl
c3QuZ2V0KCksIG1pbWVUeXBlLnV0ZjgoKS5kYXRhKCksIHBvbGljeURlY2lzaW9uLCAmaXNIYW5k
bGVkKTsKIAogICAgIGlmIChpc0hhbmRsZWQpCiAgICAgICAgIHJldHVybjsKQEAgLTQ4OSwxNCAr
NDg4LDExIEBAIHZvaWQgRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9y
TmV3V2luZG93QWN0aW9uKEZyYW1lUG9saWN5RnVuY3RpCiAgICAgbV9wb2xpY3lEZWNpc2lvbiA9
IHBvbGljeURlY2lzaW9uOwogCiAgICAgV2ViS2l0V2ViVmlldyogd2ViVmlldyA9IGdldFZpZXdG
cm9tRnJhbWUobV9mcmFtZSk7Ci0gICAgV2ViS2l0TmV0d29ya1JlcXVlc3QqIHJlcXVlc3QgPSB3
ZWJraXRfbmV0d29ya19yZXF1ZXN0X25ldyhyZXNvdXJjZVJlcXVlc3QudXJsKCkuc3RyaW5nKCku
dXRmOCgpLmRhdGEoKSk7Ci0gICAgV2ViS2l0V2ViTmF2aWdhdGlvbkFjdGlvbiogbmF2aWdhdGlv
bkFjdGlvbiA9IGdldE5hdmlnYXRpb25BY3Rpb24oYWN0aW9uLCBmcmFtZU5hbWUudXRmOCgpLmRh
dGEoKSk7CisgICAgUGxhdGZvcm1SZWZQdHI8V2ViS2l0TmV0d29ya1JlcXVlc3Q+IHJlcXVlc3Qo
YWRvcHRQbGF0Zm9ybVJlZih3ZWJraXRfbmV0d29ya19yZXF1ZXN0X25ldyhyZXNvdXJjZVJlcXVl
c3QudXJsKCkuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSkpKTsKKyAgICBQbGF0Zm9ybVJlZlB0cjxX
ZWJLaXRXZWJOYXZpZ2F0aW9uQWN0aW9uPiBuYXZpZ2F0aW9uQWN0aW9uKGFkb3B0UGxhdGZvcm1S
ZWYoZ2V0TmF2aWdhdGlvbkFjdGlvbihhY3Rpb24sIGZyYW1lTmFtZS51dGY4KCkuZGF0YSgpKSkp
OwogICAgIGdib29sZWFuIGlzSGFuZGxlZCA9IGZhbHNlOwogCi0gICAgZ19zaWduYWxfZW1pdF9i
eV9uYW1lKHdlYlZpZXcsICJuZXctd2luZG93LXBvbGljeS1kZWNpc2lvbi1yZXF1ZXN0ZWQiLCBt
X2ZyYW1lLCByZXF1ZXN0LCBuYXZpZ2F0aW9uQWN0aW9uLCBwb2xpY3lEZWNpc2lvbiwgJmlzSGFu
ZGxlZCk7Ci0KLSAgICBnX29iamVjdF91bnJlZihuYXZpZ2F0aW9uQWN0aW9uKTsKLSAgICBnX29i
amVjdF91bnJlZihyZXF1ZXN0KTsKKyAgICBnX3NpZ25hbF9lbWl0X2J5X25hbWUod2ViVmlldywg
Im5ldy13aW5kb3ctcG9saWN5LWRlY2lzaW9uLXJlcXVlc3RlZCIsIG1fZnJhbWUsIHJlcXVlc3Qu
Z2V0KCksIG5hdmlnYXRpb25BY3Rpb24uZ2V0KCksIHBvbGljeURlY2lzaW9uLCAmaXNIYW5kbGVk
KTsKIAogICAgIC8vIEZJWE1FOiBJIHRoaW5rIFF0IHZlcnNpb24gbWFyc2hhbHMgdGhpcyB0byBh
bm90aGVyIHRocmVhZCBzbyB3aGVuIHdlCiAgICAgLy8gaGF2ZSBtdWx0aS10aHJlYWRlZCBkb3du
bG9hZCwgd2UgbWlnaHQgbmVlZCB0byBkbyB0aGUgc2FtZQpAQCAtNTE2LDcgKzUxMiw3IEBAIHZv
aWQgRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFj
dGlvbihGcmFtZVBvbGljeUZ1bmN0CiAgICAgfQogCiAgICAgV2ViS2l0V2ViVmlldyogd2ViVmll
dyA9IGdldFZpZXdGcm9tRnJhbWUobV9mcmFtZSk7Ci0gICAgV2ViS2l0TmV0d29ya1JlcXVlc3Qq
IHJlcXVlc3QgPSB3ZWJraXRfbmV0d29ya19yZXF1ZXN0X25ld193aXRoX2NvcmVfcmVxdWVzdChy
ZXNvdXJjZVJlcXVlc3QpOworICAgIFBsYXRmb3JtUmVmUHRyPFdlYktpdE5ldHdvcmtSZXF1ZXN0
PiByZXF1ZXN0KGFkb3B0UGxhdGZvcm1SZWYoa2l0TmV3KHJlc291cmNlUmVxdWVzdCkpKTsKICAg
ICBXZWJLaXROYXZpZ2F0aW9uUmVzcG9uc2UgcmVzcG9uc2U7CiAgICAgLyoKICAgICAgKiBXZSBz
dGlsbCBzdXBwb3J0IHRoZSBkZXByZWNhdGVkIG5hdmlnYXRpb24tcmVxdWVzdGVkIHNpZ25hbCwg
aWYgdGhlCkBAIC01MjUsMTEgKzUyMSwxMCBAQCB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50OjpkaXNw
YXRjaERlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24oRnJhbWVQb2xpY3lGdW5jdAogICAg
ICAqIG5hdmlnYXRpb24tcG9saWN5LWRlY2lzaW9uLXJlcXVlc3RlZCBtdXN0IGJlIGVtaXR0ZWQg
YWZ0ZXIKICAgICAgKiBuYXZpZ2F0aW9uLXJlcXVlc3RlZCBhcyB0aGUgcG9saWN5IGRlY2lzaW9u
IGNhbiBiZSBhc3luYy4KICAgICAgKi8KLSAgICBnX3NpZ25hbF9lbWl0X2J5X25hbWUod2ViVmll
dywgIm5hdmlnYXRpb24tcmVxdWVzdGVkIiwgbV9mcmFtZSwgcmVxdWVzdCwgJnJlc3BvbnNlKTsK
KyAgICBnX3NpZ25hbF9lbWl0X2J5X25hbWUod2ViVmlldywgIm5hdmlnYXRpb24tcmVxdWVzdGVk
IiwgbV9mcmFtZSwgcmVxdWVzdC5nZXQoKSwgJnJlc3BvbnNlKTsKIAogICAgIGlmIChyZXNwb25z
ZSA9PSBXRUJLSVRfTkFWSUdBVElPTl9SRVNQT05TRV9JR05PUkUpIHsKICAgICAgICAgKGNvcmUo
bV9mcmFtZSktPmxvYWRlcigpLT5wb2xpY3lDaGVja2VyKCktPipwb2xpY3lGdW5jdGlvbikoUG9s
aWN5SWdub3JlKTsKLSAgICAgICAgZ19vYmplY3RfdW5yZWYocmVxdWVzdCk7CiAgICAgICAgIHJl
dHVybjsKICAgICB9CiAKQEAgLTUzOCwxMiArNTMzLDkgQEAgdm9pZCBGcmFtZUxvYWRlckNsaWVu
dDo6ZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKEZyYW1lUG9saWN5RnVu
Y3QKICAgICAgICAgZ19vYmplY3RfdW5yZWYobV9wb2xpY3lEZWNpc2lvbik7CiAgICAgbV9wb2xp
Y3lEZWNpc2lvbiA9IHBvbGljeURlY2lzaW9uOwogCi0gICAgV2ViS2l0V2ViTmF2aWdhdGlvbkFj
dGlvbiogbmF2aWdhdGlvbkFjdGlvbiA9IGdldE5hdmlnYXRpb25BY3Rpb24oYWN0aW9uLCBOVUxM
KTsKKyAgICBQbGF0Zm9ybVJlZlB0cjxXZWJLaXRXZWJOYXZpZ2F0aW9uQWN0aW9uPiBuYXZpZ2F0
aW9uQWN0aW9uKGFkb3B0UGxhdGZvcm1SZWYoZ2V0TmF2aWdhdGlvbkFjdGlvbihhY3Rpb24sIDAp
KSk7CiAgICAgZ2Jvb2xlYW4gaXNIYW5kbGVkID0gZmFsc2U7Ci0gICAgZ19zaWduYWxfZW1pdF9i
eV9uYW1lKHdlYlZpZXcsICJuYXZpZ2F0aW9uLXBvbGljeS1kZWNpc2lvbi1yZXF1ZXN0ZWQiLCBt
X2ZyYW1lLCByZXF1ZXN0LCBuYXZpZ2F0aW9uQWN0aW9uLCBwb2xpY3lEZWNpc2lvbiwgJmlzSGFu
ZGxlZCk7Ci0KLSAgICBnX29iamVjdF91bnJlZihuYXZpZ2F0aW9uQWN0aW9uKTsKLSAgICBnX29i
amVjdF91bnJlZihyZXF1ZXN0KTsKKyAgICBnX3NpZ25hbF9lbWl0X2J5X25hbWUod2ViVmlldywg
Im5hdmlnYXRpb24tcG9saWN5LWRlY2lzaW9uLXJlcXVlc3RlZCIsIG1fZnJhbWUsIHJlcXVlc3Qu
Z2V0KCksIG5hdmlnYXRpb25BY3Rpb24uZ2V0KCksIHBvbGljeURlY2lzaW9uLCAmaXNIYW5kbGVk
KTsKIAogICAgIC8vIEZJWE1FIEltcGxlbWVudCBkZWZhdWx0IGJlaGF2aW9yIHdoZW4gd2UgY2Fu
IHF1ZXJ5IHRoZSBiYWNrZW5kIHdoYXQgcHJvdG9jb2xzIGl0IHN1cHBvcnRzCiAgICAgaWYgKCFp
c0hhbmRsZWQpCkBAIC0xMTY5LDExICsxMTYxLDEwIEBAIHZvaWQgRnJhbWVMb2FkZXJDbGllbnQ6
OmRpc3BhdGNoRGlkRmFpbExvYWQoY29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3IpCiAKIHZvaWQg
RnJhbWVMb2FkZXJDbGllbnQ6OmRvd25sb2FkKFJlc291cmNlSGFuZGxlKiBoYW5kbGUsIGNvbnN0
IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgY29uc3Qg
UmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCiB7Ci0gICAgV2ViS2l0TmV0d29ya1JlcXVlc3Qq
IG5ldHdvcmtSZXF1ZXN0ID0gd2Via2l0X25ldHdvcmtfcmVxdWVzdF9uZXdfd2l0aF9jb3JlX3Jl
cXVlc3QocmVxdWVzdCk7CisgICAgUGxhdGZvcm1SZWZQdHI8V2ViS2l0TmV0d29ya1JlcXVlc3Q+
IG5ldHdvcmtSZXF1ZXN0KGFkb3B0UGxhdGZvcm1SZWYoa2l0TmV3KHJlcXVlc3QpKSk7CiAgICAg
V2ViS2l0V2ViVmlldyogdmlldyA9IGdldFZpZXdGcm9tRnJhbWUobV9mcmFtZSk7CiAKLSAgICB3
ZWJraXRfd2ViX3ZpZXdfcmVxdWVzdF9kb3dubG9hZCh2aWV3LCBuZXR3b3JrUmVxdWVzdCwgcmVz
cG9uc2UsIGhhbmRsZSk7Ci0gICAgZ19vYmplY3RfdW5yZWYobmV0d29ya1JlcXVlc3QpOworICAg
IHdlYmtpdF93ZWJfdmlld19yZXF1ZXN0X2Rvd25sb2FkKHZpZXcsIG5ldHdvcmtSZXF1ZXN0Lmdl
dCgpLCByZXNwb25zZSwgaGFuZGxlKTsKIH0KIAogUmVzb3VyY2VFcnJvciBGcmFtZUxvYWRlckNs
aWVudDo6Y2FuY2VsbGVkRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQpAQCAt
MTI1OCwxMSArMTI0OSwxMCBAQCB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50OjpzZXRNYWluRG9jdW1l
bnRFcnJvcihXZWJDb3JlOjpEb2N1bWVudExvYWRlciosIGNvbnN0IFJlcwogCiB2b2lkIEZyYW1l
TG9hZGVyQ2xpZW50OjpzdGFydERvd25sb2FkKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVz
dCkKIHsKLSAgICBXZWJLaXROZXR3b3JrUmVxdWVzdCogbmV0d29ya1JlcXVlc3QgPSB3ZWJraXRf
bmV0d29ya19yZXF1ZXN0X25ld193aXRoX2NvcmVfcmVxdWVzdChyZXF1ZXN0KTsKKyAgICBQbGF0
Zm9ybVJlZlB0cjxXZWJLaXROZXR3b3JrUmVxdWVzdD4gbmV0d29ya1JlcXVlc3QoYWRvcHRQbGF0
Zm9ybVJlZihraXROZXcocmVxdWVzdCkpKTsKICAgICBXZWJLaXRXZWJWaWV3KiB2aWV3ID0gZ2V0
Vmlld0Zyb21GcmFtZShtX2ZyYW1lKTsKIAotICAgIHdlYmtpdF93ZWJfdmlld19yZXF1ZXN0X2Rv
d25sb2FkKHZpZXcsIG5ldHdvcmtSZXF1ZXN0KTsKLSAgICBnX29iamVjdF91bnJlZihuZXR3b3Jr
UmVxdWVzdCk7CisgICAgd2Via2l0X3dlYl92aWV3X3JlcXVlc3RfZG93bmxvYWQodmlldywgbmV0
d29ya1JlcXVlc3QuZ2V0KCkpOwogfQogCiB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50Ojp1cGRhdGVH
bG9iYWxIaXN0b3J5KCkKZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdGRvd25s
b2FkLmNwcCBiL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdGRvd25sb2FkLmNwcAppbmRleCAxOGI2
NGFiLi4yYWJkMGJlIDEwMDY0NAotLS0gYS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRkb3dubG9h
ZC5jcHAKKysrIGIvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0ZG93bmxvYWQuY3BwCkBAIC0zMSw2
ICszMSw3IEBACiAjaW5jbHVkZSAid2Via2l0ZG93bmxvYWQuaCIKICNpbmNsdWRlICJ3ZWJraXRl
bnVtdHlwZXMuaCIKICNpbmNsdWRlICJ3ZWJraXRtYXJzaGFsLmgiCisjaW5jbHVkZSAid2Via2l0
bmV0d29ya3JlcXVlc3Rwcml2YXRlLmgiCiAjaW5jbHVkZSAid2Via2l0bmV0d29ya3Jlc3BvbnNl
LmgiCiAjaW5jbHVkZSAid2Via2l0cHJpdmF0ZS5oIgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJp
bmcuaD4KZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdG5ldHdvcmtyZXF1ZXN0
LmNwcCBiL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdG5ldHdvcmtyZXF1ZXN0LmNwcAppbmRleCA2
MTgwZWZhLi43MTk2NjMxIDEwMDY0NAotLS0gYS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRuZXR3
b3JrcmVxdWVzdC5jcHAKKysrIGIvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0bmV0d29ya3JlcXVl
c3QuY3BwCkBAIC0xNjEsMTYgKzE2MSw2IEBAIHN0YXRpYyB2b2lkIHdlYmtpdF9uZXR3b3JrX3Jl
cXVlc3RfaW5pdChXZWJLaXROZXR3b3JrUmVxdWVzdCogcmVxdWVzdCkKICAgICByZXF1ZXN0LT5w
cml2ID0gcHJpdjsKIH0KIAotLy8gZm9yIGludGVybmFsIHVzZSBvbmx5Ci1XZWJLaXROZXR3b3Jr
UmVxdWVzdCogd2Via2l0X25ldHdvcmtfcmVxdWVzdF9uZXdfd2l0aF9jb3JlX3JlcXVlc3QoY29u
c3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiByZXNvdXJjZVJlcXVlc3QpCi17Ci0gICAgUGxh
dGZvcm1SZWZQdHI8U291cE1lc3NhZ2U+IHNvdXBNZXNzYWdlKGFkb3B0UGxhdGZvcm1SZWYocmVz
b3VyY2VSZXF1ZXN0LnRvU291cE1lc3NhZ2UoKSkpOwotICAgIGlmIChzb3VwTWVzc2FnZSkKLSAg
ICAgICAgcmV0dXJuIFdFQktJVF9ORVRXT1JLX1JFUVVFU1QoZ19vYmplY3RfbmV3KFdFQktJVF9U
WVBFX05FVFdPUktfUkVRVUVTVCwgIm1lc3NhZ2UiLCBzb3VwTWVzc2FnZS5nZXQoKSwgTlVMTCkp
OwotCi0gICAgcmV0dXJuIFdFQktJVF9ORVRXT1JLX1JFUVVFU1QoZ19vYmplY3RfbmV3KFdFQktJ
VF9UWVBFX05FVFdPUktfUkVRVUVTVCwgInVyaSIsIHJlc291cmNlUmVxdWVzdC51cmwoKS5zdHJp
bmcoKS51dGY4KCkuZGF0YSgpLCBOVUxMKSk7Ci19Ci0KIC8qKgogICogd2Via2l0X25ldHdvcmtf
cmVxdWVzdF9uZXc6CiAgKiBAdXJpOiBhbiBVUkkKQEAgLTI2MCwzICsyNTAsMjYgQEAgU291cE1l
c3NhZ2UqIHdlYmtpdF9uZXR3b3JrX3JlcXVlc3RfZ2V0X21lc3NhZ2UoV2ViS2l0TmV0d29ya1Jl
cXVlc3QqIHJlcXVlc3QpCiAKICAgICByZXR1cm4gcHJpdi0+bWVzc2FnZTsKIH0KKworbmFtZXNw
YWNlIFdlYktpdCB7CisKK1dlYktpdE5ldHdvcmtSZXF1ZXN0KiBraXROZXcoY29uc3QgV2ViQ29y
ZTo6UmVzb3VyY2VSZXF1ZXN0JiByZXNvdXJjZVJlcXVlc3QpCit7CisgICAgUGxhdGZvcm1SZWZQ
dHI8U291cE1lc3NhZ2U+IHNvdXBNZXNzYWdlKGFkb3B0UGxhdGZvcm1SZWYocmVzb3VyY2VSZXF1
ZXN0LnRvU291cE1lc3NhZ2UoKSkpOworICAgIGlmIChzb3VwTWVzc2FnZSkKKyAgICAgICAgcmV0
dXJuIFdFQktJVF9ORVRXT1JLX1JFUVVFU1QoZ19vYmplY3RfbmV3KFdFQktJVF9UWVBFX05FVFdP
UktfUkVRVUVTVCwgIm1lc3NhZ2UiLCBzb3VwTWVzc2FnZS5nZXQoKSwgTlVMTCkpOworCisgICAg
cmV0dXJuIFdFQktJVF9ORVRXT1JLX1JFUVVFU1QoZ19vYmplY3RfbmV3KFdFQktJVF9UWVBFX05F
VFdPUktfUkVRVUVTVCwgInVyaSIsIHJlc291cmNlUmVxdWVzdC51cmwoKS5zdHJpbmcoKS51dGY4
KCkuZGF0YSgpLCBOVUxMKSk7Cit9CisKK1dlYkNvcmU6OlJlc291cmNlUmVxdWVzdCBjb3JlKFdl
YktpdE5ldHdvcmtSZXF1ZXN0KiByZXF1ZXN0KQoreworICAgIFNvdXBNZXNzYWdlKiBzb3VwTWVz
c2FnZSA9IHdlYmtpdF9uZXR3b3JrX3JlcXVlc3RfZ2V0X21lc3NhZ2UocmVxdWVzdCk7CisgICAg
aWYgKHNvdXBNZXNzYWdlKQorICAgICAgICByZXR1cm4gV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0
KHNvdXBNZXNzYWdlKTsKKworICAgIFdlYkNvcmU6OktVUkwgdXJsID0gV2ViQ29yZTo6S1VSTChX
ZWJDb3JlOjpLVVJMKCksIFN0cmluZzo6ZnJvbVVURjgod2Via2l0X25ldHdvcmtfcmVxdWVzdF9n
ZXRfdXJpKHJlcXVlc3QpKSk7CisgICAgcmV0dXJuIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCh1
cmwpOworfQorCit9CmRpZmYgLS1naXQgYS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRuZXR3b3Jr
cmVxdWVzdHByaXZhdGUuaCBiL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdG5ldHdvcmtyZXF1ZXN0
cHJpdmF0ZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdlM2UyNGMKLS0t
IC9kZXYvbnVsbAorKysgYi9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRuZXR3b3JrcmVxdWVzdHBy
aXZhdGUuaApAQCAtMCwwICsxLDMzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA3LCAyMDA4
LCAyMDA5IEhvbGdlciBIYW5zIFBldGVyIEZyZXl0aGVyCisgKiBDb3B5cmlnaHQgKEMpIDIwMDgg
SmFuIE1pY2hhZWwgQy4gQWxvbnpvCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggQ29sbGFib3JhIEx0
ZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMCBJZ2FsaWEgUy5MLgorICoKKyAqIFRoaXMgbGlicmFy
eSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1v
ZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGlj
CisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u
OyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9u
KSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQg
aW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBX
QVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFO
VEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdO
VQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisg
KgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0
aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3
YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisg
KiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaWZuZGVmIHdlYmtpdG5ldHdv
cmtyZXF1ZXN0cHJpdmF0ZV9oCisjZGVmaW5lIHdlYmtpdG5ldHdvcmtyZXF1ZXN0cHJpdmF0ZV9o
CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgY29yZShX
ZWJLaXROZXR3b3JrUmVxdWVzdCogcmVxdWVzdCk7CitXZWJLaXROZXR3b3JrUmVxdWVzdCoga2l0
TmV3KGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYpOworCit9CisKKyNlbmRpZgpkaWZm
IC0tZ2l0IGEvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0cHJpdmF0ZS5jcHAgYi9XZWJLaXQvZ3Rr
L3dlYmtpdC93ZWJraXRwcml2YXRlLmNwcAppbmRleCA0MGE5YjI1Li42MDVmNWRmIDEwMDY0NAot
LS0gYS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRwcml2YXRlLmNwcAorKysgYi9XZWJLaXQvZ3Rr
L3dlYmtpdC93ZWJraXRwcml2YXRlLmNwcApAQCAtNzUsMTYgKzc1LDYgQEAgV2ViQ29yZTo6TmF2
aWdhdGlvblR5cGUgY29yZShXZWJLaXRXZWJOYXZpZ2F0aW9uUmVhc29uIHR5cGUpCiAgICAgcmV0
dXJuIHN0YXRpY19jYXN0PFdlYkNvcmU6Ok5hdmlnYXRpb25UeXBlPih0eXBlKTsKIH0KIAotV2Vi
Q29yZTo6UmVzb3VyY2VSZXF1ZXN0IGNvcmUoV2ViS2l0TmV0d29ya1JlcXVlc3QqIHJlcXVlc3Qp
Ci17Ci0gICAgU291cE1lc3NhZ2UqIHNvdXBNZXNzYWdlID0gd2Via2l0X25ldHdvcmtfcmVxdWVz
dF9nZXRfbWVzc2FnZShyZXF1ZXN0KTsKLSAgICBpZiAoc291cE1lc3NhZ2UpCi0gICAgICAgIHJl
dHVybiBSZXNvdXJjZVJlcXVlc3Qoc291cE1lc3NhZ2UpOwotCi0gICAgS1VSTCB1cmwgPSBLVVJM
KEtVUkwoKSwgU3RyaW5nOjpmcm9tVVRGOCh3ZWJraXRfbmV0d29ya19yZXF1ZXN0X2dldF91cmko
cmVxdWVzdCkpKTsKLSAgICByZXR1cm4gUmVzb3VyY2VSZXF1ZXN0KHVybCk7Ci19Ci0KIFdlYkNv
cmU6OlJlc291cmNlUmVzcG9uc2UgY29yZShXZWJLaXROZXR3b3JrUmVzcG9uc2UqIHJlc3BvbnNl
KQogewogICAgIFNvdXBNZXNzYWdlKiBzb3VwTWVzc2FnZSA9IHdlYmtpdF9uZXR3b3JrX3Jlc3Bv
bnNlX2dldF9tZXNzYWdlKHJlc3BvbnNlKTsKZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsvd2Via2l0
L3dlYmtpdHByaXZhdGUuaCBiL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHByaXZhdGUuaAppbmRl
eCA2NzdmOGM5Li45ZTZlYThjIDEwMDY0NAotLS0gYS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRw
cml2YXRlLmgKKysrIGIvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0cHJpdmF0ZS5oCkBAIC04OSw4
ICs4OSw2IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogICAgIFdlYktpdFdlYk5hdmlnYXRpb25SZWFz
b24ga2l0KFdlYkNvcmU6Ok5hdmlnYXRpb25UeXBlIHR5cGUpOwogICAgIFdlYkNvcmU6Ok5hdmln
YXRpb25UeXBlIGNvcmUoV2ViS2l0V2ViTmF2aWdhdGlvblJlYXNvbiByZWFzb24pOwogCi0gICAg
V2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IGNvcmUoV2ViS2l0TmV0d29ya1JlcXVlc3QqIHJlcXVl
c3QpOwotCiAgICAgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSBjb3JlKFdlYktpdE5ldHdvcmtS
ZXNwb25zZSogcmVzcG9uc2UpOwogCiAgICAgV2ViQ29yZTo6RWRpdGluZ0JlaGF2aW9yVHlwZSBj
b3JlKFdlYktpdEVkaXRpbmdCZWhhdmlvciB0eXBlKTsKQEAgLTE4OCw4ICsxODYsNiBAQCBleHRl
cm4gIkMiIHsKICAgICB2b2lkCiAgICAgd2Via2l0X3dlYl9wb2xpY3lfZGVjaXNpb25fY2FuY2Vs
IChXZWJLaXRXZWJQb2xpY3lEZWNpc2lvbiogZGVjaXNpb24pOwogCi0gICAgV2ViS2l0TmV0d29y
a1JlcXVlc3QqCi0gICAgd2Via2l0X25ldHdvcmtfcmVxdWVzdF9uZXdfd2l0aF9jb3JlX3JlcXVl
c3QoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiByZXNvdXJjZVJlcXVlc3QpOwogCiAg
ICAgV2ViS2l0TmV0d29ya1Jlc3BvbnNlKgogICAgIHdlYmtpdF9uZXR3b3JrX3Jlc3BvbnNlX25l
d193aXRoX2NvcmVfcmVzcG9uc2UoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYgcmVz
b3VyY2VSZXNwb25zZSk7CkBAIC0xOTcsMTAgKzE5Myw2IEBAIGV4dGVybiAiQyIgewogICAgIFdl
YktpdEdlb2xvY2F0aW9uUG9saWN5RGVjaXNpb24qCiAgICAgd2Via2l0X2dlb2xvY2F0aW9uX3Bv
bGljeV9kZWNpc2lvbl9uZXcoV2ViS2l0V2ViRnJhbWUqLCBXZWJDb3JlOjpHZW9sb2NhdGlvbiop
OwogCi0gICAgLy8gRklYTUU6IG1vdmUgdGhpcyB0byB3ZWJraXRuZXR3b3JrcmVxdWVzdC5oIG9u
Y2UgdGhlIEFQSSBpcyBhZ3JlZWQgdXBvbi4KLSAgICBXRUJLSVRfQVBJIFNvdXBNZXNzYWdlKgot
ICAgIHdlYmtpdF9uZXR3b3JrX3JlcXVlc3RfZ2V0X21lc3NhZ2UoV2ViS2l0TmV0d29ya1JlcXVl
c3QqIHJlcXVlc3QpOwotCiAgICAgLy8gRklYTUU6IE1vdmUgdGhlc2UgdG8gd2Via2l0d2ViZnJh
bWUuaCBvbmNlIHRoZWlyIEFQSSBoYXMgYmVlbiBkaXNjdXNzZWQuCiAKICAgICBXRUJLSVRfQVBJ
IHZvaWQKZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYmRhdGFzb3VyY2Uu
Y3BwIGIvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2ViZGF0YXNvdXJjZS5jcHAKaW5kZXggMTUw
NDE1Yi4uNzI5ODFmMCAxMDA2NDQKLS0tIGEvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2ViZGF0
YXNvdXJjZS5jcHAKKysrIGIvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2ViZGF0YXNvdXJjZS5j
cHAKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlICJTaGFyZWRCdWZmZXIuaCIKICNpbmNsdWRl
ICJTdWJzdGl0dXRlRGF0YS5oIgogI2luY2x1ZGUgInJ1bnRpbWUvSW5pdGlhbGl6ZVRocmVhZGlu
Zy5oIgorI2luY2x1ZGUgIndlYmtpdG5ldHdvcmtyZXF1ZXN0cHJpdmF0ZS5oIgogI2luY2x1ZGUg
IndlYmtpdHByaXZhdGUuaCIKICNpbmNsdWRlICJ3ZWJraXR3ZWJmcmFtZXByaXZhdGUuaCIKICNp
bmNsdWRlICJ3ZWJraXR3ZWJyZXNvdXJjZS5oIgpAQCAtMjQzLDcgKzI0NCw3IEBAIFdlYktpdE5l
dHdvcmtSZXF1ZXN0KiB3ZWJraXRfd2ViX2RhdGFfc291cmNlX2dldF9pbml0aWFsX3JlcXVlc3Qo
V2ViS2l0V2ViRGF0YVNvCiAgICAgaWYgKHByaXYtPmluaXRpYWxSZXF1ZXN0KQogICAgICAgICBn
X29iamVjdF91bnJlZihwcml2LT5pbml0aWFsUmVxdWVzdCk7CiAKLSAgICBwcml2LT5pbml0aWFs
UmVxdWVzdCA9IHdlYmtpdF9uZXR3b3JrX3JlcXVlc3RfbmV3X3dpdGhfY29yZV9yZXF1ZXN0KHJl
cXVlc3QpOworICAgIHByaXYtPmluaXRpYWxSZXF1ZXN0ID0ga2l0TmV3KHJlcXVlc3QpOwogICAg
IHJldHVybiBwcml2LT5pbml0aWFsUmVxdWVzdDsKIH0KIApAQCAtMjc2LDcgKzI3Nyw3IEBAIFdl
YktpdE5ldHdvcmtSZXF1ZXN0KiB3ZWJraXRfd2ViX2RhdGFfc291cmNlX2dldF9yZXF1ZXN0KFdl
YktpdFdlYkRhdGFTb3VyY2UqIHdlCiAgICAgIGlmIChwcml2LT5uZXR3b3JrUmVxdWVzdCkKICAg
ICAgICAgIGdfb2JqZWN0X3VucmVmKHByaXYtPm5ldHdvcmtSZXF1ZXN0KTsKIAotICAgICBwcml2
LT5uZXR3b3JrUmVxdWVzdCA9IHdlYmtpdF9uZXR3b3JrX3JlcXVlc3RfbmV3X3dpdGhfY29yZV9y
ZXF1ZXN0KHJlcXVlc3QpOworICAgICBwcml2LT5uZXR3b3JrUmVxdWVzdCA9IGtpdE5ldyhyZXF1
ZXN0KTsKICAgICAgcmV0dXJuIHByaXYtPm5ldHdvcmtSZXF1ZXN0OwogfQogCmRpZmYgLS1naXQg
YS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJmcmFtZS5jcHAgYi9XZWJLaXQvZ3RrL3dlYmtp
dC93ZWJraXR3ZWJmcmFtZS5jcHAKaW5kZXggMzZmYzIzMC4uMmZhMjViNSAxMDA2NDQKLS0tIGEv
V2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2ViZnJhbWUuY3BwCisrKyBiL1dlYktpdC9ndGsvd2Vi
a2l0L3dlYmtpdHdlYmZyYW1lLmNwcApAQCAtNTEsNiArNTEsNyBAQAogI2luY2x1ZGUgIlNjcmlw
dENvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJTdWJzdGl0dXRlRGF0YS5oIgogI2luY2x1ZGUgIndl
YmtpdGVudW10eXBlcy5oIgorI2luY2x1ZGUgIndlYmtpdG5ldHdvcmtyZXF1ZXN0cHJpdmF0ZS5o
IgogI2luY2x1ZGUgIndlYmtpdG1hcnNoYWwuaCIKICNpbmNsdWRlICJ3ZWJraXRwcml2YXRlLmgi
CiAjaW5jbHVkZSAid2Via2l0d2ViZnJhbWVwcml2YXRlLmgiCi0tIAoxLjcuMi4zCgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>76103</attachid>
            <date>2010-12-09 12:11:41 -0800</date>
            <delta_ts>2010-12-10 07:21:49 -0800</delta_ts>
            <desc>split web inspector</desc>
            <filename>0001-split-webinspector.patch</filename>
            <type>text/plain</type>
            <size>9546</size>
            <attacher name="Gustavo Noronha (kov)">gustavo</attacher>
            
              <data encoding="base64">RnJvbSA2MDVkNDcyMGZjYzNkOTg5ZmJhZGIwMjAwODZmNDc1N2Q1MGI2YWVlIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBHdXN0YXZvIE5vcm9uaGEgU2lsdmEgPGduc0Bnbm9tZS5vcmc+
CkRhdGU6IFRodSwgOSBEZWMgMjAxMCAyMToxMToxMyArMDEwMApTdWJqZWN0OiBbUEFUQ0hdIHNw
bGl0IHdlYmluc3BlY3RvcgoKLS0tCiBXZWJLaXQvZ3RrL0NoYW5nZUxvZyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgfCAgIDE5ICsrKysrKysrKysKIFdlYktpdC9ndGsvV2ViQ29yZVN1cHBv
cnQvSW5zcGVjdG9yQ2xpZW50R3RrLmNwcCB8ICAgIDEgKwogV2ViS2l0L2d0ay93ZWJraXQvd2Vi
a2l0cHJpdmF0ZS5jcHAgICAgICAgICAgICAgIHwgICAzOSAtLS0tLS0tLS0tLS0tLS0tLS0tLQog
V2ViS2l0L2d0ay93ZWJraXQvd2Via2l0cHJpdmF0ZS5oICAgICAgICAgICAgICAgIHwgICAxNyAt
LS0tLS0tLS0KIFdlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYmluc3BlY3Rvci5jcHAgICAgICAg
ICB8ICAgNDIgKysrKysrKysrKysrKysrKysrKysrLQogV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0
d2ViaW5zcGVjdG9ycHJpdmF0ZS5oICAgIHwgICA0MiArKysrKysrKysrKysrKysrKysrKysrCiBX
ZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcCAgICAgICAgICAgICAgfCAgICAxICsK
IDcgZmlsZXMgY2hhbmdlZCwgMTA0IGluc2VydGlvbnMoKyksIDU3IGRlbGV0aW9ucygtKQogY3Jl
YXRlIG1vZGUgMTAwNjQ0IFdlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYmluc3BlY3RvcnByaXZh
dGUuaAoKZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsvQ2hhbmdlTG9nIGIvV2ViS2l0L2d0ay9DaGFu
Z2VMb2cKaW5kZXggNmMwYjQxNC4uNzdiMGUxOSAxMDA2NDQKLS0tIGEvV2ViS2l0L2d0ay9DaGFu
Z2VMb2cKKysrIGIvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKQEAgLTUsNiArNSwyNSBAQAogICAgICAg
ICBbR1RLXSBTcGxpdCB3ZWJraXRwcml2YXRlLntjcHAsaH0gaW4gbW9yZSBtYW5hZ2VhYmxlIGNo
dW5rcwogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTA2
OTgKIAorICAgICAgICBTcGxpdCBwcml2YXRlIGJpdHMgb2YgV2ViS2l0V2ViSW5zcGVjdG9yIHRv
IGl0cyBvd24gcHJpdmF0ZQorICAgICAgICBoZWFkZXIsIGFuZCB0byBpdHMgaW1wbGVtZW50YXRp
b24gZmlsZS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0luc3BlY3RvckNsaWVudEd0ay5j
cHA6CisgICAgICAgICogd2Via2l0L3dlYmtpdHByaXZhdGUuY3BwOgorICAgICAgICAqIHdlYmtp
dC93ZWJraXRwcml2YXRlLmg6CisgICAgICAgICogd2Via2l0L3dlYmtpdHdlYmluc3BlY3Rvci5j
cHA6CisgICAgICAgIChpc1NjaGVtYUF2YWlsYWJsZSk6CisgICAgICAgIChpbnNwZWN0b3JHU2V0
dGluZ3MpOgorICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJpbnNwZWN0b3Jwcml2YXRlLmg6IEFk
ZGVkLgorICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcDoKKworMjAxMC0xMi0wOSAg
R3VzdGF2byBOb3JvbmhhIFNpbHZhICA8Z3VzdGF2by5ub3JvbmhhQGNvbGxhYm9yYS5jby51az4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbR1RLXSBT
cGxpdCB3ZWJraXRwcml2YXRlLntjcHAsaH0gaW4gbW9yZSBtYW5hZ2VhYmxlIGNodW5rcworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTA2OTgKKwogICAg
ICAgICBTcGxpdCBwcml2YXRlIGJpdHMgb2YgV2ViS2l0TmV0d29ya1JlcXVlc3QgdG8gaXRzIG93
biBwcml2YXRlCiAgICAgICAgIGhlYWRlciwgYW5kIHRvIGl0cyBpbXBsZW1lbnRhdGlvbiBmaWxl
LiBBbHNvIHRha2UgdGhlIG9wcG9ydHVuaXR5CiAgICAgICAgIHRvIHVzZSBQbGF0Zm9ybVJlZlB0
ciBmb3IgTmV0d29ya1JlcXVlc3Qgd2hlcmUgaXQgbWFrZXMgc2Vuc2UsIGFuZApkaWZmIC0tZ2l0
IGEvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9JbnNwZWN0b3JDbGllbnRHdGsuY3BwIGIvV2Vi
S2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9JbnNwZWN0b3JDbGllbnRHdGsuY3BwCmluZGV4IDBiZGI5
OGYuLmMyNjkwNzggMTAwNjQ0Ci0tLSBhL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvSW5zcGVj
dG9yQ2xpZW50R3RrLmNwcAorKysgYi9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0luc3BlY3Rv
ckNsaWVudEd0ay5jcHAKQEAgLTI3LDYgKzI3LDcgQEAKICNpbmNsdWRlICJ3ZWJraXRwcml2YXRl
LmgiCiAjaW5jbHVkZSAid2Via2l0dmVyc2lvbi5oIgogI2luY2x1ZGUgIndlYmtpdHdlYmluc3Bl
Y3Rvci5oIgorI2luY2x1ZGUgIndlYmtpdHdlYmluc3BlY3RvcnByaXZhdGUuaCIKICNpbmNsdWRl
ICJ3ZWJraXR3ZWJ2aWV3LmgiCiAjaW5jbHVkZSAid2Via2l0d2Vidmlld3ByaXZhdGUuaCIKICNp
bmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CmRpZmYgLS1naXQgYS9XZWJLaXQvZ3RrL3dlYmtp
dC93ZWJraXRwcml2YXRlLmNwcCBiL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHByaXZhdGUuY3Bw
CmluZGV4IDYwNWY1ZGYuLjMzMjVjMzIgMTAwNjQ0Ci0tLSBhL1dlYktpdC9ndGsvd2Via2l0L3dl
YmtpdHByaXZhdGUuY3BwCisrKyBiL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHByaXZhdGUuY3Bw
CkBAIC0xNzEsNDUgKzE3MSw2IEBAIHN0YXRpYyB2b2lkIGNsb3NlSWNvbkRhdGFiYXNlT25FeGl0
KCkKICAgICBpY29uRGF0YWJhc2UoKS0+Y2xvc2UoKTsKIH0KIAotI2lmZGVmIEhBVkVfR1NFVFRJ
TkdTCi1zdGF0aWMgYm9vbCBpc1NjaGVtYUF2YWlsYWJsZShjb25zdCBjaGFyKiBzY2hlbWFJRCkK
LXsKLSAgICBjb25zdCBjaGFyKiBjb25zdCogYXZhaWxhYmxlU2NoZW1hcyA9IGdfc2V0dGluZ3Nf
bGlzdF9zY2hlbWFzKCk7Ci0gICAgY2hhciogY29uc3QqIGl0ZXIgPSBjb25zdF9jYXN0PGNoYXIq
IGNvbnN0Kj4oYXZhaWxhYmxlU2NoZW1hcyk7Ci0KLSAgICB3aGlsZSAoKml0ZXIpIHsKLSAgICAg
ICAgaWYgKGdfc3RyX2VxdWFsKHNjaGVtYUlELCAqaXRlcikpCi0gICAgICAgICAgICByZXR1cm4g
dHJ1ZTsKLSAgICAgICAgaXRlcisrOwotICAgIH0KLQotICAgIHJldHVybiBmYWxzZTsKLX0KLQot
R1NldHRpbmdzKiBpbnNwZWN0b3JHU2V0dGluZ3MoKQotewotICAgIHN0YXRpYyBHU2V0dGluZ3Mq
IHNldHRpbmdzID0gMDsKLQotICAgIGlmIChzZXR0aW5ncykKLSAgICAgICAgcmV0dXJuIHNldHRp
bmdzOwotCi0gICAgY29uc3QgZ2NoYXIqIHNjaGVtYUlEID0gIm9yZy53ZWJraXRndGstIldFQktJ
VEdUS19BUElfVkVSU0lPTl9TVFJJTkciLmluc3BlY3RvciI7Ci0KLSAgICAvLyBVbmZvcnR1bmF0
ZWx5IEdTZXR0aW5ncyB3aWxsIGFib3J0IHRoZSBwcm9jZXNzIGV4ZWN1dGlvbiBpZiB0aGUKLSAg
ICAvLyBzY2hlbWEgaXMgbm90IGluc3RhbGxlZCwgd2hpY2ggaXMgdGhlIGNhc2UgZm9yIHdoZW4g
cnVubmluZwotICAgIC8vIHRlc3RzLCBvciBldmVuIHRoZSBpbnRyb3NwZWN0aW9uIGR1bXAgYXQg
YnVpbGQgdGltZSwgc28gY2hlY2sKLSAgICAvLyBpZiB3ZSBoYXZlIHRoZSBzY2hlbWEgYmVmb3Jl
IHRyeWluZyB0byBpbml0aWFsaXplIGl0LgotICAgIGlmICghaXNTY2hlbWFBdmFpbGFibGUoc2No
ZW1hSUQpKSB7Ci0gICAgICAgIGdfd2FybmluZygiR1NldHRpbmdzIHNjaGVtYSBub3QgZm91bmQg
LSBzZXR0aW5ncyB3aWxsIG5vdCBiZSB1c2VkIG9yIHNhdmVkLiIpOwotICAgICAgICByZXR1cm4g
MDsKLSAgICB9Ci0KLSAgICBzZXR0aW5ncyA9IGdfc2V0dGluZ3NfbmV3KHNjaGVtYUlEKTsKLQot
ICAgIHJldHVybiBzZXR0aW5nczsKLX0KLSNlbmRpZgotCiB2b2lkIHdlYmtpdF9pbml0KCkKIHsK
ICAgICBzdGF0aWMgYm9vbCBpc0luaXRpYWxpemVkID0gZmFsc2U7CmRpZmYgLS1naXQgYS9XZWJL
aXQvZ3RrL3dlYmtpdC93ZWJraXRwcml2YXRlLmggYi9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRw
cml2YXRlLmgKaW5kZXggOWU2ZWE4Yy4uODY2MDMzYiAxMDA2NDQKLS0tIGEvV2ViS2l0L2d0ay93
ZWJraXQvd2Via2l0cHJpdmF0ZS5oCisrKyBiL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHByaXZh
dGUuaApAQCAtNTMsNyArNTMsNiBAQAogI2luY2x1ZGUgIkdPd25QdHIuaCIKICNpbmNsdWRlICJH
ZW9sb2NhdGlvbi5oIgogI2luY2x1ZGUgIkhpc3RvcnlJdGVtLmgiCi0jaW5jbHVkZSAiSW5zcGVj
dG9yQ2xpZW50R3RrLmgiCiAjaW5jbHVkZSAiSW50UG9pbnQuaCIKICNpbmNsdWRlICJJbnRSZWN0
LmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXJDbGllbnQuaCIKQEAgLTEwNCwxMCArMTAzLDYgQEAg
bmFtZXNwYWNlIFdlYktpdCB7CiBleHRlcm4gIkMiIHsKICAgICB2b2lkIHdlYmtpdF9pbml0KCk7
CiAKLSNpZmRlZiBIQVZFX0dTRVRUSU5HUwotICAgIEdTZXR0aW5ncyogaW5zcGVjdG9yR1NldHRp
bmdzKCk7Ci0jZW5kaWYKLQogI2RlZmluZSBXRUJLSVRfUEFSQU1fUkVBREFCTEUgKChHUGFyYW1G
bGFncykoR19QQVJBTV9SRUFEQUJMRXxHX1BBUkFNX1NUQVRJQ19OQU1FfEdfUEFSQU1fU1RBVElD
X05JQ0t8R19QQVJBTV9TVEFUSUNfQkxVUkIpKQogI2RlZmluZSBXRUJLSVRfUEFSQU1fUkVBRFdS
SVRFICgoR1BhcmFtRmxhZ3MpKEdfUEFSQU1fUkVBRFdSSVRFfEdfUEFSQU1fU1RBVElDX05BTUV8
R19QQVJBTV9TVEFUSUNfTklDS3xHX1BBUkFNX1NUQVRJQ19CTFVSQikpCiAKQEAgLTE1OCwxOCAr
MTUzLDYgQEAgZXh0ZXJuICJDIiB7CiAKICAgICAvLyBlbmQgV2ViS2l0V2ViUmVzb3VyY2UgcHJp
dmF0ZQogCi0gICAgdm9pZAotICAgIHdlYmtpdF93ZWJfaW5zcGVjdG9yX3NldF9pbnNwZWN0b3Jf
Y2xpZW50KFdlYktpdFdlYkluc3BlY3RvciosIFdlYkNvcmU6OlBhZ2UqKTsKLQotICAgIHZvaWQK
LSAgICB3ZWJraXRfd2ViX2luc3BlY3Rvcl9zZXRfd2ViX3ZpZXcoV2ViS2l0V2ViSW5zcGVjdG9y
ICp3ZWJfaW5zcGVjdG9yLCBXZWJLaXRXZWJWaWV3ICp3ZWJfdmlldyk7Ci0KLSAgICB2b2lkCi0g
ICAgd2Via2l0X3dlYl9pbnNwZWN0b3Jfc2V0X2luc3BlY3RlZF91cmkoV2ViS2l0V2ViSW5zcGVj
dG9yKiB3ZWJfaW5zcGVjdG9yLCBjb25zdCBnY2hhciogaW5zcGVjdGVkX3VyaSk7Ci0KLSAgICBX
RUJLSVRfQVBJIHZvaWQKLSAgICB3ZWJraXRfd2ViX2luc3BlY3Rvcl9leGVjdXRlX3NjcmlwdChX
ZWJLaXRXZWJJbnNwZWN0b3IqIGluc3BlY3RvciwgbG9uZyBjYWxsSWQsIGNvbnN0IGdjaGFyKiBz
Y3JpcHQpOwotCiAKICAgICBXZWJLaXRXZWJXaW5kb3dGZWF0dXJlcyoKICAgICB3ZWJraXRfd2Vi
X3dpbmRvd19mZWF0dXJlc19uZXdfZnJvbV9jb3JlX2ZlYXR1cmVzIChjb25zdCBXZWJDb3JlOjpX
aW5kb3dGZWF0dXJlcyYgZmVhdHVyZXMpOwpkaWZmIC0tZ2l0IGEvV2ViS2l0L2d0ay93ZWJraXQv
d2Via2l0d2ViaW5zcGVjdG9yLmNwcCBiL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYmluc3Bl
Y3Rvci5jcHAKaW5kZXggNjI2ZGYzMi4uZTdhODI5ZiAxMDA2NDQKLS0tIGEvV2ViS2l0L2d0ay93
ZWJraXQvd2Via2l0d2ViaW5zcGVjdG9yLmNwcAorKysgYi9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJr
aXR3ZWJpbnNwZWN0b3IuY3BwCkBAIC0yNCw3ICsyNCw2IEBACiAKICNpbmNsdWRlICJGb2N1c0Nv
bnRyb2xsZXIuaCIKICNpbmNsdWRlICJGcmFtZS5oIgotI2luY2x1ZGUgPGdsaWIvZ2kxOG4tbGli
Lmg+CiAjaW5jbHVkZSAiSGl0VGVzdFJlcXVlc3QuaCIKICNpbmNsdWRlICJIaXRUZXN0UmVzdWx0
LmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yQ2xpZW50R3RrLmgiCkBAIC0zNSw2ICszNCw4IEBACiAj
aW5jbHVkZSAid2Via2l0L1dlYktpdERPTU5vZGVQcml2YXRlLmgiCiAjaW5jbHVkZSAid2Via2l0
bWFyc2hhbC5oIgogI2luY2x1ZGUgIndlYmtpdHByaXZhdGUuaCIKKyNpbmNsdWRlICJ3ZWJraXR3
ZWJpbnNwZWN0b3Jwcml2YXRlLmgiCisjaW5jbHVkZSA8Z2xpYi9naTE4bi1saWIuaD4KIAogLyoq
CiAgKiBTRUNUSU9OOndlYmtpdHdlYmluc3BlY3RvcgpAQCAtNTc4LDMgKzU3OSw0MiBAQCB2b2lk
IHdlYmtpdF93ZWJfaW5zcGVjdG9yX2V4ZWN1dGVfc2NyaXB0KFdlYktpdFdlYkluc3BlY3Rvciog
d2ViSW5zcGVjdG9yLCBsb25nCiAgICAgV2ViS2l0V2ViSW5zcGVjdG9yUHJpdmF0ZSogcHJpdiA9
IHdlYkluc3BlY3Rvci0+cHJpdjsKICAgICBwcml2LT5wYWdlLT5pbnNwZWN0b3JDb250cm9sbGVy
KCktPmV2YWx1YXRlRm9yVGVzdEluRnJvbnRlbmQoY2FsbElkLCBzY3JpcHQpOwogfQorCisjaWZk
ZWYgSEFWRV9HU0VUVElOR1MKK3N0YXRpYyBib29sIGlzU2NoZW1hQXZhaWxhYmxlKGNvbnN0IGNo
YXIqIHNjaGVtYUlEKQoreworICAgIGNvbnN0IGNoYXIqIGNvbnN0KiBhdmFpbGFibGVTY2hlbWFz
ID0gZ19zZXR0aW5nc19saXN0X3NjaGVtYXMoKTsKKyAgICBjaGFyKiBjb25zdCogaXRlciA9IGNv
bnN0X2Nhc3Q8Y2hhciogY29uc3QqPihhdmFpbGFibGVTY2hlbWFzKTsKKworICAgIHdoaWxlICgq
aXRlcikgeworICAgICAgICBpZiAoZ19zdHJfZXF1YWwoc2NoZW1hSUQsICppdGVyKSkKKyAgICAg
ICAgICAgIHJldHVybiB0cnVlOworICAgICAgICBpdGVyKys7CisgICAgfQorCisgICAgcmV0dXJu
IGZhbHNlOworfQorCitHU2V0dGluZ3MqIGluc3BlY3RvckdTZXR0aW5ncygpCit7CisgICAgc3Rh
dGljIEdTZXR0aW5ncyogc2V0dGluZ3MgPSAwOworCisgICAgaWYgKHNldHRpbmdzKQorICAgICAg
ICByZXR1cm4gc2V0dGluZ3M7CisKKyAgICBjb25zdCBnY2hhciogc2NoZW1hSUQgPSAib3JnLndl
YmtpdGd0ay0iV0VCS0lUR1RLX0FQSV9WRVJTSU9OX1NUUklORyIuaW5zcGVjdG9yIjsKKworICAg
IC8vIFVuZm9ydHVuYXRlbHkgR1NldHRpbmdzIHdpbGwgYWJvcnQgdGhlIHByb2Nlc3MgZXhlY3V0
aW9uIGlmIHRoZQorICAgIC8vIHNjaGVtYSBpcyBub3QgaW5zdGFsbGVkLCB3aGljaCBpcyB0aGUg
Y2FzZSBmb3Igd2hlbiBydW5uaW5nCisgICAgLy8gdGVzdHMsIG9yIGV2ZW4gdGhlIGludHJvc3Bl
Y3Rpb24gZHVtcCBhdCBidWlsZCB0aW1lLCBzbyBjaGVjaworICAgIC8vIGlmIHdlIGhhdmUgdGhl
IHNjaGVtYSBiZWZvcmUgdHJ5aW5nIHRvIGluaXRpYWxpemUgaXQuCisgICAgaWYgKCFpc1NjaGVt
YUF2YWlsYWJsZShzY2hlbWFJRCkpIHsKKyAgICAgICAgZ193YXJuaW5nKCJHU2V0dGluZ3Mgc2No
ZW1hIG5vdCBmb3VuZCAtIHNldHRpbmdzIHdpbGwgbm90IGJlIHVzZWQgb3Igc2F2ZWQuIik7Cisg
ICAgICAgIHJldHVybiAwOworICAgIH0KKworICAgIHNldHRpbmdzID0gZ19zZXR0aW5nc19uZXco
c2NoZW1hSUQpOworCisgICAgcmV0dXJuIHNldHRpbmdzOworfQorI2VuZGlmCmRpZmYgLS1naXQg
YS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJpbnNwZWN0b3Jwcml2YXRlLmggYi9XZWJLaXQv
Z3RrL3dlYmtpdC93ZWJraXR3ZWJpbnNwZWN0b3Jwcml2YXRlLmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMC4uMzM5MmQ2ZAotLS0gL2Rldi9udWxsCisrKyBiL1dlYktpdC9ndGsv
d2Via2l0L3dlYmtpdHdlYmluc3BlY3RvcnByaXZhdGUuaApAQCAtMCwwICsxLDQyIEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDA3LCAyMDA4LCAyMDA5IEhvbGdlciBIYW5zIFBldGVyIEZyZXl0
aGVyCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggSmFuIE1pY2hhZWwgQy4gQWxvbnpvCisgKiBDb3B5
cmlnaHQgKEMpIDIwMDggQ29sbGFib3JhIEx0ZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMCBJZ2Fs
aWEgUy5MLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJl
ZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhl
IEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0
aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUg
TGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBU
aGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVz
ZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBs
aWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBM
aWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVk
IGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxv
bmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwg
d3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5r
bGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4K
KyAqLworCisjaWZuZGVmIHdlYmtpdHdlYmluc3BlY3RvcnByaXZhdGVfaAorI2RlZmluZSB3ZWJr
aXR3ZWJpbnNwZWN0b3Jwcml2YXRlX2gKKworZXh0ZXJuICJDIiB7CisKKyNpZmRlZiBIQVZFX0dT
RVRUSU5HUworR1NldHRpbmdzKiBpbnNwZWN0b3JHU2V0dGluZ3MoKTsKKyNlbmRpZgorCit2b2lk
IHdlYmtpdF93ZWJfaW5zcGVjdG9yX3NldF9pbnNwZWN0b3JfY2xpZW50KFdlYktpdFdlYkluc3Bl
Y3RvciosIFdlYkNvcmU6OlBhZ2UqKTsKKwordm9pZCB3ZWJraXRfd2ViX2luc3BlY3Rvcl9zZXRf
d2ViX3ZpZXcoV2ViS2l0V2ViSW5zcGVjdG9yKiwgV2ViS2l0V2ViVmlldyopOworCit2b2lkIHdl
YmtpdF93ZWJfaW5zcGVjdG9yX3NldF9pbnNwZWN0ZWRfdXJpKFdlYktpdFdlYkluc3BlY3Rvcios
IGNvbnN0IGdjaGFyKik7CisKK1dFQktJVF9BUEkgdm9pZCB3ZWJraXRfd2ViX2luc3BlY3Rvcl9l
eGVjdXRlX3NjcmlwdChXZWJLaXRXZWJJbnNwZWN0b3IqLCBsb25nLCBjb25zdCBnY2hhciopOwor
Cit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vidmll
dy5jcHAgYi9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcAppbmRleCA0ZjUyODYz
Li5lNGNmMDdmIDEwMDY0NAotLS0gYS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3LmNw
cAorKysgYi9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcApAQCAtODcsNiArODcs
NyBAQAogI2luY2x1ZGUgIndlYmtpdHdlYmZyYW1lcHJpdmF0ZS5oIgogI2luY2x1ZGUgIndlYmtp
dHdlYmhpc3RvcnlpdGVtLmgiCiAjaW5jbHVkZSAid2Via2l0d2ViaW5zcGVjdG9yLmgiCisjaW5j
bHVkZSAid2Via2l0d2ViaW5zcGVjdG9ycHJpdmF0ZS5oIgogI2luY2x1ZGUgIndlYmtpdHdlYnZp
ZXdwcml2YXRlLmgiCiAjaW5jbHVkZSA8Z2RrL2dka2tleXN5bXMuaD4KICNpbmNsdWRlIDxnbGli
L2dpMThuLWxpYi5oPgotLSAKMS43LjIuMwoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>76192</attachid>
            <date>2010-12-10 07:21:55 -0800</date>
            <delta_ts>2010-12-10 10:32:09 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-50698-20101210162153.patch</filename>
            <type>text/plain</type>
            <size>8602</size>
            <attacher name="Gustavo Noronha (kov)">gustavo</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsvQ2hhbmdlTG9nIGIvV2ViS2l0L2d0ay9DaGFuZ2VMb2cK
aW5kZXggNzRjOTMyNTY1NTYzMDBmMGEwODI2YjA1Y2IxMzQzNGY0ZmRkZDE1My4uZjUyMWFhMWMx
N2ZkZjgyMGQwZDVhNGZiZGFjN2EzODA1ZmQxODllMiAxMDA2NDQKLS0tIGEvV2ViS2l0L2d0ay9D
aGFuZ2VMb2cKKysrIGIvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAx
MC0xMi0xMCAgR3VzdGF2byBOb3JvbmhhIFNpbHZhICA8Z3VzdGF2by5ub3JvbmhhQGNvbGxhYm9y
YS5jby51az4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBbR1RLXSBTcGxpdCB3ZWJraXRwcml2YXRlLntjcHAsaH0gaW4gbW9yZSBtYW5hZ2VhYmxlIGNo
dW5rcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTA2
OTgKKworICAgICAgICBTcGxpdCBwcml2YXRlIGJpdHMgb2YgV2ViS2l0V2ViSGlzdG9yeUl0ZW0g
YW5kCisgICAgICAgIFdlYktpdFdlYkJhY2tGb3J3YXJkTGlzdCB0byB0aGVpciBvd24gcHJpdmF0
ZSBoZWFkZXJzLCBhbmQgdG8KKyAgICAgICAgdGhlaXIgaW1wbGVtZW50YXRpb24gZmlsZXMuCisK
KyAgICAgICAgKiB3ZWJraXQvd2Via2l0cHJpdmF0ZS5oOgorICAgICAgICAqIHdlYmtpdC93ZWJr
aXR3ZWJiYWNrZm9yd2FyZGxpc3QuY3BwOgorICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJiYWNr
Zm9yd2FyZGxpc3Rwcml2YXRlLmg6IEFkZGVkLgorICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJo
aXN0b3J5aXRlbS5jcHA6CisgICAgICAgICogd2Via2l0L3dlYmtpdHdlYmhpc3RvcnlpdGVtcHJp
dmF0ZS5oOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJraXQvd2Via2l0d2Vidmlldy5jcHA6CisKIDIw
MTAtMTItMDkgIEd1c3Rhdm8gTm9yb25oYSBTaWx2YSAgPGd1c3Rhdm8ubm9yb25oYUBjb2xsYWJv
cmEuY28udWs+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgTWFydGluIFJvYmluc29uLgpkaWZmIC0t
Z2l0IGEvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0cHJpdmF0ZS5oIGIvV2ViS2l0L2d0ay93ZWJr
aXQvd2Via2l0cHJpdmF0ZS5oCmluZGV4IDdkMTZjNjcyMjIwMjE3YjdjZmRmMDRlNmNlNzU5MTY1
NjM0Y2MwYWEuLjUwZWQ0Mjg4NjQzMjQyMWVhMmIwMzM2MDhkNjljYmY3ZDc5MzUzYmUgMTAwNjQ0
Ci0tLSBhL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHByaXZhdGUuaAorKysgYi9XZWJLaXQvZ3Rr
L3dlYmtpdC93ZWJraXRwcml2YXRlLmgKQEAgLTQyLDE4ICs0MiwxNSBAQAogI2luY2x1ZGUgPHdl
YmtpdC93ZWJraXR3ZWJyZXNvdXJjZS5oPgogI2luY2x1ZGUgPHdlYmtpdC93ZWJraXR3ZWJzZXR0
aW5ncy5oPgogI2luY2x1ZGUgPHdlYmtpdC93ZWJraXR3ZWJ3aW5kb3dmZWF0dXJlcy5oPgotI2lu
Y2x1ZGUgPHdlYmtpdC93ZWJraXR3ZWJiYWNrZm9yd2FyZGxpc3QuaD4KICNpbmNsdWRlIDx3ZWJr
aXQvd2Via2l0bmV0d29ya3JlcXVlc3QuaD4KICNpbmNsdWRlIDx3ZWJraXQvd2Via2l0c2VjdXJp
dHlvcmlnaW4uaD4KIAogI2luY2x1ZGUgIkFyY2hpdmVSZXNvdXJjZS5oIgotI2luY2x1ZGUgIkJh
Y2tGb3J3YXJkTGlzdEltcGwuaCIKICNpbmNsdWRlICJEYXRhT2JqZWN0R3RrLmgiCiAjaW5jbHVk
ZSAiRHJhZ0FjdGlvbnMuaCIKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkdPd25QdHIu
aCIKICNpbmNsdWRlICJHZW9sb2NhdGlvbi5oIgotI2luY2x1ZGUgIkhpc3RvcnlJdGVtLmgiCiAj
aW5jbHVkZSAiSW50UG9pbnQuaCIKICNpbmNsdWRlICJJbnRSZWN0LmgiCiAjaW5jbHVkZSAiRnJh
bWVMb2FkZXJDbGllbnQuaCIKQEAgLTgxLDExICs3OCw2IEBAIG5hbWVzcGFjZSBXZWJLaXQgewog
ICAgIGNsYXNzIERvY3VtZW50TG9hZGVyOwogICAgIGNsYXNzIFBhc3RlYm9hcmRIZWxwZXJHdGs7
CiAKLSAgICBXZWJDb3JlOjpIaXN0b3J5SXRlbSogY29yZShXZWJLaXRXZWJIaXN0b3J5SXRlbSop
OwotICAgIFdlYktpdFdlYkhpc3RvcnlJdGVtKiBraXQoUGFzc1JlZlB0cjxXZWJDb3JlOjpIaXN0
b3J5SXRlbT4pOwotCi0gICAgV2ViQ29yZTo6QmFja0ZvcndhcmRMaXN0SW1wbCogY29yZShXZWJL
aXRXZWJCYWNrRm9yd2FyZExpc3QqKTsKLQogICAgIFdlYktpdFdlYk5hdmlnYXRpb25SZWFzb24g
a2l0KFdlYkNvcmU6Ok5hdmlnYXRpb25UeXBlIHR5cGUpOwogICAgIFdlYkNvcmU6Ok5hdmlnYXRp
b25UeXBlIGNvcmUoV2ViS2l0V2ViTmF2aWdhdGlvblJlYXNvbiByZWFzb24pOwogCkBAIC0xMzks
MjAgKzEzMSw2IEBAIGV4dGVybiAiQyIgewogICAgIFdURjo6U3RyaW5nCiAgICAgd2Via2l0VXNl
ckFnZW50KCk7CiAKLSAgICAvLyBXZWJLaXRXZWJIaXN0b3J5SXRlbSBwcml2YXRlCi0gICAgV2Vi
S2l0V2ViSGlzdG9yeUl0ZW0qCi0gICAgd2Via2l0X3dlYl9oaXN0b3J5X2l0ZW1fbmV3X3dpdGhf
Y29yZV9pdGVtKFBhc3NSZWZQdHI8V2ViQ29yZTo6SGlzdG9yeUl0ZW0+IGhpc3RvcnlJdGVtKTsK
LQotICAgIFdFQktJVF9BUEkgR19DT05TVF9SRVRVUk4gZ2NoYXIqCi0gICAgd2Via2l0X3dlYl9o
aXN0b3J5X2l0ZW1fZ2V0X3RhcmdldChXZWJLaXRXZWJIaXN0b3J5SXRlbSopOwotCi0gICAgV0VC
S0lUX0FQSSBnYm9vbGVhbgotICAgIHdlYmtpdF93ZWJfaGlzdG9yeV9pdGVtX2lzX3RhcmdldF9p
dGVtKFdlYktpdFdlYkhpc3RvcnlJdGVtKik7Ci0KLSAgICBXRUJLSVRfQVBJIEdMaXN0KgotICAg
IHdlYmtpdF93ZWJfaGlzdG9yeV9pdGVtX2dldF9jaGlsZHJlbihXZWJLaXRXZWJIaXN0b3J5SXRl
bSopOwotICAgIC8vIGVuZCBXZWJLaXRXZWJIaXN0b3J5SXRlbSBwcml2YXRlCi0KICAgICAvLyBX
ZWJLaXRXZWJSZXNvdXJjZSBwcml2YXRlCiAgICAgI2RlZmluZSBXRUJLSVRfV0VCX1JFU09VUkNF
X0dFVF9QUklWQVRFKG9iaikgICAgICAgIChHX1RZUEVfSU5TVEFOQ0VfR0VUX1BSSVZBVEUoKG9i
aiksIFdFQktJVF9UWVBFX1dFQl9SRVNPVVJDRSwgV2ViS2l0V2ViUmVzb3VyY2VQcml2YXRlKSkK
ICAgICBzdHJ1Y3QgX1dlYktpdFdlYlJlc291cmNlUHJpdmF0ZSB7CkBAIC0yMDQsOSArMTgyLDYg
QEAgZXh0ZXJuICJDIiB7CiAgICAgR1NMaXN0KgogICAgIHdlYmtpdF93ZWJfc2V0dGluZ3NfZ2V0
X2VuY2hhbnRfZGljdHMoV2ViS2l0V2ViVmlldyogd2ViX3ZpZXcpOwogCi0gICAgR0hhc2hUYWJs
ZSoKLSAgICB3ZWJraXRfaGlzdG9yeV9pdGVtcyh2b2lkKTsKLQogICAgIFdFQktJVF9BUEkgdm9p
ZAogICAgIHdlYmtpdF9hcHBsaWNhdGlvbl9jYWNoZV9zZXRfbWF4aW11bV9zaXplKHVuc2lnbmVk
IGxvbmcgbG9uZyBzaXplKTsKIApkaWZmIC0tZ2l0IGEvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0
d2ViYmFja2ZvcndhcmRsaXN0LmNwcCBiL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYmJhY2tm
b3J3YXJkbGlzdC5jcHAKaW5kZXggNTQxYjBlMjNiOWUzY2NjNzdlZmU5NDllMjJjOGU2MGU0NThj
MDI3ZC4uY2FlZGNhM2QxM2I3N2Q2NzJjNDlhMmFkYjliMDA2NDc3ZDBjZGYwZCAxMDA2NDQKLS0t
IGEvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2ViYmFja2ZvcndhcmRsaXN0LmNwcAorKysgYi9X
ZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJiYWNrZm9yd2FyZGxpc3QuY3BwCkBAIC0yNCw3ICsy
NCw5IEBACiAjaW5jbHVkZSAiQmFja0ZvcndhcmRMaXN0SW1wbC5oIgogI2luY2x1ZGUgIkhpc3Rv
cnlJdGVtLmgiCiAjaW5jbHVkZSAid2Via2l0cHJpdmF0ZS5oIgorI2luY2x1ZGUgIndlYmtpdHdl
YmJhY2tmb3J3YXJkbGlzdHByaXZhdGUuaCIKICNpbmNsdWRlICJ3ZWJraXR3ZWJoaXN0b3J5aXRl
bS5oIgorI2luY2x1ZGUgIndlYmtpdHdlYmhpc3RvcnlpdGVtcHJpdmF0ZS5oIgogI2luY2x1ZGUg
IndlYmtpdHdlYnZpZXcuaCIKICNpbmNsdWRlICJ3ZWJraXR3ZWJ2aWV3cHJpdmF0ZS5oIgogI2lu
Y2x1ZGUgPGdsaWIuaD4KZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYmJh
Y2tmb3J3YXJkbGlzdHByaXZhdGUuaCBiL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYmJhY2tm
b3J3YXJkbGlzdHByaXZhdGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43OTQyNGMwODM1NjdhNTA2NjczNWM5MmQ0
M2E2NGNhMzMwNzM5NWYyCi0tLSAvZGV2L251bGwKKysrIGIvV2ViS2l0L2d0ay93ZWJraXQvd2Vi
a2l0d2ViYmFja2ZvcndhcmRsaXN0cHJpdmF0ZS5oCkBAIC0wLDAgKzEsMzQgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMDcsIDIwMDgsIDIwMDkgSG9sZ2VyIEhhbnMgUGV0ZXIgRnJleXRoZXIK
KyAqIENvcHlyaWdodCAoQykgMjAwOCBKYW4gTWljaGFlbCBDLiBBbG9uem8KKyAqIENvcHlyaWdo
dCAoQykgMjAwOCBDb2xsYWJvcmEgTHRkLgorICogQ29weXJpZ2h0IChDKSAyMDEwIElnYWxpYSBT
LkwuCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0
cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05V
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBG
cmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNl
bnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMg
bGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVs
LAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQg
d2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vu
c2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBj
b3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3
aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0
ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4g
U3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICov
CisKKyNpZm5kZWYgd2Via2l0d2ViYmFja2ZvcndhcmRsaXN0cHJpdmF0ZV9oCisjZGVmaW5lIHdl
YmtpdHdlYmJhY2tmb3J3YXJkbGlzdHByaXZhdGVfaAorCisjaW5jbHVkZSAiQmFja0ZvcndhcmRM
aXN0SW1wbC5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworV2ViQ29yZTo6QmFja0ZvcndhcmRM
aXN0SW1wbCogY29yZShXZWJLaXRXZWJCYWNrRm9yd2FyZExpc3QqKTsKKworfQorCisjZW5kaWYK
ZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYmhpc3RvcnlpdGVtLmNwcCBi
L1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYmhpc3RvcnlpdGVtLmNwcAppbmRleCBjZTMwNzA0
MmI2NzFmMWI5OWVlZDJlNjkzNTQ3NjkyOTY1MzQ0N2QxLi5hNmQ3MTJiYzk4NjNkNTRmYWQ0N2Y5
MmU2YzU1MTBmNDBlMzAwODY5IDEwMDY0NAotLS0gYS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3
ZWJoaXN0b3J5aXRlbS5jcHAKKysrIGIvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2ViaGlzdG9y
eWl0ZW0uY3BwCkBAIC0yMywxMSArMjMsMTEgQEAKICNpbmNsdWRlICJ3ZWJraXR3ZWJoaXN0b3J5
aXRlbS5oIgogI2luY2x1ZGUgIndlYmtpdHByaXZhdGUuaCIKIAotI2luY2x1ZGUgPGdsaWIuaD4K
LSNpbmNsdWRlIDxnbGliL2dpMThuLWxpYi5oPgotCiAjaW5jbHVkZSAiSGlzdG9yeUl0ZW0uaCIK
ICNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgorI2luY2x1ZGUgIndlYmtpdHdlYmhpc3Rvcnlp
dGVtcHJpdmF0ZS5oIgorI2luY2x1ZGUgPGdsaWIuaD4KKyNpbmNsdWRlIDxnbGliL2dpMThuLWxp
Yi5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KIAogLyoqCmRpZmYgLS1naXQgYS9X
ZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJoaXN0b3J5aXRlbXByaXZhdGUuaCBiL1dlYktpdC9n
dGsvd2Via2l0L3dlYmtpdHdlYmhpc3RvcnlpdGVtcHJpdmF0ZS5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIyYjUw
ZWUzYzk1NjhlZGRlNGFmM2NjOWI3OGQzMmI2OWYwZjdiNzQKLS0tIC9kZXYvbnVsbAorKysgYi9X
ZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJoaXN0b3J5aXRlbXByaXZhdGUuaApAQCAtMCwwICsx
LDQ5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA3LCAyMDA4LCAyMDA5IEhvbGdlciBIYW5z
IFBldGVyIEZyZXl0aGVyCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggSmFuIE1pY2hhZWwgQy4gQWxv
bnpvCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggQ29sbGFib3JhIEx0ZC4KKyAqIENvcHlyaWdodCAo
QykgMjAxMCBJZ2FsaWEgUy5MLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJl
OyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUg
dGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1
Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNp
b24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lv
bi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBp
dCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBl
dmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5l
cmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBo
YXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGlj
ZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJ
Qi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIElu
Yy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEw
LTEzMDEsIFVTQS4KKyAqLworCisjaWZuZGVmIHdlYmtpdHdlYmhpc3RvcnlpdGVtcHJpdmF0ZV9o
CisjZGVmaW5lIHdlYmtpdHdlYmhpc3RvcnlpdGVtcHJpdmF0ZV9oCisKKyNpbmNsdWRlICJIaXN0
b3J5SXRlbS5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworV2ViQ29yZTo6SGlzdG9yeUl0ZW0q
IGNvcmUoV2ViS2l0V2ViSGlzdG9yeUl0ZW0qKTsKK1dlYktpdFdlYkhpc3RvcnlJdGVtKiBraXQo
UGFzc1JlZlB0cjxXZWJDb3JlOjpIaXN0b3J5SXRlbT4pOworCit9CisKK2V4dGVybiAiQyIgewor
CitHSGFzaFRhYmxlKiB3ZWJraXRfaGlzdG9yeV9pdGVtcygpOworCitXZWJLaXRXZWJIaXN0b3J5
SXRlbSogd2Via2l0X3dlYl9oaXN0b3J5X2l0ZW1fbmV3X3dpdGhfY29yZV9pdGVtKFBhc3NSZWZQ
dHI8V2ViQ29yZTo6SGlzdG9yeUl0ZW0+KTsKKworV0VCS0lUX0FQSSBHX0NPTlNUX1JFVFVSTiBn
Y2hhciogd2Via2l0X3dlYl9oaXN0b3J5X2l0ZW1fZ2V0X3RhcmdldChXZWJLaXRXZWJIaXN0b3J5
SXRlbSopOworCitXRUJLSVRfQVBJIGdib29sZWFuIHdlYmtpdF93ZWJfaGlzdG9yeV9pdGVtX2lz
X3RhcmdldF9pdGVtKFdlYktpdFdlYkhpc3RvcnlJdGVtKik7CisKK1dFQktJVF9BUEkgR0xpc3Qq
IHdlYmtpdF93ZWJfaGlzdG9yeV9pdGVtX2dldF9jaGlsZHJlbihXZWJLaXRXZWJIaXN0b3J5SXRl
bSopOworCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0
d2Vidmlldy5jcHAgYi9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcAppbmRleCAy
MmRiZGNjZWYyNjAyZDhmMjgzZThjODJlYTVkZjU2YjA1MTBlYTBiLi40ZDUxZDU2NWIyZDBjNWFh
NzA0ODZhYjNjOWU1YmEyYjg4MzUxZjk0IDEwMDY0NAotLS0gYS9XZWJLaXQvZ3RrL3dlYmtpdC93
ZWJraXR3ZWJ2aWV3LmNwcAorKysgYi9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3LmNw
cApAQCAtODcsNiArODcsNyBAQAogI2luY2x1ZGUgIndlYmtpdHdlYmJhY2tmb3J3YXJkbGlzdC5o
IgogI2luY2x1ZGUgIndlYmtpdHdlYmZyYW1lcHJpdmF0ZS5oIgogI2luY2x1ZGUgIndlYmtpdHdl
Ymhpc3RvcnlpdGVtLmgiCisjaW5jbHVkZSAid2Via2l0d2ViaGlzdG9yeWl0ZW1wcml2YXRlLmgi
CiAjaW5jbHVkZSAid2Via2l0d2ViaW5zcGVjdG9yLmgiCiAjaW5jbHVkZSAid2Via2l0d2ViaW5z
cGVjdG9ycHJpdmF0ZS5oIgogI2luY2x1ZGUgIndlYmtpdHdlYnZpZXdwcml2YXRlLmgiCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>76218</attachid>
            <date>2010-12-10 10:32:15 -0800</date>
            <delta_ts>2010-12-31 07:56:10 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-50698-20101210193213.patch</filename>
            <type>text/plain</type>
            <size>53015</size>
            <attacher name="Gustavo Noronha (kov)">gustavo</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsvQ2hhbmdlTG9nIGIvV2ViS2l0L2d0ay9DaGFuZ2VMb2cK
aW5kZXggNzRjOTMyNTY1NTYzMDBmMGEwODI2YjA1Y2IxMzQzNGY0ZmRkZDE1My4uZGNlNGM4ZjIx
ZjYzNmJmOGM3Mjc1ZjdjNmE4ZDZiMjkxM2U2ODc3MyAxMDA2NDQKLS0tIGEvV2ViS2l0L2d0ay9D
aGFuZ2VMb2cKKysrIGIvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1NiBAQAorMjAx
MC0xMi0xMCAgR3VzdGF2byBOb3JvbmhhIFNpbHZhICA8Z3VzdGF2by5ub3JvbmhhQGNvbGxhYm9y
YS5jby51az4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBbR1RLXSBTcGxpdCB3ZWJraXRwcml2YXRlLntjcHAsaH0gaW4gbW9yZSBtYW5hZ2VhYmxlIGNo
dW5rcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTA2
OTgKKworICAgICAgICBTcGxpdCBwcml2YXRlIGJpdHMgb2Ygc2V2ZXJhbCBvYmplY3RzIHRvIHRo
ZWlyIG93biBwcml2YXRlCisgICAgICAgIGhlYWRlcnMsIGFuZCB0byB0aGVpciBpbXBsZW1lbnRh
dGlvbiBmaWxlcy4KKworICAgICAgICAqIEdOVW1ha2VmaWxlLmFtOgorICAgICAgICAqIFdlYkNv
cmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5jcHA6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQv
RWRpdG9yQ2xpZW50R3RrLmNwcDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRl
ckNsaWVudEd0ay5jcHA6CisgICAgICAgIChXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNw
YXRjaFdpbGxTZW5kUmVxdWVzdCk6CisgICAgICAgICogd2Via2l0L3dlYmtpdGRvd25sb2FkLmNw
cDoKKyAgICAgICAgKHdlYmtpdF9kb3dubG9hZF9zZXRfcmVzcG9uc2UpOgorICAgICAgICAqIHdl
YmtpdC93ZWJraXRkb3dubG9hZHByaXZhdGUuaDogQWRkZWQuCisgICAgICAgICogd2Via2l0L3dl
YmtpdGhpdHRlc3RyZXN1bHQuY3BwOgorICAgICAgICAoV2ViS2l0OjpraXQpOgorICAgICAgICAq
IHdlYmtpdC93ZWJraXRoaXR0ZXN0cmVzdWx0cHJpdmF0ZS5oOiBBZGRlZC4KKyAgICAgICAgKiB3
ZWJraXQvd2Via2l0bmV0d29ya3Jlc3BvbnNlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6Y29yZSk6
CisgICAgICAgIChXZWJLaXQ6OmtpdE5ldyk6CisgICAgICAgICogd2Via2l0L3dlYmtpdG5ldHdv
cmtyZXNwb25zZXByaXZhdGUuaDogQWRkZWQuCisgICAgICAgICogd2Via2l0L3dlYmtpdHByaXZh
dGUuY3BwOgorICAgICAgICAqIHdlYmtpdC93ZWJraXRwcml2YXRlLmg6CisgICAgICAgICogd2Vi
a2l0L3dlYmtpdHNlY3VyaXR5b3JpZ2luLmNwcDoKKyAgICAgICAgKHdlYmtpdF9zZWN1cml0eV9v
cmlnaW5fZ2V0X3dlYl9kYXRhYmFzZSk6CisgICAgICAgIChXZWJLaXQ6OmNvcmUpOgorICAgICAg
ICAoV2ViS2l0OjpraXQpOgorICAgICAgICAqIHdlYmtpdC93ZWJraXRzZWN1cml0eW9yaWdpbnBy
aXZhdGUuaDogQWRkZWQuCisgICAgICAgICogd2Via2l0L3dlYmtpdHZpZXdwb3J0YXR0cmlidXRl
cy5jcHA6CisgICAgICAgICogd2Via2l0L3dlYmtpdHZpZXdwb3J0YXR0cmlidXRlc3ByaXZhdGUu
aDogQWRkZWQuCisgICAgICAgICogd2Via2l0L3dlYmtpdHdlYmJhY2tmb3J3YXJkbGlzdC5jcHA6
CisgICAgICAgICogd2Via2l0L3dlYmtpdHdlYmJhY2tmb3J3YXJkbGlzdHByaXZhdGUuaDogQWRk
ZWQuCisgICAgICAgICogd2Via2l0L3dlYmtpdHdlYmRhdGFiYXNlLmNwcDoKKyAgICAgICAgKiB3
ZWJraXQvd2Via2l0d2ViZnJhbWUuY3BwOgorICAgICAgICAod2Via2l0X3dlYl9mcmFtZV9nZXRf
bmV0d29ya19yZXNwb25zZSk6CisgICAgICAgICogd2Via2l0L3dlYmtpdHdlYmhpc3RvcnlpdGVt
LmNwcDoKKyAgICAgICAgKiB3ZWJraXQvd2Via2l0d2ViaGlzdG9yeWl0ZW1wcml2YXRlLmg6IEFk
ZGVkLgorICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJuYXZpZ2F0aW9uYWN0aW9uLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6a2l0KToKKyAgICAgICAgKFdlYktpdDo6Y29yZSk6CisgICAgICAgICog
d2Via2l0L3dlYmtpdHdlYm5hdmlnYXRpb25hY3Rpb25wcml2YXRlLmg6IEFkZGVkLgorICAgICAg
ICAqIHdlYmtpdC93ZWJraXR3ZWJwb2xpY3lkZWNpc2lvbi5jcHA6CisgICAgICAgICogd2Via2l0
L3dlYmtpdHdlYnBvbGljeWRlY2lzaW9ucHJpdmF0ZS5oOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJr
aXQvd2Via2l0d2VicmVzb3VyY2UuY3BwOgorICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJyZXNv
dXJjZXByaXZhdGUuaDogQWRkZWQuCisgICAgICAgICogd2Via2l0L3dlYmtpdHdlYnNldHRpbmdz
LmNwcDoKKyAgICAgICAgKiB3ZWJraXQvd2Via2l0d2Vic2V0dGluZ3Nwcml2YXRlLmg6IEFkZGVk
LgorICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcDoKKwogMjAxMC0xMi0wOSAgR3Vz
dGF2byBOb3JvbmhhIFNpbHZhICA8Z3VzdGF2by5ub3JvbmhhQGNvbGxhYm9yYS5jby51az4KIAog
ICAgICAgICBSZXZpZXdlZCBieSBNYXJ0aW4gUm9iaW5zb24uCmRpZmYgLS1naXQgYS9XZWJLaXQv
Z3RrL0dOVW1ha2VmaWxlLmFtIGIvV2ViS2l0L2d0ay9HTlVtYWtlZmlsZS5hbQppbmRleCA3YWE4
MDgzMGIzYjdhNTFhNDZlMmJjNTUzMzM2NGY4YzNkNTgyMmY3Li5mNDAwN2RiYmY0MGNhMWY2NmRl
MTlkMTU3YTc4YjVhYzk3OWMwZTZlIDEwMDY0NAotLS0gYS9XZWJLaXQvZ3RrL0dOVW1ha2VmaWxl
LmFtCisrKyBiL1dlYktpdC9ndGsvR05VbWFrZWZpbGUuYW0KQEAgLTE2MCwxMiArMTYwLDEyIEBA
IHdlYmtpdGd0a19zb3VyY2VzICs9IFwKIAlXZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0RvY3Vt
ZW50TG9hZGVyR3RrLmggXAogCVdlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRHJhZ0NsaWVudEd0
ay5jcHAgXAogCVdlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRHJhZ0NsaWVudEd0ay5oIFwKKwlX
ZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5jcHAgXAor
CVdlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmggXAog
CVdlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50R3RrLmNwcCBcCiAJV2ViS2l0
L2d0ay9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRHdGsuaCBcCiAJV2ViS2l0L2d0ay9XZWJD
b3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5jcHAgXAogCVdlYktpdC9ndGsvV2ViQ29y
ZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuaCBcCi0JV2ViS2l0L2d0ay9XZWJDb3JlU3Vw
cG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuY3BwIFwKLQlXZWJLaXQvZ3RrL1dlYkNvcmVT
dXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5oIFwKIAlXZWJLaXQvZ3RrL1dlYkNvcmVT
dXBwb3J0L0ZyYW1lTmV0d29ya2luZ0NvbnRleHRHdGsuaCBcCiAJV2ViS2l0L2d0ay9XZWJDb3Jl
U3VwcG9ydC9GdWxsc2NyZWVuVmlkZW9Db250cm9sbGVyLmNwcCBcCiAJV2ViS2l0L2d0ay9XZWJD
b3JlU3VwcG9ydC9GdWxsc2NyZWVuVmlkZW9Db250cm9sbGVyLmggXApAQCAtMTc2LDI2ICsxNzYs
MzAgQEAgd2Via2l0Z3RrX3NvdXJjZXMgKz0gXAogCVdlYktpdC9ndGsvd2Via2l0L3dlYmtpdGFw
cGxpY2F0aW9uY2FjaGUuY3BwIFwKIAlXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRkb3dubG9hZC5j
cHAgXAogCVdlYktpdC9ndGsvd2Via2l0L3dlYmtpdGVycm9yLmNwcCBcCisJV2ViS2l0L2d0ay93
ZWJraXQvd2Via2l0Z2VvbG9jYXRpb25wb2xpY3lkZWNpc2lvbi5jcHAgXAogCVdlYktpdC9ndGsv
d2Via2l0L3dlYmtpdGhpdHRlc3RyZXN1bHQuY3BwIFwKIAlXZWJLaXQvZ3RrL3dlYmtpdC93ZWJr
aXRuZXR3b3JrcmVxdWVzdC5jcHAgXAorCVdlYktpdC9ndGsvd2Via2l0L3dlYmtpdG5ldHdvcmty
ZXF1ZXN0cHJpdmF0ZS5oIFwKIAlXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRuZXR3b3JrcmVzcG9u
c2UuY3BwIFwKKwlXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRuZXR3b3JrcmVzcG9uc2Vwcml2YXRl
LmggXAogCVdlYktpdC9ndGsvd2Via2l0L3dlYmtpdHByaXZhdGUuY3BwIFwKIAlXZWJLaXQvZ3Rr
L3dlYmtpdC93ZWJraXRwcml2YXRlLmggXAorCVdlYktpdC9ndGsvd2Via2l0L3dlYmtpdHNlY3Vy
aXR5b3JpZ2luLmNwcCBcCiAJV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0c291cGF1dGhkaWFsb2cu
YyBcCiAJV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0dmVyc2lvbi5jcHAgXAogCVdlYktpdC9ndGsv
d2Via2l0L3dlYmtpdHZpZXdwb3J0YXR0cmlidXRlcy5jcHAgXAogCVdlYktpdC9ndGsvd2Via2l0
L3dlYmtpdHdlYmJhY2tmb3J3YXJkbGlzdC5jcHAgXAorCVdlYktpdC9ndGsvd2Via2l0L3dlYmtp
dHdlYmRhdGFiYXNlLmNwcCBcCiAJV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2ViZGF0YXNvdXJj
ZS5jcHAgXAogCVdlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYmZyYW1lLmNwcCBcCiAJV2ViS2l0
L2d0ay93ZWJraXQvd2Via2l0d2ViZnJhbWVwcml2YXRlLmggXAogCVdlYktpdC9ndGsvd2Via2l0
L3dlYmtpdHdlYmhpc3RvcnlpdGVtLmNwcCBcCiAJV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vi
aW5zcGVjdG9yLmNwcCBcCisJV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2ViaW5zcGVjdG9ycHJp
dmF0ZS5oIFwKIAlXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJuYXZpZ2F0aW9uYWN0aW9uLmNw
cCBcCisJV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2VibmF2aWdhdGlvbmFjdGlvbnByaXZhdGUu
aCBcCiAJV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2VicG9saWN5ZGVjaXNpb24uY3BwIFwKLQlX
ZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRnZW9sb2NhdGlvbnBvbGljeWRlY2lzaW9uLmNwcCBcCiAJ
V2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2VicmVzb3VyY2UuY3BwIFwKLQlXZWJLaXQvZ3RrL3dl
YmtpdC93ZWJraXR3ZWJkYXRhYmFzZS5jcHAgXAotCVdlYktpdC9ndGsvd2Via2l0L3dlYmtpdHNl
Y3VyaXR5b3JpZ2luLmNwcCBcCiAJV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vic2V0dGluZ3Mu
Y3BwIFwKIAlXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcCBcCiAJV2ViS2l0L2d0
ay93ZWJraXQvd2Via2l0d2Vidmlld3ByaXZhdGUuaCBcCmRpZmYgLS1naXQgYS9XZWJLaXQvZ3Rr
L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5jcHAgYi9XZWJLaXQvZ3RrL1dlYkNvcmVT
dXBwb3J0L0Nocm9tZUNsaWVudEd0ay5jcHAKaW5kZXggZjI3Mjk0Y2E1ZTJmZjc1MDc2MjY5MjVk
YWRmMjQwMjhjYmJiZTgwYi4uNmQ2NmU1NzRmNmFjYTUwY2Y4ZGQyMjU4OGZjNWMxMTc2ZDRjOTUz
YSAxMDA2NDQKLS0tIGEvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsu
Y3BwCisrKyBiL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNwcApA
QCAtNTAsNiArNTAsOCBAQAogI2luY2x1ZGUgIndlYmtpdGdlb2xvY2F0aW9ucG9saWN5ZGVjaXNp
b24uaCIKICNpbmNsdWRlICJ3ZWJraXRuZXR3b3JrcmVxdWVzdC5oIgogI2luY2x1ZGUgIndlYmtp
dHByaXZhdGUuaCIKKyNpbmNsdWRlICJ3ZWJraXRzZWN1cml0eW9yaWdpbnByaXZhdGUuaCIKKyNp
bmNsdWRlICJ3ZWJraXR2aWV3cG9ydGF0dHJpYnV0ZXNwcml2YXRlLmgiCiAjaW5jbHVkZSAid2Vi
a2l0d2ViZnJhbWVwcml2YXRlLmgiCiAjaW5jbHVkZSAid2Via2l0d2Vidmlldy5oIgogI2luY2x1
ZGUgIndlYmtpdHdlYnZpZXdwcml2YXRlLmgiCmRpZmYgLS1naXQgYS9XZWJLaXQvZ3RrL1dlYkNv
cmVTdXBwb3J0L0VkaXRvckNsaWVudEd0ay5jcHAgYi9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0
L0VkaXRvckNsaWVudEd0ay5jcHAKaW5kZXggNmUzMWIwMzM1M2Y3ZDgzOGUyOTg1MzRhYWY0Y2Y0
OWI3NTQ5NTFhNy4uMmE2Y2M4N2VmMzFmYjJjZTU4ZmE4ZTlhNjYyMzI3NmQyMTVmOWIyZCAxMDA2
NDQKLS0tIGEvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRHdGsuY3BwCisr
KyBiL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50R3RrLmNwcApAQCAtNDYs
NiArNDYsNyBAQAogI2luY2x1ZGUgIldpbmRvd3NLZXlib2FyZENvZGVzLmgiCiAjaW5jbHVkZSAi
d2Via2l0bWFyc2hhbC5oIgogI2luY2x1ZGUgIndlYmtpdHByaXZhdGUuaCIKKyNpbmNsdWRlICJ3
ZWJraXR3ZWJzZXR0aW5nc3ByaXZhdGUuaCIKICNpbmNsdWRlICJ3ZWJraXR3ZWJ2aWV3cHJpdmF0
ZS5oIgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KIApkaWZmIC0tZ2l0IGEvV2ViS2l0
L2d0ay9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5jcHAgYi9XZWJLaXQvZ3Rr
L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNwcAppbmRleCA0OGVlMTM0Nzcy
NGM5Y2VmNzQzOWM3YzU0ZjVhODUxZmYzZWJmNzdkLi40ZWM1ZmJiMzY5ZTRmZmI0ZGQyZWE0Mjg5
MmJjMjYwMDYwNGU3MWU3IDEwMDY0NAotLS0gYS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Zy
YW1lTG9hZGVyQ2xpZW50R3RrLmNwcAorKysgYi9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Zy
YW1lTG9hZGVyQ2xpZW50R3RrLmNwcApAQCAtNjIsMTEgKzYyLDE4IEBACiAjaW5jbHVkZSAid2Vi
a2l0bmV0d29ya3JlcXVlc3QuaCIKICNpbmNsdWRlICJ3ZWJraXRuZXR3b3JrcmVxdWVzdHByaXZh
dGUuaCIKICNpbmNsdWRlICJ3ZWJraXRuZXR3b3JrcmVzcG9uc2UuaCIKKyNpbmNsdWRlICJ3ZWJr
aXRuZXR3b3JrcmVzcG9uc2Vwcml2YXRlLmgiCiAjaW5jbHVkZSAid2Via2l0cHJpdmF0ZS5oIgor
I2luY2x1ZGUgIndlYmtpdHZpZXdwb3J0YXR0cmlidXRlcy5oIgorI2luY2x1ZGUgIndlYmtpdHZp
ZXdwb3J0YXR0cmlidXRlc3ByaXZhdGUuaCIKICNpbmNsdWRlICJ3ZWJraXR3ZWJmcmFtZS5oIgog
I2luY2x1ZGUgIndlYmtpdHdlYmZyYW1lcHJpdmF0ZS5oIgogI2luY2x1ZGUgIndlYmtpdHdlYm5h
dmlnYXRpb25hY3Rpb24uaCIKKyNpbmNsdWRlICJ3ZWJraXR3ZWJuYXZpZ2F0aW9uYWN0aW9ucHJp
dmF0ZS5oIgogI2luY2x1ZGUgIndlYmtpdHdlYnBvbGljeWRlY2lzaW9uLmgiCisjaW5jbHVkZSAi
d2Via2l0d2VicG9saWN5ZGVjaXNpb25wcml2YXRlLmgiCisjaW5jbHVkZSAid2Via2l0d2VicmVz
b3VyY2UuaCIKKyNpbmNsdWRlICJ3ZWJraXR3ZWJyZXNvdXJjZXByaXZhdGUuaCIKICNpbmNsdWRl
ICJ3ZWJraXR3ZWJ2aWV3LmgiCiAjaW5jbHVkZSAid2Via2l0d2Vidmlld3ByaXZhdGUuaCIKICNp
bmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9BUElDYXN0Lmg+CkBAIC0zMDksNyArMzE2LDcgQEAgdm9p
ZCBGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hXaWxsU2VuZFJlcXVlc3QoV2ViQ29yZTo6RG9j
dW1lbnRMb2FkZXIqIGxvYWRlciwKICAgICBpZiAocmVkaXJlY3RSZXNwb25zZS5pc051bGwoKSkK
ICAgICAgICAgc3RhdGljX2Nhc3Q8V2ViS2l0OjpEb2N1bWVudExvYWRlcio+KGxvYWRlciktPmlu
Y3JlYXNlTG9hZENvdW50KGlkZW50aWZpZXIpOwogICAgIGVsc2UKLSAgICAgICAgbmV0d29ya1Jl
c3BvbnNlID0gYWRvcHRQbGF0Zm9ybVJlZih3ZWJraXRfbmV0d29ya19yZXNwb25zZV9uZXdfd2l0
aF9jb3JlX3Jlc3BvbnNlKHJlZGlyZWN0UmVzcG9uc2UpKTsKKyAgICAgICAgbmV0d29ya1Jlc3Bv
bnNlID0gYWRvcHRQbGF0Zm9ybVJlZihraXROZXcocmVkaXJlY3RSZXNwb25zZSkpOwogCiAgICAg
V2ViS2l0V2ViVmlldyogd2ViVmlldyA9IGdldFZpZXdGcm9tRnJhbWUobV9mcmFtZSk7CiAgICAg
R093blB0cjxnY2hhcj4gaWRlbnRpZmllclN0cmluZyh0b1N0cmluZyhpZGVudGlmaWVyKSk7CmRp
ZmYgLS1naXQgYS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRkb3dubG9hZC5jcHAgYi9XZWJLaXQv
Z3RrL3dlYmtpdC93ZWJraXRkb3dubG9hZC5jcHAKaW5kZXggMmFiZDBiZTQ1MTMzODk0MTI2YmYz
MDExYWIwZGIxNzk1YTQzNDlmMC4uNWU1OTBlMWY1NjRiMTcyZmZhNzZiZTJlZDdhMmY0ODYwMDAx
OGU1YyAxMDA2NDQKLS0tIGEvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0ZG93bmxvYWQuY3BwCisr
KyBiL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdGRvd25sb2FkLmNwcApAQCAtMjksMTAgKzI5LDEy
IEBACiAjaW5jbHVkZSAiUmVzb3VyY2VSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VSZXNw
b25zZS5oIgogI2luY2x1ZGUgIndlYmtpdGRvd25sb2FkLmgiCisjaW5jbHVkZSAid2Via2l0ZG93
bmxvYWRwcml2YXRlLmgiCiAjaW5jbHVkZSAid2Via2l0ZW51bXR5cGVzLmgiCiAjaW5jbHVkZSAi
d2Via2l0bWFyc2hhbC5oIgogI2luY2x1ZGUgIndlYmtpdG5ldHdvcmtyZXF1ZXN0cHJpdmF0ZS5o
IgogI2luY2x1ZGUgIndlYmtpdG5ldHdvcmtyZXNwb25zZS5oIgorI2luY2x1ZGUgIndlYmtpdG5l
dHdvcmtyZXNwb25zZXByaXZhdGUuaCIKICNpbmNsdWRlICJ3ZWJraXRwcml2YXRlLmgiCiAjaW5j
bHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogCkBAIC01OTQsNyArNTk2LDcgQEAgV2ViS2l0TmV0
d29ya1Jlc3BvbnNlKiB3ZWJraXRfZG93bmxvYWRfZ2V0X25ldHdvcmtfcmVzcG9uc2UoV2ViS2l0
RG93bmxvYWQqIGRvd24KIHN0YXRpYyB2b2lkIHdlYmtpdF9kb3dubG9hZF9zZXRfcmVzcG9uc2Uo
V2ViS2l0RG93bmxvYWQqIGRvd25sb2FkLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25z
ZSkKIHsKICAgICBXZWJLaXREb3dubG9hZFByaXZhdGUqIHByaXYgPSBkb3dubG9hZC0+cHJpdjsK
LSAgICBwcml2LT5uZXR3b3JrUmVzcG9uc2UgPSB3ZWJraXRfbmV0d29ya19yZXNwb25zZV9uZXdf
d2l0aF9jb3JlX3Jlc3BvbnNlKHJlc3BvbnNlKTsKKyAgICBwcml2LT5uZXR3b3JrUmVzcG9uc2Ug
PSBraXROZXcocmVzcG9uc2UpOwogCiAgICAgaWYgKCFyZXNwb25zZS5pc051bGwoKSAmJiAhcmVz
cG9uc2Uuc3VnZ2VzdGVkRmlsZW5hbWUoKS5pc0VtcHR5KCkpCiAgICAgICAgIHdlYmtpdF9kb3du
bG9hZF9zZXRfc3VnZ2VzdGVkX2ZpbGVuYW1lKGRvd25sb2FkLCByZXNwb25zZS5zdWdnZXN0ZWRG
aWxlbmFtZSgpLnV0ZjgoKS5kYXRhKCkpOwpkaWZmIC0tZ2l0IGEvV2ViS2l0L2d0ay93ZWJraXQv
d2Via2l0ZG93bmxvYWRwcml2YXRlLmggYi9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRkb3dubG9h
ZHByaXZhdGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iYzM3MmExNGI5ZTA4YTUxYTI4ZDA2ZGUxNDA4MWM4N2Jk
NTI5MDBiCi0tLSAvZGV2L251bGwKKysrIGIvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0ZG93bmxv
YWRwcml2YXRlLmgKQEAgLTAsMCArMSwzNyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNywg
MjAwOCwgMjAwOSBIb2xnZXIgSGFucyBQZXRlciBGcmV5dGhlcgorICogQ29weXJpZ2h0IChDKSAy
MDA4IEphbiBNaWNoYWVsIEMuIEFsb256bworICogQ29weXJpZ2h0IChDKSAyMDA4IENvbGxhYm9y
YSBMdGQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgSWdhbGlhIFMuTC4KKyAqCisgKiBUaGlzIGxp
YnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisg
KiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1
YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh
dGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9w
dGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1
dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBB
TlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVS
Q0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRo
ZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxz
LgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJy
YXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBz
ZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBT
b2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29y
LAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKworI2lmbmRlZiB3ZWJraXRk
b3dubG9hZHByaXZhdGVfaAorI2RlZmluZSB3ZWJraXRkb3dubG9hZHByaXZhdGVfaAorCisjaW5j
bHVkZSAid2Via2l0ZG93bmxvYWQuaCIKKworZXh0ZXJuICJDIiB7CisKK1dlYktpdERvd25sb2Fk
KiB3ZWJraXRfZG93bmxvYWRfbmV3X3dpdGhfaGFuZGxlKFdlYktpdE5ldHdvcmtSZXF1ZXN0Kiwg
V2ViQ29yZTo6UmVzb3VyY2VIYW5kbGUqLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNl
Jik7CisKK3ZvaWQKK3dlYmtpdF9kb3dubG9hZF9zZXRfc3VnZ2VzdGVkX2ZpbGVuYW1lKFdlYktp
dERvd25sb2FkKiwgY29uc3QgZ2NoYXIqIHN1Z2dlc3RlZEZpbGVuYW1lKTsKKworfQorCisjZW5k
aWYKZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdGhpdHRlc3RyZXN1bHQuY3Bw
IGIvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0aGl0dGVzdHJlc3VsdC5jcHAKaW5kZXggOTMxMjg5
ZTg3OGQ2YzRhMTQ0NjM5MGFlNWQzZmJlZThmMWY3ZDBmMy4uMTkzNzQ0OTNhM2NiOThiYTMyNjI0
ZjkwZmQ0ZWFlZTQ5Y2FjNThiNSAxMDA2NDQKLS0tIGEvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0
aGl0dGVzdHJlc3VsdC5jcHAKKysrIGIvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0aGl0dGVzdHJl
c3VsdC5jcHAKQEAgLTIyLDYgKzIyLDggQEAKICNpbmNsdWRlICJ3ZWJraXRoaXR0ZXN0cmVzdWx0
LmgiCiAKICNpbmNsdWRlICJHT3duUHRyLmgiCisjaW5jbHVkZSAiSGl0VGVzdFJlc3VsdC5oIgor
I2luY2x1ZGUgIldlYktpdERPTUJpbmRpbmcuaCIKICNpbmNsdWRlICJXZWJLaXRET01Ob2RlLmgi
CiAjaW5jbHVkZSAid2Via2l0ZW51bXR5cGVzLmgiCiAjaW5jbHVkZSAid2Via2l0cHJpdmF0ZS5o
IgpAQCAtMjMwLDMgKzIzMiw0OCBAQCBzdGF0aWMgdm9pZCB3ZWJraXRfaGl0X3Rlc3RfcmVzdWx0
X2luaXQoV2ViS2l0SGl0VGVzdFJlc3VsdCogd2ViX2hpdF90ZXN0X3Jlc3VsdAogewogICAgIHdl
Yl9oaXRfdGVzdF9yZXN1bHQtPnByaXYgPSBXRUJLSVRfSElUX1RFU1RfUkVTVUxUX0dFVF9QUklW
QVRFKHdlYl9oaXRfdGVzdF9yZXN1bHQpOwogfQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworV2Vi
S2l0SGl0VGVzdFJlc3VsdCoga2l0KGNvbnN0IFdlYkNvcmU6OkhpdFRlc3RSZXN1bHQmIHJlc3Vs
dCkKK3sKKyAgICBndWludCBjb250ZXh0ID0gV0VCS0lUX0hJVF9URVNUX1JFU1VMVF9DT05URVhU
X0RPQ1VNRU5UOworICAgIEdPd25QdHI8Y2hhcj4gbGlua1VSSSgwKTsKKyAgICBHT3duUHRyPGNo
YXI+IGltYWdlVVJJKDApOworICAgIEdPd25QdHI8Y2hhcj4gbWVkaWFVUkkoMCk7CisgICAgV2Vi
S2l0RE9NTm9kZSogbm9kZSA9IDA7CisKKyAgICBpZiAoIXJlc3VsdC5hYnNvbHV0ZUxpbmtVUkwo
KS5pc0VtcHR5KCkpIHsKKyAgICAgICAgY29udGV4dCB8PSBXRUJLSVRfSElUX1RFU1RfUkVTVUxU
X0NPTlRFWFRfTElOSzsKKyAgICAgICAgbGlua1VSSS5zZXQoZ19zdHJkdXAocmVzdWx0LmFic29s
dXRlTGlua1VSTCgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpKTsKKyAgICB9CisKKyAgICBpZiAo
IXJlc3VsdC5hYnNvbHV0ZUltYWdlVVJMKCkuaXNFbXB0eSgpKSB7CisgICAgICAgIGNvbnRleHQg
fD0gV0VCS0lUX0hJVF9URVNUX1JFU1VMVF9DT05URVhUX0lNQUdFOworICAgICAgICBpbWFnZVVS
SS5zZXQoZ19zdHJkdXAocmVzdWx0LmFic29sdXRlSW1hZ2VVUkwoKS5zdHJpbmcoKS51dGY4KCku
ZGF0YSgpKSk7CisgICAgfQorCisgICAgaWYgKCFyZXN1bHQuYWJzb2x1dGVNZWRpYVVSTCgpLmlz
RW1wdHkoKSkgeworICAgICAgICBjb250ZXh0IHw9IFdFQktJVF9ISVRfVEVTVF9SRVNVTFRfQ09O
VEVYVF9NRURJQTsKKyAgICAgICAgbWVkaWFVUkkuc2V0KGdfc3RyZHVwKHJlc3VsdC5hYnNvbHV0
ZU1lZGlhVVJMKCkuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSkpOworICAgIH0KKworICAgIGlmIChy
ZXN1bHQuaXNTZWxlY3RlZCgpKQorICAgICAgICBjb250ZXh0IHw9IFdFQktJVF9ISVRfVEVTVF9S
RVNVTFRfQ09OVEVYVF9TRUxFQ1RJT047CisKKyAgICBpZiAocmVzdWx0LmlzQ29udGVudEVkaXRh
YmxlKCkpCisgICAgICAgIGNvbnRleHQgfD0gV0VCS0lUX0hJVF9URVNUX1JFU1VMVF9DT05URVhU
X0VESVRBQkxFOworCisgICAgaWYgKHJlc3VsdC5pbm5lck5vblNoYXJlZE5vZGUoKSkKKyAgICAg
ICAgbm9kZSA9IGtpdChyZXN1bHQuaW5uZXJOb25TaGFyZWROb2RlKCkpOworCisgICAgcmV0dXJu
IFdFQktJVF9ISVRfVEVTVF9SRVNVTFQoZ19vYmplY3RfbmV3KFdFQktJVF9UWVBFX0hJVF9URVNU
X1JFU1VMVCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ImxpbmstdXJpIiwgbGlua1VSSS5nZXQoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgImltYWdlLXVyaSIsIGltYWdlVVJJLmdldCgpLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAibWVkaWEtdXJpIiwgbWVkaWFV
UkkuZ2V0KCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICJjb250ZXh0IiwgY29udGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgImlubmVyLW5vZGUiLCBub2RlLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBOVUxMKSk7Cit9CisKK30KZGlmZiAtLWdpdCBhL1dlYktp
dC9ndGsvd2Via2l0L3dlYmtpdGhpdHRlc3RyZXN1bHRwcml2YXRlLmggYi9XZWJLaXQvZ3RrL3dl
YmtpdC93ZWJraXRoaXR0ZXN0cmVzdWx0cHJpdmF0ZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIzN2FjMjdjNmM4
Y2U2MmIwNWZlMjgyZThkYTU2ODQ5NGRlYTEzMWEKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJLaXQv
Z3RrL3dlYmtpdC93ZWJraXRoaXR0ZXN0cmVzdWx0cHJpdmF0ZS5oCkBAIC0wLDAgKzEsMzUgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDcsIDIwMDgsIDIwMDkgSG9sZ2VyIEhhbnMgUGV0ZXIg
RnJleXRoZXIKKyAqIENvcHlyaWdodCAoQykgMjAwOCBKYW4gTWljaGFlbCBDLiBBbG9uem8KKyAq
IENvcHlyaWdodCAoQykgMjAwOCBDb2xsYWJvcmEgTHRkLgorICogQ29weXJpZ2h0IChDKSAyMDEw
IElnYWxpYSBTLkwuCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBj
YW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBv
ZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVk
IGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9m
IHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoK
KyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwg
YmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhl
IGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVj
ZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisg
KiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYg
bm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEg
RnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwg
VVNBLgorICovCisKKyNpZm5kZWYgd2Via2l0aGl0dGVzdHJlc3VsdHByaXZhdGVfaAorI2RlZmlu
ZSB3ZWJraXRoaXR0ZXN0cmVzdWx0cHJpdmF0ZV9oCisKKyNpbmNsdWRlICJIaXRUZXN0UmVzdWx0
LmgiCisjaW5jbHVkZSAid2Via2l0aGl0dGVzdHJlc3VsdC5oIgorCituYW1lc3BhY2UgV2ViS2l0
IHsKKworV2ViS2l0SGl0VGVzdFJlc3VsdCoga2l0KGNvbnN0IFdlYkNvcmU6OkhpdFRlc3RSZXN1
bHQmKTsKKworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsvd2Via2l0L3dlYmtp
dG5ldHdvcmtyZXNwb25zZS5jcHAgYi9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRuZXR3b3JrcmVz
cG9uc2UuY3BwCmluZGV4IDBhY2E2ZDg5NGZkNjMwNmJiMGMzMWVlNzYzYmI4NGMxMGEyNzdlYTcu
LmRhMjkyMTI0MTk3NWNhODRiY2Q0NWVlYzgxOWZlNGM4ZDRlN2FmNGMgMTAwNjQ0Ci0tLSBhL1dl
YktpdC9ndGsvd2Via2l0L3dlYmtpdG5ldHdvcmtyZXNwb25zZS5jcHAKKysrIGIvV2ViS2l0L2d0
ay93ZWJraXQvd2Via2l0bmV0d29ya3Jlc3BvbnNlLmNwcApAQCAtMTU4LDE2ICsxNTgsNiBAQCBz
dGF0aWMgdm9pZCB3ZWJraXRfbmV0d29ya19yZXNwb25zZV9pbml0KFdlYktpdE5ldHdvcmtSZXNw
b25zZSogcmVzcG9uc2UpCiAgICAgcmVzcG9uc2UtPnByaXYgPSBXRUJLSVRfTkVUV09SS19SRVNQ
T05TRV9HRVRfUFJJVkFURShyZXNwb25zZSk7CiB9CiAKLS8vIGZvciBpbnRlcm5hbCB1c2Ugb25s
eQotV2ViS2l0TmV0d29ya1Jlc3BvbnNlKiB3ZWJraXRfbmV0d29ya19yZXNwb25zZV9uZXdfd2l0
aF9jb3JlX3Jlc3BvbnNlKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmIHJlc291cmNl
UmVzcG9uc2UpCi17Ci0gICAgUGxhdGZvcm1SZWZQdHI8U291cE1lc3NhZ2U+IHNvdXBNZXNzYWdl
KGFkb3B0UGxhdGZvcm1SZWYocmVzb3VyY2VSZXNwb25zZS50b1NvdXBNZXNzYWdlKCkpKTsKLSAg
ICBpZiAoc291cE1lc3NhZ2UpCi0gICAgICAgIHJldHVybiBXRUJLSVRfTkVUV09SS19SRVNQT05T
RShnX29iamVjdF9uZXcoV0VCS0lUX1RZUEVfTkVUV09SS19SRVNQT05TRSwgIm1lc3NhZ2UiLCBz
b3VwTWVzc2FnZS5nZXQoKSwgTlVMTCkpOwotCi0gICAgcmV0dXJuIFdFQktJVF9ORVRXT1JLX1JF
U1BPTlNFKGdfb2JqZWN0X25ldyhXRUJLSVRfVFlQRV9ORVRXT1JLX1JFU1BPTlNFLCAidXJpIiwg
cmVzb3VyY2VSZXNwb25zZS51cmwoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpLCBOVUxMKSk7Ci19
Ci0KIC8qKgogICogd2Via2l0X25ldHdvcmtfcmVzcG9uc2VfbmV3OgogICogQHVyaTogYW4gVVJJ
CkBAIC0yNTksMyArMjQ5LDI1IEBAIFNvdXBNZXNzYWdlKiB3ZWJraXRfbmV0d29ya19yZXNwb25z
ZV9nZXRfbWVzc2FnZShXZWJLaXROZXR3b3JrUmVzcG9uc2UqIHJlc3BvbnNlCiAKICAgICByZXR1
cm4gcHJpdi0+bWVzc2FnZTsKIH0KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1dlYkNvcmU6OlJl
c291cmNlUmVzcG9uc2UgY29yZShXZWJLaXROZXR3b3JrUmVzcG9uc2UqIHJlc3BvbnNlKQorewor
ICAgIFNvdXBNZXNzYWdlKiBzb3VwTWVzc2FnZSA9IHdlYmtpdF9uZXR3b3JrX3Jlc3BvbnNlX2dl
dF9tZXNzYWdlKHJlc3BvbnNlKTsKKyAgICBpZiAoc291cE1lc3NhZ2UpCisgICAgICAgIHJldHVy
biBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlKHNvdXBNZXNzYWdlKTsKKworICAgIHJldHVybiBX
ZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlKCk7Cit9CisKK1dlYktpdE5ldHdvcmtSZXNwb25zZSog
a2l0TmV3KGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmIHJlc291cmNlUmVzcG9uc2Up
Cit7CisgICAgUGxhdGZvcm1SZWZQdHI8U291cE1lc3NhZ2U+IHNvdXBNZXNzYWdlKGFkb3B0UGxh
dGZvcm1SZWYocmVzb3VyY2VSZXNwb25zZS50b1NvdXBNZXNzYWdlKCkpKTsKKyAgICBpZiAoc291
cE1lc3NhZ2UpCisgICAgICAgIHJldHVybiBXRUJLSVRfTkVUV09SS19SRVNQT05TRShnX29iamVj
dF9uZXcoV0VCS0lUX1RZUEVfTkVUV09SS19SRVNQT05TRSwgIm1lc3NhZ2UiLCBzb3VwTWVzc2Fn
ZS5nZXQoKSwgTlVMTCkpOworCisgICAgcmV0dXJuIFdFQktJVF9ORVRXT1JLX1JFU1BPTlNFKGdf
b2JqZWN0X25ldyhXRUJLSVRfVFlQRV9ORVRXT1JLX1JFU1BPTlNFLCAidXJpIiwgcmVzb3VyY2VS
ZXNwb25zZS51cmwoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpLCBOVUxMKSk7Cit9CisKK30KZGlm
ZiAtLWdpdCBhL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdG5ldHdvcmtyZXNwb25zZXByaXZhdGUu
aCBiL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdG5ldHdvcmtyZXNwb25zZXByaXZhdGUuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5hYjM4YTUwODNhOTc2NzRkYmE2YTIzZmZhZWFmYTg0MzkyNDJmOTA2Ci0tLSAvZGV2
L251bGwKKysrIGIvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0bmV0d29ya3Jlc3BvbnNlcHJpdmF0
ZS5oCkBAIC0wLDAgKzEsMzUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDcsIDIwMDgsIDIw
MDkgSG9sZ2VyIEhhbnMgUGV0ZXIgRnJleXRoZXIKKyAqIENvcHlyaWdodCAoQykgMjAwOCBKYW4g
TWljaGFlbCBDLiBBbG9uem8KKyAqIENvcHlyaWdodCAoQykgMjAwOCBDb2xsYWJvcmEgTHRkLgor
ICogQ29weXJpZ2h0IChDKSAyMDEwIElnYWxpYSBTLkwuCisgKgorICogVGhpcyBsaWJyYXJ5IGlz
IGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5
IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAq
IExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVp
dGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFu
eSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0
aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJB
TlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJ
TElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisg
KiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisg
KiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5l
cmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBm
aWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUg
Rm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJv
c3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNpZm5kZWYgd2Via2l0bmV0d29ya3Jl
c3BvbnNlcHJpdmF0ZV9oCisjZGVmaW5lIHdlYmtpdG5ldHdvcmtyZXNwb25zZXByaXZhdGVfaAor
CisjaW5jbHVkZSAiUmVzb3VyY2VSZXNwb25zZS5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKwor
V2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSBjb3JlKFdlYktpdE5ldHdvcmtSZXNwb25zZSopOwor
V2ViS2l0TmV0d29ya1Jlc3BvbnNlKiBraXROZXcoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNw
b25zZSYpOworCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvV2ViS2l0L2d0ay93ZWJraXQvd2Vi
a2l0cHJpdmF0ZS5jcHAgYi9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRwcml2YXRlLmNwcAppbmRl
eCAzMzI1YzMyMTZkNTE3YTE2MTljZWY2OGQ1MTE5NjI1NDk0OWZkMDUzLi40NjUyMDMxZWYyZWY0
MGRhOWIxYmVlZDc2MGY5MjExYzViYTE0NmU1IDEwMDY0NAotLS0gYS9XZWJLaXQvZ3RrL3dlYmtp
dC93ZWJraXRwcml2YXRlLmNwcAorKysgYi9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRwcml2YXRl
LmNwcApAQCAtNDQsNyArNDQsNiBAQAogI2luY2x1ZGUgIlJlc291cmNlSGFuZGxlSW50ZXJuYWwu
aCIKICNpbmNsdWRlICJSZXNvdXJjZVJlc3BvbnNlLmgiCiAjaW5jbHVkZSAiVGV4dEVuY29kaW5n
UmVnaXN0cnkuaCIKLSNpbmNsdWRlICJXZWJLaXRET01CaW5kaW5nLmgiCiAjaW5jbHVkZSAid2Vi
a2l0bmV0d29ya3Jlc3BvbnNlLmgiCiAjaW5jbHVkZSAid2Via2l0c291cGF1dGhkaWFsb2cuaCIK
ICNpbmNsdWRlICJ3ZWJraXR2ZXJzaW9uLmgiCkBAIC02NSw3MSArNjQsMTEgQEAgdXNpbmcgbmFt
ZXNwYWNlIFdlYkNvcmU7CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi1XZWJLaXRXZWJOYXZpZ2F0
aW9uUmVhc29uIGtpdChXZWJDb3JlOjpOYXZpZ2F0aW9uVHlwZSB0eXBlKQotewotICAgIHJldHVy
biAoV2ViS2l0V2ViTmF2aWdhdGlvblJlYXNvbil0eXBlOwotfQotCi1XZWJDb3JlOjpOYXZpZ2F0
aW9uVHlwZSBjb3JlKFdlYktpdFdlYk5hdmlnYXRpb25SZWFzb24gdHlwZSkKLXsKLSAgICByZXR1
cm4gc3RhdGljX2Nhc3Q8V2ViQ29yZTo6TmF2aWdhdGlvblR5cGU+KHR5cGUpOwotfQotCi1XZWJD
b3JlOjpSZXNvdXJjZVJlc3BvbnNlIGNvcmUoV2ViS2l0TmV0d29ya1Jlc3BvbnNlKiByZXNwb25z
ZSkKLXsKLSAgICBTb3VwTWVzc2FnZSogc291cE1lc3NhZ2UgPSB3ZWJraXRfbmV0d29ya19yZXNw
b25zZV9nZXRfbWVzc2FnZShyZXNwb25zZSk7Ci0gICAgaWYgKHNvdXBNZXNzYWdlKQotICAgICAg
ICByZXR1cm4gUmVzb3VyY2VSZXNwb25zZShzb3VwTWVzc2FnZSk7Ci0KLSAgICByZXR1cm4gUmVz
b3VyY2VSZXNwb25zZSgpOwotfQotCiBXZWJDb3JlOjpFZGl0aW5nQmVoYXZpb3JUeXBlIGNvcmUo
V2ViS2l0RWRpdGluZ0JlaGF2aW9yIHR5cGUpCiB7CiAgICAgcmV0dXJuIChXZWJDb3JlOjpFZGl0
aW5nQmVoYXZpb3JUeXBlKXR5cGU7CiB9CiAKLVdlYktpdEhpdFRlc3RSZXN1bHQqIGtpdChjb25z
dCBXZWJDb3JlOjpIaXRUZXN0UmVzdWx0JiByZXN1bHQpCi17Ci0gICAgZ3VpbnQgY29udGV4dCA9
IFdFQktJVF9ISVRfVEVTVF9SRVNVTFRfQ09OVEVYVF9ET0NVTUVOVDsKLSAgICBHT3duUHRyPGNo
YXI+IGxpbmtVUkkoMCk7Ci0gICAgR093blB0cjxjaGFyPiBpbWFnZVVSSSgwKTsKLSAgICBHT3du
UHRyPGNoYXI+IG1lZGlhVVJJKDApOwotICAgIFdlYktpdERPTU5vZGUqIG5vZGUgPSAwOwotCi0g
ICAgaWYgKCFyZXN1bHQuYWJzb2x1dGVMaW5rVVJMKCkuaXNFbXB0eSgpKSB7Ci0gICAgICAgIGNv
bnRleHQgfD0gV0VCS0lUX0hJVF9URVNUX1JFU1VMVF9DT05URVhUX0xJTks7Ci0gICAgICAgIGxp
bmtVUkkuc2V0KGdfc3RyZHVwKHJlc3VsdC5hYnNvbHV0ZUxpbmtVUkwoKS5zdHJpbmcoKS51dGY4
KCkuZGF0YSgpKSk7Ci0gICAgfQotCi0gICAgaWYgKCFyZXN1bHQuYWJzb2x1dGVJbWFnZVVSTCgp
LmlzRW1wdHkoKSkgewotICAgICAgICBjb250ZXh0IHw9IFdFQktJVF9ISVRfVEVTVF9SRVNVTFRf
Q09OVEVYVF9JTUFHRTsKLSAgICAgICAgaW1hZ2VVUkkuc2V0KGdfc3RyZHVwKHJlc3VsdC5hYnNv
bHV0ZUltYWdlVVJMKCkuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSkpOwotICAgIH0KLQotICAgIGlm
ICghcmVzdWx0LmFic29sdXRlTWVkaWFVUkwoKS5pc0VtcHR5KCkpIHsKLSAgICAgICAgY29udGV4
dCB8PSBXRUJLSVRfSElUX1RFU1RfUkVTVUxUX0NPTlRFWFRfTUVESUE7Ci0gICAgICAgIG1lZGlh
VVJJLnNldChnX3N0cmR1cChyZXN1bHQuYWJzb2x1dGVNZWRpYVVSTCgpLnN0cmluZygpLnV0Zjgo
KS5kYXRhKCkpKTsKLSAgICB9Ci0KLSAgICBpZiAocmVzdWx0LmlzU2VsZWN0ZWQoKSkKLSAgICAg
ICAgY29udGV4dCB8PSBXRUJLSVRfSElUX1RFU1RfUkVTVUxUX0NPTlRFWFRfU0VMRUNUSU9OOwot
Ci0gICAgaWYgKHJlc3VsdC5pc0NvbnRlbnRFZGl0YWJsZSgpKQotICAgICAgICBjb250ZXh0IHw9
IFdFQktJVF9ISVRfVEVTVF9SRVNVTFRfQ09OVEVYVF9FRElUQUJMRTsKLQotICAgIGlmIChyZXN1
bHQuaW5uZXJOb25TaGFyZWROb2RlKCkpCi0gICAgICAgIG5vZGUgPSBraXQocmVzdWx0LmlubmVy
Tm9uU2hhcmVkTm9kZSgpKTsKLQotICAgIHJldHVybiBXRUJLSVRfSElUX1RFU1RfUkVTVUxUKGdf
b2JqZWN0X25ldyhXRUJLSVRfVFlQRV9ISVRfVEVTVF9SRVNVTFQsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJsaW5rLXVyaSIsIGxpbmtVUkkuZ2V0KCks
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJpbWFnZS11
cmkiLCBpbWFnZVVSSS5nZXQoKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIm1lZGlhLXVyaSIsIG1lZGlhVVJJLmdldCgpLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiY29udGV4dCIsIGNvbnRleHQsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJpbm5lci1ub2RlIiwg
bm9kZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVM
TCkpOwotfQotCiBQYXN0ZWJvYXJkSGVscGVyR3RrKiBwYXN0ZWJvYXJkSGVscGVySW5zdGFuY2Uo
KQogewogICAgIHN0YXRpYyBQYXN0ZWJvYXJkSGVscGVyR3RrKiBoZWxwZXIgPSBuZXcgUGFzdGVi
b2FyZEhlbHBlckd0aygpOwpkaWZmIC0tZ2l0IGEvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0cHJp
dmF0ZS5oIGIvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0cHJpdmF0ZS5oCmluZGV4IDdkMTZjNjcy
MjIwMjE3YjdjZmRmMDRlNmNlNzU5MTY1NjM0Y2MwYWEuLmNmMmU5ZDYzNTRiN2I1NjNlMjg2Y2U4
MmU2YjZlMzRjZmY4NzFhOGIgMTAwNjQ0Ci0tLSBhL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHBy
aXZhdGUuaAorKysgYi9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRwcml2YXRlLmgKQEAgLTMwLDMw
ICszMCwyMCBAQAogICovCiAKICNpbmNsdWRlIDx3ZWJraXQvd2Via2l0ZGVmaW5lcy5oPgotI2lu
Y2x1ZGUgPHdlYmtpdC93ZWJraXRkb3dubG9hZC5oPgotI2luY2x1ZGUgPHdlYmtpdC93ZWJraXRo
aXR0ZXN0cmVzdWx0Lmg+CiAjaW5jbHVkZSA8d2Via2l0L3dlYmtpdG5ldHdvcmtyZXF1ZXN0Lmg+
Ci0jaW5jbHVkZSA8d2Via2l0L3dlYmtpdHZpZXdwb3J0YXR0cmlidXRlcy5oPgogI2luY2x1ZGUg
PHdlYmtpdC93ZWJraXR3ZWJ2aWV3Lmg+CiAjaW5jbHVkZSA8d2Via2l0L3dlYmtpdHdlYmRhdGFz
b3VyY2UuaD4KICNpbmNsdWRlIDx3ZWJraXQvd2Via2l0d2ViZnJhbWUuaD4KLSNpbmNsdWRlIDx3
ZWJraXQvd2Via2l0d2VicG9saWN5ZGVjaXNpb24uaD4KLSNpbmNsdWRlIDx3ZWJraXQvd2Via2l0
d2VibmF2aWdhdGlvbmFjdGlvbi5oPgotI2luY2x1ZGUgPHdlYmtpdC93ZWJraXR3ZWJyZXNvdXJj
ZS5oPgogI2luY2x1ZGUgPHdlYmtpdC93ZWJraXR3ZWJzZXR0aW5ncy5oPgogI2luY2x1ZGUgPHdl
YmtpdC93ZWJraXR3ZWJ3aW5kb3dmZWF0dXJlcy5oPgotI2luY2x1ZGUgPHdlYmtpdC93ZWJraXR3
ZWJiYWNrZm9yd2FyZGxpc3QuaD4KICNpbmNsdWRlIDx3ZWJraXQvd2Via2l0bmV0d29ya3JlcXVl
c3QuaD4KICNpbmNsdWRlIDx3ZWJraXQvd2Via2l0c2VjdXJpdHlvcmlnaW4uaD4KIAotI2luY2x1
ZGUgIkFyY2hpdmVSZXNvdXJjZS5oIgotI2luY2x1ZGUgIkJhY2tGb3J3YXJkTGlzdEltcGwuaCIK
ICNpbmNsdWRlICJEYXRhT2JqZWN0R3RrLmgiCiAjaW5jbHVkZSAiRHJhZ0FjdGlvbnMuaCIKICNp
bmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkdPd25QdHIuaCIKICNpbmNsdWRlICJHZW9sb2Nh
dGlvbi5oIgotI2luY2x1ZGUgIkhpc3RvcnlJdGVtLmgiCiAjaW5jbHVkZSAiSW50UG9pbnQuaCIK
ICNpbmNsdWRlICJJbnRSZWN0LmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXJDbGllbnQuaCIKQEAg
LTYyLDkgKzUyLDcgQEAKICNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgogI2luY2x1ZGUgIlJl
c291cmNlSGFuZGxlLmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VSZXF1ZXN0LmgiCi0jaW5jbHVkZSAi
UmVzb3VyY2VSZXNwb25zZS5oIgogI2luY2x1ZGUgIldpbmRvd0ZlYXR1cmVzLmgiCi0jaW5jbHVk
ZSAiU2VjdXJpdHlPcmlnaW4uaCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgPGVu
Y2hhbnQuaD4KICNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CkBAIC03NCwzMCArNjIsMTMgQEAKICNp
bmNsdWRlIDxnbGliLmg+CiAjaW5jbHVkZSA8bGlic291cC9zb3VwLmg+CiAKLWNsYXNzIERvd25s
b2FkQ2xpZW50OwotCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogICAgIGNsYXNzIERvY3VtZW50TG9h
ZGVyOwogICAgIGNsYXNzIFBhc3RlYm9hcmRIZWxwZXJHdGs7CiAKLSAgICBXZWJDb3JlOjpIaXN0
b3J5SXRlbSogY29yZShXZWJLaXRXZWJIaXN0b3J5SXRlbSopOwotICAgIFdlYktpdFdlYkhpc3Rv
cnlJdGVtKiBraXQoUGFzc1JlZlB0cjxXZWJDb3JlOjpIaXN0b3J5SXRlbT4pOwotCi0gICAgV2Vi
Q29yZTo6QmFja0ZvcndhcmRMaXN0SW1wbCogY29yZShXZWJLaXRXZWJCYWNrRm9yd2FyZExpc3Qq
KTsKLQotICAgIFdlYktpdFdlYk5hdmlnYXRpb25SZWFzb24ga2l0KFdlYkNvcmU6Ok5hdmlnYXRp
b25UeXBlIHR5cGUpOwotICAgIFdlYkNvcmU6Ok5hdmlnYXRpb25UeXBlIGNvcmUoV2ViS2l0V2Vi
TmF2aWdhdGlvblJlYXNvbiByZWFzb24pOwotCi0gICAgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25z
ZSBjb3JlKFdlYktpdE5ldHdvcmtSZXNwb25zZSogcmVzcG9uc2UpOwotCiAgICAgV2ViQ29yZTo6
RWRpdGluZ0JlaGF2aW9yVHlwZSBjb3JlKFdlYktpdEVkaXRpbmdCZWhhdmlvciB0eXBlKTsKIAot
ICAgIFdlYktpdFNlY3VyaXR5T3JpZ2luKiBraXQoV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4qKTsK
LSAgICBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiogY29yZShXZWJLaXRTZWN1cml0eU9yaWdpbiop
OwotCi0gICAgV2ViS2l0SGl0VGVzdFJlc3VsdCoga2l0KGNvbnN0IFdlYkNvcmU6OkhpdFRlc3RS
ZXN1bHQmKTsKLQogICAgIFBhc3RlYm9hcmRIZWxwZXJHdGsqIHBhc3RlYm9hcmRIZWxwZXJJbnN0
YW5jZSgpOwogfQogCkBAIC0xMDcsMTE4ICs3OCwyMSBAQCBleHRlcm4gIkMiIHsKICNkZWZpbmUg
V0VCS0lUX1BBUkFNX1JFQURBQkxFICgoR1BhcmFtRmxhZ3MpKEdfUEFSQU1fUkVBREFCTEV8R19Q
QVJBTV9TVEFUSUNfTkFNRXxHX1BBUkFNX1NUQVRJQ19OSUNLfEdfUEFSQU1fU1RBVElDX0JMVVJC
KSkKICNkZWZpbmUgV0VCS0lUX1BBUkFNX1JFQURXUklURSAoKEdQYXJhbUZsYWdzKShHX1BBUkFN
X1JFQURXUklURXxHX1BBUkFNX1NUQVRJQ19OQU1FfEdfUEFSQU1fU1RBVElDX05JQ0t8R19QQVJB
TV9TVEFUSUNfQkxVUkIpKQogCi0jZGVmaW5lIFdFQktJVF9TRUNVUklUWV9PUklHSU5fR0VUX1BS
SVZBVEUob2JqKSAoR19UWVBFX0lOU1RBTkNFX0dFVF9QUklWQVRFKChvYmopLCBXRUJLSVRfVFlQ
RV9TRUNVUklUWV9PUklHSU4sIFdlYktpdFNlY3VyaXR5T3JpZ2luUHJpdmF0ZSkpCi0gICAgc3Ry
dWN0IF9XZWJLaXRTZWN1cml0eU9yaWdpblByaXZhdGUgewotICAgICAgICBSZWZQdHI8V2ViQ29y
ZTo6U2VjdXJpdHlPcmlnaW4+IGNvcmVPcmlnaW47Ci0gICAgICAgIGdjaGFyKiBwcm90b2NvbDsK
LSAgICAgICAgZ2NoYXIqIGhvc3Q7Ci0gICAgICAgIEdIYXNoVGFibGUqIHdlYkRhdGFiYXNlczsK
LQotICAgICAgICBnYm9vbGVhbiBkaXNwb3NlZDsKLSAgICB9OwotCi0gICAgc3RydWN0IF9XZWJL
aXRWaWV3cG9ydEF0dHJpYnV0ZXNQcml2YXRlIHsKLSAgICAgICAgV2ViS2l0V2ViVmlldyogd2Vi
VmlldzsKLSAgICAgICAgaW50IGRldmljZVdpZHRoOwotICAgICAgICBpbnQgZGV2aWNlSGVpZ2h0
OwotICAgICAgICBpbnQgYXZhaWxhYmxlV2lkdGg7Ci0gICAgICAgIGludCBhdmFpbGFibGVIZWln
aHQ7Ci0gICAgICAgIGludCBkZXNrdG9wV2lkdGg7Ci0gICAgICAgIGludCBkZXZpY2VEUEk7Ci0K
LSAgICAgICAgaW50IHdpZHRoOwotICAgICAgICBpbnQgaGVpZ2h0OwotICAgICAgICBmbG9hdCBp
bml0aWFsU2NhbGVGYWN0b3I7Ci0gICAgICAgIGZsb2F0IG1pbmltdW1TY2FsZUZhY3RvcjsKLSAg
ICAgICAgZmxvYXQgbWF4aW11bVNjYWxlRmFjdG9yOwotICAgICAgICBmbG9hdCBkZXZpY2VQaXhl
bFJhdGlvOwotICAgICAgICBnYm9vbGVhbiB1c2VyU2NhbGFibGU7Ci0gICAgICAgIGdib29sZWFu
IGlzVmFsaWQ7Ci0gICAgfTsKLQogICAgIFdURjo6U3RyaW5nCiAgICAgd2Via2l0VXNlckFnZW50
KCk7CiAKLSAgICAvLyBXZWJLaXRXZWJIaXN0b3J5SXRlbSBwcml2YXRlCi0gICAgV2ViS2l0V2Vi
SGlzdG9yeUl0ZW0qCi0gICAgd2Via2l0X3dlYl9oaXN0b3J5X2l0ZW1fbmV3X3dpdGhfY29yZV9p
dGVtKFBhc3NSZWZQdHI8V2ViQ29yZTo6SGlzdG9yeUl0ZW0+IGhpc3RvcnlJdGVtKTsKLQotICAg
IFdFQktJVF9BUEkgR19DT05TVF9SRVRVUk4gZ2NoYXIqCi0gICAgd2Via2l0X3dlYl9oaXN0b3J5
X2l0ZW1fZ2V0X3RhcmdldChXZWJLaXRXZWJIaXN0b3J5SXRlbSopOwotCi0gICAgV0VCS0lUX0FQ
SSBnYm9vbGVhbgotICAgIHdlYmtpdF93ZWJfaGlzdG9yeV9pdGVtX2lzX3RhcmdldF9pdGVtKFdl
YktpdFdlYkhpc3RvcnlJdGVtKik7Ci0KLSAgICBXRUJLSVRfQVBJIEdMaXN0KgotICAgIHdlYmtp
dF93ZWJfaGlzdG9yeV9pdGVtX2dldF9jaGlsZHJlbihXZWJLaXRXZWJIaXN0b3J5SXRlbSopOwot
ICAgIC8vIGVuZCBXZWJLaXRXZWJIaXN0b3J5SXRlbSBwcml2YXRlCi0KLSAgICAvLyBXZWJLaXRX
ZWJSZXNvdXJjZSBwcml2YXRlCi0gICAgI2RlZmluZSBXRUJLSVRfV0VCX1JFU09VUkNFX0dFVF9Q
UklWQVRFKG9iaikgICAgICAgIChHX1RZUEVfSU5TVEFOQ0VfR0VUX1BSSVZBVEUoKG9iaiksIFdF
QktJVF9UWVBFX1dFQl9SRVNPVVJDRSwgV2ViS2l0V2ViUmVzb3VyY2VQcml2YXRlKSkKLSAgICBz
dHJ1Y3QgX1dlYktpdFdlYlJlc291cmNlUHJpdmF0ZSB7Ci0gICAgICAgIFdlYkNvcmU6OkFyY2hp
dmVSZXNvdXJjZSogcmVzb3VyY2U7Ci0KLSAgICAgICAgZ2NoYXIqIHVyaTsKLSAgICAgICAgZ2No
YXIqIG1pbWVUeXBlOwotICAgICAgICBnY2hhciogdGV4dEVuY29kaW5nOwotICAgICAgICBnY2hh
ciogZnJhbWVOYW1lOwotCi0gICAgICAgIEdTdHJpbmcqIGRhdGE7Ci0gICAgfTsKLSAgICBXZWJL
aXRXZWJSZXNvdXJjZSoKLSAgICB3ZWJraXRfd2ViX3Jlc291cmNlX25ld193aXRoX2NvcmVfcmVz
b3VyY2UoUGFzc1JlZlB0cjxXZWJDb3JlOjpBcmNoaXZlUmVzb3VyY2U+KTsKLQotICAgIHZvaWQK
LSAgICB3ZWJraXRfd2ViX3Jlc291cmNlX2luaXRfd2l0aF9jb3JlX3Jlc291cmNlKFdlYktpdFdl
YlJlc291cmNlKiwgUGFzc1JlZlB0cjxXZWJDb3JlOjpBcmNoaXZlUmVzb3VyY2U+KTsKLQotICAg
IC8vIGVuZCBXZWJLaXRXZWJSZXNvdXJjZSBwcml2YXRlCi0KLQogICAgIFdlYktpdFdlYldpbmRv
d0ZlYXR1cmVzKgogICAgIHdlYmtpdF93ZWJfd2luZG93X2ZlYXR1cmVzX25ld19mcm9tX2NvcmVf
ZmVhdHVyZXMgKGNvbnN0IFdlYkNvcmU6OldpbmRvd0ZlYXR1cmVzJiBmZWF0dXJlcyk7CiAKLSAg
ICBXZWJLaXREb3dubG9hZCoKLSAgICB3ZWJraXRfZG93bmxvYWRfbmV3X3dpdGhfaGFuZGxlKFdl
YktpdE5ldHdvcmtSZXF1ZXN0KiByZXF1ZXN0LCBXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZSogaGFu
ZGxlLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSk7Ci0KLSAgICB2
b2lkCi0gICAgd2Via2l0X2Rvd25sb2FkX3NldF9zdWdnZXN0ZWRfZmlsZW5hbWUoV2ViS2l0RG93
bmxvYWQqIGRvd25sb2FkLCBjb25zdCBnY2hhciogc3VnZ2VzdGVkRmlsZW5hbWUpOwotCi0gICAg
V2ViS2l0V2ViUG9saWN5RGVjaXNpb24qCi0gICAgd2Via2l0X3dlYl9wb2xpY3lfZGVjaXNpb25f
bmV3IChXZWJLaXRXZWJGcmFtZSosIFdlYkNvcmU6OkZyYW1lUG9saWN5RnVuY3Rpb24pOwotCi0g
ICAgdm9pZAotICAgIHdlYmtpdF93ZWJfcG9saWN5X2RlY2lzaW9uX2NhbmNlbCAoV2ViS2l0V2Vi
UG9saWN5RGVjaXNpb24qIGRlY2lzaW9uKTsKLQotCi0gICAgV2ViS2l0TmV0d29ya1Jlc3BvbnNl
KgotICAgIHdlYmtpdF9uZXR3b3JrX3Jlc3BvbnNlX25ld193aXRoX2NvcmVfcmVzcG9uc2UoY29u
c3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYgcmVzb3VyY2VSZXNwb25zZSk7Ci0KICAgICBX
ZWJLaXRHZW9sb2NhdGlvblBvbGljeURlY2lzaW9uKgogICAgIHdlYmtpdF9nZW9sb2NhdGlvbl9w
b2xpY3lfZGVjaXNpb25fbmV3KFdlYktpdFdlYkZyYW1lKiwgV2ViQ29yZTo6R2VvbG9jYXRpb24q
KTsKIAotICAgIC8vIEZJWE1FOiBNb3ZlIHRoZXNlIHRvIHdlYmtpdHdlYmZyYW1lLmggb25jZSB0
aGVpciBBUEkgaGFzIGJlZW4gZGlzY3Vzc2VkLgotCi0gICAgV0VCS0lUX0FQSSB2b2lkCi0gICAg
d2Via2l0X3dlYl9zZXR0aW5nc19hZGRfZXh0cmFfcGx1Z2luX2RpcmVjdG9yeSAoV2ViS2l0V2Vi
VmlldyAqd2ViX3ZpZXcsIGNvbnN0IGdjaGFyKiBkaXJlY3RvcnkpOwotCi0gICAgR1NMaXN0Kgot
ICAgIHdlYmtpdF93ZWJfc2V0dGluZ3NfZ2V0X2VuY2hhbnRfZGljdHMoV2ViS2l0V2ViVmlldyog
d2ViX3ZpZXcpOwotCi0gICAgR0hhc2hUYWJsZSoKLSAgICB3ZWJraXRfaGlzdG9yeV9pdGVtcyh2
b2lkKTsKLQogICAgIFdFQktJVF9BUEkgdm9pZAogICAgIHdlYmtpdF9hcHBsaWNhdGlvbl9jYWNo
ZV9zZXRfbWF4aW11bV9zaXplKHVuc2lnbmVkIGxvbmcgbG9uZyBzaXplKTsKIAogICAgIC8vIFdl
YktpdFdlYkRhdGFTb3VyY2UgcHJpdmF0ZQogICAgIFdlYktpdFdlYkRhdGFTb3VyY2UqCiAgICAg
d2Via2l0X3dlYl9kYXRhX3NvdXJjZV9uZXdfd2l0aF9sb2FkZXIoUGFzc1JlZlB0cjxXZWJLaXQ6
OkRvY3VtZW50TG9hZGVyPik7Ci0KLSAgICBXRUJLSVRfQVBJIFdlYktpdFdlYkRhdGFiYXNlICoK
LSAgICB3ZWJraXRfc2VjdXJpdHlfb3JpZ2luX2dldF93ZWJfZGF0YWJhc2UoV2ViS2l0U2VjdXJp
dHlPcmlnaW4qIHNlY3VyaXR5T3JpZ2luLCBjb25zdCBjaGFyKiBkYXRhYmFzZU5hbWUpOwotCi0g
ICAgLy8gV2ViS2l0Vmlld3BvcnRBdHRyaWJ1dGVzIHByaXZhdGUKLSAgICB2b2lkIHdlYmtpdFZp
ZXdwb3J0QXR0cmlidXRlc1JlY29tcHV0ZShXZWJLaXRWaWV3cG9ydEF0dHJpYnV0ZXMqKTsKIH0K
IAogI2VuZGlmCmRpZmYgLS1naXQgYS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRzZWN1cml0eW9y
aWdpbi5jcHAgYi9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRzZWN1cml0eW9yaWdpbi5jcHAKaW5k
ZXggOTJkMTllNzQ4MTY1YzhkYjUwMTgwYmRlNTM4NjI4NzI4MzkwZWQ3OS4uNTE1MmVkN2ExNDI2
Y2ViNzhhYjIzYjg0NTZjNjNiNmFmY2M0NTkyMSAxMDA2NDQKLS0tIGEvV2ViS2l0L2d0ay93ZWJr
aXQvd2Via2l0c2VjdXJpdHlvcmlnaW4uY3BwCisrKyBiL1dlYktpdC9ndGsvd2Via2l0L3dlYmtp
dHNlY3VyaXR5b3JpZ2luLmNwcApAQCAtMTgsMTUgKzE4LDE0IEBACiAgKi8KIAogI2luY2x1ZGUg
ImNvbmZpZy5oIgotI2luY2x1ZGUgIndlYmtpdHdlYmRhdGFiYXNlLmgiCisjaW5jbHVkZSAid2Vi
a2l0c2VjdXJpdHlvcmlnaW4uaCIKIAotI2luY2x1ZGUgIndlYmtpdHByaXZhdGUuaCIKLQotI2lu
Y2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCiAjaW5jbHVkZSAiRGF0YWJhc2VUcmFja2VyLmgiCi0j
aW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgotCisjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcu
aCIKKyNpbmNsdWRlICJ3ZWJraXRwcml2YXRlLmgiCisjaW5jbHVkZSAid2Via2l0c2VjdXJpdHlv
cmlnaW5wcml2YXRlLmgiCiAjaW5jbHVkZSA8Z2xpYi9naTE4bi1saWIuaD4KKyNpbmNsdWRlIDx3
dGYvdGV4dC9DU3RyaW5nLmg+CiAKIC8qKgogICogU0VDVElPTjp3ZWJraXRzZWN1cml0eW9yaWdp
bgpAQCAtMzc5LDQ2ICszNzgsNDggQEAgR0xpc3QqIHdlYmtpdF9zZWN1cml0eV9vcmlnaW5fZ2V0
X2FsbF93ZWJfZGF0YWJhc2VzKFdlYktpdFNlY3VyaXR5T3JpZ2luKiBzZWN1cmkKICAgICByZXR1
cm4gZGF0YWJhc2VzOwogfQogCi1XZWJLaXRTZWN1cml0eU9yaWdpbiogV2ViS2l0OjpraXQoV2Vi
Q29yZTo6U2VjdXJpdHlPcmlnaW4qIGNvcmVPcmlnaW4pCitXZWJLaXRXZWJEYXRhYmFzZSogd2Vi
a2l0X3NlY3VyaXR5X29yaWdpbl9nZXRfd2ViX2RhdGFiYXNlKFdlYktpdFNlY3VyaXR5T3JpZ2lu
KiBzZWN1cml0eU9yaWdpbiwgY29uc3QgZ2NoYXIqIGRhdGFiYXNlTmFtZSkKIHsKLSAgICBBU1NF
UlQoY29yZU9yaWdpbik7CisgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0lTX1NFQ1VS
SVRZX09SSUdJTihzZWN1cml0eU9yaWdpbiksIE5VTEwpOwogCi0gICAgR0hhc2hUYWJsZSogdGFi
bGUgPSB3ZWJraXRfc2VjdXJpdHlfb3JpZ2lucygpOwotICAgIFdlYktpdFNlY3VyaXR5T3JpZ2lu
KiBvcmlnaW4gPSAoV2ViS2l0U2VjdXJpdHlPcmlnaW4qKSBnX2hhc2hfdGFibGVfbG9va3VwKHRh
YmxlLCBjb3JlT3JpZ2luKTsKKyAgICBXZWJLaXRTZWN1cml0eU9yaWdpblByaXZhdGUqIHByaXYg
PSBzZWN1cml0eU9yaWdpbi0+cHJpdjsKKyAgICBHSGFzaFRhYmxlKiBkYXRhYmFzZUhhc2ggPSBw
cml2LT53ZWJEYXRhYmFzZXM7CisgICAgV2ViS2l0V2ViRGF0YWJhc2UqIGRhdGFiYXNlID0gKFdl
YktpdFdlYkRhdGFiYXNlKikgZ19oYXNoX3RhYmxlX2xvb2t1cChkYXRhYmFzZUhhc2gsIGRhdGFi
YXNlTmFtZSk7CiAKLSAgICBpZiAoIW9yaWdpbikgewotICAgICAgICBvcmlnaW4gPSBXRUJLSVRf
U0VDVVJJVFlfT1JJR0lOKGdfb2JqZWN0X25ldyhXRUJLSVRfVFlQRV9TRUNVUklUWV9PUklHSU4s
IE5VTEwpKTsKLSAgICAgICAgb3JpZ2luLT5wcml2LT5jb3JlT3JpZ2luID0gY29yZU9yaWdpbjsK
LSAgICAgICAgZ19oYXNoX3RhYmxlX2luc2VydCh0YWJsZSwgY29yZU9yaWdpbiwgb3JpZ2luKTsK
KyAgICBpZiAoIWRhdGFiYXNlKSB7CisgICAgICAgIGRhdGFiYXNlID0gIFdFQktJVF9XRUJfREFU
QUJBU0UoZ19vYmplY3RfbmV3KFdFQktJVF9UWVBFX1dFQl9EQVRBQkFTRSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzZWN1cml0eS1vcmlnaW4iLCBzZWN1cml0eU9y
aWdpbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJuYW1lIiwgZGF0
YWJhc2VOYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwp
KTsKKyAgICAgICAgZ19oYXNoX3RhYmxlX2luc2VydChkYXRhYmFzZUhhc2gsIGdfc3RyZHVwKGRh
dGFiYXNlTmFtZSksIGRhdGFiYXNlKTsKICAgICB9CiAKLSAgICByZXR1cm4gb3JpZ2luOworICAg
IHJldHVybiBkYXRhYmFzZTsKIH0KIAorbmFtZXNwYWNlIFdlYktpdCB7CiAKLVdlYkNvcmU6OlNl
Y3VyaXR5T3JpZ2luKiBXZWJLaXQ6OmNvcmUoV2ViS2l0U2VjdXJpdHlPcmlnaW4qIHNlY3VyaXR5
T3JpZ2luKQorV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4qIGNvcmUoV2ViS2l0U2VjdXJpdHlPcmln
aW4qIHNlY3VyaXR5T3JpZ2luKQogewogICAgIEFTU0VSVChzZWN1cml0eU9yaWdpbik7CiAKICAg
ICByZXR1cm4gc2VjdXJpdHlPcmlnaW4tPnByaXYtPmNvcmVPcmlnaW4uZ2V0KCk7CiB9CiAKLVdl
YktpdFdlYkRhdGFiYXNlKiB3ZWJraXRfc2VjdXJpdHlfb3JpZ2luX2dldF93ZWJfZGF0YWJhc2Uo
V2ViS2l0U2VjdXJpdHlPcmlnaW4qIHNlY3VyaXR5T3JpZ2luLCBjb25zdCBnY2hhciogZGF0YWJh
c2VOYW1lKQorV2ViS2l0U2VjdXJpdHlPcmlnaW4qIGtpdChXZWJDb3JlOjpTZWN1cml0eU9yaWdp
biogY29yZU9yaWdpbikKIHsKLSAgICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfSVNfU0VD
VVJJVFlfT1JJR0lOKHNlY3VyaXR5T3JpZ2luKSwgTlVMTCk7CisgICAgQVNTRVJUKGNvcmVPcmln
aW4pOwogCi0gICAgV2ViS2l0U2VjdXJpdHlPcmlnaW5Qcml2YXRlKiBwcml2ID0gc2VjdXJpdHlP
cmlnaW4tPnByaXY7Ci0gICAgR0hhc2hUYWJsZSogZGF0YWJhc2VIYXNoID0gcHJpdi0+d2ViRGF0
YWJhc2VzOwotICAgIFdlYktpdFdlYkRhdGFiYXNlKiBkYXRhYmFzZSA9IChXZWJLaXRXZWJEYXRh
YmFzZSopIGdfaGFzaF90YWJsZV9sb29rdXAoZGF0YWJhc2VIYXNoLCBkYXRhYmFzZU5hbWUpOwor
ICAgIEdIYXNoVGFibGUqIHRhYmxlID0gd2Via2l0X3NlY3VyaXR5X29yaWdpbnMoKTsKKyAgICBX
ZWJLaXRTZWN1cml0eU9yaWdpbiogb3JpZ2luID0gKFdlYktpdFNlY3VyaXR5T3JpZ2luKikgZ19o
YXNoX3RhYmxlX2xvb2t1cCh0YWJsZSwgY29yZU9yaWdpbik7CiAKLSAgICBpZiAoIWRhdGFiYXNl
KSB7Ci0gICAgICAgIGRhdGFiYXNlID0gIFdFQktJVF9XRUJfREFUQUJBU0UoZ19vYmplY3RfbmV3
KFdFQktJVF9UWVBFX1dFQl9EQVRBQkFTRSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICJzZWN1cml0eS1vcmlnaW4iLCBzZWN1cml0eU9yaWdpbiwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJuYW1lIiwgZGF0YWJhc2VOYW1lLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwpKTsKLSAgICAgICAgZ19oYXNo
X3RhYmxlX2luc2VydChkYXRhYmFzZUhhc2gsIGdfc3RyZHVwKGRhdGFiYXNlTmFtZSksIGRhdGFi
YXNlKTsKKyAgICBpZiAoIW9yaWdpbikgeworICAgICAgICBvcmlnaW4gPSBXRUJLSVRfU0VDVVJJ
VFlfT1JJR0lOKGdfb2JqZWN0X25ldyhXRUJLSVRfVFlQRV9TRUNVUklUWV9PUklHSU4sIE5VTEwp
KTsKKyAgICAgICAgb3JpZ2luLT5wcml2LT5jb3JlT3JpZ2luID0gY29yZU9yaWdpbjsKKyAgICAg
ICAgZ19oYXNoX3RhYmxlX2luc2VydCh0YWJsZSwgY29yZU9yaWdpbiwgb3JpZ2luKTsKICAgICB9
CiAKLSAgICByZXR1cm4gZGF0YWJhc2U7CisgICAgcmV0dXJuIG9yaWdpbjsKIH0KIAorfQpkaWZm
IC0tZ2l0IGEvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0c2VjdXJpdHlvcmlnaW5wcml2YXRlLmgg
Yi9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRzZWN1cml0eW9yaWdpbnByaXZhdGUuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5jZWQyNjJmYjdmODNmODkxNjMzZTcyZjAyNDllMzg0YjJhMzk5MGUwCi0tLSAvZGV2L251
bGwKKysrIGIvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0c2VjdXJpdHlvcmlnaW5wcml2YXRlLmgK
QEAgLTAsMCArMSw1MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNywgMjAwOCwgMjAwOSBI
b2xnZXIgSGFucyBQZXRlciBGcmV5dGhlcgorICogQ29weXJpZ2h0IChDKSAyMDA4IEphbiBNaWNo
YWVsIEMuIEFsb256bworICogQ29weXJpZ2h0IChDKSAyMDA4IENvbGxhYm9yYSBMdGQuCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTAgSWdhbGlhIFMuTC4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJl
ZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQg
dW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGlj
ZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVy
CisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxh
dGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBo
b3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7
IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZ
IG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlv
dSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUg
Q09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3Vu
ZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9u
LCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKworI2lmbmRlZiB3ZWJraXRzZWN1cml0eW9yaWdp
bnByaXZhdGVfaAorI2RlZmluZSB3ZWJraXRuYXZpZ2F0aW9uYWN0aW9ucHJpdmF0ZV9oCisKKyNp
bmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgorI2luY2x1ZGUgIndlYmtpdHNlY3VyaXR5b3JpZ2lu
LmgiCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitXZWJLaXRTZWN1cml0eU9yaWdpbioga2l0KFdl
YkNvcmU6OlNlY3VyaXR5T3JpZ2luKik7CitXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiogY29yZShX
ZWJLaXRTZWN1cml0eU9yaWdpbiopOworCit9CisKK2V4dGVybiAiQyIgeworCisjZGVmaW5lIFdF
QktJVF9TRUNVUklUWV9PUklHSU5fR0VUX1BSSVZBVEUob2JqKSAoR19UWVBFX0lOU1RBTkNFX0dF
VF9QUklWQVRFKChvYmopLCBXRUJLSVRfVFlQRV9TRUNVUklUWV9PUklHSU4sIFdlYktpdFNlY3Vy
aXR5T3JpZ2luUHJpdmF0ZSkpCitzdHJ1Y3QgX1dlYktpdFNlY3VyaXR5T3JpZ2luUHJpdmF0ZSB7
CisgICAgUmVmUHRyPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiBjb3JlT3JpZ2luOworICAgIGdj
aGFyKiBwcm90b2NvbDsKKyAgICBnY2hhciogaG9zdDsKKyAgICBHSGFzaFRhYmxlKiB3ZWJEYXRh
YmFzZXM7CisKKyAgICBnYm9vbGVhbiBkaXNwb3NlZDsKK307CisKK1dFQktJVF9BUEkgV2ViS2l0
V2ViRGF0YWJhc2UqIHdlYmtpdF9zZWN1cml0eV9vcmlnaW5fZ2V0X3dlYl9kYXRhYmFzZShXZWJL
aXRTZWN1cml0eU9yaWdpbiosIGNvbnN0IGNoYXIqKTsKKworfQorCisjZW5kaWYKZGlmZiAtLWdp
dCBhL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHZpZXdwb3J0YXR0cmlidXRlcy5jcHAgYi9XZWJL
aXQvZ3RrL3dlYmtpdC93ZWJraXR2aWV3cG9ydGF0dHJpYnV0ZXMuY3BwCmluZGV4IDE1MDg4NDM3
MDVkMDkwYjBjNTI2MTU2ZmNlYTAyZTEyNGViNDAwNGYuLjk4NDAxZDVhNTZlYjI5YmE5ZWQwMzM4
Y2ZiMmQxOTJhNjIxNzZiNWMgMTAwNjQ0Ci0tLSBhL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHZp
ZXdwb3J0YXR0cmlidXRlcy5jcHAKKysrIGIvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0dmlld3Bv
cnRhdHRyaWJ1dGVzLmNwcApAQCAtMjMsOCArMjMsOCBAQAogCiAjaW5jbHVkZSAiQ2hyb21lLmgi
CiAjaW5jbHVkZSAid2Via2l0cHJpdmF0ZS5oIgorI2luY2x1ZGUgIndlYmtpdHZpZXdwb3J0YXR0
cmlidXRlc3ByaXZhdGUuaCIKICNpbmNsdWRlICJ3ZWJraXR3ZWJ2aWV3cHJpdmF0ZS5oIgotCiAj
aW5jbHVkZSA8Z2xpYi9naTE4bi1saWIuaD4KIAogLyoqCmRpZmYgLS1naXQgYS9XZWJLaXQvZ3Rr
L3dlYmtpdC93ZWJraXR2aWV3cG9ydGF0dHJpYnV0ZXNwcml2YXRlLmggYi9XZWJLaXQvZ3RrL3dl
YmtpdC93ZWJraXR2aWV3cG9ydGF0dHJpYnV0ZXNwcml2YXRlLmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTFjYjY2
ODg1MDg5NGJiZDk2YzgzNmFkNTk4MGQ2ZWQ1MDg4OWFjOAotLS0gL2Rldi9udWxsCisrKyBiL1dl
YktpdC9ndGsvd2Via2l0L3dlYmtpdHZpZXdwb3J0YXR0cmlidXRlc3ByaXZhdGUuaApAQCAtMCww
ICsxLDU0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA3LCAyMDA4LCAyMDA5IEhvbGdlciBI
YW5zIFBldGVyIEZyZXl0aGVyCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggSmFuIE1pY2hhZWwgQy4g
QWxvbnpvCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggQ29sbGFib3JhIEx0ZC4KKyAqIENvcHlyaWdo
dCAoQykgMjAxMCBJZ2FsaWEgUy5MLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3
YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0
aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFz
IHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZl
cnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVy
c2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhh
dCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91
dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBH
ZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3Vs
ZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMg
TGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5H
LkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24s
IEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAy
MTEwLTEzMDEsIFVTQS4KKyAqLworCisjaWZuZGVmIHdlYmtpdHZpZXdwb3J0YXR0cmlidXRlc3By
aXZhdGVfaAorI2RlZmluZSB3ZWJraXRuYXZpZ2F0aW9uYWN0aW9ucHJpdmF0ZV9oCisKKyNpbmNs
dWRlIDx3ZWJraXQvd2Via2l0dmlld3BvcnRhdHRyaWJ1dGVzLmg+CisKK2V4dGVybiAiQyIgewor
CitzdHJ1Y3QgX1dlYktpdFZpZXdwb3J0QXR0cmlidXRlc1ByaXZhdGUgeworICAgIFdlYktpdFdl
YlZpZXcqIHdlYlZpZXc7CisgICAgaW50IGRldmljZVdpZHRoOworICAgIGludCBkZXZpY2VIZWln
aHQ7CisgICAgaW50IGF2YWlsYWJsZVdpZHRoOworICAgIGludCBhdmFpbGFibGVIZWlnaHQ7Cisg
ICAgaW50IGRlc2t0b3BXaWR0aDsKKyAgICBpbnQgZGV2aWNlRFBJOworCisgICAgaW50IHdpZHRo
OworICAgIGludCBoZWlnaHQ7CisgICAgZmxvYXQgaW5pdGlhbFNjYWxlRmFjdG9yOworICAgIGZs
b2F0IG1pbmltdW1TY2FsZUZhY3RvcjsKKyAgICBmbG9hdCBtYXhpbXVtU2NhbGVGYWN0b3I7Cisg
ICAgZmxvYXQgZGV2aWNlUGl4ZWxSYXRpbzsKKyAgICBnYm9vbGVhbiB1c2VyU2NhbGFibGU7Cisg
ICAgZ2Jvb2xlYW4gaXNWYWxpZDsKK307CisKKwordm9pZCB3ZWJraXRWaWV3cG9ydEF0dHJpYnV0
ZXNSZWNvbXB1dGUoV2ViS2l0Vmlld3BvcnRBdHRyaWJ1dGVzKik7CisKK30KKworI2VuZGlmCmRp
ZmYgLS1naXQgYS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJiYWNrZm9yd2FyZGxpc3QuY3Bw
IGIvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2ViYmFja2ZvcndhcmRsaXN0LmNwcAppbmRleCA1
NDFiMGUyM2I5ZTNjY2M3N2VmZTk0OWUyMmM4ZTYwZTQ1OGMwMjdkLi5jYWVkY2EzZDEzYjc3ZDY3
MmM0OWEyYWRiOWIwMDY0NzdkMGNkZjBkIDEwMDY0NAotLS0gYS9XZWJLaXQvZ3RrL3dlYmtpdC93
ZWJraXR3ZWJiYWNrZm9yd2FyZGxpc3QuY3BwCisrKyBiL1dlYktpdC9ndGsvd2Via2l0L3dlYmtp
dHdlYmJhY2tmb3J3YXJkbGlzdC5jcHAKQEAgLTI0LDcgKzI0LDkgQEAKICNpbmNsdWRlICJCYWNr
Rm9yd2FyZExpc3RJbXBsLmgiCiAjaW5jbHVkZSAiSGlzdG9yeUl0ZW0uaCIKICNpbmNsdWRlICJ3
ZWJraXRwcml2YXRlLmgiCisjaW5jbHVkZSAid2Via2l0d2ViYmFja2ZvcndhcmRsaXN0cHJpdmF0
ZS5oIgogI2luY2x1ZGUgIndlYmtpdHdlYmhpc3RvcnlpdGVtLmgiCisjaW5jbHVkZSAid2Via2l0
d2ViaGlzdG9yeWl0ZW1wcml2YXRlLmgiCiAjaW5jbHVkZSAid2Via2l0d2Vidmlldy5oIgogI2lu
Y2x1ZGUgIndlYmtpdHdlYnZpZXdwcml2YXRlLmgiCiAjaW5jbHVkZSA8Z2xpYi5oPgpkaWZmIC0t
Z2l0IGEvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2ViYmFja2ZvcndhcmRsaXN0cHJpdmF0ZS5o
IGIvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2ViYmFja2ZvcndhcmRsaXN0cHJpdmF0ZS5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjc5NDI0YzA4MzU2N2E1MDY2NzM1YzkyZDQzYTY0Y2EzMzA3Mzk1ZjIKLS0tIC9k
ZXYvbnVsbAorKysgYi9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJiYWNrZm9yd2FyZGxpc3Rw
cml2YXRlLmgKQEAgLTAsMCArMSwzNCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNywgMjAw
OCwgMjAwOSBIb2xnZXIgSGFucyBQZXRlciBGcmV5dGhlcgorICogQ29weXJpZ2h0IChDKSAyMDA4
IEphbiBNaWNoYWVsIEMuIEFsb256bworICogQ29weXJpZ2h0IChDKSAyMDA4IENvbGxhYm9yYSBM
dGQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgSWdhbGlhIFMuTC4KKyAqCisgKiBUaGlzIGxpYnJh
cnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBt
b2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1Ymxp
YworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv
bjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlv
bikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVk
IGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkg
V0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hB
TlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBH
TlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgor
ICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5
IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUg
dGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0
d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAor
ICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKworI2lmbmRlZiB3ZWJraXR3ZWJi
YWNrZm9yd2FyZGxpc3Rwcml2YXRlX2gKKyNkZWZpbmUgd2Via2l0d2ViYmFja2ZvcndhcmRsaXN0
cHJpdmF0ZV9oCisKKyNpbmNsdWRlICJCYWNrRm9yd2FyZExpc3RJbXBsLmgiCisKK25hbWVzcGFj
ZSBXZWJLaXQgeworCitXZWJDb3JlOjpCYWNrRm9yd2FyZExpc3RJbXBsKiBjb3JlKFdlYktpdFdl
YkJhY2tGb3J3YXJkTGlzdCopOworCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvV2ViS2l0L2d0
ay93ZWJraXQvd2Via2l0d2ViZGF0YWJhc2UuY3BwIGIvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0
d2ViZGF0YWJhc2UuY3BwCmluZGV4IDY4MGQ5Yzk1Y2U1YzZmNTFmYTllNmM4NzNjNmUwOWQ3NjU2
NjRlOTMuLjZkZTc4ZmM2MTNjYjFmZDgzNjllMWYzYjIwMmY5MzdlNGJjYzRkN2EgMTAwNjQ0Ci0t
LSBhL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYmRhdGFiYXNlLmNwcAorKysgYi9XZWJLaXQv
Z3RrL3dlYmtpdC93ZWJraXR3ZWJkYXRhYmFzZS5jcHAKQEAgLTIwLDEzICsyMCwxMiBAQAogI2lu
Y2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIndlYmtpdHdlYmRhdGFiYXNlLmgiCiAKLSNpbmNs
dWRlICJ3ZWJraXRwcml2YXRlLmgiCi0KICNpbmNsdWRlICJEYXRhYmFzZURldGFpbHMuaCIKICNp
bmNsdWRlICJEYXRhYmFzZVRyYWNrZXIuaCIKLSNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+
Ci0KKyNpbmNsdWRlICJ3ZWJraXRwcml2YXRlLmgiCisjaW5jbHVkZSAid2Via2l0c2VjdXJpdHlv
cmlnaW5wcml2YXRlLmgiCiAjaW5jbHVkZSA8Z2xpYi9naTE4bi1saWIuaD4KKyNpbmNsdWRlIDx3
dGYvdGV4dC9DU3RyaW5nLmg+CiAKIC8qKgogICogU0VDVElPTjp3ZWJraXR3ZWJkYXRhYmFzZQpk
aWZmIC0tZ2l0IGEvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2ViZnJhbWUuY3BwIGIvV2ViS2l0
L2d0ay93ZWJraXQvd2Via2l0d2ViZnJhbWUuY3BwCmluZGV4IDJmYTI1YjU5Yzg2YzlmZjc4ZWIw
NzNjNjA0YTQzOThkY2MxY2NkYTEuLjkxNTI3NDY3YjYwYzkyNTAyODliZDA0MmQ2NmEwNGYzYzky
ODk5NDcgMTAwNjQ0Ci0tLSBhL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYmZyYW1lLmNwcAor
KysgYi9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJmcmFtZS5jcHAKQEAgLTUyLDggKzUyLDEw
IEBACiAjaW5jbHVkZSAiU3Vic3RpdHV0ZURhdGEuaCIKICNpbmNsdWRlICJ3ZWJraXRlbnVtdHlw
ZXMuaCIKICNpbmNsdWRlICJ3ZWJraXRuZXR3b3JrcmVxdWVzdHByaXZhdGUuaCIKKyNpbmNsdWRl
ICJ3ZWJraXRuZXR3b3JrcmVzcG9uc2Vwcml2YXRlLmgiCiAjaW5jbHVkZSAid2Via2l0bWFyc2hh
bC5oIgogI2luY2x1ZGUgIndlYmtpdHByaXZhdGUuaCIKKyNpbmNsdWRlICJ3ZWJraXRzZWN1cml0
eW9yaWdpbnByaXZhdGUuaCIKICNpbmNsdWRlICJ3ZWJraXR3ZWJmcmFtZXByaXZhdGUuaCIKICNp
bmNsdWRlICJ3ZWJraXR3ZWJ2aWV3LmgiCiAjaW5jbHVkZSAid2Via2l0d2Vidmlld3ByaXZhdGUu
aCIKQEAgLTk2Niw3ICs5NjgsNyBAQCBXZWJLaXROZXR3b3JrUmVzcG9uc2UqIHdlYmtpdF93ZWJf
ZnJhbWVfZ2V0X25ldHdvcmtfcmVzcG9uc2UoV2ViS2l0V2ViRnJhbWUqIGZyYQogICAgIGlmICgh
bG9hZGVyKQogICAgICAgICByZXR1cm4gTlVMTDsKIAotICAgIHJldHVybiB3ZWJraXRfbmV0d29y
a19yZXNwb25zZV9uZXdfd2l0aF9jb3JlX3Jlc3BvbnNlKGxvYWRlci0+cmVzcG9uc2UoKSk7Cisg
ICAgcmV0dXJuIGtpdE5ldyhsb2FkZXItPnJlc3BvbnNlKCkpOwogfQogCiBuYW1lc3BhY2UgV2Vi
S2l0IHsKZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYmhpc3RvcnlpdGVt
LmNwcCBiL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYmhpc3RvcnlpdGVtLmNwcAppbmRleCBj
ZTMwNzA0MmI2NzFmMWI5OWVlZDJlNjkzNTQ3NjkyOTY1MzQ0N2QxLi5hNmQ3MTJiYzk4NjNkNTRm
YWQ0N2Y5MmU2YzU1MTBmNDBlMzAwODY5IDEwMDY0NAotLS0gYS9XZWJLaXQvZ3RrL3dlYmtpdC93
ZWJraXR3ZWJoaXN0b3J5aXRlbS5jcHAKKysrIGIvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vi
aGlzdG9yeWl0ZW0uY3BwCkBAIC0yMywxMSArMjMsMTEgQEAKICNpbmNsdWRlICJ3ZWJraXR3ZWJo
aXN0b3J5aXRlbS5oIgogI2luY2x1ZGUgIndlYmtpdHByaXZhdGUuaCIKIAotI2luY2x1ZGUgPGds
aWIuaD4KLSNpbmNsdWRlIDxnbGliL2dpMThuLWxpYi5oPgotCiAjaW5jbHVkZSAiSGlzdG9yeUl0
ZW0uaCIKICNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgorI2luY2x1ZGUgIndlYmtpdHdlYmhp
c3RvcnlpdGVtcHJpdmF0ZS5oIgorI2luY2x1ZGUgPGdsaWIuaD4KKyNpbmNsdWRlIDxnbGliL2dp
MThuLWxpYi5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KIAogLyoqCmRpZmYgLS1n
aXQgYS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJoaXN0b3J5aXRlbXByaXZhdGUuaCBiL1dl
YktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYmhpc3RvcnlpdGVtcHJpdmF0ZS5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjIyYjUwZWUzYzk1NjhlZGRlNGFmM2NjOWI3OGQzMmI2OWYwZjdiNzQKLS0tIC9kZXYvbnVsbAor
KysgYi9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJoaXN0b3J5aXRlbXByaXZhdGUuaApAQCAt
MCwwICsxLDQ5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA3LCAyMDA4LCAyMDA5IEhvbGdl
ciBIYW5zIFBldGVyIEZyZXl0aGVyCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggSmFuIE1pY2hhZWwg
Qy4gQWxvbnpvCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggQ29sbGFib3JhIEx0ZC4KKyAqIENvcHly
aWdodCAoQykgMjAxMCBJZ2FsaWEgUy5MLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNv
ZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRl
ciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNl
IGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAq
IHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIg
dmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUg
dGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0
aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3Ig
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFy
eSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNo
b3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZ
SU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp
b24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1B
IDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaWZuZGVmIHdlYmtpdHdlYmhpc3RvcnlpdGVtcHJp
dmF0ZV9oCisjZGVmaW5lIHdlYmtpdHdlYmhpc3RvcnlpdGVtcHJpdmF0ZV9oCisKKyNpbmNsdWRl
ICJIaXN0b3J5SXRlbS5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworV2ViQ29yZTo6SGlzdG9y
eUl0ZW0qIGNvcmUoV2ViS2l0V2ViSGlzdG9yeUl0ZW0qKTsKK1dlYktpdFdlYkhpc3RvcnlJdGVt
KiBraXQoUGFzc1JlZlB0cjxXZWJDb3JlOjpIaXN0b3J5SXRlbT4pOworCit9CisKK2V4dGVybiAi
QyIgeworCitHSGFzaFRhYmxlKiB3ZWJraXRfaGlzdG9yeV9pdGVtcygpOworCitXZWJLaXRXZWJI
aXN0b3J5SXRlbSogd2Via2l0X3dlYl9oaXN0b3J5X2l0ZW1fbmV3X3dpdGhfY29yZV9pdGVtKFBh
c3NSZWZQdHI8V2ViQ29yZTo6SGlzdG9yeUl0ZW0+KTsKKworV0VCS0lUX0FQSSBHX0NPTlNUX1JF
VFVSTiBnY2hhciogd2Via2l0X3dlYl9oaXN0b3J5X2l0ZW1fZ2V0X3RhcmdldChXZWJLaXRXZWJI
aXN0b3J5SXRlbSopOworCitXRUJLSVRfQVBJIGdib29sZWFuIHdlYmtpdF93ZWJfaGlzdG9yeV9p
dGVtX2lzX3RhcmdldF9pdGVtKFdlYktpdFdlYkhpc3RvcnlJdGVtKik7CisKK1dFQktJVF9BUEkg
R0xpc3QqIHdlYmtpdF93ZWJfaGlzdG9yeV9pdGVtX2dldF9jaGlsZHJlbihXZWJLaXRXZWJIaXN0
b3J5SXRlbSopOworCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvV2ViS2l0L2d0ay93ZWJraXQv
d2Via2l0d2VibmF2aWdhdGlvbmFjdGlvbi5jcHAgYi9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3
ZWJuYXZpZ2F0aW9uYWN0aW9uLmNwcAppbmRleCBjZTVkZDkyNTVmMjZmZDBmNzFiNWMyZmNhYTcy
OWNjOWNkM2UwODJhLi5hMmNhNzNhMWIxMzdlYjlmYTRlZjIzMTBkMjU5ZDdhYzYzZTc5ZDk4IDEw
MDY0NAotLS0gYS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJuYXZpZ2F0aW9uYWN0aW9uLmNw
cAorKysgYi9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJuYXZpZ2F0aW9uYWN0aW9uLmNwcApA
QCAtMzY5LDMgKzM2OSwxNyBAQCBzdGF0aWMgdm9pZCB3ZWJraXRfd2ViX25hdmlnYXRpb25fYWN0
aW9uX3NldF90YXJnZXRfZnJhbWUoV2ViS2l0V2ViTmF2aWdhdGlvbkFjdAogICAgIG5hdmlnYXRp
b25BY3Rpb24tPnByaXYtPnRhcmdldEZyYW1lID0gZ19zdHJkdXAodGFyZ2V0RnJhbWUpOwogICAg
IGdfb2JqZWN0X25vdGlmeShHX09CSkVDVChuYXZpZ2F0aW9uQWN0aW9uKSwgInRhcmdldC1mcmFt
ZSIpOwogfQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworV2ViS2l0V2ViTmF2aWdhdGlvblJlYXNv
biBraXQoV2ViQ29yZTo6TmF2aWdhdGlvblR5cGUgdHlwZSkKK3sKKyAgICByZXR1cm4gKFdlYktp
dFdlYk5hdmlnYXRpb25SZWFzb24pdHlwZTsKK30KKworV2ViQ29yZTo6TmF2aWdhdGlvblR5cGUg
Y29yZShXZWJLaXRXZWJOYXZpZ2F0aW9uUmVhc29uIHR5cGUpCit7CisgICAgcmV0dXJuIHN0YXRp
Y19jYXN0PFdlYkNvcmU6Ok5hdmlnYXRpb25UeXBlPih0eXBlKTsKK30KKworfQpkaWZmIC0tZ2l0
IGEvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2VibmF2aWdhdGlvbmFjdGlvbnByaXZhdGUuaCBi
L1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYm5hdmlnYXRpb25hY3Rpb25wcml2YXRlLmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNmNmZjczNzgyM2Q4NDg2YjExODA1ZWU2MTA1MDJjZTI3ZWE2OWRlYQotLS0gL2Rl
di9udWxsCisrKyBiL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYm5hdmlnYXRpb25hY3Rpb25w
cml2YXRlLmgKQEAgLTAsMCArMSwzNSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNywgMjAw
OCwgMjAwOSBIb2xnZXIgSGFucyBQZXRlciBGcmV5dGhlcgorICogQ29weXJpZ2h0IChDKSAyMDA4
IEphbiBNaWNoYWVsIEMuIEFsb256bworICogQ29weXJpZ2h0IChDKSAyMDA4IENvbGxhYm9yYSBM
dGQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgSWdhbGlhIFMuTC4KKyAqCisgKiBUaGlzIGxpYnJh
cnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBt
b2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1Ymxp
YworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv
bjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlv
bikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVk
IGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkg
V0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hB
TlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBH
TlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgor
ICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5
IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUg
dGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0
d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAor
ICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKworI2lmbmRlZiB3ZWJraXR3ZWJu
YXZpZ2F0aW9uYWN0aW9ucHJpdmF0ZV9oCisjZGVmaW5lIHdlYmtpdG5hdmlnYXRpb25hY3Rpb25w
cml2YXRlX2gKKworI2luY2x1ZGUgPHdlYmtpdC93ZWJraXR3ZWJuYXZpZ2F0aW9uYWN0aW9uLmg+
CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitXZWJLaXRXZWJOYXZpZ2F0aW9uUmVhc29uIGtpdChX
ZWJDb3JlOjpOYXZpZ2F0aW9uVHlwZSB0eXBlKTsKK1dlYkNvcmU6Ok5hdmlnYXRpb25UeXBlIGNv
cmUoV2ViS2l0V2ViTmF2aWdhdGlvblJlYXNvbiByZWFzb24pOworCit9CisKKyNlbmRpZgpkaWZm
IC0tZ2l0IGEvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2VicG9saWN5ZGVjaXNpb24uY3BwIGIv
V2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2VicG9saWN5ZGVjaXNpb24uY3BwCmluZGV4IDY2NjFh
OTljZjE4MTU3M2U0NjI2NjIyZDA1YzQ0MTgyNTI4OTBiNjAuLmYwOTNiMzllZmRhMGUwYmI0OTk1
ZTliZmNmNTQ0NDAyNWYxOGNkNTAgMTAwNjQ0Ci0tLSBhL1dlYktpdC9ndGsvd2Via2l0L3dlYmtp
dHdlYnBvbGljeWRlY2lzaW9uLmNwcAorKysgYi9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJw
b2xpY3lkZWNpc2lvbi5jcHAKQEAgLTE4LDEyICsxOCwxMiBAQAogICovCiAKICNpbmNsdWRlICJj
b25maWcuaCIKLQogI2luY2x1ZGUgIndlYmtpdHdlYnBvbGljeWRlY2lzaW9uLmgiCiAKICNpbmNs
dWRlICJGcmFtZUxvYWRlclR5cGVzLmgiCiAjaW5jbHVkZSAid2Via2l0cHJpdmF0ZS5oIgogI2lu
Y2x1ZGUgIndlYmtpdHdlYmZyYW1lcHJpdmF0ZS5oIgorI2luY2x1ZGUgIndlYmtpdHdlYnBvbGlj
eWRlY2lzaW9ucHJpdmF0ZS5oIgogCiB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwogdXNpbmcgbmFt
ZXNwYWNlIFdlYkNvcmU7CmRpZmYgLS1naXQgYS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJw
b2xpY3lkZWNpc2lvbnByaXZhdGUuaCBiL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnBvbGlj
eWRlY2lzaW9ucHJpdmF0ZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJkMjY0YWIxNWQ4OGQzNjA4MjFjNTI0Y2M4
MzE2NDNlYTdlNzlkMmQKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJr
aXR3ZWJwb2xpY3lkZWNpc2lvbnByaXZhdGUuaApAQCAtMCwwICsxLDM2IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDA3LCAyMDA4LCAyMDA5IEhvbGdlciBIYW5zIFBldGVyIEZyZXl0aGVyCisg
KiBDb3B5cmlnaHQgKEMpIDIwMDggSmFuIE1pY2hhZWwgQy4gQWxvbnpvCisgKiBDb3B5cmlnaHQg
KEMpIDIwMDggQ29sbGFib3JhIEx0ZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMCBJZ2FsaWEgUy5M
LgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJp
YnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJl
ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5z
ZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxp
YnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwK
KyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdh
cnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
IFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl
IGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29w
eSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0
aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUg
dG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0
cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLwor
CisjaWZuZGVmIHdlYmtpdHdlYnBvbGljeWRlY2lzaW9ucHJpdmF0ZV9oCisjZGVmaW5lIHdlYmtp
dHdlYnBvbGljeWRlY2lzaW9ucHJpdmF0ZV9oCisKKyNpbmNsdWRlICJ3ZWJraXR3ZWJwb2xpY3lk
ZWNpc2lvbi5oIgorCitleHRlcm4gIkMiIHsKKworV2ViS2l0V2ViUG9saWN5RGVjaXNpb24qIHdl
YmtpdF93ZWJfcG9saWN5X2RlY2lzaW9uX25ldyhXZWJLaXRXZWJGcmFtZSosIFdlYkNvcmU6OkZy
YW1lUG9saWN5RnVuY3Rpb24pOworCit2b2lkIHdlYmtpdF93ZWJfcG9saWN5X2RlY2lzaW9uX2Nh
bmNlbChXZWJLaXRXZWJQb2xpY3lEZWNpc2lvbiopOworCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0
IGEvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2VicmVzb3VyY2UuY3BwIGIvV2ViS2l0L2d0ay93
ZWJraXQvd2Via2l0d2VicmVzb3VyY2UuY3BwCmluZGV4IGZiMGFjZmM5OTZmODYyOTljYzVjYWFm
ZjEzMzNhNTg0MDEwN2ZkNDcuLjllOTdhYjkwNzFkNTBhNWY4Y2NjMTNhZGY3NTgwMGI3NzY0NmFh
ZTcgMTAwNjQ0Ci0tLSBhL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnJlc291cmNlLmNwcAor
KysgYi9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJyZXNvdXJjZS5jcHAKQEAgLTE4LDkgKzE4
LDcgQEAKICAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCi0KICNpbmNsdWRlICJ3ZWJraXR3ZWJy
ZXNvdXJjZS5oIgotI2luY2x1ZGUgIndlYmtpdHByaXZhdGUuaCIKIAogI2luY2x1ZGUgIkFyY2hp
dmVSZXNvdXJjZS5oIgogI2luY2x1ZGUgIktVUkwuaCIKQEAgLTI4LDcgKzI2LDkgQEAKICNpbmNs
dWRlICJTaGFyZWRCdWZmZXIuaCIKICNpbmNsdWRlICJ3ZWJraXRlbnVtdHlwZXMuaCIKICNpbmNs
dWRlICJ3ZWJraXRtYXJzaGFsLmgiCi0jaW5jbHVkZSAid3RmL0Fzc2VydGlvbnMuaCIKKyNpbmNs
dWRlICJ3ZWJraXRwcml2YXRlLmgiCisjaW5jbHVkZSAid2Via2l0d2VicmVzb3VyY2Vwcml2YXRl
LmgiCisjaW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3Ry
aW5nLmg+CiAKICNpbmNsdWRlIDxnbGliLmg+CmRpZmYgLS1naXQgYS9XZWJLaXQvZ3RrL3dlYmtp
dC93ZWJraXR3ZWJyZXNvdXJjZXByaXZhdGUuaCBiL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdl
YnJlc291cmNlcHJpdmF0ZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjlhNzdhZDhmN2M1ZjRjMDNkZTUyY2Y1NDgy
ZWM2ZGM5OWM3NjQxNTkKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJr
aXR3ZWJyZXNvdXJjZXByaXZhdGUuaApAQCAtMCwwICsxLDUwIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDA3LCAyMDA4LCAyMDA5IEhvbGdlciBIYW5zIFBldGVyIEZyZXl0aGVyCisgKiBDb3B5
cmlnaHQgKEMpIDIwMDggSmFuIE1pY2hhZWwgQy4gQWxvbnpvCisgKiBDb3B5cmlnaHQgKEMpIDIw
MDggQ29sbGFib3JhIEx0ZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMCBJZ2FsaWEgUy5MLgorICoK
KyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBp
dCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5
IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0
d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3Ig
KGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkg
aXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1
dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5
IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP
U0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBt
b3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0
aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlz
IGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAq
IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwg
RmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaWZu
ZGVmIHdlYmtpdHdlYnJlc291cmNlcHJpdmF0ZV9oCisjZGVmaW5lIHdlYmtpdHdlYnJlc291cmNl
cHJpdmF0ZV9oCisKKyNpbmNsdWRlICJBcmNoaXZlUmVzb3VyY2UuaCIKKyNpbmNsdWRlICJ3ZWJr
aXR3ZWJyZXNvdXJjZS5oIgorCitleHRlcm4gIkMiIHsKKworI2RlZmluZSBXRUJLSVRfV0VCX1JF
U09VUkNFX0dFVF9QUklWQVRFKG9iaikgICAgICAgIChHX1RZUEVfSU5TVEFOQ0VfR0VUX1BSSVZB
VEUoKG9iaiksIFdFQktJVF9UWVBFX1dFQl9SRVNPVVJDRSwgV2ViS2l0V2ViUmVzb3VyY2VQcml2
YXRlKSkKK3N0cnVjdCBfV2ViS2l0V2ViUmVzb3VyY2VQcml2YXRlIHsKKyAgICBXZWJDb3JlOjpB
cmNoaXZlUmVzb3VyY2UqIHJlc291cmNlOworCisgICAgZ2NoYXIqIHVyaTsKKyAgICBnY2hhciog
bWltZVR5cGU7CisgICAgZ2NoYXIqIHRleHRFbmNvZGluZzsKKyAgICBnY2hhciogZnJhbWVOYW1l
OworCisgICAgR1N0cmluZyogZGF0YTsKK307CitXZWJLaXRXZWJSZXNvdXJjZSoKK3dlYmtpdF93
ZWJfcmVzb3VyY2VfbmV3X3dpdGhfY29yZV9yZXNvdXJjZShQYXNzUmVmUHRyPFdlYkNvcmU6OkFy
Y2hpdmVSZXNvdXJjZT4pOworCit2b2lkCit3ZWJraXRfd2ViX3Jlc291cmNlX2luaXRfd2l0aF9j
b3JlX3Jlc291cmNlKFdlYktpdFdlYlJlc291cmNlKiwgUGFzc1JlZlB0cjxXZWJDb3JlOjpBcmNo
aXZlUmVzb3VyY2U+KTsKKworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsvd2Vi
a2l0L3dlYmtpdHdlYnNldHRpbmdzLmNwcCBiL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnNl
dHRpbmdzLmNwcAppbmRleCBjOTEwNDliMjczNTU5NDU1ODllMTA5NGIxNDg3MWFlNjY1ZjUyZDIx
Li5iZWY3YjcwNGU4MzdiMjY3OTI0NzYyOTNkZDM1ODExZTA2MTVhYzMxIDEwMDY0NAotLS0gYS9X
ZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJzZXR0aW5ncy5jcHAKKysrIGIvV2ViS2l0L2d0ay93
ZWJraXQvd2Via2l0d2Vic2V0dGluZ3MuY3BwCkBAIC0yNiwxNiArMjYsMTUgQEAKICNpbmNsdWRl
ICJjb25maWcuaCIKICNpbmNsdWRlICJ3ZWJraXR3ZWJzZXR0aW5ncy5oIgogCisjaW5jbHVkZSAi
RmlsZVN5c3RlbS5oIgorI2luY2x1ZGUgIkxhbmd1YWdlLmgiCisjaW5jbHVkZSAiUGx1Z2luRGF0
YWJhc2UuaCIKICNpbmNsdWRlICJ3ZWJraXRlbnVtdHlwZXMuaCIKICNpbmNsdWRlICJ3ZWJraXRw
cml2YXRlLmgiCiAjaW5jbHVkZSAid2Via2l0dmVyc2lvbi5oIgotCi0jaW5jbHVkZSAiRmlsZVN5
c3RlbS5oIgotI2luY2x1ZGUgIlBsdWdpbkRhdGFiYXNlLmgiCi0jaW5jbHVkZSAiTGFuZ3VhZ2Uu
aCIKKyNpbmNsdWRlICJ3ZWJraXR3ZWJzZXR0aW5nc3ByaXZhdGUuaCIKICNpbmNsdWRlIDx3dGYv
dGV4dC9DU3RyaW5nLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQ29uY2F0ZW5hdGUuaD4K
LQogI2luY2x1ZGUgPGdsaWIvZ2kxOG4tbGliLmg+CiAjaWYgT1MoVU5JWCkKICNpbmNsdWRlIDxz
eXMvdXRzbmFtZS5oPgpkaWZmIC0tZ2l0IGEvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vic2V0
dGluZ3Nwcml2YXRlLmggYi9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJzZXR0aW5nc3ByaXZh
dGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5lODQ4YTA4NjliYzVjZWNlOGM3YzczNTRkODFkNzdkYzcxMjFkN2My
Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vic2V0dGluZ3Nw
cml2YXRlLmgKQEAgLTAsMCArMSwzNiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNywgMjAw
OCwgMjAwOSBIb2xnZXIgSGFucyBQZXRlciBGcmV5dGhlcgorICogQ29weXJpZ2h0IChDKSAyMDA4
IEphbiBNaWNoYWVsIEMuIEFsb256bworICogQ29weXJpZ2h0IChDKSAyMDA4IENvbGxhYm9yYSBM
dGQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgSWdhbGlhIFMuTC4KKyAqCisgKiBUaGlzIGxpYnJh
cnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBt
b2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1Ymxp
YworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv
bjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlv
bikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVk
IGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkg
V0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hB
TlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBH
TlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgor
ICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5
IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUg
dGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0
d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAor
ICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKworI2lmbmRlZiB3ZWJraXR3ZWJz
ZXR0aW5nc3ByaXZhdGVfaAorI2RlZmluZSB3ZWJraXR3ZWJzZXR0aW5nc3ByaXZhdGVfaAorCisj
aW5jbHVkZSAid2Via2l0d2Vic2V0dGluZ3MuaCIKKworZXh0ZXJuICJDIiB7CisKK1dFQktJVF9B
UEkgdm9pZCB3ZWJraXRfd2ViX3NldHRpbmdzX2FkZF9leHRyYV9wbHVnaW5fZGlyZWN0b3J5KFdl
YktpdFdlYlZpZXcqLCBjb25zdCBnY2hhciogZGlyZWN0b3J5KTsKKworR1NMaXN0KiB3ZWJraXRf
d2ViX3NldHRpbmdzX2dldF9lbmNoYW50X2RpY3RzKFdlYktpdFdlYlZpZXcqKTsKKworfQorCisj
ZW5kaWYKZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwIGIv
V2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vidmlldy5jcHAKaW5kZXggMjJkYmRjY2VmMjYwMmQ4
ZjI4M2U4YzgyZWE1ZGY1NmIwNTEwZWEwYi4uOTNlNTNiZTQyMjQ3MmMzMzRlYzY0YTQwNDAxN2M5
YWU5NDNlZDk3MCAxMDA2NDQKLS0tIGEvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vidmlldy5j
cHAKKysrIGIvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vidmlldy5jcHAKQEAgLTc4LDE3ICs3
OCwyNCBAQAogI2luY2x1ZGUgIlNjcm9sbGJhci5oIgogI2luY2x1ZGUgIndlYmtpdC9XZWJLaXRE
T01Eb2N1bWVudFByaXZhdGUuaCIKICNpbmNsdWRlICJ3ZWJraXRkb3dubG9hZC5oIgorI2luY2x1
ZGUgIndlYmtpdGRvd25sb2FkcHJpdmF0ZS5oIgogI2luY2x1ZGUgIndlYmtpdGVudW10eXBlcy5o
IgogI2luY2x1ZGUgIndlYmtpdGdlb2xvY2F0aW9ucG9saWN5ZGVjaXNpb24uaCIKKyNpbmNsdWRl
ICJ3ZWJraXRoaXR0ZXN0cmVzdWx0cHJpdmF0ZS5oIgogI2luY2x1ZGUgIndlYmtpdG1hcnNoYWwu
aCIKICNpbmNsdWRlICJ3ZWJraXRuZXR3b3JrcmVxdWVzdC5oIgogI2luY2x1ZGUgIndlYmtpdG5l
dHdvcmtyZXNwb25zZS5oIgogI2luY2x1ZGUgIndlYmtpdHByaXZhdGUuaCIKKyNpbmNsdWRlICJ3
ZWJraXR2aWV3cG9ydGF0dHJpYnV0ZXMuaCIKKyNpbmNsdWRlICJ3ZWJraXR2aWV3cG9ydGF0dHJp
YnV0ZXNwcml2YXRlLmgiCiAjaW5jbHVkZSAid2Via2l0d2ViYmFja2ZvcndhcmRsaXN0LmgiCiAj
aW5jbHVkZSAid2Via2l0d2ViZnJhbWVwcml2YXRlLmgiCiAjaW5jbHVkZSAid2Via2l0d2ViaGlz
dG9yeWl0ZW0uaCIKKyNpbmNsdWRlICJ3ZWJraXR3ZWJoaXN0b3J5aXRlbXByaXZhdGUuaCIKICNp
bmNsdWRlICJ3ZWJraXR3ZWJpbnNwZWN0b3IuaCIKICNpbmNsdWRlICJ3ZWJraXR3ZWJpbnNwZWN0
b3Jwcml2YXRlLmgiCisjaW5jbHVkZSAid2Via2l0d2VicG9saWN5ZGVjaXNpb24uaCIKKyNpbmNs
dWRlICJ3ZWJraXR3ZWJyZXNvdXJjZS5oIgogI2luY2x1ZGUgIndlYmtpdHdlYnZpZXdwcml2YXRl
LmgiCiAjaW5jbHVkZSA8Z2RrL2dka2tleXN5bXMuaD4KICNpbmNsdWRlIDxnbGliL2dpMThuLWxp
Yi5oPgo=
</data>
<flag name="review"
          id="67128"
          type_id="1"
          status="+"
          setter="mrobinson"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>77720</attachid>
            <date>2010-12-31 07:56:10 -0800</date>
            <delta_ts>2011-01-03 04:55:42 -0800</delta_ts>
            <desc>final patch</desc>
            <filename>0001-Final-private-splitting.patch</filename>
            <type>text/plain</type>
            <size>51544</size>
            <attacher name="Gustavo Noronha (kov)">gustavo</attacher>
            
              <data encoding="base64">RnJvbSA3OTY1ZDY5ODcwNGE3ZjljYzFjY2RhOTAzMDU0ZWMzNzcwYjI1ZGFjIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBHdXN0YXZvIE5vcm9uaGEgU2lsdmEgPGduc0Bnbm9tZS5vcmc+
CkRhdGU6IEZyaSwgMzEgRGVjIDIwMTAgMTM6NTA6NDEgLTAyMDAKU3ViamVjdDogW1BBVENIXSBG
aW5hbCBwcml2YXRlIHNwbGl0dGluZwoKLS0tCiBXZWJDb3JlL0NoYW5nZUxvZyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTIgKysKIFdlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy9Db2RlR2VuZXJhdG9yR09iamVjdC5wbSAgIHwgICAgMyArLQogV2ViS2l0L2d0ay9DaGFuZ2VM
b2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDU4ICsrKysrKysKIFdlYktpdC9n
dGsvR05VbWFrZWZpbGUuYW0gICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgNiArLQogV2Vi
S2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuY3BwICAgICAgfCAgICA4ICst
CiBXZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0NvbnRleHRNZW51Q2xpZW50R3RrLmNwcCB8ICAg
IDEgLQogV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9Eb2N1bWVudExvYWRlckd0ay5jcHAgICAg
fCAgICA4ICstCiBXZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0RyYWdDbGllbnRHdGsuY3BwICAg
ICAgICB8ICAgIDEgLQogLi4uL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0
ay5jcHAgICAgfCAgIDIyICsrLS0KIFdlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xp
ZW50R3RrLmNwcCAgICAgIHwgICAgMiArLQogV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9GcmFt
ZUxvYWRlckNsaWVudEd0ay5jcHAgfCAgIDExICstCiBXZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0
L0luc3BlY3RvckNsaWVudEd0ay5jcHAgICB8ICAgIDEgLQogV2ViS2l0L2d0ay93ZWJraXQvd2Vi
a2l0LmggICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAxICsKIFdlYktpdC9ndGsvd2Via2l0
L3dlYmtpdGFwcGxpY2F0aW9uY2FjaGUuY3BwICAgICAgIHwgICAgNyArLQogV2ViS2l0L2d0ay93
ZWJraXQvd2Via2l0ZG93bmxvYWQuY3BwICAgICAgICAgICAgICAgfCAgIDEwICstCiAuLi4vZ3Rr
L3dlYmtpdC93ZWJraXRnZW9sb2NhdGlvbnBvbGljeWRlY2lzaW9uLmNwcCB8ICAgIDMgKy0KIFdl
YktpdC9ndGsvd2Via2l0L3dlYmtpdGhpdHRlc3RyZXN1bHQuY3BwICAgICAgICAgIHwgICAgNyAr
LQogV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0bmV0d29ya3JlcXVlc3QuY3BwICAgICAgICAgfCAg
ICA2ICstCiBXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRuZXR3b3JrcmVzcG9uc2UuY3BwICAgICAg
ICB8ICAgIDQgKy0KIFdlYktpdC9ndGsvd2Via2l0L3dlYmtpdHByaXZhdGUuY3BwICAgICAgICAg
ICAgICAgIHwgIDE2NCAtLS0tLS0tLS0tLS0tLS0tLS0tLQogV2ViS2l0L2d0ay93ZWJraXQvd2Vi
a2l0cHJpdmF0ZS5oICAgICAgICAgICAgICAgICAgfCAgIDk0IC0tLS0tLS0tLS0tCiBXZWJLaXQv
Z3RrL3dlYmtpdC93ZWJraXRzZWN1cml0eW9yaWdpbi5jcHAgICAgICAgICB8ICAgIDIgKy0KIFdl
YktpdC9ndGsvd2Via2l0L3dlYmtpdHZpZXdwb3J0YXR0cmlidXRlcy5jcHAgICAgIHwgICAgNCAr
LQogV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2ViYmFja2ZvcndhcmRsaXN0LmNwcCAgICAgfCAg
ICAzICstCiBXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJkYXRhYmFzZS5jcHAgICAgICAgICAg
ICB8ICAgIDIgKy0KIFdlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYmRhdGFzb3VyY2UuY3BwICAg
ICAgICAgIHwgICAzMSArKy0tCiBXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJmcmFtZS5jcHAg
ICAgICAgICAgICAgICB8ICAgIDIgKy0KIFdlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYmZyYW1l
cHJpdmF0ZS5oICAgICAgICAgIHwgICAgMyArCiBXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJo
aXN0b3J5aXRlbS5jcHAgICAgICAgICB8ICAgIDMgKy0KIFdlYktpdC9ndGsvd2Via2l0L3dlYmtp
dHdlYmluc3BlY3Rvci5jcHAgICAgICAgICAgIHwgICAgMiArLQogV2ViS2l0L2d0ay93ZWJraXQv
d2Via2l0d2VibmF2aWdhdGlvbmFjdGlvbi5jcHAgICAgfCAgIDEwICstCiBXZWJLaXQvZ3RrL3dl
YmtpdC93ZWJraXR3ZWJwbHVnaW4uY3BwICAgICAgICAgICAgICB8ICAgIDIgKy0KIFdlYktpdC9n
dGsvd2Via2l0L3dlYmtpdHdlYnBsdWdpbmRhdGFiYXNlLmNwcCAgICAgIHwgICAgMiArLQogV2Vi
S2l0L2d0ay93ZWJraXQvd2Via2l0d2VicGx1Z2lucHJpdmF0ZS5oICAgICAgICAgfCAgICAxICsK
IFdlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnBvbGljeWRlY2lzaW9uLmNwcCAgICAgIHwgICAg
MiArLQogV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2VicmVzb3VyY2UuY3BwICAgICAgICAgICAg
fCAgICA4ICstCiBXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJzZXR0aW5ncy5jcHAgICAgICAg
ICAgICB8ICAgMTQgKystCiBXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJzZXR0aW5nc3ByaXZh
dGUuaCAgICAgICB8ICAgIDggKwogV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vidmlldy5jcHAg
ICAgICAgICAgICAgICAgfCAgMTM4ICstLS0tLS0tLS0tLS0tLS0tCiBXZWJLaXQvZ3RrL3dlYmtp
dC93ZWJraXR3ZWJ2aWV3LmggICAgICAgICAgICAgICAgICB8ICAgMzAgLS0tLQogV2ViS2l0L2d0
ay93ZWJraXQvd2Via2l0d2Vid2luZG93ZmVhdHVyZXMuY3BwICAgICAgfCAgIDY2ICsrKystLS0t
CiA0MSBmaWxlcyBjaGFuZ2VkLCAyMjMgaW5zZXJ0aW9ucygrKSwgNTM5IGRlbGV0aW9ucygtKQog
ZGVsZXRlIG1vZGUgMTAwNjQ0IFdlYktpdC9ndGsvd2Via2l0L3dlYmtpdHByaXZhdGUuY3BwCiBk
ZWxldGUgbW9kZSAxMDA2NDQgV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0cHJpdmF0ZS5oCgpkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBhZmE4
NWM2Li43YmM3NGFhIDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3Jl
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDEwLTEyLTMxICBHdXN0YXZvIE5vcm9uaGEg
U2lsdmEgIDxnbnNAZ25vbWUub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIGFzZAorCisgICAgICAgIE5lZWQgYSBzaG9ydCBkZXNjcmlwdGlvbiBh
bmQgYnVnIFVSTCAoT09QUyEpCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLiAoT09QUyEpCisKKyAg
ICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JHT2JqZWN0LnBtOgorCiAyMDEw
LTEyLTMxICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUnViYmVy
LXN0YW1wZWQgYnkgRXJpYyBTZWlkZWwuCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvQ29kZUdlbmVyYXRvckdPYmplY3QucG0gYi9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
Q29kZUdlbmVyYXRvckdPYmplY3QucG0KaW5kZXggZTI3NzNiOC4uNWQyNzhkZSAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JHT2JqZWN0LnBtCisrKyBi
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yR09iamVjdC5wbQpAQCAtMTMz
Myw4ICsxMzMzLDkgQEAgc3ViIEdlbmVyYXRlIHsKICAgICBAY1ByZWZpeCA9IHNwbGl0KCJcciIs
ICRsaWNlbmNlVGVtcGxhdGUpOwogICAgIHB1c2goQGNQcmVmaXgsICJcbiIpOwogCisgICAgJGlt
cGxJbmNsdWRlc3sid2Via2l0ZGVmaW5lcy5oIn0gPSAxOworICAgICRpbXBsSW5jbHVkZXN7Indl
YmtpdGdlbmVyYWxwcml2YXRlLmgifSA9IDE7CiAgICAgJGltcGxJbmNsdWRlc3sid2Via2l0bWFy
c2hhbC5oIn0gPSAxOwotICAgICRpbXBsSW5jbHVkZXN7IndlYmtpdHByaXZhdGUuaCJ9ID0gMTsK
ICAgICAkaW1wbEluY2x1ZGVzeyJET01PYmplY3RDYWNoZS5oIn0gPSAxOwogICAgICRpbXBsSW5j
bHVkZXN7IldlYktpdERPTUJpbmRpbmcuaCJ9ID0gMTsKICAgICAkaW1wbEluY2x1ZGVzeyJnb2Jq
ZWN0L0NvbnZlcnRUb1VURjhTdHJpbmcuaCJ9ID0gMTsKZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsv
Q2hhbmdlTG9nIGIvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKaW5kZXggYTE1N2NlNS4uMDU0MjJhNiAx
MDA2NDQKLS0tIGEvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L2d0ay9DaGFuZ2VM
b2cKQEAgLTEsMyArMSw2MSBAQAorMjAxMC0xMi0zMSAgR3VzdGF2byBOb3JvbmhhIFNpbHZhICA8
Z3VzdGF2by5ub3JvbmhhQGNvbGxhYm9yYS5jby51az4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbR1RLXSBTcGxpdCB3ZWJraXRwcml2YXRlLntjcHAs
aH0gaW4gbW9yZSBtYW5hZ2VhYmxlIGNodW5rcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTA2OTgKKworICAgICAgICBGaW5hbCBwYXRjaCwgcmVtb3Zp
bmcgd2Via2l0cHJpdmF0ZS57Y3BwLGh9LCBhbmQgYWRkaW5nIGEKKyAgICAgICAgd2Via2l0Z2Vu
ZXJhbCBtb2R1bGUgdG8gaG9sZCBub24tb2JqZWN0LXNwZWNpZmljIGZ1bmN0aW9ucyBhbmQKKyAg
ICAgICAgZGVmaW5pdGlvbnMgdGhhdCBkbyBub3QgbWFrZSBzZW5zZSBvbiB0aGVpciBvd24uCisK
KyAgICAgICAgKiBHTlVtYWtlZmlsZS5hbToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJv
bWVDbGllbnRHdGsuY3BwOgorICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnQ6OmNyZWF0ZVdp
bmRvdyk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ29udGV4dE1lbnVDbGllbnRHdGsuY3Bw
OgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0RvY3VtZW50TG9hZGVyR3RrLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6RG9jdW1lbnRMb2FkZXI6OmF0dGFjaFRvRnJhbWUpOgorICAgICAgICAqIFdl
YkNvcmVTdXBwb3J0L0RyYWdDbGllbnRHdGsuY3BwOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0
L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5jcHA6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQv
RWRpdG9yQ2xpZW50R3RrLmNwcDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRl
ckNsaWVudEd0ay5jcHA6CisgICAgICAgIChXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50OjpjcmVh
dGVEb2N1bWVudExvYWRlcik6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvSW5zcGVjdG9yQ2xp
ZW50R3RrLmNwcDoKKyAgICAgICAgKiB3ZWJraXQvd2Via2l0Lmg6CisgICAgICAgICogd2Via2l0
L3dlYmtpdGFwcGxpY2F0aW9uY2FjaGUuY3BwOgorICAgICAgICAod2Via2l0X2FwcGxpY2F0aW9u
X2NhY2hlX3NldF9tYXhpbXVtX3NpemUpOgorICAgICAgICAqIHdlYmtpdC93ZWJraXRkb3dubG9h
ZC5jcHA6CisgICAgICAgICogd2Via2l0L3dlYmtpdGdlb2xvY2F0aW9ucG9saWN5ZGVjaXNpb24u
Y3BwOgorICAgICAgICAqIHdlYmtpdC93ZWJraXRoaXR0ZXN0cmVzdWx0LmNwcDoKKyAgICAgICAg
KiB3ZWJraXQvd2Via2l0bmV0d29ya3JlcXVlc3QuY3BwOgorICAgICAgICAqIHdlYmtpdC93ZWJr
aXRuZXR3b3JrcmVzcG9uc2UuY3BwOgorICAgICAgICAqIHdlYmtpdC93ZWJraXRwcml2YXRlLmNw
cDogUmVtb3ZlZC4KKyAgICAgICAgKiB3ZWJraXQvd2Via2l0cHJpdmF0ZS5oOiBSZW1vdmVkLgor
ICAgICAgICAqIHdlYmtpdC93ZWJraXRzZWN1cml0eW9yaWdpbi5jcHA6CisgICAgICAgICogd2Vi
a2l0L3dlYmtpdHZpZXdwb3J0YXR0cmlidXRlcy5jcHA6CisgICAgICAgICogd2Via2l0L3dlYmtp
dHdlYmJhY2tmb3J3YXJkbGlzdC5jcHA6CisgICAgICAgICogd2Via2l0L3dlYmtpdHdlYmRhdGFi
YXNlLmNwcDoKKyAgICAgICAgKiB3ZWJraXQvd2Via2l0d2ViZGF0YXNvdXJjZS5jcHA6CisgICAg
ICAgICh3ZWJraXRfd2ViX2RhdGFfc291cmNlX25ld193aXRoX3JlcXVlc3QpOgorICAgICAgICAo
V2ViS2l0OjpraXROZXcpOgorICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJmcmFtZS5jcHA6Cisg
ICAgICAgICogd2Via2l0L3dlYmtpdHdlYmZyYW1lcHJpdmF0ZS5oOgorICAgICAgICAqIHdlYmtp
dC93ZWJraXR3ZWJoaXN0b3J5aXRlbS5jcHA6CisgICAgICAgICogd2Via2l0L3dlYmtpdHdlYmlu
c3BlY3Rvci5jcHA6CisgICAgICAgICogd2Via2l0L3dlYmtpdHdlYm5hdmlnYXRpb25hY3Rpb24u
Y3BwOgorICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJwbHVnaW4uY3BwOgorICAgICAgICAqIHdl
YmtpdC93ZWJraXR3ZWJwbHVnaW5kYXRhYmFzZS5jcHA6CisgICAgICAgICogd2Via2l0L3dlYmtp
dHdlYnBsdWdpbnByaXZhdGUuaDoKKyAgICAgICAgKiB3ZWJraXQvd2Via2l0d2VicG9saWN5ZGVj
aXNpb24uY3BwOgorICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJyZXNvdXJjZS5jcHA6CisgICAg
ICAgICogd2Via2l0L3dlYmtpdHdlYnNldHRpbmdzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6Y29y
ZSk6CisgICAgICAgICogd2Via2l0L3dlYmtpdHdlYnNldHRpbmdzcHJpdmF0ZS5oOgorICAgICAg
ICAqIHdlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcDoKKyAgICAgICAgKiB3ZWJraXQvd2Via2l0d2Vi
dmlldy5oOgorICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJ3aW5kb3dmZWF0dXJlcy5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OmtpdE5ldyk6CisKIDIwMTAtMTItMjkgIE1hcnRpbiBSb2JpbnNvbiAg
PG1yb2JpbnNvbkBpZ2FsaWEuY29tPgogCiAgICAgICAgIEJ1aWxkIGZpeCBmb3IgR1RLKy4KZGlm
ZiAtLWdpdCBhL1dlYktpdC9ndGsvR05VbWFrZWZpbGUuYW0gYi9XZWJLaXQvZ3RrL0dOVW1ha2Vm
aWxlLmFtCmluZGV4IGQ1ODQyZmMuLjZmNTFjYzkgMTAwNjQ0Ci0tLSBhL1dlYktpdC9ndGsvR05V
bWFrZWZpbGUuYW0KKysrIGIvV2ViS2l0L2d0ay9HTlVtYWtlZmlsZS5hbQpAQCAtMTkxLDkgKzE5
MSwxMyBAQCB3ZWJraXRndGtfc291cmNlcyArPSBcCiAJV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9y
dC9QYXN0ZWJvYXJkSGVscGVyR3RrLmNwcCBcCiAJV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9Q
YXN0ZWJvYXJkSGVscGVyR3RrLmggXAogCVdlYktpdC9ndGsvd2Via2l0L3dlYmtpdGFwcGxpY2F0
aW9uY2FjaGUuY3BwIFwKKwlXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRhcHBsaWNhdGlvbmNhY2hl
cHJpdmF0ZS5oIFwKIAlXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRkb3dubG9hZC5jcHAgXAogCVdl
YktpdC9ndGsvd2Via2l0L3dlYmtpdGRvd25sb2FkcHJpdmF0ZS5oIFwKIAlXZWJLaXQvZ3RrL3dl
YmtpdC93ZWJraXRlcnJvci5jcHAgXAorCVdlYktpdC9ndGsvd2Via2l0L3dlYmtpdGdlbmVyYWwu
Y3BwIFwKKwlXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRnZW5lcmFsLmggXAorCVdlYktpdC9ndGsv
d2Via2l0L3dlYmtpdGdlbmVyYWxwcml2YXRlLmggXAogCVdlYktpdC9ndGsvd2Via2l0L3dlYmtp
dGdlb2xvY2F0aW9ucG9saWN5ZGVjaXNpb24uY3BwIFwKIAlXZWJLaXQvZ3RrL3dlYmtpdC93ZWJr
aXRoaXR0ZXN0cmVzdWx0LmNwcCBcCiAJV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0aGl0dGVzdHJl
c3VsdHByaXZhdGUuaCBcCkBAIC0yMDEsOCArMjA1LDYgQEAgd2Via2l0Z3RrX3NvdXJjZXMgKz0g
XAogCVdlYktpdC9ndGsvd2Via2l0L3dlYmtpdG5ldHdvcmtyZXF1ZXN0cHJpdmF0ZS5oIFwKIAlX
ZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRuZXR3b3JrcmVzcG9uc2UuY3BwIFwKIAlXZWJLaXQvZ3Rr
L3dlYmtpdC93ZWJraXRuZXR3b3JrcmVzcG9uc2Vwcml2YXRlLmggXAotCVdlYktpdC9ndGsvd2Vi
a2l0L3dlYmtpdHByaXZhdGUuY3BwIFwKLQlXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRwcml2YXRl
LmggXAogCVdlYktpdC9ndGsvd2Via2l0L3dlYmtpdHNlY3VyaXR5b3JpZ2luLmNwcCBcCiAJV2Vi
S2l0L2d0ay93ZWJraXQvd2Via2l0c2VjdXJpdHlvcmlnaW5wcml2YXRlLmggXAogCVdlYktpdC9n
dGsvd2Via2l0L3dlYmtpdHNvdXBhdXRoZGlhbG9nLmMgXApkaWZmIC0tZ2l0IGEvV2ViS2l0L2d0
ay9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuY3BwIGIvV2ViS2l0L2d0ay9XZWJDb3Jl
U3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuY3BwCmluZGV4IDc5MTBjN2EuLjZkZjU5ODAgMTAwNjQ0
Ci0tLSBhL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNwcAorKysg
Yi9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5jcHAKQEAgLTQ4LDEz
ICs0OCwxNCBAQAogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCiAjaW5jbHVkZSAiV2luZG93
RmVhdHVyZXMuaCIKICNpbmNsdWRlICJ3ZWJraXRnZW9sb2NhdGlvbnBvbGljeWRlY2lzaW9uLmgi
CisjaW5jbHVkZSAid2Via2l0Z2VvbG9jYXRpb25wb2xpY3lkZWNpc2lvbnByaXZhdGUuaCIKICNp
bmNsdWRlICJ3ZWJraXRuZXR3b3JrcmVxdWVzdC5oIgotI2luY2x1ZGUgIndlYmtpdHByaXZhdGUu
aCIKICNpbmNsdWRlICJ3ZWJraXRzZWN1cml0eW9yaWdpbnByaXZhdGUuaCIKICNpbmNsdWRlICJ3
ZWJraXR2aWV3cG9ydGF0dHJpYnV0ZXNwcml2YXRlLmgiCiAjaW5jbHVkZSAid2Via2l0d2ViZnJh
bWVwcml2YXRlLmgiCiAjaW5jbHVkZSAid2Via2l0d2Vidmlldy5oIgogI2luY2x1ZGUgIndlYmtp
dHdlYnZpZXdwcml2YXRlLmgiCisjaW5jbHVkZSAid2Via2l0d2Vid2luZG93ZmVhdHVyZXNwcml2
YXRlLmgiCiAjaW5jbHVkZSA8Z2xpYi5oPgogI2luY2x1ZGUgPGdsaWIvZ2kxOG4tbGliLmg+CiAj
aW5jbHVkZSA8Z3RrL2d0ay5oPgpAQCAtMTU2LDkgKzE1Nyw4IEBAIFBhZ2UqIENocm9tZUNsaWVu
dDo6Y3JlYXRlV2luZG93KEZyYW1lKiBmcmFtZSwgY29uc3QgRnJhbWVMb2FkUmVxdWVzdCYgZnJh
bWVMb2FkCiAgICAgaWYgKCF3ZWJWaWV3KQogICAgICAgICByZXR1cm4gMDsKIAotICAgIFdlYktp
dFdlYldpbmRvd0ZlYXR1cmVzKiB3ZWJXaW5kb3dGZWF0dXJlcyA9IHdlYmtpdF93ZWJfd2luZG93
X2ZlYXR1cmVzX25ld19mcm9tX2NvcmVfZmVhdHVyZXMoY29yZUZlYXR1cmVzKTsKLSAgICBnX29i
amVjdF9zZXQod2ViVmlldywgIndpbmRvdy1mZWF0dXJlcyIsIHdlYldpbmRvd0ZlYXR1cmVzLCBO
VUxMKTsKLSAgICBnX29iamVjdF91bnJlZih3ZWJXaW5kb3dGZWF0dXJlcyk7CisgICAgUGxhdGZv
cm1SZWZQdHI8V2ViS2l0V2ViV2luZG93RmVhdHVyZXM+IHdlYldpbmRvd0ZlYXR1cmVzKGFkb3B0
UGxhdGZvcm1SZWYoa2l0TmV3KGNvcmVGZWF0dXJlcykpKTsKKyAgICBnX29iamVjdF9zZXQod2Vi
VmlldywgIndpbmRvdy1mZWF0dXJlcyIsIHdlYldpbmRvd0ZlYXR1cmVzLmdldCgpLCBOVUxMKTsK
IAogICAgIGlmICghZnJhbWVMb2FkUmVxdWVzdC5pc0VtcHR5KCkpCiAgICAgICAgIHdlYmtpdF93
ZWJfdmlld19vcGVuKHdlYlZpZXcsIGZyYW1lTG9hZFJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0KCku
dXJsKCkuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7CmRpZmYgLS1naXQgYS9XZWJLaXQvZ3RrL1dl
YkNvcmVTdXBwb3J0L0NvbnRleHRNZW51Q2xpZW50R3RrLmNwcCBiL1dlYktpdC9ndGsvV2ViQ29y
ZVN1cHBvcnQvQ29udGV4dE1lbnVDbGllbnRHdGsuY3BwCmluZGV4IDEzN2Y5YWIuLmQ5YzU5ZDAg
MTAwNjQ0Ci0tLSBhL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ29udGV4dE1lbnVDbGllbnRH
dGsuY3BwCisrKyBiL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ29udGV4dE1lbnVDbGllbnRH
dGsuY3BwCkBAIC0yNiw3ICsyNiw2IEBACiAjaW5jbHVkZSAiS1VSTC5oIgogI2luY2x1ZGUgIk5v
dEltcGxlbWVudGVkLmgiCiAjaW5jbHVkZSAiUGFnZS5oIgotI2luY2x1ZGUgIndlYmtpdHByaXZh
dGUuaCIKICNpbmNsdWRlICJ3ZWJraXR3ZWJ2aWV3cHJpdmF0ZS5oIgogI2luY2x1ZGUgPGdsaWIt
b2JqZWN0Lmg+CiAjaW5jbHVkZSA8Z2xpYi9naTE4bi1saWIuaD4KZGlmZiAtLWdpdCBhL1dlYktp
dC9ndGsvV2ViQ29yZVN1cHBvcnQvRG9jdW1lbnRMb2FkZXJHdGsuY3BwIGIvV2ViS2l0L2d0ay9X
ZWJDb3JlU3VwcG9ydC9Eb2N1bWVudExvYWRlckd0ay5jcHAKaW5kZXggMmIzNTVjYi4uYmVkYjEy
OSAxMDA2NDQKLS0tIGEvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9Eb2N1bWVudExvYWRlckd0
ay5jcHAKKysrIGIvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9Eb2N1bWVudExvYWRlckd0ay5j
cHAKQEAgLTMwLDggKzMwLDkgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJEb2N1
bWVudExvYWRlckd0ay5oIgogCi0jaW5jbHVkZSAid2Via2l0cHJpdmF0ZS5oIgorI2luY2x1ZGUg
IkdSZWZQdHIuaCIKICNpbmNsdWRlICJ3ZWJraXR3ZWJkYXRhc291cmNlLmgiCisjaW5jbHVkZSAi
d2Via2l0d2ViZGF0YXNvdXJjZXByaXZhdGUuaCIKIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7
CiAKQEAgLTY4LDkgKzY5LDggQEAgdm9pZCBEb2N1bWVudExvYWRlcjo6YXR0YWNoVG9GcmFtZSgp
CiAKICAgICAvLyBXZSBtYXkgZ2V0IHRvIGhlcmUgd2l0aG91dCBoYXZpbmcgYSBkYXRhc291cmNl
LCB3aGVuIHRoZSBkYXRhCiAgICAgLy8gaXMgY29taW5nIGZyb20gdGhlIHBhZ2UgY2FjaGUuCi0g
ICAgV2ViS2l0V2ViRGF0YVNvdXJjZSogZGF0YVNvdXJjZSA9IHdlYmtpdF93ZWJfZGF0YV9zb3Vy
Y2VfbmV3X3dpdGhfbG9hZGVyKHRoaXMpOwotICAgIHNldERhdGFTb3VyY2UoZGF0YVNvdXJjZSk7
Ci0gICAgZ19vYmplY3RfdW5yZWYoZGF0YVNvdXJjZSk7CisgICAgUGxhdGZvcm1SZWZQdHI8V2Vi
S2l0V2ViRGF0YVNvdXJjZT4gZGF0YVNvdXJjZShhZG9wdFBsYXRmb3JtUmVmKGtpdE5ldyh0aGlz
KSkpOworICAgIHNldERhdGFTb3VyY2UoZGF0YVNvdXJjZS5nZXQoKSk7CiB9CiAKIHZvaWQgRG9j
dW1lbnRMb2FkZXI6OmRldGFjaEZyb21GcmFtZSgpCmRpZmYgLS1naXQgYS9XZWJLaXQvZ3RrL1dl
YkNvcmVTdXBwb3J0L0RyYWdDbGllbnRHdGsuY3BwIGIvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9y
dC9EcmFnQ2xpZW50R3RrLmNwcAppbmRleCA1ZjM5MWVjLi5kYmU3ZGRkIDEwMDY0NAotLS0gYS9X
ZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0RyYWdDbGllbnRHdGsuY3BwCisrKyBiL1dlYktpdC9n
dGsvV2ViQ29yZVN1cHBvcnQvRHJhZ0NsaWVudEd0ay5jcHAKQEAgLTMyLDcgKzMyLDYgQEAKICNp
bmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgogI2luY2x1ZGUgIlBhc3RlYm9hcmRIZWxwZXIuaCIK
ICNpbmNsdWRlICJSZW5kZXJPYmplY3QuaCIKLSNpbmNsdWRlICJ3ZWJraXRwcml2YXRlLmgiCiAj
aW5jbHVkZSAid2Via2l0d2ViZnJhbWVwcml2YXRlLmgiCiAjaW5jbHVkZSAid2Via2l0d2Vidmll
d3ByaXZhdGUuaCIKICNpbmNsdWRlICJ3ZWJraXR3ZWJ2aWV3LmgiCmRpZmYgLS1naXQgYS9XZWJL
aXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5jcHAgYi9XZWJL
aXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5jcHAKaW5kZXgg
YTc1MWM3Ny4uNWQ4ZTQwMCAxMDA2NDQKLS0tIGEvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9E
dW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuY3BwCisrKyBiL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBv
cnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmNwcApAQCAtMjEsMTUgKzIxLDE2IEBACiAjaW5j
bHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmgiCiAK
LSNpbmNsdWRlICJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckF0ay5oIgotI2luY2x1ZGUgIkFu
aW1hdGlvbkNvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJBUElDYXN0LmgiCiAjaW5jbHVkZSAiQVhP
YmplY3RDYWNoZS5oIgorI2luY2x1ZGUgIkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyQXRrLmgi
CisjaW5jbHVkZSAiQW5pbWF0aW9uQ29udHJvbGxlci5oIgorI2luY2x1ZGUgIkRPTVdyYXBwZXJX
b3JsZC5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRm9jdXNDb250cm9sbGVy
LmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXJDbGllbnRHdGsuaCIKLSNpbmNsdWRlICJGcmFtZVZp
ZXcuaCIKICNpbmNsdWRlICJGcmFtZVRyZWUuaCIKKyNpbmNsdWRlICJGcmFtZVZpZXcuaCIKICNp
bmNsdWRlICJHQ0NvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQuaCIKICNp
bmNsdWRlICJKU0RPTVdpbmRvdy5oIgpAQCAtNDMsMjEgKzQ0LDIwIEBACiAjaW5jbHVkZSAiUGxh
dGZvcm1TdHJpbmcuaCIKICNpbmNsdWRlICJQcmludENvbnRleHQuaCIKICNpbmNsdWRlICJSZW5k
ZXJMaXN0SXRlbS5oIgotI2luY2x1ZGUgIlJlbmRlclZpZXcuaCIKICNpbmNsdWRlICJSZW5kZXJU
cmVlQXNUZXh0LmgiCisjaW5jbHVkZSAiUmVuZGVyVmlldy5oIgogI2luY2x1ZGUgIlNlY3VyaXR5
T3JpZ2luLmgiCi0jaWYgRU5BQkxFKFNWRykKLSNpbmNsdWRlICJTVkdTTUlMRWxlbWVudC5oIgot
I2VuZGlmCiAjaW5jbHVkZSAiV29ya2VyVGhyZWFkLmgiCi0jaW5jbHVkZSAid2Via2l0cHJpdmF0
ZS5oIgorI2luY2x1ZGUgIndlYmtpdHdlYmZyYW1lLmgiCiAjaW5jbHVkZSAid2Via2l0d2ViZnJh
bWVwcml2YXRlLmgiCi0jaW5jbHVkZSAid2Via2l0d2Vidmlld3ByaXZhdGUuaCIKICNpbmNsdWRl
ICJ3ZWJraXR3ZWJ2aWV3LmgiCi0jaW5jbHVkZSAid2Via2l0d2ViZnJhbWUuaCIKLSNpbmNsdWRl
ICJET01XcmFwcGVyV29ybGQuaCIKKyNpbmNsdWRlICJ3ZWJraXR3ZWJ2aWV3cHJpdmF0ZS5oIgog
I2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0FQSUNhc3QuaD4KIAorI2lmIEVOQUJMRShTVkcpCisj
aW5jbHVkZSAiU1ZHU01JTEVsZW1lbnQuaCIKKyNlbmRpZgorCiB1c2luZyBuYW1lc3BhY2UgSlND
OwogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwpkaWZm
IC0tZ2l0IGEvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRHdGsuY3BwIGIv
V2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRHdGsuY3BwCmluZGV4IDNmNTVj
Y2EuLjYxY2E1YWIgMTAwNjQ0Ci0tLSBhL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRWRpdG9y
Q2xpZW50R3RrLmNwcAorKysgYi9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVu
dEd0ay5jcHAKQEAgLTQ0LDggKzQ0LDggQEAKICNpbmNsdWRlICJXZWJLaXRET01Ob2RlUHJpdmF0
ZS5oIgogI2luY2x1ZGUgIldlYktpdERPTVJhbmdlUHJpdmF0ZS5oIgogI2luY2x1ZGUgIldpbmRv
d3NLZXlib2FyZENvZGVzLmgiCisjaW5jbHVkZSAid2Via2l0Z2VuZXJhbHByaXZhdGUuaCIKICNp
bmNsdWRlICJ3ZWJraXRtYXJzaGFsLmgiCi0jaW5jbHVkZSAid2Via2l0cHJpdmF0ZS5oIgogI2lu
Y2x1ZGUgIndlYmtpdHdlYnNldHRpbmdzcHJpdmF0ZS5oIgogI2luY2x1ZGUgIndlYmtpdHdlYnZp
ZXdwcml2YXRlLmgiCiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgpkaWZmIC0tZ2l0IGEv
V2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5jcHAgYi9XZWJL
aXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNwcAppbmRleCA4OTVl
NjRlLi4xMmI4YmY0IDEwMDY0NAotLS0gYS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0ZyYW1l
TG9hZGVyQ2xpZW50R3RrLmNwcAorKysgYi9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0ZyYW1l
TG9hZGVyQ2xpZW50R3RrLmNwcApAQCAtNTgsMTQgKzU4LDE3IEBACiAjaW5jbHVkZSAiUmVzb3Vy
Y2VIYW5kbGUuaCIKICNpbmNsdWRlICJSZXNvdXJjZVJlcXVlc3QuaCIKICNpbmNsdWRlICJTY3Jp
cHRDb250cm9sbGVyLmgiCisjaW5jbHVkZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRlICJ3ZWJraXRl
cnJvci5oIgorI2luY2x1ZGUgIndlYmtpdGdlbmVyYWwuaCIKKyNpbmNsdWRlICJ3ZWJraXRnZW5l
cmFscHJpdmF0ZS5oIgogI2luY2x1ZGUgIndlYmtpdG5ldHdvcmtyZXF1ZXN0LmgiCiAjaW5jbHVk
ZSAid2Via2l0bmV0d29ya3JlcXVlc3Rwcml2YXRlLmgiCiAjaW5jbHVkZSAid2Via2l0bmV0d29y
a3Jlc3BvbnNlLmgiCiAjaW5jbHVkZSAid2Via2l0bmV0d29ya3Jlc3BvbnNlcHJpdmF0ZS5oIgot
I2luY2x1ZGUgIndlYmtpdHByaXZhdGUuaCIKICNpbmNsdWRlICJ3ZWJraXR2aWV3cG9ydGF0dHJp
YnV0ZXMuaCIKICNpbmNsdWRlICJ3ZWJraXR2aWV3cG9ydGF0dHJpYnV0ZXNwcml2YXRlLmgiCisj
aW5jbHVkZSAid2Via2l0d2ViZGF0YXNvdXJjZXByaXZhdGUuaCIKICNpbmNsdWRlICJ3ZWJraXR3
ZWJmcmFtZS5oIgogI2luY2x1ZGUgIndlYmtpdHdlYmZyYW1lcHJpdmF0ZS5oIgogI2luY2x1ZGUg
IndlYmtpdHdlYm5hdmlnYXRpb25hY3Rpb24uaCIKQEAgLTc0LDYgKzc3LDcgQEAKICNpbmNsdWRl
ICJ3ZWJraXR3ZWJwb2xpY3lkZWNpc2lvbnByaXZhdGUuaCIKICNpbmNsdWRlICJ3ZWJraXR3ZWJy
ZXNvdXJjZS5oIgogI2luY2x1ZGUgIndlYmtpdHdlYnJlc291cmNlcHJpdmF0ZS5oIgorI2luY2x1
ZGUgIndlYmtpdHdlYnNldHRpbmdzcHJpdmF0ZS5oIgogI2luY2x1ZGUgIndlYmtpdHdlYnZpZXcu
aCIKICNpbmNsdWRlICJ3ZWJraXR3ZWJ2aWV3cHJpdmF0ZS5oIgogI2luY2x1ZGUgPEphdmFTY3Jp
cHRDb3JlL0FQSUNhc3QuaD4KQEAgLTI0MCw5ICsyNDQsOCBAQCBXVEY6OlBhc3NSZWZQdHI8V2Vi
Q29yZTo6RG9jdW1lbnRMb2FkZXI+IEZyYW1lTG9hZGVyQ2xpZW50OjpjcmVhdGVEb2N1bWVudExv
YWRlcgogewogICAgIFJlZlB0cjxXZWJLaXQ6OkRvY3VtZW50TG9hZGVyPiBsb2FkZXIgPSBXZWJL
aXQ6OkRvY3VtZW50TG9hZGVyOjpjcmVhdGUocmVxdWVzdCwgc3Vic3RpdHV0ZURhdGEpOwogCi0g
ICAgV2ViS2l0V2ViRGF0YVNvdXJjZSogd2ViRGF0YVNvdXJjZSA9IHdlYmtpdF93ZWJfZGF0YV9z
b3VyY2VfbmV3X3dpdGhfbG9hZGVyKGxvYWRlci5nZXQoKSk7Ci0gICAgbG9hZGVyLT5zZXREYXRh
U291cmNlKHdlYkRhdGFTb3VyY2UpOwotICAgIGdfb2JqZWN0X3VucmVmKHdlYkRhdGFTb3VyY2Up
OworICAgIFBsYXRmb3JtUmVmUHRyPFdlYktpdFdlYkRhdGFTb3VyY2U+IHdlYkRhdGFTb3VyY2Uo
YWRvcHRQbGF0Zm9ybVJlZihraXROZXcobG9hZGVyLmdldCgpKSkpOworICAgIGxvYWRlci0+c2V0
RGF0YVNvdXJjZSh3ZWJEYXRhU291cmNlLmdldCgpKTsKIAogICAgIHJldHVybiBsb2FkZXIucmVs
ZWFzZSgpOwogfQpkaWZmIC0tZ2l0IGEvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9JbnNwZWN0
b3JDbGllbnRHdGsuY3BwIGIvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9JbnNwZWN0b3JDbGll
bnRHdGsuY3BwCmluZGV4IGMyNjkwNzguLmQzOTMwMmYgMTAwNjQ0Ci0tLSBhL1dlYktpdC9ndGsv
V2ViQ29yZVN1cHBvcnQvSW5zcGVjdG9yQ2xpZW50R3RrLmNwcAorKysgYi9XZWJLaXQvZ3RrL1dl
YkNvcmVTdXBwb3J0L0luc3BlY3RvckNsaWVudEd0ay5jcHAKQEAgLTI0LDcgKzI0LDYgQEAKICNp
bmNsdWRlICJJbnNwZWN0b3JDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQu
aCIKICNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgotI2luY2x1ZGUgIndlYmtpdHByaXZhdGUu
aCIKICNpbmNsdWRlICJ3ZWJraXR2ZXJzaW9uLmgiCiAjaW5jbHVkZSAid2Via2l0d2ViaW5zcGVj
dG9yLmgiCiAjaW5jbHVkZSAid2Via2l0d2ViaW5zcGVjdG9ycHJpdmF0ZS5oIgpkaWZmIC0tZ2l0
IGEvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0LmggYi9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXQu
aAppbmRleCBjMGQwZTMxLi5jZjM4ZmQ2IDEwMDY0NAotLS0gYS9XZWJLaXQvZ3RrL3dlYmtpdC93
ZWJraXQuaAorKysgYi9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXQuaApAQCAtMjUsNiArMjUsNyBA
QAogI2luY2x1ZGUgPHdlYmtpdC93ZWJraXRkZWZpbmVzLmg+CiAjaW5jbHVkZSA8d2Via2l0L3dl
YmtpdGRvbS5oPgogI2luY2x1ZGUgPHdlYmtpdC93ZWJraXRkb3dubG9hZC5oPgorI2luY2x1ZGUg
PHdlYmtpdC93ZWJraXRnZW5lcmFsLmg+CiAjaW5jbHVkZSA8d2Via2l0L3dlYmtpdGdlb2xvY2F0
aW9ucG9saWN5ZGVjaXNpb24uaD4KICNpbmNsdWRlIDx3ZWJraXQvd2Via2l0aGl0dGVzdHJlc3Vs
dC5oPgogI2luY2x1ZGUgPHdlYmtpdC93ZWJraXRuZXR3b3JrcmVxdWVzdC5oPgpkaWZmIC0tZ2l0
IGEvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0YXBwbGljYXRpb25jYWNoZS5jcHAgYi9XZWJLaXQv
Z3RrL3dlYmtpdC93ZWJraXRhcHBsaWNhdGlvbmNhY2hlLmNwcAppbmRleCBlOTY3ZDM0Li44N2Yz
YWI1IDEwMDY0NAotLS0gYS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRhcHBsaWNhdGlvbmNhY2hl
LmNwcAorKysgYi9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRhcHBsaWNhdGlvbmNhY2hlLmNwcApA
QCAtMTgsMTUgKzE4LDE0IEBACiAgKi8KIAogI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUg
IndlYmtpdHByaXZhdGUuaCIKLQotI2luY2x1ZGUgPHd0Zi9VbnVzZWRQYXJhbS5oPgogCiAjaW5j
bHVkZSAiQXBwbGljYXRpb25DYWNoZVN0b3JhZ2UuaCIKKyNpbmNsdWRlICJ3ZWJraXRhcHBsaWNh
dGlvbmNhY2hlcHJpdmF0ZS5oIgorI2luY2x1ZGUgPHd0Zi9VbnVzZWRQYXJhbS5oPgogCiB2b2lk
IHdlYmtpdF9hcHBsaWNhdGlvbl9jYWNoZV9zZXRfbWF4aW11bV9zaXplKHVuc2lnbmVkIGxvbmcg
bG9uZyBzaXplKQogewotI2lmIEVOQUJMRShPRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpICAgCisj
aWYgRU5BQkxFKE9GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUykKICAgICBXZWJDb3JlOjpjYWNoZVN0
b3JhZ2UoKS5lbXB0eSgpOwogICAgIFdlYkNvcmU6OmNhY2hlU3RvcmFnZSgpLnZhY3V1bURhdGFi
YXNlRmlsZSgpOwogICAgIFdlYkNvcmU6OmNhY2hlU3RvcmFnZSgpLnNldE1heGltdW1TaXplKHNp
emUpOwpkaWZmIC0tZ2l0IGEvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0ZG93bmxvYWQuY3BwIGIv
V2ViS2l0L2d0ay93ZWJraXQvd2Via2l0ZG93bmxvYWQuY3BwCmluZGV4IDZiZTU5MWMuLjVjNmNj
YWMgMTAwNjQ0Ci0tLSBhL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdGRvd25sb2FkLmNwcAorKysg
Yi9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRkb3dubG9hZC5jcHAKQEAgLTE5LDggKzE5LDggQEAK
ICAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAid2Via2l0ZG93bmxvYWQuaCIK
IAotI2luY2x1ZGUgPGdsaWIvZ2kxOG4tbGliLmg+CiAjaW5jbHVkZSAiR1JlZlB0ci5oIgogI2lu
Y2x1ZGUgIk5vbmNvcHlhYmxlLmgiCiAjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKQEAgLTI4
LDE3ICsyOCwxNyBAQAogI2luY2x1ZGUgIlJlc291cmNlSGFuZGxlSW50ZXJuYWwuaCIKICNpbmNs
dWRlICJSZXNvdXJjZVJlcXVlc3QuaCIKICNpbmNsdWRlICJSZXNvdXJjZVJlc3BvbnNlLmgiCi0j
aW5jbHVkZSAid2Via2l0ZG93bmxvYWQuaCIKICNpbmNsdWRlICJ3ZWJraXRkb3dubG9hZHByaXZh
dGUuaCIKICNpbmNsdWRlICJ3ZWJraXRlbnVtdHlwZXMuaCIKKyNpbmNsdWRlICJ3ZWJraXRnZW5l
cmFsLmgiCisjaW5jbHVkZSAid2Via2l0Z2VuZXJhbHByaXZhdGUuaCIKICNpbmNsdWRlICJ3ZWJr
aXRtYXJzaGFsLmgiCiAjaW5jbHVkZSAid2Via2l0bmV0d29ya3JlcXVlc3Rwcml2YXRlLmgiCiAj
aW5jbHVkZSAid2Via2l0bmV0d29ya3Jlc3BvbnNlLmgiCiAjaW5jbHVkZSAid2Via2l0bmV0d29y
a3Jlc3BvbnNlcHJpdmF0ZS5oIgotI2luY2x1ZGUgIndlYmtpdHByaXZhdGUuaCIKLSNpbmNsdWRl
IDx3dGYvdGV4dC9DU3RyaW5nLmg+Ci0KKyNpbmNsdWRlIDxnbGliL2dpMThuLWxpYi5oPgogI2lu
Y2x1ZGUgPGdsaWIvZ3N0ZGlvLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogCiAj
aWZkZWYgRVJST1IKICN1bmRlZiBFUlJPUgpkaWZmIC0tZ2l0IGEvV2ViS2l0L2d0ay93ZWJraXQv
d2Via2l0Z2VvbG9jYXRpb25wb2xpY3lkZWNpc2lvbi5jcHAgYi9XZWJLaXQvZ3RrL3dlYmtpdC93
ZWJraXRnZW9sb2NhdGlvbnBvbGljeWRlY2lzaW9uLmNwcAppbmRleCBjYjAyM2Q2Li4yNTIzYzli
IDEwMDY0NAotLS0gYS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRnZW9sb2NhdGlvbnBvbGljeWRl
Y2lzaW9uLmNwcAorKysgYi9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRnZW9sb2NhdGlvbnBvbGlj
eWRlY2lzaW9uLmNwcApAQCAtMjAsMTAgKzIwLDkgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNp
bmNsdWRlICJ3ZWJraXRnZW9sb2NhdGlvbnBvbGljeWRlY2lzaW9uLmgiCiAKLSNpbmNsdWRlICJ3
ZWJraXRwcml2YXRlLmgiCiAjaW5jbHVkZSAiR2VvbG9jYXRpb24uaCIKKyNpbmNsdWRlICJ3ZWJr
aXRnZW9sb2NhdGlvbnBvbGljeWRlY2lzaW9ucHJpdmF0ZS5oIgogCi11c2luZyBuYW1lc3BhY2Ug
V2ViS2l0OwogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIC8qKgpkaWZmIC0tZ2l0IGEvV2Vi
S2l0L2d0ay93ZWJraXQvd2Via2l0aGl0dGVzdHJlc3VsdC5jcHAgYi9XZWJLaXQvZ3RrL3dlYmtp
dC93ZWJraXRoaXR0ZXN0cmVzdWx0LmNwcAppbmRleCBmYTBiNDBiLi41NTZiMjgzIDEwMDY0NAot
LS0gYS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRoaXR0ZXN0cmVzdWx0LmNwcAorKysgYi9XZWJL
aXQvZ3RrL3dlYmtpdC93ZWJraXRoaXR0ZXN0cmVzdWx0LmNwcApAQCAtMjMsMTMgKzIzLDE0IEBA
CiAKICNpbmNsdWRlICJHT3duUHRyLmgiCiAjaW5jbHVkZSAiSGl0VGVzdFJlc3VsdC5oIgorI2lu
Y2x1ZGUgIktVUkwuaCIKICNpbmNsdWRlICJXZWJLaXRET01CaW5kaW5nLmgiCiAjaW5jbHVkZSAi
V2ViS2l0RE9NTm9kZS5oIgogI2luY2x1ZGUgIndlYmtpdGVudW10eXBlcy5oIgotI2luY2x1ZGUg
IndlYmtpdHByaXZhdGUuaCIKLSNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+Ci0KKyNpbmNs
dWRlICJ3ZWJraXRnZW5lcmFsLmgiCisjaW5jbHVkZSAid2Via2l0Z2VuZXJhbHByaXZhdGUuaCIK
ICNpbmNsdWRlIDxnbGliL2dpMThuLWxpYi5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcu
aD4KIAogLyoqCiAgKiBTRUNUSU9OOndlYmtpdGhpdHRlc3RyZXN1bHQKZGlmZiAtLWdpdCBhL1dl
YktpdC9ndGsvd2Via2l0L3dlYmtpdG5ldHdvcmtyZXF1ZXN0LmNwcCBiL1dlYktpdC9ndGsvd2Vi
a2l0L3dlYmtpdG5ldHdvcmtyZXF1ZXN0LmNwcAppbmRleCAyM2YyMmEzLi40ZjllOTVkIDEwMDY0
NAotLS0gYS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRuZXR3b3JrcmVxdWVzdC5jcHAKKysrIGIv
V2ViS2l0L2d0ay93ZWJraXQvd2Via2l0bmV0d29ya3JlcXVlc3QuY3BwCkBAIC0yMSwxMSArMjEs
MTEgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJ3ZWJraXRuZXR3b3JrcmVxdWVz
dC5oIgogCisjaW5jbHVkZSAiR1JlZlB0ci5oIgogI2luY2x1ZGUgIlJlc291cmNlUmVxdWVzdC5o
IgotI2luY2x1ZGUgIndlYmtpdHByaXZhdGUuaCIKLSNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5n
Lmg+Ci0KKyNpbmNsdWRlICJ3ZWJraXRnZW5lcmFscHJpdmF0ZS5oIgogI2luY2x1ZGUgPGdsaWIv
Z2kxOG4tbGliLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogCiAvKioKICAqIFNF
Q1RJT046d2Via2l0bmV0d29ya3JlcXVlc3QKZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsvd2Via2l0
L3dlYmtpdG5ldHdvcmtyZXNwb25zZS5jcHAgYi9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRuZXR3
b3JrcmVzcG9uc2UuY3BwCmluZGV4IGRhMjkyMTIuLmU3OTE2MmYgMTAwNjQ0Ci0tLSBhL1dlYktp
dC9ndGsvd2Via2l0L3dlYmtpdG5ldHdvcmtyZXNwb25zZS5jcHAKKysrIGIvV2ViS2l0L2d0ay93
ZWJraXQvd2Via2l0bmV0d29ya3Jlc3BvbnNlLmNwcApAQCAtMjQsOSArMjQsOSBAQAogCiAjaW5j
bHVkZSAiR1JlZlB0ci5oIgogI2luY2x1ZGUgIlJlc291cmNlUmVzcG9uc2UuaCIKLSNpbmNsdWRl
ICJ3ZWJraXRwcml2YXRlLmgiCi0KKyNpbmNsdWRlICJ3ZWJraXRnZW5lcmFscHJpdmF0ZS5oIgog
I2luY2x1ZGUgPGdsaWIvZ2kxOG4tbGliLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5o
PgogCiAvKioKICAqIFNFQ1RJT046d2Via2l0bmV0d29ya3Jlc3BvbnNlCmRpZmYgLS1naXQgYS9X
ZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRwcml2YXRlLmNwcCBiL1dlYktpdC9ndGsvd2Via2l0L3dl
YmtpdHByaXZhdGUuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzZTFhZDM2Li4w
MDAwMDAwCi0tLSBhL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHByaXZhdGUuY3BwCisrKyAvZGV2
L251bGwKQEAgLTEsMTY0ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDcgSG9sZ2Vy
IEhhbnMgUGV0ZXIgRnJleXRoZXIKLSAqIENvcHlyaWdodCAoQykgMjAwOCBDb2xsYWJvcmEgTHRk
LgotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJp
YnV0ZSBpdCBhbmQvb3IKLSAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljCi0gKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJl
ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5z
ZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSAqCi0gKiBUaGlzIGxp
YnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwK
LSAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdh
cnJhbnR5IG9mCi0gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
IFBVUlBPU0UuICBTZWUgdGhlIEdOVQotICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl
IGZvciBtb3JlIGRldGFpbHMuCi0gKgotICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29w
eSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotICogYWxvbmcgd2l0
aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUg
dG8KLSAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0
cmVldCwgRmlmdGggRmxvb3IsCi0gKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KLSAqLwot
Ci0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAid2Via2l0cHJpdmF0ZS5oIgotCi0jaW5j
bHVkZSAiQXBwbGljYXRpb25DYWNoZVN0b3JhZ2UuaCIKLSNpbmNsdWRlICJDaHJvbWUuaCIKLSNp
bmNsdWRlICJDaHJvbWVDbGllbnRHdGsuaCIKLSNpbmNsdWRlICJFbGVtZW50LmgiCi0jaW5jbHVk
ZSAiRnJhbWUuaCIKLSNpbmNsdWRlICJGcmFtZUxvYWRlci5oIgotI2luY2x1ZGUgIkZyYW1lTG9h
ZGVyQ2xpZW50R3RrLmgiCi0jaW5jbHVkZSAiRnJhbWVOZXR3b3JraW5nQ29udGV4dEd0ay5oIgot
I2luY2x1ZGUgIkd0a1ZlcnNpb25pbmcuaCIKLSNpbmNsdWRlICJIVE1MTWVkaWFFbGVtZW50Lmgi
Ci0jaW5jbHVkZSAiSFRNTE5hbWVzLmgiCi0jaW5jbHVkZSAiSGl0VGVzdFJlc3VsdC5oIgotI2lu
Y2x1ZGUgIkljb25EYXRhYmFzZS5oIgotI2luY2x1ZGUgIkxvZ2dpbmcuaCIKLSNpbmNsdWRlICJQ
YWdlQ2FjaGUuaCIKLSNpbmNsdWRlICJQYWdlR3JvdXAuaCIKLSNpbmNsdWRlICJQYXN0ZWJvYXJk
LmgiCi0jaW5jbHVkZSAiUGFzdGVib2FyZEhlbHBlckd0ay5oIgotI2luY2x1ZGUgIlJlc291cmNl
SGFuZGxlLmgiCi0jaW5jbHVkZSAiUmVzb3VyY2VIYW5kbGVDbGllbnQuaCIKLSNpbmNsdWRlICJS
ZXNvdXJjZUhhbmRsZUludGVybmFsLmgiCi0jaW5jbHVkZSAiUmVzb3VyY2VSZXNwb25zZS5oIgot
I2luY2x1ZGUgIlRleHRFbmNvZGluZ1JlZ2lzdHJ5LmgiCi0jaW5jbHVkZSAid2Via2l0bmV0d29y
a3Jlc3BvbnNlLmgiCi0jaW5jbHVkZSAid2Via2l0c291cGF1dGhkaWFsb2cuaCIKLSNpbmNsdWRl
ICJ3ZWJraXR2ZXJzaW9uLmgiCi0jaW5jbHVkZSA8bGliaW50bC5oPgotI2luY2x1ZGUgPHJ1bnRp
bWUvSW5pdGlhbGl6ZVRocmVhZGluZy5oPgotI2luY2x1ZGUgPHN0ZGxpYi5oPgotI2luY2x1ZGUg
PHd0Zi9UaHJlYWRpbmcuaD4KLQotI2lmIEVOQUJMRShWSURFTykKLSNpbmNsdWRlICJGdWxsc2Ny
ZWVuVmlkZW9Db250cm9sbGVyLmgiCi0jZW5kaWYKLQotI2lmIEVOQUJMRShEQVRBQkFTRSkKLSNp
bmNsdWRlICJEYXRhYmFzZVRyYWNrZXIuaCIKLSNlbmRpZgotCi11c2luZyBuYW1lc3BhY2UgV2Vi
Q29yZTsKLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLVdlYkNvcmU6OkVkaXRpbmdCZWhhdmlvclR5
cGUgY29yZShXZWJLaXRFZGl0aW5nQmVoYXZpb3IgdHlwZSkKLXsKLSAgICByZXR1cm4gKFdlYkNv
cmU6OkVkaXRpbmdCZWhhdmlvclR5cGUpdHlwZTsKLX0KLQotUGFzdGVib2FyZEhlbHBlckd0ayog
cGFzdGVib2FyZEhlbHBlckluc3RhbmNlKCkKLXsKLSAgICBzdGF0aWMgUGFzdGVib2FyZEhlbHBl
ckd0ayogaGVscGVyID0gbmV3IFBhc3RlYm9hcmRIZWxwZXJHdGsoKTsKLSAgICByZXR1cm4gaGVs
cGVyOwotfQotCi19IC8qKiBlbmQgbmFtZXNwYWNlIFdlYktpdCAqLwotCi1zdGF0aWMgR3RrV2lk
Z2V0KiBjdXJyZW50VG9wbGV2ZWxDYWxsYmFjayhXZWJLaXRTb3VwQXV0aERpYWxvZyogZmVhdHVy
ZSwgU291cE1lc3NhZ2UqIG1lc3NhZ2UsIGdwb2ludGVyIHVzZXJEYXRhKQotewotICAgIGdwb2lu
dGVyIG1lc3NhZ2VEYXRhID0gZ19vYmplY3RfZ2V0X2RhdGEoR19PQkpFQ1QobWVzc2FnZSksICJy
ZXNvdXJjZUhhbmRsZSIpOwotICAgIGlmICghbWVzc2FnZURhdGEpCi0gICAgICAgIHJldHVybiBO
VUxMOwotCi0gICAgUmVzb3VyY2VIYW5kbGUqIGhhbmRsZSA9IHN0YXRpY19jYXN0PFJlc291cmNl
SGFuZGxlKj4obWVzc2FnZURhdGEpOwotICAgIGlmICghaGFuZGxlKQotICAgICAgICByZXR1cm4g
TlVMTDsKLQotICAgIFJlc291cmNlSGFuZGxlSW50ZXJuYWwqIGQgPSBoYW5kbGUtPmdldEludGVy
bmFsKCk7Ci0gICAgaWYgKCFkKQotICAgICAgICByZXR1cm4gTlVMTDsKLQotICAgIFdlYktpdDo6
RnJhbWVOZXR3b3JraW5nQ29udGV4dEd0ayogY29udGV4dCA9IHN0YXRpY19jYXN0PFdlYktpdDo6
RnJhbWVOZXR3b3JraW5nQ29udGV4dEd0ayo+KGQtPm1fY29udGV4dC5nZXQoKSk7Ci0gICAgaWYg
KCFjb250ZXh0KQotICAgICAgICByZXR1cm4gTlVMTDsKLQotICAgIGlmICghY29udGV4dC0+Y29y
ZUZyYW1lKCkpCi0gICAgICAgIHJldHVybiBOVUxMOwotCi0gICAgR3RrV2lkZ2V0KiB0b3BsZXZl
bCA9ICBndGtfd2lkZ2V0X2dldF90b3BsZXZlbChHVEtfV0lER0VUKGNvbnRleHQtPmNvcmVGcmFt
ZSgpLT5wYWdlKCktPmNocm9tZSgpLT5wbGF0Zm9ybVBhZ2VDbGllbnQoKSkpOwotICAgIGlmIChn
dGtfd2lkZ2V0X2lzX3RvcGxldmVsKHRvcGxldmVsKSkKLSAgICAgICAgcmV0dXJuIHRvcGxldmVs
OwotICAgIGVsc2UKLSAgICAgICAgcmV0dXJuIE5VTEw7Ci19Ci0KLXN0YXRpYyB2b2lkIGNsb3Nl
SWNvbkRhdGFiYXNlT25FeGl0KCkKLXsKLSAgICBpY29uRGF0YWJhc2UoKS0+Y2xvc2UoKTsKLX0K
LQotdm9pZCB3ZWJraXRfaW5pdCgpCi17Ci0gICAgc3RhdGljIGJvb2wgaXNJbml0aWFsaXplZCA9
IGZhbHNlOwotICAgIGlmIChpc0luaXRpYWxpemVkKQotICAgICAgICByZXR1cm47Ci0gICAgaXNJ
bml0aWFsaXplZCA9IHRydWU7Ci0KLSAgICBiaW5kdGV4dGRvbWFpbihHRVRURVhUX1BBQ0tBR0Us
IFBBQ0tBR0VfTE9DQUxFX0RJUik7Ci0gICAgYmluZF90ZXh0ZG9tYWluX2NvZGVzZXQoR0VUVEVY
VF9QQUNLQUdFLCAiVVRGLTgiKTsKLQotICAgIEpTQzo6aW5pdGlhbGl6ZVRocmVhZGluZygpOwot
ICAgIFdURjo6aW5pdGlhbGl6ZU1haW5UaHJlYWQoKTsKLQotICAgIFdlYkNvcmU6OkluaXRpYWxp
emVMb2dnaW5nQ2hhbm5lbHNJZk5lY2Vzc2FyeSgpOwotCi0gICAgLy8gV2UgbWFrZSBzdXJlIHRo
ZSB0ZXh0IGNvZGVjcyBoYXZlIGJlZW4gaW5pdGlhbGl6ZWQsIGJlY2F1c2UKLSAgICAvLyB0aGF0
IG1heSBvbmx5IGJlIGRvbmUgYnkgdGhlIG1haW4gdGhyZWFkLgotICAgIGF0b21pY0Nhbm9uaWNh
bFRleHRFbmNvZGluZ05hbWUoIlVURi04Iik7Ci0KLSAgICBnY2hhciogZGF0YWJhc2VEaXJlY3Rv
cnkgPSBnX2J1aWxkX2ZpbGVuYW1lKGdfZ2V0X3VzZXJfZGF0YV9kaXIoKSwgIndlYmtpdCIsICJk
YXRhYmFzZXMiLCBOVUxMKTsKLSAgICB3ZWJraXRfc2V0X3dlYl9kYXRhYmFzZV9kaXJlY3Rvcnlf
cGF0aChkYXRhYmFzZURpcmVjdG9yeSk7Ci0KLSNpZiBFTkFCTEUoT0ZGTElORV9XRUJfQVBQTElD
QVRJT05TKQotICAgIC8vIEZJWE1FOiBJdCBzaG91bGQgYmUgcG9zc2libGUgZm9yIGNsaWVudCBh
cHBsaWNhdGlvbnMgdG8gb3ZlcnJpZGUgdGhlIGRlZmF1bHQgYXBwY2FjaGUgbG9jYXRpb24KLSAg
ICBXZWJDb3JlOjpjYWNoZVN0b3JhZ2UoKS5zZXRDYWNoZURpcmVjdG9yeShkYXRhYmFzZURpcmVj
dG9yeSk7Ci0jZW5kaWYKLSAgICBnX2ZyZWUoZGF0YWJhc2VEaXJlY3RvcnkpOwotCi0gICAgUGFn
ZUdyb3VwOjpzZXRTaG91bGRUcmFja1Zpc2l0ZWRMaW5rcyh0cnVlKTsKLQotICAgIFBhc3RlYm9h
cmQ6OmdlbmVyYWxQYXN0ZWJvYXJkKCktPnNldEhlbHBlcihXZWJLaXQ6OnBhc3RlYm9hcmRIZWxw
ZXJJbnN0YW5jZSgpKTsKLQotICAgIGljb25EYXRhYmFzZSgpLT5zZXRFbmFibGVkKHRydWUpOwot
Ci0gICAgR093blB0cjxnY2hhcj4gaWNvbkRhdGFiYXNlUGF0aChnX2J1aWxkX2ZpbGVuYW1lKGdf
Z2V0X3VzZXJfZGF0YV9kaXIoKSwgIndlYmtpdCIsICJpY29uZGF0YWJhc2UiLCBOVUxMKSk7Ci0g
ICAgaWNvbkRhdGFiYXNlKCktPm9wZW4oaWNvbkRhdGFiYXNlUGF0aC5nZXQoKSk7Ci0KLSAgICBh
dGV4aXQoY2xvc2VJY29uRGF0YWJhc2VPbkV4aXQpOwotCi0gICAgU291cFNlc3Npb24qIHNlc3Np
b24gPSB3ZWJraXRfZ2V0X2RlZmF1bHRfc2Vzc2lvbigpOwotCi0gICAgU291cFNlc3Npb25GZWF0
dXJlKiBhdXRoRGlhbG9nID0gc3RhdGljX2Nhc3Q8U291cFNlc3Npb25GZWF0dXJlKj4oZ19vYmpl
Y3RfbmV3KFdFQktJVF9UWVBFX1NPVVBfQVVUSF9ESUFMT0csIE5VTEwpKTsKLSAgICBnX3NpZ25h
bF9jb25uZWN0KGF1dGhEaWFsb2csICJjdXJyZW50LXRvcGxldmVsIiwgR19DQUxMQkFDSyhjdXJy
ZW50VG9wbGV2ZWxDYWxsYmFjayksIE5VTEwpOwotICAgIHNvdXBfc2Vzc2lvbl9hZGRfZmVhdHVy
ZShzZXNzaW9uLCBhdXRoRGlhbG9nKTsKLSAgICBnX29iamVjdF91bnJlZihhdXRoRGlhbG9nKTsK
LQotICAgIFNvdXBTZXNzaW9uRmVhdHVyZSogc25pZmZlciA9IHN0YXRpY19jYXN0PFNvdXBTZXNz
aW9uRmVhdHVyZSo+KGdfb2JqZWN0X25ldyhTT1VQX1RZUEVfQ09OVEVOVF9TTklGRkVSLCBOVUxM
KSk7Ci0gICAgc291cF9zZXNzaW9uX2FkZF9mZWF0dXJlKHNlc3Npb24sIHNuaWZmZXIpOwotICAg
IGdfb2JqZWN0X3VucmVmKHNuaWZmZXIpOwotCi0gICAgc291cF9zZXNzaW9uX2FkZF9mZWF0dXJl
X2J5X3R5cGUoc2Vzc2lvbiwgU09VUF9UWVBFX0NPTlRFTlRfREVDT0RFUik7Ci19CmRpZmYgLS1n
aXQgYS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRwcml2YXRlLmggYi9XZWJLaXQvZ3RrL3dlYmtp
dC93ZWJraXRwcml2YXRlLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDIwYTVjNTAu
LjAwMDAwMDAKLS0tIGEvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0cHJpdmF0ZS5oCisrKyAvZGV2
L251bGwKQEAgLTEsOTQgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNywgMjAwOCwg
MjAwOSBIb2xnZXIgSGFucyBQZXRlciBGcmV5dGhlcgotICogQ29weXJpZ2h0IChDKSAyMDA4IEph
biBNaWNoYWVsIEMuIEFsb256bwotICogQ29weXJpZ2h0IChDKSAyMDA4IENvbGxhYm9yYSBMdGQu
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgSWdhbGlhIFMuTC4KLSAqCi0gKiBUaGlzIGxpYnJhcnkg
aXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gKiBtb2Rp
ZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwot
ICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsg
ZWl0aGVyCi0gKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikg
YW55IGxhdGVyIHZlcnNpb24uCi0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGlu
IHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gKiBidXQgV0lUSE9VVCBBTlkgV0FS
UkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotICogTUVSQ0hBTlRB
QklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUK
LSAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotICoK
LSAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdl
bmVyYWwgUHVibGljIExpY2Vuc2UKLSAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhl
IGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCi0gKiB0aGUgRnJlZSBTb2Z0d2Fy
ZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAotICog
Qm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCi0gKi8KLQotI2lmbmRlZiB3ZWJraXRwcml2YXRl
X2gKLSNkZWZpbmUgd2Via2l0cHJpdmF0ZV9oCi0KLS8qCi0gKiBUaGlzIGZpbGUga25vd3MgdGhl
IHNoYXJlZCBzZWNyZXQgb2YgV2ViS2l0V2ViVmlldywgV2ViS2l0V2ViRnJhbWUsCi0gKiBhbmQg
V2ViS2l0TmV0d29ya1JlcXVlc3QuCi0gKiBUaGV5IGFyZSB1c2luZyBXZWJDb3JlIHdoaWNoIG11
c24ndCBiZSBleHBvc2VkIHRvIHRoZSBvdXRlciB3b3JsZC4KLSAqLwotCi0jaW5jbHVkZSA8d2Vi
a2l0L3dlYmtpdGRlZmluZXMuaD4KLSNpbmNsdWRlIDx3ZWJraXQvd2Via2l0bmV0d29ya3JlcXVl
c3QuaD4KLSNpbmNsdWRlIDx3ZWJraXQvd2Via2l0d2Vidmlldy5oPgotI2luY2x1ZGUgPHdlYmtp
dC93ZWJraXR3ZWJkYXRhc291cmNlLmg+Ci0jaW5jbHVkZSA8d2Via2l0L3dlYmtpdHdlYmZyYW1l
Lmg+Ci0jaW5jbHVkZSA8d2Via2l0L3dlYmtpdHdlYnNldHRpbmdzLmg+Ci0jaW5jbHVkZSA8d2Vi
a2l0L3dlYmtpdHdlYndpbmRvd2ZlYXR1cmVzLmg+Ci0jaW5jbHVkZSA8d2Via2l0L3dlYmtpdG5l
dHdvcmtyZXF1ZXN0Lmg+Ci0jaW5jbHVkZSA8d2Via2l0L3dlYmtpdHNlY3VyaXR5b3JpZ2luLmg+
Ci0KLSNpbmNsdWRlICJEYXRhT2JqZWN0R3RrLmgiCi0jaW5jbHVkZSAiRHJhZ0FjdGlvbnMuaCIK
LSNpbmNsdWRlICJGcmFtZS5oIgotI2luY2x1ZGUgIkdPd25QdHIuaCIKLSNpbmNsdWRlICJHZW9s
b2NhdGlvbi5oIgotI2luY2x1ZGUgIkludFBvaW50LmgiCi0jaW5jbHVkZSAiSW50UmVjdC5oIgot
I2luY2x1ZGUgIkZyYW1lTG9hZGVyQ2xpZW50LmgiCi0jaW5jbHVkZSAiTm9kZS5oIgotI2luY2x1
ZGUgIlBhZ2UuaCIKLSNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgotI2luY2x1ZGUgIlJlc291
cmNlSGFuZGxlLmgiCi0jaW5jbHVkZSAiUmVzb3VyY2VSZXF1ZXN0LmgiCi0jaW5jbHVkZSAiV2lu
ZG93RmVhdHVyZXMuaCIKLSNpbmNsdWRlICJTZXR0aW5ncy5oIgotI2luY2x1ZGUgPGVuY2hhbnQu
aD4KLSNpbmNsdWRlIDx3dGYvT3duUHRyLmg+Ci0jaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5o
PgotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLQotICAgIGNsYXNzIERvY3VtZW50TG9hZGVyOwotICAg
IGNsYXNzIFBhc3RlYm9hcmRIZWxwZXJHdGs7Ci0KLSAgICBXZWJDb3JlOjpFZGl0aW5nQmVoYXZp
b3JUeXBlIGNvcmUoV2ViS2l0RWRpdGluZ0JlaGF2aW9yIHR5cGUpOwotCi0gICAgUGFzdGVib2Fy
ZEhlbHBlckd0ayogcGFzdGVib2FyZEhlbHBlckluc3RhbmNlKCk7Ci19Ci0KLWV4dGVybiAiQyIg
ewotICAgIHZvaWQgd2Via2l0X2luaXQoKTsKLQotI2RlZmluZSBXRUJLSVRfUEFSQU1fUkVBREFC
TEUgKChHUGFyYW1GbGFncykoR19QQVJBTV9SRUFEQUJMRXxHX1BBUkFNX1NUQVRJQ19OQU1FfEdf
UEFSQU1fU1RBVElDX05JQ0t8R19QQVJBTV9TVEFUSUNfQkxVUkIpKQotI2RlZmluZSBXRUJLSVRf
UEFSQU1fUkVBRFdSSVRFICgoR1BhcmFtRmxhZ3MpKEdfUEFSQU1fUkVBRFdSSVRFfEdfUEFSQU1f
U1RBVElDX05BTUV8R19QQVJBTV9TVEFUSUNfTklDS3xHX1BBUkFNX1NUQVRJQ19CTFVSQikpCi0K
LSAgICBXVEY6OlN0cmluZwotICAgIHdlYmtpdFVzZXJBZ2VudCgpOwotCi0gICAgV2ViS2l0V2Vi
V2luZG93RmVhdHVyZXMqCi0gICAgd2Via2l0X3dlYl93aW5kb3dfZmVhdHVyZXNfbmV3X2Zyb21f
Y29yZV9mZWF0dXJlcyAoY29uc3QgV2ViQ29yZTo6V2luZG93RmVhdHVyZXMmIGZlYXR1cmVzKTsK
LQotICAgIFdlYktpdEdlb2xvY2F0aW9uUG9saWN5RGVjaXNpb24qCi0gICAgd2Via2l0X2dlb2xv
Y2F0aW9uX3BvbGljeV9kZWNpc2lvbl9uZXcoV2ViS2l0V2ViRnJhbWUqLCBXZWJDb3JlOjpHZW9s
b2NhdGlvbiopOwotCi0gICAgV0VCS0lUX0FQSSB2b2lkCi0gICAgd2Via2l0X2FwcGxpY2F0aW9u
X2NhY2hlX3NldF9tYXhpbXVtX3NpemUodW5zaWduZWQgbG9uZyBsb25nIHNpemUpOwotCi0gICAg
Ly8gV2ViS2l0V2ViRGF0YVNvdXJjZSBwcml2YXRlCi0gICAgV2ViS2l0V2ViRGF0YVNvdXJjZSoK
LSAgICB3ZWJraXRfd2ViX2RhdGFfc291cmNlX25ld193aXRoX2xvYWRlcihQYXNzUmVmUHRyPFdl
YktpdDo6RG9jdW1lbnRMb2FkZXI+KTsKLX0KLQotI2VuZGlmCmRpZmYgLS1naXQgYS9XZWJLaXQv
Z3RrL3dlYmtpdC93ZWJraXRzZWN1cml0eW9yaWdpbi5jcHAgYi9XZWJLaXQvZ3RrL3dlYmtpdC93
ZWJraXRzZWN1cml0eW9yaWdpbi5jcHAKaW5kZXggOTI3Yjc2ZC4uNjJlYTBmNCAxMDA2NDQKLS0t
IGEvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0c2VjdXJpdHlvcmlnaW4uY3BwCisrKyBiL1dlYktp
dC9ndGsvd2Via2l0L3dlYmtpdHNlY3VyaXR5b3JpZ2luLmNwcApAQCAtMjIsNyArMjIsNyBAQAog
CiAjaW5jbHVkZSAiRGF0YWJhc2VUcmFja2VyLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcu
aCIKLSNpbmNsdWRlICJ3ZWJraXRwcml2YXRlLmgiCisjaW5jbHVkZSAid2Via2l0Z2VuZXJhbHBy
aXZhdGUuaCIKICNpbmNsdWRlICJ3ZWJraXRzZWN1cml0eW9yaWdpbnByaXZhdGUuaCIKICNpbmNs
dWRlIDxnbGliL2dpMThuLWxpYi5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KZGlm
ZiAtLWdpdCBhL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHZpZXdwb3J0YXR0cmlidXRlcy5jcHAg
Yi9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR2aWV3cG9ydGF0dHJpYnV0ZXMuY3BwCmluZGV4IGMy
ZGU1YzEuLjJjOThkNGQgMTAwNjQ0Ci0tLSBhL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHZpZXdw
b3J0YXR0cmlidXRlcy5jcHAKKysrIGIvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0dmlld3BvcnRh
dHRyaWJ1dGVzLmNwcApAQCAtMjIsNyArMjIsOSBAQAogI2luY2x1ZGUgIndlYmtpdHZpZXdwb3J0
YXR0cmlidXRlcy5oIgogCiAjaW5jbHVkZSAiQ2hyb21lLmgiCi0jaW5jbHVkZSAid2Via2l0cHJp
dmF0ZS5oIgorI2luY2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVkZSAiUGFnZS5oIgorI2luY2x1ZGUg
IndlYmtpdGdlbmVyYWxwcml2YXRlLmgiCiAjaW5jbHVkZSAid2Via2l0dmlld3BvcnRhdHRyaWJ1
dGVzcHJpdmF0ZS5oIgogI2luY2x1ZGUgIndlYmtpdHdlYnZpZXdwcml2YXRlLmgiCiAjaW5jbHVk
ZSA8Z2xpYi9naTE4bi1saWIuaD4KZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsvd2Via2l0L3dlYmtp
dHdlYmJhY2tmb3J3YXJkbGlzdC5jcHAgYi9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJiYWNr
Zm9yd2FyZGxpc3QuY3BwCmluZGV4IGM5MDZiYTMuLjc2ZTI4MDkgMTAwNjQ0Ci0tLSBhL1dlYktp
dC9ndGsvd2Via2l0L3dlYmtpdHdlYmJhY2tmb3J3YXJkbGlzdC5jcHAKKysrIGIvV2ViS2l0L2d0
ay93ZWJraXQvd2Via2l0d2ViYmFja2ZvcndhcmRsaXN0LmNwcApAQCAtMjMsNyArMjMsOCBAQAog
CiAjaW5jbHVkZSAiQmFja0ZvcndhcmRMaXN0SW1wbC5oIgogI2luY2x1ZGUgIkhpc3RvcnlJdGVt
LmgiCi0jaW5jbHVkZSAid2Via2l0cHJpdmF0ZS5oIgorI2luY2x1ZGUgIlBhZ2UuaCIKKyNpbmNs
dWRlICJ3ZWJraXRnZW5lcmFscHJpdmF0ZS5oIgogI2luY2x1ZGUgIndlYmtpdHdlYmJhY2tmb3J3
YXJkbGlzdHByaXZhdGUuaCIKICNpbmNsdWRlICJ3ZWJraXR3ZWJoaXN0b3J5aXRlbS5oIgogI2lu
Y2x1ZGUgIndlYmtpdHdlYmhpc3RvcnlpdGVtcHJpdmF0ZS5oIgpkaWZmIC0tZ2l0IGEvV2ViS2l0
L2d0ay93ZWJraXQvd2Via2l0d2ViZGF0YWJhc2UuY3BwIGIvV2ViS2l0L2d0ay93ZWJraXQvd2Vi
a2l0d2ViZGF0YWJhc2UuY3BwCmluZGV4IGRiNzJjZGUuLmE0MzE0MmYgMTAwNjQ0Ci0tLSBhL1dl
YktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYmRhdGFiYXNlLmNwcAorKysgYi9XZWJLaXQvZ3RrL3dl
YmtpdC93ZWJraXR3ZWJkYXRhYmFzZS5jcHAKQEAgLTIyLDcgKzIyLDcgQEAKIAogI2luY2x1ZGUg
IkRhdGFiYXNlRGV0YWlscy5oIgogI2luY2x1ZGUgIkRhdGFiYXNlVHJhY2tlci5oIgotI2luY2x1
ZGUgIndlYmtpdHByaXZhdGUuaCIKKyNpbmNsdWRlICJ3ZWJraXRnZW5lcmFscHJpdmF0ZS5oIgog
I2luY2x1ZGUgIndlYmtpdHNlY3VyaXR5b3JpZ2lucHJpdmF0ZS5oIgogI2luY2x1ZGUgPGdsaWIv
Z2kxOG4tbGliLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgpkaWZmIC0tZ2l0IGEv
V2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2ViZGF0YXNvdXJjZS5jcHAgYi9XZWJLaXQvZ3RrL3dl
YmtpdC93ZWJraXR3ZWJkYXRhc291cmNlLmNwcAppbmRleCA3ZDk2N2Y3Li5lMjhkZmYxIDEwMDY0
NAotLS0gYS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJkYXRhc291cmNlLmNwcAorKysgYi9X
ZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJkYXRhc291cmNlLmNwcApAQCAtMzAsOCArMzAsOSBA
QAogI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlci5oIgogI2luY2x1ZGUgIlN1YnN0aXR1dGVEYXRhLmgi
CiAjaW5jbHVkZSAicnVudGltZS9Jbml0aWFsaXplVGhyZWFkaW5nLmgiCisjaW5jbHVkZSAid2Vi
a2l0Z2VuZXJhbHByaXZhdGUuaCIKICNpbmNsdWRlICJ3ZWJraXRuZXR3b3JrcmVxdWVzdHByaXZh
dGUuaCIKLSNpbmNsdWRlICJ3ZWJraXRwcml2YXRlLmgiCisjaW5jbHVkZSAid2Via2l0d2ViZGF0
YXNvdXJjZXByaXZhdGUuaCIKICNpbmNsdWRlICJ3ZWJraXR3ZWJmcmFtZXByaXZhdGUuaCIKICNp
bmNsdWRlICJ3ZWJraXR3ZWJyZXNvdXJjZS5oIgogI2luY2x1ZGUgIndlYmtpdHdlYnZpZXdwcml2
YXRlLmgiCkBAIC0xMzYsMTUgKzEzNyw2IEBAIHN0YXRpYyB2b2lkIHdlYmtpdF93ZWJfZGF0YV9z
b3VyY2VfaW5pdChXZWJLaXRXZWJEYXRhU291cmNlKiB3ZWJEYXRhU291cmNlKQogICAgIHdlYkRh
dGFTb3VyY2UtPnByaXYgPSBHX1RZUEVfSU5TVEFOQ0VfR0VUX1BSSVZBVEUod2ViRGF0YVNvdXJj
ZSwgV0VCS0lUX1RZUEVfV0VCX0RBVEFfU09VUkNFLCBXZWJLaXRXZWJEYXRhU291cmNlUHJpdmF0
ZSk7CiB9CiAKLVdlYktpdFdlYkRhdGFTb3VyY2UqIHdlYmtpdF93ZWJfZGF0YV9zb3VyY2VfbmV3
X3dpdGhfbG9hZGVyKFBhc3NSZWZQdHI8V2ViS2l0OjpEb2N1bWVudExvYWRlcj4gbG9hZGVyKQot
ewotICAgIFdlYktpdFdlYkRhdGFTb3VyY2UqIHdlYkRhdGFTb3VyY2UgPSBXRUJLSVRfV0VCX0RB
VEFfU09VUkNFKGdfb2JqZWN0X25ldyhXRUJLSVRfVFlQRV9XRUJfREFUQV9TT1VSQ0UsIE5VTEwp
KTsKLSAgICBXZWJLaXRXZWJEYXRhU291cmNlUHJpdmF0ZSogcHJpdiA9IHdlYkRhdGFTb3VyY2Ut
PnByaXY7Ci0gICAgcHJpdi0+bG9hZGVyID0gbG9hZGVyLnJlbGVhc2VSZWYoKTsKLQotICAgIHJl
dHVybiB3ZWJEYXRhU291cmNlOwotfQotCiAvKioKICAqIHdlYmtpdF93ZWJfZGF0YV9zb3VyY2Vf
bmV3OgogICoKQEAgLTE4MiwxMCArMTc0LDggQEAgV2ViS2l0V2ViRGF0YVNvdXJjZSogd2Via2l0
X3dlYl9kYXRhX3NvdXJjZV9uZXdfd2l0aF9yZXF1ZXN0KFdlYktpdE5ldHdvcmtSZXF1ZXMKIAog
ICAgIGNvbnN0IGdjaGFyKiB1cmkgPSB3ZWJraXRfbmV0d29ya19yZXF1ZXN0X2dldF91cmkocmVx
dWVzdCk7CiAKLSAgICBXZWJLaXRXZWJEYXRhU291cmNlKiBkYXRhc291cmNlOwotICAgIGRhdGFz
b3VyY2UgPSB3ZWJraXRfd2ViX2RhdGFfc291cmNlX25ld193aXRoX2xvYWRlcigKLSAgICAgICAg
V2ViS2l0OjpEb2N1bWVudExvYWRlcjo6Y3JlYXRlKFJlc291cmNlUmVxdWVzdChLVVJMKEtVUkwo
KSwgU3RyaW5nOjpmcm9tVVRGOCh1cmkpKSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBTdWJzdGl0dXRlRGF0YSgpKSk7CisgICAgUmVzb3VyY2VSZXF1ZXN0IHJlc291
cmNlUmVxdWVzdChSZXNvdXJjZVJlcXVlc3QoS1VSTChLVVJMKCksIFN0cmluZzo6ZnJvbVVURjgo
dXJpKSkpKTsKKyAgICBXZWJLaXRXZWJEYXRhU291cmNlKiBkYXRhc291cmNlID0ga2l0TmV3KFdl
YktpdDo6RG9jdW1lbnRMb2FkZXI6OmNyZWF0ZShyZXNvdXJjZVJlcXVlc3QsIFN1YnN0aXR1dGVE
YXRhKCkpKTsKIAogICAgIFdlYktpdFdlYkRhdGFTb3VyY2VQcml2YXRlKiBwcml2ID0gZGF0YXNv
dXJjZS0+cHJpdjsKICAgICBwcml2LT5pbml0aWFsUmVxdWVzdCA9IHJlcXVlc3Q7CkBAIC00Mzcs
MyArNDI3LDE2IEBAIEdMaXN0KiB3ZWJraXRfd2ViX2RhdGFfc291cmNlX2dldF9zdWJyZXNvdXJj
ZXMoV2ViS2l0V2ViRGF0YVNvdXJjZSogd2ViRGF0YVNvdXJjCiAKICAgICByZXR1cm4gd2Via2l0
X3dlYl92aWV3X2dldF9zdWJyZXNvdXJjZXMod2ViVmlldyk7CiB9CisKK25hbWVzcGFjZSBXZWJL
aXQgeworCitXZWJLaXRXZWJEYXRhU291cmNlKiBraXROZXcoUGFzc1JlZlB0cjxXZWJLaXQ6OkRv
Y3VtZW50TG9hZGVyPiBsb2FkZXIpCit7CisgICAgV2ViS2l0V2ViRGF0YVNvdXJjZSogd2ViRGF0
YVNvdXJjZSA9IFdFQktJVF9XRUJfREFUQV9TT1VSQ0UoZ19vYmplY3RfbmV3KFdFQktJVF9UWVBF
X1dFQl9EQVRBX1NPVVJDRSwgTlVMTCkpOworICAgIFdlYktpdFdlYkRhdGFTb3VyY2VQcml2YXRl
KiBwcml2ID0gd2ViRGF0YVNvdXJjZS0+cHJpdjsKKyAgICBwcml2LT5sb2FkZXIgPSBsb2FkZXIu
cmVsZWFzZVJlZigpOworCisgICAgcmV0dXJuIHdlYkRhdGFTb3VyY2U7Cit9CisKK30KZGlmZiAt
LWdpdCBhL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYmZyYW1lLmNwcCBiL1dlYktpdC9ndGsv
d2Via2l0L3dlYmtpdHdlYmZyYW1lLmNwcAppbmRleCBkOGQyNWMwLi4zMGNlNzhjIDEwMDY0NAot
LS0gYS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJmcmFtZS5jcHAKKysrIGIvV2ViS2l0L2d0
ay93ZWJraXQvd2Via2l0d2ViZnJhbWUuY3BwCkBAIC01MSwxMCArNTEsMTAgQEAKICNpbmNsdWRl
ICJTY3JpcHRDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiU3Vic3RpdHV0ZURhdGEuaCIKICNpbmNs
dWRlICJ3ZWJraXRlbnVtdHlwZXMuaCIKKyNpbmNsdWRlICJ3ZWJraXRnZW5lcmFscHJpdmF0ZS5o
IgogI2luY2x1ZGUgIndlYmtpdG1hcnNoYWwuaCIKICNpbmNsdWRlICJ3ZWJraXRuZXR3b3JrcmVx
dWVzdHByaXZhdGUuaCIKICNpbmNsdWRlICJ3ZWJraXRuZXR3b3JrcmVzcG9uc2Vwcml2YXRlLmgi
Ci0jaW5jbHVkZSAid2Via2l0cHJpdmF0ZS5oIgogI2luY2x1ZGUgIndlYmtpdHNlY3VyaXR5b3Jp
Z2lucHJpdmF0ZS5oIgogI2luY2x1ZGUgIndlYmtpdHdlYmZyYW1lcHJpdmF0ZS5oIgogI2luY2x1
ZGUgIndlYmtpdHdlYnZpZXcuaCIKZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsvd2Via2l0L3dlYmtp
dHdlYmZyYW1lcHJpdmF0ZS5oIGIvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2ViZnJhbWVwcml2
YXRlLmgKaW5kZXggMjNmMWU0MC4uODAyMTBkOCAxMDA2NDQKLS0tIGEvV2ViS2l0L2d0ay93ZWJr
aXQvd2Via2l0d2ViZnJhbWVwcml2YXRlLmgKKysrIGIvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0
d2ViZnJhbWVwcml2YXRlLmgKQEAgLTIzLDYgKzIzLDkgQEAKICNpZm5kZWYgd2Via2l0d2ViZnJh
bWVwcml2YXRlX2gKICNkZWZpbmUgd2Via2l0d2ViZnJhbWVwcml2YXRlX2gKIAorI2luY2x1ZGUg
IkZyYW1lLmgiCisjaW5jbHVkZSAid2Via2l0d2ViZnJhbWUuaCIKKwogbmFtZXNwYWNlIFdlYktp
dCB7CiAKIFdlYktpdFdlYlZpZXcqIGdldFZpZXdGcm9tRnJhbWUoV2ViS2l0V2ViRnJhbWUqKTsK
ZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYmhpc3RvcnlpdGVtLmNwcCBi
L1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYmhpc3RvcnlpdGVtLmNwcAppbmRleCBhYzhlNTdm
Li42N2Q3MjJiIDEwMDY0NAotLS0gYS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJoaXN0b3J5
aXRlbS5jcHAKKysrIGIvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2ViaGlzdG9yeWl0ZW0uY3Bw
CkBAIC0xOSwxMiArMTksMTEgQEAKICAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCi0KICNpbmNs
dWRlICJ3ZWJraXR3ZWJoaXN0b3J5aXRlbS5oIgotI2luY2x1ZGUgIndlYmtpdHByaXZhdGUuaCIK
IAogI2luY2x1ZGUgIkhpc3RvcnlJdGVtLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIK
KyNpbmNsdWRlICJ3ZWJraXRnZW5lcmFscHJpdmF0ZS5oIgogI2luY2x1ZGUgIndlYmtpdHdlYmhp
c3RvcnlpdGVtcHJpdmF0ZS5oIgogI2luY2x1ZGUgPGdsaWIuaD4KICNpbmNsdWRlIDxnbGliL2dp
MThuLWxpYi5oPgpkaWZmIC0tZ2l0IGEvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2ViaW5zcGVj
dG9yLmNwcCBiL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYmluc3BlY3Rvci5jcHAKaW5kZXgg
NTE0MDg1Yi4uNzE0Yzk1YiAxMDA2NDQKLS0tIGEvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vi
aW5zcGVjdG9yLmNwcAorKysgYi9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJpbnNwZWN0b3Iu
Y3BwCkBAIC0zMyw4ICszMyw4IEBACiAjaW5jbHVkZSAiUmVuZGVyTGF5ZXIuaCIKICNpbmNsdWRl
ICJSZW5kZXJWaWV3LmgiCiAjaW5jbHVkZSAid2Via2l0L1dlYktpdERPTU5vZGVQcml2YXRlLmgi
CisjaW5jbHVkZSAid2Via2l0Z2VuZXJhbHByaXZhdGUuaCIKICNpbmNsdWRlICJ3ZWJraXRtYXJz
aGFsLmgiCi0jaW5jbHVkZSAid2Via2l0cHJpdmF0ZS5oIgogI2luY2x1ZGUgIndlYmtpdHdlYmlu
c3BlY3RvcnByaXZhdGUuaCIKICNpbmNsdWRlIDxnbGliL2dpMThuLWxpYi5oPgogCmRpZmYgLS1n
aXQgYS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJuYXZpZ2F0aW9uYWN0aW9uLmNwcCBiL1dl
YktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYm5hdmlnYXRpb25hY3Rpb24uY3BwCmluZGV4IGIxMjI3
OWUuLmEwMTA5ZDQgMTAwNjQ0Ci0tLSBhL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYm5hdmln
YXRpb25hY3Rpb24uY3BwCisrKyBiL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYm5hdmlnYXRp
b25hY3Rpb24uY3BwCkBAIC0xOCwxNiArMTgsMTQgQEAKICAqLwogCiAjaW5jbHVkZSAiY29uZmln
LmgiCisjaW5jbHVkZSAid2Via2l0d2VibmF2aWdhdGlvbmFjdGlvbi5oIgogCi0jaW5jbHVkZSA8
d3RmL0Fzc2VydGlvbnMuaD4KICNpbmNsdWRlICJGcmFtZUxvYWRlclR5cGVzLmgiCi0KLSNpbmNs
dWRlIDxnbGliL2dpMThuLWxpYi5oPgotI2luY2x1ZGUgIndlYmtpdHdlYm5hdmlnYXRpb25hY3Rp
b24uaCIKLSNpbmNsdWRlICJ3ZWJraXRwcml2YXRlLmgiCiAjaW5jbHVkZSAid2Via2l0ZW51bXR5
cGVzLmgiCi0KKyNpbmNsdWRlICJ3ZWJraXRnZW5lcmFscHJpdmF0ZS5oIgorI2luY2x1ZGUgPGds
aWIvZ2kxOG4tbGliLmg+CiAjaW5jbHVkZSA8c3RyaW5nLmg+CisjaW5jbHVkZSA8d3RmL0Fzc2Vy
dGlvbnMuaD4KIAogc3RhdGljIHZvaWQgd2Via2l0X3dlYl9uYXZpZ2F0aW9uX2FjdGlvbl9zZXRf
dGFyZ2V0X2ZyYW1lKFdlYktpdFdlYk5hdmlnYXRpb25BY3Rpb24qIG5hdmlnYXRpb25BY3Rpb24s
IGNvbnN0IGdjaGFyKiB0YXJnZXRGcmFtZSk7CiAKZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsvd2Vi
a2l0L3dlYmtpdHdlYnBsdWdpbi5jcHAgYi9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJwbHVn
aW4uY3BwCmluZGV4IDBiMDY0MTYuLjI0ZjRjNTkgMTAwNjQ0Ci0tLSBhL1dlYktpdC9ndGsvd2Vi
a2l0L3dlYmtpdHdlYnBsdWdpbi5jcHAKKysrIGIvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vi
cGx1Z2luLmNwcApAQCAtMjAsNyArMjAsNyBAQAogI2luY2x1ZGUgIndlYmtpdHdlYnBsdWdpbi5o
IgogCiAjaW5jbHVkZSAiUGx1Z2luUGFja2FnZS5oIgotI2luY2x1ZGUgIndlYmtpdHByaXZhdGUu
aCIKKyNpbmNsdWRlICJ3ZWJraXRnZW5lcmFscHJpdmF0ZS5oIgogI2luY2x1ZGUgIndlYmtpdHdl
YnBsdWdpbnByaXZhdGUuaCIKICNpbmNsdWRlIDxnbGliL2dpMThuLWxpYi5oPgogCmRpZmYgLS1n
aXQgYS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJwbHVnaW5kYXRhYmFzZS5jcHAgYi9XZWJL
aXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJwbHVnaW5kYXRhYmFzZS5jcHAKaW5kZXggMDgzMjhhMC4u
ZWJiMzI5NiAxMDA2NDQKLS0tIGEvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2VicGx1Z2luZGF0
YWJhc2UuY3BwCisrKyBiL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnBsdWdpbmRhdGFiYXNl
LmNwcApAQCAtMjAsNyArMjAsNyBAQAogI2luY2x1ZGUgIndlYmtpdHdlYnBsdWdpbmRhdGFiYXNl
LmgiCiAKICNpbmNsdWRlICJQbHVnaW5EYXRhYmFzZS5oIgotI2luY2x1ZGUgIndlYmtpdHByaXZh
dGUuaCIKKyNpbmNsdWRlICJ3ZWJraXRnZW5lcmFscHJpdmF0ZS5oIgogI2luY2x1ZGUgIndlYmtp
dHdlYnBsdWdpbmRhdGFiYXNlcHJpdmF0ZS5oIgogI2luY2x1ZGUgIndlYmtpdHdlYnBsdWdpbnBy
aXZhdGUuaCIKIApkaWZmIC0tZ2l0IGEvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2VicGx1Z2lu
cHJpdmF0ZS5oIGIvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2VicGx1Z2lucHJpdmF0ZS5oCmlu
ZGV4IDg4NTMxM2UuLjRhZTIwNGIgMTAwNjQ0Ci0tLSBhL1dlYktpdC9ndGsvd2Via2l0L3dlYmtp
dHdlYnBsdWdpbnByaXZhdGUuaAorKysgYi9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJwbHVn
aW5wcml2YXRlLmgKQEAgLTIxLDYgKzIxLDcgQEAKIAogI2luY2x1ZGUgIndlYmtpdHdlYnBsdWdp
bi5oIgogI2luY2x1ZGUgPGdsaWItb2JqZWN0Lmg+CisjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmlu
Zy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBQbHVnaW5QYWNrYWdlOwpkaWZmIC0t
Z2l0IGEvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2VicG9saWN5ZGVjaXNpb24uY3BwIGIvV2Vi
S2l0L2d0ay93ZWJraXQvd2Via2l0d2VicG9saWN5ZGVjaXNpb24uY3BwCmluZGV4IDA2YzFmY2Iu
LjYyNGZmOWEgMTAwNjQ0Ci0tLSBhL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnBvbGljeWRl
Y2lzaW9uLmNwcAorKysgYi9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJwb2xpY3lkZWNpc2lv
bi5jcHAKQEAgLTIwLDggKzIwLDggQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJ3
ZWJraXR3ZWJwb2xpY3lkZWNpc2lvbi5oIgogCisjaW5jbHVkZSAiRnJhbWVMb2FkZXJDbGllbnQu
aCIKICNpbmNsdWRlICJGcmFtZUxvYWRlclR5cGVzLmgiCi0jaW5jbHVkZSAid2Via2l0cHJpdmF0
ZS5oIgogI2luY2x1ZGUgIndlYmtpdHdlYmZyYW1lcHJpdmF0ZS5oIgogI2luY2x1ZGUgIndlYmtp
dHdlYnBvbGljeWRlY2lzaW9ucHJpdmF0ZS5oIgogCmRpZmYgLS1naXQgYS9XZWJLaXQvZ3RrL3dl
YmtpdC93ZWJraXR3ZWJyZXNvdXJjZS5jcHAgYi9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJy
ZXNvdXJjZS5jcHAKaW5kZXggYzJmM2ExNS4uYzRmMzkwYiAxMDA2NDQKLS0tIGEvV2ViS2l0L2d0
ay93ZWJraXQvd2Via2l0d2VicmVzb3VyY2UuY3BwCisrKyBiL1dlYktpdC9ndGsvd2Via2l0L3dl
YmtpdHdlYnJlc291cmNlLmNwcApAQCAtMjUsMTQgKzI1LDEzIEBACiAjaW5jbHVkZSAiUGxhdGZv
cm1TdHJpbmcuaCIKICNpbmNsdWRlICJTaGFyZWRCdWZmZXIuaCIKICNpbmNsdWRlICJ3ZWJraXRl
bnVtdHlwZXMuaCIKKyNpbmNsdWRlICJ3ZWJraXRnZW5lcmFscHJpdmF0ZS5oIgogI2luY2x1ZGUg
IndlYmtpdG1hcnNoYWwuaCIKLSNpbmNsdWRlICJ3ZWJraXRwcml2YXRlLmgiCiAjaW5jbHVkZSAi
d2Via2l0d2VicmVzb3VyY2Vwcml2YXRlLmgiCi0jaW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4K
LSNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+Ci0KICNpbmNsdWRlIDxnbGliLmg+CiAjaW5j
bHVkZSA8Z2xpYi9naTE4bi1saWIuaD4KKyNpbmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgorI2lu
Y2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KIAogLyoqCiAgKiBTRUNUSU9OOndlYmtpdHdlYnJl
c291cmNlCkBAIC00NCw3ICs0Myw2IEBACiAgKi8KIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7
Ci11c2luZyBuYW1lc3BhY2UgV2ViS2l0OwogCiBlbnVtIHsKICAgICBQUk9QXzAsCmRpZmYgLS1n
aXQgYS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJzZXR0aW5ncy5jcHAgYi9XZWJLaXQvZ3Rr
L3dlYmtpdC93ZWJraXR3ZWJzZXR0aW5ncy5jcHAKaW5kZXggOTIzNzBkNy4uY2Y0OWQyMCAxMDA2
NDQKLS0tIGEvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vic2V0dGluZ3MuY3BwCisrKyBiL1dl
YktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnNldHRpbmdzLmNwcApAQCAtMjYsMTYgKzI2LDE5IEBA
CiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAid2Via2l0d2Vic2V0dGluZ3MuaCIKIAor
I2luY2x1ZGUgIkVkaXRpbmdCZWhhdmlvci5oIgogI2luY2x1ZGUgIkZpbGVTeXN0ZW0uaCIKICNp
bmNsdWRlICJMYW5ndWFnZS5oIgogI2luY2x1ZGUgIlBsdWdpbkRhdGFiYXNlLmgiCiAjaW5jbHVk
ZSAid2Via2l0ZW51bXR5cGVzLmgiCi0jaW5jbHVkZSAid2Via2l0cHJpdmF0ZS5oIgorI2luY2x1
ZGUgIndlYmtpdGdlbmVyYWxwcml2YXRlLmgiCiAjaW5jbHVkZSAid2Via2l0dmVyc2lvbi5oIgog
I2luY2x1ZGUgIndlYmtpdHdlYnNldHRpbmdzcHJpdmF0ZS5oIgorI2luY2x1ZGUgPGVuY2hhbnQu
aD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3Ry
aW5nQ29uY2F0ZW5hdGUuaD4KICNpbmNsdWRlIDxnbGliL2dpMThuLWxpYi5oPgorCiAjaWYgT1Mo
VU5JWCkKICNpbmNsdWRlIDxzeXMvdXRzbmFtZS5oPgogI2VuZGlmCkBAIC0xNDM4LDMgKzE0NDEs
MTIgQEAgR19DT05TVF9SRVRVUk4gZ2NoYXIqIHdlYmtpdF93ZWJfc2V0dGluZ3NfZ2V0X3VzZXJf
YWdlbnQoV2ViS2l0V2ViU2V0dGluZ3MqIHdlYlMKIAogICAgIHJldHVybiBwcml2LT51c2VyX2Fn
ZW50OwogfQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworV2ViQ29yZTo6RWRpdGluZ0JlaGF2aW9y
VHlwZSBjb3JlKFdlYktpdEVkaXRpbmdCZWhhdmlvciB0eXBlKQoreworICAgIHJldHVybiAoV2Vi
Q29yZTo6RWRpdGluZ0JlaGF2aW9yVHlwZSl0eXBlOworfQorCit9CmRpZmYgLS1naXQgYS9XZWJL
aXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJzZXR0aW5nc3ByaXZhdGUuaCBiL1dlYktpdC9ndGsvd2Vi
a2l0L3dlYmtpdHdlYnNldHRpbmdzcHJpdmF0ZS5oCmluZGV4IGU4NDhhMDg2Li5kZWYzYTFiIDEw
MDY0NAotLS0gYS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJzZXR0aW5nc3ByaXZhdGUuaAor
KysgYi9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJzZXR0aW5nc3ByaXZhdGUuaApAQCAtMjUs
MTIgKzI1LDIwIEBACiAKICNpbmNsdWRlICJ3ZWJraXR3ZWJzZXR0aW5ncy5oIgogCituYW1lc3Bh
Y2UgV2ViS2l0IHsKKworV2ViQ29yZTo6RWRpdGluZ0JlaGF2aW9yVHlwZSBjb3JlKFdlYktpdEVk
aXRpbmdCZWhhdmlvcik7CisKK30KKwogZXh0ZXJuICJDIiB7CiAKIFdFQktJVF9BUEkgdm9pZCB3
ZWJraXRfd2ViX3NldHRpbmdzX2FkZF9leHRyYV9wbHVnaW5fZGlyZWN0b3J5KFdlYktpdFdlYlZp
ZXcqLCBjb25zdCBnY2hhciogZGlyZWN0b3J5KTsKIAogR1NMaXN0KiB3ZWJraXRfd2ViX3NldHRp
bmdzX2dldF9lbmNoYW50X2RpY3RzKFdlYktpdFdlYlZpZXcqKTsKIAorV1RGOjpTdHJpbmcgd2Vi
a2l0VXNlckFnZW50KCk7CisKIH0KIAogI2VuZGlmCmRpZmYgLS1naXQgYS9XZWJLaXQvZ3RrL3dl
YmtpdC93ZWJraXR3ZWJ2aWV3LmNwcCBiL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnZpZXcu
Y3BwCmluZGV4IGM4MTQ0NzQuLjhjMjU3NzkgMTAwNjQ0Ci0tLSBhL1dlYktpdC9ndGsvd2Via2l0
L3dlYmtpdHdlYnZpZXcuY3BwCisrKyBiL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnZpZXcu
Y3BwCkBAIC03NiwxNiArNzYsMTcgQEAKICNpbmNsdWRlICJSZXNvdXJjZUhhbmRsZS5oIgogI2lu
Y2x1ZGUgIlNjcmlwdFZhbHVlLmgiCiAjaW5jbHVkZSAiU2Nyb2xsYmFyLmgiCisjaW5jbHVkZSAi
U2V0dGluZ3MuaCIKICNpbmNsdWRlICJ3ZWJraXQvV2ViS2l0RE9NRG9jdW1lbnRQcml2YXRlLmgi
CiAjaW5jbHVkZSAid2Via2l0ZG93bmxvYWQuaCIKICNpbmNsdWRlICJ3ZWJraXRkb3dubG9hZHBy
aXZhdGUuaCIKICNpbmNsdWRlICJ3ZWJraXRlbnVtdHlwZXMuaCIKKyNpbmNsdWRlICJ3ZWJraXRn
ZW5lcmFscHJpdmF0ZS5oIgogI2luY2x1ZGUgIndlYmtpdGdlb2xvY2F0aW9ucG9saWN5ZGVjaXNp
b24uaCIKICNpbmNsdWRlICJ3ZWJraXRoaXR0ZXN0cmVzdWx0cHJpdmF0ZS5oIgogI2luY2x1ZGUg
IndlYmtpdG1hcnNoYWwuaCIKICNpbmNsdWRlICJ3ZWJraXRuZXR3b3JrcmVxdWVzdC5oIgogI2lu
Y2x1ZGUgIndlYmtpdG5ldHdvcmtyZXNwb25zZS5oIgotI2luY2x1ZGUgIndlYmtpdHByaXZhdGUu
aCIKICNpbmNsdWRlICJ3ZWJraXR2aWV3cG9ydGF0dHJpYnV0ZXMuaCIKICNpbmNsdWRlICJ3ZWJr
aXR2aWV3cG9ydGF0dHJpYnV0ZXNwcml2YXRlLmgiCiAjaW5jbHVkZSAid2Via2l0d2ViYmFja2Zv
cndhcmRsaXN0LmgiCkBAIC05Niw3ICs5Nyw5IEBACiAjaW5jbHVkZSAid2Via2l0d2ViaW5zcGVj
dG9ycHJpdmF0ZS5oIgogI2luY2x1ZGUgIndlYmtpdHdlYnBvbGljeWRlY2lzaW9uLmgiCiAjaW5j
bHVkZSAid2Via2l0d2VicmVzb3VyY2UuaCIKKyNpbmNsdWRlICJ3ZWJraXR3ZWJzZXR0aW5nc3By
aXZhdGUuaCIKICNpbmNsdWRlICJ3ZWJraXR3ZWJwbHVnaW5kYXRhYmFzZXByaXZhdGUuaCIKKyNp
bmNsdWRlICJ3ZWJraXR3ZWJ3aW5kb3dmZWF0dXJlcy5oIgogI2luY2x1ZGUgIndlYmtpdHdlYnZp
ZXdwcml2YXRlLmgiCiAjaW5jbHVkZSA8Z2RrL2dka2tleXN5bXMuaD4KICNpbmNsdWRlIDxnbGli
L2dpMThuLWxpYi5oPgpAQCAtMTM3LDcgKzE0MCw2IEBACiAgKi8KIAogc3RhdGljIGNvbnN0IGRv
dWJsZSBkZWZhdWx0RFBJID0gOTYuMDsKLXN0YXRpYyBXZWJLaXRDYWNoZU1vZGVsIGNhY2hlTW9k
ZWwgPSBXRUJLSVRfQ0FDSEVfTU9ERUxfREVGQVVMVDsKIHN0YXRpYyBJbnRQb2ludCBnbG9iYWxQ
b2ludEZvckNsaWVudFBvaW50KEdka1dpbmRvdyogd2luZG93LCBjb25zdCBJbnRQb2ludCYgY2xp
ZW50UG9pbnQpOwogCiB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwpAQCAtNTA1MCwxMzggKzUwNTIs
NiBAQCB3ZWJraXRfd2ViX3ZpZXdfZ2V0X2RvbV9kb2N1bWVudChXZWJLaXRXZWJWaWV3KiB3ZWJW
aWV3KQogICAgIHJldHVybiBraXQoZG9jKTsKIH0KIAotLyoqCi0gKiBTRUNUSU9OOndlYmtpdAot
ICogQHNob3J0X2Rlc2NyaXB0aW9uOiBHbG9iYWwgZnVuY3Rpb25zIGNvbnRyb2xsaW5nIFdlYktp
dAotICoKLSAqIFdlYktpdCBtYW5hZ2VzIG1hbnkgcmVzb3VyY2VzIHdoaWNoIGFyZSBub3QgcmVs
YXRlZCB0byBzcGVjaWZpYwotICogdmlld3MuIFRoZXNlIGZ1bmN0aW9ucyByZWxhdGUgdG8gY3Jv
c3MtdmlldyBsaW1pdHMsIHN1Y2ggYXMgY2FjaGUKLSAqIHNpemVzLCBkYXRhYmFzZSBxdW90YXMs
IGFuZCB0aGUgSFRUUCBzZXNzaW9uIG1hbmFnZW1lbnQuCi0gKi8KLQotLyoqCi0gKiB3ZWJraXRf
Z2V0X2RlZmF1bHRfc2Vzc2lvbjoKLSAqCi0gKiBSZXRyaWV2ZXMgdGhlIGRlZmF1bHQgI1NvdXBT
ZXNzaW9uIHVzZWQgYnkgYWxsIHdlYiB2aWV3cy4KLSAqIE5vdGUgdGhhdCB0aGUgc2Vzc2lvbiBm
ZWF0dXJlcyBhcmUgYWRkZWQgYnkgV2ViS2l0IG9uIGRlbWFuZCwKLSAqIHNvIGlmIHlvdSBpbnNl
cnQgeW91ciBvd24gI1NvdXBDb29raWVKYXIgYmVmb3JlIGFueSBuZXR3b3JrCi0gKiB0cmFmZmlj
IG9jY3VycywgV2ViS2l0IHdpbGwgdXNlIGl0IGluc3RlYWQgb2YgdGhlIGRlZmF1bHQuCi0gKgot
ICogUmV0dXJuIHZhbHVlOiAodHJhbnNmZXIgbm9uZSk6IHRoZSBkZWZhdWx0ICNTb3VwU2Vzc2lv
bgotICoKLSAqIFNpbmNlOiAxLjEuMQotICovCi1Tb3VwU2Vzc2lvbiogd2Via2l0X2dldF9kZWZh
dWx0X3Nlc3Npb24gKCkKLXsKLSAgICB3ZWJraXRfaW5pdCgpOwotICAgIHJldHVybiBSZXNvdXJj
ZUhhbmRsZTo6ZGVmYXVsdFNlc3Npb24oKTsKLX0KLQotLyoqCi0gKiB3ZWJraXRfc2V0X2NhY2hl
X21vZGVsOgotICogQGNhY2hlX21vZGVsOiBhICNXZWJLaXRDYWNoZU1vZGVsCi0gKgotICogU3Bl
Y2lmaWVzIGEgdXNhZ2UgbW9kZWwgZm9yIFdlYlZpZXdzLCB3aGljaCBXZWJLaXQgd2lsbCB1c2Ug
dG8KLSAqIGRldGVybWluZSBpdHMgY2FjaGluZyBiZWhhdmlvci4gQWxsIHdlYiB2aWV3cyBmb2xs
b3cgdGhlIGNhY2hlCi0gKiBtb2RlbC4gVGhpcyBjYWNoZSBtb2RlbCBkZXRlcm1pbmVzIHRoZSBS
QU0gYW5kIGRpc2sgc3BhY2UgdG8gdXNlCi0gKiBmb3IgY2FjaGluZyBwcmV2aW91c2x5IHZpZXdl
ZCBjb250ZW50IC4KLSAqCi0gKiBSZXNlYXJjaCBpbmRpY2F0ZXMgdGhhdCB1c2VycyB0ZW5kIHRv
IGJyb3dzZSB3aXRoaW4gY2x1c3RlcnMgb2YKLSAqIGRvY3VtZW50cyB0aGF0IGhvbGQgcmVzb3Vy
Y2VzIGluIGNvbW1vbiwgYW5kIHRvIHJldmlzaXQgcHJldmlvdXNseQotICogdmlzaXRlZCBkb2N1
bWVudHMuIFdlYktpdCBhbmQgdGhlIGZyYW1ld29ya3MgYmVsb3cgaXQgaW5jbHVkZQotICogYnVp
bHQtaW4gY2FjaGVzIHRoYXQgdGFrZSBhZHZhbnRhZ2Ugb2YgdGhlc2UgcGF0dGVybnMsCi0gKiBz
dWJzdGFudGlhbGx5IGltcHJvdmluZyBkb2N1bWVudCBsb2FkIHNwZWVkIGluIGJyb3dzaW5nCi0g
KiBzaXR1YXRpb25zLiBUaGUgV2ViS2l0IGNhY2hlIG1vZGVsIGNvbnRyb2xzIHRoZSBiZWhhdmlv
cnMgb2YgYWxsIG9mCi0gKiB0aGVzZSBjYWNoZXMsIGluY2x1ZGluZyB2YXJpb3VzIFdlYkNvcmUg
Y2FjaGVzLgotICoKLSAqIEJyb3dzZXJzIGNhbiBpbXByb3ZlIGRvY3VtZW50IGxvYWQgc3BlZWQg
c3Vic3RhbnRpYWxseSBieQotICogc3BlY2lmeWluZyBXRUJLSVRfQ0FDSEVfTU9ERUxfV0VCX0JS
T1dTRVIuIEFwcGxpY2F0aW9ucyB3aXRob3V0IGEKLSAqIGJyb3dzaW5nIGludGVyZmFjZSBjYW4g
cmVkdWNlIG1lbW9yeSB1c2FnZSBzdWJzdGFudGlhbGx5IGJ5Ci0gKiBzcGVjaWZ5aW5nIFdFQktJ
VF9DQUNIRV9NT0RFTF9ET0NVTUVOVF9WSUVXRVIuIERlZmF1bHQgdmFsdWUgaXMKLSAqIFdFQktJ
VF9DQUNIRV9NT0RFTF9XRUJfQlJPV1NFUi4KLSAqCi0gKiBTaW5jZTogMS4xLjE4Ci0gKi8KLXZv
aWQgd2Via2l0X3NldF9jYWNoZV9tb2RlbChXZWJLaXRDYWNoZU1vZGVsIG1vZGVsKQotewotICAg
IHdlYmtpdF9pbml0KCk7Ci0KLSAgICBpZiAoY2FjaGVNb2RlbCA9PSBtb2RlbCkKLSAgICAgICAg
cmV0dXJuOwotCi0gICAgLy8gRklYTUU6IEFkZCBkaXNrIGNhY2hlIGhhbmRsaW5nIHdoZW4gc291
cCBoYXMgdGhlIEFQSQotICAgIGd1aW50IGNhY2hlVG90YWxDYXBhY2l0eTsKLSAgICBndWludCBj
YWNoZU1pbkRlYWRDYXBhY2l0eTsKLSAgICBndWludCBjYWNoZU1heERlYWRDYXBhY2l0eTsKLSAg
ICBnZG91YmxlIGRlYWREZWNvZGVkRGF0YURlbGV0aW9uSW50ZXJ2YWw7Ci0gICAgZ3VpbnQgcGFn
ZUNhY2hlQ2FwYWNpdHk7Ci0KLSAgICBzd2l0Y2ggKG1vZGVsKSB7Ci0gICAgY2FzZSBXRUJLSVRf
Q0FDSEVfTU9ERUxfRE9DVU1FTlRfVklFV0VSOgotICAgICAgICBwYWdlQ2FjaGVDYXBhY2l0eSA9
IDA7Ci0gICAgICAgIGNhY2hlVG90YWxDYXBhY2l0eSA9IDA7Ci0gICAgICAgIGNhY2hlTWluRGVh
ZENhcGFjaXR5ID0gMDsKLSAgICAgICAgY2FjaGVNYXhEZWFkQ2FwYWNpdHkgPSAwOwotICAgICAg
ICBkZWFkRGVjb2RlZERhdGFEZWxldGlvbkludGVydmFsID0gMDsKLSAgICAgICAgYnJlYWs7Ci0g
ICAgY2FzZSBXRUJLSVRfQ0FDSEVfTU9ERUxfV0VCX0JST1dTRVI6Ci0gICAgICAgIC8vIFBhZ2Ug
Y2FjaGUgY2FwYWNpdHkgKGluIHBhZ2VzKS4gQ29tbWVudCBmcm9tIE1hYyBwb3J0OgotICAgICAg
ICAvLyAoUmVzZWFyY2ggaW5kaWNhdGVzIHRoYXQgdmFsdWUgLyBwYWdlIGRyb3BzIHN1YnN0YW50
aWFsbHkgYWZ0ZXIgMyBwYWdlcy4pCi0gICAgICAgIHBhZ2VDYWNoZUNhcGFjaXR5ID0gMzsKLSAg
ICAgICAgY2FjaGVUb3RhbENhcGFjaXR5ID0gMzIgKiAxMDI0ICogMTAyNDsKLSAgICAgICAgY2Fj
aGVNaW5EZWFkQ2FwYWNpdHkgPSBjYWNoZVRvdGFsQ2FwYWNpdHkgLyA0OwotICAgICAgICBjYWNo
ZU1heERlYWRDYXBhY2l0eSA9IGNhY2hlVG90YWxDYXBhY2l0eSAvIDI7Ci0gICAgICAgIGRlYWRE
ZWNvZGVkRGF0YURlbGV0aW9uSW50ZXJ2YWwgPSA2MDsKLSAgICAgICAgYnJlYWs7Ci0gICAgZGVm
YXVsdDoKLSAgICAgICAgZ19yZXR1cm5faWZfcmVhY2hlZCgpOwotICAgIH0KLQotICAgIGNhY2hl
KCktPnNldENhcGFjaXRpZXMoY2FjaGVNaW5EZWFkQ2FwYWNpdHksIGNhY2hlTWF4RGVhZENhcGFj
aXR5LCBjYWNoZVRvdGFsQ2FwYWNpdHkpOwotICAgIGNhY2hlKCktPnNldERlYWREZWNvZGVkRGF0
YURlbGV0aW9uSW50ZXJ2YWwoZGVhZERlY29kZWREYXRhRGVsZXRpb25JbnRlcnZhbCk7Ci0gICAg
cGFnZUNhY2hlKCktPnNldENhcGFjaXR5KHBhZ2VDYWNoZUNhcGFjaXR5KTsKLSAgICBjYWNoZU1v
ZGVsID0gbW9kZWw7Ci19Ci0KLS8qKgotICogd2Via2l0X2dldF9jYWNoZV9tb2RlbDoKLSAqCi0g
KiBSZXR1cm5zIHRoZSBjdXJyZW50IGNhY2hlIG1vZGVsLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiBh
Ym91dCB0aGlzCi0gKiB2YWx1ZSBjaGVjayB0aGUgZG9jdW1lbnRhdGlvbiBvZiB0aGUgZnVuY3Rp
b24KLSAqIHdlYmtpdF9zZXRfY2FjaGVfbW9kZWwoKS4KLSAqCi0gKiBSZXR1cm4gdmFsdWU6IHRo
ZSBjdXJyZW50ICNXZWJLaXRDYWNoZU1vZGVsCi0gKgotICogU2luY2U6IDEuMS4xOAotICovCi1X
ZWJLaXRDYWNoZU1vZGVsIHdlYmtpdF9nZXRfY2FjaGVfbW9kZWwoKQotewotICAgIHdlYmtpdF9p
bml0KCk7Ci0gICAgcmV0dXJuIGNhY2hlTW9kZWw7Ci19Ci0KLS8qKgotICogd2Via2l0X2dldF93
ZWJfcGx1Z2luX2RhdGFiYXNlOgotICoKLSAqIFJldHVybnMgdGhlIGN1cnJlbnQgI1dlYktpdFdl
YlBsdWdpbkRhdGFiYXNlIHdpdGggaW5mb3JtYXRpb24gYWJvdXQKLSAqIGFsbCB0aGUgcGx1Z2lu
cyBXZWJLaXQga25vd3MgYWJvdXQgaW4gdGhpcyBpbnN0YW5jZS4KLSAqCi0gKiBSZXR1cm4gdmFs
dWU6ICh0cmFuc2ZlciBub25lKTogdGhlIGN1cnJlbnQgI1dlYktpdFdlYlBsdWdpbkRhdGFiYXNl
Ci0gKgotICogU2luY2U6IDEuMy44Ci0gKi8KLVdlYktpdFdlYlBsdWdpbkRhdGFiYXNlKiB3ZWJr
aXRfZ2V0X3dlYl9wbHVnaW5fZGF0YWJhc2UoKQotewotICAgIHN0YXRpYyBXZWJLaXRXZWJQbHVn
aW5EYXRhYmFzZSogZGF0YWJhc2UgPSAwOwotCi0gICAgd2Via2l0X2luaXQoKTsKLQotICAgIGlm
ICghZGF0YWJhc2UpCi0gICAgICAgIGRhdGFiYXNlID0gd2Via2l0X3dlYl9wbHVnaW5fZGF0YWJh
c2VfbmV3KCk7Ci0KLSAgICByZXR1cm4gZGF0YWJhc2U7Ci19Ci0KIEd0a01lbnUqIHdlYmtpdF93
ZWJfdmlld19nZXRfY29udGV4dF9tZW51KFdlYktpdFdlYlZpZXcqIHdlYlZpZXcpCiB7CiAgICAg
Z19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0lTX1dFQl9WSUVXKHdlYlZpZXcpLCAwKTsKZGlm
ZiAtLWdpdCBhL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnZpZXcuaCBiL1dlYktpdC9ndGsv
d2Via2l0L3dlYmtpdHdlYnZpZXcuaAppbmRleCA5YWJmZWY2Li4xODM4YmZlIDEwMDY0NAotLS0g
YS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3LmgKKysrIGIvV2ViS2l0L2d0ay93ZWJr
aXQvd2Via2l0d2Vidmlldy5oCkBAIC01MCwyNCArNTAsNiBAQCB0eXBlZGVmIGVudW0gewogICAg
IFdFQktJVF9OQVZJR0FUSU9OX1JFU1BPTlNFX0RPV05MT0FECiB9IFdlYktpdE5hdmlnYXRpb25S
ZXNwb25zZTsKIAotLyogIAotICogV2ViS2l0Q2FjaGVNb2RlbDoKLSAqIEBXRUJLSVRfQ0FDSEVf
TU9ERUxfREVGQVVMVDogVGhlIGRlZmF1bHQgY2FjaGUgbW9kZWwuIFRoaXMgaXMKLSAqICAgV0VC
S0lUX0NBQ0hFX01PREVMX1dFQl9CUk9XU0VSLgotICogQFdFQktJVF9DQUNIRV9NT0RFTF9ET0NV
TUVOVF9WSUVXRVI6IERpc2FibGUgdGhlIGNhY2hlIGNvbXBsZXRlbHksIHdoaWNoIAotICogICBz
dWJzdGFudGlhbGx5IHJlZHVjZXMgbWVtb3J5IHVzYWdlLiBVc2VmdWwgZm9yIGFwcGxpY2F0aW9u
cyB0aGF0IG9ubHkKLSAqICAgYWNjZXNzIGxvY2FsIGZpbGVzLgotICogQFdFQktJVF9DQUNIRV9N
T0RFTF9XRUJfQlJPV1NFUjogSW1wcm92ZSBkb2N1bWVudCBsb2FkIHNwZWVkIHN1YnN0YW50aWFs
bHkKLSAqICAgYnkgY2FjaGluZyBwcmV2aW91c2x5IHZpZXdlZCBjb250ZW50LgotICogCi0gKiBF
bnVtIHZhbHVlcyB1c2VkIGZvciBkZXRlcm1pbmluZyB0aGUgd2VidmlldyBjYWNoZSBtb2RlbC4K
LSAqLwotdHlwZWRlZiBlbnVtIHsKLSAgICBXRUJLSVRfQ0FDSEVfTU9ERUxfREVGQVVMVCwKLSAg
ICBXRUJLSVRfQ0FDSEVfTU9ERUxfRE9DVU1FTlRfVklFV0VSLAotICAgIFdFQktJVF9DQUNIRV9N
T0RFTF9XRUJfQlJPV1NFUgotfSBXZWJLaXRDYWNoZU1vZGVsOwotCiB0eXBlZGVmIGVudW0KIHsK
ICAgICBXRUJLSVRfV0VCX1ZJRVdfVEFSR0VUX0lORk9fSFRNTCwKQEAgLTM2MSwxMiArMzQzLDYg
QEAgV0VCS0lUX0FQSSB2b2lkCiB3ZWJraXRfd2ViX3ZpZXdfc2V0X2Z1bGxfY29udGVudF96b29t
ICAgICAgICAgICAoV2ViS2l0V2ViVmlldyAgICAgICAgKndlYlZpZXcsCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2Jvb2xlYW4gICAgICAgICAgICAg
IGZ1bGxfY29udGVudF96b29tKTsKIAotV0VCS0lUX0FQSSBTb3VwU2Vzc2lvbioKLXdlYmtpdF9n
ZXRfZGVmYXVsdF9zZXNzaW9uICAgICAgICAgICAgICAgICAgICAgICh2b2lkKTsKLQotV0VCS0lU
X0FQSSBXZWJLaXRXZWJQbHVnaW5EYXRhYmFzZSAqCi13ZWJraXRfZ2V0X3dlYl9wbHVnaW5fZGF0
YWJhc2UgICAgICAgICAgICAgICAgICAodm9pZCk7Ci0KIFdFQktJVF9BUEkgY29uc3QgZ2NoYXIq
CiB3ZWJraXRfd2ViX3ZpZXdfZ2V0X2VuY29kaW5nICAgICAgICAgICAgICAgICAgICAoV2ViS2l0
V2ViVmlldyAgICAgICAgKiB3ZWJWaWV3KTsKIApAQCAtNDIxLDEyICszOTcsNiBAQCB3ZWJraXRf
d2ViX3ZpZXdfZ2V0X2hpdF90ZXN0X3Jlc3VsdCAgICAgICAgICAgICAoV2ViS2l0V2ViVmlldyAg
ICAgICAgKndlYlZpZXcsCiBXRUJLSVRfQVBJIEdfQ09OU1RfUkVUVVJOIGdjaGFyICoKIHdlYmtp
dF93ZWJfdmlld19nZXRfaWNvbl91cmkgICAgICAgICAgICAgICAgICAgIChXZWJLaXRXZWJWaWV3
ICAgICAgICAqd2ViVmlldyk7CiAKLVdFQktJVF9BUEkgdm9pZAotd2Via2l0X3NldF9jYWNoZV9t
b2RlbCAgICAgICAgICAgICAgICAgICAgICAgICAgKFdlYktpdENhY2hlTW9kZWwgICAgIGNhY2hl
X21vZGVsKTsKLQotV0VCS0lUX0FQSSBXZWJLaXRDYWNoZU1vZGVsCi13ZWJraXRfZ2V0X2NhY2hl
X21vZGVsICAgICAgICAgICAgICAgICAgICAgICAgICAodm9pZCk7Ci0KIFdFQktJVF9BUEkgV2Vi
S2l0RE9NRG9jdW1lbnQgKgogd2Via2l0X3dlYl92aWV3X2dldF9kb21fZG9jdW1lbnQgICAgICAg
ICAgICAgICAgKFdlYktpdFdlYlZpZXcgICAgICAgICp3ZWJWaWV3KTsKIApkaWZmIC0tZ2l0IGEv
V2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vid2luZG93ZmVhdHVyZXMuY3BwIGIvV2ViS2l0L2d0
ay93ZWJraXQvd2Via2l0d2Vid2luZG93ZmVhdHVyZXMuY3BwCmluZGV4IGRkYzY1N2QuLmQ4Yjlm
NmUgMTAwNjQ0Ci0tLSBhL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYndpbmRvd2ZlYXR1cmVz
LmNwcAorKysgYi9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ3aW5kb3dmZWF0dXJlcy5jcHAK
QEAgLTE5LDEwICsxOSwxMSBAQAogICovCiAKICNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRl
ICJ3ZWJraXR3ZWJ3aW5kb3dmZWF0dXJlcy5oIgogCiAjaW5jbHVkZSAiV2luZG93RmVhdHVyZXMu
aCIKLSNpbmNsdWRlICJ3ZWJraXR3ZWJ3aW5kb3dmZWF0dXJlcy5oIgotI2luY2x1ZGUgIndlYmtp
dHByaXZhdGUuaCIKKyNpbmNsdWRlICJ3ZWJraXRnZW5lcmFscHJpdmF0ZS5oIgorI2luY2x1ZGUg
IndlYmtpdHdlYndpbmRvd2ZlYXR1cmVzcHJpdmF0ZS5oIgogCiAvKioKICAqIFNFQ1RJT046d2Vi
a2l0d2Vid2luZG93ZmVhdHVyZXMKQEAgLTM3OCwzNSArMzc5LDYgQEAgV2ViS2l0V2ViV2luZG93
RmVhdHVyZXMqIHdlYmtpdF93ZWJfd2luZG93X2ZlYXR1cmVzX25ldygpCiAgICAgcmV0dXJuIFdF
QktJVF9XRUJfV0lORE9XX0ZFQVRVUkVTKGdfb2JqZWN0X25ldyhXRUJLSVRfVFlQRV9XRUJfV0lO
RE9XX0ZFQVRVUkVTLCBOVUxMKSk7CiB9CiAKLS8vIGZvciBpbnRlcm5hbCB1c2Ugb25seQotV2Vi
S2l0V2ViV2luZG93RmVhdHVyZXMqIHdlYmtpdF93ZWJfd2luZG93X2ZlYXR1cmVzX25ld19mcm9t
X2NvcmVfZmVhdHVyZXMoY29uc3QgV2ViQ29yZTo6V2luZG93RmVhdHVyZXMmIGZlYXR1cmVzKQot
ewotICAgIFdlYktpdFdlYldpbmRvd0ZlYXR1cmVzICp3ZWJXaW5kb3dGZWF0dXJlcyA9IHdlYmtp
dF93ZWJfd2luZG93X2ZlYXR1cmVzX25ldygpOwotCi0gICAgaWYoZmVhdHVyZXMueFNldCkKLSAg
ICAgICAgZ19vYmplY3Rfc2V0KHdlYldpbmRvd0ZlYXR1cmVzLCAieCIsIHN0YXRpY19jYXN0PGlu
dD4oZmVhdHVyZXMueCksIE5VTEwpOwotCi0gICAgaWYoZmVhdHVyZXMueVNldCkKLSAgICAgICAg
Z19vYmplY3Rfc2V0KHdlYldpbmRvd0ZlYXR1cmVzLCAieSIsIHN0YXRpY19jYXN0PGludD4oZmVh
dHVyZXMueSksIE5VTEwpOwotCi0gICAgaWYoZmVhdHVyZXMud2lkdGhTZXQpCi0gICAgICAgIGdf
b2JqZWN0X3NldCh3ZWJXaW5kb3dGZWF0dXJlcywgIndpZHRoIiwgc3RhdGljX2Nhc3Q8aW50Pihm
ZWF0dXJlcy53aWR0aCksIE5VTEwpOwotCi0gICAgaWYoZmVhdHVyZXMuaGVpZ2h0U2V0KQotICAg
ICAgICBnX29iamVjdF9zZXQod2ViV2luZG93RmVhdHVyZXMsICJoZWlnaHQiLCBzdGF0aWNfY2Fz
dDxpbnQ+KGZlYXR1cmVzLmhlaWdodCksIE5VTEwpOwotCi0gICAgZ19vYmplY3Rfc2V0KHdlYldp
bmRvd0ZlYXR1cmVzLAotICAgICAgICAgICAgICAgICAidG9vbGJhci12aXNpYmxlIiwgZmVhdHVy
ZXMudG9vbEJhclZpc2libGUsCi0gICAgICAgICAgICAgICAgICJzdGF0dXNiYXItdmlzaWJsZSIs
IGZlYXR1cmVzLnN0YXR1c0JhclZpc2libGUsCi0gICAgICAgICAgICAgICAgICJzY3JvbGxiYXIt
dmlzaWJsZSIsIGZlYXR1cmVzLnNjcm9sbGJhcnNWaXNpYmxlLAotICAgICAgICAgICAgICAgICAi
bWVudWJhci12aXNpYmxlIiwgZmVhdHVyZXMubWVudUJhclZpc2libGUsCi0gICAgICAgICAgICAg
ICAgICJsb2NhdGlvbmJhci12aXNpYmxlIiwgZmVhdHVyZXMubG9jYXRpb25CYXJWaXNpYmxlLAot
ICAgICAgICAgICAgICAgICAiZnVsbHNjcmVlbiIsIGZlYXR1cmVzLmZ1bGxzY3JlZW4sCi0gICAg
ICAgICAgICAgICAgIE5VTEwpOwotCi0gICAgcmV0dXJuIHdlYldpbmRvd0ZlYXR1cmVzOwotfQot
CiAvKioKICAqIHdlYmtpdF93ZWJfd2luZG93X2ZlYXR1cmVzX2VxdWFsOgogICogQGZlYXR1cmVz
MTogYSAjV2ViS2l0V2ViV2luZG93RmVhdHVyZXMgaW5zdGFuY2UKQEAgLTQ0MywzICs0MTUsMzUg
QEAgZ2Jvb2xlYW4gd2Via2l0X3dlYl93aW5kb3dfZmVhdHVyZXNfZXF1YWwoV2ViS2l0V2ViV2lu
ZG93RmVhdHVyZXMqIGZlYXR1cmVzMSwgV2UKICAgICAgICAgcmV0dXJuIFRSVUU7CiAgICAgcmV0
dXJuIEZBTFNFOwogfQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworV2ViS2l0V2ViV2luZG93RmVh
dHVyZXMqIGtpdE5ldyhjb25zdCBXZWJDb3JlOjpXaW5kb3dGZWF0dXJlcyYgZmVhdHVyZXMpCit7
CisgICAgV2ViS2l0V2ViV2luZG93RmVhdHVyZXMgKndlYldpbmRvd0ZlYXR1cmVzID0gd2Via2l0
X3dlYl93aW5kb3dfZmVhdHVyZXNfbmV3KCk7CisKKyAgICBpZihmZWF0dXJlcy54U2V0KQorICAg
ICAgICBnX29iamVjdF9zZXQod2ViV2luZG93RmVhdHVyZXMsICJ4Iiwgc3RhdGljX2Nhc3Q8aW50
PihmZWF0dXJlcy54KSwgTlVMTCk7CisKKyAgICBpZihmZWF0dXJlcy55U2V0KQorICAgICAgICBn
X29iamVjdF9zZXQod2ViV2luZG93RmVhdHVyZXMsICJ5Iiwgc3RhdGljX2Nhc3Q8aW50PihmZWF0
dXJlcy55KSwgTlVMTCk7CisKKyAgICBpZihmZWF0dXJlcy53aWR0aFNldCkKKyAgICAgICAgZ19v
YmplY3Rfc2V0KHdlYldpbmRvd0ZlYXR1cmVzLCAid2lkdGgiLCBzdGF0aWNfY2FzdDxpbnQ+KGZl
YXR1cmVzLndpZHRoKSwgTlVMTCk7CisKKyAgICBpZihmZWF0dXJlcy5oZWlnaHRTZXQpCisgICAg
ICAgIGdfb2JqZWN0X3NldCh3ZWJXaW5kb3dGZWF0dXJlcywgImhlaWdodCIsIHN0YXRpY19jYXN0
PGludD4oZmVhdHVyZXMuaGVpZ2h0KSwgTlVMTCk7CisKKyAgICBnX29iamVjdF9zZXQod2ViV2lu
ZG93RmVhdHVyZXMsCisgICAgICAgICAgICAgICAgICJ0b29sYmFyLXZpc2libGUiLCBmZWF0dXJl
cy50b29sQmFyVmlzaWJsZSwKKyAgICAgICAgICAgICAgICAgInN0YXR1c2Jhci12aXNpYmxlIiwg
ZmVhdHVyZXMuc3RhdHVzQmFyVmlzaWJsZSwKKyAgICAgICAgICAgICAgICAgInNjcm9sbGJhci12
aXNpYmxlIiwgZmVhdHVyZXMuc2Nyb2xsYmFyc1Zpc2libGUsCisgICAgICAgICAgICAgICAgICJt
ZW51YmFyLXZpc2libGUiLCBmZWF0dXJlcy5tZW51QmFyVmlzaWJsZSwKKyAgICAgICAgICAgICAg
ICAgImxvY2F0aW9uYmFyLXZpc2libGUiLCBmZWF0dXJlcy5sb2NhdGlvbkJhclZpc2libGUsCisg
ICAgICAgICAgICAgICAgICJmdWxsc2NyZWVuIiwgZmVhdHVyZXMuZnVsbHNjcmVlbiwKKyAgICAg
ICAgICAgICAgICAgTlVMTCk7CisKKyAgICByZXR1cm4gd2ViV2luZG93RmVhdHVyZXM7Cit9CisK
K30KLS0gCjEuNy4yLjMKCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>77803</attachid>
            <date>2011-01-03 04:55:42 -0800</date>
            <delta_ts>2011-01-03 13:20:52 -0800</delta_ts>
            <desc>final split, not with new files actually being added</desc>
            <filename>0001-Final-private-splitting.patch</filename>
            <type>text/plain</type>
            <size>65307</size>
            <attacher name="Gustavo Noronha (kov)">gustavo</attacher>
            
              <data encoding="base64">RnJvbSAxN2JhZDJlNWJmY2Y3MTRkNzg2NDg0Mjc0Yzg1MGZlNWQ0ODNhZTEwIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBHdXN0YXZvIE5vcm9uaGEgU2lsdmEgPGduc0Bnbm9tZS5vcmc+
CkRhdGU6IEZyaSwgMzEgRGVjIDIwMTAgMTM6NTA6NDEgLTAyMDAKU3ViamVjdDogW1BBVENIXSBG
aW5hbCBwcml2YXRlIHNwbGl0dGluZwoKLS0tCiBXZWJDb3JlL0NoYW5nZUxvZyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTIgKwogV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L0NvZGVHZW5lcmF0b3JHT2JqZWN0LnBtICAgfCAgICAzICstCiBXZWJLaXQvZ3RrL0NoYW5nZUxv
ZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgNTggKysrKwogV2ViS2l0L2d0ay9H
TlVtYWtlZmlsZS5hbSAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICA2ICstCiBXZWJLaXQv
Z3RrL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5jcHAgICAgICB8ICAgIDggKy0KIFdl
YktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ29udGV4dE1lbnVDbGllbnRHdGsuY3BwIHwgICAgMSAt
CiBXZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0RvY3VtZW50TG9hZGVyR3RrLmNwcCAgICB8ICAg
IDggKy0KIFdlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRHJhZ0NsaWVudEd0ay5jcHAgICAgICAg
IHwgICAgMSAtCiAuLi4vV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmNw
cCAgICB8ICAgMjIgKy0KIFdlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50R3Rr
LmNwcCAgICAgIHwgICAgMiArLQogV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRl
ckNsaWVudEd0ay5jcHAgfCAgIDExICstCiBXZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0luc3Bl
Y3RvckNsaWVudEd0ay5jcHAgICB8ICAgIDEgLQogV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0Lmgg
ICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAxICsKIFdlYktpdC9ndGsvd2Via2l0L3dlYmtp
dGFwcGxpY2F0aW9uY2FjaGUuY3BwICAgICAgIHwgICAgNyArLQogV2ViS2l0L2d0ay93ZWJraXQv
d2Via2l0ZG93bmxvYWQuY3BwICAgICAgICAgICAgICAgfCAgIDEwICstCiBXZWJLaXQvZ3RrL3dl
YmtpdC93ZWJraXRnZW5lcmFsLmNwcCAgICAgICAgICAgICAgICB8ICAyODIgKysrKysrKysrKysr
KysrKysrKysKIFdlYktpdC9ndGsvd2Via2l0L3dlYmtpdGdlbmVyYWwuaCAgICAgICAgICAgICAg
ICAgIHwgICA2NCArKysrKwogV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0Z2VuZXJhbHByaXZhdGUu
aCAgICAgICAgICAgfCAgIDQ0ICsrKwogLi4uL2d0ay93ZWJraXQvd2Via2l0Z2VvbG9jYXRpb25w
b2xpY3lkZWNpc2lvbi5jcHAgfCAgICAzICstCiBXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRoaXR0
ZXN0cmVzdWx0LmNwcCAgICAgICAgICB8ICAgIDcgKy0KIFdlYktpdC9ndGsvd2Via2l0L3dlYmtp
dG5ldHdvcmtyZXF1ZXN0LmNwcCAgICAgICAgIHwgICAgNiArLQogV2ViS2l0L2d0ay93ZWJraXQv
d2Via2l0bmV0d29ya3Jlc3BvbnNlLmNwcCAgICAgICAgfCAgICA0ICstCiBXZWJLaXQvZ3RrL3dl
YmtpdC93ZWJraXRwcml2YXRlLmNwcCAgICAgICAgICAgICAgICB8ICAxNjQgLS0tLS0tLS0tLS0t
CiBXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRwcml2YXRlLmggICAgICAgICAgICAgICAgICB8ICAg
OTQgLS0tLS0tLQogV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0c2VjdXJpdHlvcmlnaW4uY3BwICAg
ICAgICAgfCAgICAyICstCiBXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR2aWV3cG9ydGF0dHJpYnV0
ZXMuY3BwICAgICB8ICAgIDQgKy0KIFdlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYmJhY2tmb3J3
YXJkbGlzdC5jcHAgICAgIHwgICAgMyArLQogV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2ViZGF0
YWJhc2UuY3BwICAgICAgICAgICAgfCAgICAyICstCiBXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3
ZWJkYXRhc291cmNlLmNwcCAgICAgICAgICB8ICAgMzEgKystCiBXZWJLaXQvZ3RrL3dlYmtpdC93
ZWJraXR3ZWJmcmFtZS5jcHAgICAgICAgICAgICAgICB8ICAgIDIgKy0KIFdlYktpdC9ndGsvd2Vi
a2l0L3dlYmtpdHdlYmZyYW1lcHJpdmF0ZS5oICAgICAgICAgIHwgICAgMyArCiBXZWJLaXQvZ3Rr
L3dlYmtpdC93ZWJraXR3ZWJoaXN0b3J5aXRlbS5jcHAgICAgICAgICB8ICAgIDMgKy0KIFdlYktp
dC9ndGsvd2Via2l0L3dlYmtpdHdlYmluc3BlY3Rvci5jcHAgICAgICAgICAgIHwgICAgMiArLQog
V2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2VibmF2aWdhdGlvbmFjdGlvbi5jcHAgICAgfCAgIDEw
ICstCiBXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJwbHVnaW4uY3BwICAgICAgICAgICAgICB8
ICAgIDIgKy0KIFdlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnBsdWdpbmRhdGFiYXNlLmNwcCAg
ICAgIHwgICAgMiArLQogV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2VicGx1Z2lucHJpdmF0ZS5o
ICAgICAgICAgfCAgICAxICsKIFdlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnBvbGljeWRlY2lz
aW9uLmNwcCAgICAgIHwgICAgMiArLQogV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2VicmVzb3Vy
Y2UuY3BwICAgICAgICAgICAgfCAgICA4ICstCiBXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJz
ZXR0aW5ncy5jcHAgICAgICAgICAgICB8ICAgMTQgKy0KIFdlYktpdC9ndGsvd2Via2l0L3dlYmtp
dHdlYnNldHRpbmdzcHJpdmF0ZS5oICAgICAgIHwgICAgOCArCiBXZWJLaXQvZ3RrL3dlYmtpdC93
ZWJraXR3ZWJ2aWV3LmNwcCAgICAgICAgICAgICAgICB8ICAxMzggKy0tLS0tLS0tLQogV2ViS2l0
L2d0ay93ZWJraXQvd2Via2l0d2Vidmlldy5oICAgICAgICAgICAgICAgICAgfCAgIDMwIC0tCiBX
ZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ3aW5kb3dmZWF0dXJlcy5jcHAgICAgICB8ICAgNjYg
KysrLS0tCiA0NCBmaWxlcyBjaGFuZ2VkLCA2MTMgaW5zZXJ0aW9ucygrKSwgNTM5IGRlbGV0aW9u
cygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IFdlYktpdC9ndGsvd2Via2l0L3dlYmtpdGdlbmVyYWwu
Y3BwCiBjcmVhdGUgbW9kZSAxMDA2NDQgV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0Z2VuZXJhbC5o
CiBjcmVhdGUgbW9kZSAxMDA2NDQgV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0Z2VuZXJhbHByaXZh
dGUuaAogZGVsZXRlIG1vZGUgMTAwNjQ0IFdlYktpdC9ndGsvd2Via2l0L3dlYmtpdHByaXZhdGUu
Y3BwCiBkZWxldGUgbW9kZSAxMDA2NDQgV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0cHJpdmF0ZS5o
CgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRl
eCBhZmE4NWM2Li43YmM3NGFhIDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9X
ZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDEwLTEyLTMxICBHdXN0YXZvIE5v
cm9uaGEgU2lsdmEgIDxnbnNAZ25vbWUub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIGFzZAorCisgICAgICAgIE5lZWQgYSBzaG9ydCBkZXNjcmlw
dGlvbiBhbmQgYnVnIFVSTCAoT09QUyEpCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLiAoT09QUyEp
CisKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JHT2JqZWN0LnBtOgor
CiAyMDEwLTEyLTMxICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CiAKICAgICAgICAg
UnViYmVyLXN0YW1wZWQgYnkgRXJpYyBTZWlkZWwuCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckdPYmplY3QucG0gYi9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvQ29kZUdlbmVyYXRvckdPYmplY3QucG0KaW5kZXggZTI3NzNiOC4uNWQyNzhkZSAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JHT2JqZWN0LnBt
CisrKyBiL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yR09iamVjdC5wbQpA
QCAtMTMzMyw4ICsxMzMzLDkgQEAgc3ViIEdlbmVyYXRlIHsKICAgICBAY1ByZWZpeCA9IHNwbGl0
KCJcciIsICRsaWNlbmNlVGVtcGxhdGUpOwogICAgIHB1c2goQGNQcmVmaXgsICJcbiIpOwogCisg
ICAgJGltcGxJbmNsdWRlc3sid2Via2l0ZGVmaW5lcy5oIn0gPSAxOworICAgICRpbXBsSW5jbHVk
ZXN7IndlYmtpdGdlbmVyYWxwcml2YXRlLmgifSA9IDE7CiAgICAgJGltcGxJbmNsdWRlc3sid2Vi
a2l0bWFyc2hhbC5oIn0gPSAxOwotICAgICRpbXBsSW5jbHVkZXN7IndlYmtpdHByaXZhdGUuaCJ9
ID0gMTsKICAgICAkaW1wbEluY2x1ZGVzeyJET01PYmplY3RDYWNoZS5oIn0gPSAxOwogICAgICRp
bXBsSW5jbHVkZXN7IldlYktpdERPTUJpbmRpbmcuaCJ9ID0gMTsKICAgICAkaW1wbEluY2x1ZGVz
eyJnb2JqZWN0L0NvbnZlcnRUb1VURjhTdHJpbmcuaCJ9ID0gMTsKZGlmZiAtLWdpdCBhL1dlYktp
dC9ndGsvQ2hhbmdlTG9nIGIvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKaW5kZXggYTE1N2NlNS4uMDU0
MjJhNiAxMDA2NDQKLS0tIGEvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L2d0ay9D
aGFuZ2VMb2cKQEAgLTEsMyArMSw2MSBAQAorMjAxMC0xMi0zMSAgR3VzdGF2byBOb3JvbmhhIFNp
bHZhICA8Z3VzdGF2by5ub3JvbmhhQGNvbGxhYm9yYS5jby51az4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbR1RLXSBTcGxpdCB3ZWJraXRwcml2YXRl
LntjcHAsaH0gaW4gbW9yZSBtYW5hZ2VhYmxlIGNodW5rcworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTA2OTgKKworICAgICAgICBGaW5hbCBwYXRjaCwg
cmVtb3Zpbmcgd2Via2l0cHJpdmF0ZS57Y3BwLGh9LCBhbmQgYWRkaW5nIGEKKyAgICAgICAgd2Vi
a2l0Z2VuZXJhbCBtb2R1bGUgdG8gaG9sZCBub24tb2JqZWN0LXNwZWNpZmljIGZ1bmN0aW9ucyBh
bmQKKyAgICAgICAgZGVmaW5pdGlvbnMgdGhhdCBkbyBub3QgbWFrZSBzZW5zZSBvbiB0aGVpciBv
d24uCisKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5hbToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9y
dC9DaHJvbWVDbGllbnRHdGsuY3BwOgorICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnQ6OmNy
ZWF0ZVdpbmRvdyk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ29udGV4dE1lbnVDbGllbnRH
dGsuY3BwOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0RvY3VtZW50TG9hZGVyR3RrLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6RG9jdW1lbnRMb2FkZXI6OmF0dGFjaFRvRnJhbWUpOgorICAgICAg
ICAqIFdlYkNvcmVTdXBwb3J0L0RyYWdDbGllbnRHdGsuY3BwOgorICAgICAgICAqIFdlYkNvcmVT
dXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5jcHA6CisgICAgICAgICogV2ViQ29yZVN1
cHBvcnQvRWRpdG9yQ2xpZW50R3RrLmNwcDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFt
ZUxvYWRlckNsaWVudEd0ay5jcHA6CisgICAgICAgIChXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50
OjpjcmVhdGVEb2N1bWVudExvYWRlcik6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvSW5zcGVj
dG9yQ2xpZW50R3RrLmNwcDoKKyAgICAgICAgKiB3ZWJraXQvd2Via2l0Lmg6CisgICAgICAgICog
d2Via2l0L3dlYmtpdGFwcGxpY2F0aW9uY2FjaGUuY3BwOgorICAgICAgICAod2Via2l0X2FwcGxp
Y2F0aW9uX2NhY2hlX3NldF9tYXhpbXVtX3NpemUpOgorICAgICAgICAqIHdlYmtpdC93ZWJraXRk
b3dubG9hZC5jcHA6CisgICAgICAgICogd2Via2l0L3dlYmtpdGdlb2xvY2F0aW9ucG9saWN5ZGVj
aXNpb24uY3BwOgorICAgICAgICAqIHdlYmtpdC93ZWJraXRoaXR0ZXN0cmVzdWx0LmNwcDoKKyAg
ICAgICAgKiB3ZWJraXQvd2Via2l0bmV0d29ya3JlcXVlc3QuY3BwOgorICAgICAgICAqIHdlYmtp
dC93ZWJraXRuZXR3b3JrcmVzcG9uc2UuY3BwOgorICAgICAgICAqIHdlYmtpdC93ZWJraXRwcml2
YXRlLmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiB3ZWJraXQvd2Via2l0cHJpdmF0ZS5oOiBSZW1v
dmVkLgorICAgICAgICAqIHdlYmtpdC93ZWJraXRzZWN1cml0eW9yaWdpbi5jcHA6CisgICAgICAg
ICogd2Via2l0L3dlYmtpdHZpZXdwb3J0YXR0cmlidXRlcy5jcHA6CisgICAgICAgICogd2Via2l0
L3dlYmtpdHdlYmJhY2tmb3J3YXJkbGlzdC5jcHA6CisgICAgICAgICogd2Via2l0L3dlYmtpdHdl
YmRhdGFiYXNlLmNwcDoKKyAgICAgICAgKiB3ZWJraXQvd2Via2l0d2ViZGF0YXNvdXJjZS5jcHA6
CisgICAgICAgICh3ZWJraXRfd2ViX2RhdGFfc291cmNlX25ld193aXRoX3JlcXVlc3QpOgorICAg
ICAgICAoV2ViS2l0OjpraXROZXcpOgorICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJmcmFtZS5j
cHA6CisgICAgICAgICogd2Via2l0L3dlYmtpdHdlYmZyYW1lcHJpdmF0ZS5oOgorICAgICAgICAq
IHdlYmtpdC93ZWJraXR3ZWJoaXN0b3J5aXRlbS5jcHA6CisgICAgICAgICogd2Via2l0L3dlYmtp
dHdlYmluc3BlY3Rvci5jcHA6CisgICAgICAgICogd2Via2l0L3dlYmtpdHdlYm5hdmlnYXRpb25h
Y3Rpb24uY3BwOgorICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJwbHVnaW4uY3BwOgorICAgICAg
ICAqIHdlYmtpdC93ZWJraXR3ZWJwbHVnaW5kYXRhYmFzZS5jcHA6CisgICAgICAgICogd2Via2l0
L3dlYmtpdHdlYnBsdWdpbnByaXZhdGUuaDoKKyAgICAgICAgKiB3ZWJraXQvd2Via2l0d2VicG9s
aWN5ZGVjaXNpb24uY3BwOgorICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJyZXNvdXJjZS5jcHA6
CisgICAgICAgICogd2Via2l0L3dlYmtpdHdlYnNldHRpbmdzLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6Y29yZSk6CisgICAgICAgICogd2Via2l0L3dlYmtpdHdlYnNldHRpbmdzcHJpdmF0ZS5oOgor
ICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcDoKKyAgICAgICAgKiB3ZWJraXQvd2Vi
a2l0d2Vidmlldy5oOgorICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJ3aW5kb3dmZWF0dXJlcy5j
cHA6CisgICAgICAgIChXZWJLaXQ6OmtpdE5ldyk6CisKIDIwMTAtMTItMjkgIE1hcnRpbiBSb2Jp
bnNvbiAgPG1yb2JpbnNvbkBpZ2FsaWEuY29tPgogCiAgICAgICAgIEJ1aWxkIGZpeCBmb3IgR1RL
Ky4KZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsvR05VbWFrZWZpbGUuYW0gYi9XZWJLaXQvZ3RrL0dO
VW1ha2VmaWxlLmFtCmluZGV4IGQ1ODQyZmMuLjZmNTFjYzkgMTAwNjQ0Ci0tLSBhL1dlYktpdC9n
dGsvR05VbWFrZWZpbGUuYW0KKysrIGIvV2ViS2l0L2d0ay9HTlVtYWtlZmlsZS5hbQpAQCAtMTkx
LDkgKzE5MSwxMyBAQCB3ZWJraXRndGtfc291cmNlcyArPSBcCiAJV2ViS2l0L2d0ay9XZWJDb3Jl
U3VwcG9ydC9QYXN0ZWJvYXJkSGVscGVyR3RrLmNwcCBcCiAJV2ViS2l0L2d0ay9XZWJDb3JlU3Vw
cG9ydC9QYXN0ZWJvYXJkSGVscGVyR3RrLmggXAogCVdlYktpdC9ndGsvd2Via2l0L3dlYmtpdGFw
cGxpY2F0aW9uY2FjaGUuY3BwIFwKKwlXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRhcHBsaWNhdGlv
bmNhY2hlcHJpdmF0ZS5oIFwKIAlXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRkb3dubG9hZC5jcHAg
XAogCVdlYktpdC9ndGsvd2Via2l0L3dlYmtpdGRvd25sb2FkcHJpdmF0ZS5oIFwKIAlXZWJLaXQv
Z3RrL3dlYmtpdC93ZWJraXRlcnJvci5jcHAgXAorCVdlYktpdC9ndGsvd2Via2l0L3dlYmtpdGdl
bmVyYWwuY3BwIFwKKwlXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRnZW5lcmFsLmggXAorCVdlYktp
dC9ndGsvd2Via2l0L3dlYmtpdGdlbmVyYWxwcml2YXRlLmggXAogCVdlYktpdC9ndGsvd2Via2l0
L3dlYmtpdGdlb2xvY2F0aW9ucG9saWN5ZGVjaXNpb24uY3BwIFwKIAlXZWJLaXQvZ3RrL3dlYmtp
dC93ZWJraXRoaXR0ZXN0cmVzdWx0LmNwcCBcCiAJV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0aGl0
dGVzdHJlc3VsdHByaXZhdGUuaCBcCkBAIC0yMDEsOCArMjA1LDYgQEAgd2Via2l0Z3RrX3NvdXJj
ZXMgKz0gXAogCVdlYktpdC9ndGsvd2Via2l0L3dlYmtpdG5ldHdvcmtyZXF1ZXN0cHJpdmF0ZS5o
IFwKIAlXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRuZXR3b3JrcmVzcG9uc2UuY3BwIFwKIAlXZWJL
aXQvZ3RrL3dlYmtpdC93ZWJraXRuZXR3b3JrcmVzcG9uc2Vwcml2YXRlLmggXAotCVdlYktpdC9n
dGsvd2Via2l0L3dlYmtpdHByaXZhdGUuY3BwIFwKLQlXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRw
cml2YXRlLmggXAogCVdlYktpdC9ndGsvd2Via2l0L3dlYmtpdHNlY3VyaXR5b3JpZ2luLmNwcCBc
CiAJV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0c2VjdXJpdHlvcmlnaW5wcml2YXRlLmggXAogCVdl
YktpdC9ndGsvd2Via2l0L3dlYmtpdHNvdXBhdXRoZGlhbG9nLmMgXApkaWZmIC0tZ2l0IGEvV2Vi
S2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuY3BwIGIvV2ViS2l0L2d0ay9X
ZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuY3BwCmluZGV4IDc5MTBjN2EuLjZkZjU5ODAg
MTAwNjQ0Ci0tLSBhL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNw
cAorKysgYi9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5jcHAKQEAg
LTQ4LDEzICs0OCwxNCBAQAogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCiAjaW5jbHVkZSAi
V2luZG93RmVhdHVyZXMuaCIKICNpbmNsdWRlICJ3ZWJraXRnZW9sb2NhdGlvbnBvbGljeWRlY2lz
aW9uLmgiCisjaW5jbHVkZSAid2Via2l0Z2VvbG9jYXRpb25wb2xpY3lkZWNpc2lvbnByaXZhdGUu
aCIKICNpbmNsdWRlICJ3ZWJraXRuZXR3b3JrcmVxdWVzdC5oIgotI2luY2x1ZGUgIndlYmtpdHBy
aXZhdGUuaCIKICNpbmNsdWRlICJ3ZWJraXRzZWN1cml0eW9yaWdpbnByaXZhdGUuaCIKICNpbmNs
dWRlICJ3ZWJraXR2aWV3cG9ydGF0dHJpYnV0ZXNwcml2YXRlLmgiCiAjaW5jbHVkZSAid2Via2l0
d2ViZnJhbWVwcml2YXRlLmgiCiAjaW5jbHVkZSAid2Via2l0d2Vidmlldy5oIgogI2luY2x1ZGUg
IndlYmtpdHdlYnZpZXdwcml2YXRlLmgiCisjaW5jbHVkZSAid2Via2l0d2Vid2luZG93ZmVhdHVy
ZXNwcml2YXRlLmgiCiAjaW5jbHVkZSA8Z2xpYi5oPgogI2luY2x1ZGUgPGdsaWIvZ2kxOG4tbGli
Lmg+CiAjaW5jbHVkZSA8Z3RrL2d0ay5oPgpAQCAtMTU2LDkgKzE1Nyw4IEBAIFBhZ2UqIENocm9t
ZUNsaWVudDo6Y3JlYXRlV2luZG93KEZyYW1lKiBmcmFtZSwgY29uc3QgRnJhbWVMb2FkUmVxdWVz
dCYgZnJhbWVMb2FkCiAgICAgaWYgKCF3ZWJWaWV3KQogICAgICAgICByZXR1cm4gMDsKIAotICAg
IFdlYktpdFdlYldpbmRvd0ZlYXR1cmVzKiB3ZWJXaW5kb3dGZWF0dXJlcyA9IHdlYmtpdF93ZWJf
d2luZG93X2ZlYXR1cmVzX25ld19mcm9tX2NvcmVfZmVhdHVyZXMoY29yZUZlYXR1cmVzKTsKLSAg
ICBnX29iamVjdF9zZXQod2ViVmlldywgIndpbmRvdy1mZWF0dXJlcyIsIHdlYldpbmRvd0ZlYXR1
cmVzLCBOVUxMKTsKLSAgICBnX29iamVjdF91bnJlZih3ZWJXaW5kb3dGZWF0dXJlcyk7CisgICAg
UGxhdGZvcm1SZWZQdHI8V2ViS2l0V2ViV2luZG93RmVhdHVyZXM+IHdlYldpbmRvd0ZlYXR1cmVz
KGFkb3B0UGxhdGZvcm1SZWYoa2l0TmV3KGNvcmVGZWF0dXJlcykpKTsKKyAgICBnX29iamVjdF9z
ZXQod2ViVmlldywgIndpbmRvdy1mZWF0dXJlcyIsIHdlYldpbmRvd0ZlYXR1cmVzLmdldCgpLCBO
VUxMKTsKIAogICAgIGlmICghZnJhbWVMb2FkUmVxdWVzdC5pc0VtcHR5KCkpCiAgICAgICAgIHdl
YmtpdF93ZWJfdmlld19vcGVuKHdlYlZpZXcsIGZyYW1lTG9hZFJlcXVlc3QucmVzb3VyY2VSZXF1
ZXN0KCkudXJsKCkuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7CmRpZmYgLS1naXQgYS9XZWJLaXQv
Z3RrL1dlYkNvcmVTdXBwb3J0L0NvbnRleHRNZW51Q2xpZW50R3RrLmNwcCBiL1dlYktpdC9ndGsv
V2ViQ29yZVN1cHBvcnQvQ29udGV4dE1lbnVDbGllbnRHdGsuY3BwCmluZGV4IDEzN2Y5YWIuLmQ5
YzU5ZDAgMTAwNjQ0Ci0tLSBhL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ29udGV4dE1lbnVD
bGllbnRHdGsuY3BwCisrKyBiL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ29udGV4dE1lbnVD
bGllbnRHdGsuY3BwCkBAIC0yNiw3ICsyNiw2IEBACiAjaW5jbHVkZSAiS1VSTC5oIgogI2luY2x1
ZGUgIk5vdEltcGxlbWVudGVkLmgiCiAjaW5jbHVkZSAiUGFnZS5oIgotI2luY2x1ZGUgIndlYmtp
dHByaXZhdGUuaCIKICNpbmNsdWRlICJ3ZWJraXR3ZWJ2aWV3cHJpdmF0ZS5oIgogI2luY2x1ZGUg
PGdsaWItb2JqZWN0Lmg+CiAjaW5jbHVkZSA8Z2xpYi9naTE4bi1saWIuaD4KZGlmZiAtLWdpdCBh
L1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRG9jdW1lbnRMb2FkZXJHdGsuY3BwIGIvV2ViS2l0
L2d0ay9XZWJDb3JlU3VwcG9ydC9Eb2N1bWVudExvYWRlckd0ay5jcHAKaW5kZXggMmIzNTVjYi4u
YmVkYjEyOSAxMDA2NDQKLS0tIGEvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9Eb2N1bWVudExv
YWRlckd0ay5jcHAKKysrIGIvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9Eb2N1bWVudExvYWRl
ckd0ay5jcHAKQEAgLTMwLDggKzMwLDkgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRl
ICJEb2N1bWVudExvYWRlckd0ay5oIgogCi0jaW5jbHVkZSAid2Via2l0cHJpdmF0ZS5oIgorI2lu
Y2x1ZGUgIkdSZWZQdHIuaCIKICNpbmNsdWRlICJ3ZWJraXR3ZWJkYXRhc291cmNlLmgiCisjaW5j
bHVkZSAid2Via2l0d2ViZGF0YXNvdXJjZXByaXZhdGUuaCIKIAogdXNpbmcgbmFtZXNwYWNlIFdl
YkNvcmU7CiAKQEAgLTY4LDkgKzY5LDggQEAgdm9pZCBEb2N1bWVudExvYWRlcjo6YXR0YWNoVG9G
cmFtZSgpCiAKICAgICAvLyBXZSBtYXkgZ2V0IHRvIGhlcmUgd2l0aG91dCBoYXZpbmcgYSBkYXRh
c291cmNlLCB3aGVuIHRoZSBkYXRhCiAgICAgLy8gaXMgY29taW5nIGZyb20gdGhlIHBhZ2UgY2Fj
aGUuCi0gICAgV2ViS2l0V2ViRGF0YVNvdXJjZSogZGF0YVNvdXJjZSA9IHdlYmtpdF93ZWJfZGF0
YV9zb3VyY2VfbmV3X3dpdGhfbG9hZGVyKHRoaXMpOwotICAgIHNldERhdGFTb3VyY2UoZGF0YVNv
dXJjZSk7Ci0gICAgZ19vYmplY3RfdW5yZWYoZGF0YVNvdXJjZSk7CisgICAgUGxhdGZvcm1SZWZQ
dHI8V2ViS2l0V2ViRGF0YVNvdXJjZT4gZGF0YVNvdXJjZShhZG9wdFBsYXRmb3JtUmVmKGtpdE5l
dyh0aGlzKSkpOworICAgIHNldERhdGFTb3VyY2UoZGF0YVNvdXJjZS5nZXQoKSk7CiB9CiAKIHZv
aWQgRG9jdW1lbnRMb2FkZXI6OmRldGFjaEZyb21GcmFtZSgpCmRpZmYgLS1naXQgYS9XZWJLaXQv
Z3RrL1dlYkNvcmVTdXBwb3J0L0RyYWdDbGllbnRHdGsuY3BwIGIvV2ViS2l0L2d0ay9XZWJDb3Jl
U3VwcG9ydC9EcmFnQ2xpZW50R3RrLmNwcAppbmRleCA1ZjM5MWVjLi5kYmU3ZGRkIDEwMDY0NAot
LS0gYS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0RyYWdDbGllbnRHdGsuY3BwCisrKyBiL1dl
YktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRHJhZ0NsaWVudEd0ay5jcHAKQEAgLTMyLDcgKzMyLDYg
QEAKICNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgogI2luY2x1ZGUgIlBhc3RlYm9hcmRIZWxw
ZXIuaCIKICNpbmNsdWRlICJSZW5kZXJPYmplY3QuaCIKLSNpbmNsdWRlICJ3ZWJraXRwcml2YXRl
LmgiCiAjaW5jbHVkZSAid2Via2l0d2ViZnJhbWVwcml2YXRlLmgiCiAjaW5jbHVkZSAid2Via2l0
d2Vidmlld3ByaXZhdGUuaCIKICNpbmNsdWRlICJ3ZWJraXR3ZWJ2aWV3LmgiCmRpZmYgLS1naXQg
YS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5jcHAg
Yi9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5jcHAK
aW5kZXggYTc1MWM3Ny4uNWQ4ZTQwMCAxMDA2NDQKLS0tIGEvV2ViS2l0L2d0ay9XZWJDb3JlU3Vw
cG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuY3BwCisrKyBiL1dlYktpdC9ndGsvV2ViQ29y
ZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmNwcApAQCAtMjEsMTUgKzIxLDE2IEBA
CiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiRHVtcFJlbmRlclRyZWVTdXBwb3J0R3Rr
LmgiCiAKLSNpbmNsdWRlICJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckF0ay5oIgotI2luY2x1
ZGUgIkFuaW1hdGlvbkNvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJBUElDYXN0LmgiCiAjaW5jbHVk
ZSAiQVhPYmplY3RDYWNoZS5oIgorI2luY2x1ZGUgIkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVy
QXRrLmgiCisjaW5jbHVkZSAiQW5pbWF0aW9uQ29udHJvbGxlci5oIgorI2luY2x1ZGUgIkRPTVdy
YXBwZXJXb3JsZC5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRm9jdXNDb250
cm9sbGVyLmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXJDbGllbnRHdGsuaCIKLSNpbmNsdWRlICJG
cmFtZVZpZXcuaCIKICNpbmNsdWRlICJGcmFtZVRyZWUuaCIKKyNpbmNsdWRlICJGcmFtZVZpZXcu
aCIKICNpbmNsdWRlICJHQ0NvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQu
aCIKICNpbmNsdWRlICJKU0RPTVdpbmRvdy5oIgpAQCAtNDMsMjEgKzQ0LDIwIEBACiAjaW5jbHVk
ZSAiUGxhdGZvcm1TdHJpbmcuaCIKICNpbmNsdWRlICJQcmludENvbnRleHQuaCIKICNpbmNsdWRl
ICJSZW5kZXJMaXN0SXRlbS5oIgotI2luY2x1ZGUgIlJlbmRlclZpZXcuaCIKICNpbmNsdWRlICJS
ZW5kZXJUcmVlQXNUZXh0LmgiCisjaW5jbHVkZSAiUmVuZGVyVmlldy5oIgogI2luY2x1ZGUgIlNl
Y3VyaXR5T3JpZ2luLmgiCi0jaWYgRU5BQkxFKFNWRykKLSNpbmNsdWRlICJTVkdTTUlMRWxlbWVu
dC5oIgotI2VuZGlmCiAjaW5jbHVkZSAiV29ya2VyVGhyZWFkLmgiCi0jaW5jbHVkZSAid2Via2l0
cHJpdmF0ZS5oIgorI2luY2x1ZGUgIndlYmtpdHdlYmZyYW1lLmgiCiAjaW5jbHVkZSAid2Via2l0
d2ViZnJhbWVwcml2YXRlLmgiCi0jaW5jbHVkZSAid2Via2l0d2Vidmlld3ByaXZhdGUuaCIKICNp
bmNsdWRlICJ3ZWJraXR3ZWJ2aWV3LmgiCi0jaW5jbHVkZSAid2Via2l0d2ViZnJhbWUuaCIKLSNp
bmNsdWRlICJET01XcmFwcGVyV29ybGQuaCIKKyNpbmNsdWRlICJ3ZWJraXR3ZWJ2aWV3cHJpdmF0
ZS5oIgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0FQSUNhc3QuaD4KIAorI2lmIEVOQUJMRShT
VkcpCisjaW5jbHVkZSAiU1ZHU01JTEVsZW1lbnQuaCIKKyNlbmRpZgorCiB1c2luZyBuYW1lc3Bh
Y2UgSlNDOwogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiB1c2luZyBuYW1lc3BhY2UgV2ViS2l0
OwpkaWZmIC0tZ2l0IGEvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRHdGsu
Y3BwIGIvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRHdGsuY3BwCmluZGV4
IDNmNTVjY2EuLjYxY2E1YWIgMTAwNjQ0Ci0tLSBhL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQv
RWRpdG9yQ2xpZW50R3RrLmNwcAorKysgYi9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0VkaXRv
ckNsaWVudEd0ay5jcHAKQEAgLTQ0LDggKzQ0LDggQEAKICNpbmNsdWRlICJXZWJLaXRET01Ob2Rl
UHJpdmF0ZS5oIgogI2luY2x1ZGUgIldlYktpdERPTVJhbmdlUHJpdmF0ZS5oIgogI2luY2x1ZGUg
IldpbmRvd3NLZXlib2FyZENvZGVzLmgiCisjaW5jbHVkZSAid2Via2l0Z2VuZXJhbHByaXZhdGUu
aCIKICNpbmNsdWRlICJ3ZWJraXRtYXJzaGFsLmgiCi0jaW5jbHVkZSAid2Via2l0cHJpdmF0ZS5o
IgogI2luY2x1ZGUgIndlYmtpdHdlYnNldHRpbmdzcHJpdmF0ZS5oIgogI2luY2x1ZGUgIndlYmtp
dHdlYnZpZXdwcml2YXRlLmgiCiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgpkaWZmIC0t
Z2l0IGEvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5jcHAg
Yi9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNwcAppbmRl
eCA4OTVlNjRlLi4xMmI4YmY0IDEwMDY0NAotLS0gYS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0
L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNwcAorKysgYi9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0
L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNwcApAQCAtNTgsMTQgKzU4LDE3IEBACiAjaW5jbHVkZSAi
UmVzb3VyY2VIYW5kbGUuaCIKICNpbmNsdWRlICJSZXNvdXJjZVJlcXVlc3QuaCIKICNpbmNsdWRl
ICJTY3JpcHRDb250cm9sbGVyLmgiCisjaW5jbHVkZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRlICJ3
ZWJraXRlcnJvci5oIgorI2luY2x1ZGUgIndlYmtpdGdlbmVyYWwuaCIKKyNpbmNsdWRlICJ3ZWJr
aXRnZW5lcmFscHJpdmF0ZS5oIgogI2luY2x1ZGUgIndlYmtpdG5ldHdvcmtyZXF1ZXN0LmgiCiAj
aW5jbHVkZSAid2Via2l0bmV0d29ya3JlcXVlc3Rwcml2YXRlLmgiCiAjaW5jbHVkZSAid2Via2l0
bmV0d29ya3Jlc3BvbnNlLmgiCiAjaW5jbHVkZSAid2Via2l0bmV0d29ya3Jlc3BvbnNlcHJpdmF0
ZS5oIgotI2luY2x1ZGUgIndlYmtpdHByaXZhdGUuaCIKICNpbmNsdWRlICJ3ZWJraXR2aWV3cG9y
dGF0dHJpYnV0ZXMuaCIKICNpbmNsdWRlICJ3ZWJraXR2aWV3cG9ydGF0dHJpYnV0ZXNwcml2YXRl
LmgiCisjaW5jbHVkZSAid2Via2l0d2ViZGF0YXNvdXJjZXByaXZhdGUuaCIKICNpbmNsdWRlICJ3
ZWJraXR3ZWJmcmFtZS5oIgogI2luY2x1ZGUgIndlYmtpdHdlYmZyYW1lcHJpdmF0ZS5oIgogI2lu
Y2x1ZGUgIndlYmtpdHdlYm5hdmlnYXRpb25hY3Rpb24uaCIKQEAgLTc0LDYgKzc3LDcgQEAKICNp
bmNsdWRlICJ3ZWJraXR3ZWJwb2xpY3lkZWNpc2lvbnByaXZhdGUuaCIKICNpbmNsdWRlICJ3ZWJr
aXR3ZWJyZXNvdXJjZS5oIgogI2luY2x1ZGUgIndlYmtpdHdlYnJlc291cmNlcHJpdmF0ZS5oIgor
I2luY2x1ZGUgIndlYmtpdHdlYnNldHRpbmdzcHJpdmF0ZS5oIgogI2luY2x1ZGUgIndlYmtpdHdl
YnZpZXcuaCIKICNpbmNsdWRlICJ3ZWJraXR3ZWJ2aWV3cHJpdmF0ZS5oIgogI2luY2x1ZGUgPEph
dmFTY3JpcHRDb3JlL0FQSUNhc3QuaD4KQEAgLTI0MCw5ICsyNDQsOCBAQCBXVEY6OlBhc3NSZWZQ
dHI8V2ViQ29yZTo6RG9jdW1lbnRMb2FkZXI+IEZyYW1lTG9hZGVyQ2xpZW50OjpjcmVhdGVEb2N1
bWVudExvYWRlcgogewogICAgIFJlZlB0cjxXZWJLaXQ6OkRvY3VtZW50TG9hZGVyPiBsb2FkZXIg
PSBXZWJLaXQ6OkRvY3VtZW50TG9hZGVyOjpjcmVhdGUocmVxdWVzdCwgc3Vic3RpdHV0ZURhdGEp
OwogCi0gICAgV2ViS2l0V2ViRGF0YVNvdXJjZSogd2ViRGF0YVNvdXJjZSA9IHdlYmtpdF93ZWJf
ZGF0YV9zb3VyY2VfbmV3X3dpdGhfbG9hZGVyKGxvYWRlci5nZXQoKSk7Ci0gICAgbG9hZGVyLT5z
ZXREYXRhU291cmNlKHdlYkRhdGFTb3VyY2UpOwotICAgIGdfb2JqZWN0X3VucmVmKHdlYkRhdGFT
b3VyY2UpOworICAgIFBsYXRmb3JtUmVmUHRyPFdlYktpdFdlYkRhdGFTb3VyY2U+IHdlYkRhdGFT
b3VyY2UoYWRvcHRQbGF0Zm9ybVJlZihraXROZXcobG9hZGVyLmdldCgpKSkpOworICAgIGxvYWRl
ci0+c2V0RGF0YVNvdXJjZSh3ZWJEYXRhU291cmNlLmdldCgpKTsKIAogICAgIHJldHVybiBsb2Fk
ZXIucmVsZWFzZSgpOwogfQpkaWZmIC0tZ2l0IGEvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9J
bnNwZWN0b3JDbGllbnRHdGsuY3BwIGIvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9JbnNwZWN0
b3JDbGllbnRHdGsuY3BwCmluZGV4IGMyNjkwNzguLmQzOTMwMmYgMTAwNjQ0Ci0tLSBhL1dlYktp
dC9ndGsvV2ViQ29yZVN1cHBvcnQvSW5zcGVjdG9yQ2xpZW50R3RrLmNwcAorKysgYi9XZWJLaXQv
Z3RrL1dlYkNvcmVTdXBwb3J0L0luc3BlY3RvckNsaWVudEd0ay5jcHAKQEAgLTI0LDcgKzI0LDYg
QEAKICNpbmNsdWRlICJJbnNwZWN0b3JDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiTm90SW1wbGVt
ZW50ZWQuaCIKICNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgotI2luY2x1ZGUgIndlYmtpdHBy
aXZhdGUuaCIKICNpbmNsdWRlICJ3ZWJraXR2ZXJzaW9uLmgiCiAjaW5jbHVkZSAid2Via2l0d2Vi
aW5zcGVjdG9yLmgiCiAjaW5jbHVkZSAid2Via2l0d2ViaW5zcGVjdG9ycHJpdmF0ZS5oIgpkaWZm
IC0tZ2l0IGEvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0LmggYi9XZWJLaXQvZ3RrL3dlYmtpdC93
ZWJraXQuaAppbmRleCBjMGQwZTMxLi5jZjM4ZmQ2IDEwMDY0NAotLS0gYS9XZWJLaXQvZ3RrL3dl
YmtpdC93ZWJraXQuaAorKysgYi9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXQuaApAQCAtMjUsNiAr
MjUsNyBAQAogI2luY2x1ZGUgPHdlYmtpdC93ZWJraXRkZWZpbmVzLmg+CiAjaW5jbHVkZSA8d2Vi
a2l0L3dlYmtpdGRvbS5oPgogI2luY2x1ZGUgPHdlYmtpdC93ZWJraXRkb3dubG9hZC5oPgorI2lu
Y2x1ZGUgPHdlYmtpdC93ZWJraXRnZW5lcmFsLmg+CiAjaW5jbHVkZSA8d2Via2l0L3dlYmtpdGdl
b2xvY2F0aW9ucG9saWN5ZGVjaXNpb24uaD4KICNpbmNsdWRlIDx3ZWJraXQvd2Via2l0aGl0dGVz
dHJlc3VsdC5oPgogI2luY2x1ZGUgPHdlYmtpdC93ZWJraXRuZXR3b3JrcmVxdWVzdC5oPgpkaWZm
IC0tZ2l0IGEvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0YXBwbGljYXRpb25jYWNoZS5jcHAgYi9X
ZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRhcHBsaWNhdGlvbmNhY2hlLmNwcAppbmRleCBlOTY3ZDM0
Li44N2YzYWI1IDEwMDY0NAotLS0gYS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRhcHBsaWNhdGlv
bmNhY2hlLmNwcAorKysgYi9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRhcHBsaWNhdGlvbmNhY2hl
LmNwcApAQCAtMTgsMTUgKzE4LDE0IEBACiAgKi8KIAogI2luY2x1ZGUgImNvbmZpZy5oIgotI2lu
Y2x1ZGUgIndlYmtpdHByaXZhdGUuaCIKLQotI2luY2x1ZGUgPHd0Zi9VbnVzZWRQYXJhbS5oPgog
CiAjaW5jbHVkZSAiQXBwbGljYXRpb25DYWNoZVN0b3JhZ2UuaCIKKyNpbmNsdWRlICJ3ZWJraXRh
cHBsaWNhdGlvbmNhY2hlcHJpdmF0ZS5oIgorI2luY2x1ZGUgPHd0Zi9VbnVzZWRQYXJhbS5oPgog
CiB2b2lkIHdlYmtpdF9hcHBsaWNhdGlvbl9jYWNoZV9zZXRfbWF4aW11bV9zaXplKHVuc2lnbmVk
IGxvbmcgbG9uZyBzaXplKQogewotI2lmIEVOQUJMRShPRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMp
ICAgCisjaWYgRU5BQkxFKE9GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUykKICAgICBXZWJDb3JlOjpj
YWNoZVN0b3JhZ2UoKS5lbXB0eSgpOwogICAgIFdlYkNvcmU6OmNhY2hlU3RvcmFnZSgpLnZhY3V1
bURhdGFiYXNlRmlsZSgpOwogICAgIFdlYkNvcmU6OmNhY2hlU3RvcmFnZSgpLnNldE1heGltdW1T
aXplKHNpemUpOwpkaWZmIC0tZ2l0IGEvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0ZG93bmxvYWQu
Y3BwIGIvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0ZG93bmxvYWQuY3BwCmluZGV4IDZiZTU5MWMu
LjVjNmNjYWMgMTAwNjQ0Ci0tLSBhL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdGRvd25sb2FkLmNw
cAorKysgYi9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRkb3dubG9hZC5jcHAKQEAgLTE5LDggKzE5
LDggQEAKICAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAid2Via2l0ZG93bmxv
YWQuaCIKIAotI2luY2x1ZGUgPGdsaWIvZ2kxOG4tbGliLmg+CiAjaW5jbHVkZSAiR1JlZlB0ci5o
IgogI2luY2x1ZGUgIk5vbmNvcHlhYmxlLmgiCiAjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIK
QEAgLTI4LDE3ICsyOCwxNyBAQAogI2luY2x1ZGUgIlJlc291cmNlSGFuZGxlSW50ZXJuYWwuaCIK
ICNpbmNsdWRlICJSZXNvdXJjZVJlcXVlc3QuaCIKICNpbmNsdWRlICJSZXNvdXJjZVJlc3BvbnNl
LmgiCi0jaW5jbHVkZSAid2Via2l0ZG93bmxvYWQuaCIKICNpbmNsdWRlICJ3ZWJraXRkb3dubG9h
ZHByaXZhdGUuaCIKICNpbmNsdWRlICJ3ZWJraXRlbnVtdHlwZXMuaCIKKyNpbmNsdWRlICJ3ZWJr
aXRnZW5lcmFsLmgiCisjaW5jbHVkZSAid2Via2l0Z2VuZXJhbHByaXZhdGUuaCIKICNpbmNsdWRl
ICJ3ZWJraXRtYXJzaGFsLmgiCiAjaW5jbHVkZSAid2Via2l0bmV0d29ya3JlcXVlc3Rwcml2YXRl
LmgiCiAjaW5jbHVkZSAid2Via2l0bmV0d29ya3Jlc3BvbnNlLmgiCiAjaW5jbHVkZSAid2Via2l0
bmV0d29ya3Jlc3BvbnNlcHJpdmF0ZS5oIgotI2luY2x1ZGUgIndlYmtpdHByaXZhdGUuaCIKLSNp
bmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+Ci0KKyNpbmNsdWRlIDxnbGliL2dpMThuLWxpYi5o
PgogI2luY2x1ZGUgPGdsaWIvZ3N0ZGlvLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5o
PgogCiAjaWZkZWYgRVJST1IKICN1bmRlZiBFUlJPUgpkaWZmIC0tZ2l0IGEvV2ViS2l0L2d0ay93
ZWJraXQvd2Via2l0Z2VuZXJhbC5jcHAgYi9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRnZW5lcmFs
LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yZTEzZWE1Ci0tLSAvZGV2
L251bGwKKysrIGIvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0Z2VuZXJhbC5jcHAKQEAgLTAsMCAr
MSwyODIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDcgSG9sZ2VyIEhhbnMgUGV0ZXIgRnJl
eXRoZXIKKyAqIENvcHlyaWdodCAoQykgMjAwOCwgMjAxMCBDb2xsYWJvcmEgTHRkLgorICoKKyAq
IFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBh
bmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdl
bmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2Fy
ZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0
IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMg
ZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBX
SVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9m
CisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Uu
ICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3Jl
IGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUg
R05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxp
YnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRo
ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlm
dGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisjaW5jbHVkZSAid2Via2l0Z2VuZXJhbC5oIgorCisjaW5jbHVkZSAiQXBw
bGljYXRpb25DYWNoZVN0b3JhZ2UuaCIKKyNpbmNsdWRlICJDaHJvbWUuaCIKKyNpbmNsdWRlICJG
cmFtZU5ldHdvcmtpbmdDb250ZXh0R3RrLmgiCisjaW5jbHVkZSAiR093blB0ci5oIgorI2luY2x1
ZGUgIkljb25EYXRhYmFzZS5oIgorI2luY2x1ZGUgIkxvZ2dpbmcuaCIKKyNpbmNsdWRlICJNZW1v
cnlDYWNoZS5oIgorI2luY2x1ZGUgIlBhZ2UuaCIKKyNpbmNsdWRlICJQYWdlQ2FjaGUuaCIKKyNp
bmNsdWRlICJQYWdlR3JvdXAuaCIKKyNpbmNsdWRlICJUZXh0RW5jb2RpbmdSZWdpc3RyeS5oIgor
I2luY2x1ZGUgIlBhc3RlYm9hcmQuaCIKKyNpbmNsdWRlICJQYXN0ZWJvYXJkSGVscGVyR3RrLmgi
CisjaW5jbHVkZSAiUmVzb3VyY2VIYW5kbGUuaCIKKyNpbmNsdWRlICJSZXNvdXJjZUhhbmRsZUNs
aWVudC5oIgorI2luY2x1ZGUgIlJlc291cmNlSGFuZGxlSW50ZXJuYWwuaCIKKyNpbmNsdWRlICJS
ZXNvdXJjZVJlc3BvbnNlLmgiCisjaW5jbHVkZSAid2Via2l0Z2VuZXJhbHByaXZhdGUuaCIKKyNp
bmNsdWRlICJ3ZWJraXRzb3VwYXV0aGRpYWxvZy5oIgorI2luY2x1ZGUgIndlYmtpdHdlYmRhdGFi
YXNlLmgiCisjaW5jbHVkZSAid2Via2l0d2VicGx1Z2luZGF0YWJhc2Vwcml2YXRlLmgiCisjaW5j
bHVkZSA8bGliaW50bC5oPgorI2luY2x1ZGUgPHJ1bnRpbWUvSW5pdGlhbGl6ZVRocmVhZGluZy5o
PgorI2luY2x1ZGUgPHN0ZGxpYi5oPgorI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmcuaD4KKworc3Rh
dGljIFdlYktpdENhY2hlTW9kZWwgY2FjaGVNb2RlbCA9IFdFQktJVF9DQUNIRV9NT0RFTF9ERUZB
VUxUOworCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworLyoqCisgKiBTRUNUSU9OOndlYmtp
dAorICogQHNob3J0X2Rlc2NyaXB0aW9uOiBHbG9iYWwgZnVuY3Rpb25zIGNvbnRyb2xsaW5nIFdl
YktpdAorICoKKyAqIFdlYktpdCBtYW5hZ2VzIG1hbnkgcmVzb3VyY2VzIHdoaWNoIGFyZSBub3Qg
cmVsYXRlZCB0byBzcGVjaWZpYworICogdmlld3MuIFRoZXNlIGZ1bmN0aW9ucyByZWxhdGUgdG8g
Y3Jvc3MtdmlldyBsaW1pdHMsIHN1Y2ggYXMgY2FjaGUKKyAqIHNpemVzLCBkYXRhYmFzZSBxdW90
YXMsIGFuZCB0aGUgSFRUUCBzZXNzaW9uIG1hbmFnZW1lbnQuCisgKi8KKworLyoqCisgKiB3ZWJr
aXRfZ2V0X2RlZmF1bHRfc2Vzc2lvbjoKKyAqCisgKiBSZXRyaWV2ZXMgdGhlIGRlZmF1bHQgI1Nv
dXBTZXNzaW9uIHVzZWQgYnkgYWxsIHdlYiB2aWV3cy4KKyAqIE5vdGUgdGhhdCB0aGUgc2Vzc2lv
biBmZWF0dXJlcyBhcmUgYWRkZWQgYnkgV2ViS2l0IG9uIGRlbWFuZCwKKyAqIHNvIGlmIHlvdSBp
bnNlcnQgeW91ciBvd24gI1NvdXBDb29raWVKYXIgYmVmb3JlIGFueSBuZXR3b3JrCisgKiB0cmFm
ZmljIG9jY3VycywgV2ViS2l0IHdpbGwgdXNlIGl0IGluc3RlYWQgb2YgdGhlIGRlZmF1bHQuCisg
KgorICogUmV0dXJuIHZhbHVlOiAodHJhbnNmZXIgbm9uZSk6IHRoZSBkZWZhdWx0ICNTb3VwU2Vz
c2lvbgorICoKKyAqIFNpbmNlOiAxLjEuMQorICovCitTb3VwU2Vzc2lvbiogd2Via2l0X2dldF9k
ZWZhdWx0X3Nlc3Npb24gKCkKK3sKKyAgICB3ZWJraXRfaW5pdCgpOworICAgIHJldHVybiBSZXNv
dXJjZUhhbmRsZTo6ZGVmYXVsdFNlc3Npb24oKTsKK30KKworLyoqCisgKiB3ZWJraXRfc2V0X2Nh
Y2hlX21vZGVsOgorICogQGNhY2hlX21vZGVsOiBhICNXZWJLaXRDYWNoZU1vZGVsCisgKgorICog
U3BlY2lmaWVzIGEgdXNhZ2UgbW9kZWwgZm9yIFdlYlZpZXdzLCB3aGljaCBXZWJLaXQgd2lsbCB1
c2UgdG8KKyAqIGRldGVybWluZSBpdHMgY2FjaGluZyBiZWhhdmlvci4gQWxsIHdlYiB2aWV3cyBm
b2xsb3cgdGhlIGNhY2hlCisgKiBtb2RlbC4gVGhpcyBjYWNoZSBtb2RlbCBkZXRlcm1pbmVzIHRo
ZSBSQU0gYW5kIGRpc2sgc3BhY2UgdG8gdXNlCisgKiBmb3IgY2FjaGluZyBwcmV2aW91c2x5IHZp
ZXdlZCBjb250ZW50IC4KKyAqCisgKiBSZXNlYXJjaCBpbmRpY2F0ZXMgdGhhdCB1c2VycyB0ZW5k
IHRvIGJyb3dzZSB3aXRoaW4gY2x1c3RlcnMgb2YKKyAqIGRvY3VtZW50cyB0aGF0IGhvbGQgcmVz
b3VyY2VzIGluIGNvbW1vbiwgYW5kIHRvIHJldmlzaXQgcHJldmlvdXNseQorICogdmlzaXRlZCBk
b2N1bWVudHMuIFdlYktpdCBhbmQgdGhlIGZyYW1ld29ya3MgYmVsb3cgaXQgaW5jbHVkZQorICog
YnVpbHQtaW4gY2FjaGVzIHRoYXQgdGFrZSBhZHZhbnRhZ2Ugb2YgdGhlc2UgcGF0dGVybnMsCisg
KiBzdWJzdGFudGlhbGx5IGltcHJvdmluZyBkb2N1bWVudCBsb2FkIHNwZWVkIGluIGJyb3dzaW5n
CisgKiBzaXR1YXRpb25zLiBUaGUgV2ViS2l0IGNhY2hlIG1vZGVsIGNvbnRyb2xzIHRoZSBiZWhh
dmlvcnMgb2YgYWxsIG9mCisgKiB0aGVzZSBjYWNoZXMsIGluY2x1ZGluZyB2YXJpb3VzIFdlYkNv
cmUgY2FjaGVzLgorICoKKyAqIEJyb3dzZXJzIGNhbiBpbXByb3ZlIGRvY3VtZW50IGxvYWQgc3Bl
ZWQgc3Vic3RhbnRpYWxseSBieQorICogc3BlY2lmeWluZyBXRUJLSVRfQ0FDSEVfTU9ERUxfV0VC
X0JST1dTRVIuIEFwcGxpY2F0aW9ucyB3aXRob3V0IGEKKyAqIGJyb3dzaW5nIGludGVyZmFjZSBj
YW4gcmVkdWNlIG1lbW9yeSB1c2FnZSBzdWJzdGFudGlhbGx5IGJ5CisgKiBzcGVjaWZ5aW5nIFdF
QktJVF9DQUNIRV9NT0RFTF9ET0NVTUVOVF9WSUVXRVIuIERlZmF1bHQgdmFsdWUgaXMKKyAqIFdF
QktJVF9DQUNIRV9NT0RFTF9XRUJfQlJPV1NFUi4KKyAqCisgKiBTaW5jZTogMS4xLjE4CisgKi8K
K3ZvaWQgd2Via2l0X3NldF9jYWNoZV9tb2RlbChXZWJLaXRDYWNoZU1vZGVsIG1vZGVsKQorewor
ICAgIHdlYmtpdF9pbml0KCk7CisKKyAgICBpZiAoY2FjaGVNb2RlbCA9PSBtb2RlbCkKKyAgICAg
ICAgcmV0dXJuOworCisgICAgLy8gRklYTUU6IEFkZCBkaXNrIGNhY2hlIGhhbmRsaW5nIHdoZW4g
c291cCBoYXMgdGhlIEFQSQorICAgIGd1aW50IGNhY2hlVG90YWxDYXBhY2l0eTsKKyAgICBndWlu
dCBjYWNoZU1pbkRlYWRDYXBhY2l0eTsKKyAgICBndWludCBjYWNoZU1heERlYWRDYXBhY2l0eTsK
KyAgICBnZG91YmxlIGRlYWREZWNvZGVkRGF0YURlbGV0aW9uSW50ZXJ2YWw7CisgICAgZ3VpbnQg
cGFnZUNhY2hlQ2FwYWNpdHk7CisKKyAgICBzd2l0Y2ggKG1vZGVsKSB7CisgICAgY2FzZSBXRUJL
SVRfQ0FDSEVfTU9ERUxfRE9DVU1FTlRfVklFV0VSOgorICAgICAgICBwYWdlQ2FjaGVDYXBhY2l0
eSA9IDA7CisgICAgICAgIGNhY2hlVG90YWxDYXBhY2l0eSA9IDA7CisgICAgICAgIGNhY2hlTWlu
RGVhZENhcGFjaXR5ID0gMDsKKyAgICAgICAgY2FjaGVNYXhEZWFkQ2FwYWNpdHkgPSAwOworICAg
ICAgICBkZWFkRGVjb2RlZERhdGFEZWxldGlvbkludGVydmFsID0gMDsKKyAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBXRUJLSVRfQ0FDSEVfTU9ERUxfV0VCX0JST1dTRVI6CisgICAgICAgIC8vIFBh
Z2UgY2FjaGUgY2FwYWNpdHkgKGluIHBhZ2VzKS4gQ29tbWVudCBmcm9tIE1hYyBwb3J0OgorICAg
ICAgICAvLyAoUmVzZWFyY2ggaW5kaWNhdGVzIHRoYXQgdmFsdWUgLyBwYWdlIGRyb3BzIHN1YnN0
YW50aWFsbHkgYWZ0ZXIgMyBwYWdlcy4pCisgICAgICAgIHBhZ2VDYWNoZUNhcGFjaXR5ID0gMzsK
KyAgICAgICAgY2FjaGVUb3RhbENhcGFjaXR5ID0gMzIgKiAxMDI0ICogMTAyNDsKKyAgICAgICAg
Y2FjaGVNaW5EZWFkQ2FwYWNpdHkgPSBjYWNoZVRvdGFsQ2FwYWNpdHkgLyA0OworICAgICAgICBj
YWNoZU1heERlYWRDYXBhY2l0eSA9IGNhY2hlVG90YWxDYXBhY2l0eSAvIDI7CisgICAgICAgIGRl
YWREZWNvZGVkRGF0YURlbGV0aW9uSW50ZXJ2YWwgPSA2MDsKKyAgICAgICAgYnJlYWs7CisgICAg
ZGVmYXVsdDoKKyAgICAgICAgZ19yZXR1cm5faWZfcmVhY2hlZCgpOworICAgIH0KKworICAgIGNh
Y2hlKCktPnNldENhcGFjaXRpZXMoY2FjaGVNaW5EZWFkQ2FwYWNpdHksIGNhY2hlTWF4RGVhZENh
cGFjaXR5LCBjYWNoZVRvdGFsQ2FwYWNpdHkpOworICAgIGNhY2hlKCktPnNldERlYWREZWNvZGVk
RGF0YURlbGV0aW9uSW50ZXJ2YWwoZGVhZERlY29kZWREYXRhRGVsZXRpb25JbnRlcnZhbCk7Cisg
ICAgcGFnZUNhY2hlKCktPnNldENhcGFjaXR5KHBhZ2VDYWNoZUNhcGFjaXR5KTsKKyAgICBjYWNo
ZU1vZGVsID0gbW9kZWw7Cit9CisKKy8qKgorICogd2Via2l0X2dldF9jYWNoZV9tb2RlbDoKKyAq
CisgKiBSZXR1cm5zIHRoZSBjdXJyZW50IGNhY2hlIG1vZGVsLiBGb3IgbW9yZSBpbmZvcm1hdGlv
biBhYm91dCB0aGlzCisgKiB2YWx1ZSBjaGVjayB0aGUgZG9jdW1lbnRhdGlvbiBvZiB0aGUgZnVu
Y3Rpb24KKyAqIHdlYmtpdF9zZXRfY2FjaGVfbW9kZWwoKS4KKyAqCisgKiBSZXR1cm4gdmFsdWU6
IHRoZSBjdXJyZW50ICNXZWJLaXRDYWNoZU1vZGVsCisgKgorICogU2luY2U6IDEuMS4xOAorICov
CitXZWJLaXRDYWNoZU1vZGVsIHdlYmtpdF9nZXRfY2FjaGVfbW9kZWwoKQoreworICAgIHdlYmtp
dF9pbml0KCk7CisgICAgcmV0dXJuIGNhY2hlTW9kZWw7Cit9CisKKy8qKgorICogd2Via2l0X2dl
dF93ZWJfcGx1Z2luX2RhdGFiYXNlOgorICoKKyAqIFJldHVybnMgdGhlIGN1cnJlbnQgI1dlYktp
dFdlYlBsdWdpbkRhdGFiYXNlIHdpdGggaW5mb3JtYXRpb24gYWJvdXQKKyAqIGFsbCB0aGUgcGx1
Z2lucyBXZWJLaXQga25vd3MgYWJvdXQgaW4gdGhpcyBpbnN0YW5jZS4KKyAqCisgKiBSZXR1cm4g
dmFsdWU6ICh0cmFuc2ZlciBub25lKTogdGhlIGN1cnJlbnQgI1dlYktpdFdlYlBsdWdpbkRhdGFi
YXNlCisgKgorICogU2luY2U6IDEuMy44CisgKi8KK1dlYktpdFdlYlBsdWdpbkRhdGFiYXNlKiB3
ZWJraXRfZ2V0X3dlYl9wbHVnaW5fZGF0YWJhc2UoKQoreworICAgIHN0YXRpYyBXZWJLaXRXZWJQ
bHVnaW5EYXRhYmFzZSogZGF0YWJhc2UgPSAwOworCisgICAgd2Via2l0X2luaXQoKTsKKworICAg
IGlmICghZGF0YWJhc2UpCisgICAgICAgIGRhdGFiYXNlID0gd2Via2l0X3dlYl9wbHVnaW5fZGF0
YWJhc2VfbmV3KCk7CisKKyAgICByZXR1cm4gZGF0YWJhc2U7Cit9CisKKworc3RhdGljIEd0a1dp
ZGdldCogY3VycmVudFRvcGxldmVsQ2FsbGJhY2soV2ViS2l0U291cEF1dGhEaWFsb2cqIGZlYXR1
cmUsIFNvdXBNZXNzYWdlKiBtZXNzYWdlLCBncG9pbnRlciB1c2VyRGF0YSkKK3sKKyAgICBncG9p
bnRlciBtZXNzYWdlRGF0YSA9IGdfb2JqZWN0X2dldF9kYXRhKEdfT0JKRUNUKG1lc3NhZ2UpLCAi
cmVzb3VyY2VIYW5kbGUiKTsKKyAgICBpZiAoIW1lc3NhZ2VEYXRhKQorICAgICAgICByZXR1cm4g
TlVMTDsKKworICAgIFJlc291cmNlSGFuZGxlKiBoYW5kbGUgPSBzdGF0aWNfY2FzdDxSZXNvdXJj
ZUhhbmRsZSo+KG1lc3NhZ2VEYXRhKTsKKyAgICBpZiAoIWhhbmRsZSkKKyAgICAgICAgcmV0dXJu
IE5VTEw7CisKKyAgICBSZXNvdXJjZUhhbmRsZUludGVybmFsKiBkID0gaGFuZGxlLT5nZXRJbnRl
cm5hbCgpOworICAgIGlmICghZCkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisKKyAgICBXZWJLaXQ6
OkZyYW1lTmV0d29ya2luZ0NvbnRleHRHdGsqIGNvbnRleHQgPSBzdGF0aWNfY2FzdDxXZWJLaXQ6
OkZyYW1lTmV0d29ya2luZ0NvbnRleHRHdGsqPihkLT5tX2NvbnRleHQuZ2V0KCkpOworICAgIGlm
ICghY29udGV4dCkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisKKyAgICBpZiAoIWNvbnRleHQtPmNv
cmVGcmFtZSgpKQorICAgICAgICByZXR1cm4gTlVMTDsKKworICAgIEd0a1dpZGdldCogdG9wbGV2
ZWwgPSAgZ3RrX3dpZGdldF9nZXRfdG9wbGV2ZWwoR1RLX1dJREdFVChjb250ZXh0LT5jb3JlRnJh
bWUoKS0+cGFnZSgpLT5jaHJvbWUoKS0+cGxhdGZvcm1QYWdlQ2xpZW50KCkpKTsKKyAgICBpZiAo
Z3RrX3dpZGdldF9pc190b3BsZXZlbCh0b3BsZXZlbCkpCisgICAgICAgIHJldHVybiB0b3BsZXZl
bDsKKyAgICBlbHNlCisgICAgICAgIHJldHVybiBOVUxMOworfQorCitzdGF0aWMgdm9pZCBjbG9z
ZUljb25EYXRhYmFzZU9uRXhpdCgpCit7CisgICAgaWNvbkRhdGFiYXNlKCktPmNsb3NlKCk7Cit9
CisKK3ZvaWQgd2Via2l0X2luaXQoKQoreworICAgIHN0YXRpYyBib29sIGlzSW5pdGlhbGl6ZWQg
PSBmYWxzZTsKKyAgICBpZiAoaXNJbml0aWFsaXplZCkKKyAgICAgICAgcmV0dXJuOworICAgIGlz
SW5pdGlhbGl6ZWQgPSB0cnVlOworCisgICAgYmluZHRleHRkb21haW4oR0VUVEVYVF9QQUNLQUdF
LCBQQUNLQUdFX0xPQ0FMRV9ESVIpOworICAgIGJpbmRfdGV4dGRvbWFpbl9jb2Rlc2V0KEdFVFRF
WFRfUEFDS0FHRSwgIlVURi04Iik7CisKKyAgICBKU0M6OmluaXRpYWxpemVUaHJlYWRpbmcoKTsK
KyAgICBXVEY6OmluaXRpYWxpemVNYWluVGhyZWFkKCk7CisKKyAgICBXZWJDb3JlOjpJbml0aWFs
aXplTG9nZ2luZ0NoYW5uZWxzSWZOZWNlc3NhcnkoKTsKKworICAgIC8vIFdlIG1ha2Ugc3VyZSB0
aGUgdGV4dCBjb2RlY3MgaGF2ZSBiZWVuIGluaXRpYWxpemVkLCBiZWNhdXNlCisgICAgLy8gdGhh
dCBtYXkgb25seSBiZSBkb25lIGJ5IHRoZSBtYWluIHRocmVhZC4KKyAgICBhdG9taWNDYW5vbmlj
YWxUZXh0RW5jb2RpbmdOYW1lKCJVVEYtOCIpOworCisgICAgZ2NoYXIqIGRhdGFiYXNlRGlyZWN0
b3J5ID0gZ19idWlsZF9maWxlbmFtZShnX2dldF91c2VyX2RhdGFfZGlyKCksICJ3ZWJraXQiLCAi
ZGF0YWJhc2VzIiwgTlVMTCk7CisgICAgd2Via2l0X3NldF93ZWJfZGF0YWJhc2VfZGlyZWN0b3J5
X3BhdGgoZGF0YWJhc2VEaXJlY3RvcnkpOworCisjaWYgRU5BQkxFKE9GRkxJTkVfV0VCX0FQUExJ
Q0FUSU9OUykKKyAgICAvLyBGSVhNRTogSXQgc2hvdWxkIGJlIHBvc3NpYmxlIGZvciBjbGllbnQg
YXBwbGljYXRpb25zIHRvIG92ZXJyaWRlIHRoZSBkZWZhdWx0IGFwcGNhY2hlIGxvY2F0aW9uCisg
ICAgV2ViQ29yZTo6Y2FjaGVTdG9yYWdlKCkuc2V0Q2FjaGVEaXJlY3RvcnkoZGF0YWJhc2VEaXJl
Y3RvcnkpOworI2VuZGlmCisgICAgZ19mcmVlKGRhdGFiYXNlRGlyZWN0b3J5KTsKKworICAgIFBh
Z2VHcm91cDo6c2V0U2hvdWxkVHJhY2tWaXNpdGVkTGlua3ModHJ1ZSk7CisKKyAgICBQYXN0ZWJv
YXJkOjpnZW5lcmFsUGFzdGVib2FyZCgpLT5zZXRIZWxwZXIoV2ViS2l0OjpwYXN0ZWJvYXJkSGVs
cGVySW5zdGFuY2UoKSk7CisKKyAgICBpY29uRGF0YWJhc2UoKS0+c2V0RW5hYmxlZCh0cnVlKTsK
KworICAgIEdPd25QdHI8Z2NoYXI+IGljb25EYXRhYmFzZVBhdGgoZ19idWlsZF9maWxlbmFtZShn
X2dldF91c2VyX2RhdGFfZGlyKCksICJ3ZWJraXQiLCAiaWNvbmRhdGFiYXNlIiwgTlVMTCkpOwor
ICAgIGljb25EYXRhYmFzZSgpLT5vcGVuKGljb25EYXRhYmFzZVBhdGguZ2V0KCkpOworCisgICAg
YXRleGl0KGNsb3NlSWNvbkRhdGFiYXNlT25FeGl0KTsKKworICAgIFNvdXBTZXNzaW9uKiBzZXNz
aW9uID0gd2Via2l0X2dldF9kZWZhdWx0X3Nlc3Npb24oKTsKKworICAgIFNvdXBTZXNzaW9uRmVh
dHVyZSogYXV0aERpYWxvZyA9IHN0YXRpY19jYXN0PFNvdXBTZXNzaW9uRmVhdHVyZSo+KGdfb2Jq
ZWN0X25ldyhXRUJLSVRfVFlQRV9TT1VQX0FVVEhfRElBTE9HLCBOVUxMKSk7CisgICAgZ19zaWdu
YWxfY29ubmVjdChhdXRoRGlhbG9nLCAiY3VycmVudC10b3BsZXZlbCIsIEdfQ0FMTEJBQ0soY3Vy
cmVudFRvcGxldmVsQ2FsbGJhY2spLCBOVUxMKTsKKyAgICBzb3VwX3Nlc3Npb25fYWRkX2ZlYXR1
cmUoc2Vzc2lvbiwgYXV0aERpYWxvZyk7CisgICAgZ19vYmplY3RfdW5yZWYoYXV0aERpYWxvZyk7
CisKKyAgICBTb3VwU2Vzc2lvbkZlYXR1cmUqIHNuaWZmZXIgPSBzdGF0aWNfY2FzdDxTb3VwU2Vz
c2lvbkZlYXR1cmUqPihnX29iamVjdF9uZXcoU09VUF9UWVBFX0NPTlRFTlRfU05JRkZFUiwgTlVM
TCkpOworICAgIHNvdXBfc2Vzc2lvbl9hZGRfZmVhdHVyZShzZXNzaW9uLCBzbmlmZmVyKTsKKyAg
ICBnX29iamVjdF91bnJlZihzbmlmZmVyKTsKKworICAgIHNvdXBfc2Vzc2lvbl9hZGRfZmVhdHVy
ZV9ieV90eXBlKHNlc3Npb24sIFNPVVBfVFlQRV9DT05URU5UX0RFQ09ERVIpOworfQorCituYW1l
c3BhY2UgV2ViS2l0IHsKKworUGFzdGVib2FyZEhlbHBlckd0ayogcGFzdGVib2FyZEhlbHBlcklu
c3RhbmNlKCkKK3sKKyAgICBzdGF0aWMgUGFzdGVib2FyZEhlbHBlckd0ayogaGVscGVyID0gbmV3
IFBhc3RlYm9hcmRIZWxwZXJHdGsoKTsKKyAgICByZXR1cm4gaGVscGVyOworfQorCit9IC8qKiBl
bmQgbmFtZXNwYWNlIFdlYktpdCAqLworCmRpZmYgLS1naXQgYS9XZWJLaXQvZ3RrL3dlYmtpdC93
ZWJraXRnZW5lcmFsLmggYi9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRnZW5lcmFsLmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmJiMTUzZAotLS0gL2Rldi9udWxsCisrKyBi
L1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdGdlbmVyYWwuaApAQCAtMCwwICsxLDY0IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDA3LCAyMDA4LCAyMDA5IEhvbGdlciBIYW5zIFBldGVyIEZyZXl0
aGVyCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggSmFuIE1pY2hhZWwgQy4gQWxvbnpvCisgKiBDb3B5
cmlnaHQgKEMpIDIwMDggQ29sbGFib3JhIEx0ZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMCBJZ2Fs
aWEgUy5MLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJl
ZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhl
IEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0
aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUg
TGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBU
aGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVz
ZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBs
aWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBM
aWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVk
IGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxv
bmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwg
d3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5r
bGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4K
KyAqLworCisjaWZuZGVmIHdlYmtpdGdlbmVyYWxfaAorI2RlZmluZSB3ZWJraXRnZW5lcmFsX2gK
KworI2luY2x1ZGUgIndlYmtpdGRlZmluZXMuaCIKKyNpbmNsdWRlIDxnbGliLmg+CisjaW5jbHVk
ZSA8bGlic291cC9zb3VwLmg+CisKK0dfQkVHSU5fREVDTFMKKworLyoKKyAqIFdlYktpdENhY2hl
TW9kZWw6CisgKiBAV0VCS0lUX0NBQ0hFX01PREVMX0RFRkFVTFQ6IFRoZSBkZWZhdWx0IGNhY2hl
IG1vZGVsLiBUaGlzIGlzCisgKiAgIFdFQktJVF9DQUNIRV9NT0RFTF9XRUJfQlJPV1NFUi4KKyAq
IEBXRUJLSVRfQ0FDSEVfTU9ERUxfRE9DVU1FTlRfVklFV0VSOiBEaXNhYmxlIHRoZSBjYWNoZSBj
b21wbGV0ZWx5LCB3aGljaAorICogICBzdWJzdGFudGlhbGx5IHJlZHVjZXMgbWVtb3J5IHVzYWdl
LiBVc2VmdWwgZm9yIGFwcGxpY2F0aW9ucyB0aGF0IG9ubHkKKyAqICAgYWNjZXNzIGxvY2FsIGZp
bGVzLgorICogQFdFQktJVF9DQUNIRV9NT0RFTF9XRUJfQlJPV1NFUjogSW1wcm92ZSBkb2N1bWVu
dCBsb2FkIHNwZWVkIHN1YnN0YW50aWFsbHkKKyAqICAgYnkgY2FjaGluZyBwcmV2aW91c2x5IHZp
ZXdlZCBjb250ZW50LgorICoKKyAqIEVudW0gdmFsdWVzIHVzZWQgZm9yIGRldGVybWluaW5nIHRo
ZSB3ZWJ2aWV3IGNhY2hlIG1vZGVsLgorICovCit0eXBlZGVmIGVudW0geworICAgIFdFQktJVF9D
QUNIRV9NT0RFTF9ERUZBVUxULAorICAgIFdFQktJVF9DQUNIRV9NT0RFTF9ET0NVTUVOVF9WSUVX
RVIsCisgICAgV0VCS0lUX0NBQ0hFX01PREVMX1dFQl9CUk9XU0VSCit9IFdlYktpdENhY2hlTW9k
ZWw7CisKK1dFQktJVF9BUEkgU291cFNlc3Npb24qCit3ZWJraXRfZ2V0X2RlZmF1bHRfc2Vzc2lv
biAgICAgICAgICAgICAgICAgICAgICAodm9pZCk7CisKK1dFQktJVF9BUEkgV2ViS2l0V2ViUGx1
Z2luRGF0YWJhc2UgKgord2Via2l0X2dldF93ZWJfcGx1Z2luX2RhdGFiYXNlICAgICAgICAgICAg
ICAgICAgKHZvaWQpOworCitXRUJLSVRfQVBJIHZvaWQKK3dlYmtpdF9zZXRfY2FjaGVfbW9kZWwg
ICAgICAgICAgICAgICAgICAgICAgICAgIChXZWJLaXRDYWNoZU1vZGVsICAgICBjYWNoZV9tb2Rl
bCk7CisKK1dFQktJVF9BUEkgV2ViS2l0Q2FjaGVNb2RlbAord2Via2l0X2dldF9jYWNoZV9tb2Rl
bCAgICAgICAgICAgICAgICAgICAgICAgICAgKHZvaWQpOworCitHX0VORF9ERUNMUworCisjZW5k
aWYKZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdGdlbmVyYWxwcml2YXRlLmgg
Yi9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRnZW5lcmFscHJpdmF0ZS5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhiYTk4ZWIKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJLaXQv
Z3RrL3dlYmtpdC93ZWJraXRnZW5lcmFscHJpdmF0ZS5oCkBAIC0wLDAgKzEsNDQgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMDcsIDIwMDgsIDIwMDkgSG9sZ2VyIEhhbnMgUGV0ZXIgRnJleXRo
ZXIKKyAqIENvcHlyaWdodCAoQykgMjAwOCBKYW4gTWljaGFlbCBDLiBBbG9uem8KKyAqIENvcHly
aWdodCAoQykgMjAwOCBDb2xsYWJvcmEgTHRkLgorICogQ29weXJpZ2h0IChDKSAyMDEwIElnYWxp
YSBTLkwuCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVk
aXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUg
R05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRo
ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBM
aWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRo
aXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNl
ZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxp
ZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExp
Y2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQg
YSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9u
ZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3
cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmts
aW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgor
ICovCisKKyNpZm5kZWYgd2Via2l0Z2VuZXJhbHByaXZhdGVfaAorI2RlZmluZSB3ZWJraXRnZW5l
cmFscHJpdmF0ZV9oCisKKyNpbmNsdWRlIDxnbGliLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgewor
CitjbGFzcyBQYXN0ZWJvYXJkSGVscGVyR3RrOworUGFzdGVib2FyZEhlbHBlckd0ayogcGFzdGVi
b2FyZEhlbHBlckluc3RhbmNlKCk7CisKK30KKworZXh0ZXJuICJDIiB7CisKKyNkZWZpbmUgV0VC
S0lUX1BBUkFNX1JFQURBQkxFICgoR1BhcmFtRmxhZ3MpKEdfUEFSQU1fUkVBREFCTEV8R19QQVJB
TV9TVEFUSUNfTkFNRXxHX1BBUkFNX1NUQVRJQ19OSUNLfEdfUEFSQU1fU1RBVElDX0JMVVJCKSkK
KyNkZWZpbmUgV0VCS0lUX1BBUkFNX1JFQURXUklURSAoKEdQYXJhbUZsYWdzKShHX1BBUkFNX1JF
QURXUklURXxHX1BBUkFNX1NUQVRJQ19OQU1FfEdfUEFSQU1fU1RBVElDX05JQ0t8R19QQVJBTV9T
VEFUSUNfQkxVUkIpKQorCit2b2lkIHdlYmtpdF9pbml0KCk7CisKK30KKworI2VuZGlmCmRpZmYg
LS1naXQgYS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRnZW9sb2NhdGlvbnBvbGljeWRlY2lzaW9u
LmNwcCBiL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdGdlb2xvY2F0aW9ucG9saWN5ZGVjaXNpb24u
Y3BwCmluZGV4IGNiMDIzZDYuLjI1MjNjOWIgMTAwNjQ0Ci0tLSBhL1dlYktpdC9ndGsvd2Via2l0
L3dlYmtpdGdlb2xvY2F0aW9ucG9saWN5ZGVjaXNpb24uY3BwCisrKyBiL1dlYktpdC9ndGsvd2Vi
a2l0L3dlYmtpdGdlb2xvY2F0aW9ucG9saWN5ZGVjaXNpb24uY3BwCkBAIC0yMCwxMCArMjAsOSBA
QAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIndlYmtpdGdlb2xvY2F0aW9ucG9saWN5
ZGVjaXNpb24uaCIKIAotI2luY2x1ZGUgIndlYmtpdHByaXZhdGUuaCIKICNpbmNsdWRlICJHZW9s
b2NhdGlvbi5oIgorI2luY2x1ZGUgIndlYmtpdGdlb2xvY2F0aW9ucG9saWN5ZGVjaXNpb25wcml2
YXRlLmgiCiAKLXVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29y
ZTsKIAogLyoqCmRpZmYgLS1naXQgYS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRoaXR0ZXN0cmVz
dWx0LmNwcCBiL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdGhpdHRlc3RyZXN1bHQuY3BwCmluZGV4
IGZhMGI0MGIuLjU1NmIyODMgMTAwNjQ0Ci0tLSBhL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdGhp
dHRlc3RyZXN1bHQuY3BwCisrKyBiL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdGhpdHRlc3RyZXN1
bHQuY3BwCkBAIC0yMywxMyArMjMsMTQgQEAKIAogI2luY2x1ZGUgIkdPd25QdHIuaCIKICNpbmNs
dWRlICJIaXRUZXN0UmVzdWx0LmgiCisjaW5jbHVkZSAiS1VSTC5oIgogI2luY2x1ZGUgIldlYktp
dERPTUJpbmRpbmcuaCIKICNpbmNsdWRlICJXZWJLaXRET01Ob2RlLmgiCiAjaW5jbHVkZSAid2Vi
a2l0ZW51bXR5cGVzLmgiCi0jaW5jbHVkZSAid2Via2l0cHJpdmF0ZS5oIgotI2luY2x1ZGUgPHd0
Zi90ZXh0L0NTdHJpbmcuaD4KLQorI2luY2x1ZGUgIndlYmtpdGdlbmVyYWwuaCIKKyNpbmNsdWRl
ICJ3ZWJraXRnZW5lcmFscHJpdmF0ZS5oIgogI2luY2x1ZGUgPGdsaWIvZ2kxOG4tbGliLmg+Cisj
aW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogCiAvKioKICAqIFNFQ1RJT046d2Via2l0aGl0
dGVzdHJlc3VsdApkaWZmIC0tZ2l0IGEvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0bmV0d29ya3Jl
cXVlc3QuY3BwIGIvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0bmV0d29ya3JlcXVlc3QuY3BwCmlu
ZGV4IDIzZjIyYTMuLjRmOWU5NWQgMTAwNjQ0Ci0tLSBhL1dlYktpdC9ndGsvd2Via2l0L3dlYmtp
dG5ldHdvcmtyZXF1ZXN0LmNwcAorKysgYi9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRuZXR3b3Jr
cmVxdWVzdC5jcHAKQEAgLTIxLDExICsyMSwxMSBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2lu
Y2x1ZGUgIndlYmtpdG5ldHdvcmtyZXF1ZXN0LmgiCiAKKyNpbmNsdWRlICJHUmVmUHRyLmgiCiAj
aW5jbHVkZSAiUmVzb3VyY2VSZXF1ZXN0LmgiCi0jaW5jbHVkZSAid2Via2l0cHJpdmF0ZS5oIgot
I2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KLQorI2luY2x1ZGUgIndlYmtpdGdlbmVyYWxw
cml2YXRlLmgiCiAjaW5jbHVkZSA8Z2xpYi9naTE4bi1saWIuaD4KKyNpbmNsdWRlIDx3dGYvdGV4
dC9DU3RyaW5nLmg+CiAKIC8qKgogICogU0VDVElPTjp3ZWJraXRuZXR3b3JrcmVxdWVzdApkaWZm
IC0tZ2l0IGEvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0bmV0d29ya3Jlc3BvbnNlLmNwcCBiL1dl
YktpdC9ndGsvd2Via2l0L3dlYmtpdG5ldHdvcmtyZXNwb25zZS5jcHAKaW5kZXggZGEyOTIxMi4u
ZTc5MTYyZiAxMDA2NDQKLS0tIGEvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0bmV0d29ya3Jlc3Bv
bnNlLmNwcAorKysgYi9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRuZXR3b3JrcmVzcG9uc2UuY3Bw
CkBAIC0yNCw5ICsyNCw5IEBACiAKICNpbmNsdWRlICJHUmVmUHRyLmgiCiAjaW5jbHVkZSAiUmVz
b3VyY2VSZXNwb25zZS5oIgotI2luY2x1ZGUgIndlYmtpdHByaXZhdGUuaCIKLQorI2luY2x1ZGUg
IndlYmtpdGdlbmVyYWxwcml2YXRlLmgiCiAjaW5jbHVkZSA8Z2xpYi9naTE4bi1saWIuaD4KKyNp
bmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAKIC8qKgogICogU0VDVElPTjp3ZWJraXRuZXR3
b3JrcmVzcG9uc2UKZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHByaXZhdGUu
Y3BwIGIvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0cHJpdmF0ZS5jcHAKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDNlMWFkMzYuLjAwMDAwMDAKLS0tIGEvV2ViS2l0L2d0ay93ZWJraXQv
d2Via2l0cHJpdmF0ZS5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSwxNjQgKzAsMCBAQAotLyoKLSAq
IENvcHlyaWdodCAoQykgMjAwNyBIb2xnZXIgSGFucyBQZXRlciBGcmV5dGhlcgotICogQ29weXJp
Z2h0IChDKSAyMDA4IENvbGxhYm9yYSBMdGQuCi0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUg
c29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICogbW9kaWZ5IGl0IHVu
ZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKLSAqIExpY2Vu
c2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgot
ICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRl
ciB2ZXJzaW9uLgotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9w
ZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3
aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAqIE1FUkNIQU5UQUJJTElUWSBv
ciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gKiBMaWJy
YXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSAqCi0gKiBZb3Ug
c2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1
YmxpYyBMaWNlbnNlCi0gKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENP
UFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bwotICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh
dGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKLSAqIEJvc3Rvbiwg
TUEgMDIxMTAtMTMwMSwgVVNBLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRl
ICJ3ZWJraXRwcml2YXRlLmgiCi0KLSNpbmNsdWRlICJBcHBsaWNhdGlvbkNhY2hlU3RvcmFnZS5o
IgotI2luY2x1ZGUgIkNocm9tZS5oIgotI2luY2x1ZGUgIkNocm9tZUNsaWVudEd0ay5oIgotI2lu
Y2x1ZGUgIkVsZW1lbnQuaCIKLSNpbmNsdWRlICJGcmFtZS5oIgotI2luY2x1ZGUgIkZyYW1lTG9h
ZGVyLmgiCi0jaW5jbHVkZSAiRnJhbWVMb2FkZXJDbGllbnRHdGsuaCIKLSNpbmNsdWRlICJGcmFt
ZU5ldHdvcmtpbmdDb250ZXh0R3RrLmgiCi0jaW5jbHVkZSAiR3RrVmVyc2lvbmluZy5oIgotI2lu
Y2x1ZGUgIkhUTUxNZWRpYUVsZW1lbnQuaCIKLSNpbmNsdWRlICJIVE1MTmFtZXMuaCIKLSNpbmNs
dWRlICJIaXRUZXN0UmVzdWx0LmgiCi0jaW5jbHVkZSAiSWNvbkRhdGFiYXNlLmgiCi0jaW5jbHVk
ZSAiTG9nZ2luZy5oIgotI2luY2x1ZGUgIlBhZ2VDYWNoZS5oIgotI2luY2x1ZGUgIlBhZ2VHcm91
cC5oIgotI2luY2x1ZGUgIlBhc3RlYm9hcmQuaCIKLSNpbmNsdWRlICJQYXN0ZWJvYXJkSGVscGVy
R3RrLmgiCi0jaW5jbHVkZSAiUmVzb3VyY2VIYW5kbGUuaCIKLSNpbmNsdWRlICJSZXNvdXJjZUhh
bmRsZUNsaWVudC5oIgotI2luY2x1ZGUgIlJlc291cmNlSGFuZGxlSW50ZXJuYWwuaCIKLSNpbmNs
dWRlICJSZXNvdXJjZVJlc3BvbnNlLmgiCi0jaW5jbHVkZSAiVGV4dEVuY29kaW5nUmVnaXN0cnku
aCIKLSNpbmNsdWRlICJ3ZWJraXRuZXR3b3JrcmVzcG9uc2UuaCIKLSNpbmNsdWRlICJ3ZWJraXRz
b3VwYXV0aGRpYWxvZy5oIgotI2luY2x1ZGUgIndlYmtpdHZlcnNpb24uaCIKLSNpbmNsdWRlIDxs
aWJpbnRsLmg+Ci0jaW5jbHVkZSA8cnVudGltZS9Jbml0aWFsaXplVGhyZWFkaW5nLmg+Ci0jaW5j
bHVkZSA8c3RkbGliLmg+Ci0jaW5jbHVkZSA8d3RmL1RocmVhZGluZy5oPgotCi0jaWYgRU5BQkxF
KFZJREVPKQotI2luY2x1ZGUgIkZ1bGxzY3JlZW5WaWRlb0NvbnRyb2xsZXIuaCIKLSNlbmRpZgot
Ci0jaWYgRU5BQkxFKERBVEFCQVNFKQotI2luY2x1ZGUgIkRhdGFiYXNlVHJhY2tlci5oIgotI2Vu
ZGlmCi0KLXVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLQot
V2ViQ29yZTo6RWRpdGluZ0JlaGF2aW9yVHlwZSBjb3JlKFdlYktpdEVkaXRpbmdCZWhhdmlvciB0
eXBlKQotewotICAgIHJldHVybiAoV2ViQ29yZTo6RWRpdGluZ0JlaGF2aW9yVHlwZSl0eXBlOwot
fQotCi1QYXN0ZWJvYXJkSGVscGVyR3RrKiBwYXN0ZWJvYXJkSGVscGVySW5zdGFuY2UoKQotewot
ICAgIHN0YXRpYyBQYXN0ZWJvYXJkSGVscGVyR3RrKiBoZWxwZXIgPSBuZXcgUGFzdGVib2FyZEhl
bHBlckd0aygpOwotICAgIHJldHVybiBoZWxwZXI7Ci19Ci0KLX0gLyoqIGVuZCBuYW1lc3BhY2Ug
V2ViS2l0ICovCi0KLXN0YXRpYyBHdGtXaWRnZXQqIGN1cnJlbnRUb3BsZXZlbENhbGxiYWNrKFdl
YktpdFNvdXBBdXRoRGlhbG9nKiBmZWF0dXJlLCBTb3VwTWVzc2FnZSogbWVzc2FnZSwgZ3BvaW50
ZXIgdXNlckRhdGEpCi17Ci0gICAgZ3BvaW50ZXIgbWVzc2FnZURhdGEgPSBnX29iamVjdF9nZXRf
ZGF0YShHX09CSkVDVChtZXNzYWdlKSwgInJlc291cmNlSGFuZGxlIik7Ci0gICAgaWYgKCFtZXNz
YWdlRGF0YSkKLSAgICAgICAgcmV0dXJuIE5VTEw7Ci0KLSAgICBSZXNvdXJjZUhhbmRsZSogaGFu
ZGxlID0gc3RhdGljX2Nhc3Q8UmVzb3VyY2VIYW5kbGUqPihtZXNzYWdlRGF0YSk7Ci0gICAgaWYg
KCFoYW5kbGUpCi0gICAgICAgIHJldHVybiBOVUxMOwotCi0gICAgUmVzb3VyY2VIYW5kbGVJbnRl
cm5hbCogZCA9IGhhbmRsZS0+Z2V0SW50ZXJuYWwoKTsKLSAgICBpZiAoIWQpCi0gICAgICAgIHJl
dHVybiBOVUxMOwotCi0gICAgV2ViS2l0OjpGcmFtZU5ldHdvcmtpbmdDb250ZXh0R3RrKiBjb250
ZXh0ID0gc3RhdGljX2Nhc3Q8V2ViS2l0OjpGcmFtZU5ldHdvcmtpbmdDb250ZXh0R3RrKj4oZC0+
bV9jb250ZXh0LmdldCgpKTsKLSAgICBpZiAoIWNvbnRleHQpCi0gICAgICAgIHJldHVybiBOVUxM
OwotCi0gICAgaWYgKCFjb250ZXh0LT5jb3JlRnJhbWUoKSkKLSAgICAgICAgcmV0dXJuIE5VTEw7
Ci0KLSAgICBHdGtXaWRnZXQqIHRvcGxldmVsID0gIGd0a193aWRnZXRfZ2V0X3RvcGxldmVsKEdU
S19XSURHRVQoY29udGV4dC0+Y29yZUZyYW1lKCktPnBhZ2UoKS0+Y2hyb21lKCktPnBsYXRmb3Jt
UGFnZUNsaWVudCgpKSk7Ci0gICAgaWYgKGd0a193aWRnZXRfaXNfdG9wbGV2ZWwodG9wbGV2ZWwp
KQotICAgICAgICByZXR1cm4gdG9wbGV2ZWw7Ci0gICAgZWxzZQotICAgICAgICByZXR1cm4gTlVM
TDsKLX0KLQotc3RhdGljIHZvaWQgY2xvc2VJY29uRGF0YWJhc2VPbkV4aXQoKQotewotICAgIGlj
b25EYXRhYmFzZSgpLT5jbG9zZSgpOwotfQotCi12b2lkIHdlYmtpdF9pbml0KCkKLXsKLSAgICBz
dGF0aWMgYm9vbCBpc0luaXRpYWxpemVkID0gZmFsc2U7Ci0gICAgaWYgKGlzSW5pdGlhbGl6ZWQp
Ci0gICAgICAgIHJldHVybjsKLSAgICBpc0luaXRpYWxpemVkID0gdHJ1ZTsKLQotICAgIGJpbmR0
ZXh0ZG9tYWluKEdFVFRFWFRfUEFDS0FHRSwgUEFDS0FHRV9MT0NBTEVfRElSKTsKLSAgICBiaW5k
X3RleHRkb21haW5fY29kZXNldChHRVRURVhUX1BBQ0tBR0UsICJVVEYtOCIpOwotCi0gICAgSlND
Ojppbml0aWFsaXplVGhyZWFkaW5nKCk7Ci0gICAgV1RGOjppbml0aWFsaXplTWFpblRocmVhZCgp
OwotCi0gICAgV2ViQ29yZTo6SW5pdGlhbGl6ZUxvZ2dpbmdDaGFubmVsc0lmTmVjZXNzYXJ5KCk7
Ci0KLSAgICAvLyBXZSBtYWtlIHN1cmUgdGhlIHRleHQgY29kZWNzIGhhdmUgYmVlbiBpbml0aWFs
aXplZCwgYmVjYXVzZQotICAgIC8vIHRoYXQgbWF5IG9ubHkgYmUgZG9uZSBieSB0aGUgbWFpbiB0
aHJlYWQuCi0gICAgYXRvbWljQ2Fub25pY2FsVGV4dEVuY29kaW5nTmFtZSgiVVRGLTgiKTsKLQot
ICAgIGdjaGFyKiBkYXRhYmFzZURpcmVjdG9yeSA9IGdfYnVpbGRfZmlsZW5hbWUoZ19nZXRfdXNl
cl9kYXRhX2RpcigpLCAid2Via2l0IiwgImRhdGFiYXNlcyIsIE5VTEwpOwotICAgIHdlYmtpdF9z
ZXRfd2ViX2RhdGFiYXNlX2RpcmVjdG9yeV9wYXRoKGRhdGFiYXNlRGlyZWN0b3J5KTsKLQotI2lm
IEVOQUJMRShPRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpCi0gICAgLy8gRklYTUU6IEl0IHNob3Vs
ZCBiZSBwb3NzaWJsZSBmb3IgY2xpZW50IGFwcGxpY2F0aW9ucyB0byBvdmVycmlkZSB0aGUgZGVm
YXVsdCBhcHBjYWNoZSBsb2NhdGlvbgotICAgIFdlYkNvcmU6OmNhY2hlU3RvcmFnZSgpLnNldENh
Y2hlRGlyZWN0b3J5KGRhdGFiYXNlRGlyZWN0b3J5KTsKLSNlbmRpZgotICAgIGdfZnJlZShkYXRh
YmFzZURpcmVjdG9yeSk7Ci0KLSAgICBQYWdlR3JvdXA6OnNldFNob3VsZFRyYWNrVmlzaXRlZExp
bmtzKHRydWUpOwotCi0gICAgUGFzdGVib2FyZDo6Z2VuZXJhbFBhc3RlYm9hcmQoKS0+c2V0SGVs
cGVyKFdlYktpdDo6cGFzdGVib2FyZEhlbHBlckluc3RhbmNlKCkpOwotCi0gICAgaWNvbkRhdGFi
YXNlKCktPnNldEVuYWJsZWQodHJ1ZSk7Ci0KLSAgICBHT3duUHRyPGdjaGFyPiBpY29uRGF0YWJh
c2VQYXRoKGdfYnVpbGRfZmlsZW5hbWUoZ19nZXRfdXNlcl9kYXRhX2RpcigpLCAid2Via2l0Iiwg
Imljb25kYXRhYmFzZSIsIE5VTEwpKTsKLSAgICBpY29uRGF0YWJhc2UoKS0+b3BlbihpY29uRGF0
YWJhc2VQYXRoLmdldCgpKTsKLQotICAgIGF0ZXhpdChjbG9zZUljb25EYXRhYmFzZU9uRXhpdCk7
Ci0KLSAgICBTb3VwU2Vzc2lvbiogc2Vzc2lvbiA9IHdlYmtpdF9nZXRfZGVmYXVsdF9zZXNzaW9u
KCk7Ci0KLSAgICBTb3VwU2Vzc2lvbkZlYXR1cmUqIGF1dGhEaWFsb2cgPSBzdGF0aWNfY2FzdDxT
b3VwU2Vzc2lvbkZlYXR1cmUqPihnX29iamVjdF9uZXcoV0VCS0lUX1RZUEVfU09VUF9BVVRIX0RJ
QUxPRywgTlVMTCkpOwotICAgIGdfc2lnbmFsX2Nvbm5lY3QoYXV0aERpYWxvZywgImN1cnJlbnQt
dG9wbGV2ZWwiLCBHX0NBTExCQUNLKGN1cnJlbnRUb3BsZXZlbENhbGxiYWNrKSwgTlVMTCk7Ci0g
ICAgc291cF9zZXNzaW9uX2FkZF9mZWF0dXJlKHNlc3Npb24sIGF1dGhEaWFsb2cpOwotICAgIGdf
b2JqZWN0X3VucmVmKGF1dGhEaWFsb2cpOwotCi0gICAgU291cFNlc3Npb25GZWF0dXJlKiBzbmlm
ZmVyID0gc3RhdGljX2Nhc3Q8U291cFNlc3Npb25GZWF0dXJlKj4oZ19vYmplY3RfbmV3KFNPVVBf
VFlQRV9DT05URU5UX1NOSUZGRVIsIE5VTEwpKTsKLSAgICBzb3VwX3Nlc3Npb25fYWRkX2ZlYXR1
cmUoc2Vzc2lvbiwgc25pZmZlcik7Ci0gICAgZ19vYmplY3RfdW5yZWYoc25pZmZlcik7Ci0KLSAg
ICBzb3VwX3Nlc3Npb25fYWRkX2ZlYXR1cmVfYnlfdHlwZShzZXNzaW9uLCBTT1VQX1RZUEVfQ09O
VEVOVF9ERUNPREVSKTsKLX0KZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHBy
aXZhdGUuaCBiL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHByaXZhdGUuaApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMjBhNWM1MC4uMDAwMDAwMAotLS0gYS9XZWJLaXQvZ3RrL3dlYmtp
dC93ZWJraXRwcml2YXRlLmgKKysrIC9kZXYvbnVsbApAQCAtMSw5NCArMCwwIEBACi0vKgotICog
Q29weXJpZ2h0IChDKSAyMDA3LCAyMDA4LCAyMDA5IEhvbGdlciBIYW5zIFBldGVyIEZyZXl0aGVy
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMDggSmFuIE1pY2hhZWwgQy4gQWxvbnpvCi0gKiBDb3B5cmln
aHQgKEMpIDIwMDggQ29sbGFib3JhIEx0ZC4KLSAqIENvcHlyaWdodCAoQykgMjAxMCBJZ2FsaWEg
Uy5MLgotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlz
dHJpYnV0ZSBpdCBhbmQvb3IKLSAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdO
VSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCi0gKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUg
RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSAqIHZlcnNpb24gMiBvZiB0aGUgTGlj
ZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSAqCi0gKiBUaGlz
IGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1
bCwKLSAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVk
IHdhcnJhbnR5IG9mCi0gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQotICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNl
bnNlIGZvciBtb3JlIGRldGFpbHMuCi0gKgotICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEg
Y29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotICogYWxvbmcg
d2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3Jp
dGUgdG8KLSAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGlu
IFN0cmVldCwgRmlmdGggRmxvb3IsCi0gKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KLSAq
LwotCi0jaWZuZGVmIHdlYmtpdHByaXZhdGVfaAotI2RlZmluZSB3ZWJraXRwcml2YXRlX2gKLQot
LyoKLSAqIFRoaXMgZmlsZSBrbm93cyB0aGUgc2hhcmVkIHNlY3JldCBvZiBXZWJLaXRXZWJWaWV3
LCBXZWJLaXRXZWJGcmFtZSwKLSAqIGFuZCBXZWJLaXROZXR3b3JrUmVxdWVzdC4KLSAqIFRoZXkg
YXJlIHVzaW5nIFdlYkNvcmUgd2hpY2ggbXVzbid0IGJlIGV4cG9zZWQgdG8gdGhlIG91dGVyIHdv
cmxkLgotICovCi0KLSNpbmNsdWRlIDx3ZWJraXQvd2Via2l0ZGVmaW5lcy5oPgotI2luY2x1ZGUg
PHdlYmtpdC93ZWJraXRuZXR3b3JrcmVxdWVzdC5oPgotI2luY2x1ZGUgPHdlYmtpdC93ZWJraXR3
ZWJ2aWV3Lmg+Ci0jaW5jbHVkZSA8d2Via2l0L3dlYmtpdHdlYmRhdGFzb3VyY2UuaD4KLSNpbmNs
dWRlIDx3ZWJraXQvd2Via2l0d2ViZnJhbWUuaD4KLSNpbmNsdWRlIDx3ZWJraXQvd2Via2l0d2Vi
c2V0dGluZ3MuaD4KLSNpbmNsdWRlIDx3ZWJraXQvd2Via2l0d2Vid2luZG93ZmVhdHVyZXMuaD4K
LSNpbmNsdWRlIDx3ZWJraXQvd2Via2l0bmV0d29ya3JlcXVlc3QuaD4KLSNpbmNsdWRlIDx3ZWJr
aXQvd2Via2l0c2VjdXJpdHlvcmlnaW4uaD4KLQotI2luY2x1ZGUgIkRhdGFPYmplY3RHdGsuaCIK
LSNpbmNsdWRlICJEcmFnQWN0aW9ucy5oIgotI2luY2x1ZGUgIkZyYW1lLmgiCi0jaW5jbHVkZSAi
R093blB0ci5oIgotI2luY2x1ZGUgIkdlb2xvY2F0aW9uLmgiCi0jaW5jbHVkZSAiSW50UG9pbnQu
aCIKLSNpbmNsdWRlICJJbnRSZWN0LmgiCi0jaW5jbHVkZSAiRnJhbWVMb2FkZXJDbGllbnQuaCIK
LSNpbmNsdWRlICJOb2RlLmgiCi0jaW5jbHVkZSAiUGFnZS5oIgotI2luY2x1ZGUgIlBsYXRmb3Jt
U3RyaW5nLmgiCi0jaW5jbHVkZSAiUmVzb3VyY2VIYW5kbGUuaCIKLSNpbmNsdWRlICJSZXNvdXJj
ZVJlcXVlc3QuaCIKLSNpbmNsdWRlICJXaW5kb3dGZWF0dXJlcy5oIgotI2luY2x1ZGUgIlNldHRp
bmdzLmgiCi0jaW5jbHVkZSA8ZW5jaGFudC5oPgotI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KLSNp
bmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+Ci0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi0gICAg
Y2xhc3MgRG9jdW1lbnRMb2FkZXI7Ci0gICAgY2xhc3MgUGFzdGVib2FyZEhlbHBlckd0azsKLQot
ICAgIFdlYkNvcmU6OkVkaXRpbmdCZWhhdmlvclR5cGUgY29yZShXZWJLaXRFZGl0aW5nQmVoYXZp
b3IgdHlwZSk7Ci0KLSAgICBQYXN0ZWJvYXJkSGVscGVyR3RrKiBwYXN0ZWJvYXJkSGVscGVySW5z
dGFuY2UoKTsKLX0KLQotZXh0ZXJuICJDIiB7Ci0gICAgdm9pZCB3ZWJraXRfaW5pdCgpOwotCi0j
ZGVmaW5lIFdFQktJVF9QQVJBTV9SRUFEQUJMRSAoKEdQYXJhbUZsYWdzKShHX1BBUkFNX1JFQURB
QkxFfEdfUEFSQU1fU1RBVElDX05BTUV8R19QQVJBTV9TVEFUSUNfTklDS3xHX1BBUkFNX1NUQVRJ
Q19CTFVSQikpCi0jZGVmaW5lIFdFQktJVF9QQVJBTV9SRUFEV1JJVEUgKChHUGFyYW1GbGFncyko
R19QQVJBTV9SRUFEV1JJVEV8R19QQVJBTV9TVEFUSUNfTkFNRXxHX1BBUkFNX1NUQVRJQ19OSUNL
fEdfUEFSQU1fU1RBVElDX0JMVVJCKSkKLQotICAgIFdURjo6U3RyaW5nCi0gICAgd2Via2l0VXNl
ckFnZW50KCk7Ci0KLSAgICBXZWJLaXRXZWJXaW5kb3dGZWF0dXJlcyoKLSAgICB3ZWJraXRfd2Vi
X3dpbmRvd19mZWF0dXJlc19uZXdfZnJvbV9jb3JlX2ZlYXR1cmVzIChjb25zdCBXZWJDb3JlOjpX
aW5kb3dGZWF0dXJlcyYgZmVhdHVyZXMpOwotCi0gICAgV2ViS2l0R2VvbG9jYXRpb25Qb2xpY3lE
ZWNpc2lvbioKLSAgICB3ZWJraXRfZ2VvbG9jYXRpb25fcG9saWN5X2RlY2lzaW9uX25ldyhXZWJL
aXRXZWJGcmFtZSosIFdlYkNvcmU6Okdlb2xvY2F0aW9uKik7Ci0KLSAgICBXRUJLSVRfQVBJIHZv
aWQKLSAgICB3ZWJraXRfYXBwbGljYXRpb25fY2FjaGVfc2V0X21heGltdW1fc2l6ZSh1bnNpZ25l
ZCBsb25nIGxvbmcgc2l6ZSk7Ci0KLSAgICAvLyBXZWJLaXRXZWJEYXRhU291cmNlIHByaXZhdGUK
LSAgICBXZWJLaXRXZWJEYXRhU291cmNlKgotICAgIHdlYmtpdF93ZWJfZGF0YV9zb3VyY2VfbmV3
X3dpdGhfbG9hZGVyKFBhc3NSZWZQdHI8V2ViS2l0OjpEb2N1bWVudExvYWRlcj4pOwotfQotCi0j
ZW5kaWYKZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHNlY3VyaXR5b3JpZ2lu
LmNwcCBiL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHNlY3VyaXR5b3JpZ2luLmNwcAppbmRleCA5
MjdiNzZkLi42MmVhMGY0IDEwMDY0NAotLS0gYS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRzZWN1
cml0eW9yaWdpbi5jcHAKKysrIGIvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0c2VjdXJpdHlvcmln
aW4uY3BwCkBAIC0yMiw3ICsyMiw3IEBACiAKICNpbmNsdWRlICJEYXRhYmFzZVRyYWNrZXIuaCIK
ICNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgotI2luY2x1ZGUgIndlYmtpdHByaXZhdGUuaCIK
KyNpbmNsdWRlICJ3ZWJraXRnZW5lcmFscHJpdmF0ZS5oIgogI2luY2x1ZGUgIndlYmtpdHNlY3Vy
aXR5b3JpZ2lucHJpdmF0ZS5oIgogI2luY2x1ZGUgPGdsaWIvZ2kxOG4tbGliLmg+CiAjaW5jbHVk
ZSA8d3RmL3RleHQvQ1N0cmluZy5oPgpkaWZmIC0tZ2l0IGEvV2ViS2l0L2d0ay93ZWJraXQvd2Vi
a2l0dmlld3BvcnRhdHRyaWJ1dGVzLmNwcCBiL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHZpZXdw
b3J0YXR0cmlidXRlcy5jcHAKaW5kZXggYzJkZTVjMS4uMmM5OGQ0ZCAxMDA2NDQKLS0tIGEvV2Vi
S2l0L2d0ay93ZWJraXQvd2Via2l0dmlld3BvcnRhdHRyaWJ1dGVzLmNwcAorKysgYi9XZWJLaXQv
Z3RrL3dlYmtpdC93ZWJraXR2aWV3cG9ydGF0dHJpYnV0ZXMuY3BwCkBAIC0yMiw3ICsyMiw5IEBA
CiAjaW5jbHVkZSAid2Via2l0dmlld3BvcnRhdHRyaWJ1dGVzLmgiCiAKICNpbmNsdWRlICJDaHJv
bWUuaCIKLSNpbmNsdWRlICJ3ZWJraXRwcml2YXRlLmgiCisjaW5jbHVkZSAiRnJhbWUuaCIKKyNp
bmNsdWRlICJQYWdlLmgiCisjaW5jbHVkZSAid2Via2l0Z2VuZXJhbHByaXZhdGUuaCIKICNpbmNs
dWRlICJ3ZWJraXR2aWV3cG9ydGF0dHJpYnV0ZXNwcml2YXRlLmgiCiAjaW5jbHVkZSAid2Via2l0
d2Vidmlld3ByaXZhdGUuaCIKICNpbmNsdWRlIDxnbGliL2dpMThuLWxpYi5oPgpkaWZmIC0tZ2l0
IGEvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2ViYmFja2ZvcndhcmRsaXN0LmNwcCBiL1dlYktp
dC9ndGsvd2Via2l0L3dlYmtpdHdlYmJhY2tmb3J3YXJkbGlzdC5jcHAKaW5kZXggYzkwNmJhMy4u
NzZlMjgwOSAxMDA2NDQKLS0tIGEvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2ViYmFja2Zvcndh
cmRsaXN0LmNwcAorKysgYi9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJiYWNrZm9yd2FyZGxp
c3QuY3BwCkBAIC0yMyw3ICsyMyw4IEBACiAKICNpbmNsdWRlICJCYWNrRm9yd2FyZExpc3RJbXBs
LmgiCiAjaW5jbHVkZSAiSGlzdG9yeUl0ZW0uaCIKLSNpbmNsdWRlICJ3ZWJraXRwcml2YXRlLmgi
CisjaW5jbHVkZSAiUGFnZS5oIgorI2luY2x1ZGUgIndlYmtpdGdlbmVyYWxwcml2YXRlLmgiCiAj
aW5jbHVkZSAid2Via2l0d2ViYmFja2ZvcndhcmRsaXN0cHJpdmF0ZS5oIgogI2luY2x1ZGUgIndl
YmtpdHdlYmhpc3RvcnlpdGVtLmgiCiAjaW5jbHVkZSAid2Via2l0d2ViaGlzdG9yeWl0ZW1wcml2
YXRlLmgiCmRpZmYgLS1naXQgYS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJkYXRhYmFzZS5j
cHAgYi9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJkYXRhYmFzZS5jcHAKaW5kZXggZGI3MmNk
ZS4uYTQzMTQyZiAxMDA2NDQKLS0tIGEvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2ViZGF0YWJh
c2UuY3BwCisrKyBiL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYmRhdGFiYXNlLmNwcApAQCAt
MjIsNyArMjIsNyBAQAogCiAjaW5jbHVkZSAiRGF0YWJhc2VEZXRhaWxzLmgiCiAjaW5jbHVkZSAi
RGF0YWJhc2VUcmFja2VyLmgiCi0jaW5jbHVkZSAid2Via2l0cHJpdmF0ZS5oIgorI2luY2x1ZGUg
IndlYmtpdGdlbmVyYWxwcml2YXRlLmgiCiAjaW5jbHVkZSAid2Via2l0c2VjdXJpdHlvcmlnaW5w
cml2YXRlLmgiCiAjaW5jbHVkZSA8Z2xpYi9naTE4bi1saWIuaD4KICNpbmNsdWRlIDx3dGYvdGV4
dC9DU3RyaW5nLmg+CmRpZmYgLS1naXQgYS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJkYXRh
c291cmNlLmNwcCBiL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYmRhdGFzb3VyY2UuY3BwCmlu
ZGV4IDdkOTY3ZjcuLmUyOGRmZjEgMTAwNjQ0Ci0tLSBhL1dlYktpdC9ndGsvd2Via2l0L3dlYmtp
dHdlYmRhdGFzb3VyY2UuY3BwCisrKyBiL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYmRhdGFz
b3VyY2UuY3BwCkBAIC0zMCw4ICszMCw5IEBACiAjaW5jbHVkZSAiU2hhcmVkQnVmZmVyLmgiCiAj
aW5jbHVkZSAiU3Vic3RpdHV0ZURhdGEuaCIKICNpbmNsdWRlICJydW50aW1lL0luaXRpYWxpemVU
aHJlYWRpbmcuaCIKKyNpbmNsdWRlICJ3ZWJraXRnZW5lcmFscHJpdmF0ZS5oIgogI2luY2x1ZGUg
IndlYmtpdG5ldHdvcmtyZXF1ZXN0cHJpdmF0ZS5oIgotI2luY2x1ZGUgIndlYmtpdHByaXZhdGUu
aCIKKyNpbmNsdWRlICJ3ZWJraXR3ZWJkYXRhc291cmNlcHJpdmF0ZS5oIgogI2luY2x1ZGUgIndl
YmtpdHdlYmZyYW1lcHJpdmF0ZS5oIgogI2luY2x1ZGUgIndlYmtpdHdlYnJlc291cmNlLmgiCiAj
aW5jbHVkZSAid2Via2l0d2Vidmlld3ByaXZhdGUuaCIKQEAgLTEzNiwxNSArMTM3LDYgQEAgc3Rh
dGljIHZvaWQgd2Via2l0X3dlYl9kYXRhX3NvdXJjZV9pbml0KFdlYktpdFdlYkRhdGFTb3VyY2Uq
IHdlYkRhdGFTb3VyY2UpCiAgICAgd2ViRGF0YVNvdXJjZS0+cHJpdiA9IEdfVFlQRV9JTlNUQU5D
RV9HRVRfUFJJVkFURSh3ZWJEYXRhU291cmNlLCBXRUJLSVRfVFlQRV9XRUJfREFUQV9TT1VSQ0Us
IFdlYktpdFdlYkRhdGFTb3VyY2VQcml2YXRlKTsKIH0KIAotV2ViS2l0V2ViRGF0YVNvdXJjZSog
d2Via2l0X3dlYl9kYXRhX3NvdXJjZV9uZXdfd2l0aF9sb2FkZXIoUGFzc1JlZlB0cjxXZWJLaXQ6
OkRvY3VtZW50TG9hZGVyPiBsb2FkZXIpCi17Ci0gICAgV2ViS2l0V2ViRGF0YVNvdXJjZSogd2Vi
RGF0YVNvdXJjZSA9IFdFQktJVF9XRUJfREFUQV9TT1VSQ0UoZ19vYmplY3RfbmV3KFdFQktJVF9U
WVBFX1dFQl9EQVRBX1NPVVJDRSwgTlVMTCkpOwotICAgIFdlYktpdFdlYkRhdGFTb3VyY2VQcml2
YXRlKiBwcml2ID0gd2ViRGF0YVNvdXJjZS0+cHJpdjsKLSAgICBwcml2LT5sb2FkZXIgPSBsb2Fk
ZXIucmVsZWFzZVJlZigpOwotCi0gICAgcmV0dXJuIHdlYkRhdGFTb3VyY2U7Ci19Ci0KIC8qKgog
ICogd2Via2l0X3dlYl9kYXRhX3NvdXJjZV9uZXc6CiAgKgpAQCAtMTgyLDEwICsxNzQsOCBAQCBX
ZWJLaXRXZWJEYXRhU291cmNlKiB3ZWJraXRfd2ViX2RhdGFfc291cmNlX25ld193aXRoX3JlcXVl
c3QoV2ViS2l0TmV0d29ya1JlcXVlcwogCiAgICAgY29uc3QgZ2NoYXIqIHVyaSA9IHdlYmtpdF9u
ZXR3b3JrX3JlcXVlc3RfZ2V0X3VyaShyZXF1ZXN0KTsKIAotICAgIFdlYktpdFdlYkRhdGFTb3Vy
Y2UqIGRhdGFzb3VyY2U7Ci0gICAgZGF0YXNvdXJjZSA9IHdlYmtpdF93ZWJfZGF0YV9zb3VyY2Vf
bmV3X3dpdGhfbG9hZGVyKAotICAgICAgICBXZWJLaXQ6OkRvY3VtZW50TG9hZGVyOjpjcmVhdGUo
UmVzb3VyY2VSZXF1ZXN0KEtVUkwoS1VSTCgpLCBTdHJpbmc6OmZyb21VVEY4KHVyaSkpKSwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN1YnN0aXR1dGVEYXRhKCkpKTsK
KyAgICBSZXNvdXJjZVJlcXVlc3QgcmVzb3VyY2VSZXF1ZXN0KFJlc291cmNlUmVxdWVzdChLVVJM
KEtVUkwoKSwgU3RyaW5nOjpmcm9tVVRGOCh1cmkpKSkpOworICAgIFdlYktpdFdlYkRhdGFTb3Vy
Y2UqIGRhdGFzb3VyY2UgPSBraXROZXcoV2ViS2l0OjpEb2N1bWVudExvYWRlcjo6Y3JlYXRlKHJl
c291cmNlUmVxdWVzdCwgU3Vic3RpdHV0ZURhdGEoKSkpOwogCiAgICAgV2ViS2l0V2ViRGF0YVNv
dXJjZVByaXZhdGUqIHByaXYgPSBkYXRhc291cmNlLT5wcml2OwogICAgIHByaXYtPmluaXRpYWxS
ZXF1ZXN0ID0gcmVxdWVzdDsKQEAgLTQzNywzICs0MjcsMTYgQEAgR0xpc3QqIHdlYmtpdF93ZWJf
ZGF0YV9zb3VyY2VfZ2V0X3N1YnJlc291cmNlcyhXZWJLaXRXZWJEYXRhU291cmNlKiB3ZWJEYXRh
U291cmMKIAogICAgIHJldHVybiB3ZWJraXRfd2ViX3ZpZXdfZ2V0X3N1YnJlc291cmNlcyh3ZWJW
aWV3KTsKIH0KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1dlYktpdFdlYkRhdGFTb3VyY2UqIGtp
dE5ldyhQYXNzUmVmUHRyPFdlYktpdDo6RG9jdW1lbnRMb2FkZXI+IGxvYWRlcikKK3sKKyAgICBX
ZWJLaXRXZWJEYXRhU291cmNlKiB3ZWJEYXRhU291cmNlID0gV0VCS0lUX1dFQl9EQVRBX1NPVVJD
RShnX29iamVjdF9uZXcoV0VCS0lUX1RZUEVfV0VCX0RBVEFfU09VUkNFLCBOVUxMKSk7CisgICAg
V2ViS2l0V2ViRGF0YVNvdXJjZVByaXZhdGUqIHByaXYgPSB3ZWJEYXRhU291cmNlLT5wcml2Owor
ICAgIHByaXYtPmxvYWRlciA9IGxvYWRlci5yZWxlYXNlUmVmKCk7CisKKyAgICByZXR1cm4gd2Vi
RGF0YVNvdXJjZTsKK30KKworfQpkaWZmIC0tZ2l0IGEvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0
d2ViZnJhbWUuY3BwIGIvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2ViZnJhbWUuY3BwCmluZGV4
IGQ4ZDI1YzAuLjMwY2U3OGMgMTAwNjQ0Ci0tLSBhL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdl
YmZyYW1lLmNwcAorKysgYi9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJmcmFtZS5jcHAKQEAg
LTUxLDEwICs1MSwxMCBAQAogI2luY2x1ZGUgIlNjcmlwdENvbnRyb2xsZXIuaCIKICNpbmNsdWRl
ICJTdWJzdGl0dXRlRGF0YS5oIgogI2luY2x1ZGUgIndlYmtpdGVudW10eXBlcy5oIgorI2luY2x1
ZGUgIndlYmtpdGdlbmVyYWxwcml2YXRlLmgiCiAjaW5jbHVkZSAid2Via2l0bWFyc2hhbC5oIgog
I2luY2x1ZGUgIndlYmtpdG5ldHdvcmtyZXF1ZXN0cHJpdmF0ZS5oIgogI2luY2x1ZGUgIndlYmtp
dG5ldHdvcmtyZXNwb25zZXByaXZhdGUuaCIKLSNpbmNsdWRlICJ3ZWJraXRwcml2YXRlLmgiCiAj
aW5jbHVkZSAid2Via2l0c2VjdXJpdHlvcmlnaW5wcml2YXRlLmgiCiAjaW5jbHVkZSAid2Via2l0
d2ViZnJhbWVwcml2YXRlLmgiCiAjaW5jbHVkZSAid2Via2l0d2Vidmlldy5oIgpkaWZmIC0tZ2l0
IGEvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2ViZnJhbWVwcml2YXRlLmggYi9XZWJLaXQvZ3Rr
L3dlYmtpdC93ZWJraXR3ZWJmcmFtZXByaXZhdGUuaAppbmRleCAyM2YxZTQwLi44MDIxMGQ4IDEw
MDY0NAotLS0gYS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJmcmFtZXByaXZhdGUuaAorKysg
Yi9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJmcmFtZXByaXZhdGUuaApAQCAtMjMsNiArMjMs
OSBAQAogI2lmbmRlZiB3ZWJraXR3ZWJmcmFtZXByaXZhdGVfaAogI2RlZmluZSB3ZWJraXR3ZWJm
cmFtZXByaXZhdGVfaAogCisjaW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJ3ZWJraXR3ZWJm
cmFtZS5oIgorCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogV2ViS2l0V2ViVmlldyogZ2V0Vmlld0Zy
b21GcmFtZShXZWJLaXRXZWJGcmFtZSopOwpkaWZmIC0tZ2l0IGEvV2ViS2l0L2d0ay93ZWJraXQv
d2Via2l0d2ViaGlzdG9yeWl0ZW0uY3BwIGIvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2ViaGlz
dG9yeWl0ZW0uY3BwCmluZGV4IGFjOGU1N2YuLjY3ZDcyMmIgMTAwNjQ0Ci0tLSBhL1dlYktpdC9n
dGsvd2Via2l0L3dlYmtpdHdlYmhpc3RvcnlpdGVtLmNwcAorKysgYi9XZWJLaXQvZ3RrL3dlYmtp
dC93ZWJraXR3ZWJoaXN0b3J5aXRlbS5jcHAKQEAgLTE5LDEyICsxOSwxMSBAQAogICovCiAKICNp
bmNsdWRlICJjb25maWcuaCIKLQogI2luY2x1ZGUgIndlYmtpdHdlYmhpc3RvcnlpdGVtLmgiCi0j
aW5jbHVkZSAid2Via2l0cHJpdmF0ZS5oIgogCiAjaW5jbHVkZSAiSGlzdG9yeUl0ZW0uaCIKICNp
bmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgorI2luY2x1ZGUgIndlYmtpdGdlbmVyYWxwcml2YXRl
LmgiCiAjaW5jbHVkZSAid2Via2l0d2ViaGlzdG9yeWl0ZW1wcml2YXRlLmgiCiAjaW5jbHVkZSA8
Z2xpYi5oPgogI2luY2x1ZGUgPGdsaWIvZ2kxOG4tbGliLmg+CmRpZmYgLS1naXQgYS9XZWJLaXQv
Z3RrL3dlYmtpdC93ZWJraXR3ZWJpbnNwZWN0b3IuY3BwIGIvV2ViS2l0L2d0ay93ZWJraXQvd2Vi
a2l0d2ViaW5zcGVjdG9yLmNwcAppbmRleCA1MTQwODViLi43MTRjOTViIDEwMDY0NAotLS0gYS9X
ZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJpbnNwZWN0b3IuY3BwCisrKyBiL1dlYktpdC9ndGsv
d2Via2l0L3dlYmtpdHdlYmluc3BlY3Rvci5jcHAKQEAgLTMzLDggKzMzLDggQEAKICNpbmNsdWRl
ICJSZW5kZXJMYXllci5oIgogI2luY2x1ZGUgIlJlbmRlclZpZXcuaCIKICNpbmNsdWRlICJ3ZWJr
aXQvV2ViS2l0RE9NTm9kZVByaXZhdGUuaCIKKyNpbmNsdWRlICJ3ZWJraXRnZW5lcmFscHJpdmF0
ZS5oIgogI2luY2x1ZGUgIndlYmtpdG1hcnNoYWwuaCIKLSNpbmNsdWRlICJ3ZWJraXRwcml2YXRl
LmgiCiAjaW5jbHVkZSAid2Via2l0d2ViaW5zcGVjdG9ycHJpdmF0ZS5oIgogI2luY2x1ZGUgPGds
aWIvZ2kxOG4tbGliLmg+CiAKZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdl
Ym5hdmlnYXRpb25hY3Rpb24uY3BwIGIvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2VibmF2aWdh
dGlvbmFjdGlvbi5jcHAKaW5kZXggYjEyMjc5ZS4uYTAxMDlkNCAxMDA2NDQKLS0tIGEvV2ViS2l0
L2d0ay93ZWJraXQvd2Via2l0d2VibmF2aWdhdGlvbmFjdGlvbi5jcHAKKysrIGIvV2ViS2l0L2d0
ay93ZWJraXQvd2Via2l0d2VibmF2aWdhdGlvbmFjdGlvbi5jcHAKQEAgLTE4LDE2ICsxOCwxNCBA
QAogICovCiAKICNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJ3ZWJraXR3ZWJuYXZpZ2F0
aW9uYWN0aW9uLmgiCiAKLSNpbmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgogI2luY2x1ZGUgIkZy
YW1lTG9hZGVyVHlwZXMuaCIKLQotI2luY2x1ZGUgPGdsaWIvZ2kxOG4tbGliLmg+Ci0jaW5jbHVk
ZSAid2Via2l0d2VibmF2aWdhdGlvbmFjdGlvbi5oIgotI2luY2x1ZGUgIndlYmtpdHByaXZhdGUu
aCIKICNpbmNsdWRlICJ3ZWJraXRlbnVtdHlwZXMuaCIKLQorI2luY2x1ZGUgIndlYmtpdGdlbmVy
YWxwcml2YXRlLmgiCisjaW5jbHVkZSA8Z2xpYi9naTE4bi1saWIuaD4KICNpbmNsdWRlIDxzdHJp
bmcuaD4KKyNpbmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgogCiBzdGF0aWMgdm9pZCB3ZWJraXRf
d2ViX25hdmlnYXRpb25fYWN0aW9uX3NldF90YXJnZXRfZnJhbWUoV2ViS2l0V2ViTmF2aWdhdGlv
bkFjdGlvbiogbmF2aWdhdGlvbkFjdGlvbiwgY29uc3QgZ2NoYXIqIHRhcmdldEZyYW1lKTsKIApk
aWZmIC0tZ2l0IGEvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2VicGx1Z2luLmNwcCBiL1dlYktp
dC9ndGsvd2Via2l0L3dlYmtpdHdlYnBsdWdpbi5jcHAKaW5kZXggMGIwNjQxNi4uMjRmNGM1OSAx
MDA2NDQKLS0tIGEvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2VicGx1Z2luLmNwcAorKysgYi9X
ZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJwbHVnaW4uY3BwCkBAIC0yMCw3ICsyMCw3IEBACiAj
aW5jbHVkZSAid2Via2l0d2VicGx1Z2luLmgiCiAKICNpbmNsdWRlICJQbHVnaW5QYWNrYWdlLmgi
Ci0jaW5jbHVkZSAid2Via2l0cHJpdmF0ZS5oIgorI2luY2x1ZGUgIndlYmtpdGdlbmVyYWxwcml2
YXRlLmgiCiAjaW5jbHVkZSAid2Via2l0d2VicGx1Z2lucHJpdmF0ZS5oIgogI2luY2x1ZGUgPGds
aWIvZ2kxOG4tbGliLmg+CiAKZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdl
YnBsdWdpbmRhdGFiYXNlLmNwcCBiL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnBsdWdpbmRh
dGFiYXNlLmNwcAppbmRleCAwODMyOGEwLi5lYmIzMjk2IDEwMDY0NAotLS0gYS9XZWJLaXQvZ3Rr
L3dlYmtpdC93ZWJraXR3ZWJwbHVnaW5kYXRhYmFzZS5jcHAKKysrIGIvV2ViS2l0L2d0ay93ZWJr
aXQvd2Via2l0d2VicGx1Z2luZGF0YWJhc2UuY3BwCkBAIC0yMCw3ICsyMCw3IEBACiAjaW5jbHVk
ZSAid2Via2l0d2VicGx1Z2luZGF0YWJhc2UuaCIKIAogI2luY2x1ZGUgIlBsdWdpbkRhdGFiYXNl
LmgiCi0jaW5jbHVkZSAid2Via2l0cHJpdmF0ZS5oIgorI2luY2x1ZGUgIndlYmtpdGdlbmVyYWxw
cml2YXRlLmgiCiAjaW5jbHVkZSAid2Via2l0d2VicGx1Z2luZGF0YWJhc2Vwcml2YXRlLmgiCiAj
aW5jbHVkZSAid2Via2l0d2VicGx1Z2lucHJpdmF0ZS5oIgogCmRpZmYgLS1naXQgYS9XZWJLaXQv
Z3RrL3dlYmtpdC93ZWJraXR3ZWJwbHVnaW5wcml2YXRlLmggYi9XZWJLaXQvZ3RrL3dlYmtpdC93
ZWJraXR3ZWJwbHVnaW5wcml2YXRlLmgKaW5kZXggODg1MzEzZS4uNGFlMjA0YiAxMDA2NDQKLS0t
IGEvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2VicGx1Z2lucHJpdmF0ZS5oCisrKyBiL1dlYktp
dC9ndGsvd2Via2l0L3dlYmtpdHdlYnBsdWdpbnByaXZhdGUuaApAQCAtMjEsNiArMjEsNyBAQAog
CiAjaW5jbHVkZSAid2Via2l0d2VicGx1Z2luLmgiCiAjaW5jbHVkZSA8Z2xpYi1vYmplY3QuaD4K
KyNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNs
YXNzIFBsdWdpblBhY2thZ2U7CmRpZmYgLS1naXQgYS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3
ZWJwb2xpY3lkZWNpc2lvbi5jcHAgYi9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJwb2xpY3lk
ZWNpc2lvbi5jcHAKaW5kZXggMDZjMWZjYi4uNjI0ZmY5YSAxMDA2NDQKLS0tIGEvV2ViS2l0L2d0
ay93ZWJraXQvd2Via2l0d2VicG9saWN5ZGVjaXNpb24uY3BwCisrKyBiL1dlYktpdC9ndGsvd2Vi
a2l0L3dlYmtpdHdlYnBvbGljeWRlY2lzaW9uLmNwcApAQCAtMjAsOCArMjAsOCBAQAogI2luY2x1
ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIndlYmtpdHdlYnBvbGljeWRlY2lzaW9uLmgiCiAKKyNp
bmNsdWRlICJGcmFtZUxvYWRlckNsaWVudC5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZGVyVHlwZXMu
aCIKLSNpbmNsdWRlICJ3ZWJraXRwcml2YXRlLmgiCiAjaW5jbHVkZSAid2Via2l0d2ViZnJhbWVw
cml2YXRlLmgiCiAjaW5jbHVkZSAid2Via2l0d2VicG9saWN5ZGVjaXNpb25wcml2YXRlLmgiCiAK
ZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnJlc291cmNlLmNwcCBiL1dl
YktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnJlc291cmNlLmNwcAppbmRleCBjMmYzYTE1Li5jNGYz
OTBiIDEwMDY0NAotLS0gYS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJyZXNvdXJjZS5jcHAK
KysrIGIvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2VicmVzb3VyY2UuY3BwCkBAIC0yNSwxNCAr
MjUsMTMgQEAKICNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgogI2luY2x1ZGUgIlNoYXJlZEJ1
ZmZlci5oIgogI2luY2x1ZGUgIndlYmtpdGVudW10eXBlcy5oIgorI2luY2x1ZGUgIndlYmtpdGdl
bmVyYWxwcml2YXRlLmgiCiAjaW5jbHVkZSAid2Via2l0bWFyc2hhbC5oIgotI2luY2x1ZGUgIndl
YmtpdHByaXZhdGUuaCIKICNpbmNsdWRlICJ3ZWJraXR3ZWJyZXNvdXJjZXByaXZhdGUuaCIKLSNp
bmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgotI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4K
LQogI2luY2x1ZGUgPGdsaWIuaD4KICNpbmNsdWRlIDxnbGliL2dpMThuLWxpYi5oPgorI2luY2x1
ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogCiAv
KioKICAqIFNFQ1RJT046d2Via2l0d2VicmVzb3VyY2UKQEAgLTQ0LDcgKzQzLDYgQEAKICAqLwog
CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKLXVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CiAKIGVu
dW0gewogICAgIFBST1BfMCwKZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdl
YnNldHRpbmdzLmNwcCBiL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnNldHRpbmdzLmNwcApp
bmRleCA5MjM3MGQ3Li5jZjQ5ZDIwIDEwMDY0NAotLS0gYS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJr
aXR3ZWJzZXR0aW5ncy5jcHAKKysrIGIvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vic2V0dGlu
Z3MuY3BwCkBAIC0yNiwxNiArMjYsMTkgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRl
ICJ3ZWJraXR3ZWJzZXR0aW5ncy5oIgogCisjaW5jbHVkZSAiRWRpdGluZ0JlaGF2aW9yLmgiCiAj
aW5jbHVkZSAiRmlsZVN5c3RlbS5oIgogI2luY2x1ZGUgIkxhbmd1YWdlLmgiCiAjaW5jbHVkZSAi
UGx1Z2luRGF0YWJhc2UuaCIKICNpbmNsdWRlICJ3ZWJraXRlbnVtdHlwZXMuaCIKLSNpbmNsdWRl
ICJ3ZWJraXRwcml2YXRlLmgiCisjaW5jbHVkZSAid2Via2l0Z2VuZXJhbHByaXZhdGUuaCIKICNp
bmNsdWRlICJ3ZWJraXR2ZXJzaW9uLmgiCiAjaW5jbHVkZSAid2Via2l0d2Vic2V0dGluZ3Nwcml2
YXRlLmgiCisjaW5jbHVkZSA8ZW5jaGFudC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcu
aD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdDb25jYXRlbmF0ZS5oPgogI2luY2x1ZGUgPGds
aWIvZ2kxOG4tbGliLmg+CisKICNpZiBPUyhVTklYKQogI2luY2x1ZGUgPHN5cy91dHNuYW1lLmg+
CiAjZW5kaWYKQEAgLTE0MzgsMyArMTQ0MSwxMiBAQCBHX0NPTlNUX1JFVFVSTiBnY2hhciogd2Vi
a2l0X3dlYl9zZXR0aW5nc19nZXRfdXNlcl9hZ2VudChXZWJLaXRXZWJTZXR0aW5ncyogd2ViUwog
CiAgICAgcmV0dXJuIHByaXYtPnVzZXJfYWdlbnQ7CiB9CisKK25hbWVzcGFjZSBXZWJLaXQgewor
CitXZWJDb3JlOjpFZGl0aW5nQmVoYXZpb3JUeXBlIGNvcmUoV2ViS2l0RWRpdGluZ0JlaGF2aW9y
IHR5cGUpCit7CisgICAgcmV0dXJuIChXZWJDb3JlOjpFZGl0aW5nQmVoYXZpb3JUeXBlKXR5cGU7
Cit9CisKK30KZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnNldHRpbmdz
cHJpdmF0ZS5oIGIvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vic2V0dGluZ3Nwcml2YXRlLmgK
aW5kZXggZTg0OGEwODYuLmRlZjNhMWIgMTAwNjQ0Ci0tLSBhL1dlYktpdC9ndGsvd2Via2l0L3dl
YmtpdHdlYnNldHRpbmdzcHJpdmF0ZS5oCisrKyBiL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdl
YnNldHRpbmdzcHJpdmF0ZS5oCkBAIC0yNSwxMiArMjUsMjAgQEAKIAogI2luY2x1ZGUgIndlYmtp
dHdlYnNldHRpbmdzLmgiCiAKK25hbWVzcGFjZSBXZWJLaXQgeworCitXZWJDb3JlOjpFZGl0aW5n
QmVoYXZpb3JUeXBlIGNvcmUoV2ViS2l0RWRpdGluZ0JlaGF2aW9yKTsKKworfQorCiBleHRlcm4g
IkMiIHsKIAogV0VCS0lUX0FQSSB2b2lkIHdlYmtpdF93ZWJfc2V0dGluZ3NfYWRkX2V4dHJhX3Bs
dWdpbl9kaXJlY3RvcnkoV2ViS2l0V2ViVmlldyosIGNvbnN0IGdjaGFyKiBkaXJlY3RvcnkpOwog
CiBHU0xpc3QqIHdlYmtpdF93ZWJfc2V0dGluZ3NfZ2V0X2VuY2hhbnRfZGljdHMoV2ViS2l0V2Vi
VmlldyopOwogCitXVEY6OlN0cmluZyB3ZWJraXRVc2VyQWdlbnQoKTsKKwogfQogCiAjZW5kaWYK
ZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwIGIvV2ViS2l0
L2d0ay93ZWJraXQvd2Via2l0d2Vidmlldy5jcHAKaW5kZXggYzgxNDQ3NC4uOGMyNTc3OSAxMDA2
NDQKLS0tIGEvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vidmlldy5jcHAKKysrIGIvV2ViS2l0
L2d0ay93ZWJraXQvd2Via2l0d2Vidmlldy5jcHAKQEAgLTc2LDE2ICs3NiwxNyBAQAogI2luY2x1
ZGUgIlJlc291cmNlSGFuZGxlLmgiCiAjaW5jbHVkZSAiU2NyaXB0VmFsdWUuaCIKICNpbmNsdWRl
ICJTY3JvbGxiYXIuaCIKKyNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIndlYmtpdC9X
ZWJLaXRET01Eb2N1bWVudFByaXZhdGUuaCIKICNpbmNsdWRlICJ3ZWJraXRkb3dubG9hZC5oIgog
I2luY2x1ZGUgIndlYmtpdGRvd25sb2FkcHJpdmF0ZS5oIgogI2luY2x1ZGUgIndlYmtpdGVudW10
eXBlcy5oIgorI2luY2x1ZGUgIndlYmtpdGdlbmVyYWxwcml2YXRlLmgiCiAjaW5jbHVkZSAid2Vi
a2l0Z2VvbG9jYXRpb25wb2xpY3lkZWNpc2lvbi5oIgogI2luY2x1ZGUgIndlYmtpdGhpdHRlc3Ry
ZXN1bHRwcml2YXRlLmgiCiAjaW5jbHVkZSAid2Via2l0bWFyc2hhbC5oIgogI2luY2x1ZGUgIndl
YmtpdG5ldHdvcmtyZXF1ZXN0LmgiCiAjaW5jbHVkZSAid2Via2l0bmV0d29ya3Jlc3BvbnNlLmgi
Ci0jaW5jbHVkZSAid2Via2l0cHJpdmF0ZS5oIgogI2luY2x1ZGUgIndlYmtpdHZpZXdwb3J0YXR0
cmlidXRlcy5oIgogI2luY2x1ZGUgIndlYmtpdHZpZXdwb3J0YXR0cmlidXRlc3ByaXZhdGUuaCIK
ICNpbmNsdWRlICJ3ZWJraXR3ZWJiYWNrZm9yd2FyZGxpc3QuaCIKQEAgLTk2LDcgKzk3LDkgQEAK
ICNpbmNsdWRlICJ3ZWJraXR3ZWJpbnNwZWN0b3Jwcml2YXRlLmgiCiAjaW5jbHVkZSAid2Via2l0
d2VicG9saWN5ZGVjaXNpb24uaCIKICNpbmNsdWRlICJ3ZWJraXR3ZWJyZXNvdXJjZS5oIgorI2lu
Y2x1ZGUgIndlYmtpdHdlYnNldHRpbmdzcHJpdmF0ZS5oIgogI2luY2x1ZGUgIndlYmtpdHdlYnBs
dWdpbmRhdGFiYXNlcHJpdmF0ZS5oIgorI2luY2x1ZGUgIndlYmtpdHdlYndpbmRvd2ZlYXR1cmVz
LmgiCiAjaW5jbHVkZSAid2Via2l0d2Vidmlld3ByaXZhdGUuaCIKICNpbmNsdWRlIDxnZGsvZ2Rr
a2V5c3ltcy5oPgogI2luY2x1ZGUgPGdsaWIvZ2kxOG4tbGliLmg+CkBAIC0xMzcsNyArMTQwLDYg
QEAKICAqLwogCiBzdGF0aWMgY29uc3QgZG91YmxlIGRlZmF1bHREUEkgPSA5Ni4wOwotc3RhdGlj
IFdlYktpdENhY2hlTW9kZWwgY2FjaGVNb2RlbCA9IFdFQktJVF9DQUNIRV9NT0RFTF9ERUZBVUxU
Owogc3RhdGljIEludFBvaW50IGdsb2JhbFBvaW50Rm9yQ2xpZW50UG9pbnQoR2RrV2luZG93KiB3
aW5kb3csIGNvbnN0IEludFBvaW50JiBjbGllbnRQb2ludCk7CiAKIHVzaW5nIG5hbWVzcGFjZSBX
ZWJLaXQ7CkBAIC01MDUwLDEzOCArNTA1Miw2IEBAIHdlYmtpdF93ZWJfdmlld19nZXRfZG9tX2Rv
Y3VtZW50KFdlYktpdFdlYlZpZXcqIHdlYlZpZXcpCiAgICAgcmV0dXJuIGtpdChkb2MpOwogfQog
Ci0vKioKLSAqIFNFQ1RJT046d2Via2l0Ci0gKiBAc2hvcnRfZGVzY3JpcHRpb246IEdsb2JhbCBm
dW5jdGlvbnMgY29udHJvbGxpbmcgV2ViS2l0Ci0gKgotICogV2ViS2l0IG1hbmFnZXMgbWFueSBy
ZXNvdXJjZXMgd2hpY2ggYXJlIG5vdCByZWxhdGVkIHRvIHNwZWNpZmljCi0gKiB2aWV3cy4gVGhl
c2UgZnVuY3Rpb25zIHJlbGF0ZSB0byBjcm9zcy12aWV3IGxpbWl0cywgc3VjaCBhcyBjYWNoZQot
ICogc2l6ZXMsIGRhdGFiYXNlIHF1b3RhcywgYW5kIHRoZSBIVFRQIHNlc3Npb24gbWFuYWdlbWVu
dC4KLSAqLwotCi0vKioKLSAqIHdlYmtpdF9nZXRfZGVmYXVsdF9zZXNzaW9uOgotICoKLSAqIFJl
dHJpZXZlcyB0aGUgZGVmYXVsdCAjU291cFNlc3Npb24gdXNlZCBieSBhbGwgd2ViIHZpZXdzLgot
ICogTm90ZSB0aGF0IHRoZSBzZXNzaW9uIGZlYXR1cmVzIGFyZSBhZGRlZCBieSBXZWJLaXQgb24g
ZGVtYW5kLAotICogc28gaWYgeW91IGluc2VydCB5b3VyIG93biAjU291cENvb2tpZUphciBiZWZv
cmUgYW55IG5ldHdvcmsKLSAqIHRyYWZmaWMgb2NjdXJzLCBXZWJLaXQgd2lsbCB1c2UgaXQgaW5z
dGVhZCBvZiB0aGUgZGVmYXVsdC4KLSAqCi0gKiBSZXR1cm4gdmFsdWU6ICh0cmFuc2ZlciBub25l
KTogdGhlIGRlZmF1bHQgI1NvdXBTZXNzaW9uCi0gKgotICogU2luY2U6IDEuMS4xCi0gKi8KLVNv
dXBTZXNzaW9uKiB3ZWJraXRfZ2V0X2RlZmF1bHRfc2Vzc2lvbiAoKQotewotICAgIHdlYmtpdF9p
bml0KCk7Ci0gICAgcmV0dXJuIFJlc291cmNlSGFuZGxlOjpkZWZhdWx0U2Vzc2lvbigpOwotfQot
Ci0vKioKLSAqIHdlYmtpdF9zZXRfY2FjaGVfbW9kZWw6Ci0gKiBAY2FjaGVfbW9kZWw6IGEgI1dl
YktpdENhY2hlTW9kZWwKLSAqCi0gKiBTcGVjaWZpZXMgYSB1c2FnZSBtb2RlbCBmb3IgV2ViVmll
d3MsIHdoaWNoIFdlYktpdCB3aWxsIHVzZSB0bwotICogZGV0ZXJtaW5lIGl0cyBjYWNoaW5nIGJl
aGF2aW9yLiBBbGwgd2ViIHZpZXdzIGZvbGxvdyB0aGUgY2FjaGUKLSAqIG1vZGVsLiBUaGlzIGNh
Y2hlIG1vZGVsIGRldGVybWluZXMgdGhlIFJBTSBhbmQgZGlzayBzcGFjZSB0byB1c2UKLSAqIGZv
ciBjYWNoaW5nIHByZXZpb3VzbHkgdmlld2VkIGNvbnRlbnQgLgotICoKLSAqIFJlc2VhcmNoIGlu
ZGljYXRlcyB0aGF0IHVzZXJzIHRlbmQgdG8gYnJvd3NlIHdpdGhpbiBjbHVzdGVycyBvZgotICog
ZG9jdW1lbnRzIHRoYXQgaG9sZCByZXNvdXJjZXMgaW4gY29tbW9uLCBhbmQgdG8gcmV2aXNpdCBw
cmV2aW91c2x5Ci0gKiB2aXNpdGVkIGRvY3VtZW50cy4gV2ViS2l0IGFuZCB0aGUgZnJhbWV3b3Jr
cyBiZWxvdyBpdCBpbmNsdWRlCi0gKiBidWlsdC1pbiBjYWNoZXMgdGhhdCB0YWtlIGFkdmFudGFn
ZSBvZiB0aGVzZSBwYXR0ZXJucywKLSAqIHN1YnN0YW50aWFsbHkgaW1wcm92aW5nIGRvY3VtZW50
IGxvYWQgc3BlZWQgaW4gYnJvd3NpbmcKLSAqIHNpdHVhdGlvbnMuIFRoZSBXZWJLaXQgY2FjaGUg
bW9kZWwgY29udHJvbHMgdGhlIGJlaGF2aW9ycyBvZiBhbGwgb2YKLSAqIHRoZXNlIGNhY2hlcywg
aW5jbHVkaW5nIHZhcmlvdXMgV2ViQ29yZSBjYWNoZXMuCi0gKgotICogQnJvd3NlcnMgY2FuIGlt
cHJvdmUgZG9jdW1lbnQgbG9hZCBzcGVlZCBzdWJzdGFudGlhbGx5IGJ5Ci0gKiBzcGVjaWZ5aW5n
IFdFQktJVF9DQUNIRV9NT0RFTF9XRUJfQlJPV1NFUi4gQXBwbGljYXRpb25zIHdpdGhvdXQgYQot
ICogYnJvd3NpbmcgaW50ZXJmYWNlIGNhbiByZWR1Y2UgbWVtb3J5IHVzYWdlIHN1YnN0YW50aWFs
bHkgYnkKLSAqIHNwZWNpZnlpbmcgV0VCS0lUX0NBQ0hFX01PREVMX0RPQ1VNRU5UX1ZJRVdFUi4g
RGVmYXVsdCB2YWx1ZSBpcwotICogV0VCS0lUX0NBQ0hFX01PREVMX1dFQl9CUk9XU0VSLgotICoK
LSAqIFNpbmNlOiAxLjEuMTgKLSAqLwotdm9pZCB3ZWJraXRfc2V0X2NhY2hlX21vZGVsKFdlYktp
dENhY2hlTW9kZWwgbW9kZWwpCi17Ci0gICAgd2Via2l0X2luaXQoKTsKLQotICAgIGlmIChjYWNo
ZU1vZGVsID09IG1vZGVsKQotICAgICAgICByZXR1cm47Ci0KLSAgICAvLyBGSVhNRTogQWRkIGRp
c2sgY2FjaGUgaGFuZGxpbmcgd2hlbiBzb3VwIGhhcyB0aGUgQVBJCi0gICAgZ3VpbnQgY2FjaGVU
b3RhbENhcGFjaXR5OwotICAgIGd1aW50IGNhY2hlTWluRGVhZENhcGFjaXR5OwotICAgIGd1aW50
IGNhY2hlTWF4RGVhZENhcGFjaXR5OwotICAgIGdkb3VibGUgZGVhZERlY29kZWREYXRhRGVsZXRp
b25JbnRlcnZhbDsKLSAgICBndWludCBwYWdlQ2FjaGVDYXBhY2l0eTsKLQotICAgIHN3aXRjaCAo
bW9kZWwpIHsKLSAgICBjYXNlIFdFQktJVF9DQUNIRV9NT0RFTF9ET0NVTUVOVF9WSUVXRVI6Ci0g
ICAgICAgIHBhZ2VDYWNoZUNhcGFjaXR5ID0gMDsKLSAgICAgICAgY2FjaGVUb3RhbENhcGFjaXR5
ID0gMDsKLSAgICAgICAgY2FjaGVNaW5EZWFkQ2FwYWNpdHkgPSAwOwotICAgICAgICBjYWNoZU1h
eERlYWRDYXBhY2l0eSA9IDA7Ci0gICAgICAgIGRlYWREZWNvZGVkRGF0YURlbGV0aW9uSW50ZXJ2
YWwgPSAwOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIFdFQktJVF9DQUNIRV9NT0RFTF9XRUJf
QlJPV1NFUjoKLSAgICAgICAgLy8gUGFnZSBjYWNoZSBjYXBhY2l0eSAoaW4gcGFnZXMpLiBDb21t
ZW50IGZyb20gTWFjIHBvcnQ6Ci0gICAgICAgIC8vIChSZXNlYXJjaCBpbmRpY2F0ZXMgdGhhdCB2
YWx1ZSAvIHBhZ2UgZHJvcHMgc3Vic3RhbnRpYWxseSBhZnRlciAzIHBhZ2VzLikKLSAgICAgICAg
cGFnZUNhY2hlQ2FwYWNpdHkgPSAzOwotICAgICAgICBjYWNoZVRvdGFsQ2FwYWNpdHkgPSAzMiAq
IDEwMjQgKiAxMDI0OwotICAgICAgICBjYWNoZU1pbkRlYWRDYXBhY2l0eSA9IGNhY2hlVG90YWxD
YXBhY2l0eSAvIDQ7Ci0gICAgICAgIGNhY2hlTWF4RGVhZENhcGFjaXR5ID0gY2FjaGVUb3RhbENh
cGFjaXR5IC8gMjsKLSAgICAgICAgZGVhZERlY29kZWREYXRhRGVsZXRpb25JbnRlcnZhbCA9IDYw
OwotICAgICAgICBicmVhazsKLSAgICBkZWZhdWx0OgotICAgICAgICBnX3JldHVybl9pZl9yZWFj
aGVkKCk7Ci0gICAgfQotCi0gICAgY2FjaGUoKS0+c2V0Q2FwYWNpdGllcyhjYWNoZU1pbkRlYWRD
YXBhY2l0eSwgY2FjaGVNYXhEZWFkQ2FwYWNpdHksIGNhY2hlVG90YWxDYXBhY2l0eSk7Ci0gICAg
Y2FjaGUoKS0+c2V0RGVhZERlY29kZWREYXRhRGVsZXRpb25JbnRlcnZhbChkZWFkRGVjb2RlZERh
dGFEZWxldGlvbkludGVydmFsKTsKLSAgICBwYWdlQ2FjaGUoKS0+c2V0Q2FwYWNpdHkocGFnZUNh
Y2hlQ2FwYWNpdHkpOwotICAgIGNhY2hlTW9kZWwgPSBtb2RlbDsKLX0KLQotLyoqCi0gKiB3ZWJr
aXRfZ2V0X2NhY2hlX21vZGVsOgotICoKLSAqIFJldHVybnMgdGhlIGN1cnJlbnQgY2FjaGUgbW9k
ZWwuIEZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0IHRoaXMKLSAqIHZhbHVlIGNoZWNrIHRoZSBk
b2N1bWVudGF0aW9uIG9mIHRoZSBmdW5jdGlvbgotICogd2Via2l0X3NldF9jYWNoZV9tb2RlbCgp
LgotICoKLSAqIFJldHVybiB2YWx1ZTogdGhlIGN1cnJlbnQgI1dlYktpdENhY2hlTW9kZWwKLSAq
Ci0gKiBTaW5jZTogMS4xLjE4Ci0gKi8KLVdlYktpdENhY2hlTW9kZWwgd2Via2l0X2dldF9jYWNo
ZV9tb2RlbCgpCi17Ci0gICAgd2Via2l0X2luaXQoKTsKLSAgICByZXR1cm4gY2FjaGVNb2RlbDsK
LX0KLQotLyoqCi0gKiB3ZWJraXRfZ2V0X3dlYl9wbHVnaW5fZGF0YWJhc2U6Ci0gKgotICogUmV0
dXJucyB0aGUgY3VycmVudCAjV2ViS2l0V2ViUGx1Z2luRGF0YWJhc2Ugd2l0aCBpbmZvcm1hdGlv
biBhYm91dAotICogYWxsIHRoZSBwbHVnaW5zIFdlYktpdCBrbm93cyBhYm91dCBpbiB0aGlzIGlu
c3RhbmNlLgotICoKLSAqIFJldHVybiB2YWx1ZTogKHRyYW5zZmVyIG5vbmUpOiB0aGUgY3VycmVu
dCAjV2ViS2l0V2ViUGx1Z2luRGF0YWJhc2UKLSAqCi0gKiBTaW5jZTogMS4zLjgKLSAqLwotV2Vi
S2l0V2ViUGx1Z2luRGF0YWJhc2UqIHdlYmtpdF9nZXRfd2ViX3BsdWdpbl9kYXRhYmFzZSgpCi17
Ci0gICAgc3RhdGljIFdlYktpdFdlYlBsdWdpbkRhdGFiYXNlKiBkYXRhYmFzZSA9IDA7Ci0KLSAg
ICB3ZWJraXRfaW5pdCgpOwotCi0gICAgaWYgKCFkYXRhYmFzZSkKLSAgICAgICAgZGF0YWJhc2Ug
PSB3ZWJraXRfd2ViX3BsdWdpbl9kYXRhYmFzZV9uZXcoKTsKLQotICAgIHJldHVybiBkYXRhYmFz
ZTsKLX0KLQogR3RrTWVudSogd2Via2l0X3dlYl92aWV3X2dldF9jb250ZXh0X21lbnUoV2ViS2l0
V2ViVmlldyogd2ViVmlldykKIHsKICAgICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfSVNf
V0VCX1ZJRVcod2ViVmlldyksIDApOwpkaWZmIC0tZ2l0IGEvV2ViS2l0L2d0ay93ZWJraXQvd2Vi
a2l0d2Vidmlldy5oIGIvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vidmlldy5oCmluZGV4IDlh
YmZlZjYuLjE4MzhiZmUgMTAwNjQ0Ci0tLSBhL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnZp
ZXcuaAorKysgYi9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3LmgKQEAgLTUwLDI0ICs1
MCw2IEBAIHR5cGVkZWYgZW51bSB7CiAgICAgV0VCS0lUX05BVklHQVRJT05fUkVTUE9OU0VfRE9X
TkxPQUQKIH0gV2ViS2l0TmF2aWdhdGlvblJlc3BvbnNlOwogCi0vKiAgCi0gKiBXZWJLaXRDYWNo
ZU1vZGVsOgotICogQFdFQktJVF9DQUNIRV9NT0RFTF9ERUZBVUxUOiBUaGUgZGVmYXVsdCBjYWNo
ZSBtb2RlbC4gVGhpcyBpcwotICogICBXRUJLSVRfQ0FDSEVfTU9ERUxfV0VCX0JST1dTRVIuCi0g
KiBAV0VCS0lUX0NBQ0hFX01PREVMX0RPQ1VNRU5UX1ZJRVdFUjogRGlzYWJsZSB0aGUgY2FjaGUg
Y29tcGxldGVseSwgd2hpY2ggCi0gKiAgIHN1YnN0YW50aWFsbHkgcmVkdWNlcyBtZW1vcnkgdXNh
Z2UuIFVzZWZ1bCBmb3IgYXBwbGljYXRpb25zIHRoYXQgb25seQotICogICBhY2Nlc3MgbG9jYWwg
ZmlsZXMuCi0gKiBAV0VCS0lUX0NBQ0hFX01PREVMX1dFQl9CUk9XU0VSOiBJbXByb3ZlIGRvY3Vt
ZW50IGxvYWQgc3BlZWQgc3Vic3RhbnRpYWxseQotICogICBieSBjYWNoaW5nIHByZXZpb3VzbHkg
dmlld2VkIGNvbnRlbnQuCi0gKiAKLSAqIEVudW0gdmFsdWVzIHVzZWQgZm9yIGRldGVybWluaW5n
IHRoZSB3ZWJ2aWV3IGNhY2hlIG1vZGVsLgotICovCi10eXBlZGVmIGVudW0gewotICAgIFdFQktJ
VF9DQUNIRV9NT0RFTF9ERUZBVUxULAotICAgIFdFQktJVF9DQUNIRV9NT0RFTF9ET0NVTUVOVF9W
SUVXRVIsCi0gICAgV0VCS0lUX0NBQ0hFX01PREVMX1dFQl9CUk9XU0VSCi19IFdlYktpdENhY2hl
TW9kZWw7Ci0KIHR5cGVkZWYgZW51bQogewogICAgIFdFQktJVF9XRUJfVklFV19UQVJHRVRfSU5G
T19IVE1MLApAQCAtMzYxLDEyICszNDMsNiBAQCBXRUJLSVRfQVBJIHZvaWQKIHdlYmtpdF93ZWJf
dmlld19zZXRfZnVsbF9jb250ZW50X3pvb20gICAgICAgICAgIChXZWJLaXRXZWJWaWV3ICAgICAg
ICAqd2ViVmlldywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBnYm9vbGVhbiAgICAgICAgICAgICAgZnVsbF9jb250ZW50X3pvb20pOwogCi1XRUJLSVRf
QVBJIFNvdXBTZXNzaW9uKgotd2Via2l0X2dldF9kZWZhdWx0X3Nlc3Npb24gICAgICAgICAgICAg
ICAgICAgICAgKHZvaWQpOwotCi1XRUJLSVRfQVBJIFdlYktpdFdlYlBsdWdpbkRhdGFiYXNlICoK
LXdlYmtpdF9nZXRfd2ViX3BsdWdpbl9kYXRhYmFzZSAgICAgICAgICAgICAgICAgICh2b2lkKTsK
LQogV0VCS0lUX0FQSSBjb25zdCBnY2hhcioKIHdlYmtpdF93ZWJfdmlld19nZXRfZW5jb2Rpbmcg
ICAgICAgICAgICAgICAgICAgIChXZWJLaXRXZWJWaWV3ICAgICAgICAqIHdlYlZpZXcpOwogCkBA
IC00MjEsMTIgKzM5Nyw2IEBAIHdlYmtpdF93ZWJfdmlld19nZXRfaGl0X3Rlc3RfcmVzdWx0ICAg
ICAgICAgICAgIChXZWJLaXRXZWJWaWV3ICAgICAgICAqd2ViVmlldywKIFdFQktJVF9BUEkgR19D
T05TVF9SRVRVUk4gZ2NoYXIgKgogd2Via2l0X3dlYl92aWV3X2dldF9pY29uX3VyaSAgICAgICAg
ICAgICAgICAgICAgKFdlYktpdFdlYlZpZXcgICAgICAgICp3ZWJWaWV3KTsKIAotV0VCS0lUX0FQ
SSB2b2lkCi13ZWJraXRfc2V0X2NhY2hlX21vZGVsICAgICAgICAgICAgICAgICAgICAgICAgICAo
V2ViS2l0Q2FjaGVNb2RlbCAgICAgY2FjaGVfbW9kZWwpOwotCi1XRUJLSVRfQVBJIFdlYktpdENh
Y2hlTW9kZWwKLXdlYmtpdF9nZXRfY2FjaGVfbW9kZWwgICAgICAgICAgICAgICAgICAgICAgICAg
ICh2b2lkKTsKLQogV0VCS0lUX0FQSSBXZWJLaXRET01Eb2N1bWVudCAqCiB3ZWJraXRfd2ViX3Zp
ZXdfZ2V0X2RvbV9kb2N1bWVudCAgICAgICAgICAgICAgICAoV2ViS2l0V2ViVmlldyAgICAgICAg
KndlYlZpZXcpOwogCmRpZmYgLS1naXQgYS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ3aW5k
b3dmZWF0dXJlcy5jcHAgYi9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ3aW5kb3dmZWF0dXJl
cy5jcHAKaW5kZXggZGRjNjU3ZC4uZDhiOWY2ZSAxMDA2NDQKLS0tIGEvV2ViS2l0L2d0ay93ZWJr
aXQvd2Via2l0d2Vid2luZG93ZmVhdHVyZXMuY3BwCisrKyBiL1dlYktpdC9ndGsvd2Via2l0L3dl
YmtpdHdlYndpbmRvd2ZlYXR1cmVzLmNwcApAQCAtMTksMTAgKzE5LDExIEBACiAgKi8KIAogI2lu
Y2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIndlYmtpdHdlYndpbmRvd2ZlYXR1cmVzLmgiCiAK
ICNpbmNsdWRlICJXaW5kb3dGZWF0dXJlcy5oIgotI2luY2x1ZGUgIndlYmtpdHdlYndpbmRvd2Zl
YXR1cmVzLmgiCi0jaW5jbHVkZSAid2Via2l0cHJpdmF0ZS5oIgorI2luY2x1ZGUgIndlYmtpdGdl
bmVyYWxwcml2YXRlLmgiCisjaW5jbHVkZSAid2Via2l0d2Vid2luZG93ZmVhdHVyZXNwcml2YXRl
LmgiCiAKIC8qKgogICogU0VDVElPTjp3ZWJraXR3ZWJ3aW5kb3dmZWF0dXJlcwpAQCAtMzc4LDM1
ICszNzksNiBAQCBXZWJLaXRXZWJXaW5kb3dGZWF0dXJlcyogd2Via2l0X3dlYl93aW5kb3dfZmVh
dHVyZXNfbmV3KCkKICAgICByZXR1cm4gV0VCS0lUX1dFQl9XSU5ET1dfRkVBVFVSRVMoZ19vYmpl
Y3RfbmV3KFdFQktJVF9UWVBFX1dFQl9XSU5ET1dfRkVBVFVSRVMsIE5VTEwpKTsKIH0KIAotLy8g
Zm9yIGludGVybmFsIHVzZSBvbmx5Ci1XZWJLaXRXZWJXaW5kb3dGZWF0dXJlcyogd2Via2l0X3dl
Yl93aW5kb3dfZmVhdHVyZXNfbmV3X2Zyb21fY29yZV9mZWF0dXJlcyhjb25zdCBXZWJDb3JlOjpX
aW5kb3dGZWF0dXJlcyYgZmVhdHVyZXMpCi17Ci0gICAgV2ViS2l0V2ViV2luZG93RmVhdHVyZXMg
KndlYldpbmRvd0ZlYXR1cmVzID0gd2Via2l0X3dlYl93aW5kb3dfZmVhdHVyZXNfbmV3KCk7Ci0K
LSAgICBpZihmZWF0dXJlcy54U2V0KQotICAgICAgICBnX29iamVjdF9zZXQod2ViV2luZG93RmVh
dHVyZXMsICJ4Iiwgc3RhdGljX2Nhc3Q8aW50PihmZWF0dXJlcy54KSwgTlVMTCk7Ci0KLSAgICBp
ZihmZWF0dXJlcy55U2V0KQotICAgICAgICBnX29iamVjdF9zZXQod2ViV2luZG93RmVhdHVyZXMs
ICJ5Iiwgc3RhdGljX2Nhc3Q8aW50PihmZWF0dXJlcy55KSwgTlVMTCk7Ci0KLSAgICBpZihmZWF0
dXJlcy53aWR0aFNldCkKLSAgICAgICAgZ19vYmplY3Rfc2V0KHdlYldpbmRvd0ZlYXR1cmVzLCAi
d2lkdGgiLCBzdGF0aWNfY2FzdDxpbnQ+KGZlYXR1cmVzLndpZHRoKSwgTlVMTCk7Ci0KLSAgICBp
ZihmZWF0dXJlcy5oZWlnaHRTZXQpCi0gICAgICAgIGdfb2JqZWN0X3NldCh3ZWJXaW5kb3dGZWF0
dXJlcywgImhlaWdodCIsIHN0YXRpY19jYXN0PGludD4oZmVhdHVyZXMuaGVpZ2h0KSwgTlVMTCk7
Ci0KLSAgICBnX29iamVjdF9zZXQod2ViV2luZG93RmVhdHVyZXMsCi0gICAgICAgICAgICAgICAg
ICJ0b29sYmFyLXZpc2libGUiLCBmZWF0dXJlcy50b29sQmFyVmlzaWJsZSwKLSAgICAgICAgICAg
ICAgICAgInN0YXR1c2Jhci12aXNpYmxlIiwgZmVhdHVyZXMuc3RhdHVzQmFyVmlzaWJsZSwKLSAg
ICAgICAgICAgICAgICAgInNjcm9sbGJhci12aXNpYmxlIiwgZmVhdHVyZXMuc2Nyb2xsYmFyc1Zp
c2libGUsCi0gICAgICAgICAgICAgICAgICJtZW51YmFyLXZpc2libGUiLCBmZWF0dXJlcy5tZW51
QmFyVmlzaWJsZSwKLSAgICAgICAgICAgICAgICAgImxvY2F0aW9uYmFyLXZpc2libGUiLCBmZWF0
dXJlcy5sb2NhdGlvbkJhclZpc2libGUsCi0gICAgICAgICAgICAgICAgICJmdWxsc2NyZWVuIiwg
ZmVhdHVyZXMuZnVsbHNjcmVlbiwKLSAgICAgICAgICAgICAgICAgTlVMTCk7Ci0KLSAgICByZXR1
cm4gd2ViV2luZG93RmVhdHVyZXM7Ci19Ci0KIC8qKgogICogd2Via2l0X3dlYl93aW5kb3dfZmVh
dHVyZXNfZXF1YWw6CiAgKiBAZmVhdHVyZXMxOiBhICNXZWJLaXRXZWJXaW5kb3dGZWF0dXJlcyBp
bnN0YW5jZQpAQCAtNDQzLDMgKzQxNSwzNSBAQCBnYm9vbGVhbiB3ZWJraXRfd2ViX3dpbmRvd19m
ZWF0dXJlc19lcXVhbChXZWJLaXRXZWJXaW5kb3dGZWF0dXJlcyogZmVhdHVyZXMxLCBXZQogICAg
ICAgICByZXR1cm4gVFJVRTsKICAgICByZXR1cm4gRkFMU0U7CiB9CisKK25hbWVzcGFjZSBXZWJL
aXQgeworCitXZWJLaXRXZWJXaW5kb3dGZWF0dXJlcyoga2l0TmV3KGNvbnN0IFdlYkNvcmU6Oldp
bmRvd0ZlYXR1cmVzJiBmZWF0dXJlcykKK3sKKyAgICBXZWJLaXRXZWJXaW5kb3dGZWF0dXJlcyAq
d2ViV2luZG93RmVhdHVyZXMgPSB3ZWJraXRfd2ViX3dpbmRvd19mZWF0dXJlc19uZXcoKTsKKwor
ICAgIGlmKGZlYXR1cmVzLnhTZXQpCisgICAgICAgIGdfb2JqZWN0X3NldCh3ZWJXaW5kb3dGZWF0
dXJlcywgIngiLCBzdGF0aWNfY2FzdDxpbnQ+KGZlYXR1cmVzLngpLCBOVUxMKTsKKworICAgIGlm
KGZlYXR1cmVzLnlTZXQpCisgICAgICAgIGdfb2JqZWN0X3NldCh3ZWJXaW5kb3dGZWF0dXJlcywg
InkiLCBzdGF0aWNfY2FzdDxpbnQ+KGZlYXR1cmVzLnkpLCBOVUxMKTsKKworICAgIGlmKGZlYXR1
cmVzLndpZHRoU2V0KQorICAgICAgICBnX29iamVjdF9zZXQod2ViV2luZG93RmVhdHVyZXMsICJ3
aWR0aCIsIHN0YXRpY19jYXN0PGludD4oZmVhdHVyZXMud2lkdGgpLCBOVUxMKTsKKworICAgIGlm
KGZlYXR1cmVzLmhlaWdodFNldCkKKyAgICAgICAgZ19vYmplY3Rfc2V0KHdlYldpbmRvd0ZlYXR1
cmVzLCAiaGVpZ2h0Iiwgc3RhdGljX2Nhc3Q8aW50PihmZWF0dXJlcy5oZWlnaHQpLCBOVUxMKTsK
KworICAgIGdfb2JqZWN0X3NldCh3ZWJXaW5kb3dGZWF0dXJlcywKKyAgICAgICAgICAgICAgICAg
InRvb2xiYXItdmlzaWJsZSIsIGZlYXR1cmVzLnRvb2xCYXJWaXNpYmxlLAorICAgICAgICAgICAg
ICAgICAic3RhdHVzYmFyLXZpc2libGUiLCBmZWF0dXJlcy5zdGF0dXNCYXJWaXNpYmxlLAorICAg
ICAgICAgICAgICAgICAic2Nyb2xsYmFyLXZpc2libGUiLCBmZWF0dXJlcy5zY3JvbGxiYXJzVmlz
aWJsZSwKKyAgICAgICAgICAgICAgICAgIm1lbnViYXItdmlzaWJsZSIsIGZlYXR1cmVzLm1lbnVC
YXJWaXNpYmxlLAorICAgICAgICAgICAgICAgICAibG9jYXRpb25iYXItdmlzaWJsZSIsIGZlYXR1
cmVzLmxvY2F0aW9uQmFyVmlzaWJsZSwKKyAgICAgICAgICAgICAgICAgImZ1bGxzY3JlZW4iLCBm
ZWF0dXJlcy5mdWxsc2NyZWVuLAorICAgICAgICAgICAgICAgICBOVUxMKTsKKworICAgIHJldHVy
biB3ZWJXaW5kb3dGZWF0dXJlczsKK30KKworfQotLSAKMS43LjIuMwoK
</data>

          </attachment>
      

    </bug>

</bugzilla>