<?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>129853</bug_id>
          
          <creation_ts>2014-03-06 17:37:42 -0800</creation_ts>
          <short_desc>Move to using std::unique_ptr for EFL objects.</short_desc>
          <delta_ts>2014-03-20 21:15:00 -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>WebKit EFL</component>
          <version>528+ (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>
          <dependson>129676</dependson>
          <blocked>128007</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Hyowon Kim">hw1008.kim</reporter>
          <assigned_to name="Hyowon Kim">hw1008.kim</assigned_to>
          <cc>benjamin</cc>
    
    <cc>bunhere</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>lucas.de.marchi</cc>
    
    <cc>rakuco</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sergio</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>987966</commentid>
    <comment_count>0</comment_count>
    <who name="Hyowon Kim">hw1008.kim</who>
    <bug_when>2014-03-06 17:37:42 -0800</bug_when>
    <thetext>EFL objects are still using OwnedPtr.
See OwnPtrCommon.h and OwnPtrEfl.cpp.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>992093</commentid>
    <comment_count>1</comment_count>
      <attachid>227179</attachid>
    <who name="Hyowon Kim">hw1008.kim</who>
    <bug_when>2014-03-19 06:52:53 -0700</bug_when>
    <thetext>Created attachment 227179
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>992103</commentid>
    <comment_count>2</comment_count>
      <attachid>227179</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2014-03-19 07:44:23 -0700</bug_when>
    <thetext>Comment on attachment 227179
Patch

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

&gt; Source/WTF/wtf/efl/UniquePtrEfl.h:35
&gt; +    void operator()(T* ptr) const { ASSERT_NOT_REACHED(); }

I think  you can mark this = delete; instead to get a compile error instead of a runtime error.

&gt; Source/WebCore/platform/graphics/efl/EvasGLContext.h:44
&gt; +        return std::unique_ptr&lt;EvasGLContext&gt;(new EvasGLContext(evasGL, context));

This can use std::make_unique.

&gt; Source/WebCore/platform/graphics/efl/EvasGLSurface.h:53
&gt; +        return std::unique_ptr&lt;EvasGLSurface&gt;(new EvasGLSurface(evasGL, surface));

std::make_unique.

&gt; Tools/DumpRenderTree/efl/DumpRenderTree.cpp:474
&gt; +    ecoreEvas.reset();

= nullptr;

&gt; Tools/ImageDiff/efl/ImageDiff.cpp:363
&gt; +    gEcoreEvas.reset(); // Make sure ecore_evas_free is called before the EFL are shut down

= nullptr.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>992122</commentid>
    <comment_count>3</comment_count>
      <attachid>227185</attachid>
    <who name="Hyowon Kim">hw1008.kim</who>
    <bug_when>2014-03-19 08:41:52 -0700</bug_when>
    <thetext>Created attachment 227185
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>992287</commentid>
    <comment_count>4</comment_count>
    <who name="Hyowon Kim">hw1008.kim</who>
    <bug_when>2014-03-19 15:09:09 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 227179 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=227179&amp;action=review
&gt; 
&gt; &gt; Source/WTF/wtf/efl/UniquePtrEfl.h:35
&gt; &gt; +    void operator()(T* ptr) const { ASSERT_NOT_REACHED(); }
&gt; 
&gt; I think  you can mark this = delete; instead to get a compile error instead of a runtime error.

Done.

&gt; &gt; Source/WebCore/platform/graphics/efl/EvasGLContext.h:44
&gt; &gt; +        return std::unique_ptr&lt;EvasGLContext&gt;(new EvasGLContext(evasGL, context));
&gt; 
&gt; This can use std::make_unique.

Done.

&gt; &gt; Source/WebCore/platform/graphics/efl/EvasGLSurface.h:53
&gt; &gt; +        return std::unique_ptr&lt;EvasGLSurface&gt;(new EvasGLSurface(evasGL, surface));
&gt; 
&gt; std::make_unique.

Done.

&gt; &gt; Tools/DumpRenderTree/efl/DumpRenderTree.cpp:474
&gt; &gt; +    ecoreEvas.reset();
&gt; 
&gt; = nullptr;

Done.
 
&gt; &gt; Tools/ImageDiff/efl/ImageDiff.cpp:363
&gt; &gt; +    gEcoreEvas.reset(); // Make sure ecore_evas_free is called before the EFL are shut down
&gt; 
&gt; = nullptr.

Done.

Thanks for the review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>992288</commentid>
    <comment_count>5</comment_count>
      <attachid>227225</attachid>
    <who name="Hyowon Kim">hw1008.kim</who>
    <bug_when>2014-03-19 15:09:40 -0700</bug_when>
    <thetext>Created attachment 227225
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>992350</commentid>
    <comment_count>6</comment_count>
      <attachid>227225</attachid>
    <who name="Ryuan Choi">ryuan.choi</who>
    <bug_when>2014-03-19 18:29:57 -0700</bug_when>
    <thetext>Comment on attachment 227225
Patch

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

thanks.
I commented little for EFL side.

&gt; Source/WebCore/platform/graphics/Icon.h:41
&gt; +#elif PLATFORM(EFL)
&gt; +typedef struct _Evas_Object Evas_Object;

Pleased add like below for EFL 1.8 and latest versions.

#if USE(EO)
typedef struct _Eo_Opaque Evas_Object;
#else
typedef struct _Evas_Object Evas_Object;
#endif

&gt; Source/WebKit/efl/WebCoreSupport/BatteryClientEfl.h:32
&gt; +typedef struct _Evas_Object Evas_Object;

Let&apos;s just include &lt;Evas.h&gt; here.

&gt; Source/WebKit/efl/WebCoreSupport/DumpRenderTreeSupportEfl.h:38
&gt; +typedef struct _Evas_Object Evas_Object;

Let&apos;s just include &lt;Evas.h&gt; here.

&gt; Source/WebKit/efl/WebCoreSupport/EditorClientEfl.h:45
&gt; +typedef struct _Evas_Object Evas_Object;

Let&apos;s just include &lt;Evas.h&gt; here.

&gt; Source/WebKit/efl/WebCoreSupport/FrameNetworkingContextEfl.h:34
&gt; +typedef struct _Evas_Object Evas_Object;

Let&apos;s just include &lt;Evas.h&gt; here.

&gt; Source/WebKit/efl/WebCoreSupport/NavigatorContentUtilsClientEfl.h:36
&gt; +typedef struct _Evas_Object Evas_Object;

Let&apos;s just include &lt;Evas.h&gt; here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>992400</commentid>
    <comment_count>7</comment_count>
    <who name="Hyowon Kim">hw1008.kim</who>
    <bug_when>2014-03-19 23:19:32 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; (From update of attachment 227225 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=227225&amp;action=review
&gt; 
&gt; thanks.
&gt; I commented little for EFL side.
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/Icon.h:41
&gt; &gt; +#elif PLATFORM(EFL)
&gt; &gt; +typedef struct _Evas_Object Evas_Object;
&gt; 
&gt; Pleased add like below for EFL 1.8 and latest versions.
&gt; 
&gt; #if USE(EO)
&gt; typedef struct _Eo_Opaque Evas_Object;
&gt; #else
&gt; typedef struct _Evas_Object Evas_Object;
&gt; #endif
&gt; 
&gt; &gt; Source/WebKit/efl/WebCoreSupport/BatteryClientEfl.h:32
&gt; &gt; +typedef struct _Evas_Object Evas_Object;
&gt; 
&gt; Let&apos;s just include &lt;Evas.h&gt; here.

I guess the reason you suggest replacing the forward declartion of Evas_Object with the Evas.h inclusion is because the forward declaration of Evas_Object for EFL 1.8 or later version is too long. So it looks not cool. right?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>992428</commentid>
    <comment_count>8</comment_count>
    <who name="Ryuan Choi">ryuan.choi</who>
    <bug_when>2014-03-20 00:43:05 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; (In reply to comment #6)
&gt; &gt; (From update of attachment 227225 [details] [details])
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=227225&amp;action=review
&gt; &gt; 
&gt; &gt; thanks.
&gt; &gt; I commented little for EFL side.
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/platform/graphics/Icon.h:41
&gt; &gt; &gt; +#elif PLATFORM(EFL)
&gt; &gt; &gt; +typedef struct _Evas_Object Evas_Object;
&gt; &gt; 
&gt; &gt; Pleased add like below for EFL 1.8 and latest versions.
&gt; &gt; 
&gt; &gt; #if USE(EO)
&gt; &gt; typedef struct _Eo_Opaque Evas_Object;
&gt; &gt; #else
&gt; &gt; typedef struct _Evas_Object Evas_Object;
&gt; &gt; #endif
&gt; &gt; 
&gt; &gt; &gt; Source/WebKit/efl/WebCoreSupport/BatteryClientEfl.h:32
&gt; &gt; &gt; +typedef struct _Evas_Object Evas_Object;
&gt; &gt; 
&gt; &gt; Let&apos;s just include &lt;Evas.h&gt; here.
&gt; 
&gt; I guess the reason you suggest replacing the forward declartion of Evas_Object with the Evas.h inclusion is because the forward declaration of Evas_Object for EFL 1.8 or later version is too long. So it looks not cool. right?

Yes, because EFL changes declaration since 1.8, we should include Evas.h or use some tricks which I mentioned above.

In fact, I don&apos;t mind among the options.
Just I grepped that some header files in efl/ already include Evas.h instead of declarations.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>992517</commentid>
    <comment_count>9</comment_count>
    <who name="Hyowon Kim">hw1008.kim</who>
    <bug_when>2014-03-20 08:31:17 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; (In reply to comment #7)
&gt; &gt; (In reply to comment #6)
&gt; &gt; &gt; (From update of attachment 227225 [details] [details] [details])
&gt; &gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=227225&amp;action=review
&gt; &gt; &gt; 
&gt; &gt; &gt; thanks.
&gt; &gt; &gt; I commented little for EFL side.
&gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Source/WebCore/platform/graphics/Icon.h:41
&gt; &gt; &gt; &gt; +#elif PLATFORM(EFL)
&gt; &gt; &gt; &gt; +typedef struct _Evas_Object Evas_Object;
&gt; &gt; &gt; 
&gt; &gt; &gt; Pleased add like below for EFL 1.8 and latest versions.
&gt; &gt; &gt; 
&gt; &gt; &gt; #if USE(EO)
&gt; &gt; &gt; typedef struct _Eo_Opaque Evas_Object;
&gt; &gt; &gt; #else
&gt; &gt; &gt; typedef struct _Evas_Object Evas_Object;
&gt; &gt; &gt; #endif
&gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Source/WebKit/efl/WebCoreSupport/BatteryClientEfl.h:32
&gt; &gt; &gt; &gt; +typedef struct _Evas_Object Evas_Object;
&gt; &gt; &gt; 
&gt; &gt; &gt; Let&apos;s just include &lt;Evas.h&gt; here.
&gt; &gt; 
&gt; &gt; I guess the reason you suggest replacing the forward declartion of Evas_Object with the Evas.h inclusion is because the forward declaration of Evas_Object for EFL 1.8 or later version is too long. So it looks not cool. right?
&gt; 
&gt; Yes, because EFL changes declaration since 1.8, we should include Evas.h or use some tricks which I mentioned above.
&gt; 
&gt; In fact, I don&apos;t mind among the options.
&gt; Just I grepped that some header files in efl/ already include Evas.h instead of declarations.

I think we should avoid unnecessary header file inclusion.
So I&apos;ve just modified typedefs on this patch.
But, I&apos;ve also filed a new bug 130511 to clean up messy typedefs.
I will do that work after this bug is closed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>992523</commentid>
    <comment_count>10</comment_count>
      <attachid>227292</attachid>
    <who name="Hyowon Kim">hw1008.kim</who>
    <bug_when>2014-03-20 08:33:33 -0700</bug_when>
    <thetext>Created attachment 227292
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>992792</commentid>
    <comment_count>11</comment_count>
    <who name="Ryuan Choi">ryuan.choi</who>
    <bug_when>2014-03-20 16:29:54 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; Created an attachment (id=227292) [details]
&gt; Patch

Looks fine to me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>992804</commentid>
    <comment_count>12</comment_count>
      <attachid>227292</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2014-03-20 17:02:44 -0700</bug_when>
    <thetext>Comment on attachment 227292
Patch

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

Andersca already set r+ed. Anyway, LGTM. r+ again.

&gt; Source/WTF/wtf/efl/UniquePtrEfl.h:2
&gt; +    Copyright (C) 2014 Samsung Electronics

We prefer to use BSD rather than LGPL. Can&apos;t we use BSD ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>992889</commentid>
    <comment_count>13</comment_count>
    <who name="Ryuan Choi">ryuan.choi</who>
    <bug_when>2014-03-20 21:14:18 -0700</bug_when>
    <thetext>Committed r166039: &lt;http://trac.webkit.org/changeset/166039&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>992892</commentid>
    <comment_count>14</comment_count>
      <attachid>227292</attachid>
    <who name="Ryuan Choi">ryuan.choi</who>
    <bug_when>2014-03-20 21:15:00 -0700</bug_when>
    <thetext>Comment on attachment 227292
Patch

clearing flags.
I landed after fixed boilerplate.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>227179</attachid>
            <date>2014-03-19 06:52:53 -0700</date>
            <delta_ts>2014-03-19 08:39:47 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-129853-20140319225229.patch</filename>
            <type>text/plain</type>
            <size>36060</size>
            <attacher name="Hyowon Kim">hw1008.kim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY1NTI5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGE5YTJlZGZlZGNhMzA2NTMxOGRjNGVl
ZmNiYmMxYWY4OWZlODE1OTIuLjMzODI1YTc4NTc2ZjU0Y2E5YTY1MzEzNTY2ZWRmNmFkOTFiOGNm
ZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjYgQEAKKzIwMTQtMDMtMTkgIEh5b3dvbiBLaW0gIDxodzEwMDgu
a2ltQHNhbXN1bmcuY29tPgorCisgICAgICAgIE1vdmUgdG8gdXNpbmcgc3RkOjp1bmlxdWVfcHRy
IGZvciBFRkwgb2JqZWN0cy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTEyOTg1MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIEVmbFVuaXF1ZVB0ciBpcyBhIHRlbXBsYXRlIGFsaWFzIG9mIHN0ZDo6dW5pcXVl
X3B0cgorICAgICAgICB3aXRoIGEgY3VzdG9tIGRlbGV0ZXIgZm9yIGVhY2ggRWZsIE9iamVjdHMs
IHdoaWNoIGlzIG1vdGl2YXRlZCBieSBHVW5pcXVlUHRyLgorICAgICAgICBUaGlzIHBhdGNoIHJl
cGxhY2VzIHVzZXMgb2YgT3duUHRyIGFuZCBQYXNzT3duUHRyIGZvciBFZmwgb2JqZWN0cyB3aXRo
IEVmbFVuaXF1ZVB0ci4KKworICAgICAgICAqIHd0Zi9Pd25QdHJDb21tb24uaDoKKyAgICAgICAg
KiB3dGYvUGxhdGZvcm1FZmwuY21ha2U6CisgICAgICAgICogd3RmL1J1bkxvb3AuaDoKKyAgICAg
ICAgKiB3dGYvZWZsL01haW5UaHJlYWRFZmwuY3BwOgorICAgICAgICAoV1RGOjpwaXBlT2JqZWN0
KToKKyAgICAgICAgKFdURjo6aW5pdGlhbGl6ZU1haW5UaHJlYWRQbGF0Zm9ybSk6CisgICAgICAg
ICogd3RmL2VmbC9Pd25QdHJFZmwuY3BwOiBSZW1vdmVkLgorICAgICAgICAqIHd0Zi9lZmwvUnVu
TG9vcEVmbC5jcHA6CisgICAgICAgIChXVEY6OlJ1bkxvb3A6OlJ1bkxvb3ApOgorICAgICAgICAq
IHd0Zi9lZmwvVW5pcXVlUHRyRWZsLmg6IEFkZGVkLgorICAgICAgICAoV1RGOjpFZmxQdHJEZWxl
dGVyOjpvcGVyYXRvcigpKToKKwogMjAxNC0wMy0xMiAgUnl1YW4gQ2hvaSAgPHJ5dWFuLmNob2lA
c2Ftc3VuZy5jb20+CiAKICAgICAgICAgW0VGTF0gRW5hYmxlIFBhcmFsbGVsIEdDCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cK
aW5kZXggYjAwNTA5N2Q1ZWY3MDk0NjNhOGIwNDk4MjZhNGVjN2UxYTE5NTM3NS4uYTk1NjMxMDVk
NmY5OTE2N2ZkMGVjZjdiN2Y3YzgzZTg4MDFjN2ZiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3
IEBACisyMDE0LTAzLTE5ICBIeW93b24gS2ltICA8aHcxMDA4LmtpbUBzYW1zdW5nLmNvbT4KKwor
ICAgICAgICBNb3ZlIHRvIHVzaW5nIHN0ZDo6dW5pcXVlX3B0ciBmb3IgRUZMIG9iamVjdHMuCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjk4NTMKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBFZmxVbmlxdWVQ
dHIgaXMgYSB0ZW1wbGF0ZSBhbGlhcyBvZiBzdGQ6OnVuaXF1ZV9wdHIKKyAgICAgICAgd2l0aCBh
IGN1c3RvbSBkZWxldGVyIGZvciBlYWNoIEVmbCBPYmplY3RzLCB3aGljaCBpcyBtb3RpdmF0ZWQg
YnkgR1VuaXF1ZVB0ci4KKyAgICAgICAgVGhpcyBwYXRjaCByZXBsYWNlcyB1c2VzIG9mIE93blB0
ciBhbmQgUGFzc093blB0ciBmb3IgRWZsIG9iamVjdHMgd2l0aCBFZmxVbmlxdWVQdHIuCisKKyAg
ICAgICAgTm8gbmV3IHRlc3RzLiBObyBuZXcgZnVuY3Rpb25hbGl0eS4KKworICAgICAgICAqIHBs
YXRmb3JtL2VmbC9FZmxTY3JlZW5VdGlsaXRpZXMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9lZmwv
UmVuZGVyVGhlbWVFZmwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVFZmw6OlRo
ZW1lUGFydENhY2hlRW50cnk6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVt
ZUVmbDo6bG9hZFRoZW1lKToKKyAgICAgICAgKiBwbGF0Zm9ybS9lZmwvUmVuZGVyVGhlbWVFZmwu
aDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9JY29uLmg6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvZWZsL0V2YXNHTENvbnRleHQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkV2YXNH
TENvbnRleHQ6OmNyZWF0ZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZWZsL0V2YXNH
TFN1cmZhY2UuaDoKKyAgICAgICAgKFdlYkNvcmU6OkV2YXNHTFN1cmZhY2U6OmNyZWF0ZSk6CisK
IDIwMTQtMDMtMTIgIEJyaWFuIEJ1cmcgIDxiYnVyZ0BhcHBsZS5jb20+CiAKICAgICAgICAgV2Vi
IFJlcGxheTogYWRkIGluZnJhc3RydWN0dXJlIGZvciBtZW1vaXppbmcgbm9uZGV0ZXJtaW5pc3Rp
YyBET00gQVBJcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCmluZGV4IDk5ODg2Y2MxYjc0NmRjMjUyODUxNGI0YTMx
ZTA4YTkxMGZjNjlmMzEuLjIwNjYyZGEwYWNmNGQ3MTMyZjhiNDkxYWM1NjRkM2M1MTYyMGM0NjMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
S2l0L2VmbC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOCBAQAorMjAxNC0wMy0xOSAgSHlvd29uIEtp
bSAgPGh3MTAwOC5raW1Ac2Ftc3VuZy5jb20+CisKKyAgICAgICAgTW92ZSB0byB1c2luZyBzdGQ6
OnVuaXF1ZV9wdHIgZm9yIEVGTCBvYmplY3RzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI5ODUzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgRWZsVW5pcXVlUHRyIGlzIGEgdGVtcGxhdGUgYWxpYXMgb2Yg
c3RkOjp1bmlxdWVfcHRyCisgICAgICAgIHdpdGggYSBjdXN0b20gZGVsZXRlciBmb3IgZWFjaCBF
ZmwgT2JqZWN0cywgd2hpY2ggaXMgbW90aXZhdGVkIGJ5IEdVbmlxdWVQdHIuCisgICAgICAgIFRo
aXMgcGF0Y2ggcmVwbGFjZXMgdXNlcyBvZiBPd25QdHIgYW5kIFBhc3NPd25QdHIgZm9yIEVmbCBv
YmplY3RzIHdpdGggRWZsVW5pcXVlUHRyLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvQWNj
ZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHRFZmwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QWNj
ZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHQ6OmluaXRpYWxpemUpOgorICAgICAgICAqIFdlYkNv
cmVTdXBwb3J0L0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0RWZsLmg6CisgICAgICAgICog
V2ViQ29yZVN1cHBvcnQvQmF0dGVyeUNsaWVudEVmbC5oOgorICAgICAgICAqIFdlYkNvcmVTdXBw
b3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbC5oOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0
L0VkaXRvckNsaWVudEVmbC5oOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1lTmV0d29y
a2luZ0NvbnRleHRFZmwuaDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9OYXZpZ2F0b3JDb250
ZW50VXRpbHNDbGllbnRFZmwuaDoKKyAgICAgICAgKiBld2svZXdrX3ZpZXcuY3BwOgorICAgICAg
ICAoX2V3a192aWV3X2VkaXRvcl9jb21tYW5kX3N0cmluZ19nZXQpOgorICAgICAgICAqIHRlc3Rz
L1VuaXRUZXN0VXRpbHMvRVdLVGVzdFZpZXcuY3BwOgorICAgICAgICAoRVdLVW5pdFRlc3RzOjpF
V0tUZXN0Vmlldzo6aW5pdCk6CisgICAgICAgICogdGVzdHMvVW5pdFRlc3RVdGlscy9FV0tUZXN0
Vmlldy5oOgorCiAyMDE0LTAzLTEyICBIeW93b24gS2ltICA8aHcxMDA4LmtpbUBzYW1zdW5nLmNv
bT4KIAogICAgICAgICBbRUZMXSBSZXZpc2UgQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0VmbCBpbXBs
ZW1lbnRhdGlvbi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCBkOTk5ZWEyNjA2N2Q1NGM0OTEyZDRiYTc3OGY2MDBi
MmZlMWU1MjU4Li41ZTI2NGRjNzQ2NWEyY2ZhMjdhNWJjNjU1ZThmMTQ5YWM0ZDQ1OWZlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjYgQEAKKzIwMTQtMDMtMTkgIEh5b3dvbiBLaW0gIDxodzEwMDgu
a2ltQHNhbXN1bmcuY29tPgorCisgICAgICAgIE1vdmUgdG8gdXNpbmcgc3RkOjp1bmlxdWVfcHRy
IGZvciBFRkwgb2JqZWN0cy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTEyOTg1MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIEVmbFVuaXF1ZVB0ciBpcyBhIHRlbXBsYXRlIGFsaWFzIG9mIHN0ZDo6dW5pcXVl
X3B0cgorICAgICAgICB3aXRoIGEgY3VzdG9tIGRlbGV0ZXIgZm9yIGVhY2ggRWZsIE9iamVjdHMs
IHdoaWNoIGlzIG1vdGl2YXRlZCBieSBHVW5pcXVlUHRyLgorICAgICAgICBUaGlzIHBhdGNoIHJl
cGxhY2VzIHVzZXMgb2YgT3duUHRyIGFuZCBQYXNzT3duUHRyIGZvciBFZmwgb2JqZWN0cyB3aXRo
IEVmbFVuaXF1ZVB0ci4KKworICAgICAgICAqIFBsYXRmb3JtL01vZHVsZS5oOgorICAgICAgICAq
IFBsYXRmb3JtL2VmbC9Nb2R1bGVFZmwuY3BwOgorICAgICAgICAoV2ViS2l0OjpNb2R1bGU6Omxv
YWQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL0V3a1ZpZXcuY3BwOgorICAgICAgICAo
RXdrVmlldzo6RXdrVmlldyk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvRXdrVmlldy5o
OgorICAgICAgICAqIFVJUHJvY2Vzcy9lZmwvSW5wdXRNZXRob2RDb250ZXh0RWZsLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6SW5wdXRNZXRob2RDb250ZXh0RWZsOjpJbnB1dE1ldGhvZENvbnRleHRF
ZmwpOgorICAgICAgICAoV2ViS2l0OjpJbnB1dE1ldGhvZENvbnRleHRFZmw6OmNyZWF0ZUlNRkNv
bnRleHQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9lZmwvSW5wdXRNZXRob2RDb250ZXh0RWZsLmg6
CisgICAgICAgIChXZWJLaXQ6OklucHV0TWV0aG9kQ29udGV4dEVmbDo6Y3JlYXRlKToKKwogMjAx
NC0wMy0xMiAgRGVhbiBKYWNrc29uICA8ZGlub0BhcHBsZS5jb20+CiAKICAgICAgICAgW1dlYkdM
XSBXZWJLaXQxICsgV2ViS2l0MiBpT1MgY2xpZW50cyBzaG91bGQgY2hlY2sgbG9hZCBwb2xpY3kK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL093blB0ckNvbW1vbi5oIGIvU291cmNlL1dURi93
dGYvT3duUHRyQ29tbW9uLmgKaW5kZXggYTE5NjIxZTEzYTk2MGEzM2NhZWYwY2E2NTIzYzdjMTI2
NWQ0ZDQ1ZS4uZjJiMDg3NWViNTliMDg3ZGFjN2QzZTMyODEwYjFiOGZjMDAxNzg5ZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dURi93dGYvT3duUHRyQ29tbW9uLmgKKysrIGIvU291cmNlL1dURi93dGYv
T3duUHRyQ29tbW9uLmgKQEAgLTI4LDIwICsyOCw2IEBACiAjaWZuZGVmIFdURl9Pd25QdHJDb21t
b25faAogI2RlZmluZSBXVEZfT3duUHRyQ29tbW9uX2gKIAotI2lmIFBMQVRGT1JNKEVGTCkKLXR5
cGVkZWYgc3RydWN0IF9FY29yZV9FdmFzIEVjb3JlX0V2YXM7Ci10eXBlZGVmIHN0cnVjdCBfRWNv
cmVfSU1GX0NvbnRleHQgRWNvcmVfSU1GX0NvbnRleHQ7Ci10eXBlZGVmIHN0cnVjdCBfRWNvcmVf
UGlwZSBFY29yZV9QaXBlOwotdHlwZWRlZiBzdHJ1Y3QgX0VpbmFfSGFzaCBFaW5hX0hhc2g7Ci10
eXBlZGVmIHN0cnVjdCBfRWluYV9Nb2R1bGUgRWluYV9Nb2R1bGU7Ci0jaWYgVVNFKEVPKQotdHlw
ZWRlZiBzdHJ1Y3QgX0VvX09wYXF1ZSBFdmFzX09iamVjdDsKLSNlbHNlCi10eXBlZGVmIHN0cnVj
dCBfRXZhc19PYmplY3QgRXZhc19PYmplY3Q7Ci0jZW5kaWYKLXR5cGVkZWYgc3RydWN0IF9FdmFz
X0dMIEV2YXNfR0w7Ci0jZW5kaWYKLQogbmFtZXNwYWNlIFdURiB7CiAKICAgICB0ZW1wbGF0ZSA8
dHlwZW5hbWUgVD4gaW5saW5lIHZvaWQgZGVsZXRlT3duZWRQdHIoVCogcHRyKQpAQCAtNTEsMTYg
KzM3LDYgQEAgbmFtZXNwYWNlIFdURiB7CiAgICAgICAgICAgICBkZWxldGUgcHRyOwogICAgIH0K
IAotI2lmIFBMQVRGT1JNKEVGTCkKLSAgICBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBkZWxldGVP
d25lZFB0cihFY29yZV9FdmFzKik7Ci0gICAgV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgZGVsZXRl
T3duZWRQdHIoRWNvcmVfSU1GX0NvbnRleHQqKTsKLSAgICBXVEZfRVhQT1JUX1BSSVZBVEUgdm9p
ZCBkZWxldGVPd25lZFB0cihFY29yZV9QaXBlKik7Ci0gICAgV1RGX0VYUE9SVF9QUklWQVRFIHZv
aWQgZGVsZXRlT3duZWRQdHIoRWluYV9IYXNoKik7Ci0gICAgV1RGX0VYUE9SVF9QUklWQVRFIHZv
aWQgZGVsZXRlT3duZWRQdHIoRWluYV9Nb2R1bGUqKTsKLSAgICBXVEZfRVhQT1JUX1BSSVZBVEUg
dm9pZCBkZWxldGVPd25lZFB0cihFdmFzX09iamVjdCopOwotICAgIFdURl9FWFBPUlRfUFJJVkFU
RSB2b2lkIGRlbGV0ZU93bmVkUHRyKEV2YXNfR0wqKTsKLSNlbmRpZgotCiB9IC8vIG5hbWVzcGFj
ZSBXVEYKIAogI2VuZGlmIC8vIFdURl9Pd25QdHJDb21tb25faApkaWZmIC0tZ2l0IGEvU291cmNl
L1dURi93dGYvUGxhdGZvcm1FZmwuY21ha2UgYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUVmbC5j
bWFrZQppbmRleCBiNGUyMTBhYzNlZGYzZGU1ZmNlYjc1Yjk4MzMzMmFhYmJlYTRkZDFjLi44ZGY3
YzdhZTdlNmI1MjIwMTVkOTIzY2JjMzAxYThiYzNhODlkNjhkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V1RGL3d0Zi9QbGF0Zm9ybUVmbC5jbWFrZQorKysgYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUVm
bC5jbWFrZQpAQCAtMSw2ICsxLDUgQEAKIGxpc3QoQVBQRU5EIFdURl9TT1VSQ0VTCiAgICAgZWZs
L01haW5UaHJlYWRFZmwuY3BwCi0gICAgZWZsL093blB0ckVmbC5jcHAKICAgICBlZmwvUmVmUHRy
RWZsLmNwcAogICAgIGVmbC9SdW5Mb29wRWZsLmNwcAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RG
L3d0Zi9SdW5Mb29wLmggYi9Tb3VyY2UvV1RGL3d0Zi9SdW5Mb29wLmgKaW5kZXggNWVkNmFkMWRl
ODI5MTdkZTRjYWExMTYxYzFiN2I4NDc4YWYxNTVkMC4uZGVmMWI5NDM0NDE4MDFiYWUwNTMxMzNh
NDRjYTdmMDVlNzMyYTI3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvUnVuTG9vcC5oCisr
KyBiL1NvdXJjZS9XVEYvd3RmL1J1bkxvb3AuaApAQCAtNDIsNiArNDIsNyBAQAogCiAjaWYgUExB
VEZPUk0oRUZMKQogI2luY2x1ZGUgPEVjb3JlLmg+CisjaW5jbHVkZSA8d3RmL2VmbC9VbmlxdWVQ
dHJFZmwuaD4KICNlbmRpZgogCiBuYW1lc3BhY2UgV1RGIHsKQEAgLTE1MCw3ICsxNTEsNyBAQCBw
cml2YXRlOgogICAgIGludCBtX25lc3RpbmdMZXZlbDsKICNlbGlmIFBMQVRGT1JNKEVGTCkKICAg
ICBNdXRleCBtX3BpcGVMb2NrOwotICAgIE93blB0cjxFY29yZV9QaXBlPiBtX3BpcGU7CisgICAg
RWZsVW5pcXVlUHRyPEVjb3JlX1BpcGU+IG1fcGlwZTsKIAogICAgIE11dGV4IG1fd2FrZVVwRXZl
bnRSZXF1ZXN0ZWRMb2NrOwogICAgIGJvb2wgbV93YWtlVXBFdmVudFJlcXVlc3RlZDsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XVEYvd3RmL2VmbC9NYWluVGhyZWFkRWZsLmNwcCBiL1NvdXJjZS9XVEYv
d3RmL2VmbC9NYWluVGhyZWFkRWZsLmNwcAppbmRleCA1M2FkY2IyYjFmOWUzNjZiM2M0MTJlOWU4
MWQ0NGI1ODcyNWQyNTMxLi4wZjVjZDdiZmU4YTU5YTZjY2JkMDcxM2FlNjFjOTk0MTk3MmNiYjcw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9lZmwvTWFpblRocmVhZEVmbC5jcHAKKysrIGIv
U291cmNlL1dURi93dGYvZWZsL01haW5UaHJlYWRFZmwuY3BwCkBAIC0zNSwxNSArMzUsMTQgQEAK
ICNpbmNsdWRlICJNYWluVGhyZWFkLmgiCiAKICNpbmNsdWRlIDxFY29yZS5oPgotI2luY2x1ZGUg
PHd0Zi9Pd25QdHIuaD4KLSNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgogI2luY2x1ZGUgPHd0
Zi9TdGRMaWJFeHRyYXMuaD4KKyNpbmNsdWRlIDx3dGYvZWZsL1VuaXF1ZVB0ckVmbC5oPgogCiBu
YW1lc3BhY2UgV1RGIHsKIAotc3RhdGljIE93blB0cjxFY29yZV9QaXBlPiYgcGlwZU9iamVjdCgp
CitzdGF0aWMgRWZsVW5pcXVlUHRyPEVjb3JlX1BpcGU+JiBwaXBlT2JqZWN0KCkKIHsKLSAgICBE
RUZJTkVfU1RBVElDX0xPQ0FMKE93blB0cjxFY29yZV9QaXBlPiwgcGlwZU9iamVjdCwgKCkpOwor
ICAgIERFRklORV9TVEFUSUNfTE9DQUwoRWZsVW5pcXVlUHRyPEVjb3JlX1BpcGU+LCBwaXBlT2Jq
ZWN0LCAoKSk7CiAgICAgcmV0dXJuIHBpcGVPYmplY3Q7CiB9CiAKQEAgLTU0LDcgKzUzLDcgQEAg
c3RhdGljIHZvaWQgbW9uaXRvckRpc3BhdGNoRnVuY3Rpb25zKHZvaWQqLCB2b2lkKiwgdW5zaWdu
ZWQgaW50KQogCiB2b2lkIGluaXRpYWxpemVNYWluVGhyZWFkUGxhdGZvcm0oKQogewotICAgIHBp
cGVPYmplY3QoKSA9IGFkb3B0UHRyKGVjb3JlX3BpcGVfYWRkKG1vbml0b3JEaXNwYXRjaEZ1bmN0
aW9ucywgMCkpOworICAgIHBpcGVPYmplY3QoKSA9IEVmbFVuaXF1ZVB0cjxFY29yZV9QaXBlPihl
Y29yZV9waXBlX2FkZChtb25pdG9yRGlzcGF0Y2hGdW5jdGlvbnMsIDApKTsKIH0KIAogdm9pZCBz
Y2hlZHVsZURpc3BhdGNoRnVuY3Rpb25zT25NYWluVGhyZWFkKCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XVEYvd3RmL2VmbC9Pd25QdHJFZmwuY3BwIGIvU291cmNlL1dURi93dGYvZWZsL093blB0ckVm
bC5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDI2MzRiY2ZjOWM1NWE4MTQzNGUw
NTk1N2Q0ZmZmOGJiZjQwNmY3YmEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvU291cmNlL1dURi93dGYvZWZsL093blB0ckVmbC5jcHAKKysrIC9kZXYvbnVs
bApAQCAtMSw3NSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDExIFByb0ZVU0lPTiBl
bWJlZGRlZCBzeXN0ZW1zCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEgU2Ftc3VuZyBFbGVjdHJvbmlj
cwotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09N
UFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
LSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01Q
VVRFUiwgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJPd25QdHIuaCIKLQotI2lu
Y2x1ZGUgPEVjb3JlLmg+Ci0jaW5jbHVkZSA8RWNvcmVfRXZhcy5oPgotI2luY2x1ZGUgPEVjb3Jl
X0lNRi5oPgotI2luY2x1ZGUgPEVpbmEuaD4KLSNpbmNsdWRlIDxFdmFzLmg+Ci0jaW5jbHVkZSA8
RXZhc19HTC5oPgotCi1uYW1lc3BhY2UgV1RGIHsKLQotdm9pZCBkZWxldGVPd25lZFB0cihFY29y
ZV9FdmFzKiBwdHIpCi17Ci0gICAgaWYgKHB0cikKLSAgICAgICAgZWNvcmVfZXZhc19mcmVlKHB0
cik7Ci19Ci0KLXZvaWQgZGVsZXRlT3duZWRQdHIoRWNvcmVfUGlwZSogcHRyKQotewotICAgIGlm
IChwdHIpCi0gICAgICAgIGVjb3JlX3BpcGVfZGVsKHB0cik7Ci19Ci0KLXZvaWQgZGVsZXRlT3du
ZWRQdHIoRWluYV9IYXNoKiBwdHIpCi17Ci0gICAgaWYgKHB0cikKLSAgICAgICAgZWluYV9oYXNo
X2ZyZWUocHRyKTsKLX0KLQotdm9pZCBkZWxldGVPd25lZFB0cihFaW5hX01vZHVsZSogcHRyKQot
ewotICAgIGlmIChwdHIpCi0gICAgICAgIGVpbmFfbW9kdWxlX2ZyZWUocHRyKTsgLy8gSWYgbW9k
dWxlIHdhc24ndCB1bmxvYWRlZCwgZWluYV9tb2R1bGVfZnJlZSgpIGNhbGxzIGVpbmFfbW9kdWxl
X3VubG9hZCgpLgotfQotCi12b2lkIGRlbGV0ZU93bmVkUHRyKEVjb3JlX0lNRl9Db250ZXh0KiBw
dHIpCi17Ci0gICAgaWYgKHB0cikKLSAgICAgICAgZWNvcmVfaW1mX2NvbnRleHRfZGVsKHB0cik7
Ci19Ci0KLXZvaWQgZGVsZXRlT3duZWRQdHIoRXZhc19HTCogcHRyKQotewotICAgIGlmIChwdHIp
Ci0gICAgICAgIGV2YXNfZ2xfZnJlZShwdHIpOwotfQotCi19CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V1RGL3d0Zi9lZmwvUnVuTG9vcEVmbC5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9lZmwvUnVuTG9vcEVm
bC5jcHAKaW5kZXggMDJkY2M2MmY0NDA4N2ZkMWJkZDFhMDAyNzk0OGMzYzVkZDExZTIxZi4uYjhk
NzlhMTE3YTZiMjkzZDVlZDM4YTkyNWQ2YWY4OTExMjAyOTRhZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dURi93dGYvZWZsL1J1bkxvb3BFZmwuY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL2VmbC9SdW5M
b29wRWZsLmNwcApAQCAtMzksNyArMzksNyBAQCBuYW1lc3BhY2UgV1RGIHsKIFJ1bkxvb3A6OlJ1
bkxvb3AoKQogICAgIDogbV93YWtlVXBFdmVudFJlcXVlc3RlZChmYWxzZSkKIHsKLSAgICBtX3Bp
cGUgPSBhZG9wdFB0cihlY29yZV9waXBlX2FkZCh3YWtlVXBFdmVudCwgdGhpcykpOworICAgIG1f
cGlwZSA9IEVmbFVuaXF1ZVB0cjxFY29yZV9QaXBlPihlY29yZV9waXBlX2FkZCh3YWtlVXBFdmVu
dCwgdGhpcykpOwogfQogCiBSdW5Mb29wOjp+UnVuTG9vcCgpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V1RGL3d0Zi9lZmwvVW5pcXVlUHRyRWZsLmggYi9Tb3VyY2UvV1RGL3d0Zi9lZmwvVW5pcXVlUHRy
RWZsLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uZWI5NzY2ZTRjYTcxMjczNWMwY2FjYzA4NDIxNDhhNGNiMDU3MWYy
YwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvd3RmL2VmbC9VbmlxdWVQdHJFZmwuaApA
QCAtMCwwICsxLDY5IEBACisvKgorICAgIENvcHlyaWdodCAoQykgMjAxNCBTYW1zdW5nIEVsZWN0
cm9uaWNzCisKKyAgICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRp
c3RyaWJ1dGUgaXQgYW5kL29yCisgICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUg
R05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0
aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAgICB2ZXJzaW9uIDIgb2YgdGhl
IExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisKKyAgICBU
aGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVz
ZWZ1bCwKKyAgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1w
bGllZCB3YXJyYW50eSBvZgorICAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgICAgTGlicmFyeSBHZW5lcmFsIFB1Ymxp
YyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisKKyAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2
ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgICAg
YWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5v
dCwgd3JpdGUgdG8KKyAgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBG
cmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICAgIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwg
VVNBLgorKi8KKworI2lmbmRlZiBVbmlxdWVQdHJFZmxfaAorI2RlZmluZSBVbmlxdWVQdHJFZmxf
aAorCisjaWYgUExBVEZPUk0oRUZMKQorCisjaW5jbHVkZSA8RWNvcmUuaD4KKyNpbmNsdWRlIDxF
Y29yZV9FdmFzLmg+CisjaW5jbHVkZSA8RWNvcmVfSU1GLmg+CisjaW5jbHVkZSA8RWluYS5oPgor
I2luY2x1ZGUgPEV2YXMuaD4KKyNpbmNsdWRlIDxFdmFzX0dMLmg+CisKK25hbWVzcGFjZSBXVEYg
eworCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdHJ1Y3QgRWZsUHRyRGVsZXRlciB7CisgICAgdm9p
ZCBvcGVyYXRvcigpKFQqIHB0cikgY29uc3QgeyBBU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQorfTsK
KwordGVtcGxhdGU8dHlwZW5hbWUgVD4KK3VzaW5nIEVmbFVuaXF1ZVB0ciA9IHN0ZDo6dW5pcXVl
X3B0cjxULCBFZmxQdHJEZWxldGVyPFQ+PjsKKworI2RlZmluZSBGT1JfRUFDSF9FRkxfREVMRVRF
UihtYWNybykgXAorICAgIG1hY3JvKEVjb3JlX0V2YXMsIGVjb3JlX2V2YXNfZnJlZSkgXAorICAg
IG1hY3JvKEVjb3JlX0lNRl9Db250ZXh0LCBlY29yZV9pbWZfY29udGV4dF9kZWwpIFwKKyAgICBt
YWNybyhFY29yZV9QaXBlLCBlY29yZV9waXBlX2RlbCkgXAorICAgIG1hY3JvKEVpbmFfSGFzaCwg
ZWluYV9oYXNoX2ZyZWUpIFwKKyAgICBtYWNybyhFaW5hX01vZHVsZSwgZWluYV9tb2R1bGVfZnJl
ZSkgXAorICAgIG1hY3JvKEV2YXNfT2JqZWN0LCBldmFzX29iamVjdF9kZWwpIFwKKyAgICBtYWNy
byhFdmFzX0dMLCBldmFzX2dsX2ZyZWUpCisKKyNkZWZpbmUgV1RGX0RFRklORV9FRkxQVFJfREVM
RVRFUih0eXBlTmFtZSwgZGVsZXRlckZ1bmMpIFwKKyAgICB0ZW1wbGF0ZTw+IHN0cnVjdCBFZmxQ
dHJEZWxldGVyPHR5cGVOYW1lPiBcCisgICAgeyBcCisgICAgICAgIHZvaWQgb3BlcmF0b3IoKSAo
dHlwZU5hbWUqIHB0cikgY29uc3QgXAorICAgICAgICB7IFwKKyAgICAgICAgICAgIGlmIChwdHIp
IFwKKyAgICAgICAgICAgICAgICBkZWxldGVyRnVuYyhwdHIpOyBcCisgICAgICAgIH0gXAorICAg
IH07CisKK0ZPUl9FQUNIX0VGTF9ERUxFVEVSKFdURl9ERUZJTkVfRUZMUFRSX0RFTEVURVIpCisj
dW5kZWYgRk9SX0VBQ0hfRUZMX0RFTEVURVIKKworfSAvLyBuYW1lc3BhY2UgV1RGCisKK3VzaW5n
IFdURjo6RWZsVW5pcXVlUHRyOworCisjZW5kaWYgLy8gUExBVEZPUk0oRUZMKQorCisjZW5kaWYg
Ly8gVW5pcXVlUHRyRWZsX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Vm
bC9FZmxTY3JlZW5VdGlsaXRpZXMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9FZmxT
Y3JlZW5VdGlsaXRpZXMuaAppbmRleCA3ZDc5NzVhMjRhMGYxZjQzMmEzYWIzMThlYmMyOTNjMTM2
YzkwMTVmLi5kNDgwYTU5YzdlZWE3NjJlNjFjNjA1ODIxN2VkN2E1ZmQ2NWE1ODkzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvRWZsU2NyZWVuVXRpbGl0aWVzLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL0VmbFNjcmVlblV0aWxpdGllcy5oCkBAIC0y
NSw2ICsyNSw3IEBACiB0eXBlZGVmIHN0cnVjdCBfRW9fT3BhcXVlIEV2YXM7CiAjZWxzZQogdHlw
ZWRlZiBzdHJ1Y3QgX0V2YXMgRXZhczsKK3R5cGVkZWYgc3RydWN0IF9FY29yZV9FdmFzIEVjb3Jl
X0V2YXM7CiAjZW5kaWYKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZWZsL1JlbmRlclRoZW1lRWZsLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2VmbC9SZW5kZXJUaGVtZUVmbC5jcHAKaW5kZXggY2RmY2UwNzhmMmVjY2M4ZDg2
ZTZlOGMwYjVjNjViNDJiNmJkZDY0ZC4uZjg2NDc4NTkxNzUyMzc0Y2JkZGMwNTRmMzY4YzAxNDgy
NjM3ZDNlYiAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL1JlbmRlclRo
ZW1lRWZsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvUmVuZGVyVGhlbWVF
ZmwuY3BwCkBAIC0xOTEsNyArMTkxLDcgQEAgUGFzc093blB0cjxSZW5kZXJUaGVtZUVmbDo6VGhl
bWVQYXJ0Q2FjaGVFbnRyeT4gUmVuZGVyVGhlbWVFZmw6OlRoZW1lUGFydENhY2hlRW4KIAogICAg
IE93blB0cjxUaGVtZVBhcnRDYWNoZUVudHJ5PiBlbnRyeSA9IGFkb3B0UHRyKG5ldyBUaGVtZVBh
cnRDYWNoZUVudHJ5KTsKIAotICAgIGVudHJ5LT5tX2NhbnZhcyA9IGFkb3B0UHRyKGVjb3JlX2V2
YXNfYnVmZmVyX25ldyhzaXplLndpZHRoKCksIHNpemUuaGVpZ2h0KCkpKTsKKyAgICBlbnRyeS0+
bV9jYW52YXMgPSBFZmxVbmlxdWVQdHI8RWNvcmVfRXZhcz4oZWNvcmVfZXZhc19idWZmZXJfbmV3
KHNpemUud2lkdGgoKSwgc2l6ZS5oZWlnaHQoKSkpOwogICAgIGlmICghZW50cnktPmNhbnZhcygp
KSB7CiAgICAgICAgIEVJTkFfTE9HX0VSUigiZWNvcmVfZXZhc19idWZmZXJfbmV3KCVkLCAlZCkg
ZmFpbGVkLiIsIHNpemUud2lkdGgoKSwgc2l6ZS5oZWlnaHQoKSk7CiAgICAgICAgIHJldHVybiBu
dWxscHRyOwpAQCAtNDk2LDcgKzQ5Niw3IEBAIGJvb2wgUmVuZGVyVGhlbWVFZmw6OmxvYWRUaGVt
ZSgpCiAgICAgQVNTRVJUKCFtX3RoZW1lUGF0aC5pc0VtcHR5KCkpOwogCiAgICAgaWYgKCFjYW52
YXMoKSkgewotICAgICAgICBtX2NhbnZhcyA9IGFkb3B0UHRyKGVjb3JlX2V2YXNfYnVmZmVyX25l
dygxLCAxKSk7CisgICAgICAgIG1fY2FudmFzID0gRWZsVW5pcXVlUHRyPEVjb3JlX0V2YXM+KGVj
b3JlX2V2YXNfYnVmZmVyX25ldygxLCAxKSk7CiAgICAgICAgIF9BU1NFUlRfT05fUkVMRUFTRV9S
RVRVUk5fVkFMKGNhbnZhcygpLCBmYWxzZSwKICAgICAgICAgICAgICAgICAiQ291bGQgbm90IGNy
ZWF0ZSBjYW52YXMgcmVxdWlyZWQgYnkgdGhlbWUsIHRoaW5ncyB3aWxsIG5vdCB3b3JrIHByb3Bl
cmx5LiIpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9S
ZW5kZXJUaGVtZUVmbC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL1JlbmRlclRoZW1l
RWZsLmgKaW5kZXggYTk2ZjY1YWMwYjUzY2EyZGU2NjQ1ZmVmYjFkODA3NmRhZTYwNTQwMi4uMGM1
NTljZTAwYmVjNjVjZTMxM2NjZWFlMDAyYmEwZWRjOGNlM2Q3NCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZWZsL1JlbmRlclRoZW1lRWZsLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZWZsL1JlbmRlclRoZW1lRWZsLmgKQEAgLTM4LDYgKzM4LDcgQEAKICNpbmNs
dWRlIDxFaW5hLmg+CiAjaW5jbHVkZSA8Y2Fpcm8uaD4KICNpbmNsdWRlIDx3dGYvZWZsL1JlZlB0
ckVmbC5oPgorI2luY2x1ZGUgPHd0Zi9lZmwvVW5pcXVlUHRyRWZsLmg+CiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIApAQCAtMjUxLDcgKzI1Miw3IEBAIHByaXZhdGU6CiAKICAgICBTdHJpbmcgbV90
aGVtZVBhdGg7CiAgICAgLy8gT3JkZXIgc28gdGhhdCB0aGUgY2FudmFzIGdldHMgZGVzdHJveWVk
IGF0IGxhc3QuCi0gICAgT3duUHRyPEVjb3JlX0V2YXM+IG1fY2FudmFzOworICAgIEVmbFVuaXF1
ZVB0cjxFY29yZV9FdmFzPiBtX2NhbnZhczsKICAgICBSZWZQdHI8RXZhc19PYmplY3Q+IG1fZWRq
ZTsKIAogICAgIGJvb2wgbV9zdXBwb3J0c1NlbGVjdGlvbkZvcmVncm91bmRDb2xvcjsKQEAgLTI3
OCw3ICsyNzksNyBAQCBwcml2YXRlOgogCiAgICAgcHJpdmF0ZToKICAgICAgICAgLy8gT3JkZXIg
c28gdGhhdCB0aGUgY2FudmFzIGdldHMgZGVzdHJveWVkIGF0IGxhc3QuCi0gICAgICAgIE93blB0
cjxFY29yZV9FdmFzPiBtX2NhbnZhczsKKyAgICAgICAgRWZsVW5pcXVlUHRyPEVjb3JlX0V2YXM+
IG1fY2FudmFzOwogICAgICAgICBSZWZQdHI8RXZhc19PYmplY3Q+IG1fZWRqZTsKICAgICAgICAg
UmVmUHRyPGNhaXJvX3N1cmZhY2VfdD4gbV9zdXJmYWNlOwogICAgIH07CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JY29uLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9JY29uLmgKaW5kZXggODI3OThjMzA2OTUwODczYWI0ZWRhNzVlNWEw
NzI1MTcyMGZkNzFjYy4uNjAwODExOGUxZDJiYTBkMWJmOGNiY2VlYzhkNTExZWM3MWIwYjE0OCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSWNvbi5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ljb24uaApAQCAtMzcsNiArMzcsOCBA
QCBPQkpDX0NMQVNTIE5TSW1hZ2U7CiB0eXBlZGVmIHN0cnVjdCBISUNPTl9fKiBISUNPTjsKICNl
bGlmIFBMQVRGT1JNKEdUSykKIHR5cGVkZWYgc3RydWN0IF9HZGtQaXhidWYgR2RrUGl4YnVmOwor
I2VsaWYgUExBVEZPUk0oRUZMKQordHlwZWRlZiBzdHJ1Y3QgX0V2YXNfT2JqZWN0IEV2YXNfT2Jq
ZWN0OwogI2VuZGlmCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2VmbC9FdmFzR0xDb250ZXh0LmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9lZmwvRXZhc0dMQ29udGV4dC5oCmluZGV4IGU2ODZlYzU2
NTRkM2MzZjZmZjY3OTc4ZDU1MmJlODdmZjA4ZGVlNTcuLjE1OWM0NmE4MGRlODI5MTY3MjE3NjVi
NzY5YWRkMDhiNThlMmMxOTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2VmbC9FdmFzR0xDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZWZsL0V2YXNHTENvbnRleHQuaApAQCAtMzMsNyArMzMsNyBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKIGNsYXNzIEV2YXNHTENvbnRleHQgewogcHVibGljOgotICAgIHN0YXRpYyBQ
YXNzT3duUHRyPEV2YXNHTENvbnRleHQ+IGNyZWF0ZShFdmFzX0dMKiBldmFzR0wpCisgICAgc3Rh
dGljIHN0ZDo6dW5pcXVlX3B0cjxFdmFzR0xDb250ZXh0PiBjcmVhdGUoRXZhc19HTCogZXZhc0dM
KQogICAgIHsKICAgICAgICAgQVNTRVJUKGV2YXNHTCk7CiAgICAgICAgIEV2YXNfR0xfQ29udGV4
dCogY29udGV4dCA9IGV2YXNfZ2xfY29udGV4dF9jcmVhdGUoZXZhc0dMLCAwKTsKQEAgLTQxLDcg
KzQxLDcgQEAgcHVibGljOgogICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKICAgICAgICAg
Ly8gT3duZXJzaGlwIG9mIGNvbnRleHQgaXMgcGFzc2VkIHRvIEV2YXNHTENvbnRleHQuCi0gICAg
ICAgIHJldHVybiBhZG9wdFB0cihuZXcgRXZhc0dMQ29udGV4dChldmFzR0wsIGNvbnRleHQpKTsK
KyAgICAgICAgcmV0dXJuIHN0ZDo6dW5pcXVlX3B0cjxFdmFzR0xDb250ZXh0PihuZXcgRXZhc0dM
Q29udGV4dChldmFzR0wsIGNvbnRleHQpKTsKICAgICB9CiAgICAgfkV2YXNHTENvbnRleHQoKTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZWZsL0V2YXNH
TFN1cmZhY2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2VmbC9FdmFzR0xT
dXJmYWNlLmgKaW5kZXggZTVkZmM5YTI1NGY3NzE5NjhjYTI5MDhkNjA2MTZlMzIwNGYwN2JhNS4u
NmE3Zjg1NjBmNjkxMGUyY2UwZmNhMGI1NzY4MTNmZjBiZGU5OTFjOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZWZsL0V2YXNHTFN1cmZhY2UuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9lZmwvRXZhc0dMU3VyZmFjZS5oCkBAIC0z
NSw3ICszNSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgRXZhc0dMU3VyZmFjZSB7
CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NPd25QdHI8RXZhc0dMU3VyZmFjZT4gY3JlYXRlKEV2
YXNfR0wqIGV2YXNHTCwgRXZhc19HTF9Db25maWcqIGNmZywgY29uc3QgV2ViQ29yZTo6SW50U2l6
ZSYgc2l6ZSkKKyAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPEV2YXNHTFN1cmZhY2U+IGNyZWF0
ZShFdmFzX0dMKiBldmFzR0wsIEV2YXNfR0xfQ29uZmlnKiBjZmcsIGNvbnN0IFdlYkNvcmU6Oklu
dFNpemUmIHNpemUpCiAgICAgewogICAgICAgICBBU1NFUlQoZXZhc0dMKTsKICAgICAgICAgQVNT
RVJUKGNmZyk7CkBAIC01MCw3ICs1MCw3IEBAIHB1YmxpYzoKICAgICAgICAgICAgIHJldHVybiBu
dWxscHRyOwogCiAgICAgICAgIC8vIE93bmVyc2hpcCBvZiBzdXJmYWNlIGlzIHBhc3NlZCB0byBF
dmFzR0xTdXJmYWNlLgotICAgICAgICByZXR1cm4gYWRvcHRQdHIobmV3IEV2YXNHTFN1cmZhY2Uo
ZXZhc0dMLCBzdXJmYWNlKSk7CisgICAgICAgIHJldHVybiBzdGQ6OnVuaXF1ZV9wdHI8RXZhc0dM
U3VyZmFjZT4obmV3IEV2YXNHTFN1cmZhY2UoZXZhc0dMLCBzdXJmYWNlKSk7CiAgICAgfQogICAg
IH5FdmFzR0xTdXJmYWNlKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNv
cmVTdXBwb3J0L0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0RWZsLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0RWZs
LmNwcAppbmRleCAxZDA1ZTZmNzZkNTUyOWIxZjlmNWQwYzJjM2RiNGVhMTc3ODA4YjIwLi5lZmQ3
MjViZjY1YTI0MGRkN2U4NGE2YWYxZjRmNDgzZTRmNGNhNTY3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9BY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dEVm
bC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvQWNjZWxlcmF0ZWRD
b21wb3NpdGluZ0NvbnRleHRFZmwuY3BwCkBAIC00Nyw3ICs0Nyw3IEBAIEFjY2VsZXJhdGVkQ29t
cG9zaXRpbmdDb250ZXh0Ojp+QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHQoKQogCiBib29s
IEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0Ojppbml0aWFsaXplKCkKIHsKLSAgICBtX2V2
YXNHTCA9IGFkb3B0UHRyKGV2YXNfZ2xfbmV3KGV2YXNfb2JqZWN0X2V2YXNfZ2V0KG1fdmlldykp
KTsKKyAgICBtX2V2YXNHTCA9IEVmbFVuaXF1ZVB0cjxFdmFzX0dMPihldmFzX2dsX25ldyhldmFz
X29iamVjdF9ldmFzX2dldChtX3ZpZXcpKSk7CiAgICAgaWYgKCFtX2V2YXNHTCkKICAgICAgICAg
cmV0dXJuIGZhbHNlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3Vw
cG9ydC9BY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dEVmbC5oIGIvU291cmNlL1dlYktpdC9l
ZmwvV2ViQ29yZVN1cHBvcnQvQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHRFZmwuaAppbmRl
eCA5M2E3MjdhMDljNDhiMjAwZGY2MTU2MTE2YjJkNWZlOGVjZjQ5ZDc4Li40ODNjODlmOGI2Mjc0
NWFhMmVjMTA1M2Y1ZmQ1OGE1MDcyMmJiNDllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Vm
bC9XZWJDb3JlU3VwcG9ydC9BY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dEVmbC5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdD
b250ZXh0RWZsLmgKQEAgLTI3LDYgKzI3LDcgQEAKICNpbmNsdWRlICJUaW1lci5oIgogI2luY2x1
ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgogI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KKyNpbmNsdWRl
IDx3dGYvZWZsL1VuaXF1ZVB0ckVmbC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTYy
LDkgKzYzLDkgQEAgcHJpdmF0ZToKICAgICBzdGQ6OnVuaXF1ZV9wdHI8R3JhcGhpY3NMYXllcj4g
bV9yb290R3JhcGhpY3NMYXllcjsKICAgICBUaW1lcjxBY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29u
dGV4dD4gbV9zeW5jVGltZXI7CiAKLSAgICBPd25QdHI8RXZhc19HTD4gbV9ldmFzR0w7Ci0gICAg
T3duUHRyPEV2YXNHTENvbnRleHQ+IG1fZXZhc0dMQ29udGV4dDsKLSAgICBPd25QdHI8RXZhc0dM
U3VyZmFjZT4gbV9ldmFzR0xTdXJmYWNlOworICAgIEVmbFVuaXF1ZVB0cjxFdmFzX0dMPiBtX2V2
YXNHTDsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8RXZhc0dMQ29udGV4dD4gbV9ldmFzR0xDb250ZXh0
OworICAgIHN0ZDo6dW5pcXVlX3B0cjxFdmFzR0xTdXJmYWNlPiBtX2V2YXNHTFN1cmZhY2U7CiAK
ICAgICBUZXh0dXJlTWFwcGVyRlBTQ291bnRlciBtX2Zwc0NvdW50ZXI7CiB9OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvQmF0dGVyeUNsaWVudEVmbC5oIGIv
U291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvQmF0dGVyeUNsaWVudEVmbC5oCmluZGV4
IGQxMWFjYzljYTYyM2ZlMzBhNTM0MDY5MjYwMWFmNWUwNTYxNWEzYzYuLjEzMGFlOTNkNWMzYTZm
YjIwY2E0YzkxYmIzOWY4MWU5MmM5MDgwZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZs
L1dlYkNvcmVTdXBwb3J0L0JhdHRlcnlDbGllbnRFZmwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Vm
bC9XZWJDb3JlU3VwcG9ydC9CYXR0ZXJ5Q2xpZW50RWZsLmgKQEAgLTI5LDYgKzI5LDggQEAKICNp
bmNsdWRlICJCYXR0ZXJ5U3RhdHVzLmgiCiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KIAor
dHlwZWRlZiBzdHJ1Y3QgX0V2YXNfT2JqZWN0IEV2YXNfT2JqZWN0OworCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiBjbGFzcyBCYXR0ZXJ5Q29udHJvbGxlcjsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbC5oIGIvU291
cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsLmgK
aW5kZXggMDgxZDYyZTA3M2QxMjc3YjNmMWM5NTJhN2Y1ZjRhMmNkZThjMzk5My4uOTNlNTllMTgy
NzIzYjEzOWZhN2JjNGIzODJiOWZiZGYyZmZlZTg0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9lZmwvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsLmgKKysrIGIvU291
cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsLmgK
QEAgLTM1LDYgKzM1LDcgQEAKICNpbmNsdWRlIDxhdGsvYXRrLmg+CiAjZW5kaWYKIAordHlwZWRl
ZiBzdHJ1Y3QgX0V2YXNfT2JqZWN0IEV2YXNfT2JqZWN0OwogdHlwZWRlZiBzdHJ1Y3QgX0V3a19I
aXN0b3J5X0l0ZW0gRXdrX0hpc3RvcnlfSXRlbTsKIAogdHlwZWRlZiBWZWN0b3I8RXdrX0hpc3Rv
cnlfSXRlbSo+IEhpc3RvcnlJdGVtQ2hpbGRyZW5WZWN0b3I7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRFZmwuaCBiL1NvdXJjZS9XZWJL
aXQvZWZsL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEVmbC5oCmluZGV4IGUwOTYxNmQwZjRi
YjYyNGU1ZGJjYjVmZjQwMTQxNjVkZGRkNTY3OTUuLjEzNTIyZDdkZjYyZDQ2YjhhYjM3ZjRiZDYw
MTk0N2Y3ZDUyOThkNjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBw
b3J0L0VkaXRvckNsaWVudEVmbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBw
b3J0L0VkaXRvckNsaWVudEVmbC5oCkBAIC00Miw2ICs0Miw4IEBACiAjaW5jbHVkZSA8d3RmL0Zv
cndhcmQuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdWaWV3Lmg+CiAKK3R5cGVkZWYgc3Ry
dWN0IF9FdmFzX09iamVjdCBFdmFzX09iamVjdDsKKwogc3RydWN0IEV3a19TaG91bGRfSW5zZXJ0
X05vZGVfRXZlbnQgewogICAgIFdlYkNvcmU6Ok5vZGUqIG5vZGU7CiAgICAgV2ViQ29yZTo6UmFu
Z2UqIHJhbmdlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQv
RnJhbWVOZXR3b3JraW5nQ29udGV4dEVmbC5oIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1
cHBvcnQvRnJhbWVOZXR3b3JraW5nQ29udGV4dEVmbC5oCmluZGV4IDI1YjQ1MmFiY2FkM2M4N2Ix
OTY0MTc2N2JkODYzNzU5YjMwYTY4YzguLmFlNmU0ZTA5MmY1MWU3MGY4YzMxNGI4MjQyMDFhYmM3
NTYzZjU1NzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0Zy
YW1lTmV0d29ya2luZ0NvbnRleHRFZmwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3Jl
U3VwcG9ydC9GcmFtZU5ldHdvcmtpbmdDb250ZXh0RWZsLmgKQEAgLTMxLDYgKzMxLDggQEAKIAog
I2luY2x1ZGUgIkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaCIKIAordHlwZWRlZiBzdHJ1Y3QgX0V2
YXNfT2JqZWN0IEV2YXNfT2JqZWN0OworCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEZy
YW1lTmV0d29ya2luZ0NvbnRleHRFZmwgOiBwdWJsaWMgV2ViQ29yZTo6RnJhbWVOZXR3b3JraW5n
Q29udGV4dCB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9O
YXZpZ2F0b3JDb250ZW50VXRpbHNDbGllbnRFZmwuaCBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNv
cmVTdXBwb3J0L05hdmlnYXRvckNvbnRlbnRVdGlsc0NsaWVudEVmbC5oCmluZGV4IGJmMWM3NWNl
YjdlNmRhM2NhYjg4MWIzYmQyNGE3NTcxNzMwMTg3M2MuLjk4MTk1Y2JlMTg5MDA2YmNlMGU4ZTc3
ZmUwMDcxZGNhODk5ZDRiZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVT
dXBwb3J0L05hdmlnYXRvckNvbnRlbnRVdGlsc0NsaWVudEVmbC5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvZWZsL1dlYkNvcmVTdXBwb3J0L05hdmlnYXRvckNvbnRlbnRVdGlsc0NsaWVudEVmbC5oCkBA
IC0zMyw2ICszMyw4IEBACiAKICNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgogCit0eXBlZGVm
IHN0cnVjdCBfRXZhc19PYmplY3QgRXZhc19PYmplY3Q7CisKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IGNsYXNzIE5hdmlnYXRvckNvbnRlbnRVdGlsc0NsaWVudEVmbCA6IHB1YmxpYyBXZWJDb3JlOjpO
YXZpZ2F0b3JDb250ZW50VXRpbHNDbGllbnQgewogcHVibGljOgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9lZmwvZXdrL2V3a192aWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tf
dmlldy5jcHAKaW5kZXggOTk5NzBlY2M2ZDUwYzcyZTNlZDVkYWU4Y2U4ODA1OTM0MDYzMmY5YS4u
NTc2NTQ1ODU2YzFjYzdiMTI0ZDkzMmY2NDA1MTJmZTBjNGFlM2U2NyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9l
d2svZXdrX3ZpZXcuY3BwCkBAIC0xNDgyLDEwICsxNDgyLDEwIEBAIHN0YXRpYyBFaW5hX0Jvb2wg
X2V3a192aWV3X3NtYXJ0X2VuYWJsZV9yZW5kZXIoRXdrX1ZpZXdfU21hcnRfRGF0YSogc21hcnRE
YXRhKQogCiBzdGF0aWMgY29uc3QgY2hhciogX2V3a192aWV3X2VkaXRvcl9jb21tYW5kX3N0cmlu
Z19nZXQoRXdrX1ZpZXdfUHJpdmF0ZV9EYXRhKiwgRXdrX0VkaXRvcl9Db21tYW5kIGV3a0NvbW1h
bmQpCiB7Ci0gICAgc3RhdGljIE93blB0cjxFaW5hX0hhc2g+IGVkaXRvckNvbW1hbmRIYXNoOwor
ICAgIHN0YXRpYyBFZmxVbmlxdWVQdHI8RWluYV9IYXNoPiBlZGl0b3JDb21tYW5kSGFzaDsKIAog
ICAgIGlmICghZWRpdG9yQ29tbWFuZEhhc2gpIHsKLSAgICAgICAgZWRpdG9yQ29tbWFuZEhhc2gg
PSBhZG9wdFB0cihlaW5hX2hhc2hfaW50MzJfbmV3KDApKTsKKyAgICAgICAgZWRpdG9yQ29tbWFu
ZEhhc2ggPSBFZmxVbmlxdWVQdHI8RWluYV9IYXNoPihlaW5hX2hhc2hfaW50MzJfbmV3KDApKTsK
ICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGVkaXRvckNvbW1hbmRzW2ldLmV3a0VkaXRvckNvbW1h
bmQgIT0gRVdLX0VESVRPUl9DT01NQU5EX05PTkU7IGkrKykKICAgICAgICAgICAgIGVpbmFfaGFz
aF9hZGQoZWRpdG9yQ29tbWFuZEhhc2guZ2V0KCksICZlZGl0b3JDb21tYW5kc1tpXS5ld2tFZGl0
b3JDb21tYW5kLCBlZGl0b3JDb21tYW5kc1tpXS5lZGl0b3JDb21tYW5kU3RyaW5nKTsKICAgICB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC90ZXN0cy9Vbml0VGVzdFV0aWxzL0VXS1Rl
c3RWaWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQvZWZsL3Rlc3RzL1VuaXRUZXN0VXRpbHMvRVdLVGVz
dFZpZXcuY3BwCmluZGV4IDJhOWM2ODgyNzE2MzZlOTdiM2JiYzRjZmMxZmIzNmI3Zjc4ZDk4NDcu
LjczYjNkMGJkNWYyNjQxOTdlOGQyNjkxYTY4NDI3ZWZiZTQ2NDRhNjQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvZWZsL3Rlc3RzL1VuaXRUZXN0VXRpbHMvRVdLVGVzdFZpZXcuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvZWZsL3Rlc3RzL1VuaXRUZXN0VXRpbHMvRVdLVGVzdFZpZXcuY3BwCkBA
IC0yMCw3ICsyMCw2IEBACiAjaW5jbHVkZSAiRVdLVGVzdFZpZXcuaCIKIAogI2luY2x1ZGUgPEVX
ZWJLaXQuaD4KLSNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQ
dHIuaD4KIAogbmFtZXNwYWNlIEVXS1VuaXRUZXN0cyB7CkBAIC0zMyw3ICszMiw3IEBAIGJvb2wg
RVdLVGVzdFZpZXc6OmluaXQoaW50IHdpZHRoLCBpbnQgaGVpZ2h0KQogewogICAgIG1fd2ViVmll
dyA9IG51bGxwdHI7CiAKLSAgICBtX2Vjb3JlRXZhcyA9IGFkb3B0UHRyKGVjb3JlX2V2YXNfbmV3
KDAsIDAsIDAsIHdpZHRoLCBoZWlnaHQsIDApKTsKKyAgICBtX2Vjb3JlRXZhcyA9IEVmbFVuaXF1
ZVB0cjxFY29yZV9FdmFzPihlY29yZV9ldmFzX25ldygwLCAwLCAwLCB3aWR0aCwgaGVpZ2h0LCAw
KSk7CiAgICAgaWYgKCFtX2Vjb3JlRXZhcykKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC90ZXN0cy9Vbml0VGVzdFV0aWxzL0VXS1Rlc3RWaWV3
LmggYi9Tb3VyY2UvV2ViS2l0L2VmbC90ZXN0cy9Vbml0VGVzdFV0aWxzL0VXS1Rlc3RWaWV3LmgK
aW5kZXggZDZhMTJjNTg5ZTc0ZmJhYmU1MTBkZTgwNWRhZDBjNzg1NjRjZGEwMi4uNWU0ODY5YTZm
YmY4Y2NmYmNlNDg0OWU0MzUyNmZkMzE5YTgxNzQwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9lZmwvdGVzdHMvVW5pdFRlc3RVdGlscy9FV0tUZXN0Vmlldy5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvZWZsL3Rlc3RzL1VuaXRUZXN0VXRpbHMvRVdLVGVzdFZpZXcuaApAQCAtMjIsOCArMjIsOCBA
QAogI2luY2x1ZGUgIkVXS1Rlc3RDb25maWcuaCIKICNpbmNsdWRlIDxFY29yZV9FdmFzLmg+CiAj
aW5jbHVkZSA8RXZhcy5oPgotI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KICNpbmNsdWRlIDx3dGYv
ZWZsL1JlZlB0ckVmbC5oPgorI2luY2x1ZGUgPHd0Zi9lZmwvVW5pcXVlUHRyRWZsLmg+CiAKIG5h
bWVzcGFjZSBFV0tVbml0VGVzdHMgewogCkBAIC0zOCw3ICszOCw3IEBAIHByaXZhdGU6CiAgICAg
RVdLVGVzdFZpZXcoY29uc3QgRVdLVGVzdFZpZXcmKTsKICAgICBFV0tUZXN0VmlldyYgb3BlcmF0
b3I9KGNvbnN0IEVXS1Rlc3RWaWV3Jik7CiAKLSAgICBPd25QdHI8RWNvcmVfRXZhcz4gbV9lY29y
ZUV2YXM7CisgICAgRWZsVW5pcXVlUHRyPEVjb3JlX0V2YXM+IG1fZWNvcmVFdmFzOwogICAgIFJl
ZlB0cjxFdmFzX09iamVjdD4gbV93ZWJWaWV3OwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvUGxhdGZvcm0vTW9kdWxlLmggYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Nb2R1bGUu
aAppbmRleCBmZTYwZjk4NDZkMzRiN2Q4YTkxZDlkMjU5MjY0YTkxNTM5NTYzNDAyLi5hZjY1MmE5
ZDQ1NjE5YjE0MmI3YjZkMjE1YWQ5ZWRmMDEzMDEwMTE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9QbGF0Zm9ybS9Nb2R1bGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Nb2R1
bGUuaApAQCAtMzksNiArMzksNyBAQCB0eXBlZGVmIHN0cnVjdCBfR01vZHVsZSBHTW9kdWxlOwog
CiAjaWYgUExBVEZPUk0oRUZMKQogI2luY2x1ZGUgPEVpbmEuaD4KKyNpbmNsdWRlIDx3dGYvZWZs
L1VuaXF1ZVB0ckVmbC5oPgogI2VuZGlmCiAKIG5hbWVzcGFjZSBXZWJLaXQgewpAQCAtNzYsNyAr
NzcsNyBAQCBwcml2YXRlOgogI2VsaWYgUExBVEZPUk0oR1RLKQogICAgIEdNb2R1bGUqIG1faGFu
ZGxlOwogI2VsaWYgUExBVEZPUk0oRUZMKQotICAgIE93blB0cjxFaW5hX01vZHVsZT4gbV9tb2R1
bGU7CisgICAgRWZsVW5pcXVlUHRyPEVpbmFfTW9kdWxlPiBtX21vZHVsZTsKICNlbmRpZgogfTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vZWZsL01vZHVsZUVmbC5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9lZmwvTW9kdWxlRWZsLmNwcAppbmRleCBmNDBiMTNi
MTA2NmViYjg3YTljNWNkN2ExZmI0Y2EwMTAwODhiOTFhLi4xNDkxOGE1Y2QwNTgyN2I3NjNkZmEy
OTdiYjM0ZGRkMjYyYzNkMzU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9l
ZmwvTW9kdWxlRWZsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9lZmwvTW9kdWxl
RWZsLmNwcApAQCAtMjgsNyArMjgsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogYm9vbCBNb2R1
bGU6OmxvYWQoKQogewotICAgIG1fbW9kdWxlID0gYWRvcHRQdHIoZWluYV9tb2R1bGVfbmV3KG1f
cGF0aC51dGY4KCkuZGF0YSgpKSk7CisgICAgbV9tb2R1bGUgPSBFZmxVbmlxdWVQdHI8RWluYV9N
b2R1bGU+KGVpbmFfbW9kdWxlX25ldyhtX3BhdGgudXRmOCgpLmRhdGEoKSkpOwogICAgIGlmICgh
bV9tb2R1bGUgfHwgIWVpbmFfbW9kdWxlX2xvYWQobV9tb2R1bGUuZ2V0KCkpKSB7CiAgICAgICAg
IG1fbW9kdWxlID0gbnVsbHB0cjsKICAgICAgICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvRXdrVmlldy5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9Fd2tWaWV3LmNwcAppbmRleCAyNzdmNmFhYmQyMWFjYWRj
MDhiNGIwNzI1YzBlOTI2NDVjN2U0YjZlLi5hMTM3ZjM0MTc5ZjQ3MThiYjIzN2M1MWFkMTIwNzYw
NWIwNjMwOWRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9F
d2tWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9Fd2tWaWV3
LmNwcApAQCAtMjkyLDcgKzI5Miw3IEBAIEV3a1ZpZXc6OkV3a1ZpZXcoV0tWaWV3UmVmIHZpZXcs
IEV2YXNfT2JqZWN0KiBldmFzT2JqZWN0KQogCiAgICAgLy8gRklYTUU6IFJlbW92ZSB3aGVuIHBv
c3NpYmxlLgogICAgIHN0YXRpY19jYXN0PFdlYlZpZXdFZmwqPih3ZWJWaWV3KCkpLT5zZXRFd2tW
aWV3KHRoaXMpOwotICAgIG1fZXZhc0dMID0gYWRvcHRQdHIoZXZhc19nbF9uZXcoZXZhc19vYmpl
Y3RfZXZhc19nZXQobV9ldmFzT2JqZWN0KSkpOworICAgIG1fZXZhc0dMID0gRWZsVW5pcXVlUHRy
PEV2YXNfR0w+KGV2YXNfZ2xfbmV3KGV2YXNfb2JqZWN0X2V2YXNfZ2V0KG1fZXZhc09iamVjdCkp
KTsKICAgICBpZiAobV9ldmFzR0wpCiAgICAgICAgIG1fZXZhc0dMQ29udGV4dCA9IEV2YXNHTENv
bnRleHQ6OmNyZWF0ZShtX2V2YXNHTC5nZXQoKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0V3a1ZpZXcuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvZWZsL0V3a1ZpZXcuaAppbmRleCA4MzdlNjllZGFlNzBiMjhjYWVlOGJhNDJjYWEwOTk5
ZjkwMGQ3MmM4Li5iY2RjM2EyZDJlNmJhNmJjMWQyNjllODgxNTY3MzVkZTc2ZThjMDFjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9Fd2tWaWV3LmgKKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvRXdrVmlldy5oCkBAIC0yNDksOSArMjQ5
LDkgQEAgcHJpdmF0ZToKICAgICBFdmFzX09iamVjdCogbV9ldmFzT2JqZWN0OwogICAgIFJlZlB0
cjxFd2tDb250ZXh0PiBtX2NvbnRleHQ7CiAgICAgUmVmUHRyPEV3a1BhZ2VHcm91cD4gbV9wYWdl
R3JvdXA7Ci0gICAgT3duUHRyPEV2YXNfR0w+IG1fZXZhc0dMOwotICAgIE93blB0cjxXZWJDb3Jl
OjpFdmFzR0xDb250ZXh0PiBtX2V2YXNHTENvbnRleHQ7Ci0gICAgT3duUHRyPFdlYkNvcmU6OkV2
YXNHTFN1cmZhY2U+IG1fZXZhc0dMU3VyZmFjZTsKKyAgICBFZmxVbmlxdWVQdHI8RXZhc19HTD4g
bV9ldmFzR0w7CisgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OkV2YXNHTENvbnRleHQ+IG1f
ZXZhc0dMQ29udGV4dDsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6RXZhc0dMU3VyZmFj
ZT4gbV9ldmFzR0xTdXJmYWNlOwogICAgIGJvb2wgbV9wZW5kaW5nU3VyZmFjZVJlc2l6ZTsKIAog
ICAgIFdlYkNvcmU6OlRyYW5zZm9ybWF0aW9uTWF0cml4IG1fdXNlclZpZXdwb3J0VHJhbnNmb3Jt
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9JbnB1dE1ldGhvZENv
bnRleHRFZmwuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9JbnB1dE1ldGhvZENv
bnRleHRFZmwuY3BwCmluZGV4IDg3ZGYxNDIwOGZjYjVhNGVmOWMxYjc5MTViY2FjNzU0MmMzYzVl
YjEuLmMwOTgzMzg3Yjc0NDYxNmQ4NWVlYzBjNzNjN2NkMTNiOGYwOTlkZWUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvSW5wdXRNZXRob2RDb250ZXh0RWZsLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL0lucHV0TWV0aG9kQ29udGV4dEVmbC5j
cHAKQEAgLTMxLDkgKzMxLDkgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIG5hbWVzcGFj
ZSBXZWJLaXQgewogCi1JbnB1dE1ldGhvZENvbnRleHRFZmw6OklucHV0TWV0aG9kQ29udGV4dEVm
bChFd2tWaWV3KiB2aWV3LCBQYXNzT3duUHRyPEVjb3JlX0lNRl9Db250ZXh0PiBjb250ZXh0KQor
SW5wdXRNZXRob2RDb250ZXh0RWZsOjpJbnB1dE1ldGhvZENvbnRleHRFZmwoRXdrVmlldyogdmll
dywgRWZsVW5pcXVlUHRyPEVjb3JlX0lNRl9Db250ZXh0PiBjb250ZXh0KQogICAgIDogbV92aWV3
KHZpZXcpCi0gICAgLCBtX2NvbnRleHQoY29udGV4dCkKKyAgICAsIG1fY29udGV4dChzdGQ6Om1v
dmUoY29udGV4dCkpCiAgICAgLCBtX2ZvY3VzZWQoZmFsc2UpCiB7CiAgICAgQVNTRVJUKG1fY29u
dGV4dCk7CkBAIC03MywxMyArNzMsMTMgQEAgdm9pZCBJbnB1dE1ldGhvZENvbnRleHRFZmw6Om9u
SU1GUHJlZWRpdFNlcXVlbmNlQ2hhbmdlZCh2b2lkKiBkYXRhLCBFY29yZV9JTUZfQ28KICAgICBp
bnB1dE1ldGhvZENvbnRleHQtPm1fdmlldy0+cGFnZSgpLT5zZXRDb21wb3NpdGlvbihwcmVlZGl0
U3RyaW5nLCB1bmRlcmxpbmVzLCAwKTsKIH0KIAotUGFzc093blB0cjxFY29yZV9JTUZfQ29udGV4
dD4gSW5wdXRNZXRob2RDb250ZXh0RWZsOjpjcmVhdGVJTUZDb250ZXh0KEV2YXMqIGNhbnZhcykK
K0VmbFVuaXF1ZVB0cjxFY29yZV9JTUZfQ29udGV4dD4gSW5wdXRNZXRob2RDb250ZXh0RWZsOjpj
cmVhdGVJTUZDb250ZXh0KEV2YXMqIGNhbnZhcykKIHsKICAgICBjb25zdCBjaGFyKiBkZWZhdWx0
Q29udGV4dElEID0gZWNvcmVfaW1mX2NvbnRleHRfZGVmYXVsdF9pZF9nZXQoKTsKICAgICBpZiAo
IWRlZmF1bHRDb250ZXh0SUQpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAgT3duUHRy
PEVjb3JlX0lNRl9Db250ZXh0PiBpbWZDb250ZXh0ID0gYWRvcHRQdHIoZWNvcmVfaW1mX2NvbnRl
eHRfYWRkKGRlZmF1bHRDb250ZXh0SUQpKTsKKyAgICBFZmxVbmlxdWVQdHI8RWNvcmVfSU1GX0Nv
bnRleHQ+IGltZkNvbnRleHQoZWNvcmVfaW1mX2NvbnRleHRfYWRkKGRlZmF1bHRDb250ZXh0SUQp
KTsKICAgICBpZiAoIWltZkNvbnRleHQpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCkBAIC04
Nyw3ICs4Nyw3IEBAIFBhc3NPd25QdHI8RWNvcmVfSU1GX0NvbnRleHQ+IElucHV0TWV0aG9kQ29u
dGV4dEVmbDo6Y3JlYXRlSU1GQ29udGV4dChFdmFzKiBjYW52CiAgICAgZWNvcmVfaW1mX2NvbnRl
eHRfY2xpZW50X3dpbmRvd19zZXQoaW1mQ29udGV4dC5nZXQoKSwgcmVpbnRlcnByZXRfY2FzdDx2
b2lkKj4oZWNvcmVfZXZhc193aW5kb3dfZ2V0KGVjb3JlRXZhcykpKTsKICAgICBlY29yZV9pbWZf
Y29udGV4dF9jbGllbnRfY2FudmFzX3NldChpbWZDb250ZXh0LmdldCgpLCBjYW52YXMpOwogCi0g
ICAgcmV0dXJuIGltZkNvbnRleHQucmVsZWFzZSgpOworICAgIHJldHVybiBpbWZDb250ZXh0Owog
fQogCiB2b2lkIElucHV0TWV0aG9kQ29udGV4dEVmbDo6aGFuZGxlTW91c2VVcEV2ZW50KGNvbnN0
IEV2YXNfRXZlbnRfTW91c2VfVXAqKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL2VmbC9JbnB1dE1ldGhvZENvbnRleHRFZmwuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9lZmwvSW5wdXRNZXRob2RDb250ZXh0RWZsLmgKaW5kZXggMTJkZTBhY2FhZThiNjE0MjU5ZWVi
MTkxNDg4MWFiYzZmMTRiNGMyZi4uNzVmMGI2ZGNhMzVjOTExZTk5MTU2YmQ2Yjc1N2Q1MGNiMGNm
OTMyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9JbnB1dE1ldGhv
ZENvbnRleHRFZmwuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL0lucHV0TWV0
aG9kQ29udGV4dEVmbC5oCkBAIC0yNSw2ICsyNSw3IEBACiAjaW5jbHVkZSA8RXZhcy5oPgogI2lu
Y2x1ZGUgPHd0Zi9Pd25QdHIuaD4KICNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgorI2luY2x1
ZGUgPHd0Zi9lZmwvVW5pcXVlUHRyRWZsLmg+CiAKIGNsYXNzIEV3a1ZpZXc7CiAKQEAgLTM2LDEx
ICszNywxMSBAQCBjbGFzcyBJbnB1dE1ldGhvZENvbnRleHRFZmwgewogcHVibGljOgogICAgIHN0
YXRpYyBQYXNzT3duUHRyPElucHV0TWV0aG9kQ29udGV4dEVmbD4gY3JlYXRlKEV3a1ZpZXcqIHZp
ZXdJbXBsLCBFdmFzKiBjYW52YXMpCiAgICAgewotICAgICAgICBPd25QdHI8RWNvcmVfSU1GX0Nv
bnRleHQ+IGNvbnRleHQgPSBjcmVhdGVJTUZDb250ZXh0KGNhbnZhcyk7CisgICAgICAgIEVmbFVu
aXF1ZVB0cjxFY29yZV9JTUZfQ29udGV4dD4gY29udGV4dCA9IGNyZWF0ZUlNRkNvbnRleHQoY2Fu
dmFzKTsKICAgICAgICAgaWYgKCFjb250ZXh0KQogICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7
CiAKLSAgICAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBJbnB1dE1ldGhvZENvbnRleHRFZmwodmll
d0ltcGwsIGNvbnRleHQucmVsZWFzZSgpKSk7CisgICAgICAgIHJldHVybiBhZG9wdFB0cihuZXcg
SW5wdXRNZXRob2RDb250ZXh0RWZsKHZpZXdJbXBsLCBzdGQ6Om1vdmUoY29udGV4dCkpKTsKICAg
ICB9CiAgICAgfklucHV0TWV0aG9kQ29udGV4dEVmbCgpOwogCkBAIC00OSwxNCArNTAsMTQgQEAg
cHVibGljOgogICAgIHZvaWQgdXBkYXRlVGV4dElucHV0U3RhdGUoKTsKIAogcHJpdmF0ZToKLSAg
ICBJbnB1dE1ldGhvZENvbnRleHRFZmwoRXdrVmlldyosIFBhc3NPd25QdHI8RWNvcmVfSU1GX0Nv
bnRleHQ+KTsKKyAgICBJbnB1dE1ldGhvZENvbnRleHRFZmwoRXdrVmlldyosIEVmbFVuaXF1ZVB0
cjxFY29yZV9JTUZfQ29udGV4dD4pOwogCi0gICAgc3RhdGljIFBhc3NPd25QdHI8RWNvcmVfSU1G
X0NvbnRleHQ+IGNyZWF0ZUlNRkNvbnRleHQoRXZhcyogY2FudmFzKTsKKyAgICBzdGF0aWMgRWZs
VW5pcXVlUHRyPEVjb3JlX0lNRl9Db250ZXh0PiBjcmVhdGVJTUZDb250ZXh0KEV2YXMqIGNhbnZh
cyk7CiAgICAgc3RhdGljIHZvaWQgb25JTUZJbnB1dFNlcXVlbmNlQ29tcGxldGUodm9pZCogZGF0
YSwgRWNvcmVfSU1GX0NvbnRleHQqLCB2b2lkKiBldmVudEluZm8pOwogICAgIHN0YXRpYyB2b2lk
IG9uSU1GUHJlZWRpdFNlcXVlbmNlQ2hhbmdlZCh2b2lkKiBkYXRhLCBFY29yZV9JTUZfQ29udGV4
dCosIHZvaWQqIGV2ZW50SW5mbyk7CiAKICAgICBFd2tWaWV3KiBtX3ZpZXc7Ci0gICAgT3duUHRy
PEVjb3JlX0lNRl9Db250ZXh0PiBtX2NvbnRleHQ7CisgICAgRWZsVW5pcXVlUHRyPEVjb3JlX0lN
Rl9Db250ZXh0PiBtX2NvbnRleHQ7CiAgICAgYm9vbCBtX2ZvY3VzZWQ7CiB9OwogCmRpZmYgLS1n
aXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYjIzNjJhZGIxNGIx
ZDYzOWQ4ZjcwMzJkMDAyZjU4MmMwMzNhNjZjYS4uMjUxNTY4NzEzYTA3OTE1MTA4MjgxNzAyOThk
NjA3MDkzM2NjY2I2YiAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0No
YW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDE0LTAzLTE5ICBIeW93b24gS2ltICA8aHcxMDA4
LmtpbUBzYW1zdW5nLmNvbT4KKworICAgICAgICBNb3ZlIHRvIHVzaW5nIHN0ZDo6dW5pcXVlX3B0
ciBmb3IgRUZMIG9iamVjdHMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xMjk4NTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBFZmxVbmlxdWVQdHIgaXMgYSB0ZW1wbGF0ZSBhbGlhcyBvZiBzdGQ6OnVuaXF1
ZV9wdHIKKyAgICAgICAgd2l0aCBhIGN1c3RvbSBkZWxldGVyIGZvciBlYWNoIEVmbCBPYmplY3Rz
LCB3aGljaCBpcyBtb3RpdmF0ZWQgYnkgR1VuaXF1ZVB0ci4KKyAgICAgICAgVGhpcyBwYXRjaCBy
ZXBsYWNlcyB1c2VzIG9mIE93blB0ciBhbmQgUGFzc093blB0ciBmb3IgRWZsIG9iamVjdHMgd2l0
aCBFZmxVbmlxdWVQdHIuCisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9lZmwvRHVtcFJlbmRl
clRyZWUuY3BwOgorICAgICAgICAobWFpbik6CisgICAgICAgICogSW1hZ2VEaWZmL2VmbC9JbWFn
ZURpZmYuY3BwOgorICAgICAgICAoaW5pdEVmbCk6CisgICAgICAgIChtYWluKToKKwogMjAxNC0w
My0xMiAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAg
ICAgVW5yZXZpZXdlZC4gRml4IEdUSysgY21ha2UgYnVpbGQgYWZ0ZXIgcjE2NTQ4OC4KZGlmZiAt
LWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2VmbC9EdW1wUmVuZGVyVHJlZS5jcHAgYi9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9lZmwvRHVtcFJlbmRlclRyZWUuY3BwCmluZGV4IGQ4YTViNTZlYTVl
YWI0NDczMDNiYTljYmVlYmEyODhjMWIxZTlmOGEuLjRjNjkzMTU0MGI0MmI1OTBiMjk2OGI3MGI1
MWM1ZmNmMDQ4OWFkYjQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2VmbC9EdW1w
UmVuZGVyVHJlZS5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvZWZsL0R1bXBSZW5kZXJU
cmVlLmNwcApAQCAtNTAsNiArNTAsNyBAQAogI2luY2x1ZGUgPHVuaXN0ZC5oPgogI2luY2x1ZGUg
PHd0Zi9Bc3NlcnRpb25zLmg+CiAjaW5jbHVkZSA8d3RmL093blB0ci5oPgorI2luY2x1ZGUgPHd0
Zi9lZmwvVW5pcXVlUHRyRWZsLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogI2lu
Y2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KIApAQCAtNDU3LDcgKzQ1OCw3IEBAIGlu
dCBtYWluKGludCBhcmdjLCBjaGFyKiogYXJndikKIAogICAgIFdURkluc3RhbGxSZXBvcnRCYWNr
dHJhY2VPbkNyYXNoSG9vaygpOwogCi0gICAgT3duUHRyPEVjb3JlX0V2YXM+IGVjb3JlRXZhcyA9
IGFkb3B0UHRyKGluaXRFY29yZUV2YXMoKSk7CisgICAgRWZsVW5pcXVlUHRyPEVjb3JlX0V2YXM+
IGVjb3JlRXZhcyhpbml0RWNvcmVFdmFzKCkpOwogICAgIGJyb3dzZXIgPSBEdW1wUmVuZGVyVHJl
ZUNocm9tZTo6Y3JlYXRlKGVjb3JlX2V2YXNfZ2V0KGVjb3JlRXZhcy5nZXQoKSkpOwogICAgIGFk
ZEZvbnRzVG9FbnZpcm9ubWVudCgpOwogCkBAIC00NzAsNyArNDcxLDcgQEAgaW50IG1haW4oaW50
IGFyZ2MsIGNoYXIqKiBhcmd2KQogICAgICAgICAgICAgcnVuVGVzdChhcmd2W2ldKTsKICAgICB9
CiAKLSAgICBlY29yZUV2YXMuY2xlYXIoKTsKKyAgICBlY29yZUV2YXMucmVzZXQoKTsKIAogICAg
IHNodXRkb3duRWZsKCk7CiAgICAgcmV0dXJuIEVYSVRfU1VDQ0VTUzsKZGlmZiAtLWdpdCBhL1Rv
b2xzL0ltYWdlRGlmZi9lZmwvSW1hZ2VEaWZmLmNwcCBiL1Rvb2xzL0ltYWdlRGlmZi9lZmwvSW1h
Z2VEaWZmLmNwcAppbmRleCA2NTIwZjRlNmE2Mjc1ZWQyMDIxYzQ3YzY5NTRjMGUzZGIxZWIxZjIy
Li42Y2ZmOGJiOWQ4ZmQ4ZTMxMjEyZmE0YmY2ZGUwZjg3MmQxMjJlZmQ4IDEwMDY0NAotLS0gYS9U
b29scy9JbWFnZURpZmYvZWZsL0ltYWdlRGlmZi5jcHAKKysrIGIvVG9vbHMvSW1hZ2VEaWZmL2Vm
bC9JbWFnZURpZmYuY3BwCkBAIC00MiwxMSArNDIsMTAgQEAKICNpbmNsdWRlIDxzeXMvc3RhdC5o
PgogI2luY2x1ZGUgPHN5cy90eXBlcy5oPgogI2luY2x1ZGUgPHVuaXN0ZC5oPgotI2luY2x1ZGUg
PHd0Zi9Pd25QdHIuaD4KLSNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgogI2luY2x1ZGUgPHd0
Zi9QYXNzUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgogI2luY2x1ZGUg
PHd0Zi9lZmwvUmVmUHRyRWZsLmg+CisjaW5jbHVkZSA8d3RmL2VmbC9VbmlxdWVQdHJFZmwuaD4K
IAogZW51bSBQaXhlbENvbXBvbmVudCB7CiAgICAgUmVkLApAQCAtNTUsNyArNTQsNyBAQCBlbnVt
IFBpeGVsQ29tcG9uZW50IHsKICAgICBBbHBoYQogfTsKIAotc3RhdGljIE93blB0cjxFY29yZV9F
dmFzPiBnRWNvcmVFdmFzOworc3RhdGljIEVmbFVuaXF1ZVB0cjxFY29yZV9FdmFzPiBnRWNvcmVF
dmFzOwogc3RhdGljIGRvdWJsZSBnVG9sZXJhbmNlID0gMDsKIAogc3RhdGljIHZvaWQgYWJvcnRX
aXRoRXJyb3JNZXNzYWdlKGNvbnN0IGNoYXIqIGVycm9yTWVzc2FnZSk7CkBAIC0zMTgsNyArMzE3
LDcgQEAgc3RhdGljIEV2YXMqIGluaXRFZmwoKQogICAgIGVjb3JlX2luaXQoKTsKICAgICBlY29y
ZV9ldmFzX2luaXQoKTsKIAotICAgIGdFY29yZUV2YXMgPSBhZG9wdFB0cihlY29yZV9ldmFzX2J1
ZmZlcl9uZXcoMSwgMSkpOworICAgIGdFY29yZUV2YXMgPSBFZmxVbmlxdWVQdHI8RWNvcmVfRXZh
cz4oZWNvcmVfZXZhc19idWZmZXJfbmV3KDEsIDEpKTsKICAgICBFdmFzKiBldmFzID0gZWNvcmVf
ZXZhc19nZXQoZ0Vjb3JlRXZhcy5nZXQoKSk7CiAgICAgaWYgKCFldmFzKQogICAgICAgICBhYm9y
dFdpdGhFcnJvck1lc3NhZ2UoImNvdWxkIG5vdCBjcmVhdGUgRWNvcmVfRXZhcyBidWZmZXIiKTsK
QEAgLTM2MSw3ICszNjAsNyBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciogYXJndltdKQogICAg
ICAgICBmZmx1c2goc3Rkb3V0KTsKICAgICB9CiAKLSAgICBnRWNvcmVFdmFzLmNsZWFyKCk7IC8v
IE1ha2Ugc3VyZSBlY29yZV9ldmFzX2ZyZWUgaXMgY2FsbGVkIGJlZm9yZSB0aGUgRUZMIGFyZSBz
aHV0IGRvd24KKyAgICBnRWNvcmVFdmFzLnJlc2V0KCk7IC8vIE1ha2Ugc3VyZSBlY29yZV9ldmFz
X2ZyZWUgaXMgY2FsbGVkIGJlZm9yZSB0aGUgRUZMIGFyZSBzaHV0IGRvd24KIAogICAgIHNodXRk
b3duRWZsKCk7CiAgICAgcmV0dXJuIEVYSVRfU1VDQ0VTUzsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>227185</attachid>
            <date>2014-03-19 08:41:52 -0700</date>
            <delta_ts>2014-03-19 15:09:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-129853-20140320004129.patch</filename>
            <type>text/plain</type>
            <size>36122</size>
            <attacher name="Hyowon Kim">hw1008.kim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY1ODkxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGY1ZTk0ZWVkMTRhNGFlNDA3N2Y0ZTk0
OTk3YzZlY2FkYjY0ZDkwOTEuLjAwNmMzZWU4MTcyNzBjOTNjZWYyZDM2NjM2NDRjMWIzY2Y5YjUw
ZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjYgQEAKKzIwMTQtMDMtMTkgIEh5b3dvbiBLaW0gIDxodzEwMDgu
a2ltQHNhbXN1bmcuY29tPgorCisgICAgICAgIE1vdmUgdG8gdXNpbmcgc3RkOjp1bmlxdWVfcHRy
IGZvciBFRkwgb2JqZWN0cy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTEyOTg1MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIEVmbFVuaXF1ZVB0ciBpcyBhIHRlbXBsYXRlIGFsaWFzIG9mIHN0ZDo6dW5pcXVl
X3B0cgorICAgICAgICB3aXRoIGEgY3VzdG9tIGRlbGV0ZXIgZm9yIGVhY2ggRWZsIE9iamVjdHMs
IHdoaWNoIGlzIG1vdGl2YXRlZCBieSBHVW5pcXVlUHRyLgorICAgICAgICBUaGlzIHBhdGNoIHJl
cGxhY2VzIHVzZXMgb2YgT3duUHRyIGFuZCBQYXNzT3duUHRyIGZvciBFZmwgb2JqZWN0cyB3aXRo
IEVmbFVuaXF1ZVB0ci4KKworICAgICAgICAqIHd0Zi9Pd25QdHJDb21tb24uaDoKKyAgICAgICAg
KiB3dGYvUGxhdGZvcm1FZmwuY21ha2U6CisgICAgICAgICogd3RmL1J1bkxvb3AuaDoKKyAgICAg
ICAgKiB3dGYvZWZsL01haW5UaHJlYWRFZmwuY3BwOgorICAgICAgICAoV1RGOjpwaXBlT2JqZWN0
KToKKyAgICAgICAgKFdURjo6aW5pdGlhbGl6ZU1haW5UaHJlYWRQbGF0Zm9ybSk6CisgICAgICAg
ICogd3RmL2VmbC9Pd25QdHJFZmwuY3BwOiBSZW1vdmVkLgorICAgICAgICAqIHd0Zi9lZmwvUnVu
TG9vcEVmbC5jcHA6CisgICAgICAgIChXVEY6OlJ1bkxvb3A6OlJ1bkxvb3ApOgorICAgICAgICAq
IHd0Zi9lZmwvVW5pcXVlUHRyRWZsLmg6IEFkZGVkLgorICAgICAgICAoV1RGOjpFZmxQdHJEZWxl
dGVyOjpvcGVyYXRvcigpKToKKwogMjAxNC0wMy0xOCAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBs
ZS5jb20+CiAKICAgICAgICAgUmVkdWNlIHVzZSBvZiBkZXByZWNhdGVkQ2hhcmFjdGVycyBpbiBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKaW5kZXggNzU3ZGM4NjY4ZDZiMzVhMzVlYWMxM2JjMDcxMDUwNDVmYWY0
ZWRiMi4uZGRjMzNmODE4MjE5YTQ4MmQ5ZDQ0ODhiYzg4YTUxMmFjOTZiZmFhNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDI3IEBACisyMDE0LTAzLTE5ICBIeW93b24gS2ltICA8aHcxMDA4LmtpbUBz
YW1zdW5nLmNvbT4KKworICAgICAgICBNb3ZlIHRvIHVzaW5nIHN0ZDo6dW5pcXVlX3B0ciBmb3Ig
RUZMIG9iamVjdHMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMjk4NTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBFZmxVbmlxdWVQdHIgaXMgYSB0ZW1wbGF0ZSBhbGlhcyBvZiBzdGQ6OnVuaXF1ZV9wdHIK
KyAgICAgICAgd2l0aCBhIGN1c3RvbSBkZWxldGVyIGZvciBlYWNoIEVmbCBPYmplY3RzLCB3aGlj
aCBpcyBtb3RpdmF0ZWQgYnkgR1VuaXF1ZVB0ci4KKyAgICAgICAgVGhpcyBwYXRjaCByZXBsYWNl
cyB1c2VzIG9mIE93blB0ciBhbmQgUGFzc093blB0ciBmb3IgRWZsIG9iamVjdHMgd2l0aCBFZmxV
bmlxdWVQdHIuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLiBObyBuZXcgZnVuY3Rpb25hbGl0eS4K
KworICAgICAgICAqIHBsYXRmb3JtL2VmbC9FZmxTY3JlZW5VdGlsaXRpZXMuaDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9lZmwvUmVuZGVyVGhlbWVFZmwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyVGhlbWVFZmw6OlRoZW1lUGFydENhY2hlRW50cnk6OmNyZWF0ZSk6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJUaGVtZUVmbDo6bG9hZFRoZW1lKToKKyAgICAgICAgKiBwbGF0Zm9ybS9lZmwv
UmVuZGVyVGhlbWVFZmwuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9JY29uLmg6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZWZsL0V2YXNHTENvbnRleHQuaDoKKyAgICAgICAg
KFdlYkNvcmU6OkV2YXNHTENvbnRleHQ6OmNyZWF0ZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvZWZsL0V2YXNHTFN1cmZhY2UuaDoKKyAgICAgICAgKFdlYkNvcmU6OkV2YXNHTFN1cmZh
Y2U6OmNyZWF0ZSk6CisKIDIwMTQtMDMtMTkgIENsYXVkaW8gU2FhdmVkcmEgIDxjc2FhdmVkcmFA
aWdhbGlhLmNvbT4KIAogICAgICAgICBbR1N0cmVhbWVyXSBDbGVhbiB0aW1lb3V0IHNvdXJjZSBp
ZHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJL
aXQvZWZsL0NoYW5nZUxvZwppbmRleCBhMWVhMjlhMjhlNmRjZmE5NjA5MGVmOTU0ODBhMzI2N2Q1
MjAzNDk4Li5lOTE5NjM0NDczNWI1MjAwYmQ0Yzg5ZDA0YjY2NzA1YjJlOTk0ODlmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9lZmwv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMjggQEAKKzIwMTQtMDMtMTkgIEh5b3dvbiBLaW0gIDxodzEw
MDgua2ltQHNhbXN1bmcuY29tPgorCisgICAgICAgIE1vdmUgdG8gdXNpbmcgc3RkOjp1bmlxdWVf
cHRyIGZvciBFRkwgb2JqZWN0cy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTEyOTg1MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEVmbFVuaXF1ZVB0ciBpcyBhIHRlbXBsYXRlIGFsaWFzIG9mIHN0ZDo6dW5p
cXVlX3B0cgorICAgICAgICB3aXRoIGEgY3VzdG9tIGRlbGV0ZXIgZm9yIGVhY2ggRWZsIE9iamVj
dHMsIHdoaWNoIGlzIG1vdGl2YXRlZCBieSBHVW5pcXVlUHRyLgorICAgICAgICBUaGlzIHBhdGNo
IHJlcGxhY2VzIHVzZXMgb2YgT3duUHRyIGFuZCBQYXNzT3duUHRyIGZvciBFZmwgb2JqZWN0cyB3
aXRoIEVmbFVuaXF1ZVB0ci4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0FjY2VsZXJhdGVk
Q29tcG9zaXRpbmdDb250ZXh0RWZsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFjY2VsZXJhdGVk
Q29tcG9zaXRpbmdDb250ZXh0Ojppbml0aWFsaXplKToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9y
dC9BY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dEVmbC5oOgorICAgICAgICAqIFdlYkNvcmVT
dXBwb3J0L0JhdHRlcnlDbGllbnRFZmwuaDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9EdW1w
UmVuZGVyVHJlZVN1cHBvcnRFZmwuaDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9FZGl0b3JD
bGllbnRFZmwuaDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFtZU5ldHdvcmtpbmdDb250
ZXh0RWZsLmg6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvTmF2aWdhdG9yQ29udGVudFV0aWxz
Q2xpZW50RWZsLmg6CisgICAgICAgICogZXdrL2V3a192aWV3LmNwcDoKKyAgICAgICAgKF9ld2tf
dmlld19lZGl0b3JfY29tbWFuZF9zdHJpbmdfZ2V0KToKKyAgICAgICAgKiB0ZXN0cy9Vbml0VGVz
dFV0aWxzL0VXS1Rlc3RWaWV3LmNwcDoKKyAgICAgICAgKEVXS1VuaXRUZXN0czo6RVdLVGVzdFZp
ZXc6OmluaXQpOgorICAgICAgICAqIHRlc3RzL1VuaXRUZXN0VXRpbHMvRVdLVGVzdFZpZXcuaDoK
KwogMjAxNC0wMy0xNCAgTWFjaWVqIFN0YWNob3dpYWsgIDxtanNAYXBwbGUuY29tPgogCiAgICAg
ICAgIFJlcGxhY2UgIkFwcGxlIENvbXB1dGVyLCBJbmMuIiB3aXRoICJBcHBsZSBJbmMuIiBpbiBj
b3B5cmlnaHQgaGVhZGVycwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDU0ODc2YTgwYjA2ZTE3YzZmMWEwYTQ0MjQ5
MjRiOGVkODBkMDNiNDguLjFhODBlMjU1ZWE1MzA1MTU3YTA5NTJiNTkzMTc5NGZjODQwMTljYmYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNiBAQAorMjAxNC0wMy0xOSAgSHlvd29uIEtpbSAgPGh3
MTAwOC5raW1Ac2Ftc3VuZy5jb20+CisKKyAgICAgICAgTW92ZSB0byB1c2luZyBzdGQ6OnVuaXF1
ZV9wdHIgZm9yIEVGTCBvYmplY3RzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTI5ODUzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgRWZsVW5pcXVlUHRyIGlzIGEgdGVtcGxhdGUgYWxpYXMgb2Ygc3RkOjp1
bmlxdWVfcHRyCisgICAgICAgIHdpdGggYSBjdXN0b20gZGVsZXRlciBmb3IgZWFjaCBFZmwgT2Jq
ZWN0cywgd2hpY2ggaXMgbW90aXZhdGVkIGJ5IEdVbmlxdWVQdHIuCisgICAgICAgIFRoaXMgcGF0
Y2ggcmVwbGFjZXMgdXNlcyBvZiBPd25QdHIgYW5kIFBhc3NPd25QdHIgZm9yIEVmbCBvYmplY3Rz
IHdpdGggRWZsVW5pcXVlUHRyLgorCisgICAgICAgICogUGxhdGZvcm0vTW9kdWxlLmg6CisgICAg
ICAgICogUGxhdGZvcm0vZWZsL01vZHVsZUVmbC5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok1vZHVs
ZTo6bG9hZCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvRXdrVmlldy5jcHA6CisgICAg
ICAgIChFd2tWaWV3OjpFd2tWaWV3KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9Fd2tW
aWV3Lmg6CisgICAgICAgICogVUlQcm9jZXNzL2VmbC9JbnB1dE1ldGhvZENvbnRleHRFZmwuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpJbnB1dE1ldGhvZENvbnRleHRFZmw6OklucHV0TWV0aG9kQ29u
dGV4dEVmbCk6CisgICAgICAgIChXZWJLaXQ6OklucHV0TWV0aG9kQ29udGV4dEVmbDo6Y3JlYXRl
SU1GQ29udGV4dCk6CisgICAgICAgICogVUlQcm9jZXNzL2VmbC9JbnB1dE1ldGhvZENvbnRleHRF
ZmwuaDoKKyAgICAgICAgKFdlYktpdDo6SW5wdXRNZXRob2RDb250ZXh0RWZsOjpjcmVhdGUpOgor
CiAyMDE0LTAzLTE4ICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgogCiAg
ICAgICAgIFtpT1NdW1dlYktpdDJdIFByb3ZpZGUgZ2VuZXJpYyBzb2Z0d2FyZS1zbmFwc2hvdHRp
bmcgQVBJCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9Pd25QdHJDb21tb24uaCBiL1NvdXJj
ZS9XVEYvd3RmL093blB0ckNvbW1vbi5oCmluZGV4IGExOTYyMWUxM2E5NjBhMzNjYWVmMGNhNjUy
M2M3YzEyNjVkNGQ0NWUuLmYyYjA4NzVlYjU5YjA4N2RhYzdkM2UzMjgxMGIxYjhmYzAwMTc4OWQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL093blB0ckNvbW1vbi5oCisrKyBiL1NvdXJjZS9X
VEYvd3RmL093blB0ckNvbW1vbi5oCkBAIC0yOCwyMCArMjgsNiBAQAogI2lmbmRlZiBXVEZfT3du
UHRyQ29tbW9uX2gKICNkZWZpbmUgV1RGX093blB0ckNvbW1vbl9oCiAKLSNpZiBQTEFURk9STShF
RkwpCi10eXBlZGVmIHN0cnVjdCBfRWNvcmVfRXZhcyBFY29yZV9FdmFzOwotdHlwZWRlZiBzdHJ1
Y3QgX0Vjb3JlX0lNRl9Db250ZXh0IEVjb3JlX0lNRl9Db250ZXh0OwotdHlwZWRlZiBzdHJ1Y3Qg
X0Vjb3JlX1BpcGUgRWNvcmVfUGlwZTsKLXR5cGVkZWYgc3RydWN0IF9FaW5hX0hhc2ggRWluYV9I
YXNoOwotdHlwZWRlZiBzdHJ1Y3QgX0VpbmFfTW9kdWxlIEVpbmFfTW9kdWxlOwotI2lmIFVTRShF
TykKLXR5cGVkZWYgc3RydWN0IF9Fb19PcGFxdWUgRXZhc19PYmplY3Q7Ci0jZWxzZQotdHlwZWRl
ZiBzdHJ1Y3QgX0V2YXNfT2JqZWN0IEV2YXNfT2JqZWN0OwotI2VuZGlmCi10eXBlZGVmIHN0cnVj
dCBfRXZhc19HTCBFdmFzX0dMOwotI2VuZGlmCi0KIG5hbWVzcGFjZSBXVEYgewogCiAgICAgdGVt
cGxhdGUgPHR5cGVuYW1lIFQ+IGlubGluZSB2b2lkIGRlbGV0ZU93bmVkUHRyKFQqIHB0cikKQEAg
LTUxLDE2ICszNyw2IEBAIG5hbWVzcGFjZSBXVEYgewogICAgICAgICAgICAgZGVsZXRlIHB0cjsK
ICAgICB9CiAKLSNpZiBQTEFURk9STShFRkwpCi0gICAgV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQg
ZGVsZXRlT3duZWRQdHIoRWNvcmVfRXZhcyopOwotICAgIFdURl9FWFBPUlRfUFJJVkFURSB2b2lk
IGRlbGV0ZU93bmVkUHRyKEVjb3JlX0lNRl9Db250ZXh0Kik7Ci0gICAgV1RGX0VYUE9SVF9QUklW
QVRFIHZvaWQgZGVsZXRlT3duZWRQdHIoRWNvcmVfUGlwZSopOwotICAgIFdURl9FWFBPUlRfUFJJ
VkFURSB2b2lkIGRlbGV0ZU93bmVkUHRyKEVpbmFfSGFzaCopOwotICAgIFdURl9FWFBPUlRfUFJJ
VkFURSB2b2lkIGRlbGV0ZU93bmVkUHRyKEVpbmFfTW9kdWxlKik7Ci0gICAgV1RGX0VYUE9SVF9Q
UklWQVRFIHZvaWQgZGVsZXRlT3duZWRQdHIoRXZhc19PYmplY3QqKTsKLSAgICBXVEZfRVhQT1JU
X1BSSVZBVEUgdm9pZCBkZWxldGVPd25lZFB0cihFdmFzX0dMKik7Ci0jZW5kaWYKLQogfSAvLyBu
YW1lc3BhY2UgV1RGCiAKICNlbmRpZiAvLyBXVEZfT3duUHRyQ29tbW9uX2gKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtRWZsLmNtYWtlIGIvU291cmNlL1dURi93dGYvUGxhdGZv
cm1FZmwuY21ha2UKaW5kZXggYjRlMjEwYWMzZWRmM2RlNWZjZWI3NWI5ODMzMzJhYWJiZWE0ZGQx
Yy4uOGRmN2M3YWU3ZTZiNTIyMDE1ZDkyM2NiYzMwMWE4YmMzYTg5ZDY4ZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dURi93dGYvUGxhdGZvcm1FZmwuY21ha2UKKysrIGIvU291cmNlL1dURi93dGYvUGxh
dGZvcm1FZmwuY21ha2UKQEAgLTEsNiArMSw1IEBACiBsaXN0KEFQUEVORCBXVEZfU09VUkNFUwog
ICAgIGVmbC9NYWluVGhyZWFkRWZsLmNwcAotICAgIGVmbC9Pd25QdHJFZmwuY3BwCiAgICAgZWZs
L1JlZlB0ckVmbC5jcHAKICAgICBlZmwvUnVuTG9vcEVmbC5jcHAKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dURi93dGYvUnVuTG9vcC5oIGIvU291cmNlL1dURi93dGYvUnVuTG9vcC5oCmluZGV4IDAy
YTcwY2E1MjI4YjcwZmZjMzYyZjFmOTE1NzNkN2JjZjk4YmUyZmMuLjc5OTBjZWJmZDkxOTAzZWE2
NWI1YTgxNzFjYTQzZWI0MjQ0MGExYjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1J1bkxv
b3AuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9SdW5Mb29wLmgKQEAgLTQyLDYgKzQyLDcgQEAKIAog
I2lmIFBMQVRGT1JNKEVGTCkKICNpbmNsdWRlIDxFY29yZS5oPgorI2luY2x1ZGUgPHd0Zi9lZmwv
VW5pcXVlUHRyRWZsLmg+CiAjZW5kaWYKIAogbmFtZXNwYWNlIFdURiB7CkBAIC0xNTEsNyArMTUy
LDcgQEAgcHJpdmF0ZToKICAgICBpbnQgbV9uZXN0aW5nTGV2ZWw7CiAjZWxpZiBQTEFURk9STShF
RkwpCiAgICAgTXV0ZXggbV9waXBlTG9jazsKLSAgICBPd25QdHI8RWNvcmVfUGlwZT4gbV9waXBl
OworICAgIEVmbFVuaXF1ZVB0cjxFY29yZV9QaXBlPiBtX3BpcGU7CiAKICAgICBNdXRleCBtX3dh
a2VVcEV2ZW50UmVxdWVzdGVkTG9jazsKICAgICBib29sIG1fd2FrZVVwRXZlbnRSZXF1ZXN0ZWQ7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9lZmwvTWFpblRocmVhZEVmbC5jcHAgYi9Tb3Vy
Y2UvV1RGL3d0Zi9lZmwvTWFpblRocmVhZEVmbC5jcHAKaW5kZXggYTI1YjM0NWI2Y2YyOTQxMmUw
ZTdmNmYxMjU0YzEyZjllMTNhZGM0OC4uYmY5ZGViNDdiNjk1ZTZjYzEyMDkwZThjYTg4NTdjMjgz
ZjE1NjhhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvZWZsL01haW5UaHJlYWRFZmwuY3Bw
CisrKyBiL1NvdXJjZS9XVEYvd3RmL2VmbC9NYWluVGhyZWFkRWZsLmNwcApAQCAtMzUsMTUgKzM1
LDE0IEBACiAjaW5jbHVkZSAiTWFpblRocmVhZC5oIgogCiAjaW5jbHVkZSA8RWNvcmUuaD4KLSNp
bmNsdWRlIDx3dGYvT3duUHRyLmg+Ci0jaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KICNpbmNs
dWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CisjaW5jbHVkZSA8d3RmL2VmbC9VbmlxdWVQdHJFZmwu
aD4KIAogbmFtZXNwYWNlIFdURiB7CiAKLXN0YXRpYyBPd25QdHI8RWNvcmVfUGlwZT4mIHBpcGVP
YmplY3QoKQorc3RhdGljIEVmbFVuaXF1ZVB0cjxFY29yZV9QaXBlPiYgcGlwZU9iamVjdCgpCiB7
Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKE93blB0cjxFY29yZV9QaXBlPiwg
cGlwZU9iamVjdCwgKCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChFZmxV
bmlxdWVQdHI8RWNvcmVfUGlwZT4sIHBpcGVPYmplY3QsICgpKTsKICAgICByZXR1cm4gcGlwZU9i
amVjdDsKIH0KIApAQCAtNTQsNyArNTMsNyBAQCBzdGF0aWMgdm9pZCBtb25pdG9yRGlzcGF0Y2hG
dW5jdGlvbnModm9pZCosIHZvaWQqLCB1bnNpZ25lZCBpbnQpCiAKIHZvaWQgaW5pdGlhbGl6ZU1h
aW5UaHJlYWRQbGF0Zm9ybSgpCiB7Ci0gICAgcGlwZU9iamVjdCgpID0gYWRvcHRQdHIoZWNvcmVf
cGlwZV9hZGQobW9uaXRvckRpc3BhdGNoRnVuY3Rpb25zLCAwKSk7CisgICAgcGlwZU9iamVjdCgp
ID0gRWZsVW5pcXVlUHRyPEVjb3JlX1BpcGU+KGVjb3JlX3BpcGVfYWRkKG1vbml0b3JEaXNwYXRj
aEZ1bmN0aW9ucywgMCkpOwogfQogCiB2b2lkIHNjaGVkdWxlRGlzcGF0Y2hGdW5jdGlvbnNPbk1h
aW5UaHJlYWQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvZWZsL093blB0ckVmbC5jcHAg
Yi9Tb3VyY2UvV1RGL3d0Zi9lZmwvT3duUHRyRWZsLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggY2YxMGU4YmRlMjMzNjFjN2NlZDUwNTBmMmFlNDllNzFiMDViZjExYy4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9l
ZmwvT3duUHRyRWZsLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDc1ICswLDAgQEAKLS8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMTEgUHJvRlVTSU9OIGVtYmVkZGVkIHN5c3RlbXMKLSAqIENvcHlyaWdo
dCAoQykgMjAxMSBTYW1zdW5nIEVsZWN0cm9uaWNzCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0g
KiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJPd25QdHIu
aCIKLQotI2luY2x1ZGUgPEVjb3JlLmg+Ci0jaW5jbHVkZSA8RWNvcmVfRXZhcy5oPgotI2luY2x1
ZGUgPEVjb3JlX0lNRi5oPgotI2luY2x1ZGUgPEVpbmEuaD4KLSNpbmNsdWRlIDxFdmFzLmg+Ci0j
aW5jbHVkZSA8RXZhc19HTC5oPgotCi1uYW1lc3BhY2UgV1RGIHsKLQotdm9pZCBkZWxldGVPd25l
ZFB0cihFY29yZV9FdmFzKiBwdHIpCi17Ci0gICAgaWYgKHB0cikKLSAgICAgICAgZWNvcmVfZXZh
c19mcmVlKHB0cik7Ci19Ci0KLXZvaWQgZGVsZXRlT3duZWRQdHIoRWNvcmVfUGlwZSogcHRyKQot
ewotICAgIGlmIChwdHIpCi0gICAgICAgIGVjb3JlX3BpcGVfZGVsKHB0cik7Ci19Ci0KLXZvaWQg
ZGVsZXRlT3duZWRQdHIoRWluYV9IYXNoKiBwdHIpCi17Ci0gICAgaWYgKHB0cikKLSAgICAgICAg
ZWluYV9oYXNoX2ZyZWUocHRyKTsKLX0KLQotdm9pZCBkZWxldGVPd25lZFB0cihFaW5hX01vZHVs
ZSogcHRyKQotewotICAgIGlmIChwdHIpCi0gICAgICAgIGVpbmFfbW9kdWxlX2ZyZWUocHRyKTsg
Ly8gSWYgbW9kdWxlIHdhc24ndCB1bmxvYWRlZCwgZWluYV9tb2R1bGVfZnJlZSgpIGNhbGxzIGVp
bmFfbW9kdWxlX3VubG9hZCgpLgotfQotCi12b2lkIGRlbGV0ZU93bmVkUHRyKEVjb3JlX0lNRl9D
b250ZXh0KiBwdHIpCi17Ci0gICAgaWYgKHB0cikKLSAgICAgICAgZWNvcmVfaW1mX2NvbnRleHRf
ZGVsKHB0cik7Ci19Ci0KLXZvaWQgZGVsZXRlT3duZWRQdHIoRXZhc19HTCogcHRyKQotewotICAg
IGlmIChwdHIpCi0gICAgICAgIGV2YXNfZ2xfZnJlZShwdHIpOwotfQotCi19CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV1RGL3d0Zi9lZmwvUnVuTG9vcEVmbC5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9lZmwv
UnVuTG9vcEVmbC5jcHAKaW5kZXggMDUwZDljZjA0YmZhNzVhZjUyMjgyYThmZWMyY2ZjZDMwZWRm
ZTcxMC4uZTdhMDBlZjY2MjQ0ZDdjOTMzZGMzODQwZjc5MjFhNTU2ZTVkODA3MiAxMDA2NDQKLS0t
IGEvU291cmNlL1dURi93dGYvZWZsL1J1bkxvb3BFZmwuY3BwCisrKyBiL1NvdXJjZS9XVEYvd3Rm
L2VmbC9SdW5Mb29wRWZsLmNwcApAQCAtMzksNyArMzksNyBAQCBuYW1lc3BhY2UgV1RGIHsKIFJ1
bkxvb3A6OlJ1bkxvb3AoKQogICAgIDogbV93YWtlVXBFdmVudFJlcXVlc3RlZChmYWxzZSkKIHsK
LSAgICBtX3BpcGUgPSBhZG9wdFB0cihlY29yZV9waXBlX2FkZCh3YWtlVXBFdmVudCwgdGhpcykp
OworICAgIG1fcGlwZSA9IEVmbFVuaXF1ZVB0cjxFY29yZV9QaXBlPihlY29yZV9waXBlX2FkZCh3
YWtlVXBFdmVudCwgdGhpcykpOwogfQogCiBSdW5Mb29wOjp+UnVuTG9vcCgpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV1RGL3d0Zi9lZmwvVW5pcXVlUHRyRWZsLmggYi9Tb3VyY2UvV1RGL3d0Zi9lZmwv
VW5pcXVlUHRyRWZsLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWI5NzY2ZTRjYTcxMjczNWMwY2FjYzA4NDIxNDhh
NGNiMDU3MWYyYwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvd3RmL2VmbC9VbmlxdWVQ
dHJFZmwuaApAQCAtMCwwICsxLDY5IEBACisvKgorICAgIENvcHlyaWdodCAoQykgMjAxNCBTYW1z
dW5nIEVsZWN0cm9uaWNzCisKKyAgICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91
IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJt
cyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAgICBMaWNlbnNlIGFzIHB1Ymxp
c2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAgICB2ZXJzaW9u
IDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24u
CisKKyAgICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3
aWxsIGJlIHVzZWZ1bCwKKyAgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZl
biB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgICAgTGlicmFyeSBHZW5l
cmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisKKyAgICBZb3Ugc2hvdWxkIGhh
dmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNl
bnNlCisgICAgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJ
Qi4gIElmIG5vdCwgd3JpdGUgdG8KKyAgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJ
bmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICAgIEJvc3RvbiwgTUEgMDIx
MTAtMTMwMSwgVVNBLgorKi8KKworI2lmbmRlZiBVbmlxdWVQdHJFZmxfaAorI2RlZmluZSBVbmlx
dWVQdHJFZmxfaAorCisjaWYgUExBVEZPUk0oRUZMKQorCisjaW5jbHVkZSA8RWNvcmUuaD4KKyNp
bmNsdWRlIDxFY29yZV9FdmFzLmg+CisjaW5jbHVkZSA8RWNvcmVfSU1GLmg+CisjaW5jbHVkZSA8
RWluYS5oPgorI2luY2x1ZGUgPEV2YXMuaD4KKyNpbmNsdWRlIDxFdmFzX0dMLmg+CisKK25hbWVz
cGFjZSBXVEYgeworCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdHJ1Y3QgRWZsUHRyRGVsZXRlciB7
CisgICAgdm9pZCBvcGVyYXRvcigpKFQqIHB0cikgY29uc3QgeyBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsgfQorfTsKKwordGVtcGxhdGU8dHlwZW5hbWUgVD4KK3VzaW5nIEVmbFVuaXF1ZVB0ciA9IHN0
ZDo6dW5pcXVlX3B0cjxULCBFZmxQdHJEZWxldGVyPFQ+PjsKKworI2RlZmluZSBGT1JfRUFDSF9F
RkxfREVMRVRFUihtYWNybykgXAorICAgIG1hY3JvKEVjb3JlX0V2YXMsIGVjb3JlX2V2YXNfZnJl
ZSkgXAorICAgIG1hY3JvKEVjb3JlX0lNRl9Db250ZXh0LCBlY29yZV9pbWZfY29udGV4dF9kZWwp
IFwKKyAgICBtYWNybyhFY29yZV9QaXBlLCBlY29yZV9waXBlX2RlbCkgXAorICAgIG1hY3JvKEVp
bmFfSGFzaCwgZWluYV9oYXNoX2ZyZWUpIFwKKyAgICBtYWNybyhFaW5hX01vZHVsZSwgZWluYV9t
b2R1bGVfZnJlZSkgXAorICAgIG1hY3JvKEV2YXNfT2JqZWN0LCBldmFzX29iamVjdF9kZWwpIFwK
KyAgICBtYWNybyhFdmFzX0dMLCBldmFzX2dsX2ZyZWUpCisKKyNkZWZpbmUgV1RGX0RFRklORV9F
RkxQVFJfREVMRVRFUih0eXBlTmFtZSwgZGVsZXRlckZ1bmMpIFwKKyAgICB0ZW1wbGF0ZTw+IHN0
cnVjdCBFZmxQdHJEZWxldGVyPHR5cGVOYW1lPiBcCisgICAgeyBcCisgICAgICAgIHZvaWQgb3Bl
cmF0b3IoKSAodHlwZU5hbWUqIHB0cikgY29uc3QgXAorICAgICAgICB7IFwKKyAgICAgICAgICAg
IGlmIChwdHIpIFwKKyAgICAgICAgICAgICAgICBkZWxldGVyRnVuYyhwdHIpOyBcCisgICAgICAg
IH0gXAorICAgIH07CisKK0ZPUl9FQUNIX0VGTF9ERUxFVEVSKFdURl9ERUZJTkVfRUZMUFRSX0RF
TEVURVIpCisjdW5kZWYgRk9SX0VBQ0hfRUZMX0RFTEVURVIKKworfSAvLyBuYW1lc3BhY2UgV1RG
CisKK3VzaW5nIFdURjo6RWZsVW5pcXVlUHRyOworCisjZW5kaWYgLy8gUExBVEZPUk0oRUZMKQor
CisjZW5kaWYgLy8gVW5pcXVlUHRyRWZsX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2VmbC9FZmxTY3JlZW5VdGlsaXRpZXMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2VmbC9FZmxTY3JlZW5VdGlsaXRpZXMuaAppbmRleCA3ZDc5NzVhMjRhMGYxZjQzMmEzYWIzMThl
YmMyOTNjMTM2YzkwMTVmLi5kNDgwYTU5YzdlZWE3NjJlNjFjNjA1ODIxN2VkN2E1ZmQ2NWE1ODkz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvRWZsU2NyZWVuVXRpbGl0
aWVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL0VmbFNjcmVlblV0aWxpdGll
cy5oCkBAIC0yNSw2ICsyNSw3IEBACiB0eXBlZGVmIHN0cnVjdCBfRW9fT3BhcXVlIEV2YXM7CiAj
ZWxzZQogdHlwZWRlZiBzdHJ1Y3QgX0V2YXMgRXZhczsKK3R5cGVkZWYgc3RydWN0IF9FY29yZV9F
dmFzIEVjb3JlX0V2YXM7CiAjZW5kaWYKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL1JlbmRlclRoZW1lRWZsLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9SZW5kZXJUaGVtZUVmbC5jcHAKaW5kZXggY2RmY2UwNzhm
MmVjY2M4ZDg2ZTZlOGMwYjVjNjViNDJiNmJkZDY0ZC4uZjg2NDc4NTkxNzUyMzc0Y2JkZGMwNTRm
MzY4YzAxNDgyNjM3ZDNlYiAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZs
L1JlbmRlclRoZW1lRWZsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvUmVu
ZGVyVGhlbWVFZmwuY3BwCkBAIC0xOTEsNyArMTkxLDcgQEAgUGFzc093blB0cjxSZW5kZXJUaGVt
ZUVmbDo6VGhlbWVQYXJ0Q2FjaGVFbnRyeT4gUmVuZGVyVGhlbWVFZmw6OlRoZW1lUGFydENhY2hl
RW4KIAogICAgIE93blB0cjxUaGVtZVBhcnRDYWNoZUVudHJ5PiBlbnRyeSA9IGFkb3B0UHRyKG5l
dyBUaGVtZVBhcnRDYWNoZUVudHJ5KTsKIAotICAgIGVudHJ5LT5tX2NhbnZhcyA9IGFkb3B0UHRy
KGVjb3JlX2V2YXNfYnVmZmVyX25ldyhzaXplLndpZHRoKCksIHNpemUuaGVpZ2h0KCkpKTsKKyAg
ICBlbnRyeS0+bV9jYW52YXMgPSBFZmxVbmlxdWVQdHI8RWNvcmVfRXZhcz4oZWNvcmVfZXZhc19i
dWZmZXJfbmV3KHNpemUud2lkdGgoKSwgc2l6ZS5oZWlnaHQoKSkpOwogICAgIGlmICghZW50cnkt
PmNhbnZhcygpKSB7CiAgICAgICAgIEVJTkFfTE9HX0VSUigiZWNvcmVfZXZhc19idWZmZXJfbmV3
KCVkLCAlZCkgZmFpbGVkLiIsIHNpemUud2lkdGgoKSwgc2l6ZS5oZWlnaHQoKSk7CiAgICAgICAg
IHJldHVybiBudWxscHRyOwpAQCAtNDk2LDcgKzQ5Niw3IEBAIGJvb2wgUmVuZGVyVGhlbWVFZmw6
OmxvYWRUaGVtZSgpCiAgICAgQVNTRVJUKCFtX3RoZW1lUGF0aC5pc0VtcHR5KCkpOwogCiAgICAg
aWYgKCFjYW52YXMoKSkgewotICAgICAgICBtX2NhbnZhcyA9IGFkb3B0UHRyKGVjb3JlX2V2YXNf
YnVmZmVyX25ldygxLCAxKSk7CisgICAgICAgIG1fY2FudmFzID0gRWZsVW5pcXVlUHRyPEVjb3Jl
X0V2YXM+KGVjb3JlX2V2YXNfYnVmZmVyX25ldygxLCAxKSk7CiAgICAgICAgIF9BU1NFUlRfT05f
UkVMRUFTRV9SRVRVUk5fVkFMKGNhbnZhcygpLCBmYWxzZSwKICAgICAgICAgICAgICAgICAiQ291
bGQgbm90IGNyZWF0ZSBjYW52YXMgcmVxdWlyZWQgYnkgdGhlbWUsIHRoaW5ncyB3aWxsIG5vdCB3
b3JrIHByb3Blcmx5LiIpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2VmbC9SZW5kZXJUaGVtZUVmbC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL1Jl
bmRlclRoZW1lRWZsLmgKaW5kZXggNDU0YjZhYmM2MTM3ODU3Nzk0Nzk4ZjhhZGNlZjcxN2E3NGUz
NzQwYi4uZTZkYTA0ZWQyMTczOWQ1NTBhYmZlMWZmMmM2ZjFiZWU4MTkyNGQwMiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL1JlbmRlclRoZW1lRWZsLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL1JlbmRlclRoZW1lRWZsLmgKQEAgLTM4LDYgKzM4LDcg
QEAKICNpbmNsdWRlIDxFaW5hLmg+CiAjaW5jbHVkZSA8Y2Fpcm8uaD4KICNpbmNsdWRlIDx3dGYv
ZWZsL1JlZlB0ckVmbC5oPgorI2luY2x1ZGUgPHd0Zi9lZmwvVW5pcXVlUHRyRWZsLmg+CiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtMjUxLDcgKzI1Miw3IEBAIHByaXZhdGU6CiAKICAgICBT
dHJpbmcgbV90aGVtZVBhdGg7CiAgICAgLy8gT3JkZXIgc28gdGhhdCB0aGUgY2FudmFzIGdldHMg
ZGVzdHJveWVkIGF0IGxhc3QuCi0gICAgT3duUHRyPEVjb3JlX0V2YXM+IG1fY2FudmFzOworICAg
IEVmbFVuaXF1ZVB0cjxFY29yZV9FdmFzPiBtX2NhbnZhczsKICAgICBSZWZQdHI8RXZhc19PYmpl
Y3Q+IG1fZWRqZTsKIAogICAgIGJvb2wgbV9zdXBwb3J0c1NlbGVjdGlvbkZvcmVncm91bmRDb2xv
cjsKQEAgLTI3OCw3ICsyNzksNyBAQCBwcml2YXRlOgogCiAgICAgcHJpdmF0ZToKICAgICAgICAg
Ly8gT3JkZXIgc28gdGhhdCB0aGUgY2FudmFzIGdldHMgZGVzdHJveWVkIGF0IGxhc3QuCi0gICAg
ICAgIE93blB0cjxFY29yZV9FdmFzPiBtX2NhbnZhczsKKyAgICAgICAgRWZsVW5pcXVlUHRyPEVj
b3JlX0V2YXM+IG1fY2FudmFzOwogICAgICAgICBSZWZQdHI8RXZhc19PYmplY3Q+IG1fZWRqZTsK
ICAgICAgICAgUmVmUHRyPGNhaXJvX3N1cmZhY2VfdD4gbV9zdXJmYWNlOwogICAgIH07CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JY29uLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JY29uLmgKaW5kZXggODI3OThjMzA2OTUwODczYWI0
ZWRhNzVlNWEwNzI1MTcyMGZkNzFjYy4uNjAwODExOGUxZDJiYTBkMWJmOGNiY2VlYzhkNTExZWM3
MWIwYjE0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSWNv
bi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ljb24uaApAQCAtMzcs
NiArMzcsOCBAQCBPQkpDX0NMQVNTIE5TSW1hZ2U7CiB0eXBlZGVmIHN0cnVjdCBISUNPTl9fKiBI
SUNPTjsKICNlbGlmIFBMQVRGT1JNKEdUSykKIHR5cGVkZWYgc3RydWN0IF9HZGtQaXhidWYgR2Rr
UGl4YnVmOworI2VsaWYgUExBVEZPUk0oRUZMKQordHlwZWRlZiBzdHJ1Y3QgX0V2YXNfT2JqZWN0
IEV2YXNfT2JqZWN0OwogI2VuZGlmCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2VmbC9FdmFzR0xDb250ZXh0LmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9lZmwvRXZhc0dMQ29udGV4dC5oCmluZGV4
IGU2ODZlYzU2NTRkM2MzZjZmZjY3OTc4ZDU1MmJlODdmZjA4ZGVlNTcuLjE1OWM0NmE4MGRlODI5
MTY3MjE3NjViNzY5YWRkMDhiNThlMmMxOTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2VmbC9FdmFzR0xDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZWZsL0V2YXNHTENvbnRleHQuaApAQCAtMzMsNyArMzMsNyBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEV2YXNHTENvbnRleHQgewogcHVibGljOgotICAg
IHN0YXRpYyBQYXNzT3duUHRyPEV2YXNHTENvbnRleHQ+IGNyZWF0ZShFdmFzX0dMKiBldmFzR0wp
CisgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxFdmFzR0xDb250ZXh0PiBjcmVhdGUoRXZhc19H
TCogZXZhc0dMKQogICAgIHsKICAgICAgICAgQVNTRVJUKGV2YXNHTCk7CiAgICAgICAgIEV2YXNf
R0xfQ29udGV4dCogY29udGV4dCA9IGV2YXNfZ2xfY29udGV4dF9jcmVhdGUoZXZhc0dMLCAwKTsK
QEAgLTQxLDcgKzQxLDcgQEAgcHVibGljOgogICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAK
ICAgICAgICAgLy8gT3duZXJzaGlwIG9mIGNvbnRleHQgaXMgcGFzc2VkIHRvIEV2YXNHTENvbnRl
eHQuCi0gICAgICAgIHJldHVybiBhZG9wdFB0cihuZXcgRXZhc0dMQ29udGV4dChldmFzR0wsIGNv
bnRleHQpKTsKKyAgICAgICAgcmV0dXJuIHN0ZDo6dW5pcXVlX3B0cjxFdmFzR0xDb250ZXh0Pihu
ZXcgRXZhc0dMQ29udGV4dChldmFzR0wsIGNvbnRleHQpKTsKICAgICB9CiAgICAgfkV2YXNHTENv
bnRleHQoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
ZWZsL0V2YXNHTFN1cmZhY2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Vm
bC9FdmFzR0xTdXJmYWNlLmgKaW5kZXggZTVkZmM5YTI1NGY3NzE5NjhjYTI5MDhkNjA2MTZlMzIw
NGYwN2JhNS4uNmE3Zjg1NjBmNjkxMGUyY2UwZmNhMGI1NzY4MTNmZjBiZGU5OTFjOSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZWZsL0V2YXNHTFN1cmZhY2Uu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9lZmwvRXZhc0dMU3VyZmFj
ZS5oCkBAIC0zNSw3ICszNSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgRXZhc0dM
U3VyZmFjZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NPd25QdHI8RXZhc0dMU3VyZmFjZT4g
Y3JlYXRlKEV2YXNfR0wqIGV2YXNHTCwgRXZhc19HTF9Db25maWcqIGNmZywgY29uc3QgV2ViQ29y
ZTo6SW50U2l6ZSYgc2l6ZSkKKyAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPEV2YXNHTFN1cmZh
Y2U+IGNyZWF0ZShFdmFzX0dMKiBldmFzR0wsIEV2YXNfR0xfQ29uZmlnKiBjZmcsIGNvbnN0IFdl
YkNvcmU6OkludFNpemUmIHNpemUpCiAgICAgewogICAgICAgICBBU1NFUlQoZXZhc0dMKTsKICAg
ICAgICAgQVNTRVJUKGNmZyk7CkBAIC01MCw3ICs1MCw3IEBAIHB1YmxpYzoKICAgICAgICAgICAg
IHJldHVybiBudWxscHRyOwogCiAgICAgICAgIC8vIE93bmVyc2hpcCBvZiBzdXJmYWNlIGlzIHBh
c3NlZCB0byBFdmFzR0xTdXJmYWNlLgotICAgICAgICByZXR1cm4gYWRvcHRQdHIobmV3IEV2YXNH
TFN1cmZhY2UoZXZhc0dMLCBzdXJmYWNlKSk7CisgICAgICAgIHJldHVybiBzdGQ6OnVuaXF1ZV9w
dHI8RXZhc0dMU3VyZmFjZT4obmV3IEV2YXNHTFN1cmZhY2UoZXZhc0dMLCBzdXJmYWNlKSk7CiAg
ICAgfQogICAgIH5FdmFzR0xTdXJmYWNlKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
ZWZsL1dlYkNvcmVTdXBwb3J0L0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0RWZsLmNwcCBi
L1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdD
b250ZXh0RWZsLmNwcAppbmRleCAxZDA1ZTZmNzZkNTUyOWIxZjlmNWQwYzJjM2RiNGVhMTc3ODA4
YjIwLi5lZmQ3MjViZjY1YTI0MGRkN2U4NGE2YWYxZjRmNDgzZTRmNGNhNTY3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9BY2NlbGVyYXRlZENvbXBvc2l0aW5n
Q29udGV4dEVmbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvQWNj
ZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHRFZmwuY3BwCkBAIC00Nyw3ICs0Nyw3IEBAIEFjY2Vs
ZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0Ojp+QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHQo
KQogCiBib29sIEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0Ojppbml0aWFsaXplKCkKIHsK
LSAgICBtX2V2YXNHTCA9IGFkb3B0UHRyKGV2YXNfZ2xfbmV3KGV2YXNfb2JqZWN0X2V2YXNfZ2V0
KG1fdmlldykpKTsKKyAgICBtX2V2YXNHTCA9IEVmbFVuaXF1ZVB0cjxFdmFzX0dMPihldmFzX2ds
X25ldyhldmFzX29iamVjdF9ldmFzX2dldChtX3ZpZXcpKSk7CiAgICAgaWYgKCFtX2V2YXNHTCkK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9X
ZWJDb3JlU3VwcG9ydC9BY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dEVmbC5oIGIvU291cmNl
L1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHRF
ZmwuaAppbmRleCA5M2E3MjdhMDljNDhiMjAwZGY2MTU2MTE2YjJkNWZlOGVjZjQ5ZDc4Li40ODNj
ODlmOGI2Mjc0NWFhMmVjMTA1M2Y1ZmQ1OGE1MDcyMmJiNDllIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9BY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dEVm
bC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0FjY2VsZXJhdGVkQ29t
cG9zaXRpbmdDb250ZXh0RWZsLmgKQEAgLTI3LDYgKzI3LDcgQEAKICNpbmNsdWRlICJUaW1lci5o
IgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgogI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4K
KyNpbmNsdWRlIDx3dGYvZWZsL1VuaXF1ZVB0ckVmbC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKQEAgLTYyLDkgKzYzLDkgQEAgcHJpdmF0ZToKICAgICBzdGQ6OnVuaXF1ZV9wdHI8R3JhcGhp
Y3NMYXllcj4gbV9yb290R3JhcGhpY3NMYXllcjsKICAgICBUaW1lcjxBY2NlbGVyYXRlZENvbXBv
c2l0aW5nQ29udGV4dD4gbV9zeW5jVGltZXI7CiAKLSAgICBPd25QdHI8RXZhc19HTD4gbV9ldmFz
R0w7Ci0gICAgT3duUHRyPEV2YXNHTENvbnRleHQ+IG1fZXZhc0dMQ29udGV4dDsKLSAgICBPd25Q
dHI8RXZhc0dMU3VyZmFjZT4gbV9ldmFzR0xTdXJmYWNlOworICAgIEVmbFVuaXF1ZVB0cjxFdmFz
X0dMPiBtX2V2YXNHTDsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8RXZhc0dMQ29udGV4dD4gbV9ldmFz
R0xDb250ZXh0OworICAgIHN0ZDo6dW5pcXVlX3B0cjxFdmFzR0xTdXJmYWNlPiBtX2V2YXNHTFN1
cmZhY2U7CiAKICAgICBUZXh0dXJlTWFwcGVyRlBTQ291bnRlciBtX2Zwc0NvdW50ZXI7CiB9Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvQmF0dGVyeUNsaWVu
dEVmbC5oIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvQmF0dGVyeUNsaWVudEVm
bC5oCmluZGV4IGQxMWFjYzljYTYyM2ZlMzBhNTM0MDY5MjYwMWFmNWUwNTYxNWEzYzYuLjEzMGFl
OTNkNWMzYTZmYjIwY2E0YzkxYmIzOWY4MWU5MmM5MDgwZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0JhdHRlcnlDbGllbnRFZmwuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9CYXR0ZXJ5Q2xpZW50RWZsLmgKQEAgLTI5LDYgKzI5
LDggQEAKICNpbmNsdWRlICJCYXR0ZXJ5U3RhdHVzLmgiCiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQ
dHIuaD4KIAordHlwZWRlZiBzdHJ1Y3QgX0V2YXNfT2JqZWN0IEV2YXNfT2JqZWN0OworCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBCYXR0ZXJ5Q29udHJvbGxlcjsKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEVm
bC5oIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBw
b3J0RWZsLmgKaW5kZXggM2ZlNWUxMzEyYjA2NzMwYTJiODBmMDcxYzI0YzUxMWIyOTY3MGZiYS4u
NDQ2OTc2MGM2MGY5YTZjNzllMDg5ZmMyZWU1YmM1YTVmMDc0OGRiOCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsLmgK
KysrIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBw
b3J0RWZsLmgKQEAgLTM1LDYgKzM1LDcgQEAKICNpbmNsdWRlIDxhdGsvYXRrLmg+CiAjZW5kaWYK
IAordHlwZWRlZiBzdHJ1Y3QgX0V2YXNfT2JqZWN0IEV2YXNfT2JqZWN0OwogdHlwZWRlZiBzdHJ1
Y3QgX0V3a19IaXN0b3J5X0l0ZW0gRXdrX0hpc3RvcnlfSXRlbTsKIAogdHlwZWRlZiBWZWN0b3I8
RXdrX0hpc3RvcnlfSXRlbSo+IEhpc3RvcnlJdGVtQ2hpbGRyZW5WZWN0b3I7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRFZmwuaCBiL1Nv
dXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEVmbC5oCmluZGV4IDI2
NTM5MmQ4YWZhZWUwZjdmOTljYmNkNDQ5MmI5NGIyY2NmMDBhMjcuLjc2N2M5Njk2YmZlYjkwNGZm
NDZjMTg5MzY4MWFlYmI3ODM4MTVmYTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL1dl
YkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEVmbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL1dl
YkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEVmbC5oCkBAIC00Miw2ICs0Miw4IEBACiAjaW5jbHVk
ZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdWaWV3Lmg+CiAKK3R5
cGVkZWYgc3RydWN0IF9FdmFzX09iamVjdCBFdmFzX09iamVjdDsKKwogc3RydWN0IEV3a19TaG91
bGRfSW5zZXJ0X05vZGVfRXZlbnQgewogICAgIFdlYkNvcmU6Ok5vZGUqIG5vZGU7CiAgICAgV2Vi
Q29yZTo6UmFuZ2UqIHJhbmdlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29y
ZVN1cHBvcnQvRnJhbWVOZXR3b3JraW5nQ29udGV4dEVmbC5oIGIvU291cmNlL1dlYktpdC9lZmwv
V2ViQ29yZVN1cHBvcnQvRnJhbWVOZXR3b3JraW5nQ29udGV4dEVmbC5oCmluZGV4IDhhNzY0OWU3
ZmRlNzdhNzlmYTZjZjA2MWZiODQwYWFkNDkxZGEwOWQuLjJlMTc1NWY4MjU1NmQxYWNkYjkzYTAz
YWIxZDAyNzk1ODYyNDdiNjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVT
dXBwb3J0L0ZyYW1lTmV0d29ya2luZ0NvbnRleHRFZmwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Vm
bC9XZWJDb3JlU3VwcG9ydC9GcmFtZU5ldHdvcmtpbmdDb250ZXh0RWZsLmgKQEAgLTMxLDYgKzMx
LDggQEAKIAogI2luY2x1ZGUgIkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaCIKIAordHlwZWRlZiBz
dHJ1Y3QgX0V2YXNfT2JqZWN0IEV2YXNfT2JqZWN0OworCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
IGNsYXNzIEZyYW1lTmV0d29ya2luZ0NvbnRleHRFZmwgOiBwdWJsaWMgV2ViQ29yZTo6RnJhbWVO
ZXR3b3JraW5nQ29udGV4dCB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3Jl
U3VwcG9ydC9OYXZpZ2F0b3JDb250ZW50VXRpbHNDbGllbnRFZmwuaCBiL1NvdXJjZS9XZWJLaXQv
ZWZsL1dlYkNvcmVTdXBwb3J0L05hdmlnYXRvckNvbnRlbnRVdGlsc0NsaWVudEVmbC5oCmluZGV4
IDYzNWNmZDAxOTMxYzBlNjNlYmRjNjZjMGE1NjY1NjZjYmU1YTAzNDQuLjMxYTYwNjQ5OTIzNGY1
OWJlZDYxNDc3Yjc3NDI2YTllNGJlM2JmYTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZs
L1dlYkNvcmVTdXBwb3J0L05hdmlnYXRvckNvbnRlbnRVdGlsc0NsaWVudEVmbC5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L05hdmlnYXRvckNvbnRlbnRVdGlsc0NsaWVu
dEVmbC5oCkBAIC0zMyw2ICszMyw4IEBACiAKICNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgog
Cit0eXBlZGVmIHN0cnVjdCBfRXZhc19PYmplY3QgRXZhc19PYmplY3Q7CisKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIGNsYXNzIE5hdmlnYXRvckNvbnRlbnRVdGlsc0NsaWVudEVmbCA6IHB1YmxpYyBX
ZWJDb3JlOjpOYXZpZ2F0b3JDb250ZW50VXRpbHNDbGllbnQgewogcHVibGljOgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQvZWZs
L2V3ay9ld2tfdmlldy5jcHAKaW5kZXggOTk5NzBlY2M2ZDUwYzcyZTNlZDVkYWU4Y2U4ODA1OTM0
MDYzMmY5YS4uNTc2NTQ1ODU2YzFjYzdiMTI0ZDkzMmY2NDA1MTJmZTBjNGFlM2U2NyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L2VmbC9ld2svZXdrX3ZpZXcuY3BwCkBAIC0xNDgyLDEwICsxNDgyLDEwIEBAIHN0YXRpYyBF
aW5hX0Jvb2wgX2V3a192aWV3X3NtYXJ0X2VuYWJsZV9yZW5kZXIoRXdrX1ZpZXdfU21hcnRfRGF0
YSogc21hcnREYXRhKQogCiBzdGF0aWMgY29uc3QgY2hhciogX2V3a192aWV3X2VkaXRvcl9jb21t
YW5kX3N0cmluZ19nZXQoRXdrX1ZpZXdfUHJpdmF0ZV9EYXRhKiwgRXdrX0VkaXRvcl9Db21tYW5k
IGV3a0NvbW1hbmQpCiB7Ci0gICAgc3RhdGljIE93blB0cjxFaW5hX0hhc2g+IGVkaXRvckNvbW1h
bmRIYXNoOworICAgIHN0YXRpYyBFZmxVbmlxdWVQdHI8RWluYV9IYXNoPiBlZGl0b3JDb21tYW5k
SGFzaDsKIAogICAgIGlmICghZWRpdG9yQ29tbWFuZEhhc2gpIHsKLSAgICAgICAgZWRpdG9yQ29t
bWFuZEhhc2ggPSBhZG9wdFB0cihlaW5hX2hhc2hfaW50MzJfbmV3KDApKTsKKyAgICAgICAgZWRp
dG9yQ29tbWFuZEhhc2ggPSBFZmxVbmlxdWVQdHI8RWluYV9IYXNoPihlaW5hX2hhc2hfaW50MzJf
bmV3KDApKTsKICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGVkaXRvckNvbW1hbmRzW2ldLmV3a0Vk
aXRvckNvbW1hbmQgIT0gRVdLX0VESVRPUl9DT01NQU5EX05PTkU7IGkrKykKICAgICAgICAgICAg
IGVpbmFfaGFzaF9hZGQoZWRpdG9yQ29tbWFuZEhhc2guZ2V0KCksICZlZGl0b3JDb21tYW5kc1tp
XS5ld2tFZGl0b3JDb21tYW5kLCBlZGl0b3JDb21tYW5kc1tpXS5lZGl0b3JDb21tYW5kU3RyaW5n
KTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC90ZXN0cy9Vbml0VGVzdFV0
aWxzL0VXS1Rlc3RWaWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQvZWZsL3Rlc3RzL1VuaXRUZXN0VXRp
bHMvRVdLVGVzdFZpZXcuY3BwCmluZGV4IDJhOWM2ODgyNzE2MzZlOTdiM2JiYzRjZmMxZmIzNmI3
Zjc4ZDk4NDcuLjczYjNkMGJkNWYyNjQxOTdlOGQyNjkxYTY4NDI3ZWZiZTQ2NDRhNjQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL3Rlc3RzL1VuaXRUZXN0VXRpbHMvRVdLVGVzdFZpZXcu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL3Rlc3RzL1VuaXRUZXN0VXRpbHMvRVdLVGVzdFZp
ZXcuY3BwCkBAIC0yMCw3ICsyMCw2IEBACiAjaW5jbHVkZSAiRVdLVGVzdFZpZXcuaCIKIAogI2lu
Y2x1ZGUgPEVXZWJLaXQuaD4KLSNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgogI2luY2x1ZGUg
PHd0Zi9SZWZQdHIuaD4KIAogbmFtZXNwYWNlIEVXS1VuaXRUZXN0cyB7CkBAIC0zMyw3ICszMiw3
IEBAIGJvb2wgRVdLVGVzdFZpZXc6OmluaXQoaW50IHdpZHRoLCBpbnQgaGVpZ2h0KQogewogICAg
IG1fd2ViVmlldyA9IG51bGxwdHI7CiAKLSAgICBtX2Vjb3JlRXZhcyA9IGFkb3B0UHRyKGVjb3Jl
X2V2YXNfbmV3KDAsIDAsIDAsIHdpZHRoLCBoZWlnaHQsIDApKTsKKyAgICBtX2Vjb3JlRXZhcyA9
IEVmbFVuaXF1ZVB0cjxFY29yZV9FdmFzPihlY29yZV9ldmFzX25ldygwLCAwLCAwLCB3aWR0aCwg
aGVpZ2h0LCAwKSk7CiAgICAgaWYgKCFtX2Vjb3JlRXZhcykKICAgICAgICAgcmV0dXJuIGZhbHNl
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC90ZXN0cy9Vbml0VGVzdFV0aWxzL0VX
S1Rlc3RWaWV3LmggYi9Tb3VyY2UvV2ViS2l0L2VmbC90ZXN0cy9Vbml0VGVzdFV0aWxzL0VXS1Rl
c3RWaWV3LmgKaW5kZXggZDZhMTJjNTg5ZTc0ZmJhYmU1MTBkZTgwNWRhZDBjNzg1NjRjZGEwMi4u
NWU0ODY5YTZmYmY4Y2NmYmNlNDg0OWU0MzUyNmZkMzE5YTgxNzQwMiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9lZmwvdGVzdHMvVW5pdFRlc3RVdGlscy9FV0tUZXN0Vmlldy5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvZWZsL3Rlc3RzL1VuaXRUZXN0VXRpbHMvRVdLVGVzdFZpZXcuaApAQCAtMjIs
OCArMjIsOCBAQAogI2luY2x1ZGUgIkVXS1Rlc3RDb25maWcuaCIKICNpbmNsdWRlIDxFY29yZV9F
dmFzLmg+CiAjaW5jbHVkZSA8RXZhcy5oPgotI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KICNpbmNs
dWRlIDx3dGYvZWZsL1JlZlB0ckVmbC5oPgorI2luY2x1ZGUgPHd0Zi9lZmwvVW5pcXVlUHRyRWZs
Lmg+CiAKIG5hbWVzcGFjZSBFV0tVbml0VGVzdHMgewogCkBAIC0zOCw3ICszOCw3IEBAIHByaXZh
dGU6CiAgICAgRVdLVGVzdFZpZXcoY29uc3QgRVdLVGVzdFZpZXcmKTsKICAgICBFV0tUZXN0Vmll
dyYgb3BlcmF0b3I9KGNvbnN0IEVXS1Rlc3RWaWV3Jik7CiAKLSAgICBPd25QdHI8RWNvcmVfRXZh
cz4gbV9lY29yZUV2YXM7CisgICAgRWZsVW5pcXVlUHRyPEVjb3JlX0V2YXM+IG1fZWNvcmVFdmFz
OwogICAgIFJlZlB0cjxFdmFzX09iamVjdD4gbV93ZWJWaWV3OwogfTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvUGxhdGZvcm0vTW9kdWxlLmggYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9y
bS9Nb2R1bGUuaAppbmRleCBmZTYwZjk4NDZkMzRiN2Q4YTkxZDlkMjU5MjY0YTkxNTM5NTYzNDAy
Li5hZjY1MmE5ZDQ1NjE5YjE0MmI3YjZkMjE1YWQ5ZWRmMDEzMDEwMTE1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Nb2R1bGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0
Zm9ybS9Nb2R1bGUuaApAQCAtMzksNiArMzksNyBAQCB0eXBlZGVmIHN0cnVjdCBfR01vZHVsZSBH
TW9kdWxlOwogCiAjaWYgUExBVEZPUk0oRUZMKQogI2luY2x1ZGUgPEVpbmEuaD4KKyNpbmNsdWRl
IDx3dGYvZWZsL1VuaXF1ZVB0ckVmbC5oPgogI2VuZGlmCiAKIG5hbWVzcGFjZSBXZWJLaXQgewpA
QCAtNzYsNyArNzcsNyBAQCBwcml2YXRlOgogI2VsaWYgUExBVEZPUk0oR1RLKQogICAgIEdNb2R1
bGUqIG1faGFuZGxlOwogI2VsaWYgUExBVEZPUk0oRUZMKQotICAgIE93blB0cjxFaW5hX01vZHVs
ZT4gbV9tb2R1bGU7CisgICAgRWZsVW5pcXVlUHRyPEVpbmFfTW9kdWxlPiBtX21vZHVsZTsKICNl
bmRpZgogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vZWZsL01vZHVs
ZUVmbC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9lZmwvTW9kdWxlRWZsLmNwcAppbmRl
eCBmNDBiMTNiMTA2NmViYjg3YTljNWNkN2ExZmI0Y2EwMTAwODhiOTFhLi4xNDkxOGE1Y2QwNTgy
N2I3NjNkZmEyOTdiYjM0ZGRkMjYyYzNkMzU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9Q
bGF0Zm9ybS9lZmwvTW9kdWxlRWZsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9l
ZmwvTW9kdWxlRWZsLmNwcApAQCAtMjgsNyArMjgsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAog
Ym9vbCBNb2R1bGU6OmxvYWQoKQogewotICAgIG1fbW9kdWxlID0gYWRvcHRQdHIoZWluYV9tb2R1
bGVfbmV3KG1fcGF0aC51dGY4KCkuZGF0YSgpKSk7CisgICAgbV9tb2R1bGUgPSBFZmxVbmlxdWVQ
dHI8RWluYV9Nb2R1bGU+KGVpbmFfbW9kdWxlX25ldyhtX3BhdGgudXRmOCgpLmRhdGEoKSkpOwog
ICAgIGlmICghbV9tb2R1bGUgfHwgIWVpbmFfbW9kdWxlX2xvYWQobV9tb2R1bGUuZ2V0KCkpKSB7
CiAgICAgICAgIG1fbW9kdWxlID0gbnVsbHB0cjsKICAgICAgICAgcmV0dXJuIGZhbHNlOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvRXdrVmlldy5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9Fd2tWaWV3LmNwcAppbmRleCA0OTIyMGI0
ZTBjYmQ3MjllYTk1NTA4N2E3OGMzNzY1MDc1YTQxNmFhLi5kZGRmNDFlMDFiMDg0NzhjOGIxODg1
NDNiYjRlMTE2ZTlhNzQwZmUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL2VmbC9Fd2tWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2Vm
bC9Fd2tWaWV3LmNwcApAQCAtMzAxLDcgKzMwMSw3IEBAIEV3a1ZpZXc6OkV3a1ZpZXcoV0tWaWV3
UmVmIHZpZXcsIEV2YXNfT2JqZWN0KiBldmFzT2JqZWN0KQogCiAgICAgLy8gRklYTUU6IFJlbW92
ZSB3aGVuIHBvc3NpYmxlLgogICAgIHN0YXRpY19jYXN0PFdlYlZpZXdFZmwqPih3ZWJWaWV3KCkp
LT5zZXRFd2tWaWV3KHRoaXMpOwotICAgIG1fZXZhc0dMID0gYWRvcHRQdHIoZXZhc19nbF9uZXco
ZXZhc19vYmplY3RfZXZhc19nZXQobV9ldmFzT2JqZWN0KSkpOworICAgIG1fZXZhc0dMID0gRWZs
VW5pcXVlUHRyPEV2YXNfR0w+KGV2YXNfZ2xfbmV3KGV2YXNfb2JqZWN0X2V2YXNfZ2V0KG1fZXZh
c09iamVjdCkpKTsKICAgICBpZiAobV9ldmFzR0wpCiAgICAgICAgIG1fZXZhc0dMQ29udGV4dCA9
IEV2YXNHTENvbnRleHQ6OmNyZWF0ZShtX2V2YXNHTC5nZXQoKSk7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0V3a1ZpZXcuaCBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvZWZsL0V3a1ZpZXcuaAppbmRleCAwOTFkY2Y2OWM1NmUyMDM0MmEzMzg1
OWI5Y2EwOTAwOWRlNjZhY2RkLi45M2QxOTRiOTFhOGIyYjU5MGFiNjc4MTQzYzNhYjNkMTEzMThj
YjAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9Fd2tWaWV3
LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvRXdrVmlldy5oCkBAIC0y
NTEsOSArMjUxLDkgQEAgcHJpdmF0ZToKICAgICBFdmFzX09iamVjdCogbV9ldmFzT2JqZWN0Owog
ICAgIFJlZlB0cjxFd2tDb250ZXh0PiBtX2NvbnRleHQ7CiAgICAgUmVmUHRyPEV3a1BhZ2VHcm91
cD4gbV9wYWdlR3JvdXA7Ci0gICAgT3duUHRyPEV2YXNfR0w+IG1fZXZhc0dMOwotICAgIE93blB0
cjxXZWJDb3JlOjpFdmFzR0xDb250ZXh0PiBtX2V2YXNHTENvbnRleHQ7Ci0gICAgT3duUHRyPFdl
YkNvcmU6OkV2YXNHTFN1cmZhY2U+IG1fZXZhc0dMU3VyZmFjZTsKKyAgICBFZmxVbmlxdWVQdHI8
RXZhc19HTD4gbV9ldmFzR0w7CisgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OkV2YXNHTENv
bnRleHQ+IG1fZXZhc0dMQ29udGV4dDsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6RXZh
c0dMU3VyZmFjZT4gbV9ldmFzR0xTdXJmYWNlOwogICAgIGJvb2wgbV9wZW5kaW5nU3VyZmFjZVJl
c2l6ZTsKIAogICAgIFdlYkNvcmU6OlRyYW5zZm9ybWF0aW9uTWF0cml4IG1fdXNlclZpZXdwb3J0
VHJhbnNmb3JtOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9JbnB1
dE1ldGhvZENvbnRleHRFZmwuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9JbnB1
dE1ldGhvZENvbnRleHRFZmwuY3BwCmluZGV4IDg3ZGYxNDIwOGZjYjVhNGVmOWMxYjc5MTViY2Fj
NzU0MmMzYzVlYjEuLmMwOTgzMzg3Yjc0NDYxNmQ4NWVlYzBjNzNjN2NkMTNiOGYwOTlkZWUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvSW5wdXRNZXRob2RDb250ZXh0
RWZsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL0lucHV0TWV0aG9kQ29u
dGV4dEVmbC5jcHAKQEAgLTMxLDkgKzMxLDkgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAK
IG5hbWVzcGFjZSBXZWJLaXQgewogCi1JbnB1dE1ldGhvZENvbnRleHRFZmw6OklucHV0TWV0aG9k
Q29udGV4dEVmbChFd2tWaWV3KiB2aWV3LCBQYXNzT3duUHRyPEVjb3JlX0lNRl9Db250ZXh0PiBj
b250ZXh0KQorSW5wdXRNZXRob2RDb250ZXh0RWZsOjpJbnB1dE1ldGhvZENvbnRleHRFZmwoRXdr
VmlldyogdmlldywgRWZsVW5pcXVlUHRyPEVjb3JlX0lNRl9Db250ZXh0PiBjb250ZXh0KQogICAg
IDogbV92aWV3KHZpZXcpCi0gICAgLCBtX2NvbnRleHQoY29udGV4dCkKKyAgICAsIG1fY29udGV4
dChzdGQ6Om1vdmUoY29udGV4dCkpCiAgICAgLCBtX2ZvY3VzZWQoZmFsc2UpCiB7CiAgICAgQVNT
RVJUKG1fY29udGV4dCk7CkBAIC03MywxMyArNzMsMTMgQEAgdm9pZCBJbnB1dE1ldGhvZENvbnRl
eHRFZmw6Om9uSU1GUHJlZWRpdFNlcXVlbmNlQ2hhbmdlZCh2b2lkKiBkYXRhLCBFY29yZV9JTUZf
Q28KICAgICBpbnB1dE1ldGhvZENvbnRleHQtPm1fdmlldy0+cGFnZSgpLT5zZXRDb21wb3NpdGlv
bihwcmVlZGl0U3RyaW5nLCB1bmRlcmxpbmVzLCAwKTsKIH0KIAotUGFzc093blB0cjxFY29yZV9J
TUZfQ29udGV4dD4gSW5wdXRNZXRob2RDb250ZXh0RWZsOjpjcmVhdGVJTUZDb250ZXh0KEV2YXMq
IGNhbnZhcykKK0VmbFVuaXF1ZVB0cjxFY29yZV9JTUZfQ29udGV4dD4gSW5wdXRNZXRob2RDb250
ZXh0RWZsOjpjcmVhdGVJTUZDb250ZXh0KEV2YXMqIGNhbnZhcykKIHsKICAgICBjb25zdCBjaGFy
KiBkZWZhdWx0Q29udGV4dElEID0gZWNvcmVfaW1mX2NvbnRleHRfZGVmYXVsdF9pZF9nZXQoKTsK
ICAgICBpZiAoIWRlZmF1bHRDb250ZXh0SUQpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCi0g
ICAgT3duUHRyPEVjb3JlX0lNRl9Db250ZXh0PiBpbWZDb250ZXh0ID0gYWRvcHRQdHIoZWNvcmVf
aW1mX2NvbnRleHRfYWRkKGRlZmF1bHRDb250ZXh0SUQpKTsKKyAgICBFZmxVbmlxdWVQdHI8RWNv
cmVfSU1GX0NvbnRleHQ+IGltZkNvbnRleHQoZWNvcmVfaW1mX2NvbnRleHRfYWRkKGRlZmF1bHRD
b250ZXh0SUQpKTsKICAgICBpZiAoIWltZkNvbnRleHQpCiAgICAgICAgIHJldHVybiBudWxscHRy
OwogCkBAIC04Nyw3ICs4Nyw3IEBAIFBhc3NPd25QdHI8RWNvcmVfSU1GX0NvbnRleHQ+IElucHV0
TWV0aG9kQ29udGV4dEVmbDo6Y3JlYXRlSU1GQ29udGV4dChFdmFzKiBjYW52CiAgICAgZWNvcmVf
aW1mX2NvbnRleHRfY2xpZW50X3dpbmRvd19zZXQoaW1mQ29udGV4dC5nZXQoKSwgcmVpbnRlcnBy
ZXRfY2FzdDx2b2lkKj4oZWNvcmVfZXZhc193aW5kb3dfZ2V0KGVjb3JlRXZhcykpKTsKICAgICBl
Y29yZV9pbWZfY29udGV4dF9jbGllbnRfY2FudmFzX3NldChpbWZDb250ZXh0LmdldCgpLCBjYW52
YXMpOwogCi0gICAgcmV0dXJuIGltZkNvbnRleHQucmVsZWFzZSgpOworICAgIHJldHVybiBpbWZD
b250ZXh0OwogfQogCiB2b2lkIElucHV0TWV0aG9kQ29udGV4dEVmbDo6aGFuZGxlTW91c2VVcEV2
ZW50KGNvbnN0IEV2YXNfRXZlbnRfTW91c2VfVXAqKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL2VmbC9JbnB1dE1ldGhvZENvbnRleHRFZmwuaCBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9lZmwvSW5wdXRNZXRob2RDb250ZXh0RWZsLmgKaW5kZXggMTJkZTBhY2FhZThi
NjE0MjU5ZWViMTkxNDg4MWFiYzZmMTRiNGMyZi4uNzVmMGI2ZGNhMzVjOTExZTk5MTU2YmQ2Yjc1
N2Q1MGNiMGNmOTMyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9J
bnB1dE1ldGhvZENvbnRleHRFZmwuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZs
L0lucHV0TWV0aG9kQ29udGV4dEVmbC5oCkBAIC0yNSw2ICsyNSw3IEBACiAjaW5jbHVkZSA8RXZh
cy5oPgogI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KICNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5o
PgorI2luY2x1ZGUgPHd0Zi9lZmwvVW5pcXVlUHRyRWZsLmg+CiAKIGNsYXNzIEV3a1ZpZXc7CiAK
QEAgLTM2LDExICszNywxMSBAQCBjbGFzcyBJbnB1dE1ldGhvZENvbnRleHRFZmwgewogcHVibGlj
OgogICAgIHN0YXRpYyBQYXNzT3duUHRyPElucHV0TWV0aG9kQ29udGV4dEVmbD4gY3JlYXRlKEV3
a1ZpZXcqIHZpZXdJbXBsLCBFdmFzKiBjYW52YXMpCiAgICAgewotICAgICAgICBPd25QdHI8RWNv
cmVfSU1GX0NvbnRleHQ+IGNvbnRleHQgPSBjcmVhdGVJTUZDb250ZXh0KGNhbnZhcyk7CisgICAg
ICAgIEVmbFVuaXF1ZVB0cjxFY29yZV9JTUZfQ29udGV4dD4gY29udGV4dCA9IGNyZWF0ZUlNRkNv
bnRleHQoY2FudmFzKTsKICAgICAgICAgaWYgKCFjb250ZXh0KQogICAgICAgICAgICAgcmV0dXJu
IG51bGxwdHI7CiAKLSAgICAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBJbnB1dE1ldGhvZENvbnRl
eHRFZmwodmlld0ltcGwsIGNvbnRleHQucmVsZWFzZSgpKSk7CisgICAgICAgIHJldHVybiBhZG9w
dFB0cihuZXcgSW5wdXRNZXRob2RDb250ZXh0RWZsKHZpZXdJbXBsLCBzdGQ6Om1vdmUoY29udGV4
dCkpKTsKICAgICB9CiAgICAgfklucHV0TWV0aG9kQ29udGV4dEVmbCgpOwogCkBAIC00OSwxNCAr
NTAsMTQgQEAgcHVibGljOgogICAgIHZvaWQgdXBkYXRlVGV4dElucHV0U3RhdGUoKTsKIAogcHJp
dmF0ZToKLSAgICBJbnB1dE1ldGhvZENvbnRleHRFZmwoRXdrVmlldyosIFBhc3NPd25QdHI8RWNv
cmVfSU1GX0NvbnRleHQ+KTsKKyAgICBJbnB1dE1ldGhvZENvbnRleHRFZmwoRXdrVmlldyosIEVm
bFVuaXF1ZVB0cjxFY29yZV9JTUZfQ29udGV4dD4pOwogCi0gICAgc3RhdGljIFBhc3NPd25QdHI8
RWNvcmVfSU1GX0NvbnRleHQ+IGNyZWF0ZUlNRkNvbnRleHQoRXZhcyogY2FudmFzKTsKKyAgICBz
dGF0aWMgRWZsVW5pcXVlUHRyPEVjb3JlX0lNRl9Db250ZXh0PiBjcmVhdGVJTUZDb250ZXh0KEV2
YXMqIGNhbnZhcyk7CiAgICAgc3RhdGljIHZvaWQgb25JTUZJbnB1dFNlcXVlbmNlQ29tcGxldGUo
dm9pZCogZGF0YSwgRWNvcmVfSU1GX0NvbnRleHQqLCB2b2lkKiBldmVudEluZm8pOwogICAgIHN0
YXRpYyB2b2lkIG9uSU1GUHJlZWRpdFNlcXVlbmNlQ2hhbmdlZCh2b2lkKiBkYXRhLCBFY29yZV9J
TUZfQ29udGV4dCosIHZvaWQqIGV2ZW50SW5mbyk7CiAKICAgICBFd2tWaWV3KiBtX3ZpZXc7Ci0g
ICAgT3duUHRyPEVjb3JlX0lNRl9Db250ZXh0PiBtX2NvbnRleHQ7CisgICAgRWZsVW5pcXVlUHRy
PEVjb3JlX0lNRl9Db250ZXh0PiBtX2NvbnRleHQ7CiAgICAgYm9vbCBtX2ZvY3VzZWQ7CiB9Owog
CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYzkw
ZmEzMjIxMzcyZmU3MGJlODJiODBkY2Q4NjQ2NDRhZGRiYWJhNi4uNTM4MTA1M2VjZDg3ZTcwNmYy
ODY1ODJjYTdhN2M0N2VjYTY5Yzc3NyAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBi
L1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDE0LTAzLTE5ICBIeW93b24gS2lt
ICA8aHcxMDA4LmtpbUBzYW1zdW5nLmNvbT4KKworICAgICAgICBNb3ZlIHRvIHVzaW5nIHN0ZDo6
dW5pcXVlX3B0ciBmb3IgRUZMIG9iamVjdHMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xMjk4NTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBFZmxVbmlxdWVQdHIgaXMgYSB0ZW1wbGF0ZSBhbGlhcyBvZiBz
dGQ6OnVuaXF1ZV9wdHIKKyAgICAgICAgd2l0aCBhIGN1c3RvbSBkZWxldGVyIGZvciBlYWNoIEVm
bCBPYmplY3RzLCB3aGljaCBpcyBtb3RpdmF0ZWQgYnkgR1VuaXF1ZVB0ci4KKyAgICAgICAgVGhp
cyBwYXRjaCByZXBsYWNlcyB1c2VzIG9mIE93blB0ciBhbmQgUGFzc093blB0ciBmb3IgRWZsIG9i
amVjdHMgd2l0aCBFZmxVbmlxdWVQdHIuCisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9lZmwv
RHVtcFJlbmRlclRyZWUuY3BwOgorICAgICAgICAobWFpbik6CisgICAgICAgICogSW1hZ2VEaWZm
L2VmbC9JbWFnZURpZmYuY3BwOgorICAgICAgICAoaW5pdEVmbCk6CisgICAgICAgIChtYWluKToK
KwogMjAxNC0wMy0xOCAgU2FtdWVsIFdoaXRlICA8c2FtdWVsX3doaXRlQGFwcGxlLmNvbT4KIAog
ICAgICAgICBBWDogTm90IGFibGUgdG8gdXNlIGFycm93IGtleXMgdG8gcmVhZCB0ZXh0IHdpdGgg
Vm9pY2VPdmVyIGJlZm9yZSBzZWxlY3Rpb24gaXMgc2V0IHNvbWVwbGFjZSAoYW55cGxhY2UpLgpk
aWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvZWZsL0R1bXBSZW5kZXJUcmVlLmNwcCBi
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2VmbC9EdW1wUmVuZGVyVHJlZS5jcHAKaW5kZXggZDhhNWI1
NmVhNWVhYjQ0NzMwM2JhOWNiZWViYTI4OGMxYjFlOWY4YS4uNGM2OTMxNTQwYjQyYjU5MGIyOTY4
YjcwYjUxYzVmY2YwNDg5YWRiNCAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvZWZs
L0R1bXBSZW5kZXJUcmVlLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9lZmwvRHVtcFJl
bmRlclRyZWUuY3BwCkBAIC01MCw2ICs1MCw3IEBACiAjaW5jbHVkZSA8dW5pc3RkLmg+CiAjaW5j
bHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KICNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CisjaW5jbHVk
ZSA8d3RmL2VmbC9VbmlxdWVQdHJFZmwuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+
CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgogCkBAIC00NTcsNyArNDU4LDcg
QEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIqKiBhcmd2KQogCiAgICAgV1RGSW5zdGFsbFJlcG9y
dEJhY2t0cmFjZU9uQ3Jhc2hIb29rKCk7CiAKLSAgICBPd25QdHI8RWNvcmVfRXZhcz4gZWNvcmVF
dmFzID0gYWRvcHRQdHIoaW5pdEVjb3JlRXZhcygpKTsKKyAgICBFZmxVbmlxdWVQdHI8RWNvcmVf
RXZhcz4gZWNvcmVFdmFzKGluaXRFY29yZUV2YXMoKSk7CiAgICAgYnJvd3NlciA9IER1bXBSZW5k
ZXJUcmVlQ2hyb21lOjpjcmVhdGUoZWNvcmVfZXZhc19nZXQoZWNvcmVFdmFzLmdldCgpKSk7CiAg
ICAgYWRkRm9udHNUb0Vudmlyb25tZW50KCk7CiAKQEAgLTQ3MCw3ICs0NzEsNyBAQCBpbnQgbWFp
bihpbnQgYXJnYywgY2hhcioqIGFyZ3YpCiAgICAgICAgICAgICBydW5UZXN0KGFyZ3ZbaV0pOwog
ICAgIH0KIAotICAgIGVjb3JlRXZhcy5jbGVhcigpOworICAgIGVjb3JlRXZhcy5yZXNldCgpOwog
CiAgICAgc2h1dGRvd25FZmwoKTsKICAgICByZXR1cm4gRVhJVF9TVUNDRVNTOwpkaWZmIC0tZ2l0
IGEvVG9vbHMvSW1hZ2VEaWZmL2VmbC9JbWFnZURpZmYuY3BwIGIvVG9vbHMvSW1hZ2VEaWZmL2Vm
bC9JbWFnZURpZmYuY3BwCmluZGV4IGQzMzMwOTljYzc4YzQ2ZTFiOTBmMmRmZjUwYjAwYTc3YzEw
NDIwYWYuLjkyZTgyNTY3MmNhNzFiZGRkYmQ1MDdlZTQ4YjliZjE1MmE2ZDI4OWMgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL0ltYWdlRGlmZi9lZmwvSW1hZ2VEaWZmLmNwcAorKysgYi9Ub29scy9JbWFnZURp
ZmYvZWZsL0ltYWdlRGlmZi5jcHAKQEAgLTQyLDExICs0MiwxMCBAQAogI2luY2x1ZGUgPHN5cy9z
dGF0Lmg+CiAjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CiAjaW5jbHVkZSA8dW5pc3RkLmg+Ci0jaW5j
bHVkZSA8d3RmL093blB0ci5oPgotI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAjaW5jbHVk
ZSA8d3RmL1Bhc3NSZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CiAjaW5j
bHVkZSA8d3RmL2VmbC9SZWZQdHJFZmwuaD4KKyNpbmNsdWRlIDx3dGYvZWZsL1VuaXF1ZVB0ckVm
bC5oPgogCiBlbnVtIFBpeGVsQ29tcG9uZW50IHsKICAgICBSZWQsCkBAIC01NSw3ICs1NCw3IEBA
IGVudW0gUGl4ZWxDb21wb25lbnQgewogICAgIEFscGhhCiB9OwogCi1zdGF0aWMgT3duUHRyPEVj
b3JlX0V2YXM+IGdFY29yZUV2YXM7CitzdGF0aWMgRWZsVW5pcXVlUHRyPEVjb3JlX0V2YXM+IGdF
Y29yZUV2YXM7CiBzdGF0aWMgZG91YmxlIGdUb2xlcmFuY2UgPSAwOwogCiBzdGF0aWMgdm9pZCBh
Ym9ydFdpdGhFcnJvck1lc3NhZ2UoY29uc3QgY2hhciogZXJyb3JNZXNzYWdlKTsKQEAgLTMxOCw3
ICszMTcsNyBAQCBzdGF0aWMgRXZhcyogaW5pdEVmbCgpCiAgICAgZWNvcmVfaW5pdCgpOwogICAg
IGVjb3JlX2V2YXNfaW5pdCgpOwogCi0gICAgZ0Vjb3JlRXZhcyA9IGFkb3B0UHRyKGVjb3JlX2V2
YXNfYnVmZmVyX25ldygxLCAxKSk7CisgICAgZ0Vjb3JlRXZhcyA9IEVmbFVuaXF1ZVB0cjxFY29y
ZV9FdmFzPihlY29yZV9ldmFzX2J1ZmZlcl9uZXcoMSwgMSkpOwogICAgIEV2YXMqIGV2YXMgPSBl
Y29yZV9ldmFzX2dldChnRWNvcmVFdmFzLmdldCgpKTsKICAgICBpZiAoIWV2YXMpCiAgICAgICAg
IGFib3J0V2l0aEVycm9yTWVzc2FnZSgiY291bGQgbm90IGNyZWF0ZSBFY29yZV9FdmFzIGJ1ZmZl
ciIpOwpAQCAtMzYxLDcgKzM2MCw3IEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyKiBhcmd2W10p
CiAgICAgICAgIGZmbHVzaChzdGRvdXQpOwogICAgIH0KIAotICAgIGdFY29yZUV2YXMuY2xlYXIo
KTsgLy8gTWFrZSBzdXJlIGVjb3JlX2V2YXNfZnJlZSBpcyBjYWxsZWQgYmVmb3JlIHRoZSBFRkwg
YXJlIHNodXQgZG93bgorICAgIGdFY29yZUV2YXMucmVzZXQoKTsgLy8gTWFrZSBzdXJlIGVjb3Jl
X2V2YXNfZnJlZSBpcyBjYWxsZWQgYmVmb3JlIHRoZSBFRkwgYXJlIHNodXQgZG93bgogCiAgICAg
c2h1dGRvd25FZmwoKTsKICAgICByZXR1cm4gRVhJVF9TVUNDRVNTOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>227225</attachid>
            <date>2014-03-19 15:09:40 -0700</date>
            <delta_ts>2014-03-20 08:33:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-129853-20140320070917.patch</filename>
            <type>text/plain</type>
            <size>36580</size>
            <attacher name="Hyowon Kim">hw1008.kim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY1ODkxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGY1ZTk0ZWVkMTRhNGFlNDA3N2Y0ZTk0
OTk3YzZlY2FkYjY0ZDkwOTEuLjAwNmMzZWU4MTcyNzBjOTNjZWYyZDM2NjM2NDRjMWIzY2Y5YjUw
ZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjYgQEAKKzIwMTQtMDMtMTkgIEh5b3dvbiBLaW0gIDxodzEwMDgu
a2ltQHNhbXN1bmcuY29tPgorCisgICAgICAgIE1vdmUgdG8gdXNpbmcgc3RkOjp1bmlxdWVfcHRy
IGZvciBFRkwgb2JqZWN0cy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTEyOTg1MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIEVmbFVuaXF1ZVB0ciBpcyBhIHRlbXBsYXRlIGFsaWFzIG9mIHN0ZDo6dW5pcXVl
X3B0cgorICAgICAgICB3aXRoIGEgY3VzdG9tIGRlbGV0ZXIgZm9yIGVhY2ggRWZsIE9iamVjdHMs
IHdoaWNoIGlzIG1vdGl2YXRlZCBieSBHVW5pcXVlUHRyLgorICAgICAgICBUaGlzIHBhdGNoIHJl
cGxhY2VzIHVzZXMgb2YgT3duUHRyIGFuZCBQYXNzT3duUHRyIGZvciBFZmwgb2JqZWN0cyB3aXRo
IEVmbFVuaXF1ZVB0ci4KKworICAgICAgICAqIHd0Zi9Pd25QdHJDb21tb24uaDoKKyAgICAgICAg
KiB3dGYvUGxhdGZvcm1FZmwuY21ha2U6CisgICAgICAgICogd3RmL1J1bkxvb3AuaDoKKyAgICAg
ICAgKiB3dGYvZWZsL01haW5UaHJlYWRFZmwuY3BwOgorICAgICAgICAoV1RGOjpwaXBlT2JqZWN0
KToKKyAgICAgICAgKFdURjo6aW5pdGlhbGl6ZU1haW5UaHJlYWRQbGF0Zm9ybSk6CisgICAgICAg
ICogd3RmL2VmbC9Pd25QdHJFZmwuY3BwOiBSZW1vdmVkLgorICAgICAgICAqIHd0Zi9lZmwvUnVu
TG9vcEVmbC5jcHA6CisgICAgICAgIChXVEY6OlJ1bkxvb3A6OlJ1bkxvb3ApOgorICAgICAgICAq
IHd0Zi9lZmwvVW5pcXVlUHRyRWZsLmg6IEFkZGVkLgorICAgICAgICAoV1RGOjpFZmxQdHJEZWxl
dGVyOjpvcGVyYXRvcigpKToKKwogMjAxNC0wMy0xOCAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBs
ZS5jb20+CiAKICAgICAgICAgUmVkdWNlIHVzZSBvZiBkZXByZWNhdGVkQ2hhcmFjdGVycyBpbiBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKaW5kZXggNzU3ZGM4NjY4ZDZiMzVhMzVlYWMxM2JjMDcxMDUwNDVmYWY0
ZWRiMi4uZGRjMzNmODE4MjE5YTQ4MmQ5ZDQ0ODhiYzg4YTUxMmFjOTZiZmFhNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDI3IEBACisyMDE0LTAzLTE5ICBIeW93b24gS2ltICA8aHcxMDA4LmtpbUBz
YW1zdW5nLmNvbT4KKworICAgICAgICBNb3ZlIHRvIHVzaW5nIHN0ZDo6dW5pcXVlX3B0ciBmb3Ig
RUZMIG9iamVjdHMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMjk4NTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBFZmxVbmlxdWVQdHIgaXMgYSB0ZW1wbGF0ZSBhbGlhcyBvZiBzdGQ6OnVuaXF1ZV9wdHIK
KyAgICAgICAgd2l0aCBhIGN1c3RvbSBkZWxldGVyIGZvciBlYWNoIEVmbCBPYmplY3RzLCB3aGlj
aCBpcyBtb3RpdmF0ZWQgYnkgR1VuaXF1ZVB0ci4KKyAgICAgICAgVGhpcyBwYXRjaCByZXBsYWNl
cyB1c2VzIG9mIE93blB0ciBhbmQgUGFzc093blB0ciBmb3IgRWZsIG9iamVjdHMgd2l0aCBFZmxV
bmlxdWVQdHIuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLiBObyBuZXcgZnVuY3Rpb25hbGl0eS4K
KworICAgICAgICAqIHBsYXRmb3JtL2VmbC9FZmxTY3JlZW5VdGlsaXRpZXMuaDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9lZmwvUmVuZGVyVGhlbWVFZmwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyVGhlbWVFZmw6OlRoZW1lUGFydENhY2hlRW50cnk6OmNyZWF0ZSk6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJUaGVtZUVmbDo6bG9hZFRoZW1lKToKKyAgICAgICAgKiBwbGF0Zm9ybS9lZmwv
UmVuZGVyVGhlbWVFZmwuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9JY29uLmg6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZWZsL0V2YXNHTENvbnRleHQuaDoKKyAgICAgICAg
KFdlYkNvcmU6OkV2YXNHTENvbnRleHQ6OmNyZWF0ZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvZWZsL0V2YXNHTFN1cmZhY2UuaDoKKyAgICAgICAgKFdlYkNvcmU6OkV2YXNHTFN1cmZh
Y2U6OmNyZWF0ZSk6CisKIDIwMTQtMDMtMTkgIENsYXVkaW8gU2FhdmVkcmEgIDxjc2FhdmVkcmFA
aWdhbGlhLmNvbT4KIAogICAgICAgICBbR1N0cmVhbWVyXSBDbGVhbiB0aW1lb3V0IHNvdXJjZSBp
ZHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJL
aXQvZWZsL0NoYW5nZUxvZwppbmRleCBhMWVhMjlhMjhlNmRjZmE5NjA5MGVmOTU0ODBhMzI2N2Q1
MjAzNDk4Li5lOTE5NjM0NDczNWI1MjAwYmQ0Yzg5ZDA0YjY2NzA1YjJlOTk0ODlmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9lZmwv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMjggQEAKKzIwMTQtMDMtMTkgIEh5b3dvbiBLaW0gIDxodzEw
MDgua2ltQHNhbXN1bmcuY29tPgorCisgICAgICAgIE1vdmUgdG8gdXNpbmcgc3RkOjp1bmlxdWVf
cHRyIGZvciBFRkwgb2JqZWN0cy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTEyOTg1MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEVmbFVuaXF1ZVB0ciBpcyBhIHRlbXBsYXRlIGFsaWFzIG9mIHN0ZDo6dW5p
cXVlX3B0cgorICAgICAgICB3aXRoIGEgY3VzdG9tIGRlbGV0ZXIgZm9yIGVhY2ggRWZsIE9iamVj
dHMsIHdoaWNoIGlzIG1vdGl2YXRlZCBieSBHVW5pcXVlUHRyLgorICAgICAgICBUaGlzIHBhdGNo
IHJlcGxhY2VzIHVzZXMgb2YgT3duUHRyIGFuZCBQYXNzT3duUHRyIGZvciBFZmwgb2JqZWN0cyB3
aXRoIEVmbFVuaXF1ZVB0ci4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0FjY2VsZXJhdGVk
Q29tcG9zaXRpbmdDb250ZXh0RWZsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFjY2VsZXJhdGVk
Q29tcG9zaXRpbmdDb250ZXh0Ojppbml0aWFsaXplKToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9y
dC9BY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dEVmbC5oOgorICAgICAgICAqIFdlYkNvcmVT
dXBwb3J0L0JhdHRlcnlDbGllbnRFZmwuaDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9EdW1w
UmVuZGVyVHJlZVN1cHBvcnRFZmwuaDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9FZGl0b3JD
bGllbnRFZmwuaDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFtZU5ldHdvcmtpbmdDb250
ZXh0RWZsLmg6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvTmF2aWdhdG9yQ29udGVudFV0aWxz
Q2xpZW50RWZsLmg6CisgICAgICAgICogZXdrL2V3a192aWV3LmNwcDoKKyAgICAgICAgKF9ld2tf
dmlld19lZGl0b3JfY29tbWFuZF9zdHJpbmdfZ2V0KToKKyAgICAgICAgKiB0ZXN0cy9Vbml0VGVz
dFV0aWxzL0VXS1Rlc3RWaWV3LmNwcDoKKyAgICAgICAgKEVXS1VuaXRUZXN0czo6RVdLVGVzdFZp
ZXc6OmluaXQpOgorICAgICAgICAqIHRlc3RzL1VuaXRUZXN0VXRpbHMvRVdLVGVzdFZpZXcuaDoK
KwogMjAxNC0wMy0xNCAgTWFjaWVqIFN0YWNob3dpYWsgIDxtanNAYXBwbGUuY29tPgogCiAgICAg
ICAgIFJlcGxhY2UgIkFwcGxlIENvbXB1dGVyLCBJbmMuIiB3aXRoICJBcHBsZSBJbmMuIiBpbiBj
b3B5cmlnaHQgaGVhZGVycwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDU0ODc2YTgwYjA2ZTE3YzZmMWEwYTQ0MjQ5
MjRiOGVkODBkMDNiNDguLjFhODBlMjU1ZWE1MzA1MTU3YTA5NTJiNTkzMTc5NGZjODQwMTljYmYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNiBAQAorMjAxNC0wMy0xOSAgSHlvd29uIEtpbSAgPGh3
MTAwOC5raW1Ac2Ftc3VuZy5jb20+CisKKyAgICAgICAgTW92ZSB0byB1c2luZyBzdGQ6OnVuaXF1
ZV9wdHIgZm9yIEVGTCBvYmplY3RzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTI5ODUzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgRWZsVW5pcXVlUHRyIGlzIGEgdGVtcGxhdGUgYWxpYXMgb2Ygc3RkOjp1
bmlxdWVfcHRyCisgICAgICAgIHdpdGggYSBjdXN0b20gZGVsZXRlciBmb3IgZWFjaCBFZmwgT2Jq
ZWN0cywgd2hpY2ggaXMgbW90aXZhdGVkIGJ5IEdVbmlxdWVQdHIuCisgICAgICAgIFRoaXMgcGF0
Y2ggcmVwbGFjZXMgdXNlcyBvZiBPd25QdHIgYW5kIFBhc3NPd25QdHIgZm9yIEVmbCBvYmplY3Rz
IHdpdGggRWZsVW5pcXVlUHRyLgorCisgICAgICAgICogUGxhdGZvcm0vTW9kdWxlLmg6CisgICAg
ICAgICogUGxhdGZvcm0vZWZsL01vZHVsZUVmbC5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok1vZHVs
ZTo6bG9hZCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvRXdrVmlldy5jcHA6CisgICAg
ICAgIChFd2tWaWV3OjpFd2tWaWV3KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9Fd2tW
aWV3Lmg6CisgICAgICAgICogVUlQcm9jZXNzL2VmbC9JbnB1dE1ldGhvZENvbnRleHRFZmwuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpJbnB1dE1ldGhvZENvbnRleHRFZmw6OklucHV0TWV0aG9kQ29u
dGV4dEVmbCk6CisgICAgICAgIChXZWJLaXQ6OklucHV0TWV0aG9kQ29udGV4dEVmbDo6Y3JlYXRl
SU1GQ29udGV4dCk6CisgICAgICAgICogVUlQcm9jZXNzL2VmbC9JbnB1dE1ldGhvZENvbnRleHRF
ZmwuaDoKKyAgICAgICAgKFdlYktpdDo6SW5wdXRNZXRob2RDb250ZXh0RWZsOjpjcmVhdGUpOgor
CiAyMDE0LTAzLTE4ICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgogCiAg
ICAgICAgIFtpT1NdW1dlYktpdDJdIFByb3ZpZGUgZ2VuZXJpYyBzb2Z0d2FyZS1zbmFwc2hvdHRp
bmcgQVBJCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9Pd25QdHJDb21tb24uaCBiL1NvdXJj
ZS9XVEYvd3RmL093blB0ckNvbW1vbi5oCmluZGV4IGExOTYyMWUxM2E5NjBhMzNjYWVmMGNhNjUy
M2M3YzEyNjVkNGQ0NWUuLmYyYjA4NzVlYjU5YjA4N2RhYzdkM2UzMjgxMGIxYjhmYzAwMTc4OWQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL093blB0ckNvbW1vbi5oCisrKyBiL1NvdXJjZS9X
VEYvd3RmL093blB0ckNvbW1vbi5oCkBAIC0yOCwyMCArMjgsNiBAQAogI2lmbmRlZiBXVEZfT3du
UHRyQ29tbW9uX2gKICNkZWZpbmUgV1RGX093blB0ckNvbW1vbl9oCiAKLSNpZiBQTEFURk9STShF
RkwpCi10eXBlZGVmIHN0cnVjdCBfRWNvcmVfRXZhcyBFY29yZV9FdmFzOwotdHlwZWRlZiBzdHJ1
Y3QgX0Vjb3JlX0lNRl9Db250ZXh0IEVjb3JlX0lNRl9Db250ZXh0OwotdHlwZWRlZiBzdHJ1Y3Qg
X0Vjb3JlX1BpcGUgRWNvcmVfUGlwZTsKLXR5cGVkZWYgc3RydWN0IF9FaW5hX0hhc2ggRWluYV9I
YXNoOwotdHlwZWRlZiBzdHJ1Y3QgX0VpbmFfTW9kdWxlIEVpbmFfTW9kdWxlOwotI2lmIFVTRShF
TykKLXR5cGVkZWYgc3RydWN0IF9Fb19PcGFxdWUgRXZhc19PYmplY3Q7Ci0jZWxzZQotdHlwZWRl
ZiBzdHJ1Y3QgX0V2YXNfT2JqZWN0IEV2YXNfT2JqZWN0OwotI2VuZGlmCi10eXBlZGVmIHN0cnVj
dCBfRXZhc19HTCBFdmFzX0dMOwotI2VuZGlmCi0KIG5hbWVzcGFjZSBXVEYgewogCiAgICAgdGVt
cGxhdGUgPHR5cGVuYW1lIFQ+IGlubGluZSB2b2lkIGRlbGV0ZU93bmVkUHRyKFQqIHB0cikKQEAg
LTUxLDE2ICszNyw2IEBAIG5hbWVzcGFjZSBXVEYgewogICAgICAgICAgICAgZGVsZXRlIHB0cjsK
ICAgICB9CiAKLSNpZiBQTEFURk9STShFRkwpCi0gICAgV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQg
ZGVsZXRlT3duZWRQdHIoRWNvcmVfRXZhcyopOwotICAgIFdURl9FWFBPUlRfUFJJVkFURSB2b2lk
IGRlbGV0ZU93bmVkUHRyKEVjb3JlX0lNRl9Db250ZXh0Kik7Ci0gICAgV1RGX0VYUE9SVF9QUklW
QVRFIHZvaWQgZGVsZXRlT3duZWRQdHIoRWNvcmVfUGlwZSopOwotICAgIFdURl9FWFBPUlRfUFJJ
VkFURSB2b2lkIGRlbGV0ZU93bmVkUHRyKEVpbmFfSGFzaCopOwotICAgIFdURl9FWFBPUlRfUFJJ
VkFURSB2b2lkIGRlbGV0ZU93bmVkUHRyKEVpbmFfTW9kdWxlKik7Ci0gICAgV1RGX0VYUE9SVF9Q
UklWQVRFIHZvaWQgZGVsZXRlT3duZWRQdHIoRXZhc19PYmplY3QqKTsKLSAgICBXVEZfRVhQT1JU
X1BSSVZBVEUgdm9pZCBkZWxldGVPd25lZFB0cihFdmFzX0dMKik7Ci0jZW5kaWYKLQogfSAvLyBu
YW1lc3BhY2UgV1RGCiAKICNlbmRpZiAvLyBXVEZfT3duUHRyQ29tbW9uX2gKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtRWZsLmNtYWtlIGIvU291cmNlL1dURi93dGYvUGxhdGZv
cm1FZmwuY21ha2UKaW5kZXggYjRlMjEwYWMzZWRmM2RlNWZjZWI3NWI5ODMzMzJhYWJiZWE0ZGQx
Yy4uOGRmN2M3YWU3ZTZiNTIyMDE1ZDkyM2NiYzMwMWE4YmMzYTg5ZDY4ZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dURi93dGYvUGxhdGZvcm1FZmwuY21ha2UKKysrIGIvU291cmNlL1dURi93dGYvUGxh
dGZvcm1FZmwuY21ha2UKQEAgLTEsNiArMSw1IEBACiBsaXN0KEFQUEVORCBXVEZfU09VUkNFUwog
ICAgIGVmbC9NYWluVGhyZWFkRWZsLmNwcAotICAgIGVmbC9Pd25QdHJFZmwuY3BwCiAgICAgZWZs
L1JlZlB0ckVmbC5jcHAKICAgICBlZmwvUnVuTG9vcEVmbC5jcHAKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dURi93dGYvUnVuTG9vcC5oIGIvU291cmNlL1dURi93dGYvUnVuTG9vcC5oCmluZGV4IDAy
YTcwY2E1MjI4YjcwZmZjMzYyZjFmOTE1NzNkN2JjZjk4YmUyZmMuLjc5OTBjZWJmZDkxOTAzZWE2
NWI1YTgxNzFjYTQzZWI0MjQ0MGExYjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1J1bkxv
b3AuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9SdW5Mb29wLmgKQEAgLTQyLDYgKzQyLDcgQEAKIAog
I2lmIFBMQVRGT1JNKEVGTCkKICNpbmNsdWRlIDxFY29yZS5oPgorI2luY2x1ZGUgPHd0Zi9lZmwv
VW5pcXVlUHRyRWZsLmg+CiAjZW5kaWYKIAogbmFtZXNwYWNlIFdURiB7CkBAIC0xNTEsNyArMTUy
LDcgQEAgcHJpdmF0ZToKICAgICBpbnQgbV9uZXN0aW5nTGV2ZWw7CiAjZWxpZiBQTEFURk9STShF
RkwpCiAgICAgTXV0ZXggbV9waXBlTG9jazsKLSAgICBPd25QdHI8RWNvcmVfUGlwZT4gbV9waXBl
OworICAgIEVmbFVuaXF1ZVB0cjxFY29yZV9QaXBlPiBtX3BpcGU7CiAKICAgICBNdXRleCBtX3dh
a2VVcEV2ZW50UmVxdWVzdGVkTG9jazsKICAgICBib29sIG1fd2FrZVVwRXZlbnRSZXF1ZXN0ZWQ7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9lZmwvTWFpblRocmVhZEVmbC5jcHAgYi9Tb3Vy
Y2UvV1RGL3d0Zi9lZmwvTWFpblRocmVhZEVmbC5jcHAKaW5kZXggYTI1YjM0NWI2Y2YyOTQxMmUw
ZTdmNmYxMjU0YzEyZjllMTNhZGM0OC4uYmY5ZGViNDdiNjk1ZTZjYzEyMDkwZThjYTg4NTdjMjgz
ZjE1NjhhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvZWZsL01haW5UaHJlYWRFZmwuY3Bw
CisrKyBiL1NvdXJjZS9XVEYvd3RmL2VmbC9NYWluVGhyZWFkRWZsLmNwcApAQCAtMzUsMTUgKzM1
LDE0IEBACiAjaW5jbHVkZSAiTWFpblRocmVhZC5oIgogCiAjaW5jbHVkZSA8RWNvcmUuaD4KLSNp
bmNsdWRlIDx3dGYvT3duUHRyLmg+Ci0jaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KICNpbmNs
dWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CisjaW5jbHVkZSA8d3RmL2VmbC9VbmlxdWVQdHJFZmwu
aD4KIAogbmFtZXNwYWNlIFdURiB7CiAKLXN0YXRpYyBPd25QdHI8RWNvcmVfUGlwZT4mIHBpcGVP
YmplY3QoKQorc3RhdGljIEVmbFVuaXF1ZVB0cjxFY29yZV9QaXBlPiYgcGlwZU9iamVjdCgpCiB7
Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKE93blB0cjxFY29yZV9QaXBlPiwg
cGlwZU9iamVjdCwgKCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChFZmxV
bmlxdWVQdHI8RWNvcmVfUGlwZT4sIHBpcGVPYmplY3QsICgpKTsKICAgICByZXR1cm4gcGlwZU9i
amVjdDsKIH0KIApAQCAtNTQsNyArNTMsNyBAQCBzdGF0aWMgdm9pZCBtb25pdG9yRGlzcGF0Y2hG
dW5jdGlvbnModm9pZCosIHZvaWQqLCB1bnNpZ25lZCBpbnQpCiAKIHZvaWQgaW5pdGlhbGl6ZU1h
aW5UaHJlYWRQbGF0Zm9ybSgpCiB7Ci0gICAgcGlwZU9iamVjdCgpID0gYWRvcHRQdHIoZWNvcmVf
cGlwZV9hZGQobW9uaXRvckRpc3BhdGNoRnVuY3Rpb25zLCAwKSk7CisgICAgcGlwZU9iamVjdCgp
ID0gRWZsVW5pcXVlUHRyPEVjb3JlX1BpcGU+KGVjb3JlX3BpcGVfYWRkKG1vbml0b3JEaXNwYXRj
aEZ1bmN0aW9ucywgMCkpOwogfQogCiB2b2lkIHNjaGVkdWxlRGlzcGF0Y2hGdW5jdGlvbnNPbk1h
aW5UaHJlYWQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvZWZsL093blB0ckVmbC5jcHAg
Yi9Tb3VyY2UvV1RGL3d0Zi9lZmwvT3duUHRyRWZsLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggY2YxMGU4YmRlMjMzNjFjN2NlZDUwNTBmMmFlNDllNzFiMDViZjExYy4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9l
ZmwvT3duUHRyRWZsLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDc1ICswLDAgQEAKLS8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMTEgUHJvRlVTSU9OIGVtYmVkZGVkIHN5c3RlbXMKLSAqIENvcHlyaWdo
dCAoQykgMjAxMSBTYW1zdW5nIEVsZWN0cm9uaWNzCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0g
KiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJPd25QdHIu
aCIKLQotI2luY2x1ZGUgPEVjb3JlLmg+Ci0jaW5jbHVkZSA8RWNvcmVfRXZhcy5oPgotI2luY2x1
ZGUgPEVjb3JlX0lNRi5oPgotI2luY2x1ZGUgPEVpbmEuaD4KLSNpbmNsdWRlIDxFdmFzLmg+Ci0j
aW5jbHVkZSA8RXZhc19HTC5oPgotCi1uYW1lc3BhY2UgV1RGIHsKLQotdm9pZCBkZWxldGVPd25l
ZFB0cihFY29yZV9FdmFzKiBwdHIpCi17Ci0gICAgaWYgKHB0cikKLSAgICAgICAgZWNvcmVfZXZh
c19mcmVlKHB0cik7Ci19Ci0KLXZvaWQgZGVsZXRlT3duZWRQdHIoRWNvcmVfUGlwZSogcHRyKQot
ewotICAgIGlmIChwdHIpCi0gICAgICAgIGVjb3JlX3BpcGVfZGVsKHB0cik7Ci19Ci0KLXZvaWQg
ZGVsZXRlT3duZWRQdHIoRWluYV9IYXNoKiBwdHIpCi17Ci0gICAgaWYgKHB0cikKLSAgICAgICAg
ZWluYV9oYXNoX2ZyZWUocHRyKTsKLX0KLQotdm9pZCBkZWxldGVPd25lZFB0cihFaW5hX01vZHVs
ZSogcHRyKQotewotICAgIGlmIChwdHIpCi0gICAgICAgIGVpbmFfbW9kdWxlX2ZyZWUocHRyKTsg
Ly8gSWYgbW9kdWxlIHdhc24ndCB1bmxvYWRlZCwgZWluYV9tb2R1bGVfZnJlZSgpIGNhbGxzIGVp
bmFfbW9kdWxlX3VubG9hZCgpLgotfQotCi12b2lkIGRlbGV0ZU93bmVkUHRyKEVjb3JlX0lNRl9D
b250ZXh0KiBwdHIpCi17Ci0gICAgaWYgKHB0cikKLSAgICAgICAgZWNvcmVfaW1mX2NvbnRleHRf
ZGVsKHB0cik7Ci19Ci0KLXZvaWQgZGVsZXRlT3duZWRQdHIoRXZhc19HTCogcHRyKQotewotICAg
IGlmIChwdHIpCi0gICAgICAgIGV2YXNfZ2xfZnJlZShwdHIpOwotfQotCi19CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV1RGL3d0Zi9lZmwvUnVuTG9vcEVmbC5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9lZmwv
UnVuTG9vcEVmbC5jcHAKaW5kZXggMDUwZDljZjA0YmZhNzVhZjUyMjgyYThmZWMyY2ZjZDMwZWRm
ZTcxMC4uZTdhMDBlZjY2MjQ0ZDdjOTMzZGMzODQwZjc5MjFhNTU2ZTVkODA3MiAxMDA2NDQKLS0t
IGEvU291cmNlL1dURi93dGYvZWZsL1J1bkxvb3BFZmwuY3BwCisrKyBiL1NvdXJjZS9XVEYvd3Rm
L2VmbC9SdW5Mb29wRWZsLmNwcApAQCAtMzksNyArMzksNyBAQCBuYW1lc3BhY2UgV1RGIHsKIFJ1
bkxvb3A6OlJ1bkxvb3AoKQogICAgIDogbV93YWtlVXBFdmVudFJlcXVlc3RlZChmYWxzZSkKIHsK
LSAgICBtX3BpcGUgPSBhZG9wdFB0cihlY29yZV9waXBlX2FkZCh3YWtlVXBFdmVudCwgdGhpcykp
OworICAgIG1fcGlwZSA9IEVmbFVuaXF1ZVB0cjxFY29yZV9QaXBlPihlY29yZV9waXBlX2FkZCh3
YWtlVXBFdmVudCwgdGhpcykpOwogfQogCiBSdW5Mb29wOjp+UnVuTG9vcCgpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV1RGL3d0Zi9lZmwvVW5pcXVlUHRyRWZsLmggYi9Tb3VyY2UvV1RGL3d0Zi9lZmwv
VW5pcXVlUHRyRWZsLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWNhNzk2ODcxYzkwZWU5OTRmODFkYWYxNjVjYTY4
YmNjNTc1MTI2NQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvd3RmL2VmbC9VbmlxdWVQ
dHJFZmwuaApAQCAtMCwwICsxLDY5IEBACisvKgorICAgIENvcHlyaWdodCAoQykgMjAxNCBTYW1z
dW5nIEVsZWN0cm9uaWNzCisKKyAgICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91
IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJt
cyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAgICBMaWNlbnNlIGFzIHB1Ymxp
c2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAgICB2ZXJzaW9u
IDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24u
CisKKyAgICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3
aWxsIGJlIHVzZWZ1bCwKKyAgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZl
biB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgICAgTGlicmFyeSBHZW5l
cmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisKKyAgICBZb3Ugc2hvdWxkIGhh
dmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNl
bnNlCisgICAgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJ
Qi4gIElmIG5vdCwgd3JpdGUgdG8KKyAgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJ
bmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICAgIEJvc3RvbiwgTUEgMDIx
MTAtMTMwMSwgVVNBLgorKi8KKworI2lmbmRlZiBVbmlxdWVQdHJFZmxfaAorI2RlZmluZSBVbmlx
dWVQdHJFZmxfaAorCisjaWYgUExBVEZPUk0oRUZMKQorCisjaW5jbHVkZSA8RWNvcmUuaD4KKyNp
bmNsdWRlIDxFY29yZV9FdmFzLmg+CisjaW5jbHVkZSA8RWNvcmVfSU1GLmg+CisjaW5jbHVkZSA8
RWluYS5oPgorI2luY2x1ZGUgPEV2YXMuaD4KKyNpbmNsdWRlIDxFdmFzX0dMLmg+CisKK25hbWVz
cGFjZSBXVEYgeworCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdHJ1Y3QgRWZsUHRyRGVsZXRlciB7
CisgICAgdm9pZCBvcGVyYXRvcigpKFQqIHB0cikgY29uc3QgPSBkZWxldGU7Cit9OworCit0ZW1w
bGF0ZTx0eXBlbmFtZSBUPgordXNpbmcgRWZsVW5pcXVlUHRyID0gc3RkOjp1bmlxdWVfcHRyPFQs
IEVmbFB0ckRlbGV0ZXI8VD4+OworCisjZGVmaW5lIEZPUl9FQUNIX0VGTF9ERUxFVEVSKG1hY3Jv
KSBcCisgICAgbWFjcm8oRWNvcmVfRXZhcywgZWNvcmVfZXZhc19mcmVlKSBcCisgICAgbWFjcm8o
RWNvcmVfSU1GX0NvbnRleHQsIGVjb3JlX2ltZl9jb250ZXh0X2RlbCkgXAorICAgIG1hY3JvKEVj
b3JlX1BpcGUsIGVjb3JlX3BpcGVfZGVsKSBcCisgICAgbWFjcm8oRWluYV9IYXNoLCBlaW5hX2hh
c2hfZnJlZSkgXAorICAgIG1hY3JvKEVpbmFfTW9kdWxlLCBlaW5hX21vZHVsZV9mcmVlKSBcCisg
ICAgbWFjcm8oRXZhc19PYmplY3QsIGV2YXNfb2JqZWN0X2RlbCkgXAorICAgIG1hY3JvKEV2YXNf
R0wsIGV2YXNfZ2xfZnJlZSkKKworI2RlZmluZSBXVEZfREVGSU5FX0VGTFBUUl9ERUxFVEVSKHR5
cGVOYW1lLCBkZWxldGVyRnVuYykgXAorICAgIHRlbXBsYXRlPD4gc3RydWN0IEVmbFB0ckRlbGV0
ZXI8dHlwZU5hbWU+IFwKKyAgICB7IFwKKyAgICAgICAgdm9pZCBvcGVyYXRvcigpICh0eXBlTmFt
ZSogcHRyKSBjb25zdCBcCisgICAgICAgIHsgXAorICAgICAgICAgICAgaWYgKHB0cikgXAorICAg
ICAgICAgICAgICAgIGRlbGV0ZXJGdW5jKHB0cik7IFwKKyAgICAgICAgfSBcCisgICAgfTsKKwor
Rk9SX0VBQ0hfRUZMX0RFTEVURVIoV1RGX0RFRklORV9FRkxQVFJfREVMRVRFUikKKyN1bmRlZiBG
T1JfRUFDSF9FRkxfREVMRVRFUgorCit9IC8vIG5hbWVzcGFjZSBXVEYKKwordXNpbmcgV1RGOjpF
ZmxVbmlxdWVQdHI7CisKKyNlbmRpZiAvLyBQTEFURk9STShFRkwpCisKKyNlbmRpZiAvLyBVbmlx
dWVQdHJFZmxfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL0VmbFNj
cmVlblV0aWxpdGllcy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL0VmbFNjcmVlblV0
aWxpdGllcy5oCmluZGV4IDdkNzk3NWEyNGEwZjFmNDMyYTNhYjMxOGViYzI5M2MxMzZjOTAxNWYu
LmQ0ODBhNTljN2VlYTc2MmU2MWM2MDU4MjE3ZWQ3YTVmZDY1YTU4OTMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9FZmxTY3JlZW5VdGlsaXRpZXMuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvRWZsU2NyZWVuVXRpbGl0aWVzLmgKQEAgLTI1LDYgKzI1
LDcgQEAKIHR5cGVkZWYgc3RydWN0IF9Fb19PcGFxdWUgRXZhczsKICNlbHNlCiB0eXBlZGVmIHN0
cnVjdCBfRXZhcyBFdmFzOwordHlwZWRlZiBzdHJ1Y3QgX0Vjb3JlX0V2YXMgRWNvcmVfRXZhczsK
ICNlbmRpZgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9lZmwvUmVuZGVyVGhlbWVFZmwuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZWZsL1JlbmRlclRoZW1lRWZsLmNwcAppbmRleCBjZGZjZTA3OGYyZWNjYzhkODZlNmU4YzBi
NWM2NWI0MmI2YmRkNjRkLi5mODY0Nzg1OTE3NTIzNzRjYmRkYzA1NGYzNjhjMDE0ODI2MzdkM2Vi
IDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvUmVuZGVyVGhlbWVFZmwu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9SZW5kZXJUaGVtZUVmbC5jcHAK
QEAgLTE5MSw3ICsxOTEsNyBAQCBQYXNzT3duUHRyPFJlbmRlclRoZW1lRWZsOjpUaGVtZVBhcnRD
YWNoZUVudHJ5PiBSZW5kZXJUaGVtZUVmbDo6VGhlbWVQYXJ0Q2FjaGVFbgogCiAgICAgT3duUHRy
PFRoZW1lUGFydENhY2hlRW50cnk+IGVudHJ5ID0gYWRvcHRQdHIobmV3IFRoZW1lUGFydENhY2hl
RW50cnkpOwogCi0gICAgZW50cnktPm1fY2FudmFzID0gYWRvcHRQdHIoZWNvcmVfZXZhc19idWZm
ZXJfbmV3KHNpemUud2lkdGgoKSwgc2l6ZS5oZWlnaHQoKSkpOworICAgIGVudHJ5LT5tX2NhbnZh
cyA9IEVmbFVuaXF1ZVB0cjxFY29yZV9FdmFzPihlY29yZV9ldmFzX2J1ZmZlcl9uZXcoc2l6ZS53
aWR0aCgpLCBzaXplLmhlaWdodCgpKSk7CiAgICAgaWYgKCFlbnRyeS0+Y2FudmFzKCkpIHsKICAg
ICAgICAgRUlOQV9MT0dfRVJSKCJlY29yZV9ldmFzX2J1ZmZlcl9uZXcoJWQsICVkKSBmYWlsZWQu
Iiwgc2l6ZS53aWR0aCgpLCBzaXplLmhlaWdodCgpKTsKICAgICAgICAgcmV0dXJuIG51bGxwdHI7
CkBAIC00OTYsNyArNDk2LDcgQEAgYm9vbCBSZW5kZXJUaGVtZUVmbDo6bG9hZFRoZW1lKCkKICAg
ICBBU1NFUlQoIW1fdGhlbWVQYXRoLmlzRW1wdHkoKSk7CiAKICAgICBpZiAoIWNhbnZhcygpKSB7
Ci0gICAgICAgIG1fY2FudmFzID0gYWRvcHRQdHIoZWNvcmVfZXZhc19idWZmZXJfbmV3KDEsIDEp
KTsKKyAgICAgICAgbV9jYW52YXMgPSBFZmxVbmlxdWVQdHI8RWNvcmVfRXZhcz4oZWNvcmVfZXZh
c19idWZmZXJfbmV3KDEsIDEpKTsKICAgICAgICAgX0FTU0VSVF9PTl9SRUxFQVNFX1JFVFVSTl9W
QUwoY2FudmFzKCksIGZhbHNlLAogICAgICAgICAgICAgICAgICJDb3VsZCBub3QgY3JlYXRlIGNh
bnZhcyByZXF1aXJlZCBieSB0aGVtZSwgdGhpbmdzIHdpbGwgbm90IHdvcmsgcHJvcGVybHkuIik7
CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL1JlbmRlclRo
ZW1lRWZsLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvUmVuZGVyVGhlbWVFZmwuaApp
bmRleCA0NTRiNmFiYzYxMzc4NTc3OTQ3OThmOGFkY2VmNzE3YTc0ZTM3NDBiLi5lNmRhMDRlZDIx
NzM5ZDU1MGFiZmUxZmYyYzZmMWJlZTgxOTI0ZDAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9lZmwvUmVuZGVyVGhlbWVFZmwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9lZmwvUmVuZGVyVGhlbWVFZmwuaApAQCAtMzgsNiArMzgsNyBAQAogI2luY2x1ZGUgPEVp
bmEuaD4KICNpbmNsdWRlIDxjYWlyby5oPgogI2luY2x1ZGUgPHd0Zi9lZmwvUmVmUHRyRWZsLmg+
CisjaW5jbHVkZSA8d3RmL2VmbC9VbmlxdWVQdHJFZmwuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCkBAIC0yNTEsNyArMjUyLDcgQEAgcHJpdmF0ZToKIAogICAgIFN0cmluZyBtX3RoZW1lUGF0
aDsKICAgICAvLyBPcmRlciBzbyB0aGF0IHRoZSBjYW52YXMgZ2V0cyBkZXN0cm95ZWQgYXQgbGFz
dC4KLSAgICBPd25QdHI8RWNvcmVfRXZhcz4gbV9jYW52YXM7CisgICAgRWZsVW5pcXVlUHRyPEVj
b3JlX0V2YXM+IG1fY2FudmFzOwogICAgIFJlZlB0cjxFdmFzX09iamVjdD4gbV9lZGplOwogCiAg
ICAgYm9vbCBtX3N1cHBvcnRzU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yOwpAQCAtMjc4LDcgKzI3
OSw3IEBAIHByaXZhdGU6CiAKICAgICBwcml2YXRlOgogICAgICAgICAvLyBPcmRlciBzbyB0aGF0
IHRoZSBjYW52YXMgZ2V0cyBkZXN0cm95ZWQgYXQgbGFzdC4KLSAgICAgICAgT3duUHRyPEVjb3Jl
X0V2YXM+IG1fY2FudmFzOworICAgICAgICBFZmxVbmlxdWVQdHI8RWNvcmVfRXZhcz4gbV9jYW52
YXM7CiAgICAgICAgIFJlZlB0cjxFdmFzX09iamVjdD4gbV9lZGplOwogICAgICAgICBSZWZQdHI8
Y2Fpcm9fc3VyZmFjZV90PiBtX3N1cmZhY2U7CiAgICAgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ljb24uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0ljb24uaAppbmRleCA4Mjc5OGMzMDY5NTA4NzNhYjRlZGE3NWU1YTA3MjUxNzIw
ZmQ3MWNjLi42MDA4MTE4ZTFkMmJhMGQxYmY4Y2JjZWVjOGQ1MTFlYzcxYjBiMTQ4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JY29uLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSWNvbi5oCkBAIC0zNyw2ICszNyw4IEBAIE9CSkNf
Q0xBU1MgTlNJbWFnZTsKIHR5cGVkZWYgc3RydWN0IEhJQ09OX18qIEhJQ09OOwogI2VsaWYgUExB
VEZPUk0oR1RLKQogdHlwZWRlZiBzdHJ1Y3QgX0dka1BpeGJ1ZiBHZGtQaXhidWY7CisjZWxpZiBQ
TEFURk9STShFRkwpCit0eXBlZGVmIHN0cnVjdCBfRXZhc19PYmplY3QgRXZhc19PYmplY3Q7CiAj
ZW5kaWYKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZWZsL0V2YXNHTENvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2VmbC9FdmFzR0xDb250ZXh0LmgKaW5kZXggZTY4NmVjNTY1NGQzYzNm
NmZmNjc5NzhkNTUyYmU4N2ZmMDhkZWU1Ny4uNmU4NjljMGYxYTZkODY1ZDlkZTgwNzViNDNmM2Jj
YTdiOTVhYzgyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
ZWZsL0V2YXNHTENvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9lZmwvRXZhc0dMQ29udGV4dC5oCkBAIC0zMyw3ICszMyw3IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogY2xhc3MgRXZhc0dMQ29udGV4dCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NPd25Q
dHI8RXZhc0dMQ29udGV4dD4gY3JlYXRlKEV2YXNfR0wqIGV2YXNHTCkKKyAgICBzdGF0aWMgc3Rk
Ojp1bmlxdWVfcHRyPEV2YXNHTENvbnRleHQ+IGNyZWF0ZShFdmFzX0dMKiBldmFzR0wpCiAgICAg
ewogICAgICAgICBBU1NFUlQoZXZhc0dMKTsKICAgICAgICAgRXZhc19HTF9Db250ZXh0KiBjb250
ZXh0ID0gZXZhc19nbF9jb250ZXh0X2NyZWF0ZShldmFzR0wsIDApOwpAQCAtNDEsMTUgKzQxLDE1
IEBAIHB1YmxpYzoKICAgICAgICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAgICAgIC8vIE93
bmVyc2hpcCBvZiBjb250ZXh0IGlzIHBhc3NlZCB0byBFdmFzR0xDb250ZXh0LgotICAgICAgICBy
ZXR1cm4gYWRvcHRQdHIobmV3IEV2YXNHTENvbnRleHQoZXZhc0dMLCBjb250ZXh0KSk7CisgICAg
ICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPEV2YXNHTENvbnRleHQ+KGV2YXNHTCwgY29udGV4
dCk7CiAgICAgfQorCisgICAgRXZhc0dMQ29udGV4dChFdmFzX0dMKiwgRXZhc19HTF9Db250ZXh0
KiBwYXNzQ29udGV4dCk7CiAgICAgfkV2YXNHTENvbnRleHQoKTsKIAogICAgIEV2YXNfR0xfQ29u
dGV4dCogY29udGV4dCgpIHsgcmV0dXJuIG1fY29udGV4dDsgfQogCiBwcml2YXRlOgotICAgIEV2
YXNHTENvbnRleHQoRXZhc19HTCosIEV2YXNfR0xfQ29udGV4dCogcGFzc0NvbnRleHQpOwotCiAg
ICAgRXZhc19HTCogbV9ldmFzR0w7CiAgICAgRXZhc19HTF9Db250ZXh0KiBtX2NvbnRleHQ7CiB9
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZWZsL0V2YXNH
TFN1cmZhY2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2VmbC9FdmFzR0xT
dXJmYWNlLmgKaW5kZXggZTVkZmM5YTI1NGY3NzE5NjhjYTI5MDhkNjA2MTZlMzIwNGYwN2JhNS4u
MDRkMTg3OGZmMzI3ZTU3MDAyZGRjZGViNjU1YzZlMGNjMzkxNWJlYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZWZsL0V2YXNHTFN1cmZhY2UuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9lZmwvRXZhc0dMU3VyZmFjZS5oCkBAIC0z
NSw3ICszNSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgRXZhc0dMU3VyZmFjZSB7
CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NPd25QdHI8RXZhc0dMU3VyZmFjZT4gY3JlYXRlKEV2
YXNfR0wqIGV2YXNHTCwgRXZhc19HTF9Db25maWcqIGNmZywgY29uc3QgV2ViQ29yZTo6SW50U2l6
ZSYgc2l6ZSkKKyAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPEV2YXNHTFN1cmZhY2U+IGNyZWF0
ZShFdmFzX0dMKiBldmFzR0wsIEV2YXNfR0xfQ29uZmlnKiBjZmcsIGNvbnN0IFdlYkNvcmU6Oklu
dFNpemUmIHNpemUpCiAgICAgewogICAgICAgICBBU1NFUlQoZXZhc0dMKTsKICAgICAgICAgQVNT
RVJUKGNmZyk7CkBAIC01MCwxNSArNTAsMTUgQEAgcHVibGljOgogICAgICAgICAgICAgcmV0dXJu
IG51bGxwdHI7CiAKICAgICAgICAgLy8gT3duZXJzaGlwIG9mIHN1cmZhY2UgaXMgcGFzc2VkIHRv
IEV2YXNHTFN1cmZhY2UuCi0gICAgICAgIHJldHVybiBhZG9wdFB0cihuZXcgRXZhc0dMU3VyZmFj
ZShldmFzR0wsIHN1cmZhY2UpKTsKKyAgICAgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8RXZh
c0dMU3VyZmFjZT4oZXZhc0dMLCBzdXJmYWNlKTsKICAgICB9CisKKyAgICBFdmFzR0xTdXJmYWNl
KEV2YXNfR0wqLCBFdmFzX0dMX1N1cmZhY2UqIHBhc3NTdXJmYWNlKTsKICAgICB+RXZhc0dMU3Vy
ZmFjZSgpOwogCiAgICAgRXZhc19HTF9TdXJmYWNlKiBzdXJmYWNlKCkgeyByZXR1cm4gbV9zdXJm
YWNlOyB9CiAKIHByaXZhdGU6Ci0gICAgRXZhc0dMU3VyZmFjZShFdmFzX0dMKiwgRXZhc19HTF9T
dXJmYWNlKiBwYXNzU3VyZmFjZSk7Ci0KICAgICBFdmFzX0dMKiBtX2V2YXNHTDsKICAgICBFdmFz
X0dMX1N1cmZhY2UqIG1fc3VyZmFjZTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Vm
bC9XZWJDb3JlU3VwcG9ydC9BY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dEVmbC5jcHAgYi9T
b3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9BY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29u
dGV4dEVmbC5jcHAKaW5kZXggMWQwNWU2Zjc2ZDU1MjliMWY5ZjVkMGMyYzNkYjRlYTE3NzgwOGIy
MC4uZWZkNzI1YmY2NWEyNDBkZDdlODRhNmFmMWY0ZjQ4M2U0ZjRjYTU2NyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0Nv
bnRleHRFZmwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0FjY2Vs
ZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0RWZsLmNwcApAQCAtNDcsNyArNDcsNyBAQCBBY2NlbGVy
YXRlZENvbXBvc2l0aW5nQ29udGV4dDo6fkFjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0KCkK
IAogYm9vbCBBY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dDo6aW5pdGlhbGl6ZSgpCiB7Ci0g
ICAgbV9ldmFzR0wgPSBhZG9wdFB0cihldmFzX2dsX25ldyhldmFzX29iamVjdF9ldmFzX2dldCht
X3ZpZXcpKSk7CisgICAgbV9ldmFzR0wgPSBFZmxVbmlxdWVQdHI8RXZhc19HTD4oZXZhc19nbF9u
ZXcoZXZhc19vYmplY3RfZXZhc19nZXQobV92aWV3KSkpOwogICAgIGlmICghbV9ldmFzR0wpCiAg
ICAgICAgIHJldHVybiBmYWxzZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvV2Vi
Q29yZVN1cHBvcnQvQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHRFZmwuaCBiL1NvdXJjZS9X
ZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0RWZs
LmgKaW5kZXggOTNhNzI3YTA5YzQ4YjIwMGRmNjE1NjExNmIyZDVmZThlY2Y0OWQ3OC4uNDgzYzg5
ZjhiNjI3NDVhYTJlYzEwNTNmNWZkNThhNTA3MjJiYjQ5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHRFZmwu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9BY2NlbGVyYXRlZENvbXBv
c2l0aW5nQ29udGV4dEVmbC5oCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSAiVGltZXIuaCIK
ICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KICNpbmNsdWRlIDx3dGYvT3duUHRyLmg+Cisj
aW5jbHVkZSA8d3RmL2VmbC9VbmlxdWVQdHJFZmwuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
CkBAIC02Miw5ICs2Myw5IEBAIHByaXZhdGU6CiAgICAgc3RkOjp1bmlxdWVfcHRyPEdyYXBoaWNz
TGF5ZXI+IG1fcm9vdEdyYXBoaWNzTGF5ZXI7CiAgICAgVGltZXI8QWNjZWxlcmF0ZWRDb21wb3Np
dGluZ0NvbnRleHQ+IG1fc3luY1RpbWVyOwogCi0gICAgT3duUHRyPEV2YXNfR0w+IG1fZXZhc0dM
OwotICAgIE93blB0cjxFdmFzR0xDb250ZXh0PiBtX2V2YXNHTENvbnRleHQ7Ci0gICAgT3duUHRy
PEV2YXNHTFN1cmZhY2U+IG1fZXZhc0dMU3VyZmFjZTsKKyAgICBFZmxVbmlxdWVQdHI8RXZhc19H
TD4gbV9ldmFzR0w7CisgICAgc3RkOjp1bmlxdWVfcHRyPEV2YXNHTENvbnRleHQ+IG1fZXZhc0dM
Q29udGV4dDsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8RXZhc0dMU3VyZmFjZT4gbV9ldmFzR0xTdXJm
YWNlOwogCiAgICAgVGV4dHVyZU1hcHBlckZQU0NvdW50ZXIgbV9mcHNDb3VudGVyOwogfTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0JhdHRlcnlDbGllbnRF
ZmwuaCBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0JhdHRlcnlDbGllbnRFZmwu
aAppbmRleCBkMTFhY2M5Y2E2MjNmZTMwYTUzNDA2OTI2MDFhZjVlMDU2MTVhM2M2Li4xMzBhZTkz
ZDVjM2E2ZmIyMGNhNGM5MWJiMzlmODFlOTJjOTA4MGQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9CYXR0ZXJ5Q2xpZW50RWZsLmgKKysrIGIvU291cmNlL1dl
YktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvQmF0dGVyeUNsaWVudEVmbC5oCkBAIC0yOSw2ICsyOSw4
IEBACiAjaW5jbHVkZSAiQmF0dGVyeVN0YXR1cy5oIgogI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRy
Lmg+CiAKK3R5cGVkZWYgc3RydWN0IF9FdmFzX09iamVjdCBFdmFzX09iamVjdDsKKwogbmFtZXNw
YWNlIFdlYkNvcmUgewogY2xhc3MgQmF0dGVyeUNvbnRyb2xsZXI7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmwu
aCBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9y
dEVmbC5oCmluZGV4IDNmZTVlMTMxMmIwNjczMGEyYjgwZjA3MWMyNGM1MTFiMjk2NzBmYmEuLjQ0
Njk3NjBjNjBmOWE2Yzc5ZTA4OWZjMmVlNWJjNWE1ZjA3NDhkYjggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbC5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9y
dEVmbC5oCkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSA8YXRrL2F0ay5oPgogI2VuZGlmCiAK
K3R5cGVkZWYgc3RydWN0IF9FdmFzX09iamVjdCBFdmFzX09iamVjdDsKIHR5cGVkZWYgc3RydWN0
IF9Fd2tfSGlzdG9yeV9JdGVtIEV3a19IaXN0b3J5X0l0ZW07CiAKIHR5cGVkZWYgVmVjdG9yPEV3
a19IaXN0b3J5X0l0ZW0qPiBIaXN0b3J5SXRlbUNoaWxkcmVuVmVjdG9yOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50RWZsLmggYi9Tb3Vy
Y2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRFZmwuaAppbmRleCAyNjUz
OTJkOGFmYWVlMGY3Zjk5Y2JjZDQ0OTJiOTRiMmNjZjAwYTI3Li43NjdjOTY5NmJmZWI5MDRmZjQ2
YzE4OTM2ODFhZWJiNzgzODE1ZmExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJD
b3JlU3VwcG9ydC9FZGl0b3JDbGllbnRFZmwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJD
b3JlU3VwcG9ydC9FZGl0b3JDbGllbnRFZmwuaApAQCAtNDIsNiArNDIsOCBAQAogI2luY2x1ZGUg
PHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nVmlldy5oPgogCit0eXBl
ZGVmIHN0cnVjdCBfRXZhc19PYmplY3QgRXZhc19PYmplY3Q7CisKIHN0cnVjdCBFd2tfU2hvdWxk
X0luc2VydF9Ob2RlX0V2ZW50IHsKICAgICBXZWJDb3JlOjpOb2RlKiBub2RlOwogICAgIFdlYkNv
cmU6OlJhbmdlKiByYW5nZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVT
dXBwb3J0L0ZyYW1lTmV0d29ya2luZ0NvbnRleHRFZmwuaCBiL1NvdXJjZS9XZWJLaXQvZWZsL1dl
YkNvcmVTdXBwb3J0L0ZyYW1lTmV0d29ya2luZ0NvbnRleHRFZmwuaAppbmRleCA4YTc2NDllN2Zk
ZTc3YTc5ZmE2Y2YwNjFmYjg0MGFhZDQ5MWRhMDlkLi4yZTE3NTVmODI1NTZkMWFjZGI5M2EwM2Fi
MWQwMjc5NTg2MjQ3YjYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3Vw
cG9ydC9GcmFtZU5ldHdvcmtpbmdDb250ZXh0RWZsLmgKKysrIGIvU291cmNlL1dlYktpdC9lZmwv
V2ViQ29yZVN1cHBvcnQvRnJhbWVOZXR3b3JraW5nQ29udGV4dEVmbC5oCkBAIC0zMSw2ICszMSw4
IEBACiAKICNpbmNsdWRlICJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmgiCiAKK3R5cGVkZWYgc3Ry
dWN0IF9FdmFzX09iamVjdCBFdmFzX09iamVjdDsKKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBj
bGFzcyBGcmFtZU5ldHdvcmtpbmdDb250ZXh0RWZsIDogcHVibGljIFdlYkNvcmU6OkZyYW1lTmV0
d29ya2luZ0NvbnRleHQgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1
cHBvcnQvTmF2aWdhdG9yQ29udGVudFV0aWxzQ2xpZW50RWZsLmggYi9Tb3VyY2UvV2ViS2l0L2Vm
bC9XZWJDb3JlU3VwcG9ydC9OYXZpZ2F0b3JDb250ZW50VXRpbHNDbGllbnRFZmwuaAppbmRleCA2
MzVjZmQwMTkzMWMwZTYzZWJkYzY2YzBhNTY2NTY2Y2JlNWEwMzQ0Li4zMWE2MDY0OTkyMzRmNTli
ZWQ2MTQ3N2I3NzQyNmE5ZTRiZTNiZmE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9X
ZWJDb3JlU3VwcG9ydC9OYXZpZ2F0b3JDb250ZW50VXRpbHNDbGllbnRFZmwuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9OYXZpZ2F0b3JDb250ZW50VXRpbHNDbGllbnRF
ZmwuaApAQCAtMzMsNiArMzMsOCBAQAogCiAjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KIAor
dHlwZWRlZiBzdHJ1Y3QgX0V2YXNfT2JqZWN0IEV2YXNfT2JqZWN0OworCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiBjbGFzcyBOYXZpZ2F0b3JDb250ZW50VXRpbHNDbGllbnRFZmwgOiBwdWJsaWMgV2Vi
Q29yZTo6TmF2aWdhdG9yQ29udGVudFV0aWxzQ2xpZW50IHsKIHB1YmxpYzoKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9l
d2svZXdrX3ZpZXcuY3BwCmluZGV4IDk5OTcwZWNjNmQ1MGM3MmUzZWQ1ZGFlOGNlODgwNTkzNDA2
MzJmOWEuLjU3NjU0NTg1NmMxY2M3YjEyNGQ5MzJmNjQwNTEyZmUwYzRhZTNlNjcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9lZmwvZXdrL2V3a192aWV3LmNwcApAQCAtMTQ4MiwxMCArMTQ4MiwxMCBAQCBzdGF0aWMgRWlu
YV9Cb29sIF9ld2tfdmlld19zbWFydF9lbmFibGVfcmVuZGVyKEV3a19WaWV3X1NtYXJ0X0RhdGEq
IHNtYXJ0RGF0YSkKIAogc3RhdGljIGNvbnN0IGNoYXIqIF9ld2tfdmlld19lZGl0b3JfY29tbWFu
ZF9zdHJpbmdfZ2V0KEV3a19WaWV3X1ByaXZhdGVfRGF0YSosIEV3a19FZGl0b3JfQ29tbWFuZCBl
d2tDb21tYW5kKQogewotICAgIHN0YXRpYyBPd25QdHI8RWluYV9IYXNoPiBlZGl0b3JDb21tYW5k
SGFzaDsKKyAgICBzdGF0aWMgRWZsVW5pcXVlUHRyPEVpbmFfSGFzaD4gZWRpdG9yQ29tbWFuZEhh
c2g7CiAKICAgICBpZiAoIWVkaXRvckNvbW1hbmRIYXNoKSB7Ci0gICAgICAgIGVkaXRvckNvbW1h
bmRIYXNoID0gYWRvcHRQdHIoZWluYV9oYXNoX2ludDMyX25ldygwKSk7CisgICAgICAgIGVkaXRv
ckNvbW1hbmRIYXNoID0gRWZsVW5pcXVlUHRyPEVpbmFfSGFzaD4oZWluYV9oYXNoX2ludDMyX25l
dygwKSk7CiAgICAgICAgIGZvciAoaW50IGkgPSAwOyBlZGl0b3JDb21tYW5kc1tpXS5ld2tFZGl0
b3JDb21tYW5kICE9IEVXS19FRElUT1JfQ09NTUFORF9OT05FOyBpKyspCiAgICAgICAgICAgICBl
aW5hX2hhc2hfYWRkKGVkaXRvckNvbW1hbmRIYXNoLmdldCgpLCAmZWRpdG9yQ29tbWFuZHNbaV0u
ZXdrRWRpdG9yQ29tbWFuZCwgZWRpdG9yQ29tbWFuZHNbaV0uZWRpdG9yQ29tbWFuZFN0cmluZyk7
CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvdGVzdHMvVW5pdFRlc3RVdGls
cy9FV0tUZXN0Vmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC90ZXN0cy9Vbml0VGVzdFV0aWxz
L0VXS1Rlc3RWaWV3LmNwcAppbmRleCAyYTljNjg4MjcxNjM2ZTk3YjNiYmM0Y2ZjMWZiMzZiN2Y3
OGQ5ODQ3Li43M2IzZDBiZDVmMjY0MTk3ZThkMjY5MWE2ODQyN2VmYmU0NjQ0YTY0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC90ZXN0cy9Vbml0VGVzdFV0aWxzL0VXS1Rlc3RWaWV3LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC90ZXN0cy9Vbml0VGVzdFV0aWxzL0VXS1Rlc3RWaWV3
LmNwcApAQCAtMjAsNyArMjAsNiBAQAogI2luY2x1ZGUgIkVXS1Rlc3RWaWV3LmgiCiAKICNpbmNs
dWRlIDxFV2ViS2l0Lmg+Ci0jaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KICNpbmNsdWRlIDx3
dGYvUmVmUHRyLmg+CiAKIG5hbWVzcGFjZSBFV0tVbml0VGVzdHMgewpAQCAtMzMsNyArMzIsNyBA
QCBib29sIEVXS1Rlc3RWaWV3Ojppbml0KGludCB3aWR0aCwgaW50IGhlaWdodCkKIHsKICAgICBt
X3dlYlZpZXcgPSBudWxscHRyOwogCi0gICAgbV9lY29yZUV2YXMgPSBhZG9wdFB0cihlY29yZV9l
dmFzX25ldygwLCAwLCAwLCB3aWR0aCwgaGVpZ2h0LCAwKSk7CisgICAgbV9lY29yZUV2YXMgPSBF
ZmxVbmlxdWVQdHI8RWNvcmVfRXZhcz4oZWNvcmVfZXZhc19uZXcoMCwgMCwgMCwgd2lkdGgsIGhl
aWdodCwgMCkpOwogICAgIGlmICghbV9lY29yZUV2YXMpCiAgICAgICAgIHJldHVybiBmYWxzZTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvdGVzdHMvVW5pdFRlc3RVdGlscy9FV0tU
ZXN0Vmlldy5oIGIvU291cmNlL1dlYktpdC9lZmwvdGVzdHMvVW5pdFRlc3RVdGlscy9FV0tUZXN0
Vmlldy5oCmluZGV4IGQ2YTEyYzU4OWU3NGZiYWJlNTEwZGU4MDVkYWQwYzc4NTY0Y2RhMDIuLjVl
NDg2OWE2ZmJmOGNjZmJjZTQ4NDllNDM1MjZmZDMxOWE4MTc0MDIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvZWZsL3Rlc3RzL1VuaXRUZXN0VXRpbHMvRVdLVGVzdFZpZXcuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L2VmbC90ZXN0cy9Vbml0VGVzdFV0aWxzL0VXS1Rlc3RWaWV3LmgKQEAgLTIyLDgg
KzIyLDggQEAKICNpbmNsdWRlICJFV0tUZXN0Q29uZmlnLmgiCiAjaW5jbHVkZSA8RWNvcmVfRXZh
cy5oPgogI2luY2x1ZGUgPEV2YXMuaD4KLSNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CiAjaW5jbHVk
ZSA8d3RmL2VmbC9SZWZQdHJFZmwuaD4KKyNpbmNsdWRlIDx3dGYvZWZsL1VuaXF1ZVB0ckVmbC5o
PgogCiBuYW1lc3BhY2UgRVdLVW5pdFRlc3RzIHsKIApAQCAtMzgsNyArMzgsNyBAQCBwcml2YXRl
OgogICAgIEVXS1Rlc3RWaWV3KGNvbnN0IEVXS1Rlc3RWaWV3Jik7CiAgICAgRVdLVGVzdFZpZXcm
IG9wZXJhdG9yPShjb25zdCBFV0tUZXN0VmlldyYpOwogCi0gICAgT3duUHRyPEVjb3JlX0V2YXM+
IG1fZWNvcmVFdmFzOworICAgIEVmbFVuaXF1ZVB0cjxFY29yZV9FdmFzPiBtX2Vjb3JlRXZhczsK
ICAgICBSZWZQdHI8RXZhc19PYmplY3Q+IG1fd2ViVmlldzsKIH07CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1BsYXRmb3JtL01vZHVsZS5oIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0v
TW9kdWxlLmgKaW5kZXggZmU2MGY5ODQ2ZDM0YjdkOGE5MWQ5ZDI1OTI2NGE5MTUzOTU2MzQwMi4u
YWY2NTJhOWQ0NTYxOWIxNDJiN2I2ZDIxNWFkOWVkZjAxMzAxMDExNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvUGxhdGZvcm0vTW9kdWxlLmgKKysrIGIvU291cmNlL1dlYktpdDIvUGxhdGZv
cm0vTW9kdWxlLmgKQEAgLTM5LDYgKzM5LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgX0dNb2R1bGUgR01v
ZHVsZTsKIAogI2lmIFBMQVRGT1JNKEVGTCkKICNpbmNsdWRlIDxFaW5hLmg+CisjaW5jbHVkZSA8
d3RmL2VmbC9VbmlxdWVQdHJFZmwuaD4KICNlbmRpZgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAg
LTc2LDcgKzc3LDcgQEAgcHJpdmF0ZToKICNlbGlmIFBMQVRGT1JNKEdUSykKICAgICBHTW9kdWxl
KiBtX2hhbmRsZTsKICNlbGlmIFBMQVRGT1JNKEVGTCkKLSAgICBPd25QdHI8RWluYV9Nb2R1bGU+
IG1fbW9kdWxlOworICAgIEVmbFVuaXF1ZVB0cjxFaW5hX01vZHVsZT4gbV9tb2R1bGU7CiAjZW5k
aWYKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL2VmbC9Nb2R1bGVF
ZmwuY3BwIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vZWZsL01vZHVsZUVmbC5jcHAKaW5kZXgg
ZjQwYjEzYjEwNjZlYmI4N2E5YzVjZDdhMWZiNGNhMDEwMDg4YjkxYS4uMTQ5MThhNWNkMDU4Mjdi
NzYzZGZhMjk3YmIzNGRkZDI2MmMzZDM1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGxh
dGZvcm0vZWZsL01vZHVsZUVmbC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vZWZs
L01vZHVsZUVmbC5jcHAKQEAgLTI4LDcgKzI4LDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIGJv
b2wgTW9kdWxlOjpsb2FkKCkKIHsKLSAgICBtX21vZHVsZSA9IGFkb3B0UHRyKGVpbmFfbW9kdWxl
X25ldyhtX3BhdGgudXRmOCgpLmRhdGEoKSkpOworICAgIG1fbW9kdWxlID0gRWZsVW5pcXVlUHRy
PEVpbmFfTW9kdWxlPihlaW5hX21vZHVsZV9uZXcobV9wYXRoLnV0ZjgoKS5kYXRhKCkpKTsKICAg
ICBpZiAoIW1fbW9kdWxlIHx8ICFlaW5hX21vZHVsZV9sb2FkKG1fbW9kdWxlLmdldCgpKSkgewog
ICAgICAgICBtX21vZHVsZSA9IG51bGxwdHI7CiAgICAgICAgIHJldHVybiBmYWxzZTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0V3a1ZpZXcuY3BwIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvRXdrVmlldy5jcHAKaW5kZXggNDkyMjBiNGUw
Y2JkNzI5ZWE5NTUwODdhNzhjMzc2NTA3NWE0MTZhYS4uZGRkZjQxZTAxYjA4NDc4YzhiMTg4NTQz
YmI0ZTExNmU5YTc0MGZlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9lZmwvRXdrVmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwv
RXdrVmlldy5jcHAKQEAgLTMwMSw3ICszMDEsNyBAQCBFd2tWaWV3OjpFd2tWaWV3KFdLVmlld1Jl
ZiB2aWV3LCBFdmFzX09iamVjdCogZXZhc09iamVjdCkKIAogICAgIC8vIEZJWE1FOiBSZW1vdmUg
d2hlbiBwb3NzaWJsZS4KICAgICBzdGF0aWNfY2FzdDxXZWJWaWV3RWZsKj4od2ViVmlldygpKS0+
c2V0RXdrVmlldyh0aGlzKTsKLSAgICBtX2V2YXNHTCA9IGFkb3B0UHRyKGV2YXNfZ2xfbmV3KGV2
YXNfb2JqZWN0X2V2YXNfZ2V0KG1fZXZhc09iamVjdCkpKTsKKyAgICBtX2V2YXNHTCA9IEVmbFVu
aXF1ZVB0cjxFdmFzX0dMPihldmFzX2dsX25ldyhldmFzX29iamVjdF9ldmFzX2dldChtX2V2YXNP
YmplY3QpKSk7CiAgICAgaWYgKG1fZXZhc0dMKQogICAgICAgICBtX2V2YXNHTENvbnRleHQgPSBF
dmFzR0xDb250ZXh0OjpjcmVhdGUobV9ldmFzR0wuZ2V0KCkpOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9Fd2tWaWV3LmggYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL2VmbC9Fd2tWaWV3LmgKaW5kZXggMDkxZGNmNjljNTZlMjAzNDJhMzM4NTli
OWNhMDkwMDlkZTY2YWNkZC4uOTNkMTk0YjkxYThiMmI1OTBhYjY3ODE0M2MzYWIzZDExMzE4Y2Iw
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvRXdrVmlldy5o
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0V3a1ZpZXcuaApAQCAtMjUx
LDkgKzI1MSw5IEBAIHByaXZhdGU6CiAgICAgRXZhc19PYmplY3QqIG1fZXZhc09iamVjdDsKICAg
ICBSZWZQdHI8RXdrQ29udGV4dD4gbV9jb250ZXh0OwogICAgIFJlZlB0cjxFd2tQYWdlR3JvdXA+
IG1fcGFnZUdyb3VwOwotICAgIE93blB0cjxFdmFzX0dMPiBtX2V2YXNHTDsKLSAgICBPd25QdHI8
V2ViQ29yZTo6RXZhc0dMQ29udGV4dD4gbV9ldmFzR0xDb250ZXh0OwotICAgIE93blB0cjxXZWJD
b3JlOjpFdmFzR0xTdXJmYWNlPiBtX2V2YXNHTFN1cmZhY2U7CisgICAgRWZsVW5pcXVlUHRyPEV2
YXNfR0w+IG1fZXZhc0dMOworICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpFdmFzR0xDb250
ZXh0PiBtX2V2YXNHTENvbnRleHQ7CisgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OkV2YXNH
TFN1cmZhY2U+IG1fZXZhc0dMU3VyZmFjZTsKICAgICBib29sIG1fcGVuZGluZ1N1cmZhY2VSZXNp
emU7CiAKICAgICBXZWJDb3JlOjpUcmFuc2Zvcm1hdGlvbk1hdHJpeCBtX3VzZXJWaWV3cG9ydFRy
YW5zZm9ybTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvSW5wdXRN
ZXRob2RDb250ZXh0RWZsLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvSW5wdXRN
ZXRob2RDb250ZXh0RWZsLmNwcAppbmRleCA4N2RmMTQyMDhmY2I1YTRlZjljMWI3OTE1YmNhYzc1
NDJjM2M1ZWIxLi5jMDk4MzM4N2I3NDQ2MTZkODVlZWMwYzczYzdjZDEzYjhmMDk5ZGVlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL0lucHV0TWV0aG9kQ29udGV4dEVm
bC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9JbnB1dE1ldGhvZENvbnRl
eHRFZmwuY3BwCkBAIC0zMSw5ICszMSw5IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBu
YW1lc3BhY2UgV2ViS2l0IHsKIAotSW5wdXRNZXRob2RDb250ZXh0RWZsOjpJbnB1dE1ldGhvZENv
bnRleHRFZmwoRXdrVmlldyogdmlldywgUGFzc093blB0cjxFY29yZV9JTUZfQ29udGV4dD4gY29u
dGV4dCkKK0lucHV0TWV0aG9kQ29udGV4dEVmbDo6SW5wdXRNZXRob2RDb250ZXh0RWZsKEV3a1Zp
ZXcqIHZpZXcsIEVmbFVuaXF1ZVB0cjxFY29yZV9JTUZfQ29udGV4dD4gY29udGV4dCkKICAgICA6
IG1fdmlldyh2aWV3KQotICAgICwgbV9jb250ZXh0KGNvbnRleHQpCisgICAgLCBtX2NvbnRleHQo
c3RkOjptb3ZlKGNvbnRleHQpKQogICAgICwgbV9mb2N1c2VkKGZhbHNlKQogewogICAgIEFTU0VS
VChtX2NvbnRleHQpOwpAQCAtNzMsMTMgKzczLDEzIEBAIHZvaWQgSW5wdXRNZXRob2RDb250ZXh0
RWZsOjpvbklNRlByZWVkaXRTZXF1ZW5jZUNoYW5nZWQodm9pZCogZGF0YSwgRWNvcmVfSU1GX0Nv
CiAgICAgaW5wdXRNZXRob2RDb250ZXh0LT5tX3ZpZXctPnBhZ2UoKS0+c2V0Q29tcG9zaXRpb24o
cHJlZWRpdFN0cmluZywgdW5kZXJsaW5lcywgMCk7CiB9CiAKLVBhc3NPd25QdHI8RWNvcmVfSU1G
X0NvbnRleHQ+IElucHV0TWV0aG9kQ29udGV4dEVmbDo6Y3JlYXRlSU1GQ29udGV4dChFdmFzKiBj
YW52YXMpCitFZmxVbmlxdWVQdHI8RWNvcmVfSU1GX0NvbnRleHQ+IElucHV0TWV0aG9kQ29udGV4
dEVmbDo6Y3JlYXRlSU1GQ29udGV4dChFdmFzKiBjYW52YXMpCiB7CiAgICAgY29uc3QgY2hhciog
ZGVmYXVsdENvbnRleHRJRCA9IGVjb3JlX2ltZl9jb250ZXh0X2RlZmF1bHRfaWRfZ2V0KCk7CiAg
ICAgaWYgKCFkZWZhdWx0Q29udGV4dElEKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAg
IE93blB0cjxFY29yZV9JTUZfQ29udGV4dD4gaW1mQ29udGV4dCA9IGFkb3B0UHRyKGVjb3JlX2lt
Zl9jb250ZXh0X2FkZChkZWZhdWx0Q29udGV4dElEKSk7CisgICAgRWZsVW5pcXVlUHRyPEVjb3Jl
X0lNRl9Db250ZXh0PiBpbWZDb250ZXh0KGVjb3JlX2ltZl9jb250ZXh0X2FkZChkZWZhdWx0Q29u
dGV4dElEKSk7CiAgICAgaWYgKCFpbWZDb250ZXh0KQogICAgICAgICByZXR1cm4gbnVsbHB0cjsK
IApAQCAtODcsNyArODcsNyBAQCBQYXNzT3duUHRyPEVjb3JlX0lNRl9Db250ZXh0PiBJbnB1dE1l
dGhvZENvbnRleHRFZmw6OmNyZWF0ZUlNRkNvbnRleHQoRXZhcyogY2FudgogICAgIGVjb3JlX2lt
Zl9jb250ZXh0X2NsaWVudF93aW5kb3dfc2V0KGltZkNvbnRleHQuZ2V0KCksIHJlaW50ZXJwcmV0
X2Nhc3Q8dm9pZCo+KGVjb3JlX2V2YXNfd2luZG93X2dldChlY29yZUV2YXMpKSk7CiAgICAgZWNv
cmVfaW1mX2NvbnRleHRfY2xpZW50X2NhbnZhc19zZXQoaW1mQ29udGV4dC5nZXQoKSwgY2FudmFz
KTsKIAotICAgIHJldHVybiBpbWZDb250ZXh0LnJlbGVhc2UoKTsKKyAgICByZXR1cm4gaW1mQ29u
dGV4dDsKIH0KIAogdm9pZCBJbnB1dE1ldGhvZENvbnRleHRFZmw6OmhhbmRsZU1vdXNlVXBFdmVu
dChjb25zdCBFdmFzX0V2ZW50X01vdXNlX1VwKikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9lZmwvSW5wdXRNZXRob2RDb250ZXh0RWZsLmggYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvZWZsL0lucHV0TWV0aG9kQ29udGV4dEVmbC5oCmluZGV4IDEyZGUwYWNhYWU4YjYx
NDI1OWVlYjE5MTQ4ODFhYmM2ZjE0YjRjMmYuLjc1ZjBiNmRjYTM1YzkxMWU5OTE1NmJkNmI3NTdk
NTBjYjBjZjkzMmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvSW5w
dXRNZXRob2RDb250ZXh0RWZsLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9J
bnB1dE1ldGhvZENvbnRleHRFZmwuaApAQCAtMjUsNiArMjUsNyBAQAogI2luY2x1ZGUgPEV2YXMu
aD4KICNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4K
KyNpbmNsdWRlIDx3dGYvZWZsL1VuaXF1ZVB0ckVmbC5oPgogCiBjbGFzcyBFd2tWaWV3OwogCkBA
IC0zNiwxMSArMzcsMTEgQEAgY2xhc3MgSW5wdXRNZXRob2RDb250ZXh0RWZsIHsKIHB1YmxpYzoK
ICAgICBzdGF0aWMgUGFzc093blB0cjxJbnB1dE1ldGhvZENvbnRleHRFZmw+IGNyZWF0ZShFd2tW
aWV3KiB2aWV3SW1wbCwgRXZhcyogY2FudmFzKQogICAgIHsKLSAgICAgICAgT3duUHRyPEVjb3Jl
X0lNRl9Db250ZXh0PiBjb250ZXh0ID0gY3JlYXRlSU1GQ29udGV4dChjYW52YXMpOworICAgICAg
ICBFZmxVbmlxdWVQdHI8RWNvcmVfSU1GX0NvbnRleHQ+IGNvbnRleHQgPSBjcmVhdGVJTUZDb250
ZXh0KGNhbnZhcyk7CiAgICAgICAgIGlmICghY29udGV4dCkKICAgICAgICAgICAgIHJldHVybiBu
dWxscHRyOwogCi0gICAgICAgIHJldHVybiBhZG9wdFB0cihuZXcgSW5wdXRNZXRob2RDb250ZXh0
RWZsKHZpZXdJbXBsLCBjb250ZXh0LnJlbGVhc2UoKSkpOworICAgICAgICByZXR1cm4gYWRvcHRQ
dHIobmV3IElucHV0TWV0aG9kQ29udGV4dEVmbCh2aWV3SW1wbCwgc3RkOjptb3ZlKGNvbnRleHQp
KSk7CiAgICAgfQogICAgIH5JbnB1dE1ldGhvZENvbnRleHRFZmwoKTsKIApAQCAtNDksMTQgKzUw
LDE0IEBAIHB1YmxpYzoKICAgICB2b2lkIHVwZGF0ZVRleHRJbnB1dFN0YXRlKCk7CiAKIHByaXZh
dGU6Ci0gICAgSW5wdXRNZXRob2RDb250ZXh0RWZsKEV3a1ZpZXcqLCBQYXNzT3duUHRyPEVjb3Jl
X0lNRl9Db250ZXh0Pik7CisgICAgSW5wdXRNZXRob2RDb250ZXh0RWZsKEV3a1ZpZXcqLCBFZmxV
bmlxdWVQdHI8RWNvcmVfSU1GX0NvbnRleHQ+KTsKIAotICAgIHN0YXRpYyBQYXNzT3duUHRyPEVj
b3JlX0lNRl9Db250ZXh0PiBjcmVhdGVJTUZDb250ZXh0KEV2YXMqIGNhbnZhcyk7CisgICAgc3Rh
dGljIEVmbFVuaXF1ZVB0cjxFY29yZV9JTUZfQ29udGV4dD4gY3JlYXRlSU1GQ29udGV4dChFdmFz
KiBjYW52YXMpOwogICAgIHN0YXRpYyB2b2lkIG9uSU1GSW5wdXRTZXF1ZW5jZUNvbXBsZXRlKHZv
aWQqIGRhdGEsIEVjb3JlX0lNRl9Db250ZXh0Kiwgdm9pZCogZXZlbnRJbmZvKTsKICAgICBzdGF0
aWMgdm9pZCBvbklNRlByZWVkaXRTZXF1ZW5jZUNoYW5nZWQodm9pZCogZGF0YSwgRWNvcmVfSU1G
X0NvbnRleHQqLCB2b2lkKiBldmVudEluZm8pOwogCiAgICAgRXdrVmlldyogbV92aWV3OwotICAg
IE93blB0cjxFY29yZV9JTUZfQ29udGV4dD4gbV9jb250ZXh0OworICAgIEVmbFVuaXF1ZVB0cjxF
Y29yZV9JTUZfQ29udGV4dD4gbV9jb250ZXh0OwogICAgIGJvb2wgbV9mb2N1c2VkOwogfTsKIApk
aWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGM5MGZh
MzIyMTM3MmZlNzBiZTgyYjgwZGNkODY0NjQ0YWRkYmFiYTYuLjUzODEwNTNlY2Q4N2U3MDZmMjg2
NTgyY2E3YTdjNDdlY2E2OWM3NzcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9U
b29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAxNC0wMy0xOSAgSHlvd29uIEtpbSAg
PGh3MTAwOC5raW1Ac2Ftc3VuZy5jb20+CisKKyAgICAgICAgTW92ZSB0byB1c2luZyBzdGQ6OnVu
aXF1ZV9wdHIgZm9yIEVGTCBvYmplY3RzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTI5ODUzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgRWZsVW5pcXVlUHRyIGlzIGEgdGVtcGxhdGUgYWxpYXMgb2Ygc3Rk
Ojp1bmlxdWVfcHRyCisgICAgICAgIHdpdGggYSBjdXN0b20gZGVsZXRlciBmb3IgZWFjaCBFZmwg
T2JqZWN0cywgd2hpY2ggaXMgbW90aXZhdGVkIGJ5IEdVbmlxdWVQdHIuCisgICAgICAgIFRoaXMg
cGF0Y2ggcmVwbGFjZXMgdXNlcyBvZiBPd25QdHIgYW5kIFBhc3NPd25QdHIgZm9yIEVmbCBvYmpl
Y3RzIHdpdGggRWZsVW5pcXVlUHRyLgorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvZWZsL0R1
bXBSZW5kZXJUcmVlLmNwcDoKKyAgICAgICAgKG1haW4pOgorICAgICAgICAqIEltYWdlRGlmZi9l
ZmwvSW1hZ2VEaWZmLmNwcDoKKyAgICAgICAgKGluaXRFZmwpOgorICAgICAgICAobWFpbik6CisK
IDIwMTQtMDMtMTggIFNhbXVlbCBXaGl0ZSAgPHNhbXVlbF93aGl0ZUBhcHBsZS5jb20+CiAKICAg
ICAgICAgQVg6IE5vdCBhYmxlIHRvIHVzZSBhcnJvdyBrZXlzIHRvIHJlYWQgdGV4dCB3aXRoIFZv
aWNlT3ZlciBiZWZvcmUgc2VsZWN0aW9uIGlzIHNldCBzb21lcGxhY2UgKGFueXBsYWNlKS4KZGlm
ZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2VmbC9EdW1wUmVuZGVyVHJlZS5jcHAgYi9U
b29scy9EdW1wUmVuZGVyVHJlZS9lZmwvRHVtcFJlbmRlclRyZWUuY3BwCmluZGV4IGQ4YTViNTZl
YTVlYWI0NDczMDNiYTljYmVlYmEyODhjMWIxZTlmOGEuLmRjM2UxMzQ0NzA4YTAwMTEzMmMyNjI1
N2U4OTY4MzQwNWQwY2MwZjggMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2VmbC9E
dW1wUmVuZGVyVHJlZS5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvZWZsL0R1bXBSZW5k
ZXJUcmVlLmNwcApAQCAtNTAsNiArNTAsNyBAQAogI2luY2x1ZGUgPHVuaXN0ZC5oPgogI2luY2x1
ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+CiAjaW5jbHVkZSA8d3RmL093blB0ci5oPgorI2luY2x1ZGUg
PHd0Zi9lZmwvVW5pcXVlUHRyRWZsLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgog
I2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KIApAQCAtNDU3LDcgKzQ1OCw3IEBA
IGludCBtYWluKGludCBhcmdjLCBjaGFyKiogYXJndikKIAogICAgIFdURkluc3RhbGxSZXBvcnRC
YWNrdHJhY2VPbkNyYXNoSG9vaygpOwogCi0gICAgT3duUHRyPEVjb3JlX0V2YXM+IGVjb3JlRXZh
cyA9IGFkb3B0UHRyKGluaXRFY29yZUV2YXMoKSk7CisgICAgRWZsVW5pcXVlUHRyPEVjb3JlX0V2
YXM+IGVjb3JlRXZhcyhpbml0RWNvcmVFdmFzKCkpOwogICAgIGJyb3dzZXIgPSBEdW1wUmVuZGVy
VHJlZUNocm9tZTo6Y3JlYXRlKGVjb3JlX2V2YXNfZ2V0KGVjb3JlRXZhcy5nZXQoKSkpOwogICAg
IGFkZEZvbnRzVG9FbnZpcm9ubWVudCgpOwogCkBAIC00NzAsNyArNDcxLDcgQEAgaW50IG1haW4o
aW50IGFyZ2MsIGNoYXIqKiBhcmd2KQogICAgICAgICAgICAgcnVuVGVzdChhcmd2W2ldKTsKICAg
ICB9CiAKLSAgICBlY29yZUV2YXMuY2xlYXIoKTsKKyAgICBlY29yZUV2YXMgPSBudWxscHRyOwog
CiAgICAgc2h1dGRvd25FZmwoKTsKICAgICByZXR1cm4gRVhJVF9TVUNDRVNTOwpkaWZmIC0tZ2l0
IGEvVG9vbHMvSW1hZ2VEaWZmL2VmbC9JbWFnZURpZmYuY3BwIGIvVG9vbHMvSW1hZ2VEaWZmL2Vm
bC9JbWFnZURpZmYuY3BwCmluZGV4IGQzMzMwOTljYzc4YzQ2ZTFiOTBmMmRmZjUwYjAwYTc3YzEw
NDIwYWYuLjQ0NTFjZDI4MGQwNjg1OGUwZDljODIxMDY5ZDRlZGFhZGNlZjU3YzkgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL0ltYWdlRGlmZi9lZmwvSW1hZ2VEaWZmLmNwcAorKysgYi9Ub29scy9JbWFnZURp
ZmYvZWZsL0ltYWdlRGlmZi5jcHAKQEAgLTQyLDExICs0MiwxMCBAQAogI2luY2x1ZGUgPHN5cy9z
dGF0Lmg+CiAjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CiAjaW5jbHVkZSA8dW5pc3RkLmg+Ci0jaW5j
bHVkZSA8d3RmL093blB0ci5oPgotI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAjaW5jbHVk
ZSA8d3RmL1Bhc3NSZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CiAjaW5j
bHVkZSA8d3RmL2VmbC9SZWZQdHJFZmwuaD4KKyNpbmNsdWRlIDx3dGYvZWZsL1VuaXF1ZVB0ckVm
bC5oPgogCiBlbnVtIFBpeGVsQ29tcG9uZW50IHsKICAgICBSZWQsCkBAIC01NSw3ICs1NCw3IEBA
IGVudW0gUGl4ZWxDb21wb25lbnQgewogICAgIEFscGhhCiB9OwogCi1zdGF0aWMgT3duUHRyPEVj
b3JlX0V2YXM+IGdFY29yZUV2YXM7CitzdGF0aWMgRWZsVW5pcXVlUHRyPEVjb3JlX0V2YXM+IGdF
Y29yZUV2YXM7CiBzdGF0aWMgZG91YmxlIGdUb2xlcmFuY2UgPSAwOwogCiBzdGF0aWMgdm9pZCBh
Ym9ydFdpdGhFcnJvck1lc3NhZ2UoY29uc3QgY2hhciogZXJyb3JNZXNzYWdlKTsKQEAgLTMxOCw3
ICszMTcsNyBAQCBzdGF0aWMgRXZhcyogaW5pdEVmbCgpCiAgICAgZWNvcmVfaW5pdCgpOwogICAg
IGVjb3JlX2V2YXNfaW5pdCgpOwogCi0gICAgZ0Vjb3JlRXZhcyA9IGFkb3B0UHRyKGVjb3JlX2V2
YXNfYnVmZmVyX25ldygxLCAxKSk7CisgICAgZ0Vjb3JlRXZhcyA9IEVmbFVuaXF1ZVB0cjxFY29y
ZV9FdmFzPihlY29yZV9ldmFzX2J1ZmZlcl9uZXcoMSwgMSkpOwogICAgIEV2YXMqIGV2YXMgPSBl
Y29yZV9ldmFzX2dldChnRWNvcmVFdmFzLmdldCgpKTsKICAgICBpZiAoIWV2YXMpCiAgICAgICAg
IGFib3J0V2l0aEVycm9yTWVzc2FnZSgiY291bGQgbm90IGNyZWF0ZSBFY29yZV9FdmFzIGJ1ZmZl
ciIpOwpAQCAtMzYxLDcgKzM2MCw3IEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyKiBhcmd2W10p
CiAgICAgICAgIGZmbHVzaChzdGRvdXQpOwogICAgIH0KIAotICAgIGdFY29yZUV2YXMuY2xlYXIo
KTsgLy8gTWFrZSBzdXJlIGVjb3JlX2V2YXNfZnJlZSBpcyBjYWxsZWQgYmVmb3JlIHRoZSBFRkwg
YXJlIHNodXQgZG93bgorICAgIGdFY29yZUV2YXMgPSBudWxscHRyOyAvLyBNYWtlIHN1cmUgZWNv
cmVfZXZhc19mcmVlIGlzIGNhbGxlZCBiZWZvcmUgdGhlIEVGTCBhcmUgc2h1dCBkb3duCiAKICAg
ICBzaHV0ZG93bkVmbCgpOwogICAgIHJldHVybiBFWElUX1NVQ0NFU1M7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>227292</attachid>
            <date>2014-03-20 08:33:33 -0700</date>
            <delta_ts>2014-03-20 21:15:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-129853-20140321003310.patch</filename>
            <type>text/plain</type>
            <size>36927</size>
            <attacher name="Hyowon Kim">hw1008.kim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY1ODkxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGY1ZTk0ZWVkMTRhNGFlNDA3N2Y0ZTk0
OTk3YzZlY2FkYjY0ZDkwOTEuLjAwNmMzZWU4MTcyNzBjOTNjZWYyZDM2NjM2NDRjMWIzY2Y5YjUw
ZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjYgQEAKKzIwMTQtMDMtMTkgIEh5b3dvbiBLaW0gIDxodzEwMDgu
a2ltQHNhbXN1bmcuY29tPgorCisgICAgICAgIE1vdmUgdG8gdXNpbmcgc3RkOjp1bmlxdWVfcHRy
IGZvciBFRkwgb2JqZWN0cy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTEyOTg1MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIEVmbFVuaXF1ZVB0ciBpcyBhIHRlbXBsYXRlIGFsaWFzIG9mIHN0ZDo6dW5pcXVl
X3B0cgorICAgICAgICB3aXRoIGEgY3VzdG9tIGRlbGV0ZXIgZm9yIGVhY2ggRWZsIE9iamVjdHMs
IHdoaWNoIGlzIG1vdGl2YXRlZCBieSBHVW5pcXVlUHRyLgorICAgICAgICBUaGlzIHBhdGNoIHJl
cGxhY2VzIHVzZXMgb2YgT3duUHRyIGFuZCBQYXNzT3duUHRyIGZvciBFZmwgb2JqZWN0cyB3aXRo
IEVmbFVuaXF1ZVB0ci4KKworICAgICAgICAqIHd0Zi9Pd25QdHJDb21tb24uaDoKKyAgICAgICAg
KiB3dGYvUGxhdGZvcm1FZmwuY21ha2U6CisgICAgICAgICogd3RmL1J1bkxvb3AuaDoKKyAgICAg
ICAgKiB3dGYvZWZsL01haW5UaHJlYWRFZmwuY3BwOgorICAgICAgICAoV1RGOjpwaXBlT2JqZWN0
KToKKyAgICAgICAgKFdURjo6aW5pdGlhbGl6ZU1haW5UaHJlYWRQbGF0Zm9ybSk6CisgICAgICAg
ICogd3RmL2VmbC9Pd25QdHJFZmwuY3BwOiBSZW1vdmVkLgorICAgICAgICAqIHd0Zi9lZmwvUnVu
TG9vcEVmbC5jcHA6CisgICAgICAgIChXVEY6OlJ1bkxvb3A6OlJ1bkxvb3ApOgorICAgICAgICAq
IHd0Zi9lZmwvVW5pcXVlUHRyRWZsLmg6IEFkZGVkLgorICAgICAgICAoV1RGOjpFZmxQdHJEZWxl
dGVyOjpvcGVyYXRvcigpKToKKwogMjAxNC0wMy0xOCAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBs
ZS5jb20+CiAKICAgICAgICAgUmVkdWNlIHVzZSBvZiBkZXByZWNhdGVkQ2hhcmFjdGVycyBpbiBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKaW5kZXggNzU3ZGM4NjY4ZDZiMzVhMzVlYWMxM2JjMDcxMDUwNDVmYWY0
ZWRiMi4uZGRjMzNmODE4MjE5YTQ4MmQ5ZDQ0ODhiYzg4YTUxMmFjOTZiZmFhNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDI3IEBACisyMDE0LTAzLTE5ICBIeW93b24gS2ltICA8aHcxMDA4LmtpbUBz
YW1zdW5nLmNvbT4KKworICAgICAgICBNb3ZlIHRvIHVzaW5nIHN0ZDo6dW5pcXVlX3B0ciBmb3Ig
RUZMIG9iamVjdHMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMjk4NTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBFZmxVbmlxdWVQdHIgaXMgYSB0ZW1wbGF0ZSBhbGlhcyBvZiBzdGQ6OnVuaXF1ZV9wdHIK
KyAgICAgICAgd2l0aCBhIGN1c3RvbSBkZWxldGVyIGZvciBlYWNoIEVmbCBPYmplY3RzLCB3aGlj
aCBpcyBtb3RpdmF0ZWQgYnkgR1VuaXF1ZVB0ci4KKyAgICAgICAgVGhpcyBwYXRjaCByZXBsYWNl
cyB1c2VzIG9mIE93blB0ciBhbmQgUGFzc093blB0ciBmb3IgRWZsIG9iamVjdHMgd2l0aCBFZmxV
bmlxdWVQdHIuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLiBObyBuZXcgZnVuY3Rpb25hbGl0eS4K
KworICAgICAgICAqIHBsYXRmb3JtL2VmbC9FZmxTY3JlZW5VdGlsaXRpZXMuaDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9lZmwvUmVuZGVyVGhlbWVFZmwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyVGhlbWVFZmw6OlRoZW1lUGFydENhY2hlRW50cnk6OmNyZWF0ZSk6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJUaGVtZUVmbDo6bG9hZFRoZW1lKToKKyAgICAgICAgKiBwbGF0Zm9ybS9lZmwv
UmVuZGVyVGhlbWVFZmwuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9JY29uLmg6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZWZsL0V2YXNHTENvbnRleHQuaDoKKyAgICAgICAg
KFdlYkNvcmU6OkV2YXNHTENvbnRleHQ6OmNyZWF0ZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvZWZsL0V2YXNHTFN1cmZhY2UuaDoKKyAgICAgICAgKFdlYkNvcmU6OkV2YXNHTFN1cmZh
Y2U6OmNyZWF0ZSk6CisKIDIwMTQtMDMtMTkgIENsYXVkaW8gU2FhdmVkcmEgIDxjc2FhdmVkcmFA
aWdhbGlhLmNvbT4KIAogICAgICAgICBbR1N0cmVhbWVyXSBDbGVhbiB0aW1lb3V0IHNvdXJjZSBp
ZHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJL
aXQvZWZsL0NoYW5nZUxvZwppbmRleCBhMWVhMjlhMjhlNmRjZmE5NjA5MGVmOTU0ODBhMzI2N2Q1
MjAzNDk4Li5lOTE5NjM0NDczNWI1MjAwYmQ0Yzg5ZDA0YjY2NzA1YjJlOTk0ODlmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9lZmwv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMjggQEAKKzIwMTQtMDMtMTkgIEh5b3dvbiBLaW0gIDxodzEw
MDgua2ltQHNhbXN1bmcuY29tPgorCisgICAgICAgIE1vdmUgdG8gdXNpbmcgc3RkOjp1bmlxdWVf
cHRyIGZvciBFRkwgb2JqZWN0cy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTEyOTg1MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEVmbFVuaXF1ZVB0ciBpcyBhIHRlbXBsYXRlIGFsaWFzIG9mIHN0ZDo6dW5p
cXVlX3B0cgorICAgICAgICB3aXRoIGEgY3VzdG9tIGRlbGV0ZXIgZm9yIGVhY2ggRWZsIE9iamVj
dHMsIHdoaWNoIGlzIG1vdGl2YXRlZCBieSBHVW5pcXVlUHRyLgorICAgICAgICBUaGlzIHBhdGNo
IHJlcGxhY2VzIHVzZXMgb2YgT3duUHRyIGFuZCBQYXNzT3duUHRyIGZvciBFZmwgb2JqZWN0cyB3
aXRoIEVmbFVuaXF1ZVB0ci4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0FjY2VsZXJhdGVk
Q29tcG9zaXRpbmdDb250ZXh0RWZsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFjY2VsZXJhdGVk
Q29tcG9zaXRpbmdDb250ZXh0Ojppbml0aWFsaXplKToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9y
dC9BY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dEVmbC5oOgorICAgICAgICAqIFdlYkNvcmVT
dXBwb3J0L0JhdHRlcnlDbGllbnRFZmwuaDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9EdW1w
UmVuZGVyVHJlZVN1cHBvcnRFZmwuaDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9FZGl0b3JD
bGllbnRFZmwuaDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFtZU5ldHdvcmtpbmdDb250
ZXh0RWZsLmg6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvTmF2aWdhdG9yQ29udGVudFV0aWxz
Q2xpZW50RWZsLmg6CisgICAgICAgICogZXdrL2V3a192aWV3LmNwcDoKKyAgICAgICAgKF9ld2tf
dmlld19lZGl0b3JfY29tbWFuZF9zdHJpbmdfZ2V0KToKKyAgICAgICAgKiB0ZXN0cy9Vbml0VGVz
dFV0aWxzL0VXS1Rlc3RWaWV3LmNwcDoKKyAgICAgICAgKEVXS1VuaXRUZXN0czo6RVdLVGVzdFZp
ZXc6OmluaXQpOgorICAgICAgICAqIHRlc3RzL1VuaXRUZXN0VXRpbHMvRVdLVGVzdFZpZXcuaDoK
KwogMjAxNC0wMy0xNCAgTWFjaWVqIFN0YWNob3dpYWsgIDxtanNAYXBwbGUuY29tPgogCiAgICAg
ICAgIFJlcGxhY2UgIkFwcGxlIENvbXB1dGVyLCBJbmMuIiB3aXRoICJBcHBsZSBJbmMuIiBpbiBj
b3B5cmlnaHQgaGVhZGVycwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDU0ODc2YTgwYjA2ZTE3YzZmMWEwYTQ0MjQ5
MjRiOGVkODBkMDNiNDguLjFhODBlMjU1ZWE1MzA1MTU3YTA5NTJiNTkzMTc5NGZjODQwMTljYmYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNiBAQAorMjAxNC0wMy0xOSAgSHlvd29uIEtpbSAgPGh3
MTAwOC5raW1Ac2Ftc3VuZy5jb20+CisKKyAgICAgICAgTW92ZSB0byB1c2luZyBzdGQ6OnVuaXF1
ZV9wdHIgZm9yIEVGTCBvYmplY3RzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTI5ODUzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgRWZsVW5pcXVlUHRyIGlzIGEgdGVtcGxhdGUgYWxpYXMgb2Ygc3RkOjp1
bmlxdWVfcHRyCisgICAgICAgIHdpdGggYSBjdXN0b20gZGVsZXRlciBmb3IgZWFjaCBFZmwgT2Jq
ZWN0cywgd2hpY2ggaXMgbW90aXZhdGVkIGJ5IEdVbmlxdWVQdHIuCisgICAgICAgIFRoaXMgcGF0
Y2ggcmVwbGFjZXMgdXNlcyBvZiBPd25QdHIgYW5kIFBhc3NPd25QdHIgZm9yIEVmbCBvYmplY3Rz
IHdpdGggRWZsVW5pcXVlUHRyLgorCisgICAgICAgICogUGxhdGZvcm0vTW9kdWxlLmg6CisgICAg
ICAgICogUGxhdGZvcm0vZWZsL01vZHVsZUVmbC5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok1vZHVs
ZTo6bG9hZCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvRXdrVmlldy5jcHA6CisgICAg
ICAgIChFd2tWaWV3OjpFd2tWaWV3KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9Fd2tW
aWV3Lmg6CisgICAgICAgICogVUlQcm9jZXNzL2VmbC9JbnB1dE1ldGhvZENvbnRleHRFZmwuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpJbnB1dE1ldGhvZENvbnRleHRFZmw6OklucHV0TWV0aG9kQ29u
dGV4dEVmbCk6CisgICAgICAgIChXZWJLaXQ6OklucHV0TWV0aG9kQ29udGV4dEVmbDo6Y3JlYXRl
SU1GQ29udGV4dCk6CisgICAgICAgICogVUlQcm9jZXNzL2VmbC9JbnB1dE1ldGhvZENvbnRleHRF
ZmwuaDoKKyAgICAgICAgKFdlYktpdDo6SW5wdXRNZXRob2RDb250ZXh0RWZsOjpjcmVhdGUpOgor
CiAyMDE0LTAzLTE4ICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgogCiAg
ICAgICAgIFtpT1NdW1dlYktpdDJdIFByb3ZpZGUgZ2VuZXJpYyBzb2Z0d2FyZS1zbmFwc2hvdHRp
bmcgQVBJCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9Pd25QdHJDb21tb24uaCBiL1NvdXJj
ZS9XVEYvd3RmL093blB0ckNvbW1vbi5oCmluZGV4IGExOTYyMWUxM2E5NjBhMzNjYWVmMGNhNjUy
M2M3YzEyNjVkNGQ0NWUuLmYyYjA4NzVlYjU5YjA4N2RhYzdkM2UzMjgxMGIxYjhmYzAwMTc4OWQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL093blB0ckNvbW1vbi5oCisrKyBiL1NvdXJjZS9X
VEYvd3RmL093blB0ckNvbW1vbi5oCkBAIC0yOCwyMCArMjgsNiBAQAogI2lmbmRlZiBXVEZfT3du
UHRyQ29tbW9uX2gKICNkZWZpbmUgV1RGX093blB0ckNvbW1vbl9oCiAKLSNpZiBQTEFURk9STShF
RkwpCi10eXBlZGVmIHN0cnVjdCBfRWNvcmVfRXZhcyBFY29yZV9FdmFzOwotdHlwZWRlZiBzdHJ1
Y3QgX0Vjb3JlX0lNRl9Db250ZXh0IEVjb3JlX0lNRl9Db250ZXh0OwotdHlwZWRlZiBzdHJ1Y3Qg
X0Vjb3JlX1BpcGUgRWNvcmVfUGlwZTsKLXR5cGVkZWYgc3RydWN0IF9FaW5hX0hhc2ggRWluYV9I
YXNoOwotdHlwZWRlZiBzdHJ1Y3QgX0VpbmFfTW9kdWxlIEVpbmFfTW9kdWxlOwotI2lmIFVTRShF
TykKLXR5cGVkZWYgc3RydWN0IF9Fb19PcGFxdWUgRXZhc19PYmplY3Q7Ci0jZWxzZQotdHlwZWRl
ZiBzdHJ1Y3QgX0V2YXNfT2JqZWN0IEV2YXNfT2JqZWN0OwotI2VuZGlmCi10eXBlZGVmIHN0cnVj
dCBfRXZhc19HTCBFdmFzX0dMOwotI2VuZGlmCi0KIG5hbWVzcGFjZSBXVEYgewogCiAgICAgdGVt
cGxhdGUgPHR5cGVuYW1lIFQ+IGlubGluZSB2b2lkIGRlbGV0ZU93bmVkUHRyKFQqIHB0cikKQEAg
LTUxLDE2ICszNyw2IEBAIG5hbWVzcGFjZSBXVEYgewogICAgICAgICAgICAgZGVsZXRlIHB0cjsK
ICAgICB9CiAKLSNpZiBQTEFURk9STShFRkwpCi0gICAgV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQg
ZGVsZXRlT3duZWRQdHIoRWNvcmVfRXZhcyopOwotICAgIFdURl9FWFBPUlRfUFJJVkFURSB2b2lk
IGRlbGV0ZU93bmVkUHRyKEVjb3JlX0lNRl9Db250ZXh0Kik7Ci0gICAgV1RGX0VYUE9SVF9QUklW
QVRFIHZvaWQgZGVsZXRlT3duZWRQdHIoRWNvcmVfUGlwZSopOwotICAgIFdURl9FWFBPUlRfUFJJ
VkFURSB2b2lkIGRlbGV0ZU93bmVkUHRyKEVpbmFfSGFzaCopOwotICAgIFdURl9FWFBPUlRfUFJJ
VkFURSB2b2lkIGRlbGV0ZU93bmVkUHRyKEVpbmFfTW9kdWxlKik7Ci0gICAgV1RGX0VYUE9SVF9Q
UklWQVRFIHZvaWQgZGVsZXRlT3duZWRQdHIoRXZhc19PYmplY3QqKTsKLSAgICBXVEZfRVhQT1JU
X1BSSVZBVEUgdm9pZCBkZWxldGVPd25lZFB0cihFdmFzX0dMKik7Ci0jZW5kaWYKLQogfSAvLyBu
YW1lc3BhY2UgV1RGCiAKICNlbmRpZiAvLyBXVEZfT3duUHRyQ29tbW9uX2gKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtRWZsLmNtYWtlIGIvU291cmNlL1dURi93dGYvUGxhdGZv
cm1FZmwuY21ha2UKaW5kZXggYjRlMjEwYWMzZWRmM2RlNWZjZWI3NWI5ODMzMzJhYWJiZWE0ZGQx
Yy4uOGRmN2M3YWU3ZTZiNTIyMDE1ZDkyM2NiYzMwMWE4YmMzYTg5ZDY4ZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dURi93dGYvUGxhdGZvcm1FZmwuY21ha2UKKysrIGIvU291cmNlL1dURi93dGYvUGxh
dGZvcm1FZmwuY21ha2UKQEAgLTEsNiArMSw1IEBACiBsaXN0KEFQUEVORCBXVEZfU09VUkNFUwog
ICAgIGVmbC9NYWluVGhyZWFkRWZsLmNwcAotICAgIGVmbC9Pd25QdHJFZmwuY3BwCiAgICAgZWZs
L1JlZlB0ckVmbC5jcHAKICAgICBlZmwvUnVuTG9vcEVmbC5jcHAKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dURi93dGYvUnVuTG9vcC5oIGIvU291cmNlL1dURi93dGYvUnVuTG9vcC5oCmluZGV4IDAy
YTcwY2E1MjI4YjcwZmZjMzYyZjFmOTE1NzNkN2JjZjk4YmUyZmMuLjc5OTBjZWJmZDkxOTAzZWE2
NWI1YTgxNzFjYTQzZWI0MjQ0MGExYjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1J1bkxv
b3AuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9SdW5Mb29wLmgKQEAgLTQyLDYgKzQyLDcgQEAKIAog
I2lmIFBMQVRGT1JNKEVGTCkKICNpbmNsdWRlIDxFY29yZS5oPgorI2luY2x1ZGUgPHd0Zi9lZmwv
VW5pcXVlUHRyRWZsLmg+CiAjZW5kaWYKIAogbmFtZXNwYWNlIFdURiB7CkBAIC0xNTEsNyArMTUy
LDcgQEAgcHJpdmF0ZToKICAgICBpbnQgbV9uZXN0aW5nTGV2ZWw7CiAjZWxpZiBQTEFURk9STShF
RkwpCiAgICAgTXV0ZXggbV9waXBlTG9jazsKLSAgICBPd25QdHI8RWNvcmVfUGlwZT4gbV9waXBl
OworICAgIEVmbFVuaXF1ZVB0cjxFY29yZV9QaXBlPiBtX3BpcGU7CiAKICAgICBNdXRleCBtX3dh
a2VVcEV2ZW50UmVxdWVzdGVkTG9jazsKICAgICBib29sIG1fd2FrZVVwRXZlbnRSZXF1ZXN0ZWQ7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9lZmwvTWFpblRocmVhZEVmbC5jcHAgYi9Tb3Vy
Y2UvV1RGL3d0Zi9lZmwvTWFpblRocmVhZEVmbC5jcHAKaW5kZXggYTI1YjM0NWI2Y2YyOTQxMmUw
ZTdmNmYxMjU0YzEyZjllMTNhZGM0OC4uYmY5ZGViNDdiNjk1ZTZjYzEyMDkwZThjYTg4NTdjMjgz
ZjE1NjhhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvZWZsL01haW5UaHJlYWRFZmwuY3Bw
CisrKyBiL1NvdXJjZS9XVEYvd3RmL2VmbC9NYWluVGhyZWFkRWZsLmNwcApAQCAtMzUsMTUgKzM1
LDE0IEBACiAjaW5jbHVkZSAiTWFpblRocmVhZC5oIgogCiAjaW5jbHVkZSA8RWNvcmUuaD4KLSNp
bmNsdWRlIDx3dGYvT3duUHRyLmg+Ci0jaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KICNpbmNs
dWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CisjaW5jbHVkZSA8d3RmL2VmbC9VbmlxdWVQdHJFZmwu
aD4KIAogbmFtZXNwYWNlIFdURiB7CiAKLXN0YXRpYyBPd25QdHI8RWNvcmVfUGlwZT4mIHBpcGVP
YmplY3QoKQorc3RhdGljIEVmbFVuaXF1ZVB0cjxFY29yZV9QaXBlPiYgcGlwZU9iamVjdCgpCiB7
Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKE93blB0cjxFY29yZV9QaXBlPiwg
cGlwZU9iamVjdCwgKCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChFZmxV
bmlxdWVQdHI8RWNvcmVfUGlwZT4sIHBpcGVPYmplY3QsICgpKTsKICAgICByZXR1cm4gcGlwZU9i
amVjdDsKIH0KIApAQCAtNTQsNyArNTMsNyBAQCBzdGF0aWMgdm9pZCBtb25pdG9yRGlzcGF0Y2hG
dW5jdGlvbnModm9pZCosIHZvaWQqLCB1bnNpZ25lZCBpbnQpCiAKIHZvaWQgaW5pdGlhbGl6ZU1h
aW5UaHJlYWRQbGF0Zm9ybSgpCiB7Ci0gICAgcGlwZU9iamVjdCgpID0gYWRvcHRQdHIoZWNvcmVf
cGlwZV9hZGQobW9uaXRvckRpc3BhdGNoRnVuY3Rpb25zLCAwKSk7CisgICAgcGlwZU9iamVjdCgp
ID0gRWZsVW5pcXVlUHRyPEVjb3JlX1BpcGU+KGVjb3JlX3BpcGVfYWRkKG1vbml0b3JEaXNwYXRj
aEZ1bmN0aW9ucywgMCkpOwogfQogCiB2b2lkIHNjaGVkdWxlRGlzcGF0Y2hGdW5jdGlvbnNPbk1h
aW5UaHJlYWQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvZWZsL093blB0ckVmbC5jcHAg
Yi9Tb3VyY2UvV1RGL3d0Zi9lZmwvT3duUHRyRWZsLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggY2YxMGU4YmRlMjMzNjFjN2NlZDUwNTBmMmFlNDllNzFiMDViZjExYy4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9l
ZmwvT3duUHRyRWZsLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDc1ICswLDAgQEAKLS8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMTEgUHJvRlVTSU9OIGVtYmVkZGVkIHN5c3RlbXMKLSAqIENvcHlyaWdo
dCAoQykgMjAxMSBTYW1zdW5nIEVsZWN0cm9uaWNzCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0g
KiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJPd25QdHIu
aCIKLQotI2luY2x1ZGUgPEVjb3JlLmg+Ci0jaW5jbHVkZSA8RWNvcmVfRXZhcy5oPgotI2luY2x1
ZGUgPEVjb3JlX0lNRi5oPgotI2luY2x1ZGUgPEVpbmEuaD4KLSNpbmNsdWRlIDxFdmFzLmg+Ci0j
aW5jbHVkZSA8RXZhc19HTC5oPgotCi1uYW1lc3BhY2UgV1RGIHsKLQotdm9pZCBkZWxldGVPd25l
ZFB0cihFY29yZV9FdmFzKiBwdHIpCi17Ci0gICAgaWYgKHB0cikKLSAgICAgICAgZWNvcmVfZXZh
c19mcmVlKHB0cik7Ci19Ci0KLXZvaWQgZGVsZXRlT3duZWRQdHIoRWNvcmVfUGlwZSogcHRyKQot
ewotICAgIGlmIChwdHIpCi0gICAgICAgIGVjb3JlX3BpcGVfZGVsKHB0cik7Ci19Ci0KLXZvaWQg
ZGVsZXRlT3duZWRQdHIoRWluYV9IYXNoKiBwdHIpCi17Ci0gICAgaWYgKHB0cikKLSAgICAgICAg
ZWluYV9oYXNoX2ZyZWUocHRyKTsKLX0KLQotdm9pZCBkZWxldGVPd25lZFB0cihFaW5hX01vZHVs
ZSogcHRyKQotewotICAgIGlmIChwdHIpCi0gICAgICAgIGVpbmFfbW9kdWxlX2ZyZWUocHRyKTsg
Ly8gSWYgbW9kdWxlIHdhc24ndCB1bmxvYWRlZCwgZWluYV9tb2R1bGVfZnJlZSgpIGNhbGxzIGVp
bmFfbW9kdWxlX3VubG9hZCgpLgotfQotCi12b2lkIGRlbGV0ZU93bmVkUHRyKEVjb3JlX0lNRl9D
b250ZXh0KiBwdHIpCi17Ci0gICAgaWYgKHB0cikKLSAgICAgICAgZWNvcmVfaW1mX2NvbnRleHRf
ZGVsKHB0cik7Ci19Ci0KLXZvaWQgZGVsZXRlT3duZWRQdHIoRXZhc19HTCogcHRyKQotewotICAg
IGlmIChwdHIpCi0gICAgICAgIGV2YXNfZ2xfZnJlZShwdHIpOwotfQotCi19CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV1RGL3d0Zi9lZmwvUnVuTG9vcEVmbC5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9lZmwv
UnVuTG9vcEVmbC5jcHAKaW5kZXggMDUwZDljZjA0YmZhNzVhZjUyMjgyYThmZWMyY2ZjZDMwZWRm
ZTcxMC4uZTdhMDBlZjY2MjQ0ZDdjOTMzZGMzODQwZjc5MjFhNTU2ZTVkODA3MiAxMDA2NDQKLS0t
IGEvU291cmNlL1dURi93dGYvZWZsL1J1bkxvb3BFZmwuY3BwCisrKyBiL1NvdXJjZS9XVEYvd3Rm
L2VmbC9SdW5Mb29wRWZsLmNwcApAQCAtMzksNyArMzksNyBAQCBuYW1lc3BhY2UgV1RGIHsKIFJ1
bkxvb3A6OlJ1bkxvb3AoKQogICAgIDogbV93YWtlVXBFdmVudFJlcXVlc3RlZChmYWxzZSkKIHsK
LSAgICBtX3BpcGUgPSBhZG9wdFB0cihlY29yZV9waXBlX2FkZCh3YWtlVXBFdmVudCwgdGhpcykp
OworICAgIG1fcGlwZSA9IEVmbFVuaXF1ZVB0cjxFY29yZV9QaXBlPihlY29yZV9waXBlX2FkZCh3
YWtlVXBFdmVudCwgdGhpcykpOwogfQogCiBSdW5Mb29wOjp+UnVuTG9vcCgpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV1RGL3d0Zi9lZmwvVW5pcXVlUHRyRWZsLmggYi9Tb3VyY2UvV1RGL3d0Zi9lZmwv
VW5pcXVlUHRyRWZsLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWNhNzk2ODcxYzkwZWU5OTRmODFkYWYxNjVjYTY4
YmNjNTc1MTI2NQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvd3RmL2VmbC9VbmlxdWVQ
dHJFZmwuaApAQCAtMCwwICsxLDY5IEBACisvKgorICAgIENvcHlyaWdodCAoQykgMjAxNCBTYW1z
dW5nIEVsZWN0cm9uaWNzCisKKyAgICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91
IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJt
cyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAgICBMaWNlbnNlIGFzIHB1Ymxp
c2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAgICB2ZXJzaW9u
IDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24u
CisKKyAgICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3
aWxsIGJlIHVzZWZ1bCwKKyAgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZl
biB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgICAgTGlicmFyeSBHZW5l
cmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisKKyAgICBZb3Ugc2hvdWxkIGhh
dmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNl
bnNlCisgICAgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJ
Qi4gIElmIG5vdCwgd3JpdGUgdG8KKyAgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJ
bmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICAgIEJvc3RvbiwgTUEgMDIx
MTAtMTMwMSwgVVNBLgorKi8KKworI2lmbmRlZiBVbmlxdWVQdHJFZmxfaAorI2RlZmluZSBVbmlx
dWVQdHJFZmxfaAorCisjaWYgUExBVEZPUk0oRUZMKQorCisjaW5jbHVkZSA8RWNvcmUuaD4KKyNp
bmNsdWRlIDxFY29yZV9FdmFzLmg+CisjaW5jbHVkZSA8RWNvcmVfSU1GLmg+CisjaW5jbHVkZSA8
RWluYS5oPgorI2luY2x1ZGUgPEV2YXMuaD4KKyNpbmNsdWRlIDxFdmFzX0dMLmg+CisKK25hbWVz
cGFjZSBXVEYgeworCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdHJ1Y3QgRWZsUHRyRGVsZXRlciB7
CisgICAgdm9pZCBvcGVyYXRvcigpKFQqIHB0cikgY29uc3QgPSBkZWxldGU7Cit9OworCit0ZW1w
bGF0ZTx0eXBlbmFtZSBUPgordXNpbmcgRWZsVW5pcXVlUHRyID0gc3RkOjp1bmlxdWVfcHRyPFQs
IEVmbFB0ckRlbGV0ZXI8VD4+OworCisjZGVmaW5lIEZPUl9FQUNIX0VGTF9ERUxFVEVSKG1hY3Jv
KSBcCisgICAgbWFjcm8oRWNvcmVfRXZhcywgZWNvcmVfZXZhc19mcmVlKSBcCisgICAgbWFjcm8o
RWNvcmVfSU1GX0NvbnRleHQsIGVjb3JlX2ltZl9jb250ZXh0X2RlbCkgXAorICAgIG1hY3JvKEVj
b3JlX1BpcGUsIGVjb3JlX3BpcGVfZGVsKSBcCisgICAgbWFjcm8oRWluYV9IYXNoLCBlaW5hX2hh
c2hfZnJlZSkgXAorICAgIG1hY3JvKEVpbmFfTW9kdWxlLCBlaW5hX21vZHVsZV9mcmVlKSBcCisg
ICAgbWFjcm8oRXZhc19PYmplY3QsIGV2YXNfb2JqZWN0X2RlbCkgXAorICAgIG1hY3JvKEV2YXNf
R0wsIGV2YXNfZ2xfZnJlZSkKKworI2RlZmluZSBXVEZfREVGSU5FX0VGTFBUUl9ERUxFVEVSKHR5
cGVOYW1lLCBkZWxldGVyRnVuYykgXAorICAgIHRlbXBsYXRlPD4gc3RydWN0IEVmbFB0ckRlbGV0
ZXI8dHlwZU5hbWU+IFwKKyAgICB7IFwKKyAgICAgICAgdm9pZCBvcGVyYXRvcigpICh0eXBlTmFt
ZSogcHRyKSBjb25zdCBcCisgICAgICAgIHsgXAorICAgICAgICAgICAgaWYgKHB0cikgXAorICAg
ICAgICAgICAgICAgIGRlbGV0ZXJGdW5jKHB0cik7IFwKKyAgICAgICAgfSBcCisgICAgfTsKKwor
Rk9SX0VBQ0hfRUZMX0RFTEVURVIoV1RGX0RFRklORV9FRkxQVFJfREVMRVRFUikKKyN1bmRlZiBG
T1JfRUFDSF9FRkxfREVMRVRFUgorCit9IC8vIG5hbWVzcGFjZSBXVEYKKwordXNpbmcgV1RGOjpF
ZmxVbmlxdWVQdHI7CisKKyNlbmRpZiAvLyBQTEFURk9STShFRkwpCisKKyNlbmRpZiAvLyBVbmlx
dWVQdHJFZmxfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL0VmbFNj
cmVlblV0aWxpdGllcy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL0VmbFNjcmVlblV0
aWxpdGllcy5oCmluZGV4IDdkNzk3NWEyNGEwZjFmNDMyYTNhYjMxOGViYzI5M2MxMzZjOTAxNWYu
LmQ0ODBhNTljN2VlYTc2MmU2MWM2MDU4MjE3ZWQ3YTVmZDY1YTU4OTMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9FZmxTY3JlZW5VdGlsaXRpZXMuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvRWZsU2NyZWVuVXRpbGl0aWVzLmgKQEAgLTI1LDYgKzI1
LDcgQEAKIHR5cGVkZWYgc3RydWN0IF9Fb19PcGFxdWUgRXZhczsKICNlbHNlCiB0eXBlZGVmIHN0
cnVjdCBfRXZhcyBFdmFzOwordHlwZWRlZiBzdHJ1Y3QgX0Vjb3JlX0V2YXMgRWNvcmVfRXZhczsK
ICNlbmRpZgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9lZmwvUmVuZGVyVGhlbWVFZmwuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZWZsL1JlbmRlclRoZW1lRWZsLmNwcAppbmRleCBjZGZjZTA3OGYyZWNjYzhkODZlNmU4YzBi
NWM2NWI0MmI2YmRkNjRkLi5mODY0Nzg1OTE3NTIzNzRjYmRkYzA1NGYzNjhjMDE0ODI2MzdkM2Vi
IDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvUmVuZGVyVGhlbWVFZmwu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9SZW5kZXJUaGVtZUVmbC5jcHAK
QEAgLTE5MSw3ICsxOTEsNyBAQCBQYXNzT3duUHRyPFJlbmRlclRoZW1lRWZsOjpUaGVtZVBhcnRD
YWNoZUVudHJ5PiBSZW5kZXJUaGVtZUVmbDo6VGhlbWVQYXJ0Q2FjaGVFbgogCiAgICAgT3duUHRy
PFRoZW1lUGFydENhY2hlRW50cnk+IGVudHJ5ID0gYWRvcHRQdHIobmV3IFRoZW1lUGFydENhY2hl
RW50cnkpOwogCi0gICAgZW50cnktPm1fY2FudmFzID0gYWRvcHRQdHIoZWNvcmVfZXZhc19idWZm
ZXJfbmV3KHNpemUud2lkdGgoKSwgc2l6ZS5oZWlnaHQoKSkpOworICAgIGVudHJ5LT5tX2NhbnZh
cyA9IEVmbFVuaXF1ZVB0cjxFY29yZV9FdmFzPihlY29yZV9ldmFzX2J1ZmZlcl9uZXcoc2l6ZS53
aWR0aCgpLCBzaXplLmhlaWdodCgpKSk7CiAgICAgaWYgKCFlbnRyeS0+Y2FudmFzKCkpIHsKICAg
ICAgICAgRUlOQV9MT0dfRVJSKCJlY29yZV9ldmFzX2J1ZmZlcl9uZXcoJWQsICVkKSBmYWlsZWQu
Iiwgc2l6ZS53aWR0aCgpLCBzaXplLmhlaWdodCgpKTsKICAgICAgICAgcmV0dXJuIG51bGxwdHI7
CkBAIC00OTYsNyArNDk2LDcgQEAgYm9vbCBSZW5kZXJUaGVtZUVmbDo6bG9hZFRoZW1lKCkKICAg
ICBBU1NFUlQoIW1fdGhlbWVQYXRoLmlzRW1wdHkoKSk7CiAKICAgICBpZiAoIWNhbnZhcygpKSB7
Ci0gICAgICAgIG1fY2FudmFzID0gYWRvcHRQdHIoZWNvcmVfZXZhc19idWZmZXJfbmV3KDEsIDEp
KTsKKyAgICAgICAgbV9jYW52YXMgPSBFZmxVbmlxdWVQdHI8RWNvcmVfRXZhcz4oZWNvcmVfZXZh
c19idWZmZXJfbmV3KDEsIDEpKTsKICAgICAgICAgX0FTU0VSVF9PTl9SRUxFQVNFX1JFVFVSTl9W
QUwoY2FudmFzKCksIGZhbHNlLAogICAgICAgICAgICAgICAgICJDb3VsZCBub3QgY3JlYXRlIGNh
bnZhcyByZXF1aXJlZCBieSB0aGVtZSwgdGhpbmdzIHdpbGwgbm90IHdvcmsgcHJvcGVybHkuIik7
CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL1JlbmRlclRo
ZW1lRWZsLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvUmVuZGVyVGhlbWVFZmwuaApp
bmRleCA0NTRiNmFiYzYxMzc4NTc3OTQ3OThmOGFkY2VmNzE3YTc0ZTM3NDBiLi5lNmRhMDRlZDIx
NzM5ZDU1MGFiZmUxZmYyYzZmMWJlZTgxOTI0ZDAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9lZmwvUmVuZGVyVGhlbWVFZmwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9lZmwvUmVuZGVyVGhlbWVFZmwuaApAQCAtMzgsNiArMzgsNyBAQAogI2luY2x1ZGUgPEVp
bmEuaD4KICNpbmNsdWRlIDxjYWlyby5oPgogI2luY2x1ZGUgPHd0Zi9lZmwvUmVmUHRyRWZsLmg+
CisjaW5jbHVkZSA8d3RmL2VmbC9VbmlxdWVQdHJFZmwuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCkBAIC0yNTEsNyArMjUyLDcgQEAgcHJpdmF0ZToKIAogICAgIFN0cmluZyBtX3RoZW1lUGF0
aDsKICAgICAvLyBPcmRlciBzbyB0aGF0IHRoZSBjYW52YXMgZ2V0cyBkZXN0cm95ZWQgYXQgbGFz
dC4KLSAgICBPd25QdHI8RWNvcmVfRXZhcz4gbV9jYW52YXM7CisgICAgRWZsVW5pcXVlUHRyPEVj
b3JlX0V2YXM+IG1fY2FudmFzOwogICAgIFJlZlB0cjxFdmFzX09iamVjdD4gbV9lZGplOwogCiAg
ICAgYm9vbCBtX3N1cHBvcnRzU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yOwpAQCAtMjc4LDcgKzI3
OSw3IEBAIHByaXZhdGU6CiAKICAgICBwcml2YXRlOgogICAgICAgICAvLyBPcmRlciBzbyB0aGF0
IHRoZSBjYW52YXMgZ2V0cyBkZXN0cm95ZWQgYXQgbGFzdC4KLSAgICAgICAgT3duUHRyPEVjb3Jl
X0V2YXM+IG1fY2FudmFzOworICAgICAgICBFZmxVbmlxdWVQdHI8RWNvcmVfRXZhcz4gbV9jYW52
YXM7CiAgICAgICAgIFJlZlB0cjxFdmFzX09iamVjdD4gbV9lZGplOwogICAgICAgICBSZWZQdHI8
Y2Fpcm9fc3VyZmFjZV90PiBtX3N1cmZhY2U7CiAgICAgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ljb24uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0ljb24uaAppbmRleCA4Mjc5OGMzMDY5NTA4NzNhYjRlZGE3NWU1YTA3MjUxNzIw
ZmQ3MWNjLi42MDA4MTE4ZTFkMmJhMGQxYmY4Y2JjZWVjOGQ1MTFlYzcxYjBiMTQ4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JY29uLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSWNvbi5oCkBAIC0zNyw2ICszNyw4IEBAIE9CSkNf
Q0xBU1MgTlNJbWFnZTsKIHR5cGVkZWYgc3RydWN0IEhJQ09OX18qIEhJQ09OOwogI2VsaWYgUExB
VEZPUk0oR1RLKQogdHlwZWRlZiBzdHJ1Y3QgX0dka1BpeGJ1ZiBHZGtQaXhidWY7CisjZWxpZiBQ
TEFURk9STShFRkwpCit0eXBlZGVmIHN0cnVjdCBfRXZhc19PYmplY3QgRXZhc19PYmplY3Q7CiAj
ZW5kaWYKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZWZsL0V2YXNHTENvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2VmbC9FdmFzR0xDb250ZXh0LmgKaW5kZXggZTY4NmVjNTY1NGQzYzNm
NmZmNjc5NzhkNTUyYmU4N2ZmMDhkZWU1Ny4uNmU4NjljMGYxYTZkODY1ZDlkZTgwNzViNDNmM2Jj
YTdiOTVhYzgyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
ZWZsL0V2YXNHTENvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9lZmwvRXZhc0dMQ29udGV4dC5oCkBAIC0zMyw3ICszMyw3IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogY2xhc3MgRXZhc0dMQ29udGV4dCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NPd25Q
dHI8RXZhc0dMQ29udGV4dD4gY3JlYXRlKEV2YXNfR0wqIGV2YXNHTCkKKyAgICBzdGF0aWMgc3Rk
Ojp1bmlxdWVfcHRyPEV2YXNHTENvbnRleHQ+IGNyZWF0ZShFdmFzX0dMKiBldmFzR0wpCiAgICAg
ewogICAgICAgICBBU1NFUlQoZXZhc0dMKTsKICAgICAgICAgRXZhc19HTF9Db250ZXh0KiBjb250
ZXh0ID0gZXZhc19nbF9jb250ZXh0X2NyZWF0ZShldmFzR0wsIDApOwpAQCAtNDEsMTUgKzQxLDE1
IEBAIHB1YmxpYzoKICAgICAgICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAgICAgIC8vIE93
bmVyc2hpcCBvZiBjb250ZXh0IGlzIHBhc3NlZCB0byBFdmFzR0xDb250ZXh0LgotICAgICAgICBy
ZXR1cm4gYWRvcHRQdHIobmV3IEV2YXNHTENvbnRleHQoZXZhc0dMLCBjb250ZXh0KSk7CisgICAg
ICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPEV2YXNHTENvbnRleHQ+KGV2YXNHTCwgY29udGV4
dCk7CiAgICAgfQorCisgICAgRXZhc0dMQ29udGV4dChFdmFzX0dMKiwgRXZhc19HTF9Db250ZXh0
KiBwYXNzQ29udGV4dCk7CiAgICAgfkV2YXNHTENvbnRleHQoKTsKIAogICAgIEV2YXNfR0xfQ29u
dGV4dCogY29udGV4dCgpIHsgcmV0dXJuIG1fY29udGV4dDsgfQogCiBwcml2YXRlOgotICAgIEV2
YXNHTENvbnRleHQoRXZhc19HTCosIEV2YXNfR0xfQ29udGV4dCogcGFzc0NvbnRleHQpOwotCiAg
ICAgRXZhc19HTCogbV9ldmFzR0w7CiAgICAgRXZhc19HTF9Db250ZXh0KiBtX2NvbnRleHQ7CiB9
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZWZsL0V2YXNH
TFN1cmZhY2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2VmbC9FdmFzR0xT
dXJmYWNlLmgKaW5kZXggZTVkZmM5YTI1NGY3NzE5NjhjYTI5MDhkNjA2MTZlMzIwNGYwN2JhNS4u
MDRkMTg3OGZmMzI3ZTU3MDAyZGRjZGViNjU1YzZlMGNjMzkxNWJlYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZWZsL0V2YXNHTFN1cmZhY2UuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9lZmwvRXZhc0dMU3VyZmFjZS5oCkBAIC0z
NSw3ICszNSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgRXZhc0dMU3VyZmFjZSB7
CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NPd25QdHI8RXZhc0dMU3VyZmFjZT4gY3JlYXRlKEV2
YXNfR0wqIGV2YXNHTCwgRXZhc19HTF9Db25maWcqIGNmZywgY29uc3QgV2ViQ29yZTo6SW50U2l6
ZSYgc2l6ZSkKKyAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPEV2YXNHTFN1cmZhY2U+IGNyZWF0
ZShFdmFzX0dMKiBldmFzR0wsIEV2YXNfR0xfQ29uZmlnKiBjZmcsIGNvbnN0IFdlYkNvcmU6Oklu
dFNpemUmIHNpemUpCiAgICAgewogICAgICAgICBBU1NFUlQoZXZhc0dMKTsKICAgICAgICAgQVNT
RVJUKGNmZyk7CkBAIC01MCwxNSArNTAsMTUgQEAgcHVibGljOgogICAgICAgICAgICAgcmV0dXJu
IG51bGxwdHI7CiAKICAgICAgICAgLy8gT3duZXJzaGlwIG9mIHN1cmZhY2UgaXMgcGFzc2VkIHRv
IEV2YXNHTFN1cmZhY2UuCi0gICAgICAgIHJldHVybiBhZG9wdFB0cihuZXcgRXZhc0dMU3VyZmFj
ZShldmFzR0wsIHN1cmZhY2UpKTsKKyAgICAgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8RXZh
c0dMU3VyZmFjZT4oZXZhc0dMLCBzdXJmYWNlKTsKICAgICB9CisKKyAgICBFdmFzR0xTdXJmYWNl
KEV2YXNfR0wqLCBFdmFzX0dMX1N1cmZhY2UqIHBhc3NTdXJmYWNlKTsKICAgICB+RXZhc0dMU3Vy
ZmFjZSgpOwogCiAgICAgRXZhc19HTF9TdXJmYWNlKiBzdXJmYWNlKCkgeyByZXR1cm4gbV9zdXJm
YWNlOyB9CiAKIHByaXZhdGU6Ci0gICAgRXZhc0dMU3VyZmFjZShFdmFzX0dMKiwgRXZhc19HTF9T
dXJmYWNlKiBwYXNzU3VyZmFjZSk7Ci0KICAgICBFdmFzX0dMKiBtX2V2YXNHTDsKICAgICBFdmFz
X0dMX1N1cmZhY2UqIG1fc3VyZmFjZTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Vm
bC9XZWJDb3JlU3VwcG9ydC9BY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dEVmbC5jcHAgYi9T
b3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9BY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29u
dGV4dEVmbC5jcHAKaW5kZXggMWQwNWU2Zjc2ZDU1MjliMWY5ZjVkMGMyYzNkYjRlYTE3NzgwOGIy
MC4uZWZkNzI1YmY2NWEyNDBkZDdlODRhNmFmMWY0ZjQ4M2U0ZjRjYTU2NyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0Nv
bnRleHRFZmwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0FjY2Vs
ZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0RWZsLmNwcApAQCAtNDcsNyArNDcsNyBAQCBBY2NlbGVy
YXRlZENvbXBvc2l0aW5nQ29udGV4dDo6fkFjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0KCkK
IAogYm9vbCBBY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dDo6aW5pdGlhbGl6ZSgpCiB7Ci0g
ICAgbV9ldmFzR0wgPSBhZG9wdFB0cihldmFzX2dsX25ldyhldmFzX29iamVjdF9ldmFzX2dldCht
X3ZpZXcpKSk7CisgICAgbV9ldmFzR0wgPSBFZmxVbmlxdWVQdHI8RXZhc19HTD4oZXZhc19nbF9u
ZXcoZXZhc19vYmplY3RfZXZhc19nZXQobV92aWV3KSkpOwogICAgIGlmICghbV9ldmFzR0wpCiAg
ICAgICAgIHJldHVybiBmYWxzZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvV2Vi
Q29yZVN1cHBvcnQvQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHRFZmwuaCBiL1NvdXJjZS9X
ZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0RWZs
LmgKaW5kZXggOTNhNzI3YTA5YzQ4YjIwMGRmNjE1NjExNmIyZDVmZThlY2Y0OWQ3OC4uNDgzYzg5
ZjhiNjI3NDVhYTJlYzEwNTNmNWZkNThhNTA3MjJiYjQ5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHRFZmwu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9BY2NlbGVyYXRlZENvbXBv
c2l0aW5nQ29udGV4dEVmbC5oCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSAiVGltZXIuaCIK
ICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KICNpbmNsdWRlIDx3dGYvT3duUHRyLmg+Cisj
aW5jbHVkZSA8d3RmL2VmbC9VbmlxdWVQdHJFZmwuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
CkBAIC02Miw5ICs2Myw5IEBAIHByaXZhdGU6CiAgICAgc3RkOjp1bmlxdWVfcHRyPEdyYXBoaWNz
TGF5ZXI+IG1fcm9vdEdyYXBoaWNzTGF5ZXI7CiAgICAgVGltZXI8QWNjZWxlcmF0ZWRDb21wb3Np
dGluZ0NvbnRleHQ+IG1fc3luY1RpbWVyOwogCi0gICAgT3duUHRyPEV2YXNfR0w+IG1fZXZhc0dM
OwotICAgIE93blB0cjxFdmFzR0xDb250ZXh0PiBtX2V2YXNHTENvbnRleHQ7Ci0gICAgT3duUHRy
PEV2YXNHTFN1cmZhY2U+IG1fZXZhc0dMU3VyZmFjZTsKKyAgICBFZmxVbmlxdWVQdHI8RXZhc19H
TD4gbV9ldmFzR0w7CisgICAgc3RkOjp1bmlxdWVfcHRyPEV2YXNHTENvbnRleHQ+IG1fZXZhc0dM
Q29udGV4dDsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8RXZhc0dMU3VyZmFjZT4gbV9ldmFzR0xTdXJm
YWNlOwogCiAgICAgVGV4dHVyZU1hcHBlckZQU0NvdW50ZXIgbV9mcHNDb3VudGVyOwogfTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0JhdHRlcnlDbGllbnRF
ZmwuaCBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0JhdHRlcnlDbGllbnRFZmwu
aAppbmRleCBkMTFhY2M5Y2E2MjNmZTMwYTUzNDA2OTI2MDFhZjVlMDU2MTVhM2M2Li43ODU4YzAz
ZDkxZjBhNTA1YWMxMzljYWJiNmIxOGViYzkyMmZjYjEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9CYXR0ZXJ5Q2xpZW50RWZsLmgKKysrIGIvU291cmNlL1dl
YktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvQmF0dGVyeUNsaWVudEVmbC5oCkBAIC0yOSw2ICsyOSwx
MiBAQAogI2luY2x1ZGUgIkJhdHRlcnlTdGF0dXMuaCIKICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0
ci5oPgogCisjaWYgVVNFKEVPKQordHlwZWRlZiBzdHJ1Y3QgX0VvX09wYXF1ZSBFdmFzX09iamVj
dDsKKyNlbHNlCit0eXBlZGVmIHN0cnVjdCBfRXZhc19PYmplY3QgRXZhc19PYmplY3Q7CisjZW5k
aWYKKwogbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgQmF0dGVyeUNvbnRyb2xsZXI7CiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJl
ZVN1cHBvcnRFZmwuaCBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5k
ZXJUcmVlU3VwcG9ydEVmbC5oCmluZGV4IDNmZTVlMTMxMmIwNjczMGEyYjgwZjA3MWMyNGM1MTFi
Mjk2NzBmYmEuLjM4ZGE5OTNhZTU5NzA1NDgzYzZhNTg2N2UxMzcwYjQ2MzdkMTlhZmUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3Vw
cG9ydEVmbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5k
ZXJUcmVlU3VwcG9ydEVmbC5oCkBAIC0zNSw2ICszNSwxMiBAQAogI2luY2x1ZGUgPGF0ay9hdGsu
aD4KICNlbmRpZgogCisjaWYgVVNFKEVPKQordHlwZWRlZiBzdHJ1Y3QgX0VvX09wYXF1ZSBFdmFz
X09iamVjdDsKKyNlbHNlCit0eXBlZGVmIHN0cnVjdCBfRXZhc19PYmplY3QgRXZhc19PYmplY3Q7
CisjZW5kaWYKKwogdHlwZWRlZiBzdHJ1Y3QgX0V3a19IaXN0b3J5X0l0ZW0gRXdrX0hpc3Rvcnlf
SXRlbTsKIAogdHlwZWRlZiBWZWN0b3I8RXdrX0hpc3RvcnlfSXRlbSo+IEhpc3RvcnlJdGVtQ2hp
bGRyZW5WZWN0b3I7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9y
dC9FZGl0b3JDbGllbnRFZmwuaCBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0Vk
aXRvckNsaWVudEVmbC5oCmluZGV4IDI2NTM5MmQ4YWZhZWUwZjdmOTljYmNkNDQ5MmI5NGIyY2Nm
MDBhMjcuLjNhZjM3MWRlOTFlNDI2YzkwMGM5ZjQwNDI5YjQ3ZTRhZThjNDcyMmMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEVmbC5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEVmbC5oCkBA
IC00Miw2ICs0MiwxMiBAQAogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3Rm
L3RleHQvU3RyaW5nVmlldy5oPgogCisjaWYgVVNFKEVPKQordHlwZWRlZiBzdHJ1Y3QgX0VvX09w
YXF1ZSBFdmFzX09iamVjdDsKKyNlbHNlCit0eXBlZGVmIHN0cnVjdCBfRXZhc19PYmplY3QgRXZh
c19PYmplY3Q7CisjZW5kaWYKKwogc3RydWN0IEV3a19TaG91bGRfSW5zZXJ0X05vZGVfRXZlbnQg
ewogICAgIFdlYkNvcmU6Ok5vZGUqIG5vZGU7CiAgICAgV2ViQ29yZTo6UmFuZ2UqIHJhbmdlOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRnJhbWVOZXR3b3Jr
aW5nQ29udGV4dEVmbC5oIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRnJhbWVO
ZXR3b3JraW5nQ29udGV4dEVmbC5oCmluZGV4IDhhNzY0OWU3ZmRlNzdhNzlmYTZjZjA2MWZiODQw
YWFkNDkxZGEwOWQuLmUyMWI1M2QyMGFhOTY4OTkxZDAwMmVkZmZmZDdjOTQ3ZTNjNzFjMDggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTmV0d29ya2lu
Z0NvbnRleHRFZmwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9GcmFt
ZU5ldHdvcmtpbmdDb250ZXh0RWZsLmgKQEAgLTMxLDYgKzMxLDEyIEBACiAKICNpbmNsdWRlICJG
cmFtZU5ldHdvcmtpbmdDb250ZXh0LmgiCiAKKyNpZiBVU0UoRU8pCit0eXBlZGVmIHN0cnVjdCBf
RW9fT3BhcXVlIEV2YXNfT2JqZWN0OworI2Vsc2UKK3R5cGVkZWYgc3RydWN0IF9FdmFzX09iamVj
dCBFdmFzX09iamVjdDsKKyNlbmRpZgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEZy
YW1lTmV0d29ya2luZ0NvbnRleHRFZmwgOiBwdWJsaWMgV2ViQ29yZTo6RnJhbWVOZXR3b3JraW5n
Q29udGV4dCB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9O
YXZpZ2F0b3JDb250ZW50VXRpbHNDbGllbnRFZmwuaCBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNv
cmVTdXBwb3J0L05hdmlnYXRvckNvbnRlbnRVdGlsc0NsaWVudEVmbC5oCmluZGV4IDYzNWNmZDAx
OTMxYzBlNjNlYmRjNjZjMGE1NjY1NjZjYmU1YTAzNDQuLjEyZWM4NGRkNDZiZTM0YjVkODIwM2Iy
YjJhNDFlZGUxMGRiYjAzYmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVT
dXBwb3J0L05hdmlnYXRvckNvbnRlbnRVdGlsc0NsaWVudEVmbC5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvZWZsL1dlYkNvcmVTdXBwb3J0L05hdmlnYXRvckNvbnRlbnRVdGlsc0NsaWVudEVmbC5oCkBA
IC0zMyw2ICszMywxMiBAQAogCiAjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KIAorI2lmIFVT
RShFTykKK3R5cGVkZWYgc3RydWN0IF9Fb19PcGFxdWUgRXZhc19PYmplY3Q7CisjZWxzZQordHlw
ZWRlZiBzdHJ1Y3QgX0V2YXNfT2JqZWN0IEV2YXNfT2JqZWN0OworI2VuZGlmCisKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIGNsYXNzIE5hdmlnYXRvckNvbnRlbnRVdGlsc0NsaWVudEVmbCA6IHB1Ymxp
YyBXZWJDb3JlOjpOYXZpZ2F0b3JDb250ZW50VXRpbHNDbGllbnQgewogcHVibGljOgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQv
ZWZsL2V3ay9ld2tfdmlldy5jcHAKaW5kZXggOTk5NzBlY2M2ZDUwYzcyZTNlZDVkYWU4Y2U4ODA1
OTM0MDYzMmY5YS4uNTc2NTQ1ODU2YzFjYzdiMTI0ZDkzMmY2NDA1MTJmZTBjNGFlM2U2NyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuY3BwCkBAIC0xNDgyLDEwICsxNDgyLDEwIEBAIHN0YXRp
YyBFaW5hX0Jvb2wgX2V3a192aWV3X3NtYXJ0X2VuYWJsZV9yZW5kZXIoRXdrX1ZpZXdfU21hcnRf
RGF0YSogc21hcnREYXRhKQogCiBzdGF0aWMgY29uc3QgY2hhciogX2V3a192aWV3X2VkaXRvcl9j
b21tYW5kX3N0cmluZ19nZXQoRXdrX1ZpZXdfUHJpdmF0ZV9EYXRhKiwgRXdrX0VkaXRvcl9Db21t
YW5kIGV3a0NvbW1hbmQpCiB7Ci0gICAgc3RhdGljIE93blB0cjxFaW5hX0hhc2g+IGVkaXRvckNv
bW1hbmRIYXNoOworICAgIHN0YXRpYyBFZmxVbmlxdWVQdHI8RWluYV9IYXNoPiBlZGl0b3JDb21t
YW5kSGFzaDsKIAogICAgIGlmICghZWRpdG9yQ29tbWFuZEhhc2gpIHsKLSAgICAgICAgZWRpdG9y
Q29tbWFuZEhhc2ggPSBhZG9wdFB0cihlaW5hX2hhc2hfaW50MzJfbmV3KDApKTsKKyAgICAgICAg
ZWRpdG9yQ29tbWFuZEhhc2ggPSBFZmxVbmlxdWVQdHI8RWluYV9IYXNoPihlaW5hX2hhc2hfaW50
MzJfbmV3KDApKTsKICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGVkaXRvckNvbW1hbmRzW2ldLmV3
a0VkaXRvckNvbW1hbmQgIT0gRVdLX0VESVRPUl9DT01NQU5EX05PTkU7IGkrKykKICAgICAgICAg
ICAgIGVpbmFfaGFzaF9hZGQoZWRpdG9yQ29tbWFuZEhhc2guZ2V0KCksICZlZGl0b3JDb21tYW5k
c1tpXS5ld2tFZGl0b3JDb21tYW5kLCBlZGl0b3JDb21tYW5kc1tpXS5lZGl0b3JDb21tYW5kU3Ry
aW5nKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC90ZXN0cy9Vbml0VGVz
dFV0aWxzL0VXS1Rlc3RWaWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQvZWZsL3Rlc3RzL1VuaXRUZXN0
VXRpbHMvRVdLVGVzdFZpZXcuY3BwCmluZGV4IDJhOWM2ODgyNzE2MzZlOTdiM2JiYzRjZmMxZmIz
NmI3Zjc4ZDk4NDcuLjczYjNkMGJkNWYyNjQxOTdlOGQyNjkxYTY4NDI3ZWZiZTQ2NDRhNjQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL3Rlc3RzL1VuaXRUZXN0VXRpbHMvRVdLVGVzdFZp
ZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL3Rlc3RzL1VuaXRUZXN0VXRpbHMvRVdLVGVz
dFZpZXcuY3BwCkBAIC0yMCw3ICsyMCw2IEBACiAjaW5jbHVkZSAiRVdLVGVzdFZpZXcuaCIKIAog
I2luY2x1ZGUgPEVXZWJLaXQuaD4KLSNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgogI2luY2x1
ZGUgPHd0Zi9SZWZQdHIuaD4KIAogbmFtZXNwYWNlIEVXS1VuaXRUZXN0cyB7CkBAIC0zMyw3ICsz
Miw3IEBAIGJvb2wgRVdLVGVzdFZpZXc6OmluaXQoaW50IHdpZHRoLCBpbnQgaGVpZ2h0KQogewog
ICAgIG1fd2ViVmlldyA9IG51bGxwdHI7CiAKLSAgICBtX2Vjb3JlRXZhcyA9IGFkb3B0UHRyKGVj
b3JlX2V2YXNfbmV3KDAsIDAsIDAsIHdpZHRoLCBoZWlnaHQsIDApKTsKKyAgICBtX2Vjb3JlRXZh
cyA9IEVmbFVuaXF1ZVB0cjxFY29yZV9FdmFzPihlY29yZV9ldmFzX25ldygwLCAwLCAwLCB3aWR0
aCwgaGVpZ2h0LCAwKSk7CiAgICAgaWYgKCFtX2Vjb3JlRXZhcykKICAgICAgICAgcmV0dXJuIGZh
bHNlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC90ZXN0cy9Vbml0VGVzdFV0aWxz
L0VXS1Rlc3RWaWV3LmggYi9Tb3VyY2UvV2ViS2l0L2VmbC90ZXN0cy9Vbml0VGVzdFV0aWxzL0VX
S1Rlc3RWaWV3LmgKaW5kZXggZDZhMTJjNTg5ZTc0ZmJhYmU1MTBkZTgwNWRhZDBjNzg1NjRjZGEw
Mi4uNWU0ODY5YTZmYmY4Y2NmYmNlNDg0OWU0MzUyNmZkMzE5YTgxNzQwMiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9lZmwvdGVzdHMvVW5pdFRlc3RVdGlscy9FV0tUZXN0Vmlldy5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvZWZsL3Rlc3RzL1VuaXRUZXN0VXRpbHMvRVdLVGVzdFZpZXcuaApAQCAt
MjIsOCArMjIsOCBAQAogI2luY2x1ZGUgIkVXS1Rlc3RDb25maWcuaCIKICNpbmNsdWRlIDxFY29y
ZV9FdmFzLmg+CiAjaW5jbHVkZSA8RXZhcy5oPgotI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KICNp
bmNsdWRlIDx3dGYvZWZsL1JlZlB0ckVmbC5oPgorI2luY2x1ZGUgPHd0Zi9lZmwvVW5pcXVlUHRy
RWZsLmg+CiAKIG5hbWVzcGFjZSBFV0tVbml0VGVzdHMgewogCkBAIC0zOCw3ICszOCw3IEBAIHBy
aXZhdGU6CiAgICAgRVdLVGVzdFZpZXcoY29uc3QgRVdLVGVzdFZpZXcmKTsKICAgICBFV0tUZXN0
VmlldyYgb3BlcmF0b3I9KGNvbnN0IEVXS1Rlc3RWaWV3Jik7CiAKLSAgICBPd25QdHI8RWNvcmVf
RXZhcz4gbV9lY29yZUV2YXM7CisgICAgRWZsVW5pcXVlUHRyPEVjb3JlX0V2YXM+IG1fZWNvcmVF
dmFzOwogICAgIFJlZlB0cjxFdmFzX09iamVjdD4gbV93ZWJWaWV3OwogfTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vTW9kdWxlLmggYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0
Zm9ybS9Nb2R1bGUuaAppbmRleCBmZTYwZjk4NDZkMzRiN2Q4YTkxZDlkMjU5MjY0YTkxNTM5NTYz
NDAyLi5hZjY1MmE5ZDQ1NjE5YjE0MmI3YjZkMjE1YWQ5ZWRmMDEzMDEwMTE1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Nb2R1bGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9Q
bGF0Zm9ybS9Nb2R1bGUuaApAQCAtMzksNiArMzksNyBAQCB0eXBlZGVmIHN0cnVjdCBfR01vZHVs
ZSBHTW9kdWxlOwogCiAjaWYgUExBVEZPUk0oRUZMKQogI2luY2x1ZGUgPEVpbmEuaD4KKyNpbmNs
dWRlIDx3dGYvZWZsL1VuaXF1ZVB0ckVmbC5oPgogI2VuZGlmCiAKIG5hbWVzcGFjZSBXZWJLaXQg
ewpAQCAtNzYsNyArNzcsNyBAQCBwcml2YXRlOgogI2VsaWYgUExBVEZPUk0oR1RLKQogICAgIEdN
b2R1bGUqIG1faGFuZGxlOwogI2VsaWYgUExBVEZPUk0oRUZMKQotICAgIE93blB0cjxFaW5hX01v
ZHVsZT4gbV9tb2R1bGU7CisgICAgRWZsVW5pcXVlUHRyPEVpbmFfTW9kdWxlPiBtX21vZHVsZTsK
ICNlbmRpZgogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vZWZsL01v
ZHVsZUVmbC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9lZmwvTW9kdWxlRWZsLmNwcApp
bmRleCBmNDBiMTNiMTA2NmViYjg3YTljNWNkN2ExZmI0Y2EwMTAwODhiOTFhLi4xNDkxOGE1Y2Qw
NTgyN2I3NjNkZmEyOTdiYjM0ZGRkMjYyYzNkMzU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9QbGF0Zm9ybS9lZmwvTW9kdWxlRWZsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9y
bS9lZmwvTW9kdWxlRWZsLmNwcApAQCAtMjgsNyArMjgsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsK
IAogYm9vbCBNb2R1bGU6OmxvYWQoKQogewotICAgIG1fbW9kdWxlID0gYWRvcHRQdHIoZWluYV9t
b2R1bGVfbmV3KG1fcGF0aC51dGY4KCkuZGF0YSgpKSk7CisgICAgbV9tb2R1bGUgPSBFZmxVbmlx
dWVQdHI8RWluYV9Nb2R1bGU+KGVpbmFfbW9kdWxlX25ldyhtX3BhdGgudXRmOCgpLmRhdGEoKSkp
OwogICAgIGlmICghbV9tb2R1bGUgfHwgIWVpbmFfbW9kdWxlX2xvYWQobV9tb2R1bGUuZ2V0KCkp
KSB7CiAgICAgICAgIG1fbW9kdWxlID0gbnVsbHB0cjsKICAgICAgICAgcmV0dXJuIGZhbHNlOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvRXdrVmlldy5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9Fd2tWaWV3LmNwcAppbmRleCA0OTIy
MGI0ZTBjYmQ3MjllYTk1NTA4N2E3OGMzNzY1MDc1YTQxNmFhLi5kZGRmNDFlMDFiMDg0NzhjOGIx
ODg1NDNiYjRlMTE2ZTlhNzQwZmUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL2VmbC9Fd2tWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2VmbC9Fd2tWaWV3LmNwcApAQCAtMzAxLDcgKzMwMSw3IEBAIEV3a1ZpZXc6OkV3a1ZpZXcoV0tW
aWV3UmVmIHZpZXcsIEV2YXNfT2JqZWN0KiBldmFzT2JqZWN0KQogCiAgICAgLy8gRklYTUU6IFJl
bW92ZSB3aGVuIHBvc3NpYmxlLgogICAgIHN0YXRpY19jYXN0PFdlYlZpZXdFZmwqPih3ZWJWaWV3
KCkpLT5zZXRFd2tWaWV3KHRoaXMpOwotICAgIG1fZXZhc0dMID0gYWRvcHRQdHIoZXZhc19nbF9u
ZXcoZXZhc19vYmplY3RfZXZhc19nZXQobV9ldmFzT2JqZWN0KSkpOworICAgIG1fZXZhc0dMID0g
RWZsVW5pcXVlUHRyPEV2YXNfR0w+KGV2YXNfZ2xfbmV3KGV2YXNfb2JqZWN0X2V2YXNfZ2V0KG1f
ZXZhc09iamVjdCkpKTsKICAgICBpZiAobV9ldmFzR0wpCiAgICAgICAgIG1fZXZhc0dMQ29udGV4
dCA9IEV2YXNHTENvbnRleHQ6OmNyZWF0ZShtX2V2YXNHTC5nZXQoKSk7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0V3a1ZpZXcuaCBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0V3a1ZpZXcuaAppbmRleCAwOTFkY2Y2OWM1NmUyMDM0MmEz
Mzg1OWI5Y2EwOTAwOWRlNjZhY2RkLi45M2QxOTRiOTFhOGIyYjU5MGFiNjc4MTQzYzNhYjNkMTEz
MThjYjAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9Fd2tW
aWV3LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvRXdrVmlldy5oCkBA
IC0yNTEsOSArMjUxLDkgQEAgcHJpdmF0ZToKICAgICBFdmFzX09iamVjdCogbV9ldmFzT2JqZWN0
OwogICAgIFJlZlB0cjxFd2tDb250ZXh0PiBtX2NvbnRleHQ7CiAgICAgUmVmUHRyPEV3a1BhZ2VH
cm91cD4gbV9wYWdlR3JvdXA7Ci0gICAgT3duUHRyPEV2YXNfR0w+IG1fZXZhc0dMOwotICAgIE93
blB0cjxXZWJDb3JlOjpFdmFzR0xDb250ZXh0PiBtX2V2YXNHTENvbnRleHQ7Ci0gICAgT3duUHRy
PFdlYkNvcmU6OkV2YXNHTFN1cmZhY2U+IG1fZXZhc0dMU3VyZmFjZTsKKyAgICBFZmxVbmlxdWVQ
dHI8RXZhc19HTD4gbV9ldmFzR0w7CisgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OkV2YXNH
TENvbnRleHQ+IG1fZXZhc0dMQ29udGV4dDsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6
RXZhc0dMU3VyZmFjZT4gbV9ldmFzR0xTdXJmYWNlOwogICAgIGJvb2wgbV9wZW5kaW5nU3VyZmFj
ZVJlc2l6ZTsKIAogICAgIFdlYkNvcmU6OlRyYW5zZm9ybWF0aW9uTWF0cml4IG1fdXNlclZpZXdw
b3J0VHJhbnNmb3JtOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9J
bnB1dE1ldGhvZENvbnRleHRFZmwuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9J
bnB1dE1ldGhvZENvbnRleHRFZmwuY3BwCmluZGV4IDg3ZGYxNDIwOGZjYjVhNGVmOWMxYjc5MTVi
Y2FjNzU0MmMzYzVlYjEuLmMwOTgzMzg3Yjc0NDYxNmQ4NWVlYzBjNzNjN2NkMTNiOGYwOTlkZWUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvSW5wdXRNZXRob2RDb250
ZXh0RWZsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL0lucHV0TWV0aG9k
Q29udGV4dEVmbC5jcHAKQEAgLTMxLDkgKzMxLDkgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7
CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi1JbnB1dE1ldGhvZENvbnRleHRFZmw6OklucHV0TWV0
aG9kQ29udGV4dEVmbChFd2tWaWV3KiB2aWV3LCBQYXNzT3duUHRyPEVjb3JlX0lNRl9Db250ZXh0
PiBjb250ZXh0KQorSW5wdXRNZXRob2RDb250ZXh0RWZsOjpJbnB1dE1ldGhvZENvbnRleHRFZmwo
RXdrVmlldyogdmlldywgRWZsVW5pcXVlUHRyPEVjb3JlX0lNRl9Db250ZXh0PiBjb250ZXh0KQog
ICAgIDogbV92aWV3KHZpZXcpCi0gICAgLCBtX2NvbnRleHQoY29udGV4dCkKKyAgICAsIG1fY29u
dGV4dChzdGQ6Om1vdmUoY29udGV4dCkpCiAgICAgLCBtX2ZvY3VzZWQoZmFsc2UpCiB7CiAgICAg
QVNTRVJUKG1fY29udGV4dCk7CkBAIC03MywxMyArNzMsMTMgQEAgdm9pZCBJbnB1dE1ldGhvZENv
bnRleHRFZmw6Om9uSU1GUHJlZWRpdFNlcXVlbmNlQ2hhbmdlZCh2b2lkKiBkYXRhLCBFY29yZV9J
TUZfQ28KICAgICBpbnB1dE1ldGhvZENvbnRleHQtPm1fdmlldy0+cGFnZSgpLT5zZXRDb21wb3Np
dGlvbihwcmVlZGl0U3RyaW5nLCB1bmRlcmxpbmVzLCAwKTsKIH0KIAotUGFzc093blB0cjxFY29y
ZV9JTUZfQ29udGV4dD4gSW5wdXRNZXRob2RDb250ZXh0RWZsOjpjcmVhdGVJTUZDb250ZXh0KEV2
YXMqIGNhbnZhcykKK0VmbFVuaXF1ZVB0cjxFY29yZV9JTUZfQ29udGV4dD4gSW5wdXRNZXRob2RD
b250ZXh0RWZsOjpjcmVhdGVJTUZDb250ZXh0KEV2YXMqIGNhbnZhcykKIHsKICAgICBjb25zdCBj
aGFyKiBkZWZhdWx0Q29udGV4dElEID0gZWNvcmVfaW1mX2NvbnRleHRfZGVmYXVsdF9pZF9nZXQo
KTsKICAgICBpZiAoIWRlZmF1bHRDb250ZXh0SUQpCiAgICAgICAgIHJldHVybiBudWxscHRyOwog
Ci0gICAgT3duUHRyPEVjb3JlX0lNRl9Db250ZXh0PiBpbWZDb250ZXh0ID0gYWRvcHRQdHIoZWNv
cmVfaW1mX2NvbnRleHRfYWRkKGRlZmF1bHRDb250ZXh0SUQpKTsKKyAgICBFZmxVbmlxdWVQdHI8
RWNvcmVfSU1GX0NvbnRleHQ+IGltZkNvbnRleHQoZWNvcmVfaW1mX2NvbnRleHRfYWRkKGRlZmF1
bHRDb250ZXh0SUQpKTsKICAgICBpZiAoIWltZkNvbnRleHQpCiAgICAgICAgIHJldHVybiBudWxs
cHRyOwogCkBAIC04Nyw3ICs4Nyw3IEBAIFBhc3NPd25QdHI8RWNvcmVfSU1GX0NvbnRleHQ+IElu
cHV0TWV0aG9kQ29udGV4dEVmbDo6Y3JlYXRlSU1GQ29udGV4dChFdmFzKiBjYW52CiAgICAgZWNv
cmVfaW1mX2NvbnRleHRfY2xpZW50X3dpbmRvd19zZXQoaW1mQ29udGV4dC5nZXQoKSwgcmVpbnRl
cnByZXRfY2FzdDx2b2lkKj4oZWNvcmVfZXZhc193aW5kb3dfZ2V0KGVjb3JlRXZhcykpKTsKICAg
ICBlY29yZV9pbWZfY29udGV4dF9jbGllbnRfY2FudmFzX3NldChpbWZDb250ZXh0LmdldCgpLCBj
YW52YXMpOwogCi0gICAgcmV0dXJuIGltZkNvbnRleHQucmVsZWFzZSgpOworICAgIHJldHVybiBp
bWZDb250ZXh0OwogfQogCiB2b2lkIElucHV0TWV0aG9kQ29udGV4dEVmbDo6aGFuZGxlTW91c2VV
cEV2ZW50KGNvbnN0IEV2YXNfRXZlbnRfTW91c2VfVXAqKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL2VmbC9JbnB1dE1ldGhvZENvbnRleHRFZmwuaCBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9lZmwvSW5wdXRNZXRob2RDb250ZXh0RWZsLmgKaW5kZXggMTJkZTBhY2Fh
ZThiNjE0MjU5ZWViMTkxNDg4MWFiYzZmMTRiNGMyZi4uNzVmMGI2ZGNhMzVjOTExZTk5MTU2YmQ2
Yjc1N2Q1MGNiMGNmOTMyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2Vm
bC9JbnB1dE1ldGhvZENvbnRleHRFZmwuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
ZWZsL0lucHV0TWV0aG9kQ29udGV4dEVmbC5oCkBAIC0yNSw2ICsyNSw3IEBACiAjaW5jbHVkZSA8
RXZhcy5oPgogI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KICNpbmNsdWRlIDx3dGYvUGFzc093blB0
ci5oPgorI2luY2x1ZGUgPHd0Zi9lZmwvVW5pcXVlUHRyRWZsLmg+CiAKIGNsYXNzIEV3a1ZpZXc7
CiAKQEAgLTM2LDExICszNywxMSBAQCBjbGFzcyBJbnB1dE1ldGhvZENvbnRleHRFZmwgewogcHVi
bGljOgogICAgIHN0YXRpYyBQYXNzT3duUHRyPElucHV0TWV0aG9kQ29udGV4dEVmbD4gY3JlYXRl
KEV3a1ZpZXcqIHZpZXdJbXBsLCBFdmFzKiBjYW52YXMpCiAgICAgewotICAgICAgICBPd25QdHI8
RWNvcmVfSU1GX0NvbnRleHQ+IGNvbnRleHQgPSBjcmVhdGVJTUZDb250ZXh0KGNhbnZhcyk7Cisg
ICAgICAgIEVmbFVuaXF1ZVB0cjxFY29yZV9JTUZfQ29udGV4dD4gY29udGV4dCA9IGNyZWF0ZUlN
RkNvbnRleHQoY2FudmFzKTsKICAgICAgICAgaWYgKCFjb250ZXh0KQogICAgICAgICAgICAgcmV0
dXJuIG51bGxwdHI7CiAKLSAgICAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBJbnB1dE1ldGhvZENv
bnRleHRFZmwodmlld0ltcGwsIGNvbnRleHQucmVsZWFzZSgpKSk7CisgICAgICAgIHJldHVybiBh
ZG9wdFB0cihuZXcgSW5wdXRNZXRob2RDb250ZXh0RWZsKHZpZXdJbXBsLCBzdGQ6Om1vdmUoY29u
dGV4dCkpKTsKICAgICB9CiAgICAgfklucHV0TWV0aG9kQ29udGV4dEVmbCgpOwogCkBAIC00OSwx
NCArNTAsMTQgQEAgcHVibGljOgogICAgIHZvaWQgdXBkYXRlVGV4dElucHV0U3RhdGUoKTsKIAog
cHJpdmF0ZToKLSAgICBJbnB1dE1ldGhvZENvbnRleHRFZmwoRXdrVmlldyosIFBhc3NPd25QdHI8
RWNvcmVfSU1GX0NvbnRleHQ+KTsKKyAgICBJbnB1dE1ldGhvZENvbnRleHRFZmwoRXdrVmlldyos
IEVmbFVuaXF1ZVB0cjxFY29yZV9JTUZfQ29udGV4dD4pOwogCi0gICAgc3RhdGljIFBhc3NPd25Q
dHI8RWNvcmVfSU1GX0NvbnRleHQ+IGNyZWF0ZUlNRkNvbnRleHQoRXZhcyogY2FudmFzKTsKKyAg
ICBzdGF0aWMgRWZsVW5pcXVlUHRyPEVjb3JlX0lNRl9Db250ZXh0PiBjcmVhdGVJTUZDb250ZXh0
KEV2YXMqIGNhbnZhcyk7CiAgICAgc3RhdGljIHZvaWQgb25JTUZJbnB1dFNlcXVlbmNlQ29tcGxl
dGUodm9pZCogZGF0YSwgRWNvcmVfSU1GX0NvbnRleHQqLCB2b2lkKiBldmVudEluZm8pOwogICAg
IHN0YXRpYyB2b2lkIG9uSU1GUHJlZWRpdFNlcXVlbmNlQ2hhbmdlZCh2b2lkKiBkYXRhLCBFY29y
ZV9JTUZfQ29udGV4dCosIHZvaWQqIGV2ZW50SW5mbyk7CiAKICAgICBFd2tWaWV3KiBtX3ZpZXc7
Ci0gICAgT3duUHRyPEVjb3JlX0lNRl9Db250ZXh0PiBtX2NvbnRleHQ7CisgICAgRWZsVW5pcXVl
UHRyPEVjb3JlX0lNRl9Db250ZXh0PiBtX2NvbnRleHQ7CiAgICAgYm9vbCBtX2ZvY3VzZWQ7CiB9
OwogCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXgg
YzkwZmEzMjIxMzcyZmU3MGJlODJiODBkY2Q4NjQ2NDRhZGRiYWJhNi4uNTM4MTA1M2VjZDg3ZTcw
NmYyODY1ODJjYTdhN2M0N2VjYTY5Yzc3NyAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisr
KyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDE0LTAzLTE5ICBIeW93b24g
S2ltICA8aHcxMDA4LmtpbUBzYW1zdW5nLmNvbT4KKworICAgICAgICBNb3ZlIHRvIHVzaW5nIHN0
ZDo6dW5pcXVlX3B0ciBmb3IgRUZMIG9iamVjdHMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjk4NTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBFZmxVbmlxdWVQdHIgaXMgYSB0ZW1wbGF0ZSBhbGlhcyBv
ZiBzdGQ6OnVuaXF1ZV9wdHIKKyAgICAgICAgd2l0aCBhIGN1c3RvbSBkZWxldGVyIGZvciBlYWNo
IEVmbCBPYmplY3RzLCB3aGljaCBpcyBtb3RpdmF0ZWQgYnkgR1VuaXF1ZVB0ci4KKyAgICAgICAg
VGhpcyBwYXRjaCByZXBsYWNlcyB1c2VzIG9mIE93blB0ciBhbmQgUGFzc093blB0ciBmb3IgRWZs
IG9iamVjdHMgd2l0aCBFZmxVbmlxdWVQdHIuCisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9l
ZmwvRHVtcFJlbmRlclRyZWUuY3BwOgorICAgICAgICAobWFpbik6CisgICAgICAgICogSW1hZ2VE
aWZmL2VmbC9JbWFnZURpZmYuY3BwOgorICAgICAgICAoaW5pdEVmbCk6CisgICAgICAgIChtYWlu
KToKKwogMjAxNC0wMy0xOCAgU2FtdWVsIFdoaXRlICA8c2FtdWVsX3doaXRlQGFwcGxlLmNvbT4K
IAogICAgICAgICBBWDogTm90IGFibGUgdG8gdXNlIGFycm93IGtleXMgdG8gcmVhZCB0ZXh0IHdp
dGggVm9pY2VPdmVyIGJlZm9yZSBzZWxlY3Rpb24gaXMgc2V0IHNvbWVwbGFjZSAoYW55cGxhY2Up
LgpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvZWZsL0R1bXBSZW5kZXJUcmVlLmNw
cCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2VmbC9EdW1wUmVuZGVyVHJlZS5jcHAKaW5kZXggZDhh
NWI1NmVhNWVhYjQ0NzMwM2JhOWNiZWViYTI4OGMxYjFlOWY4YS4uZGMzZTEzNDQ3MDhhMDAxMTMy
YzI2MjU3ZTg5NjgzNDA1ZDBjYzBmOCAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUv
ZWZsL0R1bXBSZW5kZXJUcmVlLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9lZmwvRHVt
cFJlbmRlclRyZWUuY3BwCkBAIC01MCw2ICs1MCw3IEBACiAjaW5jbHVkZSA8dW5pc3RkLmg+CiAj
aW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KICNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CisjaW5j
bHVkZSA8d3RmL2VmbC9VbmlxdWVQdHJFZmwuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5n
Lmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgogCkBAIC00NTcsNyArNDU4
LDcgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIqKiBhcmd2KQogCiAgICAgV1RGSW5zdGFsbFJl
cG9ydEJhY2t0cmFjZU9uQ3Jhc2hIb29rKCk7CiAKLSAgICBPd25QdHI8RWNvcmVfRXZhcz4gZWNv
cmVFdmFzID0gYWRvcHRQdHIoaW5pdEVjb3JlRXZhcygpKTsKKyAgICBFZmxVbmlxdWVQdHI8RWNv
cmVfRXZhcz4gZWNvcmVFdmFzKGluaXRFY29yZUV2YXMoKSk7CiAgICAgYnJvd3NlciA9IER1bXBS
ZW5kZXJUcmVlQ2hyb21lOjpjcmVhdGUoZWNvcmVfZXZhc19nZXQoZWNvcmVFdmFzLmdldCgpKSk7
CiAgICAgYWRkRm9udHNUb0Vudmlyb25tZW50KCk7CiAKQEAgLTQ3MCw3ICs0NzEsNyBAQCBpbnQg
bWFpbihpbnQgYXJnYywgY2hhcioqIGFyZ3YpCiAgICAgICAgICAgICBydW5UZXN0KGFyZ3ZbaV0p
OwogICAgIH0KIAotICAgIGVjb3JlRXZhcy5jbGVhcigpOworICAgIGVjb3JlRXZhcyA9IG51bGxw
dHI7CiAKICAgICBzaHV0ZG93bkVmbCgpOwogICAgIHJldHVybiBFWElUX1NVQ0NFU1M7CmRpZmYg
LS1naXQgYS9Ub29scy9JbWFnZURpZmYvZWZsL0ltYWdlRGlmZi5jcHAgYi9Ub29scy9JbWFnZURp
ZmYvZWZsL0ltYWdlRGlmZi5jcHAKaW5kZXggZDMzMzA5OWNjNzhjNDZlMWI5MGYyZGZmNTBiMDBh
NzdjMTA0MjBhZi4uNDQ1MWNkMjgwZDA2ODU4ZTBkOWM4MjEwNjlkNGVkYWFkY2VmNTdjOSAxMDA2
NDQKLS0tIGEvVG9vbHMvSW1hZ2VEaWZmL2VmbC9JbWFnZURpZmYuY3BwCisrKyBiL1Rvb2xzL0lt
YWdlRGlmZi9lZmwvSW1hZ2VEaWZmLmNwcApAQCAtNDIsMTEgKzQyLDEwIEBACiAjaW5jbHVkZSA8
c3lzL3N0YXQuaD4KICNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KICNpbmNsdWRlIDx1bmlzdGQuaD4K
LSNpbmNsdWRlIDx3dGYvT3duUHRyLmg+Ci0jaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KICNp
bmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4K
ICNpbmNsdWRlIDx3dGYvZWZsL1JlZlB0ckVmbC5oPgorI2luY2x1ZGUgPHd0Zi9lZmwvVW5pcXVl
UHRyRWZsLmg+CiAKIGVudW0gUGl4ZWxDb21wb25lbnQgewogICAgIFJlZCwKQEAgLTU1LDcgKzU0
LDcgQEAgZW51bSBQaXhlbENvbXBvbmVudCB7CiAgICAgQWxwaGEKIH07CiAKLXN0YXRpYyBPd25Q
dHI8RWNvcmVfRXZhcz4gZ0Vjb3JlRXZhczsKK3N0YXRpYyBFZmxVbmlxdWVQdHI8RWNvcmVfRXZh
cz4gZ0Vjb3JlRXZhczsKIHN0YXRpYyBkb3VibGUgZ1RvbGVyYW5jZSA9IDA7CiAKIHN0YXRpYyB2
b2lkIGFib3J0V2l0aEVycm9yTWVzc2FnZShjb25zdCBjaGFyKiBlcnJvck1lc3NhZ2UpOwpAQCAt
MzE4LDcgKzMxNyw3IEBAIHN0YXRpYyBFdmFzKiBpbml0RWZsKCkKICAgICBlY29yZV9pbml0KCk7
CiAgICAgZWNvcmVfZXZhc19pbml0KCk7CiAKLSAgICBnRWNvcmVFdmFzID0gYWRvcHRQdHIoZWNv
cmVfZXZhc19idWZmZXJfbmV3KDEsIDEpKTsKKyAgICBnRWNvcmVFdmFzID0gRWZsVW5pcXVlUHRy
PEVjb3JlX0V2YXM+KGVjb3JlX2V2YXNfYnVmZmVyX25ldygxLCAxKSk7CiAgICAgRXZhcyogZXZh
cyA9IGVjb3JlX2V2YXNfZ2V0KGdFY29yZUV2YXMuZ2V0KCkpOwogICAgIGlmICghZXZhcykKICAg
ICAgICAgYWJvcnRXaXRoRXJyb3JNZXNzYWdlKCJjb3VsZCBub3QgY3JlYXRlIEVjb3JlX0V2YXMg
YnVmZmVyIik7CkBAIC0zNjEsNyArMzYwLDcgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIqIGFy
Z3ZbXSkKICAgICAgICAgZmZsdXNoKHN0ZG91dCk7CiAgICAgfQogCi0gICAgZ0Vjb3JlRXZhcy5j
bGVhcigpOyAvLyBNYWtlIHN1cmUgZWNvcmVfZXZhc19mcmVlIGlzIGNhbGxlZCBiZWZvcmUgdGhl
IEVGTCBhcmUgc2h1dCBkb3duCisgICAgZ0Vjb3JlRXZhcyA9IG51bGxwdHI7IC8vIE1ha2Ugc3Vy
ZSBlY29yZV9ldmFzX2ZyZWUgaXMgY2FsbGVkIGJlZm9yZSB0aGUgRUZMIGFyZSBzaHV0IGRvd24K
IAogICAgIHNodXRkb3duRWZsKCk7CiAgICAgcmV0dXJuIEVYSVRfU1VDQ0VTUzsK
</data>

          </attachment>
      

    </bug>

</bugzilla>