<?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>149588</bug_id>
          
          <creation_ts>2015-09-27 16:05:21 -0700</creation_ts>
          <short_desc>[GTK] Add autocleanups</short_desc>
          <delta_ts>2015-10-06 21:08:56 -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>WebKitGTK</component>
          <version>Other</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></keywords>
          <priority>P2</priority>
          <bug_severity>Enhancement</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Michael Catanzaro">mcatanzaro</reporter>
          <assigned_to name="Michael Catanzaro">mcatanzaro</assigned_to>
          <cc>cgarcia</cc>
    
    <cc>darin</cc>
    
    <cc>mcatanzaro</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1128945</commentid>
    <comment_count>0</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2015-09-27 16:05:21 -0700</bug_when>
    <thetext>Add autocleanups, for its own sake, and so derived classes (like EphyWebView) can use the G_DECLARE macros.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1128947</commentid>
    <comment_count>1</comment_count>
      <attachid>261993</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2015-09-27 17:18:49 -0700</bug_when>
    <thetext>Created attachment 261993
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1128969</commentid>
    <comment_count>2</comment_count>
      <attachid>261993</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2015-09-28 00:10:24 -0700</bug_when>
    <thetext>Comment on attachment 261993
Patch

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

How do the new cleanups header affect the gtk-doc? Should we filter them out in files_to_ignore() (generate-gtkdoc)?

&gt; Source/WebCore/bindings/scripts/CodeGeneratorGObject.pm:904
&gt; +#ifdef G_DEFINE_AUTOPTR_CLEANUP_FUNC
&gt; +G_DEFINE_AUTOPTR_CLEANUP_FUNC (${className}, g_object_unref)
&gt; +#endif

Why not generate a WebKitDOMAutocleanups.h? it would be consistent with the other autocleanups headers. You could modify gobject-generate-headers.pl to receive an &quot;autocleanup&quot; header type.

&gt; Source/WebKit2/PlatformGTK.cmake:886
&gt; +set(WebKit2GTK_GIR_HEADERS ${WebKit2GTK_INSTALLED_HEADERS})
&gt; +list(REMOVE_ITEM WebKit2GTK_GIR_HEADERS ${WEBKIT2_DIR}/UIProcess/API/gtk/WebKitAutocleanups.h)

Instead of this, we could add #ifndef __GI_SCANNER__ to the autocleanup headers.

&gt; Source/WebKit2/PlatformGTK.cmake:930
&gt; +set(WebKit2WebExtension_GIR_HEADERS ${WebKit2WebExtension_INSTALLED_HEADERS})
&gt; +list(REMOVE_ITEM WebKit2WebExtension_GIR_HEADERS
&gt; +    ${WEBKIT2_DIR}/WebProcess/InjectedBundle/API/gtk/WebKitWebExtensionAutocleanups.h)

Ditto.

&gt; Source/WebKit2/UIProcess/API/gtk/WebKitAutocleanups.h:78
&gt; +G_DEFINE_AUTOPTR_CLEANUP_FUNC (WebKitUserStyleSheet, webkit_user_style_sheet_unref)

hmm, it seems very easy to forget adding a new autoptr definition when adding a new type to the API. We should at least document it here http://trac.webkit.org/wiki/WebKitGTK/AddingNewWebKit2API once this lands.

&gt; Tools/TestWebKitAPI/Tests/WebKit2Gtk/TestAutocleanups.cpp:25
&gt; +static void testAutocleanups(Test* test, gconstpointer)

testUIProcessAutocleanups

&gt; Tools/TestWebKitAPI/Tests/WebKit2Gtk/TestAutocleanups.cpp:45
&gt; +    Test::add(&quot;Autocleanup&quot;, &quot;Autocleanups&quot;, testAutocleanups);

Use lower case for the text case name. I would use &quot;ui-procress&quot; for example.

&gt; Tools/TestWebKitAPI/Tests/WebKit2Gtk/TestAutocleanups.cpp:47
&gt; +    // DOM autocleanups are tested as part of WebExtensionTest.

Add them here better, create a web process test instead of using the web extensions one with a DBus message. See DOM*Test.cpp or FrameTest.cpp for an exmaple of how to create a web process test.

&gt; Tools/TestWebKitAPI/Tests/WebKit2Gtk/WebExtensionTest.cpp:272
&gt; +        g_assert(page);

WEBKIT_IS_WEB_PAGE(page)

&gt; Tools/TestWebKitAPI/Tests/WebKit2Gtk/WebExtensionTest.cpp:274
&gt; +        g_object_add_weak_pointer(G_OBJECT(page), reinterpret_cast&lt;void**&gt;(&amp;watchedPage));

In a web process test you can use assertObjectIsDeletedWhenTestFinishes()

&gt; Tools/TestWebKitAPI/Tests/WebKit2Gtk/WebExtensionTest.cpp:278
&gt; +        g_assert(document);

WEBKIT_DOM_IS_DOCUMENT(document)

&gt; Tools/TestWebKitAPI/Tests/WebKit2Gtk/WebExtensionTest.cpp:284
&gt; +        g_assert(window);

WEBKIT_DOM_IS_DOM_WINDOW(window)

&gt; Tools/TestWebKitAPI/Tests/WebKit2Gtk/WebExtensionTest.cpp:290
&gt; +        g_assert(range);

