<?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>83681</bug_id>
          
          <creation_ts>2012-04-11 01:59:07 -0700</creation_ts>
          <short_desc>[GTK] Add WebKitWebPage::send-request signal to WebKit2 GTK+ API</short_desc>
          <delta_ts>2013-04-18 09:11:09 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit2</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Linux</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>
          <dependson>110614</dependson>
          <blocked>112160</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Carlos Garcia Campos">cgarcia</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>andersca</cc>
    
    <cc>benjamin</cc>
    
    <cc>gustavo</cc>
    
    <cc>mrobinson</cc>
    
    <cc>pnormand</cc>
    
    <cc>rego</cc>
    
    <cc>sasha1024</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>600144</commentid>
    <comment_count>0</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2012-04-11 01:59:07 -0700</bug_when>
    <thetext>To allow modifying the uri request of a resource before it&apos;s sent to the server or even cancel the load of a resource.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>600155</commentid>
    <comment_count>1</comment_count>
      <attachid>136648</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2012-04-11 02:27:46 -0700</bug_when>
    <thetext>Created attachment 136648
Patch

willSendRequestForFrame is only available in the injected bundle API, so this patch introduces injected bundle support in WebKit2 GTK+ API.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>600159</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-04-11 02:30:39 -0700</bug_when>
    <thetext>Thanks for the patch. If this patch contains new public API please make sure it follows the guidelines for new WebKit2 GTK+ API. See http://trac.webkit.org/wiki/WebKitGTK/AddingNewWebKit2API</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>600163</commentid>
    <comment_count>3</comment_count>
      <attachid>136648</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2012-04-11 02:39:23 -0700</bug_when>
    <thetext>Comment on attachment 136648
Patch

Attachment 136648 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/12379970</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>600179</commentid>
    <comment_count>4</comment_count>
      <attachid>136652</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2012-04-11 03:20:18 -0700</bug_when>
    <thetext>Created attachment 136652
Updated patch to fix the build

Make gtk-doc ignore files in WebKitInjectedBundle dir since it doesn&apos;t contain public API.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>630992</commentid>
    <comment_count>5</comment_count>
      <attachid>136652</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2012-05-22 17:46:49 -0700</bug_when>
    <thetext>Comment on attachment 136652
Updated patch to fix the build

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

This patch seems fine. Before we go too far down this path though, I think we should ensure that there is not an easier way to do this than the injected bundle. We have added custom IPC messages in the past, so why is it not possible in this case?

I have just a few small comments otherwise.

&gt; Source/WebKit2/UIProcess/API/gtk/WebKitInjectedBundle/GNUmakefile.am:24
&gt; +webbundledir = $(libdir)/webkit2gtk-3.0/$(WEBKITGTK_API_VERSION)/webbundle
&gt; +webbundle_LTLIBRARIES = libwebkit2gtkwebbundle.la
&gt; +
&gt; +libwebkit2gtkwebbundle_la_SOURCES = \
&gt; +	Source/WebKit2/UIProcess/API/gtk/WebKitInjectedBundle/WebKitInjectedBundle.cpp \
&gt; +	Source/WebKit2/UIProcess/API/gtk/WebKitInjectedBundle/WebKitInjectedBundle.h \
&gt; +	Source/WebKit2/UIProcess/API/gtk/WebKitInjectedBundle/WebKitInjectedBundleMain.cpp
&gt; +
&gt; +libwebkit2gtkwebbundle_la_LDFLAGS = \
&gt; +	$(no_undefined) \
&gt; +	-module \
&gt; +	-avoid-version
&gt; +
&gt; +libwebkit2gtkwebbundle_la_CPPFLAGS = \
&gt; +	-fno-strict-aliasing \
&gt; +	-I$(top_builddir)/DerivedSources/InjectedBundle \
&gt; +	-I$(top_builddir)/DerivedSources/WebKit2/include \
&gt; +	$(global_cppflags) \
&gt; +	$(javascriptcore_cppflags) \
&gt; +	$(GLIB_CFLAGS)
&gt; +
&gt; +endif # ENABLE_WEBKIT2

webbundle is a bit ambiguous. I think I&apos;d prefer libwebkit2gtkinjectedbundle.

&gt; Source/WebKit2/UIProcess/API/gtk/WebKitURIRequest.cpp:151
&gt; + * Set the URI of @request

I think this could be expanded quite a bit. It makes sense to explain here at what point this can change the request, for instance &quot;only when handling the send-request&quot; signal.

&gt; Source/WebKit2/UIProcess/API/gtk/WebKitWebContext.cpp:289
&gt; +    if (WKStringIsEqualToUTF8CString(messageName, &quot;WebKitWebView&quot;)) {

I think it might be better here just to do:

ASSERT(WKStringIsEqualToUTF8CString(messageName, &quot;WebKitWebView&quot;))

and avoid the conditional.

&gt; Source/WebKit2/UIProcess/API/gtk/WebKitWebView.cpp:971
&gt; +    if (WKStringIsEqualToUTF8CString(messageName, &quot;WillSendRequestForFrame&quot;)) {

Again until we have another message, maybe just add an ASSERT and avoid the conditional.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>631280</commentid>
    <comment_count>6</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2012-05-22 23:41:36 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; (From update of attachment 136652 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=136652&amp;action=review
&gt; 
&gt; This patch seems fine. Before we go too far down this path though, I think we should ensure that there is not an easier way to do this than the injected bundle. We have added custom IPC messages in the past, so why is it not possible in this case?

We have added IPC messages for things that are specific to our port, when there isn&apos;t even injected bundle api for that, this is a different case. There&apos;s injected bundle api for this.

&gt; I have just a few small comments otherwise.
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/API/gtk/WebKitInjectedBundle/GNUmakefile.am:24
&gt; &gt; +webbundledir = $(libdir)/webkit2gtk-3.0/$(WEBKITGTK_API_VERSION)/webbundle
&gt; &gt; +webbundle_LTLIBRARIES = libwebkit2gtkwebbundle.la
&gt; &gt; +
&gt; &gt; +libwebkit2gtkwebbundle_la_SOURCES = \
&gt; &gt; +	Source/WebKit2/UIProcess/API/gtk/WebKitInjectedBundle/WebKitInjectedBundle.cpp \
&gt; &gt; +	Source/WebKit2/UIProcess/API/gtk/WebKitInjectedBundle/WebKitInjectedBundle.h \
&gt; &gt; +	Source/WebKit2/UIProcess/API/gtk/WebKitInjectedBundle/WebKitInjectedBundleMain.cpp
&gt; &gt; +
&gt; &gt; +libwebkit2gtkwebbundle_la_LDFLAGS = \
&gt; &gt; +	$(no_undefined) \
&gt; &gt; +	-module \
&gt; &gt; +	-avoid-version
&gt; &gt; +
&gt; &gt; +libwebkit2gtkwebbundle_la_CPPFLAGS = \
&gt; &gt; +	-fno-strict-aliasing \
&gt; &gt; +	-I$(top_builddir)/DerivedSources/InjectedBundle \
&gt; &gt; +	-I$(top_builddir)/DerivedSources/WebKit2/include \
&gt; &gt; +	$(global_cppflags) \
&gt; &gt; +	$(javascriptcore_cppflags) \
&gt; &gt; +	$(GLIB_CFLAGS)
&gt; &gt; +
&gt; &gt; +endif # ENABLE_WEBKIT2
&gt; 
&gt; webbundle is a bit ambiguous. I think I&apos;d prefer libwebkit2gtkinjectedbundle.

Ok.

&gt; &gt; Source/WebKit2/UIProcess/API/gtk/WebKitURIRequest.cpp:151
&gt; &gt; + * Set the URI of @request
&gt; 
&gt; I think this could be expanded quite a bit. It makes sense to explain here at what point this can change the request, for instance &quot;only when handling the send-request&quot; signal.

Ok.

&gt; &gt; Source/WebKit2/UIProcess/API/gtk/WebKitWebContext.cpp:289
&gt; &gt; +    if (WKStringIsEqualToUTF8CString(messageName, &quot;WebKitWebView&quot;)) {
&gt; 
&gt; I think it might be better here just to do:
&gt; 
&gt; ASSERT(WKStringIsEqualToUTF8CString(messageName, &quot;WebKitWebView&quot;))
&gt; 
&gt; and avoid the conditional.

This is WebContext, it might receive messages for other objects in the future.

&gt; &gt; Source/WebKit2/UIProcess/API/gtk/WebKitWebView.cpp:971
&gt; &gt; +    if (WKStringIsEqualToUTF8CString(messageName, &quot;WillSendRequestForFrame&quot;)) {
&gt; 
&gt; Again until we have another message, maybe just add an ASSERT and avoid the conditional.

Ah, until we have another message, I still think it&apos;s confusing, it might me think the context can only receive messages from the view.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>631691</commentid>
    <comment_count>7</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2012-05-23 08:35:28 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; (In reply to comment #5)
&gt; &gt; (From update of attachment 136652 [details] [details])
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=136652&amp;action=review
&gt; &gt; 
&gt; &gt; This patch seems fine. Before we go too far down this path though, I think we should ensure that there is not an easier way to do this than the injected bundle. We have added custom IPC messages in the past, so why is it not possible in this case?
&gt; 
&gt; We have added IPC messages for things that are specific to our port, when there isn&apos;t even injected bundle api for that, this is a different case. There&apos;s injected bundle api for this.

But as you explained in your email to the list, creating an injected bundle for the API  has the disadvantage of disallowing another injected bundle. If creating an IPC message for this API is an option, I think it would make the patch a lot simpler. If creating an IPC for this API isn&apos;t an option, the injected bundle seems like our only recourse.

It&apos;d be interesting to hear if the Mac WebKit2 developers have an opinion on this issue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>633032</commentid>
    <comment_count>8</comment_count>
    <who name="">sasha1024</who>
    <bug_when>2012-05-24 12:03:53 -0700</bug_when>
    <thetext>Sorry for possibly stupid question, but what is the difference between this signal and resource-load-started signal in WebKitWebView?

Both of them seem to provide WebKitURIRequest parameter, thus it seems that I can change URI in both of them. (Or resource-load-started signal is emitted too late for that?)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>633037</commentid>
    <comment_count>9</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2012-05-24 12:08:37 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; Sorry for possibly stupid question, but what is the difference between this signal and resource-load-started signal in WebKitWebView?
&gt; 
&gt; Both of them seem to provide WebKitURIRequest parameter, thus it seems that I can change URI in both of them. (Or resource-load-started signal is emitted too late for that?)

In resource-load-started the request argument is supposed to be read-only, you can&apos;t change the request, or at least it won&apos;t have any effect.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>844047</commentid>
    <comment_count>10</comment_count>
      <attachid>190719</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2013-02-28 06:57:08 -0800</bug_when>
    <thetext>Created attachment 190719
Updated patch to move the API to the injected bundle

Expose the signal in WebKitWebPage so that web process extensions can use it without any IPC message involved. This should apply on top of patch attached to bug #110614</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>846671</commentid>
    <comment_count>11</comment_count>
      <attachid>190719</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2013-03-04 11:36:56 -0800</bug_when>
    <thetext>Comment on attachment 190719
Updated patch to move the API to the injected bundle

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

Looks good to me. :)

&gt; Source/WebKit2/UIProcess/API/gtk/WebKitURIRequest.cpp:133
&gt; + * Set the URI of @request

I still think it would be good here to say explicitly that this will only affect the request in the send-request signal handler.

&gt; Source/WebKit2/UIProcess/API/gtk/tests/TestResources.cpp:625
&gt; +    events = test-&gt;m_loadEvents;

I don&apos;t think you need to set this reference again actually.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>847443</commentid>
    <comment_count>12</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2013-03-05 01:43:42 -0800</bug_when>
    <thetext>(In reply to comment #11)
&gt; (From update of attachment 190719 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=190719&amp;action=review
&gt; 
&gt; Looks good to me. :)
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/API/gtk/WebKitURIRequest.cpp:133
&gt; &gt; + * Set the URI of @request
&gt; 
&gt; I still think it would be good here to say explicitly that this will only affect the request in the send-request signal handler.

Not necessarily, you could change the uri to reuse a request object to be loaded with webkit_web_view_load_request. We could say that this won&apos;t have any effect for a request already sent to the server, for example, or something like that, but I think it&apos;s pretty obvious.

&gt; &gt; Source/WebKit2/UIProcess/API/gtk/tests/TestResources.cpp:625
&gt; &gt; +    events = test-&gt;m_loadEvents;
&gt; 
&gt; I don&apos;t think you need to set this reference again actually.

You are right</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>849812</commentid>
    <comment_count>13</comment_count>
    <who name="Manuel Rego Casasnovas">rego</who>
    <bug_when>2013-03-07 00:08:38 -0800</bug_when>
    <thetext>*** Bug 111620 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>855115</commentid>
    <comment_count>14</comment_count>
      <attachid>193102</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2013-03-14 03:37:06 -0700</bug_when>
    <thetext>Created attachment 193102
Updated patch

New patch addressing review comments and fixing a build error due to the shared headers. See the changelog for more details.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>855165</commentid>
    <comment_count>15</comment_count>
      <attachid>193102</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2013-03-14 06:45:53 -0700</bug_when>
    <thetext>Comment on attachment 193102
Updated patch

The header changes look good to me, I&apos;d name the new header WebKitForwardDeclarations to make it more obvious, though</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>855234</commentid>
    <comment_count>16</comment_count>
      <attachid>193133</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2013-03-14 09:03:06 -0700</bug_when>
    <thetext>Created attachment 193133
Updated patch

Renames WebKitForward.h as WEbKirForwardDeclarations.h as suggested by Gustavo.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>875481</commentid>
    <comment_count>17</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2013-04-15 00:39:54 -0700</bug_when>
    <thetext>Bug #110614 is now fixed, so this could land. Ping owners.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>877893</commentid>
    <comment_count>18</comment_count>
      <attachid>198735</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2013-04-18 07:57:00 -0700</bug_when>
    <thetext>Created attachment 198735
Rebased to current git master</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>877914</commentid>
    <comment_count>19</comment_count>
      <attachid>198735</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2013-04-18 08:52:27 -0700</bug_when>
    <thetext>Comment on attachment 198735
Rebased to current git master

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

&gt; Source/WebKit2/WebProcess/InjectedBundle/API/gtk/WebKitWebPage.cpp:140
&gt; +    WebURLRequest* newRequest = WebURLRequest::create(webkitURIRequestGetResourceRequest(request.get())).leakRef();

I think you should put this in a RefPtr instead if calling leakRef() here.

&gt; Source/WebKit2/WebProcess/InjectedBundle/API/gtk/WebKitWebPage.cpp:150
&gt; +    return toAPI(newRequest);

Then you can call release().leakRef() here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>877923</commentid>
    <comment_count>20</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2013-04-18 09:11:09 -0700</bug_when>
    <thetext>Committed r148679: &lt;http://trac.webkit.org/changeset/148679&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>136648</attachid>
            <date>2012-04-11 02:27:46 -0700</date>
            <delta_ts>2012-04-11 03:20:18 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>wk2-resource-send-request.diff</filename>
            <type>text/plain</type>
            <size>52466</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCBlYjNjZDUxLi4zYmM5MjYy
IDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAK
KzIwMTItMDQtMTEgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgor
CisgICAgICAgIFtHVEtdIEFkZCBXZWJLaXRXZWJSZXNvdXJjZTo6c2VuZC1yZXF1ZXN0IHNpZ25h
bCB0byBXZWJLaXQyIEdUSysgQVBJCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD04MzY4MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogR05VbWFrZWZpbGUuYW06IEluY2x1ZGUgV2ViS2l0SW5qZWN0ZWRCdW5k
bGUgTWFrZWZpbGUuCisKIDIwMTItMDQtMTAgIFlhZWwgQWhhcm9uICA8eWFlbC5haGFyb25Abm9r
aWEuY29tPgogCiAgICAgICAgIEluaXRpYWwgc3VwcG9ydCBmb3IgZml4ZWQgcG9zaXRpb24gZWxl
bWVudHMgaW4gUXQgV2ViS2l0MgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDliODBiODUuLmZkOWYyOWIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFu
Z2VMb2cKQEAgLTEsMyArMSw5NiBAQAorMjAxMi0wNC0xMSAgQ2FybG9zIEdhcmNpYSBDYW1wb3Mg
IDxjZ2FyY2lhQGlnYWxpYS5jb20+CisKKyAgICAgICAgW0dUS10gQWRkIFdlYktpdFdlYlJlc291
cmNlOjpzZW5kLXJlcXVlc3Qgc2lnbmFsIHRvIFdlYktpdDIgR1RLKyBBUEkKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTgzNjgxCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5hbTogQWRk
IG5ldyBmaWxlcyB0byBjb21waWxhdGlvbi4KKyAgICAgICAgKiBTaGFyZWQvVXNlck1lc3NhZ2VD
b2RlcnMuaDoKKyAgICAgICAgKFdlYktpdDo6VXNlck1lc3NhZ2VFbmNvZGVyOjpiYXNlRW5jb2Rl
KTogQWxsb3cgdG8gZW5jb2RlCisgICAgICAgIFdlYlVSTFJlc3BvbnNlIG9iamVjdHMgaW4gdXNl
ciBtZXNzYWdlcy4KKyAgICAgICAgKFdlYktpdDo6VXNlck1lc3NhZ2VEZWNvZGVyOjpiYXNlRGVj
b2RlKTogQWxsb3cgdG8gZGVjb2RlCisgICAgICAgIFdlYlVSTFJlc3BvbnNlIG9iamVjdHMgZnJv
bSB1c2VyIG1lc3NhZ2VzLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEluamVj
dGVkQnVuZGxlL0dOVW1ha2VmaWxlLmFtOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L2d0ay9XZWJLaXRJbmplY3RlZEJ1bmRsZS9XZWJLaXRJbmplY3RlZEJ1bmRsZS5jcHA6IEFkZGVk
LgorICAgICAgICAoV2ViS2l0SW5qZWN0ZWRCdW5kbGU6OldlYktpdEluamVjdGVkQnVuZGxlOjpz
aGFyZWQpOiBSZXR1cm4gdGhlCisgICAgICAgIGdsb2JhbCBXZWJLaXRJbmplY3RlZEJ1bmRsZS4K
KyAgICAgICAgKFdlYktpdEluamVjdGVkQnVuZGxlOjpXZWJLaXRJbmplY3RlZEJ1bmRsZTo6V2Vi
S2l0SW5qZWN0ZWRCdW5kbGUpOgorICAgICAgICAoV2ViS2l0SW5qZWN0ZWRCdW5kbGU6OldlYktp
dEluamVjdGVkQnVuZGxlOjpkaWRDcmVhdGVQYWdlKToKKyAgICAgICAgSW5pdGlhbGl6ZSBXS0J1
bmRsZVBhZ2VSZXNvdXJjZUxvYWRDbGllbnQgZm9yIHRoZSBuZXcgcGFnZS4KKyAgICAgICAgKFdl
YktpdEluamVjdGVkQnVuZGxlOjpXZWJLaXRJbmplY3RlZEJ1bmRsZTo6aW5pdGlhbGl6ZSk6Cisg
ICAgICAgIEluaXRpYWxpemUgV0tCdW5kbGVDbGllbnQuCisgICAgICAgIChXZWJLaXRJbmplY3Rl
ZEJ1bmRsZTo6V2ViS2l0SW5qZWN0ZWRCdW5kbGU6OndpbGxTZW5kUmVxdWVzdEZvckZyYW1lKToK
KyAgICAgICAgU2VuZCBhIG1lc3NhZ2UgdG8gdGhlIGJ1bmRsZSBjbGllbnQgdG8gbm90aWZ5IHRo
YXQgYSBVUkxSZXF1ZXN0IGlzCisgICAgICAgIGFib3V0IHRvIGJlIHNlbnQgZm9yIGEgcmVzb3Vy
Y2UuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0SW5qZWN0ZWRCdW5kbGUvV2Vi
S2l0SW5qZWN0ZWRCdW5kbGUuaDogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsv
V2ViS2l0SW5qZWN0ZWRCdW5kbGUvV2ViS2l0SW5qZWN0ZWRCdW5kbGVNYWluLmNwcDoKKyAgICAg
ICAgKFdLQnVuZGxlSW5pdGlhbGl6ZSk6IEluamVjdGVkIGJ1bmRsZSBpbml0aWFsaXphdGlvbiBm
dW5jdGlvbi4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRJbmplY3RlZEJ1bmRs
ZUNsaWVudC5jcHA6IEFkZGVkLgorICAgICAgICAoZGlkUmVjZWl2ZU1lc3NhZ2VGcm9tSW5qZWN0
ZWRCdW5kbGUpOiBDYWxsIHdlYmtpdFdlYkNvbnRleHREaWRSZWNlaXZlTWVzc2FnZUZyb21Jbmpl
Y3RlZEJ1bmRsZSgpLgorICAgICAgICAoZGlkUmVjZWl2ZVN5bmNocm9ub3VzTWVzc2FnZUZyb21J
bmplY3RlZEJ1bmRsZSk6IERpdHRvLgorICAgICAgICAoYXR0YWNoSW5qZWN0ZWRCdW5kbGVDbGll
bnRUb0NvbnRleHQpOiBJbml0aWFsaXplIFdLQ29udGV4dEluamVjdGVkQnVuZGxlQ2xpZW50Lgor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEluamVjdGVkQnVuZGxlQ2xpZW50Lmg6
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VVJJUmVxdWVzdC5jcHA6CisgICAg
ICAgICh3ZWJraXRVUklSZXF1ZXN0U2V0UHJvcGVydHkpOiBVc2Ugd2Via2l0X3VyaV9yZXF1ZXN0
X3NldF91cmkoKSB0bworICAgICAgICBzZXQgdGhlIG5ldyBVUkkuCisgICAgICAgICh3ZWJraXRf
dXJpX3JlcXVlc3RfY2xhc3NfaW5pdCk6IE1ha2UgVVJJIHByb3BlcnR5IGNvbnN0cnVjdAorICAg
ICAgICBpbnN0ZWFkIG9mIGNvbnN0cnVjdC1vbmx5LCBzaW5jZSBpdCBjYW4gYmUgdXBkYXRlZCBv
bmNlCisgICAgICAgIGNvbnN0cnVjdGVkLiBJdCBzaG91bGQgbmV2ZXIgYmUgTlVMTCwgc28gc2V0
IGRlZmF1bHQgdmFsdWUgdG8KKyAgICAgICAgYWJvdXQ6YmxhbmsgaW5zdGFkIG9mIE5VTEw6Cisg
ICAgICAgICh3ZWJraXRVUklSZXF1ZXN0R2V0UmVzb3VyY2VSZXF1ZXN0KTogSGVscGVyIHByaXZh
dGUgZnVuY3Rpb24gdG8KKyAgICAgICAgZ2V0IGEgY29uc3QgcmVmZXJlbmNlIG9mIHRoZSBXZWJD
b3JlOjpSZXNvdXJjZVJlcXVlc3QuCisgICAgICAgICh3ZWJraXRfdXJpX3JlcXVlc3Rfc2V0X3Vy
aSk6IE5ldyBwdWJsaWMgbWV0aG9kIHRvIHNldCB0aGUgVVJJIG9mCisgICAgICAgIHRoZSBXZWJL
aXRVUklSZXF1ZXN0LgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVSSVJlcXVl
c3QuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVUklSZXF1ZXN0UHJpdmF0
ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYkNvbnRleHQuY3BwOgor
ICAgICAgICAoX1dlYktpdFdlYkNvbnRleHRQcml2YXRlKTogQWRkIGEgSGFzaE1hcCB0byBtYXAg
cGFnZSBJRHMgdG8KKyAgICAgICAgV2ViS2l0V2ViVmlld3MuCisgICAgICAgIChnZXRXZWJCdW5k
bGVEaXJlY3RvcnkpOiBIZWxwZXIgZnVuY3Rpb24gdG8gZ2V0IHRoZSB3ZWIgYnVuZGxlIGRpcmVj
dG9yeS4KKyAgICAgICAgKGdldFdlYkJ1bmRsZUZpbGVuYW1lKTogSGVscGVyIGZ1bmN0aW9uIHRv
IGdldCB0aGUgd2ViIGJ1bmRsZSBmdWxsIHBhdGguCisgICAgICAgIChjcmVhdGVEZWZhdWx0V2Vi
Q29udGV4dCk6IENyZWF0ZSB0aGUgV0tDb250ZXh0IHdpdGggYSBpbmplY3RlZAorICAgICAgICBi
dW5kbGUsIGFuZCBhdHRhY2ggdGhlIGluamVjdGVkIGJ1bmRsZSBjbGllbnQgdG8gdGhlIGNvbnRl
eHQuCisgICAgICAgICh3ZWJraXRXZWJDb250ZXh0Q3JlYXRlUGFnZUZvcldlYlZpZXcpOiBVc2UK
KyAgICAgICAgd2Via2l0V2ViVmlld0Jhc2VDcmVhdGVXZWJQYWdlKCkgdG8gY3JlYXRlIGFuZCBp
bml0aWFsaXplIGEgbmV3CisgICAgICAgIFdlYlBhZ2VQcm94eSBhbmQgbWFwIHRoZSBuZXdseSBj
cmVhdGVkIHBhZ2Ugd2l0aCB0aGUgZ2l2ZW4gV2ViS2l0V2ViVmlldy4KKyAgICAgICAgKHdlYmtp
dFdlYkNvbnRleHRXZWJWaWV3RmluYWxpemVkKTogUmVtb3ZlIHRoZSBnaXZlbiBXZWJLaXRXZWJW
aWV3CisgICAgICAgIGZyb20gdGhlIHZpZXdzIG1hcC4KKyAgICAgICAgKHdlYmtpdFdlYkNvbnRl
eHREaWRSZWNlaXZlTWVzc2FnZUZyb21JbmplY3RlZEJ1bmRsZSk6IENoZWNrCisgICAgICAgIHdo
ZXRoZXIgcmVjZWl2ZWQgbWVzc2FnZSBpcyBhIFdlYktpdFdlYlZpZXcgbWVzc2FnZSBhbmQgZm9y
d2FyZCB0aGUKKyAgICAgICAgc3VibWVzc2FnZSB0byB0aGUgV2ViS2l0V2ViVmlldyBhc3NvY2lh
dGVkIHRvIHRoZSBnaXZlbiBwYWdlLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktp
dFdlYkNvbnRleHRQcml2YXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0
V2ViUmVzb3VyY2UuY3BwOgorICAgICAgICAod2Via2l0X3dlYl9yZXNvdXJjZV9jbGFzc19pbml0
KTogQWRkCisgICAgICAgIFdlYktpdFdlYlJlc291cmNlOjpzZW5kLXJlcXVlc3Qgc2lnbmFsLgor
ICAgICAgICAod2Via2l0V2ViUmVzb3VyY2VTZW5kUmVxdWVzdCk6IEVtaXQKKyAgICAgICAgV2Vi
S2l0V2ViUmVzb3VyY2U6OnNlbmQtcmVxdWVzdCBzaWduYWwuCisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9ndGsvV2ViS2l0V2ViUmVzb3VyY2VQcml2YXRlLmg6CisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9ndGsvV2ViS2l0V2ViVmlldy5jcHA6CisgICAgICAgICh3ZWJraXRXZWJWaWV3Q29uc3Ry
dWN0ZWQpOiBVc2UKKyAgICAgICAgd2Via2l0V2ViQ29udGV4dENyZWF0ZVBhZ2VGb3JXZWJWaWV3
KCkgaW5zdGVhZCBvZgorICAgICAgICB3ZWJraXRXZWJWaWV3QmFzZUNyZWF0ZVdlYlBhZ2UoKSB0
byBjcmVhdGUgdGhlIFdlYlBhZ2VQcm94eSBmb3IKKyAgICAgICAgdGhlIHZpZXcuCisgICAgICAg
ICh3ZWJraXRXZWJWaWV3RmluYWxpemUpOiBOb3RpZnkgdGhlIHdlYiBjb250ZXh0IHRoYXQgdGhl
IHZpZXcgaXMKKyAgICAgICAgYmVpbmcgZmluYWxpemVkLgorICAgICAgICAod2Via2l0V2ViVmll
d0RpZFJlY2VpdmVNZXNzYWdlRnJvbUluamVjdGVkQnVuZGxlKTogQ2hlY2sgd2hldGhlcgorICAg
ICAgICB0aGUgbWVzc2FnZSByZWNlaXZlZCBpcyBXaWxsU2VuZFJlcXVlc3RGb3JGcmFtZSBhbmQg
Y2FsbAorICAgICAgICB3ZWJraXRXZWJSZXNvdXJjZVNlbmRSZXF1ZXN0KCkgaW4gdGhhdCBjYXNl
LCBzbyB0aGF0CisgICAgICAgIFdlYktpdFdlYlJlc291cmNlOjpzZW5kLXJlcXVlc3Qgd2lsbCBi
ZSBlbWl0dGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXdQcml2
YXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3RrLXNlY3Rp
b25zLnR4dDogQWRkCisgICAgICAgIHdlYmtpdF91cmlfcmVxdWVzdF9zZXRfdXJpLgorICAgICAg
ICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL3Rlc3RzL0dOVW1ha2VmaWxlLmFtOiBBZGQKKyAgICAgICAg
V0VCS0lUX1dFQl9CVU5ETEVfUEFUSCBtYWNybyB0byBjb21waWxhdGlvbi4KKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL2d0ay90ZXN0cy9UZXN0TWFpbi5jcHA6CisgICAgICAgIChtYWluKTogU2V0
IFdFQktJVF9XRUJfQlVORExFX1BBVEggZW52aXJvbm1lbnQgdmFyaWFibGUgc28gdGhhdAorICAg
ICAgICB0ZXN0cyB3aWxsIHVzZSB0aGUgbm90IGluc3RhbGxlZCB3ZWIgYnVuZGxlLgorICAgICAg
ICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL3Rlc3RzL1Rlc3RSZXNvdXJjZXMuY3BwOgorICAgICAgICAo
dGVzdFdlYlJlc291cmNlU2VuZFJlcXVlc3QpOgorICAgICAgICAoc2VydmVyQ2FsbGJhY2spOgor
ICAgICAgICAoYmVmb3JlQWxsKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay93ZWJraXQy
bWFyc2hhbC5saXN0OgorCiAyMDEyLTA0LTEwICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJj
aWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLiBGaXggbWFrZSBkaXN0Y2hlY2sg
aXNzdWVzLgpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmlu
ZGV4IGJjMTIyOWIuLmM2NmI1NjYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9U
b29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMi0wNC0xMSAgQ2FybG9zIEdhcmNp
YSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CisKKyAgICAgICAgW0dUS10gQWRkIFdlYktp
dFdlYlJlc291cmNlOjpzZW5kLXJlcXVlc3Qgc2lnbmFsIHRvIFdlYktpdDIgR1RLKyBBUEkKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTgzNjgxCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBNaW5pQnJvd3Nl
ci9ndGsvR05VbWFrZWZpbGUuYW06IEFkZCBXRUJLSVRfV0VCX0JVTkRMRV9QQVRIIG1hY3JvCisg
ICAgICAgIHRvIGNvbXBpbGF0aW9uLgorICAgICAgICAqIE1pbmlCcm93c2VyL2d0ay9tYWluLmM6
CisgICAgICAgIChtYWluKTogU2V0IFdFQktJVF9XRUJfQlVORExFX1BBVEggZW52aXJvbm1lbnQg
dmFyaWFibGUgc28gdGhhdAorICAgICAgICBNaW5pQnJvd3NlciB1c2VzIHRoZSBub3QgaW5zdGFs
bGVkIHdlYiBidW5kbGUuCisKIDIwMTItMDQtMTAgIEtlbnQgVGFtdXJhICA8dGtlbnRAY2hyb21p
dW0ub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQuIFVzaW5nIHRrZW50K3drYXBpQCBmb3IgQ2hy
b21pdW1QdWJsaWNBcGkgbm90aWZpY2F0aW9ucy4KZGlmZiAtLWdpdCBhL0dOVW1ha2VmaWxlLmFt
IGIvR05VbWFrZWZpbGUuYW0KaW5kZXggZDg3NTFlZC4uMTU2OGVkMyAxMDA2NDQKLS0tIGEvR05V
bWFrZWZpbGUuYW0KKysrIGIvR05VbWFrZWZpbGUuYW0KQEAgLTI0Niw2ICsyNDYsNyBAQCBpbmNs
dWRlIFNvdXJjZS9XZWJLaXQvZ3RrL3BvL0dOVW1ha2VmaWxlLmFtCiBpbmNsdWRlIFRvb2xzL0R1
bXBSZW5kZXJUcmVlL2d0ay9HTlVtYWtlZmlsZS5JbWFnZURpZmYuYW0KIAogaW5jbHVkZSBTb3Vy
Y2UvV2ViS2l0Mi9HTlVtYWtlZmlsZS5hbQoraW5jbHVkZSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL2d0ay9XZWJLaXRJbmplY3RlZEJ1bmRsZS9HTlVtYWtlZmlsZS5hbQogaW5jbHVkZSBT
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay90ZXN0cy9HTlVtYWtlZmlsZS5hbQogaW5j
bHVkZSBUb29scy9NaW5pQnJvd3Nlci9ndGsvR05VbWFrZWZpbGUuYW0KIGluY2x1ZGUgVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9HTlVtYWtlZmlsZS5hbQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvR05VbWFrZWZpbGUuYW0gYi9Tb3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmlsZS5hbQppbmRleCBi
M2I3M2YzLi4yZTJmMjY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmlsZS5h
bQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmlsZS5hbQpAQCAtNTY0LDYgKzU2NCw4IEBA
IHdlYmtpdDJfc291cmNlcyArPSBcCiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsv
V2ViS2l0SGl0VGVzdFJlc3VsdC5jcHAgXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Z3RrL1dlYktpdEhpdFRlc3RSZXN1bHQuaCBcCiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9ndGsvV2ViS2l0SGl0VGVzdFJlc3VsdFByaXZhdGUuaCBcCisJU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9ndGsvV2ViS2l0SW5qZWN0ZWRCdW5kbGVDbGllbnQuY3BwIFwKKwlTb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRJbmplY3RlZEJ1bmRsZUNsaWVudC5oIFwK
IAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRKYXZhc2NyaXB0UmVzdWx0
LmNwcCBcCiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0SmF2YXNjcmlw
dFJlc3VsdC5oIFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRKYXZh
c2NyaXB0UmVzdWx0UHJpdmF0ZS5oIFwKQEAgLTEwNjcsNyArMTA2OSw5IEBAIGxpYndlYmtpdDJn
dGtfQFdFQktJVEdUS19BUElfTUFKT1JfVkVSU0lPTkBfQFdFQktJVEdUS19BUElfTUlOT1JfVkVS
U0lPTkBfbGFfQ1BQCiAJLUkkKHRvcF9idWlsZGRpcikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9p
bmNsdWRlL0phdmFTY3JpcHRDb3JlIFwKIAktSSQodG9wX2J1aWxkZGlyKS9EZXJpdmVkU291cmNl
cy9XZWJLaXQyL2luY2x1ZGUvV2ViQ29yZSBcCiAJLUkkKHRvcF9idWlsZGRpcikvRGVyaXZlZFNv
dXJjZXMvV2ViS2l0Mi9pbmNsdWRlL1dlYktpdDIgXAorCS1ETElCRElSPVwiIiQobGliZGlyKSJc
IiBcCiAJLURMSUJFWEVDRElSPVwiIiQobGliZXhlY2RpcikiXCIgXAorCS1EV0VCS0lUR1RLX0FQ
SV9WRVJTSU9OPVwiIiQoV0VCS0lUR1RLX0FQSV9WRVJTSU9OKSJcIiBcCiAJLURXRUJLSVQyX0NP
TVBJTEFUSU9OIFwKIAkkKHdlYmNvcmVfY3BwZmxhZ3MpIFwKIAkkKHdlYmNvcmVndGtfY3BwZmxh
Z3MpIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Vc2VyTWVzc2FnZUNvZGVy
cy5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1VzZXJNZXNzYWdlQ29kZXJzLmgKaW5kZXggYWNl
NzJmZC4uYmY4MTk1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1VzZXJNZXNz
YWdlQ29kZXJzLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1VzZXJNZXNzYWdlQ29kZXJz
LmgKQEAgLTQ0LDYgKzQ0LDcgQEAKICNpbmNsdWRlICJXZWJTdHJpbmcuaCIKICNpbmNsdWRlICJX
ZWJVUkwuaCIKICNpbmNsdWRlICJXZWJVUkxSZXF1ZXN0LmgiCisjaW5jbHVkZSAiV2ViVVJMUmVz
cG9uc2UuaCIKICNpbmNsdWRlICJXZWJVc2VyQ29udGVudFVSTFBhdHRlcm4uaCIKIAogbmFtZXNw
YWNlIFdlYktpdCB7CkBAIC02Myw2ICs2NCw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogLy8gICAt
IFdlYlVJbnQ2NCAtPiBXZWJVSW50NjQKIC8vICAgLSBXZWJVUkwgLT4gV2ViVVJMCiAvLyAgIC0g
V2ViVVJMUmVxdWVzdCAtPiBXZWJVUkxSZXF1ZXN0CisvLyAgIC0gV2ViVVJMUmVzcG9uc2UgLT4g
V2ViVVJMUmVzcG9uc2UKIAogdGVtcGxhdGU8dHlwZW5hbWUgT3duZXI+CiBjbGFzcyBVc2VyTWVz
c2FnZUVuY29kZXIgewpAQCAtMTc3LDYgKzE3OSwxMSBAQCBwdWJsaWM6CiAgICAgICAgICAgICBl
bmNvZGVyLT5lbmNvZGUodXJsUmVxdWVzdE9iamVjdC0+cmVzb3VyY2VSZXF1ZXN0KCkpOwogICAg
ICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIH0KKyAgICAgICAgY2FzZSBBUElPYmplY3Q6
OlR5cGVVUkxSZXNwb25zZTogeworICAgICAgICAgICAgV2ViVVJMUmVzcG9uc2UqIHVybFJlc3Bv
bnNlT2JqZWN0ID0gc3RhdGljX2Nhc3Q8V2ViVVJMUmVzcG9uc2UqPihtX3Jvb3QpOworICAgICAg
ICAgICAgZW5jb2Rlci0+ZW5jb2RlKHVybFJlc3BvbnNlT2JqZWN0LT5yZXNvdXJjZVJlc3BvbnNl
KCkpOworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KICAgICAgICAgY2FzZSBB
UElPYmplY3Q6OlR5cGVVc2VyQ29udGVudFVSTFBhdHRlcm46IHsKICAgICAgICAgICAgIFdlYlVz
ZXJDb250ZW50VVJMUGF0dGVybiogdXJsUGF0dGVybiA9IHN0YXRpY19jYXN0PFdlYlVzZXJDb250
ZW50VVJMUGF0dGVybio+KG1fcm9vdCk7CiAgICAgICAgICAgICBlbmNvZGVyLT5lbmNvZGUodXJs
UGF0dGVybi0+cGF0dGVyblN0cmluZygpKTsKQEAgLTIzOSw2ICsyNDYsNyBAQCBwcm90ZWN0ZWQ6
CiAvLyAgIC0gV2ViVUludDY0IC0+IFdlYlVJbnQ2NAogLy8gICAtIFdlYlVSTCAtPiBXZWJVUkwK
IC8vICAgLSBXZWJVUkxSZXF1ZXN0IC0+IFdlYlVSTFJlcXVlc3QKKy8vICAgLSBXZWJVUkxSZXNw
b25zZSAtPiBXZWJVUkxSZXNwb25zZQogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBPd25lcj4KIGNsYXNz
IFVzZXJNZXNzYWdlRGVjb2RlciB7CkBAIC00NDgsNiArNDU2LDEzIEBAIHB1YmxpYzoKICAgICAg
ICAgICAgIGNvZGVyLm1fcm9vdCA9IFdlYlVSTFJlcXVlc3Q6OmNyZWF0ZShyZXF1ZXN0KTsKICAg
ICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CisgICAgICAgIGNhc2UgQVBJT2JqZWN0OjpUeXBl
VVJMUmVzcG9uc2U6IHsKKyAgICAgICAgICAgIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UgcmVz
cG9uc2U7CisgICAgICAgICAgICBpZiAoIWRlY29kZXItPmRlY29kZShyZXNwb25zZSkpCisgICAg
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgY29kZXIubV9yb290ID0gV2Vi
VVJMUmVzcG9uc2U6OmNyZWF0ZShyZXNwb25zZSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgfQogICAgICAgICBjYXNlIEFQSU9iamVjdDo6VHlwZVVzZXJDb250ZW50VVJMUGF0dGVybjog
ewogICAgICAgICAgICAgU3RyaW5nIHN0cmluZzsKICAgICAgICAgICAgIGlmICghZGVjb2Rlci0+
ZGVjb2RlKHN0cmluZykpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2d0ay9XZWJLaXRJbmplY3RlZEJ1bmRsZS9HTlVtYWtlZmlsZS5hbSBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEluamVjdGVkQnVuZGxlL0dOVW1ha2VmaWxlLmFtCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFmNTE3NjQKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRJbmplY3RlZEJ1bmRs
ZS9HTlVtYWtlZmlsZS5hbQpAQCAtMCwwICsxLDI0IEBACitpZiBFTkFCTEVfV0VCS0lUMgorCit3
ZWJidW5kbGVkaXIgPSAkKGxpYmRpcikvd2Via2l0Mmd0ay0zLjAvJChXRUJLSVRHVEtfQVBJX1ZF
UlNJT04pL3dlYmJ1bmRsZQord2ViYnVuZGxlX0xUTElCUkFSSUVTID0gbGlid2Via2l0Mmd0a3dl
YmJ1bmRsZS5sYQorCitsaWJ3ZWJraXQyZ3Rrd2ViYnVuZGxlX2xhX1NPVVJDRVMgPSBcCisJU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0SW5qZWN0ZWRCdW5kbGUvV2ViS2l0
SW5qZWN0ZWRCdW5kbGUuY3BwIFwKKwlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9X
ZWJLaXRJbmplY3RlZEJ1bmRsZS9XZWJLaXRJbmplY3RlZEJ1bmRsZS5oIFwKKwlTb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRJbmplY3RlZEJ1bmRsZS9XZWJLaXRJbmplY3Rl
ZEJ1bmRsZU1haW4uY3BwCisKK2xpYndlYmtpdDJndGt3ZWJidW5kbGVfbGFfTERGTEFHUyA9IFwK
KwkkKG5vX3VuZGVmaW5lZCkgXAorCS1tb2R1bGUgXAorCS1hdm9pZC12ZXJzaW9uCisKK2xpYndl
YmtpdDJndGt3ZWJidW5kbGVfbGFfQ1BQRkxBR1MgPSBcCisJLWZuby1zdHJpY3QtYWxpYXNpbmcg
XAorCS1JJCh0b3BfYnVpbGRkaXIpL0Rlcml2ZWRTb3VyY2VzL0luamVjdGVkQnVuZGxlIFwKKwkt
SSQodG9wX2J1aWxkZGlyKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL2luY2x1ZGUgXAorCSQoZ2xv
YmFsX2NwcGZsYWdzKSBcCisJJChqYXZhc2NyaXB0Y29yZV9jcHBmbGFncykgXAorCSQoR0xJQl9D
RkxBR1MpCisKK2VuZGlmICMgRU5BQkxFX1dFQktJVDIKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBm
aWxlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRJ
bmplY3RlZEJ1bmRsZS9XZWJLaXRJbmplY3RlZEJ1bmRsZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRJbmplY3RlZEJ1bmRsZS9XZWJLaXRJbmplY3RlZEJ1bmRs
ZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTY4NDkwZgotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEluamVj
dGVkQnVuZGxlL1dlYktpdEluamVjdGVkQnVuZGxlLmNwcApAQCAtMCwwICsxLDExNiBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxMiBJZ2FsaWEgUy5MLgorICoKKyAqIFRoaXMgbGlicmFyeSBp
cyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlm
eSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisg
KiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBl
aXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBh
bnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4g
dGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJS
QU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFC
SUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQor
ICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgor
ICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUg
ZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJl
IEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBC
b3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisj
aW5jbHVkZSAiV2ViS2l0SW5qZWN0ZWRCdW5kbGUuaCIKKworI2luY2x1ZGUgPFdlYktpdDIvV0tC
dW5kbGUuaD4KKyNpbmNsdWRlIDxXZWJLaXQyL1dLQnVuZGxlSW5pdGlhbGl6ZS5oPgorI2luY2x1
ZGUgPFdlYktpdDIvV0tCdW5kbGVQYWdlLmg+CisjaW5jbHVkZSA8V2ViS2l0Mi9XS1JldGFpblB0
ci5oPgorI2luY2x1ZGUgPFdlYktpdDIvV2ViS2l0Mi5oPgorI2luY2x1ZGUgPGdsaWIuaD4KKwor
bmFtZXNwYWNlIFdlYktpdEluamVjdGVkQnVuZGxlIHsKKworV2ViS2l0SW5qZWN0ZWRCdW5kbGUm
IFdlYktpdEluamVjdGVkQnVuZGxlOjpzaGFyZWQoKQoreworICAgIHN0YXRpYyBXZWJLaXRJbmpl
Y3RlZEJ1bmRsZSYgc2hhcmVkID0gKm5ldyBXZWJLaXRJbmplY3RlZEJ1bmRsZTsKKyAgICByZXR1
cm4gc2hhcmVkOworfQorCitXZWJLaXRJbmplY3RlZEJ1bmRsZTo6V2ViS2l0SW5qZWN0ZWRCdW5k
bGUoKQorICAgIDogbV9idW5kbGUoMCkKK3sKK30KKwordm9pZCBXZWJLaXRJbmplY3RlZEJ1bmRs
ZTo6ZGlkQ3JlYXRlUGFnZShXS0J1bmRsZVJlZiwgV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIGNvbnN0
IHZvaWQqIGNsaWVudEluZm8pCit7CisgICAgc3RhdGljX2Nhc3Q8V2ViS2l0SW5qZWN0ZWRCdW5k
bGUqPihjb25zdF9jYXN0PHZvaWQqPihjbGllbnRJbmZvKSktPmRpZENyZWF0ZVBhZ2UocGFnZSk7
Cit9CisKK3ZvaWQgV2ViS2l0SW5qZWN0ZWRCdW5kbGU6OmluaXRpYWxpemUoV0tCdW5kbGVSZWYg
YnVuZGxlLCBXS1R5cGVSZWYgaW5pdGlhbGl6YXRpb25Vc2VyRGF0YSkKK3sKKyAgICBtX2J1bmRs
ZSA9IGJ1bmRsZTsKKworICAgIFdLQnVuZGxlQ2xpZW50IGJ1bmRsZUNsaWVudCA9IHsKKyAgICAg
ICAga1dLQnVuZGxlQ2xpZW50Q3VycmVudFZlcnNpb24sCisgICAgICAgIHRoaXMsCisgICAgICAg
IGRpZENyZWF0ZVBhZ2UsCisgICAgICAgIDAsIC8vIHdpbGxEZXN0cm95UGFnZQorICAgICAgICAw
LCAvLyBkaWRJbml0aWFsaXplUGFnZUdyb3VwCisgICAgICAgIDAgLy8gZGlkUmVjZWl2ZU1lc3Nh
Z2UKKyAgICB9OworICAgIFdLQnVuZGxlU2V0Q2xpZW50KGJ1bmRsZSwgJmJ1bmRsZUNsaWVudCk7
Cit9CisKK1dLVVJMUmVxdWVzdFJlZiBXZWJLaXRJbmplY3RlZEJ1bmRsZTo6d2lsbFNlbmRSZXF1
ZXN0Rm9yRnJhbWUoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdLQnVuZGxlRnJhbWVSZWYsIHVpbnQ2
NF90IHJlc291cmNlSWRlbnRpZmllciwgV0tVUkxSZXF1ZXN0UmVmIHJlcXVlc3QsIFdLVVJMUmVz
cG9uc2VSZWYgcmVkaXJlY3RSZXNwb25zZSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKK3sKKyAg
ICByZXR1cm4gc3RhdGljX2Nhc3Q8V2ViS2l0SW5qZWN0ZWRCdW5kbGUqPihjb25zdF9jYXN0PHZv
aWQqPihjbGllbnRJbmZvKSktPndpbGxTZW5kUmVxdWVzdEZvckZyYW1lKHBhZ2UsIHJlc291cmNl
SWRlbnRpZmllciwgcmVxdWVzdCwgcmVkaXJlY3RSZXNwb25zZSk7Cit9CisKK3ZvaWQgV2ViS2l0
SW5qZWN0ZWRCdW5kbGU6OmRpZENyZWF0ZVBhZ2UoV0tCdW5kbGVQYWdlUmVmIHBhZ2UpCit7Cisg
ICAgV0tCdW5kbGVQYWdlUmVzb3VyY2VMb2FkQ2xpZW50IHJlc291cmNlTG9hZENsaWVudCA9IHsK
KyAgICAgICAga1dLQnVuZGxlUGFnZVJlc291cmNlTG9hZENsaWVudEN1cnJlbnRWZXJzaW9uLAor
ICAgICAgICB0aGlzLAorICAgICAgICAwLCAvLyBkaWRJbml0aWF0ZUxvYWRGb3JSZXNvdXJjZQor
ICAgICAgICB3aWxsU2VuZFJlcXVlc3RGb3JGcmFtZSwKKyAgICAgICAgMCwgLy8gZGlkUmVjZWl2
ZVJlc3BvbnNlRm9yUmVzb3VyY2UKKyAgICAgICAgMCwgLy8gZGlkUmVjZWl2ZUNvbnRlbnRMZW5n
dGhGb3JSZXNvdXJjZQorICAgICAgICAwLCAvLyBkaWRGaW5pc2hMb2FkRm9yUmVzb3VyY2UKKyAg
ICAgICAgMCwgLy8gZGlkRmFpbExvYWRGb3JSZXNvdXJjZQorICAgICAgICAwLCAvLyBzaG91bGRD
YWNoZVJlc3BvbnNlCisgICAgICAgIDAgLy8gc2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2UKKyAg
ICB9OworICAgIFdLQnVuZGxlUGFnZVNldFJlc291cmNlTG9hZENsaWVudChwYWdlLCAmcmVzb3Vy
Y2VMb2FkQ2xpZW50KTsKK30KKworV0tVUkxSZXF1ZXN0UmVmIFdlYktpdEluamVjdGVkQnVuZGxl
Ojp3aWxsU2VuZFJlcXVlc3RGb3JGcmFtZShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgdWludDY0X3Qg
cmVzb3VyY2VJZGVudGlmaWVyLCBXS1VSTFJlcXVlc3RSZWYgcmVxdWVzdCwgV0tVUkxSZXNwb25z
ZVJlZiByZWRpcmVjdFJlc3BvbnNlKQoreworICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBt
ZXNzYWdlTmFtZShBZG9wdFdLLCBXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiV2ViS2l0
V2ViVmlldyIpKTsKKyAgICBXS1JldGFpblB0cjxXS011dGFibGVEaWN0aW9uYXJ5UmVmPiBtZXNz
YWdlQm9keShBZG9wdFdLLCBXS011dGFibGVEaWN0aW9uYXJ5Q3JlYXRlKCkpOworICAgIFdLUmV0
YWluUHRyPFdLU3RyaW5nUmVmPiBwYWdlS2V5KEFkb3B0V0ssIFdLU3RyaW5nQ3JlYXRlV2l0aFVU
RjhDU3RyaW5nKCJQYWdlIikpOworICAgIFdLRGljdGlvbmFyeUFkZEl0ZW0obWVzc2FnZUJvZHku
Z2V0KCksIHBhZ2VLZXkuZ2V0KCksIHBhZ2UpOworCisgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdS
ZWY+IHN1Yk1lc3NhZ2VOYW1lS2V5KEFkb3B0V0ssIFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3Ry
aW5nKCJTdWJNZXNzYWdlTmFtZSIpKTsKKyAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gc3Vi
TWVzc2FnZU5hbWUoQWRvcHRXSywgV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIldpbGxT
ZW5kUmVxdWVzdEZvckZyYW1lIikpOworICAgIFdLRGljdGlvbmFyeUFkZEl0ZW0obWVzc2FnZUJv
ZHkuZ2V0KCksIHN1Yk1lc3NhZ2VOYW1lS2V5LmdldCgpLCBzdWJNZXNzYWdlTmFtZS5nZXQoKSk7
CisKKyAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gc3ViTWVzc2FnZUJvZHlLZXkoQWRvcHRX
SywgV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIlN1Yk1lc3NhZ2VCb2R5IikpOworICAg
IFdLUmV0YWluUHRyPFdLTXV0YWJsZURpY3Rpb25hcnlSZWY+IHN1Yk1lc3NhZ2VCb2R5KEFkb3B0
V0ssIFdLTXV0YWJsZURpY3Rpb25hcnlDcmVhdGUoKSk7CisgICAgV0tEaWN0aW9uYXJ5QWRkSXRl
bShtZXNzYWdlQm9keS5nZXQoKSwgc3ViTWVzc2FnZUJvZHlLZXkuZ2V0KCksIHN1Yk1lc3NhZ2VC
b2R5LmdldCgpKTsKKworICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiByZXNvdXJjZUlkZW50
aWZpZXJLZXkoQWRvcHRXSywgV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIlJlc291cmNl
SWRlbnRpZmllciIpKTsKKyAgICBXS1JldGFpblB0cjxXS1VJbnQ2NFJlZj4gcmVzb3VyY2VJZGVu
dGlmaWVyUmVmKEFkb3B0V0ssIFdLVUludDY0Q3JlYXRlKHJlc291cmNlSWRlbnRpZmllcikpOwor
ICAgIFdLRGljdGlvbmFyeUFkZEl0ZW0oc3ViTWVzc2FnZUJvZHkuZ2V0KCksIHJlc291cmNlSWRl
bnRpZmllcktleS5nZXQoKSwgcmVzb3VyY2VJZGVudGlmaWVyUmVmLmdldCgpKTsKKworICAgIFdL
UmV0YWluUHRyPFdLU3RyaW5nUmVmPiByZXF1ZXN0S2V5KEFkb3B0V0ssIFdLU3RyaW5nQ3JlYXRl
V2l0aFVURjhDU3RyaW5nKCJSZXF1ZXN0IikpOworICAgIFdLRGljdGlvbmFyeUFkZEl0ZW0oc3Vi
TWVzc2FnZUJvZHkuZ2V0KCksIHJlcXVlc3RLZXkuZ2V0KCksIHJlcXVlc3QpOworCisgICAgV0tS
ZXRhaW5QdHI8V0tTdHJpbmdSZWY+IHJlZGlyZWN0UmVzcG9uc2VLZXkoQWRvcHRXSywgV0tTdHJp
bmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIlJlZGlyZWN0UmVzcG9uc2UiKSk7CisgICAgV0tEaWN0
aW9uYXJ5QWRkSXRlbShzdWJNZXNzYWdlQm9keS5nZXQoKSwgcmVkaXJlY3RSZXNwb25zZUtleS5n
ZXQoKSwgcmVkaXJlY3RSZXNwb25zZSk7CisKKyAgICBXS1R5cGVSZWYgcmV0dXJuVmFsdWU7Cisg
ICAgV0tCdW5kbGVQb3N0U3luY2hyb25vdXNNZXNzYWdlKG1fYnVuZGxlLCBtZXNzYWdlTmFtZS5n
ZXQoKSwgbWVzc2FnZUJvZHkuZ2V0KCksICZyZXR1cm5WYWx1ZSk7CisKKyAgICByZXR1cm4gcmV0
dXJuVmFsdWUgPyBzdGF0aWNfY2FzdDxXS1VSTFJlcXVlc3RSZWY+KHJldHVyblZhbHVlKSA6IDA7
Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdEluamVjdGVkQnVuZGxlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRJbmplY3RlZEJ1bmRsZS9XZWJL
aXRJbmplY3RlZEJ1bmRsZS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2Vi
S2l0SW5qZWN0ZWRCdW5kbGUvV2ViS2l0SW5qZWN0ZWRCdW5kbGUuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi41NDMyOTI5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0SW5qZWN0ZWRCdW5kbGUvV2ViS2l0SW5qZWN0
ZWRCdW5kbGUuaApAQCAtMCwwICsxLDUwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEln
YWxpYSBTLkwuCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4g
cmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0
aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5
IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRo
ZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAq
IFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUg
dXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGlt
cGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGlj
IExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2
ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBh
bG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90
LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJh
bmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNB
LgorICovCisKKyNpZm5kZWYgV2ViS2l0SW5qZWN0ZWRCdW5kbGVfaAorI2RlZmluZSBXZWJLaXRJ
bmplY3RlZEJ1bmRsZV9oCisKKyNpbmNsdWRlIDxXZWJLaXQyL1dLQmFzZS5oPgorCituYW1lc3Bh
Y2UgV2ViS2l0SW5qZWN0ZWRCdW5kbGUgeworCitjbGFzcyBXZWJLaXRJbmplY3RlZEJ1bmRsZSB7
CitwdWJsaWM6CisgICAgc3RhdGljIFdlYktpdEluamVjdGVkQnVuZGxlJiBzaGFyZWQoKTsKKwor
ICAgIC8vIEluaXRpYWxpemUgdGhlIEluamVjdGVkQnVuZGxlLgorICAgIHZvaWQgaW5pdGlhbGl6
ZShXS0J1bmRsZVJlZiwgV0tUeXBlUmVmIGluaXRpYWxpemF0aW9uVXNlckRhdGEpOworCitwcml2
YXRlOgorICAgIFdlYktpdEluamVjdGVkQnVuZGxlKCk7CisgICAgfldlYktpdEluamVjdGVkQnVu
ZGxlKCk7CisKKyAgICBzdGF0aWMgdm9pZCBkaWRDcmVhdGVQYWdlKFdLQnVuZGxlUmVmLCBXS0J1
bmRsZVBhZ2VSZWYsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOworICAgIHZvaWQgZGlkQ3JlYXRl
UGFnZShXS0J1bmRsZVBhZ2VSZWYpOworCisgICAgc3RhdGljIFdLVVJMUmVxdWVzdFJlZiB3aWxs
U2VuZFJlcXVlc3RGb3JGcmFtZShXS0J1bmRsZVBhZ2VSZWYsIFdLQnVuZGxlRnJhbWVSZWYsIHVp
bnQ2NF90IHJlc291cmNlSWRlbnRpZmllciwgV0tVUkxSZXF1ZXN0UmVmLCBXS1VSTFJlc3BvbnNl
UmVmIHJlZGlyZWN0UmVzcG9uc2UsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOworICAgIFdLVVJM
UmVxdWVzdFJlZiB3aWxsU2VuZFJlcXVlc3RGb3JGcmFtZShXS0J1bmRsZVBhZ2VSZWYsIHVpbnQ2
NF90IHJlc291cmNlSWRlbnRpZmllciwgV0tVUkxSZXF1ZXN0UmVmLCBXS1VSTFJlc3BvbnNlUmVm
IHJlZGlyZWN0UmVzcG9uc2UpOworCisgICAgV0tCdW5kbGVSZWYgbV9idW5kbGU7Cit9OworCit9
IC8vIG5hbWVzcGFjZSBXZWJLaXRJbmplY3RlZEJ1bmRsZQorCisjZW5kaWYKKwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0SW5qZWN0ZWRCdW5kbGUv
V2ViS2l0SW5qZWN0ZWRCdW5kbGVNYWluLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvZ3RrL1dlYktpdEluamVjdGVkQnVuZGxlL1dlYktpdEluamVjdGVkQnVuZGxlTWFpbi5jcHAK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDg2ZjliMgotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEluamVjdGVkQnVu
ZGxlL1dlYktpdEluamVjdGVkQnVuZGxlTWFpbi5jcHAKQEAgLTAsMCArMSwzMyBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxMiBJZ2FsaWEgUy5MLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBm
cmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBp
dCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBM
aWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRo
ZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkg
bGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhl
IGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5U
WTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJ
VFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICog
TGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICog
WW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJh
bCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmls
ZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZv
dW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0
b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAiV2ViS2l0SW5qZWN0ZWRCdW5kbGUuaCIKKworI2luY2x1ZGUgPFdlYktpdDIvV0tCdW5k
bGVJbml0aWFsaXplLmg+CisKKyNpZiBkZWZpbmVkKFdJTjMyKSB8fCBkZWZpbmVkKF9XSU4zMikK
K2V4dGVybiAiQyIgX19kZWNsc3BlYyhkbGxleHBvcnQpCisjZWxzZQorZXh0ZXJuICJDIgorI2Vu
ZGlmCit2b2lkIFdLQnVuZGxlSW5pdGlhbGl6ZShXS0J1bmRsZVJlZiBidW5kbGUsIFdLVHlwZVJl
ZiBpbml0aWFsaXphdGlvblVzZXJEYXRhKQoreworICAgIFdlYktpdEluamVjdGVkQnVuZGxlOjpX
ZWJLaXRJbmplY3RlZEJ1bmRsZTo6c2hhcmVkKCkuaW5pdGlhbGl6ZShidW5kbGUsIGluaXRpYWxp
emF0aW9uVXNlckRhdGEpOworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9ndGsvV2ViS2l0SW5qZWN0ZWRCdW5kbGVDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0SW5qZWN0ZWRCdW5kbGVDbGllbnQuY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM2ZjEyMDkKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRJbmplY3RlZEJ1bmRsZUNsaWVu
dC5jcHAKQEAgLTAsMCArMSw0NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBJZ2FsaWEg
Uy5MLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlz
dHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdO
VSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUg
RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGlj
ZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlz
IGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1
bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVk
IHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNl
bnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEg
Y29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcg
d2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3Jp
dGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGlu
IFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAq
LworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViS2l0SW5qZWN0ZWRCdW5kbGVD
bGllbnQuaCIKKworI2luY2x1ZGUgIldlYktpdFByaXZhdGUuaCIKKyNpbmNsdWRlICJXZWJLaXRX
ZWJDb250ZXh0UHJpdmF0ZS5oIgorCit1c2luZyBuYW1lc3BhY2UgV2ViS2l0OworCitzdGF0aWMg
dm9pZCBkaWRSZWNlaXZlTWVzc2FnZUZyb21JbmplY3RlZEJ1bmRsZShXS0NvbnRleHRSZWYsIFdL
U3RyaW5nUmVmIG1lc3NhZ2VOYW1lLCBXS1R5cGVSZWYgbWVzc2FnZUJvZHksIGNvbnN0IHZvaWQq
IGNsaWVudEluZm8pCit7CisgICAgd2Via2l0V2ViQ29udGV4dERpZFJlY2VpdmVNZXNzYWdlRnJv
bUluamVjdGVkQnVuZGxlKFdFQktJVF9XRUJfQ09OVEVYVChjbGllbnRJbmZvKSwgbWVzc2FnZU5h
bWUsIG1lc3NhZ2VCb2R5KTsKK30KKworc3RhdGljIHZvaWQgZGlkUmVjZWl2ZVN5bmNocm9ub3Vz
TWVzc2FnZUZyb21JbmplY3RlZEJ1bmRsZShXS0NvbnRleHRSZWYsIFdLU3RyaW5nUmVmIG1lc3Nh
Z2VOYW1lLCBXS1R5cGVSZWYgbWVzc2FnZUJvZHksIFdLVHlwZVJlZiogcmV0dXJuRGF0YSwgY29u
c3Qgdm9pZCogY2xpZW50SW5mbykKK3sKKyAgICAqcmV0dXJuRGF0YSA9IHdlYmtpdFdlYkNvbnRl
eHREaWRSZWNlaXZlTWVzc2FnZUZyb21JbmplY3RlZEJ1bmRsZShXRUJLSVRfV0VCX0NPTlRFWFQo
Y2xpZW50SW5mbyksIG1lc3NhZ2VOYW1lLCBtZXNzYWdlQm9keSk7Cit9CisKK3ZvaWQgYXR0YWNo
SW5qZWN0ZWRCdW5kbGVDbGllbnRUb0NvbnRleHQoV2ViS2l0V2ViQ29udGV4dCogd2ViQ29udGV4
dCkKK3sKKyAgICBXS0NvbnRleHRJbmplY3RlZEJ1bmRsZUNsaWVudCB3a0luamVjdGVkQnVuZGxl
Q2xpZW50ID0geworICAgICAgICBrV0tDb250ZXh0SW5qZWN0ZWRCdW5kbGVDbGllbnRDdXJyZW50
VmVyc2lvbiwKKyAgICAgICAgd2ViQ29udGV4dCwgLy8gY2xpZW50SW5mbworICAgICAgICBkaWRS
ZWNlaXZlTWVzc2FnZUZyb21JbmplY3RlZEJ1bmRsZSwKKyAgICAgICAgZGlkUmVjZWl2ZVN5bmNo
cm9ub3VzTWVzc2FnZUZyb21JbmplY3RlZEJ1bmRsZQorICAgIH07CisgICAgV0tDb250ZXh0U2V0
SW5qZWN0ZWRCdW5kbGVDbGllbnQod2Via2l0V2ViQ29udGV4dEdldFdLQ29udGV4dCh3ZWJDb250
ZXh0KSwgJndrSW5qZWN0ZWRCdW5kbGVDbGllbnQpOworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0SW5qZWN0ZWRCdW5kbGVDbGllbnQuaCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEluamVjdGVkQnVuZGxlQ2xpZW50
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODdjMThmOQotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEluamVjdGVk
QnVuZGxlQ2xpZW50LmgKQEAgLTAsMCArMSwyNyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
MiBJZ2FsaWEgUy5MLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3Ug
Y2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMg
b2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hl
ZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBv
ZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAq
CisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxs
IGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRo
ZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1
YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJl
Y2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQor
ICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElm
IG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUx
IEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEs
IFVTQS4KKyAqLworCisjaWZuZGVmIFdlYktpdEluamVjdGVkQnVuZGxlQ2xpZW50X2gKKyNkZWZp
bmUgV2ViS2l0SW5qZWN0ZWRCdW5kbGVDbGllbnRfaAorCisjaW5jbHVkZSAiV2ViS2l0V2ViQ29u
dGV4dC5oIgorCit2b2lkIGF0dGFjaEluamVjdGVkQnVuZGxlQ2xpZW50VG9Db250ZXh0KFdlYktp
dFdlYkNvbnRleHQqKTsKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL2d0ay9XZWJLaXRVUklSZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvZ3RrL1dlYktpdFVSSVJlcXVlc3QuY3BwCmluZGV4IGI1YzJiNGUuLmQyN2Y3NTkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVSSVJl
cXVlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVS
SVJlcXVlc3QuY3BwCkBAIC02NSw3ICs2NSw3IEBAIHN0YXRpYyB2b2lkIHdlYmtpdFVSSVJlcXVl
c3RTZXRQcm9wZXJ0eShHT2JqZWN0KiBvYmplY3QsIGd1aW50IHByb3BJZCwgY29uc3QgR1ZhCiAK
ICAgICBzd2l0Y2ggKHByb3BJZCkgewogICAgIGNhc2UgUFJPUF9VUkk6Ci0gICAgICAgIHJlcXVl
c3QtPnByaXYtPnJlc291cmNlUmVxdWVzdC5zZXRVUkwoS1VSTChLVVJMKCksIGdfdmFsdWVfZ2V0
X3N0cmluZyh2YWx1ZSkpKTsKKyAgICAgICAgd2Via2l0X3VyaV9yZXF1ZXN0X3NldF91cmkocmVx
dWVzdCwgZ192YWx1ZV9nZXRfc3RyaW5nKHZhbHVlKSk7CiAgICAgICAgIGJyZWFrOwogICAgIGRl
ZmF1bHQ6CiAgICAgICAgIEdfT0JKRUNUX1dBUk5fSU5WQUxJRF9QUk9QRVJUWV9JRChvYmplY3Qs
IHByb3BJZCwgcGFyYW1TcGVjKTsKQEAgLTg5LDggKzg5LDggQEAgc3RhdGljIHZvaWQgd2Via2l0
X3VyaV9yZXF1ZXN0X2NsYXNzX2luaXQoV2ViS2l0VVJJUmVxdWVzdENsYXNzKiByZXF1ZXN0Q2xh
c3MpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnX3BhcmFtX3NwZWNfc3Ry
aW5nKCJ1cmkiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBfKCJVUkkiKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgXygiVGhlIFVSSSB0byB3aGljaCB0aGUgcmVxdWVzdCB3aWxs
IGJlIG1hZGUuIiksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PEdQYXJhbUZsYWdzPihXRUJLSVRfUEFSQU1fUkVB
RFdSSVRFIHwgR19QQVJBTV9DT05TVFJVQ1RfT05MWSkpKTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImFib3V0OmJsYW5rIiwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGlj
X2Nhc3Q8R1BhcmFtRmxhZ3M+KFdFQktJVF9QQVJBTV9SRUFEV1JJVEUgfCBHX1BBUkFNX0NPTlNU
UlVDVCkpKTsKIAogICAgIGdfdHlwZV9jbGFzc19hZGRfcHJpdmF0ZShyZXF1ZXN0Q2xhc3MsIHNp
emVvZihXZWJLaXRVUklSZXF1ZXN0UHJpdmF0ZSkpOwogfQpAQCAtMTI0LDYgKzEyNCwxMSBAQCBX
ZWJLaXRVUklSZXF1ZXN0KiB3ZWJraXRVUklSZXF1ZXN0Q3JlYXRlRm9yUmVzb3VyY2VSZXF1ZXN0
KGNvbnN0IFdlYkNvcmU6OlJlc291cgogICAgIHJldHVybiB1cmlSZXF1ZXN0OwogfQogCitjb25z
dCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHdlYmtpdFVSSVJlcXVlc3RHZXRSZXNvdXJjZVJl
cXVlc3QoV2ViS2l0VVJJUmVxdWVzdCogdXJpUmVxdWVzdCkKK3sKKyAgICByZXR1cm4gdXJpUmVx
dWVzdC0+cHJpdi0+cmVzb3VyY2VSZXF1ZXN0OworfQorCiAvKioKICAqIHdlYmtpdF91cmlfcmVx
dWVzdF9nZXRfdXJpOgogICogQHJlcXVlc3Q6IGEgI1dlYktpdFVSSVJlcXVlc3QKQEAgLTEzOCwz
ICsxNDMsMjIgQEAgY29uc3QgZ2NoYXIqIHdlYmtpdF91cmlfcmVxdWVzdF9nZXRfdXJpKFdlYktp
dFVSSVJlcXVlc3QqIHJlcXVlc3QpCiAgICAgcmV0dXJuIHJlcXVlc3QtPnByaXYtPnVyaS5kYXRh
KCk7CiB9CiAKKy8qKgorICogd2Via2l0X3VyaV9yZXF1ZXN0X3NldF91cmk6CisgKiBAcmVxdWVz
dDogYSAjV2ViS2l0VVJJUmVxdWVzdAorICogQHVyaTogYW4gVVJJCisgKgorICogU2V0IHRoZSBV
Ukkgb2YgQHJlcXVlc3QKKyAqLwordm9pZCB3ZWJraXRfdXJpX3JlcXVlc3Rfc2V0X3VyaShXZWJL
aXRVUklSZXF1ZXN0KiByZXF1ZXN0LCBjb25zdCBjaGFyKiB1cmkpCit7CisgICAgZ19yZXR1cm5f
aWZfZmFpbChXRUJLSVRfSVNfVVJJX1JFUVVFU1QocmVxdWVzdCkpOworICAgIGdfcmV0dXJuX2lm
X2ZhaWwodXJpKTsKKworICAgIEtVUkwgdXJsKEtVUkwoKSwgdXJpKTsKKyAgICBpZiAodXJsID09
IHJlcXVlc3QtPnByaXYtPnJlc291cmNlUmVxdWVzdC51cmwoKSkKKyAgICAgICAgcmV0dXJuOwor
CisgICAgcmVxdWVzdC0+cHJpdi0+cmVzb3VyY2VSZXF1ZXN0LnNldFVSTCh1cmwpOworICAgIGdf
b2JqZWN0X25vdGlmeShHX09CSkVDVChyZXF1ZXN0KSwgInVyaSIpOworfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VVJJUmVxdWVzdC5oIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VVJJUmVxdWVzdC5oCmluZGV4IDUy
MzYwNjkuLmIzYjJiNmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Z3RrL1dlYktpdFVSSVJlcXVlc3QuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2d0ay9XZWJLaXRVUklSZXF1ZXN0LmgKQEAgLTYxLDYgKzYxLDEwIEBAIHdlYmtpdF91cmlfcmVx
dWVzdF9uZXcgICAgICAoY29uc3QgZ2NoYXIgICAgICAqdXJpKTsKIFdFQktJVF9BUEkgY29uc3Qg
Z2NoYXIgKgogd2Via2l0X3VyaV9yZXF1ZXN0X2dldF91cmkgIChXZWJLaXRVUklSZXF1ZXN0ICpy
ZXF1ZXN0KTsKIAorV0VCS0lUX0FQSSB2b2lkCit3ZWJraXRfdXJpX3JlcXVlc3Rfc2V0X3VyaSAg
KFdlYktpdFVSSVJlcXVlc3QgKnJlcXVlc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGNvbnN0IGdjaGFyICAgICAgKnVyaSk7CisKIEdfRU5EX0RFQ0xTCiAKICNlbmRpZgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VVJJUmVxdWVzdFBy
aXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVSSVJlcXVl
c3RQcml2YXRlLmgKaW5kZXggZGI4NTI0MmEuLjNhZjAyYTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVSSVJlcXVlc3RQcml2YXRlLmgKKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VVJJUmVxdWVzdFByaXZhdGUu
aApAQCAtMzAsNSArMzAsNiBAQAogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VSZXF1ZXN0Lmg+
CiAKIFdlYktpdFVSSVJlcXVlc3QqIHdlYmtpdFVSSVJlcXVlc3RDcmVhdGVGb3JSZXNvdXJjZVJl
cXVlc3QoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0Jik7Citjb25zdCBXZWJDb3JlOjpS
ZXNvdXJjZVJlcXVlc3QmIHdlYmtpdFVSSVJlcXVlc3RHZXRSZXNvdXJjZVJlcXVlc3QoV2ViS2l0
VVJJUmVxdWVzdCopOwogCiAjZW5kaWYgLy8gV2ViS2l0VVJJUmVxdWVzdFByaXZhdGVfaApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViQ29udGV4
dC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJDb250ZXh0
LmNwcAppbmRleCAzNjBiMGE2Li45OTFmMTNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJDb250ZXh0LmNwcApAQCAtMjMsOSArMjMsMTMg
QEAKICNpbmNsdWRlICJXZWJDb250ZXh0LmgiCiAjaW5jbHVkZSAiV2ViS2l0RG93bmxvYWRDbGll
bnQuaCIKICNpbmNsdWRlICJXZWJLaXREb3dubG9hZFByaXZhdGUuaCIKKyNpbmNsdWRlICJXZWJL
aXRJbmplY3RlZEJ1bmRsZUNsaWVudC5oIgogI2luY2x1ZGUgIldlYktpdFByaXZhdGUuaCIKICNp
bmNsdWRlICJXZWJLaXRXZWJDb250ZXh0UHJpdmF0ZS5oIgorI2luY2x1ZGUgIldlYktpdFdlYlZp
ZXdCYXNlUHJpdmF0ZS5oIgorI2luY2x1ZGUgIldlYktpdFdlYlZpZXdQcml2YXRlLmgiCiAjaW5j
bHVkZSA8d3RmL0hhc2hNYXAuaD4KKyNpbmNsdWRlIDx3dGYvZ29iamVjdC9HT3duUHRyLmg+CiAj
aW5jbHVkZSA8d3RmL2dvYmplY3QvR1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJp
bmcuaD4KIApAQCAtMzksNiArNDMsOCBAQCBlbnVtIHsKIAogc3RydWN0IF9XZWJLaXRXZWJDb250
ZXh0UHJpdmF0ZSB7CiAgICAgV0tSZXRhaW5QdHI8V0tDb250ZXh0UmVmPiBjb250ZXh0OworCisg
ICAgSGFzaE1hcDx1aW50NjRfdCwgV2ViS2l0V2ViVmlldyo+IHZpZXdNYXA7CiB9OwogCiBzdGF0
aWMgZ3VpbnQgc2lnbmFsc1tMQVNUX1NJR05BTF0gPSB7IDAsIH07CkBAIC04MiwxMSArODgsMzAg
QEAgc3RhdGljIHZvaWQgd2Via2l0X3dlYl9jb250ZXh0X2NsYXNzX2luaXQoV2ViS2l0V2ViQ29u
dGV4dENsYXNzKiB3ZWJDb250ZXh0Q2xhc3MKICAgICBnX3R5cGVfY2xhc3NfYWRkX3ByaXZhdGUo
d2ViQ29udGV4dENsYXNzLCBzaXplb2YoV2ViS2l0V2ViQ29udGV4dFByaXZhdGUpKTsKIH0KIAor
c3RhdGljIENTdHJpbmcgZ2V0V2ViQnVuZGxlRGlyZWN0b3J5KCkKK3sKKyAgICBjb25zdCBjaGFy
KiB3ZWJCdW5kbGVEaXJlY3RvcnkgPSBnX2dldGVudigiV0VCS0lUX1dFQl9CVU5ETEVfUEFUSCIp
OworICAgIGlmICh3ZWJCdW5kbGVEaXJlY3RvcnkpCisgICAgICAgIHJldHVybiB3ZWJCdW5kbGVE
aXJlY3Rvcnk7CisKKyAgICBHT3duUHRyPGNoYXI+IHdlYkJ1bmRsZVBhdGgoZ19idWlsZF9maWxl
bmFtZShMSUJESVIsICJ3ZWJraXQyZ3RrLTMuMCIsIFdFQktJVEdUS19BUElfVkVSU0lPTiwgIndl
YmJ1bmRsZSIsIE5VTEwpKTsKKyAgICByZXR1cm4gd2ViQnVuZGxlUGF0aC5nZXQoKTsKK30KKwor
c3RhdGljIENTdHJpbmcgZ2V0V2ViQnVuZGxlRmlsZW5hbWUoKQoreworICAgIEdPd25QdHI8Y2hh
cj4gd2ViQnVuZGxlRmlsZW5hbWUoZ19idWlsZF9maWxlbmFtZShnZXRXZWJCdW5kbGVEaXJlY3Rv
cnkoKS5kYXRhKCksICJsaWJ3ZWJraXQyZ3Rrd2ViYnVuZGxlLnNvIiwgTlVMTCkpOworICAgIHJl
dHVybiB3ZWJCdW5kbGVGaWxlbmFtZS5nZXQoKTsKK30KKwogc3RhdGljIGdwb2ludGVyIGNyZWF0
ZURlZmF1bHRXZWJDb250ZXh0KGdwb2ludGVyKQogewogICAgIFdlYktpdFdlYkNvbnRleHQqIHdl
YkNvbnRleHQgPSBXRUJLSVRfV0VCX0NPTlRFWFQoZ19vYmplY3RfbmV3KFdFQktJVF9UWVBFX1dF
Ql9DT05URVhULCBOVUxMKSk7Ci0gICAgd2ViQ29udGV4dC0+cHJpdi0+Y29udGV4dCA9IFdLQ29u
dGV4dEdldFNoYXJlZFByb2Nlc3NDb250ZXh0KCk7CisgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdS
ZWY+IHdrV2ViQnVuZGxlUGF0aChBZG9wdFdLLCBXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmlu
ZyhnZXRXZWJCdW5kbGVGaWxlbmFtZSgpLmRhdGEoKSkpOworICAgIHdlYkNvbnRleHQtPnByaXYt
PmNvbnRleHQgPSBXS0NvbnRleHRDcmVhdGVXaXRoSW5qZWN0ZWRCdW5kbGVQYXRoKHdrV2ViQnVu
ZGxlUGF0aC5nZXQoKSk7CiAgICAgV0tDb250ZXh0U2V0Q2FjaGVNb2RlbCh3ZWJDb250ZXh0LT5w
cml2LT5jb250ZXh0LmdldCgpLCBrV0tDYWNoZU1vZGVsUHJpbWFyeVdlYkJyb3dzZXIpOworCisg
ICAgYXR0YWNoSW5qZWN0ZWRCdW5kbGVDbGllbnRUb0NvbnRleHQod2ViQ29udGV4dCk7CiAgICAg
YXR0YWNoRG93bmxvYWRDbGllbnRUb0NvbnRleHQod2ViQ29udGV4dCk7CiAKICAgICByZXR1cm4g
d2ViQ29udGV4dDsKQEAgLTI0MywzICsyNjgsNDQgQEAgV0tDb250ZXh0UmVmIHdlYmtpdFdlYkNv
bnRleHRHZXRXS0NvbnRleHQoV2ViS2l0V2ViQ29udGV4dCogY29udGV4dCkKICAgICByZXR1cm4g
Y29udGV4dC0+cHJpdi0+Y29udGV4dC5nZXQoKTsKIH0KIAordm9pZCB3ZWJraXRXZWJDb250ZXh0
Q3JlYXRlUGFnZUZvcldlYlZpZXcoV2ViS2l0V2ViQ29udGV4dCogY29udGV4dCwgV2ViS2l0V2Vi
Vmlldyogd2ViVmlldykKK3sKKyAgICBXZWJLaXRXZWJWaWV3QmFzZSogd2ViVmlld0Jhc2UgPSBX
RUJLSVRfV0VCX1ZJRVdfQkFTRSh3ZWJWaWV3KTsKKyAgICB3ZWJraXRXZWJWaWV3QmFzZUNyZWF0
ZVdlYlBhZ2Uod2ViVmlld0Jhc2UsIGNvbnRleHQtPnByaXYtPmNvbnRleHQuZ2V0KCksIDApOwor
ICAgIFdlYlBhZ2VQcm94eSogcGFnZSA9IHdlYmtpdFdlYlZpZXdCYXNlR2V0UGFnZSh3ZWJWaWV3
QmFzZSk7CisgICAgY29udGV4dC0+cHJpdi0+dmlld01hcC5zZXQocGFnZS0+cGFnZUlEKCksIHdl
YlZpZXcpOworfQorCit2b2lkIHdlYmtpdFdlYkNvbnRleHRXZWJWaWV3RmluYWxpemVkKFdlYktp
dFdlYkNvbnRleHQqIGNvbnRleHQsIFdlYktpdFdlYlZpZXcqIHdlYlZpZXcpCit7CisgICAgV2Vi
UGFnZVByb3h5KiBwYWdlID0gd2Via2l0V2ViVmlld0Jhc2VHZXRQYWdlKFdFQktJVF9XRUJfVklF
V19CQVNFKHdlYlZpZXcpKTsKKyAgICBjb250ZXh0LT5wcml2LT52aWV3TWFwLnJlbW92ZShwYWdl
LT5wYWdlSUQoKSk7Cit9CisKK1dLVHlwZVJlZiB3ZWJraXRXZWJDb250ZXh0RGlkUmVjZWl2ZU1l
c3NhZ2VGcm9tSW5qZWN0ZWRCdW5kbGUoV2ViS2l0V2ViQ29udGV4dCogY29udGV4dCwgV0tTdHJp
bmdSZWYgbWVzc2FnZU5hbWUsIFdLVHlwZVJlZiBtZXNzYWdlQm9keSkKK3sKKyAgICBXS1R5cGVS
ZWYgcmV0dXJuVmFsdWUgPSAwOworCisgICAgaWYgKFdLU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJp
bmcobWVzc2FnZU5hbWUsICJXZWJLaXRXZWJWaWV3IikpIHsKKyAgICAgICAgQVNTRVJUKFdLR2V0
VHlwZUlEKG1lc3NhZ2VCb2R5KSA9PSBXS0RpY3Rpb25hcnlHZXRUeXBlSUQoKSk7CisgICAgICAg
IFdLRGljdGlvbmFyeVJlZiBtZXNzYWdlQm9keURpY3Rpb25hcnkgPSBzdGF0aWNfY2FzdDxXS0Rp
Y3Rpb25hcnlSZWY+KG1lc3NhZ2VCb2R5KTsKKworICAgICAgICBXS1JldGFpblB0cjxXS1N0cmlu
Z1JlZj4gcGFnZUtleShBZG9wdFdLLCBXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiUGFn
ZSIpKTsKKyAgICAgICAgV0tQYWdlUmVmIHBhZ2UgPSBzdGF0aWNfY2FzdDxXS1BhZ2VSZWY+KFdL
RGljdGlvbmFyeUdldEl0ZW1Gb3JLZXkobWVzc2FnZUJvZHlEaWN0aW9uYXJ5LCBwYWdlS2V5Lmdl
dCgpKSk7CisgICAgICAgIGlmICghcGFnZSkKKyAgICAgICAgICAgIHJldHVybiAwOworCisgICAg
ICAgIFdlYktpdFdlYlZpZXcqIHdlYlZpZXcgPSBjb250ZXh0LT5wcml2LT52aWV3TWFwLmdldCh0
b0ltcGwocGFnZSktPnBhZ2VJRCgpKTsKKyAgICAgICAgaWYgKCF3ZWJWaWV3KQorICAgICAgICAg
ICAgcmV0dXJuIDA7CisKKyAgICAgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IHN1Yk1lc3Nh
Z2VOYW1lS2V5KEFkb3B0V0ssIFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJTdWJNZXNz
YWdlTmFtZSIpKTsKKyAgICAgICAgV0tTdHJpbmdSZWYgc3ViTWVzc2FnZU5hbWUgPSBzdGF0aWNf
Y2FzdDxXS1N0cmluZ1JlZj4oV0tEaWN0aW9uYXJ5R2V0SXRlbUZvcktleShtZXNzYWdlQm9keURp
Y3Rpb25hcnksIHN1Yk1lc3NhZ2VOYW1lS2V5LmdldCgpKSk7CisgICAgICAgIFdLUmV0YWluUHRy
PFdLU3RyaW5nUmVmPiBzdWJNZXNzYWdlQm9keUtleShBZG9wdFdLLCBXS1N0cmluZ0NyZWF0ZVdp
dGhVVEY4Q1N0cmluZygiU3ViTWVzc2FnZUJvZHkiKSk7CisgICAgICAgIFdLVHlwZVJlZiBzdWJN
ZXNzYWdlQm9keSA9IFdLRGljdGlvbmFyeUdldEl0ZW1Gb3JLZXkobWVzc2FnZUJvZHlEaWN0aW9u
YXJ5LCBzdWJNZXNzYWdlQm9keUtleS5nZXQoKSk7CisgICAgICAgIHJldHVyblZhbHVlID0gd2Vi
a2l0V2ViVmlld0RpZFJlY2VpdmVNZXNzYWdlRnJvbUluamVjdGVkQnVuZGxlKHdlYlZpZXcsIHN1
Yk1lc3NhZ2VOYW1lLCBzdWJNZXNzYWdlQm9keSk7CisgICAgfSBlbHNlCisgICAgICAgIEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOworCisgICAgcmV0dXJuIHJldHVyblZhbHVlOworfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViQ29udGV4dFByaXZh
dGUuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYkNvbnRleHRQ
cml2YXRlLmgKaW5kZXggZDJkZDgxMy4uNmFiMmVmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViQ29udGV4dFByaXZhdGUuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJDb250ZXh0UHJpdmF0ZS5oCkBA
IC0yOSwxMyArMjksMTIgQEAKICNpbmNsdWRlICJXZWJLaXRXZWJDb250ZXh0LmgiCiAjaW5jbHVk
ZSA8V2ViS2l0Mi9XZWJLaXQyLmg+CiAKLUdfQkVHSU5fREVDTFMKLQogV0tDb250ZXh0UmVmIHdl
YmtpdFdlYkNvbnRleHRHZXRXS0NvbnRleHQoV2ViS2l0V2ViQ29udGV4dCopOwogV2ViS2l0RG93
bmxvYWQqIHdlYmtpdFdlYkNvbnRleHRHZXRPckNyZWF0ZURvd25sb2FkKFdLRG93bmxvYWRSZWYp
Owogdm9pZCB3ZWJraXRXZWJDb250ZXh0UmVtb3ZlRG93bmxvYWQoV0tEb3dubG9hZFJlZik7CiB2
b2lkIHdlYmtpdFdlYkNvbnRleHREb3dubG9hZFN0YXJ0ZWQoV2ViS2l0V2ViQ29udGV4dCosIFdl
YktpdERvd25sb2FkKik7Ci0KLUdfRU5EX0RFQ0xTCit2b2lkIHdlYmtpdFdlYkNvbnRleHRDcmVh
dGVQYWdlRm9yV2ViVmlldyhXZWJLaXRXZWJDb250ZXh0KiwgV2ViS2l0V2ViVmlldyopOwordm9p
ZCB3ZWJraXRXZWJDb250ZXh0V2ViVmlld0ZpbmFsaXplZChXZWJLaXRXZWJDb250ZXh0KiwgV2Vi
S2l0V2ViVmlldyopOworV0tUeXBlUmVmIHdlYmtpdFdlYkNvbnRleHREaWRSZWNlaXZlTWVzc2Fn
ZUZyb21JbmplY3RlZEJ1bmRsZShXZWJLaXRXZWJDb250ZXh0KiwgV0tTdHJpbmdSZWYgbWVzc2Fn
ZU5hbWUsIFdLVHlwZVJlZiBtZXNzYWdlQm9keSk7CiAKICNlbmRpZiAvLyBXZWJLaXRXZWJDb250
ZXh0UHJpdmF0ZV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0
ay9XZWJLaXRXZWJSZXNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0
ay9XZWJLaXRXZWJSZXNvdXJjZS5jcHAKaW5kZXggNmJkNTFmYS4uMzU5ZjlhNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViUmVzb3VyY2UuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlJlc291cmNl
LmNwcApAQCAtMjEsNyArMjEsNyBAQAogI2luY2x1ZGUgIldlYktpdFdlYlJlc291cmNlLmgiCiAK
ICNpbmNsdWRlICJXZWJLaXRNYXJzaGFsLmgiCi0jaW5jbHVkZSAiV2ViS2l0VVJJUmVxdWVzdC5o
IgorI2luY2x1ZGUgIldlYktpdFVSSVJlcXVlc3RQcml2YXRlLmgiCiAjaW5jbHVkZSAiV2ViS2l0
V2ViUmVzb3VyY2VQcml2YXRlLmgiCiAjaW5jbHVkZSA8Z2xpYi9naTE4bi1saWIuaD4KICNpbmNs
dWRlIDx3dGYvZ29iamVjdC9HUmVmUHRyLmg+CkBAIC0zMCw2ICszMCw3IEBACiB1c2luZyBuYW1l
c3BhY2UgV2ViS2l0OwogCiBlbnVtIHsKKyAgICBTRU5EX1JFUVVFU1QsCiAgICAgU0VOVF9SRVFV
RVNULAogICAgIFJFQ0VJVkVEX0RBVEEsCiAgICAgRklOSVNIRUQsCkBAIC0xMTgsNiArMTE5LDM3
IEBAIHN0YXRpYyB2b2lkIHdlYmtpdF93ZWJfcmVzb3VyY2VfY2xhc3NfaW5pdChXZWJLaXRXZWJS
ZXNvdXJjZUNsYXNzKiByZXNvdXJjZUNsYXNzCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIF8oIlRoZSByZXNwb25zZSBvZiB0aGUgcmVzb3Vy
Y2UiKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgV0VCS0lUX1RZUEVfVVJJX1JFU1BPTlNFLAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXRUJLSVRfUEFSQU1fUkVBREFCTEUpKTsK
KyAgICAvKioKKyAgICAgKiBXZWJLaXRXZWJSZXNvdXJjZTo6c2VuZC1yZXF1ZXN0OgorICAgICAq
IEByZXNvdXJjZTogdGhlICNXZWJLaXRXZWJSZXNvdXJjZQorICAgICAqIEByZXF1ZXN0OiBhICNX
ZWJLaXRVUklSZXF1ZXN0CisgICAgICogQHJlZGlyZWN0ZWRfcmVzcG9uc2U6IGEgI1dlYktpdFVS
SVJlc3BvbnNlLCBvciAlTlVMTAorICAgICAqCisgICAgICogVGhpcyBzaWduYWwgaXMgZW1pdHRl
ZCB3aGVuIEByZXF1ZXN0IGlzIGFib3V0IHRvIGJlIHNlbnQgdG8KKyAgICAgKiB0aGUgc2VydmVy
LiBUaGlzIHNpZ25hbCBjYW4gYmUgdXNlZCB0byBtb2RpZnkgdGhlICNXZWJLaXRVUklSZXF1ZXN0
CisgICAgICogdGhhdCB3aWxsIGJlIHNlbnQgdG8gdGhlIHNlcnZlci4gWW91IGNhbiBhbHNvIGNh
bmNlbCB0aGUgbG9hZCBvcGVyYXRpb24KKyAgICAgKiBvZiBAcmVzb3VyY2UgYnkgY29ubmVjdGlu
ZyB0byB0aGlzIHNpZ25hbCBhbmQgcmV0dXJuaW5nICVUUlVFLgorICAgICAqIElmIHRoZSByZXNv
dXJjZSBsb2FkIGlzIGNhbmNlbGxlZCAjV2ViS2l0V2ViUmVzb3VyY2U6OmZhaWxlZCBzaWduYWwg
aXMKKyAgICAgKiBlbWl0dGVkIHdpdGggYSAlV0VCS0lUX05FVFdPUktfRVJST1JfQ0FOQ0VMTEVE
IGVycm9yLgorICAgICAqIEluIGNhc2Ugb2YgYSBzZXJ2ZXIgcmVkaXJlY3Rpb24gdGhpcyBzaWdu
YWwgaXMKKyAgICAgKiBlbWl0dGVkIGFnYWluIHdpdGggdGhlIEByZXF1ZXN0IGFyZ3VtZW50IGNv
bnRhaW5pbmcgdGhlIG5ldworICAgICAqIHJlcXVlc3QgdG8gYmUgc2VudCB0byB0aGUgc2VydmVy
IGR1ZSB0byB0aGUgcmVkaXJlY3Rpb24gYW5kIHRoZQorICAgICAqIEByZWRpcmVjdGVkX3Jlc3Bv
bnNlIHBhcmFtZXRlciBjb250YWluaW5nIHRoZSByZXNwb25zZQorICAgICAqIHJlY2VpdmVkIGJ5
IHRoZSBzZXJ2ZXIgZm9yIHRoZSBpbml0aWFsIHJlcXVlc3QuCisgICAgICoKKyAgICAgKiBSZXR1
cm5zOiAlVFJVRSB0byBzdG9wIG90aGVyIGhhbmRsZXJzIGZyb20gYmVpbmcgaW52b2tlZCBmb3Ig
dGhlIGV2ZW50LgorICAgICAqICAgICVGQUxTRSB0byBjb250aW51ZSBlbWlzc2lvbiBvZiB0aGUg
ZXZlbnQuCisgICAgICovCisgICAgc2lnbmFsc1tTRU5EX1JFUVVFU1RdID0KKyAgICAgICAgZ19z
aWduYWxfbmV3KCJzZW5kLXJlcXVlc3QiLAorICAgICAgICAgICAgICAgICAgICAgR19UWVBFX0ZS
T01fQ0xBU1Mob2JqZWN0Q2xhc3MpLAorICAgICAgICAgICAgICAgICAgICAgR19TSUdOQUxfUlVO
X0xBU1QsCisgICAgICAgICAgICAgICAgICAgICAwLAorICAgICAgICAgICAgICAgICAgICAgZ19z
aWduYWxfYWNjdW11bGF0b3JfdHJ1ZV9oYW5kbGVkLCAwLAorICAgICAgICAgICAgICAgICAgICAg
d2Via2l0X21hcnNoYWxfQk9PTEVBTl9fT0JKRUNUX09CSkVDVCwKKyAgICAgICAgICAgICAgICAg
ICAgIEdfVFlQRV9CT09MRUFOLCAyLAorICAgICAgICAgICAgICAgICAgICAgV0VCS0lUX1RZUEVf
VVJJX1JFUVVFU1QsCisgICAgICAgICAgICAgICAgICAgICBXRUJLSVRfVFlQRV9VUklfUkVTUE9O
U0UpOwogCiAgICAgLyoqCiAgICAgICogV2ViS2l0V2ViUmVzb3VyY2U6OnNlbnQtcmVxdWVzdDoK
QEAgLTIxNSw2ICsyNDcsMTcgQEAgV2ViS2l0V2ViUmVzb3VyY2UqIHdlYmtpdFdlYlJlc291cmNl
Q3JlYXRlKFdLRnJhbWVSZWYgd2tGcmFtZSwgV2ViS2l0VVJJUmVxdWVzdCoKICAgICByZXR1cm4g
cmVzb3VyY2U7CiB9CiAKK1dLVHlwZVJlZiB3ZWJraXRXZWJSZXNvdXJjZVNlbmRSZXF1ZXN0KFdl
YktpdFdlYlJlc291cmNlKiByZXNvdXJjZSwgV2ViS2l0VVJJUmVxdWVzdCogcmVxdWVzdCwgV2Vi
S2l0VVJJUmVzcG9uc2UqIHJlZGlyZWN0UmVzcG9uc2UpCit7CisgICAgZ2Jvb2xlYW4gcmV0dXJu
VmFsdWU7CisgICAgZ19zaWduYWxfZW1pdChyZXNvdXJjZSwgc2lnbmFsc1tTRU5EX1JFUVVFU1Rd
LCAwLCByZXF1ZXN0LCByZWRpcmVjdFJlc3BvbnNlLCAmcmV0dXJuVmFsdWUpOworICAgIGlmIChy
ZXR1cm5WYWx1ZSkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICBSZWZQdHI8V2ViVVJMUmVxdWVz
dD4gd2ViVVJMUmVxdWVzdCA9IFdlYlVSTFJlcXVlc3Q6OmNyZWF0ZSh3ZWJraXRVUklSZXF1ZXN0
R2V0UmVzb3VyY2VSZXF1ZXN0KHJlcXVlc3QpKTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8V0tU
eXBlUmVmPih0b0FQSSh3ZWJVUkxSZXF1ZXN0LnJlbGVhc2UoKS5sZWFrUmVmKCkpKTsKK30KKwog
dm9pZCB3ZWJraXRXZWJSZXNvdXJjZVNlbnRSZXF1ZXN0KFdlYktpdFdlYlJlc291cmNlKiByZXNv
dXJjZSwgV2ViS2l0VVJJUmVxdWVzdCogcmVxdWVzdCwgV2ViS2l0VVJJUmVzcG9uc2UqIHJlZGly
ZWN0UmVzcG9uc2UpCiB7CiAgICAgd2Via2l0V2ViUmVzb3VyY2VVcGRhdGVVUkkocmVzb3VyY2Us
IHdlYmtpdF91cmlfcmVxdWVzdF9nZXRfdXJpKHJlcXVlc3QpKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlJlc291cmNlUHJpdmF0ZS5oIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViUmVzb3VyY2VQcml2YXRl
LmgKaW5kZXggNTAxMWFlNC4uYTZjOTc4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViUmVzb3VyY2VQcml2YXRlLmgKKysrIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViUmVzb3VyY2VQcml2YXRlLmgKQEAgLTI0
LDYgKzI0LDcgQEAKICNpbmNsdWRlICJXZWJLaXRXZWJSZXNvdXJjZS5oIgogCiBXZWJLaXRXZWJS
ZXNvdXJjZSogd2Via2l0V2ViUmVzb3VyY2VDcmVhdGUoV0tGcmFtZVJlZiwgV2ViS2l0VVJJUmVx
dWVzdCosIGJvb2wgaXNNYWluUmVzb3VyY2UpOworV0tUeXBlUmVmIHdlYmtpdFdlYlJlc291cmNl
U2VuZFJlcXVlc3QoV2ViS2l0V2ViUmVzb3VyY2UqLCBXZWJLaXRVUklSZXF1ZXN0KiwgV2ViS2l0
VVJJUmVzcG9uc2UqKTsKIHZvaWQgd2Via2l0V2ViUmVzb3VyY2VTZW50UmVxdWVzdChXZWJLaXRX
ZWJSZXNvdXJjZSosIFdlYktpdFVSSVJlcXVlc3QqLCBXZWJLaXRVUklSZXNwb25zZSopOwogdm9p
ZCB3ZWJraXRXZWJSZXNvdXJjZVNldFJlc3BvbnNlKFdlYktpdFdlYlJlc291cmNlKiwgV2ViS2l0
VVJJUmVzcG9uc2UqKTsKIHZvaWQgd2Via2l0V2ViUmVzb3VyY2VOb3RpZnlQcm9ncmVzcyhXZWJL
aXRXZWJSZXNvdXJjZSosIGd1aW50NjQgYnl0ZXNSZWNlaXZlZCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3LmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXcuY3BwCmluZGV4IDdhNmMwMWQu
LjM2MWVjYWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dl
YktpdFdlYlZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dl
YktpdFdlYlZpZXcuY3BwCkBAIC0zNiw2ICszNiw4IEBACiAjaW5jbHVkZSAiV2ViS2l0U2NyaXB0
RGlhbG9nUHJpdmF0ZS5oIgogI2luY2x1ZGUgIldlYktpdFNldHRpbmdzUHJpdmF0ZS5oIgogI2lu
Y2x1ZGUgIldlYktpdFVJQ2xpZW50LmgiCisjaW5jbHVkZSAiV2ViS2l0VVJJUmVxdWVzdFByaXZh
dGUuaCIKKyNpbmNsdWRlICJXZWJLaXRVUklSZXNwb25zZVByaXZhdGUuaCIKICNpbmNsdWRlICJX
ZWJLaXRXZWJDb250ZXh0UHJpdmF0ZS5oIgogI2luY2x1ZGUgIldlYktpdFdlYlJlc291cmNlUHJp
dmF0ZS5oIgogI2luY2x1ZGUgIldlYktpdFdlYlZpZXdCYXNlUHJpdmF0ZS5oIgpAQCAtMjEyLDE5
ICsyMTQsMTUgQEAgc3RhdGljIHZvaWQgd2Via2l0V2ViVmlld0NvbnN0cnVjdGVkKEdPYmplY3Qq
IG9iamVjdCkKICAgICAgICAgR19PQkpFQ1RfQ0xBU1Mod2Via2l0X3dlYl92aWV3X3BhcmVudF9j
bGFzcyktPmNvbnN0cnVjdGVkKG9iamVjdCk7CiAKICAgICBXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3
ID0gV0VCS0lUX1dFQl9WSUVXKG9iamVjdCk7Ci0gICAgV2ViS2l0V2ViVmlld1ByaXZhdGUqIHBy
aXYgPSB3ZWJWaWV3LT5wcml2OwotICAgIFdlYktpdFdlYlZpZXdCYXNlKiB3ZWJWaWV3QmFzZSA9
IFdFQktJVF9XRUJfVklFV19CQVNFKHdlYlZpZXcpOwotCi0gICAgd2Via2l0V2ViVmlld0Jhc2VD
cmVhdGVXZWJQYWdlKHdlYlZpZXdCYXNlLCB3ZWJraXRXZWJDb250ZXh0R2V0V0tDb250ZXh0KHBy
aXYtPmNvbnRleHQpLCAwKTsKLQorICAgIHdlYmtpdFdlYkNvbnRleHRDcmVhdGVQYWdlRm9yV2Vi
Vmlldyh3ZWJWaWV3LT5wcml2LT5jb250ZXh0LCB3ZWJWaWV3KTsKICAgICBhdHRhY2hMb2FkZXJD
bGllbnRUb1ZpZXcod2ViVmlldyk7CiAgICAgYXR0YWNoVUlDbGllbnRUb1ZpZXcod2ViVmlldyk7
CiAgICAgYXR0YWNoUG9saWN5Q2xpZW50VG9QYWdlKHdlYlZpZXcpOwogICAgIGF0dGFjaFJlc291
cmNlTG9hZENsaWVudFRvVmlldyh3ZWJWaWV3KTsKICAgICBhdHRhY2hGdWxsU2NyZWVuQ2xpZW50
VG9WaWV3KHdlYlZpZXcpOwogCi0gICAgV2ViUGFnZVByb3h5KiBwYWdlID0gd2Via2l0V2ViVmll
d0Jhc2VHZXRQYWdlKHdlYlZpZXdCYXNlKTsKLSAgICBwcml2LT5iYWNrRm9yd2FyZExpc3QgPSBh
ZG9wdEdSZWYod2Via2l0QmFja0ZvcndhcmRMaXN0Q3JlYXRlKFdLUGFnZUdldEJhY2tGb3J3YXJk
TGlzdCh0b0FQSShwYWdlKSkpKTsKKyAgICBXZWJQYWdlUHJveHkqIHBhZ2UgPSB3ZWJraXRXZWJW
aWV3QmFzZUdldFBhZ2UoV0VCS0lUX1dFQl9WSUVXX0JBU0Uod2ViVmlldykpOworICAgIHdlYlZp
ZXctPnByaXYtPmJhY2tGb3J3YXJkTGlzdCA9IGFkb3B0R1JlZih3ZWJraXRCYWNrRm9yd2FyZExp
c3RDcmVhdGUoV0tQYWdlR2V0QmFja0ZvcndhcmRMaXN0KHRvQVBJKHBhZ2UpKSkpOwogCiAgICAg
R1JlZlB0cjxXZWJLaXRTZXR0aW5ncz4gc2V0dGluZ3MgPSBhZG9wdEdSZWYod2Via2l0X3NldHRp
bmdzX25ldygpKTsKICAgICB3ZWJraXRXZWJWaWV3U2V0U2V0dGluZ3Mod2ViVmlldywgc2V0dGlu
Z3MuZ2V0KCksIHRvQVBJKHBhZ2UpKTsKQEAgLTI3NSwxMCArMjczLDEyIEBAIHN0YXRpYyB2b2lk
IHdlYmtpdFdlYlZpZXdHZXRQcm9wZXJ0eShHT2JqZWN0KiBvYmplY3QsIGd1aW50IHByb3BJZCwg
R1ZhbHVlKiB2YWx1CiAKIHN0YXRpYyB2b2lkIHdlYmtpdFdlYlZpZXdGaW5hbGl6ZShHT2JqZWN0
KiBvYmplY3QpCiB7Ci0gICAgV2ViS2l0V2ViVmlld1ByaXZhdGUqIHByaXYgPSBXRUJLSVRfV0VC
X1ZJRVcob2JqZWN0KS0+cHJpdjsKLSAgICBpZiAocHJpdi0+amF2YXNjcmlwdEdsb2JhbENvbnRl
eHQpCi0gICAgICAgIEpTR2xvYmFsQ29udGV4dFJlbGVhc2UocHJpdi0+amF2YXNjcmlwdEdsb2Jh
bENvbnRleHQpOwotICAgIHByaXYtPn5XZWJLaXRXZWJWaWV3UHJpdmF0ZSgpOworICAgIFdlYktp
dFdlYlZpZXcqIHdlYlZpZXcgPSBXRUJLSVRfV0VCX1ZJRVcob2JqZWN0KTsKKyAgICB3ZWJraXRX
ZWJDb250ZXh0V2ViVmlld0ZpbmFsaXplZCh3ZWJWaWV3LT5wcml2LT5jb250ZXh0LCB3ZWJWaWV3
KTsKKworICAgIGlmICh3ZWJWaWV3LT5wcml2LT5qYXZhc2NyaXB0R2xvYmFsQ29udGV4dCkKKyAg
ICAgICAgSlNHbG9iYWxDb250ZXh0UmVsZWFzZSh3ZWJWaWV3LT5wcml2LT5qYXZhc2NyaXB0R2xv
YmFsQ29udGV4dCk7CisgICAgd2ViVmlldy0+cHJpdi0+fldlYktpdFdlYlZpZXdQcml2YXRlKCk7
CiAgICAgR19PQkpFQ1RfQ0xBU1Mod2Via2l0X3dlYl92aWV3X3BhcmVudF9jbGFzcyktPmZpbmFs
aXplKG9iamVjdCk7CiB9CiAKQEAgLTk2NCw2ICs5NjQsMzMgQEAgYm9vbCB3ZWJraXRXZWJWaWV3
TGVhdmVGdWxsU2NyZWVuKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcpCiAgICAgcmV0dXJuICFyZXR1
cm5WYWx1ZTsKIH0KIAorV0tUeXBlUmVmIHdlYmtpdFdlYlZpZXdEaWRSZWNlaXZlTWVzc2FnZUZy
b21JbmplY3RlZEJ1bmRsZShXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3LCBXS1N0cmluZ1JlZiBtZXNz
YWdlTmFtZSwgV0tUeXBlUmVmIG1lc3NhZ2VCb2R5KQoreworICAgIFdLVHlwZVJlZiByZXR1cm5W
YWx1ZSA9IDA7CisKKyAgICBpZiAoV0tTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhtZXNzYWdl
TmFtZSwgIldpbGxTZW5kUmVxdWVzdEZvckZyYW1lIikpIHsKKyAgICAgICAgQVNTRVJUKFdLR2V0
VHlwZUlEKG1lc3NhZ2VCb2R5KSA9PSBXS0RpY3Rpb25hcnlHZXRUeXBlSUQoKSk7CisgICAgICAg
IFdLRGljdGlvbmFyeVJlZiBtZXNzYWdlQm9keURpY3Rpb25hcnkgPSBzdGF0aWNfY2FzdDxXS0Rp
Y3Rpb25hcnlSZWY+KG1lc3NhZ2VCb2R5KTsKKworICAgICAgICBXS1JldGFpblB0cjxXS1N0cmlu
Z1JlZj4gcmVzb3VyY2VJZGVudGlmaWVyS2V5KEFkb3B0V0ssIFdLU3RyaW5nQ3JlYXRlV2l0aFVU
RjhDU3RyaW5nKCJSZXNvdXJjZUlkZW50aWZpZXIiKSk7CisgICAgICAgIHVpbnQ2NF90IHJlc291
cmNlSWRlbnRpZmllciA9IFdLVUludDY0R2V0VmFsdWUoc3RhdGljX2Nhc3Q8V0tVSW50NjRSZWY+
KFdLRGljdGlvbmFyeUdldEl0ZW1Gb3JLZXkobWVzc2FnZUJvZHlEaWN0aW9uYXJ5LCByZXNvdXJj
ZUlkZW50aWZpZXJLZXkuZ2V0KCkpKSk7CisKKyAgICAgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdS
ZWY+IHJlcXVlc3RLZXkoQWRvcHRXSywgV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIlJl
cXVlc3QiKSk7CisgICAgICAgIFdLVVJMUmVxdWVzdFJlZiB3a1JlcXVlc3QgPSBzdGF0aWNfY2Fz
dDxXS1VSTFJlcXVlc3RSZWY+KFdLRGljdGlvbmFyeUdldEl0ZW1Gb3JLZXkobWVzc2FnZUJvZHlE
aWN0aW9uYXJ5LCByZXF1ZXN0S2V5LmdldCgpKSk7CisKKyAgICAgICAgV0tSZXRhaW5QdHI8V0tT
dHJpbmdSZWY+IHJlZGlyZWN0UmVzcG9uc2VLZXkoQWRvcHRXSywgV0tTdHJpbmdDcmVhdGVXaXRo
VVRGOENTdHJpbmcoIlJlZGlyZWN0UmVzcG9uc2UiKSk7CisgICAgICAgIFdLVVJMUmVzcG9uc2VS
ZWYgd2tSZWRpcmVjdFJlc3BvbnNlID0gc3RhdGljX2Nhc3Q8V0tVUkxSZXNwb25zZVJlZj4oV0tE
aWN0aW9uYXJ5R2V0SXRlbUZvcktleShtZXNzYWdlQm9keURpY3Rpb25hcnksIHJlZGlyZWN0UmVz
cG9uc2VLZXkuZ2V0KCkpKTsKKworICAgICAgICBXZWJLaXRXZWJSZXNvdXJjZSogcmVzb3VyY2Ug
PSB3ZWJraXRXZWJWaWV3R2V0TG9hZGluZ1dlYlJlc291cmNlKHdlYlZpZXcsIHJlc291cmNlSWRl
bnRpZmllcik7CisgICAgICAgIEdSZWZQdHI8V2ViS2l0VVJJUmVxdWVzdD4gcmVxdWVzdCA9IGFk
b3B0R1JlZih3ZWJraXRVUklSZXF1ZXN0Q3JlYXRlRm9yUmVzb3VyY2VSZXF1ZXN0KHRvSW1wbCh3
a1JlcXVlc3QpLT5yZXNvdXJjZVJlcXVlc3QoKSkpOworICAgICAgICBHUmVmUHRyPFdlYktpdFVS
SVJlc3BvbnNlPiByZWRpcmVjdFJlc3BvbnNlID0gd2tSZWRpcmVjdFJlc3BvbnNlID8gYWRvcHRH
UmVmKHdlYmtpdFVSSVJlc3BvbnNlQ3JlYXRlRm9yUmVzb3VyY2VSZXNwb25zZSh0b0ltcGwod2tS
ZWRpcmVjdFJlc3BvbnNlKS0+cmVzb3VyY2VSZXNwb25zZSgpKSkgOiAwOworICAgICAgICByZXR1
cm5WYWx1ZSA9IHdlYmtpdFdlYlJlc291cmNlU2VuZFJlcXVlc3QocmVzb3VyY2UsIHJlcXVlc3Qu
Z2V0KCksIHJlZGlyZWN0UmVzcG9uc2UuZ2V0KCkpOworICAgIH0gZWxzZQorICAgICAgICBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsKKworICAgIHJldHVybiByZXR1cm5WYWx1ZTsKK30KKwogLyoqCiAg
KiB3ZWJraXRfd2ViX3ZpZXdfbmV3OgogICoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXdQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3UHJpdmF0ZS5oCmluZGV4IDcwZDZkNmQuLjAz
NzM5MzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktp
dFdlYlZpZXdQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsv
V2ViS2l0V2ViVmlld1ByaXZhdGUuaApAQCAtNTEsNSArNTEsNiBAQCB2b2lkIHdlYmtpdFdlYlZp
ZXdSZW1vdmVMb2FkaW5nV2ViUmVzb3VyY2UoV2ViS2l0V2ViVmlldyosIHVpbnQ2NF90IHJlc291
cmNlSWRlbgogV2ViS2l0V2ViUmVzb3VyY2UqIHdlYmtpdFdlYlZpZXdSZXNvdXJjZUxvYWRGaW5p
c2hlZChXZWJLaXRXZWJWaWV3KiwgdWludDY0X3QgcmVzb3VyY2VJZGVudGlmaWVyKTsKIGJvb2wg
d2Via2l0V2ViVmlld0VudGVyRnVsbFNjcmVlbihXZWJLaXRXZWJWaWV3Kik7CiBib29sIHdlYmtp
dFdlYlZpZXdMZWF2ZUZ1bGxTY3JlZW4oV2ViS2l0V2ViVmlldyopOworV0tUeXBlUmVmIHdlYmtp
dFdlYlZpZXdEaWRSZWNlaXZlTWVzc2FnZUZyb21JbmplY3RlZEJ1bmRsZShXZWJLaXRXZWJWaWV3
KiwgV0tTdHJpbmdSZWYgbWVzc2FnZU5hbWUsIFdLVHlwZVJlZiBtZXNzYWdlQm9keSk7CiAKICNl
bmRpZiAvLyBXZWJLaXRXZWJWaWV3UHJpdmF0ZV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJndGstc2VjdGlvbnMudHh0IGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3RrLXNlY3Rpb25zLnR4dApp
bmRleCA4MjlkZTFjLi43YzBlYmYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJndGstc2VjdGlvbnMudHh0CisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay1zZWN0aW9ucy50eHQKQEAgLTI3
MCw2ICsyNzAsNyBAQCB3ZWJraXRfc2V0dGluZ3NfZ2V0X3R5cGUKIFdlYktpdFVSSVJlcXVlc3QK
IHdlYmtpdF91cmlfcmVxdWVzdF9uZXcKIHdlYmtpdF91cmlfcmVxdWVzdF9nZXRfdXJpCit3ZWJr
aXRfdXJpX3JlcXVlc3Rfc2V0X3VyaQogCiA8U1VCU0VDVElPTiBTdGFuZGFyZD4KIFdlYktpdFVS
SVJlcXVlc3RDbGFzcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9n
dGsvdGVzdHMvR05VbWFrZWZpbGUuYW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0
ay90ZXN0cy9HTlVtYWtlZmlsZS5hbQppbmRleCBjODYxMTI1Li40ZmE3ZjI3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay90ZXN0cy9HTlVtYWtlZmlsZS5hbQor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay90ZXN0cy9HTlVtYWtlZmlsZS5h
bQpAQCAtMjMsNiArMjMsNyBAQCBlbmRpZgogCiB3ZWJraXQyX3Rlc3RzX2NwcGZsYWdzID0gXAog
CS1EV0VCS0lUX0VYRUNfUEFUSD1cIiR7c2hlbGwgcHdkfS8kKHRvcF9idWlsZGRpcikvUHJvZ3Jh
bXNcIiBcCisJLURXRUJLSVRfV0VCX0JVTkRMRV9QQVRIPVwiJHtzaGVsbCBwd2R9LyQodG9wX2J1
aWxkZGlyKS8ubGlic1wiIFwKIAktRFdFQktJVF9TUkNfRElSPVwiJHtzaGVsbCBwd2R9LyR7c3Jj
ZGlyfVwiIFwKIAkkKGphdmFzY3JpcHRjb3JlX2NwcGZsYWdzKSBcCiAJLUkkKHNyY2RpcikvU291
cmNlL0phdmFTY3JpcHRDb3JlIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvZ3RrL3Rlc3RzL1Rlc3RNYWluLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvZ3RrL3Rlc3RzL1Rlc3RNYWluLmNwcAppbmRleCA4NjIyYWYxLi41YTM2ODY0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay90ZXN0cy9UZXN0TWFpbi5jcHAK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvdGVzdHMvVGVzdE1haW4uY3Bw
CkBAIC0yOSw2ICsyOSw3IEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyKiogYXJndikKIHsKICAg
ICBndGtfdGVzdF9pbml0KCZhcmdjLCAmYXJndiwgMCk7CiAgICAgZ19zZXRlbnYoIldFQktJVF9F
WEVDX1BBVEgiLCBXRUJLSVRfRVhFQ19QQVRILCBGQUxTRSk7CisgICAgZ19zZXRlbnYoIldFQktJ
VF9XRUJfQlVORExFX1BBVEgiLCBXRUJLSVRfV0VCX0JVTkRMRV9QQVRILCBGQUxTRSk7CiAgICAg
Z190ZXN0X2J1Z19iYXNlKCJodHRwczovL2J1Z3Mud2Via2l0Lm9yZy8iKTsKIAogICAgIGJlZm9y
ZUFsbCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvdGVz
dHMvVGVzdFJlc291cmNlcy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay90
ZXN0cy9UZXN0UmVzb3VyY2VzLmNwcAppbmRleCBmZWU4YmE1Li5lZjkxODA1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay90ZXN0cy9UZXN0UmVzb3VyY2VzLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay90ZXN0cy9UZXN0UmVzb3Vy
Y2VzLmNwcApAQCAtNDYsNiArNDYsMTQgQEAgY2xhc3MgUmVzb3VyY2VzVGVzdDogcHVibGljIFdl
YlZpZXdUZXN0IHsKIHB1YmxpYzoKICAgICBNQUtFX0dMSUJfVEVTVF9GSVhUVVJFKFJlc291cmNl
c1Rlc3QpOwogCisgICAgc3RhdGljIGdib29sZWFuIHJlc291cmNlU2VuZFJlcXVlc3RDYWxsYmFj
ayhXZWJLaXRXZWJSZXNvdXJjZSogcmVzb3VyY2UsIFdlYktpdFVSSVJlcXVlc3QqIHJlcXVlc3Qs
IFdlYktpdFVSSVJlc3BvbnNlKiByZWRpcmVjdFJlc3BvbnNlLCBSZXNvdXJjZXNUZXN0KiB0ZXN0
KQorICAgIHsKKyAgICAgICAgdGVzdC0+YXNzZXJ0T2JqZWN0SXNEZWxldGVkV2hlblRlc3RGaW5p
c2hlcyhHX09CSkVDVChyZXF1ZXN0KSk7CisgICAgICAgIGlmIChyZWRpcmVjdFJlc3BvbnNlKQor
ICAgICAgICAgICAgdGVzdC0+YXNzZXJ0T2JqZWN0SXNEZWxldGVkV2hlblRlc3RGaW5pc2hlcyhH
X09CSkVDVChyZWRpcmVjdFJlc3BvbnNlKSk7CisgICAgICAgIHJldHVybiB0ZXN0LT5yZXNvdXJj
ZVNlbmRSZXF1ZXN0KHJlc291cmNlLCByZXF1ZXN0LCByZWRpcmVjdFJlc3BvbnNlKTsKKyAgICB9
CisKICAgICBzdGF0aWMgdm9pZCByZXNvdXJjZVNlbnRSZXF1ZXN0Q2FsbGJhY2soV2ViS2l0V2Vi
UmVzb3VyY2UqIHJlc291cmNlLCBXZWJLaXRVUklSZXF1ZXN0KiByZXF1ZXN0LCBXZWJLaXRVUklS
ZXNwb25zZSogcmVkaXJlY3RSZXNwb25zZSwgUmVzb3VyY2VzVGVzdCogdGVzdCkKICAgICB7CiAg
ICAgICAgIHRlc3QtPmFzc2VydE9iamVjdElzRGVsZXRlZFdoZW5UZXN0RmluaXNoZXMoR19PQkpF
Q1QocmVxdWVzdCkpOwpAQCAtODEsNiArODksNyBAQCBwdWJsaWM6CiAgICAgICAgIHRlc3QtPmFz
c2VydE9iamVjdElzRGVsZXRlZFdoZW5UZXN0RmluaXNoZXMoR19PQkpFQ1QocmVzb3VyY2UpKTsK
ICAgICAgICAgdGVzdC0+YXNzZXJ0T2JqZWN0SXNEZWxldGVkV2hlblRlc3RGaW5pc2hlcyhHX09C
SkVDVChyZXF1ZXN0KSk7CiAgICAgICAgIHRlc3QtPnJlc291cmNlTG9hZFN0YXJ0ZWQocmVzb3Vy
Y2UsIHJlcXVlc3QpOworICAgICAgICBnX3NpZ25hbF9jb25uZWN0KHJlc291cmNlLCAic2VuZC1y
ZXF1ZXN0IiwgR19DQUxMQkFDSyhyZXNvdXJjZVNlbmRSZXF1ZXN0Q2FsbGJhY2spLCB0ZXN0KTsK
ICAgICAgICAgZ19zaWduYWxfY29ubmVjdChyZXNvdXJjZSwgInNlbnQtcmVxdWVzdCIsIEdfQ0FM
TEJBQ0socmVzb3VyY2VTZW50UmVxdWVzdENhbGxiYWNrKSwgdGVzdCk7CiAgICAgICAgIGdfc2ln
bmFsX2Nvbm5lY3QocmVzb3VyY2UsICJub3RpZnk6OnJlc3BvbnNlIiwgR19DQUxMQkFDSyhyZXNv
dXJjZVJlY2VpdmVkUmVzcG9uc2VDYWxsYmFjayksIHRlc3QpOwogICAgICAgICBnX3NpZ25hbF9j
b25uZWN0KHJlc291cmNlLCAicmVjZWl2ZWQtZGF0YSIsIEdfQ0FMTEJBQ0socmVzb3VyY2VSZWNl
aXZlZERhdGFDYWxsYmFjayksIHRlc3QpOwpAQCAtMTAxLDYgKzExMCwxMSBAQCBwdWJsaWM6CiAg
ICAgewogICAgIH0KIAorICAgIHZpcnR1YWwgYm9vbCByZXNvdXJjZVNlbmRSZXF1ZXN0KFdlYktp
dFdlYlJlc291cmNlKiByZXNvdXJjZSwgV2ViS2l0VVJJUmVxdWVzdCogcmVxdWVzdCwgV2ViS2l0
VVJJUmVzcG9uc2UqIHJlZGlyZWN0UmVzcG9uc2UpCisgICAgeworICAgICAgICByZXR1cm4gZmFs
c2U7CisgICAgfQorCiAgICAgdmlydHVhbCB2b2lkIHJlc291cmNlU2VudFJlcXVlc3QoV2ViS2l0
V2ViUmVzb3VyY2UqIHJlc291cmNlLCBXZWJLaXRVUklSZXF1ZXN0KiByZXF1ZXN0LCBXZWJLaXRV
UklSZXNwb25zZSogcmVkaXJlY3RSZXNwb25zZSkKICAgICB7CiAgICAgfQpAQCAtNDgxLDYgKzQ5
NSw3NCBAQCBzdGF0aWMgdm9pZCB0ZXN0V2ViUmVzb3VyY2VHZXREYXRhKFJlc291cmNlc1Rlc3Qq
IHRlc3QsIGdjb25zdHBvaW50ZXIpCiAgICAgICAgIHRlc3QtPmNoZWNrUmVzb3VyY2VEYXRhKFdF
QktJVF9XRUJfUkVTT1VSQ0UoaXRlbS0+ZGF0YSkpOwogfQogCitjbGFzcyBTZW5kUmVxdWVzdFRl
c3Q6IHB1YmxpYyBTaW5nbGVSZXNvdXJjZUxvYWRUZXN0IHsKK3B1YmxpYzoKKyAgICBNQUtFX0dM
SUJfVEVTVF9GSVhUVVJFKFNlbmRSZXF1ZXN0VGVzdCk7CisKKyAgICBib29sIHJlc291cmNlU2Vu
ZFJlcXVlc3QoV2ViS2l0V2ViUmVzb3VyY2UqIHJlc291cmNlLCBXZWJLaXRVUklSZXF1ZXN0KiBy
ZXF1ZXN0LCBXZWJLaXRVUklSZXNwb25zZSogcmVkaXJlY3RSZXNwb25zZSkKKyAgICB7CisgICAg
ICAgIGlmIChyZXNvdXJjZSAhPSBtX3Jlc291cmNlKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OworCisgICAgICAgIGlmIChtX3Jlc291cmNlVVJJLmlzTnVsbCgpKQorICAgICAgICAgICAgcmV0
dXJuIHRydWU7CisKKyAgICAgICAgd2Via2l0X3VyaV9yZXF1ZXN0X3NldF91cmkocmVxdWVzdCwg
bV9yZXNvdXJjZVVSSS5kYXRhKCkpOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisg
ICAgdm9pZCByZXNvdXJjZVNlbnRSZXF1ZXN0KFdlYktpdFdlYlJlc291cmNlKiByZXNvdXJjZSwg
V2ViS2l0VVJJUmVxdWVzdCogcmVxdWVzdCwgV2ViS2l0VVJJUmVzcG9uc2UqIHJlZGlyZWN0UmVz
cG9uc2UpCisgICAgeworICAgICAgICBpZiAocmVzb3VyY2UgIT0gbV9yZXNvdXJjZSkKKyAgICAg
ICAgICAgIHJldHVybjsKKyAgICAgICAgZ19hc3NlcnRfY21wc3RyKHdlYmtpdF91cmlfcmVxdWVz
dF9nZXRfdXJpKHJlcXVlc3QpLCA9PSwgbV9yZXNvdXJjZVVSSS5kYXRhKCkpOworICAgICAgICBn
X2Fzc2VydF9jbXBzdHIod2Via2l0X3VyaV9yZXF1ZXN0X2dldF91cmkocmVxdWVzdCksID09LCB3
ZWJraXRfd2ViX3Jlc291cmNlX2dldF91cmkocmVzb3VyY2UpKTsKKyAgICAgICAgU2luZ2xlUmVz
b3VyY2VMb2FkVGVzdDo6cmVzb3VyY2VTZW50UmVxdWVzdChyZXNvdXJjZSwgcmVxdWVzdCwgcmVk
aXJlY3RSZXNwb25zZSk7CisgICAgfQorCisgICAgdm9pZCByZXNvdXJjZUZhaWxlZChXZWJLaXRX
ZWJSZXNvdXJjZSogcmVzb3VyY2UsIEdFcnJvciogZXJyb3IpCisgICAgeworICAgICAgICBnX2Fz
c2VydChtX3Jlc291cmNlVVJJLmlzTnVsbCgpKTsKKyAgICAgICAgZ19hc3NlcnRfZXJyb3IoZXJy
b3IsIFdFQktJVF9ORVRXT1JLX0VSUk9SLCBXRUJLSVRfTkVUV09SS19FUlJPUl9DQU5DRUxMRUQp
OworICAgICAgICBTaW5nbGVSZXNvdXJjZUxvYWRUZXN0OjpyZXNvdXJjZUZhaWxlZChyZXNvdXJj
ZSwgZXJyb3IpOworICAgIH0KKworICAgIHZvaWQgc2V0UmVzb3VyY2VVUkkoY29uc3QgQ1N0cmlu
ZyYgdXJpKQorICAgIHsKKyAgICAgICAgbV9yZXNvdXJjZVVSSSA9IHVyaTsKKyAgICB9CisKKyAg
ICBDU3RyaW5nIG1fcmVzb3VyY2VVUkk7Cit9OworCitzdGF0aWMgdm9pZCB0ZXN0V2ViUmVzb3Vy
Y2VTZW5kUmVxdWVzdChTZW5kUmVxdWVzdFRlc3QqIHRlc3QsIGdjb25zdHBvaW50ZXIpCit7Cisg
ICAgdGVzdC0+c2V0UmVzb3VyY2VVUkkoa1NlcnZlci0+Z2V0VVJJRm9yUGF0aCgiL2phdmFzY3Jp
cHQuanMiKSk7CisgICAgdGVzdC0+bG9hZFVSSShrU2VydmVyLT5nZXRVUklGb3JQYXRoKCJyZWxh
dGl2ZS1qYXZhc2NyaXB0Lmh0bWwiKS5kYXRhKCkpOworICAgIHRlc3QtPndhaXRVbnRpbFJlc291
cmNlTG9hZEZpbnNpaGVkKCk7CisgICAgZ19hc3NlcnQodGVzdC0+bV9yZXNvdXJjZSk7CisgICAg
VmVjdG9yPFNpbmdsZVJlc291cmNlTG9hZFRlc3Q6OkxvYWRFdmVudHM+JiBldmVudHMgPSB0ZXN0
LT5tX2xvYWRFdmVudHM7CisgICAgZ19hc3NlcnRfY21waW50KGV2ZW50cy5zaXplKCksID09LCA1
KTsKKyAgICBnX2Fzc2VydF9jbXBpbnQoZXZlbnRzWzBdLCA9PSwgU2luZ2xlUmVzb3VyY2VMb2Fk
VGVzdDo6U3RhcnRlZCk7CisgICAgZ19hc3NlcnRfY21waW50KGV2ZW50c1sxXSwgPT0sIFNpbmds
ZVJlc291cmNlTG9hZFRlc3Q6OlNlbnRSZXF1ZXN0KTsKKyAgICBnX2Fzc2VydF9jbXBpbnQoZXZl
bnRzWzJdLCA9PSwgU2luZ2xlUmVzb3VyY2VMb2FkVGVzdDo6UmVjZWl2ZWRSZXNwb25zZSk7Cisg
ICAgZ19hc3NlcnRfY21waW50KGV2ZW50c1szXSwgPT0sIFNpbmdsZVJlc291cmNlTG9hZFRlc3Q6
OlJlY2VpdmVkRGF0YSk7CisgICAgZ19hc3NlcnRfY21waW50KGV2ZW50c1s0XSwgPT0sIFNpbmds
ZVJlc291cmNlTG9hZFRlc3Q6OkZpbmlzaGVkKTsKKyAgICBldmVudHMuY2xlYXIoKTsKKworICAg
IC8vIENhbmNlbCByZXF1ZXN0LgorICAgIHRlc3QtPnNldFJlc291cmNlVVJJKENTdHJpbmcoKSk7
CisgICAgdGVzdC0+bG9hZFVSSShrU2VydmVyLT5nZXRVUklGb3JQYXRoKCJyZWxhdGl2ZS1qYXZh
c2NyaXB0Lmh0bWwiKS5kYXRhKCkpOworICAgIHRlc3QtPndhaXRVbnRpbFJlc291cmNlTG9hZEZp
bnNpaGVkKCk7CisgICAgZ19hc3NlcnQodGVzdC0+bV9yZXNvdXJjZSk7CisgICAgZXZlbnRzID0g
dGVzdC0+bV9sb2FkRXZlbnRzOworICAgIGdfYXNzZXJ0X2NtcGludChldmVudHMuc2l6ZSgpLCA9
PSwgMyk7CisgICAgZ19hc3NlcnRfY21waW50KGV2ZW50c1swXSwgPT0sIFNpbmdsZVJlc291cmNl
TG9hZFRlc3Q6OlN0YXJ0ZWQpOworICAgIGdfYXNzZXJ0X2NtcGludChldmVudHNbMV0sID09LCBT
aW5nbGVSZXNvdXJjZUxvYWRUZXN0OjpGYWlsZWQpOworICAgIGdfYXNzZXJ0X2NtcGludChldmVu
dHNbMl0sID09LCBTaW5nbGVSZXNvdXJjZUxvYWRUZXN0OjpGaW5pc2hlZCk7CisgICAgZXZlbnRz
LmNsZWFyKCk7Cit9CisKIHN0YXRpYyB2b2lkIGFkZENhY2hlSFRUUEhlYWRlcnNUb1Jlc3BvbnNl
KFNvdXBNZXNzYWdlKiBtZXNzYWdlKQogewogICAgIC8vIFRoZSBhY3R1YWwgZGF0ZSBkb2Vzbid0
IHJlYWxseSBtYXR0ZXIuCkBAIC01MjQsNiArNjA2LDkgQEAgc3RhdGljIHZvaWQgc2VydmVyQ2Fs
bGJhY2soU291cFNlcnZlciogc2VydmVyLCBTb3VwTWVzc2FnZSogbWVzc2FnZSwgY29uc3QgY2hh
cioKICAgICB9IGVsc2UgaWYgKGdfc3RyX2VxdWFsKHBhdGgsICIvaW52YWxpZC1jc3MuaHRtbCIp
KSB7CiAgICAgICAgIHN0YXRpYyBjb25zdCBjaGFyKiBpbnZhbGlkQ1NTSHRtbCA9ICI8aHRtbD48
aGVhZD48bGluayByZWw9J3N0eWxlc2hlZXQnIGhyZWY9Jy9pbnZhbGlkLmNzcycgdHlwZT0ndGV4
dC9jc3MnPjwvaGVhZD48Ym9keT48L2h0bWw+IjsKICAgICAgICAgc291cF9tZXNzYWdlX2JvZHlf
YXBwZW5kKG1lc3NhZ2UtPnJlc3BvbnNlX2JvZHksIFNPVVBfTUVNT1JZX1NUQVRJQywgaW52YWxp
ZENTU0h0bWwsIHN0cmxlbihpbnZhbGlkQ1NTSHRtbCkpOworICAgIH0gZWxzZSBpZiAoZ19zdHJf
ZXF1YWwocGF0aCwgIi9yZWxhdGl2ZS1qYXZhc2NyaXB0Lmh0bWwiKSkgeworICAgICAgICBzdGF0
aWMgY29uc3QgY2hhciogamF2YXNjcmlwdFJlbGF0aXZlSHRtbCA9ICI8aHRtbD48aGVhZD48c2Ny
aXB0IGxhbmd1YWdlPSdqYXZhc2NyaXB0JyBzcmM9J3NjcmlwdHMvamF2YXNjcmlwdC5qcyc+PC9z
Y3JpcHQ+PC9oZWFkPjxib2R5PjwvYm9keT48L2h0bWw+IjsKKyAgICAgICAgc291cF9tZXNzYWdl
X2JvZHlfYXBwZW5kKG1lc3NhZ2UtPnJlc3BvbnNlX2JvZHksIFNPVVBfTUVNT1JZX1NUQVRJQywg
amF2YXNjcmlwdFJlbGF0aXZlSHRtbCwgc3RybGVuKGphdmFzY3JpcHRSZWxhdGl2ZUh0bWwpKTsK
ICAgICB9IGVsc2UgaWYgKGdfc3RyX2VxdWFsKHBhdGgsICIvc3R5bGUuY3NzIikpIHsKICAgICAg
ICAgc291cF9tZXNzYWdlX2JvZHlfYXBwZW5kKG1lc3NhZ2UtPnJlc3BvbnNlX2JvZHksIFNPVVBf
TUVNT1JZX1NUQVRJQywga1N0eWxlQ1NTLCBzdHJsZW4oa1N0eWxlQ1NTKSk7CiAgICAgICAgIGFk
ZENhY2hlSFRUUEhlYWRlcnNUb1Jlc3BvbnNlKG1lc3NhZ2UpOwpAQCAtNTYxLDYgKzY0Niw3IEBA
IHZvaWQgYmVmb3JlQWxsKCkKICAgICBTaW5nbGVSZXNvdXJjZUxvYWRUZXN0OjphZGQoIldlYktp
dFdlYlJlc291cmNlIiwgInJlc3BvbnNlIiwgdGVzdFdlYlJlc291cmNlUmVzcG9uc2UpOwogICAg
IFJlc291cmNlVVJJVHJhY2tpbmdUZXN0OjphZGQoIldlYktpdFdlYlJlc291cmNlIiwgImFjdGl2
ZS11cmkiLCB0ZXN0V2ViUmVzb3VyY2VBY3RpdmVVUkkpOwogICAgIFJlc291cmNlc1Rlc3Q6OmFk
ZCgiV2ViS2l0V2ViUmVzb3VyY2UiLCAiZ2V0LWRhdGEiLCB0ZXN0V2ViUmVzb3VyY2VHZXREYXRh
KTsKKyAgICBTZW5kUmVxdWVzdFRlc3Q6OmFkZCgiV2ViS2l0V2ViUmVzb3VyY2UiLCAic2VuZC1y
ZXF1ZXN0IiwgdGVzdFdlYlJlc291cmNlU2VuZFJlcXVlc3QpOwogfQogCiB2b2lkIGFmdGVyQWxs
KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL3dlYmtpdDJt
YXJzaGFsLmxpc3QgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay93ZWJraXQybWFy
c2hhbC5saXN0CmluZGV4IGRlMzAzMjguLjI2OWY1ZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL3dlYmtpdDJtYXJzaGFsLmxpc3QKKysrIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvd2Via2l0Mm1hcnNoYWwubGlzdApAQCAtMiw2ICsyLDcg
QEAgQk9PTEVBTjpCT1hFRAogQk9PTEVBTjpFTlVNLFNUUklORyxQT0lOVEVSCiBCT09MRUFOOk9C
SkVDVAogQk9PTEVBTjpPQkpFQ1QsRU5VTQorQk9PTEVBTjpPQkpFQ1QsT0JKRUNUCiBCT09MRUFO
OlNUUklORwogQk9PTEVBTjpWT0lECiBPQkpFQ1Q6Vk9JRApkaWZmIC0tZ2l0IGEvVG9vbHMvTWlu
aUJyb3dzZXIvZ3RrL0dOVW1ha2VmaWxlLmFtIGIvVG9vbHMvTWluaUJyb3dzZXIvZ3RrL0dOVW1h
a2VmaWxlLmFtCmluZGV4IDMzODgyOTAuLjc2YzUzYzEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL01pbmlC
cm93c2VyL2d0ay9HTlVtYWtlZmlsZS5hbQorKysgYi9Ub29scy9NaW5pQnJvd3Nlci9ndGsvR05V
bWFrZWZpbGUuYW0KQEAgLTksNiArOSw3IEBAIFByb2dyYW1zX01pbmlCcm93c2VyX0NQUEZMQUdT
ID0gXAogCS1JJCh0b3BfYnVpbGRkaXIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvd2Via2l0Mmd0
ayBcCiAJLUkkKHRvcF9idWlsZGRpcikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi93ZWJraXQyZ3Rr
L2luY2x1ZGUgXAogCS1EV0VCS0lUX0VYRUNfUEFUSD1cIiR7c2hlbGwgcHdkfS8kKHRvcF9idWls
ZGRpcikvUHJvZ3JhbXMvXCIgXAorCS1EV0VCS0lUX1dFQl9CVU5ETEVfUEFUSD1cIiR7c2hlbGwg
cHdkfS8kKHRvcF9idWlsZGRpcikvLmxpYnNcIiBcCiAJJChnbG9iYWxfY3BwZmxhZ3MpIFwKIAkk
KGphdmFzY3JpcHRjb3JlX2NwcGZsYWdzKSBcCiAJJChHTElCX0NGTEFHUykgXApkaWZmIC0tZ2l0
IGEvVG9vbHMvTWluaUJyb3dzZXIvZ3RrL21haW4uYyBiL1Rvb2xzL01pbmlCcm93c2VyL2d0ay9t
YWluLmMKaW5kZXggYjI2NmNkYy4uZmQ1MjYxYSAxMDA2NDQKLS0tIGEvVG9vbHMvTWluaUJyb3dz
ZXIvZ3RrL21haW4uYworKysgYi9Ub29scy9NaW5pQnJvd3Nlci9ndGsvbWFpbi5jCkBAIC0yMjIs
NiArMjIyLDkgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKICAgICB9CiAgICAg
Z19vcHRpb25fY29udGV4dF9mcmVlIChjb250ZXh0KTsKIAorICAgIC8vIFByZWZlciB0aGUgbm90
IGluc3RhbGxlZCB3ZWIgYnVuZGxlLgorICAgIGdfc2V0ZW52KCJXRUJLSVRfV0VCX0JVTkRMRV9Q
QVRIIiwgV0VCS0lUX1dFQl9CVU5ETEVfUEFUSCwgRkFMU0UpOworCiAgICAgaWYgKHVyaUFyZ3Vt
ZW50cykgewogICAgICAgICBpbnQgaTsKIAo=
</data>
<flag name="commit-queue"
          id="141524"
          type_id="3"
          status="-"
          setter="gustavo"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>136652</attachid>
            <date>2012-04-11 03:20:18 -0700</date>
            <delta_ts>2013-02-28 06:57:08 -0800</delta_ts>
            <desc>Updated patch to fix the build</desc>
            <filename>wk2-resource-send-request2.diff</filename>
            <type>text/plain</type>
            <size>53174</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCBlYjNjZDUxLi4zYmM5MjYy
IDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAK
KzIwMTItMDQtMTEgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgor
CisgICAgICAgIFtHVEtdIEFkZCBXZWJLaXRXZWJSZXNvdXJjZTo6c2VuZC1yZXF1ZXN0IHNpZ25h
bCB0byBXZWJLaXQyIEdUSysgQVBJCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD04MzY4MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogR05VbWFrZWZpbGUuYW06IEluY2x1ZGUgV2ViS2l0SW5qZWN0ZWRCdW5k
bGUgTWFrZWZpbGUuCisKIDIwMTItMDQtMTAgIFlhZWwgQWhhcm9uICA8eWFlbC5haGFyb25Abm9r
aWEuY29tPgogCiAgICAgICAgIEluaXRpYWwgc3VwcG9ydCBmb3IgZml4ZWQgcG9zaXRpb24gZWxl
bWVudHMgaW4gUXQgV2ViS2l0MgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDliODBiODUuLmZkOWYyOWIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFu
Z2VMb2cKQEAgLTEsMyArMSw5NiBAQAorMjAxMi0wNC0xMSAgQ2FybG9zIEdhcmNpYSBDYW1wb3Mg
IDxjZ2FyY2lhQGlnYWxpYS5jb20+CisKKyAgICAgICAgW0dUS10gQWRkIFdlYktpdFdlYlJlc291
cmNlOjpzZW5kLXJlcXVlc3Qgc2lnbmFsIHRvIFdlYktpdDIgR1RLKyBBUEkKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTgzNjgxCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5hbTogQWRk
IG5ldyBmaWxlcyB0byBjb21waWxhdGlvbi4KKyAgICAgICAgKiBTaGFyZWQvVXNlck1lc3NhZ2VD
b2RlcnMuaDoKKyAgICAgICAgKFdlYktpdDo6VXNlck1lc3NhZ2VFbmNvZGVyOjpiYXNlRW5jb2Rl
KTogQWxsb3cgdG8gZW5jb2RlCisgICAgICAgIFdlYlVSTFJlc3BvbnNlIG9iamVjdHMgaW4gdXNl
ciBtZXNzYWdlcy4KKyAgICAgICAgKFdlYktpdDo6VXNlck1lc3NhZ2VEZWNvZGVyOjpiYXNlRGVj
b2RlKTogQWxsb3cgdG8gZGVjb2RlCisgICAgICAgIFdlYlVSTFJlc3BvbnNlIG9iamVjdHMgZnJv
bSB1c2VyIG1lc3NhZ2VzLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEluamVj
dGVkQnVuZGxlL0dOVW1ha2VmaWxlLmFtOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L2d0ay9XZWJLaXRJbmplY3RlZEJ1bmRsZS9XZWJLaXRJbmplY3RlZEJ1bmRsZS5jcHA6IEFkZGVk
LgorICAgICAgICAoV2ViS2l0SW5qZWN0ZWRCdW5kbGU6OldlYktpdEluamVjdGVkQnVuZGxlOjpz
aGFyZWQpOiBSZXR1cm4gdGhlCisgICAgICAgIGdsb2JhbCBXZWJLaXRJbmplY3RlZEJ1bmRsZS4K
KyAgICAgICAgKFdlYktpdEluamVjdGVkQnVuZGxlOjpXZWJLaXRJbmplY3RlZEJ1bmRsZTo6V2Vi
S2l0SW5qZWN0ZWRCdW5kbGUpOgorICAgICAgICAoV2ViS2l0SW5qZWN0ZWRCdW5kbGU6OldlYktp
dEluamVjdGVkQnVuZGxlOjpkaWRDcmVhdGVQYWdlKToKKyAgICAgICAgSW5pdGlhbGl6ZSBXS0J1
bmRsZVBhZ2VSZXNvdXJjZUxvYWRDbGllbnQgZm9yIHRoZSBuZXcgcGFnZS4KKyAgICAgICAgKFdl
YktpdEluamVjdGVkQnVuZGxlOjpXZWJLaXRJbmplY3RlZEJ1bmRsZTo6aW5pdGlhbGl6ZSk6Cisg
ICAgICAgIEluaXRpYWxpemUgV0tCdW5kbGVDbGllbnQuCisgICAgICAgIChXZWJLaXRJbmplY3Rl
ZEJ1bmRsZTo6V2ViS2l0SW5qZWN0ZWRCdW5kbGU6OndpbGxTZW5kUmVxdWVzdEZvckZyYW1lKToK
KyAgICAgICAgU2VuZCBhIG1lc3NhZ2UgdG8gdGhlIGJ1bmRsZSBjbGllbnQgdG8gbm90aWZ5IHRo
YXQgYSBVUkxSZXF1ZXN0IGlzCisgICAgICAgIGFib3V0IHRvIGJlIHNlbnQgZm9yIGEgcmVzb3Vy
Y2UuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0SW5qZWN0ZWRCdW5kbGUvV2Vi
S2l0SW5qZWN0ZWRCdW5kbGUuaDogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsv
V2ViS2l0SW5qZWN0ZWRCdW5kbGUvV2ViS2l0SW5qZWN0ZWRCdW5kbGVNYWluLmNwcDoKKyAgICAg
ICAgKFdLQnVuZGxlSW5pdGlhbGl6ZSk6IEluamVjdGVkIGJ1bmRsZSBpbml0aWFsaXphdGlvbiBm
dW5jdGlvbi4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRJbmplY3RlZEJ1bmRs
ZUNsaWVudC5jcHA6IEFkZGVkLgorICAgICAgICAoZGlkUmVjZWl2ZU1lc3NhZ2VGcm9tSW5qZWN0
ZWRCdW5kbGUpOiBDYWxsIHdlYmtpdFdlYkNvbnRleHREaWRSZWNlaXZlTWVzc2FnZUZyb21Jbmpl
Y3RlZEJ1bmRsZSgpLgorICAgICAgICAoZGlkUmVjZWl2ZVN5bmNocm9ub3VzTWVzc2FnZUZyb21J
bmplY3RlZEJ1bmRsZSk6IERpdHRvLgorICAgICAgICAoYXR0YWNoSW5qZWN0ZWRCdW5kbGVDbGll
bnRUb0NvbnRleHQpOiBJbml0aWFsaXplIFdLQ29udGV4dEluamVjdGVkQnVuZGxlQ2xpZW50Lgor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEluamVjdGVkQnVuZGxlQ2xpZW50Lmg6
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VVJJUmVxdWVzdC5jcHA6CisgICAg
ICAgICh3ZWJraXRVUklSZXF1ZXN0U2V0UHJvcGVydHkpOiBVc2Ugd2Via2l0X3VyaV9yZXF1ZXN0
X3NldF91cmkoKSB0bworICAgICAgICBzZXQgdGhlIG5ldyBVUkkuCisgICAgICAgICh3ZWJraXRf
dXJpX3JlcXVlc3RfY2xhc3NfaW5pdCk6IE1ha2UgVVJJIHByb3BlcnR5IGNvbnN0cnVjdAorICAg
ICAgICBpbnN0ZWFkIG9mIGNvbnN0cnVjdC1vbmx5LCBzaW5jZSBpdCBjYW4gYmUgdXBkYXRlZCBv
bmNlCisgICAgICAgIGNvbnN0cnVjdGVkLiBJdCBzaG91bGQgbmV2ZXIgYmUgTlVMTCwgc28gc2V0
IGRlZmF1bHQgdmFsdWUgdG8KKyAgICAgICAgYWJvdXQ6YmxhbmsgaW5zdGFkIG9mIE5VTEw6Cisg
ICAgICAgICh3ZWJraXRVUklSZXF1ZXN0R2V0UmVzb3VyY2VSZXF1ZXN0KTogSGVscGVyIHByaXZh
dGUgZnVuY3Rpb24gdG8KKyAgICAgICAgZ2V0IGEgY29uc3QgcmVmZXJlbmNlIG9mIHRoZSBXZWJD
b3JlOjpSZXNvdXJjZVJlcXVlc3QuCisgICAgICAgICh3ZWJraXRfdXJpX3JlcXVlc3Rfc2V0X3Vy
aSk6IE5ldyBwdWJsaWMgbWV0aG9kIHRvIHNldCB0aGUgVVJJIG9mCisgICAgICAgIHRoZSBXZWJL
aXRVUklSZXF1ZXN0LgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVSSVJlcXVl
c3QuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVUklSZXF1ZXN0UHJpdmF0
ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYkNvbnRleHQuY3BwOgor
ICAgICAgICAoX1dlYktpdFdlYkNvbnRleHRQcml2YXRlKTogQWRkIGEgSGFzaE1hcCB0byBtYXAg
cGFnZSBJRHMgdG8KKyAgICAgICAgV2ViS2l0V2ViVmlld3MuCisgICAgICAgIChnZXRXZWJCdW5k
bGVEaXJlY3RvcnkpOiBIZWxwZXIgZnVuY3Rpb24gdG8gZ2V0IHRoZSB3ZWIgYnVuZGxlIGRpcmVj
dG9yeS4KKyAgICAgICAgKGdldFdlYkJ1bmRsZUZpbGVuYW1lKTogSGVscGVyIGZ1bmN0aW9uIHRv
IGdldCB0aGUgd2ViIGJ1bmRsZSBmdWxsIHBhdGguCisgICAgICAgIChjcmVhdGVEZWZhdWx0V2Vi
Q29udGV4dCk6IENyZWF0ZSB0aGUgV0tDb250ZXh0IHdpdGggYSBpbmplY3RlZAorICAgICAgICBi
dW5kbGUsIGFuZCBhdHRhY2ggdGhlIGluamVjdGVkIGJ1bmRsZSBjbGllbnQgdG8gdGhlIGNvbnRl
eHQuCisgICAgICAgICh3ZWJraXRXZWJDb250ZXh0Q3JlYXRlUGFnZUZvcldlYlZpZXcpOiBVc2UK
KyAgICAgICAgd2Via2l0V2ViVmlld0Jhc2VDcmVhdGVXZWJQYWdlKCkgdG8gY3JlYXRlIGFuZCBp
bml0aWFsaXplIGEgbmV3CisgICAgICAgIFdlYlBhZ2VQcm94eSBhbmQgbWFwIHRoZSBuZXdseSBj
cmVhdGVkIHBhZ2Ugd2l0aCB0aGUgZ2l2ZW4gV2ViS2l0V2ViVmlldy4KKyAgICAgICAgKHdlYmtp
dFdlYkNvbnRleHRXZWJWaWV3RmluYWxpemVkKTogUmVtb3ZlIHRoZSBnaXZlbiBXZWJLaXRXZWJW
aWV3CisgICAgICAgIGZyb20gdGhlIHZpZXdzIG1hcC4KKyAgICAgICAgKHdlYmtpdFdlYkNvbnRl
eHREaWRSZWNlaXZlTWVzc2FnZUZyb21JbmplY3RlZEJ1bmRsZSk6IENoZWNrCisgICAgICAgIHdo
ZXRoZXIgcmVjZWl2ZWQgbWVzc2FnZSBpcyBhIFdlYktpdFdlYlZpZXcgbWVzc2FnZSBhbmQgZm9y
d2FyZCB0aGUKKyAgICAgICAgc3VibWVzc2FnZSB0byB0aGUgV2ViS2l0V2ViVmlldyBhc3NvY2lh
dGVkIHRvIHRoZSBnaXZlbiBwYWdlLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktp
dFdlYkNvbnRleHRQcml2YXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0
V2ViUmVzb3VyY2UuY3BwOgorICAgICAgICAod2Via2l0X3dlYl9yZXNvdXJjZV9jbGFzc19pbml0
KTogQWRkCisgICAgICAgIFdlYktpdFdlYlJlc291cmNlOjpzZW5kLXJlcXVlc3Qgc2lnbmFsLgor
ICAgICAgICAod2Via2l0V2ViUmVzb3VyY2VTZW5kUmVxdWVzdCk6IEVtaXQKKyAgICAgICAgV2Vi
S2l0V2ViUmVzb3VyY2U6OnNlbmQtcmVxdWVzdCBzaWduYWwuCisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9ndGsvV2ViS2l0V2ViUmVzb3VyY2VQcml2YXRlLmg6CisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9ndGsvV2ViS2l0V2ViVmlldy5jcHA6CisgICAgICAgICh3ZWJraXRXZWJWaWV3Q29uc3Ry
dWN0ZWQpOiBVc2UKKyAgICAgICAgd2Via2l0V2ViQ29udGV4dENyZWF0ZVBhZ2VGb3JXZWJWaWV3
KCkgaW5zdGVhZCBvZgorICAgICAgICB3ZWJraXRXZWJWaWV3QmFzZUNyZWF0ZVdlYlBhZ2UoKSB0
byBjcmVhdGUgdGhlIFdlYlBhZ2VQcm94eSBmb3IKKyAgICAgICAgdGhlIHZpZXcuCisgICAgICAg
ICh3ZWJraXRXZWJWaWV3RmluYWxpemUpOiBOb3RpZnkgdGhlIHdlYiBjb250ZXh0IHRoYXQgdGhl
IHZpZXcgaXMKKyAgICAgICAgYmVpbmcgZmluYWxpemVkLgorICAgICAgICAod2Via2l0V2ViVmll
d0RpZFJlY2VpdmVNZXNzYWdlRnJvbUluamVjdGVkQnVuZGxlKTogQ2hlY2sgd2hldGhlcgorICAg
ICAgICB0aGUgbWVzc2FnZSByZWNlaXZlZCBpcyBXaWxsU2VuZFJlcXVlc3RGb3JGcmFtZSBhbmQg
Y2FsbAorICAgICAgICB3ZWJraXRXZWJSZXNvdXJjZVNlbmRSZXF1ZXN0KCkgaW4gdGhhdCBjYXNl
LCBzbyB0aGF0CisgICAgICAgIFdlYktpdFdlYlJlc291cmNlOjpzZW5kLXJlcXVlc3Qgd2lsbCBi
ZSBlbWl0dGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXdQcml2
YXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3RrLXNlY3Rp
b25zLnR4dDogQWRkCisgICAgICAgIHdlYmtpdF91cmlfcmVxdWVzdF9zZXRfdXJpLgorICAgICAg
ICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL3Rlc3RzL0dOVW1ha2VmaWxlLmFtOiBBZGQKKyAgICAgICAg
V0VCS0lUX1dFQl9CVU5ETEVfUEFUSCBtYWNybyB0byBjb21waWxhdGlvbi4KKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL2d0ay90ZXN0cy9UZXN0TWFpbi5jcHA6CisgICAgICAgIChtYWluKTogU2V0
IFdFQktJVF9XRUJfQlVORExFX1BBVEggZW52aXJvbm1lbnQgdmFyaWFibGUgc28gdGhhdAorICAg
ICAgICB0ZXN0cyB3aWxsIHVzZSB0aGUgbm90IGluc3RhbGxlZCB3ZWIgYnVuZGxlLgorICAgICAg
ICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL3Rlc3RzL1Rlc3RSZXNvdXJjZXMuY3BwOgorICAgICAgICAo
dGVzdFdlYlJlc291cmNlU2VuZFJlcXVlc3QpOgorICAgICAgICAoc2VydmVyQ2FsbGJhY2spOgor
ICAgICAgICAoYmVmb3JlQWxsKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay93ZWJraXQy
bWFyc2hhbC5saXN0OgorCiAyMDEyLTA0LTEwICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJj
aWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLiBGaXggbWFrZSBkaXN0Y2hlY2sg
aXNzdWVzLgpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmlu
ZGV4IGJjMTIyOWIuLmZiMmM0NzQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9U
b29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAxMi0wNC0xMSAgQ2FybG9zIEdhcmNp
YSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CisKKyAgICAgICAgW0dUS10gQWRkIFdlYktp
dFdlYlJlc291cmNlOjpzZW5kLXJlcXVlc3Qgc2lnbmFsIHRvIFdlYktpdDIgR1RLKyBBUEkKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTgzNjgxCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBNaW5pQnJvd3Nl
ci9ndGsvR05VbWFrZWZpbGUuYW06IEFkZCBXRUJLSVRfV0VCX0JVTkRMRV9QQVRIIG1hY3JvCisg
ICAgICAgIHRvIGNvbXBpbGF0aW9uLgorICAgICAgICAqIE1pbmlCcm93c2VyL2d0ay9tYWluLmM6
CisgICAgICAgIChtYWluKTogU2V0IFdFQktJVF9XRUJfQlVORExFX1BBVEggZW52aXJvbm1lbnQg
dmFyaWFibGUgc28gdGhhdAorICAgICAgICBNaW5pQnJvd3NlciB1c2VzIHRoZSBub3QgaW5zdGFs
bGVkIHdlYiBidW5kbGUuCisgICAgICAgICogZ3RrL2dlbmVyYXRlLWd0a2RvYzoKKyAgICAgICAg
KGdldF93ZWJraXQyX29wdGlvbnMpOiBJZ25vcmUgaGVhZGVyIGZpbGVzIGluIFdlYktpdEluamVj
dGVkQnVuZGxlCisgICAgICAgIGRpcmVjdG9yeS4KKwogMjAxMi0wNC0xMCAgS2VudCBUYW11cmEg
IDx0a2VudEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZC4gVXNpbmcgdGtlbnQr
d2thcGlAIGZvciBDaHJvbWl1bVB1YmxpY0FwaSBub3RpZmljYXRpb25zLgpkaWZmIC0tZ2l0IGEv
R05VbWFrZWZpbGUuYW0gYi9HTlVtYWtlZmlsZS5hbQppbmRleCBkODc1MWVkLi4xNTY4ZWQzIDEw
MDY0NAotLS0gYS9HTlVtYWtlZmlsZS5hbQorKysgYi9HTlVtYWtlZmlsZS5hbQpAQCAtMjQ2LDYg
KzI0Niw3IEBAIGluY2x1ZGUgU291cmNlL1dlYktpdC9ndGsvcG8vR05VbWFrZWZpbGUuYW0KIGlu
Y2x1ZGUgVG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL0dOVW1ha2VmaWxlLkltYWdlRGlmZi5hbQog
CiBpbmNsdWRlIFNvdXJjZS9XZWJLaXQyL0dOVW1ha2VmaWxlLmFtCitpbmNsdWRlIFNvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEluamVjdGVkQnVuZGxlL0dOVW1ha2VmaWxl
LmFtCiBpbmNsdWRlIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL3Rlc3RzL0dOVW1h
a2VmaWxlLmFtCiBpbmNsdWRlIFRvb2xzL01pbmlCcm93c2VyL2d0ay9HTlVtYWtlZmlsZS5hbQog
aW5jbHVkZSBUb29scy9XZWJLaXRUZXN0UnVubmVyL0dOVW1ha2VmaWxlLmFtCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmlsZS5hbSBiL1NvdXJjZS9XZWJLaXQyL0dOVW1ha2Vm
aWxlLmFtCmluZGV4IGIzYjczZjMuLjJlMmYyNjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L0dOVW1ha2VmaWxlLmFtCisrKyBiL1NvdXJjZS9XZWJLaXQyL0dOVW1ha2VmaWxlLmFtCkBAIC01
NjQsNiArNTY0LDggQEAgd2Via2l0Ml9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL2d0ay9XZWJLaXRIaXRUZXN0UmVzdWx0LmNwcCBcCiAJU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0SGl0VGVzdFJlc3VsdC5oIFwKIAlTb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRIaXRUZXN0UmVzdWx0UHJpdmF0ZS5oIFwKKwlTb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRJbmplY3RlZEJ1bmRsZUNsaWVudC5j
cHAgXAorCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEluamVjdGVkQnVu
ZGxlQ2xpZW50LmggXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEph
dmFzY3JpcHRSZXN1bHQuY3BwIFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9X
ZWJLaXRKYXZhc2NyaXB0UmVzdWx0LmggXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Z3RrL1dlYktpdEphdmFzY3JpcHRSZXN1bHRQcml2YXRlLmggXApAQCAtMTA2Nyw3ICsxMDY5LDkg
QEAgbGlid2Via2l0Mmd0a19AV0VCS0lUR1RLX0FQSV9NQUpPUl9WRVJTSU9OQF9AV0VCS0lUR1RL
X0FQSV9NSU5PUl9WRVJTSU9OQF9sYV9DUFAKIAktSSQodG9wX2J1aWxkZGlyKS9EZXJpdmVkU291
cmNlcy9XZWJLaXQyL2luY2x1ZGUvSmF2YVNjcmlwdENvcmUgXAogCS1JJCh0b3BfYnVpbGRkaXIp
L0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvaW5jbHVkZS9XZWJDb3JlIFwKIAktSSQodG9wX2J1aWxk
ZGlyKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL2luY2x1ZGUvV2ViS2l0MiBcCisJLURMSUJESVI9
XCIiJChsaWJkaXIpIlwiIFwKIAktRExJQkVYRUNESVI9XCIiJChsaWJleGVjZGlyKSJcIiBcCisJ
LURXRUJLSVRHVEtfQVBJX1ZFUlNJT049XCIiJChXRUJLSVRHVEtfQVBJX1ZFUlNJT04pIlwiIFwK
IAktRFdFQktJVDJfQ09NUElMQVRJT04gXAogCSQod2ViY29yZV9jcHBmbGFncykgXAogCSQod2Vi
Y29yZWd0a19jcHBmbGFncykgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1Vz
ZXJNZXNzYWdlQ29kZXJzLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvVXNlck1lc3NhZ2VDb2Rl
cnMuaAppbmRleCBhY2U3MmZkLi5iZjgxOTU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvVXNlck1lc3NhZ2VDb2RlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvVXNl
ck1lc3NhZ2VDb2RlcnMuaApAQCAtNDQsNiArNDQsNyBAQAogI2luY2x1ZGUgIldlYlN0cmluZy5o
IgogI2luY2x1ZGUgIldlYlVSTC5oIgogI2luY2x1ZGUgIldlYlVSTFJlcXVlc3QuaCIKKyNpbmNs
dWRlICJXZWJVUkxSZXNwb25zZS5oIgogI2luY2x1ZGUgIldlYlVzZXJDb250ZW50VVJMUGF0dGVy
bi5oIgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAgLTYzLDYgKzY0LDcgQEAgbmFtZXNwYWNlIFdl
YktpdCB7CiAvLyAgIC0gV2ViVUludDY0IC0+IFdlYlVJbnQ2NAogLy8gICAtIFdlYlVSTCAtPiBX
ZWJVUkwKIC8vICAgLSBXZWJVUkxSZXF1ZXN0IC0+IFdlYlVSTFJlcXVlc3QKKy8vICAgLSBXZWJV
UkxSZXNwb25zZSAtPiBXZWJVUkxSZXNwb25zZQogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBPd25lcj4K
IGNsYXNzIFVzZXJNZXNzYWdlRW5jb2RlciB7CkBAIC0xNzcsNiArMTc5LDExIEBAIHB1YmxpYzoK
ICAgICAgICAgICAgIGVuY29kZXItPmVuY29kZSh1cmxSZXF1ZXN0T2JqZWN0LT5yZXNvdXJjZVJl
cXVlc3QoKSk7CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQorICAgICAgICBj
YXNlIEFQSU9iamVjdDo6VHlwZVVSTFJlc3BvbnNlOiB7CisgICAgICAgICAgICBXZWJVUkxSZXNw
b25zZSogdXJsUmVzcG9uc2VPYmplY3QgPSBzdGF0aWNfY2FzdDxXZWJVUkxSZXNwb25zZSo+KG1f
cm9vdCk7CisgICAgICAgICAgICBlbmNvZGVyLT5lbmNvZGUodXJsUmVzcG9uc2VPYmplY3QtPnJl
c291cmNlUmVzcG9uc2UoKSk7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQog
ICAgICAgICBjYXNlIEFQSU9iamVjdDo6VHlwZVVzZXJDb250ZW50VVJMUGF0dGVybjogewogICAg
ICAgICAgICAgV2ViVXNlckNvbnRlbnRVUkxQYXR0ZXJuKiB1cmxQYXR0ZXJuID0gc3RhdGljX2Nh
c3Q8V2ViVXNlckNvbnRlbnRVUkxQYXR0ZXJuKj4obV9yb290KTsKICAgICAgICAgICAgIGVuY29k
ZXItPmVuY29kZSh1cmxQYXR0ZXJuLT5wYXR0ZXJuU3RyaW5nKCkpOwpAQCAtMjM5LDYgKzI0Niw3
IEBAIHByb3RlY3RlZDoKIC8vICAgLSBXZWJVSW50NjQgLT4gV2ViVUludDY0CiAvLyAgIC0gV2Vi
VVJMIC0+IFdlYlVSTAogLy8gICAtIFdlYlVSTFJlcXVlc3QgLT4gV2ViVVJMUmVxdWVzdAorLy8g
ICAtIFdlYlVSTFJlc3BvbnNlIC0+IFdlYlVSTFJlc3BvbnNlCiAKIHRlbXBsYXRlPHR5cGVuYW1l
IE93bmVyPgogY2xhc3MgVXNlck1lc3NhZ2VEZWNvZGVyIHsKQEAgLTQ0OCw2ICs0NTYsMTMgQEAg
cHVibGljOgogICAgICAgICAgICAgY29kZXIubV9yb290ID0gV2ViVVJMUmVxdWVzdDo6Y3JlYXRl
KHJlcXVlc3QpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KKyAgICAgICAgY2FzZSBB
UElPYmplY3Q6OlR5cGVVUkxSZXNwb25zZTogeworICAgICAgICAgICAgV2ViQ29yZTo6UmVzb3Vy
Y2VSZXNwb25zZSByZXNwb25zZTsKKyAgICAgICAgICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKHJl
c3BvbnNlKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICBjb2Rl
ci5tX3Jvb3QgPSBXZWJVUkxSZXNwb25zZTo6Y3JlYXRlKHJlc3BvbnNlKTsKKyAgICAgICAgICAg
IGJyZWFrOworICAgICAgICB9CiAgICAgICAgIGNhc2UgQVBJT2JqZWN0OjpUeXBlVXNlckNvbnRl
bnRVUkxQYXR0ZXJuOiB7CiAgICAgICAgICAgICBTdHJpbmcgc3RyaW5nOwogICAgICAgICAgICAg
aWYgKCFkZWNvZGVyLT5kZWNvZGUoc3RyaW5nKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEluamVjdGVkQnVuZGxlL0dOVW1ha2VmaWxlLmFtIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0SW5qZWN0ZWRCdW5kbGUvR05V
bWFrZWZpbGUuYW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWY1MTc2NAot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktp
dEluamVjdGVkQnVuZGxlL0dOVW1ha2VmaWxlLmFtCkBAIC0wLDAgKzEsMjQgQEAKK2lmIEVOQUJM
RV9XRUJLSVQyCisKK3dlYmJ1bmRsZWRpciA9ICQobGliZGlyKS93ZWJraXQyZ3RrLTMuMC8kKFdF
QktJVEdUS19BUElfVkVSU0lPTikvd2ViYnVuZGxlCit3ZWJidW5kbGVfTFRMSUJSQVJJRVMgPSBs
aWJ3ZWJraXQyZ3Rrd2ViYnVuZGxlLmxhCisKK2xpYndlYmtpdDJndGt3ZWJidW5kbGVfbGFfU09V
UkNFUyA9IFwKKwlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRJbmplY3Rl
ZEJ1bmRsZS9XZWJLaXRJbmplY3RlZEJ1bmRsZS5jcHAgXAorCVNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvZ3RrL1dlYktpdEluamVjdGVkQnVuZGxlL1dlYktpdEluamVjdGVkQnVuZGxlLmgg
XAorCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEluamVjdGVkQnVuZGxl
L1dlYktpdEluamVjdGVkQnVuZGxlTWFpbi5jcHAKKworbGlid2Via2l0Mmd0a3dlYmJ1bmRsZV9s
YV9MREZMQUdTID0gXAorCSQobm9fdW5kZWZpbmVkKSBcCisJLW1vZHVsZSBcCisJLWF2b2lkLXZl
cnNpb24KKworbGlid2Via2l0Mmd0a3dlYmJ1bmRsZV9sYV9DUFBGTEFHUyA9IFwKKwktZm5vLXN0
cmljdC1hbGlhc2luZyBcCisJLUkkKHRvcF9idWlsZGRpcikvRGVyaXZlZFNvdXJjZXMvSW5qZWN0
ZWRCdW5kbGUgXAorCS1JJCh0b3BfYnVpbGRkaXIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvaW5j
bHVkZSBcCisJJChnbG9iYWxfY3BwZmxhZ3MpIFwKKwkkKGphdmFzY3JpcHRjb3JlX2NwcGZsYWdz
KSBcCisJJChHTElCX0NGTEFHUykKKworZW5kaWYgIyBFTkFCTEVfV0VCS0lUMgpcIE5vIG5ld2xp
bmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvZ3RrL1dlYktpdEluamVjdGVkQnVuZGxlL1dlYktpdEluamVjdGVkQnVuZGxlLmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEluamVjdGVkQnVuZGxlL1dlYktp
dEluamVjdGVkQnVuZGxlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4x
Njg0OTBmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9n
dGsvV2ViS2l0SW5qZWN0ZWRCdW5kbGUvV2ViS2l0SW5qZWN0ZWRCdW5kbGUuY3BwCkBAIC0wLDAg
KzEsMTE2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIElnYWxpYSBTLkwuCisgKgorICog
VGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFu
ZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJl
IEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQg
eW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBk
aXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJ
VEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YK
KyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4g
IFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUg
ZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBH
TlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGli
cmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhl
IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0
aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNpbmNsdWRl
ICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJLaXRJbmplY3RlZEJ1bmRsZS5oIgorCisjaW5jbHVk
ZSA8V2ViS2l0Mi9XS0J1bmRsZS5oPgorI2luY2x1ZGUgPFdlYktpdDIvV0tCdW5kbGVJbml0aWFs
aXplLmg+CisjaW5jbHVkZSA8V2ViS2l0Mi9XS0J1bmRsZVBhZ2UuaD4KKyNpbmNsdWRlIDxXZWJL
aXQyL1dLUmV0YWluUHRyLmg+CisjaW5jbHVkZSA8V2ViS2l0Mi9XZWJLaXQyLmg+CisjaW5jbHVk
ZSA8Z2xpYi5oPgorCituYW1lc3BhY2UgV2ViS2l0SW5qZWN0ZWRCdW5kbGUgeworCitXZWJLaXRJ
bmplY3RlZEJ1bmRsZSYgV2ViS2l0SW5qZWN0ZWRCdW5kbGU6OnNoYXJlZCgpCit7CisgICAgc3Rh
dGljIFdlYktpdEluamVjdGVkQnVuZGxlJiBzaGFyZWQgPSAqbmV3IFdlYktpdEluamVjdGVkQnVu
ZGxlOworICAgIHJldHVybiBzaGFyZWQ7Cit9CisKK1dlYktpdEluamVjdGVkQnVuZGxlOjpXZWJL
aXRJbmplY3RlZEJ1bmRsZSgpCisgICAgOiBtX2J1bmRsZSgwKQoreworfQorCit2b2lkIFdlYktp
dEluamVjdGVkQnVuZGxlOjpkaWRDcmVhdGVQYWdlKFdLQnVuZGxlUmVmLCBXS0J1bmRsZVBhZ2VS
ZWYgcGFnZSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKK3sKKyAgICBzdGF0aWNfY2FzdDxXZWJL
aXRJbmplY3RlZEJ1bmRsZSo+KGNvbnN0X2Nhc3Q8dm9pZCo+KGNsaWVudEluZm8pKS0+ZGlkQ3Jl
YXRlUGFnZShwYWdlKTsKK30KKwordm9pZCBXZWJLaXRJbmplY3RlZEJ1bmRsZTo6aW5pdGlhbGl6
ZShXS0J1bmRsZVJlZiBidW5kbGUsIFdLVHlwZVJlZiBpbml0aWFsaXphdGlvblVzZXJEYXRhKQor
eworICAgIG1fYnVuZGxlID0gYnVuZGxlOworCisgICAgV0tCdW5kbGVDbGllbnQgYnVuZGxlQ2xp
ZW50ID0geworICAgICAgICBrV0tCdW5kbGVDbGllbnRDdXJyZW50VmVyc2lvbiwKKyAgICAgICAg
dGhpcywKKyAgICAgICAgZGlkQ3JlYXRlUGFnZSwKKyAgICAgICAgMCwgLy8gd2lsbERlc3Ryb3lQ
YWdlCisgICAgICAgIDAsIC8vIGRpZEluaXRpYWxpemVQYWdlR3JvdXAKKyAgICAgICAgMCAvLyBk
aWRSZWNlaXZlTWVzc2FnZQorICAgIH07CisgICAgV0tCdW5kbGVTZXRDbGllbnQoYnVuZGxlLCAm
YnVuZGxlQ2xpZW50KTsKK30KKworV0tVUkxSZXF1ZXN0UmVmIFdlYktpdEluamVjdGVkQnVuZGxl
Ojp3aWxsU2VuZFJlcXVlc3RGb3JGcmFtZShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tCdW5kbGVG
cmFtZVJlZiwgdWludDY0X3QgcmVzb3VyY2VJZGVudGlmaWVyLCBXS1VSTFJlcXVlc3RSZWYgcmVx
dWVzdCwgV0tVUkxSZXNwb25zZVJlZiByZWRpcmVjdFJlc3BvbnNlLCBjb25zdCB2b2lkKiBjbGll
bnRJbmZvKQoreworICAgIHJldHVybiBzdGF0aWNfY2FzdDxXZWJLaXRJbmplY3RlZEJ1bmRsZSo+
KGNvbnN0X2Nhc3Q8dm9pZCo+KGNsaWVudEluZm8pKS0+d2lsbFNlbmRSZXF1ZXN0Rm9yRnJhbWUo
cGFnZSwgcmVzb3VyY2VJZGVudGlmaWVyLCByZXF1ZXN0LCByZWRpcmVjdFJlc3BvbnNlKTsKK30K
Kwordm9pZCBXZWJLaXRJbmplY3RlZEJ1bmRsZTo6ZGlkQ3JlYXRlUGFnZShXS0J1bmRsZVBhZ2VS
ZWYgcGFnZSkKK3sKKyAgICBXS0J1bmRsZVBhZ2VSZXNvdXJjZUxvYWRDbGllbnQgcmVzb3VyY2VM
b2FkQ2xpZW50ID0geworICAgICAgICBrV0tCdW5kbGVQYWdlUmVzb3VyY2VMb2FkQ2xpZW50Q3Vy
cmVudFZlcnNpb24sCisgICAgICAgIHRoaXMsCisgICAgICAgIDAsIC8vIGRpZEluaXRpYXRlTG9h
ZEZvclJlc291cmNlCisgICAgICAgIHdpbGxTZW5kUmVxdWVzdEZvckZyYW1lLAorICAgICAgICAw
LCAvLyBkaWRSZWNlaXZlUmVzcG9uc2VGb3JSZXNvdXJjZQorICAgICAgICAwLCAvLyBkaWRSZWNl
aXZlQ29udGVudExlbmd0aEZvclJlc291cmNlCisgICAgICAgIDAsIC8vIGRpZEZpbmlzaExvYWRG
b3JSZXNvdXJjZQorICAgICAgICAwLCAvLyBkaWRGYWlsTG9hZEZvclJlc291cmNlCisgICAgICAg
IDAsIC8vIHNob3VsZENhY2hlUmVzcG9uc2UKKyAgICAgICAgMCAvLyBzaG91bGRVc2VDcmVkZW50
aWFsU3RvcmFnZQorICAgIH07CisgICAgV0tCdW5kbGVQYWdlU2V0UmVzb3VyY2VMb2FkQ2xpZW50
KHBhZ2UsICZyZXNvdXJjZUxvYWRDbGllbnQpOworfQorCitXS1VSTFJlcXVlc3RSZWYgV2ViS2l0
SW5qZWN0ZWRCdW5kbGU6OndpbGxTZW5kUmVxdWVzdEZvckZyYW1lKFdLQnVuZGxlUGFnZVJlZiBw
YWdlLCB1aW50NjRfdCByZXNvdXJjZUlkZW50aWZpZXIsIFdLVVJMUmVxdWVzdFJlZiByZXF1ZXN0
LCBXS1VSTFJlc3BvbnNlUmVmIHJlZGlyZWN0UmVzcG9uc2UpCit7CisgICAgV0tSZXRhaW5QdHI8
V0tTdHJpbmdSZWY+IG1lc3NhZ2VOYW1lKEFkb3B0V0ssIFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhD
U3RyaW5nKCJXZWJLaXRXZWJWaWV3IikpOworICAgIFdLUmV0YWluUHRyPFdLTXV0YWJsZURpY3Rp
b25hcnlSZWY+IG1lc3NhZ2VCb2R5KEFkb3B0V0ssIFdLTXV0YWJsZURpY3Rpb25hcnlDcmVhdGUo
KSk7CisgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IHBhZ2VLZXkoQWRvcHRXSywgV0tTdHJp
bmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIlBhZ2UiKSk7CisgICAgV0tEaWN0aW9uYXJ5QWRkSXRl
bShtZXNzYWdlQm9keS5nZXQoKSwgcGFnZUtleS5nZXQoKSwgcGFnZSk7CisKKyAgICBXS1JldGFp
blB0cjxXS1N0cmluZ1JlZj4gc3ViTWVzc2FnZU5hbWVLZXkoQWRvcHRXSywgV0tTdHJpbmdDcmVh
dGVXaXRoVVRGOENTdHJpbmcoIlN1Yk1lc3NhZ2VOYW1lIikpOworICAgIFdLUmV0YWluUHRyPFdL
U3RyaW5nUmVmPiBzdWJNZXNzYWdlTmFtZShBZG9wdFdLLCBXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4
Q1N0cmluZygiV2lsbFNlbmRSZXF1ZXN0Rm9yRnJhbWUiKSk7CisgICAgV0tEaWN0aW9uYXJ5QWRk
SXRlbShtZXNzYWdlQm9keS5nZXQoKSwgc3ViTWVzc2FnZU5hbWVLZXkuZ2V0KCksIHN1Yk1lc3Nh
Z2VOYW1lLmdldCgpKTsKKworICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBzdWJNZXNzYWdl
Qm9keUtleShBZG9wdFdLLCBXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiU3ViTWVzc2Fn
ZUJvZHkiKSk7CisgICAgV0tSZXRhaW5QdHI8V0tNdXRhYmxlRGljdGlvbmFyeVJlZj4gc3ViTWVz
c2FnZUJvZHkoQWRvcHRXSywgV0tNdXRhYmxlRGljdGlvbmFyeUNyZWF0ZSgpKTsKKyAgICBXS0Rp
Y3Rpb25hcnlBZGRJdGVtKG1lc3NhZ2VCb2R5LmdldCgpLCBzdWJNZXNzYWdlQm9keUtleS5nZXQo
KSwgc3ViTWVzc2FnZUJvZHkuZ2V0KCkpOworCisgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+
IHJlc291cmNlSWRlbnRpZmllcktleShBZG9wdFdLLCBXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0
cmluZygiUmVzb3VyY2VJZGVudGlmaWVyIikpOworICAgIFdLUmV0YWluUHRyPFdLVUludDY0UmVm
PiByZXNvdXJjZUlkZW50aWZpZXJSZWYoQWRvcHRXSywgV0tVSW50NjRDcmVhdGUocmVzb3VyY2VJ
ZGVudGlmaWVyKSk7CisgICAgV0tEaWN0aW9uYXJ5QWRkSXRlbShzdWJNZXNzYWdlQm9keS5nZXQo
KSwgcmVzb3VyY2VJZGVudGlmaWVyS2V5LmdldCgpLCByZXNvdXJjZUlkZW50aWZpZXJSZWYuZ2V0
KCkpOworCisgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IHJlcXVlc3RLZXkoQWRvcHRXSywg
V0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIlJlcXVlc3QiKSk7CisgICAgV0tEaWN0aW9u
YXJ5QWRkSXRlbShzdWJNZXNzYWdlQm9keS5nZXQoKSwgcmVxdWVzdEtleS5nZXQoKSwgcmVxdWVz
dCk7CisKKyAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gcmVkaXJlY3RSZXNwb25zZUtleShB
ZG9wdFdLLCBXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiUmVkaXJlY3RSZXNwb25zZSIp
KTsKKyAgICBXS0RpY3Rpb25hcnlBZGRJdGVtKHN1Yk1lc3NhZ2VCb2R5LmdldCgpLCByZWRpcmVj
dFJlc3BvbnNlS2V5LmdldCgpLCByZWRpcmVjdFJlc3BvbnNlKTsKKworICAgIFdLVHlwZVJlZiBy
ZXR1cm5WYWx1ZTsKKyAgICBXS0J1bmRsZVBvc3RTeW5jaHJvbm91c01lc3NhZ2UobV9idW5kbGUs
IG1lc3NhZ2VOYW1lLmdldCgpLCBtZXNzYWdlQm9keS5nZXQoKSwgJnJldHVyblZhbHVlKTsKKwor
ICAgIHJldHVybiByZXR1cm5WYWx1ZSA/IHN0YXRpY19jYXN0PFdLVVJMUmVxdWVzdFJlZj4ocmV0
dXJuVmFsdWUpIDogMDsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0SW5qZWN0ZWRCdW5kbGUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEluamVj
dGVkQnVuZGxlL1dlYktpdEluamVjdGVkQnVuZGxlLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL2d0ay9XZWJLaXRJbmplY3RlZEJ1bmRsZS9XZWJLaXRJbmplY3RlZEJ1bmRsZS5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU0MzI5MjkKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRJbmplY3RlZEJ1bmRs
ZS9XZWJLaXRJbmplY3RlZEJ1bmRsZS5oCkBAIC0wLDAgKzEsNTAgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTIgSWdhbGlhIFMuTC4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0
d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIg
dGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBh
cyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2
ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZl
cnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRo
YXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhv
dXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91
bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGlj
IExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlO
Ry5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u
LCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAw
MjExMC0xMzAxLCBVU0EuCisgKi8KKworI2lmbmRlZiBXZWJLaXRJbmplY3RlZEJ1bmRsZV9oCisj
ZGVmaW5lIFdlYktpdEluamVjdGVkQnVuZGxlX2gKKworI2luY2x1ZGUgPFdlYktpdDIvV0tCYXNl
Lmg+CisKK25hbWVzcGFjZSBXZWJLaXRJbmplY3RlZEJ1bmRsZSB7CisKK2NsYXNzIFdlYktpdElu
amVjdGVkQnVuZGxlIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgV2ViS2l0SW5qZWN0ZWRCdW5kbGUm
IHNoYXJlZCgpOworCisgICAgLy8gSW5pdGlhbGl6ZSB0aGUgSW5qZWN0ZWRCdW5kbGUuCisgICAg
dm9pZCBpbml0aWFsaXplKFdLQnVuZGxlUmVmLCBXS1R5cGVSZWYgaW5pdGlhbGl6YXRpb25Vc2Vy
RGF0YSk7CisKK3ByaXZhdGU6CisgICAgV2ViS2l0SW5qZWN0ZWRCdW5kbGUoKTsKKyAgICB+V2Vi
S2l0SW5qZWN0ZWRCdW5kbGUoKTsKKworICAgIHN0YXRpYyB2b2lkIGRpZENyZWF0ZVBhZ2UoV0tC
dW5kbGVSZWYsIFdLQnVuZGxlUGFnZVJlZiwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7CisgICAg
dm9pZCBkaWRDcmVhdGVQYWdlKFdLQnVuZGxlUGFnZVJlZik7CisKKyAgICBzdGF0aWMgV0tVUkxS
ZXF1ZXN0UmVmIHdpbGxTZW5kUmVxdWVzdEZvckZyYW1lKFdLQnVuZGxlUGFnZVJlZiwgV0tCdW5k
bGVGcmFtZVJlZiwgdWludDY0X3QgcmVzb3VyY2VJZGVudGlmaWVyLCBXS1VSTFJlcXVlc3RSZWYs
IFdLVVJMUmVzcG9uc2VSZWYgcmVkaXJlY3RSZXNwb25zZSwgY29uc3Qgdm9pZCogY2xpZW50SW5m
byk7CisgICAgV0tVUkxSZXF1ZXN0UmVmIHdpbGxTZW5kUmVxdWVzdEZvckZyYW1lKFdLQnVuZGxl
UGFnZVJlZiwgdWludDY0X3QgcmVzb3VyY2VJZGVudGlmaWVyLCBXS1VSTFJlcXVlc3RSZWYsIFdL
VVJMUmVzcG9uc2VSZWYgcmVkaXJlY3RSZXNwb25zZSk7CisKKyAgICBXS0J1bmRsZVJlZiBtX2J1
bmRsZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdEluamVjdGVkQnVuZGxlCisKKyNlbmRp
ZgorCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRJ
bmplY3RlZEJ1bmRsZS9XZWJLaXRJbmplY3RlZEJ1bmRsZU1haW4uY3BwIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0SW5qZWN0ZWRCdW5kbGUvV2ViS2l0SW5qZWN0ZWRC
dW5kbGVNYWluLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wODZmOWIy
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2Vi
S2l0SW5qZWN0ZWRCdW5kbGUvV2ViS2l0SW5qZWN0ZWRCdW5kbGVNYWluLmNwcApAQCAtMCwwICsx
LDMzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIElnYWxpYSBTLkwuCisgKgorICogVGhp
cyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9v
cgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJh
bCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZv
dW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91
ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0
cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhP
VVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAq
IE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNl
ZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0
YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUg
TGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFy
eTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZy
ZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBG
bG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNpbmNsdWRlICJj
b25maWcuaCIKKyNpbmNsdWRlICJXZWJLaXRJbmplY3RlZEJ1bmRsZS5oIgorCisjaW5jbHVkZSA8
V2ViS2l0Mi9XS0J1bmRsZUluaXRpYWxpemUuaD4KKworI2lmIGRlZmluZWQoV0lOMzIpIHx8IGRl
ZmluZWQoX1dJTjMyKQorZXh0ZXJuICJDIiBfX2RlY2xzcGVjKGRsbGV4cG9ydCkKKyNlbHNlCitl
eHRlcm4gIkMiCisjZW5kaWYKK3ZvaWQgV0tCdW5kbGVJbml0aWFsaXplKFdLQnVuZGxlUmVmIGJ1
bmRsZSwgV0tUeXBlUmVmIGluaXRpYWxpemF0aW9uVXNlckRhdGEpCit7CisgICAgV2ViS2l0SW5q
ZWN0ZWRCdW5kbGU6OldlYktpdEluamVjdGVkQnVuZGxlOjpzaGFyZWQoKS5pbml0aWFsaXplKGJ1
bmRsZSwgaW5pdGlhbGl6YXRpb25Vc2VyRGF0YSk7Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRJbmplY3RlZEJ1bmRsZUNsaWVudC5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRJbmplY3RlZEJ1bmRsZUNsaWVu
dC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzZmMTIwOQotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEluamVj
dGVkQnVuZGxlQ2xpZW50LmNwcApAQCAtMCwwICsxLDQ3IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDEyIElnYWxpYSBTLkwuCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7
IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0
ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVi
bGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lv
biAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9u
LgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0
IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2
ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVy
YWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhh
dmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNl
bnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElC
LiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5j
LiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAt
MTMwMSwgVVNBLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJLaXRJ
bmplY3RlZEJ1bmRsZUNsaWVudC5oIgorCisjaW5jbHVkZSAiV2ViS2l0UHJpdmF0ZS5oIgorI2lu
Y2x1ZGUgIldlYktpdFdlYkNvbnRleHRQcml2YXRlLmgiCisKK3VzaW5nIG5hbWVzcGFjZSBXZWJL
aXQ7CisKK3N0YXRpYyB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlRnJvbUluamVjdGVkQnVuZGxlKFdL
Q29udGV4dFJlZiwgV0tTdHJpbmdSZWYgbWVzc2FnZU5hbWUsIFdLVHlwZVJlZiBtZXNzYWdlQm9k
eSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKK3sKKyAgICB3ZWJraXRXZWJDb250ZXh0RGlkUmVj
ZWl2ZU1lc3NhZ2VGcm9tSW5qZWN0ZWRCdW5kbGUoV0VCS0lUX1dFQl9DT05URVhUKGNsaWVudElu
Zm8pLCBtZXNzYWdlTmFtZSwgbWVzc2FnZUJvZHkpOworfQorCitzdGF0aWMgdm9pZCBkaWRSZWNl
aXZlU3luY2hyb25vdXNNZXNzYWdlRnJvbUluamVjdGVkQnVuZGxlKFdLQ29udGV4dFJlZiwgV0tT
dHJpbmdSZWYgbWVzc2FnZU5hbWUsIFdLVHlwZVJlZiBtZXNzYWdlQm9keSwgV0tUeXBlUmVmKiBy
ZXR1cm5EYXRhLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQoreworICAgICpyZXR1cm5EYXRhID0g
d2Via2l0V2ViQ29udGV4dERpZFJlY2VpdmVNZXNzYWdlRnJvbUluamVjdGVkQnVuZGxlKFdFQktJ
VF9XRUJfQ09OVEVYVChjbGllbnRJbmZvKSwgbWVzc2FnZU5hbWUsIG1lc3NhZ2VCb2R5KTsKK30K
Kwordm9pZCBhdHRhY2hJbmplY3RlZEJ1bmRsZUNsaWVudFRvQ29udGV4dChXZWJLaXRXZWJDb250
ZXh0KiB3ZWJDb250ZXh0KQoreworICAgIFdLQ29udGV4dEluamVjdGVkQnVuZGxlQ2xpZW50IHdr
SW5qZWN0ZWRCdW5kbGVDbGllbnQgPSB7CisgICAgICAgIGtXS0NvbnRleHRJbmplY3RlZEJ1bmRs
ZUNsaWVudEN1cnJlbnRWZXJzaW9uLAorICAgICAgICB3ZWJDb250ZXh0LCAvLyBjbGllbnRJbmZv
CisgICAgICAgIGRpZFJlY2VpdmVNZXNzYWdlRnJvbUluamVjdGVkQnVuZGxlLAorICAgICAgICBk
aWRSZWNlaXZlU3luY2hyb25vdXNNZXNzYWdlRnJvbUluamVjdGVkQnVuZGxlCisgICAgfTsKKyAg
ICBXS0NvbnRleHRTZXRJbmplY3RlZEJ1bmRsZUNsaWVudCh3ZWJraXRXZWJDb250ZXh0R2V0V0tD
b250ZXh0KHdlYkNvbnRleHQpLCAmd2tJbmplY3RlZEJ1bmRsZUNsaWVudCk7Cit9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRJbmplY3RlZEJ1bmRs
ZUNsaWVudC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0SW5qZWN0
ZWRCdW5kbGVDbGllbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44N2Mx
OGY5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsv
V2ViS2l0SW5qZWN0ZWRCdW5kbGVDbGllbnQuaApAQCAtMCwwICsxLDI3IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDEyIElnYWxpYSBTLkwuCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUg
c29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVu
ZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vu
c2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgor
ICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRl
ciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9w
ZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3
aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBv
ciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJy
YXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ug
c2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1
YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENP
UFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh
dGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3Rvbiwg
TUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNpZm5kZWYgV2ViS2l0SW5qZWN0ZWRCdW5kbGVD
bGllbnRfaAorI2RlZmluZSBXZWJLaXRJbmplY3RlZEJ1bmRsZUNsaWVudF9oCisKKyNpbmNsdWRl
ICJXZWJLaXRXZWJDb250ZXh0LmgiCisKK3ZvaWQgYXR0YWNoSW5qZWN0ZWRCdW5kbGVDbGllbnRU
b0NvbnRleHQoV2ViS2l0V2ViQ29udGV4dCopOworCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVSSVJlcXVlc3QuY3BwIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VVJJUmVxdWVzdC5jcHAKaW5kZXggYjVj
MmI0ZS4uZDI3Zjc1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9n
dGsvV2ViS2l0VVJJUmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9ndGsvV2ViS2l0VVJJUmVxdWVzdC5jcHAKQEAgLTY1LDcgKzY1LDcgQEAgc3RhdGljIHZvaWQg
d2Via2l0VVJJUmVxdWVzdFNldFByb3BlcnR5KEdPYmplY3QqIG9iamVjdCwgZ3VpbnQgcHJvcElk
LCBjb25zdCBHVmEKIAogICAgIHN3aXRjaCAocHJvcElkKSB7CiAgICAgY2FzZSBQUk9QX1VSSToK
LSAgICAgICAgcmVxdWVzdC0+cHJpdi0+cmVzb3VyY2VSZXF1ZXN0LnNldFVSTChLVVJMKEtVUkwo
KSwgZ192YWx1ZV9nZXRfc3RyaW5nKHZhbHVlKSkpOworICAgICAgICB3ZWJraXRfdXJpX3JlcXVl
c3Rfc2V0X3VyaShyZXF1ZXN0LCBnX3ZhbHVlX2dldF9zdHJpbmcodmFsdWUpKTsKICAgICAgICAg
YnJlYWs7CiAgICAgZGVmYXVsdDoKICAgICAgICAgR19PQkpFQ1RfV0FSTl9JTlZBTElEX1BST1BF
UlRZX0lEKG9iamVjdCwgcHJvcElkLCBwYXJhbVNwZWMpOwpAQCAtODksOCArODksOCBAQCBzdGF0
aWMgdm9pZCB3ZWJraXRfdXJpX3JlcXVlc3RfY2xhc3NfaW5pdChXZWJLaXRVUklSZXF1ZXN0Q2xh
c3MqIHJlcXVlc3RDbGFzcykKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdf
cGFyYW1fc3BlY19zdHJpbmcoInVyaSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIF8oIlVSSSIpLAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfKCJUaGUgVVJJIHRvIHdoaWNoIHRo
ZSByZXF1ZXN0IHdpbGwgYmUgbWFkZS4iKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8R1BhcmFtRmxhZ3M+KFdF
QktJVF9QQVJBTV9SRUFEV1JJVEUgfCBHX1BBUkFNX0NPTlNUUlVDVF9PTkxZKSkpOworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYWJvdXQ6
YmxhbmsiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBzdGF0aWNfY2FzdDxHUGFyYW1GbGFncz4oV0VCS0lUX1BBUkFNX1JFQURXUklURSB8
IEdfUEFSQU1fQ09OU1RSVUNUKSkpOwogCiAgICAgZ190eXBlX2NsYXNzX2FkZF9wcml2YXRlKHJl
cXVlc3RDbGFzcywgc2l6ZW9mKFdlYktpdFVSSVJlcXVlc3RQcml2YXRlKSk7CiB9CkBAIC0xMjQs
NiArMTI0LDExIEBAIFdlYktpdFVSSVJlcXVlc3QqIHdlYmtpdFVSSVJlcXVlc3RDcmVhdGVGb3JS
ZXNvdXJjZVJlcXVlc3QoY29uc3QgV2ViQ29yZTo6UmVzb3VyCiAgICAgcmV0dXJuIHVyaVJlcXVl
c3Q7CiB9CiAKK2NvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgd2Via2l0VVJJUmVxdWVz
dEdldFJlc291cmNlUmVxdWVzdChXZWJLaXRVUklSZXF1ZXN0KiB1cmlSZXF1ZXN0KQoreworICAg
IHJldHVybiB1cmlSZXF1ZXN0LT5wcml2LT5yZXNvdXJjZVJlcXVlc3Q7Cit9CisKIC8qKgogICog
d2Via2l0X3VyaV9yZXF1ZXN0X2dldF91cmk6CiAgKiBAcmVxdWVzdDogYSAjV2ViS2l0VVJJUmVx
dWVzdApAQCAtMTM4LDMgKzE0MywyMiBAQCBjb25zdCBnY2hhciogd2Via2l0X3VyaV9yZXF1ZXN0
X2dldF91cmkoV2ViS2l0VVJJUmVxdWVzdCogcmVxdWVzdCkKICAgICByZXR1cm4gcmVxdWVzdC0+
cHJpdi0+dXJpLmRhdGEoKTsKIH0KIAorLyoqCisgKiB3ZWJraXRfdXJpX3JlcXVlc3Rfc2V0X3Vy
aToKKyAqIEByZXF1ZXN0OiBhICNXZWJLaXRVUklSZXF1ZXN0CisgKiBAdXJpOiBhbiBVUkkKKyAq
CisgKiBTZXQgdGhlIFVSSSBvZiBAcmVxdWVzdAorICovCit2b2lkIHdlYmtpdF91cmlfcmVxdWVz
dF9zZXRfdXJpKFdlYktpdFVSSVJlcXVlc3QqIHJlcXVlc3QsIGNvbnN0IGNoYXIqIHVyaSkKK3sK
KyAgICBnX3JldHVybl9pZl9mYWlsKFdFQktJVF9JU19VUklfUkVRVUVTVChyZXF1ZXN0KSk7Cisg
ICAgZ19yZXR1cm5faWZfZmFpbCh1cmkpOworCisgICAgS1VSTCB1cmwoS1VSTCgpLCB1cmkpOwor
ICAgIGlmICh1cmwgPT0gcmVxdWVzdC0+cHJpdi0+cmVzb3VyY2VSZXF1ZXN0LnVybCgpKQorICAg
ICAgICByZXR1cm47CisKKyAgICByZXF1ZXN0LT5wcml2LT5yZXNvdXJjZVJlcXVlc3Quc2V0VVJM
KHVybCk7CisgICAgZ19vYmplY3Rfbm90aWZ5KEdfT0JKRUNUKHJlcXVlc3QpLCAidXJpIik7Cit9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVUklS
ZXF1ZXN0LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVUklSZXF1
ZXN0LmgKaW5kZXggNTIzNjA2OS4uYjNiMmI2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VVJJUmVxdWVzdC5oCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVSSVJlcXVlc3QuaApAQCAtNjEsNiArNjEsMTAgQEAg
d2Via2l0X3VyaV9yZXF1ZXN0X25ldyAgICAgIChjb25zdCBnY2hhciAgICAgICp1cmkpOwogV0VC
S0lUX0FQSSBjb25zdCBnY2hhciAqCiB3ZWJraXRfdXJpX3JlcXVlc3RfZ2V0X3VyaSAgKFdlYktp
dFVSSVJlcXVlc3QgKnJlcXVlc3QpOwogCitXRUJLSVRfQVBJIHZvaWQKK3dlYmtpdF91cmlfcmVx
dWVzdF9zZXRfdXJpICAoV2ViS2l0VVJJUmVxdWVzdCAqcmVxdWVzdCwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgY29uc3QgZ2NoYXIgICAgICAqdXJpKTsKKwogR19FTkRfREVDTFMKIAog
I2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJL
aXRVUklSZXF1ZXN0UHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsv
V2ViS2l0VVJJUmVxdWVzdFByaXZhdGUuaAppbmRleCBkYjg1MjQyYS4uM2FmMDJhNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VVJJUmVxdWVzdFBy
aXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVUklS
ZXF1ZXN0UHJpdmF0ZS5oCkBAIC0zMCw1ICszMCw2IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNv
dXJjZVJlcXVlc3QuaD4KIAogV2ViS2l0VVJJUmVxdWVzdCogd2Via2l0VVJJUmVxdWVzdENyZWF0
ZUZvclJlc291cmNlUmVxdWVzdChjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmKTsKK2Nv
bnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgd2Via2l0VVJJUmVxdWVzdEdldFJlc291cmNl
UmVxdWVzdChXZWJLaXRVUklSZXF1ZXN0Kik7CiAKICNlbmRpZiAvLyBXZWJLaXRVUklSZXF1ZXN0
UHJpdmF0ZV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9X
ZWJLaXRXZWJDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dl
YktpdFdlYkNvbnRleHQuY3BwCmluZGV4IDM2MGIwYTYuLjk5MWYxM2UgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYkNvbnRleHQuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYkNvbnRleHQuY3BwCkBA
IC0yMyw5ICsyMywxMyBAQAogI2luY2x1ZGUgIldlYkNvbnRleHQuaCIKICNpbmNsdWRlICJXZWJL
aXREb3dubG9hZENsaWVudC5oIgogI2luY2x1ZGUgIldlYktpdERvd25sb2FkUHJpdmF0ZS5oIgor
I2luY2x1ZGUgIldlYktpdEluamVjdGVkQnVuZGxlQ2xpZW50LmgiCiAjaW5jbHVkZSAiV2ViS2l0
UHJpdmF0ZS5oIgogI2luY2x1ZGUgIldlYktpdFdlYkNvbnRleHRQcml2YXRlLmgiCisjaW5jbHVk
ZSAiV2ViS2l0V2ViVmlld0Jhc2VQcml2YXRlLmgiCisjaW5jbHVkZSAiV2ViS2l0V2ViVmlld1By
aXZhdGUuaCIKICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgorI2luY2x1ZGUgPHd0Zi9nb2JqZWN0
L0dPd25QdHIuaD4KICNpbmNsdWRlIDx3dGYvZ29iamVjdC9HUmVmUHRyLmg+CiAjaW5jbHVkZSA8
d3RmL3RleHQvQ1N0cmluZy5oPgogCkBAIC0zOSw2ICs0Myw4IEBAIGVudW0gewogCiBzdHJ1Y3Qg
X1dlYktpdFdlYkNvbnRleHRQcml2YXRlIHsKICAgICBXS1JldGFpblB0cjxXS0NvbnRleHRSZWY+
IGNvbnRleHQ7CisKKyAgICBIYXNoTWFwPHVpbnQ2NF90LCBXZWJLaXRXZWJWaWV3Kj4gdmlld01h
cDsKIH07CiAKIHN0YXRpYyBndWludCBzaWduYWxzW0xBU1RfU0lHTkFMXSA9IHsgMCwgfTsKQEAg
LTgyLDExICs4OCwzMCBAQCBzdGF0aWMgdm9pZCB3ZWJraXRfd2ViX2NvbnRleHRfY2xhc3NfaW5p
dChXZWJLaXRXZWJDb250ZXh0Q2xhc3MqIHdlYkNvbnRleHRDbGFzcwogICAgIGdfdHlwZV9jbGFz
c19hZGRfcHJpdmF0ZSh3ZWJDb250ZXh0Q2xhc3MsIHNpemVvZihXZWJLaXRXZWJDb250ZXh0UHJp
dmF0ZSkpOwogfQogCitzdGF0aWMgQ1N0cmluZyBnZXRXZWJCdW5kbGVEaXJlY3RvcnkoKQorewor
ICAgIGNvbnN0IGNoYXIqIHdlYkJ1bmRsZURpcmVjdG9yeSA9IGdfZ2V0ZW52KCJXRUJLSVRfV0VC
X0JVTkRMRV9QQVRIIik7CisgICAgaWYgKHdlYkJ1bmRsZURpcmVjdG9yeSkKKyAgICAgICAgcmV0
dXJuIHdlYkJ1bmRsZURpcmVjdG9yeTsKKworICAgIEdPd25QdHI8Y2hhcj4gd2ViQnVuZGxlUGF0
aChnX2J1aWxkX2ZpbGVuYW1lKExJQkRJUiwgIndlYmtpdDJndGstMy4wIiwgV0VCS0lUR1RLX0FQ
SV9WRVJTSU9OLCAid2ViYnVuZGxlIiwgTlVMTCkpOworICAgIHJldHVybiB3ZWJCdW5kbGVQYXRo
LmdldCgpOworfQorCitzdGF0aWMgQ1N0cmluZyBnZXRXZWJCdW5kbGVGaWxlbmFtZSgpCit7Cisg
ICAgR093blB0cjxjaGFyPiB3ZWJCdW5kbGVGaWxlbmFtZShnX2J1aWxkX2ZpbGVuYW1lKGdldFdl
YkJ1bmRsZURpcmVjdG9yeSgpLmRhdGEoKSwgImxpYndlYmtpdDJndGt3ZWJidW5kbGUuc28iLCBO
VUxMKSk7CisgICAgcmV0dXJuIHdlYkJ1bmRsZUZpbGVuYW1lLmdldCgpOworfQorCiBzdGF0aWMg
Z3BvaW50ZXIgY3JlYXRlRGVmYXVsdFdlYkNvbnRleHQoZ3BvaW50ZXIpCiB7CiAgICAgV2ViS2l0
V2ViQ29udGV4dCogd2ViQ29udGV4dCA9IFdFQktJVF9XRUJfQ09OVEVYVChnX29iamVjdF9uZXco
V0VCS0lUX1RZUEVfV0VCX0NPTlRFWFQsIE5VTEwpKTsKLSAgICB3ZWJDb250ZXh0LT5wcml2LT5j
b250ZXh0ID0gV0tDb250ZXh0R2V0U2hhcmVkUHJvY2Vzc0NvbnRleHQoKTsKKyAgICBXS1JldGFp
blB0cjxXS1N0cmluZ1JlZj4gd2tXZWJCdW5kbGVQYXRoKEFkb3B0V0ssIFdLU3RyaW5nQ3JlYXRl
V2l0aFVURjhDU3RyaW5nKGdldFdlYkJ1bmRsZUZpbGVuYW1lKCkuZGF0YSgpKSk7CisgICAgd2Vi
Q29udGV4dC0+cHJpdi0+Y29udGV4dCA9IFdLQ29udGV4dENyZWF0ZVdpdGhJbmplY3RlZEJ1bmRs
ZVBhdGgod2tXZWJCdW5kbGVQYXRoLmdldCgpKTsKICAgICBXS0NvbnRleHRTZXRDYWNoZU1vZGVs
KHdlYkNvbnRleHQtPnByaXYtPmNvbnRleHQuZ2V0KCksIGtXS0NhY2hlTW9kZWxQcmltYXJ5V2Vi
QnJvd3Nlcik7CisKKyAgICBhdHRhY2hJbmplY3RlZEJ1bmRsZUNsaWVudFRvQ29udGV4dCh3ZWJD
b250ZXh0KTsKICAgICBhdHRhY2hEb3dubG9hZENsaWVudFRvQ29udGV4dCh3ZWJDb250ZXh0KTsK
IAogICAgIHJldHVybiB3ZWJDb250ZXh0OwpAQCAtMjQzLDMgKzI2OCw0NCBAQCBXS0NvbnRleHRS
ZWYgd2Via2l0V2ViQ29udGV4dEdldFdLQ29udGV4dChXZWJLaXRXZWJDb250ZXh0KiBjb250ZXh0
KQogICAgIHJldHVybiBjb250ZXh0LT5wcml2LT5jb250ZXh0LmdldCgpOwogfQogCit2b2lkIHdl
YmtpdFdlYkNvbnRleHRDcmVhdGVQYWdlRm9yV2ViVmlldyhXZWJLaXRXZWJDb250ZXh0KiBjb250
ZXh0LCBXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3KQoreworICAgIFdlYktpdFdlYlZpZXdCYXNlKiB3
ZWJWaWV3QmFzZSA9IFdFQktJVF9XRUJfVklFV19CQVNFKHdlYlZpZXcpOworICAgIHdlYmtpdFdl
YlZpZXdCYXNlQ3JlYXRlV2ViUGFnZSh3ZWJWaWV3QmFzZSwgY29udGV4dC0+cHJpdi0+Y29udGV4
dC5nZXQoKSwgMCk7CisgICAgV2ViUGFnZVByb3h5KiBwYWdlID0gd2Via2l0V2ViVmlld0Jhc2VH
ZXRQYWdlKHdlYlZpZXdCYXNlKTsKKyAgICBjb250ZXh0LT5wcml2LT52aWV3TWFwLnNldChwYWdl
LT5wYWdlSUQoKSwgd2ViVmlldyk7Cit9CisKK3ZvaWQgd2Via2l0V2ViQ29udGV4dFdlYlZpZXdG
aW5hbGl6ZWQoV2ViS2l0V2ViQ29udGV4dCogY29udGV4dCwgV2ViS2l0V2ViVmlldyogd2ViVmll
dykKK3sKKyAgICBXZWJQYWdlUHJveHkqIHBhZ2UgPSB3ZWJraXRXZWJWaWV3QmFzZUdldFBhZ2Uo
V0VCS0lUX1dFQl9WSUVXX0JBU0Uod2ViVmlldykpOworICAgIGNvbnRleHQtPnByaXYtPnZpZXdN
YXAucmVtb3ZlKHBhZ2UtPnBhZ2VJRCgpKTsKK30KKworV0tUeXBlUmVmIHdlYmtpdFdlYkNvbnRl
eHREaWRSZWNlaXZlTWVzc2FnZUZyb21JbmplY3RlZEJ1bmRsZShXZWJLaXRXZWJDb250ZXh0KiBj
b250ZXh0LCBXS1N0cmluZ1JlZiBtZXNzYWdlTmFtZSwgV0tUeXBlUmVmIG1lc3NhZ2VCb2R5KQor
eworICAgIFdLVHlwZVJlZiByZXR1cm5WYWx1ZSA9IDA7CisKKyAgICBpZiAoV0tTdHJpbmdJc0Vx
dWFsVG9VVEY4Q1N0cmluZyhtZXNzYWdlTmFtZSwgIldlYktpdFdlYlZpZXciKSkgeworICAgICAg
ICBBU1NFUlQoV0tHZXRUeXBlSUQobWVzc2FnZUJvZHkpID09IFdLRGljdGlvbmFyeUdldFR5cGVJ
RCgpKTsKKyAgICAgICAgV0tEaWN0aW9uYXJ5UmVmIG1lc3NhZ2VCb2R5RGljdGlvbmFyeSA9IHN0
YXRpY19jYXN0PFdLRGljdGlvbmFyeVJlZj4obWVzc2FnZUJvZHkpOworCisgICAgICAgIFdLUmV0
YWluUHRyPFdLU3RyaW5nUmVmPiBwYWdlS2V5KEFkb3B0V0ssIFdLU3RyaW5nQ3JlYXRlV2l0aFVU
RjhDU3RyaW5nKCJQYWdlIikpOworICAgICAgICBXS1BhZ2VSZWYgcGFnZSA9IHN0YXRpY19jYXN0
PFdLUGFnZVJlZj4oV0tEaWN0aW9uYXJ5R2V0SXRlbUZvcktleShtZXNzYWdlQm9keURpY3Rpb25h
cnksIHBhZ2VLZXkuZ2V0KCkpKTsKKyAgICAgICAgaWYgKCFwYWdlKQorICAgICAgICAgICAgcmV0
dXJuIDA7CisKKyAgICAgICAgV2ViS2l0V2ViVmlldyogd2ViVmlldyA9IGNvbnRleHQtPnByaXYt
PnZpZXdNYXAuZ2V0KHRvSW1wbChwYWdlKS0+cGFnZUlEKCkpOworICAgICAgICBpZiAoIXdlYlZp
ZXcpCisgICAgICAgICAgICByZXR1cm4gMDsKKworICAgICAgICBXS1JldGFpblB0cjxXS1N0cmlu
Z1JlZj4gc3ViTWVzc2FnZU5hbWVLZXkoQWRvcHRXSywgV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENT
dHJpbmcoIlN1Yk1lc3NhZ2VOYW1lIikpOworICAgICAgICBXS1N0cmluZ1JlZiBzdWJNZXNzYWdl
TmFtZSA9IHN0YXRpY19jYXN0PFdLU3RyaW5nUmVmPihXS0RpY3Rpb25hcnlHZXRJdGVtRm9yS2V5
KG1lc3NhZ2VCb2R5RGljdGlvbmFyeSwgc3ViTWVzc2FnZU5hbWVLZXkuZ2V0KCkpKTsKKyAgICAg
ICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IHN1Yk1lc3NhZ2VCb2R5S2V5KEFkb3B0V0ssIFdL
U3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJTdWJNZXNzYWdlQm9keSIpKTsKKyAgICAgICAg
V0tUeXBlUmVmIHN1Yk1lc3NhZ2VCb2R5ID0gV0tEaWN0aW9uYXJ5R2V0SXRlbUZvcktleShtZXNz
YWdlQm9keURpY3Rpb25hcnksIHN1Yk1lc3NhZ2VCb2R5S2V5LmdldCgpKTsKKyAgICAgICAgcmV0
dXJuVmFsdWUgPSB3ZWJraXRXZWJWaWV3RGlkUmVjZWl2ZU1lc3NhZ2VGcm9tSW5qZWN0ZWRCdW5k
bGUod2ViVmlldywgc3ViTWVzc2FnZU5hbWUsIHN1Yk1lc3NhZ2VCb2R5KTsKKyAgICB9IGVsc2UK
KyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisKKyAgICByZXR1cm4gcmV0dXJuVmFsdWU7
Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRX
ZWJDb250ZXh0UHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2Vi
S2l0V2ViQ29udGV4dFByaXZhdGUuaAppbmRleCBkMmRkODEzLi42YWIyZWY3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJDb250ZXh0UHJpdmF0
ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYkNvbnRl
eHRQcml2YXRlLmgKQEAgLTI5LDEzICsyOSwxMiBAQAogI2luY2x1ZGUgIldlYktpdFdlYkNvbnRl
eHQuaCIKICNpbmNsdWRlIDxXZWJLaXQyL1dlYktpdDIuaD4KIAotR19CRUdJTl9ERUNMUwotCiBX
S0NvbnRleHRSZWYgd2Via2l0V2ViQ29udGV4dEdldFdLQ29udGV4dChXZWJLaXRXZWJDb250ZXh0
Kik7CiBXZWJLaXREb3dubG9hZCogd2Via2l0V2ViQ29udGV4dEdldE9yQ3JlYXRlRG93bmxvYWQo
V0tEb3dubG9hZFJlZik7CiB2b2lkIHdlYmtpdFdlYkNvbnRleHRSZW1vdmVEb3dubG9hZChXS0Rv
d25sb2FkUmVmKTsKIHZvaWQgd2Via2l0V2ViQ29udGV4dERvd25sb2FkU3RhcnRlZChXZWJLaXRX
ZWJDb250ZXh0KiwgV2ViS2l0RG93bmxvYWQqKTsKLQotR19FTkRfREVDTFMKK3ZvaWQgd2Via2l0
V2ViQ29udGV4dENyZWF0ZVBhZ2VGb3JXZWJWaWV3KFdlYktpdFdlYkNvbnRleHQqLCBXZWJLaXRX
ZWJWaWV3Kik7Cit2b2lkIHdlYmtpdFdlYkNvbnRleHRXZWJWaWV3RmluYWxpemVkKFdlYktpdFdl
YkNvbnRleHQqLCBXZWJLaXRXZWJWaWV3Kik7CitXS1R5cGVSZWYgd2Via2l0V2ViQ29udGV4dERp
ZFJlY2VpdmVNZXNzYWdlRnJvbUluamVjdGVkQnVuZGxlKFdlYktpdFdlYkNvbnRleHQqLCBXS1N0
cmluZ1JlZiBtZXNzYWdlTmFtZSwgV0tUeXBlUmVmIG1lc3NhZ2VCb2R5KTsKIAogI2VuZGlmIC8v
IFdlYktpdFdlYkNvbnRleHRQcml2YXRlX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlJlc291cmNlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlJlc291cmNlLmNwcAppbmRleCA2YmQ1MWZhLi4zNTlm
OWE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRX
ZWJSZXNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2Vi
S2l0V2ViUmVzb3VyY2UuY3BwCkBAIC0yMSw3ICsyMSw3IEBACiAjaW5jbHVkZSAiV2ViS2l0V2Vi
UmVzb3VyY2UuaCIKIAogI2luY2x1ZGUgIldlYktpdE1hcnNoYWwuaCIKLSNpbmNsdWRlICJXZWJL
aXRVUklSZXF1ZXN0LmgiCisjaW5jbHVkZSAiV2ViS2l0VVJJUmVxdWVzdFByaXZhdGUuaCIKICNp
bmNsdWRlICJXZWJLaXRXZWJSZXNvdXJjZVByaXZhdGUuaCIKICNpbmNsdWRlIDxnbGliL2dpMThu
LWxpYi5oPgogI2luY2x1ZGUgPHd0Zi9nb2JqZWN0L0dSZWZQdHIuaD4KQEAgLTMwLDYgKzMwLDcg
QEAKIHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CiAKIGVudW0geworICAgIFNFTkRfUkVRVUVTVCwK
ICAgICBTRU5UX1JFUVVFU1QsCiAgICAgUkVDRUlWRURfREFUQSwKICAgICBGSU5JU0hFRCwKQEAg
LTExOCw2ICsxMTksMzcgQEAgc3RhdGljIHZvaWQgd2Via2l0X3dlYl9yZXNvdXJjZV9jbGFzc19p
bml0KFdlYktpdFdlYlJlc291cmNlQ2xhc3MqIHJlc291cmNlQ2xhc3MKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXygiVGhlIHJlc3BvbnNl
IG9mIHRoZSByZXNvdXJjZSIpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBXRUJLSVRfVFlQRV9VUklfUkVTUE9OU0UsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdFQktJVF9QQVJB
TV9SRUFEQUJMRSkpOworICAgIC8qKgorICAgICAqIFdlYktpdFdlYlJlc291cmNlOjpzZW5kLXJl
cXVlc3Q6CisgICAgICogQHJlc291cmNlOiB0aGUgI1dlYktpdFdlYlJlc291cmNlCisgICAgICog
QHJlcXVlc3Q6IGEgI1dlYktpdFVSSVJlcXVlc3QKKyAgICAgKiBAcmVkaXJlY3RlZF9yZXNwb25z
ZTogYSAjV2ViS2l0VVJJUmVzcG9uc2UsIG9yICVOVUxMCisgICAgICoKKyAgICAgKiBUaGlzIHNp
Z25hbCBpcyBlbWl0dGVkIHdoZW4gQHJlcXVlc3QgaXMgYWJvdXQgdG8gYmUgc2VudCB0bworICAg
ICAqIHRoZSBzZXJ2ZXIuIFRoaXMgc2lnbmFsIGNhbiBiZSB1c2VkIHRvIG1vZGlmeSB0aGUgI1dl
YktpdFVSSVJlcXVlc3QKKyAgICAgKiB0aGF0IHdpbGwgYmUgc2VudCB0byB0aGUgc2VydmVyLiBZ
b3UgY2FuIGFsc28gY2FuY2VsIHRoZSBsb2FkIG9wZXJhdGlvbgorICAgICAqIG9mIEByZXNvdXJj
ZSBieSBjb25uZWN0aW5nIHRvIHRoaXMgc2lnbmFsIGFuZCByZXR1cm5pbmcgJVRSVUUuCisgICAg
ICogSWYgdGhlIHJlc291cmNlIGxvYWQgaXMgY2FuY2VsbGVkICNXZWJLaXRXZWJSZXNvdXJjZTo6
ZmFpbGVkIHNpZ25hbCBpcworICAgICAqIGVtaXR0ZWQgd2l0aCBhICVXRUJLSVRfTkVUV09SS19F
UlJPUl9DQU5DRUxMRUQgZXJyb3IuCisgICAgICogSW4gY2FzZSBvZiBhIHNlcnZlciByZWRpcmVj
dGlvbiB0aGlzIHNpZ25hbCBpcworICAgICAqIGVtaXR0ZWQgYWdhaW4gd2l0aCB0aGUgQHJlcXVl
c3QgYXJndW1lbnQgY29udGFpbmluZyB0aGUgbmV3CisgICAgICogcmVxdWVzdCB0byBiZSBzZW50
IHRvIHRoZSBzZXJ2ZXIgZHVlIHRvIHRoZSByZWRpcmVjdGlvbiBhbmQgdGhlCisgICAgICogQHJl
ZGlyZWN0ZWRfcmVzcG9uc2UgcGFyYW1ldGVyIGNvbnRhaW5pbmcgdGhlIHJlc3BvbnNlCisgICAg
ICogcmVjZWl2ZWQgYnkgdGhlIHNlcnZlciBmb3IgdGhlIGluaXRpYWwgcmVxdWVzdC4KKyAgICAg
KgorICAgICAqIFJldHVybnM6ICVUUlVFIHRvIHN0b3Agb3RoZXIgaGFuZGxlcnMgZnJvbSBiZWlu
ZyBpbnZva2VkIGZvciB0aGUgZXZlbnQuCisgICAgICogICAgJUZBTFNFIHRvIGNvbnRpbnVlIGVt
aXNzaW9uIG9mIHRoZSBldmVudC4KKyAgICAgKi8KKyAgICBzaWduYWxzW1NFTkRfUkVRVUVTVF0g
PQorICAgICAgICBnX3NpZ25hbF9uZXcoInNlbmQtcmVxdWVzdCIsCisgICAgICAgICAgICAgICAg
ICAgICBHX1RZUEVfRlJPTV9DTEFTUyhvYmplY3RDbGFzcyksCisgICAgICAgICAgICAgICAgICAg
ICBHX1NJR05BTF9SVU5fTEFTVCwKKyAgICAgICAgICAgICAgICAgICAgIDAsCisgICAgICAgICAg
ICAgICAgICAgICBnX3NpZ25hbF9hY2N1bXVsYXRvcl90cnVlX2hhbmRsZWQsIDAsCisgICAgICAg
ICAgICAgICAgICAgICB3ZWJraXRfbWFyc2hhbF9CT09MRUFOX19PQkpFQ1RfT0JKRUNULAorICAg
ICAgICAgICAgICAgICAgICAgR19UWVBFX0JPT0xFQU4sIDIsCisgICAgICAgICAgICAgICAgICAg
ICBXRUJLSVRfVFlQRV9VUklfUkVRVUVTVCwKKyAgICAgICAgICAgICAgICAgICAgIFdFQktJVF9U
WVBFX1VSSV9SRVNQT05TRSk7CiAKICAgICAvKioKICAgICAgKiBXZWJLaXRXZWJSZXNvdXJjZTo6
c2VudC1yZXF1ZXN0OgpAQCAtMjE1LDYgKzI0NywxNyBAQCBXZWJLaXRXZWJSZXNvdXJjZSogd2Vi
a2l0V2ViUmVzb3VyY2VDcmVhdGUoV0tGcmFtZVJlZiB3a0ZyYW1lLCBXZWJLaXRVUklSZXF1ZXN0
KgogICAgIHJldHVybiByZXNvdXJjZTsKIH0KIAorV0tUeXBlUmVmIHdlYmtpdFdlYlJlc291cmNl
U2VuZFJlcXVlc3QoV2ViS2l0V2ViUmVzb3VyY2UqIHJlc291cmNlLCBXZWJLaXRVUklSZXF1ZXN0
KiByZXF1ZXN0LCBXZWJLaXRVUklSZXNwb25zZSogcmVkaXJlY3RSZXNwb25zZSkKK3sKKyAgICBn
Ym9vbGVhbiByZXR1cm5WYWx1ZTsKKyAgICBnX3NpZ25hbF9lbWl0KHJlc291cmNlLCBzaWduYWxz
W1NFTkRfUkVRVUVTVF0sIDAsIHJlcXVlc3QsIHJlZGlyZWN0UmVzcG9uc2UsICZyZXR1cm5WYWx1
ZSk7CisgICAgaWYgKHJldHVyblZhbHVlKQorICAgICAgICByZXR1cm4gMDsKKworICAgIFJlZlB0
cjxXZWJVUkxSZXF1ZXN0PiB3ZWJVUkxSZXF1ZXN0ID0gV2ViVVJMUmVxdWVzdDo6Y3JlYXRlKHdl
YmtpdFVSSVJlcXVlc3RHZXRSZXNvdXJjZVJlcXVlc3QocmVxdWVzdCkpOworICAgIHJldHVybiBz
dGF0aWNfY2FzdDxXS1R5cGVSZWY+KHRvQVBJKHdlYlVSTFJlcXVlc3QucmVsZWFzZSgpLmxlYWtS
ZWYoKSkpOworfQorCiB2b2lkIHdlYmtpdFdlYlJlc291cmNlU2VudFJlcXVlc3QoV2ViS2l0V2Vi
UmVzb3VyY2UqIHJlc291cmNlLCBXZWJLaXRVUklSZXF1ZXN0KiByZXF1ZXN0LCBXZWJLaXRVUklS
ZXNwb25zZSogcmVkaXJlY3RSZXNwb25zZSkKIHsKICAgICB3ZWJraXRXZWJSZXNvdXJjZVVwZGF0
ZVVSSShyZXNvdXJjZSwgd2Via2l0X3VyaV9yZXF1ZXN0X2dldF91cmkocmVxdWVzdCkpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViUmVzb3Vy
Y2VQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJS
ZXNvdXJjZVByaXZhdGUuaAppbmRleCA1MDExYWU0Li5hNmM5Nzg0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJSZXNvdXJjZVByaXZhdGUuaAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJSZXNvdXJjZVBy
aXZhdGUuaApAQCAtMjQsNiArMjQsNyBAQAogI2luY2x1ZGUgIldlYktpdFdlYlJlc291cmNlLmgi
CiAKIFdlYktpdFdlYlJlc291cmNlKiB3ZWJraXRXZWJSZXNvdXJjZUNyZWF0ZShXS0ZyYW1lUmVm
LCBXZWJLaXRVUklSZXF1ZXN0KiwgYm9vbCBpc01haW5SZXNvdXJjZSk7CitXS1R5cGVSZWYgd2Vi
a2l0V2ViUmVzb3VyY2VTZW5kUmVxdWVzdChXZWJLaXRXZWJSZXNvdXJjZSosIFdlYktpdFVSSVJl
cXVlc3QqLCBXZWJLaXRVUklSZXNwb25zZSopOwogdm9pZCB3ZWJraXRXZWJSZXNvdXJjZVNlbnRS
ZXF1ZXN0KFdlYktpdFdlYlJlc291cmNlKiwgV2ViS2l0VVJJUmVxdWVzdCosIFdlYktpdFVSSVJl
c3BvbnNlKik7CiB2b2lkIHdlYmtpdFdlYlJlc291cmNlU2V0UmVzcG9uc2UoV2ViS2l0V2ViUmVz
b3VyY2UqLCBXZWJLaXRVUklSZXNwb25zZSopOwogdm9pZCB3ZWJraXRXZWJSZXNvdXJjZU5vdGlm
eVByb2dyZXNzKFdlYktpdFdlYlJlc291cmNlKiwgZ3VpbnQ2NCBieXRlc1JlY2VpdmVkKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXcu
Y3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlldy5jcHAK
aW5kZXggN2E2YzAxZC4uMzYxZWNhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlldy5jcHAKQEAgLTM2LDYgKzM2LDggQEAKICNpbmNsdWRl
ICJXZWJLaXRTY3JpcHREaWFsb2dQcml2YXRlLmgiCiAjaW5jbHVkZSAiV2ViS2l0U2V0dGluZ3NQ
cml2YXRlLmgiCiAjaW5jbHVkZSAiV2ViS2l0VUlDbGllbnQuaCIKKyNpbmNsdWRlICJXZWJLaXRV
UklSZXF1ZXN0UHJpdmF0ZS5oIgorI2luY2x1ZGUgIldlYktpdFVSSVJlc3BvbnNlUHJpdmF0ZS5o
IgogI2luY2x1ZGUgIldlYktpdFdlYkNvbnRleHRQcml2YXRlLmgiCiAjaW5jbHVkZSAiV2ViS2l0
V2ViUmVzb3VyY2VQcml2YXRlLmgiCiAjaW5jbHVkZSAiV2ViS2l0V2ViVmlld0Jhc2VQcml2YXRl
LmgiCkBAIC0yMTIsMTkgKzIxNCwxNSBAQCBzdGF0aWMgdm9pZCB3ZWJraXRXZWJWaWV3Q29uc3Ry
dWN0ZWQoR09iamVjdCogb2JqZWN0KQogICAgICAgICBHX09CSkVDVF9DTEFTUyh3ZWJraXRfd2Vi
X3ZpZXdfcGFyZW50X2NsYXNzKS0+Y29uc3RydWN0ZWQob2JqZWN0KTsKIAogICAgIFdlYktpdFdl
YlZpZXcqIHdlYlZpZXcgPSBXRUJLSVRfV0VCX1ZJRVcob2JqZWN0KTsKLSAgICBXZWJLaXRXZWJW
aWV3UHJpdmF0ZSogcHJpdiA9IHdlYlZpZXctPnByaXY7Ci0gICAgV2ViS2l0V2ViVmlld0Jhc2Uq
IHdlYlZpZXdCYXNlID0gV0VCS0lUX1dFQl9WSUVXX0JBU0Uod2ViVmlldyk7Ci0KLSAgICB3ZWJr
aXRXZWJWaWV3QmFzZUNyZWF0ZVdlYlBhZ2Uod2ViVmlld0Jhc2UsIHdlYmtpdFdlYkNvbnRleHRH
ZXRXS0NvbnRleHQocHJpdi0+Y29udGV4dCksIDApOwotCisgICAgd2Via2l0V2ViQ29udGV4dENy
ZWF0ZVBhZ2VGb3JXZWJWaWV3KHdlYlZpZXctPnByaXYtPmNvbnRleHQsIHdlYlZpZXcpOwogICAg
IGF0dGFjaExvYWRlckNsaWVudFRvVmlldyh3ZWJWaWV3KTsKICAgICBhdHRhY2hVSUNsaWVudFRv
Vmlldyh3ZWJWaWV3KTsKICAgICBhdHRhY2hQb2xpY3lDbGllbnRUb1BhZ2Uod2ViVmlldyk7CiAg
ICAgYXR0YWNoUmVzb3VyY2VMb2FkQ2xpZW50VG9WaWV3KHdlYlZpZXcpOwogICAgIGF0dGFjaEZ1
bGxTY3JlZW5DbGllbnRUb1ZpZXcod2ViVmlldyk7CiAKLSAgICBXZWJQYWdlUHJveHkqIHBhZ2Ug
PSB3ZWJraXRXZWJWaWV3QmFzZUdldFBhZ2Uod2ViVmlld0Jhc2UpOwotICAgIHByaXYtPmJhY2tG
b3J3YXJkTGlzdCA9IGFkb3B0R1JlZih3ZWJraXRCYWNrRm9yd2FyZExpc3RDcmVhdGUoV0tQYWdl
R2V0QmFja0ZvcndhcmRMaXN0KHRvQVBJKHBhZ2UpKSkpOworICAgIFdlYlBhZ2VQcm94eSogcGFn
ZSA9IHdlYmtpdFdlYlZpZXdCYXNlR2V0UGFnZShXRUJLSVRfV0VCX1ZJRVdfQkFTRSh3ZWJWaWV3
KSk7CisgICAgd2ViVmlldy0+cHJpdi0+YmFja0ZvcndhcmRMaXN0ID0gYWRvcHRHUmVmKHdlYmtp
dEJhY2tGb3J3YXJkTGlzdENyZWF0ZShXS1BhZ2VHZXRCYWNrRm9yd2FyZExpc3QodG9BUEkocGFn
ZSkpKSk7CiAKICAgICBHUmVmUHRyPFdlYktpdFNldHRpbmdzPiBzZXR0aW5ncyA9IGFkb3B0R1Jl
Zih3ZWJraXRfc2V0dGluZ3NfbmV3KCkpOwogICAgIHdlYmtpdFdlYlZpZXdTZXRTZXR0aW5ncyh3
ZWJWaWV3LCBzZXR0aW5ncy5nZXQoKSwgdG9BUEkocGFnZSkpOwpAQCAtMjc1LDEwICsyNzMsMTIg
QEAgc3RhdGljIHZvaWQgd2Via2l0V2ViVmlld0dldFByb3BlcnR5KEdPYmplY3QqIG9iamVjdCwg
Z3VpbnQgcHJvcElkLCBHVmFsdWUqIHZhbHUKIAogc3RhdGljIHZvaWQgd2Via2l0V2ViVmlld0Zp
bmFsaXplKEdPYmplY3QqIG9iamVjdCkKIHsKLSAgICBXZWJLaXRXZWJWaWV3UHJpdmF0ZSogcHJp
diA9IFdFQktJVF9XRUJfVklFVyhvYmplY3QpLT5wcml2OwotICAgIGlmIChwcml2LT5qYXZhc2Ny
aXB0R2xvYmFsQ29udGV4dCkKLSAgICAgICAgSlNHbG9iYWxDb250ZXh0UmVsZWFzZShwcml2LT5q
YXZhc2NyaXB0R2xvYmFsQ29udGV4dCk7Ci0gICAgcHJpdi0+fldlYktpdFdlYlZpZXdQcml2YXRl
KCk7CisgICAgV2ViS2l0V2ViVmlldyogd2ViVmlldyA9IFdFQktJVF9XRUJfVklFVyhvYmplY3Qp
OworICAgIHdlYmtpdFdlYkNvbnRleHRXZWJWaWV3RmluYWxpemVkKHdlYlZpZXctPnByaXYtPmNv
bnRleHQsIHdlYlZpZXcpOworCisgICAgaWYgKHdlYlZpZXctPnByaXYtPmphdmFzY3JpcHRHbG9i
YWxDb250ZXh0KQorICAgICAgICBKU0dsb2JhbENvbnRleHRSZWxlYXNlKHdlYlZpZXctPnByaXYt
PmphdmFzY3JpcHRHbG9iYWxDb250ZXh0KTsKKyAgICB3ZWJWaWV3LT5wcml2LT5+V2ViS2l0V2Vi
Vmlld1ByaXZhdGUoKTsKICAgICBHX09CSkVDVF9DTEFTUyh3ZWJraXRfd2ViX3ZpZXdfcGFyZW50
X2NsYXNzKS0+ZmluYWxpemUob2JqZWN0KTsKIH0KIApAQCAtOTY0LDYgKzk2NCwzMyBAQCBib29s
IHdlYmtpdFdlYlZpZXdMZWF2ZUZ1bGxTY3JlZW4oV2ViS2l0V2ViVmlldyogd2ViVmlldykKICAg
ICByZXR1cm4gIXJldHVyblZhbHVlOwogfQogCitXS1R5cGVSZWYgd2Via2l0V2ViVmlld0RpZFJl
Y2VpdmVNZXNzYWdlRnJvbUluamVjdGVkQnVuZGxlKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcsIFdL
U3RyaW5nUmVmIG1lc3NhZ2VOYW1lLCBXS1R5cGVSZWYgbWVzc2FnZUJvZHkpCit7CisgICAgV0tU
eXBlUmVmIHJldHVyblZhbHVlID0gMDsKKworICAgIGlmIChXS1N0cmluZ0lzRXF1YWxUb1VURjhD
U3RyaW5nKG1lc3NhZ2VOYW1lLCAiV2lsbFNlbmRSZXF1ZXN0Rm9yRnJhbWUiKSkgeworICAgICAg
ICBBU1NFUlQoV0tHZXRUeXBlSUQobWVzc2FnZUJvZHkpID09IFdLRGljdGlvbmFyeUdldFR5cGVJ
RCgpKTsKKyAgICAgICAgV0tEaWN0aW9uYXJ5UmVmIG1lc3NhZ2VCb2R5RGljdGlvbmFyeSA9IHN0
YXRpY19jYXN0PFdLRGljdGlvbmFyeVJlZj4obWVzc2FnZUJvZHkpOworCisgICAgICAgIFdLUmV0
YWluUHRyPFdLU3RyaW5nUmVmPiByZXNvdXJjZUlkZW50aWZpZXJLZXkoQWRvcHRXSywgV0tTdHJp
bmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIlJlc291cmNlSWRlbnRpZmllciIpKTsKKyAgICAgICAg
dWludDY0X3QgcmVzb3VyY2VJZGVudGlmaWVyID0gV0tVSW50NjRHZXRWYWx1ZShzdGF0aWNfY2Fz
dDxXS1VJbnQ2NFJlZj4oV0tEaWN0aW9uYXJ5R2V0SXRlbUZvcktleShtZXNzYWdlQm9keURpY3Rp
b25hcnksIHJlc291cmNlSWRlbnRpZmllcktleS5nZXQoKSkpKTsKKworICAgICAgICBXS1JldGFp
blB0cjxXS1N0cmluZ1JlZj4gcmVxdWVzdEtleShBZG9wdFdLLCBXS1N0cmluZ0NyZWF0ZVdpdGhV
VEY4Q1N0cmluZygiUmVxdWVzdCIpKTsKKyAgICAgICAgV0tVUkxSZXF1ZXN0UmVmIHdrUmVxdWVz
dCA9IHN0YXRpY19jYXN0PFdLVVJMUmVxdWVzdFJlZj4oV0tEaWN0aW9uYXJ5R2V0SXRlbUZvcktl
eShtZXNzYWdlQm9keURpY3Rpb25hcnksIHJlcXVlc3RLZXkuZ2V0KCkpKTsKKworICAgICAgICBX
S1JldGFpblB0cjxXS1N0cmluZ1JlZj4gcmVkaXJlY3RSZXNwb25zZUtleShBZG9wdFdLLCBXS1N0
cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiUmVkaXJlY3RSZXNwb25zZSIpKTsKKyAgICAgICAg
V0tVUkxSZXNwb25zZVJlZiB3a1JlZGlyZWN0UmVzcG9uc2UgPSBzdGF0aWNfY2FzdDxXS1VSTFJl
c3BvbnNlUmVmPihXS0RpY3Rpb25hcnlHZXRJdGVtRm9yS2V5KG1lc3NhZ2VCb2R5RGljdGlvbmFy
eSwgcmVkaXJlY3RSZXNwb25zZUtleS5nZXQoKSkpOworCisgICAgICAgIFdlYktpdFdlYlJlc291
cmNlKiByZXNvdXJjZSA9IHdlYmtpdFdlYlZpZXdHZXRMb2FkaW5nV2ViUmVzb3VyY2Uod2ViVmll
dywgcmVzb3VyY2VJZGVudGlmaWVyKTsKKyAgICAgICAgR1JlZlB0cjxXZWJLaXRVUklSZXF1ZXN0
PiByZXF1ZXN0ID0gYWRvcHRHUmVmKHdlYmtpdFVSSVJlcXVlc3RDcmVhdGVGb3JSZXNvdXJjZVJl
cXVlc3QodG9JbXBsKHdrUmVxdWVzdCktPnJlc291cmNlUmVxdWVzdCgpKSk7CisgICAgICAgIEdS
ZWZQdHI8V2ViS2l0VVJJUmVzcG9uc2U+IHJlZGlyZWN0UmVzcG9uc2UgPSB3a1JlZGlyZWN0UmVz
cG9uc2UgPyBhZG9wdEdSZWYod2Via2l0VVJJUmVzcG9uc2VDcmVhdGVGb3JSZXNvdXJjZVJlc3Bv
bnNlKHRvSW1wbCh3a1JlZGlyZWN0UmVzcG9uc2UpLT5yZXNvdXJjZVJlc3BvbnNlKCkpKSA6IDA7
CisgICAgICAgIHJldHVyblZhbHVlID0gd2Via2l0V2ViUmVzb3VyY2VTZW5kUmVxdWVzdChyZXNv
dXJjZSwgcmVxdWVzdC5nZXQoKSwgcmVkaXJlY3RSZXNwb25zZS5nZXQoKSk7CisgICAgfSBlbHNl
CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworCisgICAgcmV0dXJuIHJldHVyblZhbHVl
OworfQorCiAvKioKICAqIHdlYmtpdF93ZWJfdmlld19uZXc6CiAgKgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlld1ByaXZhdGUuaCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXdQcml2YXRlLmgKaW5k
ZXggNzBkNmQ2ZC4uMDM3MzkzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9ndGsvV2ViS2l0V2ViVmlld1ByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3UHJpdmF0ZS5oCkBAIC01MSw1ICs1MSw2IEBAIHZv
aWQgd2Via2l0V2ViVmlld1JlbW92ZUxvYWRpbmdXZWJSZXNvdXJjZShXZWJLaXRXZWJWaWV3Kiwg
dWludDY0X3QgcmVzb3VyY2VJZGVuCiBXZWJLaXRXZWJSZXNvdXJjZSogd2Via2l0V2ViVmlld1Jl
c291cmNlTG9hZEZpbmlzaGVkKFdlYktpdFdlYlZpZXcqLCB1aW50NjRfdCByZXNvdXJjZUlkZW50
aWZpZXIpOwogYm9vbCB3ZWJraXRXZWJWaWV3RW50ZXJGdWxsU2NyZWVuKFdlYktpdFdlYlZpZXcq
KTsKIGJvb2wgd2Via2l0V2ViVmlld0xlYXZlRnVsbFNjcmVlbihXZWJLaXRXZWJWaWV3Kik7CitX
S1R5cGVSZWYgd2Via2l0V2ViVmlld0RpZFJlY2VpdmVNZXNzYWdlRnJvbUluamVjdGVkQnVuZGxl
KFdlYktpdFdlYlZpZXcqLCBXS1N0cmluZ1JlZiBtZXNzYWdlTmFtZSwgV0tUeXBlUmVmIG1lc3Nh
Z2VCb2R5KTsKIAogI2VuZGlmIC8vIFdlYktpdFdlYlZpZXdQcml2YXRlX2gKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay1zZWN0aW9u
cy50eHQgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJndGst
c2VjdGlvbnMudHh0CmluZGV4IDgyOWRlMWMuLjdjMGViZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay1zZWN0aW9ucy50eHQKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3RrLXNlY3Rp
b25zLnR4dApAQCAtMjcwLDYgKzI3MCw3IEBAIHdlYmtpdF9zZXR0aW5nc19nZXRfdHlwZQogV2Vi
S2l0VVJJUmVxdWVzdAogd2Via2l0X3VyaV9yZXF1ZXN0X25ldwogd2Via2l0X3VyaV9yZXF1ZXN0
X2dldF91cmkKK3dlYmtpdF91cmlfcmVxdWVzdF9zZXRfdXJpCiAKIDxTVUJTRUNUSU9OIFN0YW5k
YXJkPgogV2ViS2l0VVJJUmVxdWVzdENsYXNzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL2d0ay90ZXN0cy9HTlVtYWtlZmlsZS5hbSBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvZ3RrL3Rlc3RzL0dOVW1ha2VmaWxlLmFtCmluZGV4IGM4NjExMjUuLjRmYTdm
MjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL3Rlc3RzL0dO
VW1ha2VmaWxlLmFtCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL3Rlc3Rz
L0dOVW1ha2VmaWxlLmFtCkBAIC0yMyw2ICsyMyw3IEBAIGVuZGlmCiAKIHdlYmtpdDJfdGVzdHNf
Y3BwZmxhZ3MgPSBcCiAJLURXRUJLSVRfRVhFQ19QQVRIPVwiJHtzaGVsbCBwd2R9LyQodG9wX2J1
aWxkZGlyKS9Qcm9ncmFtc1wiIFwKKwktRFdFQktJVF9XRUJfQlVORExFX1BBVEg9XCIke3NoZWxs
IHB3ZH0vJCh0b3BfYnVpbGRkaXIpLy5saWJzXCIgXAogCS1EV0VCS0lUX1NSQ19ESVI9XCIke3No
ZWxsIHB3ZH0vJHtzcmNkaXJ9XCIgXAogCSQoamF2YXNjcmlwdGNvcmVfY3BwZmxhZ3MpIFwKIAkt
SSQoc3JjZGlyKS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvdGVzdHMvVGVzdE1haW4uY3BwIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9ndGsvdGVzdHMvVGVzdE1haW4uY3BwCmluZGV4IDg2MjJhZjEuLjVh
MzY4NjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL3Rlc3Rz
L1Rlc3RNYWluLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay90ZXN0
cy9UZXN0TWFpbi5jcHAKQEAgLTI5LDYgKzI5LDcgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIq
KiBhcmd2KQogewogICAgIGd0a190ZXN0X2luaXQoJmFyZ2MsICZhcmd2LCAwKTsKICAgICBnX3Nl
dGVudigiV0VCS0lUX0VYRUNfUEFUSCIsIFdFQktJVF9FWEVDX1BBVEgsIEZBTFNFKTsKKyAgICBn
X3NldGVudigiV0VCS0lUX1dFQl9CVU5ETEVfUEFUSCIsIFdFQktJVF9XRUJfQlVORExFX1BBVEgs
IEZBTFNFKTsKICAgICBnX3Rlc3RfYnVnX2Jhc2UoImh0dHBzOi8vYnVncy53ZWJraXQub3JnLyIp
OwogCiAgICAgYmVmb3JlQWxsKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL2d0ay90ZXN0cy9UZXN0UmVzb3VyY2VzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvZ3RrL3Rlc3RzL1Rlc3RSZXNvdXJjZXMuY3BwCmluZGV4IGZlZThiYTUuLmVmOTE4
MDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL3Rlc3RzL1Rl
c3RSZXNvdXJjZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL3Rl
c3RzL1Rlc3RSZXNvdXJjZXMuY3BwCkBAIC00Niw2ICs0NiwxNCBAQCBjbGFzcyBSZXNvdXJjZXNU
ZXN0OiBwdWJsaWMgV2ViVmlld1Rlc3QgewogcHVibGljOgogICAgIE1BS0VfR0xJQl9URVNUX0ZJ
WFRVUkUoUmVzb3VyY2VzVGVzdCk7CiAKKyAgICBzdGF0aWMgZ2Jvb2xlYW4gcmVzb3VyY2VTZW5k
UmVxdWVzdENhbGxiYWNrKFdlYktpdFdlYlJlc291cmNlKiByZXNvdXJjZSwgV2ViS2l0VVJJUmVx
dWVzdCogcmVxdWVzdCwgV2ViS2l0VVJJUmVzcG9uc2UqIHJlZGlyZWN0UmVzcG9uc2UsIFJlc291
cmNlc1Rlc3QqIHRlc3QpCisgICAgeworICAgICAgICB0ZXN0LT5hc3NlcnRPYmplY3RJc0RlbGV0
ZWRXaGVuVGVzdEZpbmlzaGVzKEdfT0JKRUNUKHJlcXVlc3QpKTsKKyAgICAgICAgaWYgKHJlZGly
ZWN0UmVzcG9uc2UpCisgICAgICAgICAgICB0ZXN0LT5hc3NlcnRPYmplY3RJc0RlbGV0ZWRXaGVu
VGVzdEZpbmlzaGVzKEdfT0JKRUNUKHJlZGlyZWN0UmVzcG9uc2UpKTsKKyAgICAgICAgcmV0dXJu
IHRlc3QtPnJlc291cmNlU2VuZFJlcXVlc3QocmVzb3VyY2UsIHJlcXVlc3QsIHJlZGlyZWN0UmVz
cG9uc2UpOworICAgIH0KKwogICAgIHN0YXRpYyB2b2lkIHJlc291cmNlU2VudFJlcXVlc3RDYWxs
YmFjayhXZWJLaXRXZWJSZXNvdXJjZSogcmVzb3VyY2UsIFdlYktpdFVSSVJlcXVlc3QqIHJlcXVl
c3QsIFdlYktpdFVSSVJlc3BvbnNlKiByZWRpcmVjdFJlc3BvbnNlLCBSZXNvdXJjZXNUZXN0KiB0
ZXN0KQogICAgIHsKICAgICAgICAgdGVzdC0+YXNzZXJ0T2JqZWN0SXNEZWxldGVkV2hlblRlc3RG
aW5pc2hlcyhHX09CSkVDVChyZXF1ZXN0KSk7CkBAIC04MSw2ICs4OSw3IEBAIHB1YmxpYzoKICAg
ICAgICAgdGVzdC0+YXNzZXJ0T2JqZWN0SXNEZWxldGVkV2hlblRlc3RGaW5pc2hlcyhHX09CSkVD
VChyZXNvdXJjZSkpOwogICAgICAgICB0ZXN0LT5hc3NlcnRPYmplY3RJc0RlbGV0ZWRXaGVuVGVz
dEZpbmlzaGVzKEdfT0JKRUNUKHJlcXVlc3QpKTsKICAgICAgICAgdGVzdC0+cmVzb3VyY2VMb2Fk
U3RhcnRlZChyZXNvdXJjZSwgcmVxdWVzdCk7CisgICAgICAgIGdfc2lnbmFsX2Nvbm5lY3QocmVz
b3VyY2UsICJzZW5kLXJlcXVlc3QiLCBHX0NBTExCQUNLKHJlc291cmNlU2VuZFJlcXVlc3RDYWxs
YmFjayksIHRlc3QpOwogICAgICAgICBnX3NpZ25hbF9jb25uZWN0KHJlc291cmNlLCAic2VudC1y
ZXF1ZXN0IiwgR19DQUxMQkFDSyhyZXNvdXJjZVNlbnRSZXF1ZXN0Q2FsbGJhY2spLCB0ZXN0KTsK
ICAgICAgICAgZ19zaWduYWxfY29ubmVjdChyZXNvdXJjZSwgIm5vdGlmeTo6cmVzcG9uc2UiLCBH
X0NBTExCQUNLKHJlc291cmNlUmVjZWl2ZWRSZXNwb25zZUNhbGxiYWNrKSwgdGVzdCk7CiAgICAg
ICAgIGdfc2lnbmFsX2Nvbm5lY3QocmVzb3VyY2UsICJyZWNlaXZlZC1kYXRhIiwgR19DQUxMQkFD
SyhyZXNvdXJjZVJlY2VpdmVkRGF0YUNhbGxiYWNrKSwgdGVzdCk7CkBAIC0xMDEsNiArMTEwLDEx
IEBAIHB1YmxpYzoKICAgICB7CiAgICAgfQogCisgICAgdmlydHVhbCBib29sIHJlc291cmNlU2Vu
ZFJlcXVlc3QoV2ViS2l0V2ViUmVzb3VyY2UqIHJlc291cmNlLCBXZWJLaXRVUklSZXF1ZXN0KiBy
ZXF1ZXN0LCBXZWJLaXRVUklSZXNwb25zZSogcmVkaXJlY3RSZXNwb25zZSkKKyAgICB7CisgICAg
ICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKICAgICB2aXJ0dWFsIHZvaWQgcmVzb3VyY2VTZW50
UmVxdWVzdChXZWJLaXRXZWJSZXNvdXJjZSogcmVzb3VyY2UsIFdlYktpdFVSSVJlcXVlc3QqIHJl
cXVlc3QsIFdlYktpdFVSSVJlc3BvbnNlKiByZWRpcmVjdFJlc3BvbnNlKQogICAgIHsKICAgICB9
CkBAIC00ODEsNiArNDk1LDc0IEBAIHN0YXRpYyB2b2lkIHRlc3RXZWJSZXNvdXJjZUdldERhdGEo
UmVzb3VyY2VzVGVzdCogdGVzdCwgZ2NvbnN0cG9pbnRlcikKICAgICAgICAgdGVzdC0+Y2hlY2tS
ZXNvdXJjZURhdGEoV0VCS0lUX1dFQl9SRVNPVVJDRShpdGVtLT5kYXRhKSk7CiB9CiAKK2NsYXNz
IFNlbmRSZXF1ZXN0VGVzdDogcHVibGljIFNpbmdsZVJlc291cmNlTG9hZFRlc3QgeworcHVibGlj
OgorICAgIE1BS0VfR0xJQl9URVNUX0ZJWFRVUkUoU2VuZFJlcXVlc3RUZXN0KTsKKworICAgIGJv
b2wgcmVzb3VyY2VTZW5kUmVxdWVzdChXZWJLaXRXZWJSZXNvdXJjZSogcmVzb3VyY2UsIFdlYktp
dFVSSVJlcXVlc3QqIHJlcXVlc3QsIFdlYktpdFVSSVJlc3BvbnNlKiByZWRpcmVjdFJlc3BvbnNl
KQorICAgIHsKKyAgICAgICAgaWYgKHJlc291cmNlICE9IG1fcmVzb3VyY2UpCisgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7CisKKyAgICAgICAgaWYgKG1fcmVzb3VyY2VVUkkuaXNOdWxsKCkpCisg
ICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgICAgICB3ZWJraXRfdXJpX3JlcXVlc3Rfc2V0
X3VyaShyZXF1ZXN0LCBtX3Jlc291cmNlVVJJLmRhdGEoKSk7CisgICAgICAgIHJldHVybiBmYWxz
ZTsKKyAgICB9CisKKyAgICB2b2lkIHJlc291cmNlU2VudFJlcXVlc3QoV2ViS2l0V2ViUmVzb3Vy
Y2UqIHJlc291cmNlLCBXZWJLaXRVUklSZXF1ZXN0KiByZXF1ZXN0LCBXZWJLaXRVUklSZXNwb25z
ZSogcmVkaXJlY3RSZXNwb25zZSkKKyAgICB7CisgICAgICAgIGlmIChyZXNvdXJjZSAhPSBtX3Jl
c291cmNlKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBnX2Fzc2VydF9jbXBzdHIod2Vi
a2l0X3VyaV9yZXF1ZXN0X2dldF91cmkocmVxdWVzdCksID09LCBtX3Jlc291cmNlVVJJLmRhdGEo
KSk7CisgICAgICAgIGdfYXNzZXJ0X2NtcHN0cih3ZWJraXRfdXJpX3JlcXVlc3RfZ2V0X3VyaShy
ZXF1ZXN0KSwgPT0sIHdlYmtpdF93ZWJfcmVzb3VyY2VfZ2V0X3VyaShyZXNvdXJjZSkpOworICAg
ICAgICBTaW5nbGVSZXNvdXJjZUxvYWRUZXN0OjpyZXNvdXJjZVNlbnRSZXF1ZXN0KHJlc291cmNl
LCByZXF1ZXN0LCByZWRpcmVjdFJlc3BvbnNlKTsKKyAgICB9CisKKyAgICB2b2lkIHJlc291cmNl
RmFpbGVkKFdlYktpdFdlYlJlc291cmNlKiByZXNvdXJjZSwgR0Vycm9yKiBlcnJvcikKKyAgICB7
CisgICAgICAgIGdfYXNzZXJ0KG1fcmVzb3VyY2VVUkkuaXNOdWxsKCkpOworICAgICAgICBnX2Fz
c2VydF9lcnJvcihlcnJvciwgV0VCS0lUX05FVFdPUktfRVJST1IsIFdFQktJVF9ORVRXT1JLX0VS
Uk9SX0NBTkNFTExFRCk7CisgICAgICAgIFNpbmdsZVJlc291cmNlTG9hZFRlc3Q6OnJlc291cmNl
RmFpbGVkKHJlc291cmNlLCBlcnJvcik7CisgICAgfQorCisgICAgdm9pZCBzZXRSZXNvdXJjZVVS
SShjb25zdCBDU3RyaW5nJiB1cmkpCisgICAgeworICAgICAgICBtX3Jlc291cmNlVVJJID0gdXJp
OworICAgIH0KKworICAgIENTdHJpbmcgbV9yZXNvdXJjZVVSSTsKK307CisKK3N0YXRpYyB2b2lk
IHRlc3RXZWJSZXNvdXJjZVNlbmRSZXF1ZXN0KFNlbmRSZXF1ZXN0VGVzdCogdGVzdCwgZ2NvbnN0
cG9pbnRlcikKK3sKKyAgICB0ZXN0LT5zZXRSZXNvdXJjZVVSSShrU2VydmVyLT5nZXRVUklGb3JQ
YXRoKCIvamF2YXNjcmlwdC5qcyIpKTsKKyAgICB0ZXN0LT5sb2FkVVJJKGtTZXJ2ZXItPmdldFVS
SUZvclBhdGgoInJlbGF0aXZlLWphdmFzY3JpcHQuaHRtbCIpLmRhdGEoKSk7CisgICAgdGVzdC0+
d2FpdFVudGlsUmVzb3VyY2VMb2FkRmluc2loZWQoKTsKKyAgICBnX2Fzc2VydCh0ZXN0LT5tX3Jl
c291cmNlKTsKKyAgICBWZWN0b3I8U2luZ2xlUmVzb3VyY2VMb2FkVGVzdDo6TG9hZEV2ZW50cz4m
IGV2ZW50cyA9IHRlc3QtPm1fbG9hZEV2ZW50czsKKyAgICBnX2Fzc2VydF9jbXBpbnQoZXZlbnRz
LnNpemUoKSwgPT0sIDUpOworICAgIGdfYXNzZXJ0X2NtcGludChldmVudHNbMF0sID09LCBTaW5n
bGVSZXNvdXJjZUxvYWRUZXN0OjpTdGFydGVkKTsKKyAgICBnX2Fzc2VydF9jbXBpbnQoZXZlbnRz
WzFdLCA9PSwgU2luZ2xlUmVzb3VyY2VMb2FkVGVzdDo6U2VudFJlcXVlc3QpOworICAgIGdfYXNz
ZXJ0X2NtcGludChldmVudHNbMl0sID09LCBTaW5nbGVSZXNvdXJjZUxvYWRUZXN0OjpSZWNlaXZl
ZFJlc3BvbnNlKTsKKyAgICBnX2Fzc2VydF9jbXBpbnQoZXZlbnRzWzNdLCA9PSwgU2luZ2xlUmVz
b3VyY2VMb2FkVGVzdDo6UmVjZWl2ZWREYXRhKTsKKyAgICBnX2Fzc2VydF9jbXBpbnQoZXZlbnRz
WzRdLCA9PSwgU2luZ2xlUmVzb3VyY2VMb2FkVGVzdDo6RmluaXNoZWQpOworICAgIGV2ZW50cy5j
bGVhcigpOworCisgICAgLy8gQ2FuY2VsIHJlcXVlc3QuCisgICAgdGVzdC0+c2V0UmVzb3VyY2VV
UkkoQ1N0cmluZygpKTsKKyAgICB0ZXN0LT5sb2FkVVJJKGtTZXJ2ZXItPmdldFVSSUZvclBhdGgo
InJlbGF0aXZlLWphdmFzY3JpcHQuaHRtbCIpLmRhdGEoKSk7CisgICAgdGVzdC0+d2FpdFVudGls
UmVzb3VyY2VMb2FkRmluc2loZWQoKTsKKyAgICBnX2Fzc2VydCh0ZXN0LT5tX3Jlc291cmNlKTsK
KyAgICBldmVudHMgPSB0ZXN0LT5tX2xvYWRFdmVudHM7CisgICAgZ19hc3NlcnRfY21waW50KGV2
ZW50cy5zaXplKCksID09LCAzKTsKKyAgICBnX2Fzc2VydF9jbXBpbnQoZXZlbnRzWzBdLCA9PSwg
U2luZ2xlUmVzb3VyY2VMb2FkVGVzdDo6U3RhcnRlZCk7CisgICAgZ19hc3NlcnRfY21waW50KGV2
ZW50c1sxXSwgPT0sIFNpbmdsZVJlc291cmNlTG9hZFRlc3Q6OkZhaWxlZCk7CisgICAgZ19hc3Nl
cnRfY21waW50KGV2ZW50c1syXSwgPT0sIFNpbmdsZVJlc291cmNlTG9hZFRlc3Q6OkZpbmlzaGVk
KTsKKyAgICBldmVudHMuY2xlYXIoKTsKK30KKwogc3RhdGljIHZvaWQgYWRkQ2FjaGVIVFRQSGVh
ZGVyc1RvUmVzcG9uc2UoU291cE1lc3NhZ2UqIG1lc3NhZ2UpCiB7CiAgICAgLy8gVGhlIGFjdHVh
bCBkYXRlIGRvZXNuJ3QgcmVhbGx5IG1hdHRlci4KQEAgLTUyNCw2ICs2MDYsOSBAQCBzdGF0aWMg
dm9pZCBzZXJ2ZXJDYWxsYmFjayhTb3VwU2VydmVyKiBzZXJ2ZXIsIFNvdXBNZXNzYWdlKiBtZXNz
YWdlLCBjb25zdCBjaGFyKgogICAgIH0gZWxzZSBpZiAoZ19zdHJfZXF1YWwocGF0aCwgIi9pbnZh
bGlkLWNzcy5odG1sIikpIHsKICAgICAgICAgc3RhdGljIGNvbnN0IGNoYXIqIGludmFsaWRDU1NI
dG1sID0gIjxodG1sPjxoZWFkPjxsaW5rIHJlbD0nc3R5bGVzaGVldCcgaHJlZj0nL2ludmFsaWQu
Y3NzJyB0eXBlPSd0ZXh0L2Nzcyc+PC9oZWFkPjxib2R5PjwvaHRtbD4iOwogICAgICAgICBzb3Vw
X21lc3NhZ2VfYm9keV9hcHBlbmQobWVzc2FnZS0+cmVzcG9uc2VfYm9keSwgU09VUF9NRU1PUllf
U1RBVElDLCBpbnZhbGlkQ1NTSHRtbCwgc3RybGVuKGludmFsaWRDU1NIdG1sKSk7CisgICAgfSBl
bHNlIGlmIChnX3N0cl9lcXVhbChwYXRoLCAiL3JlbGF0aXZlLWphdmFzY3JpcHQuaHRtbCIpKSB7
CisgICAgICAgIHN0YXRpYyBjb25zdCBjaGFyKiBqYXZhc2NyaXB0UmVsYXRpdmVIdG1sID0gIjxo
dG1sPjxoZWFkPjxzY3JpcHQgbGFuZ3VhZ2U9J2phdmFzY3JpcHQnIHNyYz0nc2NyaXB0cy9qYXZh
c2NyaXB0LmpzJz48L3NjcmlwdD48L2hlYWQ+PGJvZHk+PC9ib2R5PjwvaHRtbD4iOworICAgICAg
ICBzb3VwX21lc3NhZ2VfYm9keV9hcHBlbmQobWVzc2FnZS0+cmVzcG9uc2VfYm9keSwgU09VUF9N
RU1PUllfU1RBVElDLCBqYXZhc2NyaXB0UmVsYXRpdmVIdG1sLCBzdHJsZW4oamF2YXNjcmlwdFJl
bGF0aXZlSHRtbCkpOwogICAgIH0gZWxzZSBpZiAoZ19zdHJfZXF1YWwocGF0aCwgIi9zdHlsZS5j
c3MiKSkgewogICAgICAgICBzb3VwX21lc3NhZ2VfYm9keV9hcHBlbmQobWVzc2FnZS0+cmVzcG9u
c2VfYm9keSwgU09VUF9NRU1PUllfU1RBVElDLCBrU3R5bGVDU1MsIHN0cmxlbihrU3R5bGVDU1Mp
KTsKICAgICAgICAgYWRkQ2FjaGVIVFRQSGVhZGVyc1RvUmVzcG9uc2UobWVzc2FnZSk7CkBAIC01
NjEsNiArNjQ2LDcgQEAgdm9pZCBiZWZvcmVBbGwoKQogICAgIFNpbmdsZVJlc291cmNlTG9hZFRl
c3Q6OmFkZCgiV2ViS2l0V2ViUmVzb3VyY2UiLCAicmVzcG9uc2UiLCB0ZXN0V2ViUmVzb3VyY2VS
ZXNwb25zZSk7CiAgICAgUmVzb3VyY2VVUklUcmFja2luZ1Rlc3Q6OmFkZCgiV2ViS2l0V2ViUmVz
b3VyY2UiLCAiYWN0aXZlLXVyaSIsIHRlc3RXZWJSZXNvdXJjZUFjdGl2ZVVSSSk7CiAgICAgUmVz
b3VyY2VzVGVzdDo6YWRkKCJXZWJLaXRXZWJSZXNvdXJjZSIsICJnZXQtZGF0YSIsIHRlc3RXZWJS
ZXNvdXJjZUdldERhdGEpOworICAgIFNlbmRSZXF1ZXN0VGVzdDo6YWRkKCJXZWJLaXRXZWJSZXNv
dXJjZSIsICJzZW5kLXJlcXVlc3QiLCB0ZXN0V2ViUmVzb3VyY2VTZW5kUmVxdWVzdCk7CiB9CiAK
IHZvaWQgYWZ0ZXJBbGwoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9ndGsvd2Via2l0Mm1hcnNoYWwubGlzdCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Z3RrL3dlYmtpdDJtYXJzaGFsLmxpc3QKaW5kZXggZGUzMDMyOC4uMjY5ZjVkNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvd2Via2l0Mm1hcnNoYWwubGlzdAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay93ZWJraXQybWFyc2hhbC5saXN0
CkBAIC0yLDYgKzIsNyBAQCBCT09MRUFOOkJPWEVECiBCT09MRUFOOkVOVU0sU1RSSU5HLFBPSU5U
RVIKIEJPT0xFQU46T0JKRUNUCiBCT09MRUFOOk9CSkVDVCxFTlVNCitCT09MRUFOOk9CSkVDVCxP
QkpFQ1QKIEJPT0xFQU46U1RSSU5HCiBCT09MRUFOOlZPSUQKIE9CSkVDVDpWT0lECmRpZmYgLS1n
aXQgYS9Ub29scy9NaW5pQnJvd3Nlci9ndGsvR05VbWFrZWZpbGUuYW0gYi9Ub29scy9NaW5pQnJv
d3Nlci9ndGsvR05VbWFrZWZpbGUuYW0KaW5kZXggMzM4ODI5MC4uNzZjNTNjMSAxMDA2NDQKLS0t
IGEvVG9vbHMvTWluaUJyb3dzZXIvZ3RrL0dOVW1ha2VmaWxlLmFtCisrKyBiL1Rvb2xzL01pbmlC
cm93c2VyL2d0ay9HTlVtYWtlZmlsZS5hbQpAQCAtOSw2ICs5LDcgQEAgUHJvZ3JhbXNfTWluaUJy
b3dzZXJfQ1BQRkxBR1MgPSBcCiAJLUkkKHRvcF9idWlsZGRpcikvRGVyaXZlZFNvdXJjZXMvV2Vi
S2l0Mi93ZWJraXQyZ3RrIFwKIAktSSQodG9wX2J1aWxkZGlyKS9EZXJpdmVkU291cmNlcy9XZWJL
aXQyL3dlYmtpdDJndGsvaW5jbHVkZSBcCiAJLURXRUJLSVRfRVhFQ19QQVRIPVwiJHtzaGVsbCBw
d2R9LyQodG9wX2J1aWxkZGlyKS9Qcm9ncmFtcy9cIiBcCisJLURXRUJLSVRfV0VCX0JVTkRMRV9Q
QVRIPVwiJHtzaGVsbCBwd2R9LyQodG9wX2J1aWxkZGlyKS8ubGlic1wiIFwKIAkkKGdsb2JhbF9j
cHBmbGFncykgXAogCSQoamF2YXNjcmlwdGNvcmVfY3BwZmxhZ3MpIFwKIAkkKEdMSUJfQ0ZMQUdT
KSBcCmRpZmYgLS1naXQgYS9Ub29scy9NaW5pQnJvd3Nlci9ndGsvbWFpbi5jIGIvVG9vbHMvTWlu
aUJyb3dzZXIvZ3RrL21haW4uYwppbmRleCBiMjY2Y2RjLi5mZDUyNjFhIDEwMDY0NAotLS0gYS9U
b29scy9NaW5pQnJvd3Nlci9ndGsvbWFpbi5jCisrKyBiL1Rvb2xzL01pbmlCcm93c2VyL2d0ay9t
YWluLmMKQEAgLTIyMiw2ICsyMjIsOSBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltd
KQogICAgIH0KICAgICBnX29wdGlvbl9jb250ZXh0X2ZyZWUgKGNvbnRleHQpOwogCisgICAgLy8g
UHJlZmVyIHRoZSBub3QgaW5zdGFsbGVkIHdlYiBidW5kbGUuCisgICAgZ19zZXRlbnYoIldFQktJ
VF9XRUJfQlVORExFX1BBVEgiLCBXRUJLSVRfV0VCX0JVTkRMRV9QQVRILCBGQUxTRSk7CisKICAg
ICBpZiAodXJpQXJndW1lbnRzKSB7CiAgICAgICAgIGludCBpOwogCmRpZmYgLS1naXQgYS9Ub29s
cy9ndGsvZ2VuZXJhdGUtZ3RrZG9jIGIvVG9vbHMvZ3RrL2dlbmVyYXRlLWd0a2RvYwppbmRleCBj
YzMzYzQ4Li4wZDU4NDIzIDEwMDc1NQotLS0gYS9Ub29scy9ndGsvZ2VuZXJhdGUtZ3RrZG9jCisr
KyBiL1Rvb2xzL2d0ay9nZW5lcmF0ZS1ndGtkb2MKQEAgLTk4LDYgKzk4LDcgQEAgZGVmIGdldF93
ZWJraXQyX29wdGlvbnMoKToKICAgICAgICAgJ2lnbm9yZWRfZmlsZXMnOiBnbG9iLmdsb2Ioc3Jj
X3BhdGgoJypQcml2YXRlLmgnKSkgKyBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgZ2xvYi5n
bG9iKHNyY19wYXRoKCcqQ2xpZW50KicpKSArIFwKICAgICAgICAgICAgICAgICAgICAgICAgICBn
bG9iLmdsb2Ioc3JjX3BhdGgoJ1dlYktpdFdlYlZpZXdCYXNlQWNjZXNzaWJsZS4qJykpICsgXAor
ICAgICAgICAgICAgICAgICAgICAgICAgIGdsb2IuZ2xvYihzcmNfcGF0aCgnV2ViS2l0SW5qZWN0
ZWRCdW5kbGUvKi5oJykpICsgXAogICAgICAgICAgICAgICAgICAgICAgICAgIGdsb2IuZ2xvYihz
cmNfcGF0aCgndGVzdHMvKi5oJykpCiAgICAgfSkKICAgICByZXR1cm4gb3B0aW9ucwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>190719</attachid>
            <date>2013-02-28 06:57:08 -0800</date>
            <delta_ts>2013-03-14 03:37:06 -0700</delta_ts>
            <desc>Updated patch to move the API to the injected bundle</desc>
            <filename>wk2-send-request.diff</filename>
            <type>text/plain</type>
            <size>19300</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCBkOTRjMTBlLi5iZjFhOTliIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDIg
QEAKKzIwMTMtMDItMjggIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29t
PgorCisgICAgICAgIFtHVEtdIEFkZCBXZWJLaXRXZWJQYWdlOjpzZW5kLXJlcXVlc3Qgc2lnbmFs
IHRvIFdlYktpdDIgR1RLKyBBUEkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTgzNjgxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgQWRkIFdlYktpdFdlYlBhZ2U6OnNlbmQtcmVxdWVzdCBzaWduYWwgZW1pdHRl
ZCBpbiB3aWxsU2VuZFJlcXVlc3QKKyAgICAgICAgY2FsbGJhY2sgdG8gYWxsb3cgd2ViIHByb2Nl
c3MgZXh0ZW5zaW9ucyB0byBtb2RpZnkgcmVxdWVzdHMgYmVmb3JlCisgICAgICAgIHRoZXkgYXJl
IHNlbnQgb3IgY2FuY2VsIHRoZSByZXNvdXJjZSBsb2FkLgorCisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9ndGsvV2ViS2l0VVJJUmVxdWVzdC5jcHA6CisgICAgICAgICh3ZWJraXRVUklSZXF1ZXN0
U2V0UHJvcGVydHkpOiBVc2Ugd2Via2l0X3VyaV9yZXF1ZXN0X3NldF91cmkoKSB0bworICAgICAg
ICBzZXQgdGhlIG5ldyBVUkkuCisgICAgICAgICh3ZWJraXRfdXJpX3JlcXVlc3RfY2xhc3NfaW5p
dCk6IE1ha2UgVVJJIHByb3BlcnR5IGNvbnN0cnVjdAorICAgICAgICBpbnN0ZWFkIG9mIGNvbnN0
cnVjdC1vbmx5LCBzaW5jZSBpdCBjYW4gYmUgdXBkYXRlZCBvbmNlCisgICAgICAgIGNvbnN0cnVj
dGVkLiBJdCBzaG91bGQgbmV2ZXIgYmUgTlVMTCwgc28gc2V0IGRlZmF1bHQgdmFsdWUgdG8KKyAg
ICAgICAgYWJvdXQ6YmxhbmsgaW5zdGFkIG9mIE5VTEwuCisgICAgICAgICh3ZWJraXRfdXJpX3Jl
cXVlc3Rfc2V0X3VyaSk6IE5ldyBwdWJsaWMgbWV0aG9kIHRvIHNldCB0aGUgVVJJIG9mCisgICAg
ICAgIHRoZSBXZWJLaXRVUklSZXF1ZXN0LgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dl
YktpdFVSSVJlcXVlc3QuaDogQWxsb3cgdG8gaW5jbHVkZSB0aGlzIGZpbGUKKyAgICAgICAgZnJv
bSB3ZWJraXQtd2ViLWV4dGVuc2lvbi5oLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dl
YktpdFVSSVJlc3BvbnNlLmg6IERpdHRvLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL2Rv
Y3Mvd2Via2l0Mmd0ay1zZWN0aW9ucy50eHQ6IEFkZAorICAgICAgICB3ZWJraXRfdXJpX3JlcXVl
c3Rfc2V0X3VyaS4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay90ZXN0cy9UZXN0UmVzb3Vy
Y2VzLmNwcDoKKyAgICAgICAgKHRlc3RXZWJSZXNvdXJjZVNlbmRSZXF1ZXN0KToKKyAgICAgICAg
KHNlcnZlckNhbGxiYWNrKToKKyAgICAgICAgKGJlZm9yZUFsbCk6CisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9ndGsvdGVzdHMvV2ViRXh0ZW5zaW9uVGVzdC5jcHA6CisgICAgICAgIChzZW5kUmVx
dWVzdENhbGxiYWNrKToKKyAgICAgICAgKHBhZ2VDcmVhdGVkQ2FsbGJhY2spOgorICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvZ3RrL3dlYmtpdDJtYXJzaGFsLmxpc3Q6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL1dlYktpdFdlYlBhZ2UuY3BwOgorICAgICAgICAo
d2lsbFNlbmRSZXF1ZXN0Rm9yRnJhbWUpOiBFbWl0IFdlYktpdFdlYlBhZ2U6OnNlbmQtcmVxdWVz
dCBhbmQKKyAgICAgICAgcmV0dXJuIGVhcmx5IGlmIHRoZSBsb2FkIGlzIGNhbmNlbGxlZC4KKyAg
ICAgICAgKHdlYmtpdF93ZWJfcGFnZV9jbGFzc19pbml0KTogQWRkIFdlYktpdFdlYlBhZ2U6OnNl
bmQtcmVxdWVzdCBzaWduYWwuCisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvZ3RrL3dlYmtpdC13ZWItZXh0ZW5zaW9uLmg6CisKIDIwMTMtMDItMjEgIENhcmxvcyBHYXJj
aWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQuIEZp
eCBtYWtlIGRpc3RjaGVjay4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvZ3RrL1dlYktpdFVSSVJlcXVlc3QuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9ndGsvV2ViS2l0VVJJUmVxdWVzdC5jcHAKaW5kZXggMjE5ZjM0Zi4uOGRkNDdlOSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VVJJUmVxdWVzdC5j
cHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VVJJUmVxdWVz
dC5jcHAKQEAgLTcwLDcgKzcwLDcgQEAgc3RhdGljIHZvaWQgd2Via2l0VVJJUmVxdWVzdFNldFBy
b3BlcnR5KEdPYmplY3QqIG9iamVjdCwgZ3VpbnQgcHJvcElkLCBjb25zdCBHVmEKIAogICAgIHN3
aXRjaCAocHJvcElkKSB7CiAgICAgY2FzZSBQUk9QX1VSSToKLSAgICAgICAgcmVxdWVzdC0+cHJp
di0+cmVzb3VyY2VSZXF1ZXN0LnNldFVSTChLVVJMKEtVUkwoKSwgZ192YWx1ZV9nZXRfc3RyaW5n
KHZhbHVlKSkpOworICAgICAgICB3ZWJraXRfdXJpX3JlcXVlc3Rfc2V0X3VyaShyZXF1ZXN0LCBn
X3ZhbHVlX2dldF9zdHJpbmcodmFsdWUpKTsKICAgICAgICAgYnJlYWs7CiAgICAgZGVmYXVsdDoK
ICAgICAgICAgR19PQkpFQ1RfV0FSTl9JTlZBTElEX1BST1BFUlRZX0lEKG9iamVjdCwgcHJvcElk
LCBwYXJhbVNwZWMpOwpAQCAtOTIsOCArOTIsOCBAQCBzdGF0aWMgdm9pZCB3ZWJraXRfdXJpX3Jl
cXVlc3RfY2xhc3NfaW5pdChXZWJLaXRVUklSZXF1ZXN0Q2xhc3MqIHJlcXVlc3RDbGFzcykKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdfcGFyYW1fc3BlY19zdHJpbmcoInVy
aSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIF8oIlVSSSIpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBfKCJUaGUgVVJJIHRvIHdoaWNoIHRoZSByZXF1ZXN0IHdpbGwgYmUgbWFk
ZS4iKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgMCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgc3RhdGljX2Nhc3Q8R1BhcmFtRmxhZ3M+KFdFQktJVF9QQVJBTV9SRUFEV1JJVEUg
fCBHX1BBUkFNX0NPTlNUUlVDVF9PTkxZKSkpOworICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYWJvdXQ6YmxhbmsiLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxH
UGFyYW1GbGFncz4oV0VCS0lUX1BBUkFNX1JFQURXUklURSB8IEdfUEFSQU1fQ09OU1RSVUNUKSkp
OwogfQogCiAvKioKQEAgLTEyNSw2ICsxMjUsMjYgQEAgY29uc3QgZ2NoYXIqIHdlYmtpdF91cmlf
cmVxdWVzdF9nZXRfdXJpKFdlYktpdFVSSVJlcXVlc3QqIHJlcXVlc3QpCiAgICAgcmV0dXJuIHJl
cXVlc3QtPnByaXYtPnVyaS5kYXRhKCk7CiB9CiAKKy8qKgorICogd2Via2l0X3VyaV9yZXF1ZXN0
X3NldF91cmk6CisgKiBAcmVxdWVzdDogYSAjV2ViS2l0VVJJUmVxdWVzdAorICogQHVyaTogYW4g
VVJJCisgKgorICogU2V0IHRoZSBVUkkgb2YgQHJlcXVlc3QKKyAqLwordm9pZCB3ZWJraXRfdXJp
X3JlcXVlc3Rfc2V0X3VyaShXZWJLaXRVUklSZXF1ZXN0KiByZXF1ZXN0LCBjb25zdCBjaGFyKiB1
cmkpCit7CisgICAgZ19yZXR1cm5faWZfZmFpbChXRUJLSVRfSVNfVVJJX1JFUVVFU1QocmVxdWVz
dCkpOworICAgIGdfcmV0dXJuX2lmX2ZhaWwodXJpKTsKKworICAgIEtVUkwgdXJsKEtVUkwoKSwg
dXJpKTsKKyAgICBpZiAodXJsID09IHJlcXVlc3QtPnByaXYtPnJlc291cmNlUmVxdWVzdC51cmwo
KSkKKyAgICAgICAgcmV0dXJuOworCisgICAgcmVxdWVzdC0+cHJpdi0+cmVzb3VyY2VSZXF1ZXN0
LnNldFVSTCh1cmwpOworICAgIGdfb2JqZWN0X25vdGlmeShHX09CSkVDVChyZXF1ZXN0KSwgInVy
aSIpOworfQorCiBXZWJLaXRVUklSZXF1ZXN0KiB3ZWJraXRVUklSZXF1ZXN0Q3JlYXRlRm9yUmVz
b3VyY2VSZXF1ZXN0KGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVzb3VyY2VSZXF1
ZXN0KQogewogICAgIFdlYktpdFVSSVJlcXVlc3QqIHVyaVJlcXVlc3QgPSBXRUJLSVRfVVJJX1JF
UVVFU1QoZ19vYmplY3RfbmV3KFdFQktJVF9UWVBFX1VSSV9SRVFVRVNULCBOVUxMKSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVUklSZXF1ZXN0
LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVUklSZXF1ZXN0LmgK
aW5kZXggNTIzNjA2OS4uODgxMjE1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9ndGsvV2ViS2l0VVJJUmVxdWVzdC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvZ3RrL1dlYktpdFVSSVJlcXVlc3QuaApAQCAtMTcsNyArMTcsNyBAQAogICogQm9z
dG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCiAgKi8KIAotI2lmICFkZWZpbmVkKF9fV0VCS0lUMl9I
X0lOU0lERV9fKSAmJiAhZGVmaW5lZChXRUJLSVQyX0NPTVBJTEFUSU9OKQorI2lmICFkZWZpbmVk
KF9fV0VCS0lUMl9IX0lOU0lERV9fKSAmJiAhZGVmaW5lZChXRUJLSVQyX0NPTVBJTEFUSU9OKSAm
JiAhZGVmaW5lZChfX1dFQktJVF9XRUJfRVhURU5TSU9OX0hfSU5TSURFX18pCiAjZXJyb3IgIk9u
bHkgPHdlYmtpdDIvd2Via2l0Mi5oPiBjYW4gYmUgaW5jbHVkZWQgZGlyZWN0bHkuIgogI2VuZGlm
CiAKQEAgLTYxLDYgKzYxLDEwIEBAIHdlYmtpdF91cmlfcmVxdWVzdF9uZXcgICAgICAoY29uc3Qg
Z2NoYXIgICAgICAqdXJpKTsKIFdFQktJVF9BUEkgY29uc3QgZ2NoYXIgKgogd2Via2l0X3VyaV9y
ZXF1ZXN0X2dldF91cmkgIChXZWJLaXRVUklSZXF1ZXN0ICpyZXF1ZXN0KTsKIAorV0VCS0lUX0FQ
SSB2b2lkCit3ZWJraXRfdXJpX3JlcXVlc3Rfc2V0X3VyaSAgKFdlYktpdFVSSVJlcXVlc3QgKnJl
cXVlc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGdjaGFyICAgICAgKnVy
aSk7CisKIEdfRU5EX0RFQ0xTCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VVJJUmVzcG9uc2UuaCBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVSSVJlc3BvbnNlLmgKaW5kZXggZjkyYmE0Zi4uOTI4OGE5
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VVJJ
UmVzcG9uc2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRV
UklSZXNwb25zZS5oCkBAIC0xNyw3ICsxNyw3IEBACiAgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEs
IFVTQS4KICAqLwogCi0jaWYgIWRlZmluZWQoX19XRUJLSVQyX0hfSU5TSURFX18pICYmICFkZWZp
bmVkKFdFQktJVDJfQ09NUElMQVRJT04pCisjaWYgIWRlZmluZWQoX19XRUJLSVQyX0hfSU5TSURF
X18pICYmICFkZWZpbmVkKFdFQktJVDJfQ09NUElMQVRJT04pICYmICFkZWZpbmVkKF9fV0VCS0lU
X1dFQl9FWFRFTlNJT05fSF9JTlNJREVfXykKICNlcnJvciAiT25seSA8d2Via2l0Mi93ZWJraXQy
Lmg+IGNhbiBiZSBpbmNsdWRlZCBkaXJlY3RseS4iCiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3RrLXNlY3Rpb25zLnR4
dCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay1zZWN0
aW9ucy50eHQKaW5kZXggZjZlOGE4NC4uZWIyYmIxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3RrLXNlY3Rpb25zLnR4dAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJndGstc2VjdGlvbnMu
dHh0CkBAIC0zMzAsNiArMzMwLDcgQEAgd2Via2l0X3NldHRpbmdzX2dldF90eXBlCiBXZWJLaXRV
UklSZXF1ZXN0CiB3ZWJraXRfdXJpX3JlcXVlc3RfbmV3CiB3ZWJraXRfdXJpX3JlcXVlc3RfZ2V0
X3VyaQord2Via2l0X3VyaV9yZXF1ZXN0X3NldF91cmkKIAogPFNVQlNFQ1RJT04gU3RhbmRhcmQ+
CiBXZWJLaXRVUklSZXF1ZXN0Q2xhc3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvZ3RrL3Rlc3RzL1Rlc3RSZXNvdXJjZXMuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9ndGsvdGVzdHMvVGVzdFJlc291cmNlcy5jcHAKaW5kZXggYzA2NDNiZi4uMWE1
ZjcwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvdGVzdHMv
VGVzdFJlc291cmNlcy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsv
dGVzdHMvVGVzdFJlc291cmNlcy5jcHAKQEAgLTU2MCw2ICs1NjAsNzYgQEAgc3RhdGljIHZvaWQg
dGVzdFdlYlZpZXdSZXNvdXJjZXNIaXN0b3J5Q2FjaGUoU2luZ2xlUmVzb3VyY2VMb2FkVGVzdCog
dGVzdCwgZ2NvbnMKICAgICBnX2Fzc2VydF9jbXBzdHIod2Via2l0X3dlYl9yZXNvdXJjZV9nZXRf
dXJpKHJlc291cmNlKSwgPT0sIHNpbXBsZVN0eWxlQ1NTVVJJLmRhdGEoKSk7CiB9CiAKK2NsYXNz
IFNlbmRSZXF1ZXN0VGVzdDogcHVibGljIFNpbmdsZVJlc291cmNlTG9hZFRlc3QgeworcHVibGlj
OgorICAgIE1BS0VfR0xJQl9URVNUX0ZJWFRVUkUoU2VuZFJlcXVlc3RUZXN0KTsKKworICAgIHZv
aWQgcmVzb3VyY2VTZW50UmVxdWVzdChXZWJLaXRXZWJSZXNvdXJjZSogcmVzb3VyY2UsIFdlYktp
dFVSSVJlcXVlc3QqIHJlcXVlc3QsIFdlYktpdFVSSVJlc3BvbnNlKiByZWRpcmVjdFJlc3BvbnNl
KQorICAgIHsKKyAgICAgICAgaWYgKHJlc291cmNlICE9IG1fcmVzb3VyY2UpCisgICAgICAgICAg
ICByZXR1cm47CisKKyAgICAgICAgZ19hc3NlcnRfY21wc3RyKHdlYmtpdF91cmlfcmVxdWVzdF9n
ZXRfdXJpKHJlcXVlc3QpLCA9PSwgbV9leHBlY3RlZE5ld1Jlc291cmNlVVJJLmRhdGEoKSk7Cisg
ICAgICAgIGdfYXNzZXJ0X2NtcHN0cih3ZWJraXRfdXJpX3JlcXVlc3RfZ2V0X3VyaShyZXF1ZXN0
KSwgPT0sIHdlYmtpdF93ZWJfcmVzb3VyY2VfZ2V0X3VyaShyZXNvdXJjZSkpOworCisgICAgICAg
IFNpbmdsZVJlc291cmNlTG9hZFRlc3Q6OnJlc291cmNlU2VudFJlcXVlc3QocmVzb3VyY2UsIHJl
cXVlc3QsIHJlZGlyZWN0UmVzcG9uc2UpOworICAgIH0KKworICAgIHZvaWQgcmVzb3VyY2VGYWls
ZWQoV2ViS2l0V2ViUmVzb3VyY2UqIHJlc291cmNlLCBHRXJyb3IqIGVycm9yKQorICAgIHsKKyAg
ICAgICAgaWYgKHJlc291cmNlICE9IG1fcmVzb3VyY2UpCisgICAgICAgICAgICByZXR1cm47CisK
KyAgICAgICAgZ19hc3NlcnRfY21wc3RyKHdlYmtpdF93ZWJfcmVzb3VyY2VfZ2V0X3VyaShyZXNv
dXJjZSksID09LCBtX2V4cGVjdGVkQ2FuY2VsbGVkUmVzb3VyY2VVUkkuZGF0YSgpKTsKKyAgICAg
ICAgZ19hc3NlcnRfZXJyb3IoZXJyb3IsIFdFQktJVF9ORVRXT1JLX0VSUk9SLCBXRUJLSVRfTkVU
V09SS19FUlJPUl9DQU5DRUxMRUQpOworCisgICAgICAgIFNpbmdsZVJlc291cmNlTG9hZFRlc3Q6
OnJlc291cmNlRmFpbGVkKHJlc291cmNlLCBlcnJvcik7CisgICAgfQorCisgICAgdm9pZCBzZXRF
eHBlY3RlZE5ld1Jlc291cmNlVVJJKGNvbnN0IENTdHJpbmcmIHVyaSkKKyAgICB7CisgICAgICAg
IG1fZXhwZWN0ZWROZXdSZXNvdXJjZVVSSSA9IHVyaTsKKyAgICB9CisKKyAgICB2b2lkIHNldEV4
cGVjdGVkQ2FuY2VsbGVkUmVzb3VyY2VVUkkoY29uc3QgQ1N0cmluZyYgdXJpKQorICAgIHsKKyAg
ICAgICAgbV9leHBlY3RlZENhbmNlbGxlZFJlc291cmNlVVJJID0gdXJpOworICAgIH0KKworICAg
IENTdHJpbmcgbV9leHBlY3RlZE5ld1Jlc291cmNlVVJJOworICAgIENTdHJpbmcgbV9leHBlY3Rl
ZENhbmNlbGxlZFJlc291cmNlVVJJOworfTsKKworc3RhdGljIHZvaWQgdGVzdFdlYlJlc291cmNl
U2VuZFJlcXVlc3QoU2VuZFJlcXVlc3RUZXN0KiB0ZXN0LCBnY29uc3Rwb2ludGVyKQoreworICAg
IHRlc3QtPnNldEV4cGVjdGVkTmV3UmVzb3VyY2VVUkkoa1NlcnZlci0+Z2V0VVJJRm9yUGF0aCgi
L2phdmFzY3JpcHQuanMiKSk7CisgICAgdGVzdC0+bG9hZFVSSShrU2VydmVyLT5nZXRVUklGb3JQ
YXRoKCJyZWxhdGl2ZS1qYXZhc2NyaXB0Lmh0bWwiKS5kYXRhKCkpOworICAgIHRlc3QtPndhaXRV
bnRpbFJlc291cmNlTG9hZEZpbmlzaGVkKCk7CisgICAgZ19hc3NlcnQodGVzdC0+bV9yZXNvdXJj
ZSk7CisKKyAgICBWZWN0b3I8U2luZ2xlUmVzb3VyY2VMb2FkVGVzdDo6TG9hZEV2ZW50cz4mIGV2
ZW50cyA9IHRlc3QtPm1fbG9hZEV2ZW50czsKKyAgICBnX2Fzc2VydF9jbXBpbnQoZXZlbnRzLnNp
emUoKSwgPT0sIDUpOworICAgIGdfYXNzZXJ0X2NtcGludChldmVudHNbMF0sID09LCBTaW5nbGVS
ZXNvdXJjZUxvYWRUZXN0OjpTdGFydGVkKTsKKyAgICBnX2Fzc2VydF9jbXBpbnQoZXZlbnRzWzFd
LCA9PSwgU2luZ2xlUmVzb3VyY2VMb2FkVGVzdDo6U2VudFJlcXVlc3QpOworICAgIGdfYXNzZXJ0
X2NtcGludChldmVudHNbMl0sID09LCBTaW5nbGVSZXNvdXJjZUxvYWRUZXN0OjpSZWNlaXZlZFJl
c3BvbnNlKTsKKyAgICBnX2Fzc2VydF9jbXBpbnQoZXZlbnRzWzNdLCA9PSwgU2luZ2xlUmVzb3Vy
Y2VMb2FkVGVzdDo6UmVjZWl2ZWREYXRhKTsKKyAgICBnX2Fzc2VydF9jbXBpbnQoZXZlbnRzWzRd
LCA9PSwgU2luZ2xlUmVzb3VyY2VMb2FkVGVzdDo6RmluaXNoZWQpOworICAgIGV2ZW50cy5jbGVh
cigpOworCisgICAgLy8gQ2FuY2VsIHJlcXVlc3QuCisgICAgdGVzdC0+c2V0RXhwZWN0ZWRDYW5j
ZWxsZWRSZXNvdXJjZVVSSShrU2VydmVyLT5nZXRVUklGb3JQYXRoKCIvY2FuY2VsLXRoaXMuanMi
KSk7CisgICAgdGVzdC0+bG9hZFVSSShrU2VydmVyLT5nZXRVUklGb3JQYXRoKCIvcmVzb3VyY2Ut
dG8tY2FuY2VsLmh0bWwiKS5kYXRhKCkpOworICAgIHRlc3QtPndhaXRVbnRpbFJlc291cmNlTG9h
ZEZpbmlzaGVkKCk7CisgICAgZ19hc3NlcnQodGVzdC0+bV9yZXNvdXJjZSk7CisKKyAgICBldmVu
dHMgPSB0ZXN0LT5tX2xvYWRFdmVudHM7CisgICAgZ19hc3NlcnRfY21waW50KGV2ZW50cy5zaXpl
KCksID09LCAzKTsKKyAgICBnX2Fzc2VydF9jbXBpbnQoZXZlbnRzWzBdLCA9PSwgU2luZ2xlUmVz
b3VyY2VMb2FkVGVzdDo6U3RhcnRlZCk7CisgICAgZ19hc3NlcnRfY21waW50KGV2ZW50c1sxXSwg
PT0sIFNpbmdsZVJlc291cmNlTG9hZFRlc3Q6OkZhaWxlZCk7CisgICAgZ19hc3NlcnRfY21waW50
KGV2ZW50c1syXSwgPT0sIFNpbmdsZVJlc291cmNlTG9hZFRlc3Q6OkZpbmlzaGVkKTsKKyAgICBl
dmVudHMuY2xlYXIoKTsKK30KKwogc3RhdGljIHZvaWQgYWRkQ2FjaGVIVFRQSGVhZGVyc1RvUmVz
cG9uc2UoU291cE1lc3NhZ2UqIG1lc3NhZ2UpCiB7CiAgICAgLy8gVGhlIGFjdHVhbCBkYXRlIGRv
ZXNuJ3QgcmVhbGx5IG1hdHRlci4KQEAgLTYxMyw2ICs2ODMsMTIgQEAgc3RhdGljIHZvaWQgc2Vy
dmVyQ2FsbGJhY2soU291cFNlcnZlciogc2VydmVyLCBTb3VwTWVzc2FnZSogbWVzc2FnZSwgY29u
c3QgY2hhcioKICAgICAgICAgc291cF9tZXNzYWdlX2JvZHlfYXBwZW5kKG1lc3NhZ2UtPnJlc3Bv
bnNlX2JvZHksIFNPVVBfTUVNT1JZX1NUQVRJQywga0phdmFzY3JpcHQsIHN0cmxlbihrSmF2YXNj
cmlwdCkpOwogICAgICAgICBzb3VwX21lc3NhZ2VfaGVhZGVyc19hcHBlbmQobWVzc2FnZS0+cmVz
cG9uc2VfaGVhZGVycywgIkNvbnRlbnQtVHlwZSIsICJ0ZXh0L2phdmFzY3JpcHQiKTsKICAgICAg
ICAgc291cF9tZXNzYWdlX2hlYWRlcnNfYXBwZW5kKG1lc3NhZ2UtPnJlc3BvbnNlX2hlYWRlcnMs
ICJDb250ZW50LURpc3Bvc2l0aW9uIiwgImZpbGVuYW1lPUphdmFTY3JpcHQuanMiKTsKKyAgICB9
IGVsc2UgaWYgKGdfc3RyX2VxdWFsKHBhdGgsICIvcmVsYXRpdmUtamF2YXNjcmlwdC5odG1sIikp
IHsKKyAgICAgICAgc3RhdGljIGNvbnN0IGNoYXIqIGphdmFzY3JpcHRSZWxhdGl2ZUhUTUwgPSAi
PGh0bWw+PGhlYWQ+PHNjcmlwdCBsYW5ndWFnZT0namF2YXNjcmlwdCcgc3JjPSdyZW1vdmUtdGhp
cy9qYXZhc2NyaXB0LmpzJz48L3NjcmlwdD48L2hlYWQ+PGJvZHk+PC9ib2R5PjwvaHRtbD4iOwor
ICAgICAgICBzb3VwX21lc3NhZ2VfYm9keV9hcHBlbmQobWVzc2FnZS0+cmVzcG9uc2VfYm9keSwg
U09VUF9NRU1PUllfU1RBVElDLCBqYXZhc2NyaXB0UmVsYXRpdmVIVE1MLCBzdHJsZW4oamF2YXNj
cmlwdFJlbGF0aXZlSFRNTCkpOworICAgIH0gZWxzZSBpZiAoZ19zdHJfZXF1YWwocGF0aCwgIi9y
ZXNvdXJjZS10by1jYW5jZWwuaHRtbCIpKSB7CisgICAgICAgIHN0YXRpYyBjb25zdCBjaGFyKiBy
ZXNvdXJjZVRvQ2FuY2VsSFRNTCA9ICI8aHRtbD48aGVhZD48c2NyaXB0IGxhbmd1YWdlPSdqYXZh
c2NyaXB0JyBzcmM9J2NhbmNlbC10aGlzLmpzJz48L3NjcmlwdD48L2hlYWQ+PGJvZHk+PC9ib2R5
PjwvaHRtbD4iOworICAgICAgICBzb3VwX21lc3NhZ2VfYm9keV9hcHBlbmQobWVzc2FnZS0+cmVz
cG9uc2VfYm9keSwgU09VUF9NRU1PUllfU1RBVElDLCByZXNvdXJjZVRvQ2FuY2VsSFRNTCwgc3Ry
bGVuKHJlc291cmNlVG9DYW5jZWxIVE1MKSk7CiAgICAgfSBlbHNlIGlmIChnX3N0cl9lcXVhbChw
YXRoLCAiL2JsYW5rLmljbyIpKSB7CiAgICAgICAgIEdPd25QdHI8Y2hhcj4gZmlsZVBhdGgoZ19i
dWlsZF9maWxlbmFtZShUZXN0OjpnZXRXZWJLaXQxVGVzdFJlc291Y2VzRGlyKCkuZGF0YSgpLCBw
YXRoLCBOVUxMKSk7CiAgICAgICAgIGNoYXIqIGNvbnRlbnRzOwpAQCAtNjQzLDYgKzcxOSw4IEBA
IHZvaWQgYmVmb3JlQWxsKCkKICAgICBrU2VydmVyID0gbmV3IFdlYktpdFRlc3RTZXJ2ZXIoKTsK
ICAgICBrU2VydmVyLT5ydW4oc2VydmVyQ2FsbGJhY2spOwogCisgICAgd2Via2l0X3dlYl9jb250
ZXh0X3NldF93ZWJfZXh0ZW5zaW9uc19kaXJlY3Rvcnkod2Via2l0X3dlYl9jb250ZXh0X2dldF9k
ZWZhdWx0KCksIFdFQktJVF9URVNUX1dFQl9FWFRFTlNJT05TX0RJUik7CisKICAgICBSZXNvdXJj
ZXNUZXN0OjphZGQoIldlYktpdFdlYlZpZXciLCAicmVzb3VyY2VzIiwgdGVzdFdlYlZpZXdSZXNv
dXJjZXMpOwogICAgIFNpbmdsZVJlc291cmNlTG9hZFRlc3Q6OmFkZCgiV2ViS2l0V2ViUmVzb3Vy
Y2UiLCAibG9hZGluZyIsIHRlc3RXZWJSZXNvdXJjZUxvYWRpbmcpOwogICAgIFNpbmdsZVJlc291
cmNlTG9hZFRlc3Q6OmFkZCgiV2ViS2l0V2ViUmVzb3VyY2UiLCAicmVzcG9uc2UiLCB0ZXN0V2Vi
UmVzb3VyY2VSZXNwb25zZSk7CkBAIC02NTEsNiArNzI5LDcgQEAgdm9pZCBiZWZvcmVBbGwoKQog
ICAgIFJlc291cmNlVVJJVHJhY2tpbmdUZXN0OjphZGQoIldlYktpdFdlYlJlc291cmNlIiwgImFj
dGl2ZS11cmkiLCB0ZXN0V2ViUmVzb3VyY2VBY3RpdmVVUkkpOwogICAgIFJlc291cmNlc1Rlc3Q6
OmFkZCgiV2ViS2l0V2ViUmVzb3VyY2UiLCAiZ2V0LWRhdGEiLCB0ZXN0V2ViUmVzb3VyY2VHZXRE
YXRhKTsKICAgICBTaW5nbGVSZXNvdXJjZUxvYWRUZXN0OjphZGQoIldlYktpdFdlYlZpZXciLCAi
aGlzdG9yeS1jYWNoZSIsIHRlc3RXZWJWaWV3UmVzb3VyY2VzSGlzdG9yeUNhY2hlKTsKKyAgICBT
ZW5kUmVxdWVzdFRlc3Q6OmFkZCgiV2ViS2l0V2ViUGFnZSIsICJzZW5kLXJlcXVlc3QiLCB0ZXN0
V2ViUmVzb3VyY2VTZW5kUmVxdWVzdCk7CiB9CiAKIHZvaWQgYWZ0ZXJBbGwoKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvdGVzdHMvV2ViRXh0ZW5zaW9uVGVz
dC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay90ZXN0cy9XZWJFeHRlbnNp
b25UZXN0LmNwcAppbmRleCBhYTY2MDQyLi5kYTMzOWU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay90ZXN0cy9XZWJFeHRlbnNpb25UZXN0LmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay90ZXN0cy9XZWJFeHRlbnNpb25UZXN0LmNw
cApAQCAtMjAsNiArMjAsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogCiAjaW5jbHVkZSA8Z2lv
L2dpby5oPgorI2luY2x1ZGUgPHN0cmluZy5oPgogI2luY2x1ZGUgPHdlYmtpdDIvd2Via2l0LXdl
Yi1leHRlbnNpb24uaD4KICNpbmNsdWRlIDx3dGYvZ29iamVjdC9HT3duUHRyLmg+CiAKQEAgLTQ2
LDkgKzQ3LDI1IEBAIHN0YXRpYyB2b2lkIGRvY3VtZW50TG9hZGVkQ2FsbGJhY2soV2ViS2l0V2Vi
UGFnZSosIGdwb2ludGVyIHVzZXJEYXRhKQogICAgIGdfYXNzZXJ0KG9rKTsKIH0KIAorc3RhdGlj
IGdib29sZWFuIHNlbmRSZXF1ZXN0Q2FsbGJhY2soV2ViS2l0V2ViUGFnZSosIFdlYktpdFVSSVJl
cXVlc3QqIHJlcXVlc3QsIFdlYktpdFVSSVJlc3BvbnNlKiwgZ3BvaW50ZXIpCit7CisgICAgY29u
c3QgY2hhciogcmVxdWVzdFVSSSA9IHdlYmtpdF91cmlfcmVxdWVzdF9nZXRfdXJpKHJlcXVlc3Qp
OworICAgIGdfYXNzZXJ0KHJlcXVlc3RVUkkpOworCisgICAgaWYgKGNvbnN0IGNoYXIqIHN1ZmZp
eCA9IGdfc3RycnN0cihyZXF1ZXN0VVJJLCAiL3JlbW92ZS10aGlzL2phdmFzY3JpcHQuanMiKSkg
eworICAgICAgICBHT3duUHRyPGNoYXI+IHByZWZpeChnX3N0cm5kdXAocmVxdWVzdFVSSSwgc3Ry
bGVuKHJlcXVlc3RVUkkpIC0gc3RybGVuKHN1ZmZpeCkpKTsKKyAgICAgICAgR093blB0cjxjaGFy
PiBuZXdVUkkoZ19zdHJkdXBfcHJpbnRmKCIlcy9qYXZhc2NyaXB0LmpzIiwgcHJlZml4LmdldCgp
KSk7CisgICAgICAgIHdlYmtpdF91cmlfcmVxdWVzdF9zZXRfdXJpKHJlcXVlc3QsIG5ld1VSSS5n
ZXQoKSk7CisgICAgfSBlbHNlIGlmIChnX3N0cl9oYXNfc3VmZml4KHJlcXVlc3RVUkksICIvY2Fu
Y2VsLXRoaXMuanMiKSkKKyAgICAgICAgcmV0dXJuIFRSVUU7CisKKyAgICByZXR1cm4gRkFMU0U7
Cit9CisKIHN0YXRpYyB2b2lkIHBhZ2VDcmVhdGVkQ2FsbGJhY2soV2ViS2l0V2ViRXh0ZW5zaW9u
KiwgV2ViS2l0V2ViUGFnZSogd2ViUGFnZSwgZ3BvaW50ZXIgdXNlckRhdGEpCiB7CiAgICAgZ19z
aWduYWxfY29ubmVjdCh3ZWJQYWdlLCAiZG9jdW1lbnQtbG9hZGVkIiwgR19DQUxMQkFDSyhkb2N1
bWVudExvYWRlZENhbGxiYWNrKSwgdXNlckRhdGEpOworICAgIGdfc2lnbmFsX2Nvbm5lY3Qod2Vi
UGFnZSwgInNlbmQtcmVxdWVzdCIsIEdfQ0FMTEJBQ0soc2VuZFJlcXVlc3RDYWxsYmFjayksIDAp
OwogfQogCiBzdGF0aWMgdm9pZCBtZXRob2RDYWxsQ2FsbGJhY2soR0RCdXNDb25uZWN0aW9uKiBj
b25uZWN0aW9uLCBjb25zdCBjaGFyKiBzZW5kZXIsIGNvbnN0IGNoYXIqIG9iamVjdFBhdGgsIGNv
bnN0IGNoYXIqIGludGVyZmFjZU5hbWUsIGNvbnN0IGNoYXIqIG1ldGhvZE5hbWUsIEdWYXJpYW50
KiBwYXJhbWV0ZXJzLCBHREJ1c01ldGhvZEludm9jYXRpb24qIGludm9jYXRpb24sIGdwb2ludGVy
IHVzZXJEYXRhKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsv
d2Via2l0Mm1hcnNoYWwubGlzdCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL3dl
YmtpdDJtYXJzaGFsLmxpc3QKaW5kZXggZWZkOWUwNC4uNDIwNzY2ZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvd2Via2l0Mm1hcnNoYWwubGlzdAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay93ZWJraXQybWFyc2hhbC5saXN0CkBAIC0z
LDYgKzMsNyBAQCBCT09MRUFOOkVOVU0sU1RSSU5HLFBPSU5URVIKIEJPT0xFQU46T0JKRUNUCiBC
T09MRUFOOk9CSkVDVCxCT1hFRCxPQkpFQ1QKIEJPT0xFQU46T0JKRUNULEVOVU0KK0JPT0xFQU46
T0JKRUNULE9CSkVDVAogQk9PTEVBTjpTVFJJTkcKIEJPT0xFQU46Vk9JRAogT0JKRUNUOlZPSUQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L2d0ay9XZWJLaXRXZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvQVBJL2d0ay9XZWJLaXRXZWJQYWdlLmNwcAppbmRleCAzZGZjOTllLi40Nzc0YjVl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SS9ndGsvV2ViS2l0V2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvZ3RrL1dlYktpdFdlYlBhZ2UuY3BwCkBAIC0yNSw3ICsyNSwxMCBA
QAogI2luY2x1ZGUgIldLQnVuZGxlQVBJQ2FzdC5oIgogI2luY2x1ZGUgIldlYkZyYW1lLmgiCiAj
aW5jbHVkZSAiV2ViS2l0RE9NRG9jdW1lbnRQcml2YXRlLmgiCisjaW5jbHVkZSAiV2ViS2l0TWFy
c2hhbC5oIgogI2luY2x1ZGUgIldlYktpdFByaXZhdGUuaCIKKyNpbmNsdWRlICJXZWJLaXRVUklS
ZXF1ZXN0UHJpdmF0ZS5oIgorI2luY2x1ZGUgIldlYktpdFVSSVJlc3BvbnNlUHJpdmF0ZS5oIgog
I2luY2x1ZGUgIldlYktpdFdlYlBhZ2VQcml2YXRlLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzcy5o
IgogI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWUuaD4KQEAgLTM1LDYgKzM4LDcgQEAgdXNpbmcgbmFt
ZXNwYWNlIFdlYkNvcmU7CiAKIGVudW0gewogICAgIERPQ1VNRU5UX0xPQURFRCwKKyAgICBTRU5E
X1JFUVVFU1QsCiAKICAgICBMQVNUX1NJR05BTAogfTsKQEAgLTYyLDE4ICs2NiwyNyBAQCBzdGF0
aWMgdm9pZCBkaWRJbml0aWF0ZUxvYWRGb3JSZXNvdXJjZShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwg
V0tCdW5kbGVGcmFtZVJlZiBmcgogICAgIFdlYlByb2Nlc3M6OnNoYXJlZCgpLmluamVjdGVkQnVu
ZGxlKCktPnBvc3RNZXNzYWdlKFN0cmluZzo6ZnJvbVVURjgoIldlYlBhZ2UuRGlkSW5pdGlhdGVM
b2FkRm9yUmVzb3VyY2UiKSwgSW1tdXRhYmxlRGljdGlvbmFyeTo6YWRvcHQobWVzc2FnZSkuZ2V0
KCkpOwogfQogCi1zdGF0aWMgV0tVUkxSZXF1ZXN0UmVmIHdpbGxTZW5kUmVxdWVzdEZvckZyYW1l
KFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBXS0J1bmRsZUZyYW1lUmVmLCB1aW50NjRfdCBpZGVudGlm
aWVyLCBXS1VSTFJlcXVlc3RSZWYgcmVxdWVzdCwgV0tVUkxSZXNwb25zZVJlZiByZWRpcmVjdFJl
c3BvbnNlLCBjb25zdCB2b2lkKikKK3N0YXRpYyBXS1VSTFJlcXVlc3RSZWYgd2lsbFNlbmRSZXF1
ZXN0Rm9yRnJhbWUoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdLQnVuZGxlRnJhbWVSZWYsIHVpbnQ2
NF90IGlkZW50aWZpZXIsIFdLVVJMUmVxdWVzdFJlZiB3a1JlcXVlc3QsIFdLVVJMUmVzcG9uc2VS
ZWYgd2tSZWRpcmVjdFJlc3BvbnNlLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQogeworICAgIEdS
ZWZQdHI8V2ViS2l0VVJJUmVxdWVzdD4gcmVxdWVzdCA9IGFkb3B0R1JlZih3ZWJraXRVUklSZXF1
ZXN0Q3JlYXRlRm9yUmVzb3VyY2VSZXF1ZXN0KHRvSW1wbCh3a1JlcXVlc3QpLT5yZXNvdXJjZVJl
cXVlc3QoKSkpOworICAgIEdSZWZQdHI8V2ViS2l0VVJJUmVzcG9uc2U+IHJlZGlyZWN0UmVzcG9u
c2UgPSB3a1JlZGlyZWN0UmVzcG9uc2UgPyBhZG9wdEdSZWYod2Via2l0VVJJUmVzcG9uc2VDcmVh
dGVGb3JSZXNvdXJjZVJlc3BvbnNlKHRvSW1wbCh3a1JlZGlyZWN0UmVzcG9uc2UpLT5yZXNvdXJj
ZVJlc3BvbnNlKCkpKSA6IDA7CisKKyAgICBnYm9vbGVhbiByZXR1cm5WYWx1ZTsKKyAgICBnX3Np
Z25hbF9lbWl0KFdFQktJVF9XRUJfUEFHRShjbGllbnRJbmZvKSwgc2lnbmFsc1tTRU5EX1JFUVVF
U1RdLCAwLCByZXF1ZXN0LmdldCgpLCByZWRpcmVjdFJlc3BvbnNlLmdldCgpLCAmcmV0dXJuVmFs
dWUpOworICAgIGlmIChyZXR1cm5WYWx1ZSkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICBXZWJV
UkxSZXF1ZXN0KiBuZXdSZXF1ZXN0ID0gV2ViVVJMUmVxdWVzdDo6Y3JlYXRlKHdlYmtpdFVSSVJl
cXVlc3RHZXRSZXNvdXJjZVJlcXVlc3QocmVxdWVzdC5nZXQoKSkpLmxlYWtSZWYoKTsKKwogICAg
IEltbXV0YWJsZURpY3Rpb25hcnk6Ok1hcFR5cGUgbWVzc2FnZTsKICAgICBtZXNzYWdlLnNldChT
dHJpbmc6OmZyb21VVEY4KCJQYWdlIiksIHRvSW1wbChwYWdlKSk7CiAgICAgbWVzc2FnZS5zZXQo
U3RyaW5nOjpmcm9tVVRGOCgiSWRlbnRpZmllciIpLCBXZWJVSW50NjQ6OmNyZWF0ZShpZGVudGlm
aWVyKSk7Ci0gICAgbWVzc2FnZS5zZXQoU3RyaW5nOjpmcm9tVVRGOCgiUmVxdWVzdCIpLCB0b0lt
cGwocmVxdWVzdCkpOwotICAgIGlmICghdG9JbXBsKHJlZGlyZWN0UmVzcG9uc2UpLT5yZXNvdXJj
ZVJlc3BvbnNlKCkuaXNOdWxsKCkpCi0gICAgICAgIG1lc3NhZ2Uuc2V0KFN0cmluZzo6ZnJvbVVU
RjgoIlJlZGlyZWN0UmVzcG9uc2UiKSwgdG9JbXBsKHJlZGlyZWN0UmVzcG9uc2UpKTsKKyAgICBt
ZXNzYWdlLnNldChTdHJpbmc6OmZyb21VVEY4KCJSZXF1ZXN0IiksIG5ld1JlcXVlc3QpOworICAg
IGlmICghdG9JbXBsKHdrUmVkaXJlY3RSZXNwb25zZSktPnJlc291cmNlUmVzcG9uc2UoKS5pc051
bGwoKSkKKyAgICAgICAgbWVzc2FnZS5zZXQoU3RyaW5nOjpmcm9tVVRGOCgiUmVkaXJlY3RSZXNw
b25zZSIpLCB0b0ltcGwod2tSZWRpcmVjdFJlc3BvbnNlKSk7CiAgICAgV2ViUHJvY2Vzczo6c2hh
cmVkKCkuaW5qZWN0ZWRCdW5kbGUoKS0+cG9zdE1lc3NhZ2UoU3RyaW5nOjpmcm9tVVRGOCgiV2Vi
UGFnZS5EaWRTZW5kUmVxdWVzdEZvclJlc291cmNlIiksIEltbXV0YWJsZURpY3Rpb25hcnk6OmFk
b3B0KG1lc3NhZ2UpLmdldCgpKTsKIAotICAgIFdLUmV0YWluKHJlcXVlc3QpOwotICAgIHJldHVy
biByZXF1ZXN0OworICAgIHJldHVybiB0b0FQSShuZXdSZXF1ZXN0KTsKIH0KIAogc3RhdGljIHZv
aWQgZGlkUmVjZWl2ZVJlc3BvbnNlRm9yUmVzb3VyY2UoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdL
QnVuZGxlRnJhbWVSZWYsIHVpbnQ2NF90IGlkZW50aWZpZXIsIFdLVVJMUmVzcG9uc2VSZWYgcmVz
cG9uc2UsIGNvbnN0IHZvaWQqKQpAQCAtMTMwLDYgKzE0MywzNyBAQCBzdGF0aWMgdm9pZCB3ZWJr
aXRfd2ViX3BhZ2VfY2xhc3NfaW5pdChXZWJLaXRXZWJQYWdlQ2xhc3MqIGtsYXNzKQogICAgICAg
ICAwLCAwLCAwLAogICAgICAgICBnX2NjbG9zdXJlX21hcnNoYWxfVk9JRF9fT0JKRUNULAogICAg
ICAgICBHX1RZUEVfTk9ORSwgMCk7CisKKyAgICAvKioKKyAgICAgKiBXZWJLaXRXZWJQYWdlOjpz
ZW5kLXJlcXVlc3Q6CisgICAgICogQHdlYl9wYWdlOiB0aGUgI1dlYktpdFdlYlBhZ2Ugb24gd2hp
Y2ggdGhlIHNpZ25hbCBpcyBlbWl0dGVkCisgICAgICogQHJlcXVlc3Q6IGEgI1dlYktpdFVSSVJl
cXVlc3QKKyAgICAgKiBAcmVkaXJlY3RlZF9yZXNwb25zZTogYSAjV2ViS2l0VVJJUmVzcG9uc2Us
IG9yICVOVUxMCisgICAgICoKKyAgICAgKiBUaGlzIHNpZ25hbCBpcyBlbWl0dGVkIHdoZW4gQHJl
cXVlc3QgaXMgYWJvdXQgdG8gYmUgc2VudCB0bworICAgICAqIHRoZSBzZXJ2ZXIuIFRoaXMgc2ln
bmFsIGNhbiBiZSB1c2VkIHRvIG1vZGlmeSB0aGUgI1dlYktpdFVSSVJlcXVlc3QKKyAgICAgKiB0
aGF0IHdpbGwgYmUgc2VudCB0byB0aGUgc2VydmVyLiBZb3UgY2FuIGFsc28gY2FuY2VsIHRoZSBy
ZXNvdXJjZSBsb2FkCisgICAgICogb3BlcmF0aW9uIGJ5IGNvbm5lY3RpbmcgdG8gdGhpcyBzaWdu
YWwgYW5kIHJldHVybmluZyAlVFJVRS4KKyAgICAgKgorICAgICAqIEluIGNhc2Ugb2YgYSBzZXJ2
ZXIgcmVkaXJlY3Rpb24gdGhpcyBzaWduYWwgaXMKKyAgICAgKiBlbWl0dGVkIGFnYWluIHdpdGgg
dGhlIEByZXF1ZXN0IGFyZ3VtZW50IGNvbnRhaW5pbmcgdGhlIG5ldworICAgICAqIHJlcXVlc3Qg
dG8gYmUgc2VudCB0byB0aGUgc2VydmVyIGR1ZSB0byB0aGUgcmVkaXJlY3Rpb24gYW5kIHRoZQor
ICAgICAqIEByZWRpcmVjdGVkX3Jlc3BvbnNlIHBhcmFtZXRlciBjb250YWluaW5nIHRoZSByZXNw
b25zZQorICAgICAqIHJlY2VpdmVkIGJ5IHRoZSBzZXJ2ZXIgZm9yIHRoZSBpbml0aWFsIHJlcXVl
c3QuCisgICAgICoKKyAgICAgKiBSZXR1cm5zOiAlVFJVRSB0byBzdG9wIG90aGVyIGhhbmRsZXJz
IGZyb20gYmVpbmcgaW52b2tlZCBmb3IgdGhlIGV2ZW50LgorICAgICAqICAgICVGQUxTRSB0byBj
b250aW51ZSBlbWlzc2lvbiBvZiB0aGUgZXZlbnQuCisgICAgICovCisgICAgc2lnbmFsc1tTRU5E
X1JFUVVFU1RdID0gZ19zaWduYWxfbmV3KAorICAgICAgICAic2VuZC1yZXF1ZXN0IiwKKyAgICAg
ICAgR19UWVBFX0ZST01fQ0xBU1Moa2xhc3MpLAorICAgICAgICBHX1NJR05BTF9SVU5fTEFTVCwK
KyAgICAgICAgMCwKKyAgICAgICAgZ19zaWduYWxfYWNjdW11bGF0b3JfdHJ1ZV9oYW5kbGVkLCAw
LAorICAgICAgICB3ZWJraXRfbWFyc2hhbF9CT09MRUFOX19PQkpFQ1RfT0JKRUNULAorICAgICAg
ICBHX1RZUEVfQk9PTEVBTiwgMiwKKyAgICAgICAgV0VCS0lUX1RZUEVfVVJJX1JFUVVFU1QsCisg
ICAgICAgIFdFQktJVF9UWVBFX1VSSV9SRVNQT05TRSk7CiB9CiAKIFdlYktpdFdlYlBhZ2UqIHdl
YmtpdFdlYlBhZ2VDcmVhdGUoV2ViUGFnZSogd2ViUGFnZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay93ZWJraXQtd2ViLWV4dGVu
c2lvbi5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3Rr
L3dlYmtpdC13ZWItZXh0ZW5zaW9uLmgKaW5kZXggZTVlZjM1YS4uZmZiYjU1NyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL3dlYmtp
dC13ZWItZXh0ZW5zaW9uLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvZ3RrL3dlYmtpdC13ZWItZXh0ZW5zaW9uLmgKQEAgLTIyLDYgKzIyLDggQEAK
IAogI2RlZmluZSBfX1dFQktJVF9XRUJfRVhURU5TSU9OX0hfSU5TSURFX18KIAorI2luY2x1ZGUg
PHdlYmtpdDIvV2ViS2l0VVJJUmVxdWVzdC5oPgorI2luY2x1ZGUgPHdlYmtpdDIvV2ViS2l0VVJJ
UmVzcG9uc2UuaD4KICNpbmNsdWRlIDx3ZWJraXQyL1dlYktpdFdlYkV4dGVuc2lvbi5oPgogI2lu
Y2x1ZGUgPHdlYmtpdDIvV2ViS2l0V2ViUGFnZS5oPgogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>193102</attachid>
            <date>2013-03-14 03:37:06 -0700</date>
            <delta_ts>2013-03-14 09:03:06 -0700</delta_ts>
            <desc>Updated patch</desc>
            <filename>wk2-send-request3.diff</filename>
            <type>text/plain</type>
            <size>32708</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCBmZDllZTA2Li5kMjhkNDE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjYg
QEAKKzIwMTMtMDMtMTQgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29t
PgorCisgICAgICAgIFtHVEtdIEFkZCBXZWJLaXRXZWJQYWdlOjpzZW5kLXJlcXVlc3Qgc2lnbmFs
IHRvIFdlYktpdDIgR1RLKyBBUEkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTgzNjgxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgQWRkIFdlYktpdFdlYlBhZ2U6OnNlbmQtcmVxdWVzdCBzaWduYWwgZW1pdHRl
ZCBpbiB3aWxsU2VuZFJlcXVlc3QKKyAgICAgICAgY2FsbGJhY2sgdG8gYWxsb3cgd2ViIHByb2Nl
c3MgZXh0ZW5zaW9ucyB0byBtb2RpZnkgcmVxdWVzdHMgYmVmb3JlCisgICAgICAgIHRoZXkgYXJl
IHNlbnQgb3IgY2FuY2VsIHRoZSByZXNvdXJjZSBsb2FkLgorICAgICAgICBUaGlzIHBhdGNoIG1h
a2VzIFdlYktpdFVSSVJlcXVlc3QgYW5kIFdlYktpdFVSSVJlc3BvbnNlIG9iamVjdHMKKyAgICAg
ICAgc2hhcmVhYmxlIGJldHdlZW4gVUkgcHJvY2VzcyBhbmQgd2ViIGV4dGVuc2lvbnMgQVBJcy4g
U2luY2UgYm90aAorICAgICAgICBBUElzIGZvcmNlIHNpbmdsZSBoZWFkZXIgaW5jbHVkZXMsIHRo
ZSBXZWJLaXREZWZpbmVzLmggaGVhZGVyIGhhcworICAgICAgICBiZWVuIHNwbGl0IG1vdmluZyB0
aGUgZm9yd2FyZCBkZWNsYXJhdGlvbnMgc3BlY2lmaWMgdG8gdGhlIFVJCisgICAgICAgIHByb2Nl
c3MgQVBJIHRvIGEgbmV3IGZpbGUgV2ViS2l0Rm9yd2FyZC5oLiBUaGlzIHdheSB3ZSBjYW4gYWxz
bworICAgICAgICBzaGFyZSB0aGUgV2ViS2l0RGVmaW5lcy5oIGhlYWRlciBhbmQgcmVtb3ZlIHRo
ZQorICAgICAgICBXZWJLaXRXZWJFeHRlbnNpb25EZWZpbmVzLmggaGVhZGVyIHVzZWQgaW4gdGhl
IHdlYiBleHRlbnNpb25zIEFQSS4KKworICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06IEFk
ZCBuZXcgZmlsZXMgdG8gY29tcGlsYXRpb24uCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsv
V2ViS2l0Q29udGV4dE1lbnUuaDogSW5jbHVkZSBXZWJLaXRGb3J3YXJkLmguCisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0Q29udGV4dE1lbnVJdGVtLmg6IERpdHRvLgorICAgICAg
ICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdERlZmluZXMuaDogUmVtb3ZlIGZvcndhcmQgZGVj
bGFyYXRpb25zLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdERvd25sb2FkLmg6
IEluY2x1ZGUgV2ViS2l0Rm9yd2FyZC5oLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dl
YktpdEZpbmRDb250cm9sbGVyLmg6IERpdHRvLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3Rr
L1dlYktpdEZvcndhcmQuaDogQWRkZWQuIENvbnRhaW5zIHRoZSBmb3J3YXJkCisgICAgICAgIGRl
Y2xhcmF0aW9ucyBtb3ZlZCBmcm9tIFdlYktpdERlZmluZXMuaC4KKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL2d0ay9XZWJLaXRQcmludE9wZXJhdGlvbi5oOiBJbmNsdWRlIFdlYktpdEZvcndhcmQu
aC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVUklSZXF1ZXN0LmNwcDoKKyAg
ICAgICAgKHdlYmtpdFVSSVJlcXVlc3RTZXRQcm9wZXJ0eSk6IFVzZSB3ZWJraXRfdXJpX3JlcXVl
c3Rfc2V0X3VyaSgpIHRvCisgICAgICAgIHNldCB0aGUgbmV3IFVSSS4KKyAgICAgICAgKHdlYmtp
dF91cmlfcmVxdWVzdF9jbGFzc19pbml0KTogTWFrZSBVUkkgcHJvcGVydHkgY29uc3RydWN0Cisg
ICAgICAgIGluc3RlYWQgb2YgY29uc3RydWN0LW9ubHksIHNpbmNlIGl0IGNhbiBiZSB1cGRhdGVk
IG9uY2UKKyAgICAgICAgY29uc3RydWN0ZWQuIEl0IHNob3VsZCBuZXZlciBiZSBOVUxMLCBzbyBz
ZXQgZGVmYXVsdCB2YWx1ZSB0bworICAgICAgICBhYm91dDpibGFuayBpbnN0YWQgb2YgTlVMTC4K
KyAgICAgICAgKHdlYmtpdF91cmlfcmVxdWVzdF9zZXRfdXJpKTogTmV3IHB1YmxpYyBtZXRob2Qg
dG8gc2V0IHRoZSBVUkkgb2YKKyAgICAgICAgdGhlIFdlYktpdFVSSVJlcXVlc3QuCisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VVJJUmVxdWVzdC5oOiBBbGxvdyB0byBpbmNsdWRl
IHRoaXMgZmlsZQorICAgICAgICBmcm9tIHdlYmtpdC13ZWItZXh0ZW5zaW9uLmguCisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VVJJUmVzcG9uc2UuaDogRGl0dG8uCisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VVJJU2NoZW1lUmVxdWVzdC5oOiBJbmNsdWRlCisg
ICAgICAgIFdlYktpdEZvcndhcmQuaC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJL
aXRXZWJWaWV3Lmg6IERpdHRvLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Vi
a2l0Mmd0ay1zZWN0aW9ucy50eHQ6IEFkZAorICAgICAgICB3ZWJraXRfdXJpX3JlcXVlc3Rfc2V0
X3VyaS4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay90ZXN0cy9UZXN0UmVzb3VyY2VzLmNw
cDoKKyAgICAgICAgKHRlc3RXZWJSZXNvdXJjZVNlbmRSZXF1ZXN0KToKKyAgICAgICAgKHNlcnZl
ckNhbGxiYWNrKToKKyAgICAgICAgKGJlZm9yZUFsbCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS9ndGsvdGVzdHMvV2ViRXh0ZW5zaW9uVGVzdC5jcHA6CisgICAgICAgIChzZW5kUmVxdWVzdENh
bGxiYWNrKToKKyAgICAgICAgKHBhZ2VDcmVhdGVkQ2FsbGJhY2spOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9BUEkvZ3RrL3dlYmtpdDJtYXJzaGFsLmxpc3Q6CisgICAgICAgICogV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvZ3RrL1dlYktpdFdlYkV4dGVuc2lvbi5oOiBJbmNsdWRlCisgICAg
ICAgIFdlYktpdERlZmluZXMuaCBpbnN0ZWFkIG9mIFdlYktpdFdlYkV4dGVuc2lvbkRlZmluZXMu
aC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvV2ViS2l0V2Vi
UGFnZS5jcHA6CisgICAgICAgICh3aWxsU2VuZFJlcXVlc3RGb3JGcmFtZSk6IEVtaXQgV2ViS2l0
V2ViUGFnZTo6c2VuZC1yZXF1ZXN0IGFuZAorICAgICAgICByZXR1cm4gZWFybHkgaWYgdGhlIGxv
YWQgaXMgY2FuY2VsbGVkLgorICAgICAgICAod2Via2l0X3dlYl9wYWdlX2NsYXNzX2luaXQpOiBB
ZGQgV2ViS2l0V2ViUGFnZTo6c2VuZC1yZXF1ZXN0CisgICAgICAgIHNpZ25hbC4KKyAgICAgICAg
KiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvV2ViS2l0V2ViUGFnZS5oOiBJbmNs
dWRlCisgICAgICAgIFdlYktpdERlZmluZXMuaCBpbnN0ZWFkIG9mIFdlYktpdFdlYkV4dGVuc2lv
bkRlZmluZXMuaC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsv
d2Via2l0LXdlYi1leHRlbnNpb24uaDoKKwogMjAxMy0wMy0xNCAgTWFudWVsIFJlZ28gQ2FzYXNu
b3ZhcyAgPHJlZ29AaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXVtXSzJdIEFkZCBkb2N1bWVu
dC1sb2FkZWQgc2lnbmFsIHRvIFdlYktpdFdlYlBhZ2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmlsZS5saXN0
LmFtCmluZGV4IDkxN2NlNDIuLjdhODhjZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0dO
VW1ha2VmaWxlLmxpc3QuYW0KKysrIGIvU291cmNlL1dlYktpdDIvR05VbWFrZWZpbGUubGlzdC5h
bQpAQCAtMTA3LDYgKzEwNyw3IEBAIHdlYmtpdDJndGtfaF9hcGkgKz0gXAogCSQoV2ViS2l0Mikv
VUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0RmlsZUNob29zZXJSZXF1ZXN0LmggXAogCSQoV2ViS2l0
MikvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0RmluZENvbnRyb2xsZXIuaCBcCiAJJChXZWJLaXQy
KS9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRGb3JtU3VibWlzc2lvblJlcXVlc3QuaCBcCisJJChX
ZWJLaXQyKS9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRGb3J3YXJkLmggXAogCSQoV2ViS2l0Mikv
VUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0R2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdC5oIFwK
IAkkKFdlYktpdDIpL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEhpdFRlc3RSZXN1bHQuaCBcCiAJ
JChXZWJLaXQyKS9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRKYXZhc2NyaXB0UmVzdWx0LmggXApA
QCAtMTMzLDcgKzEzNCw2IEBAIHdlYmtpdDJndGtfaF9hcGkgKz0gXAogCiB3ZWJraXQyX3dlYl9l
eHRlbnNpb25faF9hcGkgKz0gXAogCSQoV2ViS2l0MikvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9BUEkvZ3RrL1dlYktpdFdlYkV4dGVuc2lvbi5oIFwKLQkkKFdlYktpdDIpL1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9XZWJLaXRXZWJFeHRlbnNpb25EZWZpbmVzLmggXAogCSQo
V2ViS2l0MikvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL1dlYktpdFdlYlBhZ2Uu
aCBcCiAJJChXZWJLaXQyKS9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvd2Via2l0
LXdlYi1leHRlbnNpb24uaAogCkBAIC02ODYsNiArNjg2LDcgQEAgd2Via2l0Ml9zb3VyY2VzICs9
IFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRGb3JtU3VibWlzc2lv
blJlcXVlc3RQcml2YXRlLmggXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dl
YktpdEZvcm1DbGllbnQuY3BwIFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9X
ZWJLaXRGb3JtQ2xpZW50LmggXAorCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dl
YktpdEZvcndhcmQuaCBcCiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0
RnVsbHNjcmVlbkNsaWVudC5jcHAgXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3Rr
L1dlYktpdEZ1bGxzY3JlZW5DbGllbnQuaCBcCiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9ndGsvV2ViS2l0R2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdC5jcHAgXApAQCAtMTAzNiw3
ICsxMDM3LDYgQEAgd2Via2l0Ml9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvV2ViS2l0V2ViRXh0ZW5zaW9uLmNwcCBcCiAJU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL1dlYktpdFdlYkV4
dGVuc2lvbi5oIFwKIAlTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SS9ndGsvV2ViS2l0V2ViRXh0ZW5zaW9uUHJpdmF0ZS5oIFwKLQlTb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvV2ViS2l0V2ViRXh0ZW5zaW9uRGVmaW5lcy5o
IFwKIAlTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvV2Vi
S2l0V2ViUGFnZS5jcHAgXAogCVNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL2d0ay9XZWJLaXRXZWJQYWdlLmggXAogCVNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9XZWJLaXRXZWJQYWdlUHJpdmF0ZS5oIFwKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdENvbnRleHRNZW51Lmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRDb250ZXh0TWVudS5oCmlu
ZGV4IDlkZjNmNGMuLjVkNzkzMjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvZ3RrL1dlYktpdENvbnRleHRNZW51LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9ndGsvV2ViS2l0Q29udGV4dE1lbnUuaApAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1
ZGUgPGdsaWItb2JqZWN0Lmg+CiAjaW5jbHVkZSA8d2Via2l0Mi9XZWJLaXRDb250ZXh0TWVudUl0
ZW0uaD4KICNpbmNsdWRlIDx3ZWJraXQyL1dlYktpdERlZmluZXMuaD4KKyNpbmNsdWRlIDx3ZWJr
aXQyL1dlYktpdEZvcndhcmQuaD4KIAogR19CRUdJTl9ERUNMUwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRDb250ZXh0TWVudUl0ZW0uaCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdENvbnRleHRNZW51SXRlbS5oCmlu
ZGV4IDUyZDkxMjguLjMyNmUwNGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvZ3RrL1dlYktpdENvbnRleHRNZW51SXRlbS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvZ3RrL1dlYktpdENvbnRleHRNZW51SXRlbS5oCkBAIC0yOCw2ICsyOCw3IEBA
CiAjaW5jbHVkZSA8d2Via2l0Mi9XZWJLaXREZWZpbmVzLmg+CiAjaW5jbHVkZSA8d2Via2l0Mi9X
ZWJLaXRDb250ZXh0TWVudS5oPgogI2luY2x1ZGUgPHdlYmtpdDIvV2ViS2l0Q29udGV4dE1lbnVB
Y3Rpb25zLmg+CisjaW5jbHVkZSA8d2Via2l0Mi9XZWJLaXRGb3J3YXJkLmg+CiAKIEdfQkVHSU5f
REVDTFMKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2Vi
S2l0RGVmaW5lcy5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0RGVm
aW5lcy5oCmluZGV4IDczM2JmODguLjhiNjM3NjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdERlZmluZXMuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL2d0ay9XZWJLaXREZWZpbmVzLmgKQEAgLTIzLDcgKzIzLDcgQEAKICAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCi0jaWYgIWRlZmluZWQoX19XRUJL
SVQyX0hfSU5TSURFX18pICYmICFkZWZpbmVkKFdFQktJVDJfQ09NUElMQVRJT04pCisjaWYgIWRl
ZmluZWQoX19XRUJLSVQyX0hfSU5TSURFX18pICYmICFkZWZpbmVkKFdFQktJVDJfQ09NUElMQVRJ
T04pICYmICFkZWZpbmVkKF9fV0VCS0lUX1dFQl9FWFRFTlNJT05fSF9JTlNJREVfXykKICNlcnJv
ciAiT25seSA8d2Via2l0Mi93ZWJraXQyLmg+IGNhbiBiZSBpbmNsdWRlZCBkaXJlY3RseS4iCiAj
ZW5kaWYKIApAQCAtMzIsMTIgKzMyLDYgQEAKIAogI2luY2x1ZGUgPGdsaWIuaD4KIAotdHlwZWRl
ZiBzdHJ1Y3QgX1dlYktpdFByaW50T3BlcmF0aW9uICBXZWJLaXRQcmludE9wZXJhdGlvbjsKLXR5
cGVkZWYgc3RydWN0IF9XZWJLaXRGaW5kQ29udHJvbGxlciAgV2ViS2l0RmluZENvbnRyb2xsZXI7
Ci10eXBlZGVmIHN0cnVjdCBfV2ViS2l0V2ViVmlldyAgICAgICAgIFdlYktpdFdlYlZpZXc7Ci10
eXBlZGVmIHN0cnVjdCBfV2ViS2l0Q29udGV4dE1lbnUgICAgIFdlYktpdENvbnRleHRNZW51Owot
dHlwZWRlZiBzdHJ1Y3QgX1dlYktpdENvbnRleHRNZW51SXRlbSBXZWJLaXRDb250ZXh0TWVudUl0
ZW07Ci0KICNpZmRlZiBHX09TX1dJTjMyCiAjICAgIGlmZGVmIEJVSUxESU5HX1dFQktJVAogIyAg
ICAgICAgZGVmaW5lIFdFQktJVF9BUEkgX19kZWNsc3BlYyhkbGxleHBvcnQpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXREb3dubG9hZC5oIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0RG93bmxvYWQuaAppbmRleCA0NDhi
ZWJmLi42MGIwNzA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0
ay9XZWJLaXREb3dubG9hZC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3Rr
L1dlYktpdERvd25sb2FkLmgKQEAgLTI2LDYgKzI2LDcgQEAKIAogI2luY2x1ZGUgPGdsaWItb2Jq
ZWN0Lmg+CiAjaW5jbHVkZSA8d2Via2l0Mi9XZWJLaXREZWZpbmVzLmg+CisjaW5jbHVkZSA8d2Vi
a2l0Mi9XZWJLaXRGb3J3YXJkLmg+CiAjaW5jbHVkZSA8d2Via2l0Mi9XZWJLaXRVUklSZXF1ZXN0
Lmg+CiAjaW5jbHVkZSA8d2Via2l0Mi9XZWJLaXRVUklSZXNwb25zZS5oPgogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRGaW5kQ29udHJvbGxlci5o
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0RmluZENvbnRyb2xsZXIu
aAppbmRleCAzYTQ3Zjk5Li43Y2FiZjc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL2d0ay9XZWJLaXRGaW5kQ29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEZpbmRDb250cm9sbGVyLmgKQEAgLTI2LDYgKzI2LDcg
QEAKIAogI2luY2x1ZGUgPGdsaWItb2JqZWN0Lmg+CiAjaW5jbHVkZSA8d2Via2l0Mi9XZWJLaXRE
ZWZpbmVzLmg+CisjaW5jbHVkZSA8d2Via2l0Mi9XZWJLaXRGb3J3YXJkLmg+CiAKIEdfQkVHSU5f
REVDTFMKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2Vi
S2l0Rm9yd2FyZC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0Rm9y
d2FyZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE5ODk4ZGUKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRGb3J3
YXJkLmgKQEAgLTAsMCArMSwzOSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBJZ2FsaWEg
Uy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaWYgIWRlZmluZWQoX19XRUJLSVQyX0hfSU5TSURFX18pICYmICFk
ZWZpbmVkKFdFQktJVDJfQ09NUElMQVRJT04pCisjZXJyb3IgIk9ubHkgPHdlYmtpdDIvd2Via2l0
Mi5oPiBjYW4gYmUgaW5jbHVkZWQgZGlyZWN0bHkuIgorI2VuZGlmCisKKyNpZm5kZWYgV2ViS2l0
Rm9yd2FyZF9oCisjZGVmaW5lIFdlYktpdEZvcndhcmRfaAorCit0eXBlZGVmIHN0cnVjdCBfV2Vi
S2l0UHJpbnRPcGVyYXRpb24gIFdlYktpdFByaW50T3BlcmF0aW9uOwordHlwZWRlZiBzdHJ1Y3Qg
X1dlYktpdEZpbmRDb250cm9sbGVyICBXZWJLaXRGaW5kQ29udHJvbGxlcjsKK3R5cGVkZWYgc3Ry
dWN0IF9XZWJLaXRXZWJWaWV3ICAgICAgICAgV2ViS2l0V2ViVmlldzsKK3R5cGVkZWYgc3RydWN0
IF9XZWJLaXRDb250ZXh0TWVudSAgICAgV2ViS2l0Q29udGV4dE1lbnU7Cit0eXBlZGVmIHN0cnVj
dCBfV2ViS2l0Q29udGV4dE1lbnVJdGVtIFdlYktpdENvbnRleHRNZW51SXRlbTsKKworI2VuZGlm
IC8vIFdlYktpdEZvcndhcmRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9ndGsvV2ViS2l0UHJpbnRPcGVyYXRpb24uaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvZ3RrL1dlYktpdFByaW50T3BlcmF0aW9uLmgKaW5kZXggYTAyZjRlOC4uMDBlMWM3ZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0UHJpbnRP
cGVyYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRQ
cmludE9wZXJhdGlvbi5oCkBAIC0yNiw2ICsyNiw3IEBACiAKICNpbmNsdWRlIDxnbGliLW9iamVj
dC5oPgogI2luY2x1ZGUgPHdlYmtpdDIvV2ViS2l0RGVmaW5lcy5oPgorI2luY2x1ZGUgPHdlYmtp
dDIvV2ViS2l0Rm9yd2FyZC5oPgogI2luY2x1ZGUgPHdlYmtpdDIvV2ViS2l0V2ViVmlldy5oPgog
CiBHX0JFR0lOX0RFQ0xTCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2d0ay9XZWJLaXRVUklSZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Z3RrL1dlYktpdFVSSVJlcXVlc3QuY3BwCmluZGV4IDIxOWYzNGYuLjhkZDQ3ZTkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVSSVJlcXVlc3QuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVSSVJlcXVlc3Qu
Y3BwCkBAIC03MCw3ICs3MCw3IEBAIHN0YXRpYyB2b2lkIHdlYmtpdFVSSVJlcXVlc3RTZXRQcm9w
ZXJ0eShHT2JqZWN0KiBvYmplY3QsIGd1aW50IHByb3BJZCwgY29uc3QgR1ZhCiAKICAgICBzd2l0
Y2ggKHByb3BJZCkgewogICAgIGNhc2UgUFJPUF9VUkk6Ci0gICAgICAgIHJlcXVlc3QtPnByaXYt
PnJlc291cmNlUmVxdWVzdC5zZXRVUkwoS1VSTChLVVJMKCksIGdfdmFsdWVfZ2V0X3N0cmluZyh2
YWx1ZSkpKTsKKyAgICAgICAgd2Via2l0X3VyaV9yZXF1ZXN0X3NldF91cmkocmVxdWVzdCwgZ192
YWx1ZV9nZXRfc3RyaW5nKHZhbHVlKSk7CiAgICAgICAgIGJyZWFrOwogICAgIGRlZmF1bHQ6CiAg
ICAgICAgIEdfT0JKRUNUX1dBUk5fSU5WQUxJRF9QUk9QRVJUWV9JRChvYmplY3QsIHByb3BJZCwg
cGFyYW1TcGVjKTsKQEAgLTkyLDggKzkyLDggQEAgc3RhdGljIHZvaWQgd2Via2l0X3VyaV9yZXF1
ZXN0X2NsYXNzX2luaXQoV2ViS2l0VVJJUmVxdWVzdENsYXNzKiByZXF1ZXN0Q2xhc3MpCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnX3BhcmFtX3NwZWNfc3RyaW5nKCJ1cmki
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBfKCJVUkkiKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgXygiVGhlIFVSSSB0byB3aGljaCB0aGUgcmVxdWVzdCB3aWxsIGJlIG1hZGUu
IiksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHN0YXRpY19jYXN0PEdQYXJhbUZsYWdzPihXRUJLSVRfUEFSQU1fUkVBRFdSSVRFIHwg
R19QQVJBTV9DT05TVFJVQ1RfT05MWSkpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgImFib3V0OmJsYW5rIiwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8R1Bh
cmFtRmxhZ3M+KFdFQktJVF9QQVJBTV9SRUFEV1JJVEUgfCBHX1BBUkFNX0NPTlNUUlVDVCkpKTsK
IH0KIAogLyoqCkBAIC0xMjUsNiArMTI1LDI2IEBAIGNvbnN0IGdjaGFyKiB3ZWJraXRfdXJpX3Jl
cXVlc3RfZ2V0X3VyaShXZWJLaXRVUklSZXF1ZXN0KiByZXF1ZXN0KQogICAgIHJldHVybiByZXF1
ZXN0LT5wcml2LT51cmkuZGF0YSgpOwogfQogCisvKioKKyAqIHdlYmtpdF91cmlfcmVxdWVzdF9z
ZXRfdXJpOgorICogQHJlcXVlc3Q6IGEgI1dlYktpdFVSSVJlcXVlc3QKKyAqIEB1cmk6IGFuIFVS
SQorICoKKyAqIFNldCB0aGUgVVJJIG9mIEByZXF1ZXN0CisgKi8KK3ZvaWQgd2Via2l0X3VyaV9y
ZXF1ZXN0X3NldF91cmkoV2ViS2l0VVJJUmVxdWVzdCogcmVxdWVzdCwgY29uc3QgY2hhciogdXJp
KQoreworICAgIGdfcmV0dXJuX2lmX2ZhaWwoV0VCS0lUX0lTX1VSSV9SRVFVRVNUKHJlcXVlc3Qp
KTsKKyAgICBnX3JldHVybl9pZl9mYWlsKHVyaSk7CisKKyAgICBLVVJMIHVybChLVVJMKCksIHVy
aSk7CisgICAgaWYgKHVybCA9PSByZXF1ZXN0LT5wcml2LT5yZXNvdXJjZVJlcXVlc3QudXJsKCkp
CisgICAgICAgIHJldHVybjsKKworICAgIHJlcXVlc3QtPnByaXYtPnJlc291cmNlUmVxdWVzdC5z
ZXRVUkwodXJsKTsKKyAgICBnX29iamVjdF9ub3RpZnkoR19PQkpFQ1QocmVxdWVzdCksICJ1cmki
KTsKK30KKwogV2ViS2l0VVJJUmVxdWVzdCogd2Via2l0VVJJUmVxdWVzdENyZWF0ZUZvclJlc291
cmNlUmVxdWVzdChjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlc291cmNlUmVxdWVz
dCkKIHsKICAgICBXZWJLaXRVUklSZXF1ZXN0KiB1cmlSZXF1ZXN0ID0gV0VCS0lUX1VSSV9SRVFV
RVNUKGdfb2JqZWN0X25ldyhXRUJLSVRfVFlQRV9VUklfUkVRVUVTVCwgTlVMTCkpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VVJJUmVxdWVzdC5o
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VVJJUmVxdWVzdC5oCmlu
ZGV4IDUyMzYwNjkuLjg4MTIxNTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvZ3RrL1dlYktpdFVSSVJlcXVlc3QuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL2d0ay9XZWJLaXRVUklSZXF1ZXN0LmgKQEAgLTE3LDcgKzE3LDcgQEAKICAqIEJvc3Rv
biwgTUEgMDIxMTAtMTMwMSwgVVNBLgogICovCiAKLSNpZiAhZGVmaW5lZChfX1dFQktJVDJfSF9J
TlNJREVfXykgJiYgIWRlZmluZWQoV0VCS0lUMl9DT01QSUxBVElPTikKKyNpZiAhZGVmaW5lZChf
X1dFQktJVDJfSF9JTlNJREVfXykgJiYgIWRlZmluZWQoV0VCS0lUMl9DT01QSUxBVElPTikgJiYg
IWRlZmluZWQoX19XRUJLSVRfV0VCX0VYVEVOU0lPTl9IX0lOU0lERV9fKQogI2Vycm9yICJPbmx5
IDx3ZWJraXQyL3dlYmtpdDIuaD4gY2FuIGJlIGluY2x1ZGVkIGRpcmVjdGx5LiIKICNlbmRpZgog
CkBAIC02MSw2ICs2MSwxMCBAQCB3ZWJraXRfdXJpX3JlcXVlc3RfbmV3ICAgICAgKGNvbnN0IGdj
aGFyICAgICAgKnVyaSk7CiBXRUJLSVRfQVBJIGNvbnN0IGdjaGFyICoKIHdlYmtpdF91cmlfcmVx
dWVzdF9nZXRfdXJpICAoV2ViS2l0VVJJUmVxdWVzdCAqcmVxdWVzdCk7CiAKK1dFQktJVF9BUEkg
dm9pZAord2Via2l0X3VyaV9yZXF1ZXN0X3NldF91cmkgIChXZWJLaXRVUklSZXF1ZXN0ICpyZXF1
ZXN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBnY2hhciAgICAgICp1cmkp
OworCiBHX0VORF9ERUNMUwogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVSSVJlc3BvbnNlLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL2d0ay9XZWJLaXRVUklSZXNwb25zZS5oCmluZGV4IGY5MmJhNGYuLjkyODhhOWYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVSSVJl
c3BvbnNlLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VVJJ
UmVzcG9uc2UuaApAQCAtMTcsNyArMTcsNyBAQAogICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBV
U0EuCiAgKi8KIAotI2lmICFkZWZpbmVkKF9fV0VCS0lUMl9IX0lOU0lERV9fKSAmJiAhZGVmaW5l
ZChXRUJLSVQyX0NPTVBJTEFUSU9OKQorI2lmICFkZWZpbmVkKF9fV0VCS0lUMl9IX0lOU0lERV9f
KSAmJiAhZGVmaW5lZChXRUJLSVQyX0NPTVBJTEFUSU9OKSAmJiAhZGVmaW5lZChfX1dFQktJVF9X
RUJfRVhURU5TSU9OX0hfSU5TSURFX18pCiAjZXJyb3IgIk9ubHkgPHdlYmtpdDIvd2Via2l0Mi5o
PiBjYW4gYmUgaW5jbHVkZWQgZGlyZWN0bHkuIgogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVSSVNjaGVtZVJlcXVlc3QuaCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVSSVNjaGVtZVJlcXVlc3QuaApp
bmRleCA5ZWFkNTA3Li4zMTA3NDQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL2d0ay9XZWJLaXRVUklTY2hlbWVSZXF1ZXN0LmgKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VVJJU2NoZW1lUmVxdWVzdC5oCkBAIC0yNiw2ICsyNiw3
IEBACiAKICNpbmNsdWRlIDxnbGliLW9iamVjdC5oPgogI2luY2x1ZGUgPHdlYmtpdDIvV2ViS2l0
RGVmaW5lcy5oPgorI2luY2x1ZGUgPHdlYmtpdDIvV2ViS2l0Rm9yd2FyZC5oPgogCiBHX0JFR0lO
X0RFQ0xTCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dl
YktpdFdlYlZpZXcuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdl
YlZpZXcuaAppbmRleCBhYWU4NDliLi44NWZhZDExMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlldy5oCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXcuaApAQCAtMzQsNiArMzQsNyBAQAogI2lu
Y2x1ZGUgPHdlYmtpdDIvV2ViS2l0RmlsZUNob29zZXJSZXF1ZXN0Lmg+CiAjaW5jbHVkZSA8d2Vi
a2l0Mi9XZWJLaXRGaW5kQ29udHJvbGxlci5oPgogI2luY2x1ZGUgPHdlYmtpdDIvV2ViS2l0Rm9y
bVN1Ym1pc3Npb25SZXF1ZXN0Lmg+CisjaW5jbHVkZSA8d2Via2l0Mi9XZWJLaXRGb3J3YXJkLmg+
CiAjaW5jbHVkZSA8d2Via2l0Mi9XZWJLaXRIaXRUZXN0UmVzdWx0Lmg+CiAjaW5jbHVkZSA8d2Vi
a2l0Mi9XZWJLaXRKYXZhc2NyaXB0UmVzdWx0Lmg+CiAjaW5jbHVkZSA8d2Via2l0Mi9XZWJLaXRQ
ZXJtaXNzaW9uUmVxdWVzdC5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9ndGsvZG9jcy93ZWJraXQyZ3RrLXNlY3Rpb25zLnR4dCBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay1zZWN0aW9ucy50eHQKaW5kZXggZjZlOGE4
NC4uZWIyYmIxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsv
ZG9jcy93ZWJraXQyZ3RrLXNlY3Rpb25zLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJndGstc2VjdGlvbnMudHh0CkBAIC0zMzAsNiArMzMwLDcg
QEAgd2Via2l0X3NldHRpbmdzX2dldF90eXBlCiBXZWJLaXRVUklSZXF1ZXN0CiB3ZWJraXRfdXJp
X3JlcXVlc3RfbmV3CiB3ZWJraXRfdXJpX3JlcXVlc3RfZ2V0X3VyaQord2Via2l0X3VyaV9yZXF1
ZXN0X3NldF91cmkKIAogPFNVQlNFQ1RJT04gU3RhbmRhcmQ+CiBXZWJLaXRVUklSZXF1ZXN0Q2xh
c3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL3Rlc3RzL1Rl
c3RSZXNvdXJjZXMuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvdGVzdHMv
VGVzdFJlc291cmNlcy5jcHAKaW5kZXggNmExMjgzMi4uYTI0YjZmZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvdGVzdHMvVGVzdFJlc291cmNlcy5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvdGVzdHMvVGVzdFJlc291cmNlcy5j
cHAKQEAgLTU1OCw2ICs1NTgsNzUgQEAgc3RhdGljIHZvaWQgdGVzdFdlYlZpZXdSZXNvdXJjZXNI
aXN0b3J5Q2FjaGUoU2luZ2xlUmVzb3VyY2VMb2FkVGVzdCogdGVzdCwgZ2NvbnMKICAgICBnX2Fz
c2VydF9jbXBzdHIod2Via2l0X3dlYl9yZXNvdXJjZV9nZXRfdXJpKHJlc291cmNlKSwgPT0sIHNp
bXBsZVN0eWxlQ1NTVVJJLmRhdGEoKSk7CiB9CiAKK2NsYXNzIFNlbmRSZXF1ZXN0VGVzdDogcHVi
bGljIFNpbmdsZVJlc291cmNlTG9hZFRlc3QgeworcHVibGljOgorICAgIE1BS0VfR0xJQl9URVNU
X0ZJWFRVUkUoU2VuZFJlcXVlc3RUZXN0KTsKKworICAgIHZvaWQgcmVzb3VyY2VTZW50UmVxdWVz
dChXZWJLaXRXZWJSZXNvdXJjZSogcmVzb3VyY2UsIFdlYktpdFVSSVJlcXVlc3QqIHJlcXVlc3Qs
IFdlYktpdFVSSVJlc3BvbnNlKiByZWRpcmVjdFJlc3BvbnNlKQorICAgIHsKKyAgICAgICAgaWYg
KHJlc291cmNlICE9IG1fcmVzb3VyY2UpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAg
Z19hc3NlcnRfY21wc3RyKHdlYmtpdF91cmlfcmVxdWVzdF9nZXRfdXJpKHJlcXVlc3QpLCA9PSwg
bV9leHBlY3RlZE5ld1Jlc291cmNlVVJJLmRhdGEoKSk7CisgICAgICAgIGdfYXNzZXJ0X2NtcHN0
cih3ZWJraXRfdXJpX3JlcXVlc3RfZ2V0X3VyaShyZXF1ZXN0KSwgPT0sIHdlYmtpdF93ZWJfcmVz
b3VyY2VfZ2V0X3VyaShyZXNvdXJjZSkpOworCisgICAgICAgIFNpbmdsZVJlc291cmNlTG9hZFRl
c3Q6OnJlc291cmNlU2VudFJlcXVlc3QocmVzb3VyY2UsIHJlcXVlc3QsIHJlZGlyZWN0UmVzcG9u
c2UpOworICAgIH0KKworICAgIHZvaWQgcmVzb3VyY2VGYWlsZWQoV2ViS2l0V2ViUmVzb3VyY2Uq
IHJlc291cmNlLCBHRXJyb3IqIGVycm9yKQorICAgIHsKKyAgICAgICAgaWYgKHJlc291cmNlICE9
IG1fcmVzb3VyY2UpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgZ19hc3NlcnRfY21w
c3RyKHdlYmtpdF93ZWJfcmVzb3VyY2VfZ2V0X3VyaShyZXNvdXJjZSksID09LCBtX2V4cGVjdGVk
Q2FuY2VsbGVkUmVzb3VyY2VVUkkuZGF0YSgpKTsKKyAgICAgICAgZ19hc3NlcnRfZXJyb3IoZXJy
b3IsIFdFQktJVF9ORVRXT1JLX0VSUk9SLCBXRUJLSVRfTkVUV09SS19FUlJPUl9DQU5DRUxMRUQp
OworCisgICAgICAgIFNpbmdsZVJlc291cmNlTG9hZFRlc3Q6OnJlc291cmNlRmFpbGVkKHJlc291
cmNlLCBlcnJvcik7CisgICAgfQorCisgICAgdm9pZCBzZXRFeHBlY3RlZE5ld1Jlc291cmNlVVJJ
KGNvbnN0IENTdHJpbmcmIHVyaSkKKyAgICB7CisgICAgICAgIG1fZXhwZWN0ZWROZXdSZXNvdXJj
ZVVSSSA9IHVyaTsKKyAgICB9CisKKyAgICB2b2lkIHNldEV4cGVjdGVkQ2FuY2VsbGVkUmVzb3Vy
Y2VVUkkoY29uc3QgQ1N0cmluZyYgdXJpKQorICAgIHsKKyAgICAgICAgbV9leHBlY3RlZENhbmNl
bGxlZFJlc291cmNlVVJJID0gdXJpOworICAgIH0KKworICAgIENTdHJpbmcgbV9leHBlY3RlZE5l
d1Jlc291cmNlVVJJOworICAgIENTdHJpbmcgbV9leHBlY3RlZENhbmNlbGxlZFJlc291cmNlVVJJ
OworfTsKKworc3RhdGljIHZvaWQgdGVzdFdlYlJlc291cmNlU2VuZFJlcXVlc3QoU2VuZFJlcXVl
c3RUZXN0KiB0ZXN0LCBnY29uc3Rwb2ludGVyKQoreworICAgIHRlc3QtPnNldEV4cGVjdGVkTmV3
UmVzb3VyY2VVUkkoa1NlcnZlci0+Z2V0VVJJRm9yUGF0aCgiL2phdmFzY3JpcHQuanMiKSk7Cisg
ICAgdGVzdC0+bG9hZFVSSShrU2VydmVyLT5nZXRVUklGb3JQYXRoKCJyZWxhdGl2ZS1qYXZhc2Ny
aXB0Lmh0bWwiKS5kYXRhKCkpOworICAgIHRlc3QtPndhaXRVbnRpbFJlc291cmNlTG9hZEZpbmlz
aGVkKCk7CisgICAgZ19hc3NlcnQodGVzdC0+bV9yZXNvdXJjZSk7CisKKyAgICBWZWN0b3I8U2lu
Z2xlUmVzb3VyY2VMb2FkVGVzdDo6TG9hZEV2ZW50cz4mIGV2ZW50cyA9IHRlc3QtPm1fbG9hZEV2
ZW50czsKKyAgICBnX2Fzc2VydF9jbXBpbnQoZXZlbnRzLnNpemUoKSwgPT0sIDUpOworICAgIGdf
YXNzZXJ0X2NtcGludChldmVudHNbMF0sID09LCBTaW5nbGVSZXNvdXJjZUxvYWRUZXN0OjpTdGFy
dGVkKTsKKyAgICBnX2Fzc2VydF9jbXBpbnQoZXZlbnRzWzFdLCA9PSwgU2luZ2xlUmVzb3VyY2VM
b2FkVGVzdDo6U2VudFJlcXVlc3QpOworICAgIGdfYXNzZXJ0X2NtcGludChldmVudHNbMl0sID09
LCBTaW5nbGVSZXNvdXJjZUxvYWRUZXN0OjpSZWNlaXZlZFJlc3BvbnNlKTsKKyAgICBnX2Fzc2Vy
dF9jbXBpbnQoZXZlbnRzWzNdLCA9PSwgU2luZ2xlUmVzb3VyY2VMb2FkVGVzdDo6UmVjZWl2ZWRE
YXRhKTsKKyAgICBnX2Fzc2VydF9jbXBpbnQoZXZlbnRzWzRdLCA9PSwgU2luZ2xlUmVzb3VyY2VM
b2FkVGVzdDo6RmluaXNoZWQpOworICAgIGV2ZW50cy5jbGVhcigpOworCisgICAgLy8gQ2FuY2Vs
IHJlcXVlc3QuCisgICAgdGVzdC0+c2V0RXhwZWN0ZWRDYW5jZWxsZWRSZXNvdXJjZVVSSShrU2Vy
dmVyLT5nZXRVUklGb3JQYXRoKCIvY2FuY2VsLXRoaXMuanMiKSk7CisgICAgdGVzdC0+bG9hZFVS
SShrU2VydmVyLT5nZXRVUklGb3JQYXRoKCIvcmVzb3VyY2UtdG8tY2FuY2VsLmh0bWwiKS5kYXRh
KCkpOworICAgIHRlc3QtPndhaXRVbnRpbFJlc291cmNlTG9hZEZpbmlzaGVkKCk7CisgICAgZ19h
c3NlcnQodGVzdC0+bV9yZXNvdXJjZSk7CisKKyAgICBnX2Fzc2VydF9jbXBpbnQoZXZlbnRzLnNp
emUoKSwgPT0sIDMpOworICAgIGdfYXNzZXJ0X2NtcGludChldmVudHNbMF0sID09LCBTaW5nbGVS
ZXNvdXJjZUxvYWRUZXN0OjpTdGFydGVkKTsKKyAgICBnX2Fzc2VydF9jbXBpbnQoZXZlbnRzWzFd
LCA9PSwgU2luZ2xlUmVzb3VyY2VMb2FkVGVzdDo6RmFpbGVkKTsKKyAgICBnX2Fzc2VydF9jbXBp
bnQoZXZlbnRzWzJdLCA9PSwgU2luZ2xlUmVzb3VyY2VMb2FkVGVzdDo6RmluaXNoZWQpOworICAg
IGV2ZW50cy5jbGVhcigpOworfQorCiBzdGF0aWMgdm9pZCBhZGRDYWNoZUhUVFBIZWFkZXJzVG9S
ZXNwb25zZShTb3VwTWVzc2FnZSogbWVzc2FnZSkKIHsKICAgICAvLyBUaGUgYWN0dWFsIGRhdGUg
ZG9lc24ndCByZWFsbHkgbWF0dGVyLgpAQCAtNjExLDYgKzY4MCwxMiBAQCBzdGF0aWMgdm9pZCBz
ZXJ2ZXJDYWxsYmFjayhTb3VwU2VydmVyKiBzZXJ2ZXIsIFNvdXBNZXNzYWdlKiBtZXNzYWdlLCBj
b25zdCBjaGFyKgogICAgICAgICBzb3VwX21lc3NhZ2VfYm9keV9hcHBlbmQobWVzc2FnZS0+cmVz
cG9uc2VfYm9keSwgU09VUF9NRU1PUllfU1RBVElDLCBrSmF2YXNjcmlwdCwgc3RybGVuKGtKYXZh
c2NyaXB0KSk7CiAgICAgICAgIHNvdXBfbWVzc2FnZV9oZWFkZXJzX2FwcGVuZChtZXNzYWdlLT5y
ZXNwb25zZV9oZWFkZXJzLCAiQ29udGVudC1UeXBlIiwgInRleHQvamF2YXNjcmlwdCIpOwogICAg
ICAgICBzb3VwX21lc3NhZ2VfaGVhZGVyc19hcHBlbmQobWVzc2FnZS0+cmVzcG9uc2VfaGVhZGVy
cywgIkNvbnRlbnQtRGlzcG9zaXRpb24iLCAiZmlsZW5hbWU9SmF2YVNjcmlwdC5qcyIpOworICAg
IH0gZWxzZSBpZiAoZ19zdHJfZXF1YWwocGF0aCwgIi9yZWxhdGl2ZS1qYXZhc2NyaXB0Lmh0bWwi
KSkgeworICAgICAgICBzdGF0aWMgY29uc3QgY2hhciogamF2YXNjcmlwdFJlbGF0aXZlSFRNTCA9
ICI8aHRtbD48aGVhZD48c2NyaXB0IGxhbmd1YWdlPSdqYXZhc2NyaXB0JyBzcmM9J3JlbW92ZS10
aGlzL2phdmFzY3JpcHQuanMnPjwvc2NyaXB0PjwvaGVhZD48Ym9keT48L2JvZHk+PC9odG1sPiI7
CisgICAgICAgIHNvdXBfbWVzc2FnZV9ib2R5X2FwcGVuZChtZXNzYWdlLT5yZXNwb25zZV9ib2R5
LCBTT1VQX01FTU9SWV9TVEFUSUMsIGphdmFzY3JpcHRSZWxhdGl2ZUhUTUwsIHN0cmxlbihqYXZh
c2NyaXB0UmVsYXRpdmVIVE1MKSk7CisgICAgfSBlbHNlIGlmIChnX3N0cl9lcXVhbChwYXRoLCAi
L3Jlc291cmNlLXRvLWNhbmNlbC5odG1sIikpIHsKKyAgICAgICAgc3RhdGljIGNvbnN0IGNoYXIq
IHJlc291cmNlVG9DYW5jZWxIVE1MID0gIjxodG1sPjxoZWFkPjxzY3JpcHQgbGFuZ3VhZ2U9J2ph
dmFzY3JpcHQnIHNyYz0nY2FuY2VsLXRoaXMuanMnPjwvc2NyaXB0PjwvaGVhZD48Ym9keT48L2Jv
ZHk+PC9odG1sPiI7CisgICAgICAgIHNvdXBfbWVzc2FnZV9ib2R5X2FwcGVuZChtZXNzYWdlLT5y
ZXNwb25zZV9ib2R5LCBTT1VQX01FTU9SWV9TVEFUSUMsIHJlc291cmNlVG9DYW5jZWxIVE1MLCBz
dHJsZW4ocmVzb3VyY2VUb0NhbmNlbEhUTUwpKTsKICAgICB9IGVsc2UgaWYgKGdfc3RyX2VxdWFs
KHBhdGgsICIvYmxhbmsuaWNvIikpIHsKICAgICAgICAgR093blB0cjxjaGFyPiBmaWxlUGF0aChn
X2J1aWxkX2ZpbGVuYW1lKFRlc3Q6OmdldFdlYktpdDFUZXN0UmVzb3VjZXNEaXIoKS5kYXRhKCks
IHBhdGgsIE5VTEwpKTsKICAgICAgICAgY2hhciogY29udGVudHM7CkBAIC02NDEsNiArNzE2LDgg
QEAgdm9pZCBiZWZvcmVBbGwoKQogICAgIGtTZXJ2ZXIgPSBuZXcgV2ViS2l0VGVzdFNlcnZlcigp
OwogICAgIGtTZXJ2ZXItPnJ1bihzZXJ2ZXJDYWxsYmFjayk7CiAKKyAgICB3ZWJraXRfd2ViX2Nv
bnRleHRfc2V0X3dlYl9leHRlbnNpb25zX2RpcmVjdG9yeSh3ZWJraXRfd2ViX2NvbnRleHRfZ2V0
X2RlZmF1bHQoKSwgV0VCS0lUX1RFU1RfV0VCX0VYVEVOU0lPTlNfRElSKTsKKwogICAgIFJlc291
cmNlc1Rlc3Q6OmFkZCgiV2ViS2l0V2ViVmlldyIsICJyZXNvdXJjZXMiLCB0ZXN0V2ViVmlld1Jl
c291cmNlcyk7CiAgICAgU2luZ2xlUmVzb3VyY2VMb2FkVGVzdDo6YWRkKCJXZWJLaXRXZWJSZXNv
dXJjZSIsICJsb2FkaW5nIiwgdGVzdFdlYlJlc291cmNlTG9hZGluZyk7CiAgICAgU2luZ2xlUmVz
b3VyY2VMb2FkVGVzdDo6YWRkKCJXZWJLaXRXZWJSZXNvdXJjZSIsICJyZXNwb25zZSIsIHRlc3RX
ZWJSZXNvdXJjZVJlc3BvbnNlKTsKQEAgLTY0OSw2ICs3MjYsNyBAQCB2b2lkIGJlZm9yZUFsbCgp
CiAgICAgUmVzb3VyY2VVUklUcmFja2luZ1Rlc3Q6OmFkZCgiV2ViS2l0V2ViUmVzb3VyY2UiLCAi
YWN0aXZlLXVyaSIsIHRlc3RXZWJSZXNvdXJjZUFjdGl2ZVVSSSk7CiAgICAgUmVzb3VyY2VzVGVz
dDo6YWRkKCJXZWJLaXRXZWJSZXNvdXJjZSIsICJnZXQtZGF0YSIsIHRlc3RXZWJSZXNvdXJjZUdl
dERhdGEpOwogICAgIFNpbmdsZVJlc291cmNlTG9hZFRlc3Q6OmFkZCgiV2ViS2l0V2ViVmlldyIs
ICJoaXN0b3J5LWNhY2hlIiwgdGVzdFdlYlZpZXdSZXNvdXJjZXNIaXN0b3J5Q2FjaGUpOworICAg
IFNlbmRSZXF1ZXN0VGVzdDo6YWRkKCJXZWJLaXRXZWJQYWdlIiwgInNlbmQtcmVxdWVzdCIsIHRl
c3RXZWJSZXNvdXJjZVNlbmRSZXF1ZXN0KTsKIH0KIAogdm9pZCBhZnRlckFsbCgpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay90ZXN0cy9XZWJFeHRlbnNpb25U
ZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL3Rlc3RzL1dlYkV4dGVu
c2lvblRlc3QuY3BwCmluZGV4IGFhNjYwNDIuLmRhMzM5ZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL3Rlc3RzL1dlYkV4dGVuc2lvblRlc3QuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL3Rlc3RzL1dlYkV4dGVuc2lvblRlc3Qu
Y3BwCkBAIC0yMCw2ICsyMCw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAKICNpbmNsdWRlIDxn
aW8vZ2lvLmg+CisjaW5jbHVkZSA8c3RyaW5nLmg+CiAjaW5jbHVkZSA8d2Via2l0Mi93ZWJraXQt
d2ViLWV4dGVuc2lvbi5oPgogI2luY2x1ZGUgPHd0Zi9nb2JqZWN0L0dPd25QdHIuaD4KIApAQCAt
NDYsOSArNDcsMjUgQEAgc3RhdGljIHZvaWQgZG9jdW1lbnRMb2FkZWRDYWxsYmFjayhXZWJLaXRX
ZWJQYWdlKiwgZ3BvaW50ZXIgdXNlckRhdGEpCiAgICAgZ19hc3NlcnQob2spOwogfQogCitzdGF0
aWMgZ2Jvb2xlYW4gc2VuZFJlcXVlc3RDYWxsYmFjayhXZWJLaXRXZWJQYWdlKiwgV2ViS2l0VVJJ
UmVxdWVzdCogcmVxdWVzdCwgV2ViS2l0VVJJUmVzcG9uc2UqLCBncG9pbnRlcikKK3sKKyAgICBj
b25zdCBjaGFyKiByZXF1ZXN0VVJJID0gd2Via2l0X3VyaV9yZXF1ZXN0X2dldF91cmkocmVxdWVz
dCk7CisgICAgZ19hc3NlcnQocmVxdWVzdFVSSSk7CisKKyAgICBpZiAoY29uc3QgY2hhciogc3Vm
Zml4ID0gZ19zdHJyc3RyKHJlcXVlc3RVUkksICIvcmVtb3ZlLXRoaXMvamF2YXNjcmlwdC5qcyIp
KSB7CisgICAgICAgIEdPd25QdHI8Y2hhcj4gcHJlZml4KGdfc3RybmR1cChyZXF1ZXN0VVJJLCBz
dHJsZW4ocmVxdWVzdFVSSSkgLSBzdHJsZW4oc3VmZml4KSkpOworICAgICAgICBHT3duUHRyPGNo
YXI+IG5ld1VSSShnX3N0cmR1cF9wcmludGYoIiVzL2phdmFzY3JpcHQuanMiLCBwcmVmaXguZ2V0
KCkpKTsKKyAgICAgICAgd2Via2l0X3VyaV9yZXF1ZXN0X3NldF91cmkocmVxdWVzdCwgbmV3VVJJ
LmdldCgpKTsKKyAgICB9IGVsc2UgaWYgKGdfc3RyX2hhc19zdWZmaXgocmVxdWVzdFVSSSwgIi9j
YW5jZWwtdGhpcy5qcyIpKQorICAgICAgICByZXR1cm4gVFJVRTsKKworICAgIHJldHVybiBGQUxT
RTsKK30KKwogc3RhdGljIHZvaWQgcGFnZUNyZWF0ZWRDYWxsYmFjayhXZWJLaXRXZWJFeHRlbnNp
b24qLCBXZWJLaXRXZWJQYWdlKiB3ZWJQYWdlLCBncG9pbnRlciB1c2VyRGF0YSkKIHsKICAgICBn
X3NpZ25hbF9jb25uZWN0KHdlYlBhZ2UsICJkb2N1bWVudC1sb2FkZWQiLCBHX0NBTExCQUNLKGRv
Y3VtZW50TG9hZGVkQ2FsbGJhY2spLCB1c2VyRGF0YSk7CisgICAgZ19zaWduYWxfY29ubmVjdCh3
ZWJQYWdlLCAic2VuZC1yZXF1ZXN0IiwgR19DQUxMQkFDSyhzZW5kUmVxdWVzdENhbGxiYWNrKSwg
MCk7CiB9CiAKIHN0YXRpYyB2b2lkIG1ldGhvZENhbGxDYWxsYmFjayhHREJ1c0Nvbm5lY3Rpb24q
IGNvbm5lY3Rpb24sIGNvbnN0IGNoYXIqIHNlbmRlciwgY29uc3QgY2hhciogb2JqZWN0UGF0aCwg
Y29uc3QgY2hhciogaW50ZXJmYWNlTmFtZSwgY29uc3QgY2hhciogbWV0aG9kTmFtZSwgR1Zhcmlh
bnQqIHBhcmFtZXRlcnMsIEdEQnVzTWV0aG9kSW52b2NhdGlvbiogaW52b2NhdGlvbiwgZ3BvaW50
ZXIgdXNlckRhdGEpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0
ay93ZWJraXQybWFyc2hhbC5saXN0IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsv
d2Via2l0Mm1hcnNoYWwubGlzdAppbmRleCBlZmQ5ZTA0Li40MjA3NjZlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay93ZWJraXQybWFyc2hhbC5saXN0CisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL3dlYmtpdDJtYXJzaGFsLmxpc3QKQEAg
LTMsNiArMyw3IEBAIEJPT0xFQU46RU5VTSxTVFJJTkcsUE9JTlRFUgogQk9PTEVBTjpPQkpFQ1QK
IEJPT0xFQU46T0JKRUNULEJPWEVELE9CSkVDVAogQk9PTEVBTjpPQkpFQ1QsRU5VTQorQk9PTEVB
TjpPQkpFQ1QsT0JKRUNUCiBCT09MRUFOOlNUUklORwogQk9PTEVBTjpWT0lECiBPQkpFQ1Q6Vk9J
RApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvZ3RrL1dlYktpdFdlYkV4dGVuc2lvbi5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvZ3RrL1dlYktpdFdlYkV4dGVuc2lvbi5oCmluZGV4IDcwNDI0NzYu
LjY3YTRjZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL2d0ay9XZWJLaXRXZWJFeHRlbnNpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvV2ViS2l0V2ViRXh0ZW5zaW9uLmgKQEAg
LTI1LDcgKzI1LDcgQEAKICNkZWZpbmUgV2ViS2l0V2ViRXh0ZW5zaW9uX2gKIAogI2luY2x1ZGUg
PGdsaWItb2JqZWN0Lmg+Ci0jaW5jbHVkZSA8d2Via2l0Mi9XZWJLaXRXZWJFeHRlbnNpb25EZWZp
bmVzLmg+CisjaW5jbHVkZSA8d2Via2l0Mi9XZWJLaXREZWZpbmVzLmg+CiAjaW5jbHVkZSA8d2Vi
a2l0Mi9XZWJLaXRXZWJQYWdlLmg+CiAKIEdfQkVHSU5fREVDTFMKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9XZWJLaXRXZWJFeHRl
bnNpb25EZWZpbmVzLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9ndGsvV2ViS2l0V2ViRXh0ZW5zaW9uRGVmaW5lcy5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCBhMWE2MzU5Li4wMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9XZWJLaXRXZWJFeHRlbnNpb25EZWZpbmVzLmgKKysr
IC9kZXYvbnVsbApAQCAtMSw0NyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEyIEln
YWxpYSBTLkwuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0g
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
LSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
Ci0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
LSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0g
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgotICovCi0KLSNpZiAhZGVmaW5lZChfX1dFQktJVF9XRUJfRVhURU5TSU9O
X0hfSU5TSURFX18pICYmICFkZWZpbmVkKFdFQktJVDJfQ09NUElMQVRJT04pCi0jZXJyb3IgIk9u
bHkgPHdlYmtpdDIvd2Via2l0LXdlYi1leHRlbnNpb24uaD4gY2FuIGJlIGluY2x1ZGVkIGRpcmVj
dGx5LiIKLSNlbmRpZgotCi0jaWZuZGVmIFdlYktpdFdlYkV4dGVuc2lvbkRlZmluZXNfaAotI2Rl
ZmluZSBXZWJLaXRXZWJFeHRlbnNpb25EZWZpbmVzX2gKLQotI2luY2x1ZGUgPGdsaWIuaD4KLQot
I2lmZGVmIEdfT1NfV0lOMzIKLSMgICAgaWZkZWYgQlVJTERJTkdfV0VCS0lUCi0jICAgICAgICBk
ZWZpbmUgV0VCS0lUX0FQSSBfX2RlY2xzcGVjKGRsbGV4cG9ydCkKLSMgICAgZWxzZQotIyAgICAg
ICAgZGVmaW5lIFdFQktJVF9BUEkgX19kZWNsc3BlYyhkbGxpbXBvcnQpCi0jICAgIGVuZGlmCi0j
ICAgIGRlZmluZSBXRUJLSVRfT0JTT0xFVEVfQVBJIFdFQktJVF9BUEkKLSNlbHNlCi0jICAgIGRl
ZmluZSBXRUJLSVRfQVBJIF9fYXR0cmlidXRlX18oKHZpc2liaWxpdHkoImRlZmF1bHQiKSkpCi0j
ICAgIGRlZmluZSBXRUJLSVRfT0JTT0xFVEVfQVBJIFdFQktJVF9BUEkgX19hdHRyaWJ1dGVfXygo
ZGVwcmVjYXRlZCkpCi0jZW5kaWYKLQotI2VuZGlmIC8vIFdlYktpdFdlYkV4dGVuc2lvbkRlZmlu
ZXNfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9BUEkvZ3RrL1dlYktpdFdlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvZ3RrL1dlYktpdFdlYlBhZ2UuY3BwCmluZGV4IDRmYmZjNDUuLjNk
ZjQxMjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL2d0ay9XZWJLaXRXZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvV2ViS2l0V2ViUGFnZS5jcHAKQEAgLTI2LDcgKzI2
LDEwIEBACiAjaW5jbHVkZSAiV0tCdW5kbGVGcmFtZS5oIgogI2luY2x1ZGUgIldlYkZyYW1lLmgi
CiAjaW5jbHVkZSAiV2ViS2l0RE9NRG9jdW1lbnRQcml2YXRlLmgiCisjaW5jbHVkZSAiV2ViS2l0
TWFyc2hhbC5oIgogI2luY2x1ZGUgIldlYktpdFByaXZhdGUuaCIKKyNpbmNsdWRlICJXZWJLaXRV
UklSZXF1ZXN0UHJpdmF0ZS5oIgorI2luY2x1ZGUgIldlYktpdFVSSVJlc3BvbnNlUHJpdmF0ZS5o
IgogI2luY2x1ZGUgIldlYktpdFdlYlBhZ2VQcml2YXRlLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vz
cy5oIgogI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWUuaD4KQEAgLTM2LDYgKzM5LDcgQEAgdXNpbmcg
bmFtZXNwYWNlIFdlYkNvcmU7CiAKIGVudW0gewogICAgIERPQ1VNRU5UX0xPQURFRCwKKyAgICBT
RU5EX1JFUVVFU1QsCiAKICAgICBMQVNUX1NJR05BTAogfTsKQEAgLTY2LDE4ICs3MCwyNyBAQCBz
dGF0aWMgdm9pZCBkaWRJbml0aWF0ZUxvYWRGb3JSZXNvdXJjZShXS0J1bmRsZVBhZ2VSZWYgcGFn
ZSwgV0tCdW5kbGVGcmFtZVJlZiBmcgogICAgIFdlYlByb2Nlc3M6OnNoYXJlZCgpLmluamVjdGVk
QnVuZGxlKCktPnBvc3RNZXNzYWdlKFN0cmluZzo6ZnJvbVVURjgoIldlYlBhZ2UuRGlkSW5pdGlh
dGVMb2FkRm9yUmVzb3VyY2UiKSwgSW1tdXRhYmxlRGljdGlvbmFyeTo6YWRvcHQobWVzc2FnZSku
Z2V0KCkpOwogfQogCi1zdGF0aWMgV0tVUkxSZXF1ZXN0UmVmIHdpbGxTZW5kUmVxdWVzdEZvckZy
YW1lKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBXS0J1bmRsZUZyYW1lUmVmLCB1aW50NjRfdCBpZGVu
dGlmaWVyLCBXS1VSTFJlcXVlc3RSZWYgcmVxdWVzdCwgV0tVUkxSZXNwb25zZVJlZiByZWRpcmVj
dFJlc3BvbnNlLCBjb25zdCB2b2lkKikKK3N0YXRpYyBXS1VSTFJlcXVlc3RSZWYgd2lsbFNlbmRS
ZXF1ZXN0Rm9yRnJhbWUoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdLQnVuZGxlRnJhbWVSZWYsIHVp
bnQ2NF90IGlkZW50aWZpZXIsIFdLVVJMUmVxdWVzdFJlZiB3a1JlcXVlc3QsIFdLVVJMUmVzcG9u
c2VSZWYgd2tSZWRpcmVjdFJlc3BvbnNlLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQogeworICAg
IEdSZWZQdHI8V2ViS2l0VVJJUmVxdWVzdD4gcmVxdWVzdCA9IGFkb3B0R1JlZih3ZWJraXRVUklS
ZXF1ZXN0Q3JlYXRlRm9yUmVzb3VyY2VSZXF1ZXN0KHRvSW1wbCh3a1JlcXVlc3QpLT5yZXNvdXJj
ZVJlcXVlc3QoKSkpOworICAgIEdSZWZQdHI8V2ViS2l0VVJJUmVzcG9uc2U+IHJlZGlyZWN0UmVz
cG9uc2UgPSB3a1JlZGlyZWN0UmVzcG9uc2UgPyBhZG9wdEdSZWYod2Via2l0VVJJUmVzcG9uc2VD
cmVhdGVGb3JSZXNvdXJjZVJlc3BvbnNlKHRvSW1wbCh3a1JlZGlyZWN0UmVzcG9uc2UpLT5yZXNv
dXJjZVJlc3BvbnNlKCkpKSA6IDA7CisKKyAgICBnYm9vbGVhbiByZXR1cm5WYWx1ZTsKKyAgICBn
X3NpZ25hbF9lbWl0KFdFQktJVF9XRUJfUEFHRShjbGllbnRJbmZvKSwgc2lnbmFsc1tTRU5EX1JF
UVVFU1RdLCAwLCByZXF1ZXN0LmdldCgpLCByZWRpcmVjdFJlc3BvbnNlLmdldCgpLCAmcmV0dXJu
VmFsdWUpOworICAgIGlmIChyZXR1cm5WYWx1ZSkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICBX
ZWJVUkxSZXF1ZXN0KiBuZXdSZXF1ZXN0ID0gV2ViVVJMUmVxdWVzdDo6Y3JlYXRlKHdlYmtpdFVS
SVJlcXVlc3RHZXRSZXNvdXJjZVJlcXVlc3QocmVxdWVzdC5nZXQoKSkpLmxlYWtSZWYoKTsKKwog
ICAgIEltbXV0YWJsZURpY3Rpb25hcnk6Ok1hcFR5cGUgbWVzc2FnZTsKICAgICBtZXNzYWdlLnNl
dChTdHJpbmc6OmZyb21VVEY4KCJQYWdlIiksIHRvSW1wbChwYWdlKSk7CiAgICAgbWVzc2FnZS5z
ZXQoU3RyaW5nOjpmcm9tVVRGOCgiSWRlbnRpZmllciIpLCBXZWJVSW50NjQ6OmNyZWF0ZShpZGVu
dGlmaWVyKSk7Ci0gICAgbWVzc2FnZS5zZXQoU3RyaW5nOjpmcm9tVVRGOCgiUmVxdWVzdCIpLCB0
b0ltcGwocmVxdWVzdCkpOwotICAgIGlmICghdG9JbXBsKHJlZGlyZWN0UmVzcG9uc2UpLT5yZXNv
dXJjZVJlc3BvbnNlKCkuaXNOdWxsKCkpCi0gICAgICAgIG1lc3NhZ2Uuc2V0KFN0cmluZzo6ZnJv
bVVURjgoIlJlZGlyZWN0UmVzcG9uc2UiKSwgdG9JbXBsKHJlZGlyZWN0UmVzcG9uc2UpKTsKKyAg
ICBtZXNzYWdlLnNldChTdHJpbmc6OmZyb21VVEY4KCJSZXF1ZXN0IiksIG5ld1JlcXVlc3QpOwor
ICAgIGlmICghdG9JbXBsKHdrUmVkaXJlY3RSZXNwb25zZSktPnJlc291cmNlUmVzcG9uc2UoKS5p
c051bGwoKSkKKyAgICAgICAgbWVzc2FnZS5zZXQoU3RyaW5nOjpmcm9tVVRGOCgiUmVkaXJlY3RS
ZXNwb25zZSIpLCB0b0ltcGwod2tSZWRpcmVjdFJlc3BvbnNlKSk7CiAgICAgV2ViUHJvY2Vzczo6
c2hhcmVkKCkuaW5qZWN0ZWRCdW5kbGUoKS0+cG9zdE1lc3NhZ2UoU3RyaW5nOjpmcm9tVVRGOCgi
V2ViUGFnZS5EaWRTZW5kUmVxdWVzdEZvclJlc291cmNlIiksIEltbXV0YWJsZURpY3Rpb25hcnk6
OmFkb3B0KG1lc3NhZ2UpLmdldCgpKTsKIAotICAgIFdLUmV0YWluKHJlcXVlc3QpOwotICAgIHJl
dHVybiByZXF1ZXN0OworICAgIHJldHVybiB0b0FQSShuZXdSZXF1ZXN0KTsKIH0KIAogc3RhdGlj
IHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNlRm9yUmVzb3VyY2UoV0tCdW5kbGVQYWdlUmVmIHBhZ2Us
IFdLQnVuZGxlRnJhbWVSZWYsIHVpbnQ2NF90IGlkZW50aWZpZXIsIFdLVVJMUmVzcG9uc2VSZWYg
cmVzcG9uc2UsIGNvbnN0IHZvaWQqKQpAQCAtMTM0LDYgKzE0NywzNyBAQCBzdGF0aWMgdm9pZCB3
ZWJraXRfd2ViX3BhZ2VfY2xhc3NfaW5pdChXZWJLaXRXZWJQYWdlQ2xhc3MqIGtsYXNzKQogICAg
ICAgICAwLCAwLCAwLAogICAgICAgICBnX2NjbG9zdXJlX21hcnNoYWxfVk9JRF9fT0JKRUNULAog
ICAgICAgICBHX1RZUEVfTk9ORSwgMCk7CisKKyAgICAvKioKKyAgICAgKiBXZWJLaXRXZWJQYWdl
OjpzZW5kLXJlcXVlc3Q6CisgICAgICogQHdlYl9wYWdlOiB0aGUgI1dlYktpdFdlYlBhZ2Ugb24g
d2hpY2ggdGhlIHNpZ25hbCBpcyBlbWl0dGVkCisgICAgICogQHJlcXVlc3Q6IGEgI1dlYktpdFVS
SVJlcXVlc3QKKyAgICAgKiBAcmVkaXJlY3RlZF9yZXNwb25zZTogYSAjV2ViS2l0VVJJUmVzcG9u
c2UsIG9yICVOVUxMCisgICAgICoKKyAgICAgKiBUaGlzIHNpZ25hbCBpcyBlbWl0dGVkIHdoZW4g
QHJlcXVlc3QgaXMgYWJvdXQgdG8gYmUgc2VudCB0bworICAgICAqIHRoZSBzZXJ2ZXIuIFRoaXMg
c2lnbmFsIGNhbiBiZSB1c2VkIHRvIG1vZGlmeSB0aGUgI1dlYktpdFVSSVJlcXVlc3QKKyAgICAg
KiB0aGF0IHdpbGwgYmUgc2VudCB0byB0aGUgc2VydmVyLiBZb3UgY2FuIGFsc28gY2FuY2VsIHRo
ZSByZXNvdXJjZSBsb2FkCisgICAgICogb3BlcmF0aW9uIGJ5IGNvbm5lY3RpbmcgdG8gdGhpcyBz
aWduYWwgYW5kIHJldHVybmluZyAlVFJVRS4KKyAgICAgKgorICAgICAqIEluIGNhc2Ugb2YgYSBz
ZXJ2ZXIgcmVkaXJlY3Rpb24gdGhpcyBzaWduYWwgaXMKKyAgICAgKiBlbWl0dGVkIGFnYWluIHdp
dGggdGhlIEByZXF1ZXN0IGFyZ3VtZW50IGNvbnRhaW5pbmcgdGhlIG5ldworICAgICAqIHJlcXVl
c3QgdG8gYmUgc2VudCB0byB0aGUgc2VydmVyIGR1ZSB0byB0aGUgcmVkaXJlY3Rpb24gYW5kIHRo
ZQorICAgICAqIEByZWRpcmVjdGVkX3Jlc3BvbnNlIHBhcmFtZXRlciBjb250YWluaW5nIHRoZSBy
ZXNwb25zZQorICAgICAqIHJlY2VpdmVkIGJ5IHRoZSBzZXJ2ZXIgZm9yIHRoZSBpbml0aWFsIHJl
cXVlc3QuCisgICAgICoKKyAgICAgKiBSZXR1cm5zOiAlVFJVRSB0byBzdG9wIG90aGVyIGhhbmRs
ZXJzIGZyb20gYmVpbmcgaW52b2tlZCBmb3IgdGhlIGV2ZW50LgorICAgICAqICAgICVGQUxTRSB0
byBjb250aW51ZSBlbWlzc2lvbiBvZiB0aGUgZXZlbnQuCisgICAgICovCisgICAgc2lnbmFsc1tT
RU5EX1JFUVVFU1RdID0gZ19zaWduYWxfbmV3KAorICAgICAgICAic2VuZC1yZXF1ZXN0IiwKKyAg
ICAgICAgR19UWVBFX0ZST01fQ0xBU1Moa2xhc3MpLAorICAgICAgICBHX1NJR05BTF9SVU5fTEFT
VCwKKyAgICAgICAgMCwKKyAgICAgICAgZ19zaWduYWxfYWNjdW11bGF0b3JfdHJ1ZV9oYW5kbGVk
LCAwLAorICAgICAgICB3ZWJraXRfbWFyc2hhbF9CT09MRUFOX19PQkpFQ1RfT0JKRUNULAorICAg
ICAgICBHX1RZUEVfQk9PTEVBTiwgMiwKKyAgICAgICAgV0VCS0lUX1RZUEVfVVJJX1JFUVVFU1Qs
CisgICAgICAgIFdFQktJVF9UWVBFX1VSSV9SRVNQT05TRSk7CiB9CiAKIFdlYktpdFdlYlBhZ2Uq
IHdlYmtpdFdlYlBhZ2VDcmVhdGUoV2ViUGFnZSogd2ViUGFnZSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9XZWJLaXRXZWJQYWdl
LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvV2Vi
S2l0V2ViUGFnZS5oCmluZGV4IGQ4ZjYyMzYuLjQ1ZTJiZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9XZWJLaXRXZWJQYWdlLmgK
KysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL1dl
YktpdFdlYlBhZ2UuaApAQCAtMjUsNyArMjUsNyBAQAogI2RlZmluZSBXZWJLaXRXZWJQYWdlX2gK
IAogI2luY2x1ZGUgPGdsaWItb2JqZWN0Lmg+Ci0jaW5jbHVkZSA8d2Via2l0Mi9XZWJLaXRXZWJF
eHRlbnNpb25EZWZpbmVzLmg+CisjaW5jbHVkZSA8d2Via2l0Mi9XZWJLaXREZWZpbmVzLmg+CiAj
aW5jbHVkZSA8d2Via2l0ZG9tL3dlYmtpdGRvbS5oPgogCiBHX0JFR0lOX0RFQ0xTCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvd2Vi
a2l0LXdlYi1leHRlbnNpb24uaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL2d0ay93ZWJraXQtd2ViLWV4dGVuc2lvbi5oCmluZGV4IGU1ZWYzNWEuLmZmYmI1
NTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL2d0ay93ZWJraXQtd2ViLWV4dGVuc2lvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay93ZWJraXQtd2ViLWV4dGVuc2lvbi5oCkBAIC0y
Miw2ICsyMiw4IEBACiAKICNkZWZpbmUgX19XRUJLSVRfV0VCX0VYVEVOU0lPTl9IX0lOU0lERV9f
CiAKKyNpbmNsdWRlIDx3ZWJraXQyL1dlYktpdFVSSVJlcXVlc3QuaD4KKyNpbmNsdWRlIDx3ZWJr
aXQyL1dlYktpdFVSSVJlc3BvbnNlLmg+CiAjaW5jbHVkZSA8d2Via2l0Mi9XZWJLaXRXZWJFeHRl
bnNpb24uaD4KICNpbmNsdWRlIDx3ZWJraXQyL1dlYktpdFdlYlBhZ2UuaD4KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>193133</attachid>
            <date>2013-03-14 09:03:06 -0700</date>
            <delta_ts>2013-04-18 07:57:00 -0700</delta_ts>
            <desc>Updated patch</desc>
            <filename>wk2-send-request4.diff</filename>
            <type>text/plain</type>
            <size>32876</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCBmZDllZTA2Li45N2NhM2RjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjYg
QEAKKzIwMTMtMDMtMTQgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29t
PgorCisgICAgICAgIFtHVEtdIEFkZCBXZWJLaXRXZWJQYWdlOjpzZW5kLXJlcXVlc3Qgc2lnbmFs
IHRvIFdlYktpdDIgR1RLKyBBUEkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTgzNjgxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgQWRkIFdlYktpdFdlYlBhZ2U6OnNlbmQtcmVxdWVzdCBzaWduYWwgZW1pdHRl
ZCBpbiB3aWxsU2VuZFJlcXVlc3QKKyAgICAgICAgY2FsbGJhY2sgdG8gYWxsb3cgd2ViIHByb2Nl
c3MgZXh0ZW5zaW9ucyB0byBtb2RpZnkgcmVxdWVzdHMgYmVmb3JlCisgICAgICAgIHRoZXkgYXJl
IHNlbnQgb3IgY2FuY2VsIHRoZSByZXNvdXJjZSBsb2FkLgorICAgICAgICBUaGlzIHBhdGNoIG1h
a2VzIFdlYktpdFVSSVJlcXVlc3QgYW5kIFdlYktpdFVSSVJlc3BvbnNlIG9iamVjdHMKKyAgICAg
ICAgc2hhcmVhYmxlIGJldHdlZW4gVUkgcHJvY2VzcyBhbmQgd2ViIGV4dGVuc2lvbnMgQVBJcy4g
U2luY2UgYm90aAorICAgICAgICBBUElzIGZvcmNlIHNpbmdsZSBoZWFkZXIgaW5jbHVkZXMsIHRo
ZSBXZWJLaXREZWZpbmVzLmggaGVhZGVyIGhhcworICAgICAgICBiZWVuIHNwbGl0IG1vdmluZyB0
aGUgZm9yd2FyZCBkZWNsYXJhdGlvbnMgc3BlY2lmaWMgdG8gdGhlIFVJCisgICAgICAgIHByb2Nl
c3MgQVBJIHRvIGEgbmV3IGZpbGUgV2ViS2l0Rm9yd2FyZERlY2xhcmF0aW9ucy5oLiBUaGlzIHdh
eSB3ZQorICAgICAgICBjYW4gYWxzbyAgc2hhcmUgdGhlIFdlYktpdERlZmluZXMuaCBoZWFkZXIg
YW5kIHJlbW92ZSB0aGUKKyAgICAgICAgV2ViS2l0V2ViRXh0ZW5zaW9uRGVmaW5lcy5oIGhlYWRl
ciB1c2VkIGluIHRoZSB3ZWIgZXh0ZW5zaW9ucyBBUEkuCisKKyAgICAgICAgKiBHTlVtYWtlZmls
ZS5saXN0LmFtOiBBZGQgbmV3IGZpbGVzIHRvIGNvbXBpbGF0aW9uLgorICAgICAgICAqIFVJUHJv
Y2Vzcy9BUEkvZ3RrL1dlYktpdENvbnRleHRNZW51Lmg6IEluY2x1ZGUgV2ViS2l0Rm9yd2FyZC5o
LgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdENvbnRleHRNZW51SXRlbS5oOiBE
aXR0by4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXREZWZpbmVzLmg6IFJlbW92
ZSBmb3J3YXJkIGRlY2xhcmF0aW9ucy4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJL
aXREb3dubG9hZC5oOiBJbmNsdWRlIFdlYktpdEZvcndhcmQuaC4KKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL2d0ay9XZWJLaXRGaW5kQ29udHJvbGxlci5oOiBEaXR0by4KKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL2d0ay9XZWJLaXRGb3J3YXJkRGVjbGFyYXRpb25zLmg6IEFkZGVkLiBDb250YWlu
cworICAgICAgICB0aGUgZm9yd2FyZCBkZWNsYXJhdGlvbnMgbW92ZWQgZnJvbSBXZWJLaXREZWZp
bmVzLmguCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0UHJpbnRPcGVyYXRpb24u
aDogSW5jbHVkZSBXZWJLaXRGb3J3YXJkLmguCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsv
V2ViS2l0VVJJUmVxdWVzdC5jcHA6CisgICAgICAgICh3ZWJraXRVUklSZXF1ZXN0U2V0UHJvcGVy
dHkpOiBVc2Ugd2Via2l0X3VyaV9yZXF1ZXN0X3NldF91cmkoKSB0bworICAgICAgICBzZXQgdGhl
IG5ldyBVUkkuCisgICAgICAgICh3ZWJraXRfdXJpX3JlcXVlc3RfY2xhc3NfaW5pdCk6IE1ha2Ug
VVJJIHByb3BlcnR5IGNvbnN0cnVjdAorICAgICAgICBpbnN0ZWFkIG9mIGNvbnN0cnVjdC1vbmx5
LCBzaW5jZSBpdCBjYW4gYmUgdXBkYXRlZCBvbmNlCisgICAgICAgIGNvbnN0cnVjdGVkLiBJdCBz
aG91bGQgbmV2ZXIgYmUgTlVMTCwgc28gc2V0IGRlZmF1bHQgdmFsdWUgdG8KKyAgICAgICAgYWJv
dXQ6YmxhbmsgaW5zdGFkIG9mIE5VTEwuCisgICAgICAgICh3ZWJraXRfdXJpX3JlcXVlc3Rfc2V0
X3VyaSk6IE5ldyBwdWJsaWMgbWV0aG9kIHRvIHNldCB0aGUgVVJJIG9mCisgICAgICAgIHRoZSBX
ZWJLaXRVUklSZXF1ZXN0LgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVSSVJl
cXVlc3QuaDogQWxsb3cgdG8gaW5jbHVkZSB0aGlzIGZpbGUKKyAgICAgICAgZnJvbSB3ZWJraXQt
d2ViLWV4dGVuc2lvbi5oLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVSSVJl
c3BvbnNlLmg6IERpdHRvLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVSSVNj
aGVtZVJlcXVlc3QuaDogSW5jbHVkZQorICAgICAgICBXZWJLaXRGb3J3YXJkLmguCisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlldy5oOiBEaXR0by4KKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJndGstc2VjdGlvbnMudHh0OiBBZGQKKyAgICAg
ICAgd2Via2l0X3VyaV9yZXF1ZXN0X3NldF91cmkuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9n
dGsvdGVzdHMvVGVzdFJlc291cmNlcy5jcHA6CisgICAgICAgICh0ZXN0V2ViUmVzb3VyY2VTZW5k
UmVxdWVzdCk6CisgICAgICAgIChzZXJ2ZXJDYWxsYmFjayk6CisgICAgICAgIChiZWZvcmVBbGwp
OgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL3Rlc3RzL1dlYkV4dGVuc2lvblRlc3QuY3Bw
OgorICAgICAgICAoc2VuZFJlcXVlc3RDYWxsYmFjayk6CisgICAgICAgIChwYWdlQ3JlYXRlZENh
bGxiYWNrKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay93ZWJraXQybWFyc2hhbC5saXN0
OgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9XZWJLaXRXZWJF
eHRlbnNpb24uaDogSW5jbHVkZQorICAgICAgICBXZWJLaXREZWZpbmVzLmggaW5zdGVhZCBvZiBX
ZWJLaXRXZWJFeHRlbnNpb25EZWZpbmVzLmguCisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvZ3RrL1dlYktpdFdlYlBhZ2UuY3BwOgorICAgICAgICAod2lsbFNlbmRSZXF1
ZXN0Rm9yRnJhbWUpOiBFbWl0IFdlYktpdFdlYlBhZ2U6OnNlbmQtcmVxdWVzdCBhbmQKKyAgICAg
ICAgcmV0dXJuIGVhcmx5IGlmIHRoZSBsb2FkIGlzIGNhbmNlbGxlZC4KKyAgICAgICAgKHdlYmtp
dF93ZWJfcGFnZV9jbGFzc19pbml0KTogQWRkIFdlYktpdFdlYlBhZ2U6OnNlbmQtcmVxdWVzdAor
ICAgICAgICBzaWduYWwuCisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Z3RrL1dlYktpdFdlYlBhZ2UuaDogSW5jbHVkZQorICAgICAgICBXZWJLaXREZWZpbmVzLmggaW5z
dGVhZCBvZiBXZWJLaXRXZWJFeHRlbnNpb25EZWZpbmVzLmguCisgICAgICAgICogV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL3dlYmtpdC13ZWItZXh0ZW5zaW9uLmg6CisKIDIwMTMt
MDMtMTQgIE1hbnVlbCBSZWdvIENhc2Fzbm92YXMgIDxyZWdvQGlnYWxpYS5jb20+CiAKICAgICAg
ICAgW0dUS11bV0syXSBBZGQgZG9jdW1lbnQtbG9hZGVkIHNpZ25hbCB0byBXZWJLaXRXZWJQYWdl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNl
L1dlYktpdDIvR05VbWFrZWZpbGUubGlzdC5hbQppbmRleCA5MTdjZTQyLi44YmEwZjc4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTEwNyw2ICsxMDcsNyBAQCB3ZWJraXQyZ3Rr
X2hfYXBpICs9IFwKIAkkKFdlYktpdDIpL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEZpbGVDaG9v
c2VyUmVxdWVzdC5oIFwKIAkkKFdlYktpdDIpL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEZpbmRD
b250cm9sbGVyLmggXAogCSQoV2ViS2l0MikvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0Rm9ybVN1
Ym1pc3Npb25SZXF1ZXN0LmggXAorCSQoV2ViS2l0MikvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0
Rm9yd2FyZERlY2xhcmF0aW9ucy5oIFwKIAkkKFdlYktpdDIpL1VJUHJvY2Vzcy9BUEkvZ3RrL1dl
YktpdEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3QuaCBcCiAJJChXZWJLaXQyKS9VSVByb2Nl
c3MvQVBJL2d0ay9XZWJLaXRIaXRUZXN0UmVzdWx0LmggXAogCSQoV2ViS2l0MikvVUlQcm9jZXNz
L0FQSS9ndGsvV2ViS2l0SmF2YXNjcmlwdFJlc3VsdC5oIFwKQEAgLTEzMyw3ICsxMzQsNiBAQCB3
ZWJraXQyZ3RrX2hfYXBpICs9IFwKIAogd2Via2l0Ml93ZWJfZXh0ZW5zaW9uX2hfYXBpICs9IFwK
IAkkKFdlYktpdDIpL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9XZWJLaXRXZWJF
eHRlbnNpb24uaCBcCi0JJChXZWJLaXQyKS9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9n
dGsvV2ViS2l0V2ViRXh0ZW5zaW9uRGVmaW5lcy5oIFwKIAkkKFdlYktpdDIpL1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9XZWJLaXRXZWJQYWdlLmggXAogCSQoV2ViS2l0MikvV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL3dlYmtpdC13ZWItZXh0ZW5zaW9uLmgKIApA
QCAtNjg2LDYgKzY4Niw3IEBAIHdlYmtpdDJfc291cmNlcyArPSBcCiAJU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0Rm9ybVN1Ym1pc3Npb25SZXF1ZXN0UHJpdmF0ZS5oIFwK
IAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRGb3JtQ2xpZW50LmNwcCBc
CiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0Rm9ybUNsaWVudC5oIFwK
KwlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRGb3J3YXJkRGVjbGFyYXRp
b25zLmggXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEZ1bGxzY3Jl
ZW5DbGllbnQuY3BwIFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRG
dWxsc2NyZWVuQ2xpZW50LmggXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dl
YktpdEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3QuY3BwIFwKQEAgLTEwMzYsNyArMTAzNyw2
IEBAIHdlYmtpdDJfc291cmNlcyArPSBcCiAJU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvZ3RrL1dlYktpdFdlYkV4dGVuc2lvbi5jcHAgXAogCVNvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9XZWJLaXRXZWJFeHRlbnNpb24u
aCBcCiAJU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL1dl
YktpdFdlYkV4dGVuc2lvblByaXZhdGUuaCBcCi0JU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvZ3RrL1dlYktpdFdlYkV4dGVuc2lvbkRlZmluZXMuaCBcCiAJU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL1dlYktpdFdlYlBh
Z2UuY3BwIFwKIAlTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9n
dGsvV2ViS2l0V2ViUGFnZS5oIFwKIAlTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9ndGsvV2ViS2l0V2ViUGFnZVByaXZhdGUuaCBcCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRDb250ZXh0TWVudS5oIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0Q29udGV4dE1lbnUuaAppbmRleCA5ZGYz
ZjRjLi45NmQwZWMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0
ay9XZWJLaXRDb250ZXh0TWVudS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Z3RrL1dlYktpdENvbnRleHRNZW51LmgKQEAgLTI3LDYgKzI3LDcgQEAKICNpbmNsdWRlIDxnbGli
LW9iamVjdC5oPgogI2luY2x1ZGUgPHdlYmtpdDIvV2ViS2l0Q29udGV4dE1lbnVJdGVtLmg+CiAj
aW5jbHVkZSA8d2Via2l0Mi9XZWJLaXREZWZpbmVzLmg+CisjaW5jbHVkZSA8d2Via2l0Mi9XZWJL
aXRGb3J3YXJkRGVjbGFyYXRpb25zLmg+CiAKIEdfQkVHSU5fREVDTFMKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0Q29udGV4dE1lbnVJdGVtLmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRDb250ZXh0TWVudUl0ZW0u
aAppbmRleCA1MmQ5MTI4Li4zZjFjOGU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL2d0ay9XZWJLaXRDb250ZXh0TWVudUl0ZW0uaAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRDb250ZXh0TWVudUl0ZW0uaApAQCAtMjgsNiArMjgs
NyBAQAogI2luY2x1ZGUgPHdlYmtpdDIvV2ViS2l0RGVmaW5lcy5oPgogI2luY2x1ZGUgPHdlYmtp
dDIvV2ViS2l0Q29udGV4dE1lbnUuaD4KICNpbmNsdWRlIDx3ZWJraXQyL1dlYktpdENvbnRleHRN
ZW51QWN0aW9ucy5oPgorI2luY2x1ZGUgPHdlYmtpdDIvV2ViS2l0Rm9yd2FyZERlY2xhcmF0aW9u
cy5oPgogCiBHX0JFR0lOX0RFQ0xTCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvZ3RrL1dlYktpdERlZmluZXMuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvZ3RrL1dlYktpdERlZmluZXMuaAppbmRleCA3MzNiZjg4Li44YjYzNzY1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXREZWZpbmVzLmgKKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0RGVmaW5lcy5oCkBAIC0yMyw3
ICsyMyw3IEBACiAgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotI2lm
ICFkZWZpbmVkKF9fV0VCS0lUMl9IX0lOU0lERV9fKSAmJiAhZGVmaW5lZChXRUJLSVQyX0NPTVBJ
TEFUSU9OKQorI2lmICFkZWZpbmVkKF9fV0VCS0lUMl9IX0lOU0lERV9fKSAmJiAhZGVmaW5lZChX
RUJLSVQyX0NPTVBJTEFUSU9OKSAmJiAhZGVmaW5lZChfX1dFQktJVF9XRUJfRVhURU5TSU9OX0hf
SU5TSURFX18pCiAjZXJyb3IgIk9ubHkgPHdlYmtpdDIvd2Via2l0Mi5oPiBjYW4gYmUgaW5jbHVk
ZWQgZGlyZWN0bHkuIgogI2VuZGlmCiAKQEAgLTMyLDEyICszMiw2IEBACiAKICNpbmNsdWRlIDxn
bGliLmg+CiAKLXR5cGVkZWYgc3RydWN0IF9XZWJLaXRQcmludE9wZXJhdGlvbiAgV2ViS2l0UHJp
bnRPcGVyYXRpb247Ci10eXBlZGVmIHN0cnVjdCBfV2ViS2l0RmluZENvbnRyb2xsZXIgIFdlYktp
dEZpbmRDb250cm9sbGVyOwotdHlwZWRlZiBzdHJ1Y3QgX1dlYktpdFdlYlZpZXcgICAgICAgICBX
ZWJLaXRXZWJWaWV3OwotdHlwZWRlZiBzdHJ1Y3QgX1dlYktpdENvbnRleHRNZW51ICAgICBXZWJL
aXRDb250ZXh0TWVudTsKLXR5cGVkZWYgc3RydWN0IF9XZWJLaXRDb250ZXh0TWVudUl0ZW0gV2Vi
S2l0Q29udGV4dE1lbnVJdGVtOwotCiAjaWZkZWYgR19PU19XSU4zMgogIyAgICBpZmRlZiBCVUlM
RElOR19XRUJLSVQKICMgICAgICAgIGRlZmluZSBXRUJLSVRfQVBJIF9fZGVjbHNwZWMoZGxsZXhw
b3J0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0
RG93bmxvYWQuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdERvd25s
b2FkLmgKaW5kZXggNDQ4YmViZi4uODBjN2I2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0RG93bmxvYWQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL2d0ay9XZWJLaXREb3dubG9hZC5oCkBAIC0yNiw2ICsyNiw3IEBACiAKICNp
bmNsdWRlIDxnbGliLW9iamVjdC5oPgogI2luY2x1ZGUgPHdlYmtpdDIvV2ViS2l0RGVmaW5lcy5o
PgorI2luY2x1ZGUgPHdlYmtpdDIvV2ViS2l0Rm9yd2FyZERlY2xhcmF0aW9ucy5oPgogI2luY2x1
ZGUgPHdlYmtpdDIvV2ViS2l0VVJJUmVxdWVzdC5oPgogI2luY2x1ZGUgPHdlYmtpdDIvV2ViS2l0
VVJJUmVzcG9uc2UuaD4KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9ndGsvV2ViS2l0RmluZENvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvZ3RrL1dlYktpdEZpbmRDb250cm9sbGVyLmgKaW5kZXggM2E0N2Y5OS4uMGY3YmRkMSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0RmluZENvbnRy
b2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRGaW5k
Q29udHJvbGxlci5oCkBAIC0yNiw2ICsyNiw3IEBACiAKICNpbmNsdWRlIDxnbGliLW9iamVjdC5o
PgogI2luY2x1ZGUgPHdlYmtpdDIvV2ViS2l0RGVmaW5lcy5oPgorI2luY2x1ZGUgPHdlYmtpdDIv
V2ViS2l0Rm9yd2FyZERlY2xhcmF0aW9ucy5oPgogCiBHX0JFR0lOX0RFQ0xTCiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEZvcndhcmREZWNsYXJh
dGlvbnMuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEZvcndhcmRE
ZWNsYXJhdGlvbnMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hOTg5OGRl
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2Vi
S2l0Rm9yd2FyZERlY2xhcmF0aW9ucy5oCkBAIC0wLDAgKzEsMzkgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTMgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmICFkZWZpbmVkKF9fV0VCS0lU
Ml9IX0lOU0lERV9fKSAmJiAhZGVmaW5lZChXRUJLSVQyX0NPTVBJTEFUSU9OKQorI2Vycm9yICJP
bmx5IDx3ZWJraXQyL3dlYmtpdDIuaD4gY2FuIGJlIGluY2x1ZGVkIGRpcmVjdGx5LiIKKyNlbmRp
ZgorCisjaWZuZGVmIFdlYktpdEZvcndhcmRfaAorI2RlZmluZSBXZWJLaXRGb3J3YXJkX2gKKwor
dHlwZWRlZiBzdHJ1Y3QgX1dlYktpdFByaW50T3BlcmF0aW9uICBXZWJLaXRQcmludE9wZXJhdGlv
bjsKK3R5cGVkZWYgc3RydWN0IF9XZWJLaXRGaW5kQ29udHJvbGxlciAgV2ViS2l0RmluZENvbnRy
b2xsZXI7Cit0eXBlZGVmIHN0cnVjdCBfV2ViS2l0V2ViVmlldyAgICAgICAgIFdlYktpdFdlYlZp
ZXc7Cit0eXBlZGVmIHN0cnVjdCBfV2ViS2l0Q29udGV4dE1lbnUgICAgIFdlYktpdENvbnRleHRN
ZW51OwordHlwZWRlZiBzdHJ1Y3QgX1dlYktpdENvbnRleHRNZW51SXRlbSBXZWJLaXRDb250ZXh0
TWVudUl0ZW07CisKKyNlbmRpZiAvLyBXZWJLaXRGb3J3YXJkX2gKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFByaW50T3BlcmF0aW9uLmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRQcmludE9wZXJhdGlvbi5oCmluZGV4
IGEwMmY0ZTguLmZhYjI1ZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvZ3RrL1dlYktpdFByaW50T3BlcmF0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9ndGsvV2ViS2l0UHJpbnRPcGVyYXRpb24uaApAQCAtMjYsNiArMjYsNyBAQAogCiAj
aW5jbHVkZSA8Z2xpYi1vYmplY3QuaD4KICNpbmNsdWRlIDx3ZWJraXQyL1dlYktpdERlZmluZXMu
aD4KKyNpbmNsdWRlIDx3ZWJraXQyL1dlYktpdEZvcndhcmREZWNsYXJhdGlvbnMuaD4KICNpbmNs
dWRlIDx3ZWJraXQyL1dlYktpdFdlYlZpZXcuaD4KIAogR19CRUdJTl9ERUNMUwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VVJJUmVxdWVzdC5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVUklSZXF1ZXN0LmNwcApp
bmRleCAyMTlmMzRmLi44ZGQ0N2U5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL2d0ay9XZWJLaXRVUklSZXF1ZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL2d0ay9XZWJLaXRVUklSZXF1ZXN0LmNwcApAQCAtNzAsNyArNzAsNyBAQCBzdGF0
aWMgdm9pZCB3ZWJraXRVUklSZXF1ZXN0U2V0UHJvcGVydHkoR09iamVjdCogb2JqZWN0LCBndWlu
dCBwcm9wSWQsIGNvbnN0IEdWYQogCiAgICAgc3dpdGNoIChwcm9wSWQpIHsKICAgICBjYXNlIFBS
T1BfVVJJOgotICAgICAgICByZXF1ZXN0LT5wcml2LT5yZXNvdXJjZVJlcXVlc3Quc2V0VVJMKEtV
UkwoS1VSTCgpLCBnX3ZhbHVlX2dldF9zdHJpbmcodmFsdWUpKSk7CisgICAgICAgIHdlYmtpdF91
cmlfcmVxdWVzdF9zZXRfdXJpKHJlcXVlc3QsIGdfdmFsdWVfZ2V0X3N0cmluZyh2YWx1ZSkpOwog
ICAgICAgICBicmVhazsKICAgICBkZWZhdWx0OgogICAgICAgICBHX09CSkVDVF9XQVJOX0lOVkFM
SURfUFJPUEVSVFlfSUQob2JqZWN0LCBwcm9wSWQsIHBhcmFtU3BlYyk7CkBAIC05Miw4ICs5Miw4
IEBAIHN0YXRpYyB2b2lkIHdlYmtpdF91cmlfcmVxdWVzdF9jbGFzc19pbml0KFdlYktpdFVSSVJl
cXVlc3RDbGFzcyogcmVxdWVzdENsYXNzKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgZ19wYXJhbV9zcGVjX3N0cmluZygidXJpIiwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXygiVVJJIiksCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF8oIlRoZSBVUkkgdG8g
d2hpY2ggdGhlIHJlcXVlc3Qgd2lsbCBiZSBtYWRlLiIpLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxHUGFyYW1G
bGFncz4oV0VCS0lUX1BBUkFNX1JFQURXUklURSB8IEdfUEFSQU1fQ09OU1RSVUNUX09OTFkpKSk7
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICJhYm91dDpibGFuayIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PEdQYXJhbUZsYWdzPihXRUJLSVRfUEFSQU1fUkVB
RFdSSVRFIHwgR19QQVJBTV9DT05TVFJVQ1QpKSk7CiB9CiAKIC8qKgpAQCAtMTI1LDYgKzEyNSwy
NiBAQCBjb25zdCBnY2hhciogd2Via2l0X3VyaV9yZXF1ZXN0X2dldF91cmkoV2ViS2l0VVJJUmVx
dWVzdCogcmVxdWVzdCkKICAgICByZXR1cm4gcmVxdWVzdC0+cHJpdi0+dXJpLmRhdGEoKTsKIH0K
IAorLyoqCisgKiB3ZWJraXRfdXJpX3JlcXVlc3Rfc2V0X3VyaToKKyAqIEByZXF1ZXN0OiBhICNX
ZWJLaXRVUklSZXF1ZXN0CisgKiBAdXJpOiBhbiBVUkkKKyAqCisgKiBTZXQgdGhlIFVSSSBvZiBA
cmVxdWVzdAorICovCit2b2lkIHdlYmtpdF91cmlfcmVxdWVzdF9zZXRfdXJpKFdlYktpdFVSSVJl
cXVlc3QqIHJlcXVlc3QsIGNvbnN0IGNoYXIqIHVyaSkKK3sKKyAgICBnX3JldHVybl9pZl9mYWls
KFdFQktJVF9JU19VUklfUkVRVUVTVChyZXF1ZXN0KSk7CisgICAgZ19yZXR1cm5faWZfZmFpbCh1
cmkpOworCisgICAgS1VSTCB1cmwoS1VSTCgpLCB1cmkpOworICAgIGlmICh1cmwgPT0gcmVxdWVz
dC0+cHJpdi0+cmVzb3VyY2VSZXF1ZXN0LnVybCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBy
ZXF1ZXN0LT5wcml2LT5yZXNvdXJjZVJlcXVlc3Quc2V0VVJMKHVybCk7CisgICAgZ19vYmplY3Rf
bm90aWZ5KEdfT0JKRUNUKHJlcXVlc3QpLCAidXJpIik7Cit9CisKIFdlYktpdFVSSVJlcXVlc3Qq
IHdlYmtpdFVSSVJlcXVlc3RDcmVhdGVGb3JSZXNvdXJjZVJlcXVlc3QoY29uc3QgV2ViQ29yZTo6
UmVzb3VyY2VSZXF1ZXN0JiByZXNvdXJjZVJlcXVlc3QpCiB7CiAgICAgV2ViS2l0VVJJUmVxdWVz
dCogdXJpUmVxdWVzdCA9IFdFQktJVF9VUklfUkVRVUVTVChnX29iamVjdF9uZXcoV0VCS0lUX1RZ
UEVfVVJJX1JFUVVFU1QsIE5VTEwpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvZ3RrL1dlYktpdFVSSVJlcXVlc3QuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvZ3RrL1dlYktpdFVSSVJlcXVlc3QuaAppbmRleCA1MjM2MDY5Li44ODEyMTU5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVUklSZXF1ZXN0
LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VVJJUmVxdWVz
dC5oCkBAIC0xNyw3ICsxNyw3IEBACiAgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KICAq
LwogCi0jaWYgIWRlZmluZWQoX19XRUJLSVQyX0hfSU5TSURFX18pICYmICFkZWZpbmVkKFdFQktJ
VDJfQ09NUElMQVRJT04pCisjaWYgIWRlZmluZWQoX19XRUJLSVQyX0hfSU5TSURFX18pICYmICFk
ZWZpbmVkKFdFQktJVDJfQ09NUElMQVRJT04pICYmICFkZWZpbmVkKF9fV0VCS0lUX1dFQl9FWFRF
TlNJT05fSF9JTlNJREVfXykKICNlcnJvciAiT25seSA8d2Via2l0Mi93ZWJraXQyLmg+IGNhbiBi
ZSBpbmNsdWRlZCBkaXJlY3RseS4iCiAjZW5kaWYKIApAQCAtNjEsNiArNjEsMTAgQEAgd2Via2l0
X3VyaV9yZXF1ZXN0X25ldyAgICAgIChjb25zdCBnY2hhciAgICAgICp1cmkpOwogV0VCS0lUX0FQ
SSBjb25zdCBnY2hhciAqCiB3ZWJraXRfdXJpX3JlcXVlc3RfZ2V0X3VyaSAgKFdlYktpdFVSSVJl
cXVlc3QgKnJlcXVlc3QpOwogCitXRUJLSVRfQVBJIHZvaWQKK3dlYmtpdF91cmlfcmVxdWVzdF9z
ZXRfdXJpICAoV2ViS2l0VVJJUmVxdWVzdCAqcmVxdWVzdCwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgY29uc3QgZ2NoYXIgICAgICAqdXJpKTsKKwogR19FTkRfREVDTFMKIAogI2VuZGlm
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVUklS
ZXNwb25zZS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VVJJUmVz
cG9uc2UuaAppbmRleCBmOTJiYTRmLi45Mjg4YTlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVUklSZXNwb25zZS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVSSVJlc3BvbnNlLmgKQEAgLTE3LDcgKzE3LDcg
QEAKICAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgogICovCiAKLSNpZiAhZGVmaW5lZChf
X1dFQktJVDJfSF9JTlNJREVfXykgJiYgIWRlZmluZWQoV0VCS0lUMl9DT01QSUxBVElPTikKKyNp
ZiAhZGVmaW5lZChfX1dFQktJVDJfSF9JTlNJREVfXykgJiYgIWRlZmluZWQoV0VCS0lUMl9DT01Q
SUxBVElPTikgJiYgIWRlZmluZWQoX19XRUJLSVRfV0VCX0VYVEVOU0lPTl9IX0lOU0lERV9fKQog
I2Vycm9yICJPbmx5IDx3ZWJraXQyL3dlYmtpdDIuaD4gY2FuIGJlIGluY2x1ZGVkIGRpcmVjdGx5
LiIKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0
ay9XZWJLaXRVUklTY2hlbWVSZXF1ZXN0LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2d0ay9XZWJLaXRVUklTY2hlbWVSZXF1ZXN0LmgKaW5kZXggOWVhZDUwNy4uOGFjZjZmMSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VVJJU2NoZW1l
UmVxdWVzdC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVS
SVNjaGVtZVJlcXVlc3QuaApAQCAtMjYsNiArMjYsNyBAQAogCiAjaW5jbHVkZSA8Z2xpYi1vYmpl
Y3QuaD4KICNpbmNsdWRlIDx3ZWJraXQyL1dlYktpdERlZmluZXMuaD4KKyNpbmNsdWRlIDx3ZWJr
aXQyL1dlYktpdEZvcndhcmREZWNsYXJhdGlvbnMuaD4KIAogR19CRUdJTl9ERUNMUwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3Lmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3LmgKaW5kZXgg
YWFlODQ5Yi4uNDUzNDk1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9ndGsvV2ViS2l0V2ViVmlldy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Z3RrL1dlYktpdFdlYlZpZXcuaApAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgPHdlYmtpdDIv
V2ViS2l0RmlsZUNob29zZXJSZXF1ZXN0Lmg+CiAjaW5jbHVkZSA8d2Via2l0Mi9XZWJLaXRGaW5k
Q29udHJvbGxlci5oPgogI2luY2x1ZGUgPHdlYmtpdDIvV2ViS2l0Rm9ybVN1Ym1pc3Npb25SZXF1
ZXN0Lmg+CisjaW5jbHVkZSA8d2Via2l0Mi9XZWJLaXRGb3J3YXJkRGVjbGFyYXRpb25zLmg+CiAj
aW5jbHVkZSA8d2Via2l0Mi9XZWJLaXRIaXRUZXN0UmVzdWx0Lmg+CiAjaW5jbHVkZSA8d2Via2l0
Mi9XZWJLaXRKYXZhc2NyaXB0UmVzdWx0Lmg+CiAjaW5jbHVkZSA8d2Via2l0Mi9XZWJLaXRQZXJt
aXNzaW9uUmVxdWVzdC5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9ndGsvZG9jcy93ZWJraXQyZ3RrLXNlY3Rpb25zLnR4dCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay1zZWN0aW9ucy50eHQKaW5kZXggZjZlOGE4NC4u
ZWIyYmIxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvZG9j
cy93ZWJraXQyZ3RrLXNlY3Rpb25zLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL2d0ay9kb2NzL3dlYmtpdDJndGstc2VjdGlvbnMudHh0CkBAIC0zMzAsNiArMzMwLDcgQEAg
d2Via2l0X3NldHRpbmdzX2dldF90eXBlCiBXZWJLaXRVUklSZXF1ZXN0CiB3ZWJraXRfdXJpX3Jl
cXVlc3RfbmV3CiB3ZWJraXRfdXJpX3JlcXVlc3RfZ2V0X3VyaQord2Via2l0X3VyaV9yZXF1ZXN0
X3NldF91cmkKIAogPFNVQlNFQ1RJT04gU3RhbmRhcmQ+CiBXZWJLaXRVUklSZXF1ZXN0Q2xhc3MK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL3Rlc3RzL1Rlc3RS
ZXNvdXJjZXMuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvdGVzdHMvVGVz
dFJlc291cmNlcy5jcHAKaW5kZXggNmExMjgzMi4uYTI0YjZmZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvdGVzdHMvVGVzdFJlc291cmNlcy5jcHAKKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvdGVzdHMvVGVzdFJlc291cmNlcy5jcHAK
QEAgLTU1OCw2ICs1NTgsNzUgQEAgc3RhdGljIHZvaWQgdGVzdFdlYlZpZXdSZXNvdXJjZXNIaXN0
b3J5Q2FjaGUoU2luZ2xlUmVzb3VyY2VMb2FkVGVzdCogdGVzdCwgZ2NvbnMKICAgICBnX2Fzc2Vy
dF9jbXBzdHIod2Via2l0X3dlYl9yZXNvdXJjZV9nZXRfdXJpKHJlc291cmNlKSwgPT0sIHNpbXBs
ZVN0eWxlQ1NTVVJJLmRhdGEoKSk7CiB9CiAKK2NsYXNzIFNlbmRSZXF1ZXN0VGVzdDogcHVibGlj
IFNpbmdsZVJlc291cmNlTG9hZFRlc3QgeworcHVibGljOgorICAgIE1BS0VfR0xJQl9URVNUX0ZJ
WFRVUkUoU2VuZFJlcXVlc3RUZXN0KTsKKworICAgIHZvaWQgcmVzb3VyY2VTZW50UmVxdWVzdChX
ZWJLaXRXZWJSZXNvdXJjZSogcmVzb3VyY2UsIFdlYktpdFVSSVJlcXVlc3QqIHJlcXVlc3QsIFdl
YktpdFVSSVJlc3BvbnNlKiByZWRpcmVjdFJlc3BvbnNlKQorICAgIHsKKyAgICAgICAgaWYgKHJl
c291cmNlICE9IG1fcmVzb3VyY2UpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgZ19h
c3NlcnRfY21wc3RyKHdlYmtpdF91cmlfcmVxdWVzdF9nZXRfdXJpKHJlcXVlc3QpLCA9PSwgbV9l
eHBlY3RlZE5ld1Jlc291cmNlVVJJLmRhdGEoKSk7CisgICAgICAgIGdfYXNzZXJ0X2NtcHN0cih3
ZWJraXRfdXJpX3JlcXVlc3RfZ2V0X3VyaShyZXF1ZXN0KSwgPT0sIHdlYmtpdF93ZWJfcmVzb3Vy
Y2VfZ2V0X3VyaShyZXNvdXJjZSkpOworCisgICAgICAgIFNpbmdsZVJlc291cmNlTG9hZFRlc3Q6
OnJlc291cmNlU2VudFJlcXVlc3QocmVzb3VyY2UsIHJlcXVlc3QsIHJlZGlyZWN0UmVzcG9uc2Up
OworICAgIH0KKworICAgIHZvaWQgcmVzb3VyY2VGYWlsZWQoV2ViS2l0V2ViUmVzb3VyY2UqIHJl
c291cmNlLCBHRXJyb3IqIGVycm9yKQorICAgIHsKKyAgICAgICAgaWYgKHJlc291cmNlICE9IG1f
cmVzb3VyY2UpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgZ19hc3NlcnRfY21wc3Ry
KHdlYmtpdF93ZWJfcmVzb3VyY2VfZ2V0X3VyaShyZXNvdXJjZSksID09LCBtX2V4cGVjdGVkQ2Fu
Y2VsbGVkUmVzb3VyY2VVUkkuZGF0YSgpKTsKKyAgICAgICAgZ19hc3NlcnRfZXJyb3IoZXJyb3Is
IFdFQktJVF9ORVRXT1JLX0VSUk9SLCBXRUJLSVRfTkVUV09SS19FUlJPUl9DQU5DRUxMRUQpOwor
CisgICAgICAgIFNpbmdsZVJlc291cmNlTG9hZFRlc3Q6OnJlc291cmNlRmFpbGVkKHJlc291cmNl
LCBlcnJvcik7CisgICAgfQorCisgICAgdm9pZCBzZXRFeHBlY3RlZE5ld1Jlc291cmNlVVJJKGNv
bnN0IENTdHJpbmcmIHVyaSkKKyAgICB7CisgICAgICAgIG1fZXhwZWN0ZWROZXdSZXNvdXJjZVVS
SSA9IHVyaTsKKyAgICB9CisKKyAgICB2b2lkIHNldEV4cGVjdGVkQ2FuY2VsbGVkUmVzb3VyY2VV
UkkoY29uc3QgQ1N0cmluZyYgdXJpKQorICAgIHsKKyAgICAgICAgbV9leHBlY3RlZENhbmNlbGxl
ZFJlc291cmNlVVJJID0gdXJpOworICAgIH0KKworICAgIENTdHJpbmcgbV9leHBlY3RlZE5ld1Jl
c291cmNlVVJJOworICAgIENTdHJpbmcgbV9leHBlY3RlZENhbmNlbGxlZFJlc291cmNlVVJJOwor
fTsKKworc3RhdGljIHZvaWQgdGVzdFdlYlJlc291cmNlU2VuZFJlcXVlc3QoU2VuZFJlcXVlc3RU
ZXN0KiB0ZXN0LCBnY29uc3Rwb2ludGVyKQoreworICAgIHRlc3QtPnNldEV4cGVjdGVkTmV3UmVz
b3VyY2VVUkkoa1NlcnZlci0+Z2V0VVJJRm9yUGF0aCgiL2phdmFzY3JpcHQuanMiKSk7CisgICAg
dGVzdC0+bG9hZFVSSShrU2VydmVyLT5nZXRVUklGb3JQYXRoKCJyZWxhdGl2ZS1qYXZhc2NyaXB0
Lmh0bWwiKS5kYXRhKCkpOworICAgIHRlc3QtPndhaXRVbnRpbFJlc291cmNlTG9hZEZpbmlzaGVk
KCk7CisgICAgZ19hc3NlcnQodGVzdC0+bV9yZXNvdXJjZSk7CisKKyAgICBWZWN0b3I8U2luZ2xl
UmVzb3VyY2VMb2FkVGVzdDo6TG9hZEV2ZW50cz4mIGV2ZW50cyA9IHRlc3QtPm1fbG9hZEV2ZW50
czsKKyAgICBnX2Fzc2VydF9jbXBpbnQoZXZlbnRzLnNpemUoKSwgPT0sIDUpOworICAgIGdfYXNz
ZXJ0X2NtcGludChldmVudHNbMF0sID09LCBTaW5nbGVSZXNvdXJjZUxvYWRUZXN0OjpTdGFydGVk
KTsKKyAgICBnX2Fzc2VydF9jbXBpbnQoZXZlbnRzWzFdLCA9PSwgU2luZ2xlUmVzb3VyY2VMb2Fk
VGVzdDo6U2VudFJlcXVlc3QpOworICAgIGdfYXNzZXJ0X2NtcGludChldmVudHNbMl0sID09LCBT
aW5nbGVSZXNvdXJjZUxvYWRUZXN0OjpSZWNlaXZlZFJlc3BvbnNlKTsKKyAgICBnX2Fzc2VydF9j
bXBpbnQoZXZlbnRzWzNdLCA9PSwgU2luZ2xlUmVzb3VyY2VMb2FkVGVzdDo6UmVjZWl2ZWREYXRh
KTsKKyAgICBnX2Fzc2VydF9jbXBpbnQoZXZlbnRzWzRdLCA9PSwgU2luZ2xlUmVzb3VyY2VMb2Fk
VGVzdDo6RmluaXNoZWQpOworICAgIGV2ZW50cy5jbGVhcigpOworCisgICAgLy8gQ2FuY2VsIHJl
cXVlc3QuCisgICAgdGVzdC0+c2V0RXhwZWN0ZWRDYW5jZWxsZWRSZXNvdXJjZVVSSShrU2VydmVy
LT5nZXRVUklGb3JQYXRoKCIvY2FuY2VsLXRoaXMuanMiKSk7CisgICAgdGVzdC0+bG9hZFVSSShr
U2VydmVyLT5nZXRVUklGb3JQYXRoKCIvcmVzb3VyY2UtdG8tY2FuY2VsLmh0bWwiKS5kYXRhKCkp
OworICAgIHRlc3QtPndhaXRVbnRpbFJlc291cmNlTG9hZEZpbmlzaGVkKCk7CisgICAgZ19hc3Nl
cnQodGVzdC0+bV9yZXNvdXJjZSk7CisKKyAgICBnX2Fzc2VydF9jbXBpbnQoZXZlbnRzLnNpemUo
KSwgPT0sIDMpOworICAgIGdfYXNzZXJ0X2NtcGludChldmVudHNbMF0sID09LCBTaW5nbGVSZXNv
dXJjZUxvYWRUZXN0OjpTdGFydGVkKTsKKyAgICBnX2Fzc2VydF9jbXBpbnQoZXZlbnRzWzFdLCA9
PSwgU2luZ2xlUmVzb3VyY2VMb2FkVGVzdDo6RmFpbGVkKTsKKyAgICBnX2Fzc2VydF9jbXBpbnQo
ZXZlbnRzWzJdLCA9PSwgU2luZ2xlUmVzb3VyY2VMb2FkVGVzdDo6RmluaXNoZWQpOworICAgIGV2
ZW50cy5jbGVhcigpOworfQorCiBzdGF0aWMgdm9pZCBhZGRDYWNoZUhUVFBIZWFkZXJzVG9SZXNw
b25zZShTb3VwTWVzc2FnZSogbWVzc2FnZSkKIHsKICAgICAvLyBUaGUgYWN0dWFsIGRhdGUgZG9l
c24ndCByZWFsbHkgbWF0dGVyLgpAQCAtNjExLDYgKzY4MCwxMiBAQCBzdGF0aWMgdm9pZCBzZXJ2
ZXJDYWxsYmFjayhTb3VwU2VydmVyKiBzZXJ2ZXIsIFNvdXBNZXNzYWdlKiBtZXNzYWdlLCBjb25z
dCBjaGFyKgogICAgICAgICBzb3VwX21lc3NhZ2VfYm9keV9hcHBlbmQobWVzc2FnZS0+cmVzcG9u
c2VfYm9keSwgU09VUF9NRU1PUllfU1RBVElDLCBrSmF2YXNjcmlwdCwgc3RybGVuKGtKYXZhc2Ny
aXB0KSk7CiAgICAgICAgIHNvdXBfbWVzc2FnZV9oZWFkZXJzX2FwcGVuZChtZXNzYWdlLT5yZXNw
b25zZV9oZWFkZXJzLCAiQ29udGVudC1UeXBlIiwgInRleHQvamF2YXNjcmlwdCIpOwogICAgICAg
ICBzb3VwX21lc3NhZ2VfaGVhZGVyc19hcHBlbmQobWVzc2FnZS0+cmVzcG9uc2VfaGVhZGVycywg
IkNvbnRlbnQtRGlzcG9zaXRpb24iLCAiZmlsZW5hbWU9SmF2YVNjcmlwdC5qcyIpOworICAgIH0g
ZWxzZSBpZiAoZ19zdHJfZXF1YWwocGF0aCwgIi9yZWxhdGl2ZS1qYXZhc2NyaXB0Lmh0bWwiKSkg
eworICAgICAgICBzdGF0aWMgY29uc3QgY2hhciogamF2YXNjcmlwdFJlbGF0aXZlSFRNTCA9ICI8
aHRtbD48aGVhZD48c2NyaXB0IGxhbmd1YWdlPSdqYXZhc2NyaXB0JyBzcmM9J3JlbW92ZS10aGlz
L2phdmFzY3JpcHQuanMnPjwvc2NyaXB0PjwvaGVhZD48Ym9keT48L2JvZHk+PC9odG1sPiI7Cisg
ICAgICAgIHNvdXBfbWVzc2FnZV9ib2R5X2FwcGVuZChtZXNzYWdlLT5yZXNwb25zZV9ib2R5LCBT
T1VQX01FTU9SWV9TVEFUSUMsIGphdmFzY3JpcHRSZWxhdGl2ZUhUTUwsIHN0cmxlbihqYXZhc2Ny
aXB0UmVsYXRpdmVIVE1MKSk7CisgICAgfSBlbHNlIGlmIChnX3N0cl9lcXVhbChwYXRoLCAiL3Jl
c291cmNlLXRvLWNhbmNlbC5odG1sIikpIHsKKyAgICAgICAgc3RhdGljIGNvbnN0IGNoYXIqIHJl
c291cmNlVG9DYW5jZWxIVE1MID0gIjxodG1sPjxoZWFkPjxzY3JpcHQgbGFuZ3VhZ2U9J2phdmFz
Y3JpcHQnIHNyYz0nY2FuY2VsLXRoaXMuanMnPjwvc2NyaXB0PjwvaGVhZD48Ym9keT48L2JvZHk+
PC9odG1sPiI7CisgICAgICAgIHNvdXBfbWVzc2FnZV9ib2R5X2FwcGVuZChtZXNzYWdlLT5yZXNw
b25zZV9ib2R5LCBTT1VQX01FTU9SWV9TVEFUSUMsIHJlc291cmNlVG9DYW5jZWxIVE1MLCBzdHJs
ZW4ocmVzb3VyY2VUb0NhbmNlbEhUTUwpKTsKICAgICB9IGVsc2UgaWYgKGdfc3RyX2VxdWFsKHBh
dGgsICIvYmxhbmsuaWNvIikpIHsKICAgICAgICAgR093blB0cjxjaGFyPiBmaWxlUGF0aChnX2J1
aWxkX2ZpbGVuYW1lKFRlc3Q6OmdldFdlYktpdDFUZXN0UmVzb3VjZXNEaXIoKS5kYXRhKCksIHBh
dGgsIE5VTEwpKTsKICAgICAgICAgY2hhciogY29udGVudHM7CkBAIC02NDEsNiArNzE2LDggQEAg
dm9pZCBiZWZvcmVBbGwoKQogICAgIGtTZXJ2ZXIgPSBuZXcgV2ViS2l0VGVzdFNlcnZlcigpOwog
ICAgIGtTZXJ2ZXItPnJ1bihzZXJ2ZXJDYWxsYmFjayk7CiAKKyAgICB3ZWJraXRfd2ViX2NvbnRl
eHRfc2V0X3dlYl9leHRlbnNpb25zX2RpcmVjdG9yeSh3ZWJraXRfd2ViX2NvbnRleHRfZ2V0X2Rl
ZmF1bHQoKSwgV0VCS0lUX1RFU1RfV0VCX0VYVEVOU0lPTlNfRElSKTsKKwogICAgIFJlc291cmNl
c1Rlc3Q6OmFkZCgiV2ViS2l0V2ViVmlldyIsICJyZXNvdXJjZXMiLCB0ZXN0V2ViVmlld1Jlc291
cmNlcyk7CiAgICAgU2luZ2xlUmVzb3VyY2VMb2FkVGVzdDo6YWRkKCJXZWJLaXRXZWJSZXNvdXJj
ZSIsICJsb2FkaW5nIiwgdGVzdFdlYlJlc291cmNlTG9hZGluZyk7CiAgICAgU2luZ2xlUmVzb3Vy
Y2VMb2FkVGVzdDo6YWRkKCJXZWJLaXRXZWJSZXNvdXJjZSIsICJyZXNwb25zZSIsIHRlc3RXZWJS
ZXNvdXJjZVJlc3BvbnNlKTsKQEAgLTY0OSw2ICs3MjYsNyBAQCB2b2lkIGJlZm9yZUFsbCgpCiAg
ICAgUmVzb3VyY2VVUklUcmFja2luZ1Rlc3Q6OmFkZCgiV2ViS2l0V2ViUmVzb3VyY2UiLCAiYWN0
aXZlLXVyaSIsIHRlc3RXZWJSZXNvdXJjZUFjdGl2ZVVSSSk7CiAgICAgUmVzb3VyY2VzVGVzdDo6
YWRkKCJXZWJLaXRXZWJSZXNvdXJjZSIsICJnZXQtZGF0YSIsIHRlc3RXZWJSZXNvdXJjZUdldERh
dGEpOwogICAgIFNpbmdsZVJlc291cmNlTG9hZFRlc3Q6OmFkZCgiV2ViS2l0V2ViVmlldyIsICJo
aXN0b3J5LWNhY2hlIiwgdGVzdFdlYlZpZXdSZXNvdXJjZXNIaXN0b3J5Q2FjaGUpOworICAgIFNl
bmRSZXF1ZXN0VGVzdDo6YWRkKCJXZWJLaXRXZWJQYWdlIiwgInNlbmQtcmVxdWVzdCIsIHRlc3RX
ZWJSZXNvdXJjZVNlbmRSZXF1ZXN0KTsKIH0KIAogdm9pZCBhZnRlckFsbCgpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay90ZXN0cy9XZWJFeHRlbnNpb25UZXN0
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL3Rlc3RzL1dlYkV4dGVuc2lv
blRlc3QuY3BwCmluZGV4IGFhNjYwNDIuLmRhMzM5ZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL3Rlc3RzL1dlYkV4dGVuc2lvblRlc3QuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL3Rlc3RzL1dlYkV4dGVuc2lvblRlc3QuY3Bw
CkBAIC0yMCw2ICsyMCw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAKICNpbmNsdWRlIDxnaW8v
Z2lvLmg+CisjaW5jbHVkZSA8c3RyaW5nLmg+CiAjaW5jbHVkZSA8d2Via2l0Mi93ZWJraXQtd2Vi
LWV4dGVuc2lvbi5oPgogI2luY2x1ZGUgPHd0Zi9nb2JqZWN0L0dPd25QdHIuaD4KIApAQCAtNDYs
OSArNDcsMjUgQEAgc3RhdGljIHZvaWQgZG9jdW1lbnRMb2FkZWRDYWxsYmFjayhXZWJLaXRXZWJQ
YWdlKiwgZ3BvaW50ZXIgdXNlckRhdGEpCiAgICAgZ19hc3NlcnQob2spOwogfQogCitzdGF0aWMg
Z2Jvb2xlYW4gc2VuZFJlcXVlc3RDYWxsYmFjayhXZWJLaXRXZWJQYWdlKiwgV2ViS2l0VVJJUmVx
dWVzdCogcmVxdWVzdCwgV2ViS2l0VVJJUmVzcG9uc2UqLCBncG9pbnRlcikKK3sKKyAgICBjb25z
dCBjaGFyKiByZXF1ZXN0VVJJID0gd2Via2l0X3VyaV9yZXF1ZXN0X2dldF91cmkocmVxdWVzdCk7
CisgICAgZ19hc3NlcnQocmVxdWVzdFVSSSk7CisKKyAgICBpZiAoY29uc3QgY2hhciogc3VmZml4
ID0gZ19zdHJyc3RyKHJlcXVlc3RVUkksICIvcmVtb3ZlLXRoaXMvamF2YXNjcmlwdC5qcyIpKSB7
CisgICAgICAgIEdPd25QdHI8Y2hhcj4gcHJlZml4KGdfc3RybmR1cChyZXF1ZXN0VVJJLCBzdHJs
ZW4ocmVxdWVzdFVSSSkgLSBzdHJsZW4oc3VmZml4KSkpOworICAgICAgICBHT3duUHRyPGNoYXI+
IG5ld1VSSShnX3N0cmR1cF9wcmludGYoIiVzL2phdmFzY3JpcHQuanMiLCBwcmVmaXguZ2V0KCkp
KTsKKyAgICAgICAgd2Via2l0X3VyaV9yZXF1ZXN0X3NldF91cmkocmVxdWVzdCwgbmV3VVJJLmdl
dCgpKTsKKyAgICB9IGVsc2UgaWYgKGdfc3RyX2hhc19zdWZmaXgocmVxdWVzdFVSSSwgIi9jYW5j
ZWwtdGhpcy5qcyIpKQorICAgICAgICByZXR1cm4gVFJVRTsKKworICAgIHJldHVybiBGQUxTRTsK
K30KKwogc3RhdGljIHZvaWQgcGFnZUNyZWF0ZWRDYWxsYmFjayhXZWJLaXRXZWJFeHRlbnNpb24q
LCBXZWJLaXRXZWJQYWdlKiB3ZWJQYWdlLCBncG9pbnRlciB1c2VyRGF0YSkKIHsKICAgICBnX3Np
Z25hbF9jb25uZWN0KHdlYlBhZ2UsICJkb2N1bWVudC1sb2FkZWQiLCBHX0NBTExCQUNLKGRvY3Vt
ZW50TG9hZGVkQ2FsbGJhY2spLCB1c2VyRGF0YSk7CisgICAgZ19zaWduYWxfY29ubmVjdCh3ZWJQ
YWdlLCAic2VuZC1yZXF1ZXN0IiwgR19DQUxMQkFDSyhzZW5kUmVxdWVzdENhbGxiYWNrKSwgMCk7
CiB9CiAKIHN0YXRpYyB2b2lkIG1ldGhvZENhbGxDYWxsYmFjayhHREJ1c0Nvbm5lY3Rpb24qIGNv
bm5lY3Rpb24sIGNvbnN0IGNoYXIqIHNlbmRlciwgY29uc3QgY2hhciogb2JqZWN0UGF0aCwgY29u
c3QgY2hhciogaW50ZXJmYWNlTmFtZSwgY29uc3QgY2hhciogbWV0aG9kTmFtZSwgR1ZhcmlhbnQq
IHBhcmFtZXRlcnMsIEdEQnVzTWV0aG9kSW52b2NhdGlvbiogaW52b2NhdGlvbiwgZ3BvaW50ZXIg
dXNlckRhdGEpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay93
ZWJraXQybWFyc2hhbC5saXN0IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvd2Vi
a2l0Mm1hcnNoYWwubGlzdAppbmRleCBlZmQ5ZTA0Li40MjA3NjZlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay93ZWJraXQybWFyc2hhbC5saXN0CisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL3dlYmtpdDJtYXJzaGFsLmxpc3QKQEAgLTMs
NiArMyw3IEBAIEJPT0xFQU46RU5VTSxTVFJJTkcsUE9JTlRFUgogQk9PTEVBTjpPQkpFQ1QKIEJP
T0xFQU46T0JKRUNULEJPWEVELE9CSkVDVAogQk9PTEVBTjpPQkpFQ1QsRU5VTQorQk9PTEVBTjpP
QkpFQ1QsT0JKRUNUCiBCT09MRUFOOlNUUklORwogQk9PTEVBTjpWT0lECiBPQkpFQ1Q6Vk9JRApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Z3RrL1dlYktpdFdlYkV4dGVuc2lvbi5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvZ3RrL1dlYktpdFdlYkV4dGVuc2lvbi5oCmluZGV4IDcwNDI0NzYuLjY3
YTRjZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL2d0ay9XZWJLaXRXZWJFeHRlbnNpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvV2ViS2l0V2ViRXh0ZW5zaW9uLmgKQEAgLTI1
LDcgKzI1LDcgQEAKICNkZWZpbmUgV2ViS2l0V2ViRXh0ZW5zaW9uX2gKIAogI2luY2x1ZGUgPGds
aWItb2JqZWN0Lmg+Ci0jaW5jbHVkZSA8d2Via2l0Mi9XZWJLaXRXZWJFeHRlbnNpb25EZWZpbmVz
Lmg+CisjaW5jbHVkZSA8d2Via2l0Mi9XZWJLaXREZWZpbmVzLmg+CiAjaW5jbHVkZSA8d2Via2l0
Mi9XZWJLaXRXZWJQYWdlLmg+CiAKIEdfQkVHSU5fREVDTFMKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9XZWJLaXRXZWJFeHRlbnNp
b25EZWZpbmVzLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SS9ndGsvV2ViS2l0V2ViRXh0ZW5zaW9uRGVmaW5lcy5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCBhMWE2MzU5Li4wMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9XZWJLaXRXZWJFeHRlbnNpb25EZWZpbmVzLmgKKysrIC9k
ZXYvbnVsbApAQCAtMSw0NyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEyIElnYWxp
YSBTLkwuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0g
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgotICovCi0KLSNpZiAhZGVmaW5lZChfX1dFQktJVF9XRUJfRVhURU5TSU9OX0hf
SU5TSURFX18pICYmICFkZWZpbmVkKFdFQktJVDJfQ09NUElMQVRJT04pCi0jZXJyb3IgIk9ubHkg
PHdlYmtpdDIvd2Via2l0LXdlYi1leHRlbnNpb24uaD4gY2FuIGJlIGluY2x1ZGVkIGRpcmVjdGx5
LiIKLSNlbmRpZgotCi0jaWZuZGVmIFdlYktpdFdlYkV4dGVuc2lvbkRlZmluZXNfaAotI2RlZmlu
ZSBXZWJLaXRXZWJFeHRlbnNpb25EZWZpbmVzX2gKLQotI2luY2x1ZGUgPGdsaWIuaD4KLQotI2lm
ZGVmIEdfT1NfV0lOMzIKLSMgICAgaWZkZWYgQlVJTERJTkdfV0VCS0lUCi0jICAgICAgICBkZWZp
bmUgV0VCS0lUX0FQSSBfX2RlY2xzcGVjKGRsbGV4cG9ydCkKLSMgICAgZWxzZQotIyAgICAgICAg
ZGVmaW5lIFdFQktJVF9BUEkgX19kZWNsc3BlYyhkbGxpbXBvcnQpCi0jICAgIGVuZGlmCi0jICAg
IGRlZmluZSBXRUJLSVRfT0JTT0xFVEVfQVBJIFdFQktJVF9BUEkKLSNlbHNlCi0jICAgIGRlZmlu
ZSBXRUJLSVRfQVBJIF9fYXR0cmlidXRlX18oKHZpc2liaWxpdHkoImRlZmF1bHQiKSkpCi0jICAg
IGRlZmluZSBXRUJLSVRfT0JTT0xFVEVfQVBJIFdFQktJVF9BUEkgX19hdHRyaWJ1dGVfXygoZGVw
cmVjYXRlZCkpCi0jZW5kaWYKLQotI2VuZGlmIC8vIFdlYktpdFdlYkV4dGVuc2lvbkRlZmluZXNf
aApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvZ3RrL1dlYktpdFdlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvZ3RrL1dlYktpdFdlYlBhZ2UuY3BwCmluZGV4IDRmYmZjNDUuLjNkZjQx
MjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL2d0ay9XZWJLaXRXZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0FQSS9ndGsvV2ViS2l0V2ViUGFnZS5jcHAKQEAgLTI2LDcgKzI2LDEw
IEBACiAjaW5jbHVkZSAiV0tCdW5kbGVGcmFtZS5oIgogI2luY2x1ZGUgIldlYkZyYW1lLmgiCiAj
aW5jbHVkZSAiV2ViS2l0RE9NRG9jdW1lbnRQcml2YXRlLmgiCisjaW5jbHVkZSAiV2ViS2l0TWFy
c2hhbC5oIgogI2luY2x1ZGUgIldlYktpdFByaXZhdGUuaCIKKyNpbmNsdWRlICJXZWJLaXRVUklS
ZXF1ZXN0UHJpdmF0ZS5oIgorI2luY2x1ZGUgIldlYktpdFVSSVJlc3BvbnNlUHJpdmF0ZS5oIgog
I2luY2x1ZGUgIldlYktpdFdlYlBhZ2VQcml2YXRlLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzcy5o
IgogI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWUuaD4KQEAgLTM2LDYgKzM5LDcgQEAgdXNpbmcgbmFt
ZXNwYWNlIFdlYkNvcmU7CiAKIGVudW0gewogICAgIERPQ1VNRU5UX0xPQURFRCwKKyAgICBTRU5E
X1JFUVVFU1QsCiAKICAgICBMQVNUX1NJR05BTAogfTsKQEAgLTY2LDE4ICs3MCwyNyBAQCBzdGF0
aWMgdm9pZCBkaWRJbml0aWF0ZUxvYWRGb3JSZXNvdXJjZShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwg
V0tCdW5kbGVGcmFtZVJlZiBmcgogICAgIFdlYlByb2Nlc3M6OnNoYXJlZCgpLmluamVjdGVkQnVu
ZGxlKCktPnBvc3RNZXNzYWdlKFN0cmluZzo6ZnJvbVVURjgoIldlYlBhZ2UuRGlkSW5pdGlhdGVM
b2FkRm9yUmVzb3VyY2UiKSwgSW1tdXRhYmxlRGljdGlvbmFyeTo6YWRvcHQobWVzc2FnZSkuZ2V0
KCkpOwogfQogCi1zdGF0aWMgV0tVUkxSZXF1ZXN0UmVmIHdpbGxTZW5kUmVxdWVzdEZvckZyYW1l
KFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBXS0J1bmRsZUZyYW1lUmVmLCB1aW50NjRfdCBpZGVudGlm
aWVyLCBXS1VSTFJlcXVlc3RSZWYgcmVxdWVzdCwgV0tVUkxSZXNwb25zZVJlZiByZWRpcmVjdFJl
c3BvbnNlLCBjb25zdCB2b2lkKikKK3N0YXRpYyBXS1VSTFJlcXVlc3RSZWYgd2lsbFNlbmRSZXF1
ZXN0Rm9yRnJhbWUoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdLQnVuZGxlRnJhbWVSZWYsIHVpbnQ2
NF90IGlkZW50aWZpZXIsIFdLVVJMUmVxdWVzdFJlZiB3a1JlcXVlc3QsIFdLVVJMUmVzcG9uc2VS
ZWYgd2tSZWRpcmVjdFJlc3BvbnNlLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQogeworICAgIEdS
ZWZQdHI8V2ViS2l0VVJJUmVxdWVzdD4gcmVxdWVzdCA9IGFkb3B0R1JlZih3ZWJraXRVUklSZXF1
ZXN0Q3JlYXRlRm9yUmVzb3VyY2VSZXF1ZXN0KHRvSW1wbCh3a1JlcXVlc3QpLT5yZXNvdXJjZVJl
cXVlc3QoKSkpOworICAgIEdSZWZQdHI8V2ViS2l0VVJJUmVzcG9uc2U+IHJlZGlyZWN0UmVzcG9u
c2UgPSB3a1JlZGlyZWN0UmVzcG9uc2UgPyBhZG9wdEdSZWYod2Via2l0VVJJUmVzcG9uc2VDcmVh
dGVGb3JSZXNvdXJjZVJlc3BvbnNlKHRvSW1wbCh3a1JlZGlyZWN0UmVzcG9uc2UpLT5yZXNvdXJj
ZVJlc3BvbnNlKCkpKSA6IDA7CisKKyAgICBnYm9vbGVhbiByZXR1cm5WYWx1ZTsKKyAgICBnX3Np
Z25hbF9lbWl0KFdFQktJVF9XRUJfUEFHRShjbGllbnRJbmZvKSwgc2lnbmFsc1tTRU5EX1JFUVVF
U1RdLCAwLCByZXF1ZXN0LmdldCgpLCByZWRpcmVjdFJlc3BvbnNlLmdldCgpLCAmcmV0dXJuVmFs
dWUpOworICAgIGlmIChyZXR1cm5WYWx1ZSkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICBXZWJV
UkxSZXF1ZXN0KiBuZXdSZXF1ZXN0ID0gV2ViVVJMUmVxdWVzdDo6Y3JlYXRlKHdlYmtpdFVSSVJl
cXVlc3RHZXRSZXNvdXJjZVJlcXVlc3QocmVxdWVzdC5nZXQoKSkpLmxlYWtSZWYoKTsKKwogICAg
IEltbXV0YWJsZURpY3Rpb25hcnk6Ok1hcFR5cGUgbWVzc2FnZTsKICAgICBtZXNzYWdlLnNldChT
dHJpbmc6OmZyb21VVEY4KCJQYWdlIiksIHRvSW1wbChwYWdlKSk7CiAgICAgbWVzc2FnZS5zZXQo
U3RyaW5nOjpmcm9tVVRGOCgiSWRlbnRpZmllciIpLCBXZWJVSW50NjQ6OmNyZWF0ZShpZGVudGlm
aWVyKSk7Ci0gICAgbWVzc2FnZS5zZXQoU3RyaW5nOjpmcm9tVVRGOCgiUmVxdWVzdCIpLCB0b0lt
cGwocmVxdWVzdCkpOwotICAgIGlmICghdG9JbXBsKHJlZGlyZWN0UmVzcG9uc2UpLT5yZXNvdXJj
ZVJlc3BvbnNlKCkuaXNOdWxsKCkpCi0gICAgICAgIG1lc3NhZ2Uuc2V0KFN0cmluZzo6ZnJvbVVU
RjgoIlJlZGlyZWN0UmVzcG9uc2UiKSwgdG9JbXBsKHJlZGlyZWN0UmVzcG9uc2UpKTsKKyAgICBt
ZXNzYWdlLnNldChTdHJpbmc6OmZyb21VVEY4KCJSZXF1ZXN0IiksIG5ld1JlcXVlc3QpOworICAg
IGlmICghdG9JbXBsKHdrUmVkaXJlY3RSZXNwb25zZSktPnJlc291cmNlUmVzcG9uc2UoKS5pc051
bGwoKSkKKyAgICAgICAgbWVzc2FnZS5zZXQoU3RyaW5nOjpmcm9tVVRGOCgiUmVkaXJlY3RSZXNw
b25zZSIpLCB0b0ltcGwod2tSZWRpcmVjdFJlc3BvbnNlKSk7CiAgICAgV2ViUHJvY2Vzczo6c2hh
cmVkKCkuaW5qZWN0ZWRCdW5kbGUoKS0+cG9zdE1lc3NhZ2UoU3RyaW5nOjpmcm9tVVRGOCgiV2Vi
UGFnZS5EaWRTZW5kUmVxdWVzdEZvclJlc291cmNlIiksIEltbXV0YWJsZURpY3Rpb25hcnk6OmFk
b3B0KG1lc3NhZ2UpLmdldCgpKTsKIAotICAgIFdLUmV0YWluKHJlcXVlc3QpOwotICAgIHJldHVy
biByZXF1ZXN0OworICAgIHJldHVybiB0b0FQSShuZXdSZXF1ZXN0KTsKIH0KIAogc3RhdGljIHZv
aWQgZGlkUmVjZWl2ZVJlc3BvbnNlRm9yUmVzb3VyY2UoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdL
QnVuZGxlRnJhbWVSZWYsIHVpbnQ2NF90IGlkZW50aWZpZXIsIFdLVVJMUmVzcG9uc2VSZWYgcmVz
cG9uc2UsIGNvbnN0IHZvaWQqKQpAQCAtMTM0LDYgKzE0NywzNyBAQCBzdGF0aWMgdm9pZCB3ZWJr
aXRfd2ViX3BhZ2VfY2xhc3NfaW5pdChXZWJLaXRXZWJQYWdlQ2xhc3MqIGtsYXNzKQogICAgICAg
ICAwLCAwLCAwLAogICAgICAgICBnX2NjbG9zdXJlX21hcnNoYWxfVk9JRF9fT0JKRUNULAogICAg
ICAgICBHX1RZUEVfTk9ORSwgMCk7CisKKyAgICAvKioKKyAgICAgKiBXZWJLaXRXZWJQYWdlOjpz
ZW5kLXJlcXVlc3Q6CisgICAgICogQHdlYl9wYWdlOiB0aGUgI1dlYktpdFdlYlBhZ2Ugb24gd2hp
Y2ggdGhlIHNpZ25hbCBpcyBlbWl0dGVkCisgICAgICogQHJlcXVlc3Q6IGEgI1dlYktpdFVSSVJl
cXVlc3QKKyAgICAgKiBAcmVkaXJlY3RlZF9yZXNwb25zZTogYSAjV2ViS2l0VVJJUmVzcG9uc2Us
IG9yICVOVUxMCisgICAgICoKKyAgICAgKiBUaGlzIHNpZ25hbCBpcyBlbWl0dGVkIHdoZW4gQHJl
cXVlc3QgaXMgYWJvdXQgdG8gYmUgc2VudCB0bworICAgICAqIHRoZSBzZXJ2ZXIuIFRoaXMgc2ln
bmFsIGNhbiBiZSB1c2VkIHRvIG1vZGlmeSB0aGUgI1dlYktpdFVSSVJlcXVlc3QKKyAgICAgKiB0
aGF0IHdpbGwgYmUgc2VudCB0byB0aGUgc2VydmVyLiBZb3UgY2FuIGFsc28gY2FuY2VsIHRoZSBy
ZXNvdXJjZSBsb2FkCisgICAgICogb3BlcmF0aW9uIGJ5IGNvbm5lY3RpbmcgdG8gdGhpcyBzaWdu
YWwgYW5kIHJldHVybmluZyAlVFJVRS4KKyAgICAgKgorICAgICAqIEluIGNhc2Ugb2YgYSBzZXJ2
ZXIgcmVkaXJlY3Rpb24gdGhpcyBzaWduYWwgaXMKKyAgICAgKiBlbWl0dGVkIGFnYWluIHdpdGgg
dGhlIEByZXF1ZXN0IGFyZ3VtZW50IGNvbnRhaW5pbmcgdGhlIG5ldworICAgICAqIHJlcXVlc3Qg
dG8gYmUgc2VudCB0byB0aGUgc2VydmVyIGR1ZSB0byB0aGUgcmVkaXJlY3Rpb24gYW5kIHRoZQor
ICAgICAqIEByZWRpcmVjdGVkX3Jlc3BvbnNlIHBhcmFtZXRlciBjb250YWluaW5nIHRoZSByZXNw
b25zZQorICAgICAqIHJlY2VpdmVkIGJ5IHRoZSBzZXJ2ZXIgZm9yIHRoZSBpbml0aWFsIHJlcXVl
c3QuCisgICAgICoKKyAgICAgKiBSZXR1cm5zOiAlVFJVRSB0byBzdG9wIG90aGVyIGhhbmRsZXJz
IGZyb20gYmVpbmcgaW52b2tlZCBmb3IgdGhlIGV2ZW50LgorICAgICAqICAgICVGQUxTRSB0byBj
b250aW51ZSBlbWlzc2lvbiBvZiB0aGUgZXZlbnQuCisgICAgICovCisgICAgc2lnbmFsc1tTRU5E
X1JFUVVFU1RdID0gZ19zaWduYWxfbmV3KAorICAgICAgICAic2VuZC1yZXF1ZXN0IiwKKyAgICAg
ICAgR19UWVBFX0ZST01fQ0xBU1Moa2xhc3MpLAorICAgICAgICBHX1NJR05BTF9SVU5fTEFTVCwK
KyAgICAgICAgMCwKKyAgICAgICAgZ19zaWduYWxfYWNjdW11bGF0b3JfdHJ1ZV9oYW5kbGVkLCAw
LAorICAgICAgICB3ZWJraXRfbWFyc2hhbF9CT09MRUFOX19PQkpFQ1RfT0JKRUNULAorICAgICAg
ICBHX1RZUEVfQk9PTEVBTiwgMiwKKyAgICAgICAgV0VCS0lUX1RZUEVfVVJJX1JFUVVFU1QsCisg
ICAgICAgIFdFQktJVF9UWVBFX1VSSV9SRVNQT05TRSk7CiB9CiAKIFdlYktpdFdlYlBhZ2UqIHdl
YmtpdFdlYlBhZ2VDcmVhdGUoV2ViUGFnZSogd2ViUGFnZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9XZWJLaXRXZWJQYWdlLmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvV2ViS2l0
V2ViUGFnZS5oCmluZGV4IGQ4ZjYyMzYuLjQ1ZTJiZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9XZWJLaXRXZWJQYWdlLmgKKysr
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL1dlYktp
dFdlYlBhZ2UuaApAQCAtMjUsNyArMjUsNyBAQAogI2RlZmluZSBXZWJLaXRXZWJQYWdlX2gKIAog
I2luY2x1ZGUgPGdsaWItb2JqZWN0Lmg+Ci0jaW5jbHVkZSA8d2Via2l0Mi9XZWJLaXRXZWJFeHRl
bnNpb25EZWZpbmVzLmg+CisjaW5jbHVkZSA8d2Via2l0Mi9XZWJLaXREZWZpbmVzLmg+CiAjaW5j
bHVkZSA8d2Via2l0ZG9tL3dlYmtpdGRvbS5oPgogCiBHX0JFR0lOX0RFQ0xTCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvd2Via2l0
LXdlYi1leHRlbnNpb24uaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL2d0ay93ZWJraXQtd2ViLWV4dGVuc2lvbi5oCmluZGV4IGU1ZWYzNWEuLmZmYmI1NTcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L2d0ay93ZWJraXQtd2ViLWV4dGVuc2lvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay93ZWJraXQtd2ViLWV4dGVuc2lvbi5oCkBAIC0yMiw2
ICsyMiw4IEBACiAKICNkZWZpbmUgX19XRUJLSVRfV0VCX0VYVEVOU0lPTl9IX0lOU0lERV9fCiAK
KyNpbmNsdWRlIDx3ZWJraXQyL1dlYktpdFVSSVJlcXVlc3QuaD4KKyNpbmNsdWRlIDx3ZWJraXQy
L1dlYktpdFVSSVJlc3BvbnNlLmg+CiAjaW5jbHVkZSA8d2Via2l0Mi9XZWJLaXRXZWJFeHRlbnNp
b24uaD4KICNpbmNsdWRlIDx3ZWJraXQyL1dlYktpdFdlYlBhZ2UuaD4KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>198735</attachid>
            <date>2013-04-18 07:57:00 -0700</date>
            <delta_ts>2013-04-18 08:52:27 -0700</delta_ts>
            <desc>Rebased to current git master</desc>
            <filename>wk2-send-request.diff</filename>
            <type>text/plain</type>
            <size>32996</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCBhN2MxZGMzLi5iZGYyNDdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjYg
QEAKKzIwMTMtMDQtMTggIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29t
PgorCisgICAgICAgIFtHVEtdIEFkZCBXZWJLaXRXZWJQYWdlOjpzZW5kLXJlcXVlc3Qgc2lnbmFs
IHRvIFdlYktpdDIgR1RLKyBBUEkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTgzNjgxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgQWRkIFdlYktpdFdlYlBhZ2U6OnNlbmQtcmVxdWVzdCBzaWduYWwgZW1pdHRl
ZCBpbiB3aWxsU2VuZFJlcXVlc3QKKyAgICAgICAgY2FsbGJhY2sgdG8gYWxsb3cgd2ViIHByb2Nl
c3MgZXh0ZW5zaW9ucyB0byBtb2RpZnkgcmVxdWVzdHMgYmVmb3JlCisgICAgICAgIHRoZXkgYXJl
IHNlbnQgb3IgY2FuY2VsIHRoZSByZXNvdXJjZSBsb2FkLgorICAgICAgICBUaGlzIHBhdGNoIG1h
a2VzIFdlYktpdFVSSVJlcXVlc3QgYW5kIFdlYktpdFVSSVJlc3BvbnNlIG9iamVjdHMKKyAgICAg
ICAgc2hhcmVhYmxlIGJldHdlZW4gVUkgcHJvY2VzcyBhbmQgd2ViIGV4dGVuc2lvbnMgQVBJcy4g
U2luY2UgYm90aAorICAgICAgICBBUElzIGZvcmNlIHNpbmdsZSBoZWFkZXIgaW5jbHVkZXMsIHRo
ZSBXZWJLaXREZWZpbmVzLmggaGVhZGVyIGhhcworICAgICAgICBiZWVuIHNwbGl0IG1vdmluZyB0
aGUgZm9yd2FyZCBkZWNsYXJhdGlvbnMgc3BlY2lmaWMgdG8gdGhlIFVJCisgICAgICAgIHByb2Nl
c3MgQVBJIHRvIGEgbmV3IGZpbGUgV2ViS2l0Rm9yd2FyZERlY2xhcmF0aW9ucy5oLiBUaGlzIHdh
eSB3ZQorICAgICAgICBjYW4gYWxzbyAgc2hhcmUgdGhlIFdlYktpdERlZmluZXMuaCBoZWFkZXIg
YW5kIHJlbW92ZSB0aGUKKyAgICAgICAgV2ViS2l0V2ViRXh0ZW5zaW9uRGVmaW5lcy5oIGhlYWRl
ciB1c2VkIGluIHRoZSB3ZWIgZXh0ZW5zaW9ucyBBUEkuCisKKyAgICAgICAgKiBHTlVtYWtlZmls
ZS5saXN0LmFtOiBBZGQgbmV3IGZpbGVzIHRvIGNvbXBpbGF0aW9uLgorICAgICAgICAqIFVJUHJv
Y2Vzcy9BUEkvZ3RrL1dlYktpdENvbnRleHRNZW51Lmg6IEluY2x1ZGUgV2ViS2l0Rm9yd2FyZC5o
LgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdENvbnRleHRNZW51SXRlbS5oOiBE
aXR0by4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXREZWZpbmVzLmg6IFJlbW92
ZSBmb3J3YXJkIGRlY2xhcmF0aW9ucy4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJL
aXREb3dubG9hZC5oOiBJbmNsdWRlIFdlYktpdEZvcndhcmQuaC4KKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL2d0ay9XZWJLaXRGaW5kQ29udHJvbGxlci5oOiBEaXR0by4KKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL2d0ay9XZWJLaXRGb3J3YXJkRGVjbGFyYXRpb25zLmg6IEFkZGVkLiBDb250YWlu
cworICAgICAgICB0aGUgZm9yd2FyZCBkZWNsYXJhdGlvbnMgbW92ZWQgZnJvbSBXZWJLaXREZWZp
bmVzLmguCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0UHJpbnRPcGVyYXRpb24u
aDogSW5jbHVkZSBXZWJLaXRGb3J3YXJkLmguCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsv
V2ViS2l0VVJJUmVxdWVzdC5jcHA6CisgICAgICAgICh3ZWJraXRVUklSZXF1ZXN0U2V0UHJvcGVy
dHkpOiBVc2Ugd2Via2l0X3VyaV9yZXF1ZXN0X3NldF91cmkoKSB0bworICAgICAgICBzZXQgdGhl
IG5ldyBVUkkuCisgICAgICAgICh3ZWJraXRfdXJpX3JlcXVlc3RfY2xhc3NfaW5pdCk6IE1ha2Ug
VVJJIHByb3BlcnR5IGNvbnN0cnVjdAorICAgICAgICBpbnN0ZWFkIG9mIGNvbnN0cnVjdC1vbmx5
LCBzaW5jZSBpdCBjYW4gYmUgdXBkYXRlZCBvbmNlCisgICAgICAgIGNvbnN0cnVjdGVkLiBJdCBz
aG91bGQgbmV2ZXIgYmUgTlVMTCwgc28gc2V0IGRlZmF1bHQgdmFsdWUgdG8KKyAgICAgICAgYWJv
dXQ6YmxhbmsgaW5zdGFkIG9mIE5VTEwuCisgICAgICAgICh3ZWJraXRfdXJpX3JlcXVlc3Rfc2V0
X3VyaSk6IE5ldyBwdWJsaWMgbWV0aG9kIHRvIHNldCB0aGUgVVJJIG9mCisgICAgICAgIHRoZSBX
ZWJLaXRVUklSZXF1ZXN0LgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVSSVJl
cXVlc3QuaDogQWxsb3cgdG8gaW5jbHVkZSB0aGlzIGZpbGUKKyAgICAgICAgZnJvbSB3ZWJraXQt
d2ViLWV4dGVuc2lvbi5oLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVSSVJl
c3BvbnNlLmg6IERpdHRvLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVSSVNj
aGVtZVJlcXVlc3QuaDogSW5jbHVkZQorICAgICAgICBXZWJLaXRGb3J3YXJkLmguCisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlldy5oOiBEaXR0by4KKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJndGstc2VjdGlvbnMudHh0OiBBZGQKKyAgICAg
ICAgd2Via2l0X3VyaV9yZXF1ZXN0X3NldF91cmkuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9n
dGsvdGVzdHMvVGVzdFJlc291cmNlcy5jcHA6CisgICAgICAgICh0ZXN0V2ViUmVzb3VyY2VTZW5k
UmVxdWVzdCk6CisgICAgICAgIChzZXJ2ZXJDYWxsYmFjayk6CisgICAgICAgIChiZWZvcmVBbGwp
OgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL3Rlc3RzL1dlYkV4dGVuc2lvblRlc3QuY3Bw
OgorICAgICAgICAoc2VuZFJlcXVlc3RDYWxsYmFjayk6CisgICAgICAgIChwYWdlQ3JlYXRlZENh
bGxiYWNrKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay93ZWJraXQybWFyc2hhbC5saXN0
OgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9XZWJLaXRXZWJF
eHRlbnNpb24uaDogSW5jbHVkZQorICAgICAgICBXZWJLaXREZWZpbmVzLmggaW5zdGVhZCBvZiBX
ZWJLaXRXZWJFeHRlbnNpb25EZWZpbmVzLmguCisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvZ3RrL1dlYktpdFdlYlBhZ2UuY3BwOgorICAgICAgICAod2lsbFNlbmRSZXF1
ZXN0Rm9yRnJhbWUpOiBFbWl0IFdlYktpdFdlYlBhZ2U6OnNlbmQtcmVxdWVzdCBhbmQKKyAgICAg
ICAgcmV0dXJuIGVhcmx5IGlmIHRoZSBsb2FkIGlzIGNhbmNlbGxlZC4KKyAgICAgICAgKHdlYmtp
dF93ZWJfcGFnZV9jbGFzc19pbml0KTogQWRkIFdlYktpdFdlYlBhZ2U6OnNlbmQtcmVxdWVzdAor
ICAgICAgICBzaWduYWwuCisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Z3RrL1dlYktpdFdlYlBhZ2UuaDogSW5jbHVkZQorICAgICAgICBXZWJLaXREZWZpbmVzLmggaW5z
dGVhZCBvZiBXZWJLaXRXZWJFeHRlbnNpb25EZWZpbmVzLmguCisgICAgICAgICogV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL3dlYmtpdC13ZWItZXh0ZW5zaW9uLmg6CisKIDIwMTMt
MDQtMTggIE1hbnVlbCBSZWdvIENhc2Fzbm92YXMgIDxyZWdvQGlnYWxpYS5jb20+CiAKICAgICAg
ICAgW0dUS11bV0syXSBBZGQgV2ViS2l0V2ViUGFnZTo6d2Via2l0X3dlYl9wYWdlX2dldF91cmkg
dG8gV2ViS2l0MiBHVEsrIEFQSQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvR05VbWFrZWZp
bGUubGlzdC5hbSBiL1NvdXJjZS9XZWJLaXQyL0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5kZXggZTYy
ODJjMi4uZDY1YzdkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvR05VbWFrZWZpbGUubGlz
dC5hbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC0xMDcsNiAr
MTA3LDcgQEAgd2Via2l0Mmd0a19oX2FwaSArPSBcCiAJJChXZWJLaXQyKS9VSVByb2Nlc3MvQVBJ
L2d0ay9XZWJLaXRGaWxlQ2hvb3NlclJlcXVlc3QuaCBcCiAJJChXZWJLaXQyKS9VSVByb2Nlc3Mv
QVBJL2d0ay9XZWJLaXRGaW5kQ29udHJvbGxlci5oIFwKIAkkKFdlYktpdDIpL1VJUHJvY2Vzcy9B
UEkvZ3RrL1dlYktpdEZvcm1TdWJtaXNzaW9uUmVxdWVzdC5oIFwKKwkkKFdlYktpdDIpL1VJUHJv
Y2Vzcy9BUEkvZ3RrL1dlYktpdEZvcndhcmREZWNsYXJhdGlvbnMuaCBcCiAJJChXZWJLaXQyKS9V
SVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0LmggXAog
CSQoV2ViS2l0MikvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0SGl0VGVzdFJlc3VsdC5oIFwKIAkk
KFdlYktpdDIpL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEphdmFzY3JpcHRSZXN1bHQuaCBcCkBA
IC0xMzMsNyArMTM0LDYgQEAgd2Via2l0Mmd0a19oX2FwaSArPSBcCiAKIHdlYmtpdDJfd2ViX2V4
dGVuc2lvbl9oX2FwaSArPSBcCiAJJChXZWJLaXQyKS9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9ndGsvV2ViS2l0V2ViRXh0ZW5zaW9uLmggXAotCSQoV2ViS2l0MikvV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvZ3RrL1dlYktpdFdlYkV4dGVuc2lvbkRlZmluZXMuaCBcCiAJJChX
ZWJLaXQyKS9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvV2ViS2l0V2ViUGFnZS5o
IFwKIAkkKFdlYktpdDIpL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay93ZWJraXQt
d2ViLWV4dGVuc2lvbi5oCiAKQEAgLTY4OCw2ICs2ODgsNyBAQCB3ZWJraXQyX3NvdXJjZXMgKz0g
XAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEZvcm1TdWJtaXNzaW9u
UmVxdWVzdFByaXZhdGUuaCBcCiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2Vi
S2l0Rm9ybUNsaWVudC5jcHAgXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dl
YktpdEZvcm1DbGllbnQuaCBcCisJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2Vi
S2l0Rm9yd2FyZERlY2xhcmF0aW9ucy5oIFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2d0ay9XZWJLaXRGdWxsc2NyZWVuQ2xpZW50LmNwcCBcCiAJU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9ndGsvV2ViS2l0RnVsbHNjcmVlbkNsaWVudC5oIFwKIAlTb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0LmNwcCBc
CkBAIC0xMDM4LDcgKzEwMzksNiBAQCB3ZWJraXQyX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9XZWJLaXRXZWJFeHRlbnNpb24u
Y3BwIFwKIAlTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsv
V2ViS2l0V2ViRXh0ZW5zaW9uLmggXAogCVNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvQVBJL2d0ay9XZWJLaXRXZWJFeHRlbnNpb25Qcml2YXRlLmggXAotCVNvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9XZWJLaXRXZWJFeHRlbnNp
b25EZWZpbmVzLmggXAogCVNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL2d0ay9XZWJLaXRXZWJQYWdlLmNwcCBcCiAJU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvZ3RrL1dlYktpdFdlYlBhZ2UuaCBcCiAJU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL1dlYktpdFdlYlBhZ2VQcml2YXRlLmgg
XApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0Q29u
dGV4dE1lbnUuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdENvbnRl
eHRNZW51LmgKaW5kZXggOWRmM2Y0Yy4uOTZkMGVjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0Q29udGV4dE1lbnUuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRDb250ZXh0TWVudS5oCkBAIC0yNyw2ICsyNyw3
IEBACiAjaW5jbHVkZSA8Z2xpYi1vYmplY3QuaD4KICNpbmNsdWRlIDx3ZWJraXQyL1dlYktpdENv
bnRleHRNZW51SXRlbS5oPgogI2luY2x1ZGUgPHdlYmtpdDIvV2ViS2l0RGVmaW5lcy5oPgorI2lu
Y2x1ZGUgPHdlYmtpdDIvV2ViS2l0Rm9yd2FyZERlY2xhcmF0aW9ucy5oPgogCiBHX0JFR0lOX0RF
Q0xTCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktp
dENvbnRleHRNZW51SXRlbS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2Vi
S2l0Q29udGV4dE1lbnVJdGVtLmgKaW5kZXggNTJkOTEyOC4uM2YxYzhlOCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0Q29udGV4dE1lbnVJdGVtLmgK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0Q29udGV4dE1lbnVJ
dGVtLmgKQEAgLTI4LDYgKzI4LDcgQEAKICNpbmNsdWRlIDx3ZWJraXQyL1dlYktpdERlZmluZXMu
aD4KICNpbmNsdWRlIDx3ZWJraXQyL1dlYktpdENvbnRleHRNZW51Lmg+CiAjaW5jbHVkZSA8d2Vi
a2l0Mi9XZWJLaXRDb250ZXh0TWVudUFjdGlvbnMuaD4KKyNpbmNsdWRlIDx3ZWJraXQyL1dlYktp
dEZvcndhcmREZWNsYXJhdGlvbnMuaD4KIAogR19CRUdJTl9ERUNMUwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXREZWZpbmVzLmggYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXREZWZpbmVzLmgKaW5kZXggNzMzYmY4OC4u
OGI2Mzc2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2Vi
S2l0RGVmaW5lcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktp
dERlZmluZXMuaApAQCAtMjMsNyArMjMsNyBAQAogICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgogICovCiAKLSNpZiAhZGVmaW5lZChfX1dFQktJVDJfSF9JTlNJREVfXykgJiYgIWRl
ZmluZWQoV0VCS0lUMl9DT01QSUxBVElPTikKKyNpZiAhZGVmaW5lZChfX1dFQktJVDJfSF9JTlNJ
REVfXykgJiYgIWRlZmluZWQoV0VCS0lUMl9DT01QSUxBVElPTikgJiYgIWRlZmluZWQoX19XRUJL
SVRfV0VCX0VYVEVOU0lPTl9IX0lOU0lERV9fKQogI2Vycm9yICJPbmx5IDx3ZWJraXQyL3dlYmtp
dDIuaD4gY2FuIGJlIGluY2x1ZGVkIGRpcmVjdGx5LiIKICNlbmRpZgogCkBAIC0zMiwxMiArMzIs
NiBAQAogCiAjaW5jbHVkZSA8Z2xpYi5oPgogCi10eXBlZGVmIHN0cnVjdCBfV2ViS2l0UHJpbnRP
cGVyYXRpb24gIFdlYktpdFByaW50T3BlcmF0aW9uOwotdHlwZWRlZiBzdHJ1Y3QgX1dlYktpdEZp
bmRDb250cm9sbGVyICBXZWJLaXRGaW5kQ29udHJvbGxlcjsKLXR5cGVkZWYgc3RydWN0IF9XZWJL
aXRXZWJWaWV3ICAgICAgICAgV2ViS2l0V2ViVmlldzsKLXR5cGVkZWYgc3RydWN0IF9XZWJLaXRD
b250ZXh0TWVudSAgICAgV2ViS2l0Q29udGV4dE1lbnU7Ci10eXBlZGVmIHN0cnVjdCBfV2ViS2l0
Q29udGV4dE1lbnVJdGVtIFdlYktpdENvbnRleHRNZW51SXRlbTsKLQogI2lmZGVmIEdfT1NfV0lO
MzIKICMgICAgaWZkZWYgQlVJTERJTkdfV0VCS0lUCiAjICAgICAgICBkZWZpbmUgV0VCS0lUX0FQ
SSBfX2RlY2xzcGVjKGRsbGV4cG9ydCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvZ3RrL1dlYktpdERvd25sb2FkLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL2d0ay9XZWJLaXREb3dubG9hZC5oCmluZGV4IDQ0OGJlYmYuLjgwYzdiNmYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdERvd25sb2FkLmgKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0RG93bmxvYWQuaApAQCAt
MjYsNiArMjYsNyBAQAogCiAjaW5jbHVkZSA8Z2xpYi1vYmplY3QuaD4KICNpbmNsdWRlIDx3ZWJr
aXQyL1dlYktpdERlZmluZXMuaD4KKyNpbmNsdWRlIDx3ZWJraXQyL1dlYktpdEZvcndhcmREZWNs
YXJhdGlvbnMuaD4KICNpbmNsdWRlIDx3ZWJraXQyL1dlYktpdFVSSVJlcXVlc3QuaD4KICNpbmNs
dWRlIDx3ZWJraXQyL1dlYktpdFVSSVJlc3BvbnNlLmg+CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEZpbmRDb250cm9sbGVyLmggYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRGaW5kQ29udHJvbGxlci5oCmluZGV4IDNh
NDdmOTkuLjBmN2JkZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Z3RrL1dlYktpdEZpbmRDb250cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9ndGsvV2ViS2l0RmluZENvbnRyb2xsZXIuaApAQCAtMjYsNiArMjYsNyBAQAogCiAjaW5j
bHVkZSA8Z2xpYi1vYmplY3QuaD4KICNpbmNsdWRlIDx3ZWJraXQyL1dlYktpdERlZmluZXMuaD4K
KyNpbmNsdWRlIDx3ZWJraXQyL1dlYktpdEZvcndhcmREZWNsYXJhdGlvbnMuaD4KIAogR19CRUdJ
Tl9ERUNMUwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9X
ZWJLaXRGb3J3YXJkRGVjbGFyYXRpb25zLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2d0ay9XZWJLaXRGb3J3YXJkRGVjbGFyYXRpb25zLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMC4uYTk4OThkZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEZvcndhcmREZWNsYXJhdGlvbnMuaApAQCAtMCwwICsxLDM5
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
ZiAhZGVmaW5lZChfX1dFQktJVDJfSF9JTlNJREVfXykgJiYgIWRlZmluZWQoV0VCS0lUMl9DT01Q
SUxBVElPTikKKyNlcnJvciAiT25seSA8d2Via2l0Mi93ZWJraXQyLmg+IGNhbiBiZSBpbmNsdWRl
ZCBkaXJlY3RseS4iCisjZW5kaWYKKworI2lmbmRlZiBXZWJLaXRGb3J3YXJkX2gKKyNkZWZpbmUg
V2ViS2l0Rm9yd2FyZF9oCisKK3R5cGVkZWYgc3RydWN0IF9XZWJLaXRQcmludE9wZXJhdGlvbiAg
V2ViS2l0UHJpbnRPcGVyYXRpb247Cit0eXBlZGVmIHN0cnVjdCBfV2ViS2l0RmluZENvbnRyb2xs
ZXIgIFdlYktpdEZpbmRDb250cm9sbGVyOwordHlwZWRlZiBzdHJ1Y3QgX1dlYktpdFdlYlZpZXcg
ICAgICAgICBXZWJLaXRXZWJWaWV3OwordHlwZWRlZiBzdHJ1Y3QgX1dlYktpdENvbnRleHRNZW51
ICAgICBXZWJLaXRDb250ZXh0TWVudTsKK3R5cGVkZWYgc3RydWN0IF9XZWJLaXRDb250ZXh0TWVu
dUl0ZW0gV2ViS2l0Q29udGV4dE1lbnVJdGVtOworCisjZW5kaWYgLy8gV2ViS2l0Rm9yd2FyZF9o
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRQcmlu
dE9wZXJhdGlvbi5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0UHJp
bnRPcGVyYXRpb24uaAppbmRleCBhMDJmNGU4Li5mYWIyNWZjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRQcmludE9wZXJhdGlvbi5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFByaW50T3BlcmF0aW9uLmgKQEAg
LTI2LDYgKzI2LDcgQEAKIAogI2luY2x1ZGUgPGdsaWItb2JqZWN0Lmg+CiAjaW5jbHVkZSA8d2Vi
a2l0Mi9XZWJLaXREZWZpbmVzLmg+CisjaW5jbHVkZSA8d2Via2l0Mi9XZWJLaXRGb3J3YXJkRGVj
bGFyYXRpb25zLmg+CiAjaW5jbHVkZSA8d2Via2l0Mi9XZWJLaXRXZWJWaWV3Lmg+CiAKIEdfQkVH
SU5fREVDTFMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dl
YktpdFVSSVJlcXVlc3QuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2Vi
S2l0VVJJUmVxdWVzdC5jcHAKaW5kZXggMjE5ZjM0Zi4uOGRkNDdlOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VVJJUmVxdWVzdC5jcHAKKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VVJJUmVxdWVzdC5jcHAKQEAg
LTcwLDcgKzcwLDcgQEAgc3RhdGljIHZvaWQgd2Via2l0VVJJUmVxdWVzdFNldFByb3BlcnR5KEdP
YmplY3QqIG9iamVjdCwgZ3VpbnQgcHJvcElkLCBjb25zdCBHVmEKIAogICAgIHN3aXRjaCAocHJv
cElkKSB7CiAgICAgY2FzZSBQUk9QX1VSSToKLSAgICAgICAgcmVxdWVzdC0+cHJpdi0+cmVzb3Vy
Y2VSZXF1ZXN0LnNldFVSTChLVVJMKEtVUkwoKSwgZ192YWx1ZV9nZXRfc3RyaW5nKHZhbHVlKSkp
OworICAgICAgICB3ZWJraXRfdXJpX3JlcXVlc3Rfc2V0X3VyaShyZXF1ZXN0LCBnX3ZhbHVlX2dl
dF9zdHJpbmcodmFsdWUpKTsKICAgICAgICAgYnJlYWs7CiAgICAgZGVmYXVsdDoKICAgICAgICAg
R19PQkpFQ1RfV0FSTl9JTlZBTElEX1BST1BFUlRZX0lEKG9iamVjdCwgcHJvcElkLCBwYXJhbVNw
ZWMpOwpAQCAtOTIsOCArOTIsOCBAQCBzdGF0aWMgdm9pZCB3ZWJraXRfdXJpX3JlcXVlc3RfY2xh
c3NfaW5pdChXZWJLaXRVUklSZXF1ZXN0Q2xhc3MqIHJlcXVlc3RDbGFzcykKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGdfcGFyYW1fc3BlY19zdHJpbmcoInVyaSIsCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF8oIlVS
SSIpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBfKCJUaGUgVVJJIHRvIHdoaWNoIHRoZSByZXF1ZXN0IHdpbGwgYmUgbWFkZS4iKSwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
c3RhdGljX2Nhc3Q8R1BhcmFtRmxhZ3M+KFdFQktJVF9QQVJBTV9SRUFEV1JJVEUgfCBHX1BBUkFN
X0NPTlNUUlVDVF9PTkxZKSkpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAiYWJvdXQ6YmxhbmsiLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxHUGFyYW1GbGFn
cz4oV0VCS0lUX1BBUkFNX1JFQURXUklURSB8IEdfUEFSQU1fQ09OU1RSVUNUKSkpOwogfQogCiAv
KioKQEAgLTEyNSw2ICsxMjUsMjYgQEAgY29uc3QgZ2NoYXIqIHdlYmtpdF91cmlfcmVxdWVzdF9n
ZXRfdXJpKFdlYktpdFVSSVJlcXVlc3QqIHJlcXVlc3QpCiAgICAgcmV0dXJuIHJlcXVlc3QtPnBy
aXYtPnVyaS5kYXRhKCk7CiB9CiAKKy8qKgorICogd2Via2l0X3VyaV9yZXF1ZXN0X3NldF91cmk6
CisgKiBAcmVxdWVzdDogYSAjV2ViS2l0VVJJUmVxdWVzdAorICogQHVyaTogYW4gVVJJCisgKgor
ICogU2V0IHRoZSBVUkkgb2YgQHJlcXVlc3QKKyAqLwordm9pZCB3ZWJraXRfdXJpX3JlcXVlc3Rf
c2V0X3VyaShXZWJLaXRVUklSZXF1ZXN0KiByZXF1ZXN0LCBjb25zdCBjaGFyKiB1cmkpCit7Cisg
ICAgZ19yZXR1cm5faWZfZmFpbChXRUJLSVRfSVNfVVJJX1JFUVVFU1QocmVxdWVzdCkpOworICAg
IGdfcmV0dXJuX2lmX2ZhaWwodXJpKTsKKworICAgIEtVUkwgdXJsKEtVUkwoKSwgdXJpKTsKKyAg
ICBpZiAodXJsID09IHJlcXVlc3QtPnByaXYtPnJlc291cmNlUmVxdWVzdC51cmwoKSkKKyAgICAg
ICAgcmV0dXJuOworCisgICAgcmVxdWVzdC0+cHJpdi0+cmVzb3VyY2VSZXF1ZXN0LnNldFVSTCh1
cmwpOworICAgIGdfb2JqZWN0X25vdGlmeShHX09CSkVDVChyZXF1ZXN0KSwgInVyaSIpOworfQor
CiBXZWJLaXRVUklSZXF1ZXN0KiB3ZWJraXRVUklSZXF1ZXN0Q3JlYXRlRm9yUmVzb3VyY2VSZXF1
ZXN0KGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVzb3VyY2VSZXF1ZXN0KQogewog
ICAgIFdlYktpdFVSSVJlcXVlc3QqIHVyaVJlcXVlc3QgPSBXRUJLSVRfVVJJX1JFUVVFU1QoZ19v
YmplY3RfbmV3KFdFQktJVF9UWVBFX1VSSV9SRVFVRVNULCBOVUxMKSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVUklSZXF1ZXN0LmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVUklSZXF1ZXN0LmgKaW5kZXggNTIz
NjA2OS4uODgxMjE1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9n
dGsvV2ViS2l0VVJJUmVxdWVzdC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Z3RrL1dlYktpdFVSSVJlcXVlc3QuaApAQCAtMTcsNyArMTcsNyBAQAogICogQm9zdG9uLCBNQSAw
MjExMC0xMzAxLCBVU0EuCiAgKi8KIAotI2lmICFkZWZpbmVkKF9fV0VCS0lUMl9IX0lOU0lERV9f
KSAmJiAhZGVmaW5lZChXRUJLSVQyX0NPTVBJTEFUSU9OKQorI2lmICFkZWZpbmVkKF9fV0VCS0lU
Ml9IX0lOU0lERV9fKSAmJiAhZGVmaW5lZChXRUJLSVQyX0NPTVBJTEFUSU9OKSAmJiAhZGVmaW5l
ZChfX1dFQktJVF9XRUJfRVhURU5TSU9OX0hfSU5TSURFX18pCiAjZXJyb3IgIk9ubHkgPHdlYmtp
dDIvd2Via2l0Mi5oPiBjYW4gYmUgaW5jbHVkZWQgZGlyZWN0bHkuIgogI2VuZGlmCiAKQEAgLTYx
LDYgKzYxLDEwIEBAIHdlYmtpdF91cmlfcmVxdWVzdF9uZXcgICAgICAoY29uc3QgZ2NoYXIgICAg
ICAqdXJpKTsKIFdFQktJVF9BUEkgY29uc3QgZ2NoYXIgKgogd2Via2l0X3VyaV9yZXF1ZXN0X2dl
dF91cmkgIChXZWJLaXRVUklSZXF1ZXN0ICpyZXF1ZXN0KTsKIAorV0VCS0lUX0FQSSB2b2lkCit3
ZWJraXRfdXJpX3JlcXVlc3Rfc2V0X3VyaSAgKFdlYktpdFVSSVJlcXVlc3QgKnJlcXVlc3QsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGdjaGFyICAgICAgKnVyaSk7CisKIEdf
RU5EX0RFQ0xTCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9ndGsvV2ViS2l0VVJJUmVzcG9uc2UuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvZ3RrL1dlYktpdFVSSVJlc3BvbnNlLmgKaW5kZXggZjkyYmE0Zi4uOTI4OGE5ZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VVJJUmVzcG9uc2Uu
aAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVUklSZXNwb25z
ZS5oCkBAIC0xNyw3ICsxNyw3IEBACiAgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KICAq
LwogCi0jaWYgIWRlZmluZWQoX19XRUJLSVQyX0hfSU5TSURFX18pICYmICFkZWZpbmVkKFdFQktJ
VDJfQ09NUElMQVRJT04pCisjaWYgIWRlZmluZWQoX19XRUJLSVQyX0hfSU5TSURFX18pICYmICFk
ZWZpbmVkKFdFQktJVDJfQ09NUElMQVRJT04pICYmICFkZWZpbmVkKF9fV0VCS0lUX1dFQl9FWFRF
TlNJT05fSF9JTlNJREVfXykKICNlcnJvciAiT25seSA8d2Via2l0Mi93ZWJraXQyLmg+IGNhbiBi
ZSBpbmNsdWRlZCBkaXJlY3RseS4iCiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VVJJU2NoZW1lUmVxdWVzdC5oIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VVJJU2NoZW1lUmVxdWVzdC5oCmluZGV4IDll
YWQ1MDcuLjhhY2Y2ZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Z3RrL1dlYktpdFVSSVNjaGVtZVJlcXVlc3QuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL2d0ay9XZWJLaXRVUklTY2hlbWVSZXF1ZXN0LmgKQEAgLTI2LDYgKzI2LDcgQEAKIAog
I2luY2x1ZGUgPGdsaWItb2JqZWN0Lmg+CiAjaW5jbHVkZSA8d2Via2l0Mi9XZWJLaXREZWZpbmVz
Lmg+CisjaW5jbHVkZSA8d2Via2l0Mi9XZWJLaXRGb3J3YXJkRGVjbGFyYXRpb25zLmg+CiAKIEdf
QkVHSU5fREVDTFMKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9n
dGsvV2ViS2l0V2ViVmlldy5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2Vi
S2l0V2ViVmlldy5oCmluZGV4IDM3ODZiYjIuLjJlNzI0ZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXcuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3LmgKQEAgLTM0LDYgKzM0LDcgQEAK
ICNpbmNsdWRlIDx3ZWJraXQyL1dlYktpdEZpbGVDaG9vc2VyUmVxdWVzdC5oPgogI2luY2x1ZGUg
PHdlYmtpdDIvV2ViS2l0RmluZENvbnRyb2xsZXIuaD4KICNpbmNsdWRlIDx3ZWJraXQyL1dlYktp
dEZvcm1TdWJtaXNzaW9uUmVxdWVzdC5oPgorI2luY2x1ZGUgPHdlYmtpdDIvV2ViS2l0Rm9yd2Fy
ZERlY2xhcmF0aW9ucy5oPgogI2luY2x1ZGUgPHdlYmtpdDIvV2ViS2l0SGl0VGVzdFJlc3VsdC5o
PgogI2luY2x1ZGUgPHdlYmtpdDIvV2ViS2l0SmF2YXNjcmlwdFJlc3VsdC5oPgogI2luY2x1ZGUg
PHdlYmtpdDIvV2ViS2l0UGVybWlzc2lvblJlcXVlc3QuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay1zZWN0aW9ucy50eHQgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJndGstc2VjdGlvbnMu
dHh0CmluZGV4IGQ3ZjNhOTMuLjU5NzJkODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay1zZWN0aW9ucy50eHQKKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3RrLXNlY3Rpb25zLnR4dApA
QCAtMzM0LDYgKzMzNCw3IEBAIHdlYmtpdF9zZXR0aW5nc19nZXRfdHlwZQogV2ViS2l0VVJJUmVx
dWVzdAogd2Via2l0X3VyaV9yZXF1ZXN0X25ldwogd2Via2l0X3VyaV9yZXF1ZXN0X2dldF91cmkK
K3dlYmtpdF91cmlfcmVxdWVzdF9zZXRfdXJpCiAKIDxTVUJTRUNUSU9OIFN0YW5kYXJkPgogV2Vi
S2l0VVJJUmVxdWVzdENsYXNzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL2d0ay90ZXN0cy9UZXN0UmVzb3VyY2VzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvZ3RrL3Rlc3RzL1Rlc3RSZXNvdXJjZXMuY3BwCmluZGV4IDZhMTI4MzIuLmEyNGI2ZmQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL3Rlc3RzL1Rlc3RS
ZXNvdXJjZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL3Rlc3Rz
L1Rlc3RSZXNvdXJjZXMuY3BwCkBAIC01NTgsNiArNTU4LDc1IEBAIHN0YXRpYyB2b2lkIHRlc3RX
ZWJWaWV3UmVzb3VyY2VzSGlzdG9yeUNhY2hlKFNpbmdsZVJlc291cmNlTG9hZFRlc3QqIHRlc3Qs
IGdjb25zCiAgICAgZ19hc3NlcnRfY21wc3RyKHdlYmtpdF93ZWJfcmVzb3VyY2VfZ2V0X3VyaShy
ZXNvdXJjZSksID09LCBzaW1wbGVTdHlsZUNTU1VSSS5kYXRhKCkpOwogfQogCitjbGFzcyBTZW5k
UmVxdWVzdFRlc3Q6IHB1YmxpYyBTaW5nbGVSZXNvdXJjZUxvYWRUZXN0IHsKK3B1YmxpYzoKKyAg
ICBNQUtFX0dMSUJfVEVTVF9GSVhUVVJFKFNlbmRSZXF1ZXN0VGVzdCk7CisKKyAgICB2b2lkIHJl
c291cmNlU2VudFJlcXVlc3QoV2ViS2l0V2ViUmVzb3VyY2UqIHJlc291cmNlLCBXZWJLaXRVUklS
ZXF1ZXN0KiByZXF1ZXN0LCBXZWJLaXRVUklSZXNwb25zZSogcmVkaXJlY3RSZXNwb25zZSkKKyAg
ICB7CisgICAgICAgIGlmIChyZXNvdXJjZSAhPSBtX3Jlc291cmNlKQorICAgICAgICAgICAgcmV0
dXJuOworCisgICAgICAgIGdfYXNzZXJ0X2NtcHN0cih3ZWJraXRfdXJpX3JlcXVlc3RfZ2V0X3Vy
aShyZXF1ZXN0KSwgPT0sIG1fZXhwZWN0ZWROZXdSZXNvdXJjZVVSSS5kYXRhKCkpOworICAgICAg
ICBnX2Fzc2VydF9jbXBzdHIod2Via2l0X3VyaV9yZXF1ZXN0X2dldF91cmkocmVxdWVzdCksID09
LCB3ZWJraXRfd2ViX3Jlc291cmNlX2dldF91cmkocmVzb3VyY2UpKTsKKworICAgICAgICBTaW5n
bGVSZXNvdXJjZUxvYWRUZXN0OjpyZXNvdXJjZVNlbnRSZXF1ZXN0KHJlc291cmNlLCByZXF1ZXN0
LCByZWRpcmVjdFJlc3BvbnNlKTsKKyAgICB9CisKKyAgICB2b2lkIHJlc291cmNlRmFpbGVkKFdl
YktpdFdlYlJlc291cmNlKiByZXNvdXJjZSwgR0Vycm9yKiBlcnJvcikKKyAgICB7CisgICAgICAg
IGlmIChyZXNvdXJjZSAhPSBtX3Jlc291cmNlKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAg
ICAgIGdfYXNzZXJ0X2NtcHN0cih3ZWJraXRfd2ViX3Jlc291cmNlX2dldF91cmkocmVzb3VyY2Up
LCA9PSwgbV9leHBlY3RlZENhbmNlbGxlZFJlc291cmNlVVJJLmRhdGEoKSk7CisgICAgICAgIGdf
YXNzZXJ0X2Vycm9yKGVycm9yLCBXRUJLSVRfTkVUV09SS19FUlJPUiwgV0VCS0lUX05FVFdPUktf
RVJST1JfQ0FOQ0VMTEVEKTsKKworICAgICAgICBTaW5nbGVSZXNvdXJjZUxvYWRUZXN0OjpyZXNv
dXJjZUZhaWxlZChyZXNvdXJjZSwgZXJyb3IpOworICAgIH0KKworICAgIHZvaWQgc2V0RXhwZWN0
ZWROZXdSZXNvdXJjZVVSSShjb25zdCBDU3RyaW5nJiB1cmkpCisgICAgeworICAgICAgICBtX2V4
cGVjdGVkTmV3UmVzb3VyY2VVUkkgPSB1cmk7CisgICAgfQorCisgICAgdm9pZCBzZXRFeHBlY3Rl
ZENhbmNlbGxlZFJlc291cmNlVVJJKGNvbnN0IENTdHJpbmcmIHVyaSkKKyAgICB7CisgICAgICAg
IG1fZXhwZWN0ZWRDYW5jZWxsZWRSZXNvdXJjZVVSSSA9IHVyaTsKKyAgICB9CisKKyAgICBDU3Ry
aW5nIG1fZXhwZWN0ZWROZXdSZXNvdXJjZVVSSTsKKyAgICBDU3RyaW5nIG1fZXhwZWN0ZWRDYW5j
ZWxsZWRSZXNvdXJjZVVSSTsKK307CisKK3N0YXRpYyB2b2lkIHRlc3RXZWJSZXNvdXJjZVNlbmRS
ZXF1ZXN0KFNlbmRSZXF1ZXN0VGVzdCogdGVzdCwgZ2NvbnN0cG9pbnRlcikKK3sKKyAgICB0ZXN0
LT5zZXRFeHBlY3RlZE5ld1Jlc291cmNlVVJJKGtTZXJ2ZXItPmdldFVSSUZvclBhdGgoIi9qYXZh
c2NyaXB0LmpzIikpOworICAgIHRlc3QtPmxvYWRVUkkoa1NlcnZlci0+Z2V0VVJJRm9yUGF0aCgi
cmVsYXRpdmUtamF2YXNjcmlwdC5odG1sIikuZGF0YSgpKTsKKyAgICB0ZXN0LT53YWl0VW50aWxS
ZXNvdXJjZUxvYWRGaW5pc2hlZCgpOworICAgIGdfYXNzZXJ0KHRlc3QtPm1fcmVzb3VyY2UpOwor
CisgICAgVmVjdG9yPFNpbmdsZVJlc291cmNlTG9hZFRlc3Q6OkxvYWRFdmVudHM+JiBldmVudHMg
PSB0ZXN0LT5tX2xvYWRFdmVudHM7CisgICAgZ19hc3NlcnRfY21waW50KGV2ZW50cy5zaXplKCks
ID09LCA1KTsKKyAgICBnX2Fzc2VydF9jbXBpbnQoZXZlbnRzWzBdLCA9PSwgU2luZ2xlUmVzb3Vy
Y2VMb2FkVGVzdDo6U3RhcnRlZCk7CisgICAgZ19hc3NlcnRfY21waW50KGV2ZW50c1sxXSwgPT0s
IFNpbmdsZVJlc291cmNlTG9hZFRlc3Q6OlNlbnRSZXF1ZXN0KTsKKyAgICBnX2Fzc2VydF9jbXBp
bnQoZXZlbnRzWzJdLCA9PSwgU2luZ2xlUmVzb3VyY2VMb2FkVGVzdDo6UmVjZWl2ZWRSZXNwb25z
ZSk7CisgICAgZ19hc3NlcnRfY21waW50KGV2ZW50c1szXSwgPT0sIFNpbmdsZVJlc291cmNlTG9h
ZFRlc3Q6OlJlY2VpdmVkRGF0YSk7CisgICAgZ19hc3NlcnRfY21waW50KGV2ZW50c1s0XSwgPT0s
IFNpbmdsZVJlc291cmNlTG9hZFRlc3Q6OkZpbmlzaGVkKTsKKyAgICBldmVudHMuY2xlYXIoKTsK
KworICAgIC8vIENhbmNlbCByZXF1ZXN0LgorICAgIHRlc3QtPnNldEV4cGVjdGVkQ2FuY2VsbGVk
UmVzb3VyY2VVUkkoa1NlcnZlci0+Z2V0VVJJRm9yUGF0aCgiL2NhbmNlbC10aGlzLmpzIikpOwor
ICAgIHRlc3QtPmxvYWRVUkkoa1NlcnZlci0+Z2V0VVJJRm9yUGF0aCgiL3Jlc291cmNlLXRvLWNh
bmNlbC5odG1sIikuZGF0YSgpKTsKKyAgICB0ZXN0LT53YWl0VW50aWxSZXNvdXJjZUxvYWRGaW5p
c2hlZCgpOworICAgIGdfYXNzZXJ0KHRlc3QtPm1fcmVzb3VyY2UpOworCisgICAgZ19hc3NlcnRf
Y21waW50KGV2ZW50cy5zaXplKCksID09LCAzKTsKKyAgICBnX2Fzc2VydF9jbXBpbnQoZXZlbnRz
WzBdLCA9PSwgU2luZ2xlUmVzb3VyY2VMb2FkVGVzdDo6U3RhcnRlZCk7CisgICAgZ19hc3NlcnRf
Y21waW50KGV2ZW50c1sxXSwgPT0sIFNpbmdsZVJlc291cmNlTG9hZFRlc3Q6OkZhaWxlZCk7Cisg
ICAgZ19hc3NlcnRfY21waW50KGV2ZW50c1syXSwgPT0sIFNpbmdsZVJlc291cmNlTG9hZFRlc3Q6
OkZpbmlzaGVkKTsKKyAgICBldmVudHMuY2xlYXIoKTsKK30KKwogc3RhdGljIHZvaWQgYWRkQ2Fj
aGVIVFRQSGVhZGVyc1RvUmVzcG9uc2UoU291cE1lc3NhZ2UqIG1lc3NhZ2UpCiB7CiAgICAgLy8g
VGhlIGFjdHVhbCBkYXRlIGRvZXNuJ3QgcmVhbGx5IG1hdHRlci4KQEAgLTYxMSw2ICs2ODAsMTIg
QEAgc3RhdGljIHZvaWQgc2VydmVyQ2FsbGJhY2soU291cFNlcnZlciogc2VydmVyLCBTb3VwTWVz
c2FnZSogbWVzc2FnZSwgY29uc3QgY2hhcioKICAgICAgICAgc291cF9tZXNzYWdlX2JvZHlfYXBw
ZW5kKG1lc3NhZ2UtPnJlc3BvbnNlX2JvZHksIFNPVVBfTUVNT1JZX1NUQVRJQywga0phdmFzY3Jp
cHQsIHN0cmxlbihrSmF2YXNjcmlwdCkpOwogICAgICAgICBzb3VwX21lc3NhZ2VfaGVhZGVyc19h
cHBlbmQobWVzc2FnZS0+cmVzcG9uc2VfaGVhZGVycywgIkNvbnRlbnQtVHlwZSIsICJ0ZXh0L2ph
dmFzY3JpcHQiKTsKICAgICAgICAgc291cF9tZXNzYWdlX2hlYWRlcnNfYXBwZW5kKG1lc3NhZ2Ut
PnJlc3BvbnNlX2hlYWRlcnMsICJDb250ZW50LURpc3Bvc2l0aW9uIiwgImZpbGVuYW1lPUphdmFT
Y3JpcHQuanMiKTsKKyAgICB9IGVsc2UgaWYgKGdfc3RyX2VxdWFsKHBhdGgsICIvcmVsYXRpdmUt
amF2YXNjcmlwdC5odG1sIikpIHsKKyAgICAgICAgc3RhdGljIGNvbnN0IGNoYXIqIGphdmFzY3Jp
cHRSZWxhdGl2ZUhUTUwgPSAiPGh0bWw+PGhlYWQ+PHNjcmlwdCBsYW5ndWFnZT0namF2YXNjcmlw
dCcgc3JjPSdyZW1vdmUtdGhpcy9qYXZhc2NyaXB0LmpzJz48L3NjcmlwdD48L2hlYWQ+PGJvZHk+
PC9ib2R5PjwvaHRtbD4iOworICAgICAgICBzb3VwX21lc3NhZ2VfYm9keV9hcHBlbmQobWVzc2Fn
ZS0+cmVzcG9uc2VfYm9keSwgU09VUF9NRU1PUllfU1RBVElDLCBqYXZhc2NyaXB0UmVsYXRpdmVI
VE1MLCBzdHJsZW4oamF2YXNjcmlwdFJlbGF0aXZlSFRNTCkpOworICAgIH0gZWxzZSBpZiAoZ19z
dHJfZXF1YWwocGF0aCwgIi9yZXNvdXJjZS10by1jYW5jZWwuaHRtbCIpKSB7CisgICAgICAgIHN0
YXRpYyBjb25zdCBjaGFyKiByZXNvdXJjZVRvQ2FuY2VsSFRNTCA9ICI8aHRtbD48aGVhZD48c2Ny
aXB0IGxhbmd1YWdlPSdqYXZhc2NyaXB0JyBzcmM9J2NhbmNlbC10aGlzLmpzJz48L3NjcmlwdD48
L2hlYWQ+PGJvZHk+PC9ib2R5PjwvaHRtbD4iOworICAgICAgICBzb3VwX21lc3NhZ2VfYm9keV9h
cHBlbmQobWVzc2FnZS0+cmVzcG9uc2VfYm9keSwgU09VUF9NRU1PUllfU1RBVElDLCByZXNvdXJj
ZVRvQ2FuY2VsSFRNTCwgc3RybGVuKHJlc291cmNlVG9DYW5jZWxIVE1MKSk7CiAgICAgfSBlbHNl
IGlmIChnX3N0cl9lcXVhbChwYXRoLCAiL2JsYW5rLmljbyIpKSB7CiAgICAgICAgIEdPd25QdHI8
Y2hhcj4gZmlsZVBhdGgoZ19idWlsZF9maWxlbmFtZShUZXN0OjpnZXRXZWJLaXQxVGVzdFJlc291
Y2VzRGlyKCkuZGF0YSgpLCBwYXRoLCBOVUxMKSk7CiAgICAgICAgIGNoYXIqIGNvbnRlbnRzOwpA
QCAtNjQxLDYgKzcxNiw4IEBAIHZvaWQgYmVmb3JlQWxsKCkKICAgICBrU2VydmVyID0gbmV3IFdl
YktpdFRlc3RTZXJ2ZXIoKTsKICAgICBrU2VydmVyLT5ydW4oc2VydmVyQ2FsbGJhY2spOwogCisg
ICAgd2Via2l0X3dlYl9jb250ZXh0X3NldF93ZWJfZXh0ZW5zaW9uc19kaXJlY3Rvcnkod2Via2l0
X3dlYl9jb250ZXh0X2dldF9kZWZhdWx0KCksIFdFQktJVF9URVNUX1dFQl9FWFRFTlNJT05TX0RJ
Uik7CisKICAgICBSZXNvdXJjZXNUZXN0OjphZGQoIldlYktpdFdlYlZpZXciLCAicmVzb3VyY2Vz
IiwgdGVzdFdlYlZpZXdSZXNvdXJjZXMpOwogICAgIFNpbmdsZVJlc291cmNlTG9hZFRlc3Q6OmFk
ZCgiV2ViS2l0V2ViUmVzb3VyY2UiLCAibG9hZGluZyIsIHRlc3RXZWJSZXNvdXJjZUxvYWRpbmcp
OwogICAgIFNpbmdsZVJlc291cmNlTG9hZFRlc3Q6OmFkZCgiV2ViS2l0V2ViUmVzb3VyY2UiLCAi
cmVzcG9uc2UiLCB0ZXN0V2ViUmVzb3VyY2VSZXNwb25zZSk7CkBAIC02NDksNiArNzI2LDcgQEAg
dm9pZCBiZWZvcmVBbGwoKQogICAgIFJlc291cmNlVVJJVHJhY2tpbmdUZXN0OjphZGQoIldlYktp
dFdlYlJlc291cmNlIiwgImFjdGl2ZS11cmkiLCB0ZXN0V2ViUmVzb3VyY2VBY3RpdmVVUkkpOwog
ICAgIFJlc291cmNlc1Rlc3Q6OmFkZCgiV2ViS2l0V2ViUmVzb3VyY2UiLCAiZ2V0LWRhdGEiLCB0
ZXN0V2ViUmVzb3VyY2VHZXREYXRhKTsKICAgICBTaW5nbGVSZXNvdXJjZUxvYWRUZXN0OjphZGQo
IldlYktpdFdlYlZpZXciLCAiaGlzdG9yeS1jYWNoZSIsIHRlc3RXZWJWaWV3UmVzb3VyY2VzSGlz
dG9yeUNhY2hlKTsKKyAgICBTZW5kUmVxdWVzdFRlc3Q6OmFkZCgiV2ViS2l0V2ViUGFnZSIsICJz
ZW5kLXJlcXVlc3QiLCB0ZXN0V2ViUmVzb3VyY2VTZW5kUmVxdWVzdCk7CiB9CiAKIHZvaWQgYWZ0
ZXJBbGwoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvdGVz
dHMvV2ViRXh0ZW5zaW9uVGVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0
ay90ZXN0cy9XZWJFeHRlbnNpb25UZXN0LmNwcAppbmRleCBmNTQ3YjA5Li40ODBiODI1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay90ZXN0cy9XZWJFeHRlbnNp
b25UZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay90ZXN0cy9X
ZWJFeHRlbnNpb25UZXN0LmNwcApAQCAtMjEsNiArMjEsNyBAQAogCiAjaW5jbHVkZSA8Z2lvL2dp
by5oPgogI2luY2x1ZGUgPHN0ZGxpYi5oPgorI2luY2x1ZGUgPHN0cmluZy5oPgogCiAjaW5jbHVk
ZSA8d2Via2l0Mi93ZWJraXQtd2ViLWV4dGVuc2lvbi5oPgogI2luY2x1ZGUgPHd0Zi9nb2JqZWN0
L0dPd25QdHIuaD4KQEAgLTY2LDEwICs2NywyNiBAQCBzdGF0aWMgdm9pZCB1cmlDaGFuZ2VkQ2Fs
bGJhY2soV2ViS2l0V2ViUGFnZSogd2ViUGFnZSwgR1BhcmFtU3BlYyogcHNwZWMsIGdwb2ludAog
ICAgIGdfYXNzZXJ0KG9rKTsKIH0KIAorc3RhdGljIGdib29sZWFuIHNlbmRSZXF1ZXN0Q2FsbGJh
Y2soV2ViS2l0V2ViUGFnZSosIFdlYktpdFVSSVJlcXVlc3QqIHJlcXVlc3QsIFdlYktpdFVSSVJl
c3BvbnNlKiwgZ3BvaW50ZXIpCit7CisgICAgY29uc3QgY2hhciogcmVxdWVzdFVSSSA9IHdlYmtp
dF91cmlfcmVxdWVzdF9nZXRfdXJpKHJlcXVlc3QpOworICAgIGdfYXNzZXJ0KHJlcXVlc3RVUkkp
OworCisgICAgaWYgKGNvbnN0IGNoYXIqIHN1ZmZpeCA9IGdfc3RycnN0cihyZXF1ZXN0VVJJLCAi
L3JlbW92ZS10aGlzL2phdmFzY3JpcHQuanMiKSkgeworICAgICAgICBHT3duUHRyPGNoYXI+IHBy
ZWZpeChnX3N0cm5kdXAocmVxdWVzdFVSSSwgc3RybGVuKHJlcXVlc3RVUkkpIC0gc3RybGVuKHN1
ZmZpeCkpKTsKKyAgICAgICAgR093blB0cjxjaGFyPiBuZXdVUkkoZ19zdHJkdXBfcHJpbnRmKCIl
cy9qYXZhc2NyaXB0LmpzIiwgcHJlZml4LmdldCgpKSk7CisgICAgICAgIHdlYmtpdF91cmlfcmVx
dWVzdF9zZXRfdXJpKHJlcXVlc3QsIG5ld1VSSS5nZXQoKSk7CisgICAgfSBlbHNlIGlmIChnX3N0
cl9oYXNfc3VmZml4KHJlcXVlc3RVUkksICIvY2FuY2VsLXRoaXMuanMiKSkKKyAgICAgICAgcmV0
dXJuIFRSVUU7CisKKyAgICByZXR1cm4gRkFMU0U7Cit9CisKIHN0YXRpYyB2b2lkIHBhZ2VDcmVh
dGVkQ2FsbGJhY2soV2ViS2l0V2ViRXh0ZW5zaW9uKiwgV2ViS2l0V2ViUGFnZSogd2ViUGFnZSwg
Z3BvaW50ZXIgdXNlckRhdGEpCiB7CiAgICAgZ19zaWduYWxfY29ubmVjdCh3ZWJQYWdlLCAiZG9j
dW1lbnQtbG9hZGVkIiwgR19DQUxMQkFDSyhkb2N1bWVudExvYWRlZENhbGxiYWNrKSwgdXNlckRh
dGEpOwogICAgIGdfc2lnbmFsX2Nvbm5lY3Qod2ViUGFnZSwgIm5vdGlmeTo6dXJpIiwgR19DQUxM
QkFDSyh1cmlDaGFuZ2VkQ2FsbGJhY2spLCB1c2VyRGF0YSk7CisgICAgZ19zaWduYWxfY29ubmVj
dCh3ZWJQYWdlLCAic2VuZC1yZXF1ZXN0IiwgR19DQUxMQkFDSyhzZW5kUmVxdWVzdENhbGxiYWNr
KSwgMCk7CiB9CiAKIHN0YXRpYyB2b2lkIG1ldGhvZENhbGxDYWxsYmFjayhHREJ1c0Nvbm5lY3Rp
b24qIGNvbm5lY3Rpb24sIGNvbnN0IGNoYXIqIHNlbmRlciwgY29uc3QgY2hhciogb2JqZWN0UGF0
aCwgY29uc3QgY2hhciogaW50ZXJmYWNlTmFtZSwgY29uc3QgY2hhciogbWV0aG9kTmFtZSwgR1Zh
cmlhbnQqIHBhcmFtZXRlcnMsIEdEQnVzTWV0aG9kSW52b2NhdGlvbiogaW52b2NhdGlvbiwgZ3Bv
aW50ZXIgdXNlckRhdGEpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2d0ay93ZWJraXQybWFyc2hhbC5saXN0IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9n
dGsvd2Via2l0Mm1hcnNoYWwubGlzdAppbmRleCBlZmQ5ZTA0Li40MjA3NjZlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay93ZWJraXQybWFyc2hhbC5saXN0Cisr
KyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL3dlYmtpdDJtYXJzaGFsLmxpc3QK
QEAgLTMsNiArMyw3IEBAIEJPT0xFQU46RU5VTSxTVFJJTkcsUE9JTlRFUgogQk9PTEVBTjpPQkpF
Q1QKIEJPT0xFQU46T0JKRUNULEJPWEVELE9CSkVDVAogQk9PTEVBTjpPQkpFQ1QsRU5VTQorQk9P
TEVBTjpPQkpFQ1QsT0JKRUNUCiBCT09MRUFOOlNUUklORwogQk9PTEVBTjpWT0lECiBPQkpFQ1Q6
Vk9JRApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9BUEkvZ3RrL1dlYktpdFdlYkV4dGVuc2lvbi5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL1dlYktpdFdlYkV4dGVuc2lvbi5oCmluZGV4IDcwNDI0
NzYuLjY3YTRjZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvQVBJL2d0ay9XZWJLaXRXZWJFeHRlbnNpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvV2ViS2l0V2ViRXh0ZW5zaW9uLmgK
QEAgLTI1LDcgKzI1LDcgQEAKICNkZWZpbmUgV2ViS2l0V2ViRXh0ZW5zaW9uX2gKIAogI2luY2x1
ZGUgPGdsaWItb2JqZWN0Lmg+Ci0jaW5jbHVkZSA8d2Via2l0Mi9XZWJLaXRXZWJFeHRlbnNpb25E
ZWZpbmVzLmg+CisjaW5jbHVkZSA8d2Via2l0Mi9XZWJLaXREZWZpbmVzLmg+CiAjaW5jbHVkZSA8
d2Via2l0Mi9XZWJLaXRXZWJQYWdlLmg+CiAKIEdfQkVHSU5fREVDTFMKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9XZWJLaXRXZWJF
eHRlbnNpb25EZWZpbmVzLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS9ndGsvV2ViS2l0V2ViRXh0ZW5zaW9uRGVmaW5lcy5oCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCBhMWE2MzU5Li4wMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9XZWJLaXRXZWJFeHRlbnNpb25EZWZpbmVzLmgK
KysrIC9kZXYvbnVsbApAQCAtMSw0NyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEy
IElnYWxpYSBTLkwuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6
Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
Ci0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZiAhZGVmaW5lZChfX1dFQktJVF9XRUJfRVhURU5T
SU9OX0hfSU5TSURFX18pICYmICFkZWZpbmVkKFdFQktJVDJfQ09NUElMQVRJT04pCi0jZXJyb3Ig
Ik9ubHkgPHdlYmtpdDIvd2Via2l0LXdlYi1leHRlbnNpb24uaD4gY2FuIGJlIGluY2x1ZGVkIGRp
cmVjdGx5LiIKLSNlbmRpZgotCi0jaWZuZGVmIFdlYktpdFdlYkV4dGVuc2lvbkRlZmluZXNfaAot
I2RlZmluZSBXZWJLaXRXZWJFeHRlbnNpb25EZWZpbmVzX2gKLQotI2luY2x1ZGUgPGdsaWIuaD4K
LQotI2lmZGVmIEdfT1NfV0lOMzIKLSMgICAgaWZkZWYgQlVJTERJTkdfV0VCS0lUCi0jICAgICAg
ICBkZWZpbmUgV0VCS0lUX0FQSSBfX2RlY2xzcGVjKGRsbGV4cG9ydCkKLSMgICAgZWxzZQotIyAg
ICAgICAgZGVmaW5lIFdFQktJVF9BUEkgX19kZWNsc3BlYyhkbGxpbXBvcnQpCi0jICAgIGVuZGlm
Ci0jICAgIGRlZmluZSBXRUJLSVRfT0JTT0xFVEVfQVBJIFdFQktJVF9BUEkKLSNlbHNlCi0jICAg
IGRlZmluZSBXRUJLSVRfQVBJIF9fYXR0cmlidXRlX18oKHZpc2liaWxpdHkoImRlZmF1bHQiKSkp
Ci0jICAgIGRlZmluZSBXRUJLSVRfT0JTT0xFVEVfQVBJIFdFQktJVF9BUEkgX19hdHRyaWJ1dGVf
XygoZGVwcmVjYXRlZCkpCi0jZW5kaWYKLQotI2VuZGlmIC8vIFdlYktpdFdlYkV4dGVuc2lvbkRl
ZmluZXNfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvZ3RrL1dlYktpdFdlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL1dlYktpdFdlYlBhZ2UuY3BwCmluZGV4IDk0YzU3NGEu
LjZlMjNhZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL2d0ay9XZWJLaXRXZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvV2ViS2l0V2ViUGFnZS5jcHAKQEAgLTI4LDcg
KzI4LDEwIEBACiAjaW5jbHVkZSAiV2ViRnJhbWUuaCIKICNpbmNsdWRlICJXZWJJbWFnZS5oIgog
I2luY2x1ZGUgIldlYktpdERPTURvY3VtZW50UHJpdmF0ZS5oIgorI2luY2x1ZGUgIldlYktpdE1h
cnNoYWwuaCIKICNpbmNsdWRlICJXZWJLaXRQcml2YXRlLmgiCisjaW5jbHVkZSAiV2ViS2l0VVJJ
UmVxdWVzdFByaXZhdGUuaCIKKyNpbmNsdWRlICJXZWJLaXRVUklSZXNwb25zZVByaXZhdGUuaCIK
ICNpbmNsdWRlICJXZWJLaXRXZWJQYWdlUHJpdmF0ZS5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3Mu
aCIKICNpbmNsdWRlIDxXZWJDb3JlL0RvY3VtZW50Lmg+CkBAIC00Myw2ICs0Niw3IEBAIHVzaW5n
IG5hbWVzcGFjZSBXZWJDb3JlOwogCiBlbnVtIHsKICAgICBET0NVTUVOVF9MT0FERUQsCisgICAg
U0VORF9SRVFVRVNULAogCiAgICAgTEFTVF9TSUdOQUwKIH07CkBAIC0xMjMsMTggKzEyNywyNyBA
QCBzdGF0aWMgdm9pZCBkaWRJbml0aWF0ZUxvYWRGb3JSZXNvdXJjZShXS0J1bmRsZVBhZ2VSZWYg
cGFnZSwgV0tCdW5kbGVGcmFtZVJlZiBmcgogICAgIFdlYlByb2Nlc3M6OnNoYXJlZCgpLmluamVj
dGVkQnVuZGxlKCktPnBvc3RNZXNzYWdlKFN0cmluZzo6ZnJvbVVURjgoIldlYlBhZ2UuRGlkSW5p
dGlhdGVMb2FkRm9yUmVzb3VyY2UiKSwgSW1tdXRhYmxlRGljdGlvbmFyeTo6YWRvcHQobWVzc2Fn
ZSkuZ2V0KCkpOwogfQogCi1zdGF0aWMgV0tVUkxSZXF1ZXN0UmVmIHdpbGxTZW5kUmVxdWVzdEZv
ckZyYW1lKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBXS0J1bmRsZUZyYW1lUmVmLCB1aW50NjRfdCBp
ZGVudGlmaWVyLCBXS1VSTFJlcXVlc3RSZWYgcmVxdWVzdCwgV0tVUkxSZXNwb25zZVJlZiByZWRp
cmVjdFJlc3BvbnNlLCBjb25zdCB2b2lkKikKK3N0YXRpYyBXS1VSTFJlcXVlc3RSZWYgd2lsbFNl
bmRSZXF1ZXN0Rm9yRnJhbWUoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdLQnVuZGxlRnJhbWVSZWYs
IHVpbnQ2NF90IGlkZW50aWZpZXIsIFdLVVJMUmVxdWVzdFJlZiB3a1JlcXVlc3QsIFdLVVJMUmVz
cG9uc2VSZWYgd2tSZWRpcmVjdFJlc3BvbnNlLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQogewor
ICAgIEdSZWZQdHI8V2ViS2l0VVJJUmVxdWVzdD4gcmVxdWVzdCA9IGFkb3B0R1JlZih3ZWJraXRV
UklSZXF1ZXN0Q3JlYXRlRm9yUmVzb3VyY2VSZXF1ZXN0KHRvSW1wbCh3a1JlcXVlc3QpLT5yZXNv
dXJjZVJlcXVlc3QoKSkpOworICAgIEdSZWZQdHI8V2ViS2l0VVJJUmVzcG9uc2U+IHJlZGlyZWN0
UmVzcG9uc2UgPSB3a1JlZGlyZWN0UmVzcG9uc2UgPyBhZG9wdEdSZWYod2Via2l0VVJJUmVzcG9u
c2VDcmVhdGVGb3JSZXNvdXJjZVJlc3BvbnNlKHRvSW1wbCh3a1JlZGlyZWN0UmVzcG9uc2UpLT5y
ZXNvdXJjZVJlc3BvbnNlKCkpKSA6IDA7CisKKyAgICBnYm9vbGVhbiByZXR1cm5WYWx1ZTsKKyAg
ICBnX3NpZ25hbF9lbWl0KFdFQktJVF9XRUJfUEFHRShjbGllbnRJbmZvKSwgc2lnbmFsc1tTRU5E
X1JFUVVFU1RdLCAwLCByZXF1ZXN0LmdldCgpLCByZWRpcmVjdFJlc3BvbnNlLmdldCgpLCAmcmV0
dXJuVmFsdWUpOworICAgIGlmIChyZXR1cm5WYWx1ZSkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAg
ICBXZWJVUkxSZXF1ZXN0KiBuZXdSZXF1ZXN0ID0gV2ViVVJMUmVxdWVzdDo6Y3JlYXRlKHdlYmtp
dFVSSVJlcXVlc3RHZXRSZXNvdXJjZVJlcXVlc3QocmVxdWVzdC5nZXQoKSkpLmxlYWtSZWYoKTsK
KwogICAgIEltbXV0YWJsZURpY3Rpb25hcnk6Ok1hcFR5cGUgbWVzc2FnZTsKICAgICBtZXNzYWdl
LnNldChTdHJpbmc6OmZyb21VVEY4KCJQYWdlIiksIHRvSW1wbChwYWdlKSk7CiAgICAgbWVzc2Fn
ZS5zZXQoU3RyaW5nOjpmcm9tVVRGOCgiSWRlbnRpZmllciIpLCBXZWJVSW50NjQ6OmNyZWF0ZShp
ZGVudGlmaWVyKSk7Ci0gICAgbWVzc2FnZS5zZXQoU3RyaW5nOjpmcm9tVVRGOCgiUmVxdWVzdCIp
LCB0b0ltcGwocmVxdWVzdCkpOwotICAgIGlmICghdG9JbXBsKHJlZGlyZWN0UmVzcG9uc2UpLT5y
ZXNvdXJjZVJlc3BvbnNlKCkuaXNOdWxsKCkpCi0gICAgICAgIG1lc3NhZ2Uuc2V0KFN0cmluZzo6
ZnJvbVVURjgoIlJlZGlyZWN0UmVzcG9uc2UiKSwgdG9JbXBsKHJlZGlyZWN0UmVzcG9uc2UpKTsK
KyAgICBtZXNzYWdlLnNldChTdHJpbmc6OmZyb21VVEY4KCJSZXF1ZXN0IiksIG5ld1JlcXVlc3Qp
OworICAgIGlmICghdG9JbXBsKHdrUmVkaXJlY3RSZXNwb25zZSktPnJlc291cmNlUmVzcG9uc2Uo
KS5pc051bGwoKSkKKyAgICAgICAgbWVzc2FnZS5zZXQoU3RyaW5nOjpmcm9tVVRGOCgiUmVkaXJl
Y3RSZXNwb25zZSIpLCB0b0ltcGwod2tSZWRpcmVjdFJlc3BvbnNlKSk7CiAgICAgV2ViUHJvY2Vz
czo6c2hhcmVkKCkuaW5qZWN0ZWRCdW5kbGUoKS0+cG9zdE1lc3NhZ2UoU3RyaW5nOjpmcm9tVVRG
OCgiV2ViUGFnZS5EaWRTZW5kUmVxdWVzdEZvclJlc291cmNlIiksIEltbXV0YWJsZURpY3Rpb25h
cnk6OmFkb3B0KG1lc3NhZ2UpLmdldCgpKTsKIAotICAgIFdLUmV0YWluKHJlcXVlc3QpOwotICAg
IHJldHVybiByZXF1ZXN0OworICAgIHJldHVybiB0b0FQSShuZXdSZXF1ZXN0KTsKIH0KIAogc3Rh
dGljIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNlRm9yUmVzb3VyY2UoV0tCdW5kbGVQYWdlUmVmIHBh
Z2UsIFdLQnVuZGxlRnJhbWVSZWYsIHVpbnQ2NF90IGlkZW50aWZpZXIsIFdLVVJMUmVzcG9uc2VS
ZWYgcmVzcG9uc2UsIGNvbnN0IHZvaWQqKQpAQCAtMjIzLDYgKzIzNiwzNyBAQCBzdGF0aWMgdm9p
ZCB3ZWJraXRfd2ViX3BhZ2VfY2xhc3NfaW5pdChXZWJLaXRXZWJQYWdlQ2xhc3MqIGtsYXNzKQog
ICAgICAgICAwLCAwLCAwLAogICAgICAgICBnX2NjbG9zdXJlX21hcnNoYWxfVk9JRF9fT0JKRUNU
LAogICAgICAgICBHX1RZUEVfTk9ORSwgMCk7CisKKyAgICAvKioKKyAgICAgKiBXZWJLaXRXZWJQ
YWdlOjpzZW5kLXJlcXVlc3Q6CisgICAgICogQHdlYl9wYWdlOiB0aGUgI1dlYktpdFdlYlBhZ2Ug
b24gd2hpY2ggdGhlIHNpZ25hbCBpcyBlbWl0dGVkCisgICAgICogQHJlcXVlc3Q6IGEgI1dlYktp
dFVSSVJlcXVlc3QKKyAgICAgKiBAcmVkaXJlY3RlZF9yZXNwb25zZTogYSAjV2ViS2l0VVJJUmVz
cG9uc2UsIG9yICVOVUxMCisgICAgICoKKyAgICAgKiBUaGlzIHNpZ25hbCBpcyBlbWl0dGVkIHdo
ZW4gQHJlcXVlc3QgaXMgYWJvdXQgdG8gYmUgc2VudCB0bworICAgICAqIHRoZSBzZXJ2ZXIuIFRo
aXMgc2lnbmFsIGNhbiBiZSB1c2VkIHRvIG1vZGlmeSB0aGUgI1dlYktpdFVSSVJlcXVlc3QKKyAg
ICAgKiB0aGF0IHdpbGwgYmUgc2VudCB0byB0aGUgc2VydmVyLiBZb3UgY2FuIGFsc28gY2FuY2Vs
IHRoZSByZXNvdXJjZSBsb2FkCisgICAgICogb3BlcmF0aW9uIGJ5IGNvbm5lY3RpbmcgdG8gdGhp
cyBzaWduYWwgYW5kIHJldHVybmluZyAlVFJVRS4KKyAgICAgKgorICAgICAqIEluIGNhc2Ugb2Yg
YSBzZXJ2ZXIgcmVkaXJlY3Rpb24gdGhpcyBzaWduYWwgaXMKKyAgICAgKiBlbWl0dGVkIGFnYWlu
IHdpdGggdGhlIEByZXF1ZXN0IGFyZ3VtZW50IGNvbnRhaW5pbmcgdGhlIG5ldworICAgICAqIHJl
cXVlc3QgdG8gYmUgc2VudCB0byB0aGUgc2VydmVyIGR1ZSB0byB0aGUgcmVkaXJlY3Rpb24gYW5k
IHRoZQorICAgICAqIEByZWRpcmVjdGVkX3Jlc3BvbnNlIHBhcmFtZXRlciBjb250YWluaW5nIHRo
ZSByZXNwb25zZQorICAgICAqIHJlY2VpdmVkIGJ5IHRoZSBzZXJ2ZXIgZm9yIHRoZSBpbml0aWFs
IHJlcXVlc3QuCisgICAgICoKKyAgICAgKiBSZXR1cm5zOiAlVFJVRSB0byBzdG9wIG90aGVyIGhh
bmRsZXJzIGZyb20gYmVpbmcgaW52b2tlZCBmb3IgdGhlIGV2ZW50LgorICAgICAqICAgICVGQUxT
RSB0byBjb250aW51ZSBlbWlzc2lvbiBvZiB0aGUgZXZlbnQuCisgICAgICovCisgICAgc2lnbmFs
c1tTRU5EX1JFUVVFU1RdID0gZ19zaWduYWxfbmV3KAorICAgICAgICAic2VuZC1yZXF1ZXN0IiwK
KyAgICAgICAgR19UWVBFX0ZST01fQ0xBU1Moa2xhc3MpLAorICAgICAgICBHX1NJR05BTF9SVU5f
TEFTVCwKKyAgICAgICAgMCwKKyAgICAgICAgZ19zaWduYWxfYWNjdW11bGF0b3JfdHJ1ZV9oYW5k
bGVkLCAwLAorICAgICAgICB3ZWJraXRfbWFyc2hhbF9CT09MRUFOX19PQkpFQ1RfT0JKRUNULAor
ICAgICAgICBHX1RZUEVfQk9PTEVBTiwgMiwKKyAgICAgICAgV0VCS0lUX1RZUEVfVVJJX1JFUVVF
U1QsCisgICAgICAgIFdFQktJVF9UWVBFX1VSSV9SRVNQT05TRSk7CiB9CiAKIFdlYktpdFdlYlBh
Z2UqIHdlYmtpdFdlYlBhZ2VDcmVhdGUoV2ViUGFnZSogd2ViUGFnZSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9XZWJLaXRXZWJQ
YWdlLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsv
V2ViS2l0V2ViUGFnZS5oCmluZGV4IDM2NWZmNGYuLmZmNmUwMGQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9XZWJLaXRXZWJQYWdl
LmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3Rr
L1dlYktpdFdlYlBhZ2UuaApAQCAtMjUsNyArMjUsNyBAQAogI2RlZmluZSBXZWJLaXRXZWJQYWdl
X2gKIAogI2luY2x1ZGUgPGdsaWItb2JqZWN0Lmg+Ci0jaW5jbHVkZSA8d2Via2l0Mi9XZWJLaXRX
ZWJFeHRlbnNpb25EZWZpbmVzLmg+CisjaW5jbHVkZSA8d2Via2l0Mi9XZWJLaXREZWZpbmVzLmg+
CiAjaW5jbHVkZSA8d2Via2l0ZG9tL3dlYmtpdGRvbS5oPgogCiBHX0JFR0lOX0RFQ0xTCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsv
d2Via2l0LXdlYi1leHRlbnNpb24uaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvQVBJL2d0ay93ZWJraXQtd2ViLWV4dGVuc2lvbi5oCmluZGV4IGU1ZWYzNWEuLmZm
YmI1NTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL2d0ay93ZWJraXQtd2ViLWV4dGVuc2lvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay93ZWJraXQtd2ViLWV4dGVuc2lvbi5oCkBA
IC0yMiw2ICsyMiw4IEBACiAKICNkZWZpbmUgX19XRUJLSVRfV0VCX0VYVEVOU0lPTl9IX0lOU0lE
RV9fCiAKKyNpbmNsdWRlIDx3ZWJraXQyL1dlYktpdFVSSVJlcXVlc3QuaD4KKyNpbmNsdWRlIDx3
ZWJraXQyL1dlYktpdFVSSVJlc3BvbnNlLmg+CiAjaW5jbHVkZSA8d2Via2l0Mi9XZWJLaXRXZWJF
eHRlbnNpb24uaD4KICNpbmNsdWRlIDx3ZWJraXQyL1dlYktpdFdlYlBhZ2UuaD4KIAo=
</data>
<flag name="review"
          id="220408"
          type_id="1"
          status="+"
          setter="andersca"
    />
          </attachment>
      

    </bug>

</bugzilla>