<?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>238494</bug_id>
          
          <creation_ts>2022-03-29 01:48:36 -0700</creation_ts>
          <short_desc>REGRESSION(r290360): [GLX] Crash on process exit</short_desc>
          <delta_ts>2022-04-01 02:00:45 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKitGTK</component>
          <version>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=217655</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>Gtk</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Carlos Garcia Campos">cgarcia</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>ajacoutot</cc>
    
    <cc>bugs-noreply</cc>
    
    <cc>mcatanzaro</cc>
    
    <cc>robert.nagy</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1855946</commentid>
    <comment_count>0</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2022-03-29 01:48:36 -0700</bug_when>
    <thetext>After upgrading to webkitgtk 2.36.0 from 2.34 we have noticed a crash on ever exit
in all binaries using webkitgtk and reverting this commit fixes the issue.

I assume there is either a race or somethig gets called twice and it is trying
to destroy an already destroyed resource.

Backtrace:

#0  native () at /home/pobj/webkitgtk4-2.36.0/webkitgtk-2.36.0/Source/WebCore/platform/graphics/x11/PlatformDisplayX11.h:48
#1  sharedDisplay () at /home/pobj/webkitgtk4-2.36.0/webkitgtk-2.36.0/Source/WebCore/platform/graphics/x11/XUniqueResource.cpp:46
#2  deleteXResource () at /home/pobj/webkitgtk4-2.36.0/webkitgtk-2.36.0/Source/WebCore/platform/graphics/x11/XUniqueResource.cpp:79
#3  0x00000f5eea945e8c in reset () at /home/pobj/webkitgtk4-2.36.0/webkitgtk-2.36.0/Source/WebCore/platform/graphics/x11/XUniqueResource.h:86
#4  ~XUniqueResource () at /home/pobj/webkitgtk4-2.36.0/webkitgtk-2.36.0/Source/WebCore/platform/graphics/x11/XUniqueResource.h:77
#5  ~GLContextGLX () at /home/pobj/webkitgtk4-2.36.0/webkitgtk-2.36.0/Source/WebCore/platform/graphics/glx/GLContextGLX.cpp:341
#6  0x00000f5eea945f3f in ~GLContextGLX () at /home/pobj/webkitgtk4-2.36.0/webkitgtk-2.36.0/Source/WebCore/platform/graphics/glx/GLContextGLX.cpp:323
#7  0x00000f5eea955161 in operator() () at /usr/include/c++/v1/__memory/unique_ptr.h:57
#8  reset () at /usr/include/c++/v1/__memory/unique_ptr.h:318
#9  operator= () at /usr/include/c++/v1/__memory/unique_ptr.h:276
#10 ~PlatformDisplayX11 () at /home/pobj/webkitgtk4-2.36.0/webkitgtk-2.36.0/Source/WebCore/platform/graphics/x11/PlatformDisplayX11.cpp:76
#11 ~PlatformDisplayX11 () at /home/pobj/webkitgtk4-2.36.0/webkitgtk-2.36.0/Source/WebCore/platform/graphics/x11/PlatformDisplayX11.cpp:73
#12 0x00000f5ed8272df1 in _libc___cxa_finalize (dso=0x0) at /usr/src/lib/libc/stdlib/atexit.c:177
#13 0x00000f5ed826b1a1 in _libc_exit (status=0) at /usr/src/lib/libc/stdlib/exit.c:54
#14 0x00000f5c422ffa09 in _start ()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1855948</commentid>
    <comment_count>1</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2022-03-29 01:52:21 -0700</bug_when>
    <thetext>So, this is crashing while releasing the shared context in the PlatformDisplayX11 destructor, called by atexit. I think it should be safe to call PlatformDisplay::shared() from the destructor, and I can&apos;t reproduce the crash, but maybe it&apos;s not. We can try to find a better way to release the shared context.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1855955</commentid>
    <comment_count>2</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2022-03-29 02:22:50 -0700</bug_when>
    <thetext>Or maybe the problem is that the shared gdk display is released before the PlatformDisplay destructor.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1855973</commentid>
    <comment_count>3</comment_count>
    <who name="">robert.nagy</who>
    <bug_when>2022-03-29 03:48:38 -0700</bug_when>
    <thetext>I can test any patch easily. The problem is that you probably do not see this because of either glibc or wayland. Glibc is really good at hiding these kind of bugs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1855982</commentid>
    <comment_count>4</comment_count>
      <attachid>456013</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2022-03-29 04:14:30 -0700</bug_when>
    <thetext>Created attachment 456013
Patch

Could you try this patch, please?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1856003</commentid>
    <comment_count>5</comment_count>
    <who name="">robert.nagy</who>
    <bug_when>2022-03-29 06:46:21 -0700</bug_when>
    <thetext>New backtrace with the patch:

Core was generated by `WebKitWebProcess&apos;.
Program terminated with signal SIGSEGV, Segmentation fault.
#0  native () at /home/pobj/webkitgtk4-2.36.0/webkitgtk-2.36.0/Source/WebCore/platform/graphics/x11/PlatformDisplayX11.h:50
50          ::Display* native() const { return m_display; }
[Current thread is 1 (process 281893)]
(gdb) bt
#0  native () at /home/pobj/webkitgtk4-2.36.0/webkitgtk-2.36.0/Source/WebCore/platform/graphics/x11/PlatformDisplayX11.h:50
#1  sharedDisplay () at /home/pobj/webkitgtk4-2.36.0/webkitgtk-2.36.0/Source/WebCore/platform/graphics/x11/XUniqueResource.cpp:46
#2  deleteXResource () at /home/pobj/webkitgtk4-2.36.0/webkitgtk-2.36.0/Source/WebCore/platform/graphics/x11/XUniqueResource.cpp:79
#3  0x000005cf5a2b40dc in reset () at /home/pobj/webkitgtk4-2.36.0/webkitgtk-2.36.0/Source/WebCore/platform/graphics/x11/XUniqueResource.h:86
#4  ~XUniqueResource () at /home/pobj/webkitgtk4-2.36.0/webkitgtk-2.36.0/Source/WebCore/platform/graphics/x11/XUniqueResource.h:77
#5  ~GLContextGLX () at /home/pobj/webkitgtk4-2.36.0/webkitgtk-2.36.0/Source/WebCore/platform/graphics/glx/GLContextGLX.cpp:341
#6  0x000005cf5a2b418f in ~GLContextGLX () at /home/pobj/webkitgtk4-2.36.0/webkitgtk-2.36.0/Source/WebCore/platform/graphics/glx/GLContextGLX.cpp:323
#7  0x000005cf5a2c3441 in operator() () at /usr/include/c++/v1/__memory/unique_ptr.h:57
#8  reset () at /usr/include/c++/v1/__memory/unique_ptr.h:318
#9  operator= () at /usr/include/c++/v1/__memory/unique_ptr.h:276
#10 ~PlatformDisplayX11 () at /home/pobj/webkitgtk4-2.36.0/webkitgtk-2.36.0/Source/WebCore/platform/graphics/x11/PlatformDisplayX11.cpp:90
#11 ~PlatformDisplayX11 () at /home/pobj/webkitgtk4-2.36.0/webkitgtk-2.36.0/Source/WebCore/platform/graphics/x11/PlatformDisplayX11.cpp:87
#12 0x000005d02ae80041 in _libc___cxa_finalize (dso=0x0) at /usr/src/lib/libc/stdlib/atexit.c:177
#13 0x000005d02ae5d401 in _libc_exit (status=0) at /usr/src/lib/libc/stdlib/exit.c:54
#14 0x000005cd39f65a09 in _start ()
(gdb)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1856067</commentid>
    <comment_count>6</comment_count>
      <attachid>456013</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2022-03-29 10:07:44 -0700</bug_when>
    <thetext>Comment on attachment 456013
Patch

My $0.02: destroying the display is optional, and the exit handler is more trouble than it&apos;s worth....</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1856311</commentid>
    <comment_count>7</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2022-03-30 00:32:41 -0700</bug_when>
    <thetext>(In reply to robert.nagy from comment #5)
&gt; New backtrace with the patch:
&gt; 
&gt; Core was generated by `WebKitWebProcess&apos;.
&gt; Program terminated with signal SIGSEGV, Segmentation fault.
&gt; #0  native () at
&gt; /home/pobj/webkitgtk4-2.36.0/webkitgtk-2.36.0/Source/WebCore/platform/
&gt; graphics/x11/PlatformDisplayX11.h:50
&gt; 50          ::Display* native() const { return m_display; }
&gt; [Current thread is 1 (process 281893)]
&gt; (gdb) bt
&gt; #0  native () at
&gt; /home/pobj/webkitgtk4-2.36.0/webkitgtk-2.36.0/Source/WebCore/platform/
&gt; graphics/x11/PlatformDisplayX11.h:50
&gt; #1  sharedDisplay () at
&gt; /home/pobj/webkitgtk4-2.36.0/webkitgtk-2.36.0/Source/WebCore/platform/
&gt; graphics/x11/XUniqueResource.cpp:46
&gt; #2  deleteXResource () at
&gt; /home/pobj/webkitgtk4-2.36.0/webkitgtk-2.36.0/Source/WebCore/platform/
&gt; graphics/x11/XUniqueResource.cpp:79
&gt; #3  0x000005cf5a2b40dc in reset () at
&gt; /home/pobj/webkitgtk4-2.36.0/webkitgtk-2.36.0/Source/WebCore/platform/
&gt; graphics/x11/XUniqueResource.h:86
&gt; #4  ~XUniqueResource () at
&gt; /home/pobj/webkitgtk4-2.36.0/webkitgtk-2.36.0/Source/WebCore/platform/
&gt; graphics/x11/XUniqueResource.h:77
&gt; #5  ~GLContextGLX () at
&gt; /home/pobj/webkitgtk4-2.36.0/webkitgtk-2.36.0/Source/WebCore/platform/
&gt; graphics/glx/GLContextGLX.cpp:341
&gt; #6  0x000005cf5a2b418f in ~GLContextGLX () at
&gt; /home/pobj/webkitgtk4-2.36.0/webkitgtk-2.36.0/Source/WebCore/platform/
&gt; graphics/glx/GLContextGLX.cpp:323
&gt; #7  0x000005cf5a2c3441 in operator() () at
&gt; /usr/include/c++/v1/__memory/unique_ptr.h:57
&gt; #8  reset () at /usr/include/c++/v1/__memory/unique_ptr.h:318
&gt; #9  operator= () at /usr/include/c++/v1/__memory/unique_ptr.h:276
&gt; #10 ~PlatformDisplayX11 () at
&gt; /home/pobj/webkitgtk4-2.36.0/webkitgtk-2.36.0/Source/WebCore/platform/
&gt; graphics/x11/PlatformDisplayX11.cpp:90
&gt; #11 ~PlatformDisplayX11 () at
&gt; /home/pobj/webkitgtk4-2.36.0/webkitgtk-2.36.0/Source/WebCore/platform/
&gt; graphics/x11/PlatformDisplayX11.cpp:87
&gt; #12 0x000005d02ae80041 in _libc___cxa_finalize (dso=0x0) at
&gt; /usr/src/lib/libc/stdlib/atexit.c:177
&gt; #13 0x000005d02ae5d401 in _libc_exit (status=0) at
&gt; /usr/src/lib/libc/stdlib/exit.c:54
&gt; #14 0x000005cd39f65a09 in _start ()
&gt; (gdb)

