<?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>173598</bug_id>
          
          <creation_ts>2017-06-20 06:19:51 -0700</creation_ts>
          <short_desc>[GTK][WAYLAND] Create WaylandCompositorDisplay unconditionally when initializing the WebProcess</short_desc>
          <delta_ts>2017-06-21 05:29:09 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>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>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Miguel Gomez">magomez</reporter>
          <assigned_to name="Miguel Gomez">magomez</assigned_to>
          <cc>bugs-noreply</cc>
    
    <cc>cgarcia</cc>
    
    <cc>commit-queue</cc>
    
    <cc>zan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1321105</commentid>
    <comment_count>0</comment_count>
    <who name="Miguel Gomez">magomez</who>
    <bug_when>2017-06-20 06:19:51 -0700</bug_when>
    <thetext>Currently the WaylandCompositorDisplay is created when entering AC mode, and at this points it sets itself as the sharedDisplayForCompositing to use. But components that render gl, like the MediaPlayer or the WebGLRenderingContext can be created before this happens, which causes them to get a wrong sharedDisplayForcompositing (and sharingGLContext), which breaks rendering as the TextureMapper cannot access their content.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1321107</commentid>
    <comment_count>1</comment_count>
      <attachid>313397</attachid>
    <who name="Miguel Gomez">magomez</who>
    <bug_when>2017-06-20 07:11:21 -0700</bug_when>
    <thetext>Created attachment 313397
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1321109</commentid>
    <comment_count>2</comment_count>
      <attachid>313397</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2017-06-20 07:22:22 -0700</bug_when>
    <thetext>Comment on attachment 313397
Patch

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

&gt; Source/WebKit2/WebProcess/WebProcess.cpp:318
&gt;  #if PLATFORM(WAYLAND)
&gt; -    m_waylandCompositorDisplayName = parameters.waylandCompositorDisplayName;
&gt; +    m_waylandCompositorDisplay = WaylandCompositorDisplay::create(parameters.waylandCompositorDisplayName);
&gt;  #endif

Can this be done in platformInitializeWebProcess()? Currently the GTK+ and WPE ports are building WebProcessSoup.cpp, where that method is defined, and it&apos;s soup-specific. But IMO the implementation file should be GLib-specific, with m_waylandCompositorDisplay initialization guarded with PLATFORM(WAYLAND).

&gt; Source/WebKit2/WebProcess/WebProcess.h:35
&gt; +#include &quot;WaylandCompositorDisplay.h&quot;

This needs to be guarded with PLATFORM(WAYLAND). Furthermore, it should be possible to just forward-declare the WaylandCompositorDisplay class, and include the header only in the implementation file.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1321114</commentid>
    <comment_count>3</comment_count>
      <attachid>313397</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2017-06-20 08:19:07 -0700</bug_when>
    <thetext>Comment on attachment 313397
Patch

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

&gt; Source/WebKit2/ChangeLog:8
&gt; +        Move WaylandCompositorDisplay code to its own files to it can be used from other clases. Then, instead of

to it -&gt; so it
clases -&gt; classes

&gt;&gt; Source/WebKit2/WebProcess/WebProcess.cpp:318
&gt;&gt;  #endif
&gt; 
&gt; Can this be done in platformInitializeWebProcess()? Currently the GTK+ and WPE ports are building WebProcessSoup.cpp, where that method is defined, and it&apos;s soup-specific. But IMO the implementation file should be GLib-specific, with m_waylandCompositorDisplay initialization guarded with PLATFORM(WAYLAND).

I guess PLATFORM(WAYLAND) is not enabled in WPE

&gt;&gt; Source/WebKit2/WebProcess/WebProcess.h:35
&gt;&gt; +#include &quot;WaylandCompositorDisplay.h&quot;
&gt; 
&gt; This needs to be guarded with PLATFORM(WAYLAND). Furthermore, it should be possible to just forward-declare the WaylandCompositorDisplay class, and include the header only in the implementation file.

Yes, better forward declare it.

&gt; Source/WebKit2/WebProcess/gtk/WaylandCompositorDisplay.cpp:37
&gt; +std::unique_ptr&lt;WaylandCompositorDisplay&gt; WaylandCompositorDisplay::create(String displayName)

const String&amp;

&gt; Source/WebKit2/WebProcess/gtk/WaylandCompositorDisplay.h:30
&gt; +#include &quot;WebPage.h&quot;

You can probably forward declare this.

&gt; Source/WebKit2/WebProcess/gtk/WaylandCompositorDisplay.h:39
&gt; +    static std::unique_ptr&lt;WaylandCompositorDisplay&gt; create(String);

I&apos;m not sure if you also have to add a destructor for the smart pointers, even if it&apos;s just = default.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1321135</commentid>
    <comment_count>4</comment_count>
      <attachid>313407</attachid>
    <who name="Miguel Gomez">magomez</who>
    <bug_when>2017-06-20 09:33:42 -0700</bug_when>
    <thetext>Created attachment 313407
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1321144</commentid>
    <comment_count>5</comment_count>
      <attachid>313407</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2017-06-20 09:53:06 -0700</bug_when>
    <thetext>Comment on attachment 313407
Patch

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

&gt; Source/WebKit2/WebProcess/WebProcess.cpp:120
&gt; +#if PLATFORM(WAYLAND) &amp;&amp; PLATFORM(GTK)
&gt; +#include &quot;WaylandCompositorDisplay.h&quot;
&gt; +#endif

WaylandCompositorDisplay.h already has the PLATFORM(WAYLAND), we don&apos;t guard headers when they are already guarded.

&gt; Source/WebKit2/WebProcess/WebProcess.cpp:320
&gt; +#if PLATFORM(WAYLAND) &amp;&amp; PLATFORM(GTK)

I don&apos;t think PLATFORM(WAYLAND) and PLATFORM(WPE are compatible), only GTK+ port exposes Wayland platform, so the check was probably enough.

&gt; Source/WebKit2/WebProcess/WebProcess.cpp:321
&gt; +    m_waylandCompositorDisplay = WaylandCompositorDisplay::create(parameters.waylandCompositorDisplayName);

Weren&apos;t we going to move this to platformInitializeWebProcess?

&gt; Source/WebKit2/WebProcess/WebProcess.h:104
&gt; +#if PLATFORM(WAYLAND) &amp;&amp; PLATFORM(GTK)
&gt; +class WaylandCompositorDisplay;
&gt; +#endif

Forward declarations don&apos;t need to be guarded.

&gt; Source/WebKit2/WebProcess/gtk/WaylandCompositorDisplay.h:32
&gt; +#include &lt;wtf/text/AtomicString.h&gt;