WEBKIT_DOM_IS_RANGE(range)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1129468</commentid>
    <comment_count>3</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2015-09-29 18:43:45 -0700</bug_when>
    <thetext>(In reply to comment #2) 
&gt; How do the new cleanups header affect the gtk-doc? Should we filter them out
&gt; in files_to_ignore() (generate-gtkdoc)?

It causes no problems for the gtk-doc, at least not that I have noticed.

&gt; Why not generate a WebKitDOMAutocleanups.h? it would be consistent with the
&gt; other autocleanups headers. You could modify gobject-generate-headers.pl to
&gt; receive an &quot;autocleanup&quot; header type.

OK, I didn&apos;t realize how easy this would be.

&gt; Instead of this, we could add #ifndef __GI_SCANNER__ to the autocleanup
&gt; headers.

I went looking for such a macro but didn&apos;t find it; thanks.
 
&gt; hmm, it seems very easy to forget adding a new autoptr definition when
&gt; adding a new type to the API. We should at least document it here
&gt; http://trac.webkit.org/wiki/WebKitGTK/AddingNewWebKit2API once this lands.

OK. We&apos;ll still forget, but it&apos;s not really a huge problem if we do; we&apos;ll just fix it once someone notices.

&gt; testUIProcessAutocleanups

OK
 
&gt; Use lower case for the text case name. I would use &quot;ui-procress&quot; for example.

OK

&gt; Add them here better, create a web process test instead of using the web
&gt; extensions one with a DBus message. See DOM*Test.cpp or FrameTest.cpp for an
&gt; exmaple of how to create a web process test.

I&apos;ll try that.

&gt; WEBKIT_IS_WEB_PAGE(page)

OK
 
&gt; In a web process test you can use assertObjectIsDeletedWhenTestFinishes()

OK

&gt; &gt; Tools/TestWebKitAPI/Tests/WebKit2Gtk/WebExtensionTest.cpp:278
&gt; &gt; +        g_assert(document);
&gt; 
&gt; WEBKIT_DOM_IS_DOCUMENT(document)
&gt; 
&gt; &gt; Tools/TestWebKitAPI/Tests/WebKit2Gtk/WebExtensionTest.cpp:284
&gt; &gt; +        g_assert(window);
&gt; 
&gt; WEBKIT_DOM_IS_DOM_WINDOW(window)
&gt; 
&gt; &gt; Tools/TestWebKitAPI/Tests/WebKit2Gtk/WebExtensionTest.cpp:290
&gt; &gt; +        g_assert(range);
&gt; 
&gt; WEBKIT_DOM_IS_RANGE(range)

OK</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1130018</commentid>
    <comment_count>4</comment_count>
      <attachid>262281</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2015-10-01 13:17:53 -0700</bug_when>
    <thetext>Created attachment 262281
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1130972</commentid>
    <comment_count>5</comment_count>
      <attachid>262281</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-10-06 09:13:36 -0700</bug_when>
    <thetext>Comment on attachment 262281
Patch

Rubber stamping this. While I’m not an expert on GTK this looks fine.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1130973</commentid>
    <comment_count>6</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-10-06 09:14:15 -0700</bug_when>
    <thetext>Unless you want to wait for another review from Carlos.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1131010</commentid>
    <comment_count>7</comment_count>
      <attachid>262281</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2015-10-06 10:20:25 -0700</bug_when>
    <thetext>Comment on attachment 262281
Patch

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

Patch looks good to me, just fix my comments before landing. Sorry for the delay reviewing this.

&gt; Tools/TestWebKitAPI/Tests/WebKit2Gtk/AutocleanupsTest.cpp:24
&gt; +

We should guard this file too, because it uses g_autoptr that is only available since glib 2.44, but our minimim version supported is 2.36

&gt; Tools/TestWebKitAPI/Tests/WebKit2Gtk/AutocleanupsTest.cpp:57
&gt; +        if (!strcmp(testName, &quot;web-process-autocleanups&quot;))

web-process is redundant here. we can just use autocleanups for the test name.

&gt; Tools/TestWebKitAPI/Tests/WebKit2Gtk/TestAutocleanups.cpp:24
&gt; +

And this one too.

&gt; Tools/TestWebKitAPI/Tests/WebKit2Gtk/TestAutocleanups.cpp:46
&gt; +    test-&gt;loadHtml(testHTML, 0);

0 -&gt; nullptr.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1131039</commentid>
    <comment_count>8</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2015-10-06 11:11:32 -0700</bug_when>
    <thetext>&gt; We should guard this file too, because it uses g_autoptr that is only
&gt; available since glib 2.44, but our minimim version supported is 2.36

OK

&gt; web-process is redundant here. we can just use autocleanups for the test
&gt; name.

OK

&gt; And this one too.

OK

&gt; 0 -&gt; nullptr.

OK</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1131217</commentid>
    <comment_count>9</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2015-10-06 20:57:25 -0700</bug_when>
    <thetext>I&apos;m noticing these:

/home/mcatanzaro/src/WebKit/Source/WebKit2/UIProcess/API/gtk/WebKitAutocleanups.h:33: the __GI_SCANNER__ constant should only be used with simple #ifdef or #endif: #if  defined(G_DEFINE_AUTOPTR_CLEANUP_FUNC) &amp;&amp; !defined(__GI_SCANNER__)

So I&apos;ve switched to this stupid construct:

#ifdef G_DEFINE_AUTOPTR_CLEANUP_FUNC
#ifndef __GI_SCANNER__

Just to avoid the warnings. The __GI_SCANNER__ is not added because it breaks anything, only because it silences a warning spew from the scanner. glib&apos;s autocleanups cause the same warning spew, so it&apos;s really not our problem, but it&apos;s always nice to avoid unnecessary warnings....</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1131218</commentid>
    <comment_count>10</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2015-10-06 21:05:29 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; &gt; web-process is redundant here. we can just use autocleanups for the test
&gt; &gt; name.
&gt; 
&gt; OK
&gt; 
&gt; &gt; And this one too.
&gt; 
&gt; OK

Turns out it has to match the test name here:

    WebViewTest::add(&quot;Autocleanups&quot;, &quot;ui-process-autocleanups&quot;, testUIProcessAutocleanups);
    WebViewTest::add(&quot;Autocleanups&quot;, &quot;web-process-autocleanups&quot;, testWebProcessAutocleanups);

Since there&apos;s an assert:

ERROR:../../Tools/TestWebKitAPI/Tests/WebKit2Gtk/WebProcessTest.cpp:53:static std::unique_ptr&lt;WebProcessTest&gt; WebProcessTest::create(const WTF::String&amp;): assertion failed: (testsMap().contains(testName))</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1131219</commentid>
    <comment_count>11</comment_count>
      <attachid>262574</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2015-10-06 21:07:44 -0700</bug_when>
    <thetext>Created attachment 262574
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1131220</commentid>
    <comment_count>12</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2015-10-06 21:08:56 -0700</bug_when>
    <thetext>Committed r190660: &lt;http://trac.webkit.org/changeset/190660&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>261993</attachid>
            <date>2015-09-27 17:18:49 -0700</date>
            <delta_ts>2015-10-01 13:17:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-149588-20150927191827.patch</filename>
            <type>text/plain</type>
            <size>23766</size>
            <attacher name="Michael Catanzaro">mcatanzaro</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTkwMjE4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzU2MWQ4YWM2NWNjMTIy
NmJhMWUzOTRhMmMxOGY5YzMxNGE4ODdjMC4uYmVkMjJmNzQ1ZmE1YjM5YzcxOWFlYjYyZmNiZDkx
MGVhMzE1ZDljMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDE1LTA5LTI3ICBNaWNo
YWVsIENhdGFuemFybyAgPG1jYXRhbnphcm9AaWdhbGlhLmNvbT4KKworICAgICAgICBbR1RLXSBB
ZGQgYXV0b2NsZWFudXBzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xNDk1ODgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBHZW5lcmF0ZSBhdXRvY2xlYW51cHMgZm9yIHRoZSBET00gb2JqZWN0cy4KKworICAg
ICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckdPYmplY3QucG06CisgICAgICAg
IChHZW5lcmF0ZUhlYWRlcik6CisKIDIwMTUtMDktMjQgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdl
YmtpdC5vcmc+CiAKICAgICAgICAgTWFrZSBldmVudCBkaXNwYXRjaGluZyByZXNwZWN0IHNsb3R0
aW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKaW5kZXggYzQ5MzZhODIwZWM1Y2IyMmM1NmM4MDc2NTU0MmE0M2U4ZDZhMzk3
ZS4uNGM5MWI3ZGIyMDkyNmRhOTFhZWZjNTYxOWU5MTRhYzBmMTAxYWYxZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE2IEBACisyMDE1LTA5LTI3ICBNaWNoYWVsIENhdGFuemFybyAgPG1jYXRhbnph
cm9AaWdhbGlhLmNvbT4KKworICAgICAgICBbR1RLXSBBZGQgYXV0b2NsZWFudXBzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDk1ODgKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFBsYXRmb3JtR1RLLmNt
YWtlOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEF1dG9jbGVhbnVwcy5oOiBB
ZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay93ZWJraXQyLmg6ICNpbmNsdWRlIHRo
ZSBhdXRvY2xlYW51cHMuCisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Z3RrL1dlYktpdFdlYkV4dGVuc2lvbkF1dG9jbGVhbnVwcy5oOiBBZGRlZC4KKyAgICAgICAgKiBX
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvd2Via2l0LXdlYi1leHRlbnNpb24uaDog
I2luY2x1ZGUgdGhlIGF1dG9jbGVhbnVwcy4KKwogMjAxNS0wOS0yNCAgQ2hyaXMgRHVtZXogIDxj
ZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIERyb3AgWFBBVEhfTkFNRVNQQUNFX05PREUgZnJv
bSBOb2RlOjpOb2RlVHlwZSBlbnVtCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JHT2JqZWN0LnBtIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yR09iamVjdC5wbQppbmRleCAyNTFjZGI4MmQyM2I3MWU5
NTNkMDA4ZWRmMmI5ZGFkYTY5ZjI0MmVlLi5jY2Q2YTM3ZjJhODZiY2QxOGFkODBmNTkwYzVjZDE4
YjUzYWI5ODc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0Nv
ZGVHZW5lcmF0b3JHT2JqZWN0LnBtCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvQ29kZUdlbmVyYXRvckdPYmplY3QucG0KQEAgLTg5OSw2ICs4OTksMTAgQEAgc3RydWN0IF8k
e2NsYXNzTmFtZX1DbGFzcyB7CiAgICAgJHtwYXJlbnRDbGFzc05hbWV9Q2xhc3MgcGFyZW50X2Ns
YXNzOwogfTsKIAorI2lmZGVmIEdfREVGSU5FX0FVVE9QVFJfQ0xFQU5VUF9GVU5DCitHX0RFRklO
RV9BVVRPUFRSX0NMRUFOVVBfRlVOQyAoJHtjbGFzc05hbWV9LCBnX29iamVjdF91bnJlZikKKyNl
bmRpZgorCiBFT0YKIAogICAgIHB1c2goQGhCb2R5LCAkaW1wbENvbnRlbnQpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm1HVEsuY21ha2UgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0
Zm9ybUdUSy5jbWFrZQppbmRleCBiNWJlZGVjYjM0MTg2MDcyNjdhZmI1Mjc4ZjY3OGQ1NTkzZDc5
ZGE4Li5iZThiYTZjNzlmZDc5NDQxMGE3OGFkNjU2ZDVmZTE0ZTNmMDIwMWExIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybUdUSy5jbWFrZQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9Q
bGF0Zm9ybUdUSy5jbWFrZQpAQCAtMTA4LDYgKzEwOCw3IEBAIGxpc3QoQVBQRU5EIFdlYktpdDJf
U09VUkNFUwogICAgIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEF1dGhlbnRpY2F0aW9uRGlhbG9n
LmgKICAgICBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRBdXRoZW50aWNhdGlvblJlcXVlc3QuY3Bw
CiAgICAgVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0QXV0aGVudGljYXRpb25SZXF1ZXN0LmgKKyAg
ICBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRBdXRvY2xlYW51cHMuaAogICAgIFVJUHJvY2Vzcy9B
UEkvZ3RrL1dlYktpdEJhY2tGb3J3YXJkTGlzdC5jcHAKICAgICBVSVByb2Nlc3MvQVBJL2d0ay9X
ZWJLaXRCYWNrRm9yd2FyZExpc3QuaAogICAgIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEJhY2tG
b3J3YXJkTGlzdEl0ZW0uY3BwCkBAIC0zNzUsNiArMzc2LDcgQEAgc2V0KFdlYktpdDJHVEtfSU5T
VEFMTEVEX0hFQURFUlMKICAgICAke0RFUklWRURfU09VUkNFU19XRUJLSVQyR1RLX0FQSV9ESVJ9
L1dlYktpdEVudW1UeXBlcy5oCiAgICAgJHtERVJJVkVEX1NPVVJDRVNfV0VCS0lUMkdUS19BUElf
RElSfS9XZWJLaXRWZXJzaW9uLmgKICAgICAke1dFQktJVDJfRElSfS9VSVByb2Nlc3MvQVBJL2d0
ay9XZWJLaXRBdXRoZW50aWNhdGlvblJlcXVlc3QuaAorICAgICR7V0VCS0lUMl9ESVJ9L1VJUHJv
Y2Vzcy9BUEkvZ3RrL1dlYktpdEF1dG9jbGVhbnVwcy5oCiAgICAgJHtXRUJLSVQyX0RJUn0vVUlQ
cm9jZXNzL0FQSS9ndGsvV2ViS2l0QmFja0ZvcndhcmRMaXN0LmgKICAgICAke1dFQktJVDJfRElS
fS9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRCYWNrRm9yd2FyZExpc3RJdGVtLmgKICAgICAke1dF
QktJVDJfRElSfS9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRDb2xvckNob29zZXJSZXF1ZXN0LmgK
QEAgLTQzMSw2ICs0MzMsNyBAQCBzZXQoV2ViS2l0MldlYkV4dGVuc2lvbl9JTlNUQUxMRURfSEVB
REVSUwogICAgICR7V0VCS0lUMl9ESVJ9L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0
ay9XZWJLaXRTY3JpcHRXb3JsZC5oCiAgICAgJHtXRUJLSVQyX0RJUn0vV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvZ3RrL1dlYktpdFdlYkVkaXRvci5oCiAgICAgJHtXRUJLSVQyX0RJUn0v
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL1dlYktpdFdlYkV4dGVuc2lvbi5oCisg
ICAgJHtXRUJLSVQyX0RJUn0vV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL1dlYktp
dFdlYkV4dGVuc2lvbkF1dG9jbGVhbnVwcy5oCiAgICAgJHtXRUJLSVQyX0RJUn0vV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL1dlYktpdFdlYkhpdFRlc3RSZXN1bHQuaAogICAgICR7
V0VCS0lUMl9ESVJ9L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9XZWJLaXRXZWJQ
YWdlLmgKICAgICAke1dFQktJVDJfRElSfS9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9n
dGsvd2Via2l0LXdlYi1leHRlbnNpb24uaApAQCAtODc5LDYgKzg4Miw5IEBAIGVuZGlmICgpCiBz
dHJpbmcoUkVHRVggTUFUQ0hBTEwgIi1MW14gXSoiCiAgICAgSU5UUk9TUEVDVElPTl9BRERJVElP
TkFMX0xJTktFUl9GTEFHUyAke0NNQUtFX1NIQVJFRF9MSU5LRVJfRkxBR1N9KQogCitzZXQoV2Vi
S2l0MkdUS19HSVJfSEVBREVSUyAke1dlYktpdDJHVEtfSU5TVEFMTEVEX0hFQURFUlN9KQorbGlz
dChSRU1PVkVfSVRFTSBXZWJLaXQyR1RLX0dJUl9IRUFERVJTICR7V0VCS0lUMl9ESVJ9L1VJUHJv
Y2Vzcy9BUEkvZ3RrL1dlYktpdEF1dG9jbGVhbnVwcy5oKQorCiBhZGRfY3VzdG9tX2NvbW1hbmQo
CiAgICAgT1VUUFVUICR7Q01BS0VfQklOQVJZX0RJUn0vV2ViS2l0Mi0ke1dFQktJVEdUS19BUElf
VkVSU0lPTn0uZ2lyCiAgICAgREVQRU5EUyBXZWJLaXQyCkBAIC05MTUsMTAgKzkyMSwxNCBAQCBh
ZGRfY3VzdG9tX2NvbW1hbmQoCiAgICAgICAgIC1JJHtERVJJVkVEX1NPVVJDRVNfRElSfQogICAg
ICAgICAtSSR7REVSSVZFRF9TT1VSQ0VTX1dFQktJVDJHVEtfRElSfQogICAgICAgICAtSSR7Rk9S
V0FSRElOR19IRUFERVJTX1dFQktJVDJHVEtfRElSfQotICAgICAgICAke1dlYktpdDJHVEtfSU5T
VEFMTEVEX0hFQURFUlN9CisgICAgICAgICR7V2ViS2l0MkdUS19HSVJfSEVBREVSU30KICAgICAg
ICAgJHtXRUJLSVQyX0RJUn0vVUlQcm9jZXNzL0FQSS9ndGsvKi5jcHAKICkKIAorc2V0KFdlYktp
dDJXZWJFeHRlbnNpb25fR0lSX0hFQURFUlMgJHtXZWJLaXQyV2ViRXh0ZW5zaW9uX0lOU1RBTExF
RF9IRUFERVJTfSkKK2xpc3QoUkVNT1ZFX0lURU0gV2ViS2l0MldlYkV4dGVuc2lvbl9HSVJfSEVB
REVSUworICAgICR7V0VCS0lUMl9ESVJ9L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0
ay9XZWJLaXRXZWJFeHRlbnNpb25BdXRvY2xlYW51cHMuaCkKKwogYWRkX2N1c3RvbV9jb21tYW5k
KAogICAgIE9VVFBVVCAke0NNQUtFX0JJTkFSWV9ESVJ9L1dlYktpdDJXZWJFeHRlbnNpb24tJHtX
RUJLSVRHVEtfQVBJX1ZFUlNJT059LmdpcgogICAgIERFUEVORFMgJHtDTUFLRV9CSU5BUllfRElS
fS9KYXZhU2NyaXB0Q29yZS0ke1dFQktJVEdUS19BUElfVkVSU0lPTn0uZ2lyCkBAIC05NTksNyAr
OTY5LDcgQEAgYWRkX2N1c3RvbV9jb21tYW5kKAogICAgICAgICAtSSR7Rk9SV0FSRElOR19IRUFE
RVJTX1dFQktJVDJHVEtfRVhURU5TSU9OX0RJUn0KICAgICAgICAgLUkke1dFQktJVDJfRElSfS9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsKICAgICAgICAgJHtHT2JqZWN0RE9NQmlu
ZGluZ3NfR0lSX0hFQURFUlN9Ci0gICAgICAgICR7V2ViS2l0MldlYkV4dGVuc2lvbl9JTlNUQUxM
RURfSEVBREVSU30KKyAgICAgICAgJHtXZWJLaXQyV2ViRXh0ZW5zaW9uX0dJUl9IRUFERVJTfQog
ICAgICAgICAke1dFQktJVDJfRElSfS9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRDb250ZXh0TWVu
dS5oCiAgICAgICAgICR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdENvbnRl
eHRNZW51QWN0aW9ucy5oCiAgICAgICAgICR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkvZ3Rr
L1dlYktpdENvbnRleHRNZW51SXRlbS5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL2d0ay9XZWJLaXRBdXRvY2xlYW51cHMuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvZ3RrL1dlYktpdEF1dG9jbGVhbnVwcy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk1ZDc5YThhMGJh
YmM3MDE5ZTIwMzkyMWRmZDFhOWZiMjc0YzAzZjIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRBdXRvY2xlYW51cHMuaApAQCAtMCwwICsx
LDgyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IElnYWxpYSBTLkwuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpZiAhZGVmaW5lZChfX1dFQktJVDJfSF9JTlNJREVfXykgJiYgIWRlZmluZWQoV0VCS0lUMl9D
T01QSUxBVElPTikKKyNlcnJvciAiT25seSA8d2Via2l0Mi93ZWJraXQyLmg+IGNhbiBiZSBpbmNs
dWRlZCBkaXJlY3RseS4iCisjZW5kaWYKKworI2lmbmRlZiBXZWJLaXRBdXRvY2xlYW51cHNfaAor
I2RlZmluZSBXZWJLaXRBdXRvY2xlYW51cHNfaAorCisjaWZkZWYgR19ERUZJTkVfQVVUT1BUUl9D
TEVBTlVQX0ZVTkMKKworR19ERUZJTkVfQVVUT1BUUl9DTEVBTlVQX0ZVTkMgKFdlYktpdEF1dGhl
bnRpY2F0aW9uUmVxdWVzdCwgZ19vYmplY3RfdW5yZWYpCitHX0RFRklORV9BVVRPUFRSX0NMRUFO
VVBfRlVOQyAoV2ViS2l0QmFja0ZvcndhcmRMaXN0LCBnX29iamVjdF91bnJlZikKK0dfREVGSU5F
X0FVVE9QVFJfQ0xFQU5VUF9GVU5DIChXZWJLaXRCYWNrRm9yd2FyZExpc3RJdGVtLCBnX29iamVj
dF91bnJlZikKK0dfREVGSU5FX0FVVE9QVFJfQ0xFQU5VUF9GVU5DIChXZWJLaXRDb2xvckNob29z
ZXJSZXF1ZXN0LCBnX29iamVjdF91bnJlZikKK0dfREVGSU5FX0FVVE9QVFJfQ0xFQU5VUF9GVU5D
IChXZWJLaXRDb250ZXh0TWVudSwgZ19vYmplY3RfdW5yZWYpCitHX0RFRklORV9BVVRPUFRSX0NM
RUFOVVBfRlVOQyAoV2ViS2l0Q29udGV4dE1lbnVJdGVtLCBnX29iamVjdF91bnJlZikKK0dfREVG
SU5FX0FVVE9QVFJfQ0xFQU5VUF9GVU5DIChXZWJLaXRDb29raWVNYW5hZ2VyLCBnX29iamVjdF91
bnJlZikKK0dfREVGSU5FX0FVVE9QVFJfQ0xFQU5VUF9GVU5DIChXZWJLaXREb3dubG9hZCwgZ19v
YmplY3RfdW5yZWYpCitHX0RFRklORV9BVVRPUFRSX0NMRUFOVVBfRlVOQyAoV2ViS2l0RWRpdG9y
U3RhdGUsIGdfb2JqZWN0X3VucmVmKQorR19ERUZJTkVfQVVUT1BUUl9DTEVBTlVQX0ZVTkMgKFdl
YktpdEZhdmljb25EYXRhYmFzZSwgZ19vYmplY3RfdW5yZWYpCitHX0RFRklORV9BVVRPUFRSX0NM
RUFOVVBfRlVOQyAoV2ViS2l0RmlsZUNob29zZXJSZXF1ZXN0LCBnX29iamVjdF91bnJlZikKK0df
REVGSU5FX0FVVE9QVFJfQ0xFQU5VUF9GVU5DIChXZWJLaXRGaW5kQ29udHJvbGxlciwgZ19vYmpl
Y3RfdW5yZWYpCitHX0RFRklORV9BVVRPUFRSX0NMRUFOVVBfRlVOQyAoV2ViS2l0Rm9ybVN1Ym1p
c3Npb25SZXF1ZXN0LCBnX29iamVjdF91bnJlZikKK0dfREVGSU5FX0FVVE9QVFJfQ0xFQU5VUF9G
VU5DIChXZWJLaXRHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0LCBnX29iamVjdF91bnJlZikK
K0dfREVGSU5FX0FVVE9QVFJfQ0xFQU5VUF9GVU5DIChXZWJLaXRIaXRUZXN0UmVzdWx0LCBnX29i
amVjdF91bnJlZikKK0dfREVGSU5FX0FVVE9QVFJfQ0xFQU5VUF9GVU5DIChXZWJLaXRJbnN0YWxs
TWlzc2luZ01lZGlhUGx1Z2luc1Blcm1pc3Npb25SZXF1ZXN0LCBnX29iamVjdF91bnJlZikKK0df
REVGSU5FX0FVVE9QVFJfQ0xFQU5VUF9GVU5DIChXZWJLaXROYXZpZ2F0aW9uUG9saWN5RGVjaXNp
b24sIGdfb2JqZWN0X3VucmVmKQorR19ERUZJTkVfQVVUT1BUUl9DTEVBTlVQX0ZVTkMgKFdlYktp
dE5vdGlmaWNhdGlvbiwgZ19vYmplY3RfdW5yZWYpCitHX0RFRklORV9BVVRPUFRSX0NMRUFOVVBf
RlVOQyAoV2ViS2l0Tm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QsIGdfb2JqZWN0X3VucmVm
KQorR19ERUZJTkVfQVVUT1BUUl9DTEVBTlVQX0ZVTkMgKFdlYktpdFBlcm1pc3Npb25SZXF1ZXN0
LCBnX29iamVjdF91bnJlZikKK0dfREVGSU5FX0FVVE9QVFJfQ0xFQU5VUF9GVU5DIChXZWJLaXRQ
bHVnaW4sIGdfb2JqZWN0X3VucmVmKQorR19ERUZJTkVfQVVUT1BUUl9DTEVBTlVQX0ZVTkMgKFdl
YktpdFBvbGljeURlY2lzaW9uLCBnX29iamVjdF91bnJlZikKK0dfREVGSU5FX0FVVE9QVFJfQ0xF
QU5VUF9GVU5DIChXZWJLaXRQcmludE9wZXJhdGlvbiwgZ19vYmplY3RfdW5yZWYpCitHX0RFRklO
RV9BVVRPUFRSX0NMRUFOVVBfRlVOQyAoV2ViS2l0UmVzcG9uc2VQb2xpY3lEZWNpc2lvbiwgZ19v
YmplY3RfdW5yZWYpCitHX0RFRklORV9BVVRPUFRSX0NMRUFOVVBfRlVOQyAoV2ViS2l0U2VjdXJp
dHlNYW5hZ2VyLCBnX29iamVjdF91bnJlZikKK0dfREVGSU5FX0FVVE9QVFJfQ0xFQU5VUF9GVU5D
IChXZWJLaXRTZXR0aW5ncywgZ19vYmplY3RfdW5yZWYpCitHX0RFRklORV9BVVRPUFRSX0NMRUFO
VVBfRlVOQyAoV2ViS2l0VVJJUmVxdWVzdCwgZ19vYmplY3RfdW5yZWYpCitHX0RFRklORV9BVVRP
UFRSX0NMRUFOVVBfRlVOQyAoV2ViS2l0VVJJUmVzcG9uc2UsIGdfb2JqZWN0X3VucmVmKQorR19E
RUZJTkVfQVVUT1BUUl9DTEVBTlVQX0ZVTkMgKFdlYktpdFVSSVNjaGVtZVJlcXVlc3QsIGdfb2Jq
ZWN0X3VucmVmKQorR19ERUZJTkVfQVVUT1BUUl9DTEVBTlVQX0ZVTkMgKFdlYktpdFVzZXJDb250
ZW50TWFuYWdlciwgZ19vYmplY3RfdW5yZWYpCitHX0RFRklORV9BVVRPUFRSX0NMRUFOVVBfRlVO
QyAoV2ViS2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QsIGdfb2JqZWN0X3VucmVmKQorR19E
RUZJTkVfQVVUT1BUUl9DTEVBTlVQX0ZVTkMgKFdlYktpdFdlYkNvbnRleHQsIGdfb2JqZWN0X3Vu
cmVmKQorR19ERUZJTkVfQVVUT1BUUl9DTEVBTlVQX0ZVTkMgKFdlYktpdFdlYkluc3BlY3Rvciwg
Z19vYmplY3RfdW5yZWYpCitHX0RFRklORV9BVVRPUFRSX0NMRUFOVVBfRlVOQyAoV2ViS2l0V2Vi
UmVzb3VyY2UsIGdfb2JqZWN0X3VucmVmKQorR19ERUZJTkVfQVVUT1BUUl9DTEVBTlVQX0ZVTkMg
KFdlYktpdFdlYlZpZXcsIGdfb2JqZWN0X3VucmVmKQorR19ERUZJTkVfQVVUT1BUUl9DTEVBTlVQ
X0ZVTkMgKFdlYktpdFdlYnNpdGVEYXRhTWFuYWdlciwgZ19vYmplY3RfdW5yZWYpCitHX0RFRklO
RV9BVVRPUFRSX0NMRUFOVVBfRlVOQyAoV2ViS2l0V2luZG93UHJvcGVydGllcywgZ19vYmplY3Rf
dW5yZWYpCisKK0dfREVGSU5FX0FVVE9QVFJfQ0xFQU5VUF9GVU5DIChXZWJLaXRDcmVkZW50aWFs
LCB3ZWJraXRfY3JlZGVudGlhbF9mcmVlKQorR19ERUZJTkVfQVVUT1BUUl9DTEVBTlVQX0ZVTkMg
KFdlYktpdEphdmFzY3JpcHRSZXN1bHQsIHdlYmtpdF9qYXZhc2NyaXB0X3Jlc3VsdF91bnJlZikK
K0dfREVGSU5FX0FVVE9QVFJfQ0xFQU5VUF9GVU5DIChXZWJLaXRNaW1lSW5mbywgd2Via2l0X21p
bWVfaW5mb191bnJlZikKK0dfREVGSU5FX0FVVE9QVFJfQ0xFQU5VUF9GVU5DIChXZWJLaXROYXZp
Z2F0aW9uQWN0aW9uLCB3ZWJraXRfbmF2aWdhdGlvbl9hY3Rpb25fZnJlZSkKK0dfREVGSU5FX0FV
VE9QVFJfQ0xFQU5VUF9GVU5DIChXZWJLaXRVc2VyU2NyaXB0LCB3ZWJraXRfdXNlcl9zY3JpcHRf
dW5yZWYpCitHX0RFRklORV9BVVRPUFRSX0NMRUFOVVBfRlVOQyAoV2ViS2l0VXNlclN0eWxlU2hl
ZXQsIHdlYmtpdF91c2VyX3N0eWxlX3NoZWV0X3VucmVmKQorCisjZW5kaWYgLy8gR19ERUZJTkVf
QVVUT1BUUl9DTEVBTlVQX0ZVTkMKKworI2VuZGlmIC8vIFdlYktpdEF1dG9jbGVhbnVwc19oCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay93ZWJraXQyLmggYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay93ZWJraXQyLmgKaW5kZXggN2UwOGE2NTA2
NTkxODFlNTdlMWRjMDQzNGVlMjdhNjI5YWM1ZThlNS4uYjk1YTc2MGUzOGIzYzY2NWVjYTM2ZWZi
Nzg4MWZiY2I0N2JkYmY3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9ndGsvd2Via2l0Mi5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL3dl
YmtpdDIuaApAQCAtNzcsNiArNzcsOCBAQAogI2luY2x1ZGUgPHdlYmtpdDIvV2ViS2l0V2Vic2l0
ZURhdGFNYW5hZ2VyLmg+CiAjaW5jbHVkZSA8d2Via2l0Mi9XZWJLaXRXaW5kb3dQcm9wZXJ0aWVz
Lmg+CiAKKyNpbmNsdWRlIDx3ZWJraXQyL1dlYktpdEF1dG9jbGVhbnVwcy5oPgorCiAjdW5kZWYg
X19XRUJLSVQyX0hfSU5TSURFX18KIAogI2VuZGlmIC8qIF9fV0VCS0lUMl9IX18gKi8KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9X
ZWJLaXRXZWJFeHRlbnNpb25BdXRvY2xlYW51cHMuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9XZWJLaXRXZWJFeHRlbnNpb25BdXRvY2xlYW51cHMu
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5mODU0ZDliYzMxNWRkZTk5Mzc2YjllMzMyOTUzNDU3ZjFkMWNjOTVhCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9BUEkvZ3RrL1dlYktpdFdlYkV4dGVuc2lvbkF1dG9jbGVhbnVwcy5oCkBAIC0wLDAgKzEsNDQg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lm
ICFkZWZpbmVkKF9fV0VCS0lUX1dFQl9FWFRFTlNJT05fSF9JTlNJREVfXykgJiYgIWRlZmluZWQo
V0VCS0lUMl9DT01QSUxBVElPTikKKyNlcnJvciAiT25seSA8d2Via2l0Mi93ZWJraXQtd2ViLWV4
dGVuc2lvbi5oPiBjYW4gYmUgaW5jbHVkZWQgZGlyZWN0bHkuIgorI2VuZGlmCisKKyNpZm5kZWYg
V2ViS2l0V2ViRXh0ZW5zaW9uQXV0b2NsZWFudXBzX2gKKyNkZWZpbmUgV2ViS2l0V2ViRXh0ZW5z
aW9uQXV0b2NsZWFudXBzX2gKKworI2lmZGVmIEdfREVGSU5FX0FVVE9QVFJfQ0xFQU5VUF9GVU5D
CisKK0dfREVGSU5FX0FVVE9QVFJfQ0xFQU5VUF9GVU5DIChXZWJLaXRGcmFtZSwgZ19vYmplY3Rf
dW5yZWYpCitHX0RFRklORV9BVVRPUFRSX0NMRUFOVVBfRlVOQyAoV2ViS2l0U2NyaXB0V29ybGQs
IGdfb2JqZWN0X3VucmVmKQorR19ERUZJTkVfQVVUT1BUUl9DTEVBTlVQX0ZVTkMgKFdlYktpdFdl
YkVkaXRvciwgZ19vYmplY3RfdW5yZWYpCitHX0RFRklORV9BVVRPUFRSX0NMRUFOVVBfRlVOQyAo
V2ViS2l0V2ViRXh0ZW5zaW9uLCBnX29iamVjdF91bnJlZikKK0dfREVGSU5FX0FVVE9QVFJfQ0xF
QU5VUF9GVU5DIChXZWJLaXRXZWJIaXRUZXN0UmVzdWx0LCBnX29iamVjdF91bnJlZikKK0dfREVG
SU5FX0FVVE9QVFJfQ0xFQU5VUF9GVU5DIChXZWJLaXRXZWJQYWdlLCBnX29iamVjdF91bnJlZikK
KworI2VuZGlmIC8vIEdfREVGSU5FX0FVVE9QVFJfQ0xFQU5VUF9GVU5DCisKKyNlbmRpZiAvLyBX
ZWJLaXRXZWJFeHRlbnNpb25BdXRvY2xlYW51cHNfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL3dlYmtpdC13ZWItZXh0ZW5zaW9u
LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvd2Vi
a2l0LXdlYi1leHRlbnNpb24uaAppbmRleCAxYzc0NmRiNWJkOTU0NjdkNWNkYTRjZmMxODczYzNh
MGNlZDBiZDM2Li5kOTAwYmRhM2I1NTY3ODRjMTE1ZTExNGEwNmQwZjQ4ZWY3MWI4MDkxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsv
d2Via2l0LXdlYi1leHRlbnNpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS9ndGsvd2Via2l0LXdlYi1leHRlbnNpb24uaApAQCAtMzksNiArMzks
OCBAQAogI2luY2x1ZGUgPHdlYmtpdDIvV2ViS2l0V2ViSGl0VGVzdFJlc3VsdC5oPgogI2luY2x1
ZGUgPHdlYmtpdDIvV2ViS2l0V2ViUGFnZS5oPgogCisjaW5jbHVkZSA8d2Via2l0Mi9XZWJLaXRX
ZWJFeHRlbnNpb25BdXRvY2xlYW51cHMuaD4KKwogI3VuZGVmIF9fV0VCS0lUX1dFQl9FWFRFTlNJ
T05fSF9JTlNJREVfXwogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rv
b2xzL0NoYW5nZUxvZwppbmRleCA4MGIyNzI4ZGZkZGI1MmMxYTVjMGY3MTZmNjk3MzgxOGE1NjI0
YmE4Li5lY2Y4YmIyYjk5MjQzY2JlMzdhY2U3ZTQ1MTlmZGQ3OTk4ODBkMzIzIDEwMDY0NAotLS0g
YS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAK
KzIwMTUtMDktMjcgIE1pY2hhZWwgQ2F0YW56YXJvICA8bWNhdGFuemFyb0BpZ2FsaWEuY29tPgor
CisgICAgICAgIFtHVEtdIEFkZCBhdXRvY2xlYW51cHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0OTU4OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyR3Rr
L0NNYWtlTGlzdHMudHh0OgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mkd0
ay9UZXN0QXV0b2NsZWFudXBzLmNwcDogQWRkZWQuIFRlc3Qgc29tZSBhdXRvY2xlYW51cHMgZm9y
IFVJCisgICAgICAgIHByb2Nlc3Mgb2JqZWN0cy4KKyAgICAgICAgKHRlc3RBdXRvY2xlYW51cHMp
OgorICAgICAgICAoYmVmb3JlQWxsKToKKyAgICAgICAgKGFmdGVyQWxsKToKKyAgICAgICAgKiBU
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJHdGsvVGVzdFdlYkV4dGVuc2lvbnMuY3BwOiBUcmln
Z2VyIGF1dG9jbGVhbnVwIHRlc3QgaW4gd2ViCisgICAgICAgIHByb2Nlc3MuCisgICAgICAgICh0
ZXN0V2ViRXh0ZW5zaW9uQXV0b2NsZWFudXBzKToKKyAgICAgICAgKGJlZm9yZUFsbCk6CisgICAg
ICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyR3RrL1dlYkV4dGVuc2lvblRlc3QuY3Bw
OiBUZXN0IHNvbWUgYXV0b2NsZWFudXBzIGZvciB3ZWIKKyAgICAgICAgcHJvY2VzcyBvYmplY3Rz
LgorICAgICAgICAodGVzdEF1dG9jbGVhbnVwcyk6CisgICAgICAgIChtZXRob2RDYWxsQ2FsbGJh
Y2spOgorCiAyMDE1LTA5LTI0ICBEYW5pZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KIAog
ICAgICAgICBGaXggdGhlIGJ1aWxkIGFmdGVyIDxodHRwOi8vdHJhYy53ZWJraXQub3JnL2NoYW5n
ZXNldC8xOTAyMTI+CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dDJHdGsvQ01ha2VMaXN0cy50eHQgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJH
dGsvQ01ha2VMaXN0cy50eHQKaW5kZXggNzRkNTI1MGQ0NGE0ZWY0ZjQwMjU0YTAwNzFiNTI2Y2E1
YzdhYjZhZi4uZDNiNmI4YWE0ZWY1NzJmMjQ5OTgxMTU5OTdkZTIxMjYwNzNhZGU3NCAxMDA2NDQK
LS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyR3RrL0NNYWtlTGlzdHMudHh0
CisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mkd0ay9DTWFrZUxpc3RzLnR4
dApAQCAtOTQsNiArOTQsNyBAQCBBRERfV0syX1RFU1RfV0VCX0VYVEVOU0lPTihXZWJQcm9jZXNz
VGVzdCBET01Ob2RlVGVzdC5jcHAgRE9NTm9kZUZpbHRlclRlc3QuY3BwCiAKIEFERF9XSzJfVEVT
VChJbnNwZWN0b3JUZXN0U2VydmVyIEluc3BlY3RvclRlc3RTZXJ2ZXIuY3BwKQogQUREX1dLMl9U
RVNUKFRlc3RBdXRoZW50aWNhdGlvbiBUZXN0QXV0aGVudGljYXRpb24uY3BwKQorQUREX1dLMl9U
RVNUKFRlc3RBdXRvY2xlYW51cHMgVGVzdEF1dG9jbGVhbnVwcy5jcHApCiBBRERfV0syX1RFU1Qo
VGVzdEJhY2tGb3J3YXJkTGlzdCBUZXN0QmFja0ZvcndhcmRMaXN0LmNwcCkKIEFERF9XSzJfVEVT
VChUZXN0Q29udGV4dE1lbnUgVGVzdENvbnRleHRNZW51LmNwcCkKIEFERF9XSzJfVEVTVChUZXN0
Q29va2llTWFuYWdlciBUZXN0Q29va2llTWFuYWdlci5jcHApCmRpZmYgLS1naXQgYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJHdGsvVGVzdEF1dG9jbGVhbnVwcy5jcHAgYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJHdGsvVGVzdEF1dG9jbGVhbnVwcy5jcHAKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNTU4MDgxOWE5MTljZjAxZDY3YzQwMTU0N2I5Y2IzYWEwMDVjNmY5MgotLS0gL2Rl
di9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mkd0ay9UZXN0QXV0
b2NsZWFudXBzLmNwcApAQCAtMCwwICsxLDUyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1
IElnYWxpYSBTLkwuCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBj
YW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBv
ZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVk
IGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9m
IHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoK
KyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwg
YmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhl
IGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVj
ZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisg
KiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYg
bm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEg
RnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwg
VVNBLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2luY2x1ZGUgIlRlc3RNYWluLmgi
CisjaW5jbHVkZSA8d2Via2l0Mi93ZWJraXQyLmg+CisKK3N0YXRpYyB2b2lkIHRlc3RBdXRvY2xl
YW51cHMoVGVzdCogdGVzdCwgZ2NvbnN0cG9pbnRlcikKK3sKKyAgICAvLyBTYW5pdHktY2hlY2sg
YSBjb3VwbGUgVUkgcHJvY2VzcyBBUEkgYXV0b2NsZWFudXBzIHRoYXQgYXJlIGVhc3kgdG8gdGVz
dC4uLi4KKyAgICBnX2F1dG9wdHIoV2ViS2l0V2ViQ29udGV4dCkgY29udGV4dCA9IHdlYmtpdF93
ZWJfY29udGV4dF9uZXcoKTsKKyAgICBnX2Fzc2VydChjb250ZXh0KTsKKyAgICB0ZXN0LT5hc3Nl
cnRPYmplY3RJc0RlbGV0ZWRXaGVuVGVzdEZpbmlzaGVzKEdfT0JKRUNUKGNvbnRleHQpKTsKKwor
ICAgIGdfYXV0b3B0cihXZWJLaXRXZWJzaXRlRGF0YU1hbmFnZXIpIG1hbmFnZXIgPSB3ZWJraXRf
d2Vic2l0ZV9kYXRhX21hbmFnZXJfbmV3KG51bGxwdHIpOworICAgIGdfYXNzZXJ0KG1hbmFnZXIp
OworICAgIHRlc3QtPmFzc2VydE9iamVjdElzRGVsZXRlZFdoZW5UZXN0RmluaXNoZXMoR19PQkpF
Q1QoY29udGV4dCkpOworCisgICAgZ19hdXRvcHRyKFdlYktpdFVzZXJTY3JpcHQpIHVzZXJTY3Jp
cHQgPSB3ZWJraXRfdXNlcl9zY3JpcHRfbmV3KCIiLAorICAgICAgICBXRUJLSVRfVVNFUl9DT05U
RU5UX0lOSkVDVF9BTExfRlJBTUVTLCBXRUJLSVRfVVNFUl9TQ1JJUFRfSU5KRUNUX0FUX0RPQ1VN
RU5UX1NUQVJULAorICAgICAgICBudWxscHRyLCBudWxscHRyKTsKKyAgICBnX2Fzc2VydCh1c2Vy
U2NyaXB0KTsKKyAgICAvLyBOb3QgYSBHT2JqZWN0LCBzbyBqdXN0IGNoZWNraW5nIHRoYXQgdGhp
cyBkb2Vzbid0IGNyYXNoLi4uLgorfQorCit2b2lkIGJlZm9yZUFsbCgpCit7CisgICAgVGVzdDo6
YWRkKCJBdXRvY2xlYW51cCIsICJBdXRvY2xlYW51cHMiLCB0ZXN0QXV0b2NsZWFudXBzKTsKKwor
ICAgIC8vIERPTSBhdXRvY2xlYW51cHMgYXJlIHRlc3RlZCBhcyBwYXJ0IG9mIFdlYkV4dGVuc2lv
blRlc3QuCit9CisKK3ZvaWQgYWZ0ZXJBbGwoKQoreworfQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyR3RrL1Rlc3RXZWJFeHRlbnNpb25zLmNwcCBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mkd0ay9UZXN0V2ViRXh0ZW5zaW9ucy5jcHAKaW5k
ZXggODI3ODAxMGMzYWQ4NDEzY2JhNjU5MjA2OTgzNzUxNzJjNWM1MGJiZi4uYTQyY2EzNTBmNmUz
MGIyZjUyYzMwODIzMjU4ODRmNTlhY2QxOTcyNiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXQyR3RrL1Rlc3RXZWJFeHRlbnNpb25zLmNwcAorKysgYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJHdGsvVGVzdFdlYkV4dGVuc2lvbnMuY3BwCkBAIC0y
MTAsNiArMjEwLDIxIEBAIHN0YXRpYyB2b2lkIHRlc3RJbnN0YWxsTWlzc2luZ1BsdWdpbnNQZXJt
aXNzaW9uUmVxdWVzdChXZWJWaWV3VGVzdCogdGVzdCwgZ2NvbnN0CiAgICAgZ19zaWduYWxfaGFu
ZGxlcl9kaXNjb25uZWN0KHRlc3QtPm1fd2ViVmlldywgcGVybWlzc2lvblJlcXVlc3RTaWduYWxJ
RCk7CiB9CiAKK3N0YXRpYyB2b2lkIHRlc3RXZWJFeHRlbnNpb25BdXRvY2xlYW51cHMoV2ViVmll
d1Rlc3QqIHRlc3QsIGdjb25zdHBvaW50ZXIpCit7CisgICAgdWludDY0X3QgcGFnZUlEID0gd2Vi
a2l0X3dlYl92aWV3X2dldF9wYWdlX2lkKHRlc3QtPm1fd2ViVmlldyk7CisgICAgR1VuaXF1ZVB0
cjxjaGFyPiBleHRlbnNpb25CdXNOYW1lKGdfc3RyZHVwX3ByaW50Zigib3JnLndlYmtpdC5ndGsu
V2ViRXh0ZW5zaW9uVGVzdCV1IiwgVGVzdDo6c193ZWJFeHRlbnNpb25JRCkpOworICAgIEdSZWZQ
dHI8R0RCdXNQcm94eT4gcHJveHkgPSBhZG9wdEdSZWYoYnVzLT5jcmVhdGVQcm94eShleHRlbnNp
b25CdXNOYW1lLmdldCgpLAorICAgICAgICAiL29yZy93ZWJraXQvZ3RrL1dlYkV4dGVuc2lvblRl
c3QiLCAib3JnLndlYmtpdC5ndGsuV2ViRXh0ZW5zaW9uVGVzdCIsIHRlc3QtPm1fbWFpbkxvb3Ap
KTsKKyAgICBHUmVmUHRyPEdWYXJpYW50PiBwYWdlSURWYXJpYW50ID0gZ192YXJpYW50X25ldygi
KHQpIiwgcGFnZUlEKTsKKyAgICBHUmVmUHRyPEdWYXJpYW50PiByZXN1bHQgPSBhZG9wdEdSZWYo
Z19kYnVzX3Byb3h5X2NhbGxfc3luYygKKyAgICAgICAgcHJveHkuZ2V0KCksCisgICAgICAgICJU
ZXN0QXV0b2NsZWFudXBzIiwKKyAgICAgICAgcGFnZUlEVmFyaWFudC5nZXQoKSwKKyAgICAgICAg
R19EQlVTX0NBTExfRkxBR1NfTk9ORSwKKyAgICAgICAgLTEsIDAsIDApKTsKK30KKwogdm9pZCBi
ZWZvcmVBbGwoKQogewogICAgIGJ1cyA9IG5ldyBXZWJLaXRUZXN0QnVzKCk7CkBAIC0yMjIsNiAr
MjM3LDcgQEAgdm9pZCBiZWZvcmVBbGwoKQogICAgIFdlYlZpZXdUZXN0OjphZGQoIldlYktpdFdl
YkV4dGVuc2lvbiIsICJ3aW5kb3ctb2JqZWN0LWNsZWFyZWQiLCB0ZXN0V2ViRXh0ZW5zaW9uV2lu
ZG93T2JqZWN0Q2xlYXJlZCk7CiAgICAgV2ViVmlld1Rlc3Q6OmFkZCgiV2ViS2l0V2ViRXh0ZW5z
aW9uIiwgImlzb2xhdGVkLXdvcmxkIiwgdGVzdFdlYkV4dGVuc2lvbklzb2xhdGVkV29ybGQpOwog
ICAgIFdlYlZpZXdUZXN0OjphZGQoIldlYktpdFdlYlZpZXciLCAiaW5zdGFsbC1taXNzaW5nLXBs
dWdpbnMtcGVybWlzc2lvbi1yZXF1ZXN0IiwgdGVzdEluc3RhbGxNaXNzaW5nUGx1Z2luc1Blcm1p
c3Npb25SZXF1ZXN0KTsKKyAgICBXZWJWaWV3VGVzdDo6YWRkKCJXZWJLaXRXZWJFeHRlbnNpb24i
LCAiYXV0b2NsZWFudXBzIiwgdGVzdFdlYkV4dGVuc2lvbkF1dG9jbGVhbnVwcyk7CiB9CiAKIHZv
aWQgYWZ0ZXJBbGwoKQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXQyR3RrL1dlYkV4dGVuc2lvblRlc3QuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXQyR3RrL1dlYkV4dGVuc2lvblRlc3QuY3BwCmluZGV4IDM4YzdkOTQxMmMxYTZhZGM3NGM0
OTY2NTcwNmIwNDZlZmFkZWE4MWYuLjE0Mzk3NjczNTg3ZmEwY2M2YjVlYmYyNzgzYWEyMDFmYWE3
MTRlODUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mkd0ay9X
ZWJFeHRlbnNpb25UZXN0LmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dDJHdGsvV2ViRXh0ZW5zaW9uVGVzdC5jcHAKQEAgLTU1LDYgKzU1LDkgQEAgc3RhdGljIGNvbnN0
IGNoYXIgaW50cm9zcGVjdGlvblhNTFtdID0KICAgICAiICA8L21ldGhvZD4iCiAgICAgIiAgPG1l
dGhvZCBuYW1lPSdSZW1vdmVBVlBsdWdpbnNGcm9tR1NUUmVnaXN0cnknPiIKICAgICAiICA8L21l
dGhvZD4iCisgICAgIiAgPG1ldGhvZCBuYW1lPSdUZXN0QXV0b2NsZWFudXBzJz4iCisgICAgIiAg
IDxhcmcgdHlwZT0ndCcgbmFtZT0ncGFnZUlEJyBkaXJlY3Rpb249J2luJy8+IgorICAgICIgIDwv
bWV0aG9kPiIKICAgICAiICA8c2lnbmFsIG5hbWU9J0RvY3VtZW50TG9hZGVkJy8+IgogICAgICIg
IDxzaWduYWwgbmFtZT0nVVJJQ2hhbmdlZCc+IgogICAgICIgICA8YXJnIHR5cGU9J3MnIG5hbWU9
J3VyaScgZGlyZWN0aW9uPSdvdXQnLz4iCkBAIC0yNTUsNiArMjU4LDQ5IEBAIHN0YXRpYyB2b2lk
IHdpbmRvd09iamVjdENsZWFyZWQoV2ViS2l0U2NyaXB0V29ybGQqIHdvcmxkLCBXZWJLaXRXZWJQ
YWdlKiBwYWdlLCBXCiAgICAgSlNPYmplY3RTZXRQcm9wZXJ0eShqc0NvbnRleHQsIGdsb2JhbE9i
amVjdCwgZnVuY3Rpb25OYW1lLmdldCgpLCBmdW5jdGlvbiwga0pTUHJvcGVydHlBdHRyaWJ1dGVE
b250RGVsZXRlIHwga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSwgMCk7CiB9CiAKK3N0YXRp
YyB2b2lkIHRlc3RBdXRvY2xlYW51cHMoV2ViS2l0V2ViUGFnZSogd2ViUGFnZSkKK3sKKyAgICBX
ZWJLaXRXZWJQYWdlKiB3YXRjaGVkUGFnZTsKKyAgICBXZWJLaXRET01Eb2N1bWVudCogd2F0Y2hl
ZERvY3VtZW50OworICAgIFdlYktpdERPTURPTVdpbmRvdyogd2F0Y2hlZFdpbmRvdzsKKyAgICBX
ZWJLaXRET01SYW5nZSogd2F0Y2hlZFJhbmdlOworCisgICAgLy8gU2NvcGUgZm9yIHRoZSBhdXRv
cHRycy4uLi4KKyAgICB7CisgICAgICAgIC8vIFRyYW5zZmVyIG5vbmUKKyAgICAgICAgZ19hdXRv
cHRyKFdlYktpdFdlYlBhZ2UpIHBhZ2UgPSBXRUJLSVRfV0VCX1BBR0UoZ19vYmplY3RfcmVmKEdf
T0JKRUNUKHdlYlBhZ2UpKSk7CisgICAgICAgIGdfYXNzZXJ0KHBhZ2UpOworICAgICAgICB3YXRj
aGVkUGFnZSA9IHBhZ2U7CisgICAgICAgIGdfb2JqZWN0X2FkZF93ZWFrX3BvaW50ZXIoR19PQkpF
Q1QocGFnZSksIHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCoqPigmd2F0Y2hlZFBhZ2UpKTsKKworICAg
ICAgICAvLyBUcmFuc2ZlciBub25lCisgICAgICAgIGdfYXV0b3B0cihXZWJLaXRET01Eb2N1bWVu
dCkgZG9jdW1lbnQgPSBXRUJLSVRfRE9NX0RPQ1VNRU5UKGdfb2JqZWN0X3JlZihHX09CSkVDVCh3
ZWJraXRfd2ViX3BhZ2VfZ2V0X2RvbV9kb2N1bWVudChwYWdlKSkpKTsKKyAgICAgICAgZ19hc3Nl
cnQoZG9jdW1lbnQpOworICAgICAgICB3YXRjaGVkRG9jdW1lbnQgPSBkb2N1bWVudDsKKyAgICAg
ICAgZ19vYmplY3RfYWRkX3dlYWtfcG9pbnRlcihHX09CSkVDVChkb2N1bWVudCksIHJlaW50ZXJw
cmV0X2Nhc3Q8dm9pZCoqPigmd2F0Y2hlZERvY3VtZW50KSk7CisKKyAgICAgICAgLy8gVHJhbnNm
ZXIgZnVsbAorICAgICAgICBnX2F1dG9wdHIoV2ViS2l0RE9NRE9NV2luZG93KSB3aW5kb3cgPSB3
ZWJraXRfZG9tX2RvY3VtZW50X2dldF9kZWZhdWx0X3ZpZXcoZG9jdW1lbnQpOworICAgICAgICBn
X2Fzc2VydCh3aW5kb3cpOworICAgICAgICB3YXRjaGVkV2luZG93ID0gd2luZG93OworICAgICAg
ICBnX29iamVjdF9hZGRfd2Vha19wb2ludGVyKEdfT0JKRUNUKHdpbmRvdyksIHJlaW50ZXJwcmV0
X2Nhc3Q8dm9pZCoqPigmd2F0Y2hlZFdpbmRvdykpOworCisgICAgICAgIC8vIFRyYW5zZmVyIGZ1
bGwKKyAgICAgICAgZ19hdXRvcHRyKFdlYktpdERPTVJhbmdlKSByYW5nZSA9IHdlYmtpdF9kb21f
ZG9jdW1lbnRfY3JlYXRlX3JhbmdlKGRvY3VtZW50KTsKKyAgICAgICAgZ19hc3NlcnQocmFuZ2Up
OworICAgICAgICB3YXRjaGVkUmFuZ2UgPSByYW5nZTsKKyAgICAgICAgZ19vYmplY3RfYWRkX3dl
YWtfcG9pbnRlcihHX09CSkVDVChyYW5nZSksIHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCoqPigmd2F0
Y2hlZFJhbmdlKSk7CisgICAgfQorCisgICAgZ19hc3NlcnQod2F0Y2hlZFBhZ2UpOworICAgIGdf
YXNzZXJ0KHdhdGNoZWREb2N1bWVudCk7CisgICAgZ19hc3NlcnQoIXdhdGNoZWRXaW5kb3cpOwor
ICAgIGdfYXNzZXJ0KCF3YXRjaGVkUmFuZ2UpOworCisgICAgZ19vYmplY3RfcmVtb3ZlX3dlYWtf
cG9pbnRlcihHX09CSkVDVCh3YXRjaGVkUGFnZSksIHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCoqPigm
d2F0Y2hlZFBhZ2UpKTsKKyAgICBnX29iamVjdF9yZW1vdmVfd2Vha19wb2ludGVyKEdfT0JKRUNU
KHdhdGNoZWREb2N1bWVudCksIHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCoqPigmd2F0Y2hlZERvY3Vt
ZW50KSk7Cit9CisKIHN0YXRpYyBXZWJLaXRXZWJQYWdlKiBnZXRXZWJQYWdlKFdlYktpdFdlYkV4
dGVuc2lvbiogZXh0ZW5zaW9uLCB1aW50NjRfdCBwYWdlSUQsIEdEQnVzTWV0aG9kSW52b2NhdGlv
biogaW52b2NhdGlvbikKIHsKICAgICBXZWJLaXRXZWJQYWdlKiBwYWdlID0gd2Via2l0X3dlYl9l
eHRlbnNpb25fZ2V0X3BhZ2UoZXh0ZW5zaW9uLCBwYWdlSUQpOwpAQCAtMzE1LDYgKzM2MSwxNCBA
QCBzdGF0aWMgdm9pZCBtZXRob2RDYWxsQ2FsbGJhY2soR0RCdXNDb25uZWN0aW9uKiBjb25uZWN0
aW9uLCBjb25zdCBjaGFyKiBzZW5kZXIsCiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICAg
ICAgZ19kYnVzX21ldGhvZF9pbnZvY2F0aW9uX3JldHVybl92YWx1ZShpbnZvY2F0aW9uLCBudWxs
cHRyKTsKKyAgICB9IGVsc2UgaWYgKCFnX3N0cmNtcDAobWV0aG9kTmFtZSwgIlRlc3RBdXRvY2xl
YW51cHMiKSkgeworICAgICAgICB1aW50NjRfdCBwYWdlSUQ7CisgICAgICAgIGdfdmFyaWFudF9n
ZXQocGFyYW1ldGVycywgIih0KSIsICZwYWdlSUQpOworICAgICAgICBXZWJLaXRXZWJQYWdlKiBw
YWdlID0gZ2V0V2ViUGFnZShXRUJLSVRfV0VCX0VYVEVOU0lPTih1c2VyRGF0YSksIHBhZ2VJRCwg
aW52b2NhdGlvbik7CisgICAgICAgIGlmICghcGFnZSkKKyAgICAgICAgICAgIHJldHVybjsKKyAg
ICAgICAgdGVzdEF1dG9jbGVhbnVwcyhwYWdlKTsKKyAgICAgICAgZ19kYnVzX21ldGhvZF9pbnZv
Y2F0aW9uX3JldHVybl92YWx1ZShpbnZvY2F0aW9uLCBudWxscHRyKTsKICAgICB9CiB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>262281</attachid>
            <date>2015-10-01 13:17:53 -0700</date>
            <delta_ts>2015-10-06 21:07:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-149588-20151001151727.patch</filename>
            <type>text/plain</type>
            <size>24894</size>
            <attacher name="Michael Catanzaro">mcatanzaro</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTkwMzA5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmI4NTQxZjZkM2U4MGI1
ZThlNDk2MGNhZjIwZTRiYTdkMDNlNmI1YS4uZGM4NzUzMWIyOWVlNjM0ZjExMGQ0MmEwN2ZiY2I4
MGViOGNhNjI5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDE1LTEwLTAxICBNaWNo
YWVsIENhdGFuemFybyAgPG1jYXRhbnphcm9AaWdhbGlhLmNvbT4KKworICAgICAgICBbR1RLXSBB
ZGQgYXV0b2NsZWFudXBzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xNDk1ODgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIFBsYXRmb3JtR1RLLmNtYWtlOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMv
Z29iamVjdC1nZW5lcmF0ZS1oZWFkZXJzLnBsOgorCiAyMDE1LTA5LTI5ICBZb3Vlbm4gRmFibGV0
ICA8eW91ZW5uLmZhYmxldEBjcmYuY2Fub24uZnI+CiAKICAgICAgICAgQnVpbGQgV2ViQ29yZSBK
UyBCdWlsdGlucyBhY2NvcmRpbmcgdGhlIEVOQUJMRSBmbGFncwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IGFkZGZj
YmVmOGMwZTE5MTA1ZjgyNDUyNzkyZGY1YzkxM2ZmNjNlYzYuLjJjMTRjMGYzMzE5MWJmNWZjM2Q1
MDgwZTM5NWU2OWQzMTM3OGFlOGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxNS0x
MC0wMSAgTWljaGFlbCBDYXRhbnphcm8gIDxtY2F0YW56YXJvQGlnYWxpYS5jb20+CisKKyAgICAg
ICAgW0dUS10gQWRkIGF1dG9jbGVhbnVwcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTQ5NTg4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBQbGF0Zm9ybUdUSy5jbWFrZToKKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL2d0ay9XZWJLaXRBdXRvY2xlYW51cHMuaDogQWRkZWQuCisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9ndGsvd2Via2l0Mi5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL2d0ay9XZWJLaXRXZWJFeHRlbnNpb25BdXRvY2xlYW51cHMuaDogQWRkZWQuCisgICAg
ICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL3dlYmtpdC13ZWItZXh0ZW5z
aW9uLmg6CisKIDIwMTUtMDktMTYgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2Fs
aWEuY29tPgogCiAgICAgICAgIHByaW50aW5nIGRvZXMgbm90IHVzZSBtaW5pbXVtIHBhZ2Ugem9v
bSBmYWN0b3IKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtR1RLLmNtYWtlIGIv
U291cmNlL1dlYkNvcmUvUGxhdGZvcm1HVEsuY21ha2UKaW5kZXggNWI2ZTFlMmU4NTM5NzAzNzdi
ZjQzYTYwOTlhMzlkMjYzZTk3ODMxNy4uZTY1MzUwNTE1NDhhYzFhNDM5ZWJhMWI5MzJlNzBjZGI5
NmUyMzk4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1HVEsuY21ha2UKKysr
IGIvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1HVEsuY21ha2UKQEAgLTU1OSw2ICs1NTksOCBAQCBs
aXN0KEFQUEVORCBHT2JqZWN0RE9NQmluZGluZ3NfU09VUkNFUwogICAgIGJpbmRpbmdzL2dvYmpl
Y3QvV2ViS2l0RE9NT2JqZWN0LmNwcAogICAgIGJpbmRpbmdzL2dvYmplY3QvV2ViS2l0RE9NUHJp
dmF0ZS5jcHAKICAgICBiaW5kaW5ncy9nb2JqZWN0L1dlYktpdERPTVhQYXRoTlNSZXNvbHZlci5j
cHAKKyAgICAke0RFUklWRURfU09VUkNFU19HT0JKRUNUX0RPTV9CSU5ESU5HU19ESVJ9L3dlYmtp
dGRvbWF1dG9jbGVhbnVwcy5oCisgICAgJHtERVJJVkVEX1NPVVJDRVNfR09CSkVDVF9ET01fQklO
RElOR1NfRElSfS93ZWJraXRkb21hdXRvY2xlYW51cHMtdW5zdGFibGUuaAogICAgICR7REVSSVZF
RF9TT1VSQ0VTX0dPQkpFQ1RfRE9NX0JJTkRJTkdTX0RJUn0vd2Via2l0ZG9tZGVmaW5lcy5oCiAg
ICAgJHtERVJJVkVEX1NPVVJDRVNfR09CSkVDVF9ET01fQklORElOR1NfRElSfS93ZWJraXRkb21k
ZWZpbmVzLXVuc3RhYmxlLmgKICAgICAke0RFUklWRURfU09VUkNFU19HT0JKRUNUX0RPTV9CSU5E
SU5HU19ESVJ9L3dlYmtpdGRvbS5oCkBAIC03NzQsNiArNzc2LDcgQEAgc2V0KEdPYmplY3RET01C
aW5kaW5nc19TVEFUSUNfQ0xBU1NfTElTVCBDdXN0b20gRGVwcmVjYXRlZCBFdmVudFRhcmdldCBO
b2RlRmlsdGUKIAogc2V0KEdPYmplY3RET01CaW5kaW5nc1N0YWJsZV9DTEFTU19MSVNUICR7R09i
amVjdERPTUJpbmRpbmdzX1NUQVRJQ19DTEFTU19MSVNUfSkKIHNldChHT2JqZWN0RE9NQmluZGlu
Z3NTdGFibGVfSU5TVEFMTEVEX0hFQURFUlMKKyAgICAgJHtERVJJVkVEX1NPVVJDRVNfR09CSkVD
VF9ET01fQklORElOR1NfRElSfS93ZWJraXRkb21hdXRvY2xlYW51cHMuaAogICAgICAke0RFUklW
RURfU09VUkNFU19HT0JKRUNUX0RPTV9CSU5ESU5HU19ESVJ9L3dlYmtpdGRvbWRlZmluZXMuaAog
ICAgICAke0RFUklWRURfU09VUkNFU19HT0JKRUNUX0RPTV9CSU5ESU5HU19ESVJ9L3dlYmtpdGRv
bS5oCiAgICAgICR7V0VCQ09SRV9ESVJ9L2JpbmRpbmdzL2dvYmplY3QvV2ViS2l0RE9NQ3VzdG9t
LmgKQEAgLTc4NSw2ICs3ODgsNyBAQCBzZXQoR09iamVjdERPTUJpbmRpbmdzU3RhYmxlX0lOU1RB
TExFRF9IRUFERVJTCiApCiAKIHNldChHT2JqZWN0RE9NQmluZGluZ3NVbnN0YWJsZV9JTlNUQUxM
RURfSEVBREVSUworICAgICAke0RFUklWRURfU09VUkNFU19HT0JKRUNUX0RPTV9CSU5ESU5HU19E
SVJ9L3dlYmtpdGRvbWF1dG9jbGVhbnVwcy11bnN0YWJsZS5oCiAgICAgICR7REVSSVZFRF9TT1VS
Q0VTX0dPQkpFQ1RfRE9NX0JJTkRJTkdTX0RJUn0vd2Via2l0ZG9tZGVmaW5lcy11bnN0YWJsZS5o
CiAgICAgICR7V0VCQ09SRV9ESVJ9L2JpbmRpbmdzL2dvYmplY3QvV2ViS2l0RE9NQ3VzdG9tVW5z
dGFibGUuaAogKQpAQCAtODI2LDYgKzgzMCwxOCBAQCBhZGRfY3VzdG9tX2NvbW1hbmQoCiAgICAg
Q09NTUFORCBlY2hvICR7R09iamVjdERPTUJpbmRpbmdzU3RhYmxlX0NMQVNTX0xJU1R9IHwgJHtQ
RVJMX0VYRUNVVEFCTEV9ICR7V0VCQ09SRV9ESVJ9L2JpbmRpbmdzL3NjcmlwdHMvZ29iamVjdC1n
ZW5lcmF0ZS1oZWFkZXJzLnBsIGdkb20gPiAke0RFUklWRURfU09VUkNFU19HT0JKRUNUX0RPTV9C
SU5ESU5HU19ESVJ9L3dlYmtpdGRvbS5oCiApCiAKK2FkZF9jdXN0b21fY29tbWFuZCgKKyAgICBP
VVRQVVQgJHtERVJJVkVEX1NPVVJDRVNfR09CSkVDVF9ET01fQklORElOR1NfRElSfS93ZWJraXRk
b21hdXRvY2xlYW51cHMuaAorICAgIERFUEVORFMgJHtXRUJDT1JFX0RJUn0vYmluZGluZ3Mvc2Ny
aXB0cy9nb2JqZWN0LWdlbmVyYXRlLWhlYWRlcnMucGwKKyAgICBDT01NQU5EIGVjaG8gJHtHT2Jq
ZWN0RE9NQmluZGluZ3NTdGFibGVfQ0xBU1NfTElTVH0gfCAke1BFUkxfRVhFQ1VUQUJMRX0gJHtX
RUJDT1JFX0RJUn0vYmluZGluZ3Mvc2NyaXB0cy9nb2JqZWN0LWdlbmVyYXRlLWhlYWRlcnMucGwg
YXV0b2NsZWFudXBzID4gJHtERVJJVkVEX1NPVVJDRVNfR09CSkVDVF9ET01fQklORElOR1NfRElS
fS93ZWJraXRkb21hdXRvY2xlYW51cHMuaAorKQorCithZGRfY3VzdG9tX2NvbW1hbmQoCisgICAg
T1VUUFVUICR7REVSSVZFRF9TT1VSQ0VTX0dPQkpFQ1RfRE9NX0JJTkRJTkdTX0RJUn0vd2Via2l0
ZG9tYXV0b2NsZWFudXBzLXVuc3RhYmxlLmgKKyAgICBERVBFTkRTICR7V0VCQ09SRV9ESVJ9L2Jp
bmRpbmdzL3NjcmlwdHMvZ29iamVjdC1nZW5lcmF0ZS1oZWFkZXJzLnBsCisgICAgQ09NTUFORCBl
Y2hvICR7R09iamVjdERPTUJpbmRpbmdzVW5zdGFibGVfQ0xBU1NfTElTVH0gfCAke1BFUkxfRVhF
Q1VUQUJMRX0gJHtXRUJDT1JFX0RJUn0vYmluZGluZ3Mvc2NyaXB0cy9nb2JqZWN0LWdlbmVyYXRl
LWhlYWRlcnMucGwgYXV0b2NsZWFudXBzID4gJHtERVJJVkVEX1NPVVJDRVNfR09CSkVDVF9ET01f
QklORElOR1NfRElSfS93ZWJraXRkb21hdXRvY2xlYW51cHMtdW5zdGFibGUuaAorKQorCiAjIFNv
bWUgb2YgdGhlIHN0YXRpYyBoZWFkZXJzIGFyZSBpbmNsdWRlZCBieSBnZW5lcmF0ZWQgcHVibGlj
IGhlYWRlcnMgd2l0aCBpbmNsdWRlIDx3ZWJraXRkb20vV2ViS2l0RE9NRm9vLmg+LgogIyBXZSBu
ZWVkIHRob3NlIGhlYWRlcnMgaW4gdGhlIGRlcml2ZWQgc291cmNlcyB0byBiZSBpbiB3ZWJraXRk
b20gZGlyZWN0b3J5Lgogc2V0KEdPYmplY3RET01CaW5kaW5nc19TVEFUSUNfSEVBREVSX05BTUVT
ICR7R09iamVjdERPTUJpbmRpbmdzX1NUQVRJQ19DTEFTU19MSVNUfSBDdXN0b21VbnN0YWJsZSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvZ29iamVjdC1nZW5l
cmF0ZS1oZWFkZXJzLnBsIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9nb2JqZWN0
LWdlbmVyYXRlLWhlYWRlcnMucGwKaW5kZXggYzdhZDc4NTI3MjIwYzcwZDA4ODg2MDYxYzQ2NzQ5
NTNjZDNkZWZkYy4uOGExOTQwYTJhNTM4MDBhMjRkYTg3OTJlYTI3ZTFiMjQ0YmJhNmM4NyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9nb2JqZWN0LWdlbmVyYXRl
LWhlYWRlcnMucGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9nb2JqZWN0
LWdlbmVyYXRlLWhlYWRlcnMucGwKQEAgLTEsNiArMSw3IEBACiAjIS91c3IvYmluL3BlcmwgLXcK
ICMKICMgQ29weXJpZ2h0IChDKSAyMDA5IEFkYW0gRGluZ2xlIDxhZGFtQHlvcmJhLm9yZz4KKyMg
Q29weXJpZ2h0IChDKSAyMDE1IElnYWxpYSBTLkwuCiAjCiAjIFRoaXMgZmlsZSBpcyBwYXJ0IG9m
IFdlYktpdAogIyAKQEAgLTU1LDYgKzU2LDggQEAgaWYgKCRvdXRUeXBlIGVxICJkZWZpbmVzIikg
ewogICAgICRoZWFkZXIgPSAid2Via2l0ZG9tZGVmaW5lc191bnN0YWJsZV9oIjsKIH0gZWxzaWYg
KCRvdXRUeXBlIGVxICJnZG9tIikgewogICAgICRoZWFkZXIgPSAid2Via2l0ZG9tX2giOworfSBl
bHNpZiAoJG91dFR5cGUgZXEgImF1dG9jbGVhbnVwcyIpIHsKKyAgICAkaGVhZGVyID0gIndlYmtp
dGRvbWF1dG9jbGVhbnVwc19oIjsKIH0gZWxzZSB7CiAgICAgZGllICJ1bmtub3duIG91dHB1dCB0
eXBlIjsKIH0KQEAgLTkyLDYgKzk1LDcgQEAgaWYgKCRvdXRUeXBlIGVxICJkZWZpbmVzIikgewog
ICAgICAgICAgICAgcHJpbnQgIlxuIjsKICAgICAgICAgfQogICAgIH0KKyAgICBwcmludCAiI2lu
Y2x1ZGUgPHdlYmtpdGRvbS93ZWJraXRkb21hdXRvY2xlYW51cHMuaD5cbiI7CiB9IGVsc2lmICgk
b3V0VHlwZSBlcSAiZGVmaW5lcy11bnN0YWJsZSIpIHsKICAgICBwcmludCAiI2luY2x1ZGUgPHdl
YmtpdGRvbS93ZWJraXRkb21kZWZpbmVzLmg+XG5cbiI7CiAgICAgcHJpbnQgIiNpZmRlZiBXRUJL
SVRfRE9NX1VTRV9VTlNUQUJMRV9BUElcblxuIjsKQEAgLTEwMiw2ICsxMDYsNyBAQCBpZiAoJG91
dFR5cGUgZXEgImRlZmluZXMiKSB7CiAgICAgICAgIHByaW50ICJcbiI7CiAgICAgfQogCisgICAg
cHJpbnQgIiNpbmNsdWRlIDx3ZWJraXRkb20vd2Via2l0ZG9tYXV0b2NsZWFudXBzLXVuc3RhYmxl
Lmg+XG5cbiI7CiAgICAgcHJpbnQgIiNlbmRpZiAvKiBXRUJLSVRfRE9NX1VTRV9VTlNUQUJMRV9B
UEkgKi9cblxuIjsKIH0gZWxzaWYgKCRvdXRUeXBlIGVxICJnZG9tIikgewogICAgIHByaW50ICIj
ZGVmaW5lIF9fV0VCS0lURE9NX0hfSU5TSURFX19cblxuIjsKQEAgLTEwOSw2ICsxMTQsMTUgQEAg
aWYgKCRvdXRUeXBlIGVxICJkZWZpbmVzIikgewogICAgICAgICBwcmludCAiI2luY2x1ZGUgPHdl
YmtpdGRvbS9XZWJLaXRET00ke2NsYXNzfS5oPlxuIjsKICAgICB9CiAgICAgcHJpbnQgIlxuI3Vu
ZGVmIF9fV0VCS0lURE9NX0hfSU5TSURFX19cbiI7Cit9IGVsc2lmICgkb3V0VHlwZSBlcSAiYXV0
b2NsZWFudXBzIikgeworICAgIHByaW50ICIjaW5jbHVkZSA8Z2xpYi1vYmplY3QuaD5cblxuIjsK
KyAgICBwcmludCAiI2lmIGRlZmluZWQoR19ERUZJTkVfQVVUT1BUUl9DTEVBTlVQX0ZVTkMpICYm
ICFkZWZpbmVkKF9fR0lfU0NBTk5FUl9fKVxuXG4iOworICAgIGZvcmVhY2ggbXkgJGNsYXNzIChA
Y2xhc3NlcykgeworICAgICAgICBpZiAoJGNsYXNzIG5lICJEZXByZWNhdGVkIiAmJiAkY2xhc3Mg
bmUgIkN1c3RvbSIpIHsKKyAgICAgICAgICAgIHByaW50ICJHX0RFRklORV9BVVRPUFRSX0NMRUFO
VVBfRlVOQyAoV2ViS2l0RE9NJHtjbGFzc30sIGdfb2JqZWN0X3VucmVmKVxuIjsKKyAgICAgICAg
fQorICAgIH0KKyAgICBwcmludCAiXG4jZW5kaWZcbiIKIH0KIAogcHJpbnQgIlxuIjsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtR1RLLmNtYWtlIGIvU291cmNlL1dlYktpdDIv
UGxhdGZvcm1HVEsuY21ha2UKaW5kZXggN2U2ZmM1ODYzZjI2OTAzM2RkYjY1Y2NhOTg5ZmNhZTgx
ODFkZTU1Yi4uNGMyYjFkODhkY2FiNWQ3OTI1MzYwNTFlYmYwMTJlMDk0NTBhZGJlYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm1HVEsuY21ha2UKKysrIGIvU291cmNlL1dlYktp
dDIvUGxhdGZvcm1HVEsuY21ha2UKQEAgLTEwOCw2ICsxMDgsNyBAQCBsaXN0KEFQUEVORCBXZWJL
aXQyX1NPVVJDRVMKICAgICBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRBdXRoZW50aWNhdGlvbkRp
YWxvZy5oCiAgICAgVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0QXV0aGVudGljYXRpb25SZXF1ZXN0
LmNwcAogICAgIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEF1dGhlbnRpY2F0aW9uUmVxdWVzdC5o
CisgICAgVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0QXV0b2NsZWFudXBzLmgKICAgICBVSVByb2Nl
c3MvQVBJL2d0ay9XZWJLaXRCYWNrRm9yd2FyZExpc3QuY3BwCiAgICAgVUlQcm9jZXNzL0FQSS9n
dGsvV2ViS2l0QmFja0ZvcndhcmRMaXN0LmgKICAgICBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRC
YWNrRm9yd2FyZExpc3RJdGVtLmNwcApAQCAtMzc1LDYgKzM3Niw3IEBAIHNldChXZWJLaXQyR1RL
X0lOU1RBTExFRF9IRUFERVJTCiAgICAgJHtERVJJVkVEX1NPVVJDRVNfV0VCS0lUMkdUS19BUElf
RElSfS9XZWJLaXRFbnVtVHlwZXMuaAogICAgICR7REVSSVZFRF9TT1VSQ0VTX1dFQktJVDJHVEtf
QVBJX0RJUn0vV2ViS2l0VmVyc2lvbi5oCiAgICAgJHtXRUJLSVQyX0RJUn0vVUlQcm9jZXNzL0FQ
SS9ndGsvV2ViS2l0QXV0aGVudGljYXRpb25SZXF1ZXN0LmgKKyAgICAke1dFQktJVDJfRElSfS9V
SVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRBdXRvY2xlYW51cHMuaAogICAgICR7V0VCS0lUMl9ESVJ9
L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEJhY2tGb3J3YXJkTGlzdC5oCiAgICAgJHtXRUJLSVQy
X0RJUn0vVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0QmFja0ZvcndhcmRMaXN0SXRlbS5oCiAgICAg
JHtXRUJLSVQyX0RJUn0vVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0Q29sb3JDaG9vc2VyUmVxdWVz
dC5oCkBAIC00MzEsNiArNDMzLDcgQEAgc2V0KFdlYktpdDJXZWJFeHRlbnNpb25fSU5TVEFMTEVE
X0hFQURFUlMKICAgICAke1dFQktJVDJfRElSfS9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SS9ndGsvV2ViS2l0U2NyaXB0V29ybGQuaAogICAgICR7V0VCS0lUMl9ESVJ9L1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9XZWJLaXRXZWJFZGl0b3IuaAogICAgICR7V0VCS0lUMl9E
SVJ9L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9XZWJLaXRXZWJFeHRlbnNpb24u
aAorICAgICR7V0VCS0lUMl9ESVJ9L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9X
ZWJLaXRXZWJFeHRlbnNpb25BdXRvY2xlYW51cHMuaAogICAgICR7V0VCS0lUMl9ESVJ9L1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9XZWJLaXRXZWJIaXRUZXN0UmVzdWx0LmgKICAg
ICAke1dFQktJVDJfRElSfS9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvV2ViS2l0
V2ViUGFnZS5oCiAgICAgJHtXRUJLSVQyX0RJUn0vV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvZ3RrL3dlYmtpdC13ZWItZXh0ZW5zaW9uLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEF1dG9jbGVhbnVwcy5oIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0QXV0b2NsZWFudXBzLmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2ZiN2Vm
Y2I5YWU5ZTc4MmQxOTg5MjJjODdlMDU4MjFiNWUwNDM1YQotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEF1dG9jbGVhbnVwcy5oCkBAIC0w
LDAgKzEsODIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgSWdhbGlhIFMuTC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2lmICFkZWZpbmVkKF9fV0VCS0lUMl9IX0lOU0lERV9fKSAmJiAhZGVmaW5lZChXRUJL
SVQyX0NPTVBJTEFUSU9OKQorI2Vycm9yICJPbmx5IDx3ZWJraXQyL3dlYmtpdDIuaD4gY2FuIGJl
IGluY2x1ZGVkIGRpcmVjdGx5LiIKKyNlbmRpZgorCisjaWZuZGVmIFdlYktpdEF1dG9jbGVhbnVw
c19oCisjZGVmaW5lIFdlYktpdEF1dG9jbGVhbnVwc19oCisKKyNpZiBkZWZpbmVkKEdfREVGSU5F
X0FVVE9QVFJfQ0xFQU5VUF9GVU5DKSAmJiAhZGVmaW5lZChfX0dJX1NDQU5ORVJfXykKKworR19E
RUZJTkVfQVVUT1BUUl9DTEVBTlVQX0ZVTkMgKFdlYktpdEF1dGhlbnRpY2F0aW9uUmVxdWVzdCwg
Z19vYmplY3RfdW5yZWYpCitHX0RFRklORV9BVVRPUFRSX0NMRUFOVVBfRlVOQyAoV2ViS2l0QmFj
a0ZvcndhcmRMaXN0LCBnX29iamVjdF91bnJlZikKK0dfREVGSU5FX0FVVE9QVFJfQ0xFQU5VUF9G
VU5DIChXZWJLaXRCYWNrRm9yd2FyZExpc3RJdGVtLCBnX29iamVjdF91bnJlZikKK0dfREVGSU5F
X0FVVE9QVFJfQ0xFQU5VUF9GVU5DIChXZWJLaXRDb2xvckNob29zZXJSZXF1ZXN0LCBnX29iamVj
dF91bnJlZikKK0dfREVGSU5FX0FVVE9QVFJfQ0xFQU5VUF9GVU5DIChXZWJLaXRDb250ZXh0TWVu
dSwgZ19vYmplY3RfdW5yZWYpCitHX0RFRklORV9BVVRPUFRSX0NMRUFOVVBfRlVOQyAoV2ViS2l0
Q29udGV4dE1lbnVJdGVtLCBnX29iamVjdF91bnJlZikKK0dfREVGSU5FX0FVVE9QVFJfQ0xFQU5V
UF9GVU5DIChXZWJLaXRDb29raWVNYW5hZ2VyLCBnX29iamVjdF91bnJlZikKK0dfREVGSU5FX0FV
VE9QVFJfQ0xFQU5VUF9GVU5DIChXZWJLaXREb3dubG9hZCwgZ19vYmplY3RfdW5yZWYpCitHX0RF
RklORV9BVVRPUFRSX0NMRUFOVVBfRlVOQyAoV2ViS2l0RWRpdG9yU3RhdGUsIGdfb2JqZWN0X3Vu
cmVmKQorR19ERUZJTkVfQVVUT1BUUl9DTEVBTlVQX0ZVTkMgKFdlYktpdEZhdmljb25EYXRhYmFz
ZSwgZ19vYmplY3RfdW5yZWYpCitHX0RFRklORV9BVVRPUFRSX0NMRUFOVVBfRlVOQyAoV2ViS2l0
RmlsZUNob29zZXJSZXF1ZXN0LCBnX29iamVjdF91bnJlZikKK0dfREVGSU5FX0FVVE9QVFJfQ0xF
QU5VUF9GVU5DIChXZWJLaXRGaW5kQ29udHJvbGxlciwgZ19vYmplY3RfdW5yZWYpCitHX0RFRklO
RV9BVVRPUFRSX0NMRUFOVVBfRlVOQyAoV2ViS2l0Rm9ybVN1Ym1pc3Npb25SZXF1ZXN0LCBnX29i
amVjdF91bnJlZikKK0dfREVGSU5FX0FVVE9QVFJfQ0xFQU5VUF9GVU5DIChXZWJLaXRHZW9sb2Nh
dGlvblBlcm1pc3Npb25SZXF1ZXN0LCBnX29iamVjdF91bnJlZikKK0dfREVGSU5FX0FVVE9QVFJf
Q0xFQU5VUF9GVU5DIChXZWJLaXRIaXRUZXN0UmVzdWx0LCBnX29iamVjdF91bnJlZikKK0dfREVG
SU5FX0FVVE9QVFJfQ0xFQU5VUF9GVU5DIChXZWJLaXRJbnN0YWxsTWlzc2luZ01lZGlhUGx1Z2lu
c1Blcm1pc3Npb25SZXF1ZXN0LCBnX29iamVjdF91bnJlZikKK0dfREVGSU5FX0FVVE9QVFJfQ0xF
QU5VUF9GVU5DIChXZWJLaXROYXZpZ2F0aW9uUG9saWN5RGVjaXNpb24sIGdfb2JqZWN0X3VucmVm
KQorR19ERUZJTkVfQVVUT1BUUl9DTEVBTlVQX0ZVTkMgKFdlYktpdE5vdGlmaWNhdGlvbiwgZ19v
YmplY3RfdW5yZWYpCitHX0RFRklORV9BVVRPUFRSX0NMRUFOVVBfRlVOQyAoV2ViS2l0Tm90aWZp
Y2F0aW9uUGVybWlzc2lvblJlcXVlc3QsIGdfb2JqZWN0X3VucmVmKQorR19ERUZJTkVfQVVUT1BU
Ul9DTEVBTlVQX0ZVTkMgKFdlYktpdFBlcm1pc3Npb25SZXF1ZXN0LCBnX29iamVjdF91bnJlZikK
K0dfREVGSU5FX0FVVE9QVFJfQ0xFQU5VUF9GVU5DIChXZWJLaXRQbHVnaW4sIGdfb2JqZWN0X3Vu
cmVmKQorR19ERUZJTkVfQVVUT1BUUl9DTEVBTlVQX0ZVTkMgKFdlYktpdFBvbGljeURlY2lzaW9u
LCBnX29iamVjdF91bnJlZikKK0dfREVGSU5FX0FVVE9QVFJfQ0xFQU5VUF9GVU5DIChXZWJLaXRQ
cmludE9wZXJhdGlvbiwgZ19vYmplY3RfdW5yZWYpCitHX0RFRklORV9BVVRPUFRSX0NMRUFOVVBf
RlVOQyAoV2ViS2l0UmVzcG9uc2VQb2xpY3lEZWNpc2lvbiwgZ19vYmplY3RfdW5yZWYpCitHX0RF
RklORV9BVVRPUFRSX0NMRUFOVVBfRlVOQyAoV2ViS2l0U2VjdXJpdHlNYW5hZ2VyLCBnX29iamVj
dF91bnJlZikKK0dfREVGSU5FX0FVVE9QVFJfQ0xFQU5VUF9GVU5DIChXZWJLaXRTZXR0aW5ncywg
Z19vYmplY3RfdW5yZWYpCitHX0RFRklORV9BVVRPUFRSX0NMRUFOVVBfRlVOQyAoV2ViS2l0VVJJ
UmVxdWVzdCwgZ19vYmplY3RfdW5yZWYpCitHX0RFRklORV9BVVRPUFRSX0NMRUFOVVBfRlVOQyAo
V2ViS2l0VVJJUmVzcG9uc2UsIGdfb2JqZWN0X3VucmVmKQorR19ERUZJTkVfQVVUT1BUUl9DTEVB
TlVQX0ZVTkMgKFdlYktpdFVSSVNjaGVtZVJlcXVlc3QsIGdfb2JqZWN0X3VucmVmKQorR19ERUZJ
TkVfQVVUT1BUUl9DTEVBTlVQX0ZVTkMgKFdlYktpdFVzZXJDb250ZW50TWFuYWdlciwgZ19vYmpl
Y3RfdW5yZWYpCitHX0RFRklORV9BVVRPUFRSX0NMRUFOVVBfRlVOQyAoV2ViS2l0VXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3QsIGdfb2JqZWN0X3VucmVmKQorR19ERUZJTkVfQVVUT1BUUl9DTEVB
TlVQX0ZVTkMgKFdlYktpdFdlYkNvbnRleHQsIGdfb2JqZWN0X3VucmVmKQorR19ERUZJTkVfQVVU
T1BUUl9DTEVBTlVQX0ZVTkMgKFdlYktpdFdlYkluc3BlY3RvciwgZ19vYmplY3RfdW5yZWYpCitH
X0RFRklORV9BVVRPUFRSX0NMRUFOVVBfRlVOQyAoV2ViS2l0V2ViUmVzb3VyY2UsIGdfb2JqZWN0
X3VucmVmKQorR19ERUZJTkVfQVVUT1BUUl9DTEVBTlVQX0ZVTkMgKFdlYktpdFdlYlZpZXcsIGdf
b2JqZWN0X3VucmVmKQorR19ERUZJTkVfQVVUT1BUUl9DTEVBTlVQX0ZVTkMgKFdlYktpdFdlYnNp
dGVEYXRhTWFuYWdlciwgZ19vYmplY3RfdW5yZWYpCitHX0RFRklORV9BVVRPUFRSX0NMRUFOVVBf
RlVOQyAoV2ViS2l0V2luZG93UHJvcGVydGllcywgZ19vYmplY3RfdW5yZWYpCisKK0dfREVGSU5F
X0FVVE9QVFJfQ0xFQU5VUF9GVU5DIChXZWJLaXRDcmVkZW50aWFsLCB3ZWJraXRfY3JlZGVudGlh
bF9mcmVlKQorR19ERUZJTkVfQVVUT1BUUl9DTEVBTlVQX0ZVTkMgKFdlYktpdEphdmFzY3JpcHRS
ZXN1bHQsIHdlYmtpdF9qYXZhc2NyaXB0X3Jlc3VsdF91bnJlZikKK0dfREVGSU5FX0FVVE9QVFJf
Q0xFQU5VUF9GVU5DIChXZWJLaXRNaW1lSW5mbywgd2Via2l0X21pbWVfaW5mb191bnJlZikKK0df
REVGSU5FX0FVVE9QVFJfQ0xFQU5VUF9GVU5DIChXZWJLaXROYXZpZ2F0aW9uQWN0aW9uLCB3ZWJr
aXRfbmF2aWdhdGlvbl9hY3Rpb25fZnJlZSkKK0dfREVGSU5FX0FVVE9QVFJfQ0xFQU5VUF9GVU5D
IChXZWJLaXRVc2VyU2NyaXB0LCB3ZWJraXRfdXNlcl9zY3JpcHRfdW5yZWYpCitHX0RFRklORV9B
VVRPUFRSX0NMRUFOVVBfRlVOQyAoV2ViS2l0VXNlclN0eWxlU2hlZXQsIHdlYmtpdF91c2VyX3N0
eWxlX3NoZWV0X3VucmVmKQorCisjZW5kaWYgLy8gZGVmaW5lZChHX0RFRklORV9BVVRPUFRSX0NM
RUFOVVBfRlVOQykgJiYgIWRlZmluZWQoX19HSV9TQ0FOTkVSX18pCisKKyNlbmRpZiAvLyBXZWJL
aXRBdXRvY2xlYW51cHNfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9ndGsvd2Via2l0Mi5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvd2Via2l0
Mi5oCmluZGV4IDdlMDhhNjUwNjU5MTgxZTU3ZTFkYzA0MzRlZTI3YTYyOWFjNWU4ZTUuLmI5NWE3
NjBlMzhiM2M2NjVlY2EzNmVmYjc4ODFmYmNiNDdiZGJmN2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL3dlYmtpdDIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL2d0ay93ZWJraXQyLmgKQEAgLTc3LDYgKzc3LDggQEAKICNpbmNsdWRlIDx3
ZWJraXQyL1dlYktpdFdlYnNpdGVEYXRhTWFuYWdlci5oPgogI2luY2x1ZGUgPHdlYmtpdDIvV2Vi
S2l0V2luZG93UHJvcGVydGllcy5oPgogCisjaW5jbHVkZSA8d2Via2l0Mi9XZWJLaXRBdXRvY2xl
YW51cHMuaD4KKwogI3VuZGVmIF9fV0VCS0lUMl9IX0lOU0lERV9fCiAKICNlbmRpZiAvKiBfX1dF
QktJVDJfSF9fICovCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9ndGsvV2ViS2l0V2ViRXh0ZW5zaW9uQXV0b2NsZWFudXBzLmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvV2ViS2l0V2ViRXh0
ZW5zaW9uQXV0b2NsZWFudXBzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWI2OTNiZDVhZWU3ZjU2OTBhMWYxZTFh
YWRjZWNiMjYzNThjMjI2MAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9XZWJLaXRXZWJFeHRlbnNpb25BdXRvY2xlYW51
cHMuaApAQCAtMCwwICsxLDQ0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IElnYWxpYSBT
LkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpZiAhZGVmaW5lZChfX1dFQktJVF9XRUJfRVhURU5TSU9OX0hfSU5T
SURFX18pICYmICFkZWZpbmVkKFdFQktJVDJfQ09NUElMQVRJT04pCisjZXJyb3IgIk9ubHkgPHdl
YmtpdDIvd2Via2l0LXdlYi1leHRlbnNpb24uaD4gY2FuIGJlIGluY2x1ZGVkIGRpcmVjdGx5LiIK
KyNlbmRpZgorCisjaWZuZGVmIFdlYktpdFdlYkV4dGVuc2lvbkF1dG9jbGVhbnVwc19oCisjZGVm
aW5lIFdlYktpdFdlYkV4dGVuc2lvbkF1dG9jbGVhbnVwc19oCisKKyNpZiBkZWZpbmVkKEdfREVG
SU5FX0FVVE9QVFJfQ0xFQU5VUF9GVU5DKSAmJiAhZGVmaW5lZChfX0dJX1NDQU5ORVJfXykKKwor
R19ERUZJTkVfQVVUT1BUUl9DTEVBTlVQX0ZVTkMgKFdlYktpdEZyYW1lLCBnX29iamVjdF91bnJl
ZikKK0dfREVGSU5FX0FVVE9QVFJfQ0xFQU5VUF9GVU5DIChXZWJLaXRTY3JpcHRXb3JsZCwgZ19v
YmplY3RfdW5yZWYpCitHX0RFRklORV9BVVRPUFRSX0NMRUFOVVBfRlVOQyAoV2ViS2l0V2ViRWRp
dG9yLCBnX29iamVjdF91bnJlZikKK0dfREVGSU5FX0FVVE9QVFJfQ0xFQU5VUF9GVU5DIChXZWJL
aXRXZWJFeHRlbnNpb24sIGdfb2JqZWN0X3VucmVmKQorR19ERUZJTkVfQVVUT1BUUl9DTEVBTlVQ
X0ZVTkMgKFdlYktpdFdlYkhpdFRlc3RSZXN1bHQsIGdfb2JqZWN0X3VucmVmKQorR19ERUZJTkVf
QVVUT1BUUl9DTEVBTlVQX0ZVTkMgKFdlYktpdFdlYlBhZ2UsIGdfb2JqZWN0X3VucmVmKQorCisj
ZW5kaWYgLy8gZGVmaW5lZChHX0RFRklORV9BVVRPUFRSX0NMRUFOVVBfRlVOQykgJiYgIWRlZmlu
ZWQoX19HSV9TQ0FOTkVSX18pCisKKyNlbmRpZiAvLyBXZWJLaXRXZWJFeHRlbnNpb25BdXRvY2xl
YW51cHNfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvZ3RrL3dlYmtpdC13ZWItZXh0ZW5zaW9uLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvd2Via2l0LXdlYi1leHRlbnNpb24uaAppbmRl
eCAxYzc0NmRiNWJkOTU0NjdkNWNkYTRjZmMxODczYzNhMGNlZDBiZDM2Li5kOTAwYmRhM2I1NTY3
ODRjMTE1ZTExNGEwNmQwZjQ4ZWY3MWI4MDkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvd2Via2l0LXdlYi1leHRlbnNpb24uaAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvd2Vi
a2l0LXdlYi1leHRlbnNpb24uaApAQCAtMzksNiArMzksOCBAQAogI2luY2x1ZGUgPHdlYmtpdDIv
V2ViS2l0V2ViSGl0VGVzdFJlc3VsdC5oPgogI2luY2x1ZGUgPHdlYmtpdDIvV2ViS2l0V2ViUGFn
ZS5oPgogCisjaW5jbHVkZSA8d2Via2l0Mi9XZWJLaXRXZWJFeHRlbnNpb25BdXRvY2xlYW51cHMu
aD4KKwogI3VuZGVmIF9fV0VCS0lUX1dFQl9FWFRFTlNJT05fSF9JTlNJREVfXwogCiAjZW5kaWYK
ZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBhZmFi
ZmJlNzczYjNhODc1NzRmNDc2MDg2OTZhMDY4MWNhMzJiNjg3Li4wMzJjZTljOTlhNTQ3ZmY0MjAw
OWYzNzc0OTUxNjNmYjYxMjg1YjExIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIv
VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTUtMTAtMDEgIE1pY2hhZWwgQ2F0
YW56YXJvICA8bWNhdGFuemFyb0BpZ2FsaWEuY29tPgorCisgICAgICAgIFtHVEtdIEFkZCBhdXRv
Y2xlYW51cHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE0OTU4OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyR3RrL0F1dG9jbGVhbnVwc1Rlc3QuY3BwOiBB
ZGRlZC4KKyAgICAgICAgKEF1dG9jbGVhbnVwc1Rlc3Q6OmNyZWF0ZSk6CisgICAgICAgIChBdXRv
Y2xlYW51cHNUZXN0Ojp0ZXN0V2ViUHJvY2Vzc0F1dG9jbGVhbnVwcyk6CisgICAgICAgIChyZWdp
c3RlclRlc3RzKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJHdGsvQ01h
a2VMaXN0cy50eHQ6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyR3RrL1Rl
c3RBdXRvY2xlYW51cHMuY3BwOiBBZGRlZC4KKyAgICAgICAgKHRlc3RVSVByb2Nlc3NBdXRvY2xl
YW51cHMpOgorICAgICAgICAodGVzdFdlYlByb2Nlc3NBdXRvY2xlYW51cHMpOgorICAgICAgICAo
YmVmb3JlQWxsKToKKyAgICAgICAgKGFmdGVyQWxsKToKKwogMjAxNS0wOS0xNiAgQ2FybG9zIEdh
cmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgcHJpbnRpbmcgZG9l
cyBub3QgdXNlIG1pbmltdW0gcGFnZSB6b29tIGZhY3RvcgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyR3RrL0F1dG9jbGVhbnVwc1Rlc3QuY3BwIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyR3RrL0F1dG9jbGVhbnVwc1Rlc3QuY3BwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjA2YjNlOTc4OWVkNjNkOWJiZTNhNGY3YmEwMWRmMGJhNzYyZjc4ZjgKLS0tIC9kZXYv
bnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJHdGsvQXV0b2NsZWFu
dXBzVGVzdC5jcHAKQEAgLTAsMCArMSw2OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBJ
Z2FsaWEgUy5MLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2Fu
IHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2Yg
dGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBi
eSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0
aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisg
KiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJl
IHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBp
bXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1Ymxp
YyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2Vp
dmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICog
YWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5v
dCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZy
YW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVT
QS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpbmNsdWRlICJXZWJQcm9jZXNzVGVz
dC5oIgorI2luY2x1ZGUgPHdlYmtpdDIvd2Via2l0LXdlYi1leHRlbnNpb24uaD4KKworY2xhc3Mg
QXV0b2NsZWFudXBzVGVzdCA6IHB1YmxpYyBXZWJQcm9jZXNzVGVzdCB7CitwdWJsaWM6CisgICAg
c3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxXZWJQcm9jZXNzVGVzdD4gY3JlYXRlKCkgeyByZXR1cm4g
c3RkOjp1bmlxdWVfcHRyPFdlYlByb2Nlc3NUZXN0PihuZXcgQXV0b2NsZWFudXBzVGVzdCgpKTsg
fQorCitwcml2YXRlOgorICAgIGJvb2wgdGVzdFdlYlByb2Nlc3NBdXRvY2xlYW51cHMoV2ViS2l0
V2ViUGFnZSogd2ViUGFnZSkKKyAgICB7CisgICAgICAgIC8vIFRyYW5zZmVyIG5vbmUKKyAgICAg
ICAgZ19hdXRvcHRyKFdlYktpdFdlYlBhZ2UpIHBhZ2UgPSBXRUJLSVRfV0VCX1BBR0UoZ19vYmpl
Y3RfcmVmKEdfT0JKRUNUKHdlYlBhZ2UpKSk7CisgICAgICAgIGdfYXNzZXJ0KFdFQktJVF9JU19X
RUJfUEFHRShwYWdlKSk7CisgICAgICAgIGFzc2VydE9iamVjdElzRGVsZXRlZFdoZW5UZXN0Rmlu
aXNoZXMoR19PQkpFQ1QocGFnZSkpOworCisgICAgICAgIC8vIFRyYW5zZmVyIG5vbmUKKyAgICAg
ICAgZ19hdXRvcHRyKFdlYktpdERPTURvY3VtZW50KSBkb2N1bWVudCA9IFdFQktJVF9ET01fRE9D
VU1FTlQoZ19vYmplY3RfcmVmKEdfT0JKRUNUKHdlYmtpdF93ZWJfcGFnZV9nZXRfZG9tX2RvY3Vt
ZW50KHBhZ2UpKSkpOworICAgICAgICBnX2Fzc2VydChXRUJLSVRfRE9NX0lTX0RPQ1VNRU5UKGRv
Y3VtZW50KSk7CisgICAgICAgIGFzc2VydE9iamVjdElzRGVsZXRlZFdoZW5UZXN0RmluaXNoZXMo
R19PQkpFQ1QoZG9jdW1lbnQpKTsKKworICAgICAgICAvLyBUcmFuc2ZlciBmdWxsCisgICAgICAg
IGdfYXV0b3B0cihXZWJLaXRET01ET01XaW5kb3cpIHdpbmRvdyA9IHdlYmtpdF9kb21fZG9jdW1l
bnRfZ2V0X2RlZmF1bHRfdmlldyhkb2N1bWVudCk7CisgICAgICAgIGdfYXNzZXJ0KFdFQktJVF9E
T01fSVNfRE9NX1dJTkRPVyh3aW5kb3cpKTsKKyAgICAgICAgYXNzZXJ0T2JqZWN0SXNEZWxldGVk
V2hlblRlc3RGaW5pc2hlcyhHX09CSkVDVCh3aW5kb3cpKTsKKworICAgICAgICAvLyBUcmFuc2Zl
ciBmdWxsCisgICAgICAgIGdfYXV0b3B0cihXZWJLaXRET01SYW5nZSkgcmFuZ2UgPSB3ZWJraXRf
ZG9tX2RvY3VtZW50X2NyZWF0ZV9yYW5nZShkb2N1bWVudCk7CisgICAgICAgIGdfYXNzZXJ0KFdF
QktJVF9ET01fSVNfUkFOR0UocmFuZ2UpKTsKKyAgICAgICAgYXNzZXJ0T2JqZWN0SXNEZWxldGVk
V2hlblRlc3RGaW5pc2hlcyhHX09CSkVDVChyYW5nZSkpOworCisgICAgICAgIHJldHVybiB0cnVl
OworICAgIH0KKworICAgIGJvb2wgcnVuVGVzdChjb25zdCBjaGFyKiB0ZXN0TmFtZSwgV2ViS2l0
V2ViUGFnZSogcGFnZSkgb3ZlcnJpZGUKKyAgICB7CisgICAgICAgIGlmICghc3RyY21wKHRlc3RO
YW1lLCAid2ViLXByb2Nlc3MtYXV0b2NsZWFudXBzIikpCisgICAgICAgICAgICByZXR1cm4gdGVz
dFdlYlByb2Nlc3NBdXRvY2xlYW51cHMocGFnZSk7CisKKyAgICAgICAgZ19hc3NlcnRfbm90X3Jl
YWNoZWQoKTsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KK307CisKK3N0YXRpYyB2b2lk
IF9fYXR0cmlidXRlX18oKGNvbnN0cnVjdG9yKSkgcmVnaXN0ZXJUZXN0cygpCit7CisgICAgUkVH
SVNURVJfVEVTVChBdXRvY2xlYW51cHNUZXN0LCAiQXV0b2NsZWFudXBzL3dlYi1wcm9jZXNzLWF1
dG9jbGVhbnVwcyIpOworfQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXQyR3RrL0NNYWtlTGlzdHMudHh0IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXQyR3RrL0NNYWtlTGlzdHMudHh0CmluZGV4IDc0ZDUyNTBkNDRhNGVmNGY0MDI1NGEwMDcxYjUy
NmNhNWM3YWI2YWYuLmZmMjcyM2Y5MjBmYjQzNTk3NTk1OWYzN2VlYTk4OGJhYzMxZGQwNWQgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mkd0ay9DTWFrZUxpc3Rz
LnR4dAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJHdGsvQ01ha2VMaXN0
cy50eHQKQEAgLTkwLDEwICs5MCwxMSBAQCBtYWNybyhBRERfV0syX1RFU1QgdGVzdF9uYW1lKQog
ZW5kbWFjcm8oKQogCiBBRERfV0syX1RFU1RfV0VCX0VYVEVOU0lPTihXZWJFeHRlbnNpb25UZXN0
IFdlYkV4dGVuc2lvblRlc3QuY3BwKQotQUREX1dLMl9URVNUX1dFQl9FWFRFTlNJT04oV2ViUHJv
Y2Vzc1Rlc3QgRE9NTm9kZVRlc3QuY3BwIERPTU5vZGVGaWx0ZXJUZXN0LmNwcCBET01YUGF0aE5T
UmVzb2x2ZXJUZXN0LmNwcCBGcmFtZVRlc3QuY3BwIFdlYlByb2Nlc3NUZXN0LmNwcCBFZGl0b3JU
ZXN0LmNwcCkKK0FERF9XSzJfVEVTVF9XRUJfRVhURU5TSU9OKFdlYlByb2Nlc3NUZXN0IEF1dG9j
bGVhbnVwc1Rlc3QuY3BwIERPTU5vZGVUZXN0LmNwcCBET01Ob2RlRmlsdGVyVGVzdC5jcHAgRE9N
WFBhdGhOU1Jlc29sdmVyVGVzdC5jcHAgRnJhbWVUZXN0LmNwcCBXZWJQcm9jZXNzVGVzdC5jcHAg
RWRpdG9yVGVzdC5jcHApCiAKIEFERF9XSzJfVEVTVChJbnNwZWN0b3JUZXN0U2VydmVyIEluc3Bl
Y3RvclRlc3RTZXJ2ZXIuY3BwKQogQUREX1dLMl9URVNUKFRlc3RBdXRoZW50aWNhdGlvbiBUZXN0
QXV0aGVudGljYXRpb24uY3BwKQorQUREX1dLMl9URVNUKFRlc3RBdXRvY2xlYW51cHMgVGVzdEF1
dG9jbGVhbnVwcy5jcHApCiBBRERfV0syX1RFU1QoVGVzdEJhY2tGb3J3YXJkTGlzdCBUZXN0QmFj
a0ZvcndhcmRMaXN0LmNwcCkKIEFERF9XSzJfVEVTVChUZXN0Q29udGV4dE1lbnUgVGVzdENvbnRl
eHRNZW51LmNwcCkKIEFERF9XSzJfVEVTVChUZXN0Q29va2llTWFuYWdlciBUZXN0Q29va2llTWFu
YWdlci5jcHApCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJH
dGsvVGVzdEF1dG9jbGVhbnVwcy5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dDJHdGsvVGVzdEF1dG9jbGVhbnVwcy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODc5YzMxNGJiOTk2MDI3NmNl
MDAwNGNlOGI2NTJhZmZmNmY0N2M5NgotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0Mkd0ay9UZXN0QXV0b2NsZWFudXBzLmNwcApAQCAtMCwwICsxLDYw
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IElnYWxpYSBTLkwuCisgKgorICogVGhpcyBs
aWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgor
ICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5k
YXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBv
cHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmli
dXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQg
QU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1F
UkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0
aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWls
cy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGli
cmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsg
c2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUg
U29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9v
ciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNpbmNsdWRlICJjb25m
aWcuaCIKKworI2luY2x1ZGUgIldlYlZpZXdUZXN0LmgiCisjaW5jbHVkZSA8d2Via2l0Mi93ZWJr
aXQyLmg+CisKK3N0YXRpYyB2b2lkIHRlc3RVSVByb2Nlc3NBdXRvY2xlYW51cHMoV2ViVmlld1Rl
c3QqIHRlc3QsIGdjb25zdHBvaW50ZXIpCit7CisgICAgLy8gU2FuaXR5LWNoZWNrIGEgY291cGxl
IFVJIHByb2Nlc3MgQVBJIGF1dG9jbGVhbnVwcyB0aGF0IGFyZSBlYXN5IHRvIHRlc3QuLi4uCisg
ICAgZ19hdXRvcHRyKFdlYktpdFdlYkNvbnRleHQpIGNvbnRleHQgPSB3ZWJraXRfd2ViX2NvbnRl
eHRfbmV3KCk7CisgICAgZ19hc3NlcnQoV0VCS0lUX0lTX1dFQl9DT05URVhUKGNvbnRleHQpKTsK
KyAgICB0ZXN0LT5hc3NlcnRPYmplY3RJc0RlbGV0ZWRXaGVuVGVzdEZpbmlzaGVzKEdfT0JKRUNU
KGNvbnRleHQpKTsKKworICAgIGdfYXV0b3B0cihXZWJLaXRXZWJzaXRlRGF0YU1hbmFnZXIpIG1h
bmFnZXIgPSB3ZWJraXRfd2Vic2l0ZV9kYXRhX21hbmFnZXJfbmV3KG51bGxwdHIpOworICAgIGdf
YXNzZXJ0KFdFQktJVF9JU19XRUJTSVRFX0RBVEFfTUFOQUdFUihtYW5hZ2VyKSk7CisgICAgdGVz
dC0+YXNzZXJ0T2JqZWN0SXNEZWxldGVkV2hlblRlc3RGaW5pc2hlcyhHX09CSkVDVChjb250ZXh0
KSk7CisKKyAgICBnX2F1dG9wdHIoV2ViS2l0VXNlclNjcmlwdCkgdXNlclNjcmlwdCA9IHdlYmtp
dF91c2VyX3NjcmlwdF9uZXcoIiIsCisgICAgICAgIFdFQktJVF9VU0VSX0NPTlRFTlRfSU5KRUNU
X0FMTF9GUkFNRVMsIFdFQktJVF9VU0VSX1NDUklQVF9JTkpFQ1RfQVRfRE9DVU1FTlRfU1RBUlQs
CisgICAgICAgIG51bGxwdHIsIG51bGxwdHIpOworICAgIGdfYXNzZXJ0KHVzZXJTY3JpcHQpOwor
ICAgIC8vIE5vdCBhIEdPYmplY3QsIHNvIGp1c3QgY2hlY2tpbmcgdGhhdCB0aGlzIGRvZXNuJ3Qg
Y3Jhc2guLi4uCit9CisKK3N0YXRpYyB2b2lkIHRlc3RXZWJQcm9jZXNzQXV0b2NsZWFudXBzKFdl
YlZpZXdUZXN0KiB0ZXN0LCBnY29uc3Rwb2ludGVyKQoreworICAgIHN0YXRpYyBjb25zdCBjaGFy
KiB0ZXN0SFRNTCA9ICI8aHRtbD48Ym9keT48L2JvZHk+PC9odG1sPiI7CisgICAgdGVzdC0+bG9h
ZEh0bWwodGVzdEhUTUwsIDApOworICAgIHRlc3QtPndhaXRVbnRpbExvYWRGaW5pc2hlZCgpOwor
CisgICAgZ19hc3NlcnQodGVzdC0+cnVuV2ViUHJvY2Vzc1Rlc3QoIkF1dG9jbGVhbnVwcyIsICJ3
ZWItcHJvY2Vzcy1hdXRvY2xlYW51cHMiKSk7Cit9CisKK3ZvaWQgYmVmb3JlQWxsKCkKK3sKKyAg
ICBXZWJWaWV3VGVzdDo6YWRkKCJBdXRvY2xlYW51cHMiLCAidWktcHJvY2Vzcy1hdXRvY2xlYW51
cHMiLCB0ZXN0VUlQcm9jZXNzQXV0b2NsZWFudXBzKTsKKyAgICBXZWJWaWV3VGVzdDo6YWRkKCJB
dXRvY2xlYW51cHMiLCAid2ViLXByb2Nlc3MtYXV0b2NsZWFudXBzIiwgdGVzdFdlYlByb2Nlc3NB
dXRvY2xlYW51cHMpOworfQorCit2b2lkIGFmdGVyQWxsKCkKK3sKK30K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>262574</attachid>
            <date>2015-10-06 21:07:44 -0700</date>
            <delta_ts>2015-10-06 21:07:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-149588-20151006230712.patch</filename>
            <type>text/plain</type>
            <size>25019</size>
            <attacher name="Michael Catanzaro">mcatanzaro</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTkwNjU4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDgxZmZkZmI2NTZjZTVm
NTk0NDM5ZGNmNDJjNTA4MTJjMzQzZmJhMy4uMDAzODA0ODRkZGQyZjk3MDNlOTY1ZjI3YmI4MTdk
NTVlZWI4NGE5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDE1LTEwLTA2ICBNaWNo
YWVsIENhdGFuemFybyAgPG1jYXRhbnphcm9AaWdhbGlhLmNvbT4KKworICAgICAgICBbR1RLXSBB
ZGQgYXV0b2NsZWFudXBzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xNDk1ODgKKworICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KKworICAg
ICAgICAqIFBsYXRmb3JtR1RLLmNtYWtlOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvZ29i
amVjdC1nZW5lcmF0ZS1oZWFkZXJzLnBsOgorCiAyMDE1LTEwLTA2ICBaYWxhbiBCdWp0YXMgIDx6
YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgUGFpbnQgYXJ0aWZhY3RzIHdoZW4gaG92ZXJpbmcg
b24gaHR0cDovL2pzZmlkZGxlLm5ldC9TaGVyYnJvdy9UODdNbi8KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCA5NmVi
MzZiODhmM2ViYWNiNWVjMjIxYjNjZTQ0ZWNhMzQ3ODQzZDAxLi4xYTUzYWVjNzFiMWQxMTczNDY1
ZGY5YjBmMGU3NmI2NjVhZTUyMzQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTUt
MTAtMDYgIE1pY2hhZWwgQ2F0YW56YXJvICA8bWNhdGFuemFyb0BpZ2FsaWEuY29tPgorCisgICAg
ICAgIFtHVEtdIEFkZCBhdXRvY2xlYW51cHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE0OTU4OAorCisgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFk
bGVyLgorCisgICAgICAgICogUGxhdGZvcm1HVEsuY21ha2U6CisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9ndGsvV2ViS2l0QXV0b2NsZWFudXBzLmg6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vz
cy9BUEkvZ3RrL3dlYmtpdDIuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9ndGsvV2ViS2l0V2ViRXh0ZW5zaW9uQXV0b2NsZWFudXBzLmg6IEFkZGVkLgorICAgICAg
ICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay93ZWJraXQtd2ViLWV4dGVuc2lv
bi5oOgorCiAyMDE1LTEwLTA2ICBBbmRlcnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+
CiAKICAgICAgICAgVHJ5IHRvIGZpeCB0aGUgMzItYml0IGJ1aWxkLgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvUGxhdGZvcm1HVEsuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUdU
Sy5jbWFrZQppbmRleCA1YjZlMWUyZTg1Mzk3MDM3N2JmNDNhNjA5OWEzOWQyNjNlOTc4MzE3Li5l
NjUzNTA1MTU0OGFjMWE0MzllYmExYjkzMmU3MGNkYjk2ZTIzOTg2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9QbGF0Zm9ybUdUSy5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9y
bUdUSy5jbWFrZQpAQCAtNTU5LDYgKzU1OSw4IEBAIGxpc3QoQVBQRU5EIEdPYmplY3RET01CaW5k
aW5nc19TT1VSQ0VTCiAgICAgYmluZGluZ3MvZ29iamVjdC9XZWJLaXRET01PYmplY3QuY3BwCiAg
ICAgYmluZGluZ3MvZ29iamVjdC9XZWJLaXRET01Qcml2YXRlLmNwcAogICAgIGJpbmRpbmdzL2dv
YmplY3QvV2ViS2l0RE9NWFBhdGhOU1Jlc29sdmVyLmNwcAorICAgICR7REVSSVZFRF9TT1VSQ0VT
X0dPQkpFQ1RfRE9NX0JJTkRJTkdTX0RJUn0vd2Via2l0ZG9tYXV0b2NsZWFudXBzLmgKKyAgICAk
e0RFUklWRURfU09VUkNFU19HT0JKRUNUX0RPTV9CSU5ESU5HU19ESVJ9L3dlYmtpdGRvbWF1dG9j
bGVhbnVwcy11bnN0YWJsZS5oCiAgICAgJHtERVJJVkVEX1NPVVJDRVNfR09CSkVDVF9ET01fQklO
RElOR1NfRElSfS93ZWJraXRkb21kZWZpbmVzLmgKICAgICAke0RFUklWRURfU09VUkNFU19HT0JK
RUNUX0RPTV9CSU5ESU5HU19ESVJ9L3dlYmtpdGRvbWRlZmluZXMtdW5zdGFibGUuaAogICAgICR7
REVSSVZFRF9TT1VSQ0VTX0dPQkpFQ1RfRE9NX0JJTkRJTkdTX0RJUn0vd2Via2l0ZG9tLmgKQEAg
LTc3NCw2ICs3NzYsNyBAQCBzZXQoR09iamVjdERPTUJpbmRpbmdzX1NUQVRJQ19DTEFTU19MSVNU
IEN1c3RvbSBEZXByZWNhdGVkIEV2ZW50VGFyZ2V0IE5vZGVGaWx0ZQogCiBzZXQoR09iamVjdERP
TUJpbmRpbmdzU3RhYmxlX0NMQVNTX0xJU1QgJHtHT2JqZWN0RE9NQmluZGluZ3NfU1RBVElDX0NM
QVNTX0xJU1R9KQogc2V0KEdPYmplY3RET01CaW5kaW5nc1N0YWJsZV9JTlNUQUxMRURfSEVBREVS
UworICAgICAke0RFUklWRURfU09VUkNFU19HT0JKRUNUX0RPTV9CSU5ESU5HU19ESVJ9L3dlYmtp
dGRvbWF1dG9jbGVhbnVwcy5oCiAgICAgICR7REVSSVZFRF9TT1VSQ0VTX0dPQkpFQ1RfRE9NX0JJ
TkRJTkdTX0RJUn0vd2Via2l0ZG9tZGVmaW5lcy5oCiAgICAgICR7REVSSVZFRF9TT1VSQ0VTX0dP
QkpFQ1RfRE9NX0JJTkRJTkdTX0RJUn0vd2Via2l0ZG9tLmgKICAgICAgJHtXRUJDT1JFX0RJUn0v
YmluZGluZ3MvZ29iamVjdC9XZWJLaXRET01DdXN0b20uaApAQCAtNzg1LDYgKzc4OCw3IEBAIHNl
dChHT2JqZWN0RE9NQmluZGluZ3NTdGFibGVfSU5TVEFMTEVEX0hFQURFUlMKICkKIAogc2V0KEdP
YmplY3RET01CaW5kaW5nc1Vuc3RhYmxlX0lOU1RBTExFRF9IRUFERVJTCisgICAgICR7REVSSVZF
RF9TT1VSQ0VTX0dPQkpFQ1RfRE9NX0JJTkRJTkdTX0RJUn0vd2Via2l0ZG9tYXV0b2NsZWFudXBz
LXVuc3RhYmxlLmgKICAgICAgJHtERVJJVkVEX1NPVVJDRVNfR09CSkVDVF9ET01fQklORElOR1Nf
RElSfS93ZWJraXRkb21kZWZpbmVzLXVuc3RhYmxlLmgKICAgICAgJHtXRUJDT1JFX0RJUn0vYmlu
ZGluZ3MvZ29iamVjdC9XZWJLaXRET01DdXN0b21VbnN0YWJsZS5oCiApCkBAIC04MjYsNiArODMw
LDE4IEBAIGFkZF9jdXN0b21fY29tbWFuZCgKICAgICBDT01NQU5EIGVjaG8gJHtHT2JqZWN0RE9N
QmluZGluZ3NTdGFibGVfQ0xBU1NfTElTVH0gfCAke1BFUkxfRVhFQ1VUQUJMRX0gJHtXRUJDT1JF
X0RJUn0vYmluZGluZ3Mvc2NyaXB0cy9nb2JqZWN0LWdlbmVyYXRlLWhlYWRlcnMucGwgZ2RvbSA+
ICR7REVSSVZFRF9TT1VSQ0VTX0dPQkpFQ1RfRE9NX0JJTkRJTkdTX0RJUn0vd2Via2l0ZG9tLmgK
ICkKIAorYWRkX2N1c3RvbV9jb21tYW5kKAorICAgIE9VVFBVVCAke0RFUklWRURfU09VUkNFU19H
T0JKRUNUX0RPTV9CSU5ESU5HU19ESVJ9L3dlYmtpdGRvbWF1dG9jbGVhbnVwcy5oCisgICAgREVQ
RU5EUyAke1dFQkNPUkVfRElSfS9iaW5kaW5ncy9zY3JpcHRzL2dvYmplY3QtZ2VuZXJhdGUtaGVh
ZGVycy5wbAorICAgIENPTU1BTkQgZWNobyAke0dPYmplY3RET01CaW5kaW5nc1N0YWJsZV9DTEFT
U19MSVNUfSB8ICR7UEVSTF9FWEVDVVRBQkxFfSAke1dFQkNPUkVfRElSfS9iaW5kaW5ncy9zY3Jp
cHRzL2dvYmplY3QtZ2VuZXJhdGUtaGVhZGVycy5wbCBhdXRvY2xlYW51cHMgPiAke0RFUklWRURf
U09VUkNFU19HT0JKRUNUX0RPTV9CSU5ESU5HU19ESVJ9L3dlYmtpdGRvbWF1dG9jbGVhbnVwcy5o
CispCisKK2FkZF9jdXN0b21fY29tbWFuZCgKKyAgICBPVVRQVVQgJHtERVJJVkVEX1NPVVJDRVNf
R09CSkVDVF9ET01fQklORElOR1NfRElSfS93ZWJraXRkb21hdXRvY2xlYW51cHMtdW5zdGFibGUu
aAorICAgIERFUEVORFMgJHtXRUJDT1JFX0RJUn0vYmluZGluZ3Mvc2NyaXB0cy9nb2JqZWN0LWdl
bmVyYXRlLWhlYWRlcnMucGwKKyAgICBDT01NQU5EIGVjaG8gJHtHT2JqZWN0RE9NQmluZGluZ3NV
bnN0YWJsZV9DTEFTU19MSVNUfSB8ICR7UEVSTF9FWEVDVVRBQkxFfSAke1dFQkNPUkVfRElSfS9i
aW5kaW5ncy9zY3JpcHRzL2dvYmplY3QtZ2VuZXJhdGUtaGVhZGVycy5wbCBhdXRvY2xlYW51cHMg
PiAke0RFUklWRURfU09VUkNFU19HT0JKRUNUX0RPTV9CSU5ESU5HU19ESVJ9L3dlYmtpdGRvbWF1
dG9jbGVhbnVwcy11bnN0YWJsZS5oCispCisKICMgU29tZSBvZiB0aGUgc3RhdGljIGhlYWRlcnMg
YXJlIGluY2x1ZGVkIGJ5IGdlbmVyYXRlZCBwdWJsaWMgaGVhZGVycyB3aXRoIGluY2x1ZGUgPHdl
YmtpdGRvbS9XZWJLaXRET01Gb28uaD4uCiAjIFdlIG5lZWQgdGhvc2UgaGVhZGVycyBpbiB0aGUg
ZGVyaXZlZCBzb3VyY2VzIHRvIGJlIGluIHdlYmtpdGRvbSBkaXJlY3RvcnkuCiBzZXQoR09iamVj
dERPTUJpbmRpbmdzX1NUQVRJQ19IRUFERVJfTkFNRVMgJHtHT2JqZWN0RE9NQmluZGluZ3NfU1RB
VElDX0NMQVNTX0xJU1R9IEN1c3RvbVVuc3RhYmxlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy9nb2JqZWN0LWdlbmVyYXRlLWhlYWRlcnMucGwgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL2dvYmplY3QtZ2VuZXJhdGUtaGVhZGVycy5wbAppbmRl
eCBjN2FkNzg1MjcyMjBjNzBkMDg4ODYwNjFjNDY3NDk1M2NkM2RlZmRjLi45ZjJjNjlhY2YwNTMw
YmFjMTk5ODBhMzVmZjFmZjBkMGQwZWVhYmQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL2dvYmplY3QtZ2VuZXJhdGUtaGVhZGVycy5wbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL2dvYmplY3QtZ2VuZXJhdGUtaGVhZGVycy5wbApAQCAt
MSw2ICsxLDcgQEAKICMhL3Vzci9iaW4vcGVybCAtdwogIwogIyBDb3B5cmlnaHQgKEMpIDIwMDkg
QWRhbSBEaW5nbGUgPGFkYW1AeW9yYmEub3JnPgorIyBDb3B5cmlnaHQgKEMpIDIwMTUgSWdhbGlh
IFMuTC4KICMKICMgVGhpcyBmaWxlIGlzIHBhcnQgb2YgV2ViS2l0CiAjIApAQCAtNTUsNiArNTYs
OCBAQCBpZiAoJG91dFR5cGUgZXEgImRlZmluZXMiKSB7CiAgICAgJGhlYWRlciA9ICJ3ZWJraXRk
b21kZWZpbmVzX3Vuc3RhYmxlX2giOwogfSBlbHNpZiAoJG91dFR5cGUgZXEgImdkb20iKSB7CiAg
ICAgJGhlYWRlciA9ICJ3ZWJraXRkb21faCI7Cit9IGVsc2lmICgkb3V0VHlwZSBlcSAiYXV0b2Ns
ZWFudXBzIikgeworICAgICRoZWFkZXIgPSAid2Via2l0ZG9tYXV0b2NsZWFudXBzX2giOwogfSBl
bHNlIHsKICAgICBkaWUgInVua25vd24gb3V0cHV0IHR5cGUiOwogfQpAQCAtOTIsNiArOTUsNyBA
QCBpZiAoJG91dFR5cGUgZXEgImRlZmluZXMiKSB7CiAgICAgICAgICAgICBwcmludCAiXG4iOwog
ICAgICAgICB9CiAgICAgfQorICAgIHByaW50ICIjaW5jbHVkZSA8d2Via2l0ZG9tL3dlYmtpdGRv
bWF1dG9jbGVhbnVwcy5oPlxuIjsKIH0gZWxzaWYgKCRvdXRUeXBlIGVxICJkZWZpbmVzLXVuc3Rh
YmxlIikgewogICAgIHByaW50ICIjaW5jbHVkZSA8d2Via2l0ZG9tL3dlYmtpdGRvbWRlZmluZXMu
aD5cblxuIjsKICAgICBwcmludCAiI2lmZGVmIFdFQktJVF9ET01fVVNFX1VOU1RBQkxFX0FQSVxu
XG4iOwpAQCAtMTAyLDYgKzEwNiw3IEBAIGlmICgkb3V0VHlwZSBlcSAiZGVmaW5lcyIpIHsKICAg
ICAgICAgcHJpbnQgIlxuIjsKICAgICB9CiAKKyAgICBwcmludCAiI2luY2x1ZGUgPHdlYmtpdGRv
bS93ZWJraXRkb21hdXRvY2xlYW51cHMtdW5zdGFibGUuaD5cblxuIjsKICAgICBwcmludCAiI2Vu
ZGlmIC8qIFdFQktJVF9ET01fVVNFX1VOU1RBQkxFX0FQSSAqL1xuXG4iOwogfSBlbHNpZiAoJG91
dFR5cGUgZXEgImdkb20iKSB7CiAgICAgcHJpbnQgIiNkZWZpbmUgX19XRUJLSVRET01fSF9JTlNJ
REVfX1xuXG4iOwpAQCAtMTA5LDYgKzExNCwxNyBAQCBpZiAoJG91dFR5cGUgZXEgImRlZmluZXMi
KSB7CiAgICAgICAgIHByaW50ICIjaW5jbHVkZSA8d2Via2l0ZG9tL1dlYktpdERPTSR7Y2xhc3N9
Lmg+XG4iOwogICAgIH0KICAgICBwcmludCAiXG4jdW5kZWYgX19XRUJLSVRET01fSF9JTlNJREVf
X1xuIjsKK30gZWxzaWYgKCRvdXRUeXBlIGVxICJhdXRvY2xlYW51cHMiKSB7CisgICAgcHJpbnQg
IiNpbmNsdWRlIDxnbGliLW9iamVjdC5oPlxuXG4iOworICAgIHByaW50ICIjaWZkZWYgR19ERUZJ
TkVfQVVUT1BUUl9DTEVBTlVQX0ZVTkNcbiI7CisgICAgcHJpbnQgIiNpZm5kZWYgX19HSV9TQ0FO
TkVSX19cblxuIjsKKyAgICBmb3JlYWNoIG15ICRjbGFzcyAoQGNsYXNzZXMpIHsKKyAgICAgICAg
aWYgKCRjbGFzcyBuZSAiRGVwcmVjYXRlZCIgJiYgJGNsYXNzIG5lICJDdXN0b20iKSB7CisgICAg
ICAgICAgICBwcmludCAiR19ERUZJTkVfQVVUT1BUUl9DTEVBTlVQX0ZVTkMgKFdlYktpdERPTSR7
Y2xhc3N9LCBnX29iamVjdF91bnJlZilcbiI7CisgICAgICAgIH0KKyAgICB9CisgICAgcHJpbnQg
IlxuI2VuZGlmXG4iOworICAgIHByaW50ICIjZW5kaWZcbiI7CiB9CiAKIHByaW50ICJcbiI7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybUdUSy5jbWFrZSBiL1NvdXJjZS9XZWJL
aXQyL1BsYXRmb3JtR1RLLmNtYWtlCmluZGV4IDdlNmZjNTg2M2YyNjkwMzNkZGI2NWNjYTk4OWZj
YWU4MTgxZGU1NWIuLjRjMmIxZDg4ZGNhYjVkNzkyNTM2MDUxZWJmMDEyZTA5NDUwYWRiZWIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtR1RLLmNtYWtlCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1BsYXRmb3JtR1RLLmNtYWtlCkBAIC0xMDgsNiArMTA4LDcgQEAgbGlzdChBUFBFTkQg
V2ViS2l0Ml9TT1VSQ0VTCiAgICAgVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0QXV0aGVudGljYXRp
b25EaWFsb2cuaAogICAgIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEF1dGhlbnRpY2F0aW9uUmVx
dWVzdC5jcHAKICAgICBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRBdXRoZW50aWNhdGlvblJlcXVl
c3QuaAorICAgIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEF1dG9jbGVhbnVwcy5oCiAgICAgVUlQ
cm9jZXNzL0FQSS9ndGsvV2ViS2l0QmFja0ZvcndhcmRMaXN0LmNwcAogICAgIFVJUHJvY2Vzcy9B
UEkvZ3RrL1dlYktpdEJhY2tGb3J3YXJkTGlzdC5oCiAgICAgVUlQcm9jZXNzL0FQSS9ndGsvV2Vi
S2l0QmFja0ZvcndhcmRMaXN0SXRlbS5jcHAKQEAgLTM3NSw2ICszNzYsNyBAQCBzZXQoV2ViS2l0
MkdUS19JTlNUQUxMRURfSEVBREVSUwogICAgICR7REVSSVZFRF9TT1VSQ0VTX1dFQktJVDJHVEtf
QVBJX0RJUn0vV2ViS2l0RW51bVR5cGVzLmgKICAgICAke0RFUklWRURfU09VUkNFU19XRUJLSVQy
R1RLX0FQSV9ESVJ9L1dlYktpdFZlcnNpb24uaAogICAgICR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vz
cy9BUEkvZ3RrL1dlYktpdEF1dGhlbnRpY2F0aW9uUmVxdWVzdC5oCisgICAgJHtXRUJLSVQyX0RJ
Un0vVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0QXV0b2NsZWFudXBzLmgKICAgICAke1dFQktJVDJf
RElSfS9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRCYWNrRm9yd2FyZExpc3QuaAogICAgICR7V0VC
S0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEJhY2tGb3J3YXJkTGlzdEl0ZW0uaAog
ICAgICR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdENvbG9yQ2hvb3NlclJl
cXVlc3QuaApAQCAtNDMxLDYgKzQzMyw3IEBAIHNldChXZWJLaXQyV2ViRXh0ZW5zaW9uX0lOU1RB
TExFRF9IRUFERVJTCiAgICAgJHtXRUJLSVQyX0RJUn0vV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9BUEkvZ3RrL1dlYktpdFNjcmlwdFdvcmxkLmgKICAgICAke1dFQktJVDJfRElSfS9XZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvV2ViS2l0V2ViRWRpdG9yLmgKICAgICAke1dFQktJ
VDJfRElSfS9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvV2ViS2l0V2ViRXh0ZW5z
aW9uLmgKKyAgICAke1dFQktJVDJfRElSfS9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9n
dGsvV2ViS2l0V2ViRXh0ZW5zaW9uQXV0b2NsZWFudXBzLmgKICAgICAke1dFQktJVDJfRElSfS9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvV2ViS2l0V2ViSGl0VGVzdFJlc3VsdC5o
CiAgICAgJHtXRUJLSVQyX0RJUn0vV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL1dl
YktpdFdlYlBhZ2UuaAogICAgICR7V0VCS0lUMl9ESVJ9L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL2d0ay93ZWJraXQtd2ViLWV4dGVuc2lvbi5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRBdXRvY2xlYW51cHMuaCBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEF1dG9jbGVhbnVwcy5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg4
NDMyZjQ1NjViYmIwNmVmNjcxMjAxMjQ3N2YzNmI5ZWY4ZDhlMjgKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRBdXRvY2xlYW51cHMuaApA
QCAtMCwwICsxLDg0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IElnYWxpYSBTLkwuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpZiAhZGVmaW5lZChfX1dFQktJVDJfSF9JTlNJREVfXykgJiYgIWRlZmluZWQo
V0VCS0lUMl9DT01QSUxBVElPTikKKyNlcnJvciAiT25seSA8d2Via2l0Mi93ZWJraXQyLmg+IGNh
biBiZSBpbmNsdWRlZCBkaXJlY3RseS4iCisjZW5kaWYKKworI2lmbmRlZiBXZWJLaXRBdXRvY2xl
YW51cHNfaAorI2RlZmluZSBXZWJLaXRBdXRvY2xlYW51cHNfaAorCisjaWZkZWYgR19ERUZJTkVf
QVVUT1BUUl9DTEVBTlVQX0ZVTkMKKyNpZm5kZWYgX19HSV9TQ0FOTkVSX18KKworR19ERUZJTkVf
QVVUT1BUUl9DTEVBTlVQX0ZVTkMgKFdlYktpdEF1dGhlbnRpY2F0aW9uUmVxdWVzdCwgZ19vYmpl
Y3RfdW5yZWYpCitHX0RFRklORV9BVVRPUFRSX0NMRUFOVVBfRlVOQyAoV2ViS2l0QmFja0Zvcndh
cmRMaXN0LCBnX29iamVjdF91bnJlZikKK0dfREVGSU5FX0FVVE9QVFJfQ0xFQU5VUF9GVU5DIChX
ZWJLaXRCYWNrRm9yd2FyZExpc3RJdGVtLCBnX29iamVjdF91bnJlZikKK0dfREVGSU5FX0FVVE9Q
VFJfQ0xFQU5VUF9GVU5DIChXZWJLaXRDb2xvckNob29zZXJSZXF1ZXN0LCBnX29iamVjdF91bnJl
ZikKK0dfREVGSU5FX0FVVE9QVFJfQ0xFQU5VUF9GVU5DIChXZWJLaXRDb250ZXh0TWVudSwgZ19v
YmplY3RfdW5yZWYpCitHX0RFRklORV9BVVRPUFRSX0NMRUFOVVBfRlVOQyAoV2ViS2l0Q29udGV4
dE1lbnVJdGVtLCBnX29iamVjdF91bnJlZikKK0dfREVGSU5FX0FVVE9QVFJfQ0xFQU5VUF9GVU5D
IChXZWJLaXRDb29raWVNYW5hZ2VyLCBnX29iamVjdF91bnJlZikKK0dfREVGSU5FX0FVVE9QVFJf
Q0xFQU5VUF9GVU5DIChXZWJLaXREb3dubG9hZCwgZ19vYmplY3RfdW5yZWYpCitHX0RFRklORV9B
VVRPUFRSX0NMRUFOVVBfRlVOQyAoV2ViS2l0RWRpdG9yU3RhdGUsIGdfb2JqZWN0X3VucmVmKQor
R19ERUZJTkVfQVVUT1BUUl9DTEVBTlVQX0ZVTkMgKFdlYktpdEZhdmljb25EYXRhYmFzZSwgZ19v
YmplY3RfdW5yZWYpCitHX0RFRklORV9BVVRPUFRSX0NMRUFOVVBfRlVOQyAoV2ViS2l0RmlsZUNo
b29zZXJSZXF1ZXN0LCBnX29iamVjdF91bnJlZikKK0dfREVGSU5FX0FVVE9QVFJfQ0xFQU5VUF9G
VU5DIChXZWJLaXRGaW5kQ29udHJvbGxlciwgZ19vYmplY3RfdW5yZWYpCitHX0RFRklORV9BVVRP
UFRSX0NMRUFOVVBfRlVOQyAoV2ViS2l0Rm9ybVN1Ym1pc3Npb25SZXF1ZXN0LCBnX29iamVjdF91
bnJlZikKK0dfREVGSU5FX0FVVE9QVFJfQ0xFQU5VUF9GVU5DIChXZWJLaXRHZW9sb2NhdGlvblBl
cm1pc3Npb25SZXF1ZXN0LCBnX29iamVjdF91bnJlZikKK0dfREVGSU5FX0FVVE9QVFJfQ0xFQU5V
UF9GVU5DIChXZWJLaXRIaXRUZXN0UmVzdWx0LCBnX29iamVjdF91bnJlZikKK0dfREVGSU5FX0FV
VE9QVFJfQ0xFQU5VUF9GVU5DIChXZWJLaXRJbnN0YWxsTWlzc2luZ01lZGlhUGx1Z2luc1Blcm1p
c3Npb25SZXF1ZXN0LCBnX29iamVjdF91bnJlZikKK0dfREVGSU5FX0FVVE9QVFJfQ0xFQU5VUF9G
VU5DIChXZWJLaXROYXZpZ2F0aW9uUG9saWN5RGVjaXNpb24sIGdfb2JqZWN0X3VucmVmKQorR19E
RUZJTkVfQVVUT1BUUl9DTEVBTlVQX0ZVTkMgKFdlYktpdE5vdGlmaWNhdGlvbiwgZ19vYmplY3Rf
dW5yZWYpCitHX0RFRklORV9BVVRPUFRSX0NMRUFOVVBfRlVOQyAoV2ViS2l0Tm90aWZpY2F0aW9u
UGVybWlzc2lvblJlcXVlc3QsIGdfb2JqZWN0X3VucmVmKQorR19ERUZJTkVfQVVUT1BUUl9DTEVB
TlVQX0ZVTkMgKFdlYktpdFBlcm1pc3Npb25SZXF1ZXN0LCBnX29iamVjdF91bnJlZikKK0dfREVG
SU5FX0FVVE9QVFJfQ0xFQU5VUF9GVU5DIChXZWJLaXRQbHVnaW4sIGdfb2JqZWN0X3VucmVmKQor
R19ERUZJTkVfQVVUT1BUUl9DTEVBTlVQX0ZVTkMgKFdlYktpdFBvbGljeURlY2lzaW9uLCBnX29i
amVjdF91bnJlZikKK0dfREVGSU5FX0FVVE9QVFJfQ0xFQU5VUF9GVU5DIChXZWJLaXRQcmludE9w
ZXJhdGlvbiwgZ19vYmplY3RfdW5yZWYpCitHX0RFRklORV9BVVRPUFRSX0NMRUFOVVBfRlVOQyAo
V2ViS2l0UmVzcG9uc2VQb2xpY3lEZWNpc2lvbiwgZ19vYmplY3RfdW5yZWYpCitHX0RFRklORV9B
VVRPUFRSX0NMRUFOVVBfRlVOQyAoV2ViS2l0U2VjdXJpdHlNYW5hZ2VyLCBnX29iamVjdF91bnJl
ZikKK0dfREVGSU5FX0FVVE9QVFJfQ0xFQU5VUF9GVU5DIChXZWJLaXRTZXR0aW5ncywgZ19vYmpl
Y3RfdW5yZWYpCitHX0RFRklORV9BVVRPUFRSX0NMRUFOVVBfRlVOQyAoV2ViS2l0VVJJUmVxdWVz
dCwgZ19vYmplY3RfdW5yZWYpCitHX0RFRklORV9BVVRPUFRSX0NMRUFOVVBfRlVOQyAoV2ViS2l0
VVJJUmVzcG9uc2UsIGdfb2JqZWN0X3VucmVmKQorR19ERUZJTkVfQVVUT1BUUl9DTEVBTlVQX0ZV
TkMgKFdlYktpdFVSSVNjaGVtZVJlcXVlc3QsIGdfb2JqZWN0X3VucmVmKQorR19ERUZJTkVfQVVU
T1BUUl9DTEVBTlVQX0ZVTkMgKFdlYktpdFVzZXJDb250ZW50TWFuYWdlciwgZ19vYmplY3RfdW5y
ZWYpCitHX0RFRklORV9BVVRPUFRSX0NMRUFOVVBfRlVOQyAoV2ViS2l0VXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3QsIGdfb2JqZWN0X3VucmVmKQorR19ERUZJTkVfQVVUT1BUUl9DTEVBTlVQX0ZV
TkMgKFdlYktpdFdlYkNvbnRleHQsIGdfb2JqZWN0X3VucmVmKQorR19ERUZJTkVfQVVUT1BUUl9D
TEVBTlVQX0ZVTkMgKFdlYktpdFdlYkluc3BlY3RvciwgZ19vYmplY3RfdW5yZWYpCitHX0RFRklO
RV9BVVRPUFRSX0NMRUFOVVBfRlVOQyAoV2ViS2l0V2ViUmVzb3VyY2UsIGdfb2JqZWN0X3VucmVm
KQorR19ERUZJTkVfQVVUT1BUUl9DTEVBTlVQX0ZVTkMgKFdlYktpdFdlYlZpZXcsIGdfb2JqZWN0
X3VucmVmKQorR19ERUZJTkVfQVVUT1BUUl9DTEVBTlVQX0ZVTkMgKFdlYktpdFdlYnNpdGVEYXRh
TWFuYWdlciwgZ19vYmplY3RfdW5yZWYpCitHX0RFRklORV9BVVRPUFRSX0NMRUFOVVBfRlVOQyAo
V2ViS2l0V2luZG93UHJvcGVydGllcywgZ19vYmplY3RfdW5yZWYpCisKK0dfREVGSU5FX0FVVE9Q
VFJfQ0xFQU5VUF9GVU5DIChXZWJLaXRDcmVkZW50aWFsLCB3ZWJraXRfY3JlZGVudGlhbF9mcmVl
KQorR19ERUZJTkVfQVVUT1BUUl9DTEVBTlVQX0ZVTkMgKFdlYktpdEphdmFzY3JpcHRSZXN1bHQs
IHdlYmtpdF9qYXZhc2NyaXB0X3Jlc3VsdF91bnJlZikKK0dfREVGSU5FX0FVVE9QVFJfQ0xFQU5V
UF9GVU5DIChXZWJLaXRNaW1lSW5mbywgd2Via2l0X21pbWVfaW5mb191bnJlZikKK0dfREVGSU5F
X0FVVE9QVFJfQ0xFQU5VUF9GVU5DIChXZWJLaXROYXZpZ2F0aW9uQWN0aW9uLCB3ZWJraXRfbmF2
aWdhdGlvbl9hY3Rpb25fZnJlZSkKK0dfREVGSU5FX0FVVE9QVFJfQ0xFQU5VUF9GVU5DIChXZWJL
aXRVc2VyU2NyaXB0LCB3ZWJraXRfdXNlcl9zY3JpcHRfdW5yZWYpCitHX0RFRklORV9BVVRPUFRS
X0NMRUFOVVBfRlVOQyAoV2ViS2l0VXNlclN0eWxlU2hlZXQsIHdlYmtpdF91c2VyX3N0eWxlX3No
ZWV0X3VucmVmKQorCisjZW5kaWYgLy8gX19HSV9TQ0FOTkVSX18KKyNlbmRpZiAvLyBHX0RFRklO
RV9BVVRPUFRSX0NMRUFOVVBfRlVOQworCisjZW5kaWYgLy8gV2ViS2l0QXV0b2NsZWFudXBzX2gK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL3dlYmtpdDIuaCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL3dlYmtpdDIuaAppbmRleCA3ZTA4YTY1
MDY1OTE4MWU1N2UxZGMwNDM0ZWUyN2E2MjlhYzVlOGU1Li5iOTVhNzYwZTM4YjNjNjY1ZWNhMzZl
ZmI3ODgxZmJjYjQ3YmRiZjdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL2d0ay93ZWJraXQyLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsv
d2Via2l0Mi5oCkBAIC03Nyw2ICs3Nyw4IEBACiAjaW5jbHVkZSA8d2Via2l0Mi9XZWJLaXRXZWJz
aXRlRGF0YU1hbmFnZXIuaD4KICNpbmNsdWRlIDx3ZWJraXQyL1dlYktpdFdpbmRvd1Byb3BlcnRp
ZXMuaD4KIAorI2luY2x1ZGUgPHdlYmtpdDIvV2ViS2l0QXV0b2NsZWFudXBzLmg+CisKICN1bmRl
ZiBfX1dFQktJVDJfSF9JTlNJREVfXwogCiAjZW5kaWYgLyogX19XRUJLSVQyX0hfXyAqLwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3Rr
L1dlYktpdFdlYkV4dGVuc2lvbkF1dG9jbGVhbnVwcy5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL1dlYktpdFdlYkV4dGVuc2lvbkF1dG9jbGVhbnVw
cy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmQyNzI5MTA5YzkyYmMwMTg0Y2E5ZDA5ZWY4ZDM2MTA1MGRlNGM1NTgK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS9ndGsvV2ViS2l0V2ViRXh0ZW5zaW9uQXV0b2NsZWFudXBzLmgKQEAgLTAsMCArMSw0
NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aWYgIWRlZmluZWQoX19XRUJLSVRfV0VCX0VYVEVOU0lPTl9IX0lOU0lERV9fKSAmJiAhZGVmaW5l
ZChXRUJLSVQyX0NPTVBJTEFUSU9OKQorI2Vycm9yICJPbmx5IDx3ZWJraXQyL3dlYmtpdC13ZWIt
ZXh0ZW5zaW9uLmg+IGNhbiBiZSBpbmNsdWRlZCBkaXJlY3RseS4iCisjZW5kaWYKKworI2lmbmRl
ZiBXZWJLaXRXZWJFeHRlbnNpb25BdXRvY2xlYW51cHNfaAorI2RlZmluZSBXZWJLaXRXZWJFeHRl
bnNpb25BdXRvY2xlYW51cHNfaAorCisjaWZkZWYgR19ERUZJTkVfQVVUT1BUUl9DTEVBTlVQX0ZV
TkMKKyNpZm5kZWYgX19HSV9TQ0FOTkVSX18KKworR19ERUZJTkVfQVVUT1BUUl9DTEVBTlVQX0ZV
TkMgKFdlYktpdEZyYW1lLCBnX29iamVjdF91bnJlZikKK0dfREVGSU5FX0FVVE9QVFJfQ0xFQU5V
UF9GVU5DIChXZWJLaXRTY3JpcHRXb3JsZCwgZ19vYmplY3RfdW5yZWYpCitHX0RFRklORV9BVVRP
UFRSX0NMRUFOVVBfRlVOQyAoV2ViS2l0V2ViRWRpdG9yLCBnX29iamVjdF91bnJlZikKK0dfREVG
SU5FX0FVVE9QVFJfQ0xFQU5VUF9GVU5DIChXZWJLaXRXZWJFeHRlbnNpb24sIGdfb2JqZWN0X3Vu
cmVmKQorR19ERUZJTkVfQVVUT1BUUl9DTEVBTlVQX0ZVTkMgKFdlYktpdFdlYkhpdFRlc3RSZXN1
bHQsIGdfb2JqZWN0X3VucmVmKQorR19ERUZJTkVfQVVUT1BUUl9DTEVBTlVQX0ZVTkMgKFdlYktp
dFdlYlBhZ2UsIGdfb2JqZWN0X3VucmVmKQorCisjZW5kaWYgLy8gX19HSV9TQ0FOTkVSX18KKyNl
bmRpZiAvLyBHX0RFRklORV9BVVRPUFRSX0NMRUFOVVBfRlVOQworCisjZW5kaWYgLy8gV2ViS2l0
V2ViRXh0ZW5zaW9uQXV0b2NsZWFudXBzX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay93ZWJraXQtd2ViLWV4dGVuc2lvbi5oIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL3dlYmtpdC13
ZWItZXh0ZW5zaW9uLmgKaW5kZXggMWM3NDZkYjViZDk1NDY3ZDVjZGE0Y2ZjMTg3M2MzYTBjZWQw
YmQzNi4uZDkwMGJkYTNiNTU2Nzg0YzExNWUxMTRhMDZkMGY0OGVmNzFiODA5MSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL3dlYmtp
dC13ZWItZXh0ZW5zaW9uLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvZ3RrL3dlYmtpdC13ZWItZXh0ZW5zaW9uLmgKQEAgLTM5LDYgKzM5LDggQEAK
ICNpbmNsdWRlIDx3ZWJraXQyL1dlYktpdFdlYkhpdFRlc3RSZXN1bHQuaD4KICNpbmNsdWRlIDx3
ZWJraXQyL1dlYktpdFdlYlBhZ2UuaD4KIAorI2luY2x1ZGUgPHdlYmtpdDIvV2ViS2l0V2ViRXh0
ZW5zaW9uQXV0b2NsZWFudXBzLmg+CisKICN1bmRlZiBfX1dFQktJVF9XRUJfRVhURU5TSU9OX0hf
SU5TSURFX18KIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9D
aGFuZ2VMb2cKaW5kZXggZWQ2ZGY2ZDgyNTQ2NjIwNzVjMGVlMTllOWRjYjdlZjRlODgwYmFmYi4u
MTIzNmNhMjAyNjY1NmFmODZjYzJmOTBlYjliMGFmNGZjZDhmNDIzOSAxMDA2NDQKLS0tIGEvVG9v
bHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDE1
LTEwLTA2ICBNaWNoYWVsIENhdGFuemFybyAgPG1jYXRhbnphcm9AaWdhbGlhLmNvbT4KKworICAg
ICAgICBbR1RLXSBBZGQgYXV0b2NsZWFudXBzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNDk1ODgKKworICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBB
ZGxlci4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mkd0ay9BdXRvY2xl
YW51cHNUZXN0LmNwcDogQWRkZWQuCisgICAgICAgIChBdXRvY2xlYW51cHNUZXN0OjpjcmVhdGUp
OgorICAgICAgICAoQXV0b2NsZWFudXBzVGVzdDo6dGVzdFdlYlByb2Nlc3NBdXRvY2xlYW51cHMp
OgorICAgICAgICAocmVnaXN0ZXJUZXN0cyk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXQyR3RrL0NNYWtlTGlzdHMudHh0OgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0Mkd0ay9UZXN0QXV0b2NsZWFudXBzLmNwcDogQWRkZWQuCisgICAgICAgICh0ZXN0
VUlQcm9jZXNzQXV0b2NsZWFudXBzKToKKyAgICAgICAgKHRlc3RXZWJQcm9jZXNzQXV0b2NsZWFu
dXBzKToKKyAgICAgICAgKGJlZm9yZUFsbCk6CisgICAgICAgIChhZnRlckFsbCk6CisKIDIwMTUt
MTAtMDYgIEJyaWFuIEJ1cmcgIDxiYnVyZ0BhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdl
ZCwgdHJ5IHRvIGZpeCB0aGUgaU9TIDggYnVpbGQgYWZ0ZXIgcjE5MDM2OC4KZGlmZiAtLWdpdCBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mkd0ay9BdXRvY2xlYW51cHNUZXN0LmNw
cCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mkd0ay9BdXRvY2xlYW51cHNUZXN0
LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5hMjBjYmZkNzMzMWJkNDliNzk0YWY1ODk4Y2I0MjBiNTY1MmRiN2Q5
Ci0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyR3Rr
L0F1dG9jbGVhbnVwc1Rlc3QuY3BwCkBAIC0wLDAgKzEsNzIgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTMgSWdhbGlhIFMuTC4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2Fy
ZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhl
IHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBw
dWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJz
aW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNp
b24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQg
aXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQg
ZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQg
aGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExp
Y2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5M
SUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJ
bmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjEx
MC0xMzAxLCBVU0EuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaW5jbHVkZSAiV2Vi
UHJvY2Vzc1Rlc3QuaCIKKyNpbmNsdWRlIDx3ZWJraXQyL3dlYmtpdC13ZWItZXh0ZW5zaW9uLmg+
CisKKyNpZmRlZiBHX0RFRklORV9BVVRPUFRSX0NMRUFOVVBfRlVOQworCitjbGFzcyBBdXRvY2xl
YW51cHNUZXN0IDogcHVibGljIFdlYlByb2Nlc3NUZXN0IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMg
c3RkOjp1bmlxdWVfcHRyPFdlYlByb2Nlc3NUZXN0PiBjcmVhdGUoKSB7IHJldHVybiBzdGQ6OnVu
aXF1ZV9wdHI8V2ViUHJvY2Vzc1Rlc3Q+KG5ldyBBdXRvY2xlYW51cHNUZXN0KCkpOyB9CisKK3By
aXZhdGU6CisgICAgYm9vbCB0ZXN0V2ViUHJvY2Vzc0F1dG9jbGVhbnVwcyhXZWJLaXRXZWJQYWdl
KiB3ZWJQYWdlKQorICAgIHsKKyAgICAgICAgLy8gVHJhbnNmZXIgbm9uZQorICAgICAgICBnX2F1
dG9wdHIoV2ViS2l0V2ViUGFnZSkgcGFnZSA9IFdFQktJVF9XRUJfUEFHRShnX29iamVjdF9yZWYo
R19PQkpFQ1Qod2ViUGFnZSkpKTsKKyAgICAgICAgZ19hc3NlcnQoV0VCS0lUX0lTX1dFQl9QQUdF
KHBhZ2UpKTsKKyAgICAgICAgYXNzZXJ0T2JqZWN0SXNEZWxldGVkV2hlblRlc3RGaW5pc2hlcyhH
X09CSkVDVChwYWdlKSk7CisKKyAgICAgICAgLy8gVHJhbnNmZXIgbm9uZQorICAgICAgICBnX2F1
dG9wdHIoV2ViS2l0RE9NRG9jdW1lbnQpIGRvY3VtZW50ID0gV0VCS0lUX0RPTV9ET0NVTUVOVChn
X29iamVjdF9yZWYoR19PQkpFQ1Qod2Via2l0X3dlYl9wYWdlX2dldF9kb21fZG9jdW1lbnQocGFn
ZSkpKSk7CisgICAgICAgIGdfYXNzZXJ0KFdFQktJVF9ET01fSVNfRE9DVU1FTlQoZG9jdW1lbnQp
KTsKKyAgICAgICAgYXNzZXJ0T2JqZWN0SXNEZWxldGVkV2hlblRlc3RGaW5pc2hlcyhHX09CSkVD
VChkb2N1bWVudCkpOworCisgICAgICAgIC8vIFRyYW5zZmVyIGZ1bGwKKyAgICAgICAgZ19hdXRv
cHRyKFdlYktpdERPTURPTVdpbmRvdykgd2luZG93ID0gd2Via2l0X2RvbV9kb2N1bWVudF9nZXRf
ZGVmYXVsdF92aWV3KGRvY3VtZW50KTsKKyAgICAgICAgZ19hc3NlcnQoV0VCS0lUX0RPTV9JU19E
T01fV0lORE9XKHdpbmRvdykpOworICAgICAgICBhc3NlcnRPYmplY3RJc0RlbGV0ZWRXaGVuVGVz
dEZpbmlzaGVzKEdfT0JKRUNUKHdpbmRvdykpOworCisgICAgICAgIC8vIFRyYW5zZmVyIGZ1bGwK
KyAgICAgICAgZ19hdXRvcHRyKFdlYktpdERPTVJhbmdlKSByYW5nZSA9IHdlYmtpdF9kb21fZG9j
dW1lbnRfY3JlYXRlX3JhbmdlKGRvY3VtZW50KTsKKyAgICAgICAgZ19hc3NlcnQoV0VCS0lUX0RP
TV9JU19SQU5HRShyYW5nZSkpOworICAgICAgICBhc3NlcnRPYmplY3RJc0RlbGV0ZWRXaGVuVGVz
dEZpbmlzaGVzKEdfT0JKRUNUKHJhbmdlKSk7CisKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAg
fQorCisgICAgYm9vbCBydW5UZXN0KGNvbnN0IGNoYXIqIHRlc3ROYW1lLCBXZWJLaXRXZWJQYWdl
KiBwYWdlKSBvdmVycmlkZQorICAgIHsKKyAgICAgICAgaWYgKCFzdHJjbXAodGVzdE5hbWUsICJ3
ZWItcHJvY2Vzcy1hdXRvY2xlYW51cHMiKSkKKyAgICAgICAgICAgIHJldHVybiB0ZXN0V2ViUHJv
Y2Vzc0F1dG9jbGVhbnVwcyhwYWdlKTsKKworICAgICAgICBnX2Fzc2VydF9ub3RfcmVhY2hlZCgp
OworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorfTsKKworc3RhdGljIHZvaWQgX19hdHRy
aWJ1dGVfXygoY29uc3RydWN0b3IpKSByZWdpc3RlclRlc3RzKCkKK3sKKyAgICBSRUdJU1RFUl9U
RVNUKEF1dG9jbGVhbnVwc1Rlc3QsICJBdXRvY2xlYW51cHMvd2ViLXByb2Nlc3MtYXV0b2NsZWFu
dXBzIik7Cit9CisKKyNlbmRpZiAvLyBHX0RFRklORV9BVVRPUFRSX0NMRUFOVVBfRlVOQwpkaWZm
IC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyR3RrL0NNYWtlTGlzdHMu
dHh0IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyR3RrL0NNYWtlTGlzdHMudHh0
CmluZGV4IDc0ZDUyNTBkNDRhNGVmNGY0MDI1NGEwMDcxYjUyNmNhNWM3YWI2YWYuLmZmMjcyM2Y5
MjBmYjQzNTk3NTk1OWYzN2VlYTk4OGJhYzMxZGQwNWQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mkd0ay9DTWFrZUxpc3RzLnR4dAorKysgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJHdGsvQ01ha2VMaXN0cy50eHQKQEAgLTkwLDEwICs5MCwx
MSBAQCBtYWNybyhBRERfV0syX1RFU1QgdGVzdF9uYW1lKQogZW5kbWFjcm8oKQogCiBBRERfV0sy
X1RFU1RfV0VCX0VYVEVOU0lPTihXZWJFeHRlbnNpb25UZXN0IFdlYkV4dGVuc2lvblRlc3QuY3Bw
KQotQUREX1dLMl9URVNUX1dFQl9FWFRFTlNJT04oV2ViUHJvY2Vzc1Rlc3QgRE9NTm9kZVRlc3Qu
Y3BwIERPTU5vZGVGaWx0ZXJUZXN0LmNwcCBET01YUGF0aE5TUmVzb2x2ZXJUZXN0LmNwcCBGcmFt
ZVRlc3QuY3BwIFdlYlByb2Nlc3NUZXN0LmNwcCBFZGl0b3JUZXN0LmNwcCkKK0FERF9XSzJfVEVT
VF9XRUJfRVhURU5TSU9OKFdlYlByb2Nlc3NUZXN0IEF1dG9jbGVhbnVwc1Rlc3QuY3BwIERPTU5v
ZGVUZXN0LmNwcCBET01Ob2RlRmlsdGVyVGVzdC5jcHAgRE9NWFBhdGhOU1Jlc29sdmVyVGVzdC5j
cHAgRnJhbWVUZXN0LmNwcCBXZWJQcm9jZXNzVGVzdC5jcHAgRWRpdG9yVGVzdC5jcHApCiAKIEFE
RF9XSzJfVEVTVChJbnNwZWN0b3JUZXN0U2VydmVyIEluc3BlY3RvclRlc3RTZXJ2ZXIuY3BwKQog
QUREX1dLMl9URVNUKFRlc3RBdXRoZW50aWNhdGlvbiBUZXN0QXV0aGVudGljYXRpb24uY3BwKQor
QUREX1dLMl9URVNUKFRlc3RBdXRvY2xlYW51cHMgVGVzdEF1dG9jbGVhbnVwcy5jcHApCiBBRERf
V0syX1RFU1QoVGVzdEJhY2tGb3J3YXJkTGlzdCBUZXN0QmFja0ZvcndhcmRMaXN0LmNwcCkKIEFE
RF9XSzJfVEVTVChUZXN0Q29udGV4dE1lbnUgVGVzdENvbnRleHRNZW51LmNwcCkKIEFERF9XSzJf
VEVTVChUZXN0Q29va2llTWFuYWdlciBUZXN0Q29va2llTWFuYWdlci5jcHApCmRpZmYgLS1naXQg
YS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJHdGsvVGVzdEF1dG9jbGVhbnVwcy5j
cHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJHdGsvVGVzdEF1dG9jbGVhbnVw
cy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uMzI2NTE4MmRlOTU0YmJiMDcxMTljZDY1NTRjNThlMjlmNmFkMDM5
MgotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mkd0
ay9UZXN0QXV0b2NsZWFudXBzLmNwcApAQCAtMCwwICsxLDY0IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDE1IElnYWxpYSBTLkwuCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdh
cmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRo
ZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMg
cHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVy
c2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJz
aW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0
IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0
IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdl
bmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxk
IGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBM
aWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcu
TElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwg
SW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIx
MTAtMTMwMSwgVVNBLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2luY2x1ZGUgIldl
YlZpZXdUZXN0LmgiCisjaW5jbHVkZSA8d2Via2l0Mi93ZWJraXQyLmg+CisKKyNpZmRlZiBHX0RF
RklORV9BVVRPUFRSX0NMRUFOVVBfRlVOQworCitzdGF0aWMgdm9pZCB0ZXN0VUlQcm9jZXNzQXV0
b2NsZWFudXBzKFdlYlZpZXdUZXN0KiB0ZXN0LCBnY29uc3Rwb2ludGVyKQoreworICAgIC8vIFNh
bml0eS1jaGVjayBhIGNvdXBsZSBVSSBwcm9jZXNzIEFQSSBhdXRvY2xlYW51cHMgdGhhdCBhcmUg
ZWFzeSB0byB0ZXN0Li4uLgorICAgIGdfYXV0b3B0cihXZWJLaXRXZWJDb250ZXh0KSBjb250ZXh0
ID0gd2Via2l0X3dlYl9jb250ZXh0X25ldygpOworICAgIGdfYXNzZXJ0KFdFQktJVF9JU19XRUJf
Q09OVEVYVChjb250ZXh0KSk7CisgICAgdGVzdC0+YXNzZXJ0T2JqZWN0SXNEZWxldGVkV2hlblRl
c3RGaW5pc2hlcyhHX09CSkVDVChjb250ZXh0KSk7CisKKyAgICBnX2F1dG9wdHIoV2ViS2l0V2Vi
c2l0ZURhdGFNYW5hZ2VyKSBtYW5hZ2VyID0gd2Via2l0X3dlYnNpdGVfZGF0YV9tYW5hZ2VyX25l
dyhudWxscHRyKTsKKyAgICBnX2Fzc2VydChXRUJLSVRfSVNfV0VCU0lURV9EQVRBX01BTkFHRVIo
bWFuYWdlcikpOworICAgIHRlc3QtPmFzc2VydE9iamVjdElzRGVsZXRlZFdoZW5UZXN0RmluaXNo
ZXMoR19PQkpFQ1QoY29udGV4dCkpOworCisgICAgZ19hdXRvcHRyKFdlYktpdFVzZXJTY3JpcHQp
IHVzZXJTY3JpcHQgPSB3ZWJraXRfdXNlcl9zY3JpcHRfbmV3KCIiLAorICAgICAgICBXRUJLSVRf
VVNFUl9DT05URU5UX0lOSkVDVF9BTExfRlJBTUVTLCBXRUJLSVRfVVNFUl9TQ1JJUFRfSU5KRUNU
X0FUX0RPQ1VNRU5UX1NUQVJULAorICAgICAgICBudWxscHRyLCBudWxscHRyKTsKKyAgICBnX2Fz
c2VydCh1c2VyU2NyaXB0KTsKKyAgICAvLyBOb3QgYSBHT2JqZWN0LCBzbyBqdXN0IGNoZWNraW5n
IHRoYXQgdGhpcyBkb2Vzbid0IGNyYXNoLi4uLgorfQorCitzdGF0aWMgdm9pZCB0ZXN0V2ViUHJv
Y2Vzc0F1dG9jbGVhbnVwcyhXZWJWaWV3VGVzdCogdGVzdCwgZ2NvbnN0cG9pbnRlcikKK3sKKyAg
ICBzdGF0aWMgY29uc3QgY2hhciogdGVzdEhUTUwgPSAiPGh0bWw+PGJvZHk+PC9ib2R5PjwvaHRt
bD4iOworICAgIHRlc3QtPmxvYWRIdG1sKHRlc3RIVE1MLCBudWxscHRyKTsKKyAgICB0ZXN0LT53
YWl0VW50aWxMb2FkRmluaXNoZWQoKTsKKworICAgIGdfYXNzZXJ0KHRlc3QtPnJ1bldlYlByb2Nl
c3NUZXN0KCJBdXRvY2xlYW51cHMiLCAid2ViLXByb2Nlc3MtYXV0b2NsZWFudXBzIikpOworfQor
Cit2b2lkIGJlZm9yZUFsbCgpCit7CisgICAgV2ViVmlld1Rlc3Q6OmFkZCgiQXV0b2NsZWFudXBz
IiwgInVpLXByb2Nlc3MtYXV0b2NsZWFudXBzIiwgdGVzdFVJUHJvY2Vzc0F1dG9jbGVhbnVwcyk7
CisgICAgV2ViVmlld1Rlc3Q6OmFkZCgiQXV0b2NsZWFudXBzIiwgIndlYi1wcm9jZXNzLWF1dG9j
bGVhbnVwcyIsIHRlc3RXZWJQcm9jZXNzQXV0b2NsZWFudXBzKTsKK30KKwordm9pZCBhZnRlckFs
bCgpCit7Cit9CisKKyNlbmRpZiAvLyBHX0RFRklORV9BVVRPUFRSX0NMRUFOVVBfRlVOQwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>