Ok, that confirms it&apos;s not that gtk closed the display. So, I guess the problem is that for whatever reason it&apos;s not ok to call PlatformDisplay::shared() from its destructor. The patch is still good, I think, so I&apos;ll try to find a solution on top of it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1856312</commentid>
    <comment_count>8</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2022-03-30 00:34:21 -0700</bug_when>
    <thetext>(In reply to Michael Catanzaro from comment #6)
&gt; Comment on attachment 456013 [details]
&gt; Patch
&gt; 
&gt; My $0.02: destroying the display is optional, and the exit handler is more
&gt; trouble than it&apos;s worth....

Problem is that GL resources not released on process exit can be leaked or cause issues in GPU drivers, that&apos;s why we are avoiding abrupt exit on web process.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1856329</commentid>
    <comment_count>9</comment_count>
      <attachid>456099</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2022-03-30 01:43:51 -0700</bug_when>
    <thetext>Created attachment 456099
Patch

Could you try again with this one, please?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1856356</commentid>
    <comment_count>10</comment_count>
    <who name="">robert.nagy</who>
    <bug_when>2022-03-30 04:21:24 -0700</bug_when>
    <thetext>That seems to not crash anymore.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1856364</commentid>
    <comment_count>11</comment_count>
    <who name="Antoine Jacoutot">ajacoutot</who>
    <bug_when>2022-03-30 05:30:40 -0700</bug_when>
    <thetext>(In reply to robert.nagy from comment #10)
&gt; That seems to not crash anymore.

I can confirm this does _not_ crash anymore for me as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1856465</commentid>
    <comment_count>12</comment_count>
      <attachid>456099</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2022-03-30 10:51:53 -0700</bug_when>
    <thetext>Comment on attachment 456099
Patch

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

&gt; Source/WebCore/ChangeLog:13
&gt; +        PlatformDisplay, which is always the shared one, we can just install an atexit handler in the constrcutor to

constructor

&gt; Source/WebCore/platform/graphics/x11/PlatformDisplayX11.cpp:77
&gt; +    // In X11 only one PlatformDisplay instance is allowed per process which is the sharedDisplay one.

Is there an assert for this already? I&apos;d like to see an assert to enforce this, or else at least ensure the exit handler is registered called only once.

&gt; Source/WebCore/platform/graphics/x11/PlatformDisplayX11.cpp:82
&gt; +    std::atexit([] {
&gt; +	PlatformDisplay::sharedDisplay().clearSharingGLContext();

Indentation is wrong:

ERROR: Source/WebCore/platform/graphics/x11/PlatformDisplayX11.cpp:82:  Tab found; better to use spaces  [whitespace/tab] [1]</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1856720</commentid>
    <comment_count>13</comment_count>
      <attachid>456211</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2022-03-31 01:09:35 -0700</bug_when>
    <thetext>Created attachment 456211
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1857199</commentid>
    <comment_count>14</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2022-04-01 02:00:45 -0700</bug_when>
    <thetext>Committed r292211 (?): &lt;https://commits.webkit.org/r292211&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>456013</attachid>
            <date>2022-03-29 04:14:30 -0700</date>
            <delta_ts>2022-03-30 01:43:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>wcore-display-crash.diff</filename>
            <type>text/plain</type>
            <size>16390</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBjZTg1NzllMzU4OGQuLjIxOTk4MDE2ODljYyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDM2IEBACisyMDIyLTAzLTI5ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFA
aWdhbGlhLmNvbT4KKworICAgICAgICBSRUdSRVNTSU9OKHIyOTAzNjApOiBbR0xYXSBDcmFzaCBv
biBwcm9jZXNzIGV4aXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIzODQ5NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFdoZW4gY3JlYXRpbmcgYSBQbGF0Zm9ybURpc3BsYXkgZnJvbSBhIHNoYXJlZCBHZGtE
aXNwbGF5LCB3ZSBuZWVkIHRvIGtlZXAgYSByZWZlcmVuY2UgdG8gdGhlIGRpc3BsYXkgYW5kIGNv
bm5lY3QKKyAgICAgICAgdG8gY2xvc2VkIHNpZ25hbCB0byByZWxlYXNlIG91ciBkaXNwbGF5IGRl
cGVuZGVudCByZXNvdXJjZXMuIENsb3NlZCBzaWduYWwgaXMgZW1pdHRlZCByaWdodCBiZWZvcmUg
dGhlIG5hdGl2ZQorICAgICAgICBkaXNwbGF5IGlzIGFjdHVhbGx5IGNsb3NlZCBieSBHREsuCisK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybURpc3BsYXkuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UGxhdGZvcm1EaXNwbGF5OjpjcmVhdGVQbGF0Zm9ybURpc3BsYXkpOgorICAg
ICAgICAoV2ViQ29yZTo6UGxhdGZvcm1EaXNwbGF5OjpQbGF0Zm9ybURpc3BsYXkpOgorICAgICAg
ICAoV2ViQ29yZTo6UGxhdGZvcm1EaXNwbGF5OjpzaGFyZWREaXNwbGF5RGlkQ2xvc2UpOgorICAg
ICAgICAoV2ViQ29yZTo6UGxhdGZvcm1EaXNwbGF5Ojp+UGxhdGZvcm1EaXNwbGF5KToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybURpc3BsYXkuaDoKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9saWJ3cGUvUGxhdGZvcm1EaXNwbGF5TGliV1BFLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlBsYXRmb3JtRGlzcGxheUxpYldQRTo6UGxhdGZvcm1EaXNwbGF5TGliV1BFKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93YXlsYW5kL1BsYXRmb3JtRGlzcGxheVdheWxh
bmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1EaXNwbGF5V2F5bGFuZDo6Y3JlYXRl
KToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtRGlzcGxheVdheWxhbmQ6OlBsYXRmb3JtRGlz
cGxheVdheWxhbmQpOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1EaXNwbGF5V2F5bGFuZDo6
flBsYXRmb3JtRGlzcGxheVdheWxhbmQpOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1EaXNw
bGF5V2F5bGFuZDo6c2hhcmVkRGlzcGxheURpZENsb3NlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy93YXlsYW5kL1BsYXRmb3JtRGlzcGxheVdheWxhbmQuaDoKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy93aW4vUGxhdGZvcm1EaXNwbGF5V2luLmg6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MveDExL1BsYXRmb3JtRGlzcGxheVgxMS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpQbGF0Zm9ybURpc3BsYXlYMTE6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9y
bURpc3BsYXlYMTE6OlBsYXRmb3JtRGlzcGxheVgxMSk6CisgICAgICAgIChXZWJDb3JlOjpQbGF0
Zm9ybURpc3BsYXlYMTE6On5QbGF0Zm9ybURpc3BsYXlYMTEpOgorICAgICAgICAoV2ViQ29yZTo6
UGxhdGZvcm1EaXNwbGF5WDExOjpzaGFyZWREaXNwbGF5RGlkQ2xvc2UpOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL3gxMS9QbGF0Zm9ybURpc3BsYXlYMTEuaDoKKwogMjAyMi0wMy0yMSAg
Q2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgUkVH
UkVTU0lPTihyMjg2OTU1KTogUmVuZGVyaW5nIExpbmtzIGR1cmluZyBzZWFyY2g6IGhpZ2hsaWdo
dGluZyBmYWlscwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
UGxhdGZvcm1EaXNwbGF5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1Bs
YXRmb3JtRGlzcGxheS5jcHAKaW5kZXggMmUyZWI5MDVkYTc4Li43MDhiYzlhNDkzNjggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BsYXRmb3JtRGlzcGxheS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1EaXNwbGF5
LmNwcApAQCAtOTYsMjQgKzk2LDEzIEBAIHN0ZDo6dW5pcXVlX3B0cjxQbGF0Zm9ybURpc3BsYXk+
IFBsYXRmb3JtRGlzcGxheTo6Y3JlYXRlUGxhdGZvcm1EaXNwbGF5KCkKICAgICBpZiAoZ3RrX2lu
aXRfY2hlY2sobnVsbHB0ciwgbnVsbHB0cikpIHsKICAgICAgICAgR2RrRGlzcGxheSogZGlzcGxh
eSA9IGdka19kaXNwbGF5X21hbmFnZXJfZ2V0X2RlZmF1bHRfZGlzcGxheShnZGtfZGlzcGxheV9t
YW5hZ2VyX2dldCgpKTsKICNpZiBQTEFURk9STShYMTEpCi0gICAgICAgIGlmIChHREtfSVNfWDEx
X0RJU1BMQVkoZGlzcGxheSkpIHsKLSAgICAgICAgICAgIGF1dG8gcGxhdGZvcm1EaXNwbGF5ID0g
UGxhdGZvcm1EaXNwbGF5WDExOjpjcmVhdGUoR0RLX0RJU1BMQVlfWERJU1BMQVkoZGlzcGxheSkp
OwotI2lmIFVTRShBVFNQSSkgJiYgVVNFKEdUSzQpCi0gICAgICAgICAgICBpZiAoY29uc3QgY2hh
ciogYXRzcGlCdXNBZGRyZXNzID0gc3RhdGljX2Nhc3Q8Y29uc3QgY2hhcio+KGdfb2JqZWN0X2dl
dF9kYXRhKEdfT0JKRUNUKGRpc3BsYXkpLCAiLWd0ay1hdHNwaS1idXMtYWRkcmVzcyIpKSkKLSAg
ICAgICAgICAgICAgICBwbGF0Zm9ybURpc3BsYXktPm1fYWNjZXNzaWJpbGl0eUJ1c0FkZHJlc3Mg
PSBTdHJpbmc6OmZyb21VVEY4KGF0c3BpQnVzQWRkcmVzcyk7Ci0jZW5kaWYKLSAgICAgICAgICAg
IHJldHVybiBwbGF0Zm9ybURpc3BsYXk7Ci0gICAgICAgIH0KKyAgICAgICAgaWYgKEdES19JU19Y
MTFfRElTUExBWShkaXNwbGF5KSkKKyAgICAgICAgICAgIHJldHVybiBQbGF0Zm9ybURpc3BsYXlY
MTE6OmNyZWF0ZShkaXNwbGF5KTsKICNlbmRpZgorCiAjaWYgUExBVEZPUk0oV0FZTEFORCkKLSAg
ICAgICAgaWYgKEdES19JU19XQVlMQU5EX0RJU1BMQVkoZGlzcGxheSkpIHsKLSAgICAgICAgICAg
IGF1dG8gcGxhdGZvcm1EaXNwbGF5ID0gUGxhdGZvcm1EaXNwbGF5V2F5bGFuZDo6Y3JlYXRlKGdk
a193YXlsYW5kX2Rpc3BsYXlfZ2V0X3dsX2Rpc3BsYXkoZGlzcGxheSkpOwotI2lmIFVTRShBVFNQ
SSkgJiYgVVNFKEdUSzQpCi0gICAgICAgICAgICBpZiAoY29uc3QgY2hhciogYXRzcGlCdXNBZGRy
ZXNzID0gc3RhdGljX2Nhc3Q8Y29uc3QgY2hhcio+KGdfb2JqZWN0X2dldF9kYXRhKEdfT0JKRUNU
KGRpc3BsYXkpLCAiLWd0ay1hdHNwaS1idXMtYWRkcmVzcyIpKSkKLSAgICAgICAgICAgICAgICBw
bGF0Zm9ybURpc3BsYXktPm1fYWNjZXNzaWJpbGl0eUJ1c0FkZHJlc3MgPSBTdHJpbmc6OmZyb21V
VEY4KGF0c3BpQnVzQWRkcmVzcyk7Ci0jZW5kaWYKLSAgICAgICAgICAgIHJldHVybiBwbGF0Zm9y
bURpc3BsYXk7Ci0gICAgICAgIH0KKyAgICAgICAgaWYgKEdES19JU19XQVlMQU5EX0RJU1BMQVko
ZGlzcGxheSkpCisgICAgICAgICAgICByZXR1cm4gUGxhdGZvcm1EaXNwbGF5V2F5bGFuZDo6Y3Jl
YXRlKGRpc3BsYXkpOwogI2VuZGlmCiAgICAgfQogI2VuZGlmIC8vIFBMQVRGT1JNKEdUSykKQEAg
LTE3NCwxOCArMTYzLDQ0IEBAIHZvaWQgUGxhdGZvcm1EaXNwbGF5OjpzZXRTaGFyZWREaXNwbGF5
Rm9yQ29tcG9zaXRpbmcoUGxhdGZvcm1EaXNwbGF5JiBkaXNwbGF5KQogICAgIHNfc2hhcmVkRGlz
cGxheUZvckNvbXBvc2l0aW5nID0gJmRpc3BsYXk7CiB9CiAKLVBsYXRmb3JtRGlzcGxheTo6UGxh
dGZvcm1EaXNwbGF5KE5hdGl2ZURpc3BsYXlPd25lZCBkaXNwbGF5T3duZWQpCi0gICAgOiBtX25h
dGl2ZURpc3BsYXlPd25lZChkaXNwbGF5T3duZWQpCitQbGF0Zm9ybURpc3BsYXk6OlBsYXRmb3Jt
RGlzcGxheSgpCiAjaWYgVVNFKEVHTCkKLSAgICAsIG1fZWdsRGlzcGxheShFR0xfTk9fRElTUExB
WSkKKyAgICA6IG1fZWdsRGlzcGxheShFR0xfTk9fRElTUExBWSkKICNlbmRpZgogewogfQogCisj
aWYgUExBVEZPUk0oR1RLKQorUGxhdGZvcm1EaXNwbGF5OjpQbGF0Zm9ybURpc3BsYXkoR2RrRGlz
cGxheSogZGlzcGxheSkKKyAgICA6IG1fc2hhcmVkRGlzcGxheShkaXNwbGF5KQoreworI2lmIFVT
RShBVFNQSSkgJiYgVVNFKEdUSzQpCisgICAgaWYgKGNvbnN0IGNoYXIqIGF0c3BpQnVzQWRkcmVz
cyA9IHN0YXRpY19jYXN0PGNvbnN0IGNoYXIqPihnX29iamVjdF9nZXRfZGF0YShHX09CSkVDVChk
aXNwbGF5KSwgIi1ndGstYXRzcGktYnVzLWFkZHJlc3MiKSkpCisgICAgICAgIG1fYWNjZXNzaWJp
bGl0eUJ1c0FkZHJlc3MgPSBTdHJpbmc6OmZyb21VVEY4KGF0c3BpQnVzQWRkcmVzcyk7CisjZW5k
aWYKKworICAgIGdfc2lnbmFsX2Nvbm5lY3QobV9zaGFyZWREaXNwbGF5LmdldCgpLCAiY2xvc2Vk
IiwgR19DQUxMQkFDSygrW10oR2RrRGlzcGxheSosIGdib29sZWFuLCBncG9pbnRlciB1c2VyRGF0
YSkgeworICAgICAgICBhdXRvJiBwbGF0Zm9ybURpc3BsYXkgPSAqc3RhdGljX2Nhc3Q8UGxhdGZv
cm1EaXNwbGF5Kj4odXNlckRhdGEpOworICAgICAgICBwbGF0Zm9ybURpc3BsYXkuc2hhcmVkRGlz
cGxheURpZENsb3NlKCk7CisgICAgfSksIHRoaXMpOworfQorCit2b2lkIFBsYXRmb3JtRGlzcGxh
eTo6c2hhcmVkRGlzcGxheURpZENsb3NlKCkKK3sKKyNpZiBVU0UoRUdMKSB8fCBVU0UoR0xYKQor
ICAgIG1fc2hhcmluZ0dMQ29udGV4dCA9IG51bGxwdHI7CisjZW5kaWYKK30KKyNlbmRpZgorCiBQ
bGF0Zm9ybURpc3BsYXk6On5QbGF0Zm9ybURpc3BsYXkoKQogewogI2lmIFVTRShFR0wpICYmICFQ
TEFURk9STShXSU4pCiAgICAgQVNTRVJUKG1fZWdsRGlzcGxheSA9PSBFR0xfTk9fRElTUExBWSk7
CisjZW5kaWYKKyNpZiBQTEFURk9STShHVEspCisgICAgaWYgKG1fc2hhcmVkRGlzcGxheSkKKyAg
ICAgICAgZ19zaWduYWxfaGFuZGxlcnNfZGlzY29ubmVjdF9ieV9kYXRhKG1fc2hhcmVkRGlzcGxh
eS5nZXQoKSwgdGhpcyk7CiAjZW5kaWYKICAgICBpZiAoc19zaGFyZWREaXNwbGF5Rm9yQ29tcG9z
aXRpbmcgPT0gdGhpcykKICAgICAgICAgc19zaGFyZWREaXNwbGF5Rm9yQ29tcG9zaXRpbmcgPSBu
dWxscHRyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGxh
dGZvcm1EaXNwbGF5LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9y
bURpc3BsYXkuaAppbmRleCBiZTdkYjZlODg3YjUuLmE1N2Y5YmE1MDI5MyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1EaXNwbGF5LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1EaXNwbGF5LmgKQEAgLTMz
LDYgKzMzLDEyIEBACiB0eXBlZGVmIHZvaWQgKkVHTERpc3BsYXk7CiAjZW5kaWYKIAorI2lmIFBM
QVRGT1JNKEdUSykKKyNpbmNsdWRlIDx3dGYvZ2xpYi9HUmVmUHRyLmg+CisKK3R5cGVkZWYgc3Ry
dWN0IF9HZGtEaXNwbGF5IEdka0Rpc3BsYXk7CisjZW5kaWYKKwogI2lmIEVOQUJMRShWSURFTykg
JiYgVVNFKEdTVFJFQU1FUl9HTCkKICNpbmNsdWRlICJHUmVmUHRyR1N0cmVhbWVyLmgiCiAKQEAg
LTk2LDEyICsxMDIsMTggQEAgcHVibGljOgogI2VuZGlmCiAKIHByb3RlY3RlZDoKLSAgICBlbnVt
IGNsYXNzIE5hdGl2ZURpc3BsYXlPd25lZCB7IE5vLCBZZXMgfTsKLSAgICBleHBsaWNpdCBQbGF0
Zm9ybURpc3BsYXkoTmF0aXZlRGlzcGxheU93bmVkKTsKKyAgICBQbGF0Zm9ybURpc3BsYXkoKTsK
KyNpZiBQTEFURk9STShHVEspCisgICAgZXhwbGljaXQgUGxhdGZvcm1EaXNwbGF5KEdka0Rpc3Bs
YXkqKTsKKyNlbmRpZgogCiAgICAgc3RhdGljIHZvaWQgc2V0U2hhcmVkRGlzcGxheUZvckNvbXBv
c2l0aW5nKFBsYXRmb3JtRGlzcGxheSYpOwogCi0gICAgTmF0aXZlRGlzcGxheU93bmVkIG1fbmF0
aXZlRGlzcGxheU93bmVkIHsgTmF0aXZlRGlzcGxheU93bmVkOjpObyB9OworI2lmIFBMQVRGT1JN
KEdUSykKKyAgICB2aXJ0dWFsIHZvaWQgc2hhcmVkRGlzcGxheURpZENsb3NlKCk7CisKKyAgICBH
UmVmUHRyPEdka0Rpc3BsYXk+IG1fc2hhcmVkRGlzcGxheTsKKyNlbmRpZgogCiAjaWYgVVNFKEVH
TCkKICAgICB2aXJ0dWFsIHZvaWQgaW5pdGlhbGl6ZUVHTERpc3BsYXkoKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2xpYndwZS9QbGF0Zm9ybURpc3BsYXlM
aWJXUEUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbGlid3BlL1BsYXRm
b3JtRGlzcGxheUxpYldQRS5jcHAKaW5kZXggZGEyZDk0NTkyM2QzLi4wOTg2N2UzNTMzNDkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2xpYndwZS9QbGF0Zm9y
bURpc3BsYXlMaWJXUEUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2xpYndwZS9QbGF0Zm9ybURpc3BsYXlMaWJXUEUuY3BwCkBAIC01OSw3ICs1OSw2IEBAIHN0ZDo6
dW5pcXVlX3B0cjxQbGF0Zm9ybURpc3BsYXlMaWJXUEU+IFBsYXRmb3JtRGlzcGxheUxpYldQRTo6
Y3JlYXRlKCkKIH0KIAogUGxhdGZvcm1EaXNwbGF5TGliV1BFOjpQbGF0Zm9ybURpc3BsYXlMaWJX
UEUoKQotICAgIDogUGxhdGZvcm1EaXNwbGF5KE5hdGl2ZURpc3BsYXlPd25lZDo6Tm8pCiB7CiAj
aWYgUExBVEZPUk0oR1RLKQogICAgIFBsYXRmb3JtRGlzcGxheTo6c2V0U2hhcmVkRGlzcGxheUZv
ckNvbXBvc2l0aW5nKCp0aGlzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3dheWxhbmQvUGxhdGZvcm1EaXNwbGF5V2F5bGFuZC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy93YXlsYW5kL1BsYXRmb3JtRGlzcGxheVdheWxhbmQuY3Bw
CmluZGV4IDA2NmJiZjgxZDVjZC4uMTExNDE5ODY4ODcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy93YXlsYW5kL1BsYXRmb3JtRGlzcGxheVdheWxhbmQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dheWxhbmQvUGxhdGZvcm1E
aXNwbGF5V2F5bGFuZC5jcHAKQEAgLTM3LDYgKzM3LDE0IEBACiAjaW5jbHVkZSA8RUdML2VnbGV4
dC5oPgogI2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+CiAKKyNpZiBQTEFURk9STShHVEspCisj
aWYgVVNFKEdUSzQpCisjaW5jbHVkZSA8Z2RrL3dheWxhbmQvZ2Rrd2F5bGFuZC5oPgorI2Vsc2UK
KyNpbmNsdWRlIDxnZGsvZ2Rrd2F5bGFuZC5oPgorI2VuZGlmCisjZW5kaWYKKwogbmFtZXNwYWNl
IFdlYkNvcmUgewogCiBjb25zdCBzdHJ1Y3Qgd2xfcmVnaXN0cnlfbGlzdGVuZXIgUGxhdGZvcm1E
aXNwbGF5V2F5bGFuZDo6c19yZWdpc3RyeUxpc3RlbmVyID0gewpAQCAtNTYsMzMgKzY0LDU2IEBA
IHN0ZDo6dW5pcXVlX3B0cjxQbGF0Zm9ybURpc3BsYXk+IFBsYXRmb3JtRGlzcGxheVdheWxhbmQ6
OmNyZWF0ZSgpCiAgICAgaWYgKCFkaXNwbGF5KQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAot
ICAgIGF1dG8gcGxhdGZvcm1EaXNwbGF5ID0gc3RkOjp1bmlxdWVfcHRyPFBsYXRmb3JtRGlzcGxh
eVdheWxhbmQ+KG5ldyBQbGF0Zm9ybURpc3BsYXlXYXlsYW5kKGRpc3BsYXksIE5hdGl2ZURpc3Bs
YXlPd25lZDo6WWVzKSk7CisgICAgYXV0byBwbGF0Zm9ybURpc3BsYXkgPSBzdGQ6OnVuaXF1ZV9w
dHI8UGxhdGZvcm1EaXNwbGF5V2F5bGFuZD4obmV3IFBsYXRmb3JtRGlzcGxheVdheWxhbmQoZGlz
cGxheSkpOwogICAgIHBsYXRmb3JtRGlzcGxheS0+aW5pdGlhbGl6ZSgpOwogICAgIHJldHVybiBw
bGF0Zm9ybURpc3BsYXk7CiB9CiAKLXN0ZDo6dW5pcXVlX3B0cjxQbGF0Zm9ybURpc3BsYXk+IFBs
YXRmb3JtRGlzcGxheVdheWxhbmQ6OmNyZWF0ZShzdHJ1Y3Qgd2xfZGlzcGxheSogZGlzcGxheSkK
KyNpZiBQTEFURk9STShHVEspCitzdGQ6OnVuaXF1ZV9wdHI8UGxhdGZvcm1EaXNwbGF5PiBQbGF0
Zm9ybURpc3BsYXlXYXlsYW5kOjpjcmVhdGUoR2RrRGlzcGxheSogZGlzcGxheSkKIHsKLSAgICBh
dXRvIHBsYXRmb3JtRGlzcGxheSA9IHN0ZDo6dW5pcXVlX3B0cjxQbGF0Zm9ybURpc3BsYXlXYXls
YW5kPihuZXcgUGxhdGZvcm1EaXNwbGF5V2F5bGFuZChkaXNwbGF5LCBOYXRpdmVEaXNwbGF5T3du
ZWQ6Ok5vKSk7CisgICAgYXV0byBwbGF0Zm9ybURpc3BsYXkgPSBzdGQ6OnVuaXF1ZV9wdHI8UGxh
dGZvcm1EaXNwbGF5V2F5bGFuZD4obmV3IFBsYXRmb3JtRGlzcGxheVdheWxhbmQoZGlzcGxheSkp
OwogICAgIHBsYXRmb3JtRGlzcGxheS0+aW5pdGlhbGl6ZSgpOwogICAgIHJldHVybiBwbGF0Zm9y
bURpc3BsYXk7CiB9CisjZW5kaWYKKworUGxhdGZvcm1EaXNwbGF5V2F5bGFuZDo6UGxhdGZvcm1E
aXNwbGF5V2F5bGFuZChzdHJ1Y3Qgd2xfZGlzcGxheSogZGlzcGxheSkKKyAgICA6IG1fZGlzcGxh
eShkaXNwbGF5KQoreworfQogCi1QbGF0Zm9ybURpc3BsYXlXYXlsYW5kOjpQbGF0Zm9ybURpc3Bs
YXlXYXlsYW5kKHN0cnVjdCB3bF9kaXNwbGF5KiBkaXNwbGF5LCBOYXRpdmVEaXNwbGF5T3duZWQg
ZGlzcGxheU93bmVkKQotICAgIDogUGxhdGZvcm1EaXNwbGF5KGRpc3BsYXlPd25lZCkKLSAgICAs
IG1fZGlzcGxheShkaXNwbGF5KQorI2lmIFBMQVRGT1JNKEdUSykKK1BsYXRmb3JtRGlzcGxheVdh
eWxhbmQ6OlBsYXRmb3JtRGlzcGxheVdheWxhbmQoR2RrRGlzcGxheSogZGlzcGxheSkKKyAgICA6
IFBsYXRmb3JtRGlzcGxheShkaXNwbGF5KQorICAgICwgbV9kaXNwbGF5KGdka193YXlsYW5kX2Rp
c3BsYXlfZ2V0X3dsX2Rpc3BsYXkoZGlzcGxheSkpCiB7CiB9CisjZW5kaWYKIAogUGxhdGZvcm1E
aXNwbGF5V2F5bGFuZDo6flBsYXRmb3JtRGlzcGxheVdheWxhbmQoKQogewotICAgIGlmIChtX25h
dGl2ZURpc3BsYXlPd25lZCA9PSBOYXRpdmVEaXNwbGF5T3duZWQ6OlllcykgeworI2lmIFBMQVRG
T1JNKEdUSykKKyAgICBib29sIG5hdGl2ZURpc3BsYXlPd25lZCA9ICFtX3NoYXJlZERpc3BsYXk7
CisjZWxzZQorICAgIGJvb2wgbmF0aXZlRGlzcGxheU93bmVkID0gdHJ1ZTsKKyNlbmRpZgorCisg
ICAgaWYgKG5hdGl2ZURpc3BsYXlPd25lZCkgewogICAgICAgICBtX2NvbXBvc2l0b3IgPSBudWxs
cHRyOwogICAgICAgICBtX3JlZ2lzdHJ5ID0gbnVsbHB0cjsKICAgICAgICAgd2xfZGlzcGxheV9k
aXNjb25uZWN0KG1fZGlzcGxheSk7CiAgICAgfQogfQogCisjaWYgUExBVEZPUk0oR1RLKQordm9p
ZCBQbGF0Zm9ybURpc3BsYXlXYXlsYW5kOjpzaGFyZWREaXNwbGF5RGlkQ2xvc2UoKQoreworICAg
IFBsYXRmb3JtRGlzcGxheTo6c2hhcmVkRGlzcGxheURpZENsb3NlKCk7CisgICAgbV9kaXNwbGF5
ID0gbnVsbHB0cjsKK30KKyNlbmRpZgorCiB2b2lkIFBsYXRmb3JtRGlzcGxheVdheWxhbmQ6Omlu
aXRpYWxpemUoKQogewogICAgIGlmICghbV9kaXNwbGF5KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2F5bGFuZC9QbGF0Zm9ybURpc3BsYXlXYXlsYW5kLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93YXlsYW5kL1BsYXRmb3JtRGlzcGxh
eVdheWxhbmQuaAppbmRleCAxYTI5NTQzMTVmYTkuLjBlZjQxOGFiNDIxZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2F5bGFuZC9QbGF0Zm9ybURpc3BsYXlX
YXlsYW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2F5bGFuZC9Q
bGF0Zm9ybURpc3BsYXlXYXlsYW5kLmgKQEAgLTIzLDggKzIzLDcgQEAKICAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CiAgKi8KIAotI2lmbmRlZiAgUGxhdGZvcm1EaXNwbGF5V2F5bGFuZF9oCi0jZGVmaW5lICBQbGF0
Zm9ybURpc3BsYXlXYXlsYW5kX2gKKyNwcmFnbWEgb25jZQogCiAjaWYgUExBVEZPUk0oV0FZTEFO
RCkKIApAQCAtMzcsNyArMzYsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBQbGF0Zm9y
bURpc3BsYXlXYXlsYW5kIDogcHVibGljIFBsYXRmb3JtRGlzcGxheSB7CiBwdWJsaWM6CiAgICAg
c3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxQbGF0Zm9ybURpc3BsYXk+IGNyZWF0ZSgpOwotICAgIHN0
YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8UGxhdGZvcm1EaXNwbGF5PiBjcmVhdGUoc3RydWN0IHdsX2Rp
c3BsYXkqKTsKKyNpZiBQTEFURk9STShHVEspCisgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxQ
bGF0Zm9ybURpc3BsYXk+IGNyZWF0ZShHZGtEaXNwbGF5Kik7CisjZW5kaWYKIAogICAgIHZpcnR1
YWwgflBsYXRmb3JtRGlzcGxheVdheWxhbmQoKTsKIApAQCAtNTEsNyArNTIsMTIgQEAgcHJpdmF0
ZToKICAgICBUeXBlIHR5cGUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBQbGF0Zm9ybURpc3BsYXk6
OlR5cGU6OldheWxhbmQ7IH0KIAogcHJvdGVjdGVkOgotICAgIFBsYXRmb3JtRGlzcGxheVdheWxh
bmQoc3RydWN0IHdsX2Rpc3BsYXkqLCBOYXRpdmVEaXNwbGF5T3duZWQpOworICAgIGV4cGxpY2l0
IFBsYXRmb3JtRGlzcGxheVdheWxhbmQoc3RydWN0IHdsX2Rpc3BsYXkqKTsKKyNpZiBQTEFURk9S
TShHVEspCisgICAgZXhwbGljaXQgUGxhdGZvcm1EaXNwbGF5V2F5bGFuZChHZGtEaXNwbGF5Kik7
CisKKyAgICB2b2lkIHNoYXJlZERpc3BsYXlEaWRDbG9zZSgpIG92ZXJyaWRlOworI2VuZGlmCiAK
ICAgICB2b2lkIGluaXRpYWxpemUoKTsKIApAQCAtNjcsNSArNzMsMyBAQCBwcm90ZWN0ZWQ6CiBT
UEVDSUFMSVpFX1RZUEVfVFJBSVRTX1BMQVRGT1JNX0RJU1BMQVkoUGxhdGZvcm1EaXNwbGF5V2F5
bGFuZCwgV2F5bGFuZCkKIAogI2VuZGlmIC8vIFBMQVRGT1JNKFdBWUxBTkQpCi0KLSNlbmRpZiAv
LyBQbGF0Zm9ybURpc3BsYXlXYXlsYW5kX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3dpbi9QbGF0Zm9ybURpc3BsYXlXaW4uaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9QbGF0Zm9ybURpc3BsYXlXaW4uaAppbmRleCBlNzczMTNj
ODhlNzAuLmVhYTZkNmYyNTEwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3Mvd2luL1BsYXRmb3JtRGlzcGxheVdpbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3dpbi9QbGF0Zm9ybURpc3BsYXlXaW4uaApAQCAtNDIsMTEgKzQyLDYg
QEAgcHVibGljOgogICAgIHZpcnR1YWwgflBsYXRmb3JtRGlzcGxheVdpbigpID0gZGVmYXVsdDsK
IAogcHJpdmF0ZToKLSAgICBQbGF0Zm9ybURpc3BsYXlXaW4oKQotICAgICAgICA6IFBsYXRmb3Jt
RGlzcGxheShOYXRpdmVEaXNwbGF5T3duZWQ6Ok5vKQotICAgIHsKLSAgICB9Ci0KICAgICBUeXBl
IHR5cGUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBQbGF0Zm9ybURpc3BsYXk6OlR5cGU6Oldp
bmRvd3M7IH0KIAogICAgIHZvaWQgaW5pdGlhbGl6ZUVHTERpc3BsYXkoKSBmaW5hbDsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3gxMS9QbGF0Zm9ybURpc3Bs
YXlYMTEuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MveDExL1BsYXRmb3Jt
RGlzcGxheVgxMS5jcHAKaW5kZXggZGM0NmVkZTE0Y2RmLi4wY2MxMWRjZmMxNzEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3gxMS9QbGF0Zm9ybURpc3BsYXlY
MTEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3gxMS9QbGF0Zm9y
bURpc3BsYXlYMTEuY3BwCkBAIC0zNiw2ICszNiwxMSBAQAogI2lmIFBMQVRGT1JNKEdUSykKICNp
bmNsdWRlIDxYMTEvWHV0aWwuaD4KICNpbmNsdWRlIDxYMTEvZXh0ZW5zaW9ucy9YZGFtYWdlLmg+
CisjaWYgVVNFKEdUSzQpCisjaW5jbHVkZSA8Z2RrL3gxMS9nZGt4Lmg+CisjZWxzZQorI2luY2x1
ZGUgPGdkay9nZGt4Lmg+CisjZW5kaWYKICNlbmRpZgogCiAjaWYgVVNFKEVHTCkKQEAgLTU1LDMw
ICs2MCw1MyBAQCBzdGQ6OnVuaXF1ZV9wdHI8UGxhdGZvcm1EaXNwbGF5PiBQbGF0Zm9ybURpc3Bs
YXlYMTE6OmNyZWF0ZSgpCiAgICAgaWYgKCFkaXNwbGF5KQogICAgICAgICByZXR1cm4gbnVsbHB0
cjsKIAotICAgIHJldHVybiBzdGQ6OnVuaXF1ZV9wdHI8UGxhdGZvcm1EaXNwbGF5WDExPihuZXcg
UGxhdGZvcm1EaXNwbGF5WDExKGRpc3BsYXksIE5hdGl2ZURpc3BsYXlPd25lZDo6WWVzKSk7Cisg
ICAgcmV0dXJuIHN0ZDo6dW5pcXVlX3B0cjxQbGF0Zm9ybURpc3BsYXlYMTE+KG5ldyBQbGF0Zm9y
bURpc3BsYXlYMTEoZGlzcGxheSkpOwogfQogCi1zdGQ6OnVuaXF1ZV9wdHI8UGxhdGZvcm1EaXNw
bGF5PiBQbGF0Zm9ybURpc3BsYXlYMTE6OmNyZWF0ZShEaXNwbGF5KiBkaXNwbGF5KQorI2lmIFBM
QVRGT1JNKEdUSykKK3N0ZDo6dW5pcXVlX3B0cjxQbGF0Zm9ybURpc3BsYXk+IFBsYXRmb3JtRGlz
cGxheVgxMTo6Y3JlYXRlKEdka0Rpc3BsYXkqIGRpc3BsYXkpCiB7Ci0gICAgcmV0dXJuIHN0ZDo6
dW5pcXVlX3B0cjxQbGF0Zm9ybURpc3BsYXlYMTE+KG5ldyBQbGF0Zm9ybURpc3BsYXlYMTEoZGlz
cGxheSwgTmF0aXZlRGlzcGxheU93bmVkOjpObykpOworICAgIHJldHVybiBzdGQ6OnVuaXF1ZV9w
dHI8UGxhdGZvcm1EaXNwbGF5WDExPihuZXcgUGxhdGZvcm1EaXNwbGF5WDExKGRpc3BsYXkpKTsK
IH0KKyNlbmRpZgogCi1QbGF0Zm9ybURpc3BsYXlYMTE6OlBsYXRmb3JtRGlzcGxheVgxMShEaXNw
bGF5KiBkaXNwbGF5LCBOYXRpdmVEaXNwbGF5T3duZWQgZGlzcGxheU93bmVkKQotICAgIDogUGxh
dGZvcm1EaXNwbGF5KGRpc3BsYXlPd25lZCkKLSAgICAsIG1fZGlzcGxheShkaXNwbGF5KQorUGxh
dGZvcm1EaXNwbGF5WDExOjpQbGF0Zm9ybURpc3BsYXlYMTEoRGlzcGxheSogZGlzcGxheSkKKyAg
ICA6IG1fZGlzcGxheShkaXNwbGF5KQogewogfQogCisjaWYgUExBVEZPUk0oR1RLKQorUGxhdGZv
cm1EaXNwbGF5WDExOjpQbGF0Zm9ybURpc3BsYXlYMTEoR2RrRGlzcGxheSogZGlzcGxheSkKKyAg
ICA6IFBsYXRmb3JtRGlzcGxheShkaXNwbGF5KQorICAgICwgbV9kaXNwbGF5KEdES19ESVNQTEFZ
X1hESVNQTEFZKGRpc3BsYXkpKQoreworfQorI2VuZGlmCisKIFBsYXRmb3JtRGlzcGxheVgxMTo6
flBsYXRmb3JtRGlzcGxheVgxMSgpCiB7CiAjaWYgVVNFKEVHTCkgfHwgVVNFKEdMWCkKICAgICAv
LyBDbGVhciB0aGUgc2hhcmluZyBjb250ZXh0IGJlZm9yZSByZWxlYXNpbmcgdGhlIGRpc3BsYXku
CiAgICAgbV9zaGFyaW5nR0xDb250ZXh0ID0gbnVsbHB0cjsKICNlbmRpZgotICAgIGlmIChtX25h
dGl2ZURpc3BsYXlPd25lZCA9PSBOYXRpdmVEaXNwbGF5T3duZWQ6OlllcykKKworI2lmIFBMQVRG
T1JNKEdUSykKKyAgICBib29sIG5hdGl2ZURpc3BsYXlPd25lZCA9ICFtX3NoYXJlZERpc3BsYXk7
CisjZWxzZQorICAgIGJvb2wgbmF0aXZlRGlzcGxheU93bmVkID0gdHJ1ZTsKKyNlbmRpZgorICAg
IGlmIChuYXRpdmVEaXNwbGF5T3duZWQpCiAgICAgICAgIFhDbG9zZURpc3BsYXkobV9kaXNwbGF5
KTsKIH0KIAorI2lmIFBMQVRGT1JNKEdUSykKK3ZvaWQgUGxhdGZvcm1EaXNwbGF5WDExOjpzaGFy
ZWREaXNwbGF5RGlkQ2xvc2UoKQoreworICAgIFBsYXRmb3JtRGlzcGxheTo6c2hhcmVkRGlzcGxh
eURpZENsb3NlKCk7CisgICAgbV9kaXNwbGF5ID0gbnVsbHB0cjsKK30KKyNlbmRpZgorCiAjaWYg
VVNFKEVHTCkKIHZvaWQgUGxhdGZvcm1EaXNwbGF5WDExOjppbml0aWFsaXplRUdMRGlzcGxheSgp
CiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy94MTEvUGxh
dGZvcm1EaXNwbGF5WDExLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy94MTEv
UGxhdGZvcm1EaXNwbGF5WDExLmgKaW5kZXggMjk0M2E1NTQ5ZWNiLi40MTA5ZTk0NGNmYTggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3gxMS9QbGF0Zm9ybURp
c3BsYXlYMTEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy94MTEvUGxh
dGZvcm1EaXNwbGF5WDExLmgKQEAgLTQxLDcgKzQxLDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
Y2xhc3MgUGxhdGZvcm1EaXNwbGF5WDExIGZpbmFsIDogcHVibGljIFBsYXRmb3JtRGlzcGxheSB7
CiBwdWJsaWM6CiAgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxQbGF0Zm9ybURpc3BsYXk+IGNy
ZWF0ZSgpOwotICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8UGxhdGZvcm1EaXNwbGF5PiBjcmVh
dGUoOjpEaXNwbGF5Kik7CisjaWYgUExBVEZPUk0oR1RLKQorICAgIHN0YXRpYyBzdGQ6OnVuaXF1
ZV9wdHI8UGxhdGZvcm1EaXNwbGF5PiBjcmVhdGUoR2RrRGlzcGxheSopOworI2VuZGlmCiAKICAg
ICB2aXJ0dWFsIH5QbGF0Zm9ybURpc3BsYXlYMTEoKTsKIApAQCAtNTIsNyArNTQsMTIgQEAgcHVi
bGljOgogICAgIGJvb2wgc3VwcG9ydHNHTFgoc3RkOjpvcHRpb25hbDxpbnQ+JiBnbHhFcnJvckJh
c2UpIGNvbnN0OwogCiBwcml2YXRlOgotICAgIFBsYXRmb3JtRGlzcGxheVgxMSg6OkRpc3BsYXkq
LCBOYXRpdmVEaXNwbGF5T3duZWQpOworICAgIGV4cGxpY2l0IFBsYXRmb3JtRGlzcGxheVgxMSg6
OkRpc3BsYXkqKTsKKyNpZiBQTEFURk9STShHVEspCisgICAgZXhwbGljaXQgUGxhdGZvcm1EaXNw
bGF5WDExKEdka0Rpc3BsYXkqKTsKKworICAgIHZvaWQgc2hhcmVkRGlzcGxheURpZENsb3NlKCkg
b3ZlcnJpZGU7CisjZW5kaWYKIAogICAgIFR5cGUgdHlwZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0
dXJuIFBsYXRmb3JtRGlzcGxheTo6VHlwZTo6WDExOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggYTcxYzk3Mjg4
NjFkLi5mN2ZiZjEwOGIzMTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjItMDMtMjkg
IENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgorCisgICAgICAgIFJF
R1JFU1NJT04ocjI5MDM2MCk6IFtHTFhdIENyYXNoIG9uIHByb2Nlc3MgZXhpdAorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM4NDk0CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL2d0ay9X
YXlsYW5kQ29tcG9zaXRvckRpc3BsYXkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXYXlsYW5kQ29t
cG9zaXRvckRpc3BsYXk6OldheWxhbmRDb21wb3NpdG9yRGlzcGxheSk6CisKIDIwMjItMDMtMjEg
IENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFVu
cmV2aWV3ZWQuIFVwZGF0ZSBPcHRpb25zR1RLLmNtYWtlIGFuZCBORVdTIGZvciAyLjM2LjAgcmVs
ZWFzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2d0ay9XYXlsYW5kQ29t
cG9zaXRvckRpc3BsYXkuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2d0ay9XYXlsYW5k
Q29tcG9zaXRvckRpc3BsYXkuY3BwCmluZGV4IGU2YmE2YTVmZWQ0Yi4uNmI2MThkNGQ3YjVlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvZ3RrL1dheWxhbmRDb21wb3NpdG9y
RGlzcGxheS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2d0ay9XYXlsYW5kQ29t
cG9zaXRvckRpc3BsYXkuY3BwCkBAIC02Myw3ICs2Myw3IEBAIHZvaWQgV2F5bGFuZENvbXBvc2l0
b3JEaXNwbGF5OjpiaW5kU3VyZmFjZVRvUGFnZShzdHJ1Y3Qgd2xfc3VyZmFjZSogc3VyZmFjZSwg
V2ViCiB9CiAKIFdheWxhbmRDb21wb3NpdG9yRGlzcGxheTo6V2F5bGFuZENvbXBvc2l0b3JEaXNw
bGF5KHN0cnVjdCB3bF9kaXNwbGF5KiBkaXNwbGF5KQotICAgIDogUGxhdGZvcm1EaXNwbGF5V2F5
bGFuZChkaXNwbGF5LCBOYXRpdmVEaXNwbGF5T3duZWQ6OlllcykKKyAgICA6IFBsYXRmb3JtRGlz
cGxheVdheWxhbmQoZGlzcGxheSkKIHsKICAgICBQbGF0Zm9ybURpc3BsYXk6OnNldFNoYXJlZERp
c3BsYXlGb3JDb21wb3NpdGluZygqdGhpcyk7CiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>456099</attachid>
            <date>2022-03-30 01:43:51 -0700</date>
            <delta_ts>2022-03-31 01:09:35 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>wkgtk-x11-crash.diff</filename>
            <type>text/plain</type>
            <size>18674</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBjZTg1NzllMzU4OGQuLjljOGU2ZWNhNmRmZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDQzIEBACisyMDIyLTAzLTMwICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFA
aWdhbGlhLmNvbT4KKworICAgICAgICBSRUdSRVNTSU9OKHIyOTAzNjApOiBbR0xYXSBDcmFzaCBv
biBwcm9jZXNzIGV4aXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIzODQ5NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFdoZW4gY3JlYXRpbmcgYSBQbGF0Zm9ybURpc3BsYXkgZnJvbSBhIHNoYXJlZCBHZGtE
aXNwbGF5LCB3ZSBuZWVkIHRvIGtlZXAgYSByZWZlcmVuY2UgdG8gdGhlIGRpc3BsYXkgYW5kIGNv
bm5lY3QKKyAgICAgICAgdG8gY2xvc2VkIHNpZ25hbCB0byByZWxlYXNlIG91ciBkaXNwbGF5IGRl
cGVuZGVudCByZXNvdXJjZXMuIENsb3NlZCBzaWduYWwgaXMgZW1pdHRlZCByaWdodCBiZWZvcmUg
dGhlIG5hdGl2ZQorICAgICAgICBkaXNwbGF5IGlzIGFjdHVhbGx5IGNsb3NlZCBieSBHREsuIFdl
IGFsc28gbmVlZCB0byBtYWtlIHN1cmUgdGhhdCB0aGUgc2hhcmluZyBHTCBjb250ZXh0IGlzIHJl
bGVhc2VkIGJlZm9yZSB0aGUKKyAgICAgICAgUGxhdGZvcm1EaXNwbGF5IGlzIGRlc3Ryb3llZC4g
VGhpcyBpcyBhbHdheXMgaGFwcGVuaW5nIGZvciBFR0wgYmVjYXVzZSB0aGUgc2hhcmluZyBHTCBj
b250ZXh0IGlzIGNsZWFyZWQgYmVmb3JlCisgICAgICAgIHRlcm1pbmF0aW5nIHRoZSBFR0wgZGlz
cGxheSBpbiB0aGUgYXRleGl0IGhhbmRsZXIsIGJ1dCB0aGF0J3Mgbm90IHRoZSBjYXNlIG9mIEdM
WC4gU2luY2UgWDExIG9ubHkgYWxsb3dzIG9uZQorICAgICAgICBQbGF0Zm9ybURpc3BsYXksIHdo
aWNoIGlzIGFsd2F5cyB0aGUgc2hhcmVkIG9uZSwgd2UgY2FuIGp1c3QgaW5zdGFsbCBhbiBhdGV4
aXQgaGFuZGxlciBpbiB0aGUgY29uc3RyY3V0b3IgdG8KKyAgICAgICAgY2xlYXIgdGhlIHNoYXJp
bmcgY29udGV4dCBiZWZvcmUgdGhlIGRlc3RydWN0b3IgaXMgY2FsbGVkLgorCisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1EaXNwbGF5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlBsYXRmb3JtRGlzcGxheTo6Y3JlYXRlUGxhdGZvcm1EaXNwbGF5KToKKyAgICAgICAgKFdlYkNv
cmU6OlBsYXRmb3JtRGlzcGxheTo6UGxhdGZvcm1EaXNwbGF5KToKKyAgICAgICAgKFdlYkNvcmU6
OlBsYXRmb3JtRGlzcGxheTo6c2hhcmVkRGlzcGxheURpZENsb3NlKToKKyAgICAgICAgKFdlYkNv
cmU6OlBsYXRmb3JtRGlzcGxheTo6flBsYXRmb3JtRGlzcGxheSk6CisgICAgICAgIChXZWJDb3Jl
OjpQbGF0Zm9ybURpc3BsYXk6OmNsZWFyU2hhcmluZ0dMQ29udGV4dCk6CisgICAgICAgIChXZWJD
b3JlOjpQbGF0Zm9ybURpc3BsYXk6OnRlcm1pbmF0ZUVHTERpc3BsYXkpOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL1BsYXRmb3JtRGlzcGxheS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2xpYndwZS9QbGF0Zm9ybURpc3BsYXlMaWJXUEUuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UGxhdGZvcm1EaXNwbGF5TGliV1BFOjpQbGF0Zm9ybURpc3BsYXlMaWJXUEUpOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dheWxhbmQvUGxhdGZvcm1EaXNwbGF5V2F5bGFuZC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybURpc3BsYXlXYXlsYW5kOjpjcmVhdGUpOgorICAg
ICAgICAoV2ViQ29yZTo6UGxhdGZvcm1EaXNwbGF5V2F5bGFuZDo6UGxhdGZvcm1EaXNwbGF5V2F5
bGFuZCk6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybURpc3BsYXlXYXlsYW5kOjp+UGxhdGZv
cm1EaXNwbGF5V2F5bGFuZCk6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybURpc3BsYXlXYXls
YW5kOjpzaGFyZWREaXNwbGF5RGlkQ2xvc2UpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L3dheWxhbmQvUGxhdGZvcm1EaXNwbGF5V2F5bGFuZC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL3dpbi9QbGF0Zm9ybURpc3BsYXlXaW4uaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy94MTEvUGxhdGZvcm1EaXNwbGF5WDExLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRm
b3JtRGlzcGxheVgxMTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OmNsZWFyU2hhcmluZ0dM
Q29udGV4dEF0RXhpdCk6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybURpc3BsYXlYMTE6OlBs
YXRmb3JtRGlzcGxheVgxMSk6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybURpc3BsYXlYMTE6
On5QbGF0Zm9ybURpc3BsYXlYMTEpOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1EaXNwbGF5
WDExOjpzaGFyZWREaXNwbGF5RGlkQ2xvc2UpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L3gxMS9QbGF0Zm9ybURpc3BsYXlYMTEuaDoKKwogMjAyMi0wMy0yMSAgQ2FybG9zIEdhcmNpYSBD
YW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTihyMjg2OTU1
KTogUmVuZGVyaW5nIExpbmtzIGR1cmluZyBzZWFyY2g6IGhpZ2hsaWdodGluZyBmYWlscwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1EaXNwbGF5
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BsYXRmb3JtRGlzcGxheS5j
cHAKaW5kZXggMmUyZWI5MDVkYTc4Li4xYWYyZjU5ZTVjYjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BsYXRmb3JtRGlzcGxheS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1EaXNwbGF5LmNwcApAQCAtOTYsMjQg
Kzk2LDEzIEBAIHN0ZDo6dW5pcXVlX3B0cjxQbGF0Zm9ybURpc3BsYXk+IFBsYXRmb3JtRGlzcGxh
eTo6Y3JlYXRlUGxhdGZvcm1EaXNwbGF5KCkKICAgICBpZiAoZ3RrX2luaXRfY2hlY2sobnVsbHB0
ciwgbnVsbHB0cikpIHsKICAgICAgICAgR2RrRGlzcGxheSogZGlzcGxheSA9IGdka19kaXNwbGF5
X21hbmFnZXJfZ2V0X2RlZmF1bHRfZGlzcGxheShnZGtfZGlzcGxheV9tYW5hZ2VyX2dldCgpKTsK
ICNpZiBQTEFURk9STShYMTEpCi0gICAgICAgIGlmIChHREtfSVNfWDExX0RJU1BMQVkoZGlzcGxh
eSkpIHsKLSAgICAgICAgICAgIGF1dG8gcGxhdGZvcm1EaXNwbGF5ID0gUGxhdGZvcm1EaXNwbGF5
WDExOjpjcmVhdGUoR0RLX0RJU1BMQVlfWERJU1BMQVkoZGlzcGxheSkpOwotI2lmIFVTRShBVFNQ
SSkgJiYgVVNFKEdUSzQpCi0gICAgICAgICAgICBpZiAoY29uc3QgY2hhciogYXRzcGlCdXNBZGRy
ZXNzID0gc3RhdGljX2Nhc3Q8Y29uc3QgY2hhcio+KGdfb2JqZWN0X2dldF9kYXRhKEdfT0JKRUNU
KGRpc3BsYXkpLCAiLWd0ay1hdHNwaS1idXMtYWRkcmVzcyIpKSkKLSAgICAgICAgICAgICAgICBw
bGF0Zm9ybURpc3BsYXktPm1fYWNjZXNzaWJpbGl0eUJ1c0FkZHJlc3MgPSBTdHJpbmc6OmZyb21V
VEY4KGF0c3BpQnVzQWRkcmVzcyk7Ci0jZW5kaWYKLSAgICAgICAgICAgIHJldHVybiBwbGF0Zm9y
bURpc3BsYXk7Ci0gICAgICAgIH0KKyAgICAgICAgaWYgKEdES19JU19YMTFfRElTUExBWShkaXNw
bGF5KSkKKyAgICAgICAgICAgIHJldHVybiBQbGF0Zm9ybURpc3BsYXlYMTE6OmNyZWF0ZShkaXNw
bGF5KTsKICNlbmRpZgorCiAjaWYgUExBVEZPUk0oV0FZTEFORCkKLSAgICAgICAgaWYgKEdES19J
U19XQVlMQU5EX0RJU1BMQVkoZGlzcGxheSkpIHsKLSAgICAgICAgICAgIGF1dG8gcGxhdGZvcm1E
aXNwbGF5ID0gUGxhdGZvcm1EaXNwbGF5V2F5bGFuZDo6Y3JlYXRlKGdka193YXlsYW5kX2Rpc3Bs
YXlfZ2V0X3dsX2Rpc3BsYXkoZGlzcGxheSkpOwotI2lmIFVTRShBVFNQSSkgJiYgVVNFKEdUSzQp
Ci0gICAgICAgICAgICBpZiAoY29uc3QgY2hhciogYXRzcGlCdXNBZGRyZXNzID0gc3RhdGljX2Nh
c3Q8Y29uc3QgY2hhcio+KGdfb2JqZWN0X2dldF9kYXRhKEdfT0JKRUNUKGRpc3BsYXkpLCAiLWd0
ay1hdHNwaS1idXMtYWRkcmVzcyIpKSkKLSAgICAgICAgICAgICAgICBwbGF0Zm9ybURpc3BsYXkt
Pm1fYWNjZXNzaWJpbGl0eUJ1c0FkZHJlc3MgPSBTdHJpbmc6OmZyb21VVEY4KGF0c3BpQnVzQWRk
cmVzcyk7Ci0jZW5kaWYKLSAgICAgICAgICAgIHJldHVybiBwbGF0Zm9ybURpc3BsYXk7Ci0gICAg
ICAgIH0KKyAgICAgICAgaWYgKEdES19JU19XQVlMQU5EX0RJU1BMQVkoZGlzcGxheSkpCisgICAg
ICAgICAgICByZXR1cm4gUGxhdGZvcm1EaXNwbGF5V2F5bGFuZDo6Y3JlYXRlKGRpc3BsYXkpOwog
I2VuZGlmCiAgICAgfQogI2VuZGlmIC8vIFBMQVRGT1JNKEdUSykKQEAgLTE3NCwxOCArMTYzLDQ0
IEBAIHZvaWQgUGxhdGZvcm1EaXNwbGF5OjpzZXRTaGFyZWREaXNwbGF5Rm9yQ29tcG9zaXRpbmco
UGxhdGZvcm1EaXNwbGF5JiBkaXNwbGF5KQogICAgIHNfc2hhcmVkRGlzcGxheUZvckNvbXBvc2l0
aW5nID0gJmRpc3BsYXk7CiB9CiAKLVBsYXRmb3JtRGlzcGxheTo6UGxhdGZvcm1EaXNwbGF5KE5h
dGl2ZURpc3BsYXlPd25lZCBkaXNwbGF5T3duZWQpCi0gICAgOiBtX25hdGl2ZURpc3BsYXlPd25l
ZChkaXNwbGF5T3duZWQpCitQbGF0Zm9ybURpc3BsYXk6OlBsYXRmb3JtRGlzcGxheSgpCiAjaWYg
VVNFKEVHTCkKLSAgICAsIG1fZWdsRGlzcGxheShFR0xfTk9fRElTUExBWSkKKyAgICA6IG1fZWds
RGlzcGxheShFR0xfTk9fRElTUExBWSkKICNlbmRpZgogewogfQogCisjaWYgUExBVEZPUk0oR1RL
KQorUGxhdGZvcm1EaXNwbGF5OjpQbGF0Zm9ybURpc3BsYXkoR2RrRGlzcGxheSogZGlzcGxheSkK
KyAgICA6IG1fc2hhcmVkRGlzcGxheShkaXNwbGF5KQoreworI2lmIFVTRShBVFNQSSkgJiYgVVNF
KEdUSzQpCisgICAgaWYgKGNvbnN0IGNoYXIqIGF0c3BpQnVzQWRkcmVzcyA9IHN0YXRpY19jYXN0
PGNvbnN0IGNoYXIqPihnX29iamVjdF9nZXRfZGF0YShHX09CSkVDVChkaXNwbGF5KSwgIi1ndGst
YXRzcGktYnVzLWFkZHJlc3MiKSkpCisgICAgICAgIG1fYWNjZXNzaWJpbGl0eUJ1c0FkZHJlc3Mg
PSBTdHJpbmc6OmZyb21VVEY4KGF0c3BpQnVzQWRkcmVzcyk7CisjZW5kaWYKKworICAgIGdfc2ln
bmFsX2Nvbm5lY3QobV9zaGFyZWREaXNwbGF5LmdldCgpLCAiY2xvc2VkIiwgR19DQUxMQkFDSygr
W10oR2RrRGlzcGxheSosIGdib29sZWFuLCBncG9pbnRlciB1c2VyRGF0YSkgeworICAgICAgICBh
dXRvJiBwbGF0Zm9ybURpc3BsYXkgPSAqc3RhdGljX2Nhc3Q8UGxhdGZvcm1EaXNwbGF5Kj4odXNl
ckRhdGEpOworICAgICAgICBwbGF0Zm9ybURpc3BsYXkuc2hhcmVkRGlzcGxheURpZENsb3NlKCk7
CisgICAgfSksIHRoaXMpOworfQorCit2b2lkIFBsYXRmb3JtRGlzcGxheTo6c2hhcmVkRGlzcGxh
eURpZENsb3NlKCkKK3sKKyNpZiBVU0UoRUdMKSB8fCBVU0UoR0xYKQorICAgIGNsZWFyU2hhcmlu
Z0dMQ29udGV4dCgpOworI2VuZGlmCit9CisjZW5kaWYKKwogUGxhdGZvcm1EaXNwbGF5Ojp+UGxh
dGZvcm1EaXNwbGF5KCkKIHsKICNpZiBVU0UoRUdMKSAmJiAhUExBVEZPUk0oV0lOKQogICAgIEFT
U0VSVChtX2VnbERpc3BsYXkgPT0gRUdMX05PX0RJU1BMQVkpOworI2VuZGlmCisjaWYgUExBVEZP
Uk0oR1RLKQorICAgIGlmIChtX3NoYXJlZERpc3BsYXkpCisgICAgICAgIGdfc2lnbmFsX2hhbmRs
ZXJzX2Rpc2Nvbm5lY3RfYnlfZGF0YShtX3NoYXJlZERpc3BsYXkuZ2V0KCksIHRoaXMpOwogI2Vu
ZGlmCiAgICAgaWYgKHNfc2hhcmVkRGlzcGxheUZvckNvbXBvc2l0aW5nID09IHRoaXMpCiAgICAg
ICAgIHNfc2hhcmVkRGlzcGxheUZvckNvbXBvc2l0aW5nID0gbnVsbHB0cjsKQEAgLTE5OCw2ICsy
MTMsMTEgQEAgR0xDb250ZXh0KiBQbGF0Zm9ybURpc3BsYXk6OnNoYXJpbmdHTENvbnRleHQoKQog
ICAgICAgICBtX3NoYXJpbmdHTENvbnRleHQgPSBHTENvbnRleHQ6OmNyZWF0ZVNoYXJpbmdDb250
ZXh0KCp0aGlzKTsKICAgICByZXR1cm4gbV9zaGFyaW5nR0xDb250ZXh0LmdldCgpOwogfQorCit2
b2lkIFBsYXRmb3JtRGlzcGxheTo6Y2xlYXJTaGFyaW5nR0xDb250ZXh0KCkKK3sKKyAgICBtX3No
YXJpbmdHTENvbnRleHQgPSBudWxscHRyOworfQogI2VuZGlmCiAKICNpZiBVU0UoRUdMKQpAQCAt
Mjc0LDcgKzI5NCw3IEBAIHZvaWQgUGxhdGZvcm1EaXNwbGF5Ojp0ZXJtaW5hdGVFR0xEaXNwbGF5
KCkKICAgICBtX2dzdEdMRGlzcGxheSA9IG51bGxwdHI7CiAgICAgbV9nc3RHTENvbnRleHQgPSBu
dWxscHRyOwogI2VuZGlmCi0gICAgbV9zaGFyaW5nR0xDb250ZXh0ID0gbnVsbHB0cjsKKyAgICBj
bGVhclNoYXJpbmdHTENvbnRleHQoKTsKICAgICBBU1NFUlQobV9lZ2xEaXNwbGF5SW5pdGlhbGl6
ZWQpOwogICAgIGlmIChtX2VnbERpc3BsYXkgPT0gRUdMX05PX0RJU1BMQVkpCiAgICAgICAgIHJl
dHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BsYXRm
b3JtRGlzcGxheS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1E
aXNwbGF5LmgKaW5kZXggYmU3ZGI2ZTg4N2I1Li44NjcwZjI3ZjJlYWYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BsYXRmb3JtRGlzcGxheS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BsYXRmb3JtRGlzcGxheS5oCkBAIC0zMyw2
ICszMywxMiBAQAogdHlwZWRlZiB2b2lkICpFR0xEaXNwbGF5OwogI2VuZGlmCiAKKyNpZiBQTEFU
Rk9STShHVEspCisjaW5jbHVkZSA8d3RmL2dsaWIvR1JlZlB0ci5oPgorCit0eXBlZGVmIHN0cnVj
dCBfR2RrRGlzcGxheSBHZGtEaXNwbGF5OworI2VuZGlmCisKICNpZiBFTkFCTEUoVklERU8pICYm
IFVTRShHU1RSRUFNRVJfR0wpCiAjaW5jbHVkZSAiR1JlZlB0ckdTdHJlYW1lci5oIgogCkBAIC03
NCw2ICs4MCw3IEBAIHB1YmxpYzoKIAogI2lmIFVTRShFR0wpIHx8IFVTRShHTFgpCiAgICAgV0VC
Q09SRV9FWFBPUlQgR0xDb250ZXh0KiBzaGFyaW5nR0xDb250ZXh0KCk7CisgICAgdm9pZCBjbGVh
clNoYXJpbmdHTENvbnRleHQoKTsKICNlbmRpZgogCiAjaWYgVVNFKEVHTCkKQEAgLTk2LDEyICsx
MDMsMTggQEAgcHVibGljOgogI2VuZGlmCiAKIHByb3RlY3RlZDoKLSAgICBlbnVtIGNsYXNzIE5h
dGl2ZURpc3BsYXlPd25lZCB7IE5vLCBZZXMgfTsKLSAgICBleHBsaWNpdCBQbGF0Zm9ybURpc3Bs
YXkoTmF0aXZlRGlzcGxheU93bmVkKTsKKyAgICBQbGF0Zm9ybURpc3BsYXkoKTsKKyNpZiBQTEFU
Rk9STShHVEspCisgICAgZXhwbGljaXQgUGxhdGZvcm1EaXNwbGF5KEdka0Rpc3BsYXkqKTsKKyNl
bmRpZgogCiAgICAgc3RhdGljIHZvaWQgc2V0U2hhcmVkRGlzcGxheUZvckNvbXBvc2l0aW5nKFBs
YXRmb3JtRGlzcGxheSYpOwogCi0gICAgTmF0aXZlRGlzcGxheU93bmVkIG1fbmF0aXZlRGlzcGxh
eU93bmVkIHsgTmF0aXZlRGlzcGxheU93bmVkOjpObyB9OworI2lmIFBMQVRGT1JNKEdUSykKKyAg
ICB2aXJ0dWFsIHZvaWQgc2hhcmVkRGlzcGxheURpZENsb3NlKCk7CisKKyAgICBHUmVmUHRyPEdk
a0Rpc3BsYXk+IG1fc2hhcmVkRGlzcGxheTsKKyNlbmRpZgogCiAjaWYgVVNFKEVHTCkKICAgICB2
aXJ0dWFsIHZvaWQgaW5pdGlhbGl6ZUVHTERpc3BsYXkoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2xpYndwZS9QbGF0Zm9ybURpc3BsYXlMaWJXUEUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbGlid3BlL1BsYXRmb3JtRGlzcGxh
eUxpYldQRS5jcHAKaW5kZXggZGEyZDk0NTkyM2QzLi4wOTg2N2UzNTMzNDkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2xpYndwZS9QbGF0Zm9ybURpc3BsYXlM
aWJXUEUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2xpYndwZS9Q
bGF0Zm9ybURpc3BsYXlMaWJXUEUuY3BwCkBAIC01OSw3ICs1OSw2IEBAIHN0ZDo6dW5pcXVlX3B0
cjxQbGF0Zm9ybURpc3BsYXlMaWJXUEU+IFBsYXRmb3JtRGlzcGxheUxpYldQRTo6Y3JlYXRlKCkK
IH0KIAogUGxhdGZvcm1EaXNwbGF5TGliV1BFOjpQbGF0Zm9ybURpc3BsYXlMaWJXUEUoKQotICAg
IDogUGxhdGZvcm1EaXNwbGF5KE5hdGl2ZURpc3BsYXlPd25lZDo6Tm8pCiB7CiAjaWYgUExBVEZP
Uk0oR1RLKQogICAgIFBsYXRmb3JtRGlzcGxheTo6c2V0U2hhcmVkRGlzcGxheUZvckNvbXBvc2l0
aW5nKCp0aGlzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3dheWxhbmQvUGxhdGZvcm1EaXNwbGF5V2F5bGFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy93YXlsYW5kL1BsYXRmb3JtRGlzcGxheVdheWxhbmQuY3BwCmluZGV4IDA2
NmJiZjgxZDVjZC4uMTExNDE5ODY4ODcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy93YXlsYW5kL1BsYXRmb3JtRGlzcGxheVdheWxhbmQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dheWxhbmQvUGxhdGZvcm1EaXNwbGF5V2F5
bGFuZC5jcHAKQEAgLTM3LDYgKzM3LDE0IEBACiAjaW5jbHVkZSA8RUdML2VnbGV4dC5oPgogI2lu
Y2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+CiAKKyNpZiBQTEFURk9STShHVEspCisjaWYgVVNFKEdU
SzQpCisjaW5jbHVkZSA8Z2RrL3dheWxhbmQvZ2Rrd2F5bGFuZC5oPgorI2Vsc2UKKyNpbmNsdWRl
IDxnZGsvZ2Rrd2F5bGFuZC5oPgorI2VuZGlmCisjZW5kaWYKKwogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiBjb25zdCBzdHJ1Y3Qgd2xfcmVnaXN0cnlfbGlzdGVuZXIgUGxhdGZvcm1EaXNwbGF5V2F5
bGFuZDo6c19yZWdpc3RyeUxpc3RlbmVyID0gewpAQCAtNTYsMzMgKzY0LDU2IEBAIHN0ZDo6dW5p
cXVlX3B0cjxQbGF0Zm9ybURpc3BsYXk+IFBsYXRmb3JtRGlzcGxheVdheWxhbmQ6OmNyZWF0ZSgp
CiAgICAgaWYgKCFkaXNwbGF5KQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgIGF1dG8g
cGxhdGZvcm1EaXNwbGF5ID0gc3RkOjp1bmlxdWVfcHRyPFBsYXRmb3JtRGlzcGxheVdheWxhbmQ+
KG5ldyBQbGF0Zm9ybURpc3BsYXlXYXlsYW5kKGRpc3BsYXksIE5hdGl2ZURpc3BsYXlPd25lZDo6
WWVzKSk7CisgICAgYXV0byBwbGF0Zm9ybURpc3BsYXkgPSBzdGQ6OnVuaXF1ZV9wdHI8UGxhdGZv
cm1EaXNwbGF5V2F5bGFuZD4obmV3IFBsYXRmb3JtRGlzcGxheVdheWxhbmQoZGlzcGxheSkpOwog
ICAgIHBsYXRmb3JtRGlzcGxheS0+aW5pdGlhbGl6ZSgpOwogICAgIHJldHVybiBwbGF0Zm9ybURp
c3BsYXk7CiB9CiAKLXN0ZDo6dW5pcXVlX3B0cjxQbGF0Zm9ybURpc3BsYXk+IFBsYXRmb3JtRGlz
cGxheVdheWxhbmQ6OmNyZWF0ZShzdHJ1Y3Qgd2xfZGlzcGxheSogZGlzcGxheSkKKyNpZiBQTEFU
Rk9STShHVEspCitzdGQ6OnVuaXF1ZV9wdHI8UGxhdGZvcm1EaXNwbGF5PiBQbGF0Zm9ybURpc3Bs
YXlXYXlsYW5kOjpjcmVhdGUoR2RrRGlzcGxheSogZGlzcGxheSkKIHsKLSAgICBhdXRvIHBsYXRm
b3JtRGlzcGxheSA9IHN0ZDo6dW5pcXVlX3B0cjxQbGF0Zm9ybURpc3BsYXlXYXlsYW5kPihuZXcg
UGxhdGZvcm1EaXNwbGF5V2F5bGFuZChkaXNwbGF5LCBOYXRpdmVEaXNwbGF5T3duZWQ6Ok5vKSk7
CisgICAgYXV0byBwbGF0Zm9ybURpc3BsYXkgPSBzdGQ6OnVuaXF1ZV9wdHI8UGxhdGZvcm1EaXNw
bGF5V2F5bGFuZD4obmV3IFBsYXRmb3JtRGlzcGxheVdheWxhbmQoZGlzcGxheSkpOwogICAgIHBs
YXRmb3JtRGlzcGxheS0+aW5pdGlhbGl6ZSgpOwogICAgIHJldHVybiBwbGF0Zm9ybURpc3BsYXk7
CiB9CisjZW5kaWYKKworUGxhdGZvcm1EaXNwbGF5V2F5bGFuZDo6UGxhdGZvcm1EaXNwbGF5V2F5
bGFuZChzdHJ1Y3Qgd2xfZGlzcGxheSogZGlzcGxheSkKKyAgICA6IG1fZGlzcGxheShkaXNwbGF5
KQoreworfQogCi1QbGF0Zm9ybURpc3BsYXlXYXlsYW5kOjpQbGF0Zm9ybURpc3BsYXlXYXlsYW5k
KHN0cnVjdCB3bF9kaXNwbGF5KiBkaXNwbGF5LCBOYXRpdmVEaXNwbGF5T3duZWQgZGlzcGxheU93
bmVkKQotICAgIDogUGxhdGZvcm1EaXNwbGF5KGRpc3BsYXlPd25lZCkKLSAgICAsIG1fZGlzcGxh
eShkaXNwbGF5KQorI2lmIFBMQVRGT1JNKEdUSykKK1BsYXRmb3JtRGlzcGxheVdheWxhbmQ6OlBs
YXRmb3JtRGlzcGxheVdheWxhbmQoR2RrRGlzcGxheSogZGlzcGxheSkKKyAgICA6IFBsYXRmb3Jt
RGlzcGxheShkaXNwbGF5KQorICAgICwgbV9kaXNwbGF5KGdka193YXlsYW5kX2Rpc3BsYXlfZ2V0
X3dsX2Rpc3BsYXkoZGlzcGxheSkpCiB7CiB9CisjZW5kaWYKIAogUGxhdGZvcm1EaXNwbGF5V2F5
bGFuZDo6flBsYXRmb3JtRGlzcGxheVdheWxhbmQoKQogewotICAgIGlmIChtX25hdGl2ZURpc3Bs
YXlPd25lZCA9PSBOYXRpdmVEaXNwbGF5T3duZWQ6OlllcykgeworI2lmIFBMQVRGT1JNKEdUSykK
KyAgICBib29sIG5hdGl2ZURpc3BsYXlPd25lZCA9ICFtX3NoYXJlZERpc3BsYXk7CisjZWxzZQor
ICAgIGJvb2wgbmF0aXZlRGlzcGxheU93bmVkID0gdHJ1ZTsKKyNlbmRpZgorCisgICAgaWYgKG5h
dGl2ZURpc3BsYXlPd25lZCkgewogICAgICAgICBtX2NvbXBvc2l0b3IgPSBudWxscHRyOwogICAg
ICAgICBtX3JlZ2lzdHJ5ID0gbnVsbHB0cjsKICAgICAgICAgd2xfZGlzcGxheV9kaXNjb25uZWN0
KG1fZGlzcGxheSk7CiAgICAgfQogfQogCisjaWYgUExBVEZPUk0oR1RLKQordm9pZCBQbGF0Zm9y
bURpc3BsYXlXYXlsYW5kOjpzaGFyZWREaXNwbGF5RGlkQ2xvc2UoKQoreworICAgIFBsYXRmb3Jt
RGlzcGxheTo6c2hhcmVkRGlzcGxheURpZENsb3NlKCk7CisgICAgbV9kaXNwbGF5ID0gbnVsbHB0
cjsKK30KKyNlbmRpZgorCiB2b2lkIFBsYXRmb3JtRGlzcGxheVdheWxhbmQ6OmluaXRpYWxpemUo
KQogewogICAgIGlmICghbV9kaXNwbGF5KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3Mvd2F5bGFuZC9QbGF0Zm9ybURpc3BsYXlXYXlsYW5kLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93YXlsYW5kL1BsYXRmb3JtRGlzcGxheVdheWxhbmQu
aAppbmRleCAxYTI5NTQzMTVmYTkuLjBlZjQxOGFiNDIxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2F5bGFuZC9QbGF0Zm9ybURpc3BsYXlXYXlsYW5kLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2F5bGFuZC9QbGF0Zm9ybURp
c3BsYXlXYXlsYW5kLmgKQEAgLTIzLDggKzIzLDcgQEAKICAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAot
I2lmbmRlZiAgUGxhdGZvcm1EaXNwbGF5V2F5bGFuZF9oCi0jZGVmaW5lICBQbGF0Zm9ybURpc3Bs
YXlXYXlsYW5kX2gKKyNwcmFnbWEgb25jZQogCiAjaWYgUExBVEZPUk0oV0FZTEFORCkKIApAQCAt
MzcsNyArMzYsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBQbGF0Zm9ybURpc3BsYXlX
YXlsYW5kIDogcHVibGljIFBsYXRmb3JtRGlzcGxheSB7CiBwdWJsaWM6CiAgICAgc3RhdGljIHN0
ZDo6dW5pcXVlX3B0cjxQbGF0Zm9ybURpc3BsYXk+IGNyZWF0ZSgpOwotICAgIHN0YXRpYyBzdGQ6
OnVuaXF1ZV9wdHI8UGxhdGZvcm1EaXNwbGF5PiBjcmVhdGUoc3RydWN0IHdsX2Rpc3BsYXkqKTsK
KyNpZiBQTEFURk9STShHVEspCisgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxQbGF0Zm9ybURp
c3BsYXk+IGNyZWF0ZShHZGtEaXNwbGF5Kik7CisjZW5kaWYKIAogICAgIHZpcnR1YWwgflBsYXRm
b3JtRGlzcGxheVdheWxhbmQoKTsKIApAQCAtNTEsNyArNTIsMTIgQEAgcHJpdmF0ZToKICAgICBU
eXBlIHR5cGUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBQbGF0Zm9ybURpc3BsYXk6OlR5cGU6Oldh
eWxhbmQ7IH0KIAogcHJvdGVjdGVkOgotICAgIFBsYXRmb3JtRGlzcGxheVdheWxhbmQoc3RydWN0
IHdsX2Rpc3BsYXkqLCBOYXRpdmVEaXNwbGF5T3duZWQpOworICAgIGV4cGxpY2l0IFBsYXRmb3Jt
RGlzcGxheVdheWxhbmQoc3RydWN0IHdsX2Rpc3BsYXkqKTsKKyNpZiBQTEFURk9STShHVEspCisg
ICAgZXhwbGljaXQgUGxhdGZvcm1EaXNwbGF5V2F5bGFuZChHZGtEaXNwbGF5Kik7CisKKyAgICB2
b2lkIHNoYXJlZERpc3BsYXlEaWRDbG9zZSgpIG92ZXJyaWRlOworI2VuZGlmCiAKICAgICB2b2lk
IGluaXRpYWxpemUoKTsKIApAQCAtNjcsNSArNzMsMyBAQCBwcm90ZWN0ZWQ6CiBTUEVDSUFMSVpF
X1RZUEVfVFJBSVRTX1BMQVRGT1JNX0RJU1BMQVkoUGxhdGZvcm1EaXNwbGF5V2F5bGFuZCwgV2F5
bGFuZCkKIAogI2VuZGlmIC8vIFBMQVRGT1JNKFdBWUxBTkQpCi0KLSNlbmRpZiAvLyBQbGF0Zm9y
bURpc3BsYXlXYXlsYW5kX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3dpbi9QbGF0Zm9ybURpc3BsYXlXaW4uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3dpbi9QbGF0Zm9ybURpc3BsYXlXaW4uaAppbmRleCBlNzczMTNjODhlNzAuLmVh
YTZkNmYyNTEwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
d2luL1BsYXRmb3JtRGlzcGxheVdpbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3dpbi9QbGF0Zm9ybURpc3BsYXlXaW4uaApAQCAtNDIsMTEgKzQyLDYgQEAgcHVibGlj
OgogICAgIHZpcnR1YWwgflBsYXRmb3JtRGlzcGxheVdpbigpID0gZGVmYXVsdDsKIAogcHJpdmF0
ZToKLSAgICBQbGF0Zm9ybURpc3BsYXlXaW4oKQotICAgICAgICA6IFBsYXRmb3JtRGlzcGxheShO
YXRpdmVEaXNwbGF5T3duZWQ6Ok5vKQotICAgIHsKLSAgICB9Ci0KICAgICBUeXBlIHR5cGUoKSBj
b25zdCBvdmVycmlkZSB7IHJldHVybiBQbGF0Zm9ybURpc3BsYXk6OlR5cGU6OldpbmRvd3M7IH0K
IAogICAgIHZvaWQgaW5pdGlhbGl6ZUVHTERpc3BsYXkoKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3gxMS9QbGF0Zm9ybURpc3BsYXlYMTEuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MveDExL1BsYXRmb3JtRGlzcGxheVgx
MS5jcHAKaW5kZXggZGM0NmVkZTE0Y2RmLi41NmE1ZjAzMmUyNDkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3gxMS9QbGF0Zm9ybURpc3BsYXlYMTEuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3gxMS9QbGF0Zm9ybURpc3BsYXlY
MTEuY3BwCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpbmNsdWRlICJHTENvbnRleHQuaCIKICNpbmNs
dWRlICJYRXJyb3JUcmFwcGVyLmgiCisjaW5jbHVkZSA8Y3N0ZGxpYj4KIAogI2lmIFBMQVRGT1JN
KFgxMSkKICNpbmNsdWRlIDxYMTEvWGF0b20uaD4KQEAgLTM2LDYgKzM3LDExIEBACiAjaWYgUExB
VEZPUk0oR1RLKQogI2luY2x1ZGUgPFgxMS9YdXRpbC5oPgogI2luY2x1ZGUgPFgxMS9leHRlbnNp
b25zL1hkYW1hZ2UuaD4KKyNpZiBVU0UoR1RLNCkKKyNpbmNsdWRlIDxnZGsveDExL2dka3guaD4K
KyNlbHNlCisjaW5jbHVkZSA8Z2RrL2dka3guaD4KKyNlbmRpZgogI2VuZGlmCiAKICNpZiBVU0Uo
RUdMKQpAQCAtNTUsMzAgKzYxLDY3IEBAIHN0ZDo6dW5pcXVlX3B0cjxQbGF0Zm9ybURpc3BsYXk+
IFBsYXRmb3JtRGlzcGxheVgxMTo6Y3JlYXRlKCkKICAgICBpZiAoIWRpc3BsYXkpCiAgICAgICAg
IHJldHVybiBudWxscHRyOwogCi0gICAgcmV0dXJuIHN0ZDo6dW5pcXVlX3B0cjxQbGF0Zm9ybURp
c3BsYXlYMTE+KG5ldyBQbGF0Zm9ybURpc3BsYXlYMTEoZGlzcGxheSwgTmF0aXZlRGlzcGxheU93
bmVkOjpZZXMpKTsKKyAgICByZXR1cm4gc3RkOjp1bmlxdWVfcHRyPFBsYXRmb3JtRGlzcGxheVgx
MT4obmV3IFBsYXRmb3JtRGlzcGxheVgxMShkaXNwbGF5KSk7Cit9CisKKyNpZiBQTEFURk9STShH
VEspCitzdGQ6OnVuaXF1ZV9wdHI8UGxhdGZvcm1EaXNwbGF5PiBQbGF0Zm9ybURpc3BsYXlYMTE6
OmNyZWF0ZShHZGtEaXNwbGF5KiBkaXNwbGF5KQoreworICAgIHJldHVybiBzdGQ6OnVuaXF1ZV9w
dHI8UGxhdGZvcm1EaXNwbGF5WDExPihuZXcgUGxhdGZvcm1EaXNwbGF5WDExKGRpc3BsYXkpKTsK
IH0KKyNlbmRpZgogCi1zdGQ6OnVuaXF1ZV9wdHI8UGxhdGZvcm1EaXNwbGF5PiBQbGF0Zm9ybURp
c3BsYXlYMTE6OmNyZWF0ZShEaXNwbGF5KiBkaXNwbGF5KQorc3RhdGljIGlubGluZSB2b2lkIGNs
ZWFyU2hhcmluZ0dMQ29udGV4dEF0RXhpdCgpCiB7Ci0gICAgcmV0dXJuIHN0ZDo6dW5pcXVlX3B0
cjxQbGF0Zm9ybURpc3BsYXlYMTE+KG5ldyBQbGF0Zm9ybURpc3BsYXlYMTEoZGlzcGxheSwgTmF0
aXZlRGlzcGxheU93bmVkOjpObykpOworI2lmIFVTRShHTFgpCisgICAgLy8gSW4gWDExIG9ubHkg
b25lIFBsYXRmb3JtRGlzcGxheSBpbnN0YW5jZSBpcyBhbGxvd2VkIHBlciBwcm9jZXNzIHdoaWNo
IGlzIHRoZSBzaGFyZWREaXNwbGF5IG9uZS4KKyAgICAvLyBXZSBpbnN0YWxsIGFuIGF0ZXhpdCBo
YW5kbGVyIHRvIGNsZWFyIHRoZSBzaGFyaW5nIEdMIGNvbnRleHQgdG8gZW5zdXJlIGl0J3MgcmVs
ZWFzZWQgYmVmb3JlCisgICAgLy8gdGhlIGNvbnN0cnVjdG9yIGlzIGNhbGxlZCwgYmVjYXVzZSBj
bGVhcmluZyB0aGUgY29udGV4dCBpbiBYMTEgcmVxdWlyZXMgdG8gYWNjZXNzIFBsYXRmb3JtRGlz
cGxheTo6c2hhcmVkRGlzcGxheSgpCisgICAgLy8gYW5kIGNhbGxpbmcgaXQgZnJvbSBpdHMgY29u
c3RydWN0b3IgY2F1c2VzIGlzc3VlcyBpbiBzb21lIHN5c3RlbXMuIFNlZSBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM4NDk0LgorICAgIHN0ZDo6YXRleGl0KFtdIHsK
KwlQbGF0Zm9ybURpc3BsYXk6OnNoYXJlZERpc3BsYXkoKS5jbGVhclNoYXJpbmdHTENvbnRleHQo
KTsKKyAgICB9KTsKKyNlbmRpZgogfQogCi1QbGF0Zm9ybURpc3BsYXlYMTE6OlBsYXRmb3JtRGlz
cGxheVgxMShEaXNwbGF5KiBkaXNwbGF5LCBOYXRpdmVEaXNwbGF5T3duZWQgZGlzcGxheU93bmVk
KQotICAgIDogUGxhdGZvcm1EaXNwbGF5KGRpc3BsYXlPd25lZCkKLSAgICAsIG1fZGlzcGxheShk
aXNwbGF5KQorUGxhdGZvcm1EaXNwbGF5WDExOjpQbGF0Zm9ybURpc3BsYXlYMTEoRGlzcGxheSog
ZGlzcGxheSkKKyAgICA6IG1fZGlzcGxheShkaXNwbGF5KQogeworICAgIGNsZWFyU2hhcmluZ0dM
Q29udGV4dEF0RXhpdCgpOwogfQogCisjaWYgUExBVEZPUk0oR1RLKQorUGxhdGZvcm1EaXNwbGF5
WDExOjpQbGF0Zm9ybURpc3BsYXlYMTEoR2RrRGlzcGxheSogZGlzcGxheSkKKyAgICA6IFBsYXRm
b3JtRGlzcGxheShkaXNwbGF5KQorICAgICwgbV9kaXNwbGF5KEdES19ESVNQTEFZX1hESVNQTEFZ
KGRpc3BsYXkpKQoreworICAgIGNsZWFyU2hhcmluZ0dMQ29udGV4dEF0RXhpdCgpOworfQorI2Vu
ZGlmCisKIFBsYXRmb3JtRGlzcGxheVgxMTo6flBsYXRmb3JtRGlzcGxheVgxMSgpCiB7CiAjaWYg
VVNFKEVHTCkgfHwgVVNFKEdMWCkKLSAgICAvLyBDbGVhciB0aGUgc2hhcmluZyBjb250ZXh0IGJl
Zm9yZSByZWxlYXNpbmcgdGhlIGRpc3BsYXkuCi0gICAgbV9zaGFyaW5nR0xDb250ZXh0ID0gbnVs
bHB0cjsKKyAgICBBU1NFUlQoIW1fc2hhcmluZ0dMQ29udGV4dCk7CisjZW5kaWYKKworI2lmIFBM
QVRGT1JNKEdUSykKKyAgICBib29sIG5hdGl2ZURpc3BsYXlPd25lZCA9ICFtX3NoYXJlZERpc3Bs
YXk7CisjZWxzZQorICAgIGJvb2wgbmF0aXZlRGlzcGxheU93bmVkID0gdHJ1ZTsKICNlbmRpZgot
ICAgIGlmIChtX25hdGl2ZURpc3BsYXlPd25lZCA9PSBOYXRpdmVEaXNwbGF5T3duZWQ6OlllcykK
KyAgICBpZiAobmF0aXZlRGlzcGxheU93bmVkKQogICAgICAgICBYQ2xvc2VEaXNwbGF5KG1fZGlz
cGxheSk7CiB9CiAKKyNpZiBQTEFURk9STShHVEspCit2b2lkIFBsYXRmb3JtRGlzcGxheVgxMTo6
c2hhcmVkRGlzcGxheURpZENsb3NlKCkKK3sKKyAgICBQbGF0Zm9ybURpc3BsYXk6OnNoYXJlZERp
c3BsYXlEaWRDbG9zZSgpOworICAgIG1fZGlzcGxheSA9IG51bGxwdHI7Cit9CisjZW5kaWYKKwog
I2lmIFVTRShFR0wpCiB2b2lkIFBsYXRmb3JtRGlzcGxheVgxMTo6aW5pdGlhbGl6ZUVHTERpc3Bs
YXkoKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MveDEx
L1BsYXRmb3JtRGlzcGxheVgxMS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
eDExL1BsYXRmb3JtRGlzcGxheVgxMS5oCmluZGV4IDI5NDNhNTU0OWVjYi4uNDEwOWU5NDRjZmE4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy94MTEvUGxhdGZv
cm1EaXNwbGF5WDExLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MveDEx
L1BsYXRmb3JtRGlzcGxheVgxMS5oCkBAIC00MSw3ICs0MSw5IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIGNsYXNzIFBsYXRmb3JtRGlzcGxheVgxMSBmaW5hbCA6IHB1YmxpYyBQbGF0Zm9ybURpc3Bs
YXkgewogcHVibGljOgogICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8UGxhdGZvcm1EaXNwbGF5
PiBjcmVhdGUoKTsKLSAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPFBsYXRmb3JtRGlzcGxheT4g
Y3JlYXRlKDo6RGlzcGxheSopOworI2lmIFBMQVRGT1JNKEdUSykKKyAgICBzdGF0aWMgc3RkOjp1
bmlxdWVfcHRyPFBsYXRmb3JtRGlzcGxheT4gY3JlYXRlKEdka0Rpc3BsYXkqKTsKKyNlbmRpZgog
CiAgICAgdmlydHVhbCB+UGxhdGZvcm1EaXNwbGF5WDExKCk7CiAKQEAgLTUyLDcgKzU0LDEyIEBA
IHB1YmxpYzoKICAgICBib29sIHN1cHBvcnRzR0xYKHN0ZDo6b3B0aW9uYWw8aW50PiYgZ2x4RXJy
b3JCYXNlKSBjb25zdDsKIAogcHJpdmF0ZToKLSAgICBQbGF0Zm9ybURpc3BsYXlYMTEoOjpEaXNw
bGF5KiwgTmF0aXZlRGlzcGxheU93bmVkKTsKKyAgICBleHBsaWNpdCBQbGF0Zm9ybURpc3BsYXlY
MTEoOjpEaXNwbGF5Kik7CisjaWYgUExBVEZPUk0oR1RLKQorICAgIGV4cGxpY2l0IFBsYXRmb3Jt
RGlzcGxheVgxMShHZGtEaXNwbGF5Kik7CisKKyAgICB2b2lkIHNoYXJlZERpc3BsYXlEaWRDbG9z
ZSgpIG92ZXJyaWRlOworI2VuZGlmCiAKICAgICBUeXBlIHR5cGUoKSBjb25zdCBvdmVycmlkZSB7
IHJldHVybiBQbGF0Zm9ybURpc3BsYXk6OlR5cGU6OlgxMTsgfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGE3MWM5
NzI4ODYxZC4uOTU4NDBlNmRjZjZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDIyLTAz
LTMwICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KKworICAgICAg
ICBSRUdSRVNTSU9OKHIyOTAzNjApOiBbR0xYXSBDcmFzaCBvbiBwcm9jZXNzIGV4aXQKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzODQ5NAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9n
dGsvV2F5bGFuZENvbXBvc2l0b3JEaXNwbGF5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2F5bGFu
ZENvbXBvc2l0b3JEaXNwbGF5OjpXYXlsYW5kQ29tcG9zaXRvckRpc3BsYXkpOgorCiAyMDIyLTAz
LTIxICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KIAogICAgICAg
ICBVbnJldmlld2VkLiBVcGRhdGUgT3B0aW9uc0dUSy5jbWFrZSBhbmQgTkVXUyBmb3IgMi4zNi4w
IHJlbGVhc2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9ndGsvV2F5bGFu
ZENvbXBvc2l0b3JEaXNwbGF5LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9ndGsvV2F5
bGFuZENvbXBvc2l0b3JEaXNwbGF5LmNwcAppbmRleCBlNmJhNmE1ZmVkNGIuLjZiNjE4ZDRkN2I1
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2d0ay9XYXlsYW5kQ29tcG9z
aXRvckRpc3BsYXkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9ndGsvV2F5bGFu
ZENvbXBvc2l0b3JEaXNwbGF5LmNwcApAQCAtNjMsNyArNjMsNyBAQCB2b2lkIFdheWxhbmRDb21w
b3NpdG9yRGlzcGxheTo6YmluZFN1cmZhY2VUb1BhZ2Uoc3RydWN0IHdsX3N1cmZhY2UqIHN1cmZh
Y2UsIFdlYgogfQogCiBXYXlsYW5kQ29tcG9zaXRvckRpc3BsYXk6OldheWxhbmRDb21wb3NpdG9y
RGlzcGxheShzdHJ1Y3Qgd2xfZGlzcGxheSogZGlzcGxheSkKLSAgICA6IFBsYXRmb3JtRGlzcGxh
eVdheWxhbmQoZGlzcGxheSwgTmF0aXZlRGlzcGxheU93bmVkOjpZZXMpCisgICAgOiBQbGF0Zm9y
bURpc3BsYXlXYXlsYW5kKGRpc3BsYXkpCiB7CiAgICAgUGxhdGZvcm1EaXNwbGF5OjpzZXRTaGFy
ZWREaXNwbGF5Rm9yQ29tcG9zaXRpbmcoKnRoaXMpOwogfQo=
</data>
<flag name="review"
          id="484308"
          type_id="1"
          status="+"
          setter="mcatanzaro"
    />
    <flag name="commit-queue"
          id="484399"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>456211</attachid>
            <date>2022-03-31 01:09:35 -0700</date>
            <delta_ts>2022-03-31 02:21:37 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>wk2-x11-crash.diff</filename>
            <type>text/plain</type>
            <size>18778</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBjZTg1NzllMzU4OGQuLjFlZjE4NmY3ZThlMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDQzIEBACisyMDIyLTAzLTMwICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFA
aWdhbGlhLmNvbT4KKworICAgICAgICBSRUdSRVNTSU9OKHIyOTAzNjApOiBbR0xYXSBDcmFzaCBv
biBwcm9jZXNzIGV4aXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIzODQ5NAorCisgICAgICAgIFJldmlld2VkIGJ5IE1pY2hhZWwgQ2F0YW56YXJvLgor
CisgICAgICAgIFdoZW4gY3JlYXRpbmcgYSBQbGF0Zm9ybURpc3BsYXkgZnJvbSBhIHNoYXJlZCBH
ZGtEaXNwbGF5LCB3ZSBuZWVkIHRvIGtlZXAgYSByZWZlcmVuY2UgdG8gdGhlIGRpc3BsYXkgYW5k
IGNvbm5lY3QKKyAgICAgICAgdG8gY2xvc2VkIHNpZ25hbCB0byByZWxlYXNlIG91ciBkaXNwbGF5
IGRlcGVuZGVudCByZXNvdXJjZXMuIENsb3NlZCBzaWduYWwgaXMgZW1pdHRlZCByaWdodCBiZWZv
cmUgdGhlIG5hdGl2ZQorICAgICAgICBkaXNwbGF5IGlzIGFjdHVhbGx5IGNsb3NlZCBieSBHREsu
IFdlIGFsc28gbmVlZCB0byBtYWtlIHN1cmUgdGhhdCB0aGUgc2hhcmluZyBHTCBjb250ZXh0IGlz
IHJlbGVhc2VkIGJlZm9yZSB0aGUKKyAgICAgICAgUGxhdGZvcm1EaXNwbGF5IGlzIGRlc3Ryb3ll
ZC4gVGhpcyBpcyBhbHdheXMgaGFwcGVuaW5nIGZvciBFR0wgYmVjYXVzZSB0aGUgc2hhcmluZyBH
TCBjb250ZXh0IGlzIGNsZWFyZWQgYmVmb3JlCisgICAgICAgIHRlcm1pbmF0aW5nIHRoZSBFR0wg
ZGlzcGxheSBpbiB0aGUgYXRleGl0IGhhbmRsZXIsIGJ1dCB0aGF0J3Mgbm90IHRoZSBjYXNlIG9m
IEdMWC4gU2luY2UgWDExIG9ubHkgYWxsb3dzIG9uZQorICAgICAgICBQbGF0Zm9ybURpc3BsYXks
IHdoaWNoIGlzIGFsd2F5cyB0aGUgc2hhcmVkIG9uZSwgd2UgY2FuIGp1c3QgaW5zdGFsbCBhbiBh
dGV4aXQgaGFuZGxlciBpbiB0aGUgY29uc3RydWN0b3IgdG8KKyAgICAgICAgY2xlYXIgdGhlIHNo
YXJpbmcgY29udGV4dCBiZWZvcmUgdGhlIGRlc3RydWN0b3IgaXMgY2FsbGVkLgorCisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1EaXNwbGF5LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlBsYXRmb3JtRGlzcGxheTo6Y3JlYXRlUGxhdGZvcm1EaXNwbGF5KToKKyAgICAgICAgKFdl
YkNvcmU6OlBsYXRmb3JtRGlzcGxheTo6UGxhdGZvcm1EaXNwbGF5KToKKyAgICAgICAgKFdlYkNv
cmU6OlBsYXRmb3JtRGlzcGxheTo6c2hhcmVkRGlzcGxheURpZENsb3NlKToKKyAgICAgICAgKFdl
YkNvcmU6OlBsYXRmb3JtRGlzcGxheTo6flBsYXRmb3JtRGlzcGxheSk6CisgICAgICAgIChXZWJD
b3JlOjpQbGF0Zm9ybURpc3BsYXk6OmNsZWFyU2hhcmluZ0dMQ29udGV4dCk6CisgICAgICAgIChX
ZWJDb3JlOjpQbGF0Zm9ybURpc3BsYXk6OnRlcm1pbmF0ZUVHTERpc3BsYXkpOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL1BsYXRmb3JtRGlzcGxheS5oOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2xpYndwZS9QbGF0Zm9ybURpc3BsYXlMaWJXUEUuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UGxhdGZvcm1EaXNwbGF5TGliV1BFOjpQbGF0Zm9ybURpc3BsYXlMaWJXUEUpOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dheWxhbmQvUGxhdGZvcm1EaXNwbGF5V2F5bGFuZC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybURpc3BsYXlXYXlsYW5kOjpjcmVhdGUpOgor
ICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1EaXNwbGF5V2F5bGFuZDo6UGxhdGZvcm1EaXNwbGF5
V2F5bGFuZCk6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybURpc3BsYXlXYXlsYW5kOjp+UGxh
dGZvcm1EaXNwbGF5V2F5bGFuZCk6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybURpc3BsYXlX
YXlsYW5kOjpzaGFyZWREaXNwbGF5RGlkQ2xvc2UpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL3dheWxhbmQvUGxhdGZvcm1EaXNwbGF5V2F5bGFuZC5oOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL3dpbi9QbGF0Zm9ybURpc3BsYXlXaW4uaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy94MTEvUGxhdGZvcm1EaXNwbGF5WDExLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBs
YXRmb3JtRGlzcGxheVgxMTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OmNsZWFyU2hhcmlu
Z0dMQ29udGV4dEF0RXhpdCk6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybURpc3BsYXlYMTE6
OlBsYXRmb3JtRGlzcGxheVgxMSk6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybURpc3BsYXlY
MTE6On5QbGF0Zm9ybURpc3BsYXlYMTEpOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1EaXNw
bGF5WDExOjpzaGFyZWREaXNwbGF5RGlkQ2xvc2UpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL3gxMS9QbGF0Zm9ybURpc3BsYXlYMTEuaDoKKwogMjAyMi0wMy0yMSAgQ2FybG9zIEdhcmNp
YSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTihyMjg2
OTU1KTogUmVuZGVyaW5nIExpbmtzIGR1cmluZyBzZWFyY2g6IGhpZ2hsaWdodGluZyBmYWlscwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1EaXNw
bGF5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BsYXRmb3JtRGlzcGxh
eS5jcHAKaW5kZXggMmUyZWI5MDVkYTc4Li4xYWYyZjU5ZTVjYjEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BsYXRmb3JtRGlzcGxheS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1EaXNwbGF5LmNwcApAQCAtOTYs
MjQgKzk2LDEzIEBAIHN0ZDo6dW5pcXVlX3B0cjxQbGF0Zm9ybURpc3BsYXk+IFBsYXRmb3JtRGlz
cGxheTo6Y3JlYXRlUGxhdGZvcm1EaXNwbGF5KCkKICAgICBpZiAoZ3RrX2luaXRfY2hlY2sobnVs
bHB0ciwgbnVsbHB0cikpIHsKICAgICAgICAgR2RrRGlzcGxheSogZGlzcGxheSA9IGdka19kaXNw
bGF5X21hbmFnZXJfZ2V0X2RlZmF1bHRfZGlzcGxheShnZGtfZGlzcGxheV9tYW5hZ2VyX2dldCgp
KTsKICNpZiBQTEFURk9STShYMTEpCi0gICAgICAgIGlmIChHREtfSVNfWDExX0RJU1BMQVkoZGlz
cGxheSkpIHsKLSAgICAgICAgICAgIGF1dG8gcGxhdGZvcm1EaXNwbGF5ID0gUGxhdGZvcm1EaXNw
bGF5WDExOjpjcmVhdGUoR0RLX0RJU1BMQVlfWERJU1BMQVkoZGlzcGxheSkpOwotI2lmIFVTRShB
VFNQSSkgJiYgVVNFKEdUSzQpCi0gICAgICAgICAgICBpZiAoY29uc3QgY2hhciogYXRzcGlCdXNB
ZGRyZXNzID0gc3RhdGljX2Nhc3Q8Y29uc3QgY2hhcio+KGdfb2JqZWN0X2dldF9kYXRhKEdfT0JK
RUNUKGRpc3BsYXkpLCAiLWd0ay1hdHNwaS1idXMtYWRkcmVzcyIpKSkKLSAgICAgICAgICAgICAg
ICBwbGF0Zm9ybURpc3BsYXktPm1fYWNjZXNzaWJpbGl0eUJ1c0FkZHJlc3MgPSBTdHJpbmc6OmZy
b21VVEY4KGF0c3BpQnVzQWRkcmVzcyk7Ci0jZW5kaWYKLSAgICAgICAgICAgIHJldHVybiBwbGF0
Zm9ybURpc3BsYXk7Ci0gICAgICAgIH0KKyAgICAgICAgaWYgKEdES19JU19YMTFfRElTUExBWShk
aXNwbGF5KSkKKyAgICAgICAgICAgIHJldHVybiBQbGF0Zm9ybURpc3BsYXlYMTE6OmNyZWF0ZShk
aXNwbGF5KTsKICNlbmRpZgorCiAjaWYgUExBVEZPUk0oV0FZTEFORCkKLSAgICAgICAgaWYgKEdE
S19JU19XQVlMQU5EX0RJU1BMQVkoZGlzcGxheSkpIHsKLSAgICAgICAgICAgIGF1dG8gcGxhdGZv
cm1EaXNwbGF5ID0gUGxhdGZvcm1EaXNwbGF5V2F5bGFuZDo6Y3JlYXRlKGdka193YXlsYW5kX2Rp
c3BsYXlfZ2V0X3dsX2Rpc3BsYXkoZGlzcGxheSkpOwotI2lmIFVTRShBVFNQSSkgJiYgVVNFKEdU
SzQpCi0gICAgICAgICAgICBpZiAoY29uc3QgY2hhciogYXRzcGlCdXNBZGRyZXNzID0gc3RhdGlj
X2Nhc3Q8Y29uc3QgY2hhcio+KGdfb2JqZWN0X2dldF9kYXRhKEdfT0JKRUNUKGRpc3BsYXkpLCAi
LWd0ay1hdHNwaS1idXMtYWRkcmVzcyIpKSkKLSAgICAgICAgICAgICAgICBwbGF0Zm9ybURpc3Bs
YXktPm1fYWNjZXNzaWJpbGl0eUJ1c0FkZHJlc3MgPSBTdHJpbmc6OmZyb21VVEY4KGF0c3BpQnVz
QWRkcmVzcyk7Ci0jZW5kaWYKLSAgICAgICAgICAgIHJldHVybiBwbGF0Zm9ybURpc3BsYXk7Ci0g
ICAgICAgIH0KKyAgICAgICAgaWYgKEdES19JU19XQVlMQU5EX0RJU1BMQVkoZGlzcGxheSkpCisg
ICAgICAgICAgICByZXR1cm4gUGxhdGZvcm1EaXNwbGF5V2F5bGFuZDo6Y3JlYXRlKGRpc3BsYXkp
OwogI2VuZGlmCiAgICAgfQogI2VuZGlmIC8vIFBMQVRGT1JNKEdUSykKQEAgLTE3NCwxOCArMTYz
LDQ0IEBAIHZvaWQgUGxhdGZvcm1EaXNwbGF5OjpzZXRTaGFyZWREaXNwbGF5Rm9yQ29tcG9zaXRp
bmcoUGxhdGZvcm1EaXNwbGF5JiBkaXNwbGF5KQogICAgIHNfc2hhcmVkRGlzcGxheUZvckNvbXBv
c2l0aW5nID0gJmRpc3BsYXk7CiB9CiAKLVBsYXRmb3JtRGlzcGxheTo6UGxhdGZvcm1EaXNwbGF5
KE5hdGl2ZURpc3BsYXlPd25lZCBkaXNwbGF5T3duZWQpCi0gICAgOiBtX25hdGl2ZURpc3BsYXlP
d25lZChkaXNwbGF5T3duZWQpCitQbGF0Zm9ybURpc3BsYXk6OlBsYXRmb3JtRGlzcGxheSgpCiAj
aWYgVVNFKEVHTCkKLSAgICAsIG1fZWdsRGlzcGxheShFR0xfTk9fRElTUExBWSkKKyAgICA6IG1f
ZWdsRGlzcGxheShFR0xfTk9fRElTUExBWSkKICNlbmRpZgogewogfQogCisjaWYgUExBVEZPUk0o
R1RLKQorUGxhdGZvcm1EaXNwbGF5OjpQbGF0Zm9ybURpc3BsYXkoR2RrRGlzcGxheSogZGlzcGxh
eSkKKyAgICA6IG1fc2hhcmVkRGlzcGxheShkaXNwbGF5KQoreworI2lmIFVTRShBVFNQSSkgJiYg
VVNFKEdUSzQpCisgICAgaWYgKGNvbnN0IGNoYXIqIGF0c3BpQnVzQWRkcmVzcyA9IHN0YXRpY19j
YXN0PGNvbnN0IGNoYXIqPihnX29iamVjdF9nZXRfZGF0YShHX09CSkVDVChkaXNwbGF5KSwgIi1n
dGstYXRzcGktYnVzLWFkZHJlc3MiKSkpCisgICAgICAgIG1fYWNjZXNzaWJpbGl0eUJ1c0FkZHJl
c3MgPSBTdHJpbmc6OmZyb21VVEY4KGF0c3BpQnVzQWRkcmVzcyk7CisjZW5kaWYKKworICAgIGdf
c2lnbmFsX2Nvbm5lY3QobV9zaGFyZWREaXNwbGF5LmdldCgpLCAiY2xvc2VkIiwgR19DQUxMQkFD
SygrW10oR2RrRGlzcGxheSosIGdib29sZWFuLCBncG9pbnRlciB1c2VyRGF0YSkgeworICAgICAg
ICBhdXRvJiBwbGF0Zm9ybURpc3BsYXkgPSAqc3RhdGljX2Nhc3Q8UGxhdGZvcm1EaXNwbGF5Kj4o
dXNlckRhdGEpOworICAgICAgICBwbGF0Zm9ybURpc3BsYXkuc2hhcmVkRGlzcGxheURpZENsb3Nl
KCk7CisgICAgfSksIHRoaXMpOworfQorCit2b2lkIFBsYXRmb3JtRGlzcGxheTo6c2hhcmVkRGlz
cGxheURpZENsb3NlKCkKK3sKKyNpZiBVU0UoRUdMKSB8fCBVU0UoR0xYKQorICAgIGNsZWFyU2hh
cmluZ0dMQ29udGV4dCgpOworI2VuZGlmCit9CisjZW5kaWYKKwogUGxhdGZvcm1EaXNwbGF5Ojp+
UGxhdGZvcm1EaXNwbGF5KCkKIHsKICNpZiBVU0UoRUdMKSAmJiAhUExBVEZPUk0oV0lOKQogICAg
IEFTU0VSVChtX2VnbERpc3BsYXkgPT0gRUdMX05PX0RJU1BMQVkpOworI2VuZGlmCisjaWYgUExB
VEZPUk0oR1RLKQorICAgIGlmIChtX3NoYXJlZERpc3BsYXkpCisgICAgICAgIGdfc2lnbmFsX2hh
bmRsZXJzX2Rpc2Nvbm5lY3RfYnlfZGF0YShtX3NoYXJlZERpc3BsYXkuZ2V0KCksIHRoaXMpOwog
I2VuZGlmCiAgICAgaWYgKHNfc2hhcmVkRGlzcGxheUZvckNvbXBvc2l0aW5nID09IHRoaXMpCiAg
ICAgICAgIHNfc2hhcmVkRGlzcGxheUZvckNvbXBvc2l0aW5nID0gbnVsbHB0cjsKQEAgLTE5OCw2
ICsyMTMsMTEgQEAgR0xDb250ZXh0KiBQbGF0Zm9ybURpc3BsYXk6OnNoYXJpbmdHTENvbnRleHQo
KQogICAgICAgICBtX3NoYXJpbmdHTENvbnRleHQgPSBHTENvbnRleHQ6OmNyZWF0ZVNoYXJpbmdD
b250ZXh0KCp0aGlzKTsKICAgICByZXR1cm4gbV9zaGFyaW5nR0xDb250ZXh0LmdldCgpOwogfQor
Cit2b2lkIFBsYXRmb3JtRGlzcGxheTo6Y2xlYXJTaGFyaW5nR0xDb250ZXh0KCkKK3sKKyAgICBt
X3NoYXJpbmdHTENvbnRleHQgPSBudWxscHRyOworfQogI2VuZGlmCiAKICNpZiBVU0UoRUdMKQpA
QCAtMjc0LDcgKzI5NCw3IEBAIHZvaWQgUGxhdGZvcm1EaXNwbGF5Ojp0ZXJtaW5hdGVFR0xEaXNw
bGF5KCkKICAgICBtX2dzdEdMRGlzcGxheSA9IG51bGxwdHI7CiAgICAgbV9nc3RHTENvbnRleHQg
PSBudWxscHRyOwogI2VuZGlmCi0gICAgbV9zaGFyaW5nR0xDb250ZXh0ID0gbnVsbHB0cjsKKyAg
ICBjbGVhclNoYXJpbmdHTENvbnRleHQoKTsKICAgICBBU1NFUlQobV9lZ2xEaXNwbGF5SW5pdGlh
bGl6ZWQpOwogICAgIGlmIChtX2VnbERpc3BsYXkgPT0gRUdMX05PX0RJU1BMQVkpCiAgICAgICAg
IHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1Bs
YXRmb3JtRGlzcGxheS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZv
cm1EaXNwbGF5LmgKaW5kZXggYmU3ZGI2ZTg4N2I1Li44NjcwZjI3ZjJlYWYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BsYXRmb3JtRGlzcGxheS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BsYXRmb3JtRGlzcGxheS5oCkBAIC0z
Myw2ICszMywxMiBAQAogdHlwZWRlZiB2b2lkICpFR0xEaXNwbGF5OwogI2VuZGlmCiAKKyNpZiBQ
TEFURk9STShHVEspCisjaW5jbHVkZSA8d3RmL2dsaWIvR1JlZlB0ci5oPgorCit0eXBlZGVmIHN0
cnVjdCBfR2RrRGlzcGxheSBHZGtEaXNwbGF5OworI2VuZGlmCisKICNpZiBFTkFCTEUoVklERU8p
ICYmIFVTRShHU1RSRUFNRVJfR0wpCiAjaW5jbHVkZSAiR1JlZlB0ckdTdHJlYW1lci5oIgogCkBA
IC03NCw2ICs4MCw3IEBAIHB1YmxpYzoKIAogI2lmIFVTRShFR0wpIHx8IFVTRShHTFgpCiAgICAg
V0VCQ09SRV9FWFBPUlQgR0xDb250ZXh0KiBzaGFyaW5nR0xDb250ZXh0KCk7CisgICAgdm9pZCBj
bGVhclNoYXJpbmdHTENvbnRleHQoKTsKICNlbmRpZgogCiAjaWYgVVNFKEVHTCkKQEAgLTk2LDEy
ICsxMDMsMTggQEAgcHVibGljOgogI2VuZGlmCiAKIHByb3RlY3RlZDoKLSAgICBlbnVtIGNsYXNz
IE5hdGl2ZURpc3BsYXlPd25lZCB7IE5vLCBZZXMgfTsKLSAgICBleHBsaWNpdCBQbGF0Zm9ybURp
c3BsYXkoTmF0aXZlRGlzcGxheU93bmVkKTsKKyAgICBQbGF0Zm9ybURpc3BsYXkoKTsKKyNpZiBQ
TEFURk9STShHVEspCisgICAgZXhwbGljaXQgUGxhdGZvcm1EaXNwbGF5KEdka0Rpc3BsYXkqKTsK
KyNlbmRpZgogCiAgICAgc3RhdGljIHZvaWQgc2V0U2hhcmVkRGlzcGxheUZvckNvbXBvc2l0aW5n
KFBsYXRmb3JtRGlzcGxheSYpOwogCi0gICAgTmF0aXZlRGlzcGxheU93bmVkIG1fbmF0aXZlRGlz
cGxheU93bmVkIHsgTmF0aXZlRGlzcGxheU93bmVkOjpObyB9OworI2lmIFBMQVRGT1JNKEdUSykK
KyAgICB2aXJ0dWFsIHZvaWQgc2hhcmVkRGlzcGxheURpZENsb3NlKCk7CisKKyAgICBHUmVmUHRy
PEdka0Rpc3BsYXk+IG1fc2hhcmVkRGlzcGxheTsKKyNlbmRpZgogCiAjaWYgVVNFKEVHTCkKICAg
ICB2aXJ0dWFsIHZvaWQgaW5pdGlhbGl6ZUVHTERpc3BsYXkoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2xpYndwZS9QbGF0Zm9ybURpc3BsYXlMaWJXUEUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbGlid3BlL1BsYXRmb3JtRGlz
cGxheUxpYldQRS5jcHAKaW5kZXggZGEyZDk0NTkyM2QzLi4wOTg2N2UzNTMzNDkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2xpYndwZS9QbGF0Zm9ybURpc3Bs
YXlMaWJXUEUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2xpYndw
ZS9QbGF0Zm9ybURpc3BsYXlMaWJXUEUuY3BwCkBAIC01OSw3ICs1OSw2IEBAIHN0ZDo6dW5pcXVl
X3B0cjxQbGF0Zm9ybURpc3BsYXlMaWJXUEU+IFBsYXRmb3JtRGlzcGxheUxpYldQRTo6Y3JlYXRl
KCkKIH0KIAogUGxhdGZvcm1EaXNwbGF5TGliV1BFOjpQbGF0Zm9ybURpc3BsYXlMaWJXUEUoKQot
ICAgIDogUGxhdGZvcm1EaXNwbGF5KE5hdGl2ZURpc3BsYXlPd25lZDo6Tm8pCiB7CiAjaWYgUExB
VEZPUk0oR1RLKQogICAgIFBsYXRmb3JtRGlzcGxheTo6c2V0U2hhcmVkRGlzcGxheUZvckNvbXBv
c2l0aW5nKCp0aGlzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3dheWxhbmQvUGxhdGZvcm1EaXNwbGF5V2F5bGFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy93YXlsYW5kL1BsYXRmb3JtRGlzcGxheVdheWxhbmQuY3BwCmluZGV4
IDA2NmJiZjgxZDVjZC4uMTExNDE5ODY4ODcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy93YXlsYW5kL1BsYXRmb3JtRGlzcGxheVdheWxhbmQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dheWxhbmQvUGxhdGZvcm1EaXNwbGF5
V2F5bGFuZC5jcHAKQEAgLTM3LDYgKzM3LDE0IEBACiAjaW5jbHVkZSA8RUdML2VnbGV4dC5oPgog
I2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+CiAKKyNpZiBQTEFURk9STShHVEspCisjaWYgVVNF
KEdUSzQpCisjaW5jbHVkZSA8Z2RrL3dheWxhbmQvZ2Rrd2F5bGFuZC5oPgorI2Vsc2UKKyNpbmNs
dWRlIDxnZGsvZ2Rrd2F5bGFuZC5oPgorI2VuZGlmCisjZW5kaWYKKwogbmFtZXNwYWNlIFdlYkNv
cmUgewogCiBjb25zdCBzdHJ1Y3Qgd2xfcmVnaXN0cnlfbGlzdGVuZXIgUGxhdGZvcm1EaXNwbGF5
V2F5bGFuZDo6c19yZWdpc3RyeUxpc3RlbmVyID0gewpAQCAtNTYsMzMgKzY0LDU2IEBAIHN0ZDo6
dW5pcXVlX3B0cjxQbGF0Zm9ybURpc3BsYXk+IFBsYXRmb3JtRGlzcGxheVdheWxhbmQ6OmNyZWF0
ZSgpCiAgICAgaWYgKCFkaXNwbGF5KQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgIGF1
dG8gcGxhdGZvcm1EaXNwbGF5ID0gc3RkOjp1bmlxdWVfcHRyPFBsYXRmb3JtRGlzcGxheVdheWxh
bmQ+KG5ldyBQbGF0Zm9ybURpc3BsYXlXYXlsYW5kKGRpc3BsYXksIE5hdGl2ZURpc3BsYXlPd25l
ZDo6WWVzKSk7CisgICAgYXV0byBwbGF0Zm9ybURpc3BsYXkgPSBzdGQ6OnVuaXF1ZV9wdHI8UGxh
dGZvcm1EaXNwbGF5V2F5bGFuZD4obmV3IFBsYXRmb3JtRGlzcGxheVdheWxhbmQoZGlzcGxheSkp
OwogICAgIHBsYXRmb3JtRGlzcGxheS0+aW5pdGlhbGl6ZSgpOwogICAgIHJldHVybiBwbGF0Zm9y
bURpc3BsYXk7CiB9CiAKLXN0ZDo6dW5pcXVlX3B0cjxQbGF0Zm9ybURpc3BsYXk+IFBsYXRmb3Jt
RGlzcGxheVdheWxhbmQ6OmNyZWF0ZShzdHJ1Y3Qgd2xfZGlzcGxheSogZGlzcGxheSkKKyNpZiBQ
TEFURk9STShHVEspCitzdGQ6OnVuaXF1ZV9wdHI8UGxhdGZvcm1EaXNwbGF5PiBQbGF0Zm9ybURp
c3BsYXlXYXlsYW5kOjpjcmVhdGUoR2RrRGlzcGxheSogZGlzcGxheSkKIHsKLSAgICBhdXRvIHBs
YXRmb3JtRGlzcGxheSA9IHN0ZDo6dW5pcXVlX3B0cjxQbGF0Zm9ybURpc3BsYXlXYXlsYW5kPihu
ZXcgUGxhdGZvcm1EaXNwbGF5V2F5bGFuZChkaXNwbGF5LCBOYXRpdmVEaXNwbGF5T3duZWQ6Ok5v
KSk7CisgICAgYXV0byBwbGF0Zm9ybURpc3BsYXkgPSBzdGQ6OnVuaXF1ZV9wdHI8UGxhdGZvcm1E
aXNwbGF5V2F5bGFuZD4obmV3IFBsYXRmb3JtRGlzcGxheVdheWxhbmQoZGlzcGxheSkpOwogICAg
IHBsYXRmb3JtRGlzcGxheS0+aW5pdGlhbGl6ZSgpOwogICAgIHJldHVybiBwbGF0Zm9ybURpc3Bs
YXk7CiB9CisjZW5kaWYKKworUGxhdGZvcm1EaXNwbGF5V2F5bGFuZDo6UGxhdGZvcm1EaXNwbGF5
V2F5bGFuZChzdHJ1Y3Qgd2xfZGlzcGxheSogZGlzcGxheSkKKyAgICA6IG1fZGlzcGxheShkaXNw
bGF5KQoreworfQogCi1QbGF0Zm9ybURpc3BsYXlXYXlsYW5kOjpQbGF0Zm9ybURpc3BsYXlXYXls
YW5kKHN0cnVjdCB3bF9kaXNwbGF5KiBkaXNwbGF5LCBOYXRpdmVEaXNwbGF5T3duZWQgZGlzcGxh
eU93bmVkKQotICAgIDogUGxhdGZvcm1EaXNwbGF5KGRpc3BsYXlPd25lZCkKLSAgICAsIG1fZGlz
cGxheShkaXNwbGF5KQorI2lmIFBMQVRGT1JNKEdUSykKK1BsYXRmb3JtRGlzcGxheVdheWxhbmQ6
OlBsYXRmb3JtRGlzcGxheVdheWxhbmQoR2RrRGlzcGxheSogZGlzcGxheSkKKyAgICA6IFBsYXRm
b3JtRGlzcGxheShkaXNwbGF5KQorICAgICwgbV9kaXNwbGF5KGdka193YXlsYW5kX2Rpc3BsYXlf
Z2V0X3dsX2Rpc3BsYXkoZGlzcGxheSkpCiB7CiB9CisjZW5kaWYKIAogUGxhdGZvcm1EaXNwbGF5
V2F5bGFuZDo6flBsYXRmb3JtRGlzcGxheVdheWxhbmQoKQogewotICAgIGlmIChtX25hdGl2ZURp
c3BsYXlPd25lZCA9PSBOYXRpdmVEaXNwbGF5T3duZWQ6OlllcykgeworI2lmIFBMQVRGT1JNKEdU
SykKKyAgICBib29sIG5hdGl2ZURpc3BsYXlPd25lZCA9ICFtX3NoYXJlZERpc3BsYXk7CisjZWxz
ZQorICAgIGJvb2wgbmF0aXZlRGlzcGxheU93bmVkID0gdHJ1ZTsKKyNlbmRpZgorCisgICAgaWYg
KG5hdGl2ZURpc3BsYXlPd25lZCkgewogICAgICAgICBtX2NvbXBvc2l0b3IgPSBudWxscHRyOwog
ICAgICAgICBtX3JlZ2lzdHJ5ID0gbnVsbHB0cjsKICAgICAgICAgd2xfZGlzcGxheV9kaXNjb25u
ZWN0KG1fZGlzcGxheSk7CiAgICAgfQogfQogCisjaWYgUExBVEZPUk0oR1RLKQordm9pZCBQbGF0
Zm9ybURpc3BsYXlXYXlsYW5kOjpzaGFyZWREaXNwbGF5RGlkQ2xvc2UoKQoreworICAgIFBsYXRm
b3JtRGlzcGxheTo6c2hhcmVkRGlzcGxheURpZENsb3NlKCk7CisgICAgbV9kaXNwbGF5ID0gbnVs
bHB0cjsKK30KKyNlbmRpZgorCiB2b2lkIFBsYXRmb3JtRGlzcGxheVdheWxhbmQ6OmluaXRpYWxp
emUoKQogewogICAgIGlmICghbV9kaXNwbGF5KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3Mvd2F5bGFuZC9QbGF0Zm9ybURpc3BsYXlXYXlsYW5kLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93YXlsYW5kL1BsYXRmb3JtRGlzcGxheVdheWxh
bmQuaAppbmRleCAxYTI5NTQzMTVmYTkuLjBlZjQxOGFiNDIxZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2F5bGFuZC9QbGF0Zm9ybURpc3BsYXlXYXlsYW5k
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2F5bGFuZC9QbGF0Zm9y
bURpc3BsYXlXYXlsYW5kLmgKQEAgLTIzLDggKzIzLDcgQEAKICAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8K
IAotI2lmbmRlZiAgUGxhdGZvcm1EaXNwbGF5V2F5bGFuZF9oCi0jZGVmaW5lICBQbGF0Zm9ybURp
c3BsYXlXYXlsYW5kX2gKKyNwcmFnbWEgb25jZQogCiAjaWYgUExBVEZPUk0oV0FZTEFORCkKIApA
QCAtMzcsNyArMzYsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBQbGF0Zm9ybURpc3Bs
YXlXYXlsYW5kIDogcHVibGljIFBsYXRmb3JtRGlzcGxheSB7CiBwdWJsaWM6CiAgICAgc3RhdGlj
IHN0ZDo6dW5pcXVlX3B0cjxQbGF0Zm9ybURpc3BsYXk+IGNyZWF0ZSgpOwotICAgIHN0YXRpYyBz
dGQ6OnVuaXF1ZV9wdHI8UGxhdGZvcm1EaXNwbGF5PiBjcmVhdGUoc3RydWN0IHdsX2Rpc3BsYXkq
KTsKKyNpZiBQTEFURk9STShHVEspCisgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxQbGF0Zm9y
bURpc3BsYXk+IGNyZWF0ZShHZGtEaXNwbGF5Kik7CisjZW5kaWYKIAogICAgIHZpcnR1YWwgflBs
YXRmb3JtRGlzcGxheVdheWxhbmQoKTsKIApAQCAtNTEsNyArNTIsMTIgQEAgcHJpdmF0ZToKICAg
ICBUeXBlIHR5cGUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBQbGF0Zm9ybURpc3BsYXk6OlR5cGU6
OldheWxhbmQ7IH0KIAogcHJvdGVjdGVkOgotICAgIFBsYXRmb3JtRGlzcGxheVdheWxhbmQoc3Ry
dWN0IHdsX2Rpc3BsYXkqLCBOYXRpdmVEaXNwbGF5T3duZWQpOworICAgIGV4cGxpY2l0IFBsYXRm
b3JtRGlzcGxheVdheWxhbmQoc3RydWN0IHdsX2Rpc3BsYXkqKTsKKyNpZiBQTEFURk9STShHVEsp
CisgICAgZXhwbGljaXQgUGxhdGZvcm1EaXNwbGF5V2F5bGFuZChHZGtEaXNwbGF5Kik7CisKKyAg
ICB2b2lkIHNoYXJlZERpc3BsYXlEaWRDbG9zZSgpIG92ZXJyaWRlOworI2VuZGlmCiAKICAgICB2
b2lkIGluaXRpYWxpemUoKTsKIApAQCAtNjcsNSArNzMsMyBAQCBwcm90ZWN0ZWQ6CiBTUEVDSUFM
SVpFX1RZUEVfVFJBSVRTX1BMQVRGT1JNX0RJU1BMQVkoUGxhdGZvcm1EaXNwbGF5V2F5bGFuZCwg
V2F5bGFuZCkKIAogI2VuZGlmIC8vIFBMQVRGT1JNKFdBWUxBTkQpCi0KLSNlbmRpZiAvLyBQbGF0
Zm9ybURpc3BsYXlXYXlsYW5kX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3dpbi9QbGF0Zm9ybURpc3BsYXlXaW4uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3dpbi9QbGF0Zm9ybURpc3BsYXlXaW4uaAppbmRleCBlNzczMTNjODhlNzAu
LmVhYTZkNmYyNTEwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3Mvd2luL1BsYXRmb3JtRGlzcGxheVdpbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3dpbi9QbGF0Zm9ybURpc3BsYXlXaW4uaApAQCAtNDIsMTEgKzQyLDYgQEAgcHVi
bGljOgogICAgIHZpcnR1YWwgflBsYXRmb3JtRGlzcGxheVdpbigpID0gZGVmYXVsdDsKIAogcHJp
dmF0ZToKLSAgICBQbGF0Zm9ybURpc3BsYXlXaW4oKQotICAgICAgICA6IFBsYXRmb3JtRGlzcGxh
eShOYXRpdmVEaXNwbGF5T3duZWQ6Ok5vKQotICAgIHsKLSAgICB9Ci0KICAgICBUeXBlIHR5cGUo
KSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBQbGF0Zm9ybURpc3BsYXk6OlR5cGU6OldpbmRvd3M7
IH0KIAogICAgIHZvaWQgaW5pdGlhbGl6ZUVHTERpc3BsYXkoKSBmaW5hbDsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3gxMS9QbGF0Zm9ybURpc3BsYXlYMTEu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MveDExL1BsYXRmb3JtRGlzcGxh
eVgxMS5jcHAKaW5kZXggZGM0NmVkZTE0Y2RmLi5hNmNjYjQ0YTgxMTAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3gxMS9QbGF0Zm9ybURpc3BsYXlYMTEuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3gxMS9QbGF0Zm9ybURpc3Bs
YXlYMTEuY3BwCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpbmNsdWRlICJHTENvbnRleHQuaCIKICNp
bmNsdWRlICJYRXJyb3JUcmFwcGVyLmgiCisjaW5jbHVkZSA8Y3N0ZGxpYj4KIAogI2lmIFBMQVRG
T1JNKFgxMSkKICNpbmNsdWRlIDxYMTEvWGF0b20uaD4KQEAgLTM2LDYgKzM3LDExIEBACiAjaWYg
UExBVEZPUk0oR1RLKQogI2luY2x1ZGUgPFgxMS9YdXRpbC5oPgogI2luY2x1ZGUgPFgxMS9leHRl
bnNpb25zL1hkYW1hZ2UuaD4KKyNpZiBVU0UoR1RLNCkKKyNpbmNsdWRlIDxnZGsveDExL2dka3gu
aD4KKyNlbHNlCisjaW5jbHVkZSA8Z2RrL2dka3guaD4KKyNlbmRpZgogI2VuZGlmCiAKICNpZiBV
U0UoRUdMKQpAQCAtNTUsMzAgKzYxLDcwIEBAIHN0ZDo6dW5pcXVlX3B0cjxQbGF0Zm9ybURpc3Bs
YXk+IFBsYXRmb3JtRGlzcGxheVgxMTo6Y3JlYXRlKCkKICAgICBpZiAoIWRpc3BsYXkpCiAgICAg
ICAgIHJldHVybiBudWxscHRyOwogCi0gICAgcmV0dXJuIHN0ZDo6dW5pcXVlX3B0cjxQbGF0Zm9y
bURpc3BsYXlYMTE+KG5ldyBQbGF0Zm9ybURpc3BsYXlYMTEoZGlzcGxheSwgTmF0aXZlRGlzcGxh
eU93bmVkOjpZZXMpKTsKKyAgICByZXR1cm4gc3RkOjp1bmlxdWVfcHRyPFBsYXRmb3JtRGlzcGxh
eVgxMT4obmV3IFBsYXRmb3JtRGlzcGxheVgxMShkaXNwbGF5KSk7Cit9CisKKyNpZiBQTEFURk9S
TShHVEspCitzdGQ6OnVuaXF1ZV9wdHI8UGxhdGZvcm1EaXNwbGF5PiBQbGF0Zm9ybURpc3BsYXlY
MTE6OmNyZWF0ZShHZGtEaXNwbGF5KiBkaXNwbGF5KQoreworICAgIHJldHVybiBzdGQ6OnVuaXF1
ZV9wdHI8UGxhdGZvcm1EaXNwbGF5WDExPihuZXcgUGxhdGZvcm1EaXNwbGF5WDExKGRpc3BsYXkp
KTsKIH0KKyNlbmRpZgogCi1zdGQ6OnVuaXF1ZV9wdHI8UGxhdGZvcm1EaXNwbGF5PiBQbGF0Zm9y
bURpc3BsYXlYMTE6OmNyZWF0ZShEaXNwbGF5KiBkaXNwbGF5KQorc3RhdGljIGlubGluZSB2b2lk
IGNsZWFyU2hhcmluZ0dMQ29udGV4dEF0RXhpdCgpCiB7Ci0gICAgcmV0dXJuIHN0ZDo6dW5pcXVl
X3B0cjxQbGF0Zm9ybURpc3BsYXlYMTE+KG5ldyBQbGF0Zm9ybURpc3BsYXlYMTEoZGlzcGxheSwg
TmF0aXZlRGlzcGxheU93bmVkOjpObykpOworI2lmIFVTRShHTFgpCisgICAgLy8gSW4gWDExIG9u
bHkgb25lIFBsYXRmb3JtRGlzcGxheSBpbnN0YW5jZSBpcyBhbGxvd2VkIHBlciBwcm9jZXNzIHdo
aWNoIGlzIHRoZSBzaGFyZWREaXNwbGF5IG9uZS4KKyAgICAvLyBXZSBpbnN0YWxsIGFuIGF0ZXhp
dCBoYW5kbGVyIHRvIGNsZWFyIHRoZSBzaGFyaW5nIEdMIGNvbnRleHQgdG8gZW5zdXJlIGl0J3Mg
cmVsZWFzZWQgYmVmb3JlCisgICAgLy8gdGhlIGNvbnN0cnVjdG9yIGlzIGNhbGxlZCwgYmVjYXVz
ZSBjbGVhcmluZyB0aGUgY29udGV4dCBpbiBYMTEgcmVxdWlyZXMgdG8gYWNjZXNzIFBsYXRmb3Jt
RGlzcGxheTo6c2hhcmVkRGlzcGxheSgpCisgICAgLy8gYW5kIGNhbGxpbmcgaXQgZnJvbSBpdHMg
Y29uc3RydWN0b3IgY2F1c2VzIGlzc3VlcyBpbiBzb21lIHN5c3RlbXMuIFNlZSBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM4NDk0LgorICAgIHN0YXRpYyBzdGQ6Om9u
Y2VfZmxhZyBvbmNlS2V5OworICAgIHN0ZDo6Y2FsbF9vbmNlKG9uY2VLZXksIFtdIHsKKyAgICAg
ICAgc3RkOjphdGV4aXQoW10geworICAgICAgICAgICAgUGxhdGZvcm1EaXNwbGF5OjpzaGFyZWRE
aXNwbGF5KCkuY2xlYXJTaGFyaW5nR0xDb250ZXh0KCk7CisgICAgICAgIH0pOworICAgIH0pOwor
I2VuZGlmCiB9CiAKLVBsYXRmb3JtRGlzcGxheVgxMTo6UGxhdGZvcm1EaXNwbGF5WDExKERpc3Bs
YXkqIGRpc3BsYXksIE5hdGl2ZURpc3BsYXlPd25lZCBkaXNwbGF5T3duZWQpCi0gICAgOiBQbGF0
Zm9ybURpc3BsYXkoZGlzcGxheU93bmVkKQotICAgICwgbV9kaXNwbGF5KGRpc3BsYXkpCitQbGF0
Zm9ybURpc3BsYXlYMTE6OlBsYXRmb3JtRGlzcGxheVgxMShEaXNwbGF5KiBkaXNwbGF5KQorICAg
IDogbV9kaXNwbGF5KGRpc3BsYXkpCiB7CisgICAgY2xlYXJTaGFyaW5nR0xDb250ZXh0QXRFeGl0
KCk7CiB9CiAKKyNpZiBQTEFURk9STShHVEspCitQbGF0Zm9ybURpc3BsYXlYMTE6OlBsYXRmb3Jt
RGlzcGxheVgxMShHZGtEaXNwbGF5KiBkaXNwbGF5KQorICAgIDogUGxhdGZvcm1EaXNwbGF5KGRp
c3BsYXkpCisgICAgLCBtX2Rpc3BsYXkoR0RLX0RJU1BMQVlfWERJU1BMQVkoZGlzcGxheSkpCit7
CisgICAgY2xlYXJTaGFyaW5nR0xDb250ZXh0QXRFeGl0KCk7Cit9CisjZW5kaWYKKwogUGxhdGZv
cm1EaXNwbGF5WDExOjp+UGxhdGZvcm1EaXNwbGF5WDExKCkKIHsKICNpZiBVU0UoRUdMKSB8fCBV
U0UoR0xYKQotICAgIC8vIENsZWFyIHRoZSBzaGFyaW5nIGNvbnRleHQgYmVmb3JlIHJlbGVhc2lu
ZyB0aGUgZGlzcGxheS4KLSAgICBtX3NoYXJpbmdHTENvbnRleHQgPSBudWxscHRyOworICAgIEFT
U0VSVCghbV9zaGFyaW5nR0xDb250ZXh0KTsKKyNlbmRpZgorCisjaWYgUExBVEZPUk0oR1RLKQor
ICAgIGJvb2wgbmF0aXZlRGlzcGxheU93bmVkID0gIW1fc2hhcmVkRGlzcGxheTsKKyNlbHNlCisg
ICAgYm9vbCBuYXRpdmVEaXNwbGF5T3duZWQgPSB0cnVlOwogI2VuZGlmCi0gICAgaWYgKG1fbmF0
aXZlRGlzcGxheU93bmVkID09IE5hdGl2ZURpc3BsYXlPd25lZDo6WWVzKQorICAgIGlmIChuYXRp
dmVEaXNwbGF5T3duZWQpCiAgICAgICAgIFhDbG9zZURpc3BsYXkobV9kaXNwbGF5KTsKIH0KIAor
I2lmIFBMQVRGT1JNKEdUSykKK3ZvaWQgUGxhdGZvcm1EaXNwbGF5WDExOjpzaGFyZWREaXNwbGF5
RGlkQ2xvc2UoKQoreworICAgIFBsYXRmb3JtRGlzcGxheTo6c2hhcmVkRGlzcGxheURpZENsb3Nl
KCk7CisgICAgbV9kaXNwbGF5ID0gbnVsbHB0cjsKK30KKyNlbmRpZgorCiAjaWYgVVNFKEVHTCkK
IHZvaWQgUGxhdGZvcm1EaXNwbGF5WDExOjppbml0aWFsaXplRUdMRGlzcGxheSgpCiB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy94MTEvUGxhdGZvcm1EaXNw
bGF5WDExLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy94MTEvUGxhdGZvcm1E
aXNwbGF5WDExLmgKaW5kZXggMjk0M2E1NTQ5ZWNiLi40MTA5ZTk0NGNmYTggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3gxMS9QbGF0Zm9ybURpc3BsYXlYMTEu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy94MTEvUGxhdGZvcm1EaXNw
bGF5WDExLmgKQEAgLTQxLDcgKzQxLDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgUGxh
dGZvcm1EaXNwbGF5WDExIGZpbmFsIDogcHVibGljIFBsYXRmb3JtRGlzcGxheSB7CiBwdWJsaWM6
CiAgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxQbGF0Zm9ybURpc3BsYXk+IGNyZWF0ZSgpOwot
ICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8UGxhdGZvcm1EaXNwbGF5PiBjcmVhdGUoOjpEaXNw
bGF5Kik7CisjaWYgUExBVEZPUk0oR1RLKQorICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8UGxh
dGZvcm1EaXNwbGF5PiBjcmVhdGUoR2RrRGlzcGxheSopOworI2VuZGlmCiAKICAgICB2aXJ0dWFs
IH5QbGF0Zm9ybURpc3BsYXlYMTEoKTsKIApAQCAtNTIsNyArNTQsMTIgQEAgcHVibGljOgogICAg
IGJvb2wgc3VwcG9ydHNHTFgoc3RkOjpvcHRpb25hbDxpbnQ+JiBnbHhFcnJvckJhc2UpIGNvbnN0
OwogCiBwcml2YXRlOgotICAgIFBsYXRmb3JtRGlzcGxheVgxMSg6OkRpc3BsYXkqLCBOYXRpdmVE
aXNwbGF5T3duZWQpOworICAgIGV4cGxpY2l0IFBsYXRmb3JtRGlzcGxheVgxMSg6OkRpc3BsYXkq
KTsKKyNpZiBQTEFURk9STShHVEspCisgICAgZXhwbGljaXQgUGxhdGZvcm1EaXNwbGF5WDExKEdk
a0Rpc3BsYXkqKTsKKworICAgIHZvaWQgc2hhcmVkRGlzcGxheURpZENsb3NlKCkgb3ZlcnJpZGU7
CisjZW5kaWYKIAogICAgIFR5cGUgdHlwZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIFBsYXRm
b3JtRGlzcGxheTo6VHlwZTo6WDExOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggYTcxYzk3Mjg4NjFkLi40NDFi
MTUzOGNlM2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjItMDMtMzAgIENhcmxvcyBH
YXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgorCisgICAgICAgIFJFR1JFU1NJT04o
cjI5MDM2MCk6IFtHTFhdIENyYXNoIG9uIHByb2Nlc3MgZXhpdAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM4NDk0CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTWljaGFlbCBDYXRhbnphcm8uCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL2d0ay9XYXlsYW5k
Q29tcG9zaXRvckRpc3BsYXkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXYXlsYW5kQ29tcG9zaXRv
ckRpc3BsYXk6OldheWxhbmRDb21wb3NpdG9yRGlzcGxheSk6CisKIDIwMjItMDMtMjEgIENhcmxv
cyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFVucmV2aWV3
ZWQuIFVwZGF0ZSBPcHRpb25zR1RLLmNtYWtlIGFuZCBORVdTIGZvciAyLjM2LjAgcmVsZWFzZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2d0ay9XYXlsYW5kQ29tcG9zaXRv
ckRpc3BsYXkuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2d0ay9XYXlsYW5kQ29tcG9z
aXRvckRpc3BsYXkuY3BwCmluZGV4IGU2YmE2YTVmZWQ0Yi4uNmI2MThkNGQ3YjVlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvZ3RrL1dheWxhbmRDb21wb3NpdG9yRGlzcGxh
eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2d0ay9XYXlsYW5kQ29tcG9zaXRv
ckRpc3BsYXkuY3BwCkBAIC02Myw3ICs2Myw3IEBAIHZvaWQgV2F5bGFuZENvbXBvc2l0b3JEaXNw
bGF5OjpiaW5kU3VyZmFjZVRvUGFnZShzdHJ1Y3Qgd2xfc3VyZmFjZSogc3VyZmFjZSwgV2ViCiB9
CiAKIFdheWxhbmRDb21wb3NpdG9yRGlzcGxheTo6V2F5bGFuZENvbXBvc2l0b3JEaXNwbGF5KHN0
cnVjdCB3bF9kaXNwbGF5KiBkaXNwbGF5KQotICAgIDogUGxhdGZvcm1EaXNwbGF5V2F5bGFuZChk
aXNwbGF5LCBOYXRpdmVEaXNwbGF5T3duZWQ6OlllcykKKyAgICA6IFBsYXRmb3JtRGlzcGxheVdh
eWxhbmQoZGlzcGxheSkKIHsKICAgICBQbGF0Zm9ybURpc3BsYXk6OnNldFNoYXJlZERpc3BsYXlG
b3JDb21wb3NpdGluZygqdGhpcyk7CiB9Cg==
</data>
<flag name="commit-queue"
          id="484454"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
      

    </bug>

</bugzilla>