<?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>184357</bug_id>
          
          <creation_ts>2018-04-06 05:52:01 -0700</creation_ts>
          <short_desc>[WPE] Switch testing process to using WPEBackend-fdo</short_desc>
          <delta_ts>2018-04-12 01:20:28 -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>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=179884</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>184513</dependson>
          <blocked>178894</blocked>
    
    <blocked>178896</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Zan Dobersek">zan</reporter>
          <assigned_to name="Zan Dobersek">zan</assigned_to>
          <cc>cgarcia</cc>
    
    <cc>clopez</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>mcatanzaro</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1412340</commentid>
    <comment_count>0</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2018-04-06 05:52:01 -0700</bug_when>
    <thetext>[WPE] Switch testing process to using WPEBackend-fdo</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1412341</commentid>
    <comment_count>1</comment_count>
      <attachid>337357</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2018-04-06 06:02:29 -0700</bug_when>
    <thetext>Created attachment 337357
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1412343</commentid>
    <comment_count>2</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2018-04-06 06:04:07 -0700</bug_when>
    <thetext>Attachment 337357 did not pass style-queue:


ERROR: Tools/wpe/HeadlessViewBackend/HeadlessViewBackend.cpp:223:  The parameter name &quot;!&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 1 in 10 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1412344</commentid>
    <comment_count>3</comment_count>
      <attachid>337359</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2018-04-06 06:13:31 -0700</bug_when>
    <thetext>Created attachment 337359
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1412345</commentid>
    <comment_count>4</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2018-04-06 06:16:07 -0700</bug_when>
    <thetext>Attachment 337359 did not pass style-queue:


ERROR: Tools/wpe/HeadlessViewBackend/HeadlessViewBackend.cpp:223:  The parameter name &quot;!&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 1 in 11 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1412347</commentid>
    <comment_count>5</comment_count>
      <attachid>337359</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2018-04-06 06:36:35 -0700</bug_when>
    <thetext>Comment on attachment 337359
Patch

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

&gt; Tools/Scripts/webkitpy/port/wpe.py:-71
&gt; -        return HeadlessDriver

Should we remove the headless driver then? or is it used somewhere else?

&gt; Tools/Scripts/webkitpy/port/wpe.py:69
&gt; +        return WaylandDriver

I find confusing that wayland driver is used unconditionally but the headless backend is now used unconditionally too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1412348</commentid>
    <comment_count>6</comment_count>
      <attachid>337359</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2018-04-06 06:41:24 -0700</bug_when>
    <thetext>Comment on attachment 337359
Patch

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

&gt; Tools/TestWebKitAPI/glib/WebKitGLib/TestMain.h:-146
&gt; -        const char* useHeadlessViewBackend = g_getenv(&quot;WPE_USE_HEADLESS_VIEW_BACKEND&quot;);

I guess we should also stop setting this variable in the scripts to run api and layout tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1412352</commentid>
    <comment_count>7</comment_count>
      <attachid>337359</attachid>
    <who name="Carlos Alberto Lopez Perez">clopez</who>
    <bug_when>2018-04-06 07:28:25 -0700</bug_when>
    <thetext>Comment on attachment 337359
Patch

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

Setting r- because wpebackend-fdo still doesn&apos;t handle input and its not possible to use a keyboard or a mouse with dyz, which is needed for testing.

&gt;&gt; Tools/Scripts/webkitpy/port/wpe.py:69
&gt;&gt; +        return WaylandDriver
&gt; 
&gt; I find confusing that wayland driver is used unconditionally but the headless backend is now used unconditionally too.

I also find this confusing.
I think the HeadlessDriver should inherit from WaylandDriver but keep its name as headless.
And ideally the WaylandDriver would work also (if specified via command-line argument), but the screen output will appear on the screen</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1413612</commentid>
    <comment_count>8</comment_count>
      <attachid>337685</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2018-04-11 00:41:30 -0700</bug_when>
    <thetext>Created attachment 337685
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1413613</commentid>
    <comment_count>9</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2018-04-11 00:43:45 -0700</bug_when>
    <thetext>Attachment 337685 did not pass style-queue:


ERROR: Tools/wpe/HeadlessViewBackend/HeadlessViewBackend.cpp:223:  The parameter name &quot;!&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 1 in 12 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1413640</commentid>
    <comment_count>10</comment_count>
      <attachid>337685</attachid>
    <who name="Carlos Alberto Lopez Perez">clopez</who>
    <bug_when>2018-04-11 05:34:44 -0700</bug_when>
    <thetext>Comment on attachment 337685
Patch

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

