<?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>236502</bug_id>
          
          <creation_ts>2022-02-11 06:44:32 -0800</creation_ts>
          <short_desc>WebGL GPUP: Crash when running fast/mediastream/getUserMedia-to-canvas-1.html</short_desc>
          <delta_ts>2022-02-21 06:07:50 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebGL</component>
          <version>Other</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=webglgpup</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=236382</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=234536</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=236878</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>236701</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Kimmo Kinnunen">kkinnunen</reporter>
          <assigned_to name="Kimmo Kinnunen">kkinnunen</assigned_to>
          <cc>dino</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>hta</cc>
    
    <cc>jer.noble</cc>
    
    <cc>jonlee</cc>
    
    <cc>kbr</cc>
    
    <cc>kkinnunen</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>philipj</cc>
    
    <cc>sergio</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>tommyw</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1840327</commentid>
    <comment_count>0</comment_count>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2022-02-11 06:44:32 -0800</bug_when>
    <thetext>WebGL GPUP: Crash when running fast/mediastream/getUserMedia-to-canvas-1.html 


Needs implementation of user media capture&apos;d media player paint to canvas</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1840812</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-02-12 19:46:11 -0800</bug_when>
    <thetext>&lt;rdar://problem/88862921&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1842896</commentid>
    <comment_count>2</comment_count>
      <attachid>452365</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2022-02-17 07:43:59 -0800</bug_when>
    <thetext>Created attachment 452365
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1842975</commentid>
    <comment_count>3</comment_count>
      <attachid>452365</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2022-02-17 10:51:32 -0800</bug_when>
    <thetext>Comment on attachment 452365
Patch

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

&gt; Source/WebCore/platform/VideoFrame.h:56
&gt;      virtual bool isCV() const { return false; }

The CV abbreviation is a bit obscure here.

&gt; Source/WebCore/platform/VideoFrame.h:57
&gt; +    virtual RefPtr&lt;WebCore::VideoFrameCV&gt; asVideoFrameCV() = 0;

This seems like a layering violation. Normally we&apos;d do this by adding SPECIALIZE_TYPE_TRAITS macros to allow for is&lt;&gt; and downcast&lt;&gt;

&gt; Source/WebKit/GPUProcess/graphics/RemoteGraphicsContextGLCocoa.cpp:62
&gt; +        videoFrameCV = &amp;downcast&lt;WebCore::VideoFrameCV&gt;(*videoFrame);

This doesn&apos;t use asVideoFrameCV()?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1842983</commentid>
    <comment_count>4</comment_count>
      <attachid>452365</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2022-02-17 11:08:58 -0800</bug_when>
    <thetext>Comment on attachment 452365
Patch

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

&gt;&gt; Source/WebCore/platform/VideoFrame.h:57
&gt;&gt; +    virtual RefPtr&lt;WebCore::VideoFrameCV&gt; asVideoFrameCV() = 0;
&gt; 
&gt; This seems like a layering violation. Normally we&apos;d do this by adding SPECIALIZE_TYPE_TRAITS macros to allow for is&lt;&gt; and downcast&lt;&gt;

It has those. This method is different. It converts to the type.
This is the polymorphic conversion function.

&gt;&gt; Source/WebKit/GPUProcess/graphics/RemoteGraphicsContextGLCocoa.cpp:62
&gt;&gt; +        videoFrameCV = &amp;downcast&lt;WebCore::VideoFrameCV&gt;(*videoFrame);
&gt; 
&gt; This doesn&apos;t use asVideoFrameCV()?

No, that&apos;s a different function.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1842988</commentid>
    <comment_count>5</comment_count>
      <attachid>452365</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2022-02-17 11:17:25 -0800</bug_when>
    <thetext>Comment on attachment 452365
Patch

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

&gt;&gt; Source/WebCore/platform/VideoFrame.h:56
&gt;&gt;      virtual bool isCV() const { return false; }
&gt; 
&gt; The CV abbreviation is a bit obscure here.

It seems fine to me, and it won&apos;t be the first time we&apos;ve used it, e.g. GraphicsContextGLCV, PixelBufferConformerCV, GraphicsContextGLCVCocoa</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1842989</commentid>
    <comment_count>6</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2022-02-17 11:17:44 -0800</bug_when>
    <thetext>r=me once the bots are happy</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1843355</commentid>
    <comment_count>7</comment_count>
      <attachid>452506</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2022-02-18 04:27:53 -0800</bug_when>
    <thetext>Created attachment 452506
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1843359</commentid>
    <comment_count>8</comment_count>
      <attachid>452509</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2022-02-18 04:56:08 -0800</bug_when>
    <thetext>Created attachment 452509
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1843377</commentid>
    <comment_count>9</comment_count>
      <attachid>452515</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2022-02-18 06:49:17 -0800</bug_when>
    <thetext>Created attachment 452515
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1843443</commentid>
    <comment_count>10</comment_count>
      <attachid>452524</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2022-02-18 09:05:21 -0800</bug_when>
    <thetext>Created attachment 452524
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1843483</commentid>
    <comment_count>11</comment_count>
      <attachid>452538</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2022-02-18 10:31:09 -0800</bug_when>
    <thetext>Created attachment 452538
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1843659</commentid>
    <comment_count>12</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-02-18 14:49:26 -0800</bug_when>
    <thetext>Committed r290175 (247506@main): &lt;https://commits.webkit.org/247506@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 452538.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1843799</commentid>
    <comment_count>13</comment_count>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2022-02-18 22:37:15 -0800</bug_when>
    <thetext>nongpup webgl started to assert, will fix in bug 236878</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1844182</commentid>
    <comment_count>14</comment_count>
      <attachid>452538</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2022-02-21 06:07:50 -0800</bug_when>
    <thetext>Comment on attachment 452538
Patch for landing

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

&gt; Source/WebKit/WebProcess/GPU/graphics/RemoteGraphicsContextGLProxy.cpp:190
&gt; +    if (!videoFrame || !is&lt;RemoteVideoFrameProxy&gt;(*videoFrame))

This should probably be a FIXME, painting VP8 WebRTC streamed content on WebGL may exercise that code path.
I filed https://bugs.webkit.org/show_bug.cgi?id=236972 to track this.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>452365</attachid>
            <date>2022-02-17 07:43:59 -0800</date>
            <delta_ts>2022-02-18 04:27:47 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-236502-20220217174346.patch</filename>
            <type>text/plain</type>
            <size>39435</size>
            <attacher name="Kimmo Kinnunen">kkinnunen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkwMDA5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDA0N2ZhMGU1NzdmMzE0
MzQ2YzNmMTk2MGYzZGYyMDdlNWQ4YWQwNi4uOTAzNzE4NDVhMjRiZTg2ZTVjODYwZWQ1OWM5OGRk
OWRmYjU5ZmMxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDIyLTAyLTE3ICBLaW1t
byBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CisKKyAgICAgICAgV2ViR0wgR1BVUDog
Q3Jhc2ggd2hlbiBydW5uaW5nIGZhc3QvbWVkaWFzdHJlYW0vZ2V0VXNlck1lZGlhLXRvLWNhbnZh
cy0xLmh0bWwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIzNjUwMgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vODg4NjI5MjE+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGEgcG9seW1vcnBoaWMgZnVu
Y3Rpb24gYXNWaWRlb0ZyYW1lQ1YgdG8gY29udmVydCBWaWRlb0ZyYW1lIHRvIFZpZGVvRnJhbWVD
Vi4KKyAgICAgICAgVmlkZW9GcmFtZUNWIGlzIHVzZWQgdG8gZHJhdyB0aGUgaW4tcHJvY2VzcyB2
aWRlbyBmcmFtZSB0byBpbi1wcm9jZXNzIFdlYkdMLgorICAgICAgICAKKyAgICAgICAgUmVtb3Rl
VmlkZW9GcmFtZVByb3h5IHdpbGwgaW1wbGVtZW50IGFzVmlkZW9GcmFtZUNWIGJ5IGZldGNoaW5n
IHRoZSBkYXRhIGZyb20KKyAgICAgICAgR1BVUCBhbmQgcmV0dXJuaW5nIGEgbmV3IG9iamVjdCBl
eHBvc2luZyB0aGUgZGF0YS4KKworICAgICAgICBObyBuZXcgdGVzdHMsIHRlc3RlZCBieSBub3cg
dW5za2lwcGVkIHRlc3RzLgorCisgICAgICAgICogcGxhdGZvcm0vVmlkZW9GcmFtZS5oOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0dyYXBoaWNzQ29udGV4dEdMQ29jb2EubW06
CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTENvY29hOjpjb3B5VGV4dHVyZUZy
b21NZWRpYSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY3YvVmlkZW9GcmFtZUNWLmg6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY3YvVmlkZW9GcmFtZUNWLm1tOgorICAgICAg
ICAoV2ViQ29yZTo6VmlkZW9GcmFtZUNWOjphc1ZpZGVvRnJhbWVDVik6CisKIDIwMjItMDItMTcg
IEtpbW1vIEtpbm51bmVuICA8a2tpbm51bmVuQGFwcGxlLmNvbT4KIAogICAgICAgICBNZWRpYVBs
YXllcjo6dmlkZW9GcmFtZUZvckN1cnJlbnRUaW1lKCkgc2hvdWxkIHJldHVybiBWaWRlb0ZyYW1l
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCmluZGV4IDkwOTdkNjA2MjYxYzFmNzg2OTY1MTVkZmRiNzFhNzg1YWY3OGY4YWMuLjJi
YWFhNjVlMTZiMGQwYTBlY2ZlMjdkZmM2ZDZkYjUxMDNjYmUyNWUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsNTUgQEAKKzIwMjItMDItMTcgIEtpbW1vIEtpbm51bmVuICA8a2tpbm51bmVuQGFwcGxlLmNv
bT4KKworICAgICAgICBXZWJHTCBHUFVQOiBDcmFzaCB3aGVuIHJ1bm5pbmcgZmFzdC9tZWRpYXN0
cmVhbS9nZXRVc2VyTWVkaWEtdG8tY2FudmFzLTEuaHRtbAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM2NTAyCisKKyAgICAgICAgVGhlIGNyYXNoIGlz
IGFib3V0IE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQyBiZWluZyBpbiBXUCB3
aGlsZSBvdGhlcgorICAgICAgICBtZWRpYSBwbGF5ZXIgcHJpdmF0ZSB2YXJpYW50cyBhcmUgcHJv
eGllZCB0byBHUFVQLiBUaGUgcHJldmlvdXMgaW1wbGVtZW50YXRpb24KKyAgICAgICAgd291bGQg
c2VuZCBtZWRpYSBwbGF5ZXIgaWRlbnRpZmllcnMgdG8gR1BVUCBmb3IgY29weWluZy4KKyAgICAg
ICAgVGhpcyBwYXRjaCB3aWxsIGltcGxlbWVudCB0aGUgY29weSBieSB0aGUgbWVkaWEgcGxheWVy
IGNyZWF0aW5nIGEgcmVmZXJlbmNlCisgICAgICAgIHRvIFZpZGVvRnJhbWUuIFdlYkdMIHdvdWxk
IHNlbmQgcmVmZXJlbmNlIG9mIHRoZSBWaWRlb0ZyYW1lIHRvIEdQVVAgZm9yIGNvcHlpbmcuCisK
KyAgICAgICAgTWFrZSBXUCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGUgYWx3YXlzIHJldHVybiBS
ZW1vdGVWaWRlb0ZyYW1lUHJveHkgb2JqZWN0cworICAgICAgICBpbnN0ZWFkIG9mIFdQIGluLXBy
b2Nlc3MgVmlkZW9GcmFtZSBpbnN0YW5jZXMgKGZvciBDb2NvYSBWaWRlb0ZyYW1lQ1YpIHRoYXQK
KyAgICAgICAgd291bGQgaG9sZCB0aGUgdmlkZW8gZGF0YSBpbiBwcm9jZXNzLgorCisgICAgICAg
IFdQIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQyBhbHJlYWR5IHJldHVybnMg
UmVtb3RlVmlkZW9GcmFtZVByb3h5CisgICAgICAgIG9iamVjdHMuIFRoaXMgd2F5IEdQVVAgV2Vi
R0wgaW1wbGVtZW50YXRpb24gY2FuIG9idGFpbiB0aGUgcmVhZCByZWZlcmVuY2UKKyAgICAgICAg
dG8gdGhlIHJlbW90ZSBvYmplY3QgYW5kIHNlbmQgaXQgaW4gY29weVRleHR1cmVGcm9tVmlkZW9G
cmFtZSBtZXNzYWdlLgorCisgICAgICAgIFRoZSBXUCBpbi1wcm9jZXNzIFdlYkdMIGltcGxlbWVu
dGF0aW9uIGNvbnZlcnRzIHRoZSBSZW1vdGVWaWRlb0ZyYW1lUHJveHkKKyAgICAgICAgdG8gVmlk
ZW9GcmFtZUNWIHdpdGggdGhlIG5ldyBSZW1vdGVWaWRlb0ZyYW1lUHJveHk6OmFzVmlkZW9GcmFt
ZUNWLgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
R1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTC5jcHA6CisgICAgICAg
IChXZWJLaXQ6OlJlbW90ZUdyYXBoaWNzQ29udGV4dEdMOjpSZW1vdGVHcmFwaGljc0NvbnRleHRH
TCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUdyYXBoaWNzQ29udGV4dEdMOjpjb3B5VGV4dHVy
ZUZyb21WaWRlb0ZyYW1lKToKKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdy
YXBoaWNzQ29udGV4dEdMLmg6CisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVH
cmFwaGljc0NvbnRleHRHTC5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBo
aWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMQ29jb2EuY3BwOgorICAgICAgICAoV2ViS2l0OjpS
ZW1vdGVHcmFwaGljc0NvbnRleHRHTDo6Y29weVRleHR1cmVGcm9tVmlkZW9GcmFtZSk6CisgICAg
ICAgIChXZWJLaXQ6OlJlbW90ZUdyYXBoaWNzQ29udGV4dEdMOjpjcmVhdGUpOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVHcmFwaGljc0NvbnRleHRHTENvY29hOjpSZW1vdGVHcmFwaGljc0NvbnRl
eHRHTENvY29hKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlR3JhcGhpY3NDb250ZXh0R0xDb2Nv
YTo6cGxhdGZvcm1Xb3JrUXVldWVJbml0aWFsaXplKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3Rl
R3JhcGhpY3NDb250ZXh0R0xDb2NvYTo6cHJlcGFyZUZvckRpc3BsYXkpOgorICAgICAgICAqIEdQ
VVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eTo6Y3JlYXRlTWVkaWFQbGF5
ZXIpOgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5j
cHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyUHJveHk6OlJlbW90ZU1lZGlh
UGxheWVyUHJveHkpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVBsYXllclByb3h5Ojp2
aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWVJZkNoYW5nZWQpOgorICAgICAgICAqIEdQVVByb2Nlc3Mv
bWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5oOgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVk
aWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5LmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eTo6Y29weVRleHR1cmVGcm9t
TWVkaWEpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNz
Q29udGV4dEdMUHJveHkuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBs
YXllclByaXZhdGVSZW1vdGUuY3BwOgorICAgICAgICAoV2ViS2l0OjpNZWRpYVBsYXllclByaXZh
dGVSZW1vdGU6OnZpZGVvRnJhbWVGb3JDdXJyZW50VGltZSk6CisgICAgICAgICogV2ViUHJvY2Vz
cy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmg6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9HUFUvbWVkaWEvUmVtb3RlVmlkZW9GcmFtZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktp
dDo6UmVtb3RlVmlkZW9GcmFtZVByb3h5Ojphc1ZpZGVvRnJhbWVDVik6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlVmlkZW9GcmFtZVByb3h5Lmg6CisKIDIwMjItMDItMTcg
IEtpbW1vIEtpbm51bmVuICA8a2tpbm51bmVuQGFwcGxlLmNvbT4KIAogICAgICAgICBNZWRpYVBs
YXllcjo6dmlkZW9GcmFtZUZvckN1cnJlbnRUaW1lKCkgc2hvdWxkIHJldHVybiBWaWRlb0ZyYW1l
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9WaWRlb0ZyYW1lLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9WaWRlb0ZyYW1lLmgKaW5kZXggYjU1NDU2ZmY5NGFiYjcxMWQz
MjZmMmQ2ZDA5OTlkNmJkNWM2MGE2ZC4uNjQxMWRmN2Q2NDBjY2RlZDFkMWUzZTExZmQxYTQyOGEy
OTFiMzFlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVmlkZW9GcmFtZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1ZpZGVvRnJhbWUuaApAQCAtMzEsNiArMzEs
MTEgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCisjaWYgVVNFKEFWRk9VTkRBVElPTikKK2Ns
YXNzIFZpZGVvRnJhbWVDVjsKKyNlbmRpZgorCisKIC8vIEEgY2xhc3MgcmVwcmVzZW50aW5nIGEg
dmlkZW8gZnJhbWUgZnJvbSBhIGRlY29kZXIsIGNhcHR1cmUgc291cmNlLCBvciBzaW1pbGFyLgog
Ly8gRklYTUU6IEN1cnJlbnRseSBmb3IgaW1wbGVtZW50YXRpb24gcHVycG9zZXMgaW5oZXJ0cyBm
cm9tIE1lZGlhU2FtcGxlIHVudGlsIGNhcHR1cmUgY29kZQogLy8gc3RvcHMgcmVmZXJyaW5nIHRv
IE1lZGlhU2FtcGxlCkBAIC00OSw2ICs1NCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wg
aXNSZW1vdGVQcm94eSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAjaWYgVVNFKEFWRk9VTkRB
VElPTikKICAgICB2aXJ0dWFsIGJvb2wgaXNDVigpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9Cisg
ICAgdmlydHVhbCBSZWZQdHI8V2ViQ29yZTo6VmlkZW9GcmFtZUNWPiBhc1ZpZGVvRnJhbWVDVigp
ID0gMDsKICNlbmRpZgogCiBwcm90ZWN0ZWQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HcmFwaGljc0NvbnRleHRHTENvY29hLm1tIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5t
bQppbmRleCBhMGJmY2YyNzI5NTE2ZTI0ZTZjOTliMjBhNjQ1MjNjN2NlODlkYzdkLi4zNWI5MWZi
M2RkNjdhNzMyODk3Y2M1NDY3MjJjM2ZmNTBhOWQwOTY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HcmFwaGljc0NvbnRleHRHTENvY29hLm1tCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0dyYXBoaWNzQ29udGV4
dEdMQ29jb2EubW0KQEAgLTM4LDcgKzM4LDYgQEAKICNpbXBvcnQgIlBpeGVsQnVmZmVyLmgiCiAj
aW1wb3J0ICJQcm9jZXNzSWRlbnRpdHkuaCIKICNpbXBvcnQgIlJ1bnRpbWVBcHBsaWNhdGlvbkNo
ZWNrcy5oIgotI2ltcG9ydCAiVmlkZW9GcmFtZUNWLmgiCiAjaW1wb3J0IDxDb3JlR3JhcGhpY3Mv
Q0dCaXRtYXBDb250ZXh0Lmg+CiAjaW1wb3J0IDxNZXRhbC9NZXRhbC5oPgogI2ltcG9ydCA8cGFs
L3NwaS9jb2NvYS9NZXRhbFNQSS5oPgpAQCAtNTAsMTMgKzQ5LDE0IEBACiAjZW5kaWYKIAogI2lm
IEVOQUJMRShWSURFTykKLSNpbmNsdWRlICJHcmFwaGljc0NvbnRleHRHTENWQ29jb2EuaCIKLSNp
bmNsdWRlICJNZWRpYVBsYXllclByaXZhdGUuaCIKKyNpbXBvcnQgIkdyYXBoaWNzQ29udGV4dEdM
Q1ZDb2NvYS5oIgorI2ltcG9ydCAiTWVkaWFQbGF5ZXJQcml2YXRlLmgiCisjaW1wb3J0ICJWaWRl
b0ZyYW1lQ1YuaCIKICNlbmRpZgogCiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKLSNpbmNsdWRl
ICJJbWFnZVJvdGF0aW9uU2Vzc2lvblZULmgiCi0jaW5jbHVkZSAiTWVkaWFTYW1wbGVBVkZPYmpD
LmgiCisjaW1wb3J0ICJJbWFnZVJvdGF0aW9uU2Vzc2lvblZULmgiCisjaW1wb3J0ICJNZWRpYVNh
bXBsZUFWRk9iakMuaCIKICNlbmRpZgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC03ODMsMTUg
Kzc4MywxNiBAQCBib29sIEdyYXBoaWNzQ29udGV4dEdMQ29jb2E6OmNvcHlUZXh0dXJlRnJvbU1l
ZGlhKE1lZGlhUGxheWVyJiBwbGF5ZXIsIFBsYXRmb3JtRwogICAgIGF1dG8gdmlkZW9GcmFtZSA9
IHBsYXllci52aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWUoKTsKICAgICBpZiAoIXZpZGVvRnJhbWUp
CiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBBU1NFUlQoaXM8VmlkZW9GcmFtZUNWPigqdmlk
ZW9GcmFtZSkpOwotCisgICAgYXV0byB2aWRlb0ZyYW1lQ1YgPSB2aWRlb0ZyYW1lLT5hc1ZpZGVv
RnJhbWVDVigpOworICAgIGlmICghdmlkZW9GcmFtZUNWKQorICAgICAgICByZXR1cm4gZmFsc2U7
CiAgICAgYXV0byBjb250ZXh0Q1YgPSBhc0NWKCk7CiAgICAgaWYgKCFjb250ZXh0Q1YpCiAgICAg
ICAgIHJldHVybiBmYWxzZTsKIAogICAgIFVOVVNFRF9WQVJJQUJMRShwcmVtdWx0aXBseUFscGhh
KTsKICAgICBBU1NFUlRfVU5VU0VEKG91dHB1dFRhcmdldCwgb3V0cHV0VGFyZ2V0ID09IEdyYXBo
aWNzQ29udGV4dEdMOjpURVhUVVJFXzJEKTsKLSAgICByZXR1cm4gY29udGV4dENWLT5jb3B5Vmlk
ZW9TYW1wbGVUb1RleHR1cmUoZG93bmNhc3Q8VmlkZW9GcmFtZUNWPigqdmlkZW9GcmFtZSksIG91
dHB1dFRleHR1cmUsIGxldmVsLCBpbnRlcm5hbEZvcm1hdCwgZm9ybWF0LCB0eXBlLCBHcmFwaGlj
c0NvbnRleHRHTDo6RmxpcFkoZmxpcFkpKTsKKyAgICByZXR1cm4gY29udGV4dENWLT5jb3B5Vmlk
ZW9TYW1wbGVUb1RleHR1cmUoKnZpZGVvRnJhbWVDViwgb3V0cHV0VGV4dHVyZSwgbGV2ZWwsIGlu
dGVybmFsRm9ybWF0LCBmb3JtYXQsIHR5cGUsIEdyYXBoaWNzQ29udGV4dEdMOjpGbGlwWShmbGlw
WSkpOwogfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2N2L1ZpZGVvRnJhbWVDVi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY3YvVmlkZW9GcmFtZUNWLmgKaW5kZXggODMxYzg4MDJjYzhjODMzOTM0NGZiMGQ3NGUxZGIz
ZmQzYmRkZjdkYS4uMTRlYjViNTUyZmNjYzUzMzc2M2ZjNzRjN2U5M2RlYzZmMjMyMWNiMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvVmlkZW9GcmFtZUNW
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvVmlkZW9GcmFtZUNW
LmgKQEAgLTQ3LDkgKzQ3LDEwIEBAIHB1YmxpYzoKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBEZWNv
ZGVyPiBzdGF0aWMgc3RkOjpvcHRpb25hbDxSZWZQdHI8VmlkZW9GcmFtZUNWPj4gZGVjb2RlKERl
Y29kZXImKTsKIAogICAgIC8vIFZpZGVvRnJhbWUgb3ZlcnJpZGVzLgotICAgIFdlYkNvcmU6OkZs
b2F0U2l6ZSBwcmVzZW50YXRpb25TaXplKCkgY29uc3QgZmluYWw7Ci0gICAgdWludDMyX3Qgdmlk
ZW9QaXhlbEZvcm1hdCgpIGNvbnN0IGZpbmFsOworICAgIFdFQkNPUkVfRVhQT1JUIFdlYkNvcmU6
OkZsb2F0U2l6ZSBwcmVzZW50YXRpb25TaXplKCkgY29uc3QgZmluYWw7CisgICAgV0VCQ09SRV9F
WFBPUlQgdWludDMyX3QgdmlkZW9QaXhlbEZvcm1hdCgpIGNvbnN0IGZpbmFsOwogICAgIGJvb2wg
aXNDVigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KKyAgICBXRUJDT1JFX0VYUE9SVCBS
ZWZQdHI8V2ViQ29yZTo6VmlkZW9GcmFtZUNWPiBhc1ZpZGVvRnJhbWVDVigpIGZpbmFsOwogCiBw
cml2YXRlOgogICAgIFdFQkNPUkVfRVhQT1JUIFZpZGVvRnJhbWVDVihNZWRpYVRpbWUgcHJlc2Vu
dGF0aW9uVGltZSwgYm9vbCBpc01pcnJvcmVkLCBWaWRlb1JvdGF0aW9uLCBSZXRhaW5QdHI8Q1ZQ
aXhlbEJ1ZmZlclJlZj4mJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jdi9WaWRlb0ZyYW1lQ1YubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jdi9WaWRlb0ZyYW1lQ1YubW0KaW5kZXggYTVhNmQwODJiYmU0MmMzMTczYWJjMWZhODgx
MmU0NDFjYWM2ZjZlNS4uZDM5YzkwZTBjNzkwYTU3NTExMzdiMDVhNmZkNjAxMTEyZDZhOTgxYSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvVmlkZW9GcmFt
ZUNWLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L1ZpZGVvRnJh
bWVDVi5tbQpAQCAtNTQsNiArNTQsMTEgQEAgdWludDMyX3QgVmlkZW9GcmFtZUNWOjp2aWRlb1Bp
eGVsRm9ybWF0KCkgY29uc3QKIHsKICAgICByZXR1cm4gQ1ZQaXhlbEJ1ZmZlckdldFBpeGVsRm9y
bWF0VHlwZShtX3BpeGVsQnVmZmVyLmdldCgpKTsKIH0KK1JlZlB0cjxXZWJDb3JlOjpWaWRlb0Zy
YW1lQ1Y+IFZpZGVvRnJhbWVDVjo6YXNWaWRlb0ZyYW1lQ1YoKQoreworICAgIHJldHVybiB0aGlz
OworfQorCiAKIEltYWdlT3JpZW50YXRpb24gVmlkZW9GcmFtZUNWOjpvcmllbnRhdGlvbigpIGNv
bnN0CiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVt
b3RlR3JhcGhpY3NDb250ZXh0R0wuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBo
aWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMLmNwcAppbmRleCA0YTY3YzVkMTZlNWEwZmY5Zjk4
N2ZkMjQzYTJkYjk1OGQzZGUyYThhLi5jNTA5OWZhMTU4MTc1NWZlZTNhM2QyNTk5NTA5NWQwMjJi
ZTRlOTRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVt
b3RlR3JhcGhpY3NDb250ZXh0R0wuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9n
cmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTC5jcHAKQEAgLTM4LDExICszOCw3IEBACiAj
aW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQu
aD4KIAotI2lmIFVTRShBVkZPVU5EQVRJT04pCi0jaW5jbHVkZSA8V2ViQ29yZS9HcmFwaGljc0Nv
bnRleHRHTENWLmg+Ci0jZW5kaWYKLQotI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisjaWYgRU5B
QkxFKFZJREVPKQogI2luY2x1ZGUgIlJlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwLmgiCiAjZW5k
aWYKIApAQCAtNzIsNyArNjgsNyBAQCBSZW1vdGVHcmFwaGljc0NvbnRleHRHTDo6UmVtb3RlR3Jh
cGhpY3NDb250ZXh0R0woR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYgZ3B1QwogICAgICwgbV9z
dHJlYW1Db25uZWN0aW9uKElQQzo6U3RyZWFtU2VydmVyQ29ubmVjdGlvbjo6Y3JlYXRlKGdwdUNv
bm5lY3Rpb25Ub1dlYlByb2Nlc3MuY29ubmVjdGlvbigpLCBXVEZNb3ZlKHN0cmVhbSksIHJlbW90
ZUdyYXBoaWNzQ29udGV4dEdMU3RyZWFtV29ya1F1ZXVlKCkpKQogICAgICwgbV9ncmFwaGljc0Nv
bnRleHRHTElkZW50aWZpZXIoZ3JhcGhpY3NDb250ZXh0R0xJZGVudGlmaWVyKQogICAgICwgbV9y
ZW5kZXJpbmdCYWNrZW5kKHJlbmRlcmluZ0JhY2tlbmQpCi0jaWYgRU5BQkxFKE1FRElBX1NUUkVB
TSkKKyNpZiBFTkFCTEUoVklERU8pCiAgICAgLCBtX3ZpZGVvRnJhbWVPYmplY3RIZWFwKGdwdUNv
bm5lY3Rpb25Ub1dlYlByb2Nlc3MudmlkZW9GcmFtZU9iamVjdEhlYXAoKSkKICNlbmRpZgogICAg
ICwgbV9yZW5kZXJpbmdSZXNvdXJjZXNSZXF1ZXN0KFNjb3BlZFdlYkdMUmVuZGVyaW5nUmVzb3Vy
Y2VzUmVxdWVzdDo6YWNxdWlyZSgpKQpAQCAtMjgwLDUxICsyNzYsMTUgQEAgdm9pZCBSZW1vdGVH
cmFwaGljc0NvbnRleHRHTDo6cGFpbnRQaXhlbEJ1ZmZlclRvSW1hZ2VCdWZmZXIoc3RkOjpvcHRp
b25hbDxXZWJDb3IKICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwogfQogCi12b2lkIFJlbW90ZUdy
YXBoaWNzQ29udGV4dEdMOjpjb3B5VGV4dHVyZUZyb21NZWRpYShXZWJDb3JlOjpNZWRpYVBsYXll
cklkZW50aWZpZXIgbWVkaWFQbGF5ZXJJZGVudGlmaWVyLCB1aW50MzJfdCB0ZXh0dXJlLCB1aW50
MzJfdCB0YXJnZXQsIGludDMyX3QgbGV2ZWwsIHVpbnQzMl90IGludGVybmFsRm9ybWF0LCB1aW50
MzJfdCBmb3JtYXQsIHVpbnQzMl90IHR5cGUsIGJvb2wgcHJlbXVsdGlwbHlBbHBoYSwgYm9vbCBm
bGlwWSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikK
KyNpZiBFTkFCTEUoVklERU8pICYmICFVU0UoQVZGT1VOREFUSU9OKQordm9pZCBSZW1vdGVHcmFw
aGljc0NvbnRleHRHTDo6Y29weVRleHR1cmVGcm9tVmlkZW9GcmFtZShXZWJLaXQ6OlJlbW90ZVZp
ZGVvRnJhbWVSZWFkUmVmZXJlbmNlIHJlYWQsIHVpbnQzMl90LCB1aW50MzJfdCwgaW50MzJfdCwg
dWludDMyX3QsIHVpbnQzMl90LCB1aW50MzJfdCwgYm9vbCwgYm9vbCAsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7Ci0gICAgYXNzZXJ0SXNDdXJy
ZW50KG1fc3RyZWFtVGhyZWFkKTsKLSNpZiBVU0UoQVZGT1VOREFUSU9OKQotICAgIFVOVVNFRF9W
QVJJQUJMRShwcmVtdWx0aXBseUFscGhhKTsKLSAgICBBU1NFUlRfVU5VU0VEKHRhcmdldCwgdGFy
Z2V0ID09IEdyYXBoaWNzQ29udGV4dEdMOjpURVhUVVJFXzJEKTsKLQotICAgIFJlZlB0cjxWaWRl
b0ZyYW1lPiB2aWRlb0ZyYW1lOwotICAgIGF1dG8gZ2V0VmlkZW9GcmFtZSA9IFsmXSB7Ci0gICAg
ICAgIGlmICghbV9ncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzKQotICAgICAgICAgICAgcmV0dXJu
OwotCi0gICAgICAgIGlmIChhdXRvIG1lZGlhUGxheWVyID0gbV9ncHVDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzLT5yZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eSgpLm1lZGlhUGxheWVyKG1lZGlh
UGxheWVySWRlbnRpZmllcikpCi0gICAgICAgICAgICB2aWRlb0ZyYW1lID0gbWVkaWFQbGF5ZXIt
PnZpZGVvRnJhbWVGb3JDdXJyZW50VGltZSgpOwotICAgIH07Ci0KLSAgICBjYWxsT25NYWluUnVu
TG9vcEFuZFdhaXQoV1RGTW92ZShnZXRWaWRlb0ZyYW1lKSk7Ci0KLSAgICBpZiAoIXZpZGVvRnJh
bWUgfHwgIWlzPFZpZGVvRnJhbWVDVj4oKnZpZGVvRnJhbWUpKSB7Ci0gICAgICAgIGNvbXBsZXRp
b25IYW5kbGVyKGZhbHNlKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIGF1dG8gY29u
dGV4dENWID0gbV9jb250ZXh0LT5hc0NWKCk7Ci0gICAgaWYgKCFjb250ZXh0Q1YpIHsKLSAgICAg
ICAgY29tcGxldGlvbkhhbmRsZXIoZmFsc2UpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0g
ICAgY29tcGxldGlvbkhhbmRsZXIoY29udGV4dENWLT5jb3B5VmlkZW9TYW1wbGVUb1RleHR1cmUo
ZG93bmNhc3Q8VmlkZW9GcmFtZUNWPigqdmlkZW9GcmFtZSksIHRleHR1cmUsIGxldmVsLCBpbnRl
cm5hbEZvcm1hdCwgZm9ybWF0LCB0eXBlLCBHcmFwaGljc0NvbnRleHRHTDo6RmxpcFkoZmxpcFkp
KSk7Ci0jZWxzZQotICAgIFVOVVNFRF9WQVJJQUJMRShtZWRpYVBsYXllcklkZW50aWZpZXIpOwot
ICAgIFVOVVNFRF9WQVJJQUJMRSh0ZXh0dXJlKTsKLSAgICBVTlVTRURfVkFSSUFCTEUodGFyZ2V0
KTsKLSAgICBVTlVTRURfVkFSSUFCTEUobGV2ZWwpOwotICAgIFVOVVNFRF9WQVJJQUJMRShpbnRl
cm5hbEZvcm1hdCk7Ci0gICAgVU5VU0VEX1ZBUklBQkxFKGZvcm1hdCk7Ci0gICAgVU5VU0VEX1ZB
UklBQkxFKHR5cGUpOwotICAgIFVOVVNFRF9WQVJJQUJMRShwcmVtdWx0aXBseUFscGhhKTsKLSAg
ICBVTlVTRURfVkFSSUFCTEUoZmxpcFkpOwotCiAgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICBh
dXRvIHZpZGVvRnJhbWUgPSBtX3ZpZGVvRnJhbWVPYmplY3RIZWFwLnJldGlyZShyZWFkLCBkZWZh
dWx0VGltZW91dCk7CisgICAgVU5VU0VEKHZpZGVvRnJhbWUpOwogICAgIGNvbXBsZXRpb25IYW5k
bGVyKGZhbHNlKTsKLSNlbmRpZgogfQorI2VuZGlmCiAKIHZvaWQgUmVtb3RlR3JhcGhpY3NDb250
ZXh0R0w6OnNpbXVsYXRlRXZlbnRGb3JUZXN0aW5nKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdM
OjpTaW11bGF0ZWRFdmVudEZvclRlc3RpbmcgZXZlbnQpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0wuaCBiL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTC5o
CmluZGV4IGZmMjg0NWVkNDJmMzQ3YTliOGFiODU3MjFlNjJlZWIxNGU1MTdmMDguLjIzZTlhN2Ni
NDJmYzQ5OTBjYTJlODZhMDA3NDkyZmQ4YmE0ZDkzYTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTC5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTC5o
CkBAIC01Myw3ICs1Myw3IEBACiAjaW5jbHVkZSAiV0NDb250ZW50QnVmZmVySWRlbnRpZmllci5o
IgogI2VuZGlmCiAKLSNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorI2lmIEVOQUJMRShWSURFTykK
ICNpbmNsdWRlICJSZW1vdGVWaWRlb0ZyYW1lSWRlbnRpZmllci5oIgogI2luY2x1ZGUgIlJlbW90
ZVZpZGVvRnJhbWVQcm94eS5oIgogI2VuZGlmCkBAIC02NSw3ICs2NSw3IEBAIGNsYXNzIE1hY2hT
ZW5kUmlnaHQ7CiAjZW5kaWYKIAogbmFtZXNwYWNlIFdlYktpdCB7Ci0jaWYgRU5BQkxFKE1FRElB
X1NUUkVBTSkKKyNpZiBFTkFCTEUoVklERU8pCiBjbGFzcyBSZW1vdGVWaWRlb0ZyYW1lT2JqZWN0
SGVhcDsKICNlbmRpZgogCkBAIC0xMTgsNyArMTE4LDkgQEAgcHJvdGVjdGVkOgogI2lmIEVOQUJM
RShNRURJQV9TVFJFQU0pCiAgICAgdm9pZCBwYWludENvbXBvc2l0ZWRSZXN1bHRzVG9NZWRpYVNh
bXBsZShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8V2ViS2l0OjpSZW1vdGVW
aWRlb0ZyYW1lUHJveHk6OlByb3BlcnRpZXM+JiYpPiYmKTsKICNlbmRpZgotICAgIHZvaWQgY29w
eVRleHR1cmVGcm9tTWVkaWEoV2ViQ29yZTo6TWVkaWFQbGF5ZXJJZGVudGlmaWVyLCB1aW50MzJf
dCB0ZXh0dXJlLCB1aW50MzJfdCB0YXJnZXQsIGludDMyX3QgbGV2ZWwsIHVpbnQzMl90IGludGVy
bmFsRm9ybWF0LCB1aW50MzJfdCBmb3JtYXQsIHVpbnQzMl90IHR5cGUsIGJvb2wgcHJlbXVsdGlw
bHlBbHBoYSwgYm9vbCBmbGlwWSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7Cisj
aWYgRU5BQkxFKFZJREVPKQorICAgIHZvaWQgY29weVRleHR1cmVGcm9tVmlkZW9GcmFtZShSZW1v
dGVWaWRlb0ZyYW1lUmVhZFJlZmVyZW5jZSwgdWludDMyX3QgdGV4dHVyZSwgdWludDMyX3QgdGFy
Z2V0LCBpbnQzMl90IGxldmVsLCB1aW50MzJfdCBpbnRlcm5hbEZvcm1hdCwgdWludDMyX3QgZm9y
bWF0LCB1aW50MzJfdCB0eXBlLCBib29sIHByZW11bHRpcGx5QWxwaGEsIGJvb2wgZmxpcFksIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOworI2VuZGlmCiAgICAgdm9pZCBzaW11bGF0
ZUV2ZW50Rm9yVGVzdGluZyhXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTDo6U2ltdWxhdGVkRXZl
bnRGb3JUZXN0aW5nKTsKIAogI2luY2x1ZGUgIlJlbW90ZUdyYXBoaWNzQ29udGV4dEdMRnVuY3Rp
b25zR2VuZXJhdGVkLmgiIC8vIE5PTElOVApAQCAtMTMxLDYgKzEzMyw3IEBAIHByaXZhdGU6CiBw
cm90ZWN0ZWQ6CiAgICAgV2Vha1B0cjxHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzPiBtX2dwdUNv
bm5lY3Rpb25Ub1dlYlByb2Nlc3M7CiAgICAgUmVmUHRyPElQQzo6U3RyZWFtU2VydmVyQ29ubmVj
dGlvbj4gbV9zdHJlYW1Db25uZWN0aW9uOworICAgIHN0YXRpYyBjb25zdGV4cHIgU2Vjb25kcyBk
ZWZhdWx0VGltZW91dCA9IDEwX3M7CiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgdXNpbmcgR0NH
TENvbnRleHQgPSBXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTENvY29hOwogI2Vsc2UKQEAgLTE0
MCw3ICsxNDMsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgUmVmUHRyPEdDR0xDb250ZXh0PiBtX2NvbnRl
eHQgV1RGX0dVQVJERURfQllfTE9DSyhtX3N0cmVhbVRocmVhZCk7CiAgICAgR3JhcGhpY3NDb250
ZXh0R0xJZGVudGlmaWVyIG1fZ3JhcGhpY3NDb250ZXh0R0xJZGVudGlmaWVyOwogICAgIFJlZjxS
ZW1vdGVSZW5kZXJpbmdCYWNrZW5kPiBtX3JlbmRlcmluZ0JhY2tlbmQ7Ci0jaWYgRU5BQkxFKE1F
RElBX1NUUkVBTSkKKyNpZiBFTkFCTEUoVklERU8pCiAgICAgUmVmPFJlbW90ZVZpZGVvRnJhbWVP
YmplY3RIZWFwPiBtX3ZpZGVvRnJhbWVPYmplY3RIZWFwOwogI2VuZGlmCiAgICAgU2NvcGVkV2Vi
R0xSZW5kZXJpbmdSZXNvdXJjZXNSZXF1ZXN0IG1fcmVuZGVyaW5nUmVzb3VyY2VzUmVxdWVzdDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFw
aGljc0NvbnRleHRHTC5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFw
aGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTC5tZXNzYWdlcy5pbgppbmRleCA3OWNjNmE0Yzcx
YzBmOTUwM2I0YzViZmE0M2ZjMzA5MDdhZDhiNTBmLi5kMjc2NTg1YTIyY2RiZDM3ZTU5MGRmNmQ4
MzAyM2I3YTM0ZDBjNDdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3Jh
cGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0wubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMLm1lc3NhZ2Vz
LmluCkBAIC00MSw3ICs0MSw5IEBAIG1lc3NhZ2VzIC0+IFJlbW90ZUdyYXBoaWNzQ29udGV4dEdM
IE5vdFJlZkNvdW50ZWQgU3RyZWFtIHsKICAgICB2b2lkIEdldEVycm9yKCkgLT4gKHVpbnQzMl90
IHJldHVyblZhbHVlKSBTeW5jaHJvbm91cwogICAgIHZvaWQgUGFpbnRSZW5kZXJpbmdSZXN1bHRz
VG9DYW52YXMoV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIGltYWdlQnVmZmVy
KSAtPiAoKSBTeW5jaHJvbm91cwogICAgIHZvaWQgUGFpbnRDb21wb3NpdGVkUmVzdWx0c1RvQ2Fu
dmFzKFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciBpbWFnZUJ1ZmZlcikgLT4g
KCkgU3luY2hyb25vdXMKLSAgICB2b2lkIENvcHlUZXh0dXJlRnJvbU1lZGlhKFdlYkNvcmU6Ok1l
ZGlhUGxheWVySWRlbnRpZmllciBpZGVudGlmaWVyLCB1aW50MzJfdCB0ZXh0dXJlLCB1aW50MzJf
dCB0YXJnZXQsIGludDMyX3QgbGV2ZWwsIHVpbnQzMl90IGludGVybmFsRm9ybWF0LCB1aW50MzJf
dCBmb3JtYXQsIHVpbnQzMl90IHR5cGUsIGJvb2wgcHJlbXVsdGlwbHlBbHBoYSwgYm9vbCBmbGlw
WSkgLT4gKGJvb2wgc3VjY2VzcykgU3luY2hyb25vdXMKKyNpZiBFTkFCTEUoVklERU8pCisgICAg
dm9pZCBDb3B5VGV4dHVyZUZyb21WaWRlb0ZyYW1lKFdlYktpdDo6UmVtb3RlVmlkZW9GcmFtZVJl
YWRSZWZlcmVuY2UgdmlkZW9GcmFtZSwgdWludDMyX3QgdGV4dHVyZSwgdWludDMyX3QgdGFyZ2V0
LCBpbnQzMl90IGxldmVsLCB1aW50MzJfdCBpbnRlcm5hbEZvcm1hdCwgdWludDMyX3QgZm9ybWF0
LCB1aW50MzJfdCB0eXBlLCBib29sIHByZW11bHRpcGx5QWxwaGEsIGJvb2wgZmxpcFkpIC0+IChi
b29sIHN1Y2Nlc3MpIFN5bmNocm9ub3VzCisjZW5kaWYKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFN
KQogICAgIHZvaWQgUGFpbnRDb21wb3NpdGVkUmVzdWx0c1RvTWVkaWFTYW1wbGUoKSAtPiAoc3Rk
OjpvcHRpb25hbDxXZWJLaXQ6OlJlbW90ZVZpZGVvRnJhbWVQcm94eTo6UHJvcGVydGllcz4gcHJv
cGVydGllcykgU3luY2hyb25vdXMKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMQ29jb2EuY3BwIGIvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMQ29j
b2EuY3BwCmluZGV4IDZjOTA2MWI1ZTJlZmU1YjJmY2RjMGY4NTAxOGZjYzFiOTY0N2VlMDYuLjc5
ZGY5OWNlMjljMzNhMGI0ZmE0NzAwMjU0NzA0ZjhlMDNlMWFjNzEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTENvY29h
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhp
Y3NDb250ZXh0R0xDb2NvYS5jcHAKQEAgLTI5LDExICsyOSw1NSBAQAogI2lmIEVOQUJMRShHUFVf
UFJPQ0VTUykgJiYgRU5BQkxFKFdFQkdMKSAmJiBQTEFURk9STShDT0NPQSkKIAogI2luY2x1ZGUg
IkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCIKKyNpbmNsdWRlICJJUENUZXN0ZXIuaCIKICNp
bmNsdWRlIDxXZWJDb3JlL1Byb2Nlc3NJZGVudGl0eS5oPgogI2luY2x1ZGUgPHd0Zi9NYWNoU2Vu
ZFJpZ2h0Lmg+CiAKKworI2lmIEVOQUJMRShWSURFTykKKyNpbmNsdWRlICJSZW1vdGVWaWRlb0Zy
YW1lT2JqZWN0SGVhcC5oIgorI2luY2x1ZGUgPFdlYkNvcmUvR3JhcGhpY3NDb250ZXh0R0xDVi5o
PgorI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFTYW1wbGVBVkZPYmpDLmg+CisjaW5jbHVkZSA8V2Vi
Q29yZS9WaWRlb0ZyYW1lQ1YuaD4KKyNlbmRpZgorCiBuYW1lc3BhY2UgV2ViS2l0IHsKLXVzaW5n
IG5hbWVzcGFjZSBXZWJDb3JlOworCisjaWYgRU5BQkxFKFZJREVPKQordm9pZCBSZW1vdGVHcmFw
aGljc0NvbnRleHRHTDo6Y29weVRleHR1cmVGcm9tVmlkZW9GcmFtZShXZWJLaXQ6OlJlbW90ZVZp
ZGVvRnJhbWVSZWFkUmVmZXJlbmNlIHJlYWQsIHVpbnQzMl90IHRleHR1cmUsIHVpbnQzMl90IHRh
cmdldCwgaW50MzJfdCBsZXZlbCwgdWludDMyX3QgaW50ZXJuYWxGb3JtYXQsIHVpbnQzMl90IGZv
cm1hdCwgdWludDMyX3QgdHlwZSwgYm9vbCBwcmVtdWx0aXBseUFscGhhLCBib29sIGZsaXBZLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAg
IGFzc2VydElzQ3VycmVudChtX3N0cmVhbVRocmVhZCk7CisgICAgVU5VU0VEX1ZBUklBQkxFKHBy
ZW11bHRpcGx5QWxwaGEpOworICAgIEFTU0VSVF9VTlVTRUQodGFyZ2V0LCB0YXJnZXQgPT0gV2Vi
Q29yZTo6R3JhcGhpY3NDb250ZXh0R0w6OlRFWFRVUkVfMkQpOworCisgICAgYXV0byB2aWRlb0Zy
YW1lID0gbV92aWRlb0ZyYW1lT2JqZWN0SGVhcC0+cmV0aXJlKFdURk1vdmUocmVhZCksIGRlZmF1
bHRUaW1lb3V0KTsKKyAgICBpZiAoIXZpZGVvRnJhbWUpIHsKKyAgICAgICAgQVNTRVJUX0lTX1RF
U1RJTkdfSVBDKCk7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGZhbHNlKTsKKyAgICAgICAg
cmV0dXJuOworICAgIH0KKyAgICAvLyBOb3RlOiBUaGlzIGV4dHJhIGNhc3RpbmcgaXMgbmVlZGVk
IHNpbmNlIFZpZGVvRnJhbWVzIGFyZSBzdGlsbCBNZWRpYVNhbXBsZXMuCisgICAgUmVmUHRyPFdl
YkNvcmU6OlZpZGVvRnJhbWVDVj4gdmlkZW9GcmFtZUNWOworICAgIGlmIChpczxXZWJDb3JlOjpW
aWRlb0ZyYW1lQ1Y+KCp2aWRlb0ZyYW1lKSkKKyAgICAgICAgdmlkZW9GcmFtZUNWID0gJmRvd25j
YXN0PFdlYkNvcmU6OlZpZGVvRnJhbWVDVj4oKnZpZGVvRnJhbWUpOworICAgIGVsc2UgaWYgKGlz
PFdlYkNvcmU6Ok1lZGlhU2FtcGxlQVZGT2JqQz4oKnZpZGVvRnJhbWUpKQorICAgICAgICB2aWRl
b0ZyYW1lQ1YgPSBkb3duY2FzdDxXZWJDb3JlOjpNZWRpYVNhbXBsZUFWRk9iakM+KCp2aWRlb0Zy
YW1lKS52aWRlb0ZyYW1lKCk7CisgICAgZWxzZSB7CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOyAvLyBQcm9ncmFtbWluZyBlcnJvciwgbm90IGEgSVBDIGF0dGFjay4KKyAgICAgICAgY29t
cGxldGlvbkhhbmRsZXIoZmFsc2UpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgYXV0
byBjb250ZXh0Q1YgPSBtX2NvbnRleHQtPmFzQ1YoKTsKKyAgICBpZiAoIWNvbnRleHRDVikgewor
ICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIo
ZmFsc2UpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgY29tcGxldGlvbkhhbmRsZXIo
Y29udGV4dENWLT5jb3B5VmlkZW9TYW1wbGVUb1RleHR1cmUoKnZpZGVvRnJhbWVDViwgdGV4dHVy
ZSwgbGV2ZWwsIGludGVybmFsRm9ybWF0LCBmb3JtYXQsIHR5cGUsIFdlYkNvcmU6OkdyYXBoaWNz
Q29udGV4dEdMOjpGbGlwWShmbGlwWSkpKTsKK30KKyNlbmRpZgogCiBuYW1lc3BhY2UgewogCkBA
IC00NiwxMiArOTAsMTIgQEAgcHVibGljOgogICAgIHZvaWQgcGxhdGZvcm1Xb3JrUXVldWVJbml0
aWFsaXplKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyYmKSBmaW5hbDsKICAg
ICB2b2lkIHByZXBhcmVGb3JEaXNwbGF5KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV1RGOjpNYWNo
U2VuZFJpZ2h0JiYpPiYmKSBmaW5hbDsKIHByaXZhdGU6Ci0gICAgY29uc3QgUHJvY2Vzc0lkZW50
aXR5IG1fcmVzb3VyY2VPd25lcjsKKyAgICBjb25zdCBXZWJDb3JlOjpQcm9jZXNzSWRlbnRpdHkg
bV9yZXNvdXJjZU93bmVyOwogfTsKIAogfQogCi1SZWY8UmVtb3RlR3JhcGhpY3NDb250ZXh0R0w+
IFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMOjpjcmVhdGUoR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vz
cyYgZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2VzcywgR3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVz
JiYgYXR0cmlidXRlcywgR3JhcGhpY3NDb250ZXh0R0xJZGVudGlmaWVyIGdyYXBoaWNzQ29udGV4
dEdMSWRlbnRpZmllciwgUmVtb3RlUmVuZGVyaW5nQmFja2VuZCYgcmVuZGVyaW5nQmFja2VuZCwg
SVBDOjpTdHJlYW1Db25uZWN0aW9uQnVmZmVyJiYgc3RyZWFtKQorUmVmPFJlbW90ZUdyYXBoaWNz
Q29udGV4dEdMPiBSZW1vdGVHcmFwaGljc0NvbnRleHRHTDo6Y3JlYXRlKEdQVUNvbm5lY3Rpb25U
b1dlYlByb2Nlc3MmIGdwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MsIFdlYkNvcmU6OkdyYXBoaWNz
Q29udGV4dEdMQXR0cmlidXRlcyYmIGF0dHJpYnV0ZXMsIEdyYXBoaWNzQ29udGV4dEdMSWRlbnRp
ZmllciBncmFwaGljc0NvbnRleHRHTElkZW50aWZpZXIsIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQm
IHJlbmRlcmluZ0JhY2tlbmQsIElQQzo6U3RyZWFtQ29ubmVjdGlvbkJ1ZmZlciYmIHN0cmVhbSkK
IHsKICAgICBhdXRvIGluc3RhbmNlID0gYWRvcHRSZWYoKm5ldyBSZW1vdGVHcmFwaGljc0NvbnRl
eHRHTENvY29hKGdwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MsIGdyYXBoaWNzQ29udGV4dEdMSWRl
bnRpZmllciwgcmVuZGVyaW5nQmFja2VuZCwgV1RGTW92ZShzdHJlYW0pKSk7CiAgICAgaW5zdGFu
Y2UtPmluaXRpYWxpemUoV1RGTW92ZShhdHRyaWJ1dGVzKSk7CkBAIC02MiwxMyArMTA2LDEyIEBA
IFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMQ29jb2E6OlJlbW90ZUdyYXBoaWNzQ29udGV4dEdMQ29j
b2EoR1BVQ29ubmVjdGlvblRvV2ViUHJvCiAgICAgOiBSZW1vdGVHcmFwaGljc0NvbnRleHRHTChn
cHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLCBncmFwaGljc0NvbnRleHRHTElkZW50aWZpZXIsIHJl
bmRlcmluZ0JhY2tlbmQsIFdURk1vdmUoc3RyZWFtKSkKICAgICAsIG1fcmVzb3VyY2VPd25lcihn
cHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLndlYlByb2Nlc3NJZGVudGl0eSgpKQogewotCiB9CiAK
IHZvaWQgUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xDb2NvYTo6cGxhdGZvcm1Xb3JrUXVldWVJbml0
aWFsaXplKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyYmIGF0dHJpYnV0ZXMp
CiB7CiAgICAgYXNzZXJ0SXNDdXJyZW50KG1fc3RyZWFtVGhyZWFkKTsKLSAgICBtX2NvbnRleHQg
PSBHcmFwaGljc0NvbnRleHRHTENvY29hOjpjcmVhdGUoV1RGTW92ZShhdHRyaWJ1dGVzKSwgUHJv
Y2Vzc0lkZW50aXR5IHsgbV9yZXNvdXJjZU93bmVyIH0pOworICAgIG1fY29udGV4dCA9IFdlYkNv
cmU6OkdyYXBoaWNzQ29udGV4dEdMQ29jb2E6OmNyZWF0ZShXVEZNb3ZlKGF0dHJpYnV0ZXMpLCBX
ZWJDb3JlOjpQcm9jZXNzSWRlbnRpdHkgeyBtX3Jlc291cmNlT3duZXIgfSk7CiB9CiAKIHZvaWQg
UmVtb3RlR3JhcGhpY3NDb250ZXh0R0xDb2NvYTo6cHJlcGFyZUZvckRpc3BsYXkoQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChXVEY6Ok1hY2hTZW5kUmlnaHQmJik+JiYgY29tcGxldGlvbkhhbmRsZXIp
CkBAIC03Niw3ICsxMTksNyBAQCB2b2lkIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMQ29jb2E6OnBy
ZXBhcmVGb3JEaXNwbGF5KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV1RGOgogICAgIGFzc2VydElz
Q3VycmVudChtX3N0cmVhbVRocmVhZCk7CiAgICAgbV9jb250ZXh0LT5wcmVwYXJlRm9yRGlzcGxh
eSgpOwogICAgIE1hY2hTZW5kUmlnaHQgc2VuZFJpZ2h0OwotICAgIElPU3VyZmFjZSogZGlzcGxh
eUJ1ZmZlciA9IG1fY29udGV4dC0+ZGlzcGxheUJ1ZmZlcigpOworICAgIFdlYkNvcmU6OklPU3Vy
ZmFjZSogZGlzcGxheUJ1ZmZlciA9IG1fY29udGV4dC0+ZGlzcGxheUJ1ZmZlcigpOwogICAgIGlm
IChkaXNwbGF5QnVmZmVyKSB7CiAgICAgICAgIG1fY29udGV4dC0+bWFya0Rpc3BsYXlCdWZmZXJJ
blVzZSgpOwogICAgICAgICBzZW5kUmlnaHQgPSBkaXNwbGF5QnVmZmVyLT5jcmVhdGVTZW5kUmln
aHQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVN
ZWRpYVBsYXllck1hbmFnZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVk
aWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkuY3BwCmluZGV4IDlhMDc4N2Q2Nzk5YmFj
MGY4MTAyNzc1MmI0YTVjYThjOGNlMjAyYTAuLjFhMzFmMGQ1NGJiNWRiNzBmMDRmYjk4MGE2MGEy
ZDlhNjU0MDQ4M2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9S
ZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5LmNwcApAQCAtNjcsNyAr
NjcsNyBAQCB2b2lkIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5OjpjcmVhdGVNZWRpYVBs
YXllcihNZWRpYVBsYXllcklkZW50aWZpZXIgaWRlbgogICAgIEFTU0VSVChtX2dwdUNvbm5lY3Rp
b25Ub1dlYlByb2Nlc3MpOwogICAgIEFTU0VSVCghbV9wcm94aWVzLmNvbnRhaW5zKGlkZW50aWZp
ZXIpKTsKIAotICAgIGF1dG8gcHJveHkgPSBtYWtlVW5pcXVlPFJlbW90ZU1lZGlhUGxheWVyUHJv
eHk+KCp0aGlzLCBpZGVudGlmaWVyLCBtX2dwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MtPmNvbm5l
Y3Rpb24oKSwgZW5naW5lSWRlbnRpZmllciwgV1RGTW92ZShwcm94eUNvbmZpZ3VyYXRpb24pKTsK
KyAgICBhdXRvIHByb3h5ID0gbWFrZVVuaXF1ZTxSZW1vdGVNZWRpYVBsYXllclByb3h5PigqdGhp
cywgaWRlbnRpZmllciwgbV9ncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLT5jb25uZWN0aW9uKCks
IGVuZ2luZUlkZW50aWZpZXIsIFdURk1vdmUocHJveHlDb25maWd1cmF0aW9uKSwgbV9ncHVDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzLT52aWRlb0ZyYW1lT2JqZWN0SGVhcCgpKTsKICAgICBtX3Byb3hp
ZXMuYWRkKGlkZW50aWZpZXIsIFdURk1vdmUocHJveHkpKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuY3BwIGIv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuY3Bw
CmluZGV4IGNkMmM1MWJiZDMyZTI4YzJmZTQzNDZlOWYyNjM1MDE4OWVlYTY2M2IuLjBlZjgzNDJk
ZDI2OGVlNjhjMzA0NzYyZGEwNThiYTRmYmNiYzZlM2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5jcHAKQEAg
LTQ0LDYgKzQ0LDggQEAKICNpbmNsdWRlICJSZW1vdGVNZWRpYVJlc291cmNlTG9hZGVyLmgiCiAj
aW5jbHVkZSAiUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIuaCIKICNpbmNsdWRlICJSZW1vdGVU
ZXh0VHJhY2tQcm94eS5oIgorI2luY2x1ZGUgIlJlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwLmgi
CisjaW5jbHVkZSAiUmVtb3RlVmlkZW9GcmFtZVByb3h5LmgiCiAjaW5jbHVkZSAiUmVtb3RlVmlk
ZW9UcmFja1Byb3h5LmgiCiAjaW5jbHVkZSAiVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3Vy
YXRpb24uaCIKICNpbmNsdWRlICJUcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uLmgiCkBA
IC03NCw3ICs3Niw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiB1c2luZyBuYW1lc3BhY2UgV2Vi
Q29yZTsKIAotUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6UmVtb3RlTWVkaWFQbGF5ZXJQcm94eShS
ZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eSYgbWFuYWdlciwgTWVkaWFQbGF5ZXJJZGVudGlm
aWVyIGlkZW50aWZpZXIsIFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYgY29ubmVjdGlvbiwgTWVkaWFQ
bGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVyIGVuZ2luZUlkZW50aWZpZXIsIFJlbW90
ZU1lZGlhUGxheWVyUHJveHlDb25maWd1cmF0aW9uJiYgY29uZmlndXJhdGlvbikKK1JlbW90ZU1l
ZGlhUGxheWVyUHJveHk6OlJlbW90ZU1lZGlhUGxheWVyUHJveHkoUmVtb3RlTWVkaWFQbGF5ZXJN
YW5hZ2VyUHJveHkmIG1hbmFnZXIsIE1lZGlhUGxheWVySWRlbnRpZmllciBpZGVudGlmaWVyLCBS
ZWY8SVBDOjpDb25uZWN0aW9uPiYmIGNvbm5lY3Rpb24sIE1lZGlhUGxheWVyRW51bXM6Ok1lZGlh
RW5naW5lSWRlbnRpZmllciBlbmdpbmVJZGVudGlmaWVyLCBSZW1vdGVNZWRpYVBsYXllclByb3h5
Q29uZmlndXJhdGlvbiYmIGNvbmZpZ3VyYXRpb24sIFJlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFw
JiB2aWRlb0ZyYW1lT2JqZWN0SGVhcCkKICAgICA6IG1faWQoaWRlbnRpZmllcikKICAgICAsIG1f
d2ViUHJvY2Vzc0Nvbm5lY3Rpb24oV1RGTW92ZShjb25uZWN0aW9uKSkKICAgICAsIG1fbWFuYWdl
cihtYW5hZ2VyKQpAQCAtODIsNiArODQsNyBAQCBSZW1vdGVNZWRpYVBsYXllclByb3h5OjpSZW1v
dGVNZWRpYVBsYXllclByb3h5KFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5JiBtYQogICAg
ICwgbV91cGRhdGVDYWNoZWRTdGF0ZU1lc3NhZ2VUaW1lcihSdW5Mb29wOjptYWluKCksIHRoaXMs
ICZSZW1vdGVNZWRpYVBsYXllclByb3h5Ojp0aW1lckZpcmVkKQogICAgICwgbV9jb25maWd1cmF0
aW9uKGNvbmZpZ3VyYXRpb24pCiAgICAgLCBtX3JlbmRlcmluZ1Jlc291cmNlc1JlcXVlc3QoU2Nv
cGVkUmVuZGVyaW5nUmVzb3VyY2VzUmVxdWVzdDo6YWNxdWlyZSgpKQorICAgICwgbV92aWRlb0Zy
YW1lT2JqZWN0SGVhcCh2aWRlb0ZyYW1lT2JqZWN0SGVhcCkKICNpZiAhUkVMRUFTRV9MT0dfRElT
QUJMRUQKICAgICAsIG1fbG9nZ2VyKG1hbmFnZXIubG9nZ2VyKCkpCiAjZW5kaWYKQEAgLTg2OCwx
MSArODcxLDkgQEAgdm9pZCBSZW1vdGVNZWRpYVBsYXllclByb3h5OjpjdXJyZW50VGltZUNoYW5n
ZWQoY29uc3QgTWVkaWFUaW1lJiBtZWRpYVRpbWUpCiAgICAgbV93ZWJQcm9jZXNzQ29ubmVjdGlv
bi0+c2VuZChNZXNzYWdlczo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpDdXJyZW50VGltZUNo
YW5nZWQobWVkaWFUaW1lLCBNb25vdG9uaWNUaW1lOjpub3coKSwgIW1lZGlhUGxheWVyUGF1c2Vk
T3JTdGFsbGVkKCkpLCBtX2lkKTsKIH0KIAotLy8gRklYTUU6IFRoaXMgd2lsbCBiZSB0dXJuZWQg
aW50byBjcm9zcy1wbGF0Zm9ybSBjb2RlIHNvb24uCi0jaWYgUExBVEZPUk0oQ09DT0EpCi12b2lk
IFJlbW90ZU1lZGlhUGxheWVyUHJveHk6OnZpZGVvRnJhbWVGb3JDdXJyZW50VGltZUlmQ2hhbmdl
ZChDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8UmVmUHRyPFdlYkNvcmU6OlZp
ZGVvRnJhbWVDVj4+JiYsIGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBSZW1vdGVN
ZWRpYVBsYXllclByb3h5Ojp2aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWVJZkNoYW5nZWQoQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChzdGQ6Om9wdGlvbmFsPFJlbW90ZVZpZGVvRnJhbWVQcm94eTo6UHJv
cGVydGllcz4mJiwgYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7Ci0gICAgc3RkOjpvcHRp
b25hbDxSZWZQdHI8V2ViQ29yZTo6VmlkZW9GcmFtZUNWPj4gcmVzdWx0OworICAgIHN0ZDo6b3B0
aW9uYWw8UmVtb3RlVmlkZW9GcmFtZVByb3h5OjpQcm9wZXJ0aWVzPiByZXN1bHQ7CiAgICAgYm9v
bCBjaGFuZ2VkID0gZmFsc2U7CiAgICAgUmVmUHRyPFdlYkNvcmU6OlZpZGVvRnJhbWU+IHZpZGVv
RnJhbWU7CiAgICAgaWYgKG1fcGxheWVyKQpAQCAtODgwLDE2ICs4ODEsMTUgQEAgdm9pZCBSZW1v
dGVNZWRpYVBsYXllclByb3h5Ojp2aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWVJZkNoYW5nZWQoQ29t
cGxldGlvbkhhbmRsZXIKICAgICBpZiAobV92aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWUgIT0gdmlk
ZW9GcmFtZSkgewogICAgICAgICBtX3ZpZGVvRnJhbWVGb3JDdXJyZW50VGltZSA9IHZpZGVvRnJh
bWU7CiAgICAgICAgIGNoYW5nZWQgPSB0cnVlOwotICAgICAgICBSZWZQdHI8VmlkZW9GcmFtZUNW
PiB2aWRlb0ZyYW1lQ1Y7CiAgICAgICAgIGlmICh2aWRlb0ZyYW1lKSB7Ci0gICAgICAgICAgICBB
U1NFUlQoaXM8VmlkZW9GcmFtZUNWPigqdmlkZW9GcmFtZSkpOwotICAgICAgICAgICAgdmlkZW9G
cmFtZUNWID0gJmRvd25jYXN0PFZpZGVvRnJhbWVDVj4oKnZpZGVvRnJhbWUpOworICAgICAgICAg
ICAgYXV0byB3cml0ZSA9IFJlbW90ZVZpZGVvRnJhbWVXcml0ZVJlZmVyZW5jZTo6Z2VuZXJhdGVG
b3JBZGQoKTsKKyAgICAgICAgICAgIGF1dG8gbmV3RnJhbWVSZWZlcmVuY2UgPSB3cml0ZS5yZXRp
cmVkUmVmZXJlbmNlKCk7CisgICAgICAgICAgICByZXN1bHQgPSBSZW1vdGVWaWRlb0ZyYW1lUHJv
eHk6OnByb3BlcnRpZXMoV1RGTW92ZShuZXdGcmFtZVJlZmVyZW5jZSksICp2aWRlb0ZyYW1lKTsK
KyAgICAgICAgICAgIG1fdmlkZW9GcmFtZU9iamVjdEhlYXAtPnJldGlyZShXVEZNb3ZlKHdyaXRl
KSwgV1RGTW92ZSh2aWRlb0ZyYW1lKSwgc3RkOjpudWxsb3B0KTsKICAgICAgICAgfQotICAgICAg
ICByZXN1bHQgPSBXVEZNb3ZlKHZpZGVvRnJhbWVDVik7CiAgICAgfQogICAgIGNvbXBsZXRpb25I
YW5kbGVyKFdURk1vdmUocmVzdWx0KSwgY2hhbmdlZCk7CiB9Ci0jZW5kaWYKIAogdm9pZCBSZW1v
dGVNZWRpYVBsYXllclByb3h5Ojp1cGRhdGVDYWNoZWRTdGF0ZShib29sIGZvcmNlQ3VycmVudFRp
bWVVcGRhdGUpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEv
UmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlh
L1JlbW90ZU1lZGlhUGxheWVyUHJveHkuaAppbmRleCBhYzExOGY2NzgyY2E2ODY3MzhmMjU1Nzc1
ODM4MDQ5MDM5MTUyODAzLi5mMjg2YmQ2NGQ3NDliNzU1MmNlMmUyZjc3ODM4YWNiY2IyYmEwOTcx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQ
bGF5ZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVN
ZWRpYVBsYXllclByb3h5LmgKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlICJSZW1vdGVNZWRp
YVBsYXllclByb3h5Q29uZmlndXJhdGlvbi5oIgogI2luY2x1ZGUgIlJlbW90ZU1lZGlhUGxheWVy
U3RhdGUuaCIKICNpbmNsdWRlICJSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllci5oIgorI2lu
Y2x1ZGUgIlJlbW90ZVZpZGVvRnJhbWVQcm94eS5oIgogI2luY2x1ZGUgIlNhbmRib3hFeHRlbnNp
b24uaCIKICNpbmNsdWRlICJTY29wZWRSZW5kZXJpbmdSZXNvdXJjZXNSZXF1ZXN0LmgiCiAjaW5j
bHVkZSAiVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllci5oIgpAQCAtOTgsNiArOTksNyBAQCBj
bGFzcyBSZW1vdGVBdWRpb1RyYWNrUHJveHk7CiBjbGFzcyBSZW1vdGVBdWRpb1NvdXJjZVByb3Zp
ZGVyUHJveHk7CiBjbGFzcyBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eTsKIGNsYXNzIFJl
bW90ZVRleHRUcmFja1Byb3h5OworY2xhc3MgUmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXA7CiBj
bGFzcyBSZW1vdGVWaWRlb1RyYWNrUHJveHk7CiAKIGNsYXNzIFJlbW90ZU1lZGlhUGxheWVyUHJv
eHkgZmluYWwKQEAgLTEwNSw3ICsxMDcsNyBAQCBjbGFzcyBSZW1vdGVNZWRpYVBsYXllclByb3h5
IGZpbmFsCiAgICAgLCBwdWJsaWMgSVBDOjpNZXNzYWdlUmVjZWl2ZXIgewogICAgIFdURl9NQUtF
X0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIFJlbW90ZU1lZGlhUGxheWVyUHJveHkoUmVt
b3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkmLCBXZWJDb3JlOjpNZWRpYVBsYXllcklkZW50aWZp
ZXIsIFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYsIFdlYkNvcmU6Ok1lZGlhUGxheWVyRW51bXM6Ok1l
ZGlhRW5naW5lSWRlbnRpZmllciwgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eUNvbmZpZ3VyYXRpb24m
Jik7CisgICAgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eShSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQ
cm94eSYsIFdlYkNvcmU6Ok1lZGlhUGxheWVySWRlbnRpZmllciwgUmVmPElQQzo6Q29ubmVjdGlv
bj4mJiwgV2ViQ29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVyLCBS
ZW1vdGVNZWRpYVBsYXllclByb3h5Q29uZmlndXJhdGlvbiYmLCBSZW1vdGVWaWRlb0ZyYW1lT2Jq
ZWN0SGVhcCYpOwogICAgIH5SZW1vdGVNZWRpYVBsYXllclByb3h5KCk7CiAKICAgICBXZWJDb3Jl
OjpNZWRpYVBsYXllcklkZW50aWZpZXIgaWRlbmRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1faWQ7
IH0KQEAgLTMzMyw4ICszMzUsOCBAQCBwcml2YXRlOgogI2lmIFBMQVRGT1JNKENPQ09BKQogICAg
IHZvaWQgbmF0aXZlSW1hZ2VGb3JDdXJyZW50VGltZShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0
ZDo6b3B0aW9uYWw8V1RGOjpNYWNoU2VuZFJpZ2h0PiYmLCBXZWJDb3JlOjpEZXN0aW5hdGlvbkNv
bG9yU3BhY2UpPiYmKTsKICAgICB2b2lkIGNvbG9yU3BhY2UoQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChXZWJDb3JlOjpEZXN0aW5hdGlvbkNvbG9yU3BhY2UpPiYmKTsKLSAgICB2b2lkIHZpZGVvRnJh
bWVGb3JDdXJyZW50VGltZUlmQ2hhbmdlZChDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0
aW9uYWw8UmVmUHRyPFdlYkNvcmU6OlZpZGVvRnJhbWVDVj4+JiYsIGJvb2wpPiYmKTsKICNlbmRp
ZgorICAgIHZvaWQgdmlkZW9GcmFtZUZvckN1cnJlbnRUaW1lSWZDaGFuZ2VkKENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoc3RkOjpvcHRpb25hbDxSZW1vdGVWaWRlb0ZyYW1lUHJveHk6OlByb3BlcnRp
ZXM+JiYsIGJvb2wpPiYmKTsKIAogI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAogICAgIGNvbnN0
IExvZ2dlciYgbWVkaWFQbGF5ZXJMb2dnZXIoKSBmaW5hbCB7IHJldHVybiBtX2xvZ2dlcjsgfQpA
QCAtMzkwLDYgKzM5Miw3IEBAIHByaXZhdGU6CiAgICAgU2NvcGVkUmVuZGVyaW5nUmVzb3VyY2Vz
UmVxdWVzdCBtX3JlbmRlcmluZ1Jlc291cmNlc1JlcXVlc3Q7CiAKICAgICBib29sIG1fb2JzZXJ2
aW5nVGltZUNoYW5nZXMgeyBmYWxzZSB9OworICAgIFJlZjxSZW1vdGVWaWRlb0ZyYW1lT2JqZWN0
SGVhcD4gbV92aWRlb0ZyYW1lT2JqZWN0SGVhcDsKICAgICBSZWZQdHI8V2ViQ29yZTo6VmlkZW9G
cmFtZT4gbV92aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWU7CiAjaWYgIVJFTEVBU0VfTE9HX0RJU0FC
TEVECiAgICAgY29uc3QgTG9nZ2VyJiBtX2xvZ2dlcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5Lm1lc3NhZ2VzLmluIGIv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkubWVz
c2FnZXMuaW4KaW5kZXggY2MxMzdhZGU1MTliYzZkNDcwNzU2Y2Y1NzAxZDA0NjZlMTVkZDc3ZC4u
ZGE3MWRlNWUxZmNlZDhiZDk5MDk2YWFjOTVlZmNlMzIzN2NmNTgxYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkubWVzc2Fn
ZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxh
eWVyUHJveHkubWVzc2FnZXMuaW4KQEAgLTEyNSw4ICsxMjUsOCBAQCBtZXNzYWdlcyAtPiBSZW1v
dGVNZWRpYVBsYXllclByb3h5IE5vdFJlZkNvdW50ZWQgewogI2lmIFBMQVRGT1JNKENPQ09BKQog
ICAgIE5hdGl2ZUltYWdlRm9yQ3VycmVudFRpbWUoKSAtPiAoc3RkOjpvcHRpb25hbDxNYWNoU2Vu
ZFJpZ2h0PiBzZW5kUmlnaHQsIFdlYkNvcmU6OkRlc3RpbmF0aW9uQ29sb3JTcGFjZSBjb2xvclNw
YWNlKSBTeW5jaHJvbm91cwogICAgIENvbG9yU3BhY2UoKSAtPiAoV2ViQ29yZTo6RGVzdGluYXRp
b25Db2xvclNwYWNlIGNvbG9yU3BhY2UpIFN5bmNocm9ub3VzCi0gICAgVmlkZW9GcmFtZUZvckN1
cnJlbnRUaW1lSWZDaGFuZ2VkKCkgLT4gKHN0ZDo6b3B0aW9uYWw8UmVmUHRyPFdlYkNvcmU6OlZp
ZGVvRnJhbWVDVj4+IHZpZGVvRnJhbWUsIGJvb2wgY2hhbmdlZCkgU3luY2hyb25vdXMKICNlbmRp
ZgorICAgIFZpZGVvRnJhbWVGb3JDdXJyZW50VGltZUlmQ2hhbmdlZCgpIC0+IChzdGQ6Om9wdGlv
bmFsPFdlYktpdDo6UmVtb3RlVmlkZW9GcmFtZVByb3h5OjpQcm9wZXJ0aWVzPiB2aWRlb0ZyYW1l
LCBib29sIGNoYW5nZWQpIFN5bmNocm9ub3VzCiAKICAgICBQbGF5QXRIb3N0VGltZShNb25vdG9u
aWNUaW1lIHRpbWUpCiAgICAgUGF1c2VBdEhvc3RUaW1lKE1vbm90b25pY1RpbWUgdGltZSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlR3Jh
cGhpY3NDb250ZXh0R0xQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dy
YXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHkuY3BwCmluZGV4IGM4OTZhYjdmZGJi
NmYyODhjZTNjNjI0MmU0ZWIwZGVmZmRjNDA1MTYuLmZhYzBiZWI2M2JkYWZjNjQ4ZTQzY2QxOTJm
MzNjOTJhODQxMjJhNDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUv
Z3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eS5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5
LmNwcApAQCAtMTgyLDEwICsxODIsMTUgQEAgUmVmUHRyPFdlYkNvcmU6Ok1lZGlhU2FtcGxlPiBS
ZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5OjpwYWludENvbXBvc2l0ZWRSZXN1bHQKIH0KICNl
bmRpZgogCisjaWYgRU5BQkxFKFZJREVPKQogYm9vbCBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFBy
b3h5Ojpjb3B5VGV4dHVyZUZyb21NZWRpYShNZWRpYVBsYXllciYgbWVkaWFQbGF5ZXIsIFBsYXRm
b3JtR0xPYmplY3QgdGV4dHVyZSwgR0NHTGVudW0gdGFyZ2V0LCBHQ0dMaW50IGxldmVsLCBHQ0dM
ZW51bSBpbnRlcm5hbEZvcm1hdCwgR0NHTGVudW0gZm9ybWF0LCBHQ0dMZW51bSB0eXBlLCBib29s
IHByZW11bHRpcGx5QWxwaGEsIGJvb2wgZmxpcFkpCiB7CisgICAgYXV0byB2aWRlb0ZyYW1lID0g
bWVkaWFQbGF5ZXIudmlkZW9GcmFtZUZvckN1cnJlbnRUaW1lKCk7CisgICAgLy8gVmlkZW8gaW4g
V1Agd2hpbGUgV2ViR0wgaW4gR1BVUCBpcyBub3Qgc3VwcG9ydGVkLgorICAgIGlmICghdmlkZW9G
cmFtZSB8fCAhaXM8UmVtb3RlVmlkZW9GcmFtZVByb3h5PigqdmlkZW9GcmFtZSkpCisgICAgICAg
IHJldHVybiBmYWxzZTsKICAgICBib29sIHJlc3VsdCA9IGZhbHNlOwotICAgIGF1dG8gc2VuZFJl
c3VsdCA9IHNlbmRTeW5jKE1lc3NhZ2VzOjpSZW1vdGVHcmFwaGljc0NvbnRleHRHTDo6Q29weVRl
eHR1cmVGcm9tTWVkaWEobWVkaWFQbGF5ZXIuaWRlbnRpZmllcigpLCB0ZXh0dXJlLCB0YXJnZXQs
IGxldmVsLCBpbnRlcm5hbEZvcm1hdCwgZm9ybWF0LCB0eXBlLCBwcmVtdWx0aXBseUFscGhhLCBm
bGlwWSksIE1lc3NhZ2VzOjpSZW1vdGVHcmFwaGljc0NvbnRleHRHTDo6Q29weVRleHR1cmVGcm9t
TWVkaWE6OlJlcGx5KHJlc3VsdCkpOworICAgIGF1dG8gc2VuZFJlc3VsdCA9IHNlbmRTeW5jKE1l
c3NhZ2VzOjpSZW1vdGVHcmFwaGljc0NvbnRleHRHTDo6Q29weVRleHR1cmVGcm9tVmlkZW9GcmFt
ZShkb3duY2FzdDxSZW1vdGVWaWRlb0ZyYW1lUHJveHk+KCp2aWRlb0ZyYW1lKS5yZWFkKCksIHRl
eHR1cmUsIHRhcmdldCwgbGV2ZWwsIGludGVybmFsRm9ybWF0LCBmb3JtYXQsIHR5cGUsIHByZW11
bHRpcGx5QWxwaGEsIGZsaXBZKSwgTWVzc2FnZXM6OlJlbW90ZUdyYXBoaWNzQ29udGV4dEdMOjpD
b3B5VGV4dHVyZUZyb21WaWRlb0ZyYW1lOjpSZXBseShyZXN1bHQpKTsKICAgICBpZiAoIXNlbmRS
ZXN1bHQpIHsKICAgICAgICAgbWFya0NvbnRleHRMb3N0KCk7CiAgICAgICAgIHJldHVybiBmYWxz
ZTsKQEAgLTE5Myw2ICsxOTgsNyBAQCBib29sIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHk6
OmNvcHlUZXh0dXJlRnJvbU1lZGlhKE1lZGlhUGxheWVyJiBtZWRpYVBsYXllcgogCiAgICAgcmV0
dXJuIHJlc3VsdDsKIH0KKyNlbmRpZgogCiB2b2lkIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJv
eHk6OnN5bnRoZXNpemVHTEVycm9yKEdDR0xlbnVtIGVycm9yKQogewpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRH
TFByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUdy
YXBoaWNzQ29udGV4dEdMUHJveHkuaAppbmRleCAzNDRmZTk4NWQ4MDNjZGIyN2NmMWU3MmFkZmI1
YjY5YWU2NzBmMDY3Li5mNzY1NDAzYTU2OTcwYTQ3YTFkM2Y2YzMxM2IwNWI3MDgwMThmMzQzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUdy
YXBoaWNzQ29udGV4dEdMUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BV
L2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHkuaApAQCAtNzMsNyArNzMsOSBA
QCBwdWJsaWM6CiAjZW5kaWYKICAgICB2b2lkIHN5bnRoZXNpemVHTEVycm9yKEdDR0xlbnVtIGVy
cm9yKSBmaW5hbDsKICAgICBHQ0dMZW51bSBnZXRFcnJvcigpIGZpbmFsOworI2lmIEVOQUJMRShW
SURFTykKICAgICBib29sIGNvcHlUZXh0dXJlRnJvbU1lZGlhKFdlYkNvcmU6Ok1lZGlhUGxheWVy
JiwgUGxhdGZvcm1HTE9iamVjdCB0ZXh0dXJlLCBHQ0dMZW51bSB0YXJnZXQsIEdDR0xpbnQgbGV2
ZWwsIEdDR0xlbnVtIGludGVybmFsRm9ybWF0LCBHQ0dMZW51bSBmb3JtYXQsIEdDR0xlbnVtIHR5
cGUsIGJvb2wgcHJlbXVsdGlwbHlBbHBoYSwgYm9vbCBmbGlwWSkgZmluYWw7CisjZW5kaWYKICAg
ICB2b2lkIHNpbXVsYXRlRXZlbnRGb3JUZXN0aW5nKFNpbXVsYXRlZEV2ZW50Rm9yVGVzdGluZykg
ZmluYWw7CiAKICAgICAvLyBGdW5jdGlvbnMgd2l0aCBhIGdlbmVyYXRlZCBpbXBsZW1lbnRhdGlv
bi4gVGhpcyBsaXN0IGlzIHVzZWQgYnkgZ2VuZXJhdGUtZ3B1cC13ZWJnbCBzY3JpcHQuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJp
dmF0ZVJlbW90ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlh
UGxheWVyUHJpdmF0ZVJlbW90ZS5jcHAKaW5kZXggYzE5ZjI1NTBhZGIzMGFjNzNhOTYwZGJkZjQ4
M2ZiNTg5MGMzZjBiMy4uZWE0ZGNiMzc0ZDBjNWI4ZGNiOTEwOTA0ZmZkZGNjMDJhNDJlOTk3YiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXll
clByaXZhdGVSZW1vdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVk
aWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNwcApAQCAtMTAwNSwxOSArMTAwNSwxNiBAQCBi
b29sIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6Y29weVZpZGVvVGV4dHVyZVRvUGxhdGZvcm1U
ZXh0dXJlKFdlYkNvcmU6OkdyYXBoaQogCiBSZWZQdHI8V2ViQ29yZTo6VmlkZW9GcmFtZT4gTWVk
aWFQbGF5ZXJQcml2YXRlUmVtb3RlOjp2aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWUoKQogewotLy8g
RklYTUU6IFRoaXMgd2lsbCBiZSBtYWRlIGNyb3NzLXBsYXRmb3JtIGFnYWluIHNvb24uIFRoZXJl
IGFyZSBubyBvdGhlciBwbGF0Zm9ybXMgdXNpbmcgdGhpcyBhdCB0aGUgbW9tZW50LgotI2lmIFBM
QVRGT1JNKENPQ09BKQotICAgIHN0ZDo6b3B0aW9uYWw8UmVmUHRyPFdlYkNvcmU6OlZpZGVvRnJh
bWVDVj4+IHJlc3VsdDsKKyAgICBzdGQ6Om9wdGlvbmFsPFJlbW90ZVZpZGVvRnJhbWVQcm94eTo6
UHJvcGVydGllcz4gcmVzdWx0OwogICAgIGJvb2wgY2hhbmdlZCA9IGZhbHNlOwogICAgIGlmICgh
Y29ubmVjdGlvbigpLnNlbmRTeW5jKE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVBsYXllclByb3h5OjpW
aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWVJZkNoYW5nZWQoKSwgTWVzc2FnZXM6OlJlbW90ZU1lZGlh
UGxheWVyUHJveHk6OlZpZGVvRnJhbWVGb3JDdXJyZW50VGltZUlmQ2hhbmdlZDo6UmVwbHkocmVz
dWx0LCBjaGFuZ2VkKSwgbV9pZCkpCi0gICAgICAgIHJldHVybiBtX3ZpZGVvRnJhbWVGb3JDdXJy
ZW50VGltZTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgaWYgKGNoYW5nZWQpIHsKICAg
ICAgICAgaWYgKHJlc3VsdCkKLSAgICAgICAgICAgIG1fdmlkZW9GcmFtZUZvckN1cnJlbnRUaW1l
ID0gV1RGTW92ZSgqcmVzdWx0KTsKKyAgICAgICAgICAgIG1fdmlkZW9GcmFtZUZvckN1cnJlbnRU
aW1lID0gUmVtb3RlVmlkZW9GcmFtZVByb3h5OjpjcmVhdGUoY29ubmVjdGlvbigpLCB2aWRlb0Zy
YW1lT2JqZWN0SGVhcFByb3h5KCksIFdURk1vdmUoKnJlc3VsdCkpOwogICAgICAgICBlbHNlCiAg
ICAgICAgICAgICBtX3ZpZGVvRnJhbWVGb3JDdXJyZW50VGltZSA9IG51bGxwdHI7CiAgICAgfQot
I2VuZGlmCiAgICAgcmV0dXJuIG1fdmlkZW9GcmFtZUZvckN1cnJlbnRUaW1lOwogfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJp
dmF0ZVJlbW90ZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBs
YXllclByaXZhdGVSZW1vdGUuaAppbmRleCAyOWY5MTJkNGU4Yjg3YjU3YmExNTYyNGE2ZGM1ZTA2
YjdjNWMxYjlkLi4zOGVmODg5NzE4MjAyOTQ0NDAzYzUyZjgzYjk0MjcxNzEyMTE4ZTY0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJp
dmF0ZVJlbW90ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVk
aWFQbGF5ZXJQcml2YXRlUmVtb3RlLmgKQEAgLTM0LDYgKzM0LDggQEAKICNpbmNsdWRlICJSZW1v
dGVNZWRpYVBsYXllclN0YXRlLmgiCiAjaW5jbHVkZSAiUmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50
aWZpZXIuaCIKICNpbmNsdWRlICJSZW1vdGVNZWRpYVJlc291cmNlUHJveHkuaCIKKyNpbmNsdWRl
ICJSZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcFByb3h5LmgiCisjaW5jbHVkZSAiUmVtb3RlVmlk
ZW9GcmFtZVByb3h5LmgiCiAjaW5jbHVkZSAiVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZS5oIgogI2lu
Y2x1ZGUgIlRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIuaCIKICNpbmNsdWRlICJWaWRlb1Ry
YWNrUHJpdmF0ZVJlbW90ZS5oIgpAQCAtNDEzLDYgKzQxNSw3IEBAIHByaXZhdGU6CiAjaWYgUExB
VEZPUk0oQ09DT0EpCiAgICAgdm9pZCBwdXNoVmlkZW9GcmFtZU1ldGFkYXRhKFdlYkNvcmU6OlZp
ZGVvRnJhbWVNZXRhZGF0YSYmLCBSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4mJik7CiAjZW5k
aWYKKyAgICBSZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcFByb3h5JiB2aWRlb0ZyYW1lT2JqZWN0
SGVhcFByb3h5KCkgY29uc3QgeyByZXR1cm4gbV9tYW5hZ2VyLmdwdVByb2Nlc3NDb25uZWN0aW9u
KCkudmlkZW9GcmFtZU9iamVjdEhlYXBQcm94eSgpOyB9CiAKICAgICBXZWFrUHRyPFdlYkNvcmU6
Ok1lZGlhUGxheWVyPiBtX3BsYXllcjsKICAgICBSZWY8V2ViQ29yZTo6UGxhdGZvcm1NZWRpYVJl
c291cmNlTG9hZGVyPiBtX21lZGlhUmVzb3VyY2VMb2FkZXI7CkBAIC00NjEsNyArNDY0LDcgQEAg
cHJpdmF0ZToKICAgICBib29sIG1fd2FpdGluZ0ZvcktleSB7IGZhbHNlIH07CiAgICAgYm9vbCBt
X3RpbWVJc1Byb2dyZXNzaW5nIHsgZmFsc2UgfTsKICAgICBib29sIG1fcmVuZGVyaW5nQ2FuQmVB
Y2NlbGVyYXRlZCB7IGZhbHNlIH07Ci0gICAgUmVmUHRyPFdlYkNvcmU6OlZpZGVvRnJhbWU+IG1f
dmlkZW9GcmFtZUZvckN1cnJlbnRUaW1lOworICAgIFJlZlB0cjxSZW1vdGVWaWRlb0ZyYW1lUHJv
eHk+IG1fdmlkZW9GcmFtZUZvckN1cnJlbnRUaW1lOwogI2lmIFBMQVRGT1JNKENPQ09BKQogICAg
IFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiBtX3BpeGVsQnVmZmVyR2F0aGVyZWRXaXRoVmlk
ZW9GcmFtZU1ldGFkYXRhOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpQaXhlbEJ1ZmZl
ckNvbmZvcm1lckNWPiBtX3BpeGVsQnVmZmVyQ29uZm9ybWVyOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVWaWRlb0ZyYW1lUHJveHkuY3BwIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVWaWRlb0ZyYW1lUHJveHku
Y3BwCmluZGV4IGQ4MzdhNDZiYWYxNDA3NzRlYTZlZGQ4MjQ5Y2RlNjIzMjRiMmQ0ODIuLjRjM2Ez
ZjQxZjQ3OTAyNGIyMDhiMWI3MWE5NDI1ZDJkYTJiNWMyNjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlVmlkZW9GcmFtZVByb3h5LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZVZpZGVvRnJhbWVQcm94
eS5jcHAKQEAgLTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL1JlYWx0aW1lSW5jb21p
bmdWaWRlb1NvdXJjZUNvY29hLmg+CiAKICNpZiBQTEFURk9STShDT0NPQSkKKyNpbmNsdWRlIDxX
ZWJDb3JlL1ZpZGVvRnJhbWVDVi5oPgogI2luY2x1ZGUgPHd0Zi90aHJlYWRzL0JpbmFyeVNlbWFw
aG9yZS5oPgogI2VuZGlmCiAKQEAgLTExOSw2ICsxMjAsMTUgQEAgQ1ZQaXhlbEJ1ZmZlclJlZiBS
ZW1vdGVWaWRlb0ZyYW1lUHJveHk6OnBpeGVsQnVmZmVyKCkgY29uc3QKICAgICB9CiAgICAgcmV0
dXJuIG1fcGl4ZWxCdWZmZXIuZ2V0KCk7CiB9CisKK1JlZlB0cjxXZWJDb3JlOjpWaWRlb0ZyYW1l
Q1Y+IFJlbW90ZVZpZGVvRnJhbWVQcm94eTo6YXNWaWRlb0ZyYW1lQ1YoKQoreworICAgIGF1dG8g
YnVmZmVyID0gcGl4ZWxCdWZmZXIoKTsKKyAgICBpZiAoIWJ1ZmZlcikKKyAgICAgICAgcmV0dXJu
IG51bGxwdHI7CisgICAgcmV0dXJuIFZpZGVvRnJhbWVDVjo6Y3JlYXRlKG1fcHJlc2VudGF0aW9u
VGltZSwgbV9pc01pcnJvcmVkLCBtX3JvdGF0aW9uLCBSZXRhaW5QdHIgeyBidWZmZXIgfSk7Cit9
CisKICNlbmRpZgogCiBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBjb25z
dCBSZW1vdGVWaWRlb0ZyYW1lUHJveHk6OlByb3BlcnRpZXMmIHByb3BlcnRpZXMpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZVZpZGVvRnJhbWVQ
cm94eS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVWaWRlb0Zy
YW1lUHJveHkuaAppbmRleCAxNjU3MzA3Mjk4OTM1MDA1ZWIyZjMzNGNmNmEyOTQ0NTY1MGYxNWUy
Li4xM2M1MDU4ODQwMmM1NWNkZGFlYzdlMDcwOWIwNmI1OGU4YTMxMTY3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZVZpZGVvRnJhbWVQcm94eS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlVmlkZW9GcmFt
ZVByb3h5LmgKQEAgLTM2LDYgKzM2LDEyIEBAIGNsYXNzIENvbm5lY3Rpb247CiBjbGFzcyBEZWNv
ZGVyOwogfQogCituYW1lc3BhY2UgV2ViQ29yZSB7CisjaWYgUExBVEZPUk0oQ09DT0EpCitjbGFz
cyBWaWRlb0ZyYW1lQ1Y7CisjZW5kaWYKK30KKwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNz
IEdQVVByb2Nlc3NDb25uZWN0aW9uOwpAQCAtODAsMTYgKzg2LDE1IEBAIHB1YmxpYzoKICAgICAv
LyBXZWJDb3JlOjpWaWRlb0ZyYW1lIG92ZXJyaWRlcy4KICAgICBXZWJDb3JlOjpGbG9hdFNpemUg
cHJlc2VudGF0aW9uU2l6ZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fc2l6ZTsgfQogICAgIHVp
bnQzMl90IHZpZGVvUGl4ZWxGb3JtYXQoKSBjb25zdCBmaW5hbDsKKyAgICBib29sIGlzUmVtb3Rl
UHJveHkoKSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVlOyB9CiAjaWYgUExBVEZPUk0oQ09DT0Ep
CiAgICAgQ1ZQaXhlbEJ1ZmZlclJlZiBwaXhlbEJ1ZmZlcigpIGNvbnN0IGZpbmFsOworICAgIFJl
ZlB0cjxXZWJDb3JlOjpWaWRlb0ZyYW1lQ1Y+IGFzVmlkZW9GcmFtZUNWKCkgZmluYWw7CiAjZW5k
aWYKLSAgICBib29sIGlzUmVtb3RlUHJveHkoKSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVlOyB9
CiAKIHByaXZhdGU6CiAgICAgUmVtb3RlVmlkZW9GcmFtZVByb3h5KElQQzo6Q29ubmVjdGlvbiYs
IFJlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwUHJveHkmLCBQcm9wZXJ0aWVzJiYpOwogCi0KLQog
ICAgIGNvbnN0IFJlZjxJUEM6OkNvbm5lY3Rpb24+IG1fY29ubmVjdGlvbjsKICAgICBSZW1vdGVW
aWRlb0ZyYW1lUmVmZXJlbmNlVHJhY2tlciBtX3JlZmVyZW5jZVRyYWNrZXI7CiAgICAgY29uc3Qg
V2ViQ29yZTo6SW50U2l6ZSBtX3NpemU7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNjEzNzNjZTg0ZGIxZmY3YjZkN2JkOGZh
NTc1MWI3M2M3ZjJiMGI4Zi4uOGM4ZTAxZDI2ZTk5ZmFiYzk2N2RmNzg4OTEwYTM2ZGYzZGI2M2Zk
MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDIyLTAyLTE3ICBLaW1tbyBLaW5udW5lbiAgPGtr
aW5udW5lbkBhcHBsZS5jb20+CisKKyAgICAgICAgV2ViR0wgR1BVUDogQ3Jhc2ggd2hlbiBydW5u
aW5nIGZhc3QvbWVkaWFzdHJlYW0vZ2V0VXNlck1lZGlhLXRvLWNhbnZhcy0xLmh0bWwKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNjUwMgorCisgICAg
ICAgIFVuc2tpcCB0aGUgcHJldmlvdXMgY3Jhc2hlcyBjYXVzZWQgYnkgdGhlIGxhY2sgb2YgaW1w
bGVtZW50YXRpb24uCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBwbGF0Zm9ybS9pb3Mtd2syL1Rlc3RFeHBlY3RhdGlvbnM6CisKIDIwMjItMDItMTcg
IE1hdHQgV29vZHJvdyAgPG1hdHR3b29kcm93QGFwcGxlLmNvbT4KIAogICAgICAgICBDb3B5IHRy
YWNrIHNpemVzIGZyb20gcGFyZW50IGdyaWQgaW50byBzdWJncmlkCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9pb3Mtd2syL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9pb3Mtd2syL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggYTRhMGJkYmNjMzMzZmFmMThh
YWY5YzA2YjY5NDdkYWRmNTE3MmI2Yy4uZmQ3ZmI1N2UyYmNjYmMwYjQ2YzAzY2Y2ZjJhNGRmYmIw
Mzk0NDAxZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zLXdrMi9UZXN0RXhw
ZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy13azIvVGVzdEV4cGVjdGF0
aW9ucwpAQCAtMjIwOSwxMCArMjIwOSw1IEBAIHdlYmtpdC5vcmcvYi8yMzQ1MzYgd2ViZ2wvbWF4
LWFjdGl2ZS1jb250ZXh0cy1jb25zb2xlLXdhcm5pbmcuaHRtbAogd2Via2l0Lm9yZy9iLzIzNDUz
NiB3ZWJnbC9tYXgtYWN0aXZlLWNvbnRleHRzLWdjLmh0bWwKIHdlYmtpdC5vcmcvYi8yMzQ1MzYg
d2ViZ2wvbWF4LWFjdGl2ZS1jb250ZXh0cy1vbGRlc3QtY29udGV4dC1sb3N0Lmh0bWwKIHdlYmtp
dC5vcmcvYi8yMzQ1MzYgd2VieHIvaGlnaC1wZXJmb3JtYW5jZS5odG1sCi13ZWJraXQub3JnL2Iv
MjM0NTM2IGZhc3QvbWVkaWFzdHJlYW0vZ2V0VXNlck1lZGlhLXRvLWNhbnZhcy0xLmh0bWwgWyBD
cmFzaCBdCi13ZWJraXQub3JnL2IvMjM0NTM2IGZhc3QvbWVkaWFzdHJlYW0vZ2V0VXNlck1lZGlh
LXRvLWNhbnZhcy0yLmh0bWwgWyBDcmFzaCBdCiB3ZWJraXQub3JnL2IvMjM0NTM2IHdlYmdsL21h
eC1hY3RpdmUtY29udGV4dHMtd2ViZ2xjb250ZXh0bG9zdC1wcmV2ZW50LWRlZmF1bHQuaHRtbCBb
IFRpbWVvdXQgXQogd2Via2l0Lm9yZy9iLzIzNDUzNiB3ZWJnbC8xLjAuMy9jb25mb3JtYW5jZS9z
dGF0ZS9nbC1vYmplY3QtZ2V0LWNhbGxzLmh0bWwgWyBUaW1lb3V0IF0KLQotIyBDYXB0dXJlZCBX
ZWJHTCB0byBhbm90aGVyIGNvbnRleHQyZCBvciBXZWJHTCBub3QgaW1wbGVtZW50ZWQgeWV0Lgot
d2Via2l0Lm9yZy9iLzIzNjQ5NiBmYXN0L21lZGlhc3RyZWFtL2NhcHR1cmVTdHJlYW0vY2FudmFz
M2QuaHRtbCBbIFRpbWVvdXQgXQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>452506</attachid>
            <date>2022-02-18 04:27:53 -0800</date>
            <delta_ts>2022-02-18 05:49:28 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-236502-20220218142751.patch</filename>
            <type>text/plain</type>
            <size>63051</size>
            <attacher name="Kimmo Kinnunen">kkinnunen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkwMTIwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGI0MTEzNDNlYzE3MTYy
ODBmYzI0NDIyNmU5MDRkNjU5OTFiNTM2NC4uOTFjZDU4Y2NjMmI4NTk5NWRlOGRiZmU2MzFiYjkz
ZjFjZWVmMTI5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDIyLTAyLTE4ICBLaW1t
byBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CisKKyAgICAgICAgV2ViR0wgR1BVUDog
Q3Jhc2ggd2hlbiBydW5uaW5nIGZhc3QvbWVkaWFzdHJlYW0vZ2V0VXNlck1lZGlhLXRvLWNhbnZh
cy0xLmh0bWwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIzNjUwMgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vODg4NjI5MjE+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgRXJpYyBDYXJsc29uLgorCisgICAgICAgIEFkZCBhIHBvbHltb3JwaGljIGZ1bmN0
aW9uIGFzVmlkZW9GcmFtZUNWIHRvIGNvbnZlcnQgVmlkZW9GcmFtZSB0byBWaWRlb0ZyYW1lQ1Yu
CisgICAgICAgIFZpZGVvRnJhbWVDViBpcyB1c2VkIHRvIGRyYXcgdGhlIGluLXByb2Nlc3Mgdmlk
ZW8gZnJhbWUgdG8gaW4tcHJvY2VzcyBXZWJHTC4KKworICAgICAgICBSZW1vdGVWaWRlb0ZyYW1l
UHJveHkgd2lsbCBpbXBsZW1lbnQgYXNWaWRlb0ZyYW1lQ1YgYnkgZmV0Y2hpbmcgdGhlIGRhdGEg
ZnJvbQorICAgICAgICBHUFVQIGFuZCByZXR1cm5pbmcgYSBuZXcgb2JqZWN0IGV4cG9zaW5nIHRo
ZSBkYXRhLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cywgdGVzdGVkIGJ5IG5vdyB1bnNraXBwZWQg
dGVzdHMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9WaWRlb0ZyYW1lLmg6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvY29jb2EvR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5tbToKKyAgICAgICAg
KFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMQ29jb2E6OmNvcHlUZXh0dXJlRnJvbU1lZGlhKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jdi9WaWRlb0ZyYW1lQ1YuaDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9jdi9WaWRlb0ZyYW1lQ1YubW06CisgICAgICAgIChXZWJDb3Jl
OjpWaWRlb0ZyYW1lQ1Y6OmFzVmlkZW9GcmFtZUNWKToKKwogMjAyMi0wMi0xOCAgWmFuIERvYmVy
c2VrICA8emRvYmVyc2VrQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dUS11bV1BFXSBEb24ndCB1
c2UgQU5HTEUncyBHQk0tYmFzZWQgZGlzcGxheQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA0ZDE5NDFjZTVmYWM1ZjU1
NDVlOGZhODAwYmJkYTdjNjM5NDI5N2Q3Li4yOWU4M2MwZDQ2NjBhMTY1N2ZlZmQ3MjZiY2JlOTMx
NTZjMzQ5NTY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDU1IEBACisyMDIyLTAyLTE4ICBLaW1tbyBL
aW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CisKKyAgICAgICAgV2ViR0wgR1BVUDogQ3Jh
c2ggd2hlbiBydW5uaW5nIGZhc3QvbWVkaWFzdHJlYW0vZ2V0VXNlck1lZGlhLXRvLWNhbnZhcy0x
Lmh0bWwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIz
NjUwMgorCisgICAgICAgIFRoZSBjcmFzaCBpcyBhYm91dCBNZWRpYVBsYXllclByaXZhdGVNZWRp
YVN0cmVhbUFWRk9iakMgYmVpbmcgaW4gV1Agd2hpbGUgb3RoZXIKKyAgICAgICAgbWVkaWEgcGxh
eWVyIHByaXZhdGUgdmFyaWFudHMgYXJlIHByb3hpZWQgdG8gR1BVUC4gVGhlIHByZXZpb3VzIGlt
cGxlbWVudGF0aW9uCisgICAgICAgIHdvdWxkIHNlbmQgbWVkaWEgcGxheWVyIGlkZW50aWZpZXJz
IHRvIEdQVVAgZm9yIGNvcHlpbmcuCisgICAgICAgIFRoaXMgcGF0Y2ggd2lsbCBpbXBsZW1lbnQg
dGhlIGNvcHkgYnkgdGhlIG1lZGlhIHBsYXllciBjcmVhdGluZyBhIHJlZmVyZW5jZQorICAgICAg
ICB0byBWaWRlb0ZyYW1lLiBXZWJHTCB3b3VsZCBzZW5kIHJlZmVyZW5jZSBvZiB0aGUgVmlkZW9G
cmFtZSB0byBHUFVQIGZvciBjb3B5aW5nLgorCisgICAgICAgIE1ha2UgV1AgTWVkaWFQbGF5ZXJQ
cml2YXRlUmVtb3RlIGFsd2F5cyByZXR1cm4gUmVtb3RlVmlkZW9GcmFtZVByb3h5IG9iamVjdHMK
KyAgICAgICAgaW5zdGVhZCBvZiBXUCBpbi1wcm9jZXNzIFZpZGVvRnJhbWUgaW5zdGFuY2VzIChm
b3IgQ29jb2EgVmlkZW9GcmFtZUNWKSB0aGF0CisgICAgICAgIHdvdWxkIGhvbGQgdGhlIHZpZGVv
IGRhdGEgaW4gcHJvY2Vzcy4KKworICAgICAgICBXUCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0
cmVhbUFWRk9iakMgYWxyZWFkeSByZXR1cm5zIFJlbW90ZVZpZGVvRnJhbWVQcm94eQorICAgICAg
ICBvYmplY3RzLiBUaGlzIHdheSBHUFVQIFdlYkdMIGltcGxlbWVudGF0aW9uIGNhbiBvYnRhaW4g
dGhlIHJlYWQgcmVmZXJlbmNlCisgICAgICAgIHRvIHRoZSByZW1vdGUgb2JqZWN0IGFuZCBzZW5k
IGl0IGluIGNvcHlUZXh0dXJlRnJvbVZpZGVvRnJhbWUgbWVzc2FnZS4KKworICAgICAgICBUaGUg
V1AgaW4tcHJvY2VzcyBXZWJHTCBpbXBsZW1lbnRhdGlvbiBjb252ZXJ0cyB0aGUgUmVtb3RlVmlk
ZW9GcmFtZVByb3h5CisgICAgICAgIHRvIFZpZGVvRnJhbWVDViB3aXRoIHRoZSBuZXcgUmVtb3Rl
VmlkZW9GcmFtZVByb3h5Ojphc1ZpZGVvRnJhbWVDVi4KKworICAgICAgICBSZXZpZXdlZCBieSBF
cmljIENhcmxzb24uCisKKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBo
aWNzQ29udGV4dEdMLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlR3JhcGhpY3NDb250ZXh0
R0w6OlJlbW90ZUdyYXBoaWNzQ29udGV4dEdMKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlR3Jh
cGhpY3NDb250ZXh0R0w6OmNvcHlUZXh0dXJlRnJvbVZpZGVvRnJhbWUpOgorICAgICAgICAqIEdQ
VVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0wuaDoKKyAgICAgICAgKiBH
UFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMLm1lc3NhZ2VzLmluOgor
ICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xDb2Nv
YS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUdyYXBoaWNzQ29udGV4dEdMOjpjb3B5VGV4
dHVyZUZyb21WaWRlb0ZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlR3JhcGhpY3NDb250
ZXh0R0w6OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUdyYXBoaWNzQ29udGV4dEdM
Q29jb2E6OlJlbW90ZUdyYXBoaWNzQ29udGV4dEdMQ29jb2EpOgorICAgICAgICAoV2ViS2l0OjpS
ZW1vdGVHcmFwaGljc0NvbnRleHRHTENvY29hOjpwbGF0Zm9ybVdvcmtRdWV1ZUluaXRpYWxpemUp
OgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVHcmFwaGljc0NvbnRleHRHTENvY29hOjpwcmVwYXJl
Rm9yRGlzcGxheSk6CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXll
ck1hbmFnZXJQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyTWFu
YWdlclByb3h5OjpjcmVhdGVNZWRpYVBsYXllcik6CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRp
YS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVk
aWFQbGF5ZXJQcm94eTo6UmVtb3RlTWVkaWFQbGF5ZXJQcm94eSk6CisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZU1lZGlhUGxheWVyUHJveHk6OnZpZGVvRnJhbWVGb3JDdXJyZW50VGltZUlmQ2hhbmdl
ZCk6CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5Lmg6
CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5Lm1lc3Nh
Z2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNz
Q29udGV4dEdMUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVHcmFwaGljc0NvbnRl
eHRHTFByb3h5Ojpjb3B5VGV4dHVyZUZyb21NZWRpYSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9H
UFUvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eS5oOgorICAgICAgICAqIFdl
YlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5jcHA6CisgICAgICAg
IChXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6dmlkZW9GcmFtZUZvckN1cnJlbnRU
aW1lKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVS
ZW1vdGUuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVWaWRlb0ZyYW1l
UHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVWaWRlb0ZyYW1lUHJveHk6OmFzVmlk
ZW9GcmFtZUNWKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVWaWRlb0Zy
YW1lUHJveHkuaDoKKwogMjAyMi0wMi0xNyAgS2ltbW8gS2lubnVuZW4gIDxra2lubnVuZW5AYXBw
bGUuY29tPgogCiAgICAgICAgIEFTU0VSVElPTiBGQUlMRUQ6IFRocmVhZDo6Y3VycmVudCgpLnVp
ZCgpID09IHRocmVhZEFzc2VydGlvbi5tX3VpZCBmb3IgUmVtb3RlVmlkZW9GcmFtZU9iamVjdEhl
YXAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1ZpZGVvRnJhbWUuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL1ZpZGVvRnJhbWUuaAppbmRleCBiNTU0NTZmZjk0YWJiNzEx
ZDMyNmYyZDZkMDk5OWQ2YmQ1YzYwYTZkLi42NDExZGY3ZDY0MGNjZGVkMWQxZTNlMTFmZDFhNDI4
YTI5MWIzMWVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9WaWRlb0ZyYW1l
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVmlkZW9GcmFtZS5oCkBAIC0zMSw2ICsz
MSwxMSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKKyNpZiBVU0UoQVZGT1VOREFUSU9OKQor
Y2xhc3MgVmlkZW9GcmFtZUNWOworI2VuZGlmCisKKwogLy8gQSBjbGFzcyByZXByZXNlbnRpbmcg
YSB2aWRlbyBmcmFtZSBmcm9tIGEgZGVjb2RlciwgY2FwdHVyZSBzb3VyY2UsIG9yIHNpbWlsYXIu
CiAvLyBGSVhNRTogQ3VycmVudGx5IGZvciBpbXBsZW1lbnRhdGlvbiBwdXJwb3NlcyBpbmhlcnRz
IGZyb20gTWVkaWFTYW1wbGUgdW50aWwgY2FwdHVyZSBjb2RlCiAvLyBzdG9wcyByZWZlcnJpbmcg
dG8gTWVkaWFTYW1wbGUKQEAgLTQ5LDYgKzU0LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9v
bCBpc1JlbW90ZVByb3h5KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICNpZiBVU0UoQVZGT1VO
REFUSU9OKQogICAgIHZpcnR1YWwgYm9vbCBpc0NWKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0K
KyAgICB2aXJ0dWFsIFJlZlB0cjxXZWJDb3JlOjpWaWRlb0ZyYW1lQ1Y+IGFzVmlkZW9GcmFtZUNW
KCkgPSAwOwogI2VuZGlmCiAKIHByb3RlY3RlZDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2NvY29hL1NoYXJlZFZpZGVvRnJhbWVJbmZvLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9jb2NvYS9TaGFyZWRWaWRlb0ZyYW1lSW5mby5oCmluZGV4IDRlZThhOTZkMmUzYTIy
YmZmYzUyZjM2OTBkOTJiZmU4ZjE4MjhkNzQuLmJlM2ZkYjc5NzgwM2ExNDBlYjAyYzQ2OWQzMzYy
NGI0OGI2Mjc1MDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1No
YXJlZFZpZGVvRnJhbWVJbmZvLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2Ev
U2hhcmVkVmlkZW9GcmFtZUluZm8uaApAQCAtMjUsNyArMjUsNyBAQAogCiAjcHJhZ21hIG9uY2UK
IAotI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pICYmIFBMQVRGT1JNKENPQ09BKQorI2lmIEVOQUJM
RShWSURFTykgJiYgUExBVEZPUk0oQ09DT0EpCiAKICNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+
CiAjaW5jbHVkZSA8d3RmL1NwYW4uaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2NvY29hL1NoYXJlZFZpZGVvRnJhbWVJbmZvLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vY29jb2EvU2hhcmVkVmlkZW9GcmFtZUluZm8ubW0KaW5kZXggNjFlZjJjZWJjNzllNzc0Zjg5
NzE1NmE5ZjcxYmI1NmU0NGM0NjZmNi4uMDhjNmNjZDg4NTM3MWZhZjFkMTE4ZTM5ZGEyM2FlMzJk
ODQ1OWJkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvU2hhcmVk
VmlkZW9GcmFtZUluZm8ubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvU2hh
cmVkVmlkZW9GcmFtZUluZm8ubW0KQEAgLTI2LDcgKzI2LDcgQEAKICNpbmNsdWRlICJjb25maWcu
aCIKICNpbmNsdWRlICJTaGFyZWRWaWRlb0ZyYW1lSW5mby5oIgogCi0jaWYgRU5BQkxFKE1FRElB
X1NUUkVBTSkgJiYgUExBVEZPUk0oQ09DT0EpCisjaWYgRU5BQkxFKFZJREVPKSAmJiBQTEFURk9S
TShDT0NPQSkKIAogI2luY2x1ZGUgIkNWVXRpbGl0aWVzLmgiCiAjaW5jbHVkZSAiSU9TdXJmYWNl
LmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9H
cmFwaGljc0NvbnRleHRHTENvY29hLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY29jb2EvR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5tbQppbmRleCBhMGJmY2YyNzI5NTE2ZTI0
ZTZjOTliMjBhNjQ1MjNjN2NlODlkYzdkLi4zNWI5MWZiM2RkNjdhNzMyODk3Y2M1NDY3MjJjM2Zm
NTBhOWQwOTY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
b2NvYS9HcmFwaGljc0NvbnRleHRHTENvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NvY29hL0dyYXBoaWNzQ29udGV4dEdMQ29jb2EubW0KQEAgLTM4LDcgKzM4
LDYgQEAKICNpbXBvcnQgIlBpeGVsQnVmZmVyLmgiCiAjaW1wb3J0ICJQcm9jZXNzSWRlbnRpdHku
aCIKICNpbXBvcnQgIlJ1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5oIgotI2ltcG9ydCAiVmlkZW9G
cmFtZUNWLmgiCiAjaW1wb3J0IDxDb3JlR3JhcGhpY3MvQ0dCaXRtYXBDb250ZXh0Lmg+CiAjaW1w
b3J0IDxNZXRhbC9NZXRhbC5oPgogI2ltcG9ydCA8cGFsL3NwaS9jb2NvYS9NZXRhbFNQSS5oPgpA
QCAtNTAsMTMgKzQ5LDE0IEBACiAjZW5kaWYKIAogI2lmIEVOQUJMRShWSURFTykKLSNpbmNsdWRl
ICJHcmFwaGljc0NvbnRleHRHTENWQ29jb2EuaCIKLSNpbmNsdWRlICJNZWRpYVBsYXllclByaXZh
dGUuaCIKKyNpbXBvcnQgIkdyYXBoaWNzQ29udGV4dEdMQ1ZDb2NvYS5oIgorI2ltcG9ydCAiTWVk
aWFQbGF5ZXJQcml2YXRlLmgiCisjaW1wb3J0ICJWaWRlb0ZyYW1lQ1YuaCIKICNlbmRpZgogCiAj
aWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKLSNpbmNsdWRlICJJbWFnZVJvdGF0aW9uU2Vzc2lvblZU
LmgiCi0jaW5jbHVkZSAiTWVkaWFTYW1wbGVBVkZPYmpDLmgiCisjaW1wb3J0ICJJbWFnZVJvdGF0
aW9uU2Vzc2lvblZULmgiCisjaW1wb3J0ICJNZWRpYVNhbXBsZUFWRk9iakMuaCIKICNlbmRpZgog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC03ODMsMTUgKzc4MywxNiBAQCBib29sIEdyYXBoaWNz
Q29udGV4dEdMQ29jb2E6OmNvcHlUZXh0dXJlRnJvbU1lZGlhKE1lZGlhUGxheWVyJiBwbGF5ZXIs
IFBsYXRmb3JtRwogICAgIGF1dG8gdmlkZW9GcmFtZSA9IHBsYXllci52aWRlb0ZyYW1lRm9yQ3Vy
cmVudFRpbWUoKTsKICAgICBpZiAoIXZpZGVvRnJhbWUpCiAgICAgICAgIHJldHVybiBmYWxzZTsK
LSAgICBBU1NFUlQoaXM8VmlkZW9GcmFtZUNWPigqdmlkZW9GcmFtZSkpOwotCisgICAgYXV0byB2
aWRlb0ZyYW1lQ1YgPSB2aWRlb0ZyYW1lLT5hc1ZpZGVvRnJhbWVDVigpOworICAgIGlmICghdmlk
ZW9GcmFtZUNWKQorICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgYXV0byBjb250ZXh0Q1YgPSBh
c0NWKCk7CiAgICAgaWYgKCFjb250ZXh0Q1YpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAg
IFVOVVNFRF9WQVJJQUJMRShwcmVtdWx0aXBseUFscGhhKTsKICAgICBBU1NFUlRfVU5VU0VEKG91
dHB1dFRhcmdldCwgb3V0cHV0VGFyZ2V0ID09IEdyYXBoaWNzQ29udGV4dEdMOjpURVhUVVJFXzJE
KTsKLSAgICByZXR1cm4gY29udGV4dENWLT5jb3B5VmlkZW9TYW1wbGVUb1RleHR1cmUoZG93bmNh
c3Q8VmlkZW9GcmFtZUNWPigqdmlkZW9GcmFtZSksIG91dHB1dFRleHR1cmUsIGxldmVsLCBpbnRl
cm5hbEZvcm1hdCwgZm9ybWF0LCB0eXBlLCBHcmFwaGljc0NvbnRleHRHTDo6RmxpcFkoZmxpcFkp
KTsKKyAgICByZXR1cm4gY29udGV4dENWLT5jb3B5VmlkZW9TYW1wbGVUb1RleHR1cmUoKnZpZGVv
RnJhbWVDViwgb3V0cHV0VGV4dHVyZSwgbGV2ZWwsIGludGVybmFsRm9ybWF0LCBmb3JtYXQsIHR5
cGUsIEdyYXBoaWNzQ29udGV4dEdMOjpGbGlwWShmbGlwWSkpOwogfQogI2VuZGlmCiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L0NWVXRpbGl0aWVzLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9DVlV0aWxpdGllcy5oCmluZGV4
IDk3ZGEyYzdhNzYyZWQxZjg1MTJiMzYxM2M3NGYyNmU3MjQxNmNhMjguLmExNTk0ZWJkZTQ5NTA0
Y2I4NDAzZmRkOGFlNmRkNjI1NzdkN2ExMmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2N2L0NWVXRpbGl0aWVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY3YvQ1ZVdGlsaXRpZXMuaApAQCAtNTQsNCArNTQsNiBAQCBSZXRhaW5Q
dHI8Q0dDb2xvclNwYWNlUmVmPiBjcmVhdGVDR0NvbG9yU3BhY2VGb3JDVlBpeGVsQnVmZmVyKENW
UGl4ZWxCdWZmZXJSZWYpOwogLy8gU2hvdWxkIGJlIGNhbGxlZCB3aXRoIG5vbi1lbXB0eSBQcm9j
ZXNzSWRlbnRpdHkuCiBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldE93bmVyc2hpcElkZW50aXR5Rm9y
Q1ZQaXhlbEJ1ZmZlcihDVlBpeGVsQnVmZmVyUmVmLCBjb25zdCBQcm9jZXNzSWRlbnRpdHkmKTsK
IAorV0VCQ09SRV9FWFBPUlQgUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+IGNyZWF0ZUJsYWNr
UGl4ZWxCdWZmZXIoc2l6ZV90IHdpZHRoLCBzaXplX3QgaGVpZ2h0KTsKKwogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvQ1ZVdGlsaXRpZXMubW0gYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9DVlV0aWxpdGllcy5tbQppbmRleCBl
MTBhMjU1M2JlYmVkYzBjYjgyOTdmMzM3NmZhZmQwNmU2Y2JhM2U5Li5kMDg1MGJhZjMyMTFhMmI1
ZGZlZmVjOGUyNTg1YTY2YWE0ZGNkZjU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jdi9DVlV0aWxpdGllcy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jdi9DVlV0aWxpdGllcy5tbQpAQCAtMjgsNiArMjgsNyBAQAogCiAjaW1w
b3J0ICJDb2xvclNwYWNlQ0cuaCIKICNpbXBvcnQgIklPU3VyZmFjZS5oIgorI2ltcG9ydCAiUmVh
bHRpbWVWaWRlb1V0aWxpdGllcy5oIgogI2ltcG9ydCA8d3RmL1N0ZExpYkV4dHJhcy5oPgogI2lt
cG9ydCA8d3RmL2NmL1R5cGVDYXN0c0NGLmg+CiAjaW1wb3J0ICJDb3JlVmlkZW9Tb2Z0TGluay5o
IgpAQCAtMTYyLDQgKzE2MywzMSBAQCB2b2lkIHNldE93bmVyc2hpcElkZW50aXR5Rm9yQ1ZQaXhl
bEJ1ZmZlcihDVlBpeGVsQnVmZmVyUmVmIHBpeGVsQnVmZmVyLCBjb25zdCBQcgogICAgIElPU3Vy
ZmFjZTo6c2V0T3duZXJzaGlwSWRlbnRpdHkoc3VyZmFjZSwgb3duZXIpOwogfQogCitSZXRhaW5Q
dHI8Q1ZQaXhlbEJ1ZmZlclJlZj4gY3JlYXRlQmxhY2tQaXhlbEJ1ZmZlcihzaXplX3Qgd2lkdGgs
IHNpemVfdCBoZWlnaHQpCit7CisgICAgT1NUeXBlIGZvcm1hdCA9IHByZWZlcmVkUGl4ZWxCdWZm
ZXJGb3JtYXQoKTsKKyAgICBBU1NFUlQoZm9ybWF0ID09IGtDVlBpeGVsRm9ybWF0VHlwZV80MjBZ
cENiQ3I4QmlQbGFuYXJWaWRlb1JhbmdlIHx8IGZvcm1hdCA9PSBrQ1ZQaXhlbEZvcm1hdFR5cGVf
NDIwWXBDYkNyOEJpUGxhbmFyRnVsbFJhbmdlKTsKKworICAgIENWUGl4ZWxCdWZmZXJSZWYgcGl4
ZWxCdWZmZXIgPSBudWxscHRyOworICAgIGF1dG8gc3RhdHVzID0gQ1ZQaXhlbEJ1ZmZlckNyZWF0
ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCB3aWR0aCwgaGVpZ2h0LCBmb3JtYXQsIG51bGxwdHIsICZw
aXhlbEJ1ZmZlcik7CisgICAgQVNTRVJUX1VOVVNFRChzdGF0dXMsIHN0YXR1cyA9PSBub0Vycik7
CisKKyAgICBzdGF0dXMgPSBDVlBpeGVsQnVmZmVyTG9ja0Jhc2VBZGRyZXNzKHBpeGVsQnVmZmVy
LCAwKTsKKyAgICBBU1NFUlQoc3RhdHVzID09IG5vRXJyKTsKKworICAgIGF1dG8qIHlQbGFuZSA9
IHN0YXRpY19jYXN0PHVpbnQ4X3QqPihDVlBpeGVsQnVmZmVyR2V0QmFzZUFkZHJlc3NPZlBsYW5l
KHBpeGVsQnVmZmVyLCAwKSk7CisgICAgc2l6ZV90IHlTdHJpZGUgPSBDVlBpeGVsQnVmZmVyR2V0
Qnl0ZXNQZXJSb3dPZlBsYW5lKHBpeGVsQnVmZmVyLCAwKTsKKyAgICBmb3IgKHVuc2lnbmVkIGkg
PSAwOyBpIDwgaGVpZ2h0OyArK2kpCisgICAgICAgIG1lbXNldCgmeVBsYW5lW2kgKiB5U3RyaWRl
XSwgMCwgd2lkdGgpOworCisgICAgYXV0byogdXZQbGFuZSA9IHN0YXRpY19jYXN0PHVpbnQ4X3Qq
PihDVlBpeGVsQnVmZmVyR2V0QmFzZUFkZHJlc3NPZlBsYW5lKHBpeGVsQnVmZmVyLCAxKSk7Cisg
ICAgc2l6ZV90IHV2U3RyaWRlID0gQ1ZQaXhlbEJ1ZmZlckdldEJ5dGVzUGVyUm93T2ZQbGFuZShw
aXhlbEJ1ZmZlciwgMSk7CisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGhlaWdodCAvIDI7
ICsraSkKKyAgICAgICAgbWVtc2V0KCZ1dlBsYW5lW2kgKiB1dlN0cmlkZV0sIDEyOCwgd2lkdGgp
OworCisgICAgc3RhdHVzID0gQ1ZQaXhlbEJ1ZmZlclVubG9ja0Jhc2VBZGRyZXNzKHBpeGVsQnVm
ZmVyLCAwKTsKKyAgICBBU1NFUlQoIXN0YXR1cyk7CisgICAgcmV0dXJuIGFkb3B0Q0YocGl4ZWxC
dWZmZXIpOworfQorCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jdi9WaWRlb0ZyYW1lQ1YuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2N2L1ZpZGVvRnJhbWVDVi5oCmluZGV4IDgzMWM4ODAyY2M4YzgzMzkzNDRmYjBkNzRlMWRiM2Zk
M2JkZGY3ZGEuLjE0ZWI1YjU1MmZjY2M1MzM3NjNmYzc0YzdlOTNkZWM2ZjIzMjFjYjMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L1ZpZGVvRnJhbWVDVi5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L1ZpZGVvRnJhbWVDVi5o
CkBAIC00Nyw5ICs0NywxMCBAQCBwdWJsaWM6CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGVjb2Rl
cj4gc3RhdGljIHN0ZDo6b3B0aW9uYWw8UmVmUHRyPFZpZGVvRnJhbWVDVj4+IGRlY29kZShEZWNv
ZGVyJik7CiAKICAgICAvLyBWaWRlb0ZyYW1lIG92ZXJyaWRlcy4KLSAgICBXZWJDb3JlOjpGbG9h
dFNpemUgcHJlc2VudGF0aW9uU2l6ZSgpIGNvbnN0IGZpbmFsOwotICAgIHVpbnQzMl90IHZpZGVv
UGl4ZWxGb3JtYXQoKSBjb25zdCBmaW5hbDsKKyAgICBXRUJDT1JFX0VYUE9SVCBXZWJDb3JlOjpG
bG9hdFNpemUgcHJlc2VudGF0aW9uU2l6ZSgpIGNvbnN0IGZpbmFsOworICAgIFdFQkNPUkVfRVhQ
T1JUIHVpbnQzMl90IHZpZGVvUGl4ZWxGb3JtYXQoKSBjb25zdCBmaW5hbDsKICAgICBib29sIGlz
Q1YoKSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVlOyB9CisgICAgV0VCQ09SRV9FWFBPUlQgUmVm
UHRyPFdlYkNvcmU6OlZpZGVvRnJhbWVDVj4gYXNWaWRlb0ZyYW1lQ1YoKSBmaW5hbDsKIAogcHJp
dmF0ZToKICAgICBXRUJDT1JFX0VYUE9SVCBWaWRlb0ZyYW1lQ1YoTWVkaWFUaW1lIHByZXNlbnRh
dGlvblRpbWUsIGJvb2wgaXNNaXJyb3JlZCwgVmlkZW9Sb3RhdGlvbiwgUmV0YWluUHRyPENWUGl4
ZWxCdWZmZXJSZWY+JiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY3YvVmlkZW9GcmFtZUNWLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY3YvVmlkZW9GcmFtZUNWLm1tCmluZGV4IGE1YTZkMDgyYmJlNDJjMzE3M2FiYzFmYTg4MTJl
NDQxY2FjNmY2ZTUuLmQzOWM5MGUwYzc5MGE1NzUxMTM3YjA1YTZmZDYwMTExMmQ2YTk4MWEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L1ZpZGVvRnJhbWVD
Vi5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9WaWRlb0ZyYW1l
Q1YubW0KQEAgLTU0LDYgKzU0LDExIEBAIHVpbnQzMl90IFZpZGVvRnJhbWVDVjo6dmlkZW9QaXhl
bEZvcm1hdCgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIENWUGl4ZWxCdWZmZXJHZXRQaXhlbEZvcm1h
dFR5cGUobV9waXhlbEJ1ZmZlci5nZXQoKSk7CiB9CitSZWZQdHI8V2ViQ29yZTo6VmlkZW9GcmFt
ZUNWPiBWaWRlb0ZyYW1lQ1Y6OmFzVmlkZW9GcmFtZUNWKCkKK3sKKyAgICByZXR1cm4gdGhpczsK
K30KKwogCiBJbWFnZU9yaWVudGF0aW9uIFZpZGVvRnJhbWVDVjo6b3JpZW50YXRpb24oKSBjb25z
dAogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9N
ZWRpYVJlY29yZGVyUHJpdmF0ZUFWRkltcGwuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyUHJpdmF0ZUFWRkltcGwuY3BwCmluZGV4IDMzZGIx
MmZhYWM3ZjYyNmY3MDUzODE4MTA4OGFmYTY0NTdjMGE0MDkuLjY5Y2RjOGE2MDRhN2U0NTZkMDU1
ZTFiNzNhY2ExYTA5OTkzZjBhNmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlclByaXZhdGVBVkZJbXBsLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcml2YXRlQVZG
SW1wbC5jcHAKQEAgLTMwLDYgKzMwLDcgQEAKIAogI2luY2x1ZGUgIkF1ZGlvU3RyZWFtRGVzY3Jp
cHRpb24uaCIKICNpbmNsdWRlICJDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24uaCIKKyNpbmNsdWRl
ICJDVlV0aWxpdGllcy5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJNZWRpYVJl
Y29yZGVyUHJpdmF0ZVdyaXRlckNvY29hLmgiCiAjaW5jbHVkZSAiTWVkaWFTYW1wbGVBVkZPYmpD
LmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMv
UmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlQ29jb2EuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZUluY29taW5nVmlkZW9Tb3VyY2VDb2NvYS5oCmlu
ZGV4IDY0NjZkNjE4ZGU3NDllNWM1ZjkyNjFkMjUyZGQ5YjBjMTllMWE1NzUuLjYwMzM4ZWEwNzM3
ZGI2MTY4ZmM2MTBiMWM0MjA1YzNhYWE2OWFiZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZUluY29taW5nVmlkZW9Tb3VyY2VDb2Nv
YS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGlt
ZUluY29taW5nVmlkZW9Tb3VyY2VDb2NvYS5oCkBAIC02OCw4ICs2OCw2IEBAIHByaXZhdGU6CiAg
ICAgd2VicnRjOjpCdWZmZXJUeXBlIG1fcGl4ZWxCdWZmZXJQb29sQnVmZmVyVHlwZTsKIH07CiAK
LVdFQkNPUkVfRVhQT1JUIFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiBjcmVhdGVCbGFja1Bp
eGVsQnVmZmVyKHNpemVfdCB3aWR0aCwgc2l6ZV90IGhlaWdodCk7Ci0KIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKIAogI2VuZGlmIC8vIFVTRShMSUJXRUJSVEMpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291
cmNlQ29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVh
bHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlQ29jb2EubW0KaW5kZXggN2EzNTI2YTM5MzU0ZGQ2OTlh
Y2Q3ZTYxYTg2NTgyYmYwNjcxYTU0YS4uY2YwMzg0Yjk5ZGI0YzljZDg5YWRhYWJjNGE1NGY1Y2M2
MjMxMDhlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
bWFjL1JlYWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZUNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZUluY29taW5nVmlkZW9Tb3VyY2VD
b2NvYS5tbQpAQCAtMzMsNyArMzMsNiBAQAogI2ltcG9ydCAiQ1ZVdGlsaXRpZXMuaCIKICNpbXBv
cnQgIkxvZ2dpbmcuaCIKICNpbXBvcnQgIk1lZGlhU2FtcGxlQVZGT2JqQy5oIgotI2ltcG9ydCAi
UmVhbHRpbWVWaWRlb1V0aWxpdGllcy5oIgogI2ltcG9ydCA8d3RmL2NmL1R5cGVDYXN0c0NGLmg+
CiAKIEFMTE9XX1VOVVNFRF9QQVJBTUVURVJTX0JFR0lOCkBAIC02MiwzMyArNjEsNiBAQCBSZWFs
dGltZUluY29taW5nVmlkZW9Tb3VyY2VDb2NvYTo6UmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNl
Q29jb2EocnRjOjpzY29wZWRfcgogewogfQogCi1SZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4g
Y3JlYXRlQmxhY2tQaXhlbEJ1ZmZlcihzaXplX3Qgd2lkdGgsIHNpemVfdCBoZWlnaHQpCi17Ci0g
ICAgT1NUeXBlIGZvcm1hdCA9IHByZWZlcmVkUGl4ZWxCdWZmZXJGb3JtYXQoKTsKLSAgICBBU1NF
UlQoZm9ybWF0ID09IGtDVlBpeGVsRm9ybWF0VHlwZV80MjBZcENiQ3I4QmlQbGFuYXJWaWRlb1Jh
bmdlIHx8IGZvcm1hdCA9PSBrQ1ZQaXhlbEZvcm1hdFR5cGVfNDIwWXBDYkNyOEJpUGxhbmFyRnVs
bFJhbmdlKTsKLQotICAgIENWUGl4ZWxCdWZmZXJSZWYgcGl4ZWxCdWZmZXIgPSBudWxscHRyOwot
ICAgIGF1dG8gc3RhdHVzID0gQ1ZQaXhlbEJ1ZmZlckNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0
LCB3aWR0aCwgaGVpZ2h0LCBmb3JtYXQsIG51bGxwdHIsICZwaXhlbEJ1ZmZlcik7Ci0gICAgQVNT
RVJUX1VOVVNFRChzdGF0dXMsIHN0YXR1cyA9PSBub0Vycik7Ci0KLSAgICBzdGF0dXMgPSBDVlBp
eGVsQnVmZmVyTG9ja0Jhc2VBZGRyZXNzKHBpeGVsQnVmZmVyLCAwKTsKLSAgICBBU1NFUlQoc3Rh
dHVzID09IG5vRXJyKTsKLQotICAgIGF1dG8qIHlQbGFuZSA9IHN0YXRpY19jYXN0PHVpbnQ4X3Qq
PihDVlBpeGVsQnVmZmVyR2V0QmFzZUFkZHJlc3NPZlBsYW5lKHBpeGVsQnVmZmVyLCAwKSk7Ci0g
ICAgc2l6ZV90IHlTdHJpZGUgPSBDVlBpeGVsQnVmZmVyR2V0Qnl0ZXNQZXJSb3dPZlBsYW5lKHBp
eGVsQnVmZmVyLCAwKTsKLSAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgaGVpZ2h0OyArK2kp
Ci0gICAgICAgIG1lbXNldCgmeVBsYW5lW2kgKiB5U3RyaWRlXSwgMCwgd2lkdGgpOwotCi0gICAg
YXV0byogdXZQbGFuZSA9IHN0YXRpY19jYXN0PHVpbnQ4X3QqPihDVlBpeGVsQnVmZmVyR2V0QmFz
ZUFkZHJlc3NPZlBsYW5lKHBpeGVsQnVmZmVyLCAxKSk7Ci0gICAgc2l6ZV90IHV2U3RyaWRlID0g
Q1ZQaXhlbEJ1ZmZlckdldEJ5dGVzUGVyUm93T2ZQbGFuZShwaXhlbEJ1ZmZlciwgMSk7Ci0gICAg
Zm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGhlaWdodCAvIDI7ICsraSkKLSAgICAgICAgbWVtc2V0
KCZ1dlBsYW5lW2kgKiB1dlN0cmlkZV0sIDEyOCwgd2lkdGgpOwotCi0gICAgc3RhdHVzID0gQ1ZQ
aXhlbEJ1ZmZlclVubG9ja0Jhc2VBZGRyZXNzKHBpeGVsQnVmZmVyLCAwKTsKLSAgICBBU1NFUlQo
IXN0YXR1cyk7Ci0gICAgcmV0dXJuIGFkb3B0Q0YocGl4ZWxCdWZmZXIpOwotfQotCiBDVlBpeGVs
QnVmZmVyUG9vbFJlZiBSZWFsdGltZUluY29taW5nVmlkZW9Tb3VyY2VDb2NvYTo6cGl4ZWxCdWZm
ZXJQb29sKHNpemVfdCB3aWR0aCwgc2l6ZV90IGhlaWdodCwgd2VicnRjOjpCdWZmZXJUeXBlIGJ1
ZmZlclR5cGUpCiB7CiAgICAgaWYgKCFtX3BpeGVsQnVmZmVyUG9vbCB8fCBtX3BpeGVsQnVmZmVy
UG9vbFdpZHRoICE9IHdpZHRoIHx8IG1fcGl4ZWxCdWZmZXJQb29sSGVpZ2h0ICE9IGhlaWdodCB8
fCBtX3BpeGVsQnVmZmVyUG9vbEJ1ZmZlclR5cGUgIT0gYnVmZmVyVHlwZSkgewpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lT3V0Z29p
bmdWaWRlb1NvdXJjZUNvY29hLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL21hYy9SZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2VDb2NvYS5jcHAKaW5kZXggYTM3NTk1
ZWIzNjkzMDhjNTY3ODY2Zjc4ODM0MTZlM2M4ZGVmZmE1OS4uNjk1MjA1ZjUwZjkyMzJhNDJiY2E1
MDBiMjQ0Yzg5OGZiYTY3NzE3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZUNvY29hLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVPdXRnb2lu
Z1ZpZGVvU291cmNlQ29jb2EuY3BwCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpZiBVU0UoTElCV0VC
UlRDKQogCisjaW5jbHVkZSAiQ1ZVdGlsaXRpZXMuaCIKICNpbmNsdWRlICJJbWFnZVJvdGF0aW9u
U2Vzc2lvblZULmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIlJlYWx0aW1lSW5j
b21pbmdWaWRlb1NvdXJjZUNvY29hLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKaW5kZXggMmRmMDllMGY5ZDllNmIw
NTgzZjA4YWUxOGM1YzhkNDQ1ODEzZjA2OS4uOTJkM2UzYTY0MTliYmQwYmVlYTgwYmZjOTI0ZjNm
ZWYyNTk1NTRjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVD
b25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcApAQCAtMTQxLDcgKzE0MSw2IEBACiAjZW5kaWYKIAog
I2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCi0jaW5jbHVkZSAiUmVtb3RlVmlkZW9GcmFtZU9iamVj
dEhlYXAuaCIKICNpbmNsdWRlIDxXZWJDb3JlL1NlY3VyaXR5T3JpZ2luLmg+CiAjZW5kaWYKIApA
QCAtMTU0LDYgKzE1MywxMCBAQAogI2luY2x1ZGUgIklQQ1Rlc3Rlck1lc3NhZ2VzLmgiCiAjZW5k
aWYKIAorI2lmIEVOQUJMRShWSURFTykKKyNpbmNsdWRlICJSZW1vdGVWaWRlb0ZyYW1lT2JqZWN0
SGVhcC5oIgorI2VuZGlmCisKIG5hbWVzcGFjZSBXZWJLaXQgewogdXNpbmcgbmFtZXNwYWNlIFdl
YkNvcmU7CiAKQEAgLTI0NCw3ICsyNDcsNyBAQCBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpH
UFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzKEdQVVByb2Nlc3MmIGdwdVByb2Nlc3MsIFdlYgogI2lm
IEVOQUJMRShNRURJQV9TVFJFQU0pCiAgICAgLCBtX2NhcHR1cmVPcmlnaW4oU2VjdXJpdHlPcmln
aW46OmNyZWF0ZVVuaXF1ZSgpKQogI2VuZGlmCi0jaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyNp
ZiBFTkFCTEUoVklERU8pCiAgICAgLCBtX3ZpZGVvRnJhbWVPYmplY3RIZWFwKFJlbW90ZVZpZGVv
RnJhbWVPYmplY3RIZWFwOjpjcmVhdGUoKnRoaXMpKQogI2VuZGlmCiAjaWYgUExBVEZPUk0oQ09D
T0EpICYmIFVTRShMSUJXRUJSVEMpCkBAIC0zMDIsNyArMzA1LDcgQEAgdm9pZCBHUFVDb25uZWN0
aW9uVG9XZWJQcm9jZXNzOjpkaWRDbG9zZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24pCiAg
ICAgICAgIG1fYXVkaW9TZXNzaW9uUHJveHkgPSBudWxscHRyOwogICAgIH0KICNlbmRpZgotI2lm
IEVOQUJMRShNRURJQV9TVFJFQU0pCisjaWYgRU5BQkxFKFZJREVPKQogICAgIG1fdmlkZW9GcmFt
ZU9iamVjdEhlYXAucmVzZXQoKTsKICNlbmRpZgogICAgIC8vIFJlbW90ZVJlbmRlcmluZ0JhY2tl
bmQgb2JqZWN0cyByZWYgdGhlaXIgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyBzbyB3ZSBuZWVk
IHRvIG1ha2Ugc3VyZQpAQCAtOTQ3LDEzICs5NTAsMTQgQEAgYm9vbCBHUFVDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzOjpzZXRDYXB0dXJlQXR0cmlidXRpb25TdHJpbmcoKSBjb25zdAogewogfQogI2Vu
ZGlmCisjZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NUUkVBTSkKIAorI2lmIEVOQUJMRShWSURFTykK
IFJlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwJiBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjp2
aWRlb0ZyYW1lT2JqZWN0SGVhcCgpIGNvbnN0CiB7CiAgICAgcmV0dXJuICptX3ZpZGVvRnJhbWVP
YmplY3RIZWFwLmdldCgpOwogfQotCi0jZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NUUkVBTSkKKyNl
bmRpZgogCiAjaWYgUExBVEZPUk0oTUFDKQogdm9pZCBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNz
OjpkaXNwbGF5Q29uZmlndXJhdGlvbkNoYW5nZWQoQ0dEaXJlY3REaXNwbGF5SUQsIENHRGlzcGxh
eUNoYW5nZVN1bW1hcnlGbGFncyBmbGFncykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCmluZGV4IDBhMWNlYmRmYjg5YjlmYTI5
ZmJmZDFkN2M2NjlhYjM2MTJhYzVkMzUuLmI3MmMwYjM3MzYyYjczOWRiZmEzZWQ5YTBjNGEwMWUz
YjIxYjFlOTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0
aW9uVG9XZWJQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MuaApAQCAtMTA2LDcgKzEwNiw3IEBAIHN0cnVjdCBSZW1vdGVSZW5k
ZXJpbmdCYWNrZW5kQ3JlYXRpb25QYXJhbWV0ZXJzOwogY2xhc3MgUmVtb3RlV0NMYXllclRyZWVI
b3N0OwogI2VuZGlmCiAKLSNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorI2lmIEVOQUJMRShWSURF
TykKIGNsYXNzIFJlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwOwogI2VuZGlmCiAKQEAgLTE0NSw5
ICsxNDUsMTAgQEAgcHVibGljOgogICAgIGJvb2wgYWxsb3dzQXVkaW9DYXB0dXJlKCkgY29uc3Qg
eyByZXR1cm4gbV9hbGxvd3NBdWRpb0NhcHR1cmU7IH0KICAgICBib29sIGFsbG93c1ZpZGVvQ2Fw
dHVyZSgpIGNvbnN0IHsgcmV0dXJuIG1fYWxsb3dzVmlkZW9DYXB0dXJlOyB9CiAgICAgYm9vbCBh
bGxvd3NEaXNwbGF5Q2FwdHVyZSgpIGNvbnN0IHsgcmV0dXJuIG1fYWxsb3dzRGlzcGxheUNhcHR1
cmU7IH0KKyNlbmRpZgorI2lmIEVOQUJMRShWSURFTykKICAgICBSZW1vdGVWaWRlb0ZyYW1lT2Jq
ZWN0SGVhcCYgdmlkZW9GcmFtZU9iamVjdEhlYXAoKSBjb25zdDsKICNlbmRpZgotCiAjaWYgUExB
VEZPUk0oQ09DT0EpICYmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAgICAgdm9pZCBzdGFydENhcHR1
cmluZ0F1ZGlvKCk7CiAgICAgdm9pZCBwcm9jZXNzSXNTdGFydGluZ1RvQ2FwdHVyZUF1ZGlvKEdQ
VUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmKTsKQEAgLTMwNyw2ICszMDgsOCBAQCBwcml2YXRlOgog
ICAgIGJvb2wgbV9hbGxvd3NBdWRpb0NhcHR1cmUgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9hbGxv
d3NWaWRlb0NhcHR1cmUgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9hbGxvd3NEaXNwbGF5Q2FwdHVy
ZSB7IGZhbHNlIH07CisjZW5kaWYKKyNpZiBFTkFCTEUoVklERU8pCiAgICAgSVBDOjpTY29wZWRB
Y3RpdmVNZXNzYWdlUmVjZWl2ZVF1ZXVlPFJlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwPiBtX3Zp
ZGVvRnJhbWVPYmplY3RIZWFwOwogI2VuZGlmCiAjaWYgUExBVEZPUk0oQ09DT0EpICYmIFVTRShM
SUJXRUJSVEMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3Mv
UmVtb3RlR3JhcGhpY3NDb250ZXh0R0wuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dy
YXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMLmNwcAppbmRleCA0YTY3YzVkMTZlNWEwZmY5
Zjk4N2ZkMjQzYTJkYjk1OGQzZGUyYThhLi5jNTA5OWZhMTU4MTc1NWZlZTNhM2QyNTk5NTA5NWQw
MjJiZTRlOTRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3Mv
UmVtb3RlR3JhcGhpY3NDb250ZXh0R0wuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTC5jcHAKQEAgLTM4LDExICszOCw3IEBA
CiAjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95
ZWQuaD4KIAotI2lmIFVTRShBVkZPVU5EQVRJT04pCi0jaW5jbHVkZSA8V2ViQ29yZS9HcmFwaGlj
c0NvbnRleHRHTENWLmg+Ci0jZW5kaWYKLQotI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisjaWYg
RU5BQkxFKFZJREVPKQogI2luY2x1ZGUgIlJlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwLmgiCiAj
ZW5kaWYKIApAQCAtNzIsNyArNjgsNyBAQCBSZW1vdGVHcmFwaGljc0NvbnRleHRHTDo6UmVtb3Rl
R3JhcGhpY3NDb250ZXh0R0woR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYgZ3B1QwogICAgICwg
bV9zdHJlYW1Db25uZWN0aW9uKElQQzo6U3RyZWFtU2VydmVyQ29ubmVjdGlvbjo6Y3JlYXRlKGdw
dUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY29ubmVjdGlvbigpLCBXVEZNb3ZlKHN0cmVhbSksIHJl
bW90ZUdyYXBoaWNzQ29udGV4dEdMU3RyZWFtV29ya1F1ZXVlKCkpKQogICAgICwgbV9ncmFwaGlj
c0NvbnRleHRHTElkZW50aWZpZXIoZ3JhcGhpY3NDb250ZXh0R0xJZGVudGlmaWVyKQogICAgICwg
bV9yZW5kZXJpbmdCYWNrZW5kKHJlbmRlcmluZ0JhY2tlbmQpCi0jaWYgRU5BQkxFKE1FRElBX1NU
UkVBTSkKKyNpZiBFTkFCTEUoVklERU8pCiAgICAgLCBtX3ZpZGVvRnJhbWVPYmplY3RIZWFwKGdw
dUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MudmlkZW9GcmFtZU9iamVjdEhlYXAoKSkKICNlbmRpZgog
ICAgICwgbV9yZW5kZXJpbmdSZXNvdXJjZXNSZXF1ZXN0KFNjb3BlZFdlYkdMUmVuZGVyaW5nUmVz
b3VyY2VzUmVxdWVzdDo6YWNxdWlyZSgpKQpAQCAtMjgwLDUxICsyNzYsMTUgQEAgdm9pZCBSZW1v
dGVHcmFwaGljc0NvbnRleHRHTDo6cGFpbnRQaXhlbEJ1ZmZlclRvSW1hZ2VCdWZmZXIoc3RkOjpv
cHRpb25hbDxXZWJDb3IKICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwogfQogCi12b2lkIFJlbW90
ZUdyYXBoaWNzQ29udGV4dEdMOjpjb3B5VGV4dHVyZUZyb21NZWRpYShXZWJDb3JlOjpNZWRpYVBs
YXllcklkZW50aWZpZXIgbWVkaWFQbGF5ZXJJZGVudGlmaWVyLCB1aW50MzJfdCB0ZXh0dXJlLCB1
aW50MzJfdCB0YXJnZXQsIGludDMyX3QgbGV2ZWwsIHVpbnQzMl90IGludGVybmFsRm9ybWF0LCB1
aW50MzJfdCBmb3JtYXQsIHVpbnQzMl90IHR5cGUsIGJvb2wgcHJlbXVsdGlwbHlBbHBoYSwgYm9v
bCBmbGlwWSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxl
cikKKyNpZiBFTkFCTEUoVklERU8pICYmICFVU0UoQVZGT1VOREFUSU9OKQordm9pZCBSZW1vdGVH
cmFwaGljc0NvbnRleHRHTDo6Y29weVRleHR1cmVGcm9tVmlkZW9GcmFtZShXZWJLaXQ6OlJlbW90
ZVZpZGVvRnJhbWVSZWFkUmVmZXJlbmNlIHJlYWQsIHVpbnQzMl90LCB1aW50MzJfdCwgaW50MzJf
dCwgdWludDMyX3QsIHVpbnQzMl90LCB1aW50MzJfdCwgYm9vbCwgYm9vbCAsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7Ci0gICAgYXNzZXJ0SXND
dXJyZW50KG1fc3RyZWFtVGhyZWFkKTsKLSNpZiBVU0UoQVZGT1VOREFUSU9OKQotICAgIFVOVVNF
RF9WQVJJQUJMRShwcmVtdWx0aXBseUFscGhhKTsKLSAgICBBU1NFUlRfVU5VU0VEKHRhcmdldCwg
dGFyZ2V0ID09IEdyYXBoaWNzQ29udGV4dEdMOjpURVhUVVJFXzJEKTsKLQotICAgIFJlZlB0cjxW
aWRlb0ZyYW1lPiB2aWRlb0ZyYW1lOwotICAgIGF1dG8gZ2V0VmlkZW9GcmFtZSA9IFsmXSB7Ci0g
ICAgICAgIGlmICghbV9ncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzKQotICAgICAgICAgICAgcmV0
dXJuOwotCi0gICAgICAgIGlmIChhdXRvIG1lZGlhUGxheWVyID0gbV9ncHVDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzLT5yZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eSgpLm1lZGlhUGxheWVyKG1l
ZGlhUGxheWVySWRlbnRpZmllcikpCi0gICAgICAgICAgICB2aWRlb0ZyYW1lID0gbWVkaWFQbGF5
ZXItPnZpZGVvRnJhbWVGb3JDdXJyZW50VGltZSgpOwotICAgIH07Ci0KLSAgICBjYWxsT25NYWlu
UnVuTG9vcEFuZFdhaXQoV1RGTW92ZShnZXRWaWRlb0ZyYW1lKSk7Ci0KLSAgICBpZiAoIXZpZGVv
RnJhbWUgfHwgIWlzPFZpZGVvRnJhbWVDVj4oKnZpZGVvRnJhbWUpKSB7Ci0gICAgICAgIGNvbXBs
ZXRpb25IYW5kbGVyKGZhbHNlKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIGF1dG8g
Y29udGV4dENWID0gbV9jb250ZXh0LT5hc0NWKCk7Ci0gICAgaWYgKCFjb250ZXh0Q1YpIHsKLSAg
ICAgICAgY29tcGxldGlvbkhhbmRsZXIoZmFsc2UpOwotICAgICAgICByZXR1cm47Ci0gICAgfQot
Ci0gICAgY29tcGxldGlvbkhhbmRsZXIoY29udGV4dENWLT5jb3B5VmlkZW9TYW1wbGVUb1RleHR1
cmUoZG93bmNhc3Q8VmlkZW9GcmFtZUNWPigqdmlkZW9GcmFtZSksIHRleHR1cmUsIGxldmVsLCBp
bnRlcm5hbEZvcm1hdCwgZm9ybWF0LCB0eXBlLCBHcmFwaGljc0NvbnRleHRHTDo6RmxpcFkoZmxp
cFkpKSk7Ci0jZWxzZQotICAgIFVOVVNFRF9WQVJJQUJMRShtZWRpYVBsYXllcklkZW50aWZpZXIp
OwotICAgIFVOVVNFRF9WQVJJQUJMRSh0ZXh0dXJlKTsKLSAgICBVTlVTRURfVkFSSUFCTEUodGFy
Z2V0KTsKLSAgICBVTlVTRURfVkFSSUFCTEUobGV2ZWwpOwotICAgIFVOVVNFRF9WQVJJQUJMRShp
bnRlcm5hbEZvcm1hdCk7Ci0gICAgVU5VU0VEX1ZBUklBQkxFKGZvcm1hdCk7Ci0gICAgVU5VU0VE
X1ZBUklBQkxFKHR5cGUpOwotICAgIFVOVVNFRF9WQVJJQUJMRShwcmVtdWx0aXBseUFscGhhKTsK
LSAgICBVTlVTRURfVkFSSUFCTEUoZmxpcFkpOwotCiAgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAg
ICBhdXRvIHZpZGVvRnJhbWUgPSBtX3ZpZGVvRnJhbWVPYmplY3RIZWFwLnJldGlyZShyZWFkLCBk
ZWZhdWx0VGltZW91dCk7CisgICAgVU5VU0VEKHZpZGVvRnJhbWUpOwogICAgIGNvbXBsZXRpb25I
YW5kbGVyKGZhbHNlKTsKLSNlbmRpZgogfQorI2VuZGlmCiAKIHZvaWQgUmVtb3RlR3JhcGhpY3ND
b250ZXh0R0w6OnNpbXVsYXRlRXZlbnRGb3JUZXN0aW5nKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4
dEdMOjpTaW11bGF0ZWRFdmVudEZvclRlc3RpbmcgZXZlbnQpCiB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0wuaCBi
L1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRH
TC5oCmluZGV4IGZmMjg0NWVkNDJmMzQ3YTliOGFiODU3MjFlNjJlZWIxNGU1MTdmMDguLjIzZTlh
N2NiNDJmYzQ5OTBjYTJlODZhMDA3NDkyZmQ4YmE0ZDkzYTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTC5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRH
TC5oCkBAIC01Myw3ICs1Myw3IEBACiAjaW5jbHVkZSAiV0NDb250ZW50QnVmZmVySWRlbnRpZmll
ci5oIgogI2VuZGlmCiAKLSNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorI2lmIEVOQUJMRShWSURF
TykKICNpbmNsdWRlICJSZW1vdGVWaWRlb0ZyYW1lSWRlbnRpZmllci5oIgogI2luY2x1ZGUgIlJl
bW90ZVZpZGVvRnJhbWVQcm94eS5oIgogI2VuZGlmCkBAIC02NSw3ICs2NSw3IEBAIGNsYXNzIE1h
Y2hTZW5kUmlnaHQ7CiAjZW5kaWYKIAogbmFtZXNwYWNlIFdlYktpdCB7Ci0jaWYgRU5BQkxFKE1F
RElBX1NUUkVBTSkKKyNpZiBFTkFCTEUoVklERU8pCiBjbGFzcyBSZW1vdGVWaWRlb0ZyYW1lT2Jq
ZWN0SGVhcDsKICNlbmRpZgogCkBAIC0xMTgsNyArMTE4LDkgQEAgcHJvdGVjdGVkOgogI2lmIEVO
QUJMRShNRURJQV9TVFJFQU0pCiAgICAgdm9pZCBwYWludENvbXBvc2l0ZWRSZXN1bHRzVG9NZWRp
YVNhbXBsZShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8V2ViS2l0OjpSZW1v
dGVWaWRlb0ZyYW1lUHJveHk6OlByb3BlcnRpZXM+JiYpPiYmKTsKICNlbmRpZgotICAgIHZvaWQg
Y29weVRleHR1cmVGcm9tTWVkaWEoV2ViQ29yZTo6TWVkaWFQbGF5ZXJJZGVudGlmaWVyLCB1aW50
MzJfdCB0ZXh0dXJlLCB1aW50MzJfdCB0YXJnZXQsIGludDMyX3QgbGV2ZWwsIHVpbnQzMl90IGlu
dGVybmFsRm9ybWF0LCB1aW50MzJfdCBmb3JtYXQsIHVpbnQzMl90IHR5cGUsIGJvb2wgcHJlbXVs
dGlwbHlBbHBoYSwgYm9vbCBmbGlwWSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7
CisjaWYgRU5BQkxFKFZJREVPKQorICAgIHZvaWQgY29weVRleHR1cmVGcm9tVmlkZW9GcmFtZShS
ZW1vdGVWaWRlb0ZyYW1lUmVhZFJlZmVyZW5jZSwgdWludDMyX3QgdGV4dHVyZSwgdWludDMyX3Qg
dGFyZ2V0LCBpbnQzMl90IGxldmVsLCB1aW50MzJfdCBpbnRlcm5hbEZvcm1hdCwgdWludDMyX3Qg
Zm9ybWF0LCB1aW50MzJfdCB0eXBlLCBib29sIHByZW11bHRpcGx5QWxwaGEsIGJvb2wgZmxpcFks
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOworI2VuZGlmCiAgICAgdm9pZCBzaW11
bGF0ZUV2ZW50Rm9yVGVzdGluZyhXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTDo6U2ltdWxhdGVk
RXZlbnRGb3JUZXN0aW5nKTsKIAogI2luY2x1ZGUgIlJlbW90ZUdyYXBoaWNzQ29udGV4dEdMRnVu
Y3Rpb25zR2VuZXJhdGVkLmgiIC8vIE5PTElOVApAQCAtMTMxLDYgKzEzMyw3IEBAIHByaXZhdGU6
CiBwcm90ZWN0ZWQ6CiAgICAgV2Vha1B0cjxHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzPiBtX2dw
dUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M7CiAgICAgUmVmUHRyPElQQzo6U3RyZWFtU2VydmVyQ29u
bmVjdGlvbj4gbV9zdHJlYW1Db25uZWN0aW9uOworICAgIHN0YXRpYyBjb25zdGV4cHIgU2Vjb25k
cyBkZWZhdWx0VGltZW91dCA9IDEwX3M7CiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgdXNpbmcg
R0NHTENvbnRleHQgPSBXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTENvY29hOwogI2Vsc2UKQEAg
LTE0MCw3ICsxNDMsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgUmVmUHRyPEdDR0xDb250ZXh0PiBtX2Nv
bnRleHQgV1RGX0dVQVJERURfQllfTE9DSyhtX3N0cmVhbVRocmVhZCk7CiAgICAgR3JhcGhpY3ND
b250ZXh0R0xJZGVudGlmaWVyIG1fZ3JhcGhpY3NDb250ZXh0R0xJZGVudGlmaWVyOwogICAgIFJl
ZjxSZW1vdGVSZW5kZXJpbmdCYWNrZW5kPiBtX3JlbmRlcmluZ0JhY2tlbmQ7Ci0jaWYgRU5BQkxF
KE1FRElBX1NUUkVBTSkKKyNpZiBFTkFCTEUoVklERU8pCiAgICAgUmVmPFJlbW90ZVZpZGVvRnJh
bWVPYmplY3RIZWFwPiBtX3ZpZGVvRnJhbWVPYmplY3RIZWFwOwogI2VuZGlmCiAgICAgU2NvcGVk
V2ViR0xSZW5kZXJpbmdSZXNvdXJjZXNSZXF1ZXN0IG1fcmVuZGVyaW5nUmVzb3VyY2VzUmVxdWVz
dDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVH
cmFwaGljc0NvbnRleHRHTC5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9n
cmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTC5tZXNzYWdlcy5pbgppbmRleCA3OWNjNmE0
YzcxYzBmOTUwM2I0YzViZmE0M2ZjMzA5MDdhZDhiNTBmLi5kMjc2NTg1YTIyY2RiZDM3ZTU5MGRm
NmQ4MzAyM2I3YTM0ZDBjNDdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
Z3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0wubWVzc2FnZXMuaW4KKysrIGIvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMLm1lc3Nh
Z2VzLmluCkBAIC00MSw3ICs0MSw5IEBAIG1lc3NhZ2VzIC0+IFJlbW90ZUdyYXBoaWNzQ29udGV4
dEdMIE5vdFJlZkNvdW50ZWQgU3RyZWFtIHsKICAgICB2b2lkIEdldEVycm9yKCkgLT4gKHVpbnQz
Ml90IHJldHVyblZhbHVlKSBTeW5jaHJvbm91cwogICAgIHZvaWQgUGFpbnRSZW5kZXJpbmdSZXN1
bHRzVG9DYW52YXMoV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIGltYWdlQnVm
ZmVyKSAtPiAoKSBTeW5jaHJvbm91cwogICAgIHZvaWQgUGFpbnRDb21wb3NpdGVkUmVzdWx0c1Rv
Q2FudmFzKFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciBpbWFnZUJ1ZmZlcikg
LT4gKCkgU3luY2hyb25vdXMKLSAgICB2b2lkIENvcHlUZXh0dXJlRnJvbU1lZGlhKFdlYkNvcmU6
Ok1lZGlhUGxheWVySWRlbnRpZmllciBpZGVudGlmaWVyLCB1aW50MzJfdCB0ZXh0dXJlLCB1aW50
MzJfdCB0YXJnZXQsIGludDMyX3QgbGV2ZWwsIHVpbnQzMl90IGludGVybmFsRm9ybWF0LCB1aW50
MzJfdCBmb3JtYXQsIHVpbnQzMl90IHR5cGUsIGJvb2wgcHJlbXVsdGlwbHlBbHBoYSwgYm9vbCBm
bGlwWSkgLT4gKGJvb2wgc3VjY2VzcykgU3luY2hyb25vdXMKKyNpZiBFTkFCTEUoVklERU8pCisg
ICAgdm9pZCBDb3B5VGV4dHVyZUZyb21WaWRlb0ZyYW1lKFdlYktpdDo6UmVtb3RlVmlkZW9GcmFt
ZVJlYWRSZWZlcmVuY2UgdmlkZW9GcmFtZSwgdWludDMyX3QgdGV4dHVyZSwgdWludDMyX3QgdGFy
Z2V0LCBpbnQzMl90IGxldmVsLCB1aW50MzJfdCBpbnRlcm5hbEZvcm1hdCwgdWludDMyX3QgZm9y
bWF0LCB1aW50MzJfdCB0eXBlLCBib29sIHByZW11bHRpcGx5QWxwaGEsIGJvb2wgZmxpcFkpIC0+
IChib29sIHN1Y2Nlc3MpIFN5bmNocm9ub3VzCisjZW5kaWYKICNpZiBFTkFCTEUoTUVESUFfU1RS
RUFNKQogICAgIHZvaWQgUGFpbnRDb21wb3NpdGVkUmVzdWx0c1RvTWVkaWFTYW1wbGUoKSAtPiAo
c3RkOjpvcHRpb25hbDxXZWJLaXQ6OlJlbW90ZVZpZGVvRnJhbWVQcm94eTo6UHJvcGVydGllcz4g
cHJvcGVydGllcykgU3luY2hyb25vdXMKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMQ29jb2EuY3BwIGIv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdM
Q29jb2EuY3BwCmluZGV4IDZjOTA2MWI1ZTJlZmU1YjJmY2RjMGY4NTAxOGZjYzFiOTY0N2VlMDYu
Ljc5ZGY5OWNlMjljMzNhMGI0ZmE0NzAwMjU0NzA0ZjhlMDNlMWFjNzEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTENv
Y29hLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3Jh
cGhpY3NDb250ZXh0R0xDb2NvYS5jcHAKQEAgLTI5LDExICsyOSw1NSBAQAogI2lmIEVOQUJMRShH
UFVfUFJPQ0VTUykgJiYgRU5BQkxFKFdFQkdMKSAmJiBQTEFURk9STShDT0NPQSkKIAogI2luY2x1
ZGUgIkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCIKKyNpbmNsdWRlICJJUENUZXN0ZXIuaCIK
ICNpbmNsdWRlIDxXZWJDb3JlL1Byb2Nlc3NJZGVudGl0eS5oPgogI2luY2x1ZGUgPHd0Zi9NYWNo
U2VuZFJpZ2h0Lmg+CiAKKworI2lmIEVOQUJMRShWSURFTykKKyNpbmNsdWRlICJSZW1vdGVWaWRl
b0ZyYW1lT2JqZWN0SGVhcC5oIgorI2luY2x1ZGUgPFdlYkNvcmUvR3JhcGhpY3NDb250ZXh0R0xD
Vi5oPgorI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFTYW1wbGVBVkZPYmpDLmg+CisjaW5jbHVkZSA8
V2ViQ29yZS9WaWRlb0ZyYW1lQ1YuaD4KKyNlbmRpZgorCiBuYW1lc3BhY2UgV2ViS2l0IHsKLXVz
aW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCisjaWYgRU5BQkxFKFZJREVPKQordm9pZCBSZW1vdGVH
cmFwaGljc0NvbnRleHRHTDo6Y29weVRleHR1cmVGcm9tVmlkZW9GcmFtZShXZWJLaXQ6OlJlbW90
ZVZpZGVvRnJhbWVSZWFkUmVmZXJlbmNlIHJlYWQsIHVpbnQzMl90IHRleHR1cmUsIHVpbnQzMl90
IHRhcmdldCwgaW50MzJfdCBsZXZlbCwgdWludDMyX3QgaW50ZXJuYWxGb3JtYXQsIHVpbnQzMl90
IGZvcm1hdCwgdWludDMyX3QgdHlwZSwgYm9vbCBwcmVtdWx0aXBseUFscGhhLCBib29sIGZsaXBZ
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQorewor
ICAgIGFzc2VydElzQ3VycmVudChtX3N0cmVhbVRocmVhZCk7CisgICAgVU5VU0VEX1ZBUklBQkxF
KHByZW11bHRpcGx5QWxwaGEpOworICAgIEFTU0VSVF9VTlVTRUQodGFyZ2V0LCB0YXJnZXQgPT0g
V2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0w6OlRFWFRVUkVfMkQpOworCisgICAgYXV0byB2aWRl
b0ZyYW1lID0gbV92aWRlb0ZyYW1lT2JqZWN0SGVhcC0+cmV0aXJlKFdURk1vdmUocmVhZCksIGRl
ZmF1bHRUaW1lb3V0KTsKKyAgICBpZiAoIXZpZGVvRnJhbWUpIHsKKyAgICAgICAgQVNTRVJUX0lT
X1RFU1RJTkdfSVBDKCk7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGZhbHNlKTsKKyAgICAg
ICAgcmV0dXJuOworICAgIH0KKyAgICAvLyBOb3RlOiBUaGlzIGV4dHJhIGNhc3RpbmcgaXMgbmVl
ZGVkIHNpbmNlIFZpZGVvRnJhbWVzIGFyZSBzdGlsbCBNZWRpYVNhbXBsZXMuCisgICAgUmVmUHRy
PFdlYkNvcmU6OlZpZGVvRnJhbWVDVj4gdmlkZW9GcmFtZUNWOworICAgIGlmIChpczxXZWJDb3Jl
OjpWaWRlb0ZyYW1lQ1Y+KCp2aWRlb0ZyYW1lKSkKKyAgICAgICAgdmlkZW9GcmFtZUNWID0gJmRv
d25jYXN0PFdlYkNvcmU6OlZpZGVvRnJhbWVDVj4oKnZpZGVvRnJhbWUpOworICAgIGVsc2UgaWYg
KGlzPFdlYkNvcmU6Ok1lZGlhU2FtcGxlQVZGT2JqQz4oKnZpZGVvRnJhbWUpKQorICAgICAgICB2
aWRlb0ZyYW1lQ1YgPSBkb3duY2FzdDxXZWJDb3JlOjpNZWRpYVNhbXBsZUFWRk9iakM+KCp2aWRl
b0ZyYW1lKS52aWRlb0ZyYW1lKCk7CisgICAgZWxzZSB7CisgICAgICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOyAvLyBQcm9ncmFtbWluZyBlcnJvciwgbm90IGEgSVBDIGF0dGFjay4KKyAgICAgICAg
Y29tcGxldGlvbkhhbmRsZXIoZmFsc2UpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAg
YXV0byBjb250ZXh0Q1YgPSBtX2NvbnRleHQtPmFzQ1YoKTsKKyAgICBpZiAoIWNvbnRleHRDVikg
eworICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgY29tcGxldGlvbkhhbmRs
ZXIoZmFsc2UpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgY29tcGxldGlvbkhhbmRs
ZXIoY29udGV4dENWLT5jb3B5VmlkZW9TYW1wbGVUb1RleHR1cmUoKnZpZGVvRnJhbWVDViwgdGV4
dHVyZSwgbGV2ZWwsIGludGVybmFsRm9ybWF0LCBmb3JtYXQsIHR5cGUsIFdlYkNvcmU6OkdyYXBo
aWNzQ29udGV4dEdMOjpGbGlwWShmbGlwWSkpKTsKK30KKyNlbmRpZgogCiBuYW1lc3BhY2Ugewog
CkBAIC00NiwxMiArOTAsMTIgQEAgcHVibGljOgogICAgIHZvaWQgcGxhdGZvcm1Xb3JrUXVldWVJ
bml0aWFsaXplKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyYmKSBmaW5hbDsK
ICAgICB2b2lkIHByZXBhcmVGb3JEaXNwbGF5KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV1RGOjpN
YWNoU2VuZFJpZ2h0JiYpPiYmKSBmaW5hbDsKIHByaXZhdGU6Ci0gICAgY29uc3QgUHJvY2Vzc0lk
ZW50aXR5IG1fcmVzb3VyY2VPd25lcjsKKyAgICBjb25zdCBXZWJDb3JlOjpQcm9jZXNzSWRlbnRp
dHkgbV9yZXNvdXJjZU93bmVyOwogfTsKIAogfQogCi1SZWY8UmVtb3RlR3JhcGhpY3NDb250ZXh0
R0w+IFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMOjpjcmVhdGUoR1BVQ29ubmVjdGlvblRvV2ViUHJv
Y2VzcyYgZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2VzcywgR3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1
dGVzJiYgYXR0cmlidXRlcywgR3JhcGhpY3NDb250ZXh0R0xJZGVudGlmaWVyIGdyYXBoaWNzQ29u
dGV4dEdMSWRlbnRpZmllciwgUmVtb3RlUmVuZGVyaW5nQmFja2VuZCYgcmVuZGVyaW5nQmFja2Vu
ZCwgSVBDOjpTdHJlYW1Db25uZWN0aW9uQnVmZmVyJiYgc3RyZWFtKQorUmVmPFJlbW90ZUdyYXBo
aWNzQ29udGV4dEdMPiBSZW1vdGVHcmFwaGljc0NvbnRleHRHTDo6Y3JlYXRlKEdQVUNvbm5lY3Rp
b25Ub1dlYlByb2Nlc3MmIGdwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MsIFdlYkNvcmU6OkdyYXBo
aWNzQ29udGV4dEdMQXR0cmlidXRlcyYmIGF0dHJpYnV0ZXMsIEdyYXBoaWNzQ29udGV4dEdMSWRl
bnRpZmllciBncmFwaGljc0NvbnRleHRHTElkZW50aWZpZXIsIFJlbW90ZVJlbmRlcmluZ0JhY2tl
bmQmIHJlbmRlcmluZ0JhY2tlbmQsIElQQzo6U3RyZWFtQ29ubmVjdGlvbkJ1ZmZlciYmIHN0cmVh
bSkKIHsKICAgICBhdXRvIGluc3RhbmNlID0gYWRvcHRSZWYoKm5ldyBSZW1vdGVHcmFwaGljc0Nv
bnRleHRHTENvY29hKGdwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MsIGdyYXBoaWNzQ29udGV4dEdM
SWRlbnRpZmllciwgcmVuZGVyaW5nQmFja2VuZCwgV1RGTW92ZShzdHJlYW0pKSk7CiAgICAgaW5z
dGFuY2UtPmluaXRpYWxpemUoV1RGTW92ZShhdHRyaWJ1dGVzKSk7CkBAIC02MiwxMyArMTA2LDEy
IEBAIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMQ29jb2E6OlJlbW90ZUdyYXBoaWNzQ29udGV4dEdM
Q29jb2EoR1BVQ29ubmVjdGlvblRvV2ViUHJvCiAgICAgOiBSZW1vdGVHcmFwaGljc0NvbnRleHRH
TChncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLCBncmFwaGljc0NvbnRleHRHTElkZW50aWZpZXIs
IHJlbmRlcmluZ0JhY2tlbmQsIFdURk1vdmUoc3RyZWFtKSkKICAgICAsIG1fcmVzb3VyY2VPd25l
cihncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLndlYlByb2Nlc3NJZGVudGl0eSgpKQogewotCiB9
CiAKIHZvaWQgUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xDb2NvYTo6cGxhdGZvcm1Xb3JrUXVldWVJ
bml0aWFsaXplKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyYmIGF0dHJpYnV0
ZXMpCiB7CiAgICAgYXNzZXJ0SXNDdXJyZW50KG1fc3RyZWFtVGhyZWFkKTsKLSAgICBtX2NvbnRl
eHQgPSBHcmFwaGljc0NvbnRleHRHTENvY29hOjpjcmVhdGUoV1RGTW92ZShhdHRyaWJ1dGVzKSwg
UHJvY2Vzc0lkZW50aXR5IHsgbV9yZXNvdXJjZU93bmVyIH0pOworICAgIG1fY29udGV4dCA9IFdl
YkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMQ29jb2E6OmNyZWF0ZShXVEZNb3ZlKGF0dHJpYnV0ZXMp
LCBXZWJDb3JlOjpQcm9jZXNzSWRlbnRpdHkgeyBtX3Jlc291cmNlT3duZXIgfSk7CiB9CiAKIHZv
aWQgUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xDb2NvYTo6cHJlcGFyZUZvckRpc3BsYXkoQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChXVEY6Ok1hY2hTZW5kUmlnaHQmJik+JiYgY29tcGxldGlvbkhhbmRs
ZXIpCkBAIC03Niw3ICsxMTksNyBAQCB2b2lkIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMQ29jb2E6
OnByZXBhcmVGb3JEaXNwbGF5KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV1RGOgogICAgIGFzc2Vy
dElzQ3VycmVudChtX3N0cmVhbVRocmVhZCk7CiAgICAgbV9jb250ZXh0LT5wcmVwYXJlRm9yRGlz
cGxheSgpOwogICAgIE1hY2hTZW5kUmlnaHQgc2VuZFJpZ2h0OwotICAgIElPU3VyZmFjZSogZGlz
cGxheUJ1ZmZlciA9IG1fY29udGV4dC0+ZGlzcGxheUJ1ZmZlcigpOworICAgIFdlYkNvcmU6OklP
U3VyZmFjZSogZGlzcGxheUJ1ZmZlciA9IG1fY29udGV4dC0+ZGlzcGxheUJ1ZmZlcigpOwogICAg
IGlmIChkaXNwbGF5QnVmZmVyKSB7CiAgICAgICAgIG1fY29udGV4dC0+bWFya0Rpc3BsYXlCdWZm
ZXJJblVzZSgpOwogICAgICAgICBzZW5kUmlnaHQgPSBkaXNwbGF5QnVmZmVyLT5jcmVhdGVTZW5k
UmlnaHQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1v
dGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
bWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkuY3BwCmluZGV4IDlhMDc4N2Q2Nzk5
YmFjMGY4MTAyNzc1MmI0YTVjYThjOGNlMjAyYTAuLjFhMzFmMGQ1NGJiNWRiNzBmMDRmYjk4MGE2
MGEyZDlhNjU0MDQ4M2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRp
YS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5LmNwcApAQCAtNjcs
NyArNjcsNyBAQCB2b2lkIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5OjpjcmVhdGVNZWRp
YVBsYXllcihNZWRpYVBsYXllcklkZW50aWZpZXIgaWRlbgogICAgIEFTU0VSVChtX2dwdUNvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MpOwogICAgIEFTU0VSVCghbV9wcm94aWVzLmNvbnRhaW5zKGlkZW50
aWZpZXIpKTsKIAotICAgIGF1dG8gcHJveHkgPSBtYWtlVW5pcXVlPFJlbW90ZU1lZGlhUGxheWVy
UHJveHk+KCp0aGlzLCBpZGVudGlmaWVyLCBtX2dwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MtPmNv
bm5lY3Rpb24oKSwgZW5naW5lSWRlbnRpZmllciwgV1RGTW92ZShwcm94eUNvbmZpZ3VyYXRpb24p
KTsKKyAgICBhdXRvIHByb3h5ID0gbWFrZVVuaXF1ZTxSZW1vdGVNZWRpYVBsYXllclByb3h5Pigq
dGhpcywgaWRlbnRpZmllciwgbV9ncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLT5jb25uZWN0aW9u
KCksIGVuZ2luZUlkZW50aWZpZXIsIFdURk1vdmUocHJveHlDb25maWd1cmF0aW9uKSwgbV9ncHVD
b25uZWN0aW9uVG9XZWJQcm9jZXNzLT52aWRlb0ZyYW1lT2JqZWN0SGVhcCgpKTsKICAgICBtX3By
b3hpZXMuYWRkKGlkZW50aWZpZXIsIFdURk1vdmUocHJveHkpKTsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuY3Bw
IGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHku
Y3BwCmluZGV4IGNkMmM1MWJiZDMyZTI4YzJmZTQzNDZlOWYyNjM1MDE4OWVlYTY2M2IuLjBlZjgz
NDJkZDI2OGVlNjhjMzA0NzYyZGEwNThiYTRmYmNiYzZlM2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5jcHAK
QEAgLTQ0LDYgKzQ0LDggQEAKICNpbmNsdWRlICJSZW1vdGVNZWRpYVJlc291cmNlTG9hZGVyLmgi
CiAjaW5jbHVkZSAiUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIuaCIKICNpbmNsdWRlICJSZW1v
dGVUZXh0VHJhY2tQcm94eS5oIgorI2luY2x1ZGUgIlJlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFw
LmgiCisjaW5jbHVkZSAiUmVtb3RlVmlkZW9GcmFtZVByb3h5LmgiCiAjaW5jbHVkZSAiUmVtb3Rl
VmlkZW9UcmFja1Byb3h5LmgiCiAjaW5jbHVkZSAiVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZp
Z3VyYXRpb24uaCIKICNpbmNsdWRlICJUcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uLmgi
CkBAIC03NCw3ICs3Niw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiB1c2luZyBuYW1lc3BhY2Ug
V2ViQ29yZTsKIAotUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6UmVtb3RlTWVkaWFQbGF5ZXJQcm94
eShSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eSYgbWFuYWdlciwgTWVkaWFQbGF5ZXJJZGVu
dGlmaWVyIGlkZW50aWZpZXIsIFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYgY29ubmVjdGlvbiwgTWVk
aWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVyIGVuZ2luZUlkZW50aWZpZXIsIFJl
bW90ZU1lZGlhUGxheWVyUHJveHlDb25maWd1cmF0aW9uJiYgY29uZmlndXJhdGlvbikKK1JlbW90
ZU1lZGlhUGxheWVyUHJveHk6OlJlbW90ZU1lZGlhUGxheWVyUHJveHkoUmVtb3RlTWVkaWFQbGF5
ZXJNYW5hZ2VyUHJveHkmIG1hbmFnZXIsIE1lZGlhUGxheWVySWRlbnRpZmllciBpZGVudGlmaWVy
LCBSZWY8SVBDOjpDb25uZWN0aW9uPiYmIGNvbm5lY3Rpb24sIE1lZGlhUGxheWVyRW51bXM6Ok1l
ZGlhRW5naW5lSWRlbnRpZmllciBlbmdpbmVJZGVudGlmaWVyLCBSZW1vdGVNZWRpYVBsYXllclBy
b3h5Q29uZmlndXJhdGlvbiYmIGNvbmZpZ3VyYXRpb24sIFJlbW90ZVZpZGVvRnJhbWVPYmplY3RI
ZWFwJiB2aWRlb0ZyYW1lT2JqZWN0SGVhcCkKICAgICA6IG1faWQoaWRlbnRpZmllcikKICAgICAs
IG1fd2ViUHJvY2Vzc0Nvbm5lY3Rpb24oV1RGTW92ZShjb25uZWN0aW9uKSkKICAgICAsIG1fbWFu
YWdlcihtYW5hZ2VyKQpAQCAtODIsNiArODQsNyBAQCBSZW1vdGVNZWRpYVBsYXllclByb3h5OjpS
ZW1vdGVNZWRpYVBsYXllclByb3h5KFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5JiBtYQog
ICAgICwgbV91cGRhdGVDYWNoZWRTdGF0ZU1lc3NhZ2VUaW1lcihSdW5Mb29wOjptYWluKCksIHRo
aXMsICZSZW1vdGVNZWRpYVBsYXllclByb3h5Ojp0aW1lckZpcmVkKQogICAgICwgbV9jb25maWd1
cmF0aW9uKGNvbmZpZ3VyYXRpb24pCiAgICAgLCBtX3JlbmRlcmluZ1Jlc291cmNlc1JlcXVlc3Qo
U2NvcGVkUmVuZGVyaW5nUmVzb3VyY2VzUmVxdWVzdDo6YWNxdWlyZSgpKQorICAgICwgbV92aWRl
b0ZyYW1lT2JqZWN0SGVhcCh2aWRlb0ZyYW1lT2JqZWN0SGVhcCkKICNpZiAhUkVMRUFTRV9MT0df
RElTQUJMRUQKICAgICAsIG1fbG9nZ2VyKG1hbmFnZXIubG9nZ2VyKCkpCiAjZW5kaWYKQEAgLTg2
OCwxMSArODcxLDkgQEAgdm9pZCBSZW1vdGVNZWRpYVBsYXllclByb3h5OjpjdXJyZW50VGltZUNo
YW5nZWQoY29uc3QgTWVkaWFUaW1lJiBtZWRpYVRpbWUpCiAgICAgbV93ZWJQcm9jZXNzQ29ubmVj
dGlvbi0+c2VuZChNZXNzYWdlczo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpDdXJyZW50VGlt
ZUNoYW5nZWQobWVkaWFUaW1lLCBNb25vdG9uaWNUaW1lOjpub3coKSwgIW1lZGlhUGxheWVyUGF1
c2VkT3JTdGFsbGVkKCkpLCBtX2lkKTsKIH0KIAotLy8gRklYTUU6IFRoaXMgd2lsbCBiZSB0dXJu
ZWQgaW50byBjcm9zcy1wbGF0Zm9ybSBjb2RlIHNvb24uCi0jaWYgUExBVEZPUk0oQ09DT0EpCi12
b2lkIFJlbW90ZU1lZGlhUGxheWVyUHJveHk6OnZpZGVvRnJhbWVGb3JDdXJyZW50VGltZUlmQ2hh
bmdlZChDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8UmVmUHRyPFdlYkNvcmU6
OlZpZGVvRnJhbWVDVj4+JiYsIGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBSZW1v
dGVNZWRpYVBsYXllclByb3h5Ojp2aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWVJZkNoYW5nZWQoQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChzdGQ6Om9wdGlvbmFsPFJlbW90ZVZpZGVvRnJhbWVQcm94eTo6
UHJvcGVydGllcz4mJiwgYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7Ci0gICAgc3RkOjpv
cHRpb25hbDxSZWZQdHI8V2ViQ29yZTo6VmlkZW9GcmFtZUNWPj4gcmVzdWx0OworICAgIHN0ZDo6
b3B0aW9uYWw8UmVtb3RlVmlkZW9GcmFtZVByb3h5OjpQcm9wZXJ0aWVzPiByZXN1bHQ7CiAgICAg
Ym9vbCBjaGFuZ2VkID0gZmFsc2U7CiAgICAgUmVmUHRyPFdlYkNvcmU6OlZpZGVvRnJhbWU+IHZp
ZGVvRnJhbWU7CiAgICAgaWYgKG1fcGxheWVyKQpAQCAtODgwLDE2ICs4ODEsMTUgQEAgdm9pZCBS
ZW1vdGVNZWRpYVBsYXllclByb3h5Ojp2aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWVJZkNoYW5nZWQo
Q29tcGxldGlvbkhhbmRsZXIKICAgICBpZiAobV92aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWUgIT0g
dmlkZW9GcmFtZSkgewogICAgICAgICBtX3ZpZGVvRnJhbWVGb3JDdXJyZW50VGltZSA9IHZpZGVv
RnJhbWU7CiAgICAgICAgIGNoYW5nZWQgPSB0cnVlOwotICAgICAgICBSZWZQdHI8VmlkZW9GcmFt
ZUNWPiB2aWRlb0ZyYW1lQ1Y7CiAgICAgICAgIGlmICh2aWRlb0ZyYW1lKSB7Ci0gICAgICAgICAg
ICBBU1NFUlQoaXM8VmlkZW9GcmFtZUNWPigqdmlkZW9GcmFtZSkpOwotICAgICAgICAgICAgdmlk
ZW9GcmFtZUNWID0gJmRvd25jYXN0PFZpZGVvRnJhbWVDVj4oKnZpZGVvRnJhbWUpOworICAgICAg
ICAgICAgYXV0byB3cml0ZSA9IFJlbW90ZVZpZGVvRnJhbWVXcml0ZVJlZmVyZW5jZTo6Z2VuZXJh
dGVGb3JBZGQoKTsKKyAgICAgICAgICAgIGF1dG8gbmV3RnJhbWVSZWZlcmVuY2UgPSB3cml0ZS5y
ZXRpcmVkUmVmZXJlbmNlKCk7CisgICAgICAgICAgICByZXN1bHQgPSBSZW1vdGVWaWRlb0ZyYW1l
UHJveHk6OnByb3BlcnRpZXMoV1RGTW92ZShuZXdGcmFtZVJlZmVyZW5jZSksICp2aWRlb0ZyYW1l
KTsKKyAgICAgICAgICAgIG1fdmlkZW9GcmFtZU9iamVjdEhlYXAtPnJldGlyZShXVEZNb3ZlKHdy
aXRlKSwgV1RGTW92ZSh2aWRlb0ZyYW1lKSwgc3RkOjpudWxsb3B0KTsKICAgICAgICAgfQotICAg
ICAgICByZXN1bHQgPSBXVEZNb3ZlKHZpZGVvRnJhbWVDVik7CiAgICAgfQogICAgIGNvbXBsZXRp
b25IYW5kbGVyKFdURk1vdmUocmVzdWx0KSwgY2hhbmdlZCk7CiB9Ci0jZW5kaWYKIAogdm9pZCBS
ZW1vdGVNZWRpYVBsYXllclByb3h5Ojp1cGRhdGVDYWNoZWRTdGF0ZShib29sIGZvcmNlQ3VycmVu
dFRpbWVVcGRhdGUpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVk
aWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21l
ZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuaAppbmRleCBhYzExOGY2NzgyY2E2ODY3MzhmMjU1
Nzc1ODM4MDQ5MDM5MTUyODAzLi5mMjg2YmQ2NGQ3NDliNzU1MmNlMmUyZjc3ODM4YWNiY2IyYmEw
OTcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVk
aWFQbGF5ZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1v
dGVNZWRpYVBsYXllclByb3h5LmgKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlICJSZW1vdGVN
ZWRpYVBsYXllclByb3h5Q29uZmlndXJhdGlvbi5oIgogI2luY2x1ZGUgIlJlbW90ZU1lZGlhUGxh
eWVyU3RhdGUuaCIKICNpbmNsdWRlICJSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllci5oIgor
I2luY2x1ZGUgIlJlbW90ZVZpZGVvRnJhbWVQcm94eS5oIgogI2luY2x1ZGUgIlNhbmRib3hFeHRl
bnNpb24uaCIKICNpbmNsdWRlICJTY29wZWRSZW5kZXJpbmdSZXNvdXJjZXNSZXF1ZXN0LmgiCiAj
aW5jbHVkZSAiVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllci5oIgpAQCAtOTgsNiArOTksNyBA
QCBjbGFzcyBSZW1vdGVBdWRpb1RyYWNrUHJveHk7CiBjbGFzcyBSZW1vdGVBdWRpb1NvdXJjZVBy
b3ZpZGVyUHJveHk7CiBjbGFzcyBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eTsKIGNsYXNz
IFJlbW90ZVRleHRUcmFja1Byb3h5OworY2xhc3MgUmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXA7
CiBjbGFzcyBSZW1vdGVWaWRlb1RyYWNrUHJveHk7CiAKIGNsYXNzIFJlbW90ZU1lZGlhUGxheWVy
UHJveHkgZmluYWwKQEAgLTEwNSw3ICsxMDcsNyBAQCBjbGFzcyBSZW1vdGVNZWRpYVBsYXllclBy
b3h5IGZpbmFsCiAgICAgLCBwdWJsaWMgSVBDOjpNZXNzYWdlUmVjZWl2ZXIgewogICAgIFdURl9N
QUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIFJlbW90ZU1lZGlhUGxheWVyUHJveHko
UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkmLCBXZWJDb3JlOjpNZWRpYVBsYXllcklkZW50
aWZpZXIsIFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYsIFdlYkNvcmU6Ok1lZGlhUGxheWVyRW51bXM6
Ok1lZGlhRW5naW5lSWRlbnRpZmllciwgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eUNvbmZpZ3VyYXRp
b24mJik7CisgICAgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eShSZW1vdGVNZWRpYVBsYXllck1hbmFn
ZXJQcm94eSYsIFdlYkNvcmU6Ok1lZGlhUGxheWVySWRlbnRpZmllciwgUmVmPElQQzo6Q29ubmVj
dGlvbj4mJiwgV2ViQ29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVy
LCBSZW1vdGVNZWRpYVBsYXllclByb3h5Q29uZmlndXJhdGlvbiYmLCBSZW1vdGVWaWRlb0ZyYW1l
T2JqZWN0SGVhcCYpOwogICAgIH5SZW1vdGVNZWRpYVBsYXllclByb3h5KCk7CiAKICAgICBXZWJD
b3JlOjpNZWRpYVBsYXllcklkZW50aWZpZXIgaWRlbmRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1f
aWQ7IH0KQEAgLTMzMyw4ICszMzUsOCBAQCBwcml2YXRlOgogI2lmIFBMQVRGT1JNKENPQ09BKQog
ICAgIHZvaWQgbmF0aXZlSW1hZ2VGb3JDdXJyZW50VGltZShDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KHN0ZDo6b3B0aW9uYWw8V1RGOjpNYWNoU2VuZFJpZ2h0PiYmLCBXZWJDb3JlOjpEZXN0aW5hdGlv
bkNvbG9yU3BhY2UpPiYmKTsKICAgICB2b2lkIGNvbG9yU3BhY2UoQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChXZWJDb3JlOjpEZXN0aW5hdGlvbkNvbG9yU3BhY2UpPiYmKTsKLSAgICB2b2lkIHZpZGVv
RnJhbWVGb3JDdXJyZW50VGltZUlmQ2hhbmdlZChDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6
b3B0aW9uYWw8UmVmUHRyPFdlYkNvcmU6OlZpZGVvRnJhbWVDVj4+JiYsIGJvb2wpPiYmKTsKICNl
bmRpZgorICAgIHZvaWQgdmlkZW9GcmFtZUZvckN1cnJlbnRUaW1lSWZDaGFuZ2VkKENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoc3RkOjpvcHRpb25hbDxSZW1vdGVWaWRlb0ZyYW1lUHJveHk6OlByb3Bl
cnRpZXM+JiYsIGJvb2wpPiYmKTsKIAogI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAogICAgIGNv
bnN0IExvZ2dlciYgbWVkaWFQbGF5ZXJMb2dnZXIoKSBmaW5hbCB7IHJldHVybiBtX2xvZ2dlcjsg
fQpAQCAtMzkwLDYgKzM5Miw3IEBAIHByaXZhdGU6CiAgICAgU2NvcGVkUmVuZGVyaW5nUmVzb3Vy
Y2VzUmVxdWVzdCBtX3JlbmRlcmluZ1Jlc291cmNlc1JlcXVlc3Q7CiAKICAgICBib29sIG1fb2Jz
ZXJ2aW5nVGltZUNoYW5nZXMgeyBmYWxzZSB9OworICAgIFJlZjxSZW1vdGVWaWRlb0ZyYW1lT2Jq
ZWN0SGVhcD4gbV92aWRlb0ZyYW1lT2JqZWN0SGVhcDsKICAgICBSZWZQdHI8V2ViQ29yZTo6Vmlk
ZW9GcmFtZT4gbV92aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWU7CiAjaWYgIVJFTEVBU0VfTE9HX0RJ
U0FCTEVECiAgICAgY29uc3QgTG9nZ2VyJiBtX2xvZ2dlcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5Lm1lc3NhZ2VzLmlu
IGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHku
bWVzc2FnZXMuaW4KaW5kZXggY2MxMzdhZGU1MTliYzZkNDcwNzU2Y2Y1NzAxZDA0NjZlMTVkZDc3
ZC4uZGE3MWRlNWUxZmNlZDhiZDk5MDk2YWFjOTVlZmNlMzIzN2NmNTgxYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkubWVz
c2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlh
UGxheWVyUHJveHkubWVzc2FnZXMuaW4KQEAgLTEyNSw4ICsxMjUsOCBAQCBtZXNzYWdlcyAtPiBS
ZW1vdGVNZWRpYVBsYXllclByb3h5IE5vdFJlZkNvdW50ZWQgewogI2lmIFBMQVRGT1JNKENPQ09B
KQogICAgIE5hdGl2ZUltYWdlRm9yQ3VycmVudFRpbWUoKSAtPiAoc3RkOjpvcHRpb25hbDxNYWNo
U2VuZFJpZ2h0PiBzZW5kUmlnaHQsIFdlYkNvcmU6OkRlc3RpbmF0aW9uQ29sb3JTcGFjZSBjb2xv
clNwYWNlKSBTeW5jaHJvbm91cwogICAgIENvbG9yU3BhY2UoKSAtPiAoV2ViQ29yZTo6RGVzdGlu
YXRpb25Db2xvclNwYWNlIGNvbG9yU3BhY2UpIFN5bmNocm9ub3VzCi0gICAgVmlkZW9GcmFtZUZv
ckN1cnJlbnRUaW1lSWZDaGFuZ2VkKCkgLT4gKHN0ZDo6b3B0aW9uYWw8UmVmUHRyPFdlYkNvcmU6
OlZpZGVvRnJhbWVDVj4+IHZpZGVvRnJhbWUsIGJvb2wgY2hhbmdlZCkgU3luY2hyb25vdXMKICNl
bmRpZgorICAgIFZpZGVvRnJhbWVGb3JDdXJyZW50VGltZUlmQ2hhbmdlZCgpIC0+IChzdGQ6Om9w
dGlvbmFsPFdlYktpdDo6UmVtb3RlVmlkZW9GcmFtZVByb3h5OjpQcm9wZXJ0aWVzPiB2aWRlb0Zy
YW1lLCBib29sIGNoYW5nZWQpIFN5bmNocm9ub3VzCiAKICAgICBQbGF5QXRIb3N0VGltZShNb25v
dG9uaWNUaW1lIHRpbWUpCiAgICAgUGF1c2VBdEhvc3RUaW1lKE1vbm90b25pY1RpbWUgdGltZSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVWaWRlb0Zy
YW1lT2JqZWN0SGVhcC5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3Rl
VmlkZW9GcmFtZU9iamVjdEhlYXAuY3BwCmluZGV4IGY4N2I5MzFkOTcyMWU1NzRmMzEzOTk3Njdl
YmVlODRkM2E3M2Y2ZWIuLjVhZTg3OTU4OThiZjVlNDYwYzA3Mzc2ZmY0NjdjYzc4Mjc0OWNkZDAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVWaWRlb0Zy
YW1lT2JqZWN0SGVhcC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1Jl
bW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwLmNwcApAQCAtMjYsNyArMjYsNyBAQAogI2luY2x1ZGUg
ImNvbmZpZy5oIgogI2luY2x1ZGUgIlJlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwLmgiCiAKLSNp
ZiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIEVOQUJMRShNRURJQV9TVFJFQU0pCisjaWYgRU5BQkxF
KEdQVV9QUk9DRVNTKSAmJiBFTkFCTEUoVklERU8pCiAjaW5jbHVkZSAiR1BVQ29ubmVjdGlvblRv
V2ViUHJvY2Vzcy5oIgogI2luY2x1ZGUgIlJlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwTWVzc2Fn
ZXMuaCIKICNpbmNsdWRlICJSZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcFByb3h5UHJvY2Vzc29y
TWVzc2FnZXMuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9S
ZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcC5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21l
ZGlhL1JlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwLmgKaW5kZXggYWQwY2IzYjk2MTg0NmMwMTQ1
NzlhYmZlMzdiN2QxN2NlZWU0NDZmYi4uYWNlNjIzNDIxNmQ3NmE2NmNiNjdjOGI4YzdkYmIxOGM0
YTA5ZTJlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90
ZVZpZGVvRnJhbWVPYmplY3RIZWFwLmgKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21l
ZGlhL1JlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwLmgKQEAgLTI1LDcgKzI1LDcgQEAKIAogI3By
YWdtYSBvbmNlCiAKLSNpZiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIEVOQUJMRShNRURJQV9TVFJF
QU0pCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBFTkFCTEUoVklERU8pCiAjaW5jbHVkZSAi
UmVtb3RlVmlkZW9GcmFtZUlkZW50aWZpZXIuaCIKICNpbmNsdWRlICJTaGFyZWRWaWRlb0ZyYW1l
LmgiCiAjaW5jbHVkZSAiVGhyZWFkU2FmZU9iamVjdEhlYXAuaCIKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcC5tZXNz
YWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVWaWRlb0ZyYW1l
T2JqZWN0SGVhcC5tZXNzYWdlcy5pbgppbmRleCAxZDNkMjQzZTE1MTc1ZWZmOWM4ZDdlZmNiYmJk
MGIxNTJkZTVjYTYyLi4xY2UyYTQ5NmU1ZWRiZTc1YTdlN2M2NDI3ZmI0ZWI1NGYyZDQ5YTBhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlVmlkZW9GcmFt
ZU9iamVjdEhlYXAubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21l
ZGlhL1JlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwLm1lc3NhZ2VzLmluCkBAIC0yMSw3ICsyMSw3
IEBACiAjIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKICMgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgog
Ci0jaWYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBFTkFCTEUoTUVESUFfU1RSRUFNKQorI2lmIEVO
QUJMRShHUFVfUFJPQ0VTUykgJiYgRU5BQkxFKFZJREVPKQogbWVzc2FnZXMgLT4gUmVtb3RlVmlk
ZW9GcmFtZU9iamVjdEhlYXAgTm90UmVmQ291bnRlZCB7CiAgICAgR2V0VmlkZW9GcmFtZUJ1ZmZl
cihXZWJLaXQ6OlJlbW90ZVZpZGVvRnJhbWVSZWFkUmVmZXJlbmNlIGlkZW50aWZpZXIpCiAgICAg
UmVsZWFzZVZpZGVvRnJhbWUoV2ViS2l0OjpSZW1vdGVWaWRlb0ZyYW1lV3JpdGVSZWZlcmVuY2Ug
aWRlbnRpZmllcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1RocmVhZFNhZmVP
YmplY3RIZWFwLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9UaHJlYWRTYWZlT2JqZWN0SGVhcC5o
CmluZGV4IGM1YzU4NzJkYWFjOTk0ZmU0MWY1YjZiOTEzYzI3MzhhNGZkYjQzYzUuLjE1ZGM2NTcy
MjAyYzkwMGYxOWY3NjhkMDQzNDU5M2Q3YWU4ZmIxMzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL1RocmVhZFNhZmVPYmplY3RIZWFwLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFy
ZWQvVGhyZWFkU2FmZU9iamVjdEhlYXAuaApAQCAtMjUsNyArMjUsNiBAQAogCiAjcHJhZ21hIG9u
Y2UKIAotI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgRU5BQkxFKE1FRElBX1NUUkVBTSkKICNp
bmNsdWRlICJJUENUZXN0ZXIuaCIKICNpbmNsdWRlICJPYmplY3RJZGVudGlmaWVyUmVmZXJlbmNl
VHJhY2tlci5oIgogI2luY2x1ZGUgPHd0Zi9Db25kaXRpb24uaD4KQEAgLTIwMCw0ICsxOTksMyBA
QCB2b2lkIFRocmVhZFNhZmVPYmplY3RIZWFwPElkZW50aWZpZXIsIEhlbGRUeXBlPjo6YWRkKElk
ZW50aWZpZXIgaWRlbnRpZmllciwgSGVsZAogfQogCiB9Ci0jZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9HUFVQcm9jZXNzQ29ubmVjdGlvbi5jcHAKaW5kZXgg
NDRhOGNlMGJhZmY5YzMwNjVjNWQ1NGUxNThkYzlhMDExZTRkMjM5Zi4uNjgzMjI0M2M4NTFmMGNk
YWQ0YmZkMDVjMDA2YWVhMDMwZWQ4YzY1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0dQVS9HUFVQcm9jZXNzQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS9HUFVQcm9jZXNzQ29ubmVjdGlvbi5jcHAKQEAgLTc2LDcgKzc2LDcgQEAK
ICNpbmNsdWRlICJVc2VyTWVkaWFDYXB0dXJlTWFuYWdlck1lc3NhZ2VzLmgiCiAjZW5kaWYKIAot
I2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisjaWYgRU5BQkxFKFZJREVPKQogI2luY2x1ZGUgIlJl
bW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwUHJveHkuaCIKICNpbmNsdWRlICJSZW1vdGVWaWRlb0Zy
YW1lUHJveHkuaCIKICNlbmRpZgpAQCAtMTY2LDcgKzE2Niw3IEBAIHZvaWQgR1BVUHJvY2Vzc0Nv
bm5lY3Rpb246OnJlc2V0QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRlcm5hbFVuaXQo
QXVkaW9NCiB9CiAjZW5kaWYKIAotI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisjaWYgRU5BQkxF
KFZJREVPKQogUmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXBQcm94eSYgR1BVUHJvY2Vzc0Nvbm5l
Y3Rpb246OnZpZGVvRnJhbWVPYmplY3RIZWFwUHJveHkoKQogewogICAgIGlmICghbV92aWRlb0Zy
YW1lT2JqZWN0SGVhcFByb3h5KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dQVS9HUFVQcm9jZXNzQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS9HUFVQcm9jZXNzQ29ubmVjdGlvbi5oCmluZGV4IDllYWNlNmJiNzlhNzZiNzU5MmViMzlmMjJh
NmJhZWIxMTUyZWU1MWUuLjRmODhlMWNkZTA1ZjMzNWY5NWM3M2U1ZjljMDM1ZGVmYWI0YmI0NmEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc0Nvbm5l
Y3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL0dQVVByb2Nlc3NDb25u
ZWN0aW9uLmgKQEAgLTU3LDcgKzU3LDcgQEAgc3RydWN0IEdQVVByb2Nlc3NDb25uZWN0aW9uSW5p
dGlhbGl6YXRpb25QYXJhbWV0ZXJzOwogc3RydWN0IE92ZXJyaWRlU2NyZWVuRGF0YUZvclRlc3Rp
bmc7CiBzdHJ1Y3QgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVyczsKIAotI2lmIEVOQUJMRShNRURJ
QV9TVFJFQU0pCisjaWYgRU5BQkxFKFZJREVPKQogY2xhc3MgUmVtb3RlVmlkZW9GcmFtZU9iamVj
dEhlYXBQcm94eTsKICNlbmRpZgogCkBAIC04Miw3ICs4Miw3IEBAIHB1YmxpYzoKICAgICBTYW1w
bGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyJiBzYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5h
Z2VyKCk7CiAgICAgdm9pZCByZXNldEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySW50ZXJu
YWxVbml0KEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySW50ZXJuYWxVbml0SWRlbnRpZmll
cik7CiAjZW5kaWYKLSNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorI2lmIEVOQUJMRShWSURFTykK
ICAgICBSZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcFByb3h5JiB2aWRlb0ZyYW1lT2JqZWN0SGVh
cFByb3h5KCk7CiAjZW5kaWYKIApAQCAtMTQ4LDcgKzE0OCw3IEBAIHByaXZhdGU6CiAjaWYgUExB
VEZPUk0oQ09DT0EpICYmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAgICAgc3RkOjp1bmlxdWVfcHRy
PFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXI+IG1fc2FtcGxlQnVmZmVyRGlzcGxheUxh
eWVyTWFuYWdlcjsKICNlbmRpZgotI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisjaWYgRU5BQkxF
KFZJREVPKQogICAgIFJlZlB0cjxSZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcFByb3h5PiBtX3Zp
ZGVvRnJhbWVPYmplY3RIZWFwUHJveHk7CiAjZW5kaWYKICNpZiBQTEFURk9STShDT0NPQSkgJiYg
RU5BQkxFKFdFQl9BVURJTykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHku
Y3BwCmluZGV4IGM4OTZhYjdmZGJiNmYyODhjZTNjNjI0MmU0ZWIwZGVmZmRjNDA1MTYuLjNmYjI4
YTZkYjg0ZmZlMTVjYzAzMzVjM2RkMzk2OGY5MTFlMGU3YjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94
eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVH
cmFwaGljc0NvbnRleHRHTFByb3h5LmNwcApAQCAtMzIsMTEgKzMyLDExIEBACiAjaW5jbHVkZSAi
R1BVUHJvY2Vzc0Nvbm5lY3Rpb24uaCIKICNpbmNsdWRlICJSZW1vdGVHcmFwaGljc0NvbnRleHRH
TE1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eU1lc3Nh
Z2VzLmgiCi0jaW5jbHVkZSAiUmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXBQcm94eS5oIgogI2lu
Y2x1ZGUgIldlYlByb2Nlc3MuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0ltYWdlQnVmZmVyLmg+CiAK
LSNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorI2lmIEVOQUJMRShWSURFTykKKyNpbmNsdWRlICJS
ZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcFByb3h5LmgiCiAjaW5jbHVkZSAiUmVtb3RlVmlkZW9G
cmFtZVByb3h5LmgiCiAjZW5kaWYKIApAQCAtMTgyLDEwICsxODIsMTUgQEAgUmVmUHRyPFdlYkNv
cmU6Ok1lZGlhU2FtcGxlPiBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5OjpwYWludENvbXBv
c2l0ZWRSZXN1bHQKIH0KICNlbmRpZgogCisjaWYgRU5BQkxFKFZJREVPKQogYm9vbCBSZW1vdGVH
cmFwaGljc0NvbnRleHRHTFByb3h5Ojpjb3B5VGV4dHVyZUZyb21NZWRpYShNZWRpYVBsYXllciYg
bWVkaWFQbGF5ZXIsIFBsYXRmb3JtR0xPYmplY3QgdGV4dHVyZSwgR0NHTGVudW0gdGFyZ2V0LCBH
Q0dMaW50IGxldmVsLCBHQ0dMZW51bSBpbnRlcm5hbEZvcm1hdCwgR0NHTGVudW0gZm9ybWF0LCBH
Q0dMZW51bSB0eXBlLCBib29sIHByZW11bHRpcGx5QWxwaGEsIGJvb2wgZmxpcFkpCiB7CisgICAg
YXV0byB2aWRlb0ZyYW1lID0gbWVkaWFQbGF5ZXIudmlkZW9GcmFtZUZvckN1cnJlbnRUaW1lKCk7
CisgICAgLy8gVmlkZW8gaW4gV1Agd2hpbGUgV2ViR0wgaW4gR1BVUCBpcyBub3Qgc3VwcG9ydGVk
LgorICAgIGlmICghdmlkZW9GcmFtZSB8fCAhaXM8UmVtb3RlVmlkZW9GcmFtZVByb3h5Pigqdmlk
ZW9GcmFtZSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKICAgICBib29sIHJlc3VsdCA9IGZhbHNl
OwotICAgIGF1dG8gc2VuZFJlc3VsdCA9IHNlbmRTeW5jKE1lc3NhZ2VzOjpSZW1vdGVHcmFwaGlj
c0NvbnRleHRHTDo6Q29weVRleHR1cmVGcm9tTWVkaWEobWVkaWFQbGF5ZXIuaWRlbnRpZmllcigp
LCB0ZXh0dXJlLCB0YXJnZXQsIGxldmVsLCBpbnRlcm5hbEZvcm1hdCwgZm9ybWF0LCB0eXBlLCBw
cmVtdWx0aXBseUFscGhhLCBmbGlwWSksIE1lc3NhZ2VzOjpSZW1vdGVHcmFwaGljc0NvbnRleHRH
TDo6Q29weVRleHR1cmVGcm9tTWVkaWE6OlJlcGx5KHJlc3VsdCkpOworICAgIGF1dG8gc2VuZFJl
c3VsdCA9IHNlbmRTeW5jKE1lc3NhZ2VzOjpSZW1vdGVHcmFwaGljc0NvbnRleHRHTDo6Q29weVRl
eHR1cmVGcm9tVmlkZW9GcmFtZShkb3duY2FzdDxSZW1vdGVWaWRlb0ZyYW1lUHJveHk+KCp2aWRl
b0ZyYW1lKS5yZWFkKCksIHRleHR1cmUsIHRhcmdldCwgbGV2ZWwsIGludGVybmFsRm9ybWF0LCBm
b3JtYXQsIHR5cGUsIHByZW11bHRpcGx5QWxwaGEsIGZsaXBZKSwgTWVzc2FnZXM6OlJlbW90ZUdy
YXBoaWNzQ29udGV4dEdMOjpDb3B5VGV4dHVyZUZyb21WaWRlb0ZyYW1lOjpSZXBseShyZXN1bHQp
KTsKICAgICBpZiAoIXNlbmRSZXN1bHQpIHsKICAgICAgICAgbWFya0NvbnRleHRMb3N0KCk7CiAg
ICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTE5Myw2ICsxOTgsNyBAQCBib29sIFJlbW90ZUdyYXBo
aWNzQ29udGV4dEdMUHJveHk6OmNvcHlUZXh0dXJlRnJvbU1lZGlhKE1lZGlhUGxheWVyJiBtZWRp
YVBsYXllcgogCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KKyNlbmRpZgogCiB2b2lkIFJlbW90ZUdy
YXBoaWNzQ29udGV4dEdMUHJveHk6OnN5bnRoZXNpemVHTEVycm9yKEdDR0xlbnVtIGVycm9yKQog
ewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1v
dGVHcmFwaGljc0NvbnRleHRHTFByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BV
L2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHkuaAppbmRleCAzNDRmZTk4NWQ4
MDNjZGIyN2NmMWU3MmFkZmI1YjY5YWU2NzBmMDY3Li5mNzY1NDAzYTU2OTcwYTQ3YTFkM2Y2YzMx
M2IwNWI3MDgwMThmMzQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BV
L2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHkuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHku
aApAQCAtNzMsNyArNzMsOSBAQCBwdWJsaWM6CiAjZW5kaWYKICAgICB2b2lkIHN5bnRoZXNpemVH
TEVycm9yKEdDR0xlbnVtIGVycm9yKSBmaW5hbDsKICAgICBHQ0dMZW51bSBnZXRFcnJvcigpIGZp
bmFsOworI2lmIEVOQUJMRShWSURFTykKICAgICBib29sIGNvcHlUZXh0dXJlRnJvbU1lZGlhKFdl
YkNvcmU6Ok1lZGlhUGxheWVyJiwgUGxhdGZvcm1HTE9iamVjdCB0ZXh0dXJlLCBHQ0dMZW51bSB0
YXJnZXQsIEdDR0xpbnQgbGV2ZWwsIEdDR0xlbnVtIGludGVybmFsRm9ybWF0LCBHQ0dMZW51bSBm
b3JtYXQsIEdDR0xlbnVtIHR5cGUsIGJvb2wgcHJlbXVsdGlwbHlBbHBoYSwgYm9vbCBmbGlwWSkg
ZmluYWw7CisjZW5kaWYKICAgICB2b2lkIHNpbXVsYXRlRXZlbnRGb3JUZXN0aW5nKFNpbXVsYXRl
ZEV2ZW50Rm9yVGVzdGluZykgZmluYWw7CiAKICAgICAvLyBGdW5jdGlvbnMgd2l0aCBhIGdlbmVy
YXRlZCBpbXBsZW1lbnRhdGlvbi4gVGhpcyBsaXN0IGlzIHVzZWQgYnkgZ2VuZXJhdGUtZ3B1cC13
ZWJnbCBzY3JpcHQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21l
ZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5jcHAKaW5kZXggYzE5ZjI1NTBh
ZGIzMGFjNzNhOTYwZGJkZjQ4M2ZiNTg5MGMzZjBiMy4uZWE0ZGNiMzc0ZDBjNWI4ZGNiOTEwOTA0
ZmZkZGNjMDJhNDJlOTk3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNwcApAQCAtMTAw
NSwxOSArMTAwNSwxNiBAQCBib29sIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6Y29weVZpZGVv
VGV4dHVyZVRvUGxhdGZvcm1UZXh0dXJlKFdlYkNvcmU6OkdyYXBoaQogCiBSZWZQdHI8V2ViQ29y
ZTo6VmlkZW9GcmFtZT4gTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjp2aWRlb0ZyYW1lRm9yQ3Vy
cmVudFRpbWUoKQogewotLy8gRklYTUU6IFRoaXMgd2lsbCBiZSBtYWRlIGNyb3NzLXBsYXRmb3Jt
IGFnYWluIHNvb24uIFRoZXJlIGFyZSBubyBvdGhlciBwbGF0Zm9ybXMgdXNpbmcgdGhpcyBhdCB0
aGUgbW9tZW50LgotI2lmIFBMQVRGT1JNKENPQ09BKQotICAgIHN0ZDo6b3B0aW9uYWw8UmVmUHRy
PFdlYkNvcmU6OlZpZGVvRnJhbWVDVj4+IHJlc3VsdDsKKyAgICBzdGQ6Om9wdGlvbmFsPFJlbW90
ZVZpZGVvRnJhbWVQcm94eTo6UHJvcGVydGllcz4gcmVzdWx0OwogICAgIGJvb2wgY2hhbmdlZCA9
IGZhbHNlOwogICAgIGlmICghY29ubmVjdGlvbigpLnNlbmRTeW5jKE1lc3NhZ2VzOjpSZW1vdGVN
ZWRpYVBsYXllclByb3h5OjpWaWRlb0ZyYW1lRm9yQ3VycmVudFRpbWVJZkNoYW5nZWQoKSwgTWVz
c2FnZXM6OlJlbW90ZU1lZGlhUGxheWVyUHJveHk6OlZpZGVvRnJhbWVGb3JDdXJyZW50VGltZUlm
Q2hhbmdlZDo6UmVwbHkocmVzdWx0LCBjaGFuZ2VkKSwgbV9pZCkpCi0gICAgICAgIHJldHVybiBt
X3ZpZGVvRnJhbWVGb3JDdXJyZW50VGltZTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAg
aWYgKGNoYW5nZWQpIHsKICAgICAgICAgaWYgKHJlc3VsdCkKLSAgICAgICAgICAgIG1fdmlkZW9G
cmFtZUZvckN1cnJlbnRUaW1lID0gV1RGTW92ZSgqcmVzdWx0KTsKKyAgICAgICAgICAgIG1fdmlk
ZW9GcmFtZUZvckN1cnJlbnRUaW1lID0gUmVtb3RlVmlkZW9GcmFtZVByb3h5OjpjcmVhdGUoY29u
bmVjdGlvbigpLCB2aWRlb0ZyYW1lT2JqZWN0SGVhcFByb3h5KCksIFdURk1vdmUoKnJlc3VsdCkp
OwogICAgICAgICBlbHNlCiAgICAgICAgICAgICBtX3ZpZGVvRnJhbWVGb3JDdXJyZW50VGltZSA9
IG51bGxwdHI7CiAgICAgfQotI2VuZGlmCiAgICAgcmV0dXJuIG1fdmlkZW9GcmFtZUZvckN1cnJl
bnRUaW1lOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21l
ZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuaAppbmRleCAyOWY5MTJkNGU4Yjg3
YjU3YmExNTYyNGE2ZGM1ZTA2YjdjNWMxYjlkLi4zOGVmODg5NzE4MjAyOTQ0NDAzYzUyZjgzYjk0
MjcxNzEyMTE4ZTY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21l
ZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmgKQEAgLTM0LDYgKzM0LDgg
QEAKICNpbmNsdWRlICJSZW1vdGVNZWRpYVBsYXllclN0YXRlLmgiCiAjaW5jbHVkZSAiUmVtb3Rl
TWVkaWFSZXNvdXJjZUlkZW50aWZpZXIuaCIKICNpbmNsdWRlICJSZW1vdGVNZWRpYVJlc291cmNl
UHJveHkuaCIKKyNpbmNsdWRlICJSZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcFByb3h5LmgiCisj
aW5jbHVkZSAiUmVtb3RlVmlkZW9GcmFtZVByb3h5LmgiCiAjaW5jbHVkZSAiVGV4dFRyYWNrUHJp
dmF0ZVJlbW90ZS5oIgogI2luY2x1ZGUgIlRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIuaCIK
ICNpbmNsdWRlICJWaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZS5oIgpAQCAtNDEzLDYgKzQxNSw3IEBA
IHByaXZhdGU6CiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgdm9pZCBwdXNoVmlkZW9GcmFtZU1l
dGFkYXRhKFdlYkNvcmU6OlZpZGVvRnJhbWVNZXRhZGF0YSYmLCBSZXRhaW5QdHI8Q1ZQaXhlbEJ1
ZmZlclJlZj4mJik7CiAjZW5kaWYKKyAgICBSZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcFByb3h5
JiB2aWRlb0ZyYW1lT2JqZWN0SGVhcFByb3h5KCkgY29uc3QgeyByZXR1cm4gbV9tYW5hZ2VyLmdw
dVByb2Nlc3NDb25uZWN0aW9uKCkudmlkZW9GcmFtZU9iamVjdEhlYXBQcm94eSgpOyB9CiAKICAg
ICBXZWFrUHRyPFdlYkNvcmU6Ok1lZGlhUGxheWVyPiBtX3BsYXllcjsKICAgICBSZWY8V2ViQ29y
ZTo6UGxhdGZvcm1NZWRpYVJlc291cmNlTG9hZGVyPiBtX21lZGlhUmVzb3VyY2VMb2FkZXI7CkBA
IC00NjEsNyArNDY0LDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1fd2FpdGluZ0ZvcktleSB7IGZh
bHNlIH07CiAgICAgYm9vbCBtX3RpbWVJc1Byb2dyZXNzaW5nIHsgZmFsc2UgfTsKICAgICBib29s
IG1fcmVuZGVyaW5nQ2FuQmVBY2NlbGVyYXRlZCB7IGZhbHNlIH07Ci0gICAgUmVmUHRyPFdlYkNv
cmU6OlZpZGVvRnJhbWU+IG1fdmlkZW9GcmFtZUZvckN1cnJlbnRUaW1lOworICAgIFJlZlB0cjxS
ZW1vdGVWaWRlb0ZyYW1lUHJveHk+IG1fdmlkZW9GcmFtZUZvckN1cnJlbnRUaW1lOwogI2lmIFBM
QVRGT1JNKENPQ09BKQogICAgIFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiBtX3BpeGVsQnVm
ZmVyR2F0aGVyZWRXaXRoVmlkZW9GcmFtZU1ldGFkYXRhOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxX
ZWJDb3JlOjpQaXhlbEJ1ZmZlckNvbmZvcm1lckNWPiBtX3BpeGVsQnVmZmVyQ29uZm9ybWVyOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVWaWRl
b0ZyYW1lSWRlbnRpZmllci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9S
ZW1vdGVWaWRlb0ZyYW1lSWRlbnRpZmllci5oCmluZGV4IGZiMDAxZGE3NDgyMzlmMzhkZDllZDAz
MjVjNTliN2I4M2M5MjU4NzMuLmY1ODliN2RiZGVhOTM5Yzk0MDk3ODRjMGZiMGZmZjMyYWRkNTM4
MWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3Rl
VmlkZW9GcmFtZUlkZW50aWZpZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BV
L21lZGlhL1JlbW90ZVZpZGVvRnJhbWVJZGVudGlmaWVyLmgKQEAgLTI1LDcgKzI1LDcgQEAKIAog
I3ByYWdtYSBvbmNlCiAKLSNpZiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIEVOQUJMRShNRURJQV9T
VFJFQU0pCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBFTkFCTEUoVklERU8pCiAKICNpbmNs
dWRlICJPYmplY3RJZGVudGlmaWVyUmVmZXJlbmNlVHJhY2tlci5oIgogI2luY2x1ZGUgPFdlYkNv
cmUvUHJvY2Vzc1F1YWxpZmllZC5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS9tZWRpYS9SZW1vdGVWaWRlb0ZyYW1lUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVWaWRlb0ZyYW1lUHJveHkuY3BwCmluZGV4IGQ4Mzdh
NDZiYWYxNDA3NzRlYTZlZGQ4MjQ5Y2RlNjIzMjRiMmQ0ODIuLmQxODAzNGI0NjMxMWFkMzg5YTZh
YjZhODk1ZjFjYTJiMTgxNzk5MTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9HUFUvbWVkaWEvUmVtb3RlVmlkZW9GcmFtZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZVZpZGVvRnJhbWVQcm94eS5jcHAKQEAgLTI2LDEz
ICsyNiwxNSBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlJlbW90ZVZpZGVvRnJh
bWVQcm94eS5oIgogCi0jaWYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBFTkFCTEUoTUVESUFfU1RS
RUFNKQorI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgRU5BQkxFKFZJREVPKQogI2luY2x1ZGUg
IkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCIKICNpbmNsdWRlICJSZW1vdGVWaWRlb0ZyYW1l
T2JqZWN0SGVhcE1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiUmVtb3RlVmlkZW9GcmFtZU9iamVjdEhl
YXBQcm94eS5oIgotI2luY2x1ZGUgPFdlYkNvcmUvUmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNl
Q29jb2EuaD4KIAogI2lmIFBMQVRGT1JNKENPQ09BKQorI2luY2x1ZGUgPFdlYkNvcmUvQ1ZVdGls
aXRpZXMuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1JlYWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZUNv
Y29hLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9WaWRlb0ZyYW1lQ1YuaD4KICNpbmNsdWRlIDx3dGYv
dGhyZWFkcy9CaW5hcnlTZW1hcGhvcmUuaD4KICNlbmRpZgogCkBAIC0xMTksNiArMTIxLDE1IEBA
IENWUGl4ZWxCdWZmZXJSZWYgUmVtb3RlVmlkZW9GcmFtZVByb3h5OjpwaXhlbEJ1ZmZlcigpIGNv
bnN0CiAgICAgfQogICAgIHJldHVybiBtX3BpeGVsQnVmZmVyLmdldCgpOwogfQorCitSZWZQdHI8
V2ViQ29yZTo6VmlkZW9GcmFtZUNWPiBSZW1vdGVWaWRlb0ZyYW1lUHJveHk6OmFzVmlkZW9GcmFt
ZUNWKCkKK3sKKyAgICBhdXRvIGJ1ZmZlciA9IHBpeGVsQnVmZmVyKCk7CisgICAgaWYgKCFidWZm
ZXIpCisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIHJldHVybiBWaWRlb0ZyYW1lQ1Y6OmNy
ZWF0ZShtX3ByZXNlbnRhdGlvblRpbWUsIG1faXNNaXJyb3JlZCwgbV9yb3RhdGlvbiwgUmV0YWlu
UHRyIHsgYnVmZmVyIH0pOworfQorCiAjZW5kaWYKIAogVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChU
ZXh0U3RyZWFtJiB0cywgY29uc3QgUmVtb3RlVmlkZW9GcmFtZVByb3h5OjpQcm9wZXJ0aWVzJiBw
cm9wZXJ0aWVzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRp
YS9SZW1vdGVWaWRlb0ZyYW1lUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUv
bWVkaWEvUmVtb3RlVmlkZW9GcmFtZVByb3h5LmgKaW5kZXggMTY1NzMwNzI5ODkzNTAwNWViMmYz
MzRjZjZhMjk0NDU2NTBmMTVlMi4uMGVlYzdjYzRiYjU2MTZiZDJlYzJmY2Y2OGE5YmRiOTNkNmQ2
MjAzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1v
dGVWaWRlb0ZyYW1lUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21l
ZGlhL1JlbW90ZVZpZGVvRnJhbWVQcm94eS5oCkBAIC0yNSw3ICsyNSw3IEBACiAKICNwcmFnbWEg
b25jZQogCi0jaWYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBFTkFCTEUoTUVESUFfU1RSRUFNKQor
I2lmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgRU5BQkxFKFZJREVPKQogCiAjaW5jbHVkZSAiR1BV
UHJvY2Vzc0Nvbm5lY3Rpb24uaCIKICNpbmNsdWRlICJSZW1vdGVWaWRlb0ZyYW1lSWRlbnRpZmll
ci5oIgpAQCAtMzYsNiArMzYsMTIgQEAgY2xhc3MgQ29ubmVjdGlvbjsKIGNsYXNzIERlY29kZXI7
CiB9CiAKK25hbWVzcGFjZSBXZWJDb3JlIHsKKyNpZiBQTEFURk9STShDT0NPQSkKK2NsYXNzIFZp
ZGVvRnJhbWVDVjsKKyNlbmRpZgorfQorCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgR1BV
UHJvY2Vzc0Nvbm5lY3Rpb247CkBAIC04MCwxNiArODYsMTUgQEAgcHVibGljOgogICAgIC8vIFdl
YkNvcmU6OlZpZGVvRnJhbWUgb3ZlcnJpZGVzLgogICAgIFdlYkNvcmU6OkZsb2F0U2l6ZSBwcmVz
ZW50YXRpb25TaXplKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9zaXplOyB9CiAgICAgdWludDMy
X3QgdmlkZW9QaXhlbEZvcm1hdCgpIGNvbnN0IGZpbmFsOworICAgIGJvb2wgaXNSZW1vdGVQcm94
eSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KICNpZiBQTEFURk9STShDT0NPQSkKICAg
ICBDVlBpeGVsQnVmZmVyUmVmIHBpeGVsQnVmZmVyKCkgY29uc3QgZmluYWw7CisgICAgUmVmUHRy
PFdlYkNvcmU6OlZpZGVvRnJhbWVDVj4gYXNWaWRlb0ZyYW1lQ1YoKSBmaW5hbDsKICNlbmRpZgot
ICAgIGJvb2wgaXNSZW1vdGVQcm94eSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KIAog
cHJpdmF0ZToKICAgICBSZW1vdGVWaWRlb0ZyYW1lUHJveHkoSVBDOjpDb25uZWN0aW9uJiwgUmVt
b3RlVmlkZW9GcmFtZU9iamVjdEhlYXBQcm94eSYsIFByb3BlcnRpZXMmJik7CiAKLQotCiAgICAg
Y29uc3QgUmVmPElQQzo6Q29ubmVjdGlvbj4gbV9jb25uZWN0aW9uOwogICAgIFJlbW90ZVZpZGVv
RnJhbWVSZWZlcmVuY2VUcmFja2VyIG1fcmVmZXJlbmNlVHJhY2tlcjsKICAgICBjb25zdCBXZWJD
b3JlOjpJbnRTaXplIG1fc2l6ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9HUFUvbWVkaWEvUmVtb3RlVmlkZW9GcmFtZVByb3h5SWRlbnRpZmllci5oIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVWaWRlb0ZyYW1lUHJveHlJZGVudGlmaWVy
LmgKaW5kZXggNDc5MmMwNDg2NTBkMGNhMjY0NjAwMDcyMzQ2NzAzMjgyZTcyYTRkMC4uNWNlN2Fm
MTU4NDNhN2E4ZjI0NmRjOTdlODIxNGY3OWQ1Njc2ZjhkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVWaWRlb0ZyYW1lUHJveHlJZGVudGlmaWVy
LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVWaWRlb0Zy
YW1lUHJveHlJZGVudGlmaWVyLmgKQEAgLTI1LDcgKzI1LDcgQEAKIAogI3ByYWdtYSBvbmNlCiAK
LSNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgRU5B
QkxFKFZJREVPKQogCiAjaW5jbHVkZSAiT2JqZWN0SWRlbnRpZmllclJlZmVyZW5jZVRyYWNrZXIu
aCIKICNpbmNsdWRlIDxXZWJDb3JlL1JlbW90ZVZpZGVvRnJhbWVJZGVudGlmaWVyLmg+CkBAIC0z
OSw0ICszOSw0IEBAIHVzaW5nIFJlbW90ZVZpZGVvRnJhbWVSZWZlcmVuY2VUcmFja2VyID0gT2Jq
ZWN0SWRlbnRpZmllclJlZmVyZW5jZVRyYWNrZXI8V2ViQ29yCiAKIH0gLy8gbmFtZXNwYWNlIFdl
YktpdAogCi0jZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NUUkVBTSkKKyNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTWVkaWFSZWNvcmRlclByaXZh
dGUuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTWVkaWFSZWNvcmRl
clByaXZhdGUuY3BwCmluZGV4IDkxODBkMWNhNzJkMDFlMzIyZTdjYTRkZTljODM2ZDY4ZWNjNmEx
YzMuLmVhNDE0MjU2YmYwYmVjYTE3MTFhMTVmNDBkNDFhNmQ1ZmM2YzI4MzAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL01lZGlhUmVjb3JkZXJQcml2YXRl
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9NZWRpYVJlY29y
ZGVyUHJpdmF0ZS5jcHAKQEAgLTM1LDYgKzM1LDcgQEAKICNpbmNsdWRlICJSZW1vdGVWaWRlb0Zy
YW1lUHJveHkuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9D
QVJpbmdCdWZmZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0NWVXRpbGl0aWVzLmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9NZWRpYVN0cmVhbVByaXZhdGUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL01lZGlh
U3RyZWFtVHJhY2tQcml2YXRlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZWFsdGltZUluY29taW5n
VmlkZW9Tb3VyY2VDb2NvYS5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dQVS93ZWJydGMvUmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXBQcm94eS5oIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvUmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXBQcm94
eS5oCmluZGV4IDExYmRkMWY2NTYxMmNiNjY0NjAwMDFjOTM1NjBkY2QxNDFkOTczNjkuLjJiZmJi
NTdhMTI2NTQwNjQ5NTU0OTU1NmNiOTQyMTc1YzQ3NWUxYzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL1JlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwUHJv
eHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9SZW1vdGVWaWRl
b0ZyYW1lT2JqZWN0SGVhcFByb3h5LmgKQEAgLTI1LDcgKzI1LDcgQEAKIAogI3ByYWdtYSBvbmNl
CiAKLSNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKSAmJiBFTkFCTEUoR1BVX1BST0NFU1MpCisjaWYg
RU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBFTkFCTEUoVklERU8pCiAKICNpbmNsdWRlICJSZW1vdGVW
aWRlb0ZyYW1lT2JqZWN0SGVhcFByb3h5UHJvY2Vzc29yLmgiCiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL1JlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFw
UHJveHlQcm9jZXNzb3IuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMv
UmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXBQcm94eVByb2Nlc3Nvci5jcHAKaW5kZXggYjFjYTRj
N2JjNmU0MzgzOTJmYWUxNjViYTc1ZTZmODMwN2U1NWMyMS4uZjIxZDExOGM4MjAyMjJiYWNjZDEy
ZjdmZjBjYTYyMWVmNDgxYmM0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dQVS93ZWJydGMvUmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXBQcm94eVByb2Nlc3Nvci5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvUmVtb3RlVmlkZW9GcmFt
ZU9iamVjdEhlYXBQcm94eVByb2Nlc3Nvci5jcHAKQEAgLTI2LDEwICsyNiwxMSBAQAogI2luY2x1
ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlJlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwUHJveHku
aCIKIAotI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pICYmIFBMQVRGT1JNKENPQ09BKSAmJiBFTkFC
TEUoR1BVX1BST0NFU1MpCisjaWYgUExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShHUFVfUFJPQ0VT
UykgJiYgRU5BQkxFKFZJREVPKQogCiAjaW5jbHVkZSAiUmVtb3RlVmlkZW9GcmFtZU9iamVjdEhl
YXBNZXNzYWdlcy5oIgogI2luY2x1ZGUgIlJlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwUHJveHlQ
cm9jZXNzb3JNZXNzYWdlcy5oIgorI2luY2x1ZGUgIlJlbW90ZVZpZGVvRnJhbWVQcm94eS5oIgog
CiBuYW1lc3BhY2UgV2ViS2l0IHsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS93ZWJydGMvUmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXBQcm94eVByb2Nlc3Nvci5o
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvUmVtb3RlVmlkZW9GcmFtZU9i
amVjdEhlYXBQcm94eVByb2Nlc3Nvci5oCmluZGV4IDhmN2M3OGJiYzg0MDkyMjU3ZTU2MmRiNDI2
ZjhlZjM3MDk1YjJjMzEuLmYwZTc2ZjNiYTRhNDUxNWYyY2EwYTNjNWU2NGM2NWM4OTI2NmZmMmEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL1JlbW90ZVZp
ZGVvRnJhbWVPYmplY3RIZWFwUHJveHlQcm9jZXNzb3IuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR1BVL3dlYnJ0Yy9SZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcFByb3h5UHJvY2Vz
c29yLmgKQEAgLTI1LDEzICsyNSwxNCBAQAogCiAjcHJhZ21hIG9uY2UKIAotI2lmIEVOQUJMRShN
RURJQV9TVFJFQU0pICYmIFBMQVRGT1JNKENPQ09BKSAmJiBFTkFCTEUoR1BVX1BST0NFU1MpCisj
aWYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBQTEFURk9STShDT0NPQSkgJiYgRU5BQkxFKFZJREVP
KQogCiAjaW5jbHVkZSAiQ29ubmVjdGlvbi5oIgogI2luY2x1ZGUgIkdQVVByb2Nlc3NDb25uZWN0
aW9uLmgiCiAjaW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVyLmgiCiAjaW5jbHVkZSAiUmVtb3RlVmlk
ZW9GcmFtZUlkZW50aWZpZXIuaCIKICNpbmNsdWRlICJTaGFyZWRWaWRlb0ZyYW1lLmgiCisKICNp
bmNsdWRlIDx3dGYvRnVuY3Rpb24uaD4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1
ZGUgPHd0Zi9Mb2NrLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BV
L3dlYnJ0Yy9SZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcFByb3h5UHJvY2Vzc29yLm1lc3NhZ2Vz
LmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvUmVtb3RlVmlkZW9GcmFt
ZU9iamVjdEhlYXBQcm94eVByb2Nlc3Nvci5tZXNzYWdlcy5pbgppbmRleCBhZmI5MzY0OTVhYmUy
MmFmNmU3Y2UxNGFjYTc5MDc5OWFhZmE3N2FkLi4xZDU1NTM2ZGQ4YTQ1OGNiZDRiMTU4M2UyYWUx
MDE0MTE0Njk3YTEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dl
YnJ0Yy9SZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcFByb3h5UHJvY2Vzc29yLm1lc3NhZ2VzLmlu
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL1JlbW90ZVZpZGVvRnJh
bWVPYmplY3RIZWFwUHJveHlQcm9jZXNzb3IubWVzc2FnZXMuaW4KQEAgLTIwLDcgKzIwLDcgQEAK
ICMgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKICMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KIAotI2lmIEVOQUJMRShNRURJ
QV9TVFJFQU0pICYmIFBMQVRGT1JNKENPQ09BKSAmJiBFTkFCTEUoR1BVX1BST0NFU1MpCisjaWYg
UExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgRU5BQkxFKFZJREVPKQog
CiBtZXNzYWdlcyAtPiBSZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcFByb3h5UHJvY2Vzc29yIHsK
ICAgICBTZXRTaGFyZWRWaWRlb0ZyYW1lU2VtYXBob3JlKElQQzo6U2VtYXBob3JlIHNlbWFwaG9y
ZSkKQEAgLTI5LDQgKzI5LDQgQEAgbWVzc2FnZXMgLT4gUmVtb3RlVmlkZW9GcmFtZU9iamVjdEhl
YXBQcm94eVByb2Nlc3NvciB7CiAgICAgTmV3VmlkZW9GcmFtZUJ1ZmZlcihXZWJLaXQ6OlJlbW90
ZVZpZGVvRnJhbWVJZGVudGlmaWVyIGlkZW50aWZpZXIpCiB9CiAKLSNlbmRpZiAvLyBFTkFCTEUo
TUVESUFfU1RSRUFNKSAmJiBQTEFURk9STShDT0NPQSkgJiYgRU5BQkxFKEdQVV9QUk9DRVNTKQor
I2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9T
aGFyZWRWaWRlb0ZyYW1lLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRj
L1NoYXJlZFZpZGVvRnJhbWUuY3BwCmluZGV4IDlkMzUzZWZmZmY1NjAxNDIxYzE0ZDUyNWRlZTEx
YjA2OTNmMjI4ZjkuLmE3MWNhMDgxMjA4YmQ1MWUxNGU5NjlmNjEwMjI5NThiMmFkODUyZTYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL1NoYXJlZFZpZGVv
RnJhbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL1NoYXJl
ZFZpZGVvRnJhbWUuY3BwCkBAIC0yNiw3ICsyNiw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAj
aW5jbHVkZSAiU2hhcmVkVmlkZW9GcmFtZS5oIgogCi0jaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkg
JiYgUExBVEZPUk0oQ09DT0EpCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBQTEFURk9STShD
T0NPQSkgJiYgRU5BQkxFKFZJREVPKQogCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUg
PFdlYkNvcmUvU2hhcmVkVmlkZW9GcmFtZUluZm8uaD4KQEAgLTE1Miw0ICsxNTIsNCBAQCBib29s
IFNoYXJlZFZpZGVvRnJhbWVSZWFkZXI6OnNldFNoYXJlZE1lbW9yeShjb25zdCBTaGFyZWRNZW1v
cnk6OklQQ0hhbmRsZSYgaXBjSAogCiB9CiAKLSNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU1RSRUFN
KSAmJiBQTEFURk9STShDT0NPQSkKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS93ZWJydGMvU2hhcmVkVmlkZW9GcmFtZS5oIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS93ZWJydGMvU2hhcmVkVmlkZW9GcmFtZS5oCmluZGV4IGMyMDU4NTk0OTZh
NWQ4NTEwNjY1NmNlNTc5MTI5NDlhNDEyN2Y4ZmUuLmFlYmI3OWNlMmRlZWZkNWJmM2ZiNDU3ZGYy
ZTAyZTgyMmRlZGZjOTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUv
d2VicnRjL1NoYXJlZFZpZGVvRnJhbWUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL3dlYnJ0Yy9TaGFyZWRWaWRlb0ZyYW1lLmgKQEAgLTI1LDcgKzI1LDcgQEAKIAogI3ByYWdt
YSBvbmNlCiAKLSNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKSAmJiBQTEFURk9STShDT0NPQSkKKyNp
ZiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIFBMQVRGT1JNKENPQ09BKSAmJiBFTkFCTEUoVklERU8p
CiAKICNpbmNsdWRlICJJUENTZW1hcGhvcmUuaCIKICNpbmNsdWRlICJTaGFyZWRNZW1vcnkuaCIK
QEAgLTk3LDcgKzk3LDYgQEAgaW5saW5lIFNoYXJlZFZpZGVvRnJhbWVSZWFkZXI6OlNoYXJlZFZp
ZGVvRnJhbWVSZWFkZXIoVXNlSU9TdXJmYWNlQnVmZmVyUG9vbCB1c2UKIHsKIH0KIAotCiB9CiAK
LSNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU1RSRUFNKQorI2VuZGlmCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggM2JlNTJiYjk0
YzQ0MzMyZjhlZTc5OGZlMGE5ZDBkZmJiNTYwN2VmMy4uODkyNzQyOGZhMWVlZjRjMWZkNTdkNmNm
MmMxMmJhNmFiNTM4MTE5MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBi
L0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDIyLTAyLTE4ICBLaW1t
byBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CisKKyAgICAgICAgV2ViR0wgR1BVUDog
Q3Jhc2ggd2hlbiBydW5uaW5nIGZhc3QvbWVkaWFzdHJlYW0vZ2V0VXNlck1lZGlhLXRvLWNhbnZh
cy0xLmh0bWwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIzNjUwMgorCisgICAgICAgIFVuc2tpcCB0aGUgcHJldmlvdXMgY3Jhc2hlcyBjYXVzZWQgYnkg
dGhlIGxhY2sgb2YgaW1wbGVtZW50YXRpb24uCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBD
YXJsc29uLgorCisgICAgICAgICogcGxhdGZvcm0vaW9zLXdrMi9UZXN0RXhwZWN0YXRpb25zOgor
CiAyMDIyLTAyLTE4ICBKb24gTGVlICA8am9ubGVlQGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJl
dmlld2VkIGdhcmRlbmluZyBmb3IgR1BVIFByb2Nlc3MgYm90cy4gVXBkYXRlIGZ1enp5IGRhdGEu
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mtd2syL1Rlc3RFeHBlY3RhdGlv
bnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mtd2syL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXgg
YTRhMGJkYmNjMzMzZmFmMThhYWY5YzA2YjY5NDdkYWRmNTE3MmI2Yy4uZmQ3ZmI1N2UyYmNjYmMw
YjQ2YzAzY2Y2ZjJhNGRmYmIwMzk0NDAxZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vaW9zLXdrMi9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lv
cy13azIvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMjIwOSwxMCArMjIwOSw1IEBAIHdlYmtpdC5vcmcv
Yi8yMzQ1MzYgd2ViZ2wvbWF4LWFjdGl2ZS1jb250ZXh0cy1jb25zb2xlLXdhcm5pbmcuaHRtbAog
d2Via2l0Lm9yZy9iLzIzNDUzNiB3ZWJnbC9tYXgtYWN0aXZlLWNvbnRleHRzLWdjLmh0bWwKIHdl
YmtpdC5vcmcvYi8yMzQ1MzYgd2ViZ2wvbWF4LWFjdGl2ZS1jb250ZXh0cy1vbGRlc3QtY29udGV4
dC1sb3N0Lmh0bWwKIHdlYmtpdC5vcmcvYi8yMzQ1MzYgd2VieHIvaGlnaC1wZXJmb3JtYW5jZS5o
dG1sCi13ZWJraXQub3JnL2IvMjM0NTM2IGZhc3QvbWVkaWFzdHJlYW0vZ2V0VXNlck1lZGlhLXRv
LWNhbnZhcy0xLmh0bWwgWyBDcmFzaCBdCi13ZWJraXQub3JnL2IvMjM0NTM2IGZhc3QvbWVkaWFz
dHJlYW0vZ2V0VXNlck1lZGlhLXRvLWNhbnZhcy0yLmh0bWwgWyBDcmFzaCBdCiB3ZWJraXQub3Jn
L2IvMjM0NTM2IHdlYmdsL21heC1hY3RpdmUtY29udGV4dHMtd2ViZ2xjb250ZXh0bG9zdC1wcmV2
ZW50LWRlZmF1bHQuaHRtbCBbIFRpbWVvdXQgXQogd2Via2l0Lm9yZy9iLzIzNDUzNiB3ZWJnbC8x
LjAuMy9jb25mb3JtYW5jZS9zdGF0ZS9nbC1vYmplY3QtZ2V0LWNhbGxzLmh0bWwgWyBUaW1lb3V0
IF0KLQotIyBDYXB0dXJlZCBXZWJHTCB0byBhbm90aGVyIGNvbnRleHQyZCBvciBXZWJHTCBub3Qg
aW1wbGVtZW50ZWQgeWV0Lgotd2Via2l0Lm9yZy9iLzIzNjQ5NiBmYXN0L21lZGlhc3RyZWFtL2Nh
cHR1cmVTdHJlYW0vY2FudmFzM2QuaHRtbCBbIFRpbWVvdXQgXQpcIE5vIG5ld2xpbmUgYXQgZW5k
IG9mIGZpbGUK
</data>
<flag name="commit-queue"
          id="479573"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>452509</attachid>
            <date>2022-02-18 04:56:08 -0800</date>
            <delta_ts>2022-02-18 07:04:12 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-236502-20220218145606.patch</filename>
            <type>text/plain</type>
            <size>64189</size>
            <attacher name="Kimmo Kinnunen">kkinnunen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkwMTIwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGI0MTEzNDNlYzE3MTYy
ODBmYzI0NDIyNmU5MDRkNjU5OTFiNTM2NC4uOTFjZDU4Y2NjMmI4NTk5NWRlOGRiZmU2MzFiYjkz
ZjFjZWVmMTI5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDIyLTAyLTE4ICBLaW1t
byBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CisKKyAgICAgICAgV2ViR0wgR1BVUDog
Q3Jhc2ggd2hlbiBydW5uaW5nIGZhc3QvbWVkaWFzdHJlYW0vZ2V0VXNlck1lZGlhLXRvLWNhbnZh
cy0xLmh0bWwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIzNjUwMgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vODg4NjI5MjE+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgRXJpYyBDYXJsc29uLgorCisgICAgICAgIEFkZCBhIHBvbHltb3JwaGljIGZ1bmN0
aW9uIGFzVmlkZW9GcmFtZUNWIHRvIGNvbnZlcnQgVmlkZW9GcmFtZSB0byBWaWRlb0ZyYW1lQ1Yu
CisgICAgICAgIFZpZGVvRnJhbWVDViBpcyB1c2VkIHRvIGRyYXcgdGhlIGluLXByb2Nlc3Mgdmlk
ZW8gZnJhbWUgdG8gaW4tcHJvY2VzcyBXZWJHTC4KKworICAgICAgICBSZW1vdGVWaWRlb0ZyYW1l
UHJveHkgd2lsbCBpbXBsZW1lbnQgYXNWaWRlb0ZyYW1lQ1YgYnkgZmV0Y2hpbmcgdGhlIGRhdGEg
ZnJvbQorICAgICAgICBHUFVQIGFuZCByZXR1cm5pbmcgYSBuZXcgb2JqZWN0IGV4cG9zaW5nIHRo
ZSBkYXRhLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cywgdGVzdGVkIGJ5IG5vdyB1bnNraXBwZWQg
dGVzdHMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9WaWRlb0ZyYW1lLmg6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvY29jb2EvR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5tbToKKyAgICAgICAg
KFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMQ29jb2E6OmNvcHlUZXh0dXJlRnJvbU1lZGlhKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jdi9WaWRlb0ZyYW1lQ1YuaDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9jdi9WaWRlb0ZyYW1lQ1YubW06CisgICAgICAgIChXZWJDb3Jl
OjpWaWRlb0ZyYW1lQ1Y6OmFzVmlkZW9GcmFtZUNWKToKKwogMjAyMi0wMi0xOCAgWmFuIERvYmVy
c2VrICA8emRvYmVyc2VrQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dUS11bV1BFXSBEb24ndCB1
c2UgQU5HTEUncyBHQk0tYmFzZWQgZGlzcGxheQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA0ZDE5NDFjZTVmYWM1ZjU1
NDVlOGZhODAwYmJkYTdjNjM5NDI5N2Q3Li4yOWU4M2MwZDQ2NjBhMTY1N2ZlZmQ3MjZiY2JlOTMx
NTZjMzQ5NTY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDU1IEBACisyMDIyLTAyLTE4ICBLaW1tbyBL
aW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CisKKyAgICAgICAgV2ViR0wgR1BVUDogQ3Jh
c2ggd2hlbiBydW5uaW5nIGZhc3QvbWVkaWFzdHJlYW0vZ2V0VXNlck1lZGlhLXRvLWNhbnZhcy0x
Lmh0bWwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIz
NjUwMgorCisgICAgICAgIFRoZSBjcmFzaCBpcyBhYm91dCBNZWRpYVBsYXllclByaXZhdGVNZWRp
YVN0cmVhbUFWRk9iakMgYmVpbmcgaW4gV1Agd2hpbGUgb3RoZXIKKyAgICAgICAgbWVkaWEgcGxh
eWVyIHByaXZhdGUgdmFyaWFudHMgYXJlIHByb3hpZWQgdG8gR1BVUC4gVGhlIHByZXZpb3VzIGlt
cGxlbWVudGF0aW9uCisgICAgICAgIHdvdWxkIHNlbmQgbWVkaWEgcGxheWVyIGlkZW50aWZpZXJz
IHRvIEdQVVAgZm9yIGNvcHlpbmcuCisgICAgICAgIFRoaXMgcGF0Y2ggd2lsbCBpbXBsZW1lbnQg
dGhlIGNvcHkgYnkgdGhlIG1lZGlhIHBsYXllciBjcmVhdGluZyBhIHJlZmVyZW5jZQorICAgICAg
ICB0byBWaWRlb0ZyYW1lLiBXZWJHTCB3b3VsZCBzZW5kIHJlZmVyZW5jZSBvZiB0aGUgVmlkZW9G
cmFtZSB0byBHUFVQIGZvciBjb3B5aW5nLgorCisgICAgICAgIE1ha2UgV1AgTWVkaWFQbGF5ZXJQ
cml2YXRlUmVtb3RlIGFsd2F5cyByZXR1cm4gUmVtb3RlVmlkZW9GcmFtZVByb3h5IG9iamVjdHMK
KyAgICAgICAgaW5zdGVhZCBvZiBXUCBpbi1wcm9jZXNzIFZpZGVvRnJhbWUgaW5zdGFuY2VzIChm
b3IgQ29jb2EgVmlkZW9GcmFtZUNWKSB0aGF0CisgICAgICAgIHdvdWxkIGhvbGQgdGhlIHZpZGVv
IGRhdGEgaW4gcHJvY2Vzcy4KKworICAgICAgICBXUCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0
cmVhbUFWRk9iakMgYWxyZWFkeSByZXR1cm5zIFJlbW90ZVZpZGVvRnJhbWVQcm94eQorICAgICAg
ICBvYmplY3RzLiBUaGlzIHdheSBHUFVQIFdlYkdMIGltcGxlbWVudGF0aW9uIGNhbiBvYnRhaW4g
dGhlIHJlYWQgcmVmZXJlbmNlCisgICAgICAgIHRvIHRoZSByZW1vdGUgb2JqZWN0IGFuZCBzZW5k
IGl0IGluIGNvcHlUZXh0dXJlRnJvbVZpZGVvRnJhbWUgbWVzc2FnZS4KKworICAgICAgICBUaGUg
V1AgaW4tcHJvY2VzcyBXZWJHTCBpbXBsZW1lbnRhdGlvbiBjb252ZXJ0cyB0aGUgUmVtb3RlVmlk
ZW9GcmFtZVByb3h5CisgICAgICAgIHRvIFZpZGVvRnJhbWVDViB3aXRoIHRoZSBuZXcgUmVtb3Rl
VmlkZW9GcmFtZVByb3h5Ojphc1ZpZGVvRnJhbWVDVi4KKworICAgICAgICBSZXZpZXdlZCBieSBF
cmljIENhcmxzb24uCisKKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBo
aWNzQ29udGV4dEdMLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlR3JhcGhpY3NDb250ZXh0
R0w6OlJlbW90ZUdyYXBoaWNzQ29udGV4dEdMKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlR3Jh
cGhpY3NDb250ZXh0R0w6OmNvcHlUZXh0dXJlRnJvbVZpZGVvRnJhbWUpOgorICAgICAgICAqIEdQ
VVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0wuaDoKKyAgICAgICAgKiBH
UFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMLm1lc3NhZ2VzLmluOgor
ICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xDb2Nv
YS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUdyYXBoaWNzQ29udGV4dEdMOjpjb3B5VGV4
dHVyZUZyb21WaWRlb0ZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlR3JhcGhpY3NDb250
ZXh0R0w6OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUdyYXBoaWNzQ29udGV4dEdM
Q29jb2E6OlJlbW90ZUdyYXBoaWNzQ29udGV4dEdMQ29jb2EpOgorICAgICAgICAoV2ViS2l0OjpS
ZW1vdGVHcmFwaGljc0NvbnRleHRHTENvY29hOjpwbGF0Zm9ybVdvcmtRdWV1ZUluaXRpYWxpemUp
OgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVHcmFwaGljc0NvbnRleHRHTENvY29hOjpwcmVwYXJl
Rm9yRGlzcGxheSk6CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXll
ck1hbmFnZXJQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyTWFu
YWdlclByb3h5OjpjcmVhdGVNZWRpYVBsYXllcik6CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRp
YS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVk
aWFQbGF5ZXJQcm94eTo6UmVtb3RlTWVkaWFQbGF5ZXJQcm94eSk6CisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZU1lZGlhUGxheWVyUHJveHk6OnZpZGVvRnJhbWVGb3JDdXJyZW50VGltZUlmQ2hhbmdl
ZCk6CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5Lmg6
CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5Lm1lc3Nh
Z2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNz
Q29udGV4dEdMUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVHcmFwaGljc0NvbnRl
eHRHTFByb3h5Ojpjb3B5VGV4dHVyZUZyb21NZWRpYSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9H
UFUvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eS5oOgorICAgICAgICAqIFdl
YlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5jcHA6CisgICAgICAg
IChXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6dmlkZW9GcmFtZUZvckN1cnJlbnRU
aW1lKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVS
ZW1vdGUuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVWaWRlb0ZyYW1l
UHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVWaWRlb0ZyYW1lUHJveHk6OmFzVmlk
ZW9GcmFtZUNWKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVWaWRlb0Zy
YW1lUHJveHkuaDoKKwogMjAyMi0wMi0xNyAgS2ltbW8gS2lubnVuZW4gIDxra2lubnVuZW5AYXBw
bGUuY29tPgogCiAgICAgICAgIEFTU0VSVElPTiBGQUlMRUQ6IFRocmVhZDo6Y3VycmVudCgpLnVp
ZCgpID09IHRocmVhZEFzc2VydGlvbi5tX3VpZCBmb3IgUmVtb3RlVmlkZW9GcmFtZU9iamVjdEhl
YXAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1ZpZGVvRnJhbWUuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL1ZpZGVvRnJhbWUuaAppbmRleCBiNTU0NTZmZjk0YWJiNzEx
ZDMyNmYyZDZkMDk5OWQ2YmQ1YzYwYTZkLi42NDExZGY3ZDY0MGNjZGVkMWQxZTNlMTFmZDFhNDI4
YTI5MWIzMWVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9WaWRlb0ZyYW1l
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVmlkZW9GcmFtZS5oCkBAIC0zMSw2ICsz
MSwxMSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKKyNpZiBVU0UoQVZGT1VOREFUSU9OKQor
Y2xhc3MgVmlkZW9GcmFtZUNWOworI2VuZGlmCisKKwogLy8gQSBjbGFzcyByZXByZXNlbnRpbmcg
YSB2aWRlbyBmcmFtZSBmcm9tIGEgZGVjb2RlciwgY2FwdHVyZSBzb3VyY2UsIG9yIHNpbWlsYXIu
CiAvLyBGSVhNRTogQ3VycmVudGx5IGZvciBpbXBsZW1lbnRhdGlvbiBwdXJwb3NlcyBpbmhlcnRz
IGZyb20gTWVkaWFTYW1wbGUgdW50aWwgY2FwdHVyZSBjb2RlCiAvLyBzdG9wcyByZWZlcnJpbmcg
dG8gTWVkaWFTYW1wbGUKQEAgLTQ5LDYgKzU0LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9v
bCBpc1JlbW90ZVByb3h5KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICNpZiBVU0UoQVZGT1VO
REFUSU9OKQogICAgIHZpcnR1YWwgYm9vbCBpc0NWKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0K
KyAgICB2aXJ0dWFsIFJlZlB0cjxXZWJDb3JlOjpWaWRlb0ZyYW1lQ1Y+IGFzVmlkZW9GcmFtZUNW
KCkgPSAwOwogI2VuZGlmCiAKIHByb3RlY3RlZDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2NvY29hL1NoYXJlZFZpZGVvRnJhbWVJbmZvLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9jb2NvYS9TaGFyZWRWaWRlb0ZyYW1lSW5mby5oCmluZGV4IDRlZThhOTZkMmUzYTIy
YmZmYzUyZjM2OTBkOTJiZmU4ZjE4MjhkNzQuLmJlM2ZkYjc5NzgwM2ExNDBlYjAyYzQ2OWQzMzYy
NGI0OGI2Mjc1MDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1No
YXJlZFZpZGVvRnJhbWVJbmZvLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2Ev
U2hhcmVkVmlkZW9GcmFtZUluZm8uaApAQCAtMjUsNyArMjUsNyBAQAogCiAjcHJhZ21hIG9uY2UK
IAotI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pICYmIFBMQVRGT1JNKENPQ09BKQorI2lmIEVOQUJM
RShWSURFTykgJiYgUExBVEZPUk0oQ09DT0EpCiAKICNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+
CiAjaW5jbHVkZSA8d3RmL1NwYW4uaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2NvY29hL1NoYXJlZFZpZGVvRnJhbWVJbmZvLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vY29jb2EvU2hhcmVkVmlkZW9GcmFtZUluZm8ubW0KaW5kZXggNjFlZjJjZWJjNzllNzc0Zjg5
NzE1NmE5ZjcxYmI1NmU0NGM0NjZmNi4uMDhjNmNjZDg4NTM3MWZhZjFkMTE4ZTM5ZGEyM2FlMzJk
ODQ1OWJkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvU2hhcmVk
VmlkZW9GcmFtZUluZm8ubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvU2hh
cmVkVmlkZW9GcmFtZUluZm8ubW0KQEAgLTI2LDcgKzI2LDcgQEAKICNpbmNsdWRlICJjb25maWcu
aCIKICNpbmNsdWRlICJTaGFyZWRWaWRlb0ZyYW1lSW5mby5oIgogCi0jaWYgRU5BQkxFKE1FRElB
X1NUUkVBTSkgJiYgUExBVEZPUk0oQ09DT0EpCisjaWYgRU5BQkxFKFZJREVPKSAmJiBQTEFURk9S
TShDT0NPQSkKIAogI2luY2x1ZGUgIkNWVXRpbGl0aWVzLmgiCiAjaW5jbHVkZSAiSU9TdXJmYWNl
LmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9H
cmFwaGljc0NvbnRleHRHTENvY29hLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY29jb2EvR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5tbQppbmRleCBhMGJmY2YyNzI5NTE2ZTI0
ZTZjOTliMjBhNjQ1MjNjN2NlODlkYzdkLi4zNWI5MWZiM2RkNjdhNzMyODk3Y2M1NDY3MjJjM2Zm
NTBhOWQwOTY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
b2NvYS9HcmFwaGljc0NvbnRleHRHTENvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NvY29hL0dyYXBoaWNzQ29udGV4dEdMQ29jb2EubW0KQEAgLTM4LDcgKzM4
LDYgQEAKICNpbXBvcnQgIlBpeGVsQnVmZmVyLmgiCiAjaW1wb3J0ICJQcm9jZXNzSWRlbnRpdHku
aCIKICNpbXBvcnQgIlJ1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5oIgotI2ltcG9ydCAiVmlkZW9G
cmFtZUNWLmgiCiAjaW1wb3J0IDxDb3JlR3JhcGhpY3MvQ0dCaXRtYXBDb250ZXh0Lmg+CiAjaW1w
b3J0IDxNZXRhbC9NZXRhbC5oPgogI2ltcG9ydCA8cGFsL3NwaS9jb2NvYS9NZXRhbFNQSS5oPgpA
QCAtNTAsMTMgKzQ5LDE0IEBACiAjZW5kaWYKIAogI2lmIEVOQUJMRShWSURFTykKLSNpbmNsdWRl
ICJHcmFwaGljc0NvbnRleHRHTENWQ29jb2EuaCIKLSNpbmNsdWRlICJNZWRpYVBsYXllclByaXZh
dGUuaCIKKyNpbXBvcnQgIkdyYXBoaWNzQ29udGV4dEdMQ1ZDb2NvYS5oIgorI2ltcG9ydCAiTWVk
aWFQbGF5ZXJQcml2YXRlLmgiCisjaW1wb3J0ICJWaWRlb0ZyYW1lQ1YuaCIKICNlbmRpZgogCiAj
aWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKLSNpbmNsdWRlICJJbWFnZVJvdGF0aW9uU2Vzc2lvblZU
LmgiCi0jaW5jbHVkZSAiTWVkaWFTYW1wbGVBVkZPYmpDLmgiCisjaW1wb3J0ICJJbWFnZVJvdGF0
aW9uU2Vzc2lvblZULmgiCisjaW1wb3J0ICJNZWRpYVNhbXBsZUFWRk9iakMuaCIKICNlbmRpZgog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC03ODMsMTUgKzc4MywxNiBAQCBib29sIEdyYXBoaWNz
Q29udGV4dEdMQ29jb2E6OmNvcHlUZXh0dXJlRnJvbU1lZGlhKE1lZGlhUGxheWVyJiBwbGF5ZXIs
IFBsYXRmb3JtRwogICAgIGF1dG8gdmlkZW9GcmFtZSA9IHBsYXllci52aWRlb0ZyYW1lRm9yQ3Vy
cmVudFRpbWUoKTsKICAgICBpZiAoIXZpZGVvRnJhbWUpCiAgICAgICAgIHJldHVybiBmYWxzZTsK
LSAgICBBU1NFUlQoaXM8VmlkZW9GcmFtZUNWPigqdmlkZW9GcmFtZSkpOwotCisgICAgYXV0byB2
aWRlb0ZyYW1lQ1YgPSB2aWRlb0ZyYW1lLT5hc1ZpZGVvRnJhbWVDVigpOworICAgIGlmICghdmlk
ZW9GcmFtZUNWKQorICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgYXV0byBjb250ZXh0Q1YgPSBh
c0NWKCk7CiAgICAgaWYgKCFjb250ZXh0Q1YpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAg
IFVOVVNFRF9WQVJJQUJMRShwcmVtdWx0aXBseUFscGhhKTsKICAgICBBU1NFUlRfVU5VU0VEKG91
dHB1dFRhcmdldCwgb3V0cHV0VGFyZ2V0ID09IEdyYXBoaWNzQ29udGV4dEdMOjpURVhUVVJFXzJE
KTsKLSAgICByZXR1cm4gY29udGV4dENWLT5jb3B5VmlkZW9TYW1wbGVUb1RleHR1cmUoZG93bmNh
c3Q8VmlkZW9GcmFtZUNWPigqdmlkZW9GcmFtZSksIG91dHB1dFRleHR1cmUsIGxldmVsLCBpbnRl
cm5hbEZvcm1hdCwgZm9ybWF0LCB0eXBlLCBHcmFwaGljc0NvbnRleHRHTDo6RmxpcFkoZmxpcFkp
KTsKKyAgICByZXR1cm4gY29udGV4dENWLT5jb3B5VmlkZW9TYW1wbGVUb1RleHR1cmUoKnZpZGVv
RnJhbWVDViwgb3V0cHV0VGV4dHVyZSwgbGV2ZWwsIGludGVybmFsRm9ybWF0LCBmb3JtYXQsIHR5
cGUsIEdyYXBoaWNzQ29udGV4dEdMOjpGbGlwWShmbGlwWSkpOwogfQogI2VuZGlmCiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L0NWVXRpbGl0aWVzLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9DVlV0aWxpdGllcy5oCmluZGV4
IDk3ZGEyYzdhNzYyZWQxZjg1MTJiMzYxM2M3NGYyNmU3MjQxNmNhMjguLmExNTk0ZWJkZTQ5NTA0
Y2I4NDAzZmRkOGFlNmRkNjI1NzdkN2ExMmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2N2L0NWVXRpbGl0aWVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY3YvQ1ZVdGlsaXRpZXMuaApAQCAtNTQsNCArNTQsNiBAQCBSZXRhaW5Q
dHI8Q0dDb2xvclNwYWNlUmVmPiBjcmVhdGVDR0NvbG9yU3BhY2VGb3JDVlBpeGVsQnVmZmVyKENW
UGl4ZWxCdWZmZXJSZWYpOwogLy8gU2hvdWxkIGJlIGNhbGxlZCB3aXRoIG5vbi1lbXB0eSBQcm9j
ZXNzSWRlbnRpdHkuCiBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldE93bmVyc2hpcElkZW50aXR5Rm9y
Q1ZQaXhlbEJ1ZmZlcihDVlBpeGVsQnVmZmVyUmVmLCBjb25zdCBQcm9jZXNzSWRlbnRpdHkmKTsK
IAorV0VCQ09SRV9FWFBPUlQgUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+IGNyZWF0ZUJsYWNr
UGl4ZWxCdWZmZXIoc2l6ZV90IHdpZHRoLCBzaXplX3QgaGVpZ2h0KTsKKwogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvQ1ZVdGlsaXRpZXMubW0gYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9DVlV0aWxpdGllcy5tbQppbmRleCBl
MTBhMjU1M2JlYmVkYzBjYjgyOTdmMzM3NmZhZmQwNmU2Y2JhM2U5Li5kMDg1MGJhZjMyMTFhMmI1
ZGZlZmVjOGUyNTg1YTY2YWE0ZGNkZjU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jdi9DVlV0aWxpdGllcy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jdi9DVlV0aWxpdGllcy5tbQpAQCAtMjgsNiArMjgsNyBAQAogCiAjaW1w
b3J0ICJDb2xvclNwYWNlQ0cuaCIKICNpbXBvcnQgIklPU3VyZmFjZS5oIgorI2ltcG9ydCAiUmVh
bHRpbWVWaWRlb1V0aWxpdGllcy5oIgogI2ltcG9ydCA8d3RmL1N0ZExpYkV4dHJhcy5oPgogI2lt
cG9ydCA8d3RmL2NmL1R5cGVDYXN0c0NGLmg+CiAjaW1wb3J0ICJDb3JlVmlkZW9Tb2Z0TGluay5o
IgpAQCAtMTYyLDQgKzE2MywzMSBAQCB2b2lkIHNldE93bmVyc2hpcElkZW50aXR5Rm9yQ1ZQaXhl
bEJ1ZmZlcihDVlBpeGVsQnVmZmVyUmVmIHBpeGVsQnVmZmVyLCBjb25zdCBQcgogICAgIElPU3Vy
ZmFjZTo6c2V0T3duZXJzaGlwSWRlbnRpdHkoc3VyZmFjZSwgb3duZXIpOwogfQogCitSZXRhaW5Q
dHI8Q1ZQaXhlbEJ1ZmZlclJlZj4gY3JlYXRlQmxhY2tQaXhlbEJ1ZmZlcihzaXplX3Qgd2lkdGgs
IHNpemVfdCBoZWlnaHQpCit7CisgICAgT1NUeXBlIGZvcm1hdCA9IHByZWZlcmVkUGl4ZWxCdWZm
ZXJGb3JtYXQoKTsKKyAgICBBU1NFUlQoZm9ybWF0ID09IGtDVlBpeGVsRm9ybWF0VHlwZV80MjBZ
cENiQ3I4QmlQbGFuYXJWaWRlb1JhbmdlIHx8IGZvcm1hdCA9PSBrQ1ZQaXhlbEZvcm1hdFR5cGVf
NDIwWXBDYkNyOEJpUGxhbmFyRnVsbFJhbmdlKTsKKworICAgIENWUGl4ZWxCdWZmZXJSZWYgcGl4
ZWxCdWZmZXIgPSBudWxscHRyOworICAgIGF1dG8gc3RhdHVzID0gQ1ZQaXhlbEJ1ZmZlckNyZWF0
ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCB3aWR0aCwgaGVpZ2h0LCBmb3JtYXQsIG51bGxwdHIsICZw
aXhlbEJ1ZmZlcik7CisgICAgQVNTRVJUX1VOVVNFRChzdGF0dXMsIHN0YXR1cyA9PSBub0Vycik7
CisKKyAgICBzdGF0dXMgPSBDVlBpeGVsQnVmZmVyTG9ja0Jhc2VBZGRyZXNzKHBpeGVsQnVmZmVy
LCAwKTsKKyAgICBBU1NFUlQoc3RhdHVzID09IG5vRXJyKTsKKworICAgIGF1dG8qIHlQbGFuZSA9
IHN0YXRpY19jYXN0PHVpbnQ4X3QqPihDVlBpeGVsQnVmZmVyR2V0QmFzZUFkZHJlc3NPZlBsYW5l
KHBpeGVsQnVmZmVyLCAwKSk7CisgICAgc2l6ZV90IHlTdHJpZGUgPSBDVlBpeGVsQnVmZmVyR2V0
Qnl0ZXNQZXJSb3dPZlBsYW5lKHBpeGVsQnVmZmVyLCAwKTsKKyAgICBmb3IgKHVuc2lnbmVkIGkg
PSAwOyBpIDwgaGVpZ2h0OyArK2kpCisgICAgICAgIG1lbXNldCgmeVBsYW5lW2kgKiB5U3RyaWRl
XSwgMCwgd2lkdGgpOworCisgICAgYXV0byogdXZQbGFuZSA9IHN0YXRpY19jYXN0PHVpbnQ4X3Qq
PihDVlBpeGVsQnVmZmVyR2V0QmFzZUFkZHJlc3NPZlBsYW5lKHBpeGVsQnVmZmVyLCAxKSk7Cisg
ICAgc2l6ZV90IHV2U3RyaWRlID0gQ1ZQaXhlbEJ1ZmZlckdldEJ5dGVzUGVyUm93T2ZQbGFuZShw
aXhlbEJ1ZmZlciwgMSk7CisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGhlaWdodCAvIDI7
ICsraSkKKyAgICAgICAgbWVtc2V0KCZ1dlBsYW5lW2kgKiB1dlN0cmlkZV0sIDEyOCwgd2lkdGgp
OworCisgICAgc3RhdHVzID0gQ1ZQaXhlbEJ1ZmZlclVubG9ja0Jhc2VBZGRyZXNzKHBpeGVsQnVm
ZmVyLCAwKTsKKyAgICBBU1NFUlQoIXN0YXR1cyk7CisgICAgcmV0dXJuIGFkb3B0Q0YocGl4ZWxC
dWZmZXIpOworfQorCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jdi9WaWRlb0ZyYW1lQ1YuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2N2L1ZpZGVvRnJhbWVDVi5oCmluZGV4IDgzMWM4ODAyY2M4YzgzMzkzNDRmYjBkNzRlMWRiM2Zk
M2JkZGY3ZGEuLjE0ZWI1YjU1MmZjY2M1MzM3NjNmYzc0YzdlOTNkZWM2ZjIzMjFjYjMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L1ZpZGVvRnJhbWVDVi5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L1ZpZGVvRnJhbWVDVi5o
CkBAIC00Nyw5ICs0NywxMCBAQCBwdWJsaWM6CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGVjb2Rl
cj4gc3RhdGljIHN0ZDo6b3B0aW9uYWw8UmVmUHRyPFZpZGVvRnJhbWVDVj4+IGRlY29kZShEZWNv
ZGVyJik7CiAKICAgICAvLyBWaWRlb0ZyYW1lIG92ZXJyaWRlcy4KLSAgICBXZWJDb3JlOjpGbG9h
dFNpemUgcHJlc2VudGF0aW9uU2l6ZSgpIGNvbnN0IGZpbmFsOwotICAgIHVpbnQzMl90IHZpZGVv
UGl4ZWxGb3JtYXQoKSBjb25zdCBmaW5hbDsKKyAgICBXRUJDT1JFX0VYUE9SVCBXZWJDb3JlOjpG
bG9hdFNpemUgcHJlc2VudGF0aW9uU2l6ZSgpIGNvbnN0IGZpbmFsOworICAgIFdFQkNPUkVfRVhQ
T1JUIHVpbnQzMl90IHZpZGVvUGl4ZWxGb3JtYXQoKSBjb25zdCBmaW5hbDsKICAgICBib29sIGlz
Q1YoKSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVlOyB9CisgICAgV0VCQ09SRV9FWFBPUlQgUmVm
UHRyPFdlYkNvcmU6OlZpZGVvRnJhbWVDVj4gYXNWaWRlb0ZyYW1lQ1YoKSBmaW5hbDsKIAogcHJp
dmF0ZToKICAgICBXRUJDT1JFX0VYUE9SVCBWaWRlb0ZyYW1lQ1YoTWVkaWFUaW1lIHByZXNlbnRh
dGlvblRpbWUsIGJvb2wgaXNNaXJyb3JlZCwgVmlkZW9Sb3RhdGlvbiwgUmV0YWluUHRyPENWUGl4
ZWxCdWZmZXJSZWY+JiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY3YvVmlkZW9GcmFtZUNWLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY3YvVmlkZW9GcmFtZUNWLm1tCmluZGV4IGE1YTZkMDgyYmJlNDJjMzE3M2FiYzFmYTg4MTJl
NDQxY2FjNmY2ZTUuLmQzOWM5MGUwYzc5MGE1NzUxMTM3YjA1YTZmZDYwMTExMmQ2YTk4MWEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L1ZpZGVvRnJhbWVD
Vi5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9WaWRlb0ZyYW1l
Q1YubW0KQEAgLTU0LDYgKzU0LDExIEBAIHVpbnQzMl90IFZpZGVvRnJhbWVDVjo6dmlkZW9QaXhl
bEZvcm1hdCgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIENWUGl4ZWxCdWZmZXJHZXRQaXhlbEZvcm1h
dFR5cGUobV9waXhlbEJ1ZmZlci5nZXQoKSk7CiB9CitSZWZQdHI8V2ViQ29yZTo6VmlkZW9GcmFt
ZUNWPiBWaWRlb0ZyYW1lQ1Y6OmFzVmlkZW9GcmFtZUNWKCkKK3sKKyAgICByZXR1cm4gdGhpczsK
K30KKwogCiBJbWFnZU9yaWVudGF0aW9uIFZpZGVvRnJhbWVDVjo6b3JpZW50YXRpb24oKSBjb25z
dAogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9N
ZWRpYVJlY29yZGVyUHJpdmF0ZUFWRkltcGwuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyUHJpdmF0ZUFWRkltcGwuY3BwCmluZGV4IDMzZGIx
MmZhYWM3ZjYyNmY3MDUzODE4MTA4OGFmYTY0NTdjMGE0MDkuLjY5Y2RjOGE2MDRhN2U0NTZkMDU1
ZTFiNzNhY2ExYTA5OTkzZjBhNmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlclByaXZhdGVBVkZJbXBsLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcml2YXRlQVZG
SW1wbC5jcHAKQEAgLTMwLDYgKzMwLDcgQEAKIAogI2luY2x1ZGUgIkF1ZGlvU3RyZWFtRGVzY3Jp
cHRpb24uaCIKICNpbmNsdWRlICJDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24uaCIKKyNpbmNsdWRl
ICJDVlV0aWxpdGllcy5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJNZWRpYVJl
Y29yZGVyUHJpdmF0ZVdyaXRlckNvY29hLmgiCiAjaW5jbHVkZSAiTWVkaWFTYW1wbGVBVkZPYmpD
LmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMv
UmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlQ29jb2EuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZUluY29taW5nVmlkZW9Tb3VyY2VDb2NvYS5oCmlu
ZGV4IDY0NjZkNjE4ZGU3NDllNWM1ZjkyNjFkMjUyZGQ5YjBjMTllMWE1NzUuLjYwMzM4ZWEwNzM3
ZGI2MTY4ZmM2MTBiMWM0MjA1YzNhYWE2OWFiZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZUluY29taW5nVmlkZW9Tb3VyY2VDb2Nv
YS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGlt
ZUluY29taW5nVmlkZW9Tb3VyY2VDb2NvYS5oCkBAIC02OCw4ICs2OCw2IEBAIHByaXZhdGU6CiAg
ICAgd2VicnRjOjpCdWZmZXJUeXBlIG1fcGl4ZWxCdWZmZXJQb29sQnVmZmVyVHlwZTsKIH07CiAK
LVdFQkNPUkVfRVhQT1JUIFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiBjcmVhdGVCbGFja1Bp
eGVsQnVmZmVyKHNpemVfdCB3aWR0aCwgc2l6ZV90IGhlaWdodCk7Ci0KIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKIAogI2VuZGlmIC8vIFVTRShMSUJXRUJSVEMpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291
cmNlQ29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVh
bHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlQ29jb2EubW0KaW5kZXggN2EzNTI2YTM5MzU0ZGQ2OTlh
Y2Q3ZTYxYTg2NTgyYmYwNjcxYTU0YS4uY2YwMzg0Yjk5ZGI0YzljZDg5YWRhYWJjNGE1NGY1Y2M2
MjMxMDhlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
bWFjL1JlYWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZUNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZUluY29taW5nVmlkZW9Tb3VyY2VD
b2NvYS5tbQpAQCAtMzMsNyArMzMsNiBAQAogI2ltcG9ydCAiQ1ZVdGlsaXRpZXMuaCIKICNpbXBv
cnQgIkxvZ2dpbmcuaCIKICNpbXBvcnQgIk1lZGlhU2FtcGxlQVZGT2JqQy5oIgotI2ltcG9ydCAi
UmVhbHRpbWVWaWRlb1V0aWxpdGllcy5oIgogI2ltcG9ydCA8d3RmL2NmL1R5cGVDYXN0c0NGLmg+
CiAKIEFMTE9XX1VOVVNFRF9QQVJBTUVURVJTX0JFR0lOCkBAIC02MiwzMyArNjEsNiBAQCBSZWFs
dGltZUluY29taW5nVmlkZW9Tb3VyY2VDb2NvYTo6UmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNl
Q29jb2EocnRjOjpzY29wZWRfcgogewogfQogCi1SZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4g
Y3JlYXRlQmxhY2tQaXhlbEJ1ZmZlcihzaXplX3Qgd2lkdGgsIHNpemVfdCBoZWlnaHQpCi17Ci0g
ICAgT1NUeXBlIGZvcm1hdCA9IHByZWZlcmVkUGl4ZWxCdWZmZXJGb3JtYXQoKTsKLSAgICBBU1NF
UlQoZm9ybWF0ID09IGtDVlBpeGVsRm9ybWF0VHlwZV80MjBZcENiQ3I4QmlQbGFuYXJWaWRlb1Jh
bmdlIHx8IGZvcm1hdCA9PSBrQ1ZQaXhlbEZvcm1hdFR5cGVfNDIwWXBDYkNyOEJpUGxhbmFyRnVs
bFJhbmdlKTsKLQotICAgIENWUGl4ZWxCdWZmZXJSZWYgcGl4ZWxCdWZmZXIgPSBudWxscHRyOwot
ICAgIGF1dG8gc3RhdHVzID0gQ1ZQaXhlbEJ1ZmZlckNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0
LCB3aWR0aCwgaGVpZ2h0LCBmb3JtYXQsIG51bGxwdHIsICZwaXhlbEJ1ZmZlcik7Ci0gICAgQVNT
RVJUX1VOVVNFRChzdGF0dXMsIHN0YXR1cyA9PSBub0Vycik7Ci0KLSAgICBzdGF0dXMgPSBDVlBp
eGVsQnVmZmVyTG9ja0Jhc2VBZGRyZXNzKHBpeGVsQnVmZmVyLCAwKTsKLSAgICBBU1NFUlQoc3Rh
dHVzID09IG5vRXJyKTsKLQotICAgIGF1dG8qIHlQbGFuZSA9IHN0YXRpY19jYXN0PHVpbnQ4X3Qq
PihDVlBpeGVsQnVmZmVyR2V0QmFzZUFkZHJlc3NPZlBsYW5lKHBpeGVsQnVmZmVyLCAwKSk7Ci0g
ICAgc2l6ZV90IHlTdHJpZGUgPSBDVlBpeGVsQnVmZmVyR2V0Qnl0ZXNQZXJSb3dPZlBsYW5lKHBp
eGVsQnVmZmVyLCAwKTsKLSAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgaGVpZ2h0OyArK2kp
Ci0gICAgICAgIG1lbXNldCgmeVBsYW5lW2kgKiB5U3RyaWRlXSwgMCwgd2lkdGgpOwotCi0gICAg
YXV0byogdXZQbGFuZSA9IHN0YXRpY19jYXN0PHVpbnQ4X3QqPihDVlBpeGVsQnVmZmVyR2V0QmFz
ZUFkZHJlc3NPZlBsYW5lKHBpeGVsQnVmZmVyLCAxKSk7Ci0gICAgc2l6ZV90IHV2U3RyaWRlID0g
Q1ZQaXhlbEJ1ZmZlckdldEJ5dGVzUGVyUm93T2ZQbGFuZShwaXhlbEJ1ZmZlciwgMSk7Ci0gICAg
Zm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGhlaWdodCAvIDI7ICsraSkKLSAgICAgICAgbWVtc2V0
KCZ1dlBsYW5lW2kgKiB1dlN0cmlkZV0sIDEyOCwgd2lkdGgpOwotCi0gICAgc3RhdHVzID0gQ1ZQ
aXhlbEJ1ZmZlclVubG9ja0Jhc2VBZGRyZXNzKHBpeGVsQnVmZmVyLCAwKTsKLSAgICBBU1NFUlQo
IXN0YXR1cyk7Ci0gICAgcmV0dXJuIGFkb3B0Q0YocGl4ZWxCdWZmZXIpOwotfQotCiBDVlBpeGVs
QnVmZmVyUG9vbFJlZiBSZWFsdGltZUluY29taW5nVmlkZW9Tb3VyY2VDb2NvYTo6cGl4ZWxCdWZm
ZXJQb29sKHNpemVfdCB3aWR0aCwgc2l6ZV90IGhlaWdodCwgd2VicnRjOjpCdWZmZXJUeXBlIGJ1
ZmZlclR5cGUpCiB7CiAgICAgaWYgKCFtX3BpeGVsQnVmZmVyUG9vbCB8fCBtX3BpeGVsQnVmZmVy
UG9vbFdpZHRoICE9IHdpZHRoIHx8IG1fcGl4ZWxCdWZmZXJQb29sSGVpZ2h0ICE9IGhlaWdodCB8
fCBtX3BpeGVsQnVmZmVyUG9vbEJ1ZmZlclR5cGUgIT0gYnVmZmVyVHlwZSkgewpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lT3V0Z29p
bmdWaWRlb1NvdXJjZUNvY29hLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL21hYy9SZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2VDb2NvYS5jcHAKaW5kZXggYTM3NTk1
ZWIzNjkzMDhjNTY3ODY2Zjc4ODM0MTZlM2M4ZGVmZmE1OS4uNjk1MjA1ZjUwZjkyMzJhNDJiY2E1
MDBiMjQ0Yzg5OGZiYTY3NzE3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZUNvY29hLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVPdXRnb2lu
Z1ZpZGVvU291cmNlQ29jb2EuY3BwCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpZiBVU0UoTElCV0VC
UlRDKQogCisjaW5jbHVkZSAiQ1ZVdGlsaXRpZXMuaCIKICNpbmNsdWRlICJJbWFnZVJvdGF0aW9u
U2Vzc2lvblZULmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIlJlYWx0aW1lSW5j
b21pbmdWaWRlb1NvdXJjZUNvY29hLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKaW5kZXggMmRmMDllMGY5ZDllNmIw
NTgzZjA4YWUxOGM1YzhkNDQ1ODEzZjA2OS4uOTJkM2UzYTY0MTliYmQwYmVlYTgwYmZjOTI0ZjNm
ZWYyNTk1NTRjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVD
b25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcApAQCAtMTQxLDcgKzE0MSw2IEBACiAjZW5kaWYKIAog
I2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCi0jaW5jbHVkZSAiUmVtb3RlVmlkZW9GcmFtZU9iamVj
dEhlYXAuaCIKICNpbmNsdWRlIDxXZWJDb3JlL1NlY3VyaXR5T3JpZ2luLmg+CiAjZW5kaWYKIApA
QCAtMTU0LDYgKzE1MywxMCBAQAogI2luY2x1ZGUgIklQQ1Rlc3Rlck1lc3NhZ2VzLmgiCiAjZW5k
aWYKIAorI2lmIEVOQUJMRShWSURFTykKKyNpbmNsdWRlICJSZW1vdGVWaWRlb0ZyYW1lT2JqZWN0
SGVhcC5oIgorI2VuZGlmCisKIG5hbWVzcGFjZSBXZWJLaXQgewogdXNpbmcgbmFtZXNwYWNlIFdl
YkNvcmU7CiAKQEAgLTI0NCw3ICsyNDcsNyBAQCBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpH
UFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzKEdQVVByb2Nlc3MmIGdwdVByb2Nlc3MsIFdlYgogI2lm
IEVOQUJMRShNRURJQV9TVFJFQU0pCiAgICAgLCBtX2NhcHR1cmVPcmlnaW4oU2VjdXJpdHlPcmln
aW46OmNyZWF0ZVVuaXF1ZSgpKQogI2VuZGlmCi0jaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyNp
ZiBFTkFCTEUoVklERU8pCiAgICAgLCBtX3ZpZGVvRnJhbWVPYmplY3RIZWFwKFJlbW90ZVZpZGVv
RnJhbWVPYmplY3RIZWFwOjpjcmVhdGUoKnRoaXMpKQogI2VuZGlmCiAjaWYgUExBVEZPUk0oQ09D
T0EpICYmIFVTRShMSUJXRUJSVEMpCkBAIC0zMDIsNyArMzA1LDcgQEAgdm9pZCBHUFVDb25uZWN0
aW9uVG9XZWJQcm9jZXNzOjpkaWRDbG9zZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24pCiAg
ICAgICAgIG1fYXVkaW9TZXNzaW9uUHJveHkgPSBudWxscHRyOwogICAgIH0KICNlbmRpZgotI2lm
IEVOQUJMRShNRURJQV9TVFJFQU0pCisjaWYgRU5BQkxFKFZJREVPKQogICAgIG1fdmlkZW9GcmFt
ZU9iamVjdEhlYXAucmVzZXQoKTsKICNlbmRpZgogICAgIC8vIFJlbW90ZVJlbmRlcmluZ0JhY2tl
bmQgb2JqZWN0cyByZWYgdGhlaXIgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyBzbyB3ZSBuZWVk
IHRvIG1ha2Ugc3VyZQpAQCAtOTQ3LDEzICs5NTAsMTQgQEAgYm9vbCBHUFVDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzOjpzZXRDYXB0dXJlQXR0cmlidXRpb25TdHJpbmcoKSBjb25zdAogewogfQogI2Vu
ZGlmCisjZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NUUkVBTSkKIAorI2lmIEVOQUJMRShWSURFTykK
IFJlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwJiBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjp2
aWRlb0ZyYW1lT2JqZWN0SGVhcCgpIGNvbnN0CiB7CiAgICAgcmV0dXJuICptX3ZpZGVvRnJhbWVP
YmplY3RIZWFwLmdldCgpOwogfQotCi0jZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NUUkVBTSkKKyNl
bmRpZgogCiAjaWYgUExBVEZPUk0oTUFDKQogdm9pZCBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNz
OjpkaXNwbGF5Q29uZmlndXJhdGlvbkNoYW5nZWQoQ0dEaXJlY3REaXNwbGF5SUQsIENHRGlzcGxh
eUNoYW5nZVN1bW1hcnlGbGFncyBmbGFncykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCmluZGV4IDBhMWNlYmRmYjg5YjlmYTI5
ZmJmZDFkN2M2NjlhYjM2MTJhYzVkMzUuLmI3MmMwYjM3MzYyYjczOWRiZmEzZWQ5YTBjNGEwMWUz
YjIxYjFlOTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0
aW9uVG9XZWJQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MuaApAQCAtMTA2LDcgKzEwNiw3IEBAIHN0cnVjdCBSZW1vdGVSZW5k
ZXJpbmdCYWNrZW5kQ3JlYXRpb25QYXJhbWV0ZXJzOwogY2xhc3MgUmVtb3RlV0NMYXllclRyZWVI
b3N0OwogI2VuZGlmCiAKLSNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorI2lmIEVOQUJMRShWSURF
TykKIGNsYXNzIFJlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwOwogI2VuZGlmCiAKQEAgLTE0NSw5
ICsxNDUsMTAgQEAgcHVibGljOgogICAgIGJvb2wgYWxsb3dzQXVkaW9DYXB0dXJlKCkgY29uc3Qg
eyByZXR1cm4gbV9hbGxvd3NBdWRpb0NhcHR1cmU7IH0KICAgICBib29sIGFsbG93c1ZpZGVvQ2Fw
dHVyZSgpIGNvbnN0IHsgcmV0dXJuIG1fYWxsb3dzVmlkZW9DYXB0dXJlOyB9CiAgICAgYm9vbCBh
bGxvd3NEaXNwbGF5Q2FwdHVyZSgpIGNvbnN0IHsgcmV0dXJuIG1fYWxsb3dzRGlzcGxheUNhcHR1
cmU7IH0KKyNlbmRpZgorI2lmIEVOQUJMRShWSURFTykKICAgICBSZW1vdGVWaWRlb0ZyYW1lT2Jq
ZWN0SGVhcCYgdmlkZW9GcmFtZU9iamVjdEhlYXAoKSBjb25zdDsKICNlbmRpZgotCiAjaWYgUExB
VEZPUk0oQ09DT0EpICYmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAgICAgdm9pZCBzdGFydENhcHR1
cmluZ0F1ZGlvKCk7CiAgICAgdm9pZCBwcm9jZXNzSXNTdGFydGluZ1RvQ2FwdHVyZUF1ZGlvKEdQ
VUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmKTsKQEAgLTMwNyw2ICszMDgsOCBAQCBwcml2YXRlOgog
ICAgIGJvb2wgbV9hbGxvd3NBdWRpb0NhcHR1cmUgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9hbGxv
d3NWaWRlb0NhcHR1cmUgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9hbGxvd3NEaXNwbGF5Q2FwdHVy
ZSB7IGZhbHNlIH07CisjZW5kaWYKKyNpZiBFTkFCTEUoVklERU8pCiAgICAgSVBDOjpTY29wZWRB
Y3RpdmVNZXNzYWdlUmVjZWl2ZVF1ZXVlPFJlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwPiBtX3Zp
ZGVvRnJhbWVPYmplY3RIZWFwOwogI2VuZGlmCiAjaWYgUExBVEZPUk0oQ09DT0EpICYmIFVTRShM
SUJXRUJSVEMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3Mv
UmVtb3RlR3JhcGhpY3NDb250ZXh0R0wuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dy
YXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMLmNwcAppbmRleCA0YTY3YzVkMTZlNWEwZmY5
Zjk4N2ZkMjQzYTJkYjk1OGQzZGUyYThhLi44MjJlN2Q2NTk5YmFmMDYzM2I1YjhiM2FlZjEyZTY2
Y2VmYTdlNzE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3Mv
UmVtb3RlR3JhcGhpY3NDb250ZXh0R0wuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTC5jcHAKQEAgLTM4LDExICszOCw3IEBA
CiAjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95
ZWQuaD4KIAotI2lmIFVTRShBVkZPVU5EQVRJT04pCi0jaW5jbHVkZSA8V2ViQ29yZS9HcmFwaGlj
c0NvbnRleHRHTENWLmg+Ci0jZW5kaWYKLQotI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisjaWYg
RU5BQkxFKFZJREVPKQogI2luY2x1ZGUgIlJlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwLmgiCiAj
ZW5kaWYKIApAQCAtNzIsNyArNjgsNyBAQCBSZW1vdGVHcmFwaGljc0NvbnRleHRHTDo6UmVtb3Rl
R3JhcGhpY3NDb250ZXh0R0woR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYgZ3B1QwogICAgICwg
bV9zdHJlYW1Db25uZWN0aW9uKElQQzo6U3RyZWFtU2VydmVyQ29ubmVjdGlvbjo6Y3JlYXRlKGdw
dUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY29ubmVjdGlvbigpLCBXVEZNb3ZlKHN0cmVhbSksIHJl
bW90ZUdyYXBoaWNzQ29udGV4dEdMU3RyZWFtV29ya1F1ZXVlKCkpKQogICAgICwgbV9ncmFwaGlj
c0NvbnRleHRHTElkZW50aWZpZXIoZ3JhcGhpY3NDb250ZXh0R0xJZGVudGlmaWVyKQogICAgICwg
bV9yZW5kZXJpbmdCYWNrZW5kKHJlbmRlcmluZ0JhY2tlbmQpCi0jaWYgRU5BQkxFKE1FRElBX1NU
UkVBTSkKKyNpZiBFTkFCTEUoVklERU8pCiAgICAgLCBtX3ZpZGVvRnJhbWVPYmplY3RIZWFwKGdw
dUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MudmlkZW9GcmFtZU9iamVjdEhlYXAoKSkKICNlbmRpZgog
ICAgICwgbV9yZW5kZXJpbmdSZXNvdXJjZXNSZXF1ZXN0KFNjb3BlZFdlYkdMUmVuZGVyaW5nUmVz
b3VyY2VzUmVxdWVzdDo6YWNxdWlyZSgpKQpAQCAtMjgwLDUxICsyNzYsMTQgQEAgdm9pZCBSZW1v
dGVHcmFwaGljc0NvbnRleHRHTDo6cGFpbnRQaXhlbEJ1ZmZlclRvSW1hZ2VCdWZmZXIoc3RkOjpv
cHRpb25hbDxXZWJDb3IKICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwogfQogCi12b2lkIFJlbW90
ZUdyYXBoaWNzQ29udGV4dEdMOjpjb3B5VGV4dHVyZUZyb21NZWRpYShXZWJDb3JlOjpNZWRpYVBs
YXllcklkZW50aWZpZXIgbWVkaWFQbGF5ZXJJZGVudGlmaWVyLCB1aW50MzJfdCB0ZXh0dXJlLCB1
aW50MzJfdCB0YXJnZXQsIGludDMyX3QgbGV2ZWwsIHVpbnQzMl90IGludGVybmFsRm9ybWF0LCB1
aW50MzJfdCBmb3JtYXQsIHVpbnQzMl90IHR5cGUsIGJvb2wgcHJlbXVsdGlwbHlBbHBoYSwgYm9v
bCBmbGlwWSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxl
cikKKyNpZiBFTkFCTEUoVklERU8pICYmICFVU0UoQVZGT1VOREFUSU9OKQordm9pZCBSZW1vdGVH
cmFwaGljc0NvbnRleHRHTDo6Y29weVRleHR1cmVGcm9tVmlkZW9GcmFtZShXZWJLaXQ6OlJlbW90
ZVZpZGVvRnJhbWVSZWFkUmVmZXJlbmNlIHJlYWQsIHVpbnQzMl90LCB1aW50MzJfdCwgaW50MzJf
dCwgdWludDMyX3QsIHVpbnQzMl90LCB1aW50MzJfdCwgYm9vbCwgYm9vbCAsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7Ci0gICAgYXNzZXJ0SXND
dXJyZW50KG1fc3RyZWFtVGhyZWFkKTsKLSNpZiBVU0UoQVZGT1VOREFUSU9OKQotICAgIFVOVVNF
RF9WQVJJQUJMRShwcmVtdWx0aXBseUFscGhhKTsKLSAgICBBU1NFUlRfVU5VU0VEKHRhcmdldCwg
dGFyZ2V0ID09IEdyYXBoaWNzQ29udGV4dEdMOjpURVhUVVJFXzJEKTsKLQotICAgIFJlZlB0cjxW
aWRlb0ZyYW1lPiB2aWRlb0ZyYW1lOwotICAgIGF1dG8gZ2V0VmlkZW9GcmFtZSA9IFsmXSB7Ci0g
ICAgICAgIGlmICghbV9ncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzKQotICAgICAgICAgICAgcmV0
dXJuOwotCi0gICAgICAgIGlmIChhdXRvIG1lZGlhUGxheWVyID0gbV9ncHVDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzLT5yZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eSgpLm1lZGlhUGxheWVyKG1l
ZGlhUGxheWVySWRlbnRpZmllcikpCi0gICAgICAgICAgICB2aWRlb0ZyYW1lID0gbWVkaWFQbGF5
ZXItPnZpZGVvRnJhbWVGb3JDdXJyZW50VGltZSgpOwotICAgIH07Ci0KLSAgICBjYWxsT25NYWlu
UnVuTG9vcEFuZFdhaXQoV1RGTW92ZShnZXRWaWRlb0ZyYW1lKSk7Ci0KLSAgICBpZiAoIXZpZGVv
RnJhbWUgfHwgIWlzPFZpZGVvRnJhbWVDVj4oKnZpZGVvRnJhbWUpKSB7Ci0gICAgICAgIGNvbXBs
ZXRpb25IYW5kbGVyKGZhbHNlKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIGF1dG8g
Y29udGV4dENWID0gbV9jb250ZXh0LT5hc0NWKCk7Ci0gICAgaWYgKCFjb250ZXh0Q1YpIHsKLSAg
ICAgICAgY29tcGxldGlvbkhhbmRsZXIoZmFsc2UpOwotICAgICAgICByZXR1cm47Ci0gICAgfQot
Ci0gICAgY29tcGxldGlvbkhhbmRsZXIoY29udGV4dENWLT5jb3B5VmlkZW9TYW1wbGVUb1RleHR1
cmUoZG93bmNhc3Q8VmlkZW9GcmFtZUNWPigqdmlkZW9GcmFtZSksIHRleHR1cmUsIGxldmVsLCBp
bnRlcm5hbEZvcm1hdCwgZm9ybWF0LCB0eXBlLCBHcmFwaGljc0NvbnRleHRHTDo6RmxpcFkoZmxp
cFkpKSk7Ci0jZWxzZQotICAgIFVOVVNFRF9WQVJJQUJMRShtZWRpYVBsYXllcklkZW50aWZpZXIp
OwotICAgIFVOVVNFRF9WQVJJQUJMRSh0ZXh0dXJlKTsKLSAgICBVTlVTRURfVkFSSUFCTEUodGFy
Z2V0KTsKLSAgICBVTlVTRURfVkFSSUFCTEUobGV2ZWwpOwotICAgIFVOVVNFRF9WQVJJQUJMRShp
bnRlcm5hbEZvcm1hdCk7Ci0gICAgVU5VU0VEX1ZBUklBQkxFKGZvcm1hdCk7Ci0gICAgVU5VU0VE
X1ZBUklBQkxFKHR5cGUpOwotICAgIFVOVVNFRF9WQVJJQUJMRShwcmVtdWx0aXBseUFscGhhKTsK
LSAgICBVTlVTRURfVkFSSUFCTEUoZmxpcFkpOwotCiAgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAg
ICBtX3ZpZGVvRnJhbWVPYmplY3RIZWFwLT5yZXRpcmUocmVhZCwgZGVmYXVsdFRpbWVvdXQpOwog
ICAgIGNvbXBsZXRpb25IYW5kbGVyKGZhbHNlKTsKLSNlbmRpZgogfQorI2VuZGlmCiAKIHZvaWQg
UmVtb3RlR3JhcGhpY3NDb250ZXh0R0w6OnNpbXVsYXRlRXZlbnRGb3JUZXN0aW5nKFdlYkNvcmU6
OkdyYXBoaWNzQ29udGV4dEdMOjpTaW11bGF0ZWRFdmVudEZvclRlc3RpbmcgZXZlbnQpCiB7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhp
Y3NDb250ZXh0R0wuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVH
cmFwaGljc0NvbnRleHRHTC5oCmluZGV4IGZmMjg0NWVkNDJmMzQ3YTliOGFiODU3MjFlNjJlZWIx
NGU1MTdmMDguLjIzZTlhN2NiNDJmYzQ5OTBjYTJlODZhMDA3NDkyZmQ4YmE0ZDkzYTMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0Nv
bnRleHRHTC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVH
cmFwaGljc0NvbnRleHRHTC5oCkBAIC01Myw3ICs1Myw3IEBACiAjaW5jbHVkZSAiV0NDb250ZW50
QnVmZmVySWRlbnRpZmllci5oIgogI2VuZGlmCiAKLSNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQor
I2lmIEVOQUJMRShWSURFTykKICNpbmNsdWRlICJSZW1vdGVWaWRlb0ZyYW1lSWRlbnRpZmllci5o
IgogI2luY2x1ZGUgIlJlbW90ZVZpZGVvRnJhbWVQcm94eS5oIgogI2VuZGlmCkBAIC02NSw3ICs2
NSw3IEBAIGNsYXNzIE1hY2hTZW5kUmlnaHQ7CiAjZW5kaWYKIAogbmFtZXNwYWNlIFdlYktpdCB7
Ci0jaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyNpZiBFTkFCTEUoVklERU8pCiBjbGFzcyBSZW1v
dGVWaWRlb0ZyYW1lT2JqZWN0SGVhcDsKICNlbmRpZgogCkBAIC0xMTgsNyArMTE4LDkgQEAgcHJv
dGVjdGVkOgogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAgICAgdm9pZCBwYWludENvbXBvc2l0
ZWRSZXN1bHRzVG9NZWRpYVNhbXBsZShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0aW9u
YWw8V2ViS2l0OjpSZW1vdGVWaWRlb0ZyYW1lUHJveHk6OlByb3BlcnRpZXM+JiYpPiYmKTsKICNl
bmRpZgotICAgIHZvaWQgY29weVRleHR1cmVGcm9tTWVkaWEoV2ViQ29yZTo6TWVkaWFQbGF5ZXJJ
ZGVudGlmaWVyLCB1aW50MzJfdCB0ZXh0dXJlLCB1aW50MzJfdCB0YXJnZXQsIGludDMyX3QgbGV2
ZWwsIHVpbnQzMl90IGludGVybmFsRm9ybWF0LCB1aW50MzJfdCBmb3JtYXQsIHVpbnQzMl90IHR5
cGUsIGJvb2wgcHJlbXVsdGlwbHlBbHBoYSwgYm9vbCBmbGlwWSwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChib29sKT4mJik7CisjaWYgRU5BQkxFKFZJREVPKQorICAgIHZvaWQgY29weVRleHR1cmVG
cm9tVmlkZW9GcmFtZShSZW1vdGVWaWRlb0ZyYW1lUmVhZFJlZmVyZW5jZSwgdWludDMyX3QgdGV4
dHVyZSwgdWludDMyX3QgdGFyZ2V0LCBpbnQzMl90IGxldmVsLCB1aW50MzJfdCBpbnRlcm5hbEZv
cm1hdCwgdWludDMyX3QgZm9ybWF0LCB1aW50MzJfdCB0eXBlLCBib29sIHByZW11bHRpcGx5QWxw
aGEsIGJvb2wgZmxpcFksIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOworI2VuZGlm
CiAgICAgdm9pZCBzaW11bGF0ZUV2ZW50Rm9yVGVzdGluZyhXZWJDb3JlOjpHcmFwaGljc0NvbnRl
eHRHTDo6U2ltdWxhdGVkRXZlbnRGb3JUZXN0aW5nKTsKIAogI2luY2x1ZGUgIlJlbW90ZUdyYXBo
aWNzQ29udGV4dEdMRnVuY3Rpb25zR2VuZXJhdGVkLmgiIC8vIE5PTElOVApAQCAtMTMxLDYgKzEz
Myw3IEBAIHByaXZhdGU6CiBwcm90ZWN0ZWQ6CiAgICAgV2Vha1B0cjxHUFVDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzPiBtX2dwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M7CiAgICAgUmVmUHRyPElQQzo6
U3RyZWFtU2VydmVyQ29ubmVjdGlvbj4gbV9zdHJlYW1Db25uZWN0aW9uOworICAgIHN0YXRpYyBj
b25zdGV4cHIgU2Vjb25kcyBkZWZhdWx0VGltZW91dCA9IDEwX3M7CiAjaWYgUExBVEZPUk0oQ09D
T0EpCiAgICAgdXNpbmcgR0NHTENvbnRleHQgPSBXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTENv
Y29hOwogI2Vsc2UKQEAgLTE0MCw3ICsxNDMsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgUmVmUHRyPEdD
R0xDb250ZXh0PiBtX2NvbnRleHQgV1RGX0dVQVJERURfQllfTE9DSyhtX3N0cmVhbVRocmVhZCk7
CiAgICAgR3JhcGhpY3NDb250ZXh0R0xJZGVudGlmaWVyIG1fZ3JhcGhpY3NDb250ZXh0R0xJZGVu
dGlmaWVyOwogICAgIFJlZjxSZW1vdGVSZW5kZXJpbmdCYWNrZW5kPiBtX3JlbmRlcmluZ0JhY2tl
bmQ7Ci0jaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyNpZiBFTkFCTEUoVklERU8pCiAgICAgUmVm
PFJlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwPiBtX3ZpZGVvRnJhbWVPYmplY3RIZWFwOwogI2Vu
ZGlmCiAgICAgU2NvcGVkV2ViR0xSZW5kZXJpbmdSZXNvdXJjZXNSZXF1ZXN0IG1fcmVuZGVyaW5n
UmVzb3VyY2VzUmVxdWVzdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9n
cmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTC5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJL
aXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTC5tZXNzYWdlcy5p
bgppbmRleCA3OWNjNmE0YzcxYzBmOTUwM2I0YzViZmE0M2ZjMzA5MDdhZDhiNTBmLi5kMjc2NTg1
YTIyY2RiZDM3ZTU5MGRmNmQ4MzAyM2I3YTM0ZDBjNDdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0wubWVzc2FnZXMu
aW4KKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNz
Q29udGV4dEdMLm1lc3NhZ2VzLmluCkBAIC00MSw3ICs0MSw5IEBAIG1lc3NhZ2VzIC0+IFJlbW90
ZUdyYXBoaWNzQ29udGV4dEdMIE5vdFJlZkNvdW50ZWQgU3RyZWFtIHsKICAgICB2b2lkIEdldEVy
cm9yKCkgLT4gKHVpbnQzMl90IHJldHVyblZhbHVlKSBTeW5jaHJvbm91cwogICAgIHZvaWQgUGFp
bnRSZW5kZXJpbmdSZXN1bHRzVG9DYW52YXMoV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVu
dGlmaWVyIGltYWdlQnVmZmVyKSAtPiAoKSBTeW5jaHJvbm91cwogICAgIHZvaWQgUGFpbnRDb21w
b3NpdGVkUmVzdWx0c1RvQ2FudmFzKFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmll
ciBpbWFnZUJ1ZmZlcikgLT4gKCkgU3luY2hyb25vdXMKLSAgICB2b2lkIENvcHlUZXh0dXJlRnJv
bU1lZGlhKFdlYkNvcmU6Ok1lZGlhUGxheWVySWRlbnRpZmllciBpZGVudGlmaWVyLCB1aW50MzJf
dCB0ZXh0dXJlLCB1aW50MzJfdCB0YXJnZXQsIGludDMyX3QgbGV2ZWwsIHVpbnQzMl90IGludGVy
bmFsRm9ybWF0LCB1aW50MzJfdCBmb3JtYXQsIHVpbnQzMl90IHR5cGUsIGJvb2wgcHJlbXVsdGlw
bHlBbHBoYSwgYm9vbCBmbGlwWSkgLT4gKGJvb2wgc3VjY2VzcykgU3luY2hyb25vdXMKKyNpZiBF
TkFCTEUoVklERU8pCisgICAgdm9pZCBDb3B5VGV4dHVyZUZyb21WaWRlb0ZyYW1lKFdlYktpdDo6
UmVtb3RlVmlkZW9GcmFtZVJlYWRSZWZlcmVuY2UgdmlkZW9GcmFtZSwgdWludDMyX3QgdGV4dHVy
ZSwgdWludDMyX3QgdGFyZ2V0LCBpbnQzMl90IGxldmVsLCB1aW50MzJfdCBpbnRlcm5hbEZvcm1h
dCwgdWludDMyX3QgZm9ybWF0LCB1aW50MzJfdCB0eXBlLCBib29sIHByZW11bHRpcGx5QWxwaGEs
IGJvb2wgZmxpcFkpIC0+IChib29sIHN1Y2Nlc3MpIFN5bmNocm9ub3VzCisjZW5kaWYKICNpZiBF
TkFCTEUoTUVESUFfU1RSRUFNKQogICAgIHZvaWQgUGFpbnRDb21wb3NpdGVkUmVzdWx0c1RvTWVk
aWFTYW1wbGUoKSAtPiAoc3RkOjpvcHRpb25hbDxXZWJLaXQ6OlJlbW90ZVZpZGVvRnJhbWVQcm94
eTo6UHJvcGVydGllcz4gcHJvcGVydGllcykgU3luY2hyb25vdXMKICNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4
dEdMQ29jb2EuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdy
YXBoaWNzQ29udGV4dEdMQ29jb2EuY3BwCmluZGV4IDZjOTA2MWI1ZTJlZmU1YjJmY2RjMGY4NTAx
OGZjYzFiOTY0N2VlMDYuLjc5ZGY5OWNlMjljMzNhMGI0ZmE0NzAwMjU0NzA0ZjhlMDNlMWFjNzEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFw
aGljc0NvbnRleHRHTENvY29hLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3Jh
cGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5jcHAKQEAgLTI5LDExICsyOSw1NSBA
QAogI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgRU5BQkxFKFdFQkdMKSAmJiBQTEFURk9STShD
T0NPQSkKIAogI2luY2x1ZGUgIkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCIKKyNpbmNsdWRl
ICJJUENUZXN0ZXIuaCIKICNpbmNsdWRlIDxXZWJDb3JlL1Byb2Nlc3NJZGVudGl0eS5oPgogI2lu
Y2x1ZGUgPHd0Zi9NYWNoU2VuZFJpZ2h0Lmg+CiAKKworI2lmIEVOQUJMRShWSURFTykKKyNpbmNs
dWRlICJSZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcC5oIgorI2luY2x1ZGUgPFdlYkNvcmUvR3Jh
cGhpY3NDb250ZXh0R0xDVi5oPgorI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFTYW1wbGVBVkZPYmpD
Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9WaWRlb0ZyYW1lQ1YuaD4KKyNlbmRpZgorCiBuYW1lc3Bh
Y2UgV2ViS2l0IHsKLXVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCisjaWYgRU5BQkxFKFZJREVP
KQordm9pZCBSZW1vdGVHcmFwaGljc0NvbnRleHRHTDo6Y29weVRleHR1cmVGcm9tVmlkZW9GcmFt
ZShXZWJLaXQ6OlJlbW90ZVZpZGVvRnJhbWVSZWFkUmVmZXJlbmNlIHJlYWQsIHVpbnQzMl90IHRl
eHR1cmUsIHVpbnQzMl90IHRhcmdldCwgaW50MzJfdCBsZXZlbCwgdWludDMyX3QgaW50ZXJuYWxG
b3JtYXQsIHVpbnQzMl90IGZvcm1hdCwgdWludDMyX3QgdHlwZSwgYm9vbCBwcmVtdWx0aXBseUFs
cGhhLCBib29sIGZsaXBZLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRp
b25IYW5kbGVyKQoreworICAgIGFzc2VydElzQ3VycmVudChtX3N0cmVhbVRocmVhZCk7CisgICAg
VU5VU0VEX1ZBUklBQkxFKHByZW11bHRpcGx5QWxwaGEpOworICAgIEFTU0VSVF9VTlVTRUQodGFy
Z2V0LCB0YXJnZXQgPT0gV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0w6OlRFWFRVUkVfMkQpOwor
CisgICAgYXV0byB2aWRlb0ZyYW1lID0gbV92aWRlb0ZyYW1lT2JqZWN0SGVhcC0+cmV0aXJlKFdU
Rk1vdmUocmVhZCksIGRlZmF1bHRUaW1lb3V0KTsKKyAgICBpZiAoIXZpZGVvRnJhbWUpIHsKKyAg
ICAgICAgQVNTRVJUX0lTX1RFU1RJTkdfSVBDKCk7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVy
KGZhbHNlKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICAvLyBOb3RlOiBUaGlzIGV4dHJh
IGNhc3RpbmcgaXMgbmVlZGVkIHNpbmNlIFZpZGVvRnJhbWVzIGFyZSBzdGlsbCBNZWRpYVNhbXBs
ZXMuCisgICAgUmVmUHRyPFdlYkNvcmU6OlZpZGVvRnJhbWVDVj4gdmlkZW9GcmFtZUNWOworICAg
IGlmIChpczxXZWJDb3JlOjpWaWRlb0ZyYW1lQ1Y+KCp2aWRlb0ZyYW1lKSkKKyAgICAgICAgdmlk
ZW9GcmFtZUNWID0gJmRvd25jYXN0PFdlYkNvcmU6OlZpZGVvRnJhbWVDVj4oKnZpZGVvRnJhbWUp
OworICAgIGVsc2UgaWYgKGlzPFdlYkNvcmU6Ok1lZGlhU2FtcGxlQVZGT2JqQz4oKnZpZGVvRnJh
bWUpKQorICAgICAgICB2aWRlb0ZyYW1lQ1YgPSBkb3duY2FzdDxXZWJDb3JlOjpNZWRpYVNhbXBs
ZUFWRk9iakM+KCp2aWRlb0ZyYW1lKS52aWRlb0ZyYW1lKCk7CisgICAgZWxzZSB7CisgICAgICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOyAvLyBQcm9ncmFtbWluZyBlcnJvciwgbm90IGEgSVBDIGF0
dGFjay4KKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoZmFsc2UpOworICAgICAgICByZXR1cm47
CisgICAgfQorCisgICAgYXV0byBjb250ZXh0Q1YgPSBtX2NvbnRleHQtPmFzQ1YoKTsKKyAgICBp
ZiAoIWNvbnRleHRDVikgeworICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAg
Y29tcGxldGlvbkhhbmRsZXIoZmFsc2UpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAg
Y29tcGxldGlvbkhhbmRsZXIoY29udGV4dENWLT5jb3B5VmlkZW9TYW1wbGVUb1RleHR1cmUoKnZp
ZGVvRnJhbWVDViwgdGV4dHVyZSwgbGV2ZWwsIGludGVybmFsRm9ybWF0LCBmb3JtYXQsIHR5cGUs
IFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMOjpGbGlwWShmbGlwWSkpKTsKK30KKyNlbmRpZgog
CiBuYW1lc3BhY2UgewogCkBAIC00NiwxMiArOTAsMTIgQEAgcHVibGljOgogICAgIHZvaWQgcGxh
dGZvcm1Xb3JrUXVldWVJbml0aWFsaXplKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMQXR0cmli
dXRlcyYmKSBmaW5hbDsKICAgICB2b2lkIHByZXBhcmVGb3JEaXNwbGF5KENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoV1RGOjpNYWNoU2VuZFJpZ2h0JiYpPiYmKSBmaW5hbDsKIHByaXZhdGU6Ci0gICAg
Y29uc3QgUHJvY2Vzc0lkZW50aXR5IG1fcmVzb3VyY2VPd25lcjsKKyAgICBjb25zdCBXZWJDb3Jl
OjpQcm9jZXNzSWRlbnRpdHkgbV9yZXNvdXJjZU93bmVyOwogfTsKIAogfQogCi1SZWY8UmVtb3Rl
R3JhcGhpY3NDb250ZXh0R0w+IFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMOjpjcmVhdGUoR1BVQ29u
bmVjdGlvblRvV2ViUHJvY2VzcyYgZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2VzcywgR3JhcGhpY3ND
b250ZXh0R0xBdHRyaWJ1dGVzJiYgYXR0cmlidXRlcywgR3JhcGhpY3NDb250ZXh0R0xJZGVudGlm
aWVyIGdyYXBoaWNzQ29udGV4dEdMSWRlbnRpZmllciwgUmVtb3RlUmVuZGVyaW5nQmFja2VuZCYg
cmVuZGVyaW5nQmFja2VuZCwgSVBDOjpTdHJlYW1Db25uZWN0aW9uQnVmZmVyJiYgc3RyZWFtKQor
UmVmPFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMPiBSZW1vdGVHcmFwaGljc0NvbnRleHRHTDo6Y3Jl
YXRlKEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmIGdwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3Ms
IFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyYmIGF0dHJpYnV0ZXMsIEdyYXBo
aWNzQ29udGV4dEdMSWRlbnRpZmllciBncmFwaGljc0NvbnRleHRHTElkZW50aWZpZXIsIFJlbW90
ZVJlbmRlcmluZ0JhY2tlbmQmIHJlbmRlcmluZ0JhY2tlbmQsIElQQzo6U3RyZWFtQ29ubmVjdGlv
bkJ1ZmZlciYmIHN0cmVhbSkKIHsKICAgICBhdXRvIGluc3RhbmNlID0gYWRvcHRSZWYoKm5ldyBS
ZW1vdGVHcmFwaGljc0NvbnRleHRHTENvY29hKGdwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MsIGdy
YXBoaWNzQ29udGV4dEdMSWRlbnRpZmllciwgcmVuZGVyaW5nQmFja2VuZCwgV1RGTW92ZShzdHJl
YW0pKSk7CiAgICAgaW5zdGFuY2UtPmluaXRpYWxpemUoV1RGTW92ZShhdHRyaWJ1dGVzKSk7CkBA
IC02MiwxMyArMTA2LDEyIEBAIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMQ29jb2E6OlJlbW90ZUdy
YXBoaWNzQ29udGV4dEdMQ29jb2EoR1BVQ29ubmVjdGlvblRvV2ViUHJvCiAgICAgOiBSZW1vdGVH
cmFwaGljc0NvbnRleHRHTChncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLCBncmFwaGljc0NvbnRl
eHRHTElkZW50aWZpZXIsIHJlbmRlcmluZ0JhY2tlbmQsIFdURk1vdmUoc3RyZWFtKSkKICAgICAs
IG1fcmVzb3VyY2VPd25lcihncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLndlYlByb2Nlc3NJZGVu
dGl0eSgpKQogewotCiB9CiAKIHZvaWQgUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xDb2NvYTo6cGxh
dGZvcm1Xb3JrUXVldWVJbml0aWFsaXplKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMQXR0cmli
dXRlcyYmIGF0dHJpYnV0ZXMpCiB7CiAgICAgYXNzZXJ0SXNDdXJyZW50KG1fc3RyZWFtVGhyZWFk
KTsKLSAgICBtX2NvbnRleHQgPSBHcmFwaGljc0NvbnRleHRHTENvY29hOjpjcmVhdGUoV1RGTW92
ZShhdHRyaWJ1dGVzKSwgUHJvY2Vzc0lkZW50aXR5IHsgbV9yZXNvdXJjZU93bmVyIH0pOworICAg
IG1fY29udGV4dCA9IFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMQ29jb2E6OmNyZWF0ZShXVEZN
b3ZlKGF0dHJpYnV0ZXMpLCBXZWJDb3JlOjpQcm9jZXNzSWRlbnRpdHkgeyBtX3Jlc291cmNlT3du
ZXIgfSk7CiB9CiAKIHZvaWQgUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xDb2NvYTo6cHJlcGFyZUZv
ckRpc3BsYXkoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXVEY6Ok1hY2hTZW5kUmlnaHQmJik+JiYg
Y29tcGxldGlvbkhhbmRsZXIpCkBAIC03Niw3ICsxMTksNyBAQCB2b2lkIFJlbW90ZUdyYXBoaWNz
Q29udGV4dEdMQ29jb2E6OnByZXBhcmVGb3JEaXNwbGF5KENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
V1RGOgogICAgIGFzc2VydElzQ3VycmVudChtX3N0cmVhbVRocmVhZCk7CiAgICAgbV9jb250ZXh0
LT5wcmVwYXJlRm9yRGlzcGxheSgpOwogICAgIE1hY2hTZW5kUmlnaHQgc2VuZFJpZ2h0OwotICAg
IElPU3VyZmFjZSogZGlzcGxheUJ1ZmZlciA9IG1fY29udGV4dC0+ZGlzcGxheUJ1ZmZlcigpOwor
ICAgIFdlYkNvcmU6OklPU3VyZmFjZSogZGlzcGxheUJ1ZmZlciA9IG1fY29udGV4dC0+ZGlzcGxh
eUJ1ZmZlcigpOwogICAgIGlmIChkaXNwbGF5QnVmZmVyKSB7CiAgICAgICAgIG1fY29udGV4dC0+
bWFya0Rpc3BsYXlCdWZmZXJJblVzZSgpOwogICAgICAgICBzZW5kUmlnaHQgPSBkaXNwbGF5QnVm
ZmVyLT5jcmVhdGVTZW5kUmlnaHQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkuY3BwCmlu
ZGV4IDlhMDc4N2Q2Nzk5YmFjMGY4MTAyNzc1MmI0YTVjYThjOGNlMjAyYTAuLjFhMzFmMGQ1NGJi
NWRiNzBmMDRmYjk4MGE2MGEyZDlhNjU0MDQ4M2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlclBy
b3h5LmNwcApAQCAtNjcsNyArNjcsNyBAQCB2b2lkIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclBy
b3h5OjpjcmVhdGVNZWRpYVBsYXllcihNZWRpYVBsYXllcklkZW50aWZpZXIgaWRlbgogICAgIEFT
U0VSVChtX2dwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MpOwogICAgIEFTU0VSVCghbV9wcm94aWVz
LmNvbnRhaW5zKGlkZW50aWZpZXIpKTsKIAotICAgIGF1dG8gcHJveHkgPSBtYWtlVW5pcXVlPFJl
bW90ZU1lZGlhUGxheWVyUHJveHk+KCp0aGlzLCBpZGVudGlmaWVyLCBtX2dwdUNvbm5lY3Rpb25U
b1dlYlByb2Nlc3MtPmNvbm5lY3Rpb24oKSwgZW5naW5lSWRlbnRpZmllciwgV1RGTW92ZShwcm94
eUNvbmZpZ3VyYXRpb24pKTsKKyAgICBhdXRvIHByb3h5ID0gbWFrZVVuaXF1ZTxSZW1vdGVNZWRp
YVBsYXllclByb3h5PigqdGhpcywgaWRlbnRpZmllciwgbV9ncHVDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzLT5jb25uZWN0aW9uKCksIGVuZ2luZUlkZW50aWZpZXIsIFdURk1vdmUocHJveHlDb25maWd1
cmF0aW9uKSwgbV9ncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLT52aWRlb0ZyYW1lT2JqZWN0SGVh
cCgpKTsKICAgICBtX3Byb3hpZXMuYWRkKGlkZW50aWZpZXIsIFdURk1vdmUocHJveHkpKTsKIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlh
UGxheWVyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1l
ZGlhUGxheWVyUHJveHkuY3BwCmluZGV4IGNkMmM1MWJiZDMyZTI4YzJmZTQzNDZlOWYyNjM1MDE4
OWVlYTY2M2IuLjBlZjgzNDJkZDI2OGVlNjhjMzA0NzYyZGEwNThiYTRmYmNiYzZlM2MgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclBy
b3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQ
bGF5ZXJQcm94eS5jcHAKQEAgLTQ0LDYgKzQ0LDggQEAKICNpbmNsdWRlICJSZW1vdGVNZWRpYVJl
c291cmNlTG9hZGVyLmgiCiAjaW5jbHVkZSAiUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIuaCIK
ICNpbmNsdWRlICJSZW1vdGVUZXh0VHJhY2tQcm94eS5oIgorI2luY2x1ZGUgIlJlbW90ZVZpZGVv
RnJhbWVPYmplY3RIZWFwLmgiCisjaW5jbHVkZSAiUmVtb3RlVmlkZW9GcmFtZVByb3h5LmgiCiAj
aW5jbHVkZSAiUmVtb3RlVmlkZW9UcmFja1Byb3h5LmgiCiAjaW5jbHVkZSAiVGV4dFRyYWNrUHJp
dmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24uaCIKICNpbmNsdWRlICJUcmFja1ByaXZhdGVSZW1vdGVD
b25maWd1cmF0aW9uLmgiCkBAIC03NCw3ICs3Niw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiB1
c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAotUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6UmVtb3Rl
TWVkaWFQbGF5ZXJQcm94eShSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eSYgbWFuYWdlciwg
TWVkaWFQbGF5ZXJJZGVudGlmaWVyIGlkZW50aWZpZXIsIFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYg
Y29ubmVjdGlvbiwgTWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVyIGVuZ2lu
ZUlkZW50aWZpZXIsIFJlbW90ZU1lZGlhUGxheWVyUHJveHlDb25maWd1cmF0aW9uJiYgY29uZmln
dXJhdGlvbikKK1JlbW90ZU1lZGlhUGxheWVyUHJveHk6OlJlbW90ZU1lZGlhUGxheWVyUHJveHko
UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkmIG1hbmFnZXIsIE1lZGlhUGxheWVySWRlbnRp
ZmllciBpZGVudGlmaWVyLCBSZWY8SVBDOjpDb25uZWN0aW9uPiYmIGNvbm5lY3Rpb24sIE1lZGlh
UGxheWVyRW51bXM6Ok1lZGlhRW5naW5lSWRlbnRpZmllciBlbmdpbmVJZGVudGlmaWVyLCBSZW1v
dGVNZWRpYVBsYXllclByb3h5Q29uZmlndXJhdGlvbiYmIGNvbmZpZ3VyYXRpb24sIFJlbW90ZVZp
ZGVvRnJhbWVPYmplY3RIZWFwJiB2aWRlb0ZyYW1lT2JqZWN0SGVhcCkKICAgICA6IG1faWQoaWRl
bnRpZmllcikKICAgICAsIG1fd2ViUHJvY2Vzc0Nvbm5lY3Rpb24oV1RGTW92ZShjb25uZWN0aW9u
KSkKICAgICAsIG1fbWFuYWdlcihtYW5hZ2VyKQpAQCAtODIsNiArODQsNyBAQCBSZW1vdGVNZWRp
YVBsYXllclByb3h5OjpSZW1vdGVNZWRpYVBsYXllclByb3h5KFJlbW90ZU1lZGlhUGxheWVyTWFu
YWdlclByb3h5JiBtYQogICAgICwgbV91cGRhdGVDYWNoZWRTdGF0ZU1lc3NhZ2VUaW1lcihSdW5M
b29wOjptYWluKCksIHRoaXMsICZSZW1vdGVNZWRpYVBsYXllclByb3h5Ojp0aW1lckZpcmVkKQog
ICAgICwgbV9jb25maWd1cmF0aW9uKGNvbmZpZ3VyYXRpb24pCiAgICAgLCBtX3JlbmRlcmluZ1Jl
c291cmNlc1JlcXVlc3QoU2NvcGVkUmVuZGVyaW5nUmVzb3VyY2VzUmVxdWVzdDo6YWNxdWlyZSgp
KQorICAgICwgbV92aWRlb0ZyYW1lT2JqZWN0SGVhcCh2aWRlb0ZyYW1lT2JqZWN0SGVhcCkKICNp
ZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKICAgICAsIG1fbG9nZ2VyKG1hbmFnZXIubG9nZ2VyKCkp
CiAjZW5kaWYKQEAgLTg2OCwxMSArODcxLDkgQEAgdm9pZCBSZW1vdGVNZWRpYVBsYXllclByb3h5
OjpjdXJyZW50VGltZUNoYW5nZWQoY29uc3QgTWVkaWFUaW1lJiBtZWRpYVRpbWUpCiAgICAgbV93
ZWJQcm9jZXNzQ29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6TWVkaWFQbGF5ZXJQcml2YXRlUmVt
b3RlOjpDdXJyZW50VGltZUNoYW5nZWQobWVkaWFUaW1lLCBNb25vdG9uaWNUaW1lOjpub3coKSwg
IW1lZGlhUGxheWVyUGF1c2VkT3JTdGFsbGVkKCkpLCBtX2lkKTsKIH0KIAotLy8gRklYTUU6IFRo
aXMgd2lsbCBiZSB0dXJuZWQgaW50byBjcm9zcy1wbGF0Zm9ybSBjb2RlIHNvb24uCi0jaWYgUExB
VEZPUk0oQ09DT0EpCi12b2lkIFJlbW90ZU1lZGlhUGxheWVyUHJveHk6OnZpZGVvRnJhbWVGb3JD
dXJyZW50VGltZUlmQ2hhbmdlZChDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8
UmVmUHRyPFdlYkNvcmU6OlZpZGVvRnJhbWVDVj4+JiYsIGJvb2wpPiYmIGNvbXBsZXRpb25IYW5k
bGVyKQordm9pZCBSZW1vdGVNZWRpYVBsYXllclByb3h5Ojp2aWRlb0ZyYW1lRm9yQ3VycmVudFRp
bWVJZkNoYW5nZWQoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChzdGQ6Om9wdGlvbmFsPFJlbW90ZVZp
ZGVvRnJhbWVQcm94eTo6UHJvcGVydGllcz4mJiwgYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIp
CiB7Ci0gICAgc3RkOjpvcHRpb25hbDxSZWZQdHI8V2ViQ29yZTo6VmlkZW9GcmFtZUNWPj4gcmVz
dWx0OworICAgIHN0ZDo6b3B0aW9uYWw8UmVtb3RlVmlkZW9GcmFtZVByb3h5OjpQcm9wZXJ0aWVz
PiByZXN1bHQ7CiAgICAgYm9vbCBjaGFuZ2VkID0gZmFsc2U7CiAgICAgUmVmUHRyPFdlYkNvcmU6
OlZpZGVvRnJhbWU+IHZpZGVvRnJhbWU7CiAgICAgaWYgKG1fcGxheWVyKQpAQCAtODgwLDE2ICs4
ODEsMTUgQEAgdm9pZCBSZW1vdGVNZWRpYVBsYXllclByb3h5Ojp2aWRlb0ZyYW1lRm9yQ3VycmVu
dFRpbWVJZkNoYW5nZWQoQ29tcGxldGlvbkhhbmRsZXIKICAgICBpZiAobV92aWRlb0ZyYW1lRm9y
Q3VycmVudFRpbWUgIT0gdmlkZW9GcmFtZSkgewogICAgICAgICBtX3ZpZGVvRnJhbWVGb3JDdXJy
ZW50VGltZSA9IHZpZGVvRnJhbWU7CiAgICAgICAgIGNoYW5nZWQgPSB0cnVlOwotICAgICAgICBS
ZWZQdHI8VmlkZW9GcmFtZUNWPiB2aWRlb0ZyYW1lQ1Y7CiAgICAgICAgIGlmICh2aWRlb0ZyYW1l
KSB7Ci0gICAgICAgICAgICBBU1NFUlQoaXM8VmlkZW9GcmFtZUNWPigqdmlkZW9GcmFtZSkpOwot
ICAgICAgICAgICAgdmlkZW9GcmFtZUNWID0gJmRvd25jYXN0PFZpZGVvRnJhbWVDVj4oKnZpZGVv
RnJhbWUpOworICAgICAgICAgICAgYXV0byB3cml0ZSA9IFJlbW90ZVZpZGVvRnJhbWVXcml0ZVJl
ZmVyZW5jZTo6Z2VuZXJhdGVGb3JBZGQoKTsKKyAgICAgICAgICAgIGF1dG8gbmV3RnJhbWVSZWZl
cmVuY2UgPSB3cml0ZS5yZXRpcmVkUmVmZXJlbmNlKCk7CisgICAgICAgICAgICByZXN1bHQgPSBS
ZW1vdGVWaWRlb0ZyYW1lUHJveHk6OnByb3BlcnRpZXMoV1RGTW92ZShuZXdGcmFtZVJlZmVyZW5j
ZSksICp2aWRlb0ZyYW1lKTsKKyAgICAgICAgICAgIG1fdmlkZW9GcmFtZU9iamVjdEhlYXAtPnJl
dGlyZShXVEZNb3ZlKHdyaXRlKSwgV1RGTW92ZSh2aWRlb0ZyYW1lKSwgc3RkOjpudWxsb3B0KTsK
ICAgICAgICAgfQotICAgICAgICByZXN1bHQgPSBXVEZNb3ZlKHZpZGVvRnJhbWVDVik7CiAgICAg
fQogICAgIGNvbXBsZXRpb25IYW5kbGVyKFdURk1vdmUocmVzdWx0KSwgY2hhbmdlZCk7CiB9Ci0j
ZW5kaWYKIAogdm9pZCBSZW1vdGVNZWRpYVBsYXllclByb3h5Ojp1cGRhdGVDYWNoZWRTdGF0ZShi
b29sIGZvcmNlQ3VycmVudFRpbWVVcGRhdGUpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5oIGIvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuaAppbmRleCBhYzExOGY2
NzgyY2E2ODY3MzhmMjU1Nzc1ODM4MDQ5MDM5MTUyODAzLi5mMjg2YmQ2NGQ3NDliNzU1MmNlMmUy
Zjc3ODM4YWNiY2IyYmEwOTcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
bWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmgKQEAgLTM0LDYgKzM0LDcgQEAKICNp
bmNsdWRlICJSZW1vdGVNZWRpYVBsYXllclByb3h5Q29uZmlndXJhdGlvbi5oIgogI2luY2x1ZGUg
IlJlbW90ZU1lZGlhUGxheWVyU3RhdGUuaCIKICNpbmNsdWRlICJSZW1vdGVNZWRpYVJlc291cmNl
SWRlbnRpZmllci5oIgorI2luY2x1ZGUgIlJlbW90ZVZpZGVvRnJhbWVQcm94eS5oIgogI2luY2x1
ZGUgIlNhbmRib3hFeHRlbnNpb24uaCIKICNpbmNsdWRlICJTY29wZWRSZW5kZXJpbmdSZXNvdXJj
ZXNSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllci5oIgpA
QCAtOTgsNiArOTksNyBAQCBjbGFzcyBSZW1vdGVBdWRpb1RyYWNrUHJveHk7CiBjbGFzcyBSZW1v
dGVBdWRpb1NvdXJjZVByb3ZpZGVyUHJveHk7CiBjbGFzcyBSZW1vdGVNZWRpYVBsYXllck1hbmFn
ZXJQcm94eTsKIGNsYXNzIFJlbW90ZVRleHRUcmFja1Byb3h5OworY2xhc3MgUmVtb3RlVmlkZW9G
cmFtZU9iamVjdEhlYXA7CiBjbGFzcyBSZW1vdGVWaWRlb1RyYWNrUHJveHk7CiAKIGNsYXNzIFJl
bW90ZU1lZGlhUGxheWVyUHJveHkgZmluYWwKQEAgLTEwNSw3ICsxMDcsNyBAQCBjbGFzcyBSZW1v
dGVNZWRpYVBsYXllclByb3h5IGZpbmFsCiAgICAgLCBwdWJsaWMgSVBDOjpNZXNzYWdlUmVjZWl2
ZXIgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIFJlbW90ZU1l
ZGlhUGxheWVyUHJveHkoUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkmLCBXZWJDb3JlOjpN
ZWRpYVBsYXllcklkZW50aWZpZXIsIFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYsIFdlYkNvcmU6Ok1l
ZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5naW5lSWRlbnRpZmllciwgUmVtb3RlTWVkaWFQbGF5ZXJQ
cm94eUNvbmZpZ3VyYXRpb24mJik7CisgICAgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eShSZW1vdGVN
ZWRpYVBsYXllck1hbmFnZXJQcm94eSYsIFdlYkNvcmU6Ok1lZGlhUGxheWVySWRlbnRpZmllciwg
UmVmPElQQzo6Q29ubmVjdGlvbj4mJiwgV2ViQ29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFF
bmdpbmVJZGVudGlmaWVyLCBSZW1vdGVNZWRpYVBsYXllclByb3h5Q29uZmlndXJhdGlvbiYmLCBS
ZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcCYpOwogICAgIH5SZW1vdGVNZWRpYVBsYXllclByb3h5
KCk7CiAKICAgICBXZWJDb3JlOjpNZWRpYVBsYXllcklkZW50aWZpZXIgaWRlbmRpZmllcigpIGNv
bnN0IHsgcmV0dXJuIG1faWQ7IH0KQEAgLTMzMyw4ICszMzUsOCBAQCBwcml2YXRlOgogI2lmIFBM
QVRGT1JNKENPQ09BKQogICAgIHZvaWQgbmF0aXZlSW1hZ2VGb3JDdXJyZW50VGltZShDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8V1RGOjpNYWNoU2VuZFJpZ2h0PiYmLCBXZWJD
b3JlOjpEZXN0aW5hdGlvbkNvbG9yU3BhY2UpPiYmKTsKICAgICB2b2lkIGNvbG9yU3BhY2UoQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpEZXN0aW5hdGlvbkNvbG9yU3BhY2UpPiYmKTsK
LSAgICB2b2lkIHZpZGVvRnJhbWVGb3JDdXJyZW50VGltZUlmQ2hhbmdlZChDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8UmVmUHRyPFdlYkNvcmU6OlZpZGVvRnJhbWVDVj4+JiYs
IGJvb2wpPiYmKTsKICNlbmRpZgorICAgIHZvaWQgdmlkZW9GcmFtZUZvckN1cnJlbnRUaW1lSWZD
aGFuZ2VkKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoc3RkOjpvcHRpb25hbDxSZW1vdGVWaWRlb0Zy
YW1lUHJveHk6OlByb3BlcnRpZXM+JiYsIGJvb2wpPiYmKTsKIAogI2lmICFSRUxFQVNFX0xPR19E
SVNBQkxFRAogICAgIGNvbnN0IExvZ2dlciYgbWVkaWFQbGF5ZXJMb2dnZXIoKSBmaW5hbCB7IHJl
dHVybiBtX2xvZ2dlcjsgfQpAQCAtMzkwLDYgKzM5Miw3IEBAIHByaXZhdGU6CiAgICAgU2NvcGVk
UmVuZGVyaW5nUmVzb3VyY2VzUmVxdWVzdCBtX3JlbmRlcmluZ1Jlc291cmNlc1JlcXVlc3Q7CiAK
ICAgICBib29sIG1fb2JzZXJ2aW5nVGltZUNoYW5nZXMgeyBmYWxzZSB9OworICAgIFJlZjxSZW1v
dGVWaWRlb0ZyYW1lT2JqZWN0SGVhcD4gbV92aWRlb0ZyYW1lT2JqZWN0SGVhcDsKICAgICBSZWZQ
dHI8V2ViQ29yZTo6VmlkZW9GcmFtZT4gbV92aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWU7CiAjaWYg
IVJFTEVBU0VfTE9HX0RJU0FCTEVECiAgICAgY29uc3QgTG9nZ2VyJiBtX2xvZ2dlcjsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclBy
b3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1l
ZGlhUGxheWVyUHJveHkubWVzc2FnZXMuaW4KaW5kZXggY2MxMzdhZGU1MTliYzZkNDcwNzU2Y2Y1
NzAxZDA0NjZlMTVkZDc3ZC4uZGE3MWRlNWUxZmNlZDhiZDk5MDk2YWFjOTVlZmNlMzIzN2NmNTgx
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlh
UGxheWVyUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21l
ZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkubWVzc2FnZXMuaW4KQEAgLTEyNSw4ICsxMjUsOCBA
QCBtZXNzYWdlcyAtPiBSZW1vdGVNZWRpYVBsYXllclByb3h5IE5vdFJlZkNvdW50ZWQgewogI2lm
IFBMQVRGT1JNKENPQ09BKQogICAgIE5hdGl2ZUltYWdlRm9yQ3VycmVudFRpbWUoKSAtPiAoc3Rk
OjpvcHRpb25hbDxNYWNoU2VuZFJpZ2h0PiBzZW5kUmlnaHQsIFdlYkNvcmU6OkRlc3RpbmF0aW9u
Q29sb3JTcGFjZSBjb2xvclNwYWNlKSBTeW5jaHJvbm91cwogICAgIENvbG9yU3BhY2UoKSAtPiAo
V2ViQ29yZTo6RGVzdGluYXRpb25Db2xvclNwYWNlIGNvbG9yU3BhY2UpIFN5bmNocm9ub3VzCi0g
ICAgVmlkZW9GcmFtZUZvckN1cnJlbnRUaW1lSWZDaGFuZ2VkKCkgLT4gKHN0ZDo6b3B0aW9uYWw8
UmVmUHRyPFdlYkNvcmU6OlZpZGVvRnJhbWVDVj4+IHZpZGVvRnJhbWUsIGJvb2wgY2hhbmdlZCkg
U3luY2hyb25vdXMKICNlbmRpZgorICAgIFZpZGVvRnJhbWVGb3JDdXJyZW50VGltZUlmQ2hhbmdl
ZCgpIC0+IChzdGQ6Om9wdGlvbmFsPFdlYktpdDo6UmVtb3RlVmlkZW9GcmFtZVByb3h5OjpQcm9w
ZXJ0aWVzPiB2aWRlb0ZyYW1lLCBib29sIGNoYW5nZWQpIFN5bmNocm9ub3VzCiAKICAgICBQbGF5
QXRIb3N0VGltZShNb25vdG9uaWNUaW1lIHRpbWUpCiAgICAgUGF1c2VBdEhvc3RUaW1lKE1vbm90
b25pY1RpbWUgdGltZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRp
YS9SZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcC5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvbWVkaWEvUmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXAuY3BwCmluZGV4IGY4N2I5MzFkOTcy
MWU1NzRmMzEzOTk3NjdlYmVlODRkM2E3M2Y2ZWIuLjM0ODgyZDU4ODM4MDU3MmRlOTU3NmFmZDlj
NDE1MjI2MGMzZDg2YWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRp
YS9SZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL21lZGlhL1JlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwLmNwcApAQCAtMjYsMTMgKzI2
LDE1IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiUmVtb3RlVmlkZW9GcmFtZU9i
amVjdEhlYXAuaCIKIAotI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgRU5BQkxFKE1FRElBX1NU
UkVBTSkKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIEVOQUJMRShWSURFTykKICNpbmNsdWRl
ICJHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgiCiAjaW5jbHVkZSAiUmVtb3RlVmlkZW9GcmFt
ZU9iamVjdEhlYXBNZXNzYWdlcy5oIgogI2luY2x1ZGUgIlJlbW90ZVZpZGVvRnJhbWVPYmplY3RI
ZWFwUHJveHlQcm9jZXNzb3JNZXNzYWdlcy5oIgogI2luY2x1ZGUgIlJlbW90ZVZpZGVvRnJhbWVQ
cm94eS5oIgogCisjaWYgUExBVEZPUk0oQ09DT0EpCiAjaW5jbHVkZSA8cGFsL2NmL0NvcmVNZWRp
YVNvZnRMaW5rLmg+CisjZW5kaWYKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKQEAgLTgyLDYgKzg0
LDcgQEAgdm9pZCBSZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcDo6cmVsZWFzZVZpZGVvRnJhbWUo
UmVtb3RlVmlkZW9GcmFtZVdyaXRlUmVmZXJlbmMKICAgICByZXRpcmVSZW1vdmUoV1RGTW92ZSh3
cml0ZSkpOwogfQogCisjaWYgUExBVEZPUk0oQ09DT0EpCiB2b2lkIFJlbW90ZVZpZGVvRnJhbWVP
YmplY3RIZWFwOjpnZXRWaWRlb0ZyYW1lQnVmZmVyKFJlbW90ZVZpZGVvRnJhbWVSZWFkUmVmZXJl
bmNlJiYgcmVhZCkKIHsKICAgICBhdXRvIGlkZW50aWZpZXIgPSByZWFkLmlkZW50aWZpZXIoKTsK
QEAgLTk5LDYgKzEwMiw3IEBAIHZvaWQgUmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXA6OmdldFZp
ZGVvRnJhbWVCdWZmZXIoUmVtb3RlVmlkZW9GcmFtZVJlYWRSZWZlcmVuCiAgICAgKTsKICAgICBt
X2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlJlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwUHJv
eHlQcm9jZXNzb3I6Ok5ld1ZpZGVvRnJhbWVCdWZmZXIgeyBpZGVudGlmaWVyIH0sIDApOwogfQor
I2VuZGlmCiAKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlh
L1JlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwLmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
bWVkaWEvUmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXAuaAppbmRleCBhZDBjYjNiOTYxODQ2YzAx
NDU3OWFiZmUzN2I3ZDE3Y2VlZTQ0NmZiLi5lYmI5MDRlYjU1YjBmMzI0YzE3NWE4NWJhY2EzY2E1
MTlmNjNiZDkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVt
b3RlVmlkZW9GcmFtZU9iamVjdEhlYXAuaAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
bWVkaWEvUmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXAuaApAQCAtMjUsMTMgKzI1LDE2IEBACiAK
ICNwcmFnbWEgb25jZQogCi0jaWYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBFTkFCTEUoTUVESUFf
U1RSRUFNKQorI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgRU5BQkxFKFZJREVPKQogI2luY2x1
ZGUgIlJlbW90ZVZpZGVvRnJhbWVJZGVudGlmaWVyLmgiCi0jaW5jbHVkZSAiU2hhcmVkVmlkZW9G
cmFtZS5oIgogI2luY2x1ZGUgIlRocmVhZFNhZmVPYmplY3RIZWFwLmgiCiAjaW5jbHVkZSA8V2Vi
Q29yZS9NZWRpYVNhbXBsZS5oPgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRBc3NlcnRpb25zLmg+CiAK
KyNpZiBQTEFURk9STShDT0NPQSkKKyNpbmNsdWRlICJTaGFyZWRWaWRlb0ZyYW1lLmgiCisjZW5k
aWYKKwogbmFtZXNwYWNlIFdlYktpdCB7CiBjbGFzcyBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNz
OwogCkBAIC02Miw3ICs2NSw5IEBAIHByaXZhdGU6CiAgICAgR1BVQ29ubmVjdGlvblRvV2ViUHJv
Y2VzcyogbV9ncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzIFdURl9HVUFSREVEX0JZX0xPQ0sobV9j
b25zdW1lVGhyZWFkKTsKICAgICBjb25zdCBSZWY8SVBDOjpDb25uZWN0aW9uPiBtX2Nvbm5lY3Rp
b247CiAgICAgVGhyZWFkQXNzZXJ0aW9uIG1fY29uc3VtZVRocmVhZCBOT19VTklRVUVfQUREUkVT
UzsKKyNpZiBQTEFURk9STShDT0NPQSkKICAgICBTaGFyZWRWaWRlb0ZyYW1lV3JpdGVyIG1fc2hh
cmVkVmlkZW9GcmFtZVdyaXRlcjsKKyNlbmRpZgogfTsKIAogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXAubWVzc2Fn
ZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlVmlkZW9GcmFtZU9i
amVjdEhlYXAubWVzc2FnZXMuaW4KaW5kZXggMWQzZDI0M2UxNTE3NWVmZjljOGQ3ZWZjYmJiZDBi
MTUyZGU1Y2E2Mi4uMWNlMmE0OTZlNWVkYmU3NWE3ZTdjNjQyN2ZiNGViNTRmMmQ0OWEwYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZVZpZGVvRnJhbWVP
YmplY3RIZWFwLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRp
YS9SZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcC5tZXNzYWdlcy5pbgpAQCAtMjEsNyArMjEsNyBA
QAogIyBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCiAjIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KIAot
I2lmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyNpZiBFTkFC
TEUoR1BVX1BST0NFU1MpICYmIEVOQUJMRShWSURFTykKIG1lc3NhZ2VzIC0+IFJlbW90ZVZpZGVv
RnJhbWVPYmplY3RIZWFwIE5vdFJlZkNvdW50ZWQgewogICAgIEdldFZpZGVvRnJhbWVCdWZmZXIo
V2ViS2l0OjpSZW1vdGVWaWRlb0ZyYW1lUmVhZFJlZmVyZW5jZSBpZGVudGlmaWVyKQogICAgIFJl
bGVhc2VWaWRlb0ZyYW1lKFdlYktpdDo6UmVtb3RlVmlkZW9GcmFtZVdyaXRlUmVmZXJlbmNlIGlk
ZW50aWZpZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9UaHJlYWRTYWZlT2Jq
ZWN0SGVhcC5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvVGhyZWFkU2FmZU9iamVjdEhlYXAuaApp
bmRleCBjNWM1ODcyZGFhYzk5NGZlNDFmNWI2YjkxM2MyNzM4YTRmZGI0M2M1Li4xNWRjNjU3MjIw
MmM5MDBmMTlmNzY4ZDA0MzQ1OTNkN2FlOGZiMTM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9UaHJlYWRTYWZlT2JqZWN0SGVhcC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L1RocmVhZFNhZmVPYmplY3RIZWFwLmgKQEAgLTI1LDcgKzI1LDYgQEAKIAogI3ByYWdtYSBvbmNl
CiAKLSNpZiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAjaW5j
bHVkZSAiSVBDVGVzdGVyLmgiCiAjaW5jbHVkZSAiT2JqZWN0SWRlbnRpZmllclJlZmVyZW5jZVRy
YWNrZXIuaCIKICNpbmNsdWRlIDx3dGYvQ29uZGl0aW9uLmg+CkBAIC0yMDAsNCArMTk5LDMgQEAg
dm9pZCBUaHJlYWRTYWZlT2JqZWN0SGVhcDxJZGVudGlmaWVyLCBIZWxkVHlwZT46OmFkZChJZGVu
dGlmaWVyIGlkZW50aWZpZXIsIEhlbGQKIH0KIAogfQotI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL0dQVVByb2Nlc3NDb25uZWN0aW9uLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCmluZGV4IDQ0
YThjZTBiYWZmOWMzMDY1YzVkNTRlMTU4ZGM5YTAxMWU0ZDIzOWYuLjY4MzIyNDNjODUxZjBjZGFk
NGJmZDA1YzAwNmFlYTAzMGVkOGM2NTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9HUFUvR1BVUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCkBAIC03Niw3ICs3Niw3IEBACiAj
aW5jbHVkZSAiVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJNZXNzYWdlcy5oIgogI2VuZGlmCiAKLSNp
ZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorI2lmIEVOQUJMRShWSURFTykKICNpbmNsdWRlICJSZW1v
dGVWaWRlb0ZyYW1lT2JqZWN0SGVhcFByb3h5LmgiCiAjaW5jbHVkZSAiUmVtb3RlVmlkZW9GcmFt
ZVByb3h5LmgiCiAjZW5kaWYKQEAgLTE2Niw3ICsxNjYsNyBAQCB2b2lkIEdQVVByb2Nlc3NDb25u
ZWN0aW9uOjpyZXNldEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySW50ZXJuYWxVbml0KEF1
ZGlvTQogfQogI2VuZGlmCiAKLSNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorI2lmIEVOQUJMRShW
SURFTykKIFJlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwUHJveHkmIEdQVVByb2Nlc3NDb25uZWN0
aW9uOjp2aWRlb0ZyYW1lT2JqZWN0SGVhcFByb3h5KCkKIHsKICAgICBpZiAoIW1fdmlkZW9GcmFt
ZU9iamVjdEhlYXBQcm94eSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvR1BVUHJvY2Vzc0Nvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUv
R1BVUHJvY2Vzc0Nvbm5lY3Rpb24uaAppbmRleCA5ZWFjZTZiYjc5YTc2Yjc1OTJlYjM5ZjIyYTZi
YWViMTE1MmVlNTFlLi40Zjg4ZTFjZGUwNWYzMzVmOTVjNzNlNWY5YzAzNWRlZmFiNGJiNDZhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL0dQVVByb2Nlc3NDb25uZWN0
aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9HUFVQcm9jZXNzQ29ubmVj
dGlvbi5oCkBAIC01Nyw3ICs1Nyw3IEBAIHN0cnVjdCBHUFVQcm9jZXNzQ29ubmVjdGlvbkluaXRp
YWxpemF0aW9uUGFyYW1ldGVyczsKIHN0cnVjdCBPdmVycmlkZVNjcmVlbkRhdGFGb3JUZXN0aW5n
Owogc3RydWN0IFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnM7CiAKLSNpZiBFTkFCTEUoTUVESUFf
U1RSRUFNKQorI2lmIEVOQUJMRShWSURFTykKIGNsYXNzIFJlbW90ZVZpZGVvRnJhbWVPYmplY3RI
ZWFwUHJveHk7CiAjZW5kaWYKIApAQCAtODIsNyArODIsNyBAQCBwdWJsaWM6CiAgICAgU2FtcGxl
QnVmZmVyRGlzcGxheUxheWVyTWFuYWdlciYgc2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdl
cigpOwogICAgIHZvaWQgcmVzZXRBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckludGVybmFs
VW5pdChBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckludGVybmFsVW5pdElkZW50aWZpZXIp
OwogI2VuZGlmCi0jaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyNpZiBFTkFCTEUoVklERU8pCiAg
ICAgUmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXBQcm94eSYgdmlkZW9GcmFtZU9iamVjdEhlYXBQ
cm94eSgpOwogI2VuZGlmCiAKQEAgLTE0OCw3ICsxNDgsNyBAQCBwcml2YXRlOgogI2lmIFBMQVRG
T1JNKENPQ09BKSAmJiBFTkFCTEUoTUVESUFfU1RSRUFNKQogICAgIHN0ZDo6dW5pcXVlX3B0cjxT
YW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyPiBtX3NhbXBsZUJ1ZmZlckRpc3BsYXlMYXll
ck1hbmFnZXI7CiAjZW5kaWYKLSNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorI2lmIEVOQUJMRShW
SURFTykKICAgICBSZWZQdHI8UmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXBQcm94eT4gbV92aWRl
b0ZyYW1lT2JqZWN0SGVhcFByb3h5OwogI2VuZGlmCiAjaWYgUExBVEZPUk0oQ09DT0EpICYmIEVO
QUJMRShXRUJfQVVESU8pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BV
L2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHkuY3BwIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5LmNw
cAppbmRleCBjODk2YWI3ZmRiYjZmMjg4Y2UzYzYyNDJlNGViMGRlZmZkYzQwNTE2Li4zZmIyOGE2
ZGI4NGZmZTE1Y2MwMzM1YzNkZDM5NjhmOTExZTBlN2IwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHku
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlR3Jh
cGhpY3NDb250ZXh0R0xQcm94eS5jcHAKQEAgLTMyLDExICszMiwxMSBAQAogI2luY2x1ZGUgIkdQ
VVByb2Nlc3NDb25uZWN0aW9uLmgiCiAjaW5jbHVkZSAiUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xN
ZXNzYWdlcy5oIgogI2luY2x1ZGUgIlJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlNZXNzYWdl
cy5oIgotI2luY2x1ZGUgIlJlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwUHJveHkuaCIKICNpbmNs
dWRlICJXZWJQcm9jZXNzLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9JbWFnZUJ1ZmZlci5oPgogCi0j
aWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyNpZiBFTkFCTEUoVklERU8pCisjaW5jbHVkZSAiUmVt
b3RlVmlkZW9GcmFtZU9iamVjdEhlYXBQcm94eS5oIgogI2luY2x1ZGUgIlJlbW90ZVZpZGVvRnJh
bWVQcm94eS5oIgogI2VuZGlmCiAKQEAgLTE4MiwxMCArMTgyLDE1IEBAIFJlZlB0cjxXZWJDb3Jl
OjpNZWRpYVNhbXBsZT4gUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eTo6cGFpbnRDb21wb3Np
dGVkUmVzdWx0CiB9CiAjZW5kaWYKIAorI2lmIEVOQUJMRShWSURFTykKIGJvb2wgUmVtb3RlR3Jh
cGhpY3NDb250ZXh0R0xQcm94eTo6Y29weVRleHR1cmVGcm9tTWVkaWEoTWVkaWFQbGF5ZXImIG1l
ZGlhUGxheWVyLCBQbGF0Zm9ybUdMT2JqZWN0IHRleHR1cmUsIEdDR0xlbnVtIHRhcmdldCwgR0NH
TGludCBsZXZlbCwgR0NHTGVudW0gaW50ZXJuYWxGb3JtYXQsIEdDR0xlbnVtIGZvcm1hdCwgR0NH
TGVudW0gdHlwZSwgYm9vbCBwcmVtdWx0aXBseUFscGhhLCBib29sIGZsaXBZKQogeworICAgIGF1
dG8gdmlkZW9GcmFtZSA9IG1lZGlhUGxheWVyLnZpZGVvRnJhbWVGb3JDdXJyZW50VGltZSgpOwor
ICAgIC8vIFZpZGVvIGluIFdQIHdoaWxlIFdlYkdMIGluIEdQVVAgaXMgbm90IHN1cHBvcnRlZC4K
KyAgICBpZiAoIXZpZGVvRnJhbWUgfHwgIWlzPFJlbW90ZVZpZGVvRnJhbWVQcm94eT4oKnZpZGVv
RnJhbWUpKQorICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgYm9vbCByZXN1bHQgPSBmYWxzZTsK
LSAgICBhdXRvIHNlbmRSZXN1bHQgPSBzZW5kU3luYyhNZXNzYWdlczo6UmVtb3RlR3JhcGhpY3ND
b250ZXh0R0w6OkNvcHlUZXh0dXJlRnJvbU1lZGlhKG1lZGlhUGxheWVyLmlkZW50aWZpZXIoKSwg
dGV4dHVyZSwgdGFyZ2V0LCBsZXZlbCwgaW50ZXJuYWxGb3JtYXQsIGZvcm1hdCwgdHlwZSwgcHJl
bXVsdGlwbHlBbHBoYSwgZmxpcFkpLCBNZXNzYWdlczo6UmVtb3RlR3JhcGhpY3NDb250ZXh0R0w6
OkNvcHlUZXh0dXJlRnJvbU1lZGlhOjpSZXBseShyZXN1bHQpKTsKKyAgICBhdXRvIHNlbmRSZXN1
bHQgPSBzZW5kU3luYyhNZXNzYWdlczo6UmVtb3RlR3JhcGhpY3NDb250ZXh0R0w6OkNvcHlUZXh0
dXJlRnJvbVZpZGVvRnJhbWUoZG93bmNhc3Q8UmVtb3RlVmlkZW9GcmFtZVByb3h5PigqdmlkZW9G
cmFtZSkucmVhZCgpLCB0ZXh0dXJlLCB0YXJnZXQsIGxldmVsLCBpbnRlcm5hbEZvcm1hdCwgZm9y
bWF0LCB0eXBlLCBwcmVtdWx0aXBseUFscGhhLCBmbGlwWSksIE1lc3NhZ2VzOjpSZW1vdGVHcmFw
aGljc0NvbnRleHRHTDo6Q29weVRleHR1cmVGcm9tVmlkZW9GcmFtZTo6UmVwbHkocmVzdWx0KSk7
CiAgICAgaWYgKCFzZW5kUmVzdWx0KSB7CiAgICAgICAgIG1hcmtDb250ZXh0TG9zdCgpOwogICAg
ICAgICByZXR1cm4gZmFsc2U7CkBAIC0xOTMsNiArMTk4LDcgQEAgYm9vbCBSZW1vdGVHcmFwaGlj
c0NvbnRleHRHTFByb3h5Ojpjb3B5VGV4dHVyZUZyb21NZWRpYShNZWRpYVBsYXllciYgbWVkaWFQ
bGF5ZXIKIAogICAgIHJldHVybiByZXN1bHQ7CiB9CisjZW5kaWYKIAogdm9pZCBSZW1vdGVHcmFw
aGljc0NvbnRleHRHTFByb3h5OjpzeW50aGVzaXplR0xFcnJvcihHQ0dMZW51bSBlcnJvcikKIHsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3Rl
R3JhcGhpY3NDb250ZXh0R0xQcm94eS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9n
cmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5LmgKaW5kZXggMzQ0ZmU5ODVkODAz
Y2RiMjdjZjFlNzJhZGZiNWI2OWFlNjcwZjA2Ny4uZjc2NTQwM2E1Njk3MGE0N2ExZDNmNmMzMTNi
MDViNzA4MDE4ZjM0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9n
cmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5LmgKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5LmgK
QEAgLTczLDcgKzczLDkgQEAgcHVibGljOgogI2VuZGlmCiAgICAgdm9pZCBzeW50aGVzaXplR0xF
cnJvcihHQ0dMZW51bSBlcnJvcikgZmluYWw7CiAgICAgR0NHTGVudW0gZ2V0RXJyb3IoKSBmaW5h
bDsKKyNpZiBFTkFCTEUoVklERU8pCiAgICAgYm9vbCBjb3B5VGV4dHVyZUZyb21NZWRpYShXZWJD
b3JlOjpNZWRpYVBsYXllciYsIFBsYXRmb3JtR0xPYmplY3QgdGV4dHVyZSwgR0NHTGVudW0gdGFy
Z2V0LCBHQ0dMaW50IGxldmVsLCBHQ0dMZW51bSBpbnRlcm5hbEZvcm1hdCwgR0NHTGVudW0gZm9y
bWF0LCBHQ0dMZW51bSB0eXBlLCBib29sIHByZW11bHRpcGx5QWxwaGEsIGJvb2wgZmxpcFkpIGZp
bmFsOworI2VuZGlmCiAgICAgdm9pZCBzaW11bGF0ZUV2ZW50Rm9yVGVzdGluZyhTaW11bGF0ZWRF
dmVudEZvclRlc3RpbmcpIGZpbmFsOwogCiAgICAgLy8gRnVuY3Rpb25zIHdpdGggYSBnZW5lcmF0
ZWQgaW1wbGVtZW50YXRpb24uIFRoaXMgbGlzdCBpcyB1c2VkIGJ5IGdlbmVyYXRlLWdwdXAtd2Vi
Z2wgc2NyaXB0LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRp
YS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuY3BwCmluZGV4IGMxOWYyNTUwYWRi
MzBhYzczYTk2MGRiZGY0ODNmYjU4OTBjM2YwYjMuLmVhNGRjYjM3NGQwYzViOGRjYjkxMDkwNGZm
ZGRjYzAyYTQyZTk5N2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUv
bWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5jcHAKQEAgLTEwMDUs
MTkgKzEwMDUsMTYgQEAgYm9vbCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OmNvcHlWaWRlb1Rl
eHR1cmVUb1BsYXRmb3JtVGV4dHVyZShXZWJDb3JlOjpHcmFwaGkKIAogUmVmUHRyPFdlYkNvcmU6
OlZpZGVvRnJhbWU+IE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6dmlkZW9GcmFtZUZvckN1cnJl
bnRUaW1lKCkKIHsKLS8vIEZJWE1FOiBUaGlzIHdpbGwgYmUgbWFkZSBjcm9zcy1wbGF0Zm9ybSBh
Z2FpbiBzb29uLiBUaGVyZSBhcmUgbm8gb3RoZXIgcGxhdGZvcm1zIHVzaW5nIHRoaXMgYXQgdGhl
IG1vbWVudC4KLSNpZiBQTEFURk9STShDT0NPQSkKLSAgICBzdGQ6Om9wdGlvbmFsPFJlZlB0cjxX
ZWJDb3JlOjpWaWRlb0ZyYW1lQ1Y+PiByZXN1bHQ7CisgICAgc3RkOjpvcHRpb25hbDxSZW1vdGVW
aWRlb0ZyYW1lUHJveHk6OlByb3BlcnRpZXM+IHJlc3VsdDsKICAgICBib29sIGNoYW5nZWQgPSBm
YWxzZTsKICAgICBpZiAoIWNvbm5lY3Rpb24oKS5zZW5kU3luYyhNZXNzYWdlczo6UmVtb3RlTWVk
aWFQbGF5ZXJQcm94eTo6VmlkZW9GcmFtZUZvckN1cnJlbnRUaW1lSWZDaGFuZ2VkKCksIE1lc3Nh
Z2VzOjpSZW1vdGVNZWRpYVBsYXllclByb3h5OjpWaWRlb0ZyYW1lRm9yQ3VycmVudFRpbWVJZkNo
YW5nZWQ6OlJlcGx5KHJlc3VsdCwgY2hhbmdlZCksIG1faWQpKQotICAgICAgICByZXR1cm4gbV92
aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWU7CisgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIGlm
IChjaGFuZ2VkKSB7CiAgICAgICAgIGlmIChyZXN1bHQpCi0gICAgICAgICAgICBtX3ZpZGVvRnJh
bWVGb3JDdXJyZW50VGltZSA9IFdURk1vdmUoKnJlc3VsdCk7CisgICAgICAgICAgICBtX3ZpZGVv
RnJhbWVGb3JDdXJyZW50VGltZSA9IFJlbW90ZVZpZGVvRnJhbWVQcm94eTo6Y3JlYXRlKGNvbm5l
Y3Rpb24oKSwgdmlkZW9GcmFtZU9iamVjdEhlYXBQcm94eSgpLCBXVEZNb3ZlKCpyZXN1bHQpKTsK
ICAgICAgICAgZWxzZQogICAgICAgICAgICAgbV92aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWUgPSBu
dWxscHRyOwogICAgIH0KLSNlbmRpZgogICAgIHJldHVybiBtX3ZpZGVvRnJhbWVGb3JDdXJyZW50
VGltZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRp
YS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmgKaW5kZXggMjlmOTEyZDRlOGI4N2I1
N2JhMTU2MjRhNmRjNWUwNmI3YzVjMWI5ZC4uMzhlZjg4OTcxODIwMjk0NDQwM2M1MmY4M2I5NDI3
MTcxMjExOGU2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRp
YS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5oCkBAIC0zNCw2ICszNCw4IEBA
CiAjaW5jbHVkZSAiUmVtb3RlTWVkaWFQbGF5ZXJTdGF0ZS5oIgogI2luY2x1ZGUgIlJlbW90ZU1l
ZGlhUmVzb3VyY2VJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiUmVtb3RlTWVkaWFSZXNvdXJjZVBy
b3h5LmgiCisjaW5jbHVkZSAiUmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXBQcm94eS5oIgorI2lu
Y2x1ZGUgIlJlbW90ZVZpZGVvRnJhbWVQcm94eS5oIgogI2luY2x1ZGUgIlRleHRUcmFja1ByaXZh
dGVSZW1vdGUuaCIKICNpbmNsdWRlICJUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyLmgiCiAj
aW5jbHVkZSAiVmlkZW9UcmFja1ByaXZhdGVSZW1vdGUuaCIKQEAgLTQxMyw2ICs0MTUsNyBAQCBw
cml2YXRlOgogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIHZvaWQgcHVzaFZpZGVvRnJhbWVNZXRh
ZGF0YShXZWJDb3JlOjpWaWRlb0ZyYW1lTWV0YWRhdGEmJiwgUmV0YWluUHRyPENWUGl4ZWxCdWZm
ZXJSZWY+JiYpOwogI2VuZGlmCisgICAgUmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXBQcm94eSYg
dmlkZW9GcmFtZU9iamVjdEhlYXBQcm94eSgpIGNvbnN0IHsgcmV0dXJuIG1fbWFuYWdlci5ncHVQ
cm9jZXNzQ29ubmVjdGlvbigpLnZpZGVvRnJhbWVPYmplY3RIZWFwUHJveHkoKTsgfQogCiAgICAg
V2Vha1B0cjxXZWJDb3JlOjpNZWRpYVBsYXllcj4gbV9wbGF5ZXI7CiAgICAgUmVmPFdlYkNvcmU6
OlBsYXRmb3JtTWVkaWFSZXNvdXJjZUxvYWRlcj4gbV9tZWRpYVJlc291cmNlTG9hZGVyOwpAQCAt
NDYxLDcgKzQ2NCw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX3dhaXRpbmdGb3JLZXkgeyBmYWxz
ZSB9OwogICAgIGJvb2wgbV90aW1lSXNQcm9ncmVzc2luZyB7IGZhbHNlIH07CiAgICAgYm9vbCBt
X3JlbmRlcmluZ0NhbkJlQWNjZWxlcmF0ZWQgeyBmYWxzZSB9OwotICAgIFJlZlB0cjxXZWJDb3Jl
OjpWaWRlb0ZyYW1lPiBtX3ZpZGVvRnJhbWVGb3JDdXJyZW50VGltZTsKKyAgICBSZWZQdHI8UmVt
b3RlVmlkZW9GcmFtZVByb3h5PiBtX3ZpZGVvRnJhbWVGb3JDdXJyZW50VGltZTsKICNpZiBQTEFU
Rk9STShDT0NPQSkKICAgICBSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4gbV9waXhlbEJ1ZmZl
ckdhdGhlcmVkV2l0aFZpZGVvRnJhbWVNZXRhZGF0YTsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8V2Vi
Q29yZTo6UGl4ZWxCdWZmZXJDb25mb3JtZXJDVj4gbV9waXhlbEJ1ZmZlckNvbmZvcm1lcjsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlVmlkZW9G
cmFtZUlkZW50aWZpZXIuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVt
b3RlVmlkZW9GcmFtZUlkZW50aWZpZXIuaAppbmRleCBmYjAwMWRhNzQ4MjM5ZjM4ZGQ5ZWQwMzI1
YzU5YjdiODNjOTI1ODczLi5mNTg5YjdkYmRlYTkzOWM5NDA5Nzg0YzBmYjBmZmYzMmFkZDUzODFi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZVZp
ZGVvRnJhbWVJZGVudGlmaWVyLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9t
ZWRpYS9SZW1vdGVWaWRlb0ZyYW1lSWRlbnRpZmllci5oCkBAIC0yNSw3ICsyNSw3IEBACiAKICNw
cmFnbWEgb25jZQogCi0jaWYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBFTkFCTEUoTUVESUFfU1RS
RUFNKQorI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgRU5BQkxFKFZJREVPKQogCiAjaW5jbHVk
ZSAiT2JqZWN0SWRlbnRpZmllclJlZmVyZW5jZVRyYWNrZXIuaCIKICNpbmNsdWRlIDxXZWJDb3Jl
L1Byb2Nlc3NRdWFsaWZpZWQuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9HUFUvbWVkaWEvUmVtb3RlVmlkZW9GcmFtZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlVmlkZW9GcmFtZVByb3h5LmNwcAppbmRleCBkODM3YTQ2
YmFmMTQwNzc0ZWE2ZWRkODI0OWNkZTYyMzI0YjJkNDgyLi5kMTgwMzRiNDYzMTFhZDM4OWE2YWI2
YTg5NWYxY2EyYjE4MTc5OTE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL21lZGlhL1JlbW90ZVZpZGVvRnJhbWVQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVWaWRlb0ZyYW1lUHJveHkuY3BwCkBAIC0yNiwxMyAr
MjYsMTUgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJSZW1vdGVWaWRlb0ZyYW1l
UHJveHkuaCIKIAotI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgRU5BQkxFKE1FRElBX1NUUkVB
TSkKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIEVOQUJMRShWSURFTykKICNpbmNsdWRlICJH
UFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgiCiAjaW5jbHVkZSAiUmVtb3RlVmlkZW9GcmFtZU9i
amVjdEhlYXBNZXNzYWdlcy5oIgogI2luY2x1ZGUgIlJlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFw
UHJveHkuaCIKLSNpbmNsdWRlIDxXZWJDb3JlL1JlYWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZUNv
Y29hLmg+CiAKICNpZiBQTEFURk9STShDT0NPQSkKKyNpbmNsdWRlIDxXZWJDb3JlL0NWVXRpbGl0
aWVzLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9SZWFsdGltZUluY29taW5nVmlkZW9Tb3VyY2VDb2Nv
YS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvVmlkZW9GcmFtZUNWLmg+CiAjaW5jbHVkZSA8d3RmL3Ro
cmVhZHMvQmluYXJ5U2VtYXBob3JlLmg+CiAjZW5kaWYKIApAQCAtMTE5LDYgKzEyMSwxNSBAQCBD
VlBpeGVsQnVmZmVyUmVmIFJlbW90ZVZpZGVvRnJhbWVQcm94eTo6cGl4ZWxCdWZmZXIoKSBjb25z
dAogICAgIH0KICAgICByZXR1cm4gbV9waXhlbEJ1ZmZlci5nZXQoKTsKIH0KKworUmVmUHRyPFdl
YkNvcmU6OlZpZGVvRnJhbWVDVj4gUmVtb3RlVmlkZW9GcmFtZVByb3h5Ojphc1ZpZGVvRnJhbWVD
VigpCit7CisgICAgYXV0byBidWZmZXIgPSBwaXhlbEJ1ZmZlcigpOworICAgIGlmICghYnVmZmVy
KQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICByZXR1cm4gVmlkZW9GcmFtZUNWOjpjcmVh
dGUobV9wcmVzZW50YXRpb25UaW1lLCBtX2lzTWlycm9yZWQsIG1fcm90YXRpb24sIFJldGFpblB0
ciB7IGJ1ZmZlciB9KTsKK30KKwogI2VuZGlmCiAKIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4
dFN0cmVhbSYgdHMsIGNvbnN0IFJlbW90ZVZpZGVvRnJhbWVQcm94eTo6UHJvcGVydGllcyYgcHJv
cGVydGllcykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEv
UmVtb3RlVmlkZW9GcmFtZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21l
ZGlhL1JlbW90ZVZpZGVvRnJhbWVQcm94eS5oCmluZGV4IDE2NTczMDcyOTg5MzUwMDVlYjJmMzM0
Y2Y2YTI5NDQ1NjUwZjE1ZTIuLjBlZWM3Y2M0YmI1NjE2YmQyZWMyZmNmNjhhOWJkYjkzZDZkNjIw
M2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3Rl
VmlkZW9GcmFtZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRp
YS9SZW1vdGVWaWRlb0ZyYW1lUHJveHkuaApAQCAtMjUsNyArMjUsNyBAQAogCiAjcHJhZ21hIG9u
Y2UKIAotI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyNp
ZiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIEVOQUJMRShWSURFTykKIAogI2luY2x1ZGUgIkdQVVBy
b2Nlc3NDb25uZWN0aW9uLmgiCiAjaW5jbHVkZSAiUmVtb3RlVmlkZW9GcmFtZUlkZW50aWZpZXIu
aCIKQEAgLTM2LDYgKzM2LDEyIEBAIGNsYXNzIENvbm5lY3Rpb247CiBjbGFzcyBEZWNvZGVyOwog
fQogCituYW1lc3BhY2UgV2ViQ29yZSB7CisjaWYgUExBVEZPUk0oQ09DT0EpCitjbGFzcyBWaWRl
b0ZyYW1lQ1Y7CisjZW5kaWYKK30KKwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIEdQVVBy
b2Nlc3NDb25uZWN0aW9uOwpAQCAtODAsMTYgKzg2LDE1IEBAIHB1YmxpYzoKICAgICAvLyBXZWJD
b3JlOjpWaWRlb0ZyYW1lIG92ZXJyaWRlcy4KICAgICBXZWJDb3JlOjpGbG9hdFNpemUgcHJlc2Vu
dGF0aW9uU2l6ZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fc2l6ZTsgfQogICAgIHVpbnQzMl90
IHZpZGVvUGl4ZWxGb3JtYXQoKSBjb25zdCBmaW5hbDsKKyAgICBib29sIGlzUmVtb3RlUHJveHko
KSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVlOyB9CiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAg
Q1ZQaXhlbEJ1ZmZlclJlZiBwaXhlbEJ1ZmZlcigpIGNvbnN0IGZpbmFsOworICAgIFJlZlB0cjxX
ZWJDb3JlOjpWaWRlb0ZyYW1lQ1Y+IGFzVmlkZW9GcmFtZUNWKCkgZmluYWw7CiAjZW5kaWYKLSAg
ICBib29sIGlzUmVtb3RlUHJveHkoKSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVlOyB9CiAKIHBy
aXZhdGU6CiAgICAgUmVtb3RlVmlkZW9GcmFtZVByb3h5KElQQzo6Q29ubmVjdGlvbiYsIFJlbW90
ZVZpZGVvRnJhbWVPYmplY3RIZWFwUHJveHkmLCBQcm9wZXJ0aWVzJiYpOwogCi0KLQogICAgIGNv
bnN0IFJlZjxJUEM6OkNvbm5lY3Rpb24+IG1fY29ubmVjdGlvbjsKICAgICBSZW1vdGVWaWRlb0Zy
YW1lUmVmZXJlbmNlVHJhY2tlciBtX3JlZmVyZW5jZVRyYWNrZXI7CiAgICAgY29uc3QgV2ViQ29y
ZTo6SW50U2l6ZSBtX3NpemU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL21lZGlhL1JlbW90ZVZpZGVvRnJhbWVQcm94eUlkZW50aWZpZXIuaCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlVmlkZW9GcmFtZVByb3h5SWRlbnRpZmllci5o
CmluZGV4IDQ3OTJjMDQ4NjUwZDBjYTI2NDYwMDA3MjM0NjcwMzI4MmU3MmE0ZDAuLjVjZTdhZjE1
ODQzYTdhOGYyNDZkYzk3ZTgyMTRmNzlkNTY3NmY4ZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlVmlkZW9GcmFtZVByb3h5SWRlbnRpZmllci5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlVmlkZW9GcmFt
ZVByb3h5SWRlbnRpZmllci5oCkBAIC0yNSw3ICsyNSw3IEBACiAKICNwcmFnbWEgb25jZQogCi0j
aWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIEVOQUJM
RShWSURFTykKIAogI2luY2x1ZGUgIk9iamVjdElkZW50aWZpZXJSZWZlcmVuY2VUcmFja2VyLmgi
CiAjaW5jbHVkZSA8V2ViQ29yZS9SZW1vdGVWaWRlb0ZyYW1lSWRlbnRpZmllci5oPgpAQCAtMzks
NCArMzksNCBAQCB1c2luZyBSZW1vdGVWaWRlb0ZyYW1lUmVmZXJlbmNlVHJhY2tlciA9IE9iamVj
dElkZW50aWZpZXJSZWZlcmVuY2VUcmFja2VyPFdlYkNvcgogCiB9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKIAotI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJFQU0pCisjZW5kaWYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL01lZGlhUmVjb3JkZXJQcml2YXRl
LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL01lZGlhUmVjb3JkZXJQ
cml2YXRlLmNwcAppbmRleCA5MTgwZDFjYTcyZDAxZTMyMmU3Y2E0ZGU5YzgzNmQ2OGVjYzZhMWMz
Li5lYTQxNDI1NmJmMGJlY2ExNzExYTE1ZjQwZDQxYTZkNWZjNmMyODMwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9NZWRpYVJlY29yZGVyUHJpdmF0ZS5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTWVkaWFSZWNvcmRl
clByaXZhdGUuY3BwCkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSAiUmVtb3RlVmlkZW9GcmFt
ZVByb3h5LmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgogI2luY2x1ZGUgPFdlYkNvcmUvQ0FS
aW5nQnVmZmVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9DVlV0aWxpdGllcy5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvTWVkaWFTdHJlYW1Qcml2YXRlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9NZWRpYVN0
cmVhbVRyYWNrUHJpdmF0ZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVhbHRpbWVJbmNvbWluZ1Zp
ZGVvU291cmNlQ29jb2EuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvd2VicnRjL1JlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwUHJveHkuaCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL1JlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwUHJveHku
aAppbmRleCAxMWJkZDFmNjU2MTJjYjY2NDYwMDAxYzkzNTYwZGNkMTQxZDk3MzY5Li4yYmZiYjU3
YTEyNjU0MDY0OTU1NDk1NTZjYjk0MjE3NWM0NzVlMWMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9SZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcFByb3h5
LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvUmVtb3RlVmlkZW9G
cmFtZU9iamVjdEhlYXBQcm94eS5oCkBAIC0yNSw3ICsyNSw3IEBACiAKICNwcmFnbWEgb25jZQog
Ci0jaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkgJiYgRU5BQkxFKEdQVV9QUk9DRVNTKQorI2lmIEVO
QUJMRShHUFVfUFJPQ0VTUykgJiYgRU5BQkxFKFZJREVPKQogCiAjaW5jbHVkZSAiUmVtb3RlVmlk
ZW9GcmFtZU9iamVjdEhlYXBQcm94eVByb2Nlc3Nvci5oIgogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9SZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcFBy
b3h5UHJvY2Vzc29yLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL1Jl
bW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwUHJveHlQcm9jZXNzb3IuY3BwCmluZGV4IGIxY2E0Yzdi
YzZlNDM4MzkyZmFlMTY1YmE3NWU2ZjgzMDdlNTVjMjEuLmYyMWQxMThjODIwMjIyYmFjY2QxMmY3
ZmYwY2E2MjFlZjQ4MWJjNGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvd2VicnRjL1JlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwUHJveHlQcm9jZXNzb3IuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL1JlbW90ZVZpZGVvRnJhbWVP
YmplY3RIZWFwUHJveHlQcm9jZXNzb3IuY3BwCkBAIC0yNiwxMCArMjYsMTEgQEAKICNpbmNsdWRl
ICJjb25maWcuaCIKICNpbmNsdWRlICJSZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcFByb3h5Lmgi
CiAKLSNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKSAmJiBQTEFURk9STShDT0NPQSkgJiYgRU5BQkxF
KEdQVV9QUk9DRVNTKQorI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBFTkFCTEUoR1BVX1BST0NFU1Mp
ICYmIEVOQUJMRShWSURFTykKIAogI2luY2x1ZGUgIlJlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFw
TWVzc2FnZXMuaCIKICNpbmNsdWRlICJSZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcFByb3h5UHJv
Y2Vzc29yTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJSZW1vdGVWaWRlb0ZyYW1lUHJveHkuaCIKIAog
bmFtZXNwYWNlIFdlYktpdCB7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9HUFUvd2VicnRjL1JlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwUHJveHlQcm9jZXNzb3IuaCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL1JlbW90ZVZpZGVvRnJhbWVPYmpl
Y3RIZWFwUHJveHlQcm9jZXNzb3IuaAppbmRleCA4ZjdjNzhiYmM4NDA5MjI1N2U1NjJkYjQyNmY4
ZWYzNzA5NWIyYzMxLi5mMGU3NmYzYmE0YTQ1MTVmMmNhMGEzYzVlNjRjNjVjODkyNjZmZjJhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9SZW1vdGVWaWRl
b0ZyYW1lT2JqZWN0SGVhcFByb3h5UHJvY2Vzc29yLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0dQVS93ZWJydGMvUmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXBQcm94eVByb2Nlc3Nv
ci5oCkBAIC0yNSwxMyArMjUsMTQgQEAKIAogI3ByYWdtYSBvbmNlCiAKLSNpZiBFTkFCTEUoTUVE
SUFfU1RSRUFNKSAmJiBQTEFURk9STShDT0NPQSkgJiYgRU5BQkxFKEdQVV9QUk9DRVNTKQorI2lm
IEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgUExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShWSURFTykK
IAogI2luY2x1ZGUgIkNvbm5lY3Rpb24uaCIKICNpbmNsdWRlICJHUFVQcm9jZXNzQ29ubmVjdGlv
bi5oIgogI2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgogI2luY2x1ZGUgIlJlbW90ZVZpZGVv
RnJhbWVJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiU2hhcmVkVmlkZW9GcmFtZS5oIgorCiAjaW5j
bHVkZSA8d3RmL0Z1bmN0aW9uLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRl
IDx3dGYvTG9jay5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93
ZWJydGMvUmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXBQcm94eVByb2Nlc3Nvci5tZXNzYWdlcy5p
biBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL1JlbW90ZVZpZGVvRnJhbWVP
YmplY3RIZWFwUHJveHlQcm9jZXNzb3IubWVzc2FnZXMuaW4KaW5kZXggYWZiOTM2NDk1YWJlMjJh
ZjZlN2NlMTRhY2E3OTA3OTlhYWZhNzdhZC4uMWQ1NTUzNmRkOGE0NThjYmQ0YjE1ODNlMmFlMTAx
NDExNDY5N2ExMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJy
dGMvUmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXBQcm94eVByb2Nlc3Nvci5tZXNzYWdlcy5pbgor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9SZW1vdGVWaWRlb0ZyYW1l
T2JqZWN0SGVhcFByb3h5UHJvY2Vzc29yLm1lc3NhZ2VzLmluCkBAIC0yMCw3ICsyMCw3IEBACiAj
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCiAjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAKLSNpZiBFTkFCTEUoTUVESUFf
U1RSRUFNKSAmJiBQTEFURk9STShDT0NPQSkgJiYgRU5BQkxFKEdQVV9QUk9DRVNTKQorI2lmIFBM
QVRGT1JNKENPQ09BKSAmJiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIEVOQUJMRShWSURFTykKIAog
bWVzc2FnZXMgLT4gUmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXBQcm94eVByb2Nlc3NvciB7CiAg
ICAgU2V0U2hhcmVkVmlkZW9GcmFtZVNlbWFwaG9yZShJUEM6OlNlbWFwaG9yZSBzZW1hcGhvcmUp
CkBAIC0yOSw0ICsyOSw0IEBAIG1lc3NhZ2VzIC0+IFJlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFw
UHJveHlQcm9jZXNzb3IgewogICAgIE5ld1ZpZGVvRnJhbWVCdWZmZXIoV2ViS2l0OjpSZW1vdGVW
aWRlb0ZyYW1lSWRlbnRpZmllciBpZGVudGlmaWVyKQogfQogCi0jZW5kaWYgLy8gRU5BQkxFKE1F
RElBX1NUUkVBTSkgJiYgUExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShHUFVfUFJPQ0VTUykKKyNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvU2hh
cmVkVmlkZW9GcmFtZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9T
aGFyZWRWaWRlb0ZyYW1lLmNwcAppbmRleCA5ZDM1M2VmZmZmNTYwMTQyMWMxNGQ1MjVkZWUxMWIw
NjkzZjIyOGY5Li5hNzFjYTA4MTIwOGJkNTFlMTRlOTY5ZjYxMDIyOTU4YjJhZDg1MmU2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9TaGFyZWRWaWRlb0Zy
YW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9TaGFyZWRW
aWRlb0ZyYW1lLmNwcApAQCAtMjYsNyArMjYsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2lu
Y2x1ZGUgIlNoYXJlZFZpZGVvRnJhbWUuaCIKIAotI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pICYm
IFBMQVRGT1JNKENPQ09BKQorI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgUExBVEZPUk0oQ09D
T0EpICYmIEVOQUJMRShWSURFTykKIAogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlIDxX
ZWJDb3JlL1NoYXJlZFZpZGVvRnJhbWVJbmZvLmg+CkBAIC0xNTIsNCArMTUyLDQgQEAgYm9vbCBT
aGFyZWRWaWRlb0ZyYW1lUmVhZGVyOjpzZXRTaGFyZWRNZW1vcnkoY29uc3QgU2hhcmVkTWVtb3J5
OjpJUENIYW5kbGUmIGlwY0gKIAogfQogCi0jZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NUUkVBTSkg
JiYgUExBVEZPUk0oQ09DT0EpCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvd2VicnRjL1NoYXJlZFZpZGVvRnJhbWUuaCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvd2VicnRjL1NoYXJlZFZpZGVvRnJhbWUuaAppbmRleCBjMjA1ODU5NDk2YTVk
ODUxMDY2NTZjZTU3OTEyOTQ5YTQxMjdmOGZlLi5hZWJiNzljZTJkZWVmZDViZjNmYjQ1N2RmMmUw
MmU4MjJkZWRmYzk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dl
YnJ0Yy9TaGFyZWRWaWRlb0ZyYW1lLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS93ZWJydGMvU2hhcmVkVmlkZW9GcmFtZS5oCkBAIC0yNSw3ICsyNSw3IEBACiAKICNwcmFnbWEg
b25jZQogCi0jaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkgJiYgUExBVEZPUk0oQ09DT0EpCisjaWYg
RU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBQTEFURk9STShDT0NPQSkgJiYgRU5BQkxFKFZJREVPKQog
CiAjaW5jbHVkZSAiSVBDU2VtYXBob3JlLmgiCiAjaW5jbHVkZSAiU2hhcmVkTWVtb3J5LmgiCkBA
IC05Nyw3ICs5Nyw2IEBAIGlubGluZSBTaGFyZWRWaWRlb0ZyYW1lUmVhZGVyOjpTaGFyZWRWaWRl
b0ZyYW1lUmVhZGVyKFVzZUlPU3VyZmFjZUJ1ZmZlclBvb2wgdXNlCiB7CiB9CiAKLQogfQogCi0j
ZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NUUkVBTSkKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDNiZTUyYmI5NGM0
NDMzMmY4ZWU3OThmZTBhOWQwZGZiYjU2MDdlZjMuLjg5Mjc0MjhmYTFlZWY0YzFmZDU3ZDZjZjJj
MTJiYTZhYjUzODExOTAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAyMi0wMi0xOCAgS2ltbW8g
S2lubnVuZW4gIDxra2lubnVuZW5AYXBwbGUuY29tPgorCisgICAgICAgIFdlYkdMIEdQVVA6IENy
YXNoIHdoZW4gcnVubmluZyBmYXN0L21lZGlhc3RyZWFtL2dldFVzZXJNZWRpYS10by1jYW52YXMt
MS5odG1sCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MzY1MDIKKworICAgICAgICBVbnNraXAgdGhlIHByZXZpb3VzIGNyYXNoZXMgY2F1c2VkIGJ5IHRo
ZSBsYWNrIG9mIGltcGxlbWVudGF0aW9uLgorCisgICAgICAgIFJldmlld2VkIGJ5IEVyaWMgQ2Fy
bHNvbi4KKworICAgICAgICAqIHBsYXRmb3JtL2lvcy13azIvVGVzdEV4cGVjdGF0aW9uczoKKwog
MjAyMi0wMi0xOCAgSm9uIExlZSAgPGpvbmxlZUBhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZp
ZXdlZCBnYXJkZW5pbmcgZm9yIEdQVSBQcm9jZXNzIGJvdHMuIFVwZGF0ZSBmdXp6eSBkYXRhLgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zLXdrMi9UZXN0RXhwZWN0YXRpb25z
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zLXdrMi9UZXN0RXhwZWN0YXRpb25zCmluZGV4IGE0
YTBiZGJjYzMzM2ZhZjE4YWFmOWMwNmI2OTQ3ZGFkZjUxNzJiNmMuLmZkN2ZiNTdlMmJjY2JjMGI0
NmMwM2NmNmYyYTRkZmJiMDM5NDQwMWYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2lvcy13azIvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mt
d2syL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTIyMDksMTAgKzIyMDksNSBAQCB3ZWJraXQub3JnL2Iv
MjM0NTM2IHdlYmdsL21heC1hY3RpdmUtY29udGV4dHMtY29uc29sZS13YXJuaW5nLmh0bWwKIHdl
YmtpdC5vcmcvYi8yMzQ1MzYgd2ViZ2wvbWF4LWFjdGl2ZS1jb250ZXh0cy1nYy5odG1sCiB3ZWJr
aXQub3JnL2IvMjM0NTM2IHdlYmdsL21heC1hY3RpdmUtY29udGV4dHMtb2xkZXN0LWNvbnRleHQt
bG9zdC5odG1sCiB3ZWJraXQub3JnL2IvMjM0NTM2IHdlYnhyL2hpZ2gtcGVyZm9ybWFuY2UuaHRt
bAotd2Via2l0Lm9yZy9iLzIzNDUzNiBmYXN0L21lZGlhc3RyZWFtL2dldFVzZXJNZWRpYS10by1j
YW52YXMtMS5odG1sIFsgQ3Jhc2ggXQotd2Via2l0Lm9yZy9iLzIzNDUzNiBmYXN0L21lZGlhc3Ry
ZWFtL2dldFVzZXJNZWRpYS10by1jYW52YXMtMi5odG1sIFsgQ3Jhc2ggXQogd2Via2l0Lm9yZy9i
LzIzNDUzNiB3ZWJnbC9tYXgtYWN0aXZlLWNvbnRleHRzLXdlYmdsY29udGV4dGxvc3QtcHJldmVu
dC1kZWZhdWx0Lmh0bWwgWyBUaW1lb3V0IF0KIHdlYmtpdC5vcmcvYi8yMzQ1MzYgd2ViZ2wvMS4w
LjMvY29uZm9ybWFuY2Uvc3RhdGUvZ2wtb2JqZWN0LWdldC1jYWxscy5odG1sIFsgVGltZW91dCBd
Ci0KLSMgQ2FwdHVyZWQgV2ViR0wgdG8gYW5vdGhlciBjb250ZXh0MmQgb3IgV2ViR0wgbm90IGlt
cGxlbWVudGVkIHlldC4KLXdlYmtpdC5vcmcvYi8yMzY0OTYgZmFzdC9tZWRpYXN0cmVhbS9jYXB0
dXJlU3RyZWFtL2NhbnZhczNkLmh0bWwgWyBUaW1lb3V0IF0KXCBObyBuZXdsaW5lIGF0IGVuZCBv
ZiBmaWxlCg==
</data>
<flag name="commit-queue"
          id="479581"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>452515</attachid>
            <date>2022-02-18 06:49:17 -0800</date>
            <delta_ts>2022-02-18 10:00:54 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-236502-20220218164915.patch</filename>
            <type>text/plain</type>
            <size>64672</size>
            <attacher name="Kimmo Kinnunen">kkinnunen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkwMTIwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGI0MTEzNDNlYzE3MTYy
ODBmYzI0NDIyNmU5MDRkNjU5OTFiNTM2NC4uOTFjZDU4Y2NjMmI4NTk5NWRlOGRiZmU2MzFiYjkz
ZjFjZWVmMTI5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDIyLTAyLTE4ICBLaW1t
byBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CisKKyAgICAgICAgV2ViR0wgR1BVUDog
Q3Jhc2ggd2hlbiBydW5uaW5nIGZhc3QvbWVkaWFzdHJlYW0vZ2V0VXNlck1lZGlhLXRvLWNhbnZh
cy0xLmh0bWwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIzNjUwMgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vODg4NjI5MjE+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgRXJpYyBDYXJsc29uLgorCisgICAgICAgIEFkZCBhIHBvbHltb3JwaGljIGZ1bmN0
aW9uIGFzVmlkZW9GcmFtZUNWIHRvIGNvbnZlcnQgVmlkZW9GcmFtZSB0byBWaWRlb0ZyYW1lQ1Yu
CisgICAgICAgIFZpZGVvRnJhbWVDViBpcyB1c2VkIHRvIGRyYXcgdGhlIGluLXByb2Nlc3Mgdmlk
ZW8gZnJhbWUgdG8gaW4tcHJvY2VzcyBXZWJHTC4KKworICAgICAgICBSZW1vdGVWaWRlb0ZyYW1l
UHJveHkgd2lsbCBpbXBsZW1lbnQgYXNWaWRlb0ZyYW1lQ1YgYnkgZmV0Y2hpbmcgdGhlIGRhdGEg
ZnJvbQorICAgICAgICBHUFVQIGFuZCByZXR1cm5pbmcgYSBuZXcgb2JqZWN0IGV4cG9zaW5nIHRo
ZSBkYXRhLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cywgdGVzdGVkIGJ5IG5vdyB1bnNraXBwZWQg
dGVzdHMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9WaWRlb0ZyYW1lLmg6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvY29jb2EvR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5tbToKKyAgICAgICAg
KFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMQ29jb2E6OmNvcHlUZXh0dXJlRnJvbU1lZGlhKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jdi9WaWRlb0ZyYW1lQ1YuaDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9jdi9WaWRlb0ZyYW1lQ1YubW06CisgICAgICAgIChXZWJDb3Jl
OjpWaWRlb0ZyYW1lQ1Y6OmFzVmlkZW9GcmFtZUNWKToKKwogMjAyMi0wMi0xOCAgWmFuIERvYmVy
c2VrICA8emRvYmVyc2VrQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dUS11bV1BFXSBEb24ndCB1
c2UgQU5HTEUncyBHQk0tYmFzZWQgZGlzcGxheQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA4OWU0NzYxMmM0ZjY4ZjI0
NzUzOWQzNzBjZmEzNzc5MzFmZWRlZmU1Li42MDFmZDQwZDY3NTlmNTgwMGFkMGE1YmU3OGEwM2Uw
Mzk1ODNmZTA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDU1IEBACisyMDIyLTAyLTE4ICBLaW1tbyBL
aW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CisKKyAgICAgICAgV2ViR0wgR1BVUDogQ3Jh
c2ggd2hlbiBydW5uaW5nIGZhc3QvbWVkaWFzdHJlYW0vZ2V0VXNlck1lZGlhLXRvLWNhbnZhcy0x
Lmh0bWwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIz
NjUwMgorCisgICAgICAgIFRoZSBjcmFzaCBpcyBhYm91dCBNZWRpYVBsYXllclByaXZhdGVNZWRp
YVN0cmVhbUFWRk9iakMgYmVpbmcgaW4gV1Agd2hpbGUgb3RoZXIKKyAgICAgICAgbWVkaWEgcGxh
eWVyIHByaXZhdGUgdmFyaWFudHMgYXJlIHByb3hpZWQgdG8gR1BVUC4gVGhlIHByZXZpb3VzIGlt
cGxlbWVudGF0aW9uCisgICAgICAgIHdvdWxkIHNlbmQgbWVkaWEgcGxheWVyIGlkZW50aWZpZXJz
IHRvIEdQVVAgZm9yIGNvcHlpbmcuCisgICAgICAgIFRoaXMgcGF0Y2ggd2lsbCBpbXBsZW1lbnQg
dGhlIGNvcHkgYnkgdGhlIG1lZGlhIHBsYXllciBjcmVhdGluZyBhIHJlZmVyZW5jZQorICAgICAg
ICB0byBWaWRlb0ZyYW1lLiBXZWJHTCB3b3VsZCBzZW5kIHJlZmVyZW5jZSBvZiB0aGUgVmlkZW9G
cmFtZSB0byBHUFVQIGZvciBjb3B5aW5nLgorCisgICAgICAgIE1ha2UgV1AgTWVkaWFQbGF5ZXJQ
cml2YXRlUmVtb3RlIGFsd2F5cyByZXR1cm4gUmVtb3RlVmlkZW9GcmFtZVByb3h5IG9iamVjdHMK
KyAgICAgICAgaW5zdGVhZCBvZiBXUCBpbi1wcm9jZXNzIFZpZGVvRnJhbWUgaW5zdGFuY2VzIChm
b3IgQ29jb2EgVmlkZW9GcmFtZUNWKSB0aGF0CisgICAgICAgIHdvdWxkIGhvbGQgdGhlIHZpZGVv
IGRhdGEgaW4gcHJvY2Vzcy4KKworICAgICAgICBXUCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0
cmVhbUFWRk9iakMgYWxyZWFkeSByZXR1cm5zIFJlbW90ZVZpZGVvRnJhbWVQcm94eQorICAgICAg
ICBvYmplY3RzLiBUaGlzIHdheSBHUFVQIFdlYkdMIGltcGxlbWVudGF0aW9uIGNhbiBvYnRhaW4g
dGhlIHJlYWQgcmVmZXJlbmNlCisgICAgICAgIHRvIHRoZSByZW1vdGUgb2JqZWN0IGFuZCBzZW5k
IGl0IGluIGNvcHlUZXh0dXJlRnJvbVZpZGVvRnJhbWUgbWVzc2FnZS4KKworICAgICAgICBUaGUg
V1AgaW4tcHJvY2VzcyBXZWJHTCBpbXBsZW1lbnRhdGlvbiBjb252ZXJ0cyB0aGUgUmVtb3RlVmlk
ZW9GcmFtZVByb3h5CisgICAgICAgIHRvIFZpZGVvRnJhbWVDViB3aXRoIHRoZSBuZXcgUmVtb3Rl
VmlkZW9GcmFtZVByb3h5Ojphc1ZpZGVvRnJhbWVDVi4KKworICAgICAgICBSZXZpZXdlZCBieSBF
cmljIENhcmxzb24uCisKKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBo
aWNzQ29udGV4dEdMLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlR3JhcGhpY3NDb250ZXh0
R0w6OlJlbW90ZUdyYXBoaWNzQ29udGV4dEdMKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlR3Jh
cGhpY3NDb250ZXh0R0w6OmNvcHlUZXh0dXJlRnJvbVZpZGVvRnJhbWUpOgorICAgICAgICAqIEdQ
VVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0wuaDoKKyAgICAgICAgKiBH
UFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMLm1lc3NhZ2VzLmluOgor
ICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xDb2Nv
YS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUdyYXBoaWNzQ29udGV4dEdMOjpjb3B5VGV4
dHVyZUZyb21WaWRlb0ZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlR3JhcGhpY3NDb250
ZXh0R0w6OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUdyYXBoaWNzQ29udGV4dEdM
Q29jb2E6OlJlbW90ZUdyYXBoaWNzQ29udGV4dEdMQ29jb2EpOgorICAgICAgICAoV2ViS2l0OjpS
ZW1vdGVHcmFwaGljc0NvbnRleHRHTENvY29hOjpwbGF0Zm9ybVdvcmtRdWV1ZUluaXRpYWxpemUp
OgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVHcmFwaGljc0NvbnRleHRHTENvY29hOjpwcmVwYXJl
Rm9yRGlzcGxheSk6CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXll
ck1hbmFnZXJQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyTWFu
YWdlclByb3h5OjpjcmVhdGVNZWRpYVBsYXllcik6CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRp
YS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVk
aWFQbGF5ZXJQcm94eTo6UmVtb3RlTWVkaWFQbGF5ZXJQcm94eSk6CisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZU1lZGlhUGxheWVyUHJveHk6OnZpZGVvRnJhbWVGb3JDdXJyZW50VGltZUlmQ2hhbmdl
ZCk6CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5Lmg6
CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5Lm1lc3Nh
Z2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNz
Q29udGV4dEdMUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVHcmFwaGljc0NvbnRl
eHRHTFByb3h5Ojpjb3B5VGV4dHVyZUZyb21NZWRpYSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9H
UFUvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eS5oOgorICAgICAgICAqIFdl
YlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5jcHA6CisgICAgICAg
IChXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6dmlkZW9GcmFtZUZvckN1cnJlbnRU
aW1lKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVS
ZW1vdGUuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVWaWRlb0ZyYW1l
UHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVWaWRlb0ZyYW1lUHJveHk6OmFzVmlk
ZW9GcmFtZUNWKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVWaWRlb0Zy
YW1lUHJveHkuaDoKKwogMjAyMi0wMi0xOCAgU2FhbSBCYXJhdGkgIDxzYmFyYXRpQGFwcGxlLmNv
bT4KIAogICAgICAgICBBZGQgTENfU09VUkNFX1ZFUlNJT04gdG8gY29tcGlsZSB0YXJnZXRzCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9WaWRlb0ZyYW1lLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9WaWRlb0ZyYW1lLmgKaW5kZXggYjU1NDU2ZmY5NGFiYjcxMWQzMjZm
MmQ2ZDA5OTlkNmJkNWM2MGE2ZC4uNjQxMWRmN2Q2NDBjY2RlZDFkMWUzZTExZmQxYTQyOGEyOTFi
MzFlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVmlkZW9GcmFtZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1ZpZGVvRnJhbWUuaApAQCAtMzEsNiArMzEsMTEg
QEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCisjaWYgVVNFKEFWRk9VTkRBVElPTikKK2NsYXNz
IFZpZGVvRnJhbWVDVjsKKyNlbmRpZgorCisKIC8vIEEgY2xhc3MgcmVwcmVzZW50aW5nIGEgdmlk
ZW8gZnJhbWUgZnJvbSBhIGRlY29kZXIsIGNhcHR1cmUgc291cmNlLCBvciBzaW1pbGFyLgogLy8g
RklYTUU6IEN1cnJlbnRseSBmb3IgaW1wbGVtZW50YXRpb24gcHVycG9zZXMgaW5oZXJ0cyBmcm9t
IE1lZGlhU2FtcGxlIHVudGlsIGNhcHR1cmUgY29kZQogLy8gc3RvcHMgcmVmZXJyaW5nIHRvIE1l
ZGlhU2FtcGxlCkBAIC00OSw2ICs1NCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgaXNS
ZW1vdGVQcm94eSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAjaWYgVVNFKEFWRk9VTkRBVElP
TikKICAgICB2aXJ0dWFsIGJvb2wgaXNDVigpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CisgICAg
dmlydHVhbCBSZWZQdHI8V2ViQ29yZTo6VmlkZW9GcmFtZUNWPiBhc1ZpZGVvRnJhbWVDVigpID0g
MDsKICNlbmRpZgogCiBwcm90ZWN0ZWQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9jb2NvYS9TaGFyZWRWaWRlb0ZyYW1lSW5mby5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vY29jb2EvU2hhcmVkVmlkZW9GcmFtZUluZm8uaAppbmRleCA0ZWU4YTk2ZDJlM2EyMmJmZmM1
MmYzNjkwZDkyYmZlOGYxODI4ZDc0Li5iZTNmZGI3OTc4MDNhMTQwZWIwMmM0NjlkMzM2MjRiNDhi
NjI3NTAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9TaGFyZWRW
aWRlb0ZyYW1lSW5mby5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1NoYXJl
ZFZpZGVvRnJhbWVJbmZvLmgKQEAgLTI1LDcgKzI1LDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKLSNp
ZiBFTkFCTEUoTUVESUFfU1RSRUFNKSAmJiBQTEFURk9STShDT0NPQSkKKyNpZiBFTkFCTEUoVklE
RU8pICYmIFBMQVRGT1JNKENPQ09BKQogCiAjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgogI2lu
Y2x1ZGUgPHd0Zi9TcGFuLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9j
b2NvYS9TaGFyZWRWaWRlb0ZyYW1lSW5mby5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nv
Y29hL1NoYXJlZFZpZGVvRnJhbWVJbmZvLm1tCmluZGV4IDYxZWYyY2ViYzc5ZTc3NGY4OTcxNTZh
OWY3MWJiNTZlNDRjNDY2ZjYuLjA4YzZjY2Q4ODUzNzFmYWYxZDExOGUzOWRhMjNhZTMyZDg0NTli
ZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1NoYXJlZFZpZGVv
RnJhbWVJbmZvLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1NoYXJlZFZp
ZGVvRnJhbWVJbmZvLm1tCkBAIC0yNiw3ICsyNiw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAj
aW5jbHVkZSAiU2hhcmVkVmlkZW9GcmFtZUluZm8uaCIKIAotI2lmIEVOQUJMRShNRURJQV9TVFJF
QU0pICYmIFBMQVRGT1JNKENPQ09BKQorI2lmIEVOQUJMRShWSURFTykgJiYgUExBVEZPUk0oQ09D
T0EpCiAKICNpbmNsdWRlICJDVlV0aWxpdGllcy5oIgogI2luY2x1ZGUgIklPU3VyZmFjZS5oIgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR3JhcGhp
Y3NDb250ZXh0R0xDb2NvYS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nv
Y29hL0dyYXBoaWNzQ29udGV4dEdMQ29jb2EubW0KaW5kZXggYTBiZmNmMjcyOTUxNmUyNGU2Yzk5
YjIwYTY0NTIzYzdjZTg5ZGM3ZC4uMzViOTFmYjNkZDY3YTczMjg5N2NjNTQ2NzIyYzNmZjUwYTlk
MDk2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2Ev
R3JhcGhpY3NDb250ZXh0R0xDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jb2NvYS9HcmFwaGljc0NvbnRleHRHTENvY29hLm1tCkBAIC0zOCw3ICszOCw2IEBA
CiAjaW1wb3J0ICJQaXhlbEJ1ZmZlci5oIgogI2ltcG9ydCAiUHJvY2Vzc0lkZW50aXR5LmgiCiAj
aW1wb3J0ICJSdW50aW1lQXBwbGljYXRpb25DaGVja3MuaCIKLSNpbXBvcnQgIlZpZGVvRnJhbWVD
Vi5oIgogI2ltcG9ydCA8Q29yZUdyYXBoaWNzL0NHQml0bWFwQ29udGV4dC5oPgogI2ltcG9ydCA8
TWV0YWwvTWV0YWwuaD4KICNpbXBvcnQgPHBhbC9zcGkvY29jb2EvTWV0YWxTUEkuaD4KQEAgLTUw
LDEzICs0OSwxNCBAQAogI2VuZGlmCiAKICNpZiBFTkFCTEUoVklERU8pCi0jaW5jbHVkZSAiR3Jh
cGhpY3NDb250ZXh0R0xDVkNvY29hLmgiCi0jaW5jbHVkZSAiTWVkaWFQbGF5ZXJQcml2YXRlLmgi
CisjaW1wb3J0ICJHcmFwaGljc0NvbnRleHRHTENWQ29jb2EuaCIKKyNpbXBvcnQgIk1lZGlhUGxh
eWVyUHJpdmF0ZS5oIgorI2ltcG9ydCAiVmlkZW9GcmFtZUNWLmgiCiAjZW5kaWYKIAogI2lmIEVO
QUJMRShNRURJQV9TVFJFQU0pCi0jaW5jbHVkZSAiSW1hZ2VSb3RhdGlvblNlc3Npb25WVC5oIgot
I2luY2x1ZGUgIk1lZGlhU2FtcGxlQVZGT2JqQy5oIgorI2ltcG9ydCAiSW1hZ2VSb3RhdGlvblNl
c3Npb25WVC5oIgorI2ltcG9ydCAiTWVkaWFTYW1wbGVBVkZPYmpDLmgiCiAjZW5kaWYKIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewpAQCAtNzgzLDE1ICs3ODMsMTYgQEAgYm9vbCBHcmFwaGljc0NvbnRl
eHRHTENvY29hOjpjb3B5VGV4dHVyZUZyb21NZWRpYShNZWRpYVBsYXllciYgcGxheWVyLCBQbGF0
Zm9ybUcKICAgICBhdXRvIHZpZGVvRnJhbWUgPSBwbGF5ZXIudmlkZW9GcmFtZUZvckN1cnJlbnRU
aW1lKCk7CiAgICAgaWYgKCF2aWRlb0ZyYW1lKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAg
QVNTRVJUKGlzPFZpZGVvRnJhbWVDVj4oKnZpZGVvRnJhbWUpKTsKLQorICAgIGF1dG8gdmlkZW9G
cmFtZUNWID0gdmlkZW9GcmFtZS0+YXNWaWRlb0ZyYW1lQ1YoKTsKKyAgICBpZiAoIXZpZGVvRnJh
bWVDVikKKyAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIGF1dG8gY29udGV4dENWID0gYXNDVigp
OwogICAgIGlmICghY29udGV4dENWKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBVTlVT
RURfVkFSSUFCTEUocHJlbXVsdGlwbHlBbHBoYSk7CiAgICAgQVNTRVJUX1VOVVNFRChvdXRwdXRU
YXJnZXQsIG91dHB1dFRhcmdldCA9PSBHcmFwaGljc0NvbnRleHRHTDo6VEVYVFVSRV8yRCk7Ci0g
ICAgcmV0dXJuIGNvbnRleHRDVi0+Y29weVZpZGVvU2FtcGxlVG9UZXh0dXJlKGRvd25jYXN0PFZp
ZGVvRnJhbWVDVj4oKnZpZGVvRnJhbWUpLCBvdXRwdXRUZXh0dXJlLCBsZXZlbCwgaW50ZXJuYWxG
b3JtYXQsIGZvcm1hdCwgdHlwZSwgR3JhcGhpY3NDb250ZXh0R0w6OkZsaXBZKGZsaXBZKSk7Cisg
ICAgcmV0dXJuIGNvbnRleHRDVi0+Y29weVZpZGVvU2FtcGxlVG9UZXh0dXJlKCp2aWRlb0ZyYW1l
Q1YsIG91dHB1dFRleHR1cmUsIGxldmVsLCBpbnRlcm5hbEZvcm1hdCwgZm9ybWF0LCB0eXBlLCBH
cmFwaGljc0NvbnRleHRHTDo6RmxpcFkoZmxpcFkpKTsKIH0KICNlbmRpZgogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9DVlV0aWxpdGllcy5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvQ1ZVdGlsaXRpZXMuaAppbmRleCA5N2Rh
MmM3YTc2MmVkMWY4NTEyYjM2MTNjNzRmMjZlNzI0MTZjYTI4Li5hMTU5NGViZGU0OTUwNGNiODQw
M2ZkZDhhZTZkZDYyNTc3ZDdhMTJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jdi9DVlV0aWxpdGllcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2N2L0NWVXRpbGl0aWVzLmgKQEAgLTU0LDQgKzU0LDYgQEAgUmV0YWluUHRyPENH
Q29sb3JTcGFjZVJlZj4gY3JlYXRlQ0dDb2xvclNwYWNlRm9yQ1ZQaXhlbEJ1ZmZlcihDVlBpeGVs
QnVmZmVyUmVmKTsKIC8vIFNob3VsZCBiZSBjYWxsZWQgd2l0aCBub24tZW1wdHkgUHJvY2Vzc0lk
ZW50aXR5LgogV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRPd25lcnNoaXBJZGVudGl0eUZvckNWUGl4
ZWxCdWZmZXIoQ1ZQaXhlbEJ1ZmZlclJlZiwgY29uc3QgUHJvY2Vzc0lkZW50aXR5Jik7CiAKK1dF
QkNPUkVfRVhQT1JUIFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiBjcmVhdGVCbGFja1BpeGVs
QnVmZmVyKHNpemVfdCB3aWR0aCwgc2l6ZV90IGhlaWdodCk7CisKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L0NWVXRpbGl0aWVzLm1tIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvQ1ZVdGlsaXRpZXMubW0KaW5kZXggZTEwYTI1
NTNiZWJlZGMwY2I4Mjk3ZjMzNzZmYWZkMDZlNmNiYTNlOS4uZDA4NTBiYWYzMjExYTJiNWRmZWZl
YzhlMjU4NWE2NmFhNGRjZGY1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY3YvQ1ZVdGlsaXRpZXMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY3YvQ1ZVdGlsaXRpZXMubW0KQEAgLTI4LDYgKzI4LDcgQEAKIAogI2ltcG9ydCAi
Q29sb3JTcGFjZUNHLmgiCiAjaW1wb3J0ICJJT1N1cmZhY2UuaCIKKyNpbXBvcnQgIlJlYWx0aW1l
VmlkZW9VdGlsaXRpZXMuaCIKICNpbXBvcnQgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KICNpbXBvcnQg
PHd0Zi9jZi9UeXBlQ2FzdHNDRi5oPgogI2ltcG9ydCAiQ29yZVZpZGVvU29mdExpbmsuaCIKQEAg
LTE2Miw0ICsxNjMsMzEgQEAgdm9pZCBzZXRPd25lcnNoaXBJZGVudGl0eUZvckNWUGl4ZWxCdWZm
ZXIoQ1ZQaXhlbEJ1ZmZlclJlZiBwaXhlbEJ1ZmZlciwgY29uc3QgUHIKICAgICBJT1N1cmZhY2U6
OnNldE93bmVyc2hpcElkZW50aXR5KHN1cmZhY2UsIG93bmVyKTsKIH0KIAorUmV0YWluUHRyPENW
UGl4ZWxCdWZmZXJSZWY+IGNyZWF0ZUJsYWNrUGl4ZWxCdWZmZXIoc2l6ZV90IHdpZHRoLCBzaXpl
X3QgaGVpZ2h0KQoreworICAgIE9TVHlwZSBmb3JtYXQgPSBwcmVmZXJlZFBpeGVsQnVmZmVyRm9y
bWF0KCk7CisgICAgQVNTRVJUKGZvcm1hdCA9PSBrQ1ZQaXhlbEZvcm1hdFR5cGVfNDIwWXBDYkNy
OEJpUGxhbmFyVmlkZW9SYW5nZSB8fCBmb3JtYXQgPT0ga0NWUGl4ZWxGb3JtYXRUeXBlXzQyMFlw
Q2JDcjhCaVBsYW5hckZ1bGxSYW5nZSk7CisKKyAgICBDVlBpeGVsQnVmZmVyUmVmIHBpeGVsQnVm
ZmVyID0gbnVsbHB0cjsKKyAgICBhdXRvIHN0YXR1cyA9IENWUGl4ZWxCdWZmZXJDcmVhdGUoa0NG
QWxsb2NhdG9yRGVmYXVsdCwgd2lkdGgsIGhlaWdodCwgZm9ybWF0LCBudWxscHRyLCAmcGl4ZWxC
dWZmZXIpOworICAgIEFTU0VSVF9VTlVTRUQoc3RhdHVzLCBzdGF0dXMgPT0gbm9FcnIpOworCisg
ICAgc3RhdHVzID0gQ1ZQaXhlbEJ1ZmZlckxvY2tCYXNlQWRkcmVzcyhwaXhlbEJ1ZmZlciwgMCk7
CisgICAgQVNTRVJUKHN0YXR1cyA9PSBub0Vycik7CisKKyAgICBhdXRvKiB5UGxhbmUgPSBzdGF0
aWNfY2FzdDx1aW50OF90Kj4oQ1ZQaXhlbEJ1ZmZlckdldEJhc2VBZGRyZXNzT2ZQbGFuZShwaXhl
bEJ1ZmZlciwgMCkpOworICAgIHNpemVfdCB5U3RyaWRlID0gQ1ZQaXhlbEJ1ZmZlckdldEJ5dGVz
UGVyUm93T2ZQbGFuZShwaXhlbEJ1ZmZlciwgMCk7CisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsg
aSA8IGhlaWdodDsgKytpKQorICAgICAgICBtZW1zZXQoJnlQbGFuZVtpICogeVN0cmlkZV0sIDAs
IHdpZHRoKTsKKworICAgIGF1dG8qIHV2UGxhbmUgPSBzdGF0aWNfY2FzdDx1aW50OF90Kj4oQ1ZQ
aXhlbEJ1ZmZlckdldEJhc2VBZGRyZXNzT2ZQbGFuZShwaXhlbEJ1ZmZlciwgMSkpOworICAgIHNp
emVfdCB1dlN0cmlkZSA9IENWUGl4ZWxCdWZmZXJHZXRCeXRlc1BlclJvd09mUGxhbmUocGl4ZWxC
dWZmZXIsIDEpOworICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBoZWlnaHQgLyAyOyArK2kp
CisgICAgICAgIG1lbXNldCgmdXZQbGFuZVtpICogdXZTdHJpZGVdLCAxMjgsIHdpZHRoKTsKKwor
ICAgIHN0YXR1cyA9IENWUGl4ZWxCdWZmZXJVbmxvY2tCYXNlQWRkcmVzcyhwaXhlbEJ1ZmZlciwg
MCk7CisgICAgQVNTRVJUKCFzdGF0dXMpOworICAgIHJldHVybiBhZG9wdENGKHBpeGVsQnVmZmVy
KTsKK30KKwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y3YvVmlkZW9GcmFtZUNWLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9W
aWRlb0ZyYW1lQ1YuaAppbmRleCA4MzFjODgwMmNjOGM4MzM5MzQ0ZmIwZDc0ZTFkYjNmZDNiZGRm
N2RhLi4xNGViNWI1NTJmY2NjNTMzNzYzZmM3NGM3ZTkzZGVjNmYyMzIxY2IzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9WaWRlb0ZyYW1lQ1YuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9WaWRlb0ZyYW1lQ1YuaApAQCAt
NDcsOSArNDcsMTAgQEAgcHVibGljOgogICAgIHRlbXBsYXRlPHR5cGVuYW1lIERlY29kZXI+IHN0
YXRpYyBzdGQ6Om9wdGlvbmFsPFJlZlB0cjxWaWRlb0ZyYW1lQ1Y+PiBkZWNvZGUoRGVjb2RlciYp
OwogCiAgICAgLy8gVmlkZW9GcmFtZSBvdmVycmlkZXMuCi0gICAgV2ViQ29yZTo6RmxvYXRTaXpl
IHByZXNlbnRhdGlvblNpemUoKSBjb25zdCBmaW5hbDsKLSAgICB1aW50MzJfdCB2aWRlb1BpeGVs
Rm9ybWF0KCkgY29uc3QgZmluYWw7CisgICAgV0VCQ09SRV9FWFBPUlQgV2ViQ29yZTo6RmxvYXRT
aXplIHByZXNlbnRhdGlvblNpemUoKSBjb25zdCBmaW5hbDsKKyAgICBXRUJDT1JFX0VYUE9SVCB1
aW50MzJfdCB2aWRlb1BpeGVsRm9ybWF0KCkgY29uc3QgZmluYWw7CiAgICAgYm9vbCBpc0NWKCkg
Y29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQorICAgIFdFQkNPUkVfRVhQT1JUIFJlZlB0cjxX
ZWJDb3JlOjpWaWRlb0ZyYW1lQ1Y+IGFzVmlkZW9GcmFtZUNWKCkgZmluYWw7CiAKIHByaXZhdGU6
CiAgICAgV0VCQ09SRV9FWFBPUlQgVmlkZW9GcmFtZUNWKE1lZGlhVGltZSBwcmVzZW50YXRpb25U
aW1lLCBib29sIGlzTWlycm9yZWQsIFZpZGVvUm90YXRpb24sIFJldGFpblB0cjxDVlBpeGVsQnVm
ZmVyUmVmPiYmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2N2L1ZpZGVvRnJhbWVDVi5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2
L1ZpZGVvRnJhbWVDVi5tbQppbmRleCBhNWE2ZDA4MmJiZTQyYzMxNzNhYmMxZmE4ODEyZTQ0MWNh
YzZmNmU1Li5kMzljOTBlMGM3OTBhNTc1MTEzN2IwNWE2ZmQ2MDExMTJkNmE5ODFhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9WaWRlb0ZyYW1lQ1YubW0K
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvVmlkZW9GcmFtZUNWLm1t
CkBAIC01NCw2ICs1NCwxMSBAQCB1aW50MzJfdCBWaWRlb0ZyYW1lQ1Y6OnZpZGVvUGl4ZWxGb3Jt
YXQoKSBjb25zdAogewogICAgIHJldHVybiBDVlBpeGVsQnVmZmVyR2V0UGl4ZWxGb3JtYXRUeXBl
KG1fcGl4ZWxCdWZmZXIuZ2V0KCkpOwogfQorUmVmUHRyPFdlYkNvcmU6OlZpZGVvRnJhbWVDVj4g
VmlkZW9GcmFtZUNWOjphc1ZpZGVvRnJhbWVDVigpCit7CisgICAgcmV0dXJuIHRoaXM7Cit9CisK
IAogSW1hZ2VPcmllbnRhdGlvbiBWaWRlb0ZyYW1lQ1Y6Om9yaWVudGF0aW9uKCkgY29uc3QKIHsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvTWVkaWFS
ZWNvcmRlclByaXZhdGVBVkZJbXBsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
cmVjb3JkZXIvTWVkaWFSZWNvcmRlclByaXZhdGVBVkZJbXBsLmNwcAppbmRleCAzM2RiMTJmYWFj
N2Y2MjZmNzA1MzgxODEwODhhZmE2NDU3YzBhNDA5Li42OWNkYzhhNjA0YTdlNDU2ZDA1NWUxYjcz
YWNhMWEwOTk5M2YwYTZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1wbC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyUHJpdmF0ZUFWRkltcGwu
Y3BwCkBAIC0zMCw2ICszMCw3IEBACiAKICNpbmNsdWRlICJBdWRpb1N0cmVhbURlc2NyaXB0aW9u
LmgiCiAjaW5jbHVkZSAiQ0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uLmgiCisjaW5jbHVkZSAiQ1ZV
dGlsaXRpZXMuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiTWVkaWFSZWNvcmRl
clByaXZhdGVXcml0ZXJDb2NvYS5oIgogI2luY2x1ZGUgIk1lZGlhU2FtcGxlQVZGT2JqQy5oIgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0
aW1lSW5jb21pbmdWaWRlb1NvdXJjZUNvY29hLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlQ29jb2EuaAppbmRleCA2
NDY2ZDYxOGRlNzQ5ZTVjNWY5MjYxZDI1MmRkOWIwYzE5ZTFhNTc1Li42MDMzOGVhMDczN2RiNjE2
OGZjNjEwYjFjNDIwNWMzYWFhNjlhYmU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlQ29jb2EuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVJbmNv
bWluZ1ZpZGVvU291cmNlQ29jb2EuaApAQCAtNjgsOCArNjgsNiBAQCBwcml2YXRlOgogICAgIHdl
YnJ0Yzo6QnVmZmVyVHlwZSBtX3BpeGVsQnVmZmVyUG9vbEJ1ZmZlclR5cGU7CiB9OwogCi1XRUJD
T1JFX0VYUE9SVCBSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4gY3JlYXRlQmxhY2tQaXhlbEJ1
ZmZlcihzaXplX3Qgd2lkdGgsIHNpemVfdCBoZWlnaHQpOwotCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCiAKICNlbmRpZiAvLyBVU0UoTElCV0VCUlRDKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZUNv
Y29hLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1l
SW5jb21pbmdWaWRlb1NvdXJjZUNvY29hLm1tCmluZGV4IDdhMzUyNmEzOTM1NGRkNjk5YWNkN2U2
MWE4NjU4MmJmMDY3MWE1NGEuLmNmMDM4NGI5OWRiNGM5Y2Q4OWFkYWFiYzRhNTRmNWNjNjIzMTA4
ZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9S
ZWFsdGltZUluY29taW5nVmlkZW9Tb3VyY2VDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlQ29jb2Eu
bW0KQEAgLTMzLDcgKzMzLDYgQEAKICNpbXBvcnQgIkNWVXRpbGl0aWVzLmgiCiAjaW1wb3J0ICJM
b2dnaW5nLmgiCiAjaW1wb3J0ICJNZWRpYVNhbXBsZUFWRk9iakMuaCIKLSNpbXBvcnQgIlJlYWx0
aW1lVmlkZW9VdGlsaXRpZXMuaCIKICNpbXBvcnQgPHd0Zi9jZi9UeXBlQ2FzdHNDRi5oPgogCiBB
TExPV19VTlVTRURfUEFSQU1FVEVSU19CRUdJTgpAQCAtNjIsMzMgKzYxLDYgQEAgUmVhbHRpbWVJ
bmNvbWluZ1ZpZGVvU291cmNlQ29jb2E6OlJlYWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZUNvY29h
KHJ0Yzo6c2NvcGVkX3IKIHsKIH0KIAotUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+IGNyZWF0
ZUJsYWNrUGl4ZWxCdWZmZXIoc2l6ZV90IHdpZHRoLCBzaXplX3QgaGVpZ2h0KQotewotICAgIE9T
VHlwZSBmb3JtYXQgPSBwcmVmZXJlZFBpeGVsQnVmZmVyRm9ybWF0KCk7Ci0gICAgQVNTRVJUKGZv
cm1hdCA9PSBrQ1ZQaXhlbEZvcm1hdFR5cGVfNDIwWXBDYkNyOEJpUGxhbmFyVmlkZW9SYW5nZSB8
fCBmb3JtYXQgPT0ga0NWUGl4ZWxGb3JtYXRUeXBlXzQyMFlwQ2JDcjhCaVBsYW5hckZ1bGxSYW5n
ZSk7Ci0KLSAgICBDVlBpeGVsQnVmZmVyUmVmIHBpeGVsQnVmZmVyID0gbnVsbHB0cjsKLSAgICBh
dXRvIHN0YXR1cyA9IENWUGl4ZWxCdWZmZXJDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgd2lk
dGgsIGhlaWdodCwgZm9ybWF0LCBudWxscHRyLCAmcGl4ZWxCdWZmZXIpOwotICAgIEFTU0VSVF9V
TlVTRUQoc3RhdHVzLCBzdGF0dXMgPT0gbm9FcnIpOwotCi0gICAgc3RhdHVzID0gQ1ZQaXhlbEJ1
ZmZlckxvY2tCYXNlQWRkcmVzcyhwaXhlbEJ1ZmZlciwgMCk7Ci0gICAgQVNTRVJUKHN0YXR1cyA9
PSBub0Vycik7Ci0KLSAgICBhdXRvKiB5UGxhbmUgPSBzdGF0aWNfY2FzdDx1aW50OF90Kj4oQ1ZQ
aXhlbEJ1ZmZlckdldEJhc2VBZGRyZXNzT2ZQbGFuZShwaXhlbEJ1ZmZlciwgMCkpOwotICAgIHNp
emVfdCB5U3RyaWRlID0gQ1ZQaXhlbEJ1ZmZlckdldEJ5dGVzUGVyUm93T2ZQbGFuZShwaXhlbEJ1
ZmZlciwgMCk7Ci0gICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGhlaWdodDsgKytpKQotICAg
ICAgICBtZW1zZXQoJnlQbGFuZVtpICogeVN0cmlkZV0sIDAsIHdpZHRoKTsKLQotICAgIGF1dG8q
IHV2UGxhbmUgPSBzdGF0aWNfY2FzdDx1aW50OF90Kj4oQ1ZQaXhlbEJ1ZmZlckdldEJhc2VBZGRy
ZXNzT2ZQbGFuZShwaXhlbEJ1ZmZlciwgMSkpOwotICAgIHNpemVfdCB1dlN0cmlkZSA9IENWUGl4
ZWxCdWZmZXJHZXRCeXRlc1BlclJvd09mUGxhbmUocGl4ZWxCdWZmZXIsIDEpOwotICAgIGZvciAo
dW5zaWduZWQgaSA9IDA7IGkgPCBoZWlnaHQgLyAyOyArK2kpCi0gICAgICAgIG1lbXNldCgmdXZQ
bGFuZVtpICogdXZTdHJpZGVdLCAxMjgsIHdpZHRoKTsKLQotICAgIHN0YXR1cyA9IENWUGl4ZWxC
dWZmZXJVbmxvY2tCYXNlQWRkcmVzcyhwaXhlbEJ1ZmZlciwgMCk7Ci0gICAgQVNTRVJUKCFzdGF0
dXMpOwotICAgIHJldHVybiBhZG9wdENGKHBpeGVsQnVmZmVyKTsKLX0KLQogQ1ZQaXhlbEJ1ZmZl
clBvb2xSZWYgUmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlQ29jb2E6OnBpeGVsQnVmZmVyUG9v
bChzaXplX3Qgd2lkdGgsIHNpemVfdCBoZWlnaHQsIHdlYnJ0Yzo6QnVmZmVyVHlwZSBidWZmZXJU
eXBlKQogewogICAgIGlmICghbV9waXhlbEJ1ZmZlclBvb2wgfHwgbV9waXhlbEJ1ZmZlclBvb2xX
aWR0aCAhPSB3aWR0aCB8fCBtX3BpeGVsQnVmZmVyUG9vbEhlaWdodCAhPSBoZWlnaHQgfHwgbV9w
aXhlbEJ1ZmZlclBvb2xCdWZmZXJUeXBlICE9IGJ1ZmZlclR5cGUpIHsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZU91dGdvaW5nVmlk
ZW9Tb3VyY2VDb2NvYS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9t
YWMvUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlQ29jb2EuY3BwCmluZGV4IGEzNzU5NWViMzY5
MzA4YzU2Nzg2NmY3ODgzNDE2ZTNjOGRlZmZhNTkuLjY5NTIwNWY1MGY5MjMyYTQyYmNhNTAwYjI0
NGM4OThmYmE2NzcxNzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL21hYy9SZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2VDb2NvYS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lT3V0Z29pbmdWaWRl
b1NvdXJjZUNvY29hLmNwcApAQCAtMjgsNiArMjgsNyBAQAogCiAjaWYgVVNFKExJQldFQlJUQykK
IAorI2luY2x1ZGUgIkNWVXRpbGl0aWVzLmgiCiAjaW5jbHVkZSAiSW1hZ2VSb3RhdGlvblNlc3Np
b25WVC5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJSZWFsdGltZUluY29taW5n
VmlkZW9Tb3VyY2VDb2NvYS5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCmluZGV4IGRlMjNjNDQ0Y2MwNmU4M2RjOGJk
NTJlMGI4YTRhNzRmN2ZlMTgyNGYuLjIyMzkzNGI4YzFmZDM4OGQzMjQ1MTZjZGFmODQzZGZkNmI0
ZWQ3MzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9u
VG9XZWJQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVj
dGlvblRvV2ViUHJvY2Vzcy5jcHAKQEAgLTE0MSw3ICsxNDEsNiBAQAogI2VuZGlmCiAKICNpZiBF
TkFCTEUoTUVESUFfU1RSRUFNKQotI2luY2x1ZGUgIlJlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFw
LmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9TZWN1cml0eU9yaWdpbi5oPgogI2VuZGlmCiAKQEAgLTE1
NCw2ICsxNTMsMTAgQEAKICNpbmNsdWRlICJJUENUZXN0ZXJNZXNzYWdlcy5oIgogI2VuZGlmCiAK
KyNpZiBFTkFCTEUoVklERU8pCisjaW5jbHVkZSAiUmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXAu
aCIKKyNlbmRpZgorCiBuYW1lc3BhY2UgV2ViS2l0IHsKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3Jl
OwogCkBAIC0yNDQsNyArMjQ3LDcgQEAgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6R1BVQ29u
bmVjdGlvblRvV2ViUHJvY2VzcyhHUFVQcm9jZXNzJiBncHVQcm9jZXNzLCBXZWIKICNpZiBFTkFC
TEUoTUVESUFfU1RSRUFNKQogICAgICwgbV9jYXB0dXJlT3JpZ2luKFNlY3VyaXR5T3JpZ2luOjpj
cmVhdGVVbmlxdWUoKSkKICNlbmRpZgotI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisjaWYgRU5B
QkxFKFZJREVPKQogICAgICwgbV92aWRlb0ZyYW1lT2JqZWN0SGVhcChSZW1vdGVWaWRlb0ZyYW1l
T2JqZWN0SGVhcDo6Y3JlYXRlKCp0aGlzKSkKICNlbmRpZgogI2lmIFBMQVRGT1JNKENPQ09BKSAm
JiBVU0UoTElCV0VCUlRDKQpAQCAtMzA1LDcgKzMwOCw3IEBAIHZvaWQgR1BVQ29ubmVjdGlvblRv
V2ViUHJvY2Vzczo6ZGlkQ2xvc2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uKQogICAgICAg
ICBtX2F1ZGlvU2Vzc2lvblByb3h5ID0gbnVsbHB0cjsKICAgICB9CiAjZW5kaWYKLSNpZiBFTkFC
TEUoTUVESUFfU1RSRUFNKQorI2lmIEVOQUJMRShWSURFTykKICAgICBtX3ZpZGVvRnJhbWVPYmpl
Y3RIZWFwLnJlc2V0KCk7CiAjZW5kaWYKICAgICAvLyBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kIG9i
amVjdHMgcmVmIHRoZWlyIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mgc28gd2UgbmVlZCB0byBt
YWtlIHN1cmUKQEAgLTk0OCwxMyArOTUxLDE0IEBAIGJvb2wgR1BVQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzczo6c2V0Q2FwdHVyZUF0dHJpYnV0aW9uU3RyaW5nKCkgY29uc3QKIHsKIH0KICNlbmRpZgor
I2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJFQU0pCiAKKyNpZiBFTkFCTEUoVklERU8pCiBSZW1v
dGVWaWRlb0ZyYW1lT2JqZWN0SGVhcCYgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6dmlkZW9G
cmFtZU9iamVjdEhlYXAoKSBjb25zdAogewogICAgIHJldHVybiAqbV92aWRlb0ZyYW1lT2JqZWN0
SGVhcC5nZXQoKTsKIH0KLQotI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJFQU0pCisjZW5kaWYK
IAogI2lmIFBMQVRGT1JNKE1BQykKIHZvaWQgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6ZGlz
cGxheUNvbmZpZ3VyYXRpb25DaGFuZ2VkKENHRGlyZWN0RGlzcGxheUlELCBDR0Rpc3BsYXlDaGFu
Z2VTdW1tYXJ5RmxhZ3MgZmxhZ3MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaAppbmRleCA4YjRkOWI1NDI5OGI0ODlkNjBkYzA1
Mzg0ODM5MTA4NzQ2ZTFhMGMyLi41MjVkZGE3YWZiMDllOWEzMWRmNDdkMzRlNTY5NTExNTY2ZGMx
MDQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRv
V2ViUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9u
VG9XZWJQcm9jZXNzLmgKQEAgLTEwNiw3ICsxMDYsNyBAQCBzdHJ1Y3QgUmVtb3RlUmVuZGVyaW5n
QmFja2VuZENyZWF0aW9uUGFyYW1ldGVyczsKIGNsYXNzIFJlbW90ZVdDTGF5ZXJUcmVlSG9zdDsK
ICNlbmRpZgogCi0jaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyNpZiBFTkFCTEUoVklERU8pCiBj
bGFzcyBSZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcDsKICNlbmRpZgogCkBAIC0xNDUsOSArMTQ1
LDEwIEBAIHB1YmxpYzoKICAgICBib29sIGFsbG93c0F1ZGlvQ2FwdHVyZSgpIGNvbnN0IHsgcmV0
dXJuIG1fYWxsb3dzQXVkaW9DYXB0dXJlOyB9CiAgICAgYm9vbCBhbGxvd3NWaWRlb0NhcHR1cmUo
KSBjb25zdCB7IHJldHVybiBtX2FsbG93c1ZpZGVvQ2FwdHVyZTsgfQogICAgIGJvb2wgYWxsb3dz
RGlzcGxheUNhcHR1cmUoKSBjb25zdCB7IHJldHVybiBtX2FsbG93c0Rpc3BsYXlDYXB0dXJlOyB9
CisjZW5kaWYKKyNpZiBFTkFCTEUoVklERU8pCiAgICAgUmVtb3RlVmlkZW9GcmFtZU9iamVjdEhl
YXAmIHZpZGVvRnJhbWVPYmplY3RIZWFwKCkgY29uc3Q7CiAjZW5kaWYKLQogI2lmIFBMQVRGT1JN
KENPQ09BKSAmJiBFTkFCTEUoTUVESUFfU1RSRUFNKQogICAgIHZvaWQgc3RhcnRDYXB0dXJpbmdB
dWRpbygpOwogICAgIHZvaWQgcHJvY2Vzc0lzU3RhcnRpbmdUb0NhcHR1cmVBdWRpbyhHUFVDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzJik7CkBAIC0zMDcsNiArMzA4LDggQEAgcHJpdmF0ZToKICAgICBi
b29sIG1fYWxsb3dzQXVkaW9DYXB0dXJlIHsgZmFsc2UgfTsKICAgICBib29sIG1fYWxsb3dzVmlk
ZW9DYXB0dXJlIHsgZmFsc2UgfTsKICAgICBib29sIG1fYWxsb3dzRGlzcGxheUNhcHR1cmUgeyBm
YWxzZSB9OworI2VuZGlmCisjaWYgRU5BQkxFKFZJREVPKQogICAgIElQQzo6U2NvcGVkQWN0aXZl
TWVzc2FnZVJlY2VpdmVRdWV1ZTxSZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcD4gbV92aWRlb0Zy
YW1lT2JqZWN0SGVhcDsKICNlbmRpZgogI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBVU0UoTElCV0VC
UlRDKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90
ZUdyYXBoaWNzQ29udGV4dEdMLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGlj
cy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTC5jcHAKaW5kZXggNGE2N2M1ZDE2ZTVhMGZmOWY5ODdm
ZDI0M2EyZGI5NThkM2RlMmE4YS4uZDNjYzI5ZmJjZGNhYjZiNDBiNTA4ZTQxZjQ1NmM0NmFlYzc0
MjEyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90
ZUdyYXBoaWNzQ29udGV4dEdMLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3Jh
cGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0wuY3BwCkBAIC0zOCwxMSArMzgsNyBAQAogI2lu
Y2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CiAjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+
CiAKLSNpZiBVU0UoQVZGT1VOREFUSU9OKQotI2luY2x1ZGUgPFdlYkNvcmUvR3JhcGhpY3NDb250
ZXh0R0xDVi5oPgotI2VuZGlmCi0KLSNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorI2lmIEVOQUJM
RShWSURFTykKICNpbmNsdWRlICJSZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcC5oIgogI2VuZGlm
CiAKQEAgLTcyLDcgKzY4LDcgQEAgUmVtb3RlR3JhcGhpY3NDb250ZXh0R0w6OlJlbW90ZUdyYXBo
aWNzQ29udGV4dEdMKEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmIGdwdUMKICAgICAsIG1fc3Ry
ZWFtQ29ubmVjdGlvbihJUEM6OlN0cmVhbVNlcnZlckNvbm5lY3Rpb246OmNyZWF0ZShncHVDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzLmNvbm5lY3Rpb24oKSwgV1RGTW92ZShzdHJlYW0pLCByZW1vdGVH
cmFwaGljc0NvbnRleHRHTFN0cmVhbVdvcmtRdWV1ZSgpKSkKICAgICAsIG1fZ3JhcGhpY3NDb250
ZXh0R0xJZGVudGlmaWVyKGdyYXBoaWNzQ29udGV4dEdMSWRlbnRpZmllcikKICAgICAsIG1fcmVu
ZGVyaW5nQmFja2VuZChyZW5kZXJpbmdCYWNrZW5kKQotI2lmIEVOQUJMRShNRURJQV9TVFJFQU0p
CisjaWYgRU5BQkxFKFZJREVPKQogICAgICwgbV92aWRlb0ZyYW1lT2JqZWN0SGVhcChncHVDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzLnZpZGVvRnJhbWVPYmplY3RIZWFwKCkpCiAjZW5kaWYKICAgICAs
IG1fcmVuZGVyaW5nUmVzb3VyY2VzUmVxdWVzdChTY29wZWRXZWJHTFJlbmRlcmluZ1Jlc291cmNl
c1JlcXVlc3Q6OmFjcXVpcmUoKSkKQEAgLTI4MCw1MSArMjc2LDE0IEBAIHZvaWQgUmVtb3RlR3Jh
cGhpY3NDb250ZXh0R0w6OnBhaW50UGl4ZWxCdWZmZXJUb0ltYWdlQnVmZmVyKHN0ZDo6b3B0aW9u
YWw8V2ViQ29yCiAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKIH0KIAotdm9pZCBSZW1vdGVHcmFw
aGljc0NvbnRleHRHTDo6Y29weVRleHR1cmVGcm9tTWVkaWEoV2ViQ29yZTo6TWVkaWFQbGF5ZXJJ
ZGVudGlmaWVyIG1lZGlhUGxheWVySWRlbnRpZmllciwgdWludDMyX3QgdGV4dHVyZSwgdWludDMy
X3QgdGFyZ2V0LCBpbnQzMl90IGxldmVsLCB1aW50MzJfdCBpbnRlcm5hbEZvcm1hdCwgdWludDMy
X3QgZm9ybWF0LCB1aW50MzJfdCB0eXBlLCBib29sIHByZW11bHRpcGx5QWxwaGEsIGJvb2wgZmxp
cFksIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCisj
aWYgRU5BQkxFKFZJREVPKSAmJiAhVVNFKEFWRk9VTkRBVElPTikKK3ZvaWQgUmVtb3RlR3JhcGhp
Y3NDb250ZXh0R0w6OmNvcHlUZXh0dXJlRnJvbVZpZGVvRnJhbWUoV2ViS2l0OjpSZW1vdGVWaWRl
b0ZyYW1lUmVhZFJlZmVyZW5jZSByZWFkLCB1aW50MzJfdCwgdWludDMyX3QsIGludDMyX3QsIHVp
bnQzMl90LCB1aW50MzJfdCwgdWludDMyX3QsIGJvb2wsIGJvb2wgLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewotICAgIGFzc2VydElzQ3VycmVu
dChtX3N0cmVhbVRocmVhZCk7Ci0jaWYgVVNFKEFWRk9VTkRBVElPTikKLSAgICBVTlVTRURfVkFS
SUFCTEUocHJlbXVsdGlwbHlBbHBoYSk7Ci0gICAgQVNTRVJUX1VOVVNFRCh0YXJnZXQsIHRhcmdl
dCA9PSBHcmFwaGljc0NvbnRleHRHTDo6VEVYVFVSRV8yRCk7Ci0KLSAgICBSZWZQdHI8VmlkZW9G
cmFtZT4gdmlkZW9GcmFtZTsKLSAgICBhdXRvIGdldFZpZGVvRnJhbWUgPSBbJl0gewotICAgICAg
ICBpZiAoIW1fZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2VzcykKLSAgICAgICAgICAgIHJldHVybjsK
LQotICAgICAgICBpZiAoYXV0byBtZWRpYVBsYXllciA9IG1fZ3B1Q29ubmVjdGlvblRvV2ViUHJv
Y2Vzcy0+cmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkoKS5tZWRpYVBsYXllcihtZWRpYVBs
YXllcklkZW50aWZpZXIpKQotICAgICAgICAgICAgdmlkZW9GcmFtZSA9IG1lZGlhUGxheWVyLT52
aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWUoKTsKLSAgICB9OwotCi0gICAgY2FsbE9uTWFpblJ1bkxv
b3BBbmRXYWl0KFdURk1vdmUoZ2V0VmlkZW9GcmFtZSkpOwotCi0gICAgaWYgKCF2aWRlb0ZyYW1l
IHx8ICFpczxWaWRlb0ZyYW1lQ1Y+KCp2aWRlb0ZyYW1lKSkgewotICAgICAgICBjb21wbGV0aW9u
SGFuZGxlcihmYWxzZSk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBhdXRvIGNvbnRl
eHRDViA9IG1fY29udGV4dC0+YXNDVigpOwotICAgIGlmICghY29udGV4dENWKSB7Ci0gICAgICAg
IGNvbXBsZXRpb25IYW5kbGVyKGZhbHNlKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAg
IGNvbXBsZXRpb25IYW5kbGVyKGNvbnRleHRDVi0+Y29weVZpZGVvU2FtcGxlVG9UZXh0dXJlKGRv
d25jYXN0PFZpZGVvRnJhbWVDVj4oKnZpZGVvRnJhbWUpLCB0ZXh0dXJlLCBsZXZlbCwgaW50ZXJu
YWxGb3JtYXQsIGZvcm1hdCwgdHlwZSwgR3JhcGhpY3NDb250ZXh0R0w6OkZsaXBZKGZsaXBZKSkp
OwotI2Vsc2UKLSAgICBVTlVTRURfVkFSSUFCTEUobWVkaWFQbGF5ZXJJZGVudGlmaWVyKTsKLSAg
ICBVTlVTRURfVkFSSUFCTEUodGV4dHVyZSk7Ci0gICAgVU5VU0VEX1ZBUklBQkxFKHRhcmdldCk7
Ci0gICAgVU5VU0VEX1ZBUklBQkxFKGxldmVsKTsKLSAgICBVTlVTRURfVkFSSUFCTEUoaW50ZXJu
YWxGb3JtYXQpOwotICAgIFVOVVNFRF9WQVJJQUJMRShmb3JtYXQpOwotICAgIFVOVVNFRF9WQVJJ
QUJMRSh0eXBlKTsKLSAgICBVTlVTRURfVkFSSUFCTEUocHJlbXVsdGlwbHlBbHBoYSk7Ci0gICAg
VU5VU0VEX1ZBUklBQkxFKGZsaXBZKTsKLQogICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgbV92
aWRlb0ZyYW1lT2JqZWN0SGVhcC0+cmV0aXJlKFdURk1vdmUocmVhZCksIGRlZmF1bHRUaW1lb3V0
KTsKICAgICBjb21wbGV0aW9uSGFuZGxlcihmYWxzZSk7Ci0jZW5kaWYKIH0KKyNlbmRpZgogCiB2
b2lkIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMOjpzaW11bGF0ZUV2ZW50Rm9yVGVzdGluZyhXZWJD
b3JlOjpHcmFwaGljc0NvbnRleHRHTDo6U2ltdWxhdGVkRXZlbnRGb3JUZXN0aW5nIGV2ZW50KQog
ewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdy
YXBoaWNzQ29udGV4dEdMLmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVt
b3RlR3JhcGhpY3NDb250ZXh0R0wuaAppbmRleCBmZjI4NDVlZDQyZjM0N2E5YjhhYjg1NzIxZTYy
ZWViMTRlNTE3ZjA4Li4yM2U5YTdjYjQyZmM0OTkwY2EyZTg2YTAwNzQ5MmZkOGJhNGQ5M2EzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhp
Y3NDb250ZXh0R0wuaAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVt
b3RlR3JhcGhpY3NDb250ZXh0R0wuaApAQCAtNTMsNyArNTMsNyBAQAogI2luY2x1ZGUgIldDQ29u
dGVudEJ1ZmZlcklkZW50aWZpZXIuaCIKICNlbmRpZgogCi0jaWYgRU5BQkxFKE1FRElBX1NUUkVB
TSkKKyNpZiBFTkFCTEUoVklERU8pCiAjaW5jbHVkZSAiUmVtb3RlVmlkZW9GcmFtZUlkZW50aWZp
ZXIuaCIKICNpbmNsdWRlICJSZW1vdGVWaWRlb0ZyYW1lUHJveHkuaCIKICNlbmRpZgpAQCAtNjUs
NyArNjUsNyBAQCBjbGFzcyBNYWNoU2VuZFJpZ2h0OwogI2VuZGlmCiAKIG5hbWVzcGFjZSBXZWJL
aXQgewotI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisjaWYgRU5BQkxFKFZJREVPKQogY2xhc3Mg
UmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXA7CiAjZW5kaWYKIApAQCAtMTE4LDcgKzExOCw5IEBA
IHByb3RlY3RlZDoKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogICAgIHZvaWQgcGFpbnRDb21w
b3NpdGVkUmVzdWx0c1RvTWVkaWFTYW1wbGUoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChzdGQ6Om9w
dGlvbmFsPFdlYktpdDo6UmVtb3RlVmlkZW9GcmFtZVByb3h5OjpQcm9wZXJ0aWVzPiYmKT4mJik7
CiAjZW5kaWYKLSAgICB2b2lkIGNvcHlUZXh0dXJlRnJvbU1lZGlhKFdlYkNvcmU6Ok1lZGlhUGxh
eWVySWRlbnRpZmllciwgdWludDMyX3QgdGV4dHVyZSwgdWludDMyX3QgdGFyZ2V0LCBpbnQzMl90
IGxldmVsLCB1aW50MzJfdCBpbnRlcm5hbEZvcm1hdCwgdWludDMyX3QgZm9ybWF0LCB1aW50MzJf
dCB0eXBlLCBib29sIHByZW11bHRpcGx5QWxwaGEsIGJvb2wgZmxpcFksIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoYm9vbCk+JiYpOworI2lmIEVOQUJMRShWSURFTykKKyAgICB2b2lkIGNvcHlUZXh0
dXJlRnJvbVZpZGVvRnJhbWUoUmVtb3RlVmlkZW9GcmFtZVJlYWRSZWZlcmVuY2UsIHVpbnQzMl90
IHRleHR1cmUsIHVpbnQzMl90IHRhcmdldCwgaW50MzJfdCBsZXZlbCwgdWludDMyX3QgaW50ZXJu
YWxGb3JtYXQsIHVpbnQzMl90IGZvcm1hdCwgdWludDMyX3QgdHlwZSwgYm9vbCBwcmVtdWx0aXBs
eUFscGhhLCBib29sIGZsaXBZLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKKyNl
bmRpZgogICAgIHZvaWQgc2ltdWxhdGVFdmVudEZvclRlc3RpbmcoV2ViQ29yZTo6R3JhcGhpY3ND
b250ZXh0R0w6OlNpbXVsYXRlZEV2ZW50Rm9yVGVzdGluZyk7CiAKICNpbmNsdWRlICJSZW1vdGVH
cmFwaGljc0NvbnRleHRHTEZ1bmN0aW9uc0dlbmVyYXRlZC5oIiAvLyBOT0xJTlQKQEAgLTEzMSw2
ICsxMzMsNyBAQCBwcml2YXRlOgogcHJvdGVjdGVkOgogICAgIFdlYWtQdHI8R1BVQ29ubmVjdGlv
blRvV2ViUHJvY2Vzcz4gbV9ncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOwogICAgIFJlZlB0cjxJ
UEM6OlN0cmVhbVNlcnZlckNvbm5lY3Rpb24+IG1fc3RyZWFtQ29ubmVjdGlvbjsKKyAgICBzdGF0
aWMgY29uc3RleHByIFNlY29uZHMgZGVmYXVsdFRpbWVvdXQgPSAxMF9zOwogI2lmIFBMQVRGT1JN
KENPQ09BKQogICAgIHVzaW5nIEdDR0xDb250ZXh0ID0gV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0
R0xDb2NvYTsKICNlbHNlCkBAIC0xNDAsNyArMTQzLDcgQEAgcHJvdGVjdGVkOgogICAgIFJlZlB0
cjxHQ0dMQ29udGV4dD4gbV9jb250ZXh0IFdURl9HVUFSREVEX0JZX0xPQ0sobV9zdHJlYW1UaHJl
YWQpOwogICAgIEdyYXBoaWNzQ29udGV4dEdMSWRlbnRpZmllciBtX2dyYXBoaWNzQ29udGV4dEdM
SWRlbnRpZmllcjsKICAgICBSZWY8UmVtb3RlUmVuZGVyaW5nQmFja2VuZD4gbV9yZW5kZXJpbmdC
YWNrZW5kOwotI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisjaWYgRU5BQkxFKFZJREVPKQogICAg
IFJlZjxSZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcD4gbV92aWRlb0ZyYW1lT2JqZWN0SGVhcDsK
ICNlbmRpZgogICAgIFNjb3BlZFdlYkdMUmVuZGVyaW5nUmVzb3VyY2VzUmVxdWVzdCBtX3JlbmRl
cmluZ1Jlc291cmNlc1JlcXVlc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0wubWVzc2FnZXMuaW4gYi9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0wubWVzc2Fn
ZXMuaW4KaW5kZXggNzljYzZhNGM3MWMwZjk1MDNiNGM1YmZhNDNmYzMwOTA3YWQ4YjUwZi4uZDI3
NjU4NWEyMmNkYmQzN2U1OTBkZjZkODMwMjNiN2EzNGQwYzQ3ZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMLm1lc3Nh
Z2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFw
aGljc0NvbnRleHRHTC5tZXNzYWdlcy5pbgpAQCAtNDEsNyArNDEsOSBAQCBtZXNzYWdlcyAtPiBS
ZW1vdGVHcmFwaGljc0NvbnRleHRHTCBOb3RSZWZDb3VudGVkIFN0cmVhbSB7CiAgICAgdm9pZCBH
ZXRFcnJvcigpIC0+ICh1aW50MzJfdCByZXR1cm5WYWx1ZSkgU3luY2hyb25vdXMKICAgICB2b2lk
IFBhaW50UmVuZGVyaW5nUmVzdWx0c1RvQ2FudmFzKFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNl
SWRlbnRpZmllciBpbWFnZUJ1ZmZlcikgLT4gKCkgU3luY2hyb25vdXMKICAgICB2b2lkIFBhaW50
Q29tcG9zaXRlZFJlc3VsdHNUb0NhbnZhcyhXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50
aWZpZXIgaW1hZ2VCdWZmZXIpIC0+ICgpIFN5bmNocm9ub3VzCi0gICAgdm9pZCBDb3B5VGV4dHVy
ZUZyb21NZWRpYShXZWJDb3JlOjpNZWRpYVBsYXllcklkZW50aWZpZXIgaWRlbnRpZmllciwgdWlu
dDMyX3QgdGV4dHVyZSwgdWludDMyX3QgdGFyZ2V0LCBpbnQzMl90IGxldmVsLCB1aW50MzJfdCBp
bnRlcm5hbEZvcm1hdCwgdWludDMyX3QgZm9ybWF0LCB1aW50MzJfdCB0eXBlLCBib29sIHByZW11
bHRpcGx5QWxwaGEsIGJvb2wgZmxpcFkpIC0+IChib29sIHN1Y2Nlc3MpIFN5bmNocm9ub3VzCisj
aWYgRU5BQkxFKFZJREVPKQorICAgIHZvaWQgQ29weVRleHR1cmVGcm9tVmlkZW9GcmFtZShXZWJL
aXQ6OlJlbW90ZVZpZGVvRnJhbWVSZWFkUmVmZXJlbmNlIHZpZGVvRnJhbWUsIHVpbnQzMl90IHRl
eHR1cmUsIHVpbnQzMl90IHRhcmdldCwgaW50MzJfdCBsZXZlbCwgdWludDMyX3QgaW50ZXJuYWxG
b3JtYXQsIHVpbnQzMl90IGZvcm1hdCwgdWludDMyX3QgdHlwZSwgYm9vbCBwcmVtdWx0aXBseUFs
cGhhLCBib29sIGZsaXBZKSAtPiAoYm9vbCBzdWNjZXNzKSBTeW5jaHJvbm91cworI2VuZGlmCiAj
aWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKICAgICB2b2lkIFBhaW50Q29tcG9zaXRlZFJlc3VsdHNU
b01lZGlhU2FtcGxlKCkgLT4gKHN0ZDo6b3B0aW9uYWw8V2ViS2l0OjpSZW1vdGVWaWRlb0ZyYW1l
UHJveHk6OlByb3BlcnRpZXM+IHByb3BlcnRpZXMpIFN5bmNocm9ub3VzCiAjZW5kaWYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0Nv
bnRleHRHTENvY29hLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1v
dGVHcmFwaGljc0NvbnRleHRHTENvY29hLmNwcAppbmRleCA2YzkwNjFiNWUyZWZlNWIyZmNkYzBm
ODUwMThmY2MxYjk2NDdlZTA2Li43OWRmOTljZTI5YzMzYTBiNGZhNDcwMDI1NDcwNGY4ZTAzZTFh
YzcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3Rl
R3JhcGhpY3NDb250ZXh0R0xDb2NvYS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMQ29jb2EuY3BwCkBAIC0yOSwxMSArMjks
NTUgQEAKICNpZiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIEVOQUJMRShXRUJHTCkgJiYgUExBVEZP
Uk0oQ09DT0EpCiAKICNpbmNsdWRlICJHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgiCisjaW5j
bHVkZSAiSVBDVGVzdGVyLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9Qcm9jZXNzSWRlbnRpdHkuaD4K
ICNpbmNsdWRlIDx3dGYvTWFjaFNlbmRSaWdodC5oPgogCisKKyNpZiBFTkFCTEUoVklERU8pCisj
aW5jbHVkZSAiUmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXAuaCIKKyNpbmNsdWRlIDxXZWJDb3Jl
L0dyYXBoaWNzQ29udGV4dEdMQ1YuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL01lZGlhU2FtcGxlQVZG
T2JqQy5oPgorI2luY2x1ZGUgPFdlYkNvcmUvVmlkZW9GcmFtZUNWLmg+CisjZW5kaWYKKwogbmFt
ZXNwYWNlIFdlYktpdCB7Ci11c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworI2lmIEVOQUJMRShW
SURFTykKK3ZvaWQgUmVtb3RlR3JhcGhpY3NDb250ZXh0R0w6OmNvcHlUZXh0dXJlRnJvbVZpZGVv
RnJhbWUoV2ViS2l0OjpSZW1vdGVWaWRlb0ZyYW1lUmVhZFJlZmVyZW5jZSByZWFkLCB1aW50MzJf
dCB0ZXh0dXJlLCB1aW50MzJfdCB0YXJnZXQsIGludDMyX3QgbGV2ZWwsIHVpbnQzMl90IGludGVy
bmFsRm9ybWF0LCB1aW50MzJfdCBmb3JtYXQsIHVpbnQzMl90IHR5cGUsIGJvb2wgcHJlbXVsdGlw
bHlBbHBoYSwgYm9vbCBmbGlwWSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21w
bGV0aW9uSGFuZGxlcikKK3sKKyAgICBhc3NlcnRJc0N1cnJlbnQobV9zdHJlYW1UaHJlYWQpOwor
ICAgIFVOVVNFRF9WQVJJQUJMRShwcmVtdWx0aXBseUFscGhhKTsKKyAgICBBU1NFUlRfVU5VU0VE
KHRhcmdldCwgdGFyZ2V0ID09IFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMOjpURVhUVVJFXzJE
KTsKKworICAgIGF1dG8gdmlkZW9GcmFtZSA9IG1fdmlkZW9GcmFtZU9iamVjdEhlYXAtPnJldGly
ZShXVEZNb3ZlKHJlYWQpLCBkZWZhdWx0VGltZW91dCk7CisgICAgaWYgKCF2aWRlb0ZyYW1lKSB7
CisgICAgICAgIEFTU0VSVF9JU19URVNUSU5HX0lQQygpOworICAgICAgICBjb21wbGV0aW9uSGFu
ZGxlcihmYWxzZSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgLy8gTm90ZTogVGhpcyBl
eHRyYSBjYXN0aW5nIGlzIG5lZWRlZCBzaW5jZSBWaWRlb0ZyYW1lcyBhcmUgc3RpbGwgTWVkaWFT
YW1wbGVzLgorICAgIFJlZlB0cjxXZWJDb3JlOjpWaWRlb0ZyYW1lQ1Y+IHZpZGVvRnJhbWVDVjsK
KyAgICBpZiAoaXM8V2ViQ29yZTo6VmlkZW9GcmFtZUNWPigqdmlkZW9GcmFtZSkpCisgICAgICAg
IHZpZGVvRnJhbWVDViA9ICZkb3duY2FzdDxXZWJDb3JlOjpWaWRlb0ZyYW1lQ1Y+KCp2aWRlb0Zy
YW1lKTsKKyAgICBlbHNlIGlmIChpczxXZWJDb3JlOjpNZWRpYVNhbXBsZUFWRk9iakM+KCp2aWRl
b0ZyYW1lKSkKKyAgICAgICAgdmlkZW9GcmFtZUNWID0gZG93bmNhc3Q8V2ViQ29yZTo6TWVkaWFT
YW1wbGVBVkZPYmpDPigqdmlkZW9GcmFtZSkudmlkZW9GcmFtZSgpOworICAgIGVsc2UgeworICAg
ICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsgLy8gUHJvZ3JhbW1pbmcgZXJyb3IsIG5vdCBhIElQ
QyBhdHRhY2suCisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGZhbHNlKTsKKyAgICAgICAgcmV0
dXJuOworICAgIH0KKworICAgIGF1dG8gY29udGV4dENWID0gbV9jb250ZXh0LT5hc0NWKCk7Cisg
ICAgaWYgKCFjb250ZXh0Q1YpIHsKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAg
ICAgIGNvbXBsZXRpb25IYW5kbGVyKGZhbHNlKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwor
ICAgIGNvbXBsZXRpb25IYW5kbGVyKGNvbnRleHRDVi0+Y29weVZpZGVvU2FtcGxlVG9UZXh0dXJl
KCp2aWRlb0ZyYW1lQ1YsIHRleHR1cmUsIGxldmVsLCBpbnRlcm5hbEZvcm1hdCwgZm9ybWF0LCB0
eXBlLCBXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTDo6RmxpcFkoZmxpcFkpKSk7Cit9CisjZW5k
aWYKIAogbmFtZXNwYWNlIHsKIApAQCAtNDYsMTIgKzkwLDEyIEBAIHB1YmxpYzoKICAgICB2b2lk
IHBsYXRmb3JtV29ya1F1ZXVlSW5pdGlhbGl6ZShXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTEF0
dHJpYnV0ZXMmJikgZmluYWw7CiAgICAgdm9pZCBwcmVwYXJlRm9yRGlzcGxheShDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKFdURjo6TWFjaFNlbmRSaWdodCYmKT4mJikgZmluYWw7CiBwcml2YXRlOgot
ICAgIGNvbnN0IFByb2Nlc3NJZGVudGl0eSBtX3Jlc291cmNlT3duZXI7CisgICAgY29uc3QgV2Vi
Q29yZTo6UHJvY2Vzc0lkZW50aXR5IG1fcmVzb3VyY2VPd25lcjsKIH07CiAKIH0KIAotUmVmPFJl
bW90ZUdyYXBoaWNzQ29udGV4dEdMPiBSZW1vdGVHcmFwaGljc0NvbnRleHRHTDo6Y3JlYXRlKEdQ
VUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmIGdwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MsIEdyYXBo
aWNzQ29udGV4dEdMQXR0cmlidXRlcyYmIGF0dHJpYnV0ZXMsIEdyYXBoaWNzQ29udGV4dEdMSWRl
bnRpZmllciBncmFwaGljc0NvbnRleHRHTElkZW50aWZpZXIsIFJlbW90ZVJlbmRlcmluZ0JhY2tl
bmQmIHJlbmRlcmluZ0JhY2tlbmQsIElQQzo6U3RyZWFtQ29ubmVjdGlvbkJ1ZmZlciYmIHN0cmVh
bSkKK1JlZjxSZW1vdGVHcmFwaGljc0NvbnRleHRHTD4gUmVtb3RlR3JhcGhpY3NDb250ZXh0R0w6
OmNyZWF0ZShHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiBncHVDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzLCBXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMmJiBhdHRyaWJ1dGVzLCBH
cmFwaGljc0NvbnRleHRHTElkZW50aWZpZXIgZ3JhcGhpY3NDb250ZXh0R0xJZGVudGlmaWVyLCBS
ZW1vdGVSZW5kZXJpbmdCYWNrZW5kJiByZW5kZXJpbmdCYWNrZW5kLCBJUEM6OlN0cmVhbUNvbm5l
Y3Rpb25CdWZmZXImJiBzdHJlYW0pCiB7CiAgICAgYXV0byBpbnN0YW5jZSA9IGFkb3B0UmVmKCpu
ZXcgUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xDb2NvYShncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNz
LCBncmFwaGljc0NvbnRleHRHTElkZW50aWZpZXIsIHJlbmRlcmluZ0JhY2tlbmQsIFdURk1vdmUo
c3RyZWFtKSkpOwogICAgIGluc3RhbmNlLT5pbml0aWFsaXplKFdURk1vdmUoYXR0cmlidXRlcykp
OwpAQCAtNjIsMTMgKzEwNiwxMiBAQCBSZW1vdGVHcmFwaGljc0NvbnRleHRHTENvY29hOjpSZW1v
dGVHcmFwaGljc0NvbnRleHRHTENvY29hKEdQVUNvbm5lY3Rpb25Ub1dlYlBybwogICAgIDogUmVt
b3RlR3JhcGhpY3NDb250ZXh0R0woZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2VzcywgZ3JhcGhpY3ND
b250ZXh0R0xJZGVudGlmaWVyLCByZW5kZXJpbmdCYWNrZW5kLCBXVEZNb3ZlKHN0cmVhbSkpCiAg
ICAgLCBtX3Jlc291cmNlT3duZXIoZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy53ZWJQcm9jZXNz
SWRlbnRpdHkoKSkKIHsKLQogfQogCiB2b2lkIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMQ29jb2E6
OnBsYXRmb3JtV29ya1F1ZXVlSW5pdGlhbGl6ZShXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTEF0
dHJpYnV0ZXMmJiBhdHRyaWJ1dGVzKQogewogICAgIGFzc2VydElzQ3VycmVudChtX3N0cmVhbVRo
cmVhZCk7Ci0gICAgbV9jb250ZXh0ID0gR3JhcGhpY3NDb250ZXh0R0xDb2NvYTo6Y3JlYXRlKFdU
Rk1vdmUoYXR0cmlidXRlcyksIFByb2Nlc3NJZGVudGl0eSB7IG1fcmVzb3VyY2VPd25lciB9KTsK
KyAgICBtX2NvbnRleHQgPSBXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTENvY29hOjpjcmVhdGUo
V1RGTW92ZShhdHRyaWJ1dGVzKSwgV2ViQ29yZTo6UHJvY2Vzc0lkZW50aXR5IHsgbV9yZXNvdXJj
ZU93bmVyIH0pOwogfQogCiB2b2lkIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMQ29jb2E6OnByZXBh
cmVGb3JEaXNwbGF5KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV1RGOjpNYWNoU2VuZFJpZ2h0JiYp
PiYmIGNvbXBsZXRpb25IYW5kbGVyKQpAQCAtNzYsNyArMTE5LDcgQEAgdm9pZCBSZW1vdGVHcmFw
aGljc0NvbnRleHRHTENvY29hOjpwcmVwYXJlRm9yRGlzcGxheShDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKFdURjoKICAgICBhc3NlcnRJc0N1cnJlbnQobV9zdHJlYW1UaHJlYWQpOwogICAgIG1fY29u
dGV4dC0+cHJlcGFyZUZvckRpc3BsYXkoKTsKICAgICBNYWNoU2VuZFJpZ2h0IHNlbmRSaWdodDsK
LSAgICBJT1N1cmZhY2UqIGRpc3BsYXlCdWZmZXIgPSBtX2NvbnRleHQtPmRpc3BsYXlCdWZmZXIo
KTsKKyAgICBXZWJDb3JlOjpJT1N1cmZhY2UqIGRpc3BsYXlCdWZmZXIgPSBtX2NvbnRleHQtPmRp
c3BsYXlCdWZmZXIoKTsKICAgICBpZiAoZGlzcGxheUJ1ZmZlcikgewogICAgICAgICBtX2NvbnRl
eHQtPm1hcmtEaXNwbGF5QnVmZmVySW5Vc2UoKTsKICAgICAgICAgc2VuZFJpZ2h0ID0gZGlzcGxh
eUJ1ZmZlci0+Y3JlYXRlU2VuZFJpZ2h0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkuY3BwIGIvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5LmNw
cAppbmRleCA5YTA3ODdkNjc5OWJhYzBmODEwMjc3NTJiNGE1Y2E4YzhjZTIwMmEwLi4xYTMxZjBk
NTRiYjVkYjcwZjA0ZmI5ODBhNjBhMmQ5YTY1NDA0ODNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFn
ZXJQcm94eS5jcHAKQEAgLTY3LDcgKzY3LDcgQEAgdm9pZCBSZW1vdGVNZWRpYVBsYXllck1hbmFn
ZXJQcm94eTo6Y3JlYXRlTWVkaWFQbGF5ZXIoTWVkaWFQbGF5ZXJJZGVudGlmaWVyIGlkZW4KICAg
ICBBU1NFUlQobV9ncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzKTsKICAgICBBU1NFUlQoIW1fcHJv
eGllcy5jb250YWlucyhpZGVudGlmaWVyKSk7CiAKLSAgICBhdXRvIHByb3h5ID0gbWFrZVVuaXF1
ZTxSZW1vdGVNZWRpYVBsYXllclByb3h5PigqdGhpcywgaWRlbnRpZmllciwgbV9ncHVDb25uZWN0
aW9uVG9XZWJQcm9jZXNzLT5jb25uZWN0aW9uKCksIGVuZ2luZUlkZW50aWZpZXIsIFdURk1vdmUo
cHJveHlDb25maWd1cmF0aW9uKSk7CisgICAgYXV0byBwcm94eSA9IG1ha2VVbmlxdWU8UmVtb3Rl
TWVkaWFQbGF5ZXJQcm94eT4oKnRoaXMsIGlkZW50aWZpZXIsIG1fZ3B1Q29ubmVjdGlvblRvV2Vi
UHJvY2Vzcy0+Y29ubmVjdGlvbigpLCBlbmdpbmVJZGVudGlmaWVyLCBXVEZNb3ZlKHByb3h5Q29u
ZmlndXJhdGlvbiksIG1fZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy0+dmlkZW9GcmFtZU9iamVj
dEhlYXAoKSk7CiAgICAgbV9wcm94aWVzLmFkZChpZGVudGlmaWVyLCBXVEZNb3ZlKHByb3h5KSk7
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVN
ZWRpYVBsYXllclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1v
dGVNZWRpYVBsYXllclByb3h5LmNwcAppbmRleCBjZDJjNTFiYmQzMmUyOGMyZmU0MzQ2ZTlmMjYz
NTAxODllZWE2NjNiLi4wZWY4MzQyZGQyNjhlZTY4YzMwNDc2MmRhMDU4YmE0ZmJjYmM2ZTNjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5
ZXJQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1l
ZGlhUGxheWVyUHJveHkuY3BwCkBAIC00NCw2ICs0NCw4IEBACiAjaW5jbHVkZSAiUmVtb3RlTWVk
aWFSZXNvdXJjZUxvYWRlci5oIgogI2luY2x1ZGUgIlJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2Vy
LmgiCiAjaW5jbHVkZSAiUmVtb3RlVGV4dFRyYWNrUHJveHkuaCIKKyNpbmNsdWRlICJSZW1vdGVW
aWRlb0ZyYW1lT2JqZWN0SGVhcC5oIgorI2luY2x1ZGUgIlJlbW90ZVZpZGVvRnJhbWVQcm94eS5o
IgogI2luY2x1ZGUgIlJlbW90ZVZpZGVvVHJhY2tQcm94eS5oIgogI2luY2x1ZGUgIlRleHRUcmFj
a1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uLmgiCiAjaW5jbHVkZSAiVHJhY2tQcml2YXRlUmVt
b3RlQ29uZmlndXJhdGlvbi5oIgpAQCAtNzQsNyArNzYsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsK
IAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKLVJlbW90ZU1lZGlhUGxheWVyUHJveHk6OlJl
bW90ZU1lZGlhUGxheWVyUHJveHkoUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkmIG1hbmFn
ZXIsIE1lZGlhUGxheWVySWRlbnRpZmllciBpZGVudGlmaWVyLCBSZWY8SVBDOjpDb25uZWN0aW9u
PiYmIGNvbm5lY3Rpb24sIE1lZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5naW5lSWRlbnRpZmllciBl
bmdpbmVJZGVudGlmaWVyLCBSZW1vdGVNZWRpYVBsYXllclByb3h5Q29uZmlndXJhdGlvbiYmIGNv
bmZpZ3VyYXRpb24pCitSZW1vdGVNZWRpYVBsYXllclByb3h5OjpSZW1vdGVNZWRpYVBsYXllclBy
b3h5KFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5JiBtYW5hZ2VyLCBNZWRpYVBsYXllcklk
ZW50aWZpZXIgaWRlbnRpZmllciwgUmVmPElQQzo6Q29ubmVjdGlvbj4mJiBjb25uZWN0aW9uLCBN
ZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50aWZpZXIgZW5naW5lSWRlbnRpZmllciwg
UmVtb3RlTWVkaWFQbGF5ZXJQcm94eUNvbmZpZ3VyYXRpb24mJiBjb25maWd1cmF0aW9uLCBSZW1v
dGVWaWRlb0ZyYW1lT2JqZWN0SGVhcCYgdmlkZW9GcmFtZU9iamVjdEhlYXApCiAgICAgOiBtX2lk
KGlkZW50aWZpZXIpCiAgICAgLCBtX3dlYlByb2Nlc3NDb25uZWN0aW9uKFdURk1vdmUoY29ubmVj
dGlvbikpCiAgICAgLCBtX21hbmFnZXIobWFuYWdlcikKQEAgLTgyLDYgKzg0LDcgQEAgUmVtb3Rl
TWVkaWFQbGF5ZXJQcm94eTo6UmVtb3RlTWVkaWFQbGF5ZXJQcm94eShSZW1vdGVNZWRpYVBsYXll
ck1hbmFnZXJQcm94eSYgbWEKICAgICAsIG1fdXBkYXRlQ2FjaGVkU3RhdGVNZXNzYWdlVGltZXIo
UnVuTG9vcDo6bWFpbigpLCB0aGlzLCAmUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6dGltZXJGaXJl
ZCkKICAgICAsIG1fY29uZmlndXJhdGlvbihjb25maWd1cmF0aW9uKQogICAgICwgbV9yZW5kZXJp
bmdSZXNvdXJjZXNSZXF1ZXN0KFNjb3BlZFJlbmRlcmluZ1Jlc291cmNlc1JlcXVlc3Q6OmFjcXVp
cmUoKSkKKyAgICAsIG1fdmlkZW9GcmFtZU9iamVjdEhlYXAodmlkZW9GcmFtZU9iamVjdEhlYXAp
CiAjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAgICAgLCBtX2xvZ2dlcihtYW5hZ2VyLmxvZ2dl
cigpKQogI2VuZGlmCkBAIC04NjgsMTEgKzg3MSw5IEBAIHZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJQ
cm94eTo6Y3VycmVudFRpbWVDaGFuZ2VkKGNvbnN0IE1lZGlhVGltZSYgbWVkaWFUaW1lKQogICAg
IG1fd2ViUHJvY2Vzc0Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6Ok1lZGlhUGxheWVyUHJpdmF0
ZVJlbW90ZTo6Q3VycmVudFRpbWVDaGFuZ2VkKG1lZGlhVGltZSwgTW9ub3RvbmljVGltZTo6bm93
KCksICFtZWRpYVBsYXllclBhdXNlZE9yU3RhbGxlZCgpKSwgbV9pZCk7CiB9CiAKLS8vIEZJWE1F
OiBUaGlzIHdpbGwgYmUgdHVybmVkIGludG8gY3Jvc3MtcGxhdGZvcm0gY29kZSBzb29uLgotI2lm
IFBMQVRGT1JNKENPQ09BKQotdm9pZCBSZW1vdGVNZWRpYVBsYXllclByb3h5Ojp2aWRlb0ZyYW1l
Rm9yQ3VycmVudFRpbWVJZkNoYW5nZWQoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChzdGQ6Om9wdGlv
bmFsPFJlZlB0cjxXZWJDb3JlOjpWaWRlb0ZyYW1lQ1Y+PiYmLCBib29sKT4mJiBjb21wbGV0aW9u
SGFuZGxlcikKK3ZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6dmlkZW9GcmFtZUZvckN1cnJl
bnRUaW1lSWZDaGFuZ2VkKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoc3RkOjpvcHRpb25hbDxSZW1v
dGVWaWRlb0ZyYW1lUHJveHk6OlByb3BlcnRpZXM+JiYsIGJvb2wpPiYmIGNvbXBsZXRpb25IYW5k
bGVyKQogewotICAgIHN0ZDo6b3B0aW9uYWw8UmVmUHRyPFdlYkNvcmU6OlZpZGVvRnJhbWVDVj4+
IHJlc3VsdDsKKyAgICBzdGQ6Om9wdGlvbmFsPFJlbW90ZVZpZGVvRnJhbWVQcm94eTo6UHJvcGVy
dGllcz4gcmVzdWx0OwogICAgIGJvb2wgY2hhbmdlZCA9IGZhbHNlOwogICAgIFJlZlB0cjxXZWJD
b3JlOjpWaWRlb0ZyYW1lPiB2aWRlb0ZyYW1lOwogICAgIGlmIChtX3BsYXllcikKQEAgLTg4MCwx
NiArODgxLDE1IEBAIHZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6dmlkZW9GcmFtZUZvckN1
cnJlbnRUaW1lSWZDaGFuZ2VkKENvbXBsZXRpb25IYW5kbGVyCiAgICAgaWYgKG1fdmlkZW9GcmFt
ZUZvckN1cnJlbnRUaW1lICE9IHZpZGVvRnJhbWUpIHsKICAgICAgICAgbV92aWRlb0ZyYW1lRm9y
Q3VycmVudFRpbWUgPSB2aWRlb0ZyYW1lOwogICAgICAgICBjaGFuZ2VkID0gdHJ1ZTsKLSAgICAg
ICAgUmVmUHRyPFZpZGVvRnJhbWVDVj4gdmlkZW9GcmFtZUNWOwogICAgICAgICBpZiAodmlkZW9G
cmFtZSkgewotICAgICAgICAgICAgQVNTRVJUKGlzPFZpZGVvRnJhbWVDVj4oKnZpZGVvRnJhbWUp
KTsKLSAgICAgICAgICAgIHZpZGVvRnJhbWVDViA9ICZkb3duY2FzdDxWaWRlb0ZyYW1lQ1Y+KCp2
aWRlb0ZyYW1lKTsKKyAgICAgICAgICAgIGF1dG8gd3JpdGUgPSBSZW1vdGVWaWRlb0ZyYW1lV3Jp
dGVSZWZlcmVuY2U6OmdlbmVyYXRlRm9yQWRkKCk7CisgICAgICAgICAgICBhdXRvIG5ld0ZyYW1l
UmVmZXJlbmNlID0gd3JpdGUucmV0aXJlZFJlZmVyZW5jZSgpOworICAgICAgICAgICAgcmVzdWx0
ID0gUmVtb3RlVmlkZW9GcmFtZVByb3h5Ojpwcm9wZXJ0aWVzKFdURk1vdmUobmV3RnJhbWVSZWZl
cmVuY2UpLCAqdmlkZW9GcmFtZSk7CisgICAgICAgICAgICBtX3ZpZGVvRnJhbWVPYmplY3RIZWFw
LT5yZXRpcmUoV1RGTW92ZSh3cml0ZSksIFdURk1vdmUodmlkZW9GcmFtZSksIHN0ZDo6bnVsbG9w
dCk7CiAgICAgICAgIH0KLSAgICAgICAgcmVzdWx0ID0gV1RGTW92ZSh2aWRlb0ZyYW1lQ1YpOwog
ICAgIH0KICAgICBjb21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKHJlc3VsdCksIGNoYW5nZWQpOwog
fQotI2VuZGlmCiAKIHZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6dXBkYXRlQ2FjaGVkU3Rh
dGUoYm9vbCBmb3JjZUN1cnJlbnRUaW1lVXBkYXRlKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuaCBiL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmgKaW5kZXggYWMx
MThmNjc4MmNhNjg2NzM4ZjI1NTc3NTgzODA0OTAzOTE1MjgwMy4uZjI4NmJkNjRkNzQ5Yjc1NTJj
ZTJlMmY3NzgzOGFjYmNiMmJhMDk3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5oCkBAIC0zNCw2ICszNCw3IEBA
CiAjaW5jbHVkZSAiUmVtb3RlTWVkaWFQbGF5ZXJQcm94eUNvbmZpZ3VyYXRpb24uaCIKICNpbmNs
dWRlICJSZW1vdGVNZWRpYVBsYXllclN0YXRlLmgiCiAjaW5jbHVkZSAiUmVtb3RlTWVkaWFSZXNv
dXJjZUlkZW50aWZpZXIuaCIKKyNpbmNsdWRlICJSZW1vdGVWaWRlb0ZyYW1lUHJveHkuaCIKICNp
bmNsdWRlICJTYW5kYm94RXh0ZW5zaW9uLmgiCiAjaW5jbHVkZSAiU2NvcGVkUmVuZGVyaW5nUmVz
b3VyY2VzUmVxdWVzdC5oIgogI2luY2x1ZGUgIlRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIu
aCIKQEAgLTk4LDYgKzk5LDcgQEAgY2xhc3MgUmVtb3RlQXVkaW9UcmFja1Byb3h5OwogY2xhc3Mg
UmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlclByb3h5OwogY2xhc3MgUmVtb3RlTWVkaWFQbGF5ZXJN
YW5hZ2VyUHJveHk7CiBjbGFzcyBSZW1vdGVUZXh0VHJhY2tQcm94eTsKK2NsYXNzIFJlbW90ZVZp
ZGVvRnJhbWVPYmplY3RIZWFwOwogY2xhc3MgUmVtb3RlVmlkZW9UcmFja1Byb3h5OwogCiBjbGFz
cyBSZW1vdGVNZWRpYVBsYXllclByb3h5IGZpbmFsCkBAIC0xMDUsNyArMTA3LDcgQEAgY2xhc3Mg
UmVtb3RlTWVkaWFQbGF5ZXJQcm94eSBmaW5hbAogICAgICwgcHVibGljIElQQzo6TWVzc2FnZVJl
Y2VpdmVyIHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAgICBSZW1v
dGVNZWRpYVBsYXllclByb3h5KFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5JiwgV2ViQ29y
ZTo6TWVkaWFQbGF5ZXJJZGVudGlmaWVyLCBSZWY8SVBDOjpDb25uZWN0aW9uPiYmLCBXZWJDb3Jl
OjpNZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50aWZpZXIsIFJlbW90ZU1lZGlhUGxh
eWVyUHJveHlDb25maWd1cmF0aW9uJiYpOworICAgIFJlbW90ZU1lZGlhUGxheWVyUHJveHkoUmVt
b3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkmLCBXZWJDb3JlOjpNZWRpYVBsYXllcklkZW50aWZp
ZXIsIFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYsIFdlYkNvcmU6Ok1lZGlhUGxheWVyRW51bXM6Ok1l
ZGlhRW5naW5lSWRlbnRpZmllciwgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eUNvbmZpZ3VyYXRpb24m
JiwgUmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXAmKTsKICAgICB+UmVtb3RlTWVkaWFQbGF5ZXJQ
cm94eSgpOwogCiAgICAgV2ViQ29yZTo6TWVkaWFQbGF5ZXJJZGVudGlmaWVyIGlkZW5kaWZpZXIo
KSBjb25zdCB7IHJldHVybiBtX2lkOyB9CkBAIC0zMzMsOCArMzM1LDggQEAgcHJpdmF0ZToKICNp
ZiBQTEFURk9STShDT0NPQSkKICAgICB2b2lkIG5hdGl2ZUltYWdlRm9yQ3VycmVudFRpbWUoQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChzdGQ6Om9wdGlvbmFsPFdURjo6TWFjaFNlbmRSaWdodD4mJiwg
V2ViQ29yZTo6RGVzdGluYXRpb25Db2xvclNwYWNlKT4mJik7CiAgICAgdm9pZCBjb2xvclNwYWNl
KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6RGVzdGluYXRpb25Db2xvclNwYWNlKT4m
Jik7Ci0gICAgdm9pZCB2aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWVJZkNoYW5nZWQoQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChzdGQ6Om9wdGlvbmFsPFJlZlB0cjxXZWJDb3JlOjpWaWRlb0ZyYW1lQ1Y+
PiYmLCBib29sKT4mJik7CiAjZW5kaWYKKyAgICB2b2lkIHZpZGVvRnJhbWVGb3JDdXJyZW50VGlt
ZUlmQ2hhbmdlZChDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8UmVtb3RlVmlk
ZW9GcmFtZVByb3h5OjpQcm9wZXJ0aWVzPiYmLCBib29sKT4mJik7CiAKICNpZiAhUkVMRUFTRV9M
T0dfRElTQUJMRUQKICAgICBjb25zdCBMb2dnZXImIG1lZGlhUGxheWVyTG9nZ2VyKCkgZmluYWwg
eyByZXR1cm4gbV9sb2dnZXI7IH0KQEAgLTM5MCw2ICszOTIsNyBAQCBwcml2YXRlOgogICAgIFNj
b3BlZFJlbmRlcmluZ1Jlc291cmNlc1JlcXVlc3QgbV9yZW5kZXJpbmdSZXNvdXJjZXNSZXF1ZXN0
OwogCiAgICAgYm9vbCBtX29ic2VydmluZ1RpbWVDaGFuZ2VzIHsgZmFsc2UgfTsKKyAgICBSZWY8
UmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXA+IG1fdmlkZW9GcmFtZU9iamVjdEhlYXA7CiAgICAg
UmVmUHRyPFdlYkNvcmU6OlZpZGVvRnJhbWU+IG1fdmlkZW9GcmFtZUZvckN1cnJlbnRUaW1lOwog
I2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAogICAgIGNvbnN0IExvZ2dlciYgbV9sb2dnZXI7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5
ZXJQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1v
dGVNZWRpYVBsYXllclByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IGNjMTM3YWRlNTE5YmM2ZDQ3MDc1
NmNmNTcwMWQwNDY2ZTE1ZGQ3N2QuLmRhNzFkZTVlMWZjZWQ4YmQ5OTA5NmFhYzk1ZWZjZTMyMzdj
ZjU4MWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVN
ZWRpYVBsYXllclByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5Lm1lc3NhZ2VzLmluCkBAIC0xMjUsOCArMTI1
LDggQEAgbWVzc2FnZXMgLT4gUmVtb3RlTWVkaWFQbGF5ZXJQcm94eSBOb3RSZWZDb3VudGVkIHsK
ICNpZiBQTEFURk9STShDT0NPQSkKICAgICBOYXRpdmVJbWFnZUZvckN1cnJlbnRUaW1lKCkgLT4g
KHN0ZDo6b3B0aW9uYWw8TWFjaFNlbmRSaWdodD4gc2VuZFJpZ2h0LCBXZWJDb3JlOjpEZXN0aW5h
dGlvbkNvbG9yU3BhY2UgY29sb3JTcGFjZSkgU3luY2hyb25vdXMKICAgICBDb2xvclNwYWNlKCkg
LT4gKFdlYkNvcmU6OkRlc3RpbmF0aW9uQ29sb3JTcGFjZSBjb2xvclNwYWNlKSBTeW5jaHJvbm91
cwotICAgIFZpZGVvRnJhbWVGb3JDdXJyZW50VGltZUlmQ2hhbmdlZCgpIC0+IChzdGQ6Om9wdGlv
bmFsPFJlZlB0cjxXZWJDb3JlOjpWaWRlb0ZyYW1lQ1Y+PiB2aWRlb0ZyYW1lLCBib29sIGNoYW5n
ZWQpIFN5bmNocm9ub3VzCiAjZW5kaWYKKyAgICBWaWRlb0ZyYW1lRm9yQ3VycmVudFRpbWVJZkNo
YW5nZWQoKSAtPiAoc3RkOjpvcHRpb25hbDxXZWJLaXQ6OlJlbW90ZVZpZGVvRnJhbWVQcm94eTo6
UHJvcGVydGllcz4gdmlkZW9GcmFtZSwgYm9vbCBjaGFuZ2VkKSBTeW5jaHJvbm91cwogCiAgICAg
UGxheUF0SG9zdFRpbWUoTW9ub3RvbmljVGltZSB0aW1lKQogICAgIFBhdXNlQXRIb3N0VGltZShN
b25vdG9uaWNUaW1lIHRpbWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
bWVkaWEvUmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXAuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL21lZGlhL1JlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwLmNwcAppbmRleCBmODdiOTMx
ZDk3MjFlNTc0ZjMxMzk5NzY3ZWJlZTg0ZDNhNzNmNmViLi44NDU2MjQ4OGY0YTI2YWUwMGM5MDE3
NTlmYWVkYzE1YWIwYWYxYWYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
bWVkaWEvUmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXAuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcC5jcHAKQEAgLTI2LDEz
ICsyNiwxNSBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlJlbW90ZVZpZGVvRnJh
bWVPYmplY3RIZWFwLmgiCiAKLSNpZiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIEVOQUJMRShNRURJ
QV9TVFJFQU0pCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBFTkFCTEUoVklERU8pCiAjaW5j
bHVkZSAiR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oIgogI2luY2x1ZGUgIlJlbW90ZVZpZGVv
RnJhbWVPYmplY3RIZWFwTWVzc2FnZXMuaCIKICNpbmNsdWRlICJSZW1vdGVWaWRlb0ZyYW1lT2Jq
ZWN0SGVhcFByb3h5UHJvY2Vzc29yTWVzc2FnZXMuaCIKICNpbmNsdWRlICJSZW1vdGVWaWRlb0Zy
YW1lUHJveHkuaCIKIAorI2lmIFBMQVRGT1JNKENPQ09BKQogI2luY2x1ZGUgPHBhbC9jZi9Db3Jl
TWVkaWFTb2Z0TGluay5oPgorI2VuZGlmCiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCkBAIC01Nyw3
ICs1OSw5IEBAIFJlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwOjp+UmVtb3RlVmlkZW9GcmFtZU9i
amVjdEhlYXAoKQogdm9pZCBSZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcDo6c3RvcExpc3Rlbmlu
Z0ZvcklQQyhSZWY8UmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXA+JiYgcmVmRnJvbUNvbm5lY3Rp
b24pCiB7CiAgICAgYXNzZXJ0SXNDdXJyZW50KG1fY29uc3VtZVRocmVhZCk7CisjaWYgUExBVEZP
Uk0oQ09DT0EpCiAgICAgbV9zaGFyZWRWaWRlb0ZyYW1lV3JpdGVyLmRpc2FibGUoKTsKKyNlbmRp
ZgogCiAgICAgaWYgKGF1dG8qIGdwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MgPSBzdGQ6OmV4Y2hh
bmdlKG1fZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2VzcywgbnVsbHB0cikpIHsKICAgICAgICAgZ3B1
Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy0+bWVzc2FnZVJlY2VpdmVyTWFwKCkucmVtb3ZlTWVzc2Fn
ZVJlY2VpdmVyKE1lc3NhZ2VzOjpSZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcDo6bWVzc2FnZVJl
Y2VpdmVyTmFtZSgpKTsKQEAgLTgyLDYgKzg2LDcgQEAgdm9pZCBSZW1vdGVWaWRlb0ZyYW1lT2Jq
ZWN0SGVhcDo6cmVsZWFzZVZpZGVvRnJhbWUoUmVtb3RlVmlkZW9GcmFtZVdyaXRlUmVmZXJlbmMK
ICAgICByZXRpcmVSZW1vdmUoV1RGTW92ZSh3cml0ZSkpOwogfQogCisjaWYgUExBVEZPUk0oQ09D
T0EpCiB2b2lkIFJlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwOjpnZXRWaWRlb0ZyYW1lQnVmZmVy
KFJlbW90ZVZpZGVvRnJhbWVSZWFkUmVmZXJlbmNlJiYgcmVhZCkKIHsKICAgICBhdXRvIGlkZW50
aWZpZXIgPSByZWFkLmlkZW50aWZpZXIoKTsKQEAgLTk5LDYgKzEwNCw3IEBAIHZvaWQgUmVtb3Rl
VmlkZW9GcmFtZU9iamVjdEhlYXA6OmdldFZpZGVvRnJhbWVCdWZmZXIoUmVtb3RlVmlkZW9GcmFt
ZVJlYWRSZWZlcmVuCiAgICAgKTsKICAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlJl
bW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwUHJveHlQcm9jZXNzb3I6Ok5ld1ZpZGVvRnJhbWVCdWZm
ZXIgeyBpZGVudGlmaWVyIH0sIDApOwogfQorI2VuZGlmCiAKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwLmgg
Yi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlVmlkZW9GcmFtZU9iamVjdEhl
YXAuaAppbmRleCBhZDBjYjNiOTYxODQ2YzAxNDU3OWFiZmUzN2I3ZDE3Y2VlZTQ0NmZiLi5lYmI5
MDRlYjU1YjBmMzI0YzE3NWE4NWJhY2EzY2E1MTlmNjNiZDkxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXAuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlVmlkZW9GcmFtZU9iamVjdEhl
YXAuaApAQCAtMjUsMTMgKzI1LDE2IEBACiAKICNwcmFnbWEgb25jZQogCi0jaWYgRU5BQkxFKEdQ
VV9QUk9DRVNTKSAmJiBFTkFCTEUoTUVESUFfU1RSRUFNKQorI2lmIEVOQUJMRShHUFVfUFJPQ0VT
UykgJiYgRU5BQkxFKFZJREVPKQogI2luY2x1ZGUgIlJlbW90ZVZpZGVvRnJhbWVJZGVudGlmaWVy
LmgiCi0jaW5jbHVkZSAiU2hhcmVkVmlkZW9GcmFtZS5oIgogI2luY2x1ZGUgIlRocmVhZFNhZmVP
YmplY3RIZWFwLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9NZWRpYVNhbXBsZS5oPgogI2luY2x1ZGUg
PHd0Zi9UaHJlYWRBc3NlcnRpb25zLmg+CiAKKyNpZiBQTEFURk9STShDT0NPQSkKKyNpbmNsdWRl
ICJTaGFyZWRWaWRlb0ZyYW1lLmgiCisjZW5kaWYKKwogbmFtZXNwYWNlIFdlYktpdCB7CiBjbGFz
cyBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOwogCkBAIC02Miw3ICs2NSw5IEBAIHByaXZhdGU6
CiAgICAgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyogbV9ncHVDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzIFdURl9HVUFSREVEX0JZX0xPQ0sobV9jb25zdW1lVGhyZWFkKTsKICAgICBjb25zdCBSZWY8
SVBDOjpDb25uZWN0aW9uPiBtX2Nvbm5lY3Rpb247CiAgICAgVGhyZWFkQXNzZXJ0aW9uIG1fY29u
c3VtZVRocmVhZCBOT19VTklRVUVfQUREUkVTUzsKKyNpZiBQTEFURk9STShDT0NPQSkKICAgICBT
aGFyZWRWaWRlb0ZyYW1lV3JpdGVyIG1fc2hhcmVkVmlkZW9GcmFtZVdyaXRlcjsKKyNlbmRpZgog
fTsKIAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3Rl
VmlkZW9GcmFtZU9iamVjdEhlYXAubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvbWVkaWEvUmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXAubWVzc2FnZXMuaW4KaW5kZXggMWQz
ZDI0M2UxNTE3NWVmZjljOGQ3ZWZjYmJiZDBiMTUyZGU1Y2E2Mi4uMWNlMmE0OTZlNWVkYmU3NWE3
ZTdjNjQyN2ZiNGViNTRmMmQ0OWEwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL21lZGlhL1JlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwLm1lc3NhZ2VzLmluCisrKyBiL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcC5t
ZXNzYWdlcy5pbgpAQCAtMjEsNyArMjEsNyBAQAogIyBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCiAjIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KIAotI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgRU5B
QkxFKE1FRElBX1NUUkVBTSkKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIEVOQUJMRShWSURF
TykKIG1lc3NhZ2VzIC0+IFJlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwIE5vdFJlZkNvdW50ZWQg
ewogICAgIEdldFZpZGVvRnJhbWVCdWZmZXIoV2ViS2l0OjpSZW1vdGVWaWRlb0ZyYW1lUmVhZFJl
ZmVyZW5jZSBpZGVudGlmaWVyKQogICAgIFJlbGVhc2VWaWRlb0ZyYW1lKFdlYktpdDo6UmVtb3Rl
VmlkZW9GcmFtZVdyaXRlUmVmZXJlbmNlIGlkZW50aWZpZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9UaHJlYWRTYWZlT2JqZWN0SGVhcC5oIGIvU291cmNlL1dlYktpdC9TaGFy
ZWQvVGhyZWFkU2FmZU9iamVjdEhlYXAuaAppbmRleCBjNWM1ODcyZGFhYzk5NGZlNDFmNWI2Yjkx
M2MyNzM4YTRmZGI0M2M1Li4xNWRjNjU3MjIwMmM5MDBmMTlmNzY4ZDA0MzQ1OTNkN2FlOGZiMTM1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9UaHJlYWRTYWZlT2JqZWN0SGVhcC5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1RocmVhZFNhZmVPYmplY3RIZWFwLmgKQEAgLTI1
LDcgKzI1LDYgQEAKIAogI3ByYWdtYSBvbmNlCiAKLSNpZiBFTkFCTEUoR1BVX1BST0NFU1MpICYm
IEVOQUJMRShNRURJQV9TVFJFQU0pCiAjaW5jbHVkZSAiSVBDVGVzdGVyLmgiCiAjaW5jbHVkZSAi
T2JqZWN0SWRlbnRpZmllclJlZmVyZW5jZVRyYWNrZXIuaCIKICNpbmNsdWRlIDx3dGYvQ29uZGl0
aW9uLmg+CkBAIC0yMDAsNCArMTk5LDMgQEAgdm9pZCBUaHJlYWRTYWZlT2JqZWN0SGVhcDxJZGVu
dGlmaWVyLCBIZWxkVHlwZT46OmFkZChJZGVudGlmaWVyIGlkZW50aWZpZXIsIEhlbGQKIH0KIAog
fQotI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL0dQVVBy
b2Nlc3NDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvR1BVUHJv
Y2Vzc0Nvbm5lY3Rpb24uY3BwCmluZGV4IDQ0YThjZTBiYWZmOWMzMDY1YzVkNTRlMTU4ZGM5YTAx
MWU0ZDIzOWYuLjY4MzIyNDNjODUxZjBjZGFkNGJmZDA1YzAwNmFlYTAzMGVkOGM2NTcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc0Nvbm5lY3Rpb24u
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc0Nvbm5lY3Rp
b24uY3BwCkBAIC03Niw3ICs3Niw3IEBACiAjaW5jbHVkZSAiVXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXJNZXNzYWdlcy5oIgogI2VuZGlmCiAKLSNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorI2lmIEVO
QUJMRShWSURFTykKICNpbmNsdWRlICJSZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcFByb3h5Lmgi
CiAjaW5jbHVkZSAiUmVtb3RlVmlkZW9GcmFtZVByb3h5LmgiCiAjZW5kaWYKQEAgLTE2Niw3ICsx
NjYsNyBAQCB2b2lkIEdQVVByb2Nlc3NDb25uZWN0aW9uOjpyZXNldEF1ZGlvTWVkaWFTdHJlYW1U
cmFja1JlbmRlcmVySW50ZXJuYWxVbml0KEF1ZGlvTQogfQogI2VuZGlmCiAKLSNpZiBFTkFCTEUo
TUVESUFfU1RSRUFNKQorI2lmIEVOQUJMRShWSURFTykKIFJlbW90ZVZpZGVvRnJhbWVPYmplY3RI
ZWFwUHJveHkmIEdQVVByb2Nlc3NDb25uZWN0aW9uOjp2aWRlb0ZyYW1lT2JqZWN0SGVhcFByb3h5
KCkKIHsKICAgICBpZiAoIW1fdmlkZW9GcmFtZU9iamVjdEhlYXBQcm94eSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc0Nvbm5lY3Rpb24uaCBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc0Nvbm5lY3Rpb24uaAppbmRleCA5
ZWFjZTZiYjc5YTc2Yjc1OTJlYjM5ZjIyYTZiYWViMTE1MmVlNTFlLi40Zjg4ZTFjZGUwNWYzMzVm
OTVjNzNlNWY5YzAzNWRlZmFiNGJiNDZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvR1BVL0dQVVByb2Nlc3NDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0dQVS9HUFVQcm9jZXNzQ29ubmVjdGlvbi5oCkBAIC01Nyw3ICs1Nyw3IEBAIHN0cnVj
dCBHUFVQcm9jZXNzQ29ubmVjdGlvbkluaXRpYWxpemF0aW9uUGFyYW1ldGVyczsKIHN0cnVjdCBP
dmVycmlkZVNjcmVlbkRhdGFGb3JUZXN0aW5nOwogc3RydWN0IFdlYlBhZ2VDcmVhdGlvblBhcmFt
ZXRlcnM7CiAKLSNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorI2lmIEVOQUJMRShWSURFTykKIGNs
YXNzIFJlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwUHJveHk7CiAjZW5kaWYKIApAQCAtODIsNyAr
ODIsNyBAQCBwdWJsaWM6CiAgICAgU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlciYgc2Ft
cGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlcigpOwogICAgIHZvaWQgcmVzZXRBdWRpb01lZGlh
U3RyZWFtVHJhY2tSZW5kZXJlckludGVybmFsVW5pdChBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5k
ZXJlckludGVybmFsVW5pdElkZW50aWZpZXIpOwogI2VuZGlmCi0jaWYgRU5BQkxFKE1FRElBX1NU
UkVBTSkKKyNpZiBFTkFCTEUoVklERU8pCiAgICAgUmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXBQ
cm94eSYgdmlkZW9GcmFtZU9iamVjdEhlYXBQcm94eSgpOwogI2VuZGlmCiAKQEAgLTE0OCw3ICsx
NDgsNyBAQCBwcml2YXRlOgogI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBFTkFCTEUoTUVESUFfU1RS
RUFNKQogICAgIHN0ZDo6dW5pcXVlX3B0cjxTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2Vy
PiBtX3NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXI7CiAjZW5kaWYKLSNpZiBFTkFCTEUo
TUVESUFfU1RSRUFNKQorI2lmIEVOQUJMRShWSURFTykKICAgICBSZWZQdHI8UmVtb3RlVmlkZW9G
cmFtZU9iamVjdEhlYXBQcm94eT4gbV92aWRlb0ZyYW1lT2JqZWN0SGVhcFByb3h5OwogI2VuZGlm
CiAjaWYgUExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShXRUJfQVVESU8pCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4
dEdMUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1v
dGVHcmFwaGljc0NvbnRleHRHTFByb3h5LmNwcAppbmRleCBjODk2YWI3ZmRiYjZmMjg4Y2UzYzYy
NDJlNGViMGRlZmZkYzQwNTE2Li4zZmIyOGE2ZGI4NGZmZTE1Y2MwMzM1YzNkZDM5NjhmOTExZTBl
N2IwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1Jl
bW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eS5jcHAKQEAgLTMy
LDExICszMiwxMSBAQAogI2luY2x1ZGUgIkdQVVByb2Nlc3NDb25uZWN0aW9uLmgiCiAjaW5jbHVk
ZSAiUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xNZXNzYWdlcy5oIgogI2luY2x1ZGUgIlJlbW90ZUdy
YXBoaWNzQ29udGV4dEdMUHJveHlNZXNzYWdlcy5oIgotI2luY2x1ZGUgIlJlbW90ZVZpZGVvRnJh
bWVPYmplY3RIZWFwUHJveHkuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCiAjaW5jbHVkZSA8
V2ViQ29yZS9JbWFnZUJ1ZmZlci5oPgogCi0jaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyNpZiBF
TkFCTEUoVklERU8pCisjaW5jbHVkZSAiUmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXBQcm94eS5o
IgogI2luY2x1ZGUgIlJlbW90ZVZpZGVvRnJhbWVQcm94eS5oIgogI2VuZGlmCiAKQEAgLTE4Miwx
MCArMTgyLDE1IEBAIFJlZlB0cjxXZWJDb3JlOjpNZWRpYVNhbXBsZT4gUmVtb3RlR3JhcGhpY3ND
b250ZXh0R0xQcm94eTo6cGFpbnRDb21wb3NpdGVkUmVzdWx0CiB9CiAjZW5kaWYKIAorI2lmIEVO
QUJMRShWSURFTykKIGJvb2wgUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eTo6Y29weVRleHR1
cmVGcm9tTWVkaWEoTWVkaWFQbGF5ZXImIG1lZGlhUGxheWVyLCBQbGF0Zm9ybUdMT2JqZWN0IHRl
eHR1cmUsIEdDR0xlbnVtIHRhcmdldCwgR0NHTGludCBsZXZlbCwgR0NHTGVudW0gaW50ZXJuYWxG
b3JtYXQsIEdDR0xlbnVtIGZvcm1hdCwgR0NHTGVudW0gdHlwZSwgYm9vbCBwcmVtdWx0aXBseUFs
cGhhLCBib29sIGZsaXBZKQogeworICAgIGF1dG8gdmlkZW9GcmFtZSA9IG1lZGlhUGxheWVyLnZp
ZGVvRnJhbWVGb3JDdXJyZW50VGltZSgpOworICAgIC8vIFZpZGVvIGluIFdQIHdoaWxlIFdlYkdM
IGluIEdQVVAgaXMgbm90IHN1cHBvcnRlZC4KKyAgICBpZiAoIXZpZGVvRnJhbWUgfHwgIWlzPFJl
bW90ZVZpZGVvRnJhbWVQcm94eT4oKnZpZGVvRnJhbWUpKQorICAgICAgICByZXR1cm4gZmFsc2U7
CiAgICAgYm9vbCByZXN1bHQgPSBmYWxzZTsKLSAgICBhdXRvIHNlbmRSZXN1bHQgPSBzZW5kU3lu
YyhNZXNzYWdlczo6UmVtb3RlR3JhcGhpY3NDb250ZXh0R0w6OkNvcHlUZXh0dXJlRnJvbU1lZGlh
KG1lZGlhUGxheWVyLmlkZW50aWZpZXIoKSwgdGV4dHVyZSwgdGFyZ2V0LCBsZXZlbCwgaW50ZXJu
YWxGb3JtYXQsIGZvcm1hdCwgdHlwZSwgcHJlbXVsdGlwbHlBbHBoYSwgZmxpcFkpLCBNZXNzYWdl
czo6UmVtb3RlR3JhcGhpY3NDb250ZXh0R0w6OkNvcHlUZXh0dXJlRnJvbU1lZGlhOjpSZXBseShy
ZXN1bHQpKTsKKyAgICBhdXRvIHNlbmRSZXN1bHQgPSBzZW5kU3luYyhNZXNzYWdlczo6UmVtb3Rl
R3JhcGhpY3NDb250ZXh0R0w6OkNvcHlUZXh0dXJlRnJvbVZpZGVvRnJhbWUoZG93bmNhc3Q8UmVt
b3RlVmlkZW9GcmFtZVByb3h5PigqdmlkZW9GcmFtZSkucmVhZCgpLCB0ZXh0dXJlLCB0YXJnZXQs
IGxldmVsLCBpbnRlcm5hbEZvcm1hdCwgZm9ybWF0LCB0eXBlLCBwcmVtdWx0aXBseUFscGhhLCBm
bGlwWSksIE1lc3NhZ2VzOjpSZW1vdGVHcmFwaGljc0NvbnRleHRHTDo6Q29weVRleHR1cmVGcm9t
VmlkZW9GcmFtZTo6UmVwbHkocmVzdWx0KSk7CiAgICAgaWYgKCFzZW5kUmVzdWx0KSB7CiAgICAg
ICAgIG1hcmtDb250ZXh0TG9zdCgpOwogICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC0xOTMsNiAr
MTk4LDcgQEAgYm9vbCBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5Ojpjb3B5VGV4dHVyZUZy
b21NZWRpYShNZWRpYVBsYXllciYgbWVkaWFQbGF5ZXIKIAogICAgIHJldHVybiByZXN1bHQ7CiB9
CisjZW5kaWYKIAogdm9pZCBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5OjpzeW50aGVzaXpl
R0xFcnJvcihHQ0dMZW51bSBlcnJvcikKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eS5oIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRH
TFByb3h5LmgKaW5kZXggMzQ0ZmU5ODVkODAzY2RiMjdjZjFlNzJhZGZiNWI2OWFlNjcwZjA2Ny4u
Zjc2NTQwM2E1Njk3MGE0N2ExZDNmNmMzMTNiMDViNzA4MDE4ZjM0MyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRH
TFByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1v
dGVHcmFwaGljc0NvbnRleHRHTFByb3h5LmgKQEAgLTczLDcgKzczLDkgQEAgcHVibGljOgogI2Vu
ZGlmCiAgICAgdm9pZCBzeW50aGVzaXplR0xFcnJvcihHQ0dMZW51bSBlcnJvcikgZmluYWw7CiAg
ICAgR0NHTGVudW0gZ2V0RXJyb3IoKSBmaW5hbDsKKyNpZiBFTkFCTEUoVklERU8pCiAgICAgYm9v
bCBjb3B5VGV4dHVyZUZyb21NZWRpYShXZWJDb3JlOjpNZWRpYVBsYXllciYsIFBsYXRmb3JtR0xP
YmplY3QgdGV4dHVyZSwgR0NHTGVudW0gdGFyZ2V0LCBHQ0dMaW50IGxldmVsLCBHQ0dMZW51bSBp
bnRlcm5hbEZvcm1hdCwgR0NHTGVudW0gZm9ybWF0LCBHQ0dMZW51bSB0eXBlLCBib29sIHByZW11
bHRpcGx5QWxwaGEsIGJvb2wgZmxpcFkpIGZpbmFsOworI2VuZGlmCiAgICAgdm9pZCBzaW11bGF0
ZUV2ZW50Rm9yVGVzdGluZyhTaW11bGF0ZWRFdmVudEZvclRlc3RpbmcpIGZpbmFsOwogCiAgICAg
Ly8gRnVuY3Rpb25zIHdpdGggYSBnZW5lcmF0ZWQgaW1wbGVtZW50YXRpb24uIFRoaXMgbGlzdCBp
cyB1c2VkIGJ5IGdlbmVyYXRlLWdwdXAtd2ViZ2wgc2NyaXB0LgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuY3Bw
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVS
ZW1vdGUuY3BwCmluZGV4IGMxOWYyNTUwYWRiMzBhYzczYTk2MGRiZGY0ODNmYjU4OTBjM2YwYjMu
LmVhNGRjYjM3NGQwYzViOGRjYjkxMDkwNGZmZGRjYzAyYTQyZTk5N2IgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3Rl
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVy
UHJpdmF0ZVJlbW90ZS5jcHAKQEAgLTEwMDUsMTkgKzEwMDUsMTYgQEAgYm9vbCBNZWRpYVBsYXll
clByaXZhdGVSZW1vdGU6OmNvcHlWaWRlb1RleHR1cmVUb1BsYXRmb3JtVGV4dHVyZShXZWJDb3Jl
OjpHcmFwaGkKIAogUmVmUHRyPFdlYkNvcmU6OlZpZGVvRnJhbWU+IE1lZGlhUGxheWVyUHJpdmF0
ZVJlbW90ZTo6dmlkZW9GcmFtZUZvckN1cnJlbnRUaW1lKCkKIHsKLS8vIEZJWE1FOiBUaGlzIHdp
bGwgYmUgbWFkZSBjcm9zcy1wbGF0Zm9ybSBhZ2FpbiBzb29uLiBUaGVyZSBhcmUgbm8gb3RoZXIg
cGxhdGZvcm1zIHVzaW5nIHRoaXMgYXQgdGhlIG1vbWVudC4KLSNpZiBQTEFURk9STShDT0NPQSkK
LSAgICBzdGQ6Om9wdGlvbmFsPFJlZlB0cjxXZWJDb3JlOjpWaWRlb0ZyYW1lQ1Y+PiByZXN1bHQ7
CisgICAgc3RkOjpvcHRpb25hbDxSZW1vdGVWaWRlb0ZyYW1lUHJveHk6OlByb3BlcnRpZXM+IHJl
c3VsdDsKICAgICBib29sIGNoYW5nZWQgPSBmYWxzZTsKICAgICBpZiAoIWNvbm5lY3Rpb24oKS5z
ZW5kU3luYyhNZXNzYWdlczo6UmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6VmlkZW9GcmFtZUZvckN1
cnJlbnRUaW1lSWZDaGFuZ2VkKCksIE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVBsYXllclByb3h5OjpW
aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWVJZkNoYW5nZWQ6OlJlcGx5KHJlc3VsdCwgY2hhbmdlZCks
IG1faWQpKQotICAgICAgICByZXR1cm4gbV92aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWU7CisgICAg
ICAgIHJldHVybiBudWxscHRyOwogICAgIGlmIChjaGFuZ2VkKSB7CiAgICAgICAgIGlmIChyZXN1
bHQpCi0gICAgICAgICAgICBtX3ZpZGVvRnJhbWVGb3JDdXJyZW50VGltZSA9IFdURk1vdmUoKnJl
c3VsdCk7CisgICAgICAgICAgICBtX3ZpZGVvRnJhbWVGb3JDdXJyZW50VGltZSA9IFJlbW90ZVZp
ZGVvRnJhbWVQcm94eTo6Y3JlYXRlKGNvbm5lY3Rpb24oKSwgdmlkZW9GcmFtZU9iamVjdEhlYXBQ
cm94eSgpLCBXVEZNb3ZlKCpyZXN1bHQpKTsKICAgICAgICAgZWxzZQogICAgICAgICAgICAgbV92
aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWUgPSBudWxscHRyOwogICAgIH0KLSNlbmRpZgogICAgIHJl
dHVybiBtX3ZpZGVvRnJhbWVGb3JDdXJyZW50VGltZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuaCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVt
b3RlLmgKaW5kZXggMjlmOTEyZDRlOGI4N2I1N2JhMTU2MjRhNmRjNWUwNmI3YzVjMWI5ZC4uMzhl
Zjg4OTcxODIwMjk0NDQwM2M1MmY4M2I5NDI3MTcxMjExOGU2NCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0
ZVJlbW90ZS5oCkBAIC0zNCw2ICszNCw4IEBACiAjaW5jbHVkZSAiUmVtb3RlTWVkaWFQbGF5ZXJT
dGF0ZS5oIgogI2luY2x1ZGUgIlJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyLmgiCiAjaW5j
bHVkZSAiUmVtb3RlTWVkaWFSZXNvdXJjZVByb3h5LmgiCisjaW5jbHVkZSAiUmVtb3RlVmlkZW9G
cmFtZU9iamVjdEhlYXBQcm94eS5oIgorI2luY2x1ZGUgIlJlbW90ZVZpZGVvRnJhbWVQcm94eS5o
IgogI2luY2x1ZGUgIlRleHRUcmFja1ByaXZhdGVSZW1vdGUuaCIKICNpbmNsdWRlICJUcmFja1By
aXZhdGVSZW1vdGVJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiVmlkZW9UcmFja1ByaXZhdGVSZW1v
dGUuaCIKQEAgLTQxMyw2ICs0MTUsNyBAQCBwcml2YXRlOgogI2lmIFBMQVRGT1JNKENPQ09BKQog
ICAgIHZvaWQgcHVzaFZpZGVvRnJhbWVNZXRhZGF0YShXZWJDb3JlOjpWaWRlb0ZyYW1lTWV0YWRh
dGEmJiwgUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+JiYpOwogI2VuZGlmCisgICAgUmVtb3Rl
VmlkZW9GcmFtZU9iamVjdEhlYXBQcm94eSYgdmlkZW9GcmFtZU9iamVjdEhlYXBQcm94eSgpIGNv
bnN0IHsgcmV0dXJuIG1fbWFuYWdlci5ncHVQcm9jZXNzQ29ubmVjdGlvbigpLnZpZGVvRnJhbWVP
YmplY3RIZWFwUHJveHkoKTsgfQogCiAgICAgV2Vha1B0cjxXZWJDb3JlOjpNZWRpYVBsYXllcj4g
bV9wbGF5ZXI7CiAgICAgUmVmPFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFSZXNvdXJjZUxvYWRlcj4g
bV9tZWRpYVJlc291cmNlTG9hZGVyOwpAQCAtNDYxLDcgKzQ2NCw3IEBAIHByaXZhdGU6CiAgICAg
Ym9vbCBtX3dhaXRpbmdGb3JLZXkgeyBmYWxzZSB9OwogICAgIGJvb2wgbV90aW1lSXNQcm9ncmVz
c2luZyB7IGZhbHNlIH07CiAgICAgYm9vbCBtX3JlbmRlcmluZ0NhbkJlQWNjZWxlcmF0ZWQgeyBm
YWxzZSB9OwotICAgIFJlZlB0cjxXZWJDb3JlOjpWaWRlb0ZyYW1lPiBtX3ZpZGVvRnJhbWVGb3JD
dXJyZW50VGltZTsKKyAgICBSZWZQdHI8UmVtb3RlVmlkZW9GcmFtZVByb3h5PiBtX3ZpZGVvRnJh
bWVGb3JDdXJyZW50VGltZTsKICNpZiBQTEFURk9STShDT0NPQSkKICAgICBSZXRhaW5QdHI8Q1ZQ
aXhlbEJ1ZmZlclJlZj4gbV9waXhlbEJ1ZmZlckdhdGhlcmVkV2l0aFZpZGVvRnJhbWVNZXRhZGF0
YTsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6UGl4ZWxCdWZmZXJDb25mb3JtZXJDVj4g
bV9waXhlbEJ1ZmZlckNvbmZvcm1lcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9HUFUvbWVkaWEvUmVtb3RlVmlkZW9GcmFtZUlkZW50aWZpZXIuaCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlVmlkZW9GcmFtZUlkZW50aWZpZXIuaAppbmRl
eCBmYjAwMWRhNzQ4MjM5ZjM4ZGQ5ZWQwMzI1YzU5YjdiODNjOTI1ODczLi5mNTg5YjdkYmRlYTkz
OWM5NDA5Nzg0YzBmYjBmZmYzMmFkZDUzODFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZVZpZGVvRnJhbWVJZGVudGlmaWVyLmgKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVWaWRlb0ZyYW1lSWRlbnRpZmll
ci5oCkBAIC0yNSw3ICsyNSw3IEBACiAKICNwcmFnbWEgb25jZQogCi0jaWYgRU5BQkxFKEdQVV9Q
Uk9DRVNTKSAmJiBFTkFCTEUoTUVESUFfU1RSRUFNKQorI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykg
JiYgRU5BQkxFKFZJREVPKQogCiAjaW5jbHVkZSAiT2JqZWN0SWRlbnRpZmllclJlZmVyZW5jZVRy
YWNrZXIuaCIKICNpbmNsdWRlIDxXZWJDb3JlL1Byb2Nlc3NRdWFsaWZpZWQuaD4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlVmlkZW9GcmFtZVBy
b3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlVmlkZW9G
cmFtZVByb3h5LmNwcAppbmRleCBkODM3YTQ2YmFmMTQwNzc0ZWE2ZWRkODI0OWNkZTYyMzI0YjJk
NDgyLi5kMTgwMzRiNDYzMTFhZDM4OWE2YWI2YTg5NWYxY2EyYjE4MTc5OTE4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZVZpZGVvRnJhbWVQcm94
eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVWaWRl
b0ZyYW1lUHJveHkuY3BwCkBAIC0yNiwxMyArMjYsMTUgQEAKICNpbmNsdWRlICJjb25maWcuaCIK
ICNpbmNsdWRlICJSZW1vdGVWaWRlb0ZyYW1lUHJveHkuaCIKIAotI2lmIEVOQUJMRShHUFVfUFJP
Q0VTUykgJiYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpICYm
IEVOQUJMRShWSURFTykKICNpbmNsdWRlICJHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgiCiAj
aW5jbHVkZSAiUmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXBNZXNzYWdlcy5oIgogI2luY2x1ZGUg
IlJlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwUHJveHkuaCIKLSNpbmNsdWRlIDxXZWJDb3JlL1Jl
YWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZUNvY29hLmg+CiAKICNpZiBQTEFURk9STShDT0NPQSkK
KyNpbmNsdWRlIDxXZWJDb3JlL0NWVXRpbGl0aWVzLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9SZWFs
dGltZUluY29taW5nVmlkZW9Tb3VyY2VDb2NvYS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvVmlkZW9G
cmFtZUNWLmg+CiAjaW5jbHVkZSA8d3RmL3RocmVhZHMvQmluYXJ5U2VtYXBob3JlLmg+CiAjZW5k
aWYKIApAQCAtMTE5LDYgKzEyMSwxNSBAQCBDVlBpeGVsQnVmZmVyUmVmIFJlbW90ZVZpZGVvRnJh
bWVQcm94eTo6cGl4ZWxCdWZmZXIoKSBjb25zdAogICAgIH0KICAgICByZXR1cm4gbV9waXhlbEJ1
ZmZlci5nZXQoKTsKIH0KKworUmVmUHRyPFdlYkNvcmU6OlZpZGVvRnJhbWVDVj4gUmVtb3RlVmlk
ZW9GcmFtZVByb3h5Ojphc1ZpZGVvRnJhbWVDVigpCit7CisgICAgYXV0byBidWZmZXIgPSBwaXhl
bEJ1ZmZlcigpOworICAgIGlmICghYnVmZmVyKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAg
ICByZXR1cm4gVmlkZW9GcmFtZUNWOjpjcmVhdGUobV9wcmVzZW50YXRpb25UaW1lLCBtX2lzTWly
cm9yZWQsIG1fcm90YXRpb24sIFJldGFpblB0ciB7IGJ1ZmZlciB9KTsKK30KKwogI2VuZGlmCiAK
IFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIGNvbnN0IFJlbW90ZVZpZGVv
RnJhbWVQcm94eTo6UHJvcGVydGllcyYgcHJvcGVydGllcykKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlVmlkZW9GcmFtZVByb3h5LmggYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZVZpZGVvRnJhbWVQcm94eS5oCmlu
ZGV4IDE2NTczMDcyOTg5MzUwMDVlYjJmMzM0Y2Y2YTI5NDQ1NjUwZjE1ZTIuLjBlZWM3Y2M0YmI1
NjE2YmQyZWMyZmNmNjhhOWJkYjkzZDZkNjIwM2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlVmlkZW9GcmFtZVByb3h5LmgKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVWaWRlb0ZyYW1lUHJveHkuaApAQCAt
MjUsNyArMjUsNyBAQAogCiAjcHJhZ21hIG9uY2UKIAotI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykg
JiYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIEVOQUJM
RShWSURFTykKIAogI2luY2x1ZGUgIkdQVVByb2Nlc3NDb25uZWN0aW9uLmgiCiAjaW5jbHVkZSAi
UmVtb3RlVmlkZW9GcmFtZUlkZW50aWZpZXIuaCIKQEAgLTM2LDYgKzM2LDEyIEBAIGNsYXNzIENv
bm5lY3Rpb247CiBjbGFzcyBEZWNvZGVyOwogfQogCituYW1lc3BhY2UgV2ViQ29yZSB7CisjaWYg
UExBVEZPUk0oQ09DT0EpCitjbGFzcyBWaWRlb0ZyYW1lQ1Y7CisjZW5kaWYKK30KKwogbmFtZXNw
YWNlIFdlYktpdCB7CiAKIGNsYXNzIEdQVVByb2Nlc3NDb25uZWN0aW9uOwpAQCAtODAsMTYgKzg2
LDE1IEBAIHB1YmxpYzoKICAgICAvLyBXZWJDb3JlOjpWaWRlb0ZyYW1lIG92ZXJyaWRlcy4KICAg
ICBXZWJDb3JlOjpGbG9hdFNpemUgcHJlc2VudGF0aW9uU2l6ZSgpIGNvbnN0IGZpbmFsIHsgcmV0
dXJuIG1fc2l6ZTsgfQogICAgIHVpbnQzMl90IHZpZGVvUGl4ZWxGb3JtYXQoKSBjb25zdCBmaW5h
bDsKKyAgICBib29sIGlzUmVtb3RlUHJveHkoKSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVlOyB9
CiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgQ1ZQaXhlbEJ1ZmZlclJlZiBwaXhlbEJ1ZmZlcigp
IGNvbnN0IGZpbmFsOworICAgIFJlZlB0cjxXZWJDb3JlOjpWaWRlb0ZyYW1lQ1Y+IGFzVmlkZW9G
cmFtZUNWKCkgZmluYWw7CiAjZW5kaWYKLSAgICBib29sIGlzUmVtb3RlUHJveHkoKSBjb25zdCBm
aW5hbCB7IHJldHVybiB0cnVlOyB9CiAKIHByaXZhdGU6CiAgICAgUmVtb3RlVmlkZW9GcmFtZVBy
b3h5KElQQzo6Q29ubmVjdGlvbiYsIFJlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwUHJveHkmLCBQ
cm9wZXJ0aWVzJiYpOwogCi0KLQogICAgIGNvbnN0IFJlZjxJUEM6OkNvbm5lY3Rpb24+IG1fY29u
bmVjdGlvbjsKICAgICBSZW1vdGVWaWRlb0ZyYW1lUmVmZXJlbmNlVHJhY2tlciBtX3JlZmVyZW5j
ZVRyYWNrZXI7CiAgICAgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSBtX3NpemU7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZVZpZGVvRnJhbWVQcm94
eUlkZW50aWZpZXIuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3Rl
VmlkZW9GcmFtZVByb3h5SWRlbnRpZmllci5oCmluZGV4IDQ3OTJjMDQ4NjUwZDBjYTI2NDYwMDA3
MjM0NjcwMzI4MmU3MmE0ZDAuLjVjZTdhZjE1ODQzYTdhOGYyNDZkYzk3ZTgyMTRmNzlkNTY3NmY4
ZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3Rl
VmlkZW9GcmFtZVByb3h5SWRlbnRpZmllci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9HUFUvbWVkaWEvUmVtb3RlVmlkZW9GcmFtZVByb3h5SWRlbnRpZmllci5oCkBAIC0yNSw3ICsy
NSw3IEBACiAKICNwcmFnbWEgb25jZQogCi0jaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyNpZiBF
TkFCTEUoR1BVX1BST0NFU1MpICYmIEVOQUJMRShWSURFTykKIAogI2luY2x1ZGUgIk9iamVjdElk
ZW50aWZpZXJSZWZlcmVuY2VUcmFja2VyLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9SZW1vdGVWaWRl
b0ZyYW1lSWRlbnRpZmllci5oPgpAQCAtMzksNCArMzksNCBAQCB1c2luZyBSZW1vdGVWaWRlb0Zy
YW1lUmVmZXJlbmNlVHJhY2tlciA9IE9iamVjdElkZW50aWZpZXJSZWZlcmVuY2VUcmFja2VyPFdl
YkNvcgogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAotI2VuZGlmIC8vIEVOQUJMRShNRURJQV9T
VFJFQU0pCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUv
d2VicnRjL01lZGlhUmVjb3JkZXJQcml2YXRlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9HUFUvd2VicnRjL01lZGlhUmVjb3JkZXJQcml2YXRlLmNwcAppbmRleCA5MTgwZDFjYTcyZDAx
ZTMyMmU3Y2E0ZGU5YzgzNmQ2OGVjYzZhMWMzLi5lYTQxNDI1NmJmMGJlY2ExNzExYTE1ZjQwZDQx
YTZkNWZjNmMyODMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dl
YnJ0Yy9NZWRpYVJlY29yZGVyUHJpdmF0ZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS93ZWJydGMvTWVkaWFSZWNvcmRlclByaXZhdGUuY3BwCkBAIC0zNSw2ICszNSw3IEBA
CiAjaW5jbHVkZSAiUmVtb3RlVmlkZW9GcmFtZVByb3h5LmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vz
cy5oIgogI2luY2x1ZGUgPFdlYkNvcmUvQ0FSaW5nQnVmZmVyLmg+CisjaW5jbHVkZSA8V2ViQ29y
ZS9DVlV0aWxpdGllcy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFTdHJlYW1Qcml2YXRlLmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9NZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvUmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlQ29jb2EuaD4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL1JlbW90ZVZpZGVvRnJhbWVPYmpl
Y3RIZWFwUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL1JlbW90
ZVZpZGVvRnJhbWVPYmplY3RIZWFwUHJveHkuaAppbmRleCAxMWJkZDFmNjU2MTJjYjY2NDYwMDAx
YzkzNTYwZGNkMTQxZDk3MzY5Li4yYmZiYjU3YTEyNjU0MDY0OTU1NDk1NTZjYjk0MjE3NWM0NzVl
MWMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9SZW1v
dGVWaWRlb0ZyYW1lT2JqZWN0SGVhcFByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS93ZWJydGMvUmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXBQcm94eS5oCkBAIC0yNSw3
ICsyNSw3IEBACiAKICNwcmFnbWEgb25jZQogCi0jaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkgJiYg
RU5BQkxFKEdQVV9QUk9DRVNTKQorI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgRU5BQkxFKFZJ
REVPKQogCiAjaW5jbHVkZSAiUmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXBQcm94eVByb2Nlc3Nv
ci5oIgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9S
ZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcFByb3h5UHJvY2Vzc29yLmNwcCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL1JlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwUHJveHlQ
cm9jZXNzb3IuY3BwCmluZGV4IGIxY2E0YzdiYzZlNDM4MzkyZmFlMTY1YmE3NWU2ZjgzMDdlNTVj
MjEuLmYyMWQxMThjODIwMjIyYmFjY2QxMmY3ZmYwY2E2MjFlZjQ4MWJjNGQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL1JlbW90ZVZpZGVvRnJhbWVPYmpl
Y3RIZWFwUHJveHlQcm9jZXNzb3IuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvd2VicnRjL1JlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwUHJveHlQcm9jZXNzb3IuY3BwCkBA
IC0yNiwxMCArMjYsMTEgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJSZW1vdGVW
aWRlb0ZyYW1lT2JqZWN0SGVhcFByb3h5LmgiCiAKLSNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKSAm
JiBQTEFURk9STShDT0NPQSkgJiYgRU5BQkxFKEdQVV9QUk9DRVNTKQorI2lmIFBMQVRGT1JNKENP
Q09BKSAmJiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIEVOQUJMRShWSURFTykKIAogI2luY2x1ZGUg
IlJlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwTWVzc2FnZXMuaCIKICNpbmNsdWRlICJSZW1vdGVW
aWRlb0ZyYW1lT2JqZWN0SGVhcFByb3h5UHJvY2Vzc29yTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJS
ZW1vdGVWaWRlb0ZyYW1lUHJveHkuaCIKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL1JlbW90ZVZpZGVvRnJhbWVP
YmplY3RIZWFwUHJveHlQcm9jZXNzb3IuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUv
d2VicnRjL1JlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwUHJveHlQcm9jZXNzb3IuaAppbmRleCA4
ZjdjNzhiYmM4NDA5MjI1N2U1NjJkYjQyNmY4ZWYzNzA5NWIyYzMxLi5mMGU3NmYzYmE0YTQ1MTVm
MmNhMGEzYzVlNjRjNjVjODkyNjZmZjJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvR1BVL3dlYnJ0Yy9SZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcFByb3h5UHJvY2Vzc29y
LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvUmVtb3RlVmlkZW9G
cmFtZU9iamVjdEhlYXBQcm94eVByb2Nlc3Nvci5oCkBAIC0yNSwxMyArMjUsMTQgQEAKIAogI3By
YWdtYSBvbmNlCiAKLSNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKSAmJiBQTEFURk9STShDT0NPQSkg
JiYgRU5BQkxFKEdQVV9QUk9DRVNTKQorI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgUExBVEZP
Uk0oQ09DT0EpICYmIEVOQUJMRShWSURFTykKIAogI2luY2x1ZGUgIkNvbm5lY3Rpb24uaCIKICNp
bmNsdWRlICJHUFVQcm9jZXNzQ29ubmVjdGlvbi5oIgogI2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZl
ci5oIgogI2luY2x1ZGUgIlJlbW90ZVZpZGVvRnJhbWVJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAi
U2hhcmVkVmlkZW9GcmFtZS5oIgorCiAjaW5jbHVkZSA8d3RmL0Z1bmN0aW9uLmg+CiAjaW5jbHVk
ZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvTG9jay5oPgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvUmVtb3RlVmlkZW9GcmFtZU9iamVjdEhl
YXBQcm94eVByb2Nlc3Nvci5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvd2VicnRjL1JlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwUHJveHlQcm9jZXNzb3IubWVzc2Fn
ZXMuaW4KaW5kZXggYWZiOTM2NDk1YWJlMjJhZjZlN2NlMTRhY2E3OTA3OTlhYWZhNzdhZC4uMWQ1
NTUzNmRkOGE0NThjYmQ0YjE1ODNlMmFlMTAxNDExNDY5N2ExMiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvUmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXBQ
cm94eVByb2Nlc3Nvci5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL3dlYnJ0Yy9SZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcFByb3h5UHJvY2Vzc29yLm1lc3Nh
Z2VzLmluCkBAIC0yMCw3ICsyMCw3IEBACiAjIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCiAjIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCiAKLSNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKSAmJiBQTEFURk9STShDT0NPQSkgJiYg
RU5BQkxFKEdQVV9QUk9DRVNTKQorI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBFTkFCTEUoR1BVX1BS
T0NFU1MpICYmIEVOQUJMRShWSURFTykKIAogbWVzc2FnZXMgLT4gUmVtb3RlVmlkZW9GcmFtZU9i
amVjdEhlYXBQcm94eVByb2Nlc3NvciB7CiAgICAgU2V0U2hhcmVkVmlkZW9GcmFtZVNlbWFwaG9y
ZShJUEM6OlNlbWFwaG9yZSBzZW1hcGhvcmUpCkBAIC0yOSw0ICsyOSw0IEBAIG1lc3NhZ2VzIC0+
IFJlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwUHJveHlQcm9jZXNzb3IgewogICAgIE5ld1ZpZGVv
RnJhbWVCdWZmZXIoV2ViS2l0OjpSZW1vdGVWaWRlb0ZyYW1lSWRlbnRpZmllciBpZGVudGlmaWVy
KQogfQogCi0jZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NUUkVBTSkgJiYgUExBVEZPUk0oQ09DT0Ep
ICYmIEVOQUJMRShHUFVfUFJPQ0VTUykKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvU2hhcmVkVmlkZW9GcmFtZS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9TaGFyZWRWaWRlb0ZyYW1lLmNwcAppbmRleCA5ZDM1
M2VmZmZmNTYwMTQyMWMxNGQ1MjVkZWUxMWIwNjkzZjIyOGY5Li5hNzFjYTA4MTIwOGJkNTFlMTRl
OTY5ZjYxMDIyOTU4YjJhZDg1MmU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL3dlYnJ0Yy9TaGFyZWRWaWRlb0ZyYW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR1BVL3dlYnJ0Yy9TaGFyZWRWaWRlb0ZyYW1lLmNwcApAQCAtMjYsNyArMjYsNyBA
QAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlNoYXJlZFZpZGVvRnJhbWUuaCIKIAot
I2lmIEVOQUJMRShNRURJQV9TVFJFQU0pICYmIFBMQVRGT1JNKENPQ09BKQorI2lmIEVOQUJMRShH
UFVfUFJPQ0VTUykgJiYgUExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShWSURFTykKIAogI2luY2x1
ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlIDxXZWJDb3JlL1NoYXJlZFZpZGVvRnJhbWVJbmZvLmg+
CkBAIC0xNTIsNCArMTUyLDQgQEAgYm9vbCBTaGFyZWRWaWRlb0ZyYW1lUmVhZGVyOjpzZXRTaGFy
ZWRNZW1vcnkoY29uc3QgU2hhcmVkTWVtb3J5OjpJUENIYW5kbGUmIGlwY0gKIAogfQogCi0jZW5k
aWYgLy8gRU5BQkxFKE1FRElBX1NUUkVBTSkgJiYgUExBVEZPUk0oQ09DT0EpCisjZW5kaWYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL1NoYXJlZFZpZGVv
RnJhbWUuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL1NoYXJlZFZpZGVv
RnJhbWUuaAppbmRleCBjMjA1ODU5NDk2YTVkODUxMDY2NTZjZTU3OTEyOTQ5YTQxMjdmOGZlLi5h
ZWJiNzljZTJkZWVmZDViZjNmYjQ1N2RmMmUwMmU4MjJkZWRmYzk0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9TaGFyZWRWaWRlb0ZyYW1lLmgKKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvU2hhcmVkVmlkZW9GcmFtZS5oCkBA
IC0yNSw3ICsyNSw3IEBACiAKICNwcmFnbWEgb25jZQogCi0jaWYgRU5BQkxFKE1FRElBX1NUUkVB
TSkgJiYgUExBVEZPUk0oQ09DT0EpCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBQTEFURk9S
TShDT0NPQSkgJiYgRU5BQkxFKFZJREVPKQogCiAjaW5jbHVkZSAiSVBDU2VtYXBob3JlLmgiCiAj
aW5jbHVkZSAiU2hhcmVkTWVtb3J5LmgiCkBAIC05Nyw3ICs5Nyw2IEBAIGlubGluZSBTaGFyZWRW
aWRlb0ZyYW1lUmVhZGVyOjpTaGFyZWRWaWRlb0ZyYW1lUmVhZGVyKFVzZUlPU3VyZmFjZUJ1ZmZl
clBvb2wgdXNlCiB7CiB9CiAKLQogfQogCi0jZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NUUkVBTSkK
KyNlbmRpZgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCmluZGV4IDNiZTUyYmI5NGM0NDMzMmY4ZWU3OThmZTBhOWQwZGZiYjU2MDdlZjMu
Ljg5Mjc0MjhmYTFlZWY0YzFmZDU3ZDZjZjJjMTJiYTZhYjUzODExOTAgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxNCBAQAorMjAyMi0wMi0xOCAgS2ltbW8gS2lubnVuZW4gIDxra2lubnVuZW5AYXBwbGUuY29t
PgorCisgICAgICAgIFdlYkdMIEdQVVA6IENyYXNoIHdoZW4gcnVubmluZyBmYXN0L21lZGlhc3Ry
ZWFtL2dldFVzZXJNZWRpYS10by1jYW52YXMtMS5odG1sCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzY1MDIKKworICAgICAgICBVbnNraXAgdGhlIHBy
ZXZpb3VzIGNyYXNoZXMgY2F1c2VkIGJ5IHRoZSBsYWNrIG9mIGltcGxlbWVudGF0aW9uLgorCisg
ICAgICAgIFJldmlld2VkIGJ5IEVyaWMgQ2FybHNvbi4KKworICAgICAgICAqIHBsYXRmb3JtL2lv
cy13azIvVGVzdEV4cGVjdGF0aW9uczoKKwogMjAyMi0wMi0xOCAgSm9uIExlZSAgPGpvbmxlZUBh
cHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCBnYXJkZW5pbmcgZm9yIEdQVSBQcm9jZXNz
IGJvdHMuIFVwZGF0ZSBmdXp6eSBkYXRhLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vaW9zLXdrMi9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zLXdr
Mi9UZXN0RXhwZWN0YXRpb25zCmluZGV4IGE0YTBiZGJjYzMzM2ZhZjE4YWFmOWMwNmI2OTQ3ZGFk
ZjUxNzJiNmMuLmZkN2ZiNTdlMmJjY2JjMGI0NmMwM2NmNmYyYTRkZmJiMDM5NDQwMWYgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy13azIvVGVzdEV4cGVjdGF0aW9ucworKysg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mtd2syL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTIyMDks
MTAgKzIyMDksNSBAQCB3ZWJraXQub3JnL2IvMjM0NTM2IHdlYmdsL21heC1hY3RpdmUtY29udGV4
dHMtY29uc29sZS13YXJuaW5nLmh0bWwKIHdlYmtpdC5vcmcvYi8yMzQ1MzYgd2ViZ2wvbWF4LWFj
dGl2ZS1jb250ZXh0cy1nYy5odG1sCiB3ZWJraXQub3JnL2IvMjM0NTM2IHdlYmdsL21heC1hY3Rp
dmUtY29udGV4dHMtb2xkZXN0LWNvbnRleHQtbG9zdC5odG1sCiB3ZWJraXQub3JnL2IvMjM0NTM2
IHdlYnhyL2hpZ2gtcGVyZm9ybWFuY2UuaHRtbAotd2Via2l0Lm9yZy9iLzIzNDUzNiBmYXN0L21l
ZGlhc3RyZWFtL2dldFVzZXJNZWRpYS10by1jYW52YXMtMS5odG1sIFsgQ3Jhc2ggXQotd2Via2l0
Lm9yZy9iLzIzNDUzNiBmYXN0L21lZGlhc3RyZWFtL2dldFVzZXJNZWRpYS10by1jYW52YXMtMi5o
dG1sIFsgQ3Jhc2ggXQogd2Via2l0Lm9yZy9iLzIzNDUzNiB3ZWJnbC9tYXgtYWN0aXZlLWNvbnRl
eHRzLXdlYmdsY29udGV4dGxvc3QtcHJldmVudC1kZWZhdWx0Lmh0bWwgWyBUaW1lb3V0IF0KIHdl
YmtpdC5vcmcvYi8yMzQ1MzYgd2ViZ2wvMS4wLjMvY29uZm9ybWFuY2Uvc3RhdGUvZ2wtb2JqZWN0
LWdldC1jYWxscy5odG1sIFsgVGltZW91dCBdCi0KLSMgQ2FwdHVyZWQgV2ViR0wgdG8gYW5vdGhl
ciBjb250ZXh0MmQgb3IgV2ViR0wgbm90IGltcGxlbWVudGVkIHlldC4KLXdlYmtpdC5vcmcvYi8y
MzY0OTYgZmFzdC9tZWRpYXN0cmVhbS9jYXB0dXJlU3RyZWFtL2NhbnZhczNkLmh0bWwgWyBUaW1l
b3V0IF0KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCg==
</data>
<flag name="commit-queue"
          id="479605"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>452524</attachid>
            <date>2022-02-18 09:05:21 -0800</date>
            <delta_ts>2022-02-18 11:31:43 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-236502-20220218190518.patch</filename>
            <type>text/plain</type>
            <size>65136</size>
            <attacher name="Kimmo Kinnunen">kkinnunen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkwMTIwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGI0MTEzNDNlYzE3MTYy
ODBmYzI0NDIyNmU5MDRkNjU5OTFiNTM2NC4uOTFjZDU4Y2NjMmI4NTk5NWRlOGRiZmU2MzFiYjkz
ZjFjZWVmMTI5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDIyLTAyLTE4ICBLaW1t
byBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CisKKyAgICAgICAgV2ViR0wgR1BVUDog
Q3Jhc2ggd2hlbiBydW5uaW5nIGZhc3QvbWVkaWFzdHJlYW0vZ2V0VXNlck1lZGlhLXRvLWNhbnZh
cy0xLmh0bWwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIzNjUwMgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vODg4NjI5MjE+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgRXJpYyBDYXJsc29uLgorCisgICAgICAgIEFkZCBhIHBvbHltb3JwaGljIGZ1bmN0
aW9uIGFzVmlkZW9GcmFtZUNWIHRvIGNvbnZlcnQgVmlkZW9GcmFtZSB0byBWaWRlb0ZyYW1lQ1Yu
CisgICAgICAgIFZpZGVvRnJhbWVDViBpcyB1c2VkIHRvIGRyYXcgdGhlIGluLXByb2Nlc3Mgdmlk
ZW8gZnJhbWUgdG8gaW4tcHJvY2VzcyBXZWJHTC4KKworICAgICAgICBSZW1vdGVWaWRlb0ZyYW1l
UHJveHkgd2lsbCBpbXBsZW1lbnQgYXNWaWRlb0ZyYW1lQ1YgYnkgZmV0Y2hpbmcgdGhlIGRhdGEg
ZnJvbQorICAgICAgICBHUFVQIGFuZCByZXR1cm5pbmcgYSBuZXcgb2JqZWN0IGV4cG9zaW5nIHRo
ZSBkYXRhLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cywgdGVzdGVkIGJ5IG5vdyB1bnNraXBwZWQg
dGVzdHMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9WaWRlb0ZyYW1lLmg6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvY29jb2EvR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5tbToKKyAgICAgICAg
KFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMQ29jb2E6OmNvcHlUZXh0dXJlRnJvbU1lZGlhKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jdi9WaWRlb0ZyYW1lQ1YuaDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9jdi9WaWRlb0ZyYW1lQ1YubW06CisgICAgICAgIChXZWJDb3Jl
OjpWaWRlb0ZyYW1lQ1Y6OmFzVmlkZW9GcmFtZUNWKToKKwogMjAyMi0wMi0xOCAgWmFuIERvYmVy
c2VrICA8emRvYmVyc2VrQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dUS11bV1BFXSBEb24ndCB1
c2UgQU5HTEUncyBHQk0tYmFzZWQgZGlzcGxheQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA4OWU0NzYxMmM0ZjY4ZjI0
NzUzOWQzNzBjZmEzNzc5MzFmZWRlZmU1Li42MDFmZDQwZDY3NTlmNTgwMGFkMGE1YmU3OGEwM2Uw
Mzk1ODNmZTA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDU1IEBACisyMDIyLTAyLTE4ICBLaW1tbyBL
aW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CisKKyAgICAgICAgV2ViR0wgR1BVUDogQ3Jh
c2ggd2hlbiBydW5uaW5nIGZhc3QvbWVkaWFzdHJlYW0vZ2V0VXNlck1lZGlhLXRvLWNhbnZhcy0x
Lmh0bWwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIz
NjUwMgorCisgICAgICAgIFRoZSBjcmFzaCBpcyBhYm91dCBNZWRpYVBsYXllclByaXZhdGVNZWRp
YVN0cmVhbUFWRk9iakMgYmVpbmcgaW4gV1Agd2hpbGUgb3RoZXIKKyAgICAgICAgbWVkaWEgcGxh
eWVyIHByaXZhdGUgdmFyaWFudHMgYXJlIHByb3hpZWQgdG8gR1BVUC4gVGhlIHByZXZpb3VzIGlt
cGxlbWVudGF0aW9uCisgICAgICAgIHdvdWxkIHNlbmQgbWVkaWEgcGxheWVyIGlkZW50aWZpZXJz
IHRvIEdQVVAgZm9yIGNvcHlpbmcuCisgICAgICAgIFRoaXMgcGF0Y2ggd2lsbCBpbXBsZW1lbnQg
dGhlIGNvcHkgYnkgdGhlIG1lZGlhIHBsYXllciBjcmVhdGluZyBhIHJlZmVyZW5jZQorICAgICAg
ICB0byBWaWRlb0ZyYW1lLiBXZWJHTCB3b3VsZCBzZW5kIHJlZmVyZW5jZSBvZiB0aGUgVmlkZW9G
cmFtZSB0byBHUFVQIGZvciBjb3B5aW5nLgorCisgICAgICAgIE1ha2UgV1AgTWVkaWFQbGF5ZXJQ
cml2YXRlUmVtb3RlIGFsd2F5cyByZXR1cm4gUmVtb3RlVmlkZW9GcmFtZVByb3h5IG9iamVjdHMK
KyAgICAgICAgaW5zdGVhZCBvZiBXUCBpbi1wcm9jZXNzIFZpZGVvRnJhbWUgaW5zdGFuY2VzIChm
b3IgQ29jb2EgVmlkZW9GcmFtZUNWKSB0aGF0CisgICAgICAgIHdvdWxkIGhvbGQgdGhlIHZpZGVv
IGRhdGEgaW4gcHJvY2Vzcy4KKworICAgICAgICBXUCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0
cmVhbUFWRk9iakMgYWxyZWFkeSByZXR1cm5zIFJlbW90ZVZpZGVvRnJhbWVQcm94eQorICAgICAg
ICBvYmplY3RzLiBUaGlzIHdheSBHUFVQIFdlYkdMIGltcGxlbWVudGF0aW9uIGNhbiBvYnRhaW4g
dGhlIHJlYWQgcmVmZXJlbmNlCisgICAgICAgIHRvIHRoZSByZW1vdGUgb2JqZWN0IGFuZCBzZW5k
IGl0IGluIGNvcHlUZXh0dXJlRnJvbVZpZGVvRnJhbWUgbWVzc2FnZS4KKworICAgICAgICBUaGUg
V1AgaW4tcHJvY2VzcyBXZWJHTCBpbXBsZW1lbnRhdGlvbiBjb252ZXJ0cyB0aGUgUmVtb3RlVmlk
ZW9GcmFtZVByb3h5CisgICAgICAgIHRvIFZpZGVvRnJhbWVDViB3aXRoIHRoZSBuZXcgUmVtb3Rl
VmlkZW9GcmFtZVByb3h5Ojphc1ZpZGVvRnJhbWVDVi4KKworICAgICAgICBSZXZpZXdlZCBieSBF
cmljIENhcmxzb24uCisKKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBo
aWNzQ29udGV4dEdMLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlR3JhcGhpY3NDb250ZXh0
R0w6OlJlbW90ZUdyYXBoaWNzQ29udGV4dEdMKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlR3Jh
cGhpY3NDb250ZXh0R0w6OmNvcHlUZXh0dXJlRnJvbVZpZGVvRnJhbWUpOgorICAgICAgICAqIEdQ
VVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0wuaDoKKyAgICAgICAgKiBH
UFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMLm1lc3NhZ2VzLmluOgor
ICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xDb2Nv
YS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUdyYXBoaWNzQ29udGV4dEdMOjpjb3B5VGV4
dHVyZUZyb21WaWRlb0ZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlR3JhcGhpY3NDb250
ZXh0R0w6OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUdyYXBoaWNzQ29udGV4dEdM
Q29jb2E6OlJlbW90ZUdyYXBoaWNzQ29udGV4dEdMQ29jb2EpOgorICAgICAgICAoV2ViS2l0OjpS
ZW1vdGVHcmFwaGljc0NvbnRleHRHTENvY29hOjpwbGF0Zm9ybVdvcmtRdWV1ZUluaXRpYWxpemUp
OgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVHcmFwaGljc0NvbnRleHRHTENvY29hOjpwcmVwYXJl
Rm9yRGlzcGxheSk6CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXll
ck1hbmFnZXJQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyTWFu
YWdlclByb3h5OjpjcmVhdGVNZWRpYVBsYXllcik6CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRp
YS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVk
aWFQbGF5ZXJQcm94eTo6UmVtb3RlTWVkaWFQbGF5ZXJQcm94eSk6CisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZU1lZGlhUGxheWVyUHJveHk6OnZpZGVvRnJhbWVGb3JDdXJyZW50VGltZUlmQ2hhbmdl
ZCk6CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5Lmg6
CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5Lm1lc3Nh
Z2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNz
Q29udGV4dEdMUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVHcmFwaGljc0NvbnRl
eHRHTFByb3h5Ojpjb3B5VGV4dHVyZUZyb21NZWRpYSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9H
UFUvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eS5oOgorICAgICAgICAqIFdl
YlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5jcHA6CisgICAgICAg
IChXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6dmlkZW9GcmFtZUZvckN1cnJlbnRU
aW1lKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVS
ZW1vdGUuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVWaWRlb0ZyYW1l
UHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVWaWRlb0ZyYW1lUHJveHk6OmFzVmlk
ZW9GcmFtZUNWKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVWaWRlb0Zy
YW1lUHJveHkuaDoKKwogMjAyMi0wMi0xOCAgU2FhbSBCYXJhdGkgIDxzYmFyYXRpQGFwcGxlLmNv
bT4KIAogICAgICAgICBBZGQgTENfU09VUkNFX1ZFUlNJT04gdG8gY29tcGlsZSB0YXJnZXRzCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9WaWRlb0ZyYW1lLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9WaWRlb0ZyYW1lLmgKaW5kZXggYjU1NDU2ZmY5NGFiYjcxMWQzMjZm
MmQ2ZDA5OTlkNmJkNWM2MGE2ZC4uNjQxMWRmN2Q2NDBjY2RlZDFkMWUzZTExZmQxYTQyOGEyOTFi
MzFlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVmlkZW9GcmFtZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1ZpZGVvRnJhbWUuaApAQCAtMzEsNiArMzEsMTEg
QEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCisjaWYgVVNFKEFWRk9VTkRBVElPTikKK2NsYXNz
IFZpZGVvRnJhbWVDVjsKKyNlbmRpZgorCisKIC8vIEEgY2xhc3MgcmVwcmVzZW50aW5nIGEgdmlk
ZW8gZnJhbWUgZnJvbSBhIGRlY29kZXIsIGNhcHR1cmUgc291cmNlLCBvciBzaW1pbGFyLgogLy8g
RklYTUU6IEN1cnJlbnRseSBmb3IgaW1wbGVtZW50YXRpb24gcHVycG9zZXMgaW5oZXJ0cyBmcm9t
IE1lZGlhU2FtcGxlIHVudGlsIGNhcHR1cmUgY29kZQogLy8gc3RvcHMgcmVmZXJyaW5nIHRvIE1l
ZGlhU2FtcGxlCkBAIC00OSw2ICs1NCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgaXNS
ZW1vdGVQcm94eSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAjaWYgVVNFKEFWRk9VTkRBVElP
TikKICAgICB2aXJ0dWFsIGJvb2wgaXNDVigpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CisgICAg
dmlydHVhbCBSZWZQdHI8V2ViQ29yZTo6VmlkZW9GcmFtZUNWPiBhc1ZpZGVvRnJhbWVDVigpID0g
MDsKICNlbmRpZgogCiBwcm90ZWN0ZWQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9jb2NvYS9TaGFyZWRWaWRlb0ZyYW1lSW5mby5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vY29jb2EvU2hhcmVkVmlkZW9GcmFtZUluZm8uaAppbmRleCA0ZWU4YTk2ZDJlM2EyMmJmZmM1
MmYzNjkwZDkyYmZlOGYxODI4ZDc0Li5iZTNmZGI3OTc4MDNhMTQwZWIwMmM0NjlkMzM2MjRiNDhi
NjI3NTAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9TaGFyZWRW
aWRlb0ZyYW1lSW5mby5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1NoYXJl
ZFZpZGVvRnJhbWVJbmZvLmgKQEAgLTI1LDcgKzI1LDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKLSNp
ZiBFTkFCTEUoTUVESUFfU1RSRUFNKSAmJiBQTEFURk9STShDT0NPQSkKKyNpZiBFTkFCTEUoVklE
RU8pICYmIFBMQVRGT1JNKENPQ09BKQogCiAjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgogI2lu
Y2x1ZGUgPHd0Zi9TcGFuLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9j
b2NvYS9TaGFyZWRWaWRlb0ZyYW1lSW5mby5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nv
Y29hL1NoYXJlZFZpZGVvRnJhbWVJbmZvLm1tCmluZGV4IDYxZWYyY2ViYzc5ZTc3NGY4OTcxNTZh
OWY3MWJiNTZlNDRjNDY2ZjYuLjA4YzZjY2Q4ODUzNzFmYWYxZDExOGUzOWRhMjNhZTMyZDg0NTli
ZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1NoYXJlZFZpZGVv
RnJhbWVJbmZvLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1NoYXJlZFZp
ZGVvRnJhbWVJbmZvLm1tCkBAIC0yNiw3ICsyNiw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAj
aW5jbHVkZSAiU2hhcmVkVmlkZW9GcmFtZUluZm8uaCIKIAotI2lmIEVOQUJMRShNRURJQV9TVFJF
QU0pICYmIFBMQVRGT1JNKENPQ09BKQorI2lmIEVOQUJMRShWSURFTykgJiYgUExBVEZPUk0oQ09D
T0EpCiAKICNpbmNsdWRlICJDVlV0aWxpdGllcy5oIgogI2luY2x1ZGUgIklPU3VyZmFjZS5oIgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR3JhcGhp
Y3NDb250ZXh0R0xDb2NvYS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nv
Y29hL0dyYXBoaWNzQ29udGV4dEdMQ29jb2EubW0KaW5kZXggYTBiZmNmMjcyOTUxNmUyNGU2Yzk5
YjIwYTY0NTIzYzdjZTg5ZGM3ZC4uMzViOTFmYjNkZDY3YTczMjg5N2NjNTQ2NzIyYzNmZjUwYTlk
MDk2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2Ev
R3JhcGhpY3NDb250ZXh0R0xDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jb2NvYS9HcmFwaGljc0NvbnRleHRHTENvY29hLm1tCkBAIC0zOCw3ICszOCw2IEBA
CiAjaW1wb3J0ICJQaXhlbEJ1ZmZlci5oIgogI2ltcG9ydCAiUHJvY2Vzc0lkZW50aXR5LmgiCiAj
aW1wb3J0ICJSdW50aW1lQXBwbGljYXRpb25DaGVja3MuaCIKLSNpbXBvcnQgIlZpZGVvRnJhbWVD
Vi5oIgogI2ltcG9ydCA8Q29yZUdyYXBoaWNzL0NHQml0bWFwQ29udGV4dC5oPgogI2ltcG9ydCA8
TWV0YWwvTWV0YWwuaD4KICNpbXBvcnQgPHBhbC9zcGkvY29jb2EvTWV0YWxTUEkuaD4KQEAgLTUw
LDEzICs0OSwxNCBAQAogI2VuZGlmCiAKICNpZiBFTkFCTEUoVklERU8pCi0jaW5jbHVkZSAiR3Jh
cGhpY3NDb250ZXh0R0xDVkNvY29hLmgiCi0jaW5jbHVkZSAiTWVkaWFQbGF5ZXJQcml2YXRlLmgi
CisjaW1wb3J0ICJHcmFwaGljc0NvbnRleHRHTENWQ29jb2EuaCIKKyNpbXBvcnQgIk1lZGlhUGxh
eWVyUHJpdmF0ZS5oIgorI2ltcG9ydCAiVmlkZW9GcmFtZUNWLmgiCiAjZW5kaWYKIAogI2lmIEVO
QUJMRShNRURJQV9TVFJFQU0pCi0jaW5jbHVkZSAiSW1hZ2VSb3RhdGlvblNlc3Npb25WVC5oIgot
I2luY2x1ZGUgIk1lZGlhU2FtcGxlQVZGT2JqQy5oIgorI2ltcG9ydCAiSW1hZ2VSb3RhdGlvblNl
c3Npb25WVC5oIgorI2ltcG9ydCAiTWVkaWFTYW1wbGVBVkZPYmpDLmgiCiAjZW5kaWYKIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewpAQCAtNzgzLDE1ICs3ODMsMTYgQEAgYm9vbCBHcmFwaGljc0NvbnRl
eHRHTENvY29hOjpjb3B5VGV4dHVyZUZyb21NZWRpYShNZWRpYVBsYXllciYgcGxheWVyLCBQbGF0
Zm9ybUcKICAgICBhdXRvIHZpZGVvRnJhbWUgPSBwbGF5ZXIudmlkZW9GcmFtZUZvckN1cnJlbnRU
aW1lKCk7CiAgICAgaWYgKCF2aWRlb0ZyYW1lKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAg
QVNTRVJUKGlzPFZpZGVvRnJhbWVDVj4oKnZpZGVvRnJhbWUpKTsKLQorICAgIGF1dG8gdmlkZW9G
cmFtZUNWID0gdmlkZW9GcmFtZS0+YXNWaWRlb0ZyYW1lQ1YoKTsKKyAgICBpZiAoIXZpZGVvRnJh
bWVDVikKKyAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIGF1dG8gY29udGV4dENWID0gYXNDVigp
OwogICAgIGlmICghY29udGV4dENWKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBVTlVT
RURfVkFSSUFCTEUocHJlbXVsdGlwbHlBbHBoYSk7CiAgICAgQVNTRVJUX1VOVVNFRChvdXRwdXRU
YXJnZXQsIG91dHB1dFRhcmdldCA9PSBHcmFwaGljc0NvbnRleHRHTDo6VEVYVFVSRV8yRCk7Ci0g
ICAgcmV0dXJuIGNvbnRleHRDVi0+Y29weVZpZGVvU2FtcGxlVG9UZXh0dXJlKGRvd25jYXN0PFZp
ZGVvRnJhbWVDVj4oKnZpZGVvRnJhbWUpLCBvdXRwdXRUZXh0dXJlLCBsZXZlbCwgaW50ZXJuYWxG
b3JtYXQsIGZvcm1hdCwgdHlwZSwgR3JhcGhpY3NDb250ZXh0R0w6OkZsaXBZKGZsaXBZKSk7Cisg
ICAgcmV0dXJuIGNvbnRleHRDVi0+Y29weVZpZGVvU2FtcGxlVG9UZXh0dXJlKCp2aWRlb0ZyYW1l
Q1YsIG91dHB1dFRleHR1cmUsIGxldmVsLCBpbnRlcm5hbEZvcm1hdCwgZm9ybWF0LCB0eXBlLCBH
cmFwaGljc0NvbnRleHRHTDo6RmxpcFkoZmxpcFkpKTsKIH0KICNlbmRpZgogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9DVlV0aWxpdGllcy5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvQ1ZVdGlsaXRpZXMuaAppbmRleCA5N2Rh
MmM3YTc2MmVkMWY4NTEyYjM2MTNjNzRmMjZlNzI0MTZjYTI4Li5hMTU5NGViZGU0OTUwNGNiODQw
M2ZkZDhhZTZkZDYyNTc3ZDdhMTJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jdi9DVlV0aWxpdGllcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2N2L0NWVXRpbGl0aWVzLmgKQEAgLTU0LDQgKzU0LDYgQEAgUmV0YWluUHRyPENH
Q29sb3JTcGFjZVJlZj4gY3JlYXRlQ0dDb2xvclNwYWNlRm9yQ1ZQaXhlbEJ1ZmZlcihDVlBpeGVs
QnVmZmVyUmVmKTsKIC8vIFNob3VsZCBiZSBjYWxsZWQgd2l0aCBub24tZW1wdHkgUHJvY2Vzc0lk
ZW50aXR5LgogV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRPd25lcnNoaXBJZGVudGl0eUZvckNWUGl4
ZWxCdWZmZXIoQ1ZQaXhlbEJ1ZmZlclJlZiwgY29uc3QgUHJvY2Vzc0lkZW50aXR5Jik7CiAKK1dF
QkNPUkVfRVhQT1JUIFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiBjcmVhdGVCbGFja1BpeGVs
QnVmZmVyKHNpemVfdCB3aWR0aCwgc2l6ZV90IGhlaWdodCk7CisKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L0NWVXRpbGl0aWVzLm1tIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvQ1ZVdGlsaXRpZXMubW0KaW5kZXggZTEwYTI1
NTNiZWJlZGMwY2I4Mjk3ZjMzNzZmYWZkMDZlNmNiYTNlOS4uZDA4NTBiYWYzMjExYTJiNWRmZWZl
YzhlMjU4NWE2NmFhNGRjZGY1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY3YvQ1ZVdGlsaXRpZXMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY3YvQ1ZVdGlsaXRpZXMubW0KQEAgLTI4LDYgKzI4LDcgQEAKIAogI2ltcG9ydCAi
Q29sb3JTcGFjZUNHLmgiCiAjaW1wb3J0ICJJT1N1cmZhY2UuaCIKKyNpbXBvcnQgIlJlYWx0aW1l
VmlkZW9VdGlsaXRpZXMuaCIKICNpbXBvcnQgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KICNpbXBvcnQg
PHd0Zi9jZi9UeXBlQ2FzdHNDRi5oPgogI2ltcG9ydCAiQ29yZVZpZGVvU29mdExpbmsuaCIKQEAg
LTE2Miw0ICsxNjMsMzEgQEAgdm9pZCBzZXRPd25lcnNoaXBJZGVudGl0eUZvckNWUGl4ZWxCdWZm
ZXIoQ1ZQaXhlbEJ1ZmZlclJlZiBwaXhlbEJ1ZmZlciwgY29uc3QgUHIKICAgICBJT1N1cmZhY2U6
OnNldE93bmVyc2hpcElkZW50aXR5KHN1cmZhY2UsIG93bmVyKTsKIH0KIAorUmV0YWluUHRyPENW
UGl4ZWxCdWZmZXJSZWY+IGNyZWF0ZUJsYWNrUGl4ZWxCdWZmZXIoc2l6ZV90IHdpZHRoLCBzaXpl
X3QgaGVpZ2h0KQoreworICAgIE9TVHlwZSBmb3JtYXQgPSBwcmVmZXJlZFBpeGVsQnVmZmVyRm9y
bWF0KCk7CisgICAgQVNTRVJUKGZvcm1hdCA9PSBrQ1ZQaXhlbEZvcm1hdFR5cGVfNDIwWXBDYkNy
OEJpUGxhbmFyVmlkZW9SYW5nZSB8fCBmb3JtYXQgPT0ga0NWUGl4ZWxGb3JtYXRUeXBlXzQyMFlw
Q2JDcjhCaVBsYW5hckZ1bGxSYW5nZSk7CisKKyAgICBDVlBpeGVsQnVmZmVyUmVmIHBpeGVsQnVm
ZmVyID0gbnVsbHB0cjsKKyAgICBhdXRvIHN0YXR1cyA9IENWUGl4ZWxCdWZmZXJDcmVhdGUoa0NG
QWxsb2NhdG9yRGVmYXVsdCwgd2lkdGgsIGhlaWdodCwgZm9ybWF0LCBudWxscHRyLCAmcGl4ZWxC
dWZmZXIpOworICAgIEFTU0VSVF9VTlVTRUQoc3RhdHVzLCBzdGF0dXMgPT0gbm9FcnIpOworCisg
ICAgc3RhdHVzID0gQ1ZQaXhlbEJ1ZmZlckxvY2tCYXNlQWRkcmVzcyhwaXhlbEJ1ZmZlciwgMCk7
CisgICAgQVNTRVJUKHN0YXR1cyA9PSBub0Vycik7CisKKyAgICBhdXRvKiB5UGxhbmUgPSBzdGF0
aWNfY2FzdDx1aW50OF90Kj4oQ1ZQaXhlbEJ1ZmZlckdldEJhc2VBZGRyZXNzT2ZQbGFuZShwaXhl
bEJ1ZmZlciwgMCkpOworICAgIHNpemVfdCB5U3RyaWRlID0gQ1ZQaXhlbEJ1ZmZlckdldEJ5dGVz
UGVyUm93T2ZQbGFuZShwaXhlbEJ1ZmZlciwgMCk7CisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsg
aSA8IGhlaWdodDsgKytpKQorICAgICAgICBtZW1zZXQoJnlQbGFuZVtpICogeVN0cmlkZV0sIDAs
IHdpZHRoKTsKKworICAgIGF1dG8qIHV2UGxhbmUgPSBzdGF0aWNfY2FzdDx1aW50OF90Kj4oQ1ZQ
aXhlbEJ1ZmZlckdldEJhc2VBZGRyZXNzT2ZQbGFuZShwaXhlbEJ1ZmZlciwgMSkpOworICAgIHNp
emVfdCB1dlN0cmlkZSA9IENWUGl4ZWxCdWZmZXJHZXRCeXRlc1BlclJvd09mUGxhbmUocGl4ZWxC
dWZmZXIsIDEpOworICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBoZWlnaHQgLyAyOyArK2kp
CisgICAgICAgIG1lbXNldCgmdXZQbGFuZVtpICogdXZTdHJpZGVdLCAxMjgsIHdpZHRoKTsKKwor
ICAgIHN0YXR1cyA9IENWUGl4ZWxCdWZmZXJVbmxvY2tCYXNlQWRkcmVzcyhwaXhlbEJ1ZmZlciwg
MCk7CisgICAgQVNTRVJUKCFzdGF0dXMpOworICAgIHJldHVybiBhZG9wdENGKHBpeGVsQnVmZmVy
KTsKK30KKwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y3YvVmlkZW9GcmFtZUNWLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9W
aWRlb0ZyYW1lQ1YuaAppbmRleCA4MzFjODgwMmNjOGM4MzM5MzQ0ZmIwZDc0ZTFkYjNmZDNiZGRm
N2RhLi4xNGViNWI1NTJmY2NjNTMzNzYzZmM3NGM3ZTkzZGVjNmYyMzIxY2IzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9WaWRlb0ZyYW1lQ1YuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9WaWRlb0ZyYW1lQ1YuaApAQCAt
NDcsOSArNDcsMTAgQEAgcHVibGljOgogICAgIHRlbXBsYXRlPHR5cGVuYW1lIERlY29kZXI+IHN0
YXRpYyBzdGQ6Om9wdGlvbmFsPFJlZlB0cjxWaWRlb0ZyYW1lQ1Y+PiBkZWNvZGUoRGVjb2RlciYp
OwogCiAgICAgLy8gVmlkZW9GcmFtZSBvdmVycmlkZXMuCi0gICAgV2ViQ29yZTo6RmxvYXRTaXpl
IHByZXNlbnRhdGlvblNpemUoKSBjb25zdCBmaW5hbDsKLSAgICB1aW50MzJfdCB2aWRlb1BpeGVs
Rm9ybWF0KCkgY29uc3QgZmluYWw7CisgICAgV0VCQ09SRV9FWFBPUlQgV2ViQ29yZTo6RmxvYXRT
aXplIHByZXNlbnRhdGlvblNpemUoKSBjb25zdCBmaW5hbDsKKyAgICBXRUJDT1JFX0VYUE9SVCB1
aW50MzJfdCB2aWRlb1BpeGVsRm9ybWF0KCkgY29uc3QgZmluYWw7CiAgICAgYm9vbCBpc0NWKCkg
Y29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQorICAgIFdFQkNPUkVfRVhQT1JUIFJlZlB0cjxX
ZWJDb3JlOjpWaWRlb0ZyYW1lQ1Y+IGFzVmlkZW9GcmFtZUNWKCkgZmluYWw7CiAKIHByaXZhdGU6
CiAgICAgV0VCQ09SRV9FWFBPUlQgVmlkZW9GcmFtZUNWKE1lZGlhVGltZSBwcmVzZW50YXRpb25U
aW1lLCBib29sIGlzTWlycm9yZWQsIFZpZGVvUm90YXRpb24sIFJldGFpblB0cjxDVlBpeGVsQnVm
ZmVyUmVmPiYmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2N2L1ZpZGVvRnJhbWVDVi5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2
L1ZpZGVvRnJhbWVDVi5tbQppbmRleCBhNWE2ZDA4MmJiZTQyYzMxNzNhYmMxZmE4ODEyZTQ0MWNh
YzZmNmU1Li5kMzljOTBlMGM3OTBhNTc1MTEzN2IwNWE2ZmQ2MDExMTJkNmE5ODFhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9WaWRlb0ZyYW1lQ1YubW0K
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvVmlkZW9GcmFtZUNWLm1t
CkBAIC01NCw2ICs1NCwxMSBAQCB1aW50MzJfdCBWaWRlb0ZyYW1lQ1Y6OnZpZGVvUGl4ZWxGb3Jt
YXQoKSBjb25zdAogewogICAgIHJldHVybiBDVlBpeGVsQnVmZmVyR2V0UGl4ZWxGb3JtYXRUeXBl
KG1fcGl4ZWxCdWZmZXIuZ2V0KCkpOwogfQorUmVmUHRyPFdlYkNvcmU6OlZpZGVvRnJhbWVDVj4g
VmlkZW9GcmFtZUNWOjphc1ZpZGVvRnJhbWVDVigpCit7CisgICAgcmV0dXJuIHRoaXM7Cit9CisK
IAogSW1hZ2VPcmllbnRhdGlvbiBWaWRlb0ZyYW1lQ1Y6Om9yaWVudGF0aW9uKCkgY29uc3QKIHsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvTWVkaWFS
ZWNvcmRlclByaXZhdGVBVkZJbXBsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
cmVjb3JkZXIvTWVkaWFSZWNvcmRlclByaXZhdGVBVkZJbXBsLmNwcAppbmRleCAzM2RiMTJmYWFj
N2Y2MjZmNzA1MzgxODEwODhhZmE2NDU3YzBhNDA5Li42OWNkYzhhNjA0YTdlNDU2ZDA1NWUxYjcz
YWNhMWEwOTk5M2YwYTZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1wbC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyUHJpdmF0ZUFWRkltcGwu
Y3BwCkBAIC0zMCw2ICszMCw3IEBACiAKICNpbmNsdWRlICJBdWRpb1N0cmVhbURlc2NyaXB0aW9u
LmgiCiAjaW5jbHVkZSAiQ0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uLmgiCisjaW5jbHVkZSAiQ1ZV
dGlsaXRpZXMuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiTWVkaWFSZWNvcmRl
clByaXZhdGVXcml0ZXJDb2NvYS5oIgogI2luY2x1ZGUgIk1lZGlhU2FtcGxlQVZGT2JqQy5oIgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0
aW1lSW5jb21pbmdWaWRlb1NvdXJjZUNvY29hLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlQ29jb2EuaAppbmRleCA2
NDY2ZDYxOGRlNzQ5ZTVjNWY5MjYxZDI1MmRkOWIwYzE5ZTFhNTc1Li42MDMzOGVhMDczN2RiNjE2
OGZjNjEwYjFjNDIwNWMzYWFhNjlhYmU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlQ29jb2EuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVJbmNv
bWluZ1ZpZGVvU291cmNlQ29jb2EuaApAQCAtNjgsOCArNjgsNiBAQCBwcml2YXRlOgogICAgIHdl
YnJ0Yzo6QnVmZmVyVHlwZSBtX3BpeGVsQnVmZmVyUG9vbEJ1ZmZlclR5cGU7CiB9OwogCi1XRUJD
T1JFX0VYUE9SVCBSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4gY3JlYXRlQmxhY2tQaXhlbEJ1
ZmZlcihzaXplX3Qgd2lkdGgsIHNpemVfdCBoZWlnaHQpOwotCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCiAKICNlbmRpZiAvLyBVU0UoTElCV0VCUlRDKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZUNv
Y29hLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1l
SW5jb21pbmdWaWRlb1NvdXJjZUNvY29hLm1tCmluZGV4IDdhMzUyNmEzOTM1NGRkNjk5YWNkN2U2
MWE4NjU4MmJmMDY3MWE1NGEuLmNmMDM4NGI5OWRiNGM5Y2Q4OWFkYWFiYzRhNTRmNWNjNjIzMTA4
ZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9S
ZWFsdGltZUluY29taW5nVmlkZW9Tb3VyY2VDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlQ29jb2Eu
bW0KQEAgLTMzLDcgKzMzLDYgQEAKICNpbXBvcnQgIkNWVXRpbGl0aWVzLmgiCiAjaW1wb3J0ICJM
b2dnaW5nLmgiCiAjaW1wb3J0ICJNZWRpYVNhbXBsZUFWRk9iakMuaCIKLSNpbXBvcnQgIlJlYWx0
aW1lVmlkZW9VdGlsaXRpZXMuaCIKICNpbXBvcnQgPHd0Zi9jZi9UeXBlQ2FzdHNDRi5oPgogCiBB
TExPV19VTlVTRURfUEFSQU1FVEVSU19CRUdJTgpAQCAtNjIsMzMgKzYxLDYgQEAgUmVhbHRpbWVJ
bmNvbWluZ1ZpZGVvU291cmNlQ29jb2E6OlJlYWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZUNvY29h
KHJ0Yzo6c2NvcGVkX3IKIHsKIH0KIAotUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+IGNyZWF0
ZUJsYWNrUGl4ZWxCdWZmZXIoc2l6ZV90IHdpZHRoLCBzaXplX3QgaGVpZ2h0KQotewotICAgIE9T
VHlwZSBmb3JtYXQgPSBwcmVmZXJlZFBpeGVsQnVmZmVyRm9ybWF0KCk7Ci0gICAgQVNTRVJUKGZv
cm1hdCA9PSBrQ1ZQaXhlbEZvcm1hdFR5cGVfNDIwWXBDYkNyOEJpUGxhbmFyVmlkZW9SYW5nZSB8
fCBmb3JtYXQgPT0ga0NWUGl4ZWxGb3JtYXRUeXBlXzQyMFlwQ2JDcjhCaVBsYW5hckZ1bGxSYW5n
ZSk7Ci0KLSAgICBDVlBpeGVsQnVmZmVyUmVmIHBpeGVsQnVmZmVyID0gbnVsbHB0cjsKLSAgICBh
dXRvIHN0YXR1cyA9IENWUGl4ZWxCdWZmZXJDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgd2lk
dGgsIGhlaWdodCwgZm9ybWF0LCBudWxscHRyLCAmcGl4ZWxCdWZmZXIpOwotICAgIEFTU0VSVF9V
TlVTRUQoc3RhdHVzLCBzdGF0dXMgPT0gbm9FcnIpOwotCi0gICAgc3RhdHVzID0gQ1ZQaXhlbEJ1
ZmZlckxvY2tCYXNlQWRkcmVzcyhwaXhlbEJ1ZmZlciwgMCk7Ci0gICAgQVNTRVJUKHN0YXR1cyA9
PSBub0Vycik7Ci0KLSAgICBhdXRvKiB5UGxhbmUgPSBzdGF0aWNfY2FzdDx1aW50OF90Kj4oQ1ZQ
aXhlbEJ1ZmZlckdldEJhc2VBZGRyZXNzT2ZQbGFuZShwaXhlbEJ1ZmZlciwgMCkpOwotICAgIHNp
emVfdCB5U3RyaWRlID0gQ1ZQaXhlbEJ1ZmZlckdldEJ5dGVzUGVyUm93T2ZQbGFuZShwaXhlbEJ1
ZmZlciwgMCk7Ci0gICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGhlaWdodDsgKytpKQotICAg
ICAgICBtZW1zZXQoJnlQbGFuZVtpICogeVN0cmlkZV0sIDAsIHdpZHRoKTsKLQotICAgIGF1dG8q
IHV2UGxhbmUgPSBzdGF0aWNfY2FzdDx1aW50OF90Kj4oQ1ZQaXhlbEJ1ZmZlckdldEJhc2VBZGRy
ZXNzT2ZQbGFuZShwaXhlbEJ1ZmZlciwgMSkpOwotICAgIHNpemVfdCB1dlN0cmlkZSA9IENWUGl4
ZWxCdWZmZXJHZXRCeXRlc1BlclJvd09mUGxhbmUocGl4ZWxCdWZmZXIsIDEpOwotICAgIGZvciAo
dW5zaWduZWQgaSA9IDA7IGkgPCBoZWlnaHQgLyAyOyArK2kpCi0gICAgICAgIG1lbXNldCgmdXZQ
bGFuZVtpICogdXZTdHJpZGVdLCAxMjgsIHdpZHRoKTsKLQotICAgIHN0YXR1cyA9IENWUGl4ZWxC
dWZmZXJVbmxvY2tCYXNlQWRkcmVzcyhwaXhlbEJ1ZmZlciwgMCk7Ci0gICAgQVNTRVJUKCFzdGF0
dXMpOwotICAgIHJldHVybiBhZG9wdENGKHBpeGVsQnVmZmVyKTsKLX0KLQogQ1ZQaXhlbEJ1ZmZl
clBvb2xSZWYgUmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlQ29jb2E6OnBpeGVsQnVmZmVyUG9v
bChzaXplX3Qgd2lkdGgsIHNpemVfdCBoZWlnaHQsIHdlYnJ0Yzo6QnVmZmVyVHlwZSBidWZmZXJU
eXBlKQogewogICAgIGlmICghbV9waXhlbEJ1ZmZlclBvb2wgfHwgbV9waXhlbEJ1ZmZlclBvb2xX
aWR0aCAhPSB3aWR0aCB8fCBtX3BpeGVsQnVmZmVyUG9vbEhlaWdodCAhPSBoZWlnaHQgfHwgbV9w
aXhlbEJ1ZmZlclBvb2xCdWZmZXJUeXBlICE9IGJ1ZmZlclR5cGUpIHsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZU91dGdvaW5nVmlk
ZW9Tb3VyY2VDb2NvYS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9t
YWMvUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlQ29jb2EuY3BwCmluZGV4IGEzNzU5NWViMzY5
MzA4YzU2Nzg2NmY3ODgzNDE2ZTNjOGRlZmZhNTkuLjY5NTIwNWY1MGY5MjMyYTQyYmNhNTAwYjI0
NGM4OThmYmE2NzcxNzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL21hYy9SZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2VDb2NvYS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lT3V0Z29pbmdWaWRl
b1NvdXJjZUNvY29hLmNwcApAQCAtMjgsNiArMjgsNyBAQAogCiAjaWYgVVNFKExJQldFQlJUQykK
IAorI2luY2x1ZGUgIkNWVXRpbGl0aWVzLmgiCiAjaW5jbHVkZSAiSW1hZ2VSb3RhdGlvblNlc3Np
b25WVC5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJSZWFsdGltZUluY29taW5n
VmlkZW9Tb3VyY2VDb2NvYS5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCmluZGV4IGRlMjNjNDQ0Y2MwNmU4M2RjOGJk
NTJlMGI4YTRhNzRmN2ZlMTgyNGYuLjIyMzkzNGI4YzFmZDM4OGQzMjQ1MTZjZGFmODQzZGZkNmI0
ZWQ3MzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9u
VG9XZWJQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVj
dGlvblRvV2ViUHJvY2Vzcy5jcHAKQEAgLTE0MSw3ICsxNDEsNiBAQAogI2VuZGlmCiAKICNpZiBF
TkFCTEUoTUVESUFfU1RSRUFNKQotI2luY2x1ZGUgIlJlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFw
LmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9TZWN1cml0eU9yaWdpbi5oPgogI2VuZGlmCiAKQEAgLTE1
NCw2ICsxNTMsMTAgQEAKICNpbmNsdWRlICJJUENUZXN0ZXJNZXNzYWdlcy5oIgogI2VuZGlmCiAK
KyNpZiBFTkFCTEUoVklERU8pCisjaW5jbHVkZSAiUmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXAu
aCIKKyNlbmRpZgorCiBuYW1lc3BhY2UgV2ViS2l0IHsKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3Jl
OwogCkBAIC0yNDQsNyArMjQ3LDcgQEAgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6R1BVQ29u
bmVjdGlvblRvV2ViUHJvY2VzcyhHUFVQcm9jZXNzJiBncHVQcm9jZXNzLCBXZWIKICNpZiBFTkFC
TEUoTUVESUFfU1RSRUFNKQogICAgICwgbV9jYXB0dXJlT3JpZ2luKFNlY3VyaXR5T3JpZ2luOjpj
cmVhdGVVbmlxdWUoKSkKICNlbmRpZgotI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisjaWYgRU5B
QkxFKFZJREVPKQogICAgICwgbV92aWRlb0ZyYW1lT2JqZWN0SGVhcChSZW1vdGVWaWRlb0ZyYW1l
T2JqZWN0SGVhcDo6Y3JlYXRlKCp0aGlzKSkKICNlbmRpZgogI2lmIFBMQVRGT1JNKENPQ09BKSAm
JiBVU0UoTElCV0VCUlRDKQpAQCAtMzA1LDcgKzMwOCw3IEBAIHZvaWQgR1BVQ29ubmVjdGlvblRv
V2ViUHJvY2Vzczo6ZGlkQ2xvc2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uKQogICAgICAg
ICBtX2F1ZGlvU2Vzc2lvblByb3h5ID0gbnVsbHB0cjsKICAgICB9CiAjZW5kaWYKLSNpZiBFTkFC
TEUoTUVESUFfU1RSRUFNKQorI2lmIEVOQUJMRShWSURFTykKICAgICBtX3ZpZGVvRnJhbWVPYmpl
Y3RIZWFwLnJlc2V0KCk7CiAjZW5kaWYKICAgICAvLyBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kIG9i
amVjdHMgcmVmIHRoZWlyIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mgc28gd2UgbmVlZCB0byBt
YWtlIHN1cmUKQEAgLTk0OCwxMyArOTUxLDE0IEBAIGJvb2wgR1BVQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzczo6c2V0Q2FwdHVyZUF0dHJpYnV0aW9uU3RyaW5nKCkgY29uc3QKIHsKIH0KICNlbmRpZgor
I2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJFQU0pCiAKKyNpZiBFTkFCTEUoVklERU8pCiBSZW1v
dGVWaWRlb0ZyYW1lT2JqZWN0SGVhcCYgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6dmlkZW9G
cmFtZU9iamVjdEhlYXAoKSBjb25zdAogewogICAgIHJldHVybiAqbV92aWRlb0ZyYW1lT2JqZWN0
SGVhcC5nZXQoKTsKIH0KLQotI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJFQU0pCisjZW5kaWYK
IAogI2lmIFBMQVRGT1JNKE1BQykKIHZvaWQgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6ZGlz
cGxheUNvbmZpZ3VyYXRpb25DaGFuZ2VkKENHRGlyZWN0RGlzcGxheUlELCBDR0Rpc3BsYXlDaGFu
Z2VTdW1tYXJ5RmxhZ3MgZmxhZ3MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaAppbmRleCA4YjRkOWI1NDI5OGI0ODlkNjBkYzA1
Mzg0ODM5MTA4NzQ2ZTFhMGMyLi41MjVkZGE3YWZiMDllOWEzMWRmNDdkMzRlNTY5NTExNTY2ZGMx
MDQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRv
V2ViUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9u
VG9XZWJQcm9jZXNzLmgKQEAgLTEwNiw3ICsxMDYsNyBAQCBzdHJ1Y3QgUmVtb3RlUmVuZGVyaW5n
QmFja2VuZENyZWF0aW9uUGFyYW1ldGVyczsKIGNsYXNzIFJlbW90ZVdDTGF5ZXJUcmVlSG9zdDsK
ICNlbmRpZgogCi0jaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyNpZiBFTkFCTEUoVklERU8pCiBj
bGFzcyBSZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcDsKICNlbmRpZgogCkBAIC0xNDUsOSArMTQ1
LDEwIEBAIHB1YmxpYzoKICAgICBib29sIGFsbG93c0F1ZGlvQ2FwdHVyZSgpIGNvbnN0IHsgcmV0
dXJuIG1fYWxsb3dzQXVkaW9DYXB0dXJlOyB9CiAgICAgYm9vbCBhbGxvd3NWaWRlb0NhcHR1cmUo
KSBjb25zdCB7IHJldHVybiBtX2FsbG93c1ZpZGVvQ2FwdHVyZTsgfQogICAgIGJvb2wgYWxsb3dz
RGlzcGxheUNhcHR1cmUoKSBjb25zdCB7IHJldHVybiBtX2FsbG93c0Rpc3BsYXlDYXB0dXJlOyB9
CisjZW5kaWYKKyNpZiBFTkFCTEUoVklERU8pCiAgICAgUmVtb3RlVmlkZW9GcmFtZU9iamVjdEhl
YXAmIHZpZGVvRnJhbWVPYmplY3RIZWFwKCkgY29uc3Q7CiAjZW5kaWYKLQogI2lmIFBMQVRGT1JN
KENPQ09BKSAmJiBFTkFCTEUoTUVESUFfU1RSRUFNKQogICAgIHZvaWQgc3RhcnRDYXB0dXJpbmdB
dWRpbygpOwogICAgIHZvaWQgcHJvY2Vzc0lzU3RhcnRpbmdUb0NhcHR1cmVBdWRpbyhHUFVDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzJik7CkBAIC0zMDcsNiArMzA4LDggQEAgcHJpdmF0ZToKICAgICBi
b29sIG1fYWxsb3dzQXVkaW9DYXB0dXJlIHsgZmFsc2UgfTsKICAgICBib29sIG1fYWxsb3dzVmlk
ZW9DYXB0dXJlIHsgZmFsc2UgfTsKICAgICBib29sIG1fYWxsb3dzRGlzcGxheUNhcHR1cmUgeyBm
YWxzZSB9OworI2VuZGlmCisjaWYgRU5BQkxFKFZJREVPKQogICAgIElQQzo6U2NvcGVkQWN0aXZl
TWVzc2FnZVJlY2VpdmVRdWV1ZTxSZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcD4gbV92aWRlb0Zy
YW1lT2JqZWN0SGVhcDsKICNlbmRpZgogI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBVU0UoTElCV0VC
UlRDKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90
ZUdyYXBoaWNzQ29udGV4dEdMLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGlj
cy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTC5jcHAKaW5kZXggNGE2N2M1ZDE2ZTVhMGZmOWY5ODdm
ZDI0M2EyZGI5NThkM2RlMmE4YS4uZDNjYzI5ZmJjZGNhYjZiNDBiNTA4ZTQxZjQ1NmM0NmFlYzc0
MjEyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90
ZUdyYXBoaWNzQ29udGV4dEdMLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3Jh
cGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0wuY3BwCkBAIC0zOCwxMSArMzgsNyBAQAogI2lu
Y2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CiAjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+
CiAKLSNpZiBVU0UoQVZGT1VOREFUSU9OKQotI2luY2x1ZGUgPFdlYkNvcmUvR3JhcGhpY3NDb250
ZXh0R0xDVi5oPgotI2VuZGlmCi0KLSNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorI2lmIEVOQUJM
RShWSURFTykKICNpbmNsdWRlICJSZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcC5oIgogI2VuZGlm
CiAKQEAgLTcyLDcgKzY4LDcgQEAgUmVtb3RlR3JhcGhpY3NDb250ZXh0R0w6OlJlbW90ZUdyYXBo
aWNzQ29udGV4dEdMKEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmIGdwdUMKICAgICAsIG1fc3Ry
ZWFtQ29ubmVjdGlvbihJUEM6OlN0cmVhbVNlcnZlckNvbm5lY3Rpb246OmNyZWF0ZShncHVDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzLmNvbm5lY3Rpb24oKSwgV1RGTW92ZShzdHJlYW0pLCByZW1vdGVH
cmFwaGljc0NvbnRleHRHTFN0cmVhbVdvcmtRdWV1ZSgpKSkKICAgICAsIG1fZ3JhcGhpY3NDb250
ZXh0R0xJZGVudGlmaWVyKGdyYXBoaWNzQ29udGV4dEdMSWRlbnRpZmllcikKICAgICAsIG1fcmVu
ZGVyaW5nQmFja2VuZChyZW5kZXJpbmdCYWNrZW5kKQotI2lmIEVOQUJMRShNRURJQV9TVFJFQU0p
CisjaWYgRU5BQkxFKFZJREVPKQogICAgICwgbV92aWRlb0ZyYW1lT2JqZWN0SGVhcChncHVDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzLnZpZGVvRnJhbWVPYmplY3RIZWFwKCkpCiAjZW5kaWYKICAgICAs
IG1fcmVuZGVyaW5nUmVzb3VyY2VzUmVxdWVzdChTY29wZWRXZWJHTFJlbmRlcmluZ1Jlc291cmNl
c1JlcXVlc3Q6OmFjcXVpcmUoKSkKQEAgLTI4MCw1MSArMjc2LDE0IEBAIHZvaWQgUmVtb3RlR3Jh
cGhpY3NDb250ZXh0R0w6OnBhaW50UGl4ZWxCdWZmZXJUb0ltYWdlQnVmZmVyKHN0ZDo6b3B0aW9u
YWw8V2ViQ29yCiAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKIH0KIAotdm9pZCBSZW1vdGVHcmFw
aGljc0NvbnRleHRHTDo6Y29weVRleHR1cmVGcm9tTWVkaWEoV2ViQ29yZTo6TWVkaWFQbGF5ZXJJ
ZGVudGlmaWVyIG1lZGlhUGxheWVySWRlbnRpZmllciwgdWludDMyX3QgdGV4dHVyZSwgdWludDMy
X3QgdGFyZ2V0LCBpbnQzMl90IGxldmVsLCB1aW50MzJfdCBpbnRlcm5hbEZvcm1hdCwgdWludDMy
X3QgZm9ybWF0LCB1aW50MzJfdCB0eXBlLCBib29sIHByZW11bHRpcGx5QWxwaGEsIGJvb2wgZmxp
cFksIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCisj
aWYgRU5BQkxFKFZJREVPKSAmJiAhVVNFKEFWRk9VTkRBVElPTikKK3ZvaWQgUmVtb3RlR3JhcGhp
Y3NDb250ZXh0R0w6OmNvcHlUZXh0dXJlRnJvbVZpZGVvRnJhbWUoV2ViS2l0OjpSZW1vdGVWaWRl
b0ZyYW1lUmVhZFJlZmVyZW5jZSByZWFkLCB1aW50MzJfdCwgdWludDMyX3QsIGludDMyX3QsIHVp
bnQzMl90LCB1aW50MzJfdCwgdWludDMyX3QsIGJvb2wsIGJvb2wgLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewotICAgIGFzc2VydElzQ3VycmVu
dChtX3N0cmVhbVRocmVhZCk7Ci0jaWYgVVNFKEFWRk9VTkRBVElPTikKLSAgICBVTlVTRURfVkFS
SUFCTEUocHJlbXVsdGlwbHlBbHBoYSk7Ci0gICAgQVNTRVJUX1VOVVNFRCh0YXJnZXQsIHRhcmdl
dCA9PSBHcmFwaGljc0NvbnRleHRHTDo6VEVYVFVSRV8yRCk7Ci0KLSAgICBSZWZQdHI8VmlkZW9G
cmFtZT4gdmlkZW9GcmFtZTsKLSAgICBhdXRvIGdldFZpZGVvRnJhbWUgPSBbJl0gewotICAgICAg
ICBpZiAoIW1fZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2VzcykKLSAgICAgICAgICAgIHJldHVybjsK
LQotICAgICAgICBpZiAoYXV0byBtZWRpYVBsYXllciA9IG1fZ3B1Q29ubmVjdGlvblRvV2ViUHJv
Y2Vzcy0+cmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkoKS5tZWRpYVBsYXllcihtZWRpYVBs
YXllcklkZW50aWZpZXIpKQotICAgICAgICAgICAgdmlkZW9GcmFtZSA9IG1lZGlhUGxheWVyLT52
aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWUoKTsKLSAgICB9OwotCi0gICAgY2FsbE9uTWFpblJ1bkxv
b3BBbmRXYWl0KFdURk1vdmUoZ2V0VmlkZW9GcmFtZSkpOwotCi0gICAgaWYgKCF2aWRlb0ZyYW1l
IHx8ICFpczxWaWRlb0ZyYW1lQ1Y+KCp2aWRlb0ZyYW1lKSkgewotICAgICAgICBjb21wbGV0aW9u
SGFuZGxlcihmYWxzZSk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBhdXRvIGNvbnRl
eHRDViA9IG1fY29udGV4dC0+YXNDVigpOwotICAgIGlmICghY29udGV4dENWKSB7Ci0gICAgICAg
IGNvbXBsZXRpb25IYW5kbGVyKGZhbHNlKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAg
IGNvbXBsZXRpb25IYW5kbGVyKGNvbnRleHRDVi0+Y29weVZpZGVvU2FtcGxlVG9UZXh0dXJlKGRv
d25jYXN0PFZpZGVvRnJhbWVDVj4oKnZpZGVvRnJhbWUpLCB0ZXh0dXJlLCBsZXZlbCwgaW50ZXJu
YWxGb3JtYXQsIGZvcm1hdCwgdHlwZSwgR3JhcGhpY3NDb250ZXh0R0w6OkZsaXBZKGZsaXBZKSkp
OwotI2Vsc2UKLSAgICBVTlVTRURfVkFSSUFCTEUobWVkaWFQbGF5ZXJJZGVudGlmaWVyKTsKLSAg
ICBVTlVTRURfVkFSSUFCTEUodGV4dHVyZSk7Ci0gICAgVU5VU0VEX1ZBUklBQkxFKHRhcmdldCk7
Ci0gICAgVU5VU0VEX1ZBUklBQkxFKGxldmVsKTsKLSAgICBVTlVTRURfVkFSSUFCTEUoaW50ZXJu
YWxGb3JtYXQpOwotICAgIFVOVVNFRF9WQVJJQUJMRShmb3JtYXQpOwotICAgIFVOVVNFRF9WQVJJ
QUJMRSh0eXBlKTsKLSAgICBVTlVTRURfVkFSSUFCTEUocHJlbXVsdGlwbHlBbHBoYSk7Ci0gICAg
VU5VU0VEX1ZBUklBQkxFKGZsaXBZKTsKLQogICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgbV92
aWRlb0ZyYW1lT2JqZWN0SGVhcC0+cmV0aXJlKFdURk1vdmUocmVhZCksIGRlZmF1bHRUaW1lb3V0
KTsKICAgICBjb21wbGV0aW9uSGFuZGxlcihmYWxzZSk7Ci0jZW5kaWYKIH0KKyNlbmRpZgogCiB2
b2lkIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMOjpzaW11bGF0ZUV2ZW50Rm9yVGVzdGluZyhXZWJD
b3JlOjpHcmFwaGljc0NvbnRleHRHTDo6U2ltdWxhdGVkRXZlbnRGb3JUZXN0aW5nIGV2ZW50KQog
ewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdy
YXBoaWNzQ29udGV4dEdMLmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVt
b3RlR3JhcGhpY3NDb250ZXh0R0wuaAppbmRleCBmZjI4NDVlZDQyZjM0N2E5YjhhYjg1NzIxZTYy
ZWViMTRlNTE3ZjA4Li4yM2U5YTdjYjQyZmM0OTkwY2EyZTg2YTAwNzQ5MmZkOGJhNGQ5M2EzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhp
Y3NDb250ZXh0R0wuaAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVt
b3RlR3JhcGhpY3NDb250ZXh0R0wuaApAQCAtNTMsNyArNTMsNyBAQAogI2luY2x1ZGUgIldDQ29u
dGVudEJ1ZmZlcklkZW50aWZpZXIuaCIKICNlbmRpZgogCi0jaWYgRU5BQkxFKE1FRElBX1NUUkVB
TSkKKyNpZiBFTkFCTEUoVklERU8pCiAjaW5jbHVkZSAiUmVtb3RlVmlkZW9GcmFtZUlkZW50aWZp
ZXIuaCIKICNpbmNsdWRlICJSZW1vdGVWaWRlb0ZyYW1lUHJveHkuaCIKICNlbmRpZgpAQCAtNjUs
NyArNjUsNyBAQCBjbGFzcyBNYWNoU2VuZFJpZ2h0OwogI2VuZGlmCiAKIG5hbWVzcGFjZSBXZWJL
aXQgewotI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisjaWYgRU5BQkxFKFZJREVPKQogY2xhc3Mg
UmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXA7CiAjZW5kaWYKIApAQCAtMTE4LDcgKzExOCw5IEBA
IHByb3RlY3RlZDoKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogICAgIHZvaWQgcGFpbnRDb21w
b3NpdGVkUmVzdWx0c1RvTWVkaWFTYW1wbGUoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChzdGQ6Om9w
dGlvbmFsPFdlYktpdDo6UmVtb3RlVmlkZW9GcmFtZVByb3h5OjpQcm9wZXJ0aWVzPiYmKT4mJik7
CiAjZW5kaWYKLSAgICB2b2lkIGNvcHlUZXh0dXJlRnJvbU1lZGlhKFdlYkNvcmU6Ok1lZGlhUGxh
eWVySWRlbnRpZmllciwgdWludDMyX3QgdGV4dHVyZSwgdWludDMyX3QgdGFyZ2V0LCBpbnQzMl90
IGxldmVsLCB1aW50MzJfdCBpbnRlcm5hbEZvcm1hdCwgdWludDMyX3QgZm9ybWF0LCB1aW50MzJf
dCB0eXBlLCBib29sIHByZW11bHRpcGx5QWxwaGEsIGJvb2wgZmxpcFksIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoYm9vbCk+JiYpOworI2lmIEVOQUJMRShWSURFTykKKyAgICB2b2lkIGNvcHlUZXh0
dXJlRnJvbVZpZGVvRnJhbWUoUmVtb3RlVmlkZW9GcmFtZVJlYWRSZWZlcmVuY2UsIHVpbnQzMl90
IHRleHR1cmUsIHVpbnQzMl90IHRhcmdldCwgaW50MzJfdCBsZXZlbCwgdWludDMyX3QgaW50ZXJu
YWxGb3JtYXQsIHVpbnQzMl90IGZvcm1hdCwgdWludDMyX3QgdHlwZSwgYm9vbCBwcmVtdWx0aXBs
eUFscGhhLCBib29sIGZsaXBZLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKKyNl
bmRpZgogICAgIHZvaWQgc2ltdWxhdGVFdmVudEZvclRlc3RpbmcoV2ViQ29yZTo6R3JhcGhpY3ND
b250ZXh0R0w6OlNpbXVsYXRlZEV2ZW50Rm9yVGVzdGluZyk7CiAKICNpbmNsdWRlICJSZW1vdGVH
cmFwaGljc0NvbnRleHRHTEZ1bmN0aW9uc0dlbmVyYXRlZC5oIiAvLyBOT0xJTlQKQEAgLTEzMSw2
ICsxMzMsNyBAQCBwcml2YXRlOgogcHJvdGVjdGVkOgogICAgIFdlYWtQdHI8R1BVQ29ubmVjdGlv
blRvV2ViUHJvY2Vzcz4gbV9ncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOwogICAgIFJlZlB0cjxJ
UEM6OlN0cmVhbVNlcnZlckNvbm5lY3Rpb24+IG1fc3RyZWFtQ29ubmVjdGlvbjsKKyAgICBzdGF0
aWMgY29uc3RleHByIFNlY29uZHMgZGVmYXVsdFRpbWVvdXQgPSAxMF9zOwogI2lmIFBMQVRGT1JN
KENPQ09BKQogICAgIHVzaW5nIEdDR0xDb250ZXh0ID0gV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0
R0xDb2NvYTsKICNlbHNlCkBAIC0xNDAsNyArMTQzLDcgQEAgcHJvdGVjdGVkOgogICAgIFJlZlB0
cjxHQ0dMQ29udGV4dD4gbV9jb250ZXh0IFdURl9HVUFSREVEX0JZX0xPQ0sobV9zdHJlYW1UaHJl
YWQpOwogICAgIEdyYXBoaWNzQ29udGV4dEdMSWRlbnRpZmllciBtX2dyYXBoaWNzQ29udGV4dEdM
SWRlbnRpZmllcjsKICAgICBSZWY8UmVtb3RlUmVuZGVyaW5nQmFja2VuZD4gbV9yZW5kZXJpbmdC
YWNrZW5kOwotI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisjaWYgRU5BQkxFKFZJREVPKQogICAg
IFJlZjxSZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcD4gbV92aWRlb0ZyYW1lT2JqZWN0SGVhcDsK
ICNlbmRpZgogICAgIFNjb3BlZFdlYkdMUmVuZGVyaW5nUmVzb3VyY2VzUmVxdWVzdCBtX3JlbmRl
cmluZ1Jlc291cmNlc1JlcXVlc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0wubWVzc2FnZXMuaW4gYi9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0wubWVzc2Fn
ZXMuaW4KaW5kZXggNzljYzZhNGM3MWMwZjk1MDNiNGM1YmZhNDNmYzMwOTA3YWQ4YjUwZi4uZDI3
NjU4NWEyMmNkYmQzN2U1OTBkZjZkODMwMjNiN2EzNGQwYzQ3ZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMLm1lc3Nh
Z2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFw
aGljc0NvbnRleHRHTC5tZXNzYWdlcy5pbgpAQCAtNDEsNyArNDEsOSBAQCBtZXNzYWdlcyAtPiBS
ZW1vdGVHcmFwaGljc0NvbnRleHRHTCBOb3RSZWZDb3VudGVkIFN0cmVhbSB7CiAgICAgdm9pZCBH
ZXRFcnJvcigpIC0+ICh1aW50MzJfdCByZXR1cm5WYWx1ZSkgU3luY2hyb25vdXMKICAgICB2b2lk
IFBhaW50UmVuZGVyaW5nUmVzdWx0c1RvQ2FudmFzKFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNl
SWRlbnRpZmllciBpbWFnZUJ1ZmZlcikgLT4gKCkgU3luY2hyb25vdXMKICAgICB2b2lkIFBhaW50
Q29tcG9zaXRlZFJlc3VsdHNUb0NhbnZhcyhXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50
aWZpZXIgaW1hZ2VCdWZmZXIpIC0+ICgpIFN5bmNocm9ub3VzCi0gICAgdm9pZCBDb3B5VGV4dHVy
ZUZyb21NZWRpYShXZWJDb3JlOjpNZWRpYVBsYXllcklkZW50aWZpZXIgaWRlbnRpZmllciwgdWlu
dDMyX3QgdGV4dHVyZSwgdWludDMyX3QgdGFyZ2V0LCBpbnQzMl90IGxldmVsLCB1aW50MzJfdCBp
bnRlcm5hbEZvcm1hdCwgdWludDMyX3QgZm9ybWF0LCB1aW50MzJfdCB0eXBlLCBib29sIHByZW11
bHRpcGx5QWxwaGEsIGJvb2wgZmxpcFkpIC0+IChib29sIHN1Y2Nlc3MpIFN5bmNocm9ub3VzCisj
aWYgRU5BQkxFKFZJREVPKQorICAgIHZvaWQgQ29weVRleHR1cmVGcm9tVmlkZW9GcmFtZShXZWJL
aXQ6OlJlbW90ZVZpZGVvRnJhbWVSZWFkUmVmZXJlbmNlIHZpZGVvRnJhbWUsIHVpbnQzMl90IHRl
eHR1cmUsIHVpbnQzMl90IHRhcmdldCwgaW50MzJfdCBsZXZlbCwgdWludDMyX3QgaW50ZXJuYWxG
b3JtYXQsIHVpbnQzMl90IGZvcm1hdCwgdWludDMyX3QgdHlwZSwgYm9vbCBwcmVtdWx0aXBseUFs
cGhhLCBib29sIGZsaXBZKSAtPiAoYm9vbCBzdWNjZXNzKSBTeW5jaHJvbm91cworI2VuZGlmCiAj
aWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKICAgICB2b2lkIFBhaW50Q29tcG9zaXRlZFJlc3VsdHNU
b01lZGlhU2FtcGxlKCkgLT4gKHN0ZDo6b3B0aW9uYWw8V2ViS2l0OjpSZW1vdGVWaWRlb0ZyYW1l
UHJveHk6OlByb3BlcnRpZXM+IHByb3BlcnRpZXMpIFN5bmNocm9ub3VzCiAjZW5kaWYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0Nv
bnRleHRHTENvY29hLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1v
dGVHcmFwaGljc0NvbnRleHRHTENvY29hLmNwcAppbmRleCA2YzkwNjFiNWUyZWZlNWIyZmNkYzBm
ODUwMThmY2MxYjk2NDdlZTA2Li43OWRmOTljZTI5YzMzYTBiNGZhNDcwMDI1NDcwNGY4ZTAzZTFh
YzcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3Rl
R3JhcGhpY3NDb250ZXh0R0xDb2NvYS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMQ29jb2EuY3BwCkBAIC0yOSwxMSArMjks
NTUgQEAKICNpZiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIEVOQUJMRShXRUJHTCkgJiYgUExBVEZP
Uk0oQ09DT0EpCiAKICNpbmNsdWRlICJHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgiCisjaW5j
bHVkZSAiSVBDVGVzdGVyLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9Qcm9jZXNzSWRlbnRpdHkuaD4K
ICNpbmNsdWRlIDx3dGYvTWFjaFNlbmRSaWdodC5oPgogCisKKyNpZiBFTkFCTEUoVklERU8pCisj
aW5jbHVkZSAiUmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXAuaCIKKyNpbmNsdWRlIDxXZWJDb3Jl
L0dyYXBoaWNzQ29udGV4dEdMQ1YuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL01lZGlhU2FtcGxlQVZG
T2JqQy5oPgorI2luY2x1ZGUgPFdlYkNvcmUvVmlkZW9GcmFtZUNWLmg+CisjZW5kaWYKKwogbmFt
ZXNwYWNlIFdlYktpdCB7Ci11c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworI2lmIEVOQUJMRShW
SURFTykKK3ZvaWQgUmVtb3RlR3JhcGhpY3NDb250ZXh0R0w6OmNvcHlUZXh0dXJlRnJvbVZpZGVv
RnJhbWUoV2ViS2l0OjpSZW1vdGVWaWRlb0ZyYW1lUmVhZFJlZmVyZW5jZSByZWFkLCB1aW50MzJf
dCB0ZXh0dXJlLCB1aW50MzJfdCB0YXJnZXQsIGludDMyX3QgbGV2ZWwsIHVpbnQzMl90IGludGVy
bmFsRm9ybWF0LCB1aW50MzJfdCBmb3JtYXQsIHVpbnQzMl90IHR5cGUsIGJvb2wgcHJlbXVsdGlw
bHlBbHBoYSwgYm9vbCBmbGlwWSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21w
bGV0aW9uSGFuZGxlcikKK3sKKyAgICBhc3NlcnRJc0N1cnJlbnQobV9zdHJlYW1UaHJlYWQpOwor
ICAgIFVOVVNFRF9WQVJJQUJMRShwcmVtdWx0aXBseUFscGhhKTsKKyAgICBBU1NFUlRfVU5VU0VE
KHRhcmdldCwgdGFyZ2V0ID09IFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMOjpURVhUVVJFXzJE
KTsKKworICAgIGF1dG8gdmlkZW9GcmFtZSA9IG1fdmlkZW9GcmFtZU9iamVjdEhlYXAtPnJldGly
ZShXVEZNb3ZlKHJlYWQpLCBkZWZhdWx0VGltZW91dCk7CisgICAgaWYgKCF2aWRlb0ZyYW1lKSB7
CisgICAgICAgIEFTU0VSVF9JU19URVNUSU5HX0lQQygpOworICAgICAgICBjb21wbGV0aW9uSGFu
ZGxlcihmYWxzZSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgLy8gTm90ZTogVGhpcyBl
eHRyYSBjYXN0aW5nIGlzIG5lZWRlZCBzaW5jZSBWaWRlb0ZyYW1lcyBhcmUgc3RpbGwgTWVkaWFT
YW1wbGVzLgorICAgIFJlZlB0cjxXZWJDb3JlOjpWaWRlb0ZyYW1lQ1Y+IHZpZGVvRnJhbWVDVjsK
KyAgICBpZiAoaXM8V2ViQ29yZTo6VmlkZW9GcmFtZUNWPigqdmlkZW9GcmFtZSkpCisgICAgICAg
IHZpZGVvRnJhbWVDViA9ICZkb3duY2FzdDxXZWJDb3JlOjpWaWRlb0ZyYW1lQ1Y+KCp2aWRlb0Zy
YW1lKTsKKyAgICBlbHNlIGlmIChpczxXZWJDb3JlOjpNZWRpYVNhbXBsZUFWRk9iakM+KCp2aWRl
b0ZyYW1lKSkKKyAgICAgICAgdmlkZW9GcmFtZUNWID0gZG93bmNhc3Q8V2ViQ29yZTo6TWVkaWFT
YW1wbGVBVkZPYmpDPigqdmlkZW9GcmFtZSkudmlkZW9GcmFtZSgpOworICAgIGVsc2UgeworICAg
ICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsgLy8gUHJvZ3JhbW1pbmcgZXJyb3IsIG5vdCBhIElQ
QyBhdHRhY2suCisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGZhbHNlKTsKKyAgICAgICAgcmV0
dXJuOworICAgIH0KKworICAgIGF1dG8gY29udGV4dENWID0gbV9jb250ZXh0LT5hc0NWKCk7Cisg
ICAgaWYgKCFjb250ZXh0Q1YpIHsKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAg
ICAgIGNvbXBsZXRpb25IYW5kbGVyKGZhbHNlKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwor
ICAgIGNvbXBsZXRpb25IYW5kbGVyKGNvbnRleHRDVi0+Y29weVZpZGVvU2FtcGxlVG9UZXh0dXJl
KCp2aWRlb0ZyYW1lQ1YsIHRleHR1cmUsIGxldmVsLCBpbnRlcm5hbEZvcm1hdCwgZm9ybWF0LCB0
eXBlLCBXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTDo6RmxpcFkoZmxpcFkpKSk7Cit9CisjZW5k
aWYKIAogbmFtZXNwYWNlIHsKIApAQCAtNDYsMTIgKzkwLDEyIEBAIHB1YmxpYzoKICAgICB2b2lk
IHBsYXRmb3JtV29ya1F1ZXVlSW5pdGlhbGl6ZShXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTEF0
dHJpYnV0ZXMmJikgZmluYWw7CiAgICAgdm9pZCBwcmVwYXJlRm9yRGlzcGxheShDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKFdURjo6TWFjaFNlbmRSaWdodCYmKT4mJikgZmluYWw7CiBwcml2YXRlOgot
ICAgIGNvbnN0IFByb2Nlc3NJZGVudGl0eSBtX3Jlc291cmNlT3duZXI7CisgICAgY29uc3QgV2Vi
Q29yZTo6UHJvY2Vzc0lkZW50aXR5IG1fcmVzb3VyY2VPd25lcjsKIH07CiAKIH0KIAotUmVmPFJl
bW90ZUdyYXBoaWNzQ29udGV4dEdMPiBSZW1vdGVHcmFwaGljc0NvbnRleHRHTDo6Y3JlYXRlKEdQ
VUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmIGdwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MsIEdyYXBo
aWNzQ29udGV4dEdMQXR0cmlidXRlcyYmIGF0dHJpYnV0ZXMsIEdyYXBoaWNzQ29udGV4dEdMSWRl
bnRpZmllciBncmFwaGljc0NvbnRleHRHTElkZW50aWZpZXIsIFJlbW90ZVJlbmRlcmluZ0JhY2tl
bmQmIHJlbmRlcmluZ0JhY2tlbmQsIElQQzo6U3RyZWFtQ29ubmVjdGlvbkJ1ZmZlciYmIHN0cmVh
bSkKK1JlZjxSZW1vdGVHcmFwaGljc0NvbnRleHRHTD4gUmVtb3RlR3JhcGhpY3NDb250ZXh0R0w6
OmNyZWF0ZShHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiBncHVDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzLCBXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMmJiBhdHRyaWJ1dGVzLCBH
cmFwaGljc0NvbnRleHRHTElkZW50aWZpZXIgZ3JhcGhpY3NDb250ZXh0R0xJZGVudGlmaWVyLCBS
ZW1vdGVSZW5kZXJpbmdCYWNrZW5kJiByZW5kZXJpbmdCYWNrZW5kLCBJUEM6OlN0cmVhbUNvbm5l
Y3Rpb25CdWZmZXImJiBzdHJlYW0pCiB7CiAgICAgYXV0byBpbnN0YW5jZSA9IGFkb3B0UmVmKCpu
ZXcgUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xDb2NvYShncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNz
LCBncmFwaGljc0NvbnRleHRHTElkZW50aWZpZXIsIHJlbmRlcmluZ0JhY2tlbmQsIFdURk1vdmUo
c3RyZWFtKSkpOwogICAgIGluc3RhbmNlLT5pbml0aWFsaXplKFdURk1vdmUoYXR0cmlidXRlcykp
OwpAQCAtNjIsMTMgKzEwNiwxMiBAQCBSZW1vdGVHcmFwaGljc0NvbnRleHRHTENvY29hOjpSZW1v
dGVHcmFwaGljc0NvbnRleHRHTENvY29hKEdQVUNvbm5lY3Rpb25Ub1dlYlBybwogICAgIDogUmVt
b3RlR3JhcGhpY3NDb250ZXh0R0woZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2VzcywgZ3JhcGhpY3ND
b250ZXh0R0xJZGVudGlmaWVyLCByZW5kZXJpbmdCYWNrZW5kLCBXVEZNb3ZlKHN0cmVhbSkpCiAg
ICAgLCBtX3Jlc291cmNlT3duZXIoZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy53ZWJQcm9jZXNz
SWRlbnRpdHkoKSkKIHsKLQogfQogCiB2b2lkIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMQ29jb2E6
OnBsYXRmb3JtV29ya1F1ZXVlSW5pdGlhbGl6ZShXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTEF0
dHJpYnV0ZXMmJiBhdHRyaWJ1dGVzKQogewogICAgIGFzc2VydElzQ3VycmVudChtX3N0cmVhbVRo
cmVhZCk7Ci0gICAgbV9jb250ZXh0ID0gR3JhcGhpY3NDb250ZXh0R0xDb2NvYTo6Y3JlYXRlKFdU
Rk1vdmUoYXR0cmlidXRlcyksIFByb2Nlc3NJZGVudGl0eSB7IG1fcmVzb3VyY2VPd25lciB9KTsK
KyAgICBtX2NvbnRleHQgPSBXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTENvY29hOjpjcmVhdGUo
V1RGTW92ZShhdHRyaWJ1dGVzKSwgV2ViQ29yZTo6UHJvY2Vzc0lkZW50aXR5IHsgbV9yZXNvdXJj
ZU93bmVyIH0pOwogfQogCiB2b2lkIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMQ29jb2E6OnByZXBh
cmVGb3JEaXNwbGF5KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV1RGOjpNYWNoU2VuZFJpZ2h0JiYp
PiYmIGNvbXBsZXRpb25IYW5kbGVyKQpAQCAtNzYsNyArMTE5LDcgQEAgdm9pZCBSZW1vdGVHcmFw
aGljc0NvbnRleHRHTENvY29hOjpwcmVwYXJlRm9yRGlzcGxheShDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKFdURjoKICAgICBhc3NlcnRJc0N1cnJlbnQobV9zdHJlYW1UaHJlYWQpOwogICAgIG1fY29u
dGV4dC0+cHJlcGFyZUZvckRpc3BsYXkoKTsKICAgICBNYWNoU2VuZFJpZ2h0IHNlbmRSaWdodDsK
LSAgICBJT1N1cmZhY2UqIGRpc3BsYXlCdWZmZXIgPSBtX2NvbnRleHQtPmRpc3BsYXlCdWZmZXIo
KTsKKyAgICBXZWJDb3JlOjpJT1N1cmZhY2UqIGRpc3BsYXlCdWZmZXIgPSBtX2NvbnRleHQtPmRp
c3BsYXlCdWZmZXIoKTsKICAgICBpZiAoZGlzcGxheUJ1ZmZlcikgewogICAgICAgICBtX2NvbnRl
eHQtPm1hcmtEaXNwbGF5QnVmZmVySW5Vc2UoKTsKICAgICAgICAgc2VuZFJpZ2h0ID0gZGlzcGxh
eUJ1ZmZlci0+Y3JlYXRlU2VuZFJpZ2h0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkuY3BwIGIvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5LmNw
cAppbmRleCA5YTA3ODdkNjc5OWJhYzBmODEwMjc3NTJiNGE1Y2E4YzhjZTIwMmEwLi4xYTMxZjBk
NTRiYjVkYjcwZjA0ZmI5ODBhNjBhMmQ5YTY1NDA0ODNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFn
ZXJQcm94eS5jcHAKQEAgLTY3LDcgKzY3LDcgQEAgdm9pZCBSZW1vdGVNZWRpYVBsYXllck1hbmFn
ZXJQcm94eTo6Y3JlYXRlTWVkaWFQbGF5ZXIoTWVkaWFQbGF5ZXJJZGVudGlmaWVyIGlkZW4KICAg
ICBBU1NFUlQobV9ncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzKTsKICAgICBBU1NFUlQoIW1fcHJv
eGllcy5jb250YWlucyhpZGVudGlmaWVyKSk7CiAKLSAgICBhdXRvIHByb3h5ID0gbWFrZVVuaXF1
ZTxSZW1vdGVNZWRpYVBsYXllclByb3h5PigqdGhpcywgaWRlbnRpZmllciwgbV9ncHVDb25uZWN0
aW9uVG9XZWJQcm9jZXNzLT5jb25uZWN0aW9uKCksIGVuZ2luZUlkZW50aWZpZXIsIFdURk1vdmUo
cHJveHlDb25maWd1cmF0aW9uKSk7CisgICAgYXV0byBwcm94eSA9IG1ha2VVbmlxdWU8UmVtb3Rl
TWVkaWFQbGF5ZXJQcm94eT4oKnRoaXMsIGlkZW50aWZpZXIsIG1fZ3B1Q29ubmVjdGlvblRvV2Vi
UHJvY2Vzcy0+Y29ubmVjdGlvbigpLCBlbmdpbmVJZGVudGlmaWVyLCBXVEZNb3ZlKHByb3h5Q29u
ZmlndXJhdGlvbiksIG1fZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy0+dmlkZW9GcmFtZU9iamVj
dEhlYXAoKSk7CiAgICAgbV9wcm94aWVzLmFkZChpZGVudGlmaWVyLCBXVEZNb3ZlKHByb3h5KSk7
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVN
ZWRpYVBsYXllclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1v
dGVNZWRpYVBsYXllclByb3h5LmNwcAppbmRleCBjZDJjNTFiYmQzMmUyOGMyZmU0MzQ2ZTlmMjYz
NTAxODllZWE2NjNiLi4wZWY4MzQyZGQyNjhlZTY4YzMwNDc2MmRhMDU4YmE0ZmJjYmM2ZTNjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5
ZXJQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1l
ZGlhUGxheWVyUHJveHkuY3BwCkBAIC00NCw2ICs0NCw4IEBACiAjaW5jbHVkZSAiUmVtb3RlTWVk
aWFSZXNvdXJjZUxvYWRlci5oIgogI2luY2x1ZGUgIlJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2Vy
LmgiCiAjaW5jbHVkZSAiUmVtb3RlVGV4dFRyYWNrUHJveHkuaCIKKyNpbmNsdWRlICJSZW1vdGVW
aWRlb0ZyYW1lT2JqZWN0SGVhcC5oIgorI2luY2x1ZGUgIlJlbW90ZVZpZGVvRnJhbWVQcm94eS5o
IgogI2luY2x1ZGUgIlJlbW90ZVZpZGVvVHJhY2tQcm94eS5oIgogI2luY2x1ZGUgIlRleHRUcmFj
a1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uLmgiCiAjaW5jbHVkZSAiVHJhY2tQcml2YXRlUmVt
b3RlQ29uZmlndXJhdGlvbi5oIgpAQCAtNzQsNyArNzYsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsK
IAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKLVJlbW90ZU1lZGlhUGxheWVyUHJveHk6OlJl
bW90ZU1lZGlhUGxheWVyUHJveHkoUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkmIG1hbmFn
ZXIsIE1lZGlhUGxheWVySWRlbnRpZmllciBpZGVudGlmaWVyLCBSZWY8SVBDOjpDb25uZWN0aW9u
PiYmIGNvbm5lY3Rpb24sIE1lZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5naW5lSWRlbnRpZmllciBl
bmdpbmVJZGVudGlmaWVyLCBSZW1vdGVNZWRpYVBsYXllclByb3h5Q29uZmlndXJhdGlvbiYmIGNv
bmZpZ3VyYXRpb24pCitSZW1vdGVNZWRpYVBsYXllclByb3h5OjpSZW1vdGVNZWRpYVBsYXllclBy
b3h5KFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5JiBtYW5hZ2VyLCBNZWRpYVBsYXllcklk
ZW50aWZpZXIgaWRlbnRpZmllciwgUmVmPElQQzo6Q29ubmVjdGlvbj4mJiBjb25uZWN0aW9uLCBN
ZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50aWZpZXIgZW5naW5lSWRlbnRpZmllciwg
UmVtb3RlTWVkaWFQbGF5ZXJQcm94eUNvbmZpZ3VyYXRpb24mJiBjb25maWd1cmF0aW9uLCBSZW1v
dGVWaWRlb0ZyYW1lT2JqZWN0SGVhcCYgdmlkZW9GcmFtZU9iamVjdEhlYXApCiAgICAgOiBtX2lk
KGlkZW50aWZpZXIpCiAgICAgLCBtX3dlYlByb2Nlc3NDb25uZWN0aW9uKFdURk1vdmUoY29ubmVj
dGlvbikpCiAgICAgLCBtX21hbmFnZXIobWFuYWdlcikKQEAgLTgyLDYgKzg0LDcgQEAgUmVtb3Rl
TWVkaWFQbGF5ZXJQcm94eTo6UmVtb3RlTWVkaWFQbGF5ZXJQcm94eShSZW1vdGVNZWRpYVBsYXll
ck1hbmFnZXJQcm94eSYgbWEKICAgICAsIG1fdXBkYXRlQ2FjaGVkU3RhdGVNZXNzYWdlVGltZXIo
UnVuTG9vcDo6bWFpbigpLCB0aGlzLCAmUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6dGltZXJGaXJl
ZCkKICAgICAsIG1fY29uZmlndXJhdGlvbihjb25maWd1cmF0aW9uKQogICAgICwgbV9yZW5kZXJp
bmdSZXNvdXJjZXNSZXF1ZXN0KFNjb3BlZFJlbmRlcmluZ1Jlc291cmNlc1JlcXVlc3Q6OmFjcXVp
cmUoKSkKKyAgICAsIG1fdmlkZW9GcmFtZU9iamVjdEhlYXAodmlkZW9GcmFtZU9iamVjdEhlYXAp
CiAjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAgICAgLCBtX2xvZ2dlcihtYW5hZ2VyLmxvZ2dl
cigpKQogI2VuZGlmCkBAIC04NjgsMTEgKzg3MSw5IEBAIHZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJQ
cm94eTo6Y3VycmVudFRpbWVDaGFuZ2VkKGNvbnN0IE1lZGlhVGltZSYgbWVkaWFUaW1lKQogICAg
IG1fd2ViUHJvY2Vzc0Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6Ok1lZGlhUGxheWVyUHJpdmF0
ZVJlbW90ZTo6Q3VycmVudFRpbWVDaGFuZ2VkKG1lZGlhVGltZSwgTW9ub3RvbmljVGltZTo6bm93
KCksICFtZWRpYVBsYXllclBhdXNlZE9yU3RhbGxlZCgpKSwgbV9pZCk7CiB9CiAKLS8vIEZJWE1F
OiBUaGlzIHdpbGwgYmUgdHVybmVkIGludG8gY3Jvc3MtcGxhdGZvcm0gY29kZSBzb29uLgotI2lm
IFBMQVRGT1JNKENPQ09BKQotdm9pZCBSZW1vdGVNZWRpYVBsYXllclByb3h5Ojp2aWRlb0ZyYW1l
Rm9yQ3VycmVudFRpbWVJZkNoYW5nZWQoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChzdGQ6Om9wdGlv
bmFsPFJlZlB0cjxXZWJDb3JlOjpWaWRlb0ZyYW1lQ1Y+PiYmLCBib29sKT4mJiBjb21wbGV0aW9u
SGFuZGxlcikKK3ZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6dmlkZW9GcmFtZUZvckN1cnJl
bnRUaW1lSWZDaGFuZ2VkKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoc3RkOjpvcHRpb25hbDxSZW1v
dGVWaWRlb0ZyYW1lUHJveHk6OlByb3BlcnRpZXM+JiYsIGJvb2wpPiYmIGNvbXBsZXRpb25IYW5k
bGVyKQogewotICAgIHN0ZDo6b3B0aW9uYWw8UmVmUHRyPFdlYkNvcmU6OlZpZGVvRnJhbWVDVj4+
IHJlc3VsdDsKKyAgICBzdGQ6Om9wdGlvbmFsPFJlbW90ZVZpZGVvRnJhbWVQcm94eTo6UHJvcGVy
dGllcz4gcmVzdWx0OwogICAgIGJvb2wgY2hhbmdlZCA9IGZhbHNlOwogICAgIFJlZlB0cjxXZWJD
b3JlOjpWaWRlb0ZyYW1lPiB2aWRlb0ZyYW1lOwogICAgIGlmIChtX3BsYXllcikKQEAgLTg4MCwx
NiArODgxLDE1IEBAIHZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6dmlkZW9GcmFtZUZvckN1
cnJlbnRUaW1lSWZDaGFuZ2VkKENvbXBsZXRpb25IYW5kbGVyCiAgICAgaWYgKG1fdmlkZW9GcmFt
ZUZvckN1cnJlbnRUaW1lICE9IHZpZGVvRnJhbWUpIHsKICAgICAgICAgbV92aWRlb0ZyYW1lRm9y
Q3VycmVudFRpbWUgPSB2aWRlb0ZyYW1lOwogICAgICAgICBjaGFuZ2VkID0gdHJ1ZTsKLSAgICAg
ICAgUmVmUHRyPFZpZGVvRnJhbWVDVj4gdmlkZW9GcmFtZUNWOwogICAgICAgICBpZiAodmlkZW9G
cmFtZSkgewotICAgICAgICAgICAgQVNTRVJUKGlzPFZpZGVvRnJhbWVDVj4oKnZpZGVvRnJhbWUp
KTsKLSAgICAgICAgICAgIHZpZGVvRnJhbWVDViA9ICZkb3duY2FzdDxWaWRlb0ZyYW1lQ1Y+KCp2
aWRlb0ZyYW1lKTsKKyAgICAgICAgICAgIGF1dG8gd3JpdGUgPSBSZW1vdGVWaWRlb0ZyYW1lV3Jp
dGVSZWZlcmVuY2U6OmdlbmVyYXRlRm9yQWRkKCk7CisgICAgICAgICAgICBhdXRvIG5ld0ZyYW1l
UmVmZXJlbmNlID0gd3JpdGUucmV0aXJlZFJlZmVyZW5jZSgpOworICAgICAgICAgICAgcmVzdWx0
ID0gUmVtb3RlVmlkZW9GcmFtZVByb3h5Ojpwcm9wZXJ0aWVzKFdURk1vdmUobmV3RnJhbWVSZWZl
cmVuY2UpLCAqdmlkZW9GcmFtZSk7CisgICAgICAgICAgICBtX3ZpZGVvRnJhbWVPYmplY3RIZWFw
LT5yZXRpcmUoV1RGTW92ZSh3cml0ZSksIFdURk1vdmUodmlkZW9GcmFtZSksIHN0ZDo6bnVsbG9w
dCk7CiAgICAgICAgIH0KLSAgICAgICAgcmVzdWx0ID0gV1RGTW92ZSh2aWRlb0ZyYW1lQ1YpOwog
ICAgIH0KICAgICBjb21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKHJlc3VsdCksIGNoYW5nZWQpOwog
fQotI2VuZGlmCiAKIHZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6dXBkYXRlQ2FjaGVkU3Rh
dGUoYm9vbCBmb3JjZUN1cnJlbnRUaW1lVXBkYXRlKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuaCBiL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmgKaW5kZXggYWMx
MThmNjc4MmNhNjg2NzM4ZjI1NTc3NTgzODA0OTAzOTE1MjgwMy4uZjI4NmJkNjRkNzQ5Yjc1NTJj
ZTJlMmY3NzgzOGFjYmNiMmJhMDk3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5oCkBAIC0zNCw2ICszNCw3IEBA
CiAjaW5jbHVkZSAiUmVtb3RlTWVkaWFQbGF5ZXJQcm94eUNvbmZpZ3VyYXRpb24uaCIKICNpbmNs
dWRlICJSZW1vdGVNZWRpYVBsYXllclN0YXRlLmgiCiAjaW5jbHVkZSAiUmVtb3RlTWVkaWFSZXNv
dXJjZUlkZW50aWZpZXIuaCIKKyNpbmNsdWRlICJSZW1vdGVWaWRlb0ZyYW1lUHJveHkuaCIKICNp
bmNsdWRlICJTYW5kYm94RXh0ZW5zaW9uLmgiCiAjaW5jbHVkZSAiU2NvcGVkUmVuZGVyaW5nUmVz
b3VyY2VzUmVxdWVzdC5oIgogI2luY2x1ZGUgIlRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIu
aCIKQEAgLTk4LDYgKzk5LDcgQEAgY2xhc3MgUmVtb3RlQXVkaW9UcmFja1Byb3h5OwogY2xhc3Mg
UmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlclByb3h5OwogY2xhc3MgUmVtb3RlTWVkaWFQbGF5ZXJN
YW5hZ2VyUHJveHk7CiBjbGFzcyBSZW1vdGVUZXh0VHJhY2tQcm94eTsKK2NsYXNzIFJlbW90ZVZp
ZGVvRnJhbWVPYmplY3RIZWFwOwogY2xhc3MgUmVtb3RlVmlkZW9UcmFja1Byb3h5OwogCiBjbGFz
cyBSZW1vdGVNZWRpYVBsYXllclByb3h5IGZpbmFsCkBAIC0xMDUsNyArMTA3LDcgQEAgY2xhc3Mg
UmVtb3RlTWVkaWFQbGF5ZXJQcm94eSBmaW5hbAogICAgICwgcHVibGljIElQQzo6TWVzc2FnZVJl
Y2VpdmVyIHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAgICBSZW1v
dGVNZWRpYVBsYXllclByb3h5KFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5JiwgV2ViQ29y
ZTo6TWVkaWFQbGF5ZXJJZGVudGlmaWVyLCBSZWY8SVBDOjpDb25uZWN0aW9uPiYmLCBXZWJDb3Jl
OjpNZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50aWZpZXIsIFJlbW90ZU1lZGlhUGxh
eWVyUHJveHlDb25maWd1cmF0aW9uJiYpOworICAgIFJlbW90ZU1lZGlhUGxheWVyUHJveHkoUmVt
b3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkmLCBXZWJDb3JlOjpNZWRpYVBsYXllcklkZW50aWZp
ZXIsIFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYsIFdlYkNvcmU6Ok1lZGlhUGxheWVyRW51bXM6Ok1l
ZGlhRW5naW5lSWRlbnRpZmllciwgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eUNvbmZpZ3VyYXRpb24m
JiwgUmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXAmKTsKICAgICB+UmVtb3RlTWVkaWFQbGF5ZXJQ
cm94eSgpOwogCiAgICAgV2ViQ29yZTo6TWVkaWFQbGF5ZXJJZGVudGlmaWVyIGlkZW5kaWZpZXIo
KSBjb25zdCB7IHJldHVybiBtX2lkOyB9CkBAIC0zMzMsOCArMzM1LDggQEAgcHJpdmF0ZToKICNp
ZiBQTEFURk9STShDT0NPQSkKICAgICB2b2lkIG5hdGl2ZUltYWdlRm9yQ3VycmVudFRpbWUoQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChzdGQ6Om9wdGlvbmFsPFdURjo6TWFjaFNlbmRSaWdodD4mJiwg
V2ViQ29yZTo6RGVzdGluYXRpb25Db2xvclNwYWNlKT4mJik7CiAgICAgdm9pZCBjb2xvclNwYWNl
KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6RGVzdGluYXRpb25Db2xvclNwYWNlKT4m
Jik7Ci0gICAgdm9pZCB2aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWVJZkNoYW5nZWQoQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChzdGQ6Om9wdGlvbmFsPFJlZlB0cjxXZWJDb3JlOjpWaWRlb0ZyYW1lQ1Y+
PiYmLCBib29sKT4mJik7CiAjZW5kaWYKKyAgICB2b2lkIHZpZGVvRnJhbWVGb3JDdXJyZW50VGlt
ZUlmQ2hhbmdlZChDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8UmVtb3RlVmlk
ZW9GcmFtZVByb3h5OjpQcm9wZXJ0aWVzPiYmLCBib29sKT4mJik7CiAKICNpZiAhUkVMRUFTRV9M
T0dfRElTQUJMRUQKICAgICBjb25zdCBMb2dnZXImIG1lZGlhUGxheWVyTG9nZ2VyKCkgZmluYWwg
eyByZXR1cm4gbV9sb2dnZXI7IH0KQEAgLTM5MCw2ICszOTIsNyBAQCBwcml2YXRlOgogICAgIFNj
b3BlZFJlbmRlcmluZ1Jlc291cmNlc1JlcXVlc3QgbV9yZW5kZXJpbmdSZXNvdXJjZXNSZXF1ZXN0
OwogCiAgICAgYm9vbCBtX29ic2VydmluZ1RpbWVDaGFuZ2VzIHsgZmFsc2UgfTsKKyAgICBSZWY8
UmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXA+IG1fdmlkZW9GcmFtZU9iamVjdEhlYXA7CiAgICAg
UmVmUHRyPFdlYkNvcmU6OlZpZGVvRnJhbWU+IG1fdmlkZW9GcmFtZUZvckN1cnJlbnRUaW1lOwog
I2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAogICAgIGNvbnN0IExvZ2dlciYgbV9sb2dnZXI7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5
ZXJQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1v
dGVNZWRpYVBsYXllclByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IGNjMTM3YWRlNTE5YmM2ZDQ3MDc1
NmNmNTcwMWQwNDY2ZTE1ZGQ3N2QuLmRhNzFkZTVlMWZjZWQ4YmQ5OTA5NmFhYzk1ZWZjZTMyMzdj
ZjU4MWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVN
ZWRpYVBsYXllclByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5Lm1lc3NhZ2VzLmluCkBAIC0xMjUsOCArMTI1
LDggQEAgbWVzc2FnZXMgLT4gUmVtb3RlTWVkaWFQbGF5ZXJQcm94eSBOb3RSZWZDb3VudGVkIHsK
ICNpZiBQTEFURk9STShDT0NPQSkKICAgICBOYXRpdmVJbWFnZUZvckN1cnJlbnRUaW1lKCkgLT4g
KHN0ZDo6b3B0aW9uYWw8TWFjaFNlbmRSaWdodD4gc2VuZFJpZ2h0LCBXZWJDb3JlOjpEZXN0aW5h
dGlvbkNvbG9yU3BhY2UgY29sb3JTcGFjZSkgU3luY2hyb25vdXMKICAgICBDb2xvclNwYWNlKCkg
LT4gKFdlYkNvcmU6OkRlc3RpbmF0aW9uQ29sb3JTcGFjZSBjb2xvclNwYWNlKSBTeW5jaHJvbm91
cwotICAgIFZpZGVvRnJhbWVGb3JDdXJyZW50VGltZUlmQ2hhbmdlZCgpIC0+IChzdGQ6Om9wdGlv
bmFsPFJlZlB0cjxXZWJDb3JlOjpWaWRlb0ZyYW1lQ1Y+PiB2aWRlb0ZyYW1lLCBib29sIGNoYW5n
ZWQpIFN5bmNocm9ub3VzCiAjZW5kaWYKKyAgICBWaWRlb0ZyYW1lRm9yQ3VycmVudFRpbWVJZkNo
YW5nZWQoKSAtPiAoc3RkOjpvcHRpb25hbDxXZWJLaXQ6OlJlbW90ZVZpZGVvRnJhbWVQcm94eTo6
UHJvcGVydGllcz4gdmlkZW9GcmFtZSwgYm9vbCBjaGFuZ2VkKSBTeW5jaHJvbm91cwogCiAgICAg
UGxheUF0SG9zdFRpbWUoTW9ub3RvbmljVGltZSB0aW1lKQogICAgIFBhdXNlQXRIb3N0VGltZShN
b25vdG9uaWNUaW1lIHRpbWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
bWVkaWEvUmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXAuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL21lZGlhL1JlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwLmNwcAppbmRleCBmODdiOTMx
ZDk3MjFlNTc0ZjMxMzk5NzY3ZWJlZTg0ZDNhNzNmNmViLi44NDU2MjQ4OGY0YTI2YWUwMGM5MDE3
NTlmYWVkYzE1YWIwYWYxYWYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
bWVkaWEvUmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXAuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcC5jcHAKQEAgLTI2LDEz
ICsyNiwxNSBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlJlbW90ZVZpZGVvRnJh
bWVPYmplY3RIZWFwLmgiCiAKLSNpZiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIEVOQUJMRShNRURJ
QV9TVFJFQU0pCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBFTkFCTEUoVklERU8pCiAjaW5j
bHVkZSAiR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oIgogI2luY2x1ZGUgIlJlbW90ZVZpZGVv
RnJhbWVPYmplY3RIZWFwTWVzc2FnZXMuaCIKICNpbmNsdWRlICJSZW1vdGVWaWRlb0ZyYW1lT2Jq
ZWN0SGVhcFByb3h5UHJvY2Vzc29yTWVzc2FnZXMuaCIKICNpbmNsdWRlICJSZW1vdGVWaWRlb0Zy
YW1lUHJveHkuaCIKIAorI2lmIFBMQVRGT1JNKENPQ09BKQogI2luY2x1ZGUgPHBhbC9jZi9Db3Jl
TWVkaWFTb2Z0TGluay5oPgorI2VuZGlmCiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCkBAIC01Nyw3
ICs1OSw5IEBAIFJlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwOjp+UmVtb3RlVmlkZW9GcmFtZU9i
amVjdEhlYXAoKQogdm9pZCBSZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcDo6c3RvcExpc3Rlbmlu
Z0ZvcklQQyhSZWY8UmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXA+JiYgcmVmRnJvbUNvbm5lY3Rp
b24pCiB7CiAgICAgYXNzZXJ0SXNDdXJyZW50KG1fY29uc3VtZVRocmVhZCk7CisjaWYgUExBVEZP
Uk0oQ09DT0EpCiAgICAgbV9zaGFyZWRWaWRlb0ZyYW1lV3JpdGVyLmRpc2FibGUoKTsKKyNlbmRp
ZgogCiAgICAgaWYgKGF1dG8qIGdwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MgPSBzdGQ6OmV4Y2hh
bmdlKG1fZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2VzcywgbnVsbHB0cikpIHsKICAgICAgICAgZ3B1
Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy0+bWVzc2FnZVJlY2VpdmVyTWFwKCkucmVtb3ZlTWVzc2Fn
ZVJlY2VpdmVyKE1lc3NhZ2VzOjpSZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcDo6bWVzc2FnZVJl
Y2VpdmVyTmFtZSgpKTsKQEAgLTgyLDYgKzg2LDcgQEAgdm9pZCBSZW1vdGVWaWRlb0ZyYW1lT2Jq
ZWN0SGVhcDo6cmVsZWFzZVZpZGVvRnJhbWUoUmVtb3RlVmlkZW9GcmFtZVdyaXRlUmVmZXJlbmMK
ICAgICByZXRpcmVSZW1vdmUoV1RGTW92ZSh3cml0ZSkpOwogfQogCisjaWYgUExBVEZPUk0oQ09D
T0EpCiB2b2lkIFJlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwOjpnZXRWaWRlb0ZyYW1lQnVmZmVy
KFJlbW90ZVZpZGVvRnJhbWVSZWFkUmVmZXJlbmNlJiYgcmVhZCkKIHsKICAgICBhdXRvIGlkZW50
aWZpZXIgPSByZWFkLmlkZW50aWZpZXIoKTsKQEAgLTk5LDYgKzEwNCw3IEBAIHZvaWQgUmVtb3Rl
VmlkZW9GcmFtZU9iamVjdEhlYXA6OmdldFZpZGVvRnJhbWVCdWZmZXIoUmVtb3RlVmlkZW9GcmFt
ZVJlYWRSZWZlcmVuCiAgICAgKTsKICAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlJl
bW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwUHJveHlQcm9jZXNzb3I6Ok5ld1ZpZGVvRnJhbWVCdWZm
ZXIgeyBpZGVudGlmaWVyIH0sIDApOwogfQorI2VuZGlmCiAKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwLmgg
Yi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlVmlkZW9GcmFtZU9iamVjdEhl
YXAuaAppbmRleCBhZDBjYjNiOTYxODQ2YzAxNDU3OWFiZmUzN2I3ZDE3Y2VlZTQ0NmZiLi5lYmI5
MDRlYjU1YjBmMzI0YzE3NWE4NWJhY2EzY2E1MTlmNjNiZDkxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXAuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlVmlkZW9GcmFtZU9iamVjdEhl
YXAuaApAQCAtMjUsMTMgKzI1LDE2IEBACiAKICNwcmFnbWEgb25jZQogCi0jaWYgRU5BQkxFKEdQ
VV9QUk9DRVNTKSAmJiBFTkFCTEUoTUVESUFfU1RSRUFNKQorI2lmIEVOQUJMRShHUFVfUFJPQ0VT
UykgJiYgRU5BQkxFKFZJREVPKQogI2luY2x1ZGUgIlJlbW90ZVZpZGVvRnJhbWVJZGVudGlmaWVy
LmgiCi0jaW5jbHVkZSAiU2hhcmVkVmlkZW9GcmFtZS5oIgogI2luY2x1ZGUgIlRocmVhZFNhZmVP
YmplY3RIZWFwLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9NZWRpYVNhbXBsZS5oPgogI2luY2x1ZGUg
PHd0Zi9UaHJlYWRBc3NlcnRpb25zLmg+CiAKKyNpZiBQTEFURk9STShDT0NPQSkKKyNpbmNsdWRl
ICJTaGFyZWRWaWRlb0ZyYW1lLmgiCisjZW5kaWYKKwogbmFtZXNwYWNlIFdlYktpdCB7CiBjbGFz
cyBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOwogCkBAIC02Miw3ICs2NSw5IEBAIHByaXZhdGU6
CiAgICAgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyogbV9ncHVDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzIFdURl9HVUFSREVEX0JZX0xPQ0sobV9jb25zdW1lVGhyZWFkKTsKICAgICBjb25zdCBSZWY8
SVBDOjpDb25uZWN0aW9uPiBtX2Nvbm5lY3Rpb247CiAgICAgVGhyZWFkQXNzZXJ0aW9uIG1fY29u
c3VtZVRocmVhZCBOT19VTklRVUVfQUREUkVTUzsKKyNpZiBQTEFURk9STShDT0NPQSkKICAgICBT
aGFyZWRWaWRlb0ZyYW1lV3JpdGVyIG1fc2hhcmVkVmlkZW9GcmFtZVdyaXRlcjsKKyNlbmRpZgog
fTsKIAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3Rl
VmlkZW9GcmFtZU9iamVjdEhlYXAubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvbWVkaWEvUmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXAubWVzc2FnZXMuaW4KaW5kZXggMWQz
ZDI0M2UxNTE3NWVmZjljOGQ3ZWZjYmJiZDBiMTUyZGU1Y2E2Mi4uMWNlMmE0OTZlNWVkYmU3NWE3
ZTdjNjQyN2ZiNGViNTRmMmQ0OWEwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL21lZGlhL1JlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwLm1lc3NhZ2VzLmluCisrKyBiL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcC5t
ZXNzYWdlcy5pbgpAQCAtMjEsNyArMjEsNyBAQAogIyBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCiAjIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KIAotI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgRU5B
QkxFKE1FRElBX1NUUkVBTSkKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIEVOQUJMRShWSURF
TykKIG1lc3NhZ2VzIC0+IFJlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwIE5vdFJlZkNvdW50ZWQg
ewogICAgIEdldFZpZGVvRnJhbWVCdWZmZXIoV2ViS2l0OjpSZW1vdGVWaWRlb0ZyYW1lUmVhZFJl
ZmVyZW5jZSBpZGVudGlmaWVyKQogICAgIFJlbGVhc2VWaWRlb0ZyYW1lKFdlYktpdDo6UmVtb3Rl
VmlkZW9GcmFtZVdyaXRlUmVmZXJlbmNlIGlkZW50aWZpZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9UaHJlYWRTYWZlT2JqZWN0SGVhcC5oIGIvU291cmNlL1dlYktpdC9TaGFy
ZWQvVGhyZWFkU2FmZU9iamVjdEhlYXAuaAppbmRleCBjNWM1ODcyZGFhYzk5NGZlNDFmNWI2Yjkx
M2MyNzM4YTRmZGI0M2M1Li4xNWRjNjU3MjIwMmM5MDBmMTlmNzY4ZDA0MzQ1OTNkN2FlOGZiMTM1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9UaHJlYWRTYWZlT2JqZWN0SGVhcC5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1RocmVhZFNhZmVPYmplY3RIZWFwLmgKQEAgLTI1
LDcgKzI1LDYgQEAKIAogI3ByYWdtYSBvbmNlCiAKLSNpZiBFTkFCTEUoR1BVX1BST0NFU1MpICYm
IEVOQUJMRShNRURJQV9TVFJFQU0pCiAjaW5jbHVkZSAiSVBDVGVzdGVyLmgiCiAjaW5jbHVkZSAi
T2JqZWN0SWRlbnRpZmllclJlZmVyZW5jZVRyYWNrZXIuaCIKICNpbmNsdWRlIDx3dGYvQ29uZGl0
aW9uLmg+CkBAIC0yMDAsNCArMTk5LDMgQEAgdm9pZCBUaHJlYWRTYWZlT2JqZWN0SGVhcDxJZGVu
dGlmaWVyLCBIZWxkVHlwZT46OmFkZChJZGVudGlmaWVyIGlkZW50aWZpZXIsIEhlbGQKIH0KIAog
fQotI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL0dQVVBy
b2Nlc3NDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvR1BVUHJv
Y2Vzc0Nvbm5lY3Rpb24uY3BwCmluZGV4IDQ0YThjZTBiYWZmOWMzMDY1YzVkNTRlMTU4ZGM5YTAx
MWU0ZDIzOWYuLjY4MzIyNDNjODUxZjBjZGFkNGJmZDA1YzAwNmFlYTAzMGVkOGM2NTcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc0Nvbm5lY3Rpb24u
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc0Nvbm5lY3Rp
b24uY3BwCkBAIC03Niw3ICs3Niw3IEBACiAjaW5jbHVkZSAiVXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXJNZXNzYWdlcy5oIgogI2VuZGlmCiAKLSNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorI2lmIEVO
QUJMRShWSURFTykKICNpbmNsdWRlICJSZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcFByb3h5Lmgi
CiAjaW5jbHVkZSAiUmVtb3RlVmlkZW9GcmFtZVByb3h5LmgiCiAjZW5kaWYKQEAgLTE2Niw3ICsx
NjYsNyBAQCB2b2lkIEdQVVByb2Nlc3NDb25uZWN0aW9uOjpyZXNldEF1ZGlvTWVkaWFTdHJlYW1U
cmFja1JlbmRlcmVySW50ZXJuYWxVbml0KEF1ZGlvTQogfQogI2VuZGlmCiAKLSNpZiBFTkFCTEUo
TUVESUFfU1RSRUFNKQorI2lmIEVOQUJMRShWSURFTykKIFJlbW90ZVZpZGVvRnJhbWVPYmplY3RI
ZWFwUHJveHkmIEdQVVByb2Nlc3NDb25uZWN0aW9uOjp2aWRlb0ZyYW1lT2JqZWN0SGVhcFByb3h5
KCkKIHsKICAgICBpZiAoIW1fdmlkZW9GcmFtZU9iamVjdEhlYXBQcm94eSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc0Nvbm5lY3Rpb24uaCBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc0Nvbm5lY3Rpb24uaAppbmRleCA5
ZWFjZTZiYjc5YTc2Yjc1OTJlYjM5ZjIyYTZiYWViMTE1MmVlNTFlLi40Zjg4ZTFjZGUwNWYzMzVm
OTVjNzNlNWY5YzAzNWRlZmFiNGJiNDZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvR1BVL0dQVVByb2Nlc3NDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0dQVS9HUFVQcm9jZXNzQ29ubmVjdGlvbi5oCkBAIC01Nyw3ICs1Nyw3IEBAIHN0cnVj
dCBHUFVQcm9jZXNzQ29ubmVjdGlvbkluaXRpYWxpemF0aW9uUGFyYW1ldGVyczsKIHN0cnVjdCBP
dmVycmlkZVNjcmVlbkRhdGFGb3JUZXN0aW5nOwogc3RydWN0IFdlYlBhZ2VDcmVhdGlvblBhcmFt
ZXRlcnM7CiAKLSNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorI2lmIEVOQUJMRShWSURFTykKIGNs
YXNzIFJlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwUHJveHk7CiAjZW5kaWYKIApAQCAtODIsNyAr
ODIsNyBAQCBwdWJsaWM6CiAgICAgU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlciYgc2Ft
cGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlcigpOwogICAgIHZvaWQgcmVzZXRBdWRpb01lZGlh
U3RyZWFtVHJhY2tSZW5kZXJlckludGVybmFsVW5pdChBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5k
ZXJlckludGVybmFsVW5pdElkZW50aWZpZXIpOwogI2VuZGlmCi0jaWYgRU5BQkxFKE1FRElBX1NU
UkVBTSkKKyNpZiBFTkFCTEUoVklERU8pCiAgICAgUmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXBQ
cm94eSYgdmlkZW9GcmFtZU9iamVjdEhlYXBQcm94eSgpOwogI2VuZGlmCiAKQEAgLTE0OCw3ICsx
NDgsNyBAQCBwcml2YXRlOgogI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBFTkFCTEUoTUVESUFfU1RS
RUFNKQogICAgIHN0ZDo6dW5pcXVlX3B0cjxTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2Vy
PiBtX3NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXI7CiAjZW5kaWYKLSNpZiBFTkFCTEUo
TUVESUFfU1RSRUFNKQorI2lmIEVOQUJMRShWSURFTykKICAgICBSZWZQdHI8UmVtb3RlVmlkZW9G
cmFtZU9iamVjdEhlYXBQcm94eT4gbV92aWRlb0ZyYW1lT2JqZWN0SGVhcFByb3h5OwogI2VuZGlm
CiAjaWYgUExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShXRUJfQVVESU8pCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4
dEdMUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1v
dGVHcmFwaGljc0NvbnRleHRHTFByb3h5LmNwcAppbmRleCBjODk2YWI3ZmRiYjZmMjg4Y2UzYzYy
NDJlNGViMGRlZmZkYzQwNTE2Li4zZmIyOGE2ZGI4NGZmZTE1Y2MwMzM1YzNkZDM5NjhmOTExZTBl
N2IwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1Jl
bW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eS5jcHAKQEAgLTMy
LDExICszMiwxMSBAQAogI2luY2x1ZGUgIkdQVVByb2Nlc3NDb25uZWN0aW9uLmgiCiAjaW5jbHVk
ZSAiUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xNZXNzYWdlcy5oIgogI2luY2x1ZGUgIlJlbW90ZUdy
YXBoaWNzQ29udGV4dEdMUHJveHlNZXNzYWdlcy5oIgotI2luY2x1ZGUgIlJlbW90ZVZpZGVvRnJh
bWVPYmplY3RIZWFwUHJveHkuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCiAjaW5jbHVkZSA8
V2ViQ29yZS9JbWFnZUJ1ZmZlci5oPgogCi0jaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyNpZiBF
TkFCTEUoVklERU8pCisjaW5jbHVkZSAiUmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXBQcm94eS5o
IgogI2luY2x1ZGUgIlJlbW90ZVZpZGVvRnJhbWVQcm94eS5oIgogI2VuZGlmCiAKQEAgLTE4Miwx
MCArMTgyLDE1IEBAIFJlZlB0cjxXZWJDb3JlOjpNZWRpYVNhbXBsZT4gUmVtb3RlR3JhcGhpY3ND
b250ZXh0R0xQcm94eTo6cGFpbnRDb21wb3NpdGVkUmVzdWx0CiB9CiAjZW5kaWYKIAorI2lmIEVO
QUJMRShWSURFTykKIGJvb2wgUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eTo6Y29weVRleHR1
cmVGcm9tTWVkaWEoTWVkaWFQbGF5ZXImIG1lZGlhUGxheWVyLCBQbGF0Zm9ybUdMT2JqZWN0IHRl
eHR1cmUsIEdDR0xlbnVtIHRhcmdldCwgR0NHTGludCBsZXZlbCwgR0NHTGVudW0gaW50ZXJuYWxG
b3JtYXQsIEdDR0xlbnVtIGZvcm1hdCwgR0NHTGVudW0gdHlwZSwgYm9vbCBwcmVtdWx0aXBseUFs
cGhhLCBib29sIGZsaXBZKQogeworICAgIGF1dG8gdmlkZW9GcmFtZSA9IG1lZGlhUGxheWVyLnZp
ZGVvRnJhbWVGb3JDdXJyZW50VGltZSgpOworICAgIC8vIFZpZGVvIGluIFdQIHdoaWxlIFdlYkdM
IGluIEdQVVAgaXMgbm90IHN1cHBvcnRlZC4KKyAgICBpZiAoIXZpZGVvRnJhbWUgfHwgIWlzPFJl
bW90ZVZpZGVvRnJhbWVQcm94eT4oKnZpZGVvRnJhbWUpKQorICAgICAgICByZXR1cm4gZmFsc2U7
CiAgICAgYm9vbCByZXN1bHQgPSBmYWxzZTsKLSAgICBhdXRvIHNlbmRSZXN1bHQgPSBzZW5kU3lu
YyhNZXNzYWdlczo6UmVtb3RlR3JhcGhpY3NDb250ZXh0R0w6OkNvcHlUZXh0dXJlRnJvbU1lZGlh
KG1lZGlhUGxheWVyLmlkZW50aWZpZXIoKSwgdGV4dHVyZSwgdGFyZ2V0LCBsZXZlbCwgaW50ZXJu
YWxGb3JtYXQsIGZvcm1hdCwgdHlwZSwgcHJlbXVsdGlwbHlBbHBoYSwgZmxpcFkpLCBNZXNzYWdl
czo6UmVtb3RlR3JhcGhpY3NDb250ZXh0R0w6OkNvcHlUZXh0dXJlRnJvbU1lZGlhOjpSZXBseShy
ZXN1bHQpKTsKKyAgICBhdXRvIHNlbmRSZXN1bHQgPSBzZW5kU3luYyhNZXNzYWdlczo6UmVtb3Rl
R3JhcGhpY3NDb250ZXh0R0w6OkNvcHlUZXh0dXJlRnJvbVZpZGVvRnJhbWUoZG93bmNhc3Q8UmVt
b3RlVmlkZW9GcmFtZVByb3h5PigqdmlkZW9GcmFtZSkucmVhZCgpLCB0ZXh0dXJlLCB0YXJnZXQs
IGxldmVsLCBpbnRlcm5hbEZvcm1hdCwgZm9ybWF0LCB0eXBlLCBwcmVtdWx0aXBseUFscGhhLCBm
bGlwWSksIE1lc3NhZ2VzOjpSZW1vdGVHcmFwaGljc0NvbnRleHRHTDo6Q29weVRleHR1cmVGcm9t
VmlkZW9GcmFtZTo6UmVwbHkocmVzdWx0KSk7CiAgICAgaWYgKCFzZW5kUmVzdWx0KSB7CiAgICAg
ICAgIG1hcmtDb250ZXh0TG9zdCgpOwogICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC0xOTMsNiAr
MTk4LDcgQEAgYm9vbCBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5Ojpjb3B5VGV4dHVyZUZy
b21NZWRpYShNZWRpYVBsYXllciYgbWVkaWFQbGF5ZXIKIAogICAgIHJldHVybiByZXN1bHQ7CiB9
CisjZW5kaWYKIAogdm9pZCBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5OjpzeW50aGVzaXpl
R0xFcnJvcihHQ0dMZW51bSBlcnJvcikKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eS5oIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRH
TFByb3h5LmgKaW5kZXggMzQ0ZmU5ODVkODAzY2RiMjdjZjFlNzJhZGZiNWI2OWFlNjcwZjA2Ny4u
Zjc2NTQwM2E1Njk3MGE0N2ExZDNmNmMzMTNiMDViNzA4MDE4ZjM0MyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRH
TFByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1v
dGVHcmFwaGljc0NvbnRleHRHTFByb3h5LmgKQEAgLTczLDcgKzczLDkgQEAgcHVibGljOgogI2Vu
ZGlmCiAgICAgdm9pZCBzeW50aGVzaXplR0xFcnJvcihHQ0dMZW51bSBlcnJvcikgZmluYWw7CiAg
ICAgR0NHTGVudW0gZ2V0RXJyb3IoKSBmaW5hbDsKKyNpZiBFTkFCTEUoVklERU8pCiAgICAgYm9v
bCBjb3B5VGV4dHVyZUZyb21NZWRpYShXZWJDb3JlOjpNZWRpYVBsYXllciYsIFBsYXRmb3JtR0xP
YmplY3QgdGV4dHVyZSwgR0NHTGVudW0gdGFyZ2V0LCBHQ0dMaW50IGxldmVsLCBHQ0dMZW51bSBp
bnRlcm5hbEZvcm1hdCwgR0NHTGVudW0gZm9ybWF0LCBHQ0dMZW51bSB0eXBlLCBib29sIHByZW11
bHRpcGx5QWxwaGEsIGJvb2wgZmxpcFkpIGZpbmFsOworI2VuZGlmCiAgICAgdm9pZCBzaW11bGF0
ZUV2ZW50Rm9yVGVzdGluZyhTaW11bGF0ZWRFdmVudEZvclRlc3RpbmcpIGZpbmFsOwogCiAgICAg
Ly8gRnVuY3Rpb25zIHdpdGggYSBnZW5lcmF0ZWQgaW1wbGVtZW50YXRpb24uIFRoaXMgbGlzdCBp
cyB1c2VkIGJ5IGdlbmVyYXRlLWdwdXAtd2ViZ2wgc2NyaXB0LgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuY3Bw
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVS
ZW1vdGUuY3BwCmluZGV4IGMxOWYyNTUwYWRiMzBhYzczYTk2MGRiZGY0ODNmYjU4OTBjM2YwYjMu
LmVhNGRjYjM3NGQwYzViOGRjYjkxMDkwNGZmZGRjYzAyYTQyZTk5N2IgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3Rl
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVy
UHJpdmF0ZVJlbW90ZS5jcHAKQEAgLTEwMDUsMTkgKzEwMDUsMTYgQEAgYm9vbCBNZWRpYVBsYXll
clByaXZhdGVSZW1vdGU6OmNvcHlWaWRlb1RleHR1cmVUb1BsYXRmb3JtVGV4dHVyZShXZWJDb3Jl
OjpHcmFwaGkKIAogUmVmUHRyPFdlYkNvcmU6OlZpZGVvRnJhbWU+IE1lZGlhUGxheWVyUHJpdmF0
ZVJlbW90ZTo6dmlkZW9GcmFtZUZvckN1cnJlbnRUaW1lKCkKIHsKLS8vIEZJWE1FOiBUaGlzIHdp
bGwgYmUgbWFkZSBjcm9zcy1wbGF0Zm9ybSBhZ2FpbiBzb29uLiBUaGVyZSBhcmUgbm8gb3RoZXIg
cGxhdGZvcm1zIHVzaW5nIHRoaXMgYXQgdGhlIG1vbWVudC4KLSNpZiBQTEFURk9STShDT0NPQSkK
LSAgICBzdGQ6Om9wdGlvbmFsPFJlZlB0cjxXZWJDb3JlOjpWaWRlb0ZyYW1lQ1Y+PiByZXN1bHQ7
CisgICAgc3RkOjpvcHRpb25hbDxSZW1vdGVWaWRlb0ZyYW1lUHJveHk6OlByb3BlcnRpZXM+IHJl
c3VsdDsKICAgICBib29sIGNoYW5nZWQgPSBmYWxzZTsKICAgICBpZiAoIWNvbm5lY3Rpb24oKS5z
ZW5kU3luYyhNZXNzYWdlczo6UmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6VmlkZW9GcmFtZUZvckN1
cnJlbnRUaW1lSWZDaGFuZ2VkKCksIE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVBsYXllclByb3h5OjpW
aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWVJZkNoYW5nZWQ6OlJlcGx5KHJlc3VsdCwgY2hhbmdlZCks
IG1faWQpKQotICAgICAgICByZXR1cm4gbV92aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWU7CisgICAg
ICAgIHJldHVybiBudWxscHRyOwogICAgIGlmIChjaGFuZ2VkKSB7CiAgICAgICAgIGlmIChyZXN1
bHQpCi0gICAgICAgICAgICBtX3ZpZGVvRnJhbWVGb3JDdXJyZW50VGltZSA9IFdURk1vdmUoKnJl
c3VsdCk7CisgICAgICAgICAgICBtX3ZpZGVvRnJhbWVGb3JDdXJyZW50VGltZSA9IFJlbW90ZVZp
ZGVvRnJhbWVQcm94eTo6Y3JlYXRlKGNvbm5lY3Rpb24oKSwgdmlkZW9GcmFtZU9iamVjdEhlYXBQ
cm94eSgpLCBXVEZNb3ZlKCpyZXN1bHQpKTsKICAgICAgICAgZWxzZQogICAgICAgICAgICAgbV92
aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWUgPSBudWxscHRyOwogICAgIH0KLSNlbmRpZgogICAgIHJl
dHVybiBtX3ZpZGVvRnJhbWVGb3JDdXJyZW50VGltZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuaCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVt
b3RlLmgKaW5kZXggMjlmOTEyZDRlOGI4N2I1N2JhMTU2MjRhNmRjNWUwNmI3YzVjMWI5ZC4uMzhl
Zjg4OTcxODIwMjk0NDQwM2M1MmY4M2I5NDI3MTcxMjExOGU2NCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0
ZVJlbW90ZS5oCkBAIC0zNCw2ICszNCw4IEBACiAjaW5jbHVkZSAiUmVtb3RlTWVkaWFQbGF5ZXJT
dGF0ZS5oIgogI2luY2x1ZGUgIlJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyLmgiCiAjaW5j
bHVkZSAiUmVtb3RlTWVkaWFSZXNvdXJjZVByb3h5LmgiCisjaW5jbHVkZSAiUmVtb3RlVmlkZW9G
cmFtZU9iamVjdEhlYXBQcm94eS5oIgorI2luY2x1ZGUgIlJlbW90ZVZpZGVvRnJhbWVQcm94eS5o
IgogI2luY2x1ZGUgIlRleHRUcmFja1ByaXZhdGVSZW1vdGUuaCIKICNpbmNsdWRlICJUcmFja1By
aXZhdGVSZW1vdGVJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiVmlkZW9UcmFja1ByaXZhdGVSZW1v
dGUuaCIKQEAgLTQxMyw2ICs0MTUsNyBAQCBwcml2YXRlOgogI2lmIFBMQVRGT1JNKENPQ09BKQog
ICAgIHZvaWQgcHVzaFZpZGVvRnJhbWVNZXRhZGF0YShXZWJDb3JlOjpWaWRlb0ZyYW1lTWV0YWRh
dGEmJiwgUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+JiYpOwogI2VuZGlmCisgICAgUmVtb3Rl
VmlkZW9GcmFtZU9iamVjdEhlYXBQcm94eSYgdmlkZW9GcmFtZU9iamVjdEhlYXBQcm94eSgpIGNv
bnN0IHsgcmV0dXJuIG1fbWFuYWdlci5ncHVQcm9jZXNzQ29ubmVjdGlvbigpLnZpZGVvRnJhbWVP
YmplY3RIZWFwUHJveHkoKTsgfQogCiAgICAgV2Vha1B0cjxXZWJDb3JlOjpNZWRpYVBsYXllcj4g
bV9wbGF5ZXI7CiAgICAgUmVmPFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFSZXNvdXJjZUxvYWRlcj4g
bV9tZWRpYVJlc291cmNlTG9hZGVyOwpAQCAtNDYxLDcgKzQ2NCw3IEBAIHByaXZhdGU6CiAgICAg
Ym9vbCBtX3dhaXRpbmdGb3JLZXkgeyBmYWxzZSB9OwogICAgIGJvb2wgbV90aW1lSXNQcm9ncmVz
c2luZyB7IGZhbHNlIH07CiAgICAgYm9vbCBtX3JlbmRlcmluZ0NhbkJlQWNjZWxlcmF0ZWQgeyBm
YWxzZSB9OwotICAgIFJlZlB0cjxXZWJDb3JlOjpWaWRlb0ZyYW1lPiBtX3ZpZGVvRnJhbWVGb3JD
dXJyZW50VGltZTsKKyAgICBSZWZQdHI8UmVtb3RlVmlkZW9GcmFtZVByb3h5PiBtX3ZpZGVvRnJh
bWVGb3JDdXJyZW50VGltZTsKICNpZiBQTEFURk9STShDT0NPQSkKICAgICBSZXRhaW5QdHI8Q1ZQ
aXhlbEJ1ZmZlclJlZj4gbV9waXhlbEJ1ZmZlckdhdGhlcmVkV2l0aFZpZGVvRnJhbWVNZXRhZGF0
YTsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6UGl4ZWxCdWZmZXJDb25mb3JtZXJDVj4g
bV9waXhlbEJ1ZmZlckNvbmZvcm1lcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9HUFUvbWVkaWEvUmVtb3RlVmlkZW9GcmFtZUlkZW50aWZpZXIuaCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlVmlkZW9GcmFtZUlkZW50aWZpZXIuaAppbmRl
eCBmYjAwMWRhNzQ4MjM5ZjM4ZGQ5ZWQwMzI1YzU5YjdiODNjOTI1ODczLi5mNTg5YjdkYmRlYTkz
OWM5NDA5Nzg0YzBmYjBmZmYzMmFkZDUzODFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZVZpZGVvRnJhbWVJZGVudGlmaWVyLmgKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVWaWRlb0ZyYW1lSWRlbnRpZmll
ci5oCkBAIC0yNSw3ICsyNSw3IEBACiAKICNwcmFnbWEgb25jZQogCi0jaWYgRU5BQkxFKEdQVV9Q
Uk9DRVNTKSAmJiBFTkFCTEUoTUVESUFfU1RSRUFNKQorI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykg
JiYgRU5BQkxFKFZJREVPKQogCiAjaW5jbHVkZSAiT2JqZWN0SWRlbnRpZmllclJlZmVyZW5jZVRy
YWNrZXIuaCIKICNpbmNsdWRlIDxXZWJDb3JlL1Byb2Nlc3NRdWFsaWZpZWQuaD4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlVmlkZW9GcmFtZVBy
b3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlVmlkZW9G
cmFtZVByb3h5LmNwcAppbmRleCBkODM3YTQ2YmFmMTQwNzc0ZWE2ZWRkODI0OWNkZTYyMzI0YjJk
NDgyLi5kMTgwMzRiNDYzMTFhZDM4OWE2YWI2YTg5NWYxY2EyYjE4MTc5OTE4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZVZpZGVvRnJhbWVQcm94
eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVWaWRl
b0ZyYW1lUHJveHkuY3BwCkBAIC0yNiwxMyArMjYsMTUgQEAKICNpbmNsdWRlICJjb25maWcuaCIK
ICNpbmNsdWRlICJSZW1vdGVWaWRlb0ZyYW1lUHJveHkuaCIKIAotI2lmIEVOQUJMRShHUFVfUFJP
Q0VTUykgJiYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpICYm
IEVOQUJMRShWSURFTykKICNpbmNsdWRlICJHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgiCiAj
aW5jbHVkZSAiUmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXBNZXNzYWdlcy5oIgogI2luY2x1ZGUg
IlJlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwUHJveHkuaCIKLSNpbmNsdWRlIDxXZWJDb3JlL1Jl
YWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZUNvY29hLmg+CiAKICNpZiBQTEFURk9STShDT0NPQSkK
KyNpbmNsdWRlIDxXZWJDb3JlL0NWVXRpbGl0aWVzLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9SZWFs
dGltZUluY29taW5nVmlkZW9Tb3VyY2VDb2NvYS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvVmlkZW9G
cmFtZUNWLmg+CiAjaW5jbHVkZSA8d3RmL3RocmVhZHMvQmluYXJ5U2VtYXBob3JlLmg+CiAjZW5k
aWYKIApAQCAtMTE5LDYgKzEyMSwxNSBAQCBDVlBpeGVsQnVmZmVyUmVmIFJlbW90ZVZpZGVvRnJh
bWVQcm94eTo6cGl4ZWxCdWZmZXIoKSBjb25zdAogICAgIH0KICAgICByZXR1cm4gbV9waXhlbEJ1
ZmZlci5nZXQoKTsKIH0KKworUmVmUHRyPFdlYkNvcmU6OlZpZGVvRnJhbWVDVj4gUmVtb3RlVmlk
ZW9GcmFtZVByb3h5Ojphc1ZpZGVvRnJhbWVDVigpCit7CisgICAgYXV0byBidWZmZXIgPSBwaXhl
bEJ1ZmZlcigpOworICAgIGlmICghYnVmZmVyKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAg
ICByZXR1cm4gVmlkZW9GcmFtZUNWOjpjcmVhdGUobV9wcmVzZW50YXRpb25UaW1lLCBtX2lzTWly
cm9yZWQsIG1fcm90YXRpb24sIFJldGFpblB0ciB7IGJ1ZmZlciB9KTsKK30KKwogI2VuZGlmCiAK
IFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIGNvbnN0IFJlbW90ZVZpZGVv
RnJhbWVQcm94eTo6UHJvcGVydGllcyYgcHJvcGVydGllcykKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlVmlkZW9GcmFtZVByb3h5LmggYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZVZpZGVvRnJhbWVQcm94eS5oCmlu
ZGV4IDE2NTczMDcyOTg5MzUwMDVlYjJmMzM0Y2Y2YTI5NDQ1NjUwZjE1ZTIuLjBlZWM3Y2M0YmI1
NjE2YmQyZWMyZmNmNjhhOWJkYjkzZDZkNjIwM2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlVmlkZW9GcmFtZVByb3h5LmgKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVWaWRlb0ZyYW1lUHJveHkuaApAQCAt
MjUsNyArMjUsNyBAQAogCiAjcHJhZ21hIG9uY2UKIAotI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykg
JiYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIEVOQUJM
RShWSURFTykKIAogI2luY2x1ZGUgIkdQVVByb2Nlc3NDb25uZWN0aW9uLmgiCiAjaW5jbHVkZSAi
UmVtb3RlVmlkZW9GcmFtZUlkZW50aWZpZXIuaCIKQEAgLTM2LDYgKzM2LDEyIEBAIGNsYXNzIENv
bm5lY3Rpb247CiBjbGFzcyBEZWNvZGVyOwogfQogCituYW1lc3BhY2UgV2ViQ29yZSB7CisjaWYg
UExBVEZPUk0oQ09DT0EpCitjbGFzcyBWaWRlb0ZyYW1lQ1Y7CisjZW5kaWYKK30KKwogbmFtZXNw
YWNlIFdlYktpdCB7CiAKIGNsYXNzIEdQVVByb2Nlc3NDb25uZWN0aW9uOwpAQCAtODAsMTYgKzg2
LDE1IEBAIHB1YmxpYzoKICAgICAvLyBXZWJDb3JlOjpWaWRlb0ZyYW1lIG92ZXJyaWRlcy4KICAg
ICBXZWJDb3JlOjpGbG9hdFNpemUgcHJlc2VudGF0aW9uU2l6ZSgpIGNvbnN0IGZpbmFsIHsgcmV0
dXJuIG1fc2l6ZTsgfQogICAgIHVpbnQzMl90IHZpZGVvUGl4ZWxGb3JtYXQoKSBjb25zdCBmaW5h
bDsKKyAgICBib29sIGlzUmVtb3RlUHJveHkoKSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVlOyB9
CiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgQ1ZQaXhlbEJ1ZmZlclJlZiBwaXhlbEJ1ZmZlcigp
IGNvbnN0IGZpbmFsOworICAgIFJlZlB0cjxXZWJDb3JlOjpWaWRlb0ZyYW1lQ1Y+IGFzVmlkZW9G
cmFtZUNWKCkgZmluYWw7CiAjZW5kaWYKLSAgICBib29sIGlzUmVtb3RlUHJveHkoKSBjb25zdCBm
aW5hbCB7IHJldHVybiB0cnVlOyB9CiAKIHByaXZhdGU6CiAgICAgUmVtb3RlVmlkZW9GcmFtZVBy
b3h5KElQQzo6Q29ubmVjdGlvbiYsIFJlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwUHJveHkmLCBQ
cm9wZXJ0aWVzJiYpOwogCi0KLQogICAgIGNvbnN0IFJlZjxJUEM6OkNvbm5lY3Rpb24+IG1fY29u
bmVjdGlvbjsKICAgICBSZW1vdGVWaWRlb0ZyYW1lUmVmZXJlbmNlVHJhY2tlciBtX3JlZmVyZW5j
ZVRyYWNrZXI7CiAgICAgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSBtX3NpemU7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZVZpZGVvRnJhbWVQcm94
eUlkZW50aWZpZXIuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3Rl
VmlkZW9GcmFtZVByb3h5SWRlbnRpZmllci5oCmluZGV4IDQ3OTJjMDQ4NjUwZDBjYTI2NDYwMDA3
MjM0NjcwMzI4MmU3MmE0ZDAuLjVjZTdhZjE1ODQzYTdhOGYyNDZkYzk3ZTgyMTRmNzlkNTY3NmY4
ZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3Rl
VmlkZW9GcmFtZVByb3h5SWRlbnRpZmllci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9HUFUvbWVkaWEvUmVtb3RlVmlkZW9GcmFtZVByb3h5SWRlbnRpZmllci5oCkBAIC0yNSw3ICsy
NSw3IEBACiAKICNwcmFnbWEgb25jZQogCi0jaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyNpZiBF
TkFCTEUoR1BVX1BST0NFU1MpICYmIEVOQUJMRShWSURFTykKIAogI2luY2x1ZGUgIk9iamVjdElk
ZW50aWZpZXJSZWZlcmVuY2VUcmFja2VyLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9SZW1vdGVWaWRl
b0ZyYW1lSWRlbnRpZmllci5oPgpAQCAtMzksNCArMzksNCBAQCB1c2luZyBSZW1vdGVWaWRlb0Zy
YW1lUmVmZXJlbmNlVHJhY2tlciA9IE9iamVjdElkZW50aWZpZXJSZWZlcmVuY2VUcmFja2VyPFdl
YkNvcgogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAotI2VuZGlmIC8vIEVOQUJMRShNRURJQV9T
VFJFQU0pCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUv
d2VicnRjL01lZGlhUmVjb3JkZXJQcml2YXRlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9HUFUvd2VicnRjL01lZGlhUmVjb3JkZXJQcml2YXRlLmNwcAppbmRleCA5MTgwZDFjYTcyZDAx
ZTMyMmU3Y2E0ZGU5YzgzNmQ2OGVjYzZhMWMzLi5lYTQxNDI1NmJmMGJlY2ExNzExYTE1ZjQwZDQx
YTZkNWZjNmMyODMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dl
YnJ0Yy9NZWRpYVJlY29yZGVyUHJpdmF0ZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS93ZWJydGMvTWVkaWFSZWNvcmRlclByaXZhdGUuY3BwCkBAIC0zNSw2ICszNSw3IEBA
CiAjaW5jbHVkZSAiUmVtb3RlVmlkZW9GcmFtZVByb3h5LmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vz
cy5oIgogI2luY2x1ZGUgPFdlYkNvcmUvQ0FSaW5nQnVmZmVyLmg+CisjaW5jbHVkZSA8V2ViQ29y
ZS9DVlV0aWxpdGllcy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFTdHJlYW1Qcml2YXRlLmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9NZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvUmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlQ29jb2EuaD4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL1JlbW90ZVZpZGVvRnJhbWVPYmpl
Y3RIZWFwUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL1JlbW90
ZVZpZGVvRnJhbWVPYmplY3RIZWFwUHJveHkuaAppbmRleCAxMWJkZDFmNjU2MTJjYjY2NDYwMDAx
YzkzNTYwZGNkMTQxZDk3MzY5Li5kNWU1ZWQzMTBhMjQzMDk0NjgxZjNkNzc3OWJjNDhlMjViZTdj
MWUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9SZW1v
dGVWaWRlb0ZyYW1lT2JqZWN0SGVhcFByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS93ZWJydGMvUmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXBQcm94eS5oCkBAIC0yNSwx
MiArMjUsMjMgQEAKIAogI3ByYWdtYSBvbmNlCiAKLSNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKSAm
JiBFTkFCTEUoR1BVX1BST0NFU1MpCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBFTkFCTEUo
VklERU8pCiAKKyNpbmNsdWRlIDx3dGYvUmVmLmg+CisjaW5jbHVkZSA8d3RmL1RocmVhZFNhZmVS
ZWZDb3VudGVkLmg+CisKKyNpZiBQTEFURk9STShDT0NPQSkKICNpbmNsdWRlICJSZW1vdGVWaWRl
b0ZyYW1lT2JqZWN0SGVhcFByb3h5UHJvY2Vzc29yLmgiCisjZW5kaWYKIAogbmFtZXNwYWNlIFdl
YktpdCB7CiAKK2NsYXNzIEdQVVByb2Nlc3NDb25uZWN0aW9uOworCisjaWYgUExBVEZPUk0oQ09D
T0EpCitjbGFzcyBSZW1vdGVWaWRlb0ZyYW1lUHJveHk7CisjZW5kaWYKKwogLy8gV3JhcHBlciBh
cm91bmQgUmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXBQcm94eVByb2Nlc3NvciB0aGF0IHdpbGwg
YWx3YXlzIGJlIGRlc3Ryb2V5ZCBvbiBtYWluIHRocmVhZC4KIGNsYXNzIFJlbW90ZVZpZGVvRnJh
bWVPYmplY3RIZWFwUHJveHkgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8UmVtb3RlVmlk
ZW9GcmFtZU9iamVjdEhlYXBQcm94eSwgV1RGOjpEZXN0cnVjdGlvblRocmVhZDo6TWFpblJ1bkxv
b3A+IHsKIHB1YmxpYzoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUv
d2VicnRjL1JlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwUHJveHlQcm9jZXNzb3IuY3BwIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvUmVtb3RlVmlkZW9GcmFtZU9iamVjdEhl
YXBQcm94eVByb2Nlc3Nvci5jcHAKaW5kZXggYjFjYTRjN2JjNmU0MzgzOTJmYWUxNjViYTc1ZTZm
ODMwN2U1NWMyMS4uZjIxZDExOGM4MjAyMjJiYWNjZDEyZjdmZjBjYTYyMWVmNDgxYmM0ZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvUmVtb3RlVmlkZW9G
cmFtZU9iamVjdEhlYXBQcm94eVByb2Nlc3Nvci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0dQVS93ZWJydGMvUmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXBQcm94eVByb2Nlc3Nv
ci5jcHAKQEAgLTI2LDEwICsyNiwxMSBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUg
IlJlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwUHJveHkuaCIKIAotI2lmIEVOQUJMRShNRURJQV9T
VFJFQU0pICYmIFBMQVRGT1JNKENPQ09BKSAmJiBFTkFCTEUoR1BVX1BST0NFU1MpCisjaWYgUExB
VEZPUk0oQ09DT0EpICYmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgRU5BQkxFKFZJREVPKQogCiAj
aW5jbHVkZSAiUmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXBNZXNzYWdlcy5oIgogI2luY2x1ZGUg
IlJlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwUHJveHlQcm9jZXNzb3JNZXNzYWdlcy5oIgorI2lu
Y2x1ZGUgIlJlbW90ZVZpZGVvRnJhbWVQcm94eS5oIgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvUmVtb3RlVmlk
ZW9GcmFtZU9iamVjdEhlYXBQcm94eVByb2Nlc3Nvci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS93ZWJydGMvUmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXBQcm94eVByb2Nlc3Nvci5o
CmluZGV4IDhmN2M3OGJiYzg0MDkyMjU3ZTU2MmRiNDI2ZjhlZjM3MDk1YjJjMzEuLmYwZTc2ZjNi
YTRhNDUxNWYyY2EwYTNjNWU2NGM2NWM4OTI2NmZmMmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL1JlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwUHJveHlQ
cm9jZXNzb3IuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9SZW1v
dGVWaWRlb0ZyYW1lT2JqZWN0SGVhcFByb3h5UHJvY2Vzc29yLmgKQEAgLTI1LDEzICsyNSwxNCBA
QAogCiAjcHJhZ21hIG9uY2UKIAotI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pICYmIFBMQVRGT1JN
KENPQ09BKSAmJiBFTkFCTEUoR1BVX1BST0NFU1MpCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKSAm
JiBQTEFURk9STShDT0NPQSkgJiYgRU5BQkxFKFZJREVPKQogCiAjaW5jbHVkZSAiQ29ubmVjdGlv
bi5oIgogI2luY2x1ZGUgIkdQVVByb2Nlc3NDb25uZWN0aW9uLmgiCiAjaW5jbHVkZSAiTWVzc2Fn
ZVJlY2VpdmVyLmgiCiAjaW5jbHVkZSAiUmVtb3RlVmlkZW9GcmFtZUlkZW50aWZpZXIuaCIKICNp
bmNsdWRlICJTaGFyZWRWaWRlb0ZyYW1lLmgiCisKICNpbmNsdWRlIDx3dGYvRnVuY3Rpb24uaD4K
ICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9Mb2NrLmg+CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9SZW1vdGVWaWRlb0ZyYW1l
T2JqZWN0SGVhcFByb3h5UHJvY2Vzc29yLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0dQVS93ZWJydGMvUmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXBQcm94eVByb2Nlc3Nv
ci5tZXNzYWdlcy5pbgppbmRleCBhZmI5MzY0OTVhYmUyMmFmNmU3Y2UxNGFjYTc5MDc5OWFhZmE3
N2FkLi4xZDU1NTM2ZGQ4YTQ1OGNiZDRiMTU4M2UyYWUxMDE0MTE0Njk3YTEyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9SZW1vdGVWaWRlb0ZyYW1lT2Jq
ZWN0SGVhcFByb3h5UHJvY2Vzc29yLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvd2VicnRjL1JlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwUHJveHlQcm9jZXNz
b3IubWVzc2FnZXMuaW4KQEAgLTIwLDcgKzIwLDcgQEAKICMgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
ICMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KIAotI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pICYmIFBMQVRGT1JNKENP
Q09BKSAmJiBFTkFCTEUoR1BVX1BST0NFU1MpCisjaWYgUExBVEZPUk0oQ09DT0EpICYmIEVOQUJM
RShHUFVfUFJPQ0VTUykgJiYgRU5BQkxFKFZJREVPKQogCiBtZXNzYWdlcyAtPiBSZW1vdGVWaWRl
b0ZyYW1lT2JqZWN0SGVhcFByb3h5UHJvY2Vzc29yIHsKICAgICBTZXRTaGFyZWRWaWRlb0ZyYW1l
U2VtYXBob3JlKElQQzo6U2VtYXBob3JlIHNlbWFwaG9yZSkKQEAgLTI5LDQgKzI5LDQgQEAgbWVz
c2FnZXMgLT4gUmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXBQcm94eVByb2Nlc3NvciB7CiAgICAg
TmV3VmlkZW9GcmFtZUJ1ZmZlcihXZWJLaXQ6OlJlbW90ZVZpZGVvRnJhbWVJZGVudGlmaWVyIGlk
ZW50aWZpZXIpCiB9CiAKLSNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU1RSRUFNKSAmJiBQTEFURk9S
TShDT0NPQSkgJiYgRU5BQkxFKEdQVV9QUk9DRVNTKQorI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9TaGFyZWRWaWRlb0ZyYW1lLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL1NoYXJlZFZpZGVvRnJhbWUuY3BwCmlu
ZGV4IDlkMzUzZWZmZmY1NjAxNDIxYzE0ZDUyNWRlZTExYjA2OTNmMjI4ZjkuLmE3MWNhMDgxMjA4
YmQ1MWUxNGU5NjlmNjEwMjI5NThiMmFkODUyZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9HUFUvd2VicnRjL1NoYXJlZFZpZGVvRnJhbWUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL1NoYXJlZFZpZGVvRnJhbWUuY3BwCkBAIC0yNiw3
ICsyNiw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiU2hhcmVkVmlkZW9GcmFt
ZS5oIgogCi0jaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkgJiYgUExBVEZPUk0oQ09DT0EpCisjaWYg
RU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBQTEFURk9STShDT0NPQSkgJiYgRU5BQkxFKFZJREVPKQog
CiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgPFdlYkNvcmUvU2hhcmVkVmlkZW9GcmFt
ZUluZm8uaD4KQEAgLTE1Miw0ICsxNTIsNCBAQCBib29sIFNoYXJlZFZpZGVvRnJhbWVSZWFkZXI6
OnNldFNoYXJlZE1lbW9yeShjb25zdCBTaGFyZWRNZW1vcnk6OklQQ0hhbmRsZSYgaXBjSAogCiB9
CiAKLSNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU1RSRUFNKSAmJiBQTEFURk9STShDT0NPQSkKKyNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvU2hh
cmVkVmlkZW9GcmFtZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvU2hh
cmVkVmlkZW9GcmFtZS5oCmluZGV4IGMyMDU4NTk0OTZhNWQ4NTEwNjY1NmNlNTc5MTI5NDlhNDEy
N2Y4ZmUuLmFlYmI3OWNlMmRlZWZkNWJmM2ZiNDU3ZGYyZTAyZTgyMmRlZGZjOTQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL1NoYXJlZFZpZGVvRnJhbWUu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9TaGFyZWRWaWRlb0Zy
YW1lLmgKQEAgLTI1LDcgKzI1LDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKLSNpZiBFTkFCTEUoTUVE
SUFfU1RSRUFNKSAmJiBQTEFURk9STShDT0NPQSkKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpICYm
IFBMQVRGT1JNKENPQ09BKSAmJiBFTkFCTEUoVklERU8pCiAKICNpbmNsdWRlICJJUENTZW1hcGhv
cmUuaCIKICNpbmNsdWRlICJTaGFyZWRNZW1vcnkuaCIKQEAgLTk3LDcgKzk3LDYgQEAgaW5saW5l
IFNoYXJlZFZpZGVvRnJhbWVSZWFkZXI6OlNoYXJlZFZpZGVvRnJhbWVSZWFkZXIoVXNlSU9TdXJm
YWNlQnVmZmVyUG9vbCB1c2UKIHsKIH0KIAotCiB9CiAKLSNlbmRpZiAvLyBFTkFCTEUoTUVESUFf
U1RSRUFNKQorI2VuZGlmCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggM2JlNTJiYjk0YzQ0MzMyZjhlZTc5OGZlMGE5ZDBkZmJi
NTYwN2VmMy4uODkyNzQyOGZhMWVlZjRjMWZkNTdkNmNmMmMxMmJhNmFiNTM4MTE5MCAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE0IEBACisyMDIyLTAyLTE4ICBLaW1tbyBLaW5udW5lbiAgPGtraW5udW5lbkBh
cHBsZS5jb20+CisKKyAgICAgICAgV2ViR0wgR1BVUDogQ3Jhc2ggd2hlbiBydW5uaW5nIGZhc3Qv
bWVkaWFzdHJlYW0vZ2V0VXNlck1lZGlhLXRvLWNhbnZhcy0xLmh0bWwKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNjUwMgorCisgICAgICAgIFVuc2tp
cCB0aGUgcHJldmlvdXMgY3Jhc2hlcyBjYXVzZWQgYnkgdGhlIGxhY2sgb2YgaW1wbGVtZW50YXRp
b24uCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBDYXJsc29uLgorCisgICAgICAgICogcGxh
dGZvcm0vaW9zLXdrMi9UZXN0RXhwZWN0YXRpb25zOgorCiAyMDIyLTAyLTE4ICBKb24gTGVlICA8
am9ubGVlQGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkIGdhcmRlbmluZyBmb3IgR1BV
IFByb2Nlc3MgYm90cy4gVXBkYXRlIGZ1enp5IGRhdGEuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9pb3Mtd2syL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9pb3Mtd2syL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggYTRhMGJkYmNjMzMzZmFmMThhYWY5YzA2
YjY5NDdkYWRmNTE3MmI2Yy4uZmQ3ZmI1N2UyYmNjYmMwYjQ2YzAzY2Y2ZjJhNGRmYmIwMzk0NDAx
ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zLXdrMi9UZXN0RXhwZWN0YXRp
b25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy13azIvVGVzdEV4cGVjdGF0aW9ucwpA
QCAtMjIwOSwxMCArMjIwOSw1IEBAIHdlYmtpdC5vcmcvYi8yMzQ1MzYgd2ViZ2wvbWF4LWFjdGl2
ZS1jb250ZXh0cy1jb25zb2xlLXdhcm5pbmcuaHRtbAogd2Via2l0Lm9yZy9iLzIzNDUzNiB3ZWJn
bC9tYXgtYWN0aXZlLWNvbnRleHRzLWdjLmh0bWwKIHdlYmtpdC5vcmcvYi8yMzQ1MzYgd2ViZ2wv
bWF4LWFjdGl2ZS1jb250ZXh0cy1vbGRlc3QtY29udGV4dC1sb3N0Lmh0bWwKIHdlYmtpdC5vcmcv
Yi8yMzQ1MzYgd2VieHIvaGlnaC1wZXJmb3JtYW5jZS5odG1sCi13ZWJraXQub3JnL2IvMjM0NTM2
IGZhc3QvbWVkaWFzdHJlYW0vZ2V0VXNlck1lZGlhLXRvLWNhbnZhcy0xLmh0bWwgWyBDcmFzaCBd
Ci13ZWJraXQub3JnL2IvMjM0NTM2IGZhc3QvbWVkaWFzdHJlYW0vZ2V0VXNlck1lZGlhLXRvLWNh
bnZhcy0yLmh0bWwgWyBDcmFzaCBdCiB3ZWJraXQub3JnL2IvMjM0NTM2IHdlYmdsL21heC1hY3Rp
dmUtY29udGV4dHMtd2ViZ2xjb250ZXh0bG9zdC1wcmV2ZW50LWRlZmF1bHQuaHRtbCBbIFRpbWVv
dXQgXQogd2Via2l0Lm9yZy9iLzIzNDUzNiB3ZWJnbC8xLjAuMy9jb25mb3JtYW5jZS9zdGF0ZS9n
bC1vYmplY3QtZ2V0LWNhbGxzLmh0bWwgWyBUaW1lb3V0IF0KLQotIyBDYXB0dXJlZCBXZWJHTCB0
byBhbm90aGVyIGNvbnRleHQyZCBvciBXZWJHTCBub3QgaW1wbGVtZW50ZWQgeWV0Lgotd2Via2l0
Lm9yZy9iLzIzNjQ5NiBmYXN0L21lZGlhc3RyZWFtL2NhcHR1cmVTdHJlYW0vY2FudmFzM2QuaHRt
bCBbIFRpbWVvdXQgXQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK
</data>
<flag name="commit-queue"
          id="479626"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>452538</attachid>
            <date>2022-02-18 10:31:09 -0800</date>
            <delta_ts>2022-02-18 14:50:13 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-236502-20220218203107.patch</filename>
            <type>text/plain</type>
            <size>65357</size>
            <attacher name="Kimmo Kinnunen">kkinnunen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkwMTIwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGI0MTEzNDNlYzE3MTYy
ODBmYzI0NDIyNmU5MDRkNjU5OTFiNTM2NC4uOTFjZDU4Y2NjMmI4NTk5NWRlOGRiZmU2MzFiYjkz
ZjFjZWVmMTI5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDIyLTAyLTE4ICBLaW1t
byBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CisKKyAgICAgICAgV2ViR0wgR1BVUDog
Q3Jhc2ggd2hlbiBydW5uaW5nIGZhc3QvbWVkaWFzdHJlYW0vZ2V0VXNlck1lZGlhLXRvLWNhbnZh
cy0xLmh0bWwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIzNjUwMgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vODg4NjI5MjE+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgRXJpYyBDYXJsc29uLgorCisgICAgICAgIEFkZCBhIHBvbHltb3JwaGljIGZ1bmN0
aW9uIGFzVmlkZW9GcmFtZUNWIHRvIGNvbnZlcnQgVmlkZW9GcmFtZSB0byBWaWRlb0ZyYW1lQ1Yu
CisgICAgICAgIFZpZGVvRnJhbWVDViBpcyB1c2VkIHRvIGRyYXcgdGhlIGluLXByb2Nlc3Mgdmlk
ZW8gZnJhbWUgdG8gaW4tcHJvY2VzcyBXZWJHTC4KKworICAgICAgICBSZW1vdGVWaWRlb0ZyYW1l
UHJveHkgd2lsbCBpbXBsZW1lbnQgYXNWaWRlb0ZyYW1lQ1YgYnkgZmV0Y2hpbmcgdGhlIGRhdGEg
ZnJvbQorICAgICAgICBHUFVQIGFuZCByZXR1cm5pbmcgYSBuZXcgb2JqZWN0IGV4cG9zaW5nIHRo
ZSBkYXRhLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cywgdGVzdGVkIGJ5IG5vdyB1bnNraXBwZWQg
dGVzdHMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9WaWRlb0ZyYW1lLmg6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvY29jb2EvR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5tbToKKyAgICAgICAg
KFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMQ29jb2E6OmNvcHlUZXh0dXJlRnJvbU1lZGlhKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jdi9WaWRlb0ZyYW1lQ1YuaDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9jdi9WaWRlb0ZyYW1lQ1YubW06CisgICAgICAgIChXZWJDb3Jl
OjpWaWRlb0ZyYW1lQ1Y6OmFzVmlkZW9GcmFtZUNWKToKKwogMjAyMi0wMi0xOCAgWmFuIERvYmVy
c2VrICA8emRvYmVyc2VrQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dUS11bV1BFXSBEb24ndCB1
c2UgQU5HTEUncyBHQk0tYmFzZWQgZGlzcGxheQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA4OWU0NzYxMmM0ZjY4ZjI0
NzUzOWQzNzBjZmEzNzc5MzFmZWRlZmU1Li42MDFmZDQwZDY3NTlmNTgwMGFkMGE1YmU3OGEwM2Uw
Mzk1ODNmZTA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDU1IEBACisyMDIyLTAyLTE4ICBLaW1tbyBL
aW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CisKKyAgICAgICAgV2ViR0wgR1BVUDogQ3Jh
c2ggd2hlbiBydW5uaW5nIGZhc3QvbWVkaWFzdHJlYW0vZ2V0VXNlck1lZGlhLXRvLWNhbnZhcy0x
Lmh0bWwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIz
NjUwMgorCisgICAgICAgIFRoZSBjcmFzaCBpcyBhYm91dCBNZWRpYVBsYXllclByaXZhdGVNZWRp
YVN0cmVhbUFWRk9iakMgYmVpbmcgaW4gV1Agd2hpbGUgb3RoZXIKKyAgICAgICAgbWVkaWEgcGxh
eWVyIHByaXZhdGUgdmFyaWFudHMgYXJlIHByb3hpZWQgdG8gR1BVUC4gVGhlIHByZXZpb3VzIGlt
cGxlbWVudGF0aW9uCisgICAgICAgIHdvdWxkIHNlbmQgbWVkaWEgcGxheWVyIGlkZW50aWZpZXJz
IHRvIEdQVVAgZm9yIGNvcHlpbmcuCisgICAgICAgIFRoaXMgcGF0Y2ggd2lsbCBpbXBsZW1lbnQg
dGhlIGNvcHkgYnkgdGhlIG1lZGlhIHBsYXllciBjcmVhdGluZyBhIHJlZmVyZW5jZQorICAgICAg
ICB0byBWaWRlb0ZyYW1lLiBXZWJHTCB3b3VsZCBzZW5kIHJlZmVyZW5jZSBvZiB0aGUgVmlkZW9G
cmFtZSB0byBHUFVQIGZvciBjb3B5aW5nLgorCisgICAgICAgIE1ha2UgV1AgTWVkaWFQbGF5ZXJQ
cml2YXRlUmVtb3RlIGFsd2F5cyByZXR1cm4gUmVtb3RlVmlkZW9GcmFtZVByb3h5IG9iamVjdHMK
KyAgICAgICAgaW5zdGVhZCBvZiBXUCBpbi1wcm9jZXNzIFZpZGVvRnJhbWUgaW5zdGFuY2VzIChm
b3IgQ29jb2EgVmlkZW9GcmFtZUNWKSB0aGF0CisgICAgICAgIHdvdWxkIGhvbGQgdGhlIHZpZGVv
IGRhdGEgaW4gcHJvY2Vzcy4KKworICAgICAgICBXUCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0
cmVhbUFWRk9iakMgYWxyZWFkeSByZXR1cm5zIFJlbW90ZVZpZGVvRnJhbWVQcm94eQorICAgICAg
ICBvYmplY3RzLiBUaGlzIHdheSBHUFVQIFdlYkdMIGltcGxlbWVudGF0aW9uIGNhbiBvYnRhaW4g
dGhlIHJlYWQgcmVmZXJlbmNlCisgICAgICAgIHRvIHRoZSByZW1vdGUgb2JqZWN0IGFuZCBzZW5k
IGl0IGluIGNvcHlUZXh0dXJlRnJvbVZpZGVvRnJhbWUgbWVzc2FnZS4KKworICAgICAgICBUaGUg
V1AgaW4tcHJvY2VzcyBXZWJHTCBpbXBsZW1lbnRhdGlvbiBjb252ZXJ0cyB0aGUgUmVtb3RlVmlk
ZW9GcmFtZVByb3h5CisgICAgICAgIHRvIFZpZGVvRnJhbWVDViB3aXRoIHRoZSBuZXcgUmVtb3Rl
VmlkZW9GcmFtZVByb3h5Ojphc1ZpZGVvRnJhbWVDVi4KKworICAgICAgICBSZXZpZXdlZCBieSBF
cmljIENhcmxzb24uCisKKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBo
aWNzQ29udGV4dEdMLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlR3JhcGhpY3NDb250ZXh0
R0w6OlJlbW90ZUdyYXBoaWNzQ29udGV4dEdMKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlR3Jh
cGhpY3NDb250ZXh0R0w6OmNvcHlUZXh0dXJlRnJvbVZpZGVvRnJhbWUpOgorICAgICAgICAqIEdQ
VVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0wuaDoKKyAgICAgICAgKiBH
UFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMLm1lc3NhZ2VzLmluOgor
ICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xDb2Nv
YS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUdyYXBoaWNzQ29udGV4dEdMOjpjb3B5VGV4
dHVyZUZyb21WaWRlb0ZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlR3JhcGhpY3NDb250
ZXh0R0w6OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUdyYXBoaWNzQ29udGV4dEdM
Q29jb2E6OlJlbW90ZUdyYXBoaWNzQ29udGV4dEdMQ29jb2EpOgorICAgICAgICAoV2ViS2l0OjpS
ZW1vdGVHcmFwaGljc0NvbnRleHRHTENvY29hOjpwbGF0Zm9ybVdvcmtRdWV1ZUluaXRpYWxpemUp
OgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVHcmFwaGljc0NvbnRleHRHTENvY29hOjpwcmVwYXJl
Rm9yRGlzcGxheSk6CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXll
ck1hbmFnZXJQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyTWFu
YWdlclByb3h5OjpjcmVhdGVNZWRpYVBsYXllcik6CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRp
YS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVk
aWFQbGF5ZXJQcm94eTo6UmVtb3RlTWVkaWFQbGF5ZXJQcm94eSk6CisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZU1lZGlhUGxheWVyUHJveHk6OnZpZGVvRnJhbWVGb3JDdXJyZW50VGltZUlmQ2hhbmdl
ZCk6CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5Lmg6
CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5Lm1lc3Nh
Z2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNz
Q29udGV4dEdMUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVHcmFwaGljc0NvbnRl
eHRHTFByb3h5Ojpjb3B5VGV4dHVyZUZyb21NZWRpYSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9H
UFUvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eS5oOgorICAgICAgICAqIFdl
YlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5jcHA6CisgICAgICAg
IChXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6dmlkZW9GcmFtZUZvckN1cnJlbnRU
aW1lKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVS
ZW1vdGUuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVWaWRlb0ZyYW1l
UHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVWaWRlb0ZyYW1lUHJveHk6OmFzVmlk
ZW9GcmFtZUNWKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVWaWRlb0Zy
YW1lUHJveHkuaDoKKwogMjAyMi0wMi0xOCAgU2FhbSBCYXJhdGkgIDxzYmFyYXRpQGFwcGxlLmNv
bT4KIAogICAgICAgICBBZGQgTENfU09VUkNFX1ZFUlNJT04gdG8gY29tcGlsZSB0YXJnZXRzCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9WaWRlb0ZyYW1lLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9WaWRlb0ZyYW1lLmgKaW5kZXggYjU1NDU2ZmY5NGFiYjcxMWQzMjZm
MmQ2ZDA5OTlkNmJkNWM2MGE2ZC4uNjQxMWRmN2Q2NDBjY2RlZDFkMWUzZTExZmQxYTQyOGEyOTFi
MzFlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVmlkZW9GcmFtZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1ZpZGVvRnJhbWUuaApAQCAtMzEsNiArMzEsMTEg
QEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCisjaWYgVVNFKEFWRk9VTkRBVElPTikKK2NsYXNz
IFZpZGVvRnJhbWVDVjsKKyNlbmRpZgorCisKIC8vIEEgY2xhc3MgcmVwcmVzZW50aW5nIGEgdmlk
ZW8gZnJhbWUgZnJvbSBhIGRlY29kZXIsIGNhcHR1cmUgc291cmNlLCBvciBzaW1pbGFyLgogLy8g
RklYTUU6IEN1cnJlbnRseSBmb3IgaW1wbGVtZW50YXRpb24gcHVycG9zZXMgaW5oZXJ0cyBmcm9t
IE1lZGlhU2FtcGxlIHVudGlsIGNhcHR1cmUgY29kZQogLy8gc3RvcHMgcmVmZXJyaW5nIHRvIE1l
ZGlhU2FtcGxlCkBAIC00OSw2ICs1NCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgaXNS
ZW1vdGVQcm94eSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAjaWYgVVNFKEFWRk9VTkRBVElP
TikKICAgICB2aXJ0dWFsIGJvb2wgaXNDVigpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CisgICAg
dmlydHVhbCBSZWZQdHI8V2ViQ29yZTo6VmlkZW9GcmFtZUNWPiBhc1ZpZGVvRnJhbWVDVigpID0g
MDsKICNlbmRpZgogCiBwcm90ZWN0ZWQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9jb2NvYS9TaGFyZWRWaWRlb0ZyYW1lSW5mby5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vY29jb2EvU2hhcmVkVmlkZW9GcmFtZUluZm8uaAppbmRleCA0ZWU4YTk2ZDJlM2EyMmJmZmM1
MmYzNjkwZDkyYmZlOGYxODI4ZDc0Li5iZTNmZGI3OTc4MDNhMTQwZWIwMmM0NjlkMzM2MjRiNDhi
NjI3NTAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9TaGFyZWRW
aWRlb0ZyYW1lSW5mby5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1NoYXJl
ZFZpZGVvRnJhbWVJbmZvLmgKQEAgLTI1LDcgKzI1LDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKLSNp
ZiBFTkFCTEUoTUVESUFfU1RSRUFNKSAmJiBQTEFURk9STShDT0NPQSkKKyNpZiBFTkFCTEUoVklE
RU8pICYmIFBMQVRGT1JNKENPQ09BKQogCiAjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgogI2lu
Y2x1ZGUgPHd0Zi9TcGFuLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9j
b2NvYS9TaGFyZWRWaWRlb0ZyYW1lSW5mby5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nv
Y29hL1NoYXJlZFZpZGVvRnJhbWVJbmZvLm1tCmluZGV4IDYxZWYyY2ViYzc5ZTc3NGY4OTcxNTZh
OWY3MWJiNTZlNDRjNDY2ZjYuLjA4YzZjY2Q4ODUzNzFmYWYxZDExOGUzOWRhMjNhZTMyZDg0NTli
ZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1NoYXJlZFZpZGVv
RnJhbWVJbmZvLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1NoYXJlZFZp
ZGVvRnJhbWVJbmZvLm1tCkBAIC0yNiw3ICsyNiw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAj
aW5jbHVkZSAiU2hhcmVkVmlkZW9GcmFtZUluZm8uaCIKIAotI2lmIEVOQUJMRShNRURJQV9TVFJF
QU0pICYmIFBMQVRGT1JNKENPQ09BKQorI2lmIEVOQUJMRShWSURFTykgJiYgUExBVEZPUk0oQ09D
T0EpCiAKICNpbmNsdWRlICJDVlV0aWxpdGllcy5oIgogI2luY2x1ZGUgIklPU3VyZmFjZS5oIgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR3JhcGhp
Y3NDb250ZXh0R0xDb2NvYS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nv
Y29hL0dyYXBoaWNzQ29udGV4dEdMQ29jb2EubW0KaW5kZXggYTBiZmNmMjcyOTUxNmUyNGU2Yzk5
YjIwYTY0NTIzYzdjZTg5ZGM3ZC4uMzViOTFmYjNkZDY3YTczMjg5N2NjNTQ2NzIyYzNmZjUwYTlk
MDk2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2Ev
R3JhcGhpY3NDb250ZXh0R0xDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jb2NvYS9HcmFwaGljc0NvbnRleHRHTENvY29hLm1tCkBAIC0zOCw3ICszOCw2IEBA
CiAjaW1wb3J0ICJQaXhlbEJ1ZmZlci5oIgogI2ltcG9ydCAiUHJvY2Vzc0lkZW50aXR5LmgiCiAj
aW1wb3J0ICJSdW50aW1lQXBwbGljYXRpb25DaGVja3MuaCIKLSNpbXBvcnQgIlZpZGVvRnJhbWVD
Vi5oIgogI2ltcG9ydCA8Q29yZUdyYXBoaWNzL0NHQml0bWFwQ29udGV4dC5oPgogI2ltcG9ydCA8
TWV0YWwvTWV0YWwuaD4KICNpbXBvcnQgPHBhbC9zcGkvY29jb2EvTWV0YWxTUEkuaD4KQEAgLTUw
LDEzICs0OSwxNCBAQAogI2VuZGlmCiAKICNpZiBFTkFCTEUoVklERU8pCi0jaW5jbHVkZSAiR3Jh
cGhpY3NDb250ZXh0R0xDVkNvY29hLmgiCi0jaW5jbHVkZSAiTWVkaWFQbGF5ZXJQcml2YXRlLmgi
CisjaW1wb3J0ICJHcmFwaGljc0NvbnRleHRHTENWQ29jb2EuaCIKKyNpbXBvcnQgIk1lZGlhUGxh
eWVyUHJpdmF0ZS5oIgorI2ltcG9ydCAiVmlkZW9GcmFtZUNWLmgiCiAjZW5kaWYKIAogI2lmIEVO
QUJMRShNRURJQV9TVFJFQU0pCi0jaW5jbHVkZSAiSW1hZ2VSb3RhdGlvblNlc3Npb25WVC5oIgot
I2luY2x1ZGUgIk1lZGlhU2FtcGxlQVZGT2JqQy5oIgorI2ltcG9ydCAiSW1hZ2VSb3RhdGlvblNl
c3Npb25WVC5oIgorI2ltcG9ydCAiTWVkaWFTYW1wbGVBVkZPYmpDLmgiCiAjZW5kaWYKIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewpAQCAtNzgzLDE1ICs3ODMsMTYgQEAgYm9vbCBHcmFwaGljc0NvbnRl
eHRHTENvY29hOjpjb3B5VGV4dHVyZUZyb21NZWRpYShNZWRpYVBsYXllciYgcGxheWVyLCBQbGF0
Zm9ybUcKICAgICBhdXRvIHZpZGVvRnJhbWUgPSBwbGF5ZXIudmlkZW9GcmFtZUZvckN1cnJlbnRU
aW1lKCk7CiAgICAgaWYgKCF2aWRlb0ZyYW1lKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAg
QVNTRVJUKGlzPFZpZGVvRnJhbWVDVj4oKnZpZGVvRnJhbWUpKTsKLQorICAgIGF1dG8gdmlkZW9G
cmFtZUNWID0gdmlkZW9GcmFtZS0+YXNWaWRlb0ZyYW1lQ1YoKTsKKyAgICBpZiAoIXZpZGVvRnJh
bWVDVikKKyAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIGF1dG8gY29udGV4dENWID0gYXNDVigp
OwogICAgIGlmICghY29udGV4dENWKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBVTlVT
RURfVkFSSUFCTEUocHJlbXVsdGlwbHlBbHBoYSk7CiAgICAgQVNTRVJUX1VOVVNFRChvdXRwdXRU
YXJnZXQsIG91dHB1dFRhcmdldCA9PSBHcmFwaGljc0NvbnRleHRHTDo6VEVYVFVSRV8yRCk7Ci0g
ICAgcmV0dXJuIGNvbnRleHRDVi0+Y29weVZpZGVvU2FtcGxlVG9UZXh0dXJlKGRvd25jYXN0PFZp
ZGVvRnJhbWVDVj4oKnZpZGVvRnJhbWUpLCBvdXRwdXRUZXh0dXJlLCBsZXZlbCwgaW50ZXJuYWxG
b3JtYXQsIGZvcm1hdCwgdHlwZSwgR3JhcGhpY3NDb250ZXh0R0w6OkZsaXBZKGZsaXBZKSk7Cisg
ICAgcmV0dXJuIGNvbnRleHRDVi0+Y29weVZpZGVvU2FtcGxlVG9UZXh0dXJlKCp2aWRlb0ZyYW1l
Q1YsIG91dHB1dFRleHR1cmUsIGxldmVsLCBpbnRlcm5hbEZvcm1hdCwgZm9ybWF0LCB0eXBlLCBH
cmFwaGljc0NvbnRleHRHTDo6RmxpcFkoZmxpcFkpKTsKIH0KICNlbmRpZgogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9DVlV0aWxpdGllcy5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvQ1ZVdGlsaXRpZXMuaAppbmRleCA5N2Rh
MmM3YTc2MmVkMWY4NTEyYjM2MTNjNzRmMjZlNzI0MTZjYTI4Li5hMTU5NGViZGU0OTUwNGNiODQw
M2ZkZDhhZTZkZDYyNTc3ZDdhMTJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jdi9DVlV0aWxpdGllcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2N2L0NWVXRpbGl0aWVzLmgKQEAgLTU0LDQgKzU0LDYgQEAgUmV0YWluUHRyPENH
Q29sb3JTcGFjZVJlZj4gY3JlYXRlQ0dDb2xvclNwYWNlRm9yQ1ZQaXhlbEJ1ZmZlcihDVlBpeGVs
QnVmZmVyUmVmKTsKIC8vIFNob3VsZCBiZSBjYWxsZWQgd2l0aCBub24tZW1wdHkgUHJvY2Vzc0lk
ZW50aXR5LgogV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRPd25lcnNoaXBJZGVudGl0eUZvckNWUGl4
ZWxCdWZmZXIoQ1ZQaXhlbEJ1ZmZlclJlZiwgY29uc3QgUHJvY2Vzc0lkZW50aXR5Jik7CiAKK1dF
QkNPUkVfRVhQT1JUIFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiBjcmVhdGVCbGFja1BpeGVs
QnVmZmVyKHNpemVfdCB3aWR0aCwgc2l6ZV90IGhlaWdodCk7CisKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L0NWVXRpbGl0aWVzLm1tIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvQ1ZVdGlsaXRpZXMubW0KaW5kZXggZTEwYTI1
NTNiZWJlZGMwY2I4Mjk3ZjMzNzZmYWZkMDZlNmNiYTNlOS4uZDA4NTBiYWYzMjExYTJiNWRmZWZl
YzhlMjU4NWE2NmFhNGRjZGY1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY3YvQ1ZVdGlsaXRpZXMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY3YvQ1ZVdGlsaXRpZXMubW0KQEAgLTI4LDYgKzI4LDcgQEAKIAogI2ltcG9ydCAi
Q29sb3JTcGFjZUNHLmgiCiAjaW1wb3J0ICJJT1N1cmZhY2UuaCIKKyNpbXBvcnQgIlJlYWx0aW1l
VmlkZW9VdGlsaXRpZXMuaCIKICNpbXBvcnQgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KICNpbXBvcnQg
PHd0Zi9jZi9UeXBlQ2FzdHNDRi5oPgogI2ltcG9ydCAiQ29yZVZpZGVvU29mdExpbmsuaCIKQEAg
LTE2Miw0ICsxNjMsMzEgQEAgdm9pZCBzZXRPd25lcnNoaXBJZGVudGl0eUZvckNWUGl4ZWxCdWZm
ZXIoQ1ZQaXhlbEJ1ZmZlclJlZiBwaXhlbEJ1ZmZlciwgY29uc3QgUHIKICAgICBJT1N1cmZhY2U6
OnNldE93bmVyc2hpcElkZW50aXR5KHN1cmZhY2UsIG93bmVyKTsKIH0KIAorUmV0YWluUHRyPENW
UGl4ZWxCdWZmZXJSZWY+IGNyZWF0ZUJsYWNrUGl4ZWxCdWZmZXIoc2l6ZV90IHdpZHRoLCBzaXpl
X3QgaGVpZ2h0KQoreworICAgIE9TVHlwZSBmb3JtYXQgPSBwcmVmZXJlZFBpeGVsQnVmZmVyRm9y
bWF0KCk7CisgICAgQVNTRVJUKGZvcm1hdCA9PSBrQ1ZQaXhlbEZvcm1hdFR5cGVfNDIwWXBDYkNy
OEJpUGxhbmFyVmlkZW9SYW5nZSB8fCBmb3JtYXQgPT0ga0NWUGl4ZWxGb3JtYXRUeXBlXzQyMFlw
Q2JDcjhCaVBsYW5hckZ1bGxSYW5nZSk7CisKKyAgICBDVlBpeGVsQnVmZmVyUmVmIHBpeGVsQnVm
ZmVyID0gbnVsbHB0cjsKKyAgICBhdXRvIHN0YXR1cyA9IENWUGl4ZWxCdWZmZXJDcmVhdGUoa0NG
QWxsb2NhdG9yRGVmYXVsdCwgd2lkdGgsIGhlaWdodCwgZm9ybWF0LCBudWxscHRyLCAmcGl4ZWxC
dWZmZXIpOworICAgIEFTU0VSVF9VTlVTRUQoc3RhdHVzLCBzdGF0dXMgPT0gbm9FcnIpOworCisg
ICAgc3RhdHVzID0gQ1ZQaXhlbEJ1ZmZlckxvY2tCYXNlQWRkcmVzcyhwaXhlbEJ1ZmZlciwgMCk7
CisgICAgQVNTRVJUKHN0YXR1cyA9PSBub0Vycik7CisKKyAgICBhdXRvKiB5UGxhbmUgPSBzdGF0
aWNfY2FzdDx1aW50OF90Kj4oQ1ZQaXhlbEJ1ZmZlckdldEJhc2VBZGRyZXNzT2ZQbGFuZShwaXhl
bEJ1ZmZlciwgMCkpOworICAgIHNpemVfdCB5U3RyaWRlID0gQ1ZQaXhlbEJ1ZmZlckdldEJ5dGVz
UGVyUm93T2ZQbGFuZShwaXhlbEJ1ZmZlciwgMCk7CisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsg
aSA8IGhlaWdodDsgKytpKQorICAgICAgICBtZW1zZXQoJnlQbGFuZVtpICogeVN0cmlkZV0sIDAs
IHdpZHRoKTsKKworICAgIGF1dG8qIHV2UGxhbmUgPSBzdGF0aWNfY2FzdDx1aW50OF90Kj4oQ1ZQ
aXhlbEJ1ZmZlckdldEJhc2VBZGRyZXNzT2ZQbGFuZShwaXhlbEJ1ZmZlciwgMSkpOworICAgIHNp
emVfdCB1dlN0cmlkZSA9IENWUGl4ZWxCdWZmZXJHZXRCeXRlc1BlclJvd09mUGxhbmUocGl4ZWxC
dWZmZXIsIDEpOworICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBoZWlnaHQgLyAyOyArK2kp
CisgICAgICAgIG1lbXNldCgmdXZQbGFuZVtpICogdXZTdHJpZGVdLCAxMjgsIHdpZHRoKTsKKwor
ICAgIHN0YXR1cyA9IENWUGl4ZWxCdWZmZXJVbmxvY2tCYXNlQWRkcmVzcyhwaXhlbEJ1ZmZlciwg
MCk7CisgICAgQVNTRVJUKCFzdGF0dXMpOworICAgIHJldHVybiBhZG9wdENGKHBpeGVsQnVmZmVy
KTsKK30KKwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y3YvVmlkZW9GcmFtZUNWLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9W
aWRlb0ZyYW1lQ1YuaAppbmRleCA4MzFjODgwMmNjOGM4MzM5MzQ0ZmIwZDc0ZTFkYjNmZDNiZGRm
N2RhLi4xNGViNWI1NTJmY2NjNTMzNzYzZmM3NGM3ZTkzZGVjNmYyMzIxY2IzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9WaWRlb0ZyYW1lQ1YuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9WaWRlb0ZyYW1lQ1YuaApAQCAt
NDcsOSArNDcsMTAgQEAgcHVibGljOgogICAgIHRlbXBsYXRlPHR5cGVuYW1lIERlY29kZXI+IHN0
YXRpYyBzdGQ6Om9wdGlvbmFsPFJlZlB0cjxWaWRlb0ZyYW1lQ1Y+PiBkZWNvZGUoRGVjb2RlciYp
OwogCiAgICAgLy8gVmlkZW9GcmFtZSBvdmVycmlkZXMuCi0gICAgV2ViQ29yZTo6RmxvYXRTaXpl
IHByZXNlbnRhdGlvblNpemUoKSBjb25zdCBmaW5hbDsKLSAgICB1aW50MzJfdCB2aWRlb1BpeGVs
Rm9ybWF0KCkgY29uc3QgZmluYWw7CisgICAgV0VCQ09SRV9FWFBPUlQgV2ViQ29yZTo6RmxvYXRT
aXplIHByZXNlbnRhdGlvblNpemUoKSBjb25zdCBmaW5hbDsKKyAgICBXRUJDT1JFX0VYUE9SVCB1
aW50MzJfdCB2aWRlb1BpeGVsRm9ybWF0KCkgY29uc3QgZmluYWw7CiAgICAgYm9vbCBpc0NWKCkg
Y29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQorICAgIFdFQkNPUkVfRVhQT1JUIFJlZlB0cjxX
ZWJDb3JlOjpWaWRlb0ZyYW1lQ1Y+IGFzVmlkZW9GcmFtZUNWKCkgZmluYWw7CiAKIHByaXZhdGU6
CiAgICAgV0VCQ09SRV9FWFBPUlQgVmlkZW9GcmFtZUNWKE1lZGlhVGltZSBwcmVzZW50YXRpb25U
aW1lLCBib29sIGlzTWlycm9yZWQsIFZpZGVvUm90YXRpb24sIFJldGFpblB0cjxDVlBpeGVsQnVm
ZmVyUmVmPiYmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2N2L1ZpZGVvRnJhbWVDVi5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2
L1ZpZGVvRnJhbWVDVi5tbQppbmRleCBhNWE2ZDA4MmJiZTQyYzMxNzNhYmMxZmE4ODEyZTQ0MWNh
YzZmNmU1Li5kMzljOTBlMGM3OTBhNTc1MTEzN2IwNWE2ZmQ2MDExMTJkNmE5ODFhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9WaWRlb0ZyYW1lQ1YubW0K
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvVmlkZW9GcmFtZUNWLm1t
CkBAIC01NCw2ICs1NCwxMSBAQCB1aW50MzJfdCBWaWRlb0ZyYW1lQ1Y6OnZpZGVvUGl4ZWxGb3Jt
YXQoKSBjb25zdAogewogICAgIHJldHVybiBDVlBpeGVsQnVmZmVyR2V0UGl4ZWxGb3JtYXRUeXBl
KG1fcGl4ZWxCdWZmZXIuZ2V0KCkpOwogfQorUmVmUHRyPFdlYkNvcmU6OlZpZGVvRnJhbWVDVj4g
VmlkZW9GcmFtZUNWOjphc1ZpZGVvRnJhbWVDVigpCit7CisgICAgcmV0dXJuIHRoaXM7Cit9CisK
IAogSW1hZ2VPcmllbnRhdGlvbiBWaWRlb0ZyYW1lQ1Y6Om9yaWVudGF0aW9uKCkgY29uc3QKIHsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvTWVkaWFS
ZWNvcmRlclByaXZhdGVBVkZJbXBsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
cmVjb3JkZXIvTWVkaWFSZWNvcmRlclByaXZhdGVBVkZJbXBsLmNwcAppbmRleCAzM2RiMTJmYWFj
N2Y2MjZmNzA1MzgxODEwODhhZmE2NDU3YzBhNDA5Li42OWNkYzhhNjA0YTdlNDU2ZDA1NWUxYjcz
YWNhMWEwOTk5M2YwYTZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1wbC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyUHJpdmF0ZUFWRkltcGwu
Y3BwCkBAIC0zMCw2ICszMCw3IEBACiAKICNpbmNsdWRlICJBdWRpb1N0cmVhbURlc2NyaXB0aW9u
LmgiCiAjaW5jbHVkZSAiQ0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uLmgiCisjaW5jbHVkZSAiQ1ZV
dGlsaXRpZXMuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiTWVkaWFSZWNvcmRl
clByaXZhdGVXcml0ZXJDb2NvYS5oIgogI2luY2x1ZGUgIk1lZGlhU2FtcGxlQVZGT2JqQy5oIgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0
aW1lSW5jb21pbmdWaWRlb1NvdXJjZUNvY29hLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlQ29jb2EuaAppbmRleCA2
NDY2ZDYxOGRlNzQ5ZTVjNWY5MjYxZDI1MmRkOWIwYzE5ZTFhNTc1Li42MDMzOGVhMDczN2RiNjE2
OGZjNjEwYjFjNDIwNWMzYWFhNjlhYmU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlQ29jb2EuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVJbmNv
bWluZ1ZpZGVvU291cmNlQ29jb2EuaApAQCAtNjgsOCArNjgsNiBAQCBwcml2YXRlOgogICAgIHdl
YnJ0Yzo6QnVmZmVyVHlwZSBtX3BpeGVsQnVmZmVyUG9vbEJ1ZmZlclR5cGU7CiB9OwogCi1XRUJD
T1JFX0VYUE9SVCBSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4gY3JlYXRlQmxhY2tQaXhlbEJ1
ZmZlcihzaXplX3Qgd2lkdGgsIHNpemVfdCBoZWlnaHQpOwotCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCiAKICNlbmRpZiAvLyBVU0UoTElCV0VCUlRDKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZUNv
Y29hLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1l
SW5jb21pbmdWaWRlb1NvdXJjZUNvY29hLm1tCmluZGV4IDdhMzUyNmEzOTM1NGRkNjk5YWNkN2U2
MWE4NjU4MmJmMDY3MWE1NGEuLmNmMDM4NGI5OWRiNGM5Y2Q4OWFkYWFiYzRhNTRmNWNjNjIzMTA4
ZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9S
ZWFsdGltZUluY29taW5nVmlkZW9Tb3VyY2VDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlQ29jb2Eu
bW0KQEAgLTMzLDcgKzMzLDYgQEAKICNpbXBvcnQgIkNWVXRpbGl0aWVzLmgiCiAjaW1wb3J0ICJM
b2dnaW5nLmgiCiAjaW1wb3J0ICJNZWRpYVNhbXBsZUFWRk9iakMuaCIKLSNpbXBvcnQgIlJlYWx0
aW1lVmlkZW9VdGlsaXRpZXMuaCIKICNpbXBvcnQgPHd0Zi9jZi9UeXBlQ2FzdHNDRi5oPgogCiBB
TExPV19VTlVTRURfUEFSQU1FVEVSU19CRUdJTgpAQCAtNjIsMzMgKzYxLDYgQEAgUmVhbHRpbWVJ
bmNvbWluZ1ZpZGVvU291cmNlQ29jb2E6OlJlYWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZUNvY29h
KHJ0Yzo6c2NvcGVkX3IKIHsKIH0KIAotUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+IGNyZWF0
ZUJsYWNrUGl4ZWxCdWZmZXIoc2l6ZV90IHdpZHRoLCBzaXplX3QgaGVpZ2h0KQotewotICAgIE9T
VHlwZSBmb3JtYXQgPSBwcmVmZXJlZFBpeGVsQnVmZmVyRm9ybWF0KCk7Ci0gICAgQVNTRVJUKGZv
cm1hdCA9PSBrQ1ZQaXhlbEZvcm1hdFR5cGVfNDIwWXBDYkNyOEJpUGxhbmFyVmlkZW9SYW5nZSB8
fCBmb3JtYXQgPT0ga0NWUGl4ZWxGb3JtYXRUeXBlXzQyMFlwQ2JDcjhCaVBsYW5hckZ1bGxSYW5n
ZSk7Ci0KLSAgICBDVlBpeGVsQnVmZmVyUmVmIHBpeGVsQnVmZmVyID0gbnVsbHB0cjsKLSAgICBh
dXRvIHN0YXR1cyA9IENWUGl4ZWxCdWZmZXJDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgd2lk
dGgsIGhlaWdodCwgZm9ybWF0LCBudWxscHRyLCAmcGl4ZWxCdWZmZXIpOwotICAgIEFTU0VSVF9V
TlVTRUQoc3RhdHVzLCBzdGF0dXMgPT0gbm9FcnIpOwotCi0gICAgc3RhdHVzID0gQ1ZQaXhlbEJ1
ZmZlckxvY2tCYXNlQWRkcmVzcyhwaXhlbEJ1ZmZlciwgMCk7Ci0gICAgQVNTRVJUKHN0YXR1cyA9
PSBub0Vycik7Ci0KLSAgICBhdXRvKiB5UGxhbmUgPSBzdGF0aWNfY2FzdDx1aW50OF90Kj4oQ1ZQ
aXhlbEJ1ZmZlckdldEJhc2VBZGRyZXNzT2ZQbGFuZShwaXhlbEJ1ZmZlciwgMCkpOwotICAgIHNp
emVfdCB5U3RyaWRlID0gQ1ZQaXhlbEJ1ZmZlckdldEJ5dGVzUGVyUm93T2ZQbGFuZShwaXhlbEJ1
ZmZlciwgMCk7Ci0gICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGhlaWdodDsgKytpKQotICAg
ICAgICBtZW1zZXQoJnlQbGFuZVtpICogeVN0cmlkZV0sIDAsIHdpZHRoKTsKLQotICAgIGF1dG8q
IHV2UGxhbmUgPSBzdGF0aWNfY2FzdDx1aW50OF90Kj4oQ1ZQaXhlbEJ1ZmZlckdldEJhc2VBZGRy
ZXNzT2ZQbGFuZShwaXhlbEJ1ZmZlciwgMSkpOwotICAgIHNpemVfdCB1dlN0cmlkZSA9IENWUGl4
ZWxCdWZmZXJHZXRCeXRlc1BlclJvd09mUGxhbmUocGl4ZWxCdWZmZXIsIDEpOwotICAgIGZvciAo
dW5zaWduZWQgaSA9IDA7IGkgPCBoZWlnaHQgLyAyOyArK2kpCi0gICAgICAgIG1lbXNldCgmdXZQ
bGFuZVtpICogdXZTdHJpZGVdLCAxMjgsIHdpZHRoKTsKLQotICAgIHN0YXR1cyA9IENWUGl4ZWxC
dWZmZXJVbmxvY2tCYXNlQWRkcmVzcyhwaXhlbEJ1ZmZlciwgMCk7Ci0gICAgQVNTRVJUKCFzdGF0
dXMpOwotICAgIHJldHVybiBhZG9wdENGKHBpeGVsQnVmZmVyKTsKLX0KLQogQ1ZQaXhlbEJ1ZmZl
clBvb2xSZWYgUmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlQ29jb2E6OnBpeGVsQnVmZmVyUG9v
bChzaXplX3Qgd2lkdGgsIHNpemVfdCBoZWlnaHQsIHdlYnJ0Yzo6QnVmZmVyVHlwZSBidWZmZXJU
eXBlKQogewogICAgIGlmICghbV9waXhlbEJ1ZmZlclBvb2wgfHwgbV9waXhlbEJ1ZmZlclBvb2xX
aWR0aCAhPSB3aWR0aCB8fCBtX3BpeGVsQnVmZmVyUG9vbEhlaWdodCAhPSBoZWlnaHQgfHwgbV9w
aXhlbEJ1ZmZlclBvb2xCdWZmZXJUeXBlICE9IGJ1ZmZlclR5cGUpIHsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZU91dGdvaW5nVmlk
ZW9Tb3VyY2VDb2NvYS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9t
YWMvUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlQ29jb2EuY3BwCmluZGV4IGEzNzU5NWViMzY5
MzA4YzU2Nzg2NmY3ODgzNDE2ZTNjOGRlZmZhNTkuLjY5NTIwNWY1MGY5MjMyYTQyYmNhNTAwYjI0
NGM4OThmYmE2NzcxNzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL21hYy9SZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2VDb2NvYS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lT3V0Z29pbmdWaWRl
b1NvdXJjZUNvY29hLmNwcApAQCAtMjgsNiArMjgsNyBAQAogCiAjaWYgVVNFKExJQldFQlJUQykK
IAorI2luY2x1ZGUgIkNWVXRpbGl0aWVzLmgiCiAjaW5jbHVkZSAiSW1hZ2VSb3RhdGlvblNlc3Np
b25WVC5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJSZWFsdGltZUluY29taW5n
VmlkZW9Tb3VyY2VDb2NvYS5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCmluZGV4IGRlMjNjNDQ0Y2MwNmU4M2RjOGJk
NTJlMGI4YTRhNzRmN2ZlMTgyNGYuLjIyMzkzNGI4YzFmZDM4OGQzMjQ1MTZjZGFmODQzZGZkNmI0
ZWQ3MzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9u
VG9XZWJQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVj
dGlvblRvV2ViUHJvY2Vzcy5jcHAKQEAgLTE0MSw3ICsxNDEsNiBAQAogI2VuZGlmCiAKICNpZiBF
TkFCTEUoTUVESUFfU1RSRUFNKQotI2luY2x1ZGUgIlJlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFw
LmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9TZWN1cml0eU9yaWdpbi5oPgogI2VuZGlmCiAKQEAgLTE1
NCw2ICsxNTMsMTAgQEAKICNpbmNsdWRlICJJUENUZXN0ZXJNZXNzYWdlcy5oIgogI2VuZGlmCiAK
KyNpZiBFTkFCTEUoVklERU8pCisjaW5jbHVkZSAiUmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXAu
aCIKKyNlbmRpZgorCiBuYW1lc3BhY2UgV2ViS2l0IHsKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3Jl
OwogCkBAIC0yNDQsNyArMjQ3LDcgQEAgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6R1BVQ29u
bmVjdGlvblRvV2ViUHJvY2VzcyhHUFVQcm9jZXNzJiBncHVQcm9jZXNzLCBXZWIKICNpZiBFTkFC
TEUoTUVESUFfU1RSRUFNKQogICAgICwgbV9jYXB0dXJlT3JpZ2luKFNlY3VyaXR5T3JpZ2luOjpj
cmVhdGVVbmlxdWUoKSkKICNlbmRpZgotI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisjaWYgRU5B
QkxFKFZJREVPKQogICAgICwgbV92aWRlb0ZyYW1lT2JqZWN0SGVhcChSZW1vdGVWaWRlb0ZyYW1l
T2JqZWN0SGVhcDo6Y3JlYXRlKCp0aGlzKSkKICNlbmRpZgogI2lmIFBMQVRGT1JNKENPQ09BKSAm
JiBVU0UoTElCV0VCUlRDKQpAQCAtMzA1LDcgKzMwOCw3IEBAIHZvaWQgR1BVQ29ubmVjdGlvblRv
V2ViUHJvY2Vzczo6ZGlkQ2xvc2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uKQogICAgICAg
ICBtX2F1ZGlvU2Vzc2lvblByb3h5ID0gbnVsbHB0cjsKICAgICB9CiAjZW5kaWYKLSNpZiBFTkFC
TEUoTUVESUFfU1RSRUFNKQorI2lmIEVOQUJMRShWSURFTykKICAgICBtX3ZpZGVvRnJhbWVPYmpl
Y3RIZWFwLnJlc2V0KCk7CiAjZW5kaWYKICAgICAvLyBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kIG9i
amVjdHMgcmVmIHRoZWlyIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mgc28gd2UgbmVlZCB0byBt
YWtlIHN1cmUKQEAgLTk0OCwxMyArOTUxLDE0IEBAIGJvb2wgR1BVQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzczo6c2V0Q2FwdHVyZUF0dHJpYnV0aW9uU3RyaW5nKCkgY29uc3QKIHsKIH0KICNlbmRpZgor
I2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJFQU0pCiAKKyNpZiBFTkFCTEUoVklERU8pCiBSZW1v
dGVWaWRlb0ZyYW1lT2JqZWN0SGVhcCYgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6dmlkZW9G
cmFtZU9iamVjdEhlYXAoKSBjb25zdAogewogICAgIHJldHVybiAqbV92aWRlb0ZyYW1lT2JqZWN0
SGVhcC5nZXQoKTsKIH0KLQotI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJFQU0pCisjZW5kaWYK
IAogI2lmIFBMQVRGT1JNKE1BQykKIHZvaWQgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6ZGlz
cGxheUNvbmZpZ3VyYXRpb25DaGFuZ2VkKENHRGlyZWN0RGlzcGxheUlELCBDR0Rpc3BsYXlDaGFu
Z2VTdW1tYXJ5RmxhZ3MgZmxhZ3MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaAppbmRleCA4YjRkOWI1NDI5OGI0ODlkNjBkYzA1
Mzg0ODM5MTA4NzQ2ZTFhMGMyLi41MjVkZGE3YWZiMDllOWEzMWRmNDdkMzRlNTY5NTExNTY2ZGMx
MDQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRv
V2ViUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9u
VG9XZWJQcm9jZXNzLmgKQEAgLTEwNiw3ICsxMDYsNyBAQCBzdHJ1Y3QgUmVtb3RlUmVuZGVyaW5n
QmFja2VuZENyZWF0aW9uUGFyYW1ldGVyczsKIGNsYXNzIFJlbW90ZVdDTGF5ZXJUcmVlSG9zdDsK
ICNlbmRpZgogCi0jaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyNpZiBFTkFCTEUoVklERU8pCiBj
bGFzcyBSZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcDsKICNlbmRpZgogCkBAIC0xNDUsOSArMTQ1
LDEwIEBAIHB1YmxpYzoKICAgICBib29sIGFsbG93c0F1ZGlvQ2FwdHVyZSgpIGNvbnN0IHsgcmV0
dXJuIG1fYWxsb3dzQXVkaW9DYXB0dXJlOyB9CiAgICAgYm9vbCBhbGxvd3NWaWRlb0NhcHR1cmUo
KSBjb25zdCB7IHJldHVybiBtX2FsbG93c1ZpZGVvQ2FwdHVyZTsgfQogICAgIGJvb2wgYWxsb3dz
RGlzcGxheUNhcHR1cmUoKSBjb25zdCB7IHJldHVybiBtX2FsbG93c0Rpc3BsYXlDYXB0dXJlOyB9
CisjZW5kaWYKKyNpZiBFTkFCTEUoVklERU8pCiAgICAgUmVtb3RlVmlkZW9GcmFtZU9iamVjdEhl
YXAmIHZpZGVvRnJhbWVPYmplY3RIZWFwKCkgY29uc3Q7CiAjZW5kaWYKLQogI2lmIFBMQVRGT1JN
KENPQ09BKSAmJiBFTkFCTEUoTUVESUFfU1RSRUFNKQogICAgIHZvaWQgc3RhcnRDYXB0dXJpbmdB
dWRpbygpOwogICAgIHZvaWQgcHJvY2Vzc0lzU3RhcnRpbmdUb0NhcHR1cmVBdWRpbyhHUFVDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzJik7CkBAIC0zMDcsNiArMzA4LDggQEAgcHJpdmF0ZToKICAgICBi
b29sIG1fYWxsb3dzQXVkaW9DYXB0dXJlIHsgZmFsc2UgfTsKICAgICBib29sIG1fYWxsb3dzVmlk
ZW9DYXB0dXJlIHsgZmFsc2UgfTsKICAgICBib29sIG1fYWxsb3dzRGlzcGxheUNhcHR1cmUgeyBm
YWxzZSB9OworI2VuZGlmCisjaWYgRU5BQkxFKFZJREVPKQogICAgIElQQzo6U2NvcGVkQWN0aXZl
TWVzc2FnZVJlY2VpdmVRdWV1ZTxSZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcD4gbV92aWRlb0Zy
YW1lT2JqZWN0SGVhcDsKICNlbmRpZgogI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBVU0UoTElCV0VC
UlRDKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90
ZUdyYXBoaWNzQ29udGV4dEdMLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGlj
cy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTC5jcHAKaW5kZXggNGE2N2M1ZDE2ZTVhMGZmOWY5ODdm
ZDI0M2EyZGI5NThkM2RlMmE4YS4uZDNjYzI5ZmJjZGNhYjZiNDBiNTA4ZTQxZjQ1NmM0NmFlYzc0
MjEyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90
ZUdyYXBoaWNzQ29udGV4dEdMLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3Jh
cGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0wuY3BwCkBAIC0zOCwxMSArMzgsNyBAQAogI2lu
Y2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CiAjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+
CiAKLSNpZiBVU0UoQVZGT1VOREFUSU9OKQotI2luY2x1ZGUgPFdlYkNvcmUvR3JhcGhpY3NDb250
ZXh0R0xDVi5oPgotI2VuZGlmCi0KLSNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorI2lmIEVOQUJM
RShWSURFTykKICNpbmNsdWRlICJSZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcC5oIgogI2VuZGlm
CiAKQEAgLTcyLDcgKzY4LDcgQEAgUmVtb3RlR3JhcGhpY3NDb250ZXh0R0w6OlJlbW90ZUdyYXBo
aWNzQ29udGV4dEdMKEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmIGdwdUMKICAgICAsIG1fc3Ry
ZWFtQ29ubmVjdGlvbihJUEM6OlN0cmVhbVNlcnZlckNvbm5lY3Rpb246OmNyZWF0ZShncHVDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzLmNvbm5lY3Rpb24oKSwgV1RGTW92ZShzdHJlYW0pLCByZW1vdGVH
cmFwaGljc0NvbnRleHRHTFN0cmVhbVdvcmtRdWV1ZSgpKSkKICAgICAsIG1fZ3JhcGhpY3NDb250
ZXh0R0xJZGVudGlmaWVyKGdyYXBoaWNzQ29udGV4dEdMSWRlbnRpZmllcikKICAgICAsIG1fcmVu
ZGVyaW5nQmFja2VuZChyZW5kZXJpbmdCYWNrZW5kKQotI2lmIEVOQUJMRShNRURJQV9TVFJFQU0p
CisjaWYgRU5BQkxFKFZJREVPKQogICAgICwgbV92aWRlb0ZyYW1lT2JqZWN0SGVhcChncHVDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzLnZpZGVvRnJhbWVPYmplY3RIZWFwKCkpCiAjZW5kaWYKICAgICAs
IG1fcmVuZGVyaW5nUmVzb3VyY2VzUmVxdWVzdChTY29wZWRXZWJHTFJlbmRlcmluZ1Jlc291cmNl
c1JlcXVlc3Q6OmFjcXVpcmUoKSkKQEAgLTI4MCw1MSArMjc2LDE0IEBAIHZvaWQgUmVtb3RlR3Jh
cGhpY3NDb250ZXh0R0w6OnBhaW50UGl4ZWxCdWZmZXJUb0ltYWdlQnVmZmVyKHN0ZDo6b3B0aW9u
YWw8V2ViQ29yCiAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKIH0KIAotdm9pZCBSZW1vdGVHcmFw
aGljc0NvbnRleHRHTDo6Y29weVRleHR1cmVGcm9tTWVkaWEoV2ViQ29yZTo6TWVkaWFQbGF5ZXJJ
ZGVudGlmaWVyIG1lZGlhUGxheWVySWRlbnRpZmllciwgdWludDMyX3QgdGV4dHVyZSwgdWludDMy
X3QgdGFyZ2V0LCBpbnQzMl90IGxldmVsLCB1aW50MzJfdCBpbnRlcm5hbEZvcm1hdCwgdWludDMy
X3QgZm9ybWF0LCB1aW50MzJfdCB0eXBlLCBib29sIHByZW11bHRpcGx5QWxwaGEsIGJvb2wgZmxp
cFksIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCisj
aWYgRU5BQkxFKFZJREVPKSAmJiAhVVNFKEFWRk9VTkRBVElPTikKK3ZvaWQgUmVtb3RlR3JhcGhp
Y3NDb250ZXh0R0w6OmNvcHlUZXh0dXJlRnJvbVZpZGVvRnJhbWUoV2ViS2l0OjpSZW1vdGVWaWRl
b0ZyYW1lUmVhZFJlZmVyZW5jZSByZWFkLCB1aW50MzJfdCwgdWludDMyX3QsIGludDMyX3QsIHVp
bnQzMl90LCB1aW50MzJfdCwgdWludDMyX3QsIGJvb2wsIGJvb2wgLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewotICAgIGFzc2VydElzQ3VycmVu
dChtX3N0cmVhbVRocmVhZCk7Ci0jaWYgVVNFKEFWRk9VTkRBVElPTikKLSAgICBVTlVTRURfVkFS
SUFCTEUocHJlbXVsdGlwbHlBbHBoYSk7Ci0gICAgQVNTRVJUX1VOVVNFRCh0YXJnZXQsIHRhcmdl
dCA9PSBHcmFwaGljc0NvbnRleHRHTDo6VEVYVFVSRV8yRCk7Ci0KLSAgICBSZWZQdHI8VmlkZW9G
cmFtZT4gdmlkZW9GcmFtZTsKLSAgICBhdXRvIGdldFZpZGVvRnJhbWUgPSBbJl0gewotICAgICAg
ICBpZiAoIW1fZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2VzcykKLSAgICAgICAgICAgIHJldHVybjsK
LQotICAgICAgICBpZiAoYXV0byBtZWRpYVBsYXllciA9IG1fZ3B1Q29ubmVjdGlvblRvV2ViUHJv
Y2Vzcy0+cmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkoKS5tZWRpYVBsYXllcihtZWRpYVBs
YXllcklkZW50aWZpZXIpKQotICAgICAgICAgICAgdmlkZW9GcmFtZSA9IG1lZGlhUGxheWVyLT52
aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWUoKTsKLSAgICB9OwotCi0gICAgY2FsbE9uTWFpblJ1bkxv
b3BBbmRXYWl0KFdURk1vdmUoZ2V0VmlkZW9GcmFtZSkpOwotCi0gICAgaWYgKCF2aWRlb0ZyYW1l
IHx8ICFpczxWaWRlb0ZyYW1lQ1Y+KCp2aWRlb0ZyYW1lKSkgewotICAgICAgICBjb21wbGV0aW9u
SGFuZGxlcihmYWxzZSk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBhdXRvIGNvbnRl
eHRDViA9IG1fY29udGV4dC0+YXNDVigpOwotICAgIGlmICghY29udGV4dENWKSB7Ci0gICAgICAg
IGNvbXBsZXRpb25IYW5kbGVyKGZhbHNlKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAg
IGNvbXBsZXRpb25IYW5kbGVyKGNvbnRleHRDVi0+Y29weVZpZGVvU2FtcGxlVG9UZXh0dXJlKGRv
d25jYXN0PFZpZGVvRnJhbWVDVj4oKnZpZGVvRnJhbWUpLCB0ZXh0dXJlLCBsZXZlbCwgaW50ZXJu
YWxGb3JtYXQsIGZvcm1hdCwgdHlwZSwgR3JhcGhpY3NDb250ZXh0R0w6OkZsaXBZKGZsaXBZKSkp
OwotI2Vsc2UKLSAgICBVTlVTRURfVkFSSUFCTEUobWVkaWFQbGF5ZXJJZGVudGlmaWVyKTsKLSAg
ICBVTlVTRURfVkFSSUFCTEUodGV4dHVyZSk7Ci0gICAgVU5VU0VEX1ZBUklBQkxFKHRhcmdldCk7
Ci0gICAgVU5VU0VEX1ZBUklBQkxFKGxldmVsKTsKLSAgICBVTlVTRURfVkFSSUFCTEUoaW50ZXJu
YWxGb3JtYXQpOwotICAgIFVOVVNFRF9WQVJJQUJMRShmb3JtYXQpOwotICAgIFVOVVNFRF9WQVJJ
QUJMRSh0eXBlKTsKLSAgICBVTlVTRURfVkFSSUFCTEUocHJlbXVsdGlwbHlBbHBoYSk7Ci0gICAg
VU5VU0VEX1ZBUklBQkxFKGZsaXBZKTsKLQogICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgbV92
aWRlb0ZyYW1lT2JqZWN0SGVhcC0+cmV0aXJlKFdURk1vdmUocmVhZCksIGRlZmF1bHRUaW1lb3V0
KTsKICAgICBjb21wbGV0aW9uSGFuZGxlcihmYWxzZSk7Ci0jZW5kaWYKIH0KKyNlbmRpZgogCiB2
b2lkIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMOjpzaW11bGF0ZUV2ZW50Rm9yVGVzdGluZyhXZWJD
b3JlOjpHcmFwaGljc0NvbnRleHRHTDo6U2ltdWxhdGVkRXZlbnRGb3JUZXN0aW5nIGV2ZW50KQog
ewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdy
YXBoaWNzQ29udGV4dEdMLmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVt
b3RlR3JhcGhpY3NDb250ZXh0R0wuaAppbmRleCBmZjI4NDVlZDQyZjM0N2E5YjhhYjg1NzIxZTYy
ZWViMTRlNTE3ZjA4Li4yM2U5YTdjYjQyZmM0OTkwY2EyZTg2YTAwNzQ5MmZkOGJhNGQ5M2EzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhp
Y3NDb250ZXh0R0wuaAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVt
b3RlR3JhcGhpY3NDb250ZXh0R0wuaApAQCAtNTMsNyArNTMsNyBAQAogI2luY2x1ZGUgIldDQ29u
dGVudEJ1ZmZlcklkZW50aWZpZXIuaCIKICNlbmRpZgogCi0jaWYgRU5BQkxFKE1FRElBX1NUUkVB
TSkKKyNpZiBFTkFCTEUoVklERU8pCiAjaW5jbHVkZSAiUmVtb3RlVmlkZW9GcmFtZUlkZW50aWZp
ZXIuaCIKICNpbmNsdWRlICJSZW1vdGVWaWRlb0ZyYW1lUHJveHkuaCIKICNlbmRpZgpAQCAtNjUs
NyArNjUsNyBAQCBjbGFzcyBNYWNoU2VuZFJpZ2h0OwogI2VuZGlmCiAKIG5hbWVzcGFjZSBXZWJL
aXQgewotI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisjaWYgRU5BQkxFKFZJREVPKQogY2xhc3Mg
UmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXA7CiAjZW5kaWYKIApAQCAtMTE4LDcgKzExOCw5IEBA
IHByb3RlY3RlZDoKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogICAgIHZvaWQgcGFpbnRDb21w
b3NpdGVkUmVzdWx0c1RvTWVkaWFTYW1wbGUoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChzdGQ6Om9w
dGlvbmFsPFdlYktpdDo6UmVtb3RlVmlkZW9GcmFtZVByb3h5OjpQcm9wZXJ0aWVzPiYmKT4mJik7
CiAjZW5kaWYKLSAgICB2b2lkIGNvcHlUZXh0dXJlRnJvbU1lZGlhKFdlYkNvcmU6Ok1lZGlhUGxh
eWVySWRlbnRpZmllciwgdWludDMyX3QgdGV4dHVyZSwgdWludDMyX3QgdGFyZ2V0LCBpbnQzMl90
IGxldmVsLCB1aW50MzJfdCBpbnRlcm5hbEZvcm1hdCwgdWludDMyX3QgZm9ybWF0LCB1aW50MzJf
dCB0eXBlLCBib29sIHByZW11bHRpcGx5QWxwaGEsIGJvb2wgZmxpcFksIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoYm9vbCk+JiYpOworI2lmIEVOQUJMRShWSURFTykKKyAgICB2b2lkIGNvcHlUZXh0
dXJlRnJvbVZpZGVvRnJhbWUoUmVtb3RlVmlkZW9GcmFtZVJlYWRSZWZlcmVuY2UsIHVpbnQzMl90
IHRleHR1cmUsIHVpbnQzMl90IHRhcmdldCwgaW50MzJfdCBsZXZlbCwgdWludDMyX3QgaW50ZXJu
YWxGb3JtYXQsIHVpbnQzMl90IGZvcm1hdCwgdWludDMyX3QgdHlwZSwgYm9vbCBwcmVtdWx0aXBs
eUFscGhhLCBib29sIGZsaXBZLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKKyNl
bmRpZgogICAgIHZvaWQgc2ltdWxhdGVFdmVudEZvclRlc3RpbmcoV2ViQ29yZTo6R3JhcGhpY3ND
b250ZXh0R0w6OlNpbXVsYXRlZEV2ZW50Rm9yVGVzdGluZyk7CiAKICNpbmNsdWRlICJSZW1vdGVH
cmFwaGljc0NvbnRleHRHTEZ1bmN0aW9uc0dlbmVyYXRlZC5oIiAvLyBOT0xJTlQKQEAgLTEzMSw2
ICsxMzMsNyBAQCBwcml2YXRlOgogcHJvdGVjdGVkOgogICAgIFdlYWtQdHI8R1BVQ29ubmVjdGlv
blRvV2ViUHJvY2Vzcz4gbV9ncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOwogICAgIFJlZlB0cjxJ
UEM6OlN0cmVhbVNlcnZlckNvbm5lY3Rpb24+IG1fc3RyZWFtQ29ubmVjdGlvbjsKKyAgICBzdGF0
aWMgY29uc3RleHByIFNlY29uZHMgZGVmYXVsdFRpbWVvdXQgPSAxMF9zOwogI2lmIFBMQVRGT1JN
KENPQ09BKQogICAgIHVzaW5nIEdDR0xDb250ZXh0ID0gV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0
R0xDb2NvYTsKICNlbHNlCkBAIC0xNDAsNyArMTQzLDcgQEAgcHJvdGVjdGVkOgogICAgIFJlZlB0
cjxHQ0dMQ29udGV4dD4gbV9jb250ZXh0IFdURl9HVUFSREVEX0JZX0xPQ0sobV9zdHJlYW1UaHJl
YWQpOwogICAgIEdyYXBoaWNzQ29udGV4dEdMSWRlbnRpZmllciBtX2dyYXBoaWNzQ29udGV4dEdM
SWRlbnRpZmllcjsKICAgICBSZWY8UmVtb3RlUmVuZGVyaW5nQmFja2VuZD4gbV9yZW5kZXJpbmdC
YWNrZW5kOwotI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisjaWYgRU5BQkxFKFZJREVPKQogICAg
IFJlZjxSZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcD4gbV92aWRlb0ZyYW1lT2JqZWN0SGVhcDsK
ICNlbmRpZgogICAgIFNjb3BlZFdlYkdMUmVuZGVyaW5nUmVzb3VyY2VzUmVxdWVzdCBtX3JlbmRl
cmluZ1Jlc291cmNlc1JlcXVlc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0wubWVzc2FnZXMuaW4gYi9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0wubWVzc2Fn
ZXMuaW4KaW5kZXggNzljYzZhNGM3MWMwZjk1MDNiNGM1YmZhNDNmYzMwOTA3YWQ4YjUwZi4uZDI3
NjU4NWEyMmNkYmQzN2U1OTBkZjZkODMwMjNiN2EzNGQwYzQ3ZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMLm1lc3Nh
Z2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFw
aGljc0NvbnRleHRHTC5tZXNzYWdlcy5pbgpAQCAtNDEsNyArNDEsOSBAQCBtZXNzYWdlcyAtPiBS
ZW1vdGVHcmFwaGljc0NvbnRleHRHTCBOb3RSZWZDb3VudGVkIFN0cmVhbSB7CiAgICAgdm9pZCBH
ZXRFcnJvcigpIC0+ICh1aW50MzJfdCByZXR1cm5WYWx1ZSkgU3luY2hyb25vdXMKICAgICB2b2lk
IFBhaW50UmVuZGVyaW5nUmVzdWx0c1RvQ2FudmFzKFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNl
SWRlbnRpZmllciBpbWFnZUJ1ZmZlcikgLT4gKCkgU3luY2hyb25vdXMKICAgICB2b2lkIFBhaW50
Q29tcG9zaXRlZFJlc3VsdHNUb0NhbnZhcyhXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50
aWZpZXIgaW1hZ2VCdWZmZXIpIC0+ICgpIFN5bmNocm9ub3VzCi0gICAgdm9pZCBDb3B5VGV4dHVy
ZUZyb21NZWRpYShXZWJDb3JlOjpNZWRpYVBsYXllcklkZW50aWZpZXIgaWRlbnRpZmllciwgdWlu
dDMyX3QgdGV4dHVyZSwgdWludDMyX3QgdGFyZ2V0LCBpbnQzMl90IGxldmVsLCB1aW50MzJfdCBp
bnRlcm5hbEZvcm1hdCwgdWludDMyX3QgZm9ybWF0LCB1aW50MzJfdCB0eXBlLCBib29sIHByZW11
bHRpcGx5QWxwaGEsIGJvb2wgZmxpcFkpIC0+IChib29sIHN1Y2Nlc3MpIFN5bmNocm9ub3VzCisj
aWYgRU5BQkxFKFZJREVPKQorICAgIHZvaWQgQ29weVRleHR1cmVGcm9tVmlkZW9GcmFtZShXZWJL
aXQ6OlJlbW90ZVZpZGVvRnJhbWVSZWFkUmVmZXJlbmNlIHZpZGVvRnJhbWUsIHVpbnQzMl90IHRl
eHR1cmUsIHVpbnQzMl90IHRhcmdldCwgaW50MzJfdCBsZXZlbCwgdWludDMyX3QgaW50ZXJuYWxG
b3JtYXQsIHVpbnQzMl90IGZvcm1hdCwgdWludDMyX3QgdHlwZSwgYm9vbCBwcmVtdWx0aXBseUFs
cGhhLCBib29sIGZsaXBZKSAtPiAoYm9vbCBzdWNjZXNzKSBTeW5jaHJvbm91cworI2VuZGlmCiAj
aWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKICAgICB2b2lkIFBhaW50Q29tcG9zaXRlZFJlc3VsdHNU
b01lZGlhU2FtcGxlKCkgLT4gKHN0ZDo6b3B0aW9uYWw8V2ViS2l0OjpSZW1vdGVWaWRlb0ZyYW1l
UHJveHk6OlByb3BlcnRpZXM+IHByb3BlcnRpZXMpIFN5bmNocm9ub3VzCiAjZW5kaWYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0Nv
bnRleHRHTENvY29hLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1v
dGVHcmFwaGljc0NvbnRleHRHTENvY29hLmNwcAppbmRleCA2YzkwNjFiNWUyZWZlNWIyZmNkYzBm
ODUwMThmY2MxYjk2NDdlZTA2Li43OWRmOTljZTI5YzMzYTBiNGZhNDcwMDI1NDcwNGY4ZTAzZTFh
YzcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3Rl
R3JhcGhpY3NDb250ZXh0R0xDb2NvYS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMQ29jb2EuY3BwCkBAIC0yOSwxMSArMjks
NTUgQEAKICNpZiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIEVOQUJMRShXRUJHTCkgJiYgUExBVEZP
Uk0oQ09DT0EpCiAKICNpbmNsdWRlICJHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgiCisjaW5j
bHVkZSAiSVBDVGVzdGVyLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9Qcm9jZXNzSWRlbnRpdHkuaD4K
ICNpbmNsdWRlIDx3dGYvTWFjaFNlbmRSaWdodC5oPgogCisKKyNpZiBFTkFCTEUoVklERU8pCisj
aW5jbHVkZSAiUmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXAuaCIKKyNpbmNsdWRlIDxXZWJDb3Jl
L0dyYXBoaWNzQ29udGV4dEdMQ1YuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL01lZGlhU2FtcGxlQVZG
T2JqQy5oPgorI2luY2x1ZGUgPFdlYkNvcmUvVmlkZW9GcmFtZUNWLmg+CisjZW5kaWYKKwogbmFt
ZXNwYWNlIFdlYktpdCB7Ci11c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworI2lmIEVOQUJMRShW
SURFTykKK3ZvaWQgUmVtb3RlR3JhcGhpY3NDb250ZXh0R0w6OmNvcHlUZXh0dXJlRnJvbVZpZGVv
RnJhbWUoV2ViS2l0OjpSZW1vdGVWaWRlb0ZyYW1lUmVhZFJlZmVyZW5jZSByZWFkLCB1aW50MzJf
dCB0ZXh0dXJlLCB1aW50MzJfdCB0YXJnZXQsIGludDMyX3QgbGV2ZWwsIHVpbnQzMl90IGludGVy
bmFsRm9ybWF0LCB1aW50MzJfdCBmb3JtYXQsIHVpbnQzMl90IHR5cGUsIGJvb2wgcHJlbXVsdGlw
bHlBbHBoYSwgYm9vbCBmbGlwWSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21w
bGV0aW9uSGFuZGxlcikKK3sKKyAgICBhc3NlcnRJc0N1cnJlbnQobV9zdHJlYW1UaHJlYWQpOwor
ICAgIFVOVVNFRF9WQVJJQUJMRShwcmVtdWx0aXBseUFscGhhKTsKKyAgICBBU1NFUlRfVU5VU0VE
KHRhcmdldCwgdGFyZ2V0ID09IFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMOjpURVhUVVJFXzJE
KTsKKworICAgIGF1dG8gdmlkZW9GcmFtZSA9IG1fdmlkZW9GcmFtZU9iamVjdEhlYXAtPnJldGly
ZShXVEZNb3ZlKHJlYWQpLCBkZWZhdWx0VGltZW91dCk7CisgICAgaWYgKCF2aWRlb0ZyYW1lKSB7
CisgICAgICAgIEFTU0VSVF9JU19URVNUSU5HX0lQQygpOworICAgICAgICBjb21wbGV0aW9uSGFu
ZGxlcihmYWxzZSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgLy8gTm90ZTogVGhpcyBl
eHRyYSBjYXN0aW5nIGlzIG5lZWRlZCBzaW5jZSBWaWRlb0ZyYW1lcyBhcmUgc3RpbGwgTWVkaWFT
YW1wbGVzLgorICAgIFJlZlB0cjxXZWJDb3JlOjpWaWRlb0ZyYW1lQ1Y+IHZpZGVvRnJhbWVDVjsK
KyAgICBpZiAoaXM8V2ViQ29yZTo6VmlkZW9GcmFtZUNWPigqdmlkZW9GcmFtZSkpCisgICAgICAg
IHZpZGVvRnJhbWVDViA9ICZkb3duY2FzdDxXZWJDb3JlOjpWaWRlb0ZyYW1lQ1Y+KCp2aWRlb0Zy
YW1lKTsKKyAgICBlbHNlIGlmIChpczxXZWJDb3JlOjpNZWRpYVNhbXBsZUFWRk9iakM+KCp2aWRl
b0ZyYW1lKSkKKyAgICAgICAgdmlkZW9GcmFtZUNWID0gZG93bmNhc3Q8V2ViQ29yZTo6TWVkaWFT
YW1wbGVBVkZPYmpDPigqdmlkZW9GcmFtZSkudmlkZW9GcmFtZSgpOworICAgIGVsc2UgeworICAg
ICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsgLy8gUHJvZ3JhbW1pbmcgZXJyb3IsIG5vdCBhIElQ
QyBhdHRhY2suCisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGZhbHNlKTsKKyAgICAgICAgcmV0
dXJuOworICAgIH0KKworICAgIGF1dG8gY29udGV4dENWID0gbV9jb250ZXh0LT5hc0NWKCk7Cisg
ICAgaWYgKCFjb250ZXh0Q1YpIHsKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAg
ICAgIGNvbXBsZXRpb25IYW5kbGVyKGZhbHNlKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwor
ICAgIGNvbXBsZXRpb25IYW5kbGVyKGNvbnRleHRDVi0+Y29weVZpZGVvU2FtcGxlVG9UZXh0dXJl
KCp2aWRlb0ZyYW1lQ1YsIHRleHR1cmUsIGxldmVsLCBpbnRlcm5hbEZvcm1hdCwgZm9ybWF0LCB0
eXBlLCBXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTDo6RmxpcFkoZmxpcFkpKSk7Cit9CisjZW5k
aWYKIAogbmFtZXNwYWNlIHsKIApAQCAtNDYsMTIgKzkwLDEyIEBAIHB1YmxpYzoKICAgICB2b2lk
IHBsYXRmb3JtV29ya1F1ZXVlSW5pdGlhbGl6ZShXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTEF0
dHJpYnV0ZXMmJikgZmluYWw7CiAgICAgdm9pZCBwcmVwYXJlRm9yRGlzcGxheShDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKFdURjo6TWFjaFNlbmRSaWdodCYmKT4mJikgZmluYWw7CiBwcml2YXRlOgot
ICAgIGNvbnN0IFByb2Nlc3NJZGVudGl0eSBtX3Jlc291cmNlT3duZXI7CisgICAgY29uc3QgV2Vi
Q29yZTo6UHJvY2Vzc0lkZW50aXR5IG1fcmVzb3VyY2VPd25lcjsKIH07CiAKIH0KIAotUmVmPFJl
bW90ZUdyYXBoaWNzQ29udGV4dEdMPiBSZW1vdGVHcmFwaGljc0NvbnRleHRHTDo6Y3JlYXRlKEdQ
VUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmIGdwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MsIEdyYXBo
aWNzQ29udGV4dEdMQXR0cmlidXRlcyYmIGF0dHJpYnV0ZXMsIEdyYXBoaWNzQ29udGV4dEdMSWRl
bnRpZmllciBncmFwaGljc0NvbnRleHRHTElkZW50aWZpZXIsIFJlbW90ZVJlbmRlcmluZ0JhY2tl
bmQmIHJlbmRlcmluZ0JhY2tlbmQsIElQQzo6U3RyZWFtQ29ubmVjdGlvbkJ1ZmZlciYmIHN0cmVh
bSkKK1JlZjxSZW1vdGVHcmFwaGljc0NvbnRleHRHTD4gUmVtb3RlR3JhcGhpY3NDb250ZXh0R0w6
OmNyZWF0ZShHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiBncHVDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzLCBXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMmJiBhdHRyaWJ1dGVzLCBH
cmFwaGljc0NvbnRleHRHTElkZW50aWZpZXIgZ3JhcGhpY3NDb250ZXh0R0xJZGVudGlmaWVyLCBS
ZW1vdGVSZW5kZXJpbmdCYWNrZW5kJiByZW5kZXJpbmdCYWNrZW5kLCBJUEM6OlN0cmVhbUNvbm5l
Y3Rpb25CdWZmZXImJiBzdHJlYW0pCiB7CiAgICAgYXV0byBpbnN0YW5jZSA9IGFkb3B0UmVmKCpu
ZXcgUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xDb2NvYShncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNz
LCBncmFwaGljc0NvbnRleHRHTElkZW50aWZpZXIsIHJlbmRlcmluZ0JhY2tlbmQsIFdURk1vdmUo
c3RyZWFtKSkpOwogICAgIGluc3RhbmNlLT5pbml0aWFsaXplKFdURk1vdmUoYXR0cmlidXRlcykp
OwpAQCAtNjIsMTMgKzEwNiwxMiBAQCBSZW1vdGVHcmFwaGljc0NvbnRleHRHTENvY29hOjpSZW1v
dGVHcmFwaGljc0NvbnRleHRHTENvY29hKEdQVUNvbm5lY3Rpb25Ub1dlYlBybwogICAgIDogUmVt
b3RlR3JhcGhpY3NDb250ZXh0R0woZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2VzcywgZ3JhcGhpY3ND
b250ZXh0R0xJZGVudGlmaWVyLCByZW5kZXJpbmdCYWNrZW5kLCBXVEZNb3ZlKHN0cmVhbSkpCiAg
ICAgLCBtX3Jlc291cmNlT3duZXIoZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy53ZWJQcm9jZXNz
SWRlbnRpdHkoKSkKIHsKLQogfQogCiB2b2lkIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMQ29jb2E6
OnBsYXRmb3JtV29ya1F1ZXVlSW5pdGlhbGl6ZShXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTEF0
dHJpYnV0ZXMmJiBhdHRyaWJ1dGVzKQogewogICAgIGFzc2VydElzQ3VycmVudChtX3N0cmVhbVRo
cmVhZCk7Ci0gICAgbV9jb250ZXh0ID0gR3JhcGhpY3NDb250ZXh0R0xDb2NvYTo6Y3JlYXRlKFdU
Rk1vdmUoYXR0cmlidXRlcyksIFByb2Nlc3NJZGVudGl0eSB7IG1fcmVzb3VyY2VPd25lciB9KTsK
KyAgICBtX2NvbnRleHQgPSBXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTENvY29hOjpjcmVhdGUo
V1RGTW92ZShhdHRyaWJ1dGVzKSwgV2ViQ29yZTo6UHJvY2Vzc0lkZW50aXR5IHsgbV9yZXNvdXJj
ZU93bmVyIH0pOwogfQogCiB2b2lkIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMQ29jb2E6OnByZXBh
cmVGb3JEaXNwbGF5KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV1RGOjpNYWNoU2VuZFJpZ2h0JiYp
PiYmIGNvbXBsZXRpb25IYW5kbGVyKQpAQCAtNzYsNyArMTE5LDcgQEAgdm9pZCBSZW1vdGVHcmFw
aGljc0NvbnRleHRHTENvY29hOjpwcmVwYXJlRm9yRGlzcGxheShDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKFdURjoKICAgICBhc3NlcnRJc0N1cnJlbnQobV9zdHJlYW1UaHJlYWQpOwogICAgIG1fY29u
dGV4dC0+cHJlcGFyZUZvckRpc3BsYXkoKTsKICAgICBNYWNoU2VuZFJpZ2h0IHNlbmRSaWdodDsK
LSAgICBJT1N1cmZhY2UqIGRpc3BsYXlCdWZmZXIgPSBtX2NvbnRleHQtPmRpc3BsYXlCdWZmZXIo
KTsKKyAgICBXZWJDb3JlOjpJT1N1cmZhY2UqIGRpc3BsYXlCdWZmZXIgPSBtX2NvbnRleHQtPmRp
c3BsYXlCdWZmZXIoKTsKICAgICBpZiAoZGlzcGxheUJ1ZmZlcikgewogICAgICAgICBtX2NvbnRl
eHQtPm1hcmtEaXNwbGF5QnVmZmVySW5Vc2UoKTsKICAgICAgICAgc2VuZFJpZ2h0ID0gZGlzcGxh
eUJ1ZmZlci0+Y3JlYXRlU2VuZFJpZ2h0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkuY3BwIGIvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5LmNw
cAppbmRleCA5YTA3ODdkNjc5OWJhYzBmODEwMjc3NTJiNGE1Y2E4YzhjZTIwMmEwLi4xYTMxZjBk
NTRiYjVkYjcwZjA0ZmI5ODBhNjBhMmQ5YTY1NDA0ODNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFn
ZXJQcm94eS5jcHAKQEAgLTY3LDcgKzY3LDcgQEAgdm9pZCBSZW1vdGVNZWRpYVBsYXllck1hbmFn
ZXJQcm94eTo6Y3JlYXRlTWVkaWFQbGF5ZXIoTWVkaWFQbGF5ZXJJZGVudGlmaWVyIGlkZW4KICAg
ICBBU1NFUlQobV9ncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzKTsKICAgICBBU1NFUlQoIW1fcHJv
eGllcy5jb250YWlucyhpZGVudGlmaWVyKSk7CiAKLSAgICBhdXRvIHByb3h5ID0gbWFrZVVuaXF1
ZTxSZW1vdGVNZWRpYVBsYXllclByb3h5PigqdGhpcywgaWRlbnRpZmllciwgbV9ncHVDb25uZWN0
aW9uVG9XZWJQcm9jZXNzLT5jb25uZWN0aW9uKCksIGVuZ2luZUlkZW50aWZpZXIsIFdURk1vdmUo
cHJveHlDb25maWd1cmF0aW9uKSk7CisgICAgYXV0byBwcm94eSA9IG1ha2VVbmlxdWU8UmVtb3Rl
TWVkaWFQbGF5ZXJQcm94eT4oKnRoaXMsIGlkZW50aWZpZXIsIG1fZ3B1Q29ubmVjdGlvblRvV2Vi
UHJvY2Vzcy0+Y29ubmVjdGlvbigpLCBlbmdpbmVJZGVudGlmaWVyLCBXVEZNb3ZlKHByb3h5Q29u
ZmlndXJhdGlvbiksIG1fZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy0+dmlkZW9GcmFtZU9iamVj
dEhlYXAoKSk7CiAgICAgbV9wcm94aWVzLmFkZChpZGVudGlmaWVyLCBXVEZNb3ZlKHByb3h5KSk7
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVN
ZWRpYVBsYXllclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1v
dGVNZWRpYVBsYXllclByb3h5LmNwcAppbmRleCBjZDJjNTFiYmQzMmUyOGMyZmU0MzQ2ZTlmMjYz
NTAxODllZWE2NjNiLi4wZWY4MzQyZGQyNjhlZTY4YzMwNDc2MmRhMDU4YmE0ZmJjYmM2ZTNjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5
ZXJQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1l
ZGlhUGxheWVyUHJveHkuY3BwCkBAIC00NCw2ICs0NCw4IEBACiAjaW5jbHVkZSAiUmVtb3RlTWVk
aWFSZXNvdXJjZUxvYWRlci5oIgogI2luY2x1ZGUgIlJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2Vy
LmgiCiAjaW5jbHVkZSAiUmVtb3RlVGV4dFRyYWNrUHJveHkuaCIKKyNpbmNsdWRlICJSZW1vdGVW
aWRlb0ZyYW1lT2JqZWN0SGVhcC5oIgorI2luY2x1ZGUgIlJlbW90ZVZpZGVvRnJhbWVQcm94eS5o
IgogI2luY2x1ZGUgIlJlbW90ZVZpZGVvVHJhY2tQcm94eS5oIgogI2luY2x1ZGUgIlRleHRUcmFj
a1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uLmgiCiAjaW5jbHVkZSAiVHJhY2tQcml2YXRlUmVt
b3RlQ29uZmlndXJhdGlvbi5oIgpAQCAtNzQsNyArNzYsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsK
IAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKLVJlbW90ZU1lZGlhUGxheWVyUHJveHk6OlJl
bW90ZU1lZGlhUGxheWVyUHJveHkoUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkmIG1hbmFn
ZXIsIE1lZGlhUGxheWVySWRlbnRpZmllciBpZGVudGlmaWVyLCBSZWY8SVBDOjpDb25uZWN0aW9u
PiYmIGNvbm5lY3Rpb24sIE1lZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5naW5lSWRlbnRpZmllciBl
bmdpbmVJZGVudGlmaWVyLCBSZW1vdGVNZWRpYVBsYXllclByb3h5Q29uZmlndXJhdGlvbiYmIGNv
bmZpZ3VyYXRpb24pCitSZW1vdGVNZWRpYVBsYXllclByb3h5OjpSZW1vdGVNZWRpYVBsYXllclBy
b3h5KFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5JiBtYW5hZ2VyLCBNZWRpYVBsYXllcklk
ZW50aWZpZXIgaWRlbnRpZmllciwgUmVmPElQQzo6Q29ubmVjdGlvbj4mJiBjb25uZWN0aW9uLCBN
ZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50aWZpZXIgZW5naW5lSWRlbnRpZmllciwg
UmVtb3RlTWVkaWFQbGF5ZXJQcm94eUNvbmZpZ3VyYXRpb24mJiBjb25maWd1cmF0aW9uLCBSZW1v
dGVWaWRlb0ZyYW1lT2JqZWN0SGVhcCYgdmlkZW9GcmFtZU9iamVjdEhlYXApCiAgICAgOiBtX2lk
KGlkZW50aWZpZXIpCiAgICAgLCBtX3dlYlByb2Nlc3NDb25uZWN0aW9uKFdURk1vdmUoY29ubmVj
dGlvbikpCiAgICAgLCBtX21hbmFnZXIobWFuYWdlcikKQEAgLTgyLDYgKzg0LDcgQEAgUmVtb3Rl
TWVkaWFQbGF5ZXJQcm94eTo6UmVtb3RlTWVkaWFQbGF5ZXJQcm94eShSZW1vdGVNZWRpYVBsYXll
ck1hbmFnZXJQcm94eSYgbWEKICAgICAsIG1fdXBkYXRlQ2FjaGVkU3RhdGVNZXNzYWdlVGltZXIo
UnVuTG9vcDo6bWFpbigpLCB0aGlzLCAmUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6dGltZXJGaXJl
ZCkKICAgICAsIG1fY29uZmlndXJhdGlvbihjb25maWd1cmF0aW9uKQogICAgICwgbV9yZW5kZXJp
bmdSZXNvdXJjZXNSZXF1ZXN0KFNjb3BlZFJlbmRlcmluZ1Jlc291cmNlc1JlcXVlc3Q6OmFjcXVp
cmUoKSkKKyAgICAsIG1fdmlkZW9GcmFtZU9iamVjdEhlYXAodmlkZW9GcmFtZU9iamVjdEhlYXAp
CiAjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAgICAgLCBtX2xvZ2dlcihtYW5hZ2VyLmxvZ2dl
cigpKQogI2VuZGlmCkBAIC04NjgsMTEgKzg3MSw5IEBAIHZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJQ
cm94eTo6Y3VycmVudFRpbWVDaGFuZ2VkKGNvbnN0IE1lZGlhVGltZSYgbWVkaWFUaW1lKQogICAg
IG1fd2ViUHJvY2Vzc0Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6Ok1lZGlhUGxheWVyUHJpdmF0
ZVJlbW90ZTo6Q3VycmVudFRpbWVDaGFuZ2VkKG1lZGlhVGltZSwgTW9ub3RvbmljVGltZTo6bm93
KCksICFtZWRpYVBsYXllclBhdXNlZE9yU3RhbGxlZCgpKSwgbV9pZCk7CiB9CiAKLS8vIEZJWE1F
OiBUaGlzIHdpbGwgYmUgdHVybmVkIGludG8gY3Jvc3MtcGxhdGZvcm0gY29kZSBzb29uLgotI2lm
IFBMQVRGT1JNKENPQ09BKQotdm9pZCBSZW1vdGVNZWRpYVBsYXllclByb3h5Ojp2aWRlb0ZyYW1l
Rm9yQ3VycmVudFRpbWVJZkNoYW5nZWQoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChzdGQ6Om9wdGlv
bmFsPFJlZlB0cjxXZWJDb3JlOjpWaWRlb0ZyYW1lQ1Y+PiYmLCBib29sKT4mJiBjb21wbGV0aW9u
SGFuZGxlcikKK3ZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6dmlkZW9GcmFtZUZvckN1cnJl
bnRUaW1lSWZDaGFuZ2VkKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoc3RkOjpvcHRpb25hbDxSZW1v
dGVWaWRlb0ZyYW1lUHJveHk6OlByb3BlcnRpZXM+JiYsIGJvb2wpPiYmIGNvbXBsZXRpb25IYW5k
bGVyKQogewotICAgIHN0ZDo6b3B0aW9uYWw8UmVmUHRyPFdlYkNvcmU6OlZpZGVvRnJhbWVDVj4+
IHJlc3VsdDsKKyAgICBzdGQ6Om9wdGlvbmFsPFJlbW90ZVZpZGVvRnJhbWVQcm94eTo6UHJvcGVy
dGllcz4gcmVzdWx0OwogICAgIGJvb2wgY2hhbmdlZCA9IGZhbHNlOwogICAgIFJlZlB0cjxXZWJD
b3JlOjpWaWRlb0ZyYW1lPiB2aWRlb0ZyYW1lOwogICAgIGlmIChtX3BsYXllcikKQEAgLTg4MCwx
NiArODgxLDE1IEBAIHZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6dmlkZW9GcmFtZUZvckN1
cnJlbnRUaW1lSWZDaGFuZ2VkKENvbXBsZXRpb25IYW5kbGVyCiAgICAgaWYgKG1fdmlkZW9GcmFt
ZUZvckN1cnJlbnRUaW1lICE9IHZpZGVvRnJhbWUpIHsKICAgICAgICAgbV92aWRlb0ZyYW1lRm9y
Q3VycmVudFRpbWUgPSB2aWRlb0ZyYW1lOwogICAgICAgICBjaGFuZ2VkID0gdHJ1ZTsKLSAgICAg
ICAgUmVmUHRyPFZpZGVvRnJhbWVDVj4gdmlkZW9GcmFtZUNWOwogICAgICAgICBpZiAodmlkZW9G
cmFtZSkgewotICAgICAgICAgICAgQVNTRVJUKGlzPFZpZGVvRnJhbWVDVj4oKnZpZGVvRnJhbWUp
KTsKLSAgICAgICAgICAgIHZpZGVvRnJhbWVDViA9ICZkb3duY2FzdDxWaWRlb0ZyYW1lQ1Y+KCp2
aWRlb0ZyYW1lKTsKKyAgICAgICAgICAgIGF1dG8gd3JpdGUgPSBSZW1vdGVWaWRlb0ZyYW1lV3Jp
dGVSZWZlcmVuY2U6OmdlbmVyYXRlRm9yQWRkKCk7CisgICAgICAgICAgICBhdXRvIG5ld0ZyYW1l
UmVmZXJlbmNlID0gd3JpdGUucmV0aXJlZFJlZmVyZW5jZSgpOworICAgICAgICAgICAgcmVzdWx0
ID0gUmVtb3RlVmlkZW9GcmFtZVByb3h5Ojpwcm9wZXJ0aWVzKFdURk1vdmUobmV3RnJhbWVSZWZl
cmVuY2UpLCAqdmlkZW9GcmFtZSk7CisgICAgICAgICAgICBtX3ZpZGVvRnJhbWVPYmplY3RIZWFw
LT5yZXRpcmUoV1RGTW92ZSh3cml0ZSksIFdURk1vdmUodmlkZW9GcmFtZSksIHN0ZDo6bnVsbG9w
dCk7CiAgICAgICAgIH0KLSAgICAgICAgcmVzdWx0ID0gV1RGTW92ZSh2aWRlb0ZyYW1lQ1YpOwog
ICAgIH0KICAgICBjb21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKHJlc3VsdCksIGNoYW5nZWQpOwog
fQotI2VuZGlmCiAKIHZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6dXBkYXRlQ2FjaGVkU3Rh
dGUoYm9vbCBmb3JjZUN1cnJlbnRUaW1lVXBkYXRlKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuaCBiL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmgKaW5kZXggYWMx
MThmNjc4MmNhNjg2NzM4ZjI1NTc3NTgzODA0OTAzOTE1MjgwMy4uZjI4NmJkNjRkNzQ5Yjc1NTJj
ZTJlMmY3NzgzOGFjYmNiMmJhMDk3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5oCkBAIC0zNCw2ICszNCw3IEBA
CiAjaW5jbHVkZSAiUmVtb3RlTWVkaWFQbGF5ZXJQcm94eUNvbmZpZ3VyYXRpb24uaCIKICNpbmNs
dWRlICJSZW1vdGVNZWRpYVBsYXllclN0YXRlLmgiCiAjaW5jbHVkZSAiUmVtb3RlTWVkaWFSZXNv
dXJjZUlkZW50aWZpZXIuaCIKKyNpbmNsdWRlICJSZW1vdGVWaWRlb0ZyYW1lUHJveHkuaCIKICNp
bmNsdWRlICJTYW5kYm94RXh0ZW5zaW9uLmgiCiAjaW5jbHVkZSAiU2NvcGVkUmVuZGVyaW5nUmVz
b3VyY2VzUmVxdWVzdC5oIgogI2luY2x1ZGUgIlRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIu
aCIKQEAgLTk4LDYgKzk5LDcgQEAgY2xhc3MgUmVtb3RlQXVkaW9UcmFja1Byb3h5OwogY2xhc3Mg
UmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlclByb3h5OwogY2xhc3MgUmVtb3RlTWVkaWFQbGF5ZXJN
YW5hZ2VyUHJveHk7CiBjbGFzcyBSZW1vdGVUZXh0VHJhY2tQcm94eTsKK2NsYXNzIFJlbW90ZVZp
ZGVvRnJhbWVPYmplY3RIZWFwOwogY2xhc3MgUmVtb3RlVmlkZW9UcmFja1Byb3h5OwogCiBjbGFz
cyBSZW1vdGVNZWRpYVBsYXllclByb3h5IGZpbmFsCkBAIC0xMDUsNyArMTA3LDcgQEAgY2xhc3Mg
UmVtb3RlTWVkaWFQbGF5ZXJQcm94eSBmaW5hbAogICAgICwgcHVibGljIElQQzo6TWVzc2FnZVJl
Y2VpdmVyIHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAgICBSZW1v
dGVNZWRpYVBsYXllclByb3h5KFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5JiwgV2ViQ29y
ZTo6TWVkaWFQbGF5ZXJJZGVudGlmaWVyLCBSZWY8SVBDOjpDb25uZWN0aW9uPiYmLCBXZWJDb3Jl
OjpNZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50aWZpZXIsIFJlbW90ZU1lZGlhUGxh
eWVyUHJveHlDb25maWd1cmF0aW9uJiYpOworICAgIFJlbW90ZU1lZGlhUGxheWVyUHJveHkoUmVt
b3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkmLCBXZWJDb3JlOjpNZWRpYVBsYXllcklkZW50aWZp
ZXIsIFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYsIFdlYkNvcmU6Ok1lZGlhUGxheWVyRW51bXM6Ok1l
ZGlhRW5naW5lSWRlbnRpZmllciwgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eUNvbmZpZ3VyYXRpb24m
JiwgUmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXAmKTsKICAgICB+UmVtb3RlTWVkaWFQbGF5ZXJQ
cm94eSgpOwogCiAgICAgV2ViQ29yZTo6TWVkaWFQbGF5ZXJJZGVudGlmaWVyIGlkZW5kaWZpZXIo
KSBjb25zdCB7IHJldHVybiBtX2lkOyB9CkBAIC0zMzMsOCArMzM1LDggQEAgcHJpdmF0ZToKICNp
ZiBQTEFURk9STShDT0NPQSkKICAgICB2b2lkIG5hdGl2ZUltYWdlRm9yQ3VycmVudFRpbWUoQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChzdGQ6Om9wdGlvbmFsPFdURjo6TWFjaFNlbmRSaWdodD4mJiwg
V2ViQ29yZTo6RGVzdGluYXRpb25Db2xvclNwYWNlKT4mJik7CiAgICAgdm9pZCBjb2xvclNwYWNl
KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6RGVzdGluYXRpb25Db2xvclNwYWNlKT4m
Jik7Ci0gICAgdm9pZCB2aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWVJZkNoYW5nZWQoQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChzdGQ6Om9wdGlvbmFsPFJlZlB0cjxXZWJDb3JlOjpWaWRlb0ZyYW1lQ1Y+
PiYmLCBib29sKT4mJik7CiAjZW5kaWYKKyAgICB2b2lkIHZpZGVvRnJhbWVGb3JDdXJyZW50VGlt
ZUlmQ2hhbmdlZChDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8UmVtb3RlVmlk
ZW9GcmFtZVByb3h5OjpQcm9wZXJ0aWVzPiYmLCBib29sKT4mJik7CiAKICNpZiAhUkVMRUFTRV9M
T0dfRElTQUJMRUQKICAgICBjb25zdCBMb2dnZXImIG1lZGlhUGxheWVyTG9nZ2VyKCkgZmluYWwg
eyByZXR1cm4gbV9sb2dnZXI7IH0KQEAgLTM5MCw2ICszOTIsNyBAQCBwcml2YXRlOgogICAgIFNj
b3BlZFJlbmRlcmluZ1Jlc291cmNlc1JlcXVlc3QgbV9yZW5kZXJpbmdSZXNvdXJjZXNSZXF1ZXN0
OwogCiAgICAgYm9vbCBtX29ic2VydmluZ1RpbWVDaGFuZ2VzIHsgZmFsc2UgfTsKKyAgICBSZWY8
UmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXA+IG1fdmlkZW9GcmFtZU9iamVjdEhlYXA7CiAgICAg
UmVmUHRyPFdlYkNvcmU6OlZpZGVvRnJhbWU+IG1fdmlkZW9GcmFtZUZvckN1cnJlbnRUaW1lOwog
I2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAogICAgIGNvbnN0IExvZ2dlciYgbV9sb2dnZXI7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5
ZXJQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1v
dGVNZWRpYVBsYXllclByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IGNjMTM3YWRlNTE5YmM2ZDQ3MDc1
NmNmNTcwMWQwNDY2ZTE1ZGQ3N2QuLmRhNzFkZTVlMWZjZWQ4YmQ5OTA5NmFhYzk1ZWZjZTMyMzdj
ZjU4MWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVN
ZWRpYVBsYXllclByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5Lm1lc3NhZ2VzLmluCkBAIC0xMjUsOCArMTI1
LDggQEAgbWVzc2FnZXMgLT4gUmVtb3RlTWVkaWFQbGF5ZXJQcm94eSBOb3RSZWZDb3VudGVkIHsK
ICNpZiBQTEFURk9STShDT0NPQSkKICAgICBOYXRpdmVJbWFnZUZvckN1cnJlbnRUaW1lKCkgLT4g
KHN0ZDo6b3B0aW9uYWw8TWFjaFNlbmRSaWdodD4gc2VuZFJpZ2h0LCBXZWJDb3JlOjpEZXN0aW5h
dGlvbkNvbG9yU3BhY2UgY29sb3JTcGFjZSkgU3luY2hyb25vdXMKICAgICBDb2xvclNwYWNlKCkg
LT4gKFdlYkNvcmU6OkRlc3RpbmF0aW9uQ29sb3JTcGFjZSBjb2xvclNwYWNlKSBTeW5jaHJvbm91
cwotICAgIFZpZGVvRnJhbWVGb3JDdXJyZW50VGltZUlmQ2hhbmdlZCgpIC0+IChzdGQ6Om9wdGlv
bmFsPFJlZlB0cjxXZWJDb3JlOjpWaWRlb0ZyYW1lQ1Y+PiB2aWRlb0ZyYW1lLCBib29sIGNoYW5n
ZWQpIFN5bmNocm9ub3VzCiAjZW5kaWYKKyAgICBWaWRlb0ZyYW1lRm9yQ3VycmVudFRpbWVJZkNo
YW5nZWQoKSAtPiAoc3RkOjpvcHRpb25hbDxXZWJLaXQ6OlJlbW90ZVZpZGVvRnJhbWVQcm94eTo6
UHJvcGVydGllcz4gdmlkZW9GcmFtZSwgYm9vbCBjaGFuZ2VkKSBTeW5jaHJvbm91cwogCiAgICAg
UGxheUF0SG9zdFRpbWUoTW9ub3RvbmljVGltZSB0aW1lKQogICAgIFBhdXNlQXRIb3N0VGltZShN
b25vdG9uaWNUaW1lIHRpbWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
bWVkaWEvUmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXAuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL21lZGlhL1JlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwLmNwcAppbmRleCBmODdiOTMx
ZDk3MjFlNTc0ZjMxMzk5NzY3ZWJlZTg0ZDNhNzNmNmViLi44NDU2MjQ4OGY0YTI2YWUwMGM5MDE3
NTlmYWVkYzE1YWIwYWYxYWYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
bWVkaWEvUmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXAuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcC5jcHAKQEAgLTI2LDEz
ICsyNiwxNSBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlJlbW90ZVZpZGVvRnJh
bWVPYmplY3RIZWFwLmgiCiAKLSNpZiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIEVOQUJMRShNRURJ
QV9TVFJFQU0pCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBFTkFCTEUoVklERU8pCiAjaW5j
bHVkZSAiR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oIgogI2luY2x1ZGUgIlJlbW90ZVZpZGVv
RnJhbWVPYmplY3RIZWFwTWVzc2FnZXMuaCIKICNpbmNsdWRlICJSZW1vdGVWaWRlb0ZyYW1lT2Jq
ZWN0SGVhcFByb3h5UHJvY2Vzc29yTWVzc2FnZXMuaCIKICNpbmNsdWRlICJSZW1vdGVWaWRlb0Zy
YW1lUHJveHkuaCIKIAorI2lmIFBMQVRGT1JNKENPQ09BKQogI2luY2x1ZGUgPHBhbC9jZi9Db3Jl
TWVkaWFTb2Z0TGluay5oPgorI2VuZGlmCiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCkBAIC01Nyw3
ICs1OSw5IEBAIFJlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwOjp+UmVtb3RlVmlkZW9GcmFtZU9i
amVjdEhlYXAoKQogdm9pZCBSZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcDo6c3RvcExpc3Rlbmlu
Z0ZvcklQQyhSZWY8UmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXA+JiYgcmVmRnJvbUNvbm5lY3Rp
b24pCiB7CiAgICAgYXNzZXJ0SXNDdXJyZW50KG1fY29uc3VtZVRocmVhZCk7CisjaWYgUExBVEZP
Uk0oQ09DT0EpCiAgICAgbV9zaGFyZWRWaWRlb0ZyYW1lV3JpdGVyLmRpc2FibGUoKTsKKyNlbmRp
ZgogCiAgICAgaWYgKGF1dG8qIGdwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MgPSBzdGQ6OmV4Y2hh
bmdlKG1fZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2VzcywgbnVsbHB0cikpIHsKICAgICAgICAgZ3B1
Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy0+bWVzc2FnZVJlY2VpdmVyTWFwKCkucmVtb3ZlTWVzc2Fn
ZVJlY2VpdmVyKE1lc3NhZ2VzOjpSZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcDo6bWVzc2FnZVJl
Y2VpdmVyTmFtZSgpKTsKQEAgLTgyLDYgKzg2LDcgQEAgdm9pZCBSZW1vdGVWaWRlb0ZyYW1lT2Jq
ZWN0SGVhcDo6cmVsZWFzZVZpZGVvRnJhbWUoUmVtb3RlVmlkZW9GcmFtZVdyaXRlUmVmZXJlbmMK
ICAgICByZXRpcmVSZW1vdmUoV1RGTW92ZSh3cml0ZSkpOwogfQogCisjaWYgUExBVEZPUk0oQ09D
T0EpCiB2b2lkIFJlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwOjpnZXRWaWRlb0ZyYW1lQnVmZmVy
KFJlbW90ZVZpZGVvRnJhbWVSZWFkUmVmZXJlbmNlJiYgcmVhZCkKIHsKICAgICBhdXRvIGlkZW50
aWZpZXIgPSByZWFkLmlkZW50aWZpZXIoKTsKQEAgLTk5LDYgKzEwNCw3IEBAIHZvaWQgUmVtb3Rl
VmlkZW9GcmFtZU9iamVjdEhlYXA6OmdldFZpZGVvRnJhbWVCdWZmZXIoUmVtb3RlVmlkZW9GcmFt
ZVJlYWRSZWZlcmVuCiAgICAgKTsKICAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlJl
bW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwUHJveHlQcm9jZXNzb3I6Ok5ld1ZpZGVvRnJhbWVCdWZm
ZXIgeyBpZGVudGlmaWVyIH0sIDApOwogfQorI2VuZGlmCiAKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwLmgg
Yi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlVmlkZW9GcmFtZU9iamVjdEhl
YXAuaAppbmRleCBhZDBjYjNiOTYxODQ2YzAxNDU3OWFiZmUzN2I3ZDE3Y2VlZTQ0NmZiLi4wZDE0
Y2ExNjViMGRhMDhkMTU0ZTJmMGJlZmZkZWZiNDkxOTg1ZTZiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXAuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlVmlkZW9GcmFtZU9iamVjdEhl
YXAuaApAQCAtMjUsMTMgKzI1LDE2IEBACiAKICNwcmFnbWEgb25jZQogCi0jaWYgRU5BQkxFKEdQ
VV9QUk9DRVNTKSAmJiBFTkFCTEUoTUVESUFfU1RSRUFNKQorI2lmIEVOQUJMRShHUFVfUFJPQ0VT
UykgJiYgRU5BQkxFKFZJREVPKQogI2luY2x1ZGUgIlJlbW90ZVZpZGVvRnJhbWVJZGVudGlmaWVy
LmgiCi0jaW5jbHVkZSAiU2hhcmVkVmlkZW9GcmFtZS5oIgogI2luY2x1ZGUgIlRocmVhZFNhZmVP
YmplY3RIZWFwLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9NZWRpYVNhbXBsZS5oPgogI2luY2x1ZGUg
PHd0Zi9UaHJlYWRBc3NlcnRpb25zLmg+CiAKKyNpZiBQTEFURk9STShDT0NPQSkKKyNpbmNsdWRl
ICJTaGFyZWRWaWRlb0ZyYW1lLmgiCisjZW5kaWYKKwogbmFtZXNwYWNlIFdlYktpdCB7CiBjbGFz
cyBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOwogCkBAIC01NywxMiArNjAsMTYgQEAgcHJpdmF0
ZToKIAogICAgIC8vIE1lc3NhZ2VzLgogICAgIHZvaWQgcmVsZWFzZVZpZGVvRnJhbWUoUmVtb3Rl
VmlkZW9GcmFtZVdyaXRlUmVmZXJlbmNlJiYpOworI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIHZv
aWQgZ2V0VmlkZW9GcmFtZUJ1ZmZlcihSZW1vdGVWaWRlb0ZyYW1lUmVhZFJlZmVyZW5jZSYmKTsK
KyNlbmRpZgogCiAgICAgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyogbV9ncHVDb25uZWN0aW9u
VG9XZWJQcm9jZXNzIFdURl9HVUFSREVEX0JZX0xPQ0sobV9jb25zdW1lVGhyZWFkKTsKICAgICBj
b25zdCBSZWY8SVBDOjpDb25uZWN0aW9uPiBtX2Nvbm5lY3Rpb247CiAgICAgVGhyZWFkQXNzZXJ0
aW9uIG1fY29uc3VtZVRocmVhZCBOT19VTklRVUVfQUREUkVTUzsKKyNpZiBQTEFURk9STShDT0NP
QSkKICAgICBTaGFyZWRWaWRlb0ZyYW1lV3JpdGVyIG1fc2hhcmVkVmlkZW9GcmFtZVdyaXRlcjsK
KyNlbmRpZgogfTsKIAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVk
aWEvUmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXAubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXAubWVzc2FnZXMuaW4K
aW5kZXggMWQzZDI0M2UxNTE3NWVmZjljOGQ3ZWZjYmJiZDBiMTUyZGU1Y2E2Mi4uMWY4YmFlZGRl
ZTY1ZTdhNTdhMjRkMGNlNWZlZTFkY2VmNTRiY2YwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwLm1lc3NhZ2VzLmlu
CisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVWaWRlb0ZyYW1lT2Jq
ZWN0SGVhcC5tZXNzYWdlcy5pbgpAQCAtMjEsOSArMjEsMTEgQEAKICMgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgog
IyBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAKLSNpZiBFTkFCTEUoR1BVX1BST0NF
U1MpICYmIEVOQUJMRShNRURJQV9TVFJFQU0pCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBF
TkFCTEUoVklERU8pCiBtZXNzYWdlcyAtPiBSZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcCBOb3RS
ZWZDb3VudGVkIHsKKyNpZiBQTEFURk9STShDT0NPQSkKICAgICBHZXRWaWRlb0ZyYW1lQnVmZmVy
KFdlYktpdDo6UmVtb3RlVmlkZW9GcmFtZVJlYWRSZWZlcmVuY2UgaWRlbnRpZmllcikKKyNlbmRp
ZgogICAgIFJlbGVhc2VWaWRlb0ZyYW1lKFdlYktpdDo6UmVtb3RlVmlkZW9GcmFtZVdyaXRlUmVm
ZXJlbmNlIGlkZW50aWZpZXIpCiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL1RocmVhZFNhZmVPYmplY3RIZWFwLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9UaHJl
YWRTYWZlT2JqZWN0SGVhcC5oCmluZGV4IGM1YzU4NzJkYWFjOTk0ZmU0MWY1YjZiOTEzYzI3Mzhh
NGZkYjQzYzUuLjE1ZGM2NTcyMjAyYzkwMGYxOWY3NjhkMDQzNDU5M2Q3YWU4ZmIxMzUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1RocmVhZFNhZmVPYmplY3RIZWFwLmgKKysrIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvVGhyZWFkU2FmZU9iamVjdEhlYXAuaApAQCAtMjUsNyArMjUs
NiBAQAogCiAjcHJhZ21hIG9uY2UKIAotI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgRU5BQkxF
KE1FRElBX1NUUkVBTSkKICNpbmNsdWRlICJJUENUZXN0ZXIuaCIKICNpbmNsdWRlICJPYmplY3RJ
ZGVudGlmaWVyUmVmZXJlbmNlVHJhY2tlci5oIgogI2luY2x1ZGUgPHd0Zi9Db25kaXRpb24uaD4K
QEAgLTIwMCw0ICsxOTksMyBAQCB2b2lkIFRocmVhZFNhZmVPYmplY3RIZWFwPElkZW50aWZpZXIs
IEhlbGRUeXBlPjo6YWRkKElkZW50aWZpZXIgaWRlbnRpZmllciwgSGVsZAogfQogCiB9Ci0jZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc0Nv
bm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9HUFVQcm9jZXNzQ29u
bmVjdGlvbi5jcHAKaW5kZXggNDRhOGNlMGJhZmY5YzMwNjVjNWQ1NGUxNThkYzlhMDExZTRkMjM5
Zi4uNjgzMjI0M2M4NTFmMGNkYWQ0YmZkMDVjMDA2YWVhMDMwZWQ4YzY1NyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9HUFVQcm9jZXNzQ29ubmVjdGlvbi5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9HUFVQcm9jZXNzQ29ubmVjdGlvbi5jcHAK
QEAgLTc2LDcgKzc2LDcgQEAKICNpbmNsdWRlICJVc2VyTWVkaWFDYXB0dXJlTWFuYWdlck1lc3Nh
Z2VzLmgiCiAjZW5kaWYKIAotI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisjaWYgRU5BQkxFKFZJ
REVPKQogI2luY2x1ZGUgIlJlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwUHJveHkuaCIKICNpbmNs
dWRlICJSZW1vdGVWaWRlb0ZyYW1lUHJveHkuaCIKICNlbmRpZgpAQCAtMTY2LDcgKzE2Niw3IEBA
IHZvaWQgR1BVUHJvY2Vzc0Nvbm5lY3Rpb246OnJlc2V0QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVu
ZGVyZXJJbnRlcm5hbFVuaXQoQXVkaW9NCiB9CiAjZW5kaWYKIAotI2lmIEVOQUJMRShNRURJQV9T
VFJFQU0pCisjaWYgRU5BQkxFKFZJREVPKQogUmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXBQcm94
eSYgR1BVUHJvY2Vzc0Nvbm5lY3Rpb246OnZpZGVvRnJhbWVPYmplY3RIZWFwUHJveHkoKQogewog
ICAgIGlmICghbV92aWRlb0ZyYW1lT2JqZWN0SGVhcFByb3h5KQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9HUFVQcm9jZXNzQ29ubmVjdGlvbi5oIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0dQVS9HUFVQcm9jZXNzQ29ubmVjdGlvbi5oCmluZGV4IDllYWNlNmJi
NzlhNzZiNzU5MmViMzlmMjJhNmJhZWIxMTUyZWU1MWUuLjRmODhlMWNkZTA1ZjMzNWY5NWM3M2U1
ZjljMDM1ZGVmYWI0YmI0NmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvR1BVUHJvY2Vzc0Nvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL0dQVVByb2Nlc3NDb25uZWN0aW9uLmgKQEAgLTU3LDcgKzU3LDcgQEAgc3RydWN0IEdQVVBy
b2Nlc3NDb25uZWN0aW9uSW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzOwogc3RydWN0IE92ZXJyaWRl
U2NyZWVuRGF0YUZvclRlc3Rpbmc7CiBzdHJ1Y3QgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVyczsK
IAotI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisjaWYgRU5BQkxFKFZJREVPKQogY2xhc3MgUmVt
b3RlVmlkZW9GcmFtZU9iamVjdEhlYXBQcm94eTsKICNlbmRpZgogCkBAIC04Miw3ICs4Miw3IEBA
IHB1YmxpYzoKICAgICBTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyJiBzYW1wbGVCdWZm
ZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyKCk7CiAgICAgdm9pZCByZXNldEF1ZGlvTWVkaWFTdHJlYW1U
cmFja1JlbmRlcmVySW50ZXJuYWxVbml0KEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySW50
ZXJuYWxVbml0SWRlbnRpZmllcik7CiAjZW5kaWYKLSNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQor
I2lmIEVOQUJMRShWSURFTykKICAgICBSZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcFByb3h5JiB2
aWRlb0ZyYW1lT2JqZWN0SGVhcFByb3h5KCk7CiAjZW5kaWYKIApAQCAtMTQ4LDcgKzE0OCw3IEBA
IHByaXZhdGU6CiAjaWYgUExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAg
ICAgc3RkOjp1bmlxdWVfcHRyPFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXI+IG1fc2Ft
cGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlcjsKICNlbmRpZgotI2lmIEVOQUJMRShNRURJQV9T
VFJFQU0pCisjaWYgRU5BQkxFKFZJREVPKQogICAgIFJlZlB0cjxSZW1vdGVWaWRlb0ZyYW1lT2Jq
ZWN0SGVhcFByb3h5PiBtX3ZpZGVvRnJhbWVPYmplY3RIZWFwUHJveHk7CiAjZW5kaWYKICNpZiBQ
TEFURk9STShDT0NPQSkgJiYgRU5BQkxFKFdFQl9BVURJTykKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94
eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUdyYXBo
aWNzQ29udGV4dEdMUHJveHkuY3BwCmluZGV4IGM4OTZhYjdmZGJiNmYyODhjZTNjNjI0MmU0ZWIw
ZGVmZmRjNDA1MTYuLjNmYjI4YTZkYjg0ZmZlMTVjYzAzMzVjM2RkMzk2OGY5MTFlMGU3YjAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlR3Jh
cGhpY3NDb250ZXh0R0xQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5LmNwcApAQCAtMzIsMTEgKzMy
LDExIEBACiAjaW5jbHVkZSAiR1BVUHJvY2Vzc0Nvbm5lY3Rpb24uaCIKICNpbmNsdWRlICJSZW1v
dGVHcmFwaGljc0NvbnRleHRHTE1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiUmVtb3RlR3JhcGhpY3ND
b250ZXh0R0xQcm94eU1lc3NhZ2VzLmgiCi0jaW5jbHVkZSAiUmVtb3RlVmlkZW9GcmFtZU9iamVj
dEhlYXBQcm94eS5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKICNpbmNsdWRlIDxXZWJDb3Jl
L0ltYWdlQnVmZmVyLmg+CiAKLSNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorI2lmIEVOQUJMRShW
SURFTykKKyNpbmNsdWRlICJSZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcFByb3h5LmgiCiAjaW5j
bHVkZSAiUmVtb3RlVmlkZW9GcmFtZVByb3h5LmgiCiAjZW5kaWYKIApAQCAtMTgyLDEwICsxODIs
MTUgQEAgUmVmUHRyPFdlYkNvcmU6Ok1lZGlhU2FtcGxlPiBSZW1vdGVHcmFwaGljc0NvbnRleHRH
TFByb3h5OjpwYWludENvbXBvc2l0ZWRSZXN1bHQKIH0KICNlbmRpZgogCisjaWYgRU5BQkxFKFZJ
REVPKQogYm9vbCBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5Ojpjb3B5VGV4dHVyZUZyb21N
ZWRpYShNZWRpYVBsYXllciYgbWVkaWFQbGF5ZXIsIFBsYXRmb3JtR0xPYmplY3QgdGV4dHVyZSwg
R0NHTGVudW0gdGFyZ2V0LCBHQ0dMaW50IGxldmVsLCBHQ0dMZW51bSBpbnRlcm5hbEZvcm1hdCwg
R0NHTGVudW0gZm9ybWF0LCBHQ0dMZW51bSB0eXBlLCBib29sIHByZW11bHRpcGx5QWxwaGEsIGJv
b2wgZmxpcFkpCiB7CisgICAgYXV0byB2aWRlb0ZyYW1lID0gbWVkaWFQbGF5ZXIudmlkZW9GcmFt
ZUZvckN1cnJlbnRUaW1lKCk7CisgICAgLy8gVmlkZW8gaW4gV1Agd2hpbGUgV2ViR0wgaW4gR1BV
UCBpcyBub3Qgc3VwcG9ydGVkLgorICAgIGlmICghdmlkZW9GcmFtZSB8fCAhaXM8UmVtb3RlVmlk
ZW9GcmFtZVByb3h5PigqdmlkZW9GcmFtZSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKICAgICBi
b29sIHJlc3VsdCA9IGZhbHNlOwotICAgIGF1dG8gc2VuZFJlc3VsdCA9IHNlbmRTeW5jKE1lc3Nh
Z2VzOjpSZW1vdGVHcmFwaGljc0NvbnRleHRHTDo6Q29weVRleHR1cmVGcm9tTWVkaWEobWVkaWFQ
bGF5ZXIuaWRlbnRpZmllcigpLCB0ZXh0dXJlLCB0YXJnZXQsIGxldmVsLCBpbnRlcm5hbEZvcm1h
dCwgZm9ybWF0LCB0eXBlLCBwcmVtdWx0aXBseUFscGhhLCBmbGlwWSksIE1lc3NhZ2VzOjpSZW1v
dGVHcmFwaGljc0NvbnRleHRHTDo6Q29weVRleHR1cmVGcm9tTWVkaWE6OlJlcGx5KHJlc3VsdCkp
OworICAgIGF1dG8gc2VuZFJlc3VsdCA9IHNlbmRTeW5jKE1lc3NhZ2VzOjpSZW1vdGVHcmFwaGlj
c0NvbnRleHRHTDo6Q29weVRleHR1cmVGcm9tVmlkZW9GcmFtZShkb3duY2FzdDxSZW1vdGVWaWRl
b0ZyYW1lUHJveHk+KCp2aWRlb0ZyYW1lKS5yZWFkKCksIHRleHR1cmUsIHRhcmdldCwgbGV2ZWws
IGludGVybmFsRm9ybWF0LCBmb3JtYXQsIHR5cGUsIHByZW11bHRpcGx5QWxwaGEsIGZsaXBZKSwg
TWVzc2FnZXM6OlJlbW90ZUdyYXBoaWNzQ29udGV4dEdMOjpDb3B5VGV4dHVyZUZyb21WaWRlb0Zy
YW1lOjpSZXBseShyZXN1bHQpKTsKICAgICBpZiAoIXNlbmRSZXN1bHQpIHsKICAgICAgICAgbWFy
a0NvbnRleHRMb3N0KCk7CiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTE5Myw2ICsxOTgsNyBA
QCBib29sIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHk6OmNvcHlUZXh0dXJlRnJvbU1lZGlh
KE1lZGlhUGxheWVyJiBtZWRpYVBsYXllcgogCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KKyNlbmRp
ZgogCiB2b2lkIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHk6OnN5bnRoZXNpemVHTEVycm9y
KEdDR0xlbnVtIGVycm9yKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dQVS9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5LmggYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHku
aAppbmRleCAzNDRmZTk4NWQ4MDNjZGIyN2NmMWU3MmFkZmI1YjY5YWU2NzBmMDY3Li5mNzY1NDAz
YTU2OTcwYTQ3YTFkM2Y2YzMxM2IwNWI3MDgwMThmMzQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHku
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUdyYXBo
aWNzQ29udGV4dEdMUHJveHkuaApAQCAtNzMsNyArNzMsOSBAQCBwdWJsaWM6CiAjZW5kaWYKICAg
ICB2b2lkIHN5bnRoZXNpemVHTEVycm9yKEdDR0xlbnVtIGVycm9yKSBmaW5hbDsKICAgICBHQ0dM
ZW51bSBnZXRFcnJvcigpIGZpbmFsOworI2lmIEVOQUJMRShWSURFTykKICAgICBib29sIGNvcHlU
ZXh0dXJlRnJvbU1lZGlhKFdlYkNvcmU6Ok1lZGlhUGxheWVyJiwgUGxhdGZvcm1HTE9iamVjdCB0
ZXh0dXJlLCBHQ0dMZW51bSB0YXJnZXQsIEdDR0xpbnQgbGV2ZWwsIEdDR0xlbnVtIGludGVybmFs
Rm9ybWF0LCBHQ0dMZW51bSBmb3JtYXQsIEdDR0xlbnVtIHR5cGUsIGJvb2wgcHJlbXVsdGlwbHlB
bHBoYSwgYm9vbCBmbGlwWSkgZmluYWw7CisjZW5kaWYKICAgICB2b2lkIHNpbXVsYXRlRXZlbnRG
b3JUZXN0aW5nKFNpbXVsYXRlZEV2ZW50Rm9yVGVzdGluZykgZmluYWw7CiAKICAgICAvLyBGdW5j
dGlvbnMgd2l0aCBhIGdlbmVyYXRlZCBpbXBsZW1lbnRhdGlvbi4gVGhpcyBsaXN0IGlzIHVzZWQg
YnkgZ2VuZXJhdGUtZ3B1cC13ZWJnbCBzY3JpcHQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5j
cHAKaW5kZXggYzE5ZjI1NTBhZGIzMGFjNzNhOTYwZGJkZjQ4M2ZiNTg5MGMzZjBiMy4uZWE0ZGNi
Mzc0ZDBjNWI4ZGNiOTEwOTA0ZmZkZGNjMDJhNDJlOTk3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRl
UmVtb3RlLmNwcApAQCAtMTAwNSwxOSArMTAwNSwxNiBAQCBib29sIE1lZGlhUGxheWVyUHJpdmF0
ZVJlbW90ZTo6Y29weVZpZGVvVGV4dHVyZVRvUGxhdGZvcm1UZXh0dXJlKFdlYkNvcmU6OkdyYXBo
aQogCiBSZWZQdHI8V2ViQ29yZTo6VmlkZW9GcmFtZT4gTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3Rl
Ojp2aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWUoKQogewotLy8gRklYTUU6IFRoaXMgd2lsbCBiZSBt
YWRlIGNyb3NzLXBsYXRmb3JtIGFnYWluIHNvb24uIFRoZXJlIGFyZSBubyBvdGhlciBwbGF0Zm9y
bXMgdXNpbmcgdGhpcyBhdCB0aGUgbW9tZW50LgotI2lmIFBMQVRGT1JNKENPQ09BKQotICAgIHN0
ZDo6b3B0aW9uYWw8UmVmUHRyPFdlYkNvcmU6OlZpZGVvRnJhbWVDVj4+IHJlc3VsdDsKKyAgICBz
dGQ6Om9wdGlvbmFsPFJlbW90ZVZpZGVvRnJhbWVQcm94eTo6UHJvcGVydGllcz4gcmVzdWx0Owog
ICAgIGJvb2wgY2hhbmdlZCA9IGZhbHNlOwogICAgIGlmICghY29ubmVjdGlvbigpLnNlbmRTeW5j
KE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVBsYXllclByb3h5OjpWaWRlb0ZyYW1lRm9yQ3VycmVudFRp
bWVJZkNoYW5nZWQoKSwgTWVzc2FnZXM6OlJlbW90ZU1lZGlhUGxheWVyUHJveHk6OlZpZGVvRnJh
bWVGb3JDdXJyZW50VGltZUlmQ2hhbmdlZDo6UmVwbHkocmVzdWx0LCBjaGFuZ2VkKSwgbV9pZCkp
Ci0gICAgICAgIHJldHVybiBtX3ZpZGVvRnJhbWVGb3JDdXJyZW50VGltZTsKKyAgICAgICAgcmV0
dXJuIG51bGxwdHI7CiAgICAgaWYgKGNoYW5nZWQpIHsKICAgICAgICAgaWYgKHJlc3VsdCkKLSAg
ICAgICAgICAgIG1fdmlkZW9GcmFtZUZvckN1cnJlbnRUaW1lID0gV1RGTW92ZSgqcmVzdWx0KTsK
KyAgICAgICAgICAgIG1fdmlkZW9GcmFtZUZvckN1cnJlbnRUaW1lID0gUmVtb3RlVmlkZW9GcmFt
ZVByb3h5OjpjcmVhdGUoY29ubmVjdGlvbigpLCB2aWRlb0ZyYW1lT2JqZWN0SGVhcFByb3h5KCks
IFdURk1vdmUoKnJlc3VsdCkpOwogICAgICAgICBlbHNlCiAgICAgICAgICAgICBtX3ZpZGVvRnJh
bWVGb3JDdXJyZW50VGltZSA9IG51bGxwdHI7CiAgICAgfQotI2VuZGlmCiAgICAgcmV0dXJuIG1f
dmlkZW9GcmFtZUZvckN1cnJlbnRUaW1lOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5oIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuaApp
bmRleCAyOWY5MTJkNGU4Yjg3YjU3YmExNTYyNGE2ZGM1ZTA2YjdjNWMxYjlkLi4zOGVmODg5NzE4
MjAyOTQ0NDAzYzUyZjgzYjk0MjcxNzEyMTE4ZTY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3Rl
LmgKQEAgLTM0LDYgKzM0LDggQEAKICNpbmNsdWRlICJSZW1vdGVNZWRpYVBsYXllclN0YXRlLmgi
CiAjaW5jbHVkZSAiUmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIuaCIKICNpbmNsdWRlICJS
ZW1vdGVNZWRpYVJlc291cmNlUHJveHkuaCIKKyNpbmNsdWRlICJSZW1vdGVWaWRlb0ZyYW1lT2Jq
ZWN0SGVhcFByb3h5LmgiCisjaW5jbHVkZSAiUmVtb3RlVmlkZW9GcmFtZVByb3h5LmgiCiAjaW5j
bHVkZSAiVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZS5oIgogI2luY2x1ZGUgIlRyYWNrUHJpdmF0ZVJl
bW90ZUlkZW50aWZpZXIuaCIKICNpbmNsdWRlICJWaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZS5oIgpA
QCAtNDEzLDYgKzQxNSw3IEBAIHByaXZhdGU6CiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgdm9p
ZCBwdXNoVmlkZW9GcmFtZU1ldGFkYXRhKFdlYkNvcmU6OlZpZGVvRnJhbWVNZXRhZGF0YSYmLCBS
ZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4mJik7CiAjZW5kaWYKKyAgICBSZW1vdGVWaWRlb0Zy
YW1lT2JqZWN0SGVhcFByb3h5JiB2aWRlb0ZyYW1lT2JqZWN0SGVhcFByb3h5KCkgY29uc3QgeyBy
ZXR1cm4gbV9tYW5hZ2VyLmdwdVByb2Nlc3NDb25uZWN0aW9uKCkudmlkZW9GcmFtZU9iamVjdEhl
YXBQcm94eSgpOyB9CiAKICAgICBXZWFrUHRyPFdlYkNvcmU6Ok1lZGlhUGxheWVyPiBtX3BsYXll
cjsKICAgICBSZWY8V2ViQ29yZTo6UGxhdGZvcm1NZWRpYVJlc291cmNlTG9hZGVyPiBtX21lZGlh
UmVzb3VyY2VMb2FkZXI7CkBAIC00NjEsNyArNDY0LDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1f
d2FpdGluZ0ZvcktleSB7IGZhbHNlIH07CiAgICAgYm9vbCBtX3RpbWVJc1Byb2dyZXNzaW5nIHsg
ZmFsc2UgfTsKICAgICBib29sIG1fcmVuZGVyaW5nQ2FuQmVBY2NlbGVyYXRlZCB7IGZhbHNlIH07
Ci0gICAgUmVmUHRyPFdlYkNvcmU6OlZpZGVvRnJhbWU+IG1fdmlkZW9GcmFtZUZvckN1cnJlbnRU
aW1lOworICAgIFJlZlB0cjxSZW1vdGVWaWRlb0ZyYW1lUHJveHk+IG1fdmlkZW9GcmFtZUZvckN1
cnJlbnRUaW1lOwogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIFJldGFpblB0cjxDVlBpeGVsQnVm
ZmVyUmVmPiBtX3BpeGVsQnVmZmVyR2F0aGVyZWRXaXRoVmlkZW9GcmFtZU1ldGFkYXRhOwogICAg
IHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpQaXhlbEJ1ZmZlckNvbmZvcm1lckNWPiBtX3BpeGVs
QnVmZmVyQ29uZm9ybWVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS9tZWRpYS9SZW1vdGVWaWRlb0ZyYW1lSWRlbnRpZmllci5oIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVWaWRlb0ZyYW1lSWRlbnRpZmllci5oCmluZGV4IGZiMDAx
ZGE3NDgyMzlmMzhkZDllZDAzMjVjNTliN2I4M2M5MjU4NzMuLmY1ODliN2RiZGVhOTM5Yzk0MDk3
ODRjMGZiMGZmZjMyYWRkNTM4MWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9HUFUvbWVkaWEvUmVtb3RlVmlkZW9GcmFtZUlkZW50aWZpZXIuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZVZpZGVvRnJhbWVJZGVudGlmaWVyLmgKQEAg
LTI1LDcgKzI1LDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKLSNpZiBFTkFCTEUoR1BVX1BST0NFU1Mp
ICYmIEVOQUJMRShNRURJQV9TVFJFQU0pCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBFTkFC
TEUoVklERU8pCiAKICNpbmNsdWRlICJPYmplY3RJZGVudGlmaWVyUmVmZXJlbmNlVHJhY2tlci5o
IgogI2luY2x1ZGUgPFdlYkNvcmUvUHJvY2Vzc1F1YWxpZmllZC5oPgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVWaWRlb0ZyYW1lUHJveHkuY3Bw
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVWaWRlb0ZyYW1lUHJv
eHkuY3BwCmluZGV4IGQ4MzdhNDZiYWYxNDA3NzRlYTZlZGQ4MjQ5Y2RlNjIzMjRiMmQ0ODIuLmQx
ODAzNGI0NjMxMWFkMzg5YTZhYjZhODk1ZjFjYTJiMTgxNzk5MTggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlVmlkZW9GcmFtZVByb3h5LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZVZpZGVvRnJhbWVQ
cm94eS5jcHAKQEAgLTI2LDEzICsyNiwxNSBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1
ZGUgIlJlbW90ZVZpZGVvRnJhbWVQcm94eS5oIgogCi0jaWYgRU5BQkxFKEdQVV9QUk9DRVNTKSAm
JiBFTkFCTEUoTUVESUFfU1RSRUFNKQorI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgRU5BQkxF
KFZJREVPKQogI2luY2x1ZGUgIkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCIKICNpbmNsdWRl
ICJSZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcE1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiUmVtb3Rl
VmlkZW9GcmFtZU9iamVjdEhlYXBQcm94eS5oIgotI2luY2x1ZGUgPFdlYkNvcmUvUmVhbHRpbWVJ
bmNvbWluZ1ZpZGVvU291cmNlQ29jb2EuaD4KIAogI2lmIFBMQVRGT1JNKENPQ09BKQorI2luY2x1
ZGUgPFdlYkNvcmUvQ1ZVdGlsaXRpZXMuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1JlYWx0aW1lSW5j
b21pbmdWaWRlb1NvdXJjZUNvY29hLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9WaWRlb0ZyYW1lQ1Yu
aD4KICNpbmNsdWRlIDx3dGYvdGhyZWFkcy9CaW5hcnlTZW1hcGhvcmUuaD4KICNlbmRpZgogCkBA
IC0xMTksNiArMTIxLDE1IEBAIENWUGl4ZWxCdWZmZXJSZWYgUmVtb3RlVmlkZW9GcmFtZVByb3h5
OjpwaXhlbEJ1ZmZlcigpIGNvbnN0CiAgICAgfQogICAgIHJldHVybiBtX3BpeGVsQnVmZmVyLmdl
dCgpOwogfQorCitSZWZQdHI8V2ViQ29yZTo6VmlkZW9GcmFtZUNWPiBSZW1vdGVWaWRlb0ZyYW1l
UHJveHk6OmFzVmlkZW9GcmFtZUNWKCkKK3sKKyAgICBhdXRvIGJ1ZmZlciA9IHBpeGVsQnVmZmVy
KCk7CisgICAgaWYgKCFidWZmZXIpCisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIHJldHVy
biBWaWRlb0ZyYW1lQ1Y6OmNyZWF0ZShtX3ByZXNlbnRhdGlvblRpbWUsIG1faXNNaXJyb3JlZCwg
bV9yb3RhdGlvbiwgUmV0YWluUHRyIHsgYnVmZmVyIH0pOworfQorCiAjZW5kaWYKIAogVGV4dFN0
cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywgY29uc3QgUmVtb3RlVmlkZW9GcmFtZVBy
b3h5OjpQcm9wZXJ0aWVzJiBwcm9wZXJ0aWVzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVWaWRlb0ZyYW1lUHJveHkuaCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlVmlkZW9GcmFtZVByb3h5LmgKaW5kZXggMTY1
NzMwNzI5ODkzNTAwNWViMmYzMzRjZjZhMjk0NDU2NTBmMTVlMi4uMGVlYzdjYzRiYjU2MTZiZDJl
YzJmY2Y2OGE5YmRiOTNkNmQ2MjAzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS9tZWRpYS9SZW1vdGVWaWRlb0ZyYW1lUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZVZpZGVvRnJhbWVQcm94eS5oCkBAIC0yNSw3ICsy
NSw3IEBACiAKICNwcmFnbWEgb25jZQogCi0jaWYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBFTkFC
TEUoTUVESUFfU1RSRUFNKQorI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgRU5BQkxFKFZJREVP
KQogCiAjaW5jbHVkZSAiR1BVUHJvY2Vzc0Nvbm5lY3Rpb24uaCIKICNpbmNsdWRlICJSZW1vdGVW
aWRlb0ZyYW1lSWRlbnRpZmllci5oIgpAQCAtMzYsNiArMzYsMTIgQEAgY2xhc3MgQ29ubmVjdGlv
bjsKIGNsYXNzIERlY29kZXI7CiB9CiAKK25hbWVzcGFjZSBXZWJDb3JlIHsKKyNpZiBQTEFURk9S
TShDT0NPQSkKK2NsYXNzIFZpZGVvRnJhbWVDVjsKKyNlbmRpZgorfQorCiBuYW1lc3BhY2UgV2Vi
S2l0IHsKIAogY2xhc3MgR1BVUHJvY2Vzc0Nvbm5lY3Rpb247CkBAIC04MCwxNiArODYsMTUgQEAg
cHVibGljOgogICAgIC8vIFdlYkNvcmU6OlZpZGVvRnJhbWUgb3ZlcnJpZGVzLgogICAgIFdlYkNv
cmU6OkZsb2F0U2l6ZSBwcmVzZW50YXRpb25TaXplKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9z
aXplOyB9CiAgICAgdWludDMyX3QgdmlkZW9QaXhlbEZvcm1hdCgpIGNvbnN0IGZpbmFsOworICAg
IGJvb2wgaXNSZW1vdGVQcm94eSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KICNpZiBQ
TEFURk9STShDT0NPQSkKICAgICBDVlBpeGVsQnVmZmVyUmVmIHBpeGVsQnVmZmVyKCkgY29uc3Qg
ZmluYWw7CisgICAgUmVmUHRyPFdlYkNvcmU6OlZpZGVvRnJhbWVDVj4gYXNWaWRlb0ZyYW1lQ1Yo
KSBmaW5hbDsKICNlbmRpZgotICAgIGJvb2wgaXNSZW1vdGVQcm94eSgpIGNvbnN0IGZpbmFsIHsg
cmV0dXJuIHRydWU7IH0KIAogcHJpdmF0ZToKICAgICBSZW1vdGVWaWRlb0ZyYW1lUHJveHkoSVBD
OjpDb25uZWN0aW9uJiwgUmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXBQcm94eSYsIFByb3BlcnRp
ZXMmJik7CiAKLQotCiAgICAgY29uc3QgUmVmPElQQzo6Q29ubmVjdGlvbj4gbV9jb25uZWN0aW9u
OwogICAgIFJlbW90ZVZpZGVvRnJhbWVSZWZlcmVuY2VUcmFja2VyIG1fcmVmZXJlbmNlVHJhY2tl
cjsKICAgICBjb25zdCBXZWJDb3JlOjpJbnRTaXplIG1fc2l6ZTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlVmlkZW9GcmFtZVByb3h5SWRlbnRp
Zmllci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVWaWRlb0Zy
YW1lUHJveHlJZGVudGlmaWVyLmgKaW5kZXggNDc5MmMwNDg2NTBkMGNhMjY0NjAwMDcyMzQ2NzAz
MjgyZTcyYTRkMC4uNWNlN2FmMTU4NDNhN2E4ZjI0NmRjOTdlODIxNGY3OWQ1Njc2ZjhkYyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVWaWRlb0Zy
YW1lUHJveHlJZGVudGlmaWVyLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9t
ZWRpYS9SZW1vdGVWaWRlb0ZyYW1lUHJveHlJZGVudGlmaWVyLmgKQEAgLTI1LDcgKzI1LDcgQEAK
IAogI3ByYWdtYSBvbmNlCiAKLSNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorI2lmIEVOQUJMRShH
UFVfUFJPQ0VTUykgJiYgRU5BQkxFKFZJREVPKQogCiAjaW5jbHVkZSAiT2JqZWN0SWRlbnRpZmll
clJlZmVyZW5jZVRyYWNrZXIuaCIKICNpbmNsdWRlIDxXZWJDb3JlL1JlbW90ZVZpZGVvRnJhbWVJ
ZGVudGlmaWVyLmg+CkBAIC0zOSw0ICszOSw0IEBAIHVzaW5nIFJlbW90ZVZpZGVvRnJhbWVSZWZl
cmVuY2VUcmFja2VyID0gT2JqZWN0SWRlbnRpZmllclJlZmVyZW5jZVRyYWNrZXI8V2ViQ29yCiAK
IH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCi0jZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NUUkVBTSkK
KyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMv
TWVkaWFSZWNvcmRlclByaXZhdGUuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93
ZWJydGMvTWVkaWFSZWNvcmRlclByaXZhdGUuY3BwCmluZGV4IDkxODBkMWNhNzJkMDFlMzIyZTdj
YTRkZTljODM2ZDY4ZWNjNmExYzMuLmVhNDE0MjU2YmYwYmVjYTE3MTFhMTVmNDBkNDFhNmQ1ZmM2
YzI4MzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL01l
ZGlhUmVjb3JkZXJQcml2YXRlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BV
L3dlYnJ0Yy9NZWRpYVJlY29yZGVyUHJpdmF0ZS5jcHAKQEAgLTM1LDYgKzM1LDcgQEAKICNpbmNs
dWRlICJSZW1vdGVWaWRlb0ZyYW1lUHJveHkuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCiAj
aW5jbHVkZSA8V2ViQ29yZS9DQVJpbmdCdWZmZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0NWVXRp
bGl0aWVzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9NZWRpYVN0cmVhbVByaXZhdGUuaD4KICNpbmNs
dWRlIDxXZWJDb3JlL01lZGlhU3RyZWFtVHJhY2tQcml2YXRlLmg+CiAjaW5jbHVkZSA8V2ViQ29y
ZS9SZWFsdGltZUluY29taW5nVmlkZW9Tb3VyY2VDb2NvYS5oPgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvUmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXBQ
cm94eS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvUmVtb3RlVmlkZW9G
cmFtZU9iamVjdEhlYXBQcm94eS5oCmluZGV4IDExYmRkMWY2NTYxMmNiNjY0NjAwMDFjOTM1NjBk
Y2QxNDFkOTczNjkuLmQ1ZTVlZDMxMGEyNDMwOTQ2ODFmM2Q3Nzc5YmM0OGUyNWJlN2MxZTIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL1JlbW90ZVZpZGVv
RnJhbWVPYmplY3RIZWFwUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BV
L3dlYnJ0Yy9SZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcFByb3h5LmgKQEAgLTI1LDEyICsyNSwy
MyBAQAogCiAjcHJhZ21hIG9uY2UKIAotI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pICYmIEVOQUJM
RShHUFVfUFJPQ0VTUykKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIEVOQUJMRShWSURFTykK
IAorI2luY2x1ZGUgPHd0Zi9SZWYuaD4KKyNpbmNsdWRlIDx3dGYvVGhyZWFkU2FmZVJlZkNvdW50
ZWQuaD4KKworI2lmIFBMQVRGT1JNKENPQ09BKQogI2luY2x1ZGUgIlJlbW90ZVZpZGVvRnJhbWVP
YmplY3RIZWFwUHJveHlQcm9jZXNzb3IuaCIKKyNlbmRpZgogCiBuYW1lc3BhY2UgV2ViS2l0IHsK
IAorY2xhc3MgR1BVUHJvY2Vzc0Nvbm5lY3Rpb247CisKKyNpZiBQTEFURk9STShDT0NPQSkKK2Ns
YXNzIFJlbW90ZVZpZGVvRnJhbWVQcm94eTsKKyNlbmRpZgorCiAvLyBXcmFwcGVyIGFyb3VuZCBS
ZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcFByb3h5UHJvY2Vzc29yIHRoYXQgd2lsbCBhbHdheXMg
YmUgZGVzdHJvZXlkIG9uIG1haW4gdGhyZWFkLgogY2xhc3MgUmVtb3RlVmlkZW9GcmFtZU9iamVj
dEhlYXBQcm94eSA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxSZW1vdGVWaWRlb0ZyYW1l
T2JqZWN0SGVhcFByb3h5LCBXVEY6OkRlc3RydWN0aW9uVGhyZWFkOjpNYWluUnVuTG9vcD4gewog
cHVibGljOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMv
UmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXBQcm94eVByb2Nlc3Nvci5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9SZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcFByb3h5
UHJvY2Vzc29yLmNwcAppbmRleCBiMWNhNGM3YmM2ZTQzODM5MmZhZTE2NWJhNzVlNmY4MzA3ZTU1
YzIxLi5mMjFkMTE4YzgyMDIyMmJhY2NkMTJmN2ZmMGNhNjIxZWY0ODFiYzRkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9SZW1vdGVWaWRlb0ZyYW1lT2Jq
ZWN0SGVhcFByb3h5UHJvY2Vzc29yLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL3dlYnJ0Yy9SZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcFByb3h5UHJvY2Vzc29yLmNwcApA
QCAtMjYsMTAgKzI2LDExIEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiUmVtb3Rl
VmlkZW9GcmFtZU9iamVjdEhlYXBQcm94eS5oIgogCi0jaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkg
JiYgUExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShHUFVfUFJPQ0VTUykKKyNpZiBQTEFURk9STShD
T0NPQSkgJiYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBFTkFCTEUoVklERU8pCiAKICNpbmNsdWRl
ICJSZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcE1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiUmVtb3Rl
VmlkZW9GcmFtZU9iamVjdEhlYXBQcm94eVByb2Nlc3Nvck1lc3NhZ2VzLmgiCisjaW5jbHVkZSAi
UmVtb3RlVmlkZW9GcmFtZVByb3h5LmgiCiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9SZW1vdGVWaWRlb0ZyYW1l
T2JqZWN0SGVhcFByb3h5UHJvY2Vzc29yLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BV
L3dlYnJ0Yy9SZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcFByb3h5UHJvY2Vzc29yLmgKaW5kZXgg
OGY3Yzc4YmJjODQwOTIyNTdlNTYyZGI0MjZmOGVmMzcwOTViMmMzMS4uZjBlNzZmM2JhNGE0NTE1
ZjJjYTBhM2M1ZTY0YzY1Yzg5MjY2ZmYyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0dQVS93ZWJydGMvUmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXBQcm94eVByb2Nlc3Nv
ci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL1JlbW90ZVZpZGVv
RnJhbWVPYmplY3RIZWFwUHJveHlQcm9jZXNzb3IuaApAQCAtMjUsMTMgKzI1LDE0IEBACiAKICNw
cmFnbWEgb25jZQogCi0jaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkgJiYgUExBVEZPUk0oQ09DT0Ep
ICYmIEVOQUJMRShHUFVfUFJPQ0VTUykKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIFBMQVRG
T1JNKENPQ09BKSAmJiBFTkFCTEUoVklERU8pCiAKICNpbmNsdWRlICJDb25uZWN0aW9uLmgiCiAj
aW5jbHVkZSAiR1BVUHJvY2Vzc0Nvbm5lY3Rpb24uaCIKICNpbmNsdWRlICJNZXNzYWdlUmVjZWl2
ZXIuaCIKICNpbmNsdWRlICJSZW1vdGVWaWRlb0ZyYW1lSWRlbnRpZmllci5oIgogI2luY2x1ZGUg
IlNoYXJlZFZpZGVvRnJhbWUuaCIKKwogI2luY2x1ZGUgPHd0Zi9GdW5jdGlvbi5oPgogI2luY2x1
ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL0xvY2suaD4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL1JlbW90ZVZpZGVvRnJhbWVPYmplY3RI
ZWFwUHJveHlQcm9jZXNzb3IubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL3dlYnJ0Yy9SZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcFByb3h5UHJvY2Vzc29yLm1lc3Nh
Z2VzLmluCmluZGV4IGFmYjkzNjQ5NWFiZTIyYWY2ZTdjZTE0YWNhNzkwNzk5YWFmYTc3YWQuLjFk
NTU1MzZkZDhhNDU4Y2JkNGIxNTgzZTJhZTEwMTQxMTQ2OTdhMTIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL1JlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFw
UHJveHlQcm9jZXNzb3IubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dQVS93ZWJydGMvUmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXBQcm94eVByb2Nlc3Nvci5tZXNz
YWdlcy5pbgpAQCAtMjAsNyArMjAsNyBAQAogIyBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogIyBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgogCi0jaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkgJiYgUExBVEZPUk0oQ09DT0EpICYm
IEVOQUJMRShHUFVfUFJPQ0VTUykKKyNpZiBQTEFURk9STShDT0NPQSkgJiYgRU5BQkxFKEdQVV9Q
Uk9DRVNTKSAmJiBFTkFCTEUoVklERU8pCiAKIG1lc3NhZ2VzIC0+IFJlbW90ZVZpZGVvRnJhbWVP
YmplY3RIZWFwUHJveHlQcm9jZXNzb3IgewogICAgIFNldFNoYXJlZFZpZGVvRnJhbWVTZW1hcGhv
cmUoSVBDOjpTZW1hcGhvcmUgc2VtYXBob3JlKQpAQCAtMjksNCArMjksNCBAQCBtZXNzYWdlcyAt
PiBSZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcFByb3h5UHJvY2Vzc29yIHsKICAgICBOZXdWaWRl
b0ZyYW1lQnVmZmVyKFdlYktpdDo6UmVtb3RlVmlkZW9GcmFtZUlkZW50aWZpZXIgaWRlbnRpZmll
cikKIH0KIAotI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJFQU0pICYmIFBMQVRGT1JNKENPQ09B
KSAmJiBFTkFCTEUoR1BVX1BST0NFU1MpCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL1NoYXJlZFZpZGVvRnJhbWUuY3BwIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvU2hhcmVkVmlkZW9GcmFtZS5jcHAKaW5kZXggOWQz
NTNlZmZmZjU2MDE0MjFjMTRkNTI1ZGVlMTFiMDY5M2YyMjhmOS4uYTcxY2EwODEyMDhiZDUxZTE0
ZTk2OWY2MTAyMjk1OGIyYWQ4NTJlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS93ZWJydGMvU2hhcmVkVmlkZW9GcmFtZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS93ZWJydGMvU2hhcmVkVmlkZW9GcmFtZS5jcHAKQEAgLTI2LDcgKzI2LDcg
QEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJTaGFyZWRWaWRlb0ZyYW1lLmgiCiAK
LSNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKSAmJiBQTEFURk9STShDT0NPQSkKKyNpZiBFTkFCTEUo
R1BVX1BST0NFU1MpICYmIFBMQVRGT1JNKENPQ09BKSAmJiBFTkFCTEUoVklERU8pCiAKICNpbmNs
dWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9TaGFyZWRWaWRlb0ZyYW1lSW5mby5o
PgpAQCAtMTUyLDQgKzE1Miw0IEBAIGJvb2wgU2hhcmVkVmlkZW9GcmFtZVJlYWRlcjo6c2V0U2hh
cmVkTWVtb3J5KGNvbnN0IFNoYXJlZE1lbW9yeTo6SVBDSGFuZGxlJiBpcGNICiAKIH0KIAotI2Vu
ZGlmIC8vIEVOQUJMRShNRURJQV9TVFJFQU0pICYmIFBMQVRGT1JNKENPQ09BKQorI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9TaGFyZWRWaWRl
b0ZyYW1lLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9TaGFyZWRWaWRl
b0ZyYW1lLmgKaW5kZXggYzIwNTg1OTQ5NmE1ZDg1MTA2NjU2Y2U1NzkxMjk0OWE0MTI3ZjhmZS4u
YWViYjc5Y2UyZGVlZmQ1YmYzZmI0NTdkZjJlMDJlODIyZGVkZmM5NCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvU2hhcmVkVmlkZW9GcmFtZS5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL1NoYXJlZFZpZGVvRnJhbWUuaApA
QCAtMjUsNyArMjUsNyBAQAogCiAjcHJhZ21hIG9uY2UKIAotI2lmIEVOQUJMRShNRURJQV9TVFJF
QU0pICYmIFBMQVRGT1JNKENPQ09BKQorI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgUExBVEZP
Uk0oQ09DT0EpICYmIEVOQUJMRShWSURFTykKIAogI2luY2x1ZGUgIklQQ1NlbWFwaG9yZS5oIgog
I2luY2x1ZGUgIlNoYXJlZE1lbW9yeS5oIgpAQCAtOTcsNyArOTcsNiBAQCBpbmxpbmUgU2hhcmVk
VmlkZW9GcmFtZVJlYWRlcjo6U2hhcmVkVmlkZW9GcmFtZVJlYWRlcihVc2VJT1N1cmZhY2VCdWZm
ZXJQb29sIHVzZQogewogfQogCi0KIH0KIAotI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJFQU0p
CisjZW5kaWYKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwppbmRleCAzYmU1MmJiOTRjNDQzMzJmOGVlNzk4ZmUwYTlkMGRmYmI1NjA3ZWYz
Li44OTI3NDI4ZmExZWVmNGMxZmQ1N2Q2Y2YyYzEyYmE2YWI1MzgxMTkwIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTQgQEAKKzIwMjItMDItMTggIEtpbW1vIEtpbm51bmVuICA8a2tpbm51bmVuQGFwcGxlLmNv
bT4KKworICAgICAgICBXZWJHTCBHUFVQOiBDcmFzaCB3aGVuIHJ1bm5pbmcgZmFzdC9tZWRpYXN0
cmVhbS9nZXRVc2VyTWVkaWEtdG8tY2FudmFzLTEuaHRtbAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM2NTAyCisKKyAgICAgICAgVW5za2lwIHRoZSBw
cmV2aW91cyBjcmFzaGVzIGNhdXNlZCBieSB0aGUgbGFjayBvZiBpbXBsZW1lbnRhdGlvbi4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBFcmljIENhcmxzb24uCisKKyAgICAgICAgKiBwbGF0Zm9ybS9p
b3Mtd2syL1Rlc3RFeHBlY3RhdGlvbnM6CisKIDIwMjItMDItMTggIEpvbiBMZWUgIDxqb25sZWVA
YXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQgZ2FyZGVuaW5nIGZvciBHUFUgUHJvY2Vz
cyBib3RzLiBVcGRhdGUgZnV6enkgZGF0YS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRm
b3JtL2lvcy13azIvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy13
azIvVGVzdEV4cGVjdGF0aW9ucwppbmRleCBhNGEwYmRiY2MzMzNmYWYxOGFhZjljMDZiNjk0N2Rh
ZGY1MTcyYjZjLi5mZDdmYjU3ZTJiY2NiYzBiNDZjMDNjZjZmMmE0ZGZiYjAzOTQ0MDFmIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mtd2syL1Rlc3RFeHBlY3RhdGlvbnMKKysr
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zLXdrMi9UZXN0RXhwZWN0YXRpb25zCkBAIC0yMjA5
LDEwICsyMjA5LDUgQEAgd2Via2l0Lm9yZy9iLzIzNDUzNiB3ZWJnbC9tYXgtYWN0aXZlLWNvbnRl
eHRzLWNvbnNvbGUtd2FybmluZy5odG1sCiB3ZWJraXQub3JnL2IvMjM0NTM2IHdlYmdsL21heC1h
Y3RpdmUtY29udGV4dHMtZ2MuaHRtbAogd2Via2l0Lm9yZy9iLzIzNDUzNiB3ZWJnbC9tYXgtYWN0
aXZlLWNvbnRleHRzLW9sZGVzdC1jb250ZXh0LWxvc3QuaHRtbAogd2Via2l0Lm9yZy9iLzIzNDUz
NiB3ZWJ4ci9oaWdoLXBlcmZvcm1hbmNlLmh0bWwKLXdlYmtpdC5vcmcvYi8yMzQ1MzYgZmFzdC9t
ZWRpYXN0cmVhbS9nZXRVc2VyTWVkaWEtdG8tY2FudmFzLTEuaHRtbCBbIENyYXNoIF0KLXdlYmtp
dC5vcmcvYi8yMzQ1MzYgZmFzdC9tZWRpYXN0cmVhbS9nZXRVc2VyTWVkaWEtdG8tY2FudmFzLTIu
aHRtbCBbIENyYXNoIF0KIHdlYmtpdC5vcmcvYi8yMzQ1MzYgd2ViZ2wvbWF4LWFjdGl2ZS1jb250
ZXh0cy13ZWJnbGNvbnRleHRsb3N0LXByZXZlbnQtZGVmYXVsdC5odG1sIFsgVGltZW91dCBdCiB3
ZWJraXQub3JnL2IvMjM0NTM2IHdlYmdsLzEuMC4zL2NvbmZvcm1hbmNlL3N0YXRlL2dsLW9iamVj
dC1nZXQtY2FsbHMuaHRtbCBbIFRpbWVvdXQgXQotCi0jIENhcHR1cmVkIFdlYkdMIHRvIGFub3Ro
ZXIgY29udGV4dDJkIG9yIFdlYkdMIG5vdCBpbXBsZW1lbnRlZCB5ZXQuCi13ZWJraXQub3JnL2Iv
MjM2NDk2IGZhc3QvbWVkaWFzdHJlYW0vY2FwdHVyZVN0cmVhbS9jYW52YXMzZC5odG1sIFsgVGlt
ZW91dCBdClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQo=
</data>
<flag name="commit-queue"
          id="479675"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
      

    </bug>

</bugzilla>