What do we need this for? If it&apos;s for String it should be &lt;wtf/text/WTFString.h&gt; or simply &lt;wtf/Forward.h&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1321440</commentid>
    <comment_count>6</comment_count>
    <who name="Miguel Gomez">magomez</who>
    <bug_when>2017-06-21 01:41:12 -0700</bug_when>
    <thetext>(In reply to Carlos Garcia Campos from comment #5)
&gt; Comment on attachment 313407 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=313407&amp;action=review
&gt; 
&gt; &gt; Source/WebKit2/WebProcess/WebProcess.cpp:120
&gt; &gt; +#if PLATFORM(WAYLAND) &amp;&amp; PLATFORM(GTK)
&gt; &gt; +#include &quot;WaylandCompositorDisplay.h&quot;
&gt; &gt; +#endif
&gt; 
&gt; WaylandCompositorDisplay.h already has the PLATFORM(WAYLAND), we don&apos;t guard
&gt; headers when they are already guarded.

But WaylandCompositorDisplay.h is stored inside a GTK only directory, so it doesn&apos;t exist for WPE builds and fails.

&gt; &gt; Source/WebKit2/WebProcess/WebProcess.cpp:320
&gt; &gt; +#if PLATFORM(WAYLAND) &amp;&amp; PLATFORM(GTK)
&gt; 
&gt; I don&apos;t think PLATFORM(WAYLAND) and PLATFORM(WPE are compatible), only GTK+
&gt; port exposes Wayland platform, so the check was probably enough.

Yep, I checked and seems that a check for WAYLAND is enough.
 
&gt; &gt; Source/WebKit2/WebProcess/WebProcess.cpp:321
&gt; &gt; +    m_waylandCompositorDisplay = WaylandCompositorDisplay::create(parameters.waylandCompositorDisplayName);
&gt; 
&gt; Weren&apos;t we going to move this to platformInitializeWebProcess?

Ok.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1321442</commentid>
    <comment_count>7</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2017-06-21 02:49:02 -0700</bug_when>
    <thetext>(In reply to Miguel Gomez from comment #6)
&gt; (In reply to Carlos Garcia Campos from comment #5)
&gt; &gt; Comment on attachment 313407 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; View in context:
&gt; &gt; https://bugs.webkit.org/attachment.cgi?id=313407&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/WebKit2/WebProcess/WebProcess.cpp:120
&gt; &gt; &gt; +#if PLATFORM(WAYLAND) &amp;&amp; PLATFORM(GTK)
&gt; &gt; &gt; +#include &quot;WaylandCompositorDisplay.h&quot;
&gt; &gt; &gt; +#endif
&gt; &gt; 
&gt; &gt; WaylandCompositorDisplay.h already has the PLATFORM(WAYLAND), we don&apos;t guard
&gt; &gt; headers when they are already guarded.
&gt; 
&gt; But WaylandCompositorDisplay.h is stored inside a GTK only directory, so it
&gt; doesn&apos;t exist for WPE builds and fails.

Ah, right the include dirs.

&gt; &gt; &gt; Source/WebKit2/WebProcess/WebProcess.cpp:320
&gt; &gt; &gt; +#if PLATFORM(WAYLAND) &amp;&amp; PLATFORM(GTK)
&gt; &gt; 
&gt; &gt; I don&apos;t think PLATFORM(WAYLAND) and PLATFORM(WPE are compatible), only GTK+
&gt; &gt; port exposes Wayland platform, so the check was probably enough.
&gt; 
&gt; Yep, I checked and seems that a check for WAYLAND is enough.
&gt;  
&gt; &gt; &gt; Source/WebKit2/WebProcess/WebProcess.cpp:321
&gt; &gt; &gt; +    m_waylandCompositorDisplay = WaylandCompositorDisplay::create(parameters.waylandCompositorDisplayName);
&gt; &gt; 
&gt; &gt; Weren&apos;t we going to move this to platformInitializeWebProcess?
&gt; 
&gt; Ok.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1321443</commentid>
    <comment_count>8</comment_count>
      <attachid>313502</attachid>
    <who name="Miguel Gomez">magomez</who>
    <bug_when>2017-06-21 03:20:35 -0700</bug_when>
    <thetext>Created attachment 313502
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1321447</commentid>
    <comment_count>9</comment_count>
      <attachid>313502</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2017-06-21 03:31:51 -0700</bug_when>
    <thetext>Comment on attachment 313502
Patch

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

LGTM, check why it doesn&apos;t apply.

&gt; Source/WebKit2/ChangeLog:8
&gt; +        Move WaylandCompositorDisplay code to its own files to it can be used from other classes. Then, instead of

to it -&gt; so it</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1321451</commentid>
    <comment_count>10</comment_count>
      <attachid>313505</attachid>
    <who name="Miguel Gomez">magomez</who>
    <bug_when>2017-06-21 04:01:20 -0700</bug_when>
    <thetext>Created attachment 313505
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1321458</commentid>
    <comment_count>11</comment_count>
      <attachid>313505</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-06-21 05:29:08 -0700</bug_when>
    <thetext>Comment on attachment 313505
Patch

Clearing flags on attachment: 313505

Committed r218629: &lt;http://trac.webkit.org/changeset/218629&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1321459</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-06-21 05:29:09 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>313397</attachid>
            <date>2017-06-20 07:11:21 -0700</date>
            <delta_ts>2017-06-20 09:33:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-173598-20170620161120.patch</filename>
            <type>text/plain</type>
            <size>13348</size>
            <attacher name="Miguel Gomez">magomez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE4NTU4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZWYwMTFlMWEwY2NkYmU1
MmQ1Zjc1YTEzZjY0NTQ4ZTRkMzMwYTM2My4uMDg4NTA3ZTQ4MWZjZTZiOGNiMDIwNDI0Mzg0YjM3
MDg4ODFkYjU3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDE3LTA2LTIwICBNaWd1
ZWwgR29tZXogIDxtYWdvbWV6QGlnYWxpYS5jb20+CisKKyAgICAgICAgW0dUS11bV0FZTEFORF0g
Q3JlYXRlIFdheWxhbmRDb21wb3NpdG9yRGlzcGxheSB1bmNvbmRpdGlvbmFsbHkgd2hlbiBpbml0
aWFsaXppbmcgdGhlIFdlYlByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE3MzU5OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIE1vdmUgV2F5bGFuZENvbXBvc2l0b3JEaXNwbGF5IGNvZGUgdG8gaXRz
IG93biBmaWxlcyB0byBpdCBjYW4gYmUgdXNlZCBmcm9tIG90aGVyIGNsYXNlcy4gVGhlbiwgaW5z
dGVhZCBvZgorICAgICAgICBzdG9yaW5nIHRoZSB3YXlsYW5kQ29tcG9zaXRvckRpc3BsYXlOYW1l
IGluIHRoZSBXZWJQcm9jZXNzLCBrZWVwIGEgV2F5bGFuZENvbXBvc2l0b3JEaXNwbGF5IGluc3Rh
bmNlIHRoYXQKKyAgICAgICAgaXMgY3JlYXRlZCBkdXJpbmcgdGhlIGluaXRpYWxpemF0aW9uLiBU
aGlzIHdheSB0aGUgYXBwcm9wcmlhdGUgc2hhcmVkRGlzcGxheUZvckNvbXBvc2l0aW5nIHdpbGwg
YmUgc2V0CisgICAgICAgIHNpbmNlIHRoZSBjcmVhdGlvbiBvZiB0aGUgV2ViUHJvY2Vzcy4KKwor
ICAgICAgICAqIFBsYXRmb3JtR1RLLmNtYWtlOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFn
ZS9ndGsvQWNjZWxlcmF0ZWRTdXJmYWNlV2F5bGFuZC5jcHA6CisgICAgICAgIChXZWJLaXQ6OkFj
Y2VsZXJhdGVkU3VyZmFjZVdheWxhbmQ6OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OkFjY2Vs
ZXJhdGVkU3VyZmFjZVdheWxhbmQ6OkFjY2VsZXJhdGVkU3VyZmFjZVdheWxhbmQpOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nl
c3M6OmluaXRpYWxpemVXZWJQcm9jZXNzKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nl
c3MuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6d2F5bGFuZENvbXBvc2l0b3JEaXNw
bGF5KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL2d0ay9XYXlsYW5kQ29tcG9zaXRvckRpc3BsYXku
Y3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2F5bGFuZENvbXBvc2l0b3JEaXNwbGF5Ojpj
cmVhdGUpOgorICAgICAgICAoV2ViS2l0OjpXYXlsYW5kQ29tcG9zaXRvckRpc3BsYXk6OmJpbmRT
dXJmYWNlVG9QYWdlKToKKyAgICAgICAgKFdlYktpdDo6V2F5bGFuZENvbXBvc2l0b3JEaXNwbGF5
OjpXYXlsYW5kQ29tcG9zaXRvckRpc3BsYXkpOgorICAgICAgICAoV2ViS2l0OjpXYXlsYW5kQ29t
cG9zaXRvckRpc3BsYXk6OnJlZ2lzdHJ5R2xvYmFsKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL2d0
ay9XYXlsYW5kQ29tcG9zaXRvckRpc3BsYXkuaDogQWRkZWQuCisKIDIwMTctMDYtMjAgIENhcmxv
cyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtXUEVdIEFk
ZCBpbml0aWFsIGltcGxlbWVudGF0aW9uIG9mIGdsaWIgQVBJCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9QbGF0Zm9ybUdUSy5jbWFrZSBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtR1RLLmNt
YWtlCmluZGV4IDg1ZmMyMDlmYzU1YTk3ZDUzZTkwNTM3ZjgzOWM2NDg5Y2I2NGVhZDguLjQ3OWFj
NDg4MzA1MTA2NWJlODY2OGM0MTkxMTk3MjQ5NTk1MTg5MzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1BsYXRmb3JtR1RLLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtR1RL
LmNtYWtlCkBAIC0zOTYsNiArMzk2LDcgQEAgbGlzdChBUFBFTkQgV2ViS2l0Ml9TT1VSQ0VTCiAg
ICAgV2ViUHJvY2Vzcy9XZWJQYWdlL2d0ay9XZWJQYWdlR3RrLmNwcAogICAgIFdlYlByb2Nlc3Mv
V2ViUGFnZS9ndGsvV2ViUHJpbnRPcGVyYXRpb25HdGsuY3BwCiAKKyAgICBXZWJQcm9jZXNzL2d0
ay9XYXlsYW5kQ29tcG9zaXRvckRpc3BsYXkuY3BwCiAgICAgV2ViUHJvY2Vzcy9ndGsvV2ViR3Rr
RXh0ZW5zaW9uTWFuYWdlci5jcHAKICAgICBXZWJQcm9jZXNzL2d0ay9XZWJHdGtJbmplY3RlZEJ1
bmRsZU1haW4uY3BwCiAgICAgV2ViUHJvY2Vzcy9ndGsvV2ViUHJvY2Vzc01haW5HdGsuY3BwCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvZ3RrL0FjY2VsZXJh
dGVkU3VyZmFjZVdheWxhbmQuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L2d0ay9BY2NlbGVyYXRlZFN1cmZhY2VXYXlsYW5kLmNwcAppbmRleCAzY2Y1MjhhZWE4ZDVlYTc1
ZDM0NzI1ZDFlZGZmZmE4ZjM2NjU0ZjMzLi42MzQ0Yjc3YWUxYTE4YTczZjU2ZjIzZjNiZGYxNWI0
NTlhMTUzMzgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
Z3RrL0FjY2VsZXJhdGVkU3VyZmFjZVdheWxhbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9ndGsvQWNjZWxlcmF0ZWRTdXJmYWNlV2F5bGFuZC5jcHAKQEAgLTI4
LDc0ICsyOCwyNCBAQAogCiAjaWYgUExBVEZPUk0oV0FZTEFORCkKIAotI2luY2x1ZGUgIldlYktp
dDJXYXlsYW5kQ2xpZW50UHJvdG9jb2wuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCi0jaW5j
bHVkZSA8V2ViQ29yZS9QbGF0Zm9ybURpc3BsYXlXYXlsYW5kLmg+Ci0jaW5jbHVkZSA8Y3N0cmlu
Zz4KICNpbmNsdWRlIDx3YXlsYW5kLWVnbC5oPgotI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3ll
ZC5oPgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAK
LWNsYXNzIFdheWxhbmRDb21wb3NpdG9yRGlzcGxheSBmaW5hbCA6IHB1YmxpYyBQbGF0Zm9ybURp
c3BsYXlXYXlsYW5kIHsKLSAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShXYXlsYW5kQ29tcG9zaXRv
ckRpc3BsYXkpOwotcHVibGljOgotICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8V2F5bGFuZENv
bXBvc2l0b3JEaXNwbGF5PiBjcmVhdGUoKQotICAgIHsKLSAgICAgICAgc3RydWN0IHdsX2Rpc3Bs
YXkqIGRpc3BsYXkgPSB3bF9kaXNwbGF5X2Nvbm5lY3QoV2ViUHJvY2Vzczo6c2luZ2xldG9uKCku
d2F5bGFuZENvbXBvc2l0b3JEaXNwbGF5TmFtZSgpLnV0ZjgoKS5kYXRhKCkpOwotICAgICAgICBp
ZiAoIWRpc3BsYXkpIHsKLSAgICAgICAgICAgIFdURkxvZ0Fsd2F5cygiUGxhdGZvcm1EaXNwbGF5
V2F5bGFuZCBpbml0aWFsaXphdGlvbjogZmFpbGVkIHRvIGNvbm5lY3QgdG8gdGhlIFdheWxhbmQg
ZGlzcGxheTogJXMiLCBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53YXlsYW5kQ29tcG9zaXRvckRp
c3BsYXlOYW1lKCkudXRmOCgpLmRhdGEoKSk7Ci0gICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsK
LSAgICAgICAgfQotCi0gICAgICAgIHJldHVybiBzdGQ6OnVuaXF1ZV9wdHI8V2F5bGFuZENvbXBv
c2l0b3JEaXNwbGF5PihuZXcgV2F5bGFuZENvbXBvc2l0b3JEaXNwbGF5KGRpc3BsYXkpKTsKLSAg
ICB9Ci0KLSAgICB2b2lkIGJpbmRTdXJmYWNlVG9QYWdlKHN0cnVjdCB3bF9zdXJmYWNlKiBzdXJm
YWNlLCBXZWJQYWdlJiBwYWdlKQotICAgIHsKLSAgICAgICAgaWYgKCFtX3dlYmtpdGd0aykKLSAg
ICAgICAgICAgIHJldHVybjsKLQotICAgICAgICB3bF93ZWJraXRndGtfYmluZF9zdXJmYWNlX3Rv
X3BhZ2UocmVpbnRlcnByZXRfY2FzdDxzdHJ1Y3Qgd2xfd2Via2l0Z3RrKj4obV93ZWJraXRndGsu
Z2V0KCkpLCBzdXJmYWNlLCBwYWdlLnBhZ2VJRCgpKTsKLSAgICAgICAgd2xfZGlzcGxheV9yb3Vu
ZHRyaXAobV9kaXNwbGF5KTsKLSAgICB9Ci0KLXByaXZhdGU6Ci0gICAgV2F5bGFuZENvbXBvc2l0
b3JEaXNwbGF5KHN0cnVjdCB3bF9kaXNwbGF5KiBkaXNwbGF5KQotICAgIHsKLSAgICAgICAgaW5p
dGlhbGl6ZShkaXNwbGF5KTsKLSAgICAgICAgUGxhdGZvcm1EaXNwbGF5OjpzZXRTaGFyZWREaXNw
bGF5Rm9yQ29tcG9zaXRpbmcoKnRoaXMpOwotICAgIH0KLQotICAgIHZvaWQgcmVnaXN0cnlHbG9i
YWwoY29uc3QgY2hhciogaW50ZXJmYWNlLCB1aW50MzJfdCBuYW1lKSBvdmVycmlkZQotICAgIHsK
LSAgICAgICAgUGxhdGZvcm1EaXNwbGF5V2F5bGFuZDo6cmVnaXN0cnlHbG9iYWwoaW50ZXJmYWNl
LCBuYW1lKTsKLSAgICAgICAgaWYgKCFzdGQ6OnN0cmNtcChpbnRlcmZhY2UsICJ3bF93ZWJraXRn
dGsiKSkKLSAgICAgICAgICAgIG1fd2Via2l0Z3RrLnJlc2V0KHN0YXRpY19jYXN0PHN0cnVjdCB3
bF9wcm94eSo+KHdsX3JlZ2lzdHJ5X2JpbmQobV9yZWdpc3RyeS5nZXQoKSwgbmFtZSwgJndsX3dl
YmtpdGd0a19pbnRlcmZhY2UsIDEpKSk7Ci0gICAgfQotCi0gICAgV2xVbmlxdWVQdHI8c3RydWN0
IHdsX3Byb3h5PiBtX3dlYmtpdGd0azsKLX07Ci0KLXN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8V2F5
bGFuZENvbXBvc2l0b3JEaXNwbGF5PiYgd2F5bGFuZENvbXBvc2l0b3JEaXNwbGF5KCkKLXsKLSAg
ICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8c3RkOjp1bmlxdWVfcHRyPFdheWxhbmRDb21wb3NpdG9y
RGlzcGxheT4+IHdheWxhbmREaXNwbGF5KFdheWxhbmRDb21wb3NpdG9yRGlzcGxheTo6Y3JlYXRl
KCkpOwotICAgIHJldHVybiB3YXlsYW5kRGlzcGxheTsKLX0KLQogc3RkOjp1bmlxdWVfcHRyPEFj
Y2VsZXJhdGVkU3VyZmFjZVdheWxhbmQ+IEFjY2VsZXJhdGVkU3VyZmFjZVdheWxhbmQ6OmNyZWF0
ZShXZWJQYWdlJiB3ZWJQYWdlLCBDbGllbnQmIGNsaWVudCkKIHsKLSAgICByZXR1cm4gd2F5bGFu
ZENvbXBvc2l0b3JEaXNwbGF5KCkgPyBzdGQ6OnVuaXF1ZV9wdHI8QWNjZWxlcmF0ZWRTdXJmYWNl
V2F5bGFuZD4obmV3IEFjY2VsZXJhdGVkU3VyZmFjZVdheWxhbmQod2ViUGFnZSwgY2xpZW50KSkg
OiBudWxscHRyOworICAgIHJldHVybiBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53YXlsYW5kQ29t
cG9zaXRvckRpc3BsYXkoKSA/IHN0ZDo6dW5pcXVlX3B0cjxBY2NlbGVyYXRlZFN1cmZhY2VXYXls
YW5kPihuZXcgQWNjZWxlcmF0ZWRTdXJmYWNlV2F5bGFuZCh3ZWJQYWdlLCBjbGllbnQpKSA6IG51
bGxwdHI7CiB9CiAKIEFjY2VsZXJhdGVkU3VyZmFjZVdheWxhbmQ6OkFjY2VsZXJhdGVkU3VyZmFj
ZVdheWxhbmQoV2ViUGFnZSYgd2ViUGFnZSwgQ2xpZW50JiBjbGllbnQpCiAgICAgOiBBY2NlbGVy
YXRlZFN1cmZhY2Uod2ViUGFnZSwgY2xpZW50KQotICAgICwgbV9zdXJmYWNlKHdheWxhbmRDb21w
b3NpdG9yRGlzcGxheSgpLT5jcmVhdGVTdXJmYWNlKCkpCisgICAgLCBtX3N1cmZhY2UoV2ViUHJv
Y2Vzczo6c2luZ2xldG9uKCkud2F5bGFuZENvbXBvc2l0b3JEaXNwbGF5KCktPmNyZWF0ZVN1cmZh
Y2UoKSkKICAgICAsIG1fd2luZG93KHdsX2VnbF93aW5kb3dfY3JlYXRlKG1fc3VyZmFjZS5nZXQo
KSwgc3RkOjptYXgoMSwgbV9zaXplLndpZHRoKCkpLCBzdGQ6Om1heCgxLCBtX3NpemUuaGVpZ2h0
KCkpKSkKIHsKLSAgICB3YXlsYW5kQ29tcG9zaXRvckRpc3BsYXkoKS0+YmluZFN1cmZhY2VUb1Bh
Z2UobV9zdXJmYWNlLmdldCgpLCBtX3dlYlBhZ2UpOworICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRv
bigpLndheWxhbmRDb21wb3NpdG9yRGlzcGxheSgpLT5iaW5kU3VyZmFjZVRvUGFnZShtX3N1cmZh
Y2UuZ2V0KCksIG1fd2ViUGFnZSk7CiB9CiAKIEFjY2VsZXJhdGVkU3VyZmFjZVdheWxhbmQ6On5B
Y2NlbGVyYXRlZFN1cmZhY2VXYXlsYW5kKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBy
b2Nlc3MuY3BwCmluZGV4IDAzNTlkMjNhM2UyNzBiMzg5YzM1OTY3ZjVmN2MzZDYzMjZlZDU1Y2Iu
LmQ4YjYwMDFlYzhlNGE1MDU5ZTFhODk3OTMzNDcyYmQ1ZTAyOTA2ZmQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcApAQCAtMzE0LDcgKzMxNCw3IEBAIHZvaWQgV2Vi
UHJvY2Vzczo6aW5pdGlhbGl6ZVdlYlByb2Nlc3MoV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVy
cyYmIHBhcmFtZXRlcnMpCiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKFdBWUxBTkQpCi0gICAgbV93
YXlsYW5kQ29tcG9zaXRvckRpc3BsYXlOYW1lID0gcGFyYW1ldGVycy53YXlsYW5kQ29tcG9zaXRv
ckRpc3BsYXlOYW1lOworICAgIG1fd2F5bGFuZENvbXBvc2l0b3JEaXNwbGF5ID0gV2F5bGFuZENv
bXBvc2l0b3JEaXNwbGF5OjpjcmVhdGUocGFyYW1ldGVycy53YXlsYW5kQ29tcG9zaXRvckRpc3Bs
YXlOYW1lKTsKICNlbmRpZgogCiAjaWYgRU5BQkxFKFZJREVPKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlByb2Nlc3MuaAppbmRleCBhYmYwODA0MDI0MDdmNjY4NzAzMGFmODYzODdhMjMwZmIy
OGMyNzM0Li4zNTBiMjcxN2IxNDNkNzE2N2YzNzNmYzgzMjg4YmMwYzg2OTYxNWU0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1
ZGUgIlNhbmRib3hFeHRlbnNpb24uaCIKICNpbmNsdWRlICJUZXh0Q2hlY2tlclN0YXRlLmgiCiAj
aW5jbHVkZSAiVmlld1VwZGF0ZURpc3BhdGNoZXIuaCIKKyNpbmNsdWRlICJXYXlsYW5kQ29tcG9z
aXRvckRpc3BsYXkuaCIKICNpbmNsdWRlICJXZWJJbnNwZWN0b3JJbnRlcnJ1cHREaXNwYXRjaGVy
LmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9BY3Rpdml0eVN0YXRlLmg+CiAjaW5jbHVkZSA8V2ViQ29y
ZS9IeXN0ZXJlc2lzQWN0aXZpdHkuaD4KQEAgLTIwNiw3ICsyMDcsNyBAQCBwdWJsaWM6CiAjZW5k
aWYKIAogI2lmIFBMQVRGT1JNKFdBWUxBTkQpCi0gICAgU3RyaW5nIHdheWxhbmRDb21wb3NpdG9y
RGlzcGxheU5hbWUoKSBjb25zdCB7IHJldHVybiBtX3dheWxhbmRDb21wb3NpdG9yRGlzcGxheU5h
bWU7IH0KKyAgICBXYXlsYW5kQ29tcG9zaXRvckRpc3BsYXkqIHdheWxhbmRDb21wb3NpdG9yRGlz
cGxheSgpIGNvbnN0IHsgcmV0dXJuIG1fd2F5bGFuZENvbXBvc2l0b3JEaXNwbGF5LmdldCgpOyB9
CiAjZW5kaWYKIAogICAgIFJlZlB0cjxBUEk6Ok9iamVjdD4gdHJhbnNmb3JtSGFuZGxlc1RvT2Jq
ZWN0cyhBUEk6Ok9iamVjdCopOwpAQCAtNDMwLDcgKzQzMSw3IEBAIHByaXZhdGU6CiAgICAgSGFz
aE1hcDxXZWJDb3JlOjpVc2VyR2VzdHVyZVRva2VuICosIHVpbnQ2NF90PiBtX3VzZXJHZXN0dXJl
VG9rZW5zOwogCiAjaWYgUExBVEZPUk0oV0FZTEFORCkKLSAgICBTdHJpbmcgbV93YXlsYW5kQ29t
cG9zaXRvckRpc3BsYXlOYW1lOworICAgIHN0ZDo6dW5pcXVlX3B0cjxXYXlsYW5kQ29tcG9zaXRv
ckRpc3BsYXk+IG1fd2F5bGFuZENvbXBvc2l0b3JEaXNwbGF5OwogI2VuZGlmCiB9OwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2d0ay9XYXlsYW5kQ29tcG9zaXRvckRp
c3BsYXkuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9ndGsvV2F5bGFuZENvbXBvc2l0
b3JEaXNwbGF5LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jOTU3YTRlMTlkZDA2NThjNGNhYjcyYjE1NTFkNGU3
NjVlOTQ0YzE2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9n
dGsvV2F5bGFuZENvbXBvc2l0b3JEaXNwbGF5LmNwcApAQCAtMCwwICsxLDc1IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDE3IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXYXlsYW5k
Q29tcG9zaXRvckRpc3BsYXkuaCIKKworI2lmIFBMQVRGT1JNKFdBWUxBTkQpCisKKyNpbmNsdWRl
ICJXZWJLaXQyV2F5bGFuZENsaWVudFByb3RvY29sLmgiCisKK3VzaW5nIG5hbWVzcGFjZSBXZWJD
b3JlOworCituYW1lc3BhY2UgV2ViS2l0IHsKKworc3RkOjp1bmlxdWVfcHRyPFdheWxhbmRDb21w
b3NpdG9yRGlzcGxheT4gV2F5bGFuZENvbXBvc2l0b3JEaXNwbGF5OjpjcmVhdGUoU3RyaW5nIGRp
c3BsYXlOYW1lKQoreworICAgIGlmIChkaXNwbGF5TmFtZS5pc051bGwoKSkKKyAgICAgICAgcmV0
dXJuIG51bGxwdHI7CisKKyAgICBzdHJ1Y3Qgd2xfZGlzcGxheSogZGlzcGxheSA9IHdsX2Rpc3Bs
YXlfY29ubmVjdChkaXNwbGF5TmFtZS51dGY4KCkuZGF0YSgpKTsKKyAgICBpZiAoIWRpc3BsYXkp
IHsKKyAgICAgICAgV1RGTG9nQWx3YXlzKCJQbGF0Zm9ybURpc3BsYXlXYXlsYW5kIGluaXRpYWxp
emF0aW9uOiBmYWlsZWQgdG8gY29ubmVjdCB0byB0aGUgV2F5bGFuZCBkaXNwbGF5OiAlcyIsIGRp
c3BsYXlOYW1lLnV0ZjgoKS5kYXRhKCkpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICB9
CisKKyAgICByZXR1cm4gc3RkOjp1bmlxdWVfcHRyPFdheWxhbmRDb21wb3NpdG9yRGlzcGxheT4o
bmV3IFdheWxhbmRDb21wb3NpdG9yRGlzcGxheShkaXNwbGF5KSk7Cit9CisKK3ZvaWQgV2F5bGFu
ZENvbXBvc2l0b3JEaXNwbGF5OjpiaW5kU3VyZmFjZVRvUGFnZShzdHJ1Y3Qgd2xfc3VyZmFjZSog
c3VyZmFjZSwgV2ViUGFnZSYgcGFnZSkKK3sKKyAgICBpZiAoIW1fd2Via2l0Z3RrKQorICAgICAg
ICByZXR1cm47CisKKyAgICB3bF93ZWJraXRndGtfYmluZF9zdXJmYWNlX3RvX3BhZ2UocmVpbnRl
cnByZXRfY2FzdDxzdHJ1Y3Qgd2xfd2Via2l0Z3RrKj4obV93ZWJraXRndGsuZ2V0KCkpLCBzdXJm
YWNlLCBwYWdlLnBhZ2VJRCgpKTsKKyAgICB3bF9kaXNwbGF5X3JvdW5kdHJpcChtX2Rpc3BsYXkp
OworfQorCitXYXlsYW5kQ29tcG9zaXRvckRpc3BsYXk6OldheWxhbmRDb21wb3NpdG9yRGlzcGxh
eShzdHJ1Y3Qgd2xfZGlzcGxheSogZGlzcGxheSkKK3sKKyAgICBpbml0aWFsaXplKGRpc3BsYXkp
OworICAgIFBsYXRmb3JtRGlzcGxheTo6c2V0U2hhcmVkRGlzcGxheUZvckNvbXBvc2l0aW5nKCp0
aGlzKTsKK30KKwordm9pZCBXYXlsYW5kQ29tcG9zaXRvckRpc3BsYXk6OnJlZ2lzdHJ5R2xvYmFs
KGNvbnN0IGNoYXIqIGludGVyZmFjZSwgdWludDMyX3QgbmFtZSkKK3sKKyAgICBQbGF0Zm9ybURp
c3BsYXlXYXlsYW5kOjpyZWdpc3RyeUdsb2JhbChpbnRlcmZhY2UsIG5hbWUpOworICAgIGlmICgh
c3RkOjpzdHJjbXAoaW50ZXJmYWNlLCAid2xfd2Via2l0Z3RrIikpCisgICAgICAgIG1fd2Via2l0
Z3RrLnJlc2V0KHN0YXRpY19jYXN0PHN0cnVjdCB3bF9wcm94eSo+KHdsX3JlZ2lzdHJ5X2JpbmQo
bV9yZWdpc3RyeS5nZXQoKSwgbmFtZSwgJndsX3dlYmtpdGd0a19pbnRlcmZhY2UsIDEpKSk7Cit9
CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gUExBVEZPUk0oV0FZTEFORCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvZ3RrL1dheWxhbmRDb21wb3Np
dG9yRGlzcGxheS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9ndGsvV2F5bGFuZENvbXBv
c2l0b3JEaXNwbGF5LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTM5ODc4YWY3MzgwYjU2NTUyZDIyNmMyYzFlZjJj
NTY4NTA2YTQzNgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
Z3RrL1dheWxhbmRDb21wb3NpdG9yRGlzcGxheS5oCkBAIC0wLDAgKzEsNTEgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTcgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBQTEFURk9STShXQVlMQU5EKQor
CisjaW5jbHVkZSAiV2ViUGFnZS5oIgorI2luY2x1ZGUgPFdlYkNvcmUvUGxhdGZvcm1EaXNwbGF5
V2F5bGFuZC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvV2xVbmlxdWVQdHIuaD4KKworbmFtZXNwYWNl
IFdlYktpdCB7CisKK2NsYXNzIFdheWxhbmRDb21wb3NpdG9yRGlzcGxheSBmaW5hbCA6IHB1Ymxp
YyBXZWJDb3JlOjpQbGF0Zm9ybURpc3BsYXlXYXlsYW5kIHsKKyAgICBXVEZfTUFLRV9OT05DT1BZ
QUJMRShXYXlsYW5kQ29tcG9zaXRvckRpc3BsYXkpOworcHVibGljOgorICAgIHN0YXRpYyBzdGQ6
OnVuaXF1ZV9wdHI8V2F5bGFuZENvbXBvc2l0b3JEaXNwbGF5PiBjcmVhdGUoU3RyaW5nKTsKKyAg
ICB2b2lkIGJpbmRTdXJmYWNlVG9QYWdlKHN0cnVjdCB3bF9zdXJmYWNlKiwgV2ViUGFnZSYpOwor
Citwcml2YXRlOgorICAgIFdheWxhbmRDb21wb3NpdG9yRGlzcGxheShzdHJ1Y3Qgd2xfZGlzcGxh
eSopOworICAgIHZvaWQgcmVnaXN0cnlHbG9iYWwoY29uc3QgY2hhciosIHVpbnQzMl90KSBvdmVy
cmlkZTsKKworICAgIFdlYkNvcmU6OldsVW5pcXVlUHRyPHN0cnVjdCB3bF9wcm94eT4gbV93ZWJr
aXRndGs7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIFBMQVRGT1JN
KFdBWUxBTkQpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>313407</attachid>
            <date>2017-06-20 09:33:42 -0700</date>
            <delta_ts>2017-06-21 03:20:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-173598-20170620183341.patch</filename>
            <type>text/plain</type>
            <size>14047</size>
            <attacher name="Miguel Gomez">magomez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE4NTkxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNDA5MDhmYjZiNTJmMDk3
ZWJmOGJiZWE5OTgzNDM0ZWE3OWMwNWFmNy4uZjBhMDllZDM2ZDkzYmQ2ZmY1NGIwZDBmNGJkM2Y3
YmM2OTYyZjllNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDE3LTA2LTIwICBNaWd1
ZWwgR29tZXogIDxtYWdvbWV6QGlnYWxpYS5jb20+CisKKyAgICAgICAgW0dUS11bV0FZTEFORF0g
Q3JlYXRlIFdheWxhbmRDb21wb3NpdG9yRGlzcGxheSB1bmNvbmRpdGlvbmFsbHkgd2hlbiBpbml0
aWFsaXppbmcgdGhlIFdlYlByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE3MzU5OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIE1vdmUgV2F5bGFuZENvbXBvc2l0b3JEaXNwbGF5IGNvZGUgdG8gaXRz
IG93biBmaWxlcyB0byBpdCBjYW4gYmUgdXNlZCBmcm9tIG90aGVyIGNsYXNzZXMuIFRoZW4sIGlu
c3RlYWQgb2YKKyAgICAgICAgc3RvcmluZyB0aGUgd2F5bGFuZENvbXBvc2l0b3JEaXNwbGF5TmFt
ZSBpbiB0aGUgV2ViUHJvY2Vzcywga2VlcCBhIFdheWxhbmRDb21wb3NpdG9yRGlzcGxheSBpbnN0
YW5jZSB0aGF0CisgICAgICAgIGlzIGNyZWF0ZWQgZHVyaW5nIHRoZSBpbml0aWFsaXphdGlvbi4g
VGhpcyB3YXkgdGhlIGFwcHJvcHJpYXRlIHNoYXJlZERpc3BsYXlGb3JDb21wb3NpdGluZyB3aWxs
IGJlIHNldAorICAgICAgICBzaW5jZSB0aGUgY3JlYXRpb24gb2YgdGhlIFdlYlByb2Nlc3MuCisK
KyAgICAgICAgKiBQbGF0Zm9ybUdUSy5jbWFrZToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBh
Z2UvZ3RrL0FjY2VsZXJhdGVkU3VyZmFjZVdheWxhbmQuY3BwOgorICAgICAgICAoV2ViS2l0OjpB
Y2NlbGVyYXRlZFN1cmZhY2VXYXlsYW5kOjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0OjpBY2Nl
bGVyYXRlZFN1cmZhY2VXYXlsYW5kOjpBY2NlbGVyYXRlZFN1cmZhY2VXYXlsYW5kKToKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9j
ZXNzOjppbml0aWFsaXplV2ViUHJvY2Vzcyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQcm9j
ZXNzLmg6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OndheWxhbmRDb21wb3NpdG9yRGlz
cGxheSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9ndGsvV2F5bGFuZENvbXBvc2l0b3JEaXNwbGF5
LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OldheWxhbmRDb21wb3NpdG9yRGlzcGxheTo6
Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6V2F5bGFuZENvbXBvc2l0b3JEaXNwbGF5OjpiaW5k
U3VyZmFjZVRvUGFnZSk6CisgICAgICAgIChXZWJLaXQ6OldheWxhbmRDb21wb3NpdG9yRGlzcGxh
eTo6V2F5bGFuZENvbXBvc2l0b3JEaXNwbGF5KToKKyAgICAgICAgKFdlYktpdDo6V2F5bGFuZENv
bXBvc2l0b3JEaXNwbGF5OjpyZWdpc3RyeUdsb2JhbCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9n
dGsvV2F5bGFuZENvbXBvc2l0b3JEaXNwbGF5Lmg6IEFkZGVkLgorCiAyMDE3LTA2LTIwICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAgIFtpT1MgRG5EXSBb
V0syXSBSZW1vdmUgY3VzdG9tIGxvZ2ljIGZvciBkaXNhbWJpZ3VhdGluZyBsb25nIHByZXNzIGFj
dGlvbiBzaGVldCBnZXN0dXJlcyBhbmQgZHJhZyBsaWZ0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9QbGF0Zm9ybUdUSy5jbWFrZSBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtR1RLLmNtYWtl
CmluZGV4IDg1ZmMyMDlmYzU1YTk3ZDUzZTkwNTM3ZjgzOWM2NDg5Y2I2NGVhZDguLjQ3OWFjNDg4
MzA1MTA2NWJlODY2OGM0MTkxMTk3MjQ5NTk1MTg5MzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1BsYXRmb3JtR1RLLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtR1RLLmNt
YWtlCkBAIC0zOTYsNiArMzk2LDcgQEAgbGlzdChBUFBFTkQgV2ViS2l0Ml9TT1VSQ0VTCiAgICAg
V2ViUHJvY2Vzcy9XZWJQYWdlL2d0ay9XZWJQYWdlR3RrLmNwcAogICAgIFdlYlByb2Nlc3MvV2Vi
UGFnZS9ndGsvV2ViUHJpbnRPcGVyYXRpb25HdGsuY3BwCiAKKyAgICBXZWJQcm9jZXNzL2d0ay9X
YXlsYW5kQ29tcG9zaXRvckRpc3BsYXkuY3BwCiAgICAgV2ViUHJvY2Vzcy9ndGsvV2ViR3RrRXh0
ZW5zaW9uTWFuYWdlci5jcHAKICAgICBXZWJQcm9jZXNzL2d0ay9XZWJHdGtJbmplY3RlZEJ1bmRs
ZU1haW4uY3BwCiAgICAgV2ViUHJvY2Vzcy9ndGsvV2ViUHJvY2Vzc01haW5HdGsuY3BwCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvZ3RrL0FjY2VsZXJhdGVk
U3VyZmFjZVdheWxhbmQuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2d0
ay9BY2NlbGVyYXRlZFN1cmZhY2VXYXlsYW5kLmNwcAppbmRleCAzY2Y1MjhhZWE4ZDVlYTc1ZDM0
NzI1ZDFlZGZmZmE4ZjM2NjU0ZjMzLi5jNzMzMmI2NDI0MTQ3NWYzY2VjYTAxOGFmMGE0MmM5MmM0
YWNhZTRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvZ3Rr
L0FjY2VsZXJhdGVkU3VyZmFjZVdheWxhbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9ndGsvQWNjZWxlcmF0ZWRTdXJmYWNlV2F5bGFuZC5jcHAKQEAgLTI4LDc0
ICsyOCwyNSBAQAogCiAjaWYgUExBVEZPUk0oV0FZTEFORCkKIAotI2luY2x1ZGUgIldlYktpdDJX
YXlsYW5kQ2xpZW50UHJvdG9jb2wuaCIKKyNpbmNsdWRlICJXYXlsYW5kQ29tcG9zaXRvckRpc3Bs
YXkuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCi0jaW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9y
bURpc3BsYXlXYXlsYW5kLmg+Ci0jaW5jbHVkZSA8Y3N0cmluZz4KICNpbmNsdWRlIDx3YXlsYW5k
LWVnbC5oPgotI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogCiB1c2luZyBuYW1lc3Bh
Y2UgV2ViQ29yZTsKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLWNsYXNzIFdheWxhbmRDb21wb3Np
dG9yRGlzcGxheSBmaW5hbCA6IHB1YmxpYyBQbGF0Zm9ybURpc3BsYXlXYXlsYW5kIHsKLSAgICBX
VEZfTUFLRV9OT05DT1BZQUJMRShXYXlsYW5kQ29tcG9zaXRvckRpc3BsYXkpOwotcHVibGljOgot
ICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8V2F5bGFuZENvbXBvc2l0b3JEaXNwbGF5PiBjcmVh
dGUoKQotICAgIHsKLSAgICAgICAgc3RydWN0IHdsX2Rpc3BsYXkqIGRpc3BsYXkgPSB3bF9kaXNw
bGF5X2Nvbm5lY3QoV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkud2F5bGFuZENvbXBvc2l0b3JEaXNw
bGF5TmFtZSgpLnV0ZjgoKS5kYXRhKCkpOwotICAgICAgICBpZiAoIWRpc3BsYXkpIHsKLSAgICAg
ICAgICAgIFdURkxvZ0Fsd2F5cygiUGxhdGZvcm1EaXNwbGF5V2F5bGFuZCBpbml0aWFsaXphdGlv
bjogZmFpbGVkIHRvIGNvbm5lY3QgdG8gdGhlIFdheWxhbmQgZGlzcGxheTogJXMiLCBXZWJQcm9j
ZXNzOjpzaW5nbGV0b24oKS53YXlsYW5kQ29tcG9zaXRvckRpc3BsYXlOYW1lKCkudXRmOCgpLmRh
dGEoKSk7Ci0gICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICAgICAgfQotCi0gICAgICAg
IHJldHVybiBzdGQ6OnVuaXF1ZV9wdHI8V2F5bGFuZENvbXBvc2l0b3JEaXNwbGF5PihuZXcgV2F5
bGFuZENvbXBvc2l0b3JEaXNwbGF5KGRpc3BsYXkpKTsKLSAgICB9Ci0KLSAgICB2b2lkIGJpbmRT
dXJmYWNlVG9QYWdlKHN0cnVjdCB3bF9zdXJmYWNlKiBzdXJmYWNlLCBXZWJQYWdlJiBwYWdlKQot
ICAgIHsKLSAgICAgICAgaWYgKCFtX3dlYmtpdGd0aykKLSAgICAgICAgICAgIHJldHVybjsKLQot
ICAgICAgICB3bF93ZWJraXRndGtfYmluZF9zdXJmYWNlX3RvX3BhZ2UocmVpbnRlcnByZXRfY2Fz
dDxzdHJ1Y3Qgd2xfd2Via2l0Z3RrKj4obV93ZWJraXRndGsuZ2V0KCkpLCBzdXJmYWNlLCBwYWdl
LnBhZ2VJRCgpKTsKLSAgICAgICAgd2xfZGlzcGxheV9yb3VuZHRyaXAobV9kaXNwbGF5KTsKLSAg
ICB9Ci0KLXByaXZhdGU6Ci0gICAgV2F5bGFuZENvbXBvc2l0b3JEaXNwbGF5KHN0cnVjdCB3bF9k
aXNwbGF5KiBkaXNwbGF5KQotICAgIHsKLSAgICAgICAgaW5pdGlhbGl6ZShkaXNwbGF5KTsKLSAg
ICAgICAgUGxhdGZvcm1EaXNwbGF5OjpzZXRTaGFyZWREaXNwbGF5Rm9yQ29tcG9zaXRpbmcoKnRo
aXMpOwotICAgIH0KLQotICAgIHZvaWQgcmVnaXN0cnlHbG9iYWwoY29uc3QgY2hhciogaW50ZXJm
YWNlLCB1aW50MzJfdCBuYW1lKSBvdmVycmlkZQotICAgIHsKLSAgICAgICAgUGxhdGZvcm1EaXNw
bGF5V2F5bGFuZDo6cmVnaXN0cnlHbG9iYWwoaW50ZXJmYWNlLCBuYW1lKTsKLSAgICAgICAgaWYg
KCFzdGQ6OnN0cmNtcChpbnRlcmZhY2UsICJ3bF93ZWJraXRndGsiKSkKLSAgICAgICAgICAgIG1f
d2Via2l0Z3RrLnJlc2V0KHN0YXRpY19jYXN0PHN0cnVjdCB3bF9wcm94eSo+KHdsX3JlZ2lzdHJ5
X2JpbmQobV9yZWdpc3RyeS5nZXQoKSwgbmFtZSwgJndsX3dlYmtpdGd0a19pbnRlcmZhY2UsIDEp
KSk7Ci0gICAgfQotCi0gICAgV2xVbmlxdWVQdHI8c3RydWN0IHdsX3Byb3h5PiBtX3dlYmtpdGd0
azsKLX07Ci0KLXN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8V2F5bGFuZENvbXBvc2l0b3JEaXNwbGF5
PiYgd2F5bGFuZENvbXBvc2l0b3JEaXNwbGF5KCkKLXsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95
ZWQ8c3RkOjp1bmlxdWVfcHRyPFdheWxhbmRDb21wb3NpdG9yRGlzcGxheT4+IHdheWxhbmREaXNw
bGF5KFdheWxhbmRDb21wb3NpdG9yRGlzcGxheTo6Y3JlYXRlKCkpOwotICAgIHJldHVybiB3YXls
YW5kRGlzcGxheTsKLX0KLQogc3RkOjp1bmlxdWVfcHRyPEFjY2VsZXJhdGVkU3VyZmFjZVdheWxh
bmQ+IEFjY2VsZXJhdGVkU3VyZmFjZVdheWxhbmQ6OmNyZWF0ZShXZWJQYWdlJiB3ZWJQYWdlLCBD
bGllbnQmIGNsaWVudCkKIHsKLSAgICByZXR1cm4gd2F5bGFuZENvbXBvc2l0b3JEaXNwbGF5KCkg
PyBzdGQ6OnVuaXF1ZV9wdHI8QWNjZWxlcmF0ZWRTdXJmYWNlV2F5bGFuZD4obmV3IEFjY2VsZXJh
dGVkU3VyZmFjZVdheWxhbmQod2ViUGFnZSwgY2xpZW50KSkgOiBudWxscHRyOworICAgIHJldHVy
biBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53YXlsYW5kQ29tcG9zaXRvckRpc3BsYXkoKSA/IHN0
ZDo6dW5pcXVlX3B0cjxBY2NlbGVyYXRlZFN1cmZhY2VXYXlsYW5kPihuZXcgQWNjZWxlcmF0ZWRT
dXJmYWNlV2F5bGFuZCh3ZWJQYWdlLCBjbGllbnQpKSA6IG51bGxwdHI7CiB9CiAKIEFjY2VsZXJh
dGVkU3VyZmFjZVdheWxhbmQ6OkFjY2VsZXJhdGVkU3VyZmFjZVdheWxhbmQoV2ViUGFnZSYgd2Vi
UGFnZSwgQ2xpZW50JiBjbGllbnQpCiAgICAgOiBBY2NlbGVyYXRlZFN1cmZhY2Uod2ViUGFnZSwg
Y2xpZW50KQotICAgICwgbV9zdXJmYWNlKHdheWxhbmRDb21wb3NpdG9yRGlzcGxheSgpLT5jcmVh
dGVTdXJmYWNlKCkpCisgICAgLCBtX3N1cmZhY2UoV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkud2F5
bGFuZENvbXBvc2l0b3JEaXNwbGF5KCktPmNyZWF0ZVN1cmZhY2UoKSkKICAgICAsIG1fd2luZG93
KHdsX2VnbF93aW5kb3dfY3JlYXRlKG1fc3VyZmFjZS5nZXQoKSwgc3RkOjptYXgoMSwgbV9zaXpl
LndpZHRoKCkpLCBzdGQ6Om1heCgxLCBtX3NpemUuaGVpZ2h0KCkpKSkKIHsKLSAgICB3YXlsYW5k
Q29tcG9zaXRvckRpc3BsYXkoKS0+YmluZFN1cmZhY2VUb1BhZ2UobV9zdXJmYWNlLmdldCgpLCBt
X3dlYlBhZ2UpOworICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLndheWxhbmRDb21wb3NpdG9y
RGlzcGxheSgpLT5iaW5kU3VyZmFjZVRvUGFnZShtX3N1cmZhY2UuZ2V0KCksIG1fd2ViUGFnZSk7
CiB9CiAKIEFjY2VsZXJhdGVkU3VyZmFjZVdheWxhbmQ6On5BY2NlbGVyYXRlZFN1cmZhY2VXYXls
YW5kKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5j
cHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCmluZGV4IDAzNTlk
MjNhM2UyNzBiMzg5YzM1OTY3ZjVmN2MzZDYzMjZlZDU1Y2IuLjRmYjlmMWU4ZDI5MDU3ODZkMWVj
NjA5ZTQ5OGM5ZjhkYjdiYzEyZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9j
ZXNzLmNwcApAQCAtMTE1LDYgKzExNSwxMCBAQAogI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CiAj
aW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nSGFzaC5oPgogCisjaWYgUExBVEZPUk0oV0FZTEFORCkg
JiYgUExBVEZPUk0oR1RLKQorI2luY2x1ZGUgIldheWxhbmRDb21wb3NpdG9yRGlzcGxheS5oIgor
I2VuZGlmCisKICNpZiBQTEFURk9STShDT0NPQSkKICNpbmNsdWRlICJDb29raWVTdG9yYWdlU2hp
bS5oIgogI2luY2x1ZGUgIk9iakNPYmplY3RHcmFwaC5oIgpAQCAtMzEzLDggKzMxNyw4IEBAIHZv
aWQgV2ViUHJvY2Vzczo6aW5pdGlhbGl6ZVdlYlByb2Nlc3MoV2ViUHJvY2Vzc0NyZWF0aW9uUGFy
YW1ldGVycyYmIHBhcmFtZXRlcnMpCiAgICAgbV9hcHBsaWNhdGlvbkNhY2hlU3RvcmFnZS0+c2V0
RGVmYXVsdE9yaWdpblF1b3RhKDI1VUxMICogMTAyNCAqIDEwMjQpOwogI2VuZGlmCiAKLSNpZiBQ
TEFURk9STShXQVlMQU5EKQotICAgIG1fd2F5bGFuZENvbXBvc2l0b3JEaXNwbGF5TmFtZSA9IHBh
cmFtZXRlcnMud2F5bGFuZENvbXBvc2l0b3JEaXNwbGF5TmFtZTsKKyNpZiBQTEFURk9STShXQVlM
QU5EKSAmJiBQTEFURk9STShHVEspCisgICAgbV93YXlsYW5kQ29tcG9zaXRvckRpc3BsYXkgPSBX
YXlsYW5kQ29tcG9zaXRvckRpc3BsYXk6OmNyZWF0ZShwYXJhbWV0ZXJzLndheWxhbmRDb21wb3Np
dG9yRGlzcGxheU5hbWUpOwogI2VuZGlmCiAKICNpZiBFTkFCTEUoVklERU8pCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCmluZGV4IGFiZjA4MDQwMjQwN2Y2Njg3MDMwYWY4NjM4
N2EyMzBmYjI4YzI3MzQuLjA1YzAwNjkyZDFkYWZlYzcyZWUxYTI3ZTkyNmFlNzI3NzkzZWRkMzIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCkBAIC05OSw2ICs5OSwxMCBA
QCBzdHJ1Y3QgV2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnM7CiBjbGFzcyBXZWJUb0RhdGFiYXNl
UHJvY2Vzc0Nvbm5lY3Rpb247CiAjZW5kaWYKIAorI2lmIFBMQVRGT1JNKFdBWUxBTkQpICYmIFBM
QVRGT1JNKEdUSykKK2NsYXNzIFdheWxhbmRDb21wb3NpdG9yRGlzcGxheTsKKyNlbmRpZgorCiBj
bGFzcyBXZWJQcm9jZXNzIDogcHVibGljIENoaWxkUHJvY2VzcyB7CiBwdWJsaWM6CiAgICAgc3Rh
dGljIFdlYlByb2Nlc3MmIHNpbmdsZXRvbigpOwpAQCAtMjA1LDggKzIwOSw4IEBAIHB1YmxpYzoK
ICAgICB2b2lkIHJlc2V0QWxsR2VvbG9jYXRpb25QZXJtaXNzaW9ucygpOwogI2VuZGlmCiAKLSNp
ZiBQTEFURk9STShXQVlMQU5EKQotICAgIFN0cmluZyB3YXlsYW5kQ29tcG9zaXRvckRpc3BsYXlO
YW1lKCkgY29uc3QgeyByZXR1cm4gbV93YXlsYW5kQ29tcG9zaXRvckRpc3BsYXlOYW1lOyB9Cisj
aWYgUExBVEZPUk0oV0FZTEFORCkgJiYgUExBVEZPUk0oR1RLKQorICAgIFdheWxhbmRDb21wb3Np
dG9yRGlzcGxheSogd2F5bGFuZENvbXBvc2l0b3JEaXNwbGF5KCkgY29uc3QgeyByZXR1cm4gbV93
YXlsYW5kQ29tcG9zaXRvckRpc3BsYXkuZ2V0KCk7IH0KICNlbmRpZgogCiAgICAgUmVmUHRyPEFQ
STo6T2JqZWN0PiB0cmFuc2Zvcm1IYW5kbGVzVG9PYmplY3RzKEFQSTo6T2JqZWN0Kik7CkBAIC00
MjksOCArNDMzLDggQEAgcHJpdmF0ZToKIAogICAgIEhhc2hNYXA8V2ViQ29yZTo6VXNlckdlc3R1
cmVUb2tlbiAqLCB1aW50NjRfdD4gbV91c2VyR2VzdHVyZVRva2VuczsKIAotI2lmIFBMQVRGT1JN
KFdBWUxBTkQpCi0gICAgU3RyaW5nIG1fd2F5bGFuZENvbXBvc2l0b3JEaXNwbGF5TmFtZTsKKyNp
ZiBQTEFURk9STShXQVlMQU5EKSAmJiBQTEFURk9STShHVEspCisgICAgc3RkOjp1bmlxdWVfcHRy
PFdheWxhbmRDb21wb3NpdG9yRGlzcGxheT4gbV93YXlsYW5kQ29tcG9zaXRvckRpc3BsYXk7CiAj
ZW5kaWYKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvZ3RrL1dh
eWxhbmRDb21wb3NpdG9yRGlzcGxheS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2d0
ay9XYXlsYW5kQ29tcG9zaXRvckRpc3BsYXkuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjgxMTJlYWRjNTdjNTUw
ZjE3YTE2Y2QxYWFiNjVkZmE3N2ViZTg2YTEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL2d0ay9XYXlsYW5kQ29tcG9zaXRvckRpc3BsYXkuY3BwCkBAIC0wLDAg
KzEsNzYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgSWdhbGlhIFMuTC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycn
IEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwK
KyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgor
I2luY2x1ZGUgIldheWxhbmRDb21wb3NpdG9yRGlzcGxheS5oIgorCisjaWYgUExBVEZPUk0oV0FZ
TEFORCkKKworI2luY2x1ZGUgIldlYktpdDJXYXlsYW5kQ2xpZW50UHJvdG9jb2wuaCIKKyNpbmNs
dWRlICJXZWJQYWdlLmgiCisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCituYW1lc3BhY2Ug
V2ViS2l0IHsKKworc3RkOjp1bmlxdWVfcHRyPFdheWxhbmRDb21wb3NpdG9yRGlzcGxheT4gV2F5
bGFuZENvbXBvc2l0b3JEaXNwbGF5OjpjcmVhdGUoY29uc3QgU3RyaW5nJiBkaXNwbGF5TmFtZSkK
K3sKKyAgICBpZiAoZGlzcGxheU5hbWUuaXNOdWxsKCkpCisgICAgICAgIHJldHVybiBudWxscHRy
OworCisgICAgc3RydWN0IHdsX2Rpc3BsYXkqIGRpc3BsYXkgPSB3bF9kaXNwbGF5X2Nvbm5lY3Qo
ZGlzcGxheU5hbWUudXRmOCgpLmRhdGEoKSk7CisgICAgaWYgKCFkaXNwbGF5KSB7CisgICAgICAg
IFdURkxvZ0Fsd2F5cygiUGxhdGZvcm1EaXNwbGF5V2F5bGFuZCBpbml0aWFsaXphdGlvbjogZmFp
bGVkIHRvIGNvbm5lY3QgdG8gdGhlIFdheWxhbmQgZGlzcGxheTogJXMiLCBkaXNwbGF5TmFtZS51
dGY4KCkuZGF0YSgpKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgfQorCisgICAgcmV0
dXJuIHN0ZDo6dW5pcXVlX3B0cjxXYXlsYW5kQ29tcG9zaXRvckRpc3BsYXk+KG5ldyBXYXlsYW5k
Q29tcG9zaXRvckRpc3BsYXkoZGlzcGxheSkpOworfQorCit2b2lkIFdheWxhbmRDb21wb3NpdG9y
RGlzcGxheTo6YmluZFN1cmZhY2VUb1BhZ2Uoc3RydWN0IHdsX3N1cmZhY2UqIHN1cmZhY2UsIFdl
YlBhZ2UmIHBhZ2UpCit7CisgICAgaWYgKCFtX3dlYmtpdGd0aykKKyAgICAgICAgcmV0dXJuOwor
CisgICAgd2xfd2Via2l0Z3RrX2JpbmRfc3VyZmFjZV90b19wYWdlKHJlaW50ZXJwcmV0X2Nhc3Q8
c3RydWN0IHdsX3dlYmtpdGd0ayo+KG1fd2Via2l0Z3RrLmdldCgpKSwgc3VyZmFjZSwgcGFnZS5w
YWdlSUQoKSk7CisgICAgd2xfZGlzcGxheV9yb3VuZHRyaXAobV9kaXNwbGF5KTsKK30KKworV2F5
bGFuZENvbXBvc2l0b3JEaXNwbGF5OjpXYXlsYW5kQ29tcG9zaXRvckRpc3BsYXkoc3RydWN0IHds
X2Rpc3BsYXkqIGRpc3BsYXkpCit7CisgICAgaW5pdGlhbGl6ZShkaXNwbGF5KTsKKyAgICBQbGF0
Zm9ybURpc3BsYXk6OnNldFNoYXJlZERpc3BsYXlGb3JDb21wb3NpdGluZygqdGhpcyk7Cit9CisK
K3ZvaWQgV2F5bGFuZENvbXBvc2l0b3JEaXNwbGF5OjpyZWdpc3RyeUdsb2JhbChjb25zdCBjaGFy
KiBpbnRlcmZhY2UsIHVpbnQzMl90IG5hbWUpCit7CisgICAgUGxhdGZvcm1EaXNwbGF5V2F5bGFu
ZDo6cmVnaXN0cnlHbG9iYWwoaW50ZXJmYWNlLCBuYW1lKTsKKyAgICBpZiAoIXN0ZDo6c3RyY21w
KGludGVyZmFjZSwgIndsX3dlYmtpdGd0ayIpKQorICAgICAgICBtX3dlYmtpdGd0ay5yZXNldChz
dGF0aWNfY2FzdDxzdHJ1Y3Qgd2xfcHJveHkqPih3bF9yZWdpc3RyeV9iaW5kKG1fcmVnaXN0cnku
Z2V0KCksIG5hbWUsICZ3bF93ZWJraXRndGtfaW50ZXJmYWNlLCAxKSkpOworfQorCit9IC8vIG5h
bWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIFBMQVRGT1JNKFdBWUxBTkQpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2d0ay9XYXlsYW5kQ29tcG9zaXRvckRpc3BsYXku
aCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvZ3RrL1dheWxhbmRDb21wb3NpdG9yRGlzcGxh
eS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmU4MWE1NDAwMzgxMWNiYzllOWU1Njg4YzI5N2QyYjI1MWQwMDUzMGQK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2d0ay9XYXlsYW5k
Q29tcG9zaXRvckRpc3BsYXkuaApAQCAtMCwwICsxLDU0IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDE3IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IK
KyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgUExBVEZPUk0oV0FZTEFORCkKKworI2luY2x1ZGUg
PFdlYkNvcmUvUGxhdGZvcm1EaXNwbGF5V2F5bGFuZC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvV2xV
bmlxdWVQdHIuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9BdG9taWNTdHJpbmcuaD4KKworbmFtZXNw
YWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYlBhZ2U7CisKK2NsYXNzIFdheWxhbmRDb21wb3NpdG9y
RGlzcGxheSBmaW5hbCA6IHB1YmxpYyBXZWJDb3JlOjpQbGF0Zm9ybURpc3BsYXlXYXlsYW5kIHsK
KyAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShXYXlsYW5kQ29tcG9zaXRvckRpc3BsYXkpOworcHVi
bGljOgorICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8V2F5bGFuZENvbXBvc2l0b3JEaXNwbGF5
PiBjcmVhdGUoY29uc3QgU3RyaW5nJik7CisgICAgfldheWxhbmRDb21wb3NpdG9yRGlzcGxheSgp
ID0gZGVmYXVsdDsKKyAgICB2b2lkIGJpbmRTdXJmYWNlVG9QYWdlKHN0cnVjdCB3bF9zdXJmYWNl
KiwgV2ViUGFnZSYpOworCitwcml2YXRlOgorICAgIFdheWxhbmRDb21wb3NpdG9yRGlzcGxheShz
dHJ1Y3Qgd2xfZGlzcGxheSopOworICAgIHZvaWQgcmVnaXN0cnlHbG9iYWwoY29uc3QgY2hhcios
IHVpbnQzMl90KSBvdmVycmlkZTsKKworICAgIFdlYkNvcmU6OldsVW5pcXVlUHRyPHN0cnVjdCB3
bF9wcm94eT4gbV93ZWJraXRndGs7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2Vu
ZGlmIC8vIFBMQVRGT1JNKFdBWUxBTkQpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>313502</attachid>
            <date>2017-06-21 03:20:35 -0700</date>
            <delta_ts>2017-06-21 04:01:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-173598-20170621122033.patch</filename>
            <type>text/plain</type>
            <size>14964</size>
            <attacher name="Miguel Gomez">magomez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE4NjI3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMzc0ZWM4MjE5MzZmNmE4
M2I2MjJjMTIwNzlhOTNjMWM0ZDMwNWZkYS4uYjk5ZDVmOTk2YThmNmY4M2EzYzk2YjYyZmNhMDMx
ZTNiMmUwMGY1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDE3LTA2LTIxICBNaWd1
ZWwgR29tZXogIDxtYWdvbWV6QGlnYWxpYS5jb20+CisKKyAgICAgICAgW0dUS11bV0FZTEFORF0g
Q3JlYXRlIFdheWxhbmRDb21wb3NpdG9yRGlzcGxheSB1bmNvbmRpdGlvbmFsbHkgd2hlbiBpbml0
aWFsaXppbmcgdGhlIFdlYlByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE3MzU5OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIE1vdmUgV2F5bGFuZENvbXBvc2l0b3JEaXNwbGF5IGNvZGUgdG8gaXRz
IG93biBmaWxlcyB0byBpdCBjYW4gYmUgdXNlZCBmcm9tIG90aGVyIGNsYXNzZXMuIFRoZW4sIGlu
c3RlYWQgb2YKKyAgICAgICAgc3RvcmluZyB0aGUgd2F5bGFuZENvbXBvc2l0b3JEaXNwbGF5TmFt
ZSBpbiB0aGUgV2ViUHJvY2Vzcywga2VlcCBhIFdheWxhbmRDb21wb3NpdG9yRGlzcGxheSBpbnN0
YW5jZSB0aGF0CisgICAgICAgIGlzIGNyZWF0ZWQgZHVyaW5nIHRoZSBpbml0aWFsaXphdGlvbi4g
VGhpcyB3YXkgdGhlIGFwcHJvcHJpYXRlIHNoYXJlZERpc3BsYXlGb3JDb21wb3NpdGluZyB3aWxs
IGJlIHNldAorICAgICAgICBzaW5jZSB0aGUgY3JlYXRpb24gb2YgdGhlIFdlYlByb2Nlc3MuCisK
KyAgICAgICAgKiBQbGF0Zm9ybUdUSy5jbWFrZToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBh
Z2UvZ3RrL0FjY2VsZXJhdGVkU3VyZmFjZVdheWxhbmQuY3BwOgorICAgICAgICAoV2ViS2l0OjpB
Y2NlbGVyYXRlZFN1cmZhY2VXYXlsYW5kOjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0OjpBY2Nl
bGVyYXRlZFN1cmZhY2VXYXlsYW5kOjpBY2NlbGVyYXRlZFN1cmZhY2VXYXlsYW5kKToKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9j
ZXNzOjppbml0aWFsaXplV2ViUHJvY2Vzcyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQcm9j
ZXNzLmg6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OndheWxhbmRDb21wb3NpdG9yRGlz
cGxheSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9ndGsvV2F5bGFuZENvbXBvc2l0b3JEaXNwbGF5
LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OldheWxhbmRDb21wb3NpdG9yRGlzcGxheTo6
Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6V2F5bGFuZENvbXBvc2l0b3JEaXNwbGF5OjpiaW5k
U3VyZmFjZVRvUGFnZSk6CisgICAgICAgIChXZWJLaXQ6OldheWxhbmRDb21wb3NpdG9yRGlzcGxh
eTo6V2F5bGFuZENvbXBvc2l0b3JEaXNwbGF5KToKKyAgICAgICAgKFdlYktpdDo6V2F5bGFuZENv
bXBvc2l0b3JEaXNwbGF5OjpyZWdpc3RyeUdsb2JhbCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9n
dGsvV2F5bGFuZENvbXBvc2l0b3JEaXNwbGF5Lmg6IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nl
c3Mvc291cC9XZWJQcm9jZXNzU291cC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6
OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MpOgorCiAyMDE3LTA2LTIwICBGcmVkZXJpYyBX
YW5nICA8ZndhbmdAaWdhbGlhLmNvbT4KIAogICAgICAgICBQYXNzIHRoZSBhcmd1bWVudCBvZiBE
cmF3aW5nQXJlYTo6c2hvdWxkVXNlVGlsZWRCYWNraW5nRm9yRnJhbWVWaWV3IGJ5IHJlZmVyZW5j
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm1HVEsuY21ha2UgYi9Tb3VyY2Uv
V2ViS2l0Mi9QbGF0Zm9ybUdUSy5jbWFrZQppbmRleCA4NWZjMjA5ZmM1NWE5N2Q1M2U5MDUzN2Y4
MzljNjQ4OWNiNjRlYWQ4Li40NzlhYzQ4ODMwNTEwNjViZTg2NjhjNDE5MTE5NzI0OTU5NTE4OTM1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybUdUSy5jbWFrZQorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9QbGF0Zm9ybUdUSy5jbWFrZQpAQCAtMzk2LDYgKzM5Niw3IEBAIGxpc3QoQVBQ
RU5EIFdlYktpdDJfU09VUkNFUwogICAgIFdlYlByb2Nlc3MvV2ViUGFnZS9ndGsvV2ViUGFnZUd0
ay5jcHAKICAgICBXZWJQcm9jZXNzL1dlYlBhZ2UvZ3RrL1dlYlByaW50T3BlcmF0aW9uR3RrLmNw
cAogCisgICAgV2ViUHJvY2Vzcy9ndGsvV2F5bGFuZENvbXBvc2l0b3JEaXNwbGF5LmNwcAogICAg
IFdlYlByb2Nlc3MvZ3RrL1dlYkd0a0V4dGVuc2lvbk1hbmFnZXIuY3BwCiAgICAgV2ViUHJvY2Vz
cy9ndGsvV2ViR3RrSW5qZWN0ZWRCdW5kbGVNYWluLmNwcAogICAgIFdlYlByb2Nlc3MvZ3RrL1dl
YlByb2Nlc3NNYWluR3RrLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL2d0ay9BY2NlbGVyYXRlZFN1cmZhY2VXYXlsYW5kLmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9ndGsvQWNjZWxlcmF0ZWRTdXJmYWNlV2F5bGFuZC5jcHAK
aW5kZXggM2NmNTI4YWVhOGQ1ZWE3NWQzNDcyNWQxZWRmZmZhOGYzNjY1NGYzMy4uYzczMzJiNjQy
NDE0NzVmM2NlY2EwMThhZjBhNDJjOTJjNGFjYWU0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2d0ay9BY2NlbGVyYXRlZFN1cmZhY2VXYXlsYW5kLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvZ3RrL0FjY2VsZXJhdGVkU3Vy
ZmFjZVdheWxhbmQuY3BwCkBAIC0yOCw3NCArMjgsMjUgQEAKIAogI2lmIFBMQVRGT1JNKFdBWUxB
TkQpCiAKLSNpbmNsdWRlICJXZWJLaXQyV2F5bGFuZENsaWVudFByb3RvY29sLmgiCisjaW5jbHVk
ZSAiV2F5bGFuZENvbXBvc2l0b3JEaXNwbGF5LmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgot
I2luY2x1ZGUgPFdlYkNvcmUvUGxhdGZvcm1EaXNwbGF5V2F5bGFuZC5oPgotI2luY2x1ZGUgPGNz
dHJpbmc+CiAjaW5jbHVkZSA8d2F5bGFuZC1lZ2wuaD4KLSNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0
cm95ZWQuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIG5hbWVzcGFjZSBXZWJLaXQg
ewogCi1jbGFzcyBXYXlsYW5kQ29tcG9zaXRvckRpc3BsYXkgZmluYWwgOiBwdWJsaWMgUGxhdGZv
cm1EaXNwbGF5V2F5bGFuZCB7Ci0gICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoV2F5bGFuZENvbXBv
c2l0b3JEaXNwbGF5KTsKLXB1YmxpYzoKLSAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPFdheWxh
bmRDb21wb3NpdG9yRGlzcGxheT4gY3JlYXRlKCkKLSAgICB7Ci0gICAgICAgIHN0cnVjdCB3bF9k
aXNwbGF5KiBkaXNwbGF5ID0gd2xfZGlzcGxheV9jb25uZWN0KFdlYlByb2Nlc3M6OnNpbmdsZXRv
bigpLndheWxhbmRDb21wb3NpdG9yRGlzcGxheU5hbWUoKS51dGY4KCkuZGF0YSgpKTsKLSAgICAg
ICAgaWYgKCFkaXNwbGF5KSB7Ci0gICAgICAgICAgICBXVEZMb2dBbHdheXMoIlBsYXRmb3JtRGlz
cGxheVdheWxhbmQgaW5pdGlhbGl6YXRpb246IGZhaWxlZCB0byBjb25uZWN0IHRvIHRoZSBXYXls
YW5kIGRpc3BsYXk6ICVzIiwgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkud2F5bGFuZENvbXBvc2l0
b3JEaXNwbGF5TmFtZSgpLnV0ZjgoKS5kYXRhKCkpOwotICAgICAgICAgICAgcmV0dXJuIG51bGxw
dHI7Ci0gICAgICAgIH0KLQotICAgICAgICByZXR1cm4gc3RkOjp1bmlxdWVfcHRyPFdheWxhbmRD
b21wb3NpdG9yRGlzcGxheT4obmV3IFdheWxhbmRDb21wb3NpdG9yRGlzcGxheShkaXNwbGF5KSk7
Ci0gICAgfQotCi0gICAgdm9pZCBiaW5kU3VyZmFjZVRvUGFnZShzdHJ1Y3Qgd2xfc3VyZmFjZSog
c3VyZmFjZSwgV2ViUGFnZSYgcGFnZSkKLSAgICB7Ci0gICAgICAgIGlmICghbV93ZWJraXRndGsp
Ci0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgd2xfd2Via2l0Z3RrX2JpbmRfc3VyZmFj
ZV90b19wYWdlKHJlaW50ZXJwcmV0X2Nhc3Q8c3RydWN0IHdsX3dlYmtpdGd0ayo+KG1fd2Via2l0
Z3RrLmdldCgpKSwgc3VyZmFjZSwgcGFnZS5wYWdlSUQoKSk7Ci0gICAgICAgIHdsX2Rpc3BsYXlf
cm91bmR0cmlwKG1fZGlzcGxheSk7Ci0gICAgfQotCi1wcml2YXRlOgotICAgIFdheWxhbmRDb21w
b3NpdG9yRGlzcGxheShzdHJ1Y3Qgd2xfZGlzcGxheSogZGlzcGxheSkKLSAgICB7Ci0gICAgICAg
IGluaXRpYWxpemUoZGlzcGxheSk7Ci0gICAgICAgIFBsYXRmb3JtRGlzcGxheTo6c2V0U2hhcmVk
RGlzcGxheUZvckNvbXBvc2l0aW5nKCp0aGlzKTsKLSAgICB9Ci0KLSAgICB2b2lkIHJlZ2lzdHJ5
R2xvYmFsKGNvbnN0IGNoYXIqIGludGVyZmFjZSwgdWludDMyX3QgbmFtZSkgb3ZlcnJpZGUKLSAg
ICB7Ci0gICAgICAgIFBsYXRmb3JtRGlzcGxheVdheWxhbmQ6OnJlZ2lzdHJ5R2xvYmFsKGludGVy
ZmFjZSwgbmFtZSk7Ci0gICAgICAgIGlmICghc3RkOjpzdHJjbXAoaW50ZXJmYWNlLCAid2xfd2Vi
a2l0Z3RrIikpCi0gICAgICAgICAgICBtX3dlYmtpdGd0ay5yZXNldChzdGF0aWNfY2FzdDxzdHJ1
Y3Qgd2xfcHJveHkqPih3bF9yZWdpc3RyeV9iaW5kKG1fcmVnaXN0cnkuZ2V0KCksIG5hbWUsICZ3
bF93ZWJraXRndGtfaW50ZXJmYWNlLCAxKSkpOwotICAgIH0KLQotICAgIFdsVW5pcXVlUHRyPHN0
cnVjdCB3bF9wcm94eT4gbV93ZWJraXRndGs7Ci19OwotCi1zdGF0aWMgc3RkOjp1bmlxdWVfcHRy
PFdheWxhbmRDb21wb3NpdG9yRGlzcGxheT4mIHdheWxhbmRDb21wb3NpdG9yRGlzcGxheSgpCi17
Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPHN0ZDo6dW5pcXVlX3B0cjxXYXlsYW5kQ29tcG9z
aXRvckRpc3BsYXk+PiB3YXlsYW5kRGlzcGxheShXYXlsYW5kQ29tcG9zaXRvckRpc3BsYXk6OmNy
ZWF0ZSgpKTsKLSAgICByZXR1cm4gd2F5bGFuZERpc3BsYXk7Ci19Ci0KIHN0ZDo6dW5pcXVlX3B0
cjxBY2NlbGVyYXRlZFN1cmZhY2VXYXlsYW5kPiBBY2NlbGVyYXRlZFN1cmZhY2VXYXlsYW5kOjpj
cmVhdGUoV2ViUGFnZSYgd2ViUGFnZSwgQ2xpZW50JiBjbGllbnQpCiB7Ci0gICAgcmV0dXJuIHdh
eWxhbmRDb21wb3NpdG9yRGlzcGxheSgpID8gc3RkOjp1bmlxdWVfcHRyPEFjY2VsZXJhdGVkU3Vy
ZmFjZVdheWxhbmQ+KG5ldyBBY2NlbGVyYXRlZFN1cmZhY2VXYXlsYW5kKHdlYlBhZ2UsIGNsaWVu
dCkpIDogbnVsbHB0cjsKKyAgICByZXR1cm4gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkud2F5bGFu
ZENvbXBvc2l0b3JEaXNwbGF5KCkgPyBzdGQ6OnVuaXF1ZV9wdHI8QWNjZWxlcmF0ZWRTdXJmYWNl
V2F5bGFuZD4obmV3IEFjY2VsZXJhdGVkU3VyZmFjZVdheWxhbmQod2ViUGFnZSwgY2xpZW50KSkg
OiBudWxscHRyOwogfQogCiBBY2NlbGVyYXRlZFN1cmZhY2VXYXlsYW5kOjpBY2NlbGVyYXRlZFN1
cmZhY2VXYXlsYW5kKFdlYlBhZ2UmIHdlYlBhZ2UsIENsaWVudCYgY2xpZW50KQogICAgIDogQWNj
ZWxlcmF0ZWRTdXJmYWNlKHdlYlBhZ2UsIGNsaWVudCkKLSAgICAsIG1fc3VyZmFjZSh3YXlsYW5k
Q29tcG9zaXRvckRpc3BsYXkoKS0+Y3JlYXRlU3VyZmFjZSgpKQorICAgICwgbV9zdXJmYWNlKFdl
YlByb2Nlc3M6OnNpbmdsZXRvbigpLndheWxhbmRDb21wb3NpdG9yRGlzcGxheSgpLT5jcmVhdGVT
dXJmYWNlKCkpCiAgICAgLCBtX3dpbmRvdyh3bF9lZ2xfd2luZG93X2NyZWF0ZShtX3N1cmZhY2Uu
Z2V0KCksIHN0ZDo6bWF4KDEsIG1fc2l6ZS53aWR0aCgpKSwgc3RkOjptYXgoMSwgbV9zaXplLmhl
aWdodCgpKSkpCiB7Ci0gICAgd2F5bGFuZENvbXBvc2l0b3JEaXNwbGF5KCktPmJpbmRTdXJmYWNl
VG9QYWdlKG1fc3VyZmFjZS5nZXQoKSwgbV93ZWJQYWdlKTsKKyAgICBXZWJQcm9jZXNzOjpzaW5n
bGV0b24oKS53YXlsYW5kQ29tcG9zaXRvckRpc3BsYXkoKS0+YmluZFN1cmZhY2VUb1BhZ2UobV9z
dXJmYWNlLmdldCgpLCBtX3dlYlBhZ2UpOwogfQogCiBBY2NlbGVyYXRlZFN1cmZhY2VXYXlsYW5k
Ojp+QWNjZWxlcmF0ZWRTdXJmYWNlV2F5bGFuZCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQcm9jZXNzLmNwcAppbmRleCAwMzU5ZDIzYTNlMjcwYjM4OWMzNTk2N2Y1ZjdjM2Q2MzI2ZWQ1
NWNiLi40NTc1MzU0ZTk3ODJjM2EzN2Q3MGY0YzE3MjVkNDMyMjg3MzY3NmNmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKQEAgLTExNSw2ICsxMTUsMTAgQEAKICNp
bmNsdWRlIDx3dGYvUnVuTG9vcC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0hhc2guaD4K
IAorI2lmIFBMQVRGT1JNKFdBWUxBTkQpCisjaW5jbHVkZSAiV2F5bGFuZENvbXBvc2l0b3JEaXNw
bGF5LmgiCisjZW5kaWYKKwogI2lmIFBMQVRGT1JNKENPQ09BKQogI2luY2x1ZGUgIkNvb2tpZVN0
b3JhZ2VTaGltLmgiCiAjaW5jbHVkZSAiT2JqQ09iamVjdEdyYXBoLmgiCkBAIC0zMTMsMTAgKzMx
Nyw2IEBAIHZvaWQgV2ViUHJvY2Vzczo6aW5pdGlhbGl6ZVdlYlByb2Nlc3MoV2ViUHJvY2Vzc0Ny
ZWF0aW9uUGFyYW1ldGVycyYmIHBhcmFtZXRlcnMpCiAgICAgbV9hcHBsaWNhdGlvbkNhY2hlU3Rv
cmFnZS0+c2V0RGVmYXVsdE9yaWdpblF1b3RhKDI1VUxMICogMTAyNCAqIDEwMjQpOwogI2VuZGlm
CiAKLSNpZiBQTEFURk9STShXQVlMQU5EKQotICAgIG1fd2F5bGFuZENvbXBvc2l0b3JEaXNwbGF5
TmFtZSA9IHBhcmFtZXRlcnMud2F5bGFuZENvbXBvc2l0b3JEaXNwbGF5TmFtZTsKLSNlbmRpZgot
CiAjaWYgRU5BQkxFKFZJREVPKQogICAgIGlmICghcGFyYW1ldGVycy5tZWRpYUNhY2hlRGlyZWN0
b3J5LmlzRW1wdHkoKSkKICAgICAgICAgV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6c2V0TWVk
aWFDYWNoZURpcmVjdG9yeShwYXJhbWV0ZXJzLm1lZGlhQ2FjaGVEaXJlY3RvcnkpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmggYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAppbmRleCBhYmYwODA0MDI0MDdmNjY4NzAzMGFm
ODYzODdhMjMwZmIyOGMyNzM0Li5jNDY1NmUxYjU5OWQwYWRmNmU5OWQ3MzBjNzgxMTZkNDBjNDkz
NWE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaApAQCAtNzksNiArNzks
NyBAQCBjbGFzcyBMaWJXZWJSVENOZXR3b3JrOwogY2xhc3MgTmV0d29ya1Byb2Nlc3NDb25uZWN0
aW9uOwogY2xhc3MgT2JqQ09iamVjdEdyYXBoOwogY2xhc3MgVXNlckRhdGE7CitjbGFzcyBXYXls
YW5kQ29tcG9zaXRvckRpc3BsYXk7CiBjbGFzcyBXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5Owog
Y2xhc3MgV2ViQ29ubmVjdGlvblRvVUlQcm9jZXNzOwogY2xhc3MgV2ViRnJhbWU7CkBAIC0yMDYs
NyArMjA3LDcgQEAgcHVibGljOgogI2VuZGlmCiAKICNpZiBQTEFURk9STShXQVlMQU5EKQotICAg
IFN0cmluZyB3YXlsYW5kQ29tcG9zaXRvckRpc3BsYXlOYW1lKCkgY29uc3QgeyByZXR1cm4gbV93
YXlsYW5kQ29tcG9zaXRvckRpc3BsYXlOYW1lOyB9CisgICAgV2F5bGFuZENvbXBvc2l0b3JEaXNw
bGF5KiB3YXlsYW5kQ29tcG9zaXRvckRpc3BsYXkoKSBjb25zdCB7IHJldHVybiBtX3dheWxhbmRD
b21wb3NpdG9yRGlzcGxheS5nZXQoKTsgfQogI2VuZGlmCiAKICAgICBSZWZQdHI8QVBJOjpPYmpl
Y3Q+IHRyYW5zZm9ybUhhbmRsZXNUb09iamVjdHMoQVBJOjpPYmplY3QqKTsKQEAgLTQzMCw3ICs0
MzEsNyBAQCBwcml2YXRlOgogICAgIEhhc2hNYXA8V2ViQ29yZTo6VXNlckdlc3R1cmVUb2tlbiAq
LCB1aW50NjRfdD4gbV91c2VyR2VzdHVyZVRva2VuczsKIAogI2lmIFBMQVRGT1JNKFdBWUxBTkQp
Ci0gICAgU3RyaW5nIG1fd2F5bGFuZENvbXBvc2l0b3JEaXNwbGF5TmFtZTsKKyAgICBzdGQ6OnVu
aXF1ZV9wdHI8V2F5bGFuZENvbXBvc2l0b3JEaXNwbGF5PiBtX3dheWxhbmRDb21wb3NpdG9yRGlz
cGxheTsKICNlbmRpZgogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9ndGsvV2F5bGFuZENvbXBvc2l0b3JEaXNwbGF5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvZ3RrL1dheWxhbmRDb21wb3NpdG9yRGlzcGxheS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODExMmVh
ZGM1N2M1NTBmMTdhMTZjZDFhYWI2NWRmYTc3ZWJlODZhMQotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvZ3RrL1dheWxhbmRDb21wb3NpdG9yRGlzcGxheS5jcHAK
QEAgLTAsMCArMSw3NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBJZ2FsaWEgUy5MLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBg
YEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29u
ZmlnLmgiCisjaW5jbHVkZSAiV2F5bGFuZENvbXBvc2l0b3JEaXNwbGF5LmgiCisKKyNpZiBQTEFU
Rk9STShXQVlMQU5EKQorCisjaW5jbHVkZSAiV2ViS2l0MldheWxhbmRDbGllbnRQcm90b2NvbC5o
IgorI2luY2x1ZGUgIldlYlBhZ2UuaCIKKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK25h
bWVzcGFjZSBXZWJLaXQgeworCitzdGQ6OnVuaXF1ZV9wdHI8V2F5bGFuZENvbXBvc2l0b3JEaXNw
bGF5PiBXYXlsYW5kQ29tcG9zaXRvckRpc3BsYXk6OmNyZWF0ZShjb25zdCBTdHJpbmcmIGRpc3Bs
YXlOYW1lKQoreworICAgIGlmIChkaXNwbGF5TmFtZS5pc051bGwoKSkKKyAgICAgICAgcmV0dXJu
IG51bGxwdHI7CisKKyAgICBzdHJ1Y3Qgd2xfZGlzcGxheSogZGlzcGxheSA9IHdsX2Rpc3BsYXlf
Y29ubmVjdChkaXNwbGF5TmFtZS51dGY4KCkuZGF0YSgpKTsKKyAgICBpZiAoIWRpc3BsYXkpIHsK
KyAgICAgICAgV1RGTG9nQWx3YXlzKCJQbGF0Zm9ybURpc3BsYXlXYXlsYW5kIGluaXRpYWxpemF0
aW9uOiBmYWlsZWQgdG8gY29ubmVjdCB0byB0aGUgV2F5bGFuZCBkaXNwbGF5OiAlcyIsIGRpc3Bs
YXlOYW1lLnV0ZjgoKS5kYXRhKCkpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICB9CisK
KyAgICByZXR1cm4gc3RkOjp1bmlxdWVfcHRyPFdheWxhbmRDb21wb3NpdG9yRGlzcGxheT4obmV3
IFdheWxhbmRDb21wb3NpdG9yRGlzcGxheShkaXNwbGF5KSk7Cit9CisKK3ZvaWQgV2F5bGFuZENv
bXBvc2l0b3JEaXNwbGF5OjpiaW5kU3VyZmFjZVRvUGFnZShzdHJ1Y3Qgd2xfc3VyZmFjZSogc3Vy
ZmFjZSwgV2ViUGFnZSYgcGFnZSkKK3sKKyAgICBpZiAoIW1fd2Via2l0Z3RrKQorICAgICAgICBy
ZXR1cm47CisKKyAgICB3bF93ZWJraXRndGtfYmluZF9zdXJmYWNlX3RvX3BhZ2UocmVpbnRlcnBy
ZXRfY2FzdDxzdHJ1Y3Qgd2xfd2Via2l0Z3RrKj4obV93ZWJraXRndGsuZ2V0KCkpLCBzdXJmYWNl
LCBwYWdlLnBhZ2VJRCgpKTsKKyAgICB3bF9kaXNwbGF5X3JvdW5kdHJpcChtX2Rpc3BsYXkpOwor
fQorCitXYXlsYW5kQ29tcG9zaXRvckRpc3BsYXk6OldheWxhbmRDb21wb3NpdG9yRGlzcGxheShz
dHJ1Y3Qgd2xfZGlzcGxheSogZGlzcGxheSkKK3sKKyAgICBpbml0aWFsaXplKGRpc3BsYXkpOwor
ICAgIFBsYXRmb3JtRGlzcGxheTo6c2V0U2hhcmVkRGlzcGxheUZvckNvbXBvc2l0aW5nKCp0aGlz
KTsKK30KKwordm9pZCBXYXlsYW5kQ29tcG9zaXRvckRpc3BsYXk6OnJlZ2lzdHJ5R2xvYmFsKGNv
bnN0IGNoYXIqIGludGVyZmFjZSwgdWludDMyX3QgbmFtZSkKK3sKKyAgICBQbGF0Zm9ybURpc3Bs
YXlXYXlsYW5kOjpyZWdpc3RyeUdsb2JhbChpbnRlcmZhY2UsIG5hbWUpOworICAgIGlmICghc3Rk
OjpzdHJjbXAoaW50ZXJmYWNlLCAid2xfd2Via2l0Z3RrIikpCisgICAgICAgIG1fd2Via2l0Z3Rr
LnJlc2V0KHN0YXRpY19jYXN0PHN0cnVjdCB3bF9wcm94eSo+KHdsX3JlZ2lzdHJ5X2JpbmQobV9y
ZWdpc3RyeS5nZXQoKSwgbmFtZSwgJndsX3dlYmtpdGd0a19pbnRlcmZhY2UsIDEpKSk7Cit9CisK
K30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gUExBVEZPUk0oV0FZTEFORCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvZ3RrL1dheWxhbmRDb21wb3NpdG9y
RGlzcGxheS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9ndGsvV2F5bGFuZENvbXBvc2l0
b3JEaXNwbGF5LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjBlMmY2YjczMjFkMDM3NGZiYWM0YThkMGJmNDkzMzA4
N2MyNzliYwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvZ3Rr
L1dheWxhbmRDb21wb3NpdG9yRGlzcGxheS5oCkBAIC0wLDAgKzEsNTQgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTcgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
CisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBQTEFURk9STShXQVlMQU5EKQorCisj
aW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9ybURpc3BsYXlXYXlsYW5kLmg+CisjaW5jbHVkZSA8V2Vi
Q29yZS9XbFVuaXF1ZVB0ci5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCitu
YW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2ViUGFnZTsKKworY2xhc3MgV2F5bGFuZENvbXBv
c2l0b3JEaXNwbGF5IGZpbmFsIDogcHVibGljIFdlYkNvcmU6OlBsYXRmb3JtRGlzcGxheVdheWxh
bmQgeworICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFdheWxhbmRDb21wb3NpdG9yRGlzcGxheSk7
CitwdWJsaWM6CisgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxXYXlsYW5kQ29tcG9zaXRvckRp
c3BsYXk+IGNyZWF0ZShjb25zdCBTdHJpbmcmKTsKKyAgICB+V2F5bGFuZENvbXBvc2l0b3JEaXNw
bGF5KCkgPSBkZWZhdWx0OworICAgIHZvaWQgYmluZFN1cmZhY2VUb1BhZ2Uoc3RydWN0IHdsX3N1
cmZhY2UqLCBXZWJQYWdlJik7CisKK3ByaXZhdGU6CisgICAgV2F5bGFuZENvbXBvc2l0b3JEaXNw
bGF5KHN0cnVjdCB3bF9kaXNwbGF5Kik7CisgICAgdm9pZCByZWdpc3RyeUdsb2JhbChjb25zdCBj
aGFyKiwgdWludDMyX3QpIG92ZXJyaWRlOworCisgICAgV2ViQ29yZTo6V2xVbmlxdWVQdHI8c3Ry
dWN0IHdsX3Byb3h5PiBtX3dlYmtpdGd0azsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAor
CisjZW5kaWYgLy8gUExBVEZPUk0oV0FZTEFORCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3Mvc291cC9XZWJQcm9jZXNzU291cC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL3NvdXAvV2ViUHJvY2Vzc1NvdXAuY3BwCmluZGV4IGM4NTRjZDczMWM5ZmRlODk2Mjk5
MWU3NmFjODEwY2ZmMTAyZjg0OWQuLjA3MTA0YmUzYTM5ZmM1NTZhYjcxNDJlM2M3YmZmNDA0Mjk1
OGMwNjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mvc291cC9XZWJQcm9j
ZXNzU291cC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9zb3VwL1dlYlByb2Nl
c3NTb3VwLmNwcApAQCAtMzIsNiArMzIsMTAgQEAKICNpbmNsdWRlIDxXZWJDb3JlL05ldHdvcmtT
dG9yYWdlU2Vzc2lvbi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU291cE5ldHdvcmtTZXNzaW9uLmg+
CiAKKyNpZiBQTEFURk9STShXQVlMQU5EKQorI2luY2x1ZGUgIldheWxhbmRDb21wb3NpdG9yRGlz
cGxheS5oIgorI2VuZGlmCisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiB2b2lkIFdlYlByb2Nlc3M6
OnBsYXRmb3JtU2V0Q2FjaGVNb2RlbChDYWNoZU1vZGVsIGNhY2hlTW9kZWwpCkBAIC00Myw2ICs0
NywxMCBAQCB2b2lkIFdlYlByb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MoV2Vi
UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYmIHBhcgogewogICAgIGlmIChwYXJhbWV0ZXJzLnBy
b3h5U2V0dGluZ3MubW9kZSAhPSBXZWJDb3JlOjpTb3VwTmV0d29ya1Byb3h5U2V0dGluZ3M6Ok1v
ZGU6OkRlZmF1bHQpCiAgICAgICAgIHNldE5ldHdvcmtQcm94eVNldHRpbmdzKHBhcmFtZXRlcnMu
cHJveHlTZXR0aW5ncyk7CisKKyNpZiBQTEFURk9STShXQVlMQU5EKQorICAgIG1fd2F5bGFuZENv
bXBvc2l0b3JEaXNwbGF5ID0gV2F5bGFuZENvbXBvc2l0b3JEaXNwbGF5OjpjcmVhdGUocGFyYW1l
dGVycy53YXlsYW5kQ29tcG9zaXRvckRpc3BsYXlOYW1lKTsKKyNlbmRpZgogfQogCiB2b2lkIFdl
YlByb2Nlc3M6OnBsYXRmb3JtVGVybWluYXRlKCkK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>313505</attachid>
            <date>2017-06-21 04:01:20 -0700</date>
            <delta_ts>2017-06-21 05:29:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-173598-20170621130118.patch</filename>
            <type>text/plain</type>
            <size>15331</size>
            <attacher name="Miguel Gomez">magomez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE4NjI4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNTMyNTkxYTU5YmZjYjQ3
MjA1MDQwZTY4N2E1NGY2Zjk5MzY3MDJhZS4uOWMxZmEyYjAyZDk5N2QwYWU0YWIxMTIzZmI0NGUw
OGRmMjMwYjM1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDE3LTA2LTIxICBNaWd1
ZWwgR29tZXogIDxtYWdvbWV6QGlnYWxpYS5jb20+CisKKyAgICAgICAgW0dUS11bV0FZTEFORF0g
Q3JlYXRlIFdheWxhbmRDb21wb3NpdG9yRGlzcGxheSB1bmNvbmRpdGlvbmFsbHkgd2hlbiBpbml0
aWFsaXppbmcgdGhlIFdlYlByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE3MzU5OAorCisgICAgICAgIFJldmlld2VkIGJ5IENhcmxvcyBHYXJj
aWEgQ2FtcG9zLgorCisgICAgICAgIE1vdmUgV2F5bGFuZENvbXBvc2l0b3JEaXNwbGF5IGNvZGUg
dG8gaXRzIG93biBmaWxlcyBzbyBpdCBjYW4gYmUgdXNlZCBmcm9tIG90aGVyIGNsYXNzZXMuIFRo
ZW4sIGluc3RlYWQgb2YKKyAgICAgICAgc3RvcmluZyB0aGUgd2F5bGFuZENvbXBvc2l0b3JEaXNw
bGF5TmFtZSBpbiB0aGUgV2ViUHJvY2Vzcywga2VlcCBhIFdheWxhbmRDb21wb3NpdG9yRGlzcGxh
eSBpbnN0YW5jZSB0aGF0CisgICAgICAgIGlzIGNyZWF0ZWQgZHVyaW5nIHRoZSBpbml0aWFsaXph
dGlvbi4gVGhpcyB3YXkgdGhlIGFwcHJvcHJpYXRlIHNoYXJlZERpc3BsYXlGb3JDb21wb3NpdGlu
ZyB3aWxsIGJlIHNldAorICAgICAgICBzaW5jZSB0aGUgY3JlYXRpb24gb2YgdGhlIFdlYlByb2Nl
c3MuCisKKyAgICAgICAgKiBQbGF0Zm9ybUdUSy5jbWFrZToKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1dlYlBhZ2UvZ3RrL0FjY2VsZXJhdGVkU3VyZmFjZVdheWxhbmQuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpBY2NlbGVyYXRlZFN1cmZhY2VXYXlsYW5kOjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0
OjpBY2NlbGVyYXRlZFN1cmZhY2VXYXlsYW5kOjpBY2NlbGVyYXRlZFN1cmZhY2VXYXlsYW5kKToK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQcm9jZXNzOjppbml0aWFsaXplV2ViUHJvY2Vzcyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9X
ZWJQcm9jZXNzLmg6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OndheWxhbmRDb21wb3Np
dG9yRGlzcGxheSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9ndGsvV2F5bGFuZENvbXBvc2l0b3JE
aXNwbGF5LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OldheWxhbmRDb21wb3NpdG9yRGlz
cGxheTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6V2F5bGFuZENvbXBvc2l0b3JEaXNwbGF5
OjpiaW5kU3VyZmFjZVRvUGFnZSk6CisgICAgICAgIChXZWJLaXQ6OldheWxhbmRDb21wb3NpdG9y
RGlzcGxheTo6V2F5bGFuZENvbXBvc2l0b3JEaXNwbGF5KToKKyAgICAgICAgKFdlYktpdDo6V2F5
bGFuZENvbXBvc2l0b3JEaXNwbGF5OjpyZWdpc3RyeUdsb2JhbCk6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9ndGsvV2F5bGFuZENvbXBvc2l0b3JEaXNwbGF5Lmg6IEFkZGVkLgorICAgICAgICAqIFdl
YlByb2Nlc3Mvc291cC9XZWJQcm9jZXNzU291cC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBy
b2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MpOgorCiAyMDE3LTA2LTIxICBDYXJs
b3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXSBN
b3ZlIFdlYkd0a0V4dGVuc2lvbk1hbmFnZXIgYW5kIFdlYkd0a0luamVjdGVkQnVuZGxlTWFpbiB0
byBnbGliIEFQSSBkaXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtR1RLLmNt
YWtlIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm1HVEsuY21ha2UKaW5kZXggMjIxNWYzZjVjNjAy
MDYzOGM1YTMyMDYxNDIzZWQ2OWM3YTY3Y2Q5OC4uZDg5NjJkZWFkYzI5MTc5M2ViNTkwOGExNGNh
MDkyNjVlNDRiNjJiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm1HVEsuY21h
a2UKKysrIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm1HVEsuY21ha2UKQEAgLTM5Nyw2ICszOTcs
NyBAQCBsaXN0KEFQUEVORCBXZWJLaXQyX1NPVVJDRVMKICAgICBXZWJQcm9jZXNzL1dlYlBhZ2Uv
Z3RrL1dlYlBhZ2VHdGsuY3BwCiAgICAgV2ViUHJvY2Vzcy9XZWJQYWdlL2d0ay9XZWJQcmludE9w
ZXJhdGlvbkd0ay5jcHAKIAorICAgIFdlYlByb2Nlc3MvZ3RrL1dheWxhbmRDb21wb3NpdG9yRGlz
cGxheS5jcHAKICAgICBXZWJQcm9jZXNzL2d0ay9XZWJQcm9jZXNzTWFpbkd0ay5jcHAKIAogICAg
IFdlYlByb2Nlc3Mvc291cC9XZWJLaXRTb3VwUmVxdWVzdElucHV0U3RyZWFtLmNwcApAQCAtNzk1
LDYgKzc5Niw3IEBAIGxpc3QoQVBQRU5EIFdlYktpdDJfSU5DTFVERV9ESVJFQ1RPUklFUwogICAg
ICIke1dFQktJVDJfRElSfS9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NIgog
ICAgICIke1dFQktJVDJfRElSfS9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvdW5peCIKICAg
ICAiJHtXRUJLSVQyX0RJUn0vV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL3gxMSIKKyAgICAi
JHtXRUJLSVQyX0RJUn0vV2ViUHJvY2Vzcy9ndGsiCiAgICAgIiR7V0VCS0lUMl9ESVJ9L1dlYlBy
b2Nlc3Mvc291cCIKICAgICAiJHtXRUJLSVQyX0RJUn0vV2ViUHJvY2Vzcy91bml4IgogICAgICIk
e1dFQktJVDJfRElSfS9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L2d0ayIKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9ndGsvQWNjZWxlcmF0ZWRTdXJmYWNl
V2F5bGFuZC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvZ3RrL0FjY2Vs
ZXJhdGVkU3VyZmFjZVdheWxhbmQuY3BwCmluZGV4IDNjZjUyOGFlYThkNWVhNzVkMzQ3MjVkMWVk
ZmZmYThmMzY2NTRmMzMuLmM3MzMyYjY0MjQxNDc1ZjNjZWNhMDE4YWYwYTQyYzkyYzRhY2FlNGIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9ndGsvQWNjZWxl
cmF0ZWRTdXJmYWNlV2F5bGFuZC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL2d0ay9BY2NlbGVyYXRlZFN1cmZhY2VXYXlsYW5kLmNwcApAQCAtMjgsNzQgKzI4LDI1
IEBACiAKICNpZiBQTEFURk9STShXQVlMQU5EKQogCi0jaW5jbHVkZSAiV2ViS2l0MldheWxhbmRD
bGllbnRQcm90b2NvbC5oIgorI2luY2x1ZGUgIldheWxhbmRDb21wb3NpdG9yRGlzcGxheS5oIgog
I2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKLSNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtRGlzcGxh
eVdheWxhbmQuaD4KLSNpbmNsdWRlIDxjc3RyaW5nPgogI2luY2x1ZGUgPHdheWxhbmQtZWdsLmg+
Ci0jaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJD
b3JlOwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotY2xhc3MgV2F5bGFuZENvbXBvc2l0b3JEaXNw
bGF5IGZpbmFsIDogcHVibGljIFBsYXRmb3JtRGlzcGxheVdheWxhbmQgewotICAgIFdURl9NQUtF
X05PTkNPUFlBQkxFKFdheWxhbmRDb21wb3NpdG9yRGlzcGxheSk7Ci1wdWJsaWM6Ci0gICAgc3Rh
dGljIHN0ZDo6dW5pcXVlX3B0cjxXYXlsYW5kQ29tcG9zaXRvckRpc3BsYXk+IGNyZWF0ZSgpCi0g
ICAgewotICAgICAgICBzdHJ1Y3Qgd2xfZGlzcGxheSogZGlzcGxheSA9IHdsX2Rpc3BsYXlfY29u
bmVjdChXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53YXlsYW5kQ29tcG9zaXRvckRpc3BsYXlOYW1l
KCkudXRmOCgpLmRhdGEoKSk7Ci0gICAgICAgIGlmICghZGlzcGxheSkgewotICAgICAgICAgICAg
V1RGTG9nQWx3YXlzKCJQbGF0Zm9ybURpc3BsYXlXYXlsYW5kIGluaXRpYWxpemF0aW9uOiBmYWls
ZWQgdG8gY29ubmVjdCB0byB0aGUgV2F5bGFuZCBkaXNwbGF5OiAlcyIsIFdlYlByb2Nlc3M6OnNp
bmdsZXRvbigpLndheWxhbmRDb21wb3NpdG9yRGlzcGxheU5hbWUoKS51dGY4KCkuZGF0YSgpKTsK
LSAgICAgICAgICAgIHJldHVybiBudWxscHRyOwotICAgICAgICB9Ci0KLSAgICAgICAgcmV0dXJu
IHN0ZDo6dW5pcXVlX3B0cjxXYXlsYW5kQ29tcG9zaXRvckRpc3BsYXk+KG5ldyBXYXlsYW5kQ29t
cG9zaXRvckRpc3BsYXkoZGlzcGxheSkpOwotICAgIH0KLQotICAgIHZvaWQgYmluZFN1cmZhY2VU
b1BhZ2Uoc3RydWN0IHdsX3N1cmZhY2UqIHN1cmZhY2UsIFdlYlBhZ2UmIHBhZ2UpCi0gICAgewot
ICAgICAgICBpZiAoIW1fd2Via2l0Z3RrKQotICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAg
IHdsX3dlYmtpdGd0a19iaW5kX3N1cmZhY2VfdG9fcGFnZShyZWludGVycHJldF9jYXN0PHN0cnVj
dCB3bF93ZWJraXRndGsqPihtX3dlYmtpdGd0ay5nZXQoKSksIHN1cmZhY2UsIHBhZ2UucGFnZUlE
KCkpOwotICAgICAgICB3bF9kaXNwbGF5X3JvdW5kdHJpcChtX2Rpc3BsYXkpOwotICAgIH0KLQot
cHJpdmF0ZToKLSAgICBXYXlsYW5kQ29tcG9zaXRvckRpc3BsYXkoc3RydWN0IHdsX2Rpc3BsYXkq
IGRpc3BsYXkpCi0gICAgewotICAgICAgICBpbml0aWFsaXplKGRpc3BsYXkpOwotICAgICAgICBQ
bGF0Zm9ybURpc3BsYXk6OnNldFNoYXJlZERpc3BsYXlGb3JDb21wb3NpdGluZygqdGhpcyk7Ci0g
ICAgfQotCi0gICAgdm9pZCByZWdpc3RyeUdsb2JhbChjb25zdCBjaGFyKiBpbnRlcmZhY2UsIHVp
bnQzMl90IG5hbWUpIG92ZXJyaWRlCi0gICAgewotICAgICAgICBQbGF0Zm9ybURpc3BsYXlXYXls
YW5kOjpyZWdpc3RyeUdsb2JhbChpbnRlcmZhY2UsIG5hbWUpOwotICAgICAgICBpZiAoIXN0ZDo6
c3RyY21wKGludGVyZmFjZSwgIndsX3dlYmtpdGd0ayIpKQotICAgICAgICAgICAgbV93ZWJraXRn
dGsucmVzZXQoc3RhdGljX2Nhc3Q8c3RydWN0IHdsX3Byb3h5Kj4od2xfcmVnaXN0cnlfYmluZCht
X3JlZ2lzdHJ5LmdldCgpLCBuYW1lLCAmd2xfd2Via2l0Z3RrX2ludGVyZmFjZSwgMSkpKTsKLSAg
ICB9Ci0KLSAgICBXbFVuaXF1ZVB0cjxzdHJ1Y3Qgd2xfcHJveHk+IG1fd2Via2l0Z3RrOwotfTsK
LQotc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxXYXlsYW5kQ29tcG9zaXRvckRpc3BsYXk+JiB3YXls
YW5kQ29tcG9zaXRvckRpc3BsYXkoKQotewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxzdGQ6
OnVuaXF1ZV9wdHI8V2F5bGFuZENvbXBvc2l0b3JEaXNwbGF5Pj4gd2F5bGFuZERpc3BsYXkoV2F5
bGFuZENvbXBvc2l0b3JEaXNwbGF5OjpjcmVhdGUoKSk7Ci0gICAgcmV0dXJuIHdheWxhbmREaXNw
bGF5OwotfQotCiBzdGQ6OnVuaXF1ZV9wdHI8QWNjZWxlcmF0ZWRTdXJmYWNlV2F5bGFuZD4gQWNj
ZWxlcmF0ZWRTdXJmYWNlV2F5bGFuZDo6Y3JlYXRlKFdlYlBhZ2UmIHdlYlBhZ2UsIENsaWVudCYg
Y2xpZW50KQogewotICAgIHJldHVybiB3YXlsYW5kQ29tcG9zaXRvckRpc3BsYXkoKSA/IHN0ZDo6
dW5pcXVlX3B0cjxBY2NlbGVyYXRlZFN1cmZhY2VXYXlsYW5kPihuZXcgQWNjZWxlcmF0ZWRTdXJm
YWNlV2F5bGFuZCh3ZWJQYWdlLCBjbGllbnQpKSA6IG51bGxwdHI7CisgICAgcmV0dXJuIFdlYlBy
b2Nlc3M6OnNpbmdsZXRvbigpLndheWxhbmRDb21wb3NpdG9yRGlzcGxheSgpID8gc3RkOjp1bmlx
dWVfcHRyPEFjY2VsZXJhdGVkU3VyZmFjZVdheWxhbmQ+KG5ldyBBY2NlbGVyYXRlZFN1cmZhY2VX
YXlsYW5kKHdlYlBhZ2UsIGNsaWVudCkpIDogbnVsbHB0cjsKIH0KIAogQWNjZWxlcmF0ZWRTdXJm
YWNlV2F5bGFuZDo6QWNjZWxlcmF0ZWRTdXJmYWNlV2F5bGFuZChXZWJQYWdlJiB3ZWJQYWdlLCBD
bGllbnQmIGNsaWVudCkKICAgICA6IEFjY2VsZXJhdGVkU3VyZmFjZSh3ZWJQYWdlLCBjbGllbnQp
Ci0gICAgLCBtX3N1cmZhY2Uod2F5bGFuZENvbXBvc2l0b3JEaXNwbGF5KCktPmNyZWF0ZVN1cmZh
Y2UoKSkKKyAgICAsIG1fc3VyZmFjZShXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53YXlsYW5kQ29t
cG9zaXRvckRpc3BsYXkoKS0+Y3JlYXRlU3VyZmFjZSgpKQogICAgICwgbV93aW5kb3cod2xfZWds
X3dpbmRvd19jcmVhdGUobV9zdXJmYWNlLmdldCgpLCBzdGQ6Om1heCgxLCBtX3NpemUud2lkdGgo
KSksIHN0ZDo6bWF4KDEsIG1fc2l6ZS5oZWlnaHQoKSkpKQogewotICAgIHdheWxhbmRDb21wb3Np
dG9yRGlzcGxheSgpLT5iaW5kU3VyZmFjZVRvUGFnZShtX3N1cmZhY2UuZ2V0KCksIG1fd2ViUGFn
ZSk7CisgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkud2F5bGFuZENvbXBvc2l0b3JEaXNwbGF5
KCktPmJpbmRTdXJmYWNlVG9QYWdlKG1fc3VyZmFjZS5nZXQoKSwgbV93ZWJQYWdlKTsKIH0KIAog
QWNjZWxlcmF0ZWRTdXJmYWNlV2F5bGFuZDo6fkFjY2VsZXJhdGVkU3VyZmFjZVdheWxhbmQoKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKaW5kZXggMDM1OWQyM2EzZTI3
MGIzODljMzU5NjdmNWY3YzNkNjMyNmVkNTVjYi4uNDU3NTM1NGU5NzgyYzNhMzdkNzBmNGMxNzI1
ZDQzMjI4NzM2NzZjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
cm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3Bw
CkBAIC0xMTUsNiArMTE1LDEwIEBACiAjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KICNpbmNsdWRl
IDx3dGYvdGV4dC9TdHJpbmdIYXNoLmg+CiAKKyNpZiBQTEFURk9STShXQVlMQU5EKQorI2luY2x1
ZGUgIldheWxhbmRDb21wb3NpdG9yRGlzcGxheS5oIgorI2VuZGlmCisKICNpZiBQTEFURk9STShD
T0NPQSkKICNpbmNsdWRlICJDb29raWVTdG9yYWdlU2hpbS5oIgogI2luY2x1ZGUgIk9iakNPYmpl
Y3RHcmFwaC5oIgpAQCAtMzEzLDEwICszMTcsNiBAQCB2b2lkIFdlYlByb2Nlc3M6OmluaXRpYWxp
emVXZWJQcm9jZXNzKFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmJiBwYXJhbWV0ZXJzKQog
ICAgIG1fYXBwbGljYXRpb25DYWNoZVN0b3JhZ2UtPnNldERlZmF1bHRPcmlnaW5RdW90YSgyNVVM
TCAqIDEwMjQgKiAxMDI0KTsKICNlbmRpZgogCi0jaWYgUExBVEZPUk0oV0FZTEFORCkKLSAgICBt
X3dheWxhbmRDb21wb3NpdG9yRGlzcGxheU5hbWUgPSBwYXJhbWV0ZXJzLndheWxhbmRDb21wb3Np
dG9yRGlzcGxheU5hbWU7Ci0jZW5kaWYKLQogI2lmIEVOQUJMRShWSURFTykKICAgICBpZiAoIXBh
cmFtZXRlcnMubWVkaWFDYWNoZURpcmVjdG9yeS5pc0VtcHR5KCkpCiAgICAgICAgIFdlYkNvcmU6
OkhUTUxNZWRpYUVsZW1lbnQ6OnNldE1lZGlhQ2FjaGVEaXJlY3RvcnkocGFyYW1ldGVycy5tZWRp
YUNhY2hlRGlyZWN0b3J5KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKaW5k
ZXggYWJmMDgwNDAyNDA3ZjY2ODcwMzBhZjg2Mzg3YTIzMGZiMjhjMjczNC4uYzQ2NTZlMWI1OTlk
MGFkZjZlOTlkNzMwYzc4MTE2ZDQwYzQ5MzVhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQcm9jZXNzLmgKQEAgLTc5LDYgKzc5LDcgQEAgY2xhc3MgTGliV2ViUlRDTmV0d29yazsKIGNs
YXNzIE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbjsKIGNsYXNzIE9iakNPYmplY3RHcmFwaDsKIGNs
YXNzIFVzZXJEYXRhOworY2xhc3MgV2F5bGFuZENvbXBvc2l0b3JEaXNwbGF5OwogY2xhc3MgV2Vi
QXV0b21hdGlvblNlc3Npb25Qcm94eTsKIGNsYXNzIFdlYkNvbm5lY3Rpb25Ub1VJUHJvY2VzczsK
IGNsYXNzIFdlYkZyYW1lOwpAQCAtMjA2LDcgKzIwNyw3IEBAIHB1YmxpYzoKICNlbmRpZgogCiAj
aWYgUExBVEZPUk0oV0FZTEFORCkKLSAgICBTdHJpbmcgd2F5bGFuZENvbXBvc2l0b3JEaXNwbGF5
TmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1fd2F5bGFuZENvbXBvc2l0b3JEaXNwbGF5TmFtZTsgfQor
ICAgIFdheWxhbmRDb21wb3NpdG9yRGlzcGxheSogd2F5bGFuZENvbXBvc2l0b3JEaXNwbGF5KCkg
Y29uc3QgeyByZXR1cm4gbV93YXlsYW5kQ29tcG9zaXRvckRpc3BsYXkuZ2V0KCk7IH0KICNlbmRp
ZgogCiAgICAgUmVmUHRyPEFQSTo6T2JqZWN0PiB0cmFuc2Zvcm1IYW5kbGVzVG9PYmplY3RzKEFQ
STo6T2JqZWN0Kik7CkBAIC00MzAsNyArNDMxLDcgQEAgcHJpdmF0ZToKICAgICBIYXNoTWFwPFdl
YkNvcmU6OlVzZXJHZXN0dXJlVG9rZW4gKiwgdWludDY0X3Q+IG1fdXNlckdlc3R1cmVUb2tlbnM7
CiAKICNpZiBQTEFURk9STShXQVlMQU5EKQotICAgIFN0cmluZyBtX3dheWxhbmRDb21wb3NpdG9y
RGlzcGxheU5hbWU7CisgICAgc3RkOjp1bmlxdWVfcHRyPFdheWxhbmRDb21wb3NpdG9yRGlzcGxh
eT4gbV93YXlsYW5kQ29tcG9zaXRvckRpc3BsYXk7CiAjZW5kaWYKIH07CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvZ3RrL1dheWxhbmRDb21wb3NpdG9yRGlzcGxheS5j
cHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2d0ay9XYXlsYW5kQ29tcG9zaXRvckRpc3Bs
YXkuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjgxMTJlYWRjNTdjNTUwZjE3YTE2Y2QxYWFiNjVkZmE3N2ViZTg2
YTEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2d0ay9XYXls
YW5kQ29tcG9zaXRvckRpc3BsYXkuY3BwCkBAIC0wLDAgKzEsNzYgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTcgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisg
KiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldheWxhbmRDb21wb3Np
dG9yRGlzcGxheS5oIgorCisjaWYgUExBVEZPUk0oV0FZTEFORCkKKworI2luY2x1ZGUgIldlYktp
dDJXYXlsYW5kQ2xpZW50UHJvdG9jb2wuaCIKKyNpbmNsdWRlICJXZWJQYWdlLmgiCisKK3VzaW5n
IG5hbWVzcGFjZSBXZWJDb3JlOworCituYW1lc3BhY2UgV2ViS2l0IHsKKworc3RkOjp1bmlxdWVf
cHRyPFdheWxhbmRDb21wb3NpdG9yRGlzcGxheT4gV2F5bGFuZENvbXBvc2l0b3JEaXNwbGF5Ojpj
cmVhdGUoY29uc3QgU3RyaW5nJiBkaXNwbGF5TmFtZSkKK3sKKyAgICBpZiAoZGlzcGxheU5hbWUu
aXNOdWxsKCkpCisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgc3RydWN0IHdsX2Rpc3Bs
YXkqIGRpc3BsYXkgPSB3bF9kaXNwbGF5X2Nvbm5lY3QoZGlzcGxheU5hbWUudXRmOCgpLmRhdGEo
KSk7CisgICAgaWYgKCFkaXNwbGF5KSB7CisgICAgICAgIFdURkxvZ0Fsd2F5cygiUGxhdGZvcm1E
aXNwbGF5V2F5bGFuZCBpbml0aWFsaXphdGlvbjogZmFpbGVkIHRvIGNvbm5lY3QgdG8gdGhlIFdh
eWxhbmQgZGlzcGxheTogJXMiLCBkaXNwbGF5TmFtZS51dGY4KCkuZGF0YSgpKTsKKyAgICAgICAg
cmV0dXJuIG51bGxwdHI7CisgICAgfQorCisgICAgcmV0dXJuIHN0ZDo6dW5pcXVlX3B0cjxXYXls
YW5kQ29tcG9zaXRvckRpc3BsYXk+KG5ldyBXYXlsYW5kQ29tcG9zaXRvckRpc3BsYXkoZGlzcGxh
eSkpOworfQorCit2b2lkIFdheWxhbmRDb21wb3NpdG9yRGlzcGxheTo6YmluZFN1cmZhY2VUb1Bh
Z2Uoc3RydWN0IHdsX3N1cmZhY2UqIHN1cmZhY2UsIFdlYlBhZ2UmIHBhZ2UpCit7CisgICAgaWYg
KCFtX3dlYmtpdGd0aykKKyAgICAgICAgcmV0dXJuOworCisgICAgd2xfd2Via2l0Z3RrX2JpbmRf
c3VyZmFjZV90b19wYWdlKHJlaW50ZXJwcmV0X2Nhc3Q8c3RydWN0IHdsX3dlYmtpdGd0ayo+KG1f
d2Via2l0Z3RrLmdldCgpKSwgc3VyZmFjZSwgcGFnZS5wYWdlSUQoKSk7CisgICAgd2xfZGlzcGxh
eV9yb3VuZHRyaXAobV9kaXNwbGF5KTsKK30KKworV2F5bGFuZENvbXBvc2l0b3JEaXNwbGF5OjpX
YXlsYW5kQ29tcG9zaXRvckRpc3BsYXkoc3RydWN0IHdsX2Rpc3BsYXkqIGRpc3BsYXkpCit7Cisg
ICAgaW5pdGlhbGl6ZShkaXNwbGF5KTsKKyAgICBQbGF0Zm9ybURpc3BsYXk6OnNldFNoYXJlZERp
c3BsYXlGb3JDb21wb3NpdGluZygqdGhpcyk7Cit9CisKK3ZvaWQgV2F5bGFuZENvbXBvc2l0b3JE
aXNwbGF5OjpyZWdpc3RyeUdsb2JhbChjb25zdCBjaGFyKiBpbnRlcmZhY2UsIHVpbnQzMl90IG5h
bWUpCit7CisgICAgUGxhdGZvcm1EaXNwbGF5V2F5bGFuZDo6cmVnaXN0cnlHbG9iYWwoaW50ZXJm
YWNlLCBuYW1lKTsKKyAgICBpZiAoIXN0ZDo6c3RyY21wKGludGVyZmFjZSwgIndsX3dlYmtpdGd0
ayIpKQorICAgICAgICBtX3dlYmtpdGd0ay5yZXNldChzdGF0aWNfY2FzdDxzdHJ1Y3Qgd2xfcHJv
eHkqPih3bF9yZWdpc3RyeV9iaW5kKG1fcmVnaXN0cnkuZ2V0KCksIG5hbWUsICZ3bF93ZWJraXRn
dGtfaW50ZXJmYWNlLCAxKSkpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlm
IC8vIFBMQVRGT1JNKFdBWUxBTkQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL2d0ay9XYXlsYW5kQ29tcG9zaXRvckRpc3BsYXkuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvZ3RrL1dheWxhbmRDb21wb3NpdG9yRGlzcGxheS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjYwZTJmNmI3
MzIxZDAzNzRmYmFjNGE4ZDBiZjQ5MzMwODdjMjc5YmMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2d0ay9XYXlsYW5kQ29tcG9zaXRvckRpc3BsYXkuaApAQCAt
MCwwICsxLDU0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IElnYWxpYSBTLkwuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMg
SVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisj
aWYgUExBVEZPUk0oV0FZTEFORCkKKworI2luY2x1ZGUgPFdlYkNvcmUvUGxhdGZvcm1EaXNwbGF5
V2F5bGFuZC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvV2xVbmlxdWVQdHIuaD4KKyNpbmNsdWRlIDx3
dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYlBh
Z2U7CisKK2NsYXNzIFdheWxhbmRDb21wb3NpdG9yRGlzcGxheSBmaW5hbCA6IHB1YmxpYyBXZWJD
b3JlOjpQbGF0Zm9ybURpc3BsYXlXYXlsYW5kIHsKKyAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShX
YXlsYW5kQ29tcG9zaXRvckRpc3BsYXkpOworcHVibGljOgorICAgIHN0YXRpYyBzdGQ6OnVuaXF1
ZV9wdHI8V2F5bGFuZENvbXBvc2l0b3JEaXNwbGF5PiBjcmVhdGUoY29uc3QgU3RyaW5nJik7Cisg
ICAgfldheWxhbmRDb21wb3NpdG9yRGlzcGxheSgpID0gZGVmYXVsdDsKKyAgICB2b2lkIGJpbmRT
dXJmYWNlVG9QYWdlKHN0cnVjdCB3bF9zdXJmYWNlKiwgV2ViUGFnZSYpOworCitwcml2YXRlOgor
ICAgIFdheWxhbmRDb21wb3NpdG9yRGlzcGxheShzdHJ1Y3Qgd2xfZGlzcGxheSopOworICAgIHZv
aWQgcmVnaXN0cnlHbG9iYWwoY29uc3QgY2hhciosIHVpbnQzMl90KSBvdmVycmlkZTsKKworICAg
IFdlYkNvcmU6OldsVW5pcXVlUHRyPHN0cnVjdCB3bF9wcm94eT4gbV93ZWJraXRndGs7Cit9Owor
Cit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIFBMQVRGT1JNKFdBWUxBTkQpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL3NvdXAvV2ViUHJvY2Vzc1NvdXAu
Y3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9zb3VwL1dlYlByb2Nlc3NTb3VwLmNwcApp
bmRleCBjODU0Y2Q3MzFjOWZkZTg5NjI5OTFlNzZhYzgxMGNmZjEwMmY4NDlkLi4wNzEwNGJlM2Ez
OWZjNTU2YWI3MTQyZTNjN2JmZjQwNDI5NThjMDYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL3NvdXAvV2ViUHJvY2Vzc1NvdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3Mvc291cC9XZWJQcm9jZXNzU291cC5jcHAKQEAgLTMyLDYgKzMyLDEwIEBACiAj
aW5jbHVkZSA8V2ViQ29yZS9OZXR3b3JrU3RvcmFnZVNlc3Npb24uaD4KICNpbmNsdWRlIDxXZWJD
b3JlL1NvdXBOZXR3b3JrU2Vzc2lvbi5oPgogCisjaWYgUExBVEZPUk0oV0FZTEFORCkKKyNpbmNs
dWRlICJXYXlsYW5kQ29tcG9zaXRvckRpc3BsYXkuaCIKKyNlbmRpZgorCiBuYW1lc3BhY2UgV2Vi
S2l0IHsKIAogdm9pZCBXZWJQcm9jZXNzOjpwbGF0Zm9ybVNldENhY2hlTW9kZWwoQ2FjaGVNb2Rl
bCBjYWNoZU1vZGVsKQpAQCAtNDMsNiArNDcsMTAgQEAgdm9pZCBXZWJQcm9jZXNzOjpwbGF0Zm9y
bUluaXRpYWxpemVXZWJQcm9jZXNzKFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmJiBwYXIK
IHsKICAgICBpZiAocGFyYW1ldGVycy5wcm94eVNldHRpbmdzLm1vZGUgIT0gV2ViQ29yZTo6U291
cE5ldHdvcmtQcm94eVNldHRpbmdzOjpNb2RlOjpEZWZhdWx0KQogICAgICAgICBzZXROZXR3b3Jr
UHJveHlTZXR0aW5ncyhwYXJhbWV0ZXJzLnByb3h5U2V0dGluZ3MpOworCisjaWYgUExBVEZPUk0o
V0FZTEFORCkKKyAgICBtX3dheWxhbmRDb21wb3NpdG9yRGlzcGxheSA9IFdheWxhbmRDb21wb3Np
dG9yRGlzcGxheTo6Y3JlYXRlKHBhcmFtZXRlcnMud2F5bGFuZENvbXBvc2l0b3JEaXNwbGF5TmFt
ZSk7CisjZW5kaWYKIH0KIAogdm9pZCBXZWJQcm9jZXNzOjpwbGF0Zm9ybVRlcm1pbmF0ZSgpCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>