&gt; Tools/Scripts/webkitdirs.pm:1039
&gt;      if (isWPE()) {
&gt; -        return &quot;$configurationProductDir/lib/libWPEWebKit.so&quot;;
&gt; +        return &quot;$configurationProductDir/lib/libWPEWebKit-0.1.so&quot;;

There is an issue with this change: it breaks run-minibrowser script: Can&apos;t find built framework at &quot;/home/clopez/webkit/wpe/WebKitBuild/Release/lib/libWPEWebKit-0.1.so&quot;.

I think leaving it here pointing to the generic .so symlink is the right thing to do IMHO, because that way it won&apos;t break when the soname changes. In the run-minibrowser script we only want to check that the framework has been built, checking the generic .so is enough for that.


But then, If I revert that and try to run dyz I still get this error:

lib/wpewebkit_glibapi.lua:3: libWPEWebKit-0.1.so: cannot open shared object file: No such file or directory

This seems to be caused by dyz commit https://github.com/Igalia/dyz/commit/e13c39fb6c225f7c464c772df071d04018881c4e

The installable version of the library is versioned 1.0

$ ls -l WebKitBuild/Release/lib/libWPEWebKit.so.*
lrwxrwxrwx 1 clopez clopez       21 Apr 11 13:45 WebKitBuild/Release/lib/libWPEWebKit.so.1 -&gt; libWPEWebKit.so.1.0.0
-rwxr-xr-x 1 clopez clopez 86654672 Apr 11 13:45 WebKitBuild/Release/lib/libWPEWebKit.so.1.0.0


Why it has been changed to 0.1 in dyz without changing also it on wpe as well?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1413645</commentid>
    <comment_count>11</comment_count>
      <attachid>337685</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2018-04-11 05:50:11 -0700</bug_when>
    <thetext>Comment on attachment 337685
Patch

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

&gt;&gt; Tools/Scripts/webkitdirs.pm:1039
&gt;&gt; +        return &quot;$configurationProductDir/lib/libWPEWebKit-0.1.so&quot;;
&gt; 
&gt; There is an issue with this change: it breaks run-minibrowser script: Can&apos;t find built framework at &quot;/home/clopez/webkit/wpe/WebKitBuild/Release/lib/libWPEWebKit-0.1.so&quot;.
&gt; 
&gt; I think leaving it here pointing to the generic .so symlink is the right thing to do IMHO, because that way it won&apos;t break when the soname changes. In the run-minibrowser script we only want to check that the framework has been built, checking the generic .so is enough for that.
&gt; 
&gt; 
&gt; But then, If I revert that and try to run dyz I still get this error:
&gt; 
&gt; lib/wpewebkit_glibapi.lua:3: libWPEWebKit-0.1.so: cannot open shared object file: No such file or directory
&gt; 
&gt; This seems to be caused by dyz commit https://github.com/Igalia/dyz/commit/e13c39fb6c225f7c464c772df071d04018881c4e
&gt; 
&gt; The installable version of the library is versioned 1.0
&gt; 
&gt; $ ls -l WebKitBuild/Release/lib/libWPEWebKit.so.*
&gt; lrwxrwxrwx 1 clopez clopez       21 Apr 11 13:45 WebKitBuild/Release/lib/libWPEWebKit.so.1 -&gt; libWPEWebKit.so.1.0.0
&gt; -rwxr-xr-x 1 clopez clopez 86654672 Apr 11 13:45 WebKitBuild/Release/lib/libWPEWebKit.so.1.0.0
&gt; 
&gt; 
&gt; Why it has been changed to 0.1 in dyz without changing also it on wpe as well?

This already landed:
https://bugs.webkit.org/show_bug.cgi?id=180608</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1413654</commentid>
    <comment_count>12</comment_count>
    <who name="Carlos Alberto Lopez Perez">clopez</who>
    <bug_when>2018-04-11 06:28:12 -0700</bug_when>
    <thetext>(In reply to Zan Dobersek from comment #11)
&gt; Comment on attachment 337685 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=337685&amp;action=review
&gt; 
&gt; &gt;&gt; Tools/Scripts/webkitdirs.pm:1039
&gt; &gt;&gt; +        return &quot;$configurationProductDir/lib/libWPEWebKit-0.1.so&quot;;
&gt; &gt; 
&gt; &gt; There is an issue with this change: it breaks run-minibrowser script: Can&apos;t find built framework at &quot;/home/clopez/webkit/wpe/WebKitBuild/Release/lib/libWPEWebKit-0.1.so&quot;.
&gt; &gt; 
&gt; &gt; I think leaving it here pointing to the generic .so symlink is the right thing to do IMHO, because that way it won&apos;t break when the soname changes. In the run-minibrowser script we only want to check that the framework has been built, checking the generic .so is enough for that.
&gt; &gt; 
&gt; &gt; 
&gt; &gt; But then, If I revert that and try to run dyz I still get this error:
&gt; &gt; 
&gt; &gt; lib/wpewebkit_glibapi.lua:3: libWPEWebKit-0.1.so: cannot open shared object file: No such file or directory
&gt; &gt; 
&gt; &gt; This seems to be caused by dyz commit https://github.com/Igalia/dyz/commit/e13c39fb6c225f7c464c772df071d04018881c4e
&gt; &gt; 
&gt; &gt; The installable version of the library is versioned 1.0
&gt; &gt; 
&gt; &gt; $ ls -l WebKitBuild/Release/lib/libWPEWebKit.so.*
&gt; &gt; lrwxrwxrwx 1 clopez clopez       21 Apr 11 13:45 WebKitBuild/Release/lib/libWPEWebKit.so.1 -&gt; libWPEWebKit.so.1.0.0
&gt; &gt; -rwxr-xr-x 1 clopez clopez 86654672 Apr 11 13:45 WebKitBuild/Release/lib/libWPEWebKit.so.1.0.0
&gt; &gt; 
&gt; &gt; 
&gt; &gt; Why it has been changed to 0.1 in dyz without changing also it on wpe as well?
&gt; 
&gt; This already landed:
&gt; https://bugs.webkit.org/show_bug.cgi?id=180608

aggh... i missed that .. having different repos pointing to each one is a mess when updating, my fault...

But then, that also means that the wpe run-minibrowser script has been broken since then :(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1413670</commentid>
    <comment_count>13</comment_count>
      <attachid>337685</attachid>
    <who name="Carlos Alberto Lopez Perez">clopez</who>
    <bug_when>2018-04-11 07:30:04 -0700</bug_when>
    <thetext>Comment on attachment 337685
Patch

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

both dyz and layout-tests work fine for me now and the patch is fine, so r+

&gt; Tools/Scripts/webkitpy/port/wpe.py:69
&gt; -        if self._display_server == &quot;wayland&quot;:
&gt; -            return WaylandDriver
&gt; -        return HeadlessDriver
&gt; +        return WaylandDriver

I think we need to implement some function like gtk.py:check_sys_deps() so it aborts early if no wayland env is detected, but we can do that in a another patch
I also keep thinking the name is not the best, we are reusing the wayland driver for a headless driver that runs inside a wayland env, but ok for now</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1413692</commentid>
    <comment_count>14</comment_count>
      <attachid>337685</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2018-04-11 08:38:55 -0700</bug_when>
    <thetext>Comment on attachment 337685
Patch

I believe this breaks all the WebKitWebView constructors, which guarantee that a default backend is used when passed NULL for the WebKitWebViewBackend parameter. Correct?

So we need to change all five of the WebKitWebView constructors. For example, we would change:

 * webkit_web_view_new_with_related_view: (constructor)
 * @backend: (nullable) (transfer full): a #WebKitWebViewBackend, or %NULL to use the default
 * @web_view: the related #WebKitWebView

to:

 * webkit_web_view_new_with_related_view: (constructor)
 * @backend: (transfer full): a #WebKitWebViewBackend
 * @web_view: the related #WebKitWebView

dropping the (nullable), and then add a corresponding g_return_val_if_fail:

    g_return_val_if_fail(WEBKIT_IS_WEB_VIEW_BACKEND(backend, nullptr);
    g_return_val_if_fail(WEBKIT_IS_WEB_VIEW(webView), nullptr);</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1413700</commentid>
    <comment_count>15</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2018-04-11 09:07:37 -0700</bug_when>
    <thetext>(In reply to Michael Catanzaro from comment #14)
&gt; Comment on attachment 337685 [details]
&gt; Patch
&gt; 
&gt; I believe this breaks all the WebKitWebView constructors, which guarantee
&gt; that a default backend is used when passed NULL for the WebKitWebViewBackend
&gt; parameter. Correct?

OK, this particular change does not itself break anything, but the implication of this change is that we will change WPEBackend-fdo to install the WPEBackend-default symlink. (Otherwise, we should not be changing the test infrastructure to test it.) And changing the default backend will break these APIs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1413830</commentid>
    <comment_count>16</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2018-04-11 14:59:17 -0700</bug_when>
    <thetext>(In reply to Michael Catanzaro from comment #14)
&gt; Comment on attachment 337685 [details]
&gt; Patch
&gt; 
&gt; I believe this breaks all the WebKitWebView constructors, which guarantee
&gt; that a default backend is used when passed NULL for the WebKitWebViewBackend
&gt; parameter. Correct?

You fixed this in bug #184513, thanks. Feel free to land this with Carlos Lopez&apos;s name as reviewer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1413947</commentid>
    <comment_count>17</comment_count>
      <attachid>337775</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2018-04-11 23:50:55 -0700</bug_when>
    <thetext>Created attachment 337775
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1413948</commentid>
    <comment_count>18</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2018-04-11 23:52:52 -0700</bug_when>
    <thetext>Attachment 337775 did not pass style-queue:


ERROR: Tools/wpe/HeadlessViewBackend/HeadlessViewBackend.cpp:223:  The parameter name &quot;!&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 1 in 12 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1413958</commentid>
    <comment_count>19</comment_count>
      <attachid>337775</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2018-04-12 01:19:37 -0700</bug_when>
    <thetext>Comment on attachment 337775
Patch for landing

Clearing flags on attachment: 337775

Committed r230562: &lt;https://trac.webkit.org/changeset/230562&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1413959</commentid>
    <comment_count>20</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2018-04-12 01:19:41 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1413960</commentid>
    <comment_count>21</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-04-12 01:20:28 -0700</bug_when>
    <thetext>&lt;rdar://problem/39374557&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>337357</attachid>
            <date>2018-04-06 06:02:29 -0700</date>
            <delta_ts>2018-04-06 06:13:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-184357-20180406150228.patch</filename>
            <type>text/plain</type>
            <size>27087</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMwMzI2CmRpZmYgLS1naXQgYS9Tb3VyY2UvY21ha2UvRmlu
ZFdQRUJhY2tlbmQtZmRvLmNtYWtlIGIvU291cmNlL2NtYWtlL0ZpbmRXUEVCYWNrZW5kLWZkby5j
bWFrZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi45NzlkZWI0ZTNhM2IxZTdiOWJiNTA0ZTQyOTg5MGY1MmNjNjI5MWFh
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL2NtYWtlL0ZpbmRXUEVCYWNrZW5kLWZkby5jbWFr
ZQpAQCAtMCwwICsxLDQ3IEBACisjIC0gVHJ5IHRvIGZpbmQgV1BFQmFja2VuZC1mZG8uCisjIE9u
Y2UgZG9uZSwgdGhpcyB3aWxsIGRlZmluZQorIworIyAgV1BFQkFDS0VORF9GRE9fRk9VTkQgLSBz
eXN0ZW0gaGFzIFdQRUJhY2tlbmQtZmRvLgorIyAgV1BFQkFDS0VORF9GRE9fSU5DTFVERV9ESVJT
IC0gdGhlIFdQRUJhY2tlbmQtZmRvIGluY2x1ZGUgZGlyZWN0b3JpZXMKKyMgIFdQRUJBQ0tFTkRf
RkRPX0xJQlJBUklFUyAtIGxpbmsgdGhlc2UgdG8gdXNlIFdQRUJhY2tlbmQtZmRvLgorIworIyBD
b3B5cmlnaHQgKEMpIDIwMTYgSWdhbGlhIFMuTC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworIyBhcmUgbWV0OgorIyAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisj
ICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisjICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMKKyMgSVMnJyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyMgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorIyBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUiBPUiBJVFMK
KyMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsCisjIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyMgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7CisjIE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLAorIyBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUgorIyBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGCisjIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCitmaW5kX3BhY2thZ2UoUGtn
Q29uZmlnKQorcGtnX2NoZWNrX21vZHVsZXMoUENfV1BFQkFDS0VORF9GRE8gUVVJRVQgd3BlYmFj
a2VuZC1mZG8pCisKK2ZpbmRfcGF0aChXUEVCQUNLRU5EX0ZET19JTkNMVURFX0RJUlMKKyAgICBO
QU1FUyB3cGUtZmRvL2luaXRpYWxpemUtZWdsLmgKKyAgICBISU5UUyAke1BDX1dQRUJBQ0tFTkRf
RkRPX0lOQ0xVREVESVJ9ICR7UENfV1BFQkFDS0VORF9GRE9fSU5DTFVERV9ESVJTfQorKQorCitm
aW5kX2xpYnJhcnkoV1BFQkFDS0VORF9GRE9fTElCUkFSSUVTCisgICAgTkFNRVMgV1BFQmFja2Vu
ZC1mZG8KKyAgICBISU5UUyAke1BDX1dQRUJBQ0tFTkRfRkRPX0xJQkRJUn0gJHtQQ19XUEVCQUNL
RU5EX0ZET19MSUJSQVJZX0RJUlN9CispCisKK21hcmtfYXNfYWR2YW5jZWQoV1BFQkFDS0VORF9G
RE9fSU5DTFVERV9ESVJTIFdQRUJBQ0tFTkRfRkRPX0xJQlJBUklFUykKKworaW5jbHVkZShGaW5k
UGFja2FnZUhhbmRsZVN0YW5kYXJkQXJncykKK2ZpbmRfcGFja2FnZV9oYW5kbGVfc3RhbmRhcmRf
YXJncyhXUEVCYWNrZW5kLWZkbyBSRVFVSVJFRF9WQVJTIFdQRUJBQ0tFTkRfRkRPX0lOQ0xVREVf
RElSUyBXUEVCQUNLRU5EX0ZET19MSUJSQVJJRVMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvY21ha2Uv
RmluZFdQRUJhY2tlbmQtbWVzYS5jbWFrZSBiL1NvdXJjZS9jbWFrZS9GaW5kV1BFQmFja2VuZC1t
ZXNhLmNtYWtlCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1MmY3ZThkMmZjYjdhZTM3
YTdiNDIxMDYxNzQzM2RlODMwYWE5MjkwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9jbWFrZS9GaW5kV1BFQmFja2VuZC1tZXNhLmNtYWtlCisr
KyAvZGV2L251bGwKQEAgLTEsNDcgKzAsMCBAQAotIyAtIFRyeSB0byBmaW5kIFdQRS1tZXNhLgot
IyBPbmNlIGRvbmUsIHRoaXMgd2lsbCBkZWZpbmUKLSMKLSMgIFdQRV9NRVNBX0ZPVU5EIC0gc3lz
dGVtIGhhcyBXUEUtbWVzYS4KLSMgIFdQRV9NRVNBX0lOQ0xVREVfRElSUyAtIHRoZSBXUEUtbWVz
YSBpbmNsdWRlIGRpcmVjdG9yaWVzCi0jICBXUEVfTUVTQV9MSUJSQVJJRVMgLSBsaW5rIHRoZXNl
IHRvIHVzZSBXUEUtbWVzYS4KLSMKLSMgQ29weXJpZ2h0IChDKSAyMDE2IElnYWxpYSBTLkwuCi0j
Ci0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSMgYXJlIG1ldDoKLSMgMS4gIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jICAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCi0jIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotIyAgICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERF
UiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTCi0jIElTJycgQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0jIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKLSMgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhF
IENPUFlSSUdIVCBIT0xERVIgT1IgSVRTCi0jIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotIyBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0j
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOwotIyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwKLSMgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IK
LSMgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRgotIyBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KLQotZmluZF9wYWNrYWdlKFBrZ0NvbmZpZykKLXBrZ19jaGVja19tb2R1bGVzKFBDX1dQ
RV9NRVNBIFFVSUVUIHdwZS1tZXNhKQotCi1maW5kX3BhdGgoV1BFX01FU0FfSU5DTFVERV9ESVJT
Ci0gICAgTkFNRVMgd3BlLW1lc2Evdmlldy1iYWNrZW5kLWV4cG9ydGFibGUtZG1hLWJ1Zi5oCi0g
ICAgSElOVFMgJHtQQ19XUEVfTUVTQV9JTkNMVURFRElSfSAke1BDX1dQRV9NRVNBX0lOQ0xVREVf
RElSU30KLSkKLQotZmluZF9saWJyYXJ5KFdQRV9NRVNBX0xJQlJBUklFUwotICAgIE5BTUVTIFdQ
RUJhY2tlbmQtbWVzYQotICAgIEhJTlRTICR7UENfV1BFX01FU0FfTElCRElSfSAke1BDX1dQRV9N
RVNBX0xJQlJBUllfRElSU30KLSkKLQotbWFya19hc19hZHZhbmNlZChXUEVfTUVTQV9JTkNMVURF
X0RJUlMgV1BFX01FU0FfTElCUkFSSUVTKQotCi1pbmNsdWRlKEZpbmRQYWNrYWdlSGFuZGxlU3Rh
bmRhcmRBcmdzKQotZmluZF9wYWNrYWdlX2hhbmRsZV9zdGFuZGFyZF9hcmdzKFdQRUJhY2tlbmQt
bWVzYSBSRVFVSVJFRF9WQVJTIFdQRV9NRVNBX0lOQ0xVREVfRElSUyBXUEVfTUVTQV9MSUJSQVJJ
RVMpCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXgg
MDhlMTM2ZGI2NmNhNTYxOGM5MDRjY2RhMDM5ZmJhMjIxNTQ4ZGJjYy4uNmJmYmZlOTU5YTU4ZjJk
NTM1NzFkZTRjYzQ1MzIwYjgyYmI0ZjRiZiAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisr
KyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ2IEBACisyMDE4LTA0LTA2ICBaYW4gRG9i
ZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KKworICAgICAgICBbV1BFXSBTd2l0Y2ggdGVz
dGluZyBwcm9jZXNzIHRvIHVzaW5nIFdQRUJhY2tlbmQtZmRvCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODQzNTcKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTd2l0Y2ggV1BFIHRlc3RpbmcgdG8gdXNpbmcg
dGhlIFdQRUJhY2tlbmQtZmRvIGltcGxlbWVudGF0aW9uIHRoYXQKKyAgICAgICAgZGVwZW5kcyBv
biB0aGUgV0xfYmluZF93YXlsYW5kX2Rpc3BsYXkgRUdMIGV4dGVuc2lvbiwgYXMgZGVmaW5lZCB1
bmRlcgorICAgICAgICB0aGUgZnJlZWRlc2t0b3Aub3JnIHByb2plY3QuCisgICAgICAgIGh0dHBz
Oi8vY2dpdC5mcmVlZGVza3RvcC5vcmcvbWVzYS9tZXNhL3RyZWUvZG9jcy9zcGVjcy9XTF9iaW5k
X3dheWxhbmRfZGlzcGxheS5zcGVjCisKKyAgICAgICAgSGVhZGxlc3NWaWV3QmFja2VuZCBpcyBy
ZWZhY3RvcmVkIHRvIHVzZSB0aGUgV1BFQmFja2VuZC1mZG8gQVBJLCBidXQKKyAgICAgICAgb3Ro
ZXJ3aXNlIGlzIG5vdCBjaGFuZ2VkIGluIGZ1bmN0aW9uYWxpdHkuCisKKyAgICAgICAgVW5pdCB0
ZXN0cyBub3cgaGF2ZSB0byB1bmNvbmRpdGlvbmFsbHkgdXNlIEhlYWRsZXNzVmlld0JhY2tlbmQg
YXMgYQorICAgICAgICB3cGVfdmlld19iYWNrZW5kIHByb3ZpZGVyLCBzaW5jZSBXUEVCYWNrZW5k
LWZkbyBkb2VzIG5vdCBwcm92aWRlIGEKKyAgICAgICAgZGVmYXVsdCB3cGVfdmlld19iYWNrZW5k
IGltcGxlbWVudGF0aW9uLiBVbml0IHRlc3RzIGNvdmVyaW5nIHRoYXQgYXJlCisgICAgICAgIHJl
bW92ZWQgb3IgYWRqdXN0ZWQgdG8gaW5zdGVhZCB1c2UgYSBtb2NrIHdwZV92aWV3X2JhY2tlbmQg
aW50ZXJmYWNlLgorCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9wb3J0L3dheWxhbmRkcml2
ZXIucHk6CisgICAgICAgIChXYXlsYW5kRHJpdmVyLl9zZXR1cF9lbnZpcm9uX2Zvcl90ZXN0KTog
RXhwb3J0IEVHTF9QTEFURk9STT13YXlsYW5kLgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvUGxh
dGZvcm1XZWJWaWV3Lmg6CisgICAgICAgICgpOiBEZWxldGVkLgorICAgICAgICAqIFRlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0V2ViS2l0V2ViVmlldy5jcHA6CisgICAgICAgICh0
ZXN0V2ViVmlld1dlYkJhY2tlbmQpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvZ2xpYi9XZWJL
aXRHTGliL1Rlc3RNYWluLmg6CisgICAgICAgIChUZXN0OjpjcmVhdGVXZWJWaWV3QmFja2VuZCk6
CisgICAgICAgICogVGVzdFdlYktpdEFQSS93cGUvUGxhdGZvcm1XZWJWaWV3V1BFLmNwcDoKKyAg
ICAgICAgKFRlc3RXZWJLaXRBUEk6OlBsYXRmb3JtV2ViVmlldzo6flBsYXRmb3JtV2ViVmlldyk6
CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpQbGF0Zm9ybVdlYlZpZXc6OmluaXRpYWxpemUpOgor
ICAgICAgICAqIHdwZS9IZWFkbGVzc1ZpZXdCYWNrZW5kL0NNYWtlTGlzdHMudHh0OgorICAgICAg
ICAqIHdwZS9IZWFkbGVzc1ZpZXdCYWNrZW5kL0hlYWRsZXNzVmlld0JhY2tlbmQuY3BwOgorICAg
ICAgICAoZ2V0RUdMRGlzcGxheSk6CisgICAgICAgIChIZWFkbGVzc1ZpZXdCYWNrZW5kOjpIZWFk
bGVzc1ZpZXdCYWNrZW5kKToKKyAgICAgICAgKEhlYWRsZXNzVmlld0JhY2tlbmQ6On5IZWFkbGVz
c1ZpZXdCYWNrZW5kKToKKyAgICAgICAgKEhlYWRsZXNzVmlld0JhY2tlbmQ6OmJhY2tlbmQgY29u
c3QpOgorICAgICAgICAoSGVhZGxlc3NWaWV3QmFja2VuZDo6Y3JlYXRlU25hcHNob3QpOgorICAg
ICAgICAoSGVhZGxlc3NWaWV3QmFja2VuZDo6cGVyZm9ybVVwZGF0ZSk6CisgICAgICAgIChIZWFk
bGVzc1ZpZXdCYWNrZW5kOjptYWtlQ3VycmVudCk6IERlbGV0ZWQuCisgICAgICAgICogd3BlL0hl
YWRsZXNzVmlld0JhY2tlbmQvSGVhZGxlc3NWaWV3QmFja2VuZC5oOgorICAgICAgICAqIHdwZS9q
aGJ1aWxkLm1vZHVsZXM6IE1vZHVsZSBuYW1lIGNsZWFudXAuCisKIDIwMTgtMDQtMDUgIFlvdWVu
biBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIFRlc3QgZXhwZWN0YXRpb24g
dXBkYXRlciBzaG91bGQgaGFuZGxlIFdpbiBib3QgcmVzdWx0cwpkaWZmIC0tZ2l0IGEvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS9wb3J0L3dheWxhbmRkcml2ZXIucHkgYi9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L3BvcnQvd2F5bGFuZGRyaXZlci5weQppbmRleCA3MDIzODk1M2YzOGE1MmM4MmY0NDQx
YmQwZTA2YTc0OTA1NGU1NGQwLi5lZjRkMTFmYzE4ODk5MjBlMGIzOTAxMzA5MDNkMmUxMzA3ODE3
NWVmIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvd2F5bGFuZGRyaXZl
ci5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvd2F5bGFuZGRyaXZlci5weQpA
QCAtNDksNiArNDksNyBAQCBjbGFzcyBXYXlsYW5kRHJpdmVyKERyaXZlcik6CiAgICAgICAgIHNl
bGYuX3BvcnQuX2NvcHlfdmFsdWVfZnJvbV9lbnZpcm9uX2lmX3NldChkcml2ZXJfZW52aXJvbm1l
bnQsICdXQVlMQU5EX0RJU1BMQVknKQogICAgICAgICBzZWxmLl9wb3J0Ll9jb3B5X3ZhbHVlX2Zy
b21fZW52aXJvbl9pZl9zZXQoZHJpdmVyX2Vudmlyb25tZW50LCAnV0FZTEFORF9TT0NLRVQnKQog
ICAgICAgICBkcml2ZXJfZW52aXJvbm1lbnRbJ0dES19CQUNLRU5EJ10gPSAnd2F5bGFuZCcKKyAg
ICAgICAgZHJpdmVyX2Vudmlyb25tZW50WydFR0xfUExBVEZPUk0nXSA9ICd3YXlsYW5kJwogICAg
ICAgICBkcml2ZXJfZW52aXJvbm1lbnRbJ0xPQ0FMX1JFU09VUkNFX1JPT1QnXSA9IHNlbGYuX3Bv
cnQubGF5b3V0X3Rlc3RzX2RpcigpCiAgICAgICAgIGlmIHNlbGYuX2RyaXZlcl90ZW1wZGlyIGlz
IG5vdCBOb25lOgogICAgICAgICAgICAgZHJpdmVyX2Vudmlyb25tZW50WydEVU1QUkVOREVSVFJF
RV9URU1QJ10gPSBzdHIoc2VsZi5fZHJpdmVyX3RlbXBkaXIpCmRpZmYgLS1naXQgYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1BsYXRmb3JtV2ViVmlldy5oIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9QbGF0
Zm9ybVdlYlZpZXcuaAppbmRleCA4NDQ1YzIzODM4YWE5MWVhYWVlMmVjMGVkNjM4MjhlYzQyODhl
OWI5Li5mYTNjMDVjNmRjNTY0YWFjZDYxNjQxMjQyYjBkM2M4MzlkNTZkYWYzIDEwMDY0NAotLS0g
YS9Ub29scy9UZXN0V2ViS2l0QVBJL1BsYXRmb3JtV2ViVmlldy5oCisrKyBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvUGxhdGZvcm1XZWJWaWV3LmgKQEAgLTg4LDkgKzg4LDYgQEAgcHJpdmF0ZToKIAog
ICAgIFBsYXRmb3JtV0tWaWV3IG1fdmlldzsKICAgICBQbGF0Zm9ybVdpbmRvdyBtX3dpbmRvdzsK
LSNpZiBQTEFURk9STShXUEUpCi0gICAgc3RydWN0IHdwZV92aWV3X2JhY2tlbmQqIG1fYmFja2Vu
ZCB7IG51bGxwdHIgfTsKLSNlbmRpZgogfTsKIAogfSAvLyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQ
SQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rlc3RX
ZWJLaXRXZWJWaWV3LmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9U
ZXN0V2ViS2l0V2ViVmlldy5jcHAKaW5kZXggNTQxMTQzNGQ0ZTY0MjdjMWNiMjdiOWE2ZjgxNzcz
OTQyMzg0MTA5MS4uZDNlOWJjMzc3Y2IzMjRiMTUyYWI1MjJiOTkyYTg0NmZmYTllNTRmOCAxMDA2
NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rlc3RXZWJLaXRX
ZWJWaWV3LmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVz
dFdlYktpdFdlYlZpZXcuY3BwCkBAIC0xMDgsMjYgKzEwOCwyOCBAQCBzdGF0aWMgdm9pZCB0ZXN0
V2ViVmlld1dlYkNvbnRleHRMaWZldGltZShXZWJWaWV3VGVzdCogdGVzdCwgZ2NvbnN0cG9pbnRl
cikKICNpZiBQTEFURk9STShXUEUpCiBzdGF0aWMgdm9pZCB0ZXN0V2ViVmlld1dlYkJhY2tlbmQo
VGVzdCogdGVzdCwgZ2NvbnN0cG9pbnRlcikKIHsKLSAgICAvLyBVc2UgdGhlIGRlZmF1bHQgYmFj
a2VuZCAod2UgZG9uJ3QgaGF2ZSBhIHdheSB0byBjaGVjayB0aGUgYmFja2VuZCB3aWxsIGJlIGFj
dHVhbGx5IGZyZWVkKS4KLSAgICBHUmVmUHRyPFdlYktpdFdlYlZpZXc+IHdlYlZpZXcgPSBhZG9w
dEdSZWYod2Via2l0X3dlYl92aWV3X25ldyhudWxscHRyKSk7Ci0gICAgdGVzdC0+YXNzZXJ0T2Jq
ZWN0SXNEZWxldGVkV2hlblRlc3RGaW5pc2hlcyhHX09CSkVDVCh3ZWJWaWV3LmdldCgpKSk7Ci0g
ICAgYXV0byogdmlld0JhY2tlbmQgPSB3ZWJraXRfd2ViX3ZpZXdfZ2V0X2JhY2tlbmQod2ViVmll
dy5nZXQoKSk7Ci0gICAgZ19hc3NlcnQodmlld0JhY2tlbmQpOwotICAgIGF1dG8qIHdwZUJhY2tl
bmQgPSB3ZWJraXRfd2ViX3ZpZXdfYmFja2VuZF9nZXRfd3BlX2JhY2tlbmQodmlld0JhY2tlbmQp
OwotICAgIGdfYXNzZXJ0KHdwZUJhY2tlbmQpOwotICAgIHdlYlZpZXcgPSBudWxscHRyOworICAg
IHN0YXRpYyBzdHJ1Y3Qgd3BlX3ZpZXdfYmFja2VuZF9pbnRlcmZhY2Ugc190ZXN0aW5nSW50ZXJm
YWNlID0geworICAgICAgICAvLyBjcmVhdGUKKyAgICAgICAgW10odm9pZCosIHN0cnVjdCB3cGVf
dmlld19iYWNrZW5kKikgLT4gdm9pZCogeyByZXR1cm4gbnVsbHB0cjsgfSwKKyAgICAgICAgLy8g
ZGVzdHJveQorICAgICAgICBbXSh2b2lkKikgeyB9LAorICAgICAgICAvLyBpbml0aWFsaXplCisg
ICAgICAgIFtdKHZvaWQqKSB7IH0sCisgICAgICAgIC8vIGdldF9yZW5kZXJlcl9ob3N0X2ZkCisg
ICAgICAgIFtdKHZvaWQqKSAtPiBpbnQgeyByZXR1cm4gLTE7IH0KKyAgICB9OwogCiAgICAgLy8g
VXNlciBwcm92aWRlZCBiYWNrZW5kIHdpdGggZGVmYXVsdCBkZWxldGVyICh3ZSBkb24ndCBoYXZl
IGEgd2F5IHRvIGNoZWNrIHRoZSBiYWNrZW5kIHdpbGwgYmUgYWN0dWFsbHkgZnJlZWQpLgotICAg
IHdlYlZpZXcgPSBhZG9wdEdSZWYod2Via2l0X3dlYl92aWV3X25ldyh3ZWJraXRfd2ViX3ZpZXdf
YmFja2VuZF9uZXcod3BlX3ZpZXdfYmFja2VuZF9jcmVhdGUoKSwgbnVsbHB0ciwgbnVsbHB0cikp
KTsKKyAgICBHUmVmUHRyPFdlYktpdFdlYlZpZXc+IHdlYlZpZXcgPSBhZG9wdEdSZWYod2Via2l0
X3dlYl92aWV3X25ldyh3ZWJraXRfd2ViX3ZpZXdfYmFja2VuZF9uZXcod3BlX3ZpZXdfYmFja2Vu
ZF9jcmVhdGVfd2l0aF9iYWNrZW5kX2ludGVyZmFjZSgmc190ZXN0aW5nSW50ZXJmYWNlLCBudWxs
cHRyKSwgbnVsbHB0ciwgbnVsbHB0cikpKTsKICAgICB0ZXN0LT5hc3NlcnRPYmplY3RJc0RlbGV0
ZWRXaGVuVGVzdEZpbmlzaGVzKEdfT0JKRUNUKHdlYlZpZXcuZ2V0KCkpKTsKLSAgICB2aWV3QmFj
a2VuZCA9IHdlYmtpdF93ZWJfdmlld19nZXRfYmFja2VuZCh3ZWJWaWV3LmdldCgpKTsKKyAgICBh
dXRvKiB2aWV3QmFja2VuZCA9IHdlYmtpdF93ZWJfdmlld19nZXRfYmFja2VuZCh3ZWJWaWV3Lmdl
dCgpKTsKICAgICBnX2Fzc2VydCh2aWV3QmFja2VuZCk7Ci0gICAgd3BlQmFja2VuZCA9IHdlYmtp
dF93ZWJfdmlld19iYWNrZW5kX2dldF93cGVfYmFja2VuZCh2aWV3QmFja2VuZCk7CisgICAgYXV0
byogd3BlQmFja2VuZCA9IHdlYmtpdF93ZWJfdmlld19iYWNrZW5kX2dldF93cGVfYmFja2VuZCh2
aWV3QmFja2VuZCk7CiAgICAgZ19hc3NlcnQod3BlQmFja2VuZCk7CiAgICAgd2ViVmlldyA9IG51
bGxwdHI7CiAKICAgICAvLyBVc2VyIHByb3ZpZGVkIGJhY2tlbmQgd2l0aCBkZXN0cm95IG5vdGlm
eS4KLSAgICB3cGVCYWNrZW5kID0gd3BlX3ZpZXdfYmFja2VuZF9jcmVhdGUoKTsKKyAgICB3cGVC
YWNrZW5kID0gd3BlX3ZpZXdfYmFja2VuZF9jcmVhdGVfd2l0aF9iYWNrZW5kX2ludGVyZmFjZSgm
c190ZXN0aW5nSW50ZXJmYWNlLCBudWxscHRyKTsKICAgICB3ZWJWaWV3ID0gYWRvcHRHUmVmKHdl
YmtpdF93ZWJfdmlld19uZXcod2Via2l0X3dlYl92aWV3X2JhY2tlbmRfbmV3KHdwZUJhY2tlbmQs
IFtdKGdwb2ludGVyIHVzZXJEYXRhKSB7CiAgICAgICAgIGF1dG8qIGJhY2tlbmQgPSAqc3RhdGlj
X2Nhc3Q8c3RydWN0IHdwZV92aWV3X2JhY2tlbmQqKj4odXNlckRhdGEpOwogICAgICAgICB3cGVf
dmlld19iYWNrZW5kX2Rlc3Ryb3koYmFja2VuZCk7CkBAIC0xNTQsNyArMTU2LDcgQEAgc3RhdGlj
IHZvaWQgdGVzdFdlYlZpZXdXZWJCYWNrZW5kKFRlc3QqIHRlc3QsIGdjb25zdHBvaW50ZXIpCiAK
ICAgICAgICAgc3RydWN0IHdwZV92aWV3X2JhY2tlbmQqIGJhY2tlbmQ7CiAgICAgfTsKLSAgICBh
dXRvKiBvd25lciA9IG5ldyBCYWNrZW5kT3duZXIod3BlX3ZpZXdfYmFja2VuZF9jcmVhdGUoKSk7
CisgICAgYXV0byogb3duZXIgPSBuZXcgQmFja2VuZE93bmVyKHdwZV92aWV3X2JhY2tlbmRfY3Jl
YXRlX3dpdGhfYmFja2VuZF9pbnRlcmZhY2UoJnNfdGVzdGluZ0ludGVyZmFjZSwgbnVsbHB0cikp
OwogICAgIGdfYXNzZXJ0KGhhc0luc3RhbmNlKTsKICAgICB3ZWJWaWV3ID0gYWRvcHRHUmVmKHdl
YmtpdF93ZWJfdmlld19uZXcod2Via2l0X3dlYl92aWV3X2JhY2tlbmRfbmV3KG93bmVyLT5iYWNr
ZW5kLCBbXShncG9pbnRlciB1c2VyRGF0YSkgewogICAgICAgICBkZWxldGUgc3RhdGljX2Nhc3Q8
QmFja2VuZE93bmVyKj4odXNlckRhdGEpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9nbGliL1dlYktpdEdMaWIvVGVzdE1haW4uaCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvZ2xpYi9X
ZWJLaXRHTGliL1Rlc3RNYWluLmgKaW5kZXggMmM3NTc5M2JkZmNhNDM1NDc4NjA4ZWU5ZWE3NTE2
YWEwY2I3ZmVhMy4uNDljZjUwMTMyNmRjZDQxNjUxYzMyNzhkZWEzZmZkMmYxZmM0OTlkYiAxMDA2
NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9nbGliL1dlYktpdEdMaWIvVGVzdE1haW4uaAor
KysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL2dsaWIvV2ViS2l0R0xpYi9UZXN0TWFpbi5oCkBAIC0x
NDMsOSArMTQzLDYgQEAgcHVibGljOgogI2lmIFBMQVRGT1JNKFdQRSkKICAgICBzdGF0aWMgV2Vi
S2l0V2ViVmlld0JhY2tlbmQqIGNyZWF0ZVdlYlZpZXdCYWNrZW5kKCkKICAgICB7Ci0gICAgICAg
IGNvbnN0IGNoYXIqIHVzZUhlYWRsZXNzVmlld0JhY2tlbmQgPSBnX2dldGVudigiV1BFX1VTRV9I
RUFETEVTU19WSUVXX0JBQ0tFTkQiKTsKLSAgICAgICAgaWYgKCF1c2VIZWFkbGVzc1ZpZXdCYWNr
ZW5kIHx8ICFzdHJjbXAodXNlSGVhZGxlc3NWaWV3QmFja2VuZCwgIjAiKSkKLSAgICAgICAgICAg
IHJldHVybiBudWxscHRyOwogICAgICAgICBhdXRvKiBoZWFkbGVzc0JhY2tlbmQgPSBuZXcgSGVh
ZGxlc3NWaWV3QmFja2VuZDsKICAgICAgICAgcmV0dXJuIHdlYmtpdF93ZWJfdmlld19iYWNrZW5k
X25ldyhoZWFkbGVzc0JhY2tlbmQtPmJhY2tlbmQoKSwgW10oZ3BvaW50ZXIgdXNlckRhdGEpIHsK
ICAgICAgICAgICAgIGRlbGV0ZSBzdGF0aWNfY2FzdDxIZWFkbGVzc1ZpZXdCYWNrZW5kKj4odXNl
ckRhdGEpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS93cGUvUGxhdGZvcm1XZWJW
aWV3V1BFLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvd3BlL1BsYXRmb3JtV2ViVmlld1dQRS5j
cHAKaW5kZXggZDQ4ZDg3NzI4NzgxYjMyMWQ4Njc1YTIzNGZjNDdmMzdiMDM1Y2E1NS4uN2Q4MzU4
ZTgxODI3MGViNTQyOGI3Y2Q5NTc4ZDFlODExYWIwY2Q3MyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVz
dFdlYktpdEFQSS93cGUvUGxhdGZvcm1XZWJWaWV3V1BFLmNwcAorKysgYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL3dwZS9QbGF0Zm9ybVdlYlZpZXdXUEUuY3BwCkBAIC02MSwyMSArNjEsMTMgQEAgUGxh
dGZvcm1XZWJWaWV3OjpQbGF0Zm9ybVdlYlZpZXcoV0tQYWdlUmVmIHJlbGF0ZWRQYWdlKQogCiBQ
bGF0Zm9ybVdlYlZpZXc6On5QbGF0Zm9ybVdlYlZpZXcoKQogewotICAgIGlmIChtX2JhY2tlbmQp
Ci0gICAgICAgIHdwZV92aWV3X2JhY2tlbmRfZGVzdHJveShtX2JhY2tlbmQpOwotCiAgICAgZGVs
ZXRlIG1fd2luZG93OwogfQogCiB2b2lkIFBsYXRmb3JtV2ViVmlldzo6aW5pdGlhbGl6ZShXS1Bh
Z2VDb25maWd1cmF0aW9uUmVmIGNvbmZpZ3VyYXRpb24pCiB7Ci0gICAgY29uc3QgY2hhciogdXNl
SGVhZGxlc3NWaWV3QmFja2VuZCA9IGdfZ2V0ZW52KCJXUEVfVVNFX0hFQURMRVNTX1ZJRVdfQkFD
S0VORCIpOwotICAgIGlmICh1c2VIZWFkbGVzc1ZpZXdCYWNrZW5kICYmIHN0cmNtcCh1c2VIZWFk
bGVzc1ZpZXdCYWNrZW5kLCAiMCIpKQotICAgICAgICBtX3dpbmRvdyA9IG5ldyBIZWFkbGVzc1Zp
ZXdCYWNrZW5kOwotICAgIGVsc2UKLSAgICAgICAgbV9iYWNrZW5kID0gd3BlX3ZpZXdfYmFja2Vu
ZF9jcmVhdGUoKTsKLQotICAgIG1fdmlldyA9IFdLVmlld0NyZWF0ZShtX3dpbmRvdyA/IG1fd2lu
ZG93LT5iYWNrZW5kKCkgOiBtX2JhY2tlbmQsIGNvbmZpZ3VyYXRpb24pOworICAgIG1fd2luZG93
ID0gbmV3IEhlYWRsZXNzVmlld0JhY2tlbmQ7CisgICAgbV92aWV3ID0gV0tWaWV3Q3JlYXRlKG1f
d2luZG93LT5iYWNrZW5kKCksIGNvbmZpZ3VyYXRpb24pOwogfQogCiBXS1BhZ2VSZWYgUGxhdGZv
cm1XZWJWaWV3OjpwYWdlKCkgY29uc3QKZGlmZiAtLWdpdCBhL1Rvb2xzL3dwZS9IZWFkbGVzc1Zp
ZXdCYWNrZW5kL0NNYWtlTGlzdHMudHh0IGIvVG9vbHMvd3BlL0hlYWRsZXNzVmlld0JhY2tlbmQv
Q01ha2VMaXN0cy50eHQKaW5kZXggNzI0YzZkOWM4ZTZmZGUzYzEyODgyNTBhOGRhNzg0NzM3YWNh
ZjhlNi4uNGU0ZDY0YzAyNGU1Nzg0YjEwYjNhNTUzOTlhODBmOWZjM2IxOGQ2MiAxMDA2NDQKLS0t
IGEvVG9vbHMvd3BlL0hlYWRsZXNzVmlld0JhY2tlbmQvQ01ha2VMaXN0cy50eHQKKysrIGIvVG9v
bHMvd3BlL0hlYWRsZXNzVmlld0JhY2tlbmQvQ01ha2VMaXN0cy50eHQKQEAgLTEsNSArMSw1IEBA
CiBmaW5kX3BhY2thZ2UoTGliR0JNIFJFUVVJUkVEKQotZmluZF9wYWNrYWdlKFdQRUJhY2tlbmQt
bWVzYSBSRVFVSVJFRCkKK2ZpbmRfcGFja2FnZShXUEVCYWNrZW5kLWZkbyBSRVFVSVJFRCkKIAog
c2V0KFdQRUhlYWRsZXNzVmlld0JhY2tlbmRfU09VUkNFUwogICAgICR7VE9PTFNfRElSfS93cGUv
SGVhZGxlc3NWaWV3QmFja2VuZC9IZWFkbGVzc1ZpZXdCYWNrZW5kLmNwcApAQCAtOSwxNCArOSwx
NCBAQCBzZXQoV1BFSGVhZGxlc3NWaWV3QmFja2VuZF9TWVNURU1fSU5DTFVERV9ESVJFQ1RPUklF
UwogICAgICR7Q0FJUk9fSU5DTFVERV9ESVJTfQogICAgICR7R0xJQl9JTkNMVURFX0RJUlN9CiAg
ICAgJHtMSUJHQk1fSU5DTFVERV9ESVJTfQotICAgICR7V1BFX01FU0FfSU5DTFVERV9ESVJTfQor
ICAgICR7V1BFQkFDS0VORF9GRE9fSU5DTFVERV9ESVJTfQogKQogCiBzZXQoV1BFSGVhZGxlc3NW
aWV3QmFja2VuZF9MSUJSQVJJRVMKICAgICAke0NBSVJPX0xJQlJBUklFU30KICAgICAke0dMSUJf
TElCUkFSSUVTfQogICAgICR7TElCR0JNX0xJQlJBUklFU30KLSAgICAke1dQRV9NRVNBX0xJQlJB
UklFU30KKyAgICAke1dQRUJBQ0tFTkRfRkRPX0xJQlJBUklFU30KICkKIAogYWRkX2xpYnJhcnko
V1BFSGVhZGxlc3NWaWV3QmFja2VuZCAke1dQRUhlYWRsZXNzVmlld0JhY2tlbmRfU09VUkNFU30p
CmRpZmYgLS1naXQgYS9Ub29scy93cGUvSGVhZGxlc3NWaWV3QmFja2VuZC9IZWFkbGVzc1ZpZXdC
YWNrZW5kLmNwcCBiL1Rvb2xzL3dwZS9IZWFkbGVzc1ZpZXdCYWNrZW5kL0hlYWRsZXNzVmlld0Jh
Y2tlbmQuY3BwCmluZGV4IDgzOTE4NGM2NTQ3YzhkNWM1NmVlYzA2ZDc4OWZkOGNjNzIxYTI0ZDQu
LjNiZTEzODE0MmE4NGM2MjQ4YWQzZWMzNjkwNTA5NDljZThlNTljMGEgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL3dwZS9IZWFkbGVzc1ZpZXdCYWNrZW5kL0hlYWRsZXNzVmlld0JhY2tlbmQuY3BwCisrKyBi
L1Rvb2xzL3dwZS9IZWFkbGVzc1ZpZXdCYWNrZW5kL0hlYWRsZXNzVmlld0JhY2tlbmQuY3BwCkBA
IC0yOCw2ICsyOCw3IEBACiAjaW5jbHVkZSA8Y2Fzc2VydD4KICNpbmNsdWRlIDxmY250bC5oPgog
I2luY2x1ZGUgPHVuaXN0ZC5oPgorI2luY2x1ZGUgPHdwZS1mZG8vaW5pdGlhbGl6ZS1lZ2wuaD4K
IAogLy8gTWFudWFsbHkgcHJvdmlkZSB0aGUgRUdMX0NBU1QgQysrIGRlZmluaXRpb24gaW4gY2Fz
ZSBlZ2xwbGF0Zm9ybS5oIGRvZXNuJ3QgcHJvdmlkZSBpdC4KICNpZm5kZWYgRUdMX0NBU1QKQEAg
LTM3LDIwICszOCwxMSBAQAogLy8gS2VlcCB0aGlzIGluIHN5bmMgd2l0aCB3dGYvZ2xpYi9SdW5M
b29wU291cmNlUHJpb3JpdHkuaC4KIHN0YXRpYyBpbnQga1J1bkxvb3BTb3VyY2VQcmlvcml0eURp
c3BhdGNoZXIgPSAtNzA7CiAKLS8vIEZJWE1FOiBEZXBsb3kgZ29vZCBwcmFjdGljZXMgYW5kIGNs
ZWFuIHVwIEdCTSByZXNvdXJjZXMgYXQgcHJvY2VzcyBleGl0Lgogc3RhdGljIEVHTERpc3BsYXkg
Z2V0RUdMRGlzcGxheSgpCiB7CiAgICAgc3RhdGljIEVHTERpc3BsYXkgc19kaXNwbGF5ID0gRUdM
X05PX0RJU1BMQVk7CiAgICAgaWYgKHNfZGlzcGxheSA9PSBFR0xfTk9fRElTUExBWSkgewotICAg
ICAgICBpbnQgZmQgPSBvcGVuKCIvZGV2L2RyaS9yZW5kZXJEMTI4IiwgT19SRFdSIHwgT19DTE9F
WEVDIHwgT19OT0NUVFkgfCBPX05PTkJMT0NLKTsKLSAgICAgICAgaWYgKGZkIDwgMCkKLSAgICAg
ICAgICAgIHJldHVybiBFR0xfTk9fRElTUExBWTsKLQotICAgICAgICBzdHJ1Y3QgZ2JtX2Rldmlj
ZSogZGV2aWNlID0gZ2JtX2NyZWF0ZV9kZXZpY2UoZmQpOwotICAgICAgICBpZiAoIWRldmljZSkK
LSAgICAgICAgICAgIHJldHVybiBFR0xfTk9fRElTUExBWTsKLQotICAgICAgICBFR0xEaXNwbGF5
IGRpc3BsYXkgPSBlZ2xHZXREaXNwbGF5KGRldmljZSk7CisgICAgICAgIEVHTERpc3BsYXkgZGlz
cGxheSA9IGVnbEdldERpc3BsYXkoRUdMX0RFRkFVTFRfRElTUExBWSk7CiAgICAgICAgIGlmIChk
aXNwbGF5ID09IEVHTF9OT19ESVNQTEFZKQogICAgICAgICAgICAgcmV0dXJuIEVHTF9OT19ESVNQ
TEFZOwogCkBAIC02MCw2ICs1Miw3IEBAIHN0YXRpYyBFR0xEaXNwbGF5IGdldEVHTERpc3BsYXko
KQogICAgICAgICBpZiAoIWVnbEJpbmRBUEkoRUdMX09QRU5HTF9FU19BUEkpKQogICAgICAgICAg
ICAgcmV0dXJuIEVHTF9OT19ESVNQTEFZOwogCisgICAgICAgIHdwZV9mZG9faW5pdGlhbGl6ZV9m
b3JfZWdsX2Rpc3BsYXkoZGlzcGxheSk7CiAgICAgICAgIHNfZGlzcGxheSA9IGRpc3BsYXk7CiAg
ICAgfQogCkBAIC05OSw5ICs5MiwxMCBAQCBIZWFkbGVzc1ZpZXdCYWNrZW5kOjpIZWFkbGVzc1Zp
ZXdCYWNrZW5kKCkKIAogICAgIG1fZWdsLmNyZWF0ZUltYWdlID0gcmVpbnRlcnByZXRfY2FzdDxQ
Rk5FR0xDUkVBVEVJTUFHRUtIUlBST0M+KGVnbEdldFByb2NBZGRyZXNzKCJlZ2xDcmVhdGVJbWFn
ZUtIUiIpKTsKICAgICBtX2VnbC5kZXN0cm95SW1hZ2UgPSByZWludGVycHJldF9jYXN0PFBGTkVH
TERFU1RST1lJTUFHRUtIUlBST0M+KGVnbEdldFByb2NBZGRyZXNzKCJlZ2xEZXN0cm95SW1hZ2VL
SFIiKSk7CisgICAgbV9lZ2wucXVlcnlCdWZmZXIgPSByZWludGVycHJldF9jYXN0PFBGTkVHTFFV
RVJZV0FZTEFOREJVRkZFUldMPihlZ2xHZXRQcm9jQWRkcmVzcygiZWdsUXVlcnlXYXlsYW5kQnVm
ZmVyV0wiKSk7CiAgICAgbV9lZ2wuaW1hZ2VUYXJnZXRUZXh0dXJlMkRPRVMgPSByZWludGVycHJl
dF9jYXN0PFBGTkdMRUdMSU1BR0VUQVJHRVRURVhUVVJFMkRPRVNQUk9DPihlZ2xHZXRQcm9jQWRk
cmVzcygiZ2xFR0xJbWFnZVRhcmdldFRleHR1cmUyRE9FUyIpKTsKIAotICAgIG1fZXhwb3J0YWJs
ZSA9IHdwZV9tZXNhX3ZpZXdfYmFja2VuZF9leHBvcnRhYmxlX2RtYV9idWZfY3JlYXRlKCZzX2V4
cG9ydGFibGVDbGllbnQsIHRoaXMpOworICAgIG1fZXhwb3J0YWJsZSA9IHdwZV92aWV3X2JhY2tl
bmRfZXhwb3J0YWJsZV9mZG9fY3JlYXRlKCZzX2V4cG9ydGFibGVDbGllbnQsIHRoaXMsIDgwMCwg
NjAwKTsKIAogICAgIG1fdXBkYXRlU291cmNlID0gZ190aW1lb3V0X3NvdXJjZV9uZXcobV9mcmFt
ZVJhdGUgLyAxMDAwKTsKICAgICBnX3NvdXJjZV9zZXRfY2FsbGJhY2sobV91cGRhdGVTb3VyY2Us
CkBAIC0xMTYsMjkgKzExMCwyNSBAQCBIZWFkbGVzc1ZpZXdCYWNrZW5kOjpIZWFkbGVzc1ZpZXdC
YWNrZW5kKCkKIAogSGVhZGxlc3NWaWV3QmFja2VuZDo6fkhlYWRsZXNzVmlld0JhY2tlbmQoKQog
ewotICAgIGlmIChtX3VwZGF0ZVNvdXJjZSkKKyAgICBpZiAobV91cGRhdGVTb3VyY2UpIHsKICAg
ICAgICAgZ19zb3VyY2VfZGVzdHJveShtX3VwZGF0ZVNvdXJjZSk7CisgICAgICAgIGdfc291cmNl
X3VucmVmKG1fdXBkYXRlU291cmNlKTsKKyAgICB9CiAKICAgICBpZiAoYXV0byBpbWFnZSA9IHN0
ZDo6Z2V0PDA+KG1fcGVuZGluZ0ltYWdlLnNlY29uZCkpCiAgICAgICAgIG1fZWdsLmRlc3Ryb3lJ
bWFnZShtX2VnbC5kaXNwbGF5LCBpbWFnZSk7CiAgICAgaWYgKGF1dG8gaW1hZ2UgPSBzdGQ6Omdl
dDwwPihtX2xvY2tlZEltYWdlLnNlY29uZCkpCiAgICAgICAgIG1fZWdsLmRlc3Ryb3lJbWFnZSht
X2VnbC5kaXNwbGF5LCBpbWFnZSk7CiAKLSAgICBmb3IgKGF1dG8gaXQgOiBtX2V4cG9ydE1hcCkg
ewotICAgICAgICBpbnQgZmQgPSBpdC5zZWNvbmQ7Ci0gICAgICAgIGlmIChmZCA+PSAwKQotICAg
ICAgICAgICAgY2xvc2UoZmQpOwotICAgIH0KLQogICAgIGlmIChtX2VnbC5jb250ZXh0KQogICAg
ICAgICBlZ2xEZXN0cm95Q29udGV4dChtX2VnbC5kaXNwbGF5LCBtX2VnbC5jb250ZXh0KTsKIAot
ICAgIHdwZV9tZXNhX3ZpZXdfYmFja2VuZF9leHBvcnRhYmxlX2RtYV9idWZfZGVzdHJveShtX2V4
cG9ydGFibGUpOworICAgIHdwZV92aWV3X2JhY2tlbmRfZXhwb3J0YWJsZV9mZG9fZGVzdHJveSht
X2V4cG9ydGFibGUpOwogfQogCiBzdHJ1Y3Qgd3BlX3ZpZXdfYmFja2VuZCogSGVhZGxlc3NWaWV3
QmFja2VuZDo6YmFja2VuZCgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIHdwZV9tZXNhX3ZpZXdfYmFj
a2VuZF9leHBvcnRhYmxlX2RtYV9idWZfZ2V0X3ZpZXdfYmFja2VuZChtX2V4cG9ydGFibGUpOwor
ICAgIHJldHVybiB3cGVfdmlld19iYWNrZW5kX2V4cG9ydGFibGVfZmRvX2dldF92aWV3X2JhY2tl
bmQobV9leHBvcnRhYmxlKTsKIH0KIAogY2Fpcm9fc3VyZmFjZV90KiBIZWFkbGVzc1ZpZXdCYWNr
ZW5kOjpjcmVhdGVTbmFwc2hvdCgpCkBAIC0xNTUsNyArMTQ1LDggQEAgY2Fpcm9fc3VyZmFjZV90
KiBIZWFkbGVzc1ZpZXdCYWNrZW5kOjpjcmVhdGVTbmFwc2hvdCgpCiAgICAgdWludDhfdCogYnVm
ZmVyID0gbmV3IHVpbnQ4X3RbNCAqIHdpZHRoICogaGVpZ2h0XTsKICAgICBib29sIHN1Y2Nlc3Nm
dWxTbmFwc2hvdCA9IGZhbHNlOwogCi0gICAgbWFrZUN1cnJlbnQoKTsKKyAgICBpZiAoIWVnbE1h
a2VDdXJyZW50KG1fZWdsLmRpc3BsYXksIEVHTF9OT19TVVJGQUNFLCBFR0xfTk9fU1VSRkFDRSwg
bV9lZ2wuY29udGV4dCkpCisgICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAgR0x1aW50IGlt
YWdlVGV4dHVyZTsKICAgICBnbEdlblRleHR1cmVzKDEsICZpbWFnZVRleHR1cmUpOwpAQCAtMjAz
LDU3ICsxOTQsNDIgQEAgY2Fpcm9fc3VyZmFjZV90KiBIZWFkbGVzc1ZpZXdCYWNrZW5kOjpjcmVh
dGVTbmFwc2hvdCgpCiAgICAgcmV0dXJuIGltYWdlU3VyZmFjZTsKIH0KIAotYm9vbCBIZWFkbGVz
c1ZpZXdCYWNrZW5kOjptYWtlQ3VycmVudCgpCi17Ci0gICAgcmV0dXJuIGVnbE1ha2VDdXJyZW50
KG1fZWdsLmRpc3BsYXksIEVHTF9OT19TVVJGQUNFLCBFR0xfTk9fU1VSRkFDRSwgbV9lZ2wuY29u
dGV4dCk7Ci19Ci0KIHZvaWQgSGVhZGxlc3NWaWV3QmFja2VuZDo6cGVyZm9ybVVwZGF0ZSgpCiB7
CiAgICAgaWYgKCFtX3BlbmRpbmdJbWFnZS5maXJzdCkKICAgICAgICAgcmV0dXJuOwogCi0gICAg
d3BlX21lc2Ffdmlld19iYWNrZW5kX2V4cG9ydGFibGVfZG1hX2J1Zl9kaXNwYXRjaF9mcmFtZV9j
b21wbGV0ZShtX2V4cG9ydGFibGUpOworICAgIHdwZV92aWV3X2JhY2tlbmRfZXhwb3J0YWJsZV9m
ZG9fZGlzcGF0Y2hfZnJhbWVfY29tcGxldGUobV9leHBvcnRhYmxlKTsKICAgICBpZiAobV9sb2Nr
ZWRJbWFnZS5maXJzdCkgewotICAgICAgICB3cGVfbWVzYV92aWV3X2JhY2tlbmRfZXhwb3J0YWJs
ZV9kbWFfYnVmX2Rpc3BhdGNoX3JlbGVhc2VfYnVmZmVyKG1fZXhwb3J0YWJsZSwgbV9sb2NrZWRJ
bWFnZS5maXJzdCk7CisgICAgICAgIHdwZV92aWV3X2JhY2tlbmRfZXhwb3J0YWJsZV9mZG9fZGlz
cGF0Y2hfcmVsZWFzZV9idWZmZXIobV9leHBvcnRhYmxlLCBtX2xvY2tlZEltYWdlLmZpcnN0KTsK
ICAgICAgICAgbV9lZ2wuZGVzdHJveUltYWdlKG1fZWdsLmRpc3BsYXksIHN0ZDo6Z2V0PDA+KG1f
bG9ja2VkSW1hZ2Uuc2Vjb25kKSk7CiAgICAgfQogCiAgICAgbV9sb2NrZWRJbWFnZSA9IG1fcGVu
ZGluZ0ltYWdlOwotICAgIG1fcGVuZGluZ0ltYWdlID0gc3RkOjpwYWlyPHVpbnQzMl90LCBzdGQ6
OnR1cGxlPEVHTEltYWdlS0hSLCB1aW50MzJfdCwgdWludDMyX3Q+PiB7IH07CisgICAgbV9wZW5k
aW5nSW1hZ2UgPSBzdGQ6OnBhaXI8c3RydWN0IHdsX3Jlc291cmNlKiwgc3RkOjp0dXBsZTxFR0xJ
bWFnZUtIUiwgdWludDMyX3QsIHVpbnQzMl90Pj4geyB9OwogfQogCi1zdHJ1Y3Qgd3BlX21lc2Ff
dmlld19iYWNrZW5kX2V4cG9ydGFibGVfZG1hX2J1Zl9jbGllbnQgSGVhZGxlc3NWaWV3QmFja2Vu
ZDo6c19leHBvcnRhYmxlQ2xpZW50ID0gewotICAgIC8vIGV4cG9ydF9kbWFfYnVmCi0gICAgW10o
dm9pZCogZGF0YSwgc3RydWN0IHdwZV9tZXNhX3ZpZXdfYmFja2VuZF9leHBvcnRhYmxlX2RtYV9i
dWZfZGF0YSogaW1hZ2VEYXRhKQorc3RydWN0IHdwZV92aWV3X2JhY2tlbmRfZXhwb3J0YWJsZV9m
ZG9fY2xpZW50IEhlYWRsZXNzVmlld0JhY2tlbmQ6OnNfZXhwb3J0YWJsZUNsaWVudCA9IHsKKyAg
ICAvLyBleHBvcnRfYnVmZmVyX3Jlc291cmNlCisgICAgW10odm9pZCogZGF0YSwgc3RydWN0IHds
X3Jlc291cmNlKiBidWZmZXJSZXNvdXJjZSkKICAgICB7CiAgICAgICAgIGF1dG8mIGJhY2tlbmQg
PSAqc3RhdGljX2Nhc3Q8SGVhZGxlc3NWaWV3QmFja2VuZCo+KGRhdGEpOworICAgICAgICBpZiAo
YmFja2VuZC5tX3BlbmRpbmdJbWFnZS5maXJzdCkKKyAgICAgICAgICAgIHN0ZDo6YWJvcnQoKTsK
KworICAgICAgICBhdXRvJiBlZ2wgPSBiYWNrZW5kLm1fZWdsOworCisgICAgICAgIEVHTGludCBm
b3JtYXQgPSAwOworICAgICAgICBpZiAoIWVnbC5xdWVyeUJ1ZmZlcihlZ2wuZGlzcGxheSwgYnVm
ZmVyUmVzb3VyY2UsIEVHTF9URVhUVVJFX0ZPUk1BVCwgJmZvcm1hdCkgfHwgZm9ybWF0ICE9IEVH
TF9URVhUVVJFX1JHQkEpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgRUdMaW50IHdp
ZHRoLCBoZWlnaHQ7CisgICAgICAgIGlmICghZWdsLnF1ZXJ5QnVmZmVyKGVnbC5kaXNwbGF5LCBi
dWZmZXJSZXNvdXJjZSwgRUdMX1dJRFRILCAmd2lkdGgpCisgICAgICAgICAgICB8fCAhZWdsLnF1
ZXJ5QnVmZmVyKGVnbC5kaXNwbGF5LCBidWZmZXJSZXNvdXJjZSwgRUdMX0hFSUdIVCwgJmhlaWdo
dCkpCisgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgYXV0byBpdCA9IGJhY2tlbmQubV9l
eHBvcnRNYXAuZW5kKCk7Ci0gICAgICAgIGlmIChpbWFnZURhdGEtPmZkID49IDApIHsKLSAgICAg
ICAgICAgIGFzc2VydChiYWNrZW5kLm1fZXhwb3J0TWFwLmZpbmQoaW1hZ2VEYXRhLT5oYW5kbGUp
ID09IGJhY2tlbmQubV9leHBvcnRNYXAuZW5kKCkpOwotCi0gICAgICAgICAgICBpdCA9IGJhY2tl
bmQubV9leHBvcnRNYXAuaW5zZXJ0KHsgaW1hZ2VEYXRhLT5oYW5kbGUsIGltYWdlRGF0YS0+ZmQg
fSkuZmlyc3Q7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBhc3NlcnQoYmFja2VuZC5t
X2V4cG9ydE1hcC5maW5kKGltYWdlRGF0YS0+aGFuZGxlKSAhPSBiYWNrZW5kLm1fZXhwb3J0TWFw
LmVuZCgpKTsKLSAgICAgICAgICAgIGl0ID0gYmFja2VuZC5tX2V4cG9ydE1hcC5maW5kKGltYWdl
RGF0YS0+aGFuZGxlKTsKLSAgICAgICAgfQotCi0gICAgICAgIGFzc2VydChpdCAhPSBiYWNrZW5k
Lm1fZXhwb3J0TWFwLmVuZCgpKTsKLSAgICAgICAgaW50MzJfdCBmZCA9IGl0LT5zZWNvbmQ7Ci0K
LSAgICAgICAgYmFja2VuZC5tYWtlQ3VycmVudCgpOwotCi0gICAgICAgIEVHTGludCBhdHRyaWJ1
dGVzW10gPSB7Ci0gICAgICAgICAgICBFR0xfV0lEVEgsIHN0YXRpY19jYXN0PEVHTGludD4oaW1h
Z2VEYXRhLT53aWR0aCksCi0gICAgICAgICAgICBFR0xfSEVJR0hULCBzdGF0aWNfY2FzdDxFR0xp
bnQ+KGltYWdlRGF0YS0+aGVpZ2h0KSwKLSAgICAgICAgICAgIEVHTF9MSU5VWF9EUk1fRk9VUkND
X0VYVCwgc3RhdGljX2Nhc3Q8RUdMaW50PihpbWFnZURhdGEtPmZvcm1hdCksCi0gICAgICAgICAg
ICBFR0xfRE1BX0JVRl9QTEFORTBfRkRfRVhULCBmZCwKLSAgICAgICAgICAgIEVHTF9ETUFfQlVG
X1BMQU5FMF9PRkZTRVRfRVhULCAwLAotICAgICAgICAgICAgRUdMX0RNQV9CVUZfUExBTkUwX1BJ
VENIX0VYVCwgc3RhdGljX2Nhc3Q8RUdMaW50PihpbWFnZURhdGEtPnN0cmlkZSksCi0gICAgICAg
ICAgICBFR0xfTk9ORSwKLSAgICAgICAgfTsKLSAgICAgICAgRUdMSW1hZ2VLSFIgaW1hZ2UgPSBi
YWNrZW5kLm1fZWdsLmNyZWF0ZUltYWdlKGJhY2tlbmQubV9lZ2wuZGlzcGxheSwgRUdMX05PX0NP
TlRFWFQsIEVHTF9MSU5VWF9ETUFfQlVGX0VYVCwgbnVsbHB0ciwgYXR0cmlidXRlcyk7Ci0gICAg
ICAgIGJhY2tlbmQubV9wZW5kaW5nSW1hZ2UgPSB7IGltYWdlRGF0YS0+aGFuZGxlLCBzdGQ6Om1h
a2VfdHVwbGUoaW1hZ2UsIGltYWdlRGF0YS0+d2lkdGgsIGltYWdlRGF0YS0+aGVpZ2h0KSB9Owor
ICAgICAgICBFR0xpbnQgYXR0cmlidXRlc1tdID0geyBFR0xfV0FZTEFORF9QTEFORV9XTCwgMCwg
RUdMX05PTkUgfTsKKyAgICAgICAgRUdMSW1hZ2VLSFIgaW1hZ2UgPSBlZ2wuY3JlYXRlSW1hZ2Uo
ZWdsLmRpc3BsYXksIEVHTF9OT19DT05URVhULCBFR0xfV0FZTEFORF9CVUZGRVJfV0wsIGJ1ZmZl
clJlc291cmNlLCBhdHRyaWJ1dGVzKTsKKyAgICAgICAgYmFja2VuZC5tX3BlbmRpbmdJbWFnZSA9
IHsgYnVmZmVyUmVzb3VyY2UsIHN0ZDo6bWFrZV90dXBsZShpbWFnZSwgd2lkdGgsIGhlaWdodCkg
fTsKICAgICB9LAogfTsKZGlmZiAtLWdpdCBhL1Rvb2xzL3dwZS9IZWFkbGVzc1ZpZXdCYWNrZW5k
L0hlYWRsZXNzVmlld0JhY2tlbmQuaCBiL1Rvb2xzL3dwZS9IZWFkbGVzc1ZpZXdCYWNrZW5kL0hl
YWRsZXNzVmlld0JhY2tlbmQuaAppbmRleCBhMWJlNDg5NmM3Yzk1OTljOTU3NGFmZWFjYWFjMDNm
ZDllOWM2NzgxLi5iNTYxMGI3ZjU5N2MyOTJmNmRjOWQ0N2FmOThiZWZmODAwNjBhNmQ0IDEwMDY0
NAotLS0gYS9Ub29scy93cGUvSGVhZGxlc3NWaWV3QmFja2VuZC9IZWFkbGVzc1ZpZXdCYWNrZW5k
LmgKKysrIGIvVG9vbHMvd3BlL0hlYWRsZXNzVmlld0JhY2tlbmQvSGVhZGxlc3NWaWV3QmFja2Vu
ZC5oCkBAIC0zMiw3ICszMiwxNSBAQAogI2luY2x1ZGUgPGNhaXJvLmg+CiAjaW5jbHVkZSA8Z2xp
Yi5oPgogI2luY2x1ZGUgPHVub3JkZXJlZF9tYXA+Ci0jaW5jbHVkZSA8d3BlLW1lc2Evdmlldy1i
YWNrZW5kLWV4cG9ydGFibGUtZG1hLWJ1Zi5oPgorI2luY2x1ZGUgPHdwZS1mZG8vdmlldy1iYWNr
ZW5kLWV4cG9ydGFibGUuaD4KKworI2lmbmRlZiBFR0xfV0xfYmluZF93YXlsYW5kX2Rpc3BsYXkK
KyNkZWZpbmUgRUdMX1dMX2JpbmRfd2F5bGFuZF9kaXNwbGF5IDEKK3R5cGVkZWYgRUdMQm9vbGVh
biAoRUdMQVBJRU5UUllQIFBGTkVHTFFVRVJZV0FZTEFOREJVRkZFUldMKSAoRUdMRGlzcGxheSBk
cHksIHN0cnVjdCB3bF9yZXNvdXJjZSAqYnVmZmVyLCBFR0xpbnQgYXR0cmlidXRlLCBFR0xpbnQg
KnZhbHVlKTsKKworI2RlZmluZSBFR0xfV0FZTEFORF9CVUZGRVJfV0wgICAgICAgMHgzMUQ1IC8q
IGVnbENyZWF0ZUltYWdlS0hSIHRhcmdldCAqLworI2RlZmluZSBFR0xfV0FZTEFORF9QTEFORV9X
TCAgICAgICAgMHgzMUQ2IC8qIGVnbENyZWF0ZUltYWdlS0hSIHRhcmdldCAqLworI2VuZGlmCiAK
IGNsYXNzIEhlYWRsZXNzVmlld0JhY2tlbmQgewogcHVibGljOgpAQCAtNDQsMjYgKzUyLDI1IEBA
IHB1YmxpYzoKICAgICBjYWlyb19zdXJmYWNlX3QqIGNyZWF0ZVNuYXBzaG90KCk7CiAKIHByaXZh
dGU6Ci0gICAgYm9vbCBtYWtlQ3VycmVudCgpOwogICAgIHZvaWQgcGVyZm9ybVVwZGF0ZSgpOwog
Ci0gICAgc3RhdGljIHN0cnVjdCB3cGVfbWVzYV92aWV3X2JhY2tlbmRfZXhwb3J0YWJsZV9kbWFf
YnVmX2NsaWVudCBzX2V4cG9ydGFibGVDbGllbnQ7CisgICAgc3RhdGljIHN0cnVjdCB3cGVfdmll
d19iYWNrZW5kX2V4cG9ydGFibGVfZmRvX2NsaWVudCBzX2V4cG9ydGFibGVDbGllbnQ7CiAKICAg
ICBzdHJ1Y3QgewogICAgICAgICBFR0xEaXNwbGF5IGRpc3BsYXk7CiAgICAgICAgIEVHTENvbmZp
ZyBjb25maWc7Ci0gICAgICAgIEVHTENvbnRleHQgY29udGV4dDsKKyAgICAgICAgRUdMQ29udGV4
dCBjb250ZXh0IHsgbnVsbHB0ciB9OwogCiAgICAgICAgIFBGTkVHTENSRUFURUlNQUdFS0hSUFJP
QyBjcmVhdGVJbWFnZTsKICAgICAgICAgUEZORUdMREVTVFJPWUlNQUdFS0hSUFJPQyBkZXN0cm95
SW1hZ2U7CisgICAgICAgIFBGTkVHTFFVRVJZV0FZTEFOREJVRkZFUldMIHF1ZXJ5QnVmZmVyOwog
ICAgICAgICBQRk5HTEVHTElNQUdFVEFSR0VUVEVYVFVSRTJET0VTUFJPQyBpbWFnZVRhcmdldFRl
eHR1cmUyRE9FUzsKICAgICB9IG1fZWdsOwogCi0gICAgc3RydWN0IHdwZV9tZXNhX3ZpZXdfYmFj
a2VuZF9leHBvcnRhYmxlX2RtYV9idWYqIG1fZXhwb3J0YWJsZTsKKyAgICBzdHJ1Y3Qgd3BlX3Zp
ZXdfYmFja2VuZF9leHBvcnRhYmxlX2ZkbyogbV9leHBvcnRhYmxlOwogCi0gICAgc3RkOjp1bm9y
ZGVyZWRfbWFwPHVpbnQzMl90LCBpbnQzMl90PiBtX2V4cG9ydE1hcDsKLSAgICBzdGQ6OnBhaXI8
dWludDMyX3QsIHN0ZDo6dHVwbGU8RUdMSW1hZ2VLSFIsIHVpbnQzMl90LCB1aW50MzJfdD4+IG1f
cGVuZGluZ0ltYWdlIHsgfTsKLSAgICBzdGQ6OnBhaXI8dWludDMyX3QsIHN0ZDo6dHVwbGU8RUdM
SW1hZ2VLSFIsIHVpbnQzMl90LCB1aW50MzJfdD4+IG1fbG9ja2VkSW1hZ2UgeyB9OworICAgIHN0
ZDo6cGFpcjxzdHJ1Y3Qgd2xfcmVzb3VyY2UqLCBzdGQ6OnR1cGxlPEVHTEltYWdlS0hSLCB1aW50
MzJfdCwgdWludDMyX3Q+PiBtX3BlbmRpbmdJbWFnZSB7IH07CisgICAgc3RkOjpwYWlyPHN0cnVj
dCB3bF9yZXNvdXJjZSosIHN0ZDo6dHVwbGU8RUdMSW1hZ2VLSFIsIHVpbnQzMl90LCB1aW50MzJf
dD4+IG1fbG9ja2VkSW1hZ2UgeyB9OwogCiAgICAgR1NvdXJjZSogbV91cGRhdGVTb3VyY2U7CiAg
ICAgZ2ludDY0IG1fZnJhbWVSYXRlIHsgR19VU0VDX1BFUl9TRUMgLyA2MCB9OwpkaWZmIC0tZ2l0
IGEvVG9vbHMvd3BlL2poYnVpbGQubW9kdWxlcyBiL1Rvb2xzL3dwZS9qaGJ1aWxkLm1vZHVsZXMK
aW5kZXggMGY4YmZlYTM3ZGM0MTI4MGE2ODA1ZWM5NjViNWU0YjEyNmY3MGMzNy4uOTZhYzAzOTVm
OGJmY2ZjYTIxOGQyZjI4MTM1NDQwYzBiNGQ4Y2E0ZCAxMDA2NDQKLS0tIGEvVG9vbHMvd3BlL2po
YnVpbGQubW9kdWxlcworKysgYi9Ub29scy93cGUvamhidWlsZC5tb2R1bGVzCkBAIC0xOSw4ICsx
OSw4IEBACiAgICAgICA8ZGVwIHBhY2thZ2U9InhrYmNvbW1vbiIvPgogICAgICAgPGRlcCBwYWNr
YWdlPSJ3ZWJraXQtZ3N0cmVhbWVyLXRlc3RpbmctZGVwZW5kZW5jaWVzIi8+CiAgICAgICA8ZGVw
IHBhY2thZ2U9IndvZmYyIi8+Ci0gICAgICA8ZGVwIHBhY2thZ2U9IndwZSIvPgotICAgICAgPGRl
cCBwYWNrYWdlPSJ3cGUtbWVzYSIvPgorICAgICAgPGRlcCBwYWNrYWdlPSJ3cGViYWNrZW5kIi8+
CisgICAgICA8ZGVwIHBhY2thZ2U9IndwZWJhY2tlbmQtZmRvIi8+CiAgICAgICA8ZGVwIHBhY2th
Z2U9ImxpYmdwZy1lcnJvciIvPgogICAgICAgPGRlcCBwYWNrYWdlPSJsaWJnY3J5cHQiLz4KICAg
ICAgIDxkZXAgcGFja2FnZT0ibGliZXBveHkiLz4KQEAgLTE3MiwxOSArMTcyLDE5IEBACiAgICAg
ICAgICAgICBoYXNoPSJzaGExOjcxMjc5OTNiZmI2OWUxM2NkZmYyNWZiOGIzYzhmMjZjZTZiZTVi
ZmEiLz4KICAgPC9hdXRvdG9vbHM+CiAKLSAgPGNtYWtlIGlkPSJ3cGUiPgorICA8Y21ha2UgaWQ9
IndwZWJhY2tlbmQiPgogICAgIDxicmFuY2ggcmVwbz0iZ2l0aHViLmNvbSIgbW9kdWxlPSJXZWJQ
bGF0Zm9ybUZvckVtYmVkZGVkL1dQRUJhY2tlbmQuZ2l0IgogICAgICAgICAgICAgdGFnPSIzMDEz
ZmFhZWJhYjQyZTdlZjc0OTdiMzg1MGEyOTAyOTc4ZWIzZDZmIiAvPgogICA8L2NtYWtlPgogCi0g
IDxjbWFrZSBpZD0id3BlLW1lc2EiPgorICA8Y21ha2UgaWQ9IndwZWJhY2tlbmQtZmRvIj4KICAg
ICA8ZGVwZW5kZW5jaWVzPgotICAgICAgPGRlcCBwYWNrYWdlPSJ3cGUiIC8+Ci0gICAgICA8ZGVw
IHBhY2thZ2U9ImdsaWIiIC8+Ci0gICAgICA8ZGVwIHBhY2thZ2U9InhrYmNvbW1vbiIgLz4KKyAg
ICAgIDxkZXAgcGFja2FnZT0id3BlYmFja2VuZCIvPgorICAgICAgPGRlcCBwYWNrYWdlPSJnbGli
Ii8+CisgICAgICA8ZGVwIHBhY2thZ2U9InhrYmNvbW1vbiIvPgogICAgIDwvZGVwZW5kZW5jaWVz
PgotICAgIDxicmFuY2ggcmVwbz0iZ2l0aHViLmNvbSIgbW9kdWxlPSJXZWJQbGF0Zm9ybUZvckVt
YmVkZGVkL1dQRUJhY2tlbmQtbWVzYS5naXQiCi0gICAgICAgICAgICB0YWc9IjhlMTU5ODMyZGM1
NTE2NDc1OGY2OGZhZDAyZjUyZTZhZDdjNzA2NDIiIC8+CisgICAgPGJyYW5jaCByZXBvPSJnaXRo
dWIuY29tIiBtb2R1bGU9IklnYWxpYS9XUEVCYWNrZW5kLWZkby5naXQiCisgICAgICAgICAgICB0
YWc9IjA2NGM2MDgwNjQyMmZmMWJiMzJjZWY3ZmIxZGU2ODkyM2FlY2JhODIiLz4KICAgPC9jbWFr
ZT4KIAogICA8YXV0b3Rvb2xzIGlkPSJsaWJncGctZXJyb3IiIGF1dG9nZW4tc2g9ImNvbmZpZ3Vy
ZSI+CkBAIC0yMTMsNyArMjEzLDcgQEAKICAgPC9hdXRvdG9vbHM+CiAKICAgPGF1dG90b29scyBp
ZD0iZHl6IiBzdXBwb3J0cy1ub24tc3JjZGlyLWJ1aWxkcz0ibm8iPgotICAgIDxicmFuY2ggcmVw
bz0iZ2l0aHViLmNvbSIgbW9kdWxlPSJJZ2FsaWEvZHl6IiB0YWc9IjIwM2ExZWJkMTQ4MWU0NGFh
ODEwNWU4NjJjMDJmMzE3ZTY2NTM2MjciLz4KKyAgICA8YnJhbmNoIHJlcG89ImdpdGh1Yi5jb20i
IG1vZHVsZT0iSWdhbGlhL2R5eiIgdGFnPSJhNTc4NGUxNmI5YjYwYzg1YjZiZjc4OTA4ZmFhMGVk
MGEyY2UwNDczIi8+CiAgIDwvYXV0b3Rvb2xzPgogCiAgIDxtZXNvbiBpZD0iZ3JhcGhlbmUiPgpk
aWZmIC0tZ2l0IGEvQ2hhbmdlTG9nIGIvQ2hhbmdlTG9nCmluZGV4IDJiMGYwMWYzNmUyOWQ1ZTgy
ODliYjg1OWI0NTRiYjc1YmY4NTQxMWUuLjAzMGE3N2M5MTU2MzcyMWNkYzVhZjgxNWY4YmU4MzZm
MWYzMTkxMWQgMTAwNjQ0Ci0tLSBhL0NoYW5nZUxvZworKysgYi9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxMiBAQAorMjAxOC0wNC0wNiAgWmFuIERvYmVyc2VrICA8emRvYmVyc2VrQGlnYWxpYS5jb20+
CisKKyAgICAgICAgW1dQRV0gU3dpdGNoIHRlc3RpbmcgcHJvY2VzcyB0byB1c2luZyBXUEVCYWNr
ZW5kLWZkbworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTg0MzU3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBTb3VyY2UvY21ha2UvRmluZFdQRUJhY2tlbmQtZmRvLmNtYWtlOiBSZW5hbWVkIGZyb20gU291
cmNlL2NtYWtlL0ZpbmRXUEVCYWNrZW5kLW1lc2EuY21ha2UuCisKIDIwMTgtMDQtMDIgIFBlciBB
cm5lIFZvbGxhbiAgPHB2b2xsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFJlbW92ZSByZWZlcmVu
Y2VzIHRvIGludGVybmFsIHZlcnNpb24gb2YgV2ViS2l0UXVhcnR6Q29yZUFkZGl0aW9ucyBpbiBD
TWFrZSBmaWxlcy4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>337359</attachid>
            <date>2018-04-06 06:13:31 -0700</date>
            <delta_ts>2018-04-11 00:41:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-184357-20180406151329.patch</filename>
            <type>text/plain</type>
            <size>27826</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMwMzI2CmRpZmYgLS1naXQgYS9Tb3VyY2UvY21ha2UvRmlu
ZFdQRUJhY2tlbmQtZmRvLmNtYWtlIGIvU291cmNlL2NtYWtlL0ZpbmRXUEVCYWNrZW5kLWZkby5j
bWFrZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi45NzlkZWI0ZTNhM2IxZTdiOWJiNTA0ZTQyOTg5MGY1MmNjNjI5MWFh
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL2NtYWtlL0ZpbmRXUEVCYWNrZW5kLWZkby5jbWFr
ZQpAQCAtMCwwICsxLDQ3IEBACisjIC0gVHJ5IHRvIGZpbmQgV1BFQmFja2VuZC1mZG8uCisjIE9u
Y2UgZG9uZSwgdGhpcyB3aWxsIGRlZmluZQorIworIyAgV1BFQkFDS0VORF9GRE9fRk9VTkQgLSBz
eXN0ZW0gaGFzIFdQRUJhY2tlbmQtZmRvLgorIyAgV1BFQkFDS0VORF9GRE9fSU5DTFVERV9ESVJT
IC0gdGhlIFdQRUJhY2tlbmQtZmRvIGluY2x1ZGUgZGlyZWN0b3JpZXMKKyMgIFdQRUJBQ0tFTkRf
RkRPX0xJQlJBUklFUyAtIGxpbmsgdGhlc2UgdG8gdXNlIFdQRUJhY2tlbmQtZmRvLgorIworIyBD
b3B5cmlnaHQgKEMpIDIwMTYgSWdhbGlhIFMuTC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworIyBhcmUgbWV0OgorIyAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisj
ICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisjICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMKKyMgSVMnJyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyMgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorIyBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUiBPUiBJVFMK
KyMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsCisjIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyMgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7CisjIE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLAorIyBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUgorIyBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGCisjIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCitmaW5kX3BhY2thZ2UoUGtn
Q29uZmlnKQorcGtnX2NoZWNrX21vZHVsZXMoUENfV1BFQkFDS0VORF9GRE8gUVVJRVQgd3BlYmFj
a2VuZC1mZG8pCisKK2ZpbmRfcGF0aChXUEVCQUNLRU5EX0ZET19JTkNMVURFX0RJUlMKKyAgICBO
QU1FUyB3cGUtZmRvL2luaXRpYWxpemUtZWdsLmgKKyAgICBISU5UUyAke1BDX1dQRUJBQ0tFTkRf
RkRPX0lOQ0xVREVESVJ9ICR7UENfV1BFQkFDS0VORF9GRE9fSU5DTFVERV9ESVJTfQorKQorCitm
aW5kX2xpYnJhcnkoV1BFQkFDS0VORF9GRE9fTElCUkFSSUVTCisgICAgTkFNRVMgV1BFQmFja2Vu
ZC1mZG8KKyAgICBISU5UUyAke1BDX1dQRUJBQ0tFTkRfRkRPX0xJQkRJUn0gJHtQQ19XUEVCQUNL
RU5EX0ZET19MSUJSQVJZX0RJUlN9CispCisKK21hcmtfYXNfYWR2YW5jZWQoV1BFQkFDS0VORF9G
RE9fSU5DTFVERV9ESVJTIFdQRUJBQ0tFTkRfRkRPX0xJQlJBUklFUykKKworaW5jbHVkZShGaW5k
UGFja2FnZUhhbmRsZVN0YW5kYXJkQXJncykKK2ZpbmRfcGFja2FnZV9oYW5kbGVfc3RhbmRhcmRf
YXJncyhXUEVCYWNrZW5kLWZkbyBSRVFVSVJFRF9WQVJTIFdQRUJBQ0tFTkRfRkRPX0lOQ0xVREVf
RElSUyBXUEVCQUNLRU5EX0ZET19MSUJSQVJJRVMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvY21ha2Uv
RmluZFdQRUJhY2tlbmQtbWVzYS5jbWFrZSBiL1NvdXJjZS9jbWFrZS9GaW5kV1BFQmFja2VuZC1t
ZXNhLmNtYWtlCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1MmY3ZThkMmZjYjdhZTM3
YTdiNDIxMDYxNzQzM2RlODMwYWE5MjkwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9jbWFrZS9GaW5kV1BFQmFja2VuZC1tZXNhLmNtYWtlCisr
KyAvZGV2L251bGwKQEAgLTEsNDcgKzAsMCBAQAotIyAtIFRyeSB0byBmaW5kIFdQRS1tZXNhLgot
IyBPbmNlIGRvbmUsIHRoaXMgd2lsbCBkZWZpbmUKLSMKLSMgIFdQRV9NRVNBX0ZPVU5EIC0gc3lz
dGVtIGhhcyBXUEUtbWVzYS4KLSMgIFdQRV9NRVNBX0lOQ0xVREVfRElSUyAtIHRoZSBXUEUtbWVz
YSBpbmNsdWRlIGRpcmVjdG9yaWVzCi0jICBXUEVfTUVTQV9MSUJSQVJJRVMgLSBsaW5rIHRoZXNl
IHRvIHVzZSBXUEUtbWVzYS4KLSMKLSMgQ29weXJpZ2h0IChDKSAyMDE2IElnYWxpYSBTLkwuCi0j
Ci0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSMgYXJlIG1ldDoKLSMgMS4gIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jICAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCi0jIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotIyAgICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERF
UiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTCi0jIElTJycgQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0jIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKLSMgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhF
IENPUFlSSUdIVCBIT0xERVIgT1IgSVRTCi0jIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotIyBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0j
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOwotIyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwKLSMgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IK
LSMgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRgotIyBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KLQotZmluZF9wYWNrYWdlKFBrZ0NvbmZpZykKLXBrZ19jaGVja19tb2R1bGVzKFBDX1dQ
RV9NRVNBIFFVSUVUIHdwZS1tZXNhKQotCi1maW5kX3BhdGgoV1BFX01FU0FfSU5DTFVERV9ESVJT
Ci0gICAgTkFNRVMgd3BlLW1lc2Evdmlldy1iYWNrZW5kLWV4cG9ydGFibGUtZG1hLWJ1Zi5oCi0g
ICAgSElOVFMgJHtQQ19XUEVfTUVTQV9JTkNMVURFRElSfSAke1BDX1dQRV9NRVNBX0lOQ0xVREVf
RElSU30KLSkKLQotZmluZF9saWJyYXJ5KFdQRV9NRVNBX0xJQlJBUklFUwotICAgIE5BTUVTIFdQ
RUJhY2tlbmQtbWVzYQotICAgIEhJTlRTICR7UENfV1BFX01FU0FfTElCRElSfSAke1BDX1dQRV9N
RVNBX0xJQlJBUllfRElSU30KLSkKLQotbWFya19hc19hZHZhbmNlZChXUEVfTUVTQV9JTkNMVURF
X0RJUlMgV1BFX01FU0FfTElCUkFSSUVTKQotCi1pbmNsdWRlKEZpbmRQYWNrYWdlSGFuZGxlU3Rh
bmRhcmRBcmdzKQotZmluZF9wYWNrYWdlX2hhbmRsZV9zdGFuZGFyZF9hcmdzKFdQRUJhY2tlbmQt
bWVzYSBSRVFVSVJFRF9WQVJTIFdQRV9NRVNBX0lOQ0xVREVfRElSUyBXUEVfTUVTQV9MSUJSQVJJ
RVMpCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXgg
MDhlMTM2ZGI2NmNhNTYxOGM5MDRjY2RhMDM5ZmJhMjIxNTQ4ZGJjYy4uMmRmYWY1OTc1MDYyZDEx
MmM1M2FlYzU1MzM3NzQ5OGIwNDMyZTcxZiAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisr
KyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ4IEBACisyMDE4LTA0LTA2ICBaYW4gRG9i
ZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KKworICAgICAgICBbV1BFXSBTd2l0Y2ggdGVz
dGluZyBwcm9jZXNzIHRvIHVzaW5nIFdQRUJhY2tlbmQtZmRvCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODQzNTcKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTd2l0Y2ggV1BFIHRlc3RpbmcgdG8gdXNpbmcg
dGhlIFdQRUJhY2tlbmQtZmRvIGltcGxlbWVudGF0aW9uIHRoYXQKKyAgICAgICAgZGVwZW5kcyBv
biB0aGUgV0xfYmluZF93YXlsYW5kX2Rpc3BsYXkgRUdMIGV4dGVuc2lvbiwgYXMgZGVmaW5lZCB1
bmRlcgorICAgICAgICB0aGUgZnJlZWRlc2t0b3Aub3JnIHByb2plY3QuCisgICAgICAgIGh0dHBz
Oi8vY2dpdC5mcmVlZGVza3RvcC5vcmcvbWVzYS9tZXNhL3RyZWUvZG9jcy9zcGVjcy9XTF9iaW5k
X3dheWxhbmRfZGlzcGxheS5zcGVjCisKKyAgICAgICAgSGVhZGxlc3NWaWV3QmFja2VuZCBpcyBy
ZWZhY3RvcmVkIHRvIHVzZSB0aGUgV1BFQmFja2VuZC1mZG8gQVBJLCBidXQKKyAgICAgICAgb3Ro
ZXJ3aXNlIGlzIG5vdCBjaGFuZ2VkIGluIGZ1bmN0aW9uYWxpdHkuCisKKyAgICAgICAgVW5pdCB0
ZXN0cyBub3cgaGF2ZSB0byB1bmNvbmRpdGlvbmFsbHkgdXNlIEhlYWRsZXNzVmlld0JhY2tlbmQg
YXMgYQorICAgICAgICB3cGVfdmlld19iYWNrZW5kIHByb3ZpZGVyLCBzaW5jZSBXUEVCYWNrZW5k
LWZkbyBkb2VzIG5vdCBwcm92aWRlIGEKKyAgICAgICAgZGVmYXVsdCB3cGVfdmlld19iYWNrZW5k
IGltcGxlbWVudGF0aW9uLiBVbml0IHRlc3RzIGNvdmVyaW5nIHRoYXQgYXJlCisgICAgICAgIHJl
bW92ZWQgb3IgYWRqdXN0ZWQgdG8gaW5zdGVhZCB1c2UgYSBtb2NrIHdwZV92aWV3X2JhY2tlbmQg
aW50ZXJmYWNlLgorCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9wb3J0L3dheWxhbmRkcml2
ZXIucHk6CisgICAgICAgIChXYXlsYW5kRHJpdmVyLl9zZXR1cF9lbnZpcm9uX2Zvcl90ZXN0KTog
RXhwb3J0IEVHTF9QTEFURk9STT13YXlsYW5kLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkv
cG9ydC93cGUucHk6IFVzZSBXYXlsYW5kRHJpdmVyIGJ5IGRlZmF1bHQuCisgICAgICAgIChXUEVQ
b3J0Ll9kcml2ZXJfY2xhc3MpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvUGxhdGZvcm1XZWJW
aWV3Lmg6CisgICAgICAgICgpOiBEZWxldGVkLgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0R0xpYi9UZXN0V2ViS2l0V2ViVmlldy5jcHA6CisgICAgICAgICh0ZXN0V2ViVmll
d1dlYkJhY2tlbmQpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvZ2xpYi9XZWJLaXRHTGliL1Rl
c3RNYWluLmg6CisgICAgICAgIChUZXN0OjpjcmVhdGVXZWJWaWV3QmFja2VuZCk6CisgICAgICAg
ICogVGVzdFdlYktpdEFQSS93cGUvUGxhdGZvcm1XZWJWaWV3V1BFLmNwcDoKKyAgICAgICAgKFRl
c3RXZWJLaXRBUEk6OlBsYXRmb3JtV2ViVmlldzo6flBsYXRmb3JtV2ViVmlldyk6CisgICAgICAg
IChUZXN0V2ViS2l0QVBJOjpQbGF0Zm9ybVdlYlZpZXc6OmluaXRpYWxpemUpOgorICAgICAgICAq
IHdwZS9IZWFkbGVzc1ZpZXdCYWNrZW5kL0NNYWtlTGlzdHMudHh0OgorICAgICAgICAqIHdwZS9I
ZWFkbGVzc1ZpZXdCYWNrZW5kL0hlYWRsZXNzVmlld0JhY2tlbmQuY3BwOgorICAgICAgICAoZ2V0
RUdMRGlzcGxheSk6CisgICAgICAgIChIZWFkbGVzc1ZpZXdCYWNrZW5kOjpIZWFkbGVzc1ZpZXdC
YWNrZW5kKToKKyAgICAgICAgKEhlYWRsZXNzVmlld0JhY2tlbmQ6On5IZWFkbGVzc1ZpZXdCYWNr
ZW5kKToKKyAgICAgICAgKEhlYWRsZXNzVmlld0JhY2tlbmQ6OmJhY2tlbmQgY29uc3QpOgorICAg
ICAgICAoSGVhZGxlc3NWaWV3QmFja2VuZDo6Y3JlYXRlU25hcHNob3QpOgorICAgICAgICAoSGVh
ZGxlc3NWaWV3QmFja2VuZDo6cGVyZm9ybVVwZGF0ZSk6CisgICAgICAgIChIZWFkbGVzc1ZpZXdC
YWNrZW5kOjptYWtlQ3VycmVudCk6IERlbGV0ZWQuCisgICAgICAgICogd3BlL0hlYWRsZXNzVmll
d0JhY2tlbmQvSGVhZGxlc3NWaWV3QmFja2VuZC5oOgorICAgICAgICAqIHdwZS9qaGJ1aWxkLm1v
ZHVsZXM6IE1vZHVsZSBuYW1lIGNsZWFudXAuCisKIDIwMTgtMDQtMDUgIFlvdWVubiBGYWJsZXQg
IDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIFRlc3QgZXhwZWN0YXRpb24gdXBkYXRlciBz
aG91bGQgaGFuZGxlIFdpbiBib3QgcmVzdWx0cwpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93
ZWJraXRweS9wb3J0L3dheWxhbmRkcml2ZXIucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Bv
cnQvd2F5bGFuZGRyaXZlci5weQppbmRleCA3MDIzODk1M2YzOGE1MmM4MmY0NDQxYmQwZTA2YTc0
OTA1NGU1NGQwLi5lZjRkMTFmYzE4ODk5MjBlMGIzOTAxMzA5MDNkMmUxMzA3ODE3NWVmIDEwMDY0
NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvd2F5bGFuZGRyaXZlci5weQorKysg
Yi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvd2F5bGFuZGRyaXZlci5weQpAQCAtNDksNiAr
NDksNyBAQCBjbGFzcyBXYXlsYW5kRHJpdmVyKERyaXZlcik6CiAgICAgICAgIHNlbGYuX3BvcnQu
X2NvcHlfdmFsdWVfZnJvbV9lbnZpcm9uX2lmX3NldChkcml2ZXJfZW52aXJvbm1lbnQsICdXQVlM
QU5EX0RJU1BMQVknKQogICAgICAgICBzZWxmLl9wb3J0Ll9jb3B5X3ZhbHVlX2Zyb21fZW52aXJv
bl9pZl9zZXQoZHJpdmVyX2Vudmlyb25tZW50LCAnV0FZTEFORF9TT0NLRVQnKQogICAgICAgICBk
cml2ZXJfZW52aXJvbm1lbnRbJ0dES19CQUNLRU5EJ10gPSAnd2F5bGFuZCcKKyAgICAgICAgZHJp
dmVyX2Vudmlyb25tZW50WydFR0xfUExBVEZPUk0nXSA9ICd3YXlsYW5kJwogICAgICAgICBkcml2
ZXJfZW52aXJvbm1lbnRbJ0xPQ0FMX1JFU09VUkNFX1JPT1QnXSA9IHNlbGYuX3BvcnQubGF5b3V0
X3Rlc3RzX2RpcigpCiAgICAgICAgIGlmIHNlbGYuX2RyaXZlcl90ZW1wZGlyIGlzIG5vdCBOb25l
OgogICAgICAgICAgICAgZHJpdmVyX2Vudmlyb25tZW50WydEVU1QUkVOREVSVFJFRV9URU1QJ10g
PSBzdHIoc2VsZi5fZHJpdmVyX3RlbXBkaXIpCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L3BvcnQvd3BlLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L3dwZS5weQpp
bmRleCAzNWE5NWQ1ODg1Y2UzMmRkOTdkOWJmYWEwYTQxY2UxYTIxMGUxYjk4Li4yMGU0YzNkN2Ri
NTkyMzE5YjRhZGI5ZmY0NTc1Mjc5M2Q4YTY4M2FlIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L3BvcnQvd3BlLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC93
cGUucHkKQEAgLTY2LDkgKzY2LDcgQEAgY2xhc3MgV1BFUG9ydChQb3J0KToKIAogICAgIEBtZW1v
aXplZAogICAgIGRlZiBfZHJpdmVyX2NsYXNzKHNlbGYpOgotICAgICAgICBpZiBzZWxmLl9kaXNw
bGF5X3NlcnZlciA9PSAid2F5bGFuZCI6Ci0gICAgICAgICAgICByZXR1cm4gV2F5bGFuZERyaXZl
cgotICAgICAgICByZXR1cm4gSGVhZGxlc3NEcml2ZXIKKyAgICAgICAgcmV0dXJuIFdheWxhbmRE
cml2ZXIKIAogICAgIGRlZiBzZXR1cF9lbnZpcm9uX2Zvcl9zZXJ2ZXIoc2VsZiwgc2VydmVyX25h
bWU9Tm9uZSk6CiAgICAgICAgIGVudmlyb25tZW50ID0gc3VwZXIoV1BFUG9ydCwgc2VsZikuc2V0
dXBfZW52aXJvbl9mb3Jfc2VydmVyKHNlcnZlcl9uYW1lKQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9QbGF0Zm9ybVdlYlZpZXcuaCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvUGxhdGZv
cm1XZWJWaWV3LmgKaW5kZXggODQ0NWMyMzgzOGFhOTFlYWFlZTJlYzBlZDYzODI4ZWM0Mjg4ZTli
OS4uZmEzYzA1YzZkYzU2NGFhY2Q2MTY0MTI0MmIwZDNjODM5ZDU2ZGFmMyAxMDA2NDQKLS0tIGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9QbGF0Zm9ybVdlYlZpZXcuaAorKysgYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1BsYXRmb3JtV2ViVmlldy5oCkBAIC04OCw5ICs4OCw2IEBAIHByaXZhdGU6CiAKICAg
ICBQbGF0Zm9ybVdLVmlldyBtX3ZpZXc7CiAgICAgUGxhdGZvcm1XaW5kb3cgbV93aW5kb3c7Ci0j
aWYgUExBVEZPUk0oV1BFKQotICAgIHN0cnVjdCB3cGVfdmlld19iYWNrZW5kKiBtX2JhY2tlbmQg
eyBudWxscHRyIH07Ci0jZW5kaWYKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0V2Vi
S2l0V2ViVmlldy5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVz
dFdlYktpdFdlYlZpZXcuY3BwCmluZGV4IDU0MTE0MzRkNGU2NDI3YzFjYjI3YjlhNmY4MTc3Mzk0
MjM4NDEwOTEuLmQzZTliYzM3N2NiMzI0YjE1MmFiNTIyYjk5MmE4NDZmZmE5ZTU0ZjggMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0V2ViS2l0V2Vi
Vmlldy5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rlc3RX
ZWJLaXRXZWJWaWV3LmNwcApAQCAtMTA4LDI2ICsxMDgsMjggQEAgc3RhdGljIHZvaWQgdGVzdFdl
YlZpZXdXZWJDb250ZXh0TGlmZXRpbWUoV2ViVmlld1Rlc3QqIHRlc3QsIGdjb25zdHBvaW50ZXIp
CiAjaWYgUExBVEZPUk0oV1BFKQogc3RhdGljIHZvaWQgdGVzdFdlYlZpZXdXZWJCYWNrZW5kKFRl
c3QqIHRlc3QsIGdjb25zdHBvaW50ZXIpCiB7Ci0gICAgLy8gVXNlIHRoZSBkZWZhdWx0IGJhY2tl
bmQgKHdlIGRvbid0IGhhdmUgYSB3YXkgdG8gY2hlY2sgdGhlIGJhY2tlbmQgd2lsbCBiZSBhY3R1
YWxseSBmcmVlZCkuCi0gICAgR1JlZlB0cjxXZWJLaXRXZWJWaWV3PiB3ZWJWaWV3ID0gYWRvcHRH
UmVmKHdlYmtpdF93ZWJfdmlld19uZXcobnVsbHB0cikpOwotICAgIHRlc3QtPmFzc2VydE9iamVj
dElzRGVsZXRlZFdoZW5UZXN0RmluaXNoZXMoR19PQkpFQ1Qod2ViVmlldy5nZXQoKSkpOwotICAg
IGF1dG8qIHZpZXdCYWNrZW5kID0gd2Via2l0X3dlYl92aWV3X2dldF9iYWNrZW5kKHdlYlZpZXcu
Z2V0KCkpOwotICAgIGdfYXNzZXJ0KHZpZXdCYWNrZW5kKTsKLSAgICBhdXRvKiB3cGVCYWNrZW5k
ID0gd2Via2l0X3dlYl92aWV3X2JhY2tlbmRfZ2V0X3dwZV9iYWNrZW5kKHZpZXdCYWNrZW5kKTsK
LSAgICBnX2Fzc2VydCh3cGVCYWNrZW5kKTsKLSAgICB3ZWJWaWV3ID0gbnVsbHB0cjsKKyAgICBz
dGF0aWMgc3RydWN0IHdwZV92aWV3X2JhY2tlbmRfaW50ZXJmYWNlIHNfdGVzdGluZ0ludGVyZmFj
ZSA9IHsKKyAgICAgICAgLy8gY3JlYXRlCisgICAgICAgIFtdKHZvaWQqLCBzdHJ1Y3Qgd3BlX3Zp
ZXdfYmFja2VuZCopIC0+IHZvaWQqIHsgcmV0dXJuIG51bGxwdHI7IH0sCisgICAgICAgIC8vIGRl
c3Ryb3kKKyAgICAgICAgW10odm9pZCopIHsgfSwKKyAgICAgICAgLy8gaW5pdGlhbGl6ZQorICAg
ICAgICBbXSh2b2lkKikgeyB9LAorICAgICAgICAvLyBnZXRfcmVuZGVyZXJfaG9zdF9mZAorICAg
ICAgICBbXSh2b2lkKikgLT4gaW50IHsgcmV0dXJuIC0xOyB9CisgICAgfTsKIAogICAgIC8vIFVz
ZXIgcHJvdmlkZWQgYmFja2VuZCB3aXRoIGRlZmF1bHQgZGVsZXRlciAod2UgZG9uJ3QgaGF2ZSBh
IHdheSB0byBjaGVjayB0aGUgYmFja2VuZCB3aWxsIGJlIGFjdHVhbGx5IGZyZWVkKS4KLSAgICB3
ZWJWaWV3ID0gYWRvcHRHUmVmKHdlYmtpdF93ZWJfdmlld19uZXcod2Via2l0X3dlYl92aWV3X2Jh
Y2tlbmRfbmV3KHdwZV92aWV3X2JhY2tlbmRfY3JlYXRlKCksIG51bGxwdHIsIG51bGxwdHIpKSk7
CisgICAgR1JlZlB0cjxXZWJLaXRXZWJWaWV3PiB3ZWJWaWV3ID0gYWRvcHRHUmVmKHdlYmtpdF93
ZWJfdmlld19uZXcod2Via2l0X3dlYl92aWV3X2JhY2tlbmRfbmV3KHdwZV92aWV3X2JhY2tlbmRf
Y3JlYXRlX3dpdGhfYmFja2VuZF9pbnRlcmZhY2UoJnNfdGVzdGluZ0ludGVyZmFjZSwgbnVsbHB0
ciksIG51bGxwdHIsIG51bGxwdHIpKSk7CiAgICAgdGVzdC0+YXNzZXJ0T2JqZWN0SXNEZWxldGVk
V2hlblRlc3RGaW5pc2hlcyhHX09CSkVDVCh3ZWJWaWV3LmdldCgpKSk7Ci0gICAgdmlld0JhY2tl
bmQgPSB3ZWJraXRfd2ViX3ZpZXdfZ2V0X2JhY2tlbmQod2ViVmlldy5nZXQoKSk7CisgICAgYXV0
byogdmlld0JhY2tlbmQgPSB3ZWJraXRfd2ViX3ZpZXdfZ2V0X2JhY2tlbmQod2ViVmlldy5nZXQo
KSk7CiAgICAgZ19hc3NlcnQodmlld0JhY2tlbmQpOwotICAgIHdwZUJhY2tlbmQgPSB3ZWJraXRf
d2ViX3ZpZXdfYmFja2VuZF9nZXRfd3BlX2JhY2tlbmQodmlld0JhY2tlbmQpOworICAgIGF1dG8q
IHdwZUJhY2tlbmQgPSB3ZWJraXRfd2ViX3ZpZXdfYmFja2VuZF9nZXRfd3BlX2JhY2tlbmQodmll
d0JhY2tlbmQpOwogICAgIGdfYXNzZXJ0KHdwZUJhY2tlbmQpOwogICAgIHdlYlZpZXcgPSBudWxs
cHRyOwogCiAgICAgLy8gVXNlciBwcm92aWRlZCBiYWNrZW5kIHdpdGggZGVzdHJveSBub3RpZnku
Ci0gICAgd3BlQmFja2VuZCA9IHdwZV92aWV3X2JhY2tlbmRfY3JlYXRlKCk7CisgICAgd3BlQmFj
a2VuZCA9IHdwZV92aWV3X2JhY2tlbmRfY3JlYXRlX3dpdGhfYmFja2VuZF9pbnRlcmZhY2UoJnNf
dGVzdGluZ0ludGVyZmFjZSwgbnVsbHB0cik7CiAgICAgd2ViVmlldyA9IGFkb3B0R1JlZih3ZWJr
aXRfd2ViX3ZpZXdfbmV3KHdlYmtpdF93ZWJfdmlld19iYWNrZW5kX25ldyh3cGVCYWNrZW5kLCBb
XShncG9pbnRlciB1c2VyRGF0YSkgewogICAgICAgICBhdXRvKiBiYWNrZW5kID0gKnN0YXRpY19j
YXN0PHN0cnVjdCB3cGVfdmlld19iYWNrZW5kKio+KHVzZXJEYXRhKTsKICAgICAgICAgd3BlX3Zp
ZXdfYmFja2VuZF9kZXN0cm95KGJhY2tlbmQpOwpAQCAtMTU0LDcgKzE1Niw3IEBAIHN0YXRpYyB2
b2lkIHRlc3RXZWJWaWV3V2ViQmFja2VuZChUZXN0KiB0ZXN0LCBnY29uc3Rwb2ludGVyKQogCiAg
ICAgICAgIHN0cnVjdCB3cGVfdmlld19iYWNrZW5kKiBiYWNrZW5kOwogICAgIH07Ci0gICAgYXV0
byogb3duZXIgPSBuZXcgQmFja2VuZE93bmVyKHdwZV92aWV3X2JhY2tlbmRfY3JlYXRlKCkpOwor
ICAgIGF1dG8qIG93bmVyID0gbmV3IEJhY2tlbmRPd25lcih3cGVfdmlld19iYWNrZW5kX2NyZWF0
ZV93aXRoX2JhY2tlbmRfaW50ZXJmYWNlKCZzX3Rlc3RpbmdJbnRlcmZhY2UsIG51bGxwdHIpKTsK
ICAgICBnX2Fzc2VydChoYXNJbnN0YW5jZSk7CiAgICAgd2ViVmlldyA9IGFkb3B0R1JlZih3ZWJr
aXRfd2ViX3ZpZXdfbmV3KHdlYmtpdF93ZWJfdmlld19iYWNrZW5kX25ldyhvd25lci0+YmFja2Vu
ZCwgW10oZ3BvaW50ZXIgdXNlckRhdGEpIHsKICAgICAgICAgZGVsZXRlIHN0YXRpY19jYXN0PEJh
Y2tlbmRPd25lcio+KHVzZXJEYXRhKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
Z2xpYi9XZWJLaXRHTGliL1Rlc3RNYWluLmggYi9Ub29scy9UZXN0V2ViS2l0QVBJL2dsaWIvV2Vi
S2l0R0xpYi9UZXN0TWFpbi5oCmluZGV4IDJjNzU3OTNiZGZjYTQzNTQ3ODYwOGVlOWVhNzUxNmFh
MGNiN2ZlYTMuLjQ5Y2Y1MDEzMjZkY2Q0MTY1MWMzMjc4ZGVhM2ZmZDJmMWZjNDk5ZGIgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvZ2xpYi9XZWJLaXRHTGliL1Rlc3RNYWluLmgKKysr
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9nbGliL1dlYktpdEdMaWIvVGVzdE1haW4uaApAQCAtMTQz
LDkgKzE0Myw2IEBAIHB1YmxpYzoKICNpZiBQTEFURk9STShXUEUpCiAgICAgc3RhdGljIFdlYktp
dFdlYlZpZXdCYWNrZW5kKiBjcmVhdGVXZWJWaWV3QmFja2VuZCgpCiAgICAgewotICAgICAgICBj
b25zdCBjaGFyKiB1c2VIZWFkbGVzc1ZpZXdCYWNrZW5kID0gZ19nZXRlbnYoIldQRV9VU0VfSEVB
RExFU1NfVklFV19CQUNLRU5EIik7Ci0gICAgICAgIGlmICghdXNlSGVhZGxlc3NWaWV3QmFja2Vu
ZCB8fCAhc3RyY21wKHVzZUhlYWRsZXNzVmlld0JhY2tlbmQsICIwIikpCi0gICAgICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKICAgICAgICAgYXV0byogaGVhZGxlc3NCYWNrZW5kID0gbmV3IEhlYWRs
ZXNzVmlld0JhY2tlbmQ7CiAgICAgICAgIHJldHVybiB3ZWJraXRfd2ViX3ZpZXdfYmFja2VuZF9u
ZXcoaGVhZGxlc3NCYWNrZW5kLT5iYWNrZW5kKCksIFtdKGdwb2ludGVyIHVzZXJEYXRhKSB7CiAg
ICAgICAgICAgICBkZWxldGUgc3RhdGljX2Nhc3Q8SGVhZGxlc3NWaWV3QmFja2VuZCo+KHVzZXJE
YXRhKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvd3BlL1BsYXRmb3JtV2ViVmll
d1dQRS5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL3dwZS9QbGF0Zm9ybVdlYlZpZXdXUEUuY3Bw
CmluZGV4IGQ0OGQ4NzcyODc4MWIzMjFkODY3NWEyMzRmYzQ3ZjM3YjAzNWNhNTUuLjdkODM1OGU4
MTgyNzBlYjU0MjhiN2NkOTU3OGQxZTgxMWFiMGNkNzMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvd3BlL1BsYXRmb3JtV2ViVmlld1dQRS5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS93cGUvUGxhdGZvcm1XZWJWaWV3V1BFLmNwcApAQCAtNjEsMjEgKzYxLDEzIEBAIFBsYXRm
b3JtV2ViVmlldzo6UGxhdGZvcm1XZWJWaWV3KFdLUGFnZVJlZiByZWxhdGVkUGFnZSkKIAogUGxh
dGZvcm1XZWJWaWV3Ojp+UGxhdGZvcm1XZWJWaWV3KCkKIHsKLSAgICBpZiAobV9iYWNrZW5kKQot
ICAgICAgICB3cGVfdmlld19iYWNrZW5kX2Rlc3Ryb3kobV9iYWNrZW5kKTsKLQogICAgIGRlbGV0
ZSBtX3dpbmRvdzsKIH0KIAogdm9pZCBQbGF0Zm9ybVdlYlZpZXc6OmluaXRpYWxpemUoV0tQYWdl
Q29uZmlndXJhdGlvblJlZiBjb25maWd1cmF0aW9uKQogewotICAgIGNvbnN0IGNoYXIqIHVzZUhl
YWRsZXNzVmlld0JhY2tlbmQgPSBnX2dldGVudigiV1BFX1VTRV9IRUFETEVTU19WSUVXX0JBQ0tF
TkQiKTsKLSAgICBpZiAodXNlSGVhZGxlc3NWaWV3QmFja2VuZCAmJiBzdHJjbXAodXNlSGVhZGxl
c3NWaWV3QmFja2VuZCwgIjAiKSkKLSAgICAgICAgbV93aW5kb3cgPSBuZXcgSGVhZGxlc3NWaWV3
QmFja2VuZDsKLSAgICBlbHNlCi0gICAgICAgIG1fYmFja2VuZCA9IHdwZV92aWV3X2JhY2tlbmRf
Y3JlYXRlKCk7Ci0KLSAgICBtX3ZpZXcgPSBXS1ZpZXdDcmVhdGUobV93aW5kb3cgPyBtX3dpbmRv
dy0+YmFja2VuZCgpIDogbV9iYWNrZW5kLCBjb25maWd1cmF0aW9uKTsKKyAgICBtX3dpbmRvdyA9
IG5ldyBIZWFkbGVzc1ZpZXdCYWNrZW5kOworICAgIG1fdmlldyA9IFdLVmlld0NyZWF0ZShtX3dp
bmRvdy0+YmFja2VuZCgpLCBjb25maWd1cmF0aW9uKTsKIH0KIAogV0tQYWdlUmVmIFBsYXRmb3Jt
V2ViVmlldzo6cGFnZSgpIGNvbnN0CmRpZmYgLS1naXQgYS9Ub29scy93cGUvSGVhZGxlc3NWaWV3
QmFja2VuZC9DTWFrZUxpc3RzLnR4dCBiL1Rvb2xzL3dwZS9IZWFkbGVzc1ZpZXdCYWNrZW5kL0NN
YWtlTGlzdHMudHh0CmluZGV4IDcyNGM2ZDljOGU2ZmRlM2MxMjg4MjUwYThkYTc4NDczN2FjYWY4
ZTYuLjRlNGQ2NGMwMjRlNTc4NGIxMGIzYTU1Mzk5YTgwZjlmYzNiMThkNjIgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL3dwZS9IZWFkbGVzc1ZpZXdCYWNrZW5kL0NNYWtlTGlzdHMudHh0CisrKyBiL1Rvb2xz
L3dwZS9IZWFkbGVzc1ZpZXdCYWNrZW5kL0NNYWtlTGlzdHMudHh0CkBAIC0xLDUgKzEsNSBAQAog
ZmluZF9wYWNrYWdlKExpYkdCTSBSRVFVSVJFRCkKLWZpbmRfcGFja2FnZShXUEVCYWNrZW5kLW1l
c2EgUkVRVUlSRUQpCitmaW5kX3BhY2thZ2UoV1BFQmFja2VuZC1mZG8gUkVRVUlSRUQpCiAKIHNl
dChXUEVIZWFkbGVzc1ZpZXdCYWNrZW5kX1NPVVJDRVMKICAgICAke1RPT0xTX0RJUn0vd3BlL0hl
YWRsZXNzVmlld0JhY2tlbmQvSGVhZGxlc3NWaWV3QmFja2VuZC5jcHAKQEAgLTksMTQgKzksMTQg
QEAgc2V0KFdQRUhlYWRsZXNzVmlld0JhY2tlbmRfU1lTVEVNX0lOQ0xVREVfRElSRUNUT1JJRVMK
ICAgICAke0NBSVJPX0lOQ0xVREVfRElSU30KICAgICAke0dMSUJfSU5DTFVERV9ESVJTfQogICAg
ICR7TElCR0JNX0lOQ0xVREVfRElSU30KLSAgICAke1dQRV9NRVNBX0lOQ0xVREVfRElSU30KKyAg
ICAke1dQRUJBQ0tFTkRfRkRPX0lOQ0xVREVfRElSU30KICkKIAogc2V0KFdQRUhlYWRsZXNzVmll
d0JhY2tlbmRfTElCUkFSSUVTCiAgICAgJHtDQUlST19MSUJSQVJJRVN9CiAgICAgJHtHTElCX0xJ
QlJBUklFU30KICAgICAke0xJQkdCTV9MSUJSQVJJRVN9Ci0gICAgJHtXUEVfTUVTQV9MSUJSQVJJ
RVN9CisgICAgJHtXUEVCQUNLRU5EX0ZET19MSUJSQVJJRVN9CiApCiAKIGFkZF9saWJyYXJ5KFdQ
RUhlYWRsZXNzVmlld0JhY2tlbmQgJHtXUEVIZWFkbGVzc1ZpZXdCYWNrZW5kX1NPVVJDRVN9KQpk
aWZmIC0tZ2l0IGEvVG9vbHMvd3BlL0hlYWRsZXNzVmlld0JhY2tlbmQvSGVhZGxlc3NWaWV3QmFj
a2VuZC5jcHAgYi9Ub29scy93cGUvSGVhZGxlc3NWaWV3QmFja2VuZC9IZWFkbGVzc1ZpZXdCYWNr
ZW5kLmNwcAppbmRleCA4MzkxODRjNjU0N2M4ZDVjNTZlZWMwNmQ3ODlmZDhjYzcyMWEyNGQ0Li4z
YmUxMzgxNDJhODRjNjI0OGFkM2VjMzY5MDUwOTQ5Y2U4ZTU5YzBhIDEwMDY0NAotLS0gYS9Ub29s
cy93cGUvSGVhZGxlc3NWaWV3QmFja2VuZC9IZWFkbGVzc1ZpZXdCYWNrZW5kLmNwcAorKysgYi9U
b29scy93cGUvSGVhZGxlc3NWaWV3QmFja2VuZC9IZWFkbGVzc1ZpZXdCYWNrZW5kLmNwcApAQCAt
MjgsNiArMjgsNyBAQAogI2luY2x1ZGUgPGNhc3NlcnQ+CiAjaW5jbHVkZSA8ZmNudGwuaD4KICNp
bmNsdWRlIDx1bmlzdGQuaD4KKyNpbmNsdWRlIDx3cGUtZmRvL2luaXRpYWxpemUtZWdsLmg+CiAK
IC8vIE1hbnVhbGx5IHByb3ZpZGUgdGhlIEVHTF9DQVNUIEMrKyBkZWZpbml0aW9uIGluIGNhc2Ug
ZWdscGxhdGZvcm0uaCBkb2Vzbid0IHByb3ZpZGUgaXQuCiAjaWZuZGVmIEVHTF9DQVNUCkBAIC0z
NywyMCArMzgsMTEgQEAKIC8vIEtlZXAgdGhpcyBpbiBzeW5jIHdpdGggd3RmL2dsaWIvUnVuTG9v
cFNvdXJjZVByaW9yaXR5LmguCiBzdGF0aWMgaW50IGtSdW5Mb29wU291cmNlUHJpb3JpdHlEaXNw
YXRjaGVyID0gLTcwOwogCi0vLyBGSVhNRTogRGVwbG95IGdvb2QgcHJhY3RpY2VzIGFuZCBjbGVh
biB1cCBHQk0gcmVzb3VyY2VzIGF0IHByb2Nlc3MgZXhpdC4KIHN0YXRpYyBFR0xEaXNwbGF5IGdl
dEVHTERpc3BsYXkoKQogewogICAgIHN0YXRpYyBFR0xEaXNwbGF5IHNfZGlzcGxheSA9IEVHTF9O
T19ESVNQTEFZOwogICAgIGlmIChzX2Rpc3BsYXkgPT0gRUdMX05PX0RJU1BMQVkpIHsKLSAgICAg
ICAgaW50IGZkID0gb3BlbigiL2Rldi9kcmkvcmVuZGVyRDEyOCIsIE9fUkRXUiB8IE9fQ0xPRVhF
QyB8IE9fTk9DVFRZIHwgT19OT05CTE9DSyk7Ci0gICAgICAgIGlmIChmZCA8IDApCi0gICAgICAg
ICAgICByZXR1cm4gRUdMX05PX0RJU1BMQVk7Ci0KLSAgICAgICAgc3RydWN0IGdibV9kZXZpY2Uq
IGRldmljZSA9IGdibV9jcmVhdGVfZGV2aWNlKGZkKTsKLSAgICAgICAgaWYgKCFkZXZpY2UpCi0g
ICAgICAgICAgICByZXR1cm4gRUdMX05PX0RJU1BMQVk7Ci0KLSAgICAgICAgRUdMRGlzcGxheSBk
aXNwbGF5ID0gZWdsR2V0RGlzcGxheShkZXZpY2UpOworICAgICAgICBFR0xEaXNwbGF5IGRpc3Bs
YXkgPSBlZ2xHZXREaXNwbGF5KEVHTF9ERUZBVUxUX0RJU1BMQVkpOwogICAgICAgICBpZiAoZGlz
cGxheSA9PSBFR0xfTk9fRElTUExBWSkKICAgICAgICAgICAgIHJldHVybiBFR0xfTk9fRElTUExB
WTsKIApAQCAtNjAsNiArNTIsNyBAQCBzdGF0aWMgRUdMRGlzcGxheSBnZXRFR0xEaXNwbGF5KCkK
ICAgICAgICAgaWYgKCFlZ2xCaW5kQVBJKEVHTF9PUEVOR0xfRVNfQVBJKSkKICAgICAgICAgICAg
IHJldHVybiBFR0xfTk9fRElTUExBWTsKIAorICAgICAgICB3cGVfZmRvX2luaXRpYWxpemVfZm9y
X2VnbF9kaXNwbGF5KGRpc3BsYXkpOwogICAgICAgICBzX2Rpc3BsYXkgPSBkaXNwbGF5OwogICAg
IH0KIApAQCAtOTksOSArOTIsMTAgQEAgSGVhZGxlc3NWaWV3QmFja2VuZDo6SGVhZGxlc3NWaWV3
QmFja2VuZCgpCiAKICAgICBtX2VnbC5jcmVhdGVJbWFnZSA9IHJlaW50ZXJwcmV0X2Nhc3Q8UEZO
RUdMQ1JFQVRFSU1BR0VLSFJQUk9DPihlZ2xHZXRQcm9jQWRkcmVzcygiZWdsQ3JlYXRlSW1hZ2VL
SFIiKSk7CiAgICAgbV9lZ2wuZGVzdHJveUltYWdlID0gcmVpbnRlcnByZXRfY2FzdDxQRk5FR0xE
RVNUUk9ZSU1BR0VLSFJQUk9DPihlZ2xHZXRQcm9jQWRkcmVzcygiZWdsRGVzdHJveUltYWdlS0hS
IikpOworICAgIG1fZWdsLnF1ZXJ5QnVmZmVyID0gcmVpbnRlcnByZXRfY2FzdDxQRk5FR0xRVUVS
WVdBWUxBTkRCVUZGRVJXTD4oZWdsR2V0UHJvY0FkZHJlc3MoImVnbFF1ZXJ5V2F5bGFuZEJ1ZmZl
cldMIikpOwogICAgIG1fZWdsLmltYWdlVGFyZ2V0VGV4dHVyZTJET0VTID0gcmVpbnRlcnByZXRf
Y2FzdDxQRk5HTEVHTElNQUdFVEFSR0VUVEVYVFVSRTJET0VTUFJPQz4oZWdsR2V0UHJvY0FkZHJl
c3MoImdsRUdMSW1hZ2VUYXJnZXRUZXh0dXJlMkRPRVMiKSk7CiAKLSAgICBtX2V4cG9ydGFibGUg
PSB3cGVfbWVzYV92aWV3X2JhY2tlbmRfZXhwb3J0YWJsZV9kbWFfYnVmX2NyZWF0ZSgmc19leHBv
cnRhYmxlQ2xpZW50LCB0aGlzKTsKKyAgICBtX2V4cG9ydGFibGUgPSB3cGVfdmlld19iYWNrZW5k
X2V4cG9ydGFibGVfZmRvX2NyZWF0ZSgmc19leHBvcnRhYmxlQ2xpZW50LCB0aGlzLCA4MDAsIDYw
MCk7CiAKICAgICBtX3VwZGF0ZVNvdXJjZSA9IGdfdGltZW91dF9zb3VyY2VfbmV3KG1fZnJhbWVS
YXRlIC8gMTAwMCk7CiAgICAgZ19zb3VyY2Vfc2V0X2NhbGxiYWNrKG1fdXBkYXRlU291cmNlLApA
QCAtMTE2LDI5ICsxMTAsMjUgQEAgSGVhZGxlc3NWaWV3QmFja2VuZDo6SGVhZGxlc3NWaWV3QmFj
a2VuZCgpCiAKIEhlYWRsZXNzVmlld0JhY2tlbmQ6On5IZWFkbGVzc1ZpZXdCYWNrZW5kKCkKIHsK
LSAgICBpZiAobV91cGRhdGVTb3VyY2UpCisgICAgaWYgKG1fdXBkYXRlU291cmNlKSB7CiAgICAg
ICAgIGdfc291cmNlX2Rlc3Ryb3kobV91cGRhdGVTb3VyY2UpOworICAgICAgICBnX3NvdXJjZV91
bnJlZihtX3VwZGF0ZVNvdXJjZSk7CisgICAgfQogCiAgICAgaWYgKGF1dG8gaW1hZ2UgPSBzdGQ6
OmdldDwwPihtX3BlbmRpbmdJbWFnZS5zZWNvbmQpKQogICAgICAgICBtX2VnbC5kZXN0cm95SW1h
Z2UobV9lZ2wuZGlzcGxheSwgaW1hZ2UpOwogICAgIGlmIChhdXRvIGltYWdlID0gc3RkOjpnZXQ8
MD4obV9sb2NrZWRJbWFnZS5zZWNvbmQpKQogICAgICAgICBtX2VnbC5kZXN0cm95SW1hZ2UobV9l
Z2wuZGlzcGxheSwgaW1hZ2UpOwogCi0gICAgZm9yIChhdXRvIGl0IDogbV9leHBvcnRNYXApIHsK
LSAgICAgICAgaW50IGZkID0gaXQuc2Vjb25kOwotICAgICAgICBpZiAoZmQgPj0gMCkKLSAgICAg
ICAgICAgIGNsb3NlKGZkKTsKLSAgICB9Ci0KICAgICBpZiAobV9lZ2wuY29udGV4dCkKICAgICAg
ICAgZWdsRGVzdHJveUNvbnRleHQobV9lZ2wuZGlzcGxheSwgbV9lZ2wuY29udGV4dCk7CiAKLSAg
ICB3cGVfbWVzYV92aWV3X2JhY2tlbmRfZXhwb3J0YWJsZV9kbWFfYnVmX2Rlc3Ryb3kobV9leHBv
cnRhYmxlKTsKKyAgICB3cGVfdmlld19iYWNrZW5kX2V4cG9ydGFibGVfZmRvX2Rlc3Ryb3kobV9l
eHBvcnRhYmxlKTsKIH0KIAogc3RydWN0IHdwZV92aWV3X2JhY2tlbmQqIEhlYWRsZXNzVmlld0Jh
Y2tlbmQ6OmJhY2tlbmQoKSBjb25zdAogewotICAgIHJldHVybiB3cGVfbWVzYV92aWV3X2JhY2tl
bmRfZXhwb3J0YWJsZV9kbWFfYnVmX2dldF92aWV3X2JhY2tlbmQobV9leHBvcnRhYmxlKTsKKyAg
ICByZXR1cm4gd3BlX3ZpZXdfYmFja2VuZF9leHBvcnRhYmxlX2Zkb19nZXRfdmlld19iYWNrZW5k
KG1fZXhwb3J0YWJsZSk7CiB9CiAKIGNhaXJvX3N1cmZhY2VfdCogSGVhZGxlc3NWaWV3QmFja2Vu
ZDo6Y3JlYXRlU25hcHNob3QoKQpAQCAtMTU1LDcgKzE0NSw4IEBAIGNhaXJvX3N1cmZhY2VfdCog
SGVhZGxlc3NWaWV3QmFja2VuZDo6Y3JlYXRlU25hcHNob3QoKQogICAgIHVpbnQ4X3QqIGJ1ZmZl
ciA9IG5ldyB1aW50OF90WzQgKiB3aWR0aCAqIGhlaWdodF07CiAgICAgYm9vbCBzdWNjZXNzZnVs
U25hcHNob3QgPSBmYWxzZTsKIAotICAgIG1ha2VDdXJyZW50KCk7CisgICAgaWYgKCFlZ2xNYWtl
Q3VycmVudChtX2VnbC5kaXNwbGF5LCBFR0xfTk9fU1VSRkFDRSwgRUdMX05PX1NVUkZBQ0UsIG1f
ZWdsLmNvbnRleHQpKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAgIEdMdWludCBpbWFn
ZVRleHR1cmU7CiAgICAgZ2xHZW5UZXh0dXJlcygxLCAmaW1hZ2VUZXh0dXJlKTsKQEAgLTIwMyw1
NyArMTk0LDQyIEBAIGNhaXJvX3N1cmZhY2VfdCogSGVhZGxlc3NWaWV3QmFja2VuZDo6Y3JlYXRl
U25hcHNob3QoKQogICAgIHJldHVybiBpbWFnZVN1cmZhY2U7CiB9CiAKLWJvb2wgSGVhZGxlc3NW
aWV3QmFja2VuZDo6bWFrZUN1cnJlbnQoKQotewotICAgIHJldHVybiBlZ2xNYWtlQ3VycmVudCht
X2VnbC5kaXNwbGF5LCBFR0xfTk9fU1VSRkFDRSwgRUdMX05PX1NVUkZBQ0UsIG1fZWdsLmNvbnRl
eHQpOwotfQotCiB2b2lkIEhlYWRsZXNzVmlld0JhY2tlbmQ6OnBlcmZvcm1VcGRhdGUoKQogewog
ICAgIGlmICghbV9wZW5kaW5nSW1hZ2UuZmlyc3QpCiAgICAgICAgIHJldHVybjsKIAotICAgIHdw
ZV9tZXNhX3ZpZXdfYmFja2VuZF9leHBvcnRhYmxlX2RtYV9idWZfZGlzcGF0Y2hfZnJhbWVfY29t
cGxldGUobV9leHBvcnRhYmxlKTsKKyAgICB3cGVfdmlld19iYWNrZW5kX2V4cG9ydGFibGVfZmRv
X2Rpc3BhdGNoX2ZyYW1lX2NvbXBsZXRlKG1fZXhwb3J0YWJsZSk7CiAgICAgaWYgKG1fbG9ja2Vk
SW1hZ2UuZmlyc3QpIHsKLSAgICAgICAgd3BlX21lc2Ffdmlld19iYWNrZW5kX2V4cG9ydGFibGVf
ZG1hX2J1Zl9kaXNwYXRjaF9yZWxlYXNlX2J1ZmZlcihtX2V4cG9ydGFibGUsIG1fbG9ja2VkSW1h
Z2UuZmlyc3QpOworICAgICAgICB3cGVfdmlld19iYWNrZW5kX2V4cG9ydGFibGVfZmRvX2Rpc3Bh
dGNoX3JlbGVhc2VfYnVmZmVyKG1fZXhwb3J0YWJsZSwgbV9sb2NrZWRJbWFnZS5maXJzdCk7CiAg
ICAgICAgIG1fZWdsLmRlc3Ryb3lJbWFnZShtX2VnbC5kaXNwbGF5LCBzdGQ6OmdldDwwPihtX2xv
Y2tlZEltYWdlLnNlY29uZCkpOwogICAgIH0KIAogICAgIG1fbG9ja2VkSW1hZ2UgPSBtX3BlbmRp
bmdJbWFnZTsKLSAgICBtX3BlbmRpbmdJbWFnZSA9IHN0ZDo6cGFpcjx1aW50MzJfdCwgc3RkOjp0
dXBsZTxFR0xJbWFnZUtIUiwgdWludDMyX3QsIHVpbnQzMl90Pj4geyB9OworICAgIG1fcGVuZGlu
Z0ltYWdlID0gc3RkOjpwYWlyPHN0cnVjdCB3bF9yZXNvdXJjZSosIHN0ZDo6dHVwbGU8RUdMSW1h
Z2VLSFIsIHVpbnQzMl90LCB1aW50MzJfdD4+IHsgfTsKIH0KIAotc3RydWN0IHdwZV9tZXNhX3Zp
ZXdfYmFja2VuZF9leHBvcnRhYmxlX2RtYV9idWZfY2xpZW50IEhlYWRsZXNzVmlld0JhY2tlbmQ6
OnNfZXhwb3J0YWJsZUNsaWVudCA9IHsKLSAgICAvLyBleHBvcnRfZG1hX2J1ZgotICAgIFtdKHZv
aWQqIGRhdGEsIHN0cnVjdCB3cGVfbWVzYV92aWV3X2JhY2tlbmRfZXhwb3J0YWJsZV9kbWFfYnVm
X2RhdGEqIGltYWdlRGF0YSkKK3N0cnVjdCB3cGVfdmlld19iYWNrZW5kX2V4cG9ydGFibGVfZmRv
X2NsaWVudCBIZWFkbGVzc1ZpZXdCYWNrZW5kOjpzX2V4cG9ydGFibGVDbGllbnQgPSB7CisgICAg
Ly8gZXhwb3J0X2J1ZmZlcl9yZXNvdXJjZQorICAgIFtdKHZvaWQqIGRhdGEsIHN0cnVjdCB3bF9y
ZXNvdXJjZSogYnVmZmVyUmVzb3VyY2UpCiAgICAgewogICAgICAgICBhdXRvJiBiYWNrZW5kID0g
KnN0YXRpY19jYXN0PEhlYWRsZXNzVmlld0JhY2tlbmQqPihkYXRhKTsKKyAgICAgICAgaWYgKGJh
Y2tlbmQubV9wZW5kaW5nSW1hZ2UuZmlyc3QpCisgICAgICAgICAgICBzdGQ6OmFib3J0KCk7CisK
KyAgICAgICAgYXV0byYgZWdsID0gYmFja2VuZC5tX2VnbDsKKworICAgICAgICBFR0xpbnQgZm9y
bWF0ID0gMDsKKyAgICAgICAgaWYgKCFlZ2wucXVlcnlCdWZmZXIoZWdsLmRpc3BsYXksIGJ1ZmZl
clJlc291cmNlLCBFR0xfVEVYVFVSRV9GT1JNQVQsICZmb3JtYXQpIHx8IGZvcm1hdCAhPSBFR0xf
VEVYVFVSRV9SR0JBKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIEVHTGludCB3aWR0
aCwgaGVpZ2h0OworICAgICAgICBpZiAoIWVnbC5xdWVyeUJ1ZmZlcihlZ2wuZGlzcGxheSwgYnVm
ZmVyUmVzb3VyY2UsIEVHTF9XSURUSCwgJndpZHRoKQorICAgICAgICAgICAgfHwgIWVnbC5xdWVy
eUJ1ZmZlcihlZ2wuZGlzcGxheSwgYnVmZmVyUmVzb3VyY2UsIEVHTF9IRUlHSFQsICZoZWlnaHQp
KQorICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgIGF1dG8gaXQgPSBiYWNrZW5kLm1fZXhw
b3J0TWFwLmVuZCgpOwotICAgICAgICBpZiAoaW1hZ2VEYXRhLT5mZCA+PSAwKSB7Ci0gICAgICAg
ICAgICBhc3NlcnQoYmFja2VuZC5tX2V4cG9ydE1hcC5maW5kKGltYWdlRGF0YS0+aGFuZGxlKSA9
PSBiYWNrZW5kLm1fZXhwb3J0TWFwLmVuZCgpKTsKLQotICAgICAgICAgICAgaXQgPSBiYWNrZW5k
Lm1fZXhwb3J0TWFwLmluc2VydCh7IGltYWdlRGF0YS0+aGFuZGxlLCBpbWFnZURhdGEtPmZkIH0p
LmZpcnN0OwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgYXNzZXJ0KGJhY2tlbmQubV9l
eHBvcnRNYXAuZmluZChpbWFnZURhdGEtPmhhbmRsZSkgIT0gYmFja2VuZC5tX2V4cG9ydE1hcC5l
bmQoKSk7Ci0gICAgICAgICAgICBpdCA9IGJhY2tlbmQubV9leHBvcnRNYXAuZmluZChpbWFnZURh
dGEtPmhhbmRsZSk7Ci0gICAgICAgIH0KLQotICAgICAgICBhc3NlcnQoaXQgIT0gYmFja2VuZC5t
X2V4cG9ydE1hcC5lbmQoKSk7Ci0gICAgICAgIGludDMyX3QgZmQgPSBpdC0+c2Vjb25kOwotCi0g
ICAgICAgIGJhY2tlbmQubWFrZUN1cnJlbnQoKTsKLQotICAgICAgICBFR0xpbnQgYXR0cmlidXRl
c1tdID0gewotICAgICAgICAgICAgRUdMX1dJRFRILCBzdGF0aWNfY2FzdDxFR0xpbnQ+KGltYWdl
RGF0YS0+d2lkdGgpLAotICAgICAgICAgICAgRUdMX0hFSUdIVCwgc3RhdGljX2Nhc3Q8RUdMaW50
PihpbWFnZURhdGEtPmhlaWdodCksCi0gICAgICAgICAgICBFR0xfTElOVVhfRFJNX0ZPVVJDQ19F
WFQsIHN0YXRpY19jYXN0PEVHTGludD4oaW1hZ2VEYXRhLT5mb3JtYXQpLAotICAgICAgICAgICAg
RUdMX0RNQV9CVUZfUExBTkUwX0ZEX0VYVCwgZmQsCi0gICAgICAgICAgICBFR0xfRE1BX0JVRl9Q
TEFORTBfT0ZGU0VUX0VYVCwgMCwKLSAgICAgICAgICAgIEVHTF9ETUFfQlVGX1BMQU5FMF9QSVRD
SF9FWFQsIHN0YXRpY19jYXN0PEVHTGludD4oaW1hZ2VEYXRhLT5zdHJpZGUpLAotICAgICAgICAg
ICAgRUdMX05PTkUsCi0gICAgICAgIH07Ci0gICAgICAgIEVHTEltYWdlS0hSIGltYWdlID0gYmFj
a2VuZC5tX2VnbC5jcmVhdGVJbWFnZShiYWNrZW5kLm1fZWdsLmRpc3BsYXksIEVHTF9OT19DT05U
RVhULCBFR0xfTElOVVhfRE1BX0JVRl9FWFQsIG51bGxwdHIsIGF0dHJpYnV0ZXMpOwotICAgICAg
ICBiYWNrZW5kLm1fcGVuZGluZ0ltYWdlID0geyBpbWFnZURhdGEtPmhhbmRsZSwgc3RkOjptYWtl
X3R1cGxlKGltYWdlLCBpbWFnZURhdGEtPndpZHRoLCBpbWFnZURhdGEtPmhlaWdodCkgfTsKKyAg
ICAgICAgRUdMaW50IGF0dHJpYnV0ZXNbXSA9IHsgRUdMX1dBWUxBTkRfUExBTkVfV0wsIDAsIEVH
TF9OT05FIH07CisgICAgICAgIEVHTEltYWdlS0hSIGltYWdlID0gZWdsLmNyZWF0ZUltYWdlKGVn
bC5kaXNwbGF5LCBFR0xfTk9fQ09OVEVYVCwgRUdMX1dBWUxBTkRfQlVGRkVSX1dMLCBidWZmZXJS
ZXNvdXJjZSwgYXR0cmlidXRlcyk7CisgICAgICAgIGJhY2tlbmQubV9wZW5kaW5nSW1hZ2UgPSB7
IGJ1ZmZlclJlc291cmNlLCBzdGQ6Om1ha2VfdHVwbGUoaW1hZ2UsIHdpZHRoLCBoZWlnaHQpIH07
CiAgICAgfSwKIH07CmRpZmYgLS1naXQgYS9Ub29scy93cGUvSGVhZGxlc3NWaWV3QmFja2VuZC9I
ZWFkbGVzc1ZpZXdCYWNrZW5kLmggYi9Ub29scy93cGUvSGVhZGxlc3NWaWV3QmFja2VuZC9IZWFk
bGVzc1ZpZXdCYWNrZW5kLmgKaW5kZXggYTFiZTQ4OTZjN2M5NTk5Yzk1NzRhZmVhY2FhYzAzZmQ5
ZTljNjc4MS4uYjU2MTBiN2Y1OTdjMjkyZjZkYzlkNDdhZjk4YmVmZjgwMDYwYTZkNCAxMDA2NDQK
LS0tIGEvVG9vbHMvd3BlL0hlYWRsZXNzVmlld0JhY2tlbmQvSGVhZGxlc3NWaWV3QmFja2VuZC5o
CisrKyBiL1Rvb2xzL3dwZS9IZWFkbGVzc1ZpZXdCYWNrZW5kL0hlYWRsZXNzVmlld0JhY2tlbmQu
aApAQCAtMzIsNyArMzIsMTUgQEAKICNpbmNsdWRlIDxjYWlyby5oPgogI2luY2x1ZGUgPGdsaWIu
aD4KICNpbmNsdWRlIDx1bm9yZGVyZWRfbWFwPgotI2luY2x1ZGUgPHdwZS1tZXNhL3ZpZXctYmFj
a2VuZC1leHBvcnRhYmxlLWRtYS1idWYuaD4KKyNpbmNsdWRlIDx3cGUtZmRvL3ZpZXctYmFja2Vu
ZC1leHBvcnRhYmxlLmg+CisKKyNpZm5kZWYgRUdMX1dMX2JpbmRfd2F5bGFuZF9kaXNwbGF5Cisj
ZGVmaW5lIEVHTF9XTF9iaW5kX3dheWxhbmRfZGlzcGxheSAxCit0eXBlZGVmIEVHTEJvb2xlYW4g
KEVHTEFQSUVOVFJZUCBQRk5FR0xRVUVSWVdBWUxBTkRCVUZGRVJXTCkgKEVHTERpc3BsYXkgZHB5
LCBzdHJ1Y3Qgd2xfcmVzb3VyY2UgKmJ1ZmZlciwgRUdMaW50IGF0dHJpYnV0ZSwgRUdMaW50ICp2
YWx1ZSk7CisKKyNkZWZpbmUgRUdMX1dBWUxBTkRfQlVGRkVSX1dMICAgICAgIDB4MzFENSAvKiBl
Z2xDcmVhdGVJbWFnZUtIUiB0YXJnZXQgKi8KKyNkZWZpbmUgRUdMX1dBWUxBTkRfUExBTkVfV0wg
ICAgICAgIDB4MzFENiAvKiBlZ2xDcmVhdGVJbWFnZUtIUiB0YXJnZXQgKi8KKyNlbmRpZgogCiBj
bGFzcyBIZWFkbGVzc1ZpZXdCYWNrZW5kIHsKIHB1YmxpYzoKQEAgLTQ0LDI2ICs1MiwyNSBAQCBw
dWJsaWM6CiAgICAgY2Fpcm9fc3VyZmFjZV90KiBjcmVhdGVTbmFwc2hvdCgpOwogCiBwcml2YXRl
OgotICAgIGJvb2wgbWFrZUN1cnJlbnQoKTsKICAgICB2b2lkIHBlcmZvcm1VcGRhdGUoKTsKIAot
ICAgIHN0YXRpYyBzdHJ1Y3Qgd3BlX21lc2Ffdmlld19iYWNrZW5kX2V4cG9ydGFibGVfZG1hX2J1
Zl9jbGllbnQgc19leHBvcnRhYmxlQ2xpZW50OworICAgIHN0YXRpYyBzdHJ1Y3Qgd3BlX3ZpZXdf
YmFja2VuZF9leHBvcnRhYmxlX2Zkb19jbGllbnQgc19leHBvcnRhYmxlQ2xpZW50OwogCiAgICAg
c3RydWN0IHsKICAgICAgICAgRUdMRGlzcGxheSBkaXNwbGF5OwogICAgICAgICBFR0xDb25maWcg
Y29uZmlnOwotICAgICAgICBFR0xDb250ZXh0IGNvbnRleHQ7CisgICAgICAgIEVHTENvbnRleHQg
Y29udGV4dCB7IG51bGxwdHIgfTsKIAogICAgICAgICBQRk5FR0xDUkVBVEVJTUFHRUtIUlBST0Mg
Y3JlYXRlSW1hZ2U7CiAgICAgICAgIFBGTkVHTERFU1RST1lJTUFHRUtIUlBST0MgZGVzdHJveUlt
YWdlOworICAgICAgICBQRk5FR0xRVUVSWVdBWUxBTkRCVUZGRVJXTCBxdWVyeUJ1ZmZlcjsKICAg
ICAgICAgUEZOR0xFR0xJTUFHRVRBUkdFVFRFWFRVUkUyRE9FU1BST0MgaW1hZ2VUYXJnZXRUZXh0
dXJlMkRPRVM7CiAgICAgfSBtX2VnbDsKIAotICAgIHN0cnVjdCB3cGVfbWVzYV92aWV3X2JhY2tl
bmRfZXhwb3J0YWJsZV9kbWFfYnVmKiBtX2V4cG9ydGFibGU7CisgICAgc3RydWN0IHdwZV92aWV3
X2JhY2tlbmRfZXhwb3J0YWJsZV9mZG8qIG1fZXhwb3J0YWJsZTsKIAotICAgIHN0ZDo6dW5vcmRl
cmVkX21hcDx1aW50MzJfdCwgaW50MzJfdD4gbV9leHBvcnRNYXA7Ci0gICAgc3RkOjpwYWlyPHVp
bnQzMl90LCBzdGQ6OnR1cGxlPEVHTEltYWdlS0hSLCB1aW50MzJfdCwgdWludDMyX3Q+PiBtX3Bl
bmRpbmdJbWFnZSB7IH07Ci0gICAgc3RkOjpwYWlyPHVpbnQzMl90LCBzdGQ6OnR1cGxlPEVHTElt
YWdlS0hSLCB1aW50MzJfdCwgdWludDMyX3Q+PiBtX2xvY2tlZEltYWdlIHsgfTsKKyAgICBzdGQ6
OnBhaXI8c3RydWN0IHdsX3Jlc291cmNlKiwgc3RkOjp0dXBsZTxFR0xJbWFnZUtIUiwgdWludDMy
X3QsIHVpbnQzMl90Pj4gbV9wZW5kaW5nSW1hZ2UgeyB9OworICAgIHN0ZDo6cGFpcjxzdHJ1Y3Qg
d2xfcmVzb3VyY2UqLCBzdGQ6OnR1cGxlPEVHTEltYWdlS0hSLCB1aW50MzJfdCwgdWludDMyX3Q+
PiBtX2xvY2tlZEltYWdlIHsgfTsKIAogICAgIEdTb3VyY2UqIG1fdXBkYXRlU291cmNlOwogICAg
IGdpbnQ2NCBtX2ZyYW1lUmF0ZSB7IEdfVVNFQ19QRVJfU0VDIC8gNjAgfTsKZGlmZiAtLWdpdCBh
L1Rvb2xzL3dwZS9qaGJ1aWxkLm1vZHVsZXMgYi9Ub29scy93cGUvamhidWlsZC5tb2R1bGVzCmlu
ZGV4IDBmOGJmZWEzN2RjNDEyODBhNjgwNWVjOTY1YjVlNGIxMjZmNzBjMzcuLjk2YWMwMzk1Zjhi
ZmNmY2EyMThkMmYyODEzNTQ0MGMwYjRkOGNhNGQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL3dwZS9qaGJ1
aWxkLm1vZHVsZXMKKysrIGIvVG9vbHMvd3BlL2poYnVpbGQubW9kdWxlcwpAQCAtMTksOCArMTks
OCBAQAogICAgICAgPGRlcCBwYWNrYWdlPSJ4a2Jjb21tb24iLz4KICAgICAgIDxkZXAgcGFja2Fn
ZT0id2Via2l0LWdzdHJlYW1lci10ZXN0aW5nLWRlcGVuZGVuY2llcyIvPgogICAgICAgPGRlcCBw
YWNrYWdlPSJ3b2ZmMiIvPgotICAgICAgPGRlcCBwYWNrYWdlPSJ3cGUiLz4KLSAgICAgIDxkZXAg
cGFja2FnZT0id3BlLW1lc2EiLz4KKyAgICAgIDxkZXAgcGFja2FnZT0id3BlYmFja2VuZCIvPgor
ICAgICAgPGRlcCBwYWNrYWdlPSJ3cGViYWNrZW5kLWZkbyIvPgogICAgICAgPGRlcCBwYWNrYWdl
PSJsaWJncGctZXJyb3IiLz4KICAgICAgIDxkZXAgcGFja2FnZT0ibGliZ2NyeXB0Ii8+CiAgICAg
ICA8ZGVwIHBhY2thZ2U9ImxpYmVwb3h5Ii8+CkBAIC0xNzIsMTkgKzE3MiwxOSBAQAogICAgICAg
ICAgICAgaGFzaD0ic2hhMTo3MTI3OTkzYmZiNjllMTNjZGZmMjVmYjhiM2M4ZjI2Y2U2YmU1YmZh
Ii8+CiAgIDwvYXV0b3Rvb2xzPgogCi0gIDxjbWFrZSBpZD0id3BlIj4KKyAgPGNtYWtlIGlkPSJ3
cGViYWNrZW5kIj4KICAgICA8YnJhbmNoIHJlcG89ImdpdGh1Yi5jb20iIG1vZHVsZT0iV2ViUGxh
dGZvcm1Gb3JFbWJlZGRlZC9XUEVCYWNrZW5kLmdpdCIKICAgICAgICAgICAgIHRhZz0iMzAxM2Zh
YWViYWI0MmU3ZWY3NDk3YjM4NTBhMjkwMjk3OGViM2Q2ZiIgLz4KICAgPC9jbWFrZT4KIAotICA8
Y21ha2UgaWQ9IndwZS1tZXNhIj4KKyAgPGNtYWtlIGlkPSJ3cGViYWNrZW5kLWZkbyI+CiAgICAg
PGRlcGVuZGVuY2llcz4KLSAgICAgIDxkZXAgcGFja2FnZT0id3BlIiAvPgotICAgICAgPGRlcCBw
YWNrYWdlPSJnbGliIiAvPgotICAgICAgPGRlcCBwYWNrYWdlPSJ4a2Jjb21tb24iIC8+CisgICAg
ICA8ZGVwIHBhY2thZ2U9IndwZWJhY2tlbmQiLz4KKyAgICAgIDxkZXAgcGFja2FnZT0iZ2xpYiIv
PgorICAgICAgPGRlcCBwYWNrYWdlPSJ4a2Jjb21tb24iLz4KICAgICA8L2RlcGVuZGVuY2llcz4K
LSAgICA8YnJhbmNoIHJlcG89ImdpdGh1Yi5jb20iIG1vZHVsZT0iV2ViUGxhdGZvcm1Gb3JFbWJl
ZGRlZC9XUEVCYWNrZW5kLW1lc2EuZ2l0IgotICAgICAgICAgICAgdGFnPSI4ZTE1OTgzMmRjNTUx
NjQ3NThmNjhmYWQwMmY1MmU2YWQ3YzcwNjQyIiAvPgorICAgIDxicmFuY2ggcmVwbz0iZ2l0aHVi
LmNvbSIgbW9kdWxlPSJJZ2FsaWEvV1BFQmFja2VuZC1mZG8uZ2l0IgorICAgICAgICAgICAgdGFn
PSIwNjRjNjA4MDY0MjJmZjFiYjMyY2VmN2ZiMWRlNjg5MjNhZWNiYTgyIi8+CiAgIDwvY21ha2U+
CiAKICAgPGF1dG90b29scyBpZD0ibGliZ3BnLWVycm9yIiBhdXRvZ2VuLXNoPSJjb25maWd1cmUi
PgpAQCAtMjEzLDcgKzIxMyw3IEBACiAgIDwvYXV0b3Rvb2xzPgogCiAgIDxhdXRvdG9vbHMgaWQ9
ImR5eiIgc3VwcG9ydHMtbm9uLXNyY2Rpci1idWlsZHM9Im5vIj4KLSAgICA8YnJhbmNoIHJlcG89
ImdpdGh1Yi5jb20iIG1vZHVsZT0iSWdhbGlhL2R5eiIgdGFnPSIyMDNhMWViZDE0ODFlNDRhYTgx
MDVlODYyYzAyZjMxN2U2NjUzNjI3Ii8+CisgICAgPGJyYW5jaCByZXBvPSJnaXRodWIuY29tIiBt
b2R1bGU9IklnYWxpYS9keXoiIHRhZz0iYTU3ODRlMTZiOWI2MGM4NWI2YmY3ODkwOGZhYTBlZDBh
MmNlMDQ3MyIvPgogICA8L2F1dG90b29scz4KIAogICA8bWVzb24gaWQ9ImdyYXBoZW5lIj4KZGlm
ZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCAyYjBmMDFmMzZlMjlkNWU4Mjg5
YmI4NTliNDU0YmI3NWJmODU0MTFlLi4wMzBhNzdjOTE1NjM3MjFjZGM1YWY4MTVmOGJlODM2ZjFm
MzE5MTFkIDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTIgQEAKKzIwMTgtMDQtMDYgIFphbiBEb2JlcnNlayAgPHpkb2JlcnNla0BpZ2FsaWEuY29tPgor
CisgICAgICAgIFtXUEVdIFN3aXRjaCB0ZXN0aW5nIHByb2Nlc3MgdG8gdXNpbmcgV1BFQmFja2Vu
ZC1mZG8KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4
NDM1NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
U291cmNlL2NtYWtlL0ZpbmRXUEVCYWNrZW5kLWZkby5jbWFrZTogUmVuYW1lZCBmcm9tIFNvdXJj
ZS9jbWFrZS9GaW5kV1BFQmFja2VuZC1tZXNhLmNtYWtlLgorCiAyMDE4LTA0LTAyICBQZXIgQXJu
ZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW1vdmUgcmVmZXJlbmNl
cyB0byBpbnRlcm5hbCB2ZXJzaW9uIG9mIFdlYktpdFF1YXJ0ekNvcmVBZGRpdGlvbnMgaW4gQ01h
a2UgZmlsZXMuCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>337685</attachid>
            <date>2018-04-11 00:41:30 -0700</date>
            <delta_ts>2018-04-11 23:50:52 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-184357-20180411094129.patch</filename>
            <type>text/plain</type>
            <size>28443</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMwNTE1CmRpZmYgLS1naXQgYS9Tb3VyY2UvY21ha2UvRmlu
ZFdQRUJhY2tlbmQtZmRvLmNtYWtlIGIvU291cmNlL2NtYWtlL0ZpbmRXUEVCYWNrZW5kLWZkby5j
bWFrZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi45NzlkZWI0ZTNhM2IxZTdiOWJiNTA0ZTQyOTg5MGY1MmNjNjI5MWFh
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL2NtYWtlL0ZpbmRXUEVCYWNrZW5kLWZkby5jbWFr
ZQpAQCAtMCwwICsxLDQ3IEBACisjIC0gVHJ5IHRvIGZpbmQgV1BFQmFja2VuZC1mZG8uCisjIE9u
Y2UgZG9uZSwgdGhpcyB3aWxsIGRlZmluZQorIworIyAgV1BFQkFDS0VORF9GRE9fRk9VTkQgLSBz
eXN0ZW0gaGFzIFdQRUJhY2tlbmQtZmRvLgorIyAgV1BFQkFDS0VORF9GRE9fSU5DTFVERV9ESVJT
IC0gdGhlIFdQRUJhY2tlbmQtZmRvIGluY2x1ZGUgZGlyZWN0b3JpZXMKKyMgIFdQRUJBQ0tFTkRf
RkRPX0xJQlJBUklFUyAtIGxpbmsgdGhlc2UgdG8gdXNlIFdQRUJhY2tlbmQtZmRvLgorIworIyBD
b3B5cmlnaHQgKEMpIDIwMTYgSWdhbGlhIFMuTC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworIyBhcmUgbWV0OgorIyAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisj
ICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisjICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMKKyMgSVMnJyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyMgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorIyBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUiBPUiBJVFMK
KyMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsCisjIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyMgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7CisjIE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLAorIyBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUgorIyBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGCisjIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCitmaW5kX3BhY2thZ2UoUGtn
Q29uZmlnKQorcGtnX2NoZWNrX21vZHVsZXMoUENfV1BFQkFDS0VORF9GRE8gUVVJRVQgd3BlYmFj
a2VuZC1mZG8pCisKK2ZpbmRfcGF0aChXUEVCQUNLRU5EX0ZET19JTkNMVURFX0RJUlMKKyAgICBO
QU1FUyB3cGUtZmRvL2luaXRpYWxpemUtZWdsLmgKKyAgICBISU5UUyAke1BDX1dQRUJBQ0tFTkRf
RkRPX0lOQ0xVREVESVJ9ICR7UENfV1BFQkFDS0VORF9GRE9fSU5DTFVERV9ESVJTfQorKQorCitm
aW5kX2xpYnJhcnkoV1BFQkFDS0VORF9GRE9fTElCUkFSSUVTCisgICAgTkFNRVMgV1BFQmFja2Vu
ZC1mZG8KKyAgICBISU5UUyAke1BDX1dQRUJBQ0tFTkRfRkRPX0xJQkRJUn0gJHtQQ19XUEVCQUNL
RU5EX0ZET19MSUJSQVJZX0RJUlN9CispCisKK21hcmtfYXNfYWR2YW5jZWQoV1BFQkFDS0VORF9G
RE9fSU5DTFVERV9ESVJTIFdQRUJBQ0tFTkRfRkRPX0xJQlJBUklFUykKKworaW5jbHVkZShGaW5k
UGFja2FnZUhhbmRsZVN0YW5kYXJkQXJncykKK2ZpbmRfcGFja2FnZV9oYW5kbGVfc3RhbmRhcmRf
YXJncyhXUEVCYWNrZW5kLWZkbyBSRVFVSVJFRF9WQVJTIFdQRUJBQ0tFTkRfRkRPX0lOQ0xVREVf
RElSUyBXUEVCQUNLRU5EX0ZET19MSUJSQVJJRVMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvY21ha2Uv
RmluZFdQRUJhY2tlbmQtbWVzYS5jbWFrZSBiL1NvdXJjZS9jbWFrZS9GaW5kV1BFQmFja2VuZC1t
ZXNhLmNtYWtlCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1MmY3ZThkMmZjYjdhZTM3
YTdiNDIxMDYxNzQzM2RlODMwYWE5MjkwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9jbWFrZS9GaW5kV1BFQmFja2VuZC1tZXNhLmNtYWtlCisr
KyAvZGV2L251bGwKQEAgLTEsNDcgKzAsMCBAQAotIyAtIFRyeSB0byBmaW5kIFdQRS1tZXNhLgot
IyBPbmNlIGRvbmUsIHRoaXMgd2lsbCBkZWZpbmUKLSMKLSMgIFdQRV9NRVNBX0ZPVU5EIC0gc3lz
dGVtIGhhcyBXUEUtbWVzYS4KLSMgIFdQRV9NRVNBX0lOQ0xVREVfRElSUyAtIHRoZSBXUEUtbWVz
YSBpbmNsdWRlIGRpcmVjdG9yaWVzCi0jICBXUEVfTUVTQV9MSUJSQVJJRVMgLSBsaW5rIHRoZXNl
IHRvIHVzZSBXUEUtbWVzYS4KLSMKLSMgQ29weXJpZ2h0IChDKSAyMDE2IElnYWxpYSBTLkwuCi0j
Ci0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSMgYXJlIG1ldDoKLSMgMS4gIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jICAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCi0jIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotIyAgICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERF
UiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTCi0jIElTJycgQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0jIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKLSMgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhF
IENPUFlSSUdIVCBIT0xERVIgT1IgSVRTCi0jIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotIyBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0j
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOwotIyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwKLSMgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IK
LSMgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRgotIyBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KLQotZmluZF9wYWNrYWdlKFBrZ0NvbmZpZykKLXBrZ19jaGVja19tb2R1bGVzKFBDX1dQ
RV9NRVNBIFFVSUVUIHdwZS1tZXNhKQotCi1maW5kX3BhdGgoV1BFX01FU0FfSU5DTFVERV9ESVJT
Ci0gICAgTkFNRVMgd3BlLW1lc2Evdmlldy1iYWNrZW5kLWV4cG9ydGFibGUtZG1hLWJ1Zi5oCi0g
ICAgSElOVFMgJHtQQ19XUEVfTUVTQV9JTkNMVURFRElSfSAke1BDX1dQRV9NRVNBX0lOQ0xVREVf
RElSU30KLSkKLQotZmluZF9saWJyYXJ5KFdQRV9NRVNBX0xJQlJBUklFUwotICAgIE5BTUVTIFdQ
RUJhY2tlbmQtbWVzYQotICAgIEhJTlRTICR7UENfV1BFX01FU0FfTElCRElSfSAke1BDX1dQRV9N
RVNBX0xJQlJBUllfRElSU30KLSkKLQotbWFya19hc19hZHZhbmNlZChXUEVfTUVTQV9JTkNMVURF
X0RJUlMgV1BFX01FU0FfTElCUkFSSUVTKQotCi1pbmNsdWRlKEZpbmRQYWNrYWdlSGFuZGxlU3Rh
bmRhcmRBcmdzKQotZmluZF9wYWNrYWdlX2hhbmRsZV9zdGFuZGFyZF9hcmdzKFdQRUJhY2tlbmQt
bWVzYSBSRVFVSVJFRF9WQVJTIFdQRV9NRVNBX0lOQ0xVREVfRElSUyBXUEVfTUVTQV9MSUJSQVJJ
RVMpCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXgg
ZmZjMTI1MGE0N2RiNGY1ZDA2NGUyZjJlMzgwZGJlNzU4NGRjYzRlNi4uYmI3YjcxYmUyNWQ1MTQ4
ZmY2YmYzZGQ3OTI1MzQ2ZjE1ZjNiODdiYSAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisr
KyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUwIEBACisyMDE4LTA0LTExICBaYW4gRG9i
ZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KKworICAgICAgICBbV1BFXSBTd2l0Y2ggdGVz
dGluZyBwcm9jZXNzIHRvIHVzaW5nIFdQRUJhY2tlbmQtZmRvCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODQzNTcKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTd2l0Y2ggV1BFIHRlc3RpbmcgdG8gdXNpbmcg
dGhlIFdQRUJhY2tlbmQtZmRvIGltcGxlbWVudGF0aW9uIHRoYXQKKyAgICAgICAgZGVwZW5kcyBv
biB0aGUgV0xfYmluZF93YXlsYW5kX2Rpc3BsYXkgRUdMIGV4dGVuc2lvbiwgYXMgZGVmaW5lZCB1
bmRlcgorICAgICAgICB0aGUgZnJlZWRlc2t0b3Aub3JnIHByb2plY3QuCisgICAgICAgIGh0dHBz
Oi8vY2dpdC5mcmVlZGVza3RvcC5vcmcvbWVzYS9tZXNhL3RyZWUvZG9jcy9zcGVjcy9XTF9iaW5k
X3dheWxhbmRfZGlzcGxheS5zcGVjCisKKyAgICAgICAgSGVhZGxlc3NWaWV3QmFja2VuZCBpcyBy
ZWZhY3RvcmVkIHRvIHVzZSB0aGUgV1BFQmFja2VuZC1mZG8gQVBJLCBidXQKKyAgICAgICAgb3Ro
ZXJ3aXNlIGlzIG5vdCBjaGFuZ2VkIGluIGZ1bmN0aW9uYWxpdHkuCisKKyAgICAgICAgVW5pdCB0
ZXN0cyBub3cgaGF2ZSB0byB1bmNvbmRpdGlvbmFsbHkgdXNlIEhlYWRsZXNzVmlld0JhY2tlbmQg
YXMgYQorICAgICAgICB3cGVfdmlld19iYWNrZW5kIHByb3ZpZGVyLCBzaW5jZSBXUEVCYWNrZW5k
LWZkbyBkb2VzIG5vdCBwcm92aWRlIGEKKyAgICAgICAgZGVmYXVsdCB3cGVfdmlld19iYWNrZW5k
IGltcGxlbWVudGF0aW9uLiBVbml0IHRlc3RzIGNvdmVyaW5nIHRoYXQgYXJlCisgICAgICAgIHJl
bW92ZWQgb3IgYWRqdXN0ZWQgdG8gaW5zdGVhZCB1c2UgYSBtb2NrIHdwZV92aWV3X2JhY2tlbmQg
aW50ZXJmYWNlLgorCisgICAgICAgICogU2NyaXB0cy93ZWJraXRkaXJzLnBtOgorICAgICAgICAo
YnVpbHREeWxpYlBhdGhGb3JOYW1lKToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3BvcnQv
d2F5bGFuZGRyaXZlci5weToKKyAgICAgICAgKFdheWxhbmREcml2ZXIuX3NldHVwX2Vudmlyb25f
Zm9yX3Rlc3QpOiBFeHBvcnQgRUdMX1BMQVRGT1JNPXdheWxhbmQuCisgICAgICAgICogU2NyaXB0
cy93ZWJraXRweS9wb3J0L3dwZS5weToKKyAgICAgICAgKFdQRVBvcnQuX2RyaXZlcl9jbGFzcyk6
IFVzZSBXYXlsYW5kRHJpdmVyIGJ5IGRlZmF1bHQuCisgICAgICAgICogVGVzdFdlYktpdEFQSS9Q
bGF0Zm9ybVdlYlZpZXcuaDoKKyAgICAgICAgKCk6IERlbGV0ZWQuCisgICAgICAgICogVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rlc3RXZWJLaXRXZWJWaWV3LmNwcDoKKyAgICAgICAg
KHRlc3RXZWJWaWV3V2ViQmFja2VuZCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9nbGliL1dl
YktpdEdMaWIvVGVzdE1haW4uaDoKKyAgICAgICAgKFRlc3Q6OmNyZWF0ZVdlYlZpZXdCYWNrZW5k
KToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL3dwZS9QbGF0Zm9ybVdlYlZpZXdXUEUuY3BwOgor
ICAgICAgICAoVGVzdFdlYktpdEFQSTo6UGxhdGZvcm1XZWJWaWV3Ojp+UGxhdGZvcm1XZWJWaWV3
KToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlBsYXRmb3JtV2ViVmlldzo6aW5pdGlhbGl6ZSk6
CisgICAgICAgICogd3BlL0hlYWRsZXNzVmlld0JhY2tlbmQvQ01ha2VMaXN0cy50eHQ6CisgICAg
ICAgICogd3BlL0hlYWRsZXNzVmlld0JhY2tlbmQvSGVhZGxlc3NWaWV3QmFja2VuZC5jcHA6Cisg
ICAgICAgIChnZXRFR0xEaXNwbGF5KToKKyAgICAgICAgKEhlYWRsZXNzVmlld0JhY2tlbmQ6Okhl
YWRsZXNzVmlld0JhY2tlbmQpOgorICAgICAgICAoSGVhZGxlc3NWaWV3QmFja2VuZDo6fkhlYWRs
ZXNzVmlld0JhY2tlbmQpOgorICAgICAgICAoSGVhZGxlc3NWaWV3QmFja2VuZDo6YmFja2VuZCBj
b25zdCk6CisgICAgICAgIChIZWFkbGVzc1ZpZXdCYWNrZW5kOjpjcmVhdGVTbmFwc2hvdCk6Cisg
ICAgICAgIChIZWFkbGVzc1ZpZXdCYWNrZW5kOjpwZXJmb3JtVXBkYXRlKToKKyAgICAgICAgKEhl
YWRsZXNzVmlld0JhY2tlbmQ6Om1ha2VDdXJyZW50KTogRGVsZXRlZC4KKyAgICAgICAgKiB3cGUv
SGVhZGxlc3NWaWV3QmFja2VuZC9IZWFkbGVzc1ZpZXdCYWNrZW5kLmg6CisgICAgICAgICogd3Bl
L2poYnVpbGQubW9kdWxlczogTW9kdWxlIG5hbWUgY2xlYW51cC4gRHl6IHZlcnNpb24gaXMgYnVt
cGVkLgorCiAyMDE4LTA0LTEwICBOYW4gV2FuZyAgPG5fd2FuZ0BhcHBsZS5jb20+CiAKICAgICAg
ICAgQVg6IEV4cG9zZSBzdHJvbmcgcGFzc3dvcmQgZmllbGRzIG9uIGlPUwpkaWZmIC0tZ2l0IGEv
VG9vbHMvU2NyaXB0cy93ZWJraXRkaXJzLnBtIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRkaXJzLnBt
CmluZGV4IGJiMzI4MmNkZDg1YmYxNmRiMWY2NjFlMjMxNzg4YWFjZjdjNzQ1N2YuLjhmNDg4MTFm
MGZiN2Q4Njg2ZWVlZGI2OTFjZWY3ZGE3ZmJiNTdmODUgMTAwNzU1Ci0tLSBhL1Rvb2xzL1Njcmlw
dHMvd2Via2l0ZGlycy5wbQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdGRpcnMucG0KQEAgLTEw
MzYsNyArMTAzNiw3IEBAIHN1YiBidWlsdER5bGliUGF0aEZvck5hbWUKICAgICAgICAgfQogICAg
IH0KICAgICBpZiAoaXNXUEUoKSkgewotICAgICAgICByZXR1cm4gIiRjb25maWd1cmF0aW9uUHJv
ZHVjdERpci9saWIvbGliV1BFV2ViS2l0LnNvIjsKKyAgICAgICAgcmV0dXJuICIkY29uZmlndXJh
dGlvblByb2R1Y3REaXIvbGliL2xpYldQRVdlYktpdC0wLjEuc28iOwogICAgIH0KIAogICAgIGRp
ZSAiVW5zdXBwb3J0ZWQgcGxhdGZvcm0sIGNhbid0IGRldGVybWluZSBidWlsdCBsaWJyYXJ5IGxv
Y2F0aW9ucy5cblRyeSBgYnVpbGQtd2Via2l0IC0taGVscGAgZm9yIG1vcmUgaW5mb3JtYXRpb24u
XG4iOwpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L3dheWxhbmRkcml2
ZXIucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvd2F5bGFuZGRyaXZlci5weQppbmRl
eCA3MDIzODk1M2YzOGE1MmM4MmY0NDQxYmQwZTA2YTc0OTA1NGU1NGQwLi5lZjRkMTFmYzE4ODk5
MjBlMGIzOTAxMzA5MDNkMmUxMzA3ODE3NWVmIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L3BvcnQvd2F5bGFuZGRyaXZlci5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L3BvcnQvd2F5bGFuZGRyaXZlci5weQpAQCAtNDksNiArNDksNyBAQCBjbGFzcyBXYXlsYW5kRHJp
dmVyKERyaXZlcik6CiAgICAgICAgIHNlbGYuX3BvcnQuX2NvcHlfdmFsdWVfZnJvbV9lbnZpcm9u
X2lmX3NldChkcml2ZXJfZW52aXJvbm1lbnQsICdXQVlMQU5EX0RJU1BMQVknKQogICAgICAgICBz
ZWxmLl9wb3J0Ll9jb3B5X3ZhbHVlX2Zyb21fZW52aXJvbl9pZl9zZXQoZHJpdmVyX2Vudmlyb25t
ZW50LCAnV0FZTEFORF9TT0NLRVQnKQogICAgICAgICBkcml2ZXJfZW52aXJvbm1lbnRbJ0dES19C
QUNLRU5EJ10gPSAnd2F5bGFuZCcKKyAgICAgICAgZHJpdmVyX2Vudmlyb25tZW50WydFR0xfUExB
VEZPUk0nXSA9ICd3YXlsYW5kJwogICAgICAgICBkcml2ZXJfZW52aXJvbm1lbnRbJ0xPQ0FMX1JF
U09VUkNFX1JPT1QnXSA9IHNlbGYuX3BvcnQubGF5b3V0X3Rlc3RzX2RpcigpCiAgICAgICAgIGlm
IHNlbGYuX2RyaXZlcl90ZW1wZGlyIGlzIG5vdCBOb25lOgogICAgICAgICAgICAgZHJpdmVyX2Vu
dmlyb25tZW50WydEVU1QUkVOREVSVFJFRV9URU1QJ10gPSBzdHIoc2VsZi5fZHJpdmVyX3RlbXBk
aXIpCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvd3BlLnB5IGIvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L3dwZS5weQppbmRleCAzNWE5NWQ1ODg1Y2UzMmRkOTdk
OWJmYWEwYTQxY2UxYTIxMGUxYjk4Li4yMGU0YzNkN2RiNTkyMzE5YjRhZGI5ZmY0NTc1Mjc5M2Q4
YTY4M2FlIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvd3BlLnB5Cisr
KyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC93cGUucHkKQEAgLTY2LDkgKzY2LDcgQEAg
Y2xhc3MgV1BFUG9ydChQb3J0KToKIAogICAgIEBtZW1vaXplZAogICAgIGRlZiBfZHJpdmVyX2Ns
YXNzKHNlbGYpOgotICAgICAgICBpZiBzZWxmLl9kaXNwbGF5X3NlcnZlciA9PSAid2F5bGFuZCI6
Ci0gICAgICAgICAgICByZXR1cm4gV2F5bGFuZERyaXZlcgotICAgICAgICByZXR1cm4gSGVhZGxl
c3NEcml2ZXIKKyAgICAgICAgcmV0dXJuIFdheWxhbmREcml2ZXIKIAogICAgIGRlZiBzZXR1cF9l
bnZpcm9uX2Zvcl9zZXJ2ZXIoc2VsZiwgc2VydmVyX25hbWU9Tm9uZSk6CiAgICAgICAgIGVudmly
b25tZW50ID0gc3VwZXIoV1BFUG9ydCwgc2VsZikuc2V0dXBfZW52aXJvbl9mb3Jfc2VydmVyKHNl
cnZlcl9uYW1lKQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9QbGF0Zm9ybVdlYlZp
ZXcuaCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvUGxhdGZvcm1XZWJWaWV3LmgKaW5kZXggODQ0NWMy
MzgzOGFhOTFlYWFlZTJlYzBlZDYzODI4ZWM0Mjg4ZTliOS4uZmEzYzA1YzZkYzU2NGFhY2Q2MTY0
MTI0MmIwZDNjODM5ZDU2ZGFmMyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9QbGF0
Zm9ybVdlYlZpZXcuaAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1BsYXRmb3JtV2ViVmlldy5o
CkBAIC04OCw5ICs4OCw2IEBAIHByaXZhdGU6CiAKICAgICBQbGF0Zm9ybVdLVmlldyBtX3ZpZXc7
CiAgICAgUGxhdGZvcm1XaW5kb3cgbV93aW5kb3c7Ci0jaWYgUExBVEZPUk0oV1BFKQotICAgIHN0
cnVjdCB3cGVfdmlld19iYWNrZW5kKiBtX2JhY2tlbmQgeyBudWxscHRyIH07Ci0jZW5kaWYKIH07
CiAKIH0gLy8gbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0V2ViS2l0V2ViVmlldy5jcHAgYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVzdFdlYktpdFdlYlZpZXcuY3BwCmluZGV4
IDU0MTE0MzRkNGU2NDI3YzFjYjI3YjlhNmY4MTc3Mzk0MjM4NDEwOTEuLmQzZTliYzM3N2NiMzI0
YjE1MmFiNTIyYjk5MmE4NDZmZmE5ZTU0ZjggMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0V2ViS2l0V2ViVmlldy5jcHAKKysrIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rlc3RXZWJLaXRXZWJWaWV3LmNwcApAQCAtMTA4
LDI2ICsxMDgsMjggQEAgc3RhdGljIHZvaWQgdGVzdFdlYlZpZXdXZWJDb250ZXh0TGlmZXRpbWUo
V2ViVmlld1Rlc3QqIHRlc3QsIGdjb25zdHBvaW50ZXIpCiAjaWYgUExBVEZPUk0oV1BFKQogc3Rh
dGljIHZvaWQgdGVzdFdlYlZpZXdXZWJCYWNrZW5kKFRlc3QqIHRlc3QsIGdjb25zdHBvaW50ZXIp
CiB7Ci0gICAgLy8gVXNlIHRoZSBkZWZhdWx0IGJhY2tlbmQgKHdlIGRvbid0IGhhdmUgYSB3YXkg
dG8gY2hlY2sgdGhlIGJhY2tlbmQgd2lsbCBiZSBhY3R1YWxseSBmcmVlZCkuCi0gICAgR1JlZlB0
cjxXZWJLaXRXZWJWaWV3PiB3ZWJWaWV3ID0gYWRvcHRHUmVmKHdlYmtpdF93ZWJfdmlld19uZXco
bnVsbHB0cikpOwotICAgIHRlc3QtPmFzc2VydE9iamVjdElzRGVsZXRlZFdoZW5UZXN0RmluaXNo
ZXMoR19PQkpFQ1Qod2ViVmlldy5nZXQoKSkpOwotICAgIGF1dG8qIHZpZXdCYWNrZW5kID0gd2Vi
a2l0X3dlYl92aWV3X2dldF9iYWNrZW5kKHdlYlZpZXcuZ2V0KCkpOwotICAgIGdfYXNzZXJ0KHZp
ZXdCYWNrZW5kKTsKLSAgICBhdXRvKiB3cGVCYWNrZW5kID0gd2Via2l0X3dlYl92aWV3X2JhY2tl
bmRfZ2V0X3dwZV9iYWNrZW5kKHZpZXdCYWNrZW5kKTsKLSAgICBnX2Fzc2VydCh3cGVCYWNrZW5k
KTsKLSAgICB3ZWJWaWV3ID0gbnVsbHB0cjsKKyAgICBzdGF0aWMgc3RydWN0IHdwZV92aWV3X2Jh
Y2tlbmRfaW50ZXJmYWNlIHNfdGVzdGluZ0ludGVyZmFjZSA9IHsKKyAgICAgICAgLy8gY3JlYXRl
CisgICAgICAgIFtdKHZvaWQqLCBzdHJ1Y3Qgd3BlX3ZpZXdfYmFja2VuZCopIC0+IHZvaWQqIHsg
cmV0dXJuIG51bGxwdHI7IH0sCisgICAgICAgIC8vIGRlc3Ryb3kKKyAgICAgICAgW10odm9pZCop
IHsgfSwKKyAgICAgICAgLy8gaW5pdGlhbGl6ZQorICAgICAgICBbXSh2b2lkKikgeyB9LAorICAg
ICAgICAvLyBnZXRfcmVuZGVyZXJfaG9zdF9mZAorICAgICAgICBbXSh2b2lkKikgLT4gaW50IHsg
cmV0dXJuIC0xOyB9CisgICAgfTsKIAogICAgIC8vIFVzZXIgcHJvdmlkZWQgYmFja2VuZCB3aXRo
IGRlZmF1bHQgZGVsZXRlciAod2UgZG9uJ3QgaGF2ZSBhIHdheSB0byBjaGVjayB0aGUgYmFja2Vu
ZCB3aWxsIGJlIGFjdHVhbGx5IGZyZWVkKS4KLSAgICB3ZWJWaWV3ID0gYWRvcHRHUmVmKHdlYmtp
dF93ZWJfdmlld19uZXcod2Via2l0X3dlYl92aWV3X2JhY2tlbmRfbmV3KHdwZV92aWV3X2JhY2tl
bmRfY3JlYXRlKCksIG51bGxwdHIsIG51bGxwdHIpKSk7CisgICAgR1JlZlB0cjxXZWJLaXRXZWJW
aWV3PiB3ZWJWaWV3ID0gYWRvcHRHUmVmKHdlYmtpdF93ZWJfdmlld19uZXcod2Via2l0X3dlYl92
aWV3X2JhY2tlbmRfbmV3KHdwZV92aWV3X2JhY2tlbmRfY3JlYXRlX3dpdGhfYmFja2VuZF9pbnRl
cmZhY2UoJnNfdGVzdGluZ0ludGVyZmFjZSwgbnVsbHB0ciksIG51bGxwdHIsIG51bGxwdHIpKSk7
CiAgICAgdGVzdC0+YXNzZXJ0T2JqZWN0SXNEZWxldGVkV2hlblRlc3RGaW5pc2hlcyhHX09CSkVD
VCh3ZWJWaWV3LmdldCgpKSk7Ci0gICAgdmlld0JhY2tlbmQgPSB3ZWJraXRfd2ViX3ZpZXdfZ2V0
X2JhY2tlbmQod2ViVmlldy5nZXQoKSk7CisgICAgYXV0byogdmlld0JhY2tlbmQgPSB3ZWJraXRf
d2ViX3ZpZXdfZ2V0X2JhY2tlbmQod2ViVmlldy5nZXQoKSk7CiAgICAgZ19hc3NlcnQodmlld0Jh
Y2tlbmQpOwotICAgIHdwZUJhY2tlbmQgPSB3ZWJraXRfd2ViX3ZpZXdfYmFja2VuZF9nZXRfd3Bl
X2JhY2tlbmQodmlld0JhY2tlbmQpOworICAgIGF1dG8qIHdwZUJhY2tlbmQgPSB3ZWJraXRfd2Vi
X3ZpZXdfYmFja2VuZF9nZXRfd3BlX2JhY2tlbmQodmlld0JhY2tlbmQpOwogICAgIGdfYXNzZXJ0
KHdwZUJhY2tlbmQpOwogICAgIHdlYlZpZXcgPSBudWxscHRyOwogCiAgICAgLy8gVXNlciBwcm92
aWRlZCBiYWNrZW5kIHdpdGggZGVzdHJveSBub3RpZnkuCi0gICAgd3BlQmFja2VuZCA9IHdwZV92
aWV3X2JhY2tlbmRfY3JlYXRlKCk7CisgICAgd3BlQmFja2VuZCA9IHdwZV92aWV3X2JhY2tlbmRf
Y3JlYXRlX3dpdGhfYmFja2VuZF9pbnRlcmZhY2UoJnNfdGVzdGluZ0ludGVyZmFjZSwgbnVsbHB0
cik7CiAgICAgd2ViVmlldyA9IGFkb3B0R1JlZih3ZWJraXRfd2ViX3ZpZXdfbmV3KHdlYmtpdF93
ZWJfdmlld19iYWNrZW5kX25ldyh3cGVCYWNrZW5kLCBbXShncG9pbnRlciB1c2VyRGF0YSkgewog
ICAgICAgICBhdXRvKiBiYWNrZW5kID0gKnN0YXRpY19jYXN0PHN0cnVjdCB3cGVfdmlld19iYWNr
ZW5kKio+KHVzZXJEYXRhKTsKICAgICAgICAgd3BlX3ZpZXdfYmFja2VuZF9kZXN0cm95KGJhY2tl
bmQpOwpAQCAtMTU0LDcgKzE1Niw3IEBAIHN0YXRpYyB2b2lkIHRlc3RXZWJWaWV3V2ViQmFja2Vu
ZChUZXN0KiB0ZXN0LCBnY29uc3Rwb2ludGVyKQogCiAgICAgICAgIHN0cnVjdCB3cGVfdmlld19i
YWNrZW5kKiBiYWNrZW5kOwogICAgIH07Ci0gICAgYXV0byogb3duZXIgPSBuZXcgQmFja2VuZE93
bmVyKHdwZV92aWV3X2JhY2tlbmRfY3JlYXRlKCkpOworICAgIGF1dG8qIG93bmVyID0gbmV3IEJh
Y2tlbmRPd25lcih3cGVfdmlld19iYWNrZW5kX2NyZWF0ZV93aXRoX2JhY2tlbmRfaW50ZXJmYWNl
KCZzX3Rlc3RpbmdJbnRlcmZhY2UsIG51bGxwdHIpKTsKICAgICBnX2Fzc2VydChoYXNJbnN0YW5j
ZSk7CiAgICAgd2ViVmlldyA9IGFkb3B0R1JlZih3ZWJraXRfd2ViX3ZpZXdfbmV3KHdlYmtpdF93
ZWJfdmlld19iYWNrZW5kX25ldyhvd25lci0+YmFja2VuZCwgW10oZ3BvaW50ZXIgdXNlckRhdGEp
IHsKICAgICAgICAgZGVsZXRlIHN0YXRpY19jYXN0PEJhY2tlbmRPd25lcio+KHVzZXJEYXRhKTsK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvZ2xpYi9XZWJLaXRHTGliL1Rlc3RNYWlu
LmggYi9Ub29scy9UZXN0V2ViS2l0QVBJL2dsaWIvV2ViS2l0R0xpYi9UZXN0TWFpbi5oCmluZGV4
IDJjNzU3OTNiZGZjYTQzNTQ3ODYwOGVlOWVhNzUxNmFhMGNiN2ZlYTMuLjQ5Y2Y1MDEzMjZkY2Q0
MTY1MWMzMjc4ZGVhM2ZmZDJmMWZjNDk5ZGIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvZ2xpYi9XZWJLaXRHTGliL1Rlc3RNYWluLmgKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9n
bGliL1dlYktpdEdMaWIvVGVzdE1haW4uaApAQCAtMTQzLDkgKzE0Myw2IEBAIHB1YmxpYzoKICNp
ZiBQTEFURk9STShXUEUpCiAgICAgc3RhdGljIFdlYktpdFdlYlZpZXdCYWNrZW5kKiBjcmVhdGVX
ZWJWaWV3QmFja2VuZCgpCiAgICAgewotICAgICAgICBjb25zdCBjaGFyKiB1c2VIZWFkbGVzc1Zp
ZXdCYWNrZW5kID0gZ19nZXRlbnYoIldQRV9VU0VfSEVBRExFU1NfVklFV19CQUNLRU5EIik7Ci0g
ICAgICAgIGlmICghdXNlSGVhZGxlc3NWaWV3QmFja2VuZCB8fCAhc3RyY21wKHVzZUhlYWRsZXNz
Vmlld0JhY2tlbmQsICIwIikpCi0gICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICAgICAg
YXV0byogaGVhZGxlc3NCYWNrZW5kID0gbmV3IEhlYWRsZXNzVmlld0JhY2tlbmQ7CiAgICAgICAg
IHJldHVybiB3ZWJraXRfd2ViX3ZpZXdfYmFja2VuZF9uZXcoaGVhZGxlc3NCYWNrZW5kLT5iYWNr
ZW5kKCksIFtdKGdwb2ludGVyIHVzZXJEYXRhKSB7CiAgICAgICAgICAgICBkZWxldGUgc3RhdGlj
X2Nhc3Q8SGVhZGxlc3NWaWV3QmFja2VuZCo+KHVzZXJEYXRhKTsKZGlmZiAtLWdpdCBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvd3BlL1BsYXRmb3JtV2ViVmlld1dQRS5jcHAgYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL3dwZS9QbGF0Zm9ybVdlYlZpZXdXUEUuY3BwCmluZGV4IGQ0OGQ4NzcyODc4MWIzMjFk
ODY3NWEyMzRmYzQ3ZjM3YjAzNWNhNTUuLjdkODM1OGU4MTgyNzBlYjU0MjhiN2NkOTU3OGQxZTgx
MWFiMGNkNzMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvd3BlL1BsYXRmb3JtV2Vi
Vmlld1dQRS5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS93cGUvUGxhdGZvcm1XZWJWaWV3
V1BFLmNwcApAQCAtNjEsMjEgKzYxLDEzIEBAIFBsYXRmb3JtV2ViVmlldzo6UGxhdGZvcm1XZWJW
aWV3KFdLUGFnZVJlZiByZWxhdGVkUGFnZSkKIAogUGxhdGZvcm1XZWJWaWV3Ojp+UGxhdGZvcm1X
ZWJWaWV3KCkKIHsKLSAgICBpZiAobV9iYWNrZW5kKQotICAgICAgICB3cGVfdmlld19iYWNrZW5k
X2Rlc3Ryb3kobV9iYWNrZW5kKTsKLQogICAgIGRlbGV0ZSBtX3dpbmRvdzsKIH0KIAogdm9pZCBQ
bGF0Zm9ybVdlYlZpZXc6OmluaXRpYWxpemUoV0tQYWdlQ29uZmlndXJhdGlvblJlZiBjb25maWd1
cmF0aW9uKQogewotICAgIGNvbnN0IGNoYXIqIHVzZUhlYWRsZXNzVmlld0JhY2tlbmQgPSBnX2dl
dGVudigiV1BFX1VTRV9IRUFETEVTU19WSUVXX0JBQ0tFTkQiKTsKLSAgICBpZiAodXNlSGVhZGxl
c3NWaWV3QmFja2VuZCAmJiBzdHJjbXAodXNlSGVhZGxlc3NWaWV3QmFja2VuZCwgIjAiKSkKLSAg
ICAgICAgbV93aW5kb3cgPSBuZXcgSGVhZGxlc3NWaWV3QmFja2VuZDsKLSAgICBlbHNlCi0gICAg
ICAgIG1fYmFja2VuZCA9IHdwZV92aWV3X2JhY2tlbmRfY3JlYXRlKCk7Ci0KLSAgICBtX3ZpZXcg
PSBXS1ZpZXdDcmVhdGUobV93aW5kb3cgPyBtX3dpbmRvdy0+YmFja2VuZCgpIDogbV9iYWNrZW5k
LCBjb25maWd1cmF0aW9uKTsKKyAgICBtX3dpbmRvdyA9IG5ldyBIZWFkbGVzc1ZpZXdCYWNrZW5k
OworICAgIG1fdmlldyA9IFdLVmlld0NyZWF0ZShtX3dpbmRvdy0+YmFja2VuZCgpLCBjb25maWd1
cmF0aW9uKTsKIH0KIAogV0tQYWdlUmVmIFBsYXRmb3JtV2ViVmlldzo6cGFnZSgpIGNvbnN0CmRp
ZmYgLS1naXQgYS9Ub29scy93cGUvSGVhZGxlc3NWaWV3QmFja2VuZC9DTWFrZUxpc3RzLnR4dCBi
L1Rvb2xzL3dwZS9IZWFkbGVzc1ZpZXdCYWNrZW5kL0NNYWtlTGlzdHMudHh0CmluZGV4IDcyNGM2
ZDljOGU2ZmRlM2MxMjg4MjUwYThkYTc4NDczN2FjYWY4ZTYuLjRlNGQ2NGMwMjRlNTc4NGIxMGIz
YTU1Mzk5YTgwZjlmYzNiMThkNjIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL3dwZS9IZWFkbGVzc1ZpZXdC
YWNrZW5kL0NNYWtlTGlzdHMudHh0CisrKyBiL1Rvb2xzL3dwZS9IZWFkbGVzc1ZpZXdCYWNrZW5k
L0NNYWtlTGlzdHMudHh0CkBAIC0xLDUgKzEsNSBAQAogZmluZF9wYWNrYWdlKExpYkdCTSBSRVFV
SVJFRCkKLWZpbmRfcGFja2FnZShXUEVCYWNrZW5kLW1lc2EgUkVRVUlSRUQpCitmaW5kX3BhY2th
Z2UoV1BFQmFja2VuZC1mZG8gUkVRVUlSRUQpCiAKIHNldChXUEVIZWFkbGVzc1ZpZXdCYWNrZW5k
X1NPVVJDRVMKICAgICAke1RPT0xTX0RJUn0vd3BlL0hlYWRsZXNzVmlld0JhY2tlbmQvSGVhZGxl
c3NWaWV3QmFja2VuZC5jcHAKQEAgLTksMTQgKzksMTQgQEAgc2V0KFdQRUhlYWRsZXNzVmlld0Jh
Y2tlbmRfU1lTVEVNX0lOQ0xVREVfRElSRUNUT1JJRVMKICAgICAke0NBSVJPX0lOQ0xVREVfRElS
U30KICAgICAke0dMSUJfSU5DTFVERV9ESVJTfQogICAgICR7TElCR0JNX0lOQ0xVREVfRElSU30K
LSAgICAke1dQRV9NRVNBX0lOQ0xVREVfRElSU30KKyAgICAke1dQRUJBQ0tFTkRfRkRPX0lOQ0xV
REVfRElSU30KICkKIAogc2V0KFdQRUhlYWRsZXNzVmlld0JhY2tlbmRfTElCUkFSSUVTCiAgICAg
JHtDQUlST19MSUJSQVJJRVN9CiAgICAgJHtHTElCX0xJQlJBUklFU30KICAgICAke0xJQkdCTV9M
SUJSQVJJRVN9Ci0gICAgJHtXUEVfTUVTQV9MSUJSQVJJRVN9CisgICAgJHtXUEVCQUNLRU5EX0ZE
T19MSUJSQVJJRVN9CiApCiAKIGFkZF9saWJyYXJ5KFdQRUhlYWRsZXNzVmlld0JhY2tlbmQgJHtX
UEVIZWFkbGVzc1ZpZXdCYWNrZW5kX1NPVVJDRVN9KQpkaWZmIC0tZ2l0IGEvVG9vbHMvd3BlL0hl
YWRsZXNzVmlld0JhY2tlbmQvSGVhZGxlc3NWaWV3QmFja2VuZC5jcHAgYi9Ub29scy93cGUvSGVh
ZGxlc3NWaWV3QmFja2VuZC9IZWFkbGVzc1ZpZXdCYWNrZW5kLmNwcAppbmRleCA4MzkxODRjNjU0
N2M4ZDVjNTZlZWMwNmQ3ODlmZDhjYzcyMWEyNGQ0Li4zYmUxMzgxNDJhODRjNjI0OGFkM2VjMzY5
MDUwOTQ5Y2U4ZTU5YzBhIDEwMDY0NAotLS0gYS9Ub29scy93cGUvSGVhZGxlc3NWaWV3QmFja2Vu
ZC9IZWFkbGVzc1ZpZXdCYWNrZW5kLmNwcAorKysgYi9Ub29scy93cGUvSGVhZGxlc3NWaWV3QmFj
a2VuZC9IZWFkbGVzc1ZpZXdCYWNrZW5kLmNwcApAQCAtMjgsNiArMjgsNyBAQAogI2luY2x1ZGUg
PGNhc3NlcnQ+CiAjaW5jbHVkZSA8ZmNudGwuaD4KICNpbmNsdWRlIDx1bmlzdGQuaD4KKyNpbmNs
dWRlIDx3cGUtZmRvL2luaXRpYWxpemUtZWdsLmg+CiAKIC8vIE1hbnVhbGx5IHByb3ZpZGUgdGhl
IEVHTF9DQVNUIEMrKyBkZWZpbml0aW9uIGluIGNhc2UgZWdscGxhdGZvcm0uaCBkb2Vzbid0IHBy
b3ZpZGUgaXQuCiAjaWZuZGVmIEVHTF9DQVNUCkBAIC0zNywyMCArMzgsMTEgQEAKIC8vIEtlZXAg
dGhpcyBpbiBzeW5jIHdpdGggd3RmL2dsaWIvUnVuTG9vcFNvdXJjZVByaW9yaXR5LmguCiBzdGF0
aWMgaW50IGtSdW5Mb29wU291cmNlUHJpb3JpdHlEaXNwYXRjaGVyID0gLTcwOwogCi0vLyBGSVhN
RTogRGVwbG95IGdvb2QgcHJhY3RpY2VzIGFuZCBjbGVhbiB1cCBHQk0gcmVzb3VyY2VzIGF0IHBy
b2Nlc3MgZXhpdC4KIHN0YXRpYyBFR0xEaXNwbGF5IGdldEVHTERpc3BsYXkoKQogewogICAgIHN0
YXRpYyBFR0xEaXNwbGF5IHNfZGlzcGxheSA9IEVHTF9OT19ESVNQTEFZOwogICAgIGlmIChzX2Rp
c3BsYXkgPT0gRUdMX05PX0RJU1BMQVkpIHsKLSAgICAgICAgaW50IGZkID0gb3BlbigiL2Rldi9k
cmkvcmVuZGVyRDEyOCIsIE9fUkRXUiB8IE9fQ0xPRVhFQyB8IE9fTk9DVFRZIHwgT19OT05CTE9D
Syk7Ci0gICAgICAgIGlmIChmZCA8IDApCi0gICAgICAgICAgICByZXR1cm4gRUdMX05PX0RJU1BM
QVk7Ci0KLSAgICAgICAgc3RydWN0IGdibV9kZXZpY2UqIGRldmljZSA9IGdibV9jcmVhdGVfZGV2
aWNlKGZkKTsKLSAgICAgICAgaWYgKCFkZXZpY2UpCi0gICAgICAgICAgICByZXR1cm4gRUdMX05P
X0RJU1BMQVk7Ci0KLSAgICAgICAgRUdMRGlzcGxheSBkaXNwbGF5ID0gZWdsR2V0RGlzcGxheShk
ZXZpY2UpOworICAgICAgICBFR0xEaXNwbGF5IGRpc3BsYXkgPSBlZ2xHZXREaXNwbGF5KEVHTF9E
RUZBVUxUX0RJU1BMQVkpOwogICAgICAgICBpZiAoZGlzcGxheSA9PSBFR0xfTk9fRElTUExBWSkK
ICAgICAgICAgICAgIHJldHVybiBFR0xfTk9fRElTUExBWTsKIApAQCAtNjAsNiArNTIsNyBAQCBz
dGF0aWMgRUdMRGlzcGxheSBnZXRFR0xEaXNwbGF5KCkKICAgICAgICAgaWYgKCFlZ2xCaW5kQVBJ
KEVHTF9PUEVOR0xfRVNfQVBJKSkKICAgICAgICAgICAgIHJldHVybiBFR0xfTk9fRElTUExBWTsK
IAorICAgICAgICB3cGVfZmRvX2luaXRpYWxpemVfZm9yX2VnbF9kaXNwbGF5KGRpc3BsYXkpOwog
ICAgICAgICBzX2Rpc3BsYXkgPSBkaXNwbGF5OwogICAgIH0KIApAQCAtOTksOSArOTIsMTAgQEAg
SGVhZGxlc3NWaWV3QmFja2VuZDo6SGVhZGxlc3NWaWV3QmFja2VuZCgpCiAKICAgICBtX2VnbC5j
cmVhdGVJbWFnZSA9IHJlaW50ZXJwcmV0X2Nhc3Q8UEZORUdMQ1JFQVRFSU1BR0VLSFJQUk9DPihl
Z2xHZXRQcm9jQWRkcmVzcygiZWdsQ3JlYXRlSW1hZ2VLSFIiKSk7CiAgICAgbV9lZ2wuZGVzdHJv
eUltYWdlID0gcmVpbnRlcnByZXRfY2FzdDxQRk5FR0xERVNUUk9ZSU1BR0VLSFJQUk9DPihlZ2xH
ZXRQcm9jQWRkcmVzcygiZWdsRGVzdHJveUltYWdlS0hSIikpOworICAgIG1fZWdsLnF1ZXJ5QnVm
ZmVyID0gcmVpbnRlcnByZXRfY2FzdDxQRk5FR0xRVUVSWVdBWUxBTkRCVUZGRVJXTD4oZWdsR2V0
UHJvY0FkZHJlc3MoImVnbFF1ZXJ5V2F5bGFuZEJ1ZmZlcldMIikpOwogICAgIG1fZWdsLmltYWdl
VGFyZ2V0VGV4dHVyZTJET0VTID0gcmVpbnRlcnByZXRfY2FzdDxQRk5HTEVHTElNQUdFVEFSR0VU
VEVYVFVSRTJET0VTUFJPQz4oZWdsR2V0UHJvY0FkZHJlc3MoImdsRUdMSW1hZ2VUYXJnZXRUZXh0
dXJlMkRPRVMiKSk7CiAKLSAgICBtX2V4cG9ydGFibGUgPSB3cGVfbWVzYV92aWV3X2JhY2tlbmRf
ZXhwb3J0YWJsZV9kbWFfYnVmX2NyZWF0ZSgmc19leHBvcnRhYmxlQ2xpZW50LCB0aGlzKTsKKyAg
ICBtX2V4cG9ydGFibGUgPSB3cGVfdmlld19iYWNrZW5kX2V4cG9ydGFibGVfZmRvX2NyZWF0ZSgm
c19leHBvcnRhYmxlQ2xpZW50LCB0aGlzLCA4MDAsIDYwMCk7CiAKICAgICBtX3VwZGF0ZVNvdXJj
ZSA9IGdfdGltZW91dF9zb3VyY2VfbmV3KG1fZnJhbWVSYXRlIC8gMTAwMCk7CiAgICAgZ19zb3Vy
Y2Vfc2V0X2NhbGxiYWNrKG1fdXBkYXRlU291cmNlLApAQCAtMTE2LDI5ICsxMTAsMjUgQEAgSGVh
ZGxlc3NWaWV3QmFja2VuZDo6SGVhZGxlc3NWaWV3QmFja2VuZCgpCiAKIEhlYWRsZXNzVmlld0Jh
Y2tlbmQ6On5IZWFkbGVzc1ZpZXdCYWNrZW5kKCkKIHsKLSAgICBpZiAobV91cGRhdGVTb3VyY2Up
CisgICAgaWYgKG1fdXBkYXRlU291cmNlKSB7CiAgICAgICAgIGdfc291cmNlX2Rlc3Ryb3kobV91
cGRhdGVTb3VyY2UpOworICAgICAgICBnX3NvdXJjZV91bnJlZihtX3VwZGF0ZVNvdXJjZSk7Cisg
ICAgfQogCiAgICAgaWYgKGF1dG8gaW1hZ2UgPSBzdGQ6OmdldDwwPihtX3BlbmRpbmdJbWFnZS5z
ZWNvbmQpKQogICAgICAgICBtX2VnbC5kZXN0cm95SW1hZ2UobV9lZ2wuZGlzcGxheSwgaW1hZ2Up
OwogICAgIGlmIChhdXRvIGltYWdlID0gc3RkOjpnZXQ8MD4obV9sb2NrZWRJbWFnZS5zZWNvbmQp
KQogICAgICAgICBtX2VnbC5kZXN0cm95SW1hZ2UobV9lZ2wuZGlzcGxheSwgaW1hZ2UpOwogCi0g
ICAgZm9yIChhdXRvIGl0IDogbV9leHBvcnRNYXApIHsKLSAgICAgICAgaW50IGZkID0gaXQuc2Vj
b25kOwotICAgICAgICBpZiAoZmQgPj0gMCkKLSAgICAgICAgICAgIGNsb3NlKGZkKTsKLSAgICB9
Ci0KICAgICBpZiAobV9lZ2wuY29udGV4dCkKICAgICAgICAgZWdsRGVzdHJveUNvbnRleHQobV9l
Z2wuZGlzcGxheSwgbV9lZ2wuY29udGV4dCk7CiAKLSAgICB3cGVfbWVzYV92aWV3X2JhY2tlbmRf
ZXhwb3J0YWJsZV9kbWFfYnVmX2Rlc3Ryb3kobV9leHBvcnRhYmxlKTsKKyAgICB3cGVfdmlld19i
YWNrZW5kX2V4cG9ydGFibGVfZmRvX2Rlc3Ryb3kobV9leHBvcnRhYmxlKTsKIH0KIAogc3RydWN0
IHdwZV92aWV3X2JhY2tlbmQqIEhlYWRsZXNzVmlld0JhY2tlbmQ6OmJhY2tlbmQoKSBjb25zdAog
ewotICAgIHJldHVybiB3cGVfbWVzYV92aWV3X2JhY2tlbmRfZXhwb3J0YWJsZV9kbWFfYnVmX2dl
dF92aWV3X2JhY2tlbmQobV9leHBvcnRhYmxlKTsKKyAgICByZXR1cm4gd3BlX3ZpZXdfYmFja2Vu
ZF9leHBvcnRhYmxlX2Zkb19nZXRfdmlld19iYWNrZW5kKG1fZXhwb3J0YWJsZSk7CiB9CiAKIGNh
aXJvX3N1cmZhY2VfdCogSGVhZGxlc3NWaWV3QmFja2VuZDo6Y3JlYXRlU25hcHNob3QoKQpAQCAt
MTU1LDcgKzE0NSw4IEBAIGNhaXJvX3N1cmZhY2VfdCogSGVhZGxlc3NWaWV3QmFja2VuZDo6Y3Jl
YXRlU25hcHNob3QoKQogICAgIHVpbnQ4X3QqIGJ1ZmZlciA9IG5ldyB1aW50OF90WzQgKiB3aWR0
aCAqIGhlaWdodF07CiAgICAgYm9vbCBzdWNjZXNzZnVsU25hcHNob3QgPSBmYWxzZTsKIAotICAg
IG1ha2VDdXJyZW50KCk7CisgICAgaWYgKCFlZ2xNYWtlQ3VycmVudChtX2VnbC5kaXNwbGF5LCBF
R0xfTk9fU1VSRkFDRSwgRUdMX05PX1NVUkZBQ0UsIG1fZWdsLmNvbnRleHQpKQorICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKIAogICAgIEdMdWludCBpbWFnZVRleHR1cmU7CiAgICAgZ2xHZW5UZXh0
dXJlcygxLCAmaW1hZ2VUZXh0dXJlKTsKQEAgLTIwMyw1NyArMTk0LDQyIEBAIGNhaXJvX3N1cmZh
Y2VfdCogSGVhZGxlc3NWaWV3QmFja2VuZDo6Y3JlYXRlU25hcHNob3QoKQogICAgIHJldHVybiBp
bWFnZVN1cmZhY2U7CiB9CiAKLWJvb2wgSGVhZGxlc3NWaWV3QmFja2VuZDo6bWFrZUN1cnJlbnQo
KQotewotICAgIHJldHVybiBlZ2xNYWtlQ3VycmVudChtX2VnbC5kaXNwbGF5LCBFR0xfTk9fU1VS
RkFDRSwgRUdMX05PX1NVUkZBQ0UsIG1fZWdsLmNvbnRleHQpOwotfQotCiB2b2lkIEhlYWRsZXNz
Vmlld0JhY2tlbmQ6OnBlcmZvcm1VcGRhdGUoKQogewogICAgIGlmICghbV9wZW5kaW5nSW1hZ2Uu
Zmlyc3QpCiAgICAgICAgIHJldHVybjsKIAotICAgIHdwZV9tZXNhX3ZpZXdfYmFja2VuZF9leHBv
cnRhYmxlX2RtYV9idWZfZGlzcGF0Y2hfZnJhbWVfY29tcGxldGUobV9leHBvcnRhYmxlKTsKKyAg
ICB3cGVfdmlld19iYWNrZW5kX2V4cG9ydGFibGVfZmRvX2Rpc3BhdGNoX2ZyYW1lX2NvbXBsZXRl
KG1fZXhwb3J0YWJsZSk7CiAgICAgaWYgKG1fbG9ja2VkSW1hZ2UuZmlyc3QpIHsKLSAgICAgICAg
d3BlX21lc2Ffdmlld19iYWNrZW5kX2V4cG9ydGFibGVfZG1hX2J1Zl9kaXNwYXRjaF9yZWxlYXNl
X2J1ZmZlcihtX2V4cG9ydGFibGUsIG1fbG9ja2VkSW1hZ2UuZmlyc3QpOworICAgICAgICB3cGVf
dmlld19iYWNrZW5kX2V4cG9ydGFibGVfZmRvX2Rpc3BhdGNoX3JlbGVhc2VfYnVmZmVyKG1fZXhw
b3J0YWJsZSwgbV9sb2NrZWRJbWFnZS5maXJzdCk7CiAgICAgICAgIG1fZWdsLmRlc3Ryb3lJbWFn
ZShtX2VnbC5kaXNwbGF5LCBzdGQ6OmdldDwwPihtX2xvY2tlZEltYWdlLnNlY29uZCkpOwogICAg
IH0KIAogICAgIG1fbG9ja2VkSW1hZ2UgPSBtX3BlbmRpbmdJbWFnZTsKLSAgICBtX3BlbmRpbmdJ
bWFnZSA9IHN0ZDo6cGFpcjx1aW50MzJfdCwgc3RkOjp0dXBsZTxFR0xJbWFnZUtIUiwgdWludDMy
X3QsIHVpbnQzMl90Pj4geyB9OworICAgIG1fcGVuZGluZ0ltYWdlID0gc3RkOjpwYWlyPHN0cnVj
dCB3bF9yZXNvdXJjZSosIHN0ZDo6dHVwbGU8RUdMSW1hZ2VLSFIsIHVpbnQzMl90LCB1aW50MzJf
dD4+IHsgfTsKIH0KIAotc3RydWN0IHdwZV9tZXNhX3ZpZXdfYmFja2VuZF9leHBvcnRhYmxlX2Rt
YV9idWZfY2xpZW50IEhlYWRsZXNzVmlld0JhY2tlbmQ6OnNfZXhwb3J0YWJsZUNsaWVudCA9IHsK
LSAgICAvLyBleHBvcnRfZG1hX2J1ZgotICAgIFtdKHZvaWQqIGRhdGEsIHN0cnVjdCB3cGVfbWVz
YV92aWV3X2JhY2tlbmRfZXhwb3J0YWJsZV9kbWFfYnVmX2RhdGEqIGltYWdlRGF0YSkKK3N0cnVj
dCB3cGVfdmlld19iYWNrZW5kX2V4cG9ydGFibGVfZmRvX2NsaWVudCBIZWFkbGVzc1ZpZXdCYWNr
ZW5kOjpzX2V4cG9ydGFibGVDbGllbnQgPSB7CisgICAgLy8gZXhwb3J0X2J1ZmZlcl9yZXNvdXJj
ZQorICAgIFtdKHZvaWQqIGRhdGEsIHN0cnVjdCB3bF9yZXNvdXJjZSogYnVmZmVyUmVzb3VyY2Up
CiAgICAgewogICAgICAgICBhdXRvJiBiYWNrZW5kID0gKnN0YXRpY19jYXN0PEhlYWRsZXNzVmll
d0JhY2tlbmQqPihkYXRhKTsKKyAgICAgICAgaWYgKGJhY2tlbmQubV9wZW5kaW5nSW1hZ2UuZmly
c3QpCisgICAgICAgICAgICBzdGQ6OmFib3J0KCk7CisKKyAgICAgICAgYXV0byYgZWdsID0gYmFj
a2VuZC5tX2VnbDsKKworICAgICAgICBFR0xpbnQgZm9ybWF0ID0gMDsKKyAgICAgICAgaWYgKCFl
Z2wucXVlcnlCdWZmZXIoZWdsLmRpc3BsYXksIGJ1ZmZlclJlc291cmNlLCBFR0xfVEVYVFVSRV9G
T1JNQVQsICZmb3JtYXQpIHx8IGZvcm1hdCAhPSBFR0xfVEVYVFVSRV9SR0JBKQorICAgICAgICAg
ICAgcmV0dXJuOworCisgICAgICAgIEVHTGludCB3aWR0aCwgaGVpZ2h0OworICAgICAgICBpZiAo
IWVnbC5xdWVyeUJ1ZmZlcihlZ2wuZGlzcGxheSwgYnVmZmVyUmVzb3VyY2UsIEVHTF9XSURUSCwg
JndpZHRoKQorICAgICAgICAgICAgfHwgIWVnbC5xdWVyeUJ1ZmZlcihlZ2wuZGlzcGxheSwgYnVm
ZmVyUmVzb3VyY2UsIEVHTF9IRUlHSFQsICZoZWlnaHQpKQorICAgICAgICAgICAgcmV0dXJuOwog
Ci0gICAgICAgIGF1dG8gaXQgPSBiYWNrZW5kLm1fZXhwb3J0TWFwLmVuZCgpOwotICAgICAgICBp
ZiAoaW1hZ2VEYXRhLT5mZCA+PSAwKSB7Ci0gICAgICAgICAgICBhc3NlcnQoYmFja2VuZC5tX2V4
cG9ydE1hcC5maW5kKGltYWdlRGF0YS0+aGFuZGxlKSA9PSBiYWNrZW5kLm1fZXhwb3J0TWFwLmVu
ZCgpKTsKLQotICAgICAgICAgICAgaXQgPSBiYWNrZW5kLm1fZXhwb3J0TWFwLmluc2VydCh7IGlt
YWdlRGF0YS0+aGFuZGxlLCBpbWFnZURhdGEtPmZkIH0pLmZpcnN0OwotICAgICAgICB9IGVsc2Ug
ewotICAgICAgICAgICAgYXNzZXJ0KGJhY2tlbmQubV9leHBvcnRNYXAuZmluZChpbWFnZURhdGEt
PmhhbmRsZSkgIT0gYmFja2VuZC5tX2V4cG9ydE1hcC5lbmQoKSk7Ci0gICAgICAgICAgICBpdCA9
IGJhY2tlbmQubV9leHBvcnRNYXAuZmluZChpbWFnZURhdGEtPmhhbmRsZSk7Ci0gICAgICAgIH0K
LQotICAgICAgICBhc3NlcnQoaXQgIT0gYmFja2VuZC5tX2V4cG9ydE1hcC5lbmQoKSk7Ci0gICAg
ICAgIGludDMyX3QgZmQgPSBpdC0+c2Vjb25kOwotCi0gICAgICAgIGJhY2tlbmQubWFrZUN1cnJl
bnQoKTsKLQotICAgICAgICBFR0xpbnQgYXR0cmlidXRlc1tdID0gewotICAgICAgICAgICAgRUdM
X1dJRFRILCBzdGF0aWNfY2FzdDxFR0xpbnQ+KGltYWdlRGF0YS0+d2lkdGgpLAotICAgICAgICAg
ICAgRUdMX0hFSUdIVCwgc3RhdGljX2Nhc3Q8RUdMaW50PihpbWFnZURhdGEtPmhlaWdodCksCi0g
ICAgICAgICAgICBFR0xfTElOVVhfRFJNX0ZPVVJDQ19FWFQsIHN0YXRpY19jYXN0PEVHTGludD4o
aW1hZ2VEYXRhLT5mb3JtYXQpLAotICAgICAgICAgICAgRUdMX0RNQV9CVUZfUExBTkUwX0ZEX0VY
VCwgZmQsCi0gICAgICAgICAgICBFR0xfRE1BX0JVRl9QTEFORTBfT0ZGU0VUX0VYVCwgMCwKLSAg
ICAgICAgICAgIEVHTF9ETUFfQlVGX1BMQU5FMF9QSVRDSF9FWFQsIHN0YXRpY19jYXN0PEVHTGlu
dD4oaW1hZ2VEYXRhLT5zdHJpZGUpLAotICAgICAgICAgICAgRUdMX05PTkUsCi0gICAgICAgIH07
Ci0gICAgICAgIEVHTEltYWdlS0hSIGltYWdlID0gYmFja2VuZC5tX2VnbC5jcmVhdGVJbWFnZShi
YWNrZW5kLm1fZWdsLmRpc3BsYXksIEVHTF9OT19DT05URVhULCBFR0xfTElOVVhfRE1BX0JVRl9F
WFQsIG51bGxwdHIsIGF0dHJpYnV0ZXMpOwotICAgICAgICBiYWNrZW5kLm1fcGVuZGluZ0ltYWdl
ID0geyBpbWFnZURhdGEtPmhhbmRsZSwgc3RkOjptYWtlX3R1cGxlKGltYWdlLCBpbWFnZURhdGEt
PndpZHRoLCBpbWFnZURhdGEtPmhlaWdodCkgfTsKKyAgICAgICAgRUdMaW50IGF0dHJpYnV0ZXNb
XSA9IHsgRUdMX1dBWUxBTkRfUExBTkVfV0wsIDAsIEVHTF9OT05FIH07CisgICAgICAgIEVHTElt
YWdlS0hSIGltYWdlID0gZWdsLmNyZWF0ZUltYWdlKGVnbC5kaXNwbGF5LCBFR0xfTk9fQ09OVEVY
VCwgRUdMX1dBWUxBTkRfQlVGRkVSX1dMLCBidWZmZXJSZXNvdXJjZSwgYXR0cmlidXRlcyk7Cisg
ICAgICAgIGJhY2tlbmQubV9wZW5kaW5nSW1hZ2UgPSB7IGJ1ZmZlclJlc291cmNlLCBzdGQ6Om1h
a2VfdHVwbGUoaW1hZ2UsIHdpZHRoLCBoZWlnaHQpIH07CiAgICAgfSwKIH07CmRpZmYgLS1naXQg
YS9Ub29scy93cGUvSGVhZGxlc3NWaWV3QmFja2VuZC9IZWFkbGVzc1ZpZXdCYWNrZW5kLmggYi9U
b29scy93cGUvSGVhZGxlc3NWaWV3QmFja2VuZC9IZWFkbGVzc1ZpZXdCYWNrZW5kLmgKaW5kZXgg
YTFiZTQ4OTZjN2M5NTk5Yzk1NzRhZmVhY2FhYzAzZmQ5ZTljNjc4MS4uYjU2MTBiN2Y1OTdjMjky
ZjZkYzlkNDdhZjk4YmVmZjgwMDYwYTZkNCAxMDA2NDQKLS0tIGEvVG9vbHMvd3BlL0hlYWRsZXNz
Vmlld0JhY2tlbmQvSGVhZGxlc3NWaWV3QmFja2VuZC5oCisrKyBiL1Rvb2xzL3dwZS9IZWFkbGVz
c1ZpZXdCYWNrZW5kL0hlYWRsZXNzVmlld0JhY2tlbmQuaApAQCAtMzIsNyArMzIsMTUgQEAKICNp
bmNsdWRlIDxjYWlyby5oPgogI2luY2x1ZGUgPGdsaWIuaD4KICNpbmNsdWRlIDx1bm9yZGVyZWRf
bWFwPgotI2luY2x1ZGUgPHdwZS1tZXNhL3ZpZXctYmFja2VuZC1leHBvcnRhYmxlLWRtYS1idWYu
aD4KKyNpbmNsdWRlIDx3cGUtZmRvL3ZpZXctYmFja2VuZC1leHBvcnRhYmxlLmg+CisKKyNpZm5k
ZWYgRUdMX1dMX2JpbmRfd2F5bGFuZF9kaXNwbGF5CisjZGVmaW5lIEVHTF9XTF9iaW5kX3dheWxh
bmRfZGlzcGxheSAxCit0eXBlZGVmIEVHTEJvb2xlYW4gKEVHTEFQSUVOVFJZUCBQRk5FR0xRVUVS
WVdBWUxBTkRCVUZGRVJXTCkgKEVHTERpc3BsYXkgZHB5LCBzdHJ1Y3Qgd2xfcmVzb3VyY2UgKmJ1
ZmZlciwgRUdMaW50IGF0dHJpYnV0ZSwgRUdMaW50ICp2YWx1ZSk7CisKKyNkZWZpbmUgRUdMX1dB
WUxBTkRfQlVGRkVSX1dMICAgICAgIDB4MzFENSAvKiBlZ2xDcmVhdGVJbWFnZUtIUiB0YXJnZXQg
Ki8KKyNkZWZpbmUgRUdMX1dBWUxBTkRfUExBTkVfV0wgICAgICAgIDB4MzFENiAvKiBlZ2xDcmVh
dGVJbWFnZUtIUiB0YXJnZXQgKi8KKyNlbmRpZgogCiBjbGFzcyBIZWFkbGVzc1ZpZXdCYWNrZW5k
IHsKIHB1YmxpYzoKQEAgLTQ0LDI2ICs1MiwyNSBAQCBwdWJsaWM6CiAgICAgY2Fpcm9fc3VyZmFj
ZV90KiBjcmVhdGVTbmFwc2hvdCgpOwogCiBwcml2YXRlOgotICAgIGJvb2wgbWFrZUN1cnJlbnQo
KTsKICAgICB2b2lkIHBlcmZvcm1VcGRhdGUoKTsKIAotICAgIHN0YXRpYyBzdHJ1Y3Qgd3BlX21l
c2Ffdmlld19iYWNrZW5kX2V4cG9ydGFibGVfZG1hX2J1Zl9jbGllbnQgc19leHBvcnRhYmxlQ2xp
ZW50OworICAgIHN0YXRpYyBzdHJ1Y3Qgd3BlX3ZpZXdfYmFja2VuZF9leHBvcnRhYmxlX2Zkb19j
bGllbnQgc19leHBvcnRhYmxlQ2xpZW50OwogCiAgICAgc3RydWN0IHsKICAgICAgICAgRUdMRGlz
cGxheSBkaXNwbGF5OwogICAgICAgICBFR0xDb25maWcgY29uZmlnOwotICAgICAgICBFR0xDb250
ZXh0IGNvbnRleHQ7CisgICAgICAgIEVHTENvbnRleHQgY29udGV4dCB7IG51bGxwdHIgfTsKIAog
ICAgICAgICBQRk5FR0xDUkVBVEVJTUFHRUtIUlBST0MgY3JlYXRlSW1hZ2U7CiAgICAgICAgIFBG
TkVHTERFU1RST1lJTUFHRUtIUlBST0MgZGVzdHJveUltYWdlOworICAgICAgICBQRk5FR0xRVUVS
WVdBWUxBTkRCVUZGRVJXTCBxdWVyeUJ1ZmZlcjsKICAgICAgICAgUEZOR0xFR0xJTUFHRVRBUkdF
VFRFWFRVUkUyRE9FU1BST0MgaW1hZ2VUYXJnZXRUZXh0dXJlMkRPRVM7CiAgICAgfSBtX2VnbDsK
IAotICAgIHN0cnVjdCB3cGVfbWVzYV92aWV3X2JhY2tlbmRfZXhwb3J0YWJsZV9kbWFfYnVmKiBt
X2V4cG9ydGFibGU7CisgICAgc3RydWN0IHdwZV92aWV3X2JhY2tlbmRfZXhwb3J0YWJsZV9mZG8q
IG1fZXhwb3J0YWJsZTsKIAotICAgIHN0ZDo6dW5vcmRlcmVkX21hcDx1aW50MzJfdCwgaW50MzJf
dD4gbV9leHBvcnRNYXA7Ci0gICAgc3RkOjpwYWlyPHVpbnQzMl90LCBzdGQ6OnR1cGxlPEVHTElt
YWdlS0hSLCB1aW50MzJfdCwgdWludDMyX3Q+PiBtX3BlbmRpbmdJbWFnZSB7IH07Ci0gICAgc3Rk
OjpwYWlyPHVpbnQzMl90LCBzdGQ6OnR1cGxlPEVHTEltYWdlS0hSLCB1aW50MzJfdCwgdWludDMy
X3Q+PiBtX2xvY2tlZEltYWdlIHsgfTsKKyAgICBzdGQ6OnBhaXI8c3RydWN0IHdsX3Jlc291cmNl
Kiwgc3RkOjp0dXBsZTxFR0xJbWFnZUtIUiwgdWludDMyX3QsIHVpbnQzMl90Pj4gbV9wZW5kaW5n
SW1hZ2UgeyB9OworICAgIHN0ZDo6cGFpcjxzdHJ1Y3Qgd2xfcmVzb3VyY2UqLCBzdGQ6OnR1cGxl
PEVHTEltYWdlS0hSLCB1aW50MzJfdCwgdWludDMyX3Q+PiBtX2xvY2tlZEltYWdlIHsgfTsKIAog
ICAgIEdTb3VyY2UqIG1fdXBkYXRlU291cmNlOwogICAgIGdpbnQ2NCBtX2ZyYW1lUmF0ZSB7IEdf
VVNFQ19QRVJfU0VDIC8gNjAgfTsKZGlmZiAtLWdpdCBhL1Rvb2xzL3dwZS9qaGJ1aWxkLm1vZHVs
ZXMgYi9Ub29scy93cGUvamhidWlsZC5tb2R1bGVzCmluZGV4IDBmOGJmZWEzN2RjNDEyODBhNjgw
NWVjOTY1YjVlNGIxMjZmNzBjMzcuLjIwODdiY2JjMzZkM2UyODk3ZmY1MzhiNGNmNTM0Y2I0MGI3
ODUzZjMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL3dwZS9qaGJ1aWxkLm1vZHVsZXMKKysrIGIvVG9vbHMv
d3BlL2poYnVpbGQubW9kdWxlcwpAQCAtMTksOCArMTksOCBAQAogICAgICAgPGRlcCBwYWNrYWdl
PSJ4a2Jjb21tb24iLz4KICAgICAgIDxkZXAgcGFja2FnZT0id2Via2l0LWdzdHJlYW1lci10ZXN0
aW5nLWRlcGVuZGVuY2llcyIvPgogICAgICAgPGRlcCBwYWNrYWdlPSJ3b2ZmMiIvPgotICAgICAg
PGRlcCBwYWNrYWdlPSJ3cGUiLz4KLSAgICAgIDxkZXAgcGFja2FnZT0id3BlLW1lc2EiLz4KKyAg
ICAgIDxkZXAgcGFja2FnZT0id3BlYmFja2VuZCIvPgorICAgICAgPGRlcCBwYWNrYWdlPSJ3cGVi
YWNrZW5kLWZkbyIvPgogICAgICAgPGRlcCBwYWNrYWdlPSJsaWJncGctZXJyb3IiLz4KICAgICAg
IDxkZXAgcGFja2FnZT0ibGliZ2NyeXB0Ii8+CiAgICAgICA8ZGVwIHBhY2thZ2U9ImxpYmVwb3h5
Ii8+CkBAIC0xNzIsMTkgKzE3MiwxOSBAQAogICAgICAgICAgICAgaGFzaD0ic2hhMTo3MTI3OTkz
YmZiNjllMTNjZGZmMjVmYjhiM2M4ZjI2Y2U2YmU1YmZhIi8+CiAgIDwvYXV0b3Rvb2xzPgogCi0g
IDxjbWFrZSBpZD0id3BlIj4KKyAgPGNtYWtlIGlkPSJ3cGViYWNrZW5kIj4KICAgICA8YnJhbmNo
IHJlcG89ImdpdGh1Yi5jb20iIG1vZHVsZT0iV2ViUGxhdGZvcm1Gb3JFbWJlZGRlZC9XUEVCYWNr
ZW5kLmdpdCIKICAgICAgICAgICAgIHRhZz0iMzAxM2ZhYWViYWI0MmU3ZWY3NDk3YjM4NTBhMjkw
Mjk3OGViM2Q2ZiIgLz4KICAgPC9jbWFrZT4KIAotICA8Y21ha2UgaWQ9IndwZS1tZXNhIj4KKyAg
PGNtYWtlIGlkPSJ3cGViYWNrZW5kLWZkbyI+CiAgICAgPGRlcGVuZGVuY2llcz4KLSAgICAgIDxk
ZXAgcGFja2FnZT0id3BlIiAvPgotICAgICAgPGRlcCBwYWNrYWdlPSJnbGliIiAvPgotICAgICAg
PGRlcCBwYWNrYWdlPSJ4a2Jjb21tb24iIC8+CisgICAgICA8ZGVwIHBhY2thZ2U9IndwZWJhY2tl
bmQiLz4KKyAgICAgIDxkZXAgcGFja2FnZT0iZ2xpYiIvPgorICAgICAgPGRlcCBwYWNrYWdlPSJ4
a2Jjb21tb24iLz4KICAgICA8L2RlcGVuZGVuY2llcz4KLSAgICA8YnJhbmNoIHJlcG89ImdpdGh1
Yi5jb20iIG1vZHVsZT0iV2ViUGxhdGZvcm1Gb3JFbWJlZGRlZC9XUEVCYWNrZW5kLW1lc2EuZ2l0
IgotICAgICAgICAgICAgdGFnPSI4ZTE1OTgzMmRjNTUxNjQ3NThmNjhmYWQwMmY1MmU2YWQ3Yzcw
NjQyIiAvPgorICAgIDxicmFuY2ggcmVwbz0iZ2l0aHViLmNvbSIgbW9kdWxlPSJJZ2FsaWEvV1BF
QmFja2VuZC1mZG8uZ2l0IgorICAgICAgICAgICAgdGFnPSIwNjRjNjA4MDY0MjJmZjFiYjMyY2Vm
N2ZiMWRlNjg5MjNhZWNiYTgyIi8+CiAgIDwvY21ha2U+CiAKICAgPGF1dG90b29scyBpZD0ibGli
Z3BnLWVycm9yIiBhdXRvZ2VuLXNoPSJjb25maWd1cmUiPgpAQCAtMjEzLDcgKzIxMyw3IEBACiAg
IDwvYXV0b3Rvb2xzPgogCiAgIDxhdXRvdG9vbHMgaWQ9ImR5eiIgc3VwcG9ydHMtbm9uLXNyY2Rp
ci1idWlsZHM9Im5vIj4KLSAgICA8YnJhbmNoIHJlcG89ImdpdGh1Yi5jb20iIG1vZHVsZT0iSWdh
bGlhL2R5eiIgdGFnPSIyMDNhMWViZDE0ODFlNDRhYTgxMDVlODYyYzAyZjMxN2U2NjUzNjI3Ii8+
CisgICAgPGJyYW5jaCByZXBvPSJnaXRodWIuY29tIiBtb2R1bGU9IklnYWxpYS9keXoiIHRhZz0i
NzRhMzY4Y2M2M2EwZmY5YmJhNjc1MTgyYWZmYTNhM2ZkMTNhYWQ4MCIvPgogICA8L2F1dG90b29s
cz4KIAogICA8bWVzb24gaWQ9ImdyYXBoZW5lIj4KZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0No
YW5nZUxvZwppbmRleCBlM2MxNmI5YzZhNDNjM2E5MGQ5MzRkNjdmNGQ2ZWEzY2JmYTc0YjYxLi5j
ZjQ5ZjQ1ZmM1Yzk1NDcwMmQyN2RkODFhNTliNGZhMDRkZjhmNjI4IDEwMDY0NAotLS0gYS9DaGFu
Z2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTgtMDQtMTEgIFphbiBE
b2JlcnNlayAgPHpkb2JlcnNla0BpZ2FsaWEuY29tPgorCisgICAgICAgIFtXUEVdIFN3aXRjaCB0
ZXN0aW5nIHByb2Nlc3MgdG8gdXNpbmcgV1BFQmFja2VuZC1mZG8KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4NDM1NworCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogU291cmNlL2NtYWtlL0ZpbmRXUEVCYWNr
ZW5kLWZkby5jbWFrZTogUmVuYW1lZCBmcm9tIFNvdXJjZS9jbWFrZS9GaW5kV1BFQmFja2VuZC1t
ZXNhLmNtYWtlLgorCiAyMDE4LTA0LTA5ICBNaWNoYWVsIENhdGFuemFybyAgPG1jYXRhbnphcm9A
aWdhbGlhLmNvbT4KIAogICAgICAgICBbV1BFXSBVc2UgR05VIGluc3RhbGwgZGlyZWN0b3JpZXMK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>337775</attachid>
            <date>2018-04-11 23:50:55 -0700</date>
            <delta_ts>2018-04-11 23:50:55 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-184357-20180412085054.patch</filename>
            <type>text/plain</type>
            <size>28256</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMwNTU3CmRpZmYgLS1naXQgYS9Tb3VyY2UvY21ha2UvRmlu
ZFdQRUJhY2tlbmQtZmRvLmNtYWtlIGIvU291cmNlL2NtYWtlL0ZpbmRXUEVCYWNrZW5kLWZkby5j
bWFrZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi45NzlkZWI0ZTNhM2IxZTdiOWJiNTA0ZTQyOTg5MGY1MmNjNjI5MWFh
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL2NtYWtlL0ZpbmRXUEVCYWNrZW5kLWZkby5jbWFr
ZQpAQCAtMCwwICsxLDQ3IEBACisjIC0gVHJ5IHRvIGZpbmQgV1BFQmFja2VuZC1mZG8uCisjIE9u
Y2UgZG9uZSwgdGhpcyB3aWxsIGRlZmluZQorIworIyAgV1BFQkFDS0VORF9GRE9fRk9VTkQgLSBz
eXN0ZW0gaGFzIFdQRUJhY2tlbmQtZmRvLgorIyAgV1BFQkFDS0VORF9GRE9fSU5DTFVERV9ESVJT
IC0gdGhlIFdQRUJhY2tlbmQtZmRvIGluY2x1ZGUgZGlyZWN0b3JpZXMKKyMgIFdQRUJBQ0tFTkRf
RkRPX0xJQlJBUklFUyAtIGxpbmsgdGhlc2UgdG8gdXNlIFdQRUJhY2tlbmQtZmRvLgorIworIyBD
b3B5cmlnaHQgKEMpIDIwMTYgSWdhbGlhIFMuTC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworIyBhcmUgbWV0OgorIyAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisj
ICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisjICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMKKyMgSVMnJyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyMgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorIyBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUiBPUiBJVFMK
KyMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsCisjIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyMgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7CisjIE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLAorIyBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUgorIyBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGCisjIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCitmaW5kX3BhY2thZ2UoUGtn
Q29uZmlnKQorcGtnX2NoZWNrX21vZHVsZXMoUENfV1BFQkFDS0VORF9GRE8gUVVJRVQgd3BlYmFj
a2VuZC1mZG8pCisKK2ZpbmRfcGF0aChXUEVCQUNLRU5EX0ZET19JTkNMVURFX0RJUlMKKyAgICBO
QU1FUyB3cGUtZmRvL2luaXRpYWxpemUtZWdsLmgKKyAgICBISU5UUyAke1BDX1dQRUJBQ0tFTkRf
RkRPX0lOQ0xVREVESVJ9ICR7UENfV1BFQkFDS0VORF9GRE9fSU5DTFVERV9ESVJTfQorKQorCitm
aW5kX2xpYnJhcnkoV1BFQkFDS0VORF9GRE9fTElCUkFSSUVTCisgICAgTkFNRVMgV1BFQmFja2Vu
ZC1mZG8KKyAgICBISU5UUyAke1BDX1dQRUJBQ0tFTkRfRkRPX0xJQkRJUn0gJHtQQ19XUEVCQUNL
RU5EX0ZET19MSUJSQVJZX0RJUlN9CispCisKK21hcmtfYXNfYWR2YW5jZWQoV1BFQkFDS0VORF9G
RE9fSU5DTFVERV9ESVJTIFdQRUJBQ0tFTkRfRkRPX0xJQlJBUklFUykKKworaW5jbHVkZShGaW5k
UGFja2FnZUhhbmRsZVN0YW5kYXJkQXJncykKK2ZpbmRfcGFja2FnZV9oYW5kbGVfc3RhbmRhcmRf
YXJncyhXUEVCYWNrZW5kLWZkbyBSRVFVSVJFRF9WQVJTIFdQRUJBQ0tFTkRfRkRPX0lOQ0xVREVf
RElSUyBXUEVCQUNLRU5EX0ZET19MSUJSQVJJRVMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvY21ha2Uv
RmluZFdQRUJhY2tlbmQtbWVzYS5jbWFrZSBiL1NvdXJjZS9jbWFrZS9GaW5kV1BFQmFja2VuZC1t
ZXNhLmNtYWtlCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1MmY3ZThkMmZjYjdhZTM3
YTdiNDIxMDYxNzQzM2RlODMwYWE5MjkwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9jbWFrZS9GaW5kV1BFQmFja2VuZC1tZXNhLmNtYWtlCisr
KyAvZGV2L251bGwKQEAgLTEsNDcgKzAsMCBAQAotIyAtIFRyeSB0byBmaW5kIFdQRS1tZXNhLgot
IyBPbmNlIGRvbmUsIHRoaXMgd2lsbCBkZWZpbmUKLSMKLSMgIFdQRV9NRVNBX0ZPVU5EIC0gc3lz
dGVtIGhhcyBXUEUtbWVzYS4KLSMgIFdQRV9NRVNBX0lOQ0xVREVfRElSUyAtIHRoZSBXUEUtbWVz
YSBpbmNsdWRlIGRpcmVjdG9yaWVzCi0jICBXUEVfTUVTQV9MSUJSQVJJRVMgLSBsaW5rIHRoZXNl
IHRvIHVzZSBXUEUtbWVzYS4KLSMKLSMgQ29weXJpZ2h0IChDKSAyMDE2IElnYWxpYSBTLkwuCi0j
Ci0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSMgYXJlIG1ldDoKLSMgMS4gIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jICAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCi0jIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotIyAgICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERF
UiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTCi0jIElTJycgQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0jIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKLSMgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhF
IENPUFlSSUdIVCBIT0xERVIgT1IgSVRTCi0jIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotIyBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0j
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOwotIyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwKLSMgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IK
LSMgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRgotIyBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KLQotZmluZF9wYWNrYWdlKFBrZ0NvbmZpZykKLXBrZ19jaGVja19tb2R1bGVzKFBDX1dQ
RV9NRVNBIFFVSUVUIHdwZS1tZXNhKQotCi1maW5kX3BhdGgoV1BFX01FU0FfSU5DTFVERV9ESVJT
Ci0gICAgTkFNRVMgd3BlLW1lc2Evdmlldy1iYWNrZW5kLWV4cG9ydGFibGUtZG1hLWJ1Zi5oCi0g
ICAgSElOVFMgJHtQQ19XUEVfTUVTQV9JTkNMVURFRElSfSAke1BDX1dQRV9NRVNBX0lOQ0xVREVf
RElSU30KLSkKLQotZmluZF9saWJyYXJ5KFdQRV9NRVNBX0xJQlJBUklFUwotICAgIE5BTUVTIFdQ
RUJhY2tlbmQtbWVzYQotICAgIEhJTlRTICR7UENfV1BFX01FU0FfTElCRElSfSAke1BDX1dQRV9N
RVNBX0xJQlJBUllfRElSU30KLSkKLQotbWFya19hc19hZHZhbmNlZChXUEVfTUVTQV9JTkNMVURF
X0RJUlMgV1BFX01FU0FfTElCUkFSSUVTKQotCi1pbmNsdWRlKEZpbmRQYWNrYWdlSGFuZGxlU3Rh
bmRhcmRBcmdzKQotZmluZF9wYWNrYWdlX2hhbmRsZV9zdGFuZGFyZF9hcmdzKFdQRUJhY2tlbmQt
bWVzYSBSRVFVSVJFRF9WQVJTIFdQRV9NRVNBX0lOQ0xVREVfRElSUyBXUEVfTUVTQV9MSUJSQVJJ
RVMpCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXgg
M2Y0MTFiOWVhODVlNGQ3NTYwYjAwNmI5NGU2OTllNDY4OTM5OGUwMS4uN2E3NGI5NmFjMDVmMTlk
M2I2NmE3ZDg3ZGM5NTkyNmExNjg2ZjJlZCAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisr
KyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDUzIEBACiAyMDE4LTA0LTExICBaYW4gRG9i
ZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KIAorICAgICAgICBbV1BFXSBTd2l0Y2ggdGVz
dGluZyBwcm9jZXNzIHRvIHVzaW5nIFdQRUJhY2tlbmQtZmRvCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODQzNTcKKworICAgICAgICBSZXZpZXdlZCBi
eSBDYXJsb3MgQWxiZXJ0byBMb3BleiBQZXJlei4KKworICAgICAgICBTd2l0Y2ggV1BFIHRlc3Rp
bmcgdG8gdXNpbmcgdGhlIFdQRUJhY2tlbmQtZmRvIGltcGxlbWVudGF0aW9uIHRoYXQKKyAgICAg
ICAgZGVwZW5kcyBvbiB0aGUgV0xfYmluZF93YXlsYW5kX2Rpc3BsYXkgRUdMIGV4dGVuc2lvbiwg
YXMgZGVmaW5lZCB1bmRlcgorICAgICAgICB0aGUgZnJlZWRlc2t0b3Aub3JnIHByb2plY3QuCisg
ICAgICAgIGh0dHBzOi8vY2dpdC5mcmVlZGVza3RvcC5vcmcvbWVzYS9tZXNhL3RyZWUvZG9jcy9z
cGVjcy9XTF9iaW5kX3dheWxhbmRfZGlzcGxheS5zcGVjCisKKyAgICAgICAgSGVhZGxlc3NWaWV3
QmFja2VuZCBpcyByZWZhY3RvcmVkIHRvIHVzZSB0aGUgV1BFQmFja2VuZC1mZG8gQVBJLCBidXQK
KyAgICAgICAgb3RoZXJ3aXNlIGlzIG5vdCBjaGFuZ2VkIGluIGZ1bmN0aW9uYWxpdHkuCisKKyAg
ICAgICAgVW5pdCB0ZXN0cyBub3cgaGF2ZSB0byB1bmNvbmRpdGlvbmFsbHkgdXNlIEhlYWRsZXNz
Vmlld0JhY2tlbmQgYXMgYQorICAgICAgICB3cGVfdmlld19iYWNrZW5kIHByb3ZpZGVyLCBzaW5j
ZSBXUEVCYWNrZW5kLWZkbyBkb2VzIG5vdCBwcm92aWRlIGEKKyAgICAgICAgZGVmYXVsdCB3cGVf
dmlld19iYWNrZW5kIGltcGxlbWVudGF0aW9uLiBVbml0IHRlc3RzIGNvdmVyaW5nIHRoYXQgYXJl
CisgICAgICAgIGFkanVzdGVkIHRvIGluc3RlYWQgdXNlIGEgbW9jayB3cGVfdmlld19iYWNrZW5k
IGludGVyZmFjZS4KKworICAgICAgICAqIFNjcmlwdHMvd2Via2l0ZGlycy5wbToKKyAgICAgICAg
KGJ1aWx0RHlsaWJQYXRoRm9yTmFtZSk6IEZpeCB0aGUgbGliV1BFV2ViS2l0LnNvIG5hbWUgdG8g
YWxzbyBpbmNsdWRlCisgICAgICAgIHRoZSBBUEkgdmVyc2lvbiB0aGF0IHdhcyBhZGRlZCBpbiBy
MjMwNDQ5LgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvcG9ydC93YXlsYW5kZHJpdmVyLnB5
OgorICAgICAgICAoV2F5bGFuZERyaXZlci5fc2V0dXBfZW52aXJvbl9mb3JfdGVzdCk6IEV4cG9y
dCBFR0xfUExBVEZPUk09d2F5bGFuZC4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3BvcnQv
d3BlLnB5OgorICAgICAgICAoV1BFUG9ydC5fZHJpdmVyX2NsYXNzKTogVXNlIFdheWxhbmREcml2
ZXIgYnkgZGVmYXVsdC4KKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1BsYXRmb3JtV2ViVmlldy5o
OgorICAgICAgICAoKTogRGVsZXRlZC4KKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdEdMaWIvVGVzdFdlYktpdFdlYlZpZXcuY3BwOgorICAgICAgICAodGVzdFdlYlZpZXdXZWJC
YWNrZW5kKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL2dsaWIvV2ViS2l0R0xpYi9UZXN0TWFp
bi5oOgorICAgICAgICAoVGVzdDo6Y3JlYXRlV2ViVmlld0JhY2tlbmQpOgorICAgICAgICAqIFRl
c3RXZWJLaXRBUEkvd3BlL1BsYXRmb3JtV2ViVmlld1dQRS5jcHA6CisgICAgICAgIChUZXN0V2Vi
S2l0QVBJOjpQbGF0Zm9ybVdlYlZpZXc6On5QbGF0Zm9ybVdlYlZpZXcpOgorICAgICAgICAoVGVz
dFdlYktpdEFQSTo6UGxhdGZvcm1XZWJWaWV3Ojppbml0aWFsaXplKToKKyAgICAgICAgKiB3cGUv
SGVhZGxlc3NWaWV3QmFja2VuZC9DTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiB3cGUvSGVhZGxl
c3NWaWV3QmFja2VuZC9IZWFkbGVzc1ZpZXdCYWNrZW5kLmNwcDoKKyAgICAgICAgKGdldEVHTERp
c3BsYXkpOgorICAgICAgICAoSGVhZGxlc3NWaWV3QmFja2VuZDo6SGVhZGxlc3NWaWV3QmFja2Vu
ZCk6CisgICAgICAgIChIZWFkbGVzc1ZpZXdCYWNrZW5kOjp+SGVhZGxlc3NWaWV3QmFja2VuZCk6
CisgICAgICAgIChIZWFkbGVzc1ZpZXdCYWNrZW5kOjpiYWNrZW5kIGNvbnN0KToKKyAgICAgICAg
KEhlYWRsZXNzVmlld0JhY2tlbmQ6OmNyZWF0ZVNuYXBzaG90KToKKyAgICAgICAgKEhlYWRsZXNz
Vmlld0JhY2tlbmQ6OnBlcmZvcm1VcGRhdGUpOgorICAgICAgICAoSGVhZGxlc3NWaWV3QmFja2Vu
ZDo6bWFrZUN1cnJlbnQpOiBEZWxldGVkLgorICAgICAgICAqIHdwZS9IZWFkbGVzc1ZpZXdCYWNr
ZW5kL0hlYWRsZXNzVmlld0JhY2tlbmQuaDoKKyAgICAgICAgKiB3cGUvamhidWlsZC5tb2R1bGVz
OiBNb2R1bGUgbmFtZSBjbGVhbnVwLiBEeXogdmVyc2lvbiBpcyBidW1wZWQuCisKKzIwMTgtMDQt
MTEgIFphbiBEb2JlcnNlayAgPHpkb2JlcnNla0BpZ2FsaWEuY29tPgorCiAgICAgICAgIFtXUEVd
IE1ha2UgV2ViS2l0V2ViVmlld0JhY2tlbmQgb2JqZWN0IG1hbmRhdG9yeSBmb3Igd2Via2l0X3dl
Yl92aWV3X25ldyooKSBjb25zdHJ1Y3RvcnMKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE4NDUxMwogCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dl
YmtpdGRpcnMucG0gYi9Ub29scy9TY3JpcHRzL3dlYmtpdGRpcnMucG0KaW5kZXggYmIzMjgyY2Rk
ODViZjE2ZGIxZjY2MWUyMzE3ODhhYWNmN2M3NDU3Zi4uOGY0ODgxMWYwZmI3ZDg2ODZlZWVkYjY5
MWNlZjdkYTdmYmI1N2Y4NSAxMDA3NTUKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRkaXJzLnBt
CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0ZGlycy5wbQpAQCAtMTAzNiw3ICsxMDM2LDcgQEAg
c3ViIGJ1aWx0RHlsaWJQYXRoRm9yTmFtZQogICAgICAgICB9CiAgICAgfQogICAgIGlmIChpc1dQ
RSgpKSB7Ci0gICAgICAgIHJldHVybiAiJGNvbmZpZ3VyYXRpb25Qcm9kdWN0RGlyL2xpYi9saWJX
UEVXZWJLaXQuc28iOworICAgICAgICByZXR1cm4gIiRjb25maWd1cmF0aW9uUHJvZHVjdERpci9s
aWIvbGliV1BFV2ViS2l0LTAuMS5zbyI7CiAgICAgfQogCiAgICAgZGllICJVbnN1cHBvcnRlZCBw
bGF0Zm9ybSwgY2FuJ3QgZGV0ZXJtaW5lIGJ1aWx0IGxpYnJhcnkgbG9jYXRpb25zLlxuVHJ5IGBi
dWlsZC13ZWJraXQgLS1oZWxwYCBmb3IgbW9yZSBpbmZvcm1hdGlvbi5cbiI7CmRpZmYgLS1naXQg
YS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvd2F5bGFuZGRyaXZlci5weSBiL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvcG9ydC93YXlsYW5kZHJpdmVyLnB5CmluZGV4IDcwMjM4OTUzZjM4YTUy
YzgyZjQ0NDFiZDBlMDZhNzQ5MDU0ZTU0ZDAuLmVmNGQxMWZjMTg4OTkyMGUwYjM5MDEzMDkwM2Qy
ZTEzMDc4MTc1ZWYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC93YXls
YW5kZHJpdmVyLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC93YXlsYW5kZHJp
dmVyLnB5CkBAIC00OSw2ICs0OSw3IEBAIGNsYXNzIFdheWxhbmREcml2ZXIoRHJpdmVyKToKICAg
ICAgICAgc2VsZi5fcG9ydC5fY29weV92YWx1ZV9mcm9tX2Vudmlyb25faWZfc2V0KGRyaXZlcl9l
bnZpcm9ubWVudCwgJ1dBWUxBTkRfRElTUExBWScpCiAgICAgICAgIHNlbGYuX3BvcnQuX2NvcHlf
dmFsdWVfZnJvbV9lbnZpcm9uX2lmX3NldChkcml2ZXJfZW52aXJvbm1lbnQsICdXQVlMQU5EX1NP
Q0tFVCcpCiAgICAgICAgIGRyaXZlcl9lbnZpcm9ubWVudFsnR0RLX0JBQ0tFTkQnXSA9ICd3YXls
YW5kJworICAgICAgICBkcml2ZXJfZW52aXJvbm1lbnRbJ0VHTF9QTEFURk9STSddID0gJ3dheWxh
bmQnCiAgICAgICAgIGRyaXZlcl9lbnZpcm9ubWVudFsnTE9DQUxfUkVTT1VSQ0VfUk9PVCddID0g
c2VsZi5fcG9ydC5sYXlvdXRfdGVzdHNfZGlyKCkKICAgICAgICAgaWYgc2VsZi5fZHJpdmVyX3Rl
bXBkaXIgaXMgbm90IE5vbmU6CiAgICAgICAgICAgICBkcml2ZXJfZW52aXJvbm1lbnRbJ0RVTVBS
RU5ERVJUUkVFX1RFTVAnXSA9IHN0cihzZWxmLl9kcml2ZXJfdGVtcGRpcikKZGlmZiAtLWdpdCBh
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC93cGUucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L3BvcnQvd3BlLnB5CmluZGV4IDM1YTk1ZDU4ODVjZTMyZGQ5N2Q5YmZhYTBhNDFjZTFhMjEw
ZTFiOTguLjIwZTRjM2Q3ZGI1OTIzMTliNGFkYjlmZjQ1NzUyNzkzZDhhNjgzYWUgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC93cGUucHkKKysrIGIvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS9wb3J0L3dwZS5weQpAQCAtNjYsOSArNjYsNyBAQCBjbGFzcyBXUEVQb3J0KFBv
cnQpOgogCiAgICAgQG1lbW9pemVkCiAgICAgZGVmIF9kcml2ZXJfY2xhc3Moc2VsZik6Ci0gICAg
ICAgIGlmIHNlbGYuX2Rpc3BsYXlfc2VydmVyID09ICJ3YXlsYW5kIjoKLSAgICAgICAgICAgIHJl
dHVybiBXYXlsYW5kRHJpdmVyCi0gICAgICAgIHJldHVybiBIZWFkbGVzc0RyaXZlcgorICAgICAg
ICByZXR1cm4gV2F5bGFuZERyaXZlcgogCiAgICAgZGVmIHNldHVwX2Vudmlyb25fZm9yX3NlcnZl
cihzZWxmLCBzZXJ2ZXJfbmFtZT1Ob25lKToKICAgICAgICAgZW52aXJvbm1lbnQgPSBzdXBlcihX
UEVQb3J0LCBzZWxmKS5zZXR1cF9lbnZpcm9uX2Zvcl9zZXJ2ZXIoc2VydmVyX25hbWUpCmRpZmYg
LS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1BsYXRmb3JtV2ViVmlldy5oIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9QbGF0Zm9ybVdlYlZpZXcuaAppbmRleCA4NDQ1YzIzODM4YWE5MWVhYWVlMmVj
MGVkNjM4MjhlYzQyODhlOWI5Li5mYTNjMDVjNmRjNTY0YWFjZDYxNjQxMjQyYjBkM2M4MzlkNTZk
YWYzIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1BsYXRmb3JtV2ViVmlldy5oCisr
KyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvUGxhdGZvcm1XZWJWaWV3LmgKQEAgLTg4LDkgKzg4LDYg
QEAgcHJpdmF0ZToKIAogICAgIFBsYXRmb3JtV0tWaWV3IG1fdmlldzsKICAgICBQbGF0Zm9ybVdp
bmRvdyBtX3dpbmRvdzsKLSNpZiBQTEFURk9STShXUEUpCi0gICAgc3RydWN0IHdwZV92aWV3X2Jh
Y2tlbmQqIG1fYmFja2VuZCB7IG51bGxwdHIgfTsKLSNlbmRpZgogfTsKIAogfSAvLyBuYW1lc3Bh
Y2UgVGVzdFdlYktpdEFQSQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRHTGliL1Rlc3RXZWJLaXRXZWJWaWV3LmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0R0xpYi9UZXN0V2ViS2l0V2ViVmlldy5jcHAKaW5kZXggNjJmOWI0NDM3NWE0ZjM0
NzQ4MDYzYTk3MDg4NWI0YTZkYzEyOTQzNy4uZDNlOWJjMzc3Y2IzMjRiMTUyYWI1MjJiOTkyYTg0
NmZmYTllNTRmOCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRH
TGliL1Rlc3RXZWJLaXRXZWJWaWV3LmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdEdMaWIvVGVzdFdlYktpdFdlYlZpZXcuY3BwCkBAIC0xMDgsOCArMTA4LDE5IEBAIHN0
YXRpYyB2b2lkIHRlc3RXZWJWaWV3V2ViQ29udGV4dExpZmV0aW1lKFdlYlZpZXdUZXN0KiB0ZXN0
LCBnY29uc3Rwb2ludGVyKQogI2lmIFBMQVRGT1JNKFdQRSkKIHN0YXRpYyB2b2lkIHRlc3RXZWJW
aWV3V2ViQmFja2VuZChUZXN0KiB0ZXN0LCBnY29uc3Rwb2ludGVyKQogeworICAgIHN0YXRpYyBz
dHJ1Y3Qgd3BlX3ZpZXdfYmFja2VuZF9pbnRlcmZhY2Ugc190ZXN0aW5nSW50ZXJmYWNlID0gewor
ICAgICAgICAvLyBjcmVhdGUKKyAgICAgICAgW10odm9pZCosIHN0cnVjdCB3cGVfdmlld19iYWNr
ZW5kKikgLT4gdm9pZCogeyByZXR1cm4gbnVsbHB0cjsgfSwKKyAgICAgICAgLy8gZGVzdHJveQor
ICAgICAgICBbXSh2b2lkKikgeyB9LAorICAgICAgICAvLyBpbml0aWFsaXplCisgICAgICAgIFtd
KHZvaWQqKSB7IH0sCisgICAgICAgIC8vIGdldF9yZW5kZXJlcl9ob3N0X2ZkCisgICAgICAgIFtd
KHZvaWQqKSAtPiBpbnQgeyByZXR1cm4gLTE7IH0KKyAgICB9OworCiAgICAgLy8gVXNlciBwcm92
aWRlZCBiYWNrZW5kIHdpdGggZGVmYXVsdCBkZWxldGVyICh3ZSBkb24ndCBoYXZlIGEgd2F5IHRv
IGNoZWNrIHRoZSBiYWNrZW5kIHdpbGwgYmUgYWN0dWFsbHkgZnJlZWQpLgotICAgIEdSZWZQdHI8
V2ViS2l0V2ViVmlldz4gd2ViVmlldyA9IGFkb3B0R1JlZih3ZWJraXRfd2ViX3ZpZXdfbmV3KHdl
YmtpdF93ZWJfdmlld19iYWNrZW5kX25ldyh3cGVfdmlld19iYWNrZW5kX2NyZWF0ZSgpLCBudWxs
cHRyLCBudWxscHRyKSkpOworICAgIEdSZWZQdHI8V2ViS2l0V2ViVmlldz4gd2ViVmlldyA9IGFk
b3B0R1JlZih3ZWJraXRfd2ViX3ZpZXdfbmV3KHdlYmtpdF93ZWJfdmlld19iYWNrZW5kX25ldyh3
cGVfdmlld19iYWNrZW5kX2NyZWF0ZV93aXRoX2JhY2tlbmRfaW50ZXJmYWNlKCZzX3Rlc3RpbmdJ
bnRlcmZhY2UsIG51bGxwdHIpLCBudWxscHRyLCBudWxscHRyKSkpOwogICAgIHRlc3QtPmFzc2Vy
dE9iamVjdElzRGVsZXRlZFdoZW5UZXN0RmluaXNoZXMoR19PQkpFQ1Qod2ViVmlldy5nZXQoKSkp
OwogICAgIGF1dG8qIHZpZXdCYWNrZW5kID0gd2Via2l0X3dlYl92aWV3X2dldF9iYWNrZW5kKHdl
YlZpZXcuZ2V0KCkpOwogICAgIGdfYXNzZXJ0KHZpZXdCYWNrZW5kKTsKQEAgLTExOCw3ICsxMjks
NyBAQCBzdGF0aWMgdm9pZCB0ZXN0V2ViVmlld1dlYkJhY2tlbmQoVGVzdCogdGVzdCwgZ2NvbnN0
cG9pbnRlcikKICAgICB3ZWJWaWV3ID0gbnVsbHB0cjsKIAogICAgIC8vIFVzZXIgcHJvdmlkZWQg
YmFja2VuZCB3aXRoIGRlc3Ryb3kgbm90aWZ5LgotICAgIHdwZUJhY2tlbmQgPSB3cGVfdmlld19i
YWNrZW5kX2NyZWF0ZSgpOworICAgIHdwZUJhY2tlbmQgPSB3cGVfdmlld19iYWNrZW5kX2NyZWF0
ZV93aXRoX2JhY2tlbmRfaW50ZXJmYWNlKCZzX3Rlc3RpbmdJbnRlcmZhY2UsIG51bGxwdHIpOwog
ICAgIHdlYlZpZXcgPSBhZG9wdEdSZWYod2Via2l0X3dlYl92aWV3X25ldyh3ZWJraXRfd2ViX3Zp
ZXdfYmFja2VuZF9uZXcod3BlQmFja2VuZCwgW10oZ3BvaW50ZXIgdXNlckRhdGEpIHsKICAgICAg
ICAgYXV0byogYmFja2VuZCA9ICpzdGF0aWNfY2FzdDxzdHJ1Y3Qgd3BlX3ZpZXdfYmFja2VuZCoq
Pih1c2VyRGF0YSk7CiAgICAgICAgIHdwZV92aWV3X2JhY2tlbmRfZGVzdHJveShiYWNrZW5kKTsK
QEAgLTE0NSw3ICsxNTYsNyBAQCBzdGF0aWMgdm9pZCB0ZXN0V2ViVmlld1dlYkJhY2tlbmQoVGVz
dCogdGVzdCwgZ2NvbnN0cG9pbnRlcikKIAogICAgICAgICBzdHJ1Y3Qgd3BlX3ZpZXdfYmFja2Vu
ZCogYmFja2VuZDsKICAgICB9OwotICAgIGF1dG8qIG93bmVyID0gbmV3IEJhY2tlbmRPd25lcih3
cGVfdmlld19iYWNrZW5kX2NyZWF0ZSgpKTsKKyAgICBhdXRvKiBvd25lciA9IG5ldyBCYWNrZW5k
T3duZXIod3BlX3ZpZXdfYmFja2VuZF9jcmVhdGVfd2l0aF9iYWNrZW5kX2ludGVyZmFjZSgmc190
ZXN0aW5nSW50ZXJmYWNlLCBudWxscHRyKSk7CiAgICAgZ19hc3NlcnQoaGFzSW5zdGFuY2UpOwog
ICAgIHdlYlZpZXcgPSBhZG9wdEdSZWYod2Via2l0X3dlYl92aWV3X25ldyh3ZWJraXRfd2ViX3Zp
ZXdfYmFja2VuZF9uZXcob3duZXItPmJhY2tlbmQsIFtdKGdwb2ludGVyIHVzZXJEYXRhKSB7CiAg
ICAgICAgIGRlbGV0ZSBzdGF0aWNfY2FzdDxCYWNrZW5kT3duZXIqPih1c2VyRGF0YSk7CmRpZmYg
LS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL2dsaWIvV2ViS2l0R0xpYi9UZXN0TWFpbi5oIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9nbGliL1dlYktpdEdMaWIvVGVzdE1haW4uaAppbmRleCA3Y2Y1
MWQ5MmY1NjI2N2RhN2ZjZjZkOTEyYjRjZTZhMTUxOWQwNTdhLi40OWNmNTAxMzI2ZGNkNDE2NTFj
MzI3OGRlYTNmZmQyZjFmYzQ5OWRiIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL2ds
aWIvV2ViS2l0R0xpYi9UZXN0TWFpbi5oCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvZ2xpYi9X
ZWJLaXRHTGliL1Rlc3RNYWluLmgKQEAgLTE0MywxMSArMTQzLDYgQEAgcHVibGljOgogI2lmIFBM
QVRGT1JNKFdQRSkKICAgICBzdGF0aWMgV2ViS2l0V2ViVmlld0JhY2tlbmQqIGNyZWF0ZVdlYlZp
ZXdCYWNrZW5kKCkKICAgICB7Ci0gICAgICAgIGNvbnN0IGNoYXIqIHVzZUhlYWRsZXNzVmlld0Jh
Y2tlbmQgPSBnX2dldGVudigiV1BFX1VTRV9IRUFETEVTU19WSUVXX0JBQ0tFTkQiKTsKLSAgICAg
ICAgaWYgKCF1c2VIZWFkbGVzc1ZpZXdCYWNrZW5kIHx8ICFzdHJjbXAodXNlSGVhZGxlc3NWaWV3
QmFja2VuZCwgIjAiKSkgewotICAgICAgICAgICAgYXV0byogYmFja2VuZCA9IHdwZV92aWV3X2Jh
Y2tlbmRfY3JlYXRlKCk7Ci0gICAgICAgICAgICByZXR1cm4gd2Via2l0X3dlYl92aWV3X2JhY2tl
bmRfbmV3KGJhY2tlbmQsIHJlaW50ZXJwcmV0X2Nhc3Q8R0Rlc3Ryb3lOb3RpZnk+KHdwZV92aWV3
X2JhY2tlbmRfZGVzdHJveSksIGJhY2tlbmQpOwotICAgICAgICB9CiAgICAgICAgIGF1dG8qIGhl
YWRsZXNzQmFja2VuZCA9IG5ldyBIZWFkbGVzc1ZpZXdCYWNrZW5kOwogICAgICAgICByZXR1cm4g
d2Via2l0X3dlYl92aWV3X2JhY2tlbmRfbmV3KGhlYWRsZXNzQmFja2VuZC0+YmFja2VuZCgpLCBb
XShncG9pbnRlciB1c2VyRGF0YSkgewogICAgICAgICAgICAgZGVsZXRlIHN0YXRpY19jYXN0PEhl
YWRsZXNzVmlld0JhY2tlbmQqPih1c2VyRGF0YSk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL3dwZS9QbGF0Zm9ybVdlYlZpZXdXUEUuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS93
cGUvUGxhdGZvcm1XZWJWaWV3V1BFLmNwcAppbmRleCBkNDhkODc3Mjg3ODFiMzIxZDg2NzVhMjM0
ZmM0N2YzN2IwMzVjYTU1Li43ZDgzNThlODE4MjcwZWI1NDI4YjdjZDk1NzhkMWU4MTFhYjBjZDcz
IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL3dwZS9QbGF0Zm9ybVdlYlZpZXdXUEUu
Y3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvd3BlL1BsYXRmb3JtV2ViVmlld1dQRS5jcHAK
QEAgLTYxLDIxICs2MSwxMyBAQCBQbGF0Zm9ybVdlYlZpZXc6OlBsYXRmb3JtV2ViVmlldyhXS1Bh
Z2VSZWYgcmVsYXRlZFBhZ2UpCiAKIFBsYXRmb3JtV2ViVmlldzo6flBsYXRmb3JtV2ViVmlldygp
CiB7Ci0gICAgaWYgKG1fYmFja2VuZCkKLSAgICAgICAgd3BlX3ZpZXdfYmFja2VuZF9kZXN0cm95
KG1fYmFja2VuZCk7Ci0KICAgICBkZWxldGUgbV93aW5kb3c7CiB9CiAKIHZvaWQgUGxhdGZvcm1X
ZWJWaWV3Ojppbml0aWFsaXplKFdLUGFnZUNvbmZpZ3VyYXRpb25SZWYgY29uZmlndXJhdGlvbikK
IHsKLSAgICBjb25zdCBjaGFyKiB1c2VIZWFkbGVzc1ZpZXdCYWNrZW5kID0gZ19nZXRlbnYoIldQ
RV9VU0VfSEVBRExFU1NfVklFV19CQUNLRU5EIik7Ci0gICAgaWYgKHVzZUhlYWRsZXNzVmlld0Jh
Y2tlbmQgJiYgc3RyY21wKHVzZUhlYWRsZXNzVmlld0JhY2tlbmQsICIwIikpCi0gICAgICAgIG1f
d2luZG93ID0gbmV3IEhlYWRsZXNzVmlld0JhY2tlbmQ7Ci0gICAgZWxzZQotICAgICAgICBtX2Jh
Y2tlbmQgPSB3cGVfdmlld19iYWNrZW5kX2NyZWF0ZSgpOwotCi0gICAgbV92aWV3ID0gV0tWaWV3
Q3JlYXRlKG1fd2luZG93ID8gbV93aW5kb3ctPmJhY2tlbmQoKSA6IG1fYmFja2VuZCwgY29uZmln
dXJhdGlvbik7CisgICAgbV93aW5kb3cgPSBuZXcgSGVhZGxlc3NWaWV3QmFja2VuZDsKKyAgICBt
X3ZpZXcgPSBXS1ZpZXdDcmVhdGUobV93aW5kb3ctPmJhY2tlbmQoKSwgY29uZmlndXJhdGlvbik7
CiB9CiAKIFdLUGFnZVJlZiBQbGF0Zm9ybVdlYlZpZXc6OnBhZ2UoKSBjb25zdApkaWZmIC0tZ2l0
IGEvVG9vbHMvd3BlL0hlYWRsZXNzVmlld0JhY2tlbmQvQ01ha2VMaXN0cy50eHQgYi9Ub29scy93
cGUvSGVhZGxlc3NWaWV3QmFja2VuZC9DTWFrZUxpc3RzLnR4dAppbmRleCA3MjRjNmQ5YzhlNmZk
ZTNjMTI4ODI1MGE4ZGE3ODQ3MzdhY2FmOGU2Li40ZTRkNjRjMDI0ZTU3ODRiMTBiM2E1NTM5OWE4
MGY5ZmMzYjE4ZDYyIDEwMDY0NAotLS0gYS9Ub29scy93cGUvSGVhZGxlc3NWaWV3QmFja2VuZC9D
TWFrZUxpc3RzLnR4dAorKysgYi9Ub29scy93cGUvSGVhZGxlc3NWaWV3QmFja2VuZC9DTWFrZUxp
c3RzLnR4dApAQCAtMSw1ICsxLDUgQEAKIGZpbmRfcGFja2FnZShMaWJHQk0gUkVRVUlSRUQpCi1m
aW5kX3BhY2thZ2UoV1BFQmFja2VuZC1tZXNhIFJFUVVJUkVEKQorZmluZF9wYWNrYWdlKFdQRUJh
Y2tlbmQtZmRvIFJFUVVJUkVEKQogCiBzZXQoV1BFSGVhZGxlc3NWaWV3QmFja2VuZF9TT1VSQ0VT
CiAgICAgJHtUT09MU19ESVJ9L3dwZS9IZWFkbGVzc1ZpZXdCYWNrZW5kL0hlYWRsZXNzVmlld0Jh
Y2tlbmQuY3BwCkBAIC05LDE0ICs5LDE0IEBAIHNldChXUEVIZWFkbGVzc1ZpZXdCYWNrZW5kX1NZ
U1RFTV9JTkNMVURFX0RJUkVDVE9SSUVTCiAgICAgJHtDQUlST19JTkNMVURFX0RJUlN9CiAgICAg
JHtHTElCX0lOQ0xVREVfRElSU30KICAgICAke0xJQkdCTV9JTkNMVURFX0RJUlN9Ci0gICAgJHtX
UEVfTUVTQV9JTkNMVURFX0RJUlN9CisgICAgJHtXUEVCQUNLRU5EX0ZET19JTkNMVURFX0RJUlN9
CiApCiAKIHNldChXUEVIZWFkbGVzc1ZpZXdCYWNrZW5kX0xJQlJBUklFUwogICAgICR7Q0FJUk9f
TElCUkFSSUVTfQogICAgICR7R0xJQl9MSUJSQVJJRVN9CiAgICAgJHtMSUJHQk1fTElCUkFSSUVT
fQotICAgICR7V1BFX01FU0FfTElCUkFSSUVTfQorICAgICR7V1BFQkFDS0VORF9GRE9fTElCUkFS
SUVTfQogKQogCiBhZGRfbGlicmFyeShXUEVIZWFkbGVzc1ZpZXdCYWNrZW5kICR7V1BFSGVhZGxl
c3NWaWV3QmFja2VuZF9TT1VSQ0VTfSkKZGlmZiAtLWdpdCBhL1Rvb2xzL3dwZS9IZWFkbGVzc1Zp
ZXdCYWNrZW5kL0hlYWRsZXNzVmlld0JhY2tlbmQuY3BwIGIvVG9vbHMvd3BlL0hlYWRsZXNzVmll
d0JhY2tlbmQvSGVhZGxlc3NWaWV3QmFja2VuZC5jcHAKaW5kZXggODM5MTg0YzY1NDdjOGQ1YzU2
ZWVjMDZkNzg5ZmQ4Y2M3MjFhMjRkNC4uM2JlMTM4MTQyYTg0YzYyNDhhZDNlYzM2OTA1MDk0OWNl
OGU1OWMwYSAxMDA2NDQKLS0tIGEvVG9vbHMvd3BlL0hlYWRsZXNzVmlld0JhY2tlbmQvSGVhZGxl
c3NWaWV3QmFja2VuZC5jcHAKKysrIGIvVG9vbHMvd3BlL0hlYWRsZXNzVmlld0JhY2tlbmQvSGVh
ZGxlc3NWaWV3QmFja2VuZC5jcHAKQEAgLTI4LDYgKzI4LDcgQEAKICNpbmNsdWRlIDxjYXNzZXJ0
PgogI2luY2x1ZGUgPGZjbnRsLmg+CiAjaW5jbHVkZSA8dW5pc3RkLmg+CisjaW5jbHVkZSA8d3Bl
LWZkby9pbml0aWFsaXplLWVnbC5oPgogCiAvLyBNYW51YWxseSBwcm92aWRlIHRoZSBFR0xfQ0FT
VCBDKysgZGVmaW5pdGlvbiBpbiBjYXNlIGVnbHBsYXRmb3JtLmggZG9lc24ndCBwcm92aWRlIGl0
LgogI2lmbmRlZiBFR0xfQ0FTVApAQCAtMzcsMjAgKzM4LDExIEBACiAvLyBLZWVwIHRoaXMgaW4g
c3luYyB3aXRoIHd0Zi9nbGliL1J1bkxvb3BTb3VyY2VQcmlvcml0eS5oLgogc3RhdGljIGludCBr
UnVuTG9vcFNvdXJjZVByaW9yaXR5RGlzcGF0Y2hlciA9IC03MDsKIAotLy8gRklYTUU6IERlcGxv
eSBnb29kIHByYWN0aWNlcyBhbmQgY2xlYW4gdXAgR0JNIHJlc291cmNlcyBhdCBwcm9jZXNzIGV4
aXQuCiBzdGF0aWMgRUdMRGlzcGxheSBnZXRFR0xEaXNwbGF5KCkKIHsKICAgICBzdGF0aWMgRUdM
RGlzcGxheSBzX2Rpc3BsYXkgPSBFR0xfTk9fRElTUExBWTsKICAgICBpZiAoc19kaXNwbGF5ID09
IEVHTF9OT19ESVNQTEFZKSB7Ci0gICAgICAgIGludCBmZCA9IG9wZW4oIi9kZXYvZHJpL3JlbmRl
ckQxMjgiLCBPX1JEV1IgfCBPX0NMT0VYRUMgfCBPX05PQ1RUWSB8IE9fTk9OQkxPQ0spOwotICAg
ICAgICBpZiAoZmQgPCAwKQotICAgICAgICAgICAgcmV0dXJuIEVHTF9OT19ESVNQTEFZOwotCi0g
ICAgICAgIHN0cnVjdCBnYm1fZGV2aWNlKiBkZXZpY2UgPSBnYm1fY3JlYXRlX2RldmljZShmZCk7
Ci0gICAgICAgIGlmICghZGV2aWNlKQotICAgICAgICAgICAgcmV0dXJuIEVHTF9OT19ESVNQTEFZ
OwotCi0gICAgICAgIEVHTERpc3BsYXkgZGlzcGxheSA9IGVnbEdldERpc3BsYXkoZGV2aWNlKTsK
KyAgICAgICAgRUdMRGlzcGxheSBkaXNwbGF5ID0gZWdsR2V0RGlzcGxheShFR0xfREVGQVVMVF9E
SVNQTEFZKTsKICAgICAgICAgaWYgKGRpc3BsYXkgPT0gRUdMX05PX0RJU1BMQVkpCiAgICAgICAg
ICAgICByZXR1cm4gRUdMX05PX0RJU1BMQVk7CiAKQEAgLTYwLDYgKzUyLDcgQEAgc3RhdGljIEVH
TERpc3BsYXkgZ2V0RUdMRGlzcGxheSgpCiAgICAgICAgIGlmICghZWdsQmluZEFQSShFR0xfT1BF
TkdMX0VTX0FQSSkpCiAgICAgICAgICAgICByZXR1cm4gRUdMX05PX0RJU1BMQVk7CiAKKyAgICAg
ICAgd3BlX2Zkb19pbml0aWFsaXplX2Zvcl9lZ2xfZGlzcGxheShkaXNwbGF5KTsKICAgICAgICAg
c19kaXNwbGF5ID0gZGlzcGxheTsKICAgICB9CiAKQEAgLTk5LDkgKzkyLDEwIEBAIEhlYWRsZXNz
Vmlld0JhY2tlbmQ6OkhlYWRsZXNzVmlld0JhY2tlbmQoKQogCiAgICAgbV9lZ2wuY3JlYXRlSW1h
Z2UgPSByZWludGVycHJldF9jYXN0PFBGTkVHTENSRUFURUlNQUdFS0hSUFJPQz4oZWdsR2V0UHJv
Y0FkZHJlc3MoImVnbENyZWF0ZUltYWdlS0hSIikpOwogICAgIG1fZWdsLmRlc3Ryb3lJbWFnZSA9
IHJlaW50ZXJwcmV0X2Nhc3Q8UEZORUdMREVTVFJPWUlNQUdFS0hSUFJPQz4oZWdsR2V0UHJvY0Fk
ZHJlc3MoImVnbERlc3Ryb3lJbWFnZUtIUiIpKTsKKyAgICBtX2VnbC5xdWVyeUJ1ZmZlciA9IHJl
aW50ZXJwcmV0X2Nhc3Q8UEZORUdMUVVFUllXQVlMQU5EQlVGRkVSV0w+KGVnbEdldFByb2NBZGRy
ZXNzKCJlZ2xRdWVyeVdheWxhbmRCdWZmZXJXTCIpKTsKICAgICBtX2VnbC5pbWFnZVRhcmdldFRl
eHR1cmUyRE9FUyA9IHJlaW50ZXJwcmV0X2Nhc3Q8UEZOR0xFR0xJTUFHRVRBUkdFVFRFWFRVUkUy
RE9FU1BST0M+KGVnbEdldFByb2NBZGRyZXNzKCJnbEVHTEltYWdlVGFyZ2V0VGV4dHVyZTJET0VT
IikpOwogCi0gICAgbV9leHBvcnRhYmxlID0gd3BlX21lc2Ffdmlld19iYWNrZW5kX2V4cG9ydGFi
bGVfZG1hX2J1Zl9jcmVhdGUoJnNfZXhwb3J0YWJsZUNsaWVudCwgdGhpcyk7CisgICAgbV9leHBv
cnRhYmxlID0gd3BlX3ZpZXdfYmFja2VuZF9leHBvcnRhYmxlX2Zkb19jcmVhdGUoJnNfZXhwb3J0
YWJsZUNsaWVudCwgdGhpcywgODAwLCA2MDApOwogCiAgICAgbV91cGRhdGVTb3VyY2UgPSBnX3Rp
bWVvdXRfc291cmNlX25ldyhtX2ZyYW1lUmF0ZSAvIDEwMDApOwogICAgIGdfc291cmNlX3NldF9j
YWxsYmFjayhtX3VwZGF0ZVNvdXJjZSwKQEAgLTExNiwyOSArMTEwLDI1IEBAIEhlYWRsZXNzVmll
d0JhY2tlbmQ6OkhlYWRsZXNzVmlld0JhY2tlbmQoKQogCiBIZWFkbGVzc1ZpZXdCYWNrZW5kOjp+
SGVhZGxlc3NWaWV3QmFja2VuZCgpCiB7Ci0gICAgaWYgKG1fdXBkYXRlU291cmNlKQorICAgIGlm
IChtX3VwZGF0ZVNvdXJjZSkgewogICAgICAgICBnX3NvdXJjZV9kZXN0cm95KG1fdXBkYXRlU291
cmNlKTsKKyAgICAgICAgZ19zb3VyY2VfdW5yZWYobV91cGRhdGVTb3VyY2UpOworICAgIH0KIAog
ICAgIGlmIChhdXRvIGltYWdlID0gc3RkOjpnZXQ8MD4obV9wZW5kaW5nSW1hZ2Uuc2Vjb25kKSkK
ICAgICAgICAgbV9lZ2wuZGVzdHJveUltYWdlKG1fZWdsLmRpc3BsYXksIGltYWdlKTsKICAgICBp
ZiAoYXV0byBpbWFnZSA9IHN0ZDo6Z2V0PDA+KG1fbG9ja2VkSW1hZ2Uuc2Vjb25kKSkKICAgICAg
ICAgbV9lZ2wuZGVzdHJveUltYWdlKG1fZWdsLmRpc3BsYXksIGltYWdlKTsKIAotICAgIGZvciAo
YXV0byBpdCA6IG1fZXhwb3J0TWFwKSB7Ci0gICAgICAgIGludCBmZCA9IGl0LnNlY29uZDsKLSAg
ICAgICAgaWYgKGZkID49IDApCi0gICAgICAgICAgICBjbG9zZShmZCk7Ci0gICAgfQotCiAgICAg
aWYgKG1fZWdsLmNvbnRleHQpCiAgICAgICAgIGVnbERlc3Ryb3lDb250ZXh0KG1fZWdsLmRpc3Bs
YXksIG1fZWdsLmNvbnRleHQpOwogCi0gICAgd3BlX21lc2Ffdmlld19iYWNrZW5kX2V4cG9ydGFi
bGVfZG1hX2J1Zl9kZXN0cm95KG1fZXhwb3J0YWJsZSk7CisgICAgd3BlX3ZpZXdfYmFja2VuZF9l
eHBvcnRhYmxlX2Zkb19kZXN0cm95KG1fZXhwb3J0YWJsZSk7CiB9CiAKIHN0cnVjdCB3cGVfdmll
d19iYWNrZW5kKiBIZWFkbGVzc1ZpZXdCYWNrZW5kOjpiYWNrZW5kKCkgY29uc3QKIHsKLSAgICBy
ZXR1cm4gd3BlX21lc2Ffdmlld19iYWNrZW5kX2V4cG9ydGFibGVfZG1hX2J1Zl9nZXRfdmlld19i
YWNrZW5kKG1fZXhwb3J0YWJsZSk7CisgICAgcmV0dXJuIHdwZV92aWV3X2JhY2tlbmRfZXhwb3J0
YWJsZV9mZG9fZ2V0X3ZpZXdfYmFja2VuZChtX2V4cG9ydGFibGUpOwogfQogCiBjYWlyb19zdXJm
YWNlX3QqIEhlYWRsZXNzVmlld0JhY2tlbmQ6OmNyZWF0ZVNuYXBzaG90KCkKQEAgLTE1NSw3ICsx
NDUsOCBAQCBjYWlyb19zdXJmYWNlX3QqIEhlYWRsZXNzVmlld0JhY2tlbmQ6OmNyZWF0ZVNuYXBz
aG90KCkKICAgICB1aW50OF90KiBidWZmZXIgPSBuZXcgdWludDhfdFs0ICogd2lkdGggKiBoZWln
aHRdOwogICAgIGJvb2wgc3VjY2Vzc2Z1bFNuYXBzaG90ID0gZmFsc2U7CiAKLSAgICBtYWtlQ3Vy
cmVudCgpOworICAgIGlmICghZWdsTWFrZUN1cnJlbnQobV9lZ2wuZGlzcGxheSwgRUdMX05PX1NV
UkZBQ0UsIEVHTF9OT19TVVJGQUNFLCBtX2VnbC5jb250ZXh0KSkKKyAgICAgICAgcmV0dXJuIG51
bGxwdHI7CiAKICAgICBHTHVpbnQgaW1hZ2VUZXh0dXJlOwogICAgIGdsR2VuVGV4dHVyZXMoMSwg
JmltYWdlVGV4dHVyZSk7CkBAIC0yMDMsNTcgKzE5NCw0MiBAQCBjYWlyb19zdXJmYWNlX3QqIEhl
YWRsZXNzVmlld0JhY2tlbmQ6OmNyZWF0ZVNuYXBzaG90KCkKICAgICByZXR1cm4gaW1hZ2VTdXJm
YWNlOwogfQogCi1ib29sIEhlYWRsZXNzVmlld0JhY2tlbmQ6Om1ha2VDdXJyZW50KCkKLXsKLSAg
ICByZXR1cm4gZWdsTWFrZUN1cnJlbnQobV9lZ2wuZGlzcGxheSwgRUdMX05PX1NVUkZBQ0UsIEVH
TF9OT19TVVJGQUNFLCBtX2VnbC5jb250ZXh0KTsKLX0KLQogdm9pZCBIZWFkbGVzc1ZpZXdCYWNr
ZW5kOjpwZXJmb3JtVXBkYXRlKCkKIHsKICAgICBpZiAoIW1fcGVuZGluZ0ltYWdlLmZpcnN0KQog
ICAgICAgICByZXR1cm47CiAKLSAgICB3cGVfbWVzYV92aWV3X2JhY2tlbmRfZXhwb3J0YWJsZV9k
bWFfYnVmX2Rpc3BhdGNoX2ZyYW1lX2NvbXBsZXRlKG1fZXhwb3J0YWJsZSk7CisgICAgd3BlX3Zp
ZXdfYmFja2VuZF9leHBvcnRhYmxlX2Zkb19kaXNwYXRjaF9mcmFtZV9jb21wbGV0ZShtX2V4cG9y
dGFibGUpOwogICAgIGlmIChtX2xvY2tlZEltYWdlLmZpcnN0KSB7Ci0gICAgICAgIHdwZV9tZXNh
X3ZpZXdfYmFja2VuZF9leHBvcnRhYmxlX2RtYV9idWZfZGlzcGF0Y2hfcmVsZWFzZV9idWZmZXIo
bV9leHBvcnRhYmxlLCBtX2xvY2tlZEltYWdlLmZpcnN0KTsKKyAgICAgICAgd3BlX3ZpZXdfYmFj
a2VuZF9leHBvcnRhYmxlX2Zkb19kaXNwYXRjaF9yZWxlYXNlX2J1ZmZlcihtX2V4cG9ydGFibGUs
IG1fbG9ja2VkSW1hZ2UuZmlyc3QpOwogICAgICAgICBtX2VnbC5kZXN0cm95SW1hZ2UobV9lZ2wu
ZGlzcGxheSwgc3RkOjpnZXQ8MD4obV9sb2NrZWRJbWFnZS5zZWNvbmQpKTsKICAgICB9CiAKICAg
ICBtX2xvY2tlZEltYWdlID0gbV9wZW5kaW5nSW1hZ2U7Ci0gICAgbV9wZW5kaW5nSW1hZ2UgPSBz
dGQ6OnBhaXI8dWludDMyX3QsIHN0ZDo6dHVwbGU8RUdMSW1hZ2VLSFIsIHVpbnQzMl90LCB1aW50
MzJfdD4+IHsgfTsKKyAgICBtX3BlbmRpbmdJbWFnZSA9IHN0ZDo6cGFpcjxzdHJ1Y3Qgd2xfcmVz
b3VyY2UqLCBzdGQ6OnR1cGxlPEVHTEltYWdlS0hSLCB1aW50MzJfdCwgdWludDMyX3Q+PiB7IH07
CiB9CiAKLXN0cnVjdCB3cGVfbWVzYV92aWV3X2JhY2tlbmRfZXhwb3J0YWJsZV9kbWFfYnVmX2Ns
aWVudCBIZWFkbGVzc1ZpZXdCYWNrZW5kOjpzX2V4cG9ydGFibGVDbGllbnQgPSB7Ci0gICAgLy8g
ZXhwb3J0X2RtYV9idWYKLSAgICBbXSh2b2lkKiBkYXRhLCBzdHJ1Y3Qgd3BlX21lc2Ffdmlld19i
YWNrZW5kX2V4cG9ydGFibGVfZG1hX2J1Zl9kYXRhKiBpbWFnZURhdGEpCitzdHJ1Y3Qgd3BlX3Zp
ZXdfYmFja2VuZF9leHBvcnRhYmxlX2Zkb19jbGllbnQgSGVhZGxlc3NWaWV3QmFja2VuZDo6c19l
eHBvcnRhYmxlQ2xpZW50ID0geworICAgIC8vIGV4cG9ydF9idWZmZXJfcmVzb3VyY2UKKyAgICBb
XSh2b2lkKiBkYXRhLCBzdHJ1Y3Qgd2xfcmVzb3VyY2UqIGJ1ZmZlclJlc291cmNlKQogICAgIHsK
ICAgICAgICAgYXV0byYgYmFja2VuZCA9ICpzdGF0aWNfY2FzdDxIZWFkbGVzc1ZpZXdCYWNrZW5k
Kj4oZGF0YSk7CisgICAgICAgIGlmIChiYWNrZW5kLm1fcGVuZGluZ0ltYWdlLmZpcnN0KQorICAg
ICAgICAgICAgc3RkOjphYm9ydCgpOworCisgICAgICAgIGF1dG8mIGVnbCA9IGJhY2tlbmQubV9l
Z2w7CisKKyAgICAgICAgRUdMaW50IGZvcm1hdCA9IDA7CisgICAgICAgIGlmICghZWdsLnF1ZXJ5
QnVmZmVyKGVnbC5kaXNwbGF5LCBidWZmZXJSZXNvdXJjZSwgRUdMX1RFWFRVUkVfRk9STUFULCAm
Zm9ybWF0KSB8fCBmb3JtYXQgIT0gRUdMX1RFWFRVUkVfUkdCQSkKKyAgICAgICAgICAgIHJldHVy
bjsKKworICAgICAgICBFR0xpbnQgd2lkdGgsIGhlaWdodDsKKyAgICAgICAgaWYgKCFlZ2wucXVl
cnlCdWZmZXIoZWdsLmRpc3BsYXksIGJ1ZmZlclJlc291cmNlLCBFR0xfV0lEVEgsICZ3aWR0aCkK
KyAgICAgICAgICAgIHx8ICFlZ2wucXVlcnlCdWZmZXIoZWdsLmRpc3BsYXksIGJ1ZmZlclJlc291
cmNlLCBFR0xfSEVJR0hULCAmaGVpZ2h0KSkKKyAgICAgICAgICAgIHJldHVybjsKIAotICAgICAg
ICBhdXRvIGl0ID0gYmFja2VuZC5tX2V4cG9ydE1hcC5lbmQoKTsKLSAgICAgICAgaWYgKGltYWdl
RGF0YS0+ZmQgPj0gMCkgewotICAgICAgICAgICAgYXNzZXJ0KGJhY2tlbmQubV9leHBvcnRNYXAu
ZmluZChpbWFnZURhdGEtPmhhbmRsZSkgPT0gYmFja2VuZC5tX2V4cG9ydE1hcC5lbmQoKSk7Ci0K
LSAgICAgICAgICAgIGl0ID0gYmFja2VuZC5tX2V4cG9ydE1hcC5pbnNlcnQoeyBpbWFnZURhdGEt
PmhhbmRsZSwgaW1hZ2VEYXRhLT5mZCB9KS5maXJzdDsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAg
ICAgICAgIGFzc2VydChiYWNrZW5kLm1fZXhwb3J0TWFwLmZpbmQoaW1hZ2VEYXRhLT5oYW5kbGUp
ICE9IGJhY2tlbmQubV9leHBvcnRNYXAuZW5kKCkpOwotICAgICAgICAgICAgaXQgPSBiYWNrZW5k
Lm1fZXhwb3J0TWFwLmZpbmQoaW1hZ2VEYXRhLT5oYW5kbGUpOwotICAgICAgICB9Ci0KLSAgICAg
ICAgYXNzZXJ0KGl0ICE9IGJhY2tlbmQubV9leHBvcnRNYXAuZW5kKCkpOwotICAgICAgICBpbnQz
Ml90IGZkID0gaXQtPnNlY29uZDsKLQotICAgICAgICBiYWNrZW5kLm1ha2VDdXJyZW50KCk7Ci0K
LSAgICAgICAgRUdMaW50IGF0dHJpYnV0ZXNbXSA9IHsKLSAgICAgICAgICAgIEVHTF9XSURUSCwg
c3RhdGljX2Nhc3Q8RUdMaW50PihpbWFnZURhdGEtPndpZHRoKSwKLSAgICAgICAgICAgIEVHTF9I
RUlHSFQsIHN0YXRpY19jYXN0PEVHTGludD4oaW1hZ2VEYXRhLT5oZWlnaHQpLAotICAgICAgICAg
ICAgRUdMX0xJTlVYX0RSTV9GT1VSQ0NfRVhULCBzdGF0aWNfY2FzdDxFR0xpbnQ+KGltYWdlRGF0
YS0+Zm9ybWF0KSwKLSAgICAgICAgICAgIEVHTF9ETUFfQlVGX1BMQU5FMF9GRF9FWFQsIGZkLAot
ICAgICAgICAgICAgRUdMX0RNQV9CVUZfUExBTkUwX09GRlNFVF9FWFQsIDAsCi0gICAgICAgICAg
ICBFR0xfRE1BX0JVRl9QTEFORTBfUElUQ0hfRVhULCBzdGF0aWNfY2FzdDxFR0xpbnQ+KGltYWdl
RGF0YS0+c3RyaWRlKSwKLSAgICAgICAgICAgIEVHTF9OT05FLAotICAgICAgICB9OwotICAgICAg
ICBFR0xJbWFnZUtIUiBpbWFnZSA9IGJhY2tlbmQubV9lZ2wuY3JlYXRlSW1hZ2UoYmFja2VuZC5t
X2VnbC5kaXNwbGF5LCBFR0xfTk9fQ09OVEVYVCwgRUdMX0xJTlVYX0RNQV9CVUZfRVhULCBudWxs
cHRyLCBhdHRyaWJ1dGVzKTsKLSAgICAgICAgYmFja2VuZC5tX3BlbmRpbmdJbWFnZSA9IHsgaW1h
Z2VEYXRhLT5oYW5kbGUsIHN0ZDo6bWFrZV90dXBsZShpbWFnZSwgaW1hZ2VEYXRhLT53aWR0aCwg
aW1hZ2VEYXRhLT5oZWlnaHQpIH07CisgICAgICAgIEVHTGludCBhdHRyaWJ1dGVzW10gPSB7IEVH
TF9XQVlMQU5EX1BMQU5FX1dMLCAwLCBFR0xfTk9ORSB9OworICAgICAgICBFR0xJbWFnZUtIUiBp
bWFnZSA9IGVnbC5jcmVhdGVJbWFnZShlZ2wuZGlzcGxheSwgRUdMX05PX0NPTlRFWFQsIEVHTF9X
QVlMQU5EX0JVRkZFUl9XTCwgYnVmZmVyUmVzb3VyY2UsIGF0dHJpYnV0ZXMpOworICAgICAgICBi
YWNrZW5kLm1fcGVuZGluZ0ltYWdlID0geyBidWZmZXJSZXNvdXJjZSwgc3RkOjptYWtlX3R1cGxl
KGltYWdlLCB3aWR0aCwgaGVpZ2h0KSB9OwogICAgIH0sCiB9OwpkaWZmIC0tZ2l0IGEvVG9vbHMv
d3BlL0hlYWRsZXNzVmlld0JhY2tlbmQvSGVhZGxlc3NWaWV3QmFja2VuZC5oIGIvVG9vbHMvd3Bl
L0hlYWRsZXNzVmlld0JhY2tlbmQvSGVhZGxlc3NWaWV3QmFja2VuZC5oCmluZGV4IGExYmU0ODk2
YzdjOTU5OWM5NTc0YWZlYWNhYWMwM2ZkOWU5YzY3ODEuLmI1NjEwYjdmNTk3YzI5MmY2ZGM5ZDQ3
YWY5OGJlZmY4MDA2MGE2ZDQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL3dwZS9IZWFkbGVzc1ZpZXdCYWNr
ZW5kL0hlYWRsZXNzVmlld0JhY2tlbmQuaAorKysgYi9Ub29scy93cGUvSGVhZGxlc3NWaWV3QmFj
a2VuZC9IZWFkbGVzc1ZpZXdCYWNrZW5kLmgKQEAgLTMyLDcgKzMyLDE1IEBACiAjaW5jbHVkZSA8
Y2Fpcm8uaD4KICNpbmNsdWRlIDxnbGliLmg+CiAjaW5jbHVkZSA8dW5vcmRlcmVkX21hcD4KLSNp
bmNsdWRlIDx3cGUtbWVzYS92aWV3LWJhY2tlbmQtZXhwb3J0YWJsZS1kbWEtYnVmLmg+CisjaW5j
bHVkZSA8d3BlLWZkby92aWV3LWJhY2tlbmQtZXhwb3J0YWJsZS5oPgorCisjaWZuZGVmIEVHTF9X
TF9iaW5kX3dheWxhbmRfZGlzcGxheQorI2RlZmluZSBFR0xfV0xfYmluZF93YXlsYW5kX2Rpc3Bs
YXkgMQordHlwZWRlZiBFR0xCb29sZWFuIChFR0xBUElFTlRSWVAgUEZORUdMUVVFUllXQVlMQU5E
QlVGRkVSV0wpIChFR0xEaXNwbGF5IGRweSwgc3RydWN0IHdsX3Jlc291cmNlICpidWZmZXIsIEVH
TGludCBhdHRyaWJ1dGUsIEVHTGludCAqdmFsdWUpOworCisjZGVmaW5lIEVHTF9XQVlMQU5EX0JV
RkZFUl9XTCAgICAgICAweDMxRDUgLyogZWdsQ3JlYXRlSW1hZ2VLSFIgdGFyZ2V0ICovCisjZGVm
aW5lIEVHTF9XQVlMQU5EX1BMQU5FX1dMICAgICAgICAweDMxRDYgLyogZWdsQ3JlYXRlSW1hZ2VL
SFIgdGFyZ2V0ICovCisjZW5kaWYKIAogY2xhc3MgSGVhZGxlc3NWaWV3QmFja2VuZCB7CiBwdWJs
aWM6CkBAIC00NCwyNiArNTIsMjUgQEAgcHVibGljOgogICAgIGNhaXJvX3N1cmZhY2VfdCogY3Jl
YXRlU25hcHNob3QoKTsKIAogcHJpdmF0ZToKLSAgICBib29sIG1ha2VDdXJyZW50KCk7CiAgICAg
dm9pZCBwZXJmb3JtVXBkYXRlKCk7CiAKLSAgICBzdGF0aWMgc3RydWN0IHdwZV9tZXNhX3ZpZXdf
YmFja2VuZF9leHBvcnRhYmxlX2RtYV9idWZfY2xpZW50IHNfZXhwb3J0YWJsZUNsaWVudDsKKyAg
ICBzdGF0aWMgc3RydWN0IHdwZV92aWV3X2JhY2tlbmRfZXhwb3J0YWJsZV9mZG9fY2xpZW50IHNf
ZXhwb3J0YWJsZUNsaWVudDsKIAogICAgIHN0cnVjdCB7CiAgICAgICAgIEVHTERpc3BsYXkgZGlz
cGxheTsKICAgICAgICAgRUdMQ29uZmlnIGNvbmZpZzsKLSAgICAgICAgRUdMQ29udGV4dCBjb250
ZXh0OworICAgICAgICBFR0xDb250ZXh0IGNvbnRleHQgeyBudWxscHRyIH07CiAKICAgICAgICAg
UEZORUdMQ1JFQVRFSU1BR0VLSFJQUk9DIGNyZWF0ZUltYWdlOwogICAgICAgICBQRk5FR0xERVNU
Uk9ZSU1BR0VLSFJQUk9DIGRlc3Ryb3lJbWFnZTsKKyAgICAgICAgUEZORUdMUVVFUllXQVlMQU5E
QlVGRkVSV0wgcXVlcnlCdWZmZXI7CiAgICAgICAgIFBGTkdMRUdMSU1BR0VUQVJHRVRURVhUVVJF
MkRPRVNQUk9DIGltYWdlVGFyZ2V0VGV4dHVyZTJET0VTOwogICAgIH0gbV9lZ2w7CiAKLSAgICBz
dHJ1Y3Qgd3BlX21lc2Ffdmlld19iYWNrZW5kX2V4cG9ydGFibGVfZG1hX2J1ZiogbV9leHBvcnRh
YmxlOworICAgIHN0cnVjdCB3cGVfdmlld19iYWNrZW5kX2V4cG9ydGFibGVfZmRvKiBtX2V4cG9y
dGFibGU7CiAKLSAgICBzdGQ6OnVub3JkZXJlZF9tYXA8dWludDMyX3QsIGludDMyX3Q+IG1fZXhw
b3J0TWFwOwotICAgIHN0ZDo6cGFpcjx1aW50MzJfdCwgc3RkOjp0dXBsZTxFR0xJbWFnZUtIUiwg
dWludDMyX3QsIHVpbnQzMl90Pj4gbV9wZW5kaW5nSW1hZ2UgeyB9OwotICAgIHN0ZDo6cGFpcjx1
aW50MzJfdCwgc3RkOjp0dXBsZTxFR0xJbWFnZUtIUiwgdWludDMyX3QsIHVpbnQzMl90Pj4gbV9s
b2NrZWRJbWFnZSB7IH07CisgICAgc3RkOjpwYWlyPHN0cnVjdCB3bF9yZXNvdXJjZSosIHN0ZDo6
dHVwbGU8RUdMSW1hZ2VLSFIsIHVpbnQzMl90LCB1aW50MzJfdD4+IG1fcGVuZGluZ0ltYWdlIHsg
fTsKKyAgICBzdGQ6OnBhaXI8c3RydWN0IHdsX3Jlc291cmNlKiwgc3RkOjp0dXBsZTxFR0xJbWFn
ZUtIUiwgdWludDMyX3QsIHVpbnQzMl90Pj4gbV9sb2NrZWRJbWFnZSB7IH07CiAKICAgICBHU291
cmNlKiBtX3VwZGF0ZVNvdXJjZTsKICAgICBnaW50NjQgbV9mcmFtZVJhdGUgeyBHX1VTRUNfUEVS
X1NFQyAvIDYwIH07CmRpZmYgLS1naXQgYS9Ub29scy93cGUvamhidWlsZC5tb2R1bGVzIGIvVG9v
bHMvd3BlL2poYnVpbGQubW9kdWxlcwppbmRleCAwZjhiZmVhMzdkYzQxMjgwYTY4MDVlYzk2NWI1
ZTRiMTI2ZjcwYzM3Li4yMDg3YmNiYzM2ZDNlMjg5N2ZmNTM4YjRjZjUzNGNiNDBiNzg1M2YzIDEw
MDY0NAotLS0gYS9Ub29scy93cGUvamhidWlsZC5tb2R1bGVzCisrKyBiL1Rvb2xzL3dwZS9qaGJ1
aWxkLm1vZHVsZXMKQEAgLTE5LDggKzE5LDggQEAKICAgICAgIDxkZXAgcGFja2FnZT0ieGtiY29t
bW9uIi8+CiAgICAgICA8ZGVwIHBhY2thZ2U9IndlYmtpdC1nc3RyZWFtZXItdGVzdGluZy1kZXBl
bmRlbmNpZXMiLz4KICAgICAgIDxkZXAgcGFja2FnZT0id29mZjIiLz4KLSAgICAgIDxkZXAgcGFj
a2FnZT0id3BlIi8+Ci0gICAgICA8ZGVwIHBhY2thZ2U9IndwZS1tZXNhIi8+CisgICAgICA8ZGVw
IHBhY2thZ2U9IndwZWJhY2tlbmQiLz4KKyAgICAgIDxkZXAgcGFja2FnZT0id3BlYmFja2VuZC1m
ZG8iLz4KICAgICAgIDxkZXAgcGFja2FnZT0ibGliZ3BnLWVycm9yIi8+CiAgICAgICA8ZGVwIHBh
Y2thZ2U9ImxpYmdjcnlwdCIvPgogICAgICAgPGRlcCBwYWNrYWdlPSJsaWJlcG94eSIvPgpAQCAt
MTcyLDE5ICsxNzIsMTkgQEAKICAgICAgICAgICAgIGhhc2g9InNoYTE6NzEyNzk5M2JmYjY5ZTEz
Y2RmZjI1ZmI4YjNjOGYyNmNlNmJlNWJmYSIvPgogICA8L2F1dG90b29scz4KIAotICA8Y21ha2Ug
aWQ9IndwZSI+CisgIDxjbWFrZSBpZD0id3BlYmFja2VuZCI+CiAgICAgPGJyYW5jaCByZXBvPSJn
aXRodWIuY29tIiBtb2R1bGU9IldlYlBsYXRmb3JtRm9yRW1iZWRkZWQvV1BFQmFja2VuZC5naXQi
CiAgICAgICAgICAgICB0YWc9IjMwMTNmYWFlYmFiNDJlN2VmNzQ5N2IzODUwYTI5MDI5NzhlYjNk
NmYiIC8+CiAgIDwvY21ha2U+CiAKLSAgPGNtYWtlIGlkPSJ3cGUtbWVzYSI+CisgIDxjbWFrZSBp
ZD0id3BlYmFja2VuZC1mZG8iPgogICAgIDxkZXBlbmRlbmNpZXM+Ci0gICAgICA8ZGVwIHBhY2th
Z2U9IndwZSIgLz4KLSAgICAgIDxkZXAgcGFja2FnZT0iZ2xpYiIgLz4KLSAgICAgIDxkZXAgcGFj
a2FnZT0ieGtiY29tbW9uIiAvPgorICAgICAgPGRlcCBwYWNrYWdlPSJ3cGViYWNrZW5kIi8+Cisg
ICAgICA8ZGVwIHBhY2thZ2U9ImdsaWIiLz4KKyAgICAgIDxkZXAgcGFja2FnZT0ieGtiY29tbW9u
Ii8+CiAgICAgPC9kZXBlbmRlbmNpZXM+Ci0gICAgPGJyYW5jaCByZXBvPSJnaXRodWIuY29tIiBt
b2R1bGU9IldlYlBsYXRmb3JtRm9yRW1iZWRkZWQvV1BFQmFja2VuZC1tZXNhLmdpdCIKLSAgICAg
ICAgICAgIHRhZz0iOGUxNTk4MzJkYzU1MTY0NzU4ZjY4ZmFkMDJmNTJlNmFkN2M3MDY0MiIgLz4K
KyAgICA8YnJhbmNoIHJlcG89ImdpdGh1Yi5jb20iIG1vZHVsZT0iSWdhbGlhL1dQRUJhY2tlbmQt
ZmRvLmdpdCIKKyAgICAgICAgICAgIHRhZz0iMDY0YzYwODA2NDIyZmYxYmIzMmNlZjdmYjFkZTY4
OTIzYWVjYmE4MiIvPgogICA8L2NtYWtlPgogCiAgIDxhdXRvdG9vbHMgaWQ9ImxpYmdwZy1lcnJv
ciIgYXV0b2dlbi1zaD0iY29uZmlndXJlIj4KQEAgLTIxMyw3ICsyMTMsNyBAQAogICA8L2F1dG90
b29scz4KIAogICA8YXV0b3Rvb2xzIGlkPSJkeXoiIHN1cHBvcnRzLW5vbi1zcmNkaXItYnVpbGRz
PSJubyI+Ci0gICAgPGJyYW5jaCByZXBvPSJnaXRodWIuY29tIiBtb2R1bGU9IklnYWxpYS9keXoi
IHRhZz0iMjAzYTFlYmQxNDgxZTQ0YWE4MTA1ZTg2MmMwMmYzMTdlNjY1MzYyNyIvPgorICAgIDxi
cmFuY2ggcmVwbz0iZ2l0aHViLmNvbSIgbW9kdWxlPSJJZ2FsaWEvZHl6IiB0YWc9Ijc0YTM2OGNj
NjNhMGZmOWJiYTY3NTE4MmFmZmEzYTNmZDEzYWFkODAiLz4KICAgPC9hdXRvdG9vbHM+CiAKICAg
PG1lc29uIGlkPSJncmFwaGVuZSI+CmRpZmYgLS1naXQgYS9DaGFuZ2VMb2cgYi9DaGFuZ2VMb2cK
aW5kZXggY2IxZWMwNmZmOGU1MmJiYzJjNDQ3MjY0ZWEwZDdlMThlNzc5MTZhMy4uMWY5ZTQ2ODdm
MTlhNzc4NzY3ZWMyOTA1NWFlMjFkOTg2YzA0ZjZkMiAxMDA2NDQKLS0tIGEvQ2hhbmdlTG9nCisr
KyBiL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDE4LTA0LTExICBaYW4gRG9iZXJzZWsg
IDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KKworICAgICAgICBbV1BFXSBTd2l0Y2ggdGVzdGluZyBw
cm9jZXNzIHRvIHVzaW5nIFdQRUJhY2tlbmQtZmRvCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODQzNTcKKworICAgICAgICBSZXZpZXdlZCBieSBDYXJs
b3MgQWxiZXJ0byBMb3BleiBQZXJlei4KKworICAgICAgICAqIFNvdXJjZS9jbWFrZS9GaW5kV1BF
QmFja2VuZC1mZG8uY21ha2U6IFJlbmFtZWQgZnJvbSBTb3VyY2UvY21ha2UvRmluZFdQRUJhY2tl
bmQtbWVzYS5jbWFrZS4KKwogMjAxOC0wNC0xMSAgVGhpYmF1bHQgU2F1bmllciAgPHRzYXVuaWVy
QGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dTdHJlYW1lcl0gVXNlIG9mIHBsYXliaW4zIHdoZW4g
VVNFX1BMQVlCSU4zIGVudmlyb25tZW50IHZhcmlhYmxlIGlzIHNldAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>